diff --git a/.editorconfig b/.editorconfig index 58d0d332bb..3e44d1a281 100644 --- a/.editorconfig +++ b/.editorconfig @@ -9,9 +9,10 @@ indent_style = space tab_width = 4 # New line preferences -end_of_line = crlf:suggestion +#end_of_line = crlf insert_final_newline = true trim_trailing_whitespace = true +max_line_length = 120 #### .NET Coding Conventions #### @@ -104,7 +105,6 @@ csharp_preferred_modifier_order = public, private, protected, internal, new, abs # 'using' directive preferences csharp_using_directive_placement = outside_namespace:silent -csharp_style_namespace_declarations = file_scoped:suggestion #### C# Formatting Rules #### @@ -337,7 +337,11 @@ dotnet_naming_symbols.type_parameters_symbols.applicable_kinds = type_parameter # ReSharper properties resharper_braces_for_ifelse = required_for_multiline +resharper_csharp_wrap_arguments_style = chop_if_long +resharper_csharp_wrap_parameters_style = chop_if_long resharper_keep_existing_attribute_arrangement = true +resharper_wrap_chained_binary_patterns = chop_if_long +resharper_wrap_chained_method_calls = chop_if_long [*.{csproj,xml,yml,yaml,dll.config,msbuildproj,targets,props}] indent_size = 2 diff --git a/.github/labeler.yml b/.github/labeler.yml index eb01eeecc4..4cfe775ed4 100644 --- a/.github/labeler.yml +++ b/.github/labeler.yml @@ -1,39 +1,56 @@ "Changes: Audio": - - "**/*.ogg" - + - changed-files: + - any-glob-to-any-file: "**/*.ogg" + "Changes: C#": - - "**/*.cs" + - changed-files: + - any-glob-to-any-file: "**/*.cs" "Changes: Config": - - "**/*.toml" - - "**/*.config" - - "*.json" - - ".github/*.yml" - - ".github/*.json" - - ".vscode/*.json" - - ".editorconfig" +- changed-files: + - any-glob-to-any-file: + - "**/*.toml" + - "**/*.config" + - "*.json" + - ".github/*.yml" + - ".github/*.json" + - ".vscode/*.json" + - ".editorconfig" "Changes: Documentation": - - "**/*.xml" - - "**/*.md" + - changed-files: + - any-glob-to-any-file: + - "**/*.xml" + - "**/*.md" "Changes: Localization": -- 'Resources/Locale/**/*.ftl' + - changed-files: + - any-glob-to-any-file: 'Resources/Locale/**/*.ftl' "Changes: Map": - - "Resources/Maps/**/*.yml" - - "Resources/Prototypes/Maps/**/*.yml" + - changed-files: + - any-glob-to-any-file: + - "Resources/Maps/**/*.yml" + - "Resources/Prototypes/Maps/**/*.yml" "Changes: Sprite": - - "**/*.rsi/*.png" - - "**/*.rsi/*.json" + - changed-files: + - any-glob-to-any-file: + - "**/*.rsi/*.png" + - "**/*.rsi/*.json" "Changes: UI": - - "**/*.xaml*" + - changed-files: + - any-glob-to-any-file: "**/*.xaml*" "Changes: YML": - - any: ["**/*.yml"] - all: ["!Resources/Maps/**/*.yml", "!Resources/Prototypes/Maps/**/*.yml"] + - changed-files: + - any-glob-to-any-file: + - "**/*.yml" + - all-globs-to-all-files: + - "!Resources/Maps/**/*.yml" + - "!Resources/Prototypes/Maps/**/*.yml" "Changes: Workflow": - - ".github/workflows/*.yml" + - changed-files: + - any-glob-to-any-file: ".github/workflows/*.yml" diff --git a/.github/workflows/conflict-labeler.yml b/.github/workflows/conflict-labeler.yml index 152d3a9f3c..1bba677022 100644 --- a/.github/workflows/conflict-labeler.yml +++ b/.github/workflows/conflict-labeler.yml @@ -1,18 +1,20 @@ name: Check Merge Conflicts on: - push: - branches: - - master pull_request_target: + types: + - opened + - synchronize + - reopened + - ready_for_review jobs: Label: - if: github.actor != 'PJBot' && github.actor != 'DeltaV-Bot' && github.actor != 'SimpleStation14' + if: ( github.event.pull_request.draft == false ) && ( github.actor != 'PJBot' && github.actor != 'DeltaV-Bot' && github.actor != 'SimpleStation14' ) runs-on: ubuntu-latest steps: - name: Check for Merge Conflicts - uses: ike709/actions-label-merge-conflict@9eefdd17e10566023c46d2dc6dc04fcb8ec76142 + uses: eps1lon/actions-label-merge-conflict@v3.0.0 with: dirtyLabel: "Status: Merge Conflict" repoToken: "${{ secrets.GITHUB_TOKEN }}" diff --git a/.github/workflows/labeler-pr.yml b/.github/workflows/labeler-pr.yml index efb051f4cc..2fd754b15e 100644 --- a/.github/workflows/labeler-pr.yml +++ b/.github/workflows/labeler-pr.yml @@ -6,8 +6,9 @@ on: jobs: labeler: if: github.actor != 'PJBot' && github.actor != 'DeltaV-Bot' && github.actor != 'SimpleStation14' + permissions: + contents: read + pull-requests: write runs-on: ubuntu-latest steps: - - uses: actions/labeler@v3 - with: - repo-token: "${{ secrets.GITHUB_TOKEN }}" + - uses: actions/labeler@v5 diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 177e6a0fe6..d9cfd3b25b 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -41,39 +41,17 @@ jobs: - name: Package client run: dotnet run --project Content.Packaging client --no-wipe-release - - name: Update Build Info - run: Tools/gen_build_info.py - - - name: Shuffle files around - run: | - mkdir "release/${{ github.sha }}" - mv release/*.zip "release/${{ github.sha }}" - - - name: Upload files to centcomm - uses: appleboy/scp-action@master - with: - host: ${{ secrets.PUBLISH_HOST }} - username: ${{ secrets.PUBLISH_USER }} - key: ${{ secrets.PUBLISH_KEY }} - port: ${{ secrets.PUBLISH_PORT }} - source: "release/${{ github.sha }}" - target: "/var/www/builds.delta-v.org/delta-v/builds/" - strip_components: 1 - - - name: Update manifest JSON - uses: appleboy/ssh-action@master - with: - host: ${{ secrets.PUBLISH_HOST }} - username: ${{ secrets.PUBLISH_USER }} - key: ${{ secrets.PUBLISH_KEY }} - port: ${{ secrets.PUBLISH_PORT }} - script: /home/deltav/publish/push.ps1 ${{ github.sha }} - - - name: Publish changelog (Discord) - run: Tools/actions_changelogs_since_last_run.py + - name: Publish version + run: Tools/publish_multi_request.py env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - DISCORD_WEBHOOK_URL: ${{ secrets.CHANGELOG_DISCORD_WEBHOOK }} + PUBLISH_TOKEN: ${{ secrets.PUBLISH_TOKEN }} + GITHUB_REPOSITORY: ${{ vars.GITHUB_REPOSITORY }} + + # - name: Publish changelog (Discord) + # run: Tools/actions_changelogs_since_last_run.py + # env: + # GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + # DISCORD_WEBHOOK_URL: ${{ secrets.CHANGELOG_DISCORD_WEBHOOK }} - name: Publish changelog (RSS) run: Tools/actions_changelog_rss.py diff --git a/Content.Client/Access/IdCardSystem.cs b/Content.Client/Access/IdCardSystem.cs index fcf2bf57de..e0c02976f7 100644 --- a/Content.Client/Access/IdCardSystem.cs +++ b/Content.Client/Access/IdCardSystem.cs @@ -2,6 +2,4 @@ namespace Content.Client.Access; -public sealed class IdCardSystem : SharedIdCardSystem -{ -} +public sealed class IdCardSystem : SharedIdCardSystem; diff --git a/Content.Client/Access/UI/AgentIDCardBoundUserInterface.cs b/Content.Client/Access/UI/AgentIDCardBoundUserInterface.cs index 73f18aec8d..c3fac8cb92 100644 --- a/Content.Client/Access/UI/AgentIDCardBoundUserInterface.cs +++ b/Content.Client/Access/UI/AgentIDCardBoundUserInterface.cs @@ -40,9 +40,9 @@ private void OnJobChanged(string newJob) SendMessage(new AgentIDCardJobChangedMessage(newJob)); } - public void OnJobIconChanged(string newJobIcon) + public void OnJobIconChanged(string newJobIconId) { - SendMessage(new AgentIDCardJobIconChangedMessage(newJobIcon)); + SendMessage(new AgentIDCardJobIconChangedMessage(newJobIconId)); } /// @@ -57,7 +57,7 @@ protected override void UpdateState(BoundUserInterfaceState state) _window.SetCurrentName(cast.CurrentName); _window.SetCurrentJob(cast.CurrentJob); - _window.SetAllowedIcons(cast.Icons); + _window.SetAllowedIcons(cast.Icons, cast.CurrentJobIconId); } protected override void Dispose(bool disposing) diff --git a/Content.Client/Access/UI/AgentIDCardWindow.xaml.cs b/Content.Client/Access/UI/AgentIDCardWindow.xaml.cs index beca0c41ba..9a38c0c485 100644 --- a/Content.Client/Access/UI/AgentIDCardWindow.xaml.cs +++ b/Content.Client/Access/UI/AgentIDCardWindow.xaml.cs @@ -38,7 +38,7 @@ public AgentIDCardWindow(AgentIDCardBoundUserInterface bui) JobLineEdit.OnFocusExit += e => OnJobChanged?.Invoke(e.Text); } - public void SetAllowedIcons(HashSet icons) + public void SetAllowedIcons(HashSet icons, string currentJobIconId) { IconGrid.DisposeAllChildren(); @@ -79,6 +79,10 @@ public void SetAllowedIcons(HashSet icons) jobIconButton.AddChild(jobIconTexture); jobIconButton.OnPressed += _ => _bui.OnJobIconChanged(jobIcon.ID); IconGrid.AddChild(jobIconButton); + + if (jobIconId.Equals(currentJobIconId)) + jobIconButton.Pressed = true; + i++; } } diff --git a/Content.Client/Access/UI/IdCardConsoleBoundUserInterface.cs b/Content.Client/Access/UI/IdCardConsoleBoundUserInterface.cs index 5b7011c195..a321b4121e 100644 --- a/Content.Client/Access/UI/IdCardConsoleBoundUserInterface.cs +++ b/Content.Client/Access/UI/IdCardConsoleBoundUserInterface.cs @@ -1,6 +1,5 @@ using Content.Shared.Access; using Content.Shared.Access.Components; -using Content.Shared.Access; using Content.Shared.Access.Systems; using Content.Shared.Containers.ItemSlots; using Content.Shared.CrewManifest; diff --git a/Content.Client/Actions/ActionsSystem.cs b/Content.Client/Actions/ActionsSystem.cs index 90158ba81e..0bc65eb935 100644 --- a/Content.Client/Actions/ActionsSystem.cs +++ b/Content.Client/Actions/ActionsSystem.cs @@ -249,7 +249,10 @@ public void TriggerAction(EntityUid actionId, BaseActionComponent action) if (action.ClientExclusive) { if (instantAction.Event != null) + { instantAction.Event.Performer = user; + instantAction.Event.Action = actionId; + } PerformAction(user, actions, actionId, instantAction, instantAction.Event, GameTiming.CurTime); } diff --git a/Content.Client/Administration/Components/HeadstandComponent.cs b/Content.Client/Administration/Components/HeadstandComponent.cs index d95e74576b..a4e3bfc5aa 100644 --- a/Content.Client/Administration/Components/HeadstandComponent.cs +++ b/Content.Client/Administration/Components/HeadstandComponent.cs @@ -3,7 +3,7 @@ namespace Content.Client.Administration.Components; -[RegisterComponent, NetworkedComponent] +[RegisterComponent] public sealed partial class HeadstandComponent : SharedHeadstandComponent { diff --git a/Content.Client/Administration/Components/KillSignComponent.cs b/Content.Client/Administration/Components/KillSignComponent.cs index 1cf47b93ff..91c44ef3f2 100644 --- a/Content.Client/Administration/Components/KillSignComponent.cs +++ b/Content.Client/Administration/Components/KillSignComponent.cs @@ -3,6 +3,5 @@ namespace Content.Client.Administration.Components; -[NetworkedComponent, RegisterComponent] -public sealed partial class KillSignComponent : SharedKillSignComponent -{ } +[RegisterComponent] +public sealed partial class KillSignComponent : SharedKillSignComponent; diff --git a/Content.Client/Administration/Managers/ClientAdminManager.cs b/Content.Client/Administration/Managers/ClientAdminManager.cs index fdd62fb6a2..0f740c8104 100644 --- a/Content.Client/Administration/Managers/ClientAdminManager.cs +++ b/Content.Client/Administration/Managers/ClientAdminManager.cs @@ -126,12 +126,15 @@ void IPostInjectInit.PostInject() public AdminData? GetAdminData(EntityUid uid, bool includeDeAdmin = false) { - return uid == _player.LocalEntity ? _adminData : null; + if (uid == _player.LocalEntity && (_adminData?.Active ?? includeDeAdmin)) + return _adminData; + + return null; } public AdminData? GetAdminData(ICommonSession session, bool includeDeAdmin = false) { - if (_player.LocalUser == session.UserId) + if (_player.LocalUser == session.UserId && (_adminData?.Active ?? includeDeAdmin)) return _adminData; return null; diff --git a/Content.Client/Administration/Systems/AdminVerbSystem.cs b/Content.Client/Administration/Systems/AdminVerbSystem.cs index e0f84bc4f0..dced59bbf2 100644 --- a/Content.Client/Administration/Systems/AdminVerbSystem.cs +++ b/Content.Client/Administration/Systems/AdminVerbSystem.cs @@ -1,3 +1,6 @@ +using Content.Shared.Administration; +using Content.Shared.Administration.Managers; +using Content.Shared.Mind.Components; using Content.Shared.Verbs; using Robust.Client.Console; using Robust.Shared.Utility; @@ -11,10 +14,12 @@ sealed class AdminVerbSystem : EntitySystem { [Dependency] private readonly IClientConGroupController _clientConGroupController = default!; [Dependency] private readonly IClientConsoleHost _clientConsoleHost = default!; + [Dependency] private readonly ISharedAdminManager _admin = default!; public override void Initialize() { SubscribeLocalEvent>(AddAdminVerbs); + } private void AddAdminVerbs(GetVerbsEvent args) @@ -33,6 +38,24 @@ private void AddAdminVerbs(GetVerbsEvent args) }; args.Verbs.Add(verb); } + + if (!_admin.IsAdmin(args.User)) + return; + + if (_admin.HasAdminFlag(args.User, AdminFlags.Admin)) + args.ExtraCategories.Add(VerbCategory.Admin); + + if (_admin.HasAdminFlag(args.User, AdminFlags.Fun) && HasComp(args.Target)) + args.ExtraCategories.Add(VerbCategory.Antag); + + if (_admin.HasAdminFlag(args.User, AdminFlags.Debug)) + args.ExtraCategories.Add(VerbCategory.Debug); + + if (_admin.HasAdminFlag(args.User, AdminFlags.Fun)) + args.ExtraCategories.Add(VerbCategory.Smite); + + if (_admin.HasAdminFlag(args.User, AdminFlags.Admin)) + args.ExtraCategories.Add(VerbCategory.Tricks); } } } diff --git a/Content.Client/Administration/UI/BanPanel/BanPanel.xaml.cs b/Content.Client/Administration/UI/BanPanel/BanPanel.xaml.cs index 1f32640f7d..dc263d6055 100644 --- a/Content.Client/Administration/UI/BanPanel/BanPanel.xaml.cs +++ b/Content.Client/Administration/UI/BanPanel/BanPanel.xaml.cs @@ -3,6 +3,7 @@ using System.Net.Sockets; using Content.Client.Administration.UI.CustomControls; using Content.Shared.Administration; +using Content.Shared.CCVar; using Content.Shared.Database; using Content.Shared.Roles; using Robust.Client.AutoGenerated; @@ -11,6 +12,7 @@ using Robust.Client.UserInterface.Controls; using Robust.Client.UserInterface.CustomControls; using Robust.Client.UserInterface.XAML; +using Robust.Shared.Configuration; using Robust.Shared.Prototypes; using Robust.Shared.Timing; using Robust.Shared.Utility; @@ -32,8 +34,11 @@ public sealed partial class BanPanel : DefaultWindow // This is less efficient than just holding a reference to the root control and enumerating children, but you // have to know how the controls are nested, which makes the code more complicated. private readonly List _roleCheckboxes = new(); + private readonly ISawmill _banpanelSawmill; [Dependency] private readonly IGameTiming _gameTiming = default!; + [Dependency] private readonly IConfigurationManager _cfg = default!; + [Dependency] private readonly ILogManager _logManager = default!; private enum TabNumbers { @@ -65,6 +70,7 @@ public BanPanel() { RobustXamlLoader.Load(this); IoCManager.InjectDependencies(this); + _banpanelSawmill = _logManager.GetSawmill("admin.banpanel"); PlayerList.OnSelectionChanged += OnPlayerSelectionChanged; PlayerNameLine.OnFocusExit += _ => OnPlayerNameChanged(); PlayerCheckbox.OnPressed += _ => @@ -104,6 +110,11 @@ public BanPanel() }; SubmitButton.OnPressed += SubmitButtonOnOnPressed; + IpCheckbox.Pressed = _cfg.GetCVar(CCVars.ServerBanIpBanDefault); + HwidCheckbox.Pressed = _cfg.GetCVar(CCVars.ServerBanHwidBanDefault); + LastConnCheckbox.Pressed = _cfg.GetCVar(CCVars.ServerBanUseLastDetails); + EraseCheckbox.Pressed = _cfg.GetCVar(CCVars.ServerBanErasePlayer); + SeverityOption.AddItem(Loc.GetString("admin-note-editor-severity-none"), (int) NoteSeverity.None); SeverityOption.AddItem(Loc.GetString("admin-note-editor-severity-low"), (int) NoteSeverity.Minor); SeverityOption.AddItem(Loc.GetString("admin-note-editor-severity-medium"), (int) NoteSeverity.Medium); @@ -175,6 +186,39 @@ private void CreateRoleGroup(string roleName, IEnumerable roleList, Colo c.Pressed = args.Pressed; } } + + if (args.Pressed) + { + if (!Enum.TryParse(_cfg.GetCVar(CCVars.DepartmentBanDefaultSeverity), true, out NoteSeverity newSeverity)) + { + _banpanelSawmill + .Warning("Departmental role ban severity could not be parsed from config!"); + return; + } + SeverityOption.SelectId((int) newSeverity); + } + else + { + foreach (var childContainer in RolesContainer.Children) + { + if (childContainer is Container) + { + foreach (var child in childContainer.Children) + { + if (child is CheckBox { Pressed: true }) + return; + } + } + } + + if (!Enum.TryParse(_cfg.GetCVar(CCVars.RoleBanDefaultSeverity), true, out NoteSeverity newSeverity)) + { + _banpanelSawmill + .Warning("Role ban severity could not be parsed from config!"); + return; + } + SeverityOption.SelectId((int) newSeverity); + } }; outerContainer.AddChild(innerContainer); foreach (var role in roleList) @@ -353,6 +397,35 @@ private void OnTypeChanged() { TypeOption.ModulateSelfOverride = null; Tabs.SetTabVisible((int) TabNumbers.Roles, TypeOption.SelectedId == (int) Types.Role); + NoteSeverity? newSeverity = null; + switch (TypeOption.SelectedId) + { + case (int)Types.Server: + if (Enum.TryParse(_cfg.GetCVar(CCVars.ServerBanDefaultSeverity), true, out NoteSeverity serverSeverity)) + newSeverity = serverSeverity; + else + { + _banpanelSawmill + .Warning("Server ban severity could not be parsed from config!"); + } + + break; + case (int) Types.Role: + + if (Enum.TryParse(_cfg.GetCVar(CCVars.RoleBanDefaultSeverity), true, out NoteSeverity roleSeverity)) + { + newSeverity = roleSeverity; + } + else + { + _banpanelSawmill + .Warning("Role ban severity could not be parsed from config!"); + } + break; + } + + if (newSeverity != null) + SeverityOption.SelectId((int) newSeverity.Value); } private void UpdateSubmitEnabled() diff --git a/Content.Client/Animations/TrackUserComponent.cs b/Content.Client/Animations/TrackUserComponent.cs new file mode 100644 index 0000000000..374c187398 --- /dev/null +++ b/Content.Client/Animations/TrackUserComponent.cs @@ -0,0 +1,17 @@ +using System.Numerics; + +namespace Content.Client.Animations; + +/// +/// Entities with this component tracks the user's world position every frame. +/// +[RegisterComponent] +public sealed partial class TrackUserComponent : Component +{ + public EntityUid? User; + + /// + /// Offset in the direction of the entity's rotation. + /// + public Vector2 Offset = Vector2.Zero; +} diff --git a/Content.Client/Atmos/Consoles/AtmosAlarmEntryContainer.xaml b/Content.Client/Atmos/Consoles/AtmosAlarmEntryContainer.xaml new file mode 100644 index 0000000000..96f136abf0 --- /dev/null +++ b/Content.Client/Atmos/Consoles/AtmosAlarmEntryContainer.xaml @@ -0,0 +1,81 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Content.Client/Atmos/Consoles/AtmosAlarmEntryContainer.xaml.cs b/Content.Client/Atmos/Consoles/AtmosAlarmEntryContainer.xaml.cs new file mode 100644 index 0000000000..b0d0365ef6 --- /dev/null +++ b/Content.Client/Atmos/Consoles/AtmosAlarmEntryContainer.xaml.cs @@ -0,0 +1,215 @@ +using Content.Client.Stylesheets; +using Content.Shared.Atmos; +using Content.Shared.Atmos.Components; +using Content.Shared.Atmos.Monitor; +using Content.Shared.FixedPoint; +using Content.Shared.Temperature; +using Robust.Client.AutoGenerated; +using Robust.Client.Graphics; +using Robust.Client.ResourceManagement; +using Robust.Client.UserInterface.Controls; +using Robust.Client.UserInterface.XAML; +using Robust.Shared.Map; +using System.Linq; + +namespace Content.Client.Atmos.Consoles; + +[GenerateTypedNameReferences] +public sealed partial class AtmosAlarmEntryContainer : BoxContainer +{ + public NetEntity NetEntity; + public EntityCoordinates? Coordinates; + + private readonly IEntityManager _entManager; + private readonly IResourceCache _cache; + + private Dictionary _alarmStrings = new Dictionary() + { + [AtmosAlarmType.Invalid] = "atmos-alerts-window-invalid-state", + [AtmosAlarmType.Normal] = "atmos-alerts-window-normal-state", + [AtmosAlarmType.Warning] = "atmos-alerts-window-warning-state", + [AtmosAlarmType.Danger] = "atmos-alerts-window-danger-state", + }; + + private Dictionary _gasShorthands = new Dictionary() + { + [Gas.Ammonia] = "NH₃", + [Gas.CarbonDioxide] = "CO₂", + [Gas.Frezon] = "F", + [Gas.Nitrogen] = "N₂", + [Gas.NitrousOxide] = "N₂O", + [Gas.Oxygen] = "O₂", + [Gas.Plasma] = "P", + [Gas.Tritium] = "T", + [Gas.WaterVapor] = "H₂O", + }; + + public AtmosAlarmEntryContainer(NetEntity uid, EntityCoordinates? coordinates) + { + RobustXamlLoader.Load(this); + + _entManager = IoCManager.Resolve(); + _cache = IoCManager.Resolve(); + + NetEntity = uid; + Coordinates = coordinates; + + // Load fonts + var headerFont = new VectorFont(_cache.GetResource("/Fonts/NotoSans/NotoSans-Bold.ttf"), 11); + var normalFont = new VectorFont(_cache.GetResource("/Fonts/NotoSansDisplay/NotoSansDisplay-Regular.ttf"), 11); + var smallFont = new VectorFont(_cache.GetResource("/Fonts/NotoSans/NotoSans-Regular.ttf"), 10); + + // Set fonts + TemperatureHeaderLabel.FontOverride = headerFont; + PressureHeaderLabel.FontOverride = headerFont; + OxygenationHeaderLabel.FontOverride = headerFont; + GasesHeaderLabel.FontOverride = headerFont; + + TemperatureLabel.FontOverride = normalFont; + PressureLabel.FontOverride = normalFont; + OxygenationLabel.FontOverride = normalFont; + + NoDataLabel.FontOverride = headerFont; + + SilenceCheckBox.Label.FontOverride = smallFont; + SilenceCheckBox.Label.FontColorOverride = Color.DarkGray; + } + + public void UpdateEntry(AtmosAlertsComputerEntry entry, bool isFocus, AtmosAlertsFocusDeviceData? focusData = null) + { + NetEntity = entry.NetEntity; + Coordinates = _entManager.GetCoordinates(entry.Coordinates); + + // Load fonts + var normalFont = new VectorFont(_cache.GetResource("/Fonts/NotoSansDisplay/NotoSansDisplay-Regular.ttf"), 11); + + // Update alarm state + if (!_alarmStrings.TryGetValue(entry.AlarmState, out var alarmString)) + alarmString = "atmos-alerts-window-invalid-state"; + + AlarmStateLabel.Text = Loc.GetString(alarmString); + AlarmStateLabel.FontColorOverride = GetAlarmStateColor(entry.AlarmState); + + // Update alarm name + AlarmNameLabel.Text = Loc.GetString("atmos-alerts-window-alarm-label", ("name", entry.EntityName), ("address", entry.Address)); + + // Focus updates + FocusContainer.Visible = isFocus; + + if (isFocus) + SetAsFocus(); + else + RemoveAsFocus(); + + if (isFocus && entry.Group == AtmosAlertsComputerGroup.AirAlarm) + { + MainDataContainer.Visible = (entry.AlarmState != AtmosAlarmType.Invalid); + NoDataLabel.Visible = (entry.AlarmState == AtmosAlarmType.Invalid); + + if (focusData != null) + { + // Update temperature + var tempK = (FixedPoint2)focusData.Value.TemperatureData.Item1; + var tempC = (FixedPoint2)TemperatureHelpers.KelvinToCelsius(tempK.Float()); + + TemperatureLabel.Text = Loc.GetString("atmos-alerts-window-temperature-value", ("valueInC", tempC), ("valueInK", tempK)); + TemperatureLabel.FontColorOverride = GetAlarmStateColor(focusData.Value.TemperatureData.Item2); + + // Update pressure + PressureLabel.Text = Loc.GetString("atmos-alerts-window-pressure-value", ("value", (FixedPoint2)focusData.Value.PressureData.Item1)); + PressureLabel.FontColorOverride = GetAlarmStateColor(focusData.Value.PressureData.Item2); + + // Update oxygenation + var oxygenPercent = (FixedPoint2)0f; + var oxygenAlert = AtmosAlarmType.Invalid; + + if (focusData.Value.GasData.TryGetValue(Gas.Oxygen, out var oxygenData)) + { + oxygenPercent = oxygenData.Item2 * 100f; + oxygenAlert = oxygenData.Item3; + } + + OxygenationLabel.Text = Loc.GetString("atmos-alerts-window-oxygenation-value", ("value", oxygenPercent)); + OxygenationLabel.FontColorOverride = GetAlarmStateColor(oxygenAlert); + + // Update other present gases + GasGridContainer.RemoveAllChildren(); + + var gasData = focusData.Value.GasData.Where(g => g.Key != Gas.Oxygen); + + if (gasData.Count() == 0) + { + // No other gases + var gasLabel = new Label() + { + Text = Loc.GetString("atmos-alerts-window-other-gases-value-nil"), + FontOverride = normalFont, + FontColorOverride = StyleNano.DisabledFore, + HorizontalAlignment = HAlignment.Center, + VerticalAlignment = VAlignment.Center, + HorizontalExpand = true, + Margin = new Thickness(0, 2, 0, 0), + SetHeight = 24f, + }; + + GasGridContainer.AddChild(gasLabel); + } + + else + { + // Add an entry for each gas + foreach ((var gas, (var mol, var percent, var alert)) in gasData) + { + var gasPercent = (FixedPoint2)0f; + gasPercent = percent * 100f; + + if (!_gasShorthands.TryGetValue(gas, out var gasShorthand)) + gasShorthand = "X"; + + var gasLabel = new Label() + { + Text = Loc.GetString("atmos-alerts-window-other-gases-value", ("shorthand", gasShorthand), ("value", gasPercent)), + FontOverride = normalFont, + FontColorOverride = GetAlarmStateColor(alert), + HorizontalAlignment = HAlignment.Center, + VerticalAlignment = VAlignment.Center, + HorizontalExpand = true, + Margin = new Thickness(0, 2, 0, 0), + SetHeight = 24f, + }; + + GasGridContainer.AddChild(gasLabel); + } + } + } + } + } + + public void SetAsFocus() + { + FocusButton.AddStyleClass(StyleNano.StyleClassButtonColorGreen); + ArrowTexture.TexturePath = "/Textures/Interface/Nano/inverted_triangle.svg.png"; + } + + public void RemoveAsFocus() + { + FocusButton.RemoveStyleClass(StyleNano.StyleClassButtonColorGreen); + ArrowTexture.TexturePath = "/Textures/Interface/Nano/triangle_right.png"; + FocusContainer.Visible = false; + } + + private Color GetAlarmStateColor(AtmosAlarmType alarmType) + { + switch (alarmType) + { + case AtmosAlarmType.Normal: + return StyleNano.GoodGreenFore; + case AtmosAlarmType.Warning: + return StyleNano.ConcerningOrangeFore; + case AtmosAlarmType.Danger: + return StyleNano.DangerousRedFore; + } + + return StyleNano.DisabledFore; + } +} \ No newline at end of file diff --git a/Content.Client/Atmos/Consoles/AtmosAlertsComputerBoundUserInterface.cs b/Content.Client/Atmos/Consoles/AtmosAlertsComputerBoundUserInterface.cs new file mode 100644 index 0000000000..08cae979b9 --- /dev/null +++ b/Content.Client/Atmos/Consoles/AtmosAlertsComputerBoundUserInterface.cs @@ -0,0 +1,52 @@ +using Content.Shared.Atmos.Components; + +namespace Content.Client.Atmos.Consoles; + +public sealed class AtmosAlertsComputerBoundUserInterface : BoundUserInterface +{ + [ViewVariables] + private AtmosAlertsComputerWindow? _menu; + + public AtmosAlertsComputerBoundUserInterface(EntityUid owner, Enum uiKey) : base(owner, uiKey) { } + + protected override void Open() + { + _menu = new AtmosAlertsComputerWindow(this, Owner); + _menu.OpenCentered(); + _menu.OnClose += Close; + + EntMan.TryGetComponent(Owner, out var xform); + } + + protected override void UpdateState(BoundUserInterfaceState state) + { + base.UpdateState(state); + + var castState = (AtmosAlertsComputerBoundInterfaceState) state; + + if (castState == null) + return; + + EntMan.TryGetComponent(Owner, out var xform); + _menu?.UpdateUI(xform?.Coordinates, castState.AirAlarms, castState.FireAlarms, castState.FocusData); + } + + public void SendFocusChangeMessage(NetEntity? netEntity) + { + SendMessage(new AtmosAlertsComputerFocusChangeMessage(netEntity)); + } + + public void SendDeviceSilencedMessage(NetEntity netEntity, bool silenceDevice) + { + SendMessage(new AtmosAlertsComputerDeviceSilencedMessage(netEntity, silenceDevice)); + } + + protected override void Dispose(bool disposing) + { + base.Dispose(disposing); + if (!disposing) + return; + + _menu?.Dispose(); + } +} diff --git a/Content.Client/Atmos/Consoles/AtmosAlertsComputerWindow.xaml b/Content.Client/Atmos/Consoles/AtmosAlertsComputerWindow.xaml new file mode 100644 index 0000000000..8824a776ee --- /dev/null +++ b/Content.Client/Atmos/Consoles/AtmosAlertsComputerWindow.xaml @@ -0,0 +1,108 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Content.Client/Atmos/Consoles/AtmosAlertsComputerWindow.xaml.cs b/Content.Client/Atmos/Consoles/AtmosAlertsComputerWindow.xaml.cs new file mode 100644 index 0000000000..a55321833c --- /dev/null +++ b/Content.Client/Atmos/Consoles/AtmosAlertsComputerWindow.xaml.cs @@ -0,0 +1,550 @@ +using Content.Client.Message; +using Content.Client.Pinpointer.UI; +using Content.Client.Stylesheets; +using Content.Client.UserInterface.Controls; +using Content.Shared.Atmos.Components; +using Content.Shared.Atmos.Monitor; +using Content.Shared.Pinpointer; +using Robust.Client.AutoGenerated; +using Robust.Client.GameObjects; +using Robust.Client.UserInterface; +using Robust.Client.UserInterface.Controls; +using Robust.Client.UserInterface.XAML; +using Robust.Shared.Map; +using Robust.Shared.Timing; +using Robust.Shared.Utility; +using Robust.Shared.ContentPack; +using Robust.Shared.Prototypes; +using System.Diagnostics.CodeAnalysis; +using System.Linq; + +namespace Content.Client.Atmos.Consoles; + +[GenerateTypedNameReferences] +public sealed partial class AtmosAlertsComputerWindow : FancyWindow +{ + private readonly IEntityManager _entManager; + private readonly SpriteSystem _spriteSystem; + + private EntityUid? _owner; + private NetEntity? _trackedEntity; + + private AtmosAlertsComputerEntry[]? _airAlarms = null; + private AtmosAlertsComputerEntry[]? _fireAlarms = null; + private IEnumerable? _allAlarms = null; + + private IEnumerable? _activeAlarms = null; + private Dictionary _deviceSilencingProgress = new(); + + public event Action? SendFocusChangeMessageAction; + public event Action? SendDeviceSilencedMessageAction; + + private bool _autoScrollActive = false; + private bool _autoScrollAwaitsUpdate = false; + + private const float SilencingDuration = 2.5f; + + public AtmosAlertsComputerWindow(AtmosAlertsComputerBoundUserInterface userInterface, EntityUid? owner) + { + RobustXamlLoader.Load(this); + _entManager = IoCManager.Resolve(); + _spriteSystem = _entManager.System(); + + // Pass the owner to nav map + _owner = owner; + NavMap.Owner = _owner; + + // Set nav map colors + NavMap.WallColor = new Color(64, 64, 64); + NavMap.TileColor = Color.DimGray * NavMap.WallColor; + + // Set nav map grid uid + var stationName = Loc.GetString("atmos-alerts-window-unknown-location"); + + if (_entManager.TryGetComponent(owner, out var xform)) + { + NavMap.MapUid = xform.GridUid; + + // Assign station name + if (_entManager.TryGetComponent(xform.GridUid, out var stationMetaData)) + stationName = stationMetaData.EntityName; + + var msg = new FormattedMessage(); + msg.AddMarkup(Loc.GetString("atmos-alerts-window-station-name", ("stationName", stationName))); + + StationName.SetMessage(msg); + } + + else + { + StationName.SetMessage(stationName); + NavMap.Visible = false; + } + + // Set trackable entity selected action + NavMap.TrackedEntitySelectedAction += SetTrackedEntityFromNavMap; + + // Update nav map + NavMap.ForceNavMapUpdate(); + + // Set tab container headers + MasterTabContainer.SetTabTitle(0, Loc.GetString("atmos-alerts-window-tab-no-alerts")); + MasterTabContainer.SetTabTitle(1, Loc.GetString("atmos-alerts-window-tab-air-alarms")); + MasterTabContainer.SetTabTitle(2, Loc.GetString("atmos-alerts-window-tab-fire-alarms")); + + // Set UI toggles + ShowInactiveAlarms.OnToggled += _ => OnShowAlarmsToggled(ShowInactiveAlarms, AtmosAlarmType.Invalid); + ShowNormalAlarms.OnToggled += _ => OnShowAlarmsToggled(ShowNormalAlarms, AtmosAlarmType.Normal); + ShowWarningAlarms.OnToggled += _ => OnShowAlarmsToggled(ShowWarningAlarms, AtmosAlarmType.Warning); + ShowDangerAlarms.OnToggled += _ => OnShowAlarmsToggled(ShowDangerAlarms, AtmosAlarmType.Danger); + + // Set atmos monitoring message action + SendFocusChangeMessageAction += userInterface.SendFocusChangeMessage; + SendDeviceSilencedMessageAction += userInterface.SendDeviceSilencedMessage; + } + + #region Toggle handling + + private void OnShowAlarmsToggled(CheckBox toggle, AtmosAlarmType toggledAlarmState) + { + if (_owner == null) + return; + + if (!_entManager.TryGetComponent(_owner.Value, out var console)) + return; + + foreach (var device in console.AtmosDevices) + { + var alarmState = GetAlarmState(device.NetEntity); + + if (toggledAlarmState != alarmState) + continue; + + if (toggle.Pressed) + AddTrackedEntityToNavMap(device, alarmState); + + else + NavMap.TrackedEntities.Remove(device.NetEntity); + } + } + + private void OnSilenceAlertsToggled(NetEntity netEntity, bool toggleState) + { + if (!_entManager.TryGetComponent(_owner, out var console)) + return; + + if (toggleState) + _deviceSilencingProgress[netEntity] = SilencingDuration; + + else + _deviceSilencingProgress.Remove(netEntity); + + foreach (AtmosAlarmEntryContainer entryContainer in AlertsTable.Children) + { + if (entryContainer.NetEntity == netEntity) + entryContainer.SilenceAlarmProgressBar.Visible = toggleState; + } + + SendDeviceSilencedMessageAction?.Invoke(netEntity, toggleState); + } + + #endregion + + public void UpdateUI(EntityCoordinates? consoleCoords, AtmosAlertsComputerEntry[] airAlarms, AtmosAlertsComputerEntry[] fireAlarms, AtmosAlertsFocusDeviceData? focusData) + { + if (_owner == null) + return; + + if (!_entManager.TryGetComponent(_owner.Value, out var console)) + return; + + if (_trackedEntity != focusData?.NetEntity) + { + SendFocusChangeMessageAction?.Invoke(_trackedEntity); + focusData = null; + } + + // Retain alarm data for use inbetween updates + _airAlarms = airAlarms; + _fireAlarms = fireAlarms; + _allAlarms = airAlarms.Concat(fireAlarms); + + var silenced = console.SilencedDevices; + + _activeAlarms = _allAlarms.Where(x => x.AlarmState > AtmosAlarmType.Normal && + (!silenced.Contains(x.NetEntity) || _deviceSilencingProgress.ContainsKey(x.NetEntity))); + + // Reset nav map data + NavMap.TrackedCoordinates.Clear(); + NavMap.TrackedEntities.Clear(); + + // Add tracked entities to the nav map + foreach (var device in console.AtmosDevices) + { + if (!NavMap.Visible) + continue; + + var alarmState = GetAlarmState(device.NetEntity); + + if (_trackedEntity != device.NetEntity) + { + // Skip air alarms if the appropriate overlay is off + if (!ShowInactiveAlarms.Pressed && alarmState == AtmosAlarmType.Invalid) + continue; + + if (!ShowNormalAlarms.Pressed && alarmState == AtmosAlarmType.Normal) + continue; + + if (!ShowWarningAlarms.Pressed && alarmState == AtmosAlarmType.Warning) + continue; + + if (!ShowDangerAlarms.Pressed && alarmState == AtmosAlarmType.Danger) + continue; + } + + AddTrackedEntityToNavMap(device, alarmState); + } + + // Show the monitor location + var consoleUid = _entManager.GetNetEntity(_owner); + + if (consoleCoords != null && consoleUid != null) + { + var texture = _spriteSystem.Frame0(new SpriteSpecifier.Texture(new ResPath("/Textures/Interface/NavMap/beveled_circle.png"))); + var blip = new NavMapBlip(consoleCoords.Value, texture, Color.Cyan, true, false); + NavMap.TrackedEntities[consoleUid.Value] = blip; + } + + // Update the nav map + NavMap.ForceNavMapUpdate(); + + // Clear excess children from the tables + var activeAlarmCount = _activeAlarms.Count(); + + while (AlertsTable.ChildCount > activeAlarmCount) + AlertsTable.RemoveChild(AlertsTable.GetChild(AlertsTable.ChildCount - 1)); + + while (AirAlarmsTable.ChildCount > airAlarms.Length) + AirAlarmsTable.RemoveChild(AirAlarmsTable.GetChild(AirAlarmsTable.ChildCount - 1)); + + while (FireAlarmsTable.ChildCount > fireAlarms.Length) + FireAlarmsTable.RemoveChild(FireAlarmsTable.GetChild(FireAlarmsTable.ChildCount - 1)); + + // Update all entries in each table + for (int index = 0; index < _activeAlarms.Count(); index++) + { + var entry = _activeAlarms.ElementAt(index); + UpdateUIEntry(entry, index, AlertsTable, console, focusData); + } + + for (int index = 0; index < airAlarms.Count(); index++) + { + var entry = airAlarms.ElementAt(index); + UpdateUIEntry(entry, index, AirAlarmsTable, console, focusData); + } + + for (int index = 0; index < fireAlarms.Count(); index++) + { + var entry = fireAlarms.ElementAt(index); + UpdateUIEntry(entry, index, FireAlarmsTable, console, focusData); + } + + // If no alerts are active, display a message + if (MasterTabContainer.CurrentTab == 0 && activeAlarmCount == 0) + { + var label = new RichTextLabel() + { + HorizontalExpand = true, + VerticalExpand = true, + HorizontalAlignment = HAlignment.Center, + VerticalAlignment = VAlignment.Center, + }; + + label.SetMarkup(Loc.GetString("atmos-alerts-window-no-active-alerts", ("color", StyleNano.GoodGreenFore.ToHexNoAlpha()))); + + AlertsTable.AddChild(label); + } + + // Update the alerts tab with the number of active alerts + if (activeAlarmCount == 0) + MasterTabContainer.SetTabTitle(0, Loc.GetString("atmos-alerts-window-tab-no-alerts")); + + else + MasterTabContainer.SetTabTitle(0, Loc.GetString("atmos-alerts-window-tab-alerts", ("value", activeAlarmCount))); + + // Auto-scroll re-enable + if (_autoScrollAwaitsUpdate) + { + _autoScrollActive = true; + _autoScrollAwaitsUpdate = false; + } + } + + private void AddTrackedEntityToNavMap(AtmosAlertsDeviceNavMapData metaData, AtmosAlarmType alarmState) + { + var data = GetBlipTexture(alarmState); + + if (data == null) + return; + + var texture = data.Value.Item1; + var color = data.Value.Item2; + var coords = _entManager.GetCoordinates(metaData.NetCoordinates); + + if (_trackedEntity != null && _trackedEntity != metaData.NetEntity) + color *= Color.DimGray; + + var selectable = true; + var blip = new NavMapBlip(coords, _spriteSystem.Frame0(texture), color, _trackedEntity == metaData.NetEntity, selectable); + + NavMap.TrackedEntities[metaData.NetEntity] = blip; + } + + private void UpdateUIEntry(AtmosAlertsComputerEntry entry, int index, Control table, AtmosAlertsComputerComponent console, AtmosAlertsFocusDeviceData? focusData = null) + { + // Make new UI entry if required + if (index >= table.ChildCount) + { + var newEntryContainer = new AtmosAlarmEntryContainer(entry.NetEntity, _entManager.GetCoordinates(entry.Coordinates)); + + // On click + newEntryContainer.FocusButton.OnButtonUp += args => + { + if (_trackedEntity == newEntryContainer.NetEntity) + { + _trackedEntity = null; + } + + else + { + _trackedEntity = newEntryContainer.NetEntity; + + if (newEntryContainer.Coordinates != null) + NavMap.CenterToCoordinates(newEntryContainer.Coordinates.Value); + } + + // Send message to console that the focus has changed + SendFocusChangeMessageAction?.Invoke(_trackedEntity); + + // Update affected UI elements across all tables + UpdateConsoleTable(console, AlertsTable, _trackedEntity); + UpdateConsoleTable(console, AirAlarmsTable, _trackedEntity); + UpdateConsoleTable(console, FireAlarmsTable, _trackedEntity); + }; + + // On toggling the silence check box + newEntryContainer.SilenceCheckBox.OnToggled += _ => OnSilenceAlertsToggled(newEntryContainer.NetEntity, newEntryContainer.SilenceCheckBox.Pressed); + + // Add the entry to the current table + table.AddChild(newEntryContainer); + } + + // Update values and UI elements + var tableChild = table.GetChild(index); + + if (tableChild is not AtmosAlarmEntryContainer) + { + table.RemoveChild(tableChild); + UpdateUIEntry(entry, index, table, console, focusData); + + return; + } + + var entryContainer = (AtmosAlarmEntryContainer)tableChild; + + entryContainer.UpdateEntry(entry, entry.NetEntity == _trackedEntity, focusData); + + if (_trackedEntity != entry.NetEntity) + { + var silenced = console.SilencedDevices; + entryContainer.SilenceCheckBox.Pressed = (silenced.Contains(entry.NetEntity) || _deviceSilencingProgress.ContainsKey(entry.NetEntity)); + } + + entryContainer.SilenceAlarmProgressBar.Visible = (table == AlertsTable && _deviceSilencingProgress.ContainsKey(entry.NetEntity)); + } + + private void UpdateConsoleTable(AtmosAlertsComputerComponent console, Control table, NetEntity? currTrackedEntity) + { + foreach (var tableChild in table.Children) + { + if (tableChild is not AtmosAlarmEntryContainer) + continue; + + var entryContainer = (AtmosAlarmEntryContainer)tableChild; + + if (entryContainer.NetEntity != currTrackedEntity) + entryContainer.RemoveAsFocus(); + + else if (entryContainer.NetEntity == currTrackedEntity) + entryContainer.SetAsFocus(); + } + } + + private void SetTrackedEntityFromNavMap(NetEntity? netEntity) + { + if (netEntity == null) + return; + + if (!_entManager.TryGetComponent(_owner, out var console)) + return; + + _trackedEntity = netEntity; + + if (netEntity != null) + { + // Tab switching + if (MasterTabContainer.CurrentTab != 0 || _activeAlarms?.Any(x => x.NetEntity == netEntity) == false) + { + var device = console.AtmosDevices.FirstOrNull(x => x.NetEntity == netEntity); + + switch (device?.Group) + { + case AtmosAlertsComputerGroup.AirAlarm: + MasterTabContainer.CurrentTab = 1; break; + case AtmosAlertsComputerGroup.FireAlarm: + MasterTabContainer.CurrentTab = 2; break; + } + } + + // Get the scroll position of the selected entity on the selected button the UI + ActivateAutoScrollToFocus(); + } + + // Send message to console that the focus has changed + SendFocusChangeMessageAction?.Invoke(_trackedEntity); + } + + protected override void FrameUpdate(FrameEventArgs args) + { + AutoScrollToFocus(); + + // Device silencing update + foreach ((var device, var remainingTime) in _deviceSilencingProgress) + { + var t = remainingTime - args.DeltaSeconds; + + if (t <= 0) + { + _deviceSilencingProgress.Remove(device); + + if (device == _trackedEntity) + _trackedEntity = null; + } + + else + _deviceSilencingProgress[device] = t; + } + } + + private void ActivateAutoScrollToFocus() + { + _autoScrollActive = false; + _autoScrollAwaitsUpdate = true; + } + + private void AutoScrollToFocus() + { + if (!_autoScrollActive) + return; + + var scroll = MasterTabContainer.Children.ElementAt(MasterTabContainer.CurrentTab) as ScrollContainer; + if (scroll == null) + return; + + if (!TryGetVerticalScrollbar(scroll, out var vScrollbar)) + return; + + if (!TryGetNextScrollPosition(out float? nextScrollPosition)) + return; + + vScrollbar.ValueTarget = nextScrollPosition.Value; + + if (MathHelper.CloseToPercent(vScrollbar.Value, vScrollbar.ValueTarget)) + _autoScrollActive = false; + } + + private bool TryGetVerticalScrollbar(ScrollContainer scroll, [NotNullWhen(true)] out VScrollBar? vScrollBar) + { + vScrollBar = null; + + foreach (var child in scroll.Children) + { + if (child is not VScrollBar) + continue; + + var castChild = child as VScrollBar; + + if (castChild != null) + { + vScrollBar = castChild; + return true; + } + } + + return false; + } + + private bool TryGetNextScrollPosition([NotNullWhen(true)] out float? nextScrollPosition) + { + nextScrollPosition = null; + + var scroll = MasterTabContainer.Children.ElementAt(MasterTabContainer.CurrentTab) as ScrollContainer; + if (scroll == null) + return false; + + var container = scroll.Children.ElementAt(0) as BoxContainer; + if (container == null || container.Children.Count() == 0) + return false; + + // Exit if the heights of the children haven't been initialized yet + if (!container.Children.Any(x => x.Height > 0)) + return false; + + nextScrollPosition = 0; + + foreach (var control in container.Children) + { + if (control == null || control is not AtmosAlarmEntryContainer) + continue; + + if (((AtmosAlarmEntryContainer)control).NetEntity == _trackedEntity) + return true; + + nextScrollPosition += control.Height; + } + + // Failed to find control + nextScrollPosition = null; + + return false; + } + + private AtmosAlarmType GetAlarmState(NetEntity netEntity) + { + var alarmState = _allAlarms?.FirstOrNull(x => x.NetEntity == netEntity)?.AlarmState; + + if (alarmState == null) + return AtmosAlarmType.Invalid; + + return alarmState.Value; + } + + private (SpriteSpecifier.Texture, Color)? GetBlipTexture(AtmosAlarmType alarmState) + { + (SpriteSpecifier.Texture, Color)? output = null; + + switch (alarmState) + { + case AtmosAlarmType.Invalid: + output = (new SpriteSpecifier.Texture(new ResPath("/Textures/Interface/NavMap/beveled_circle.png")), StyleNano.DisabledFore); break; + case AtmosAlarmType.Normal: + output = (new SpriteSpecifier.Texture(new ResPath("/Textures/Interface/NavMap/beveled_circle.png")), Color.LimeGreen); break; + case AtmosAlarmType.Warning: + output = (new SpriteSpecifier.Texture(new ResPath("/Textures/Interface/NavMap/beveled_triangle.png")), new Color(255, 182, 72)); break; + case AtmosAlarmType.Danger: + output = (new SpriteSpecifier.Texture(new ResPath("/Textures/Interface/NavMap/beveled_square.png")), new Color(255, 67, 67)); break; + } + + return output; + } +} \ No newline at end of file diff --git a/Content.Client/Atmos/UI/GasAnalyzerWindow.xaml.cs b/Content.Client/Atmos/UI/GasAnalyzerWindow.xaml.cs index b105e629cf..b54af3a587 100644 --- a/Content.Client/Atmos/UI/GasAnalyzerWindow.xaml.cs +++ b/Content.Client/Atmos/UI/GasAnalyzerWindow.xaml.cs @@ -163,6 +163,26 @@ private void GenerateGasDisplay(GasMixEntry gasMix, Control parent) parent.AddChild(panel); panel.AddChild(dataContainer); + // Volume label + var volBox = new BoxContainer { Orientation = BoxContainer.LayoutOrientation.Horizontal }; + + volBox.AddChild(new Label + { + Text = Loc.GetString("gas-analyzer-window-volume-text") + }); + volBox.AddChild(new Control + { + MinSize = new Vector2(10, 0), + HorizontalExpand = true + }); + volBox.AddChild(new Label + { + Text = Loc.GetString("gas-analyzer-window-volume-val-text", ("volume", $"{gasMix.Volume:0.##}")), + Align = Label.AlignMode.Right, + HorizontalExpand = true + }); + dataContainer.AddChild(volBox); + // Pressure label var presBox = new BoxContainer { Orientation = BoxContainer.LayoutOrientation.Horizontal }; diff --git a/Content.Client/Audio/Jukebox/JukeboxBoundUserInterface.cs b/Content.Client/Audio/Jukebox/JukeboxBoundUserInterface.cs index 072730d65d..60fe339069 100644 --- a/Content.Client/Audio/Jukebox/JukeboxBoundUserInterface.cs +++ b/Content.Client/Audio/Jukebox/JukeboxBoundUserInterface.cs @@ -9,7 +9,6 @@ namespace Content.Client.Audio.Jukebox; public sealed class JukeboxBoundUserInterface : BoundUserInterface { - [Dependency] private readonly IPlayerManager _player = default!; [Dependency] private readonly IPrototypeManager _protoManager = default!; [ViewVariables] diff --git a/Content.Client/Audio/Jukebox/JukeboxSystem.cs b/Content.Client/Audio/Jukebox/JukeboxSystem.cs index 53bde82a78..dd4a5bbb9b 100644 --- a/Content.Client/Audio/Jukebox/JukeboxSystem.cs +++ b/Content.Client/Audio/Jukebox/JukeboxSystem.cs @@ -11,6 +11,7 @@ public sealed class JukeboxSystem : SharedJukeboxSystem [Dependency] private readonly IPrototypeManager _protoManager = default!; [Dependency] private readonly AnimationPlayerSystem _animationPlayer = default!; [Dependency] private readonly SharedAppearanceSystem _appearanceSystem = default!; + [Dependency] private readonly SharedUserInterfaceSystem _uiSystem = default!; public override void Initialize() { @@ -35,13 +36,10 @@ private void OnProtoReload(PrototypesReloadedEventArgs obj) var query = AllEntityQuery(); - while (query.MoveNext(out _, out var ui)) + while (query.MoveNext(out var uid, out _, out var ui)) { - if (!ui.OpenInterfaces.TryGetValue(JukeboxUiKey.Key, out var baseBui) || - baseBui is not JukeboxBoundUserInterface bui) - { + if (!_uiSystem.TryGetOpenUi((uid, ui), JukeboxUiKey.Key, out var bui)) continue; - } bui.PopulateMusic(); } @@ -49,15 +47,9 @@ private void OnProtoReload(PrototypesReloadedEventArgs obj) private void OnJukeboxAfterState(Entity ent, ref AfterAutoHandleStateEvent args) { - if (!TryComp(ent, out UserInterfaceComponent? ui)) + if (!_uiSystem.TryGetOpenUi(ent.Owner, JukeboxUiKey.Key, out var bui)) return; - if (!ui.OpenInterfaces.TryGetValue(JukeboxUiKey.Key, out var baseBui) || - baseBui is not JukeboxBoundUserInterface bui) - { - return; - } - bui.Reload(); } diff --git a/Content.Client/Buckle/BuckleSystem.cs b/Content.Client/Buckle/BuckleSystem.cs index b899a88106..d4614210d9 100644 --- a/Content.Client/Buckle/BuckleSystem.cs +++ b/Content.Client/Buckle/BuckleSystem.cs @@ -50,16 +50,11 @@ private void OnBuckleAfterAutoHandleState(EntityUid uid, BuckleComponent compone private void OnAppearanceChange(EntityUid uid, BuckleComponent component, ref AppearanceChangeEvent args) { - if (!TryComp(uid, out var rotVisuals)) + if (!TryComp(uid, out var rotVisuals) + || !Appearance.TryGetData(uid, BuckleVisuals.Buckled, out var buckled, args.Component) + || !buckled || args.Sprite == null) return; - if (!Appearance.TryGetData(uid, BuckleVisuals.Buckled, out var buckled, args.Component) || - !buckled || - args.Sprite == null) - { - return; - } - // Animate strapping yourself to something at a given angle // TODO: Dump this when buckle is better _rotationVisualizerSystem.AnimateSpriteRotation(uid, args.Sprite, rotVisuals.HorizontalRotation, 0.125f); diff --git a/Content.Client/CardboardBox/CardboardBoxSystem.cs b/Content.Client/CardboardBox/CardboardBoxSystem.cs index 90a21d8e41..925013db10 100644 --- a/Content.Client/CardboardBox/CardboardBoxSystem.cs +++ b/Content.Client/CardboardBox/CardboardBoxSystem.cs @@ -1,4 +1,5 @@ using System.Numerics; +using Content.Shared.Body.Components; using Content.Shared.CardboardBox; using Content.Shared.CardboardBox.Components; using Content.Shared.Examine; @@ -13,9 +14,14 @@ public sealed class CardboardBoxSystem : SharedCardboardBoxSystem [Dependency] private readonly TransformSystem _transform = default!; [Dependency] private readonly ExamineSystemShared _examine = default!; + private EntityQuery _bodyQuery; + public override void Initialize() { base.Initialize(); + + _bodyQuery = GetEntityQuery(); + SubscribeNetworkEvent(OnBoxEffect); } @@ -59,6 +65,10 @@ private void OnBoxEffect(PlayBoxEffectMessage msg) if (!_examine.InRangeUnOccluded(sourcePos, mapPos, box.Distance, null)) continue; + // no effect for anything too exotic + if (!_bodyQuery.HasComp(mob)) + continue; + var ent = Spawn(box.Effect, mapPos); if (!xformQuery.TryGetComponent(ent, out var entTransform) || !TryComp(ent, out var sprite)) diff --git a/Content.Client/Cargo/UI/BountyEntry.xaml.cs b/Content.Client/Cargo/UI/BountyEntry.xaml.cs index 027d7b3e80..31c417117a 100644 --- a/Content.Client/Cargo/UI/BountyEntry.xaml.cs +++ b/Content.Client/Cargo/UI/BountyEntry.xaml.cs @@ -7,7 +7,6 @@ using Robust.Client.UserInterface.XAML; using Robust.Shared.Prototypes; using Robust.Shared.Timing; -using Serilog; namespace Content.Client.Cargo.UI; diff --git a/Content.Client/CartridgeLoader/Cartridges/MailMetricUi.cs b/Content.Client/CartridgeLoader/Cartridges/MailMetricUi.cs new file mode 100644 index 0000000000..504dda7c56 --- /dev/null +++ b/Content.Client/CartridgeLoader/Cartridges/MailMetricUi.cs @@ -0,0 +1,28 @@ +using Content.Client.UserInterface.Fragments; +using Content.Shared.CartridgeLoader.Cartridges; +using Robust.Client.UserInterface; + +namespace Content.Client.CartridgeLoader.Cartridges; + +public sealed partial class MailMetricUi : UIFragment +{ + private MailMetricUiFragment? _fragment; + + public override Control GetUIFragmentRoot() + { + return _fragment!; + } + + public override void Setup(BoundUserInterface userInterface, EntityUid? fragmentOwner) + { + _fragment = new MailMetricUiFragment(); + } + + public override void UpdateState(BoundUserInterfaceState state) + { + if (state is MailMetricUiState cast) + { + _fragment?.UpdateState(cast); + } + } +} diff --git a/Content.Client/CartridgeLoader/Cartridges/MailMetricUiFragment.xaml b/Content.Client/CartridgeLoader/Cartridges/MailMetricUiFragment.xaml new file mode 100644 index 0000000000..39639fe8c9 --- /dev/null +++ b/Content.Client/CartridgeLoader/Cartridges/MailMetricUiFragment.xaml @@ -0,0 +1,183 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Content.Client/CartridgeLoader/Cartridges/MailMetricUiFragment.xaml.cs b/Content.Client/CartridgeLoader/Cartridges/MailMetricUiFragment.xaml.cs new file mode 100644 index 0000000000..553e3a5793 --- /dev/null +++ b/Content.Client/CartridgeLoader/Cartridges/MailMetricUiFragment.xaml.cs @@ -0,0 +1,104 @@ +using Content.Shared.CartridgeLoader.Cartridges; +using Robust.Client.AutoGenerated; +using Robust.Client.UserInterface.Controls; +using Robust.Client.UserInterface.XAML; + +namespace Content.Client.CartridgeLoader.Cartridges; + +[GenerateTypedNameReferences] +public sealed partial class MailMetricUiFragment : BoxContainer +{ + + private OpenedMailPercentGrade? _successGrade; + + public MailMetricUiFragment() + { + RobustXamlLoader.Load(this); + + // This my way of adding multiple classes to a XAML control. + // Haha Batman I'm going to blow up Gotham City + OpenedMailCount.StyleClasses.Add("Good"); + OpenedMailSpesos.StyleClasses.Add("Good"); + TamperedMailCount.StyleClasses.Add("Danger"); + TamperedMailSpesos.StyleClasses.Add("Danger"); + ExpiredMailCount.StyleClasses.Add("Danger"); + ExpiredMailSpesos.StyleClasses.Add("Danger"); + DamagedMailCount.StyleClasses.Add("Danger"); + DamagedMailSpesos.StyleClasses.Add("Danger"); + UnopenedMailCount.StyleClasses.Add("Caution"); + } + + public void UpdateState(MailMetricUiState state) + { + UpdateTextLabels(state); + UpdateSuccessGrade(state); + } + + public void UpdateTextLabels(MailMetricUiState state) + { + var stats = state.Metrics; + + OpenedMailCount.Text = stats.OpenedCount.ToString(); + OpenedMailSpesos.Text = stats.Earnings.ToString(); + TamperedMailCount.Text = stats.TamperedCount.ToString(); + TamperedMailSpesos.Text = stats.TamperedLosses.ToString(); + ExpiredMailCount.Text = stats.ExpiredCount.ToString(); + ExpiredMailSpesos.Text = stats.ExpiredLosses.ToString(); + DamagedMailCount.Text = stats.DamagedCount.ToString(); + DamagedMailSpesos.Text = stats.DamagedLosses.ToString(); + UnopenedMailCount.Text = state.UnopenedMailCount.ToString(); + TotalMailCount.Text = state.TotalMail.ToString(); + TotalMailSpesos.Text = stats.TotalIncome.ToString(); + SuccessRateCounts.Text = Loc.GetString("mail-metrics-progress", + ("opened", stats.OpenedCount), + ("total", state.TotalMail)); + SuccessRatePercent.Text = Loc.GetString("mail-metrics-progress-percent", + ("successRate", state.SuccessRate)); + } + + public void UpdateSuccessGrade(MailMetricUiState state) + { + var previousGrade = _successGrade; + _successGrade = GetSuccessRateGrade(state.SuccessRate); + + // No need to update if they're the same + if (previousGrade == _successGrade) + return; + + var previousGradeClass = GetClassForGrade(previousGrade); + if (previousGradeClass != string.Empty) + { + SuccessRatePercent.StyleClasses.Remove(previousGradeClass); + } + + SuccessRatePercent.StyleClasses.Add(GetClassForGrade(_successGrade)); + } + + private static OpenedMailPercentGrade GetSuccessRateGrade(double successRate) + { + return successRate switch + { + > 75 => OpenedMailPercentGrade.Good, + > 50 => OpenedMailPercentGrade.Average, + _ => OpenedMailPercentGrade.Bad, + }; + } + + private string GetClassForGrade(OpenedMailPercentGrade? grade) + { + return grade switch + { + OpenedMailPercentGrade.Good => "Good", + OpenedMailPercentGrade.Average => "Caution", + OpenedMailPercentGrade.Bad => "Danger", + _ => string.Empty, + }; + } +} + +enum OpenedMailPercentGrade +{ + Good, + Average, + Bad +} diff --git a/Content.Client/Changelog/ChangelogWindow.xaml.cs b/Content.Client/Changelog/ChangelogWindow.xaml.cs index e5f492900c..9b7fd75436 100644 --- a/Content.Client/Changelog/ChangelogWindow.xaml.cs +++ b/Content.Client/Changelog/ChangelogWindow.xaml.cs @@ -87,14 +87,12 @@ private void TabsUpdated() if (!tab.AdminOnly || isAdmin) { Tabs.SetTabVisible(i, true); - tab.Visible = true; visibleTabs++; firstVisible ??= i; } else { Tabs.SetTabVisible(i, false); - tab.Visible = false; } } diff --git a/Content.Client/Chat/UI/EmotesMenu.xaml b/Content.Client/Chat/UI/EmotesMenu.xaml new file mode 100644 index 0000000000..cc4d5bb77e --- /dev/null +++ b/Content.Client/Chat/UI/EmotesMenu.xaml @@ -0,0 +1,31 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Content.Client/Chat/UI/EmotesMenu.xaml.cs b/Content.Client/Chat/UI/EmotesMenu.xaml.cs new file mode 100644 index 0000000000..9ef647df5f --- /dev/null +++ b/Content.Client/Chat/UI/EmotesMenu.xaml.cs @@ -0,0 +1,113 @@ +using System.Linq; +using System.Numerics; +using Content.Client.UserInterface.Controls; +using Content.Shared.Chat.Prototypes; +using Content.Shared.Speech; +using Robust.Client.AutoGenerated; +using Robust.Client.GameObjects; +using Robust.Client.UserInterface.Controls; +using Robust.Client.UserInterface.XAML; +using Robust.Shared.Player; +using Robust.Shared.Prototypes; + +namespace Content.Client.Chat.UI; + +[GenerateTypedNameReferences] +public sealed partial class EmotesMenu : RadialMenu +{ + [Dependency] private readonly EntityManager _entManager = default!; + [Dependency] private readonly IPrototypeManager _prototypeManager = default!; + [Dependency] private readonly ISharedPlayerManager _playerManager = default!; + + private readonly SpriteSystem _spriteSystem; + + public event Action>? OnPlayEmote; + + public EmotesMenu() + { + IoCManager.InjectDependencies(this); + RobustXamlLoader.Load(this); + + _spriteSystem = _entManager.System(); + + var main = FindControl("Main"); + + var emotes = _prototypeManager.EnumeratePrototypes(); + foreach (var emote in emotes) + { + var player = _playerManager.LocalSession?.AttachedEntity; + if (emote.Category == EmoteCategory.Invalid || + emote.ChatTriggers.Count == 0 || + !(player.HasValue && (emote.Whitelist?.IsValid(player.Value, _entManager) ?? true)) || + (emote.Blacklist?.IsValid(player.Value, _entManager) ?? false)) + continue; + + if (!emote.Available && + _entManager.TryGetComponent(player.Value, out var speech) && + !speech.AllowedEmotes.Contains(emote.ID)) + continue; + + var parent = FindControl(emote.Category.ToString()); + + var button = new EmoteMenuButton + { + StyleClasses = { "RadialMenuButton" }, + SetSize = new Vector2(64f, 64f), + ToolTip = Loc.GetString(emote.Name), + ProtoId = emote.ID, + }; + + var tex = new TextureRect + { + VerticalAlignment = VAlignment.Center, + HorizontalAlignment = HAlignment.Center, + Texture = _spriteSystem.Frame0(emote.Icon), + TextureScale = new Vector2(2f, 2f), + }; + + button.AddChild(tex); + parent.AddChild(button); + foreach (var child in main.Children) + { + if (child is not RadialMenuTextureButton castChild) + continue; + + if (castChild.TargetLayer == emote.Category.ToString()) + { + castChild.Visible = true; + break; + } + } + } + + // Set up menu actions + foreach (var child in Children) + { + if (child is not RadialContainer container) + continue; + AddEmoteClickAction(container); + container.Radius = 64f + 32f * MathF.Log(container.Children.Count()); + } + } + + private void AddEmoteClickAction(RadialContainer container) + { + foreach (var child in container.Children) + { + if (child is not EmoteMenuButton castChild) + continue; + + castChild.OnButtonUp += _ => + { + OnPlayEmote?.Invoke(castChild.ProtoId); + Close(); + }; + } + } +} + + +public sealed class EmoteMenuButton : RadialMenuTextureButton +{ + public ProtoId ProtoId { get; set; } +} diff --git a/Content.Client/Chemistry/Components/SolutionItemStatusComponent.cs b/Content.Client/Chemistry/Components/SolutionItemStatusComponent.cs new file mode 100644 index 0000000000..58c5a05894 --- /dev/null +++ b/Content.Client/Chemistry/Components/SolutionItemStatusComponent.cs @@ -0,0 +1,22 @@ +using Content.Client.Chemistry.EntitySystems; +using Content.Client.Chemistry.UI; + +namespace Content.Client.Chemistry.Components; + +/// +/// Exposes a solution container's contents via a basic item status control. +/// +/// +/// Shows the solution volume, max volume, and transfer amount. +/// +/// +/// +[RegisterComponent] +public sealed partial class SolutionItemStatusComponent : Component +{ + /// + /// The ID of the solution that will be shown on the item status control. + /// + [DataField, ViewVariables(VVAccess.ReadWrite)] + public string Solution = "default"; +} diff --git a/Content.Client/Chemistry/EntitySystems/SolutionItemStatusSystem.cs b/Content.Client/Chemistry/EntitySystems/SolutionItemStatusSystem.cs new file mode 100644 index 0000000000..76aab516a7 --- /dev/null +++ b/Content.Client/Chemistry/EntitySystems/SolutionItemStatusSystem.cs @@ -0,0 +1,22 @@ +using Content.Client.Chemistry.Components; +using Content.Client.Chemistry.UI; +using Content.Client.Items; +using Content.Shared.Chemistry.EntitySystems; + +namespace Content.Client.Chemistry.EntitySystems; + +/// +/// Wires up item status logic for . +/// +/// +public sealed class SolutionItemStatusSystem : EntitySystem +{ + [Dependency] private readonly SharedSolutionContainerSystem _solutionContainerSystem = default!; + + public override void Initialize() + { + base.Initialize(); + Subs.ItemStatus( + entity => new SolutionStatusControl(entity, EntityManager, _solutionContainerSystem)); + } +} diff --git a/Content.Client/Chemistry/UI/ButtonGrid.cs b/Content.Client/Chemistry/UI/ButtonGrid.cs new file mode 100644 index 0000000000..0abd9ef8a4 --- /dev/null +++ b/Content.Client/Chemistry/UI/ButtonGrid.cs @@ -0,0 +1,119 @@ +using System; +using Robust.Client.Graphics; +using Robust.Client.UserInterface.Controls; + +namespace Content.Client.Chemistry.UI; + +/// +/// Creates a grid of buttons given a comma-seperated list of Text +/// +public sealed class ButtonGrid : GridContainer +{ + private string _buttonList = ""; + + /// + /// A comma-seperated list of text to use for each button. These will be inserted sequentially. + /// + public string ButtonList + { + get => _buttonList; + set + { + _buttonList = value; + Update(); + } + } + + public bool RadioGroup { get; set; } = false; + + private string? _selected; + + /// + /// Which button is currently selected. Only matters when is true. + /// + public string? Selected + { + get => _selected; + set + { + _selected = value; + Update(); + } + } + + public Action? OnButtonPressed; + + /// + /// + /// + public new int Columns + { + get => base.Columns; + set + { + base.Columns = value; + Update(); + } + } + + /// + /// + /// + public new int Rows + { + get => base.Rows; + set + { + base.Rows = value; + Update(); + } + } + + private void Update() + { + if (ButtonList == "") + return; + + this.Children.Clear(); + var i = 0; + var list = ButtonList.Split(","); + + var group = new ButtonGroup(); + + foreach (var button in list) + { + var btn = new Button(); + btn.Text = button; + btn.OnPressed += _ => + { + if (RadioGroup) + btn.Pressed = true; + Selected = button; + OnButtonPressed?.Invoke(button); + }; + if (button == Selected) + btn.Pressed = true; + var sep = HSeparationOverride ?? 0; + // ReSharper disable once PossibleLossOfFraction + // btn.SetWidth = (this.PixelWidth - sep * (Columns - 1)) / 3; + btn.Group = group; + + var row = i / Columns; + var col = i % Columns; + var last = i == list.Length - 1; + var lastCol = i == Columns - 1; + var lastRow = row == list.Length / Columns - 1; + + if (row == 0 && (lastCol || last)) + btn.AddStyleClass("OpenLeft"); + else if (col == 0 && lastRow) + btn.AddStyleClass("OpenRight"); + else + btn.AddStyleClass("OpenBoth"); + + this.Children.Add(btn); + + i++; + } + } +} diff --git a/Content.Client/Chemistry/UI/InjectorStatusControl.cs b/Content.Client/Chemistry/UI/InjectorStatusControl.cs index ba1f97cd1e..f9b0d90e20 100644 --- a/Content.Client/Chemistry/UI/InjectorStatusControl.cs +++ b/Content.Client/Chemistry/UI/InjectorStatusControl.cs @@ -32,7 +32,7 @@ protected override void FrameUpdate(FrameEventArgs args) { base.FrameUpdate(args); - if (!_solutionContainers.TryGetSolution(_parent.Owner, InjectorComponent.SolutionName, out _, out var solution)) + if (!_solutionContainers.TryGetSolution(_parent.Owner, _parent.Comp.SolutionName, out _, out var solution)) return; // only updates the UI if any of the details are different than they previously were diff --git a/Content.Client/Chemistry/UI/ReagentCardControl.xaml b/Content.Client/Chemistry/UI/ReagentCardControl.xaml new file mode 100644 index 0000000000..966c730140 --- /dev/null +++ b/Content.Client/Chemistry/UI/ReagentCardControl.xaml @@ -0,0 +1,37 @@ + + + + + + + diff --git a/Content.Client/Chemistry/UI/ReagentCardControl.xaml.cs b/Content.Client/Chemistry/UI/ReagentCardControl.xaml.cs new file mode 100644 index 0000000000..60336143fc --- /dev/null +++ b/Content.Client/Chemistry/UI/ReagentCardControl.xaml.cs @@ -0,0 +1,30 @@ +using Content.Shared.Chemistry; +using Robust.Client.AutoGenerated; +using Robust.Client.Graphics; +using Robust.Client.UserInterface; +using Robust.Client.UserInterface.XAML; + +namespace Content.Client.Chemistry.UI; + +[GenerateTypedNameReferences] +public sealed partial class ReagentCardControl : Control +{ + public string StorageSlotId { get; } + public Action? OnPressed; + public Action? OnEjectButtonPressed; + + public ReagentCardControl(ReagentInventoryItem item) + { + RobustXamlLoader.Load(this); + + StorageSlotId = item.StorageSlotId; + ColorPanel.PanelOverride = new StyleBoxFlat { BackgroundColor = item.ReagentColor }; + ReagentNameLabel.Text = item.ReagentLabel; + ReagentNameLabel.FontColorOverride = Color.White; + FillLabel.Text = item.StoredAmount; + EjectButtonIcon.Text = Loc.GetString("reagent-dispenser-window-eject-container-button"); + + MainButton.OnPressed += args => OnPressed?.Invoke(StorageSlotId); + EjectButton.OnPressed += args => OnEjectButtonPressed?.Invoke(StorageSlotId); + } +} diff --git a/Content.Client/Chemistry/UI/ReagentDispenserBoundUserInterface.cs b/Content.Client/Chemistry/UI/ReagentDispenserBoundUserInterface.cs index 8244e3e6ed..99e5a3d395 100644 --- a/Content.Client/Chemistry/UI/ReagentDispenserBoundUserInterface.cs +++ b/Content.Client/Chemistry/UI/ReagentDispenserBoundUserInterface.cs @@ -1,3 +1,4 @@ +using Content.Client.Guidebook.Components; using Content.Shared.Chemistry; using Content.Shared.Containers.ItemSlots; using JetBrains.Annotations; @@ -34,6 +35,7 @@ protected override void Open() _window = new() { Title = EntMan.GetComponent(Owner).EntityName, + HelpGuidebookIds = EntMan.GetComponent(Owner).Guides }; _window.OpenCentered(); @@ -42,38 +44,11 @@ protected override void Open() // Setup static button actions. _window.EjectButton.OnPressed += _ => SendMessage(new ItemSlotButtonPressedEvent(SharedReagentDispenser.OutputSlotName)); _window.ClearButton.OnPressed += _ => SendMessage(new ReagentDispenserClearContainerSolutionMessage()); - _window.DispenseButton1.OnPressed += _ => SendMessage(new ReagentDispenserSetDispenseAmountMessage(ReagentDispenserDispenseAmount.U1)); - _window.DispenseButton5.OnPressed += _ => SendMessage(new ReagentDispenserSetDispenseAmountMessage(ReagentDispenserDispenseAmount.U5)); - _window.DispenseButton10.OnPressed += _ => SendMessage(new ReagentDispenserSetDispenseAmountMessage(ReagentDispenserDispenseAmount.U10)); - _window.DispenseButton15.OnPressed += _ => SendMessage(new ReagentDispenserSetDispenseAmountMessage(ReagentDispenserDispenseAmount.U15)); - _window.DispenseButton20.OnPressed += _ => SendMessage(new ReagentDispenserSetDispenseAmountMessage(ReagentDispenserDispenseAmount.U20)); - _window.DispenseButton25.OnPressed += _ => SendMessage(new ReagentDispenserSetDispenseAmountMessage(ReagentDispenserDispenseAmount.U25)); - _window.DispenseButton30.OnPressed += _ => SendMessage(new ReagentDispenserSetDispenseAmountMessage(ReagentDispenserDispenseAmount.U30)); - _window.DispenseButton50.OnPressed += _ => SendMessage(new ReagentDispenserSetDispenseAmountMessage(ReagentDispenserDispenseAmount.U50)); - _window.DispenseButton100.OnPressed += _ => SendMessage(new ReagentDispenserSetDispenseAmountMessage(ReagentDispenserDispenseAmount.U100)); - // Setup reagent button actions. - _window.OnDispenseReagentButtonPressed += (args, button) => SendMessage(new ReagentDispenserDispenseReagentMessage(button.ReagentId)); - _window.OnDispenseReagentButtonMouseEntered += (args, button) => - { - if (_lastState is not null) - _window.UpdateContainerInfo(_lastState); - }; - _window.OnDispenseReagentButtonMouseExited += (args, button) => - { - if (_lastState is not null) - _window.UpdateContainerInfo(_lastState); - }; + _window.AmountGrid.OnButtonPressed += s => SendMessage(new ReagentDispenserSetDispenseAmountMessage(s)); - _window.OnEjectJugButtonPressed += (args, button) => SendMessage(new ItemSlotButtonPressedEvent(button.ReagentId)); - _window.OnEjectJugButtonMouseEntered += (args, button) => { - if (_lastState is not null) - _window.UpdateContainerInfo(_lastState); - }; - _window.OnEjectJugButtonMouseExited += (args, button) => { - if (_lastState is not null) - _window.UpdateContainerInfo(_lastState); - }; + _window.OnDispenseReagentButtonPressed += (id) => SendMessage(new ReagentDispenserDispenseReagentMessage(id)); + _window.OnEjectJugButtonPressed += (id) => SendMessage(new ItemSlotButtonPressedEvent(id)); } /// diff --git a/Content.Client/Chemistry/UI/ReagentDispenserWindow.xaml b/Content.Client/Chemistry/UI/ReagentDispenserWindow.xaml index 3b812ba56b..c900d7ecf2 100644 --- a/Content.Client/Chemistry/UI/ReagentDispenserWindow.xaml +++ b/Content.Client/Chemistry/UI/ReagentDispenserWindow.xaml @@ -1,53 +1,77 @@ - - - - [GenerateTypedNameReferences] - public sealed partial class ReagentDispenserWindow : DefaultWindow + public sealed partial class ReagentDispenserWindow : FancyWindow { [Dependency] private readonly IPrototypeManager _prototypeManager = default!; [Dependency] private readonly IEntityManager _entityManager = default!; - public event Action? OnDispenseReagentButtonPressed; - public event Action? OnDispenseReagentButtonMouseEntered; - public event Action? OnDispenseReagentButtonMouseExited; - - public event Action? OnEjectJugButtonPressed; - public event Action? OnEjectJugButtonMouseEntered; - public event Action? OnEjectJugButtonMouseExited; + public event Action? OnDispenseReagentButtonPressed; + public event Action? OnEjectJugButtonPressed; /// /// Create and initialize the dispenser UI client-side. Creates the basic layout, @@ -35,44 +29,27 @@ public ReagentDispenserWindow() { RobustXamlLoader.Load(this); IoCManager.InjectDependencies(this); - - var dispenseAmountGroup = new ButtonGroup(); - DispenseButton1.Group = dispenseAmountGroup; - DispenseButton5.Group = dispenseAmountGroup; - DispenseButton10.Group = dispenseAmountGroup; - DispenseButton15.Group = dispenseAmountGroup; - DispenseButton20.Group = dispenseAmountGroup; - DispenseButton25.Group = dispenseAmountGroup; - DispenseButton30.Group = dispenseAmountGroup; - DispenseButton50.Group = dispenseAmountGroup; - DispenseButton100.Group = dispenseAmountGroup; } /// /// Update the button grid of reagents which can be dispensed. /// /// Reagents which can be dispensed by this dispenser - public void UpdateReagentsList(List>> inventory) + public void UpdateReagentsList(List inventory) { - if (ChemicalList == null) + if (ReagentList == null) return; - ChemicalList.Children.Clear(); + ReagentList.Children.Clear(); //Sort inventory by reagentLabel - inventory.Sort((x, y) => x.Value.Key.CompareTo(y.Value.Key)); + inventory.Sort((x, y) => x.ReagentLabel.CompareTo(y.ReagentLabel)); - foreach (KeyValuePair> entry in inventory) + foreach (var item in inventory) { - var button = new DispenseReagentButton(entry.Key, entry.Value.Key, entry.Value.Value); - button.OnPressed += args => OnDispenseReagentButtonPressed?.Invoke(args, button); - button.OnMouseEntered += args => OnDispenseReagentButtonMouseEntered?.Invoke(args, button); - button.OnMouseExited += args => OnDispenseReagentButtonMouseExited?.Invoke(args, button); - ChemicalList.AddChild(button); - var ejectButton = new EjectJugButton(entry.Key); - ejectButton.OnPressed += args => OnEjectJugButtonPressed?.Invoke(args, ejectButton); - ejectButton.OnMouseEntered += args => OnEjectJugButtonMouseEntered?.Invoke(args, ejectButton); - ejectButton.OnMouseExited += args => OnEjectJugButtonMouseExited?.Invoke(args, ejectButton); - ChemicalList.AddChild(ejectButton); + var card = new ReagentCardControl(item); + card.OnPressed += OnDispenseReagentButtonPressed; + card.OnEjectButtonPressed += OnEjectJugButtonPressed; + ReagentList.Children.Add(card); } } @@ -93,36 +70,7 @@ public void UpdateState(BoundUserInterfaceState state) ClearButton.Disabled = castState.OutputContainer is null; EjectButton.Disabled = castState.OutputContainer is null; - switch (castState.SelectedDispenseAmount) - { - case ReagentDispenserDispenseAmount.U1: - DispenseButton1.Pressed = true; - break; - case ReagentDispenserDispenseAmount.U5: - DispenseButton5.Pressed = true; - break; - case ReagentDispenserDispenseAmount.U10: - DispenseButton10.Pressed = true; - break; - case ReagentDispenserDispenseAmount.U15: - DispenseButton15.Pressed = true; - break; - case ReagentDispenserDispenseAmount.U20: - DispenseButton20.Pressed = true; - break; - case ReagentDispenserDispenseAmount.U25: - DispenseButton25.Pressed = true; - break; - case ReagentDispenserDispenseAmount.U30: - DispenseButton30.Pressed = true; - break; - case ReagentDispenserDispenseAmount.U50: - DispenseButton50.Pressed = true; - break; - case ReagentDispenserDispenseAmount.U100: - DispenseButton100.Pressed = true; - break; - } + AmountGrid.Selected = ((int)castState.SelectedDispenseAmount).ToString(); } /// @@ -137,23 +85,15 @@ public void UpdateContainerInfo(ReagentDispenserBoundUserInterfaceState state) if (state.OutputContainer is null) { + ContainerInfoName.Text = ""; + ContainerInfoFill.Text = ""; ContainerInfo.Children.Add(new Label { Text = Loc.GetString("reagent-dispenser-window-no-container-loaded-text") }); return; } - ContainerInfo.Children.Add(new BoxContainer // Name of the container and its fill status (Ex: 44/100u) - { - Orientation = LayoutOrientation.Horizontal, - Children = - { - new Label {Text = $"{state.OutputContainer.DisplayName}: "}, - new Label - { - Text = $"{state.OutputContainer.CurrentVolume}/{state.OutputContainer.MaxVolume}", - StyleClasses = {StyleNano.StyleClassLabelSecondaryColor} - } - } - }); + // Set Name of the container and its fill status (Ex: 44/100u) + ContainerInfoName.Text = state.OutputContainer.DisplayName; + ContainerInfoFill.Text = state.OutputContainer.CurrentVolume + "/" + state.OutputContainer.MaxVolume; foreach (var (reagent, quantity) in state.OutputContainer.Reagents!) { diff --git a/Content.Client/Chemistry/UI/SolutionStatusControl.cs b/Content.Client/Chemistry/UI/SolutionStatusControl.cs new file mode 100644 index 0000000000..1a33ffb0e1 --- /dev/null +++ b/Content.Client/Chemistry/UI/SolutionStatusControl.cs @@ -0,0 +1,59 @@ +using Content.Client.Chemistry.Components; +using Content.Client.Chemistry.EntitySystems; +using Content.Client.Items.UI; +using Content.Client.Message; +using Content.Client.Stylesheets; +using Content.Shared.Chemistry.Components; +using Content.Shared.Chemistry.EntitySystems; +using Content.Shared.FixedPoint; +using Robust.Client.UserInterface.Controls; + +namespace Content.Client.Chemistry.UI; + +/// +/// Displays basic solution information for . +/// +/// +public sealed class SolutionStatusControl : PollingItemStatusControl +{ + private readonly Entity _parent; + private readonly IEntityManager _entityManager; + private readonly SharedSolutionContainerSystem _solutionContainers; + private readonly RichTextLabel _label; + + public SolutionStatusControl( + Entity parent, + IEntityManager entityManager, + SharedSolutionContainerSystem solutionContainers) + { + _parent = parent; + _entityManager = entityManager; + _solutionContainers = solutionContainers; + _label = new RichTextLabel { StyleClasses = { StyleNano.StyleClassItemStatus } }; + AddChild(_label); + } + + protected override Data PollData() + { + if (!_solutionContainers.TryGetSolution(_parent.Owner, _parent.Comp.Solution, out _, out var solution)) + return default; + + FixedPoint2? transferAmount = null; + if (_entityManager.TryGetComponent(_parent.Owner, out SolutionTransferComponent? transfer)) + transferAmount = transfer.TransferAmount; + + return new Data(solution.Volume, solution.MaxVolume, transferAmount); + } + + protected override void Update(in Data data) + { + var markup = Loc.GetString("solution-status-volume", + ("currentVolume", data.Volume), + ("maxVolume", data.MaxVolume)); + if (data.TransferVolume is { } transferVolume) + markup += "\n" + Loc.GetString("solution-status-transfer", ("volume", transferVolume)); + _label.SetMarkup(markup); + } + + public readonly record struct Data(FixedPoint2 Volume, FixedPoint2 MaxVolume, FixedPoint2? TransferVolume); +} diff --git a/Content.Client/Clothing/ClientClothingSystem.cs b/Content.Client/Clothing/ClientClothingSystem.cs index 7e78ac7d70..dd69521f48 100644 --- a/Content.Client/Clothing/ClientClothingSystem.cs +++ b/Content.Client/Clothing/ClientClothingSystem.cs @@ -11,6 +11,7 @@ using Robust.Client.GameObjects; using Robust.Client.Graphics; using Robust.Client.ResourceManagement; +using Robust.Shared.Serialization.Manager; using Robust.Shared.Serialization.TypeSerializers.Implementations; using Robust.Shared.Utility; using static Robust.Client.GameObjects.SpriteComponent; @@ -46,6 +47,7 @@ public sealed class ClientClothingSystem : ClothingSystem }; [Dependency] private readonly IResourceCache _cache = default!; + [Dependency] private readonly ISerializationManager _serialization = default!; [Dependency] private readonly InventorySystem _inventorySystem = default!; public override void Initialize() @@ -265,6 +267,7 @@ private void RenderEquipment(EntityUid equipee, EntityUid equipment, string slot // temporary, until layer draw depths get added. Basically: a layer with the key "slot" is being used as a // bookmark to determine where in the list of layers we should insert the clothing layers. bool slotLayerExists = sprite.LayerMapTryGet(slot, out var index); + var displacementData = inventory.Displacements.GetValueOrDefault(slot); // add the new layers foreach (var (key, layerData) in ev.Layers) @@ -308,6 +311,28 @@ private void RenderEquipment(EntityUid equipee, EntityUid equipment, string slot sprite.LayerSetData(index, layerData); layer.Offset += slotDef.Offset; + + if (displacementData != null) + { + if (displacementData.ShaderOverride != null) + sprite.LayerSetShader(index, displacementData.ShaderOverride); + + var displacementKey = $"{key}-displacement"; + if (!revealedLayers.Add(displacementKey)) + { + Log.Warning($"Duplicate key for clothing visuals DISPLACEMENT: {displacementKey}."); + continue; + } + + var displacementLayer = _serialization.CreateCopy(displacementData.Layer, notNullableOverride: true); + displacementLayer.CopyToShaderParameters!.LayerKey = key; + + // Add before main layer for this item. + sprite.AddLayer(displacementLayer, index); + sprite.LayerMapSet(displacementKey, index); + + revealedLayers.Add(displacementKey); + } } RaiseLocalEvent(equipment, new EquipmentVisualsUpdatedEvent(equipee, slot, revealedLayers), true); diff --git a/Content.Client/Cocoon/CocoonSystem.cs b/Content.Client/Cocoon/CocoonSystem.cs new file mode 100644 index 0000000000..d3eb4a8205 --- /dev/null +++ b/Content.Client/Cocoon/CocoonSystem.cs @@ -0,0 +1,33 @@ +using Content.Shared.Cocoon; +using Content.Shared.Humanoid; +using Robust.Client.GameObjects; +using Robust.Shared.Containers; +using System.Numerics; + +namespace Content.Client.Cocoon +{ + public sealed class CocoonSystem : EntitySystem + { + public override void Initialize() + { + base.Initialize(); + + SubscribeLocalEvent(OnCocEntInserted); + } + + private void OnCocEntInserted(EntityUid uid, CocoonComponent component, EntInsertedIntoContainerMessage args) + { + if (!TryComp(uid, out var cocoonSprite)) + return; + + if (TryComp(args.Entity, out var humanoidAppearance)) // If humanoid, use height and width + cocoonSprite.Scale = new Vector2(humanoidAppearance.Width, humanoidAppearance.Height); + else if (!TryComp(args.Entity, out var entSprite)) + return; + else if (entSprite.BaseRSI != null) // Set scale based on sprite scale + sprite dimensions. Ideally we would somehow get a bounding box from the sprite size not including transparent pixels, but FUCK figuring that out. + cocoonSprite.Scale = entSprite.Scale * (entSprite.BaseRSI.Size / 32); + else if (entSprite.Scale != cocoonSprite.Scale) // if basersi somehow not found (?) just use scale + cocoonSprite.Scale = entSprite.Scale; + } + } +} diff --git a/Content.Client/Communications/UI/CommunicationsConsoleMenu.xaml.cs b/Content.Client/Communications/UI/CommunicationsConsoleMenu.xaml.cs index 90643e45cf..4d8dd86a4d 100644 --- a/Content.Client/Communications/UI/CommunicationsConsoleMenu.xaml.cs +++ b/Content.Client/Communications/UI/CommunicationsConsoleMenu.xaml.cs @@ -1,7 +1,9 @@ using Content.Client.UserInterface.Controls; using System.Threading; +using Content.Shared.CCVar; using Robust.Client.AutoGenerated; using Robust.Client.UserInterface.XAML; +using Robust.Shared.Configuration; using Robust.Shared.Utility; using Timer = Robust.Shared.Timing.Timer; @@ -13,6 +15,8 @@ public sealed partial class CommunicationsConsoleMenu : FancyWindow private CommunicationsConsoleBoundUserInterface Owner { get; set; } private readonly CancellationTokenSource _timerCancelTokenSource = new(); + [Dependency] private readonly IConfigurationManager _cfg = default!; + public CommunicationsConsoleMenu(CommunicationsConsoleBoundUserInterface owner) { IoCManager.InjectDependencies(this); @@ -23,6 +27,22 @@ public CommunicationsConsoleMenu(CommunicationsConsoleBoundUserInterface owner) var loc = IoCManager.Resolve(); MessageInput.Placeholder = new Rope.Leaf(loc.GetString("comms-console-menu-announcement-placeholder")); + var maxAnnounceLength = _cfg.GetCVar(CCVars.ChatMaxAnnouncementLength); + MessageInput.OnTextChanged += (args) => + { + if (args.Control.TextLength > maxAnnounceLength) + { + AnnounceButton.Disabled = true; + AnnounceButton.ToolTip = Loc.GetString("comms-console-message-too-long"); + } + else + { + AnnounceButton.Disabled = !owner.CanAnnounce; + AnnounceButton.ToolTip = null; + + } + }; + AnnounceButton.OnPressed += (_) => Owner.AnnounceButtonPressed(Rope.Collapse(MessageInput.TextRope)); AnnounceButton.Disabled = !owner.CanAnnounce; diff --git a/Content.Client/Content.Client.csproj b/Content.Client/Content.Client.csproj index c1958acba7..956f2fd035 100644 --- a/Content.Client/Content.Client.csproj +++ b/Content.Client/Content.Client.csproj @@ -26,11 +26,6 @@ - - - LobbyCharacterPanel.xaml - - diff --git a/Content.Client/CriminalRecords/Systems/CriminalRecordsHackerSystem.cs b/Content.Client/CriminalRecords/Systems/CriminalRecordsHackerSystem.cs new file mode 100644 index 0000000000..21fccc880d --- /dev/null +++ b/Content.Client/CriminalRecords/Systems/CriminalRecordsHackerSystem.cs @@ -0,0 +1,7 @@ +using Content.Shared.CriminalRecords.Systems; + +namespace Content.Client.CriminalRecords.Systems; + +public sealed class CriminalRecordsHackerSystem : SharedCriminalRecordsHackerSystem +{ +} diff --git a/Content.Client/DeltaV/Options/UI/Tabs/DeltaTab.xaml b/Content.Client/DeltaV/Options/UI/Tabs/DeltaTab.xaml deleted file mode 100644 index f1dae68077..0000000000 --- a/Content.Client/DeltaV/Options/UI/Tabs/DeltaTab.xaml +++ /dev/null @@ -1,23 +0,0 @@ - - - - - - diff --git a/Content.Client/Lathe/UI/RecipeControl.xaml.cs b/Content.Client/Lathe/UI/RecipeControl.xaml.cs index bf85ff7d93..47b6b5932c 100644 --- a/Content.Client/Lathe/UI/RecipeControl.xaml.cs +++ b/Content.Client/Lathe/UI/RecipeControl.xaml.cs @@ -2,8 +2,8 @@ using Robust.Client.AutoGenerated; using Robust.Client.Graphics; using Robust.Client.UserInterface; +using Robust.Client.UserInterface.Controls; using Robust.Client.UserInterface.XAML; -using Robust.Shared.Graphics; namespace Content.Client.Lathe.UI; @@ -13,12 +13,12 @@ public sealed partial class RecipeControl : Control public Action? OnButtonPressed; public Func TooltipTextSupplier; - public RecipeControl(LatheRecipePrototype recipe, Func tooltipTextSupplier, bool canProduce, Texture? texture = null) + public RecipeControl(LatheRecipePrototype recipe, Func tooltipTextSupplier, bool canProduce, List textures) { RobustXamlLoader.Load(this); RecipeName.Text = recipe.Name; - RecipeTexture.Texture = texture; + RecipeTextures.Textures = textures; Button.Disabled = !canProduce; TooltipTextSupplier = tooltipTextSupplier; Button.TooltipSupplier = SupplyTooltip; diff --git a/Content.Client/Light/EntitySystems/ExpendableLightSystem.cs b/Content.Client/Light/EntitySystems/ExpendableLightSystem.cs index a2a7fb2531..8077406730 100644 --- a/Content.Client/Light/EntitySystems/ExpendableLightSystem.cs +++ b/Content.Client/Light/EntitySystems/ExpendableLightSystem.cs @@ -52,7 +52,7 @@ protected override void OnAppearanceChange(EntityUid uid, ExpendableLightCompone case ExpendableLightState.Lit: _audioSystem.Stop(comp.PlayingStream); comp.PlayingStream = _audioSystem.PlayPvs( - comp.LoopedSound, uid, SharedExpendableLightComponent.LoopedSoundParams)?.Entity; + comp.LoopedSound, uid)?.Entity; if (args.Sprite.LayerMapTryGet(ExpendableLightVisualLayers.Overlay, out var layerIdx, true)) { diff --git a/Content.Client/Preferences/ClientPreferencesManager.cs b/Content.Client/Lobby/ClientPreferencesManager.cs similarity index 99% rename from Content.Client/Preferences/ClientPreferencesManager.cs rename to Content.Client/Lobby/ClientPreferencesManager.cs index aca7159504..2926968657 100644 --- a/Content.Client/Preferences/ClientPreferencesManager.cs +++ b/Content.Client/Lobby/ClientPreferencesManager.cs @@ -10,7 +10,7 @@ using Robust.Shared.Prototypes; using Robust.Shared.Utility; -namespace Content.Client.Preferences +namespace Content.Client.Lobby { /// /// Receives and from the server during the initial diff --git a/Content.Client/Preferences/IClientPreferencesManager.cs b/Content.Client/Lobby/IClientPreferencesManager.cs similarity index 94% rename from Content.Client/Preferences/IClientPreferencesManager.cs rename to Content.Client/Lobby/IClientPreferencesManager.cs index e55d6b600c..1b72593ad0 100644 --- a/Content.Client/Preferences/IClientPreferencesManager.cs +++ b/Content.Client/Lobby/IClientPreferencesManager.cs @@ -1,7 +1,7 @@ using System; using Content.Shared.Preferences; -namespace Content.Client.Preferences +namespace Content.Client.Lobby { public interface IClientPreferencesManager { diff --git a/Content.Client/Lobby/LobbyState.cs b/Content.Client/Lobby/LobbyState.cs index 76845cc569..e206098adc 100644 --- a/Content.Client/Lobby/LobbyState.cs +++ b/Content.Client/Lobby/LobbyState.cs @@ -1,14 +1,11 @@ using System.Linq; using System.Numerics; -using Content.Client._White.UI.Buttons; using Content.Client.Audio; using Content.Client.Changelog; using Content.Client.GameTicking.Managers; using Content.Client.LateJoin; using Content.Client.Lobby.UI; using Content.Client.Message; -using Content.Client.Preferences; -using Content.Client.Preferences.UI; using Content.Client.Resources; using Content.Client.UserInterface.Systems.Chat; using Content.Client.Voting; @@ -17,8 +14,6 @@ using Robust.Client.ResourceManagement; using Robust.Client.UserInterface; using Robust.Client.UserInterface.Controls; -using Robust.Shared.Configuration; -using Robust.Shared.Prototypes; using Robust.Shared.Timing; using Robust.Shared.Utility; @@ -30,60 +25,41 @@ public sealed class LobbyState : Robust.Client.State.State [Dependency] private readonly IClientConsoleHost _consoleHost = default!; [Dependency] private readonly IEntityManager _entityManager = default!; [Dependency] private readonly IResourceCache _resourceCache = default!; - [Dependency] private readonly IPrototypeManager _prototypeManager = default!; [Dependency] private readonly IUserInterfaceManager _userInterfaceManager = default!; - [Dependency] private readonly IClientPreferencesManager _preferencesManager = default!; [Dependency] private readonly IGameTiming _gameTiming = default!; [Dependency] private readonly IVoteManager _voteManager = default!; - [Dependency] private readonly IConfigurationManager _configurationManager = default!; [Dependency] private readonly ChangelogManager _changelog = default!; // WD EDIT - [ViewVariables] private CharacterSetupGui? _characterSetup; - private ClientGameTicker _gameTicker = default!; private ContentAudioSystem _contentAudioSystem = default!; protected override Type? LinkedScreenType { get; } = typeof(LobbyGui); - private LobbyGui? _lobby; + public LobbyGui? Lobby; protected override void Startup() { if (_userInterfaceManager.ActiveScreen == null) return; - _lobby = (LobbyGui) _userInterfaceManager.ActiveScreen; + Lobby = (LobbyGui) _userInterfaceManager.ActiveScreen; var chatController = _userInterfaceManager.GetUIController(); _gameTicker = _entityManager.System(); _contentAudioSystem = _entityManager.System(); _contentAudioSystem.LobbySoundtrackChanged += UpdateLobbySoundtrackInfo; - _characterSetup = new CharacterSetupGui(_entityManager, _resourceCache, _preferencesManager, - _prototypeManager, _configurationManager); - LayoutContainer.SetAnchorPreset(_characterSetup, LayoutContainer.LayoutPreset.Wide); - _lobby.CharacterSetupState.AddChild(_characterSetup); chatController.SetMainChat(true); - _voteManager.SetPopupContainer(_lobby.VoteContainer); - - _characterSetup.CloseButton.OnPressed += _ => - { - _lobby.SwitchState(LobbyGui.LobbyGuiState.Default); - }; - - _characterSetup.SaveButton.OnPressed += _ => - { - _characterSetup.Save(); - _userInterfaceManager.GetUIController().UpdateCharacterUI(); - }; + _voteManager.SetPopupContainer(Lobby.VoteContainer); + LayoutContainer.SetAnchorPreset(Lobby, LayoutContainer.LayoutPreset.Wide); + Lobby.ServerName.Text = _baseClient.GameInfo?.ServerName; // The eye of refactor gazes upon you... - LayoutContainer.SetAnchorPreset(_lobby, LayoutContainer.LayoutPreset.Wide); - _lobby.ServerName.Text = _baseClient.GameInfo?.ServerName; //The eye of refactor gazes upon you... UpdateLobbyUi(); - _lobby.CharacterSetupButton.OnPressed += OnSetupPressed; // WD EDIT - _lobby.ReadyButton.OnPressed += OnReadyPressed; - _lobby.ReadyButton.OnToggled += OnReadyToggled; + // Lobby.CharacterPreview.CharacterSetupButton.OnPressed += OnSetupPressed; + Lobby.ReadyButton.OnPressed += OnReadyPressed; + Lobby.ReadyButton.OnToggled += OnReadyToggled; + Lobby.CharacterSetupButton.OnPressed += OnSetupPressed; _gameTicker.InfoBlobUpdated += UpdateLobbyUi; _gameTicker.LobbyStatusUpdated += LobbyStatusUpdated; @@ -94,6 +70,7 @@ protected override void Startup() protected override void Shutdown() { + var chatController = _userInterfaceManager.GetUIController(); chatController.SetMainChat(false); _gameTicker.InfoBlobUpdated -= UpdateLobbyUi; @@ -103,20 +80,27 @@ protected override void Shutdown() _voteManager.ClearPopupContainer(); - _lobby!.CharacterSetupButton.OnPressed -= OnSetupPressed; // WD EDIT - _lobby!.ReadyButton.OnPressed -= OnReadyPressed; - _lobby!.ReadyButton.OnToggled -= OnReadyToggled; + if (Lobby is null) + return; + + Lobby.CharacterSetupButton.OnPressed -= OnSetupPressed; + // Lobby!.CharacterPreview.CharacterSetupButton.OnPressed -= OnSetupPressed; + Lobby.ReadyButton.OnPressed -= OnReadyPressed; + Lobby.ReadyButton.OnToggled -= OnReadyToggled; - _lobby = null; + Lobby = null; + } - _characterSetup?.Dispose(); - _characterSetup = null; + public void SwitchState(LobbyGui.LobbyGuiState state) + { + // Yeah I hate this but LobbyState contains all the badness for now + Lobby?.SwitchState(state); } private void OnSetupPressed(BaseButton.ButtonEventArgs args) { SetReady(false); - _lobby!.SwitchState(LobbyGui.LobbyGuiState.CharacterSetup); + Lobby?.SwitchState(LobbyGui.LobbyGuiState.CharacterSetup); } private void OnReadyPressed(BaseButton.ButtonEventArgs args) @@ -136,20 +120,22 @@ public override void FrameUpdate(FrameEventArgs e) { if (_gameTicker.IsGameStarted) { - _lobby!.StartTime.Text = string.Empty; + Lobby!.StartTime.Text = string.Empty; var roundTime = _gameTiming.CurTime.Subtract(_gameTicker.RoundStartTimeSpan); - _lobby!.StationTime.Text = Loc.GetString("lobby-state-player-status-round-time", ("hours", roundTime.Hours), ("minutes", roundTime.Minutes)); + Lobby!.StationTime.Text = Loc.GetString("lobby-state-player-status-round-time", + ("hours", roundTime.Hours), + ("minutes", roundTime.Minutes)); return; } - _lobby!.StationTime.Text = Loc.GetString("lobby-state-player-status-round-not-started"); + Lobby!.StationTime.Text = Loc.GetString("lobby-state-player-status-round-not-started"); string text; if (_gameTicker.Paused) text = Loc.GetString("lobby-state-paused"); else if (_gameTicker.StartTime < _gameTiming.CurTime) { - _lobby!.StartTime.Text = Loc.GetString("lobby-state-soon"); + Lobby!.StartTime.Text = Loc.GetString("lobby-state-soon"); return; } else @@ -164,7 +150,7 @@ public override void FrameUpdate(FrameEventArgs e) text = $"{difference.Minutes}:{difference.Seconds:D2}"; } - _lobby!.StartTime.Text = Loc.GetString("lobby-state-round-start-countdown-text", ("timeLeft", text)); + Lobby!.StartTime.Text = Loc.GetString("lobby-state-round-start-countdown-text", ("timeLeft", text)); } private void LobbyStatusUpdated() @@ -175,47 +161,43 @@ private void LobbyStatusUpdated() private void LobbyLateJoinStatusUpdated() { - _lobby!.ReadyButton.Disabled = _gameTicker.DisallowedLateJoin; + Lobby!.ReadyButton.Disabled = _gameTicker.DisallowedLateJoin; } private void UpdateLobbyUi() { if (_gameTicker.IsGameStarted) { - MakeButtonJoinGame(_lobby!.ReadyButton); // WD EDIT - _lobby!.ReadyButton.ToggleMode = false; - _lobby!.ReadyButton.Pressed = false; - _lobby!.ObserveButton.Disabled = false; + Lobby!.ReadyButton.ButtonText = Loc.GetString("lobby-state-ready-button-join-state"); + Lobby!.ReadyButton.ToggleMode = false; + Lobby!.ReadyButton.Pressed = false; + Lobby!.ObserveButton.Disabled = false; } else { - // WD EDIT START - if (_lobby!.ReadyButton.Pressed) - MakeButtonReady(_lobby!.ReadyButton); - else - MakeButtonUnReady(_lobby!.ReadyButton); - // WD EDIT END - - _lobby!.StartTime.Text = string.Empty; - _lobby!.ReadyButton.ToggleMode = true; - _lobby!.ReadyButton.Disabled = false; - _lobby!.ReadyButton.Pressed = _gameTicker.AreWeReady; - _lobby!.ObserveButton.Disabled = true; + Lobby!.ReadyButton.ButtonText = Loc.GetString(Lobby!.ReadyButton.Pressed + ? "lobby-state-player-status-ready" + : "lobby-state-player-status-not-ready"); + Lobby!.StartTime.Text = string.Empty; + Lobby!.ReadyButton.ToggleMode = true; + Lobby!.ReadyButton.Disabled = false; + Lobby!.ReadyButton.Pressed = _gameTicker.AreWeReady; + Lobby!.ObserveButton.Disabled = true; } if (_gameTicker.ServerInfoBlob != null) - _lobby!.ServerInfo.SetInfoBlob(_gameTicker.ServerInfoBlob); + Lobby!.ServerInfo.SetInfoBlob(_gameTicker.ServerInfoBlob); - _lobby!.LabelName.SetMarkup("[font=\"Bedstead\" size=20] White Dream [/font]"); // WD EDIT - _lobby!.ChangelogLabel.SetMarkup(Loc.GetString("ui-lobby-changelog")); // WD EDIT + Lobby!.LabelName.SetMarkup("[font=\"Bedstead\" size=20] White Dream [/font]"); // WD EDIT + Lobby!.ChangelogLabel.SetMarkup(Loc.GetString("ui-lobby-changelog")); // WD EDIT } private void UpdateLobbySoundtrackInfo(LobbySoundtrackChangedEvent ev) { if (ev.SoundtrackFilename == null) - _lobby!.LobbySong.SetMarkup(Loc.GetString("lobby-state-song-no-song-text")); + Lobby!.LobbySong.SetMarkup(Loc.GetString("lobby-state-song-no-song-text")); else if (ev.SoundtrackFilename != null - && _resourceCache.TryGetResource(ev.SoundtrackFilename, out var lobbySongResource)) + && _resourceCache.TryGetResource(ev.SoundtrackFilename, out var lobbySongResource)) { var lobbyStream = lobbySongResource.AudioStream; @@ -231,14 +213,16 @@ private void UpdateLobbySoundtrackInfo(LobbySoundtrackChangedEvent ev) ("songTitle", title), ("songArtist", artist)); - _lobby!.LobbySong.SetMarkup(markup); + Lobby!.LobbySong.SetMarkup(markup); } } private void UpdateLobbyBackground() { if (_gameTicker.LobbyBackground != null) - _lobby!.Background.SetRSI(_resourceCache.GetResource(_gameTicker.LobbyBackground).RSI); // WD EDIT + Lobby!.Background.SetRSI(_resourceCache.GetResource(_gameTicker.LobbyBackground).RSI); + else + Lobby!.Background.Texture = null; } private void SetReady(bool newReady) @@ -249,35 +233,19 @@ private void SetReady(bool newReady) _consoleHost.ExecuteCommand($"toggleready {newReady}"); } - // WD EDIT START - private void MakeButtonReady(WhiteLobbyTextButton button) - { - button.ButtonText = Loc.GetString("lobby-state-ready-button-ready-up-state"); - } - - private void MakeButtonUnReady(WhiteLobbyTextButton button) - { - button.ButtonText = Loc.GetString("lobby-state-player-status-not-ready"); - } - - private void MakeButtonJoinGame(WhiteLobbyTextButton button) - { - button.ButtonText = Loc.GetString("lobby-state-ready-button-join-state"); - } - private async void PopulateChangelog() { - if (_lobby?.ChangelogContainer?.Children is null) + if (Lobby?.ChangelogContainer?.Children is null) return; - _lobby.ChangelogContainer.Children.Clear(); + Lobby.ChangelogContainer.Children.Clear(); var changelogs = await _changelog.LoadChangelog(); var whiteChangelog = changelogs.Find(cl => cl.Name == "Changelog"); if (whiteChangelog is null) { - _lobby.ChangelogContainer.Children.Add( + Lobby.ChangelogContainer.Children.Add( new RichTextLabel().SetMarkup(Loc.GetString("ui-lobby-changelog-not-found"))); return; @@ -323,10 +291,10 @@ private async void PopulateChangelog() box.AddChild(container); } - if (_lobby?.ChangelogContainer is null) + if (Lobby?.ChangelogContainer is null) return; - _lobby.ChangelogContainer.AddChild(box); + Lobby.ChangelogContainer.AddChild(box); } } diff --git a/Content.Client/Lobby/LobbyUIController.cs b/Content.Client/Lobby/LobbyUIController.cs index 47ab651c10..ccefbb0aa4 100644 --- a/Content.Client/Lobby/LobbyUIController.cs +++ b/Content.Client/Lobby/LobbyUIController.cs @@ -3,156 +3,250 @@ using Content.Client.Inventory; using Content.Client.Lobby.UI; using Content.Client.Players.PlayTimeTracking; -using Content.Client.Preferences; -using Content.Client.Preferences.UI; +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.Markings; using Content.Shared.Humanoid.Prototypes; using Content.Shared.Preferences; using Content.Shared.Roles; +using Content.Shared.Traits; +using Robust.Client.Player; +using Robust.Client.ResourceManagement; using Robust.Client.State; using Robust.Client.UserInterface; using Robust.Client.UserInterface.Controllers; +using Robust.Shared.Configuration; using Robust.Shared.Map; using Robust.Shared.Prototypes; +using Robust.Shared.Utility; +using static Content.Shared.Humanoid.SharedHumanoidAppearanceSystem; +using CharacterSetupGui = Content.Client.Lobby.UI.CharacterSetupGui; +using HumanoidProfileEditor = Content.Client.Lobby.UI.HumanoidProfileEditor; namespace Content.Client.Lobby; public sealed class LobbyUIController : UIController, IOnStateEntered, IOnStateExited { [Dependency] private readonly IClientPreferencesManager _preferencesManager = default!; - [Dependency] private readonly IStateManager _stateManager = default!; + [Dependency] private readonly IConfigurationManager _configurationManager = default!; + [Dependency] private readonly IFileDialogManager _dialogManager = default!; + [Dependency] private readonly IPlayerManager _playerManager = default!; [Dependency] private readonly IPrototypeManager _prototypeManager = default!; + [Dependency] private readonly IResourceCache _resourceCache = default!; + [Dependency] private readonly IStateManager _stateManager = default!; + [Dependency] private readonly JobRequirementsManager _requirements = default!; + [Dependency] private readonly MarkingManager _markings = default!; [Dependency] private readonly JobRequirementsManager _jobRequirements = default!; [UISystemDependency] private readonly HumanoidAppearanceSystem _humanoid = default!; [UISystemDependency] private readonly ClientInventorySystem _inventory = default!; [UISystemDependency] private readonly LoadoutSystem _loadouts = default!; - private LobbyCharacterPanel? _previewPanel; + private CharacterSetupGui? _characterSetup; private HumanoidProfileEditor? _profileEditor; - /* - * Each character profile has its own dummy. There is also a dummy for the lobby screen + character editor - * that is shared too. - */ + /// This is the character preview panel in the chat. This should only update if their character updates + private LobbyCharacterPreviewPanel? PreviewPanel => GetLobbyPreview(); - /// - /// Preview dummy for role gear. - /// - private EntityUid? _previewDummy; + /// This is the modified profile currently being edited + private HumanoidCharacterProfile? EditedProfile => _profileEditor?.Profile; + private int? EditedSlot => _profileEditor?.CharacterSlot; - [Access(typeof(HumanoidProfileEditor))] - public bool UpdateClothes = true; - [Access(typeof(HumanoidProfileEditor))] - public bool ShowClothes = true; - [Access(typeof(HumanoidProfileEditor))] - public bool ShowLoadouts = true; - - // TODO: Load the species directly and don't update entity ever. - public event Action? PreviewDummyUpdated; public override void Initialize() { base.Initialize(); + _prototypeManager.PrototypesReloaded += OnPrototypesReloaded; _preferencesManager.OnServerDataLoaded += PreferencesDataLoaded; - } + _requirements.Updated += OnRequirementsUpdated; - private void PreferencesDataLoaded() - { - if (_previewDummy != null) - EntityManager.DeleteEntity(_previewDummy); + _configurationManager.OnValueChanged(CCVars.FlavorText, _ => _profileEditor?.RefreshFlavorText()); + _configurationManager.OnValueChanged(CCVars.GameRoleTimers, + _ => + { + _profileEditor?.RefreshAntags(); + _profileEditor?.RefreshJobs(); + }); - UpdateCharacterUI(); + _preferencesManager.OnServerDataLoaded += PreferencesDataLoaded; } public void OnStateEntered(LobbyState state) { + PreviewPanel?.SetLoaded(_preferencesManager.ServerDataLoaded); + ReloadCharacterSetup(); } public void OnStateExited(LobbyState state) { - EntityManager.DeleteEntity(_previewDummy); - _previewDummy = null; + PreviewPanel?.SetLoaded(false); + _characterSetup?.Dispose(); + _profileEditor?.Dispose(); + _characterSetup = null; + _profileEditor = null; } - public void SetPreviewPanel(LobbyCharacterPanel? panel) + + private void PreferencesDataLoaded() { - _previewPanel = panel; - UpdateCharacterUI(); + PreviewPanel?.SetLoaded(true); + + if (_stateManager.CurrentState is not LobbyState) + return; + + ReloadCharacterSetup(); } - public void SetProfileEditor(HumanoidProfileEditor? editor) + private LobbyCharacterPreviewPanel? GetLobbyPreview() { - _profileEditor = editor; - UpdateCharacterUI(); + return _stateManager.CurrentState is LobbyState lobby ? lobby.Lobby?.CharacterPreview : null; } - public void UpdateCharacterUI() + private void OnRequirementsUpdated() { - // Test moment - if (_stateManager.CurrentState is not LobbyState) + if (_profileEditor == null) return; - if (!_preferencesManager.ServerDataLoaded) - { - _previewPanel?.SetLoaded(false); + _profileEditor.RefreshAntags(); + _profileEditor.RefreshJobs(); + } + + private void OnPrototypesReloaded(PrototypesReloadedEventArgs obj) + { + if (_profileEditor == null) return; - } - var maybeProfile = _profileEditor?.Profile ?? (HumanoidCharacterProfile) _preferencesManager.Preferences!.SelectedCharacter; + if (obj.WasModified()) + _profileEditor.RefreshSpecies(); + + if (obj.WasModified()) + _profileEditor.RefreshAntags(); + + if (obj.WasModified() + || obj.WasModified()) + _profileEditor.RefreshJobs(); + + if (obj.WasModified()) + _profileEditor.UpdateTraits(null, true); + + if (obj.WasModified()) + _profileEditor.UpdateLoadouts(null, true); + } + + + /// Reloads every single character setup control + public void ReloadCharacterSetup() + { + RefreshLobbyPreview(); + var (characterGui, profileEditor) = EnsureGui(); + characterGui.ReloadCharacterPickers(); + profileEditor.SetProfile( + (HumanoidCharacterProfile?) _preferencesManager.Preferences?.SelectedCharacter, + _preferencesManager.Preferences?.SelectedCharacterIndex); + } + + /// Refreshes the character preview in the lobby chat + private void RefreshLobbyPreview() + { + if (PreviewPanel == null) + return; - if (_previewDummy == null - || maybeProfile.Species != EntityManager.GetComponent(_previewDummy.Value).Species) + // Get selected character, load it, then set it + var character = _preferencesManager.Preferences?.SelectedCharacter; + + if (character is not HumanoidCharacterProfile humanoid) { - RespawnDummy(maybeProfile); - _previewPanel?.SetSprite(_previewDummy!.Value); + PreviewPanel.SetSprite(EntityUid.Invalid); + PreviewPanel.SetSummaryText(string.Empty); + return; } - _previewPanel?.SetLoaded(true); + var dummy = LoadProfileEntity(humanoid, true); + PreviewPanel.SetSprite(dummy); + PreviewPanel.SetSummaryText(humanoid.Summary); + } + + private void SaveProfile() + { + DebugTools.Assert(EditedProfile != null); - if (_previewDummy == null) + if (EditedProfile == null || EditedSlot == null) return; - _previewPanel?.SetSummaryText(maybeProfile.Summary); - _humanoid.LoadProfile(_previewDummy.Value, maybeProfile); + var selected = _preferencesManager.Preferences?.SelectedCharacterIndex; + if (selected == null) + return; + _preferencesManager.UpdateCharacter(EditedProfile, EditedSlot.Value); + ReloadCharacterSetup(); + } - if (UpdateClothes) + private (CharacterSetupGui, HumanoidProfileEditor) EnsureGui() + { + if (_characterSetup != null && _profileEditor != null) { - RemoveDummyClothes(_previewDummy.Value); - if (ShowClothes) - GiveDummyJobClothes(_previewDummy.Value, GetPreferredJob(maybeProfile), maybeProfile); - if (ShowLoadouts) - _loadouts.ApplyCharacterLoadout(_previewDummy.Value, GetPreferredJob(maybeProfile), maybeProfile, - _jobRequirements.GetRawPlayTimeTrackers(), _jobRequirements.IsWhitelisted()); - UpdateClothes = false; + _characterSetup.Visible = true; + _profileEditor.Visible = true; + return (_characterSetup, _profileEditor); } - PreviewDummyUpdated?.Invoke(_previewDummy.Value); - } + _profileEditor = new HumanoidProfileEditor( + _preferencesManager, + _configurationManager, + EntityManager, + _dialogManager, + _playerManager, + _prototypeManager, + _requirements, + _markings); + _characterSetup = new CharacterSetupGui(EntityManager, _prototypeManager, _resourceCache, _preferencesManager, _profileEditor); - public void RespawnDummy(HumanoidCharacterProfile profile) - { - if (_previewDummy != null) - RemoveDummyClothes(_previewDummy.Value); + _characterSetup.CloseButton.OnPressed += _ => + { + // Reset sliders etc. + _profileEditor.SetProfile(null, null); + _profileEditor.Visible = false; + if (_stateManager.CurrentState is LobbyState lobbyGui) + { + lobbyGui.SwitchState(LobbyGui.LobbyGuiState.Default); + } + }; + + _profileEditor.Save += SaveProfile; + + _characterSetup.SelectCharacter += args => + { + _preferencesManager.SelectCharacter(args); + ReloadCharacterSetup(); + }; + + _characterSetup.DeleteCharacter += args => + { + _preferencesManager.DeleteCharacter(args); - EntityManager.DeleteEntity(_previewDummy); - _previewDummy = EntityManager.SpawnEntity( - _prototypeManager.Index(profile.Species).DollPrototype, MapCoordinates.Nullspace); + if (EditedSlot == args) + // Reload everything + ReloadCharacterSetup(); + else + // Only need to reload character pickers + _characterSetup?.ReloadCharacterPickers(); + }; - UpdateClothes = true; + if (_stateManager.CurrentState is LobbyState lobby) + lobby.Lobby?.CharacterSetupState.AddChild(_characterSetup); + + return (_characterSetup, _profileEditor); } - /// - /// Gets the highest priority job for the profile. - /// + #region Helpers + + /// Gets the highest priority job for the profile. public JobPrototype GetPreferredJob(HumanoidCharacterProfile profile) { var highPriorityJob = profile.JobPriorities.FirstOrDefault(p => p.Value == JobPriority.High).Key; - // ReSharper disable once NullCoalescingConditionIsAlwaysNotNullAccordingToAPIContract (what is ReSharper smoking?) return _prototypeManager.Index(highPriorityJob ?? SharedGameTicker.FallbackOverflowJob); } @@ -166,9 +260,7 @@ public void RemoveDummyClothes(EntityUid dummy) EntityManager.DeleteEntity(unequippedItem.Value); } - /// - /// Applies the highest priority job's clothes and loadouts to the dummy. - /// + /// Applies the highest priority job's clothes and loadouts to the dummy. public void GiveDummyJobClothesLoadout(EntityUid dummy, HumanoidCharacterProfile profile) { var job = GetPreferredJob(profile); @@ -176,9 +268,7 @@ public void GiveDummyJobClothesLoadout(EntityUid dummy, HumanoidCharacterProfile _loadouts.ApplyCharacterLoadout(dummy, job, profile, _jobRequirements.GetRawPlayTimeTrackers(), _jobRequirements.IsWhitelisted()); } - /// - /// Applies the specified job's clothes to the dummy. - /// + /// Applies the specified job's clothes to the dummy. public void GiveDummyJobClothes(EntityUid dummy, JobPrototype job, HumanoidCharacterProfile profile) { if (!_inventory.TryGetSlots(dummy, out var slots) @@ -202,8 +292,28 @@ public void GiveDummyJobClothes(EntityUid dummy, JobPrototype job, HumanoidChara } } - public EntityUid? GetPreviewDummy() + /// Loads the profile onto a dummy entity + public EntityUid LoadProfileEntity(HumanoidCharacterProfile? humanoid, bool jobClothes) { - return _previewDummy; + EntityUid dummyEnt; + + if (humanoid is not null) + { + var dummy = _prototypeManager.Index(humanoid.Species).DollPrototype; + dummyEnt = EntityManager.SpawnEntity(dummy, MapCoordinates.Nullspace); + } + else + dummyEnt = EntityManager.SpawnEntity( + _prototypeManager.Index(DefaultSpecies).DollPrototype, + MapCoordinates.Nullspace); + + _humanoid.LoadProfile(dummyEnt, humanoid); + + if (humanoid != null && jobClothes) + GiveDummyJobClothesLoadout(dummyEnt, humanoid); + + return dummyEnt; } + + #endregion } diff --git a/Content.Client/Lobby/UI/CharacterPickerButton.xaml b/Content.Client/Lobby/UI/CharacterPickerButton.xaml new file mode 100644 index 0000000000..fa428b9b61 --- /dev/null +++ b/Content.Client/Lobby/UI/CharacterPickerButton.xaml @@ -0,0 +1,11 @@ + + + + + [GenerateTypedNameReferences] + public sealed partial class CharacterSetupGui : Control + { + private readonly IClientPreferencesManager _preferencesManager; + private readonly IEntityManager _entManager; + private readonly IPrototypeManager _protomanager; + + private readonly Button _createNewCharacterButton; + + public event Action? SelectCharacter; + public event Action? DeleteCharacter; + + public CharacterSetupGui( + IEntityManager entManager, + IPrototypeManager protoManager, + IResourceCache resourceCache, + IClientPreferencesManager preferencesManager, + HumanoidProfileEditor profileEditor) + { + RobustXamlLoader.Load(this); + _preferencesManager = preferencesManager; + _entManager = entManager; + _protomanager = protoManager; + + var panelTex = resourceCache.GetTexture("/Textures/Interface/Nano/button.svg.96dpi.png"); + var back = new StyleBoxTexture + { + Texture = panelTex, + Modulate = new Color(37, 37, 42) + }; + back.SetPatchMargin(StyleBox.Margin.All, 10); + + BackgroundPanel.PanelOverride = back; + + _createNewCharacterButton = new Button + { + Text = Loc.GetString("character-setup-gui-create-new-character-button"), + }; + + _createNewCharacterButton.OnPressed += args => + { + preferencesManager.CreateCharacter(HumanoidCharacterProfile.Random()); + ReloadCharacterPickers(); + args.Event.Handle(); + }; + + CharEditor.AddChild(profileEditor); + RulesButton.OnPressed += _ => new RulesAndInfoWindow().Open(); + + StatsButton.OnPressed += _ => new PlaytimeStatsWindow().OpenCentered(); + } + + /// + /// Disposes and reloads all character picker buttons from the preferences data. + /// + public void ReloadCharacterPickers() + { + _createNewCharacterButton.Orphan(); + Characters.DisposeAllChildren(); + + var numberOfFullSlots = 0; + var characterButtonsGroup = new ButtonGroup(); + + if (!_preferencesManager.ServerDataLoaded) + { + return; + } + + _createNewCharacterButton.ToolTip = + Loc.GetString("character-setup-gui-create-new-character-button-tooltip", + ("maxCharacters", _preferencesManager.Settings!.MaxCharacterSlots)); + + var selectedSlot = _preferencesManager.Preferences?.SelectedCharacterIndex; + + foreach (var (slot, character) in _preferencesManager.Preferences!.Characters) + { + numberOfFullSlots++; + var characterPickerButton = new CharacterPickerButton(_entManager, + _protomanager, + characterButtonsGroup, + character, + slot == selectedSlot); + + Characters.AddChild(characterPickerButton); + + characterPickerButton.OnPressed += args => + { + SelectCharacter?.Invoke(slot); + }; + + characterPickerButton.OnDeletePressed += () => + { + DeleteCharacter?.Invoke(slot); + }; + } + + _createNewCharacterButton.Disabled = numberOfFullSlots >= _preferencesManager.Settings.MaxCharacterSlots; + Characters.AddChild(_createNewCharacterButton); + } + } +} diff --git a/Content.Client/Preferences/UI/HighlightedContainer.xaml b/Content.Client/Lobby/UI/HighlightedContainer.xaml similarity index 100% rename from Content.Client/Preferences/UI/HighlightedContainer.xaml rename to Content.Client/Lobby/UI/HighlightedContainer.xaml diff --git a/Content.Client/Preferences/UI/HighlightedContainer.xaml.cs b/Content.Client/Lobby/UI/HighlightedContainer.xaml.cs similarity index 88% rename from Content.Client/Preferences/UI/HighlightedContainer.xaml.cs rename to Content.Client/Lobby/UI/HighlightedContainer.xaml.cs index 68294d0f05..084c1c3709 100644 --- a/Content.Client/Preferences/UI/HighlightedContainer.xaml.cs +++ b/Content.Client/Lobby/UI/HighlightedContainer.xaml.cs @@ -2,7 +2,7 @@ using Robust.Client.UserInterface.Controls; using Robust.Client.UserInterface.XAML; -namespace Content.Client.Preferences.UI; +namespace Content.Client.Lobby.UI; [GenerateTypedNameReferences] public sealed partial class HighlightedContainer : PanelContainer diff --git a/Content.Client/Lobby/UI/HumanoidProfileEditor.xaml b/Content.Client/Lobby/UI/HumanoidProfileEditor.xaml new file mode 100644 index 0000000000..2da2904435 --- /dev/null +++ b/Content.Client/Lobby/UI/HumanoidProfileEditor.xaml @@ -0,0 +1,228 @@ + + + + + + + + + + + + + + public AlignRCDConstruction(PlacementManager pMan) : base(pMan) { - var dependencies = IoCManager.Instance!; - _entityManager = dependencies.Resolve(); - _mapManager = dependencies.Resolve(); - _playerManager = dependencies.Resolve(); - _stateManager = dependencies.Resolve(); - + IoCManager.InjectDependencies(this); _mapSystem = _entityManager.System(); _rcdSystem = _entityManager.System(); _transformSystem = _entityManager.System(); diff --git a/Content.Client/RCD/RCDMenu.xaml.cs b/Content.Client/RCD/RCDMenu.xaml.cs index 51ec66ea44..3eb0397a69 100644 --- a/Content.Client/RCD/RCDMenu.xaml.cs +++ b/Content.Client/RCD/RCDMenu.xaml.cs @@ -68,7 +68,7 @@ public RCDMenu(EntityUid owner, RCDMenuBoundUserInterface bui) tooltip = Loc.GetString(entProto.Name); } - tooltip = char.ToUpper(tooltip[0]) + tooltip.Remove(0, 1); + tooltip = OopsConcat(char.ToUpper(tooltip[0]).ToString(), tooltip.Remove(0, 1)); var button = new RCDMenuButton() { @@ -119,6 +119,12 @@ public RCDMenu(EntityUid owner, RCDMenuBoundUserInterface bui) SendRCDSystemMessageAction += bui.SendRCDSystemMessage; } + private static string OopsConcat(string a, string b) + { + // This exists to prevent Roslyn being clever and compiling something that fails sandbox checks. + return a + b; + } + private void AddRCDMenuButtonOnClickActions(Control control) { var radialContainer = control as RadialContainer; diff --git a/Content.Client/Replay/Spectator/ReplaySpectatorSystem.Position.cs b/Content.Client/Replay/Spectator/ReplaySpectatorSystem.Position.cs index 2ee7e30ec9..d00e319eed 100644 --- a/Content.Client/Replay/Spectator/ReplaySpectatorSystem.Position.cs +++ b/Content.Client/Replay/Spectator/ReplaySpectatorSystem.Position.cs @@ -195,9 +195,16 @@ private void OnParentChanged(EntityUid uid, ReplaySpectatorComponent component, if (uid != _player.LocalEntity) return; - if (args.Transform.MapUid != null || args.OldMapId == MapId.Nullspace) + if (args.Transform.MapUid != null || args.OldMapId == null) return; + if (_spectatorData != null) + { + // Currently scrubbing/setting the replay tick + // the observer will get respawned once the state was applied + return; + } + // The entity being spectated from was moved to null-space. // This was probably because they were spectating some entity in a client-side replay that left PVS range. // Simple respawn the ghost. diff --git a/Content.Client/Robotics/Systems/RoboticsConsoleSystem.cs b/Content.Client/Robotics/Systems/RoboticsConsoleSystem.cs new file mode 100644 index 0000000000..0219c965cd --- /dev/null +++ b/Content.Client/Robotics/Systems/RoboticsConsoleSystem.cs @@ -0,0 +1,7 @@ +using Content.Shared.Robotics.Systems; + +namespace Content.Client.Robotics.Systems; + +public sealed class RoboticsConsoleSystem : SharedRoboticsConsoleSystem +{ +} diff --git a/Content.Client/Robotics/UI/RoboticsConsoleBoundUserInterface.cs b/Content.Client/Robotics/UI/RoboticsConsoleBoundUserInterface.cs new file mode 100644 index 0000000000..6185979eee --- /dev/null +++ b/Content.Client/Robotics/UI/RoboticsConsoleBoundUserInterface.cs @@ -0,0 +1,50 @@ +using Content.Shared.Robotics; +using Robust.Client.GameObjects; + +namespace Content.Client.Robotics.UI; + +public sealed class RoboticsConsoleBoundUserInterface : BoundUserInterface +{ + [ViewVariables] + public RoboticsConsoleWindow _window = default!; + + public RoboticsConsoleBoundUserInterface(EntityUid owner, Enum uiKey) : base(owner, uiKey) + { + } + + protected override void Open() + { + base.Open(); + + _window = new RoboticsConsoleWindow(Owner); + _window.OnDisablePressed += address => + { + SendMessage(new RoboticsConsoleDisableMessage(address)); + }; + _window.OnDestroyPressed += address => + { + SendMessage(new RoboticsConsoleDestroyMessage(address)); + }; + _window.OnClose += Close; + + _window.OpenCentered(); + } + + protected override void UpdateState(BoundUserInterfaceState state) + { + base.UpdateState(state); + + if (state is not RoboticsConsoleState cast) + return; + + _window?.UpdateState(cast); + } + + protected override void Dispose(bool disposing) + { + base.Dispose(disposing); + + if (disposing) + _window?.Dispose(); + } +} diff --git a/Content.Client/Robotics/UI/RoboticsConsoleWindow.xaml b/Content.Client/Robotics/UI/RoboticsConsoleWindow.xaml new file mode 100644 index 0000000000..a3b3978790 --- /dev/null +++ b/Content.Client/Robotics/UI/RoboticsConsoleWindow.xaml @@ -0,0 +1,40 @@ + + + + + + + + + + [DataField] - public float Chance = 0.001f; + public float Chance = 0.004f; [DataField] public bool DoAnnouncement = true; diff --git a/Content.Server/Antag/MobReplacementRuleSystem.cs b/Content.Server/Antag/MobReplacementRuleSystem.cs index 18837b5a7c..dc8103497e 100644 --- a/Content.Server/Antag/MobReplacementRuleSystem.cs +++ b/Content.Server/Antag/MobReplacementRuleSystem.cs @@ -1,16 +1,45 @@ +using System.Numerics; using Content.Server.Antag.Mimic; -using Content.Server.GameTicking.Components; +using Content.Server.Chat.Systems; using Content.Server.GameTicking.Rules; -using Content.Server.GameTicking.Rules.Components; +using Content.Server.GameTicking.Components; +using Content.Server.NPC.Systems; +using Content.Server.Station.Systems; +using Content.Server.GameTicking; using Content.Shared.VendingMachines; using Robust.Shared.Map; +using Robust.Shared.Prototypes; using Robust.Shared.Random; +using Robust.Server.GameObjects; +using Robust.Shared.Physics.Systems; +using System.Linq; +using Robust.Shared.Physics; +using Content.Shared.Movement.Components; +using Content.Shared.Damage; +using Content.Server.NPC.HTN; +using Content.Server.NPC; +using Content.Shared.Weapons.Melee; +using Content.Server.Advertise.EntitySystems; +using Content.Server.Advertise.Components; +using Content.Server.Power.Components; +using Content.Shared.CombatMode; namespace Content.Server.Antag; public sealed class MobReplacementRuleSystem : GameRuleSystem { [Dependency] private readonly IRobustRandom _random = default!; + [Dependency] private readonly StationSystem _station = default!; + [Dependency] private readonly GameTicker _gameTicker = default!; + [Dependency] private readonly ChatSystem _chat = default!; + [Dependency] private readonly IPrototypeManager _prototype = default!; + [Dependency] private readonly IComponentFactory _componentFactory = default!; + [Dependency] private readonly SharedPhysicsSystem _physics = default!; + [Dependency] private readonly NpcFactionSystem _npcFaction = default!; + [Dependency] private readonly NPCSystem _npc = default!; + [Dependency] private readonly TransformSystem _transform = default!; + [Dependency] private readonly AdvertiseSystem _advertise = default!; + protected override void Started(EntityUid uid, MobReplacementRuleComponent component, GameRuleComponent gameRule, GameRuleStartedEvent args) { @@ -18,21 +47,120 @@ protected override void Started(EntityUid uid, MobReplacementRuleComponent compo var query = AllEntityQuery(); var spawns = new List<(EntityUid Entity, EntityCoordinates Coordinates)>(); + var stations = _gameTicker.GetSpawnableStations(); while (query.MoveNext(out var vendingUid, out _, out var xform)) { - if (!_random.Prob(component.Chance)) + var ownerStation = _station.GetOwningStation(vendingUid); + + if (ownerStation == null + || ownerStation != stations[0]) + continue; + + // Make sure that we aren't running this on something that is already a mimic + if (HasComp(vendingUid)) continue; spawns.Add((vendingUid, xform.Coordinates)); } - foreach (var entity in spawns) + if (spawns == null) + //WTF: THE STATION DOESN'T EXIST! WE MUST BE IN A TEST! QUICK, PUT A MIMIC AT 0,0!!! + Spawn(component.Proto, new EntityCoordinates(uid, new Vector2(0, 0))); + else { - var coordinates = entity.Coordinates; - Del(entity.Entity); + // This is intentionally not clamped. If a server host wants to replace every vending machine in the entire station with a mimic, who am I to stop them? + var k = MathF.MaxMagnitude(component.NumberToReplace, 1); + while (k > 0 && spawns != null && spawns.Count > 0) + { + if (k > 1) + { + var spawnLocation = _random.PickAndTake(spawns); + BuildAMimicWorkshop(spawnLocation.Entity, component); + } + else + { + BuildAMimicWorkshop(spawns[0].Entity, component); + } - Spawn(component.Proto, coordinates); + if (k == MathF.MaxMagnitude(component.NumberToReplace, 1) + && component.DoAnnouncement) + _chat.DispatchStationAnnouncement(stations[0], Loc.GetString("station-event-rampant-intelligence-announcement"), playDefaultSound: true, + colorOverride: Color.Red, sender: "Central Command"); + + k--; + } + } + } + + /// It's like Build a Bear, but MURDER + public void BuildAMimicWorkshop(EntityUid uid, MobReplacementRuleComponent component) + { + var metaData = MetaData(uid); + var vendorPrototype = metaData.EntityPrototype; + var mimicProto = _prototype.Index(component.Proto); + + var vendorComponents = vendorPrototype?.Components.Keys + .Where(n => n != "Transform" && n != "MetaData") + .Select(name => (name, _componentFactory.GetRegistration(name).Type)) + .ToList() ?? new List<(string name, Type type)>(); + + var mimicComponents = mimicProto?.Components.Keys + .Where(n => n != "Transform" && n != "MetaData") + .Select(name => (name, _componentFactory.GetRegistration(name).Type)) + .ToList() ?? new List<(string name, Type type)>(); + + foreach (var name in mimicComponents.Except(vendorComponents)) + { + var newComponent = _componentFactory.GetComponent(name.name); + EntityManager.AddComponent(uid, newComponent); } + + var xform = Transform(uid); + if (xform.Anchored) + _transform.Unanchor(uid, xform); + + SetupMimicNPC(uid, component); + + if (TryComp(uid, out var vendor) + && component.VendorModify) + SetupMimicVendor(uid, component, vendor); + } + + /// This handles getting the entity ready to be a hostile NPC + private void SetupMimicNPC(EntityUid uid, MobReplacementRuleComponent component) + { + _physics.SetBodyType(uid, BodyType.KinematicController); + _npcFaction.AddFaction(uid, "SimpleHostile"); + + var melee = EnsureComp(uid); + melee.Angle = 0; + DamageSpecifier dspec = new() + { + DamageDict = new() + { + { "Blunt", component.MimicMeleeDamage } + } + }; + melee.Damage = dspec; + + var movementSpeed = EnsureComp(uid); + (movementSpeed.BaseSprintSpeed, movementSpeed.BaseWalkSpeed) = (component.MimicMoveSpeed, component.MimicMoveSpeed); + + var htn = EnsureComp(uid); + htn.RootTask = new HTNCompoundTask() { Task = component.MimicAIType }; + htn.Blackboard.SetValue(NPCBlackboard.NavSmash, component.MimicSmashGlass); + _npc.WakeNPC(uid, htn); + } + + /// Handling specific interactions with vending machines + private void SetupMimicVendor(EntityUid uid, MobReplacementRuleComponent mimicComponent, AdvertiseComponent vendorComponent) + { + vendorComponent.MinimumWait = 5; + vendorComponent.MaximumWait = 15; + _advertise.SayAdvertisement(uid, vendorComponent); + + if (TryComp(uid, out var aPC)) + aPC.NeedsPower = false; } } diff --git a/Content.Server/Arachne/ArachneSystem.cs b/Content.Server/Arachne/ArachneSystem.cs deleted file mode 100644 index 9cdefb441b..0000000000 --- a/Content.Server/Arachne/ArachneSystem.cs +++ /dev/null @@ -1,231 +0,0 @@ -using Content.Shared.Arachne; -using Content.Shared.Actions; -using Content.Shared.IdentityManagement; -using Content.Shared.Verbs; -using Content.Shared.Buckle.Components; -using Content.Shared.DoAfter; -using Content.Shared.Stunnable; -using Content.Shared.Eye.Blinding.Systems; -using Content.Shared.Containers.ItemSlots; -using Content.Shared.Damage; -using Content.Shared.Inventory; -using Content.Shared.Administration.Logs; -using Content.Shared.Database; -using Content.Shared.Humanoid; -using Content.Shared.Nutrition.EntitySystems; -using Content.Server.Buckle.Systems; -using Content.Server.Popups; -using Content.Server.DoAfter; -using Content.Server.Body.Components; -using Content.Server.Vampiric; -using Content.Server.Speech.Components; -using Robust.Shared.Physics.Components; -using Robust.Shared.Containers; -using Robust.Shared.Map; -using Robust.Shared.Utility; -using Robust.Server.Console; - -namespace Content.Server.Arachne -{ - public sealed class ArachneSystem : EntitySystem - { - [Dependency] private readonly PopupSystem _popupSystem = default!; - [Dependency] private readonly DoAfterSystem _doAfter = default!; - [Dependency] private readonly BuckleSystem _buckleSystem = default!; - [Dependency] private readonly ItemSlotsSystem _itemSlots = default!; - [Dependency] private readonly BlindableSystem _blindableSystem = default!; - [Dependency] private readonly DamageableSystem _damageableSystem = default!; - - [Dependency] private readonly IServerConsoleHost _host = default!; - [Dependency] private readonly BloodSuckerSystem _bloodSuckerSystem = default!; - [Dependency] private readonly ISharedAdminLogManager _adminLogger = default!; - - private const string BodySlot = "body_slot"; - - public override void Initialize() - { - base.Initialize(); - SubscribeLocalEvent>(AddCocoonVerb); - - SubscribeLocalEvent(OnCocEntInserted); - SubscribeLocalEvent(OnCocEntRemoved); - SubscribeLocalEvent(OnDamageChanged); - SubscribeLocalEvent>(AddSuccVerb); - SubscribeLocalEvent(OnCocoonDoAfter); - } - - private void AddCocoonVerb(EntityUid uid, ArachneComponent component, GetVerbsEvent args) - { - if (!args.CanAccess || !args.CanInteract) - return; - - if (args.Target == uid) - return; - - if (!TryComp(args.Target, out var bloodstream)) - return; - - if (bloodstream.BloodReagent != component.WebBloodReagent) - return; - - InnateVerb verb = new() - { - Act = () => - { - StartCocooning(uid, component, args.Target); - }, - Text = Loc.GetString("cocoon"), - Priority = 2 - }; - args.Verbs.Add(verb); - } - - private void OnCocEntInserted(EntityUid uid, CocoonComponent component, EntInsertedIntoContainerMessage args) - { - _blindableSystem.UpdateIsBlind(args.Entity); - EnsureComp(args.Entity); - - if (TryComp(args.Entity, out var currentAccent)) - { - component.WasReplacementAccent = true; - component.OldAccent = currentAccent.Accent; - currentAccent.Accent = "mumble"; - } else - { - component.WasReplacementAccent = false; - var replacement = EnsureComp(args.Entity); - replacement.Accent = "mumble"; - } - } - - private void OnCocEntRemoved(EntityUid uid, CocoonComponent component, EntRemovedFromContainerMessage args) - { - if (component.WasReplacementAccent && TryComp(args.Entity, out var replacement)) - { - replacement.Accent = component.OldAccent; - } else - { - RemComp(args.Entity); - } - - RemComp(args.Entity); - _blindableSystem.UpdateIsBlind(args.Entity); - } - - private void OnDamageChanged(EntityUid uid, CocoonComponent component, DamageChangedEvent args) - { - if (!args.DamageIncreased) - return; - - if (args.DamageDelta == null) - return; - - var body = _itemSlots.GetItemOrNull(uid, BodySlot); - - if (body == null) - return; - - var damage = args.DamageDelta * component.DamagePassthrough; - _damageableSystem.TryChangeDamage(body, damage); - } - - private void AddSuccVerb(EntityUid uid, CocoonComponent component, GetVerbsEvent args) - { - if (!args.CanAccess || !args.CanInteract) - return; - - if (!TryComp(args.User, out var sucker)) - return; - - if (!sucker.WebRequired) - return; - - var victim = _itemSlots.GetItemOrNull(uid, BodySlot); - - if (victim == null) - return; - - if (!TryComp(victim, out var stream)) - return; - - AlternativeVerb verb = new() - { - Act = () => - { - _bloodSuckerSystem.StartSuccDoAfter(args.User, victim.Value, sucker, stream, false); // start doafter - }, - Text = Loc.GetString("action-name-suck-blood"), - Icon = new SpriteSpecifier.Texture(new ("/Textures/Nyanotrasen/Icons/verbiconfangs.png")), - Priority = 2 - }; - args.Verbs.Add(verb); - } - - private void OnEntRemoved(EntityUid uid, WebComponent web, EntRemovedFromContainerMessage args) - { - if (!TryComp(uid, out var strap)) - return; - - if (HasComp(args.Entity)) - _buckleSystem.StrapSetEnabled(uid, false, strap); - } - - private void StartCocooning(EntityUid uid, ArachneComponent component, EntityUid target) - { - _popupSystem.PopupEntity(Loc.GetString("cocoon-start-third-person", ("target", Identity.Entity(target, EntityManager)), ("spider", Identity.Entity(uid, EntityManager))), uid, - Shared.Popups.PopupType.MediumCaution); - - _popupSystem.PopupEntity(Loc.GetString("cocoon-start-second-person", ("target", Identity.Entity(target, EntityManager))), uid, uid, Shared.Popups.PopupType.Medium); - - var delay = component.CocoonDelay; - - if (HasComp(target)) - delay *= component.CocoonKnockdownMultiplier; - - // Is it good practice to use empty data just to disambiguate doafters - // Who knows, there's no docs! - var ev = new ArachneCocoonDoAfterEvent(); - - var args = new DoAfterArgs(EntityManager, uid, delay, ev, uid, target: target) - { - BreakOnUserMove = true, - BreakOnTargetMove = true, - }; - - _doAfter.TryStartDoAfter(args); - } - - private void OnCocoonDoAfter(EntityUid uid, ArachneComponent component, ArachneCocoonDoAfterEvent args) - { - if (args.Handled || args.Cancelled || args.Args.Target == null) - return; - - var spawnProto = HasComp(args.Args.Target) ? "CocoonedHumanoid" : "CocoonSmall"; - Transform(args.Args.Target.Value).AttachToGridOrMap(); - var cocoon = Spawn(spawnProto, Transform(args.Args.Target.Value).Coordinates); - - if (!TryComp(cocoon, out var slots)) - return; - - // todo: our species should use scale visuals probably... - // TODO: We need a client-accessible notion of scale influence here. - /* if (spawnProto == "CocoonedHumanoid" && TryComp(args.Args.Target.Value, out var sprite)) */ - /* { */ - /* // why the fuck is this only available as a console command. */ - /* _host.ExecuteCommand(null, "scale " + cocoon + " " + sprite.Scale.Y); */ - if (TryComp(args.Args.Target.Value, out var physics)) - { - var scale = Math.Clamp(1 / (35 / physics.FixturesMass), 0.35, 2.5); - _host.ExecuteCommand(null, "scale " + cocoon + " " + scale); - } - _itemSlots.SetLock(cocoon, BodySlot, false, slots); - _itemSlots.TryInsert(cocoon, BodySlot, args.Args.Target.Value, args.Args.User); - _itemSlots.SetLock(cocoon, BodySlot, true, slots); - - var impact = (spawnProto == "CocoonedHumanoid") ? LogImpact.High : LogImpact.Medium; - - _adminLogger.Add(LogType.Action, impact, $"{ToPrettyString(args.Args.User):player} cocooned {ToPrettyString(args.Args.Target.Value):target}"); - args.Handled = true; - } - } -} diff --git a/Content.Server/Arachne/CocoonComponent.cs b/Content.Server/Arachne/CocoonComponent.cs deleted file mode 100644 index 42ecf27971..0000000000 --- a/Content.Server/Arachne/CocoonComponent.cs +++ /dev/null @@ -1,13 +0,0 @@ -namespace Content.Server.Arachne -{ - [RegisterComponent] - public sealed partial class CocoonComponent : Component - { - public bool WasReplacementAccent = false; - - public string OldAccent = ""; - - [DataField("damagePassthrough")] - public float DamagePassthrough = 0.5f; - } -} diff --git a/Content.Server/Arcade/BlockGame/BlockGame.Ui.cs b/Content.Server/Arcade/BlockGame/BlockGame.Ui.cs index ef69600783..cd22f1f6d3 100644 --- a/Content.Server/Arcade/BlockGame/BlockGame.Ui.cs +++ b/Content.Server/Arcade/BlockGame/BlockGame.Ui.cs @@ -157,39 +157,37 @@ private void InputTick(float frameTime) /// The message to broadcase to all players/spectators. private void SendMessage(BoundUserInterfaceMessage message) { - if (_uiSystem.TryGetUi(_owner, BlockGameUiKey.Key, out var bui)) - _uiSystem.SendUiMessage(bui, message); + _uiSystem.ServerSendUiMessage(_entityManager.GetEntity(message.Entity), BlockGameUiKey.Key, message); } /// /// Handles sending a message to a specific player/spectator. /// /// The message to send to a specific player/spectator. - /// The target recipient. - private void SendMessage(BoundUserInterfaceMessage message, ICommonSession session) + /// The target recipient. + private void SendMessage(BoundUserInterfaceMessage message, EntityUid actor) { - if (_uiSystem.TryGetUi(_owner, BlockGameUiKey.Key, out var bui)) - _uiSystem.TrySendUiMessage(bui, message, session); + _uiSystem.ServerSendUiMessage(_entityManager.GetEntity(message.Entity), BlockGameUiKey.Key, message, actor); } /// /// Handles sending the current state of the game to a player that has just opened the UI. /// - /// The target recipient. - public void UpdateNewPlayerUI(ICommonSession session) + /// The target recipient. + public void UpdateNewPlayerUI(EntityUid actor) { if (_gameOver) { - SendMessage(new BlockGameMessages.BlockGameGameOverScreenMessage(Points, _highScorePlacement?.LocalPlacement, _highScorePlacement?.GlobalPlacement), session); + SendMessage(new BlockGameMessages.BlockGameGameOverScreenMessage(Points, _highScorePlacement?.LocalPlacement, _highScorePlacement?.GlobalPlacement), actor); return; } if (Paused) - SendMessage(new BlockGameMessages.BlockGameSetScreenMessage(BlockGameMessages.BlockGameScreen.Pause, Started), session); + SendMessage(new BlockGameMessages.BlockGameSetScreenMessage(BlockGameMessages.BlockGameScreen.Pause, Started), actor); else - SendMessage(new BlockGameMessages.BlockGameSetScreenMessage(BlockGameMessages.BlockGameScreen.Game, Started), session); + SendMessage(new BlockGameMessages.BlockGameSetScreenMessage(BlockGameMessages.BlockGameScreen.Game, Started), actor); - FullUpdate(session); + FullUpdate(actor); } /// @@ -209,14 +207,14 @@ private void FullUpdate() /// Handles broadcasting the full player-visible game state to a specific player/spectator. /// /// The target recipient. - private void FullUpdate(ICommonSession session) + private void FullUpdate(EntityUid actor) { - UpdateFieldUI(session); - SendNextPieceUpdate(session); - SendHoldPieceUpdate(session); - SendLevelUpdate(session); - SendPointsUpdate(session); - SendHighscoreUpdate(session); + UpdateFieldUI(actor); + SendNextPieceUpdate(actor); + SendHoldPieceUpdate(actor); + SendLevelUpdate(actor); + SendPointsUpdate(actor); + SendHighscoreUpdate(actor); } /// @@ -234,14 +232,13 @@ public void UpdateFieldUI() /// /// Handles broadcasting the current location of all of the blocks in the playfield + the active piece to a specific player/spectator. /// - /// The target recipient. - public void UpdateFieldUI(ICommonSession session) + public void UpdateFieldUI(EntityUid actor) { if (!Started) return; var computedField = ComputeField(); - SendMessage(new BlockGameMessages.BlockGameVisualUpdateMessage(computedField.ToArray(), BlockGameMessages.BlockGameVisualType.GameField), session); + SendMessage(new BlockGameMessages.BlockGameVisualUpdateMessage(computedField.ToArray(), BlockGameMessages.BlockGameVisualType.GameField), actor); } /// @@ -282,10 +279,9 @@ private void SendNextPieceUpdate() /// /// Broadcasts the state of the next queued piece to a specific viewer. /// - /// The target recipient. - private void SendNextPieceUpdate(ICommonSession session) + private void SendNextPieceUpdate(EntityUid actor) { - SendMessage(new BlockGameMessages.BlockGameVisualUpdateMessage(NextPiece.BlocksForPreview(), BlockGameMessages.BlockGameVisualType.NextBlock), session); + SendMessage(new BlockGameMessages.BlockGameVisualUpdateMessage(NextPiece.BlocksForPreview(), BlockGameMessages.BlockGameVisualType.NextBlock), actor); } /// @@ -302,13 +298,12 @@ private void SendHoldPieceUpdate() /// /// Broadcasts the state of the currently held piece to a specific viewer. /// - /// The target recipient. - private void SendHoldPieceUpdate(ICommonSession session) + private void SendHoldPieceUpdate(EntityUid actor) { if (HeldPiece.HasValue) - SendMessage(new BlockGameMessages.BlockGameVisualUpdateMessage(HeldPiece.Value.BlocksForPreview(), BlockGameMessages.BlockGameVisualType.HoldBlock), session); + SendMessage(new BlockGameMessages.BlockGameVisualUpdateMessage(HeldPiece.Value.BlocksForPreview(), BlockGameMessages.BlockGameVisualType.HoldBlock), actor); else - SendMessage(new BlockGameMessages.BlockGameVisualUpdateMessage(Array.Empty(), BlockGameMessages.BlockGameVisualType.HoldBlock), session); + SendMessage(new BlockGameMessages.BlockGameVisualUpdateMessage(Array.Empty(), BlockGameMessages.BlockGameVisualType.HoldBlock), actor); } /// @@ -322,10 +317,9 @@ private void SendLevelUpdate() /// /// Broadcasts the current game level to a specific viewer. /// - /// The target recipient. - private void SendLevelUpdate(ICommonSession session) + private void SendLevelUpdate(EntityUid actor) { - SendMessage(new BlockGameMessages.BlockGameLevelUpdateMessage(Level), session); + SendMessage(new BlockGameMessages.BlockGameLevelUpdateMessage(Level), actor); } /// @@ -339,10 +333,9 @@ private void SendPointsUpdate() /// /// Broadcasts the current game score to a specific viewer. /// - /// The target recipient. - private void SendPointsUpdate(ICommonSession session) + private void SendPointsUpdate(EntityUid actor) { - SendMessage(new BlockGameMessages.BlockGameScoreUpdateMessage(Points), session); + SendMessage(new BlockGameMessages.BlockGameScoreUpdateMessage(Points), actor); } /// @@ -356,9 +349,8 @@ private void SendHighscoreUpdate() /// /// Broadcasts the current game high score positions to a specific viewer. /// - /// The target recipient. - private void SendHighscoreUpdate(ICommonSession session) + private void SendHighscoreUpdate(EntityUid actor) { - SendMessage(new BlockGameMessages.BlockGameHighScoreUpdateMessage(_arcadeSystem.GetLocalHighscores(), _arcadeSystem.GetGlobalHighscores()), session); + SendMessage(new BlockGameMessages.BlockGameHighScoreUpdateMessage(_arcadeSystem.GetLocalHighscores(), _arcadeSystem.GetGlobalHighscores()), actor); } } diff --git a/Content.Server/Arcade/BlockGame/BlockGame.cs b/Content.Server/Arcade/BlockGame/BlockGame.cs index 675776828f..a6707af408 100644 --- a/Content.Server/Arcade/BlockGame/BlockGame.cs +++ b/Content.Server/Arcade/BlockGame/BlockGame.cs @@ -10,8 +10,8 @@ public sealed partial class BlockGame { [Dependency] private readonly IEntityManager _entityManager = default!; [Dependency] private readonly IRobustRandom _random = default!; - private readonly ArcadeSystem _arcadeSystem = default!; - private readonly UserInterfaceSystem _uiSystem = default!; + private readonly ArcadeSystem _arcadeSystem; + private readonly UserInterfaceSystem _uiSystem; /// /// What entity is currently hosting this game of NT-BG. @@ -79,7 +79,7 @@ private void InvokeGameover() _gameOver = true; if (_entityManager.TryGetComponent(_owner, out var cabinet) - && _entityManager.TryGetComponent(cabinet.Player?.AttachedEntity, out var meta)) + && _entityManager.TryGetComponent(cabinet.Player, out var meta)) { _highScorePlacement = _arcadeSystem.RegisterHighScore(meta.EntityName, Points); SendHighscoreUpdate(); diff --git a/Content.Server/Arcade/BlockGame/BlockGameArcadeComponent.cs b/Content.Server/Arcade/BlockGame/BlockGameArcadeComponent.cs index 5613d91544..75952b0a33 100644 --- a/Content.Server/Arcade/BlockGame/BlockGameArcadeComponent.cs +++ b/Content.Server/Arcade/BlockGame/BlockGameArcadeComponent.cs @@ -13,10 +13,10 @@ public sealed partial class BlockGameArcadeComponent : Component /// /// The player currently playing the active session of NT-BG. /// - public ICommonSession? Player = null; + public EntityUid? Player = null; /// /// The players currently viewing (but not playing) the active session of NT-BG. /// - public readonly List Spectators = new(); + public readonly List Spectators = new(); } diff --git a/Content.Server/Arcade/BlockGame/BlockGameArcadeSystem.cs b/Content.Server/Arcade/BlockGame/BlockGameArcadeSystem.cs index ad65c5cca6..561cad8d7e 100644 --- a/Content.Server/Arcade/BlockGame/BlockGameArcadeSystem.cs +++ b/Content.Server/Arcade/BlockGame/BlockGameArcadeSystem.cs @@ -37,14 +37,12 @@ public override void Update(float frameTime) } } - private void UpdatePlayerStatus(EntityUid uid, ICommonSession session, PlayerBoundUserInterface? bui = null, BlockGameArcadeComponent? blockGame = null) + private void UpdatePlayerStatus(EntityUid uid, EntityUid actor, BlockGameArcadeComponent? blockGame = null) { if (!Resolve(uid, ref blockGame)) return; - if (bui == null && !_uiSystem.TryGetUi(uid, BlockGameUiKey.Key, out bui)) - return; - _uiSystem.TrySendUiMessage(bui, new BlockGameMessages.BlockGameUserStatusMessage(blockGame.Player == session), session); + _uiSystem.ServerSendUiMessage(uid, BlockGameUiKey.Key, new BlockGameMessages.BlockGameUserStatusMessage(blockGame.Player == actor), actor); } private void OnComponentInit(EntityUid uid, BlockGameArcadeComponent component, ComponentInit args) @@ -54,33 +52,21 @@ private void OnComponentInit(EntityUid uid, BlockGameArcadeComponent component, private void OnAfterUIOpen(EntityUid uid, BlockGameArcadeComponent component, AfterActivatableUIOpenEvent args) { - if (!TryComp(args.User, out var actor)) - return; - if (!_uiSystem.TryGetUi(uid, BlockGameUiKey.Key, out var bui)) - return; - - var session = actor.PlayerSession; - if (!bui.SubscribedSessions.Contains(session)) - return; - if (component.Player == null) - component.Player = session; + component.Player = args.Actor; else - component.Spectators.Add(session); + component.Spectators.Add(args.Actor); - UpdatePlayerStatus(uid, session, bui, component); - component.Game?.UpdateNewPlayerUI(session); + UpdatePlayerStatus(uid, args.Actor, component); + component.Game?.UpdateNewPlayerUI(args.Actor); } private void OnAfterUiClose(EntityUid uid, BlockGameArcadeComponent component, BoundUIClosedEvent args) { - if (args.Session is not { } session) - return; - - if (component.Player != session) + if (component.Player != args.Actor) { - component.Spectators.Remove(session); - UpdatePlayerStatus(uid, session, blockGame: component); + component.Spectators.Remove(args.Actor); + UpdatePlayerStatus(uid, args.Actor, blockGame: component); return; } @@ -88,11 +74,11 @@ private void OnAfterUiClose(EntityUid uid, BlockGameArcadeComponent component, B if (component.Spectators.Count > 0) { component.Player = component.Spectators[0]; - component.Spectators.Remove(component.Player); - UpdatePlayerStatus(uid, component.Player, blockGame: component); + component.Spectators.Remove(component.Player.Value); + UpdatePlayerStatus(uid, component.Player.Value, blockGame: component); } - UpdatePlayerStatus(uid, temp, blockGame: component); + UpdatePlayerStatus(uid, temp.Value, blockGame: component); } private void OnBlockPowerChanged(EntityUid uid, BlockGameArcadeComponent component, ref PowerChangedEvent args) @@ -100,8 +86,7 @@ private void OnBlockPowerChanged(EntityUid uid, BlockGameArcadeComponent compone if (args.Powered) return; - if (_uiSystem.TryGetUi(uid, BlockGameUiKey.Key, out var bui)) - _uiSystem.CloseAll(bui); + _uiSystem.CloseUi(uid, BlockGameUiKey.Key); component.Player = null; component.Spectators.Clear(); } @@ -112,7 +97,7 @@ private void OnPlayerAction(EntityUid uid, BlockGameArcadeComponent component, B return; if (!BlockGameUiKey.Key.Equals(msg.UiKey)) return; - if (msg.Session != component.Player) + if (msg.Actor != component.Player) return; if (msg.PlayerAction == BlockGamePlayerAction.NewGame) diff --git a/Content.Server/Arcade/SpaceVillainGame/SpaceVillainArcadeSystem.cs b/Content.Server/Arcade/SpaceVillainGame/SpaceVillainArcadeSystem.cs index a5ca626d13..07a4d044ca 100644 --- a/Content.Server/Arcade/SpaceVillainGame/SpaceVillainArcadeSystem.cs +++ b/Content.Server/Arcade/SpaceVillainGame/SpaceVillainArcadeSystem.cs @@ -77,8 +77,7 @@ private void OnSVPlayerAction(EntityUid uid, SpaceVillainArcadeComponent compone if (!TryComp(uid, out var power) || !power.Powered) return; - if (msg.Session.AttachedEntity != null) - RaiseLocalEvent(msg.Session.AttachedEntity.Value, new MoodEffectEvent("ArcadePlay")); + RaiseLocalEvent(EntityManager.GetEntity(msg.Entity), new MoodEffectEvent("ArcadePlay")); switch (msg.PlayerAction) { @@ -94,12 +93,10 @@ private void OnSVPlayerAction(EntityUid uid, SpaceVillainArcadeComponent compone _audioSystem.PlayPvs(component.NewGameSound, uid, AudioParams.Default.WithVolume(-4f)); component.Game = new SpaceVillainGame(uid, component, this); - if (_uiSystem.TryGetUi(uid, SpaceVillainArcadeUiKey.Key, out var bui)) - _uiSystem.SendUiMessage(bui, component.Game.GenerateMetaDataMessage()); + _uiSystem.ServerSendUiMessage(uid, SpaceVillainArcadeUiKey.Key, component.Game.GenerateMetaDataMessage()); break; case PlayerAction.RequestData: - if (_uiSystem.TryGetUi(uid, SpaceVillainArcadeUiKey.Key, out bui)) - _uiSystem.SendUiMessage(bui, component.Game.GenerateMetaDataMessage()); + _uiSystem.ServerSendUiMessage(uid, SpaceVillainArcadeUiKey.Key, component.Game.GenerateMetaDataMessage()); break; } } @@ -114,7 +111,6 @@ private void OnSVillainPower(EntityUid uid, SpaceVillainArcadeComponent componen if (TryComp(uid, out var power) && power.Powered) return; - if (_uiSystem.TryGetUi(uid, SpaceVillainArcadeUiKey.Key, out var bui)) - _uiSystem.CloseAll(bui); + _uiSystem.CloseUi(uid, SpaceVillainArcadeUiKey.Key); } } diff --git a/Content.Server/Arcade/SpaceVillainGame/SpaceVillainGame.Ui.cs b/Content.Server/Arcade/SpaceVillainGame/SpaceVillainGame.Ui.cs index 890e9888a7..ebcfb8e3f6 100644 --- a/Content.Server/Arcade/SpaceVillainGame/SpaceVillainGame.Ui.cs +++ b/Content.Server/Arcade/SpaceVillainGame/SpaceVillainGame.Ui.cs @@ -9,8 +9,7 @@ public sealed partial class SpaceVillainGame /// private void UpdateUi(EntityUid uid, bool metadata = false) { - if (_uiSystem.TryGetUi(uid, SpaceVillainArcadeUiKey.Key, out var bui)) - _uiSystem.SendUiMessage(bui, metadata ? GenerateMetaDataMessage() : GenerateUpdateMessage()); + _uiSystem.ServerSendUiMessage(uid, SpaceVillainArcadeUiKey.Key, metadata ? GenerateMetaDataMessage() : GenerateUpdateMessage()); } private void UpdateUi(EntityUid uid, string message1, string message2, bool metadata = false) diff --git a/Content.Server/Atmos/Components/BreathToolComponent.cs b/Content.Server/Atmos/Components/BreathToolComponent.cs index f3688ef7ff..ae17a5d872 100644 --- a/Content.Server/Atmos/Components/BreathToolComponent.cs +++ b/Content.Server/Atmos/Components/BreathToolComponent.cs @@ -12,9 +12,10 @@ public sealed partial class BreathToolComponent : Component /// /// Tool is functional only in allowed slots /// - [DataField("allowedSlots")] + [DataField] public SlotFlags AllowedSlots = SlotFlags.MASK | SlotFlags.HEAD; public bool IsFunctional; + public EntityUid? ConnectedInternalsEntity; } } diff --git a/Content.Server/Atmos/Components/FlammableComponent.cs b/Content.Server/Atmos/Components/FlammableComponent.cs index 33a163228f..9f39af540d 100644 --- a/Content.Server/Atmos/Components/FlammableComponent.cs +++ b/Content.Server/Atmos/Components/FlammableComponent.cs @@ -11,49 +11,65 @@ public sealed partial class FlammableComponent : Component [ViewVariables(VVAccess.ReadWrite)] [DataField] - public bool OnFire { get; set; } + public bool OnFire; [ViewVariables(VVAccess.ReadWrite)] [DataField] - public float FireStacks { get; set; } + public float FireStacks; [ViewVariables(VVAccess.ReadWrite)] - [DataField("fireSpread")] + [DataField] + public float MaximumFireStacks = 10f; + + [ViewVariables(VVAccess.ReadWrite)] + [DataField] + public float MinimumFireStacks = -10f; + + [ViewVariables(VVAccess.ReadWrite)] + [DataField] + public string FlammableFixtureID = "flammable"; + + [ViewVariables(VVAccess.ReadWrite)] + [DataField] + public float MinIgnitionTemperature = 373.15f; + + [ViewVariables(VVAccess.ReadWrite)] + [DataField] public bool FireSpread { get; private set; } = false; [ViewVariables(VVAccess.ReadWrite)] - [DataField("canResistFire")] + [DataField] public bool CanResistFire { get; private set; } = false; - [DataField("damage", required: true)] + [DataField(required: true)] [ViewVariables(VVAccess.ReadWrite)] public DamageSpecifier Damage = new(); // Empty by default, we don't want any funny NREs. /// /// Used for the fixture created to handle passing firestacks when two flammable objects collide. /// - [DataField("flammableCollisionShape")] + [DataField] public IPhysShape FlammableCollisionShape = new PhysShapeCircle(0.35f); /// /// Should the component be set on fire by interactions with isHot entities /// [ViewVariables(VVAccess.ReadWrite)] - [DataField("alwaysCombustible")] + [DataField] public bool AlwaysCombustible = false; /// /// Can the component anyhow lose its FireStacks? /// [ViewVariables(VVAccess.ReadWrite)] - [DataField("canExtinguish")] + [DataField] public bool CanExtinguish = true; /// /// How many firestacks should be applied to component when being set on fire? /// [ViewVariables(VVAccess.ReadWrite)] - [DataField("firestacksOnIgnite")] + [DataField] public float FirestacksOnIgnite = 2.0f; /// diff --git a/Content.Server/Atmos/Components/GasMixtureHolderComponent.cs b/Content.Server/Atmos/Components/GasMixtureHolderComponent.cs index 9d533f6ec4..98feb43346 100644 --- a/Content.Server/Atmos/Components/GasMixtureHolderComponent.cs +++ b/Content.Server/Atmos/Components/GasMixtureHolderComponent.cs @@ -1,4 +1,6 @@ -namespace Content.Server.Atmos.Components +using Content.Shared.Atmos; + +namespace Content.Server.Atmos.Components { [RegisterComponent] public sealed partial class GasMixtureHolderComponent : Component, IGasMixtureHolder diff --git a/Content.Server/Atmos/Components/MapAtmosphereComponent.cs b/Content.Server/Atmos/Components/MapAtmosphereComponent.cs index 6bdef901d4..bdd05e7849 100644 --- a/Content.Server/Atmos/Components/MapAtmosphereComponent.cs +++ b/Content.Server/Atmos/Components/MapAtmosphereComponent.cs @@ -1,3 +1,4 @@ +using Content.Shared.Atmos; using Content.Shared.Atmos.Components; using Content.Shared.Atmos.EntitySystems; diff --git a/Content.Server/Atmos/Consoles/AtmosAlertsComputerSystem.cs b/Content.Server/Atmos/Consoles/AtmosAlertsComputerSystem.cs new file mode 100644 index 0000000000..5d040cd7b3 --- /dev/null +++ b/Content.Server/Atmos/Consoles/AtmosAlertsComputerSystem.cs @@ -0,0 +1,356 @@ +using Content.Server.Atmos.Monitor.Components; +using Content.Server.DeviceNetwork.Components; +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.Pinpointer; +using Robust.Server.GameObjects; +using Robust.Shared.Map.Components; +using Robust.Shared.Player; +using Robust.Shared.ContentPack; +using Robust.Shared.Prototypes; +using System.Diagnostics.CodeAnalysis; +using System.Linq; +using Content.Shared.Access.Components; +using Content.Shared.Database; +using Content.Shared.NameIdentifier; +using Content.Shared.Stacks; +using JetBrains.Annotations; +using Robust.Shared.Utility; + +namespace Content.Server.Atmos.Monitor.Systems; + +public sealed class AtmosAlertsComputerSystem : SharedAtmosAlertsComputerSystem +{ + [Dependency] private readonly UserInterfaceSystem _uiSystem = default!; + [Dependency] private readonly AirAlarmSystem _airAlarmSystem = default!; + [Dependency] private readonly AtmosDeviceNetworkSystem _atmosDevNet = default!; + [Dependency] private readonly SharedAppearanceSystem _appearance = default!; + + private const float UpdateTime = 1.0f; + + // Note: this data does not need to be saved + private float _updateTimer = 1.0f; + + public override void Initialize() + { + base.Initialize(); + + // Console events + SubscribeLocalEvent(OnConsoleInit); + SubscribeLocalEvent(OnConsoleParentChanged); + SubscribeLocalEvent(OnFocusChangedMessage); + + // Grid events + SubscribeLocalEvent(OnGridSplit); + SubscribeLocalEvent(OnDeviceAnchorChanged); + } + + #region Event handling + + private void OnConsoleInit(EntityUid uid, AtmosAlertsComputerComponent component, ComponentInit args) + { + InitalizeConsole(uid, component); + } + + private void OnConsoleParentChanged(EntityUid uid, AtmosAlertsComputerComponent component, EntParentChangedMessage args) + { + InitalizeConsole(uid, component); + } + + private void OnFocusChangedMessage(EntityUid uid, AtmosAlertsComputerComponent component, AtmosAlertsComputerFocusChangeMessage args) + { + component.FocusDevice = args.FocusDevice; + } + + private void OnGridSplit(ref GridSplitEvent args) + { + // Collect grids + var allGrids = args.NewGrids.ToList(); + + if (!allGrids.Contains(args.Grid)) + allGrids.Add(args.Grid); + + // Update atmos monitoring consoles that stand upon an updated grid + var query = AllEntityQuery(); + while (query.MoveNext(out var ent, out var entConsole, out var entXform)) + { + if (entXform.GridUid == null) + continue; + + if (!allGrids.Contains(entXform.GridUid.Value)) + continue; + + InitalizeConsole(ent, entConsole); + } + } + + private void OnDeviceAnchorChanged(EntityUid uid, AtmosAlertsDeviceComponent component, AnchorStateChangedEvent args) + { + var xform = Transform(uid); + var gridUid = xform.GridUid; + + if (gridUid == null) + return; + + if (!TryGetAtmosDeviceNavMapData(uid, component, xform, gridUid.Value, out var data)) + return; + + var netEntity = EntityManager.GetNetEntity(uid); + + var query = AllEntityQuery(); + while (query.MoveNext(out var ent, out var entConsole, out var entXform)) + { + if (gridUid != entXform.GridUid) + continue; + + if (args.Anchored) + entConsole.AtmosDevices.Add(data.Value); + + else if (!args.Anchored) + entConsole.AtmosDevices.RemoveWhere(x => x.NetEntity == netEntity); + } + } + + #endregion + + public override void Update(float frameTime) + { + base.Update(frameTime); + + _updateTimer += frameTime; + + if (_updateTimer >= UpdateTime) + { + _updateTimer -= UpdateTime; + + // Keep a list of UI entries for each gridUid, in case multiple consoles stand on the same grid + var airAlarmEntriesForEachGrid = new Dictionary(); + var fireAlarmEntriesForEachGrid = new Dictionary(); + + var query = AllEntityQuery(); + while (query.MoveNext(out var ent, out var entConsole, out var entXform)) + { + if (entXform?.GridUid == null) + continue; + + // Make a list of alarm state data for all the air and fire alarms on the grid + if (!airAlarmEntriesForEachGrid.TryGetValue(entXform.GridUid.Value, out var airAlarmEntries)) + { + airAlarmEntries = GetAlarmStateData(entXform.GridUid.Value, AtmosAlertsComputerGroup.AirAlarm).ToArray(); + airAlarmEntriesForEachGrid[entXform.GridUid.Value] = airAlarmEntries; + } + + if (!fireAlarmEntriesForEachGrid.TryGetValue(entXform.GridUid.Value, out var fireAlarmEntries)) + { + fireAlarmEntries = GetAlarmStateData(entXform.GridUid.Value, AtmosAlertsComputerGroup.FireAlarm).ToArray(); + fireAlarmEntriesForEachGrid[entXform.GridUid.Value] = fireAlarmEntries; + } + + // Determine the highest level of alert for the console (based on non-silenced alarms) + var highestAlert = AtmosAlarmType.Invalid; + + foreach (var entry in airAlarmEntries) + { + if (entry.AlarmState > highestAlert && !entConsole.SilencedDevices.Contains(entry.NetEntity)) + highestAlert = entry.AlarmState; + } + + foreach (var entry in fireAlarmEntries) + { + if (entry.AlarmState > highestAlert && !entConsole.SilencedDevices.Contains(entry.NetEntity)) + highestAlert = entry.AlarmState; + } + + // Update the appearance of the console based on the highest recorded level of alert + if (TryComp(ent, out var entAppearance)) + _appearance.SetData(ent, AtmosAlertsComputerVisuals.ComputerLayerScreen, (int) highestAlert, entAppearance); + + // If the console UI is open, send UI data to each subscribed session + UpdateUIState(ent, airAlarmEntries, fireAlarmEntries, entConsole, entXform); + } + } + } + + public void UpdateUIState + (EntityUid uid, + AtmosAlertsComputerEntry[] airAlarmStateData, + AtmosAlertsComputerEntry[] fireAlarmStateData, + AtmosAlertsComputerComponent component, + TransformComponent xform) + { + if (!_uiSystem.IsUiOpen(uid, AtmosAlertsComputerUiKey.Key)) + return; + + var gridUid = xform.GridUid!.Value; + + if (!HasComp(gridUid)) + return; + + // The grid must have a NavMapComponent to visualize the map in the UI + EnsureComp(gridUid); + + // Gathering remaining data to be send to the client + var focusAlarmData = GetFocusAlarmData(uid, GetEntity(component.FocusDevice), gridUid); + + // Set the UI state + _uiSystem.SetUiState(uid, AtmosAlertsComputerUiKey.Key, + new AtmosAlertsComputerBoundInterfaceState(airAlarmStateData, fireAlarmStateData, focusAlarmData)); + } + + private List GetAlarmStateData(EntityUid gridUid, AtmosAlertsComputerGroup group) + { + var alarmStateData = new List(); + + var queryAlarms = AllEntityQuery(); + while (queryAlarms.MoveNext(out var ent, out var entDevice, out var entAtmosAlarmable, out var entDeviceNetwork, out var entXform)) + { + if (entXform.GridUid != gridUid) + continue; + + if (!entXform.Anchored) + continue; + + if (entDevice.Group != group) + continue; + + // If emagged, change the alarm type to normal + var alarmState = (entAtmosAlarmable.LastAlarmState == AtmosAlarmType.Emagged) ? AtmosAlarmType.Normal : entAtmosAlarmable.LastAlarmState; + + // Unpowered alarms can't sound + if (TryComp(ent, out var entAPCPower) && !entAPCPower.Powered) + alarmState = AtmosAlarmType.Invalid; + + var entry = new AtmosAlertsComputerEntry + (GetNetEntity(ent), + GetNetCoordinates(entXform.Coordinates), + entDevice.Group, + alarmState, + MetaData(ent).EntityName, + entDeviceNetwork.Address); + + alarmStateData.Add(entry); + } + + return alarmStateData; + } + + private AtmosAlertsFocusDeviceData? GetFocusAlarmData(EntityUid uid, EntityUid? focusDevice, EntityUid gridUid) + { + if (focusDevice == null) + return null; + + var focusDeviceXform = Transform(focusDevice.Value); + + if (!focusDeviceXform.Anchored || + focusDeviceXform.GridUid != gridUid || + !TryComp(focusDevice.Value, out var focusDeviceAirAlarm)) + { + return null; + } + + // Force update the sensors attached to the alarm + if (!_uiSystem.IsUiOpen(focusDevice.Value, SharedAirAlarmInterfaceKey.Key)) + { + _atmosDevNet.Register(focusDevice.Value, null); + _atmosDevNet.Sync(focusDevice.Value, null); + + foreach ((var address, var _) in focusDeviceAirAlarm.SensorData) + _atmosDevNet.Register(uid, null); + } + + // Get the sensor data + var temperatureData = (_airAlarmSystem.CalculateTemperatureAverage(focusDeviceAirAlarm), AtmosAlarmType.Normal); + var pressureData = (_airAlarmSystem.CalculatePressureAverage(focusDeviceAirAlarm), AtmosAlarmType.Normal); + var gasData = new Dictionary(); + + foreach ((var address, var sensorData) in focusDeviceAirAlarm.SensorData) + { + if (sensorData.TemperatureThreshold.CheckThreshold(sensorData.Temperature, out var temperatureState) && + (int) temperatureState > (int) temperatureData.Item2) + { + temperatureData = (temperatureData.Item1, temperatureState); + } + + if (sensorData.PressureThreshold.CheckThreshold(sensorData.Pressure, out var pressureState) && + (int) pressureState > (int) pressureData.Item2) + { + pressureData = (pressureData.Item1, pressureState); + } + + if (focusDeviceAirAlarm.SensorData.Sum(g => g.Value.TotalMoles) > 1e-8) + { + foreach ((var gas, var threshold) in sensorData.GasThresholds) + { + if (!gasData.ContainsKey(gas)) + { + float mol = _airAlarmSystem.CalculateGasMolarConcentrationAverage(focusDeviceAirAlarm, gas, out var percentage); + + if (mol < 1e-8) + continue; + + gasData[gas] = (mol, percentage, AtmosAlarmType.Normal); + } + + if (threshold.CheckThreshold(gasData[gas].Item2, out var gasState) && + (int) gasState > (int) gasData[gas].Item3) + { + gasData[gas] = (gasData[gas].Item1, gasData[gas].Item2, gasState); + } + } + } + } + + return new AtmosAlertsFocusDeviceData(GetNetEntity(focusDevice.Value), temperatureData, pressureData, gasData); + } + + private HashSet GetAllAtmosDeviceNavMapData(EntityUid gridUid) + { + var atmosDeviceNavMapData = new HashSet(); + + var query = AllEntityQuery(); + while (query.MoveNext(out var ent, out var entComponent, out var entXform)) + { + if (TryGetAtmosDeviceNavMapData(ent, entComponent, entXform, gridUid, out var data)) + atmosDeviceNavMapData.Add(data.Value); + } + + return atmosDeviceNavMapData; + } + + 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; + + output = new AtmosAlertsDeviceNavMapData(GetNetEntity(uid), GetNetCoordinates(xform.Coordinates), component.Group); + + return true; + } + + private void InitalizeConsole(EntityUid uid, AtmosAlertsComputerComponent component) + { + var xform = Transform(uid); + + if (xform.GridUid == null) + return; + + var grid = xform.GridUid.Value; + component.AtmosDevices = GetAllAtmosDeviceNavMapData(grid); + + Dirty(uid, component); + } +} diff --git a/Content.Server/Atmos/EntitySystems/AirFilterSystem.cs b/Content.Server/Atmos/EntitySystems/AirFilterSystem.cs index 2ab15cfb17..c3344c830c 100644 --- a/Content.Server/Atmos/EntitySystems/AirFilterSystem.cs +++ b/Content.Server/Atmos/EntitySystems/AirFilterSystem.cs @@ -12,7 +12,6 @@ namespace Content.Server.Atmos.EntitySystems; public sealed class AirFilterSystem : EntitySystem { [Dependency] private readonly AtmosphereSystem _atmosphere = default!; - [Dependency] private readonly IMapManager _map = default!; [Dependency] private readonly SharedTransformSystem _transform = default!; public override void Initialize() diff --git a/Content.Server/Atmos/EntitySystems/AirtightSystem.cs b/Content.Server/Atmos/EntitySystems/AirtightSystem.cs index 152fba8fc4..cd07da7112 100644 --- a/Content.Server/Atmos/EntitySystems/AirtightSystem.cs +++ b/Content.Server/Atmos/EntitySystems/AirtightSystem.cs @@ -12,6 +12,7 @@ public sealed class AirtightSystem : EntitySystem [Dependency] private readonly SharedTransformSystem _transform = default!; [Dependency] private readonly AtmosphereSystem _atmosphereSystem = default!; [Dependency] private readonly ExplosionSystem _explosionSystem = default!; + [Dependency] private readonly SharedMapSystem _mapSystem = default!; public override void Initialize() { @@ -24,16 +25,19 @@ public override void Initialize() private void OnAirtightInit(Entity airtight, ref ComponentInit args) { - var xform = EntityManager.GetComponent(airtight); - - if (airtight.Comp.FixAirBlockedDirectionInitialize) + // TODO AIRTIGHT what FixAirBlockedDirectionInitialize even for? + if (!airtight.Comp.FixAirBlockedDirectionInitialize) { - var moveEvent = new MoveEvent(airtight, default, default, Angle.Zero, xform.LocalRotation, xform, false); - if (AirtightMove(airtight, ref moveEvent)) - return; + UpdatePosition(airtight); + return; } - UpdatePosition(airtight); + var xform = Transform(airtight); + airtight.Comp.CurrentAirBlockedDirection = + (int) Rotate((AtmosDirection) airtight.Comp.InitialAirBlockedDirection, xform.LocalRotation); + UpdatePosition(airtight, xform); + var airtightEv = new AirtightChanged(airtight, airtight, false, default); + RaiseLocalEvent(airtight, ref airtightEv, true); } private void OnAirtightShutdown(Entity airtight, ref ComponentShutdown args) @@ -41,13 +45,8 @@ private void OnAirtightShutdown(Entity airtight, ref Componen var xform = Transform(airtight); // If the grid is deleting no point updating atmos. - if (HasComp(xform.GridUid) && - MetaData(xform.GridUid.Value).EntityLifeStage > EntityLifeStage.MapInitialized) - { - return; - } - - SetAirblocked(airtight, false, xform); + if (xform.GridUid != null && LifeStage(xform.GridUid.Value) <= EntityLifeStage.MapInitialized) + SetAirblocked(airtight, false, xform); } private void OnAirtightPositionChanged(EntityUid uid, AirtightComponent airtight, ref AnchorStateChangedEvent args) @@ -59,12 +58,14 @@ private void OnAirtightPositionChanged(EntityUid uid, AirtightComponent airtight var gridId = xform.GridUid; var coords = xform.Coordinates; - - var tilePos = grid.TileIndicesFor(coords); + var tilePos = _mapSystem.TileIndicesFor(gridId.Value, grid, coords); // Update and invalidate new position. airtight.LastPosition = (gridId.Value, tilePos); InvalidatePosition(gridId.Value, tilePos); + + var airtightEv = new AirtightChanged(uid, airtight, false, (gridId.Value, tilePos)); + RaiseLocalEvent(uid, ref airtightEv, true); } private void OnAirtightReAnchor(EntityUid uid, AirtightComponent airtight, ref ReAnchorEvent args) @@ -74,24 +75,20 @@ private void OnAirtightReAnchor(EntityUid uid, AirtightComponent airtight, ref R // Update and invalidate new position. airtight.LastPosition = (gridId, args.TilePos); InvalidatePosition(gridId, args.TilePos); - } - } - private void OnAirtightMoved(Entity airtight, ref MoveEvent ev) - { - AirtightMove(airtight, ref ev); + var airtightEv = new AirtightChanged(uid, airtight, false, (gridId, args.TilePos)); + RaiseLocalEvent(uid, ref airtightEv, true); + } } - private bool AirtightMove(Entity ent, ref MoveEvent ev) + private void OnAirtightMoved(Entity ent, ref MoveEvent ev) { var (owner, airtight) = ent; - airtight.CurrentAirBlockedDirection = (int) Rotate((AtmosDirection)airtight.InitialAirBlockedDirection, ev.NewRotation); var pos = airtight.LastPosition; UpdatePosition(ent, ev.Component); - var airtightEv = new AirtightChanged(owner, airtight, pos); + var airtightEv = new AirtightChanged(owner, airtight, false, pos); RaiseLocalEvent(owner, ref airtightEv, true); - return true; } public void SetAirblocked(Entity airtight, bool airblocked, TransformComponent? xform = null) @@ -105,7 +102,7 @@ public void SetAirblocked(Entity airtight, bool airblocked, T var pos = airtight.Comp.LastPosition; airtight.Comp.AirBlocked = airblocked; UpdatePosition(airtight, xform); - var airtightEv = new AirtightChanged(airtight, airtight, pos); + var airtightEv = new AirtightChanged(airtight, airtight, true, pos); RaiseLocalEvent(airtight, ref airtightEv, true); } @@ -152,7 +149,13 @@ private AtmosDirection Rotate(AtmosDirection myDirection, Angle myAngle) } } + /// + /// Raised upon the airtight status being changed via anchoring, movement, etc. + /// + /// + /// + /// Whether the changed + /// [ByRefEvent] - public readonly record struct AirtightChanged(EntityUid Entity, AirtightComponent Airtight, - (EntityUid Grid, Vector2i Tile) Position); + public readonly record struct AirtightChanged(EntityUid Entity, AirtightComponent Airtight, bool AirBlockedChanged, (EntityUid Grid, Vector2i Tile) Position); } diff --git a/Content.Server/Atmos/EntitySystems/AtmosExposedSystem.cs b/Content.Server/Atmos/EntitySystems/AtmosExposedSystem.cs index 9590b9aa54..39469e993f 100644 --- a/Content.Server/Atmos/EntitySystems/AtmosExposedSystem.cs +++ b/Content.Server/Atmos/EntitySystems/AtmosExposedSystem.cs @@ -1,3 +1,4 @@ +using Content.Shared.Atmos; using Robust.Shared.Map; namespace Content.Server.Atmos.EntitySystems diff --git a/Content.Server/Atmos/EntitySystems/AtmosphereSystem.API.cs b/Content.Server/Atmos/EntitySystems/AtmosphereSystem.API.cs index 614d550c2f..df31db6ba0 100644 --- a/Content.Server/Atmos/EntitySystems/AtmosphereSystem.API.cs +++ b/Content.Server/Atmos/EntitySystems/AtmosphereSystem.API.cs @@ -1,10 +1,10 @@ using System.Linq; using Content.Server.Atmos.Components; using Content.Server.Atmos.Piping.Components; -using Content.Server.Atmos.Reactions; using Content.Server.NodeContainer.NodeGroups; using Content.Shared.Atmos; using Content.Shared.Atmos.Components; +using Content.Shared.Atmos.Reactions; using Robust.Shared.Map.Components; using Robust.Shared.Utility; diff --git a/Content.Server/Atmos/EntitySystems/AtmosphereSystem.Gases.cs b/Content.Server/Atmos/EntitySystems/AtmosphereSystem.Gases.cs index f8ee4f4192..70c4639e48 100644 --- a/Content.Server/Atmos/EntitySystems/AtmosphereSystem.Gases.cs +++ b/Content.Server/Atmos/EntitySystems/AtmosphereSystem.Gases.cs @@ -2,6 +2,7 @@ using System.Runtime.CompilerServices; using Content.Server.Atmos.Reactions; using Content.Shared.Atmos; +using Content.Shared.Atmos.Reactions; using Robust.Shared.Prototypes; using DependencyAttribute = Robust.Shared.IoC.DependencyAttribute; diff --git a/Content.Server/Atmos/EntitySystems/AtmosphereSystem.GridAtmosphere.cs b/Content.Server/Atmos/EntitySystems/AtmosphereSystem.GridAtmosphere.cs index 4b9ef49a40..3830745f68 100644 --- a/Content.Server/Atmos/EntitySystems/AtmosphereSystem.GridAtmosphere.cs +++ b/Content.Server/Atmos/EntitySystems/AtmosphereSystem.GridAtmosphere.cs @@ -2,6 +2,7 @@ using Content.Server.Atmos.Reactions; using Content.Shared.Atmos; using Content.Shared.Atmos.Components; +using Content.Shared.Atmos.Reactions; using Robust.Shared.Map; using Robust.Shared.Map.Components; using Robust.Shared.Utility; diff --git a/Content.Server/Atmos/EntitySystems/AtmosphereSystem.Hotspot.cs b/Content.Server/Atmos/EntitySystems/AtmosphereSystem.Hotspot.cs index 7163b4cd44..db95223733 100644 --- a/Content.Server/Atmos/EntitySystems/AtmosphereSystem.Hotspot.cs +++ b/Content.Server/Atmos/EntitySystems/AtmosphereSystem.Hotspot.cs @@ -2,6 +2,7 @@ using Content.Server.Atmos.Reactions; using Content.Shared.Atmos; using Content.Shared.Atmos.Components; +using Content.Shared.Atmos.Reactions; using Content.Shared.Audio; using Content.Shared.Database; using Robust.Shared.Audio; diff --git a/Content.Server/Atmos/EntitySystems/AtmosphereSystem.Map.cs b/Content.Server/Atmos/EntitySystems/AtmosphereSystem.Map.cs index 25b3b801f7..4b77d9c70d 100644 --- a/Content.Server/Atmos/EntitySystems/AtmosphereSystem.Map.cs +++ b/Content.Server/Atmos/EntitySystems/AtmosphereSystem.Map.cs @@ -1,4 +1,5 @@ using Content.Server.Atmos.Components; +using Content.Shared.Atmos; using Content.Shared.Atmos.Components; using Robust.Shared.GameStates; using Robust.Shared.Map.Components; diff --git a/Content.Server/Atmos/EntitySystems/FlammableSystem.cs b/Content.Server/Atmos/EntitySystems/FlammableSystem.cs index 7890b7751a..ec0e7b0709 100644 --- a/Content.Server/Atmos/EntitySystems/FlammableSystem.cs +++ b/Content.Server/Atmos/EntitySystems/FlammableSystem.cs @@ -12,6 +12,7 @@ using Content.Shared.Damage; using Content.Shared.Database; using Content.Shared.Interaction; +using Content.Shared.Inventory; using Content.Shared.Physics; using Content.Shared.Popups; using Content.Shared.Projectiles; @@ -42,18 +43,18 @@ public sealed class FlammableSystem : EntitySystem [Dependency] private readonly AlertsSystem _alertsSystem = default!; [Dependency] private readonly FixtureSystem _fixture = default!; [Dependency] private readonly IAdminLogManager _adminLogger = default!; + [Dependency] private readonly InventorySystem _inventory = default!; [Dependency] private readonly SharedAppearanceSystem _appearance = default!; [Dependency] private readonly SharedPopupSystem _popup = default!; [Dependency] private readonly UseDelaySystem _useDelay = default!; [Dependency] private readonly AudioSystem _audio = default!; [Dependency] private readonly IRobustRandom _random = default!; - public const float MinimumFireStacks = -10f; - public const float MaximumFireStacks = 20f; - private const float UpdateTime = 1f; + private EntityQuery _inventoryQuery; + private EntityQuery _physicsQuery; - public const float MinIgnitionTemperature = 373.15f; - public const string FlammableFixtureID = "flammable"; + // This should probably be moved to the component, requires a rewrite, all fires tick at the same time + private const float UpdateTime = 1f; private float _timer; @@ -63,6 +64,9 @@ public override void Initialize() { UpdatesAfter.Add(typeof(AtmosphereSystem)); + _inventoryQuery = GetEntityQuery(); + _physicsQuery = GetEntityQuery(); + SubscribeLocalEvent(OnMapInit); SubscribeLocalEvent(OnInteractUsing); SubscribeLocalEvent(OnCollide); @@ -131,7 +135,7 @@ private void OnMapInit(EntityUid uid, FlammableComponent component, MapInitEvent if (!TryComp(uid, out var body)) return; - _fixture.TryCreateFixture(uid, component.FlammableCollisionShape, FlammableFixtureID, hard: false, + _fixture.TryCreateFixture(uid, component.FlammableCollisionShape, component.FlammableFixtureID, hard: false, collisionMask: (int) CollisionGroup.FullTileLayer, body: body); } @@ -189,7 +193,7 @@ private void OnCollide(EntityUid uid, FlammableComponent flammable, ref StartCol // Normal hard collisions, though this isn't generally possible since most flammable things are mobs // which don't collide with one another, shouldn't work here. - if (args.OtherFixtureId != FlammableFixtureID && args.OurFixtureId != FlammableFixtureID) + if (args.OtherFixtureId != flammable.FlammableFixtureID && args.OurFixtureId != flammable.FlammableFixtureID) return; if (!flammable.FireSpread) @@ -204,7 +208,17 @@ private void OnCollide(EntityUid uid, FlammableComponent flammable, ref StartCol if (flammable.OnFire && otherFlammable.OnFire) { // Both are on fire -> equalize fire stacks. - var avg = (flammable.FireStacks + otherFlammable.FireStacks) / 2; + // Weight each thing's firestacks by its mass + var mass1 = 1f; + var mass2 = 1f; + if (_physicsQuery.TryComp(uid, out var physics) && _physicsQuery.TryComp(otherUid, out var otherPhys)) + { + mass1 = physics.Mass; + mass2 = otherPhys.Mass; + } + + var total = mass1 + mass2; + var avg = (flammable.FireStacks * mass1 + otherFlammable.FireStacks * mass2) / total; flammable.FireStacks = flammable.CanExtinguish ? avg : Math.Max(flammable.FireStacks, avg); otherFlammable.FireStacks = otherFlammable.CanExtinguish ? avg : Math.Max(otherFlammable.FireStacks, avg); UpdateAppearance(uid, flammable); @@ -213,25 +227,24 @@ private void OnCollide(EntityUid uid, FlammableComponent flammable, ref StartCol } // Only one is on fire -> attempt to spread the fire. - if (flammable.OnFire) + var (srcUid, srcFlammable, destUid, destFlammable) = flammable.OnFire + ? (uid, flammable, otherUid, otherFlammable) + : (otherUid, otherFlammable, uid, flammable); + + // if the thing on fire has less mass, spread less firestacks and vice versa + var ratio = 0.5f; + if (_physicsQuery.TryComp(srcUid, out var srcPhysics) && _physicsQuery.TryComp(destUid, out var destPhys)) { - otherFlammable.FireStacks += flammable.FireStacks / 2; - Ignite(otherUid, uid, otherFlammable); - if (flammable.CanExtinguish) - { - flammable.FireStacks /= 2; - UpdateAppearance(uid, flammable); - } + ratio *= srcPhysics.Mass / destPhys.Mass; } - else + + var lost = srcFlammable.FireStacks * ratio; + destFlammable.FireStacks += lost; + Ignite(destUid, srcUid, destFlammable); + if (srcFlammable.CanExtinguish) { - flammable.FireStacks += otherFlammable.FireStacks / 2; - Ignite(uid, otherUid, flammable); - if (otherFlammable.CanExtinguish) - { - otherFlammable.FireStacks /= 2; - UpdateAppearance(otherUid, otherFlammable); - } + srcFlammable.FireStacks -= lost; + UpdateAppearance(srcUid, srcFlammable); } } @@ -242,7 +255,7 @@ private void OnIsHot(EntityUid uid, FlammableComponent flammable, IsHotEvent arg private void OnTileFire(Entity ent, ref TileFireEvent args) { - var tempDelta = args.Temperature - MinIgnitionTemperature; + var tempDelta = args.Temperature - ent.Comp.MinIgnitionTemperature; _fireEvents.TryGetValue(ent, out var maxTemp); @@ -278,7 +291,7 @@ public void AdjustFireStacks(EntityUid uid, float relativeFireStacks, FlammableC if (relativeFireStacks > 0) relativeFireStacks *= flammable.FireStackIncreaseMultiplier; - flammable.FireStacks = MathF.Min(MathF.Max(MinimumFireStacks, flammable.FireStacks + relativeFireStacks), MaximumFireStacks); + flammable.FireStacks = MathF.Min(MathF.Max(flammable.MinimumFireStacks, flammable.FireStacks + relativeFireStacks), flammable.MaximumFireStacks); if (flammable.OnFire && flammable.FireStacks <= 0) Extinguish(uid, flammable); @@ -429,15 +442,20 @@ public override void Update(float frameTime) continue; } - EnsureComp(uid); - _ignitionSourceSystem.SetIgnited(uid); - - var damageScale = MathF.Min( flammable.FireStacks, 5); + var source = EnsureComp(uid); + _ignitionSourceSystem.SetIgnited((uid, source)); if (TryComp(uid, out TemperatureComponent? temp)) - _temperatureSystem.ChangeHeat(uid, 12500 * damageScale, false, temp); + _temperatureSystem.ChangeHeat(uid, 12500 * flammable.FireStacks, false, temp); + + var ev = new GetFireProtectionEvent(); + // let the thing on fire handle it + RaiseLocalEvent(uid, ref ev); + // and whatever it's wearing + if (_inventoryQuery.TryComp(uid, out var inv)) + _inventory.RelayEvent((uid, inv), ref ev); - _damageableSystem.TryChangeDamage(uid, flammable.Damage * damageScale, interruptsDoAfters: false); + _damageableSystem.TryChangeDamage(uid, flammable.Damage * flammable.FireStacks * ev.Multiplier, interruptsDoAfters: false); AdjustFireStacks(uid, flammable.FirestackFade * (flammable.Resisting ? 10f : 1f), flammable); } diff --git a/Content.Server/Atmos/EntitySystems/GasAnalyzerSystem.cs b/Content.Server/Atmos/EntitySystems/GasAnalyzerSystem.cs index 552ee14232..65977f8c14 100644 --- a/Content.Server/Atmos/EntitySystems/GasAnalyzerSystem.cs +++ b/Content.Server/Atmos/EntitySystems/GasAnalyzerSystem.cs @@ -95,9 +95,9 @@ private void ActivateAnalyzer(EntityUid uid, GasAnalyzerComponent component, Ent component.Enabled = true; Dirty(component); UpdateAppearance(uid, component); - if(!HasComp(uid)) - AddComp(uid); + EnsureComp(uid); UpdateAnalyzer(uid, component); + OpenUserInterface(uid, user, component); } /// @@ -118,8 +118,7 @@ private void DisableAnalyzer(EntityUid uid, GasAnalyzerComponent? component = nu if (!Resolve(uid, ref component)) return; - if (user != null && TryComp(user, out var actor)) - _userInterface.TryClose(uid, GasAnalyzerUiKey.Key, actor.PlayerSession); + _userInterface.CloseUi(uid, GasAnalyzerUiKey.Key, user); component.Enabled = false; Dirty(component); @@ -132,8 +131,6 @@ private void DisableAnalyzer(EntityUid uid, GasAnalyzerComponent? component = nu /// private void OnDisabledMessage(EntityUid uid, GasAnalyzerComponent component, GasAnalyzerDisableMessage message) { - if (message.Session.AttachedEntity is not {Valid: true}) - return; DisableAnalyzer(uid, component); } @@ -142,10 +139,7 @@ private void OpenUserInterface(EntityUid uid, EntityUid user, GasAnalyzerCompone if (!Resolve(uid, ref component, false)) return; - if (!TryComp(user, out var actor)) - return; - - _userInterface.TryOpen(uid, GasAnalyzerUiKey.Key, actor.PlayerSession); + _userInterface.OpenUi(uid, GasAnalyzerUiKey.Key, user); } /// @@ -169,7 +163,7 @@ private bool UpdateAnalyzer(EntityUid uid, GasAnalyzerComponent? component = nul // Check if position is out of range => don't update and disable if (!component.LastPosition.Value.InRange(EntityManager, _transform, userPos, SharedInteractionSystem.InteractionRange)) { - if(component.User is { } userId && component.Enabled) + if (component.User is { } userId && component.Enabled) _popup.PopupEntity(Loc.GetString("gas-analyzer-shutoff"), userId, userId); DisableAnalyzer(uid, component, component.User); return false; @@ -182,13 +176,13 @@ private bool UpdateAnalyzer(EntityUid uid, GasAnalyzerComponent? component = nul var tileMixture = _atmo.GetContainingMixture(uid, true); if (tileMixture != null) { - gasMixList.Add(new GasMixEntry(Loc.GetString("gas-analyzer-window-environment-tab-label"), tileMixture.Pressure, tileMixture.Temperature, + gasMixList.Add(new GasMixEntry(Loc.GetString("gas-analyzer-window-environment-tab-label"), tileMixture.Volume, tileMixture.Pressure, tileMixture.Temperature, GenerateGasEntryArray(tileMixture))); } else { // No gases were found - gasMixList.Add(new GasMixEntry(Loc.GetString("gas-analyzer-window-environment-tab-label"), 0f, 0f)); + gasMixList.Add(new GasMixEntry(Loc.GetString("gas-analyzer-window-environment-tab-label"), 0f, 0f, 0f)); } var deviceFlipped = false; @@ -209,8 +203,8 @@ private bool UpdateAnalyzer(EntityUid uid, GasAnalyzerComponent? component = nul { foreach (var mixes in ev.GasMixtures) { - if(mixes.Value != null) - gasMixList.Add(new GasMixEntry(mixes.Key, mixes.Value.Pressure, mixes.Value.Temperature, GenerateGasEntryArray(mixes.Value))); + if (mixes.Item2 != null) + gasMixList.Add(new GasMixEntry(mixes.Item1, mixes.Item2.Volume, mixes.Item2.Pressure, mixes.Item2.Temperature, GenerateGasEntryArray(mixes.Item2))); } deviceFlipped = ev.DeviceFlipped; @@ -223,7 +217,16 @@ private bool UpdateAnalyzer(EntityUid uid, GasAnalyzerComponent? component = nul foreach (var pair in node.Nodes) { if (pair.Value is PipeNode pipeNode) - gasMixList.Add(new GasMixEntry(pair.Key, pipeNode.Air.Pressure, pipeNode.Air.Temperature, GenerateGasEntryArray(pipeNode.Air))); + { + // check if the volume is zero for some reason so we don't divide by zero + if (pipeNode.Air.Volume == 0f) + continue; + // only display the gas in the analyzed pipe element, not the whole system + var pipeAir = pipeNode.Air.Clone(); + pipeAir.Multiply(pipeNode.Volume / pipeNode.Air.Volume); + pipeAir.Volume = pipeNode.Volume; + gasMixList.Add(new GasMixEntry(pair.Key, pipeAir.Volume, pipeAir.Pressure, pipeAir.Temperature, GenerateGasEntryArray(pipeAir))); + } } } } @@ -233,7 +236,7 @@ private bool UpdateAnalyzer(EntityUid uid, GasAnalyzerComponent? component = nul if (gasMixList.Count == 0) return false; - _userInterface.TrySendUiMessage(uid, GasAnalyzerUiKey.Key, + _userInterface.ServerSendUiMessage(uid, GasAnalyzerUiKey.Key, new GasAnalyzerUserMessage(gasMixList.ToArray(), component.Target != null ? Name(component.Target.Value) : string.Empty, GetNetEntity(component.Target) ?? NetEntity.Invalid, @@ -286,9 +289,9 @@ private GasEntry[] GenerateGasEntryArray(GasMixture? mixture) public sealed class GasAnalyzerScanEvent : EntityEventArgs { /// - /// Key is the mix name (ex "pipe", "inlet", "filter"), value is the pipe direction and GasMixture. Add all mixes that should be reported when scanned. + /// The string is for the name (ex "pipe", "inlet", "filter"), GasMixture for the corresponding gas mix. Add all mixes that should be reported when scanned. /// - public Dictionary? GasMixtures; + public List<(string, GasMixture?)>? GasMixtures; /// /// If the device is flipped. Flipped is defined as when the inline input is 90 degrees CW to the side input diff --git a/Content.Server/Atmos/EntitySystems/GasTankSystem.cs b/Content.Server/Atmos/EntitySystems/GasTankSystem.cs index 80842416e8..07594820fc 100644 --- a/Content.Server/Atmos/EntitySystems/GasTankSystem.cs +++ b/Content.Server/Atmos/EntitySystems/GasTankSystem.cs @@ -75,7 +75,7 @@ private void OnGasTankSetPressure(Entity ent, ref GasTankSetPr public void UpdateUserInterface(Entity ent, bool initialUpdate = false) { var (owner, component) = ent; - _ui.TrySetUiState(owner, SharedGasTankUiKey.Key, + _ui.SetUiState(owner, SharedGasTankUiKey.Key, new GasTankBoundUserInterfaceState { TankPressure = component.Air?.Pressure ?? 0, @@ -359,7 +359,8 @@ public void CheckStatus(Entity ent) /// private void OnAnalyzed(EntityUid uid, GasTankComponent component, GasAnalyzerScanEvent args) { - args.GasMixtures = new Dictionary { {Name(uid), component.Air} }; + args.GasMixtures ??= new List<(string, GasMixture?)>(); + args.GasMixtures.Add((Name(uid), component.Air)); } private void OnGasTankPrice(EntityUid uid, GasTankComponent component, ref PriceCalculationEvent args) diff --git a/Content.Server/Atmos/IGasMixtureHolder.cs b/Content.Server/Atmos/IGasMixtureHolder.cs index 96efa6b983..65d7ba69a7 100644 --- a/Content.Server/Atmos/IGasMixtureHolder.cs +++ b/Content.Server/Atmos/IGasMixtureHolder.cs @@ -1,4 +1,6 @@ -namespace Content.Server.Atmos +using Content.Shared.Atmos; + +namespace Content.Server.Atmos { public interface IGasMixtureHolder { diff --git a/Content.Server/Atmos/IGasReactionEffect.cs b/Content.Server/Atmos/IGasReactionEffect.cs index bd229694bb..9fc9231908 100644 --- a/Content.Server/Atmos/IGasReactionEffect.cs +++ b/Content.Server/Atmos/IGasReactionEffect.cs @@ -1,5 +1,6 @@ using Content.Server.Atmos.EntitySystems; -using Content.Server.Atmos.Reactions; +using Content.Shared.Atmos; +using Content.Shared.Atmos.Reactions; namespace Content.Server.Atmos { diff --git a/Content.Server/Atmos/Monitor/Components/AirAlarmComponent.cs b/Content.Server/Atmos/Monitor/Components/AirAlarmComponent.cs index 7030d607a6..93f704fe21 100644 --- a/Content.Server/Atmos/Monitor/Components/AirAlarmComponent.cs +++ b/Content.Server/Atmos/Monitor/Components/AirAlarmComponent.cs @@ -24,8 +24,6 @@ public sealed partial class AirAlarmComponent : Component public readonly Dictionary ScrubberData = new(); public readonly Dictionary SensorData = new(); - public HashSet ActivePlayers = new(); - public bool CanSync = true; /// diff --git a/Content.Server/Atmos/Monitor/Systems/AirAlarmSystem.cs b/Content.Server/Atmos/Monitor/Systems/AirAlarmSystem.cs index 2922d0796a..04a9023c1d 100644 --- a/Content.Server/Atmos/Monitor/Systems/AirAlarmSystem.cs +++ b/Content.Server/Atmos/Monitor/Systems/AirAlarmSystem.cs @@ -223,8 +223,7 @@ private void OnPowerChanged(EntityUid uid, AirAlarmComponent component, ref Powe private void OnClose(EntityUid uid, AirAlarmComponent component, BoundUIClosedEvent args) { - component.ActivePlayers.Remove(args.Session.UserId); - if (component.ActivePlayers.Count == 0) + if (!_ui.IsUiOpen(uid, SharedAirAlarmInterfaceKey.Key)) RemoveActiveInterface(uid); } @@ -247,9 +246,6 @@ private void OnShutdown(EntityUid uid, AirAlarmComponent component, ComponentShu private void OnActivate(EntityUid uid, AirAlarmComponent component, ActivateInWorldEvent args) { - if (!TryComp(args.User, out var actor)) - return; - if (TryComp(uid, out var panel) && panel.Open) { args.Handled = false; @@ -259,10 +255,7 @@ private void OnActivate(EntityUid uid, AirAlarmComponent component, ActivateInWo if (!this.IsPowered(uid, EntityManager)) return; - var ui = _ui.GetUiOrNull(uid, SharedAirAlarmInterfaceKey.Key); - if (ui != null) - _ui.OpenUi(ui, actor.PlayerSession); - component.ActivePlayers.Add(actor.PlayerSession.UserId); + _ui.OpenUi(uid, SharedAirAlarmInterfaceKey.Key, args.User); AddActiveInterface(uid); SyncAllDevices(uid); UpdateUI(uid, component); @@ -270,7 +263,7 @@ private void OnActivate(EntityUid uid, AirAlarmComponent component, ActivateInWo private void OnResyncAll(EntityUid uid, AirAlarmComponent component, AirAlarmResyncAllDevicesMessage args) { - if (!AccessCheck(uid, args.Session.AttachedEntity, component)) + if (!AccessCheck(uid, args.Actor, component)) { return; } @@ -285,7 +278,7 @@ private void OnResyncAll(EntityUid uid, AirAlarmComponent component, AirAlarmRes private void OnUpdateAlarmMode(EntityUid uid, AirAlarmComponent component, AirAlarmUpdateAlarmModeMessage args) { - if (AccessCheck(uid, args.Session.AttachedEntity, component)) + if (AccessCheck(uid, args.Actor, component)) { var addr = string.Empty; if (TryComp(uid, out var netConn)) @@ -309,7 +302,7 @@ private void OnUpdateAutoMode(EntityUid uid, AirAlarmComponent component, AirAla private void OnUpdateThreshold(EntityUid uid, AirAlarmComponent component, AirAlarmUpdateAlarmThresholdMessage args) { - if (AccessCheck(uid, args.Session.AttachedEntity, component)) + if (AccessCheck(uid, args.Actor, component)) SetThreshold(uid, args.Address, args.Type, args.Threshold, args.Gas); else UpdateUI(uid, component); @@ -317,7 +310,7 @@ private void OnUpdateThreshold(EntityUid uid, AirAlarmComponent component, AirAl private void OnUpdateDeviceData(EntityUid uid, AirAlarmComponent component, AirAlarmUpdateDeviceDataMessage args) { - if (AccessCheck(uid, args.Session.AttachedEntity, component) + if (AccessCheck(uid, args.Actor, component) && _deviceList.ExistsInDeviceList(uid, args.Address)) { SetDeviceData(uid, args.Address, args.Data); @@ -330,7 +323,7 @@ private void OnUpdateDeviceData(EntityUid uid, AirAlarmComponent component, AirA private void OnCopyDeviceData(EntityUid uid, AirAlarmComponent component, AirAlarmCopyDeviceDataMessage args) { - if (!AccessCheck(uid, args.Session.AttachedEntity, component)) + if (!AccessCheck(uid, args.Actor, component)) { UpdateUI(uid, component); return; @@ -377,7 +370,7 @@ private bool AccessCheck(EntityUid uid, EntityUid? user, AirAlarmComponent? comp private void OnAtmosAlarm(EntityUid uid, AirAlarmComponent component, AtmosAlarmEvent args) { - if (component.ActivePlayers.Count != 0) + if (_ui.IsUiOpen(uid, SharedAirAlarmInterfaceKey.Key)) { SyncAllDevices(uid); } @@ -571,7 +564,7 @@ private void RemoveActiveInterface(EntityUid uid) /// private void ForceCloseAllInterfaces(EntityUid uid) { - _ui.TryCloseAll(uid, SharedAirAlarmInterfaceKey.Key); + _ui.CloseUi(uid, SharedAirAlarmInterfaceKey.Key); } private void OnAtmosUpdate(EntityUid uid, AirAlarmComponent alarm, ref AtmosDeviceUpdateEvent args) @@ -593,6 +586,21 @@ public float CalculateTemperatureAverage(AirAlarmComponent alarm) : 0f; } + public float CalculateGasMolarConcentrationAverage(AirAlarmComponent alarm, Gas gas, out float percentage) + { + percentage = 0f; + + var data = alarm.SensorData.Values.SelectMany(v => v.Gases.Where(g => g.Key == gas)); + + if (data.Count() == 0) + return 0f; + + var averageMol = data.Select(kvp => kvp.Value).Average(); + percentage = data.Select(kvp => kvp.Value).Sum() / alarm.SensorData.Values.Select(v => v.TotalMoles).Sum(); + + return averageMol; + } + public void UpdateUI(EntityUid uid, AirAlarmComponent? alarm = null, DeviceNetworkComponent? devNet = null, AtmosAlarmableComponent? alarmable = null) { if (!Resolve(uid, ref alarm, ref devNet, ref alarmable)) @@ -639,7 +647,7 @@ public void UpdateUI(EntityUid uid, AirAlarmComponent? alarm = null, DeviceNetwo highestAlarm = AtmosAlarmType.Normal; } - _ui.TrySetUiState( + _ui.SetUiState( uid, SharedAirAlarmInterfaceKey.Key, new AirAlarmUIState(devNet.Address, deviceCount, pressure, temperature, dataToSend, alarm.CurrentMode, alarm.CurrentTab, highestAlarm.Value, alarm.AutoMode)); diff --git a/Content.Server/Atmos/Piping/Binary/Components/GasPortComponent.cs b/Content.Server/Atmos/Piping/Binary/Components/GasPortComponent.cs index fb7ee6d5cf..315362383c 100644 --- a/Content.Server/Atmos/Piping/Binary/Components/GasPortComponent.cs +++ b/Content.Server/Atmos/Piping/Binary/Components/GasPortComponent.cs @@ -1,3 +1,5 @@ +using Content.Shared.Atmos; + namespace Content.Server.Atmos.Piping.Binary.Components { [RegisterComponent] diff --git a/Content.Server/Atmos/Piping/Binary/Components/GasRecyclerComponent.cs b/Content.Server/Atmos/Piping/Binary/Components/GasRecyclerComponent.cs index e1eb0072b9..aa7e3e0b36 100644 --- a/Content.Server/Atmos/Piping/Binary/Components/GasRecyclerComponent.cs +++ b/Content.Server/Atmos/Piping/Binary/Components/GasRecyclerComponent.cs @@ -1,11 +1,12 @@ using Content.Shared.Atmos; +using Content.Shared.Construction.Prototypes; +using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype; namespace Content.Server.Atmos.Piping.Binary.Components { [RegisterComponent] public sealed partial class GasRecyclerComponent : Component { - [ViewVariables(VVAccess.ReadOnly)] [DataField("reacting")] public Boolean Reacting { get; set; } = false; @@ -17,10 +18,28 @@ public sealed partial class GasRecyclerComponent : Component [DataField("outlet")] public string OutletName { get; set; } = "outlet"; - [DataField, ViewVariables(VVAccess.ReadWrite)] + [DataField] public float MinTemp = 300 + Atmospherics.T0C; - [DataField, ViewVariables(VVAccess.ReadWrite)] + [DataField] + public float BaseMinTemp = 300 + Atmospherics.T0C; + + [DataField(customTypeSerializer: typeof(PrototypeIdSerializer))] + public string MachinePartMinTemp = "Capacitor"; + + [DataField] + public float PartRatingMinTempMultiplier = 0.95f; + + [ViewVariables(VVAccess.ReadWrite)] public float MinPressure = 30 * Atmospherics.OneAtmosphere; + + [DataField] + public float BaseMinPressure = 30 * Atmospherics.OneAtmosphere; + + [DataField(customTypeSerializer: typeof(PrototypeIdSerializer))] + public string MachinePartMinPressure = "Manipulator"; + + [DataField] + public float PartRatingMinPressureMultiplier = 0.8f; } } diff --git a/Content.Server/Atmos/Piping/Binary/EntitySystems/GasPressurePumpSystem.cs b/Content.Server/Atmos/Piping/Binary/EntitySystems/GasPressurePumpSystem.cs index af25d04df9..83b7b67ba4 100644 --- a/Content.Server/Atmos/Piping/Binary/EntitySystems/GasPressurePumpSystem.cs +++ b/Content.Server/Atmos/Piping/Binary/EntitySystems/GasPressurePumpSystem.cs @@ -98,7 +98,7 @@ private void OnPumpLeaveAtmosphere(EntityUid uid, GasPressurePumpComponent pump, UpdateAppearance(uid, pump); DirtyUI(uid, pump); - _userInterfaceSystem.TryCloseAll(uid, GasPressurePumpUiKey.Key); + _userInterfaceSystem.CloseUi(uid, GasPressurePumpUiKey.Key); } private void OnPumpActivate(EntityUid uid, GasPressurePumpComponent pump, ActivateInWorldEvent args) @@ -108,7 +108,7 @@ private void OnPumpActivate(EntityUid uid, GasPressurePumpComponent pump, Activa if (Transform(uid).Anchored) { - _userInterfaceSystem.TryOpen(uid, GasPressurePumpUiKey.Key, actor.PlayerSession); + _userInterfaceSystem.OpenUi(uid, GasPressurePumpUiKey.Key, actor.PlayerSession); DirtyUI(uid, pump); } else @@ -123,7 +123,7 @@ private void OnToggleStatusMessage(EntityUid uid, GasPressurePumpComponent pump, { pump.Enabled = args.Enabled; _adminLogger.Add(LogType.AtmosPowerChanged, LogImpact.Medium, - $"{ToPrettyString(args.Session.AttachedEntity!.Value):player} set the power on {ToPrettyString(uid):device} to {args.Enabled}"); + $"{ToPrettyString(args.Actor):player} set the power on {ToPrettyString(uid):device} to {args.Enabled}"); DirtyUI(uid, pump); UpdateAppearance(uid, pump); } @@ -132,7 +132,7 @@ private void OnOutputPressureChangeMessage(EntityUid uid, GasPressurePumpCompone { pump.TargetPressure = Math.Clamp(args.Pressure, 0f, Atmospherics.MaxOutputPressure); _adminLogger.Add(LogType.AtmosPressureChanged, LogImpact.Medium, - $"{ToPrettyString(args.Session.AttachedEntity!.Value):player} set the pressure on {ToPrettyString(uid):device} to {args.Pressure}kPa"); + $"{ToPrettyString(args.Actor):player} set the pressure on {ToPrettyString(uid):device} to {args.Pressure}kPa"); DirtyUI(uid, pump); } @@ -142,7 +142,7 @@ private void DirtyUI(EntityUid uid, GasPressurePumpComponent? pump) if (!Resolve(uid, ref pump)) return; - _userInterfaceSystem.TrySetUiState(uid, GasPressurePumpUiKey.Key, + _userInterfaceSystem.SetUiState(uid, GasPressurePumpUiKey.Key, new GasPressurePumpBoundUserInterfaceState(EntityManager.GetComponent(uid).EntityName, pump.TargetPressure, pump.Enabled)); } diff --git a/Content.Server/Atmos/Piping/Binary/EntitySystems/GasRecyclerSystem.cs b/Content.Server/Atmos/Piping/Binary/EntitySystems/GasRecyclerSystem.cs index 3ebc509492..40b9d88846 100644 --- a/Content.Server/Atmos/Piping/Binary/EntitySystems/GasRecyclerSystem.cs +++ b/Content.Server/Atmos/Piping/Binary/EntitySystems/GasRecyclerSystem.cs @@ -1,6 +1,7 @@ using Content.Server.Atmos.EntitySystems; using Content.Server.Atmos.Piping.Binary.Components; using Content.Server.Atmos.Piping.Components; +using Content.Server.Construction; using Content.Server.NodeContainer; using Content.Server.NodeContainer.EntitySystems; using Content.Server.NodeContainer.Nodes; @@ -28,6 +29,8 @@ public override void Initialize() SubscribeLocalEvent(OnUpdate); SubscribeLocalEvent(OnDisabled); SubscribeLocalEvent(OnExamined); + SubscribeLocalEvent(OnRefreshParts); + SubscribeLocalEvent(OnUpgradeExamine); } private void OnEnabled(EntityUid uid, GasRecyclerComponent comp, ref AtmosDeviceEnabledEvent args) @@ -116,5 +119,20 @@ private void UpdateAppearance(EntityUid uid, GasRecyclerComponent? comp = null) _appearance.SetData(uid, PumpVisuals.Enabled, comp.Reacting); } + + private void OnRefreshParts(EntityUid uid, GasRecyclerComponent component, RefreshPartsEvent args) + { + var ratingTemp = args.PartRatings[component.MachinePartMinTemp]; + var ratingPressure = args.PartRatings[component.MachinePartMinPressure]; + + component.MinTemp = component.BaseMinTemp * MathF.Pow(component.PartRatingMinTempMultiplier, ratingTemp - 1); + component.MinPressure = component.BaseMinPressure * MathF.Pow(component.PartRatingMinPressureMultiplier, ratingPressure - 1); + } + + private void OnUpgradeExamine(EntityUid uid, GasRecyclerComponent component, UpgradeExamineEvent args) + { + args.AddPercentageUpgrade("gas-recycler-upgrade-min-temp", component.MinTemp / component.BaseMinTemp); + args.AddPercentageUpgrade("gas-recycler-upgrade-min-pressure", component.MinPressure / component.BaseMinPressure); + } } } diff --git a/Content.Server/Atmos/Piping/Binary/EntitySystems/GasVolumePumpSystem.cs b/Content.Server/Atmos/Piping/Binary/EntitySystems/GasVolumePumpSystem.cs index e4767c4061..cbcd1f4fa3 100644 --- a/Content.Server/Atmos/Piping/Binary/EntitySystems/GasVolumePumpSystem.cs +++ b/Content.Server/Atmos/Piping/Binary/EntitySystems/GasVolumePumpSystem.cs @@ -128,7 +128,7 @@ private void OnVolumePumpLeaveAtmosphere(EntityUid uid, GasVolumePumpComponent p UpdateAppearance(uid, pump); DirtyUI(uid, pump); - _userInterfaceSystem.TryCloseAll(uid, GasVolumePumpUiKey.Key); + _userInterfaceSystem.CloseUi(uid, GasVolumePumpUiKey.Key); } private void OnPumpActivate(EntityUid uid, GasVolumePumpComponent pump, ActivateInWorldEvent args) @@ -138,7 +138,7 @@ private void OnPumpActivate(EntityUid uid, GasVolumePumpComponent pump, Activate if (Transform(uid).Anchored) { - _userInterfaceSystem.TryOpen(uid, GasVolumePumpUiKey.Key, actor.PlayerSession); + _userInterfaceSystem.OpenUi(uid, GasVolumePumpUiKey.Key, actor.PlayerSession); DirtyUI(uid, pump); } else @@ -153,7 +153,7 @@ private void OnToggleStatusMessage(EntityUid uid, GasVolumePumpComponent pump, G { pump.Enabled = args.Enabled; _adminLogger.Add(LogType.AtmosPowerChanged, LogImpact.Medium, - $"{ToPrettyString(args.Session.AttachedEntity!.Value):player} set the power on {ToPrettyString(uid):device} to {args.Enabled}"); + $"{ToPrettyString(args.Actor):player} set the power on {ToPrettyString(uid):device} to {args.Enabled}"); DirtyUI(uid, pump); UpdateAppearance(uid, pump); } @@ -162,7 +162,7 @@ private void OnTransferRateChangeMessage(EntityUid uid, GasVolumePumpComponent p { pump.TransferRate = Math.Clamp(args.TransferRate, 0f, pump.MaxTransferRate); _adminLogger.Add(LogType.AtmosVolumeChanged, LogImpact.Medium, - $"{ToPrettyString(args.Session.AttachedEntity!.Value):player} set the transfer rate on {ToPrettyString(uid):device} to {args.TransferRate}"); + $"{ToPrettyString(args.Actor):player} set the transfer rate on {ToPrettyString(uid):device} to {args.TransferRate}"); DirtyUI(uid, pump); } @@ -171,7 +171,7 @@ private void DirtyUI(EntityUid uid, GasVolumePumpComponent? pump) if (!Resolve(uid, ref pump)) return; - _userInterfaceSystem.TrySetUiState(uid, GasVolumePumpUiKey.Key, + _userInterfaceSystem.SetUiState(uid, GasVolumePumpUiKey.Key, new GasVolumePumpBoundUserInterfaceState(Name(uid), pump.TransferRate, pump.Enabled)); } diff --git a/Content.Server/Atmos/Piping/Trinary/EntitySystems/GasFilterSystem.cs b/Content.Server/Atmos/Piping/Trinary/EntitySystems/GasFilterSystem.cs index fbd4260469..007d304e98 100644 --- a/Content.Server/Atmos/Piping/Trinary/EntitySystems/GasFilterSystem.cs +++ b/Content.Server/Atmos/Piping/Trinary/EntitySystems/GasFilterSystem.cs @@ -73,7 +73,7 @@ private void OnFilterUpdated(EntityUid uid, GasFilterComponent filter, ref Atmos if (filter.FilteredGas.HasValue) { - var filteredOut = new GasMixture() {Temperature = removed.Temperature}; + var filteredOut = new GasMixture() { Temperature = removed.Temperature }; filteredOut.SetMoles(filter.FilteredGas.Value, removed.GetMoles(filter.FilteredGas.Value)); removed.SetMoles(filter.FilteredGas.Value, 0f); @@ -94,7 +94,7 @@ private void OnFilterLeaveAtmosphere(EntityUid uid, GasFilterComponent filter, r _ambientSoundSystem.SetAmbience(uid, false); DirtyUI(uid, filter); - _userInterfaceSystem.TryCloseAll(uid, GasFilterUiKey.Key); + _userInterfaceSystem.CloseUi(uid, GasFilterUiKey.Key); } private void OnFilterActivate(EntityUid uid, GasFilterComponent filter, ActivateInWorldEvent args) @@ -104,7 +104,7 @@ private void OnFilterActivate(EntityUid uid, GasFilterComponent filter, Activate if (EntityManager.GetComponent(uid).Anchored) { - _userInterfaceSystem.TryOpen(uid, GasFilterUiKey.Key, actor.PlayerSession); + _userInterfaceSystem.OpenUi(uid, GasFilterUiKey.Key, actor.PlayerSession); DirtyUI(uid, filter); } else @@ -120,7 +120,7 @@ private void DirtyUI(EntityUid uid, GasFilterComponent? filter) if (!Resolve(uid, ref filter)) return; - _userInterfaceSystem.TrySetUiState(uid, GasFilterUiKey.Key, + _userInterfaceSystem.SetUiState(uid, GasFilterUiKey.Key, new GasFilterBoundUserInterfaceState(MetaData(uid).EntityName, filter.TransferRate, filter.Enabled, filter.FilteredGas)); } @@ -136,7 +136,7 @@ private void OnToggleStatusMessage(EntityUid uid, GasFilterComponent filter, Gas { filter.Enabled = args.Enabled; _adminLogger.Add(LogType.AtmosPowerChanged, LogImpact.Medium, - $"{ToPrettyString(args.Session.AttachedEntity!.Value):player} set the power on {ToPrettyString(uid):device} to {args.Enabled}"); + $"{ToPrettyString(args.Actor):player} set the power on {ToPrettyString(uid):device} to {args.Enabled}"); DirtyUI(uid, filter); UpdateAppearance(uid, filter); } @@ -145,7 +145,7 @@ private void OnTransferRateChangeMessage(EntityUid uid, GasFilterComponent filte { filter.TransferRate = Math.Clamp(args.Rate, 0f, filter.MaxTransferRate); _adminLogger.Add(LogType.AtmosVolumeChanged, LogImpact.Medium, - $"{ToPrettyString(args.Session.AttachedEntity!.Value):player} set the transfer rate on {ToPrettyString(uid):device} to {args.Rate}"); + $"{ToPrettyString(args.Actor):player} set the transfer rate on {ToPrettyString(uid):device} to {args.Rate}"); DirtyUI(uid, filter); } @@ -158,7 +158,7 @@ private void OnSelectGasMessage(EntityUid uid, GasFilterComponent filter, GasFil { filter.FilteredGas = parsedGas; _adminLogger.Add(LogType.AtmosFilterChanged, LogImpact.Medium, - $"{ToPrettyString(args.Session.AttachedEntity!.Value):player} set the filter on {ToPrettyString(uid):device} to {parsedGas.ToString()}"); + $"{ToPrettyString(args.Actor):player} set the filter on {ToPrettyString(uid):device} to {parsedGas.ToString()}"); DirtyUI(uid, filter); } else @@ -170,7 +170,7 @@ private void OnSelectGasMessage(EntityUid uid, GasFilterComponent filter, GasFil { filter.FilteredGas = null; _adminLogger.Add(LogType.AtmosFilterChanged, LogImpact.Medium, - $"{ToPrettyString(args.Session.AttachedEntity!.Value):player} set the filter on {ToPrettyString(uid):device} to none"); + $"{ToPrettyString(args.Actor):player} set the filter on {ToPrettyString(uid):device} to none"); DirtyUI(uid, filter); } } @@ -180,17 +180,30 @@ private void OnSelectGasMessage(EntityUid uid, GasFilterComponent filter, GasFil /// private void OnFilterAnalyzed(EntityUid uid, GasFilterComponent component, GasAnalyzerScanEvent args) { - if (!EntityManager.TryGetComponent(uid, out NodeContainerComponent? nodeContainer)) - return; - - args.GasMixtures ??= new Dictionary(); + args.GasMixtures ??= new List<(string, GasMixture?)>(); - if(_nodeContainer.TryGetNode(nodeContainer, component.InletName, out PipeNode? inlet)) - args.GasMixtures.Add(Loc.GetString("gas-analyzer-window-text-inlet"), inlet.Air); - if(_nodeContainer.TryGetNode(nodeContainer, component.FilterName, out PipeNode? filterNode)) - args.GasMixtures.Add(Loc.GetString("gas-analyzer-window-text-filter"), filterNode.Air); - if(_nodeContainer.TryGetNode(nodeContainer, component.OutletName, out PipeNode? outlet)) - args.GasMixtures.Add(Loc.GetString("gas-analyzer-window-text-outlet"), outlet.Air); + // multiply by volume fraction to make sure to send only the gas inside the analyzed pipe element, not the whole pipe system + if (_nodeContainer.TryGetNode(uid, component.InletName, out PipeNode? inlet) && inlet.Air.Volume != 0f) + { + var inletAirLocal = inlet.Air.Clone(); + inletAirLocal.Multiply(inlet.Volume / inlet.Air.Volume); + inletAirLocal.Volume = inlet.Volume; + args.GasMixtures.Add((Loc.GetString("gas-analyzer-window-text-inlet"), inletAirLocal)); + } + if (_nodeContainer.TryGetNode(uid, component.FilterName, out PipeNode? filterNode) && filterNode.Air.Volume != 0f) + { + var filterNodeAirLocal = filterNode.Air.Clone(); + filterNodeAirLocal.Multiply(filterNode.Volume / filterNode.Air.Volume); + filterNodeAirLocal.Volume = filterNode.Volume; + args.GasMixtures.Add((Loc.GetString("gas-analyzer-window-text-filter"), filterNodeAirLocal)); + } + if (_nodeContainer.TryGetNode(uid, component.OutletName, out PipeNode? outlet) && outlet.Air.Volume != 0f) + { + var outletAirLocal = outlet.Air.Clone(); + outletAirLocal.Multiply(outlet.Volume / outlet.Air.Volume); + outletAirLocal.Volume = outlet.Volume; + args.GasMixtures.Add((Loc.GetString("gas-analyzer-window-text-outlet"), outletAirLocal)); + } args.DeviceFlipped = inlet != null && filterNode != null && inlet.CurrentPipeDirection.ToDirection() == filterNode.CurrentPipeDirection.ToDirection().GetClockwise90Degrees(); } diff --git a/Content.Server/Atmos/Piping/Trinary/EntitySystems/GasMixerSystem.cs b/Content.Server/Atmos/Piping/Trinary/EntitySystems/GasMixerSystem.cs index ba8ebf3c9a..4ab8572843 100644 --- a/Content.Server/Atmos/Piping/Trinary/EntitySystems/GasMixerSystem.cs +++ b/Content.Server/Atmos/Piping/Trinary/EntitySystems/GasMixerSystem.cs @@ -134,7 +134,7 @@ private void OnMixerLeaveAtmosphere(EntityUid uid, GasMixerComponent mixer, ref DirtyUI(uid, mixer); UpdateAppearance(uid, mixer); - _userInterfaceSystem.TryCloseAll(uid, GasFilterUiKey.Key); + _userInterfaceSystem.CloseUi(uid, GasFilterUiKey.Key); } private void OnMixerActivate(EntityUid uid, GasMixerComponent mixer, ActivateInWorldEvent args) @@ -144,7 +144,7 @@ private void OnMixerActivate(EntityUid uid, GasMixerComponent mixer, ActivateInW if (Transform(uid).Anchored) { - _userInterfaceSystem.TryOpen(uid, GasMixerUiKey.Key, actor.PlayerSession); + _userInterfaceSystem.OpenUi(uid, GasMixerUiKey.Key, actor.PlayerSession); DirtyUI(uid, mixer); } else @@ -160,7 +160,7 @@ private void DirtyUI(EntityUid uid, GasMixerComponent? mixer) if (!Resolve(uid, ref mixer)) return; - _userInterfaceSystem.TrySetUiState(uid, GasMixerUiKey.Key, + _userInterfaceSystem.SetUiState(uid, GasMixerUiKey.Key, new GasMixerBoundUserInterfaceState(EntityManager.GetComponent(uid).EntityName, mixer.TargetPressure, mixer.Enabled, mixer.InletOneConcentration)); } @@ -176,7 +176,7 @@ private void OnToggleStatusMessage(EntityUid uid, GasMixerComponent mixer, GasMi { mixer.Enabled = args.Enabled; _adminLogger.Add(LogType.AtmosPowerChanged, LogImpact.Medium, - $"{ToPrettyString(args.Session.AttachedEntity!.Value):player} set the power on {ToPrettyString(uid):device} to {args.Enabled}"); + $"{ToPrettyString(args.Actor):player} set the power on {ToPrettyString(uid):device} to {args.Enabled}"); DirtyUI(uid, mixer); UpdateAppearance(uid, mixer); } @@ -185,7 +185,7 @@ private void OnOutputPressureChangeMessage(EntityUid uid, GasMixerComponent mixe { mixer.TargetPressure = Math.Clamp(args.Pressure, 0f, mixer.MaxTargetPressure); _adminLogger.Add(LogType.AtmosPressureChanged, LogImpact.Medium, - $"{ToPrettyString(args.Session.AttachedEntity!.Value):player} set the pressure on {ToPrettyString(uid):device} to {args.Pressure}kPa"); + $"{ToPrettyString(args.Actor):player} set the pressure on {ToPrettyString(uid):device} to {args.Pressure}kPa"); DirtyUI(uid, mixer); } @@ -196,7 +196,7 @@ private void OnChangeNodePercentageMessage(EntityUid uid, GasMixerComponent mixe mixer.InletOneConcentration = nodeOne; mixer.InletTwoConcentration = 1.0f - mixer.InletOneConcentration; _adminLogger.Add(LogType.AtmosRatioChanged, LogImpact.Medium, - $"{EntityManager.ToPrettyString(args.Session.AttachedEntity!.Value):player} set the ratio on {EntityManager.ToPrettyString(uid):device} to {mixer.InletOneConcentration}:{mixer.InletTwoConcentration}"); + $"{EntityManager.ToPrettyString(args.Actor):player} set the ratio on {EntityManager.ToPrettyString(uid):device} to {mixer.InletOneConcentration}:{mixer.InletTwoConcentration}"); DirtyUI(uid, mixer); } @@ -205,19 +205,31 @@ private void OnChangeNodePercentageMessage(EntityUid uid, GasMixerComponent mixe /// private void OnMixerAnalyzed(EntityUid uid, GasMixerComponent component, GasAnalyzerScanEvent args) { - if (!EntityManager.TryGetComponent(uid, out NodeContainerComponent? nodeContainer)) - return; - - var gasMixDict = new Dictionary(); + args.GasMixtures ??= new List<(string, GasMixture?)>(); - if(_nodeContainer.TryGetNode(nodeContainer, component.InletOneName, out PipeNode? inletOne)) - gasMixDict.Add($"{inletOne.CurrentPipeDirection} {Loc.GetString("gas-analyzer-window-text-inlet")}", inletOne.Air); - if(_nodeContainer.TryGetNode(nodeContainer, component.InletTwoName, out PipeNode? inletTwo)) - gasMixDict.Add($"{inletTwo.CurrentPipeDirection} {Loc.GetString("gas-analyzer-window-text-inlet")}", inletTwo.Air); - if(_nodeContainer.TryGetNode(nodeContainer, component.OutletName, out PipeNode? outlet)) - gasMixDict.Add(Loc.GetString("gas-analyzer-window-text-outlet"), outlet.Air); + // multiply by volume fraction to make sure to send only the gas inside the analyzed pipe element, not the whole pipe system + if (_nodeContainer.TryGetNode(uid, component.InletOneName, out PipeNode? inletOne) && inletOne.Air.Volume != 0f) + { + var inletOneAirLocal = inletOne.Air.Clone(); + inletOneAirLocal.Multiply(inletOne.Volume / inletOne.Air.Volume); + inletOneAirLocal.Volume = inletOne.Volume; + args.GasMixtures.Add(($"{inletOne.CurrentPipeDirection} {Loc.GetString("gas-analyzer-window-text-inlet")}", inletOneAirLocal)); + } + if (_nodeContainer.TryGetNode(uid, component.InletTwoName, out PipeNode? inletTwo) && inletTwo.Air.Volume != 0f) + { + var inletTwoAirLocal = inletTwo.Air.Clone(); + inletTwoAirLocal.Multiply(inletTwo.Volume / inletTwo.Air.Volume); + inletTwoAirLocal.Volume = inletTwo.Volume; + args.GasMixtures.Add(($"{inletTwo.CurrentPipeDirection} {Loc.GetString("gas-analyzer-window-text-inlet")}", inletTwoAirLocal)); + } + if (_nodeContainer.TryGetNode(uid, component.OutletName, out PipeNode? outlet) && outlet.Air.Volume != 0f) + { + var outletAirLocal = outlet.Air.Clone(); + outletAirLocal.Multiply(outlet.Volume / outlet.Air.Volume); + outletAirLocal.Volume = outlet.Volume; + args.GasMixtures.Add((Loc.GetString("gas-analyzer-window-text-outlet"), outletAirLocal)); + } - args.GasMixtures = gasMixDict; args.DeviceFlipped = inletOne != null && inletTwo != null && inletOne.CurrentPipeDirection.ToDirection() == inletTwo.CurrentPipeDirection.ToDirection().GetClockwise90Degrees(); } } diff --git a/Content.Server/Atmos/Piping/Unary/EntitySystems/GasCanisterSystem.cs b/Content.Server/Atmos/Piping/Unary/EntitySystems/GasCanisterSystem.cs index d53e29c949..60ae230b1b 100644 --- a/Content.Server/Atmos/Piping/Unary/EntitySystems/GasCanisterSystem.cs +++ b/Content.Server/Atmos/Piping/Unary/EntitySystems/GasCanisterSystem.cs @@ -101,7 +101,7 @@ private void DirtyUI(EntityUid uid, tankPressure = tankComponent.Air.Pressure; } - _ui.TrySetUiState(uid, GasCanisterUiKey.Key, + _ui.SetUiState(uid, GasCanisterUiKey.Key, new GasCanisterBoundUserInterfaceState(Name(uid), canister.Air.Pressure, portStatus, tankLabel, tankPressure, canister.ReleasePressure, canister.ReleaseValve, canister.MinReleasePressure, canister.MaxReleasePressure)); @@ -109,19 +109,19 @@ private void DirtyUI(EntityUid uid, private void OnHoldingTankEjectMessage(EntityUid uid, GasCanisterComponent canister, GasCanisterHoldingTankEjectMessage args) { - if (canister.GasTankSlot.Item == null || args.Session.AttachedEntity == null) + if (canister.GasTankSlot.Item == null) return; var item = canister.GasTankSlot.Item; - _slots.TryEjectToHands(uid, canister.GasTankSlot, args.Session.AttachedEntity); - _adminLogger.Add(LogType.CanisterTankEjected, LogImpact.Medium, $"Player {ToPrettyString(args.Session.AttachedEntity.GetValueOrDefault()):player} ejected tank {ToPrettyString(item):tank} from {ToPrettyString(uid):canister}"); + _slots.TryEjectToHands(uid, canister.GasTankSlot, args.Actor); + _adminLogger.Add(LogType.CanisterTankEjected, LogImpact.Medium, $"Player {ToPrettyString(args.Actor):player} ejected tank {ToPrettyString(item):tank} from {ToPrettyString(uid):canister}"); } private void OnCanisterChangeReleasePressure(EntityUid uid, GasCanisterComponent canister, GasCanisterChangeReleasePressureMessage args) { var pressure = Math.Clamp(args.Pressure, canister.MinReleasePressure, canister.MaxReleasePressure); - _adminLogger.Add(LogType.CanisterPressure, LogImpact.Medium, $"{ToPrettyString(args.Session.AttachedEntity.GetValueOrDefault()):player} set the release pressure on {ToPrettyString(uid):canister} to {args.Pressure}"); + _adminLogger.Add(LogType.CanisterPressure, LogImpact.Medium, $"{ToPrettyString(args.Actor):player} set the release pressure on {ToPrettyString(uid):canister} to {args.Pressure}"); canister.ReleasePressure = pressure; DirtyUI(uid, canister); @@ -134,14 +134,14 @@ private void OnCanisterChangeReleaseValve(EntityUid uid, GasCanisterComponent ca impact = canister.GasTankSlot.HasItem ? LogImpact.Medium : LogImpact.High; var containedGasDict = new Dictionary(); - var containedGasArray = Gas.GetValues(typeof(Gas)); + var containedGasArray = Enum.GetValues(typeof(Gas)); for (int i = 0; i < containedGasArray.Length; i++) { containedGasDict.Add((Gas)i, canister.Air[i]); } - _adminLogger.Add(LogType.CanisterValve, impact, $"{ToPrettyString(args.Session.AttachedEntity.GetValueOrDefault()):player} set the valve on {ToPrettyString(uid):canister} to {args.Valve:valveState} while it contained [{string.Join(", ", containedGasDict)}]"); + _adminLogger.Add(LogType.CanisterValve, impact, $"{ToPrettyString(args.Actor):player} set the valve on {ToPrettyString(uid):canister} to {args.Valve:valveState} while it contained [{string.Join(", ", containedGasDict)}]"); canister.ReleaseValve = args.Valve; DirtyUI(uid, canister); @@ -222,7 +222,7 @@ private void OnCanisterActivate(EntityUid uid, GasCanisterComponent component, A if (args.Handled) return; - _ui.TryOpen(uid, GasCanisterUiKey.Key, actor.PlayerSession); + _ui.OpenUi(uid, GasCanisterUiKey.Key, actor.PlayerSession); args.Handled = true; } @@ -234,7 +234,7 @@ private void OnCanisterInteractHand(EntityUid uid, GasCanisterComponent componen if (CheckLocked(uid, component, args.User)) return; - _ui.TryOpen(uid, GasCanisterUiKey.Key, actor.PlayerSession); + _ui.OpenUi(uid, GasCanisterUiKey.Key, actor.PlayerSession); args.Handled = true; } @@ -316,9 +316,17 @@ private void CalculateCanisterPrice(EntityUid uid, GasCanisterComponent componen /// /// Returns the gas mixture for the gas analyzer /// - private void OnAnalyzed(EntityUid uid, GasCanisterComponent component, GasAnalyzerScanEvent args) + private void OnAnalyzed(EntityUid uid, GasCanisterComponent canisterComponent, GasAnalyzerScanEvent args) { - args.GasMixtures = new Dictionary { {Name(uid), component.Air} }; + args.GasMixtures ??= new List<(string, GasMixture?)>(); + args.GasMixtures.Add((Name(uid), canisterComponent.Air)); + // if a tank is inserted show it on the analyzer as well + if (canisterComponent.GasTankSlot.Item != null) + { + var tank = canisterComponent.GasTankSlot.Item.Value; + var tankComponent = Comp(tank); + args.GasMixtures.Add((Name(tank), tankComponent.Air)); + } } /// diff --git a/Content.Server/Atmos/Piping/Unary/EntitySystems/GasThermoMachineSystem.cs b/Content.Server/Atmos/Piping/Unary/EntitySystems/GasThermoMachineSystem.cs index 720fd5b5b9..01eab560a1 100644 --- a/Content.Server/Atmos/Piping/Unary/EntitySystems/GasThermoMachineSystem.cs +++ b/Content.Server/Atmos/Piping/Unary/EntitySystems/GasThermoMachineSystem.cs @@ -144,7 +144,7 @@ private bool IsHeater(GasThermoMachineComponent comp) private void OnToggleMessage(EntityUid uid, GasThermoMachineComponent thermoMachine, GasThermomachineToggleMessage args) { var powerState = _power.TryTogglePower(uid); - _adminLogger.Add(LogType.AtmosPowerChanged, $"{ToPrettyString(args.Session.AttachedEntity)} turned {(powerState ? "On" : "Off")} {ToPrettyString(uid)}"); + _adminLogger.Add(LogType.AtmosPowerChanged, $"{ToPrettyString(args.Actor)} turned {(powerState ? "On" : "Off")} {ToPrettyString(uid)}"); DirtyUI(uid, thermoMachine); } @@ -155,7 +155,7 @@ private void OnChangeTemperature(EntityUid uid, GasThermoMachineComponent thermo else thermoMachine.TargetTemperature = MathF.Max(args.Temperature, thermoMachine.MinTemperature); thermoMachine.TargetTemperature = MathF.Max(thermoMachine.TargetTemperature, Atmospherics.TCMB); - _adminLogger.Add(LogType.AtmosTemperatureChanged, $"{ToPrettyString(args.Session.AttachedEntity)} set temperature on {ToPrettyString(uid)} to {thermoMachine.TargetTemperature}"); + _adminLogger.Add(LogType.AtmosTemperatureChanged, $"{ToPrettyString(args.Actor)} set temperature on {ToPrettyString(uid)} to {thermoMachine.TargetTemperature}"); DirtyUI(uid, thermoMachine); } @@ -168,8 +168,8 @@ private void DirtyUI(EntityUid uid, GasThermoMachineComponent? thermoMachine, Us if (!Resolve(uid, ref powerReceiver)) return; - _userInterfaceSystem.TrySetUiState(uid, ThermomachineUiKey.Key, - new GasThermomachineBoundUserInterfaceState(thermoMachine.MinTemperature, thermoMachine.MaxTemperature, thermoMachine.TargetTemperature, !powerReceiver.PowerDisabled, IsHeater(thermoMachine)), null, ui); + _userInterfaceSystem.SetUiState(uid, ThermomachineUiKey.Key, + new GasThermomachineBoundUserInterfaceState(thermoMachine.MinTemperature, thermoMachine.MaxTemperature, thermoMachine.TargetTemperature, !powerReceiver.PowerDisabled, IsHeater(thermoMachine))); } private void OnExamined(EntityUid uid, GasThermoMachineComponent thermoMachine, ExaminedEvent args) diff --git a/Content.Server/Atmos/Piping/Unary/EntitySystems/GasVentPumpSystem.cs b/Content.Server/Atmos/Piping/Unary/EntitySystems/GasVentPumpSystem.cs index a986385f5e..7c12cf3f77 100644 --- a/Content.Server/Atmos/Piping/Unary/EntitySystems/GasVentPumpSystem.cs +++ b/Content.Server/Atmos/Piping/Unary/EntitySystems/GasVentPumpSystem.cs @@ -80,7 +80,7 @@ private void OnGasVentPumpUpdated(EntityUid uid, GasVentPumpComponent vent, ref return; } - var timeDelta = args.dt; + var timeDelta = args.dt; var pressureDelta = timeDelta * vent.TargetPressureChange; if (vent.PumpDirection == VentPumpDirection.Releasing && pipe.Air.Pressure > 0) @@ -292,7 +292,7 @@ private void OnExamine(EntityUid uid, GasVentPumpComponent component, ExaminedEv /// private void OnAnalyzed(EntityUid uid, GasVentPumpComponent component, GasAnalyzerScanEvent args) { - var gasMixDict = new Dictionary(); + args.GasMixtures ??= new List<(string, GasMixture?)>(); // these are both called pipe, above it switches using this so I duplicated that...? var nodeName = component.PumpDirection switch @@ -301,10 +301,14 @@ private void OnAnalyzed(EntityUid uid, GasVentPumpComponent component, GasAnalyz VentPumpDirection.Siphoning => component.Outlet, _ => throw new ArgumentOutOfRangeException() }; - if (_nodeContainer.TryGetNode(uid, nodeName, out PipeNode? pipe)) - gasMixDict.Add(nodeName, pipe.Air); - - args.GasMixtures = gasMixDict; + // multiply by volume fraction to make sure to send only the gas inside the analyzed pipe element, not the whole pipe system + if (_nodeContainer.TryGetNode(uid, nodeName, out PipeNode? pipe) && pipe.Air.Volume != 0f) + { + var pipeAirLocal = pipe.Air.Clone(); + pipeAirLocal.Multiply(pipe.Volume / pipe.Air.Volume); + pipeAirLocal.Volume = pipe.Volume; + args.GasMixtures.Add((nodeName, pipeAirLocal)); + } } private void OnWeldChanged(EntityUid uid, GasVentPumpComponent component, ref WeldableChangedEvent args) diff --git a/Content.Server/Atmos/Portable/PortableScrubberComponent.cs b/Content.Server/Atmos/Portable/PortableScrubberComponent.cs index ae9a5da963..fbe2d3f95a 100644 --- a/Content.Server/Atmos/Portable/PortableScrubberComponent.cs +++ b/Content.Server/Atmos/Portable/PortableScrubberComponent.cs @@ -1,4 +1,6 @@ using Content.Shared.Atmos; +using Content.Shared.Construction.Prototypes; +using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype; namespace Content.Server.Atmos.Portable { @@ -37,13 +39,51 @@ public sealed partial class PortableScrubberComponent : Component /// /// Maximum internal pressure before it refuses to take more. /// - [DataField, ViewVariables(VVAccess.ReadWrite)] + [DataField] public float MaxPressure = 2500; /// - /// The speed at which gas is scrubbed from the environment. + /// The base amount of maximum internal pressure /// - [DataField, ViewVariables(VVAccess.ReadWrite)] + [DataField] + public float BaseMaxPressure = 2500; + + /// + /// The machine part that modifies the maximum internal pressure + /// + [DataField(customTypeSerializer: typeof(PrototypeIdSerializer))] + public string MachinePartMaxPressure = "MatterBin"; + + /// + /// How much the will affect the pressure. + /// The value will be multiplied by this amount for each increasing part tier. + /// + [DataField] + public float PartRatingMaxPressureModifier = 1.5f; + + /// + /// The speed at which gas is scrubbed from the environment. + /// + [ViewVariables(VVAccess.ReadWrite)] public float TransferRate = 800; + + /// + /// The base speed at which gas is scrubbed from the environment. + /// + [DataField] + public float BaseTransferRate = 800; + + /// + /// The machine part which modifies the speed of + /// + [DataField(customTypeSerializer: typeof(PrototypeIdSerializer))] + public string MachinePartTransferRate = "Manipulator"; + + /// + /// How much the will modify the rate. + /// The value will be multiplied by this amount for each increasing part tier. + /// + [DataField] + public float PartRatingTransferRateModifier = 1.4f; } } diff --git a/Content.Server/Atmos/Portable/PortableScrubberSystem.cs b/Content.Server/Atmos/Portable/PortableScrubberSystem.cs index f9043c091a..fbe40deedb 100644 --- a/Content.Server/Atmos/Portable/PortableScrubberSystem.cs +++ b/Content.Server/Atmos/Portable/PortableScrubberSystem.cs @@ -12,7 +12,9 @@ using Content.Server.NodeContainer.NodeGroups; using Content.Server.Audio; using Content.Server.Administration.Logs; +using Content.Server.Construction; using Content.Server.NodeContainer.EntitySystems; +using Content.Shared.Atmos; using Content.Shared.Database; namespace Content.Server.Atmos.Portable @@ -38,6 +40,8 @@ public override void Initialize() SubscribeLocalEvent(OnExamined); SubscribeLocalEvent(OnDestroyed); SubscribeLocalEvent(OnScrubberAnalyzed); + SubscribeLocalEvent(OnRefreshParts); + SubscribeLocalEvent(OnUpgradeExamine); } private bool IsFull(PortableScrubberComponent component) @@ -151,10 +155,23 @@ private void UpdateAppearance(EntityUid uid, bool isFull, bool isRunning) /// private void OnScrubberAnalyzed(EntityUid uid, PortableScrubberComponent component, GasAnalyzerScanEvent args) { - args.GasMixtures ??= new Dictionary { { Name(uid), component.Air } }; - // If it's connected to a port, include the port side - if (_nodeContainer.TryGetNode(uid, component.PortName, out PipeNode? port)) - args.GasMixtures.Add(component.PortName, port.Air); + args.GasMixtures ??= new List<(string, GasMixture?)>(); + args.GasMixtures.Add((Name(uid), component.Air)); + } + + private void OnRefreshParts(EntityUid uid, PortableScrubberComponent component, RefreshPartsEvent args) + { + var pressureRating = args.PartRatings[component.MachinePartMaxPressure]; + var transferRating = args.PartRatings[component.MachinePartTransferRate]; + + component.MaxPressure = component.BaseMaxPressure * MathF.Pow(component.PartRatingMaxPressureModifier, pressureRating - 1); + component.TransferRate = component.BaseTransferRate * MathF.Pow(component.PartRatingTransferRateModifier, transferRating - 1); + } + + private void OnUpgradeExamine(EntityUid uid, PortableScrubberComponent component, UpgradeExamineEvent args) + { + args.AddPercentageUpgrade("portable-scrubber-component-upgrade-max-pressure", component.MaxPressure / component.BaseMaxPressure); + args.AddPercentageUpgrade("portable-scrubber-component-upgrade-transfer-rate", component.TransferRate / component.BaseTransferRate); } } } diff --git a/Content.Server/Atmos/Portable/SpaceHeaterSystem.cs b/Content.Server/Atmos/Portable/SpaceHeaterSystem.cs index 8094b0e1a6..70eea2d9b7 100644 --- a/Content.Server/Atmos/Portable/SpaceHeaterSystem.cs +++ b/Content.Server/Atmos/Portable/SpaceHeaterSystem.cs @@ -163,7 +163,7 @@ private void DirtyUI(EntityUid uid, SpaceHeaterComponent? spaceHeater) { return; } - _userInterfaceSystem.TrySetUiState(uid, SpaceHeaterUiKey.Key, + _userInterfaceSystem.SetUiState(uid, SpaceHeaterUiKey.Key, new SpaceHeaterBoundUserInterfaceState(spaceHeater.MinTemperature, spaceHeater.MaxTemperature, thermoMachine.TargetTemperature, !powerReceiver.PowerDisabled, spaceHeater.Mode, spaceHeater.PowerLevel)); } diff --git a/Content.Server/Atmos/Reactions/AmmoniaOxygenReaction.cs b/Content.Server/Atmos/Reactions/AmmoniaOxygenReaction.cs index 197034ce54..2c071afab1 100644 --- a/Content.Server/Atmos/Reactions/AmmoniaOxygenReaction.cs +++ b/Content.Server/Atmos/Reactions/AmmoniaOxygenReaction.cs @@ -1,5 +1,6 @@ using Content.Server.Atmos.EntitySystems; using Content.Shared.Atmos; +using Content.Shared.Atmos.Reactions; using JetBrains.Annotations; namespace Content.Server.Atmos.Reactions; diff --git a/Content.Server/Atmos/Reactions/FrezonCoolantReaction.cs b/Content.Server/Atmos/Reactions/FrezonCoolantReaction.cs index 051ee8202d..475c149cf3 100644 --- a/Content.Server/Atmos/Reactions/FrezonCoolantReaction.cs +++ b/Content.Server/Atmos/Reactions/FrezonCoolantReaction.cs @@ -1,5 +1,6 @@ using Content.Server.Atmos.EntitySystems; using Content.Shared.Atmos; +using Content.Shared.Atmos.Reactions; using JetBrains.Annotations; namespace Content.Server.Atmos.Reactions; diff --git a/Content.Server/Atmos/Reactions/FrezonProductionReaction.cs b/Content.Server/Atmos/Reactions/FrezonProductionReaction.cs index 4ffd9c2f5b..e3d3ece6b6 100644 --- a/Content.Server/Atmos/Reactions/FrezonProductionReaction.cs +++ b/Content.Server/Atmos/Reactions/FrezonProductionReaction.cs @@ -1,5 +1,6 @@ using Content.Server.Atmos.EntitySystems; using Content.Shared.Atmos; +using Content.Shared.Atmos.Reactions; using JetBrains.Annotations; namespace Content.Server.Atmos.Reactions; diff --git a/Content.Server/Atmos/Reactions/GasReactionPrototype.cs b/Content.Server/Atmos/Reactions/GasReactionPrototype.cs index 0ee29de3bf..48a113bb9a 100644 --- a/Content.Server/Atmos/Reactions/GasReactionPrototype.cs +++ b/Content.Server/Atmos/Reactions/GasReactionPrototype.cs @@ -1,22 +1,10 @@ using Content.Server.Atmos.EntitySystems; using Content.Shared.Atmos; +using Content.Shared.Atmos.Reactions; using Robust.Shared.Prototypes; namespace Content.Server.Atmos.Reactions { - [Flags] - public enum ReactionResult : byte - { - NoReaction = 0, - Reacting = 1, - StopReactions = 2, - } - - public enum GasReaction : byte - { - Fire = 0, - } - [Prototype("gasReaction")] public sealed partial class GasReactionPrototype : IPrototype { diff --git a/Content.Server/Atmos/Reactions/N2ODecompositionReaction.cs b/Content.Server/Atmos/Reactions/N2ODecompositionReaction.cs index 7fce663dc3..367c0eb7b9 100644 --- a/Content.Server/Atmos/Reactions/N2ODecompositionReaction.cs +++ b/Content.Server/Atmos/Reactions/N2ODecompositionReaction.cs @@ -1,5 +1,6 @@ using Content.Server.Atmos.EntitySystems; using Content.Shared.Atmos; +using Content.Shared.Atmos.Reactions; using JetBrains.Annotations; namespace Content.Server.Atmos.Reactions; diff --git a/Content.Server/Atmos/Reactions/PlasmaFireReaction.cs b/Content.Server/Atmos/Reactions/PlasmaFireReaction.cs index e7ab7835fd..98d567d4ed 100644 --- a/Content.Server/Atmos/Reactions/PlasmaFireReaction.cs +++ b/Content.Server/Atmos/Reactions/PlasmaFireReaction.cs @@ -1,5 +1,6 @@ using Content.Server.Atmos.EntitySystems; using Content.Shared.Atmos; +using Content.Shared.Atmos.Reactions; using JetBrains.Annotations; namespace Content.Server.Atmos.Reactions diff --git a/Content.Server/Atmos/Reactions/TritiumFireReaction.cs b/Content.Server/Atmos/Reactions/TritiumFireReaction.cs index 7103859a90..3ad0a4b04d 100644 --- a/Content.Server/Atmos/Reactions/TritiumFireReaction.cs +++ b/Content.Server/Atmos/Reactions/TritiumFireReaction.cs @@ -1,5 +1,6 @@ using Content.Server.Atmos.EntitySystems; using Content.Shared.Atmos; +using Content.Shared.Atmos.Reactions; using JetBrains.Annotations; namespace Content.Server.Atmos.Reactions diff --git a/Content.Server/Atmos/Reactions/WaterVaporReaction.cs b/Content.Server/Atmos/Reactions/WaterVaporReaction.cs index 8db8fdbd66..e06c4b75ff 100644 --- a/Content.Server/Atmos/Reactions/WaterVaporReaction.cs +++ b/Content.Server/Atmos/Reactions/WaterVaporReaction.cs @@ -1,5 +1,7 @@ using Content.Server.Atmos.EntitySystems; using Content.Server.Fluids.EntitySystems; +using Content.Shared.Atmos; +using Content.Shared.Atmos.Reactions; using Content.Shared.Chemistry.Components; using Content.Shared.FixedPoint; using Content.Shared.Maps; diff --git a/Content.Server/Atmos/Rotting/RottingSystem.cs b/Content.Server/Atmos/Rotting/RottingSystem.cs index 5070b3f197..40bdf65743 100644 --- a/Content.Server/Atmos/Rotting/RottingSystem.cs +++ b/Content.Server/Atmos/Rotting/RottingSystem.cs @@ -46,6 +46,29 @@ private void OnTempIsRotting(EntityUid uid, TemperatureComponent component, ref args.Handled = component.CurrentTemperature < Atmospherics.T0C + 0.85f; } + + public void ReduceAccumulator(EntityUid uid, TimeSpan time) + { + if (!TryComp(uid, out var perishable)) + return; + + if (!TryComp(uid, out var rotting)) + { + perishable.RotAccumulator -= time; + return; + } + var total = (rotting.TotalRotTime + perishable.RotAccumulator) - time; + + if (total < perishable.RotAfter) + { + RemCompDeferred(uid, rotting); + perishable.RotAccumulator = total; + } + + else + rotting.TotalRotTime = total - perishable.RotAfter; + } + /// /// Is anything speeding up the decay? /// e.g. buried in a grave diff --git a/Content.Server/Atmos/Serialization/TileAtmosCollectionSerializer.cs b/Content.Server/Atmos/Serialization/TileAtmosCollectionSerializer.cs index 00be83e86d..5b30d65e48 100644 --- a/Content.Server/Atmos/Serialization/TileAtmosCollectionSerializer.cs +++ b/Content.Server/Atmos/Serialization/TileAtmosCollectionSerializer.cs @@ -1,4 +1,5 @@ using System.Globalization; +using Content.Shared.Atmos; using Robust.Shared.Serialization; using Robust.Shared.Serialization.Manager; using Robust.Shared.Serialization.Markdown; diff --git a/Content.Server/Atmos/TileMixtureEnumerator.cs b/Content.Server/Atmos/TileMixtureEnumerator.cs index 20440032da..5601615f50 100644 --- a/Content.Server/Atmos/TileMixtureEnumerator.cs +++ b/Content.Server/Atmos/TileMixtureEnumerator.cs @@ -1,4 +1,5 @@ using System.Diagnostics.CodeAnalysis; +using Content.Shared.Atmos; namespace Content.Server.Atmos; diff --git a/Content.Server/Audio/Jukebox/JukeboxSystem.cs b/Content.Server/Audio/Jukebox/JukeboxSystem.cs index bfb9b2099a..cc9235e3d7 100644 --- a/Content.Server/Audio/Jukebox/JukeboxSystem.cs +++ b/Content.Server/Audio/Jukebox/JukeboxSystem.cs @@ -5,6 +5,7 @@ using Robust.Shared.Audio; using Robust.Shared.Audio.Components; using Robust.Shared.Audio.Systems; +using Robust.Shared.Player; using Robust.Shared.Prototypes; using JukeboxComponent = Content.Shared.Audio.Jukebox.JukeboxComponent; @@ -66,8 +67,11 @@ private void OnJukeboxPause(Entity ent, ref JukeboxPauseMessag private void OnJukeboxSetTime(EntityUid uid, JukeboxComponent component, JukeboxSetTimeMessage args) { - var offset = (args.Session.Channel.Ping * 1.5f) / 1000f; - Audio.SetPlaybackPosition(component.AudioStream, args.SongTime + offset); + if (TryComp(args.Actor, out ActorComponent? actorComp)) + { + var offset = actorComp.PlayerSession.Channel.Ping * 1.5f / 1000f; + Audio.SetPlaybackPosition(component.AudioStream, args.SongTime + offset); + } } private void OnPowerChanged(Entity entity, ref PowerChangedEvent args) diff --git a/Content.Server/Bed/BedSystem.cs b/Content.Server/Bed/BedSystem.cs index f1bd9482e5..976ef5139c 100644 --- a/Content.Server/Bed/BedSystem.cs +++ b/Content.Server/Bed/BedSystem.cs @@ -2,6 +2,7 @@ using Content.Server.Bed.Components; using Content.Server.Bed.Sleep; using Content.Server.Body.Systems; +using Content.Server.Construction; using Content.Server.Power.Components; using Content.Server.Power.EntitySystems; using Content.Shared.Bed; @@ -9,6 +10,7 @@ using Content.Shared.Body.Components; using Content.Shared.Buckle.Components; using Content.Shared.Damage; +using Content.Shared.Emag.Components; using Content.Shared.Emag.Systems; using Content.Shared.Mobs.Systems; using Robust.Shared.Timing; @@ -32,6 +34,8 @@ public override void Initialize() SubscribeLocalEvent(OnBuckleChange); SubscribeLocalEvent(OnPowerChanged); SubscribeLocalEvent(OnEmagged); + SubscribeLocalEvent(OnRefreshParts); + SubscribeLocalEvent(OnUpgradeExamine); } private void ManageUpdateList(EntityUid uid, HealOnBuckleComponent component, ref BuckleChangeEvent args) @@ -66,7 +70,7 @@ public override void Update(float frameTime) foreach (var healedEntity in strapComponent.BuckledEntities) { - if (_mobStateSystem.IsDead(healedEntity) + if (_mobStateSystem.IsDead(healedEntity) || HasComp(healedEntity)) continue; @@ -126,5 +130,18 @@ private void UpdateMetabolisms(EntityUid uid, StasisBedComponent component, bool RaiseLocalEvent(buckledEntity, ref metabolicEvent); } } + + private void OnRefreshParts(EntityUid uid, StasisBedComponent component, RefreshPartsEvent args) + { + var metabolismRating = args.PartRatings[component.MachinePartMetabolismModifier]; + component.Multiplier = component.BaseMultiplier * metabolismRating; // Linear scaling so it's not OP + if (HasComp(uid)) + component.Multiplier = 1f / component.Multiplier; + } + + private void OnUpgradeExamine(EntityUid uid, StasisBedComponent component, UpgradeExamineEvent args) + { + args.AddPercentageUpgrade("stasis-bed-component-upgrade-stasis", component.Multiplier / component.BaseMultiplier); + } } } diff --git a/Content.Server/Bed/Components/StasisBedComponent.cs b/Content.Server/Bed/Components/StasisBedComponent.cs index e2175d6e64..bb4096a2a5 100644 --- a/Content.Server/Bed/Components/StasisBedComponent.cs +++ b/Content.Server/Bed/Components/StasisBedComponent.cs @@ -1,12 +1,21 @@ +using Content.Shared.Construction.Prototypes; +using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype; + namespace Content.Server.Bed.Components { [RegisterComponent] public sealed partial class StasisBedComponent : Component { + [DataField] + public float BaseMultiplier = 10f; + /// - /// What the metabolic update rate will be multiplied by (higher = slower metabolism) + /// What the metabolic update rate will be multiplied by (higher = slower metabolism) /// [ViewVariables(VVAccess.ReadWrite)] public float Multiplier = 10f; + + [DataField(customTypeSerializer: typeof(PrototypeIdSerializer))] + public string MachinePartMetabolismModifier = "Capacitor"; } } diff --git a/Content.Server/Bed/Cryostorage/CryostorageSystem.cs b/Content.Server/Bed/Cryostorage/CryostorageSystem.cs index 2e7f8c4235..1369fa20f1 100644 --- a/Content.Server/Bed/Cryostorage/CryostorageSystem.cs +++ b/Content.Server/Bed/Cryostorage/CryostorageSystem.cs @@ -79,9 +79,7 @@ private void OnBeforeUIOpened(Entity ent, ref BeforeActiva private void OnRemoveItemBuiMessage(Entity ent, ref CryostorageRemoveItemBuiMessage args) { var (_, comp) = ent; - if (args.Session.AttachedEntity is not { } attachedEntity) - return; - + var attachedEntity = args.Actor; var cryoContained = GetEntity(args.StoredEntity); if (!comp.StoredPlayers.Contains(cryoContained) || !IsInPausedMap(cryoContained)) @@ -114,6 +112,7 @@ private void OnRemoveItemBuiMessage(Entity ent, ref Cryost AdminLog.Add(LogType.Action, LogImpact.High, $"{ToPrettyString(attachedEntity):player} removed item {ToPrettyString(entity)} from cryostorage-contained player " + $"{ToPrettyString(cryoContained):player}, stored in cryostorage {ToPrettyString(ent)}"); + _container.TryRemoveFromContainer(entity.Value); _transform.SetCoordinates(entity.Value, Transform(attachedEntity).Coordinates); _hands.PickupOrDrop(attachedEntity, entity.Value); @@ -122,8 +121,8 @@ private void OnRemoveItemBuiMessage(Entity ent, ref Cryost private void UpdateCryostorageUIState(Entity ent) { - var state = new CryostorageBuiState(GetAllContainedData(ent).ToList()); - _ui.TrySetUiState(ent, CryostorageUIKey.Key, state); + var state = new CryostorageBuiState(GetAllContainedData(ent)); + _ui.SetUiState(ent.Owner, CryostorageUIKey.Key, state); } private void OnPlayerSpawned(Entity ent, ref PlayerSpawnCompleteEvent args) @@ -293,12 +292,17 @@ protected override void OnInsertedContainer(Entity ent, re _chatManager.ChatMessageToOne(ChatChannel.Server, msg, msg, uid, false, actor.PlayerSession.Channel); } - private IEnumerable GetAllContainedData(Entity ent) + private List GetAllContainedData(Entity ent) { + var data = new List(); + data.EnsureCapacity(ent.Comp.StoredPlayers.Count); + foreach (var contained in ent.Comp.StoredPlayers) { - yield return GetContainedData(contained); + data.Add(GetContainedData(contained)); } + + return data; } private CryostorageContainedPlayerData GetContainedData(EntityUid uid) diff --git a/Content.Server/Body/Components/BloodstreamComponent.cs b/Content.Server/Body/Components/BloodstreamComponent.cs index dd93da9598..f7024a6395 100644 --- a/Content.Server/Body/Components/BloodstreamComponent.cs +++ b/Content.Server/Body/Components/BloodstreamComponent.cs @@ -1,5 +1,6 @@ using Content.Server.Body.Systems; using Content.Server.Chemistry.EntitySystems; +using Content.Server.Traits; using Content.Server.Traits.Assorted; using Content.Shared.Chemistry.Components; using Content.Shared.Chemistry.Reagent; @@ -83,6 +84,14 @@ public sealed partial class BloodstreamComponent : Component [DataField] public FixedPoint2 BloodRefreshAmount = 1.0f; + /// + /// How much hunger/thirst is used to regenerate one unit of blood. Set to zero to disable. + /// The actual thirst/hunger rate will scale with . + /// + /// Those will have no effect if the entity has no hunger/thirst components. + [DataField] + public float BloodRegenerationHunger = 1f, BloodRegenerationThirst = 1f; + /// /// How much blood needs to be in the temporary solution in order to create a puddle? /// @@ -172,18 +181,5 @@ public sealed partial class BloodstreamComponent : Component /// [ViewVariables(VVAccess.ReadWrite)] public TimeSpan StatusTime; - - /// - /// If this is true, the entity will not passively regenerate blood, - /// and instead will slowly lose blood. - /// - [DataField] - public bool HasBloodDeficiency = false; - - /// - /// How much reagent of blood should be removed with blood deficiency in each update interval? - /// - [DataField] - public FixedPoint2 BloodDeficiencyLossAmount; } } diff --git a/Content.Server/Body/Events/NaturalBloodRegenerationAttemptEvent.cs b/Content.Server/Body/Events/NaturalBloodRegenerationAttemptEvent.cs new file mode 100644 index 0000000000..8ad2b88efe --- /dev/null +++ b/Content.Server/Body/Events/NaturalBloodRegenerationAttemptEvent.cs @@ -0,0 +1,15 @@ +using Content.Shared.FixedPoint; + +namespace Content.Server.Body.Events; + +/// +/// Raised on a mob when its bloodstream tries to perform natural blood regeneration. +/// +[ByRefEvent] +public sealed class NaturalBloodRegenerationAttemptEvent : CancellableEntityEventArgs +{ + /// + /// How much blood the mob will regenerate on this tick. Can be negative. + /// + public FixedPoint2 Amount; +} diff --git a/Content.Server/Body/Systems/BloodstreamSystem.cs b/Content.Server/Body/Systems/BloodstreamSystem.cs index 338f888b35..6f7dd1b140 100644 --- a/Content.Server/Body/Systems/BloodstreamSystem.cs +++ b/Content.Server/Body/Systems/BloodstreamSystem.cs @@ -1,10 +1,10 @@ using Content.Server._White.Other.BloodLust; using Content.Server.Body.Components; +using Content.Server.Body.Events; using Content.Server.Chemistry.Containers.EntitySystems; using Content.Server.Chemistry.ReactionEffects; using Content.Server.Fluids.EntitySystems; using Content.Server.Forensics; -using Content.Server.HealthExaminable; using Content.Server.Popups; using Content.Shared.Alert; using Content.Shared.Chemistry.Components; @@ -14,7 +14,10 @@ using Content.Shared.Damage.Prototypes; using Content.Shared.Drunk; using Content.Shared.FixedPoint; +using Content.Shared.HealthExaminable; using Content.Shared.Mobs.Systems; +using Content.Shared.Nutrition.Components; +using Content.Shared.Nutrition.EntitySystems; using Content.Shared.Movement.Systems; using Content.Shared.Popups; using Content.Shared.Rejuvenate; @@ -41,6 +44,8 @@ public sealed class BloodstreamSystem : EntitySystem [Dependency] private readonly SharedStutteringSystem _stutteringSystem = default!; [Dependency] private readonly AlertsSystem _alertsSystem = default!; [Dependency] private readonly ForensicsSystem _forensicsSystem = default!; + [Dependency] private readonly HungerSystem _hunger = default!; + [Dependency] private readonly ThirstSystem _thirst = default!; [Dependency] private readonly MovementSpeedModifierSystem _movementSpeedModifier = default!; // WD public override void Initialize() @@ -121,17 +126,9 @@ public override void Update(float frameTime) if (!_solutionContainerSystem.ResolveSolution(uid, bloodstream.BloodSolutionName, ref bloodstream.BloodSolution, out var bloodSolution)) continue; - // Removes blood for Blood Deficiency constantly. - if (bloodstream.HasBloodDeficiency) - { - if (!_mobStateSystem.IsDead(uid)) - RemoveBlood(uid, bloodstream.BloodDeficiencyLossAmount, bloodstream); - } - // Adds blood to their blood level if it is below the maximum. - else if (bloodSolution.Volume < bloodSolution.MaxVolume && !_mobStateSystem.IsDead(uid)) - { - TryModifyBloodLevel(uid, bloodstream.BloodRefreshAmount, bloodstream); - } + // Try to apply natural blood regeneration/bloodloss + if (!_mobStateSystem.IsDead(uid)) + TryDoNaturalRegeneration((uid, bloodstream), bloodSolution); // Removes blood from the bloodstream based on bleed amount (bleed rate) // as well as stop their bleeding to a certain extent. @@ -204,7 +201,7 @@ private void OnDamageChanged(Entity ent, ref DamageChanged } // TODO probably cache this or something. humans get hurt a lot - if (!_prototypeManager.TryIndex(ent.Comp.DamageBleedModifiers, out var modifiers)) + if (!_prototypeManager.TryIndex(ent.Comp.DamageBleedModifiers, out var modifiers)) return; var bloodloss = DamageSpecifier.ApplyModifierSet(args.DamageDelta, modifiers); @@ -218,11 +215,9 @@ private void OnDamageChanged(Entity ent, ref DamageChanged var totalFloat = total.Float(); TryModifyBleedAmount(ent, totalFloat, ent); - /// - /// Critical hit. Causes target to lose blood, using the bleed rate modifier of the weapon, currently divided by 5 - /// The crit chance is currently the bleed rate modifier divided by 25. - /// Higher damage weapons have a higher chance to crit! - /// + // Critical hit. Causes target to lose blood, using the bleed rate modifier of the weapon, currently divided by 5 + // The crit chance is currently the bleed rate modifier divided by 25. + // Higher damage weapons have a higher chance to crit! var prob = Math.Clamp(totalFloat / 25, 0, 1); if (totalFloat > 0 && _robustRandom.Prob(prob)) { @@ -352,6 +347,14 @@ public void SetBloodLossThreshold(EntityUid uid, float threshold, BloodstreamCom comp.BloodlossThreshold = threshold; } + public void SetBloodMaxVolume(EntityUid uid, FixedPoint2 volume, BloodstreamComponent? comp = null) + { + if (!Resolve(uid, ref comp)) + return; + + comp.BloodMaxVolume = volume; + } + /// /// Attempts to modify the blood level of this entity directly. /// @@ -503,4 +506,35 @@ private void RemoveBlood(EntityUid uid, FixedPoint2 amount, BloodstreamComponent bloodSolution.RemoveReagent(component.BloodReagent, amount); } + + /// + /// Tries to apply natural blood regeneration/loss to the entity. Returns true if succesful. + /// + private bool TryDoNaturalRegeneration(Entity ent, Solution bloodSolution) + { + var ev = new NaturalBloodRegenerationAttemptEvent { Amount = ent.Comp.BloodRefreshAmount }; + RaiseLocalEvent(ent, ref ev); + + if (ev.Cancelled || (ev.Amount > 0 && bloodSolution.Volume >= bloodSolution.MaxVolume)) + return false; + + var usedHunger = ev.Amount * ent.Comp.BloodRegenerationHunger; + var usedThirst = ev.Amount * ent.Comp.BloodRegenerationThirst; + + // First, check if the entity has enough hunger/thirst + var hungerComp = CompOrNull(ent); + var thirstComp = CompOrNull(ent); + if (usedHunger > 0 && hungerComp is not null && (hungerComp.CurrentHunger < usedHunger || hungerComp.CurrentThreshold <= HungerThreshold.Starving) + || usedThirst > 0 && thirstComp is not null && (thirstComp.CurrentThirst < usedThirst || thirstComp.CurrentThirstThreshold <= ThirstThreshold.Parched)) + return false; + + // Then actually expend hunger and thirst (if necessary) and regenerate blood. + if (usedHunger > 0 && hungerComp is not null) + _hunger.ModifyHunger(ent, (float) -usedHunger, hungerComp); + + if (usedThirst > 0 && thirstComp is not null) + _thirst.ModifyThirst(ent, thirstComp, (float) -usedThirst); + + return TryModifyBloodLevel(ent, ev.Amount, ent.Comp); + } } diff --git a/Content.Server/Body/Systems/InternalsSystem.cs b/Content.Server/Body/Systems/InternalsSystem.cs index 9607a808f6..db078e2f29 100644 --- a/Content.Server/Body/Systems/InternalsSystem.cs +++ b/Content.Server/Body/Systems/InternalsSystem.cs @@ -8,6 +8,7 @@ using Content.Shared.Hands.Components; using Content.Shared.Internals; using Content.Shared.Inventory; +using Content.Shared.Roles; using Content.Shared.Verbs; using Robust.Shared.Containers; using Robust.Shared.Utility; @@ -23,17 +24,29 @@ public sealed class InternalsSystem : EntitySystem [Dependency] private readonly InventorySystem _inventory = default!; [Dependency] private readonly PopupSystem _popupSystem = default!; - public const SlotFlags InventorySlots = SlotFlags.POCKET | SlotFlags.BELT; + private EntityQuery _internalsQuery; public override void Initialize() { base.Initialize(); + _internalsQuery = GetEntityQuery(); + SubscribeLocalEvent(OnInhaleLocation); SubscribeLocalEvent(OnInternalsStartup); SubscribeLocalEvent(OnInternalsShutdown); SubscribeLocalEvent>(OnGetInteractionVerbs); SubscribeLocalEvent(OnDoAfter); + + SubscribeLocalEvent(OnStartingGear); + } + + private void OnStartingGear(ref StartingGearEquippedEvent ev) + { + if (!_internalsQuery.TryComp(ev.Entity, out var internals) || internals.BreathToolEntity == null) + return; + + ToggleInternals(ev.Entity, ev.Entity, force: false, internals); } private void OnGetInteractionVerbs( @@ -218,7 +231,7 @@ private short GetSeverity(InternalsComponent component) if (component.BreathToolEntity is null || !AreInternalsWorking(component)) return 2; - // If pressure in the tank is below low pressure threshhold, flash warning on internals UI + // If pressure in the tank is below low pressure threshold, flash warning on internals UI if (TryComp(component.GasTankEntity, out var gasTank) && gasTank.IsLowPressure) { diff --git a/Content.Server/Botany/Components/SeedExtractorComponent.cs b/Content.Server/Botany/Components/SeedExtractorComponent.cs index ddb04f213d..d765e079ce 100644 --- a/Content.Server/Botany/Components/SeedExtractorComponent.cs +++ b/Content.Server/Botany/Components/SeedExtractorComponent.cs @@ -1,4 +1,7 @@ using Content.Server.Botany.Systems; +using Content.Server.Construction; +using Content.Shared.Construction.Prototypes; +using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype; namespace Content.Server.Botany.Components; @@ -7,14 +10,33 @@ namespace Content.Server.Botany.Components; public sealed partial class SeedExtractorComponent : Component { /// - /// The minimum amount of seed packets dropped. + /// The minimum amount of seed packets dropped with no machine upgrades. /// - [DataField("baseMinSeeds"), ViewVariables(VVAccess.ReadWrite)] + [DataField] public int BaseMinSeeds = 1; /// - /// The maximum amount of seed packets dropped. + /// The maximum amount of seed packets dropped with no machine upgrades. /// - [DataField("baseMaxSeeds"), ViewVariables(VVAccess.ReadWrite)] + [DataField] public int BaseMaxSeeds = 3; + + /// + /// Modifier to the amount of seeds outputted, set on . + /// + [ViewVariables(VVAccess.ReadWrite)] + public float SeedAmountMultiplier; + + /// + /// Machine part whose rating modifies the amount of seed packets dropped. + /// + [DataField(customTypeSerializer: typeof(PrototypeIdSerializer))] + public string MachinePartSeedAmount = "Manipulator"; + + /// + /// How much the machine part quality affects the amount of seeds outputted. + /// Going up a tier will multiply the seed output by this amount. + /// + [DataField] + public float PartRatingSeedAmountMultiplier = 1.5f; } diff --git a/Content.Server/Botany/SeedPrototype.cs b/Content.Server/Botany/SeedPrototype.cs index 2644da2a3b..dd3555f143 100644 --- a/Content.Server/Botany/SeedPrototype.cs +++ b/Content.Server/Botany/SeedPrototype.cs @@ -2,16 +2,16 @@ using Content.Server.Botany.Systems; using Content.Shared.Atmos; using Content.Shared.Chemistry.Reagent; +using Robust.Shared.Audio; using Robust.Shared.Prototypes; using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype; using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype.List; using Robust.Shared.Utility; -using Robust.Shared.Audio; namespace Content.Server.Botany; [Prototype("seed")] -public sealed class SeedPrototype : SeedData, IPrototype +public sealed partial class SeedPrototype : SeedData, IPrototype { [IdDataField] public string ID { get; private init; } = default!; } @@ -70,7 +70,7 @@ public partial struct SeedChemQuantity /// When chemicals are added to produce, the potency of the seed is divided with this value. Final chemical amount is the result plus the `Min` value. /// Example: PotencyDivisor of 20 with seed potency of 55 results in 2.75, 55/20 = 2.75. If minimum is 1 then final result will be 3.75 of that chemical, 55/20+1 = 3.75. /// - [DataField("PotencyDivisor")] public int PotencyDivisor; + [DataField] public int PotencyDivisor; /// /// Inherent chemical is one that is NOT result of mutation or crossbreeding. These chemicals are removed if species mutation is executed. diff --git a/Content.Server/Botany/Systems/PlantHolderSystem.cs b/Content.Server/Botany/Systems/PlantHolderSystem.cs index 721536a7c0..c8842e1493 100644 --- a/Content.Server/Botany/Systems/PlantHolderSystem.cs +++ b/Content.Server/Botany/Systems/PlantHolderSystem.cs @@ -6,6 +6,7 @@ using Content.Server.Ghost.Roles.Components; using Content.Server.Kitchen.Components; using Content.Server.Popups; +using Content.Shared.Atmos; using Content.Shared.Botany; using Content.Shared.Burial.Components; using Content.Shared.Chemistry.Reagent; diff --git a/Content.Server/Botany/Systems/SeedExtractorSystem.cs b/Content.Server/Botany/Systems/SeedExtractorSystem.cs index f1ae6c9f11..4c547b96f0 100644 --- a/Content.Server/Botany/Systems/SeedExtractorSystem.cs +++ b/Content.Server/Botany/Systems/SeedExtractorSystem.cs @@ -1,8 +1,10 @@ using Content.Server.Botany.Components; +using Content.Server.Construction; using Content.Server.Popups; using Content.Server.Power.EntitySystems; using Content.Shared.Interaction; using Content.Shared.Popups; +using Robust.Shared.Player; using Robust.Shared.Random; namespace Content.Server.Botany.Systems; @@ -18,6 +20,8 @@ public override void Initialize() base.Initialize(); SubscribeLocalEvent(OnInteractUsing); + SubscribeLocalEvent(OnRefreshParts); + SubscribeLocalEvent(OnUpgradeExamine); } private void OnInteractUsing(EntityUid uid, SeedExtractorComponent seedExtractor, InteractUsingEvent args) @@ -25,8 +29,7 @@ private void OnInteractUsing(EntityUid uid, SeedExtractorComponent seedExtractor if (!this.IsPowered(uid, EntityManager)) return; - if (!TryComp(args.Used, out ProduceComponent? produce)) - return; + if (!TryComp(args.Used, out ProduceComponent? produce)) return; if (!_botanySystem.TryGetSeed(produce, out var seed) || seed.Seedless) { _popupSystem.PopupCursor(Loc.GetString("seed-extractor-component-no-seeds",("name", args.Used)), @@ -39,7 +42,7 @@ private void OnInteractUsing(EntityUid uid, SeedExtractorComponent seedExtractor QueueDel(args.Used); - var amount = _random.Next(seedExtractor.BaseMinSeeds, seedExtractor.BaseMaxSeeds + 1); + var amount = (int) _random.NextFloat(seedExtractor.BaseMinSeeds, seedExtractor.BaseMaxSeeds + 1) * seedExtractor.SeedAmountMultiplier; var coords = Transform(uid).Coordinates; if (amount > 1) @@ -50,4 +53,15 @@ private void OnInteractUsing(EntityUid uid, SeedExtractorComponent seedExtractor _botanySystem.SpawnSeedPacket(seed, coords, args.User); } } + + private void OnRefreshParts(EntityUid uid, SeedExtractorComponent seedExtractor, RefreshPartsEvent args) + { + var manipulatorQuality = args.PartRatings[seedExtractor.MachinePartSeedAmount]; + seedExtractor.SeedAmountMultiplier = MathF.Pow(seedExtractor.PartRatingSeedAmountMultiplier, manipulatorQuality - 1); + } + + private void OnUpgradeExamine(EntityUid uid, SeedExtractorComponent seedExtractor, UpgradeExamineEvent args) + { + args.AddPercentageUpgrade("seed-extractor-component-upgrade-seed-yield", seedExtractor.SeedAmountMultiplier); + } } diff --git a/Content.Server/Cargo/Components/StationCargoOrderDatabaseComponent.cs b/Content.Server/Cargo/Components/StationCargoOrderDatabaseComponent.cs index c30db08bbe..2e3b2c2115 100644 --- a/Content.Server/Cargo/Components/StationCargoOrderDatabaseComponent.cs +++ b/Content.Server/Cargo/Components/StationCargoOrderDatabaseComponent.cs @@ -1,4 +1,6 @@ +using Content.Server.Station.Components; using Content.Shared.Cargo; +using Content.Shared.Cargo.Components; using Content.Shared.Cargo.Prototypes; using Robust.Shared.Prototypes; using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype; @@ -38,3 +40,17 @@ public sealed partial class StationCargoOrderDatabaseComponent : Component [DataField] public EntProtoId PrinterOutput = "PaperCargoInvoice"; } + +/// +/// Event broadcast before a cargo order is fulfilled, allowing alternate systems to fulfill the order. +/// +[ByRefEvent] +public record struct FulfillCargoOrderEvent(Entity Station, CargoOrderData Order, Entity OrderConsole) +{ + public Entity OrderConsole = OrderConsole; + public Entity Station = Station; + public CargoOrderData Order = Order; + + public EntityUid? FulfillmentEntity; + public bool Handled = false; +} diff --git a/Content.Server/Cargo/Components/StationLogisticStatsDatabaseComponent.cs b/Content.Server/Cargo/Components/StationLogisticStatsDatabaseComponent.cs new file mode 100644 index 0000000000..ca1fbeaad0 --- /dev/null +++ b/Content.Server/Cargo/Components/StationLogisticStatsDatabaseComponent.cs @@ -0,0 +1,14 @@ +using Content.Shared.Cargo; +using Content.Shared.CartridgeLoader.Cartridges; + +namespace Content.Server.Cargo.Components; + +/// +/// Added to the abstract representation of a station to track stats related to mail delivery and income +/// +[RegisterComponent, Access(typeof(SharedCargoSystem))] +public sealed partial class StationLogisticStatsComponent : Component +{ + [DataField] + public MailStats Metrics { get; set; } +} diff --git a/Content.Server/Cargo/Systems/CargoSystem.Bounty.cs b/Content.Server/Cargo/Systems/CargoSystem.Bounty.cs index 22e5c67e17..e132e4f12a 100644 --- a/Content.Server/Cargo/Systems/CargoSystem.Bounty.cs +++ b/Content.Server/Cargo/Systems/CargoSystem.Bounty.cs @@ -52,7 +52,7 @@ private void OnBountyConsoleOpened(EntityUid uid, CargoBountyConsoleComponent co return; var untilNextSkip = bountyDb.NextSkipTime - _timing.CurTime; - _uiSystem.TrySetUiState(uid, CargoConsoleUiKey.Bounty, new CargoBountyConsoleState(bountyDb.Bounties, untilNextSkip)); + _uiSystem.SetUiState(uid, CargoConsoleUiKey.Bounty, new CargoBountyConsoleState(bountyDb.Bounties, untilNextSkip)); } private void OnPrintLabelMessage(EntityUid uid, CargoBountyConsoleComponent component, BountyPrintLabelMessage args) @@ -83,7 +83,7 @@ private void OnSkipBountyMessage(EntityUid uid, CargoBountyConsoleComponent comp if (!TryGetBountyFromId(station, args.BountyId, out var bounty)) return; - if (args.Session.AttachedEntity is not { Valid: true } mob) + if (args.Actor is not { Valid: true } mob) return; if (TryComp(uid, out var accessReaderComponent) && @@ -99,7 +99,7 @@ private void OnSkipBountyMessage(EntityUid uid, CargoBountyConsoleComponent comp FillBountyDatabase(station); db.NextSkipTime = _timing.CurTime + db.SkipDelay; var untilNextSkip = db.NextSkipTime - _timing.CurTime; - _uiSystem.TrySetUiState(uid, CargoConsoleUiKey.Bounty, new CargoBountyConsoleState(db.Bounties, untilNextSkip)); + _uiSystem.SetUiState(uid, CargoConsoleUiKey.Bounty, new CargoBountyConsoleState(db.Bounties, untilNextSkip)); _audio.PlayPvs(component.SkipSound, uid); } @@ -462,10 +462,12 @@ public void UpdateBountyConsoles() { if (_station.GetOwningStation(uid) is not { } station || !TryComp(station, out var db)) + { continue; + } var untilNextSkip = db.NextSkipTime - _timing.CurTime; - _uiSystem.TrySetUiState(uid, CargoConsoleUiKey.Bounty, new CargoBountyConsoleState(db.Bounties, untilNextSkip), ui: ui); + _uiSystem.SetUiState((uid, ui), CargoConsoleUiKey.Bounty, new CargoBountyConsoleState(db.Bounties, untilNextSkip)); } } diff --git a/Content.Server/Cargo/Systems/CargoSystem.Orders.cs b/Content.Server/Cargo/Systems/CargoSystem.Orders.cs index d8b55a7237..8978e6b2bf 100644 --- a/Content.Server/Cargo/Systems/CargoSystem.Orders.cs +++ b/Content.Server/Cargo/Systems/CargoSystem.Orders.cs @@ -102,12 +102,12 @@ private void UpdateConsole(float frameTime) private void OnApproveOrderMessage(EntityUid uid, CargoOrderConsoleComponent component, CargoConsoleApproveOrderMessage args) { - if (args.Session.AttachedEntity is not { Valid: true } player) + if (args.Actor is not { Valid: true } player) return; if (!_accessReaderSystem.IsAllowed(player, uid)) { - ConsolePopup(args.Session, Loc.GetString("cargo-console-order-not-allowed")); + ConsolePopup(args.Actor, Loc.GetString("cargo-console-order-not-allowed")); PlayDenySound(uid, component); return; } @@ -119,7 +119,7 @@ private void OnApproveOrderMessage(EntityUid uid, CargoOrderConsoleComponent com !TryComp(station, out StationDataComponent? stationData) || !TryGetOrderDatabase(station, out var orderDatabase)) { - ConsolePopup(args.Session, Loc.GetString("cargo-console-station-not-found")); + ConsolePopup(args.Actor, Loc.GetString("cargo-console-station-not-found")); PlayDenySound(uid, component); return; } @@ -134,7 +134,7 @@ private void OnApproveOrderMessage(EntityUid uid, CargoOrderConsoleComponent com // Invalid order if (!_protoMan.HasIndex(order.ProductId)) { - ConsolePopup(args.Session, Loc.GetString("cargo-console-invalid-product")); + ConsolePopup(args.Actor, Loc.GetString("cargo-console-invalid-product")); PlayDenySound(uid, component); return; } @@ -145,7 +145,7 @@ private void OnApproveOrderMessage(EntityUid uid, CargoOrderConsoleComponent com // Too many orders, avoid them getting spammed in the UI. if (amount >= capacity) { - ConsolePopup(args.Session, Loc.GetString("cargo-console-too-many")); + ConsolePopup(args.Actor, Loc.GetString("cargo-console-too-many")); PlayDenySound(uid, component); return; } @@ -156,7 +156,7 @@ private void OnApproveOrderMessage(EntityUid uid, CargoOrderConsoleComponent com if (cappedAmount != order.OrderQuantity) { order.OrderQuantity = cappedAmount; - ConsolePopup(args.Session, Loc.GetString("cargo-console-snip-snip")); + ConsolePopup(args.Actor, Loc.GetString("cargo-console-snip-snip")); PlayDenySound(uid, component); } @@ -165,18 +165,25 @@ private void OnApproveOrderMessage(EntityUid uid, CargoOrderConsoleComponent com // Not enough balance if (cost > bank.Balance) { - ConsolePopup(args.Session, Loc.GetString("cargo-console-insufficient-funds", ("cost", cost))); + ConsolePopup(args.Actor, Loc.GetString("cargo-console-insufficient-funds", ("cost", cost))); PlayDenySound(uid, component); return; } - var tradeDestination = TryFulfillOrder(stationData, order, orderDatabase); + var ev = new FulfillCargoOrderEvent((station.Value, stationData), order, (uid, component)); + RaiseLocalEvent(ref ev); + ev.FulfillmentEntity ??= station.Value; - if (tradeDestination == null) + if (!ev.Handled) { - ConsolePopup(args.Session, Loc.GetString("cargo-console-unfulfilled")); - PlayDenySound(uid, component); - return; + ev.FulfillmentEntity = TryFulfillOrder((station.Value, stationData), order, orderDatabase); + + if (ev.FulfillmentEntity == null) + { + ConsolePopup(args.Actor, Loc.GetString("cargo-console-unfulfilled")); + PlayDenySound(uid, component); + return; + } } _idCardSystem.TryFindIdCard(player, out var idCard); @@ -184,7 +191,16 @@ private void OnApproveOrderMessage(EntityUid uid, CargoOrderConsoleComponent com order.SetApproverData(idCard.Comp?.FullName, idCard.Comp?.JobTitle); _audio.PlayPvs(component.ConfirmSound, uid); - ConsolePopup(args.Session, Loc.GetString("cargo-console-trade-station", ("destination", MetaData(tradeDestination.Value).EntityName))); + var approverName = idCard.Comp?.FullName ?? Loc.GetString("access-reader-unknown-id"); + var approverJob = idCard.Comp?.JobTitle ?? Loc.GetString("access-reader-unknown-id"); + var message = Loc.GetString("cargo-console-unlock-approved-order-broadcast", + ("productName", Loc.GetString(order.ProductName)), + ("orderAmount", order.OrderQuantity), + ("approverName", approverName), + ("approverJob", approverJob), + ("cost", cost)); + _radio.SendRadioMessage(uid, message, component.AnnouncementChannel, uid, escapeMarkup: false); + ConsolePopup(args.Actor, Loc.GetString("cargo-console-trade-station", ("destination", MetaData(ev.FulfillmentEntity.Value).EntityName))); // Log order approval _adminLogger.Add(LogType.Action, LogImpact.Low, @@ -192,10 +208,10 @@ private void OnApproveOrderMessage(EntityUid uid, CargoOrderConsoleComponent com orderDatabase.Orders.Remove(order); DeductFunds(bank, cost); - UpdateOrders(station.Value, orderDatabase); + UpdateOrders(station.Value); } - private EntityUid? TryFulfillOrder(StationDataComponent stationData, CargoOrderData order, StationCargoOrderDatabaseComponent orderDatabase) + private EntityUid? TryFulfillOrder(Entity stationData, CargoOrderData order, StationCargoOrderDatabaseComponent orderDatabase) { // No slots at the trade station _listEnts.Clear(); @@ -257,7 +273,7 @@ private void OnRemoveOrderMessage(EntityUid uid, CargoOrderConsoleComponent comp private void OnAddOrderMessage(EntityUid uid, CargoOrderConsoleComponent component, CargoConsoleAddOrderMessage args) { - if (args.Session.AttachedEntity is not { Valid: true } player) + if (args.Actor is not { Valid: true } player) return; if (args.Amount <= 0) @@ -305,9 +321,9 @@ private void UpdateOrderState(EntityUid consoleUid, EntityUid? station) !TryComp(station, out var orderDatabase) || !TryComp(station, out var bankAccount)) return; - if (_uiSystem.TryGetUi(consoleUid, CargoConsoleUiKey.Orders, out var bui)) + if (_uiSystem.HasUi(consoleUid, CargoConsoleUiKey.Orders)) { - _uiSystem.SetUiState(bui, new CargoConsoleInterfaceState( + _uiSystem.SetUiState(consoleUid, CargoConsoleUiKey.Orders, new CargoConsoleInterfaceState( MetaData(station.Value).EntityName, GetOutstandingOrderCount(orderDatabase), orderDatabase.Capacity, @@ -317,9 +333,9 @@ private void UpdateOrderState(EntityUid consoleUid, EntityUid? station) } } - private void ConsolePopup(ICommonSession session, string text) + private void ConsolePopup(EntityUid actor, string text) { - _popup.PopupCursor(text, session); + _popup.PopupCursor(text, actor); } private void PlayDenySound(EntityUid uid, CargoOrderConsoleComponent component) @@ -329,7 +345,7 @@ private void PlayDenySound(EntityUid uid, CargoOrderConsoleComponent component) private static CargoOrderData GetOrderData(CargoConsoleAddOrderMessage args, CargoProductPrototype cargoProduct, int id) { - return new CargoOrderData(id, cargoProduct.Product, cargoProduct.Cost, args.Amount, args.Requester, args.Reason); + return new CargoOrderData(id, cargoProduct.Product, cargoProduct.Name, cargoProduct.Cost, args.Amount, args.Requester, args.Reason); } public static int GetOutstandingOrderCount(StationCargoOrderDatabaseComponent component) @@ -350,7 +366,7 @@ public static int GetOutstandingOrderCount(StationCargoOrderDatabaseComponent co /// Updates all of the cargo-related consoles for a particular station. /// This should be called whenever orders change. /// - private void UpdateOrders(EntityUid dbUid, StationCargoOrderDatabaseComponent _) + private void UpdateOrders(EntityUid dbUid) { // Order added so all consoles need updating. var orderQuery = AllEntityQuery(); @@ -378,19 +394,20 @@ private void UpdateOrders(EntityUid dbUid, StationCargoOrderDatabaseComponent _) public bool AddAndApproveOrder( EntityUid dbUid, string spawnId, + string name, int cost, int qty, string sender, string description, string dest, StationCargoOrderDatabaseComponent component, - StationDataComponent stationData + Entity stationData ) { DebugTools.Assert(_protoMan.HasIndex(spawnId)); // Make an order var id = GenerateOrderId(component); - var order = new CargoOrderData(id, spawnId, cost, qty, sender, description); + var order = new CargoOrderData(id, spawnId, name, cost, qty, sender, description); // Approve it now order.SetApproverData(dest, sender); @@ -406,7 +423,7 @@ StationDataComponent stationData private bool TryAddOrder(EntityUid dbUid, CargoOrderData data, StationCargoOrderDatabaseComponent component) { component.Orders.Add(data); - UpdateOrders(dbUid, component); + UpdateOrders(dbUid); return true; } @@ -424,7 +441,7 @@ public void RemoveOrder(EntityUid dbUid, int index, StationCargoOrderDatabaseCom { orderDB.Orders.RemoveAt(sequenceIdx); } - UpdateOrders(dbUid, orderDB); + UpdateOrders(dbUid); } public void ClearOrders(StationCargoOrderDatabaseComponent component) diff --git a/Content.Server/Cargo/Systems/CargoSystem.Shuttle.cs b/Content.Server/Cargo/Systems/CargoSystem.Shuttle.cs index 0484e05ced..1c5c7ed1c0 100644 --- a/Content.Server/Cargo/Systems/CargoSystem.Shuttle.cs +++ b/Content.Server/Cargo/Systems/CargoSystem.Shuttle.cs @@ -79,21 +79,20 @@ private void UpdateCargoShuttleConsoles(EntityUid shuttleUid, CargoShuttleCompon private void UpdatePalletConsoleInterface(EntityUid uid) { - var bui = _uiSystem.GetUi(uid, CargoPalletConsoleUiKey.Sale); if (Transform(uid).GridUid is not EntityUid gridUid) { - _uiSystem.SetUiState(bui, + _uiSystem.SetUiState(uid, CargoPalletConsoleUiKey.Sale, new CargoPalletConsoleInterfaceState(0, 0, false)); return; } GetPalletGoods(gridUid, out var toSell, out var amount); - _uiSystem.SetUiState(bui, + _uiSystem.SetUiState(uid, CargoPalletConsoleUiKey.Sale, new CargoPalletConsoleInterfaceState((int) amount, toSell.Count, true)); } private void OnPalletUIOpen(EntityUid uid, CargoPalletConsoleComponent component, BoundUIOpenedEvent args) { - var player = args.Session.AttachedEntity; + var player = args.Actor; if (player == null) return; @@ -111,7 +110,7 @@ private void OnPalletUIOpen(EntityUid uid, CargoPalletConsoleComponent component private void OnPalletAppraise(EntityUid uid, CargoPalletConsoleComponent component, CargoPalletAppraiseMessage args) { - var player = args.Session.AttachedEntity; + var player = args.Actor; if (player == null) return; @@ -133,8 +132,8 @@ private void UpdateShuttleState(EntityUid uid, EntityUid? station = null) var orders = GetProjectedOrders(station ?? EntityUid.Invalid, orderDatabase, shuttle); var shuttleName = orderDatabase?.Shuttle != null ? MetaData(orderDatabase.Shuttle.Value).EntityName : string.Empty; - if (_uiSystem.TryGetUi(uid, CargoConsoleUiKey.Shuttle, out var bui)) - _uiSystem.SetUiState(bui, new CargoShuttleConsoleBoundUserInterfaceState( + if (_uiSystem.HasUi(uid, CargoConsoleUiKey.Shuttle)) + _uiSystem.SetUiState(uid, CargoConsoleUiKey.Shuttle, new CargoShuttleConsoleBoundUserInterfaceState( station != null ? MetaData(station.Value).EntityName : Loc.GetString("cargo-shuttle-console-station-unknown"), string.IsNullOrEmpty(shuttleName) ? Loc.GetString("cargo-shuttle-console-shuttle-not-found") : shuttleName, orders @@ -179,7 +178,7 @@ private List GetProjectedOrders( // We won't be able to fit the whole order on, so make one // which represents the space we do have left: var reducedOrder = new CargoOrderData(order.OrderId, - order.ProductId, order.Price, spaceRemaining, order.Requester, order.Reason); + order.ProductId, order.ProductName, order.Price, spaceRemaining, order.Requester, order.Reason); orders.Add(reducedOrder); } else @@ -339,17 +338,16 @@ private bool CanSell(EntityUid uid, TransformComponent xform) private void OnPalletSale(EntityUid uid, CargoPalletConsoleComponent component, CargoPalletSellMessage args) { - var player = args.Session.AttachedEntity; + var player = args.Actor; if (player == null) return; - var bui = _uiSystem.GetUi(uid, CargoPalletConsoleUiKey.Sale); var xform = Transform(uid); if (xform.GridUid is not EntityUid gridUid) { - _uiSystem.SetUiState(bui, + _uiSystem.SetUiState(uid, CargoPalletConsoleUiKey.Sale, new CargoPalletConsoleInterfaceState(0, 0, false)); return; } diff --git a/Content.Server/Cargo/Systems/CargoSystem.Telepad.cs b/Content.Server/Cargo/Systems/CargoSystem.Telepad.cs index 42aabf2578..223dd2ac32 100644 --- a/Content.Server/Cargo/Systems/CargoSystem.Telepad.cs +++ b/Content.Server/Cargo/Systems/CargoSystem.Telepad.cs @@ -1,9 +1,15 @@ +using System.Linq; using Content.Server.Cargo.Components; +using Content.Server.Construction; +using Content.Server.Paper; using Content.Server.Power.Components; +using Content.Server.Power.EntitySystems; +using Content.Server.Station.Components; using Content.Shared.Cargo; using Content.Shared.Cargo.Components; using Content.Shared.DeviceLinking; using Robust.Shared.Audio; +using Robust.Shared.Random; using Robust.Shared.Utility; namespace Content.Server.Cargo.Systems; @@ -13,10 +19,46 @@ public sealed partial class CargoSystem private void InitializeTelepad() { SubscribeLocalEvent(OnInit); + SubscribeLocalEvent(OnRefreshParts); + SubscribeLocalEvent(OnUpgradeExamine); + SubscribeLocalEvent(OnShutdown); SubscribeLocalEvent(OnTelepadPowerChange); // Shouldn't need re-anchored event SubscribeLocalEvent(OnTelepadAnchorChange); + SubscribeLocalEvent(OnTelepadFulfillCargoOrder); } + + private void OnTelepadFulfillCargoOrder(ref FulfillCargoOrderEvent args) + { + var query = EntityQueryEnumerator(); + while (query.MoveNext(out var uid, out var tele, out var xform)) + { + if (tele.CurrentState != CargoTelepadState.Idle) + continue; + + if (!this.IsPowered(uid, EntityManager)) + continue; + + if (_station.GetOwningStation(uid, xform) != args.Station) + continue; + + // todo cannot be fucking asked to figure out device linking rn but this shouldn't just default to the first port. + if (!TryComp(uid, out var sinkComponent) || + sinkComponent.LinkedSources.FirstOrNull() is not { } console || + console != args.OrderConsole.Owner) + continue; + + for (var i = 0; i < args.Order.OrderQuantity; i++) + { + tele.CurrentOrders.Add(args.Order); + } + tele.Accumulator = tele.Delay; + args.Handled = true; + args.FulfillmentEntity = uid; + return; + } + } + private void UpdateTelepad(float frameTime) { var query = EntityQueryEnumerator(); @@ -33,14 +75,6 @@ private void UpdateTelepad(float frameTime) continue; } - if (!TryComp(uid, out var sinkComponent) || - sinkComponent.LinkedSources.FirstOrNull() is not { } console || - !HasComp(console)) - { - comp.Accumulator = comp.Delay; - continue; - } - comp.Accumulator -= frameTime; // Uhh listen teleporting takes time and I just want the 1 float. @@ -51,21 +85,22 @@ private void UpdateTelepad(float frameTime) continue; } - var station = _station.GetOwningStation(console); - - if (!TryComp(station, out var orderDatabase) || - orderDatabase.Orders.Count == 0) + if (comp.CurrentOrders.Count == 0) { comp.Accumulator += comp.Delay; continue; } var xform = Transform(uid); - if (FulfillNextOrder(orderDatabase, xform.Coordinates, comp.PrinterOutput)) + var currentOrder = comp.CurrentOrders.First(); + if (FulfillOrder(currentOrder, xform.Coordinates, comp.PrinterOutput)) { _audio.PlayPvs(_audio.GetSound(comp.TeleportSound), uid, AudioParams.Default.WithVolume(-8f)); - UpdateOrders(station.Value, orderDatabase); + if (_station.GetOwningStation(uid) is { } station) + UpdateOrders(station); + + comp.CurrentOrders.Remove(currentOrder); comp.CurrentState = CargoTelepadState.Teleporting; _appearance.SetData(uid, CargoTelepadVisuals.State, CargoTelepadState.Teleporting, appearance); } @@ -79,6 +114,40 @@ private void OnInit(EntityUid uid, CargoTelepadComponent telepad, ComponentInit _linker.EnsureSinkPorts(uid, telepad.ReceiverPort); } + private void OnRefreshParts(EntityUid uid, CargoTelepadComponent component, RefreshPartsEvent args) + { + var rating = args.PartRatings[component.MachinePartTeleportDelay] - 1; + component.Delay = component.BaseDelay * MathF.Pow(component.PartRatingTeleportDelay, rating); + } + + private void OnUpgradeExamine(EntityUid uid, CargoTelepadComponent component, UpgradeExamineEvent args) + { + args.AddPercentageUpgrade("cargo-telepad-delay-upgrade", component.Delay / component.BaseDelay); + } + + private void OnShutdown(Entity ent, ref ComponentShutdown args) + { + if (ent.Comp.CurrentOrders.Count == 0) + return; + + if (_station.GetStations().Count == 0) + return; + + if (_station.GetOwningStation(ent) is not { } station) + { + station = _random.Pick(_station.GetStations().Where(HasComp).ToList()); + } + + if (!TryComp(station, out var db) || + !TryComp(station, out var data)) + return; + + foreach (var order in ent.Comp.CurrentOrders) + { + TryFulfillOrder((station, data), order, db); + } + } + private void SetEnabled(EntityUid uid, CargoTelepadComponent component, ApcPowerReceiverComponent? receiver = null, TransformComponent? xform = null) { diff --git a/Content.Server/Cargo/Systems/CargoSystem.cs b/Content.Server/Cargo/Systems/CargoSystem.cs index 3d6fc96472..e593299321 100644 --- a/Content.Server/Cargo/Systems/CargoSystem.cs +++ b/Content.Server/Cargo/Systems/CargoSystem.cs @@ -8,6 +8,7 @@ using Content.Server.Station.Systems; using Content.Shared.Access.Systems; using Content.Shared.Administration.Logs; +using Content.Server.Radio.EntitySystems; using Content.Shared.Cargo; using Content.Shared.Cargo.Components; using Content.Shared.Containers.ItemSlots; @@ -44,6 +45,7 @@ public sealed partial class CargoSystem : SharedCargoSystem [Dependency] private readonly StationSystem _station = default!; [Dependency] private readonly UserInterfaceSystem _uiSystem = default!; [Dependency] private readonly MetaDataSystem _metaSystem = default!; + [Dependency] private readonly RadioSystem _radio = default!; [Dependency] private readonly IConfigurationManager _cfgManager = default!; [Dependency] private readonly IMapManager _mapManager = default!; [Dependency] private readonly IComponentFactory _factory = default!; diff --git a/Content.Server/Cargo/Systems/LogisticStatsSystem.cs b/Content.Server/Cargo/Systems/LogisticStatsSystem.cs new file mode 100644 index 0000000000..6abf4eb5a4 --- /dev/null +++ b/Content.Server/Cargo/Systems/LogisticStatsSystem.cs @@ -0,0 +1,63 @@ +using Content.Shared.Cargo; +using Content.Server.Cargo.Components; +using JetBrains.Annotations; + +namespace Content.Server.Cargo.Systems; + +public sealed partial class LogisticStatsSystem : SharedCargoSystem +{ + [PublicAPI] + public void AddOpenedMailEarnings(EntityUid uid, StationLogisticStatsComponent component, int earnedMoney) + { + component.Metrics = component.Metrics with + { + Earnings = component.Metrics.Earnings + earnedMoney, + OpenedCount = component.Metrics.OpenedCount + 1 + }; + UpdateLogisticsStats(uid); + } + + [PublicAPI] + public void AddExpiredMailLosses(EntityUid uid, StationLogisticStatsComponent component, int lostMoney) + { + component.Metrics = component.Metrics with + { + ExpiredLosses = component.Metrics.ExpiredLosses + lostMoney, + ExpiredCount = component.Metrics.ExpiredCount + 1 + }; + UpdateLogisticsStats(uid); + } + + [PublicAPI] + public void AddDamagedMailLosses(EntityUid uid, StationLogisticStatsComponent component, int lostMoney) + { + component.Metrics = component.Metrics with + { + DamagedLosses = component.Metrics.DamagedLosses + lostMoney, + DamagedCount = component.Metrics.DamagedCount + 1 + }; + UpdateLogisticsStats(uid); + } + + [PublicAPI] + public void AddTamperedMailLosses(EntityUid uid, StationLogisticStatsComponent component, int lostMoney) + { + component.Metrics = component.Metrics with + { + TamperedLosses = component.Metrics.TamperedLosses + lostMoney, + TamperedCount = component.Metrics.TamperedCount + 1 + }; + UpdateLogisticsStats(uid); + } + + private void UpdateLogisticsStats(EntityUid uid) => RaiseLocalEvent(new LogisticStatsUpdatedEvent(uid)); +} + +public sealed class LogisticStatsUpdatedEvent : EntityEventArgs +{ + public EntityUid Station; + public LogisticStatsUpdatedEvent(EntityUid station) + { + Station = station; + } +} diff --git a/Content.Server/Cargo/Systems/PricingSystem.cs b/Content.Server/Cargo/Systems/PricingSystem.cs index 9e1970d63c..f878eeee75 100644 --- a/Content.Server/Cargo/Systems/PricingSystem.cs +++ b/Content.Server/Cargo/Systems/PricingSystem.cs @@ -199,7 +199,7 @@ public double GetEstimatedPrice(EntityPrototype prototype) /// This fires off an event to calculate the price. /// Calculating the price of an entity that somehow contains itself will likely hang. /// - public double GetPrice(EntityUid uid) + public double GetPrice(EntityUid uid, bool includeContents = true) { var ev = new PriceCalculationEvent(); RaiseLocalEvent(uid, ref ev); @@ -222,7 +222,7 @@ public double GetPrice(EntityUid uid) price += GetStaticPrice(uid); } - if (TryComp(uid, out var containers)) + if (includeContents && TryComp(uid, out var containers)) { foreach (var container in containers.Containers.Values) { diff --git a/Content.Server/Carrying/CarryingSystem.cs b/Content.Server/Carrying/CarryingSystem.cs index 3e37366a2e..857c3861a7 100644 --- a/Content.Server/Carrying/CarryingSystem.cs +++ b/Content.Server/Carrying/CarryingSystem.cs @@ -146,7 +146,7 @@ private void OnThrow(EntityUid uid, CarryingComponent component, ref BeforeThrow private void OnParentChanged(EntityUid uid, CarryingComponent component, ref EntParentChangedMessage args) { var xform = Transform(uid); - if (xform.MapID != args.OldMapId || xform.ParentUid == xform.GridUid) + if (xform.MapUid != args.OldMapId || xform.ParentUid == xform.GridUid) return; DropCarried(uid, component.Carried); diff --git a/Content.Server/CartridgeLoader/CartridgeLoaderSystem.cs b/Content.Server/CartridgeLoader/CartridgeLoaderSystem.cs index 4a76aef911..7896a7822e 100644 --- a/Content.Server/CartridgeLoader/CartridgeLoaderSystem.cs +++ b/Content.Server/CartridgeLoader/CartridgeLoaderSystem.cs @@ -103,12 +103,12 @@ public void UpdateUiState(EntityUid loaderUid, ICommonSession? session, Cartridg if (!Resolve(loaderUid, ref loader)) return; - if (!_userInterfaceSystem.TryGetUi(loaderUid, loader.UiKey, out var ui)) + if (!_userInterfaceSystem.HasUi(loaderUid, loader.UiKey)) return; var programs = GetAvailablePrograms(loaderUid, loader); var state = new CartridgeLoaderUiState(programs, GetNetEntity(loader.ActiveProgram)); - _userInterfaceSystem.SetUiState(ui, state, session); + _userInterfaceSystem.SetUiState(loaderUid, loader.UiKey, state); } /// @@ -127,8 +127,8 @@ public void UpdateCartridgeUiState(EntityUid loaderUid, BoundUserInterfaceState if (!Resolve(loaderUid, ref loader)) return; - if (_userInterfaceSystem.TryGetUi(loaderUid, loader.UiKey, out var ui)) - _userInterfaceSystem.SetUiState(ui, state, session); + if (_userInterfaceSystem.HasUi(loaderUid, loader.UiKey)) + _userInterfaceSystem.SetUiState(loaderUid, loader.UiKey, state); } /// diff --git a/Content.Server/CartridgeLoader/Cartridges/MailMetricsCartridgeComponent.cs b/Content.Server/CartridgeLoader/Cartridges/MailMetricsCartridgeComponent.cs new file mode 100644 index 0000000000..380a4d90c0 --- /dev/null +++ b/Content.Server/CartridgeLoader/Cartridges/MailMetricsCartridgeComponent.cs @@ -0,0 +1,11 @@ +namespace Content.Server.CartridgeLoader.Cartridges; + +[RegisterComponent, Access(typeof(MailMetricsCartridgeSystem))] +public sealed partial class MailMetricsCartridgeComponent : Component +{ + /// + /// Station entity keeping track of logistics stats + /// + [DataField] + public EntityUid? Station; +} diff --git a/Content.Server/CartridgeLoader/Cartridges/MailMetricsCartridgeSystem.cs b/Content.Server/CartridgeLoader/Cartridges/MailMetricsCartridgeSystem.cs new file mode 100644 index 0000000000..00b6d0a16e --- /dev/null +++ b/Content.Server/CartridgeLoader/Cartridges/MailMetricsCartridgeSystem.cs @@ -0,0 +1,82 @@ +using Content.Server.Cargo.Components; +using Content.Server.Cargo.Systems; +using Content.Server.Mail.Components; +using Content.Server.Station.Systems; +using Content.Shared.CartridgeLoader; +using Content.Shared.CartridgeLoader.Cartridges; + +namespace Content.Server.CartridgeLoader.Cartridges; + +public sealed class MailMetricsCartridgeSystem : EntitySystem +{ + [Dependency] private readonly CartridgeLoaderSystem _cartridgeLoader = default!; + [Dependency] private readonly StationSystem _station = default!; + + public override void Initialize() + { + base.Initialize(); + + SubscribeLocalEvent(OnUiReady); + SubscribeLocalEvent(OnLogisticsStatsUpdated); + SubscribeLocalEvent(OnMapInit); + } + + private void OnUiReady(Entity ent, ref CartridgeUiReadyEvent args) + { + UpdateUI(ent, args.Loader); + } + + private void OnLogisticsStatsUpdated(LogisticStatsUpdatedEvent args) + { + UpdateAllCartridges(args.Station); + } + + private void OnMapInit(EntityUid uid, MailComponent mail, MapInitEvent args) + { + if (_station.GetOwningStation(uid) is { } station) + UpdateAllCartridges(station); + } + + private void UpdateAllCartridges(EntityUid station) + { + var query = EntityQueryEnumerator(); + while (query.MoveNext(out var uid, out var comp, out var cartridge)) + { + if (cartridge.LoaderUid is not { } loader || comp.Station != station) + continue; + UpdateUI((uid, comp), loader); + } + } + + private void UpdateUI(Entity ent, EntityUid loader) + { + if (_station.GetOwningStation(loader) is { } station) + ent.Comp.Station = station; + + if (!TryComp(ent.Comp.Station, out var logiStats)) + return; + + // Get station's logistic stats + var unopenedMailCount = GetUnopenedMailCount(ent.Comp.Station); + + // Send logistic stats to cartridge client + var state = new MailMetricUiState(logiStats.Metrics, unopenedMailCount); + _cartridgeLoader.UpdateCartridgeUiState(loader, state); + } + + + private int GetUnopenedMailCount(EntityUid? station) + { + var unopenedMail = 0; + + var query = EntityQueryEnumerator(); + + while (query.MoveNext(out var uid, out var comp)) + { + if (comp.IsLocked && _station.GetOwningStation(uid) == station) + unopenedMail++; + } + + return unopenedMail; + } +} diff --git a/Content.Server/Chat/Commands/AdminChatCommand.cs b/Content.Server/Chat/Commands/AdminChatCommand.cs index 979051e9d3..1a7ae050b6 100644 --- a/Content.Server/Chat/Commands/AdminChatCommand.cs +++ b/Content.Server/Chat/Commands/AdminChatCommand.cs @@ -5,7 +5,7 @@ namespace Content.Server.Chat.Commands { - [AdminCommand(AdminFlags.Admin)] + [AdminCommand(AdminFlags.Adminchat)] internal sealed class AdminChatCommand : IConsoleCommand { public string Command => "asay"; diff --git a/Content.Server/Chat/Systems/ChatSystem.Emote.cs b/Content.Server/Chat/Systems/ChatSystem.Emote.cs index 9ad30bc572..85792ead52 100644 --- a/Content.Server/Chat/Systems/ChatSystem.Emote.cs +++ b/Content.Server/Chat/Systems/ChatSystem.Emote.cs @@ -2,6 +2,7 @@ using System.Linq; using Content.Shared.Chat; using Content.Shared.Chat.Prototypes; +using Content.Shared.Speech; using Robust.Shared.Prototypes; using Robust.Shared.Random; @@ -83,6 +84,16 @@ public void TryEmoteWithChat( bool ignoreActionBlocker = false ) { + if (!(emote.Whitelist?.IsValid(source, EntityManager) ?? true)) + return; + if (emote.Blacklist?.IsValid(source, EntityManager) ?? false) + return; + + if (!emote.Available && + TryComp(source, out var speech) && + !speech.AllowedEmotes.Contains(emote.ID)) + return; + // check if proto has valid message for chat if (emote.ChatMessages.Count != 0) { diff --git a/Content.Server/Chat/V2/Commands/DeleteChatMessageCommand.cs b/Content.Server/Chat/V2/Commands/DeleteChatMessageCommand.cs new file mode 100644 index 0000000000..1f9203d299 --- /dev/null +++ b/Content.Server/Chat/V2/Commands/DeleteChatMessageCommand.cs @@ -0,0 +1,36 @@ +using System.Diagnostics; +using Content.Server.Administration; +using Content.Server.Chat.V2.Repository; +using Content.Shared.Administration; +using Robust.Shared.Toolshed; +using Robust.Shared.Toolshed.Errors; +using Robust.Shared.Utility; + +namespace Content.Server.Chat.V2.Commands; + +[ToolshedCommand, AdminCommand(AdminFlags.Admin)] +public sealed class DeleteChatMessageCommand : ToolshedCommand +{ + [Dependency] private readonly IEntitySystemManager _manager = default!; + + [CommandImplementation("id")] + public void DeleteChatMessage([CommandInvocationContext] IInvocationContext ctx, [CommandArgument] uint messageId) + { + if (!_manager.GetEntitySystem().Delete(messageId)) + { + ctx.ReportError(new MessageIdDoesNotExist()); + } + } +} + +public record struct MessageIdDoesNotExist() : IConError +{ + public FormattedMessage DescribeInner() + { + return FormattedMessage.FromUnformatted(Loc.GetString("command-error-deletechatmessage-id-notexist")); + } + + public string? Expression { get; set; } + public Vector2i? IssueSpan { get; set; } + public StackTrace? Trace { get; set; } +} diff --git a/Content.Server/Chat/V2/Commands/NukeChatMessagesCommand.cs b/Content.Server/Chat/V2/Commands/NukeChatMessagesCommand.cs new file mode 100644 index 0000000000..3d8b69dd76 --- /dev/null +++ b/Content.Server/Chat/V2/Commands/NukeChatMessagesCommand.cs @@ -0,0 +1,41 @@ +using System.Diagnostics; +using Content.Server.Administration; +using Content.Server.Chat.V2.Repository; +using Content.Shared.Administration; +using Robust.Shared.Toolshed; +using Robust.Shared.Toolshed.Errors; +using Robust.Shared.Utility; + +namespace Content.Server.Chat.V2.Commands; + +[ToolshedCommand, AdminCommand(AdminFlags.Admin)] +public sealed class NukeChatMessagesCommand : ToolshedCommand +{ + [Dependency] private readonly IEntitySystemManager _manager = default!; + + [CommandImplementation("usernames")] + public void Command([CommandInvocationContext] IInvocationContext ctx, [CommandArgument] string usernamesCsv) + { + var usernames = usernamesCsv.Split(','); + + foreach (var username in usernames) + { + if (!_manager.GetEntitySystem().NukeForUsername(username, out var reason)) + { + ctx.ReportError(new NukeMessagesForUsernameError(reason)); + } + } + } +} + +public record struct NukeMessagesForUsernameError(string Reason) : IConError +{ + public FormattedMessage DescribeInner() + { + return FormattedMessage.FromUnformatted(Reason); + } + + public string? Expression { get; set; } + public Vector2i? IssueSpan { get; set; } + public StackTrace? Trace { get; set; } +} diff --git a/Content.Server/Chat/V2/Messages.cs b/Content.Server/Chat/V2/Messages.cs new file mode 100644 index 0000000000..31a563cbeb --- /dev/null +++ b/Content.Server/Chat/V2/Messages.cs @@ -0,0 +1,94 @@ +using Content.Shared.Chat.Prototypes; +using Content.Shared.Chat.V2; +using Content.Shared.Radio; + +namespace Content.Server.Chat.V2; + +/// +/// Raised locally when a comms announcement is made. +/// +public sealed class CommsAnnouncementCreatedEvent(EntityUid sender, EntityUid console, string message) : IChatEvent +{ + public uint Id { get; set; } + public EntityUid Sender { get; set; } = sender; + public string Message { get; set; } = message; + public MessageType Type => MessageType.Announcement; + public EntityUid Console = console; +} + +/// +/// Raised locally when a character speaks in Dead Chat. +/// +public sealed class DeadChatCreatedEvent(EntityUid speaker, string message, bool isAdmin) : IChatEvent +{ + public uint Id { get; set; } + public EntityUid Sender { get; set; } = speaker; + public string Message { get; set; } = message; + public MessageType Type => MessageType.DeadChat; + public bool IsAdmin = isAdmin; +} + +/// +/// Raised locally when a character emotes. +/// +public sealed class EmoteCreatedEvent(EntityUid sender, string message, float range) : IChatEvent +{ + public uint Id { get; set; } + public EntityUid Sender { get; set; } = sender; + public string Message { get; set; } = message; + public MessageType Type => MessageType.Emote; + public float Range = range; +} + +/// +/// Raised locally when a character talks in local. +/// +public sealed class LocalChatCreatedEvent(EntityUid speaker, string message, float range) : IChatEvent +{ + public uint Id { get; set; } + public EntityUid Sender { get; set; } = speaker; + public string Message { get; set; } = message; + public MessageType Type => MessageType.Local; + public float Range = range; +} + +/// +/// Raised locally when a character speaks in LOOC. +/// +public sealed class LoocCreatedEvent(EntityUid speaker, string message) : IChatEvent +{ + public uint Id { get; set; } + public EntityUid Sender { get; set; } = speaker; + public string Message { get; set; } = message; + public MessageType Type => MessageType.Looc; +} + +/// +/// Raised locally when a character speaks on the radio. +/// +public sealed class RadioCreatedEvent( + EntityUid speaker, + string message, + RadioChannelPrototype channel) + : IChatEvent +{ + public uint Id { get; set; } + public EntityUid Sender { get; set; } = speaker; + public string Message { get; set; } = message; + public RadioChannelPrototype Channel = channel; + public MessageType Type => MessageType.Radio; +} + +/// +/// Raised locally when a character whispers. +/// +public sealed class WhisperCreatedEvent(EntityUid speaker, string message, float minRange, float maxRange) : IChatEvent +{ + public uint Id { get; set; } + public EntityUid Sender { get; set; } = speaker; + public string Message { get; set; } = message; + public MessageType Type => MessageType.Whisper; + public float MinRange = minRange; + public float MaxRange = maxRange; +} + diff --git a/Content.Server/Chat/V2/Repository/ChatRepository.cs b/Content.Server/Chat/V2/Repository/ChatRepository.cs new file mode 100644 index 0000000000..06de37128f --- /dev/null +++ b/Content.Server/Chat/V2/Repository/ChatRepository.cs @@ -0,0 +1,196 @@ +using System.Diagnostics.CodeAnalysis; +using System.Linq; +using System.Runtime.InteropServices; +using Content.Shared.Chat.V2; +using Content.Shared.Chat.V2.Repository; +using Robust.Server.Player; +using Robust.Shared.Network; +using Robust.Shared.Replays; + +namespace Content.Server.Chat.V2.Repository; + +/// +/// Stores , gives them UIDs, and issues . +/// Allows for deletion of messages. +/// +public sealed class ChatRepositorySystem : EntitySystem +{ + [Dependency] private readonly IReplayRecordingManager _replay = default!; + [Dependency] private readonly IPlayerManager _player = default!; + + // Clocks should start at 1, as 0 indicates "clock not set" or "clock forgotten to be set by bad programmer". + private uint _nextMessageId = 1; + private Dictionary _messages = new(); + private Dictionary> _playerMessages = new(); + + public override void Initialize() + { + Refresh(); + + _replay.RecordingFinished += _ => + { + // TODO: resolve https://github.com/space-wizards/space-station-14/issues/25485 so we can dump the chat to disc. + Refresh(); + }; + } + + /// + /// Adds an to the repo and raises it with a UID for consumption elsewhere. + /// + /// The event to store and raise + /// If storing and raising succeeded. + public bool Add(IChatEvent ev) + { + if (!_player.TryGetSessionByEntity(ev.Sender, out var session)) + { + return false; + } + + var messageId = _nextMessageId; + + _nextMessageId++; + + ev.Id = messageId; + + var storedEv = new ChatRecord + { + UserName = session.Name, + UserId = session.UserId, + EntityName = Name(ev.Sender), + StoredEvent = ev + }; + + _messages[messageId] = storedEv; + + CollectionsMarshal.GetValueRefOrAddDefault(_playerMessages, storedEv.UserId, out _)?.Add(messageId); + + RaiseLocalEvent(ev.Sender, new MessageCreatedEvent(ev), true); + + return true; + } + + /// + /// Returns the event associated with a UID, if it exists. + /// + /// The UID of a event. + /// The event, if it exists. + public IChatEvent? GetEventFor(uint id) + { + return _messages.TryGetValue(id, out var record) ? record.StoredEvent : null; + } + + /// + /// Edits a specific message and issues a that says this happened both locally and + /// on the network. Note that this doesn't replay the message (yet), so translators and mutators won't act on it. + /// + /// The ID to edit + /// The new message to send + /// If patching did anything did anything + /// Should be used for admining and admemeing only. + public bool Patch(uint id, string message) + { + if (!_messages.TryGetValue(id, out var ev)) + { + return false; + } + + ev.StoredEvent.Message = message; + + RaiseLocalEvent(new MessagePatchedEvent(id, message)); + + return true; + } + + /// + /// Deletes a message from the repository and issues a that says this has happened + /// both locally and on the network. + /// + /// The ID to delete + /// If deletion did anything + /// Should only be used for adminning + public bool Delete(uint id) + { + if (!_messages.TryGetValue(id, out var ev)) + { + return false; + } + + _messages.Remove(id); + + if (_playerMessages.TryGetValue(ev.UserId, out var set)) + { + set.Remove(id); + } + + RaiseLocalEvent(new MessageDeletedEvent(id)); + + return true; + } + + /// + /// Nukes a user's entire chat history from the repo and issues a saying this has + /// happened. + /// + /// The user ID to nuke. + /// Why nuking failed, if it did. + /// If nuking did anything. + /// Note that this could be a very large event, as we send every single event ID over the wire. + /// By necessity we can't leak the player-source of chat messages (or if they even have the same origin) because of + /// client modders who could use that information to cheat/metagrudge/etc >:( + public bool NukeForUsername(string userName, [NotNullWhen(false)] out string? reason) + { + if (!_player.TryGetUserId(userName, out var userId)) + { + reason = Loc.GetString("command-error-nukechatmessages-usernames-usernamenotexist", ("username", userName)); + + return false; + } + + return NukeForUserId(userId, out reason); + } + + /// + /// Nukes a user's entire chat history from the repo and issues a saying this has + /// happened. + /// + /// The user ID to nuke. + /// Why nuking failed, if it did. + /// If nuking did anything. + /// Note that this could be a very large event, as we send every single event ID over the wire. + /// By necessity we can't leak the player-source of chat messages (or if they even have the same origin) because of + /// client modders who could use that information to cheat/metagrudge/etc >:( + public bool NukeForUserId(NetUserId userId, [NotNullWhen(false)] out string? reason) + { + if (!_playerMessages.TryGetValue(userId, out var dict)) + { + reason = Loc.GetString("command-error-nukechatmessages-usernames-usernamenomessages", ("userId", userId.UserId.ToString())); + + return false; + } + + foreach (var id in dict) + { + _messages.Remove(id); + } + + var ev = new MessagesNukedEvent(dict); + + CollectionsMarshal.GetValueRefOrAddDefault(_playerMessages, userId, out _)?.Clear(); + + RaiseLocalEvent(ev); + + reason = null; + + return true; + } + + /// + /// Dumps held chat storage data and refreshes the repo. + /// + public void Refresh() + { + _nextMessageId = 1; + _messages.Clear(); + _playerMessages.Clear(); + } +} diff --git a/Content.Server/Chemistry/Components/ReagentTankComponent.cs b/Content.Server/Chemistry/Components/ReagentTankComponent.cs deleted file mode 100644 index cc0d2657d7..0000000000 --- a/Content.Server/Chemistry/Components/ReagentTankComponent.cs +++ /dev/null @@ -1,23 +0,0 @@ -using Content.Shared.FixedPoint; - - -namespace Content.Server.Chemistry.Components -{ - [RegisterComponent] - public sealed partial class ReagentTankComponent : Component - { - [DataField("transferAmount")] - [ViewVariables(VVAccess.ReadWrite)] - public FixedPoint2 TransferAmount { get; set; } = FixedPoint2.New(10); - - [DataField("tankType")] - [ViewVariables(VVAccess.ReadWrite)] - public ReagentTankType TankType { get; set; } = ReagentTankType.Unspecified; - } - - public enum ReagentTankType : byte - { - Unspecified, - Fuel - } -} diff --git a/Content.Server/Chemistry/Components/SolutionHeaterComponent.cs b/Content.Server/Chemistry/Components/SolutionHeaterComponent.cs index c1841e022c..bc1d44e82f 100644 --- a/Content.Server/Chemistry/Components/SolutionHeaterComponent.cs +++ b/Content.Server/Chemistry/Components/SolutionHeaterComponent.cs @@ -4,8 +4,26 @@ namespace Content.Server.Chemistry.Components; public sealed partial class SolutionHeaterComponent : Component { /// - /// How much heat is added per second to the solution, taking upgrades into account. + /// How much heat is added per second to the solution, with no upgrades. /// - [DataField, ViewVariables(VVAccess.ReadWrite)] + [DataField] + public float BaseHeatPerSecond = 120; + + /// + /// How much heat is added per second to the solution, taking upgrades into account. + /// + [ViewVariables(VVAccess.ReadWrite)] public float HeatPerSecond; + + /// + /// The machine part that affects the heat multiplier. + /// + [DataField] + public string MachinePartHeatMultiplier = "Capacitor"; + + /// + /// How much each upgrade multiplies the heat by. + /// + [DataField] + public float PartRatingHeatMultiplier = 1.5f; } diff --git a/Content.Server/Chemistry/Containers/EntitySystems/SolutionContainerSystem.cs b/Content.Server/Chemistry/Containers/EntitySystems/SolutionContainerSystem.cs index 755312554c..3d99db1129 100644 --- a/Content.Server/Chemistry/Containers/EntitySystems/SolutionContainerSystem.cs +++ b/Content.Server/Chemistry/Containers/EntitySystems/SolutionContainerSystem.cs @@ -9,180 +9,37 @@ namespace Content.Server.Chemistry.Containers.EntitySystems; +[Obsolete("This is being depreciated. Use SharedSolutionContainerSystem instead!")] public sealed partial class SolutionContainerSystem : SharedSolutionContainerSystem { - public override void Initialize() - { - base.Initialize(); - - SubscribeLocalEvent(OnMapInit); - SubscribeLocalEvent(OnComponentShutdown); - SubscribeLocalEvent(OnComponentShutdown); - } - - + [Obsolete("This is being depreciated. Use the ensure methods in SharedSolutionContainerSystem instead!")] public Solution EnsureSolution(Entity entity, string name) => EnsureSolution(entity, name, out _); + [Obsolete("This is being depreciated. Use the ensure methods in SharedSolutionContainerSystem instead!")] public Solution EnsureSolution(Entity entity, string name, out bool existed) => EnsureSolution(entity, name, FixedPoint2.Zero, out existed); + [Obsolete("This is being depreciated. Use the ensure methods in SharedSolutionContainerSystem instead!")] public Solution EnsureSolution(Entity entity, string name, FixedPoint2 maxVol, out bool existed) => EnsureSolution(entity, name, maxVol, null, out existed); + [Obsolete("This is being depreciated. Use the ensure methods in SharedSolutionContainerSystem instead!")] public Solution EnsureSolution(Entity entity, string name, FixedPoint2 maxVol, Solution? prototype, out bool existed) { - var (uid, meta) = entity; - if (!Resolve(uid, ref meta)) - throw new InvalidOperationException("Attempted to ensure solution on invalid entity."); - - var manager = EnsureComp(uid); - if (meta.EntityLifeStage >= EntityLifeStage.MapInitialized) - return EnsureSolutionEntity((uid, manager), name, maxVol, prototype, out existed).Comp.Solution; - else - return EnsureSolutionPrototype((uid, manager), name, maxVol, prototype, out existed); - } - - public void EnsureAllSolutions(Entity entity) - { - if (entity.Comp.Solutions is not { } prototypes) - return; - - foreach (var (name, prototype) in prototypes) - { - EnsureSolutionEntity((entity.Owner, entity.Comp), name, prototype.MaxVolume, prototype, out _); - } - - entity.Comp.Solutions = null; - Dirty(entity); - } - - public Entity EnsureSolutionEntity(Entity entity, string name, FixedPoint2 maxVol, Solution? prototype, out bool existed) - { - existed = true; - - var (uid, container) = entity; - - var solutionSlot = ContainerSystem.EnsureContainer(uid, $"solution@{name}", out existed); - if (!Resolve(uid, ref container, logMissing: false)) - { - existed = false; - container = AddComp(uid); - container.Containers.Add(name); - } - else if (!existed) - { - container.Containers.Add(name); - Dirty(uid, container); - } - - var needsInit = false; - SolutionComponent solutionComp; - if (solutionSlot.ContainedEntity is not { } solutionId) - { - prototype ??= new() { MaxVolume = maxVol }; - prototype.Name = name; - (solutionId, solutionComp, _) = SpawnSolutionUninitialized(solutionSlot, name, maxVol, prototype); - existed = false; - needsInit = true; - Dirty(uid, container); - } - else - { - solutionComp = Comp(solutionId); - DebugTools.Assert(TryComp(solutionId, out ContainedSolutionComponent? relation) && relation.Container == uid && relation.ContainerName == name); - DebugTools.Assert(solutionComp.Solution.Name == name); - - var solution = solutionComp.Solution; - solution.MaxVolume = FixedPoint2.Max(solution.MaxVolume, maxVol); - - // Depending on MapInitEvent order some systems can ensure solution empty solutions and conflict with the prototype solutions. - // We want the reagents from the prototype to exist even if something else already created the solution. - if (prototype is { Volume.Value: > 0 }) - solution.AddSolution(prototype, PrototypeManager); - - Dirty(solutionId, solutionComp); - } - - if (needsInit) - EntityManager.InitializeAndStartEntity(solutionId, Transform(solutionId).MapID); - - return (solutionId, solutionComp); - } - - private Solution EnsureSolutionPrototype(Entity entity, string name, FixedPoint2 maxVol, Solution? prototype, out bool existed) - { - existed = true; - - var (uid, container) = entity; - if (!Resolve(uid, ref container, logMissing: false)) - { - container = AddComp(uid); - existed = false; - } - - if (container.Solutions is null) - container.Solutions = new(SolutionContainerManagerComponent.DefaultCapacity); - - if (!container.Solutions.TryGetValue(name, out var solution)) - { - solution = prototype ?? new() { Name = name, MaxVolume = maxVol }; - container.Solutions.Add(name, solution); - existed = false; - } - else - solution.MaxVolume = FixedPoint2.Max(solution.MaxVolume, maxVol); - - Dirty(uid, container); - return solution; + EnsureSolution(entity, name, maxVol, prototype, out existed, out var solution); + return solution!;//solution is only ever null on the client, so we can suppress this } - - private Entity SpawnSolutionUninitialized(ContainerSlot container, string name, FixedPoint2 maxVol, Solution prototype) + [Obsolete("This is being depreciated. Use the ensure methods in SharedSolutionContainerSystem instead!")] + public Entity EnsureSolutionEntity( + Entity entity, + string name, + FixedPoint2 maxVol, + Solution? prototype, + out bool existed) { - var coords = new EntityCoordinates(container.Owner, Vector2.Zero); - var uid = EntityManager.CreateEntityUninitialized(null, coords, null); - - var solution = new SolutionComponent() { Solution = prototype }; - AddComp(uid, solution); - - var relation = new ContainedSolutionComponent() { Container = container.Owner, ContainerName = name }; - AddComp(uid, relation); - - MetaData.SetEntityName(uid, $"solution - {name}"); - ContainerSystem.Insert(uid, container, force: true); - - return (uid, solution, relation); + EnsureSolutionEntity(entity, name, out existed, out var solEnt, maxVol, prototype); + return solEnt!.Value;//solEnt is only ever null on the client, so we can suppress this } - - #region Event Handlers - - private void OnMapInit(Entity entity, ref MapInitEvent args) - { - EnsureAllSolutions(entity); - } - - private void OnComponentShutdown(Entity entity, ref ComponentShutdown args) - { - foreach (var name in entity.Comp.Containers) - { - if (ContainerSystem.TryGetContainer(entity, $"solution@{name}", out var solutionContainer)) - ContainerSystem.ShutdownContainer(solutionContainer); - } - entity.Comp.Containers.Clear(); - } - - private void OnComponentShutdown(Entity entity, ref ComponentShutdown args) - { - if (TryComp(entity.Comp.Container, out SolutionContainerManagerComponent? container)) - { - container.Containers.Remove(entity.Comp.ContainerName); - Dirty(entity.Comp.Container, container); - } - - if (ContainerSystem.TryGetContainer(entity, $"solution@{entity.Comp.ContainerName}", out var solutionContainer)) - ContainerSystem.ShutdownContainer(solutionContainer); - } - - #endregion Event Handlers } diff --git a/Content.Server/Chemistry/EntitySystems/ChemMasterSystem.cs b/Content.Server/Chemistry/EntitySystems/ChemMasterSystem.cs index ab91044574..289db75981 100644 --- a/Content.Server/Chemistry/EntitySystems/ChemMasterSystem.cs +++ b/Content.Server/Chemistry/EntitySystems/ChemMasterSystem.cs @@ -80,7 +80,7 @@ private void UpdateUiState(Entity ent, bool updateLabel = f chemMaster.Mode, BuildInputContainerInfo(inputContainer), BuildOutputContainerInfo(outputContainer), bufferReagents, bufferCurrentVolume, chemMaster.PillType, chemMaster.PillDosageLimit, updateLabel); - _userInterfaceSystem.TrySetUiState(owner, ChemMasterUiKey.Key, state); + _userInterfaceSystem.SetUiState(owner, ChemMasterUiKey.Key, state); } private void OnSetModeMessage(Entity chemMaster, ref ChemMasterSetModeMessage message) @@ -179,7 +179,7 @@ private void DiscardReagents(Entity chemMaster, ReagentId i private void OnCreatePillsMessage(Entity chemMaster, ref ChemMasterCreatePillsMessage message) { - var user = message.Session.AttachedEntity; + var user = message.Actor; var maybeContainer = _itemSlotsSystem.GetItemOrNull(chemMaster, SharedChemMaster.OutputSlotName); if (maybeContainer is not { Valid: true } container || !TryComp(container, out StorageComponent? storage)) @@ -218,18 +218,9 @@ private void OnCreatePillsMessage(Entity chemMaster, ref Ch pill.PillType = chemMaster.Comp.PillType; Dirty(item, pill); - if (user.HasValue) - { - // Log pill creation by a user - _adminLogger.Add(LogType.Action, LogImpact.Low, - $"{ToPrettyString(user.Value):user} printed {ToPrettyString(item):pill} {SolutionContainerSystem.ToPrettyString(itemSolution.Comp.Solution)}"); - } - else - { - // Log pill creation by magic? This should never happen... right? - _adminLogger.Add(LogType.Action, LogImpact.Low, - $"Unknown printed {ToPrettyString(item):pill} {SolutionContainerSystem.ToPrettyString(itemSolution.Comp.Solution)}"); - } + // Log pill creation by a user + _adminLogger.Add(LogType.Action, LogImpact.Low, + $"{ToPrettyString(user):user} printed {ToPrettyString(item):pill} {SharedSolutionContainerSystem.ToPrettyString(itemSolution.Comp.Solution)}"); } UpdateUiState(chemMaster); @@ -238,7 +229,7 @@ private void OnCreatePillsMessage(Entity chemMaster, ref Ch private void OnOutputToBottleMessage(Entity chemMaster, ref ChemMasterOutputToBottleMessage message) { - var user = message.Session.AttachedEntity; + var user = message.Actor; var maybeContainer = _itemSlotsSystem.GetItemOrNull(chemMaster, SharedChemMaster.OutputSlotName); if (maybeContainer is not { Valid: true } container || !_solutionContainerSystem.TryGetSolution(container, SharedChemMaster.BottleSolutionName, out var soln, out var solution)) @@ -260,18 +251,9 @@ private void OnOutputToBottleMessage(Entity chemMaster, ref _labelSystem.Label(container, message.Label); _solutionContainerSystem.TryAddSolution(soln.Value, withdrawal); - if (user.HasValue) - { - // Log bottle creation by a user - _adminLogger.Add(LogType.Action, LogImpact.Low, - $"{ToPrettyString(user.Value):user} bottled {ToPrettyString(container):bottle} {SolutionContainerSystem.ToPrettyString(solution)}"); - } - else - { - // Log bottle creation by magic? This should never happen... right? - _adminLogger.Add(LogType.Action, LogImpact.Low, - $"Unknown bottled {ToPrettyString(container):bottle} {SolutionContainerSystem.ToPrettyString(solution)}"); - } + // Log bottle creation by a user + _adminLogger.Add(LogType.Action, LogImpact.Low, + $"{ToPrettyString(user):user} bottled {ToPrettyString(container):bottle} {SharedSolutionContainerSystem.ToPrettyString(solution)}"); UpdateUiState(chemMaster); ClickSound(chemMaster); diff --git a/Content.Server/Chemistry/EntitySystems/HypospraySystem.cs b/Content.Server/Chemistry/EntitySystems/HypospraySystem.cs index ab3b46755d..203eb041c8 100644 --- a/Content.Server/Chemistry/EntitySystems/HypospraySystem.cs +++ b/Content.Server/Chemistry/EntitySystems/HypospraySystem.cs @@ -26,7 +26,6 @@ public sealed class HypospraySystem : SharedHypospraySystem { [Dependency] private readonly AudioSystem _audio = default!; [Dependency] private readonly InteractionSystem _interaction = default!; - [Dependency] private readonly SolutionContainerSystem _solutionContainerSystem = default!; public override void Initialize() { diff --git a/Content.Server/Chemistry/EntitySystems/InjectorSystem.cs b/Content.Server/Chemistry/EntitySystems/InjectorSystem.cs index a6d13b2f7c..9dd1d429b7 100644 --- a/Content.Server/Chemistry/EntitySystems/InjectorSystem.cs +++ b/Content.Server/Chemistry/EntitySystems/InjectorSystem.cs @@ -124,7 +124,7 @@ private void InjectDoAfter(Entity injector, EntityUid target, Popup.PopupEntity(Loc.GetString("injector-component-injecting-user"), target, user); } - if (!SolutionContainers.TryGetSolution(injector.Owner, InjectorComponent.SolutionName, out _, out var solution)) + if (!SolutionContainers.TryGetSolution(injector.Owner, injector.Comp.SolutionName, out _, out var solution)) return; var actualDelay = MathHelper.Max(injector.Comp.Delay, TimeSpan.FromSeconds(1)); @@ -252,7 +252,7 @@ private void TryInjectIntoBloodstream(Entity injector, Entity private void TryInject(Entity injector, EntityUid targetEntity, Entity targetSolution, EntityUid user, bool asRefill) { - if (!SolutionContainers.TryGetSolution(injector.Owner, InjectorComponent.SolutionName, out var soln, + if (!SolutionContainers.TryGetSolution(injector.Owner, injector.Comp.SolutionName, out var soln, out var solution) || solution.Volume == 0) return; @@ -294,7 +294,7 @@ private void TryInject(Entity injector, EntityUid targetEntit private void AfterInject(Entity injector, EntityUid target) { // Automatically set syringe to draw after completely draining it. - if (SolutionContainers.TryGetSolution(injector.Owner, InjectorComponent.SolutionName, out _, + if (SolutionContainers.TryGetSolution(injector.Owner, injector.Comp.SolutionName, out _, out var solution) && solution.Volume == 0) { SetMode(injector, InjectorToggleMode.Draw); @@ -308,7 +308,7 @@ private void AfterInject(Entity injector, EntityUid target) private void AfterDraw(Entity injector, EntityUid target) { // Automatically set syringe to inject after completely filling it. - if (SolutionContainers.TryGetSolution(injector.Owner, InjectorComponent.SolutionName, out _, + if (SolutionContainers.TryGetSolution(injector.Owner, injector.Comp.SolutionName, out _, out var solution) && solution.AvailableVolume == 0) { SetMode(injector, InjectorToggleMode.Inject); @@ -322,7 +322,7 @@ private void AfterDraw(Entity injector, EntityUid target) private void TryDraw(Entity injector, Entity target, Entity targetSolution, EntityUid user) { - if (!SolutionContainers.TryGetSolution(injector.Owner, InjectorComponent.SolutionName, out var soln, + if (!SolutionContainers.TryGetSolution(injector.Owner, injector.Comp.SolutionName, out var soln, out var solution) || solution.AvailableVolume == 0) { return; diff --git a/Content.Server/Chemistry/EntitySystems/ReactionMixerSystem.cs b/Content.Server/Chemistry/EntitySystems/ReactionMixerSystem.cs index 032374d4a5..d5f7655f88 100644 --- a/Content.Server/Chemistry/EntitySystems/ReactionMixerSystem.cs +++ b/Content.Server/Chemistry/EntitySystems/ReactionMixerSystem.cs @@ -30,7 +30,7 @@ private void OnAfterInteract(Entity entity, ref AfterInt return; } - if (!_solutionContainers.TryGetMixableSolution(args.Target.Value, out var solution)) + if (!_solutionContainers.TryGetMixableSolution(args.Target.Value, out var solution, out _)) return; _popup.PopupEntity(Loc.GetString(entity.Comp.MixMessage, ("mixed", Identity.Entity(args.Target.Value, EntityManager)), ("mixer", Identity.Entity(entity.Owner, EntityManager))), args.User, args.User); diff --git a/Content.Server/Chemistry/EntitySystems/ReagentDispenserSystem.cs b/Content.Server/Chemistry/EntitySystems/ReagentDispenserSystem.cs index d6433da56a..c48bf086d3 100644 --- a/Content.Server/Chemistry/EntitySystems/ReagentDispenserSystem.cs +++ b/Content.Server/Chemistry/EntitySystems/ReagentDispenserSystem.cs @@ -62,7 +62,7 @@ private void UpdateUiState(Entity reagentDispenser) var inventory = GetInventory(reagentDispenser); var state = new ReagentDispenserBoundUserInterfaceState(outputContainerInfo, GetNetEntity(outputContainer), inventory, reagentDispenser.Comp.DispenseAmount); - _userInterfaceSystem.TrySetUiState(reagentDispenser, ReagentDispenserUiKey.Key, state); + _userInterfaceSystem.SetUiState(reagentDispenser.Owner, ReagentDispenserUiKey.Key, state); } private ContainerInfo? BuildOutputContainerInfo(EntityUid? container) @@ -81,9 +81,9 @@ private void UpdateUiState(Entity reagentDispenser) return null; } - private List>> GetInventory(Entity reagentDispenser) + private List GetInventory(Entity reagentDispenser) { - var inventory = new List>>(); + var inventory = new List(); for (var i = 0; i < reagentDispenser.Comp.NumSlots; i++) { @@ -99,15 +99,17 @@ private List>> GetInventory(En else continue; - // Add volume remaining label + // Get volume remaining and color of solution FixedPoint2 quantity = 0f; + var reagentColor = Color.White; if (storedContainer != null && _solutionContainerSystem.TryGetDrainableSolution(storedContainer.Value, out _, out var sol)) { quantity = sol.Volume; + reagentColor = sol.GetColor(_prototypeManager); } var storedAmount = Loc.GetString("reagent-dispenser-window-quantity-label-text", ("quantity", quantity)); - inventory.Add(new KeyValuePair>(storageSlotId, new KeyValuePair(reagentLabel, storedAmount))); + inventory.Add(new ReagentInventoryItem(storageSlotId, reagentLabel, storedAmount, reagentColor)); } return inventory; diff --git a/Content.Server/Chemistry/EntitySystems/SolutionHeaterSystem.cs b/Content.Server/Chemistry/EntitySystems/SolutionHeaterSystem.cs index 6e6373e10b..1ef589ab5c 100644 --- a/Content.Server/Chemistry/EntitySystems/SolutionHeaterSystem.cs +++ b/Content.Server/Chemistry/EntitySystems/SolutionHeaterSystem.cs @@ -1,5 +1,6 @@ using Content.Server.Chemistry.Components; using Content.Server.Chemistry.Containers.EntitySystems; +using Content.Server.Construction; using Content.Server.Power.Components; using Content.Server.Power.EntitySystems; using Content.Shared.Chemistry; @@ -20,6 +21,8 @@ public override void Initialize() base.Initialize(); SubscribeLocalEvent(OnPowerChanged); + SubscribeLocalEvent(OnRefreshParts); + SubscribeLocalEvent(OnUpgradeExamine); SubscribeLocalEvent(OnItemPlaced); SubscribeLocalEvent(OnItemRemoved); } @@ -61,6 +64,18 @@ private void OnPowerChanged(Entity entity, ref PowerCha } } + private void OnRefreshParts(Entity entity, ref RefreshPartsEvent args) + { + var heatRating = args.PartRatings[entity.Comp.MachinePartHeatMultiplier] - 1; + + entity.Comp.HeatPerSecond = entity.Comp.BaseHeatPerSecond * MathF.Pow(entity.Comp.PartRatingHeatMultiplier, heatRating); + } + + private void OnUpgradeExamine(Entity entity, ref UpgradeExamineEvent args) + { + args.AddPercentageUpgrade("solution-heater-upgrade-heat", entity.Comp.HeatPerSecond / entity.Comp.BaseHeatPerSecond); + } + private void OnItemPlaced(Entity entity, ref ItemPlacedEvent args) { TryTurnOn(entity); diff --git a/Content.Server/Chemistry/EntitySystems/TransformableContainerSystem.cs b/Content.Server/Chemistry/EntitySystems/TransformableContainerSystem.cs index 94a3fe2186..c375d97b8c 100644 --- a/Content.Server/Chemistry/EntitySystems/TransformableContainerSystem.cs +++ b/Content.Server/Chemistry/EntitySystems/TransformableContainerSystem.cs @@ -20,7 +20,7 @@ public override void Initialize() SubscribeLocalEvent(OnSolutionChange); } - private void OnMapInit(Entity entity, ref MapInitEvent args) + private void OnMapInit(Entity entity, ref MapInitEvent args) { var meta = MetaData(entity.Owner); if (string.IsNullOrEmpty(entity.Comp.InitialName)) diff --git a/Content.Server/Chemistry/ReagentEffectConditions/OrganType.cs b/Content.Server/Chemistry/ReagentEffectConditions/OrganType.cs index 3b7bffb9cf..4ae13b6a6e 100644 --- a/Content.Server/Chemistry/ReagentEffectConditions/OrganType.cs +++ b/Content.Server/Chemistry/ReagentEffectConditions/OrganType.cs @@ -1,4 +1,4 @@ -using Content.Server.Body.Components; +using Content.Server.Body.Components; using Content.Shared.Body.Prototypes; using Content.Shared.Chemistry.Reagent; using Robust.Shared.Prototypes; @@ -35,7 +35,7 @@ public override bool Condition(ReagentEffectArgs args) public override string GuidebookExplanation(IPrototypeManager prototype) { return Loc.GetString("reagent-effect-condition-guidebook-organ-type", - ("name", prototype.Index(Type).Name), + ("name", prototype.Index(Type).LocalizedName), ("shouldhave", ShouldHave)); } } diff --git a/Content.Server/Chemistry/ReagentEffectConditions/ReagentThreshold.cs b/Content.Server/Chemistry/ReagentEffectConditions/ReagentThreshold.cs index 50be89581f..061af2b3ae 100644 --- a/Content.Server/Chemistry/ReagentEffectConditions/ReagentThreshold.cs +++ b/Content.Server/Chemistry/ReagentEffectConditions/ReagentThreshold.cs @@ -1,4 +1,4 @@ -using Content.Shared.Chemistry.Reagent; +using Content.Shared.Chemistry.Reagent; using Content.Shared.FixedPoint; using Robust.Shared.Prototypes; @@ -43,7 +43,7 @@ public override string GuidebookExplanation(IPrototypeManager prototype) prototype.TryIndex(Reagent, out reagentProto); return Loc.GetString("reagent-effect-condition-guidebook-reagent-threshold", - ("reagent", reagentProto?.LocalizedName ?? "this reagent"), + ("reagent", reagentProto?.LocalizedName ?? Loc.GetString("reagent-effect-condition-guidebook-this-reagent")), ("max", Max == FixedPoint2.MaxValue ? (float) int.MaxValue : Max.Float()), ("min", Min.Float())); } diff --git a/Content.Server/Chemistry/ReagentEffectConditions/TotalHunger.cs b/Content.Server/Chemistry/ReagentEffectConditions/TotalHunger.cs new file mode 100644 index 0000000000..1dd12e632a --- /dev/null +++ b/Content.Server/Chemistry/ReagentEffectConditions/TotalHunger.cs @@ -0,0 +1,35 @@ +using Content.Shared.Chemistry.Reagent; +using Content.Shared.Nutrition.Components; +using Content.Shared.FixedPoint; +using Robust.Shared.Prototypes; + +namespace Content.Server.Chemistry.ReagentEffectConditions +{ + public sealed partial class Hunger : ReagentEffectCondition + { + [DataField] + public float Max = float.PositiveInfinity; + + [DataField] + public float Min = 0; + + public override bool Condition(ReagentEffectArgs args) + { + if (args.EntityManager.TryGetComponent(args.SolutionEntity, out HungerComponent? hunger)) + { + var total = hunger.CurrentHunger; + if (total > Min && total < Max) + return true; + } + + return false; + } + + public override string GuidebookExplanation(IPrototypeManager prototype) + { + return Loc.GetString("reagent-effect-condition-guidebook-total-hunger", + ("max", float.IsPositiveInfinity(Max) ? (float) int.MaxValue : Max), + ("min", Min)); + } + } +} diff --git a/Content.Server/Chemistry/ReagentEffects/AdjustReagent.cs b/Content.Server/Chemistry/ReagentEffects/AdjustReagent.cs index e70626f1d3..16d69edd9a 100644 --- a/Content.Server/Chemistry/ReagentEffects/AdjustReagent.cs +++ b/Content.Server/Chemistry/ReagentEffects/AdjustReagent.cs @@ -1,4 +1,4 @@ -using Content.Shared.Body.Prototypes; +using Content.Shared.Body.Prototypes; using Content.Shared.Chemistry.Reagent; using Content.Shared.FixedPoint; using JetBrains.Annotations; @@ -74,7 +74,7 @@ public override void Effect(ReagentEffectArgs args) return Loc.GetString("reagent-effect-guidebook-adjust-reagent-group", ("chance", Probability), ("deltasign", MathF.Sign(Amount.Float())), - ("group", groupProto.ID), + ("group", groupProto.LocalizedName), ("amount", MathF.Abs(Amount.Float()))); } diff --git a/Content.Server/Chemistry/ReagentEffects/ChemAddMoodlet.cs b/Content.Server/Chemistry/ReagentEffects/ChemAddMoodlet.cs new file mode 100644 index 0000000000..f5bb629299 --- /dev/null +++ b/Content.Server/Chemistry/ReagentEffects/ChemAddMoodlet.cs @@ -0,0 +1,34 @@ +using Content.Shared.Chemistry.Reagent; +using Content.Shared.Mood; +using JetBrains.Annotations; +using Robust.Shared.Prototypes; + +namespace Content.Server.Chemistry.ReagentEffects; + +/// +/// Adds a moodlet to an entity. +/// +[UsedImplicitly] +public sealed partial class ChemAddMoodlet : ReagentEffect +{ + protected override string? ReagentEffectGuidebookText(IPrototypeManager prototype, IEntitySystemManager entSys) + { + var protoMan = IoCManager.Resolve(); + return Loc.GetString("reagent-effect-guidebook-add-moodlet", + ("amount", protoMan.Index(MoodPrototype.Id).MoodChange), + ("timeout", protoMan.Index(MoodPrototype.Id).Timeout)); + } + + /// + /// The mood prototype to be applied to the using entity. + /// + [DataField(required: true)] + public ProtoId MoodPrototype = default!; + + public override void Effect(ReagentEffectArgs args) + { + var entityManager = IoCManager.Resolve(); + var ev = new MoodEffectEvent(MoodPrototype); + entityManager.EventBus.RaiseLocalEvent(args.SolutionEntity, ev); + } +} diff --git a/Content.Server/Chemistry/ReagentEffects/ChemCleanBoodstream.cs b/Content.Server/Chemistry/ReagentEffects/ChemCleanBloodstream.cs similarity index 100% rename from Content.Server/Chemistry/ReagentEffects/ChemCleanBoodstream.cs rename to Content.Server/Chemistry/ReagentEffects/ChemCleanBloodstream.cs diff --git a/Content.Server/Chemistry/ReagentEffects/HealthChange.cs b/Content.Server/Chemistry/ReagentEffects/HealthChange.cs index 2a6181c7f3..24880cfd37 100644 --- a/Content.Server/Chemistry/ReagentEffects/HealthChange.cs +++ b/Content.Server/Chemistry/ReagentEffects/HealthChange.cs @@ -74,7 +74,7 @@ protected override string ReagentEffectGuidebookText(IPrototypeManager prototype damages.Add( Loc.GetString("health-change-display", - ("kind", group.ID), + ("kind", group.LocalizedName), ("amount", MathF.Abs(amount.Float())), ("deltasign", sign) )); @@ -96,7 +96,7 @@ protected override string ReagentEffectGuidebookText(IPrototypeManager prototype damages.Add( Loc.GetString("health-change-display", - ("kind", kind), + ("kind", prototype.Index(kind).LocalizedName), ("amount", MathF.Abs(amount.Float())), ("deltasign", sign) )); diff --git a/Content.Server/Chemistry/ReagentEffects/MakeSentient.cs b/Content.Server/Chemistry/ReagentEffects/MakeSentient.cs index 5654f9067b..21bfe23923 100644 --- a/Content.Server/Chemistry/ReagentEffects/MakeSentient.cs +++ b/Content.Server/Chemistry/ReagentEffects/MakeSentient.cs @@ -1,7 +1,6 @@ using System.Linq; using Content.Server.Ghost.Roles.Components; using Content.Server.Language; -using Content.Server.Language.Events; using Content.Server.Speech.Components; using Content.Shared.Chemistry.Reagent; using Content.Shared.Language; @@ -41,7 +40,7 @@ public override void Effect(ReagentEffectArgs args) if (!knowledge.SpokenLanguages.Contains(fallback)) knowledge.SpokenLanguages.Add(fallback); - IoCManager.Resolve().GetEntitySystem().UpdateEntityLanguages(uid, speaker); + IoCManager.Resolve().GetEntitySystem().UpdateEntityLanguages(uid); // Stops from adding a ghost role to things like people who already have a mind if (entityManager.TryGetComponent(uid, out var mindContainer) && mindContainer.HasMind) diff --git a/Content.Server/Chemistry/ReagentEffects/ReduceRotting.cs b/Content.Server/Chemistry/ReagentEffects/ReduceRotting.cs new file mode 100644 index 0000000000..cea4f85332 --- /dev/null +++ b/Content.Server/Chemistry/ReagentEffects/ReduceRotting.cs @@ -0,0 +1,31 @@ +using Content.Shared.Chemistry.Reagent; +using JetBrains.Annotations; +using Robust.Shared.Prototypes; +using Content.Server.Atmos.Rotting; + +namespace Content.Server.Chemistry.ReagentEffects +{ + /// + /// Reduces the rotting accumulator on the patient, making them revivable. + /// + [UsedImplicitly] + public sealed partial class ReduceRotting : ReagentEffect + { + [DataField("seconds")] + public double RottingAmount = 10; + + protected override string? ReagentEffectGuidebookText(IPrototypeManager prototype, IEntitySystemManager entSys) + => Loc.GetString("reagent-effect-guidebook-reduce-rotting", + ("chance", Probability), + ("time", RottingAmount)); + public override void Effect(ReagentEffectArgs args) + { + if (args.Scale != 1f) + return; + + var rottingSys = args.EntityManager.EntitySysManager.GetEntitySystem(); + + rottingSys.ReduceAccumulator(args.SolutionEntity, TimeSpan.FromSeconds(RottingAmount)); + } + } +} diff --git a/Content.Server/Chemistry/ReagentEffects/ResetNarcolepsy.cs b/Content.Server/Chemistry/ReagentEffects/ResetNarcolepsy.cs index fa4f910891..2893505fc8 100644 --- a/Content.Server/Chemistry/ReagentEffects/ResetNarcolepsy.cs +++ b/Content.Server/Chemistry/ReagentEffects/ResetNarcolepsy.cs @@ -15,7 +15,7 @@ public sealed partial class ResetNarcolepsy : ReagentEffect /// The # of seconds the effect resets the narcolepsy timer to /// [DataField("TimerReset")] - public int TimerReset = 600; + public float TimerReset = 600; protected override string? ReagentEffectGuidebookText(IPrototypeManager prototype, IEntitySystemManager entSys) => Loc.GetString("reagent-effect-guidebook-reset-narcolepsy", ("chance", Probability)); diff --git a/Content.Server/Cloning/CloningConsoleSystem.cs b/Content.Server/Cloning/CloningConsoleSystem.cs index 524cbe80e4..c0685024aa 100644 --- a/Content.Server/Cloning/CloningConsoleSystem.cs +++ b/Content.Server/Cloning/CloningConsoleSystem.cs @@ -138,17 +138,17 @@ private void OnAnchorChanged(EntityUid uid, CloningConsoleComponent component, r public void UpdateUserInterface(EntityUid consoleUid, CloningConsoleComponent consoleComponent) { - if (!_uiSystem.TryGetUi(consoleUid, CloningConsoleUiKey.Key, out var ui)) + if (!_uiSystem.HasUi(consoleUid, CloningConsoleUiKey.Key)) return; if (!_powerReceiverSystem.IsPowered(consoleUid)) { - _uiSystem.CloseAll(ui); + _uiSystem.CloseUis(consoleUid); return; } var newState = GetUserInterfaceState(consoleComponent); - _uiSystem.SetUiState(ui, newState); + _uiSystem.SetUiState(consoleUid, CloningConsoleUiKey.Key, newState); } public void TryClone(EntityUid uid, EntityUid cloningPodUid, EntityUid scannerUid, CloningPodComponent cloningPod, MedicalScannerComponent? scannerComp = null, CloningConsoleComponent? consoleComponent = null) diff --git a/Content.Server/Cloning/CloningSystem.Utility.cs b/Content.Server/Cloning/CloningSystem.Utility.cs index 408e1cf24a..d98e105e63 100644 --- a/Content.Server/Cloning/CloningSystem.Utility.cs +++ b/Content.Server/Cloning/CloningSystem.Utility.cs @@ -21,9 +21,9 @@ using Content.Shared.Damage.ForceSay; using Content.Shared.Chat; using Content.Server.Body.Components; +using Content.Server.Language; using Content.Shared.Abilities.Psionics; using Content.Shared.Language.Components; -using Content.Shared.Language; using Content.Shared.Nutrition.Components; using Robust.Shared.Enums; @@ -68,9 +68,10 @@ private bool CheckUncloneable(EntityUid uid, EntityUid bodyToClone, CloningPodCo if (ev.Cancelled && ev.CloningFailMessage is not null) { - _chatSystem.TrySendInGameICMessage(uid, - Loc.GetString(ev.CloningFailMessage), - InGameICChatType.Speak, false); + if (clonePod.ConnectedConsole is not null) + _chatSystem.TrySendInGameICMessage(clonePod.ConnectedConsole.Value, + Loc.GetString(ev.CloningFailMessage), + InGameICChatType.Speak, false); return false; } @@ -252,7 +253,7 @@ private void MakeAHugeMess(EntityUid uid, PhysicsComponent? physics = null, Bloo ? physics.Mass : 71)); - bloodSolution.AddReagent("blood", 0.8f + bloodSolution.AddReagent("Blood", 0.8f * ((blood is not null) ? blood.BloodMaxVolume : 300)); diff --git a/Content.Server/Cloning/CloningSystem.cs b/Content.Server/Cloning/CloningSystem.cs index 7931fae477..72104bc381 100644 --- a/Content.Server/Cloning/CloningSystem.cs +++ b/Content.Server/Cloning/CloningSystem.cs @@ -1,6 +1,7 @@ using Content.Server.Atmos.EntitySystems; using Content.Server.Chat.Systems; using Content.Server.Cloning.Components; +using Content.Server.Construction; using Content.Server.DeviceLinking.Systems; using Content.Server.EUI; using Content.Server.Fluids.EntitySystems; @@ -9,6 +10,10 @@ using Content.Server.Materials; using Content.Server.Popups; using Content.Server.Power.EntitySystems; +using Content.Server.Traits.Assorted; +using Content.Shared.Atmos; +using Content.Shared.CCVar; +using Content.Shared.Chemistry.Components; using Content.Shared.Cloning; using Content.Shared.Damage; using Content.Shared.DeviceLinking.Events; @@ -90,8 +95,23 @@ public override void Initialize() SubscribeLocalEvent(OnExamined); SubscribeLocalEvent(OnEmagged); SubscribeLocalEvent(OnPowerChanged); + SubscribeLocalEvent(OnPartsRefreshed); + SubscribeLocalEvent(OnUpgradeExamine); + } + private void OnPartsRefreshed(EntityUid uid, CloningPodComponent component, RefreshPartsEvent args) + { + var materialRating = args.PartRatings[component.MachinePartMaterialUse]; + var speedRating = args.PartRatings[component.MachinePartCloningSpeed]; + + component.BiomassCostMultiplier = MathF.Pow(component.PartRatingMaterialMultiplier, materialRating - 1); + component.CloningTime = component.CloningTime * MathF.Pow(component.PartRatingSpeedMultiplier, speedRating - 1); } + private void OnUpgradeExamine(EntityUid uid, CloningPodComponent component, UpgradeExamineEvent args) + { + args.AddPercentageUpgrade("cloning-pod-component-upgrade-speed", component.CloningTime / component.CloningTime); + args.AddPercentageUpgrade("cloning-pod-component-upgrade-biomass-requirement", component.BiomassCostMultiplier); + } private void OnPortDisconnected(EntityUid uid, CloningPodComponent pod, PortDisconnectedEvent args) { pod.ConnectedConsole = null; diff --git a/Content.Server/Clothing/MagbootsSystem.cs b/Content.Server/Clothing/MagbootsSystem.cs index bc6880552f..f12558389e 100644 --- a/Content.Server/Clothing/MagbootsSystem.cs +++ b/Content.Server/Clothing/MagbootsSystem.cs @@ -1,7 +1,6 @@ using Content.Server.Atmos.Components; using Content.Shared.Alert; using Content.Shared.Clothing; -using Content.Shared.Inventory.Events; namespace Content.Server.Clothing; @@ -13,8 +12,8 @@ public override void Initialize() { base.Initialize(); - SubscribeLocalEvent(OnGotEquipped); - SubscribeLocalEvent(OnGotUnequipped); + SubscribeLocalEvent(OnGotEquipped); + SubscribeLocalEvent(OnGotUnequipped); } protected override void UpdateMagbootEffects(EntityUid parent, EntityUid uid, bool state, MagbootsComponent? component) @@ -38,19 +37,13 @@ protected override void UpdateMagbootEffects(EntityUid parent, EntityUid uid, bo } } - private void OnGotUnequipped(EntityUid uid, MagbootsComponent component, GotUnequippedEvent args) + private void OnGotUnequipped(EntityUid uid, MagbootsComponent component, ref ClothingGotUnequippedEvent args) { - if (args.Slot == "shoes") - { - UpdateMagbootEffects(args.Equipee, uid, false, component); - } + UpdateMagbootEffects(args.Wearer, uid, false, component); } - private void OnGotEquipped(EntityUid uid, MagbootsComponent component, GotEquippedEvent args) + private void OnGotEquipped(EntityUid uid, MagbootsComponent component, ref ClothingGotEquippedEvent args) { - if (args.Slot == "shoes") - { - UpdateMagbootEffects(args.Equipee, uid, true, component); - } + UpdateMagbootEffects(args.Wearer, uid, true, component); } } diff --git a/Content.Server/Clothing/Systems/ChameleonClothingSystem.cs b/Content.Server/Clothing/Systems/ChameleonClothingSystem.cs index 6fbfd9f367..e20a6c3da9 100644 --- a/Content.Server/Clothing/Systems/ChameleonClothingSystem.cs +++ b/Content.Server/Clothing/Systems/ChameleonClothingSystem.cs @@ -64,7 +64,7 @@ private void UpdateUi(EntityUid uid, ChameleonClothingComponent? component = nul return; var state = new ChameleonBoundUserInterfaceState(component.Slot, component.Default); - _uiSystem.TrySetUiState(uid, ChameleonUiKey.Key, state); + _uiSystem.SetUiState(uid, ChameleonUiKey.Key, state); } /// diff --git a/Content.Server/Cocoon/CocoonerSystem.cs b/Content.Server/Cocoon/CocoonerSystem.cs new file mode 100644 index 0000000000..a53ebbb5f5 --- /dev/null +++ b/Content.Server/Cocoon/CocoonerSystem.cs @@ -0,0 +1,132 @@ +using Content.Shared.Cocoon; +using Content.Shared.IdentityManagement; +using Content.Shared.Verbs; +using Content.Shared.DoAfter; +using Content.Shared.Stunnable; +using Content.Shared.Eye.Blinding.Systems; +using Content.Shared.Containers.ItemSlots; +using Content.Shared.Damage; +using Content.Shared.Administration.Logs; +using Content.Shared.Database; +using Content.Shared.Humanoid; +using Content.Server.Popups; +using Content.Server.DoAfter; +using Content.Server.Speech.Components; +using Robust.Shared.Containers; +using Content.Shared.Mobs.Components; + +namespace Content.Server.Cocoon +{ + public sealed class CocooningSystem : EntitySystem + { + [Dependency] private readonly PopupSystem _popupSystem = default!; + [Dependency] private readonly DoAfterSystem _doAfter = default!; + [Dependency] private readonly ItemSlotsSystem _itemSlots = default!; + [Dependency] private readonly BlindableSystem _blindableSystem = default!; + [Dependency] private readonly DamageableSystem _damageableSystem = default!; + [Dependency] private readonly ISharedAdminLogManager _adminLogger = default!; + + private const string BodySlot = "body_slot"; + + public override void Initialize() + { + base.Initialize(); + SubscribeLocalEvent>(AddCocoonVerb); + SubscribeLocalEvent(OnCocEntInserted); + SubscribeLocalEvent(OnCocEntRemoved); + SubscribeLocalEvent(OnDamageChanged); + SubscribeLocalEvent(OnCocoonDoAfter); + } + + private void AddCocoonVerb(EntityUid uid, CocoonerComponent component, GetVerbsEvent args) + { + if (!args.CanAccess || !args.CanInteract || !HasComp(args.Target)) + return; + + InnateVerb verb = new() + { + Act = () => + { + StartCocooning(uid, component, args.Target); + }, + Text = Loc.GetString("cocoon"), + Priority = 2 + }; + args.Verbs.Add(verb); + } + + private void OnCocEntInserted(EntityUid uid, CocoonComponent component, EntInsertedIntoContainerMessage args) + { + component.Victim = args.Entity; + + if (TryComp(args.Entity, out var currentAccent)) + component.OldAccent = currentAccent.Accent; + + EnsureComp(args.Entity).Accent = "mumble"; + EnsureComp(args.Entity); + + _blindableSystem.UpdateIsBlind(args.Entity); + } + + private void OnCocEntRemoved(EntityUid uid, CocoonComponent component, EntRemovedFromContainerMessage args) + { + if (TryComp(args.Entity, out var replacement)) + replacement.Accent = component.OldAccent ?? replacement.Accent; + else + RemComp(args.Entity); + + RemComp(args.Entity); + _blindableSystem.UpdateIsBlind(args.Entity); + } + + private void OnDamageChanged(EntityUid uid, CocoonComponent component, DamageChangedEvent args) + { + if (!args.DamageIncreased || args.DamageDelta == null || component.Victim == null) + return; + + var damage = args.DamageDelta * component.DamagePassthrough; + _damageableSystem.TryChangeDamage(component.Victim, damage); + } + + private void StartCocooning(EntityUid uid, CocoonerComponent component, EntityUid target) + { + _popupSystem.PopupEntity(Loc.GetString("cocoon-start-third-person", ("target", Identity.Entity(target, EntityManager)), ("spider", Identity.Entity(uid, EntityManager))), uid, + Shared.Popups.PopupType.MediumCaution); + + var delay = component.CocoonDelay; + + if (HasComp(target)) + delay *= component.CocoonKnockdownMultiplier; + + var args = new DoAfterArgs(EntityManager, uid, delay, new CocoonDoAfterEvent(), uid, target: target) + { + BreakOnUserMove = true, + BreakOnTargetMove = true, + }; + + _doAfter.TryStartDoAfter(args); + } + + private void OnCocoonDoAfter(EntityUid uid, CocoonerComponent component, CocoonDoAfterEvent args) + { + if (args.Handled || args.Cancelled || args.Args.Target == null) + return; + + var spawnProto = HasComp(args.Args.Target) ? "CocoonedHumanoid" : "CocoonSmall"; + Transform(args.Args.Target.Value).AttachToGridOrMap(); + var cocoon = Spawn(spawnProto, Transform(args.Args.Target.Value).Coordinates); + + if (!TryComp(cocoon, out var slots)) + return; + + _itemSlots.SetLock(cocoon, BodySlot, false, slots); + _itemSlots.TryInsert(cocoon, BodySlot, args.Args.Target.Value, args.Args.User); + _itemSlots.SetLock(cocoon, BodySlot, true, slots); + + var impact = (spawnProto == "CocoonedHumanoid") ? LogImpact.High : LogImpact.Medium; + + _adminLogger.Add(LogType.Action, impact, $"{ToPrettyString(args.Args.User):player} cocooned {ToPrettyString(args.Args.Target.Value):target}"); + args.Handled = true; + } + } +} diff --git a/Content.Server/Communications/CommunicationsConsoleSystem.cs b/Content.Server/Communications/CommunicationsConsoleSystem.cs index b68a952105..1cffcf5816 100644 --- a/Content.Server/Communications/CommunicationsConsoleSystem.cs +++ b/Content.Server/Communications/CommunicationsConsoleSystem.cs @@ -86,8 +86,8 @@ public override void Update(float frameTime) comp.UIUpdateAccumulator -= UIUpdateInterval; - if (_uiSystem.TryGetUi(uid, CommunicationsConsoleUiKey.Key, out var ui) && ui.SubscribedSessions.Count > 0) - UpdateCommsConsoleInterface(uid, comp, ui); + if (_uiSystem.IsUiOpen(uid, CommunicationsConsoleUiKey.Key)) + UpdateCommsConsoleInterface(uid, comp); } base.Update(frameTime); @@ -140,11 +140,8 @@ public void UpdateCommsConsoleInterface() /// /// Updates the UI for a particular comms console. /// - public void UpdateCommsConsoleInterface(EntityUid uid, CommunicationsConsoleComponent comp, PlayerBoundUserInterface? ui = null) + public void UpdateCommsConsoleInterface(EntityUid uid, CommunicationsConsoleComponent comp) { - if (ui == null && !_uiSystem.TryGetUi(uid, CommunicationsConsoleUiKey.Key, out ui)) - return; - var stationUid = _stationSystem.GetOwningStation(uid); List? levels = null; string currentLevel = default!; @@ -172,7 +169,7 @@ public void UpdateCommsConsoleInterface(EntityUid uid, CommunicationsConsoleComp } } - _uiSystem.SetUiState(ui, new CommunicationsConsoleInterfaceState( + _uiSystem.SetUiState(uid, CommunicationsConsoleUiKey.Key, new CommunicationsConsoleInterfaceState( CanAnnounce(comp), CanCallOrRecall(comp), levels, @@ -223,12 +220,12 @@ private bool CanCallOrRecall(CommunicationsConsoleComponent comp) private void OnSelectAlertLevelMessage(EntityUid uid, CommunicationsConsoleComponent comp, CommunicationsConsoleSelectAlertLevelMessage message) { - if (message.Session.AttachedEntity is not { Valid: true } mob) + if (message.Actor is not { Valid: true } mob) return; if (!CanUse(mob, uid)) { - _popupSystem.PopupCursor(Loc.GetString("comms-console-permission-denied"), message.Session, PopupType.Medium); + _popupSystem.PopupCursor(Loc.GetString("comms-console-permission-denied"), message.Actor, PopupType.Medium); return; } @@ -245,7 +242,7 @@ private void OnAnnounceMessage(EntityUid uid, CommunicationsConsoleComponent com var maxLength = _cfg.GetCVar(CCVars.ChatMaxAnnouncementLength); var msg = SharedChatSystem.SanitizeAnnouncement(message.Message, maxLength); var author = Loc.GetString("comms-console-announcement-unknown-sender"); - if (message.Session.AttachedEntity is { Valid: true } mob) + if (message.Actor is { Valid: true } mob) { if (!CanAnnounce(comp)) { @@ -254,7 +251,7 @@ private void OnAnnounceMessage(EntityUid uid, CommunicationsConsoleComponent com if (!CanUse(mob, uid)) { - _popupSystem.PopupEntity(Loc.GetString("comms-console-permission-denied"), uid, message.Session); + _popupSystem.PopupEntity(Loc.GetString("comms-console-permission-denied"), uid, message.Actor); return; } @@ -267,7 +264,7 @@ private void OnAnnounceMessage(EntityUid uid, CommunicationsConsoleComponent com comp.AnnouncementCooldownRemaining = comp.Delay; UpdateCommsConsoleInterface(uid, comp); - var ev = new CommunicationConsoleAnnouncementEvent(uid, comp, msg, message.Session.AttachedEntity); + var ev = new CommunicationConsoleAnnouncementEvent(uid, comp, msg, message.Actor); RaiseLocalEvent(ref ev); // allow admemes with vv @@ -279,17 +276,16 @@ private void OnAnnounceMessage(EntityUid uid, CommunicationsConsoleComponent com { _announcer.SendAnnouncement("announce", Filter.Broadcast(), msg, title, comp.Color); - if (message.Session.AttachedEntity != null) - _adminLogger.Add(LogType.Chat, LogImpact.Low, $"{ToPrettyString(message.Session.AttachedEntity.Value):player} has sent the following global announcement: {msg}"); - + _adminLogger.Add(LogType.Chat, LogImpact.Low, $"{ToPrettyString(message.Actor):player} has sent the following global announcement: {msg}"); return; } + if (TryComp(_stationSystem.GetOwningStation(uid), out var stationData)) _announcer.SendAnnouncement("announce", _stationSystem.GetInStation(stationData), msg, title, comp.Color); - if (message.Session.AttachedEntity != null) - _adminLogger.Add(LogType.Chat, LogImpact.Low, $"{ToPrettyString(message.Session.AttachedEntity.Value):player} has sent the following station announcement: {msg}"); + _adminLogger.Add(LogType.Chat, LogImpact.Low, $"{ToPrettyString(message.Actor):player} has sent the following station announcement: {msg}"); + } private void OnBroadcastMessage(EntityUid uid, CommunicationsConsoleComponent component, CommunicationsConsoleBroadcastMessage message) @@ -304,8 +300,7 @@ private void OnBroadcastMessage(EntityUid uid, CommunicationsConsoleComponent co _deviceNetworkSystem.QueuePacket(uid, null, payload, net.TransmitFrequency); - if (message.Session.AttachedEntity != null) - _adminLogger.Add(LogType.DeviceNetwork, LogImpact.Low, $"{ToPrettyString(message.Session.AttachedEntity.Value):player} has sent the following broadcast: {message.Message:msg}"); + _adminLogger.Add(LogType.DeviceNetwork, LogImpact.Low, $"{ToPrettyString(message.Actor):player} has sent the following broadcast: {message.Message:msg}"); } private void OnCallShuttleMessage(EntityUid uid, CommunicationsConsoleComponent comp, CommunicationsConsoleCallEmergencyShuttleMessage message) @@ -313,12 +308,11 @@ private void OnCallShuttleMessage(EntityUid uid, CommunicationsConsoleComponent if (!CanCallOrRecall(comp)) return; - if (message.Session.AttachedEntity is not { Valid: true } mob) - return; + var mob = message.Actor; if (!CanUse(mob, uid)) { - _popupSystem.PopupEntity(Loc.GetString("comms-console-permission-denied"), uid, message.Session); + _popupSystem.PopupEntity(Loc.GetString("comms-console-permission-denied"), uid, message.Actor); return; } @@ -326,7 +320,7 @@ private void OnCallShuttleMessage(EntityUid uid, CommunicationsConsoleComponent RaiseLocalEvent(ref ev); if (ev.Cancelled) { - _popupSystem.PopupEntity(ev.Reason ?? Loc.GetString("comms-console-shuttle-unavailable"), uid, message.Session); + _popupSystem.PopupEntity(ev.Reason ?? Loc.GetString("comms-console-shuttle-unavailable"), uid, message.Actor); return; } @@ -339,17 +333,14 @@ private void OnRecallShuttleMessage(EntityUid uid, CommunicationsConsoleComponen if (!CanCallOrRecall(comp)) return; - if (message.Session.AttachedEntity is not { Valid: true } mob) - return; - - if (!CanUse(mob, uid)) + if (!CanUse(message.Actor, uid)) { - _popupSystem.PopupEntity(Loc.GetString("comms-console-permission-denied"), uid, message.Session); + _popupSystem.PopupEntity(Loc.GetString("comms-console-permission-denied"), uid, message.Actor); return; } _roundEndSystem.CancelRoundEndCountdown(uid); - _adminLogger.Add(LogType.Action, LogImpact.Extreme, $"{ToPrettyString(mob):player} has recalled the shuttle."); + _adminLogger.Add(LogType.Action, LogImpact.Extreme, $"{ToPrettyString(message.Actor):player} has recalled the shuttle."); } } diff --git a/Content.Server/Configurable/ConfigurationSystem.cs b/Content.Server/Configurable/ConfigurationSystem.cs index eb31149eca..2683bf4e09 100644 --- a/Content.Server/Configurable/ConfigurationSystem.cs +++ b/Content.Server/Configurable/ConfigurationSystem.cs @@ -30,10 +30,7 @@ private void OnInteractUsing(EntityUid uid, ConfigurationComponent component, In if (!TryComp(args.Used, out ToolComponent? tool) || !tool.Qualities.Contains(component.QualityNeeded)) return; - if (!TryComp(args.User, out ActorComponent? actor)) - return; - - args.Handled = _uiSystem.TryOpen(uid, ConfigurationUiKey.Key, actor.PlayerSession); + args.Handled = _uiSystem.TryOpenUi(uid, ConfigurationUiKey.Key, args.User); } private void OnStartup(EntityUid uid, ConfigurationComponent component, ComponentStartup args) @@ -43,8 +40,8 @@ private void OnStartup(EntityUid uid, ConfigurationComponent component, Componen private void UpdateUi(EntityUid uid, ConfigurationComponent component) { - if (_uiSystem.TryGetUi(uid, ConfigurationUiKey.Key, out var ui)) - _uiSystem.SetUiState(ui, new ConfigurationBoundUserInterfaceState(component.Config)); + if (_uiSystem.HasUi(uid, ConfigurationUiKey.Key)) + _uiSystem.SetUiState(uid, ConfigurationUiKey.Key, new ConfigurationBoundUserInterfaceState(component.Config)); } private void OnUpdate(EntityUid uid, ConfigurationComponent component, ConfigurationUpdatedMessage args) diff --git a/Content.Server/Construction/Components/WelderRefinableComponent.cs b/Content.Server/Construction/Components/WelderRefinableComponent.cs index dc3074f195..31b029e241 100644 --- a/Content.Server/Construction/Components/WelderRefinableComponent.cs +++ b/Content.Server/Construction/Components/WelderRefinableComponent.cs @@ -2,22 +2,24 @@ using Content.Shared.Storage; using Robust.Shared.Prototypes; -namespace Content.Server.Construction.Components +namespace Content.Server.Construction.Components; + +/// +/// Used for something that can be refined by welder. +/// For example, glass shard can be refined to glass sheet. +/// +[RegisterComponent] +public sealed partial class WelderRefinableComponent : Component { - /// - /// Used for something that can be refined by welder. - /// For example, glass shard can be refined to glass sheet. - /// - [RegisterComponent] - public sealed partial class WelderRefinableComponent : Component - { - [DataField] - public List RefineResult = new(); + [DataField] + public HashSet? RefineResult; + + [DataField] + public float RefineTime = 2f; - [DataField] - public float RefineTime = 2f; + [DataField] + public float RefineFuel; - [DataField] - public ProtoId QualityNeeded = "Welding"; - } + [DataField] + public ProtoId QualityNeeded = "Welding"; } diff --git a/Content.Server/Construction/Conditions/Locked.cs b/Content.Server/Construction/Conditions/Locked.cs index fde704b161..0b8c9118dc 100644 --- a/Content.Server/Construction/Conditions/Locked.cs +++ b/Content.Server/Construction/Conditions/Locked.cs @@ -15,7 +15,7 @@ public sealed partial class Locked : IGraphCondition public bool Condition(EntityUid uid, IEntityManager entityManager) { if (!entityManager.TryGetComponent(uid, out LockComponent? lockcomp)) - return false; + return true; return lockcomp.Locked == IsLocked; } @@ -25,7 +25,8 @@ public bool DoExamine(ExaminedEvent args) var entMan = IoCManager.Resolve(); var entity = args.Examined; - if (!entMan.TryGetComponent(entity, out LockComponent? lockcomp)) return false; + if (!entMan.TryGetComponent(entity, out LockComponent? lockcomp)) + return true; switch (IsLocked) { diff --git a/Content.Server/Construction/ConstructionSystem.Guided.cs b/Content.Server/Construction/ConstructionSystem.Guided.cs index fe7f9152c0..e096bc02c3 100644 --- a/Content.Server/Construction/ConstructionSystem.Guided.cs +++ b/Content.Server/Construction/ConstructionSystem.Guided.cs @@ -41,6 +41,18 @@ private void AddDeconstructVerb(EntityUid uid, ConstructionComponent component, component.Node == component.DeconstructionNode) return; + if (!_prototypeManager.TryIndex(component.Graph, out ConstructionGraphPrototype? graph)) + return; + + if (component.DeconstructionNode == null) + return; + + if (GetCurrentNode(uid, component) is not {} currentNode) + return; + + if (graph.Path(currentNode.Name, component.DeconstructionNode) is not {} path || path.Length == 0) + return; + Verb verb = new(); //verb.Category = VerbCategories.Construction; //TODO VERBS add more construction verbs? Until then, removing construction category diff --git a/Content.Server/Construction/ConstructionSystem.Interactions.cs b/Content.Server/Construction/ConstructionSystem.Interactions.cs index 946aaa0d3e..5361b65b1f 100644 --- a/Content.Server/Construction/ConstructionSystem.Interactions.cs +++ b/Content.Server/Construction/ConstructionSystem.Interactions.cs @@ -11,10 +11,8 @@ using Content.Shared.Interaction; using Content.Shared.Prying.Systems; using Content.Shared.Radio.EntitySystems; -using Content.Shared.Tools.Components; using Content.Shared.Tools.Systems; using Robust.Shared.Containers; -using Robust.Shared.Map; using Robust.Shared.Utility; #if EXCEPTION_TOLERANCE // ReSharper disable once RedundantUsingDirective @@ -370,7 +368,8 @@ private HandleResult HandleInteraction(EntityUid uid, object ev, ConstructionGra TimeSpan.FromSeconds(toolInsertStep.DoAfter), new [] { toolInsertStep.Tool }, new ConstructionInteractDoAfterEvent(EntityManager, interactUsing), - out var doAfter); + out var doAfter, + toolInsertStep.Fuel); return result && doAfter != null ? HandleResult.DoAfter : HandleResult.False; } diff --git a/Content.Server/Construction/ConstructionSystem.Machine.cs b/Content.Server/Construction/ConstructionSystem.Machine.cs index 2e670dbe40..65b0b70476 100644 --- a/Content.Server/Construction/ConstructionSystem.Machine.cs +++ b/Content.Server/Construction/ConstructionSystem.Machine.cs @@ -5,6 +5,7 @@ using Content.Shared.Construction.Prototypes; using Content.Shared.Verbs; using Robust.Shared.Containers; +using Robust.Shared.Map.Components; using Robust.Shared.Utility; namespace Content.Server.Construction; @@ -143,7 +144,7 @@ private void CreateBoardAndStockParts(EntityUid uid, MachineComponent component) var p = EntityManager.SpawnEntity(partProto.StockPartPrototype, xform.Coordinates); if (!_container.Insert(p, partContainer)) - throw new Exception($"Couldn't insert machine part of type {part} to machine with prototype {partProto.StockPartPrototype}!"); + throw new Exception($"Couldn't insert machine part of type {part} to machine with prototype {partProto.StockPartPrototype ?? "N/A"}!"); } } @@ -183,7 +184,7 @@ public sealed class RefreshPartsEvent : EntityEventArgs { public IReadOnlyList Parts = new List(); - public Dictionary PartRatings = new(); + public Dictionary PartRatings = new Dictionary(); } public sealed class UpgradeExamineEvent : EntityEventArgs diff --git a/Content.Server/Construction/PartExchangerSystem.cs b/Content.Server/Construction/PartExchangerSystem.cs index ee5edcbd0a..f364d1b547 100644 --- a/Content.Server/Construction/PartExchangerSystem.cs +++ b/Content.Server/Construction/PartExchangerSystem.cs @@ -10,6 +10,7 @@ using Robust.Shared.Containers; using Robust.Shared.Utility; using Content.Shared.Wires; +using Robust.Shared.Audio; using Robust.Shared.Audio.Systems; using Robust.Shared.Collections; @@ -42,7 +43,7 @@ private void OnDoAfter(EntityUid uid, PartExchangerComponent component, DoAfterE if (args.Handled || args.Args.Target == null) return; - if (!TryComp(uid, out var storage)) + if (!TryComp(uid, out var storage) || storage.Container == null) return; //the parts are stored in here var machinePartQuery = GetEntityQuery(); diff --git a/Content.Server/Construction/RefiningSystem.cs b/Content.Server/Construction/RefiningSystem.cs index d4df8b0916..2ca32baf90 100644 --- a/Content.Server/Construction/RefiningSystem.cs +++ b/Content.Server/Construction/RefiningSystem.cs @@ -2,43 +2,50 @@ using Content.Server.Stack; using Content.Shared.Construction; using Content.Shared.Interaction; +using Content.Shared.Stacks; using Content.Shared.Storage; using SharedToolSystem = Content.Shared.Tools.Systems.SharedToolSystem; -namespace Content.Server.Construction +namespace Content.Server.Construction; + +public sealed class RefiningSystem : EntitySystem { - public sealed class RefiningSystem : EntitySystem + [Dependency] private readonly SharedToolSystem _toolSystem = default!; + [Dependency] private readonly StackSystem _stackSystem = default!; + + public override void Initialize() { - [Dependency] private readonly SharedToolSystem _toolSystem = default!; - public override void Initialize() - { - base.Initialize(); - SubscribeLocalEvent(OnInteractUsing); - SubscribeLocalEvent(OnDoAfter); - } + base.Initialize(); + SubscribeLocalEvent(OnInteractUsing); + SubscribeLocalEvent(OnDoAfter); + } - private void OnInteractUsing(EntityUid uid, WelderRefinableComponent component, InteractUsingEvent args) - { - if (args.Handled) - return; + private void OnInteractUsing(EntityUid uid, WelderRefinableComponent component, InteractUsingEvent args) + { + if (args.Handled) + return; - args.Handled = _toolSystem.UseTool(args.Used, args.User, uid, component.RefineTime, component.QualityNeeded, new WelderRefineDoAfterEvent()); - } + args.Handled = _toolSystem.UseTool(args.Used, args.User, uid, component.RefineTime, component.QualityNeeded, new WelderRefineDoAfterEvent(), fuel: component.RefineFuel); + } + + private void OnDoAfter(EntityUid uid, WelderRefinableComponent component, WelderRefineDoAfterEvent args) + { + if (args.Cancelled) + return; + + // Get last owner coordinates and delete it + var resultPosition = Transform(uid).Coordinates; + EntityManager.DeleteEntity(uid); - private void OnDoAfter(EntityUid uid, WelderRefinableComponent component, WelderRefineDoAfterEvent args) + // Spawn each result after refine + foreach (var ent in EntitySpawnCollection.GetSpawns(component.RefineResult ?? new())) { - if (args.Cancelled) - return; - - // get last owner coordinates and delete it - var resultPosition = Transform(uid).Coordinates; - EntityManager.DeleteEntity(uid); - - // spawn each result after refine - foreach (var ent in EntitySpawnCollection.GetSpawns(component.RefineResult)) - { - Spawn(ent, resultPosition); - } + var droppedEnt = Spawn(ent, resultPosition); + + // TODO: If something has a stack... Just use a prototype with a single thing in the stack. + // This is not a good way to do it. + if (TryComp(droppedEnt, out var stack)) + _stackSystem.SetCount(droppedEnt, 1, stack); } } } diff --git a/Content.Server/Containers/ThrowInsertContainerComponent.cs b/Content.Server/Containers/ThrowInsertContainerComponent.cs new file mode 100644 index 0000000000..7eb5f4657d --- /dev/null +++ b/Content.Server/Containers/ThrowInsertContainerComponent.cs @@ -0,0 +1,35 @@ +using Robust.Shared.Audio; + +namespace Content.Server.Containers; + +/// +/// Allows objects to fall inside the Container when thrown +/// +[RegisterComponent] +[Access(typeof(ThrowInsertContainerSystem))] +public sealed partial class ThrowInsertContainerComponent : Component +{ + [DataField(required: true)] + public string ContainerId = string.Empty; + + /// + /// Throw chance of hitting into the container + /// + [DataField] + public float Probability = 0.75f; + + /// + /// Sound played when an object is throw into the container. + /// + [DataField] + public SoundSpecifier? InsertSound = new SoundPathSpecifier("/Audio/Effects/trashbag1.ogg"); + + /// + /// Sound played when an item is thrown and misses the container. + /// + [DataField] + public SoundSpecifier? MissSound = new SoundPathSpecifier("/Audio/Effects/thudswoosh.ogg"); + + [DataField] + public LocId MissLocString = "container-thrown-missed"; +} diff --git a/Content.Server/Containers/ThrowInsertContainerSystem.cs b/Content.Server/Containers/ThrowInsertContainerSystem.cs new file mode 100644 index 0000000000..12bb602811 --- /dev/null +++ b/Content.Server/Containers/ThrowInsertContainerSystem.cs @@ -0,0 +1,50 @@ +using Content.Server.Administration.Logs; +using Content.Shared.Database; +using Content.Shared.Popups; +using Content.Shared.Throwing; +using Robust.Shared.Audio.Systems; +using Robust.Shared.Containers; +using Robust.Shared.Random; + +namespace Content.Server.Containers; + +public sealed class ThrowInsertContainerSystem : EntitySystem +{ + [Dependency] private readonly IAdminLogManager _adminLogger = default!; + [Dependency] private readonly SharedAudioSystem _audio = default!; + [Dependency] private readonly SharedContainerSystem _containerSystem = default!; + [Dependency] private readonly SharedPopupSystem _popup = default!; + [Dependency] private readonly IRobustRandom _random = default!; + + public override void Initialize() + { + base.Initialize(); + + SubscribeLocalEvent(OnThrowCollide); + } + + private void OnThrowCollide(Entity ent, ref ThrowHitByEvent args) + { + var container = _containerSystem.GetContainer(ent, ent.Comp.ContainerId); + + if (!_containerSystem.CanInsert(args.Thrown, container)) + return; + + + var rand = _random.NextFloat(); + if (_random.Prob(ent.Comp.Probability)) + { + _audio.PlayPvs(ent.Comp.MissSound, ent); + _popup.PopupEntity(Loc.GetString(ent.Comp.MissLocString), ent); + return; + } + + if (!_containerSystem.Insert(args.Thrown, container)) + throw new InvalidOperationException("Container insertion failed but CanInsert returned true"); + + _audio.PlayPvs(ent.Comp.InsertSound, ent); + + if (args.Component.Thrower != null) + _adminLogger.Add(LogType.Landed, LogImpact.Low, $"{ToPrettyString(args.Thrown)} thrown by {ToPrettyString(args.Component.Thrower.Value):player} landed in {ToPrettyString(ent)}"); + } +} diff --git a/Content.Server/Content.Server.csproj b/Content.Server/Content.Server.csproj index 8782454eac..70e404fdef 100644 --- a/Content.Server/Content.Server.csproj +++ b/Content.Server/Content.Server.csproj @@ -28,7 +28,6 @@ - diff --git a/Content.Server/Crayon/CrayonSystem.cs b/Content.Server/Crayon/CrayonSystem.cs index 32bb96e9e2..07a13d8a34 100644 --- a/Content.Server/Crayon/CrayonSystem.cs +++ b/Content.Server/Crayon/CrayonSystem.cs @@ -90,19 +90,14 @@ private void OnCrayonUse(EntityUid uid, CrayonComponent component, UseInHandEven if (args.Handled) return; - if (!TryComp(args.User, out var actor) || - !_uiSystem.TryGetUi(uid, SharedCrayonComponent.CrayonUiKey.Key, out var ui)) + if (!_uiSystem.HasUi(uid, SharedCrayonComponent.CrayonUiKey.Key)) { return; } - _uiSystem.ToggleUi(ui, actor.PlayerSession); - if (ui.SubscribedSessions.Contains(actor.PlayerSession)) - { - // Tell the user interface the selected stuff - _uiSystem.SetUiState(ui, new CrayonBoundUserInterfaceState(component.SelectedState, component.SelectableColor, component.Color)); - } + _uiSystem.TryToggleUi(uid, SharedCrayonComponent.CrayonUiKey.Key, args.User); + _uiSystem.SetUiState(uid, SharedCrayonComponent.CrayonUiKey.Key, new CrayonBoundUserInterfaceState(component.SelectedState, component.SelectableColor, component.Color)); args.Handled = true; } @@ -140,8 +135,8 @@ private void OnCrayonInit(EntityUid uid, CrayonComponent component, ComponentIni private void OnCrayonDropped(EntityUid uid, CrayonComponent component, DroppedEvent args) { - if (TryComp(args.User, out var actor)) - _uiSystem.TryClose(uid, SharedCrayonComponent.CrayonUiKey.Key, actor.PlayerSession); + // TODO: Use the existing event. + _uiSystem.CloseUi(uid, SharedCrayonComponent.CrayonUiKey.Key, args.User); } private void UseUpCrayon(EntityUid uid, EntityUid user) diff --git a/Content.Server/CrewManifest/CrewManifestSystem.cs b/Content.Server/CrewManifest/CrewManifestSystem.cs index 8b4cbac5c1..e742456015 100644 --- a/Content.Server/CrewManifest/CrewManifestSystem.cs +++ b/Content.Server/CrewManifest/CrewManifestSystem.cs @@ -100,12 +100,12 @@ private void OnBoundUiClose(EntityUid uid, CrewManifestViewerComponent component return; var owningStation = _stationSystem.GetOwningStation(uid); - if (owningStation == null || ev.Session is not { } session) + if (owningStation == null || !TryComp(ev.Actor, out ActorComponent? actorComp)) { return; } - CloseEui(owningStation.Value, session, uid); + CloseEui(owningStation.Value, actorComp.PlayerSession, uid); } /// @@ -136,12 +136,12 @@ private void OpenEuiFromBui(EntityUid uid, CrewManifestViewerComponent component { Log.Error( "{User} tried to open crew manifest from wrong UI: {Key}. Correct owned is {ExpectedKey}", - msg.Session, msg.UiKey, component.OwnerKey); + msg.Actor, msg.UiKey, component.OwnerKey); return; } var owningStation = _stationSystem.GetOwningStation(uid); - if (owningStation == null || msg.Session is not { } session) + if (owningStation == null || !TryComp(msg.Actor, out ActorComponent? actorComp)) { return; } @@ -151,7 +151,7 @@ private void OpenEuiFromBui(EntityUid uid, CrewManifestViewerComponent component return; } - OpenEui(owningStation.Value, session, uid); + OpenEui(owningStation.Value, actorComp.PlayerSession, uid); } /// diff --git a/Content.Server/CriminalRecords/Systems/CriminalRecordsConsoleSystem.cs b/Content.Server/CriminalRecords/Systems/CriminalRecordsConsoleSystem.cs index 4290726cc4..4389c68c04 100644 --- a/Content.Server/CriminalRecords/Systems/CriminalRecordsConsoleSystem.cs +++ b/Content.Server/CriminalRecords/Systems/CriminalRecordsConsoleSystem.cs @@ -77,7 +77,7 @@ private void OnChangeStatus(Entity ent, ref Cri msg.Status == SecurityStatus.Suspected != (msg.Reason != null)) return; - if (!CheckSelected(ent, msg.Session, out var mob, out var key)) + if (!CheckSelected(ent, msg.Actor, out var mob, out var key)) return; if (!_stationRecords.TryGetRecord(key.Value, out var record) || record.Status == msg.Status) @@ -150,7 +150,7 @@ private void OnChangeStatus(Entity ent, ref Cri private void OnAddHistory(Entity ent, ref CriminalRecordAddHistory msg) { - if (!CheckSelected(ent, msg.Session, out _, out var key)) + if (!CheckSelected(ent, msg.Actor, out _, out var key)) return; var line = msg.Line.Trim(); @@ -167,7 +167,7 @@ private void OnAddHistory(Entity ent, ref Crimi private void OnDeleteHistory(Entity ent, ref CriminalRecordDeleteHistory msg) { - if (!CheckSelected(ent, msg.Session, out _, out var key)) + if (!CheckSelected(ent, msg.Actor, out _, out var key)) return; if (!_criminalRecords.TryDeleteHistory(key.Value, msg.Index)) @@ -185,7 +185,7 @@ private void UpdateUserInterface(Entity ent) if (!TryComp(owningStation, out var stationRecords)) { - _ui.TrySetUiState(uid, CriminalRecordsConsoleKey.Key, new CriminalRecordsConsoleState()); + _ui.SetUiState(uid, CriminalRecordsConsoleKey.Key, new CriminalRecordsConsoleState()); return; } @@ -201,24 +201,22 @@ private void UpdateUserInterface(Entity ent) state.SelectedKey = id; } - _ui.TrySetUiState(uid, CriminalRecordsConsoleKey.Key, state); + _ui.SetUiState(uid, CriminalRecordsConsoleKey.Key, state); } /// /// Boilerplate that most actions use, if they require that a record be selected. /// Obviously shouldn't be used for selecting records. /// - private bool CheckSelected(Entity ent, ICommonSession session, + private bool CheckSelected(Entity ent, EntityUid user, [NotNullWhen(true)] out EntityUid? mob, [NotNullWhen(true)] out StationRecordKey? key) { key = null; mob = null; - if (session.AttachedEntity is not { } user) - return false; if (!_access.IsAllowed(user, ent)) { - _popup.PopupEntity(Loc.GetString("criminal-records-permission-denied"), ent, session); + _popup.PopupEntity(Loc.GetString("criminal-records-permission-denied"), ent, user); return false; } @@ -253,6 +251,8 @@ public void CheckNewIdentity(EntityUid uid) { var name = Identity.Name(uid, EntityManager); var xform = Transform(uid); + + // TODO use the entity's station? Not the station of the map that it happens to currently be on? var station = _station.GetStationInMap(xform.MapID); if (station != null && _stationRecords.GetRecordByName(station.Value, name) is { } id) diff --git a/Content.Server/CriminalRecords/Systems/CriminalRecordsHackerSystem.cs b/Content.Server/CriminalRecords/Systems/CriminalRecordsHackerSystem.cs new file mode 100644 index 0000000000..91285a1ca7 --- /dev/null +++ b/Content.Server/CriminalRecords/Systems/CriminalRecordsHackerSystem.cs @@ -0,0 +1,62 @@ +using Content.Server.Chat.Systems; +using Content.Server.Station.Systems; +using Content.Server.StationRecords.Systems; +using Content.Shared.CriminalRecords; +using Content.Shared.CriminalRecords.Components; +using Content.Shared.CriminalRecords.Systems; +using Content.Shared.Dataset; +using Content.Shared.Security; +using Robust.Shared.Prototypes; +using Robust.Shared.Random; + +namespace Content.Server.CriminalRecords.Systems; + +public sealed class CriminalRecordsHackerSystem : SharedCriminalRecordsHackerSystem +{ + [Dependency] private readonly ChatSystem _chat = default!; + [Dependency] private readonly IPrototypeManager _proto = default!; + [Dependency] private readonly IRobustRandom _random = default!; + [Dependency] private readonly StationSystem _station = default!; + [Dependency] private readonly StationRecordsSystem _records = default!; + + public override void Initialize() + { + base.Initialize(); + + SubscribeLocalEvent(OnDoAfter); + } + + private void OnDoAfter(Entity ent, ref CriminalRecordsHackDoAfterEvent args) + { + if (args.Cancelled || args.Handled || args.Target == null) + return; + + if (_station.GetOwningStation(ent) is not {} station) + return; + + var reasons = _proto.Index(ent.Comp.Reasons); + foreach (var (key, record) in _records.GetRecordsOfType(station)) + { + var reason = _random.Pick(reasons.Values); + record.Status = SecurityStatus.Wanted; + record.Reason = reason; + // no radio message since spam + // no history since lazy and its easy to remove anyway + // main damage with this is existing arrest warrants are lost and to anger beepsky + } + + _chat.DispatchGlobalAnnouncement(Loc.GetString(ent.Comp.Announcement), playSound: true, colorOverride: Color.Red); + + // once is enough + RemComp(ent); + + var ev = new CriminalRecordsHackedEvent(ent, args.Target.Value); + RaiseLocalEvent(args.User, ref ev); + } +} + +/// +/// Raised on the user after hacking a criminal records console. +/// +[ByRefEvent] +public record struct CriminalRecordsHackedEvent(EntityUid User, EntityUid Target); diff --git a/Content.Server/Damage/Systems/DamageOnToolInteractSystem.cs b/Content.Server/Damage/Systems/DamageOnToolInteractSystem.cs index 264ec4a8ec..42676c1891 100644 --- a/Content.Server/Damage/Systems/DamageOnToolInteractSystem.cs +++ b/Content.Server/Damage/Systems/DamageOnToolInteractSystem.cs @@ -1,7 +1,5 @@ using Content.Server.Administration.Logs; using Content.Server.Damage.Components; -using Content.Server.Tools.Components; -using Content.Shared.Item; using Content.Shared.Damage; using Content.Shared.Database; using Content.Shared.Interaction; diff --git a/Content.Server/Database/ServerDbBase.cs b/Content.Server/Database/ServerDbBase.cs index af9220ee6d..3ac755facf 100644 --- a/Content.Server/Database/ServerDbBase.cs +++ b/Content.Server/Database/ServerDbBase.cs @@ -31,9 +31,11 @@ public ServerDbBase(ISawmill opsLog) } #region Preferences - public async Task GetPlayerPreferencesAsync(NetUserId userId) + public async Task GetPlayerPreferencesAsync( + NetUserId userId, + CancellationToken cancel = default) { - await using var db = await GetDb(); + await using var db = await GetDb(cancel); var prefs = await db.DbContext .Preference @@ -42,7 +44,7 @@ public ServerDbBase(ISawmill opsLog) .Include(p => p.Profiles).ThenInclude(h => h.Traits) .Include(p => p.Profiles).ThenInclude(h => h.Loadouts) .AsSingleQuery() - .SingleOrDefaultAsync(p => p.UserId == userId.UserId); + .SingleOrDefaultAsync(p => p.UserId == userId.UserId, cancel); if (prefs is null) return null; @@ -216,13 +218,13 @@ private static HumanoidCharacterProfile ConvertProfiles(Profile profile) profile.CharacterName, profile.FlavorText, profile.Species, + profile.CustomSpecieName, profile.Height, profile.Width, profile.Age, sex, gender, - new HumanoidCharacterAppearance - ( + new HumanoidCharacterAppearance( profile.HairName, Color.FromHex(profile.HairColor), profile.FacialHairName, @@ -231,14 +233,14 @@ private static HumanoidCharacterProfile ConvertProfiles(Profile profile) Color.FromHex(profile.SkinColor), markings ), - clothing, - backpack, spawnPriority, jobs, + clothing, + backpack, (PreferenceUnavailableMode) profile.PreferenceUnavailable, - antags.ToList(), - traits.ToList(), - loadouts.ToList() + antags.ToHashSet(), + traits.ToHashSet(), + loadouts.ToHashSet() ); } @@ -256,6 +258,7 @@ private static Profile ConvertProfiles(HumanoidCharacterProfile humanoid, int sl profile.CharacterName = humanoid.Name; profile.FlavorText = humanoid.FlavorText; profile.Species = humanoid.Species; + profile.CustomSpecieName = humanoid.Customspeciename; profile.Age = humanoid.Age; profile.Sex = humanoid.Sex.ToString(); profile.Gender = humanoid.Gender.ToString(); @@ -480,13 +483,13 @@ public async Task EditServerRoleBan(int id, string reason, NoteSeverity severity #endregion #region Playtime - public async Task> GetPlayTimes(Guid player) + public async Task> GetPlayTimes(Guid player, CancellationToken cancel) { - await using var db = await GetDb(); + await using var db = await GetDb(cancel); return await db.DbContext.PlayTime .Where(p => p.PlayerId == player) - .ToListAsync(); + .ToListAsync(cancel); } public async Task UpdatePlayTimes(IReadOnlyCollection updates) @@ -638,7 +641,7 @@ public async Task AddServerBanHitsAsync(int connection, IEnumerable GetAdminDataForAsync(NetUserId userId, CancellationToken cancel) { - await using var db = await GetDb(); + await using var db = await GetDb(cancel); return await db.DbContext.Admin .Include(p => p.Flags) @@ -653,7 +656,7 @@ public async Task AddServerBanHitsAsync(int connection, IEnumerable GetAdminRankDataForAsync(int id, CancellationToken cancel = default) { - await using var db = await GetDb(); + await using var db = await GetDb(cancel); return await db.DbContext.AdminRank .Include(r => r.Flags) @@ -662,7 +665,7 @@ public async Task AddServerBanHitsAsync(int connection, IEnumerable a.UserId == userId.UserId, cancel); db.DbContext.Admin.Remove(admin); @@ -672,7 +675,7 @@ public async Task RemoveAdminAsync(NetUserId userId, CancellationToken cancel) public async Task AddAdminAsync(Admin admin, CancellationToken cancel) { - await using var db = await GetDb(); + await using var db = await GetDb(cancel); db.DbContext.Admin.Add(admin); @@ -681,7 +684,7 @@ public async Task AddAdminAsync(Admin admin, CancellationToken cancel) public async Task UpdateAdminAsync(Admin admin, CancellationToken cancel) { - await using var db = await GetDb(); + await using var db = await GetDb(cancel); var existing = await db.DbContext.Admin.Include(a => a.Flags).SingleAsync(a => a.UserId == admin.UserId, cancel); existing.Flags = admin.Flags; @@ -693,7 +696,7 @@ public async Task UpdateAdminAsync(Admin admin, CancellationToken cancel) public async Task RemoveAdminRankAsync(int rankId, CancellationToken cancel) { - await using var db = await GetDb(); + await using var db = await GetDb(cancel); var admin = await db.DbContext.AdminRank.SingleAsync(a => a.Id == rankId, cancel); db.DbContext.AdminRank.Remove(admin); @@ -703,7 +706,7 @@ public async Task RemoveAdminRankAsync(int rankId, CancellationToken cancel) public async Task AddAdminRankAsync(AdminRank rank, CancellationToken cancel) { - await using var db = await GetDb(); + await using var db = await GetDb(cancel); db.DbContext.AdminRank.Add(rank); @@ -776,7 +779,7 @@ INSERT INTO player_round (players_id, rounds_id) VALUES ({players[player]}, {id} public async Task UpdateAdminRankAsync(AdminRank rank, CancellationToken cancel) { - await using var db = await GetDb(); + await using var db = await GetDb(cancel); var existing = await db.DbContext.AdminRank .Include(r => r.Flags) @@ -1559,7 +1562,9 @@ public async Task HasPendingModelChanges() return db.DbContext.Database.HasPendingModelChanges(); } - protected abstract Task GetDb([CallerMemberName] string? name = null); + protected abstract Task GetDb( + CancellationToken cancel = default, + [CallerMemberName] string? name = null); protected void LogDbOp(string? name) { diff --git a/Content.Server/Database/ServerDbManager.cs b/Content.Server/Database/ServerDbManager.cs index 554dd30743..01d1526727 100644 --- a/Content.Server/Database/ServerDbManager.cs +++ b/Content.Server/Database/ServerDbManager.cs @@ -29,7 +29,11 @@ public interface IServerDbManager void Shutdown(); #region Preferences - Task InitPrefsAsync(NetUserId userId, ICharacterProfile defaultProfile); + Task InitPrefsAsync( + NetUserId userId, + ICharacterProfile defaultProfile, + CancellationToken cancel); + Task SaveSelectedCharacterIndexAsync(NetUserId userId, int index); Task SaveCharacterSlotAsync(NetUserId userId, ICharacterProfile? profile, int slot); @@ -38,7 +42,7 @@ public interface IServerDbManager // Single method for two operations for transaction. Task DeleteSlotAndSetSelectedIndex(NetUserId userId, int deleteSlot, int newSlot); - Task GetPlayerPreferencesAsync(NetUserId userId); + Task GetPlayerPreferencesAsync(NetUserId userId, CancellationToken cancel); #endregion #region User Ids @@ -157,8 +161,9 @@ public Task EditServerRoleBan( /// Look up a player's role timers. /// /// The player to get the role timer information from. + /// /// All role timers belonging to the player. - Task> GetPlayTimes(Guid player); + Task> GetPlayTimes(Guid player, CancellationToken cancel = default); /// /// Update play time information in bulk. @@ -346,7 +351,10 @@ public void Shutdown() _sqliteInMemoryConnection?.Dispose(); } - public Task InitPrefsAsync(NetUserId userId, ICharacterProfile defaultProfile) + public Task InitPrefsAsync( + NetUserId userId, + ICharacterProfile defaultProfile, + CancellationToken cancel) { DbWriteOpsMetric.Inc(); return RunDbCommand(() => _db.InitPrefsAsync(userId, defaultProfile)); @@ -376,10 +384,10 @@ public Task SaveAdminOOCColorAsync(NetUserId userId, Color color) return RunDbCommand(() => _db.SaveAdminOOCColorAsync(userId, color)); } - public Task GetPlayerPreferencesAsync(NetUserId userId) + public Task GetPlayerPreferencesAsync(NetUserId userId, CancellationToken cancel) { DbReadOpsMetric.Inc(); - return RunDbCommand(() => _db.GetPlayerPreferencesAsync(userId)); + return RunDbCommand(() => _db.GetPlayerPreferencesAsync(userId, cancel)); } public Task AssignUserIdAsync(string name, NetUserId userId) @@ -487,10 +495,10 @@ public Task EditServerRoleBan(int id, string reason, NoteSeverity severity, Date #region Playtime - public Task> GetPlayTimes(Guid player) + public Task> GetPlayTimes(Guid player, CancellationToken cancel) { DbReadOpsMetric.Inc(); - return RunDbCommand(() => _db.GetPlayTimes(player)); + return RunDbCommand(() => _db.GetPlayTimes(player, cancel)); } public Task UpdatePlayTimes(IReadOnlyCollection updates) diff --git a/Content.Server/Database/ServerDbPostgres.cs b/Content.Server/Database/ServerDbPostgres.cs index c81e735868..fd4699fff4 100644 --- a/Content.Server/Database/ServerDbPostgres.cs +++ b/Content.Server/Database/ServerDbPostgres.cs @@ -527,22 +527,26 @@ protected override DateTime NormalizeDatabaseTime(DateTime time) return time; } - private async Task GetDbImpl([CallerMemberName] string? name = null) + private async Task GetDbImpl( + CancellationToken cancel = default, + [CallerMemberName] string? name = null) { LogDbOp(name); await _dbReadyTask; - await _prefsSemaphore.WaitAsync(); + await _prefsSemaphore.WaitAsync(cancel); if (_msLag > 0) - await Task.Delay(_msLag); + await Task.Delay(_msLag, cancel); return new DbGuardImpl(this, new PostgresServerDbContext(_options)); } - protected override async Task GetDb([CallerMemberName] string? name = null) + protected override async Task GetDb( + CancellationToken cancel = default, + [CallerMemberName] string? name = null) { - return await GetDbImpl(name); + return await GetDbImpl(cancel, name); } private sealed class DbGuardImpl : DbGuard diff --git a/Content.Server/Database/ServerDbSqlite.cs b/Content.Server/Database/ServerDbSqlite.cs index 88ecf82002..ffec90bb43 100644 --- a/Content.Server/Database/ServerDbSqlite.cs +++ b/Content.Server/Database/ServerDbSqlite.cs @@ -439,7 +439,7 @@ public override async Task AddConnectionLogAsync( public override async Task<((Admin, string? lastUserName)[] admins, AdminRank[])> GetAllAdminAndRanksAsync( CancellationToken cancel) { - await using var db = await GetDbImpl(); + await using var db = await GetDbImpl(cancel); var admins = await db.SqliteDbContext.Admin .Include(a => a.Flags) @@ -514,23 +514,27 @@ protected override DateTime NormalizeDatabaseTime(DateTime time) return DateTime.SpecifyKind(time, DateTimeKind.Utc); } - private async Task GetDbImpl([CallerMemberName] string? name = null) + private async Task GetDbImpl( + CancellationToken cancel = default, + [CallerMemberName] string? name = null) { LogDbOp(name); await _dbReadyTask; if (_msDelay > 0) - await Task.Delay(_msDelay); + await Task.Delay(_msDelay, cancel); - await _prefsSemaphore.WaitAsync(); + await _prefsSemaphore.WaitAsync(cancel); var dbContext = new SqliteServerDbContext(_options()); return new DbGuardImpl(this, dbContext); } - protected override async Task GetDb([CallerMemberName] string? name = null) + protected override async Task GetDb( + CancellationToken cancel = default, + [CallerMemberName] string? name = null) { - return await GetDbImpl(name).ConfigureAwait(false); + return await GetDbImpl(cancel, name).ConfigureAwait(false); } private sealed class DbGuardImpl : DbGuard @@ -569,9 +573,9 @@ public ConcurrencySemaphore(int maxCount, bool synchronous) _semaphore = new SemaphoreSlim(maxCount, maxCount); } - public Task WaitAsync() + public Task WaitAsync(CancellationToken cancel = default) { - var task = _semaphore.WaitAsync(); + var task = _semaphore.WaitAsync(cancel); if (_synchronous) { diff --git a/Content.Server/Database/UserDbDataManager.cs b/Content.Server/Database/UserDbDataManager.cs index f8b1611fd5..c58c594dba 100644 --- a/Content.Server/Database/UserDbDataManager.cs +++ b/Content.Server/Database/UserDbDataManager.cs @@ -2,6 +2,7 @@ using System.Threading.Tasks; using Content.Server.Players.PlayTimeTracking; using Content.Server.Preferences.Managers; +using Robust.Server.Player; using Robust.Shared.Network; using Robust.Shared.Player; using Robust.Shared.Utility; @@ -16,17 +17,22 @@ namespace Content.Server.Database; /// Actual loading code is handled by separate managers such as . /// This manager is simply a centralized "is loading done" controller for other code to rely on. /// -public sealed class UserDbDataManager +public sealed class UserDbDataManager : IPostInjectInit { [Dependency] private readonly IServerPreferencesManager _prefs = default!; + [Dependency] private readonly ILogManager _logManager = default!; [Dependency] private readonly PlayTimeTrackingManager _playTimeTracking = default!; private readonly Dictionary _users = new(); + private ISawmill _sawmill = default!; + // TODO: Ideally connected/disconnected would be subscribed to IPlayerManager directly, // but this runs into ordering issues with game ticker. public void ClientConnected(ICommonSession session) { + _sawmill.Verbose($"Initiating load for user {session}"); + DebugTools.Assert(!_users.ContainsKey(session.UserId), "We should not have any cached data on client connect."); var cts = new CancellationTokenSource(); @@ -51,11 +57,52 @@ public void ClientDisconnected(ICommonSession session) private async Task Load(ICommonSession session, CancellationToken cancel) { - await Task.WhenAll( - _prefs.LoadData(session, cancel), - _playTimeTracking.LoadData(session, cancel)); + // The task returned by this function is only ever observed by callers of WaitLoadComplete, + // which doesn't even happen currently if the lobby is enabled. + // As such, this task must NOT throw a non-cancellation error! + try + { + await Task.WhenAll( + _prefs.LoadData(session, cancel), + _playTimeTracking.LoadData(session, cancel)); + + cancel.ThrowIfCancellationRequested(); + _prefs.FinishLoad(session); + + _sawmill.Verbose($"Load complete for user {session}"); + } + catch (OperationCanceledException) + { + _sawmill.Debug($"Load cancelled for user {session}"); + + // We can rethrow the cancellation. + // This will make the task returned by WaitLoadComplete() also return a cancellation. + throw; + } + catch (Exception e) + { + // Must catch all exceptions here, otherwise task may go unobserved. + _sawmill.Error($"Load of user data failed: {e}"); + + // Kick them from server, since something is hosed. Let them try again I guess. + session.Channel.Disconnect("Loading of server user data failed, this is a bug."); + + // We throw a OperationCanceledException so users of WaitLoadComplete() always see cancellation here. + throw new OperationCanceledException("Load of user data cancelled due to unknown error"); + } } + /// + /// Wait for all on-database data for a user to be loaded. + /// + /// + /// The task returned by this function may end up in a cancelled state + /// (throwing ) if the user disconnects while loading or an error occurs. + /// + /// + /// + /// A task that completes when all on-database data for a user has finished loading. + /// public Task WaitLoadComplete(ICommonSession session) { return _users[session.UserId].Task; @@ -63,7 +110,7 @@ public Task WaitLoadComplete(ICommonSession session) public bool IsLoadComplete(ICommonSession session) { - return GetLoadTask(session).IsCompleted; + return GetLoadTask(session).IsCompletedSuccessfully; } public Task GetLoadTask(ICommonSession session) @@ -71,5 +118,10 @@ public Task GetLoadTask(ICommonSession session) return _users[session.UserId].Task; } + void IPostInjectInit.PostInject() + { + _sawmill = _logManager.GetSawmill("userdb"); + } + private sealed record UserData(CancellationTokenSource Cancel, Task Task); } diff --git a/Content.Server/DeltaV/Implants/SubdermalBionicSyrinxImplantSystem.cs b/Content.Server/DeltaV/Implants/SubdermalBionicSyrinxImplantSystem.cs index 96adfc2ab2..3be460aec6 100644 --- a/Content.Server/DeltaV/Implants/SubdermalBionicSyrinxImplantSystem.cs +++ b/Content.Server/DeltaV/Implants/SubdermalBionicSyrinxImplantSystem.cs @@ -64,17 +64,14 @@ private void OnChangeName(EntityUid uid, SyrinxVoiceMaskComponent component, Voi { if (message.Name.Length > HumanoidCharacterProfile.MaxNameLength || message.Name.Length <= 0) { - _popupSystem.PopupEntity(Loc.GetString("voice-mask-popup-failure"), uid, message.Session, PopupType.SmallCaution); + _popupSystem.PopupEntity(Loc.GetString("voice-mask-popup-failure"), uid, message.Actor, PopupType.SmallCaution); return; } component.VoiceName = message.Name; - if (message.Session.AttachedEntity != null) - _adminLogger.Add(LogType.Action, LogImpact.Medium, $"{ToPrettyString(message.Session.AttachedEntity.Value):player} set voice of {ToPrettyString(uid):mask}: {component.VoiceName}"); - else - _adminLogger.Add(LogType.Action, LogImpact.Medium, $"Voice of {ToPrettyString(uid):mask} set: {component.VoiceName}"); + _adminLogger.Add(LogType.Action, LogImpact.Medium, $"{ToPrettyString(message.Actor):player} set voice of {ToPrettyString(uid):mask}: {component.VoiceName}"); - _popupSystem.PopupEntity(Loc.GetString("voice-mask-popup-success"), uid, message.Session); + _popupSystem.PopupEntity(Loc.GetString("voice-mask-popup-success"), uid, message.Actor); TrySetLastKnownName(uid, message.Name); UpdateUI(uid, component); } @@ -99,8 +96,8 @@ private void UpdateUI(EntityUid owner, SyrinxVoiceMaskComponent? component = nul if (!Resolve(owner, ref component, logMissing: false)) return; - if (_uiSystem.TryGetUi(owner, VoiceMaskUIKey.Key, out var bui)) - _uiSystem.SetUiState(bui, new VoiceMaskBuiState(component.VoiceName, null)); + if (_uiSystem.TryGetOpenUi(owner, VoiceMaskUIKey.Key, out _)) + _uiSystem.SetUiState(new(owner, null), VoiceMaskUIKey.Key, new VoiceMaskBuiState(component.VoiceName, null)); } /// diff --git a/Content.Server/DeltaV/ParadoxAnomaly/Systems/ParadoxAnomalySystem.cs b/Content.Server/DeltaV/ParadoxAnomaly/Systems/ParadoxAnomalySystem.cs index 477a3c5659..142669f84a 100644 --- a/Content.Server/DeltaV/ParadoxAnomaly/Systems/ParadoxAnomalySystem.cs +++ b/Content.Server/DeltaV/ParadoxAnomaly/Systems/ParadoxAnomalySystem.cs @@ -6,7 +6,6 @@ using Content.Server.Psionics; using Content.Server.Spawners.Components; using Content.Server.Station.Systems; -using Content.Server.Terminator.Systems; using Content.Shared.Abilities.Psionics; using Content.Shared.Humanoid; using Content.Shared.Humanoid.Prototypes; @@ -38,7 +37,6 @@ public sealed class ParadoxAnomalySystem : EntitySystem [Dependency] private readonly SharedRoleSystem _role = default!; [Dependency] private readonly StationSystem _station = default!; [Dependency] private readonly StationSpawningSystem _stationSpawning = default!; - [Dependency] private readonly TerminatorSystem _terminator = default!; public override void Initialize() { @@ -123,7 +121,7 @@ private bool TrySpawnParadoxAnomaly(string rule, [NotNullWhen(true)] out EntityU var spawned = Spawn(species.Prototype, destination); // Set the kill target to the chosen player - _terminator.SetTarget(spawned, mindId); + // _terminator.SetTarget(spawned, mindId); _genericAntag.MakeAntag(spawned, rule); ////////////////////////// diff --git a/Content.Server/DeltaV/StationEvents/Events/GlimmerMobSpawnRule.cs b/Content.Server/DeltaV/StationEvents/Events/GlimmerMobSpawnRule.cs index 6849c508a1..c9bf659fd9 100644 --- a/Content.Server/DeltaV/StationEvents/Events/GlimmerMobSpawnRule.cs +++ b/Content.Server/DeltaV/StationEvents/Events/GlimmerMobSpawnRule.cs @@ -1,7 +1,7 @@ using System.Linq; using Content.Server.GameTicking.Components; using Robust.Shared.Random; -using Content.Server.GameTicking.Rules.Components; +using Content.Server.GameTicking; using Content.Server.NPC.Components; using Content.Server.Psionics.Glimmer; using Content.Server.StationEvents.Components; @@ -14,15 +14,44 @@ public sealed class GlimmerMobRule : StationEventSystem { [Dependency] private readonly IRobustRandom _robustRandom = default!; [Dependency] private readonly GlimmerSystem _glimmerSystem = default!; + [Dependency] private readonly GameTicker _gameTicker = default!; protected override void Started(EntityUid uid, GlimmerMobRuleComponent component, GameRuleComponent gameRule, GameRuleStartedEvent args) { base.Started(uid, component, gameRule, args); - var glimmerSources = EntityQuery().ToList(); - var normalSpawnLocations = EntityQuery().ToList(); - var hiddenSpawnLocations = EntityQuery().ToList(); + var station = _gameTicker.GetSpawnableStations(); + if (station is null) + return; + + var glimmerSources = new List<(GlimmerSourceComponent, TransformComponent)>(); + foreach (var source in EntityQuery().ToList()) + { + if (!station.Contains(source.Item2.Owner)) + continue; + + glimmerSources.Add(source); + } + + + var normalSpawnLocations = new List<(VentCritterSpawnLocationComponent, TransformComponent)>(); + foreach (var source in EntityQuery().ToList()) + { + if (!station.Contains(source.Item2.Owner)) + continue; + + normalSpawnLocations.Add(source); + } + + var hiddenSpawnLocations = new List<(MidRoundAntagSpawnLocationComponent, TransformComponent)>(); + foreach (var source in EntityQuery().ToList()) + { + if (!station.Contains(source.Item2.Owner)) + continue; + + hiddenSpawnLocations.Add(source); + } var baseCount = Math.Max(1, EntityQuery().Count() / 10); int multiplier = Math.Max(1, (int) _glimmerSystem.GetGlimmerTier() - 2); @@ -52,6 +81,8 @@ protected override void Started(EntityUid uid, GlimmerMobRuleComponent component i++; continue; } + + return; } } } diff --git a/Content.Server/Destructible/Thresholds/Behaviors/BurnBodyBehavior.cs b/Content.Server/Destructible/Thresholds/Behaviors/BurnBodyBehavior.cs index 28c4b2ef16..f0499dc6a2 100644 --- a/Content.Server/Destructible/Thresholds/Behaviors/BurnBodyBehavior.cs +++ b/Content.Server/Destructible/Thresholds/Behaviors/BurnBodyBehavior.cs @@ -17,12 +17,12 @@ 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)) - return; - - foreach (var item in inventorySystem.GetHandOrInventoryEntities(bodyId)) + if (system.EntityManager.TryGetComponent(bodyId, out var comp)) { - transformSystem.DropNextTo(item, bodyId); + foreach (var item in inventorySystem.GetHandOrInventoryEntities(bodyId)) + { + transformSystem.DropNextTo(item, bodyId); + } } sharedPopupSystem.PopupCoordinates(Loc.GetString("bodyburn-text-others", ("name", bodyId)), transformSystem.GetMoverCoordinates(bodyId), PopupType.LargeCaution); diff --git a/Content.Server/Destructible/Thresholds/Behaviors/PopupBehavior.cs b/Content.Server/Destructible/Thresholds/Behaviors/PopupBehavior.cs index 59589c19aa..1d7ce24f60 100644 --- a/Content.Server/Destructible/Thresholds/Behaviors/PopupBehavior.cs +++ b/Content.Server/Destructible/Thresholds/Behaviors/PopupBehavior.cs @@ -1,6 +1,6 @@ using Content.Shared.Popups; -namespace Content.Server.Destructible.Thresholds.Behaviors; +namespace Content.Server.Destructible.Thresholds.Behaviors; /// /// Shows a popup for everyone. diff --git a/Content.Server/Destructible/Thresholds/Behaviors/SpawnGasBehavior.cs b/Content.Server/Destructible/Thresholds/Behaviors/SpawnGasBehavior.cs index fec93a87f4..81fb07ecfc 100644 --- a/Content.Server/Destructible/Thresholds/Behaviors/SpawnGasBehavior.cs +++ b/Content.Server/Destructible/Thresholds/Behaviors/SpawnGasBehavior.cs @@ -1,4 +1,5 @@ using Content.Server.Atmos; +using Content.Shared.Atmos; using JetBrains.Annotations; namespace Content.Server.Destructible.Thresholds.Behaviors; diff --git a/Content.Server/DeviceLinking/Components/PowerSensorComponent.cs b/Content.Server/DeviceLinking/Components/PowerSensorComponent.cs index d9599546ae..b67a2fcd95 100644 --- a/Content.Server/DeviceLinking/Components/PowerSensorComponent.cs +++ b/Content.Server/DeviceLinking/Components/PowerSensorComponent.cs @@ -1,5 +1,6 @@ using Content.Server.DeviceLinking.Systems; using Content.Shared.DeviceLinking; +using Content.Shared.Power.Generator; using Content.Shared.Tools; using Robust.Shared.Audio; using Robust.Shared.Prototypes; diff --git a/Content.Server/DeviceLinking/Systems/SignalTimerSystem.cs b/Content.Server/DeviceLinking/Systems/SignalTimerSystem.cs index 0e214ee865..14e0c75d96 100644 --- a/Content.Server/DeviceLinking/Systems/SignalTimerSystem.cs +++ b/Content.Server/DeviceLinking/Systems/SignalTimerSystem.cs @@ -48,9 +48,9 @@ private void OnAfterActivatableUIOpen(EntityUid uid, SignalTimerComponent compon { var time = TryComp(uid, out var active) ? active.TriggerTime : TimeSpan.Zero; - if (_ui.TryGetUi(uid, SignalTimerUiKey.Key, out var bui)) + if (_ui.HasUi(uid, SignalTimerUiKey.Key)) { - _ui.SetUiState(bui, new SignalTimerBoundUserInterfaceState(component.Label, + _ui.SetUiState(uid, SignalTimerUiKey.Key, new SignalTimerBoundUserInterfaceState(component.Label, TimeSpan.FromSeconds(component.Delay).Minutes.ToString("D2"), TimeSpan.FromSeconds(component.Delay).Seconds.ToString("D2"), component.CanEditLabel, @@ -70,9 +70,9 @@ public void Trigger(EntityUid uid, SignalTimerComponent signalTimer) _audio.PlayPvs(signalTimer.DoneSound, uid); _signalSystem.InvokePort(uid, signalTimer.TriggerPort); - if (_ui.TryGetUi(uid, SignalTimerUiKey.Key, out var bui)) + if (_ui.HasUi(uid, SignalTimerUiKey.Key)) { - _ui.SetUiState(bui, new SignalTimerBoundUserInterfaceState(signalTimer.Label, + _ui.SetUiState(uid, SignalTimerUiKey.Key, new SignalTimerBoundUserInterfaceState(signalTimer.Label, TimeSpan.FromSeconds(signalTimer.Delay).Minutes.ToString("D2"), TimeSpan.FromSeconds(signalTimer.Delay).Seconds.ToString("D2"), signalTimer.CanEditLabel, @@ -117,10 +117,7 @@ private void UpdateTimer() /// The entity that is interacted with. private bool IsMessageValid(EntityUid uid, BoundUserInterfaceMessage message) { - if (message.Session.AttachedEntity is not { Valid: true } mob) - return false; - - if (!_accessReader.IsAllowed(mob, uid)) + if (!_accessReader.IsAllowed(message.Actor, uid)) return false; return true; diff --git a/Content.Server/DeviceNetwork/Systems/NetworkConfiguratorSystem.cs b/Content.Server/DeviceNetwork/Systems/NetworkConfiguratorSystem.cs index 9a038f1c78..dc1bf499df 100644 --- a/Content.Server/DeviceNetwork/Systems/NetworkConfiguratorSystem.cs +++ b/Content.Server/DeviceNetwork/Systems/NetworkConfiguratorSystem.cs @@ -62,7 +62,6 @@ public override void Initialize() SubscribeLocalEvent(OnClearLinks); SubscribeLocalEvent(OnToggleLinks); SubscribeLocalEvent(OnConfigButtonPressed); - SubscribeLocalEvent(OnUiOpenAttempt); SubscribeLocalEvent(OnComponentRemoved); } @@ -89,7 +88,7 @@ public override void Update(float frameTime) continue; //The network configurator is a handheld device. There can only ever be an ui session open for the player holding the device. - _uiSystem.TryCloseAll(uid, NetworkConfiguratorUiKey.Configure); + _uiSystem.CloseUi(uid, NetworkConfiguratorUiKey.Configure); } } @@ -215,7 +214,7 @@ private bool AccessCheck(EntityUid target, EntityUid? user, NetworkConfiguratorC private void OnComponentRemoved(EntityUid uid, DeviceListComponent component, ComponentRemove args) { - _uiSystem.TryCloseAll(uid, NetworkConfiguratorUiKey.Configure); + _uiSystem.CloseUi(uid, NetworkConfiguratorUiKey.Configure); } /// @@ -433,7 +432,7 @@ private void OpenDeviceLinkUi(EntityUid configuratorUid, EntityUid? targetUid, E return; - _uiSystem.TryOpen(configuratorUid, NetworkConfiguratorUiKey.Link, actor.PlayerSession); + _uiSystem.OpenUi(configuratorUid, NetworkConfiguratorUiKey.Link, actor.PlayerSession); configurator.DeviceLinkTarget = targetUid; @@ -464,7 +463,7 @@ private void UpdateLinkUiState(EntityUid configuratorUid, EntityUid sourceUid, E var sinkAddress = Resolve(sinkUid, ref sinkNetworkComponent, false) ? sinkNetworkComponent.Address : ""; var state = new DeviceLinkUserInterfaceState(sources, sinks, links, sourceAddress, sinkAddress, defaults); - _uiSystem.TrySetUiState(configuratorUid, NetworkConfiguratorUiKey.Link, state); + _uiSystem.SetUiState(configuratorUid, NetworkConfiguratorUiKey.Link, state); } /// @@ -478,7 +477,7 @@ private void OpenDeviceListUi(EntityUid configuratorUid, EntityUid? targetUid, E if (Delay(configurator)) return; - if (!targetUid.HasValue || !TryComp(userUid, out ActorComponent? actor) || !AccessCheck(targetUid.Value, userUid, configurator)) + if (!targetUid.HasValue || !AccessCheck(targetUid.Value, userUid, configurator)) return; if (!TryComp(targetUid, out DeviceListComponent? list)) @@ -488,14 +487,13 @@ private void OpenDeviceListUi(EntityUid configuratorUid, EntityUid? targetUid, E configurator.ActiveDeviceList = targetUid; Dirty(configuratorUid, configurator); - if (!_uiSystem.TryGetUi(configuratorUid, NetworkConfiguratorUiKey.Configure, out var bui)) - return; - - if (_uiSystem.OpenUi(bui, actor.PlayerSession)) - _uiSystem.SetUiState(bui, new DeviceListUserInterfaceState( + if (_uiSystem.TryOpenUi(configuratorUid, NetworkConfiguratorUiKey.Configure, userUid)) + { + _uiSystem.SetUiState(configuratorUid, NetworkConfiguratorUiKey.Configure, new DeviceListUserInterfaceState( _deviceListSystem.GetDeviceList(configurator.ActiveDeviceList.Value) .Select(v => (v.Key, MetaData(v.Value).EntityName)).ToHashSet() )); + } } /// @@ -523,8 +521,7 @@ private void UpdateListUiState(EntityUid uid, NetworkConfiguratorComponent compo component.Devices.Remove(invalidDevice); } - if (_uiSystem.TryGetUi(uid, NetworkConfiguratorUiKey.List, out var bui)) - _uiSystem.SetUiState(bui, new NetworkConfiguratorUserInterfaceState(devices)); + _uiSystem.SetUiState(uid, NetworkConfiguratorUiKey.List, new NetworkConfiguratorUserInterfaceState(devices)); } /// @@ -565,10 +562,10 @@ public void OnDeviceListShutdown(Entity conf, Ent /// private void OnRemoveDevice(EntityUid uid, NetworkConfiguratorComponent component, NetworkConfiguratorRemoveDeviceMessage args) { - if (component.Devices.TryGetValue(args.Address, out var removedDevice) && args.Session.AttachedEntity != null) + if (component.Devices.TryGetValue(args.Address, out var removedDevice)) { _adminLogger.Add(LogType.DeviceLinking, LogImpact.Low, - $"{ToPrettyString(args.Session.AttachedEntity.Value):actor} removed buffered device {ToPrettyString(removedDevice):subject} from {ToPrettyString(uid):tool}"); + $"{ToPrettyString(args.Actor):actor} removed buffered device {ToPrettyString(removedDevice):subject} from {ToPrettyString(uid):tool}"); } component.Devices.Remove(args.Address); @@ -583,10 +580,8 @@ private void OnRemoveDevice(EntityUid uid, NetworkConfiguratorComponent componen /// private void OnClearDevice(EntityUid uid, NetworkConfiguratorComponent component, NetworkConfiguratorClearDevicesMessage args) { - if (args.Session.AttachedEntity != null) - _adminLogger.Add(LogType.DeviceLinking, LogImpact.Low, - $"{ToPrettyString(args.Session.AttachedEntity.Value):actor} cleared buffered devices from {ToPrettyString(uid):tool}"); - + _adminLogger.Add(LogType.DeviceLinking, LogImpact.Low, + $"{ToPrettyString(args.Actor):actor} cleared buffered devices from {ToPrettyString(uid):tool}"); ClearDevices(uid, component); UpdateListUiState(uid, component); @@ -609,9 +604,8 @@ private void OnClearLinks(EntityUid uid, NetworkConfiguratorComponent configurat if (!configurator.ActiveDeviceLink.HasValue || !configurator.DeviceLinkTarget.HasValue) return; - if (args.Session.AttachedEntity != null) - _adminLogger.Add(LogType.DeviceLinking, LogImpact.Low, - $"{ToPrettyString(args.Session.AttachedEntity.Value):actor} cleared links between {ToPrettyString(configurator.ActiveDeviceLink.Value):subject} and {ToPrettyString(configurator.DeviceLinkTarget.Value):subject2} with {ToPrettyString(uid):tool}"); + _adminLogger.Add(LogType.DeviceLinking, LogImpact.Low, + $"{ToPrettyString(args.Actor):actor} cleared links between {ToPrettyString(configurator.ActiveDeviceLink.Value):subject} and {ToPrettyString(configurator.DeviceLinkTarget.Value):subject2} with {ToPrettyString(uid):tool}"); if (HasComp(configurator.ActiveDeviceLink) && HasComp(configurator.DeviceLinkTarget)) { @@ -649,7 +643,7 @@ private void OnToggleLinks(EntityUid uid, NetworkConfiguratorComponent configura if (TryComp(configurator.ActiveDeviceLink, out DeviceLinkSourceComponent? activeSource) && TryComp(configurator.DeviceLinkTarget, out DeviceLinkSinkComponent? targetSink)) { _deviceLinkSystem.ToggleLink( - args.Session.AttachedEntity, + args.Actor, configurator.ActiveDeviceLink.Value, configurator.DeviceLinkTarget.Value, args.Source, args.Sink, @@ -660,7 +654,7 @@ private void OnToggleLinks(EntityUid uid, NetworkConfiguratorComponent configura else if (TryComp(configurator.DeviceLinkTarget, out DeviceLinkSourceComponent? targetSource) && TryComp(configurator.ActiveDeviceLink, out DeviceLinkSinkComponent? activeSink)) { _deviceLinkSystem.ToggleLink( - args.Session.AttachedEntity, + args.Actor, configurator.DeviceLinkTarget.Value, configurator.ActiveDeviceLink.Value, args.Source, args.Sink, @@ -687,7 +681,7 @@ private void OnSaveLinks(EntityUid uid, NetworkConfiguratorComponent configurato if (TryComp(configurator.ActiveDeviceLink, out DeviceLinkSourceComponent? activeSource) && TryComp(configurator.DeviceLinkTarget, out DeviceLinkSinkComponent? targetSink)) { _deviceLinkSystem.SaveLinks( - args.Session.AttachedEntity, + args.Actor, configurator.ActiveDeviceLink.Value, configurator.DeviceLinkTarget.Value, args.Links, @@ -705,7 +699,7 @@ private void OnSaveLinks(EntityUid uid, NetworkConfiguratorComponent configurato else if (TryComp(configurator.DeviceLinkTarget, out DeviceLinkSourceComponent? targetSource) && TryComp(configurator.ActiveDeviceLink, out DeviceLinkSinkComponent? activeSink)) { _deviceLinkSystem.SaveLinks( - args.Session.AttachedEntity, + args.Actor, configurator.DeviceLinkTarget.Value, configurator.ActiveDeviceLink.Value, args.Links, @@ -735,29 +729,25 @@ private void OnConfigButtonPressed(EntityUid uid, NetworkConfiguratorComponent c switch (args.ButtonKey) { case NetworkConfiguratorButtonKey.Set: - if (args.Session.AttachedEntity != null) - _adminLogger.Add(LogType.DeviceLinking, LogImpact.Low, - $"{ToPrettyString(args.Session.AttachedEntity.Value):actor} set device links to {ToPrettyString(component.ActiveDeviceList.Value):subject} with {ToPrettyString(uid):tool}"); + _adminLogger.Add(LogType.DeviceLinking, LogImpact.Low, + $"{ToPrettyString(args.Actor):actor} set device links to {ToPrettyString(component.ActiveDeviceList.Value):subject} with {ToPrettyString(uid):tool}"); result = _deviceListSystem.UpdateDeviceList(component.ActiveDeviceList.Value, new HashSet(component.Devices.Values)); break; case NetworkConfiguratorButtonKey.Add: - if (args.Session.AttachedEntity != null) - _adminLogger.Add(LogType.DeviceLinking, LogImpact.Low, - $"{ToPrettyString(args.Session.AttachedEntity.Value):actor} added device links to {ToPrettyString(component.ActiveDeviceList.Value):subject} with {ToPrettyString(uid):tool}"); + _adminLogger.Add(LogType.DeviceLinking, LogImpact.Low, + $"{ToPrettyString(args.Actor):actor} added device links to {ToPrettyString(component.ActiveDeviceList.Value):subject} with {ToPrettyString(uid):tool}"); result = _deviceListSystem.UpdateDeviceList(component.ActiveDeviceList.Value, new HashSet(component.Devices.Values), true); break; case NetworkConfiguratorButtonKey.Clear: - if (args.Session.AttachedEntity != null) - _adminLogger.Add(LogType.DeviceLinking, LogImpact.Low, - $"{ToPrettyString(args.Session.AttachedEntity.Value):actor} cleared device links from {ToPrettyString(component.ActiveDeviceList.Value):subject} with {ToPrettyString(uid):tool}"); + _adminLogger.Add(LogType.DeviceLinking, LogImpact.Low, + $"{ToPrettyString(args.Actor):actor} cleared device links from {ToPrettyString(component.ActiveDeviceList.Value):subject} with {ToPrettyString(uid):tool}"); result = _deviceListSystem.UpdateDeviceList(component.ActiveDeviceList.Value, new HashSet()); break; case NetworkConfiguratorButtonKey.Copy: - if (args.Session.AttachedEntity != null) - _adminLogger.Add(LogType.DeviceLinking, LogImpact.Low, - $"{ToPrettyString(args.Session.AttachedEntity.Value):actor} copied devices from {ToPrettyString(component.ActiveDeviceList.Value):subject} to {ToPrettyString(uid):tool}"); + _adminLogger.Add(LogType.DeviceLinking, LogImpact.Low, + $"{ToPrettyString(args.Actor):actor} copied devices from {ToPrettyString(component.ActiveDeviceList.Value):subject} to {ToPrettyString(uid):tool}"); ClearDevices(uid, component); @@ -783,8 +773,8 @@ private void OnConfigButtonPressed(EntityUid uid, NetworkConfiguratorComponent c _ => "error" }; - _popupSystem.PopupCursor(Loc.GetString(resultText), args.Session, PopupType.Medium); - _uiSystem.TrySetUiState( + _popupSystem.PopupCursor(Loc.GetString(resultText), args.Actor, PopupType.Medium); + _uiSystem.SetUiState( uid, NetworkConfiguratorUiKey.Configure, new DeviceListUserInterfaceState( diff --git a/Content.Server/Devour/DevourSystem.cs b/Content.Server/Devour/DevourSystem.cs index febbd093a6..d9c50f260a 100644 --- a/Content.Server/Devour/DevourSystem.cs +++ b/Content.Server/Devour/DevourSystem.cs @@ -1,3 +1,4 @@ +using Content.Server.Body.Components; using Content.Server.Body.Systems; using Content.Shared.Chemistry.Components; using Content.Shared.Devour; @@ -15,6 +16,7 @@ public override void Initialize() base.Initialize(); SubscribeLocalEvent(OnDoAfter); + SubscribeLocalEvent(OnGibContents); } private void OnDoAfter(EntityUid uid, DevourerComponent component, DevourDoAfterEvent args) @@ -45,5 +47,15 @@ private void OnDoAfter(EntityUid uid, DevourerComponent component, DevourDoAfter _audioSystem.PlayPvs(component.SoundDevour, uid); } + + private void OnGibContents(EntityUid uid, DevourerComponent component, ref BeingGibbedEvent args) + { + if (!component.ShouldStoreDevoured) + return; + + // For some reason we have two different systems that should handle gibbing, + // and for some another reason GibbingSystem, which should empty all containers, doesn't get involved in this process + ContainerSystem.EmptyContainer(component.Stomach); + } } diff --git a/Content.Server/Disposal/Mailing/MailingUnitSystem.cs b/Content.Server/Disposal/Mailing/MailingUnitSystem.cs index 001abad3dc..8e9c9e4ba7 100644 --- a/Content.Server/Disposal/Mailing/MailingUnitSystem.cs +++ b/Content.Server/Disposal/Mailing/MailingUnitSystem.cs @@ -159,8 +159,7 @@ private void HandleActivate(EntityUid uid, MailingUnitComponent component, Activ args.Handled = true; UpdateTargetList(uid, component); - if (_userInterfaceSystem.TryGetUi(uid, MailingUnitUiKey.Key, out var bui)) - _userInterfaceSystem.OpenUi(bui, actor.PlayerSession); + _userInterfaceSystem.OpenUi(uid, MailingUnitUiKey.Key, actor.PlayerSession); } /// @@ -178,8 +177,7 @@ private void UpdateUserInterface(EntityUid uid, MailingUnitComponent component) return; var state = new MailingUnitBoundUserInterfaceState(component.DisposalUnitInterfaceState, component.Target, component.TargetList, component.Tag); - if (_userInterfaceSystem.TryGetUi(uid, MailingUnitUiKey.Key, out var bui)) - _userInterfaceSystem.SetUiState(bui, state); + _userInterfaceSystem.SetUiState(uid, MailingUnitUiKey.Key, state); } private void OnTargetSelected(EntityUid uid, MailingUnitComponent component, TargetSelectedMessage args) diff --git a/Content.Server/Disposal/Tube/DisposalTubeSystem.cs b/Content.Server/Disposal/Tube/DisposalTubeSystem.cs index 6c0bced53e..f0f6e9142c 100644 --- a/Content.Server/Disposal/Tube/DisposalTubeSystem.cs +++ b/Content.Server/Disposal/Tube/DisposalTubeSystem.cs @@ -101,8 +101,9 @@ private void OnUiAction(EntityUid uid, DisposalTaggerComponent tagger, SharedDis /// A user interface message from the client. private void OnUiAction(EntityUid uid, DisposalRouterComponent router, SharedDisposalRouterComponent.UiActionMessage msg) { - if (!EntityManager.EntityExists(msg.Session.AttachedEntity)) + if (!EntityManager.EntityExists(msg.Actor)) return; + if (TryComp(uid, out var physBody) && physBody.BodyType != BodyType.Static) return; @@ -279,9 +280,9 @@ private void OnOpenRouterUI(EntityUid uid, DisposalRouterComponent router, Bound private void OnOpenTaggerUI(EntityUid uid, DisposalTaggerComponent tagger, BoundUIOpenedEvent args) { - if (_uiSystem.TryGetUi(uid, DisposalTaggerUiKey.Key, out var bui)) + if (_uiSystem.HasUi(uid, DisposalTaggerUiKey.Key)) { - _uiSystem.SetUiState(bui, + _uiSystem.SetUiState(uid, DisposalTaggerUiKey.Key, new DisposalTaggerUserInterfaceState(tagger.Tag)); } } @@ -292,13 +293,9 @@ private void OnOpenTaggerUI(EntityUid uid, DisposalTaggerComponent tagger, Bound /// Returns a private void UpdateRouterUserInterface(EntityUid uid, DisposalRouterComponent router) { - var bui = _uiSystem.GetUiOrNull(uid, DisposalRouterUiKey.Key); - if (bui == null) - return; - if (router.Tags.Count <= 0) { - _uiSystem.SetUiState(bui, new DisposalRouterUserInterfaceState("")); + _uiSystem.SetUiState(uid, DisposalRouterUiKey.Key, new DisposalRouterUserInterfaceState("")); return; } @@ -312,7 +309,7 @@ private void UpdateRouterUserInterface(EntityUid uid, DisposalRouterComponent ro taglist.Remove(taglist.Length - 2, 2); - _uiSystem.SetUiState(bui, new DisposalRouterUserInterfaceState(taglist.ToString())); + _uiSystem.SetUiState(uid, DisposalRouterUiKey.Key, new DisposalRouterUserInterfaceState(taglist.ToString())); } private void OnAnchorChange(EntityUid uid, DisposalTubeComponent component, ref AnchorStateChangedEvent args) diff --git a/Content.Server/Disposal/Unit/Components/DisposalHolderComponent.cs b/Content.Server/Disposal/Unit/Components/DisposalHolderComponent.cs index 3df2182b41..690b33968b 100644 --- a/Content.Server/Disposal/Unit/Components/DisposalHolderComponent.cs +++ b/Content.Server/Disposal/Unit/Components/DisposalHolderComponent.cs @@ -1,5 +1,6 @@ using Content.Server.Atmos; using Content.Server.Disposal.Tube.Components; +using Content.Shared.Atmos; using Robust.Shared.Containers; namespace Content.Server.Disposal.Unit.Components diff --git a/Content.Server/Disposal/Unit/EntitySystems/DisposalUnitSystem.cs b/Content.Server/Disposal/Unit/EntitySystems/DisposalUnitSystem.cs index c17b10c9d2..59cc6a8021 100644 --- a/Content.Server/Disposal/Unit/EntitySystems/DisposalUnitSystem.cs +++ b/Content.Server/Disposal/Unit/EntitySystems/DisposalUnitSystem.cs @@ -71,8 +71,6 @@ public override void Initialize() SubscribeLocalEvent(OnPowerChange); SubscribeLocalEvent(OnDisposalInit); - SubscribeLocalEvent(OnThrowCollide); - SubscribeLocalEvent(OnActivate); SubscribeLocalEvent(OnAfterInteractUsing); SubscribeLocalEvent(OnDragDropOn); @@ -141,6 +139,9 @@ private void AddClimbInsideVerb(EntityUid uid, SharedDisposalUnitComponent compo return; } + if (!CanInsert(uid, component, args.User)) + return; + // Add verb to climb inside of the unit, Verb verb = new() { @@ -217,7 +218,7 @@ public override void Update(float frameTime) #region UI Handlers private void OnUiButtonPressed(EntityUid uid, SharedDisposalUnitComponent component, SharedDisposalUnitComponent.UiButtonPressedMessage args) { - if (args.Session.AttachedEntity is not { Valid: true } player) + if (args.Actor is not { Valid: true } player) { return; } @@ -233,7 +234,7 @@ private void OnUiButtonPressed(EntityUid uid, SharedDisposalUnitComponent compon _adminLogger.Add(LogType.Action, LogImpact.Low, $"{ToPrettyString(player):player} hit flush button on {ToPrettyString(uid)}, it's now {(component.Engaged ? "on" : "off")}"); break; case SharedDisposalUnitComponent.UiButton.Power: - _power.TryTogglePower(uid, user: args.Session.AttachedEntity); + _power.TryTogglePower(uid, user: args.Actor); break; default: throw new ArgumentOutOfRangeException($"{ToPrettyString(player):player} attempted to hit a nonexistant button on {ToPrettyString(uid)}"); @@ -266,7 +267,7 @@ private void OnActivate(EntityUid uid, SharedDisposalUnitComponent component, Ac } args.Handled = true; - _ui.TryOpen(uid, SharedDisposalUnitComponent.DisposalUnitUiKey.Key, actor.PlayerSession); + _ui.OpenUi(uid, SharedDisposalUnitComponent.DisposalUnitUiKey.Key, actor.PlayerSession); } private void OnAfterInteractUsing(EntityUid uid, SharedDisposalUnitComponent component, AfterInteractUsingEvent args) @@ -289,31 +290,6 @@ private void OnAfterInteractUsing(EntityUid uid, SharedDisposalUnitComponent com args.Handled = true; } - /// - /// Thrown items have a chance of bouncing off the unit and not going in. - /// - private void OnThrowCollide(EntityUid uid, SharedDisposalUnitComponent component, ThrowHitByEvent args) - { - var canInsert = CanInsert(uid, component, args.Thrown); - - if (!canInsert) - { - return; - } - - var inserted = _containerSystem.Insert(args.Thrown, component.Container); - - if (!inserted) - { - throw new InvalidOperationException("Container insertion failed but CanInsert returned true"); - } - - if (args.Component.Thrower != null) - _adminLogger.Add(LogType.Landed, LogImpact.Low, $"{ToPrettyString(args.Thrown)} thrown by {ToPrettyString(args.Component.Thrower.Value):player} landed in {ToPrettyString(uid)}"); - - AfterInsert(uid, component, args.Thrown); - } - private void OnDisposalInit(EntityUid uid, SharedDisposalUnitComponent component, ComponentInit args) { component.Container = _containerSystem.EnsureContainer(uid, SharedDisposalUnitComponent.ContainerId); @@ -587,7 +563,7 @@ public void UpdateInterface(EntityUid uid, SharedDisposalUnitComponent component var compState = GetState(uid, component); var stateString = Loc.GetString($"disposal-unit-state-{compState}"); var state = new SharedDisposalUnitComponent.DisposalUnitBoundUserInterfaceState(Name(uid), stateString, EstimatedFullPressure(uid, component), powered, component.Engaged); - _ui.TrySetUiState(uid, SharedDisposalUnitComponent.DisposalUnitUiKey.Key, state); + _ui.SetUiState(uid, SharedDisposalUnitComponent.DisposalUnitUiKey.Key, state); var stateUpdatedEvent = new DisposalUnitUIStateUpdatedEvent(state); RaiseLocalEvent(uid, stateUpdatedEvent); @@ -792,10 +768,7 @@ public void AfterInsert(EntityUid uid, SharedDisposalUnitComponent component, En QueueAutomaticEngage(uid, component); - if (TryComp(inserted, out ActorComponent? actor)) - { - _ui.TryClose(uid, SharedDisposalUnitComponent.DisposalUnitUiKey.Key, actor.PlayerSession); - } + _ui.CloseUi(uid, SharedDisposalUnitComponent.DisposalUnitUiKey.Key, inserted); // Maybe do pullable instead? Eh still fine. Joints.RecursiveClearJoints(inserted); diff --git a/Content.Server/Doors/Electronics/Systems/DoorElectronicsSystem.cs b/Content.Server/Doors/Electronics/Systems/DoorElectronicsSystem.cs index 56e8bd50b3..af9ccadd91 100644 --- a/Content.Server/Doors/Electronics/Systems/DoorElectronicsSystem.cs +++ b/Content.Server/Doors/Electronics/Systems/DoorElectronicsSystem.cs @@ -39,7 +39,7 @@ public void UpdateUserInterface(EntityUid uid, DoorElectronicsComponent componen } var state = new DoorElectronicsConfigurationState(accesses); - _uiSystem.TrySetUiState(uid, DoorElectronicsConfigurationUiKey.Key, state); + _uiSystem.SetUiState(uid, DoorElectronicsConfigurationUiKey.Key, state); } private void OnChangeConfiguration( diff --git a/Content.Server/Electrocution/Components/ElectrifiedComponent.cs b/Content.Server/Electrocution/Components/ElectrifiedComponent.cs index 65a539eb08..4ef07a0cca 100644 --- a/Content.Server/Electrocution/Components/ElectrifiedComponent.cs +++ b/Content.Server/Electrocution/Components/ElectrifiedComponent.cs @@ -85,4 +85,7 @@ public sealed partial class ElectrifiedComponent : Component [DataField("shockVolume")] public float ShockVolume = 20; + + [DataField] + public float Probability = 1f; } diff --git a/Content.Server/Electrocution/ElectrocutionSystem.cs b/Content.Server/Electrocution/ElectrocutionSystem.cs index ba20f4e32f..4db815a394 100644 --- a/Content.Server/Electrocution/ElectrocutionSystem.cs +++ b/Content.Server/Electrocution/ElectrocutionSystem.cs @@ -215,6 +215,9 @@ public bool TryDoElectrifiedAct(EntityUid uid, EntityUid targetUid, if (!IsPowered(uid, electrified, transform)) return false; + if (!_random.Prob(electrified.Probability)) + return false; + EnsureComp(uid); _appearance.SetData(uid, ElectrifiedVisuals.IsPowered, true); diff --git a/Content.Server/Entry/IgnoredComponents.cs b/Content.Server/Entry/IgnoredComponents.cs index fe073da7a4..d9b81c8e5a 100644 --- a/Content.Server/Entry/IgnoredComponents.cs +++ b/Content.Server/Entry/IgnoredComponents.cs @@ -14,12 +14,13 @@ public static class IgnoredComponents "Icon", "HandheldGPS", "CableVisualizer", + "SolutionItemStatus", "UIFragment", "PdaBorderColor", "InventorySlots", "LightFade", "HolidayRsiSwap", - "OptionsVisualizer", + "OptionsVisualizer" }; } } diff --git a/Content.Server/Explosion/Components/ExplosiveComponent.cs b/Content.Server/Explosion/Components/ExplosiveComponent.cs index 04a08955a3..2b27a89d9d 100644 --- a/Content.Server/Explosion/Components/ExplosiveComponent.cs +++ b/Content.Server/Explosion/Components/ExplosiveComponent.cs @@ -81,6 +81,13 @@ public sealed partial class ExplosiveComponent : Component [DataField("deleteAfterExplosion")] public bool? DeleteAfterExplosion; + /// + /// Whether to not set to true, allowing it to explode multiple times. + /// This should never be used if it is damageable. + /// + [DataField] + public bool Repeatable; + /// /// Avoid somehow double-triggering this explosion (e.g. by damaging this entity from its own explosion. /// diff --git a/Content.Server/Explosion/Components/RepeatingTriggerComponent.cs b/Content.Server/Explosion/Components/RepeatingTriggerComponent.cs new file mode 100644 index 0000000000..cc08de53f9 --- /dev/null +++ b/Content.Server/Explosion/Components/RepeatingTriggerComponent.cs @@ -0,0 +1,25 @@ +using Content.Server.Explosion.EntitySystems; +using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom; + +namespace Content.Server.Explosion.Components; + +/// +/// Constantly triggers after being added to an entity. +/// +[RegisterComponent, Access(typeof(TriggerSystem))] +[AutoGenerateComponentPause] +public sealed partial class RepeatingTriggerComponent : Component +{ + /// + /// How long to wait between triggers. + /// The first trigger starts this long after the component is added. + /// + [DataField] + public TimeSpan Delay = TimeSpan.FromSeconds(1); + + /// + /// When the next trigger will be. + /// + [DataField(customTypeSerializer: typeof(TimeOffsetSerializer)), AutoPausedField] + public TimeSpan NextTrigger; +} diff --git a/Content.Server/Explosion/EntitySystems/ExplosionSystem.CVars.cs b/Content.Server/Explosion/EntitySystems/ExplosionSystem.CVars.cs index 1f03109333..3332d3a4f5 100644 --- a/Content.Server/Explosion/EntitySystems/ExplosionSystem.CVars.cs +++ b/Content.Server/Explosion/EntitySystems/ExplosionSystem.CVars.cs @@ -11,7 +11,8 @@ public sealed partial class ExplosionSystem : EntitySystem public int ThrowLimit { get; private set; } public bool SleepNodeSys { get; private set; } public bool IncrementalTileBreaking { get; private set; } - public int SingleTickAreaLimit {get; private set; } + public int SingleTickAreaLimit { get; private set; } + public bool CanCreateVacuum { get; private set; } private void SubscribeCvars() { @@ -23,5 +24,6 @@ private void SubscribeCvars() Subs.CVar(_cfg, CCVars.ExplosionMaxProcessingTime, value => MaxProcessingTime = value, true); Subs.CVar(_cfg, CCVars.ExplosionIncrementalTileBreaking, value => IncrementalTileBreaking = value, true); Subs.CVar(_cfg, CCVars.ExplosionSingleTickAreaLimit, value => SingleTickAreaLimit = value, true); + Subs.CVar(_cfg, CCVars.ExplosionCanCreateVacuum, value => CanCreateVacuum = value, true); } } diff --git a/Content.Server/Explosion/EntitySystems/ExplosionSystem.Processing.cs b/Content.Server/Explosion/EntitySystems/ExplosionSystem.Processing.cs index 14a149074d..835e3174fc 100644 --- a/Content.Server/Explosion/EntitySystems/ExplosionSystem.Processing.cs +++ b/Content.Server/Explosion/EntitySystems/ExplosionSystem.Processing.cs @@ -1,4 +1,5 @@ using System.Numerics; +using Content.Server.Atmos.EntitySystems; using Content.Shared.CCVar; using Content.Shared.Damage; using Content.Shared.Explosion; @@ -16,7 +17,6 @@ using Robust.Shared.Timing; using Robust.Shared.Utility; using TimedDespawnComponent = Robust.Shared.Spawners.TimedDespawnComponent; -using Content.Server.Atmos.EntitySystems; namespace Content.Server.Explosion.EntitySystems; @@ -474,7 +474,9 @@ public void DamageFloorTile(TileRef tileRef, if (_tileDefinitionManager[tileRef.Tile.TypeId] is not ContentTileDefinition tileDef) return; - if (tileDef.MapAtmosphere) + if (!CanCreateVacuum) + canCreateVacuum = false; + else if (tileDef.MapAtmosphere) canCreateVacuum = true; // is already a vacuum. int tileBreakages = 0; diff --git a/Content.Server/Explosion/EntitySystems/ExplosionSystem.cs b/Content.Server/Explosion/EntitySystems/ExplosionSystem.cs index 607a514e63..71f3025748 100644 --- a/Content.Server/Explosion/EntitySystems/ExplosionSystem.cs +++ b/Content.Server/Explosion/EntitySystems/ExplosionSystem.cs @@ -160,7 +160,7 @@ public void TriggerExplosive(EntityUid uid, ExplosiveComponent? explosive = null if (explosive.Exploded) return; - explosive.Exploded = true; + explosive.Exploded = !explosive.Repeatable; // Override the explosion intensity if optional arguments were provided. if (radius != null) diff --git a/Content.Server/Explosion/EntitySystems/TriggerSystem.cs b/Content.Server/Explosion/EntitySystems/TriggerSystem.cs index 94f5585536..8e0a75ea24 100644 --- a/Content.Server/Explosion/EntitySystems/TriggerSystem.cs +++ b/Content.Server/Explosion/EntitySystems/TriggerSystem.cs @@ -94,6 +94,7 @@ public override void Initialize() SubscribeLocalEvent(OnStepTriggered); SubscribeLocalEvent(OnSlipTriggered); SubscribeLocalEvent(OnEmptyTriggered); + SubscribeLocalEvent(OnRepeatInit); SubscribeLocalEvent(OnSpawnTrigger); SubscribeLocalEvent(HandleDeleteTrigger); @@ -153,7 +154,7 @@ private void HandleExplodeTrigger(EntityUid uid, ExplodeOnTriggerComponent compo private void HandleFlashTrigger(EntityUid uid, FlashOnTriggerComponent component, TriggerEvent args) { // TODO Make flash durations sane ffs. - _flashSystem.FlashArea(uid, args.User, component.Range, component.Duration * 1000f); + _flashSystem.FlashArea(uid, args.User, component.Range, component.Duration * 1000f, probability: component.Probability); args.Handled = true; } @@ -241,6 +242,11 @@ private void OnEmptyTriggered(EntityUid uid, TriggerWhenEmptyComponent component Trigger(uid, args.EmptyGun); } + private void OnRepeatInit(Entity ent, ref MapInitEvent args) + { + ent.Comp.NextTrigger = _timing.CurTime + ent.Comp.Delay; + } + public bool Trigger(EntityUid trigger, EntityUid? user = null) { var triggerEvent = new TriggerEvent(trigger, user); @@ -323,6 +329,7 @@ public override void Update(float frameTime) UpdateProximity(); UpdateTimer(frameTime); UpdateTimedCollide(frameTime); + UpdateRepeat(); } private void UpdateTimer(float frameTime) @@ -357,5 +364,19 @@ private void UpdateTimer(float frameTime) _appearance.SetData(uid, TriggerVisuals.VisualState, TriggerVisualState.Unprimed, appearance); } } + + private void UpdateRepeat() + { + var now = _timing.CurTime; + var query = EntityQueryEnumerator(); + while (query.MoveNext(out var uid, out var comp)) + { + if (comp.NextTrigger > now) + continue; + + comp.NextTrigger = now + comp.Delay; + Trigger(uid); + } + } } } diff --git a/Content.Server/Extinguisher/FireExtinguisherComponent.cs b/Content.Server/Extinguisher/FireExtinguisherComponent.cs index fe10b4a574..991fc76c62 100644 --- a/Content.Server/Extinguisher/FireExtinguisherComponent.cs +++ b/Content.Server/Extinguisher/FireExtinguisherComponent.cs @@ -3,7 +3,7 @@ namespace Content.Server.Extinguisher; -[NetworkedComponent, RegisterComponent] +[RegisterComponent] [Access(typeof(FireExtinguisherSystem))] public sealed partial class FireExtinguisherComponent : SharedFireExtinguisherComponent { diff --git a/Content.Server/Eye/Blinding/ActivatableUIRequiresVisionSystem.cs b/Content.Server/Eye/Blinding/ActivatableUIRequiresVisionSystem.cs index b51efc2f5e..7b937cf0d8 100644 --- a/Content.Server/Eye/Blinding/ActivatableUIRequiresVisionSystem.cs +++ b/Content.Server/Eye/Blinding/ActivatableUIRequiresVisionSystem.cs @@ -5,6 +5,7 @@ using Content.Shared.Eye.Blinding.Systems; using Robust.Shared.Player; using Robust.Server.GameObjects; +using Robust.Shared.Collections; namespace Content.Server.Eye.Blinding; @@ -37,24 +38,19 @@ private void OnBlindnessChanged(EntityUid uid, BlindableComponent component, ref if (!args.Blind) return; - if (!TryComp(uid, out var actor)) - return; - - var uiList = _userInterfaceSystem.GetAllUIsForSession(actor.PlayerSession); - if (uiList == null) - return; - - Queue closeList = new(); // foreach collection modified moment + var toClose = new ValueList<(EntityUid Entity, Enum Key)>(); - foreach (var ui in uiList) + foreach (var bui in _userInterfaceSystem.GetActorUis(uid)) { - if (HasComp(ui.Owner)) - closeList.Enqueue(ui); + if (HasComp(bui.Entity)) + { + toClose.Add(bui); + } } - foreach (var ui in closeList) + foreach (var bui in toClose) { - _userInterfaceSystem.CloseUi(ui, actor.PlayerSession); + _userInterfaceSystem.CloseUi(bui.Entity, bui.Key, uid); } } } diff --git a/Content.Server/Fax/AdminUI/AdminFaxEui.cs b/Content.Server/Fax/AdminUI/AdminFaxEui.cs index c8be6618e4..452fc593d9 100644 --- a/Content.Server/Fax/AdminUI/AdminFaxEui.cs +++ b/Content.Server/Fax/AdminUI/AdminFaxEui.cs @@ -1,6 +1,7 @@ using Content.Server.DeviceNetwork.Components; using Content.Server.EUI; using Content.Shared.Eui; +using Content.Shared.Fax.Components; using Content.Shared.Fax; using Content.Shared.Follower; using Content.Shared.Ghost; @@ -54,7 +55,7 @@ public override void HandleMessage(EuiMessageBase msg) } case AdminFaxEuiMsg.Send sendData: { - var printout = new FaxPrintout(sendData.Content, sendData.Title, null, sendData.StampState, + var printout = new FaxPrintout(sendData.Content, sendData.Title, null, null, sendData.StampState, new() { new StampDisplayInfo { StampedName = sendData.From, StampedColor = sendData.StampColor } }); _faxSystem.Receive(_entityManager.GetEntity(sendData.Target), printout); break; diff --git a/Content.Server/Fax/FaxConstants.cs b/Content.Server/Fax/FaxConstants.cs index 102510bd46..24ed7cbcf3 100644 --- a/Content.Server/Fax/FaxConstants.cs +++ b/Content.Server/Fax/FaxConstants.cs @@ -23,6 +23,7 @@ public static class FaxConstants public const string FaxNameData = "fax_data_name"; public const string FaxPaperNameData = "fax_data_title"; + public const string FaxPaperLabelData = "fax_data_label"; public const string FaxPaperPrototypeData = "fax_data_prototype"; public const string FaxPaperContentData = "fax_data_content"; public const string FaxPaperStampStateData = "fax_data_stamp_state"; diff --git a/Content.Server/Fax/FaxSystem.cs b/Content.Server/Fax/FaxSystem.cs index 3ff139466f..e86dbca4a1 100644 --- a/Content.Server/Fax/FaxSystem.cs +++ b/Content.Server/Fax/FaxSystem.cs @@ -4,6 +4,7 @@ using Content.Server.DeviceNetwork; using Content.Server.DeviceNetwork.Components; using Content.Server.DeviceNetwork.Systems; +using Content.Server.Labels; using Content.Server.Paper; using Content.Server.Popups; using Content.Server.Power.Components; @@ -16,7 +17,11 @@ using Content.Shared.Emag.Components; using Content.Shared.Emag.Systems; using Content.Shared.Fax; +using Content.Shared.Fax.Systems; +using Content.Shared.Fax.Components; using Content.Shared.Interaction; +using Content.Shared.Labels.Components; +using Content.Shared.Mobs.Components; using Content.Shared.Paper; using Robust.Server.GameObjects; using Robust.Shared.Audio; @@ -36,12 +41,14 @@ public sealed class FaxSystem : EntitySystem [Dependency] private readonly PopupSystem _popupSystem = default!; [Dependency] private readonly DeviceNetworkSystem _deviceNetworkSystem = default!; [Dependency] private readonly PaperSystem _paperSystem = default!; + [Dependency] private readonly LabelSystem _labelSystem = default!; [Dependency] private readonly SharedAudioSystem _audioSystem = default!; [Dependency] private readonly ToolSystem _toolSystem = default!; [Dependency] private readonly QuickDialogSystem _quickDialog = default!; [Dependency] private readonly UserInterfaceSystem _userInterface = default!; [Dependency] private readonly ISharedAdminLogManager _adminLogger = default!; [Dependency] private readonly MetaDataSystem _metaData = default!; + [Dependency] private readonly FaxecuteSystem _faxecute = default!; private const string PaperSlotId = "Paper"; @@ -51,7 +58,7 @@ public sealed class FaxSystem : EntitySystem /// [ValidatePrototypeId] private const string DefaultPaperPrototypeId = "Paper"; - + [ValidatePrototypeId] private const string OfficePaperPrototypeId = "PaperOffice"; @@ -236,7 +243,7 @@ private void OnInteractUsing(EntityUid uid, FaxMachineComponent component, Inter } _adminLogger.Add(LogType.Action, LogImpact.Low, - $"{ToPrettyString(args.User):user} renamed {ToPrettyString(uid)} from \"{component.FaxName}\" to \"{newName}\""); + $"{ToPrettyString(args.User):user} renamed {ToPrettyString(uid):tool} from \"{component.FaxName}\" to \"{newName}\""); component.FaxName = newName; _popupSystem.PopupEntity(Loc.GetString("fax-machine-popup-name-set"), uid); UpdateUserInterface(uid, component); @@ -288,11 +295,12 @@ private void OnPacketReceived(EntityUid uid, FaxMachineComponent component, Devi !args.Data.TryGetValue(FaxConstants.FaxPaperContentData, out string? content)) return; + args.Data.TryGetValue(FaxConstants.FaxPaperLabelData, out string? label); args.Data.TryGetValue(FaxConstants.FaxPaperStampStateData, out string? stampState); args.Data.TryGetValue(FaxConstants.FaxPaperStampedByData, out List? stampedBy); args.Data.TryGetValue(FaxConstants.FaxPaperPrototypeData, out string? prototypeId); - var printout = new FaxPrintout(content, name, prototypeId, stampState, stampedBy); + var printout = new FaxPrintout(content, name, label, prototypeId, stampState, stampedBy); Receive(uid, printout, args.SenderAddress); break; @@ -307,18 +315,25 @@ private void OnToggleInterface(EntityUid uid, FaxMachineComponent component, Aft private void OnFileButtonPressed(EntityUid uid, FaxMachineComponent component, FaxFileMessage args) { + args.Label = args.Label?[..Math.Min(args.Label.Length, FaxFileMessageValidation.MaxLabelSize)]; args.Content = args.Content[..Math.Min(args.Content.Length, FaxFileMessageValidation.MaxContentSize)]; PrintFile(uid, component, args); } private void OnCopyButtonPressed(EntityUid uid, FaxMachineComponent component, FaxCopyMessage args) { - Copy(uid, component, args); + if (HasComp(component.PaperSlot.Item)) + _faxecute.Faxecute(uid, component); /// when button pressed it will hurt the mob. + else + Copy(uid, component, args); } private void OnSendButtonPressed(EntityUid uid, FaxMachineComponent component, FaxSendMessage args) { - Send(uid, component, args.Session.AttachedEntity); + if (HasComp(component.PaperSlot.Item)) + _faxecute.Faxecute(uid, component); /// when button pressed it will hurt the mob. + else + Send(uid, component, args); } private void OnRefreshButtonPressed(EntityUid uid, FaxMachineComponent component, FaxRefreshMessage args) @@ -336,14 +351,20 @@ private void UpdateAppearance(EntityUid uid, FaxMachineComponent? component = nu if (!Resolve(uid, ref component)) return; + if (TryComp(component.PaperSlot.Item, out var faxable)) + component.InsertingState = faxable.InsertingState; + + if (component.InsertingTimeRemaining > 0) + { _appearanceSystem.SetData(uid, FaxMachineVisuals.VisualState, FaxMachineVisualState.Inserting); + Dirty(uid, component); + } else if (component.PrintingTimeRemaining > 0) _appearanceSystem.SetData(uid, FaxMachineVisuals.VisualState, FaxMachineVisualState.Printing); else _appearanceSystem.SetData(uid, FaxMachineVisuals.VisualState, FaxMachineVisualState.Normal); } - private void UpdateUserInterface(EntityUid uid, FaxMachineComponent? component = null) { if (!Resolve(uid, ref component)) @@ -358,7 +379,7 @@ private void UpdateUserInterface(EntityUid uid, FaxMachineComponent? component = component.SendTimeoutRemaining <= 0 && component.InsertingTimeRemaining <= 0; var state = new FaxUiState(component.FaxName, component.KnownFaxes, canSend, canCopy, isPaperInserted, component.DestinationFaxAddress); - _userInterface.TrySetUiState(uid, FaxUiKey.Key, state); + _userInterface.SetUiState(uid, FaxUiKey.Key, state); } /// @@ -409,20 +430,20 @@ public void PrintFile(EntityUid uid, FaxMachineComponent component, FaxFileMessa else prototype = DefaultPaperPrototypeId; - var name = Loc.GetString("fax-machine-printed-paper-name"); - - var printout = new FaxPrintout(args.Content, name, prototype); + var name = Loc.GetString("fax-machine-printed-paper-name"); + + var printout = new FaxPrintout(args.Content, name, args.Label, prototype); component.PrintingQueue.Enqueue(printout); component.SendTimeoutRemaining += component.SendTimeout; UpdateUserInterface(uid, component); - if (args.Session.AttachedEntity != null) - _adminLogger.Add(LogType.Action, LogImpact.Low, - $"{ToPrettyString(args.Session.AttachedEntity.Value):actor} added print job to {ToPrettyString(uid):tool} with text: {args.Content}"); - else - _adminLogger.Add(LogType.Action, LogImpact.Low, - $"Someone added print job to {ToPrettyString(uid):tool} with text: {args.Content}"); + // Unfortunately, since a paper entity does not yet exist, we have to emulate what LabelSystem will do. + var nameWithLabel = (args.Label is { } label) ? $"{name} ({label})" : name; + _adminLogger.Add(LogType.Action, LogImpact.Low, + $"{ToPrettyString(args.Actor):actor} " + + $"added print job to \"{component.FaxName}\" {ToPrettyString(uid):tool} " + + $"of {nameWithLabel}: {args.Content}"); } /// @@ -442,9 +463,12 @@ public void Copy(EntityUid uid, FaxMachineComponent? component, FaxCopyMessage a !TryComp(sendEntity, out var paper)) return; + TryComp(sendEntity, out var labelComponent); + // TODO: See comment in 'Send()' about not being able to copy whole entities var printout = new FaxPrintout(paper.Content, - metadata.EntityName, + labelComponent?.OriginalName ?? metadata.EntityName, + labelComponent?.CurrentLabel, metadata.EntityPrototype?.ID ?? DefaultPaperPrototypeId, paper.StampState, paper.StampedBy); @@ -457,16 +481,17 @@ public void Copy(EntityUid uid, FaxMachineComponent? component, FaxCopyMessage a UpdateUserInterface(uid, component); - if (args.Session.AttachedEntity != null) - _adminLogger.Add(LogType.Action, LogImpact.Low, - $"{ToPrettyString(args.Session.AttachedEntity.Value):actor} added copy job to {ToPrettyString(uid):tool} with text: {ToPrettyString(component.PaperSlot.Item):subject}"); + _adminLogger.Add(LogType.Action, LogImpact.Low, + $"{ToPrettyString(args.Actor):actor} " + + $"added copy job to \"{component.FaxName}\" {ToPrettyString(uid):tool} " + + $"of {ToPrettyString(sendEntity):subject}: {printout.Content}"); } /// /// Sends message to addressee if paper is set and a known fax is selected /// A timeout is set after sending, which is shared by the copy button. /// - public void Send(EntityUid uid, FaxMachineComponent? component = null, EntityUid? sender = null) + public void Send(EntityUid uid, FaxMachineComponent? component, FaxSendMessage args) { if (!Resolve(uid, ref component)) return; @@ -482,13 +507,16 @@ public void Send(EntityUid uid, FaxMachineComponent? component = null, EntityUid return; if (!TryComp(sendEntity, out var metadata) || - !TryComp(sendEntity, out var paper)) + !TryComp(sendEntity, out var paper)) return; + TryComp(sendEntity, out var labelComponent); + var payload = new NetworkPayload() { { DeviceNetworkConstants.Command, FaxConstants.FaxPrintCommand }, - { FaxConstants.FaxPaperNameData, metadata.EntityName }, + { FaxConstants.FaxPaperNameData, labelComponent?.OriginalName ?? metadata.EntityName }, + { FaxConstants.FaxPaperLabelData, labelComponent?.CurrentLabel }, { FaxConstants.FaxPaperContentData, paper.Content }, }; @@ -509,7 +537,11 @@ public void Send(EntityUid uid, FaxMachineComponent? component = null, EntityUid _deviceNetworkSystem.QueuePacket(uid, component.DestinationFaxAddress, payload); - _adminLogger.Add(LogType.Action, LogImpact.Low, $"{(sender != null ? ToPrettyString(sender.Value) : "Unknown"):user} sent fax from \"{component.FaxName}\" {ToPrettyString(uid)} to {faxName} ({component.DestinationFaxAddress}): {paper.Content}"); + _adminLogger.Add(LogType.Action, LogImpact.Low, + $"{ToPrettyString(args.Actor):actor} " + + $"sent fax from \"{component.FaxName}\" {ToPrettyString(uid):tool} " + + $"to \"{faxName}\" ({component.DestinationFaxAddress}) " + + $"of {ToPrettyString(sendEntity):subject}: {paper.Content}"); component.SendTimeoutRemaining += component.SendTimeout; @@ -565,7 +597,13 @@ private void SpawnPaperFromQueue(EntityUid uid, FaxMachineComponent? component = } _metaData.SetEntityName(printed, printout.Name); - _adminLogger.Add(LogType.Action, LogImpact.Low, $"\"{component.FaxName}\" {ToPrettyString(uid)} printed {ToPrettyString(printed)}: {printout.Content}"); + + if (printout.Label is { } label) + { + _labelSystem.Label(printed, label); + } + + _adminLogger.Add(LogType.Action, LogImpact.Low, $"\"{component.FaxName}\" {ToPrettyString(uid):tool} printed {ToPrettyString(printed):subject}: {printout.Content}"); } private void NotifyAdmins(string faxName) diff --git a/Content.Server/Flash/FlashSystem.cs b/Content.Server/Flash/FlashSystem.cs index 7706bfec4e..bc91a307b0 100644 --- a/Content.Server/Flash/FlashSystem.cs +++ b/Content.Server/Flash/FlashSystem.cs @@ -18,6 +18,7 @@ using Robust.Server.Audio; using Robust.Server.GameObjects; using Robust.Shared.Audio; +using Robust.Shared.Random; using Robust.Shared.Timing; using InventoryComponent = Content.Shared.Inventory.InventoryComponent; using Content.Shared.Traits.Assorted.Components; @@ -67,7 +68,7 @@ private void OnFlashMeleeHit(EntityUid uid, FlashComponent comp, MeleeHitEvent a args.Handled = true; foreach (var e in args.HitEntities) { - Flash(e, args.User, uid, comp.FlashDuration, comp.SlowTo, melee: true); + Flash(e, args.User, uid, comp.FlashDuration, comp.SlowTo, melee: true, stunDuration: comp.MeleeStunDuration); } } @@ -77,7 +78,7 @@ private void OnFlashUseInHand(EntityUid uid, FlashComponent comp, UseInHandEvent return; args.Handled = true; - FlashArea(uid, args.User, comp.Range, comp.AoeFlashDuration, comp.SlowTo, true); + FlashArea(uid, args.User, comp.Range, comp.AoeFlashDuration, comp.SlowTo, true, comp.Probability); } private bool UseFlash(EntityUid uid, FlashComponent comp, EntityUid user) @@ -117,7 +118,8 @@ public void Flash(EntityUid target, float slowTo, bool displayPopup = true, FlashableComponent? flashable = null, - bool melee = false) + bool melee = false, + TimeSpan? stunDuration = null) { if (!Resolve(target, ref flashable, false)) return; @@ -148,41 +150,46 @@ public void Flash(EntityUid target, && _random.Prob(flashable.EyeDamageChance)) _blindingSystem.AdjustEyeDamage((target, blindable), flashable.EyeDamage); - _stun.TrySlowdown(target, TimeSpan.FromSeconds(flashDuration/1000f), true, + if (stunDuration != null) + { + _stun.TryParalyze(target, stunDuration.Value, true); + } + else + { + _stun.TrySlowdown(target, TimeSpan.FromSeconds(flashDuration/1000f), true, slowTo, slowTo); + } if (displayPopup && user != null && target != user && Exists(user.Value)) { _popup.PopupEntity(Loc.GetString("flash-component-user-blinds-you", ("user", Identity.Entity(user.Value, EntityManager))), target, target); } - } - public void FlashArea(EntityUid source, EntityUid? user, float range, float duration, float slowTo = 0.8f, bool displayPopup = false, SoundSpecifier? sound = null) + public void FlashArea(Entity source, EntityUid? user, float range, float duration, float slowTo = 0.8f, bool displayPopup = false, float probability = 1f, SoundSpecifier? sound = null) { - var transform = EntityManager.GetComponent(source); + var transform = Transform(source); var mapPosition = _transform.GetMapCoordinates(transform); var flashableQuery = GetEntityQuery(); foreach (var entity in _entityLookup.GetEntitiesInRange(transform.Coordinates, range)) { - if (!flashableQuery.TryGetComponent(entity, out var flashable)) + if (!_random.Prob(probability)) continue; + if (!flashableQuery.TryGetComponent(entity, out var flashable)) + continue; // Check for unobstructed entities while ignoring the mobs with flashable components. - if (!_interaction.InRangeUnobstructed(entity, mapPosition, range, flashable.CollisionGroup, (e) => e == source)) + if (!_interaction.InRangeUnobstructed(entity, mapPosition, range, flashable.CollisionGroup, predicate: (e) => flashableQuery.HasComponent(e) || e == source.Owner)) continue; // They shouldn't have flash removed in between right? Flash(entity, user, source, duration, slowTo, displayPopup, flashableQuery.GetComponent(entity)); } - if (sound != null) - { - _audio.PlayPvs(sound, source, AudioParams.Default.WithVolume(1f).WithMaxDistance(3f)); - } + _audio.PlayPvs(sound, source, AudioParams.Default.WithVolume(1f).WithMaxDistance(3f)); } private void OnInventoryFlashAttempt(EntityUid uid, InventoryComponent component, FlashAttemptEvent args) diff --git a/Content.Server/Flight/FlightSystem.cs b/Content.Server/Flight/FlightSystem.cs new file mode 100644 index 0000000000..39321b1e66 --- /dev/null +++ b/Content.Server/Flight/FlightSystem.cs @@ -0,0 +1,176 @@ + +using Content.Shared.Cuffs.Components; +using Content.Shared.Damage.Components; +using Content.Shared.DoAfter; +using Content.Shared.Flight; +using Content.Shared.Flight.Events; +using Content.Shared.Mobs; +using Content.Shared.Popups; +using Content.Shared.Standing; +using Content.Shared.Stunnable; +using Content.Shared.Zombies; +using Robust.Shared.Audio.Systems; + +namespace Content.Server.Flight; +public sealed class FlightSystem : SharedFlightSystem +{ + [Dependency] private readonly SharedAudioSystem _audio = default!; + [Dependency] private readonly SharedDoAfterSystem _doAfter = default!; + [Dependency] private readonly SharedPopupSystem _popupSystem = default!; + [Dependency] private readonly StandingStateSystem _standing = default!; + + public override void Initialize() + { + base.Initialize(); + + SubscribeLocalEvent(OnToggleFlight); + SubscribeLocalEvent(OnFlightDoAfter); + SubscribeLocalEvent(OnMobStateChangedEvent); + SubscribeLocalEvent(OnZombified); + SubscribeLocalEvent(OnKnockedDown); + SubscribeLocalEvent(OnStunned); + SubscribeLocalEvent(OnDowned); + SubscribeLocalEvent(OnSleep); + } + public override void Update(float frameTime) + { + base.Update(frameTime); + + var query = EntityQueryEnumerator(); + while (query.MoveNext(out var uid, out var component)) + { + if (!component.On) + continue; + + component.TimeUntilFlap -= frameTime; + + if (component.TimeUntilFlap > 0f) + continue; + + _audio.PlayPvs(component.FlapSound, uid); + component.TimeUntilFlap = component.FlapInterval; + + } + } + + #region Core Functions + private void OnToggleFlight(EntityUid uid, FlightComponent component, ToggleFlightEvent args) + { + // If the user isnt flying, we check for conditionals and initiate a doafter. + if (!component.On) + { + if (!CanFly(uid, component)) + return; + + var doAfterArgs = new DoAfterArgs(EntityManager, + uid, component.ActivationDelay, + new FlightDoAfterEvent(), uid, target: uid) + { + BlockDuplicate = true, + BreakOnTargetMove = true, + BreakOnUserMove = true, + BreakOnDamage = true, + NeedHand = true + }; + + if (!_doAfter.TryStartDoAfter(doAfterArgs)) + return; + } + else + ToggleActive(uid, false, component); + } + + private void OnFlightDoAfter(EntityUid uid, FlightComponent component, FlightDoAfterEvent args) + { + if (args.Handled || args.Cancelled) + return; + + ToggleActive(uid, true, component); + args.Handled = true; + } + + #endregion + + #region Conditionals + + private bool CanFly(EntityUid uid, FlightComponent component) + { + if (TryComp(uid, out var cuffableComp) && !cuffableComp.CanStillInteract) + { + _popupSystem.PopupEntity(Loc.GetString("no-flight-while-restrained"), uid, uid, PopupType.Medium); + return false; + } + + if (HasComp(uid)) + { + _popupSystem.PopupEntity(Loc.GetString("no-flight-while-zombified"), uid, uid, PopupType.Medium); + return false; + } + + if (HasComp(uid) && _standing.IsDown(uid)) + { + _popupSystem.PopupEntity(Loc.GetString("no-flight-while-lying"), uid, uid, PopupType.Medium); + return false; + } + + return true; + } + + private void OnMobStateChangedEvent(EntityUid uid, FlightComponent component, MobStateChangedEvent args) + { + if (!component.On + || args.NewMobState is MobState.Critical or MobState.Dead) + return; + + ToggleActive(args.Target, false, component); + } + + private void OnZombified(EntityUid uid, FlightComponent component, ref EntityZombifiedEvent args) + { + if (!component.On) + return; + + ToggleActive(args.Target, false, component); + if (!TryComp(uid, out var stamina)) + return; + Dirty(uid, stamina); + } + + private void OnKnockedDown(EntityUid uid, FlightComponent component, ref KnockedDownEvent args) + { + if (!component.On) + return; + + ToggleActive(uid, false, component); + } + + private void OnStunned(EntityUid uid, FlightComponent component, ref StunnedEvent args) + { + if (!component.On) + return; + + ToggleActive(uid, false, component); + } + + private void OnDowned(EntityUid uid, FlightComponent component, ref DownedEvent args) + { + if (!component.On) + return; + + ToggleActive(uid, false, component); + } + + private void OnSleep(EntityUid uid, FlightComponent component, ref SleepStateChangedEvent args) + { + if (!component.On + || !args.FellAsleep) + return; + + ToggleActive(uid, false, component); + if (!TryComp(uid, out var stamina)) + return; + + Dirty(uid, stamina); + } + #endregion +} \ No newline at end of file diff --git a/Content.Server/Fluids/EntitySystems/DrainSystem.cs b/Content.Server/Fluids/EntitySystems/DrainSystem.cs index 19cb650db7..27ad2178f9 100644 --- a/Content.Server/Fluids/EntitySystems/DrainSystem.cs +++ b/Content.Server/Fluids/EntitySystems/DrainSystem.cs @@ -87,19 +87,25 @@ private void Empty(EntityUid container, SpillableComponent spillable, EntityUid // Try to transfer as much solution as possible to the drain - var transferSolution = _solutionContainerSystem.SplitSolution(containerSoln.Value, - FixedPoint2.Min(containerSolution.Volume, drainSolution.AvailableVolume)); + var amountToPutInDrain = drainSolution.AvailableVolume; + var amountToSpillOnGround = containerSolution.Volume - drainSolution.AvailableVolume; - _solutionContainerSystem.TryAddSolution(drain.Solution.Value, transferSolution); + if (amountToPutInDrain > 0) + { + var solutionToPutInDrain = _solutionContainerSystem.SplitSolution(containerSoln.Value, amountToPutInDrain); + _solutionContainerSystem.TryAddSolution(drain.Solution.Value, solutionToPutInDrain); + + _audioSystem.PlayPvs(drain.ManualDrainSound, target); + _ambientSoundSystem.SetAmbience(target, true); + } - _audioSystem.PlayPvs(drain.ManualDrainSound, target); - _ambientSoundSystem.SetAmbience(target, true); - // If drain is full, spill + // Spill the remainder. - if (drainSolution.MaxVolume == drainSolution.Volume) + if (amountToSpillOnGround > 0) { - _puddleSystem.TrySpillAt(Transform(target).Coordinates, containerSolution, out _); + var solutionToSpill = _solutionContainerSystem.SplitSolution(containerSoln.Value, amountToSpillOnGround); + _puddleSystem.TrySpillAt(Transform(target).Coordinates, solutionToSpill, out _); _popupSystem.PopupEntity( Loc.GetString("drain-component-empty-verb-target-is-full-message", ("object", target)), container); diff --git a/Content.Server/Fluids/EntitySystems/PuddleSystem.Spillable.cs b/Content.Server/Fluids/EntitySystems/PuddleSystem.Spillable.cs index 747e3205a7..3a0c128c3b 100644 --- a/Content.Server/Fluids/EntitySystems/PuddleSystem.Spillable.cs +++ b/Content.Server/Fluids/EntitySystems/PuddleSystem.Spillable.cs @@ -5,13 +5,12 @@ using Content.Shared.Chemistry.EntitySystems; using Content.Shared.Chemistry.Reaction; using Content.Shared.Chemistry.Reagent; -using Content.Shared.Clothing.Components; +using Content.Shared.Clothing; using Content.Shared.CombatMode.Pacification; using Content.Shared.Database; using Content.Shared.FixedPoint; using Content.Shared.Fluids.Components; using Content.Shared.IdentityManagement; -using Content.Shared.Inventory.Events; using Content.Shared.Nutrition.EntitySystems; using Content.Shared.Popups; using Content.Shared.Spillable; @@ -29,10 +28,11 @@ protected override void InitializeSpillable() SubscribeLocalEvent(SpillOnLand); // Openable handles the event if it's closed - SubscribeLocalEvent( - SplashOnMeleeHit, before: new[] {typeof(MeleeBlockSystem)}, after:[typeof(OpenableSystem)]); // WD EDIT - SubscribeLocalEvent(OnGotEquipped); - SubscribeLocalEvent(OnGotUnequipped); + SubscribeLocalEvent(SplashOnMeleeHit, + before: [typeof(MeleeBlockSystem)], + after: [typeof(OpenableSystem)]); + SubscribeLocalEvent(OnGotEquipped); + SubscribeLocalEvent(OnGotUnequipped); SubscribeLocalEvent(OnOverflow); SubscribeLocalEvent(OnDoAfter); SubscribeLocalEvent(OnAttemptPacifiedThrow); @@ -101,20 +101,11 @@ private void SplashOnMeleeHit(Entity entity, ref MeleeHitEve } } - private void OnGotEquipped(Entity entity, ref GotEquippedEvent args) + private void OnGotEquipped(Entity entity, ref ClothingGotEquippedEvent args) { if (!entity.Comp.SpillWorn) return; - if (!TryComp(entity, out ClothingComponent? clothing)) - return; - - // check if entity was actually used as clothing - // not just taken in pockets or something - var isCorrectSlot = clothing.Slots.HasFlag(args.SlotFlags); - if (!isCorrectSlot) - return; - if (!_solutionContainerSystem.TryGetSolution(entity.Owner, entity.Comp.SolutionName, out var soln, out var solution)) return; @@ -126,10 +117,10 @@ private void OnGotEquipped(Entity entity, ref GotEquippedEve // spill all solution on the player var drainedSolution = _solutionContainerSystem.Drain(entity.Owner, soln.Value, solution.Volume); - TrySplashSpillAt(entity.Owner, Transform(args.Equipee).Coordinates, drainedSolution, out _); + TrySplashSpillAt(entity.Owner, Transform(args.Wearer).Coordinates, drainedSolution, out _); } - private void OnGotUnequipped(Entity entity, ref GotUnequippedEvent args) + private void OnGotUnequipped(Entity entity, ref ClothingGotUnequippedEvent args) { if (!entity.Comp.SpillWorn) return; diff --git a/Content.Server/Fluids/EntitySystems/SpraySystem.cs b/Content.Server/Fluids/EntitySystems/SpraySystem.cs index f7621aec62..5499070738 100644 --- a/Content.Server/Fluids/EntitySystems/SpraySystem.cs +++ b/Content.Server/Fluids/EntitySystems/SpraySystem.cs @@ -144,7 +144,7 @@ private void OnAfterInteract(Entity entity, ref AfterInteractEve _audio.PlayPvs(entity.Comp.SpraySound, entity, entity.Comp.SpraySound.Params.WithVariation(0.125f)); - _useDelay.SetDelay((entity, useDelay), TimeSpan.FromSeconds(cooldownTime)); + _useDelay.SetLength(entity.Owner, TimeSpan.FromSeconds(cooldownTime)); _useDelay.TryResetDelay((entity, useDelay)); } } diff --git a/Content.Server/Forensics/Components/ForensicScannerComponent.cs b/Content.Server/Forensics/Components/ForensicScannerComponent.cs index ad26213848..3ad805cbbf 100644 --- a/Content.Server/Forensics/Components/ForensicScannerComponent.cs +++ b/Content.Server/Forensics/Components/ForensicScannerComponent.cs @@ -1,4 +1,5 @@ using System.Threading; +using Content.Shared.Forensics; using Robust.Shared.Audio; using Robust.Shared.Prototypes; using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype; diff --git a/Content.Server/Forensics/Systems/ForensicScannerSystem.cs b/Content.Server/Forensics/Systems/ForensicScannerSystem.cs index 0d3168fd4e..e83cde7456 100644 --- a/Content.Server/Forensics/Systems/ForensicScannerSystem.cs +++ b/Content.Server/Forensics/Systems/ForensicScannerSystem.cs @@ -52,8 +52,7 @@ private void UpdateUserInterface(EntityUid uid, ForensicScannerComponent compone component.PrintCooldown, component.PrintReadyAt); - if (!_uiSystem.TrySetUiState(uid, ForensicScannerUiKey.Key, state)) - Log.Warning($"{ToPrettyString(uid)} was unable to set UI state."); + _uiSystem.SetUiState(uid, ForensicScannerUiKey.Key, state); } private void OnDoAfter(EntityUid uid, ForensicScannerComponent component, DoAfterEvent args) @@ -164,23 +163,14 @@ private void OnBeforeActivatableUIOpen(EntityUid uid, ForensicScannerComponent c private void OpenUserInterface(EntityUid user, Entity scanner) { - if (!TryComp(user, out var actor)) - return; - UpdateUserInterface(scanner, scanner.Comp); - _uiSystem.TryOpen(scanner, ForensicScannerUiKey.Key, actor.PlayerSession); + _uiSystem.OpenUi(scanner.Owner, ForensicScannerUiKey.Key, user); } private void OnPrint(EntityUid uid, ForensicScannerComponent component, ForensicScannerPrintMessage args) { - if (!args.Session.AttachedEntity.HasValue) - { - Log.Warning($"{ToPrettyString(uid)} got OnPrint without Session.AttachedEntity"); - return; - } - - var user = args.Session.AttachedEntity.Value; + var user = args.Actor; if (_gameTiming.CurTime < component.PrintReadyAt) { @@ -192,7 +182,7 @@ private void OnPrint(EntityUid uid, ForensicScannerComponent component, Forensic // Spawn a piece of paper. var printed = EntityManager.SpawnEntity(component.MachineOutput, Transform(uid).Coordinates); - _handsSystem.PickupOrDrop(args.Session.AttachedEntity, printed, checkActionBlocker: false); + _handsSystem.PickupOrDrop(args.Actor, printed, checkActionBlocker: false); if (!HasComp(printed)) { @@ -241,9 +231,6 @@ private void OnPrint(EntityUid uid, ForensicScannerComponent component, Forensic private void OnClear(EntityUid uid, ForensicScannerComponent component, ForensicScannerClearMessage args) { - if (!args.Session.AttachedEntity.HasValue) - return; - component.Fingerprints = new(); component.Fibers = new(); component.DNAs = new(); diff --git a/Content.Server/Forensics/Systems/ForensicsSystem.cs b/Content.Server/Forensics/Systems/ForensicsSystem.cs index 72930748f3..b3d09ae0b8 100644 --- a/Content.Server/Forensics/Systems/ForensicsSystem.cs +++ b/Content.Server/Forensics/Systems/ForensicsSystem.cs @@ -136,53 +136,32 @@ public void CopyForensicsFrom(ForensicsComponent src, EntityUid target) private void OnAfterInteract(EntityUid uid, CleansForensicsComponent component, AfterInteractEvent args) { - if (args.Handled) + if (args.Handled || !args.CanReach || !TryComp(args.Target, out var forensicsComp)) return; - if (TryComp(args.Target, out var forensicsComp) - && forensicsComp.DNAs.Count > 0 && forensicsComp.CanDnaBeCleaned - && forensicsComp.Fingerprints.Count + forensicsComp.Fibers.Count > 0 - && forensicsComp.Scent != string.Empty) - { - var cleanDelay = component.CleanDelay; - if (HasComp(args.Target)) - cleanDelay += 30; + if ((forensicsComp.DNAs.Count <= 0 || !forensicsComp.CanDnaBeCleaned) + && forensicsComp.Fingerprints.Count + forensicsComp.Fibers.Count <= 0 + && forensicsComp.Scent == string.Empty) + return; // Nothing to do if there is no DNAs, fibers, and scent - var doAfterArgs = new DoAfterArgs(EntityManager, args.User, cleanDelay, new CleanForensicsDoAfterEvent(), uid, target: args.Target, used: args.Used) - { - BreakOnHandChange = true, - NeedHand = true, - BreakOnDamage = true, - BreakOnTargetMove = true, - MovementThreshold = 0.01f, - DistanceThreshold = forensicsComp.CleanDistance, - }; - - _doAfterSystem.TryStartDoAfter(doAfterArgs); - _popupSystem.PopupEntity(Loc.GetString("forensics-cleaning", ("target", args.Target)), args.User, args.User); - - args.Handled = true; - return; - } + var cleanDelay = component.CleanDelay; + if (HasComp(args.Target)) + cleanDelay += 30; - if (TryComp(args.Target, out var scentComp)) + var doAfterArgs = new DoAfterArgs(EntityManager, args.User, cleanDelay, new CleanForensicsDoAfterEvent(), uid, target: args.Target, used: args.Used) { - var cleanDelay = component.CleanDelay + 30; - var doAfterArgs = new DoAfterArgs(EntityManager, args.User, cleanDelay, new CleanForensicsDoAfterEvent(), uid, target: args.Target, used: args.Used) - { - BreakOnHandChange = true, - NeedHand = true, - BreakOnDamage = true, - BreakOnTargetMove = true, - MovementThreshold = 0.01f, - DistanceThreshold = 1.5f, - }; - - _doAfterSystem.TryStartDoAfter(doAfterArgs); - _popupSystem.PopupEntity(Loc.GetString("forensics-cleaning", ("target", args.Target)), args.User, args.User); - - args.Handled = true; - } + BreakOnHandChange = true, + NeedHand = true, + BreakOnDamage = true, + BreakOnTargetMove = true, + MovementThreshold = 0.01f, + DistanceThreshold = forensicsComp.CleanDistance, + }; + + _doAfterSystem.TryStartDoAfter(doAfterArgs); + _popupSystem.PopupEntity(Loc.GetString("forensics-cleaning", ("target", args.Target)), args.User, args.User); + + args.Handled = true; } private void OnCleanForensicsDoAfter(EntityUid uid, ForensicsComponent component, CleanForensicsDoAfterEvent args) @@ -207,7 +186,8 @@ private void OnCleanForensicsDoAfter(EntityUid uid, ForensicsComponent component if (TryComp(args.Used, out var residue)) targetComp.Residues.Add(string.IsNullOrEmpty(residue.ResidueColor) ? Loc.GetString("forensic-residue", ("adjective", residue.ResidueAdjective)) : Loc.GetString("forensic-residue-colored", ("color", residue.ResidueColor), ("adjective", residue.ResidueAdjective))); - // If the ent has a Scent Component, we compleatly generate a new one and apply the new scent to all currently weared items. + // If the ent has a Scent Component, we completely generate a new one and apply the new scent to all currently worn items. + // TODO this is never gonna work unless you like, wash yourself with the soap??? if (TryComp(args.Target, out var scentComp)) { var generatedscent = GenerateFingerprint(length: 5); diff --git a/Content.Server/GameTicking/GameTicker.GamePreset.cs b/Content.Server/GameTicking/GameTicker.GamePreset.cs index 8ddd0ba180..4c454fb189 100644 --- a/Content.Server/GameTicking/GameTicker.GamePreset.cs +++ b/Content.Server/GameTicking/GameTicker.GamePreset.cs @@ -1,7 +1,7 @@ using System.Diagnostics.CodeAnalysis; using System.Linq; using System.Threading.Tasks; -using Content.Server._White.Ghost; +using Content.Server.Ghost; using Content.Server.GameTicking.Presets; using Content.Server.Maps; using Content.Shared.CCVar; @@ -22,8 +22,7 @@ namespace Content.Server.GameTicking public sealed partial class GameTicker { [Dependency] private readonly MobThresholdSystem _mobThresholdSystem = default!; - [Dependency] private readonly GhostReturnToRoundSystem _ghostReturnToRound = default!; // WD EDIT - + [Dependency] private readonly GhostReturnToRoundSystem _ghostReturnToRound = default!; public const float PresetFailedCooldownIncrease = 30f; /// @@ -102,7 +101,7 @@ private void InitializeGamePreset() SetGamePreset(LobbyEnabled ? _configurationManager.GetCVar(CCVars.GameLobbyDefaultPreset) : "sandbox"); } - public void SetGamePreset(GamePresetPrototype preset, bool force = false) + public void SetGamePreset(GamePresetPrototype? preset, bool force = false) { // Do nothing if this game ticker is a dummy! if (DummyTicker) @@ -276,36 +275,13 @@ public bool OnGhostAttempt(EntityUid mindId, bool canReturnGlobal, bool viaComma } } - var xformQuery = GetEntityQuery(); - var coords = _transform.GetMoverCoordinates(position, xformQuery); - - var ghost = Spawn(ObserverPrototypeName, coords); - - // Try setting the ghost entity name to either the character name or the player name. - // If all else fails, it'll default to the default entity prototype name, "observer". - // However, that should rarely happen. - if (!string.IsNullOrWhiteSpace(mind.CharacterName)) - _metaData.SetEntityName(ghost, mind.CharacterName); - else if (!string.IsNullOrWhiteSpace(mind.Session?.Name)) - _metaData.SetEntityName(ghost, mind.Session.Name); - - var ghostComponent = Comp(ghost); - - if (mind.TimeOfDeath.HasValue) - { - _ghost.SetTimeOfDeath(ghost, mind.TimeOfDeath!.Value, ghostComponent); - } + var ghost = _ghost.SpawnGhost((mindId, mind), position, canReturn); + if (ghost == null) + return false; if (playerEntity != null) _adminLogger.Add(LogType.Mind, $"{EntityManager.ToPrettyString(playerEntity.Value):player} ghosted{(!canReturn ? " (non-returnable)" : "")}"); - _ghost.SetCanReturnToBody(ghostComponent, canReturn); - - if (canReturn) - _mind.Visit(mindId, ghost, mind); - else - _mind.TransferTo(mindId, ghost, mind: mind); - return true; } diff --git a/Content.Server/GameTicking/GameTicker.Player.cs b/Content.Server/GameTicking/GameTicker.Player.cs index 6af9df70f0..19141ca9bd 100644 --- a/Content.Server/GameTicking/GameTicker.Player.cs +++ b/Content.Server/GameTicking/GameTicker.Player.cs @@ -142,13 +142,30 @@ private async void PlayerStatusChanged(object? sender, SessionStatusEventArgs ar async void SpawnWaitDb() { - await _userDb.WaitLoadComplete(session); + try + {await _userDb.WaitLoadComplete(session);} + catch (OperationCanceledException) + { + // Bail, user must've disconnected or something. + Log.Debug($"Database load cancelled while waiting to spawn {session}"); + return; + } SpawnPlayer(session, EntityUid.Invalid); } async void SpawnObserverWaitDb() { - await _userDb.WaitLoadComplete(session); + try + { + await _userDb.WaitLoadComplete(session); + } + catch (OperationCanceledException) + { + // Bail, user must've disconnected or something. + Log.Debug($"Database load cancelled while waiting to spawn {session}"); + return; + } + JoinAsObserver(session); } diff --git a/Content.Server/GameTicking/GameTicker.RoundFlow.cs b/Content.Server/GameTicking/GameTicker.RoundFlow.cs index 0fc984abed..889a8a5a2b 100644 --- a/Content.Server/GameTicking/GameTicker.RoundFlow.cs +++ b/Content.Server/GameTicking/GameTicker.RoundFlow.cs @@ -167,7 +167,7 @@ public IReadOnlyList LoadGameMap(GameMapPrototype map, MapId targetMa var gridIds = _map.LoadMap(targetMapId, ev.GameMap.MapPath.ToString(), ev.Options); - _metaData.SetEntityName(_mapManager.GetMapEntityId(targetMapId), "Station map"); + _metaData.SetEntityName(_mapManager.GetMapEntityId(targetMapId), $"station map - {map.MapName}"); var gridUids = gridIds.ToList(); RaiseLocalEvent(new PostGameMapLoad(map, targetMapId, gridUids, stationName)); @@ -269,7 +269,10 @@ public void StartRound(bool force = false) var origReadyPlayers = readyPlayers.ToArray(); if (!StartPreset(origReadyPlayers, force)) + { + _startingRound = false; return; + } // MapInitialize *before* spawning players, our codebase is too shit to do it afterwards... _mapManager.DoMapInitialize(DefaultMap); diff --git a/Content.Server/GameTicking/GameTicker.Spawning.cs b/Content.Server/GameTicking/GameTicker.Spawning.cs index 3d35128e08..aa8df516b0 100644 --- a/Content.Server/GameTicking/GameTicker.Spawning.cs +++ b/Content.Server/GameTicking/GameTicker.Spawning.cs @@ -57,7 +57,9 @@ public List GetSpawnableStations() return spawnableStations; } - private void SpawnPlayers(List readyPlayers, Dictionary profiles, bool force) + private void SpawnPlayers(List readyPlayers, + Dictionary profiles, + bool force) { // Allow game rules to spawn players by themselves if needed. (For example, nuke ops or wizard) RaiseLocalEvent(new RulePlayerSpawningEvent(readyPlayers, profiles, force)); @@ -118,10 +120,17 @@ private void SpawnPlayers(List readyPlayers, Dictionary _playerManager.GetSessionById(x)).ToArray(), profiles, force)); + RaiseLocalEvent(new RulePlayerJobsAssignedEvent( + assignedJobs.Keys.Select(x => _playerManager.GetSessionById(x)).ToArray(), + profiles, + force)); } - private void SpawnPlayer(ICommonSession player, EntityUid station, string? jobId = null, bool lateJoin = true, bool silent = false) + private void SpawnPlayer(ICommonSession player, + EntityUid station, + string? jobId = null, + bool lateJoin = true, + bool silent = false) { var character = GetPlayerProfile(player); @@ -134,7 +143,12 @@ private void SpawnPlayer(ICommonSession player, EntityUid station, string? jobId SpawnPlayer(player, character, station, jobId, lateJoin, silent); } - private void SpawnPlayer(ICommonSession player, HumanoidCharacterProfile character, EntityUid station, string? jobId = null, bool lateJoin = true, bool silent = false) + private void SpawnPlayer(ICommonSession player, + HumanoidCharacterProfile character, + EntityUid station, + string? jobId = null, + bool lateJoin = true, + bool silent = false) { // Can't spawn players with a dummy ticker! if (DummyTicker) @@ -156,9 +170,8 @@ private void SpawnPlayer(ICommonSession player, HumanoidCharacterProfile charact return; } - //WD EDIT START //Ghost system return to round, check for whether the character isn't the same. - if (lateJoin && !_adminManager.IsAdmin(player) && !CheckGhostReturnToRound(player, character, out var checkAvoid)) + if (!_cfg.GetCVar(CCVars.GhostAllowSameCharacter) && lateJoin && !_adminManager.IsAdmin(player) && !CheckGhostReturnToRound(player, character, out var checkAvoid)) { var message = checkAvoid ? Loc.GetString("ghost-respawn-same-character-slightly-changed-name") @@ -170,7 +183,6 @@ private void SpawnPlayer(ICommonSession player, HumanoidCharacterProfile charact return; } - //WD EDIT END // We raise this event to allow other systems to handle spawning this player themselves. (e.g. late-join wizard, etc) var bev = new PlayerBeforeSpawnEvent(player, character, jobId, lateJoin, station); @@ -194,7 +206,9 @@ private void SpawnPlayer(ICommonSession player, HumanoidCharacterProfile charact restrictedRoles.UnionWith(jobBans); // Pick best job best on prefs. - jobId ??= _stationJobs.PickBestAvailableJobWithPriority(station, character.JobPriorities, true, + jobId ??= _stationJobs.PickBestAvailableJobWithPriority(station, + character.JobPriorities, + true, restrictedRoles); // If no job available, stay in lobby, or if no lobby spawn as observer if (jobId is null) @@ -203,7 +217,9 @@ private void SpawnPlayer(ICommonSession player, HumanoidCharacterProfile charact { JoinAsObserver(player); } - _chatManager.DispatchServerMessage(player, Loc.GetString("game-ticker-player-no-jobs-available-when-joining")); + + _chatManager.DispatchServerMessage(player, + Loc.GetString("game-ticker-player-no-jobs-available-when-joining")); return; } @@ -217,7 +233,7 @@ private void SpawnPlayer(ICommonSession player, HumanoidCharacterProfile charact _mind.SetUserId(newMind, data.UserId); var jobPrototype = _prototypeManager.Index(jobId); - var job = new JobComponent { Prototype = jobId }; + var job = new JobComponent {Prototype = jobId}; _roles.MindAddRole(newMind, job, silent: silent); var jobName = _jobs.MindTryGetJobName(newMind); @@ -257,14 +273,17 @@ private void SpawnPlayer(ICommonSession player, HumanoidCharacterProfile charact _stationJobs.TryAssignJob(station, jobPrototype, player.UserId); if (lateJoin) - _adminLogger.Add(LogType.LateJoin, LogImpact.Medium, $"Player {player.Name} late joined as {character.Name:characterName} on station {Name(station):stationName} with {ToPrettyString(mob):entity} as a {jobName:jobName}."); + _adminLogger.Add(LogType.LateJoin, + LogImpact.Medium, + $"Player {player.Name} late joined as {character.Name:characterName} on station {Name(station):stationName} with {ToPrettyString(mob):entity} as a {jobName:jobName}."); else - _adminLogger.Add(LogType.RoundStartJoin, LogImpact.Medium, $"Player {player.Name} joined as {character.Name:characterName} on station {Name(station):stationName} with {ToPrettyString(mob):entity} as a {jobName:jobName}."); + _adminLogger.Add(LogType.RoundStartJoin, + LogImpact.Medium, + $"Player {player.Name} joined as {character.Name:characterName} on station {Name(station):stationName} with {ToPrettyString(mob):entity} as a {jobName:jobName}."); // Make sure they're aware of extended access. if (Comp(station).ExtendedAccess - && (jobPrototype.ExtendedAccess.Count > 0 - || jobPrototype.ExtendedAccessGroups.Count > 0)) + && (jobPrototype.ExtendedAccess.Count > 0 || jobPrototype.ExtendedAccessGroups.Count > 0)) { _chatManager.DispatchServerMessage(player, Loc.GetString("job-greet-crew-shortages")); } @@ -286,14 +305,20 @@ private void SpawnPlayer(ICommonSession player, HumanoidCharacterProfile charact } else { - _chatManager.DispatchServerMessage(player, Loc.GetString("latejoin-arrivals-direction-time", - ("time", $"{arrival:mm\\:ss}"))); + _chatManager.DispatchServerMessage(player, + Loc.GetString("latejoin-arrivals-direction-time", ("time", $"{arrival:mm\\:ss}"))); } } // We raise this event directed to the mob, but also broadcast it so game rules can do something now. PlayersJoinedRoundNormally++; - var aev = new PlayerSpawnCompleteEvent(mob, player, jobId, lateJoin, PlayersJoinedRoundNormally, station, character); + var aev = new PlayerSpawnCompleteEvent(mob, + player, + jobId, + lateJoin, + PlayersJoinedRoundNormally, + station, + character); RaiseLocalEvent(mob, aev, true); } @@ -348,23 +373,22 @@ public void SpawnObserver(ICommonSession player) if (DummyTicker) return; - var mind = player.GetMind(); + Entity? mind = player.GetMind(); if (mind == null) { - mind = _mind.CreateMind(player.UserId); + var name = GetPlayerProfile(player).Name; + var (mindId, mindComp) = _mind.CreateMind(player.UserId, name); + mind = (mindId, mindComp); _mind.SetUserId(mind.Value, player.UserId); _roles.MindAddRole(mind.Value, new ObserverRoleComponent()); } - var name = GetPlayerProfile(player).Name; - var ghost = SpawnObserverMob(); - _metaData.SetEntityName(ghost, name); - _ghost.SetCanReturnToBody(ghost, false); - _mind.TransferTo(mind.Value, ghost); - _adminLogger.Add(LogType.LateJoin, LogImpact.Low, $"{player.Name} late joined the round as an Observer with {ToPrettyString(ghost):entity}."); + var ghost = _ghost.SpawnGhost(mind.Value); + _adminLogger.Add(LogType.LateJoin, + LogImpact.Low, + $"{player.Name} late joined the round as an Observer with {ToPrettyString(ghost):entity}."); } - //WD EDIT START private bool CheckGhostReturnToRound(ICommonSession player, HumanoidCharacterProfile character, out bool checkAvoid) { checkAvoid = false; @@ -384,22 +408,18 @@ private bool CheckGhostReturnToRound(ICommonSession player, HumanoidCharacterPro switch (similarity) { case >= 85f: - { _chatManager.SendAdminAlert(Loc.GetString("ghost-respawn-log-character-almost-same", ("player", player.Name), ("try", false), ("oldName", mind.CharacterName), ("newName", character.Name))); checkAvoid = true; return false; - } case >= 50f: - { _chatManager.SendAdminAlert(Loc.GetString("ghost-respawn-log-character-almost-same", ("player", player.Name), ("try", true), ("oldName", mind.CharacterName), ("newName", character.Name))); break; - } } } @@ -422,7 +442,6 @@ private float CalculateStringSimilarity(string str1, string str2) return similarityPercentage; } - //WD EDIT END #region Mob Spawning Helpers private EntityUid SpawnObserverMob() @@ -433,6 +452,7 @@ private EntityUid SpawnObserverMob() #endregion #region Spawn Points + public EntityCoordinates GetObserverSpawnPoint() { _possiblePositions.Clear(); @@ -453,8 +473,7 @@ public EntityCoordinates GetObserverSpawnPoint() var query = AllEntityQuery(); while (query.MoveNext(out var uid, out var grid)) { - if (!metaQuery.TryGetComponent(uid, out var meta) || - meta.EntityPaused) + if (!metaQuery.TryGetComponent(uid, out var meta) || meta.EntityPaused || TerminatingOrDeleted(uid)) { continue; } @@ -475,8 +494,7 @@ public EntityCoordinates GetObserverSpawnPoint() { var gridXform = Transform(gridUid); - return new EntityCoordinates(gridUid, - gridXform.InvWorldMatrix.Transform(toMap.Position)); + return new EntityCoordinates(gridUid, gridXform.InvWorldMatrix.Transform(toMap.Position)); } return spawn; @@ -492,8 +510,9 @@ public EntityCoordinates GetObserverSpawnPoint() { var mapUid = _mapManager.GetMapEntityId(map); - if (!metaQuery.TryGetComponent(mapUid, out var meta) || - meta.EntityPaused) + if (!metaQuery.TryGetComponent(mapUid, out var meta) + || meta.EntityPaused + || TerminatingOrDeleted(mapUid)) { continue; } @@ -506,6 +525,7 @@ public EntityCoordinates GetObserverSpawnPoint() _sawmill.Warning("Found no observer spawn points!"); return EntityCoordinates.Invalid; } + #endregion } @@ -523,7 +543,11 @@ public sealed class PlayerBeforeSpawnEvent : HandledEntityEventArgs public bool LateJoin { get; } public EntityUid Station { get; } - public PlayerBeforeSpawnEvent(ICommonSession player, HumanoidCharacterProfile profile, string? jobId, bool lateJoin, EntityUid station) + public PlayerBeforeSpawnEvent(ICommonSession player, + HumanoidCharacterProfile profile, + string? jobId, + bool lateJoin, + EntityUid station) { Player = player; Profile = profile; @@ -551,7 +575,13 @@ public sealed class PlayerSpawnCompleteEvent : EntityEventArgs // Ex. If this is the 27th person to join, this will be 27. public int JoinOrder { get; } - public PlayerSpawnCompleteEvent(EntityUid mob, ICommonSession player, string? jobId, bool lateJoin, int joinOrder, EntityUid station, HumanoidCharacterProfile profile) + public PlayerSpawnCompleteEvent(EntityUid mob, + ICommonSession player, + string? jobId, + bool lateJoin, + int joinOrder, + EntityUid station, + HumanoidCharacterProfile profile) { Mob = mob; Player = player; diff --git a/Content.Server/GameTicking/Rules/Components/LoadMapRuleComponent.cs b/Content.Server/GameTicking/Rules/Components/LoadMapRuleComponent.cs index 463aecbff5..b7aef0c61d 100644 --- a/Content.Server/GameTicking/Rules/Components/LoadMapRuleComponent.cs +++ b/Content.Server/GameTicking/Rules/Components/LoadMapRuleComponent.cs @@ -1,4 +1,6 @@ using Content.Server.Maps; +using Content.Shared.GridPreloader.Prototypes; +using Content.Shared.Storage; using Content.Shared.Whitelist; using Robust.Shared.Map; using Robust.Shared.Prototypes; @@ -16,11 +18,14 @@ public sealed partial class LoadMapRuleComponent : Component public MapId? Map; [DataField] - public ProtoId? GameMap ; + public ProtoId? GameMap; [DataField] public ResPath? MapPath; + [DataField] + public ProtoId? PreloadedGrid; + [DataField] public List MapGrids = new(); diff --git a/Content.Server/GameTicking/Rules/Components/NukeopsRuleComponent.cs b/Content.Server/GameTicking/Rules/Components/NukeopsRuleComponent.cs index f64947e286..7862b38e59 100644 --- a/Content.Server/GameTicking/Rules/Components/NukeopsRuleComponent.cs +++ b/Content.Server/GameTicking/Rules/Components/NukeopsRuleComponent.cs @@ -5,11 +5,7 @@ using Content.Shared.Roles; using Robust.Shared.Audio; using Robust.Shared.Prototypes; -using Robust.Shared.Serialization.TypeSerializers.Implementations; using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom; -using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype; -using Robust.Shared.Utility; - namespace Content.Server.GameTicking.Rules.Components; diff --git a/Content.Server/GameTicking/Rules/Components/TraitorRuleComponent.cs b/Content.Server/GameTicking/Rules/Components/TraitorRuleComponent.cs index dd359969b6..47a4adeaf3 100644 --- a/Content.Server/GameTicking/Rules/Components/TraitorRuleComponent.cs +++ b/Content.Server/GameTicking/Rules/Components/TraitorRuleComponent.cs @@ -31,6 +31,9 @@ public sealed partial class TraitorRuleComponent : Component [DataField] public ProtoId CodewordVerbs = "verbs"; + [DataField] + public ProtoId ObjectiveIssuers = "TraitorCorporations"; + public int TotalTraitors => TraitorMinds.Count; public string[] Codewords = new string[3]; diff --git a/Content.Server/GameTicking/Rules/GameRuleSystem.Utility.cs b/Content.Server/GameTicking/Rules/GameRuleSystem.Utility.cs index 27a9edbad7..cbd981e99e 100644 --- a/Content.Server/GameTicking/Rules/GameRuleSystem.Utility.cs +++ b/Content.Server/GameTicking/Rules/GameRuleSystem.Utility.cs @@ -1,7 +1,10 @@ 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.Random.Helpers; +using Robust.Server.GameObjects; using Robust.Shared.Collections; using Robust.Shared.Map; using Robust.Shared.Map.Components; @@ -82,17 +85,23 @@ protected bool TryFindRandomTileOnStation(Entity station, targetCoords = EntityCoordinates.Invalid; targetGrid = EntityUid.Invalid; - var possibleTargets = station.Comp.Grids; - if (possibleTargets.Count == 0) + // Weight grid choice by tilecount + var weights = new Dictionary, float>(); + foreach (var possibleTarget in station.Comp.Grids) + { + if (!TryComp(possibleTarget, out var comp)) + continue; + + weights.Add((possibleTarget, comp), _map.GetAllTiles(possibleTarget, comp).Count()); + } + + if (weights.Count == 0) { targetGrid = EntityUid.Invalid; return false; } - targetGrid = RobustRandom.Pick(possibleTargets); - - if (!TryComp(targetGrid, out var gridComp)) - return false; + (targetGrid, var gridComp) = RobustRandom.Pick(weights); var found = false; var aabb = gridComp.LocalAABB; diff --git a/Content.Server/GameTicking/Rules/GameRuleSystem.cs b/Content.Server/GameTicking/Rules/GameRuleSystem.cs index c167ae7b6c..05374aa139 100644 --- a/Content.Server/GameTicking/Rules/GameRuleSystem.cs +++ b/Content.Server/GameTicking/Rules/GameRuleSystem.cs @@ -26,7 +26,7 @@ public override void Initialize() SubscribeLocalEvent(OnGameRuleAdded); SubscribeLocalEvent(OnGameRuleStarted); SubscribeLocalEvent(OnGameRuleEnded); - SubscribeLocalEvent(OnRoundEndTextAppend); + SubscribeLocalEvent(OnRoundEndTextAppend); } private void OnStartAttempt(RoundStartAttemptEvent args) @@ -70,11 +70,16 @@ private void OnGameRuleEnded(EntityUid uid, T component, ref GameRuleEndedEvent Ended(uid, component, ruleData, args); } - private void OnRoundEndTextAppend(Entity ent, ref RoundEndTextAppendEvent args) + private void OnRoundEndTextAppend(RoundEndTextAppendEvent ev) { - if (!TryComp(ent, out var ruleData)) - return; - AppendRoundEndText(ent, ent, ruleData, ref args); + var query = AllEntityQuery(); + while (query.MoveNext(out var uid, out var comp)) + { + if (!TryComp(uid, out var ruleData)) + continue; + + AppendRoundEndText(uid, comp, ruleData, ref ev); + } } /// diff --git a/Content.Server/GameTicking/Rules/LoadMapRuleSystem.cs b/Content.Server/GameTicking/Rules/LoadMapRuleSystem.cs index aba9ed9e58..3a80d82fd9 100644 --- a/Content.Server/GameTicking/Rules/LoadMapRuleSystem.cs +++ b/Content.Server/GameTicking/Rules/LoadMapRuleSystem.cs @@ -1,9 +1,11 @@ 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 Robust.Server.GameObjects; using Robust.Server.Maps; +using Robust.Shared.Map; using Robust.Shared.Prototypes; namespace Content.Server.GameTicking.Rules; @@ -11,9 +13,12 @@ namespace Content.Server.GameTicking.Rules; public sealed class LoadMapRuleSystem : GameRuleSystem { [Dependency] private readonly IPrototypeManager _prototypeManager = default!; + [Dependency] private readonly IMapManager _mapManager = default!; [Dependency] private readonly MapSystem _map = default!; [Dependency] private readonly MapLoaderSystem _mapLoader = default!; + [Dependency] private readonly MetaDataSystem _metaData = default!; [Dependency] private readonly TransformSystem _transform = default!; + [Dependency] private readonly GridPreloaderSystem _gridPreloader = default!; public override void Initialize() { @@ -41,7 +46,9 @@ protected override void Added(EntityUid uid, LoadMapRuleComponent comp, GameRule if (comp.Map != null) return; - _map.CreateMap(out var mapId); + // grid preloading needs map to init after moving it + var mapUid = comp.PreloadedGrid != null ? _map.CreateMap(out var mapId, false) : _map.CreateMap(out mapId); + _metaData.SetEntityName(mapUid, $"LoadMapRule destination for rule {ToPrettyString(uid)}"); comp.Map = mapId; if (comp.GameMap != null) @@ -51,8 +58,29 @@ protected override void Added(EntityUid uid, LoadMapRuleComponent comp, GameRule } else if (comp.MapPath != null) { - if (_mapLoader.TryLoad(comp.Map.Value, comp.MapPath.Value.ToString(), out var roots, new MapLoadOptions { LoadMap = true })) - comp.MapGrids.AddRange(roots); + if (!_mapLoader.TryLoad(comp.Map.Value, + comp.MapPath.Value.ToString(), + out var roots, + new MapLoadOptions { LoadMap = true })) + { + _mapManager.DeleteMap(mapId); + return; + } + + comp.MapGrids.AddRange(roots); + } + else if (comp.PreloadedGrid != null) + { + // TODO: If there are no preloaded grids left, any rule announcements will still go off! + if (!_gridPreloader.TryGetPreloadedGrid(comp.PreloadedGrid.Value, out var loadedShuttle)) + { + _mapManager.DeleteMap(mapId); + return; + } + + _transform.SetParent(loadedShuttle.Value, mapUid); + comp.MapGrids.Add(loadedShuttle.Value); + _map.InitializeMap(mapId); } else { diff --git a/Content.Server/GameTicking/Rules/MaxTimeRestartRuleSystem.cs b/Content.Server/GameTicking/Rules/MaxTimeRestartRuleSystem.cs index ee3a025533..cae99fee9f 100644 --- a/Content.Server/GameTicking/Rules/MaxTimeRestartRuleSystem.cs +++ b/Content.Server/GameTicking/Rules/MaxTimeRestartRuleSystem.cs @@ -34,6 +34,7 @@ protected override void Ended(EntityUid uid, MaxTimeRestartRuleComponent compone public void RestartTimer(MaxTimeRestartRuleComponent component) { + // TODO FULL GAME SAVE component.TimerCancel.Cancel(); component.TimerCancel = new CancellationTokenSource(); Timer.Spawn(component.RoundMaxTime, () => TimerFired(component), component.TimerCancel.Token); @@ -50,6 +51,7 @@ private void TimerFired(MaxTimeRestartRuleComponent component) _chatManager.DispatchServerAnnouncement(Loc.GetString("rule-restarting-in-seconds",("seconds", (int) component.RoundEndDelay.TotalSeconds))); + // TODO FULL GAME SAVE Timer.Spawn(component.RoundEndDelay, () => GameTicker.RestartRound()); } diff --git a/Content.Server/GameTicking/Rules/NukeopsRuleSystem.cs b/Content.Server/GameTicking/Rules/NukeopsRuleSystem.cs index d06b9fb899..3e61fda874 100644 --- a/Content.Server/GameTicking/Rules/NukeopsRuleSystem.cs +++ b/Content.Server/GameTicking/Rules/NukeopsRuleSystem.cs @@ -481,12 +481,10 @@ private void OnAntagSelectEntity(Entity ent, ref AntagSele ? _prefs.GetPreferences(args.Session.UserId).SelectedCharacter as HumanoidCharacterProfile : HumanoidCharacterProfile.RandomWithSpecies(); if (!_prototypeManager.TryIndex(profile?.Species ?? SharedHumanoidAppearanceSystem.DefaultSpecies, out SpeciesPrototype? species)) - { species = _prototypeManager.Index(SharedHumanoidAppearanceSystem.DefaultSpecies); - } args.Entity = Spawn(species.Prototype); - _humanoid.LoadProfile(args.Entity.Value, profile); + _humanoid.LoadProfile(args.Entity.Value, profile!); } private void OnAfterAntagEntSelected(Entity ent, ref AfterAntagEntitySelectedEvent args) diff --git a/Content.Server/GameTicking/Rules/RevolutionaryRuleSystem.cs b/Content.Server/GameTicking/Rules/RevolutionaryRuleSystem.cs index 7e6901e6c4..577b0c3030 100644 --- a/Content.Server/GameTicking/Rules/RevolutionaryRuleSystem.cs +++ b/Content.Server/GameTicking/Rules/RevolutionaryRuleSystem.cs @@ -28,6 +28,7 @@ using Robust.Shared.Prototypes; using Robust.Shared.Timing; using Content.Server.GameTicking.Components; +using Content.Shared.Cuffs.Components; namespace Content.Server.GameTicking.Rules; @@ -141,7 +142,6 @@ private void OnPostFlash(EntityUid uid, HeadRevolutionaryComponent comp, ref Aft _npcFaction.AddFaction(ev.Target, RevolutionaryNpcFaction); var revComp = EnsureComp(ev.Target); - _stun.TryParalyze(ev.Target, comp.StunTime, true); if (ev.User != null) { @@ -180,7 +180,7 @@ private bool CheckCommandLose() commandList.Add(id); } - return IsGroupDead(commandList, true); + return IsGroupDetainedOrDead(commandList, true, true); } private void OnHeadRevMobStateChanged(EntityUid uid, HeadRevolutionaryComponent comp, MobStateChangedEvent ev) @@ -204,7 +204,8 @@ private bool CheckRevsLose() } // If no Head Revs are alive all normal Revs will lose their Rev status and rejoin Nanotrasen - if (IsGroupDead(headRevList, false)) + // Cuffing Head Revs is not enough - they must be killed. + if (IsGroupDetainedOrDead(headRevList, false, false)) { var rev = AllEntityQuery(); while (rev.MoveNext(out var uid, out _, out var mc)) @@ -236,35 +237,43 @@ private bool CheckRevsLose() } /// - /// Will take a group of entities and check if they are all alive or dead + /// Will take a group of entities and check if these entities are alive, dead or cuffed. /// /// The list of the entities - /// Bool for if you want to check if someone is in space and consider them dead. (Won't check when emergency shuttle arrives just in case) + /// Bool for if you want to check if someone is in space and consider them missing in action. (Won't check when emergency shuttle arrives just in case) + /// Bool for if you don't want to count cuffed entities. /// - private bool IsGroupDead(List list, bool checkOffStation) + private bool IsGroupDetainedOrDead(List list, bool checkOffStation, bool countCuffed) { - var dead = 0; + var gone = 0; foreach (var entity in list) { - if (TryComp(entity, out var state)) + if (TryComp(entity, out var cuffed) && cuffed.CuffedHandCount > 0 && countCuffed) { - if (state.CurrentState == MobState.Dead || state.CurrentState == MobState.Invalid) + gone++; + } + else + { + if (TryComp(entity, out var state)) { - dead++; + if (state.CurrentState == MobState.Dead || state.CurrentState == MobState.Invalid) + { + gone++; + } + else if (checkOffStation && _stationSystem.GetOwningStation(entity) == null && !_emergencyShuttle.EmergencyShuttleArrived) + { + gone++; + } } - else if (checkOffStation && _stationSystem.GetOwningStation(entity) == null && !_emergencyShuttle.EmergencyShuttleArrived) + //If they don't have the MobStateComponent they might as well be dead. + else { - dead++; + gone++; } } - //If they don't have the MobStateComponent they might as well be dead. - else - { - dead++; - } } - return dead == list.Count || list.Count == 0; + return gone == list.Count || list.Count == 0; } private static readonly string[] Outcomes = diff --git a/Content.Server/GameTicking/Rules/TraitorRuleSystem.cs b/Content.Server/GameTicking/Rules/TraitorRuleSystem.cs index 0fa100f0c6..d43f3c4472 100644 --- a/Content.Server/GameTicking/Rules/TraitorRuleSystem.cs +++ b/Content.Server/GameTicking/Rules/TraitorRuleSystem.cs @@ -80,6 +80,7 @@ public bool MakeTraitor(EntityUid traitor, TraitorRuleComponent component, bool component.SelectionStatus = TraitorRuleComponent.SelectionState.Started; // WD EDIT var briefing = Loc.GetString("traitor-role-codewords-short", ("codewords", string.Join(", ", component.Codewords))); + var issuer = _random.Pick(_prototypeManager.Index(component.ObjectiveIssuers).Values); if (TryComp(traitor, out var autoTraitorComponent)) { @@ -109,7 +110,7 @@ public bool MakeTraitor(EntityUid traitor, TraitorRuleComponent component, bool Loc.GetString("traitor-role-uplink-code-short", ("code", string.Join("-", code).Replace("sharp", "#")))); } - _antag.SendBriefing(traitor, GenerateBriefing(component.Codewords, code), null, component.GreetSoundNotification); + _antag.SendBriefing(traitor, GenerateBriefing(component.Codewords, code, issuer), null, component.GreetSoundNotification); component.TraitorMinds.Add(mindId); @@ -156,10 +157,10 @@ private void OnObjectivesTextPrepend(EntityUid uid, TraitorRuleComponent comp, r args.Text += "\n" + Loc.GetString("traitor-round-end-codewords", ("codewords", string.Join(", ", comp.Codewords))); } - private string GenerateBriefing(string[] codewords, Note[]? uplinkCode) + private string GenerateBriefing(string[] codewords, Note[]? uplinkCode, string? objectiveIssuer = null) { var sb = new StringBuilder(); - sb.AppendLine(Loc.GetString("traitor-role-greeting")); + sb.AppendLine(Loc.GetString("traitor-role-greeting", ("corporation", objectiveIssuer ?? Loc.GetString("objective-issuer-unknown")))); sb.AppendLine(Loc.GetString("traitor-role-codewords-short", ("codewords", string.Join(", ", codewords)))); if (uplinkCode != null) sb.AppendLine(Loc.GetString("traitor-role-uplink-code-short", ("code", string.Join("-", uplinkCode).Replace("sharp", "#")))); diff --git a/Content.Server/GameTicking/Rules/ZombieRuleSystem.cs b/Content.Server/GameTicking/Rules/ZombieRuleSystem.cs index f62d0b79ff..1361ab3733 100644 --- a/Content.Server/GameTicking/Rules/ZombieRuleSystem.cs +++ b/Content.Server/GameTicking/Rules/ZombieRuleSystem.cs @@ -38,7 +38,7 @@ public override void Initialize() { base.Initialize(); - SubscribeLocalEvent(OnZombifySelf); + SubscribeLocalEvent(OnZombifySelf); } protected override void AppendRoundEndText(EntityUid uid, ZombieRuleComponent component, GameRuleComponent gameRule, @@ -133,7 +133,7 @@ protected override void ActiveTick(EntityUid uid, ZombieRuleComponent component, component.NextRoundEndCheck = _timing.CurTime + component.EndCheckDelay; } - private void OnZombifySelf(EntityUid uid, PendingZombieComponent component, ZombifySelfActionEvent args) + private void OnZombifySelf(EntityUid uid, IncurableZombieComponent component, ZombifySelfActionEvent args) { _zombie.ZombifyEntity(uid); if (component.Action != null) diff --git a/Content.Server/Gateway/Components/GatewayGeneratorComponent.cs b/Content.Server/Gateway/Components/GatewayGeneratorComponent.cs index d65760e270..0f948f1b8f 100644 --- a/Content.Server/Gateway/Components/GatewayGeneratorComponent.cs +++ b/Content.Server/Gateway/Components/GatewayGeneratorComponent.cs @@ -64,6 +64,8 @@ public sealed partial class GatewayGeneratorComponent : Component "OreUranium", "OreBananium", "OreArtifactFragment", + "OreBluespace", + "OreNormality", }; } diff --git a/Content.Server/Gateway/Systems/GatewaySystem.cs b/Content.Server/Gateway/Systems/GatewaySystem.cs index 7ebc751dd2..6ed28d71a7 100644 --- a/Content.Server/Gateway/Systems/GatewaySystem.cs +++ b/Content.Server/Gateway/Systems/GatewaySystem.cs @@ -129,7 +129,7 @@ private void UpdateUserInterface(EntityUid uid, GatewayComponent comp, Transform unlockTime ); - _ui.TrySetUiState(uid, GatewayUiKey.Key, state); + _ui.SetUiState(uid, GatewayUiKey.Key, state); } private void UpdateAppearance(EntityUid uid) @@ -139,12 +139,14 @@ private void UpdateAppearance(EntityUid uid) private void OnOpenPortal(EntityUid uid, GatewayComponent comp, GatewayOpenPortalMessage args) { - if (args.Session.AttachedEntity == null || GetNetEntity(uid) == args.Destination || + if (GetNetEntity(uid) == args.Destination || !comp.Enabled || !comp.Interactable) + { return; + } // if the gateway has an access reader check it before allowing opening - var user = args.Session.AttachedEntity.Value; + var user = args.Actor; if (CheckAccess(user, uid, comp)) return; diff --git a/Content.Server/Geras/GerasComponent.cs b/Content.Server/Geras/GerasComponent.cs new file mode 100644 index 0000000000..eaf792502f --- /dev/null +++ b/Content.Server/Geras/GerasComponent.cs @@ -0,0 +1,18 @@ +using Content.Shared.Actions; +using Content.Shared.Polymorph; +using Robust.Shared.Prototypes; + +namespace Content.Server.Geras; + +/// +/// This component assigns the entity with a polymorph action. +/// +[RegisterComponent] +public sealed partial class GerasComponent : Component +{ + [DataField] public ProtoId GerasPolymorphId = "SlimeMorphGeras"; + + [DataField] public ProtoId GerasAction = "ActionMorphGeras"; + + [DataField] public EntityUid? GerasActionEntity; +} diff --git a/Content.Server/Geras/GerasSystem.cs b/Content.Server/Geras/GerasSystem.cs new file mode 100644 index 0000000000..f83f7c1999 --- /dev/null +++ b/Content.Server/Geras/GerasSystem.cs @@ -0,0 +1,51 @@ +using Content.Server.Polymorph.Systems; +using Content.Shared.Zombies; +using Content.Server.Actions; +using Content.Server.Popups; +using Content.Shared.Geras; +using Robust.Shared.Player; + +namespace Content.Server.Geras; + +/// +public sealed class GerasSystem : SharedGerasSystem +{ + [Dependency] private readonly PolymorphSystem _polymorphSystem = default!; + [Dependency] private readonly ActionsSystem _actionsSystem = default!; + [Dependency] private readonly PopupSystem _popupSystem = default!; + + /// + public override void Initialize() + { + SubscribeLocalEvent(OnMorphIntoGeras); + SubscribeLocalEvent(OnMapInit); + SubscribeLocalEvent(OnZombification); + } + + private void OnZombification(EntityUid uid, GerasComponent component, EntityZombifiedEvent args) + { + _actionsSystem.RemoveAction(uid, component.GerasActionEntity); + } + + private void OnMapInit(EntityUid uid, GerasComponent component, MapInitEvent args) + { + // try to add geras action + _actionsSystem.AddAction(uid, ref component.GerasActionEntity, component.GerasAction); + } + + private void OnMorphIntoGeras(EntityUid uid, GerasComponent component, MorphIntoGeras args) + { + if (HasComp(uid)) + return; // i hate zomber. + + var ent = _polymorphSystem.PolymorphEntity(uid, component.GerasPolymorphId); + + if (!ent.HasValue) + return; + + _popupSystem.PopupEntity(Loc.GetString("geras-popup-morph-message-others", ("entity", ent.Value)), ent.Value, Filter.PvsExcept(ent.Value), true); + _popupSystem.PopupEntity(Loc.GetString("geras-popup-morph-message-user"), ent.Value, ent.Value); + + args.Handled = true; + } +} diff --git a/Content.Server/_White/Ghost/GhostReturnToRoundSystem.cs b/Content.Server/Ghost/GhostReturnToRoundSystem.cs similarity index 87% rename from Content.Server/_White/Ghost/GhostReturnToRoundSystem.cs rename to Content.Server/Ghost/GhostReturnToRoundSystem.cs index e3c5a0647f..f6ed44ca58 100644 --- a/Content.Server/_White/Ghost/GhostReturnToRoundSystem.cs +++ b/Content.Server/Ghost/GhostReturnToRoundSystem.cs @@ -1,16 +1,15 @@ using Content.Server.Administration.Logs; using Content.Server.Chat.Managers; using Content.Server.GameTicking; -using Content.Shared._White; using Content.Shared.Database; -using Content.Shared.GameTicking; +using Content.Shared.CCVar; using Content.Shared.Ghost; using Robust.Server.Player; using Robust.Shared.Configuration; using Robust.Shared.Network; using Robust.Shared.Timing; -namespace Content.Server._White.Ghost; +namespace Content.Server.Ghost; public sealed class GhostReturnToRoundSystem : EntitySystem { @@ -19,6 +18,7 @@ public sealed class GhostReturnToRoundSystem : EntitySystem [Dependency] private readonly IPlayerManager _playerManager = default!; [Dependency] private readonly IGameTiming _gameTiming = default!; [Dependency] private readonly IConfigurationManager _cfg = default!; + [Dependency] private readonly GameTicker _ticker = default!; public override void Initialize() { @@ -32,7 +32,7 @@ private void OnGhostReturnToRoundRequest(GhostReturnToRoundRequest msg, EntitySe if (uid == null) return; - var connectedClient = args.SenderSession.ConnectedClient; + var connectedClient = args.SenderSession.Channel; var userId = args.SenderSession.UserId; TryGhostReturnToRound(uid.Value, connectedClient, userId, out var message, out var wrappedMessage); @@ -48,7 +48,7 @@ private void OnGhostReturnToRoundRequest(GhostReturnToRoundRequest msg, EntitySe private void TryGhostReturnToRound(EntityUid uid, INetChannel connectedClient, NetUserId userId, out string message, out string wrappedMessage) { - var maxPlayers = _cfg.GetCVar(WhiteCVars.GhostRespawnMaxPlayers); + var maxPlayers = _cfg.GetCVar(CCVars.GhostRespawnMaxPlayers); if (_playerManager.PlayerCount >= maxPlayers) { message = Loc.GetString("ghost-respawn-max-players", ("players", maxPlayers)); @@ -57,15 +57,14 @@ private void TryGhostReturnToRound(EntityUid uid, INetChannel connectedClient, N } var deathTime = EnsureComp(uid).TimeOfDeath; - var timeUntilRespawn = _cfg.GetCVar(WhiteCVars.GhostRespawnTime); + var timeUntilRespawn = _cfg.GetCVar(CCVars.GhostRespawnTime); var timePast = (_gameTiming.CurTime - deathTime).TotalMinutes; if (timePast >= timeUntilRespawn) { - var ticker = Get(); _playerManager.TryGetSessionById(userId, out var targetPlayer); if (targetPlayer != null) - ticker.Respawn(targetPlayer); + _ticker.Respawn(targetPlayer); _adminLogger.Add(LogType.Mind, LogImpact.Medium, $"{Loc.GetString("ghost-respawn-log-return-to-lobby", ("userName", connectedClient.UserName))}"); diff --git a/Content.Server/Ghost/GhostSystem.cs b/Content.Server/Ghost/GhostSystem.cs index c0e753c4c5..f4e6a4d607 100644 --- a/Content.Server/Ghost/GhostSystem.cs +++ b/Content.Server/Ghost/GhostSystem.cs @@ -19,6 +19,7 @@ using Content.Shared.Storage.Components; using Robust.Server.GameObjects; using Robust.Server.Player; +using Robust.Shared.Map; using Robust.Shared.Physics.Components; using Robust.Shared.Physics.Systems; using Robust.Shared.Player; @@ -42,11 +43,18 @@ public sealed class GhostSystem : SharedGhostSystem [Dependency] private readonly GameTicker _ticker = default!; [Dependency] private readonly TransformSystem _transformSystem = default!; [Dependency] private readonly VisibilitySystem _visibilitySystem = default!; + [Dependency] private readonly MetaDataSystem _metaData = default!; + + private EntityQuery _ghostQuery; + private EntityQuery _physicsQuery; public override void Initialize() { base.Initialize(); + _ghostQuery = GetEntityQuery(); + _physicsQuery = GetEntityQuery(); + SubscribeLocalEvent(OnGhostStartup); SubscribeLocalEvent(OnMapInit); SubscribeLocalEvent(OnGhostShutdown); @@ -62,12 +70,14 @@ public override void Initialize() SubscribeNetworkEvent(OnGhostWarpsRequest); SubscribeNetworkEvent(OnGhostReturnToBodyRequest); SubscribeNetworkEvent(OnGhostWarpToTargetRequest); + SubscribeNetworkEvent(OnGhostnadoRequest); SubscribeLocalEvent(OnActionPerform); SubscribeLocalEvent(OnGhostHearingAction); SubscribeLocalEvent(OnEntityStorageInsertAttempt); SubscribeLocalEvent(_ => MakeVisible(true)); + SubscribeLocalEvent(OnToggleGhostVisibilityToAll); } private void OnGhostHearingAction(EntityUid uid, GhostComponent component, ToggleGhostHearingActionEvent args) @@ -241,7 +251,7 @@ private void DeleteEntity(EntityUid uid) private void OnGhostReturnToBodyRequest(GhostReturnToBodyRequest msg, EntitySessionEventArgs args) { if (args.SenderSession.AttachedEntity is not {Valid: true} attached - || !TryComp(attached, out GhostComponent? ghost) + || !_ghostQuery.TryComp(attached, out var ghost) || !ghost.CanReturnToBody || !TryComp(attached, out ActorComponent? actor)) { @@ -257,7 +267,7 @@ private void OnGhostReturnToBodyRequest(GhostReturnToBodyRequest msg, EntitySess private void OnGhostWarpsRequest(GhostWarpsRequestEvent msg, EntitySessionEventArgs args) { if (args.SenderSession.AttachedEntity is not {Valid: true} entity - || !HasComp(entity)) + || !_ghostQuery.HasComp(entity)) { Log.Warning($"User {args.SenderSession.Name} sent a {nameof(GhostWarpsRequestEvent)} without being a ghost."); return; @@ -270,7 +280,7 @@ private void OnGhostWarpsRequest(GhostWarpsRequestEvent msg, EntitySessionEventA private void OnGhostWarpToTargetRequest(GhostWarpToTargetRequestEvent msg, EntitySessionEventArgs args) { if (args.SenderSession.AttachedEntity is not {Valid: true} attached - || !TryComp(attached, out GhostComponent? _)) + || !_ghostQuery.HasComp(attached)) { Log.Warning($"User {args.SenderSession.Name} tried to warp to {msg.Target} without being a ghost."); return; @@ -284,17 +294,37 @@ private void OnGhostWarpToTargetRequest(GhostWarpToTargetRequestEvent msg, Entit return; } + WarpTo(attached, target); + } + + private void OnGhostnadoRequest(GhostnadoRequestEvent msg, EntitySessionEventArgs args) + { + if (args.SenderSession.AttachedEntity is not {} uid + || !_ghostQuery.HasComp(uid)) + { + Log.Warning($"User {args.SenderSession.Name} tried to ghostnado without being a ghost."); + return; + } + + if (_followerSystem.GetMostFollowed() is not {} target) + return; + + WarpTo(uid, target); + } + + private void WarpTo(EntityUid uid, EntityUid target) + { if ((TryComp(target, out WarpPointComponent? warp) && warp.Follow) || HasComp(target)) { - _followerSystem.StartFollowingEntity(attached, target); + _followerSystem.StartFollowingEntity(uid, target); return; } - var xform = Transform(attached); - _transformSystem.SetCoordinates(attached, xform, Transform(target).Coordinates); - _transformSystem.AttachToGridOrMap(attached, xform); - if (TryComp(attached, out PhysicsComponent? physics)) - _physics.SetLinearVelocity(attached, Vector2.Zero, body: physics); + var xform = Transform(uid); + _transformSystem.SetCoordinates(uid, xform, Transform(target).Coordinates); + _transformSystem.AttachToGridOrMap(uid, xform); + if (_physicsQuery.TryComp(uid, out var physics)) + _physics.SetLinearVelocity(uid, Vector2.Zero, body: physics); } private IEnumerable GetLocationWarps() @@ -333,6 +363,15 @@ private void OnEntityStorageInsertAttempt(EntityUid uid, GhostComponent comp, re args.Cancelled = true; } + private void OnToggleGhostVisibilityToAll(ToggleGhostVisibilityToAllEvent ev) + { + if (ev.Handled) + return; + + ev.Handled = true; + MakeVisible(true); + } + /// /// When the round ends, make all players able to see ghosts. /// @@ -362,5 +401,59 @@ public bool DoGhostBooEvent(EntityUid target) return ghostBoo.Handled; } + + public EntityUid? SpawnGhost(Entity mind, EntityUid targetEntity, + bool canReturn = false) + { + _transformSystem.TryGetMapOrGridCoordinates(targetEntity, out var spawnPosition); + return SpawnGhost(mind, spawnPosition, canReturn); + } + + 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)) + spawnPosition = null; + + spawnPosition ??= _ticker.GetObserverSpawnPoint(); + + if (!spawnPosition.Value.IsValid(EntityManager)) + { + Log.Warning($"No spawn valid ghost spawn position found for {mind.Comp.CharacterName}" + + " \"{ToPrettyString(mind)}\""); + _minds.TransferTo(mind.Owner, null, createGhost: false, mind: mind.Comp); + return null; + } + + var ghost = SpawnAtPosition(GameTicker.ObserverPrototypeName, spawnPosition.Value); + var ghostComponent = Comp(ghost); + + // Try setting the ghost entity name to either the character name or the player name. + // If all else fails, it'll default to the default entity prototype name, "observer". + // However, that should rarely happen. + if (!string.IsNullOrWhiteSpace(mind.Comp.CharacterName)) + _metaData.SetEntityName(ghost, mind.Comp.CharacterName); + else if (!string.IsNullOrWhiteSpace(mind.Comp.Session?.Name)) + _metaData.SetEntityName(ghost, mind.Comp.Session.Name); + + if (mind.Comp.TimeOfDeath.HasValue) + { + SetTimeOfDeath(ghost, mind.Comp.TimeOfDeath!.Value, ghostComponent); + } + + SetCanReturnToBody(ghostComponent, canReturn); + + if (canReturn) + _minds.Visit(mind.Owner, ghost, mind.Comp); + else + _minds.TransferTo(mind.Owner, ghost, mind: mind.Comp); + Log.Debug($"Spawned ghost \"{ToPrettyString(ghost)}\" for {mind.Comp.CharacterName}."); + return ghost; + } } } diff --git a/Content.Server/Ghost/Roles/Components/GhostRoleComponent.cs b/Content.Server/Ghost/Roles/Components/GhostRoleComponent.cs index 997961ae67..35b8ad7556 100644 --- a/Content.Server/Ghost/Roles/Components/GhostRoleComponent.cs +++ b/Content.Server/Ghost/Roles/Components/GhostRoleComponent.cs @@ -1,4 +1,5 @@ -using Content.Server.Mind.Commands; +using Content.Server.Ghost.Roles.Raffles; +using Content.Server.Mind.Commands; using Content.Shared.Customization.Systems; using Content.Shared.Roles; @@ -88,5 +89,12 @@ public string RoleRules [ViewVariables(VVAccess.ReadWrite)] [DataField("reregister")] public bool ReregisterOnGhost { get; set; } = true; + + /// + /// If set, ghost role is raffled, otherwise it is first-come-first-serve. + /// + [DataField("raffle")] + [Access(typeof(GhostRoleSystem), Other = AccessPermissions.ReadWriteExecute)] // FIXME Friends + public GhostRoleRaffleConfig? RaffleConfig { get; set; } } } diff --git a/Content.Server/Ghost/Roles/Components/GhostRoleMobSpawnerComponent.cs b/Content.Server/Ghost/Roles/Components/GhostRoleMobSpawnerComponent.cs index 4cdab6ce07..6c2a6986fc 100644 --- a/Content.Server/Ghost/Roles/Components/GhostRoleMobSpawnerComponent.cs +++ b/Content.Server/Ghost/Roles/Components/GhostRoleMobSpawnerComponent.cs @@ -1,5 +1,4 @@ using Robust.Shared.Prototypes; -using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype; namespace Content.Server.Ghost.Roles.Components { @@ -10,17 +9,22 @@ namespace Content.Server.Ghost.Roles.Components [Access(typeof(GhostRoleSystem))] public sealed partial class GhostRoleMobSpawnerComponent : Component { - [ViewVariables(VVAccess.ReadWrite)] [DataField("deleteOnSpawn")] + [DataField] public bool DeleteOnSpawn = true; - [ViewVariables(VVAccess.ReadWrite)] [DataField("availableTakeovers")] + [DataField] public int AvailableTakeovers = 1; [ViewVariables] public int CurrentTakeovers = 0; - [ViewVariables(VVAccess.ReadWrite)] - [DataField("prototype", customTypeSerializer: typeof(PrototypeIdSerializer))] - public string? Prototype { get; private set; } + [DataField] + public EntProtoId? Prototype; + + /// + /// If this ghostrole spawner has multiple selectable ghostrole prototypes. + /// + [DataField] + public List SelectablePrototypes = []; } } diff --git a/Content.Server/Ghost/Roles/Components/GhostRoleRaffleComponent.cs b/Content.Server/Ghost/Roles/Components/GhostRoleRaffleComponent.cs new file mode 100644 index 0000000000..ac518685e9 --- /dev/null +++ b/Content.Server/Ghost/Roles/Components/GhostRoleRaffleComponent.cs @@ -0,0 +1,58 @@ +using Content.Server.Ghost.Roles.Raffles; +using Robust.Shared.Player; + +namespace Content.Server.Ghost.Roles.Components; + +/// +/// Indicates that a ghost role is currently being raffled, and stores data about the raffle in progress. +/// Raffles start when the first player joins a raffle. +/// +[RegisterComponent] +[Access(typeof(GhostRoleSystem))] +public sealed partial class GhostRoleRaffleComponent : Component +{ + /// + /// Identifier of the Ghost Role this raffle is for. + /// + [ViewVariables(VVAccess.ReadOnly)] + [DataField] + public uint Identifier { get; set; } + + /// + /// List of sessions that are currently in the raffle. + /// + [ViewVariables(VVAccess.ReadOnly)] + public HashSet CurrentMembers = []; + + /// + /// List of sessions that are currently or were previously in the raffle. + /// + [ViewVariables(VVAccess.ReadOnly)] + public HashSet AllMembers = []; + + /// + /// Time left in the raffle in seconds. This must be initialized to a positive value. + /// + [ViewVariables(VVAccess.ReadOnly)] + [DataField] + public TimeSpan Countdown = TimeSpan.MaxValue; + + /// + /// The cumulative time, i.e. how much time the raffle will take in total. Added to when the time is extended + /// by someone joining the raffle. + /// Must be set to the same value as on initialization. + /// + [ViewVariables(VVAccess.ReadOnly)] + [DataField("cumulativeTime")] + public TimeSpan CumulativeTime = TimeSpan.MaxValue; + + /// + [ViewVariables(VVAccess.ReadOnly)] + [DataField("joinExtendsDurationBy")] + public TimeSpan JoinExtendsDurationBy { get; set; } + + /// + [ViewVariables(VVAccess.ReadOnly)] + [DataField("maxDuration")] + public TimeSpan MaxDuration { get; set; } +} diff --git a/Content.Server/Ghost/Roles/GhostRoleSystem.cs b/Content.Server/Ghost/Roles/GhostRoleSystem.cs index f603416d00..346cb64ea8 100644 --- a/Content.Server/Ghost/Roles/GhostRoleSystem.cs +++ b/Content.Server/Ghost/Roles/GhostRoleSystem.cs @@ -1,7 +1,10 @@ +using System.Linq; using Content.Server.Administration.Logs; using Content.Server.EUI; using Content.Server.Ghost.Roles.Components; using Content.Server.Ghost.Roles.Events; +using Content.Server.Ghost.Roles.Raffles; +using Content.Shared.Ghost.Roles.Raffles; using Content.Server.Ghost.Roles.UI; using Content.Server.Mind.Commands; using Content.Shared.Administration; @@ -21,8 +24,13 @@ using Robust.Shared.Console; using Robust.Shared.Enums; using Robust.Shared.Player; +using Robust.Shared.Prototypes; using Robust.Shared.Random; +using Robust.Shared.Timing; using Robust.Shared.Utility; +using Content.Server.Popups; +using Content.Shared.Verbs; +using Robust.Shared.Collections; namespace Content.Server.Ghost.Roles { @@ -37,10 +45,16 @@ namespace Content.Server.Ghost.Roles [Dependency] private readonly TransformSystem _transform = default!; [Dependency] private readonly SharedMindSystem _mindSystem = default!; [Dependency] private readonly SharedRoleSystem _roleSystem = default!; + [Dependency] private readonly IGameTiming _timing = default!; + [Dependency] private readonly PopupSystem _popupSystem = default!; + [Dependency] private readonly IPrototypeManager _prototype = default!; private uint _nextRoleIdentifier; private bool _needsUpdateGhostRoleCount = true; + private readonly Dictionary> _ghostRoles = new(); + private readonly Dictionary> _ghostRoleRaffles = new(); + private readonly Dictionary _openUis = new(); private readonly Dictionary _openMakeGhostRoleUis = new(); @@ -57,13 +71,16 @@ public override void Initialize() SubscribeLocalEvent(OnMindRemoved); SubscribeLocalEvent(OnMobStateChanged); SubscribeLocalEvent(OnMapInit); - SubscribeLocalEvent(OnStartup); - SubscribeLocalEvent(OnShutdown); + SubscribeLocalEvent(OnRoleStartup); + SubscribeLocalEvent(OnRoleShutdown); SubscribeLocalEvent(OnPaused); SubscribeLocalEvent(OnUnpaused); + SubscribeLocalEvent(OnRaffleInit); + SubscribeLocalEvent(OnRaffleShutdown); SubscribeLocalEvent(OnSpawnerTakeRole); SubscribeLocalEvent(OnTakeoverTakeRole); - SubscribeLocalEvent(OnSpawnerTakeCharacter); // DeltaV - Character ghost roles, see Content.Server/DeltaV/Ghost/Roles/GhostRoleSystem.Character.cs + SubscribeLocalEvent>(OnVerb); + SubscribeLocalEvent(OnSpawnerTakeCharacter); _playerManager.PlayerStatusChanged += PlayerStatusChanged; } @@ -75,11 +92,11 @@ private void OnMobStateChanged(Entity component switch (args.NewMobState) { case MobState.Alive: - { - if (!ghostRole.Taken) - RegisterGhostRole((component, ghostRole)); - break; - } + { + if (!ghostRole.Taken) + RegisterGhostRole((component, ghostRole)); + break; + } case MobState.Critical: case MobState.Dead: UnregisterGhostRole((component, ghostRole)); @@ -101,11 +118,11 @@ private uint GetNextRoleIdentifier() public void OpenEui(ICommonSession session) { - if (session.AttachedEntity is not {Valid: true} attached || + if (session.AttachedEntity is not { Valid: true } attached || !EntityManager.HasComponent(attached)) return; - if(_openUis.ContainsKey(session)) + if (_openUis.ContainsKey(session)) CloseEui(session); var eui = _openUis[session] = new GhostRolesEui(); @@ -159,17 +176,118 @@ public void UpdateAllEui() public override void Update(float frameTime) { base.Update(frameTime); - if (_needsUpdateGhostRoleCount) + + UpdateGhostRoleCount(); + UpdateRaffles(frameTime); + } + + /// + /// Handles sending count update for the ghost role button in ghost UI, if ghost role count changed. + /// + private void UpdateGhostRoleCount() + { + if (!_needsUpdateGhostRoleCount) + return; + + _needsUpdateGhostRoleCount = false; + var response = new GhostUpdateGhostRoleCountEvent(GetGhostRoleCount()); + foreach (var player in _playerManager.Sessions) + { + RaiseNetworkEvent(response, player.Channel); + } + } + + /// + /// Handles ghost role raffle logic. + /// + private void UpdateRaffles(float frameTime) + { + var query = EntityQueryEnumerator(); + while (query.MoveNext(out var entityUid, out var raffle, out var meta)) { - _needsUpdateGhostRoleCount = false; - var response = new GhostUpdateGhostRoleCountEvent(GetGhostRolesInfo().Length); - foreach (var player in _playerManager.Sessions) + if (meta.EntityPaused) + continue; + + // if all participants leave/were removed from the raffle, the raffle is canceled. + if (raffle.CurrentMembers.Count == 0) { - RaiseNetworkEvent(response, player.Channel); + RemoveRaffleAndUpdateEui(entityUid, raffle); + continue; } + + raffle.Countdown = raffle.Countdown.Subtract(TimeSpan.FromSeconds(frameTime)); + if (raffle.Countdown.Ticks > 0) + continue; + + // the raffle is over! find someone to take over the ghost role + if (!TryComp(entityUid, out GhostRoleComponent? ghostRole)) + { + Log.Warning($"Ghost role raffle finished on {entityUid} but {nameof(GhostRoleComponent)} is missing"); + RemoveRaffleAndUpdateEui(entityUid, raffle); + continue; + } + + if (ghostRole.RaffleConfig is null) + { + Log.Warning($"Ghost role raffle finished on {entityUid} but RaffleConfig became null"); + RemoveRaffleAndUpdateEui(entityUid, raffle); + continue; + } + + var foundWinner = false; + var deciderPrototype = _prototype.Index(ghostRole.RaffleConfig.Decider); + + // use the ghost role's chosen winner picker to find a winner + deciderPrototype.Decider.PickWinner( + raffle.CurrentMembers.AsEnumerable(), + session => + { + var success = TryTakeover(session, raffle.Identifier); + foundWinner |= success; + return success; + } + ); + + if (!foundWinner) + { + Log.Warning($"Ghost role raffle for {entityUid} ({ghostRole.RoleName}) finished without " + + $"{ghostRole.RaffleConfig?.Decider} finding a winner"); + } + + // raffle over + RemoveRaffleAndUpdateEui(entityUid, raffle); } } + private bool TryTakeover(ICommonSession player, uint identifier) + { + // TODO: the following two checks are kind of redundant since they should already be removed + // from the raffle + // can't win if you are disconnected (although you shouldn't be a candidate anyway) + if (player.Status != SessionStatus.InGame) + return false; + + // can't win if you are no longer a ghost (e.g. if you returned to your body) + if (player.AttachedEntity == null || !HasComp(player.AttachedEntity)) + return false; + + if (Takeover(player, identifier)) + { + // takeover successful, we have a winner! remove the winner from other raffles they might be in + LeaveAllRaffles(player); + return true; + } + + return false; + } + + private void RemoveRaffleAndUpdateEui(EntityUid entityUid, GhostRoleRaffleComponent raffle) + { + _ghostRoleRaffles.Remove(raffle.Identifier); + RemComp(entityUid, raffle); + UpdateAllEui(); + } + private void PlayerStatusChanged(object? blah, SessionStatusEventArgs args) { if (args.NewStatus == SessionStatus.InGame) @@ -177,6 +295,11 @@ private void PlayerStatusChanged(object? blah, SessionStatusEventArgs args) var response = new GhostUpdateGhostRoleCountEvent(_ghostRoles.Count); RaiseNetworkEvent(response, args.Session.Channel); } + else + { + // people who disconnect are removed from ghost role raffles + LeaveAllRaffles(args.Session); + } } public void RegisterGhostRole(Entity role) @@ -195,24 +318,170 @@ public void UnregisterGhostRole(Entity role) return; _ghostRoles.Remove(comp.Identifier); + if (TryComp(role.Owner, out GhostRoleRaffleComponent? raffle)) + { + // if a raffle is still running, get rid of it + RemoveRaffleAndUpdateEui(role.Owner, raffle); + } + else + { + UpdateAllEui(); + } + } + + // probably fine to be init because it's never added during entity initialization, but much later + private void OnRaffleInit(Entity ent, ref ComponentInit args) + { + if (!TryComp(ent, out GhostRoleComponent? ghostRole)) + { + // can't have a raffle for a ghost role that doesn't exist + RemComp(ent); + return; + } + + var config = ghostRole.RaffleConfig; + if (config is null) + return; // should, realistically, never be reached but you never know + + var settings = config.SettingsOverride + ?? _prototype.Index(config.Settings).Settings; + + if (settings.MaxDuration < settings.InitialDuration) + { + Log.Error($"Ghost role on {ent} has invalid raffle settings (max duration shorter than initial)"); + ghostRole.RaffleConfig = null; // make it a non-raffle role so stuff isn't entirely broken + RemComp(ent); + return; + } + + var raffle = ent.Comp; + raffle.Identifier = ghostRole.Identifier; + raffle.Countdown = TimeSpan.FromSeconds(settings.InitialDuration); + raffle.CumulativeTime = TimeSpan.FromSeconds(settings.InitialDuration); + // we copy these settings into the component because they would be cumbersome to access otherwise + raffle.JoinExtendsDurationBy = TimeSpan.FromSeconds(settings.JoinExtendsDurationBy); + raffle.MaxDuration = TimeSpan.FromSeconds(settings.MaxDuration); + } + + private void OnRaffleShutdown(Entity ent, ref ComponentShutdown args) + { + _ghostRoleRaffles.Remove(ent.Comp.Identifier); + } + + /// + /// Joins the given player onto a ghost role raffle, or creates it if it doesn't exist. + /// + /// The player. + /// The ID that represents the ghost role or ghost role raffle. + /// (A raffle will have the same ID as the ghost role it's for.) + private void JoinRaffle(ICommonSession player, uint identifier) + { + if (!_ghostRoles.TryGetValue(identifier, out var roleEnt)) + return; + + // get raffle or create a new one if it doesn't exist + var raffle = _ghostRoleRaffles.TryGetValue(identifier, out var raffleEnt) + ? raffleEnt.Comp + : EnsureComp(roleEnt.Owner); + + _ghostRoleRaffles.TryAdd(identifier, (roleEnt.Owner, raffle)); + + if (!raffle.CurrentMembers.Add(player)) + { + Log.Warning($"{player.Name} tried to join raffle for ghost role {identifier} but they are already in the raffle"); + return; + } + + // if this is the first time the player joins this raffle, and the player wasn't the starter of the raffle: + // extend the countdown, but only if doing so will not make the raffle take longer than the maximum + // duration + if (raffle.AllMembers.Add(player) && raffle.AllMembers.Count > 1 + && raffle.CumulativeTime.Add(raffle.JoinExtendsDurationBy) <= raffle.MaxDuration) + { + raffle.Countdown += raffle.JoinExtendsDurationBy; + raffle.CumulativeTime += raffle.JoinExtendsDurationBy; + } + UpdateAllEui(); } - public void Takeover(ICommonSession player, uint identifier) + /// + /// Makes the given player leave the raffle corresponding to the given ID. + /// + public void LeaveRaffle(ICommonSession player, uint identifier) { - if (!_ghostRoles.TryGetValue(identifier, out var role)) + if (!_ghostRoleRaffles.TryGetValue(identifier, out var raffleEnt)) return; + if (raffleEnt.Comp.CurrentMembers.Remove(player)) + { + UpdateAllEui(); + } + else + { + Log.Warning($"{player.Name} tried to leave raffle for ghost role {identifier} but they are not in the raffle"); + } + + // (raffle ending because all players left is handled in update()) + } + + /// + /// Makes the given player leave all ghost role raffles. + /// + public void LeaveAllRaffles(ICommonSession player) + { + var shouldUpdateEui = false; + + foreach (var raffleEnt in _ghostRoleRaffles.Values) + { + shouldUpdateEui |= raffleEnt.Comp.CurrentMembers.Remove(player); + } + + if (shouldUpdateEui) + UpdateAllEui(); + } + + /// + /// Request a ghost role. If it's a raffled role starts or joins a raffle, otherwise the player immediately + /// takes over the ghost role if possible. + /// + /// The player. + /// ID of the ghost role. + public void Request(ICommonSession player, uint identifier) + { + if (!_ghostRoles.TryGetValue(identifier, out var roleEnt)) + return; + + if (roleEnt.Comp.RaffleConfig is not null) + { + JoinRaffle(player, identifier); + } + else + { + Takeover(player, identifier); + } + } + + /// + /// Attempts having the player take over the ghost role with the corresponding ID. Does not start a raffle. + /// + /// True if takeover was successful, otherwise false. + public bool Takeover(ICommonSession player, uint identifier) + { + if (!_ghostRoles.TryGetValue(identifier, out var role)) + return false; + var ev = new TakeGhostRoleEvent(player); RaiseLocalEvent(role, ref ev); if (!ev.TookRole) - return; + return false; if (player.AttachedEntity != null) _adminLogger.Add(LogType.GhostRoleTaken, LogImpact.Low, $"{player:player} took the {role.Comp.RoleName:roleName} ghost role {ToPrettyString(player.AttachedEntity.Value):entity}"); CloseEui(player); + return true; } public void Follow(ICommonSession player, uint identifier) @@ -241,7 +510,22 @@ public void GhostRoleInternalCreateMindAndTransfer(ICommonSession player, Entity _mindSystem.TransferTo(newMind, mob); } - public GhostRoleInfo[] GetGhostRolesInfo() + /// + /// Returns the number of available ghost roles. + /// + public int GetGhostRoleCount() + { + var metaQuery = GetEntityQuery(); + return _ghostRoles.Count(pair => metaQuery.GetComponent(pair.Value.Owner).EntityPaused == false); + } + + /// + /// Returns information about all available ghost roles. + /// + /// + /// If not null, the s will show if the given player is in a raffle. + /// + public GhostRoleInfo[] GetGhostRolesInfo(ICommonSession? player) { var roles = new List(); var metaQuery = GetEntityQuery(); @@ -251,7 +535,40 @@ public GhostRoleInfo[] GetGhostRolesInfo() if (metaQuery.GetComponent(uid).EntityPaused) continue; - roles.Add(new GhostRoleInfo {Identifier = id, Name = role.RoleName, Description = role.RoleDescription, Rules = role.RoleRules, Requirements = role.Requirements}); + + var kind = GhostRoleKind.FirstComeFirstServe; + GhostRoleRaffleComponent? raffle = null; + + if (role.RaffleConfig is not null) + { + kind = GhostRoleKind.RaffleReady; + + if (_ghostRoleRaffles.TryGetValue(id, out var raffleEnt)) + { + kind = GhostRoleKind.RaffleInProgress; + raffle = raffleEnt.Comp; + + if (player is not null && raffle.CurrentMembers.Contains(player)) + kind = GhostRoleKind.RaffleJoined; + } + } + + var rafflePlayerCount = (uint?) raffle?.CurrentMembers.Count ?? 0; + var raffleEndTime = raffle is not null + ? _timing.CurTime.Add(raffle.Countdown) + : TimeSpan.MinValue; + + roles.Add(new GhostRoleInfo + { + Identifier = id, + Name = role.RoleName, + Description = role.RoleDescription, + Rules = role.RoleRules, + Requirements = role.Requirements, + Kind = kind, + RafflePlayerCount = rafflePlayerCount, + RaffleEndTime = raffleEndTime + }); } return roles.ToArray(); @@ -266,6 +583,10 @@ private void OnPlayerAttached(PlayerAttachedEvent message) if (HasComp(message.Entity)) return; + // The player is not a ghost (anymore), so they should not be in any raffles. Remove them. + // This ensures player doesn't win a raffle after returning to their (revived) body and ends up being + // forced into a ghost role. + LeaveAllRaffles(message.Player); CloseEui(message.Player); } @@ -300,6 +621,7 @@ public void Reset(RoundRestartCleanupEvent ev) _openUis.Clear(); _ghostRoles.Clear(); + _ghostRoleRaffles.Clear(); _nextRoleIdentifier = 0; } @@ -325,12 +647,12 @@ private void OnMapInit(Entity ent, ref MapInitEvent args) RemCompDeferred(ent); } - private void OnStartup(Entity ent, ref ComponentStartup args) + private void OnRoleStartup(Entity ent, ref ComponentStartup args) { RegisterGhostRole(ent); } - private void OnShutdown(Entity role, ref ComponentShutdown args) + private void OnRoleShutdown(Entity role, ref ComponentShutdown args) { UnregisterGhostRole(role); } @@ -408,6 +730,63 @@ private void OnTakeoverTakeRole(EntityUid uid, GhostTakeoverAvailableComponent c args.TookRole = true; } + + private void OnVerb(EntityUid uid, GhostRoleMobSpawnerComponent component, GetVerbsEvent args) + { + var prototypes = component.SelectablePrototypes; + if (prototypes.Count < 1) + return; + + if (!args.CanAccess || !args.CanInteract || args.Hands == null) + return; + + var verbs = new ValueList(); + + foreach (var prototypeID in prototypes) + { + if (_prototype.TryIndex(prototypeID, out var prototype)) + { + var verb = CreateVerb(uid, component, args.User, prototype); + verbs.Add(verb); + } + } + + args.Verbs.UnionWith(verbs); + } + + private Verb CreateVerb(EntityUid uid, GhostRoleMobSpawnerComponent component, EntityUid userUid, GhostRolePrototype prototype) + { + var verbText = Loc.GetString(prototype.Name); + + return new Verb() + { + Text = verbText, + Disabled = component.Prototype == prototype.EntityPrototype, + Category = VerbCategory.SelectType, + Act = () => SetMode(uid, prototype, verbText, component, userUid) + }; + } + + public void SetMode(EntityUid uid, GhostRolePrototype prototype, string verbText, GhostRoleMobSpawnerComponent? component, EntityUid? userUid = null) + { + if (!Resolve(uid, ref component)) + return; + + var ghostrolecomp = EnsureComp(uid); + + component.Prototype = prototype.EntityPrototype; + ghostrolecomp.RoleName = verbText; + ghostrolecomp.RoleDescription = prototype.Description; + ghostrolecomp.RoleRules = prototype.Rules; + + // Dirty(ghostrolecomp); + + if (userUid != null) + { + var msg = Loc.GetString("ghostrole-spawner-select", ("mode", verbText)); + _popupSystem.PopupEntity(msg, uid, userUid.Value); + } + } } [AnyCommand] @@ -418,7 +797,7 @@ public sealed class GhostRoles : IConsoleCommand public string Help => $"{Command}"; public void Execute(IConsoleShell shell, string argStr, string[] args) { - if(shell.Player != null) + if (shell.Player != null) EntitySystem.Get().OpenEui(shell.Player); else shell.WriteLine("You can only open the ghost roles UI on a client."); diff --git a/Content.Server/Ghost/Roles/MakeRaffledGhostRoleCommand.cs b/Content.Server/Ghost/Roles/MakeRaffledGhostRoleCommand.cs new file mode 100644 index 0000000000..5f5eabdad4 --- /dev/null +++ b/Content.Server/Ghost/Roles/MakeRaffledGhostRoleCommand.cs @@ -0,0 +1,127 @@ +using System.Linq; +using Content.Server.Administration; +using Content.Server.Ghost.Roles.Components; +using Content.Server.Ghost.Roles.Raffles; +using Content.Shared.Administration; +using Content.Shared.Ghost.Roles.Raffles; +using Content.Shared.Mind.Components; +using Robust.Shared.Console; +using Robust.Shared.Prototypes; + +namespace Content.Server.Ghost.Roles +{ + [AdminCommand(AdminFlags.Admin)] + public sealed class MakeRaffledGhostRoleCommand : IConsoleCommand + { + [Dependency] private readonly IPrototypeManager _protoManager = default!; + [Dependency] private readonly IEntityManager _entManager = default!; + + public string Command => "makeghostroleraffled"; + public string Description => "Turns an entity into a raffled ghost role."; + public string Help => $"Usage: {Command} ( | ) []\n" + + $"Durations are in seconds."; + + public void Execute(IConsoleShell shell, string argStr, string[] args) + { + if (args.Length is < 4 or > 7) + { + shell.WriteLine($"Invalid amount of arguments.\n{Help}"); + return; + } + + if (!NetEntity.TryParse(args[0], out var uidNet) || !_entManager.TryGetEntity(uidNet, out var uid)) + { + shell.WriteLine($"{args[0]} is not a valid entity uid."); + return; + } + + if (!_entManager.TryGetComponent(uid, out MetaDataComponent? metaData)) + { + shell.WriteLine($"No entity found with uid {uid}"); + return; + } + + if (_entManager.TryGetComponent(uid, out MindContainerComponent? mind) && + mind.HasMind) + { + shell.WriteLine($"Entity {metaData.EntityName} with id {uid} already has a mind."); + return; + } + + if (_entManager.TryGetComponent(uid, out GhostRoleComponent? ghostRole)) + { + shell.WriteLine($"Entity {metaData.EntityName} with id {uid} already has a {nameof(GhostRoleComponent)}"); + return; + } + + if (_entManager.HasComponent(uid)) + { + shell.WriteLine($"Entity {metaData.EntityName} with id {uid} already has a {nameof(GhostTakeoverAvailableComponent)}"); + return; + } + + var name = args[1]; + var description = args[2]; + + // if the rules are specified then use those, otherwise use the default + var rules = args.Length switch + { + 5 => args[4], + 7 => args[6], + _ => Loc.GetString("ghost-role-component-default-rules"), + }; + + // is it an invocation with a prototype ID and optional rules? + var isProto = args.Length is 4 or 5; + GhostRoleRaffleSettings settings; + + if (isProto) + { + if (!_protoManager.TryIndex(args[4], out var proto)) + { + var validProtos = string.Join(", ", + _protoManager.EnumeratePrototypes().Select(p => p.ID) + ); + + shell.WriteLine($"{args[4]} is not a valid raffle settings prototype. Valid options: {validProtos}"); + return; + } + + settings = proto.Settings; + } + else + { + if (!uint.TryParse(args[3], out var initial) + || !uint.TryParse(args[4], out var extends) + || !uint.TryParse(args[5], out var max) + || initial == 0 || max == 0) + { + shell.WriteLine($"The raffle initial/extends/max settings must be positive numbers."); + return; + } + + if (initial > max) + { + shell.WriteLine("The initial duration must be smaller than or equal to the maximum duration."); + return; + } + + settings = new GhostRoleRaffleSettings() + { + InitialDuration = initial, + JoinExtendsDurationBy = extends, + MaxDuration = max + }; + } + + ghostRole = _entManager.AddComponent(uid.Value); + _entManager.AddComponent(uid.Value); + ghostRole.RoleName = name; + ghostRole.RoleDescription = description; + ghostRole.RoleRules = rules; + ghostRole.RaffleConfig = new GhostRoleRaffleConfig(settings); + + shell.WriteLine($"Made entity {metaData.EntityName} a raffled ghost role."); + } + } +} diff --git a/Content.Server/Ghost/Roles/Raffles/GhostRoleRaffleConfig.cs b/Content.Server/Ghost/Roles/Raffles/GhostRoleRaffleConfig.cs new file mode 100644 index 0000000000..052704df25 --- /dev/null +++ b/Content.Server/Ghost/Roles/Raffles/GhostRoleRaffleConfig.cs @@ -0,0 +1,35 @@ +using Content.Shared.Ghost.Roles.Raffles; +using Robust.Shared.Prototypes; + +namespace Content.Server.Ghost.Roles.Raffles; + +/// +/// Raffle configuration. +/// +[DataDefinition] +public sealed partial class GhostRoleRaffleConfig +{ + public GhostRoleRaffleConfig(GhostRoleRaffleSettings settings) + { + SettingsOverride = settings; + } + + /// + /// Specifies the raffle settings to use. + /// + [DataField("settings", required: true)] + public ProtoId Settings { get; set; } = "default"; + + /// + /// If not null, the settings from are ignored and these settings are used instead. + /// Intended for allowing admins to set custom raffle settings for admeme ghost roles. + /// + [ViewVariables(VVAccess.ReadOnly)] + public GhostRoleRaffleSettings? SettingsOverride { get; set; } + + /// + /// Sets which is used. + /// + [DataField("decider")] + public ProtoId Decider { get; set; } = "default"; +} diff --git a/Content.Server/Ghost/Roles/Raffles/GhostRoleRaffleDeciderPrototype.cs b/Content.Server/Ghost/Roles/Raffles/GhostRoleRaffleDeciderPrototype.cs new file mode 100644 index 0000000000..b2ebf6ca5f --- /dev/null +++ b/Content.Server/Ghost/Roles/Raffles/GhostRoleRaffleDeciderPrototype.cs @@ -0,0 +1,20 @@ +using Robust.Shared.Prototypes; + +namespace Content.Server.Ghost.Roles.Raffles; + +/// +/// Allows getting a as prototype. +/// +[Prototype("ghostRoleRaffleDecider")] +public sealed class GhostRoleRaffleDeciderPrototype : IPrototype +{ + /// + [IdDataField] + public string ID { get; private set; } = default!; + + /// + /// The instance that chooses the winner of a raffle. + /// + [DataField("decider", required: true)] + public IGhostRoleRaffleDecider Decider { get; private set; } = new RngGhostRoleRaffleDecider(); +} diff --git a/Content.Server/Ghost/Roles/Raffles/IGhostRoleRaffleDecider.cs b/Content.Server/Ghost/Roles/Raffles/IGhostRoleRaffleDecider.cs new file mode 100644 index 0000000000..bdd2bf046d --- /dev/null +++ b/Content.Server/Ghost/Roles/Raffles/IGhostRoleRaffleDecider.cs @@ -0,0 +1,28 @@ +using Robust.Shared.Player; + +namespace Content.Server.Ghost.Roles.Raffles; + +/// +/// Chooses a winner of a ghost role raffle. +/// +[ImplicitDataDefinitionForInheritors] +public partial interface IGhostRoleRaffleDecider +{ + /// + /// Chooses a winner of a ghost role raffle draw from the given pool of candidates. + /// + /// The players in the session at the time of drawing. + /// + /// Call this with the chosen winner as argument. + ///
  • If true is returned, your winner was able to take over the ghost role, and the drawing is complete. + /// Do not call again after true is returned.
  • + ///
  • If false is returned, your winner was not able to take over the ghost role, + /// and you must choose another winner, and call with the new winner as argument.
  • + ///
+ /// + /// If is not called, or only returns false, the raffle will end without a winner. + /// Do not call with the same player several times. + /// + void PickWinner(IEnumerable candidates, Func tryTakeover); +} + diff --git a/Content.Server/Ghost/Roles/Raffles/RngGhostRoleRaffleDecider.cs b/Content.Server/Ghost/Roles/Raffles/RngGhostRoleRaffleDecider.cs new file mode 100644 index 0000000000..b91d359935 --- /dev/null +++ b/Content.Server/Ghost/Roles/Raffles/RngGhostRoleRaffleDecider.cs @@ -0,0 +1,27 @@ +using System.Linq; +using JetBrains.Annotations; +using Robust.Shared.Player; +using Robust.Shared.Random; + +namespace Content.Server.Ghost.Roles.Raffles; + +/// +/// Chooses the winner of a ghost role raffle entirely randomly, without any weighting. +/// +[UsedImplicitly(ImplicitUseTargetFlags.WithMembers)] +public sealed partial class RngGhostRoleRaffleDecider : IGhostRoleRaffleDecider +{ + public void PickWinner(IEnumerable candidates, Func tryTakeover) + { + var random = IoCManager.Resolve(); + + var choices = candidates.ToList(); + random.Shuffle(choices); // shuffle the list so we can pick a lucky winner! + + foreach (var candidate in choices) + { + if (tryTakeover(candidate)) + return; + } + } +} diff --git a/Content.Server/Ghost/Roles/UI/GhostRolesEui.cs b/Content.Server/Ghost/Roles/UI/GhostRolesEui.cs index 627231db9e..c1e39919a2 100644 --- a/Content.Server/Ghost/Roles/UI/GhostRolesEui.cs +++ b/Content.Server/Ghost/Roles/UI/GhostRolesEui.cs @@ -6,9 +6,16 @@ namespace Content.Server.Ghost.Roles.UI { public sealed class GhostRolesEui : BaseEui { + private readonly GhostRoleSystem _ghostRoleSystem; + + public GhostRolesEui() + { + _ghostRoleSystem = IoCManager.Resolve().GetEntitySystem(); + } + public override GhostRolesEuiState GetNewState() { - return new(EntitySystem.Get().GetGhostRolesInfo()); + return new(_ghostRoleSystem.GetGhostRolesInfo(Player)); } public override void HandleMessage(EuiMessageBase msg) @@ -17,11 +24,14 @@ public override void HandleMessage(EuiMessageBase msg) switch (msg) { - case GhostRoleTakeoverRequestMessage req: - EntitySystem.Get().Takeover(Player, req.Identifier); + case RequestGhostRoleMessage req: + _ghostRoleSystem.Request(Player, req.Identifier); + break; + case FollowGhostRoleMessage req: + _ghostRoleSystem.Follow(Player, req.Identifier); break; - case GhostRoleFollowRequestMessage req: - EntitySystem.Get().Follow(Player, req.Identifier); + case LeaveGhostRoleRaffleMessage req: + _ghostRoleSystem.LeaveRaffle(Player, req.Identifier); break; } } diff --git a/Content.Server/Gravity/GravityGeneratorComponent.cs b/Content.Server/Gravity/GravityGeneratorComponent.cs index f946292038..f47d397939 100644 --- a/Content.Server/Gravity/GravityGeneratorComponent.cs +++ b/Content.Server/Gravity/GravityGeneratorComponent.cs @@ -37,6 +37,9 @@ public sealed partial class GravityGeneratorComponent : SharedGravityGeneratorCo // 0 -> 1 [ViewVariables(VVAccess.ReadWrite)] [DataField("charge")] public float Charge { get; set; } = 1; + [DataField(customTypeSerializer: typeof(PrototypeIdSerializer))] + public string MachinePartMaxChargeMultiplier = "Capacitor"; + /// /// Is the gravity generator currently "producing" gravity? /// diff --git a/Content.Server/Gravity/GravityGeneratorSystem.cs b/Content.Server/Gravity/GravityGeneratorSystem.cs index ec5646457e..dc31c004c6 100644 --- a/Content.Server/Gravity/GravityGeneratorSystem.cs +++ b/Content.Server/Gravity/GravityGeneratorSystem.cs @@ -1,5 +1,6 @@ using Content.Server.Administration.Logs; using Content.Server.Audio; +using Content.Server.Construction; using Content.Server.Power.Components; using Content.Server.Emp; using Content.Shared.Database; @@ -27,6 +28,7 @@ public override void Initialize() SubscribeLocalEvent(OnComponentShutdown); SubscribeLocalEvent(OnParentChanged); // Or just anchor changed? SubscribeLocalEvent(OnInteractHand); + SubscribeLocalEvent(OnRefreshParts); SubscribeLocalEvent( OnSwitchGenerator); @@ -134,13 +136,13 @@ public override void Update(float frameTime) } private void SetSwitchedOn(EntityUid uid, GravityGeneratorComponent component, bool on, - ApcPowerReceiverComponent? powerReceiver = null, ICommonSession? session = null) + ApcPowerReceiverComponent? powerReceiver = null, EntityUid? user = null) { if (!Resolve(uid, ref powerReceiver)) return; - if (session is { AttachedEntity: { } }) - _adminLogger.Add(LogType.Action, on ? LogImpact.Medium : LogImpact.High, $"{session:player} set ${ToPrettyString(uid):target} to {(on ? "on" : "off")}"); + if (user != null) + _adminLogger.Add(LogType.Action, on ? LogImpact.Medium : LogImpact.High, $"{ToPrettyString(user)} set ${ToPrettyString(uid):target} to {(on ? "on" : "off")}"); component.SwitchedOn = on; UpdatePowerState(component, powerReceiver); @@ -157,7 +159,7 @@ private static void UpdatePowerState( private void UpdateUI(Entity ent, float chargeRate) { var (_, component, powerReceiver) = ent; - if (!_uiSystem.IsUiOpen(ent, SharedGravityGeneratorComponent.GravityGeneratorUiKey.Key)) + if (!_uiSystem.IsUiOpen(ent.Owner, SharedGravityGeneratorComponent.GravityGeneratorUiKey.Key)) return; var chargeTarget = chargeRate < 0 ? 0 : component.MaxCharge; @@ -192,8 +194,8 @@ private void UpdateUI(Entity ent, ref ComponentInit private void OnInteractHand(EntityUid uid, GravityGeneratorComponent component, InteractHandEvent args) { - if (!EntityManager.TryGetComponent(args.User, out ActorComponent? actor)) - return; - ApcPowerReceiverComponent? powerReceiver = default!; if (!Resolve(uid, ref powerReceiver)) return; @@ -223,7 +222,7 @@ private void OnInteractHand(EntityUid uid, GravityGeneratorComponent component, if (!component.Intact || powerReceiver.PowerReceived < component.IdlePowerUse) return; - _uiSystem.TryOpen(uid, SharedGravityGeneratorComponent.GravityGeneratorUiKey.Key, actor.PlayerSession); + _uiSystem.OpenUi(uid, SharedGravityGeneratorComponent.GravityGeneratorUiKey.Key, args.User); component.NeedUIUpdate = true; } @@ -257,6 +256,12 @@ public void UpdateState(Entity ent, AppearanceComponent? appearance) { _ambientSoundSystem.SetAmbience(ent, false); @@ -290,7 +295,7 @@ private void OnSwitchGenerator( GravityGeneratorComponent component, SharedGravityGeneratorComponent.SwitchGeneratorMessage args) { - SetSwitchedOn(uid, component, args.On, session:args.Session); + SetSwitchedOn(uid, component, args.On, user: args.Actor); } private void OnEmpPulse(EntityUid uid, GravityGeneratorComponent component, EmpPulseEvent args) diff --git a/Content.Server/GridPreloader/GridPreloaderComponent.cs b/Content.Server/GridPreloader/GridPreloaderComponent.cs new file mode 100644 index 0000000000..9ff31927d0 --- /dev/null +++ b/Content.Server/GridPreloader/GridPreloaderComponent.cs @@ -0,0 +1,16 @@ +using Content.Shared.GridPreloader.Prototypes; +using Robust.Shared.Map; +using Robust.Shared.Prototypes; + +namespace Content.Server.GridPreloader; + +/// +/// Component storing data about preloaded grids and their location +/// Goes on the map entity +/// +[RegisterComponent, Access(typeof(GridPreloaderSystem))] +public sealed partial class GridPreloaderComponent : Component +{ + [DataField] + public Dictionary, List> PreloadedGrids = new(); +} diff --git a/Content.Server/GridPreloader/GridPreloaderSystem.cs b/Content.Server/GridPreloader/GridPreloaderSystem.cs new file mode 100644 index 0000000000..569fe54141 --- /dev/null +++ b/Content.Server/GridPreloader/GridPreloaderSystem.cs @@ -0,0 +1,147 @@ +using System.Diagnostics.CodeAnalysis; +using Content.Shared.CCVar; +using Content.Shared.GridPreloader.Prototypes; +using Content.Shared.GridPreloader.Systems; +using Robust.Server.GameObjects; +using Robust.Server.Maps; +using Robust.Shared.Configuration; +using Robust.Shared.Map; +using Robust.Shared.Map.Components; +using Robust.Shared.Physics.Components; +using Robust.Shared.Prototypes; +using System.Numerics; +using Content.Server.GameTicking; +using Content.Shared.GameTicking; +using JetBrains.Annotations; + +namespace Content.Server.GridPreloader; +public sealed class GridPreloaderSystem : SharedGridPreloaderSystem +{ + [Dependency] private readonly IConfigurationManager _cfg = default!; + [Dependency] private readonly MapSystem _map = default!; + [Dependency] private readonly MapLoaderSystem _mapLoader = default!; + [Dependency] private readonly MetaDataSystem _meta = default!; + [Dependency] private readonly IPrototypeManager _prototype = default!; + [Dependency] private readonly SharedTransformSystem _transform = default!; + + public override void Initialize() + { + base.Initialize(); + + SubscribeLocalEvent(OnRoundRestart); + SubscribeLocalEvent(OnPostGameMapLoad); + } + + private void OnRoundRestart(RoundRestartCleanupEvent ev) + { + var ent = GetPreloaderEntity(); + if (ent == null) + return; + + Del(ent.Value.Owner); + } + + private void OnPostGameMapLoad(PostGameMapLoad ev) + { + EnsurePreloadedGridMap(); + } + + private void EnsurePreloadedGridMap() + { + // Already have a preloader? + if (GetPreloaderEntity() != null) + return; + + if (!_cfg.GetCVar(CCVars.PreloadGrids)) + return; + + var mapUid = _map.CreateMap(out var mapId, false); + var preloader = EnsureComp(mapUid); + _meta.SetEntityName(mapUid, "GridPreloader Map"); + _map.SetPaused(mapId, true); + + var globalXOffset = 0f; + foreach (var proto in _prototype.EnumeratePrototypes()) + { + for (var i = 0; i < proto.Copies; i++) + { + var options = new MapLoadOptions + { + LoadMap = false, + }; + + if (!_mapLoader.TryLoad(mapId, proto.Path.ToString(), out var roots, options)) + continue; + + // only supports loading maps with one grid. + if (roots.Count != 1) + continue; + + var gridUid = roots[0]; + + // gets grid + also confirms that the root we loaded is actually a grid + if (!TryComp(gridUid, out var mapGrid)) + continue; + + if (!TryComp(gridUid, out var physics)) + continue; + + // Position Calculating + globalXOffset += mapGrid.LocalAABB.Width / 2; + + var coords = new Vector2(-physics.LocalCenter.X + globalXOffset, -physics.LocalCenter.Y); + _transform.SetCoordinates(gridUid, new EntityCoordinates(mapUid, coords)); + + globalXOffset += (mapGrid.LocalAABB.Width / 2) + 1; + + // Add to list + if (!preloader.PreloadedGrids.ContainsKey(proto.ID)) + preloader.PreloadedGrids[proto.ID] = new(); + preloader.PreloadedGrids[proto.ID].Add(gridUid); + } + } + } + + /// + /// Should be a singleton no matter station count, so we can assume 1 + /// (better support for singleton component in engine at some point i guess) + /// + /// + public Entity? GetPreloaderEntity() + { + var query = AllEntityQuery(); + while (query.MoveNext(out var uid, out var comp)) + { + return (uid, comp); + } + + return null; + } + + /// + /// An attempt to get a certain preloaded shuttle. If there are no more such shuttles left, returns null + /// + [PublicAPI] + public bool TryGetPreloadedGrid(ProtoId proto, [NotNullWhen(true)] out EntityUid? preloadedGrid, GridPreloaderComponent? preloader = null) + { + preloadedGrid = null; + + if (preloader == null) + { + preloader = GetPreloaderEntity(); + if (preloader == null) + return false; + } + + if (!preloader.PreloadedGrids.TryGetValue(proto, out var list) || list.Count <= 0) + return false; + + preloadedGrid = list[0]; + + list.RemoveAt(0); + if (list.Count == 0) + preloader.PreloadedGrids.Remove(proto); + + return true; + } +} diff --git a/Content.Server/Hands/Systems/HandsSystem.cs b/Content.Server/Hands/Systems/HandsSystem.cs index bd24ddab5d..289c440ab7 100644 --- a/Content.Server/Hands/Systems/HandsSystem.cs +++ b/Content.Server/Hands/Systems/HandsSystem.cs @@ -19,6 +19,7 @@ using Robust.Shared.Input.Binding; using Robust.Shared.Map; using Robust.Shared.Player; +using Robust.Shared.Random; using Robust.Shared.Timing; using Robust.Shared.Utility; @@ -27,10 +28,10 @@ namespace Content.Server.Hands.Systems public sealed class HandsSystem : SharedHandsSystem { [Dependency] private readonly IGameTiming _timing = default!; + [Dependency] private readonly IRobustRandom _random = default!; [Dependency] private readonly StackSystem _stackSystem = default!; [Dependency] private readonly VirtualItemSystem _virtualItemSystem = default!; [Dependency] private readonly ActionBlockerSystem _actionBlockerSystem = default!; - [Dependency] private readonly SharedHandsSystem _handsSystem = default!; [Dependency] private readonly SharedTransformSystem _transformSystem = default!; [Dependency] private readonly PullingSystem _pullingSystem = default!; [Dependency] private readonly ThrowingSystem _throwingSystem = default!; @@ -90,7 +91,8 @@ private void OnDisarmed(EntityUid uid, HandsComponent component, DisarmedEvent a if (TryComp(uid, out PullerComponent? puller) && TryComp(puller.Pulling, out PullableComponent? pullable)) _pullingSystem.TryStopPull(puller.Pulling.Value, pullable); - if (!_handsSystem.TryDrop(uid, component.ActiveHand!, null, checkActionBlocker: false)) + var offsetRandomCoordinates = _transformSystem.GetMoverCoordinates(args.Target).Offset(_random.NextVector2(1f, 1.5f)); + if (!ThrowHeldItem(args.Target, offsetRandomCoordinates)) return; args.Handled = true; // no shove/stun. diff --git a/Content.Server/HealthExaminable/HealthExaminableComponent.cs b/Content.Server/HealthExaminable/HealthExaminableComponent.cs deleted file mode 100644 index 04053aed70..0000000000 --- a/Content.Server/HealthExaminable/HealthExaminableComponent.cs +++ /dev/null @@ -1,27 +0,0 @@ -using Content.Shared.Damage.Prototypes; -using Content.Shared.FixedPoint; -using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype.Set; - -namespace Content.Server.HealthExaminable; - -[RegisterComponent, Access(typeof(HealthExaminableSystem))] -public sealed partial class HealthExaminableComponent : Component -{ - // - // The thresholds for determining the examine text for certain amounts of damage. - // These are calculated as a percentage of the entity's critical threshold. - // - public List Thresholds = new() - { FixedPoint2.New(0.10), FixedPoint2.New(0.25), FixedPoint2.New(0.50), FixedPoint2.New(0.75) }; - - [DataField("examinableTypes", required: true, customTypeSerializer:typeof(PrototypeIdHashSetSerializer))] - public HashSet ExaminableTypes = default!; - - /// - /// Health examine text is automatically generated through creating loc string IDs, in the form: - /// `health-examine-[prefix]-[type]-[threshold]` - /// This part determines the prefix. - /// - [DataField("locPrefix")] - public string LocPrefix = "carbon"; -} diff --git a/Content.Server/HeightAdjust/BloodstreamAdjustSystem.cs b/Content.Server/HeightAdjust/BloodstreamAdjustSystem.cs index 92e03e0c11..9ba0ee4b00 100644 --- a/Content.Server/HeightAdjust/BloodstreamAdjustSystem.cs +++ b/Content.Server/HeightAdjust/BloodstreamAdjustSystem.cs @@ -1,4 +1,5 @@ using Content.Server.Body.Components; +using Content.Server.Body.Systems; using Content.Server.Chemistry.Containers.EntitySystems; using Content.Shared.CCVar; using Content.Shared.Chemistry.Reagent; @@ -10,6 +11,7 @@ namespace Content.Server.HeightAdjust; public sealed class BloodstreamAdjustSystem : EntitySystem { + [Dependency] private readonly BloodstreamSystem _bloodstream = default!; [Dependency] private readonly IConfigurationManager _config = default!; [Dependency] private readonly ContestsSystem _contests = default!; [Dependency] private readonly SolutionContainerSystem _solutionContainer = default!; @@ -40,6 +42,8 @@ public bool TryAdjustBloodstream(Entity ent) bloodSolution.MaxVolume = newVolume; bloodSolution.SetContents([new ReagentQuantity(bloodstream.BloodReagent, newBloodLevel, null)], false); + _bloodstream.SetBloodMaxVolume(ent.Owner, newVolume, bloodstream); + return true; } } diff --git a/Content.Server/Humanoid/Systems/HumanoidAppearanceSystem.Modifier.cs b/Content.Server/Humanoid/Systems/HumanoidAppearanceSystem.Modifier.cs index 05a8b06222..06225c9d57 100644 --- a/Content.Server/Humanoid/Systems/HumanoidAppearanceSystem.Modifier.cs +++ b/Content.Server/Humanoid/Systems/HumanoidAppearanceSystem.Modifier.cs @@ -32,8 +32,8 @@ private void OnVerbsRequest(EntityUid uid, HumanoidAppearanceComponent component Icon = new SpriteSpecifier.Rsi(new ("/Textures/Mobs/Customization/reptilian_parts.rsi"), "tail_smooth"), Act = () => { - _uiSystem.TryOpen(uid, HumanoidMarkingModifierKey.Key, actor.PlayerSession); - _uiSystem.TrySetUiState( + _uiSystem.OpenUi(uid, HumanoidMarkingModifierKey.Key, actor.PlayerSession); + _uiSystem.SetUiState( uid, HumanoidMarkingModifierKey.Key, new HumanoidMarkingModifierState(component.MarkingSet, component.Species, @@ -48,8 +48,7 @@ private void OnVerbsRequest(EntityUid uid, HumanoidAppearanceComponent component private void OnBaseLayersSet(EntityUid uid, HumanoidAppearanceComponent component, HumanoidMarkingModifierBaseLayersSetMessage message) { - if (message.Session is not { } player - || !_adminManager.HasAdminFlag(player, AdminFlags.Fun)) + if (!_adminManager.HasAdminFlag(message.Actor, AdminFlags.Fun)) { return; } @@ -67,7 +66,7 @@ private void OnBaseLayersSet(EntityUid uid, HumanoidAppearanceComponent componen if (message.ResendState) { - _uiSystem.TrySetUiState( + _uiSystem.SetUiState( uid, HumanoidMarkingModifierKey.Key, new HumanoidMarkingModifierState(component.MarkingSet, component.Species, @@ -81,8 +80,7 @@ private void OnBaseLayersSet(EntityUid uid, HumanoidAppearanceComponent componen private void OnMarkingsSet(EntityUid uid, HumanoidAppearanceComponent component, HumanoidMarkingModifierMarkingSetMessage message) { - if (message.Session is not { } player - || !_adminManager.HasAdminFlag(player, AdminFlags.Fun)) + if (!_adminManager.HasAdminFlag(message.Actor, AdminFlags.Fun)) { return; } @@ -92,7 +90,7 @@ private void OnMarkingsSet(EntityUid uid, HumanoidAppearanceComponent component, if (message.ResendState) { - _uiSystem.TrySetUiState( + _uiSystem.SetUiState( uid, HumanoidMarkingModifierKey.Key, new HumanoidMarkingModifierState(component.MarkingSet, component.Species, diff --git a/Content.Server/IdentityManagement/IdentitySystem.cs b/Content.Server/IdentityManagement/IdentitySystem.cs index a959b96ef9..4766b89172 100644 --- a/Content.Server/IdentityManagement/IdentitySystem.cs +++ b/Content.Server/IdentityManagement/IdentitySystem.cs @@ -19,7 +19,7 @@ namespace Content.Server.IdentityManagement; /// /// Responsible for updating the identity of an entity on init or clothing equip/unequip. /// -public class IdentitySystem : SharedIdentitySystem +public sealed class IdentitySystem : SharedIdentitySystem { [Dependency] private readonly IdCardSystem _idCard = default!; [Dependency] private readonly IAdminLogManager _adminLog = default!; diff --git a/Content.Server/ImmovableRod/ImmovableRodComponent.cs b/Content.Server/ImmovableRod/ImmovableRodComponent.cs index 05fa3d9d9b..8b57a71696 100644 --- a/Content.Server/ImmovableRod/ImmovableRodComponent.cs +++ b/Content.Server/ImmovableRod/ImmovableRodComponent.cs @@ -42,7 +42,7 @@ public sealed partial class ImmovableRodComponent : Component /// If true, this will gib & delete bodies ///
[DataField] - public bool ShouldGib = true; + public bool ShouldGib; /// /// Damage done, if not gibbing diff --git a/Content.Server/ImmovableRod/ImmovableRodSystem.cs b/Content.Server/ImmovableRod/ImmovableRodSystem.cs index 4553dda095..f9873b0d6a 100644 --- a/Content.Server/ImmovableRod/ImmovableRodSystem.cs +++ b/Content.Server/ImmovableRod/ImmovableRodSystem.cs @@ -60,18 +60,21 @@ private void OnMapInit(EntityUid uid, ImmovableRodComponent component, MapInitEv _physics.SetFriction(uid, phys, 0f); _physics.SetBodyStatus(uid, phys, BodyStatus.InAir); - if (!component.RandomizeVelocity) - return; - var xform = Transform(uid); - var vel = component.DirectionOverride.Degrees switch + var (worldPos, worldRot) = _transform.GetWorldPositionRotation(uid); + var vel = worldRot.ToWorldVec() * component.MaxSpeed; + + if (component.RandomizeVelocity) { - 0f => _random.NextVector2(component.MinSpeed, component.MaxSpeed), - _ => _transform.GetWorldRotation(uid).RotateVec(component.DirectionOverride.ToVec()) * _random.NextFloat(component.MinSpeed, component.MaxSpeed) - }; + vel = component.DirectionOverride.Degrees switch + { + 0f => _random.NextVector2(component.MinSpeed, component.MaxSpeed), + _ => worldRot.RotateVec(component.DirectionOverride.ToVec()) * _random.NextFloat(component.MinSpeed, component.MaxSpeed) + }; + } _physics.ApplyLinearImpulse(uid, vel, body: phys); - xform.LocalRotation = (vel - _transform.GetWorldPosition(uid)).ToWorldAngle() + MathHelper.PiOver2; + xform.LocalRotation = (vel - worldPos).ToWorldAngle() + MathHelper.PiOver2; } } diff --git a/Content.Server/Instruments/InstrumentComponent.cs b/Content.Server/Instruments/InstrumentComponent.cs index 1b7913386d..db9dbb375b 100644 --- a/Content.Server/Instruments/InstrumentComponent.cs +++ b/Content.Server/Instruments/InstrumentComponent.cs @@ -1,6 +1,7 @@ using Content.Server.UserInterface; using Content.Shared.Instruments; using Robust.Shared.Player; +using ActivatableUIComponent = Content.Shared.UserInterface.ActivatableUIComponent; namespace Content.Server.Instruments; @@ -16,9 +17,9 @@ public sealed partial class InstrumentComponent : SharedInstrumentComponent [ViewVariables] public uint LastSequencerTick = 0; // TODO Instruments: Make this ECS - public ICommonSession? InstrumentPlayer => + public EntityUid? InstrumentPlayer => _entMan.GetComponentOrNull(Owner)?.CurrentSingleUser - ?? _entMan.GetComponentOrNull(Owner)?.PlayerSession; + ?? _entMan.GetComponentOrNull(Owner)?.PlayerSession.AttachedEntity; } [RegisterComponent] diff --git a/Content.Server/Instruments/InstrumentSystem.cs b/Content.Server/Instruments/InstrumentSystem.cs index 8dd9644e3c..f5a6713886 100644 --- a/Content.Server/Instruments/InstrumentSystem.cs +++ b/Content.Server/Instruments/InstrumentSystem.cs @@ -111,7 +111,7 @@ private void OnMidiStart(InstrumentStartMidiEvent msg, EntitySessionEventArgs ar if (!TryComp(uid, out InstrumentComponent? instrument)) return; - if (args.SenderSession != instrument.InstrumentPlayer) + if (args.SenderSession.AttachedEntity != instrument.InstrumentPlayer) return; instrument.Playing = true; @@ -125,7 +125,7 @@ private void OnMidiStop(InstrumentStopMidiEvent msg, EntitySessionEventArgs args if (!TryComp(uid, out InstrumentComponent? instrument)) return; - if (args.SenderSession != instrument.InstrumentPlayer) + if (args.SenderSession.AttachedEntity != instrument.InstrumentPlayer) return; Clean(uid, instrument); @@ -142,7 +142,7 @@ private void OnMidiSetMaster(InstrumentSetMasterEvent msg, EntitySessionEventArg if (!TryComp(uid, out InstrumentComponent? instrument)) return; - if (args.SenderSession != instrument.InstrumentPlayer) + if (args.SenderSession.AttachedEntity != instrument.InstrumentPlayer) return; if (master != null) @@ -174,7 +174,7 @@ private void OnMidiSetFilteredChannel(InstrumentSetFilteredChannelEvent msg, Ent if (!TryComp(uid, out InstrumentComponent? instrument)) return; - if (args.SenderSession != instrument.InstrumentPlayer) + if (args.SenderSession.AttachedEntity != instrument.InstrumentPlayer) return; if (msg.Channel == RobustMidiEvent.PercussionChannel && !instrument.AllowPercussion) @@ -194,8 +194,7 @@ private void OnMidiSetFilteredChannel(InstrumentSetFilteredChannelEvent msg, Ent private void OnBoundUIClosed(EntityUid uid, InstrumentComponent component, BoundUIClosedEvent args) { if (HasComp(uid) - && _bui.TryGetUi(uid, args.UiKey, out var bui) - && bui.SubscribedSessions.Count == 0) + && !_bui.IsUiOpen(uid, args.UiKey)) { RemComp(uid); } @@ -232,7 +231,7 @@ private void OnBoundUIRequestBands(EntityUid uid, InstrumentComponent component, var instrumentQuery = EntityManager.GetEntityQuery(); if (!TryComp(uid, out InstrumentComponent? originInstrument) - || originInstrument.InstrumentPlayer?.AttachedEntity is not {} originPlayer) + || originInstrument.InstrumentPlayer is not {} originPlayer) return Array.Empty<(NetEntity, string)>(); // It's probably faster to get all possible active instruments than all entities in range @@ -247,7 +246,7 @@ private void OnBoundUIRequestBands(EntityUid uid, InstrumentComponent component, continue; // We want to use the instrument player's name. - if (instrument.InstrumentPlayer?.AttachedEntity is not {} playerUid) + if (instrument.InstrumentPlayer is not {} playerUid) continue; // Maybe a bit expensive but oh well GetBands is queued and has a timer anyway. @@ -298,7 +297,7 @@ private void OnMidiEventRx(InstrumentMidiEventEvent msg, EntitySessionEventArgs return; if (!instrument.Playing - || args.SenderSession != instrument.InstrumentPlayer + || args.SenderSession.AttachedEntity != instrument.InstrumentPlayer || instrument.InstrumentPlayer == null || args.SenderSession.AttachedEntity is not { } attached) { @@ -374,8 +373,7 @@ public override void Update(float frameTime) var entity = GetEntity(request.Entity); var nearby = GetBands(entity); - _bui.TrySendUiMessage(entity, request.UiKey, new InstrumentBandResponseBuiMessage(nearby), - request.Session); + _bui.ServerSendUiMessage(entity, request.UiKey, new InstrumentBandResponseBuiMessage(nearby), request.Actor); } _bandRequestQueue.Clear(); @@ -413,7 +411,7 @@ public override void Update(float frameTime) (instrument.BatchesDropped >= MaxMidiBatchesDropped || instrument.LaggedBatches >= MaxMidiLaggedBatches)) { - if (instrument.InstrumentPlayer?.AttachedEntity is {Valid: true} mob) + if (instrument.InstrumentPlayer is {Valid: true} mob) { _stuns.TryParalyze(mob, TimeSpan.FromSeconds(1), true); @@ -423,7 +421,7 @@ public override void Update(float frameTime) // Just in case Clean(uid); - _bui.TryCloseAll(uid, InstrumentUiKey.Key); + _bui.CloseUi(uid, InstrumentUiKey.Key); } instrument.Timer += frameTime; @@ -437,13 +435,12 @@ public override void Update(float frameTime) } } - public void ToggleInstrumentUi(EntityUid uid, ICommonSession session, InstrumentComponent? component = null) + public void ToggleInstrumentUi(EntityUid uid, EntityUid actor, InstrumentComponent? component = null) { if (!Resolve(uid, ref component)) return; - if (_bui.TryGetUi(uid, InstrumentUiKey.Key, out var bui)) - _bui.ToggleUi(bui, session); + _bui.TryToggleUi(uid, InstrumentUiKey.Key, actor); } public override bool ResolveInstrument(EntityUid uid, ref SharedInstrumentComponent? component) diff --git a/Content.Server/Interaction/InteractionSystem.cs b/Content.Server/Interaction/InteractionSystem.cs index 203781bcda..4eac7e9ef1 100644 --- a/Content.Server/Interaction/InteractionSystem.cs +++ b/Content.Server/Interaction/InteractionSystem.cs @@ -16,13 +16,6 @@ public sealed partial class InteractionSystem : SharedInteractionSystem [Dependency] private readonly SharedContainerSystem _container = default!; [Dependency] private readonly UserInterfaceSystem _uiSystem = default!; - public override void Initialize() - { - base.Initialize(); - - SubscribeLocalEvent(HandleUserInterfaceRangeCheck); - } - public override bool CanAccessViaStorage(EntityUid user, EntityUid target) { if (Deleted(target)) @@ -37,26 +30,8 @@ public override bool CanAccessViaStorage(EntityUid user, EntityUid target) if (storage.Container?.ID != container.ID) return false; - if (!TryComp(user, out ActorComponent? actor)) - return false; - // we don't check if the user can access the storage entity itself. This should be handed by the UI system. - return _uiSystem.SessionHasOpenUi(container.Owner, StorageComponent.StorageUiKey.Key, actor.PlayerSession); - } - - private void HandleUserInterfaceRangeCheck(ref BoundUserInterfaceCheckRangeEvent ev) - { - if (ev.Player.AttachedEntity is not { } user || ev.Result == BoundUserInterfaceRangeResult.Fail) - return; - - if (InRangeUnobstructed(user, ev.Target, ev.UserInterface.InteractionRange)) - { - ev.Result = BoundUserInterfaceRangeResult.Pass; - } - else - { - ev.Result = BoundUserInterfaceRangeResult.Fail; - } + return _uiSystem.IsUiOpen(container.Owner, StorageComponent.StorageUiKey.Key, user); } } } diff --git a/Content.Server/InteractionVerbs/Actions/ChangeStandingStateAction.cs b/Content.Server/InteractionVerbs/Actions/ChangeStandingStateAction.cs index 35f1118b94..59340df58f 100644 --- a/Content.Server/InteractionVerbs/Actions/ChangeStandingStateAction.cs +++ b/Content.Server/InteractionVerbs/Actions/ChangeStandingStateAction.cs @@ -1,4 +1,3 @@ -using Content.Shared._White.Standing; using Content.Shared.InteractionVerbs; using Content.Shared.Standing; @@ -10,33 +9,32 @@ public sealed partial class ChangeStandingStateAction : InteractionAction [DataField] public bool MakeStanding, MakeLaying; - public override bool CanPerform(InteractionArgs args, InteractionVerbPrototype proto, bool isBefore, - VerbDependencies deps) + public override bool CanPerform(InteractionArgs args, InteractionVerbPrototype proto, bool isBefore, VerbDependencies deps) { if (!deps.EntMan.TryGetComponent(args.Target, out var state)) return false; if (isBefore) - args.Blackboard["standing"] = state.Standing; + args.Blackboard["standing"] = state.CurrentState; - return state.Standing ? MakeLaying : MakeStanding; + return state.CurrentState == StandingState.Standing && MakeLaying + || state.CurrentState == StandingState.Lying && MakeStanding; } public override bool Perform(InteractionArgs args, InteractionVerbPrototype proto, VerbDependencies deps) { var stateSystem = deps.EntMan.System(); - var layingSystem = deps.EntMan.System(); - var isDown = stateSystem.IsDown(args.Target); - - if (args.TryGetBlackboard("standing", out bool wasStanding) && wasStanding != !isDown) - return false; // The target changed its standing state during the do-after - sus - - return isDown switch - { - // Note: these will get cancelled if the target is forced to stand/lay, e.g. due to a buckle or stun or something else. - true when MakeStanding => layingSystem.TryStandUp(args.Target), - false when MakeLaying => layingSystem.TryLieDown(args.Target), - _ => false - }; + + if (!deps.EntMan.TryGetComponent(args.Target, out var state) + || args.TryGetBlackboard("standing", out StandingState oldStanding) && oldStanding != state.CurrentState) + return false; + + // Note: these will get cancelled if the target is forced to stand/lay, e.g. due to a buckle or stun or something else. + 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 false; } } diff --git a/Content.Server/InteractionVerbs/InteractionVerbsSystem.cs b/Content.Server/InteractionVerbs/InteractionVerbsSystem.cs index 83aa454816..ba51bbe39c 100644 --- a/Content.Server/InteractionVerbs/InteractionVerbsSystem.cs +++ b/Content.Server/InteractionVerbs/InteractionVerbsSystem.cs @@ -13,6 +13,14 @@ public sealed class InteractionVerbsSystem : SharedInteractionVerbsSystem [Dependency] private readonly IChatManager _chatManager = default!; [Dependency] private readonly SharedInteractionSystem _interactions = default!; + private EntityQuery _occluderQuery; + + public override void Initialize() + { + base.Initialize(); + _occluderQuery = GetEntityQuery(); + } + protected override void SendChatLog(string message, EntityUid source, Filter filter, InteractionPopupPrototype popup, bool clip) { if (filter.Count <= 0) @@ -24,7 +32,7 @@ protected override void SendChatLog(string message, EntityUid source, Filter fil // Exclude entities who cannot directly see the target of the popup. TODO this may have a high performance cost - although whispers do the same. // We only do this if the popup has to be logged into chat since that has some gameplay implications. if (clip && popup.DoClipping) - filter.RemoveWhereAttachedEntity(ent => !_interactions.InRangeUnobstructed(ent, source, popup.VisibilityRange, CollisionGroup.Opaque)); + filter.RemoveWhereAttachedEntity(ent => !CanSee(ent, source, popup.VisibilityRange)); if (filter.Count == 1) _chatManager.ChatMessageToOne(popup.LogChannel, message, wrappedMessage, source, false, filter.Recipients.First().Channel, color); @@ -39,4 +47,15 @@ protected override void SendChatLog(string message, EntityUid source, Filter fil PopupType.Medium or PopupType.Small => Color.LightGray, _ => Color.White }; + + private bool CanSee(EntityUid source, EntityUid target, float maxRange) + { + // TODO: InRangeUnobstructed has a pretty high performance cost and is not intended to be used like that. + // We should see if we can move this to client side later, aka make the client check if the target is visible for it. + return _interactions.InRangeUnobstructed( + source, target, maxRange, + CollisionGroup.Opaque, + uid => !_occluderQuery.TryComp(uid, out var occluder) || !occluder.Enabled, // We ignore all entities that do not occlude light + false); + } } diff --git a/Content.Server/Inventory/ServerInventorySystem.cs b/Content.Server/Inventory/ServerInventorySystem.cs index 29d39f3723..e3783753bb 100644 --- a/Content.Server/Inventory/ServerInventorySystem.cs +++ b/Content.Server/Inventory/ServerInventorySystem.cs @@ -1,21 +1,15 @@ -using Content.Server.Storage.EntitySystems; using Content.Shared.Explosion; using Content.Shared.Inventory; -using Content.Shared.Inventory.Events; -using Content.Shared.Storage; namespace Content.Server.Inventory { public sealed class ServerInventorySystem : InventorySystem { - [Dependency] private readonly StorageSystem _storageSystem = default!; - public override void Initialize() { base.Initialize(); SubscribeLocalEvent(OnExploded); - SubscribeNetworkEvent(OnOpenSlotStorage); } private void OnExploded(Entity ent, ref BeforeExplodeEvent args) @@ -29,17 +23,6 @@ private void OnExploded(Entity ent, ref BeforeExplodeEvent a } } - private void OnOpenSlotStorage(OpenSlotStorageNetworkMessage ev, EntitySessionEventArgs args) - { - if (args.SenderSession.AttachedEntity is not { Valid: true } uid) - return; - - if (TryGetSlotEntity(uid, ev.Slot, out var entityUid) && TryComp(entityUid, out var storageComponent)) - { - _storageSystem.OpenStorageUI(entityUid.Value, uid, storageComponent); - } - } - public void TransferEntityInventories(Entity source, Entity target) { if (!Resolve(source.Owner, ref source.Comp) || !Resolve(target.Owner, ref target.Comp)) diff --git a/Content.Server/Kitchen/Components/MicrowaveComponent.cs b/Content.Server/Kitchen/Components/MicrowaveComponent.cs index 815ba8f521..1e343e5e33 100644 --- a/Content.Server/Kitchen/Components/MicrowaveComponent.cs +++ b/Content.Server/Kitchen/Components/MicrowaveComponent.cs @@ -11,95 +11,99 @@ namespace Content.Server.Kitchen.Components [RegisterComponent] public sealed partial class MicrowaveComponent : Component { - [DataField("cookTimeMultiplier"), ViewVariables(VVAccess.ReadWrite)] + [DataField] public float CookTimeMultiplier = 1; - - [DataField("baseHeatMultiplier"), ViewVariables(VVAccess.ReadWrite)] + [DataField(customTypeSerializer: typeof(PrototypeIdSerializer))] + public string MachinePartCookTimeMultiplier = "Capacitor"; + [DataField] + public float CookTimeScalingConstant = 0.5f; + [DataField] public float BaseHeatMultiplier = 100; - [DataField("objectHeatMultiplier"), ViewVariables(VVAccess.ReadWrite)] + [DataField] public float ObjectHeatMultiplier = 100; - [DataField("failureResult", customTypeSerializer: typeof(PrototypeIdSerializer))] + [DataField(customTypeSerializer: typeof(PrototypeIdSerializer))] public string BadRecipeEntityId = "FoodBadRecipe"; #region audio - [DataField("beginCookingSound")] + [DataField] public SoundSpecifier StartCookingSound = new SoundPathSpecifier("/Audio/Machines/microwave_start_beep.ogg"); - [DataField("foodDoneSound")] + [DataField] public SoundSpecifier FoodDoneSound = new SoundPathSpecifier("/Audio/Machines/microwave_done_beep.ogg"); - [DataField("clickSound")] + [DataField] public SoundSpecifier ClickSound = new SoundPathSpecifier("/Audio/Machines/machine_switch.ogg"); - [DataField("ItemBreakSound")] + [DataField] public SoundSpecifier ItemBreakSound = new SoundPathSpecifier("/Audio/Effects/clang.ogg"); public EntityUid? PlayingStream; - [DataField("loopingSound")] + [DataField] public SoundSpecifier LoopingSound = new SoundPathSpecifier("/Audio/Machines/microwave_loop.ogg"); #endregion [ViewVariables] public bool Broken; - [DataField, ViewVariables(VVAccess.ReadWrite)] + [DataField] public ProtoId OnPort = "On"; /// - /// This is a fixed offset of 5. - /// The cook times for all recipes should be divisible by 5,with a minimum of 1 second. - /// For right now, I don't think any recipe cook time should be greater than 60 seconds. + /// This is a fixed offset of 5. + /// The cook times for all recipes should be divisible by 5,with a minimum of 1 second. + /// For right now, I don't think any recipe cook time should be greater than 60 seconds. /// - [DataField("currentCookTimerTime"), ViewVariables(VVAccess.ReadWrite)] + [DataField] public uint CurrentCookTimerTime = 0; /// - /// Tracks the elapsed time of the current cook timer. + /// Tracks the elapsed time of the current cook timer. /// - [DataField, ViewVariables(VVAccess.ReadWrite)] + [DataField] public TimeSpan CurrentCookTimeEnd = TimeSpan.Zero; /// - /// The maximum number of seconds a microwave can be set to. - /// This is currently only used for validation and the client does not check this. + /// The maximum number of seconds a microwave can be set to. + /// This is currently only used for validation and the client does not check this. /// - [DataField("maxCookTime"), ViewVariables(VVAccess.ReadWrite)] + [DataField] public uint MaxCookTime = 30; /// /// The max temperature that this microwave can heat objects to. /// - [DataField("temperatureUpperThreshold")] + [DataField] public float TemperatureUpperThreshold = 373.15f; public int CurrentCookTimeButtonIndex; public Container Storage = default!; - [DataField, ViewVariables(VVAccess.ReadWrite)] + [DataField] public int Capacity = 10; - [DataField, ViewVariables(VVAccess.ReadWrite)] + [DataField] public ProtoId MaxItemSize = "Normal"; /// - /// How frequently the microwave can malfunction. + /// How frequently the microwave can malfunction. /// [DataField] public float MalfunctionInterval = 1.0f; /// - /// Chance of an explosion occurring when we microwave a metallic object + /// Chance of an explosion occurring when we microwave a metallic object /// - [DataField, ViewVariables(VVAccess.ReadWrite)] + [DataField] public float ExplosionChance = .1f; /// - /// Chance of lightning occurring when we microwave a metallic object - [DataField, ViewVariables(VVAccess.ReadWrite)] + /// Chance of lightning occurring when we microwave a metallic object + /// + [DataField] public float LightningChance = .75f; } diff --git a/Content.Server/Kitchen/Components/ReagentGrinderComponent.cs b/Content.Server/Kitchen/Components/ReagentGrinderComponent.cs index 5bbbe2dc8d..4f4531206c 100644 --- a/Content.Server/Kitchen/Components/ReagentGrinderComponent.cs +++ b/Content.Server/Kitchen/Components/ReagentGrinderComponent.cs @@ -1,6 +1,8 @@ using Content.Shared.Kitchen; using Content.Server.Kitchen.EntitySystems; +using Content.Shared.Construction.Prototypes; using Robust.Shared.Audio; +using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype; namespace Content.Server.Kitchen.Components { @@ -13,15 +15,30 @@ namespace Content.Server.Kitchen.Components [Access(typeof(ReagentGrinderSystem)), RegisterComponent] public sealed partial class ReagentGrinderComponent : Component { - [DataField] + [ViewVariables(VVAccess.ReadWrite)] public int StorageMaxEntities = 6; [DataField] - public TimeSpan WorkTime = TimeSpan.FromSeconds(3.5); // Roughly matches the grind/juice sounds. + public int BaseStorageMaxEntities = 4; + + [DataField(customTypeSerializer: typeof(PrototypeIdSerializer))] + public string MachinePartStorageMax = "MatterBin"; + + [DataField] + public int StoragePerPartRating = 4; [DataField] + public TimeSpan WorkTime = TimeSpan.FromSeconds(3.5); // Roughly matches the grind/juice sounds. + + [ViewVariables(VVAccess.ReadWrite)] public float WorkTimeMultiplier = 1; + [DataField(customTypeSerializer: typeof(PrototypeIdSerializer))] + public string MachinePartWorkTime = "Manipulator"; + + [DataField] + public float PartRatingWorkTimerMulitplier = 0.6f; + [DataField] public SoundSpecifier ClickSound { get; set; } = new SoundPathSpecifier("/Audio/Machines/machine_switch.ogg"); diff --git a/Content.Server/Kitchen/EntitySystems/MicrowaveSystem.cs b/Content.Server/Kitchen/EntitySystems/MicrowaveSystem.cs index 212383c463..f9e1ae2241 100644 --- a/Content.Server/Kitchen/EntitySystems/MicrowaveSystem.cs +++ b/Content.Server/Kitchen/EntitySystems/MicrowaveSystem.cs @@ -76,10 +76,12 @@ public override void Initialize() SubscribeLocalEvent(OnPowerChanged); SubscribeLocalEvent(OnAnchorChanged); SubscribeLocalEvent(OnSuicide); + SubscribeLocalEvent(OnRefreshParts); + SubscribeLocalEvent(OnUpgradeExamine); SubscribeLocalEvent(OnSignalReceived); - SubscribeLocalEvent((u, c, m) => Wzhzhzh(u, c, m.Session.AttachedEntity)); + SubscribeLocalEvent((u, c, m) => Wzhzhzh(u, c, m.Actor)); SubscribeLocalEvent(OnEjectMessage); SubscribeLocalEvent(OnEjectIndex); SubscribeLocalEvent(OnSelectTime); @@ -271,6 +273,9 @@ private void OnSolutionChange(Entity ent, ref SolutionContai private void OnContentUpdate(EntityUid uid, MicrowaveComponent component, ContainerModifiedMessage args) // For some reason ContainerModifiedMessage just can't be used at all with Entity. TODO: replace with Entity syntax once that's possible { + if (component.Storage != args.Container) + return; + UpdateUserInterfaceState(uid, component); } @@ -342,6 +347,17 @@ private void OnAnchorChanged(EntityUid uid, MicrowaveComponent component, ref An _container.EmptyContainer(component.Storage); } + private void OnRefreshParts(Entity ent, ref RefreshPartsEvent args) + { + var cookRating = args.PartRatings[ent.Comp.MachinePartCookTimeMultiplier]; + ent.Comp.CookTimeMultiplier = MathF.Pow(ent.Comp.CookTimeScalingConstant, cookRating - 1); + } + + private void OnUpgradeExamine(Entity ent, ref UpgradeExamineEvent args) + { + args.AddPercentageUpgrade("microwave-component-upgrade-cook-time", ent.Comp.CookTimeMultiplier); + } + private void OnSignalReceived(Entity ent, ref SignalReceivedEvent args) { if (args.Port != ent.Comp.OnPort) @@ -355,11 +371,7 @@ private void OnSignalReceived(Entity ent, ref SignalReceived public void UpdateUserInterfaceState(EntityUid uid, MicrowaveComponent component) { - var ui = _userInterface.GetUiOrNull(uid, MicrowaveUiKey.Key); - if (ui == null) - return; - - _userInterface.SetUiState(ui, new MicrowaveUpdateUserInterfaceState( + _userInterface.SetUiState(uid, MicrowaveUiKey.Key, new MicrowaveUpdateUserInterfaceState( GetNetEntityArray(component.Storage.ContainedEntities.ToArray()), HasComp(uid), component.CurrentCookTimeButtonIndex, diff --git a/Content.Server/Kitchen/EntitySystems/ReagentGrinderSystem.cs b/Content.Server/Kitchen/EntitySystems/ReagentGrinderSystem.cs index e8ee453986..93a15f319d 100644 --- a/Content.Server/Kitchen/EntitySystems/ReagentGrinderSystem.cs +++ b/Content.Server/Kitchen/EntitySystems/ReagentGrinderSystem.cs @@ -1,4 +1,5 @@ using Content.Server.Chemistry.Containers.EntitySystems; +using Content.Server.Construction; using Content.Server.Kitchen.Components; using Content.Server.Power.Components; using Content.Server.Power.EntitySystems; @@ -48,6 +49,8 @@ public override void Initialize() SubscribeLocalEvent((uid, _, _) => UpdateUiState(uid)); SubscribeLocalEvent((EntityUid uid, ReagentGrinderComponent _, ref PowerChangedEvent _) => UpdateUiState(uid)); SubscribeLocalEvent(OnInteractUsing); + SubscribeLocalEvent(OnRefreshParts); + SubscribeLocalEvent(OnUpgradeExamine); SubscribeLocalEvent(OnContainerModified); SubscribeLocalEvent(OnContainerModified); @@ -127,7 +130,7 @@ public override void Update(float frameTime) _solutionContainersSystem.TryAddSolution(containerSoln.Value, solution); } - _userInterfaceSystem.TrySendUiMessage(uid, ReagentGrinderUiKey.Key, + _userInterfaceSystem.ServerSendUiMessage(uid, ReagentGrinderUiKey.Key, new ReagentGrinderWorkCompleteMessage()); UpdateUiState(uid); @@ -197,6 +200,24 @@ private void OnInteractUsing(Entity entity, ref Interac args.Handled = true; } + /// + /// Gotta be efficient, you know? you're saving a whole extra second here and everything. + /// + private void OnRefreshParts(Entity entity, ref RefreshPartsEvent args) + { + var ratingWorkTime = args.PartRatings[entity.Comp.MachinePartWorkTime]; + var ratingStorage = args.PartRatings[entity.Comp.MachinePartStorageMax]; + + entity.Comp.WorkTimeMultiplier = MathF.Pow(entity.Comp.PartRatingWorkTimerMulitplier, ratingWorkTime - 1); + entity.Comp.StorageMaxEntities = entity.Comp.BaseStorageMaxEntities + (int) (entity.Comp.StoragePerPartRating * (ratingStorage - 1)); + } + + private void OnUpgradeExamine(Entity entity, ref UpgradeExamineEvent args) + { + args.AddPercentageUpgrade("reagent-grinder-component-upgrade-work-time", entity.Comp.WorkTimeMultiplier); + args.AddNumberUpgrade("reagent-grinder-component-upgrade-storage", entity.Comp.StorageMaxEntities - entity.Comp.BaseStorageMaxEntities); + } + private void UpdateUiState(EntityUid uid) { ReagentGrinderComponent? grinderComp = null; @@ -228,7 +249,7 @@ private void UpdateUiState(EntityUid uid) GetNetEntityArray(inputContainer.ContainedEntities.ToArray()), containerSolution?.Contents.ToArray() ); - _userInterfaceSystem.TrySetUiState(uid, ReagentGrinderUiKey.Key, state); + _userInterfaceSystem.SetUiState(uid, ReagentGrinderUiKey.Key, state); } private void OnStartMessage(Entity entity, ref ReagentGrinderStartMessage message) @@ -305,7 +326,7 @@ private void DoWork(EntityUid uid, ReagentGrinderComponent reagentGrinder, Grind reagentGrinder.AudioStream = _audioSystem.PlayPvs(sound, uid, AudioParams.Default.WithPitchScale(1 / reagentGrinder.WorkTimeMultiplier)).Value.Entity; //slightly higher pitched - _userInterfaceSystem.TrySendUiMessage(uid, ReagentGrinderUiKey.Key, + _userInterfaceSystem.ServerSendUiMessage(uid, ReagentGrinderUiKey.Key, new ReagentGrinderWorkStartedMessage(program)); } diff --git a/Content.Server/Kitchen/EntitySystems/SharpSystem.cs b/Content.Server/Kitchen/EntitySystems/SharpSystem.cs index 35adf6f4b5..81806a0c81 100644 --- a/Content.Server/Kitchen/EntitySystems/SharpSystem.cs +++ b/Content.Server/Kitchen/EntitySystems/SharpSystem.cs @@ -3,24 +3,17 @@ using Content.Server.Nutrition.EntitySystems; using Content.Shared.Body.Components; using Content.Shared.Administration.Logs; -using Content.Shared.Body.Components; using Content.Shared.Database; using Content.Shared.Interaction; using Content.Shared.Nutrition.Components; -using Content.Server.Nutrition.EntitySystems; using Content.Shared.Popups; using Content.Shared.Storage; using Content.Shared.Verbs; using Content.Shared.Destructible; using Content.Shared.DoAfter; -using Content.Shared.Interaction; using Content.Shared.Kitchen; using Content.Shared.Mobs.Components; using Content.Shared.Mobs.Systems; -using Content.Shared.Nutrition.Components; -using Content.Shared.Popups; -using Content.Shared.Storage; -using Content.Shared.Verbs; using Robust.Server.Containers; using Robust.Shared.Random; using Robust.Shared.Utility; diff --git a/Content.Server/Labels/Label/Components/HandLabelerComponent.cs b/Content.Server/Labels/Label/Components/HandLabelerComponent.cs deleted file mode 100644 index 6c96cada9e..0000000000 --- a/Content.Server/Labels/Label/Components/HandLabelerComponent.cs +++ /dev/null @@ -1,19 +0,0 @@ -using Content.Shared.Whitelist; - -namespace Content.Server.Labels.Components -{ - [RegisterComponent] - public sealed partial class HandLabelerComponent : Component - { - [ViewVariables(VVAccess.ReadWrite)] - [DataField("assignedLabel")] - public string AssignedLabel { get; set; } = string.Empty; - - [ViewVariables(VVAccess.ReadWrite)] - [DataField("maxLabelChars")] - public int MaxLabelChars { get; set; } = 50; - - [DataField("whitelist")] - public EntityWhitelist Whitelist = new(); - } -} diff --git a/Content.Server/Labels/Label/HandLabelerSystem.cs b/Content.Server/Labels/Label/HandLabelerSystem.cs index dec7d69759..d52bf26046 100644 --- a/Content.Server/Labels/Label/HandLabelerSystem.cs +++ b/Content.Server/Labels/Label/HandLabelerSystem.cs @@ -1,123 +1,8 @@ -using Content.Server.Labels.Components; -using Content.Server.UserInterface; -using Content.Server.Popups; -using Content.Shared.Administration.Logs; -using Content.Shared.Database; -using Content.Shared.Interaction; -using Content.Shared.Labels; -using Content.Shared.Tag; -using Content.Shared.Verbs; -using JetBrains.Annotations; -using Robust.Server.GameObjects; -using Robust.Shared.Player; +using Content.Shared.Labels.EntitySystems; -namespace Content.Server.Labels -{ - /// - /// A hand labeler system that lets an object apply labels to objects with the . - /// - [UsedImplicitly] - public sealed class HandLabelerSystem : EntitySystem - { - [Dependency] private readonly UserInterfaceSystem _userInterfaceSystem = default!; - [Dependency] private readonly PopupSystem _popupSystem = default!; - [Dependency] private readonly LabelSystem _labelSystem = default!; - [Dependency] private readonly ISharedAdminLogManager _adminLogger = default!; - [Dependency] private readonly TagSystem _tagSystem = default!; - - [ValidatePrototypeId] - private const string PreventTag = "PreventLabel"; - - public override void Initialize() - { - base.Initialize(); - - SubscribeLocalEvent(AfterInteractOn); - SubscribeLocalEvent>(OnUtilityVerb); - // Bound UI subscriptions - SubscribeLocalEvent(OnHandLabelerLabelChanged); - } - - private void OnUtilityVerb(EntityUid uid, HandLabelerComponent handLabeler, GetVerbsEvent args) - { - if (args.Target is not { Valid: true } target || !handLabeler.Whitelist.IsValid(target) || !args.CanAccess - || _tagSystem.HasTag(target, PreventTag)) // DeltaV - Prevent labels on certain items - return; - - string labelerText = handLabeler.AssignedLabel == string.Empty ? Loc.GetString("hand-labeler-remove-label-text") : Loc.GetString("hand-labeler-add-label-text"); - - var verb = new UtilityVerb() - { - Act = () => - { - AddLabelTo(uid, handLabeler, target, out var result); - if (result != null) - _popupSystem.PopupEntity(result, args.User, args.User); - }, - Text = labelerText - }; - - args.Verbs.Add(verb); - } - - private void AfterInteractOn(EntityUid uid, HandLabelerComponent handLabeler, AfterInteractEvent args) - { - if (args.Target is not {Valid: true} target || !handLabeler.Whitelist.IsValid(target) || !args.CanReach - || _tagSystem.HasTag(target, PreventTag)) // DeltaV - Prevent labels on certain items - return; - - AddLabelTo(uid, handLabeler, target, out string? result); - if (result == null) - return; - _popupSystem.PopupEntity(result, args.User, args.User); +namespace Content.Server.Labels.Label; - // Log labeling - _adminLogger.Add(LogType.Action, LogImpact.Low, - $"{ToPrettyString(args.User):user} labeled {ToPrettyString(target):target} with {ToPrettyString(uid):labeler}"); - } - - private void AddLabelTo(EntityUid uid, HandLabelerComponent? handLabeler, EntityUid target, out string? result) - { - if (!Resolve(uid, ref handLabeler)) - { - result = null; - return; - } - - if (handLabeler.AssignedLabel == string.Empty) - { - _labelSystem.Label(target, null); - result = Loc.GetString("hand-labeler-successfully-removed"); - return; - } - - _labelSystem.Label(target, handLabeler.AssignedLabel); - result = Loc.GetString("hand-labeler-successfully-applied"); - } - - private void OnHandLabelerLabelChanged(EntityUid uid, HandLabelerComponent handLabeler, HandLabelerLabelChangedMessage args) - { - if (args.Session.AttachedEntity is not {Valid: true} player) - return; - - var label = args.Label.Trim(); - handLabeler.AssignedLabel = label.Substring(0, Math.Min(handLabeler.MaxLabelChars, label.Length)); - DirtyUI(uid, handLabeler); - - // Log label change - _adminLogger.Add(LogType.Action, LogImpact.Low, - $"{ToPrettyString(player):user} set {ToPrettyString(uid):labeler} to apply label \"{handLabeler.AssignedLabel}\""); - - } - - private void DirtyUI(EntityUid uid, - HandLabelerComponent? handLabeler = null) - { - if (!Resolve(uid, ref handLabeler)) - return; +public sealed class HandLabelerSystem : SharedHandLabelerSystem +{ - _userInterfaceSystem.TrySetUiState(uid, HandLabelerUiKey.Key, - new HandLabelerBoundUserInterfaceState(handLabeler.AssignedLabel)); - } - } } diff --git a/Content.Server/Labels/Label/LabelSystem.cs b/Content.Server/Labels/Label/LabelSystem.cs index 52184fb58f..9d235b488b 100644 --- a/Content.Server/Labels/Label/LabelSystem.cs +++ b/Content.Server/Labels/Label/LabelSystem.cs @@ -54,7 +54,7 @@ private void OnLabelCompMapInit(EntityUid uid, LabelComponent component, MapInit /// intended label text (null to remove) /// label component for resolve /// metadata component for resolve - public void Label(EntityUid uid, string? text, MetaDataComponent? metadata = null, LabelComponent? label = null) + public override void Label(EntityUid uid, string? text, MetaDataComponent? metadata = null, LabelComponent? label = null) { if (!Resolve(uid, ref metadata)) return; diff --git a/Content.Server/Language/Commands/AdminLanguageCommand.cs b/Content.Server/Language/Commands/AdminLanguageCommand.cs index f02d9c7f40..2e7a0b193a 100644 --- a/Content.Server/Language/Commands/AdminLanguageCommand.cs +++ b/Content.Server/Language/Commands/AdminLanguageCommand.cs @@ -3,6 +3,7 @@ using Content.Shared.Language; using Content.Shared.Language.Components; using Content.Shared.Language.Systems; +using Robust.Shared.Prototypes; using Robust.Shared.Toolshed; using Robust.Shared.Toolshed.Syntax; using Robust.Shared.Toolshed.TypeParsers; @@ -62,13 +63,13 @@ public EntityUid RemoveLanguage( } [CommandImplementation("lsspoken")] - public IEnumerable ListSpoken([PipedArgument] EntityUid input) + public IEnumerable> ListSpoken([PipedArgument] EntityUid input) { return Languages.GetSpokenLanguages(input); } [CommandImplementation("lsunderstood")] - public IEnumerable ListUnderstood([PipedArgument] EntityUid input) + public IEnumerable> ListUnderstood([PipedArgument] EntityUid input) { return Languages.GetUnderstoodLanguages(input); } diff --git a/Content.Server/Language/Commands/AdminTranslatorCommand.cs b/Content.Server/Language/Commands/AdminTranslatorCommand.cs index 8a7984bc36..fc8ee02e38 100644 --- a/Content.Server/Language/Commands/AdminTranslatorCommand.cs +++ b/Content.Server/Language/Commands/AdminTranslatorCommand.cs @@ -6,6 +6,7 @@ using Content.Shared.Language.Components.Translators; using Content.Shared.Language.Systems; using Robust.Server.Containers; +using Robust.Shared.Prototypes; using Robust.Shared.Toolshed; using Robust.Shared.Toolshed.Syntax; using Robust.Shared.Toolshed.TypeParsers; @@ -107,7 +108,7 @@ public EntityUid RemoveRequiredLanguage( } [CommandImplementation("lsspoken")] - public IEnumerable ListSpoken([PipedArgument] EntityUid input) + public IEnumerable> ListSpoken([PipedArgument] EntityUid input) { if (!TryGetTranslatorComp(input, out var translator)) return []; @@ -115,7 +116,7 @@ public IEnumerable ListSpoken([PipedArgument] EntityUid input) } [CommandImplementation("lsunderstood")] - public IEnumerable ListUnderstood([PipedArgument] EntityUid input) + public IEnumerable> ListUnderstood([PipedArgument] EntityUid input) { if (!TryGetTranslatorComp(input, out var translator)) return []; @@ -123,7 +124,7 @@ public IEnumerable ListUnderstood([PipedArgument] EntityUid input) } [CommandImplementation("lsrequired")] - public IEnumerable ListRequired([PipedArgument] EntityUid input) + public IEnumerable> ListRequired([PipedArgument] EntityUid input) { if (!TryGetTranslatorComp(input, out var translator)) return []; diff --git a/Content.Server/Language/LanguageKnowledgeComponent.cs b/Content.Server/Language/LanguageKnowledgeComponent.cs new file mode 100644 index 0000000000..da8376f762 --- /dev/null +++ b/Content.Server/Language/LanguageKnowledgeComponent.cs @@ -0,0 +1,23 @@ +using Content.Shared.Language; +using Robust.Shared.Prototypes; + +namespace Content.Server.Language; + +/// +/// Stores data about entities' intrinsic language knowledge. +/// +[RegisterComponent] +public sealed partial class LanguageKnowledgeComponent : Component +{ + /// + /// List of languages this entity can speak without any external tools. + /// + [DataField("speaks", required: true)] + public List> SpokenLanguages = new(); + + /// + /// List of languages this entity can understand without any external tools. + /// + [DataField("understands", required: true)] + public List> UnderstoodLanguages = new(); +} diff --git a/Content.Server/Language/LanguageSystem.Networking.cs b/Content.Server/Language/LanguageSystem.Networking.cs deleted file mode 100644 index 572e2961fd..0000000000 --- a/Content.Server/Language/LanguageSystem.Networking.cs +++ /dev/null @@ -1,78 +0,0 @@ -using Content.Server.Language.Events; -using Content.Server.Mind; -using Content.Shared.Language; -using Content.Shared.Language.Components; -using Content.Shared.Language.Events; -using Content.Shared.Mind; -using Content.Shared.Mind.Components; -using Robust.Shared.Player; - -namespace Content.Server.Language; - -public sealed partial class LanguageSystem -{ - [Dependency] private readonly MindSystem _mind = default!; - - - public void InitializeNet() - { - SubscribeNetworkEvent(OnClientSetLanguage); - SubscribeNetworkEvent((_, session) => SendLanguageStateToClient(session.SenderSession)); - - SubscribeLocalEvent((uid, comp, _) => SendLanguageStateToClient(uid, comp)); - - // Refresh the client's state when its mind hops to a different entity - SubscribeLocalEvent((uid, _, _) => SendLanguageStateToClient(uid)); - SubscribeLocalEvent((_, _, args) => - { - if (args.Mind.Comp.Session != null) - SendLanguageStateToClient(args.Mind.Comp.Session); - }); - } - - - private void OnClientSetLanguage(LanguagesSetMessage message, EntitySessionEventArgs args) - { - if (args.SenderSession.AttachedEntity is not { Valid: true } uid) - return; - - var language = GetLanguagePrototype(message.CurrentLanguage); - if (language == null || !CanSpeak(uid, language.ID)) - return; - - SetLanguage(uid, language.ID); - } - - private void SendLanguageStateToClient(EntityUid uid, LanguageSpeakerComponent? comp = null) - { - // Try to find a mind inside the entity and notify its session - if (!_mind.TryGetMind(uid, out _, out var mindComp) || mindComp.Session == null) - return; - - SendLanguageStateToClient(uid, mindComp.Session, comp); - } - - private void SendLanguageStateToClient(ICommonSession session, LanguageSpeakerComponent? comp = null) - { - // Try to find an entity associated with the session and resolve the languages from it - if (session.AttachedEntity is not { Valid: true } entity) - return; - - SendLanguageStateToClient(entity, session, comp); - } - - // TODO this is really stupid and can be avoided if we just make everything shared... - private void SendLanguageStateToClient(EntityUid uid, ICommonSession session, LanguageSpeakerComponent? component = null) - { - var isUniversal = HasComp(uid); - if (!isUniversal) - Resolve(uid, ref component, logMissing: false); - - // I really don't want to call 3 getter methods here, so we'll just have this slightly hardcoded solution - var message = isUniversal || component == null - ? new LanguagesUpdatedMessage(UniversalPrototype, [UniversalPrototype], [UniversalPrototype]) - : new LanguagesUpdatedMessage(component.CurrentLanguage, component.SpokenLanguages, component.UnderstoodLanguages); - - RaiseNetworkEvent(message, session); - } -} diff --git a/Content.Server/Language/LanguageSystem.cs b/Content.Server/Language/LanguageSystem.cs index e68489e9e2..3ef4caa84d 100644 --- a/Content.Server/Language/LanguageSystem.cs +++ b/Content.Server/Language/LanguageSystem.cs @@ -1,10 +1,10 @@ using System.Linq; -using Content.Server.Language.Events; using Content.Shared.Language; using Content.Shared.Language.Components; using Content.Shared.Language.Events; using Content.Shared.Language.Systems; -using UniversalLanguageSpeakerComponent = Content.Shared.Language.Components.UniversalLanguageSpeakerComponent; +using Robust.Shared.GameStates; +using Robust.Shared.Prototypes; namespace Content.Server.Language; @@ -13,45 +13,85 @@ public sealed partial class LanguageSystem : SharedLanguageSystem public override void Initialize() { base.Initialize(); - InitializeNet(); - SubscribeLocalEvent(OnInitLanguageSpeaker); + SubscribeLocalEvent(OnInitLanguageSpeaker); + SubscribeLocalEvent(OnGetLanguageState); + SubscribeLocalEvent(OnDetermineUniversalLanguages); + SubscribeNetworkEvent(OnClientSetLanguage); + + SubscribeLocalEvent((uid, _, _) => UpdateEntityLanguages(uid)); + SubscribeLocalEvent((uid, _, _) => UpdateEntityLanguages(uid)); } + #region event handling - #region public api + private void OnInitLanguageSpeaker(Entity ent, ref MapInitEvent args) + { + if (string.IsNullOrEmpty(ent.Comp.CurrentLanguage)) + ent.Comp.CurrentLanguage = ent.Comp.SpokenLanguages.FirstOrDefault(UniversalPrototype); + + UpdateEntityLanguages(ent!); + } - public bool CanUnderstand(EntityUid listener, string language, LanguageSpeakerComponent? component = null) + private void OnGetLanguageState(Entity entity, ref ComponentGetState args) { - if (language == UniversalPrototype || HasComp(listener)) - return true; + args.State = new LanguageSpeakerComponent.State + { + CurrentLanguage = entity.Comp.CurrentLanguage, + SpokenLanguages = entity.Comp.SpokenLanguages, + UnderstoodLanguages = entity.Comp.UnderstoodLanguages + }; + } - if (!Resolve(listener, ref component, logMissing: false)) - return false; + private void OnDetermineUniversalLanguages(Entity entity, ref DetermineEntityLanguagesEvent ev) + { + // We only add it as a spoken language; CanUnderstand checks for ULSC itself. + if (entity.Comp.Enabled) + ev.SpokenLanguages.Add(UniversalPrototype); + } + + + private void OnClientSetLanguage(LanguagesSetMessage message, EntitySessionEventArgs args) + { + if (args.SenderSession.AttachedEntity is not { Valid: true } uid) + return; - return component.UnderstoodLanguages.Contains(language); + var language = GetLanguagePrototype(message.CurrentLanguage); + if (language == null || !CanSpeak(uid, language.ID)) + return; + + SetLanguage(uid, language.ID); } - public bool CanSpeak(EntityUid speaker, string language, LanguageSpeakerComponent? component = null) + #endregion + + #region public api + + public bool CanUnderstand(Entity ent, ProtoId language) { - if (HasComp(speaker)) + if (language == UniversalPrototype || TryComp(ent, out var uni) && uni.Enabled) return true; - if (!Resolve(speaker, ref component, logMissing: false)) + return Resolve(ent, ref ent.Comp, logMissing: false) && ent.Comp.UnderstoodLanguages.Contains(language); + } + + public bool CanSpeak(Entity ent, ProtoId language) + { + if (!Resolve(ent, ref ent.Comp, logMissing: false)) return false; - return component.SpokenLanguages.Contains(language); + return ent.Comp.SpokenLanguages.Contains(language); } /// /// Returns the current language of the given entity, assumes Universal if it's not a language speaker. /// - public LanguagePrototype GetLanguage(EntityUid speaker, LanguageSpeakerComponent? component = null) + public LanguagePrototype GetLanguage(Entity ent) { - if (HasComp(speaker) || !Resolve(speaker, ref component, logMissing: false)) - return Universal; // Serves both as a fallback and uhhh something (TODO: fix this comment) - - if (string.IsNullOrEmpty(component.CurrentLanguage) || !_prototype.TryIndex(component.CurrentLanguage, out var proto)) + if (!Resolve(ent, ref ent.Comp, logMissing: false) + || string.IsNullOrEmpty(ent.Comp.CurrentLanguage) + || !_prototype.TryIndex(ent.Comp.CurrentLanguage, out var proto) + ) return Universal; return proto; @@ -60,43 +100,31 @@ public LanguagePrototype GetLanguage(EntityUid speaker, LanguageSpeakerComponent /// /// Returns the list of languages this entity can speak. /// - /// Typically, checking is sufficient. - public List GetSpokenLanguages(EntityUid uid) + /// This simply returns the value of . + public List> GetSpokenLanguages(EntityUid uid) { - if (HasComp(uid)) - return [UniversalPrototype]; - - if (TryComp(uid, out var component)) - return component.SpokenLanguages; - - return []; + return TryComp(uid, out var component) ? component.SpokenLanguages : []; } /// /// Returns the list of languages this entity can understand. - /// - /// Typically, checking is sufficient. - public List GetUnderstoodLanguages(EntityUid uid) + /// This simply returns the value of . + public List> GetUnderstoodLanguages(EntityUid uid) { - if (HasComp(uid)) - return [UniversalPrototype]; // This one is tricky because... well, they understand all of them, not just one. - - if (TryComp(uid, out var component)) - return component.UnderstoodLanguages; - - return []; + return TryComp(uid, out var component) ? component.UnderstoodLanguages : []; } - public void SetLanguage(EntityUid speaker, string language, LanguageSpeakerComponent? component = null) + public void SetLanguage(Entity ent, ProtoId language) { - if (!CanSpeak(speaker, language) || (HasComp(speaker) && language != UniversalPrototype)) + if (!CanSpeak(ent, language) + || !Resolve(ent, ref ent.Comp) + || ent.Comp.CurrentLanguage == language) return; - if (!Resolve(speaker, ref component) || component.CurrentLanguage == language) - return; - - component.CurrentLanguage = language; - RaiseLocalEvent(speaker, new LanguagesUpdateEvent(), true); + ent.Comp.CurrentLanguage = language; + RaiseLocalEvent(ent, new LanguagesUpdateEvent(), true); + Dirty(ent); } /// @@ -104,14 +132,12 @@ public void SetLanguage(EntityUid speaker, string language, LanguageSpeakerCompo /// public void AddLanguage( EntityUid uid, - string language, + ProtoId language, bool addSpoken = true, - bool addUnderstood = true, - LanguageKnowledgeComponent? knowledge = null, - LanguageSpeakerComponent? speaker = null) + bool addUnderstood = true) { - if (knowledge == null) - knowledge = EnsureComp(uid); + EnsureComp(uid, out var knowledge); + EnsureComp(uid, out var speaker); if (addSpoken && !knowledge.SpokenLanguages.Contains(language)) knowledge.SpokenLanguages.Add(language); @@ -119,30 +145,29 @@ public void AddLanguage( if (addUnderstood && !knowledge.UnderstoodLanguages.Contains(language)) knowledge.UnderstoodLanguages.Add(language); - UpdateEntityLanguages(uid, speaker); + UpdateEntityLanguages((uid, speaker)); } /// /// Removes a language from the respective lists of intrinsically known languages of the given entity. /// public void RemoveLanguage( - EntityUid uid, - string language, + Entity ent, + ProtoId language, bool removeSpoken = true, - bool removeUnderstood = true, - LanguageKnowledgeComponent? knowledge = null, - LanguageSpeakerComponent? speaker = null) + bool removeUnderstood = true) { - if (knowledge == null) - knowledge = EnsureComp(uid); + if (!Resolve(ent, ref ent.Comp, false)) + return; if (removeSpoken) - knowledge.SpokenLanguages.Remove(language); + ent.Comp.SpokenLanguages.Remove(language); if (removeUnderstood) - knowledge.UnderstoodLanguages.Remove(language); + ent.Comp.UnderstoodLanguages.Remove(language); - UpdateEntityLanguages(uid, speaker); + // We don't ensure that the entity has a speaker comp. If it doesn't... Well, woe be the caller of this method. + UpdateEntityLanguages(ent.Owner); } /// @@ -150,15 +175,16 @@ public void RemoveLanguage( /// If not, sets it to the first entry of its SpokenLanguages list, or universal if it's empty. /// /// True if the current language was modified, false otherwise. - public bool EnsureValidLanguage(EntityUid entity, LanguageSpeakerComponent? comp = null) + public bool EnsureValidLanguage(Entity ent) { - if (!Resolve(entity, ref comp)) + if (!Resolve(ent, ref ent.Comp, false)) return false; - if (!comp.SpokenLanguages.Contains(comp.CurrentLanguage)) + if (!ent.Comp.SpokenLanguages.Contains(ent.Comp.CurrentLanguage)) { - comp.CurrentLanguage = comp.SpokenLanguages.FirstOrDefault(UniversalPrototype); - RaiseLocalEvent(entity, new LanguagesUpdateEvent()); + ent.Comp.CurrentLanguage = ent.Comp.SpokenLanguages.FirstOrDefault(UniversalPrototype); + RaiseLocalEvent(ent, new LanguagesUpdateEvent()); + Dirty(ent); return true; } @@ -168,14 +194,14 @@ public bool EnsureValidLanguage(EntityUid entity, LanguageSpeakerComponent? comp /// /// Immediately refreshes the cached lists of spoken and understood languages for the given entity. /// - public void UpdateEntityLanguages(EntityUid entity, LanguageSpeakerComponent? languages = null) + public void UpdateEntityLanguages(Entity ent) { - if (!Resolve(entity, ref languages)) + if (!Resolve(ent, ref ent.Comp, false)) return; var ev = new DetermineEntityLanguagesEvent(); // We add the intrinsically known languages first so other systems can manipulate them easily - if (TryComp(entity, out var knowledge)) + if (TryComp(ent, out var knowledge)) { foreach (var spoken in knowledge.SpokenLanguages) ev.SpokenLanguages.Add(spoken); @@ -184,28 +210,19 @@ public void UpdateEntityLanguages(EntityUid entity, LanguageSpeakerComponent? la ev.UnderstoodLanguages.Add(understood); } - RaiseLocalEvent(entity, ref ev); - - languages.SpokenLanguages.Clear(); - languages.UnderstoodLanguages.Clear(); - - languages.SpokenLanguages.AddRange(ev.SpokenLanguages); - languages.UnderstoodLanguages.AddRange(ev.UnderstoodLanguages); + RaiseLocalEvent(ent, ref ev); - if (!EnsureValidLanguage(entity)) - RaiseLocalEvent(entity, new LanguagesUpdateEvent()); - } + ent.Comp.SpokenLanguages.Clear(); + ent.Comp.UnderstoodLanguages.Clear(); - #endregion + ent.Comp.SpokenLanguages.AddRange(ev.SpokenLanguages); + ent.Comp.UnderstoodLanguages.AddRange(ev.UnderstoodLanguages); - #region event handling - - private void OnInitLanguageSpeaker(EntityUid uid, LanguageSpeakerComponent component, ComponentInit args) - { - if (string.IsNullOrEmpty(component.CurrentLanguage)) - component.CurrentLanguage = component.SpokenLanguages.FirstOrDefault(UniversalPrototype); + // If EnsureValidLanguage returns true, it also raises a LanguagesUpdateEvent, so we try to avoid raising it twice in that case. + if (!EnsureValidLanguage(ent)) + RaiseLocalEvent(ent, new LanguagesUpdateEvent()); - UpdateEntityLanguages(uid, component); + Dirty(ent); } #endregion diff --git a/Content.Server/Language/LanguagesUpdateEvent.cs b/Content.Server/Language/LanguagesUpdateEvent.cs deleted file mode 100644 index 88ea09916b..0000000000 --- a/Content.Server/Language/LanguagesUpdateEvent.cs +++ /dev/null @@ -1,8 +0,0 @@ -namespace Content.Server.Language.Events; - -/// -/// Raised on an entity when its list of languages changes. -/// -public sealed class LanguagesUpdateEvent : EntityEventArgs -{ -} diff --git a/Content.Server/Language/TranslatorImplantSystem.cs b/Content.Server/Language/TranslatorImplantSystem.cs index 4d58144481..439389477c 100644 --- a/Content.Server/Language/TranslatorImplantSystem.cs +++ b/Content.Server/Language/TranslatorImplantSystem.cs @@ -1,6 +1,7 @@ using Content.Shared.Implants.Components; using Content.Shared.Language; using Content.Shared.Language.Components; +using Content.Shared.Language.Events; using Robust.Shared.Containers; namespace Content.Server.Language; diff --git a/Content.Server/Language/TranslatorSystem.cs b/Content.Server/Language/TranslatorSystem.cs index 6cdca12440..5cb5c8cd2e 100644 --- a/Content.Server/Language/TranslatorSystem.cs +++ b/Content.Server/Language/TranslatorSystem.cs @@ -8,7 +8,10 @@ using Content.Shared.Language.Systems; using Content.Shared.PowerCell; using Content.Shared.Language.Components.Translators; +using Content.Shared.Language.Events; using Robust.Shared.Containers; +using Robust.Shared.Prototypes; +using Robust.Shared.Timing; namespace Content.Server.Language; @@ -27,7 +30,7 @@ public override void Initialize() SubscribeLocalEvent(OnProxyDetermineLanguages); SubscribeLocalEvent(OnTranslatorInserted); - SubscribeLocalEvent(OnTranslatorRemoved); + SubscribeLocalEvent(OnTranslatorParentChanged); SubscribeLocalEvent(OnTranslatorToggle); SubscribeLocalEvent(OnPowerCellSlotEmpty); } @@ -65,8 +68,7 @@ private void OnProxyDetermineLanguages(EntityUid uid, HoldsTranslatorComponent c private void OnTranslatorInserted(EntityUid translator, HandheldTranslatorComponent component, EntGotInsertedIntoContainerMessage args) { - if (args.Container.Owner is not {Valid: true} holder - || !EntityManager.HasComponent(holder)) + if (args.Container.Owner is not {Valid: true} holder || !HasComp(holder)) return; var intrinsic = EnsureComp(holder); @@ -75,14 +77,19 @@ private void OnTranslatorInserted(EntityUid translator, HandheldTranslatorCompon _language.UpdateEntityLanguages(holder); } - private void OnTranslatorRemoved(EntityUid translator, HandheldTranslatorComponent component, EntGotRemovedFromContainerMessage args) + private void OnTranslatorParentChanged(EntityUid translator, HandheldTranslatorComponent component, EntParentChangedMessage args) { - if (args.Container.Owner is not {Valid: true} holder - || !EntityManager.TryGetComponent(holder, out var intrinsic)) + if (!HasComp(args.OldParent)) return; - intrinsic.Translators.RemoveWhere(it => it.Owner == translator); - _language.UpdateEntityLanguages(holder); + // Update the translator on the next tick - this is necessary because there's a good chance the removal from a container + // Was caused by the player moving the translator within their inventory rather than removing it. + // If that is not the case, then OnProxyDetermineLanguages will remove this translator from HoldsTranslatorComponent.Translators. + Timer.Spawn(0, () => + { + if (Exists(args.OldParent) && HasComp(args.OldParent)) + _language.UpdateEntityLanguages(args.OldParent.Value); + }); } private void OnTranslatorToggle(EntityUid translator, HandheldTranslatorComponent translatorComp, ActivateInWorldEvent args) @@ -103,11 +110,11 @@ private void OnTranslatorToggle(EntityUid translator, HandheldTranslatorComponen { // The first new spoken language added by this translator, or null var firstNewLanguage = translatorComp.SpokenLanguages.FirstOrDefault(it => !languageComp.SpokenLanguages.Contains(it)); - _language.UpdateEntityLanguages(holder, languageComp); + _language.UpdateEntityLanguages(holder); // Update the current language of the entity if necessary if (isEnabled && translatorComp.SetLanguageOnInteract && firstNewLanguage is {}) - _language.SetLanguage(holder, firstNewLanguage, languageComp); + _language.SetLanguage((holder, languageComp), firstNewLanguage); } OnAppearanceChange(translator, translatorComp); @@ -125,6 +132,9 @@ private void OnPowerCellSlotEmpty(EntityUid translator, HandheldTranslatorCompon component.Enabled = false; _powerCell.SetPowerCellDrawEnabled(translator, false); OnAppearanceChange(translator, component); + + if (_containers.TryGetContainingContainer(translator, out var holderCont) && HasComp(holderCont.Owner)) + _language.UpdateEntityLanguages(holderCont.Owner); } private void CopyLanguages(BaseTranslatorComponent from, DetermineEntityLanguagesEvent to, LanguageKnowledgeComponent knowledge) @@ -144,7 +154,7 @@ private void CopyLanguages(BaseTranslatorComponent from, DetermineEntityLanguage /// /// Checks whether any OR all required languages are provided. Used for utility purposes. /// - public static bool CheckLanguagesMatch(ICollection required, ICollection provided, bool requireAll) + public static bool CheckLanguagesMatch(ICollection> required, ICollection> provided, bool requireAll) { if (required.Count == 0) return true; diff --git a/Content.Server/Language/UniversalLanguageSpeakerComponent.cs b/Content.Server/Language/UniversalLanguageSpeakerComponent.cs new file mode 100644 index 0000000000..ee43450335 --- /dev/null +++ b/Content.Server/Language/UniversalLanguageSpeakerComponent.cs @@ -0,0 +1,12 @@ +namespace Content.Server.Language; + +// +// Signifies that this entity can speak and understand any language. +// Applies to such entities as ghosts. +// +[RegisterComponent] +public sealed partial class UniversalLanguageSpeakerComponent : Component +{ + [DataField] + public bool Enabled = true; +} diff --git a/Content.Server/Lathe/LatheSystem.cs b/Content.Server/Lathe/LatheSystem.cs index 06d1b463ec..7448a9b84d 100644 --- a/Content.Server/Lathe/LatheSystem.cs +++ b/Content.Server/Lathe/LatheSystem.cs @@ -8,11 +8,13 @@ using Content.Server.Power.Components; using Content.Server.Power.EntitySystems; using Content.Server.Stack; +using Content.Shared.Atmos; using Content.Shared.UserInterface; using Content.Shared.Database; using Content.Shared.Emag.Components; using Content.Shared.Lathe; using Content.Shared.Materials; +using Content.Shared.ReagentSpeed; using Content.Shared.Research.Components; using Content.Shared.Research.Prototypes; using JetBrains.Annotations; @@ -34,6 +36,7 @@ public sealed class LatheSystem : SharedLatheSystem [Dependency] private readonly SharedAudioSystem _audio = default!; [Dependency] private readonly UserInterfaceSystem _uiSys = default!; [Dependency] private readonly MaterialStorageSystem _materialStorage = default!; + [Dependency] private readonly ReagentSpeedSystem _reagentSpeed = default!; [Dependency] private readonly StackSystem _stack = default!; [Dependency] private readonly TransformSystem _transform = default!; @@ -185,9 +188,11 @@ public bool TryStartProducing(EntityUid uid, LatheComponent? component = null) var recipe = component.Queue.First(); component.Queue.RemoveAt(0); + var time = _reagentSpeed.ApplySpeed(uid, recipe.CompleteTime); + var lathe = EnsureComp(uid); lathe.StartTime = _timing.CurTime; - lathe.ProductionLength = recipe.CompleteTime * component.TimeMultiplier; + lathe.ProductionLength = time * component.TimeMultiplier; component.CurrentRecipe = recipe; var ev = new LatheStartPrintingEvent(recipe); @@ -226,11 +231,10 @@ public void UpdateUserInterfaceState(EntityUid uid, LatheComponent? component = if (!Resolve(uid, ref component)) return; - var ui = _uiSys.GetUi(uid, LatheUiKey.Key); var producing = component.CurrentRecipe ?? component.Queue.FirstOrDefault(); var state = new LatheUpdateState(GetAvailableRecipes(uid, component), component.Queue, producing); - _uiSys.SetUiState(ui, state); + _uiSys.SetUiState(uid, LatheUiKey.Key, state); } private void OnGetRecipes(EntityUid uid, TechnologyDatabaseComponent component, LatheGetRecipesEvent args) @@ -337,10 +341,10 @@ private void OnLatheQueueRecipeMessage(EntityUid uid, LatheComponent component, else break; } - if (count > 0 && args.Session.AttachedEntity != null) + if (count > 0) { _adminLogger.Add(LogType.Action, LogImpact.Low, - $"{ToPrettyString(args.Session.AttachedEntity.Value):player} queued {count} {recipe.Name} at {ToPrettyString(uid):lathe}"); + $"{ToPrettyString(args.Actor):player} queued {count} {recipe.Name} at {ToPrettyString(uid):lathe}"); } } TryStartProducing(uid, component); diff --git a/Content.Server/Light/Components/EmergencyLightComponent.cs b/Content.Server/Light/Components/EmergencyLightComponent.cs index 20de7f1c03..b49a8c3868 100644 --- a/Content.Server/Light/Components/EmergencyLightComponent.cs +++ b/Content.Server/Light/Components/EmergencyLightComponent.cs @@ -14,7 +14,7 @@ public sealed partial class EmergencyLightComponent : SharedEmergencyLightCompon /// /// Is this emergency light forced on for some reason and cannot be disabled through normal means - /// (i.e. delta alert level?) + /// (i.e. blue alert or higher?) /// public bool ForciblyEnabled = false; diff --git a/Content.Server/Light/EntitySystems/EmergencyLightSystem.cs b/Content.Server/Light/EntitySystems/EmergencyLightSystem.cs index 3fa5237948..f2c4c7dcc5 100644 --- a/Content.Server/Light/EntitySystems/EmergencyLightSystem.cs +++ b/Content.Server/Light/EntitySystems/EmergencyLightSystem.cs @@ -31,9 +31,9 @@ public override void Initialize() SubscribeLocalEvent(OnEmergencyPower); } - private void OnEmergencyPower(EntityUid uid, EmergencyLightComponent component, ref PowerChangedEvent args) + private void OnEmergencyPower(Entity entity, ref PowerChangedEvent args) { - var meta = MetaData(uid); + var meta = MetaData(entity.Owner); // TODO: PowerChangedEvent shouldn't be issued for paused ents but this is the world we live in. if (meta.EntityLifeStage >= EntityLifeStage.Terminating || @@ -42,7 +42,7 @@ private void OnEmergencyPower(EntityUid uid, EmergencyLightComponent component, return; } - UpdateState(uid, component); + UpdateState(entity); } private void OnEmergencyExamine(EntityUid uid, EmergencyLightComponent component, ExaminedEvent args) @@ -111,13 +111,13 @@ private void OnAlertLevelChanged(AlertLevelChangedEvent ev) if (details.ForceEnableEmergencyLights && !light.ForciblyEnabled) { light.ForciblyEnabled = true; - TurnOn(uid, light); + TurnOn((uid, light)); } else if (!details.ForceEnableEmergencyLights && light.ForciblyEnabled) { // Previously forcibly enabled, and we went down an alert level. light.ForciblyEnabled = false; - UpdateState(uid, light); + UpdateState((uid, light)); } } } @@ -135,31 +135,31 @@ public override void Update(float frameTime) var query = EntityQueryEnumerator(); while (query.MoveNext(out var uid, out _, out var emergencyLight, out var battery)) { - Update(uid, emergencyLight, battery, frameTime); + Update((uid, emergencyLight), battery, frameTime); } } - private void Update(EntityUid uid, EmergencyLightComponent component, BatteryComponent battery, float frameTime) + private void Update(Entity entity, BatteryComponent battery, float frameTime) { - if (component.State == EmergencyLightState.On) + if (entity.Comp.State == EmergencyLightState.On) { - if (!_battery.TryUseCharge(uid, component.Wattage * frameTime, battery)) + if (!_battery.TryUseCharge(entity.Owner, entity.Comp.Wattage * frameTime, battery)) { - SetState(uid, component, EmergencyLightState.Empty); - TurnOff(uid, component); + SetState(entity.Owner, entity.Comp, EmergencyLightState.Empty); + TurnOff(entity); } } else { - _battery.SetCharge(uid, battery.CurrentCharge + component.ChargingWattage * frameTime * component.ChargingEfficiency, battery); + _battery.SetCharge(entity.Owner, battery.CurrentCharge + entity.Comp.ChargingWattage * frameTime * entity.Comp.ChargingEfficiency, battery); if (battery.IsFullyCharged) { - if (TryComp(uid, out var receiver)) + if (TryComp(entity.Owner, out var receiver)) { receiver.Load = 1; } - SetState(uid, component, EmergencyLightState.Full); + SetState(entity.Owner, entity.Comp, EmergencyLightState.Full); } } } @@ -167,35 +167,73 @@ private void Update(EntityUid uid, EmergencyLightComponent component, BatteryCom /// /// Updates the light's power drain, battery drain, sprite and actual light state. /// - public void UpdateState(EntityUid uid, EmergencyLightComponent component) + public void UpdateState(Entity entity) { - if (!TryComp(uid, out var receiver)) + if (!TryComp(entity.Owner, out var receiver)) return; - if (receiver.Powered && !component.ForciblyEnabled) + if (!TryComp(_station.GetOwningStation(entity.Owner), out var alerts)) + return; + + if (alerts.AlertLevels == null || !alerts.AlertLevels.Levels.TryGetValue(alerts.CurrentLevel, out var details)) { - receiver.Load = (int) Math.Abs(component.Wattage); - TurnOff(uid, component); - SetState(uid, component, EmergencyLightState.Charging); + TurnOff(entity, Color.Red); // if no alert, default to off red state + return; } - else + + if (receiver.Powered && !entity.Comp.ForciblyEnabled) // Green alert { - TurnOn(uid, component); - SetState(uid, component, EmergencyLightState.On); + receiver.Load = (int) Math.Abs(entity.Comp.Wattage); + TurnOff(entity, details.Color); + SetState(entity.Owner, entity.Comp, EmergencyLightState.Charging); + } + else if (!receiver.Powered) // If internal battery runs out it will end in off red state + { + TurnOn(entity, Color.Red); + SetState(entity.Owner, entity.Comp, EmergencyLightState.On); + } + else // Powered and enabled + { + TurnOn(entity, details.Color); + SetState(entity.Owner, entity.Comp, EmergencyLightState.On); } } - private void TurnOff(EntityUid uid, EmergencyLightComponent component) + private void TurnOff(Entity entity) { - _pointLight.SetEnabled(uid, false); - _appearance.SetData(uid, EmergencyLightVisuals.On, false); - _ambient.SetAmbience(uid, false); + _pointLight.SetEnabled(entity.Owner, false); + _appearance.SetData(entity.Owner, EmergencyLightVisuals.On, false); + _ambient.SetAmbience(entity.Owner, false); } - private void TurnOn(EntityUid uid, EmergencyLightComponent component) + /// + /// Turn off emergency light and set color. + /// + private void TurnOff(Entity entity, Color color) + { + _pointLight.SetEnabled(entity.Owner, false); + _pointLight.SetColor(entity.Owner, color); + _appearance.SetData(entity.Owner, EmergencyLightVisuals.Color, color); + _appearance.SetData(entity.Owner, EmergencyLightVisuals.On, false); + _ambient.SetAmbience(entity.Owner, false); + } + + private void TurnOn(Entity entity) + { + _pointLight.SetEnabled(entity.Owner, true); + _appearance.SetData(entity.Owner, EmergencyLightVisuals.On, true); + _ambient.SetAmbience(entity.Owner, true); + } + + /// + /// Turn on emergency light and set color. + /// + private void TurnOn(Entity entity, Color color) { - _pointLight.SetEnabled(uid, true); - _appearance.SetData(uid, EmergencyLightVisuals.On, true); - _ambient.SetAmbience(uid, true); + _pointLight.SetEnabled(entity.Owner, true); + _pointLight.SetColor(entity.Owner, color); + _appearance.SetData(entity.Owner, EmergencyLightVisuals.Color, color); + _appearance.SetData(entity.Owner, EmergencyLightVisuals.On, true); + _ambient.SetAmbience(entity.Owner, true); } } diff --git a/Content.Server/Light/EntitySystems/UnpoweredFlashlightSystem.cs b/Content.Server/Light/EntitySystems/UnpoweredFlashlightSystem.cs deleted file mode 100644 index a1ed71ee4c..0000000000 --- a/Content.Server/Light/EntitySystems/UnpoweredFlashlightSystem.cs +++ /dev/null @@ -1,113 +0,0 @@ -using Content.Server.Light.Events; -using Content.Shared.Actions; -using Content.Shared.Decals; -using Content.Shared.Emag.Systems; -using Content.Shared.Light; -using Content.Shared.Light.Components; -using Content.Shared.Mind.Components; -using Content.Shared.Toggleable; -using Content.Shared.Verbs; -using Robust.Shared.Audio; -using Robust.Shared.Audio.Systems; -using Robust.Shared.Prototypes; -using Robust.Shared.Random; -using Robust.Shared.Utility; - -namespace Content.Server.Light.EntitySystems -{ - public sealed class UnpoweredFlashlightSystem : EntitySystem - { - [Dependency] private readonly IPrototypeManager _prototypeManager = default!; - [Dependency] private readonly IRobustRandom _random = default!; - [Dependency] private readonly SharedActionsSystem _actionsSystem = default!; - [Dependency] private readonly ActionContainerSystem _actionContainer = default!; - [Dependency] private readonly SharedAppearanceSystem _appearance = default!; - [Dependency] private readonly SharedAudioSystem _audioSystem = default!; - [Dependency] private readonly SharedPointLightSystem _light = default!; - - public override void Initialize() - { - base.Initialize(); - - SubscribeLocalEvent>(AddToggleLightVerbs); - SubscribeLocalEvent(OnGetActions); - SubscribeLocalEvent(OnToggleAction); - SubscribeLocalEvent(OnMindAdded); - SubscribeLocalEvent(OnGotEmagged); - SubscribeLocalEvent(OnMapInit); - } - - private void OnMapInit(EntityUid uid, UnpoweredFlashlightComponent component, MapInitEvent args) - { - _actionContainer.EnsureAction(uid, ref component.ToggleActionEntity, component.ToggleAction); - Dirty(uid, component); - } - - private void OnToggleAction(EntityUid uid, UnpoweredFlashlightComponent component, ToggleActionEvent args) - { - if (args.Handled) - return; - - ToggleLight(uid, component); - - args.Handled = true; - } - - private void OnGetActions(EntityUid uid, UnpoweredFlashlightComponent component, GetItemActionsEvent args) - { - args.AddAction(ref component.ToggleActionEntity, component.ToggleAction); - } - - private void AddToggleLightVerbs(EntityUid uid, UnpoweredFlashlightComponent component, GetVerbsEvent args) - { - if (!args.CanAccess || !args.CanInteract) - return; - - ActivationVerb verb = new() - { - Text = Loc.GetString("toggle-flashlight-verb-get-data-text"), - Icon = new SpriteSpecifier.Texture(new ("/Textures/Interface/VerbIcons/light.svg.192dpi.png")), - Act = () => ToggleLight(uid, component), - Priority = -1 // For things like PDA's, Open-UI and other verbs that should be higher priority. - }; - - args.Verbs.Add(verb); - } - - private void OnMindAdded(EntityUid uid, UnpoweredFlashlightComponent component, MindAddedMessage args) - { - _actionsSystem.AddAction(uid, ref component.ToggleActionEntity, component.ToggleAction); - } - - private void OnGotEmagged(EntityUid uid, UnpoweredFlashlightComponent component, ref GotEmaggedEvent args) - { - if (!_light.TryGetLight(uid, out var light)) - return; - - if (_prototypeManager.TryIndex(component.EmaggedColorsPrototype, out var possibleColors)) - { - var pick = _random.Pick(possibleColors.Colors.Values); - _light.SetColor(uid, pick, light); - } - - args.Repeatable = true; - args.Handled = true; - } - - public void ToggleLight(EntityUid uid, UnpoweredFlashlightComponent flashlight) - { - if (!_light.TryGetLight(uid, out var light)) - return; - - flashlight.LightOn = !flashlight.LightOn; - _light.SetEnabled(uid, flashlight.LightOn, light); - - _appearance.SetData(uid, UnpoweredFlashlightVisuals.LightOn, flashlight.LightOn); - - _audioSystem.PlayPvs(flashlight.ToggleSound, uid); - - RaiseLocalEvent(uid, new LightToggleEvent(flashlight.LightOn), true); - _actionsSystem.SetToggled(flashlight.ToggleActionEntity, flashlight.LightOn); - } - } -} diff --git a/Content.Server/Light/Events/LightToggleEvent.cs b/Content.Server/Light/Events/LightToggleEvent.cs deleted file mode 100644 index c7e82ce754..0000000000 --- a/Content.Server/Light/Events/LightToggleEvent.cs +++ /dev/null @@ -1,12 +0,0 @@ -namespace Content.Server.Light.Events -{ - public sealed class LightToggleEvent : EntityEventArgs - { - public bool IsOn; - - public LightToggleEvent(bool isOn) - { - IsOn = isOn; - } - } -} diff --git a/Content.Server/Lock/EntitySystems/ActivatableUIRequiresLockSystem.cs b/Content.Server/Lock/EntitySystems/ActivatableUIRequiresLockSystem.cs index dfe398ebaf..04f8e2eb54 100644 --- a/Content.Server/Lock/EntitySystems/ActivatableUIRequiresLockSystem.cs +++ b/Content.Server/Lock/EntitySystems/ActivatableUIRequiresLockSystem.cs @@ -3,6 +3,7 @@ using Content.Shared.UserInterface; using Content.Shared.Lock; using Content.Server.UserInterface; +using ActivatableUISystem = Content.Shared.UserInterface.ActivatableUISystem; namespace Content.Server.Lock.EntitySystems; public sealed class ActivatableUIRequiresLockSystem : EntitySystem diff --git a/Content.Server/Magic/Components/SpellbookComponent.cs b/Content.Server/Magic/Components/SpellbookComponent.cs deleted file mode 100644 index ebc3c88043..0000000000 --- a/Content.Server/Magic/Components/SpellbookComponent.cs +++ /dev/null @@ -1,35 +0,0 @@ -using Robust.Shared.Prototypes; -using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype.Dictionary; - -namespace Content.Server.Magic.Components; - -/// -/// Spellbooks for having an entity learn spells as long as they've read the book and it's in their hand. -/// -[RegisterComponent] -public sealed partial class SpellbookComponent : Component -{ - /// - /// List of spells that this book has. This is a combination of the WorldSpells, EntitySpells, and InstantSpells. - /// - [ViewVariables] - public readonly List Spells = new(); - - /// - /// The three fields below is just used for initialization. - /// - [DataField("spells", customTypeSerializer: typeof(PrototypeIdDictionarySerializer))] - [ViewVariables(VVAccess.ReadWrite)] - public Dictionary SpellActions = new(); - - [DataField("learnTime")] - [ViewVariables(VVAccess.ReadWrite)] - public float LearnTime = .75f; - - /// - /// If true, the spell action stays even after the book is removed - /// - [DataField("learnPermanently")] - [ViewVariables(VVAccess.ReadWrite)] - public bool LearnPermanently; -} diff --git a/Content.Server/Magic/MagicSystem.cs b/Content.Server/Magic/MagicSystem.cs index 18602c3de8..c25aada3a0 100644 --- a/Content.Server/Magic/MagicSystem.cs +++ b/Content.Server/Magic/MagicSystem.cs @@ -1,409 +1,23 @@ -using System.Numerics; -using Content.Server.Body.Components; -using Content.Server.Body.Systems; using Content.Server.Chat.Systems; -using Content.Server.Doors.Systems; -using Content.Server.Magic.Components; -using Content.Server.Weapons.Ranged.Systems; -using Content.Shared.Actions; -using Content.Shared.Body.Components; using Content.Shared.Chat; -using Content.Shared.Coordinates.Helpers; -using Content.Shared.DoAfter; -using Content.Shared.Doors.Components; -using Content.Shared.Doors.Systems; -using Content.Shared.Interaction.Events; using Content.Shared.Magic; using Content.Shared.Magic.Events; -using Content.Shared.Maps; -using Content.Shared.Physics; -using Content.Shared.Storage; -using Robust.Server.GameObjects; -using Robust.Shared.Audio; -using Robust.Shared.Audio.Systems; -using Robust.Shared.Map; -using Robust.Shared.Map.Components; -using Robust.Shared.Random; -using Robust.Shared.Serialization.Manager; -using Robust.Shared.Spawners; namespace Content.Server.Magic; -/// -/// Handles learning and using spells (actions) -/// -public sealed class MagicSystem : EntitySystem +public sealed class MagicSystem : SharedMagicSystem { - [Dependency] private readonly ISerializationManager _seriMan = default!; - [Dependency] private readonly IComponentFactory _compFact = default!; - [Dependency] private readonly IMapManager _mapManager = default!; - [Dependency] private readonly IRobustRandom _random = default!; - [Dependency] private readonly BodySystem _bodySystem = default!; - [Dependency] private readonly EntityLookupSystem _lookup = default!; - [Dependency] private readonly SharedDoorSystem _doorSystem = default!; - [Dependency] private readonly SharedActionsSystem _actionsSystem = default!; - [Dependency] private readonly SharedDoAfterSystem _doAfter = default!; - [Dependency] private readonly GunSystem _gunSystem = default!; - [Dependency] private readonly PhysicsSystem _physics = default!; - [Dependency] private readonly SharedTransformSystem _transformSystem = default!; - [Dependency] private readonly SharedAudioSystem _audio = default!; [Dependency] private readonly ChatSystem _chat = default!; - [Dependency] private readonly ActionContainerSystem _actionContainer = default!; public override void Initialize() { base.Initialize(); - SubscribeLocalEvent(OnInit); - SubscribeLocalEvent(OnUse); - SubscribeLocalEvent(OnDoAfter); - - SubscribeLocalEvent(OnInstantSpawn); - SubscribeLocalEvent(OnTeleportSpell); - SubscribeLocalEvent(OnKnockSpell); - SubscribeLocalEvent(OnSmiteSpell); - SubscribeLocalEvent(OnWorldSpawn); - SubscribeLocalEvent(OnProjectileSpell); - SubscribeLocalEvent(OnChangeComponentsSpell); - } - - private void OnDoAfter(EntityUid uid, SpellbookComponent component, DoAfterEvent args) - { - if (args.Handled || args.Cancelled) - return; - - args.Handled = true; - if (!component.LearnPermanently) - { - _actionsSystem.GrantActions(args.Args.User, component.Spells, uid); - return; - } - - foreach (var (id, charges) in component.SpellActions) - { - // TOOD store spells entity ids on some sort of innate magic user component or something like that. - EntityUid? actionId = null; - if (_actionsSystem.AddAction(args.Args.User, ref actionId, id)) - _actionsSystem.SetCharges(actionId, charges < 0 ? null : charges); - } - - component.SpellActions.Clear(); - } - - private void OnInit(EntityUid uid, SpellbookComponent component, MapInitEvent args) - { - if (component.LearnPermanently) - return; - - foreach (var (id, charges) in component.SpellActions) - { - var spell = _actionContainer.AddAction(uid, id); - if (spell == null) - continue; - - _actionsSystem.SetCharges(spell, charges < 0 ? null : charges); - component.Spells.Add(spell.Value); - } - } - - private void OnUse(EntityUid uid, SpellbookComponent component, UseInHandEvent args) - { - if (args.Handled) - return; - - AttemptLearn(uid, component, args); - - args.Handled = true; - } - - private void AttemptLearn(EntityUid uid, SpellbookComponent component, UseInHandEvent args) - { - var doAfterEventArgs = new DoAfterArgs(EntityManager, args.User, component.LearnTime, new SpellbookDoAfterEvent(), uid, target: uid) - { - BreakOnTargetMove = true, - BreakOnUserMove = true, - BreakOnDamage = true, - NeedHand = true //What, are you going to read with your eyes only?? - }; - - _doAfter.TryStartDoAfter(doAfterEventArgs); - } - - #region Spells - - /// - /// Handles the instant action (i.e. on the caster) attempting to spawn an entity. - /// - private void OnInstantSpawn(InstantSpawnSpellEvent args) - { - if (args.Handled) - return; - - var transform = Transform(args.Performer); - - foreach (var position in GetSpawnPositions(transform, args.Pos)) - { - var ent = Spawn(args.Prototype, position.SnapToGrid(EntityManager, _mapManager)); - - if (args.PreventCollideWithCaster) - { - var comp = EnsureComp(ent); - comp.Uid = args.Performer; - } - } - - Speak(args); - args.Handled = true; - } - - private void OnProjectileSpell(ProjectileSpellEvent ev) - { - if (ev.Handled) - return; - - ev.Handled = true; - Speak(ev); - - var xform = Transform(ev.Performer); - var userVelocity = _physics.GetMapLinearVelocity(ev.Performer); - - foreach (var pos in GetSpawnPositions(xform, ev.Pos)) - { - // If applicable, this ensures the projectile is parented to grid on spawn, instead of the map. - var mapPos = pos.ToMap(EntityManager, _transformSystem); - var spawnCoords = _mapManager.TryFindGridAt(mapPos, out var gridUid, out _) - ? pos.WithEntityId(gridUid, EntityManager) - : new(_mapManager.GetMapEntityId(mapPos.MapId), mapPos.Position); - - var ent = Spawn(ev.Prototype, spawnCoords); - var direction = ev.Target.ToMapPos(EntityManager, _transformSystem) - - spawnCoords.ToMapPos(EntityManager, _transformSystem); - _gunSystem.ShootProjectile(ent, direction, userVelocity, ev.Performer, ev.Performer); - } - } - - private void OnChangeComponentsSpell(ChangeComponentsSpellEvent ev) - { - if (ev.Handled) - return; - ev.Handled = true; - Speak(ev); - - foreach (var toRemove in ev.ToRemove) - { - if (_compFact.TryGetRegistration(toRemove, out var registration)) - RemComp(ev.Target, registration.Type); - } - - foreach (var (name, data) in ev.ToAdd) - { - if (HasComp(ev.Target, data.Component.GetType())) - continue; - - var component = (Component) _compFact.GetComponent(name); - component.Owner = ev.Target; - var temp = (object) component; - _seriMan.CopyTo(data.Component, ref temp); - EntityManager.AddComponent(ev.Target, (Component) temp!); - } - } - - private List GetSpawnPositions(TransformComponent casterXform, MagicSpawnData data) - { - switch (data) - { - case TargetCasterPos: - return new List(1) {casterXform.Coordinates}; - case TargetInFront: - { - // This is shit but you get the idea. - var directionPos = casterXform.Coordinates.Offset(casterXform.LocalRotation.ToWorldVec().Normalized()); - - if (!TryComp(casterXform.GridUid, out var mapGrid)) - return new List(); - - if (!directionPos.TryGetTileRef(out var tileReference, EntityManager, _mapManager)) - return new List(); - - var tileIndex = tileReference.Value.GridIndices; - var coords = mapGrid.GridTileToLocal(tileIndex); - EntityCoordinates coordsPlus; - EntityCoordinates coordsMinus; - - var dir = casterXform.LocalRotation.GetCardinalDir(); - switch (dir) - { - case Direction.North: - case Direction.South: - { - coordsPlus = mapGrid.GridTileToLocal(tileIndex + (1, 0)); - coordsMinus = mapGrid.GridTileToLocal(tileIndex + (-1, 0)); - return new List(3) - { - coords, - coordsPlus, - coordsMinus, - }; - } - case Direction.East: - case Direction.West: - { - coordsPlus = mapGrid.GridTileToLocal(tileIndex + (0, 1)); - coordsMinus = mapGrid.GridTileToLocal(tileIndex + (0, -1)); - return new List(3) - { - coords, - coordsPlus, - coordsMinus, - }; - } - } - - return new List(); - } - default: - throw new ArgumentOutOfRangeException(); - } - } - - /// - /// Teleports the user to the clicked location - /// - /// - private void OnTeleportSpell(TeleportSpellEvent args) - { - if (args.Handled) - return; - - var transform = Transform(args.Performer); - - if (transform.MapID != args.Target.GetMapId(EntityManager)) return; - - _transformSystem.SetCoordinates(args.Performer, args.Target); - transform.AttachToGridOrMap(); - _audio.PlayPvs(args.BlinkSound, args.Performer, AudioParams.Default.WithVolume(args.BlinkVolume)); - Speak(args); - args.Handled = true; + SubscribeLocalEvent(OnSpellSpoken); } - /// - /// Opens all doors within range - /// - /// - private void OnKnockSpell(KnockSpellEvent args) + private void OnSpellSpoken(ref SpeakSpellEvent args) { - if (args.Handled) - return; - - args.Handled = true; - Speak(args); - - //Get the position of the player - var transform = Transform(args.Performer); - var coords = transform.Coordinates; - - _audio.PlayPvs(args.KnockSound, args.Performer, AudioParams.Default.WithVolume(args.KnockVolume)); - - //Look for doors and don't open them if they're already open. - foreach (var entity in _lookup.GetEntitiesInRange(coords, args.Range)) - { - if (TryComp(entity, out var bolts)) - _doorSystem.SetBoltsDown((entity, bolts), false); - - if (TryComp(entity, out var doorComp) && doorComp.State is not DoorState.Open) - _doorSystem.StartOpening(entity); - } - } - - private void OnSmiteSpell(SmiteSpellEvent ev) - { - if (ev.Handled) - return; - - ev.Handled = true; - Speak(ev); - - var direction = Transform(ev.Target).MapPosition.Position - Transform(ev.Performer).MapPosition.Position; - var impulseVector = direction * 10000; - - _physics.ApplyLinearImpulse(ev.Target, impulseVector); - - if (!TryComp(ev.Target, out var body)) - return; - - var ents = _bodySystem.GibBody(ev.Target, true, body); - - if (!ev.DeleteNonBrainParts) - return; - - foreach (var part in ents) - { - // just leaves a brain and clothes - if (HasComp(part) && !HasComp(part)) - { - QueueDel(part); - } - } - } - - /// - /// Spawns entity prototypes from a list within range of click. - /// - /// - /// It will offset mobs after the first mob based on the OffsetVector2 property supplied. - /// - /// The Spawn Spell Event args. - private void OnWorldSpawn(WorldSpawnSpellEvent args) - { - if (args.Handled) - return; - - var targetMapCoords = args.Target; - - SpawnSpellHelper(args.Contents, targetMapCoords, args.Lifetime, args.Offset); - Speak(args); - args.Handled = true; - } - - /// - /// Loops through a supplied list of entity prototypes and spawns them - /// - /// - /// If an offset of 0, 0 is supplied then the entities will all spawn on the same tile. - /// Any other offset will spawn entities starting from the source Map Coordinates and will increment the supplied - /// offset - /// - /// The list of Entities to spawn in - /// Map Coordinates where the entities will spawn - /// Check to see if the entities should self delete - /// A Vector2 offset that the entities will spawn in - private void SpawnSpellHelper(List entityEntries, EntityCoordinates entityCoords, float? lifetime, Vector2 offsetVector2) - { - var getProtos = EntitySpawnCollection.GetSpawns(entityEntries, _random); - - var offsetCoords = entityCoords; - foreach (var proto in getProtos) - { - // TODO: Share this code with instant because they're both doing similar things for positioning. - var entity = Spawn(proto, offsetCoords); - offsetCoords = offsetCoords.Offset(offsetVector2); - - if (lifetime != null) - { - var comp = EnsureComp(entity); - comp.Lifetime = lifetime.Value; - } - } - } - - #endregion - - private void Speak(BaseActionEvent args) - { - if (args is not ISpeakSpell speak || string.IsNullOrWhiteSpace(speak.Speech)) - return; - - _chat.TrySendInGameICMessage(args.Performer, Loc.GetString(speak.Speech), - InGameICChatType.Speak, false); + _chat.TrySendInGameICMessage(args.Performer, Loc.GetString(args.Speech), InGameICChatType.Speak, false); } } diff --git a/Content.Server/MagicMirror/MagicMirrorSystem.cs b/Content.Server/MagicMirror/MagicMirrorSystem.cs index aef6e11d71..6cbfc55cac 100644 --- a/Content.Server/MagicMirror/MagicMirrorSystem.cs +++ b/Content.Server/MagicMirror/MagicMirrorSystem.cs @@ -16,13 +16,12 @@ namespace Content.Server.MagicMirror; /// /// Allows humanoids to change their appearance mid-round. /// -public sealed class MagicMirrorSystem : EntitySystem +public sealed class MagicMirrorSystem : SharedMagicMirrorSystem { [Dependency] private readonly SharedAudioSystem _audio = default!; [Dependency] private readonly DoAfterSystem _doAfterSystem = default!; [Dependency] private readonly MarkingManager _markings = default!; [Dependency] private readonly HumanoidAppearanceSystem _humanoid = default!; - [Dependency] private readonly SharedInteractionSystem _interaction = default!; [Dependency] private readonly UserInterfaceSystem _uiSystem = default!; public override void Initialize() @@ -32,7 +31,7 @@ public override void Initialize() Subs.BuiEvents(MagicMirrorUiKey.Key, subs => { - subs.Event(OnUIClosed); + subs.Event(OnUiClosed); subs.Event(OnMagicMirrorSelect); subs.Event(OnTryMagicMirrorChangeColor); subs.Event(OnTryMagicMirrorAddSlot); @@ -45,16 +44,6 @@ public override void Initialize() SubscribeLocalEvent(OnChangeColorDoAfter); SubscribeLocalEvent(OnRemoveSlotDoAfter); SubscribeLocalEvent(OnAddSlotDoAfter); - - SubscribeLocalEvent(OnMirrorRangeCheck); - } - - private void OnMirrorRangeCheck(EntityUid uid, MagicMirrorComponent component, ref BoundUserInterfaceCheckRangeEvent args) - { - if (!Exists(component.Target) || !_interaction.InRangeUnobstructed(uid, component.Target.Value)) - { - args.Result = BoundUserInterfaceRangeResult.Fail; - } } private void OnMagicMirrorInteract(Entity mirror, ref AfterInteractEvent args) @@ -62,10 +51,7 @@ private void OnMagicMirrorInteract(Entity mirror, ref Afte if (!args.CanReach || args.Target == null) return; - if (!TryComp(args.User, out var actor)) - return; - - if (!_uiSystem.TryOpen(mirror.Owner, MagicMirrorUiKey.Key, actor.PlayerSession)) + if (!_uiSystem.TryOpenUi(mirror.Owner, MagicMirrorUiKey.Key, args.User)) return; UpdateInterface(mirror.Owner, args.Target.Value, mirror.Comp); @@ -79,7 +65,7 @@ private void OnOpenUIAttempt(EntityUid uid, MagicMirrorComponent mirror, Activat private void OnMagicMirrorSelect(EntityUid uid, MagicMirrorComponent component, MagicMirrorSelectMessage message) { - if (component.Target is not { } target || message.Session.AttachedEntity is not { } user) + if (component.Target is not { } target) return; _doAfterSystem.Cancel(component.DoAfter); @@ -92,7 +78,7 @@ private void OnMagicMirrorSelect(EntityUid uid, MagicMirrorComponent component, Marking = message.Marking, }; - _doAfterSystem.TryStartDoAfter(new DoAfterArgs(EntityManager, user, component.SelectSlotTime, doAfter, uid, target: target, used: uid) + _doAfterSystem.TryStartDoAfter(new DoAfterArgs(EntityManager, message.Actor, component.SelectSlotTime, doAfter, uid, target: target, used: uid) { DistanceThreshold = SharedInteractionSystem.InteractionRange, BreakOnTargetMove = true, @@ -136,7 +122,7 @@ private void OnSelectSlotDoAfter(EntityUid uid, MagicMirrorComponent component, private void OnTryMagicMirrorChangeColor(EntityUid uid, MagicMirrorComponent component, MagicMirrorChangeColorMessage message) { - if (component.Target is not { } target || message.Session.AttachedEntity is not { } user) + if (component.Target is not { } target) return; _doAfterSystem.Cancel(component.DoAfter); @@ -149,7 +135,7 @@ private void OnTryMagicMirrorChangeColor(EntityUid uid, MagicMirrorComponent com Colors = message.Colors, }; - _doAfterSystem.TryStartDoAfter(new DoAfterArgs(EntityManager, user, component.ChangeSlotTime, doAfter, uid, target: target, used: uid) + _doAfterSystem.TryStartDoAfter(new DoAfterArgs(EntityManager, message.Actor, component.ChangeSlotTime, doAfter, uid, target: target, used: uid) { BreakOnTargetMove = true, BreakOnDamage = true, @@ -191,7 +177,7 @@ private void OnChangeColorDoAfter(EntityUid uid, MagicMirrorComponent component, private void OnTryMagicMirrorRemoveSlot(EntityUid uid, MagicMirrorComponent component, MagicMirrorRemoveSlotMessage message) { - if (component.Target is not { } target || message.Session.AttachedEntity is not { } user) + if (component.Target is not { } target) return; _doAfterSystem.Cancel(component.DoAfter); @@ -203,7 +189,7 @@ private void OnTryMagicMirrorRemoveSlot(EntityUid uid, MagicMirrorComponent comp Slot = message.Slot, }; - _doAfterSystem.TryStartDoAfter(new DoAfterArgs(EntityManager, user, component.RemoveSlotTime, doAfter, uid, target: target, used: uid) + _doAfterSystem.TryStartDoAfter(new DoAfterArgs(EntityManager, message.Actor, component.RemoveSlotTime, doAfter, uid, target: target, used: uid) { DistanceThreshold = SharedInteractionSystem.InteractionRange, BreakOnTargetMove = true, @@ -250,9 +236,6 @@ private void OnTryMagicMirrorAddSlot(EntityUid uid, MagicMirrorComponent compone if (component.Target == null) return; - if (message.Session.AttachedEntity == null) - return; - _doAfterSystem.Cancel(component.DoAfter); component.DoAfter = null; @@ -261,7 +244,7 @@ private void OnTryMagicMirrorAddSlot(EntityUid uid, MagicMirrorComponent compone Category = message.Category, }; - _doAfterSystem.TryStartDoAfter(new DoAfterArgs(EntityManager, message.Session.AttachedEntity.Value, component.AddSlotTime, doAfter, uid, target: component.Target.Value, used: uid) + _doAfterSystem.TryStartDoAfter(new DoAfterArgs(EntityManager, message.Actor, component.AddSlotTime, doAfter, uid, target: component.Target.Value, used: uid) { BreakOnTargetMove = true, BreakOnDamage = true, @@ -324,12 +307,15 @@ private void UpdateInterface(EntityUid mirrorUid, EntityUid targetUid, MagicMirr facialHair, humanoid.MarkingSet.PointsLeft(MarkingCategories.FacialHair) + facialHair.Count); + // TODO: Component states component.Target = targetUid; - _uiSystem.TrySetUiState(mirrorUid, MagicMirrorUiKey.Key, state); + _uiSystem.SetUiState(mirrorUid, MagicMirrorUiKey.Key, state); + Dirty(mirrorUid, component); } - private void OnUIClosed(Entity ent, ref BoundUIClosedEvent args) + private void OnUiClosed(Entity ent, ref BoundUIClosedEvent args) { ent.Comp.Target = null; + Dirty(ent); } } diff --git a/Content.Server/Mail/Components/DelayedItemComponent.cs b/Content.Server/Mail/Components/DelayedItemComponent.cs new file mode 100644 index 0000000000..f73aef85b0 --- /dev/null +++ b/Content.Server/Mail/Components/DelayedItemComponent.cs @@ -0,0 +1,15 @@ +namespace Content.Server.Mail.Components; + +/// +/// A placeholder for another entity, spawned when dropped or placed in someone's hands. +/// Useful for storing instant effect entities, e.g. smoke, in the mail. +/// +[RegisterComponent] +public sealed partial class DelayedItemComponent : Component +{ + /// + /// The entity to replace this when opened or dropped. + /// + [DataField] + public string Item = "None"; +} diff --git a/Content.Server/Mail/Components/MailComponent.cs b/Content.Server/Mail/Components/MailComponent.cs new file mode 100644 index 0000000000..af0bdaa87f --- /dev/null +++ b/Content.Server/Mail/Components/MailComponent.cs @@ -0,0 +1,111 @@ +using System.Threading; +using Robust.Shared.Audio; +using Content.Shared.Storage; +using Content.Shared.Mail; + +namespace Content.Server.Mail.Components; + +[RegisterComponent] +public sealed partial class MailComponent : SharedMailComponent +{ + [DataField] + public string Recipient = "None"; + + [DataField] + public string RecipientJob = "None"; + + /// + /// Why do we not use LockComponent? + /// Because this can't be locked again, + /// and we have special conditions for unlocking, + /// and we don't want to add a verb. + /// + [DataField] + public bool IsLocked = true; + + /// + /// Is this parcel profitable to deliver for the station? + /// + /// + /// The station won't receive any award on delivery if this is false. + /// This is useful for broken fragile packages and packages that were + /// not delivered in time. + /// + [DataField] + public bool IsProfitable = true; + + /// + /// Is this package considered fragile? + /// + /// + /// This can be set to true in the YAML files for a mail delivery to + /// always be Fragile, despite its contents. + /// + [DataField] + public bool IsFragile = false; + + /// + /// Is this package considered priority mail? + /// + /// + /// There will be a timer set for its successful delivery. The + /// station's bank account will be penalized if it is not delivered on + /// time.
+ ///
+ /// This is set to false on successful delivery.
+ ///
+ /// This can be set to true in the YAML files for a mail delivery to always be Priority. + ///
+ [DataField] + public bool IsPriority = false; + + /// + /// Whether this parcel is large. + /// + [DataField] + public bool IsLarge = false; + + /// + /// What will be packaged when the mail is spawned. + /// + [DataField] + public List Contents = new(); + + /// + /// The amount that cargo will be awarded for delivering this mail. + /// + [DataField] + public int Bounty = 750; + + /// + /// Penalty if the mail is destroyed. + /// + [DataField] + public int Penalty = -250; + + /// + /// The sound that's played when the mail's lock is broken. + /// + [DataField] + public SoundSpecifier PenaltySound = new SoundPathSpecifier("/Audio/Machines/Nuke/angry_beep.ogg"); + + /// + /// The sound that's played when the mail's opened. + /// + [DataField] + public SoundSpecifier OpenSound = new SoundPathSpecifier("/Audio/Effects/packetrip.ogg"); + + /// + /// The sound that's played when the mail's lock has been emagged. + /// + [DataField] + public SoundSpecifier EmagSound = new SoundCollectionSpecifier("sparks"); + + /// + /// Whether this component is enabled. + /// Removed when it becomes trash. + /// + public bool IsEnabled = true; + + public CancellationTokenSource? PriorityCancelToken; +} diff --git a/Content.Server/Mail/Components/MailReceiverComponent.cs b/Content.Server/Mail/Components/MailReceiverComponent.cs new file mode 100644 index 0000000000..281a27ea79 --- /dev/null +++ b/Content.Server/Mail/Components/MailReceiverComponent.cs @@ -0,0 +1,4 @@ +namespace Content.Server.Mail.Components; + +[RegisterComponent] +public sealed partial class MailReceiverComponent : Component {} diff --git a/Content.Server/Mail/Components/MailTeleporterComponent.cs b/Content.Server/Mail/Components/MailTeleporterComponent.cs new file mode 100644 index 0000000000..81f58bc7a5 --- /dev/null +++ b/Content.Server/Mail/Components/MailTeleporterComponent.cs @@ -0,0 +1,118 @@ +using Robust.Shared.Audio; + +namespace Content.Server.Mail.Components; + +/// +/// This is for the mail teleporter. +/// Random mail will be teleported to this every few minutes. +/// +[RegisterComponent] +public sealed partial class MailTeleporterComponent : Component +{ + // Not starting accumulator at 0 so mail carriers have some deliveries to make shortly after roundstart. + [DataField] + public float Accumulator = 285f; + + [DataField] + public TimeSpan TeleportInterval = TimeSpan.FromMinutes(5); + + /// + /// The sound that's played when new mail arrives. + /// + [DataField] + public SoundSpecifier TeleportSound = new SoundPathSpecifier("/Audio/Effects/teleport_arrival.ogg"); + + /// + /// The MailDeliveryPoolPrototype that's used to select what mail this + /// teleporter can deliver. + /// + [DataField] + public string MailPool = "RandomDeltaVMailDeliveryPool"; + + /// + /// How many mail candidates do we need per actual delivery sent when + /// the mail goes out? The number of candidates is divided by this number + /// to determine how many deliveries will be teleported in. + /// It does not determine unique recipients. That is random. + /// + [DataField] + public int CandidatesPerDelivery = 8; + + [DataField] + public int MinimumDeliveriesPerTeleport = 1; + + /// + /// Do not teleport any more mail in, if there are at least this many + /// undelivered parcels. + /// + /// + /// Currently this works by checking how many MailComponent entities + /// are sitting on the teleporter's tile.

+ /// + /// It should be noted that if the number of actual deliveries to be + /// made based on the number of candidates divided by candidates per + /// delivery exceeds this number, the teleporter will spawn more mail + /// than this number.

+ /// + /// This is just a simple check to see if anyone's been picking up the + /// mail lately to prevent entity bloat for the sake of performance. + ///
+ [DataField] + public int MaximumUndeliveredParcels = 5; + + /// + /// Any item that breaks or is destroyed in less than this amount of + /// damage is one of the types of items considered fragile. + /// + [DataField] + public int FragileDamageThreshold = 10; + + /// + /// What's the bonus for delivering a fragile package intact? + /// + [DataField] + public int FragileBonus = 100; + + /// + /// What's the malus for failing to deliver a fragile package? + /// + [DataField] + public int FragileMalus = -100; + + /// + /// What's the chance for any one delivery to be marked as priority mail? + /// + [DataField] + public float PriorityChance = 0.1f; + + /// + /// How long until a priority delivery is considered as having failed + /// if not delivered? + /// + [DataField] + public TimeSpan PriorityDuration = TimeSpan.FromMinutes(5); + + /// + /// What's the bonus for delivering a priority package on time? + /// + [DataField] + public int PriorityBonus = 250; + + /// + /// What's the malus for failing to deliver a priority package? + /// + [DataField] + public int PriorityMalus = -250; + + /// + /// What's the bonus for delivering a large package intact? + /// + [DataField] + public int LargeBonus = 1500; + + /// + /// What's the malus for failing to deliver a large package? + /// + [DataField] + public int LargeMalus = -500; +} diff --git a/Content.Server/Mail/Components/StationMailRouterComponent.cs b/Content.Server/Mail/Components/StationMailRouterComponent.cs new file mode 100644 index 0000000000..6f6df1e10b --- /dev/null +++ b/Content.Server/Mail/Components/StationMailRouterComponent.cs @@ -0,0 +1,9 @@ +namespace Content.Server.Mail.Components; + +/// +/// Designates a station as a place for sending and receiving mail. +/// +[RegisterComponent] +public sealed partial class StationMailRouterComponent : Component +{ +} diff --git a/Content.Server/Mail/MailCommands.cs b/Content.Server/Mail/MailCommands.cs new file mode 100644 index 0000000000..390de93fb3 --- /dev/null +++ b/Content.Server/Mail/MailCommands.cs @@ -0,0 +1,142 @@ +using System.Linq; +using Robust.Shared.Console; +using Robust.Shared.Containers; +using Robust.Shared.Prototypes; +using Content.Shared.Administration; +using Content.Server.Administration; +using Content.Server.Mail.Components; +using Content.Server.Mail.Systems; + +namespace Content.Server.Mail; + +[AdminCommand(AdminFlags.Fun)] +public sealed class MailToCommand : IConsoleCommand +{ + public string Command => "mailto"; + public string Description => Loc.GetString("command-mailto-description", ("requiredComponent", nameof(MailReceiverComponent))); + public string Help => Loc.GetString("command-mailto-help", ("command", Command)); + + [Dependency] private readonly IEntityManager _entityManager = default!; + [Dependency] private readonly IPrototypeManager _prototypeManager = default!; + [Dependency] private readonly IEntitySystemManager _entitySystemManager = default!; + + private readonly string _blankMailPrototype = "MailAdminFun"; + private readonly string _blankLargeMailPrototype = "MailLargeAdminFun"; // Frontier: large mail + private readonly string _container = "storagebase"; + private readonly string _mailContainer = "contents"; + + + public async void Execute(IConsoleShell shell, string argStr, string[] args) + { + if (args.Length < 4) + { + shell.WriteError(Loc.GetString("shell-wrong-arguments-number")); + return; + } + + if (!EntityUid.TryParse(args[0], out var recipientUid)) + { + shell.WriteError(Loc.GetString("shell-entity-uid-must-be-number")); + return; + } + + if (!EntityUid.TryParse(args[1], out var containerUid)) + { + shell.WriteError(Loc.GetString("shell-entity-uid-must-be-number")); + return; + } + + if (!bool.TryParse(args[2], out var isFragile) || !bool.TryParse(args[3], out var isPriority)) + { + shell.WriteError(Loc.GetString("shell-invalid-bool")); + return; + } + + var isLarge = false; + if (args.Length > 4 && !bool.TryParse(args[4], out isLarge)) + { + shell.WriteError(Loc.GetString("shell-invalid-bool")); + return; + } + var mailPrototype = isLarge ? _blankLargeMailPrototype : _blankMailPrototype; + + + var mailSystem = _entitySystemManager.GetEntitySystem(); + var containerSystem = _entitySystemManager.GetEntitySystem(); + + if (!_entityManager.TryGetComponent(recipientUid, out MailReceiverComponent? mailReceiver)) + { + shell.WriteLine(Loc.GetString("command-mailto-no-mailreceiver", ("requiredComponent", nameof(MailReceiverComponent)))); + return; + } + + if (!_prototypeManager.HasIndex(mailPrototype)) + { + shell.WriteLine(Loc.GetString("command-mailto-no-blankmail", ("blankMail", mailPrototype))); + return; + } + + if (!containerSystem.TryGetContainer(containerUid, _container, out var targetContainer)) + { + shell.WriteLine(Loc.GetString("command-mailto-invalid-container", ("requiredContainer", _container))); + return; + } + + if (!mailSystem.TryGetMailRecipientForReceiver(mailReceiver, out MailRecipient? recipient)) + { + shell.WriteLine(Loc.GetString("command-mailto-unable-to-receive")); + return; + } + + if (!mailSystem.TryGetMailTeleporterForReceiver(mailReceiver, out MailTeleporterComponent? teleporterComponent)) + { + shell.WriteLine(Loc.GetString("command-mailto-no-teleporter-found")); + return; + } + + var mailUid = _entityManager.SpawnEntity(mailPrototype, _entityManager.GetComponent(containerUid).Coordinates); + var mailContents = containerSystem.EnsureContainer(mailUid, _mailContainer); + + if (!_entityManager.TryGetComponent(mailUid, out MailComponent? mailComponent)) + { + shell.WriteLine(Loc.GetString("command-mailto-bogus-mail", ("blankMail", mailPrototype), ("requiredMailComponent", nameof(MailComponent)))); + return; + } + + foreach (var entity in targetContainer.ContainedEntities.ToArray()) + containerSystem.Insert(entity, mailContents); + + mailComponent.IsFragile = isFragile; + mailComponent.IsPriority = isPriority; + mailComponent.IsLarge = isLarge; + + mailSystem.SetupMail(mailUid, teleporterComponent, recipient.Value); + + var teleporterQueue = containerSystem.EnsureContainer(teleporterComponent.Owner, "queued"); + containerSystem.Insert(mailUid, teleporterQueue); + shell.WriteLine(Loc.GetString("command-mailto-success", ("timeToTeleport", teleporterComponent.TeleportInterval.TotalSeconds - teleporterComponent.Accumulator))); + } +} + +[AdminCommand(AdminFlags.Fun)] +public sealed class MailNowCommand : IConsoleCommand +{ + public string Command => "mailnow"; + public string Description => Loc.GetString("command-mailnow"); + public string Help => Loc.GetString("command-mailnow-help", ("command", Command)); + + [Dependency] private readonly IEntityManager _entityManager = default!; + [Dependency] private readonly IEntitySystemManager _entitySystemManager = default!; + + public async void Execute(IConsoleShell shell, string argStr, string[] args) + { + var entitySystem = _entitySystemManager.GetEntitySystem(); + + foreach (var mailTeleporter in _entityManager.EntityQuery()) + { + mailTeleporter.Accumulator += (float) mailTeleporter.TeleportInterval.TotalSeconds - mailTeleporter.Accumulator; + } + + shell.WriteLine(Loc.GetString("command-mailnow-success")); + } +} diff --git a/Content.Server/Mail/MailConstants.cs b/Content.Server/Mail/MailConstants.cs new file mode 100644 index 0000000000..38d37a1326 --- /dev/null +++ b/Content.Server/Mail/MailConstants.cs @@ -0,0 +1,37 @@ +namespace Content.Server.Mail; + +/// +/// A set of localized strings related to mail entities +/// +public struct MailEntityStrings +{ + public string NameAddressed; + public string DescClose; + public string DescFar; +} + +/// +/// Constants related to mail. +/// +public static class MailConstants +{ + /// + /// Locale strings related to small parcels. + /// + public static readonly MailEntityStrings Mail = new() + { + NameAddressed = "mail-item-name-addressed", + DescClose = "mail-desc-close", + DescFar = "mail-desc-far" + }; + + /// + /// Locale strings related to large packages. + /// + public static readonly MailEntityStrings MailLarge = new() + { + NameAddressed = "mail-large-item-name-addressed", + DescClose = "mail-large-desc-close", + DescFar = "mail-large-desc-far" + }; +} diff --git a/Content.Server/Mail/Systems/DelayedItemSystem.cs b/Content.Server/Mail/Systems/DelayedItemSystem.cs new file mode 100644 index 0000000000..59aaa3aff6 --- /dev/null +++ b/Content.Server/Mail/Systems/DelayedItemSystem.cs @@ -0,0 +1,43 @@ +using Content.Shared.Damage; +using Content.Shared.Hands; +using Robust.Shared.Containers; + +namespace Content.Server.Mail.Systems; + +/// +/// A placeholder for another entity, spawned when taken out of a container, with the placeholder deleted shortly after. +/// Useful for storing instant effect entities, e.g. smoke, in the mail. +/// +public sealed class DelayedItemSystem : EntitySystem +{ + public override void Initialize() + { + base.Initialize(); + + SubscribeLocalEvent(OnDropAttempt); + SubscribeLocalEvent(OnHandEquipped); + SubscribeLocalEvent(OnDamageChanged); + SubscribeLocalEvent(OnRemovedFromContainer); + } + + private void OnRemovedFromContainer(EntityUid uid, Components.DelayedItemComponent component, ContainerModifiedMessage args) + { + Spawn(component.Item, Transform(uid).Coordinates); + } + + private void OnHandEquipped(EntityUid uid, Components.DelayedItemComponent component, EquippedHandEvent args) + { + EntityManager.DeleteEntity(uid); + } + + private void OnDropAttempt(EntityUid uid, Components.DelayedItemComponent component, DropAttemptEvent args) + { + EntityManager.DeleteEntity(uid); + } + + private void OnDamageChanged(EntityUid uid, Components.DelayedItemComponent component, DamageChangedEvent args) + { + Spawn(component.Item, Transform(uid).Coordinates); + EntityManager.DeleteEntity(uid); + } +} diff --git a/Content.Server/Mail/Systems/MailSystem.cs b/Content.Server/Mail/Systems/MailSystem.cs new file mode 100644 index 0000000000..e80febd230 --- /dev/null +++ b/Content.Server/Mail/Systems/MailSystem.cs @@ -0,0 +1,756 @@ +using System.Diagnostics.CodeAnalysis; +using System.Linq; +using System.Threading; +using Content.Server.Access.Systems; +using Content.Server.Cargo.Components; +using Content.Server.Cargo.Systems; +using Content.Server.Chat.Systems; +using Content.Server.Chemistry.Containers.EntitySystems; +using Content.Server.Damage.Components; +using Content.Server.Destructible; +using Content.Server.Destructible.Thresholds; +using Content.Server.Destructible.Thresholds.Behaviors; +using Content.Server.Destructible.Thresholds.Triggers; +using Content.Server.Item; +using Content.Server.Mail.Components; +using Content.Server.Mind; +using Content.Server.Popups; +using Content.Server.Power.Components; +using Content.Server.Spawners.EntitySystems; +using Content.Server.Station.Systems; +using Content.Shared.Access; +using Content.Shared.Access.Components; +using Content.Shared.Access.Systems; +using Content.Shared.Chat; +using Content.Shared.Damage; +using Content.Shared.Destructible; +using Content.Shared.Emag.Components; +using Content.Shared.Emag.Systems; +using Content.Shared.Examine; +using Content.Shared.Fluids.Components; +using Content.Shared.Hands.EntitySystems; +using Content.Shared.Interaction; +using Content.Shared.Interaction.Events; +using Content.Shared.Mail; +using Content.Shared.Maps; +using Content.Shared.Nutrition.Components; +using Content.Shared.Nutrition.EntitySystems; +using Content.Shared.PDA; +using Content.Shared.Roles; +using Content.Shared.Storage; +using Content.Shared.Tag; +using Robust.Shared.Audio; +using Robust.Shared.Audio.Systems; +using Robust.Shared.Containers; +using Robust.Shared.Prototypes; +using Robust.Shared.Random; +using Timer = Robust.Shared.Timing.Timer; + +namespace Content.Server.Mail.Systems; + +public sealed class MailSystem : EntitySystem +{ + [Dependency] private readonly PopupSystem _popupSystem = default!; + [Dependency] private readonly AccessReaderSystem _accessSystem = default!; + [Dependency] private readonly SharedHandsSystem _handsSystem = default!; + [Dependency] private readonly IdCardSystem _idCardSystem = default!; + [Dependency] private readonly IRobustRandom _random = default!; + [Dependency] private readonly TagSystem _tagSystem = default!; + [Dependency] private readonly CargoSystem _cargoSystem = default!; + [Dependency] private readonly StationSystem _stationSystem = default!; + [Dependency] private readonly ChatSystem _chatSystem = default!; + [Dependency] private readonly OpenableSystem _openable = default!; + [Dependency] private readonly IPrototypeManager _prototypeManager = default!; + [Dependency] private readonly SharedContainerSystem _containerSystem = default!; + [Dependency] private readonly SolutionContainerSystem _solutionContainerSystem = default!; + [Dependency] private readonly SharedAppearanceSystem _appearanceSystem = default!; + [Dependency] private readonly SharedAudioSystem _audioSystem = default!; + [Dependency] private readonly DamageableSystem _damageableSystem = default!; + [Dependency] private readonly MindSystem _mindSystem = default!; + [Dependency] private readonly MetaDataSystem _metaDataSystem = default!; + + // DeltaV - system that keeps track of mail and cargo stats + [Dependency] private readonly LogisticStatsSystem _logisticsStatsSystem = default!; + + private ISawmill _sawmill = default!; + + public override void Initialize() + { + base.Initialize(); + + _sawmill = Logger.GetSawmill("mail"); + + SubscribeLocalEvent(OnSpawnPlayer, after: new[] { typeof(SpawnPointSystem) }); + + SubscribeLocalEvent(OnRemove); + SubscribeLocalEvent(OnUseInHand); + SubscribeLocalEvent(OnAfterInteractUsing); + SubscribeLocalEvent(OnExamined); + SubscribeLocalEvent(OnDestruction); + SubscribeLocalEvent(OnDamage); + SubscribeLocalEvent(OnBreak); + SubscribeLocalEvent(OnMailEmagged); + } + + public override void Update(float frameTime) + { + base.Update(frameTime); + foreach (var mailTeleporter in EntityQuery()) + { + if (TryComp(mailTeleporter.Owner, out var power) && !power.Powered) + continue; + + mailTeleporter.Accumulator += frameTime; + if (mailTeleporter.Accumulator < mailTeleporter.TeleportInterval.TotalSeconds) + continue; + + mailTeleporter.Accumulator -= (float) mailTeleporter.TeleportInterval.TotalSeconds; + + SpawnMail(mailTeleporter.Owner, mailTeleporter); + } + } + + /// + /// Dynamically add the MailReceiver component to appropriate entities. + /// + private void OnSpawnPlayer(PlayerSpawningEvent args) + { + if (args.SpawnResult == null + || args.Job == null + || args.Station is not {} station + || !HasComp(station)) + return; + + AddComp(args.SpawnResult.Value); + } + + private void OnRemove(EntityUid uid, MailComponent component, ComponentRemove args) + { + // Make sure the priority timer doesn't run. + if (component.PriorityCancelToken != null) + component.PriorityCancelToken.Cancel(); + } + + /// + /// Try to open the mail. + /// + private void OnUseInHand(EntityUid uid, MailComponent component, UseInHandEvent args) + { + if (!component.IsEnabled) + return; + if (component.IsLocked) + { + _popupSystem.PopupEntity(Loc.GetString("mail-locked"), uid, args.User); + return; + } + OpenMail(uid, component, args.User); + } + + /// + /// Handle logic similar between a normal mail unlock and an emag + /// frying out the lock. + /// + private void UnlockMail(EntityUid uid, MailComponent component) + { + component.IsLocked = false; + UpdateAntiTamperVisuals(uid, false); + + if (component.IsPriority) + { + // This is a successful delivery. Keep the failure timer from triggering. + if (component.PriorityCancelToken != null) + component.PriorityCancelToken.Cancel(); + + // The priority tape is visually considered to be a part of the + // anti-tamper lock, so remove that too. + _appearanceSystem.SetData(uid, MailVisuals.IsPriority, false); + + // The examination code depends on this being false to not show + // the priority tape description anymore. + component.IsPriority = false; + } + } + + /// + /// Check the ID against the mail's lock + /// + private void OnAfterInteractUsing(EntityUid uid, MailComponent component, AfterInteractUsingEvent args) + { + if (!args.CanReach || !component.IsLocked || !TryComp(uid, out var access)) + return; + + IdCardComponent? idCard = null; // We need an ID card. + if (HasComp(args.Used)) // Can we find it in a PDA if the user is using that? + { + _idCardSystem.TryGetIdCard(args.Used, out var pdaID); + idCard = pdaID; + } + + if (HasComp(args.Used)) // Or are they using an id card directly? + idCard = Comp(args.Used); + + if (idCard == null) // Return if we still haven't found an id card. + return; + + if (!HasComp(uid)) + { + if (idCard.FullName != component.Recipient || idCard.JobTitle != component.RecipientJob) + { + _popupSystem.PopupEntity(Loc.GetString("mail-recipient-mismatch"), uid, args.User); + return; + } + + if (!_accessSystem.IsAllowed(uid, args.User)) + { + _popupSystem.PopupEntity(Loc.GetString("mail-invalid-access"), uid, args.User); + return; + } + } + + ExecuteForEachLogisticsStats(uid, (station, logisticStats) => + { + _logisticsStatsSystem.AddOpenedMailEarnings(station, + logisticStats, + component.IsProfitable ? component.Bounty : 0); + }); + UnlockMail(uid, component); + + if (!component.IsProfitable) + { + _popupSystem.PopupEntity(Loc.GetString("mail-unlocked"), uid, args.User); + return; + } + + _popupSystem.PopupEntity(Loc.GetString("mail-unlocked-reward", ("bounty", component.Bounty)), uid, args.User); + + component.IsProfitable = false; + + var query = EntityQueryEnumerator(); + while (query.MoveNext(out var station, out var account)) + { + if (_stationSystem.GetOwningStation(uid) != station) + continue; + + _cargoSystem.UpdateBankAccount(station, account, component.Bounty); + } + } + + private void OnExamined(EntityUid uid, MailComponent component, ExaminedEvent args) + { + MailEntityStrings mailEntityStrings = component.IsLarge ? MailConstants.MailLarge : MailConstants.Mail; //Frontier: mail types stored per type (large mail) + if (!args.IsInDetailsRange) + { + args.PushMarkup(Loc.GetString(mailEntityStrings.DescFar)); // Frontier: mail constants struct + return; + } + + args.PushMarkup(Loc.GetString(mailEntityStrings.DescClose, ("name", component.Recipient), ("job", component.RecipientJob))); // Frontier: mail constants struct + + if (component.IsFragile) + args.PushMarkup(Loc.GetString("mail-desc-fragile")); + + if (component.IsPriority) + { + if (component.IsProfitable) + args.PushMarkup(Loc.GetString("mail-desc-priority")); + else + args.PushMarkup(Loc.GetString("mail-desc-priority-inactive")); + } + } + + /// + /// Penalize a station for a failed delivery. + /// + /// + /// This will mark a parcel as no longer being profitable, which will + /// prevent multiple failures on different conditions for the same + /// delivery.

+ /// + /// The standard penalization is breaking the anti-tamper lock, + /// but this allows a delivery to fail for other reasons too + /// while having a generic function to handle different messages. + ///
+ public void PenalizeStationFailedDelivery(EntityUid uid, MailComponent component, string localizationString) + { + if (!component.IsProfitable) + return; + + _chatSystem.TrySendInGameICMessage(uid, Loc.GetString(localizationString, ("credits", component.Penalty)), InGameICChatType.Speak, false); + _audioSystem.PlayPvs(component.PenaltySound, uid); + + component.IsProfitable = false; + + if (component.IsPriority) + _appearanceSystem.SetData(uid, MailVisuals.IsPriorityInactive, true); + + var query = EntityQueryEnumerator(); + while (query.MoveNext(out var station, out var account)) + { + if (_stationSystem.GetOwningStation(uid) != station) + continue; + + _cargoSystem.UpdateBankAccount(station, account, component.Penalty); + return; + } + } + + private void OnDestruction(EntityUid uid, MailComponent component, DestructionEventArgs args) + { + if (component.IsLocked) + { + // DeltaV - Tampered mail recorded to logistic stats + ExecuteForEachLogisticsStats(uid, (station, logisticStats) => + { + _logisticsStatsSystem.AddTamperedMailLosses(station, + logisticStats, + component.IsProfitable ? component.Penalty : 0); + }); + + PenalizeStationFailedDelivery(uid, component, "mail-penalty-lock"); + } + + if (component.IsEnabled) + OpenMail(uid, component); + + UpdateAntiTamperVisuals(uid, false); + } + + private void OnDamage(EntityUid uid, MailComponent component, DamageChangedEvent args) + { + if (args.DamageDelta == null || !_containerSystem.TryGetContainer(uid, "contents", out var contents)) + return; + + // Transfer damage to the contents. + // This should be a general-purpose feature for all containers in the future. + foreach (var entity in contents.ContainedEntities.ToArray()) + _damageableSystem.TryChangeDamage(entity, args.DamageDelta); + } + + private void OnBreak(EntityUid uid, MailComponent component, BreakageEventArgs args) + { + _appearanceSystem.SetData(uid, MailVisuals.IsBroken, true); + + if (component.IsFragile) + { + // DeltaV - Broken mail recorded to logistic stats + ExecuteForEachLogisticsStats(uid, (station, logisticStats) => + { + _logisticsStatsSystem.AddDamagedMailLosses(station, + logisticStats, + component.IsProfitable ? component.Penalty : 0); + }); + + PenalizeStationFailedDelivery(uid, component, "mail-penalty-fragile"); + } + } + + private void OnMailEmagged(EntityUid uid, MailComponent component, ref GotEmaggedEvent args) + { + if (!component.IsLocked) + return; + + UnlockMail(uid, component); + + _popupSystem.PopupEntity(Loc.GetString("mail-unlocked-by-emag"), uid, args.UserUid); + + _audioSystem.PlayPvs(component.EmagSound, uid, AudioParams.Default.WithVolume(4)); + component.IsProfitable = false; + args.Handled = true; + } + + /// + /// Returns true if the given entity is considered fragile for delivery. + /// + public bool IsEntityFragile(EntityUid uid, int fragileDamageThreshold) + { + // It takes damage on falling. + if (HasComp(uid)) + return true; + + // It can be spilled easily and has something to spill. + if (HasComp(uid) + && TryComp(uid, out var openable) + && !_openable.IsClosed(uid, null, openable) + && _solutionContainerSystem.PercentFull(uid) > 0) + return true; + + // It might be made of non-reinforced glass. + if (TryComp(uid, out DamageableComponent? damageableComponent) + && damageableComponent.DamageModifierSetId == "Glass") + return true; + + if (!TryComp(uid, out DestructibleComponent? destructibleComp)) + return false; + + // Fallback: It breaks or is destroyed in less than a damage + // threshold dictated by the teleporter. + foreach (var threshold in destructibleComp.Thresholds) + { + if (threshold.Trigger is not DamageTrigger trigger || trigger.Damage >= fragileDamageThreshold) + continue; + + foreach (var behavior in threshold.Behaviors) + { + if (behavior is not DoActsBehavior doActs) + continue; + + if (doActs.Acts.HasFlag(ThresholdActs.Breakage) || doActs.Acts.HasFlag(ThresholdActs.Destruction)) + return true; + } + } + + return false; + } + + public bool TryMatchJobTitleToDepartment(string jobTitle, [NotNullWhen(true)] out string? jobDepartment) + { + foreach (var department in _prototypeManager.EnumeratePrototypes()) + { + foreach (var role in department.Roles) + { + if (!_prototypeManager.TryIndex(role, out JobPrototype? jobPrototype) || jobPrototype.LocalizedName != jobTitle) + continue; + + jobDepartment = department.ID; + return true; + } + } + + jobDepartment = null; + return false; + } + + public bool TryMatchJobTitleToPrototype(string jobTitle, [NotNullWhen(true)] out JobPrototype? jobPrototype) + { + foreach (var job in _prototypeManager.EnumeratePrototypes()) + { + if (job.LocalizedName == jobTitle) + { + jobPrototype = job; + return true; + } + } + + jobPrototype = null; + return false; + } + + /// + /// Handle all the gritty details particular to a new mail entity. + /// + /// + /// This is separate mostly so the unit tests can get to it. + /// + public void SetupMail(EntityUid uid, MailTeleporterComponent component, MailRecipient recipient) + { + var mailComp = EnsureComp(uid); + + var container = _containerSystem.EnsureContainer(uid, "contents"); + foreach (var item in EntitySpawnCollection.GetSpawns(mailComp.Contents, _random)) + { + var entity = EntityManager.SpawnEntity(item, Transform(uid).Coordinates); + if (!_containerSystem.Insert(entity, container)) + { + _sawmill.Error($"Can't insert {ToPrettyString(entity)} into new mail delivery {ToPrettyString(uid)}! Deleting it."); + QueueDel(entity); + } + else if (!mailComp.IsFragile && IsEntityFragile(entity, component.FragileDamageThreshold)) + { + mailComp.IsFragile = true; + } + } + + mailComp.IsPriority = recipient.MayReceivePriorityMail && _random.Prob(component.PriorityChance); + mailComp.RecipientJob = recipient.Job; + mailComp.Recipient = recipient.Name; + + var mailEntityStrings = mailComp.IsLarge ? MailConstants.MailLarge : MailConstants.Mail; + if (mailComp.IsLarge) + { + mailComp.Bounty += component.LargeBonus; + mailComp.Penalty += component.LargeMalus; + } + + if (mailComp.IsFragile) + { + mailComp.Bounty += component.FragileBonus; + mailComp.Penalty += component.FragileMalus; + _appearanceSystem.SetData(uid, MailVisuals.IsFragile, true); + } + + if (mailComp.IsPriority) + { + mailComp.Bounty += component.PriorityBonus; + mailComp.Penalty += component.PriorityMalus; + _appearanceSystem.SetData(uid, MailVisuals.IsPriority, true); + mailComp.PriorityCancelToken = new CancellationTokenSource(); + + Timer.Spawn((int) component.PriorityDuration.TotalMilliseconds, () => + { + // DeltaV - Expired mail recorded to logistic stats + ExecuteForEachLogisticsStats(uid, (station, logisticStats) => + { + _logisticsStatsSystem.AddExpiredMailLosses(station, + logisticStats, + mailComp.IsProfitable ? mailComp.Penalty : 0); + }); + + PenalizeStationFailedDelivery(uid, mailComp, "mail-penalty-expired"); + }, mailComp.PriorityCancelToken.Token); + } + + _appearanceSystem.SetData(uid, MailVisuals.JobIcon, recipient.JobIcon); + + _metaDataSystem.SetEntityName(uid, Loc.GetString(mailEntityStrings.NameAddressed, // Frontier: move constant to MailEntityString + ("recipient", recipient.Name))); + + var accessReader = EnsureComp(uid); + accessReader.AccessLists.Add(recipient.AccessTags); + } + + /// + /// Return the parcels waiting for delivery. + /// + /// The mail teleporter to check. + public List GetUndeliveredParcels(EntityUid uid) + { + // An alternative solution would be to keep a list of the unopened + // parcels spawned by the teleporter and see if they're not carried + // by someone, but this is simple, and simple is good. + List undeliveredParcels = new(); + foreach (var entityInTile in TurfHelpers.GetEntitiesInTile(Transform(uid).Coordinates, LookupFlags.Dynamic | LookupFlags.Sundries)) + { + if (HasComp(entityInTile)) + undeliveredParcels.Add(entityInTile); + } + return undeliveredParcels; + } + + /// + /// Return how many parcels are waiting for delivery. + /// + /// The mail teleporter to check. + public uint GetUndeliveredParcelCount(EntityUid uid) + { + return (uint) GetUndeliveredParcels(uid).Count(); + } + + /// + /// Try to match a mail receiver to a mail teleporter. + /// + public bool TryGetMailTeleporterForReceiver(MailReceiverComponent receiver, [NotNullWhen(true)] out MailTeleporterComponent? teleporterComponent) + { + foreach (var mailTeleporter in EntityQuery()) + { + if (_stationSystem.GetOwningStation(receiver.Owner) != _stationSystem.GetOwningStation(mailTeleporter.Owner)) + continue; + + teleporterComponent = mailTeleporter; + return true; + } + + teleporterComponent = null; + return false; + } + + /// + /// Try to construct a recipient struct for a mail parcel based on a receiver. + /// + public bool TryGetMailRecipientForReceiver(MailReceiverComponent receiver, [NotNullWhen(true)] out MailRecipient? recipient) + { + // Because of the way this works, people are not considered + // candidates for mail if there is no valid PDA or ID in their slot + // or active hand. A better future solution might be checking the + // station records, possibly cross-referenced with the medical crew + // scanner to look for living recipients. TODO + + if (_idCardSystem.TryFindIdCard(receiver.Owner, out var idCard) + && TryComp(idCard.Owner, out var access) + && idCard.Comp.FullName != null + && idCard.Comp.JobTitle != null) + { + var accessTags = access.Tags; + + var mayReceivePriorityMail = !(_mindSystem.GetMind(receiver.Owner) == null); + + recipient = new MailRecipient(idCard.Comp.FullName, + idCard.Comp.JobTitle, + idCard.Comp.JobIcon, + accessTags, + mayReceivePriorityMail); + + return true; + } + + recipient = null; + return false; + } + + /// + /// Get the list of valid mail recipients for a mail teleporter. + /// + public List GetMailRecipientCandidates(EntityUid uid) + { + List candidateList = new(); + + foreach (var receiver in EntityQuery()) + { + if (_stationSystem.GetOwningStation(receiver.Owner) != _stationSystem.GetOwningStation(uid)) + continue; + + if (TryGetMailRecipientForReceiver(receiver, out MailRecipient? recipient)) + candidateList.Add(recipient.Value); + } + + return candidateList; + } + + /// + /// Handle the spawning of all the mail for a mail teleporter. + /// + public void SpawnMail(EntityUid uid, MailTeleporterComponent? component = null) + { + if (!Resolve(uid, ref component)) + { + _sawmill.Error($"Tried to SpawnMail on {ToPrettyString(uid)} without a valid MailTeleporterComponent!"); + return; + } + + if (GetUndeliveredParcelCount(uid) >= component.MaximumUndeliveredParcels) + return; + + var candidateList = GetMailRecipientCandidates(uid); + + if (candidateList.Count <= 0) + { + _sawmill.Error("List of mail candidates was empty!"); + return; + } + + if (!_prototypeManager.TryIndex(component.MailPool, out var pool)) + { + _sawmill.Error($"Can't index {ToPrettyString(uid)}'s MailPool {component.MailPool}!"); + return; + } + + for (int i = 0; + i < component.MinimumDeliveriesPerTeleport + candidateList.Count / component.CandidatesPerDelivery; + i++) + { + var candidate = _random.Pick(candidateList); + var possibleParcels = new Dictionary(pool.Everyone); + + if (TryMatchJobTitleToPrototype(candidate.Job, out JobPrototype? jobPrototype) + && pool.Jobs.TryGetValue(jobPrototype.ID, out Dictionary? jobParcels)) + { + possibleParcels = possibleParcels.Union(jobParcels) + .GroupBy(g => g.Key) + .ToDictionary(pair => pair.Key, pair => pair.First().Value); + } + + if (TryMatchJobTitleToDepartment(candidate.Job, out string? department) + && pool.Departments.TryGetValue(department, out Dictionary? departmentParcels)) + { + possibleParcels = possibleParcels.Union(departmentParcels) + .GroupBy(g => g.Key) + .ToDictionary(pair => pair.Key, pair => pair.First().Value); + } + + var accumulated = 0f; + var randomPoint = _random.NextFloat(possibleParcels.Values.Sum()); + string? chosenParcel = null; + foreach (var (key, weight) in possibleParcels) + { + accumulated += weight; + if (accumulated >= randomPoint) + { + chosenParcel = key; + break; + } + } + + if (chosenParcel == null) + { + _sawmill.Error($"MailSystem wasn't able to find a deliverable parcel for {candidate.Name}, {candidate.Job}!"); + return; + } + + var mail = EntityManager.SpawnEntity(chosenParcel, Transform(uid).Coordinates); + SetupMail(mail, component, candidate); + + _tagSystem.AddTag(mail, "Mail"); // Frontier + } + + if (_containerSystem.TryGetContainer(uid, "queued", out var queued)) + _containerSystem.EmptyContainer(queued); + + _audioSystem.PlayPvs(component.TeleportSound, uid); + } + + public void OpenMail(EntityUid uid, MailComponent? component = null, EntityUid? user = null) + { + if (!Resolve(uid, ref component)) + return; + + _audioSystem.PlayPvs(component.OpenSound, uid); + + if (user != null) + _handsSystem.TryDrop((EntityUid) user); + + if (!_containerSystem.TryGetContainer(uid, "contents", out var contents)) + { + // I silenced this error because it fails non deterministically in tests and doesn't seem to effect anything else. + // _sawmill.Error($"Mail {ToPrettyString(uid)} was missing contents container!"); + return; + } + + foreach (var entity in contents.ContainedEntities.ToArray()) + { + _handsSystem.PickupOrDrop(user, entity); + } + + _tagSystem.AddTag(uid, "Trash"); + _tagSystem.AddTag(uid, "Recyclable"); + component.IsEnabled = false; + UpdateMailTrashState(uid, true); + } + + private void UpdateAntiTamperVisuals(EntityUid uid, bool isLocked) + { + _appearanceSystem.SetData(uid, MailVisuals.IsLocked, isLocked); + } + + private void UpdateMailTrashState(EntityUid uid, bool isTrash) + { + _appearanceSystem.SetData(uid, MailVisuals.IsTrash, isTrash); + } + + // DeltaV - Helper function that executes for each StationLogisticsStatsComponent + // For updating MailMetrics stats + private void ExecuteForEachLogisticsStats(EntityUid uid, + Action action) + { + + var query = EntityQueryEnumerator(); + while (query.MoveNext(out var station, out var logisticStats)) + { + if (_stationSystem.GetOwningStation(uid) != station) + continue; + action(station, logisticStats); + } + } +} + +public struct MailRecipient( + string name, + string job, + string jobIcon, + HashSet> accessTags, + bool mayReceivePriorityMail) +{ + public string Name = name; + public string Job = job; + public string JobIcon = jobIcon; + public HashSet> AccessTags = accessTags; + public bool MayReceivePriorityMail = mayReceivePriorityMail; +} diff --git a/Content.Server/Mapping/MappingCommand.cs b/Content.Server/Mapping/MappingCommand.cs index 08f3dcccf9..46534f7059 100644 --- a/Content.Server/Mapping/MappingCommand.cs +++ b/Content.Server/Mapping/MappingCommand.cs @@ -53,7 +53,7 @@ public void Execute(IConsoleShell shell, string argStr, string[] args) } #if DEBUG - shell.WriteError(Loc.GetString("cmd-mapping-warning")); + shell.WriteLine(Loc.GetString("cmd-mapping-warning")); #endif MapId mapId; diff --git a/Content.Server/MassMedia/Systems/NewsSystem.cs b/Content.Server/MassMedia/Systems/NewsSystem.cs index c313b0d4cc..3246de5316 100644 --- a/Content.Server/MassMedia/Systems/NewsSystem.cs +++ b/Content.Server/MassMedia/Systems/NewsSystem.cs @@ -92,15 +92,12 @@ private void OnWriteUiDeleteMessage(Entity ent, ref NewsWri if (msg.ArticleNum >= articles.Count) return; - if (msg.Session.AttachedEntity is not { } actor) - return; - var article = articles[msg.ArticleNum]; - if (CheckDeleteAccess(article, ent, actor)) + if (CheckDeleteAccess(article, ent, msg.Actor)) { _adminLogger.Add( LogType.Chat, LogImpact.Medium, - $"{ToPrettyString(actor):actor} deleted news article {article.Title} by {article.Author}: {article.Content}" + $"{ToPrettyString(msg.Actor):actor} deleted news article {article.Title} by {article.Author}: {article.Content}" ); articles.RemoveAt(msg.ArticleNum); @@ -138,11 +135,8 @@ private void OnWriteUiPublishMessage(Entity ent, ref NewsWr if (!TryGetArticles(ent, out var articles)) return; - if (msg.Session.AttachedEntity is not { } author) - return; - string? authorName = null; - if (_idCardSystem.TryFindIdCard(author, out var idCard)) + if (_idCardSystem.TryFindIdCard(msg.Actor, out var idCard)) authorName = idCard.Comp.FullName; var title = msg.Title.Trim(); @@ -161,7 +155,7 @@ private void OnWriteUiPublishMessage(Entity ent, ref NewsWr _adminLogger.Add( LogType.Chat, LogImpact.Medium, - $"{ToPrettyString(author):actor} created news article {article.Title} by {article.Author}: {article.Content}" + $"{ToPrettyString(msg.Actor):actor} created news article {article.Title} by {article.Author}: {article.Content}" ); articles.Add(article); @@ -245,14 +239,14 @@ private bool TryGetArticles(EntityUid uid, [NotNullWhen(true)] out List ent) { - if (!_ui.TryGetUi(ent, NewsWriterUiKey.Key, out var ui)) + if (!_ui.HasUi(ent, NewsWriterUiKey.Key)) return; if (!TryGetArticles(ent, out var articles)) return; var state = new NewsWriterBoundUserInterfaceState(articles.ToArray(), ent.Comp.PublishEnabled, ent.Comp.NextPublish); - _ui.SetUiState(ui, state); + _ui.SetUiState(ent.Owner, NewsWriterUiKey.Key, state); } private void UpdateReaderUi(Entity ent, EntityUid loaderUid) diff --git a/Content.Server/Materials/MaterialReclaimerSystem.cs b/Content.Server/Materials/MaterialReclaimerSystem.cs index aa24fde44b..de82f12598 100644 --- a/Content.Server/Materials/MaterialReclaimerSystem.cs +++ b/Content.Server/Materials/MaterialReclaimerSystem.cs @@ -1,4 +1,6 @@ using Content.Server.Chemistry.Containers.EntitySystems; +using Content.Server.Chemistry.EntitySystems; +using Content.Server.Construction; using Content.Server.Fluids.EntitySystems; using Content.Server.GameTicking; using Content.Server.Popups; @@ -45,6 +47,8 @@ public override void Initialize() base.Initialize(); SubscribeLocalEvent(OnStartup); + SubscribeLocalEvent(OnRefreshParts); + SubscribeLocalEvent(OnUpgradeExamine); SubscribeLocalEvent(OnPowerChanged); SubscribeLocalEvent(OnInteractUsing, before: new []{typeof(WiresSystem), typeof(SolutionTransferSystem)}); @@ -56,6 +60,18 @@ private void OnStartup(Entity entity, ref ComponentS _solutionContainer.EnsureSolution(entity.Owner, entity.Comp.SolutionContainerId); } + private void OnUpgradeExamine(Entity entity, ref UpgradeExamineEvent args) + { + args.AddPercentageUpgrade(Loc.GetString("material-reclaimer-upgrade-process-rate"), entity.Comp.MaterialProcessRate / entity.Comp.BaseMaterialProcessRate); + } + + private void OnRefreshParts(Entity entity, ref RefreshPartsEvent args) + { + var rating = args.PartRatings[entity.Comp.MachinePartProcessRate] - 1; + entity.Comp.MaterialProcessRate = entity.Comp.BaseMaterialProcessRate * MathF.Pow(entity.Comp.PartRatingProcessRateMultiplier, rating); + Dirty(entity); + } + private void OnPowerChanged(Entity entity, ref PowerChangedEvent args) { AmbientSound.SetAmbience(entity.Owner, entity.Comp.Enabled && args.Powered); diff --git a/Content.Server/Mech/Components/MechAirComponent.cs b/Content.Server/Mech/Components/MechAirComponent.cs index c533b3d834..d312e1b739 100644 --- a/Content.Server/Mech/Components/MechAirComponent.cs +++ b/Content.Server/Mech/Components/MechAirComponent.cs @@ -1,4 +1,5 @@ using Content.Server.Atmos; +using Content.Shared.Atmos; namespace Content.Server.Mech.Components; diff --git a/Content.Server/Mech/Systems/MechSystem.cs b/Content.Server/Mech/Systems/MechSystem.cs index 976c3867a9..36dce2c9bc 100644 --- a/Content.Server/Mech/Systems/MechSystem.cs +++ b/Content.Server/Mech/Systems/MechSystem.cs @@ -306,15 +306,14 @@ public override void UpdateUserInterface(EntityUid uid, MechComponent? component { EquipmentStates = ev.States }; - var ui = _ui.GetUi(uid, MechUiKey.Key); - _ui.SetUiState(ui, state); + _ui.SetUiState(uid, MechUiKey.Key, state); } public override void BreakMech(EntityUid uid, MechComponent? component = null) { base.BreakMech(uid, component); - _ui.TryCloseAll(uid, MechUiKey.Key); + _ui.CloseUi(uid, MechUiKey.Key); _actionBlocker.UpdateCanMove(uid); } diff --git a/Content.Server/Medical/BiomassReclaimer/BiomassReclaimerComponent.cs b/Content.Server/Medical/BiomassReclaimer/BiomassReclaimerComponent.cs index 61d36f98b9..1358bfbcbb 100644 --- a/Content.Server/Medical/BiomassReclaimer/BiomassReclaimerComponent.cs +++ b/Content.Server/Medical/BiomassReclaimer/BiomassReclaimerComponent.cs @@ -1,4 +1,8 @@ +using System.Threading; +using Content.Shared.Construction.Prototypes; using Content.Shared.Storage; +using Robust.Shared.Prototypes; +using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype; namespace Content.Server.Medical.BiomassReclaimer { @@ -6,72 +10,111 @@ namespace Content.Server.Medical.BiomassReclaimer public sealed partial class BiomassReclaimerComponent : Component { /// - /// This gets set for each mob it processes. - /// When it hits 0, there is a chance for the reclaimer to either spill blood or throw an item. + /// This gets set for each mob it processes. + /// When it hits 0, there is a chance for the reclaimer to either spill blood or throw an item. /// [ViewVariables] public float RandomMessTimer = 0f; /// - /// The interval for . + /// The interval for . /// - [ViewVariables(VVAccess.ReadWrite), DataField] + [DataField] public TimeSpan RandomMessInterval = TimeSpan.FromSeconds(5); /// - /// This gets set for each mob it processes. - /// When it hits 0, spit out biomass. + /// This gets set for each mob it processes. + /// When it hits 0, spit out biomass. /// [ViewVariables] - public float ProcessingTimer = default; + public float ProcessingTimer; /// - /// Amount of biomass that the mob being processed will yield. - /// This is calculated from the YieldPerUnitMass. - /// Also stores non-integer leftovers. + /// Amount of biomass that the mob being processed will yield. + /// This is calculated from the YieldPerUnitMass. + /// Also stores non-integer leftovers. /// [ViewVariables] - public float CurrentExpectedYield = 0f; + public float CurrentExpectedYield; /// - /// The reagent that will be spilled while processing a mob. + /// The reagent that will be spilled while processing a mob. /// [ViewVariables] public string? BloodReagent; /// - /// Entities that can be randomly spawned while processing a mob. + /// Entities that can be randomly spawned while processing a mob. /// public List SpawnedEntities = new(); /// - /// How many units of biomass it produces for each unit of mass. + /// How many units of biomass it produces for each unit of mass. /// - [DataField, ViewVariables(VVAccess.ReadWrite)] - public float YieldPerUnitMass = 0.4f; + [ViewVariables(VVAccess.ReadWrite)] + public float YieldPerUnitMass = default; /// - /// How many seconds to take to insert an entity per unit of its mass. + /// The base yield per mass unit when no components are upgraded. /// - [DataField, ViewVariables(VVAccess.ReadWrite)] + [DataField] + public float BaseYieldPerUnitMass = 0.4f; + + /// + /// Machine part whose rating modifies the yield per mass. + /// + [DataField(customTypeSerializer: typeof(PrototypeIdSerializer))] + public string MachinePartYieldAmount = "MatterBin"; + + /// + /// How much the machine part quality affects the yield. + /// Going up a tier will multiply the yield by this amount. + /// + [DataField] + public float PartRatingYieldAmountMultiplier = 1.25f; + + /// + /// How many seconds to take to insert an entity per unit of its mass. + /// + [DataField] public float BaseInsertionDelay = 0.1f; /// - /// How much to multiply biomass yield from botany produce. + /// How much to multiply biomass yield from botany produce. /// - [DataField, ViewVariables(VVAccess.ReadWrite)] + [DataField] public float ProduceYieldMultiplier = 0.25f; /// - /// The time it takes to process a mob, per mass. + /// The time it takes to process a mob, per mass. + /// + [ViewVariables(VVAccess.ReadWrite)] + public float ProcessingTimePerUnitMass; + + /// + /// The base time per mass unit that it takes to process a mob + /// when no components are upgraded. + /// + [DataField] + public float BaseProcessingTimePerUnitMass = 0.5f; + + /// + /// The machine part that increses the processing speed. + /// + [DataField(customTypeSerializer: typeof(PrototypeIdSerializer))] + public string MachinePartProcessingSpeed = "Manipulator"; + + /// + /// How much the machine part quality affects the yield. + /// Going up a tier will multiply the speed by this amount. /// - [DataField, ViewVariables(VVAccess.ReadWrite)] - public float ProcessingTimePerUnitMass = 0.5f; + [DataField] + public float PartRatingSpeedMultiplier = 1.35f; /// - /// Will this refuse to gib a living mob? + /// Will this refuse to gib a living mob? /// - [ViewVariables(VVAccess.ReadWrite), DataField] + [DataField] public bool SafetyEnabled = true; } } diff --git a/Content.Server/Medical/BiomassReclaimer/BiomassReclaimerSystem.cs b/Content.Server/Medical/BiomassReclaimer/BiomassReclaimerSystem.cs index eaf04d64b2..97a758a5ed 100644 --- a/Content.Server/Medical/BiomassReclaimer/BiomassReclaimerSystem.cs +++ b/Content.Server/Medical/BiomassReclaimer/BiomassReclaimerSystem.cs @@ -1,6 +1,7 @@ using System.Numerics; using Content.Server.Body.Components; using Content.Server.Botany.Components; +using Content.Server.Construction; using Content.Server.Fluids.EntitySystems; using Content.Server.Materials; using Content.Server.Power.Components; @@ -99,6 +100,8 @@ public override void Initialize() SubscribeLocalEvent(OnUnanchorAttempt); SubscribeLocalEvent(OnAfterInteractUsing); SubscribeLocalEvent(OnClimbedOn); + SubscribeLocalEvent(OnRefreshParts); + SubscribeLocalEvent(OnUpgradeExamine); SubscribeLocalEvent(OnPowerChanged); SubscribeLocalEvent(OnSuicide); SubscribeLocalEvent(OnDoAfter); @@ -173,6 +176,26 @@ private void OnClimbedOn(Entity reclaimer, ref Climbe StartProcessing(args.Climber, reclaimer); } + private void OnRefreshParts(EntityUid uid, BiomassReclaimerComponent component, RefreshPartsEvent args) + { + var laserRating = args.PartRatings[component.MachinePartProcessingSpeed]; + var manipRating = args.PartRatings[component.MachinePartYieldAmount]; + + // Processing time slopes downwards with part rating. + component.ProcessingTimePerUnitMass = + component.BaseProcessingTimePerUnitMass / MathF.Pow(component.PartRatingSpeedMultiplier, laserRating - 1); + + // Yield slopes upwards with part rating. + component.YieldPerUnitMass = + component.BaseYieldPerUnitMass * MathF.Pow(component.PartRatingYieldAmountMultiplier, manipRating - 1); + } + + private void OnUpgradeExamine(EntityUid uid, BiomassReclaimerComponent component, UpgradeExamineEvent args) + { + args.AddPercentageUpgrade("biomass-reclaimer-component-upgrade-speed", component.BaseProcessingTimePerUnitMass / component.ProcessingTimePerUnitMass); + args.AddPercentageUpgrade("biomass-reclaimer-component-upgrade-biomass-yield", component.YieldPerUnitMass / component.BaseYieldPerUnitMass); + } + private void OnDoAfter(Entity reclaimer, ref ReclaimerDoAfterEvent args) { if (args.Handled diff --git a/Content.Server/Medical/Components/CryoPodAirComponent.cs b/Content.Server/Medical/Components/CryoPodAirComponent.cs index baaa3bcda0..72a10b391e 100644 --- a/Content.Server/Medical/Components/CryoPodAirComponent.cs +++ b/Content.Server/Medical/Components/CryoPodAirComponent.cs @@ -11,5 +11,5 @@ public sealed partial class CryoPodAirComponent : Component ///
[ViewVariables(VVAccess.ReadWrite)] [DataField("gasMixture")] - public GasMixture Air { get; set; } = new(Atmospherics.OneAtmosphere); + public GasMixture Air { get; set; } = new GasMixture(1000f); } diff --git a/Content.Server/Medical/Components/MedicalScannerComponent.cs b/Content.Server/Medical/Components/MedicalScannerComponent.cs index 96de649987..15ca6cd2bd 100644 --- a/Content.Server/Medical/Components/MedicalScannerComponent.cs +++ b/Content.Server/Medical/Components/MedicalScannerComponent.cs @@ -1,5 +1,4 @@ using Content.Shared.Construction.Prototypes; -using Content.Shared.DragDrop; using Content.Shared.MedicalScanner; using Robust.Shared.Containers; using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype; @@ -13,10 +12,15 @@ public sealed partial class MedicalScannerComponent : SharedMedicalScannerCompon public ContainerSlot BodyContainer = default!; public EntityUid? ConnectedConsole; - [DataField, ViewVariables(VVAccess.ReadWrite)] + [ViewVariables(VVAccess.ReadWrite)] public float CloningFailChanceMultiplier = 1f; - - // Nyano, needed for Metem Machine. + public float MetemKarmaBonus = 0.25f; + + [DataField(customTypeSerializer: typeof(PrototypeIdSerializer))] + public string MachinePartCloningFailChance = "Capacitor"; + + [DataField] + public float PartRatingFailMultiplier = 0.75f; } } diff --git a/Content.Server/Medical/CrewMonitoring/CrewMonitoringConsoleSystem.cs b/Content.Server/Medical/CrewMonitoring/CrewMonitoringConsoleSystem.cs index ff02b9cbdf..a53df6dbae 100644 --- a/Content.Server/Medical/CrewMonitoring/CrewMonitoringConsoleSystem.cs +++ b/Content.Server/Medical/CrewMonitoring/CrewMonitoringConsoleSystem.cs @@ -58,7 +58,7 @@ private void UpdateUserInterface(EntityUid uid, CrewMonitoringConsoleComponent? if (!Resolve(uid, ref component)) return; - if (!_uiSystem.TryGetUi(uid, CrewMonitoringUIKey.Key, out var bui)) + if (!_uiSystem.IsUiOpen(uid, CrewMonitoringUIKey.Key)) return; // The grid must have a NavMapComponent to visualize the map in the UI @@ -69,6 +69,6 @@ private void UpdateUserInterface(EntityUid uid, CrewMonitoringConsoleComponent? // Update all sensors info var allSensors = component.ConnectedSensors.Values.ToList(); - _uiSystem.SetUiState(bui, new CrewMonitoringState(allSensors)); + _uiSystem.SetUiState(uid, CrewMonitoringUIKey.Key, new CrewMonitoringState(allSensors)); } } diff --git a/Content.Server/Medical/CryoPodSystem.cs b/Content.Server/Medical/CryoPodSystem.cs index bcacd2f505..e693274fa3 100644 --- a/Content.Server/Medical/CryoPodSystem.cs +++ b/Content.Server/Medical/CryoPodSystem.cs @@ -13,6 +13,7 @@ using Content.Server.NodeContainer.Nodes; using Content.Server.Power.Components; using Content.Server.Temperature.Components; +using Content.Shared.Atmos; using Content.Shared.UserInterface; using Content.Shared.Chemistry; using Content.Shared.Chemistry.Components; @@ -194,7 +195,8 @@ private void OnActivateUI(Entity entity, ref AfterActivatableU healthAnalyzer.ScannedEntity = entity.Comp.BodyContainer.ContainedEntity; } - _userInterfaceSystem.TrySendUiMessage( + // TODO: This should be a state my dude + _userInterfaceSystem.ServerSendUiMessage( entity.Owner, HealthAnalyzerUiKey.Key, new HealthAnalyzerScannedUserMessage(GetNetEntity(entity.Comp.BodyContainer.ContainedEntity), @@ -247,7 +249,7 @@ private void OnPowerChanged(Entity entity, ref PowerChangedEve else { RemComp(entity); - _uiSystem.TryCloseAll(entity.Owner, HealthAnalyzerUiKey.Key); + _uiSystem.CloseUi(entity.Owner, HealthAnalyzerUiKey.Key); } UpdateAppearance(entity.Owner, entity.Comp); } @@ -277,10 +279,17 @@ private void OnGasAnalyzed(Entity entity, ref GasAnalyzerScanE if (!TryComp(entity, out CryoPodAirComponent? cryoPodAir)) return; - args.GasMixtures ??= new Dictionary { { Name(entity.Owner), cryoPodAir.Air } }; + args.GasMixtures ??= new List<(string, GasMixture?)>(); + args.GasMixtures.Add((Name(entity.Owner), cryoPodAir.Air)); // If it's connected to a port, include the port side - if (_nodeContainer.TryGetNode(entity.Owner, entity.Comp.PortName, out PipeNode? port)) - args.GasMixtures.Add(entity.Comp.PortName, port.Air); + // multiply by volume fraction to make sure to send only the gas inside the analyzed pipe element, not the whole pipe system + if (_nodeContainer.TryGetNode(entity.Owner, entity.Comp.PortName, out PipeNode? port) && port.Air.Volume != 0f) + { + var portAirLocal = port.Air.Clone(); + portAirLocal.Multiply(port.Volume / port.Air.Volume); + portAirLocal.Volume = port.Volume; + args.GasMixtures.Add((entity.Comp.PortName, portAirLocal)); + } } private void OnEjected(Entity cryoPod, ref EntRemovedFromContainerMessage args) @@ -291,7 +300,7 @@ private void OnEjected(Entity cryoPod, ref EntRemovedFromConta } // if body is ejected - no need to display health-analyzer - _uiSystem.TryCloseAll(cryoPod.Owner, HealthAnalyzerUiKey.Key); + _uiSystem.CloseUi(cryoPod.Owner, HealthAnalyzerUiKey.Key); } #endregion diff --git a/Content.Server/Medical/HealthAnalyzerSystem.cs b/Content.Server/Medical/HealthAnalyzerSystem.cs index 489ba9ac81..76616ac801 100644 --- a/Content.Server/Medical/HealthAnalyzerSystem.cs +++ b/Content.Server/Medical/HealthAnalyzerSystem.cs @@ -129,10 +129,10 @@ private void OnDropped(Entity uid, ref DroppedEvent arg private void OpenUserInterface(EntityUid user, EntityUid analyzer) { - if (!TryComp(user, out var actor) || !_uiSystem.TryGetUi(analyzer, HealthAnalyzerUiKey.Key, out var ui)) + if (!_uiSystem.HasUi(analyzer, HealthAnalyzerUiKey.Key)) return; - _uiSystem.OpenUi(ui, actor.PlayerSession); + _uiSystem.OpenUi(analyzer, HealthAnalyzerUiKey.Key, user); } /// @@ -173,7 +173,7 @@ private void StopAnalyzingEntity(Entity healthAnalyzer, /// True makes the UI show ACTIVE, False makes the UI show INACTIVE public void UpdateScannedUser(EntityUid healthAnalyzer, EntityUid target, bool scanMode) { - if (!_uiSystem.TryGetUi(healthAnalyzer, HealthAnalyzerUiKey.Key, out var ui)) + if (!_uiSystem.HasUi(healthAnalyzer, HealthAnalyzerUiKey.Key)) return; if (!HasComp(target)) @@ -195,9 +195,7 @@ public void UpdateScannedUser(EntityUid healthAnalyzer, EntityUid target, bool s bleeding = bloodstream.BleedAmount > 0; } - - - _uiSystem.SendUiMessage(ui, new HealthAnalyzerScannedUserMessage( + _uiSystem.ServerSendUiMessage(healthAnalyzer, HealthAnalyzerUiKey.Key, new HealthAnalyzerScannedUserMessage( GetNetEntity(target), bodyTemperature, bloodAmount, diff --git a/Content.Server/Medical/MedicalScannerSystem.cs b/Content.Server/Medical/MedicalScannerSystem.cs index a6ce43c408..ab6918e373 100644 --- a/Content.Server/Medical/MedicalScannerSystem.cs +++ b/Content.Server/Medical/MedicalScannerSystem.cs @@ -7,6 +7,7 @@ using Content.Shared.Verbs; using Robust.Shared.Containers; using Content.Server.Cloning.Components; +using Content.Server.Construction; using Content.Server.DeviceLinking.Systems; using Content.Shared.DeviceLinking.Events; using Content.Server.Power.EntitySystems; @@ -44,6 +45,8 @@ public override void Initialize() SubscribeLocalEvent(OnDragDropOn); SubscribeLocalEvent(OnPortDisconnected); SubscribeLocalEvent(OnAnchorChanged); + SubscribeLocalEvent(OnRefreshParts); + SubscribeLocalEvent(OnUpgradeExamine); SubscribeLocalEvent(OnCanDragDropOn); } @@ -220,5 +223,17 @@ public void EjectBody(EntityUid uid, MedicalScannerComponent? scannerComponent) _climbSystem.ForciblySetClimbing(contained, uid); UpdateAppearance(uid, scannerComponent); } + + private void OnRefreshParts(EntityUid uid, MedicalScannerComponent component, RefreshPartsEvent args) + { + var ratingFail = args.PartRatings[component.MachinePartCloningFailChance]; + + component.CloningFailChanceMultiplier = MathF.Pow(component.PartRatingFailMultiplier, ratingFail - 1); + } + + private void OnUpgradeExamine(EntityUid uid, MedicalScannerComponent component, UpgradeExamineEvent args) + { + args.AddPercentageUpgrade("medical-scanner-upgrade-cloning", component.CloningFailChanceMultiplier); + } } } diff --git a/Content.Server/Medical/PenLightSystem.cs b/Content.Server/Medical/PenLightSystem.cs index f48a84d047..29cb4888eb 100644 --- a/Content.Server/Medical/PenLightSystem.cs +++ b/Content.Server/Medical/PenLightSystem.cs @@ -1,4 +1,5 @@ using Content.Server.DoAfter; +using Content.Server.Popups; using Content.Server.PowerCell; using Content.Shared.Damage; using Content.Shared.DoAfter; @@ -7,6 +8,7 @@ using Content.Shared.Eye.Blinding.Components; using Content.Shared.Interaction; using Content.Shared.Medical; +using Content.Shared.Mobs.Components; using Content.Shared.Mobs.Systems; using Content.Shared.Traits.Assorted.Components; using Robust.Server.GameObjects; @@ -22,7 +24,9 @@ public sealed class PenLightSystem : EntitySystem [Dependency] private readonly IEntityManager _entityManager = default!; [Dependency] private readonly DoAfterSystem _doAfter = default!; [Dependency] private readonly PowerCellSystem _powerCell = default!; + [Dependency] private readonly PopupSystem _popup = default!; [Dependency] private readonly UserInterfaceSystem _uiSystem = default!; + /// public override void Initialize() { @@ -30,20 +34,23 @@ public override void Initialize() SubscribeLocalEvent(OnDoAfter); } - private void OnAfterInteract(EntityUid uid, PenLightComponent component, AfterInteractEvent args) + private void OnAfterInteract(EntityUid uid, PenLightComponent component, ref AfterInteractEvent args) { - if (args.Handled - || args.Target is not { } target) + if (args.Handled + || args.Target is not {} target + || target == null + || !args.CanReach + || !HasComp(target) + || !_powerCell.HasDrawCharge(uid, user: args.User)) return; - args.Handled = TryStartExam(uid, target, args.User, component); } private void OnDoAfter(Entity uid, ref PenLightDoAfterEvent args) { - if (args.Handled - || args.Cancelled - || args.Target == null + if (args.Handled + || args.Cancelled + || args.Target == null || !_powerCell.HasDrawCharge(uid, user: args.User)) return; @@ -52,6 +59,13 @@ private void OnDoAfter(Entity uid, ref PenLightDoAfterEvent a args.Handled = true; } + /// + /// Checks if the PointLight component is enabled. + /// + private bool IsLightEnabled(EntityUid uid) + { + return TryComp(uid, out var pointLight) && pointLight.Enabled; + } /// /// Actually handles the exam interaction. @@ -61,6 +75,18 @@ public bool TryStartExam(EntityUid uid, EntityUid target, EntityUid user, PenLig if (!Resolve(uid, ref component)) return false; + if (!IsLightEnabled(uid)) + { + if (user != null) + _popup.PopupEntity(Loc.GetString("penlight-off"), uid, user); + return false; + } + // can't examine your own eyes, dingus + if (user == target) + { + _popup.PopupEntity(Loc.GetString("penlight-cannot-examine-self"), uid, user); + return false; + } return _doAfter.TryStartDoAfter(new DoAfterArgs(EntityManager, user, component.ExamSpeed, new PenLightDoAfterEvent(), uid, target, uid) { @@ -73,11 +99,11 @@ public bool TryStartExam(EntityUid uid, EntityUid target, EntityUid user, PenLig } private void OpenUserInterface(EntityUid user, EntityUid penlight) { - if (!TryComp(user, out var actor) - || !_uiSystem.TryGetUi(penlight, PenLightUiKey.Key, out var ui)) + if (!TryComp(user, out var actor) + || !_uiSystem.TryGetOpenUi(penlight, PenLightUiKey.Key, out var ui)) return; - _uiSystem.OpenUi(ui, actor.PlayerSession); + _uiSystem.OpenUi(ui.Owner, ui.UiKey, actor.PlayerSession); } /// @@ -85,9 +111,11 @@ private void OpenUserInterface(EntityUid user, EntityUid penlight) /// private void Diagnose(EntityUid penlight, EntityUid target) { - if (!_uiSystem.TryGetUi(penlight, PenLightUiKey.Key, out var ui) - || !HasComp(target)) + if (!_uiSystem.TryGetOpenUi(penlight, PenLightUiKey.Key, out var ui) + || !HasComp(target) + || !HasComp(target)) return; + // Blind var blind = _entityManager.HasComponent(target); @@ -107,12 +135,16 @@ private void Diagnose(EntityUid penlight, EntityUid target) // Healthy var healthy = !(blind || drunk || eyeDamage || seeingRainbows); - _uiSystem.SendUiMessage(ui, new PenLightUserMessage(GetNetEntity(target), - blind, - drunk, - eyeDamage, - healthy, - seeingRainbows - )); + _uiSystem.ServerSendUiMessage( + ui.Owner, + ui.UiKey, + new PenLightUserMessage(GetNetEntity(target), + blind, + drunk, + eyeDamage, + healthy, + seeingRainbows + ) + ); } } diff --git a/Content.Server/Medical/Stethoscope/StethoscopeSystem.cs b/Content.Server/Medical/Stethoscope/StethoscopeSystem.cs index 9521c14f2e..96bfc7c904 100644 --- a/Content.Server/Medical/Stethoscope/StethoscopeSystem.cs +++ b/Content.Server/Medical/Stethoscope/StethoscopeSystem.cs @@ -3,11 +3,10 @@ using Content.Server.Medical.Stethoscope.Components; using Content.Server.Popups; using Content.Shared.Actions; -using Content.Shared.Clothing.Components; +using Content.Shared.Clothing; using Content.Shared.Damage; using Content.Shared.DoAfter; using Content.Shared.FixedPoint; -using Content.Shared.Inventory.Events; using Content.Shared.Medical; using Content.Shared.Medical.Stethoscope; using Content.Shared.Mobs.Components; @@ -26,8 +25,8 @@ public sealed class StethoscopeSystem : EntitySystem public override void Initialize() { base.Initialize(); - SubscribeLocalEvent(OnEquipped); - SubscribeLocalEvent(OnUnequipped); + SubscribeLocalEvent(OnEquipped); + SubscribeLocalEvent(OnUnequipped); SubscribeLocalEvent>(AddStethoscopeVerb); SubscribeLocalEvent(OnGetActions); SubscribeLocalEvent(OnStethoscopeAction); @@ -37,26 +36,20 @@ public override void Initialize() /// /// Add the component the verb event subs to if the equippee is wearing the stethoscope. /// - private void OnEquipped(EntityUid uid, StethoscopeComponent component, GotEquippedEvent args) + private void OnEquipped(EntityUid uid, StethoscopeComponent component, ref ClothingGotEquippedEvent args) { - if (!TryComp(uid, out var clothing)) - return; - // Is the clothing in its actual slot? - if (!clothing.Slots.HasFlag(args.SlotFlags)) - return; - component.IsActive = true; - var wearingComp = EnsureComp(args.Equipee); + var wearingComp = EnsureComp(args.Wearer); wearingComp.Stethoscope = uid; } - private void OnUnequipped(EntityUid uid, StethoscopeComponent component, GotUnequippedEvent args) + private void OnUnequipped(EntityUid uid, StethoscopeComponent component, ref ClothingGotUnequippedEvent args) { if (!component.IsActive) return; - RemComp(args.Equipee); + RemComp(args.Wearer); component.IsActive = false; } diff --git a/Content.Server/Medical/SuitSensors/SuitSensorSystem.cs b/Content.Server/Medical/SuitSensors/SuitSensorSystem.cs index 0c4f1ec546..0ec75790a4 100644 --- a/Content.Server/Medical/SuitSensors/SuitSensorSystem.cs +++ b/Content.Server/Medical/SuitSensors/SuitSensorSystem.cs @@ -7,10 +7,10 @@ using Content.Server.Medical.CrewMonitoring; using Content.Server.Popups; using Content.Server.Station.Systems; +using Content.Shared.Clothing; using Content.Shared.Damage; using Content.Shared.DeviceNetwork; using Content.Shared.Examine; -using Content.Shared.Inventory.Events; using Content.Shared.Medical.SuitSensor; using Content.Shared.Mobs.Components; using Content.Shared.Mobs.Systems; @@ -40,8 +40,8 @@ public override void Initialize() base.Initialize(); SubscribeLocalEvent(OnPlayerSpawn); SubscribeLocalEvent(OnMapInit); - SubscribeLocalEvent(OnEquipped); - SubscribeLocalEvent(OnUnequipped); + SubscribeLocalEvent(OnEquipped); + SubscribeLocalEvent(OnUnequipped); SubscribeLocalEvent(OnExamine); SubscribeLocalEvent>(OnVerb); SubscribeLocalEvent(OnInsert); @@ -165,19 +165,13 @@ private void OnMapInit(EntityUid uid, SuitSensorComponent component, MapInitEven } } - private void OnEquipped(EntityUid uid, SuitSensorComponent component, GotEquippedEvent args) + private void OnEquipped(EntityUid uid, SuitSensorComponent component, ref ClothingGotEquippedEvent args) { - if (args.Slot != component.ActivationSlot) - return; - - component.User = args.Equipee; + component.User = args.Wearer; } - private void OnUnequipped(EntityUid uid, SuitSensorComponent component, GotUnequippedEvent args) + private void OnUnequipped(EntityUid uid, SuitSensorComponent component, ref ClothingGotUnequippedEvent args) { - if (args.Slot != component.ActivationSlot) - return; - component.User = null; } diff --git a/Content.Server/Mind/Commands/MakeSentientCommand.cs b/Content.Server/Mind/Commands/MakeSentientCommand.cs index b58d782d9c..450f0712a1 100644 --- a/Content.Server/Mind/Commands/MakeSentientCommand.cs +++ b/Content.Server/Mind/Commands/MakeSentientCommand.cs @@ -3,7 +3,7 @@ using Content.Shared.Administration; using Content.Shared.Emoting; using Content.Shared.Examine; -using Content.Shared.Language; +using Content.Shared.Language.Components; using Content.Shared.Language.Systems; using Content.Shared.Mind.Components; using Content.Shared.Movement.Components; diff --git a/Content.Server/Mind/MindSystem.cs b/Content.Server/Mind/MindSystem.cs index dc12836d90..4271d76b44 100644 --- a/Content.Server/Mind/MindSystem.cs +++ b/Content.Server/Mind/MindSystem.cs @@ -1,6 +1,7 @@ using System.Diagnostics.CodeAnalysis; using Content.Server.Administration.Logs; using Content.Server.GameTicking; +using Content.Server.Ghost; using Content.Server.Mind.Commands; using Content.Shared.Database; using Content.Shared.Ghost; @@ -9,10 +10,8 @@ using Content.Shared.Players; using Robust.Server.GameStates; using Robust.Server.Player; -using Robust.Shared.Map.Components; using Robust.Shared.Network; using Robust.Shared.Player; -using Robust.Shared.Timing; using Robust.Shared.Utility; namespace Content.Server.Mind; @@ -22,8 +21,7 @@ public sealed class MindSystem : SharedMindSystem [Dependency] private readonly GameTicker _gameTicker = default!; [Dependency] private readonly IAdminLogManager _adminLogger = default!; [Dependency] private readonly IPlayerManager _players = default!; - [Dependency] private readonly MetaDataSystem _metaData = default!; - [Dependency] private readonly SharedGhostSystem _ghosts = default!; + [Dependency] private readonly GhostSystem _ghosts = default!; [Dependency] private readonly SharedTransformSystem _transform = default!; [Dependency] private readonly PvsOverrideSystem _pvsOverride = default!; @@ -63,8 +61,8 @@ private void OnMindContainerTerminating(EntityUid uid, MindContainerComponent co && !Terminating(visiting)) { TransferTo(mindId, visiting, mind: mind); - if (TryComp(visiting, out GhostComponent? ghost)) - _ghosts.SetCanReturnToBody(ghost, false); + if (TryComp(visiting, out GhostComponent? ghostComp)) + _ghosts.SetCanReturnToBody(ghostComp, false); return; } @@ -74,40 +72,13 @@ private void OnMindContainerTerminating(EntityUid uid, MindContainerComponent co if (!component.GhostOnShutdown || mind.Session == null || _gameTicker.RunLevel == GameRunLevel.PreRoundLobby) return; - var xform = Transform(uid); - var gridId = xform.GridUid; - var spawnPosition = Transform(uid).Coordinates; - - // Use a regular timer here because the entity has probably been deleted. - Timer.Spawn(0, () => - { - // Make extra sure the round didn't end between spawning the timer and it being executed. - if (_gameTicker.RunLevel == GameRunLevel.PreRoundLobby) - return; - - // Async this so that we don't throw if the grid we're on is being deleted. - if (!HasComp(gridId)) - spawnPosition = _gameTicker.GetObserverSpawnPoint(); - - // TODO refactor observer spawning. - // please. - if (!spawnPosition.IsValid(EntityManager)) - { - // This should be an error, if it didn't cause tests to start erroring when they delete a player. - Log.Warning($"Entity \"{ToPrettyString(uid)}\" for {mind.CharacterName} was deleted, and no applicable spawn location is available."); - TransferTo(mindId, null, createGhost: false, mind: mind); - return; - } - - var ghost = Spawn(GameTicker.ObserverPrototypeName, spawnPosition); - var ghostComponent = Comp(ghost); - _ghosts.SetCanReturnToBody(ghostComponent, false); - + var ghost = _ghosts.SpawnGhost((mindId, mind), uid); + if (ghost != null) // Log these to make sure they're not causing the GameTicker round restart bugs... Log.Debug($"Entity \"{ToPrettyString(uid)}\" for {mind.CharacterName} was deleted, spawned \"{ToPrettyString(ghost)}\"."); - _metaData.SetEntityName(ghost, mind.CharacterName ?? string.Empty); - TransferTo(mindId, ghost, mind: mind); - }); + else + // This should be an error, if it didn't cause tests to start erroring when they delete a player. + Log.Warning($"Entity \"{ToPrettyString(uid)}\" for {mind.CharacterName} was deleted, and no applicable spawn location is available."); } public override bool TryGetMind(NetUserId user, [NotNullWhen(true)] out EntityUid? mindId, [NotNullWhen(true)] out MindComponent? mind) diff --git a/Content.Server/Mood/MoodSystem.cs b/Content.Server/Mood/MoodSystem.cs index f2dc87ffd6..4ec4709ea7 100644 --- a/Content.Server/Mood/MoodSystem.cs +++ b/Content.Server/Mood/MoodSystem.cs @@ -53,8 +53,6 @@ public override void Initialize() SubscribeLocalEvent(OnDamageChange); SubscribeLocalEvent(OnRefreshMoveSpeed); SubscribeLocalEvent(OnRemoveEffect); - - SubscribeLocalEvent(OnTraitStartup); } private void OnShutdown(EntityUid uid, MoodComponent component, ComponentShutdown args) @@ -101,15 +99,6 @@ private void OnRefreshMoveSpeed(EntityUid uid, MoodComponent component, RefreshM args.ModifySpeed(1, modifier); } - private void OnTraitStartup(EntityUid uid, MoodModifyTraitComponent component, ComponentStartup args) - { - if (_debugMode - || component.MoodId is null) - return; - - RaiseLocalEvent(uid, new MoodEffectEvent($"{component.MoodId}")); - } - private void OnMoodEffect(EntityUid uid, MoodComponent component, MoodEffectEvent args) { if (_debugMode @@ -133,16 +122,15 @@ private void ApplyEffect(EntityUid uid, MoodComponent component, MoodEffectProto if (!_prototypeManager.TryIndex(oldPrototypeId, out var oldPrototype)) return; - if (prototype.ID != oldPrototype.ID) - { + // Don't send the moodlet popup if we already have the moodlet. + if (!component.CategorisedEffects.ContainsValue(prototype.ID)) SendEffectText(uid, prototype); + + if (prototype.ID != oldPrototype.ID) component.CategorisedEffects[prototype.Category] = prototype.ID; - } } else - { component.CategorisedEffects.Add(prototype.Category, prototype.ID); - } if (prototype.Timeout != 0) Timer.Spawn(TimeSpan.FromSeconds(prototype.Timeout), () => RemoveTimedOutEffect(uid, prototype.ID, prototype.Category)); @@ -157,7 +145,10 @@ private void ApplyEffect(EntityUid uid, MoodComponent component, MoodEffectProto if (moodChange == 0) return; - SendEffectText(uid, prototype); + // Don't send the moodlet popup if we already have the moodlet. + if (!component.UncategorisedEffects.ContainsKey(prototype.ID)) + SendEffectText(uid, prototype); + component.UncategorisedEffects.Add(prototype.ID, moodChange); if (prototype.Timeout != 0) @@ -195,9 +186,28 @@ private void RemoveTimedOutEffect(EntityUid uid, string prototypeId, string? cat comp.CategorisedEffects.Remove(category); } + ReplaceMood(uid, prototypeId); RefreshMood(uid, comp); } + /// + /// Some moods specifically create a moodlet upon expiration. This is normally used for "Addiction" type moodlets, + /// such as a positive moodlet from an addictive substance that becomes a negative moodlet when a timer ends. + /// + /// + /// Moodlets that use this should probably also share a category with each other, but this isn't necessarily required. + /// Only if you intend that "Re-using the drug" should also remove the negative moodlet. + /// + private void ReplaceMood(EntityUid uid, string prototypeId) + { + if (!_prototypeManager.TryIndex(prototypeId, out var proto) + || proto.MoodletOnEnd is null) + return; + + var ev = new MoodEffectEvent(proto.MoodletOnEnd); + EntityManager.EventBus.RaiseLocalEvent(uid, ev); + } + private void OnMobStateChanged(EntityUid uid, MoodComponent component, MobStateChangedEvent args) { if (_debugMode) @@ -242,7 +252,8 @@ private void OnInit(EntityUid uid, MoodComponent component, ComponentStartup arg if (_debugMode) return; - if (TryComp(uid, out var mobThresholdsComponent) + if (_config.GetCVar(CCVars.MoodModifiesThresholds) + && TryComp(uid, out var mobThresholdsComponent) && _mobThreshold.TryGetThresholdForState(uid, MobState.Critical, out var critThreshold, mobThresholdsComponent)) component.CritThresholdBeforeModify = critThreshold.Value; @@ -335,7 +346,8 @@ private void RefreshShaders(EntityUid uid, int modifier) private void SetCritThreshold(EntityUid uid, MoodComponent component, int modifier) { - if (!TryComp(uid, out var mobThresholds) + if (!_config.GetCVar(CCVars.MoodModifiesThresholds) + || !TryComp(uid, out var mobThresholds) || !_mobThreshold.TryGetThresholdForState(uid, MobState.Critical, out var key)) return; diff --git a/Content.Server/NPC/Components/NPCJukeComponent.cs b/Content.Server/NPC/Components/NPCJukeComponent.cs index 2c4136c24b..768feeca6f 100644 --- a/Content.Server/NPC/Components/NPCJukeComponent.cs +++ b/Content.Server/NPC/Components/NPCJukeComponent.cs @@ -1,4 +1,3 @@ -using Content.Server.NPC.HTN.PrimitiveTasks.Operators.Combat; using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom; namespace Content.Server.NPC.Components; @@ -6,17 +5,20 @@ namespace Content.Server.NPC.Components; [RegisterComponent, AutoGenerateComponentPause] public sealed partial class NPCJukeComponent : Component { - [DataField("jukeType")] + [DataField] public JukeType JukeType = JukeType.Away; - [DataField("jukeDuration")] + [DataField] public float JukeDuration = 0.5f; - [DataField("nextJuke", customTypeSerializer:typeof(TimeOffsetSerializer))] + [DataField] + public float JukeCooldown = 3f; + + [DataField(customTypeSerializer: typeof(TimeOffsetSerializer))] [AutoPausedField] public TimeSpan NextJuke; - [DataField("targetTile")] + [DataField] public Vector2i? TargetTile; } diff --git a/Content.Server/NPC/HTN/Preconditions/GunAmmoPrecondition.cs b/Content.Server/NPC/HTN/Preconditions/GunAmmoPrecondition.cs index fe3b844ae3..58647d8874 100644 --- a/Content.Server/NPC/HTN/Preconditions/GunAmmoPrecondition.cs +++ b/Content.Server/NPC/HTN/Preconditions/GunAmmoPrecondition.cs @@ -35,7 +35,7 @@ public override bool IsMet(NPCBlackboard blackboard) else percent = ammoEv.Count / (float) ammoEv.Capacity; - percent = Math.Clamp(percent, 0f, 1f); + percent = System.Math.Clamp(percent, 0f, 1f); if (MaxPercent < percent) return false; diff --git a/Content.Server/NPC/HTN/Preconditions/InContainerPrecondition.cs b/Content.Server/NPC/HTN/Preconditions/InContainerPrecondition.cs new file mode 100644 index 0000000000..aa0ad98ede --- /dev/null +++ b/Content.Server/NPC/HTN/Preconditions/InContainerPrecondition.cs @@ -0,0 +1,27 @@ +using Robust.Server.Containers; + +namespace Content.Server.NPC.HTN.Preconditions; + +/// +/// Checks if the owner in container or not +/// +public sealed partial class InContainerPrecondition : HTNPrecondition +{ + private ContainerSystem _container = default!; + + [ViewVariables(VVAccess.ReadWrite)] [DataField("isInContainer")] public bool IsInContainer = true; + + public override void Initialize(IEntitySystemManager sysManager) + { + base.Initialize(sysManager); + _container = sysManager.GetEntitySystem(); + } + + public override bool IsMet(NPCBlackboard blackboard) + { + var owner = blackboard.GetValue(NPCBlackboard.Owner); + + return IsInContainer && _container.IsEntityInContainer(owner) || + !IsInContainer && !_container.IsEntityInContainer(owner); + } +} diff --git a/Content.Server/NPC/HTN/Preconditions/KeyNotExistsPrecondition.cs b/Content.Server/NPC/HTN/Preconditions/KeyNotExistsPrecondition.cs new file mode 100644 index 0000000000..c12663901c --- /dev/null +++ b/Content.Server/NPC/HTN/Preconditions/KeyNotExistsPrecondition.cs @@ -0,0 +1,12 @@ +namespace Content.Server.NPC.HTN.Preconditions; + +public sealed partial class KeyNotExistsPrecondition : HTNPrecondition +{ + [DataField(required: true)] + public string Key = string.Empty; + + public override bool IsMet(NPCBlackboard blackboard) + { + return !blackboard.ContainsKey(Key); + } +} diff --git a/Content.Server/NPC/HTN/Preconditions/Math/KeyBoolEqualsPrecondition.cs b/Content.Server/NPC/HTN/Preconditions/Math/KeyBoolEqualsPrecondition.cs new file mode 100644 index 0000000000..8c7920e8be --- /dev/null +++ b/Content.Server/NPC/HTN/Preconditions/Math/KeyBoolEqualsPrecondition.cs @@ -0,0 +1,23 @@ +namespace Content.Server.NPC.HTN.Preconditions.Math; + +/// +/// Checks for the presence of data in the blackboard and makes a comparison with the specified boolean +/// +public sealed partial class KeyBoolEqualsPrecondition : HTNPrecondition +{ + [Dependency] private readonly IEntityManager _entManager = default!; + + [DataField(required: true)] + public string Key = string.Empty; + + [DataField(required: true)] + public bool Value; + + public override bool IsMet(NPCBlackboard blackboard) + { + if (!blackboard.TryGetValue(Key, out var value, _entManager)) + return false; + + return Value == value; + } +} diff --git a/Content.Server/NPC/HTN/Preconditions/Math/KeyFloatEqualsPrecondition.cs b/Content.Server/NPC/HTN/Preconditions/Math/KeyFloatEqualsPrecondition.cs new file mode 100644 index 0000000000..802fdaf2b9 --- /dev/null +++ b/Content.Server/NPC/HTN/Preconditions/Math/KeyFloatEqualsPrecondition.cs @@ -0,0 +1,18 @@ +namespace Content.Server.NPC.HTN.Preconditions.Math; + +public sealed partial class KeyFloatEqualsPrecondition : HTNPrecondition +{ + [Dependency] private readonly IEntityManager _entManager = default!; + + [DataField(required: true)] + public string Key = string.Empty; + + [DataField(required: true)] + public float Value; + + public override bool IsMet(NPCBlackboard blackboard) + { + return blackboard.TryGetValue(Key, out var value, _entManager) && + MathHelper.CloseTo(value, value); + } +} diff --git a/Content.Server/NPC/HTN/Preconditions/Math/KeyFloatGreaterPrecondition.cs b/Content.Server/NPC/HTN/Preconditions/Math/KeyFloatGreaterPrecondition.cs new file mode 100644 index 0000000000..3a9ac36698 --- /dev/null +++ b/Content.Server/NPC/HTN/Preconditions/Math/KeyFloatGreaterPrecondition.cs @@ -0,0 +1,17 @@ +namespace Content.Server.NPC.HTN.Preconditions.Math; + +public sealed partial class KeyFloatGreaterPrecondition : HTNPrecondition +{ + [Dependency] private readonly IEntityManager _entManager = default!; + + [DataField(required: true)] + public string Key = string.Empty; + + [DataField(required: true)] + public float Value; + + public override bool IsMet(NPCBlackboard blackboard) + { + return blackboard.TryGetValue(Key, out var value, _entManager) && value > Value; + } +} diff --git a/Content.Server/NPC/HTN/Preconditions/Math/KeyFloatLessPrecondition.cs b/Content.Server/NPC/HTN/Preconditions/Math/KeyFloatLessPrecondition.cs new file mode 100644 index 0000000000..5cd51d7a7c --- /dev/null +++ b/Content.Server/NPC/HTN/Preconditions/Math/KeyFloatLessPrecondition.cs @@ -0,0 +1,17 @@ +namespace Content.Server.NPC.HTN.Preconditions.Math; + +public sealed partial class KeyFloatLessPrecondition : HTNPrecondition +{ + [Dependency] private readonly IEntityManager _entManager = default!; + + [DataField(required: true)] + public string Key = string.Empty; + + [DataField(required: true)] + public float Value; + + public override bool IsMet(NPCBlackboard blackboard) + { + return blackboard.TryGetValue(Key, out var value, _entManager) && value < Value; + } +} diff --git a/Content.Server/NPC/HTN/PrimitiveTasks/Operators/Combat/ContainerOperator.cs b/Content.Server/NPC/HTN/PrimitiveTasks/Operators/Combat/ContainerOperator.cs new file mode 100644 index 0000000000..667d0b8ec4 --- /dev/null +++ b/Content.Server/NPC/HTN/PrimitiveTasks/Operators/Combat/ContainerOperator.cs @@ -0,0 +1,40 @@ +using Robust.Server.Containers; + +namespace Content.Server.NPC.HTN.PrimitiveTasks.Operators.Combat; + +public sealed partial class ContainerOperator : HTNOperator +{ + [Dependency] private readonly IEntityManager _entManager = default!; + private ContainerSystem _container = default!; + private EntityQuery _transformQuery; + + [DataField("shutdownState")] + public HTNPlanState ShutdownState { get; private set; } = HTNPlanState.TaskFinished; + + [DataField("targetKey", required: true)] + public string TargetKey = default!; + + public override void Initialize(IEntitySystemManager sysManager) + { + base.Initialize(sysManager); + _container = sysManager.GetEntitySystem(); + _transformQuery = _entManager.GetEntityQuery(); + } + + public override void Startup(NPCBlackboard blackboard) + { + base.Startup(blackboard); + var owner = blackboard.GetValue(NPCBlackboard.Owner); + + if (!_container.TryGetOuterContainer(owner, _transformQuery.GetComponent(owner), out var outerContainer) && outerContainer == null) + return; + + var target = outerContainer.Owner; + blackboard.SetValue(TargetKey, target); + } + + public override HTNOperatorStatus Update(NPCBlackboard blackboard, float frameTime) + { + return HTNOperatorStatus.Finished; + } +} diff --git a/Content.Server/NPC/HTN/PrimitiveTasks/Operators/Combat/EscapeOperator.cs b/Content.Server/NPC/HTN/PrimitiveTasks/Operators/Combat/EscapeOperator.cs new file mode 100644 index 0000000000..a794e1e314 --- /dev/null +++ b/Content.Server/NPC/HTN/PrimitiveTasks/Operators/Combat/EscapeOperator.cs @@ -0,0 +1,140 @@ +using System.Threading; +using System.Threading.Tasks; +using Content.Server.NPC.Components; +using Content.Server.Storage.EntitySystems; +using Content.Shared.CombatMode; +using Robust.Server.Containers; + +namespace Content.Server.NPC.HTN.PrimitiveTasks.Operators.Combat.Melee; + +public sealed partial class EscapeOperator : HTNOperator, IHtnConditionalShutdown +{ + [Dependency] private readonly IEntityManager _entManager = default!; + private ContainerSystem _container = default!; + private EntityStorageSystem _entityStorage = default!; + + [DataField("shutdownState")] + public HTNPlanState ShutdownState { get; private set; } = HTNPlanState.TaskFinished; + + [DataField("targetKey", required: true)] + public string TargetKey = default!; + + public override void Initialize(IEntitySystemManager sysManager) + { + base.Initialize(sysManager); + _container = sysManager.GetEntitySystem(); + _entityStorage = sysManager.GetEntitySystem(); + } + + public override void Startup(NPCBlackboard blackboard) + { + base.Startup(blackboard); + var owner = blackboard.GetValue(NPCBlackboard.Owner); + var target = blackboard.GetValue(TargetKey); + + if (_entityStorage.TryOpenStorage(owner, target)) + { + TaskShutdown(blackboard, HTNOperatorStatus.Finished); + return; + } + + var melee = _entManager.EnsureComponent(owner); + melee.MissChance = blackboard.GetValueOrDefault(NPCBlackboard.MeleeMissChance, _entManager); + melee.Target = target; + } + + public override async Task<(bool Valid, Dictionary? Effects)> Plan(NPCBlackboard blackboard, + CancellationToken cancelToken) + { + var owner = blackboard.GetValue(NPCBlackboard.Owner); + if (!blackboard.TryGetValue(TargetKey, out var target, _entManager)) + { + return (false, null); + } + + if (!_container.IsEntityInContainer(owner)) + { + return (false, null); + } + + if (_entityStorage.TryOpenStorage(owner, target)) + { + return (false, null); + } + + return (true, null); + } + + public void ConditionalShutdown(NPCBlackboard blackboard) + { + var owner = blackboard.GetValue(NPCBlackboard.Owner); + _entManager.System().SetInCombatMode(owner, false); + _entManager.RemoveComponent(owner); + blackboard.Remove(TargetKey); + } + + public override void TaskShutdown(NPCBlackboard blackboard, HTNOperatorStatus status) + { + base.TaskShutdown(blackboard, status); + + ConditionalShutdown(blackboard); + } + + public override void PlanShutdown(NPCBlackboard blackboard) + { + base.PlanShutdown(blackboard); + + ConditionalShutdown(blackboard); + } + + public override HTNOperatorStatus Update(NPCBlackboard blackboard, float frameTime) + { + base.Update(blackboard, frameTime); + var owner = blackboard.GetValue(NPCBlackboard.Owner); + HTNOperatorStatus status; + + if (_entManager.TryGetComponent(owner, out var combat) && + blackboard.TryGetValue(TargetKey, out var target, _entManager)) + { + combat.Target = target; + + // Success + if (!_container.IsEntityInContainer(owner)) + { + status = HTNOperatorStatus.Finished; + } + else + { + if (_entityStorage.TryOpenStorage(owner, target)) + { + status = HTNOperatorStatus.Finished; + } + else + { + switch (combat.Status) + { + case CombatStatus.TargetOutOfRange: + case CombatStatus.Normal: + status = HTNOperatorStatus.Continuing; + break; + default: + status = HTNOperatorStatus.Failed; + break; + } + } + } + } + else + { + status = HTNOperatorStatus.Failed; + } + + // Mark it as finished to continue the plan. + if (status == HTNOperatorStatus.Continuing && ShutdownState == HTNPlanState.PlanFinished) + { + status = HTNOperatorStatus.Finished; + } + + return status; + } +} diff --git a/Content.Server/NPC/HTN/PrimitiveTasks/Operators/Combat/JukeOperator.cs b/Content.Server/NPC/HTN/PrimitiveTasks/Operators/Combat/JukeOperator.cs index 02a3b08510..68029f5a4c 100644 --- a/Content.Server/NPC/HTN/PrimitiveTasks/Operators/Combat/JukeOperator.cs +++ b/Content.Server/NPC/HTN/PrimitiveTasks/Operators/Combat/JukeOperator.cs @@ -6,17 +6,31 @@ public sealed partial class JukeOperator : HTNOperator, IHtnConditionalShutdown { [Dependency] private readonly IEntityManager _entManager = default!; - [DataField("jukeType")] + [DataField] public JukeType JukeType = JukeType.AdjacentTile; - [DataField("shutdownState")] + [DataField] public HTNPlanState ShutdownState { get; private set; } = HTNPlanState.PlanFinished; + /// + /// Controls how long(in seconds) the NPC will move while juking. + /// + [DataField] + public float JukeDuration = 0.5f; + + /// + /// Controls how often (in seconds) an NPC will try to juke. + /// + [DataField] + public float JukeCooldown = 3f; + public override void Startup(NPCBlackboard blackboard) { base.Startup(blackboard); var juke = _entManager.EnsureComponent(blackboard.GetValue(NPCBlackboard.Owner)); juke.JukeType = JukeType; + juke.JukeDuration = JukeDuration; + juke.JukeCooldown = JukeCooldown; } public override HTNOperatorStatus Update(NPCBlackboard blackboard, float frameTime) diff --git a/Content.Server/NPC/HTN/PrimitiveTasks/Operators/Combat/UnPullOperator.cs b/Content.Server/NPC/HTN/PrimitiveTasks/Operators/Combat/UnPullOperator.cs new file mode 100644 index 0000000000..54f422fe67 --- /dev/null +++ b/Content.Server/NPC/HTN/PrimitiveTasks/Operators/Combat/UnPullOperator.cs @@ -0,0 +1,35 @@ +using Content.Shared.Movement.Pulling.Components; +using Content.Shared.Movement.Pulling.Systems; + +namespace Content.Server.NPC.HTN.PrimitiveTasks.Operators.Combat; + +public sealed partial class UnPullOperator : HTNOperator +{ + [Dependency] private readonly IEntityManager _entManager = default!; + private PullingSystem _pulling = default!; + + private EntityQuery _pullableQuery; + + [DataField("shutdownState")] + public HTNPlanState ShutdownState { get; private set; } = HTNPlanState.TaskFinished; + + public override void Initialize(IEntitySystemManager sysManager) + { + base.Initialize(sysManager); + _pulling = sysManager.GetEntitySystem(); + _pullableQuery = _entManager.GetEntityQuery(); + } + + public override void Startup(NPCBlackboard blackboard) + { + base.Startup(blackboard); + var owner = blackboard.GetValue(NPCBlackboard.Owner); + + _pulling.TryStopPull(owner, _pullableQuery.GetComponent(owner), owner); + } + + public override HTNOperatorStatus Update(NPCBlackboard blackboard, float frameTime) + { + return HTNOperatorStatus.Finished; + } +} diff --git a/Content.Server/NPC/HTN/PrimitiveTasks/Operators/Combat/UnbuckleOperator.cs b/Content.Server/NPC/HTN/PrimitiveTasks/Operators/Combat/UnbuckleOperator.cs new file mode 100644 index 0000000000..207665d786 --- /dev/null +++ b/Content.Server/NPC/HTN/PrimitiveTasks/Operators/Combat/UnbuckleOperator.cs @@ -0,0 +1,34 @@ +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")] + public HTNPlanState ShutdownState { get; private set; } = HTNPlanState.TaskFinished; + + public override void Initialize(IEntitySystemManager sysManager) + { + base.Initialize(sysManager); + _buckle = sysManager.GetEntitySystem(); + } + + 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); + } + + public override HTNOperatorStatus Update(NPCBlackboard blackboard, float frameTime) + { + return HTNOperatorStatus.Finished; + } +} diff --git a/Content.Server/NPC/HTN/PrimitiveTasks/Operators/Math/AddFloatOperator.cs b/Content.Server/NPC/HTN/PrimitiveTasks/Operators/Math/AddFloatOperator.cs new file mode 100644 index 0000000000..00404517c9 --- /dev/null +++ b/Content.Server/NPC/HTN/PrimitiveTasks/Operators/Math/AddFloatOperator.cs @@ -0,0 +1,33 @@ +using System.Threading; +using System.Threading.Tasks; + +namespace Content.Server.NPC.HTN.PrimitiveTasks.Operators.Math; + +/// +/// Gets the key, and adds the value to that float +/// +public sealed partial class AddFloatOperator : HTNOperator +{ + [Dependency] private readonly IEntityManager _entManager = default!; + + [DataField(required: true)] + public string TargetKey = string.Empty; + + [DataField, ViewVariables(VVAccess.ReadWrite)] + public float Amount; + + public override async Task<(bool Valid, Dictionary? Effects)> Plan(NPCBlackboard blackboard, + CancellationToken cancelToken) + { + if (!blackboard.TryGetValue(TargetKey, out var value, _entManager)) + return (false, null); + + return ( + true, + new Dictionary + { + { TargetKey, value + Amount } + } + ); + } +} diff --git a/Content.Server/NPC/HTN/PrimitiveTasks/Operators/Math/SetBoolOperator.cs b/Content.Server/NPC/HTN/PrimitiveTasks/Operators/Math/SetBoolOperator.cs new file mode 100644 index 0000000000..a40b96798d --- /dev/null +++ b/Content.Server/NPC/HTN/PrimitiveTasks/Operators/Math/SetBoolOperator.cs @@ -0,0 +1,28 @@ +using System.Threading; +using System.Threading.Tasks; + +namespace Content.Server.NPC.HTN.PrimitiveTasks.Operators.Math; + +/// +/// Just sets a blackboard key to a bool +/// +public sealed partial class SetBoolOperator : HTNOperator +{ + [DataField(required: true)] + public string TargetKey = string.Empty; + + [DataField, ViewVariables(VVAccess.ReadWrite)] + public bool Value; + + public override async Task<(bool Valid, Dictionary? Effects)> Plan(NPCBlackboard blackboard, + CancellationToken cancelToken) + { + return ( + true, + new Dictionary + { + { TargetKey, Value } + } + ); + } +} diff --git a/Content.Server/NPC/HTN/PrimitiveTasks/Operators/Math/SetFloatOperator.cs b/Content.Server/NPC/HTN/PrimitiveTasks/Operators/Math/SetFloatOperator.cs new file mode 100644 index 0000000000..76842b431f --- /dev/null +++ b/Content.Server/NPC/HTN/PrimitiveTasks/Operators/Math/SetFloatOperator.cs @@ -0,0 +1,28 @@ +using System.Threading; +using System.Threading.Tasks; + +namespace Content.Server.NPC.HTN.PrimitiveTasks.Operators.Math; + +/// +/// Just sets a blackboard key to a float +/// +public sealed partial class SetFloatOperator : HTNOperator +{ + [DataField(required: true)] + public string TargetKey = string.Empty; + + [DataField, ViewVariables(VVAccess.ReadWrite)] + public float Amount; + + public override async Task<(bool Valid, Dictionary? Effects)> Plan(NPCBlackboard blackboard, + CancellationToken cancelToken) + { + return ( + true, + new Dictionary + { + { TargetKey, Amount } + } + ); + } +} diff --git a/Content.Server/NPC/HTN/PrimitiveTasks/Operators/Math/SetRandomFloatOperator.cs b/Content.Server/NPC/HTN/PrimitiveTasks/Operators/Math/SetRandomFloatOperator.cs new file mode 100644 index 0000000000..999756f1f7 --- /dev/null +++ b/Content.Server/NPC/HTN/PrimitiveTasks/Operators/Math/SetRandomFloatOperator.cs @@ -0,0 +1,34 @@ +using System.Threading; +using System.Threading.Tasks; +using Robust.Shared.Random; + +namespace Content.Server.NPC.HTN.PrimitiveTasks.Operators.Math; + +/// +/// Sets a random float from MinAmount to MaxAmount to blackboard +/// +public sealed partial class SetRandomFloatOperator : HTNOperator +{ + [Dependency] private readonly IRobustRandom _random = default!; + + [DataField(required: true)] + public string TargetKey = string.Empty; + + [DataField, ViewVariables(VVAccess.ReadWrite)] + public float MaxAmount = 1f; + + [DataField, ViewVariables(VVAccess.ReadWrite)] + public float MinAmount = 0f; + + public override async Task<(bool Valid, Dictionary? Effects)> Plan(NPCBlackboard blackboard, + CancellationToken cancelToken) + { + return ( + true, + new Dictionary + { + { TargetKey, _random.NextFloat(MinAmount, MaxAmount) } + } + ); + } +} diff --git a/Content.Server/NPC/HTN/PrimitiveTasks/Operators/PlaySoundOperator.cs b/Content.Server/NPC/HTN/PrimitiveTasks/Operators/PlaySoundOperator.cs new file mode 100644 index 0000000000..57cc2e91e4 --- /dev/null +++ b/Content.Server/NPC/HTN/PrimitiveTasks/Operators/PlaySoundOperator.cs @@ -0,0 +1,28 @@ +using Robust.Server.Audio; +using Robust.Shared.Audio; + +namespace Content.Server.NPC.HTN.PrimitiveTasks.Operators; + +public sealed partial class PlaySoundOperator : HTNOperator +{ + private AudioSystem _audio = default!; + + [DataField(required: true)] + public SoundSpecifier? Sound; + + public override void Initialize(IEntitySystemManager sysManager) + { + base.Initialize(sysManager); + + _audio = IoCManager.Resolve().GetEntitySystem(); + } + + public override HTNOperatorStatus Update(NPCBlackboard blackboard, float frameTime) + { + var uid = blackboard.GetValue(NPCBlackboard.Owner); + + _audio.PlayPvs(Sound, uid); + + return base.Update(blackboard, frameTime); + } +} diff --git a/Content.Server/NPC/HTN/PrimitiveTasks/Operators/SayKeyOperator.cs b/Content.Server/NPC/HTN/PrimitiveTasks/Operators/SayKeyOperator.cs new file mode 100644 index 0000000000..3422c77249 --- /dev/null +++ b/Content.Server/NPC/HTN/PrimitiveTasks/Operators/SayKeyOperator.cs @@ -0,0 +1,37 @@ +using Content.Server.Chat.Systems; +using Content.Shared.Chat; + +namespace Content.Server.NPC.HTN.PrimitiveTasks.Operators; + +public sealed partial class SayKeyOperator : HTNOperator +{ + [Dependency] private readonly IEntityManager _entManager = default!; + + private ChatSystem _chat = default!; + + [DataField(required: true)] + public string Key = string.Empty; + + /// + /// Whether to hide message from chat window and logs. + /// + [DataField] + public bool Hidden; + + public override void Initialize(IEntitySystemManager sysManager) + { + base.Initialize(sysManager); + _chat = IoCManager.Resolve().GetEntitySystem(); + } + + public override HTNOperatorStatus Update(NPCBlackboard blackboard, float frameTime) + { + if (!blackboard.TryGetValue(Key, out var value, _entManager)) + return HTNOperatorStatus.Failed; + + var speaker = blackboard.GetValue(NPCBlackboard.Owner); + _chat.TrySendInGameICMessage(speaker, value.ToString() ?? "Oh no...", InGameICChatType.Speak, hideChat: Hidden, hideLog: Hidden); + + return base.Update(blackboard, frameTime); + } +} diff --git a/Content.Server/NPC/HTN/PrimitiveTasks/Operators/SetFloatOperator.cs b/Content.Server/NPC/HTN/PrimitiveTasks/Operators/SetFloatOperator.cs deleted file mode 100644 index 7a460592cb..0000000000 --- a/Content.Server/NPC/HTN/PrimitiveTasks/Operators/SetFloatOperator.cs +++ /dev/null @@ -1,24 +0,0 @@ -using System.Threading; -using System.Threading.Tasks; - -namespace Content.Server.NPC.HTN.PrimitiveTasks.Operators; - -/// -/// Just sets a blackboard key to a float -/// -public sealed partial class SetFloatOperator : HTNOperator -{ - [DataField("targetKey", required: true)] public string TargetKey = string.Empty; - - [ViewVariables(VVAccess.ReadWrite), DataField("amount")] - public float Amount; - - public override async Task<(bool Valid, Dictionary? Effects)> Plan(NPCBlackboard blackboard, - CancellationToken cancelToken) - { - return (true, new Dictionary() - { - {TargetKey, Amount}, - }); - } -} diff --git a/Content.Server/NPC/Systems/NPCJukeSystem.cs b/Content.Server/NPC/Systems/NPCJukeSystem.cs index da9fa1f761..5a724762ef 100644 --- a/Content.Server/NPC/Systems/NPCJukeSystem.cs +++ b/Content.Server/NPC/Systems/NPCJukeSystem.cs @@ -3,6 +3,7 @@ using Content.Server.NPC.Events; using Content.Server.NPC.HTN.PrimitiveTasks.Operators.Combat; using Content.Server.Weapons.Melee; +using Content.Shared.Coordinates.Helpers; using Content.Shared.NPC; using Content.Shared.Weapons.Melee; using Robust.Shared.Collections; @@ -38,22 +39,19 @@ public override void Initialize() private void OnJukeSteering(EntityUid uid, NPCJukeComponent component, ref NPCSteeringEvent args) { - if (component.JukeType == JukeType.AdjacentTile) + if (_timing.CurTime < component.NextJuke) { - if (_npcRangedQuery.TryGetComponent(uid, out var ranged) && - ranged.Status == CombatStatus.NotInSight) - { - component.TargetTile = null; - return; - } + component.TargetTile = null; + return; + } - if (_timing.CurTime < component.NextJuke) - { - component.TargetTile = null; - return; - } + component.NextJuke = _timing.CurTime + TimeSpan.FromSeconds(component.JukeCooldown); - if (!TryComp(args.Transform.GridUid, out var grid)) + if (component.JukeType == JukeType.AdjacentTile) + { + if (_npcRangedQuery.TryGetComponent(uid, out var ranged) + && ranged.Status is CombatStatus.NotInSight + || !TryComp(args.Transform.GridUid, out var grid)) { component.TargetTile = null; return; @@ -107,12 +105,11 @@ private void OnJukeSteering(EntityUid uid, NPCJukeComponent component, ref NPCSt var elapsed = _timing.CurTime - component.NextJuke; - // Finished juke, reset timer. - if (elapsed.TotalSeconds > component.JukeDuration || - currentTile == component.TargetTile) + // Finished juke. + if (elapsed.TotalSeconds > component.JukeDuration + || currentTile == component.TargetTile) { component.TargetTile = null; - component.NextJuke = _timing.CurTime + TimeSpan.FromSeconds(component.JukeDuration); return; } @@ -155,9 +152,7 @@ private void OnJukeSteering(EntityUid uid, NPCJukeComponent component, ref NPCSt var obstacleDirection = _transform.GetWorldPosition(melee.Target) - args.WorldPosition; if (obstacleDirection == Vector2.Zero) - { obstacleDirection = _random.NextVector2(); - } // If they're moving away then pursue anyway. // If just hit then always back up a bit. diff --git a/Content.Server/NPC/Systems/NPCSystem.cs b/Content.Server/NPC/Systems/NPCSystem.cs index 8abe0f7f54..24c038a3e7 100644 --- a/Content.Server/NPC/Systems/NPCSystem.cs +++ b/Content.Server/NPC/Systems/NPCSystem.cs @@ -2,6 +2,8 @@ using Content.Server.NPC.Components; using Content.Server.NPC.HTN; using Content.Shared.CCVar; +using Content.Shared.Mind; +using Content.Shared.Mind.Components; using Content.Shared.Mobs; using Content.Shared.Mobs.Systems; using Content.Shared.NPC; @@ -48,6 +50,10 @@ public void OnPlayerNPCDetach(EntityUid uid, HTNComponent component, PlayerDetac if (_mobState.IsIncapacitated(uid) || TerminatingOrDeleted(uid)) return; + // This NPC has an attached mind, so it should not wake up. + if (TryComp(uid, out var mindContainer) && mindContainer.HasMind) + return; + WakeNPC(uid, component); } diff --git a/Content.Server/Ninja/Systems/NinjaGlovesSystem.cs b/Content.Server/Ninja/Systems/NinjaGlovesSystem.cs index d84a728775..ac76ae6b77 100644 --- a/Content.Server/Ninja/Systems/NinjaGlovesSystem.cs +++ b/Content.Server/Ninja/Systems/NinjaGlovesSystem.cs @@ -1,8 +1,9 @@ using Content.Server.Communications; using Content.Server.Mind; using Content.Server.Ninja.Events; -using Content.Server.Objectives.Components; +using Content.Server.Objectives.Systems; using Content.Shared.Communications; +using Content.Shared.CriminalRecords.Components; using Content.Shared.Ninja.Components; using Content.Shared.Ninja.Systems; using Content.Shared.Research.Components; @@ -16,8 +17,8 @@ namespace Content.Server.Ninja.Systems; public sealed class NinjaGlovesSystem : SharedNinjaGlovesSystem { [Dependency] private readonly EmagProviderSystem _emagProvider = default!; + [Dependency] private readonly CodeConditionSystem _codeCondition = default!; [Dependency] private readonly CommsHackerSystem _commsHacker = default!; - [Dependency] private readonly MindSystem _mind = default!; [Dependency] private readonly SharedStunProviderSystem _stunProvider = default!; [Dependency] private readonly SpaceNinjaSystem _ninja = default!; @@ -88,12 +89,16 @@ private void EnableGloves(EntityUid uid, NinjaGlovesComponent comp, EntityUid us EnsureComp(user); // prevent calling in multiple threats by toggling gloves after - if (_mind.TryGetObjectiveComp(user, out var obj) && !obj.CalledInThreat) + if (!_codeCondition.IsCompleted(user, ninja.TerrorObjective)) { var hacker = EnsureComp(user); var rule = _ninja.NinjaRule(user); if (rule != null) _commsHacker.SetThreats(user, rule.Threats, hacker); } + if (!_codeCondition.IsCompleted(user, ninja.MassArrestObjective)) + { + EnsureComp(user); + } } } diff --git a/Content.Server/Ninja/Systems/SpaceNinjaSystem.cs b/Content.Server/Ninja/Systems/SpaceNinjaSystem.cs index 835ac7ad6c..1dfaf4f339 100644 --- a/Content.Server/Ninja/Systems/SpaceNinjaSystem.cs +++ b/Content.Server/Ninja/Systems/SpaceNinjaSystem.cs @@ -1,12 +1,15 @@ using Content.Server.Communications; using Content.Server.Chat.Managers; +using Content.Server.CriminalRecords.Systems; using Content.Server.GameTicking.Rules.Components; +using Content.Server.GenericAntag; +using Content.Server.Objectives.Components; +using Content.Server.Objectives.Systems; using Content.Server.Power.Components; using Content.Server.Power.EntitySystems; using Content.Server.PowerCell; using Content.Server.Research.Systems; using Content.Server.Roles; -using Content.Server.GenericAntag; using Content.Shared.Alert; using Content.Shared.Clothing.EntitySystems; using Content.Shared.Doors.Components; @@ -19,7 +22,6 @@ using Robust.Shared.Audio; using Robust.Shared.Player; using System.Diagnostics.CodeAnalysis; -using Content.Server.Objectives.Components; using Robust.Shared.Audio.Systems; namespace Content.Server.Ninja.Systems; @@ -28,7 +30,6 @@ namespace Content.Server.Ninja.Systems; // engi -> saboteur // medi -> idk reskin it // other -> assault -// TODO: when criminal records is merged, hack it to set everyone to arrest /// /// Main ninja system that handles ninja setup, provides helper methods for the rest of the code to use. @@ -37,6 +38,7 @@ public sealed class SpaceNinjaSystem : SharedSpaceNinjaSystem { [Dependency] private readonly AlertsSystem _alerts = default!; [Dependency] private readonly BatterySystem _battery = default!; + [Dependency] private readonly CodeConditionSystem _codeCondition = default!; [Dependency] private readonly IChatManager _chatMan = default!; [Dependency] private readonly PowerCellSystem _powerCell = default!; [Dependency] private readonly RoleSystem _role = default!; @@ -52,6 +54,7 @@ public override void Initialize() SubscribeLocalEvent(OnDoorjack); SubscribeLocalEvent(OnResearchStolen); SubscribeLocalEvent(OnThreatCalledIn); + SubscribeLocalEvent(OnCriminalRecordsHacked); } public override void Update(float frameTime) @@ -216,11 +219,21 @@ private void OnResearchStolen(EntityUid uid, SpaceNinjaComponent comp, ref Resea Popup.PopupEntity(str, uid, uid, PopupType.Medium); } - private void OnThreatCalledIn(EntityUid uid, SpaceNinjaComponent comp, ref ThreatCalledInEvent args) + private void OnThreatCalledIn(Entity ent, ref ThreatCalledInEvent args) { - if (_mind.TryGetObjectiveComp(uid, out var obj)) - { - obj.CalledInThreat = true; - } + _codeCondition.SetCompleted(ent.Owner, ent.Comp.TerrorObjective); + } + + private void OnCriminalRecordsHacked(Entity ent, ref CriminalRecordsHackedEvent args) + { + _codeCondition.SetCompleted(ent.Owner, ent.Comp.MassArrestObjective); + } + + /// + /// Called by when it detonates. + /// + public void DetonatedSpiderCharge(Entity ent) + { + _codeCondition.SetCompleted(ent.Owner, ent.Comp.SpiderChargeObjective); } } diff --git a/Content.Server/Ninja/Systems/SpiderChargeSystem.cs b/Content.Server/Ninja/Systems/SpiderChargeSystem.cs index 948d715f0a..64c958d6f1 100644 --- a/Content.Server/Ninja/Systems/SpiderChargeSystem.cs +++ b/Content.Server/Ninja/Systems/SpiderChargeSystem.cs @@ -19,6 +19,7 @@ public sealed class SpiderChargeSystem : EntitySystem [Dependency] private readonly MindSystem _mind = default!; [Dependency] private readonly PopupSystem _popup = default!; [Dependency] private readonly SharedTransformSystem _transform = default!; + [Dependency] private readonly SpaceNinjaSystem _ninja = default!; public override void Initialize() { @@ -76,10 +77,10 @@ private void OnStuck(EntityUid uid, SpiderChargeComponent comp, EntityStuckEvent /// private void OnExplode(EntityUid uid, SpiderChargeComponent comp, TriggerEvent args) { - if (comp.Planter == null || !_mind.TryGetObjectiveComp(comp.Planter.Value, out var obj)) + if (!TryComp(comp.Planter, out var ninja)) return; // assumes the target was destroyed, that the charge wasn't moved somehow - obj.Detonated = true; + _ninja.DetonatedSpiderCharge((comp.Planter.Value, ninja)); } } diff --git a/Content.Server/Nuke/NukeCodePaperSystem.cs b/Content.Server/Nuke/NukeCodePaperSystem.cs index 36268d5648..cedae69682 100644 --- a/Content.Server/Nuke/NukeCodePaperSystem.cs +++ b/Content.Server/Nuke/NukeCodePaperSystem.cs @@ -1,6 +1,7 @@ using System.Diagnostics.CodeAnalysis; using Content.Server.Chat.Systems; using Content.Server.Fax; +using Content.Shared.Fax.Components; using Content.Server.Paper; using Content.Server.Station.Components; using Content.Server.Station.Systems; @@ -66,6 +67,7 @@ public bool SendNukeCodes(EntityUid station) paperContent, Loc.GetString("nuke-codes-fax-paper-name"), null, + null, "paper_stamp-centcom", new List { diff --git a/Content.Server/Nuke/NukeSystem.cs b/Content.Server/Nuke/NukeSystem.cs index 5a7219fdf1..2f62f9d674 100644 --- a/Content.Server/Nuke/NukeSystem.cs +++ b/Content.Server/Nuke/NukeSystem.cs @@ -189,7 +189,7 @@ private async void OnAnchorButtonPressed(EntityUid uid, NukeComponent component, continue; var msg = Loc.GetString("nuke-component-cant-anchor-floor"); - _popups.PopupEntity(msg, uid, args.Session, PopupType.MediumCaution); + _popups.PopupEntity(msg, uid, args.Actor, PopupType.MediumCaution); return; } @@ -245,10 +245,7 @@ private void OnArmButtonPressed(EntityUid uid, NukeComponent component, NukeArme else { - if (args.Session.AttachedEntity is not { } user) - return; - - DisarmBombDoafter(uid, user, component); + DisarmBombDoafter(uid, args.Actor, component); } } @@ -368,8 +365,7 @@ private void UpdateUserInterface(EntityUid uid, NukeComponent? component = null) if (!Resolve(uid, ref component)) return; - var ui = _ui.GetUiOrNull(uid, NukeUiKey.Key); - if (ui == null) + if (!_ui.HasUi(uid, NukeUiKey.Key)) return; var anchored = Transform(uid).Anchored; @@ -390,7 +386,7 @@ private void UpdateUserInterface(EntityUid uid, NukeComponent? component = null) CooldownTime = (int) component.CooldownTime }; - _ui.SetUiState(ui, state); + _ui.SetUiState(uid, NukeUiKey.Key, state); } private void PlayNukeKeypadSound(EntityUid uid, int number, NukeComponent? component = null) diff --git a/Content.Server/NukeOps/WarDeclaratorSystem.cs b/Content.Server/NukeOps/WarDeclaratorSystem.cs index dee0c10c40..04f0b069f1 100644 --- a/Content.Server/NukeOps/WarDeclaratorSystem.cs +++ b/Content.Server/NukeOps/WarDeclaratorSystem.cs @@ -58,9 +58,6 @@ private void OnAttemptOpenUI(Entity ent, ref Activatable private void OnActivated(Entity ent, ref WarDeclaratorActivateMessage args) { - if (args.Session.AttachedEntity is not {} playerEntity) - return; - var ev = new WarDeclaredEvent(ent.Comp.CurrentStatus, ent); RaiseLocalEvent(ref ev); @@ -78,7 +75,7 @@ private void OnActivated(Entity ent, ref WarDeclaratorAc { var title = Loc.GetString(ent.Comp.SenderTitle); _announcer.SendAnnouncement("war", Filter.Broadcast(), ent.Comp.Message, title, ent.Comp.Color); - _adminLogger.Add(LogType.Chat, LogImpact.Low, $"{ToPrettyString(playerEntity):player} has declared war with this text: {ent.Comp.Message}"); + _adminLogger.Add(LogType.Chat, LogImpact.Low, $"{ToPrettyString(args.Actor):player} has declared war with this text: {ent.Comp.Message}"); } UpdateUI(ent, ev.Status); @@ -86,8 +83,8 @@ private void OnActivated(Entity ent, ref WarDeclaratorAc private void UpdateUI(Entity ent, WarConditionStatus? status = null) { - _userInterfaceSystem.TrySetUiState( - ent, + _userInterfaceSystem.SetUiState( + ent.Owner, WarDeclaratorUiKey.Key, new WarDeclaratorBoundUserInterfaceState(status, ent.Comp.DisableAt, ent.Comp.ShuttleDisabledTime)); } diff --git a/Content.Server/Nutrition/Components/DrinkComponent.cs b/Content.Server/Nutrition/Components/DrinkComponent.cs deleted file mode 100644 index 20d47cda88..0000000000 --- a/Content.Server/Nutrition/Components/DrinkComponent.cs +++ /dev/null @@ -1,41 +0,0 @@ -using Content.Server.Nutrition.EntitySystems; -using Content.Shared.FixedPoint; -using Robust.Shared.Audio; - -namespace Content.Server.Nutrition.Components; - -[RegisterComponent, Access(typeof(DrinkSystem))] -public sealed partial class DrinkComponent : Component -{ - [DataField, ViewVariables(VVAccess.ReadWrite)] - public string Solution = "drink"; - - [DataField] - public SoundSpecifier UseSound = new SoundPathSpecifier("/Audio/Items/drink.ogg"); - - [DataField, ViewVariables(VVAccess.ReadWrite)] - public FixedPoint2 TransferAmount = FixedPoint2.New(5); - - /// - /// How long it takes to drink this yourself. - /// - [DataField, ViewVariables(VVAccess.ReadWrite)] - public float Delay = 1; - - [DataField, ViewVariables(VVAccess.ReadWrite)] - public bool Examinable = true; - - /// - /// If true, trying to drink when empty will not handle the event. - /// This means other systems such as equipping on use can run. - /// Example usecase is the bucket. - /// - [DataField, ViewVariables(VVAccess.ReadWrite)] - public bool IgnoreEmpty; - - /// - /// This is how many seconds it takes to force feed someone this drink. - /// - [DataField, ViewVariables(VVAccess.ReadWrite)] - public float ForceFeedDelay = 3; -} diff --git a/Content.Server/Nutrition/Components/FatExtractorComponent.cs b/Content.Server/Nutrition/Components/FatExtractorComponent.cs index e23c557236..fa6edc911e 100644 --- a/Content.Server/Nutrition/Components/FatExtractorComponent.cs +++ b/Content.Server/Nutrition/Components/FatExtractorComponent.cs @@ -1,4 +1,5 @@ using Content.Server.Nutrition.EntitySystems; +using Content.Shared.Construction.Prototypes; using Content.Shared.Nutrition.Components; using Robust.Shared.Audio; using Robust.Shared.Prototypes; @@ -8,67 +9,87 @@ namespace Content.Server.Nutrition.Components; /// -/// This is used for a machine that extracts hunger from entities and creates meat. Yum! +/// This is used for a machine that extracts hunger from entities and creates meat. Yum! /// [RegisterComponent, Access(typeof(FatExtractorSystem)), AutoGenerateComponentPause] public sealed partial class FatExtractorComponent : Component { /// - /// Whether or not the extractor is currently extracting fat from someone + /// Whether or not the extractor is currently extracting fat from someone /// - [DataField("processing")] + [DataField] public bool Processing = true; /// - /// How much nutrition is extracted per second. + /// How much nutrition is extracted per second. /// - [DataField("nutritionPerSecond"), ViewVariables(VVAccess.ReadWrite)] + [ViewVariables(VVAccess.ReadWrite)] public int NutritionPerSecond = 10; /// - /// An accumulator which tracks extracted nutrition to determine - /// when to spawn a meat. + /// The base rate of extraction /// - [DataField("nutrientAccumulator"), ViewVariables(VVAccess.ReadWrite)] + [DataField] + public int BaseNutritionPerSecond = 10; + + #region Machine Upgrade + /// + /// Which machine part affects the nutrition rate + /// + [DataField(customTypeSerializer: typeof(PrototypeIdSerializer))] + public string MachinePartNutritionRate = "Manipulator"; + + /// + /// The increase in rate per each rating above 1. + /// + [DataField] + public float PartRatingRateMultiplier = 10; + #endregion + + /// + /// An accumulator which tracks extracted nutrition to determine + /// when to spawn a meat. + /// + [DataField] public int NutrientAccumulator; /// - /// How high has to be to spawn meat + /// How high has to be to spawn meat /// - [DataField("nutrientPerMeat"), ViewVariables(VVAccess.ReadWrite)] - public int NutrientPerMeat = 30; + [DataField] + public int NutrientPerMeat = 60; /// - /// Meat spawned by the extractor. + /// Meat spawned by the extractor. /// - [DataField("meatPrototype", customTypeSerializer: typeof(PrototypeIdSerializer)), ViewVariables(VVAccess.ReadWrite)] + [DataField(customTypeSerializer: typeof(PrototypeIdSerializer))] public string MeatPrototype = "FoodMeat"; /// - /// When the next update will occur + /// When the next update will occur /// - [DataField("nextUpdate", customTypeSerializer: typeof(TimeOffsetSerializer)), ViewVariables(VVAccess.ReadWrite)] + [DataField(customTypeSerializer: typeof(TimeOffsetSerializer))] [AutoPausedField] public TimeSpan NextUpdate; /// - /// How long each update takes + /// How long each update takes /// - [DataField("updateTime"), ViewVariables(VVAccess.ReadWrite)] + [DataField] public TimeSpan UpdateTime = TimeSpan.FromSeconds(1); /// - /// The sound played when extracting + /// The sound played when extracting /// - [DataField("processSound")] + [DataField] public SoundSpecifier? ProcessSound; public EntityUid? Stream; /// - /// A minium hunger threshold for extracting nutrition. - /// Ignored when emagged. + /// A minium hunger threshold for extracting nutrition. + /// Ignored when emagged. /// - [DataField("minHungerThreshold")] + [DataField] public HungerThreshold MinHungerThreshold = HungerThreshold.Okay; } diff --git a/Content.Server/Nutrition/Components/PressurizedDrinkComponent.cs b/Content.Server/Nutrition/Components/PressurizedDrinkComponent.cs deleted file mode 100644 index aafb3bc106..0000000000 --- a/Content.Server/Nutrition/Components/PressurizedDrinkComponent.cs +++ /dev/null @@ -1,27 +0,0 @@ -using Content.Server.Nutrition.EntitySystems; -using Robust.Shared.Audio; - -namespace Content.Server.Nutrition.Components; - -/// -/// Lets a drink burst open when thrown while closed. -/// Requires and to work. -/// -[RegisterComponent, Access(typeof(DrinkSystem))] -public sealed partial class PressurizedDrinkComponent : Component -{ - /// - /// Chance for the drink to burst when thrown while closed. - /// - [DataField, ViewVariables(VVAccess.ReadWrite)] - public float BurstChance = 0.25f; - - /// - /// Sound played when the drink bursts. - /// - [DataField] - public SoundSpecifier BurstSound = new SoundPathSpecifier("/Audio/Effects/flash_bang.ogg") - { - Params = AudioParams.Default.WithVolume(-4) - }; -} diff --git a/Content.Server/Nutrition/EntitySystems/DrinkSystem.cs b/Content.Server/Nutrition/EntitySystems/DrinkSystem.cs index 2249926baa..cd05adc794 100644 --- a/Content.Server/Nutrition/EntitySystems/DrinkSystem.cs +++ b/Content.Server/Nutrition/EntitySystems/DrinkSystem.cs @@ -5,7 +5,6 @@ using Content.Server.Fluids.EntitySystems; using Content.Server.Forensics; using Content.Server.Inventory; -using Content.Server.Nutrition.Components; using Content.Server.Popups; using Content.Server.Traits.Assorted.Components; using Content.Shared.Administration.Logs; @@ -18,7 +17,6 @@ using Content.Shared.Chemistry.Reagent; using Content.Shared.Database; using Content.Shared.DoAfter; -using Content.Shared.Examine; using Content.Shared.FixedPoint; using Content.Shared.IdentityManagement; using Content.Shared.Interaction; @@ -27,25 +25,22 @@ using Content.Shared.Nutrition; using Content.Shared.Nutrition.Components; using Content.Shared.Nutrition.EntitySystems; -using Content.Shared.Throwing; using Content.Shared.Verbs; using Robust.Shared.Audio; using Robust.Shared.Audio.Systems; using Robust.Shared.Configuration; using Robust.Shared.Player; using Robust.Shared.Prototypes; -using Robust.Shared.Random; using Robust.Shared.Utility; namespace Content.Server.Nutrition.EntitySystems; -public sealed class DrinkSystem : EntitySystem +public sealed class DrinkSystem : SharedDrinkSystem { [Dependency] private readonly BodySystem _body = default!; [Dependency] private readonly FlavorProfileSystem _flavorProfile = default!; [Dependency] private readonly FoodSystem _food = default!; [Dependency] private readonly IPrototypeManager _proto = default!; - [Dependency] private readonly IRobustRandom _random = default!; [Dependency] private readonly ISharedAdminLogManager _adminLogger = default!; [Dependency] private readonly MobStateSystem _mobState = default!; [Dependency] private readonly OpenableSystem _openable = default!; @@ -70,33 +65,10 @@ public override void Initialize() SubscribeLocalEvent(OnDrinkInit); // run before inventory so for bucket it always tries to drink before equipping (when empty) // run after openable so its always open -> drink - SubscribeLocalEvent(OnUse, before: new[] { typeof(ServerInventorySystem) }, after: new[] { typeof(OpenableSystem) }); + SubscribeLocalEvent(OnUse, before: [typeof(ServerInventorySystem)], after: [typeof(OpenableSystem)]); SubscribeLocalEvent(AfterInteract); SubscribeLocalEvent>(AddDrinkVerb); - // put drink amount after opened - SubscribeLocalEvent(OnExamined, after: new[] { typeof(OpenableSystem) }); SubscribeLocalEvent(OnDoAfter); - - SubscribeLocalEvent(OnPressurizedDrinkLand); - } - - private FixedPoint2 DrinkVolume(EntityUid uid, DrinkComponent? component = null) - { - if (!Resolve(uid, ref component)) - return FixedPoint2.Zero; - - if (!_solutionContainer.TryGetSolution(uid, component.Solution, out _, out var sol)) - return FixedPoint2.Zero; - - return sol.Volume; - } - - public bool IsEmpty(EntityUid uid, DrinkComponent? component = null) - { - if (!Resolve(uid, ref component)) - return true; - - return DrinkVolume(uid, component) <= 0; } /// @@ -133,38 +105,6 @@ public float TotalHydration(EntityUid uid, DrinkComponent? comp = null) return total; } - private void OnExamined(Entity entity, ref ExaminedEvent args) - { - TryComp(entity, out var openable); - if (_openable.IsClosed(entity.Owner, null, openable) || !args.IsInDetailsRange || !entity.Comp.Examinable) - return; - - var empty = IsEmpty(entity, entity.Comp); - if (empty) - { - args.PushMarkup(Loc.GetString("drink-component-on-examine-is-empty")); - return; - } - - if (HasComp(entity)) - { - //provide exact measurement for beakers - args.PushText(Loc.GetString("drink-component-on-examine-exact-volume", ("amount", DrinkVolume(entity, entity.Comp)))); - } - else - { - //general approximation - var remainingString = (int) _solutionContainer.PercentFull(entity) switch - { - 100 => "drink-component-on-examine-is-full", - > 66 => "drink-component-on-examine-is-mostly-full", - > 33 => HalfEmptyOrHalfFull(args), - _ => "drink-component-on-examine-is-mostly-empty", - }; - args.PushMarkup(Loc.GetString(remainingString)); - } - } - private void AfterInteract(Entity entity, ref AfterInteractEvent args) { if (args.Handled || args.Target == null || !args.CanReach) @@ -181,25 +121,6 @@ private void OnUse(Entity entity, ref UseInHandEvent args) args.Handled = TryDrink(args.User, args.User, entity.Comp, entity); } - private void OnPressurizedDrinkLand(Entity entity, ref LandEvent args) - { - if (!TryComp(entity, out var drink) || !TryComp(entity, out var openable)) - return; - - if (!openable.Opened && - _random.Prob(entity.Comp.BurstChance) && - _solutionContainer.TryGetSolution(entity.Owner, drink.Solution, out var soln, out var interactions)) - { - // using SetOpen instead of TryOpen to not play 2 sounds - _openable.SetOpen(entity, true, openable); - - var solution = _solutionContainer.SplitSolution(soln.Value, interactions.Volume); - _puddle.TrySpillAt(entity, solution, out _); - - _audio.PlayPvs(entity.Comp.BurstSound, entity); - } - } - private void OnDrinkInit(Entity entity, ref ComponentInit args) { if (TryComp(entity, out var existingDrainable)) @@ -442,16 +363,4 @@ private void AddDrinkVerb(Entity entity, ref GetVerbsEvent(args.Examiner, out var examiner) && examiner.EntityName.Length > 0 - && string.Compare(examiner.EntityName.Substring(0, 1), "m", StringComparison.InvariantCultureIgnoreCase) > 0) - remainingString = "drink-component-on-examine-is-half-empty"; - - return remainingString; - } } diff --git a/Content.Server/Nutrition/EntitySystems/FatExtractorSystem.cs b/Content.Server/Nutrition/EntitySystems/FatExtractorSystem.cs index 180e40d1e4..dc1f67c740 100644 --- a/Content.Server/Nutrition/EntitySystems/FatExtractorSystem.cs +++ b/Content.Server/Nutrition/EntitySystems/FatExtractorSystem.cs @@ -1,5 +1,6 @@ using System.Diagnostics.CodeAnalysis; using System.Linq; +using Content.Server.Construction; using Content.Server.Nutrition.Components; using Content.Server.Power.Components; using Content.Server.Power.EntitySystems; @@ -9,6 +10,7 @@ using Content.Shared.Nutrition.Components; using Content.Shared.Nutrition.EntitySystems; using Content.Shared.Storage.Components; +using Robust.Shared.Audio; using Robust.Shared.Audio.Systems; using Robust.Shared.Timing; @@ -27,12 +29,25 @@ public sealed class FatExtractorSystem : EntitySystem /// public override void Initialize() { + SubscribeLocalEvent(OnRefreshParts); + SubscribeLocalEvent(OnUpgradeExamine); SubscribeLocalEvent(OnGotEmagged); SubscribeLocalEvent(OnClosed); SubscribeLocalEvent(OnOpen); SubscribeLocalEvent(OnPowerChanged); } + private void OnRefreshParts(EntityUid uid, FatExtractorComponent component, RefreshPartsEvent args) + { + var rating = args.PartRatings[component.MachinePartNutritionRate] - 1; + component.NutritionPerSecond = component.BaseNutritionPerSecond + (int) (component.PartRatingRateMultiplier * rating); + } + + private void OnUpgradeExamine(EntityUid uid, FatExtractorComponent component, UpgradeExamineEvent args) + { + args.AddPercentageUpgrade("fat-extractor-component-rate", (float) component.NutritionPerSecond / component.BaseNutritionPerSecond); + } + private void OnGotEmagged(EntityUid uid, FatExtractorComponent component, ref GotEmaggedEvent args) { args.Handled = true; diff --git a/Content.Server/Nutrition/EntitySystems/FoodGuideDataSystem.cs b/Content.Server/Nutrition/EntitySystems/FoodGuideDataSystem.cs new file mode 100644 index 0000000000..f21c509ace --- /dev/null +++ b/Content.Server/Nutrition/EntitySystems/FoodGuideDataSystem.cs @@ -0,0 +1,138 @@ +using System.Linq; +using Content.Client.Chemistry.EntitySystems; +using Content.Server.Chemistry.ReactionEffects; +using Content.Server.Nutrition.Components; +using Content.Shared.Chemistry.Components.SolutionManager; +using Content.Shared.Chemistry.Reaction; +using Content.Shared.Chemistry.Reagent; +using Content.Shared.Kitchen; +using Content.Shared.Nutrition.Components; +using Robust.Server.Player; +using Robust.Shared.Enums; +using Robust.Shared.Player; +using Robust.Shared.Prototypes; +using Robust.Shared.Utility; + +namespace Content.Server.Nutrition.EntitySystems; + +public sealed class FoodGuideDataSystem : SharedFoodGuideDataSystem +{ + public static readonly ProtoId[] ReagentWhitelist = + [ + "Nutriment", + "Vitamin", + "Protein", + "UncookedAnimalProteins", + "Fat", + "Water" + ]; + + public static readonly string[] ComponentNamesBlacklist = ["HumanoidAppearance"]; + + public static readonly string[] SuffixBlacklist = ["debug", "do not map", "admeme"]; + + [Dependency] private readonly IPlayerManager _player = default!; + [Dependency] private readonly IPrototypeManager _protoMan = default!; + + private Dictionary> _sources = new(); + + public override void Initialize() + { + SubscribeLocalEvent(OnPrototypesReloaded); + _player.PlayerStatusChanged += OnPlayerStatusChanged; + + ReloadRecipes(); + } + + private void OnPrototypesReloaded(PrototypesReloadedEventArgs args) + { + if (!args.WasModified() + && !args.WasModified() + && !args.WasModified() + ) + return; + + ReloadRecipes(); + } + + public void ReloadRecipes() + { + // TODO: add this code to the list of known recipes because this is spaghetti + _sources.Clear(); + + // Butcherable and slicable entities + foreach (var ent in _protoMan.EnumeratePrototypes()) + { + if (ent.Abstract + || ent.Components.Any(it => ComponentNamesBlacklist.Contains(it.Key)) + || ent.SetSuffix is {} suffix && SuffixBlacklist.Any(it => suffix.Contains(it, StringComparison.OrdinalIgnoreCase)) + ) + continue; + + if (ent.TryGetComponent(out var butcherable)) + { + var butcheringSource = new FoodButcheringData(ent, butcherable); + foreach (var butchlet in butcherable.SpawnedEntities) + { + if (butchlet.PrototypeId is null) + continue; + + _sources.GetOrNew(butchlet.PrototypeId).Add(butcheringSource); + } + } + + if (ent.TryGetComponent(out var slicable) && slicable.Slice is not null) + { + _sources.GetOrNew(slicable.Slice).Add(new FoodSlicingData(ent, slicable.Slice.Value, slicable.TotalCount)); + } + } + + // Recipes + foreach (var recipe in _protoMan.EnumeratePrototypes()) + { + _sources.GetOrNew(recipe.Result).Add(new FoodRecipeData(recipe)); + } + + // Entity-spawning reactions + foreach (var reaction in _protoMan.EnumeratePrototypes()) + { + foreach (var effect in reaction.Effects) + { + if (effect is not CreateEntityReactionEffect entEffect) + continue; + + _sources.GetOrNew(entEffect.Entity).Add(new FoodReactionData(reaction, entEffect.Entity, (int) entEffect.Number)); + } + } + + Registry.Clear(); + + foreach (var (result, sources) in _sources) + { + var proto = _protoMan.Index(result); + var composition = proto.TryGetComponent(out var food) && 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))) + continue; + + // We also limit the number of sources to 10 because it's a huge performance strain to render 500 raw meat recipes. + var distinctSources = sources.DistinctBy(it => it.Identitier).Take(10); + var entry = new FoodGuideEntry(result, proto.Name, distinctSources.ToArray(), composition); + Registry.Add(entry); + } + + RaiseNetworkEvent(new FoodGuideRegistryChangedEvent(Registry)); + } + + private void OnPlayerStatusChanged(object? sender, SessionStatusEventArgs args) + { + if (args.NewStatus != SessionStatus.Connected) + return; + + RaiseNetworkEvent(new FoodGuideRegistryChangedEvent(Registry), args.Session); + } +} diff --git a/Content.Server/Nutrition/EntitySystems/SmokingSystem.Vape.cs b/Content.Server/Nutrition/EntitySystems/SmokingSystem.Vape.cs index fe0d1d0c16..d5bff967b3 100644 --- a/Content.Server/Nutrition/EntitySystems/SmokingSystem.Vape.cs +++ b/Content.Server/Nutrition/EntitySystems/SmokingSystem.Vape.cs @@ -13,6 +13,7 @@ using Content.Shared.Interaction; using Content.Shared.Nutrition; using System.Threading; +using Content.Shared.Atmos; /// /// System for vapes diff --git a/Content.Server/Nyanotrasen/Kitchen/EntitySystems/DeepFryerSystem.Storage.cs b/Content.Server/Nyanotrasen/Kitchen/EntitySystems/DeepFryerSystem.Storage.cs index 8858286dbf..a9a07c287b 100644 --- a/Content.Server/Nyanotrasen/Kitchen/EntitySystems/DeepFryerSystem.Storage.cs +++ b/Content.Server/Nyanotrasen/Kitchen/EntitySystems/DeepFryerSystem.Storage.cs @@ -80,14 +80,13 @@ private void OnInteractUsing(EntityUid uid, DeepFryerComponent component, Intera private void OnInsertItem(EntityUid uid, DeepFryerComponent component, DeepFryerInsertItemMessage args) { - var user = args.Session.AttachedEntity; + var user = EntityManager.GetEntity(args.Entity); - if (user == null || - !TryComp(user, out var handsComponent) || + if (!TryComp(user, out var handsComponent) || handsComponent.ActiveHandEntity == null) return; if (handsComponent.ActiveHandEntity != null) - TryInsertItem(uid, component, user.Value, handsComponent.ActiveHandEntity.Value); + TryInsertItem(uid, component, user, handsComponent.ActiveHandEntity.Value); } } diff --git a/Content.Server/Nyanotrasen/Kitchen/EntitySystems/DeepFryerSystem.cs b/Content.Server/Nyanotrasen/Kitchen/EntitySystems/DeepFryerSystem.cs index 80c38f4630..dc182c1edf 100644 --- a/Content.Server/Nyanotrasen/Kitchen/EntitySystems/DeepFryerSystem.cs +++ b/Content.Server/Nyanotrasen/Kitchen/EntitySystems/DeepFryerSystem.cs @@ -128,8 +128,7 @@ private void UpdateUserInterface(EntityUid uid, DeepFryerComponent component) component.FryingOilThreshold, EntityManager.GetNetEntityArray(component.Storage.ContainedEntities.ToArray())); - if (!_uiSystem.TrySetUiState(uid, DeepFryerUiKey.Key, state)) - _sawmill.Warning($"{ToPrettyString(uid)} was unable to set UI state."); + _uiSystem.SetUiState(new Entity(uid, null), DeepFryerUiKey.Key, state); } /// @@ -525,15 +524,12 @@ private void OnRemoveItem(EntityUid uid, DeepFryerComponent component, DeepFryer if (!_containerSystem.Remove(removedItem, component.Storage)) return; - var user = args.Session.AttachedEntity; + var user = EntityManager.GetEntity(args.Entity); - if (user != null) - { - _handsSystem.TryPickupAnyHand(user.Value, removedItem); + _handsSystem.TryPickupAnyHand(user, removedItem); - _adminLogManager.Add(LogType.Action, LogImpact.Low, - $"{ToPrettyString(user.Value)} took {ToPrettyString(args.Item)} out of {ToPrettyString(uid)}."); - } + _adminLogManager.Add(LogType.Action, LogImpact.Low, + $"{ToPrettyString(user)} took {ToPrettyString(args.Item)} out of {ToPrettyString(uid)}."); _audioSystem.PlayPvs(component.SoundRemoveItem, uid, AudioParamsInsertRemove); @@ -581,17 +577,16 @@ private bool TryGetActiveHandSolutionContainer( private void OnScoopVat(EntityUid uid, DeepFryerComponent component, DeepFryerScoopVatMessage args) { - var user = args.Session.AttachedEntity; + var user = EntityManager.GetEntity(args.Entity); - if (user == null || - !TryGetActiveHandSolutionContainer(uid, user.Value, out var heldItem, out var heldSolution, + if (!TryGetActiveHandSolutionContainer(uid, user, out var heldItem, out var heldSolution, out var transferAmount)) return; if (!_solutionContainerSystem.TryGetSolution(component.Owner, component.Solution.Name, out var solution)) return; - _solutionTransferSystem.Transfer(user.Value, + _solutionTransferSystem.Transfer(user, uid, solution.Value, heldItem.Value, @@ -603,10 +598,9 @@ private void OnScoopVat(EntityUid uid, DeepFryerComponent component, DeepFryerSc private void OnClearSlagStart(EntityUid uid, DeepFryerComponent component, DeepFryerClearSlagMessage args) { - var user = args.Session.AttachedEntity; + var user = EntityManager.GetEntity(args.Entity); - if (user == null || - !TryGetActiveHandSolutionContainer(uid, user.Value, out var heldItem, out var heldSolution, + if (!TryGetActiveHandSolutionContainer(uid, user, out var heldItem, out var heldSolution, out var transferAmount)) return; @@ -616,7 +610,7 @@ private void OnClearSlagStart(EntityUid uid, DeepFryerComponent component, DeepF _popupSystem.PopupEntity( Loc.GetString("deep-fryer-oil-no-slag"), uid, - user.Value); + user); return; } @@ -626,7 +620,7 @@ private void OnClearSlagStart(EntityUid uid, DeepFryerComponent component, DeepF var ev = new ClearSlagDoAfterEvent(heldSolution.Value.Comp.Solution, transferAmount); //JJ Comment - not sure I have DoAfterArgs configured correctly. - var doAfterArgs = new DoAfterArgs(EntityManager, user.Value, delay, ev, uid, uid, heldItem) + var doAfterArgs = new DoAfterArgs(EntityManager, user, delay, ev, uid, uid, heldItem) { BreakOnDamage = true, BreakOnTargetMove = true, @@ -645,13 +639,10 @@ private void OnRemoveAllItems(EntityUid uid, DeepFryerComponent component, DeepF _containerSystem.EmptyContainer(component.Storage); - var user = args.Session.AttachedEntity; + var user = EntityManager.GetEntity(args.Entity); - if (user != null) - { - _adminLogManager.Add(LogType.Action, LogImpact.Low, - $"{ToPrettyString(user.Value)} removed all items from {ToPrettyString(uid)}."); - } + _adminLogManager.Add(LogType.Action, LogImpact.Low, + $"{ToPrettyString(user)} removed all items from {ToPrettyString(uid)}."); _audioSystem.PlayPvs(component.SoundRemoveItem, uid, AudioParamsInsertRemove); diff --git a/Content.Server/Nyanotrasen/Mail/Components/MailComponent.cs b/Content.Server/Nyanotrasen/Mail/Components/MailComponent.cs deleted file mode 100644 index 61d94bbad3..0000000000 --- a/Content.Server/Nyanotrasen/Mail/Components/MailComponent.cs +++ /dev/null @@ -1,108 +0,0 @@ -using System.Threading; -using Robust.Shared.Audio; -using Content.Shared.Storage; -using Content.Shared.Mail; - -namespace Content.Server.Mail.Components -{ - [RegisterComponent] - public sealed partial class MailComponent : SharedMailComponent - { - [ViewVariables(VVAccess.ReadWrite)] - [DataField("recipient")] - public string Recipient = "None"; - - [ViewVariables(VVAccess.ReadWrite)] - [DataField("recipientJob")] - public string RecipientJob = "None"; - - // Why do we not use LockComponent? - // Because this can't be locked again, - // and we have special conditions for unlocking, - // and we don't want to add a verb. - [ViewVariables(VVAccess.ReadWrite)] - [DataField("isLocked")] - public bool IsLocked = true; - - /// - /// Is this parcel profitable to deliver for the station? - /// - /// - /// The station won't receive any award on delivery if this is false. - /// This is useful for broken fragile packages and packages that were - /// not delivered in time. - /// - [DataField("isProfitable")] - public bool IsProfitable = true; - - /// - /// Is this package considered fragile? - /// - /// - /// This can be set to true in the YAML files for a mail delivery to - /// always be Fragile, despite its contents. - /// - [DataField("isFragile")] - public bool IsFragile = false; - - /// - /// Is this package considered priority mail? - /// - /// - /// There will be a timer set for its successful delivery. The - /// station's bank account will be penalized if it is not delivered on - /// time. - /// - /// This is set to false on successful delivery. - /// - /// This can be set to true in the YAML files for a mail delivery to - /// always be Priority. - /// - [DataField("isPriority")] - public bool IsPriority = false; - - /// - /// What will be packaged when the mail is spawned. - /// - [DataField("contents")] - public List Contents = new(); - - /// - /// The amount that cargo will be awarded for delivering this mail. - /// - [DataField("bounty")] - public int Bounty = 750; - - /// - /// Penalty if the mail is destroyed. - /// - [DataField("penalty")] - public int Penalty = -250; - - /// - /// The sound that's played when the mail's lock is broken. - /// - [DataField("penaltySound")] - public SoundSpecifier PenaltySound = new SoundPathSpecifier("/Audio/Machines/Nuke/angry_beep.ogg"); - - /// - /// The sound that's played when the mail's opened. - /// - [DataField("openSound")] - public SoundSpecifier OpenSound = new SoundPathSpecifier("/Audio/Effects/packetrip.ogg"); - - /// - /// The sound that's played when the mail's lock has been emagged. - /// - [DataField("emagSound")] - public SoundSpecifier EmagSound = new SoundCollectionSpecifier("sparks"); - - /// - /// Whether this component is enabled. - /// Removed when it becomes trash. - /// - public bool IsEnabled = true; - - public CancellationTokenSource? priorityCancelToken; - } -} diff --git a/Content.Server/Nyanotrasen/Mail/Components/MailReceiverComponent.cs b/Content.Server/Nyanotrasen/Mail/Components/MailReceiverComponent.cs deleted file mode 100644 index 4224de5de4..0000000000 --- a/Content.Server/Nyanotrasen/Mail/Components/MailReceiverComponent.cs +++ /dev/null @@ -1,6 +0,0 @@ -namespace Content.Server.Mail.Components -{ - [RegisterComponent] - public sealed partial class MailReceiverComponent : Component - {} -} diff --git a/Content.Server/Nyanotrasen/Mail/Components/MailTeleporterComponent.cs b/Content.Server/Nyanotrasen/Mail/Components/MailTeleporterComponent.cs deleted file mode 100644 index bc05d7307d..0000000000 --- a/Content.Server/Nyanotrasen/Mail/Components/MailTeleporterComponent.cs +++ /dev/null @@ -1,108 +0,0 @@ -using Robust.Shared.Audio; - -namespace Content.Server.Mail.Components -{ - /// - /// This is for the mail teleporter. - /// Random mail will be teleported to this every few minutes. - /// - [RegisterComponent] - public sealed partial class MailTeleporterComponent : Component - { - - // Not starting accumulator at 0 so mail carriers have some deliveries to make shortly after roundstart. - [DataField("accumulator")] - public float Accumulator = 285f; - - [DataField("teleportInterval")] - public TimeSpan TeleportInterval = TimeSpan.FromMinutes(5); - - /// - /// The sound that's played when new mail arrives. - /// - [DataField("teleportSound")] - public SoundSpecifier TeleportSound = new SoundPathSpecifier("/Audio/Effects/teleport_arrival.ogg"); - - /// - /// The MailDeliveryPoolPrototype that's used to select what mail this - /// teleporter can deliver. - /// - [DataField("mailPool")] - public string MailPool = "RandomMailDeliveryPool"; - - /// - /// How many mail candidates do we need per actual delivery sent when - /// the mail goes out? The number of candidates is divided by this number - /// to determine how many deliveries will be teleported in. - /// It does not determine unique recipients. That is random. - /// - [DataField("candidatesPerDelivery")] - public int CandidatesPerDelivery = 8; - - [DataField("minimumDeliveriesPerTeleport")] - public int MinimumDeliveriesPerTeleport = 1; - - /// - /// Do not teleport any more mail in, if there are at least this many - /// undelivered parcels. - /// - /// - /// Currently this works by checking how many MailComponent entities - /// are sitting on the teleporter's tile. - /// - /// It should be noted that if the number of actual deliveries to be - /// made based on the number of candidates divided by candidates per - /// delivery exceeds this number, the teleporter will spawn more mail - /// than this number. - /// - /// This is just a simple check to see if anyone's been picking up the - /// mail lately to prevent entity bloat for the sake of performance. - /// - [DataField("maximumUndeliveredParcels")] - public int MaximumUndeliveredParcels = 5; - - /// - /// Any item that breaks or is destroyed in less than this amount of - /// damage is one of the types of items considered fragile. - /// - [DataField("fragileDamageThreshold")] - public int FragileDamageThreshold = 10; - - /// - /// What's the bonus for delivering a fragile package intact? - /// - [DataField("fragileBonus")] - public int FragileBonus = 100; - - /// - /// What's the malus for failing to deliver a fragile package? - /// - [DataField("fragileMalus")] - public int FragileMalus = -100; - - /// - /// What's the chance for any one delivery to be marked as priority mail? - /// - [DataField("priorityChance")] - public float PriorityChance = 0.1f; - - /// - /// How long until a priority delivery is considered as having failed - /// if not delivered? - /// - [DataField("priorityDuration")] - public TimeSpan priorityDuration = TimeSpan.FromMinutes(5); - - /// - /// What's the bonus for delivering a priority package on time? - /// - [DataField("priorityBonus")] - public int PriorityBonus = 250; - - /// - /// What's the malus for failing to deliver a priority package? - /// - [DataField("priorityMalus")] - public int PriorityMalus = -250; - } -} diff --git a/Content.Server/Nyanotrasen/Mail/Components/StationMailRouterComponent.cs b/Content.Server/Nyanotrasen/Mail/Components/StationMailRouterComponent.cs deleted file mode 100644 index ce87eb131f..0000000000 --- a/Content.Server/Nyanotrasen/Mail/Components/StationMailRouterComponent.cs +++ /dev/null @@ -1,9 +0,0 @@ -namespace Content.Server.Mail; - -/// -/// Designates a station as a place for sending and receiving mail. -/// -[RegisterComponent] -public sealed partial class StationMailRouterComponent : Component -{ -} diff --git a/Content.Server/Nyanotrasen/Mail/MailCommands.cs b/Content.Server/Nyanotrasen/Mail/MailCommands.cs deleted file mode 100644 index 5af873f9e8..0000000000 --- a/Content.Server/Nyanotrasen/Mail/MailCommands.cs +++ /dev/null @@ -1,137 +0,0 @@ -using System.Linq; -using Robust.Shared.Console; -using Robust.Shared.Containers; -using Robust.Shared.Prototypes; -using Content.Shared.Administration; -using Content.Server.Administration; -using Content.Server.Mail.Components; - -namespace Content.Server.Mail; - -[AdminCommand(AdminFlags.Fun)] -public sealed class MailToCommand : IConsoleCommand -{ - public string Command => "mailto"; - public string Description => Loc.GetString("command-mailto-description", ("requiredComponent", nameof(MailReceiverComponent))); - public string Help => Loc.GetString("command-mailto-help", ("command", Command)); - - [Dependency] private readonly IEntityManager _entityManager = default!; - [Dependency] private readonly IPrototypeManager _prototypeManager = default!; - [Dependency] private readonly IEntitySystemManager _entitySystemManager = default!; - - private readonly string _blankMailPrototype = "MailAdminFun"; - private readonly string _container = "storagebase"; - private readonly string _mailContainer = "contents"; - - - public async void Execute(IConsoleShell shell, string argStr, string[] args) - { - if (args.Length < 4) - { - shell.WriteError(Loc.GetString("shell-wrong-arguments-number")); - return; - } - - if (!EntityUid.TryParse(args[0], out var recipientUid)) - { - shell.WriteError(Loc.GetString("shell-entity-uid-must-be-number")); - return; - } - - if (!EntityUid.TryParse(args[1], out var containerUid)) - { - shell.WriteError(Loc.GetString("shell-entity-uid-must-be-number")); - return; - } - - if (!Boolean.TryParse(args[2], out var isFragile)) - { - shell.WriteError(Loc.GetString("shell-invalid-bool")); - return; - } - - if (!Boolean.TryParse(args[3], out var isPriority)) - { - shell.WriteError(Loc.GetString("shell-invalid-bool")); - return; - } - - - var _mailSystem = _entitySystemManager.GetEntitySystem(); - var _containerSystem = _entitySystemManager.GetEntitySystem(); - - if (!_entityManager.TryGetComponent(recipientUid, out MailReceiverComponent? mailReceiver)) - { - shell.WriteLine(Loc.GetString("command-mailto-no-mailreceiver", ("requiredComponent", nameof(MailReceiverComponent)))); - return; - } - - if (!_prototypeManager.HasIndex(_blankMailPrototype)) - { - shell.WriteLine(Loc.GetString("command-mailto-no-blankmail", ("blankMail", _blankMailPrototype))); - return; - } - - if (!_containerSystem.TryGetContainer(containerUid, _container, out var targetContainer)) - { - shell.WriteLine(Loc.GetString("command-mailto-invalid-container", ("requiredContainer", _container))); - return; - } - - if (!_mailSystem.TryGetMailRecipientForReceiver(mailReceiver, out MailRecipient? recipient)) - { - shell.WriteLine(Loc.GetString("command-mailto-unable-to-receive")); - return; - } - - if (!_mailSystem.TryGetMailTeleporterForReceiver(mailReceiver, out MailTeleporterComponent? teleporterComponent)) - { - shell.WriteLine(Loc.GetString("command-mailto-no-teleporter-found")); - return; - } - - var mailUid = _entityManager.SpawnEntity(_blankMailPrototype, _entityManager.GetComponent(containerUid).Coordinates); - var mailContents = _containerSystem.EnsureContainer(mailUid, _mailContainer); - - if (!_entityManager.TryGetComponent(mailUid, out MailComponent? mailComponent)) - { - shell.WriteLine(Loc.GetString("command-mailto-bogus-mail", ("blankMail", _blankMailPrototype), ("requiredMailComponent", nameof(MailComponent)))); - return; - } - - foreach (var entity in targetContainer.ContainedEntities.ToArray()) - _containerSystem.Insert(entity, mailContents); - - mailComponent.IsFragile = isFragile; - mailComponent.IsPriority = isPriority; - - _mailSystem.SetupMail(mailUid, teleporterComponent, recipient.Value); - - var teleporterQueue = _containerSystem.EnsureContainer(teleporterComponent.Owner, "queued"); - _containerSystem.Insert(mailUid, teleporterQueue); - shell.WriteLine(Loc.GetString("command-mailto-success", ("timeToTeleport", teleporterComponent.TeleportInterval.TotalSeconds - teleporterComponent.Accumulator))); - } -} - -[AdminCommand(AdminFlags.Fun)] -public sealed class MailNowCommand : IConsoleCommand -{ - public string Command => "mailnow"; - public string Description => Loc.GetString("command-mailnow"); - public string Help => Loc.GetString("command-mailnow-help", ("command", Command)); - - [Dependency] private readonly IEntityManager _entityManager = default!; - [Dependency] private readonly IEntitySystemManager _entitySystemManager = default!; - - public async void Execute(IConsoleShell shell, string argStr, string[] args) - { - var _mailSystem = _entitySystemManager.GetEntitySystem(); - - foreach (var mailTeleporter in _entityManager.EntityQuery()) - { - mailTeleporter.Accumulator += (float) mailTeleporter.TeleportInterval.TotalSeconds - mailTeleporter.Accumulator; - } - - shell.WriteLine(Loc.GetString("command-mailnow-success")); - } -} diff --git a/Content.Server/Nyanotrasen/Mail/MailSystem.cs b/Content.Server/Nyanotrasen/Mail/MailSystem.cs deleted file mode 100644 index 05cd0c88a7..0000000000 --- a/Content.Server/Nyanotrasen/Mail/MailSystem.cs +++ /dev/null @@ -1,731 +0,0 @@ -using System.Diagnostics.CodeAnalysis; -using System.Linq; -using System.Threading; -using Robust.Shared.Audio; -using Robust.Shared.Containers; -using Robust.Shared.Prototypes; -using Robust.Shared.Random; -using Content.Server.Access.Systems; -using Content.Server.Cargo.Components; -using Content.Server.Cargo.Systems; -using Content.Server.Chat.Systems; -using Content.Server.Chemistry.Containers.EntitySystems; -using Content.Server.Chemistry.EntitySystems; -using Content.Server.Damage.Components; -using Content.Server.Destructible; -using Content.Server.Destructible.Thresholds; -using Content.Server.Destructible.Thresholds.Behaviors; -using Content.Server.Destructible.Thresholds.Triggers; -using Content.Server.Fluids.Components; -using Content.Server.Item; -using Content.Server.Mail.Components; -using Content.Server.Mind; -using Content.Server.Nutrition.Components; -using Content.Server.Nutrition.EntitySystems; -using Content.Server.Popups; -using Content.Server.Power.Components; -using Content.Server.Station.Systems; -using Content.Server.Spawners.EntitySystems; -using Content.Shared.Access; -using Content.Shared.Access.Components; -using Content.Shared.Access.Systems; -using Content.Shared.Chat; -using Content.Shared.Chemistry.EntitySystems; -using Content.Shared.Damage; -using Content.Shared.Emag.Components; -using Content.Shared.Destructible; -using Content.Shared.Emag.Systems; -using Content.Shared.Examine; -using Content.Shared.Fluids.Components; -using Content.Shared.Hands.EntitySystems; -using Content.Shared.Interaction; -using Content.Shared.Interaction.Events; -using Content.Shared.Item; -using Content.Shared.Mail; -using Content.Shared.Maps; -using Content.Shared.Nutrition.Components; -using Content.Shared.Nutrition.EntitySystems; -using Content.Shared.PDA; -using Content.Shared.Random.Helpers; -using Content.Shared.Roles; -using Content.Shared.StatusIcon; -using Content.Shared.Storage; -using Content.Shared.Tag; -using Robust.Shared.Audio.Systems; -using Timer = Robust.Shared.Timing.Timer; - -namespace Content.Server.Mail -{ - public sealed class MailSystem : EntitySystem - { - [Dependency] private readonly PopupSystem _popupSystem = default!; - [Dependency] private readonly AccessReaderSystem _accessSystem = default!; - [Dependency] private readonly SharedHandsSystem _handsSystem = default!; - [Dependency] private readonly IdCardSystem _idCardSystem = default!; - [Dependency] private readonly IRobustRandom _random = default!; - [Dependency] private readonly TagSystem _tagSystem = default!; - [Dependency] private readonly CargoSystem _cargoSystem = default!; - [Dependency] private readonly StationSystem _stationSystem = default!; - [Dependency] private readonly ChatSystem _chatSystem = default!; - [Dependency] private readonly OpenableSystem _openable = default!; - [Dependency] private readonly IPrototypeManager _prototypeManager = default!; - [Dependency] private readonly SharedContainerSystem _containerSystem = default!; - [Dependency] private readonly SolutionContainerSystem _solutionContainerSystem = default!; - [Dependency] private readonly SharedAppearanceSystem _appearanceSystem = default!; - [Dependency] private readonly SharedAudioSystem _audioSystem = default!; - [Dependency] private readonly DamageableSystem _damageableSystem = default!; - [Dependency] private readonly ItemSystem _itemSystem = default!; - [Dependency] private readonly MindSystem _mindSystem = default!; - [Dependency] private readonly MetaDataSystem _metaDataSystem = default!; - - private ISawmill _sawmill = default!; - - public override void Initialize() - { - base.Initialize(); - - _sawmill = Logger.GetSawmill("mail"); - - SubscribeLocalEvent(OnSpawnPlayer, after: new[] { typeof(SpawnPointSystem) }); - - SubscribeLocalEvent(OnRemove); - SubscribeLocalEvent(OnUseInHand); - SubscribeLocalEvent(OnAfterInteractUsing); - SubscribeLocalEvent(OnExamined); - SubscribeLocalEvent(OnDestruction); - SubscribeLocalEvent(OnDamage); - SubscribeLocalEvent(OnBreak); - SubscribeLocalEvent(OnMailEmagged); - } - - public override void Update(float frameTime) - { - base.Update(frameTime); - foreach (var mailTeleporter in EntityQuery()) - { - if (TryComp(mailTeleporter.Owner, out var power) && !power.Powered) - return; - - mailTeleporter.Accumulator += frameTime; - - if (mailTeleporter.Accumulator < mailTeleporter.TeleportInterval.TotalSeconds) - continue; - - mailTeleporter.Accumulator -= (float) mailTeleporter.TeleportInterval.TotalSeconds; - - SpawnMail(mailTeleporter.Owner, mailTeleporter); - } - } - - /// - /// Dynamically add the MailReceiver component to appropriate entities. - /// - private void OnSpawnPlayer(PlayerSpawningEvent args) - { - if (args.SpawnResult == null || - args.Job == null || - args.Station is not {} station) - { - return; - } - - if (!HasComp(station)) - return; - - AddComp(args.SpawnResult.Value); - } - - private void OnRemove(EntityUid uid, MailComponent component, ComponentRemove args) - { - // Make sure the priority timer doesn't run. - if (component.priorityCancelToken != null) - component.priorityCancelToken.Cancel(); - } - - /// - /// Try to open the mail. - /// - private void OnUseInHand(EntityUid uid, MailComponent component, UseInHandEvent args) - { - if (!component.IsEnabled) - return; - if (component.IsLocked) - { - _popupSystem.PopupEntity(Loc.GetString("mail-locked"), uid, args.User); - return; - } - OpenMail(uid, component, args.User); - } - - /// - /// Handle logic similar between a normal mail unlock and an emag - /// frying out the lock. - /// - private void UnlockMail(EntityUid uid, MailComponent component) - { - component.IsLocked = false; - UpdateAntiTamperVisuals(uid, false); - - if (component.IsPriority) - { - // This is a successful delivery. Keep the failure timer from triggering. - if (component.priorityCancelToken != null) - component.priorityCancelToken.Cancel(); - - // The priority tape is visually considered to be a part of the - // anti-tamper lock, so remove that too. - _appearanceSystem.SetData(uid, MailVisuals.IsPriority, false); - - // The examination code depends on this being false to not show - // the priority tape description anymore. - component.IsPriority = false; - } - } - - /// - /// Check the ID against the mail's lock - /// - private void OnAfterInteractUsing(EntityUid uid, MailComponent component, AfterInteractUsingEvent args) - { - if (!args.CanReach || !component.IsLocked) - return; - - if (!TryComp(uid, out var access)) - return; - - IdCardComponent? idCard = null; // We need an ID card. - - if (HasComp(args.Used)) /// Can we find it in a PDA if the user is using that? - { - _idCardSystem.TryGetIdCard(args.Used, out var pdaID); - idCard = pdaID; - } - - if (HasComp(args.Used)) /// Or are they using an id card directly? - idCard = Comp(args.Used); - - if (idCard == null) /// Return if we still haven't found an id card. - return; - - if (!HasComp(uid)) - { - if (idCard.FullName != component.Recipient || idCard.JobTitle != component.RecipientJob) - { - _popupSystem.PopupEntity(Loc.GetString("mail-recipient-mismatch"), uid, args.User); - return; - } - - if (!_accessSystem.IsAllowed(uid, args.User)) - { - _popupSystem.PopupEntity(Loc.GetString("mail-invalid-access"), uid, args.User); - return; - } - } - - UnlockMail(uid, component); - - if (!component.IsProfitable) - { - _popupSystem.PopupEntity(Loc.GetString("mail-unlocked"), uid, args.User); - return; - } - - _popupSystem.PopupEntity(Loc.GetString("mail-unlocked-reward", ("bounty", component.Bounty)), uid, args.User); - - component.IsProfitable = false; - - var query = EntityQueryEnumerator(); - while (query.MoveNext(out var station, out var account)) - { - if (_stationSystem.GetOwningStation(uid) != station) - continue; - - _cargoSystem.UpdateBankAccount(station, account, component.Bounty); - return; - } - } - - private void OnExamined(EntityUid uid, MailComponent component, ExaminedEvent args) - { - if (!args.IsInDetailsRange) - { - args.PushMarkup(Loc.GetString("mail-desc-far")); - return; - } - - args.PushMarkup(Loc.GetString("mail-desc-close", ("name", component.Recipient), ("job", component.RecipientJob))); - - if (component.IsFragile) - args.PushMarkup(Loc.GetString("mail-desc-fragile")); - - if (component.IsPriority) - { - if (component.IsProfitable) - args.PushMarkup(Loc.GetString("mail-desc-priority")); - else - args.PushMarkup(Loc.GetString("mail-desc-priority-inactive")); - } - } - - /// - /// Penalize a station for a failed delivery. - /// - /// - /// This will mark a parcel as no longer being profitable, which will - /// prevent multiple failures on different conditions for the same - /// delivery. - /// - /// The standard penalization is breaking the anti-tamper lock, - /// but this allows a delivery to fail for other reasons too - /// while having a generic function to handle different messages. - /// - public void PenalizeStationFailedDelivery(EntityUid uid, MailComponent component, string localizationString) - { - if (!component.IsProfitable) - return; - - _chatSystem.TrySendInGameICMessage(uid, Loc.GetString(localizationString, ("credits", component.Penalty)), InGameICChatType.Speak, false); - _audioSystem.PlayPvs(component.PenaltySound, uid); - - component.IsProfitable = false; - - if (component.IsPriority) - _appearanceSystem.SetData(uid, MailVisuals.IsPriorityInactive, true); - - var query = EntityQueryEnumerator(); - while (query.MoveNext(out var station, out var account)) - { - if (_stationSystem.GetOwningStation(uid) != station) - continue; - - _cargoSystem.UpdateBankAccount(station, account, component.Penalty); - return; - } - } - - private void OnDestruction(EntityUid uid, MailComponent component, DestructionEventArgs args) - { - if (component.IsLocked) - PenalizeStationFailedDelivery(uid, component, "mail-penalty-lock"); - - if (component.IsEnabled) - OpenMail(uid, component); - - UpdateAntiTamperVisuals(uid, false); - } - - private void OnDamage(EntityUid uid, MailComponent component, DamageChangedEvent args) - { - if (args.DamageDelta == null) - return; - - if (!_containerSystem.TryGetContainer(uid, "contents", out var contents)) - return; - - // Transfer damage to the contents. - // This should be a general-purpose feature for all containers in the future. - foreach (var entity in contents.ContainedEntities.ToArray()) - { - _damageableSystem.TryChangeDamage(entity, args.DamageDelta); - } - } - - private void OnBreak(EntityUid uid, MailComponent component, BreakageEventArgs args) - { - _appearanceSystem.SetData(uid, MailVisuals.IsBroken, true); - - if (component.IsFragile) - PenalizeStationFailedDelivery(uid, component, "mail-penalty-fragile"); - } - - private void OnMailEmagged(EntityUid uid, MailComponent component, ref GotEmaggedEvent args) - { - if (!component.IsLocked) - return; - - UnlockMail(uid, component); - - _popupSystem.PopupEntity(Loc.GetString("mail-unlocked-by-emag"), uid, args.UserUid); - - _audioSystem.PlayPvs(component.EmagSound, uid, AudioParams.Default.WithVolume(4)); - component.IsProfitable = false; - args.Handled = true; - } - - /// - /// Returns true if the given entity is considered fragile for delivery. - /// - public bool IsEntityFragile(EntityUid uid, int fragileDamageThreshold) - { - // It takes damage on falling. - if (HasComp(uid)) - return true; - - // It can be spilled easily and has something to spill. - if (HasComp(uid) - && TryComp(uid, out var openable) - && !_openable.IsClosed(uid, null, openable) - && _solutionContainerSystem.PercentFull(uid) > 0) - return true; - - // It might be made of non-reinforced glass. - if (TryComp(uid, out DamageableComponent? damageableComponent) - && damageableComponent.DamageModifierSetId == "Glass") - return true; - - // Fallback: It breaks or is destroyed in less than a damage - // threshold dictated by the teleporter. - if (TryComp(uid, out DestructibleComponent? destructibleComp)) - { - foreach (var threshold in destructibleComp.Thresholds) - { - if (threshold.Trigger is DamageTrigger trigger - && trigger.Damage < fragileDamageThreshold) - { - foreach (var behavior in threshold.Behaviors) - { - if (behavior is DoActsBehavior doActs) - { - if (doActs.Acts.HasFlag(ThresholdActs.Breakage) - || doActs.Acts.HasFlag(ThresholdActs.Destruction)) - { - return true; - } - } - } - } - } - } - - return false; - } - - public bool TryMatchJobTitleToDepartment(string jobTitle, [NotNullWhen(true)] out string? jobDepartment) - { - foreach (var department in _prototypeManager.EnumeratePrototypes()) - { - foreach (var role in department.Roles) - { - if (_prototypeManager.TryIndex(role, out JobPrototype? _jobPrototype) - && _jobPrototype.LocalizedName == jobTitle) - { - jobDepartment = department.ID; - return true; - } - } - } - - jobDepartment = null; - return false; - } - - public bool TryMatchJobTitleToPrototype(string jobTitle, [NotNullWhen(true)] out JobPrototype? jobPrototype) - { - foreach (var job in _prototypeManager.EnumeratePrototypes()) - { - if (job.LocalizedName == jobTitle) - { - jobPrototype = job; - return true; - } - } - - jobPrototype = null; - return false; - } - - /// - /// Handle all the gritty details particular to a new mail entity. - /// - /// - /// This is separate mostly so the unit tests can get to it. - /// - public void SetupMail(EntityUid uid, MailTeleporterComponent component, MailRecipient recipient) - { - var mailComp = EnsureComp(uid); - - var container = _containerSystem.EnsureContainer(uid, "contents"); - foreach (var item in EntitySpawnCollection.GetSpawns(mailComp.Contents, _random)) - { - var entity = EntityManager.SpawnEntity(item, Transform(uid).Coordinates); - if (!_containerSystem.Insert(entity, container)) - { - _sawmill.Error($"Can't insert {ToPrettyString(entity)} into new mail delivery {ToPrettyString(uid)}! Deleting it."); - QueueDel(entity); - } - else if (!mailComp.IsFragile && IsEntityFragile(entity, component.FragileDamageThreshold)) - { - mailComp.IsFragile = true; - } - } - - if (_random.Prob(component.PriorityChance)) - mailComp.IsPriority = true; - - // This needs to override both the random probability and the - // entity prototype, so this is fine. - if (!recipient.MayReceivePriorityMail) - mailComp.IsPriority = false; - - mailComp.RecipientJob = recipient.Job; - mailComp.Recipient = recipient.Name; - - if (mailComp.IsFragile) - { - mailComp.Bounty += component.FragileBonus; - mailComp.Penalty += component.FragileMalus; - _appearanceSystem.SetData(uid, MailVisuals.IsFragile, true); - } - - if (mailComp.IsPriority) - { - mailComp.Bounty += component.PriorityBonus; - mailComp.Penalty += component.PriorityMalus; - _appearanceSystem.SetData(uid, MailVisuals.IsPriority, true); - - mailComp.priorityCancelToken = new CancellationTokenSource(); - - Timer.Spawn((int) component.priorityDuration.TotalMilliseconds, - () => PenalizeStationFailedDelivery(uid, mailComp, "mail-penalty-expired"), - mailComp.priorityCancelToken.Token); - } - - _appearanceSystem.SetData(uid, MailVisuals.JobIcon, recipient.JobIcon); - - _metaDataSystem.SetEntityName(uid, Loc.GetString("mail-item-name-addressed", - ("recipient", recipient.Name))); - - var accessReader = EnsureComp(uid); - accessReader.AccessLists.Add(recipient.AccessTags); - } - - /// - /// Return the parcels waiting for delivery. - /// - /// The mail teleporter to check. - public List GetUndeliveredParcels(EntityUid uid) - { - // An alternative solution would be to keep a list of the unopened - // parcels spawned by the teleporter and see if they're not carried - // by someone, but this is simple, and simple is good. - List undeliveredParcels = new(); - foreach (var entityInTile in TurfHelpers.GetEntitiesInTile(Transform(uid).Coordinates, LookupFlags.Dynamic | LookupFlags.Sundries)) - { - if (HasComp(entityInTile)) - undeliveredParcels.Add(entityInTile); - } - return undeliveredParcels; - } - - /// - /// Return how many parcels are waiting for delivery. - /// - /// The mail teleporter to check. - public uint GetUndeliveredParcelCount(EntityUid uid) - { - return (uint) GetUndeliveredParcels(uid).Count(); - } - - /// - /// Try to match a mail receiver to a mail teleporter. - /// - public bool TryGetMailTeleporterForReceiver(MailReceiverComponent receiver, [NotNullWhen(true)] out MailTeleporterComponent? teleporterComponent) - { - foreach (var mailTeleporter in EntityQuery()) - { - if (_stationSystem.GetOwningStation(receiver.Owner) == _stationSystem.GetOwningStation(mailTeleporter.Owner)) - { - teleporterComponent = mailTeleporter; - return true; - } - } - - teleporterComponent = null; - return false; - } - - /// - /// Try to construct a recipient struct for a mail parcel based on a receiver. - /// - public bool TryGetMailRecipientForReceiver(MailReceiverComponent receiver, [NotNullWhen(true)] out MailRecipient? recipient) - { - // Because of the way this works, people are not considered - // candidates for mail if there is no valid PDA or ID in their slot - // or active hand. A better future solution might be checking the - // station records, possibly cross-referenced with the medical crew - // scanner to look for living recipients. TODO - - if (_idCardSystem.TryFindIdCard(receiver.Owner, out var idCard) - && TryComp(idCard.Owner, out var access) - && idCard.Comp.FullName != null - && idCard.Comp.JobTitle != null) - { - var accessTags = access.Tags; - - var mayReceivePriorityMail = !(_mindSystem.GetMind(receiver.Owner) == null); - - recipient = new MailRecipient(idCard.Comp.FullName, - idCard.Comp.JobTitle, - idCard.Comp.JobIcon, - accessTags, - mayReceivePriorityMail); - - return true; - } - - recipient = null; - return false; - } - - /// - /// Get the list of valid mail recipients for a mail teleporter. - /// - public List GetMailRecipientCandidates(EntityUid uid) - { - List candidateList = new(); - - foreach (var receiver in EntityQuery()) - { - if (_stationSystem.GetOwningStation(receiver.Owner) != _stationSystem.GetOwningStation(uid)) - continue; - - if (TryGetMailRecipientForReceiver(receiver, out MailRecipient? recipient)) - candidateList.Add(recipient.Value); - } - - return candidateList; - } - - /// - /// Handle the spawning of all the mail for a mail teleporter. - /// - public void SpawnMail(EntityUid uid, MailTeleporterComponent? component = null) - { - if (!Resolve(uid, ref component)) - { - _sawmill.Error($"Tried to SpawnMail on {ToPrettyString(uid)} without a valid MailTeleporterComponent!"); - return; - } - - if (GetUndeliveredParcelCount(uid) >= component.MaximumUndeliveredParcels) - return; - - var candidateList = GetMailRecipientCandidates(uid); - - if (candidateList.Count <= 0) - { - _sawmill.Error("List of mail candidates was empty!"); - return; - } - - if (!_prototypeManager.TryIndex(component.MailPool, out var pool)) - { - _sawmill.Error($"Can't index {ToPrettyString(uid)}'s MailPool {component.MailPool}!"); - return; - } - - for (int i = 0; - i < component.MinimumDeliveriesPerTeleport + candidateList.Count / component.CandidatesPerDelivery; - i++) - { - var candidate = _random.Pick(candidateList); - var possibleParcels = new Dictionary(pool.Everyone); - - if (TryMatchJobTitleToPrototype(candidate.Job, out JobPrototype? jobPrototype) - && pool.Jobs.TryGetValue(jobPrototype.ID, out Dictionary? jobParcels)) - { - possibleParcels = possibleParcels.Union(jobParcels) - .GroupBy(g => g.Key) - .ToDictionary(pair => pair.Key, pair => pair.First().Value); - } - - if (TryMatchJobTitleToDepartment(candidate.Job, out string? department) - && pool.Departments.TryGetValue(department, out Dictionary? departmentParcels)) - { - possibleParcels = possibleParcels.Union(departmentParcels) - .GroupBy(g => g.Key) - .ToDictionary(pair => pair.Key, pair => pair.First().Value); - } - - var accumulated = 0f; - var randomPoint = _random.NextFloat(possibleParcels.Values.Sum()); - string? chosenParcel = null; - foreach (var (key, weight) in possibleParcels) - { - accumulated += weight; - if (accumulated >= randomPoint) - { - chosenParcel = key; - break; - } - } - - if (chosenParcel == null) - { - _sawmill.Error($"MailSystem wasn't able to find a deliverable parcel for {candidate.Name}, {candidate.Job}!"); - return; - } - - var mail = EntityManager.SpawnEntity(chosenParcel, Transform(uid).Coordinates); - SetupMail(mail, component, candidate); - } - - if (_containerSystem.TryGetContainer(uid, "queued", out var queued)) - _containerSystem.EmptyContainer(queued); - - _audioSystem.PlayPvs(component.TeleportSound, uid); - } - - public void OpenMail(EntityUid uid, MailComponent? component = null, EntityUid? user = null) - { - if (!Resolve(uid, ref component)) - return; - - _audioSystem.PlayPvs(component.OpenSound, uid); - - if (user != null) - _handsSystem.TryDrop((EntityUid) user); - - if (!_containerSystem.TryGetContainer(uid, "contents", out var contents)) - { - // I silenced this error because it fails non deterministically in tests and doesn't seem to effect anything else. - // _sawmill.Error($"Mail {ToPrettyString(uid)} was missing contents container!"); - return; - } - - foreach (var entity in contents.ContainedEntities.ToArray()) - { - _handsSystem.PickupOrDrop(user, entity); - } - - _tagSystem.AddTag(uid, "Trash"); - _tagSystem.AddTag(uid, "Recyclable"); - component.IsEnabled = false; - UpdateMailTrashState(uid, true); - } - - private void UpdateAntiTamperVisuals(EntityUid uid, bool isLocked) - { - _appearanceSystem.SetData(uid, MailVisuals.IsLocked, isLocked); - } - - private void UpdateMailTrashState(EntityUid uid, bool isTrash) - { - _appearanceSystem.SetData(uid, MailVisuals.IsTrash, isTrash); - } - } - - public struct MailRecipient( - string name, - string job, - string jobIcon, - HashSet> accessTags, - bool mayReceivePriorityMail) - { - public string Name = name; - public string Job = job; - public string JobIcon = jobIcon; - public HashSet> AccessTags = accessTags; - public bool MayReceivePriorityMail = mayReceivePriorityMail; - } -} diff --git a/Content.Server/Nyanotrasen/Objectives/Components/BecomePsionicConditionComponent.cs b/Content.Server/Nyanotrasen/Objectives/Components/BecomePsionicConditionComponent.cs deleted file mode 100644 index 3b677bab2d..0000000000 --- a/Content.Server/Nyanotrasen/Objectives/Components/BecomePsionicConditionComponent.cs +++ /dev/null @@ -1,11 +0,0 @@ -using Content.Server.Objectives.Systems; - -namespace Content.Server.Objectives.Components; - -/// -/// Requires that the player dies to be complete. -/// -[RegisterComponent, Access(typeof(BecomePsionicConditionSystem))] -public sealed partial class BecomePsionicConditionComponent : Component -{ -} \ No newline at end of file diff --git a/Content.Server/Nyanotrasen/Objectives/Systems/BecomePsionicConditionSystem.cs b/Content.Server/Nyanotrasen/Objectives/Systems/BecomePsionicConditionSystem.cs deleted file mode 100644 index d090c320a4..0000000000 --- a/Content.Server/Nyanotrasen/Objectives/Systems/BecomePsionicConditionSystem.cs +++ /dev/null @@ -1,32 +0,0 @@ -using Content.Shared.Abilities.Psionics; -using Content.Server.Objectives.Components; -using Content.Shared.Mind; -using Content.Shared.Objectives.Components; - -namespace Content.Server.Objectives.Systems -{ - public sealed class BecomePsionicConditionSystem : EntitySystem - { - private EntityQuery _metaQuery; - - public override void Initialize() - { - base.Initialize(); - - SubscribeLocalEvent(OnGetProgress); - } - - private void OnGetProgress(EntityUid uid, BecomePsionicConditionComponent comp, ref ObjectiveGetProgressEvent args) - { - args.Progress = GetProgress(args.Mind); - } - - private float GetProgress(MindComponent mind) - { - var entMan = IoCManager.Resolve(); - if (HasComp(mind.CurrentEntity)) - return 1; - return 0; - } - } -} diff --git a/Content.Server/Nyanotrasen/ReverseEngineering/ReverseEngineeringSystem.cs b/Content.Server/Nyanotrasen/ReverseEngineering/ReverseEngineeringSystem.cs index 85fa160d8e..88da3093d7 100644 --- a/Content.Server/Nyanotrasen/ReverseEngineering/ReverseEngineeringSystem.cs +++ b/Content.Server/Nyanotrasen/ReverseEngineering/ReverseEngineeringSystem.cs @@ -187,22 +187,18 @@ private void UpdateUserInterface(EntityUid uid, ReverseEngineeringMachineCompone if (!Resolve(uid, ref component)) return; - if (!_ui.TryGetUi(uid, ReverseEngineeringMachineUiKey.Key, out var bui)) - return; - EntityUid? item = component.CurrentItem; if (component.CachedMessage == null) component.CachedMessage = GetReverseEngineeringScanMessage(component); - var totalTime = TimeSpan.Zero; var scanning = TryComp(uid, out var active); - var canScan = (item != null && !scanning); + var canScan = item != null && !scanning; var remaining = active != null ? _timing.CurTime - active.StartTime : TimeSpan.Zero; EntityManager.TryGetNetEntity(item, out var netItem); var state = new ReverseEngineeringMachineScanUpdateState(netItem, canScan, component.CachedMessage, scanning, component.SafetyOn, component.AutoScan, component.Progress, remaining, component.AnalysisDuration); - _ui.SetUiState(bui, state); + _ui.SetUiState(uid, ReverseEngineeringMachineUiKey.Key, state); } private ReverseEngineeringTickResult Roll(ReverseEngineeringMachineComponent component, out int actualRoll) diff --git a/Content.Server/Objectives/Components/CodeConditionSystem.cs b/Content.Server/Objectives/Components/CodeConditionSystem.cs new file mode 100644 index 0000000000..581098c3f7 --- /dev/null +++ b/Content.Server/Objectives/Components/CodeConditionSystem.cs @@ -0,0 +1,17 @@ +using Content.Server.Objectives.Systems; + +namespace Content.Server.Objectives.Components; + +/// +/// An objective that is set to complete by code in another system. +/// Use to check and set this. +/// +[RegisterComponent, Access(typeof(CodeConditionSystem))] +public sealed partial class CodeConditionComponent : Component +{ + /// + /// Whether the objective is complete or not. + /// + [DataField] + public bool Completed; +} diff --git a/Content.Server/Objectives/Components/SpiderChargeConditionComponent.cs b/Content.Server/Objectives/Components/SpiderChargeConditionComponent.cs index 368c9f27ed..9983b35969 100644 --- a/Content.Server/Objectives/Components/SpiderChargeConditionComponent.cs +++ b/Content.Server/Objectives/Components/SpiderChargeConditionComponent.cs @@ -9,9 +9,6 @@ namespace Content.Server.Objectives.Components; [RegisterComponent, Access(typeof(NinjaConditionsSystem), typeof(SpiderChargeSystem), typeof(SpaceNinjaSystem))] public sealed partial class SpiderChargeConditionComponent : Component { - [DataField, ViewVariables(VVAccess.ReadWrite)] - public bool Detonated; - /// /// Warp point that the spider charge has to target /// diff --git a/Content.Server/Objectives/Components/TerminatorTargetOverrideComponent.cs b/Content.Server/Objectives/Components/TerminatorTargetOverrideComponent.cs deleted file mode 100644 index c66ff55f05..0000000000 --- a/Content.Server/Objectives/Components/TerminatorTargetOverrideComponent.cs +++ /dev/null @@ -1,12 +0,0 @@ -using Content.Server.Objectives.Systems; - -namespace Content.Server.Objectives.Components; - -/// -/// Sets this objective's target to the exterminator's target override, if it has one. -/// If not it will be random. -/// -[RegisterComponent, Access(typeof(TerminatorTargetOverrideSystem))] -public sealed partial class TerminatorTargetOverrideComponent : Component -{ -} diff --git a/Content.Server/Objectives/Components/TerrorConditionComponent.cs b/Content.Server/Objectives/Components/TerrorConditionComponent.cs deleted file mode 100644 index acd3218ad4..0000000000 --- a/Content.Server/Objectives/Components/TerrorConditionComponent.cs +++ /dev/null @@ -1,17 +0,0 @@ -using Content.Server.Objectives.Systems; -using Content.Shared.Ninja.Systems; - -namespace Content.Server.Objectives.Components; - -/// -/// Requires that the player is a ninja and has called in a threat. -/// -[RegisterComponent, Access(typeof(NinjaConditionsSystem), typeof(SharedSpaceNinjaSystem))] -public sealed partial class TerrorConditionComponent : Component -{ - /// - /// Whether the comms console has been hacked - /// - [DataField("calledInThreat"), ViewVariables(VVAccess.ReadWrite)] - public bool CalledInThreat; -} diff --git a/Content.Server/Objectives/Systems/CodeConditionSystem.cs b/Content.Server/Objectives/Systems/CodeConditionSystem.cs new file mode 100644 index 0000000000..7ba312f4bb --- /dev/null +++ b/Content.Server/Objectives/Systems/CodeConditionSystem.cs @@ -0,0 +1,76 @@ +using Content.Server.Objectives.Components; +using Content.Shared.Objectives.Components; +using Content.Shared.Mind; +using Content.Shared.Mind.Components; + +namespace Content.Server.Objectives.Systems; + +/// +/// Handles progress and provides API for systems to use. +/// +public sealed class CodeConditionSystem : EntitySystem +{ + [Dependency] private readonly SharedMindSystem _mind = default!; + + public override void Initialize() + { + base.Initialize(); + + SubscribeLocalEvent(OnGetProgress); + } + + private void OnGetProgress(Entity ent, ref ObjectiveGetProgressEvent args) + { + args.Progress = ent.Comp.Completed ? 1f : 0f; + } + + /// + /// Returns whether an objective is completed. + /// + public bool IsCompleted(Entity ent) + { + if (!Resolve(ent, ref ent.Comp)) + return false; + + return ent.Comp.Completed; + } + + /// + /// Returns true if a mob's objective with a certain prototype is completed. + /// + public bool IsCompleted(Entity mob, string prototype) + { + if (_mind.GetMind(mob, mob.Comp) is not {} mindId) + return false; + + if (!_mind.TryFindObjective(mindId, prototype, out var obj)) + return false; + + return IsCompleted(obj.Value); + } + + /// + /// Sets an objective's completed field. + /// + public void SetCompleted(Entity ent, bool completed = true) + { + if (!Resolve(ent, ref ent.Comp)) + return; + + ent.Comp.Completed = completed; + } + + /// + /// Sets a mob's objective to complete. + /// + public void SetCompleted(Entity mob, string prototype, bool completed = true) + { + if (_mind.GetMind(mob, mob.Comp) is not {} mindId) + return; + + if (!_mind.TryFindObjective(mindId, prototype, out var obj)) + return; + + SetCompleted(obj.Value, completed); + } +} diff --git a/Content.Server/Objectives/Systems/NinjaConditionsSystem.cs b/Content.Server/Objectives/Systems/NinjaConditionsSystem.cs index 888a365a5d..47c54b937a 100644 --- a/Content.Server/Objectives/Systems/NinjaConditionsSystem.cs +++ b/Content.Server/Objectives/Systems/NinjaConditionsSystem.cs @@ -23,11 +23,8 @@ public override void Initialize() SubscribeLocalEvent(OnSpiderChargeRequirementCheck); SubscribeLocalEvent(OnSpiderChargeAfterAssign); - SubscribeLocalEvent(OnSpiderChargeGetProgress); SubscribeLocalEvent(OnStealResearchGetProgress); - - SubscribeLocalEvent(OnTerrorGetProgress); } // doorjack @@ -88,11 +85,6 @@ private void OnSpiderChargeAfterAssign(EntityUid uid, SpiderChargeConditionCompo _metaData.SetEntityName(uid, title, args.Meta); } - private void OnSpiderChargeGetProgress(EntityUid uid, SpiderChargeConditionComponent comp, ref ObjectiveGetProgressEvent args) - { - args.Progress = comp.Detonated ? 1f : 0f; - } - // steal research private void OnStealResearchGetProgress(EntityUid uid, StealResearchConditionComponent comp, ref ObjectiveGetProgressEvent args) @@ -108,9 +100,4 @@ private float StealResearchProgress(StealResearchConditionComponent comp, int ta return MathF.Min(comp.DownloadedNodes.Count / (float) target, 1f); } - - private void OnTerrorGetProgress(EntityUid uid, TerrorConditionComponent comp, ref ObjectiveGetProgressEvent args) - { - args.Progress = comp.CalledInThreat ? 1f : 0f; - } } diff --git a/Content.Server/Objectives/Systems/TerminatorTargetOverrideSystem.cs b/Content.Server/Objectives/Systems/TerminatorTargetOverrideSystem.cs deleted file mode 100644 index 0a81c2810e..0000000000 --- a/Content.Server/Objectives/Systems/TerminatorTargetOverrideSystem.cs +++ /dev/null @@ -1,41 +0,0 @@ -using Content.Server.Objectives.Components; -using Content.Server.Terminator.Components; -using Content.Shared.Mind; -using Content.Shared.Objectives.Components; - -namespace Content.Server.Objectives.Systems; - -/// -/// Handles copying the exterminator's target override to this objective. -/// -public sealed class TerminatorTargetOverrideSystem : EntitySystem -{ - [Dependency] private readonly TargetObjectiveSystem _target = default!; - - public override void Initialize() - { - base.Initialize(); - - SubscribeLocalEvent(OnAssigned); - } - - private void OnAssigned(EntityUid uid, TerminatorTargetOverrideComponent comp, ref ObjectiveAssignedEvent args) - { - if (args.Mind.OwnedEntity == null) - { - args.Cancelled = true; - return; - } - - var user = args.Mind.OwnedEntity.Value; - if (!TryComp(user, out var terminator)) - { - args.Cancelled = true; - return; - } - - // this exterminator has a target override so set its objective target accordingly - if (terminator.Target != null) - _target.SetTarget(uid, terminator.Target.Value); - } -} diff --git a/Content.Server/PAI/PAISystem.cs b/Content.Server/PAI/PAISystem.cs index e9505b5e6f..091afb1557 100644 --- a/Content.Server/PAI/PAISystem.cs +++ b/Content.Server/PAI/PAISystem.cs @@ -102,13 +102,15 @@ public void PAITurningOff(EntityUid uid) { // Close the instrument interface if it was open // before closing - if (HasComp(uid) && TryComp(uid, out var actor)) + if (HasComp(uid)) { - _instrumentSystem.ToggleInstrumentUi(uid, actor.PlayerSession); + _instrumentSystem.ToggleInstrumentUi(uid, uid); } // Stop instrument - if (TryComp(uid, out var instrument)) _instrumentSystem.Clean(uid, instrument); + if (TryComp(uid, out var instrument)) + _instrumentSystem.Clean(uid, instrument); + if (TryComp(uid, out var metadata)) { var proto = metadata.EntityPrototype; diff --git a/Content.Server/PDA/PdaSystem.cs b/Content.Server/PDA/PdaSystem.cs index a343607196..d4934ee24e 100644 --- a/Content.Server/PDA/PdaSystem.cs +++ b/Content.Server/PDA/PdaSystem.cs @@ -4,7 +4,6 @@ using Content.Server.DeviceNetwork.Components; using Content.Server.Instruments; using Content.Server.Light.EntitySystems; -using Content.Server.Light.Events; using Content.Server.PDA.Ringer; using Content.Server.Station.Systems; using Content.Server.Store.Components; @@ -12,7 +11,9 @@ using Content.Shared.Access.Components; using Content.Shared.CartridgeLoader; using Content.Shared.Chat; +using Content.Shared.Light; using Content.Shared.Light.Components; +using Content.Shared.Light.EntitySystems; using Content.Shared.PDA; using Robust.Server.Containers; using Robust.Server.GameObjects; @@ -41,6 +42,7 @@ public override void Initialize() SubscribeLocalEvent(OnLightToggle); // UI Events: + SubscribeLocalEvent(OnPdaOpen); SubscribeLocalEvent(OnUiMessage); SubscribeLocalEvent(OnUiMessage); SubscribeLocalEvent(OnUiMessage); @@ -145,7 +147,7 @@ public void UpdatePdaUi(EntityUid uid, PdaComponent? pda = null) if (!Resolve(uid, ref pda, false)) return; - if (!_ui.TryGetUi(uid, PdaUiKey.Key, out var ui)) + if (!_ui.HasUi(uid, PdaUiKey.Key)) return; var address = GetDeviceNetAddress(uid); @@ -182,7 +184,15 @@ public void UpdatePdaUi(EntityUid uid, PdaComponent? pda = null) hasInstrument, address); - _ui.SetUiState(ui, state); + _ui.SetUiState(uid, PdaUiKey.Key, state); + } + + private void OnPdaOpen(Entity ent, ref BoundUIOpenedEvent args) + { + if (!PdaUiKey.Key.Equals(args.UiKey)) + return; + + UpdatePdaUi(ent.Owner, ent.Comp); } private void OnUiMessage(EntityUid uid, PdaComponent pda, PdaRequestUpdateInterfaceMessage msg) @@ -198,8 +208,9 @@ private void OnUiMessage(EntityUid uid, PdaComponent pda, PdaToggleFlashlightMes if (!PdaUiKey.Key.Equals(msg.UiKey)) return; - if (TryComp(uid, out var flashlight)) - _unpoweredFlashlight.ToggleLight(uid, flashlight); + // TODO PREDICTION + // When moving this to shared, fill in the user field + _unpoweredFlashlight.TryToggleLight(uid, user: null); } private void OnUiMessage(EntityUid uid, PdaComponent pda, PdaShowRingtoneMessage msg) @@ -208,7 +219,7 @@ private void OnUiMessage(EntityUid uid, PdaComponent pda, PdaShowRingtoneMessage return; if (HasComp(uid)) - _ringer.ToggleRingerUI(uid, msg.Session); + _ringer.ToggleRingerUI(uid, msg.Actor); } private void OnUiMessage(EntityUid uid, PdaComponent pda, PdaShowMusicMessage msg) @@ -217,7 +228,7 @@ private void OnUiMessage(EntityUid uid, PdaComponent pda, PdaShowMusicMessage ms return; if (TryComp(uid, out var instrument)) - _instrument.ToggleInstrumentUi(uid, msg.Session, instrument); + _instrument.ToggleInstrumentUi(uid, msg.Actor, instrument); } private void OnUiMessage(EntityUid uid, PdaComponent pda, PdaShowUplinkMessage msg) @@ -227,7 +238,7 @@ private void OnUiMessage(EntityUid uid, PdaComponent pda, PdaShowUplinkMessage m // check if its locked again to prevent malicious clients opening locked uplinks if (TryComp(uid, out var store) && IsUnlocked(uid)) - _store.ToggleUi(msg.Session.AttachedEntity!.Value, uid, store); + _store.ToggleUi(msg.Actor, uid, store); } private void OnUiMessage(EntityUid uid, PdaComponent pda, PdaLockUplinkMessage msg) diff --git a/Content.Server/PDA/Ringer/RingerSystem.cs b/Content.Server/PDA/Ringer/RingerSystem.cs index f95725873a..a10544d696 100644 --- a/Content.Server/PDA/Ringer/RingerSystem.cs +++ b/Content.Server/PDA/Ringer/RingerSystem.cs @@ -81,7 +81,10 @@ private void UpdateRingerUserInterfaceDriver(EntityUid uid, RingerComponent ring private void OnSetRingtone(EntityUid uid, RingerComponent ringer, RingerSetRingtoneMessage args) { - ref var lastSetAt = ref CollectionsMarshal.GetValueRefOrAddDefault(_lastSetRingtoneAt, args.Session.UserId, out var exists); + if (!TryComp(args.Actor, out ActorComponent? actorComp)) + return; + + ref var lastSetAt = ref CollectionsMarshal.GetValueRefOrAddDefault(_lastSetRingtoneAt, actorComp.PlayerSession.UserId, out var exists); // Delay on the client is 0.333, 0.25 is still enough and gives some leeway in case of small time differences if (exists && lastSetAt > _gameTiming.CurTime - TimeSpan.FromMilliseconds(250)) @@ -111,7 +114,7 @@ private void OnSetUplinkRingtone(EntityUid uid, RingerUplinkComponent uplink, re // can't keep store open after locking it if (!uplink.Unlocked) - _ui.TryCloseAll(uid, StoreUiKey.Key); + _ui.CloseUi(uid, StoreUiKey.Key); // no saving the code to prevent meta click set on sus guys pda -> wewlad args.Handled = true; @@ -130,7 +133,7 @@ public void LockUplink(EntityUid uid, RingerUplinkComponent? uplink) return; uplink.Unlocked = false; - _ui.TryCloseAll(uid, StoreUiKey.Key); + _ui.CloseUi(uid, StoreUiKey.Key); } public void RandomizeRingtone(EntityUid uid, RingerComponent ringer, MapInitEvent args) @@ -181,14 +184,12 @@ private bool UpdateRingerRingtone(EntityUid uid, RingerComponent ringer, Note[] private void UpdateRingerUserInterface(EntityUid uid, RingerComponent ringer, bool isPlaying) { - if (_ui.TryGetUi(uid, RingerUiKey.Key, out var bui)) - _ui.SetUiState(bui, new RingerUpdateState(isPlaying, ringer.Ringtone)); + _ui.SetUiState(uid, RingerUiKey.Key, new RingerUpdateState(isPlaying, ringer.Ringtone)); } - public bool ToggleRingerUI(EntityUid uid, ICommonSession session) + public bool ToggleRingerUI(EntityUid uid, EntityUid actor) { - if (_ui.TryGetUi(uid, RingerUiKey.Key, out var bui)) - _ui.ToggleUi(bui, session); + _ui.TryToggleUi(uid, RingerUiKey.Key, actor); return true; } diff --git a/Content.Server/Paper/PaperComponent.cs b/Content.Server/Paper/PaperComponent.cs index 556a197fd4..6c96b67acb 100644 --- a/Content.Server/Paper/PaperComponent.cs +++ b/Content.Server/Paper/PaperComponent.cs @@ -3,7 +3,7 @@ namespace Content.Server.Paper; -[NetworkedComponent, RegisterComponent] +[RegisterComponent] public sealed partial class PaperComponent : SharedPaperComponent { public PaperAction Mode; diff --git a/Content.Server/Paper/PaperSystem.cs b/Content.Server/Paper/PaperSystem.cs index 27c94313b2..d9202341d5 100644 --- a/Content.Server/Paper/PaperSystem.cs +++ b/Content.Server/Paper/PaperSystem.cs @@ -67,11 +67,7 @@ private void OnInit(EntityUid uid, PaperComponent paperComp, ComponentInit args) private void BeforeUIOpen(EntityUid uid, PaperComponent paperComp, BeforeActivatableUIOpenEvent args) { paperComp.Mode = PaperAction.Read; - - if (!TryComp(args.User, out var actor)) - return; - - UpdateUserInterface(uid, paperComp, actor.PlayerSession); + UpdateUserInterface(uid, paperComp); } private void OnExamined(EntityUid uid, PaperComponent paperComp, ExaminedEvent args) @@ -108,12 +104,10 @@ private void OnInteractUsing(EntityUid uid, PaperComponent paperComp, InteractUs { var writeEvent = new PaperWriteEvent(uid, args.User); RaiseLocalEvent(args.Used, ref writeEvent); - if (!TryComp(args.User, out var actor)) - return; paperComp.Mode = PaperAction.Write; - _uiSystem.TryOpen(uid, PaperUiKey.Key, actor.PlayerSession); - UpdateUserInterface(uid, paperComp, actor.PlayerSession); + _uiSystem.OpenUi(uid, PaperUiKey.Key, args.User); + UpdateUserInterface(uid, paperComp); args.Handled = true; return; } @@ -157,9 +151,8 @@ private void OnInputTextMessage(EntityUid uid, PaperComponent paperComp, PaperIn if (TryComp(uid, out var meta)) _metaSystem.SetEntityDescription(uid, "", meta); - if (args.Session.AttachedEntity != null) - _adminLogger.Add(LogType.Chat, LogImpact.Low, - $"{ToPrettyString(args.Session.AttachedEntity.Value):player} has written on {ToPrettyString(uid):entity} the following text: {args.Text}"); + _adminLogger.Add(LogType.Chat, LogImpact.Low, + $"{ToPrettyString(args.Actor):player} has written on {ToPrettyString(uid):entity} the following text: {args.Text}"); _audio.PlayPvs(paperComp.Sound, uid); } @@ -213,13 +206,12 @@ public void SetContent(EntityUid uid, string content, PaperComponent? paperComp _appearance.SetData(uid, PaperVisuals.Status, status, appearance); } - public void UpdateUserInterface(EntityUid uid, PaperComponent? paperComp = null, ICommonSession? session = null) + public void UpdateUserInterface(EntityUid uid, PaperComponent? paperComp = null) { if (!Resolve(uid, ref paperComp)) return; - if (_uiSystem.TryGetUi(uid, PaperUiKey.Key, out var bui)) - _uiSystem.SetUiState(bui, new PaperBoundUserInterfaceState(paperComp.Content, paperComp.StampedBy, paperComp.Mode), session); + _uiSystem.SetUiState(uid, PaperUiKey.Key, new PaperBoundUserInterfaceState(paperComp.Content, paperComp.StampedBy, paperComp.Mode)); } } diff --git a/Content.Server/Parallax/BiomeSystem.cs b/Content.Server/Parallax/BiomeSystem.cs index 83cf9b9cb2..0543518dcc 100644 --- a/Content.Server/Parallax/BiomeSystem.cs +++ b/Content.Server/Parallax/BiomeSystem.cs @@ -973,7 +973,7 @@ private void UnloadChunk(BiomeComponent component, EntityUid gridUid, MapGridCom /// /// Creates a simple planet setup for a map. /// - public void EnsurePlanet(EntityUid mapUid, BiomeTemplatePrototype biomeTemplate, int? seed = null, MetaDataComponent? metadata = null) + public void EnsurePlanet(EntityUid mapUid, BiomeTemplatePrototype biomeTemplate, int? seed = null, MetaDataComponent? metadata = null, Color? mapLight = null) { if (!Resolve(mapUid, ref metadata)) return; @@ -998,7 +998,7 @@ public void EnsurePlanet(EntityUid mapUid, BiomeTemplatePrototype biomeTemplate, // Lava: #A34931 var light = EnsureComp(mapUid); - light.AmbientLightColor = Color.FromHex("#D8B059"); + light.AmbientLightColor = mapLight ?? Color.FromHex("#D8B059"); Dirty(mapUid, light, metadata); var moles = new float[Atmospherics.AdjustedNumberOfGases]; diff --git a/Content.Server/ParticleAccelerator/EntitySystems/ParticleAcceleratorSystem.ControlBox.cs b/Content.Server/ParticleAccelerator/EntitySystems/ParticleAcceleratorSystem.ControlBox.cs index 5d373652a9..f3cff9f2e7 100644 --- a/Content.Server/ParticleAccelerator/EntitySystems/ParticleAcceleratorSystem.ControlBox.cs +++ b/Content.Server/ParticleAccelerator/EntitySystems/ParticleAcceleratorSystem.ControlBox.cs @@ -67,7 +67,7 @@ public void Fire(EntityUid uid, TimeSpan curTime, ParticleAcceleratorControlBoxC FireEmitter(comp.StarboardEmitter!.Value, strength); } - public void SwitchOn(EntityUid uid, ICommonSession? user = null, ParticleAcceleratorControlBoxComponent? comp = null) + public void SwitchOn(EntityUid uid, EntityUid? user = null, ParticleAcceleratorControlBoxComponent? comp = null) { if (!Resolve(uid, ref comp)) return; @@ -77,7 +77,7 @@ public void SwitchOn(EntityUid uid, ICommonSession? user = null, ParticleAcceler if (comp.Enabled || !comp.CanBeEnabled) return; - if (user?.AttachedEntity is { } player) + if (user is { } player) _adminLogger.Add(LogType.Action, LogImpact.Low, $"{ToPrettyString(player):player} has turned {ToPrettyString(uid)} on"); comp.Enabled = true; @@ -90,14 +90,14 @@ public void SwitchOn(EntityUid uid, ICommonSession? user = null, ParticleAcceler UpdateUI(uid, comp); } - public void SwitchOff(EntityUid uid, ICommonSession? user = null, ParticleAcceleratorControlBoxComponent? comp = null) + public void SwitchOff(EntityUid uid, EntityUid? user = null, ParticleAcceleratorControlBoxComponent? comp = null) { if (!Resolve(uid, ref comp)) return; if (!comp.Enabled) return; - if (user?.AttachedEntity is { } player) + if (user is { } player) _adminLogger.Add(LogType.Action, LogImpact.Low, $"{ToPrettyString(player):player} has turned {ToPrettyString(uid)} off"); comp.Enabled = false; @@ -138,7 +138,7 @@ public void PowerOff(EntityUid uid, ParticleAcceleratorControlBoxComponent? comp UpdateUI(uid, comp); } - public void SetStrength(EntityUid uid, ParticleAcceleratorPowerState strength, ICommonSession? user = null, ParticleAcceleratorControlBoxComponent? comp = null) + public void SetStrength(EntityUid uid, ParticleAcceleratorPowerState strength, EntityUid? user = null, ParticleAcceleratorControlBoxComponent? comp = null) { if (!Resolve(uid, ref comp)) return; @@ -154,7 +154,7 @@ public void SetStrength(EntityUid uid, ParticleAcceleratorPowerState strength, I if (strength == comp.SelectedStrength) return; - if (user?.AttachedEntity is { } player) + if (user is { } player) { var impact = strength switch { @@ -235,7 +235,8 @@ private void UpdateUI(EntityUid uid, ParticleAcceleratorControlBoxComponent? com { if (!Resolve(uid, ref comp)) return; - if (!_uiSystem.TryGetUi(uid, ParticleAcceleratorControlBoxUiKey.Key, out var bui)) + + if (!_uiSystem.HasUi(uid, ParticleAcceleratorControlBoxUiKey.Key)) return; var draw = 0f; @@ -247,7 +248,7 @@ private void UpdateUI(EntityUid uid, ParticleAcceleratorControlBoxComponent? com receive = powerConsumer.ReceivedPower; } - _uiSystem.SetUiState(bui, new ParticleAcceleratorUIState( + _uiSystem.SetUiState(uid, ParticleAcceleratorControlBoxUiKey.Key, new ParticleAcceleratorUIState( comp.Assembled, comp.Enabled, comp.SelectedStrength, @@ -346,7 +347,7 @@ private void OnControlBoxPowerChange(EntityUid uid, ParticleAcceleratorControlBo UpdateAppearance(uid, comp); if (!args.Powered) - _uiSystem.TryCloseAll(uid, ParticleAcceleratorControlBoxUiKey.Key); + _uiSystem.CloseUi(uid, ParticleAcceleratorControlBoxUiKey.Key); } private void OnUISetEnableMessage(EntityUid uid, ParticleAcceleratorControlBoxComponent comp, ParticleAcceleratorSetEnableMessage msg) @@ -361,10 +362,10 @@ private void OnUISetEnableMessage(EntityUid uid, ParticleAcceleratorControlBoxCo if (msg.Enabled) { if (comp.Assembled) - SwitchOn(uid, msg.Session, comp); + SwitchOn(uid, msg.Actor, comp); } else - SwitchOff(uid, msg.Session, comp); + SwitchOff(uid, msg.Actor, comp); UpdateUI(uid, comp); } @@ -378,7 +379,7 @@ private void OnUISetPowerMessage(EntityUid uid, ParticleAcceleratorControlBoxCom if (TryComp(uid, out var apcPower) && !apcPower.Powered) return; - SetStrength(uid, msg.State, msg.Session, comp); + SetStrength(uid, msg.State, msg.Actor, comp); UpdateUI(uid, comp); } @@ -392,7 +393,7 @@ private void OnUIRescanMessage(EntityUid uid, ParticleAcceleratorControlBoxCompo if (TryComp(uid, out var apcPower) && !apcPower.Powered) return; - RescanParts(uid, msg.Session, comp); + RescanParts(uid, msg.Actor, comp); UpdateUI(uid, comp); } diff --git a/Content.Server/ParticleAccelerator/EntitySystems/ParticleAcceleratorSystem.Parts.cs b/Content.Server/ParticleAccelerator/EntitySystems/ParticleAcceleratorSystem.Parts.cs index bdbc7b3f5b..99bb0d5cbd 100644 --- a/Content.Server/ParticleAccelerator/EntitySystems/ParticleAcceleratorSystem.Parts.cs +++ b/Content.Server/ParticleAccelerator/EntitySystems/ParticleAcceleratorSystem.Parts.cs @@ -18,7 +18,7 @@ private void InitializePartSystem() SubscribeLocalEvent(BodyTypeChanged); } - public void RescanParts(EntityUid uid, ICommonSession? user = null, ParticleAcceleratorControlBoxComponent? controller = null) + public void RescanParts(EntityUid uid, EntityUid? user = null, ParticleAcceleratorControlBoxComponent? controller = null) { if (!Resolve(uid, ref controller)) return; diff --git a/Content.Server/ParticleAccelerator/Wires/ParticleAcceleratorLimiterWireAction.cs b/Content.Server/ParticleAccelerator/Wires/ParticleAcceleratorLimiterWireAction.cs index 0cbd47c233..0645944a2a 100644 --- a/Content.Server/ParticleAccelerator/Wires/ParticleAcceleratorLimiterWireAction.cs +++ b/Content.Server/ParticleAccelerator/Wires/ParticleAcceleratorLimiterWireAction.cs @@ -48,8 +48,7 @@ public override bool Mend(EntityUid user, Wire wire, ParticleAcceleratorControlB // Yes, it's a feature that mending this wire WON'T WORK if the strength wire is also cut. // Since that blocks SetStrength(). var paSystem = EntityManager.System(); - var userSession = EntityManager.TryGetComponent(user, out var actor) ? actor.PlayerSession : null; - paSystem.SetStrength(wire.Owner, controller.MaxStrength, userSession, controller); + paSystem.SetStrength(wire.Owner, controller.MaxStrength, user, controller); return true; } diff --git a/Content.Server/ParticleAccelerator/Wires/ParticleAcceleratorStrengthWireAction.cs b/Content.Server/ParticleAccelerator/Wires/ParticleAcceleratorStrengthWireAction.cs index 65fa76ee41..1650960bd3 100644 --- a/Content.Server/ParticleAccelerator/Wires/ParticleAcceleratorStrengthWireAction.cs +++ b/Content.Server/ParticleAccelerator/Wires/ParticleAcceleratorStrengthWireAction.cs @@ -33,7 +33,6 @@ public override bool Mend(EntityUid user, Wire wire, ParticleAcceleratorControlB public override void Pulse(EntityUid user, Wire wire, ParticleAcceleratorControlBoxComponent controller) { var paSystem = EntityManager.System(); - var userSession = EntityManager.TryGetComponent(user, out var actor) ? actor.PlayerSession : null; - paSystem.SetStrength(wire.Owner, (ParticleAcceleratorPowerState) ((int) controller.SelectedStrength + 1), userSession, controller); + paSystem.SetStrength(wire.Owner, (ParticleAcceleratorPowerState) ((int) controller.SelectedStrength + 1), user, controller); } } diff --git a/Content.Server/ParticleAccelerator/Wires/ParticleAcceleratorToggleWireAction.cs b/Content.Server/ParticleAccelerator/Wires/ParticleAcceleratorToggleWireAction.cs index c43403edd4..40a15d2bc5 100644 --- a/Content.Server/ParticleAccelerator/Wires/ParticleAcceleratorToggleWireAction.cs +++ b/Content.Server/ParticleAccelerator/Wires/ParticleAcceleratorToggleWireAction.cs @@ -23,10 +23,9 @@ public sealed partial class ParticleAcceleratorPowerWireAction : ComponentWireAc public override bool Cut(EntityUid user, Wire wire, ParticleAcceleratorControlBoxComponent controller) { var paSystem = EntityManager.System(); - var userSession = EntityManager.TryGetComponent(user, out var actor) ? actor.PlayerSession : null; controller.CanBeEnabled = false; - paSystem.SwitchOff(wire.Owner, userSession, controller); + paSystem.SwitchOff(wire.Owner, user, controller); return true; } @@ -39,11 +38,10 @@ public override bool Mend(EntityUid user, Wire wire, ParticleAcceleratorControlB public override void Pulse(EntityUid user, Wire wire, ParticleAcceleratorControlBoxComponent controller) { var paSystem = EntityManager.System(); - var userSession = EntityManager.TryGetComponent(user, out var actor) ? actor.PlayerSession : null; if (controller.Enabled) - paSystem.SwitchOff(wire.Owner, userSession, controller); + paSystem.SwitchOff(wire.Owner, user, controller); else if (controller.Assembled) - paSystem.SwitchOn(wire.Owner, userSession, controller); + paSystem.SwitchOn(wire.Owner, user, controller); } } diff --git a/Content.Server/Pinpointer/NavMapSystem.cs b/Content.Server/Pinpointer/NavMapSystem.cs index aee8b90191..5881daa068 100644 --- a/Content.Server/Pinpointer/NavMapSystem.cs +++ b/Content.Server/Pinpointer/NavMapSystem.cs @@ -1,61 +1,65 @@ -using System.Diagnostics.CodeAnalysis; using Content.Server.Administration.Logs; +using Content.Server.Atmos.Components; +using Content.Server.Atmos.EntitySystems; using Content.Server.Station.Systems; using Content.Server.Warps; using Content.Shared.Database; using Content.Shared.Examine; using Content.Shared.Localizations; +using Content.Shared.Maps; using Content.Shared.Pinpointer; -using Content.Shared.Tag; using JetBrains.Annotations; -using Robust.Server.GameObjects; -using Robust.Shared.GameStates; using Robust.Shared.Map; using Robust.Shared.Map.Components; -using Robust.Shared.Physics; -using Robust.Shared.Physics.Components; +using Robust.Shared.Timing; +using System.Diagnostics.CodeAnalysis; namespace Content.Server.Pinpointer; /// /// Handles data to be used for in-grid map displays. /// -public sealed class NavMapSystem : SharedNavMapSystem +public sealed partial class NavMapSystem : SharedNavMapSystem { [Dependency] private readonly IAdminLogManager _adminLog = default!; [Dependency] private readonly SharedAppearanceSystem _appearance = default!; - [Dependency] private readonly TagSystem _tags = default!; - [Dependency] private readonly MapSystem _map = default!; + [Dependency] private readonly SharedMapSystem _mapSystem = default!; + [Dependency] private readonly SharedTransformSystem _transformSystem = default!; [Dependency] private readonly IMapManager _mapManager = default!; - [Dependency] private readonly TransformSystem _transform = default!; - - private EntityQuery _physicsQuery; - private EntityQuery _tagQuery; + [Dependency] private readonly IGameTiming _gameTiming = default!; + [Dependency] private readonly ITileDefinitionManager _tileDefManager = default!; public const float CloseDistance = 15f; public const float FarDistance = 30f; + private EntityQuery _airtightQuery; + private EntityQuery _gridQuery; + private EntityQuery _navQuery; + public override void Initialize() { base.Initialize(); - _physicsQuery = GetEntityQuery(); - _tagQuery = GetEntityQuery(); + var categories = Enum.GetNames(typeof(NavMapChunkType)).Length - 1; // -1 due to "Invalid" entry. + if (Categories != categories) + throw new Exception($"{nameof(Categories)} must be equal to the number of chunk types"); + + _airtightQuery = GetEntityQuery(); + _gridQuery = GetEntityQuery(); + _navQuery = GetEntityQuery(); - SubscribeLocalEvent(OnAnchorChange); - SubscribeLocalEvent(OnReAnchor); + // Initialization events SubscribeLocalEvent(OnStationInit); - SubscribeLocalEvent(OnNavMapStartup); - SubscribeLocalEvent(OnGetState); + + // Grid change events SubscribeLocalEvent(OnNavMapSplit); + SubscribeLocalEvent(OnTileChanged); + + SubscribeLocalEvent(OnAirtightChange); + // Beacon events SubscribeLocalEvent(OnNavMapBeaconMapInit); - SubscribeLocalEvent(OnNavMapBeaconStartup); SubscribeLocalEvent(OnNavMapBeaconAnchor); - - SubscribeLocalEvent(OnNavMapDoorStartup); - SubscribeLocalEvent(OnNavMapDoorAnchor); - SubscribeLocalEvent(OnConfigureMessage); SubscribeLocalEvent(OnConfigurableMapInit); SubscribeLocalEvent(OnConfigurableExamined); @@ -67,64 +71,137 @@ private void OnStationInit(StationGridAddedEvent ev) RefreshGrid(comp, Comp(ev.GridId)); } - private void OnNavMapBeaconMapInit(EntityUid uid, NavMapBeaconComponent component, MapInitEvent args) + #region: Grid change event handling + + private void OnNavMapSplit(ref GridSplitEvent args) { - if (component.DefaultText == null || component.Text != null) + if (!_navQuery.TryComp(args.Grid, out var comp)) return; - component.Text = Loc.GetString(component.DefaultText); - Dirty(uid, component); - RefreshNavGrid(uid); + foreach (var grid in args.NewGrids) + { + var newComp = EnsureComp(grid); + RefreshGrid(comp, newComp); + } + + RefreshGrid(comp, _gridQuery.GetComponent(args.Grid)); } - private void OnNavMapBeaconStartup(EntityUid uid, NavMapBeaconComponent component, ComponentStartup args) + private NavMapChunk EnsureChunk(NavMapComponent component, Vector2i origin) { - RefreshNavGrid(uid); + if (!component.Chunks.TryGetValue(origin, out var chunk)) + { + chunk = new(origin); + component.Chunks[origin] = chunk; + } + + return chunk; } - private void OnNavMapBeaconAnchor(EntityUid uid, NavMapBeaconComponent component, ref AnchorStateChangedEvent args) + private void OnTileChanged(ref TileChangedEvent ev) { - UpdateBeaconEnabledVisuals((uid, component)); - RefreshNavGrid(uid); + if (!ev.EmptyChanged || !_navQuery.TryComp(ev.NewTile.GridUid, out var navMap)) + return; + + var tile = ev.NewTile.GridIndices; + var chunkOrigin = SharedMapSystem.GetChunkIndices(tile, ChunkSize); + + var chunk = EnsureChunk(navMap, chunkOrigin); + + // This could be easily replaced in the future to accommodate diagonal tiles + var relative = SharedMapSystem.GetChunkRelative(tile, ChunkSize); + ref var tileData = ref chunk.TileData[GetTileIndex(relative)]; + + if (ev.NewTile.IsSpace(_tileDefManager)) + { + tileData = 0; + if (PruneEmpty((ev.NewTile.GridUid, navMap), chunk)) + return; + } + else + { + tileData = FloorMask; + } + + DirtyChunk((ev.NewTile.GridUid, navMap), chunk); } - private void OnNavMapDoorStartup(Entity ent, ref ComponentStartup args) + private void DirtyChunk(Entity entity, NavMapChunk chunk) { - RefreshNavGrid(ent); + if (chunk.LastUpdate == _gameTiming.CurTick) + return; + + chunk.LastUpdate = _gameTiming.CurTick; + Dirty(entity); } - private void OnNavMapDoorAnchor(Entity ent, ref AnchorStateChangedEvent args) + private void OnAirtightChange(ref AirtightChanged args) { - RefreshNavGrid(ent); + if (args.AirBlockedChanged) + return; + + var gridUid = args.Position.Grid; + + if (!_navQuery.TryComp(gridUid, out var navMap) || + !_gridQuery.TryComp(gridUid, out var mapGrid)) + { + return; + } + + var chunkOrigin = SharedMapSystem.GetChunkIndices(args.Position.Tile, ChunkSize); + var (newValue, chunk) = RefreshTileEntityContents(gridUid, navMap, mapGrid, chunkOrigin, args.Position.Tile, setFloor: false); + + if (newValue == 0 && PruneEmpty((gridUid, navMap), chunk)) + return; + + DirtyChunk((gridUid, navMap), chunk); } - private void OnConfigureMessage(Entity ent, ref NavMapBeaconConfigureBuiMessage args) + #endregion + + #region: Beacon event handling + + private void OnNavMapBeaconMapInit(EntityUid uid, NavMapBeaconComponent component, MapInitEvent args) { - if (args.Session.AttachedEntity is not { } user) + if (component.DefaultText == null || component.Text != null) return; - if (!TryComp(ent, out var navMap)) + component.Text = Loc.GetString(component.DefaultText); + Dirty(uid, component); + + UpdateNavMapBeaconData(uid, component); + } + + private void OnNavMapBeaconAnchor(EntityUid uid, NavMapBeaconComponent component, ref AnchorStateChangedEvent args) + { + UpdateBeaconEnabledVisuals((uid, component)); + UpdateNavMapBeaconData(uid, component); + } + + private void OnConfigureMessage(Entity ent, ref NavMapBeaconConfigureBuiMessage args) + { + if (!TryComp(ent, out var beacon)) return; - if (navMap.Text == args.Text && - navMap.Color == args.Color && - navMap.Enabled == args.Enabled) + if (beacon.Text == args.Text && + beacon.Color == args.Color && + beacon.Enabled == args.Enabled) return; _adminLog.Add(LogType.Action, LogImpact.Medium, - $"{ToPrettyString(user):player} configured NavMapBeacon \'{ToPrettyString(ent):entity}\' with text \'{args.Text}\', color {args.Color.ToHexNoAlpha()}, and {(args.Enabled ? "enabled" : "disabled")} it."); + $"{ToPrettyString(args.Actor):player} configured NavMapBeacon \'{ToPrettyString(ent):entity}\' with text \'{args.Text}\', color {args.Color.ToHexNoAlpha()}, and {(args.Enabled ? "enabled" : "disabled")} it."); if (TryComp(ent, out var warpPoint)) { warpPoint.Location = args.Text; } - navMap.Text = args.Text; - navMap.Color = args.Color; - navMap.Enabled = args.Enabled; - UpdateBeaconEnabledVisuals((ent, navMap)); - Dirty(ent, navMap); - RefreshNavGrid(ent); + beacon.Text = args.Text; + beacon.Color = args.Color; + beacon.Enabled = args.Enabled; + + UpdateBeaconEnabledVisuals((ent, beacon)); + UpdateNavMapBeaconData(ent, beacon); } private void OnConfigurableMapInit(Entity ent, ref MapInitEvent args) @@ -134,9 +211,7 @@ private void OnConfigurableMapInit(Entity ent // We set this on mapinit just in case the text was edited via VV or something. if (TryComp(ent, out var warpPoint)) - { warpPoint.Location = navMap.Text; - } UpdateBeaconEnabledVisuals((ent, navMap)); } @@ -152,231 +227,117 @@ private void OnConfigurableExamined(Entity en ("label", navMap.Text ?? string.Empty))); } - private void UpdateBeaconEnabledVisuals(Entity ent) - { - _appearance.SetData(ent, NavMapBeaconVisuals.Enabled, ent.Comp.Enabled && Transform(ent).Anchored); - } - - /// - /// Refreshes the grid for the corresponding beacon. - /// - /// - private void RefreshNavGrid(EntityUid uid) - { - var xform = Transform(uid); - - if (!TryComp(xform.GridUid, out var navMap)) - return; + #endregion - Dirty(xform.GridUid.Value, navMap); - } + #region: Grid functions - private bool CanBeacon(EntityUid uid, TransformComponent? xform = null) - { - if (!Resolve(uid, ref xform)) - return false; - - return xform.GridUid != null && xform.Anchored; - } - - private void OnNavMapStartup(EntityUid uid, NavMapComponent component, ComponentStartup args) - { - if (!TryComp(uid, out var grid)) - return; - - RefreshGrid(component, grid); - } - - private void OnNavMapSplit(ref GridSplitEvent args) - { - if (!TryComp(args.Grid, out NavMapComponent? comp)) - return; - - var gridQuery = GetEntityQuery(); - - foreach (var grid in args.NewGrids) - { - var newComp = EnsureComp(grid); - RefreshGrid(newComp, gridQuery.GetComponent(grid)); - } - - RefreshGrid(comp, gridQuery.GetComponent(args.Grid)); - } - - private void RefreshGrid(NavMapComponent component, MapGridComponent grid) + private void RefreshGrid(NavMapComponent component, MapGridComponent mapGrid) { + // Clear stale data component.Chunks.Clear(); + component.Beacons.Clear(); - var tiles = grid.GetAllTilesEnumerator(); + // Loop over all tiles + var tileRefs = _mapSystem.GetAllTiles(mapGrid.Owner, mapGrid); - while (tiles.MoveNext(out var tile)) + foreach (var tileRef in tileRefs) { - var chunkOrigin = SharedMapSystem.GetChunkIndices(tile.Value.GridIndices, ChunkSize); + var tile = tileRef.GridIndices; + var chunkOrigin = SharedMapSystem.GetChunkIndices(tile, ChunkSize); - if (!component.Chunks.TryGetValue(chunkOrigin, out var chunk)) - { - chunk = new NavMapChunk(chunkOrigin); - component.Chunks[chunkOrigin] = chunk; - } - - RefreshTile(grid, component, chunk, tile.Value.GridIndices); + var chunk = EnsureChunk(component, chunkOrigin); + chunk.LastUpdate = _gameTiming.CurTick; + RefreshTileEntityContents(mapGrid.Owner, component, mapGrid, chunkOrigin, tile, setFloor: true); } + + Dirty(mapGrid.Owner, component); } - private void OnGetState(EntityUid uid, NavMapComponent component, ref ComponentGetState args) + private (int NewVal, NavMapChunk Chunk) RefreshTileEntityContents(EntityUid uid, + NavMapComponent component, + MapGridComponent mapGrid, + Vector2i chunkOrigin, + Vector2i tile, + bool setFloor) { - if (!TryComp(uid, out var mapGrid)) - return; - - var data = new Dictionary(component.Chunks.Count); - foreach (var (index, chunk) in component.Chunks) - { - data.Add(index, chunk.TileData); - } + var relative = SharedMapSystem.GetChunkRelative(tile, ChunkSize); + var chunk = EnsureChunk(component, chunkOrigin); + ref var tileData = ref chunk.TileData[GetTileIndex(relative)]; - var beaconQuery = AllEntityQuery(); - var beacons = new List(); + // Clear all data except for floor bits + if (setFloor) + tileData = FloorMask; + else + tileData &= FloorMask; - while (beaconQuery.MoveNext(out var beaconUid, out var beacon, out var xform)) + var enumerator = _mapSystem.GetAnchoredEntitiesEnumerator(uid, mapGrid, tile); + while (enumerator.MoveNext(out var ent)) { - if (!beacon.Enabled || xform.GridUid != uid || !CanBeacon(beaconUid, xform)) + if (!_airtightQuery.TryComp(ent, out var airtight)) continue; - // TODO: Make warp points use metadata name instead. - string? name = beacon.Text; - - if (string.IsNullOrEmpty(name)) - { - if (TryComp(beaconUid, out var warpPoint) && warpPoint.Location != null) - { - name = warpPoint.Location; - } - else - { - name = MetaData(beaconUid).EntityName; - } - } - - beacons.Add(new NavMapBeacon(beacon.Color, name, xform.LocalPosition)); + var category = GetEntityType(ent.Value); + if (category == NavMapChunkType.Invalid) + continue; + + var directions = (int)airtight.AirBlockedDirection; + tileData |= directions << (int) category; } - var airlockQuery = EntityQueryEnumerator(); - var airlocks = new List(); - while (airlockQuery.MoveNext(out _, out _, out var xform)) - { - if (xform.GridUid != uid || !xform.Anchored) - continue; + // Remove walls that intersect with doors (unless they can both physically fit on the same tile) + // TODO NAVMAP why can this even happen? + // Is this for blast-doors or something? - var pos = _map.TileIndicesFor(uid, mapGrid, xform.Coordinates); - var enumerator = _map.GetAnchoredEntitiesEnumerator(uid, mapGrid, pos); - - var wallPresent = false; - while (enumerator.MoveNext(out var ent)) - { - if (!_physicsQuery.TryGetComponent(ent, out var body) || - !body.CanCollide || - !body.Hard || - body.BodyType != BodyType.Static || - !_tags.HasTag(ent.Value, "Wall", _tagQuery) && - !_tags.HasTag(ent.Value, "Window", _tagQuery)) - { - continue; - } - - wallPresent = true; - break; - } - - if (wallPresent) - continue; + // Shift airlock bits over to the wall bits + var shiftedAirlockBits = (tileData & AirlockMask) >> ((int) NavMapChunkType.Airlock - (int) NavMapChunkType.Wall); - airlocks.Add(new NavMapAirlock(xform.LocalPosition)); - } + // And then mask door bits + tileData &= ~shiftedAirlockBits; - // TODO: Diffs - args.State = new NavMapComponentState() - { - TileData = data, - Beacons = beacons, - Airlocks = airlocks - }; + return (tileData, chunk); } - private void OnReAnchor(ref ReAnchorEvent ev) + private bool PruneEmpty(Entity entity, NavMapChunk chunk) { - if (TryComp(ev.OldGrid, out var oldGrid) && - TryComp(ev.OldGrid, out var navMap)) + foreach (var val in chunk.TileData) { - var chunkOrigin = SharedMapSystem.GetChunkIndices(ev.TilePos, ChunkSize); - - if (navMap.Chunks.TryGetValue(chunkOrigin, out var chunk)) - { - RefreshTile(oldGrid, navMap, chunk, ev.TilePos); - } + // TODO NAVMAP SIMD + if (val != 0) + return false; } - HandleAnchor(ev.Xform); + entity.Comp.Chunks.Remove(chunk.Origin); + Dirty(entity); + return true; } - private void OnAnchorChange(ref AnchorStateChangedEvent ev) - { - HandleAnchor(ev.Transform); - } + #endregion - private void HandleAnchor(TransformComponent xform) + #region: Beacon functions + + private void UpdateNavMapBeaconData(EntityUid uid, NavMapBeaconComponent component, TransformComponent? xform = null) { - if (!TryComp(xform.GridUid, out var navMap) || - !TryComp(xform.GridUid, out var grid)) + if (!Resolve(uid, ref xform) + || xform.GridUid == null + || !_navQuery.TryComp(xform.GridUid, out var navMap)) return; - var tile = grid.LocalToTile(xform.Coordinates); - var chunkOrigin = SharedMapSystem.GetChunkIndices(tile, ChunkSize); + var meta = MetaData(uid); + var changed = navMap.Beacons.Remove(meta.NetEntity); - if (!navMap.Chunks.TryGetValue(chunkOrigin, out var chunk)) + if (TryCreateNavMapBeaconData(uid, component, xform, meta, out var beaconData)) { - chunk = new NavMapChunk(chunkOrigin); - navMap.Chunks[chunkOrigin] = chunk; + navMap.Beacons.Add(meta.NetEntity, beaconData.Value); + changed = true; } - RefreshTile(grid, navMap, chunk, tile); + if (changed) + Dirty(xform.GridUid.Value, navMap); } - private void RefreshTile(MapGridComponent grid, NavMapComponent component, NavMapChunk chunk, Vector2i tile) + private void UpdateBeaconEnabledVisuals(Entity ent) { - var relative = SharedMapSystem.GetChunkRelative(tile, ChunkSize); - var existing = chunk.TileData; - var flag = GetFlag(relative); - - chunk.TileData &= ~flag; - - var enumerator = grid.GetAnchoredEntitiesEnumerator(tile); - // TODO: Use something to get convex poly. - - while (enumerator.MoveNext(out var ent)) - { - if (!_physicsQuery.TryGetComponent(ent, out var body) || - !body.CanCollide || - !body.Hard || - body.BodyType != BodyType.Static || - !_tags.HasTag(ent.Value, "Wall", _tagQuery) && - !_tags.HasTag(ent.Value, "Window", _tagQuery)) - { - continue; - } - - chunk.TileData |= flag; - break; - } - - if (chunk.TileData == 0) - { - component.Chunks.Remove(chunk.Origin); - } - - if (existing == chunk.TileData) - return; - - Dirty(component); + _appearance.SetData(ent, NavMapBeaconVisuals.Enabled, ent.Comp.Enabled && Transform(ent).Anchored); } /// @@ -389,9 +350,6 @@ public void SetBeaconEnabled(EntityUid uid, bool enabled, NavMapBeaconComponent? comp.Enabled = enabled; UpdateBeaconEnabledVisuals((uid, comp)); - Dirty(uid, comp); - - RefreshNavGrid(uid); } /// @@ -419,7 +377,7 @@ public bool TryGetNearestBeacon(Entity ent, if (!Resolve(ent, ref ent.Comp)) return false; - return TryGetNearestBeacon(_transform.GetMapCoordinates(ent, ent.Comp), out beacon, out beaconCoords); + return TryGetNearestBeacon(_transformSystem.GetMapCoordinates(ent, ent.Comp), out beacon, out beaconCoords); } /// @@ -446,7 +404,7 @@ public bool TryGetNearestBeacon(MapCoordinates coordinates, if (coordinates.MapId != xform.MapID) continue; - var coords = _transform.GetWorldPosition(xform); + var coords = _transformSystem.GetWorldPosition(xform); var distanceSquared = (coordinates.Position - coords).LengthSquared(); if (!float.IsInfinity(minDistance) && distanceSquared >= minDistance) continue; @@ -465,7 +423,7 @@ public string GetNearestBeaconString(Entity ent) if (!Resolve(ent, ref ent.Comp)) return Loc.GetString("nav-beacon-pos-no-beacons"); - return GetNearestBeaconString(_transform.GetMapCoordinates(ent, ent.Comp)); + return GetNearestBeaconString(_transformSystem.GetMapCoordinates(ent, ent.Comp)); } public string GetNearestBeaconString(MapCoordinates coordinates) @@ -494,11 +452,13 @@ public string GetNearestBeaconString(MapCoordinates coordinates) ? Loc.GetString("nav-beacon-pos-format-direction-mod-far") : string.Empty; - // we can null suppress the text being null because TRyGetNearestVisibleStationBeacon always gives us a beacon with not-null text. + // we can null suppress the text being null because TryGetNearestVisibleStationBeacon always gives us a beacon with not-null text. return Loc.GetString("nav-beacon-pos-format-direction", ("modifier", modifier), ("direction", ContentLocalizationManager.FormatDirection(adjustedDir).ToLowerInvariant()), ("color", beacon.Value.Comp.Color), ("marker", beacon.Value.Comp.Text!)); } + + #endregion } diff --git a/Content.Server/Pinpointer/StationMapSystem.cs b/Content.Server/Pinpointer/StationMapSystem.cs index c9db560fef..b0b3141fb0 100644 --- a/Content.Server/Pinpointer/StationMapSystem.cs +++ b/Content.Server/Pinpointer/StationMapSystem.cs @@ -24,29 +24,23 @@ public override void Initialize() private void OnStationMapClosed(EntityUid uid, StationMapComponent component, BoundUIClosedEvent args) { - if (!Equals(args.UiKey, StationMapUiKey.Key) || args.Session.AttachedEntity == null) + if (!Equals(args.UiKey, StationMapUiKey.Key)) return; - RemCompDeferred(args.Session.AttachedEntity.Value); + RemCompDeferred(args.Actor); } private void OnUserParentChanged(EntityUid uid, StationMapUserComponent component, ref EntParentChangedMessage args) { - if (TryComp(uid, out var actor)) - { - _ui.TryClose(component.Map, StationMapUiKey.Key, actor.PlayerSession); - } + _ui.CloseUi(component.Map, StationMapUiKey.Key, uid); } private void OnStationMapOpened(EntityUid uid, StationMapComponent component, BoundUIOpenedEvent args) { - if (args.Session.AttachedEntity == null) - return; - if (!_cell.TryUseActivatableCharge(uid)) return; - var comp = EnsureComp(args.Session.AttachedEntity.Value); + var comp = EnsureComp(args.Actor); comp.Map = uid; } } diff --git a/Content.Server/Players/PlayTimeTracking/PlayTimeTrackingManager.cs b/Content.Server/Players/PlayTimeTracking/PlayTimeTrackingManager.cs index 02d5780315..943b4cf786 100644 --- a/Content.Server/Players/PlayTimeTracking/PlayTimeTrackingManager.cs +++ b/Content.Server/Players/PlayTimeTracking/PlayTimeTrackingManager.cs @@ -317,7 +317,7 @@ public async Task LoadData(ICommonSession session, CancellationToken cancel) var data = new PlayTimeData(); _playTimeData.Add(session, data); - var playTimes = await _db.GetPlayTimes(session.UserId); + var playTimes = await _db.GetPlayTimes(session.UserId, cancel); cancel.ThrowIfCancellationRequested(); foreach (var timer in playTimes) diff --git a/Content.Server/Players/PlayTimeTracking/PlayTimeTrackingSystem.cs b/Content.Server/Players/PlayTimeTracking/PlayTimeTrackingSystem.cs index de53235198..14eefbd6b8 100644 --- a/Content.Server/Players/PlayTimeTracking/PlayTimeTrackingSystem.cs +++ b/Content.Server/Players/PlayTimeTracking/PlayTimeTrackingSystem.cs @@ -1,4 +1,6 @@ using System.Linq; +using Content.Server.Administration; +using Content.Server.Administration.Managers; using Content.Server.Afk; using Content.Server.Afk.Events; using Content.Server.GameTicking; @@ -34,6 +36,7 @@ public sealed class PlayTimeTrackingSystem : EntitySystem [Dependency] private readonly IConfigurationManager _cfg = default!; [Dependency] private readonly MindSystem _minds = default!; [Dependency] private readonly PlayTimeTrackingManager _tracking = default!; + [Dependency] private readonly IAdminManager _adminManager = default!; [Dependency] private readonly CharacterRequirementsSystem _characterRequirements = default!; [Dependency] private readonly IServerPreferencesManager _prefs = default!; [Dependency] private readonly IConfigurationManager _config = default!; @@ -54,6 +57,7 @@ public override void Initialize() SubscribeLocalEvent(OnUnAFK); SubscribeLocalEvent(OnMobStateChanged); SubscribeLocalEvent(OnPlayerJoinedLobby); + _adminManager.OnPermsChanged += AdminPermsChanged; } public override void Shutdown() @@ -61,6 +65,7 @@ public override void Shutdown() base.Shutdown(); _tracking.CalcTrackers -= CalcTrackers; + _adminManager.OnPermsChanged -= AdminPermsChanged; } private void CalcTrackers(ICommonSession player, HashSet trackers) @@ -68,6 +73,13 @@ private void CalcTrackers(ICommonSession player, HashSet trackers) if (_afk.IsAfk(player)) return; + if (_adminManager.IsAdmin(player)) + { + trackers.Add(PlayTimeTrackingShared.TrackerAdmin); + trackers.Add(PlayTimeTrackingShared.TrackerOverall); + return; + } + if (!IsPlayerAlive(player)) return; @@ -138,6 +150,11 @@ private void OnAFK(ref AFKEvent ev) _tracking.QueueRefreshTrackers(ev.Session); } + private void AdminPermsChanged(AdminPermsChangedEventArgs admin) + { + _tracking.QueueRefreshTrackers(admin.Player); + } + private void OnPlayerAttached(PlayerAttachedEvent ev) { _tracking.QueueRefreshTrackers(ev.Player); diff --git a/Content.Server/Polymorph/Systems/ChameleonProjectorSystem.cs b/Content.Server/Polymorph/Systems/ChameleonProjectorSystem.cs new file mode 100644 index 0000000000..1586973a21 --- /dev/null +++ b/Content.Server/Polymorph/Systems/ChameleonProjectorSystem.cs @@ -0,0 +1,99 @@ +using Content.Server.Polymorph.Components; +using Content.Shared.Actions; +using Content.Shared.Construction.Components; +using Content.Shared.Hands; +using Content.Shared.Mobs; +using Content.Shared.Mobs.Components; +using Content.Shared.Mobs.Systems; +using Content.Shared.Polymorph; +using Content.Shared.Polymorph.Components; +using Content.Shared.Polymorph.Systems; +using Content.Shared.StatusIcon.Components; +using Robust.Shared.Physics.Components; + +namespace Content.Server.Polymorph.Systems; + +public sealed class ChameleonProjectorSystem : SharedChameleonProjectorSystem +{ + [Dependency] private readonly MetaDataSystem _meta = default!; + [Dependency] private readonly MobThresholdSystem _mobThreshold = default!; + [Dependency] private readonly PolymorphSystem _polymorph = default!; + [Dependency] private readonly SharedActionsSystem _actions = default!; + [Dependency] private readonly SharedAppearanceSystem _appearance = default!; + [Dependency] private readonly SharedTransformSystem _xform = default!; + + public override void Initialize() + { + base.Initialize(); + + SubscribeLocalEvent(OnEquippedHand); + SubscribeLocalEvent(OnToggleNoRot); + SubscribeLocalEvent(OnToggleAnchored); + } + + private void OnEquippedHand(Entity ent, ref GotEquippedHandEvent args) + { + if (!TryComp(ent, out var poly)) + return; + + _polymorph.Revert((ent, poly)); + args.Handled = true; + } + + public override void Disguise(ChameleonProjectorComponent proj, EntityUid user, EntityUid entity) + { + if (_polymorph.PolymorphEntity(user, proj.Polymorph) is not {} disguise) + return; + + // make disguise look real (for simple things at least) + var meta = MetaData(entity); + _meta.SetEntityName(disguise, meta.EntityName); + _meta.SetEntityDescription(disguise, meta.EntityDescription); + + var comp = EnsureComp(disguise); + comp.SourceEntity = entity; + comp.SourceProto = Prototype(entity)?.ID; + Dirty(disguise, comp); + + // no sechud trolling + RemComp(disguise); + + _appearance.CopyData(entity, disguise); + + var mass = CompOrNull(entity)?.Mass ?? 0f; + + // let the disguise die when its taken enough damage, which then transfers to the player + // health is proportional to mass, and capped to not be insane + if (TryComp(disguise, out var thresholds)) + { + // if the player is of flesh and blood, cap max health to theirs + // so that when reverting damage scales 1:1 and not round removing + var playerMax = _mobThreshold.GetThresholdForState(user, MobState.Dead).Float(); + var max = playerMax == 0f ? proj.MaxHealth : Math.Max(proj.MaxHealth, playerMax); + + var health = Math.Clamp(mass, proj.MinHealth, proj.MaxHealth); + _mobThreshold.SetMobStateThreshold(disguise, health, MobState.Critical, thresholds); + _mobThreshold.SetMobStateThreshold(disguise, max, MobState.Dead, thresholds); + } + + // add actions for controlling transform aspects + _actions.AddAction(disguise, proj.NoRotAction); + _actions.AddAction(disguise, proj.AnchorAction); + } + + private void OnToggleNoRot(Entity ent, ref DisguiseToggleNoRotEvent args) + { + var xform = Transform(ent); + xform.NoLocalRotation = !xform.NoLocalRotation; + } + + private void OnToggleAnchored(Entity ent, ref DisguiseToggleAnchoredEvent args) + { + var uid = ent.Owner; + var xform = Transform(uid); + if (xform.Anchored) + _xform.Unanchor(uid, xform); + else + _xform.AnchorEntity((uid, xform)); + } +} diff --git a/Content.Server/Polymorph/Systems/PolymorphSystem.cs b/Content.Server/Polymorph/Systems/PolymorphSystem.cs index 8cae15d70d..e6ba1d02af 100644 --- a/Content.Server/Polymorph/Systems/PolymorphSystem.cs +++ b/Content.Server/Polymorph/Systems/PolymorphSystem.cs @@ -199,7 +199,7 @@ private void OnDestruction(Entity ent, ref Destructi var targetTransformComp = Transform(uid); - var child = Spawn(configuration.Entity, targetTransformComp.Coordinates); + var child = Spawn(configuration.Entity, _transform.GetMapCoordinates(uid, targetTransformComp), rotation: _transform.GetWorldRotation(uid)); MakeSentientCommand.MakeSentient(child, EntityManager); diff --git a/Content.Server/Popups/PopupSystem.cs b/Content.Server/Popups/PopupSystem.cs index d1163a2be1..4aa3d39224 100644 --- a/Content.Server/Popups/PopupSystem.cs +++ b/Content.Server/Popups/PopupSystem.cs @@ -88,11 +88,19 @@ public override void PopupEntity(string? message, EntityUid uid, EntityUid recip RaiseNetworkEvent(new PopupEntityEvent(message, type, GetNetEntity(uid)), actor.PlayerSession); } + public override void PopupClient(string? message, EntityUid? recipient, PopupType type = PopupType.Small) + { + } + public override void PopupClient(string? message, EntityUid uid, EntityUid? recipient, PopupType type = PopupType.Small) { // do nothing duh its for client only } + public override void PopupClient(string? message, EntityCoordinates coordinates, EntityUid? recipient, PopupType type = PopupType.Small) + { + } + public override void PopupEntity(string? message, EntityUid uid, ICommonSession recipient, PopupType type = PopupType.Small) { if (message == null) diff --git a/Content.Server/Power/Components/ActivatableUIRequiresPowerComponent.cs b/Content.Server/Power/Components/ActivatableUIRequiresPowerComponent.cs deleted file mode 100644 index c387457adb..0000000000 --- a/Content.Server/Power/Components/ActivatableUIRequiresPowerComponent.cs +++ /dev/null @@ -1,8 +0,0 @@ -namespace Content.Server.Power.Components -{ - [RegisterComponent] - public sealed partial class ActivatableUIRequiresPowerComponent : Component - { - } -} - diff --git a/Content.Server/Power/Components/ActiveChargerComponent.cs b/Content.Server/Power/Components/ActiveChargerComponent.cs new file mode 100644 index 0000000000..9f75db853d --- /dev/null +++ b/Content.Server/Power/Components/ActiveChargerComponent.cs @@ -0,0 +1,7 @@ +using Content.Shared.Containers.ItemSlots; +using Content.Shared.Power; + +namespace Content.Server.Power.Components; + +[RegisterComponent] +public sealed partial class ActiveChargerComponent : Component { } diff --git a/Content.Server/Power/Components/ChargerComponent.cs b/Content.Server/Power/Components/ChargerComponent.cs index af4498f01b..4a3c83ae03 100644 --- a/Content.Server/Power/Components/ChargerComponent.cs +++ b/Content.Server/Power/Components/ChargerComponent.cs @@ -26,5 +26,12 @@ public sealed partial class ChargerComponent : Component /// [DataField("whitelist")] public EntityWhitelist? Whitelist; + + /// + /// Indicates whether the charger is portable and thus subject to EMP effects + /// and bypasses checks for transform, anchored, and ApcPowerReceiverComponent. + /// + [DataField] + public bool Portable = false; } } diff --git a/Content.Server/Power/Components/ChargingComponent.cs b/Content.Server/Power/Components/ChargingComponent.cs deleted file mode 100644 index db7c14f708..0000000000 --- a/Content.Server/Power/Components/ChargingComponent.cs +++ /dev/null @@ -1,19 +0,0 @@ -using Content.Shared.Containers.ItemSlots; -using Content.Shared.Power; - -namespace Content.Server.Power.Components -{ - [RegisterComponent] - public sealed partial class ChargingComponent : Component - { - /// - ///References the entity of the charger that is currently powering this battery - /// - public EntityUid ChargerUid; - - /// - ///References the component of the charger that is currently powering this battery - /// - public ChargerComponent ChargerComponent; - } -} diff --git a/Content.Server/Power/Components/SiliconEmitSoundOnDrainedComponent.cs b/Content.Server/Power/Components/SiliconEmitSoundOnDrainedComponent.cs index 4e5121d607..481311d968 100644 --- a/Content.Server/Power/Components/SiliconEmitSoundOnDrainedComponent.cs +++ b/Content.Server/Power/Components/SiliconEmitSoundOnDrainedComponent.cs @@ -1,6 +1,6 @@ -using System.ComponentModel.DataAnnotations; using Robust.Shared.Audio; using Content.Server.Sound.Components; +using Content.Shared.Sound.Components; namespace Content.Server.Silicon; diff --git a/Content.Server/Power/Components/UpgradeBatteryComponent.cs b/Content.Server/Power/Components/UpgradeBatteryComponent.cs new file mode 100644 index 0000000000..b676883b71 --- /dev/null +++ b/Content.Server/Power/Components/UpgradeBatteryComponent.cs @@ -0,0 +1,28 @@ +using Content.Shared.Construction.Prototypes; +using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype; + +namespace Content.Server.Power.Components +{ + + [RegisterComponent] + public sealed partial class UpgradeBatteryComponent : Component + { + /// + /// The machine part that affects the power capacity. + /// + [DataField(customTypeSerializer: typeof(PrototypeIdSerializer))] + public string MachinePartPowerCapacity = "PowerCell"; + + /// + /// The machine part rating is raised to this power when calculating power gain + /// + [DataField] + public float MaxChargeMultiplier = 2f; + + /// + /// Power gain scaling + /// + [DataField] + public float BaseMaxCharge = 8000000; + } +} diff --git a/Content.Server/Power/Components/UpgradePowerDrawComponent.cs b/Content.Server/Power/Components/UpgradePowerDrawComponent.cs new file mode 100644 index 0000000000..23db4905cc --- /dev/null +++ b/Content.Server/Power/Components/UpgradePowerDrawComponent.cs @@ -0,0 +1,41 @@ +using Content.Server.Construction.Components; +using Content.Shared.Construction.Prototypes; +using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype; + +namespace Content.Server.Power.Components; + +/// +/// This is used for machines whose power draw +/// can be decreased through machine part upgrades. +/// +[RegisterComponent] +public sealed partial class UpgradePowerDrawComponent : Component +{ + /// + /// The base power draw of the machine. + /// Prioritizes hv/mv draw over lv draw. + /// Value is initializezd on map init from + /// + [ViewVariables(VVAccess.ReadWrite)] + public float BaseLoad; + + /// + /// The machine part that affects the power draw. + /// + [DataField(customTypeSerializer: typeof(PrototypeIdSerializer)), ViewVariables(VVAccess.ReadWrite)] + public string MachinePartPowerDraw = "Capacitor"; + + /// + /// The multiplier used for scaling the power draw. + /// + [DataField(required: true), ViewVariables(VVAccess.ReadWrite)] + public float PowerDrawMultiplier = 1f; + + /// + /// What type of scaling is being used? + /// + [DataField(required: true), ViewVariables(VVAccess.ReadWrite)] + public MachineUpgradeScalingType Scaling; +} + + diff --git a/Content.Server/Power/Components/UpgradePowerSupplierComponent.cs b/Content.Server/Power/Components/UpgradePowerSupplierComponent.cs new file mode 100644 index 0000000000..012c38a6b9 --- /dev/null +++ b/Content.Server/Power/Components/UpgradePowerSupplierComponent.cs @@ -0,0 +1,36 @@ +using Content.Server.Construction.Components; +using Content.Shared.Construction.Prototypes; +using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype; + +namespace Content.Server.Power.Components; + +[RegisterComponent] +public sealed partial class UpgradePowerSupplierComponent : Component +{ + [ViewVariables(VVAccess.ReadWrite)] + public float BaseSupplyRate; + + /// + /// The machine part that affects the power supplu. + /// + [DataField(customTypeSerializer: typeof(PrototypeIdSerializer))] + public string MachinePartPowerSupply = "Capacitor"; + + /// + /// The multiplier used for scaling the power supply. + /// + [DataField(required: true)] + public float PowerSupplyMultiplier = 1f; + + /// + /// What type of scaling is being used? + /// + [DataField(required: true)] + public MachineUpgradeScalingType Scaling; + + /// + /// The current value that the power supply is being scaled by, + /// + [DataField] + public float ActualScalar = 1f; +} diff --git a/Content.Server/Power/Components/UpgradePowerSupplyRampingComponent.cs b/Content.Server/Power/Components/UpgradePowerSupplyRampingComponent.cs new file mode 100644 index 0000000000..61a654b383 --- /dev/null +++ b/Content.Server/Power/Components/UpgradePowerSupplyRampingComponent.cs @@ -0,0 +1,36 @@ +using Content.Server.Construction.Components; +using Content.Shared.Construction.Prototypes; +using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype; + +namespace Content.Server.Power.Components; + +[RegisterComponent] +public sealed partial class UpgradePowerSupplyRampingComponent : Component +{ + [ViewVariables(VVAccess.ReadWrite)] + public float BaseRampRate; + + /// + /// The machine part that affects the power supply ramping + /// + [DataField(customTypeSerializer: typeof(PrototypeIdSerializer))] + public string MachinePartRampRate = "Capacitor"; + + /// + /// The multiplier used for scaling the power supply ramping + /// + [DataField] + public float SupplyRampingMultiplier = 1f; + + /// + /// What type of scaling is being used? + /// + [DataField(required: true)] + public MachineUpgradeScalingType Scaling; + + /// + /// The current value that the power supply is being scaled by + /// + [DataField] + public float ActualScalar = 1f; +} diff --git a/Content.Server/Power/EntitySystems/ActivatableUIRequiresPowerSystem.cs b/Content.Server/Power/EntitySystems/ActivatableUIRequiresPowerSystem.cs index 561b0e71f0..72843a65b8 100644 --- a/Content.Server/Power/EntitySystems/ActivatableUIRequiresPowerSystem.cs +++ b/Content.Server/Power/EntitySystems/ActivatableUIRequiresPowerSystem.cs @@ -4,11 +4,12 @@ using JetBrains.Annotations; using Content.Shared.Wires; using Content.Server.UserInterface; +using Content.Shared.Power.Components; +using ActivatableUISystem = Content.Shared.UserInterface.ActivatableUISystem; namespace Content.Server.Power.EntitySystems; -[UsedImplicitly] -internal sealed class ActivatableUIRequiresPowerSystem : EntitySystem +public sealed class ActivatableUIRequiresPowerSystem : EntitySystem { [Dependency] private readonly ActivatableUISystem _activatableUI = default!; [Dependency] private readonly SharedPopupSystem _popup = default!; diff --git a/Content.Server/Power/EntitySystems/ApcSystem.cs b/Content.Server/Power/EntitySystems/ApcSystem.cs index f345c9e88e..a449f3555a 100644 --- a/Content.Server/Power/EntitySystems/ApcSystem.cs +++ b/Content.Server/Power/EntitySystems/ApcSystem.cs @@ -68,11 +68,8 @@ private void OnApcInit(EntityUid uid, ApcComponent component, MapInitEvent args) //Update the HasAccess var for UI to read private void OnBoundUiOpen(EntityUid uid, ApcComponent component, BoundUIOpenedEvent args) { - if (args.Session.AttachedEntity == null) - return; - // TODO: this should be per-player not stored on the apc - component.HasAccess = _accessReader.IsAllowed(args.Session.AttachedEntity.Value, uid); + component.HasAccess = _accessReader.IsAllowed(args.Actor, uid); UpdateApcState(uid, component); } @@ -83,21 +80,18 @@ private void OnToggleMainBreaker(EntityUid uid, ApcComponent component, ApcToggl if (attemptEv.Cancelled) { _popup.PopupCursor(Loc.GetString("apc-component-on-toggle-cancel"), - args.Session, PopupType.Medium); + args.Actor, PopupType.Medium); return; } - if (args.Session.AttachedEntity == null) - return; - - if (_accessReader.IsAllowed(args.Session.AttachedEntity.Value, uid)) + if (_accessReader.IsAllowed(args.Actor, uid)) { ApcToggleBreaker(uid, component); } else { _popup.PopupCursor(Loc.GetString("apc-component-insufficient-access"), - args.Session, PopupType.Medium); + args.Actor, PopupType.Medium); } } @@ -160,7 +154,7 @@ public void UpdateUIState(EntityUid uid, (int) MathF.Ceiling(battery.CurrentSupply), apc.LastExternalState, battery.CurrentStorage / battery.Capacity); - _ui.TrySetUiState(uid, ApcUiKey.Key, state, ui: ui); + _ui.SetUiState((uid, ui), ApcUiKey.Key, state); } private ApcChargeState CalcChargeState(EntityUid uid, PowerState.Battery battery) diff --git a/Content.Server/Power/EntitySystems/BatterySystem.cs b/Content.Server/Power/EntitySystems/BatterySystem.cs index 2aaa41df0b..0567a2222b 100644 --- a/Content.Server/Power/EntitySystems/BatterySystem.cs +++ b/Content.Server/Power/EntitySystems/BatterySystem.cs @@ -25,7 +25,6 @@ public override void Initialize() SubscribeLocalEvent(OnBatteryRejuvenate); SubscribeLocalEvent(CalculateBatteryPrice); SubscribeLocalEvent(OnEmpPulse); - SubscribeLocalEvent(OnEmpDisabledRemoved); SubscribeLocalEvent(PreSync); SubscribeLocalEvent(PostSync); @@ -110,17 +109,6 @@ private void OnEmpPulse(EntityUid uid, BatteryComponent component, ref EmpPulseE UseCharge(uid, args.EnergyConsumption, component); } - // if a disabled battery is put into a recharged, - // allow the recharger to start recharging again after the disable ends - private void OnEmpDisabledRemoved(EntityUid uid, BatteryComponent component, ref EmpDisabledRemoved args) - { - if (!TryComp(uid, out var charging)) - return; - - var ev = new ChargerUpdateStatusEvent(); - RaiseLocalEvent(charging.ChargerUid, ref ev); - } - public float UseCharge(EntityUid uid, float value, BatteryComponent? battery = null) { if (value <= 0 || !Resolve(uid, ref battery) || battery.CurrentCharge == 0) @@ -195,10 +183,6 @@ public bool IsFull(EntityUid uid, BatteryComponent? battery = null) if (!Resolve(uid, ref battery)) return false; - // If the battery is full, remove its charging component. - if (TryComp(uid, out _)) - RemComp(uid); - return battery.CurrentCharge / battery.MaxCharge >= 0.99f; } diff --git a/Content.Server/Power/EntitySystems/ChargerSystem.cs b/Content.Server/Power/EntitySystems/ChargerSystem.cs index ae6b024162..1ff13a24f2 100644 --- a/Content.Server/Power/EntitySystems/ChargerSystem.cs +++ b/Content.Server/Power/EntitySystems/ChargerSystem.cs @@ -10,7 +10,6 @@ using System.Diagnostics.CodeAnalysis; using Content.Shared.Storage.Components; using Robust.Server.Containers; -using Content.Shared.Whitelist; namespace Content.Server.Power.EntitySystems; @@ -32,10 +31,7 @@ public override void Initialize() SubscribeLocalEvent(OnEntityStorageInsertAttempt); SubscribeLocalEvent(OnChargerExamine); - SubscribeLocalEvent(OnUpdateStatus); - SubscribeLocalEvent(OnEmpPulse); - SubscribeLocalEvent(OnEmpDisabledRemoved); } private void OnStartup(EntityUid uid, ChargerComponent component, ComponentStartup args) @@ -48,58 +44,21 @@ private void OnChargerExamine(EntityUid uid, ChargerComponent component, Examine args.PushMarkup(Loc.GetString("charger-examine", ("color", "yellow"), ("chargeRate", (int) component.ChargeRate))); } - private void StartChargingBattery(EntityUid uid, ChargerComponent component, EntityUid target) - { - bool charge = true; - - if (HasComp(uid)) - charge = false; - else - if (!TryComp(target, out var battery)) - charge = false; - else - if (Math.Abs(battery.MaxCharge - battery.CurrentCharge) < 0.01) - charge = false; - - // wrap functionality in an if statement instead of returning... - if (charge) - { - var charging = EnsureComp(target); - charging.ChargerUid = uid; - charging.ChargerComponent = component; - } - - // ...so the status always updates (for insertin a power cell) - UpdateStatus(uid, component); - } - - private void StopChargingBattery(EntityUid uid, ChargerComponent component, EntityUid target) - { - if (HasComp(target)) - RemComp(target); - UpdateStatus(uid, component); - } - public override void Update(float frameTime) { - var query = EntityQueryEnumerator(); - while (query.MoveNext(out var uid, out var charging)) + var query = EntityQueryEnumerator(); + while (query.MoveNext(out var uid, out _, out var charger, out var containerComp)) { - if (!TryComp(charging.ChargerUid, out var chargerComponent)) + if (!_container.TryGetContainer(uid, charger.SlotId, out var container, containerComp)) continue; - if (charging.ChargerComponent.Status == CellChargerStatus.Off || charging.ChargerComponent.Status == CellChargerStatus.Empty) + if (charger.Status == CellChargerStatus.Empty || charger.Status == CellChargerStatus.Charged || container.ContainedEntities.Count == 0) continue; - if (HasComp(charging.ChargerUid)) - continue; - - if (!TryComp(uid, out var battery)) - continue; - - if (Math.Abs(battery.MaxCharge - battery.CurrentCharge) < 0.01) - StopChargingBattery(charging.ChargerUid, charging.ChargerComponent, uid); - TransferPower(charging.ChargerUid, uid, charging.ChargerComponent, frameTime); + foreach (var contained in container.ContainedEntities) + { + TransferPower(uid, contained, charger, frameTime); + } } } @@ -116,7 +75,7 @@ private void OnInserted(EntityUid uid, ChargerComponent component, EntInsertedIn if (args.Container.ID != component.SlotId) return; - StartChargingBattery(uid, component, args.Entity); + UpdateStatus(uid, component); } private void OnRemoved(EntityUid uid, ChargerComponent component, EntRemovedFromContainerMessage args) @@ -124,7 +83,7 @@ private void OnRemoved(EntityUid uid, ChargerComponent component, EntRemovedFrom if (args.Container.ID != component.SlotId) return; - StopChargingBattery(uid, component, args.Entity); + UpdateStatus(uid, component); } /// @@ -157,11 +116,6 @@ private void OnEntityStorageInsertAttempt(EntityUid uid, ChargerComponent compon args.Cancelled = true; } - private void OnUpdateStatus(EntityUid uid, ChargerComponent component, ref ChargerUpdateStatusEvent args) - { - UpdateStatus(uid, component); - } - private void UpdateStatus(EntityUid uid, ChargerComponent component) { var status = GetStatus(uid, component); @@ -176,6 +130,15 @@ private void UpdateStatus(EntityUid uid, ChargerComponent component) component.Status = status; + if (component.Status == CellChargerStatus.Charging) + { + AddComp(uid); + } + else + { + RemComp(uid); + } + switch (component.Status) { case CellChargerStatus.Off: @@ -187,7 +150,7 @@ private void UpdateStatus(EntityUid uid, ChargerComponent component) _appearance.SetData(uid, CellVisual.Light, CellChargerStatus.Empty, appearance); break; case CellChargerStatus.Charging: - receiver.Load = component.ChargeRate; //does not scale with multiple slotted batteries + receiver.Load = component.ChargeRate; _appearance.SetData(uid, CellVisual.Light, CellChargerStatus.Charging, appearance); break; case CellChargerStatus.Charged: @@ -198,55 +161,28 @@ private void UpdateStatus(EntityUid uid, ChargerComponent component) throw new ArgumentOutOfRangeException(); } } - + private void OnEmpPulse(EntityUid uid, ChargerComponent component, ref EmpPulseEvent args) { - // we don't care if we haven't been disabled - if (!args.Disabled) - return; - - // if the recharger is hit by an emp pulse, - // stop recharging contained batteries to save resources - if (!_container.TryGetContainer(uid, component.SlotId, out var container)) - return; - - foreach (var containedEntity in container.ContainedEntities) - { - if (!SearchForBattery(containedEntity, out _, out _)) - continue; - - StopChargingBattery(uid, component, containedEntity); - } + args.Affected = true; + args.Disabled = true; } - private void OnEmpDisabledRemoved(EntityUid uid, ChargerComponent component, ref EmpDisabledRemoved args) + private CellChargerStatus GetStatus(EntityUid uid, ChargerComponent component) { - // if an emp disable subsides, - // attempt to start charging all batteries - if (!_container.TryGetContainer(uid, component.SlotId, out var container)) - return; - - foreach (var containedEntity in container.ContainedEntities) + if (!component.Portable) { - if (!SearchForBattery(containedEntity, out _, out _)) - continue; - - StartChargingBattery(uid, component, containedEntity); + if (!TryComp(uid, out TransformComponent? transformComponent) || !transformComponent.Anchored) + return CellChargerStatus.Off; } - } - private CellChargerStatus GetStatus(EntityUid uid, ChargerComponent component) - { - if (!TryComp(uid, out TransformComponent? transformComponent)) + if (!TryComp(uid, out ApcPowerReceiverComponent? apcPowerReceiverComponent)) return CellChargerStatus.Off; - if (!transformComponent.Anchored) + if (!component.Portable && !apcPowerReceiverComponent.Powered) return CellChargerStatus.Off; - if (!TryComp(uid, out ApcPowerReceiverComponent? apcPowerReceiverComponent)) - return CellChargerStatus.Off; - - if (!apcPowerReceiverComponent.Powered) + if (HasComp(uid)) return CellChargerStatus.Off; if (!_container.TryGetContainer(uid, component.SlotId, out var container)) @@ -255,30 +191,15 @@ private CellChargerStatus GetStatus(EntityUid uid, ChargerComponent component) if (container.ContainedEntities.Count == 0) return CellChargerStatus.Empty; - var statusOut = CellChargerStatus.Off; - - foreach (var containedEntity in container.ContainedEntities) - { - // if none of the slotted items are actually batteries, represent the charger as off - if (!SearchForBattery(containedEntity, out _, out _)) - continue; - - // if all batteries are either EMP'd or fully charged, represent the charger as fully charged - statusOut = CellChargerStatus.Charged; - if (HasComp(containedEntity)) - continue; - - if (!HasComp(containedEntity)) - continue; + if (!SearchForBattery(container.ContainedEntities[0], out _, out var heldBattery)) + return CellChargerStatus.Off; - // if we have atleast one battery being charged, represent the charger as charging; - statusOut = CellChargerStatus.Charging; - break; - } + if (Math.Abs(heldBattery.MaxCharge - heldBattery.CurrentCharge) < 0.01) + return CellChargerStatus.Charged; - return statusOut; + return CellChargerStatus.Charging; } - + private void TransferPower(EntityUid uid, EntityUid targetEntity, ChargerComponent component, float frameTime) { if (!TryComp(uid, out ApcPowerReceiverComponent? receiverComponent)) @@ -293,11 +214,11 @@ private void TransferPower(EntityUid uid, EntityUid targetEntity, ChargerCompone if (!SearchForBattery(targetEntity, out var batteryUid, out var heldBattery)) return; - _battery.TrySetCharge(batteryUid.Value, heldBattery.CurrentCharge + component.ChargeRate * frameTime, heldBattery); + _battery.SetCharge(batteryUid.Value, heldBattery.CurrentCharge + component.ChargeRate * frameTime, heldBattery); // Just so the sprite won't be set to 99.99999% visibility if (heldBattery.MaxCharge - heldBattery.CurrentCharge < 0.01) { - _battery.TrySetCharge(batteryUid.Value, heldBattery.MaxCharge, heldBattery); + _battery.SetCharge(batteryUid.Value, heldBattery.MaxCharge, heldBattery); } UpdateStatus(uid, component); @@ -315,6 +236,3 @@ private bool SearchForBattery(EntityUid uid, [NotNullWhen(true)] out EntityUid? return true; } } - -[ByRefEvent] -public record struct ChargerUpdateStatusEvent(); \ No newline at end of file diff --git a/Content.Server/Power/EntitySystems/PowerMonitoringConsoleSystem.cs b/Content.Server/Power/EntitySystems/PowerMonitoringConsoleSystem.cs index 0e20f007d7..42c84b7f43 100644 --- a/Content.Server/Power/EntitySystems/PowerMonitoringConsoleSystem.cs +++ b/Content.Server/Power/EntitySystems/PowerMonitoringConsoleSystem.cs @@ -1,7 +1,5 @@ -using Content.Server.GameTicking.Rules.Components; using Content.Server.NodeContainer; using Content.Server.NodeContainer.EntitySystems; -using Content.Server.NodeContainer.NodeGroups; using Content.Server.NodeContainer.Nodes; using Content.Server.Power.Components; using Content.Server.Power.Nodes; @@ -13,10 +11,8 @@ using JetBrains.Annotations; using Robust.Server.GameObjects; using Robust.Shared.Map.Components; -using Robust.Shared.Player; using Robust.Shared.Utility; using System.Linq; -using System.Diagnostics.CodeAnalysis; using Content.Server.GameTicking.Components; namespace Content.Server.Power.EntitySystems; @@ -163,7 +159,7 @@ public void OnCableAnchorStateChanged(EntityUid uid, CableComponent component, C allChunks = new(); var tile = _sharedMapSystem.LocalToTile(xform.GridUid.Value, grid, xform.Coordinates); - var chunkOrigin = SharedMapSystem.GetChunkIndices(tile, SharedNavMapSystem.ChunkSize); + var chunkOrigin = SharedMapSystem.GetChunkIndices(tile, ChunkSize); if (!allChunks.TryGetValue(chunkOrigin, out var chunk)) { @@ -171,8 +167,8 @@ public void OnCableAnchorStateChanged(EntityUid uid, CableComponent component, C allChunks[chunkOrigin] = chunk; } - var relative = SharedMapSystem.GetChunkRelative(tile, SharedNavMapSystem.ChunkSize); - var flag = SharedNavMapSystem.GetFlag(relative); + var relative = SharedMapSystem.GetChunkRelative(tile, ChunkSize); + var flag = GetFlag(relative); if (args.Anchored) chunk.PowerCableData[(int) component.CableType] |= flag; @@ -286,20 +282,17 @@ public override void Update(float frameTime) var query = AllEntityQuery(); while (query.MoveNext(out var ent, out var console)) { - if (!_userInterfaceSystem.TryGetUi(ent, PowerMonitoringConsoleUiKey.Key, out var bui)) + if (!_userInterfaceSystem.IsUiOpen(ent, PowerMonitoringConsoleUiKey.Key)) continue; - foreach (var session in bui.SubscribedSessions) - UpdateUIState(ent, console, session); + UpdateUIState(ent, console); + } } } - public void UpdateUIState(EntityUid uid, PowerMonitoringConsoleComponent component, ICommonSession session) + private void UpdateUIState(EntityUid uid, PowerMonitoringConsoleComponent component) { - if (!_userInterfaceSystem.TryGetUi(uid, PowerMonitoringConsoleUiKey.Key, out var bui)) - return; - var consoleXform = Transform(uid); if (consoleXform?.GridUid == null) @@ -422,15 +415,15 @@ public void UpdateUIState(EntityUid uid, PowerMonitoringConsoleComponent compone } // Set the UI state - _userInterfaceSystem.SetUiState(bui, + _userInterfaceSystem.SetUiState(uid, + PowerMonitoringConsoleUiKey.Key, new PowerMonitoringConsoleBoundInterfaceState (totalSources, totalBatteryUsage, totalLoads, allEntries.ToArray(), sourcesForFocus.ToArray(), - loadsForFocus.ToArray()), - session); + loadsForFocus.ToArray())); } private double GetPrimaryPowerValues(EntityUid uid, PowerMonitoringDeviceComponent device, out double powerSupplied, out double powerUsage, out double batteryUsage) @@ -887,7 +880,7 @@ private Dictionary RefreshPowerCableGrid(EntityUid gr continue; var tile = _sharedMapSystem.GetTileRef(gridUid, grid, entXform.Coordinates); - var chunkOrigin = SharedMapSystem.GetChunkIndices(tile.GridIndices, SharedNavMapSystem.ChunkSize); + var chunkOrigin = SharedMapSystem.GetChunkIndices(tile.GridIndices, ChunkSize); if (!allChunks.TryGetValue(chunkOrigin, out var chunk)) { @@ -895,8 +888,8 @@ private Dictionary RefreshPowerCableGrid(EntityUid gr allChunks[chunkOrigin] = chunk; } - var relative = SharedMapSystem.GetChunkRelative(tile.GridIndices, SharedNavMapSystem.ChunkSize); - var flag = SharedNavMapSystem.GetFlag(relative); + var relative = SharedMapSystem.GetChunkRelative(tile.GridIndices, ChunkSize); + var flag = GetFlag(relative); chunk.PowerCableData[(int) cable.CableType] |= flag; } @@ -913,7 +906,7 @@ private void UpdateFocusNetwork(EntityUid uid, PowerMonitoringCableNetworksCompo var xform = Transform(ent); var tile = _sharedMapSystem.GetTileRef(gridUid, grid, xform.Coordinates); var gridIndices = tile.GridIndices; - var chunkOrigin = SharedMapSystem.GetChunkIndices(gridIndices, SharedNavMapSystem.ChunkSize); + var chunkOrigin = SharedMapSystem.GetChunkIndices(gridIndices, ChunkSize); if (!component.FocusChunks.TryGetValue(chunkOrigin, out var chunk)) { @@ -921,8 +914,8 @@ private void UpdateFocusNetwork(EntityUid uid, PowerMonitoringCableNetworksCompo component.FocusChunks[chunkOrigin] = chunk; } - var relative = SharedMapSystem.GetChunkRelative(gridIndices, SharedNavMapSystem.ChunkSize); - var flag = SharedNavMapSystem.GetFlag(relative); + var relative = SharedMapSystem.GetChunkRelative(gridIndices, ChunkSize); + var flag = GetFlag(relative); if (TryComp(ent, out var cable)) chunk.PowerCableData[(int) cable.CableType] |= flag; diff --git a/Content.Server/Power/EntitySystems/UpgradeBatterySystem.cs b/Content.Server/Power/EntitySystems/UpgradeBatterySystem.cs new file mode 100644 index 0000000000..734cf9d89c --- /dev/null +++ b/Content.Server/Power/EntitySystems/UpgradeBatterySystem.cs @@ -0,0 +1,39 @@ +using Content.Server.Construction; +using Content.Server.Power.Components; +using JetBrains.Annotations; + +namespace Content.Server.Power.EntitySystems +{ + [UsedImplicitly] + public sealed class UpgradeBatterySystem : EntitySystem + { + [Dependency] private readonly BatterySystem _batterySystem = default!; + + public override void Initialize() + { + base.Initialize(); + + SubscribeLocalEvent(OnRefreshParts); + SubscribeLocalEvent(OnUpgradeExamine); + } + + public void OnRefreshParts(EntityUid uid, UpgradeBatteryComponent component, RefreshPartsEvent args) + { + var powerCellRating = args.PartRatings[component.MachinePartPowerCapacity]; + + if (TryComp(uid, out var batteryComp)) + { + _batterySystem.SetMaxCharge(uid, MathF.Pow(component.MaxChargeMultiplier, powerCellRating - 1) * component.BaseMaxCharge, batteryComp); + } + } + + private void OnUpgradeExamine(EntityUid uid, UpgradeBatteryComponent component, UpgradeExamineEvent args) + { + // UpgradeBatteryComponent.MaxChargeMultiplier is not the actual multiplier, so we have to do this. + if (TryComp(uid, out var batteryComp)) + { + args.AddPercentageUpgrade("upgrade-max-charge", batteryComp.MaxCharge / component.BaseMaxCharge); + } + } + } +} diff --git a/Content.Server/Power/EntitySystems/UpgradePowerSystem.cs b/Content.Server/Power/EntitySystems/UpgradePowerSystem.cs new file mode 100644 index 0000000000..d2f6ee4f56 --- /dev/null +++ b/Content.Server/Power/EntitySystems/UpgradePowerSystem.cs @@ -0,0 +1,151 @@ +using Content.Server.Construction; +using Content.Server.Construction.Components; +using Content.Server.Power.Components; + +namespace Content.Server.Power.EntitySystems; + +/// +/// This handles using upgraded machine parts +/// to modify the power supply/generation of a machine. +/// +public sealed class UpgradePowerSystem : EntitySystem +{ + /// + public override void Initialize() + { + SubscribeLocalEvent(OnMapInit); + SubscribeLocalEvent(OnRefreshParts); + SubscribeLocalEvent(OnUpgradeExamine); + + SubscribeLocalEvent(OnSupplierMapInit); + SubscribeLocalEvent(OnSupplierRefreshParts); + SubscribeLocalEvent(OnSupplierUpgradeExamine); + + SubscribeLocalEvent(OnSupplyRampingMapInit); + SubscribeLocalEvent(OnSupplyRampingRefreshParts); + SubscribeLocalEvent(OnSupplyRampingUpgradeExamine); + } + + private void OnMapInit(EntityUid uid, UpgradePowerDrawComponent component, MapInitEvent args) + { + if (TryComp(uid, out var powa)) + component.BaseLoad = powa.DrawRate; + else if (TryComp(uid, out var powa2)) + component.BaseLoad = powa2.Load; + } + + private void OnRefreshParts(EntityUid uid, UpgradePowerDrawComponent component, RefreshPartsEvent args) + { + var load = component.BaseLoad; + var rating = args.PartRatings[component.MachinePartPowerDraw]; + switch (component.Scaling) + + { + case MachineUpgradeScalingType.Linear: + load += component.PowerDrawMultiplier * (rating - 1); + break; + case MachineUpgradeScalingType.Exponential: + load *= MathF.Pow(component.PowerDrawMultiplier, rating - 1); + break; + default: + Log.Error($"invalid power scaling type for {ToPrettyString(uid)}."); + load = 0; + break; + } + + if (TryComp(uid, out var powa)) + powa.Load = load; + if (TryComp(uid, out var powa2)) + powa2.DrawRate = load; + } + + private void OnUpgradeExamine(EntityUid uid, UpgradePowerDrawComponent component, UpgradeExamineEvent args) + { + // UpgradePowerDrawComponent.PowerDrawMultiplier is not the actual multiplier, so we have to do this. + var powerDrawMultiplier = CompOrNull(uid)?.Load / component.BaseLoad + ?? CompOrNull(uid)?.DrawRate / component.BaseLoad; + + if (powerDrawMultiplier is not null) + args.AddPercentageUpgrade("upgrade-power-draw", powerDrawMultiplier.Value); + } + + private void OnSupplierMapInit(EntityUid uid, UpgradePowerSupplierComponent component, MapInitEvent args) + { + if (!TryComp(uid, out var supplier)) + return; + + component.BaseSupplyRate = supplier.MaxSupply; + } + + private void OnSupplierRefreshParts(EntityUid uid, UpgradePowerSupplierComponent component, RefreshPartsEvent args) + { + var supply = component.BaseSupplyRate; + var rating = args.PartRatings[component.MachinePartPowerSupply]; + switch (component.Scaling) + + { + case MachineUpgradeScalingType.Linear: + supply += component.PowerSupplyMultiplier * component.BaseSupplyRate * (rating - 1); + break; + case MachineUpgradeScalingType.Exponential: + supply *= MathF.Pow(component.PowerSupplyMultiplier, rating - 1); + break; + default: + Log.Error($"invalid power scaling type for {ToPrettyString(uid)}."); + supply = component.BaseSupplyRate; + break; + } + + component.ActualScalar = supply / component.BaseSupplyRate; + + if (!TryComp(uid, out var powa)) + return; + + powa.MaxSupply = supply; + } + + private void OnSupplierUpgradeExamine(EntityUid uid, UpgradePowerSupplierComponent component, UpgradeExamineEvent args) + { + args.AddPercentageUpgrade("upgrade-power-supply", component.ActualScalar); + } + + private void OnSupplyRampingMapInit(EntityUid uid, UpgradePowerSupplyRampingComponent component, MapInitEvent args) + { + if (!TryComp(uid, out var battery)) + return; + + component.BaseRampRate = battery.SupplyRampRate; + } + + private void OnSupplyRampingRefreshParts(EntityUid uid, UpgradePowerSupplyRampingComponent component, RefreshPartsEvent args) + { + var rampRate = component.BaseRampRate; + var rating = args.PartRatings[component.MachinePartRampRate]; + switch (component.Scaling) + + { + case MachineUpgradeScalingType.Linear: + rampRate += component.SupplyRampingMultiplier * component.BaseRampRate * (rating - 1); + break; + case MachineUpgradeScalingType.Exponential: + rampRate *= MathF.Pow(component.SupplyRampingMultiplier, rating - 1); + break; + default: + Log.Error($"invalid power supply ramping type for {ToPrettyString(uid)}."); + rampRate = component.BaseRampRate; + break; + } + + component.ActualScalar = rampRate / component.BaseRampRate; + + if (!TryComp(uid, out var battery)) + return; + + battery.SupplyRampRate = rampRate; + } + + private void OnSupplyRampingUpgradeExamine(EntityUid uid, UpgradePowerSupplyRampingComponent component, UpgradeExamineEvent args) + { + args.AddPercentageUpgrade("upgrade-power-supply-ramping", component.ActualScalar); + } +} diff --git a/Content.Server/Power/Generation/Teg/TegSystem.cs b/Content.Server/Power/Generation/Teg/TegSystem.cs index 3510a3da45..540bd6c483 100644 --- a/Content.Server/Power/Generation/Teg/TegSystem.cs +++ b/Content.Server/Power/Generation/Teg/TegSystem.cs @@ -7,6 +7,7 @@ using Content.Server.NodeContainer; using Content.Server.NodeContainer.Nodes; using Content.Server.Power.Components; +using Content.Shared.Atmos; using Content.Shared.DeviceNetwork; using Content.Shared.Examine; using Content.Shared.Power.Generation.Teg; diff --git a/Content.Server/Power/Generator/GeneratorExhaustGasSystem.cs b/Content.Server/Power/Generator/GeneratorExhaustGasSystem.cs index cd85e67221..359c31d75b 100644 --- a/Content.Server/Power/Generator/GeneratorExhaustGasSystem.cs +++ b/Content.Server/Power/Generator/GeneratorExhaustGasSystem.cs @@ -1,5 +1,6 @@ using Content.Server.Atmos; using Content.Server.Atmos.EntitySystems; +using Content.Shared.Atmos; using Content.Shared.Power.Generator; namespace Content.Server.Power.Generator; diff --git a/Content.Server/Power/Generator/GeneratorSignalControlComponent.cs b/Content.Server/Power/Generator/GeneratorSignalControlComponent.cs index f16a09eae3..19ae0bd687 100644 --- a/Content.Server/Power/Generator/GeneratorSignalControlComponent.cs +++ b/Content.Server/Power/Generator/GeneratorSignalControlComponent.cs @@ -1,4 +1,5 @@ using Content.Shared.DeviceLinking; +using Content.Shared.Power.Generator; using Robust.Shared.Prototypes; namespace Content.Server.Power.Generator; diff --git a/Content.Server/Power/Generator/GeneratorSystem.cs b/Content.Server/Power/Generator/GeneratorSystem.cs index a75d1e4113..721a959820 100644 --- a/Content.Server/Power/Generator/GeneratorSystem.cs +++ b/Content.Server/Power/Generator/GeneratorSystem.cs @@ -26,8 +26,11 @@ public sealed class GeneratorSystem : SharedGeneratorSystem [Dependency] private readonly PopupSystem _popup = default!; [Dependency] private readonly PuddleSystem _puddle = default!; + private EntityQuery _upgradeQuery; + public override void Initialize() { + _upgradeQuery = GetEntityQuery(); UpdatesBefore.Add(typeof(PowerNetSystem)); @@ -225,7 +228,9 @@ public override void Update(float frameTime) supplier.Enabled = true; - supplier.MaxSupply = gen.TargetPower; + var upgradeMultiplier = _upgradeQuery.CompOrNull(uid)?.ActualScalar ?? 1f; + + supplier.MaxSupply = gen.TargetPower * upgradeMultiplier; var eff = 1 / CalcFuelEfficiency(gen.TargetPower, gen.OptimalPower, gen); var consumption = gen.OptimalBurnRate * frameTime * eff; diff --git a/Content.Server/Power/Generator/PortableGeneratorSystem.cs b/Content.Server/Power/Generator/PortableGeneratorSystem.cs index e7dfa35178..e2996a54d7 100644 --- a/Content.Server/Power/Generator/PortableGeneratorSystem.cs +++ b/Content.Server/Power/Generator/PortableGeneratorSystem.cs @@ -48,30 +48,21 @@ public override void Initialize() private void GeneratorSwitchOutputMessage(EntityUid uid, PortableGeneratorComponent component, PortableGeneratorSwitchOutputMessage args) { - if (args.Session.AttachedEntity == null) - return; - var fuelGenerator = Comp(uid); if (fuelGenerator.On) return; - _switchable.Cycle(uid, args.Session.AttachedEntity.Value); + _switchable.Cycle(uid, args.Actor); } private void GeneratorStopMessage(EntityUid uid, PortableGeneratorComponent component, PortableGeneratorStopMessage args) { - if (args.Session.AttachedEntity == null) - return; - - StopGenerator(uid, component, args.Session.AttachedEntity.Value); + StopGenerator(uid, component, args.Actor); } private void GeneratorStartMessage(EntityUid uid, PortableGeneratorComponent component, PortableGeneratorStartMessage args) { - if (args.Session.AttachedEntity == null) - return; - - StartGenerator(uid, component, args.Session.AttachedEntity.Value); + StartGenerator(uid, component, args.Actor); } private void StartGenerator(EntityUid uid, PortableGeneratorComponent component, EntityUid user) @@ -234,7 +225,7 @@ private void UpdateUI( if (powerSupplier.Net is { IsConnectedNetwork: true } net) networkStats = (net.NetworkNode.LastCombinedLoad, net.NetworkNode.LastCombinedSupply); - _uiSystem.TrySetUiState( + _uiSystem.SetUiState( uid, GeneratorComponentUiKey.Key, new PortableGeneratorComponentBuiState(fuelComp, fuel, clogged, networkStats)); diff --git a/Content.Server/Power/Systems/BatteryDrinkerSystem.cs b/Content.Server/Power/Systems/BatteryDrinkerSystem.cs index 9a06d4181c..e42783c4d8 100644 --- a/Content.Server/Power/Systems/BatteryDrinkerSystem.cs +++ b/Content.Server/Power/Systems/BatteryDrinkerSystem.cs @@ -1,4 +1,3 @@ -using System.Diagnostics.CodeAnalysis; using System.Linq; using Content.Server.Power.Components; using Content.Shared.Containers.ItemSlots; @@ -12,8 +11,6 @@ using Content.Server.Popups; using Content.Server.PowerCell; using Content.Shared.Popups; -using Content.Shared.Silicon.Components; -using FastAccessors; using Robust.Shared.Audio.Systems; using Robust.Shared.Containers; @@ -21,13 +18,11 @@ namespace Content.Server.Power; public sealed class BatteryDrinkerSystem : EntitySystem { - [Dependency] private readonly ItemSlotsSystem _slots = default!; [Dependency] private readonly SharedDoAfterSystem _doAfter = default!; [Dependency] private readonly SharedAudioSystem _audio = default!; [Dependency] private readonly BatterySystem _battery = default!; [Dependency] private readonly SiliconChargeSystem _silicon = default!; [Dependency] private readonly PopupSystem _popup = default!; - [Dependency] private readonly PowerCellSystem _powerCell = default!; [Dependency] private readonly SharedContainerSystem _container = default!; public override void Initialize() @@ -41,12 +36,10 @@ public override void Initialize() private void AddAltVerb(EntityUid uid, BatteryComponent batteryComponent, GetVerbsEvent args) { - if (!args.CanAccess || !args.CanInteract) - return; - - if (!TryComp(args.User, out var drinkerComp) || - !TestDrinkableBattery(uid, drinkerComp) || - !_silicon.TryGetSiliconBattery(args.User, out var drinkerBattery)) + if (!args.CanAccess || !args.CanInteract + || !TryComp(args.User, out var drinkerComp) + || !TestDrinkableBattery(uid, drinkerComp) + || !_silicon.TryGetSiliconBattery(args.User, out var _)) return; AlternativeVerb verb = new() @@ -80,6 +73,7 @@ private void DrinkBattery(EntityUid target, EntityUid user, BatteryDrinkerCompon { BreakOnDamage = true, BreakOnTargetMove = true, + BreakOnUserMove = true, Broadcast = false, DistanceThreshold = 1.35f, RequireCanInteract = true, @@ -91,39 +85,28 @@ private void DrinkBattery(EntityUid target, EntityUid user, BatteryDrinkerCompon private void OnDoAfter(EntityUid uid, BatteryDrinkerComponent drinkerComp, DoAfterEvent args) { - if (args.Cancelled || args.Target == null) + if (args.Cancelled || args.Target == null + || !TryComp(args.Target.Value, out var sourceBattery) + || !_silicon.TryGetSiliconBattery(uid, out var drinkerBatteryComponent) + || !TryComp(uid, out PowerCellSlotComponent? batterySlot) + || !TryComp(args.Target.Value, out var sourceComp) + || !_container.TryGetContainer(uid, batterySlot.CellSlotId, out var container) + || container.ContainedEntities is null) return; var source = args.Target.Value; - var drinker = uid; - var sourceBattery = Comp(source); - - _silicon.TryGetSiliconBattery(drinker, out var drinkerBatteryComponent); - - if (!TryComp(uid, out PowerCellSlotComponent? batterySlot)) - return; - - var container = _container.GetContainer(uid, batterySlot.CellSlotId); var drinkerBattery = container.ContainedEntities.First(); - - TryComp(source, out var sourceComp); - - DebugTools.AssertNotNull(drinkerBattery); - - if (drinkerBattery == null) - return; - var amountToDrink = drinkerComp.DrinkMultiplier * 1000; amountToDrink = MathF.Min(amountToDrink, sourceBattery.CurrentCharge); amountToDrink = MathF.Min(amountToDrink, drinkerBatteryComponent!.MaxCharge - drinkerBatteryComponent.CurrentCharge); - if (sourceComp != null && sourceComp.MaxAmount > 0) + if (sourceComp.MaxAmount > 0) amountToDrink = MathF.Min(amountToDrink, (float) sourceComp.MaxAmount); if (amountToDrink <= 0) { - _popup.PopupEntity(Loc.GetString("battery-drinker-empty", ("target", source)), drinker, drinker); + _popup.PopupEntity(Loc.GetString("battery-drinker-empty", ("target", source)), uid, uid); return; } @@ -135,10 +118,11 @@ private void OnDoAfter(EntityUid uid, BatteryDrinkerComponent drinkerComp, DoAft _battery.SetCharge(source, 0); } - if (sourceComp != null && sourceComp.DrinkSound != null){ - _popup.PopupEntity(Loc.GetString("ipc-recharge-tip"), drinker, drinker, PopupType.SmallCaution); - _audio.PlayPvs(sourceComp.DrinkSound, source); - Spawn("EffectSparks", Transform(source).Coordinates); - } + if (sourceComp.DrinkSound is null) + return; + + _popup.PopupEntity(Loc.GetString("ipc-recharge-tip"), uid, uid, PopupType.SmallCaution); + _audio.PlayPvs(sourceComp.DrinkSound, source); + Spawn("EffectSparks", Transform(source).Coordinates); } } diff --git a/Content.Server/Power/Systems/BatteryElectrocuteChargeSystem.cs b/Content.Server/Power/Systems/BatteryElectrocuteChargeSystem.cs index 9993c151b1..707d7c679e 100644 --- a/Content.Server/Power/Systems/BatteryElectrocuteChargeSystem.cs +++ b/Content.Server/Power/Systems/BatteryElectrocuteChargeSystem.cs @@ -4,7 +4,6 @@ using Content.Server.Power.EntitySystems; using Content.Shared.Electrocution; using Robust.Shared.Random; -using Robust.Shared.Timing; namespace Content.Server.Power.Systems; @@ -26,10 +25,10 @@ private void OnElectrocuted(EntityUid uid, BatteryComponent battery, Electrocute if (args.ShockDamage == null || args.ShockDamage <= 0) return; - var damagePerWatt = ElectrocutionSystem.ElectrifiedDamagePerWatt * 2; - - var damage = args.ShockDamage.Value * args.SiemensCoefficient; - var charge = Math.Min(damage / damagePerWatt, battery.MaxCharge * 0.25f) * _random.NextFloat(0.75f, 1.25f); + var charge = Math.Min(args.ShockDamage.Value * args.SiemensCoefficient + / ElectrocutionSystem.ElectrifiedDamagePerWatt * 2, + battery.MaxCharge * 0.25f) + * _random.NextFloat(0.75f, 1.25f); _battery.SetCharge(uid, battery.CurrentCharge + charge); diff --git a/Content.Server/Power/Systems/SiliconEmitSoundOnDrainedSystem.cs b/Content.Server/Power/Systems/SiliconEmitSoundOnDrainedSystem.cs index 28a46cc7f7..f95a940aae 100644 --- a/Content.Server/Power/Systems/SiliconEmitSoundOnDrainedSystem.cs +++ b/Content.Server/Power/Systems/SiliconEmitSoundOnDrainedSystem.cs @@ -2,7 +2,6 @@ using Content.Shared.Sound.Components; using Content.Server.Sound; using Content.Shared.Mobs; -using Content.Shared.Silicon.Systems; namespace Content.Server.Silicon; @@ -35,7 +34,9 @@ private void OnAlive(EntityUid uid, SiliconEmitSoundOnDrainedComponent component public void OnStateChange(EntityUid uid, SiliconEmitSoundOnDrainedComponent component, MobStateChangedEvent args) { - if (args.NewMobState == MobState.Dead) - RemComp(uid); + if (args.NewMobState != MobState.Dead) + return; + + RemComp(uid); } } diff --git a/Content.Server/PowerCell/PowerCellSystem.cs b/Content.Server/PowerCell/PowerCellSystem.cs index d4c1faa4c9..f45a01b2e1 100644 --- a/Content.Server/PowerCell/PowerCellSystem.cs +++ b/Content.Server/PowerCell/PowerCellSystem.cs @@ -11,6 +11,7 @@ using Content.Server.UserInterface; using Content.Shared.Containers.ItemSlots; using Content.Shared.Popups; +using ActivatableUISystem = Content.Shared.UserInterface.ActivatableUISystem; namespace Content.Server.PowerCell; diff --git a/Content.Server/Prayer/PrayerSystem.cs b/Content.Server/Prayer/PrayerSystem.cs index f5051741c0..c8ef368dad 100644 --- a/Content.Server/Prayer/PrayerSystem.cs +++ b/Content.Server/Prayer/PrayerSystem.cs @@ -39,7 +39,7 @@ private void AddPrayVerb(EntityUid uid, PrayableComponent comp, GetVerbsEvent(curPrefs.Characters) { @@ -192,23 +194,32 @@ public async Task LoadData(ICommonSession session, CancellationToken cancel) async Task LoadPrefs() { - var prefs = await GetOrCreatePreferencesAsync(session.UserId); + var prefs = await GetOrCreatePreferencesAsync(session.UserId, cancel); prefsData.Prefs = prefs; - prefsData.PrefsLoaded = true; - - var msg = new MsgPreferencesAndSettings - { - Preferences = prefs, - Settings = new GameSettings - { - MaxCharacterSlots = MaxCharacterSlots - } - }; - _netManager.ServerSendMessage(msg, session.Channel); } } } + public void FinishLoad(ICommonSession session) + { + // This is a separate step from the actual database load. + // Sanitizing preferences requires play time info due to loadouts. + // And play time info is loaded concurrently from the DB with preferences. + var prefsData = _cachedPlayerPrefs[session.UserId]; + DebugTools.Assert(prefsData.Prefs != null); + prefsData.Prefs = SanitizePreferences(session, prefsData.Prefs, _dependencies); + + prefsData.PrefsLoaded = true; + + var msg = new MsgPreferencesAndSettings(); + msg.Preferences = prefsData.Prefs; + msg.Settings = new GameSettings + { + MaxCharacterSlots = MaxCharacterSlots + }; + _netManager.ServerSendMessage(msg, session.Channel); + } + public void OnClientDisconnected(ICommonSession session) { _cachedPlayerPrefs.Remove(session.UserId); @@ -267,18 +278,15 @@ public PlayerPreferences GetPreferences(NetUserId userId) return null; } - private async Task GetOrCreatePreferencesAsync(NetUserId userId) + private async Task GetOrCreatePreferencesAsync(NetUserId userId, CancellationToken cancel) { - var prefs = await _db.GetPlayerPreferencesAsync(userId); + var prefs = await _db.GetPlayerPreferencesAsync(userId, cancel); if (prefs is null) { - return await _db.InitPrefsAsync(userId, HumanoidCharacterProfile.Random()); + return await _db.InitPrefsAsync(userId, HumanoidCharacterProfile.Random(), cancel); } - var session = _playerManager.GetSessionById(userId); - var collection = IoCManager.Instance!; - - return SanitizePreferences(session, prefs, collection); + return prefs; } private PlayerPreferences SanitizePreferences(ICommonSession session, PlayerPreferences prefs, diff --git a/Content.Server/Psionics/PsionicsSystem.Events.cs b/Content.Server/Psionics/PsionicsSystem.Events.cs index 82a0faec64..f82621115d 100644 --- a/Content.Server/Psionics/PsionicsSystem.Events.cs +++ b/Content.Server/Psionics/PsionicsSystem.Events.cs @@ -1,19 +1,8 @@ -namespace Content.Server.Psionics -{ - /// - /// Raised on an entity about to roll for a Psionic Power, after their baseline chances of success are calculated. - /// - [ByRefEvent] - public struct OnRollPsionicsEvent - { - public readonly EntityUid Roller; - public float BaselineChance; - public OnRollPsionicsEvent(EntityUid roller, float baselineChance) - { - Roller = roller; - BaselineChance = baselineChance; - } - } -} +namespace Content.Server.Psionics; +/// +/// Raised on an entity about to roll for a Psionic Power, after their baseline chances of success are calculated. +/// +[ByRefEvent] +public record struct OnRollPsionicsEvent(EntityUid Roller, float BaselineChance); diff --git a/Content.Server/Psionics/PsionicsSystem.cs b/Content.Server/Psionics/PsionicsSystem.cs index 23cf6aeb80..90f69cf796 100644 --- a/Content.Server/Psionics/PsionicsSystem.cs +++ b/Content.Server/Psionics/PsionicsSystem.cs @@ -11,139 +11,243 @@ using Robust.Shared.Audio.Systems; using Robust.Shared.Configuration; using Robust.Shared.Random; +using Content.Shared.Popups; +using Content.Shared.Chat; +using Robust.Server.Player; +using Content.Server.Chat.Managers; +using Robust.Shared.Prototypes; +using Content.Shared.Psionics; -namespace Content.Server.Psionics +namespace Content.Server.Psionics; + +public sealed class PsionicsSystem : EntitySystem { - public sealed class PsionicsSystem : EntitySystem + [Dependency] private readonly IRobustRandom _random = default!; + [Dependency] private readonly PsionicAbilitiesSystem _psionicAbilitiesSystem = default!; + [Dependency] private readonly StatusEffectsSystem _statusEffects = default!; + [Dependency] private readonly ElectrocutionSystem _electrocutionSystem = default!; + [Dependency] private readonly MindSwapPowerSystem _mindSwapPowerSystem = default!; + [Dependency] private readonly GlimmerSystem _glimmerSystem = default!; + [Dependency] private readonly NpcFactionSystem _npcFactonSystem = default!; + [Dependency] private readonly IConfigurationManager _cfg = default!; + [Dependency] private readonly SharedAudioSystem _audio = default!; + [Dependency] private readonly SharedPopupSystem _popups = default!; + [Dependency] private readonly IPlayerManager _playerManager = default!; + [Dependency] private readonly IChatManager _chatManager = default!; + [Dependency] private readonly IPrototypeManager _protoMan = default!; + + private const string BaselineAmplification = "Baseline Amplification"; + private const string BaselineDampening = "Baseline Dampening"; + + // Yes these are a mirror of what's normally default datafields on the PsionicPowerPrototype. + // We haven't generated a prototype yet, and I'm not going to duplicate them on the PsionicComponent. + private const string PsionicRollFailedMessage = "psionic-roll-failed"; + private const string PsionicRollFailedColor = "#8A00C2"; + private const int PsionicRollFailedFontSize = 12; + private const ChatChannel PsionicRollFailedChatChannel = ChatChannel.Emotes; + + /// + /// Unfortunately, since spawning as a normal role and anything else is so different, + /// this is the only way to unify them, for now at least. + /// + Queue<(PsionicComponent component, EntityUid uid)> _rollers = new(); + public override void Update(float frameTime) { - [Dependency] private readonly IRobustRandom _random = default!; - [Dependency] private readonly PsionicAbilitiesSystem _psionicAbilitiesSystem = default!; - [Dependency] private readonly StatusEffectsSystem _statusEffects = default!; - [Dependency] private readonly ElectrocutionSystem _electrocutionSystem = default!; - [Dependency] private readonly MindSwapPowerSystem _mindSwapPowerSystem = default!; - [Dependency] private readonly GlimmerSystem _glimmerSystem = default!; - [Dependency] private readonly NpcFactionSystem _npcFactonSystem = default!; - [Dependency] private readonly IConfigurationManager _cfg = default!; - [Dependency] private readonly SharedAudioSystem _audio = default!; - - private const string BaselineAmplification = "Baseline Amplification"; - private const string BaselineDampening = "Baseline Dampening"; - - /// - /// Unfortunately, since spawning as a normal role and anything else is so different, - /// this is the only way to unify them, for now at least. - /// - Queue<(PsionicComponent component, EntityUid uid)> _rollers = new(); - public override void Update(float frameTime) - { - base.Update(frameTime); - foreach (var roller in _rollers) - RollPsionics(roller.uid, roller.component, false); - _rollers.Clear(); - } - public override void Initialize() - { - base.Initialize(); - SubscribeLocalEvent(OnStartup); - SubscribeLocalEvent(OnMeleeHit); - SubscribeLocalEvent(OnStamHit); + base.Update(frameTime); + foreach (var roller in _rollers) + RollPsionics(roller.uid, roller.component, true); + _rollers.Clear(); + } + public override void Initialize() + { + base.Initialize(); + SubscribeLocalEvent(OnStartup); + SubscribeLocalEvent(OnMeleeHit); + SubscribeLocalEvent(OnStamHit); - SubscribeLocalEvent(OnInit); - SubscribeLocalEvent(OnRemove); - } + SubscribeLocalEvent(OnInit); + SubscribeLocalEvent(OnRemove); + } - private void OnStartup(EntityUid uid, PsionicComponent component, MapInitEvent args) - { - _rollers.Enqueue((component, uid)); - } + private void OnStartup(EntityUid uid, PsionicComponent component, MapInitEvent args) + { + if (!component.Removable + || !component.CanReroll) + return; - private void OnMeleeHit(EntityUid uid, AntiPsionicWeaponComponent component, MeleeHitEvent args) - { - foreach (var entity in args.HitEntities) - { - if (HasComp(entity)) - { - _audio.PlayPvs("/Audio/Effects/lightburn.ogg", entity); - args.ModifiersList.Add(component.Modifiers); - if (_random.Prob(component.DisableChance)) - _statusEffects.TryAddStatusEffect(entity, component.DisableStatus, TimeSpan.FromSeconds(component.DisableDuration), true, component.DisableStatus); - } - - if (TryComp(entity, out var swapped)) - { - _mindSwapPowerSystem.Swap(entity, swapped.OriginalEntity, true); - return; - } - - if (component.Punish && !HasComp(entity) && _random.Prob(component.PunishChances)) - _electrocutionSystem.TryDoElectrocution(args.User, null, component.PunishSelfDamage, TimeSpan.FromSeconds(component.PunishStunDuration), false); - } - } + CheckPowerCost(uid, component); + _rollers.Enqueue((component, uid)); + } - private void OnInit(EntityUid uid, PsionicComponent component, ComponentStartup args) - { - component.AmplificationSources.Add(BaselineAmplification, _random.NextFloat(component.BaselineAmplification.Item1, component.BaselineAmplification.Item2)); - component.DampeningSources.Add(BaselineDampening, _random.NextFloat(component.BaselineDampening.Item1, component.BaselineDampening.Item2)); + /// + /// On MapInit, PsionicComponent isn't going to contain any powers. + /// So before we send a Latent Psychic into the roundstart roll queue, we need to calculate their power cost in advance. + /// + private void CheckPowerCost(EntityUid uid, PsionicComponent component) + { + if (!TryComp(uid, out var innate)) + return; - if (!component.Removable - || !TryComp(uid, out var factions) - || _npcFactonSystem.ContainsFaction(uid, "GlimmerMonster", factions)) - return; + var powerCount = 0; + foreach (var powerId in innate.PowersToAdd) + if (_protoMan.TryIndex(powerId, out var power)) + powerCount += power.PowerSlotCost; - _npcFactonSystem.AddFaction(uid, "PsionicInterloper"); - } + component.NextPowerCost = 100 * MathF.Pow(2, powerCount); + } - private void OnRemove(EntityUid uid, PsionicComponent component, ComponentRemove args) + private void OnMeleeHit(EntityUid uid, AntiPsionicWeaponComponent component, MeleeHitEvent args) + { + foreach (var entity in args.HitEntities) + CheckAntiPsionic(entity, component, args); + } + + private void CheckAntiPsionic(EntityUid entity, AntiPsionicWeaponComponent component, MeleeHitEvent args) + { + if (HasComp(entity)) { - if (!HasComp(uid)) + _audio.PlayPvs("/Audio/Effects/lightburn.ogg", entity); + args.ModifiersList.Add(component.Modifiers); + + if (!_random.Prob(component.DisableChance)) return; - _npcFactonSystem.RemoveFaction(uid, "PsionicInterloper"); + _statusEffects.TryAddStatusEffect(entity, component.DisableStatus, TimeSpan.FromSeconds(component.DisableDuration), true, component.DisableStatus); } - private void OnStamHit(EntityUid uid, AntiPsionicWeaponComponent component, TakeStaminaDamageEvent args) - { - if (HasComp(args.Target)) - args.FlatModifier += component.PsychicStaminaDamage; - } + if (TryComp(entity, out var swapped)) + _mindSwapPowerSystem.Swap(entity, swapped.OriginalEntity, true); - public void RollPsionics(EntityUid uid, PsionicComponent component, bool applyGlimmer = true, float rollEventMultiplier = 1f) - { - if (!_cfg.GetCVar(CCVars.PsionicRollsEnabled) - || !component.Removable) - return; + if (!component.Punish + || HasComp(entity) + || !_random.Prob(component.PunishChances)) + return; + + _electrocutionSystem.TryDoElectrocution(args.User, null, component.PunishSelfDamage, TimeSpan.FromSeconds(component.PunishStunDuration), false); + } - // Calculate the initial odds based on the innate potential - var baselineChance = component.Chance - * component.PowerRollMultiplier - + component.PowerRollFlatBonus; + private void OnInit(EntityUid uid, PsionicComponent component, ComponentStartup args) + { + component.AmplificationSources.Add(BaselineAmplification, _random.NextFloat(component.BaselineAmplification.Item1, component.BaselineAmplification.Item2)); + component.DampeningSources.Add(BaselineDampening, _random.NextFloat(component.BaselineDampening.Item1, component.BaselineDampening.Item2)); - // Increase the initial odds based on Glimmer. - // TODO: Change this equation when I do my Glimmer Refactor - baselineChance += applyGlimmer - ? (float) _glimmerSystem.Glimmer / 1000 //Convert from Glimmer to %chance - : 0; + if (!component.Removable + || !TryComp(uid, out var factions) + || _npcFactonSystem.ContainsFaction(uid, "GlimmerMonster", factions)) + return; - // Certain sources of power rolls provide their own multiplier. - baselineChance *= rollEventMultiplier; + _npcFactonSystem.AddFaction(uid, "PsionicInterloper"); + } - // Ask if the Roller has any other effects to contribute, such as Traits. - var ev = new OnRollPsionicsEvent(uid, baselineChance); - RaiseLocalEvent(uid, ref ev); + private void OnRemove(EntityUid uid, PsionicComponent component, ComponentRemove args) + { + if (!HasComp(uid)) + return; - if (_random.Prob(Math.Clamp(ev.BaselineChance, 0, 1))) - _psionicAbilitiesSystem.AddPsionics(uid); - } + _npcFactonSystem.RemoveFaction(uid, "PsionicInterloper"); + } - public void RerollPsionics(EntityUid uid, PsionicComponent? psionic = null, float bonusMuliplier = 1f) - { - if (!Resolve(uid, ref psionic, false) - || !psionic.Removable - || psionic.CanReroll) - return; + private void OnStamHit(EntityUid uid, AntiPsionicWeaponComponent component, TakeStaminaDamageEvent args) + { + if (!HasComp(args.Target)) + return; - RollPsionics(uid, psionic, true, bonusMuliplier); - psionic.CanReroll = true; - } + args.FlatModifier += component.PsychicStaminaDamage; + } + + /// + /// Now we handle Potentia calculations, the more powers you have, the harder it is to obtain psionics, but the content of your roll carries over to the next roll. + /// Your first power costs 100(2^0 is always 1), your second power costs 200, your 3rd power costs 400, and so on. This also considers people with roundstart powers. + /// Such that a Mystagogue(who has 3 powers at roundstart) needs 800 Potentia to gain his 4th power. + /// + /// + /// This exponential cost is mainly done to prevent stations from becoming "Space Hogwarts", + /// which was a common complaint with Psionic Refactor opening up the opportunity for people to have multiple powers. + /// + private bool HandlePotentiaCalculations(EntityUid uid, PsionicComponent component, float psionicChance) + { + component.Potentia += _random.NextFloat(0 + psionicChance, 100 + psionicChance); + + if (component.Potentia < component.NextPowerCost) + return false; + + component.Potentia -= component.NextPowerCost; + _psionicAbilitiesSystem.AddPsionics(uid); + component.NextPowerCost = 100 * MathF.Pow(2, component.PowerSlotsTaken); + return true; + } + + /// + /// Provide the player with feedback about their roll failure, so they don't just think nothing happened. + /// TODO: Add an audio cue to this and other areas of psionic player feedback. + /// + private void HandleRollFeedback(EntityUid uid) + { + if (!_playerManager.TryGetSessionByEntity(uid, out var session) + || !Loc.TryGetString(PsionicRollFailedMessage, out var rollFailedMessage)) + return; + + _popups.PopupEntity(rollFailedMessage, uid, uid, PopupType.MediumCaution); + + // Popups only last a few seconds, and are easily ignored. + // So we also put a message in chat to make it harder to miss. + var feedbackMessage = $"[font size={PsionicRollFailedFontSize}][color={PsionicRollFailedColor}]{rollFailedMessage}[/color][/font]"; + _chatManager.ChatMessageToOne( + PsionicRollFailedChatChannel, + feedbackMessage, + feedbackMessage, + EntityUid.Invalid, + false, + session.Channel); + } + + /// + /// This function attempts to generate a psionic power by incrementing a Psion's Potentia stat by a random amount, then checking if it beats a certain threshold. + /// Please consider going through RerollPsionics or PsionicAbilitiesSystem.InitializePsionicPower instead of this function, particularly if you don't have a good reason to call this directly. + /// + public void RollPsionics(EntityUid uid, PsionicComponent component, bool applyGlimmer = true, float rollEventMultiplier = 1f) + { + if (!_cfg.GetCVar(CCVars.PsionicRollsEnabled) + || !component.Removable) + return; + + // Calculate the initial odds based on the innate potential + var baselineChance = component.Chance + * component.PowerRollMultiplier + + component.PowerRollFlatBonus + + _random.NextFloat(0, 100); + + // Increase the initial odds based on Glimmer. + // TODO: Change this equation when I do my Glimmer Refactor + baselineChance += applyGlimmer + ? (float) _glimmerSystem.Glimmer / 1000 //Convert from Glimmer to %chance + : 0; + + // Certain sources of power rolls provide their own multiplier. + baselineChance *= rollEventMultiplier; + + // Ask if the Roller has any other effects to contribute, such as Traits. + var ev = new OnRollPsionicsEvent(uid, baselineChance); + RaiseLocalEvent(uid, ref ev); + + if (HandlePotentiaCalculations(uid, component, ev.BaselineChance)) + return; + + HandleRollFeedback(uid); + } + + /// + /// Each person has a single free reroll for their Psionics, which certain conditions can restore. + /// This function attempts to "Spend" a reroll, if one is available. + /// + public void RerollPsionics(EntityUid uid, PsionicComponent? psionic = null, float bonusMuliplier = 1f) + { + if (!Resolve(uid, ref psionic, false) + || !psionic.Removable + || !psionic.CanReroll) + return; + + RollPsionics(uid, psionic, true, bonusMuliplier); + psionic.CanReroll = false; } } diff --git a/Content.Server/Radio/Components/RadioJammerComponent.cs b/Content.Server/Radio/Components/RadioJammerComponent.cs deleted file mode 100644 index 93504ef957..0000000000 --- a/Content.Server/Radio/Components/RadioJammerComponent.cs +++ /dev/null @@ -1,20 +0,0 @@ -using Content.Server.Radio.EntitySystems; - -namespace Content.Server.Radio.Components; - -/// -/// When activated () prevents from sending messages in range -/// -[RegisterComponent] -[Access(typeof(JammerSystem))] -public sealed partial class RadioJammerComponent : Component -{ - [DataField("range"), ViewVariables(VVAccess.ReadWrite)] - public float Range = 8f; - - /// - /// Power usage per second when enabled - /// - [DataField("wattage"), ViewVariables(VVAccess.ReadWrite)] - public float Wattage = 2f; -} diff --git a/Content.Server/Radio/EntitySystems/JammerSystem.cs b/Content.Server/Radio/EntitySystems/JammerSystem.cs index bba8c4766e..6e0689390e 100644 --- a/Content.Server/Radio/EntitySystems/JammerSystem.cs +++ b/Content.Server/Radio/EntitySystems/JammerSystem.cs @@ -1,27 +1,22 @@ using Content.Server.DeviceNetwork.Components; -using Content.Server.DeviceNetwork.Systems; -using Content.Server.Medical.CrewMonitoring; using Content.Server.Medical.SuitSensors; -using Content.Server.Popups; using Content.Server.Power.EntitySystems; using Content.Server.PowerCell; using Content.Server.Radio.Components; -using Content.Server.Station.Systems; using Content.Shared.DeviceNetwork.Components; using Content.Shared.Examine; using Content.Shared.Interaction; using Content.Shared.PowerCell.Components; +using Content.Shared.RadioJammer; +using Content.Shared.Radio.EntitySystems; namespace Content.Server.Radio.EntitySystems; -public sealed class JammerSystem : EntitySystem +public sealed class JammerSystem : SharedJammerSystem { [Dependency] private readonly PowerCellSystem _powerCell = default!; [Dependency] private readonly BatterySystem _battery = default!; - [Dependency] private readonly PopupSystem _popup = default!; [Dependency] private readonly SharedTransformSystem _transform = default!; - [Dependency] private readonly StationSystem _stationSystem = default!; - [Dependency] private readonly SingletonDeviceNetServerSystem _singletonServerSystem = default!; public override void Initialize() { @@ -37,14 +32,37 @@ public override void Initialize() public override void Update(float frameTime) { var query = EntityQueryEnumerator(); + while (query.MoveNext(out var uid, out var _, out var jam)) { - if (_powerCell.TryGetBatteryFromSlot(uid, out var batteryUid, out var battery) && - !_battery.TryUseCharge(batteryUid.Value, jam.Wattage * frameTime, battery)) + + if (_powerCell.TryGetBatteryFromSlot(uid, out var batteryUid, out var battery)) { - RemComp(uid); - RemComp(uid); + if (!_battery.TryUseCharge(batteryUid.Value, GetCurrentWattage(jam) * frameTime, battery)) + { + ChangeLEDState(false, uid); + RemComp(uid); + RemComp(uid); + } + else + { + var percentCharged = battery.CurrentCharge / battery.MaxCharge; + if (percentCharged > .50) + { + ChangeChargeLevel(RadioJammerChargeLevel.High, uid); + } + else if (percentCharged < .15) + { + ChangeChargeLevel(RadioJammerChargeLevel.Low, uid); + } + else + { + ChangeChargeLevel(RadioJammerChargeLevel.Medium, uid); + } + } + } + } } @@ -52,40 +70,49 @@ private void OnActivate(EntityUid uid, RadioJammerComponent comp, ActivateInWorl { var activated = !HasComp(uid) && _powerCell.TryGetBatteryFromSlot(uid, out var battery) && - battery.CurrentCharge > comp.Wattage; + battery.CurrentCharge > GetCurrentWattage(comp); if (activated) { + ChangeLEDState(true, uid); EnsureComp(uid); EnsureComp(uid, out var jammingComp); - jammingComp.Range = comp.Range; + jammingComp.Range = GetCurrentRange(comp); jammingComp.JammableNetworks.Add(DeviceNetworkComponent.DeviceNetIdDefaults.Wireless.ToString()); Dirty(uid, jammingComp); } else { - RemComp(uid); - RemComp(uid); + ChangeLEDState(false, uid); + RemCompDeferred(uid); + RemCompDeferred(uid); } var state = Loc.GetString(activated ? "radio-jammer-component-on-state" : "radio-jammer-component-off-state"); var message = Loc.GetString("radio-jammer-component-on-use", ("state", state)); - _popup.PopupEntity(message, args.User, args.User); + Popup.PopupEntity(message, args.User, args.User); args.Handled = true; } private void OnPowerCellChanged(EntityUid uid, ActiveRadioJammerComponent comp, PowerCellChangedEvent args) { if (args.Ejected) - RemComp(uid); + { + ChangeLEDState(false, uid); + RemCompDeferred(uid); + } } private void OnExamine(EntityUid uid, RadioJammerComponent comp, ExaminedEvent args) { if (args.IsInDetailsRange) { - var msg = HasComp(uid) + var powerIndicator = HasComp(uid) ? Loc.GetString("radio-jammer-component-examine-on-state") : Loc.GetString("radio-jammer-component-examine-off-state"); - args.PushMarkup(msg); + args.PushMarkup(powerIndicator); + + var powerLevel = Loc.GetString(comp.Settings[comp.SelectedPowerLevel].Name); + var switchIndicator = Loc.GetString("radio-jammer-component-switch-setting", ("powerLevel", powerLevel)); + args.PushMarkup(switchIndicator); } } @@ -112,7 +139,7 @@ private bool ShouldCancelSend(EntityUid sourceUid) while (query.MoveNext(out _, out _, out var jam, out var transform)) { - if (source.InRange(EntityManager, _transform, transform.Coordinates, jam.Range)) + if (source.InRange(EntityManager, _transform, transform.Coordinates, GetCurrentRange(jam))) { return true; } diff --git a/Content.Server/Radio/EntitySystems/RadioDeviceSystem.cs b/Content.Server/Radio/EntitySystems/RadioDeviceSystem.cs index fc3f69a3ba..ddf2a41b57 100644 --- a/Content.Server/Radio/EntitySystems/RadioDeviceSystem.cs +++ b/Content.Server/Radio/EntitySystems/RadioDeviceSystem.cs @@ -203,6 +203,9 @@ private void OnAttemptListen(EntityUid uid, RadioMicrophoneComponent component, private void OnReceiveRadio(EntityUid uid, RadioSpeakerComponent component, ref RadioReceiveEvent args) { + if (uid == args.RadioSource) + return; + var nameEv = new TransformSpeakerNameEvent(args.MessageSource, Name(args.MessageSource)); RaiseLocalEvent(args.MessageSource, nameEv); @@ -221,25 +224,25 @@ private void OnBeforeIntercomUiOpen(EntityUid uid, IntercomComponent component, private void OnToggleIntercomMic(EntityUid uid, IntercomComponent component, ToggleIntercomMicMessage args) { - if (component.RequiresPower && !this.IsPowered(uid, EntityManager) || args.Session.AttachedEntity is not { } user) + if (component.RequiresPower && !this.IsPowered(uid, EntityManager)) return; - SetMicrophoneEnabled(uid, user, args.Enabled, true); + SetMicrophoneEnabled(uid, args.Actor, args.Enabled, true); UpdateIntercomUi(uid, component); } private void OnToggleIntercomSpeaker(EntityUid uid, IntercomComponent component, ToggleIntercomSpeakerMessage args) { - if (component.RequiresPower && !this.IsPowered(uid, EntityManager) || args.Session.AttachedEntity is not { } user) + if (component.RequiresPower && !this.IsPowered(uid, EntityManager)) return; - SetSpeakerEnabled(uid, user, args.Enabled, true); + SetSpeakerEnabled(uid, args.Actor, args.Enabled, true); UpdateIntercomUi(uid, component); } private void OnSelectIntercomChannel(EntityUid uid, IntercomComponent component, SelectIntercomChannelMessage args) { - if (component.RequiresPower && !this.IsPowered(uid, EntityManager) || args.Session.AttachedEntity is not { }) + if (component.RequiresPower && !this.IsPowered(uid, EntityManager)) return; if (!_protoMan.TryIndex(args.Channel, out _) || !component.SupportedChannels.Contains(args.Channel)) @@ -262,6 +265,6 @@ private void UpdateIntercomUi(EntityUid uid, IntercomComponent component) var availableChannels = component.SupportedChannels; var selectedChannel = micComp?.BroadcastChannel ?? SharedChatSystem.CommonChannel; var state = new IntercomBoundUIState(micEnabled, speakerEnabled, availableChannels, selectedChannel); - _ui.TrySetUiState(uid, IntercomUiKey.Key, state); + _ui.SetUiState(uid, IntercomUiKey.Key, state); } } diff --git a/Content.Server/Radio/EntitySystems/RadioSystem.cs b/Content.Server/Radio/EntitySystems/RadioSystem.cs index 5fce6f770a..28e6bfc108 100644 --- a/Content.Server/Radio/EntitySystems/RadioSystem.cs +++ b/Content.Server/Radio/EntitySystems/RadioSystem.cs @@ -126,7 +126,7 @@ public void SendRadioMessage(EntityUid messageSource, string message, RadioChann var obfuscatedWrapped = WrapRadioMessage(messageSource, channel, name, obfuscated, language); var notUdsMsg = new ChatMessage(ChatChannel.Radio, obfuscated, obfuscatedWrapped, NetEntity.Invalid, null); - var ev = new RadioReceiveEvent(messageSource, channel, msg, notUdsMsg, language); + var ev = new RadioReceiveEvent(messageSource, channel, msg, notUdsMsg, language, radioSource); var sendAttemptEv = new RadioSendAttemptEvent(channel, radioSource); RaiseLocalEvent(ref sendAttemptEv); diff --git a/Content.Server/Radio/RadioEvent.cs b/Content.Server/Radio/RadioEvent.cs index 35220d1d75..1198f7c133 100644 --- a/Content.Server/Radio/RadioEvent.cs +++ b/Content.Server/Radio/RadioEvent.cs @@ -10,12 +10,12 @@ namespace Content.Server.Radio; /// [ByRefEvent] public readonly record struct RadioReceiveEvent( - // Einstein-Engines - languages mechanic EntityUid MessageSource, RadioChannelPrototype Channel, ChatMessage OriginalChatMsg, ChatMessage LanguageObfuscatedChatMsg, - LanguagePrototype Language + LanguagePrototype Language, + EntityUid RadioSource ); /// diff --git a/Content.Server/RandomMetadata/RandomMetadataSystem.cs b/Content.Server/RandomMetadata/RandomMetadataSystem.cs index 0c254c52ac..abab5e5fc3 100644 --- a/Content.Server/RandomMetadata/RandomMetadataSystem.cs +++ b/Content.Server/RandomMetadata/RandomMetadataSystem.cs @@ -47,9 +47,13 @@ public string GetRandomFromSegments(List segments, string? separator) var outputSegments = new List(); foreach (var segment in segments) { - if (_prototype.TryIndex(segment, out var proto)) - outputSegments.Add(_random.Pick(proto.Values)); - else if (Loc.TryGetString(segment, out var localizedSegment)) + if (_prototype.TryIndex(segment, out var proto)) { + var random = _random.Pick(proto.Values); + if (Loc.TryGetString(random, out var localizedSegment)) + outputSegments.Add(localizedSegment); + else + outputSegments.Add(random); + } else if (Loc.TryGetString(segment, out var localizedSegment)) outputSegments.Add(localizedSegment); else outputSegments.Add(segment); diff --git a/Content.Server/Repairable/RepairableComponent.cs b/Content.Server/Repairable/RepairableComponent.cs index c436386110..bab70f66b5 100644 --- a/Content.Server/Repairable/RepairableComponent.cs +++ b/Content.Server/Repairable/RepairableComponent.cs @@ -1,5 +1,6 @@ using Content.Shared.Damage; using Content.Shared.Tools; +using Robust.Shared.Prototypes; using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype; namespace Content.Server.Repairable @@ -14,28 +15,28 @@ public sealed partial class RepairableComponent : Component /// If this data-field is specified, it will change damage by this amount instead of setting all damage to 0. /// in order to heal/repair the damage values have to be negative. /// - [ViewVariables(VVAccess.ReadWrite)] [DataField("damage")] + [DataField] public DamageSpecifier? Damage; - [ViewVariables(VVAccess.ReadWrite)] [DataField("fuelCost")] + [DataField] public int FuelCost = 5; - [ViewVariables(VVAccess.ReadWrite)] [DataField("qualityNeeded", customTypeSerializer:typeof(PrototypeIdSerializer))] - public string QualityNeeded = "Welding"; + [DataField] + public ProtoId QualityNeeded = "Welding"; - [ViewVariables(VVAccess.ReadWrite)] [DataField("doAfterDelay")] + [DataField] public int DoAfterDelay = 1; /// /// A multiplier that will be applied to the above if an entity is repairing themselves. /// - [ViewVariables(VVAccess.ReadWrite)] [DataField("selfRepairPenalty")] + [DataField] public float SelfRepairPenalty = 3f; /// /// Whether or not an entity is allowed to repair itself. /// - [DataField("allowSelfRepair")] + [DataField] public bool AllowSelfRepair = true; } } diff --git a/Content.Server/Repairable/RepairableSystem.cs b/Content.Server/Repairable/RepairableSystem.cs index 5bd580756d..ec24cd8197 100644 --- a/Content.Server/Repairable/RepairableSystem.cs +++ b/Content.Server/Repairable/RepairableSystem.cs @@ -4,7 +4,6 @@ using Content.Shared.Interaction; using Content.Shared.Popups; using Content.Shared.Repairable; -using Content.Shared.Tools; using SharedToolSystem = Content.Shared.Tools.Systems.SharedToolSystem; namespace Content.Server.Repairable @@ -70,7 +69,7 @@ public async void Repair(EntityUid uid, RepairableComponent component, InteractU } // Run the repairing doafter - args.Handled = _toolSystem.UseTool(args.Used, args.User, uid, delay, component.QualityNeeded, new RepairFinishedEvent()); + args.Handled = _toolSystem.UseTool(args.Used, args.User, uid, delay, component.QualityNeeded, new RepairFinishedEvent(), component.FuelCost); } } } diff --git a/Content.Server/Research/Systems/ResearchSystem.Client.cs b/Content.Server/Research/Systems/ResearchSystem.Client.cs index 6bd5300d8f..f8fdba55b7 100644 --- a/Content.Server/Research/Systems/ResearchSystem.Client.cs +++ b/Content.Server/Research/Systems/ResearchSystem.Client.cs @@ -45,7 +45,7 @@ private void OnConsoleSelect(EntityUid uid, ResearchClientComponent component, C if (!this.IsPowered(uid, EntityManager)) return; - _uiSystem.TryToggleUi(uid, ResearchClientUiKey.Key, args.Session); + _uiSystem.TryToggleUi(uid, ResearchClientUiKey.Key, args.Actor); } #endregion @@ -88,7 +88,7 @@ private void UpdateClientInterface(EntityUid uid, ResearchClientComponent? compo var state = new ResearchClientBoundInterfaceState(names.Length, names, GetServerIds(), serverComponent?.Id ?? -1); - _uiSystem.TrySetUiState(uid, ResearchClientUiKey.Key, state); + _uiSystem.SetUiState(uid, ResearchClientUiKey.Key, state); } /// diff --git a/Content.Server/Research/Systems/ResearchSystem.Console.cs b/Content.Server/Research/Systems/ResearchSystem.Console.cs index 9f95fd2517..5358ddefcd 100644 --- a/Content.Server/Research/Systems/ResearchSystem.Console.cs +++ b/Content.Server/Research/Systems/ResearchSystem.Console.cs @@ -20,8 +20,7 @@ private void InitializeConsole() private void OnConsoleUnlock(EntityUid uid, ResearchConsoleComponent component, ConsoleUnlockTechnologyMessage args) { - if (args.Session.AttachedEntity is not { } ent) - return; + var act = args.Actor; if (!this.IsPowered(uid, EntityManager)) return; @@ -29,13 +28,13 @@ private void OnConsoleUnlock(EntityUid uid, ResearchConsoleComponent component, if (!PrototypeManager.TryIndex(args.Id, out var technologyPrototype)) return; - if (TryComp(uid, out var access) && !_accessReader.IsAllowed(ent, uid, access)) + if (TryComp(uid, out var access) && !_accessReader.IsAllowed(act, uid, access)) { - _popup.PopupEntity(Loc.GetString("research-console-no-access-popup"), ent); + _popup.PopupEntity(Loc.GetString("research-console-no-access-popup"), act); return; } - if (!UnlockTechnology(uid, args.Id, ent)) + if (!UnlockTechnology(uid, args.Id, act)) return; var message = Loc.GetString("research-console-unlock-technology-radio-broadcast", @@ -68,7 +67,7 @@ private void UpdateConsoleInterface(EntityUid uid, ResearchConsoleComponent? com state = new ResearchConsoleBoundInterfaceState(default); } - _uiSystem.TrySetUiState(uid, ResearchConsoleUiKey.Key, state); + _uiSystem.SetUiState(uid, ResearchConsoleUiKey.Key, state); } private void OnPointsChanged(EntityUid uid, ResearchConsoleComponent component, ref ResearchServerPointsChangedEvent args) diff --git a/Content.Server/Research/TechnologyDisk/Systems/DiskConsoleSystem.cs b/Content.Server/Research/TechnologyDisk/Systems/DiskConsoleSystem.cs index 2064abd8eb..6700247522 100644 --- a/Content.Server/Research/TechnologyDisk/Systems/DiskConsoleSystem.cs +++ b/Content.Server/Research/TechnologyDisk/Systems/DiskConsoleSystem.cs @@ -91,7 +91,7 @@ public void UpdateUserInterface(EntityUid uid, DiskConsoleComponent? component = totalPoints >= component.PricePerDisk; var state = new DiskConsoleBoundUserInterfaceState(totalPoints, component.PricePerDisk, canPrint); - _ui.TrySetUiState(uid, DiskConsoleUiKey.Key, state); + _ui.SetUiState(uid, DiskConsoleUiKey.Key, state); } private void OnShutdown(EntityUid uid, DiskConsolePrintingComponent component, ComponentShutdown args) diff --git a/Content.Server/Resist/CanEscapeInventoryComponent.cs b/Content.Server/Resist/CanEscapeInventoryComponent.cs index 978e03d95f..2b4045143a 100644 --- a/Content.Server/Resist/CanEscapeInventoryComponent.cs +++ b/Content.Server/Resist/CanEscapeInventoryComponent.cs @@ -6,9 +6,9 @@ namespace Content.Server.Resist; public sealed partial class CanEscapeInventoryComponent : Component { /// - /// Base doafter length for uncontested breakouts. + /// Base doafter length for uncontested breakouts. /// - [DataField("baseResistTime")] + [DataField] public float BaseResistTime = 5f; public bool IsEscaping => DoAfter != null; diff --git a/Content.Server/Revenant/EntitySystems/RevenantSystem.Abilities.cs b/Content.Server/Revenant/EntitySystems/RevenantSystem.Abilities.cs index cd64f043a0..5d7c7514b8 100644 --- a/Content.Server/Revenant/EntitySystems/RevenantSystem.Abilities.cs +++ b/Content.Server/Revenant/EntitySystems/RevenantSystem.Abilities.cs @@ -15,6 +15,7 @@ using System.Linq; using System.Numerics; using Content.Server.Revenant.Components; +using Content.Shared.Physics; using Content.Shared.DoAfter; using Content.Shared.Emag.Systems; using Content.Shared.FixedPoint; @@ -135,6 +136,12 @@ private void BeginHarvestDoAfter(EntityUid uid, EntityUid target, RevenantCompon return; } + if(_physics.GetEntitiesIntersectingBody(uid, (int) CollisionGroup.Impassable).Count > 0) + { + _popup.PopupEntity(Loc.GetString("revenant-in-solid"), uid, uid); + return; + } + var doAfter = new DoAfterArgs(EntityManager, uid, revenant.HarvestDebuffs.X, new HarvestEvent(), uid, target: target) { DistanceThreshold = 2, @@ -238,7 +245,7 @@ private void OnDefileAction(EntityUid uid, RevenantComponent component, Revenant { //hardcoded damage specifiers til i die. var dspec = new DamageSpecifier(); - dspec.DamageDict.Add("Structural", 15); + dspec.DamageDict.Add("Structural", 60); _damage.TryChangeDamage(ent, dspec, origin: uid); } diff --git a/Content.Server/Robotics/Systems/RoboticsConsoleSystem.cs b/Content.Server/Robotics/Systems/RoboticsConsoleSystem.cs new file mode 100644 index 0000000000..916694fdd8 --- /dev/null +++ b/Content.Server/Robotics/Systems/RoboticsConsoleSystem.cs @@ -0,0 +1,146 @@ +using Content.Server.Administration.Logs; +using Content.Server.DeviceNetwork; +using Content.Server.DeviceNetwork.Systems; +using Content.Server.Radio.EntitySystems; +using Content.Shared.Lock; +using Content.Shared.Database; +using Content.Shared.DeviceNetwork; +using Content.Shared.Robotics; +using Content.Shared.Robotics.Components; +using Content.Shared.Robotics.Systems; +using Robust.Server.GameObjects; +using Robust.Shared.Timing; +using System.Diagnostics.CodeAnalysis; + +namespace Content.Server.Research.Systems; + +/// +/// Handles UI and state receiving for the robotics control console. +/// BorgTransponderComponent broadcasts state from the station's borgs to consoles. +/// +public sealed class RoboticsConsoleSystem : SharedRoboticsConsoleSystem +{ + [Dependency] private readonly DeviceNetworkSystem _deviceNetwork = default!; + [Dependency] private readonly IAdminLogManager _adminLogger = default!; + [Dependency] private readonly IGameTiming _timing = default!; + [Dependency] private readonly LockSystem _lock = default!; + [Dependency] private readonly RadioSystem _radio = default!; + [Dependency] private readonly UserInterfaceSystem _ui = default!; + + // almost never timing out more than 1 per tick so initialize with that capacity + private List _removing = new(1); + + public override void Initialize() + { + base.Initialize(); + + SubscribeLocalEvent(OnPacketReceived); + Subs.BuiEvents(RoboticsConsoleUiKey.Key, subs => + { + subs.Event(OnOpened); + subs.Event(OnDisable); + subs.Event(OnDestroy); + // TODO: camera stuff + }); + } + + public override void Update(float frameTime) + { + base.Update(frameTime); + + var now = _timing.CurTime; + var query = EntityQueryEnumerator(); + while (query.MoveNext(out var uid, out var comp)) + { + // remove cyborgs that havent pinged in a while + _removing.Clear(); + foreach (var (address, data) in comp.Cyborgs) + { + if (now >= data.Timeout) + _removing.Add(address); + } + + // needed to prevent modifying while iterating it + foreach (var address in _removing) + { + comp.Cyborgs.Remove(address); + } + + if (_removing.Count > 0) + UpdateUserInterface((uid, comp)); + } + } + + private void OnPacketReceived(Entity ent, ref DeviceNetworkPacketEvent args) + { + var payload = args.Data; + if (!payload.TryGetValue(DeviceNetworkConstants.Command, out string? command)) + return; + if (command != DeviceNetworkConstants.CmdUpdatedState) + return; + + if (!payload.TryGetValue(RoboticsConsoleConstants.NET_CYBORG_DATA, out CyborgControlData? data)) + return; + + var real = data.Value; + real.Timeout = _timing.CurTime + ent.Comp.Timeout; + ent.Comp.Cyborgs[args.SenderAddress] = real; + + UpdateUserInterface(ent); + } + + private void OnOpened(Entity ent, ref BoundUIOpenedEvent args) + { + UpdateUserInterface(ent); + } + + private void OnDisable(Entity ent, ref RoboticsConsoleDisableMessage args) + { + if (_lock.IsLocked(ent.Owner)) + return; + + if (!ent.Comp.Cyborgs.TryGetValue(args.Address, out var data)) + return; + + var payload = new NetworkPayload() + { + [DeviceNetworkConstants.Command] = RoboticsConsoleConstants.NET_DISABLE_COMMAND + }; + + _deviceNetwork.QueuePacket(ent, args.Address, payload); + _adminLogger.Add(LogType.Action, LogImpact.High, $"{ToPrettyString(args.Actor):user} disabled borg {data.Name} with address {args.Address}"); + } + + private void OnDestroy(Entity ent, ref RoboticsConsoleDestroyMessage args) + { + if (_lock.IsLocked(ent.Owner)) + return; + + var now = _timing.CurTime; + if (now < ent.Comp.NextDestroy) + return; + + if (!ent.Comp.Cyborgs.Remove(args.Address, out var data)) + return; + + var payload = new NetworkPayload() + { + [DeviceNetworkConstants.Command] = RoboticsConsoleConstants.NET_DESTROY_COMMAND + }; + + _deviceNetwork.QueuePacket(ent, args.Address, payload); + + var message = Loc.GetString(ent.Comp.DestroyMessage, ("name", data.Name)); + _radio.SendRadioMessage(ent, message, ent.Comp.RadioChannel, ent); + _adminLogger.Add(LogType.Action, LogImpact.Extreme, $"{ToPrettyString(args.Actor):user} destroyed borg {data.Name} with address {args.Address}"); + + ent.Comp.NextDestroy = now + ent.Comp.DestroyCooldown; + Dirty(ent, ent.Comp); + } + + private void UpdateUserInterface(Entity ent) + { + var state = new RoboticsConsoleState(ent.Comp.Cyborgs); + _ui.SetUiState(ent.Owner, RoboticsConsoleUiKey.Key, state); + } +} diff --git a/Content.Server/Roles/RoleSystem.cs b/Content.Server/Roles/RoleSystem.cs index f7a5177357..c53fa1cf9e 100644 --- a/Content.Server/Roles/RoleSystem.cs +++ b/Content.Server/Roles/RoleSystem.cs @@ -15,7 +15,6 @@ public override void Initialize() SubscribeAntagEvents(); SubscribeAntagEvents(); SubscribeAntagEvents(); - SubscribeAntagEvents(); SubscribeAntagEvents(); SubscribeAntagEvents(); SubscribeAntagEvents(); diff --git a/Content.Server/RoundEnd/RoundEndSystem.cs b/Content.Server/RoundEnd/RoundEndSystem.cs index d79fe2d2cc..0866b975c2 100644 --- a/Content.Server/RoundEnd/RoundEndSystem.cs +++ b/Content.Server/RoundEnd/RoundEndSystem.cs @@ -147,11 +147,15 @@ public void RequestRoundEnd(EntityUid? requester = null, bool checkCooldown = tr public void RequestRoundEnd(TimeSpan countdownTime, EntityUid? requester = null, bool checkCooldown = true, string text = "round-end-system-shuttle-called-announcement", string name = "Station") { - if (_gameTicker.RunLevel != GameRunLevel.InRound) return; + if (_gameTicker.RunLevel != GameRunLevel.InRound) + return; - if (checkCooldown && _cooldownTokenSource != null) return; + if (checkCooldown && _cooldownTokenSource != null) + return; + + if (_countdownTokenSource != null) + return; - if (_countdownTokenSource != null) return; _countdownTokenSource = new(); if (requester != null) @@ -191,6 +195,8 @@ public void RequestRoundEnd(TimeSpan countdownTime, EntityUid? requester = null, LastCountdownStart = _gameTiming.CurTime; ExpectedCountdownEnd = _gameTiming.CurTime + countdownTime; + + // TODO full game saves Timer.Spawn(countdownTime, _shuttle.CallEmergencyShuttle, _countdownTokenSource.Token); ActivateCooldown(); @@ -343,6 +349,8 @@ private void ActivateCooldown() { _cooldownTokenSource?.Cancel(); _cooldownTokenSource = new(); + + // TODO full game saves Timer.Spawn(DefaultCooldownDuration, () => { _cooldownTokenSource.Cancel(); diff --git a/Content.Server/Salvage/Expeditions/SalvageExpeditionComponent.cs b/Content.Server/Salvage/Expeditions/SalvageExpeditionComponent.cs index 6a58c209cf..ff3c8176fd 100644 --- a/Content.Server/Salvage/Expeditions/SalvageExpeditionComponent.cs +++ b/Content.Server/Salvage/Expeditions/SalvageExpeditionComponent.cs @@ -40,14 +40,21 @@ public sealed partial class SalvageExpeditionComponent : SharedSalvageExpedition /// /// Countdown audio stream. /// + [DataField, AutoNetworkedField] public EntityUid? Stream = null; /// /// Sound that plays when the mission end is imminent. /// - [ViewVariables(VVAccess.ReadWrite), DataField("sound")] - public SoundSpecifier Sound = new SoundPathSpecifier("/Audio/Misc/tension_session.ogg") + [ViewVariables(VVAccess.ReadWrite), DataField] + public SoundSpecifier Sound = new SoundCollectionSpecifier("ExpeditionEnd") { Params = AudioParams.Default.WithVolume(-5), }; + + /// + /// Song selected on MapInit so we can predict the audio countdown properly. + /// + [DataField] + public SoundPathSpecifier SelectedSong; } diff --git a/Content.Server/Salvage/SalvageSystem.ExpeditionConsole.cs b/Content.Server/Salvage/SalvageSystem.ExpeditionConsole.cs index 61636bea7c..d031418476 100644 --- a/Content.Server/Salvage/SalvageSystem.ExpeditionConsole.cs +++ b/Content.Server/Salvage/SalvageSystem.ExpeditionConsole.cs @@ -56,7 +56,7 @@ private void UpdateConsoles(Entity component) if (station != component.Owner) continue; - _ui.TrySetUiState(uid, SalvageConsoleUiKey.Expedition, state, ui: uiComp); + _ui.SetUiState((uid, uiComp), SalvageConsoleUiKey.Expedition, state); } } @@ -74,6 +74,6 @@ private void UpdateConsole(Entity component) state = new SalvageExpeditionConsoleState(TimeSpan.Zero, false, true, 0, new List()); } - _ui.TrySetUiState(component, SalvageConsoleUiKey.Expedition, state); + _ui.SetUiState(component.Owner, SalvageConsoleUiKey.Expedition, state); } } diff --git a/Content.Server/Salvage/SalvageSystem.Expeditions.cs b/Content.Server/Salvage/SalvageSystem.Expeditions.cs index 4d5d569dab..923880169d 100644 --- a/Content.Server/Salvage/SalvageSystem.Expeditions.cs +++ b/Content.Server/Salvage/SalvageSystem.Expeditions.cs @@ -4,7 +4,9 @@ using Content.Server.Salvage.Expeditions.Structure; using Content.Shared.CCVar; using Content.Shared.Examine; +using Content.Shared.Random.Helpers; using Content.Shared.Salvage.Expeditions; +using Robust.Shared.Audio; using Robust.Shared.CPUJob.JobQueues; using Robust.Shared.CPUJob.JobQueues.Queues; using Robust.Shared.GameStates; @@ -32,6 +34,7 @@ private void InitializeExpeditions() SubscribeLocalEvent(OnSalvageConsoleParent); SubscribeLocalEvent(OnSalvageClaimMessage); + SubscribeLocalEvent(OnExpeditionMapInit); SubscribeLocalEvent(OnExpeditionShutdown); SubscribeLocalEvent(OnExpeditionGetState); @@ -64,6 +67,12 @@ private void SetCooldownChange(float obj) _cooldown = obj; } + private void OnExpeditionMapInit(EntityUid uid, SalvageExpeditionComponent component, MapInitEvent args) + { + var selectedFile = _audio.GetSound(component.Sound); + component.SelectedSong = new SoundPathSpecifier(selectedFile, component.Sound.Params); + } + private void OnExpeditionShutdown(EntityUid uid, SalvageExpeditionComponent component, ComponentShutdown args) { component.Stream = _audio.Stop(component.Stream); diff --git a/Content.Server/Salvage/SalvageSystem.Magnet.cs b/Content.Server/Salvage/SalvageSystem.Magnet.cs index e4711a5876..4b7291298b 100644 --- a/Content.Server/Salvage/SalvageSystem.Magnet.cs +++ b/Content.Server/Salvage/SalvageSystem.Magnet.cs @@ -35,11 +35,6 @@ private void InitializeMagnet() private void OnMagnetClaim(EntityUid uid, SalvageMagnetComponent component, ref MagnetClaimOfferEvent args) { - var player = args.Session.AttachedEntity; - - if (player is null) - return; - var station = _station.GetOwningStation(uid); if (!TryComp(station, out SalvageMagnetDataComponent? dataComp) || @@ -177,12 +172,12 @@ private void CreateMagnetOffers(Entity data) // Fuck with the seed to mix wrecks and asteroids. seed = (int) (seed / 10f) * 10; - + if (i >= data.Comp.OfferCount / 2) { seed++; } - + data.Comp.Offered.Add(seed); } @@ -216,7 +211,7 @@ private void UpdateMagnetUI(Entity entity, TransformComp if (!TryComp(station, out SalvageMagnetDataComponent? dataComp)) return; - _ui.TrySetUiState(entity, SalvageMagnetUiKey.Key, + _ui.SetUiState(entity.Owner, SalvageMagnetUiKey.Key, new SalvageMagnetBoundUserInterfaceState(dataComp.Offered) { Cooldown = dataComp.OfferCooldown, @@ -238,7 +233,7 @@ private void UpdateMagnetUIs(Entity data) if (station != data.Owner) continue; - _ui.TrySetUiState(magnetUid, SalvageMagnetUiKey.Key, + _ui.SetUiState(magnetUid, SalvageMagnetUiKey.Key, new SalvageMagnetBoundUserInterfaceState(data.Comp.Offered) { Cooldown = data.Comp.OfferCooldown, diff --git a/Content.Server/Salvage/SalvageSystem.Runner.cs b/Content.Server/Salvage/SalvageSystem.Runner.cs index 8a1498cbe9..23607e2bdc 100644 --- a/Content.Server/Salvage/SalvageSystem.Runner.cs +++ b/Content.Server/Salvage/SalvageSystem.Runner.cs @@ -1,9 +1,7 @@ using System.Numerics; using Content.Server.Salvage.Expeditions; -using Content.Server.Salvage.Expeditions.Structure; using Content.Server.Shuttles.Components; using Content.Server.Shuttles.Events; -using Content.Server.Shuttles.Systems; using Content.Server.Station.Components; using Content.Shared.Chat; using Content.Shared.Humanoid; @@ -13,7 +11,6 @@ using Content.Shared.Shuttles.Components; using Robust.Shared.Map.Components; using Robust.Shared.Player; -using Robust.Shared.Utility; namespace Content.Server.Salvage; @@ -144,6 +141,7 @@ private void UpdateRunner() while (query.MoveNext(out var uid, out var comp)) { var remaining = comp.EndTime - _timing.CurTime; + var audioLength = _audio.GetAudioLength(comp.SelectedSong.Path.ToString()); if (comp.Stage < ExpeditionStage.FinalCountdown && remaining < TimeSpan.FromSeconds(45)) { @@ -151,13 +149,14 @@ private void UpdateRunner() Dirty(uid, comp); Announce(uid, Loc.GetString("salvage-expedition-announcement-countdown-seconds", ("duration", TimeSpan.FromSeconds(45).Seconds))); } - else if (comp.Stage < ExpeditionStage.MusicCountdown && remaining < TimeSpan.FromMinutes(2)) + else if (comp.Stream == null && remaining < audioLength) { - // TODO: Some way to play audio attached to a map for players. - comp.Stream = _audio.PlayGlobal(comp.Sound, Filter.BroadcastMap(Comp(uid).MapId), true).Value.Entity; + var audio = _audio.PlayPvs(comp.Sound, uid).Value; + comp.Stream = audio.Entity; + _audio.SetMapAudio(audio); comp.Stage = ExpeditionStage.MusicCountdown; Dirty(uid, comp); - Announce(uid, Loc.GetString("salvage-expedition-announcement-countdown-minutes", ("duration", TimeSpan.FromMinutes(2).Minutes))); + Announce(uid, Loc.GetString("salvage-expedition-announcement-countdown-minutes", ("duration", audioLength.Minutes))); } else if (comp.Stage < ExpeditionStage.Countdown && remaining < TimeSpan.FromMinutes(4)) { @@ -166,16 +165,16 @@ private void UpdateRunner() Announce(uid, Loc.GetString("salvage-expedition-announcement-countdown-minutes", ("duration", TimeSpan.FromMinutes(5).Minutes))); } // Auto-FTL out any shuttles - else if (remaining < TimeSpan.FromSeconds(ShuttleSystem.DefaultStartupTime) + TimeSpan.FromSeconds(0.5)) + else if (remaining < TimeSpan.FromSeconds(_shuttle.DefaultStartupTime) + TimeSpan.FromSeconds(0.5)) { var ftlTime = (float) remaining.TotalSeconds; - if (remaining < TimeSpan.FromSeconds(ShuttleSystem.DefaultStartupTime)) + if (remaining < TimeSpan.FromSeconds(_shuttle.DefaultStartupTime)) { ftlTime = MathF.Max(0, (float) remaining.TotalSeconds - 0.5f); } - ftlTime = MathF.Min(ftlTime, ShuttleSystem.DefaultStartupTime); + ftlTime = MathF.Min(ftlTime, _shuttle.DefaultStartupTime); var shuttleQuery = AllEntityQuery(); if (TryComp(comp.Station, out var data)) diff --git a/Content.Server/Salvage/SpawnSalvageMissionJob.cs b/Content.Server/Salvage/SpawnSalvageMissionJob.cs index 47123e9784..ce844e57a1 100644 --- a/Content.Server/Salvage/SpawnSalvageMissionJob.cs +++ b/Content.Server/Salvage/SpawnSalvageMissionJob.cs @@ -34,8 +34,6 @@ using Robust.Shared.Timing; using Robust.Shared.Utility; using Content.Server.Shuttles.Components; -using Content.Shared.Coordinates; -using Content.Shared.Shuttles.Components; namespace Content.Server.Salvage; diff --git a/Content.Server/SensorMonitoring/SensorMonitoringConsoleComponent.cs b/Content.Server/SensorMonitoring/SensorMonitoringConsoleComponent.cs index 63b4d9daef..b5a954f166 100644 --- a/Content.Server/SensorMonitoring/SensorMonitoringConsoleComponent.cs +++ b/Content.Server/SensorMonitoring/SensorMonitoringConsoleComponent.cs @@ -27,7 +27,7 @@ public sealed partial class SensorMonitoringConsoleComponent : Component public TimeSpan RetentionTime = TimeSpan.FromMinutes(1); // UI update tracking stuff. - public HashSet InitialUIStateSent = new(); + public HashSet InitialUIStateSent = new(); public TimeSpan LastUIUpdate; public ValueList RemovedSensors; diff --git a/Content.Server/SensorMonitoring/SensorMonitoringConsoleSystem.UI.cs b/Content.Server/SensorMonitoring/SensorMonitoringConsoleSystem.UI.cs index 26c6b17831..dec3e6c36e 100644 --- a/Content.Server/SensorMonitoring/SensorMonitoringConsoleSystem.UI.cs +++ b/Content.Server/SensorMonitoring/SensorMonitoringConsoleSystem.UI.cs @@ -18,27 +18,26 @@ private void InitUI() private void UpdateConsoleUI(EntityUid uid, SensorMonitoringConsoleComponent comp) { - if (!_userInterface.TryGetUi(uid, SensorMonitoringConsoleUiKey.Key, out var ui)) - return; - - if (ui.SubscribedSessions.Count == 0) + if (!_userInterface.IsUiOpen(uid, SensorMonitoringConsoleUiKey.Key)) + { return; + } ConsoleUIState? fullState = null; SensorMonitoringIncrementalUpdate? incrementalUpdate = null; - foreach (var session in ui.SubscribedSessions) + foreach (var actorUid in _userInterface.GetActors(uid, SensorMonitoringConsoleUiKey.Key)) { - if (comp.InitialUIStateSent.Contains(session)) + if (comp.InitialUIStateSent.Contains(actorUid)) { incrementalUpdate ??= CalculateIncrementalUpdate(); - _userInterface.TrySendUiMessage(ui, incrementalUpdate, session); + _userInterface.ServerSendUiMessage(uid, SensorMonitoringConsoleUiKey.Key, incrementalUpdate, actorUid); } else { fullState ??= CalculateFullState(); - _userInterface.SetUiState(ui, fullState, session); - comp.InitialUIStateSent.Add(session); + _userInterface.SetUiState(uid, SensorMonitoringConsoleUiKey.Key, fullState); + comp.InitialUIStateSent.Add(actorUid); } } @@ -131,9 +130,6 @@ private static void ConsoleUIClosed( if (!args.UiKey.Equals(SensorMonitoringConsoleUiKey.Key)) return; - if (args.Session is not { } player) - return; - - component.InitialUIStateSent.Remove(player); + component.InitialUIStateSent.Remove(args.Actor); } } diff --git a/Content.Server/Shuttles/Components/DockingSignalControlComponent.cs b/Content.Server/Shuttles/Components/DockingSignalControlComponent.cs new file mode 100644 index 0000000000..4361265080 --- /dev/null +++ b/Content.Server/Shuttles/Components/DockingSignalControlComponent.cs @@ -0,0 +1,14 @@ +using Content.Shared.DeviceLinking; +using Robust.Shared.Prototypes; + +namespace Content.Server.Shuttles.Components; + +[RegisterComponent] +public sealed partial class DockingSignalControlComponent : Component +{ + /// + /// Output port that is high while docked. + /// + [DataField] + public ProtoId DockStatusSignalPort = "DockStatus"; +} diff --git a/Content.Server/Shuttles/Components/FTLComponent.cs b/Content.Server/Shuttles/Components/FTLComponent.cs index ab40875e29..c9b8406423 100644 --- a/Content.Server/Shuttles/Components/FTLComponent.cs +++ b/Content.Server/Shuttles/Components/FTLComponent.cs @@ -14,6 +14,8 @@ namespace Content.Server.Shuttles.Components; [RegisterComponent] public sealed partial class FTLComponent : Component { + // TODO Full game save / add datafields + [ViewVariables] public FTLState State = FTLState.Available; @@ -23,6 +25,7 @@ public sealed partial class FTLComponent : Component [ViewVariables(VVAccess.ReadWrite)] public float StartupTime = 0f; + // Because of sphagetti, actual travel time is Math.Max(TravelTime, DefaultArrivalTime) [ViewVariables(VVAccess.ReadWrite)] public float TravelTime = 0f; diff --git a/Content.Server/Shuttles/Components/StationEmergencyShuttleComponent.cs b/Content.Server/Shuttles/Components/StationEmergencyShuttleComponent.cs index bdfdcb273a..58d23ee432 100644 --- a/Content.Server/Shuttles/Components/StationEmergencyShuttleComponent.cs +++ b/Content.Server/Shuttles/Components/StationEmergencyShuttleComponent.cs @@ -13,7 +13,7 @@ public sealed partial class StationEmergencyShuttleComponent : Component /// /// The emergency shuttle assigned to this station. /// - [ViewVariables, Access(typeof(ShuttleSystem), typeof(EmergencyShuttleSystem), Friend = AccessPermissions.ReadWrite)] + [DataField, Access(typeof(ShuttleSystem), typeof(EmergencyShuttleSystem), Friend = AccessPermissions.ReadWrite)] public EntityUid? EmergencyShuttle; /// diff --git a/Content.Server/Shuttles/Components/ThrusterComponent.cs b/Content.Server/Shuttles/Components/ThrusterComponent.cs index 3bba9b5a7f..f64d9bdcbf 100644 --- a/Content.Server/Shuttles/Components/ThrusterComponent.cs +++ b/Content.Server/Shuttles/Components/ThrusterComponent.cs @@ -1,8 +1,10 @@ using System.Numerics; using Content.Server.Shuttles.Systems; +using Content.Shared.Construction.Prototypes; using Content.Shared.Damage; using Robust.Shared.GameStates; using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom; +using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype; namespace Content.Server.Shuttles.Components { @@ -13,7 +15,7 @@ public sealed partial class ThrusterComponent : Component /// /// Whether the thruster has been force to be enabled / disabled (e.g. VV, interaction, etc.) /// - [DataField, ViewVariables(VVAccess.ReadWrite)] + [DataField] public bool Enabled { get; set; } = true; /// @@ -22,9 +24,12 @@ public sealed partial class ThrusterComponent : Component public bool IsOn; // Need to serialize this because RefreshParts isn't called on Init and this will break post-mapinit maps! - [ViewVariables(VVAccess.ReadWrite), DataField("thrust")] + [DataField] public float Thrust = 100f; + [DataField] + public float BaseThrust = 100f; + [DataField("thrusterType")] public ThrusterType Type = ThrusterType.Linear; @@ -37,24 +42,31 @@ public sealed partial class ThrusterComponent : Component }; /// - /// How much damage is done per second to anything colliding with our thrust. + /// How much damage is done per second to anything colliding with our thrust. /// - [DataField("damage")] public DamageSpecifier? Damage = new(); + [DataField] + public DamageSpecifier? Damage = new(); - [DataField("requireSpace")] + [DataField] public bool RequireSpace = true; // Used for burns public List Colliding = new(); - public bool Firing = false; + public bool Firing; /// - /// Next time we tick damage for anyone colliding. + /// Next time we tick damage for anyone colliding. /// - [ViewVariables(VVAccess.ReadWrite), DataField("nextFire", customTypeSerializer:typeof(TimeOffsetSerializer))] + [DataField(customTypeSerializer: typeof(TimeOffsetSerializer))] public TimeSpan NextFire; + + [DataField(customTypeSerializer: typeof(PrototypeIdSerializer))] + public string MachinePartThrust = "Capacitor"; + + [DataField] + public float PartRatingThrustMultiplier = 1.5f; } public enum ThrusterType diff --git a/Content.Server/Shuttles/Systems/ArrivalsSystem.cs b/Content.Server/Shuttles/Systems/ArrivalsSystem.cs index ae742cf1f9..4a2dc5df53 100644 --- a/Content.Server/Shuttles/Systems/ArrivalsSystem.cs +++ b/Content.Server/Shuttles/Systems/ArrivalsSystem.cs @@ -1,15 +1,16 @@ using System.Linq; using Content.Server.Administration; +using Content.Server.DeviceNetwork.Components; +using Content.Server.DeviceNetwork.Systems; using Content.Server.GameTicking; using Content.Server.GameTicking.Events; using Content.Server.Parallax; -using Content.Server.DeviceNetwork.Components; -using Content.Server.DeviceNetwork.Systems; using Content.Server.Screens.Components; using Content.Server.Shuttles.Components; using Content.Server.Shuttles.Events; using Content.Server.Spawners.Components; using Content.Server.Station.Components; +using Content.Server.Station.Events; using Content.Server.Station.Systems; using Content.Shared.Administration; using Content.Shared.CCVar; @@ -77,7 +78,7 @@ public override void Initialize() { base.Initialize(); - SubscribeLocalEvent(OnArrivalsStartup); + SubscribeLocalEvent(OnStationPostInit); SubscribeLocalEvent(OnShuttleStartup); SubscribeLocalEvent(OnShuttleTag); @@ -187,7 +188,7 @@ private void OnArrivalsFTL(EntityUid shuttleUid, ArrivalsShuttleComponent compon if (TryComp(shuttleUid, out var netComp)) { TryComp(shuttleUid, out var ftlComp); - var ftlTime = TimeSpan.FromSeconds(ftlComp?.TravelTime ?? ShuttleSystem.DefaultTravelTime); + var ftlTime = TimeSpan.FromSeconds(ftlComp?.TravelTime ?? _shuttles.DefaultTravelTime); var payload = new NetworkPayload { @@ -253,7 +254,7 @@ private void OnArrivalsFTL(EntityUid shuttleUid, ArrivalsShuttleComponent compon private void OnArrivalsDocked(EntityUid uid, ArrivalsShuttleComponent component, ref FTLCompletedEvent args) { - TimeSpan dockTime = component.NextTransfer - _timing.CurTime + TimeSpan.FromSeconds(ShuttleSystem.DefaultStartupTime); + var dockTime = component.NextTransfer - _timing.CurTime + TimeSpan.FromSeconds(_shuttles.DefaultStartupTime); if (TryComp(uid, out var netComp)) { @@ -419,13 +420,13 @@ public override void Update(float frameTime) if (comp.NextTransfer > curTime || !TryComp(comp.Station, out var data)) continue; - var tripTime = ShuttleSystem.DefaultTravelTime + ShuttleSystem.DefaultStartupTime; + var tripTime = _shuttles.DefaultTravelTime + _shuttles.DefaultStartupTime; // Go back to arrivals source if (xform.MapUid != arrivalsXform.MapUid) { if (arrivals.IsValid()) - _shuttles.FTLToDock(uid, shuttle, arrivals); + _shuttles.FTLToDock(uid, shuttle, arrivals, _cfgManager.GetCVar(CCVars.ArrivalsStartupTime), _cfgManager.GetCVar(CCVars.ArrivalsHyperspaceTime), "DockArrivals"); comp.NextArrivalsTime = _timing.CurTime + TimeSpan.FromSeconds(tripTime); } @@ -435,7 +436,7 @@ public override void Update(float frameTime) var targetGrid = _station.GetLargestGrid(data); if (targetGrid != null) - _shuttles.FTLToDock(uid, shuttle, targetGrid.Value); + _shuttles.FTLToDock(uid, shuttle, targetGrid.Value, _cfgManager.GetCVar(CCVars.ArrivalsStartupTime), _cfgManager.GetCVar(CCVars.ArrivalsHyperspaceTime), "DockArrivals"); // The ArrivalsCooldown includes the trip there, so we only need to add the time taken for // the trip back. @@ -530,7 +531,7 @@ private void SetArrivals(bool obj) } } - private void OnArrivalsStartup(EntityUid uid, StationArrivalsComponent component, ComponentStartup args) + private void OnStationPostInit(EntityUid uid, StationArrivalsComponent component, ref StationPostInitEvent args) { if (!Enabled) return; diff --git a/Content.Server/Shuttles/Systems/DockingSignalControlSystem.cs b/Content.Server/Shuttles/Systems/DockingSignalControlSystem.cs new file mode 100644 index 0000000000..34cade7f1c --- /dev/null +++ b/Content.Server/Shuttles/Systems/DockingSignalControlSystem.cs @@ -0,0 +1,28 @@ +using Content.Server.DeviceLinking.Systems; +using Content.Server.Shuttles.Components; +using Content.Server.Shuttles.Events; + +namespace Content.Server.Shuttles.Systems; + +public sealed class DockingSignalControlSystem : EntitySystem +{ + [Dependency] private readonly DeviceLinkSystem _deviceLinkSystem = default!; + + public override void Initialize() + { + base.Initialize(); + + SubscribeLocalEvent(OnDocked); + SubscribeLocalEvent(OnUndocked); + } + + private void OnDocked(Entity ent, ref DockEvent args) + { + _deviceLinkSystem.SendSignal(ent, ent.Comp.DockStatusSignalPort, signal: true); + } + + private void OnUndocked(Entity ent, ref UndockEvent args) + { + _deviceLinkSystem.SendSignal(ent, ent.Comp.DockStatusSignalPort, signal: false); + } +} diff --git a/Content.Server/Shuttles/Systems/EmergencyShuttleSystem.Console.cs b/Content.Server/Shuttles/Systems/EmergencyShuttleSystem.Console.cs index 3f6eafb454..6c040e7a0e 100644 --- a/Content.Server/Shuttles/Systems/EmergencyShuttleSystem.Console.cs +++ b/Content.Server/Shuttles/Systems/EmergencyShuttleSystem.Console.cs @@ -1,10 +1,8 @@ using System.Threading; -using Content.Server.DeviceNetwork; using Content.Server.DeviceNetwork.Components; using Content.Server.Screens.Components; using Content.Server.Shuttles.Components; using Content.Server.Shuttles.Events; -using Content.Shared.UserInterface; using Content.Shared.Access; using Content.Shared.CCVar; using Content.Shared.Database; @@ -13,12 +11,15 @@ using Content.Shared.Shuttles.BUIStates; using Content.Shared.Shuttles.Events; using Content.Shared.Shuttles.Systems; +using Content.Shared.UserInterface; using Robust.Shared.Map; using Robust.Shared.Player; using Timer = Robust.Shared.Timing.Timer; namespace Content.Server.Shuttles.Systems; +// TODO full game saves +// Move state data into the emergency shuttle component public sealed partial class EmergencyShuttleSystem { /* @@ -55,7 +56,7 @@ public sealed partial class EmergencyShuttleSystem /// /// How long it will take for the emergency shuttle to arrive at CentComm. /// - public float TransitTime { get; private set; } + public float TransitTime; /// /// @@ -129,9 +130,17 @@ private void OnEmergencyStartup(EntityUid uid, EmergencyShuttleConsoleComponent private void UpdateEmergencyConsole(float frameTime) { // Add some buffer time so eshuttle always first. - var minTime = -(TransitTime - (ShuttleSystem.DefaultStartupTime + ShuttleSystem.DefaultTravelTime + 1f)); + var minTime = -(TransitTime - (_shuttle.DefaultStartupTime + _shuttle.DefaultTravelTime + 1f)); // TODO: I know this is shit but I already just cleaned up a billion things. + + // This is very cursed spaghetti code. I don't even know what the fuck this is doing or why it exists. + // But I think it needs to be less than or equal to zero or the shuttle might never leave??? + // TODO Shuttle AAAAAAAAAAAAAAAAAAAAAAAAA + // Clean this up, just have a single timer with some state system. + // I.e., dont infer state from the current interval that the accumulator is in??? + minTime = Math.Min(0, minTime); // ???? + if (_consoleAccumulator < minTime) { return; @@ -147,7 +156,7 @@ private void UpdateEmergencyConsole(float frameTime) } // Imminent departure - if (!_launchedShuttles && _consoleAccumulator <= ShuttleSystem.DefaultStartupTime) + if (!_launchedShuttles && _consoleAccumulator <= _shuttle.DefaultStartupTime) { _launchedShuttles = true; @@ -241,19 +250,18 @@ private void UpdateEmergencyConsole(float frameTime) private void OnEmergencyRepealAll(EntityUid uid, EmergencyShuttleConsoleComponent component, EmergencyShuttleRepealAllMessage args) { - var player = args.Session.AttachedEntity; - if (player == null) return; + var player = args.Actor; - if (!_reader.FindAccessTags(player.Value).Contains(EmergencyRepealAllAccess)) + if (!_reader.FindAccessTags(player).Contains(EmergencyRepealAllAccess)) { - _popup.PopupCursor(Loc.GetString("emergency-shuttle-console-denied"), player.Value, PopupType.Medium); + _popup.PopupCursor(Loc.GetString("emergency-shuttle-console-denied"), player, PopupType.Medium); return; } if (component.AuthorizedEntities.Count == 0) return; - _logger.Add(LogType.EmergencyShuttle, LogImpact.High, $"Emergency shuttle early launch REPEAL ALL by {args.Session:user}"); + _logger.Add(LogType.EmergencyShuttle, LogImpact.High, $"Emergency shuttle early launch REPEAL ALL by {args.Actor:user}"); _announcer.SendAnnouncement( _announcer.GetAnnouncementId("ShuttleAuthRevoked"), Filter.Broadcast(), @@ -267,13 +275,11 @@ private void OnEmergencyRepealAll(EntityUid uid, EmergencyShuttleConsoleComponen private void OnEmergencyRepeal(EntityUid uid, EmergencyShuttleConsoleComponent component, EmergencyShuttleRepealMessage args) { - var player = args.Session.AttachedEntity; - if (player == null) - return; + var player = args.Actor; - if (!_idSystem.TryFindIdCard(player.Value, out var idCard) || !_reader.IsAllowed(idCard, uid)) + if (!_idSystem.TryFindIdCard(player, out var idCard) || !_reader.IsAllowed(idCard, uid)) { - _popup.PopupCursor(Loc.GetString("emergency-shuttle-console-denied"), player.Value, PopupType.Medium); + _popup.PopupCursor(Loc.GetString("emergency-shuttle-console-denied"), player, PopupType.Medium); return; } @@ -281,7 +287,7 @@ private void OnEmergencyRepeal(EntityUid uid, EmergencyShuttleConsoleComponent c if (!component.AuthorizedEntities.Remove(MetaData(idCard).EntityName)) return; - _logger.Add(LogType.EmergencyShuttle, LogImpact.High, $"Emergency shuttle early launch REPEAL by {args.Session:user}"); + _logger.Add(LogType.EmergencyShuttle, LogImpact.High, $"Emergency shuttle early launch REPEAL by {args.Actor:user}"); var remaining = component.AuthorizationsRequired - component.AuthorizedEntities.Count; _announcer.SendAnnouncement( _announcer.GetAnnouncementId("ShuttleAuthRevoked"), @@ -296,13 +302,11 @@ private void OnEmergencyRepeal(EntityUid uid, EmergencyShuttleConsoleComponent c private void OnEmergencyAuthorize(EntityUid uid, EmergencyShuttleConsoleComponent component, EmergencyShuttleAuthorizeMessage args) { - var player = args.Session.AttachedEntity; - if (player == null) - return; + var player = args.Actor; - if (!_idSystem.TryFindIdCard(player.Value, out var idCard) || !_reader.IsAllowed(idCard, uid)) + if (!_idSystem.TryFindIdCard(player, out var idCard) || !_reader.IsAllowed(idCard, uid)) { - _popup.PopupCursor(Loc.GetString("emergency-shuttle-console-denied"), args.Session, PopupType.Medium); + _popup.PopupCursor(Loc.GetString("emergency-shuttle-console-denied"), args.Actor, PopupType.Medium); return; } @@ -310,7 +314,7 @@ private void OnEmergencyAuthorize(EntityUid uid, EmergencyShuttleConsoleComponen if (!component.AuthorizedEntities.Add(MetaData(idCard).EntityName)) return; - _logger.Add(LogType.EmergencyShuttle, LogImpact.High, $"Emergency shuttle early launch AUTH by {args.Session:user}"); + _logger.Add(LogType.EmergencyShuttle, LogImpact.High, $"Emergency shuttle early launch AUTH by {args.Actor:user}"); var remaining = component.AuthorizationsRequired - component.AuthorizedEntities.Count; if (remaining > 0) @@ -362,9 +366,10 @@ private void UpdateConsoleState(EntityUid uid, EmergencyShuttleConsoleComponent auths.Add(auth); } - if (_uiSystem.TryGetUi(uid, EmergencyConsoleUiKey.Key, out var bui)) + if (_uiSystem.HasUi(uid, EmergencyConsoleUiKey.Key)) _uiSystem.SetUiState( - bui, + uid, + EmergencyConsoleUiKey.Key, new EmergencyConsoleBoundUserInterfaceState() { EarlyLaunchTime = EarlyLaunchAuthorized ? _timing.CurTime + TimeSpan.FromSeconds(_consoleAccumulator) : null, diff --git a/Content.Server/Shuttles/Systems/EmergencyShuttleSystem.cs b/Content.Server/Shuttles/Systems/EmergencyShuttleSystem.cs index 2df0bc148c..90be263ae2 100644 --- a/Content.Server/Shuttles/Systems/EmergencyShuttleSystem.cs +++ b/Content.Server/Shuttles/Systems/EmergencyShuttleSystem.cs @@ -15,6 +15,7 @@ using Content.Server.Shuttles.Components; using Content.Server.Shuttles.Events; using Content.Server.Station.Components; +using Content.Server.Station.Events; using Content.Server.Station.Systems; using Content.Shared.Access.Systems; using Content.Shared.CCVar; @@ -84,9 +85,9 @@ public override void Initialize() SubscribeLocalEvent(OnRoundStart); SubscribeLocalEvent(OnRoundCleanup); - SubscribeLocalEvent(OnStationStartup); + SubscribeLocalEvent(OnStationStartup); SubscribeLocalEvent(OnCentcommShutdown); - SubscribeLocalEvent(OnCentcommInit); + SubscribeLocalEvent(OnStationInit); SubscribeLocalEvent(OnEmergencyFTL); SubscribeLocalEvent(OnEmergencyFTLComplete); @@ -201,10 +202,9 @@ private void OnShuttleRequestPosition(EmergencyShuttleRequestPositionMessage msg /// private void OnEmergencyFTL(EntityUid uid, EmergencyShuttleComponent component, ref FTLStartedEvent args) { - TimeSpan ftlTime = TimeSpan.FromSeconds + var ftlTime = TimeSpan.FromSeconds ( - TryComp(uid, out var ftlComp) ? - ftlComp.TravelTime : ShuttleSystem.DefaultTravelTime + TryComp(uid, out var ftlComp) ? ftlComp.TravelTime : _shuttle.DefaultTravelTime ); if (TryComp(uid, out var netComp)) @@ -260,10 +260,13 @@ private void OnEmergencyFTLComplete(EntityUid uid, EmergencyShuttleComponent com /// public void CallEmergencyShuttle(EntityUid stationUid, StationEmergencyShuttleComponent? stationShuttle = null) { - if (!Resolve(stationUid, ref stationShuttle) || - !TryComp(stationShuttle.EmergencyShuttle, out var xform) || + if (!Resolve(stationUid, ref stationShuttle)) + return; + + if (!TryComp(stationShuttle.EmergencyShuttle, out var xform) || !TryComp(stationShuttle.EmergencyShuttle, out var shuttle)) { + Log.Error($"Attempted to call an emergency shuttle for an uninitialized station? Station: {ToPrettyString(stationUid)}. Shuttle: {ToPrettyString(stationShuttle.EmergencyShuttle)}"); return; } @@ -329,8 +332,10 @@ public void CallEmergencyShuttle(EntityUid stationUid, StationEmergencyShuttleCo } } - private void OnCentcommInit(EntityUid uid, StationCentcommComponent component, ComponentInit args) + private void OnStationInit(EntityUid uid, StationCentcommComponent component, MapInitEvent args) { + // This is handled on map-init, so that centcomm has finished initializing by the time the StationPostInitEvent + // gets raised if (!_emergencyShuttleEnabled) return; @@ -341,12 +346,12 @@ private void OnCentcommInit(EntityUid uid, StationCentcommComponent component, C return; } - AddCentcomm(component); + AddCentcomm(uid, component); } - private void OnStationStartup(EntityUid uid, StationEmergencyShuttleComponent component, ComponentStartup args) + private void OnStationStartup(Entity ent, ref StationPostInitEvent args) { - AddEmergencyShuttle(uid, component); + AddEmergencyShuttle((ent, ent)); } /// @@ -383,19 +388,22 @@ private void SetupEmergencyShuttle() var centcommQuery = AllEntityQuery(); - while (centcommQuery.MoveNext(out var centcomm)) + while (centcommQuery.MoveNext(out var uid, out var centcomm)) { - AddCentcomm(centcomm); + AddCentcomm(uid, centcomm); } var query = AllEntityQuery(); while (query.MoveNext(out var uid, out var comp)) - AddEmergencyShuttle(uid, comp); + { + AddEmergencyShuttle((uid, comp)); + } } - private void AddCentcomm(StationCentcommComponent component) + private void AddCentcomm(EntityUid station, StationCentcommComponent component) { + DebugTools.Assert(LifeStage(station)>= EntityLifeStage.MapInitialized); if (component.MapEntity != null || component.Entity != null) { Log.Warning("Attempted to re-add an existing centcomm map."); @@ -411,12 +419,13 @@ private void AddCentcomm(StationCentcommComponent component) if (!Exists(otherComp.MapEntity) || !Exists(otherComp.Entity)) { - Log.Error($"Disconvered invalid centcomm component?"); + Log.Error($"Discovered invalid centcomm component?"); ClearCentcomm(otherComp); continue; } component.MapEntity = otherComp.MapEntity; + component.Entity = otherComp.Entity; component.ShuttleIndex = otherComp.ShuttleIndex; return; } @@ -460,6 +469,7 @@ private void AddCentcomm(StationCentcommComponent component) component.MapEntity = map; component.Entity = grid; _shuttle.TryAddFTLDestination(mapId, false, out _); + Log.Info($"Created centcomm grid {ToPrettyString(grid)} on map {ToPrettyString(map)} for station {ToPrettyString(station)}"); } public HashSet GetCentcommMaps() @@ -476,49 +486,67 @@ public HashSet GetCentcommMaps() return maps; } - private void AddEmergencyShuttle(EntityUid uid, StationEmergencyShuttleComponent component) + private void AddEmergencyShuttle(Entity ent) { - if (!_emergencyShuttleEnabled - || component.EmergencyShuttle != null || - !TryComp(uid, out var centcomm) - || !TryComp(centcomm.MapEntity, out MapComponent? map)) + if (!Resolve(ent.Owner, ref ent.Comp1, ref ent.Comp2)) + return; + + if (!_emergencyShuttleEnabled) + return; + + if (ent.Comp1.EmergencyShuttle != null ) + { + if (Exists(ent.Comp1.EmergencyShuttle)) + { + Log.Error($"Attempted to add an emergency shuttle to {ToPrettyString(ent)}, despite a shuttle already existing?"); + return; + } + + Log.Error($"Encountered deleted emergency shuttle during initialization of {ToPrettyString(ent)}"); + ent.Comp1.EmergencyShuttle = null; + } + + if (!TryComp(ent.Comp2.MapEntity, out MapComponent? map)) { + Log.Error($"Failed to add emergency shuttle - centcomm has not been initialized? {ToPrettyString(ent)}"); return; } // Load escape shuttle - var shuttlePath = component.EmergencyShuttlePath; + var shuttlePath = ent.Comp1.EmergencyShuttlePath; var shuttle = _map.LoadGrid(map.MapId, shuttlePath.ToString(), new MapLoadOptions() { // Should be far enough... right? I'm too lazy to bounds check CentCom rn. - Offset = new Vector2(500f + centcomm.ShuttleIndex, 0f), + Offset = new Vector2(500f + ent.Comp2.ShuttleIndex, 0f), // fun fact: if you just fucking yeet centcomm into nullspace anytime you try to spawn the shuttle, then any distance is far enough. so lets not do that LoadMap = false, }); if (shuttle == null) { - Log.Error($"Unable to spawn emergency shuttle {shuttlePath} for {ToPrettyString(uid)}"); + Log.Error($"Unable to spawn emergency shuttle {shuttlePath} for {ToPrettyString(ent)}"); return; } - centcomm.ShuttleIndex += Comp(shuttle.Value).LocalAABB.Width + ShuttleSpawnBuffer; + ent.Comp2.ShuttleIndex += Comp(shuttle.Value).LocalAABB.Width + ShuttleSpawnBuffer; // Update indices for all centcomm comps pointing to same map var query = AllEntityQuery(); while (query.MoveNext(out var comp)) { - if (comp == centcomm || comp.MapEntity != centcomm.MapEntity) + if (comp == ent.Comp2 || comp.MapEntity != ent.Comp2.MapEntity) continue; - comp.ShuttleIndex = centcomm.ShuttleIndex; + comp.ShuttleIndex = ent.Comp2.ShuttleIndex; } - component.EmergencyShuttle = shuttle; + ent.Comp1.EmergencyShuttle = shuttle; EnsureComp(shuttle.Value); EnsureComp(shuttle.Value); EnsureComp(shuttle.Value); + + Log.Info($"Added emergency shuttle {ToPrettyString(shuttle)} for station {ToPrettyString(ent)} and centcomm {ToPrettyString(ent.Comp2.Entity)}"); } /// diff --git a/Content.Server/Shuttles/Systems/RadarConsoleSystem.cs b/Content.Server/Shuttles/Systems/RadarConsoleSystem.cs index b7f08b4b34..1de20a8734 100644 --- a/Content.Server/Shuttles/Systems/RadarConsoleSystem.cs +++ b/Content.Server/Shuttles/Systems/RadarConsoleSystem.cs @@ -39,7 +39,7 @@ protected override void UpdateState(EntityUid uid, RadarConsoleComponent compone angle = Angle.Zero; } - if (_uiSystem.TryGetUi(uid, RadarConsoleUiKey.Key, out var bui)) + if (_uiSystem.HasUi(uid, RadarConsoleUiKey.Key)) { NavInterfaceState state; var docks = _console.GetAllDocks(); @@ -53,7 +53,7 @@ protected override void UpdateState(EntityUid uid, RadarConsoleComponent compone state = _console.GetNavState(uid, docks); } - _uiSystem.SetUiState(bui, new NavBoundUserInterfaceState(state)); + _uiSystem.SetUiState(uid, RadarConsoleUiKey.Key, new NavBoundUserInterfaceState(state)); } } } diff --git a/Content.Server/Shuttles/Systems/ShuttleConsoleSystem.cs b/Content.Server/Shuttles/Systems/ShuttleConsoleSystem.cs index fac74e34c5..6f24208c3a 100644 --- a/Content.Server/Shuttles/Systems/ShuttleConsoleSystem.cs +++ b/Content.Server/Shuttles/Systems/ShuttleConsoleSystem.cs @@ -136,13 +136,12 @@ public void RefreshShuttleConsoles() /// private void OnConsoleUIClose(EntityUid uid, ShuttleConsoleComponent component, BoundUIClosedEvent args) { - if ((ShuttleConsoleUiKey) args.UiKey != ShuttleConsoleUiKey.Key || - args.Session.AttachedEntity is not { } user) + if ((ShuttleConsoleUiKey) args.UiKey != ShuttleConsoleUiKey.Key) { return; } - RemovePilot(user); + RemovePilot(args.Actor); } private void OnConsoleUIOpenAttempt(EntityUid uid, ShuttleConsoleComponent component, @@ -265,9 +264,9 @@ private void UpdateState(EntityUid consoleUid, ref DockingInterfaceState? dockSt new List()); } - if (_ui.TryGetUi(consoleUid, ShuttleConsoleUiKey.Key, out var bui)) + if (_ui.HasUi(consoleUid, ShuttleConsoleUiKey.Key)) { - _ui.SetUiState(bui, new ShuttleBoundUserInterfaceState(navState, mapState, dockState)); + _ui.SetUiState(consoleUid, ShuttleConsoleUiKey.Key, new ShuttleBoundUserInterfaceState(navState, mapState, dockState)); } } diff --git a/Content.Server/Shuttles/Systems/ShuttleSystem.FasterThanLight.cs b/Content.Server/Shuttles/Systems/ShuttleSystem.FasterThanLight.cs index 5128869103..11cc16e0cd 100644 --- a/Content.Server/Shuttles/Systems/ShuttleSystem.FasterThanLight.cs +++ b/Content.Server/Shuttles/Systems/ShuttleSystem.FasterThanLight.cs @@ -6,6 +6,8 @@ using Content.Server.Station.Events; using Content.Shared.Body.Components; using Content.Shared.Buckle.Components; +using Content.Shared.CCVar; +using Content.Shared.Database; using Content.Shared.Ghost; using Content.Shared.Maps; using Content.Shared.Parallax; @@ -33,14 +35,6 @@ public sealed partial class ShuttleSystem * This is a way to move a shuttle from one location to another, via an intermediate map for fanciness. */ - public const float DefaultStartupTime = 5.5f; - public const float DefaultTravelTime = 20f; - public const float DefaultArrivalTime = 5f; - private const float FTLCooldown = 10f; - public const float FTLMassLimit = 300f; - - // I'm too lazy to make CVars. - private readonly SoundSpecifier _startupSound = new SoundPathSpecifier("/Audio/Effects/Shuttle/hyperspace_begin.ogg") { Params = AudioParams.Default.WithVolume(-5f), @@ -51,7 +45,12 @@ public sealed partial class ShuttleSystem Params = AudioParams.Default.WithVolume(-5f), }; - private readonly TimeSpan _hyperspaceKnockdownTime = TimeSpan.FromSeconds(5); + public float DefaultStartupTime; + public float DefaultTravelTime; + public float DefaultArrivalTime; + private float FTLCooldown; + public float FTLMassLimit; + private TimeSpan _hyperspaceKnockdownTime = TimeSpan.FromSeconds(5); /// /// Left-side of the station we're allowed to use @@ -89,6 +88,13 @@ private void InitializeFTL() _physicsQuery = GetEntityQuery(); _statusQuery = GetEntityQuery(); _xformQuery = GetEntityQuery(); + + _cfg.OnValueChanged(CCVars.FTLStartupTime, time => DefaultStartupTime = time, true); + _cfg.OnValueChanged(CCVars.FTLTravelTime, time => DefaultTravelTime = time, true); + _cfg.OnValueChanged(CCVars.FTLArrivalTime, time => DefaultArrivalTime = time, true); + _cfg.OnValueChanged(CCVars.FTLCooldown, time => FTLCooldown = time, true); + _cfg.OnValueChanged(CCVars.FTLMassLimit, time => FTLMassLimit = time, true); + _cfg.OnValueChanged(CCVars.HyperspaceKnockdownTime, time => _hyperspaceKnockdownTime = TimeSpan.FromSeconds(time), true); } private void OnStationPostInit(ref StationPostInitEvent ev) @@ -210,7 +216,9 @@ public bool CanFTL(EntityUid shuttleUid, [NotNullWhen(false)] out string? reason return false; } - if (TryComp(shuttleUid, out PhysicsComponent? shuttlePhysics) && shuttlePhysics.Mass > FTLMassLimit) + if (FTLMassLimit > 0 && + TryComp(shuttleUid, out PhysicsComponent? shuttlePhysics) && + shuttlePhysics.Mass > FTLMassLimit) { reason = Loc.GetString("shuttle-console-mass"); return false; @@ -243,15 +251,18 @@ public void FTLToCoordinates( ShuttleComponent component, EntityCoordinates coordinates, Angle angle, - float startupTime = DefaultStartupTime, - float hyperspaceTime = DefaultTravelTime, + float? startupTime = null, + float? hyperspaceTime = null, string? priorityTag = null) { if (!TrySetupFTL(shuttleUid, component, out var hyperspace)) return; - hyperspace.StartupTime = startupTime; - hyperspace.TravelTime = hyperspaceTime; + startupTime ??= DefaultStartupTime; + hyperspaceTime ??= DefaultTravelTime; + + hyperspace.StartupTime = startupTime.Value; + hyperspace.TravelTime = hyperspaceTime.Value; hyperspace.StateTime = StartEndTime.FromStartDuration( _gameTiming.CurTime, TimeSpan.FromSeconds(hyperspace.StartupTime)); @@ -275,16 +286,19 @@ public void FTLToDock( EntityUid shuttleUid, ShuttleComponent component, EntityUid target, - float startupTime = DefaultStartupTime, - float hyperspaceTime = DefaultTravelTime, + float? startupTime = null, + float? hyperspaceTime = null, string? priorityTag = null) { if (!TrySetupFTL(shuttleUid, component, out var hyperspace)) return; + startupTime ??= DefaultStartupTime; + hyperspaceTime ??= DefaultTravelTime; + var config = _dockSystem.GetDockingConfig(shuttleUid, target, priorityTag); - hyperspace.StartupTime = startupTime; - hyperspace.TravelTime = hyperspaceTime; + hyperspace.StartupTime = startupTime.Value; + hyperspace.TravelTime = hyperspaceTime.Value; hyperspace.StateTime = StartEndTime.FromStartDuration( _gameTiming.CurTime, TimeSpan.FromSeconds(hyperspace.StartupTime)); @@ -863,6 +877,8 @@ private void Smimsh(EntityUid uid, FixturesComponent? manager = null, MapGridCom if (_bodyQuery.TryGetComponent(ent, out var mob)) { + _logger.Add(LogType.Gib, LogImpact.Extreme, $"{ToPrettyString(ent):player} got gibbed by the shuttle" + + $" {ToPrettyString(uid)} arriving from FTL at {xform.Coordinates:coordinates}"); var gibs = _bobby.GibBody(ent, body: mob); _immuneEnts.UnionWith(gibs); continue; diff --git a/Content.Server/Shuttles/Systems/ShuttleSystem.IFF.cs b/Content.Server/Shuttles/Systems/ShuttleSystem.IFF.cs index bf265da2e6..ce79466b58 100644 --- a/Content.Server/Shuttles/Systems/ShuttleSystem.IFF.cs +++ b/Content.Server/Shuttles/Systems/ShuttleSystem.IFF.cs @@ -57,7 +57,7 @@ private void OnIFFConsoleAnchor(EntityUid uid, IFFConsoleComponent component, re !TryComp(uid, out var xform) || !TryComp(xform.GridUid, out var iff)) { - _uiSystem.TrySetUiState(uid, IFFConsoleUiKey.Key, new IFFConsoleBoundUserInterfaceState() + _uiSystem.SetUiState(uid, IFFConsoleUiKey.Key, new IFFConsoleBoundUserInterfaceState() { AllowedFlags = component.AllowedFlags, Flags = IFFFlags.None, @@ -65,7 +65,7 @@ private void OnIFFConsoleAnchor(EntityUid uid, IFFConsoleComponent component, re } else { - _uiSystem.TrySetUiState(uid, IFFConsoleUiKey.Key, new IFFConsoleBoundUserInterfaceState() + _uiSystem.SetUiState(uid, IFFConsoleUiKey.Key, new IFFConsoleBoundUserInterfaceState() { AllowedFlags = component.AllowedFlags, Flags = iff.Flags, @@ -83,7 +83,7 @@ protected override void UpdateIFFInterfaces(EntityUid gridUid, IFFComponent comp if (xform.GridUid != gridUid) continue; - _uiSystem.TrySetUiState(uid, IFFConsoleUiKey.Key, new IFFConsoleBoundUserInterfaceState() + _uiSystem.SetUiState(uid, IFFConsoleUiKey.Key, new IFFConsoleBoundUserInterfaceState() { AllowedFlags = comp.AllowedFlags, Flags = component.Flags, diff --git a/Content.Server/Shuttles/Systems/ShuttleSystem.cs b/Content.Server/Shuttles/Systems/ShuttleSystem.cs index 6dc25e8d76..6fe2324d51 100644 --- a/Content.Server/Shuttles/Systems/ShuttleSystem.cs +++ b/Content.Server/Shuttles/Systems/ShuttleSystem.cs @@ -1,3 +1,4 @@ +using Content.Server.Administration.Logs; using Content.Server.Body.Systems; using Content.Server.Doors.Systems; using Content.Server.Parallax; @@ -48,6 +49,7 @@ public sealed partial class ShuttleSystem : SharedShuttleSystem [Dependency] private readonly ThrowingSystem _throwing = default!; [Dependency] private readonly ThrusterSystem _thruster = default!; [Dependency] private readonly UserInterfaceSystem _uiSystem = default!; + [Dependency] private readonly IAdminLogManager _logger = default!; public const float TileMassMultiplier = 0.5f; diff --git a/Content.Server/Shuttles/Systems/ThrusterSystem.cs b/Content.Server/Shuttles/Systems/ThrusterSystem.cs index be55cd9a62..46715dd291 100644 --- a/Content.Server/Shuttles/Systems/ThrusterSystem.cs +++ b/Content.Server/Shuttles/Systems/ThrusterSystem.cs @@ -1,5 +1,6 @@ using System.Numerics; using Content.Server.Audio; +using Content.Server.Construction; using Content.Server.Power.Components; using Content.Server.Power.EntitySystems; using Content.Server.Shuttles.Components; @@ -51,6 +52,9 @@ public override void Initialize() SubscribeLocalEvent(OnThrusterExamine); + SubscribeLocalEvent(OnRefreshParts); + SubscribeLocalEvent(OnUpgradeExamine); + SubscribeLocalEvent(OnShuttleTileChange); } @@ -264,11 +268,6 @@ public void EnableThruster(EntityUid uid, ThrusterComponent component, Transform return; } - if (TryComp(uid, out var apcPower)) - { - apcPower.NeedsPower = true; - } - component.IsOn = true; if (!EntityManager.TryGetComponent(xform.GridUid, out ShuttleComponent? shuttleComponent)) @@ -371,11 +370,6 @@ public void DisableThruster(EntityUid uid, ThrusterComponent component, EntityUi if (!EntityManager.TryGetComponent(gridId, out ShuttleComponent? shuttleComponent)) return; - if (TryComp(uid, out var apcPower)) - { - apcPower.NeedsPower = false; - } - // Logger.DebugS("thruster", $"Disabled thruster {uid}"); switch (component.Type) @@ -580,6 +574,24 @@ public void SetAngularThrust(ShuttleComponent component, bool on) } } + private void OnRefreshParts(EntityUid uid, ThrusterComponent component, RefreshPartsEvent args) + { + if (component.IsOn) // safely disable thruster to prevent negative thrust + DisableThruster(uid, component); + + var thrustRating = args.PartRatings[component.MachinePartThrust]; + + component.Thrust = component.BaseThrust * MathF.Pow(component.PartRatingThrustMultiplier, thrustRating - 1); + + if (component.Enabled && CanEnable(uid, component)) + EnableThruster(uid, component); + } + + private void OnUpgradeExamine(EntityUid uid, ThrusterComponent component, UpgradeExamineEvent args) + { + args.AddPercentageUpgrade("thruster-comp-upgrade-thrust", component.Thrust / component.BaseThrust); + } + #endregion private int GetFlagIndex(DirectionFlag flag) diff --git a/Content.Server/Silicon/BatteryLocking/BatterySlotRequiresLockSystem.cs b/Content.Server/Silicon/BatteryLocking/BatterySlotRequiresLockSystem.cs index 98e1cb5584..12e8669128 100644 --- a/Content.Server/Silicon/BatteryLocking/BatterySlotRequiresLockSystem.cs +++ b/Content.Server/Silicon/BatteryLocking/BatterySlotRequiresLockSystem.cs @@ -2,7 +2,7 @@ using Content.Shared.Lock; using Content.Shared.Popups; using Content.Shared.Silicon.Components; -using Content.Shared.IdentityManagement; +using Content.Shared.IdentityManagement; namespace Content.Server.Silicon.BatteryLocking; @@ -10,19 +10,18 @@ public sealed class BatterySlotRequiresLockSystem : EntitySystem { [Dependency] private readonly ItemSlotsSystem _itemSlotsSystem = default!; - [Dependency] private readonly SharedPopupSystem _popupSystem = default!; + [Dependency] private readonly SharedPopupSystem _popupSystem = default!; - /// public override void Initialize() { base.Initialize(); SubscribeLocalEvent(LockToggled); - SubscribeLocalEvent(LockToggleAttempted); - + SubscribeLocalEvent(LockToggleAttempted); } + private void LockToggled(EntityUid uid, BatterySlotRequiresLockComponent component, LockToggledEvent args) { - if (!TryComp(uid, out var lockComp) + if (!TryComp(uid, out var lockComp) || !TryComp(uid, out var itemslots) || !_itemSlotsSystem.TryGetSlot(uid, component.ItemSlot, out var slot, itemslots)) return; @@ -33,9 +32,9 @@ private void LockToggled(EntityUid uid, BatterySlotRequiresLockComponent compone private void LockToggleAttempted(EntityUid uid, BatterySlotRequiresLockComponent component, LockToggleAttemptEvent args) { if (args.User == uid - || !TryComp(uid, out var siliconComp)) + || !HasComp(uid)) return; - + _popupSystem.PopupEntity(Loc.GetString("batteryslotrequireslock-component-alert-owner", ("user", Identity.Entity(args.User, EntityManager))), uid, uid, PopupType.Large); } diff --git a/Content.Server/Silicon/BlindHealing/BlindHealingComponent.cs b/Content.Server/Silicon/BlindHealing/BlindHealingComponent.cs index 4c3c478c4b..fe21849170 100644 --- a/Content.Server/Silicon/BlindHealing/BlindHealingComponent.cs +++ b/Content.Server/Silicon/BlindHealing/BlindHealingComponent.cs @@ -1,28 +1,23 @@ -using Content.Shared.Damage; -using Content.Shared.Tools; -using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype; +namespace Content.Server.Silicon.BlindHealing; -namespace Content.Server.Silicon.BlindHealing +[RegisterComponent] +public sealed partial class BlindHealingComponent : Component { - [RegisterComponent] - public sealed partial class BlindHealingComponent : Component - { - [DataField] - public int DoAfterDelay = 3; + [DataField] + public int DoAfterDelay = 3; - /// - /// A multiplier that will be applied to the above if an entity is repairing themselves. - /// - [DataField] - public float SelfHealPenalty = 3f; + /// + /// A multiplier that will be applied to the above if an entity is repairing themselves. + /// + [DataField] + public float SelfHealPenalty = 3f; - /// - /// Whether or not an entity is allowed to repair itself. - /// - [DataField] - public bool AllowSelfHeal = true; + /// + /// Whether or not an entity is allowed to repair itself. + /// + [DataField] + public bool AllowSelfHeal = true; - [DataField(required: true)] - public List DamageContainers; - } + [DataField(required: true)] + public List DamageContainers; } diff --git a/Content.Server/Silicon/BlindHealing/BlindHealingSystem.cs b/Content.Server/Silicon/BlindHealing/BlindHealingSystem.cs index 6cf60e6ef3..b9d26b59f7 100644 --- a/Content.Server/Silicon/BlindHealing/BlindHealingSystem.cs +++ b/Content.Server/Silicon/BlindHealing/BlindHealingSystem.cs @@ -12,110 +12,87 @@ using Content.Shared.Popups; using Content.Shared.Stacks; -namespace Content.Server.Silicon.BlindHealing +namespace Content.Server.Silicon.BlindHealing; + +public sealed class BlindHealingSystem : SharedBlindHealingSystem { - public sealed class BlindHealingSystem : SharedBlindHealingSystem + [Dependency] private readonly SharedPopupSystem _popup = default!; + [Dependency] private readonly IAdminLogManager _adminLogger = default!; + [Dependency] private readonly BlindableSystem _blindableSystem = default!; + [Dependency] private readonly StackSystem _stackSystem = default!; + [Dependency] private readonly SharedDoAfterSystem _doAfter = default!; + + public override void Initialize() { - [Dependency] private readonly SharedPopupSystem _popup = default!; - [Dependency] private readonly IAdminLogManager _adminLogger= default!; - [Dependency] private readonly BlindableSystem _blindableSystem = default!; - [Dependency] private readonly StackSystem _stackSystem = default!; - [Dependency] private readonly DamageableSystem _damageableSystem = default!; - [Dependency] private readonly SharedDoAfterSystem _doAfter = default!; - - public override void Initialize() - { - SubscribeLocalEvent(OnUse); - SubscribeLocalEvent(OnInteract); - SubscribeLocalEvent(OnHealingFinished); - } - - private void OnHealingFinished(EntityUid uid, BlindHealingComponent component, HealingDoAfterEvent args) - { - Log.Info("event started!"); - - if (args.Cancelled || args.Target == null) - return; - - EntityUid target = (EntityUid) args.Target; - - if(!EntityManager.TryGetComponent(target, out BlindableComponent? blindcomp) - || blindcomp is { EyeDamage: 0 }) - return; - - if(EntityManager.TryGetComponent(uid, out StackComponent? stackComponent)) - { - double price = 1; - if (EntityManager.TryGetComponent(uid, out StackPriceComponent? stackPrice)) - price = stackPrice.Price; - _stackSystem.SetCount(uid, (int) (_stackSystem.GetCount(uid, stackComponent) - price), stackComponent); + SubscribeLocalEvent(OnUse); + SubscribeLocalEvent(OnInteract); + SubscribeLocalEvent(OnHealingFinished); + } - } + private void OnHealingFinished(EntityUid uid, BlindHealingComponent component, HealingDoAfterEvent args) + { + if (args.Cancelled || args.Target == null + || !TryComp(args.Target, out var blindComp) + || blindComp is { EyeDamage: 0 }) + return; - _blindableSystem.AdjustEyeDamage((target, blindcomp), -blindcomp!.EyeDamage); + if (TryComp(uid, out var stackComponent) + && TryComp(uid, out var stackPrice)) + _stackSystem.SetCount(uid, (int) (_stackSystem.GetCount(uid, stackComponent) - stackPrice.Price), stackComponent); - _adminLogger.Add(LogType.Healed, $"{ToPrettyString(args.User):user} repaired {ToPrettyString(uid):target}'s vision"); + _blindableSystem.AdjustEyeDamage((args.Target.Value, blindComp), -blindComp.EyeDamage); - var str = Loc.GetString("comp-repairable-repair", - ("target", uid), - ("tool", args.Used!)); - _popup.PopupEntity(str, uid, args.User); + _adminLogger.Add(LogType.Healed, $"{ToPrettyString(args.User):user} repaired {ToPrettyString(uid):target}'s vision"); - } + var str = Loc.GetString("comp-repairable-repair", + ("target", uid), + ("tool", args.Used!)); + _popup.PopupEntity(str, uid, args.User); - private bool TryHealBlindness(EntityUid uid, EntityUid user, EntityUid target, float delay) - { - var doAfterEventArgs = - new DoAfterArgs(EntityManager, user, delay, new HealingDoAfterEvent(), uid, target: target, used: uid) - { - NeedHand = true, - BreakOnUserMove = true, - BreakOnWeightlessMove = false, - }; + } - _doAfter.TryStartDoAfter(doAfterEventArgs); - return true; - } + private bool TryHealBlindness(EntityUid uid, EntityUid user, EntityUid target, float delay) + { + var doAfterEventArgs = + new DoAfterArgs(EntityManager, user, delay, new HealingDoAfterEvent(), uid, target: target, used: uid) + { + NeedHand = true, + BreakOnUserMove = true, + BreakOnWeightlessMove = false, + }; - private void OnInteract(EntityUid uid, BlindHealingComponent component, ref AfterInteractEvent args) - { + _doAfter.TryStartDoAfter(doAfterEventArgs); + return true; + } - if (args.Handled - || !TryComp(args.User, out DamageableComponent? damageable) - || damageable.DamageContainerID != null - && !component.DamageContainers.Contains(damageable.DamageContainerID) - || !TryComp(args.User, out BlindableComponent? blindcomp) - || blindcomp is { EyeDamage: 0 }) - return; + private void OnInteract(EntityUid uid, BlindHealingComponent component, ref AfterInteractEvent args) + { - float delay = component.DoAfterDelay; + if (args.Handled + || !TryComp(args.User, out var damageable) + || damageable.DamageContainerID != null && !component.DamageContainers.Contains(damageable.DamageContainerID) + || !TryComp(args.User, out var blindcomp) + || blindcomp.EyeDamage == 0 + || args.User == args.Target && !component.AllowSelfHeal) + return; + + TryHealBlindness(uid, args.User, args.User, + args.User == args.Target + ? component.DoAfterDelay * component.SelfHealPenalty + : component.DoAfterDelay); + } - if (args.User == args.Target) - { - if (!component.AllowSelfHeal) - return; - delay *= component.SelfHealPenalty; - } - - TryHealBlindness(uid, args.User, args.User, delay); - } - - private void OnUse(EntityUid uid, BlindHealingComponent component, ref UseInHandEvent args) - { - if (args.Handled - || !TryComp(args.User, out DamageableComponent? damageable) - || damageable.DamageContainerID != null - && !component.DamageContainers.Contains(damageable.DamageContainerID) - || !TryComp(args.User, out BlindableComponent? blindcomp) - || blindcomp is { EyeDamage: 0 } - || !component.AllowSelfHeal) - return; - - float delay = component.DoAfterDelay; - delay *= component.SelfHealPenalty; - - TryHealBlindness(uid, args.User, args.User, delay); - - } + private void OnUse(EntityUid uid, BlindHealingComponent component, ref UseInHandEvent args) + { + if (args.Handled + || !TryComp(args.User, out var damageable) + || damageable.DamageContainerID != null && !component.DamageContainers.Contains(damageable.DamageContainerID) + || !TryComp(args.User, out var blindcomp) + || blindcomp.EyeDamage == 0 + || !component.AllowSelfHeal) + return; + + TryHealBlindness(uid, args.User, args.User, + component.DoAfterDelay * component.SelfHealPenalty); } } diff --git a/Content.Server/Silicon/Charge/Components/SiliconDownOnDeadComponent.cs b/Content.Server/Silicon/Charge/Components/SiliconDownOnDeadComponent.cs index 3080144cd4..4b3aad33ab 100644 --- a/Content.Server/Silicon/Charge/Components/SiliconDownOnDeadComponent.cs +++ b/Content.Server/Silicon/Charge/Components/SiliconDownOnDeadComponent.cs @@ -1,5 +1,3 @@ -using System.Threading; - namespace Content.Server.Silicon.Death; /// @@ -15,5 +13,5 @@ public sealed partial class SiliconDownOnDeadComponent : Component /// Is this Silicon currently dead? /// [ViewVariables(VVAccess.ReadOnly)] - public bool Dead { get; set; } = false; + public bool Dead; } diff --git a/Content.Server/Silicon/Charge/Systems/SiliconChargeDeathSystem.cs b/Content.Server/Silicon/Charge/Systems/SiliconChargeDeathSystem.cs index d6fa07a1a1..d4d1db5ed9 100644 --- a/Content.Server/Silicon/Charge/Systems/SiliconChargeDeathSystem.cs +++ b/Content.Server/Silicon/Charge/Systems/SiliconChargeDeathSystem.cs @@ -2,14 +2,9 @@ using Content.Shared.Silicon.Systems; using Content.Server.Bed.Sleep; using Content.Shared.Bed.Sleep; -using Content.Server.Sound.Components; using Content.Server.Silicon.Charge; -using System.Threading; using Content.Server.Humanoid; using Content.Shared.Humanoid; -using Content.Shared.Humanoid.Markings; -using Robust.Shared.Utility; -using Timer = Robust.Shared.Timing.Timer; namespace Content.Server.Silicon.Death; @@ -40,7 +35,7 @@ private void OnSiliconChargeStateUpdate(EntityUid uid, SiliconDownOnDeadComponen if (args.ChargePercent == 0 && !siliconDeadComp.Dead) SiliconDead(uid, siliconDeadComp, batteryComp, uid); else if (args.ChargePercent != 0 && siliconDeadComp.Dead) - SiliconUnDead(uid, siliconDeadComp, batteryComp, uid); + SiliconUnDead(uid, siliconDeadComp, batteryComp, uid); } private void SiliconDead(EntityUid uid, SiliconDownOnDeadComponent siliconDeadComp, BatteryComponent? batteryComp, EntityUid batteryUid) @@ -54,7 +49,7 @@ private void SiliconDead(EntityUid uid, SiliconDownOnDeadComponent siliconDeadCo EntityManager.EnsureComponent(uid); EntityManager.EnsureComponent(uid); - if (TryComp(uid, out HumanoidAppearanceComponent? humanoidAppearanceComponent)) + if (TryComp(uid, out var humanoidAppearanceComponent)) { var layers = HumanoidVisualLayersExtension.Sublayers(HumanoidVisualLayers.HeadSide); _humanoidAppearanceSystem.SetLayersVisibility(uid, layers, false, true, humanoidAppearanceComponent); diff --git a/Content.Server/Silicon/Charge/Systems/SiliconChargeSystem.cs b/Content.Server/Silicon/Charge/Systems/SiliconChargeSystem.cs index de50c828bd..d8b034a69f 100644 --- a/Content.Server/Silicon/Charge/Systems/SiliconChargeSystem.cs +++ b/Content.Server/Silicon/Charge/Systems/SiliconChargeSystem.cs @@ -10,20 +10,16 @@ using Content.Shared.Silicon.Systems; using Content.Shared.Movement.Systems; using Content.Server.Body.Components; -using Content.Server.Power.EntitySystems; using Robust.Shared.Containers; using Content.Shared.Mind.Components; using System.Diagnostics.CodeAnalysis; using Content.Server.PowerCell; using Robust.Shared.Timing; using Robust.Shared.Configuration; -using Robust.Shared.Audio.Systems; using Robust.Shared.Utility; using Content.Shared.CCVar; using Content.Shared.PowerCell.Components; -using Content.Shared.Mind; using Content.Shared.Alert; -using Content.Server.Silicon.Death; namespace Content.Server.Silicon.Charge; @@ -34,7 +30,6 @@ public sealed class SiliconChargeSystem : EntitySystem [Dependency] private readonly FlammableSystem _flammable = default!; [Dependency] private readonly PopupSystem _popup = default!; [Dependency] private readonly MovementSpeedModifierSystem _moveMod = default!; - [Dependency] private readonly SharedContainerSystem _container = default!; [Dependency] private readonly IGameTiming _timing = default!; [Dependency] private readonly IConfigurationManager _config = default!; [Dependency] private readonly PowerCellSystem _powerCell = default!; @@ -49,27 +44,23 @@ public override void Initialize() public bool TryGetSiliconBattery(EntityUid silicon, [NotNullWhen(true)] out BatteryComponent? batteryComp) { batteryComp = null; - if (!TryComp(silicon, out SiliconComponent? siliconComp)) + if (!HasComp(silicon)) return false; - // try get a battery directly on the inserted entity if (TryComp(silicon, out batteryComp) || _powerCell.TryGetBatteryFromSlot(silicon, out batteryComp)) return true; - //DebugTools.Assert("SiliconComponent does not contain Battery"); return false; } private void OnSiliconStartup(EntityUid uid, SiliconComponent component, ComponentStartup args) { - if (!TryComp(uid, out PowerCellSlotComponent? batterySlot)) + if (!HasComp(uid)) return; - var container = _container.GetContainer(uid, batterySlot.CellSlotId); - if (component.EntityType.GetType() != typeof(SiliconType)) DebugTools.Assert("SiliconComponent.EntityType is not a SiliconType enum."); } @@ -82,7 +73,8 @@ public override void Update(float frameTime) var query = EntityQueryEnumerator(); while (query.MoveNext(out var silicon, out var siliconComp)) { - if (!siliconComp.BatteryPowered) + if (_mobState.IsDead(silicon) + || !siliconComp.BatteryPowered) continue; // Check if the Silicon is an NPC, and if so, follow the delay as specified in the CVAR. @@ -107,20 +99,11 @@ public override void Update(float frameTime) continue; } - // If the silicon is dead, skip it. - if (_mobState.IsDead(silicon)) + // If the silicon ghosted or is SSD while still being powered, skip it. + if (TryComp(silicon, out var mindContComp) + && !mindContComp.HasMind) continue; - // If the silicon ghosted or is SSD while still being powered, skip it. - DeltaV - if (EntityManager.TryGetComponent(silicon, out var mindContComp) - && EntityManager.TryGetComponent(silicon, out var siliconDeathComp)) - { - if ((mindContComp.HasMind == false || CompOrNull(mindContComp.Mind)?.Session == null) && !siliconDeathComp.Dead) - { - continue; - } - } - var drainRate = siliconComp.DrainPerSecond; // All multipliers will be subtracted by 1, and then added together, and then multiplied by the drain rate. This is then added to the base drain rate. @@ -131,7 +114,7 @@ public override void Update(float frameTime) // Maybe use something similar to refreshmovespeedmodifiers, where it's stored in the component. // Maybe it doesn't matter, and stuff should just use static drain? if (!siliconComp.EntityType.Equals(SiliconType.Npc)) // Don't bother checking heat if it's an NPC. It's a waste of time, and it'd be delayed due to the update time. - drainRateFinalAddi += SiliconHeatEffects(silicon, frameTime) - 1; // This will need to be changed at some point if we allow external batteries, since the heat of the Silicon might not be applicable. + drainRateFinalAddi += SiliconHeatEffects(silicon, siliconComp, frameTime) - 1; // This will need to be changed at some point if we allow external batteries, since the heat of the Silicon might not be applicable. // Ensures that the drain rate is at least 10% of normal, // and would allow at least 4 minutes of life with a max charge, to prevent cheese. @@ -166,14 +149,12 @@ public void UpdateChargeState(EntityUid uid, short chargePercent, SiliconCompone } } - private float SiliconHeatEffects(EntityUid silicon, float frameTime) + private float SiliconHeatEffects(EntityUid silicon, SiliconComponent siliconComp, float frameTime) { - if (!EntityManager.TryGetComponent(silicon, out var temperComp) - || !EntityManager.TryGetComponent(silicon, out var thermalComp)) + if (!TryComp(silicon, out var temperComp) + || !TryComp(silicon, out var thermalComp)) return 0; - var siliconComp = EntityManager.GetComponent(silicon); - // If the Silicon is hot, drain the battery faster, if it's cold, drain it slower, capped. var upperThresh = thermalComp.NormalBodyTemperature + thermalComp.ThermalRegulationTemperatureThreshold; var upperThreshHalf = thermalComp.NormalBodyTemperature + thermalComp.ThermalRegulationTemperatureThreshold * 0.5f; @@ -198,12 +179,11 @@ private float SiliconHeatEffects(EntityUid silicon, float frameTime) return hotTempMulti; _popup.PopupEntity(Loc.GetString("silicon-overheating"), silicon, silicon, PopupType.MediumCaution); - if (_random.Prob(Math.Clamp(temperComp.CurrentTemperature / (upperThresh * 5), 0.001f, 0.9f))) - { - //MaximumFireStacks and MinimumFireStacks doesn't exists on EE - _flammable.AdjustFireStacks(silicon, Math.Clamp(siliconComp.FireStackMultiplier, -10, 10), flamComp); - _flammable.Ignite(silicon, silicon, flamComp); - } + if (!_random.Prob(Math.Clamp(temperComp.CurrentTemperature / (upperThresh * 5), 0.001f, 0.9f))) + return hotTempMulti; + + _flammable.AdjustFireStacks(silicon, Math.Clamp(siliconComp.FireStackMultiplier, -10, 10), flamComp); + _flammable.Ignite(silicon, silicon, flamComp); return hotTempMulti; } diff --git a/Content.Server/Silicon/DeadStartupButtonSystem/DeadStartupButtonSystem.cs b/Content.Server/Silicon/DeadStartupButtonSystem/DeadStartupButtonSystem.cs index a25f2a2254..6e516f3011 100644 --- a/Content.Server/Silicon/DeadStartupButtonSystem/DeadStartupButtonSystem.cs +++ b/Content.Server/Silicon/DeadStartupButtonSystem/DeadStartupButtonSystem.cs @@ -1,4 +1,3 @@ -using Content.Server.Chat.Systems; using Content.Server.Lightning; using Content.Server.Popups; using Content.Server.PowerCell; @@ -25,11 +24,11 @@ public sealed class DeadStartupButtonSystem : SharedDeadStartupButtonSystem [Dependency] private readonly LightningSystem _lightning = default!; [Dependency] private readonly SiliconChargeSystem _siliconChargeSystem = default!; [Dependency] private readonly PowerCellSystem _powerCell = default!; - [Dependency] private readonly ChatSystem _chatSystem = default!; /// public override void Initialize() { + base.Initialize(); SubscribeLocalEvent(OnDoAfter); SubscribeLocalEvent(OnElectrocuted); SubscribeLocalEvent(OnMobStateChanged); @@ -39,14 +38,13 @@ public override void Initialize() private void OnDoAfter(EntityUid uid, DeadStartupButtonComponent comp, OnDoAfterButtonPressedEvent args) { if (args.Handled || args.Cancelled - || !TryComp(uid, out MobStateComponent? mobStateComponent) + || !TryComp(uid, out var mobStateComponent) || !_mobState.IsDead(uid, mobStateComponent) - || !TryComp(uid, out MobThresholdsComponent? mobThresholdsComponent) - || !TryComp(uid, out DamageableComponent? damageable)) + || !TryComp(uid, out var mobThresholdsComponent) + || !TryComp(uid, out var damageable) + || !_mobThreshold.TryGetThresholdForState(uid, MobState.Critical, out var criticalThreshold, mobThresholdsComponent)) return; - var criticalThreshold = _mobThreshold.GetThresholdForState(uid, MobState.Critical, mobThresholdsComponent); - if (damageable.TotalDamage < criticalThreshold) _mobState.ChangeMobState(uid, MobState.Alive, mobStateComponent); else @@ -59,9 +57,9 @@ private void OnDoAfter(EntityUid uid, DeadStartupButtonComponent comp, OnDoAfter private void OnElectrocuted(EntityUid uid, DeadStartupButtonComponent comp, ElectrocutedEvent args) { - if (!TryComp(uid, out MobStateComponent? mobStateComponent) + if (!TryComp(uid, out var mobStateComponent) || !_mobState.IsDead(uid, mobStateComponent) - || !_siliconChargeSystem.TryGetSiliconBattery(uid, out var bateria) + || !_siliconChargeSystem.TryGetSiliconBattery(uid, out var bateria) || bateria.CurrentCharge <= 0) return; @@ -72,13 +70,10 @@ private void OnElectrocuted(EntityUid uid, DeadStartupButtonComponent comp, Elec private void OnMobStateChanged(EntityUid uid, DeadStartupButtonComponent comp, MobStateChangedEvent args) { + if (args.NewMobState != MobState.Alive) + return; - if (args.NewMobState == MobState.Alive) - { - _popup.PopupEntity(Loc.GetString("dead-startup-system-reboot-success", ("target", MetaData(uid).EntityName)), uid); - _audio.PlayPvs(comp.Sound, uid); - } - + _popup.PopupEntity(Loc.GetString("dead-startup-system-reboot-success", ("target", MetaData(uid).EntityName)), uid); + _audio.PlayPvs(comp.Sound, uid); } - } diff --git a/Content.Server/Silicon/EmitBuzzWhileDamaged/EmitBuzzWhileDamagedSystem.cs b/Content.Server/Silicon/EmitBuzzWhileDamaged/EmitBuzzWhileDamagedSystem.cs index 05e5f5af89..161a912d06 100644 --- a/Content.Server/Silicon/EmitBuzzWhileDamaged/EmitBuzzWhileDamagedSystem.cs +++ b/Content.Server/Silicon/EmitBuzzWhileDamaged/EmitBuzzWhileDamagedSystem.cs @@ -1,13 +1,13 @@ using Content.Server.Popups; using Content.Shared.Silicon.EmitBuzzWhileDamaged; using Content.Shared.Audio; -using Content.Shared.Body.Components; using Content.Shared.Damage; using Content.Shared.Mobs; using Content.Shared.Mobs.Systems; using Robust.Shared.Audio.Systems; using Robust.Shared.Random; using Robust.Shared.Timing; +using Content.Shared.Mobs.Components; namespace Content.Server.Silicon.EmitBuzzOnCrit; @@ -27,34 +27,29 @@ public override void Update(float frameTime) { base.Update(frameTime); - var query = EntityQueryEnumerator(); + var query = EntityQueryEnumerator(); - while (query.MoveNext(out var uid, out var emitBuzzOnCritComponent, out var body)) + while (query.MoveNext(out var uid, out var emitBuzzOnCritComponent, out var mobStateComponent, out var thresholdsComponent, out var damageableComponent)) { - - if (_mobState.IsDead(uid) - || !_mobThreshold.TryGetThresholdForState(uid, MobState.Critical, out var threshold) - || !TryComp(uid, out DamageableComponent? damageableComponent) - || damageableComponent.TotalDamage < (threshold/2)) + if (_mobState.IsDead(uid, mobStateComponent) + || !_mobThreshold.TryGetThresholdForState(uid, MobState.Critical, out var threshold, thresholdsComponent) + || damageableComponent.TotalDamage < threshold / 2) continue; - + // Check update time emitBuzzOnCritComponent.AccumulatedFrametime += frameTime; - if (emitBuzzOnCritComponent.AccumulatedFrametime < emitBuzzOnCritComponent.CycleDelay) continue; emitBuzzOnCritComponent.AccumulatedFrametime -= emitBuzzOnCritComponent.CycleDelay; + if (_gameTiming.CurTime <= emitBuzzOnCritComponent.LastBuzzPopupTime + emitBuzzOnCritComponent.BuzzPopupCooldown) + continue; - // start buzzing - if (_gameTiming.CurTime >= emitBuzzOnCritComponent.LastBuzzPopupTime + emitBuzzOnCritComponent.BuzzPopupCooldown) - { - emitBuzzOnCritComponent.LastBuzzPopupTime = _gameTiming.CurTime; - _popupSystem.PopupEntity(Loc.GetString("silicon-behavior-buzz"), uid); - Spawn("EffectSparks", Transform(uid).Coordinates); - _audio.PlayPvs(emitBuzzOnCritComponent.Sound, uid, AudioHelpers.WithVariation(0.05f, _robustRandom)); - } + // Start buzzing + emitBuzzOnCritComponent.LastBuzzPopupTime = _gameTiming.CurTime; + _popupSystem.PopupEntity(Loc.GetString("silicon-behavior-buzz"), uid); + Spawn("EffectSparks", Transform(uid).Coordinates); + _audio.PlayPvs(emitBuzzOnCritComponent.Sound, uid, AudioHelpers.WithVariation(0.05f, _robustRandom)); } } - } diff --git a/Content.Server/Silicon/EncryptionHolderRequiresLock/EncryptionHolderRequiresLockSystem.cs b/Content.Server/Silicon/EncryptionHolderRequiresLock/EncryptionHolderRequiresLockSystem.cs index 5eb4f25c49..6efb51096c 100644 --- a/Content.Server/Silicon/EncryptionHolderRequiresLock/EncryptionHolderRequiresLockSystem.cs +++ b/Content.Server/Silicon/EncryptionHolderRequiresLock/EncryptionHolderRequiresLockSystem.cs @@ -1,4 +1,3 @@ -using Content.Shared.Containers.ItemSlots; using Content.Shared.Lock; using Content.Shared.Radio.Components; using Content.Shared.Radio.EntitySystems; @@ -8,7 +7,6 @@ namespace Content.Server.Silicon.EncryptionHolderRequiresLock; public sealed class EncryptionHolderRequiresLockSystem : EntitySystem { - [Dependency] private readonly ItemSlotsSystem _itemSlotsSystem = default!; [Dependency] private readonly EncryptionKeySystem _encryptionKeySystem = default!; /// @@ -16,11 +14,11 @@ public override void Initialize() { base.Initialize(); SubscribeLocalEvent(LockToggled); - } + private void LockToggled(EntityUid uid, EncryptionHolderRequiresLockComponent component, LockToggledEvent args) { - if (!TryComp(uid, out var lockComp) + if (!TryComp(uid, out var lockComp) || !TryComp(uid, out var keyHolder)) return; diff --git a/Content.Server/Silicon/IPC/InternalEncryptionKeySpawner.cs b/Content.Server/Silicon/IPC/InternalEncryptionKeySpawner.cs index eb01409e85..5f799a102e 100644 --- a/Content.Server/Silicon/IPC/InternalEncryptionKeySpawner.cs +++ b/Content.Server/Silicon/IPC/InternalEncryptionKeySpawner.cs @@ -1,39 +1,34 @@ -using Content.Shared.Preferences; using Content.Shared.Roles; using Content.Shared.Radio.Components; using Content.Shared.Containers; using Robust.Shared.Containers; - // Pretty much copied from StationSpawningSystem.SpawnStartingGear namespace Content.Server.Silicon.IPC; -public static class InternalEncryptionKeySpawner +public sealed partial class InternalEncryptionKeySpawner : EntitySystem { - public static void TryInsertEncryptionKey(EntityUid target, StartingGearPrototype startingGear, IEntityManager entityManager, HumanoidCharacterProfile? profile) + [Dependency] private readonly SharedContainerSystem _container = default!; + public void TryInsertEncryptionKey(EntityUid target, StartingGearPrototype startingGear, IEntityManager entityManager) { - if (entityManager.TryGetComponent(target, out var keyHolderComp)) - { - var earEquipString = startingGear.GetGear("ears", profile); - var containerMan = entityManager.System(); +#pragma warning disable CS8073 + if (target == null // target can be null during race conditions intentionally created by awful tests. +#pragma warning restore CS8073 + || !TryComp(target, out var keyHolderComp) + || keyHolderComp is null + || !startingGear.Equipment.TryGetValue("ears", out var earEquipString) + || string.IsNullOrEmpty(earEquipString)) + return; - if (!string.IsNullOrEmpty(earEquipString)) - { - var earEntity = entityManager.SpawnEntity(earEquipString, entityManager.GetComponent(target).Coordinates); + var earEntity = entityManager.SpawnEntity(earEquipString, entityManager.GetComponent(target).Coordinates); + if (!entityManager.HasComponent(earEntity) + || !entityManager.TryGetComponent(earEntity, out var fillComp) + || !fillComp.Containers.TryGetValue(EncryptionKeyHolderComponent.KeyContainerName, out var defaultKeys)) + return; - if (entityManager.TryGetComponent(earEntity, out _) && // I had initially wanted this to spawn the headset, and simply move all the keys over, but the headset didn't seem to have any keys in it when spawned... - entityManager.TryGetComponent(earEntity, out var fillComp) && - fillComp.Containers.TryGetValue(EncryptionKeyHolderComponent.KeyContainerName, out var defaultKeys)) - { - containerMan.CleanContainer(keyHolderComp.KeyContainer); + _container.CleanContainer(keyHolderComp.KeyContainer); - foreach (var key in defaultKeys) - { - var keyEntity = entityManager.SpawnEntity(key, entityManager.GetComponent(target).Coordinates); - containerMan.Insert(keyEntity, keyHolderComp.KeyContainer, force: true); - } - } + foreach (var key in defaultKeys) + entityManager.SpawnInContainerOrDrop(key, target, keyHolderComp.KeyContainer.ID, out _); - entityManager.QueueDeleteEntity(earEntity); - } - } + entityManager.QueueDeleteEntity(earEntity); } } diff --git a/Content.Server/Silicon/Systems/SiliconMiscSystem.cs b/Content.Server/Silicon/Systems/SiliconMiscSystem.cs deleted file mode 100644 index 85d76c77bc..0000000000 --- a/Content.Server/Silicon/Systems/SiliconMiscSystem.cs +++ /dev/null @@ -1,20 +0,0 @@ -using Content.Shared.Silicon.Components; -using Content.Shared.Bed.Sleep; - -namespace Content.Server.Silicon.Misc; - -// This entire thing is fucking stupid and I hate it. -public sealed class SiliconMiscSystem : EntitySystem -{ - public override void Initialize() - { - base.Initialize(); - - SubscribeLocalEvent(OnTryingToSleep); - } - - private void OnTryingToSleep(EntityUid uid, SiliconComponent component, ref TryingToSleepEvent args) - { - args.Cancelled = true; - } -} diff --git a/Content.Server/Silicon/WeldingHealable/WeldingHealableComponent.cs b/Content.Server/Silicon/WeldingHealable/WeldingHealableComponent.cs index 115e930870..9f4b6c3483 100644 --- a/Content.Server/Silicon/WeldingHealable/WeldingHealableComponent.cs +++ b/Content.Server/Silicon/WeldingHealable/WeldingHealableComponent.cs @@ -1,9 +1,5 @@ -using Content.Shared.Damage; -using Content.Shared.Tools; -using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype; +namespace Content.Server.Silicon.WeldingHealable; + +[RegisterComponent] +public sealed partial class WeldingHealableComponent : Component { } -namespace Content.Server.Silicon.WeldingHealable -{ - [RegisterComponent] - public sealed partial class WeldingHealableComponent : Component { } -} diff --git a/Content.Server/Silicon/WeldingHealable/WeldingHealableSystem.cs b/Content.Server/Silicon/WeldingHealable/WeldingHealableSystem.cs index 09a2ee99fc..df7ac7ac0f 100644 --- a/Content.Server/Silicon/WeldingHealable/WeldingHealableSystem.cs +++ b/Content.Server/Silicon/WeldingHealable/WeldingHealableSystem.cs @@ -1,121 +1,105 @@ -using System.Diagnostics; using Content.Server.Silicon.WeldingHealing; -using Content.Server.Administration.Logs; -using Content.Server.Stack; -using Content.Server.Tools.Components; -using Content.Shared.Silicon.WeldingHealing; using Content.Shared.Chemistry.Components; +using Content.Shared.Silicon.WeldingHealing; using Content.Shared.Chemistry.Components.SolutionManager; using Content.Shared.Chemistry.EntitySystems; using Content.Shared.Damage; -using Content.Shared.Database; -using Content.Shared.Eye.Blinding.Components; -using Content.Shared.Eye.Blinding.Systems; -using Content.Shared.FixedPoint; using Content.Shared.Interaction; using Content.Shared.Popups; -using Content.Shared.Tools; -using Content.Shared.Stacks; +using Content.Shared.Tools.Components; using SharedToolSystem = Content.Shared.Tools.Systems.SharedToolSystem; -namespace Content.Server.Silicon.WeldingHealable -{ - public sealed class WeldingHealableSystem : SharedWeldingHealableSystem - { - [Dependency] private readonly SharedToolSystem _toolSystem = default!; - [Dependency] private readonly DamageableSystem _damageableSystem = default!; - [Dependency] private readonly SharedPopupSystem _popup = default!; - [Dependency] private readonly IAdminLogManager _adminLogger= default!; - [Dependency] private readonly SharedSolutionContainerSystem _solutionContainer= default!; - - public override void Initialize() - { - SubscribeLocalEvent(Repair); - SubscribeLocalEvent(OnRepairFinished); - } - - private void OnRepairFinished(EntityUid uid, WeldingHealableComponent healableComponentcomponent, SiliconRepairFinishedEvent args) - { - if (args.Cancelled || args.Used == null - || !EntityManager.TryGetComponent(args.Target, out DamageableComponent? damageable) - || !EntityManager.TryGetComponent(args.Used, out WeldingHealingComponent? component) - || damageable.DamageContainerID != null - && !component.DamageContainers.Contains(damageable.DamageContainerID)) - return; - - var damageChanged = _damageableSystem.TryChangeDamage(uid, component.Damage, true, false, origin: args.User); - - - if (!HasDamage(damageable, component)) - return; - - if (TryComp(args.Used, out WelderComponent? welder) && - TryComp(args.Used, out SolutionContainerManagerComponent? solutionContainer)) - { - if (!_solutionContainer.ResolveSolution(((EntityUid) args.Used, solutionContainer), welder.FuelSolutionName, ref welder.FuelSolution, out var solution)) - return; - _solutionContainer.RemoveReagent(welder.FuelSolution.Value, welder.FuelReagent, component.FuelCost); - } - - var str = Loc.GetString("comp-repairable-repair", - ("target", uid), - ("tool", args.Used!)); - _popup.PopupEntity(str, uid, args.User); - - - if (args.Used.HasValue) - { - args.Handled = _toolSystem.UseTool(args.Used.Value, args.User, uid, args.Delay, component.QualityNeeded, new SiliconRepairFinishedEvent - { - Delay = args.Delay - }); - } - } - +namespace Content.Server.Silicon.WeldingHealable; +public sealed class WeldingHealableSystem : SharedWeldingHealableSystem +{ + [Dependency] private readonly SharedToolSystem _toolSystem = default!; + [Dependency] private readonly DamageableSystem _damageableSystem = default!; + [Dependency] private readonly SharedPopupSystem _popup = default!; + [Dependency] private readonly SharedSolutionContainerSystem _solutionContainer = default!; - private async void Repair(EntityUid uid, WeldingHealableComponent healableComponent, InteractUsingEvent args) - { - if (args.Handled - || !EntityManager.TryGetComponent(args.Used, out WeldingHealingComponent? component) - || !EntityManager.TryGetComponent(args.Target, out DamageableComponent? damageable) - || damageable.DamageContainerID != null - && !component.DamageContainers.Contains(damageable.DamageContainerID) - || !HasDamage(damageable, component) - || !_toolSystem.HasQuality(args.Used, component.QualityNeeded)) - return; - - float delay = component.DoAfterDelay; + public override void Initialize() + { + SubscribeLocalEvent(Repair); + SubscribeLocalEvent(OnRepairFinished); + } - // Add a penalty to how long it takes if the user is repairing itself - if (args.User == args.Target) + private void OnRepairFinished(EntityUid uid, WeldingHealableComponent healableComponent, SiliconRepairFinishedEvent args) + { + if (args.Cancelled || args.Used == null + || !TryComp(args.Target, out var damageable) + || !TryComp(args.Used, out var component) + || damageable.DamageContainerID is null + || !component.DamageContainers.Contains(damageable.DamageContainerID) + || !HasDamage(damageable, component) + || !TryComp(args.Used, out var welder) + || !TryComp(args.Used, out var solutionContainer)) + return; + + _damageableSystem.TryChangeDamage(uid, component.Damage, true, false, origin: args.User); + + Entity? sol = new(); + if (!_solutionContainer.ResolveSolution(((EntityUid) args.Used, solutionContainer), welder.FuelSolutionName, ref sol, out _)) + return; + _solutionContainer.RemoveReagent(sol.Value, welder.FuelReagent, component.FuelCost); + + var str = Loc.GetString("comp-repairable-repair", + ("target", uid), + ("tool", args.Used!)); + _popup.PopupEntity(str, uid, args.User); + + if (!args.Used.HasValue) + return; + + args.Handled = _toolSystem.UseTool + (args.Used.Value, + args.User, + uid, + args.Delay, + component.QualityNeeded, + new SiliconRepairFinishedEvent { - if (!component.AllowSelfHeal) - return; - - delay *= component.SelfHealPenalty; - } + Delay = args.Delay + }); + } - // Run the repairing doafter - args.Handled = _toolSystem.UseTool(args.Used, args.User, args.Target, delay, component.QualityNeeded, new SiliconRepairFinishedEvent + private async void Repair(EntityUid uid, WeldingHealableComponent healableComponent, InteractUsingEvent args) + { + if (args.Handled + || !EntityManager.TryGetComponent(args.Used, out WeldingHealingComponent? component) + || !EntityManager.TryGetComponent(args.Target, out DamageableComponent? damageable) + || damageable.DamageContainerID is null + || !component.DamageContainers.Contains(damageable.DamageContainerID) + || !HasDamage(damageable, component) + || !_toolSystem.HasQuality(args.Used, component.QualityNeeded) + || args.User == args.Target && !component.AllowSelfHeal) + return; + + float delay = args.User == args.Target + ? component.DoAfterDelay * component.SelfHealPenalty + : component.DoAfterDelay; + + args.Handled = _toolSystem.UseTool + (args.Used, + args.User, + args.Target, + delay, + component.QualityNeeded, + new SiliconRepairFinishedEvent { Delay = delay, }); + } - } - private bool HasDamage(DamageableComponent component, WeldingHealingComponent healable) - { - var damageableDict = component.Damage.DamageDict; - var healingDict = healable.Damage.DamageDict; - foreach (var type in healingDict) - { - if (damageableDict[type.Key].Value > 0) - { - return true; - } - } - + private bool HasDamage(DamageableComponent component, WeldingHealingComponent healable) + { + if (healable.Damage.DamageDict is null) return false; - } + + foreach (var type in healable.Damage.DamageDict) + if (component.Damage.DamageDict[type.Key].Value > 0) + return true; + return false; } } + diff --git a/Content.Server/Silicon/WeldingHealing/WeldingHealingComponent.cs b/Content.Server/Silicon/WeldingHealing/WeldingHealingComponent.cs index c381d54718..a7aa170793 100644 --- a/Content.Server/Silicon/WeldingHealing/WeldingHealingComponent.cs +++ b/Content.Server/Silicon/WeldingHealing/WeldingHealingComponent.cs @@ -2,47 +2,46 @@ using Content.Shared.Tools; using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype; -namespace Content.Server.Silicon.WeldingHealing +namespace Content.Server.Silicon.WeldingHealing; + +[RegisterComponent] +public sealed partial class WeldingHealingComponent : Component { - [RegisterComponent] - public sealed partial class WeldingHealingComponent : Component - { - /// - /// All the damage to change information is stored in this . - /// - /// - /// If this data-field is specified, it will change damage by this amount instead of setting all damage to 0. - /// in order to heal/repair the damage values have to be negative. - /// - - [DataField(required: true)] - public DamageSpecifier Damage; - - [DataField(customTypeSerializer:typeof(PrototypeIdSerializer))] - public string QualityNeeded = "Welding"; - - /// - /// The fuel amount needed to repair physical related damage - /// - [DataField] - public int FuelCost = 5; - - [DataField] - public int DoAfterDelay = 3; - - /// - /// A multiplier that will be applied to the above if an entity is repairing themselves. - /// - [DataField] - public float SelfHealPenalty = 3f; - - /// - /// Whether or not an entity is allowed to repair itself. - /// - [DataField] - public bool AllowSelfHeal = true; - - [DataField(required: true)] - public List DamageContainers; - } + /// + /// All the damage to change information is stored in this . + /// + /// + /// If this data-field is specified, it will change damage by this amount instead of setting all damage to 0. + /// in order to heal/repair the damage values have to be negative. + /// + + [DataField(required: true)] + public DamageSpecifier Damage; + + [DataField(customTypeSerializer:typeof(PrototypeIdSerializer))] + public string QualityNeeded = "Welding"; + + /// + /// The fuel amount needed to repair physical related damage + /// + [DataField] + public int FuelCost = 5; + + [DataField] + public int DoAfterDelay = 3; + + /// + /// A multiplier that will be applied to the above if an entity is repairing themselves. + /// + [DataField] + public float SelfHealPenalty = 3f; + + /// + /// Whether or not an entity is allowed to repair itself. + /// + [DataField] + public bool AllowSelfHeal = true; + + [DataField(required: true)] + public List DamageContainers; } diff --git a/Content.Server/Silicons/Borgs/BorgSystem.Transponder.cs b/Content.Server/Silicons/Borgs/BorgSystem.Transponder.cs new file mode 100644 index 0000000000..1c10cbe667 --- /dev/null +++ b/Content.Server/Silicons/Borgs/BorgSystem.Transponder.cs @@ -0,0 +1,107 @@ +using Content.Shared.DeviceNetwork; +using Content.Shared.Emag.Components; +using Content.Shared.Popups; +using Content.Shared.Robotics; +using Content.Shared.Silicons.Borgs.Components; +using Content.Server.DeviceNetwork; +using Content.Server.DeviceNetwork.Components; +using Content.Server.DeviceNetwork.Systems; +using Content.Server.Explosion.Components; + +namespace Content.Server.Silicons.Borgs; + +/// +public sealed partial class BorgSystem +{ + private void InitializeTransponder() + { + SubscribeLocalEvent(OnPacketReceived); + } + + public override void Update(float frameTime) + { + base.Update(frameTime); + + var now = _timing.CurTime; + var query = EntityQueryEnumerator(); + while (query.MoveNext(out var uid, out var comp, out var chassis, out var device, out var meta)) + { + if (now < comp.NextBroadcast) + continue; + + var charge = 0f; + if (_powerCell.TryGetBatteryFromSlot(uid, out var battery)) + charge = battery.CurrentCharge / battery.MaxCharge; + + var data = new CyborgControlData( + comp.Sprite, + comp.Name, + meta.EntityName, + charge, + chassis.ModuleCount, + chassis.BrainEntity != null); + + var payload = new NetworkPayload() + { + [DeviceNetworkConstants.Command] = DeviceNetworkConstants.CmdUpdatedState, + [RoboticsConsoleConstants.NET_CYBORG_DATA] = data + }; + _deviceNetwork.QueuePacket(uid, null, payload, device: device); + + comp.NextBroadcast = now + comp.BroadcastDelay; + } + } + + private void OnPacketReceived(Entity ent, ref DeviceNetworkPacketEvent args) + { + var payload = args.Data; + if (!payload.TryGetValue(DeviceNetworkConstants.Command, out string? command)) + return; + + if (command == RoboticsConsoleConstants.NET_DISABLE_COMMAND) + Disable(ent); + else if (command == RoboticsConsoleConstants.NET_DESTROY_COMMAND) + Destroy(ent.Owner); + } + + private void Disable(Entity ent) + { + if (!Resolve(ent, ref ent.Comp2) || ent.Comp2.BrainEntity is not {} brain) + return; + + // this won't exactly be stealthy but if you are malf its better than actually disabling you + if (CheckEmagged(ent, "disabled")) + return; + + var message = Loc.GetString(ent.Comp1.DisabledPopup, ("name", Name(ent))); + Popup.PopupEntity(message, ent); + _container.Remove(brain, ent.Comp2.BrainContainer); + } + + private void Destroy(Entity ent) + { + if (!Resolve(ent, ref ent.Comp)) + return; + + // this is stealthy until someone realises you havent exploded + if (CheckEmagged(ent, "destroyed")) + { + // prevent reappearing on the console a few seconds later + RemComp(ent); + return; + } + + _explosion.TriggerExplosive(ent, ent.Comp, delete: false); + } + + private bool CheckEmagged(EntityUid uid, string name) + { + if (HasComp(uid)) + { + Popup.PopupEntity(Loc.GetString($"borg-transponder-emagged-{name}-popup"), uid, uid, PopupType.LargeCaution); + return true; + } + + return false; + } +} diff --git a/Content.Server/Silicons/Borgs/BorgSystem.Ui.cs b/Content.Server/Silicons/Borgs/BorgSystem.Ui.cs index 3dcdd78aff..d0e9f80e36 100644 --- a/Content.Server/Silicons/Borgs/BorgSystem.Ui.cs +++ b/Content.Server/Silicons/Borgs/BorgSystem.Ui.cs @@ -28,20 +28,19 @@ private void OnBeforeBorgUiOpen(EntityUid uid, BorgChassisComponent component, B private void OnEjectBrainBuiMessage(EntityUid uid, BorgChassisComponent component, BorgEjectBrainBuiMessage args) { - if (args.Session.AttachedEntity is not { } attachedEntity || component.BrainEntity is not { } brain) + if (component.BrainEntity is not { } brain) return; _adminLog.Add(LogType.Action, LogImpact.Medium, - $"{ToPrettyString(attachedEntity):player} removed brain {ToPrettyString(brain)} from borg {ToPrettyString(uid)}"); + $"{ToPrettyString(args.Actor):player} removed brain {ToPrettyString(brain)} from borg {ToPrettyString(uid)}"); _container.Remove(brain, component.BrainContainer); - _hands.TryPickupAnyHand(attachedEntity, brain); + _hands.TryPickupAnyHand(args.Actor, brain); UpdateUI(uid, component); } private void OnEjectBatteryBuiMessage(EntityUid uid, BorgChassisComponent component, BorgEjectBatteryBuiMessage args) { - if (args.Session.AttachedEntity is not { } attachedEntity || - !TryComp(uid, out var slotComp) || + if (!TryComp(uid, out var slotComp) || !Container.TryGetContainer(uid, slotComp.CellSlotId, out var container) || !container.ContainedEntities.Any()) { @@ -49,14 +48,11 @@ private void OnEjectBatteryBuiMessage(EntityUid uid, BorgChassisComponent compon } var ents = Container.EmptyContainer(container); - _hands.TryPickupAnyHand(attachedEntity, ents.First()); + _hands.TryPickupAnyHand(args.Actor, ents.First()); } private void OnSetNameBuiMessage(EntityUid uid, BorgChassisComponent component, BorgSetNameBuiMessage args) { - if (args.Session.AttachedEntity is not { } attachedEntity) - return; - if (args.Name.Length > HumanoidCharacterProfile.MaxNameLength || args.Name.Length == 0 || string.IsNullOrWhiteSpace(args.Name) || @@ -75,24 +71,21 @@ private void OnSetNameBuiMessage(EntityUid uid, BorgChassisComponent component, if (metaData.EntityName.Equals(name, StringComparison.InvariantCulture)) return; - _adminLog.Add(LogType.Action, LogImpact.High, $"{ToPrettyString(attachedEntity):player} set borg \"{ToPrettyString(uid)}\"'s name to: {name}"); + _adminLog.Add(LogType.Action, LogImpact.High, $"{ToPrettyString(args.Actor):player} set borg \"{ToPrettyString(uid)}\"'s name to: {name}"); _metaData.SetEntityName(uid, name, metaData); } private void OnRemoveModuleBuiMessage(EntityUid uid, BorgChassisComponent component, BorgRemoveModuleBuiMessage args) { - if (args.Session.AttachedEntity is not { } attachedEntity) - return; - var module = GetEntity(args.Module); if (!component.ModuleContainer.Contains(module)) return; _adminLog.Add(LogType.Action, LogImpact.Medium, - $"{ToPrettyString(attachedEntity):player} removed module {ToPrettyString(module)} from borg {ToPrettyString(uid)}"); + $"{ToPrettyString(args.Actor):player} removed module {ToPrettyString(module)} from borg {ToPrettyString(uid)}"); _container.Remove(module, component.ModuleContainer); - _hands.TryPickupAnyHand(attachedEntity, module); + _hands.TryPickupAnyHand(args.Actor, module); UpdateUI(uid, component); } @@ -111,6 +104,6 @@ public void UpdateUI(EntityUid uid, BorgChassisComponent? component = null) } var state = new BorgBuiState(chargePercent, hasBattery); - _ui.TrySetUiState(uid, BorgUiKey.Key, state); + _ui.SetUiState(uid, BorgUiKey.Key, state); } } diff --git a/Content.Server/Silicons/Borgs/BorgSystem.cs b/Content.Server/Silicons/Borgs/BorgSystem.cs index 869c279704..75f25a3a92 100644 --- a/Content.Server/Silicons/Borgs/BorgSystem.cs +++ b/Content.Server/Silicons/Borgs/BorgSystem.cs @@ -1,6 +1,8 @@ using Content.Server.Actions; using Content.Server.Administration.Logs; using Content.Server.Administration.Managers; +using Content.Server.DeviceNetwork.Systems; +using Content.Server.Explosion.EntitySystems; using Content.Server.Hands.Systems; using Content.Server.PowerCell; using Content.Shared.UserInterface; @@ -26,6 +28,7 @@ using Robust.Shared.Containers; using Robust.Shared.Player; using Robust.Shared.Random; +using Robust.Shared.Timing; namespace Content.Server.Silicons.Borgs; @@ -34,10 +37,13 @@ public sealed partial class BorgSystem : SharedBorgSystem { [Dependency] private readonly IAdminLogManager _adminLog = default!; [Dependency] private readonly IBanManager _banManager = default!; + [Dependency] private readonly IGameTiming _timing = default!; [Dependency] private readonly IRobustRandom _random = default!; [Dependency] private readonly SharedAccessSystem _access = default!; [Dependency] private readonly ActionsSystem _actions = default!; [Dependency] private readonly AlertsSystem _alerts = default!; + [Dependency] private readonly DeviceNetworkSystem _deviceNetwork = default!; + [Dependency] private readonly ExplosionSystem _explosion = default!; [Dependency] private readonly SharedAppearanceSystem _appearance = default!; [Dependency] private readonly HandsSystem _hands = default!; [Dependency] private readonly MetaDataSystem _metaData = default!; @@ -73,6 +79,7 @@ public override void Initialize() InitializeModules(); InitializeMMI(); InitializeUI(); + InitializeTransponder(); } private void OnMapInit(EntityUid uid, BorgChassisComponent component, MapInitEvent args) diff --git a/Content.Server/Silicons/Laws/SiliconLawSystem.cs b/Content.Server/Silicons/Laws/SiliconLawSystem.cs index 010682bc0d..bc7a7b35c2 100644 --- a/Content.Server/Silicons/Laws/SiliconLawSystem.cs +++ b/Content.Server/Silicons/Laws/SiliconLawSystem.cs @@ -55,7 +55,6 @@ public override void Initialize() SubscribeLocalEvent(OnEmagLawsAdded); SubscribeLocalEvent(OnEmagMindAdded); SubscribeLocalEvent(OnEmagMindRemoved); - SubscribeLocalEvent(OnExamined); } private void OnComponentShutdown(EntityUid uid, SiliconLawBoundComponent component, ComponentShutdown args) @@ -93,10 +92,10 @@ private void OnToggleLawsScreen(EntityUid uid, SiliconLawBoundComponent componen private void OnBoundUIOpened(EntityUid uid, SiliconLawBoundComponent component, BoundUIOpenedEvent args) { _entityManager.TryGetComponent(uid, out var intrinsicRadio); - HashSet? radioChannels = intrinsicRadio?.Channels; + var radioChannels = intrinsicRadio?.Channels; var state = new SiliconLawBuiState(GetLaws(uid).Laws, radioChannels); - _userInterface.TrySetUiState(args.Entity, SiliconLawsUiKey.Key, state, args.Session); + _userInterface.SetUiState(args.Entity, SiliconLawsUiKey.Key, state); } private void OnPlayerSpawnComplete(EntityUid uid, SiliconLawBoundComponent component, PlayerSpawnCompleteEvent args) @@ -155,17 +154,6 @@ private void OnEmagLawsAdded(EntityUid uid, SiliconLawProviderComponent componen }); } - private void OnExamined(EntityUid uid, EmagSiliconLawComponent component, ExaminedEvent args) - { - if (!args.IsInDetailsRange || !HasComp(uid)) - return; - - if (component.RequireOpenPanel && TryComp(uid, out var panel) && !panel.Open) - return; - - args.PushMarkup(Loc.GetString("laws-compromised-examine")); - } - protected override void OnGotEmagged(EntityUid uid, EmagSiliconLawComponent component, ref GotEmaggedEvent args) { if (component.RequireOpenPanel && TryComp(uid, out var panel) && !panel.Open) diff --git a/Content.Server/Singularity/EntitySystems/EmitterSystem.cs b/Content.Server/Singularity/EntitySystems/EmitterSystem.cs index a9763b64d9..652ca236e4 100644 --- a/Content.Server/Singularity/EntitySystems/EmitterSystem.cs +++ b/Content.Server/Singularity/EntitySystems/EmitterSystem.cs @@ -1,6 +1,7 @@ using System.Numerics; using System.Threading; using Content.Server.Administration.Logs; +using Content.Server.Construction; using Content.Server.DeviceLinking.Events; using Content.Server.Power.Components; using Content.Server.Power.EntitySystems; @@ -47,6 +48,8 @@ public override void Initialize() SubscribeLocalEvent(OnInteractHand); SubscribeLocalEvent>(OnGetVerb); SubscribeLocalEvent(OnExamined); + SubscribeLocalEvent(OnRefreshParts); + SubscribeLocalEvent(OnUpgradeExamine); SubscribeLocalEvent(OnAnchorStateChanged); SubscribeLocalEvent(OnSignalReceived); } @@ -176,6 +179,20 @@ private void OnApcChanged(EntityUid uid, EmitterComponent component, ref PowerCh } } + private void OnRefreshParts(EntityUid uid, EmitterComponent component, RefreshPartsEvent args) + { + var fireRateRating = args.PartRatings[component.MachinePartFireRate]; + + component.FireInterval = component.BaseFireInterval * MathF.Pow(component.FireRateMultiplier, fireRateRating - 1); + component.FireBurstDelayMin = component.BaseFireBurstDelayMin * MathF.Pow(component.FireRateMultiplier, fireRateRating - 1); + component.FireBurstDelayMax = component.BaseFireBurstDelayMax * MathF.Pow(component.FireRateMultiplier, fireRateRating - 1); + } + + private void OnUpgradeExamine(EntityUid uid, EmitterComponent component, UpgradeExamineEvent args) + { + args.AddPercentageUpgrade("emitter-component-upgrade-fire-rate", (float) (component.BaseFireInterval.TotalSeconds / component.FireInterval.TotalSeconds)); + } + public void SwitchOff(EntityUid uid, EmitterComponent component) { component.IsOn = false; diff --git a/Content.Server/Singularity/EntitySystems/RadiationCollectorSystem.cs b/Content.Server/Singularity/EntitySystems/RadiationCollectorSystem.cs index b26ab301c6..9107ff2e32 100644 --- a/Content.Server/Singularity/EntitySystems/RadiationCollectorSystem.cs +++ b/Content.Server/Singularity/EntitySystems/RadiationCollectorSystem.cs @@ -151,7 +151,8 @@ private void OnAnalyzed(EntityUid uid, RadiationCollectorComponent component, Ga if (!TryGetLoadedGasTank(uid, out var gasTankComponent)) return; - args.GasMixtures = new Dictionary { { Name(uid), gasTankComponent.Air } }; + args.GasMixtures ??= new List<(string, GasMixture?)>(); + args.GasMixtures.Add((Name(uid), gasTankComponent.Air)); } public void ToggleCollector(EntityUid uid, EntityUid? user = null, RadiationCollectorComponent? component = null) diff --git a/Content.Server/Solar/EntitySystems/PowerSolarControlConsoleSystem.cs b/Content.Server/Solar/EntitySystems/PowerSolarControlConsoleSystem.cs index 179cadcfbc..dd3f0c0054 100644 --- a/Content.Server/Solar/EntitySystems/PowerSolarControlConsoleSystem.cs +++ b/Content.Server/Solar/EntitySystems/PowerSolarControlConsoleSystem.cs @@ -35,13 +35,13 @@ public override void Update(float frameTime) _updateTimer -= 1; var state = new SolarControlConsoleBoundInterfaceState(_powerSolarSystem.TargetPanelRotation, _powerSolarSystem.TargetPanelVelocity, _powerSolarSystem.TotalPanelPower, _powerSolarSystem.TowardsSun); var query = EntityQueryEnumerator(); - while (query.MoveNext(out var uid, out var _, out var uiComp)) + while (query.MoveNext(out var uid, out _, out var uiComp)) { - _uiSystem.TrySetUiState(uid, SolarControlConsoleUiKey.Key, state, ui: uiComp); + _uiSystem.SetUiState((uid, uiComp), SolarControlConsoleUiKey.Key, state); } } } - + private void OnUIMessage(EntityUid uid, SolarControlConsoleComponent component, SolarControlConsoleAdjustMessage msg) { if (double.IsFinite(msg.Rotation)) diff --git a/Content.Server/Speech/Components/PirateAccentComponent.cs b/Content.Server/Speech/Components/PirateAccentComponent.cs index 0559d9854b..b5b292775d 100644 --- a/Content.Server/Speech/Components/PirateAccentComponent.cs +++ b/Content.Server/Speech/Components/PirateAccentComponent.cs @@ -15,6 +15,7 @@ public sealed partial class PirateAccentComponent : Component { "accent-pirate-prefix-1", "accent-pirate-prefix-2", - "accent-pirate-prefix-3" + "accent-pirate-prefix-3", + "accent-pirate-prefix-4", }; } diff --git a/Content.Server/Speech/Components/RandomBarkComponent.cs b/Content.Server/Speech/Components/RandomBarkComponent.cs index 7229428f53..470e49e7fa 100644 --- a/Content.Server/Speech/Components/RandomBarkComponent.cs +++ b/Content.Server/Speech/Components/RandomBarkComponent.cs @@ -37,27 +37,15 @@ public sealed partial class RandomBarkComponent : Component public float BarkMultiplier = 1f; /// - /// List of things to be said. Filled with garbage to be modified by an accent, but can be specified in the .yml + /// Bark type, for use in locales. Locale keys follow the format "bark-{type}-{index between 1 and BarkLocaleCount}". /// [DataField] - public IReadOnlyList Barks = new[] - { - "Bark", - "Boof", - "Woofums", - "Rawrl", - "Eeeeeee", - "Barkums", - "Awooooooooooooooooooo awoo awoooo", - "Grrrrrrrrrrrrrrrrrr", - "Rarrwrarrwr", - "Goddamn I love gold fish crackers", - "Bork bork boof boof bork bork boof boof boof bork", - "Bark", - "Boof", - "Woofums", - "Rawrl", - "Eeeeeee", - "Barkums", - }; + public string BarkType = "default"; + + /// + /// Number of bark locales. If not specified, then it will be figured out by fetching the locale string + /// with the key "bark-{type}-count" and parsing it as an integer. + /// + [DataField] + public int? BarkLocaleCount = null; } diff --git a/Content.Server/Speech/Components/ReplacementAccentComponent.cs b/Content.Server/Speech/Components/ReplacementAccentComponent.cs index ac4e9fbafe..e7f57b80d0 100644 --- a/Content.Server/Speech/Components/ReplacementAccentComponent.cs +++ b/Content.Server/Speech/Components/ReplacementAccentComponent.cs @@ -32,5 +32,11 @@ public sealed partial class ReplacementAccentComponent : Component { [DataField("accent", customTypeSerializer: typeof(PrototypeIdSerializer), required: true)] public string Accent = default!; + + /// + /// Allows you to substitute words, not always, but with some chance + /// + [DataField] + public float ReplacementChance = 1f; } } diff --git a/Content.Server/Speech/EmotesMenuSystem.cs b/Content.Server/Speech/EmotesMenuSystem.cs new file mode 100644 index 0000000000..a69b5a65e4 --- /dev/null +++ b/Content.Server/Speech/EmotesMenuSystem.cs @@ -0,0 +1,30 @@ +using Content.Server.Chat.Systems; +using Content.Shared.Chat; +using Robust.Shared.Prototypes; + +namespace Content.Server.Speech; + +public sealed partial class EmotesMenuSystem : EntitySystem +{ + [Dependency] private readonly IPrototypeManager _prototypeManager = default!; + [Dependency] private readonly ChatSystem _chat = default!; + + public override void Initialize() + { + base.Initialize(); + + SubscribeAllEvent(OnPlayEmote); + } + + private void OnPlayEmote(PlayEmoteMessage msg, EntitySessionEventArgs args) + { + var player = args.SenderSession.AttachedEntity; + if (!player.HasValue) + return; + + if (!_prototypeManager.TryIndex(msg.ProtoId, out var proto) || proto.ChatTriggers.Count == 0) + return; + + _chat.TryEmoteWithChat(player.Value, msg.ProtoId); + } +} diff --git a/Content.Server/Speech/EntitySystems/AddAccentClothingSystem.cs b/Content.Server/Speech/EntitySystems/AddAccentClothingSystem.cs index 1f707c2249..897cd061f4 100644 --- a/Content.Server/Speech/EntitySystems/AddAccentClothingSystem.cs +++ b/Content.Server/Speech/EntitySystems/AddAccentClothingSystem.cs @@ -1,6 +1,5 @@ using Content.Server.Speech.Components; -using Content.Shared.Clothing.Components; -using Content.Shared.Inventory.Events; +using Content.Shared.Clothing; namespace Content.Server.Speech.EntitySystems; @@ -11,29 +10,20 @@ public sealed class AddAccentClothingSystem : EntitySystem public override void Initialize() { base.Initialize(); - SubscribeLocalEvent(OnGotEquipped); - SubscribeLocalEvent(OnGotUnequipped); + SubscribeLocalEvent(OnGotEquipped); + SubscribeLocalEvent(OnGotUnequipped); } - private void OnGotEquipped(EntityUid uid, AddAccentClothingComponent component, GotEquippedEvent args) + private void OnGotEquipped(EntityUid uid, AddAccentClothingComponent component, ref ClothingGotEquippedEvent args) { - if (!TryComp(uid, out ClothingComponent? clothing)) - return; - - // check if entity was actually used as clothing - // not just taken in pockets or something - var isCorrectSlot = clothing.Slots.HasFlag(args.SlotFlags); - if (!isCorrectSlot) - return; - // does the user already has this accent? var componentType = _componentFactory.GetRegistration(component.Accent).Type; - if (HasComp(args.Equipee, componentType)) + if (HasComp(args.Wearer, componentType)) return; // add accent to the user var accentComponent = (Component) _componentFactory.GetComponent(componentType); - AddComp(args.Equipee, accentComponent); + AddComp(args.Wearer, accentComponent); // snowflake case for replacement accent if (accentComponent is ReplacementAccentComponent rep) @@ -42,16 +32,16 @@ private void OnGotEquipped(EntityUid uid, AddAccentClothingComponent component, component.IsActive = true; } - private void OnGotUnequipped(EntityUid uid, AddAccentClothingComponent component, GotUnequippedEvent args) + private void OnGotUnequipped(EntityUid uid, AddAccentClothingComponent component, ref ClothingGotUnequippedEvent args) { if (!component.IsActive) return; // try to remove accent var componentType = _componentFactory.GetRegistration(component.Accent).Type; - if (EntityManager.HasComponent(args.Equipee, componentType)) + if (EntityManager.HasComponent(args.Wearer, componentType)) { - EntityManager.RemoveComponent(args.Equipee, componentType); + EntityManager.RemoveComponent(args.Wearer, componentType); } component.IsActive = false; diff --git a/Content.Server/Speech/EntitySystems/FrenchAccentSystem.cs b/Content.Server/Speech/EntitySystems/FrenchAccentSystem.cs index 5637288732..f6d259c115 100644 --- a/Content.Server/Speech/EntitySystems/FrenchAccentSystem.cs +++ b/Content.Server/Speech/EntitySystems/FrenchAccentSystem.cs @@ -10,6 +10,10 @@ public sealed class FrenchAccentSystem : EntitySystem { [Dependency] private readonly ReplacementAccentSystem _replacement = default!; + private static readonly Regex RegexTh = new(@"th", RegexOptions.IgnoreCase); + private static readonly Regex RegexStartH = new(@"(? DirectReplacements = new() - { - { "let me", "lemme" }, - { "should", "oughta" }, - { "the", "da" }, - { "them", "dem" }, - { "attack", "whack" }, - { "kill", "whack" }, - { "murder", "whack" }, - { "dead", "sleepin' with da fishies"}, - { "hey", "ey'o" }, - { "hi", "ey'o"}, - { "hello", "ey'o"}, - { "rules", "roolz" }, - { "you", "yous" }, - { "have to", "gotta" }, - { "going to", "boutta" }, - { "about to", "boutta" }, - { "here", "'ere" } - }; - public override void Initialize() { base.Initialize(); @@ -49,20 +36,30 @@ public string Accentuate(string message, MobsterAccentComponent component) // thinking -> thinkin' // king -> king - msg = Regex.Replace(msg, @"(?<=\w\w)ing(?!\w)", "in'", RegexOptions.IgnoreCase); + //Uses captures groups to make sure the captialization of IN is kept + msg = RegexIng.Replace(msg, "$1'"); // or -> uh and ar -> ah in the middle of words (fuhget, tahget) - msg = Regex.Replace(msg, @"(?<=\w)or(?=\w)", "uh", RegexOptions.IgnoreCase); - msg = Regex.Replace(msg, @"(?<=\w)ar(?=\w)", "ah", RegexOptions.IgnoreCase); + msg = RegexLowerOr.Replace(msg, "uh"); + msg = RegexUpperOr.Replace(msg, "UH"); + msg = RegexLowerAr.Replace(msg, "ah"); + msg = RegexUpperAr.Replace(msg, "AH"); // Prefix if (_random.Prob(0.15f)) { + //Checks if the first word of the sentence is all caps + //So the prefix can be allcapped and to not resanitize the captial + var firstWordAllCaps = !RegexFirstWord.Match(msg).Value.Any(char.IsLower); var pick = _random.Next(1, 2); // Reverse sanitize capital - msg = msg[0].ToString().ToLower() + msg.Remove(0, 1); - msg = Loc.GetString($"accent-mobster-prefix-{pick}") + " " + msg; + var prefix = Loc.GetString($"accent-mobster-prefix-{pick}"); + if (!firstWordAllCaps) + msg = msg[0].ToString().ToLower() + msg.Remove(0, 1); + else + prefix = prefix.ToUpper(); + msg = prefix + " " + msg; } // Sanitize capital again, in case we substituted a word that should be capitalized @@ -71,16 +68,23 @@ public string Accentuate(string message, MobsterAccentComponent component) // Suffixes if (_random.Prob(0.4f)) { + //Checks if the last word of the sentence is all caps + //So the suffix can be allcapped + var lastWordAllCaps = !RegexLastWord.Match(msg).Value.Any(char.IsLower); + var suffix = ""; if (component.IsBoss) { var pick = _random.Next(1, 4); - msg += Loc.GetString($"accent-mobster-suffix-boss-{pick}"); + suffix = Loc.GetString($"accent-mobster-suffix-boss-{pick}"); } else { var pick = _random.Next(1, 3); - msg += Loc.GetString($"accent-mobster-suffix-minion-{pick}"); + suffix = Loc.GetString($"accent-mobster-suffix-minion-{pick}"); } + if (lastWordAllCaps) + suffix = suffix.ToUpper(); + msg += suffix; } return msg; diff --git a/Content.Server/Speech/EntitySystems/MothAccentSystem.cs b/Content.Server/Speech/EntitySystems/MothAccentSystem.cs index 3de4651b4a..84b79d4ce9 100644 --- a/Content.Server/Speech/EntitySystems/MothAccentSystem.cs +++ b/Content.Server/Speech/EntitySystems/MothAccentSystem.cs @@ -5,6 +5,9 @@ namespace Content.Server.Speech.EntitySystems; public sealed class MothAccentSystem : EntitySystem { + private static readonly Regex RegexLowerBuzz = new Regex("z{1,3}"); + private static readonly Regex RegexUpperBuzz = new Regex("Z{1,3}"); + public override void Initialize() { base.Initialize(); @@ -16,10 +19,10 @@ private void OnAccent(EntityUid uid, MothAccentComponent component, AccentGetEve var message = args.Message; // buzzz - message = Regex.Replace(message, "z{1,3}", "zzz"); + message = RegexLowerBuzz.Replace(message, "zzz"); // buZZZ - message = Regex.Replace(message, "Z{1,3}", "ZZZ"); - + message = RegexUpperBuzz.Replace(message, "ZZZ"); + args.Message = message; } } diff --git a/Content.Server/Speech/EntitySystems/ParrotAccentSystem.cs b/Content.Server/Speech/EntitySystems/ParrotAccentSystem.cs index 10437c235d..ae8fe522b9 100644 --- a/Content.Server/Speech/EntitySystems/ParrotAccentSystem.cs +++ b/Content.Server/Speech/EntitySystems/ParrotAccentSystem.cs @@ -7,6 +7,8 @@ namespace Content.Server.Speech.EntitySystems; public sealed partial class ParrotAccentSystem : EntitySystem { + private static readonly Regex WordCleanupRegex = new Regex("[^A-Za-z0-9 -]"); + [Dependency] private readonly IRobustRandom _random = default!; public override void Initialize() @@ -27,7 +29,7 @@ public string Accentuate(Entity entity, string message) if (_random.Prob(entity.Comp.LongestWordRepeatChance)) { // Don't count non-alphanumeric characters as parts of words - var cleaned = Regex.Replace(message, "[^A-Za-z0-9 -]", string.Empty); + var cleaned = WordCleanupRegex.Replace(message, string.Empty); // Split on whitespace and favor words towards the end of the message var words = cleaned.Split(null).Reverse(); // Find longest word diff --git a/Content.Server/Speech/EntitySystems/PirateAccentSystem.cs b/Content.Server/Speech/EntitySystems/PirateAccentSystem.cs index f1d64ede10..84298cbf01 100644 --- a/Content.Server/Speech/EntitySystems/PirateAccentSystem.cs +++ b/Content.Server/Speech/EntitySystems/PirateAccentSystem.cs @@ -1,3 +1,4 @@ +using System.Linq; using Content.Server.Speech.Components; using Robust.Shared.Random; using System.Text.RegularExpressions; @@ -6,6 +7,8 @@ namespace Content.Server.Speech.EntitySystems; public sealed class PirateAccentSystem : EntitySystem { + private static readonly Regex FirstWordAllCapsRegex = new(@"^(\S+)"); + [Dependency] private readonly IRobustRandom _random = default!; [Dependency] private readonly ReplacementAccentSystem _replacement = default!; @@ -19,17 +22,22 @@ public override void Initialize() // converts left word when typed into the right word. For example typing you becomes ye. public string Accentuate(string message, PirateAccentComponent component) { - var msg = message; - - msg = _replacement.ApplyReplacements(msg, "pirate"); + var msg = _replacement.ApplyReplacements(message, "pirate"); if (!_random.Prob(component.YarrChance)) return msg; + //Checks if the first word of the sentence is all caps + //So the prefix can be allcapped and to not resanitize the captial + var firstWordAllCaps = !FirstWordAllCapsRegex.Match(msg).Value.Any(char.IsLower); var pick = _random.Pick(component.PirateWords); + var pirateWord = Loc.GetString(pick); // Reverse sanitize capital - msg = msg[0].ToString().ToLower() + msg.Remove(0, 1); - msg = Loc.GetString(pick) + " " + msg; + if (!firstWordAllCaps) + msg = msg[0].ToString().ToLower() + msg.Remove(0, 1); + else + pirateWord = pirateWord.ToUpper(); + msg = pirateWord + " " + msg; return msg; } diff --git a/Content.Server/Speech/EntitySystems/ReplacementAccentSystem.cs b/Content.Server/Speech/EntitySystems/ReplacementAccentSystem.cs index 36fa7e07ad..da198bcc12 100644 --- a/Content.Server/Speech/EntitySystems/ReplacementAccentSystem.cs +++ b/Content.Server/Speech/EntitySystems/ReplacementAccentSystem.cs @@ -24,6 +24,9 @@ public override void Initialize() private void OnAccent(EntityUid uid, ReplacementAccentComponent component, AccentGetEvent args) { + if (!_random.Prob(component.ReplacementChance)) + return; + args.Message = ApplyReplacements(args.Message, component.Accent); } @@ -46,6 +49,12 @@ public string ApplyReplacements(string message, string accent) if (prototype.WordReplacements == null) return message; + // Prohibition of repeated word replacements. + // All replaced words placed in the final message are placed here as dashes (___) with the same length. + // The regex search goes through this buffer message, from which the already replaced words are crossed out, + // ensuring that the replaced words cannot be replaced again. + var maskMessage = message; + foreach (var (first, replace) in prototype.WordReplacements) { var f = _loc.GetString(first); @@ -53,10 +62,10 @@ public string ApplyReplacements(string message, string accent) // this is kind of slow but its not that bad // essentially: go over all matches, try to match capitalization where possible, then replace // rather than using regex.replace - for (int i = Regex.Count(message, $@"(? 0; i--) + for (int i = Regex.Count(maskMessage, $@"(? 0; i--) { // fetch the match again as the character indices may have changed - Match match = Regex.Match(message, $@"(? DirectReplacements = new() { { "fuck you", "I've got a BONE to pick with you" }, @@ -45,7 +48,7 @@ public string Accentuate(string message, SkeletonAccentComponent component) // Character manipulations: // At the start of words, any non-vowel + "one" becomes "bone", e.g. tone -> bone ; lonely -> bonely; clone -> clone (remains unchanged). - msg = Regex.Replace(msg, @"(?] + private const string MuzzleAccent = "mumble"; public override void Initialize() { @@ -53,7 +59,10 @@ private void OnSexChanged(EntityUid uid, VocalComponent component, SexChangedEve private void OnEmote(EntityUid uid, VocalComponent component, ref EmoteEvent args) { - if (args.Handled || !args.Emote.Category.HasFlag(EmoteCategory.Vocal)) + if (args.Handled + || !args.Emote.Category.HasFlag(EmoteCategory.Vocal) + || !_actionBlocker.CanSpeak(uid) + || TryComp(uid, out var replacement) && replacement.Accent == MuzzleAccent) // This is not ideal, but it works. return; // snowflake case for wilhelm scream easter egg diff --git a/Content.Server/Speech/Systems/RandomBarkSystem.cs b/Content.Server/Speech/Systems/RandomBarkSystem.cs index 863ea79843..5706a791bf 100644 --- a/Content.Server/Speech/Systems/RandomBarkSystem.cs +++ b/Content.Server/Speech/Systems/RandomBarkSystem.cs @@ -10,20 +10,22 @@ public sealed class RandomBarkSystem : EntitySystem { [Dependency] private readonly IRobustRandom _random = default!; [Dependency] private readonly ChatSystem _chat = default!; - [Dependency] private readonly EntityManager _entity = default!; + + private static readonly string[] AddedPunctuation = [".", "...", "!", "..!", "!!"]; public override void Initialize() { base.Initialize(); - SubscribeLocalEvent(OnInit); + SubscribeLocalEvent(OnInit); } - private void OnInit(EntityUid uid, RandomBarkComponent barker, ComponentInit args) + private void OnInit(Entity ent, ref MapInitEvent args) { - barker.BarkAccumulator = _random.NextFloat(barker.MinTime, barker.MaxTime) * barker.BarkMultiplier; + ent.Comp.BarkAccumulator = _random.NextFloat(ent.Comp.MinTime, ent.Comp.MaxTime) * ent.Comp.BarkMultiplier; + ent.Comp.BarkLocaleCount ??= GetBarkLocaleCount(ent); } public override void Update(float frameTime) @@ -38,11 +40,55 @@ public override void Update(float frameTime) continue; barker.BarkAccumulator = _random.NextFloat(barker.MinTime, barker.MaxTime) * barker.BarkMultiplier; - if (_entity.TryGetComponent(uid, out var actComp) && - actComp.HasMind) + if (TryComp(uid, out var actComp) && actComp.HasMind + || GetNextBark((uid, barker)) is not { } bark) continue; - _chat.TrySendInGameICMessage(uid, _random.Pick(barker.Barks), InGameICChatType.Speak, barker.ChatLog ? ChatTransmitRange.Normal : ChatTransmitRange.HideChat); + _chat.TrySendInGameICMessage(uid, bark, InGameICChatType.Speak, barker.ChatLog ? ChatTransmitRange.Normal : ChatTransmitRange.HideChat); + } + } + + /// + /// Tries to get the next bark for the given entity. Returns null if it fails. + /// + public string? GetNextBark(Entity ent) + { + var count = GetBarkLocaleCount(ent); + if (count <= 0) + return null; + + var index = _random.Next(0, count) + 1; + if (!Loc.TryGetString($"bark-{ent.Comp.BarkType}-{index}", out var bark)) + { + Log.Error($"Could not find bark with index {index} and type {ent.Comp.BarkType} for entity {ent.Owner}."); + return null; } + + // If the last char of the string is an alphanumeric one, then add a random punctuation mark + if (bark.Length > 0 && char.IsLetterOrDigit(bark[^1])) + bark += _random.Pick(AddedPunctuation); + + return bark; + } + + private int GetBarkLocaleCount(Entity ent) + { + if (ent.Comp.BarkLocaleCount is { } localeCount) + return localeCount; + + // All the error logging should cause certain integration tests to fail should someone setup randombark incorrectly + if (!Loc.TryGetString($"bark-{ent.Comp.BarkType}-count", out var localeCountStr)) + { + Log.Error($"Entity {ent.Owner} has a bark type {ent.Comp.BarkType} which does not have a respective bark count locale."); + return 0; + } + + if (!int.TryParse(localeCountStr, out localeCount) || localeCount < 0) + { + Log.Error($"Entity {ent.Owner} has a bark type {ent.Comp.BarkType} whose respective bark count locale is not a valid number."); + return 0; + } + + return localeCount; } } diff --git a/Content.Server/Standing/LayingDownSystem.cs b/Content.Server/Standing/LayingDownSystem.cs index eccbf0773b..fcad649c9a 100644 --- a/Content.Server/Standing/LayingDownSystem.cs +++ b/Content.Server/Standing/LayingDownSystem.cs @@ -1,10 +1,15 @@ -using Content.Shared._White; -using Content.Shared._White.Standing; +using Content.Shared.Standing; +using Content.Shared.CCVar; +using Content.Shared.Input; +using Content.Shared.Movement.Systems; +using Content.Shared.Popups; using Robust.Shared.Configuration; +using Robust.Shared.Input.Binding; +using Robust.Shared.Player; namespace Content.Server.Standing; -public sealed class LayingDownSystem : SharedLayingDownSystem // WD EDIT +public sealed class LayingDownSystem : SharedLayingDownSystem { [Dependency] private readonly INetConfigurationManager _cfg = default!; @@ -22,7 +27,7 @@ private void OnCheckAutoGetUp(CheckAutoGetUpEvent ev, EntitySessionEventArgs arg if (!TryComp(uid, out LayingDownComponent? layingDown)) return; - layingDown.AutoGetUp = _cfg.GetClientCVar(args.SenderSession.Channel, WhiteCVars.AutoGetUp); + layingDown.AutoGetUp = _cfg.GetClientCVar(args.SenderSession.Channel, CCVars.AutoGetUp); Dirty(uid, layingDown); } } diff --git a/Content.Server/Station/Components/StationBiomeComponent.cs b/Content.Server/Station/Components/StationBiomeComponent.cs new file mode 100644 index 0000000000..0eb64aaff8 --- /dev/null +++ b/Content.Server/Station/Components/StationBiomeComponent.cs @@ -0,0 +1,22 @@ +using Content.Server.Station.Systems; +using Content.Shared.Parallax.Biomes; +using Robust.Shared.Prototypes; + +namespace Content.Server.Station.Components; + +/// +/// Runs EnsurePlanet against the largest grid on Mapinit. +/// +[RegisterComponent, Access(typeof(StationBiomeSystem))] +public sealed partial class StationBiomeComponent : Component +{ + [DataField(required: true)] + public ProtoId Biome = "Grasslands"; + + // If null, its random + [DataField] + public int? Seed = null; + + [DataField] + public Color MapLightColor = Color.Black; +} diff --git a/Content.Server/Station/Events/StationPostInitEvent.cs b/Content.Server/Station/Events/StationPostInitEvent.cs index 4f7927cee5..54b8eeeb31 100644 --- a/Content.Server/Station/Events/StationPostInitEvent.cs +++ b/Content.Server/Station/Events/StationPostInitEvent.cs @@ -4,6 +4,8 @@ namespace Content.Server.Station.Events; /// /// Raised directed on a station after it has been initialized, as well as broadcast. +/// This gets raised after the entity has been map-initialized, and the station's centcomm map/entity (if any) has been +/// set up. /// [ByRefEvent] public readonly record struct StationPostInitEvent(Entity Station); diff --git a/Content.Server/Station/Systems/StationBiomeSystem.cs b/Content.Server/Station/Systems/StationBiomeSystem.cs new file mode 100644 index 0000000000..8c80806ccf --- /dev/null +++ b/Content.Server/Station/Systems/StationBiomeSystem.cs @@ -0,0 +1,35 @@ +using Content.Server.Parallax; +using Content.Server.Station.Components; +using Content.Server.Station.Events; +using Content.Server.Station.Systems; +using Robust.Shared.Map; +using Robust.Shared.Prototypes; + +namespace Content.Server.Station.Systems; +public sealed partial class StationBiomeSystem : EntitySystem +{ + [Dependency] private readonly BiomeSystem _biome = default!; + [Dependency] private readonly IMapManager _mapManager = default!; + [Dependency] private readonly IPrototypeManager _proto = default!; + [Dependency] private readonly StationSystem _station = default!; + + public override void Initialize() + { + base.Initialize(); + SubscribeLocalEvent(OnStationPostInit); + } + + private void OnStationPostInit(Entity map, ref StationPostInitEvent args) + { + if (!TryComp(map, out StationDataComponent? dataComp)) + return; + + var station = _station.GetLargestGrid(dataComp); + if (station == null) return; + + var mapId = Transform(station.Value).MapID; + var mapUid = _mapManager.GetMapEntityId(mapId); + + _biome.EnsurePlanet(mapUid, _proto.Index(map.Comp.Biome), map.Comp.Seed, mapLight: map.Comp.MapLightColor); + } +} diff --git a/Content.Server/Station/Systems/StationSpawningSystem.cs b/Content.Server/Station/Systems/StationSpawningSystem.cs index 61fc1e0a51..85be5f740d 100644 --- a/Content.Server/Station/Systems/StationSpawningSystem.cs +++ b/Content.Server/Station/Systems/StationSpawningSystem.cs @@ -47,7 +47,7 @@ public sealed class StationSpawningSystem : SharedStationSpawningSystem [Dependency] private readonly SharedAccessSystem _accessSystem = default!; [Dependency] private readonly IdentitySystem _identity = default!; [Dependency] private readonly MetaDataSystem _metaSystem = default!; - + [Dependency] private readonly InternalEncryptionKeySpawner _internalEncryption = default!; [Dependency] private readonly ArrivalsSystem _arrivalsSystem = default!; [Dependency] private readonly ContainerSpawnPointSystem _containerSpawnPointSystem = default!; @@ -58,6 +58,7 @@ public sealed class StationSpawningSystem : SharedStationSpawningSystem /// public override void Initialize() { + base.Initialize(); Subs.CVar(_configurationManager, CCVars.ICRandomCharacters, e => _randomizeCharacters = e, true); _spawnerCallbacks = new Dictionary>() @@ -173,12 +174,15 @@ public EntityUid SpawnPlayerMob( if (prototype?.StartingGear != null) { var startingGear = _prototypeManager.Index(prototype.StartingGear); - EquipStartingGear(entity.Value, startingGear); + EquipStartingGear(entity.Value, startingGear, raiseEvent: false); if (profile != null) EquipIdCard(entity.Value, profile.Name, prototype, station); - InternalEncryptionKeySpawner.TryInsertEncryptionKey(entity.Value, startingGear, EntityManager, profile); // Parkstation - IPC + _internalEncryption.TryInsertEncryptionKey(entity.Value, startingGear, EntityManager); } + var gearEquippedEv = new StartingGearEquippedEvent(entity.Value); + RaiseLocalEvent(entity.Value, ref gearEquippedEv, true); + if (profile != null) { _humanoidSystem.LoadProfile(entity.Value, profile); diff --git a/Content.Server/Station/Systems/StationSystem.cs b/Content.Server/Station/Systems/StationSystem.cs index 408b3ebc55..88e419ae39 100644 --- a/Content.Server/Station/Systems/StationSystem.cs +++ b/Content.Server/Station/Systems/StationSystem.cs @@ -28,22 +28,16 @@ namespace Content.Server.Station.Systems; [PublicAPI] public sealed class StationSystem : EntitySystem { - [Dependency] private readonly IConfigurationManager _configurationManager = default!; [Dependency] private readonly ILogManager _logManager = default!; [Dependency] private readonly IPlayerManager _player = default!; [Dependency] private readonly IRobustRandom _random = default!; [Dependency] private readonly ChatSystem _chatSystem = default!; - [Dependency] private readonly GameTicker _gameTicker = default!; [Dependency] private readonly SharedTransformSystem _transform = default!; [Dependency] private readonly MetaDataSystem _metaData = default!; [Dependency] private readonly MapSystem _map = default!; private ISawmill _sawmill = default!; - private bool _randomStationOffset; - private bool _randomStationRotation; - private float _maxRandomStationOffset; - /// public override void Initialize() { @@ -112,26 +106,12 @@ private void OnPostGameMapLoad(PostGameMapLoad ev) { var dict = new Dictionary>(); - void AddGrid(string station, EntityUid grid) - { - if (dict.ContainsKey(station)) - { - dict[station].Add(grid); - } - else - { - dict[station] = new List {grid}; - } - } - // Iterate over all BecomesStation foreach (var grid in ev.Grids) { // We still setup the grid - if (!TryComp(grid, out var becomesStation)) - continue; - - AddGrid(becomesStation.Id, grid); + if (TryComp(grid, out var becomesStation)) + dict.GetOrNew(becomesStation.Id).Add(grid); } if (!dict.Any()) @@ -294,8 +274,6 @@ public EntityUid InitializeNewStation(StationConfig stationConfig, IEnumerable + /// Alert level to set the station to when the event starts. + /// + [DataField] + public string AlertLevel = "blue"; +} diff --git a/Content.Server/StationEvents/Components/RampingStationEventSchedulerComponent.cs b/Content.Server/StationEvents/Components/RampingStationEventSchedulerComponent.cs index 282ee5b612..9771e02e03 100644 --- a/Content.Server/StationEvents/Components/RampingStationEventSchedulerComponent.cs +++ b/Content.Server/StationEvents/Components/RampingStationEventSchedulerComponent.cs @@ -24,6 +24,7 @@ public sealed partial class RampingStationEventSchedulerComponent : Component /// /// The number by which average expected shift length is multiplied. Higher values lead to slower chaos growth. /// + [DataField] public float ShiftLengthModifier = 1f; // Everything below is overridden in the RampingStationEventSchedulerSystem based on CVars diff --git a/Content.Server/StationEvents/Components/StationEventComponent.cs b/Content.Server/StationEvents/Components/StationEventComponent.cs index 980034aa7b..54af1a59d9 100644 --- a/Content.Server/StationEvents/Components/StationEventComponent.cs +++ b/Content.Server/StationEvents/Components/StationEventComponent.cs @@ -1,4 +1,4 @@ -using Robust.Shared.Audio; +using Robust.Shared.Audio; using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom; namespace Content.Server.StationEvents.Components; @@ -15,43 +15,43 @@ public sealed partial class StationEventComponent : Component public const float WeightHigh = 15.0f; public const float WeightVeryHigh = 20.0f; - [DataField("weight")] + [DataField] public float Weight = WeightNormal; - [DataField("startAnnouncement")] + [DataField] public bool StartAnnouncement; - [DataField("endAnnouncement")] + [DataField] public bool EndAnnouncement; /// /// In minutes, when is the first round time this event can start /// - [DataField("earliestStart")] + [DataField] public int EarliestStart = 5; /// /// In minutes, the amount of time before the same event can occur again /// - [DataField("reoccurrenceDelay")] + [DataField] public int ReoccurrenceDelay = 30; /// /// How long after being added does the event start /// - [DataField("startDelay")] + [DataField] public TimeSpan StartDelay = TimeSpan.Zero; /// /// How long the event lasts. /// - [DataField("duration")] + [DataField] public TimeSpan? Duration = TimeSpan.FromSeconds(1); /// /// The max amount of time the event lasts. /// - [DataField("maxDuration")] + [DataField] public TimeSpan? MaxDuration; /// @@ -60,13 +60,13 @@ public sealed partial class StationEventComponent : Component /// /// To avoid running deadly events with low-pop /// - [DataField("minimumPlayers")] + [DataField] public int MinimumPlayers; /// /// How many times this even can occur in a single round /// - [DataField("maxOccurrences")] + [DataField] public int? MaxOccurrences; /// diff --git a/Content.Server/StationEvents/EventManagerSystem.cs b/Content.Server/StationEvents/EventManagerSystem.cs index 2d8606e929..9c0005d06d 100644 --- a/Content.Server/StationEvents/EventManagerSystem.cs +++ b/Content.Server/StationEvents/EventManagerSystem.cs @@ -1,4 +1,5 @@ using System.Linq; +using Content.Server.Chat.Managers; using Content.Server.GameTicking; using Content.Server.StationEvents.Components; using Content.Shared.CCVar; @@ -16,6 +17,7 @@ public sealed class EventManagerSystem : EntitySystem [Dependency] private readonly IPlayerManager _playerManager = default!; [Dependency] private readonly IRobustRandom _random = default!; [Dependency] private readonly IPrototypeManager _prototype = default!; + [Dependency] private readonly IChatManager _chat = default!; [Dependency] public readonly GameTicker GameTicker = default!; [Dependency] private readonly GlimmerSystem _glimmerSystem = default!; //Nyano - Summary: pulls in the glimmer system. @@ -45,6 +47,7 @@ public string RunRandomEvent() var ent = GameTicker.AddGameRule(randomEvent); var str = Loc.GetString("station-event-system-run-event",("eventName", ToPrettyString(ent))); + _chat.SendAdminAlert(str); Log.Info(str); return str; } diff --git a/Content.Server/StationEvents/Events/AlertLevelInterceptionRule.cs b/Content.Server/StationEvents/Events/AlertLevelInterceptionRule.cs new file mode 100644 index 0000000000..a78a542d3b --- /dev/null +++ b/Content.Server/StationEvents/Events/AlertLevelInterceptionRule.cs @@ -0,0 +1,23 @@ +using Content.Server.GameTicking.Components; +using Content.Server.StationEvents.Components; +using Content.Server.AlertLevel; + +namespace Content.Server.StationEvents.Events; + +public sealed class AlertLevelInterceptionRule : StationEventSystem +{ + [Dependency] private readonly AlertLevelSystem _alertLevelSystem = default!; + + protected override void Started(EntityUid uid, AlertLevelInterceptionRuleComponent component, GameRuleComponent gameRule, + GameRuleStartedEvent args) + { + base.Started(uid, component, gameRule, args); + + if (!TryGetRandomStation(out var chosenStation)) + return; + if (_alertLevelSystem.GetLevel(chosenStation.Value) != "green") + return; + + _alertLevelSystem.SetLevel(chosenStation.Value, component.AlertLevel, true, true, true); + } +} \ No newline at end of file diff --git a/Content.Server/StationEvents/Events/CargoGiftsRule.cs b/Content.Server/StationEvents/Events/CargoGiftsRule.cs index 62f01f58fe..550f799b27 100644 --- a/Content.Server/StationEvents/Events/CargoGiftsRule.cs +++ b/Content.Server/StationEvents/Events/CargoGiftsRule.cs @@ -1,4 +1,4 @@ -using System.Linq; +using System.Linq; using Content.Server.Cargo.Components; using Content.Server.Cargo.Systems; using Content.Server.GameTicking; @@ -74,13 +74,14 @@ protected override void ActiveTick(EntityUid uid, CargoGiftsRuleComponent compon if (!_cargoSystem.AddAndApproveOrder( station!.Value, product.Product, + product.Name, product.Cost, qty, Loc.GetString(component.Sender), Loc.GetString(component.Description), Loc.GetString(component.Dest), cargoDb, - stationData! + (station.Value, stationData) )) { break; diff --git a/Content.Server/StationEvents/Events/NoosphericZapRule.cs b/Content.Server/StationEvents/Events/NoosphericZapRule.cs index 4be7b6e63f..96c3361203 100644 --- a/Content.Server/StationEvents/Events/NoosphericZapRule.cs +++ b/Content.Server/StationEvents/Events/NoosphericZapRule.cs @@ -36,9 +36,9 @@ protected override void Started(EntityUid uid, NoosphericZapRuleComponent compon _stunSystem.TryParalyze(psion, TimeSpan.FromSeconds(component.StunDuration), false); _statusEffectsSystem.TryAddStatusEffect(psion, "Stutter", TimeSpan.FromSeconds(component.StutterDuration), false, "StutteringAccent"); - if (psionicComponent.CanReroll) + if (!psionicComponent.CanReroll) { - psionicComponent.CanReroll = false; + psionicComponent.CanReroll = true; _popupSystem.PopupEntity(Loc.GetString("noospheric-zap-seize-potential-regained"), psion, psion, Shared.Popups.PopupType.LargeCaution); } else diff --git a/Content.Server/StationEvents/Events/StationEventSystem.cs b/Content.Server/StationEvents/Events/StationEventSystem.cs index 257babd0d2..040ebad226 100644 --- a/Content.Server/StationEvents/Events/StationEventSystem.cs +++ b/Content.Server/StationEvents/Events/StationEventSystem.cs @@ -1,3 +1,4 @@ +using System.Linq; using Content.Server.Administration.Logs; using Content.Server.Chat.Systems; using Content.Server.GameTicking.Components; @@ -46,6 +47,7 @@ protected override void Added(EntityUid uid, T component, GameRuleComponent game if (!TryComp(uid, out var stationEvent)) return; + AdminLogManager.Add(LogType.EventAnnounced, $"Event added / announced: {ToPrettyString(uid)}"); stationEvent.StartTime = Timing.CurTime + stationEvent.StartDelay; diff --git a/Content.Server/StationGoal/StationGoalPaperSystem.cs b/Content.Server/StationGoal/StationGoalPaperSystem.cs index 6a059c37a3..8442f9b4aa 100644 --- a/Content.Server/StationGoal/StationGoalPaperSystem.cs +++ b/Content.Server/StationGoal/StationGoalPaperSystem.cs @@ -9,6 +9,7 @@ using Robust.Shared.Prototypes; using Robust.Shared.Random; using Content.Shared.Dataset; +using Content.Shared.Fax.Components; namespace Content.Server.StationGoal; diff --git a/Content.Server/StationGoal/StationGoalPrototype.cs b/Content.Server/StationGoal/StationGoalPrototype.cs index 733759a37d..c49d49e939 100644 --- a/Content.Server/StationGoal/StationGoalPrototype.cs +++ b/Content.Server/StationGoal/StationGoalPrototype.cs @@ -3,7 +3,7 @@ namespace Content.Server.StationGoal { [Serializable, Prototype("stationGoal")] - public sealed class StationGoalPrototype : IPrototype + public sealed partial class StationGoalPrototype : IPrototype { [IdDataFieldAttribute] public string ID { get; } = default!; diff --git a/Content.Server/StationRecords/Systems/GeneralStationRecordConsoleSystem.cs b/Content.Server/StationRecords/Systems/GeneralStationRecordConsoleSystem.cs index 721eff6f2c..a5202285d9 100644 --- a/Content.Server/StationRecords/Systems/GeneralStationRecordConsoleSystem.cs +++ b/Content.Server/StationRecords/Systems/GeneralStationRecordConsoleSystem.cs @@ -57,7 +57,7 @@ private void UpdateUserInterface(Entity en if (!TryComp(owningStation, out var stationRecords)) { - _ui.TrySetUiState(uid, GeneralStationRecordConsoleKey.Key, new GeneralStationRecordConsoleState()); + _ui.SetUiState(uid, GeneralStationRecordConsoleKey.Key, new GeneralStationRecordConsoleState()); return; } @@ -66,7 +66,7 @@ private void UpdateUserInterface(Entity en switch (listing.Count) { case 0: - _ui.TrySetUiState(uid, GeneralStationRecordConsoleKey.Key, new GeneralStationRecordConsoleState()); + _ui.SetUiState(uid, GeneralStationRecordConsoleKey.Key, new GeneralStationRecordConsoleState()); return; case 1: console.ActiveKey = listing.Keys.First(); @@ -80,6 +80,6 @@ private void UpdateUserInterface(Entity en _stationRecords.TryGetRecord(key, out var record, stationRecords); GeneralStationRecordConsoleState newState = new(id, record, listing, console.Filter); - _ui.TrySetUiState(uid, GeneralStationRecordConsoleKey.Key, newState); + _ui.SetUiState(uid, GeneralStationRecordConsoleKey.Key, newState); } } diff --git a/Content.Server/StationRecords/Systems/StationRecordsSystem.cs b/Content.Server/StationRecords/Systems/StationRecordsSystem.cs index 67f50d7a4e..f04d997043 100644 --- a/Content.Server/StationRecords/Systems/StationRecordsSystem.cs +++ b/Content.Server/StationRecords/Systems/StationRecordsSystem.cs @@ -65,7 +65,11 @@ private void CreateGeneralRecord(EntityUid station, EntityUid player, HumanoidCh TryComp(player, out var fingerprintComponent); TryComp(player, out var dnaComponent); - CreateGeneralRecord(station, idUid.Value, profile.Name, profile.Age, profile.Species, profile.Gender, jobId, fingerprintComponent?.Fingerprint, dnaComponent?.DNA, profile, records); + string specie = profile.Species; + if (!string.IsNullOrEmpty(profile.Customspeciename)) + specie = profile.Customspeciename; + + CreateGeneralRecord(station, idUid.Value, profile.Name, profile.Age, specie, profile.Gender, jobId, fingerprintComponent?.Fingerprint, dnaComponent?.DNA, profile, records); } @@ -211,7 +215,7 @@ public bool TryGetRecord(StationRecordKey key, [NotNullWhen(true)] out T? ent /// public uint? GetRecordByName(EntityUid station, string name, StationRecordsComponent? records = null) { - if (!Resolve(station, ref records)) + if (!Resolve(station, ref records, false)) return null; foreach (var (id, record) in GetRecordsOfType(station, records)) diff --git a/Content.Server/Storage/Components/EntityStorageComponent.cs b/Content.Server/Storage/Components/EntityStorageComponent.cs index 40fdb1b326..3fba89b64a 100644 --- a/Content.Server/Storage/Components/EntityStorageComponent.cs +++ b/Content.Server/Storage/Components/EntityStorageComponent.cs @@ -1,4 +1,5 @@ using Content.Server.Atmos; +using Content.Shared.Atmos; using Content.Shared.Storage.Components; using Robust.Shared.GameStates; diff --git a/Content.Server/Storage/EntitySystems/SpawnItemsOnUseSystem.cs b/Content.Server/Storage/EntitySystems/SpawnItemsOnUseSystem.cs index c49bfdec93..4c533ede3a 100644 --- a/Content.Server/Storage/EntitySystems/SpawnItemsOnUseSystem.cs +++ b/Content.Server/Storage/EntitySystems/SpawnItemsOnUseSystem.cs @@ -82,7 +82,9 @@ private void OnUseInHand(EntityUid uid, SpawnItemsOnUseComponent component, UseI if (component.Sound != null) { - _audio.PlayPvs(component.Sound, uid); + // The entity is often deleted, so play the sound at its position rather than parenting + var coordinates = Transform(uid).Coordinates; + _audio.PlayPvs(component.Sound, coordinates); } component.Uses--; diff --git a/Content.Server/Storage/EntitySystems/StorageSystem.Fill.cs b/Content.Server/Storage/EntitySystems/StorageSystem.Fill.cs index 10278cc805..768491f987 100644 --- a/Content.Server/Storage/EntitySystems/StorageSystem.Fill.cs +++ b/Content.Server/Storage/EntitySystems/StorageSystem.Fill.cs @@ -65,12 +65,23 @@ private void FillStorage(Entity entity var sortedItems = items .OrderByDescending(x => ItemSystem.GetItemShape(x.Comp).GetArea()); + ClearCantFillReasons(); foreach (var ent in sortedItems) { if (Insert(uid, ent, out _, out var reason, storageComp: storage, playSound: false)) continue; + if (CantFillReasons.Count > 0) + { + var reasons = string.Join(", ", CantFillReasons.Select(s => Loc.GetString(s))); + if (reason == null) + reason = reasons; + else + reason += $", {reasons}"; + } + Log.Error($"Tried to StorageFill {ToPrettyString(ent)} inside {ToPrettyString(uid)} but can't. reason: {reason}"); + ClearCantFillReasons(); Del(ent); } } diff --git a/Content.Server/Storage/EntitySystems/StorageSystem.cs b/Content.Server/Storage/EntitySystems/StorageSystem.cs index 0f5efda74d..4b5dd7290c 100644 --- a/Content.Server/Storage/EntitySystems/StorageSystem.cs +++ b/Content.Server/Storage/EntitySystems/StorageSystem.cs @@ -3,17 +3,12 @@ using Content.Shared.Explosion; using Content.Shared.Ghost; using Content.Shared.Hands; -using Content.Shared.Input; -using Content.Shared.Inventory; using Content.Shared.Lock; using Content.Shared.Storage; using Content.Shared.Storage.Components; using Content.Shared.Storage.EntitySystems; -using Content.Shared.Timing; using Content.Shared.Verbs; using Robust.Server.GameObjects; -using Robust.Shared.Audio.Systems; -using Robust.Shared.Input.Binding; using Robust.Shared.Map; using Robust.Shared.Player; using Robust.Shared.Prototypes; @@ -23,95 +18,14 @@ namespace Content.Server.Storage.EntitySystems; public sealed partial class StorageSystem : SharedStorageSystem { - [Dependency] private readonly IAdminManager _admin = default!; [Dependency] private readonly IPrototypeManager _prototype = default!; - [Dependency] private readonly InventorySystem _inventory = default!; - [Dependency] private readonly UserInterfaceSystem _uiSystem = default!; - [Dependency] private readonly SharedAudioSystem _audio = default!; - [Dependency] private readonly UseDelaySystem _useDelay = default!; public override void Initialize() { base.Initialize(); - SubscribeLocalEvent>(AddUiVerb); - Subs.BuiEvents(StorageComponent.StorageUiKey.Key, subs => - { - subs.Event(OnBoundUIClosed); - }); SubscribeLocalEvent(OnExploded); SubscribeLocalEvent(OnStorageFillMapInit); - - CommandBinds.Builder - .Bind(ContentKeyFunctions.OpenBackpack, InputCmdHandler.FromDelegate(HandleOpenBackpack)) - .Bind(ContentKeyFunctions.OpenBelt, InputCmdHandler.FromDelegate(HandleOpenBelt)) - .Register(); - } - - 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); - - // Get the session for the user - if (!TryComp(args.User, out var actor)) - return; - - // Does this player currently have the storage UI open? - var uiOpen = _uiSystem.SessionHasOpenUi(uid, StorageComponent.StorageUiKey.Key, actor.PlayerSession); - - ActivationVerb verb = new() - { - Act = () => - { - if (uiOpen) - { - _uiSystem.TryClose(uid, StorageComponent.StorageUiKey.Key, actor.PlayerSession); - } - else - { - OpenStorageUI(uid, args.User, component, silent); - } - } - }; - if (uiOpen) - { - verb.Text = Loc.GetString("verb-common-close-ui"); - verb.Icon = new SpriteSpecifier.Texture( - new("/Textures/Interface/VerbIcons/close.svg.192dpi.png")); - } - else - { - verb.Text = Loc.GetString("verb-common-open-ui"); - verb.Icon = new SpriteSpecifier.Texture( - new("/Textures/Interface/VerbIcons/open.svg.192dpi.png")); - } - args.Verbs.Add(verb); - } - - private void OnBoundUIClosed(EntityUid uid, StorageComponent storageComp, BoundUIClosedEvent args) - { - if (TryComp(args.Session.AttachedEntity, out var actor) && actor?.PlayerSession != null) - CloseNestedInterfaces(uid, actor.PlayerSession, storageComp); - - // If UI is closed for everyone - if (!_uiSystem.IsUiOpen(uid, args.UiKey)) - { - storageComp.IsUiOpen = false; - UpdateAppearance((uid, storageComp, null)); - - if (storageComp.StorageCloseSound is not null) - Audio.PlayEntity(storageComp.StorageCloseSound, Filter.Pvs(uid, entityManager: EntityManager), uid, true, storageComp.StorageCloseSound.Params); - } } private void OnExploded(Entity ent, ref BeforeExplodeEvent args) @@ -119,34 +33,6 @@ private void OnExploded(Entity ent, ref BeforeExplodeEvent arg args.Contents.AddRange(ent.Comp.Container.ContainedEntities); } - /// - /// Opens the storage UI for an entity - /// - /// The entity to open the UI for - public override void OpenStorageUI(EntityUid uid, EntityUid entity, StorageComponent? storageComp = null, bool silent = false) - { - if (!Resolve(uid, ref storageComp, false) || !TryComp(entity, out ActorComponent? player)) - return; - - // prevent spamming bag open / honkerton honk sound - silent |= TryComp(uid, out var useDelay) && _useDelay.IsDelayed((uid, useDelay)); - if (!silent) - { - if (!storageComp.IsUiOpen) - _audio.PlayPvs(storageComp.StorageOpenSound, uid); - if (useDelay != null) - _useDelay.TryResetDelay((uid, useDelay)); - } - - Log.Debug($"Storage (UID {uid}) \"used\" by player session (UID {player.PlayerSession.AttachedEntity})."); - - var bui = _uiSystem.GetUiOrNull(uid, StorageComponent.StorageUiKey.Key); - if (bui == null) - return; - _uiSystem.OpenUi(bui, player.PlayerSession); - _uiSystem.SendUiMessage(bui, new StorageModifyWindowMessage()); - } - /// public override void PlayPickupAnimation(EntityUid uid, EntityCoordinates initialCoordinates, EntityCoordinates finalCoordinates, Angle initialRotation, EntityUid? user = null) @@ -154,57 +40,4 @@ public override void PlayPickupAnimation(EntityUid uid, EntityCoordinates initia var filter = Filter.Pvs(uid).RemoveWhereAttachedEntity(e => e == user); RaiseNetworkEvent(new PickupAnimationEvent(GetNetEntity(uid), GetNetCoordinates(initialCoordinates), GetNetCoordinates(finalCoordinates), initialRotation), filter); } - - /// - /// If the user has nested-UIs open (e.g., PDA UI open when pda is in a backpack), close them. - /// - /// - public void CloseNestedInterfaces(EntityUid uid, ICommonSession session, StorageComponent? storageComp = null) - { - if (!Resolve(uid, ref storageComp)) - return; - - // for each containing thing - // if it has a storage comp - // ensure unsubscribe from session - // if it has a ui component - // close ui - foreach (var entity in storageComp.Container.ContainedEntities) - { - if (!TryComp(entity, out UserInterfaceComponent? ui)) - continue; - - foreach (var bui in ui.Interfaces.Values) - { - _uiSystem.TryClose(entity, bui.UiKey, session, ui); - } - } - } - - private void HandleOpenBackpack(ICommonSession? session) - { - HandleOpenSlotUI(session, "back"); - } - - private void HandleOpenBelt(ICommonSession? session) - { - HandleOpenSlotUI(session, "belt"); - } - - private void HandleOpenSlotUI(ICommonSession? session, string slot) - { - if (session is not { } playerSession) - return; - - if (playerSession.AttachedEntity is not {Valid: true} playerEnt || !Exists(playerEnt)) - return; - - if (!_inventory.TryGetSlotEntity(playerEnt, slot, out var storageEnt)) - return; - - if (!ActionBlocker.CanInteract(playerEnt, storageEnt)) - return; - - OpenStorageUI(storageEnt.Value, playerEnt); - } } diff --git a/Content.Server/Store/Systems/StoreSystem.Refund.cs b/Content.Server/Store/Systems/StoreSystem.Refund.cs index d59ee75e3e..5a8be4be2b 100644 --- a/Content.Server/Store/Systems/StoreSystem.Refund.cs +++ b/Content.Server/Store/Systems/StoreSystem.Refund.cs @@ -1,4 +1,4 @@ -using Content.Server.Store.Components; +using Content.Server.Store.Components; using Robust.Shared.Containers; namespace Content.Server.Store.Systems; diff --git a/Content.Server/Store/Systems/StoreSystem.Ui.cs b/Content.Server/Store/Systems/StoreSystem.Ui.cs index a7aac47434..0d2f3af91b 100644 --- a/Content.Server/Store/Systems/StoreSystem.Ui.cs +++ b/Content.Server/Store/Systems/StoreSystem.Ui.cs @@ -73,7 +73,7 @@ public void CloseUi(EntityUid uid, StoreComponent? component = null) if (!Resolve(uid, ref component)) return; - _ui.TryCloseAll(uid, StoreUiKey.Key); + _ui.CloseUi(uid, StoreUiKey.Key); } /// @@ -83,12 +83,13 @@ public void CloseUi(EntityUid uid, StoreComponent? component = null) /// The store entity itself /// The store component being refreshed. /// - public void UpdateUserInterface(EntityUid? user, EntityUid store, StoreComponent? component = null, PlayerBoundUserInterface? ui = null) + public void UpdateUserInterface(EntityUid? user, EntityUid store, StoreComponent? component = null) { if (!Resolve(store, ref component)) return; - if (ui == null && !_ui.TryGetUi(store, StoreUiKey.Key, out ui)) + // TODO: Why is the state not being set unless this? + if (!_ui.HasUi(store, StoreUiKey.Key)) return; //this is the person who will be passed into logic for all listing filtering. @@ -113,12 +114,12 @@ public void UpdateUserInterface(EntityUid? user, EntityUid store, StoreComponent // only tell operatives to lock their uplink if it can be locked var showFooter = HasComp(store); var state = new StoreUpdateState(component.LastAvailableListings, allCurrency, showFooter, component.RefundAllowed); - _ui.SetUiState(ui, state); + _ui.SetUiState(store, StoreUiKey.Key, state); } private void OnRequestUpdate(EntityUid uid, StoreComponent component, StoreRequestUpdateInterfaceMessage args) { - UpdateUserInterface(args.Session.AttachedEntity, GetEntity(args.Entity), component); + UpdateUserInterface(args.Actor, GetEntity(args.Entity), component); } private void BeforeActivatableUiOpen(EntityUid uid, StoreComponent component, BeforeActivatableUIOpenEvent args) @@ -139,8 +140,7 @@ private void OnBuyRequest(EntityUid uid, StoreComponent component, StoreBuyListi return; } - if (msg.Session.AttachedEntity is not { Valid: true } buyer) - return; + var buyer = msg.Actor; //verify that we can actually buy this listing and it wasn't added if (!ListingHasCategory(listing, component.Categories)) @@ -215,11 +215,11 @@ private void OnBuyRequest(EntityUid uid, StoreComponent component, StoreBuyListi { HandleRefundComp(uid, component, actionId.Value); - if (listing.ProductUpgradeID != null) + if (listing.ProductUpgradeId != null) { foreach (var upgradeListing in component.Listings) { - if (upgradeListing.ID == listing.ProductUpgradeID) + if (upgradeListing.ID == listing.ProductUpgradeId) { upgradeListing.ProductActionEntity = actionId.Value; break; @@ -229,7 +229,7 @@ private void OnBuyRequest(EntityUid uid, StoreComponent component, StoreBuyListi } } - if (listing is { ProductUpgradeID: not null, ProductActionEntity: not null }) + if (listing is { ProductUpgradeId: not null, ProductActionEntity: not null }) { if (listing.ProductActionEntity != null) { @@ -263,15 +263,13 @@ private void OnBuyRequest(EntityUid uid, StoreComponent component, StoreBuyListi $"{ToPrettyString(buyer):player} purchased listing \"{ListingLocalisationHelpers.GetLocalisedNameOrEntityName(listing, _prototypeManager)}\" from {ToPrettyString(uid)}"); listing.PurchaseAmount++; //track how many times something has been purchased - _audio.PlayEntity(component.BuySuccessSound, msg.Session, uid); //cha-ching! + _audio.PlayEntity(component.BuySuccessSound, msg.Actor, uid); //cha-ching! - //WD EDIT START if (listing.SaleLimit != 0 && listing.DiscountValue > 0 && listing.PurchaseAmount >= listing.SaleLimit) { listing.DiscountValue = 0; listing.Cost = listing.OldCost; } - //WD EDIT END UpdateUserInterface(buyer, uid, component); } @@ -297,8 +295,7 @@ private void OnRequestWithdraw(EntityUid uid, StoreComponent component, StoreReq if (proto.Cash == null || !proto.CanWithdraw) return; - if (msg.Session.AttachedEntity is not { Valid: true } buyer) - return; + var buyer = msg.Actor; FixedPoint2 amountRemaining = msg.Amount; var coordinates = Transform(buyer).Coordinates; @@ -321,7 +318,7 @@ private void OnRequestRefund(EntityUid uid, StoreComponent component, StoreReque { // TODO: Remove guardian/holopara - if (args.Session.AttachedEntity is not { Valid: true } buyer) + if (args.Actor is not { Valid: true } buyer) return; if (!IsOnStartingMap(uid, component)) diff --git a/Content.Server/Store/Systems/StoreSystem.cs b/Content.Server/Store/Systems/StoreSystem.cs index 39129e154a..978d98ac0c 100644 --- a/Content.Server/Store/Systems/StoreSystem.cs +++ b/Content.Server/Store/Systems/StoreSystem.cs @@ -10,7 +10,7 @@ using Robust.Server.GameObjects; using Robust.Shared.Prototypes; using System.Linq; -using Content.Server._White.StoreDiscount; +using Content.Server.StoreDiscount; using Robust.Shared.Utility; namespace Content.Server.Store.Systems; @@ -23,7 +23,7 @@ public sealed partial class StoreSystem : EntitySystem { [Dependency] private readonly IPrototypeManager _proto = default!; [Dependency] private readonly SharedPopupSystem _popup = default!; - [Dependency] private readonly StoreDiscountSystem _storeDiscount = default!; // WD EDIT + [Dependency] private readonly StoreDiscountSystem _storeDiscount = default!; public override void Initialize() { @@ -102,7 +102,7 @@ private void OnAfterInteract(EntityUid uid, CurrencyComponent component, AfterIn if (args.Handled) { var msg = Loc.GetString("store-currency-inserted", ("used", args.Used), ("target", args.Target)); - _popup.PopupEntity(msg, args.Target.Value); + _popup.PopupEntity(msg, args.Target.Value, args.User); QueueDel(args.Used); } } @@ -201,13 +201,10 @@ public void InitializeFromPreset(StorePresetPrototype preset, EntityUid uid, Sto if (component.Balance == new Dictionary() && preset.InitialBalance != null) //if we don't have a value stored, use the preset TryAddCurrency(preset.InitialBalance, uid, component); - _storeDiscount.ApplyDiscounts(component.Listings, preset); // WD EDIT + _storeDiscount.ApplyDiscounts(component.Listings, preset); - var ui = _ui.GetUiOrNull(uid, StoreUiKey.Key); - if (ui != null) - { - _ui.SetUiState(ui, new StoreInitializeState(preset.StoreName)); - } + if (_ui.HasUi(uid, StoreUiKey.Key)) + _ui.SetUiState(uid, StoreUiKey.Key, new StoreInitializeState(preset.StoreName)); } } diff --git a/Content.Server/_White/StoreDiscount/StoreDiscountSystem.cs b/Content.Server/StoreDiscount/StoreDiscountSystem.cs similarity index 88% rename from Content.Server/_White/StoreDiscount/StoreDiscountSystem.cs rename to Content.Server/StoreDiscount/StoreDiscountSystem.cs index 412af7b8ea..8f77eba780 100644 --- a/Content.Server/_White/StoreDiscount/StoreDiscountSystem.cs +++ b/Content.Server/StoreDiscount/StoreDiscountSystem.cs @@ -4,7 +4,7 @@ using Robust.Shared.Prototypes; using Robust.Shared.Random; -namespace Content.Server._White.StoreDiscount; +namespace Content.Server.StoreDiscount; public sealed class StoreDiscountSystem : EntitySystem { @@ -18,8 +18,10 @@ public void ApplyDiscounts(IEnumerable listings, StorePresetPrototy var count = _random.Next(store.Sales.MinItems, store.Sales.MaxItems + 1); listings = listings - .Where(l => !l.SaleBlacklist && l.Cost.Any(x => x.Value > 1) - && store.Categories.Overlaps(ChangedFormatCategories(l.Categories))) + .Where(l => + !l.SaleBlacklist + && l.Cost.Any(x => x.Value > 1) + && store.Categories.Overlaps(ChangedFormatCategories(l.Categories))) .OrderBy(_ => _random.Next()).Take(count).ToList(); foreach (var listing in listings) diff --git a/Content.Server/Strip/StrippableSystem.cs b/Content.Server/Strip/StrippableSystem.cs index d9f084252a..73f2ce17a6 100644 --- a/Content.Server/Strip/StrippableSystem.cs +++ b/Content.Server/Strip/StrippableSystem.cs @@ -112,17 +112,15 @@ public override void StartOpeningStripper(EntityUid user, Entity(user, out var mode) && mode.IsInCombatMode && !openInCombat) return; - if (TryComp(user, out var actor) && HasComp(user)) + if (HasComp(user)) { - if (_userInterfaceSystem.SessionHasOpenUi(strippable, StrippingUiKey.Key, actor.PlayerSession)) - return; - _userInterfaceSystem.TryOpen(strippable, StrippingUiKey.Key, actor.PlayerSession); + _userInterfaceSystem.OpenUi(strippable.Owner, StrippingUiKey.Key, user); } } private void OnStripButtonPressed(Entity strippable, ref StrippingSlotButtonPressed args) { - if (args.Session.AttachedEntity is not { Valid: true } user || + if (args.Actor is not { Valid: true } user || !TryComp(user, out var userHands)) return; @@ -174,7 +172,7 @@ private void StripHand( private void OnStripEnsnareMessage(EntityUid uid, EnsnareableComponent component, StrippingEnsnareButtonPressed args) { - if (args.Session.AttachedEntity is not { Valid: true } user) + if (args.Actor is not { Valid: true } user) return; foreach (var entity in component.Container.ContainedEntities) diff --git a/Content.Server/SurveillanceCamera/Systems/SurveillanceCameraMonitorSystem.cs b/Content.Server/SurveillanceCamera/Systems/SurveillanceCameraMonitorSystem.cs index f258fbe89c..ca0f59cd14 100644 --- a/Content.Server/SurveillanceCamera/Systems/SurveillanceCameraMonitorSystem.cs +++ b/Content.Server/SurveillanceCamera/Systems/SurveillanceCameraMonitorSystem.cs @@ -90,7 +90,7 @@ private void OnComponentStartup(EntityUid uid, SurveillanceCameraMonitorComponen private void OnSubnetRequest(EntityUid uid, SurveillanceCameraMonitorComponent component, SurveillanceCameraMonitorSubnetRequestMessage args) { - if (args.Session.AttachedEntity != null) + if (args.Actor != null) { SetActiveSubnet(uid, args.Subnet, component); } @@ -208,13 +208,9 @@ private void OnSurveillanceCameraDeactivate(EntityUid uid, SurveillanceCameraMon private void OnBoundUiClose(EntityUid uid, SurveillanceCameraMonitorComponent component, BoundUIClosedEvent args) { - if (args.Session.AttachedEntity == null) - { - return; - } - - RemoveViewer(uid, args.Session.AttachedEntity.Value, component); + RemoveViewer(uid, args.Actor, component); } + #endregion private void SendHeartbeat(EntityUid uid, SurveillanceCameraMonitorComponent? monitor = null) @@ -487,6 +483,6 @@ private void UpdateUserInterface(EntityUid uid, SurveillanceCameraMonitorCompone } var state = new SurveillanceCameraMonitorUiState(GetNetEntity(monitor.ActiveCamera), monitor.KnownSubnets.Keys.ToHashSet(), monitor.ActiveCameraAddress, monitor.ActiveSubnet, monitor.KnownCameras); - _userInterface.TrySetUiState(uid, SurveillanceCameraMonitorUiKey.Key, state); + _userInterface.SetUiState(uid, SurveillanceCameraMonitorUiKey.Key, state); } } diff --git a/Content.Server/SurveillanceCamera/Systems/SurveillanceCameraRouterSystem.cs b/Content.Server/SurveillanceCamera/Systems/SurveillanceCameraRouterSystem.cs index ac41723026..d0c2cd78d3 100644 --- a/Content.Server/SurveillanceCamera/Systems/SurveillanceCameraRouterSystem.cs +++ b/Content.Server/SurveillanceCamera/Systems/SurveillanceCameraRouterSystem.cs @@ -134,14 +134,14 @@ private void OnSetNetwork(EntityUid uid, SurveillanceCameraRouterComponent compo UpdateSetupInterface(uid, component); } - private void OpenSetupInterface(EntityUid uid, EntityUid player, SurveillanceCameraRouterComponent? camera = null, ActorComponent? actor = null) + private void OpenSetupInterface(EntityUid uid, EntityUid player, SurveillanceCameraRouterComponent? camera = null) { - if (!Resolve(uid, ref camera) || !Resolve(player, ref actor)) + if (!Resolve(uid, ref camera)) return; - if (!_userInterface.TryGetUi(uid, SurveillanceCameraSetupUiKey.Router, out var bui)) + + if (!_userInterface.TryOpenUi(uid, SurveillanceCameraSetupUiKey.Router, player)) return; - _userInterface.OpenUi(bui, actor.PlayerSession); UpdateSetupInterface(uid, camera); } @@ -154,13 +154,13 @@ private void UpdateSetupInterface(EntityUid uid, SurveillanceCameraRouterCompone if (router.AvailableNetworks.Count == 0 || router.SubnetFrequencyId != null) { - _userInterface.TryCloseAll(uid, SurveillanceCameraSetupUiKey.Router); + _userInterface.CloseUi(uid, SurveillanceCameraSetupUiKey.Router); return; } var state = new SurveillanceCameraSetupBoundUiState(router.SubnetName, deviceNet.ReceiveFrequency ?? 0, router.AvailableNetworks, true, router.SubnetFrequencyId != null); - _userInterface.TrySetUiState(uid, SurveillanceCameraSetupUiKey.Router, state); + _userInterface.SetUiState(uid, SurveillanceCameraSetupUiKey.Router, state); } private void SendHeartbeat(EntityUid uid, string origin, string destination, diff --git a/Content.Server/SurveillanceCamera/Systems/SurveillanceCameraSystem.cs b/Content.Server/SurveillanceCamera/Systems/SurveillanceCameraSystem.cs index ec3d33157a..accaa75d1c 100644 --- a/Content.Server/SurveillanceCamera/Systems/SurveillanceCameraSystem.cs +++ b/Content.Server/SurveillanceCamera/Systems/SurveillanceCameraSystem.cs @@ -192,14 +192,14 @@ private void OnSetNetwork(EntityUid uid, SurveillanceCameraComponent component, UpdateSetupInterface(uid, component); } - private void OpenSetupInterface(EntityUid uid, EntityUid player, SurveillanceCameraComponent? camera = null, ActorComponent? actor = null) + private void OpenSetupInterface(EntityUid uid, EntityUid player, SurveillanceCameraComponent? camera = null) { - if (!Resolve(uid, ref camera) || !Resolve(player, ref actor)) + if (!Resolve(uid, ref camera)) return; - if (!_userInterface.TryGetUi(uid, SurveillanceCameraSetupUiKey.Camera, out var bui)) + + if (!_userInterface.TryOpenUi(uid, SurveillanceCameraSetupUiKey.Camera, player)) return; - _userInterface.OpenUi(bui, actor.PlayerSession); UpdateSetupInterface(uid, camera); } @@ -212,7 +212,7 @@ private void UpdateSetupInterface(EntityUid uid, SurveillanceCameraComponent? ca if (camera.NameSet && camera.NetworkSet) { - _userInterface.TryCloseAll(uid, SurveillanceCameraSetupUiKey.Camera); + _userInterface.CloseUi(uid, SurveillanceCameraSetupUiKey.Camera); return; } @@ -224,14 +224,14 @@ private void UpdateSetupInterface(EntityUid uid, SurveillanceCameraComponent? ca } else if (!camera.NetworkSet) { - _userInterface.TryCloseAll(uid, SurveillanceCameraSetupUiKey.Camera); + _userInterface.CloseUi(uid, SurveillanceCameraSetupUiKey.Camera); return; } } var state = new SurveillanceCameraSetupBoundUiState(camera.CameraId, deviceNet.ReceiveFrequency ?? 0, camera.AvailableNetworks, camera.NameSet, camera.NetworkSet); - _userInterface.TrySetUiState(uid, SurveillanceCameraSetupUiKey.Camera, state); + _userInterface.SetUiState(uid, SurveillanceCameraSetupUiKey.Camera, state); } // If the camera deactivates for any reason, it must have all viewers removed, diff --git a/Content.Server/Telescope/TelescopeSystem.cs b/Content.Server/Telescope/TelescopeSystem.cs new file mode 100644 index 0000000000..0e53cc15a2 --- /dev/null +++ b/Content.Server/Telescope/TelescopeSystem.cs @@ -0,0 +1,5 @@ +using Content.Shared.Telescope; + +namespace Content.Server.Telescope; + +public sealed class TelescopeSystem : SharedTelescopeSystem; diff --git a/Content.Server/Terminator/Components/TerminatorComponent.cs b/Content.Server/Terminator/Components/TerminatorComponent.cs deleted file mode 100644 index 9427f95eed..0000000000 --- a/Content.Server/Terminator/Components/TerminatorComponent.cs +++ /dev/null @@ -1,19 +0,0 @@ -using Content.Server.Terminator.Systems; -using Robust.Shared.Prototypes; -using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype.List; - -namespace Content.Server.Terminator.Components; - -/// -/// Main terminator component, handles the target, if any, and objectives. -/// -[RegisterComponent, Access(typeof(TerminatorSystem))] -public sealed partial class TerminatorComponent : Component -{ - /// - /// Used to force the terminate objective's target. - /// If null it will be a random person. - /// - [DataField("target")] - public EntityUid? Target; -} diff --git a/Content.Server/Terminator/Components/TerminatorTargetComponent.cs b/Content.Server/Terminator/Components/TerminatorTargetComponent.cs deleted file mode 100644 index 786cbd1167..0000000000 --- a/Content.Server/Terminator/Components/TerminatorTargetComponent.cs +++ /dev/null @@ -1,16 +0,0 @@ -using Content.Server.Terminator.Systems; - -namespace Content.Server.Terminator.Components; - -/// -/// Sets after the ghost role spawns. -/// -[RegisterComponent, Access(typeof(TerminatorSystem))] -public sealed partial class TerminatorTargetComponent : Component -{ - /// - /// The target to set after the ghost role spawns. - /// - [DataField("target")] - public EntityUid? Target; -} diff --git a/Content.Server/Terminator/Systems/TerminatorSystem.cs b/Content.Server/Terminator/Systems/TerminatorSystem.cs deleted file mode 100644 index 837778d3c4..0000000000 --- a/Content.Server/Terminator/Systems/TerminatorSystem.cs +++ /dev/null @@ -1,75 +0,0 @@ -using Content.Server.Body.Components; -using Content.Server.GenericAntag; -using Content.Server.Ghost.Roles.Events; -using Content.Server.Roles; -using Content.Server.Terminator.Components; -using Content.Shared.Roles; -using Robust.Shared.Map; - -namespace Content.Server.Terminator.Systems; - -public sealed class TerminatorSystem : EntitySystem -{ - [Dependency] private readonly SharedRoleSystem _role = default!; - - public override void Initialize() - { - base.Initialize(); - - SubscribeLocalEvent(OnMapInit); - SubscribeLocalEvent(OnSpawned); - SubscribeLocalEvent(OnCreated); - } - - private void OnMapInit(EntityUid uid, TerminatorComponent comp, MapInitEvent args) - { - // cyborg doesn't need to breathe - //RemComp(uid); // DeltaV - paradox anomaly does actually need to breathe - } - - private void OnSpawned(EntityUid uid, TerminatorComponent comp, GhostRoleSpawnerUsedEvent args) - { - if (!TryComp(args.Spawner, out var target)) - return; - - comp.Target = target.Target; - } - - private void OnCreated(EntityUid uid, TerminatorComponent comp, ref GenericAntagCreatedEvent args) - { - var mindId = args.MindId; - var mind = args.Mind; - - _role.MindAddRole(mindId, new RoleBriefingComponent - { - Briefing = Loc.GetString("terminator-role-briefing") - }, mind); - _role.MindAddRole(mindId, new TerminatorRoleComponent(), mind); - } - - /// - /// DeltaV - used for paradox anomaly. - /// - public void SetTarget(Entity ent, EntityUid mindId) - { - ent.Comp ??= EnsureComp(ent); - ent.Comp.Target = mindId; - } - - /// - /// Create a spawner at a position and return it. - /// - /// Coordinates to create the spawner at - /// Optional target mind to force the terminator to target - public EntityUid CreateSpawner(EntityCoordinates coords, EntityUid? target) - { - var uid = Spawn("SpawnPointGhostTerminator", coords); - if (target != null) - { - var comp = EnsureComp(uid); - comp.Target = target; - } - - return uid; - } -} diff --git a/Content.Server/Thief/Systems/ThiefUndeterminedBackpackSystem.cs b/Content.Server/Thief/Systems/ThiefUndeterminedBackpackSystem.cs index 9918565328..133876bd75 100644 --- a/Content.Server/Thief/Systems/ThiefUndeterminedBackpackSystem.cs +++ b/Content.Server/Thief/Systems/ThiefUndeterminedBackpackSystem.cs @@ -79,6 +79,6 @@ private void UpdateUI(EntityUid uid, ThiefUndeterminedBackpackComponent? compone data.Add(i, info); } - _ui.TrySetUiState(uid, ThiefBackpackUIKey.Key, new ThiefBackpackBoundUserInterfaceState(data, MaxSelectedSets)); + _ui.SetUiState(uid, ThiefBackpackUIKey.Key, new ThiefBackpackBoundUserInterfaceState(data, MaxSelectedSets)); } } diff --git a/Content.Server/Tips/TipsSystem.cs b/Content.Server/Tips/TipsSystem.cs index cc45a3a1d5..168f11de8f 100644 --- a/Content.Server/Tips/TipsSystem.cs +++ b/Content.Server/Tips/TipsSystem.cs @@ -1,9 +1,13 @@ -using Content.Server.Chat.Managers; +using Content.Server.Chat.Managers; using Content.Server.GameTicking; using Content.Shared.CCVar; using Content.Shared.Chat; using Content.Shared.Dataset; +using Content.Shared.Tips; +using Robust.Server.GameObjects; +using Robust.Server.Player; using Robust.Shared.Configuration; +using Robust.Shared.Console; using Robust.Shared.Player; using Robust.Shared.Prototypes; using Robust.Shared.Random; @@ -22,11 +26,14 @@ public sealed class TipsSystem : EntitySystem [Dependency] private readonly IGameTiming _timing = default!; [Dependency] private readonly IRobustRandom _random = default!; [Dependency] private readonly GameTicker _ticker = default!; + [Dependency] private readonly IConsoleHost _conHost = default!; + [Dependency] private readonly IPlayerManager _playerManager = default!; private bool _tipsEnabled; private float _tipTimeOutOfRound; private float _tipTimeInRound; private string _tipsDataset = ""; + private float _tipTippyChance; [ViewVariables(VVAccess.ReadWrite)] private TimeSpan _nextTipTime = TimeSpan.Zero; @@ -40,10 +47,100 @@ public override void Initialize() Subs.CVar(_cfg, CCVars.TipFrequencyInRound, SetInRound, true); Subs.CVar(_cfg, CCVars.TipsEnabled, SetEnabled, true); Subs.CVar(_cfg, CCVars.TipsDataset, SetDataset, true); + Subs.CVar(_cfg, CCVars.TipsTippyChance, SetTippyChance, true); RecalculateNextTipTime(); + _conHost.RegisterCommand("tippy", Loc.GetString("cmd-tippy-desc"), Loc.GetString("cmd-tippy-help"), SendTippy, SendTippyHelper); + _conHost.RegisterCommand("tip", Loc.GetString("cmd-tip-desc"), "tip", SendTip); } + private CompletionResult SendTippyHelper(IConsoleShell shell, string[] args) + { + return args.Length switch + { + 1 => CompletionResult.FromHintOptions(CompletionHelper.SessionNames(), Loc.GetString("cmd-tippy-auto-1")), + 2 => CompletionResult.FromHint(Loc.GetString("cmd-tippy-auto-2")), + 3 => CompletionResult.FromHintOptions(CompletionHelper.PrototypeIDs(), Loc.GetString("cmd-tippy-auto-3")), + 4 => CompletionResult.FromHint(Loc.GetString("cmd-tippy-auto-4")), + 5 => CompletionResult.FromHint(Loc.GetString("cmd-tippy-auto-5")), + 6 => CompletionResult.FromHint(Loc.GetString("cmd-tippy-auto-6")), + _ => CompletionResult.Empty + }; + } + + private void SendTip(IConsoleShell shell, string argstr, string[] args) + { + AnnounceRandomTip(); + RecalculateNextTipTime(); + } + + private void SendTippy(IConsoleShell shell, string argstr, string[] args) + { + if (args.Length < 2) + { + shell.WriteLine(Loc.GetString("cmd-tippy-help")); + return; + } + + ActorComponent? actor = null; + if (args[0] != "all") + { + ICommonSession? session; + if (args.Length > 0) + { + // Get player entity + if (!_playerManager.TryGetSessionByUsername(args[0], out session)) + { + shell.WriteLine(Loc.GetString("cmd-tippy-error-no-user")); + return; + } + } + else + { + session = shell.Player; + } + + if (session?.AttachedEntity is not { } user) + { + shell.WriteLine(Loc.GetString("cmd-tippy-error-no-user")); + return; + } + + if (!TryComp(user, out actor)) + { + shell.WriteError(Loc.GetString("cmd-tippy-error-no-user")); + return; + } + } + + var ev = new TippyEvent(args[1]); + + if (args.Length > 2) + { + ev.Proto = args[2]; + if (!_prototype.HasIndex(args[2])) + { + shell.WriteError(Loc.GetString("cmd-tippy-error-no-prototype", ("proto", args[2]))); + return; + } + } + + if (args.Length > 3) + ev.SpeakTime = float.Parse(args[3]); + + if (args.Length > 4) + ev.SlideTime = float.Parse(args[4]); + + if (args.Length > 5) + ev.WaddleInterval = float.Parse(args[5]); + + if (actor != null) + RaiseNetworkEvent(ev, actor.PlayerSession); + else + RaiseNetworkEvent(ev); + } + + public override void Update(float frameTime) { base.Update(frameTime); @@ -81,6 +178,11 @@ private void SetDataset(string value) _tipsDataset = value; } + private void SetTippyChance(float value) + { + _tipTippyChance = value; + } + private void AnnounceRandomTip() { if (!_prototype.TryIndex(_tipsDataset, out var tips)) @@ -89,8 +191,16 @@ private void AnnounceRandomTip() var tip = _random.Pick(tips.Values); var msg = Loc.GetString("tips-system-chat-message-wrap", ("tip", tip)); - _chat.ChatMessageToManyFiltered(Filter.Broadcast(), ChatChannel.OOC, tip, msg, + if (_random.Prob(_tipTippyChance)) + { + var ev = new TippyEvent(msg); + ev.SpeakTime = 1 + tip.Length * 0.05f; + RaiseNetworkEvent(ev); + } else + { + _chat.ChatMessageToManyFiltered(Filter.Broadcast(), ChatChannel.OOC, tip, msg, EntityUid.Invalid, false, false, Color.MediumPurple); + } } private void RecalculateNextTipTime() diff --git a/Content.Server/Tools/Components/WelderComponent.cs b/Content.Server/Tools/Components/WelderComponent.cs deleted file mode 100644 index b0db2c58e8..0000000000 --- a/Content.Server/Tools/Components/WelderComponent.cs +++ /dev/null @@ -1,56 +0,0 @@ -using Content.Shared.Chemistry.Components; -using Content.Shared.Chemistry.Reagent; -using Content.Shared.FixedPoint; -using Content.Shared.Tools.Components; -using Robust.Shared.Audio; -using Robust.Shared.Prototypes; - -namespace Content.Server.Tools.Components -{ - [RegisterComponent] - public sealed partial class WelderComponent : SharedWelderComponent - { - /// - /// Name of . - /// - [DataField("fuelSolution"), ViewVariables(VVAccess.ReadWrite)] - public string FuelSolutionName = "Welder"; - - /// - /// Solution on the entity that contains the fuel. - /// - [DataField("fuelSolutionRef")] - public Entity? FuelSolution = null; - - /// - /// Reagent that will be used as fuel for welding. - /// - [DataField, ViewVariables(VVAccess.ReadWrite)] - public ProtoId FuelReagent = "WeldingFuel"; - - /// - /// Fuel consumption per second while the welder is active. - /// - [DataField, ViewVariables(VVAccess.ReadWrite)] - public FixedPoint2 FuelConsumption = FixedPoint2.New(2.0f); - - /// - /// A fuel amount to be consumed when the welder goes from being unlit to being lit. - /// - [DataField, ViewVariables(VVAccess.ReadWrite)] - public FixedPoint2 FuelLitCost = FixedPoint2.New(0.5f); - - /// - /// Sound played when refilling the welder. - /// - [DataField] - public SoundSpecifier WelderRefill = new SoundPathSpecifier("/Audio/Effects/refill.ogg"); - - /// - /// Whether the item is safe to refill while lit without exploding the tank. - /// - [DataField] - public bool TankSafe = false; //I have no idea what I'm doing - - } -} diff --git a/Content.Server/Tools/ToolSystem.Welder.cs b/Content.Server/Tools/ToolSystem.Welder.cs deleted file mode 100644 index 727526b398..0000000000 --- a/Content.Server/Tools/ToolSystem.Welder.cs +++ /dev/null @@ -1,211 +0,0 @@ -using Content.Server.Chemistry.Components; -using Content.Server.IgnitionSource; -using Content.Server.Tools.Components; -using Content.Shared.Chemistry.Components.SolutionManager; -using Content.Shared.Database; -using Content.Shared.DoAfter; -using Content.Shared.Examine; -using Content.Shared.FixedPoint; -using Content.Shared.Interaction; -using Content.Shared.Item.ItemToggle; -using Content.Shared.Tools.Components; -using Robust.Shared.GameStates; -using System.Linq; -using Content.Shared.Item.ItemToggle.Components; - -namespace Content.Server.Tools -{ - public sealed partial class ToolSystem - { - [Dependency] private readonly SharedItemToggleSystem _itemToggle = default!; - [Dependency] private readonly IgnitionSourceSystem _ignitionSource = default!; - private readonly HashSet _activeWelders = new(); - - private const float WelderUpdateTimer = 1f; - private float _welderTimer; - - public void InitializeWelders() - { - SubscribeLocalEvent(OnWelderExamine); - SubscribeLocalEvent(OnWelderAfterInteract); - SubscribeLocalEvent>(OnWelderToolUseAttempt); - SubscribeLocalEvent(OnWelderShutdown); - SubscribeLocalEvent(OnWelderGetState); - SubscribeLocalEvent(OnToggle); - SubscribeLocalEvent(OnActivateAttempt); - } - - public (FixedPoint2 fuel, FixedPoint2 capacity) GetWelderFuelAndCapacity(EntityUid uid, WelderComponent? welder = null, SolutionContainerManagerComponent? solutionContainer = null) - { - if (!Resolve(uid, ref welder, ref solutionContainer) - || !_solutionContainer.ResolveSolution((uid, solutionContainer), welder.FuelSolutionName, ref welder.FuelSolution, out var fuelSolution)) - return (FixedPoint2.Zero, FixedPoint2.Zero); - - return (fuelSolution.GetTotalPrototypeQuantity(welder.FuelReagent), fuelSolution.MaxVolume); - } - - private void OnToggle(Entity entity, ref ItemToggledEvent args) - { - if (args.Activated) - TurnOn(entity, args.User); - else - TurnOff(entity, args.User); - } - - private void OnActivateAttempt(Entity entity, ref ItemToggleActivateAttemptEvent args) - { - if (!_solutionContainer.ResolveSolution(entity.Owner, entity.Comp.FuelSolutionName, ref entity.Comp.FuelSolution, out var solution)) - { - args.Cancelled = true; - args.Popup = Loc.GetString("welder-component-no-fuel-message"); - return; - } - - var fuel = solution.GetTotalPrototypeQuantity(entity.Comp.FuelReagent); - if (fuel == FixedPoint2.Zero || fuel < entity.Comp.FuelLitCost) - { - args.Popup = Loc.GetString("welder-component-no-fuel-message"); - args.Cancelled = true; - } - } - - public void TurnOn(Entity entity, EntityUid? user) - { - if (!_solutionContainer.ResolveSolution(entity.Owner, entity.Comp.FuelSolutionName, ref entity.Comp.FuelSolution)) - return; - - _solutionContainer.RemoveReagent(entity.Comp.FuelSolution.Value, entity.Comp.FuelReagent, entity.Comp.FuelLitCost); - AdminLogger.Add(LogType.InteractActivate, LogImpact.Low, - $"{ToPrettyString(user):user} toggled {ToPrettyString(entity.Owner):welder} on"); - - var xform = Transform(entity); - if (xform.GridUid is { } gridUid) - { - var position = _transformSystem.GetGridOrMapTilePosition(entity.Owner, xform); - _atmosphereSystem.HotspotExpose(gridUid, position, 700, 50, entity.Owner, true); - } - - _activeWelders.Add(entity); - } - - public void TurnOff(Entity entity, EntityUid? user) - { - AdminLogger.Add(LogType.InteractActivate, LogImpact.Low, - $"{ToPrettyString(user):user} toggled {ToPrettyString(entity.Owner):welder} off"); - _activeWelders.Remove(entity); - } - - private void OnWelderExamine(Entity entity, ref ExaminedEvent args) - { - using (args.PushGroup(nameof(WelderComponent))) - { - if (_itemToggle.IsActivated(entity.Owner)) - { - args.PushMarkup(Loc.GetString("welder-component-on-examine-welder-lit-message")); - } - else - { - args.PushMarkup(Loc.GetString("welder-component-on-examine-welder-not-lit-message")); - } - - if (args.IsInDetailsRange) - { - var (fuel, capacity) = GetWelderFuelAndCapacity(entity.Owner, entity.Comp); - - args.PushMarkup(Loc.GetString("welder-component-on-examine-detailed-message", - ("colorName", fuel < capacity / FixedPoint2.New(4f) ? "darkorange" : "orange"), - ("fuelLeft", fuel), - ("fuelCapacity", capacity), - ("status", string.Empty))); // Lit status is handled above - } - } - } - - private void OnWelderAfterInteract(Entity entity, ref AfterInteractEvent args) - { - if (args.Handled) - return; - - if (args.Target is not { Valid: true } target || !args.CanReach) - return; - - if (TryComp(target, out ReagentTankComponent? tank) - && tank.TankType == ReagentTankType.Fuel - && _solutionContainer.TryGetDrainableSolution(target, out var targetSoln, out var targetSolution) - && _solutionContainer.ResolveSolution(entity.Owner, entity.Comp.FuelSolutionName, ref entity.Comp.FuelSolution, out var welderSolution)) - { - var trans = FixedPoint2.Min(welderSolution.AvailableVolume, targetSolution.Volume); - if (trans > 0) - { - var drained = _solutionContainer.Drain(target, targetSoln.Value, trans); - _solutionContainer.TryAddSolution(entity.Comp.FuelSolution.Value, drained); - _audio.PlayPvs(entity.Comp.WelderRefill, entity); - _popup.PopupEntity(Loc.GetString("welder-component-after-interact-refueled-message"), entity, args.User); - } - else if (welderSolution.AvailableVolume <= 0) - { - _popup.PopupEntity(Loc.GetString("welder-component-already-full"), entity, args.User); - } - else - { - _popup.PopupEntity(Loc.GetString("welder-component-no-fuel-in-tank", ("owner", args.Target)), entity, args.User); - } - - args.Handled = true; - } - } - - private void OnWelderToolUseAttempt(Entity entity, ref DoAfterAttemptEvent args) - { - var user = args.DoAfter.Args.User; - - if (!_itemToggle.IsActivated(entity.Owner)) - { - _popup.PopupEntity(Loc.GetString("welder-component-welder-not-lit-message"), entity, user); - args.Cancel(); - } - } - - private void OnWelderShutdown(Entity entity, ref ComponentShutdown args) - { - _activeWelders.Remove(entity); - } - - private void OnWelderGetState(Entity entity, ref ComponentGetState args) - { - var (fuel, capacity) = GetWelderFuelAndCapacity(entity.Owner, entity.Comp); - args.State = new WelderComponentState(capacity.Float(), fuel.Float()); - } - - private void UpdateWelders(float frameTime) - { - _welderTimer += frameTime; - - if (_welderTimer < WelderUpdateTimer) - return; - - // TODO Serialization. _activeWelders is not serialized. - // Need to use some "active" component, and EntityQuery over that. - // Probably best to generalize it to a "ToggleableFuelDrain" component. - foreach (var tool in _activeWelders.ToArray()) - { - if (!TryComp(tool, out WelderComponent? welder) - || !TryComp(tool, out SolutionContainerManagerComponent? solutionContainer)) - continue; - - if (!_solutionContainer.ResolveSolution((tool, solutionContainer), welder.FuelSolutionName, ref welder.FuelSolution, out var solution)) - continue; - - _solutionContainer.RemoveReagent(welder.FuelSolution.Value, welder.FuelReagent, welder.FuelConsumption * _welderTimer); - - if (solution.GetTotalPrototypeQuantity(welder.FuelReagent) <= FixedPoint2.Zero) - { - _itemToggle.Toggle(tool, predicted: false); - } - - Dirty(tool, welder); - } - _welderTimer -= WelderUpdateTimer; - } - } -} diff --git a/Content.Server/Tools/ToolSystem.cs b/Content.Server/Tools/ToolSystem.cs index 7bae177892..7738a6398f 100644 --- a/Content.Server/Tools/ToolSystem.cs +++ b/Content.Server/Tools/ToolSystem.cs @@ -1,40 +1,63 @@ using Content.Server.Atmos.EntitySystems; -using Content.Server.Chemistry.Containers.EntitySystems; -using Content.Server.Popups; -using Content.Server.Tools.Components; +using Content.Shared.Chemistry.Components.SolutionManager; +using Content.Shared.FixedPoint; +using Content.Shared.Tools.Components; using Robust.Server.GameObjects; -using Robust.Shared.Audio.Systems; using SharedToolSystem = Content.Shared.Tools.Systems.SharedToolSystem; -namespace Content.Server.Tools +namespace Content.Server.Tools; + +public sealed class ToolSystem : SharedToolSystem { - // TODO move tool system to shared, and make it a friend of Tool Component. - public sealed partial class ToolSystem : SharedToolSystem - { - [Dependency] private readonly AtmosphereSystem _atmosphereSystem = default!; - [Dependency] private readonly PopupSystem _popup = default!; - [Dependency] private readonly SharedAudioSystem _audio = default!; - [Dependency] private readonly SolutionContainerSystem _solutionContainer = default!; - [Dependency] private readonly TransformSystem _transformSystem = default!; + [Dependency] private readonly AtmosphereSystem _atmosphereSystem = default!; + [Dependency] private readonly TransformSystem _transformSystem = default!; - public override void Initialize() + public override void TurnOn(Entity entity, EntityUid? user) + { + base.TurnOn(entity, user); + var xform = Transform(entity); + if (xform.GridUid is { } gridUid) { - base.Initialize(); - - InitializeWelders(); + var position = _transformSystem.GetGridOrMapTilePosition(entity.Owner, xform); + _atmosphereSystem.HotspotExpose(gridUid, position, 700, 50, entity.Owner, true); } + } - public override void Update(float frameTime) - { - base.Update(frameTime); + public override void Update(float frameTime) + { + base.Update(frameTime); - UpdateWelders(frameTime); - } + UpdateWelders(frameTime); + } - protected override bool IsWelder(EntityUid uid) + //todo move to shared once you can remove reagents from shared without it freaking out. + private void UpdateWelders(float frameTime) + { + var query = EntityQueryEnumerator(); + while (query.MoveNext(out var uid, out var welder, out var solutionContainer)) { - return HasComp(uid); + if (!welder.Enabled) + continue; + + welder.WelderTimer += frameTime; + + if (welder.WelderTimer < welder.WelderUpdateTimer) + continue; + + if (!SolutionContainerSystem.TryGetSolution((uid, solutionContainer), welder.FuelSolutionName, out var solutionComp, out var solution)) + continue; + + SolutionContainerSystem.RemoveReagent(solutionComp.Value, welder.FuelReagent, welder.FuelConsumption * welder.WelderTimer); + + if (solution.GetTotalPrototypeQuantity(welder.FuelReagent) <= FixedPoint2.Zero) + { + ItemToggle.Toggle(uid, predicted: false); + } + + Dirty(uid, welder); + welder.WelderTimer -= welder.WelderUpdateTimer; } } } + diff --git a/Content.Server/Traitor/Uplink/Commands/AddUplinkCommand.cs b/Content.Server/Traitor/Uplink/Commands/AddUplinkCommand.cs index 79192f6b49..63be36b360 100644 --- a/Content.Server/Traitor/Uplink/Commands/AddUplinkCommand.cs +++ b/Content.Server/Traitor/Uplink/Commands/AddUplinkCommand.cs @@ -12,7 +12,6 @@ namespace Content.Server.Traitor.Uplink.Commands [AdminCommand(AdminFlags.Admin)] public sealed class AddUplinkCommand : IConsoleCommand { - [Dependency] private readonly IConfigurationManager _cfgManager = default!; [Dependency] private readonly IEntityManager _entManager = default!; [Dependency] private readonly IPlayerManager _playerManager = default!; diff --git a/Content.Server/Traits/Assorted/ForeignerTraitComponent.cs b/Content.Server/Traits/Assorted/ForeignerTraitComponent.cs index 756f44e742..a35972f1c8 100644 --- a/Content.Server/Traits/Assorted/ForeignerTraitComponent.cs +++ b/Content.Server/Traits/Assorted/ForeignerTraitComponent.cs @@ -13,7 +13,7 @@ public sealed partial class ForeignerTraitComponent : Component { /// /// The "base" language that is to be removed and substituted with a translator. - /// By default, equals to the fallback language, which is GalacticCommon. + /// By default, equals to the fallback language, which is TauCetiBasic. /// [DataField] public ProtoId BaseLanguage = SharedLanguageSystem.FallbackLanguagePrototype; diff --git a/Content.Server/Traits/Assorted/ForeignerTraitSystem.cs b/Content.Server/Traits/Assorted/ForeignerTraitSystem.cs index 58e974227c..ce9fb51a03 100644 --- a/Content.Server/Traits/Assorted/ForeignerTraitSystem.cs +++ b/Content.Server/Traits/Assorted/ForeignerTraitSystem.cs @@ -38,7 +38,7 @@ private void OnSpawn(Entity entity, ref ComponentInit a } var alternateLanguage = knowledge.SpokenLanguages.Find(it => it != entity.Comp.BaseLanguage); - if (alternateLanguage == null) + if (alternateLanguage == default) { Log.Warning($"Entity {entity.Owner} does not have an alternative language to choose from (must have at least one non-GC for ForeignerTrait)!"); return; @@ -46,12 +46,12 @@ private void OnSpawn(Entity entity, ref ComponentInit a if (TryGiveTranslator(entity.Owner, entity.Comp.BaseTranslator, entity.Comp.BaseLanguage, alternateLanguage, out var translator)) { - _languages.RemoveLanguage(entity, entity.Comp.BaseLanguage, entity.Comp.CantSpeak, entity.Comp.CantUnderstand, knowledge); + _languages.RemoveLanguage(entity.Owner, entity.Comp.BaseLanguage, entity.Comp.CantSpeak, entity.Comp.CantUnderstand); } } /// - /// Tries to create and give the entity a translator to translator that translates speech between the two specified languages. + /// Tries to create and give the entity a translator that translates speech between the two specified languages. /// public bool TryGiveTranslator( EntityUid uid, diff --git a/Content.Server/Traits/Assorted/LanguageKnowledgeModifierComponent.cs b/Content.Server/Traits/Assorted/LanguageKnowledgeModifierComponent.cs deleted file mode 100644 index 170dae40fa..0000000000 --- a/Content.Server/Traits/Assorted/LanguageKnowledgeModifierComponent.cs +++ /dev/null @@ -1,23 +0,0 @@ -using Content.Shared.Language; -using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype.List; - -namespace Content.Server.Traits.Assorted; - -/// -/// Used for traits that modify entities' language knowledge. -/// -[RegisterComponent] -public sealed partial class LanguageKnowledgeModifierComponent : Component -{ - /// - /// List of languages this entity will learn to speak. - /// - [DataField("speaks")] - public List NewSpokenLanguages = new(); - - /// - /// List of languages this entity will learn to understand. - /// - [DataField("understands")] - public List NewUnderstoodLanguages = new(); -} diff --git a/Content.Server/Traits/Assorted/LanguageKnowledgeModifierSystem.cs b/Content.Server/Traits/Assorted/LanguageKnowledgeModifierSystem.cs deleted file mode 100644 index 9053c9404f..0000000000 --- a/Content.Server/Traits/Assorted/LanguageKnowledgeModifierSystem.cs +++ /dev/null @@ -1,35 +0,0 @@ -using System.Linq; -using Content.Server.Language; -using Content.Shared.Language.Components; - -namespace Content.Server.Traits.Assorted; - -public sealed class LanguageKnowledgeModifierSystem : EntitySystem -{ - [Dependency] private readonly LanguageSystem _languages = default!; - - public override void Initialize() - { - base.Initialize(); - SubscribeLocalEvent(OnStartup); - } - - private void OnStartup(Entity entity, ref ComponentInit args) - { - if (!TryComp(entity, out var knowledge)) - { - Log.Warning($"Entity {entity.Owner} does not have a LanguageKnowledge but has a LanguageKnowledgeModifier!"); - return; - } - - foreach (var spokenLanguage in entity.Comp.NewSpokenLanguages) - { - _languages.AddLanguage(entity, spokenLanguage, true, false, knowledge); - } - - foreach (var understoodLanguage in entity.Comp.NewUnderstoodLanguages) - { - _languages.AddLanguage(entity, understoodLanguage, false, true, knowledge); - } - } -} diff --git a/Content.Server/Traits/Assorted/LayingDownModifierSystem.cs b/Content.Server/Traits/Assorted/LayingDownModifierSystem.cs index 7d2c16e3c4..8c47d65233 100644 --- a/Content.Server/Traits/Assorted/LayingDownModifierSystem.cs +++ b/Content.Server/Traits/Assorted/LayingDownModifierSystem.cs @@ -1,5 +1,5 @@ using Content.Server.Traits.Assorted; -using Content.Shared._White.Standing; +using Content.Shared.Standing; namespace Content.Shared.Traits.Assorted.Systems; @@ -17,6 +17,6 @@ private void OnStartup(EntityUid uid, LayingDownModifierComponent component, Com return; layingDown.StandingUpTime *= component.LayingDownCooldownMultiplier; - layingDown.SpeedModify *= component.DownedSpeedMultiplierMultiplier; + layingDown.LyingSpeedModifier *= component.DownedSpeedMultiplierMultiplier; } } diff --git a/Content.Server/Traits/Assorted/ModifyMoodTraitComponent.cs b/Content.Server/Traits/Assorted/ModifyMoodTraitComponent.cs deleted file mode 100644 index f9ae3b36f3..0000000000 --- a/Content.Server/Traits/Assorted/ModifyMoodTraitComponent.cs +++ /dev/null @@ -1,11 +0,0 @@ -namespace Content.Shared.Traits.Assorted.Components; - -/// -/// Used for traits that add a starting moodlet. -/// -[RegisterComponent] -public sealed partial class MoodModifyTraitComponent : Component -{ - [DataField] - public string? MoodId = null; -} diff --git a/Content.Server/Traits/Assorted/NarcolepsyComponent.cs b/Content.Server/Traits/Assorted/NarcolepsyComponent.cs index efa3458495..d18d35f22c 100644 --- a/Content.Server/Traits/Assorted/NarcolepsyComponent.cs +++ b/Content.Server/Traits/Assorted/NarcolepsyComponent.cs @@ -20,5 +20,21 @@ public sealed partial class NarcolepsyComponent : Component [DataField("durationOfIncident", required: true)] public Vector2 DurationOfIncident { get; private set; } + [DataField] public float NextIncidentTime; + + /// + /// Locales for popups shown when the entity is about to fall asleep/is waking up. + /// They are fetched in the format of "(base)-(random number between 1 and count)", e.g. "narcolepsy-warning-popup-3". + /// + [DataField] + public string WarningLocaleBase = "narcolepsy-warning-popup", WakeupLocaleBase = "narcolepsy-wakeup-popup"; + + [DataField] + public int WarningLocaleCount = 5, WakeupLocaleCount = 3; + + [DataField] + public float TimeBeforeWarning = 20f, WarningChancePerSecond = 0.25f; + + public float LastWarningRollTime = float.MaxValue; } diff --git a/Content.Server/Traits/Assorted/NarcolepsySystem.cs b/Content.Server/Traits/Assorted/NarcolepsySystem.cs index e4fa1ccbc7..1a6e6d92bc 100644 --- a/Content.Server/Traits/Assorted/NarcolepsySystem.cs +++ b/Content.Server/Traits/Assorted/NarcolepsySystem.cs @@ -1,5 +1,9 @@ +using Content.Server.Chat.Managers; using Content.Shared.Bed.Sleep; +using Content.Shared.Chat; +using Content.Shared.Popups; using Content.Shared.StatusEffect; +using Robust.Shared.Player; using Robust.Shared.Random; namespace Content.Server.Traits.Assorted; @@ -12,6 +16,8 @@ public sealed class NarcolepsySystem : EntitySystem [ValidatePrototypeId] private const string StatusEffectKey = "ForcedSleep"; // Same one used by N2O and other sleep chems. + [Dependency] private readonly IChatManager _chatMan = default!; + [Dependency] private readonly SharedPopupSystem _popups = default!; [Dependency] private readonly StatusEffectsSystem _statusEffects = default!; [Dependency] private readonly IRobustRandom _random = default!; @@ -19,20 +25,38 @@ public sealed class NarcolepsySystem : EntitySystem public override void Initialize() { SubscribeLocalEvent(SetupNarcolepsy); + SubscribeLocalEvent(OnSleepChanged); } private void SetupNarcolepsy(EntityUid uid, NarcolepsyComponent component, ComponentStartup args) { - component.NextIncidentTime = - _random.NextFloat(component.TimeBetweenIncidents.X, component.TimeBetweenIncidents.Y); + PrepareNextIncident((uid, component)); } - public void AdjustNarcolepsyTimer(EntityUid uid, int TimerReset, NarcolepsyComponent? narcolepsy = null) + private void OnSleepChanged(Entity ent, ref SleepStateChangedEvent args) { - if (!Resolve(uid, ref narcolepsy, false)) + // When falling asleep while an incident is nigh, force it to happen immediately. + if (args.FellAsleep) + { + if (ent.Comp.NextIncidentTime < ent.Comp.TimeBeforeWarning) + StartIncident(ent); + return; + } + + // When waking up after sleeping for at least the minimum time of an incident, reset the incident timer and show a popup. + if (args.TimeSlept is null || args.TimeSlept.Value.TotalSeconds < ent.Comp.DurationOfIncident.X) return; - narcolepsy.NextIncidentTime = TimerReset; + ShowRandomPopup(ent, ent.Comp.WakeupLocaleBase, ent.Comp.WakeupLocaleCount); + PrepareNextIncident(ent); + } + + public void AdjustNarcolepsyTimer(EntityUid uid, float setTime, NarcolepsyComponent? narcolepsy = null) + { + if (!Resolve(uid, ref narcolepsy, false) || narcolepsy.NextIncidentTime > setTime) + return; + + narcolepsy.NextIncidentTime = setTime; } public override void Update(float frameTime) @@ -42,22 +66,52 @@ public override void Update(float frameTime) var query = EntityQueryEnumerator(); while (query.MoveNext(out var uid, out var narcolepsy)) { + if (HasComp(uid)) + continue; + narcolepsy.NextIncidentTime -= frameTime; + if (narcolepsy.NextIncidentTime <= narcolepsy.TimeBeforeWarning && narcolepsy.NextIncidentTime < narcolepsy.LastWarningRollTime - 1f) + { + // Roll for showing a popup. There should really be a class for doing this. + narcolepsy.LastWarningRollTime = narcolepsy.NextIncidentTime; + if (_random.Prob(narcolepsy.WarningChancePerSecond)) + { + ShowRandomPopup(uid, narcolepsy.WarningLocaleBase, narcolepsy.WakeupLocaleCount); + narcolepsy.LastWarningRollTime = 0f; // Do not show any more popups for the upcoming incident + } + } if (narcolepsy.NextIncidentTime >= 0) continue; - // Set the new time. - narcolepsy.NextIncidentTime += - _random.NextFloat(narcolepsy.TimeBetweenIncidents.X, narcolepsy.TimeBetweenIncidents.Y); + StartIncident((uid, narcolepsy)); + } + } - var duration = _random.NextFloat(narcolepsy.DurationOfIncident.X, narcolepsy.DurationOfIncident.Y); + public void StartIncident(Entity ent) + { + var duration = _random.NextFloat(ent.Comp.DurationOfIncident.X, ent.Comp.DurationOfIncident.Y); + PrepareNextIncident(ent, duration); - // Make sure the sleep time doesn't cut into the time to next incident. - narcolepsy.NextIncidentTime += duration; + _statusEffects.TryAddStatusEffect(ent, StatusEffectKey, TimeSpan.FromSeconds(duration), false); + } - _statusEffects.TryAddStatusEffect(uid, StatusEffectKey, - TimeSpan.FromSeconds(duration), false); - } + private void PrepareNextIncident(Entity ent, float startingFrom = 0f) + { + var time = _random.NextFloat(ent.Comp.TimeBetweenIncidents.X, ent.Comp.TimeBetweenIncidents.Y); + ent.Comp.NextIncidentTime = startingFrom + time; + ent.Comp.LastWarningRollTime = float.MaxValue; + } + + private void ShowRandomPopup(EntityUid uid, string prefix, int count) + { + if (count <= 0 || !TryComp(uid, out var actor)) + return; + + var popup = Loc.GetString($"{prefix}-{_random.Next(1, count + 1)}"); + _popups.PopupEntity(popup, uid, uid, PopupType.MediumCaution); + // This should use ChatChannel.Visual, but it's not displayed on the client. + _chatMan.ChatMessageToOne(ChatChannel.Notifications, popup, popup, uid, false, + actor.PlayerSession.Channel, Color.IndianRed); } } diff --git a/Content.Server/Traits/Assorted/PotentiaModifierComponent.cs b/Content.Server/Traits/Assorted/PotentiaModifierComponent.cs new file mode 100644 index 0000000000..2ddfd633b9 --- /dev/null +++ b/Content.Server/Traits/Assorted/PotentiaModifierComponent.cs @@ -0,0 +1,20 @@ +namespace Content.Server.Traits.Assorted; + +/// +/// This is used for traits that modify the outcome of Potentia Rolls +/// +[RegisterComponent] +public sealed partial class PotentiaModifierComponent : Component +{ + /// + /// When rolling for psionic powers, increase the potentia gains by a flat amount. + /// + [DataField] + public float PotentiaFlatModifier = 0; + + /// + /// When rolling for psionic powers, multiply the potentia gains by a specific factor. + /// + [DataField] + public float PotentiaMultiplier = 1; +} diff --git a/Content.Server/Traits/Assorted/PotentiaModifierSystem.cs b/Content.Server/Traits/Assorted/PotentiaModifierSystem.cs new file mode 100644 index 0000000000..f05f788a08 --- /dev/null +++ b/Content.Server/Traits/Assorted/PotentiaModifierSystem.cs @@ -0,0 +1,19 @@ +using Content.Server.Psionics; + +namespace Content.Server.Traits.Assorted; +public sealed partial class PotentiaModifierSystem : EntitySystem +{ + public override void Initialize() + { + base.Initialize(); + SubscribeLocalEvent(OnRollPsionics); + } + + private void OnRollPsionics(EntityUid uid, PotentiaModifierComponent component, ref OnRollPsionicsEvent args) + { + if (uid != args.Roller) + return; + + args.BaselineChance = args.BaselineChance * component.PotentiaMultiplier + component.PotentiaFlatModifier; + } +} diff --git a/Content.Server/Traits/Assorted/SingerSystem.cs b/Content.Server/Traits/Assorted/SingerSystem.cs index 7b560957b6..78a4101a65 100644 --- a/Content.Server/Traits/Assorted/SingerSystem.cs +++ b/Content.Server/Traits/Assorted/SingerSystem.cs @@ -65,9 +65,7 @@ private void OnEquip(GotEquippedEvent args) if (TryComp(args.Equipment, out var accent) && accent.ReplacementPrototype == "mumble" && args.Slot == "mask") - { CloseMidiUi(args.Equipee); - } } private void OnMobStateChangedEvent(EntityUid uid, SharedInstrumentComponent component, MobStateChangedEvent args) @@ -154,8 +152,6 @@ public override void CloseMidiUi(EntityUid uid) { if (HasComp(uid) && TryComp(uid, out var actor)) - { - _instrument.ToggleInstrumentUi(uid, actor.PlayerSession); - } + _instrument.ToggleInstrumentUi(uid, actor.PlayerSession.AttachedEntity ?? EntityUid.Invalid); } } diff --git a/Content.Server/Traits/BloodDeficiencyComponent.cs b/Content.Server/Traits/BloodDeficiencyComponent.cs index 616f60cd83..ce438278f7 100644 --- a/Content.Server/Traits/BloodDeficiencyComponent.cs +++ b/Content.Server/Traits/BloodDeficiencyComponent.cs @@ -7,8 +7,14 @@ namespace Content.Server.Traits.Assorted; public sealed partial class BloodDeficiencyComponent : Component { // - // How much reagent of blood should be removed in each update interval? + /// How much percentage of max blood volume should be removed in each update interval? // [DataField(required: true)] - public float BloodLossAmount; + public float BloodLossPercentage; + + /// + /// Whether the effects of this trait should be active. + /// + [DataField] + public bool Active = true; } diff --git a/Content.Server/Traits/BloodDeficiencySystem.cs b/Content.Server/Traits/BloodDeficiencySystem.cs index f1ae490995..8928bc57a1 100644 --- a/Content.Server/Traits/BloodDeficiencySystem.cs +++ b/Content.Server/Traits/BloodDeficiencySystem.cs @@ -1,23 +1,24 @@ -using Content.Server.Body.Systems; using Content.Server.Body.Components; -using Content.Shared.Damage; +using Content.Server.Body.Events; +using Content.Server.Traits.Assorted; +using Content.Shared.FixedPoint; -namespace Content.Server.Traits.Assorted; +namespace Content.Server.Traits; public sealed class BloodDeficiencySystem : EntitySystem { public override void Initialize() { base.Initialize(); - SubscribeLocalEvent(OnStartup); + SubscribeLocalEvent(OnBloodRegen); } - private void OnStartup(EntityUid uid, BloodDeficiencyComponent component, ComponentStartup args) + private void OnBloodRegen(Entity ent, ref NaturalBloodRegenerationAttemptEvent args) { - if (!TryComp(uid, out var bloodstream)) + if (!ent.Comp.Active || !TryComp(ent.Owner, out var bloodstream)) return; - bloodstream.HasBloodDeficiency = true; - bloodstream.BloodDeficiencyLossAmount = component.BloodLossAmount; + args.Amount = FixedPoint2.Min(args.Amount, 0) // If the blood regen amount already was negative, we keep it. + - bloodstream.BloodMaxVolume * ent.Comp.BloodLossPercentage; } } diff --git a/Content.Server/Traits/TraitSystem.cs b/Content.Server/Traits/TraitSystem.cs index d6f13cb52a..bd36b4ecef 100644 --- a/Content.Server/Traits/TraitSystem.cs +++ b/Content.Server/Traits/TraitSystem.cs @@ -12,6 +12,8 @@ using Robust.Shared.Utility; using Content.Server.Abilities.Psionics; using Content.Shared.Psionics; +using Content.Server.Language; +using Content.Shared.Mood; namespace Content.Server.Traits; @@ -25,6 +27,7 @@ public sealed class TraitSystem : EntitySystem [Dependency] private readonly SharedActionsSystem _actions = default!; [Dependency] private readonly PsionicAbilitiesSystem _psionicAbilities = default!; [Dependency] private readonly IComponentFactory _componentFactory = default!; + [Dependency] private readonly LanguageSystem _languageSystem = default!; public override void Initialize() { @@ -65,6 +68,9 @@ public void AddTrait(EntityUid uid, TraitPrototype traitPrototype) AddTraitComponents(uid, traitPrototype); AddTraitActions(uid, traitPrototype); AddTraitPsionics(uid, traitPrototype); + AddTraitLanguage(uid, traitPrototype); + RemoveTraitLanguage(uid, traitPrototype); + AddTraitMoodlets(uid, traitPrototype); } /// @@ -139,4 +145,84 @@ public void AddTraitPsionics(EntityUid uid, TraitPrototype traitPrototype) if (_prototype.TryIndex(powerProto, out var psionicPower)) _psionicAbilities.InitializePsionicPower(uid, psionicPower, false); } + + /// + /// Initialize languages given by a Trait. + /// + private void AddTraitLanguage(EntityUid uid, TraitPrototype traitPrototype) + { + AddTraitLanguagesSpoken(uid, traitPrototype); + AddTraitLanguagesUnderstood(uid, traitPrototype); + } + + /// + /// If a trait includes any Spoken Languages, this sends them to LanguageSystem to be initialized. + /// + public void AddTraitLanguagesSpoken(EntityUid uid, TraitPrototype traitPrototype) + { + if (traitPrototype.LanguagesSpoken is null) + return; + + foreach (var language in traitPrototype.LanguagesSpoken) + _languageSystem.AddLanguage(uid, language, true, false); + } + + /// + /// If a trait includes any Understood Languages, this sends them to LanguageSystem to be initialized. + /// + public void AddTraitLanguagesUnderstood(EntityUid uid, TraitPrototype traitPrototype) + { + if (traitPrototype.LanguagesUnderstood is null) + return; + + foreach (var language in traitPrototype.LanguagesUnderstood) + _languageSystem.AddLanguage(uid, language, false, true); + } + + /// + /// Remove Languages given by a Trait. + /// + private void RemoveTraitLanguage(EntityUid uid, TraitPrototype traitPrototype) + { + RemoveTraitLanguagesSpoken(uid, traitPrototype); + RemoveTraitLanguagesUnderstood(uid, traitPrototype); + } + + /// + /// Removes any Spoken Languages if defined by a trait. + /// + public void RemoveTraitLanguagesSpoken(EntityUid uid, TraitPrototype traitPrototype) + { + if (traitPrototype.RemoveLanguagesSpoken is null) + return; + + foreach (var language in traitPrototype.RemoveLanguagesSpoken) + _languageSystem.RemoveLanguage(uid, language, true, false); + } + + /// + /// Removes any Understood Languages if defined by a trait. + /// + public void RemoveTraitLanguagesUnderstood(EntityUid uid, TraitPrototype traitPrototype) + { + if (traitPrototype.RemoveLanguagesUnderstood is null) + return; + + foreach (var language in traitPrototype.RemoveLanguagesUnderstood) + _languageSystem.RemoveLanguage(uid, language, false, true); + } + + /// + /// If a trait includes any moodlets, this adds the moodlets to the receiving entity. + /// While I can't stop you, you shouldn't use this to add temporary moodlets. + /// + public void AddTraitMoodlets(EntityUid uid, TraitPrototype traitPrototype) + { + if (traitPrototype.MoodEffects is null) + return; + + foreach (var moodProto in traitPrototype.MoodEffects) + if (_prototype.TryIndex(moodProto, out var moodlet)) + RaiseLocalEvent(uid, new MoodEffectEvent(moodlet.ID)); + } } diff --git a/Content.Server/UserInterface/ActivatableUIComponent.cs b/Content.Server/UserInterface/ActivatableUIComponent.cs deleted file mode 100644 index cc0e5008e4..0000000000 --- a/Content.Server/UserInterface/ActivatableUIComponent.cs +++ /dev/null @@ -1,75 +0,0 @@ -using Content.Shared.Whitelist; -using Robust.Server.GameObjects; -using Robust.Server.Player; -using Robust.Shared.Player; -using Robust.Shared.Serialization.TypeSerializers.Implementations; - -namespace Content.Server.UserInterface -{ - [RegisterComponent] - public sealed partial class ActivatableUIComponent : Component - { - [DataField(required: true, customTypeSerializer:typeof(EnumSerializer))] - public Enum? Key { get; set; } - - [ViewVariables(VVAccess.ReadWrite)] - [DataField] - public bool InHandsOnly { get; set; } = false; - - [DataField] - public bool SingleUser { get; set; } = false; - - [ViewVariables(VVAccess.ReadWrite)] - [DataField] - public bool AdminOnly { get; set; } = false; - - [DataField] - public LocId VerbText = "ui-verb-toggle-open"; - - /// - /// Whether you need a hand to operate this UI. The hand does not need to be free, you just need to have one. - /// - /// - /// This should probably be true for most machines & computers, but there will still be UIs that represent a - /// more generic interaction / configuration that might not require hands. - /// - [ViewVariables(VVAccess.ReadWrite)] - [DataField] - public bool RequireHands = true; - - /// - /// Entities that are required to open this UI. - /// - [DataField("allowedItems")] - [ViewVariables(VVAccess.ReadWrite)] - public EntityWhitelist? AllowedItems = null; - - /// - /// Whether you can activate this ui with activateinhand or not - /// - [ViewVariables(VVAccess.ReadWrite)] - [DataField] - public bool RightClickOnly; - - /// - /// Whether spectators (non-admin ghosts) should be allowed to view this UI. - /// - [ViewVariables(VVAccess.ReadWrite)] - [DataField] - public bool AllowSpectator = true; - - /// - /// Whether the UI should close when the item is deselected due to a hand swap or drop - /// - [ViewVariables(VVAccess.ReadWrite)] - [DataField] - public bool CloseOnHandDeselect = true; - - /// - /// The client channel currently using the object, or null if there's none/not single user. - /// NOTE: DO NOT DIRECTLY SET, USE ActivatableUISystem.SetCurrentSingleUser - /// - [ViewVariables] - public ICommonSession? CurrentSingleUser; - } -} diff --git a/Content.Server/UserInterface/ActivatableUIRequiresPowerCellComponent.cs b/Content.Server/UserInterface/ActivatableUIRequiresPowerCellComponent.cs deleted file mode 100644 index fdc56f89a0..0000000000 --- a/Content.Server/UserInterface/ActivatableUIRequiresPowerCellComponent.cs +++ /dev/null @@ -1,14 +0,0 @@ -using Content.Server.PowerCell; -using Content.Shared.PowerCell; -using Content.Shared.UserInterface; - -namespace Content.Server.UserInterface; - -/// -/// Specifies that the attached entity requires power. -/// -[RegisterComponent] -public sealed partial class ActivatableUIRequiresPowerCellComponent : Component -{ - -} diff --git a/Content.Server/UserInterface/ActivatableUISystem.Power.cs b/Content.Server/UserInterface/ActivatableUISystem.Power.cs deleted file mode 100644 index d4dcc91d46..0000000000 --- a/Content.Server/UserInterface/ActivatableUISystem.Power.cs +++ /dev/null @@ -1,81 +0,0 @@ -using Content.Server.PowerCell; -using Content.Shared.PowerCell; -using Content.Shared.UserInterface; -using Robust.Shared.Containers; - -namespace Content.Server.UserInterface; - -public sealed partial class ActivatableUISystem -{ - [Dependency] private readonly PowerCellSystem _cell = default!; - - private void InitializePower() - { - SubscribeLocalEvent(OnBatteryOpenAttempt); - SubscribeLocalEvent(OnBatteryOpened); - SubscribeLocalEvent(OnBatteryClosed); - - SubscribeLocalEvent(OnPowerCellRemoved); - } - - private void OnPowerCellRemoved(EntityUid uid, PowerCellDrawComponent component, EntRemovedFromContainerMessage args) - { - _cell.SetPowerCellDrawEnabled(uid, false); - - if (HasComp(uid) && - TryComp(uid, out var activatable) && - activatable.Key != null) - { - _uiSystem.TryCloseAll(uid, activatable.Key); - } - } - - private void OnBatteryOpened(EntityUid uid, ActivatableUIRequiresPowerCellComponent component, BoundUIOpenedEvent args) - { - var activatable = Comp(uid); - - if (!args.UiKey.Equals(activatable.Key)) - return; - - _cell.SetPowerCellDrawEnabled(uid, true); - } - - private void OnBatteryClosed(EntityUid uid, ActivatableUIRequiresPowerCellComponent component, BoundUIClosedEvent args) - { - var activatable = Comp(uid); - - if (!args.UiKey.Equals(activatable.Key)) - return; - - // Stop drawing power if this was the last person with the UI open. - if (!_uiSystem.IsUiOpen(uid, activatable.Key)) - _cell.SetPowerCellDrawEnabled(uid, false); - } - - /// - /// Call if you want to check if the UI should close due to a recent battery usage. - /// - public void CheckUsage(EntityUid uid, ActivatableUIComponent? active = null, ActivatableUIRequiresPowerCellComponent? component = null, PowerCellDrawComponent? draw = null) - { - if (!Resolve(uid, ref component, ref draw, ref active, false) || active.Key == null) - return; - - if (_cell.HasCharge(uid, draw.UseRate)) - return; - - _uiSystem.TryCloseAll(uid, active.Key); - } - - private void OnBatteryOpenAttempt(EntityUid uid, ActivatableUIRequiresPowerCellComponent component, ActivatableUIOpenAttemptEvent args) - { - if (!TryComp(uid, out var draw)) - return; - - // Check if we have the appropriate drawrate / userate to even open it. - if (args.Cancelled || !_cell.HasCharge(uid, MathF.Max(draw.DrawRate, draw.UseRate), user: args.User)) - { - args.Cancel(); - return; - } - } -} diff --git a/Content.Server/UserInterface/ActivatableUISystem.cs b/Content.Server/UserInterface/ActivatableUISystem.cs deleted file mode 100644 index 5f2314df90..0000000000 --- a/Content.Server/UserInterface/ActivatableUISystem.cs +++ /dev/null @@ -1,235 +0,0 @@ -using Content.Server.Administration.Managers; -using Content.Shared.ActionBlocker; -using Content.Shared.Ghost; -using Content.Shared.Hands; -using Content.Shared.Hands.Components; -using Content.Shared.Interaction; -using Content.Shared.Interaction.Events; -using Content.Shared.Popups; -using Content.Shared.UserInterface; -using Content.Shared.Verbs; -using Robust.Server.GameObjects; -using Robust.Shared.Player; - -namespace Content.Server.UserInterface; - -public sealed partial class ActivatableUISystem : EntitySystem -{ - [Dependency] private readonly IAdminManager _adminManager = default!; - [Dependency] private readonly ActionBlockerSystem _blockerSystem = default!; - [Dependency] private readonly UserInterfaceSystem _uiSystem = default!; - [Dependency] private readonly SharedPopupSystem _popupSystem = default!; - - public override void Initialize() - { - base.Initialize(); - - SubscribeLocalEvent(OnActivate); - SubscribeLocalEvent(OnUseInHand); - SubscribeLocalEvent(OnInteractUsing); - SubscribeLocalEvent(OnHandDeselected); - SubscribeLocalEvent((uid, aui, _) => CloseAll(uid, aui)); - // *THIS IS A BLATANT WORKAROUND!* RATIONALE: Microwaves need it - SubscribeLocalEvent(OnParentChanged); - SubscribeLocalEvent(OnUIClose); - SubscribeLocalEvent(OnBoundInterfaceInteractAttempt); - - SubscribeLocalEvent>(AddOpenUiVerb); - - SubscribeLocalEvent(OnActionPerform); - - InitializePower(); - } - - private void OnBoundInterfaceInteractAttempt(BoundUserInterfaceMessageAttempt ev) - { - if (!TryComp(ev.Target, out ActivatableUIComponent? comp)) - return; - - if (!comp.RequireHands) - return; - - if (!TryComp(ev.Sender.AttachedEntity, out HandsComponent? hands) || hands.Hands.Count == 0) - ev.Cancel(); - } - - private void OnActionPerform(EntityUid uid, UserInterfaceComponent component, OpenUiActionEvent args) - { - if (args.Handled || args.Key == null) - return; - - if (!TryComp(args.Performer, out ActorComponent? actor)) - return; - - args.Handled = _uiSystem.TryToggleUi(uid, args.Key, actor.PlayerSession); - } - - private void AddOpenUiVerb(EntityUid uid, ActivatableUIComponent component, GetVerbsEvent args) - { - if (!args.CanAccess) - return; - - if (component.RequireHands && args.Hands == null) - return; - - if (component.InHandsOnly && args.Using != uid) - return; - - if (!args.CanInteract && (!component.AllowSpectator || !HasComp(args.User))) - return; - - ActivationVerb verb = new(); - verb.Act = () => InteractUI(args.User, uid, component); - verb.Text = Loc.GetString(component.VerbText); - // TODO VERBS add "open UI" icon? - args.Verbs.Add(verb); - } - - private void OnActivate(EntityUid uid, ActivatableUIComponent component, ActivateInWorldEvent args) - { - if (args.Handled) - return; - - if (component.InHandsOnly) - return; - - if (component.AllowedItems != null) - return; - - args.Handled = InteractUI(args.User, uid, component); - } - - private void OnUseInHand(EntityUid uid, ActivatableUIComponent component, UseInHandEvent args) - { - if (args.Handled) - return; - - if (component.RightClickOnly) - return; - - if (component.AllowedItems != null) - return; - - args.Handled = InteractUI(args.User, uid, component); - } - - private void OnInteractUsing(EntityUid uid, ActivatableUIComponent component, InteractUsingEvent args) - { - if (args.Handled) return; - if (component.AllowedItems == null) return; - if (!component.AllowedItems.IsValid(args.Used, EntityManager)) return; - args.Handled = InteractUI(args.User, uid, component); - } - - private void OnParentChanged(EntityUid uid, ActivatableUIComponent aui, ref EntParentChangedMessage args) - { - CloseAll(uid, aui); - } - - private void OnUIClose(EntityUid uid, ActivatableUIComponent component, BoundUIClosedEvent args) - { - if (args.Session != component.CurrentSingleUser) - return; - - if (!Equals(args.UiKey, component.Key)) - return; - - SetCurrentSingleUser(uid, null, component); - } - - private bool InteractUI(EntityUid user, EntityUid uiEntity, ActivatableUIComponent aui) - { - if (!TryComp(user, out ActorComponent? actor)) - return false; - - if (aui.Key == null) - return false; - - if (!_uiSystem.TryGetUi(uiEntity, aui.Key, out var ui)) - return false; - - if (ui.SubscribedSessions.Contains(actor.PlayerSession)) - { - _uiSystem.CloseUi(ui, actor.PlayerSession); - return true; - } - - if (!_blockerSystem.CanInteract(user, uiEntity) && (!aui.AllowSpectator || !HasComp(user))) - return false; - - if (aui.RequireHands && !HasComp(user)) - return false; - - if (aui.AdminOnly && !_adminManager.IsAdmin(actor.PlayerSession)) - return false; - - if (aui.SingleUser && (aui.CurrentSingleUser != null) && (actor.PlayerSession != aui.CurrentSingleUser)) - { - string message = Loc.GetString("machine-already-in-use", ("machine", uiEntity)); - _popupSystem.PopupEntity(message, uiEntity, user); - - // If we get here, supposedly, the object is in use. - // Check with BUI that it's ACTUALLY in use just in case. - // Since this could brick the object if it goes wrong. - if (ui.SubscribedSessions.Count != 0) - return false; - } - - // If we've gotten this far, fire a cancellable event that indicates someone is about to activate this. - // This is so that stuff can require further conditions (like power). - var oae = new ActivatableUIOpenAttemptEvent(user); - var uae = new UserOpenActivatableUIAttemptEvent(user, uiEntity); - RaiseLocalEvent(user, uae); - RaiseLocalEvent(uiEntity, oae); - if (oae.Cancelled || uae.Cancelled) - return false; - - // Give the UI an opportunity to prepare itself if it needs to do anything - // before opening - var bae = new BeforeActivatableUIOpenEvent(user); - RaiseLocalEvent(uiEntity, bae); - - SetCurrentSingleUser(uiEntity, actor.PlayerSession, aui); - _uiSystem.OpenUi(ui, actor.PlayerSession); - - //Let the component know a user opened it so it can do whatever it needs to do - var aae = new AfterActivatableUIOpenEvent(user, actor.PlayerSession); - RaiseLocalEvent(uiEntity, aae); - - return true; - } - - public void SetCurrentSingleUser(EntityUid uid, ICommonSession? v, ActivatableUIComponent? aui = null) - { - if (!Resolve(uid, ref aui)) - return; - if (!aui.SingleUser) - return; - - aui.CurrentSingleUser = v; - - RaiseLocalEvent(uid, new ActivatableUIPlayerChangedEvent()); - } - - public void CloseAll(EntityUid uid, ActivatableUIComponent? aui = null) - { - if (!Resolve(uid, ref aui, false)) - return; - - if (aui.Key == null || !_uiSystem.TryGetUi(uid, aui.Key, out var ui)) - return; - - _uiSystem.CloseAll(ui); - } - - private void OnHandDeselected(EntityUid uid, ActivatableUIComponent? aui, HandDeselectedEvent args) - { - if (!Resolve(uid, ref aui, false)) - return; - - if (!aui.CloseOnHandDeselect) - return; - - CloseAll(uid, aui); - } -} diff --git a/Content.Server/UserInterface/IntrinsicUIComponent.cs b/Content.Server/UserInterface/IntrinsicUIComponent.cs index 4d3c7ffba9..83936edc8c 100644 --- a/Content.Server/UserInterface/IntrinsicUIComponent.cs +++ b/Content.Server/UserInterface/IntrinsicUIComponent.cs @@ -9,18 +9,12 @@ public sealed partial class IntrinsicUIComponent : Component /// /// List of UIs and their actions that this entity has. /// - [DataField("uis", required: true)] public List UIs = new(); + [DataField("uis", required: true)] public Dictionary UIs = new(); } [DataDefinition] -public partial class IntrinsicUIEntry +public sealed partial class IntrinsicUIEntry { - /// - /// The BUI key that this intrinsic UI should open. - /// - [DataField("key", required: true)] - public Enum? Key { get; private set; } - [DataField("toggleAction", customTypeSerializer: typeof(PrototypeIdSerializer), required: true)] public string? ToggleAction; diff --git a/Content.Server/UserInterface/IntrinsicUISystem.cs b/Content.Server/UserInterface/IntrinsicUISystem.cs index fa725e524a..0f7261865d 100644 --- a/Content.Server/UserInterface/IntrinsicUISystem.cs +++ b/Content.Server/UserInterface/IntrinsicUISystem.cs @@ -18,50 +18,31 @@ public override void Initialize() private void OnActionToggle(EntityUid uid, IntrinsicUIComponent component, ToggleIntrinsicUIEvent args) { + if (args.Key == null) + return; + args.Handled = InteractUI(uid, args.Key, component); } private void InitActions(EntityUid uid, IntrinsicUIComponent component, MapInitEvent args) { - foreach (var entry in component.UIs) + foreach (var entry in component.UIs.Values) { _actionsSystem.AddAction(uid, ref entry.ToggleActionEntity, entry.ToggleAction); } } - public bool InteractUI(EntityUid uid, Enum? key, IntrinsicUIComponent? iui = null, ActorComponent? actor = null) + public bool InteractUI(EntityUid uid, Enum key, IntrinsicUIComponent? iui = null, ActorComponent? actor = null) { if (!Resolve(uid, ref iui, ref actor)) return false; - if (key is null) - { - Log.Error($"Entity {ToPrettyString(uid)} has an invalid intrinsic UI."); - } - - var ui = GetUIOrNull(uid, key, iui); - - if (ui is null) - { - Log.Error($"Couldn't get UI {key} on {ToPrettyString(uid)}"); - return false; - } - var attempt = new IntrinsicUIOpenAttemptEvent(uid, key); RaiseLocalEvent(uid, attempt); if (attempt.Cancelled) return false; - _uiSystem.ToggleUi(ui, actor.PlayerSession); - return true; - } - - private PlayerBoundUserInterface? GetUIOrNull(EntityUid uid, Enum? key, IntrinsicUIComponent? component = null) - { - if (!Resolve(uid, ref component)) - return null; - - return key is null ? null : _uiSystem.GetUiOrNull(uid, key); + return _uiSystem.TryToggleUi(uid, key, actor.PlayerSession); } } diff --git a/Content.Server/Vampire/BloodSuckerSystem.cs b/Content.Server/Vampire/BloodSuckerSystem.cs index a63334a894..41afe0d666 100644 --- a/Content.Server/Vampire/BloodSuckerSystem.cs +++ b/Content.Server/Vampire/BloodSuckerSystem.cs @@ -6,14 +6,15 @@ using Content.Shared.Inventory; using Content.Shared.Administration.Logs; using Content.Shared.Vampiric; +using Content.Shared.Cocoon; using Content.Server.Atmos.Components; using Content.Server.Body.Components; using Content.Server.Body.Systems; using Content.Shared.Chemistry.EntitySystems; using Content.Server.Popups; -using Content.Server.HealthExaminable; using Content.Server.DoAfter; using Content.Server.Nutrition.Components; +using Content.Shared.HealthExaminable; using Robust.Shared.Prototypes; using Robust.Shared.Audio.Systems; using Robust.Shared.Utility; @@ -45,23 +46,28 @@ public override void Initialize() private void AddSuccVerb(EntityUid uid, BloodSuckerComponent component, GetVerbsEvent args) { - if (args.User == args.Target) - return; - if (component.WebRequired) - return; // handled elsewhere - if (!TryComp(args.Target, out var bloodstream)) + + var victim = args.Target; + var ignoreClothes = false; + + if (TryComp(args.Target, out var cocoon)) + { + victim = cocoon.Victim ?? args.Target; + ignoreClothes = cocoon.Victim != null; + } else if (component.WebRequired) return; - if (!args.CanAccess) + + if (!TryComp(victim, out var bloodstream) || args.User == victim || !args.CanAccess) return; InnateVerb verb = new() { Act = () => { - StartSuccDoAfter(uid, args.Target, component, bloodstream); // start doafter + StartSuccDoAfter(uid, victim, component, bloodstream, !ignoreClothes); // start doafter }, Text = Loc.GetString("action-name-suck-blood"), - Icon = new SpriteSpecifier.Texture(new ("/Textures/Nyanotrasen/Icons/verbiconfangs.png")), + Icon = new SpriteSpecifier.Texture(new("/Textures/Nyanotrasen/Icons/verbiconfangs.png")), Priority = 2 }; args.Verbs.Add(verb); @@ -80,10 +86,8 @@ private void OnDamageChanged(EntityUid uid, BloodSuckedComponent component, Dama if (_prototypeManager.TryIndex("Brute", out var brute) && args.Damageable.Damage.TryGetDamageInGroup(brute, out var bruteTotal) && _prototypeManager.TryIndex("Airloss", out var airloss) && args.Damageable.Damage.TryGetDamageInGroup(airloss, out var airlossTotal)) - { if (bruteTotal == 0 && airlossTotal == 0) RemComp(uid); - } } private void OnDoAfter(EntityUid uid, BloodSuckerComponent component, BloodSuckDoAfterEvent args) @@ -96,18 +100,13 @@ private void OnDoAfter(EntityUid uid, BloodSuckerComponent component, BloodSuckD public void StartSuccDoAfter(EntityUid bloodsucker, EntityUid victim, BloodSuckerComponent? bloodSuckerComponent = null, BloodstreamComponent? stream = null, bool doChecks = true) { - if (!Resolve(bloodsucker, ref bloodSuckerComponent)) - return; - - if (!Resolve(victim, ref stream)) + if (!Resolve(bloodsucker, ref bloodSuckerComponent) || !Resolve(victim, ref stream)) return; if (doChecks) { if (!_interactionSystem.InRangeUnobstructed(bloodsucker, victim)) - { return; - } if (_inventorySystem.TryGetSlotEntity(victim, "head", out var headUid) && HasComp(headUid)) { @@ -125,19 +124,15 @@ public void StartSuccDoAfter(EntityUid bloodsucker, EntityUid victim, BloodSucke } if (stream.BloodReagent != "Blood") - { - _popups.PopupEntity(Loc.GetString("bloodsucker-fail-not-blood", ("target", victim)), victim, bloodsucker, Shared.Popups.PopupType.Medium); - return; - } - - if (_solutionSystem.PercentFull(stream.Owner) != 0) + _popups.PopupEntity(Loc.GetString("bloodsucker-not-blood", ("target", victim)), victim, bloodsucker, Shared.Popups.PopupType.Medium); + else if (_solutionSystem.PercentFull(victim) != 0) _popups.PopupEntity(Loc.GetString("bloodsucker-fail-no-blood", ("target", victim)), victim, bloodsucker, Shared.Popups.PopupType.Medium); + else + _popups.PopupEntity(Loc.GetString("bloodsucker-doafter-start", ("target", victim)), victim, bloodsucker, Shared.Popups.PopupType.Medium); _popups.PopupEntity(Loc.GetString("bloodsucker-doafter-start-victim", ("sucker", bloodsucker)), victim, victim, Shared.Popups.PopupType.LargeCaution); - _popups.PopupEntity(Loc.GetString("bloodsucker-doafter-start", ("target", victim)), victim, bloodsucker, Shared.Popups.PopupType.Medium); - var ev = new BloodSuckDoAfterEvent(); - var args = new DoAfterArgs(EntityManager, bloodsucker, bloodSuckerComponent.Delay, ev, bloodsucker, target: victim) + var args = new DoAfterArgs(EntityManager, bloodsucker, bloodSuckerComponent.Delay, new BloodSuckDoAfterEvent(), bloodsucker, target: victim) { BreakOnTargetMove = true, BreakOnUserMove = false, @@ -206,8 +201,5 @@ public bool TrySucc(EntityUid bloodsucker, EntityUid victim, BloodSuckerComponen //} return true; } - - private record struct BloodSuckData() - {} } } diff --git a/Content.Server/VendingMachines/VendingMachineSystem.cs b/Content.Server/VendingMachines/VendingMachineSystem.cs index 36fa69313e..60be1ad6f1 100644 --- a/Content.Server/VendingMachines/VendingMachineSystem.cs +++ b/Content.Server/VendingMachines/VendingMachineSystem.cs @@ -114,7 +114,7 @@ private void UpdateVendingMachineInterfaceState(EntityUid uid, VendingMachineCom { var state = new VendingMachineInterfaceState(GetAllInventory(uid, component)); - _userInterfaceSystem.TrySetUiState(uid, VendingMachineUiKey.Key, state); + _userInterfaceSystem.SetUiState(uid, VendingMachineUiKey.Key, state); } private void OnInventoryEjectMessage(EntityUid uid, VendingMachineComponent component, VendingMachineEjectMessage args) @@ -122,7 +122,7 @@ private void OnInventoryEjectMessage(EntityUid uid, VendingMachineComponent comp if (!this.IsPowered(uid, EntityManager)) return; - if (args.Session.AttachedEntity is not { Valid: true } entity || Deleted(entity)) + if (args.Actor is not { Valid: true } entity || Deleted(entity)) return; AuthorizedVend(uid, entity, args.Type, args.ID, component); diff --git a/Content.Server/VoiceMask/VoiceMaskSystem.Equip.cs b/Content.Server/VoiceMask/VoiceMaskSystem.Equip.cs index bd0c40f26a..b97c47ceef 100644 --- a/Content.Server/VoiceMask/VoiceMaskSystem.Equip.cs +++ b/Content.Server/VoiceMask/VoiceMaskSystem.Equip.cs @@ -1,6 +1,6 @@ using Content.Server.Actions; +using Content.Shared.Clothing; using Content.Shared.Inventory; -using Content.Shared.Inventory.Events; namespace Content.Server.VoiceMask; @@ -12,13 +12,9 @@ public sealed partial class VoiceMaskSystem private const string MaskSlot = "mask"; - private void OnEquip(EntityUid uid, VoiceMaskerComponent component, GotEquippedEvent args) + private void OnEquip(EntityUid uid, VoiceMaskerComponent component, ClothingGotEquippedEvent args) { - var user = args.Equipee; - // have to be wearing the mask to use it, duh. - if (!_inventory.TryGetSlotEntity(user, MaskSlot, out var maskEntity) || maskEntity != uid) - return; - + var user = args.Wearer; var comp = EnsureComp(user); comp.VoiceName = component.LastSetName; comp.SpeechVerb = component.LastSpeechVerb; @@ -26,9 +22,9 @@ private void OnEquip(EntityUid uid, VoiceMaskerComponent component, GotEquippedE _actions.AddAction(user, ref component.ActionEntity, component.Action, uid); } - private void OnUnequip(EntityUid uid, VoiceMaskerComponent compnent, GotUnequippedEvent args) + private void OnUnequip(EntityUid uid, VoiceMaskerComponent compnent, ClothingGotUnequippedEvent args) { - RemComp(args.Equipee); + RemComp(args.Wearer); } private VoiceMaskerComponent? TryGetMask(EntityUid user) diff --git a/Content.Server/VoiceMask/VoiceMaskSystem.cs b/Content.Server/VoiceMask/VoiceMaskSystem.cs index 19ed156a0b..d925092083 100644 --- a/Content.Server/VoiceMask/VoiceMaskSystem.cs +++ b/Content.Server/VoiceMask/VoiceMaskSystem.cs @@ -3,7 +3,6 @@ using Content.Server.Popups; using Content.Shared.Clothing; using Content.Shared.Database; -using Content.Shared.Inventory.Events; using Content.Shared.Popups; using Content.Shared.Preferences; using Content.Shared.Speech; @@ -27,8 +26,8 @@ public override void Initialize() SubscribeLocalEvent(OnChangeName); SubscribeLocalEvent(OnChangeVerb); SubscribeLocalEvent(OnMaskToggled); - SubscribeLocalEvent(OnEquip); - SubscribeLocalEvent(OnUnequip); + SubscribeLocalEvent(OnEquip); + SubscribeLocalEvent(OnUnequip); SubscribeLocalEvent(OnSetName); // SubscribeLocalEvent>(GetVerbs); } @@ -42,17 +41,14 @@ private void OnChangeName(EntityUid uid, VoiceMaskComponent component, VoiceMask { if (message.Name.Length > HumanoidCharacterProfile.MaxNameLength || message.Name.Length <= 0) { - _popupSystem.PopupEntity(Loc.GetString("voice-mask-popup-failure"), uid, message.Session, PopupType.SmallCaution); + _popupSystem.PopupEntity(Loc.GetString("voice-mask-popup-failure"), uid, message.Actor, PopupType.SmallCaution); return; } component.VoiceName = message.Name; - if (message.Session.AttachedEntity != null) - _adminLogger.Add(LogType.Action, LogImpact.Medium, $"{ToPrettyString(message.Session.AttachedEntity.Value):player} set voice of {ToPrettyString(uid):mask}: {component.VoiceName}"); - else - _adminLogger.Add(LogType.Action, LogImpact.Medium, $"Voice of {ToPrettyString(uid):mask} set: {component.VoiceName}"); + _adminLogger.Add(LogType.Action, LogImpact.Medium, $"{ToPrettyString(message.Actor):player} set voice of {ToPrettyString(uid):mask}: {component.VoiceName}"); - _popupSystem.PopupEntity(Loc.GetString("voice-mask-popup-success"), uid, message.Session); + _popupSystem.PopupEntity(Loc.GetString("voice-mask-popup-success"), uid, message.Actor); TrySetLastKnownName(uid, message.Name); @@ -67,7 +63,7 @@ private void OnChangeVerb(Entity ent, ref VoiceMaskChangeVer ent.Comp.SpeechVerb = msg.Verb; // verb is only important to metagamers so no need to log as opposed to name - _popupSystem.PopupEntity(Loc.GetString("voice-mask-popup-success"), ent, msg.Session); + _popupSystem.PopupEntity(Loc.GetString("voice-mask-popup-success"), ent, msg.Actor); TrySetLastSpeechVerb(ent, msg.Verb); @@ -95,27 +91,21 @@ private void OnMaskToggled(Entity ent, ref WearerMaskToggled ent.Comp.Enabled = !args.IsToggled; } - private void OpenUI(EntityUid player, ActorComponent? actor = null) + private void OpenUI(EntityUid player) { - // Delta-V: `logMissing: false` because of syrinx. - if (!Resolve(player, ref actor, logMissing: false)) - return; - if (!_uiSystem.TryGetUi(player, VoiceMaskUIKey.Key, out var bui)) + if (!_uiSystem.IsUiOpen(player, VoiceMaskUIKey.Key)) return; - _uiSystem.OpenUi(bui, actor.PlayerSession); + _uiSystem.OpenUi(player, VoiceMaskUIKey.Key, player); UpdateUI(player); } private void UpdateUI(EntityUid owner, VoiceMaskComponent? component = null) { - // Delta-V: `logMissing: false` because of syrinx if (!Resolve(owner, ref component, logMissing: false)) - { return; - } - if (_uiSystem.TryGetUi(owner, VoiceMaskUIKey.Key, out var bui)) - _uiSystem.SetUiState(bui, new VoiceMaskBuiState(component.VoiceName, component.SpeechVerb)); + if (_uiSystem.HasUi(owner, VoiceMaskUIKey.Key)) + _uiSystem.SetUiState(owner, VoiceMaskUIKey.Key, new VoiceMaskBuiState(component.VoiceName, component.SpeechVerb)); } } diff --git a/Content.Server/Weapons/Ranged/Systems/GunSystem.cs b/Content.Server/Weapons/Ranged/Systems/GunSystem.cs index caaad40952..e3cd2ff776 100644 --- a/Content.Server/Weapons/Ranged/Systems/GunSystem.cs +++ b/Content.Server/Weapons/Ranged/Systems/GunSystem.cs @@ -108,7 +108,7 @@ public override void Shoot(EntityUid gunUid, GunComponent gun, List<(EntityUid? // Update shot based on the recoil toMap = fromMap.Position + angle.ToVec() * mapDirection.Length(); mapDirection = toMap - fromMap.Position; - var gunVelocity = Physics.GetMapLinearVelocity(gunUid); + var gunVelocity = Physics.GetMapLinearVelocity(fromEnt); // I must be high because this was getting tripped even when true. // DebugTools.Assert(direction != Vector2.Zero); @@ -157,7 +157,7 @@ public override void Shoot(EntityUid gunUid, GunComponent gun, List<(EntityUid? }); SetCartridgeSpent(ent.Value, cartridge, true); - MuzzleFlash(gunUid, cartridge, user); + MuzzleFlash(gunUid, cartridge, mapDirection.ToAngle(), user); Audio.PlayPredicted(gun.SoundGunshotModified, gunUid, user); if (cartridge.DeleteOnSpawn) @@ -179,7 +179,7 @@ public override void Shoot(EntityUid gunUid, GunComponent gun, List<(EntityUid? // Ammo shoots itself case AmmoComponent newAmmo: shotProjectiles.Add(ent!.Value); - MuzzleFlash(gunUid, newAmmo, user); + MuzzleFlash(gunUid, newAmmo, mapDirection.ToAngle(), user); Audio.PlayPredicted(gun.SoundGunshotModified, gunUid, user); ShootOrThrow(ent.Value, mapDirection, gunVelocity, gun, gunUid, user); break; @@ -343,9 +343,9 @@ private Angle GetRecoilAngle(TimeSpan curTime, GunComponent component, Angle dir protected override void Popup(string message, EntityUid? uid, EntityUid? user) { } - protected override void CreateEffect(EntityUid uid, MuzzleFlashEvent message, EntityUid? user = null) + protected override void CreateEffect(EntityUid gunUid, MuzzleFlashEvent message, EntityUid? user = null) { - var filter = Filter.Pvs(uid, entityManager: EntityManager); + var filter = Filter.Pvs(gunUid, entityManager: EntityManager); if (TryComp(user, out var actor)) filter.RemovePlayer(actor.PlayerSession); diff --git a/Content.Server/Wires/WiresSystem.cs b/Content.Server/Wires/WiresSystem.cs index 0f9ee8b0f7..fce81db327 100644 --- a/Content.Server/Wires/WiresSystem.cs +++ b/Content.Server/Wires/WiresSystem.cs @@ -17,6 +17,7 @@ using Robust.Shared.Player; using Robust.Shared.Prototypes; using Robust.Shared.Random; +using ActivatableUISystem = Content.Shared.UserInterface.ActivatableUISystem; namespace Content.Server.Wires; @@ -347,7 +348,7 @@ public override void Update(float frameTime) } } - private class ActiveWireAction + private sealed class ActiveWireAction { /// /// The wire action's ID. This is so that once the action is finished, @@ -393,11 +394,11 @@ private void OnWiresPowered(EntityUid uid, WiresComponent component, ref PowerCh private void OnWiresActionMessage(EntityUid uid, WiresComponent component, WiresActionMessage args) { - if (args.Session.AttachedEntity == null) + if (args.Actor == null) { return; } - var player = (EntityUid) args.Session.AttachedEntity; + var player = (EntityUid) args.Actor; if (!EntityManager.TryGetComponent(player, out HandsComponent? handsComponent)) { @@ -458,7 +459,7 @@ private void OnInteractUsing(EntityUid uid, WiresComponent component, InteractUs { if (TryComp(args.User, out ActorComponent? actor)) { - _uiSystem.TryOpen(uid, WiresUiKey.Key, actor.PlayerSession); + _uiSystem.OpenUi(uid, WiresUiKey.Key, actor.PlayerSession); args.Handled = true; } } @@ -468,7 +469,8 @@ private void OnPanelChanged(Entity ent, ref PanelChangedEvent ar { if (args.Open) return; - _uiSystem.TryCloseAll(ent, WiresUiKey.Key); + + _uiSystem.CloseUi(ent.Owner, WiresUiKey.Key); } private void OnAttemptOpenActivatableUI(EntityUid uid, ActivatableUIRequiresPanelComponent component, ActivatableUIOpenAttemptEvent args) @@ -574,18 +576,17 @@ private void UpdateUserInterface(EntityUid uid, WiresComponent? wires = null, Us statuses.Sort((a, b) => a.position.CompareTo(b.position)); - _uiSystem.TrySetUiState(uid, WiresUiKey.Key, new WiresBoundUserInterfaceState( + _uiSystem.SetUiState((uid, ui), WiresUiKey.Key, new WiresBoundUserInterfaceState( clientList.ToArray(), statuses.Select(p => new StatusEntry(p.key, p.value)).ToArray(), Loc.GetString(wires.BoardName), wires.SerialNumber, - wires.WireSeed), ui: ui); + wires.WireSeed)); } public void OpenUserInterface(EntityUid uid, ICommonSession player) { - if (_uiSystem.TryGetUi(uid, WiresUiKey.Key, out var ui)) - _uiSystem.OpenUi(ui, player); + _uiSystem.OpenUi(uid, WiresUiKey.Key, player); } /// @@ -629,7 +630,7 @@ public void SetWiresPanelSecurity(EntityUid uid, WiresPanelSecurityComponent com if (!args.WiresAccessible) { - _uiSystem.TryCloseAll(uid, WiresUiKey.Key); + _uiSystem.CloseUi(uid, WiresUiKey.Key); } } diff --git a/Content.Server/Worldgen/Prototypes/NoiseChannelPrototype.cs b/Content.Server/Worldgen/Prototypes/NoiseChannelPrototype.cs index 67da4c4df1..02ca383d30 100644 --- a/Content.Server/Worldgen/Prototypes/NoiseChannelPrototype.cs +++ b/Content.Server/Worldgen/Prototypes/NoiseChannelPrototype.cs @@ -80,7 +80,7 @@ public class NoiseChannelConfig } [Prototype("noiseChannel")] -public sealed class NoiseChannelPrototype : NoiseChannelConfig, IPrototype, IInheritingPrototype +public sealed partial class NoiseChannelPrototype : NoiseChannelConfig, IPrototype, IInheritingPrototype { /// [ParentDataField(typeof(AbstractPrototypeIdArraySerializer))] diff --git a/Content.Server/Xenoarchaeology/Equipment/Components/TraversalDistorterComponent.cs b/Content.Server/Xenoarchaeology/Equipment/Components/TraversalDistorterComponent.cs index ec16083c53..1461021e3d 100644 --- a/Content.Server/Xenoarchaeology/Equipment/Components/TraversalDistorterComponent.cs +++ b/Content.Server/Xenoarchaeology/Equipment/Components/TraversalDistorterComponent.cs @@ -1,4 +1,7 @@ -namespace Content.Server.Xenoarchaeology.Equipment.Components; +using Content.Shared.Construction.Prototypes; +using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype; + +namespace Content.Server.Xenoarchaeology.Equipment.Components; /// /// This is used for a machine that biases @@ -8,7 +11,19 @@ public sealed partial class TraversalDistorterComponent : Component { [ViewVariables(VVAccess.ReadWrite)] - public BiasDirection BiasDirection = BiasDirection.In; + public float BiasChance; + + [DataField] + public float BaseBiasChance = 0.7f; + + [DataField(customTypeSerializer: typeof(PrototypeIdSerializer))] + public string MachinePartBiasChance = "Manipulator"; + + [DataField] + public float PartRatingBiasChance = 1.1f; + + [ViewVariables(VVAccess.ReadWrite)] + public BiasDirection BiasDirection = BiasDirection.Up; public TimeSpan NextActivation = default!; public TimeSpan ActivationDelay = TimeSpan.FromSeconds(1); @@ -16,6 +31,6 @@ public sealed partial class TraversalDistorterComponent : Component public enum BiasDirection : byte { - In, //down the tree, towards depth 0 - Out //up the tree, away from depth 0 + Up, //Towards depth 0 + Down, //Away from depth 0 } diff --git a/Content.Server/Xenoarchaeology/Equipment/Systems/ArtifactAnalyzerSystem.cs b/Content.Server/Xenoarchaeology/Equipment/Systems/ArtifactAnalyzerSystem.cs index 27caebef80..72d99460fe 100644 --- a/Content.Server/Xenoarchaeology/Equipment/Systems/ArtifactAnalyzerSystem.cs +++ b/Content.Server/Xenoarchaeology/Equipment/Systems/ArtifactAnalyzerSystem.cs @@ -41,7 +41,8 @@ public sealed class ArtifactAnalyzerSystem : EntitySystem [Dependency] private readonly PaperSystem _paper = default!; [Dependency] private readonly ResearchSystem _research = default!; [Dependency] private readonly MetaDataSystem _metaSystem = default!; - [Dependency] private readonly GlimmerSystem _glimmerSystem = default!; //Nyano - Summary: pulls in the glimmer system. + [Dependency] private readonly TraversalDistorterSystem _traversalDistorter = default!; + [Dependency] private readonly GlimmerSystem _glimmerSystem = default!; /// public override void Initialize() @@ -63,6 +64,7 @@ public override void Initialize() SubscribeLocalEvent(OnScanButton); SubscribeLocalEvent(OnPrintButton); SubscribeLocalEvent(OnExtractButton); + SubscribeLocalEvent(OnBiasButton); SubscribeLocalEvent((e, c, _) => UpdateUserInterface(e, c), after: new[] { typeof(ResearchSystem) }); @@ -194,6 +196,7 @@ private void UpdateUserInterface(EntityUid uid, AnalysisConsoleComponent? compon var canScan = false; var canPrint = false; var points = 0; + if (TryComp(component.AnalyzerEntity, out var analyzer)) { artifact = analyzer.LastAnalyzedArtifact; @@ -207,18 +210,22 @@ private void UpdateUserInterface(EntityUid uid, AnalysisConsoleComponent? compon if (GetArtifactForAnalysis(component.AnalyzerEntity, placer) is { } current) points = _artifact.GetResearchPointValue(current); } + var analyzerConnected = component.AnalyzerEntity != null; var serverConnected = TryComp(uid, out var client) && client.ConnectedToServer; var scanning = TryComp(component.AnalyzerEntity, out var active); var paused = active != null ? active.AnalysisPaused : false; + var biasDirection = BiasDirection.Up; - var state = new AnalysisConsoleScanUpdateState(GetNetEntity(artifact), analyzerConnected, serverConnected, - canScan, canPrint, msg, scanning, paused, active?.StartTime, active?.AccumulatedRunTime, totalTime, points); + if (TryComp(component.AnalyzerEntity, out var trav)) + biasDirection = trav.BiasDirection; - var bui = _ui.GetUi(uid, ArtifactAnalzyerUiKey.Key); - _ui.SetUiState(bui, state); + var state = new AnalysisConsoleUpdateState(GetNetEntity(artifact), analyzerConnected, serverConnected, + canScan, canPrint, msg, scanning, paused, active?.StartTime, active?.AccumulatedRunTime, totalTime, points, biasDirection == BiasDirection.Down); + + _ui.SetUiState(uid, ArtifactAnalzyerUiKey.Key, state); } /// @@ -229,7 +236,7 @@ private void UpdateUserInterface(EntityUid uid, AnalysisConsoleComponent? compon /// private void OnServerSelectionMessage(EntityUid uid, AnalysisConsoleComponent component, AnalysisConsoleServerSelectionMessage args) { - _ui.TryOpen(uid, ResearchClientUiKey.Key, args.Session); + _ui.OpenUi(uid, ResearchClientUiKey.Key, args.Actor); } /// @@ -382,6 +389,20 @@ private void OnExtractButton(EntityUid uid, AnalysisConsoleComponent component, UpdateUserInterface(uid, component); } + private void OnBiasButton(EntityUid uid, AnalysisConsoleComponent component, AnalysisConsoleBiasButtonPressedMessage args) + { + if (component.AnalyzerEntity == null) + return; + + if (!TryComp(component.AnalyzerEntity, out var trav)) + return; + + if (!_traversalDistorter.SetState(component.AnalyzerEntity.Value, trav, args.IsDown)) + return; + + UpdateUserInterface(uid, component); + } + /// /// Cancels scans if the artifact changes nodes (is activated) during the scan. /// @@ -505,4 +526,3 @@ private void OnPowerChanged(EntityUid uid, ActiveArtifactAnalyzerComponent activ } } } - diff --git a/Content.Server/Xenoarchaeology/Equipment/Systems/TraversalDistorterSystem.cs b/Content.Server/Xenoarchaeology/Equipment/Systems/TraversalDistorterSystem.cs index 230e639af4..67812a8a7b 100644 --- a/Content.Server/Xenoarchaeology/Equipment/Systems/TraversalDistorterSystem.cs +++ b/Content.Server/Xenoarchaeology/Equipment/Systems/TraversalDistorterSystem.cs @@ -1,9 +1,12 @@ -using Content.Server.Popups; +using Content.Server.Construction; +using Content.Server.Popups; using Content.Server.Power.EntitySystems; using Content.Server.Xenoarchaeology.Equipment.Components; +using Content.Server.Xenoarchaeology.XenoArtifacts; using Content.Shared.Examine; using Content.Shared.Interaction; using Content.Shared.Placeable; +using Robust.Shared.Player; using Robust.Shared.Timing; namespace Content.Server.Xenoarchaeology.Equipment.Systems; @@ -11,15 +14,14 @@ namespace Content.Server.Xenoarchaeology.Equipment.Systems; public sealed class TraversalDistorterSystem : EntitySystem { [Dependency] private readonly IGameTiming _timing = default!; - [Dependency] private readonly PopupSystem _popup = default!; /// public override void Initialize() { SubscribeLocalEvent(OnInit); - - SubscribeLocalEvent(OnInteract); SubscribeLocalEvent(OnExamine); + SubscribeLocalEvent(OnRefreshParts); + SubscribeLocalEvent(OnUpgradeExamine); SubscribeLocalEvent(OnItemPlaced); SubscribeLocalEvent(OnItemRemoved); @@ -30,30 +32,25 @@ private void OnInit(EntityUid uid, TraversalDistorterComponent component, MapIni component.NextActivation = _timing.CurTime; } - private void OnInteract(EntityUid uid, TraversalDistorterComponent component, ActivateInWorldEvent args) + /// + /// Switches the state of the traversal distorter between up and down. + /// + /// The distorter's entity + /// The component on the entity + /// If the distorter changed state + public bool SetState(EntityUid uid, TraversalDistorterComponent component, bool isDown) { - if (args.Handled || !this.IsPowered(uid, EntityManager)) - return; + if (!this.IsPowered(uid, EntityManager)) + return false; + if (_timing.CurTime < component.NextActivation) - return; - args.Handled = true; + return false; + component.NextActivation = _timing.CurTime + component.ActivationDelay; - component.BiasDirection = component.BiasDirection == BiasDirection.In - ? BiasDirection.Out - : BiasDirection.In; + component.BiasDirection = isDown ? BiasDirection.Down : BiasDirection.Up; - var toPopup = string.Empty; - switch (component.BiasDirection) - { - case BiasDirection.In: - toPopup = Loc.GetString("traversal-distorter-set-in"); - break; - case BiasDirection.Out: - toPopup = Loc.GetString("traversal-distorter-set-out"); - break; - } - _popup.PopupEntity(toPopup, uid); + return true; } private void OnExamine(EntityUid uid, TraversalDistorterComponent component, ExaminedEvent args) @@ -61,17 +58,28 @@ private void OnExamine(EntityUid uid, TraversalDistorterComponent component, Exa string examine = string.Empty; switch (component.BiasDirection) { - case BiasDirection.In: - examine = Loc.GetString("traversal-distorter-desc-in"); + case BiasDirection.Up: + examine = Loc.GetString("traversal-distorter-desc-up"); break; - case BiasDirection.Out: - examine = Loc.GetString("traversal-distorter-desc-out"); + case BiasDirection.Down: + examine = Loc.GetString("traversal-distorter-desc-down"); break; } - args.PushMarkup(examine); } + private void OnRefreshParts(EntityUid uid, TraversalDistorterComponent component, RefreshPartsEvent args) + { + var biasRating = args.PartRatings[component.MachinePartBiasChance]; + + component.BiasChance = component.BaseBiasChance * MathF.Pow(component.PartRatingBiasChance, biasRating - 1); + } + + private void OnUpgradeExamine(EntityUid uid, TraversalDistorterComponent component, UpgradeExamineEvent args) + { + args.AddPercentageUpgrade("traversal-distorter-upgrade-bias", component.BiasChance / component.BaseBiasChance); + } + private void OnItemPlaced(EntityUid uid, TraversalDistorterComponent component, ref ItemPlacedEvent args) { var bias = EnsureComp(args.OtherEntity); diff --git a/Content.Server/Xenoarchaeology/XenoArtifacts/ArtifactSystem.Nodes.cs b/Content.Server/Xenoarchaeology/XenoArtifacts/ArtifactSystem.Nodes.cs index 647f31a895..895bb0217b 100644 --- a/Content.Server/Xenoarchaeology/XenoArtifacts/ArtifactSystem.Nodes.cs +++ b/Content.Server/Xenoarchaeology/XenoArtifacts/ArtifactSystem.Nodes.cs @@ -19,26 +19,46 @@ public sealed partial class ArtifactSystem /// /// /// - /// The amount of nodes it has. - private void GenerateArtifactNodeTree(EntityUid artifact, ref List allNodes, int nodeAmount) + /// The amount of nodes it has. + private void GenerateArtifactNodeTree(EntityUid artifact, List allNodes, int nodesToCreate) { - if (nodeAmount < 1) + if (nodesToCreate < 1) { - Log.Error($"nodeAmount {nodeAmount} is less than 1. Aborting artifact tree generation."); + Log.Error($"nodesToCreate {nodesToCreate} is less than 1. Aborting artifact tree generation."); return; } _usedNodeIds.Clear(); + var uninitializedNodes = new List { new(){ Id = GetValidNodeId() } }; + var createdNodes = 1; - var rootNode = new ArtifactNode + while (uninitializedNodes.Count > 0) { - Id = GetValidNodeId() - }; - var uninitializedNodes = new List { rootNode }; - while (uninitializedNodes.Any()) - { - GenerateNode(artifact, ref uninitializedNodes, ref allNodes, nodeAmount); + var node = uninitializedNodes[0]; + uninitializedNodes.Remove(node); + + node.Trigger = GetRandomTrigger(artifact, ref node); + node.Effect = GetRandomEffect(artifact, ref node); + + var maxChildren = _random.Next(1, MaxEdgesPerNode - 1); + + for (var i = 0; i < maxChildren; i++) + { + if (nodesToCreate <= createdNodes) + { + break; + } + + var child = new ArtifactNode {Id = GetValidNodeId(), Depth = node.Depth + 1}; + node.Edges.Add(child.Id); + child.Edges.Add(node.Id); + + uninitializedNodes.Add(child); + createdNodes++; + } + + allNodes.Add(node); } } @@ -51,44 +71,8 @@ private int GetValidNodeId() } _usedNodeIds.Add(id); - return id; - } - /// - /// Generate an individual node on the tree. - /// - private void GenerateNode(EntityUid artifact, ref List uninitializedNodes, ref List allNodes, int targetNodeAmount) - { - if (!uninitializedNodes.Any()) - return; - - var node = uninitializedNodes.First(); - uninitializedNodes.Remove(node); - - //Generate the connected nodes - var maxEdges = Math.Max(1, targetNodeAmount - allNodes.Count - uninitializedNodes.Count - 1); - maxEdges = Math.Min(maxEdges, MaxEdgesPerNode); - var minEdges = Math.Clamp(targetNodeAmount - allNodes.Count - uninitializedNodes.Count - 1, 0, 1); - - var edgeAmount = _random.Next(minEdges, maxEdges); - - for (var i = 0; i < edgeAmount; i++) - { - var neighbor = new ArtifactNode - { - Depth = node.Depth + 1, - Id = GetValidNodeId() - }; - node.Edges.Add(neighbor.Id); - neighbor.Edges.Add(node.Id); - - uninitializedNodes.Add(neighbor); - } - - node.Trigger = GetRandomTrigger(artifact, ref node); - node.Effect = GetRandomEffect(artifact, ref node); - - allNodes.Add(node); + return id; } //yeah these two functions are near duplicates but i don't @@ -159,6 +143,7 @@ private int GetRandomTargetDepth(Dictionary weights) return key; } } + return _random.Pick(weights.Keys); //shouldn't happen } diff --git a/Content.Server/Xenoarchaeology/XenoArtifacts/ArtifactSystem.cs b/Content.Server/Xenoarchaeology/XenoArtifacts/ArtifactSystem.cs index 955fe827d7..f170075977 100644 --- a/Content.Server/Xenoarchaeology/XenoArtifacts/ArtifactSystem.cs +++ b/Content.Server/Xenoarchaeology/XenoArtifacts/ArtifactSystem.cs @@ -129,7 +129,7 @@ public void RandomizeArtifact(EntityUid uid, ArtifactComponent component) { var nodeAmount = _random.Next(component.NodesMin, component.NodesMax); - GenerateArtifactNodeTree(uid, ref component.NodeTree, nodeAmount); + GenerateArtifactNodeTree(uid, component.NodeTree, nodeAmount); var firstNode = GetRootNode(component.NodeTree); EnterNode(uid, ref firstNode, component); } @@ -184,13 +184,14 @@ public void ForceActivateArtifact(EntityUid uid, EntityUid? user = null, Artifac var currentNode = GetNodeFromId(component.CurrentNodeId.Value, component); currentNode.Triggered = true; - if (currentNode.Edges.Any()) - { - var newNode = GetNewNode(uid, component); - if (newNode == null) - return; - EnterNode(uid, ref newNode, component); - } + if (currentNode.Edges.Count == 0) + return; + + var newNode = GetNewNode(uid, component); + if (newNode == null) + return; + + EnterNode(uid, ref newNode, component); } private ArtifactNode? GetNewNode(EntityUid uid, ArtifactComponent component) @@ -206,19 +207,20 @@ public void ForceActivateArtifact(EntityUid uid, EntityUid? user = null, Artifac if (TryComp(uid, out var bias) && TryComp(bias.Provider, out var trav) && + _random.Prob(trav.BiasChance) && this.IsPowered(bias.Provider, EntityManager)) { switch (trav.BiasDirection) { - case BiasDirection.In: - var foo = allNodes.Where(x => GetNodeFromId(x, component).Depth < currentNode.Depth).ToHashSet(); - if (foo.Any()) - allNodes = foo; + case BiasDirection.Up: + var upNodes = allNodes.Where(x => GetNodeFromId(x, component).Depth < currentNode.Depth).ToHashSet(); + if (upNodes.Count != 0) + allNodes = upNodes; break; - case BiasDirection.Out: - var bar = allNodes.Where(x => GetNodeFromId(x, component).Depth > currentNode.Depth).ToHashSet(); - if (bar.Any()) - allNodes = bar; + case BiasDirection.Down: + var downNodes = allNodes.Where(x => GetNodeFromId(x, component).Depth > currentNode.Depth).ToHashSet(); + if (downNodes.Count != 0) + allNodes = downNodes; break; } } @@ -226,12 +228,14 @@ public void ForceActivateArtifact(EntityUid uid, EntityUid? user = null, Artifac var undiscoveredNodes = allNodes.Where(x => !GetNodeFromId(x, component).Discovered).ToList(); Log.Debug($"Undiscovered nodes: {string.Join(", ", undiscoveredNodes)}"); var newNode = _random.Pick(allNodes); - if (undiscoveredNodes.Any() && _random.Prob(0.75f)) + + if (undiscoveredNodes.Count != 0 && _random.Prob(0.75f)) { newNode = _random.Pick(undiscoveredNodes); } Log.Debug($"Going to node {newNode}"); + return GetNodeFromId(newNode, component); } diff --git a/Content.Server/Xenoarchaeology/XenoArtifacts/Effects/Systems/GasArtifactSystem.cs b/Content.Server/Xenoarchaeology/XenoArtifacts/Effects/Systems/GasArtifactSystem.cs index e24d31a113..dc054d2318 100644 --- a/Content.Server/Xenoarchaeology/XenoArtifacts/Effects/Systems/GasArtifactSystem.cs +++ b/Content.Server/Xenoarchaeology/XenoArtifacts/Effects/Systems/GasArtifactSystem.cs @@ -2,6 +2,7 @@ using Content.Server.Atmos.EntitySystems; using Content.Server.Xenoarchaeology.XenoArtifacts.Effects.Components; using Content.Server.Xenoarchaeology.XenoArtifacts.Events; +using Content.Shared.Atmos; namespace Content.Server.Xenoarchaeology.XenoArtifacts.Effects.Systems; diff --git a/Content.Server/Xenoarchaeology/XenoArtifacts/Effects/Systems/PortalArtifactSystem.cs b/Content.Server/Xenoarchaeology/XenoArtifacts/Effects/Systems/PortalArtifactSystem.cs index e2d2172355..e44ee6baa1 100644 --- a/Content.Server/Xenoarchaeology/XenoArtifacts/Effects/Systems/PortalArtifactSystem.cs +++ b/Content.Server/Xenoarchaeology/XenoArtifacts/Effects/Systems/PortalArtifactSystem.cs @@ -35,8 +35,7 @@ private void OnActivate(Entity artifact, ref ArtifactAc var secondPortal = Spawn(artifact.Comp.PortalProto, _transform.GetMapCoordinates(target)); //Manual position swapping, because the portal that opens doesn't trigger a collision, and doesn't teleport targets the first time. - _transform.SetCoordinates(artifact, Transform(secondPortal).Coordinates); - _transform.SetCoordinates(target, Transform(firstPortal).Coordinates); + _transform.SwapPositions(target, secondPortal); _link.TryLink(firstPortal, secondPortal, true); } diff --git a/Content.Server/Xenoarchaeology/XenoArtifacts/Effects/Systems/ShuffleArtifactSystem.cs b/Content.Server/Xenoarchaeology/XenoArtifacts/Effects/Systems/ShuffleArtifactSystem.cs index b977cb038c..c39627818a 100644 --- a/Content.Server/Xenoarchaeology/XenoArtifacts/Effects/Systems/ShuffleArtifactSystem.cs +++ b/Content.Server/Xenoarchaeology/XenoArtifacts/Effects/Systems/ShuffleArtifactSystem.cs @@ -22,7 +22,6 @@ private void OnActivated(EntityUid uid, ShuffleArtifactComponent component, Arti { var mobState = GetEntityQuery(); - List allCoords = new(); List> toShuffle = new(); foreach (var ent in _lookup.GetEntitiesInRange(uid, component.Radius, LookupFlags.Dynamic | LookupFlags.Sundries)) @@ -33,13 +32,15 @@ private void OnActivated(EntityUid uid, ShuffleArtifactComponent component, Arti var xform = Transform(ent); toShuffle.Add((ent, xform)); - allCoords.Add(xform.Coordinates); } - foreach (var xform in toShuffle) + _random.Shuffle(toShuffle); + + while (toShuffle.Count > 1) { - var xformUid = xform.Owner; - _xform.SetCoordinates(xformUid, xform, _random.PickAndTake(allCoords)); + var ent1 = _random.PickAndTake(toShuffle); + var ent2 = _random.PickAndTake(toShuffle); + _xform.SwapPositions((ent1, ent1), (ent2, ent2)); } } } diff --git a/Content.Server/Xenoarchaeology/XenoArtifacts/Effects/Systems/TemperatureArtifactSystem.cs b/Content.Server/Xenoarchaeology/XenoArtifacts/Effects/Systems/TemperatureArtifactSystem.cs index f314d4a4fb..e62ce36b5b 100644 --- a/Content.Server/Xenoarchaeology/XenoArtifacts/Effects/Systems/TemperatureArtifactSystem.cs +++ b/Content.Server/Xenoarchaeology/XenoArtifacts/Effects/Systems/TemperatureArtifactSystem.cs @@ -2,6 +2,7 @@ using Content.Server.Atmos.EntitySystems; using Content.Server.Xenoarchaeology.XenoArtifacts.Effects.Components; using Content.Server.Xenoarchaeology.XenoArtifacts.Events; +using Content.Shared.Atmos; using Robust.Server.GameObjects; namespace Content.Server.Xenoarchaeology.XenoArtifacts.Effects.Systems; diff --git a/Content.Server/Xenoarchaeology/XenoArtifacts/Triggers/Systems/ArtifactExamineTriggerSystem.cs b/Content.Server/Xenoarchaeology/XenoArtifacts/Triggers/Systems/ArtifactExamineTriggerSystem.cs index cbade1682e..b7afbcfc8b 100644 --- a/Content.Server/Xenoarchaeology/XenoArtifacts/Triggers/Systems/ArtifactExamineTriggerSystem.cs +++ b/Content.Server/Xenoarchaeology/XenoArtifacts/Triggers/Systems/ArtifactExamineTriggerSystem.cs @@ -1,5 +1,6 @@ using Content.Server.Xenoarchaeology.XenoArtifacts.Triggers.Components; using Content.Shared.Examine; +using Content.Shared.Ghost; namespace Content.Server.Xenoarchaeology.XenoArtifacts.Triggers.Systems; @@ -15,6 +16,10 @@ public override void Initialize() private void OnExamine(EntityUid uid, ArtifactExamineTriggerComponent component, ExaminedEvent args) { + // Prevent ghosts from activating this trigger unless they have CanGhostInteract + if (TryComp(args.Examiner, out var ghost) && !ghost.CanGhostInteract) + return; + _artifact.TryActivateArtifact(uid); } } diff --git a/Content.Server/Zombies/IncurableZombieComponent.cs b/Content.Server/Zombies/IncurableZombieComponent.cs index 2695865690..375b814b51 100644 --- a/Content.Server/Zombies/IncurableZombieComponent.cs +++ b/Content.Server/Zombies/IncurableZombieComponent.cs @@ -1,10 +1,16 @@ -namespace Content.Server.Zombies; +using Robust.Shared.Prototypes; + +namespace Content.Server.Zombies; /// -/// This is used for a zombie that cannot be cured by any methods. +/// This is used for a zombie that cannot be cured by any methods. Gives a succumb to zombie infection action. /// [RegisterComponent] public sealed partial class IncurableZombieComponent : Component { + [DataField] + public EntProtoId ZombifySelfActionPrototype = "ActionTurnUndead"; + [DataField] + public EntityUid? Action; } diff --git a/Content.Server/Zombies/InitialInfectedExemptComponent.cs b/Content.Server/Zombies/InitialInfectedExemptComponent.cs index 46077935c6..f2dfda3f87 100644 --- a/Content.Server/Zombies/InitialInfectedExemptComponent.cs +++ b/Content.Server/Zombies/InitialInfectedExemptComponent.cs @@ -1,7 +1,7 @@ namespace Content.Server.Zombies; [RegisterComponent] -public partial class InitialInfectedExemptComponent : Component +public sealed partial class InitialInfectedExemptComponent : Component { } diff --git a/Content.Server/Zombies/PendingZombieComponent.cs b/Content.Server/Zombies/PendingZombieComponent.cs index 1bb0ef2872..811d3f9644 100644 --- a/Content.Server/Zombies/PendingZombieComponent.cs +++ b/Content.Server/Zombies/PendingZombieComponent.cs @@ -1,5 +1,4 @@ using Content.Shared.Damage; -using Robust.Shared.Prototypes; using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom; namespace Content.Server.Zombies; @@ -17,7 +16,7 @@ public sealed partial class PendingZombieComponent : Component { DamageDict = new () { - { "Poison", 0.3 }, + { "Poison", 0.2 }, } }; @@ -48,9 +47,6 @@ public sealed partial class PendingZombieComponent : Component [DataField] public TimeSpan MaxInitialInfectedGrace = TimeSpan.FromMinutes(15f); - [DataField] - public EntProtoId ZombifySelfActionPrototype = "ActionTurnUndead"; - /// /// The chance each second that a warning will be shown. /// @@ -66,6 +62,4 @@ public sealed partial class PendingZombieComponent : Component "zombie-infection-warning", "zombie-infection-underway" }; - - [DataField] public EntityUid? Action; } diff --git a/Content.Server/Zombies/ZombieSystem.Transform.cs b/Content.Server/Zombies/ZombieSystem.Transform.cs index 5b38e6f766..a906652765 100644 --- a/Content.Server/Zombies/ZombieSystem.Transform.cs +++ b/Content.Server/Zombies/ZombieSystem.Transform.cs @@ -80,7 +80,7 @@ private void OnDamageChanged(EntityUid uid, ZombifyOnDeathComponent component, M /// the entity being zombified /// /// - /// ALRIGHT BIG BOY. YOU'VE COME TO THE LAYER OF THE BEAST. THIS IS YOUR WARNING. + /// ALRIGHT BIG BOYS, GIRLS AND ANYONE ELSE. YOU'VE COME TO THE LAYER OF THE BEAST. THIS IS YOUR WARNING. /// This function is the god function for zombie stuff, and it is cursed. I have /// attempted to label everything thouroughly for your sanity. I have attempted to /// rewrite this, but this is how it shall lie eternal. Turn back now. @@ -236,6 +236,11 @@ public void ZombifyEntity(EntityUid target, MobStateComponent? mobState = null) _identity.QueueIdentityUpdate(target); + var htn = EnsureComp(target); + htn.RootTask = new HTNCompoundTask() { Task = "SimpleHostileCompound" }; + htn.Blackboard.SetValue(NPCBlackboard.Owner, target); + _npc.SleepNPC(target, htn); + //He's gotta have a mind var hasMind = _mind.TryGetMind(target, out var mindId, out _); if (hasMind && _mind.TryGetSession(mindId, out var session)) @@ -251,9 +256,6 @@ public void ZombifyEntity(EntityUid target, MobStateComponent? mobState = null) } else { - var htn = EnsureComp(target); - htn.RootTask = new HTNCompoundTask() { Task = "SimpleHostileCompound" }; - htn.Blackboard.SetValue(NPCBlackboard.Owner, target); _npc.WakeNPC(target, htn); } diff --git a/Content.Server/Zombies/ZombieSystem.cs b/Content.Server/Zombies/ZombieSystem.cs index 16f9b2607f..e564b6c637 100644 --- a/Content.Server/Zombies/ZombieSystem.cs +++ b/Content.Server/Zombies/ZombieSystem.cs @@ -66,9 +66,16 @@ public override void Initialize() SubscribeLocalEvent(OnPendingMapInit); + SubscribeLocalEvent(OnPendingMapInit); + SubscribeLocalEvent(OnDamageChanged); } + private void OnPendingMapInit(EntityUid uid, IncurableZombieComponent component, MapInitEvent args) + { + _actions.AddAction(uid, ref component.Action, component.ZombifySelfActionPrototype); + } + private void OnPendingMapInit(EntityUid uid, PendingZombieComponent component, MapInitEvent args) { if (_mobState.IsDead(uid)) @@ -79,7 +86,6 @@ private void OnPendingMapInit(EntityUid uid, PendingZombieComponent component, M component.NextTick = _timing.CurTime + TimeSpan.FromSeconds(1f); component.GracePeriod = _random.Next(component.MinInitialInfectedGrace, component.MaxInitialInfectedGrace); - _actions.AddAction(uid, ref component.Action, component.ZombifySelfActionPrototype); } public override void Update(float frameTime) diff --git a/Content.Server/_White/AspectsSystem/Aspects/ImmersiveAspect.cs b/Content.Server/_White/AspectsSystem/Aspects/ImmersiveAspect.cs index 088cc18f3f..fe50477982 100644 --- a/Content.Server/_White/AspectsSystem/Aspects/ImmersiveAspect.cs +++ b/Content.Server/_White/AspectsSystem/Aspects/ImmersiveAspect.cs @@ -3,16 +3,15 @@ using Content.Server._White.AspectsSystem.Base; using Content.Server.GameTicking; using Content.Server.GameTicking.Components; -using Content.Shared._White.Telescope; using Content.Shared.Humanoid; using Content.Shared.Movement.Components; using Content.Shared.Movement.Systems; +using Content.Shared.Telescope; namespace Content.Server._White.AspectsSystem.Aspects; public sealed class ImmersiveAspect : AspectSystem { - [Dependency] private readonly SharedContentEyeSystem _eye = default!; [Dependency] private readonly SharedTelescopeSystem _telescope = default!; @@ -22,7 +21,9 @@ public override void Initialize() SubscribeLocalEvent(OnPlayerSpawn); } - protected override void Started(EntityUid uid, ImmersiveAspectComponent component, GameRuleComponent gameRule, + protected override void Started(EntityUid uid, + ImmersiveAspectComponent component, + GameRuleComponent gameRule, GameRuleStartedEvent args) { base.Started(uid, component, gameRule, args); @@ -76,7 +77,10 @@ private void OnPlayerSpawn(PlayerSpawnCompleteEvent ev) } - protected override void Ended(EntityUid uid, ImmersiveAspectComponent component, GameRuleComponent gameRule, GameRuleEndedEvent args) + protected override void Ended(EntityUid uid, + ImmersiveAspectComponent component, + GameRuleComponent gameRule, + GameRuleEndedEvent args) { base.Ended(uid, component, gameRule, args); diff --git a/Content.Server/_White/Blink/BlinkSystem.cs b/Content.Server/_White/Blink/BlinkSystem.cs index afcf9b436d..91acd9d2b4 100644 --- a/Content.Server/_White/Blink/BlinkSystem.cs +++ b/Content.Server/_White/Blink/BlinkSystem.cs @@ -1,8 +1,8 @@ using System.Linq; using System.Numerics; using Content.Shared._White.Blink; -using Content.Shared._White.Standing; using Content.Shared.Physics; +using Content.Shared.Standing; using Robust.Server.Audio; using Robust.Server.GameObjects; using Robust.Shared.Physics; diff --git a/Content.Server/_White/Telescope/TelescopeSystem.cs b/Content.Server/_White/Telescope/TelescopeSystem.cs deleted file mode 100644 index 223654fd98..0000000000 --- a/Content.Server/_White/Telescope/TelescopeSystem.cs +++ /dev/null @@ -1,5 +0,0 @@ -using Content.Shared._White.Telescope; - -namespace Content.Server._White.Telescope; - -public sealed class TelescopeSystem : SharedTelescopeSystem; diff --git a/Content.Shared/Access/Components/IdCardComponent.cs b/Content.Shared/Access/Components/IdCardComponent.cs index 26e83c5586..39d5d9d27f 100644 --- a/Content.Shared/Access/Components/IdCardComponent.cs +++ b/Content.Shared/Access/Components/IdCardComponent.cs @@ -40,4 +40,10 @@ public sealed partial class IdCardComponent : Component /// [DataField, ViewVariables(VVAccess.ReadWrite)] public bool BypassLogging; + + [DataField] + public LocId NameLocId = "access-id-card-component-owner-name-job-title-text"; + + [DataField] + public LocId FullNameLocId = "access-id-card-component-owner-full-name-job-title-text"; } diff --git a/Content.Shared/Access/Components/IdCardConsoleComponent.cs b/Content.Shared/Access/Components/IdCardConsoleComponent.cs index c994d83d9c..a34709807b 100644 --- a/Content.Shared/Access/Components/IdCardConsoleComponent.cs +++ b/Content.Shared/Access/Components/IdCardConsoleComponent.cs @@ -3,8 +3,6 @@ using Robust.Shared.GameStates; using Robust.Shared.Prototypes; using Robust.Shared.Serialization; -using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype.List; -using Robust.Shared.Prototypes; namespace Content.Shared.Access.Components; diff --git a/Content.Shared/Access/Components/IdExaminableComponent.cs b/Content.Shared/Access/Components/IdExaminableComponent.cs new file mode 100644 index 0000000000..87d3e03a14 --- /dev/null +++ b/Content.Shared/Access/Components/IdExaminableComponent.cs @@ -0,0 +1,6 @@ +using Content.Shared.Access.Systems; + +namespace Content.Shared.Access.Components; + +[RegisterComponent, Access(typeof(IdExaminableSystem))] +public sealed partial class IdExaminableComponent : Component; diff --git a/Content.Shared/Access/SharedAgentIDCardSystem.cs b/Content.Shared/Access/SharedAgentIDCardSystem.cs index ef6690cc35..d027a3937f 100644 --- a/Content.Shared/Access/SharedAgentIDCardSystem.cs +++ b/Content.Shared/Access/SharedAgentIDCardSystem.cs @@ -26,12 +26,14 @@ public sealed class AgentIDCardBoundUserInterfaceState : BoundUserInterfaceState public readonly HashSet Icons; public string CurrentName { get; } public string CurrentJob { get; } + public string CurrentJobIconId { get; } - public AgentIDCardBoundUserInterfaceState(string currentName, string currentJob, HashSet icons) + public AgentIDCardBoundUserInterfaceState(string currentName, string currentJob, string currentJobIconId, HashSet icons) { Icons = icons; CurrentName = currentName; CurrentJob = currentJob; + CurrentJobIconId = currentJobIconId; } } @@ -60,11 +62,11 @@ public AgentIDCardJobChangedMessage(string job) [Serializable, NetSerializable] public sealed class AgentIDCardJobIconChangedMessage : BoundUserInterfaceMessage { - public string JobIcon { get; } + public string JobIconId { get; } - public AgentIDCardJobIconChangedMessage(string jobIcon) + public AgentIDCardJobIconChangedMessage(string jobIconId) { - JobIcon = jobIcon; + JobIconId = jobIconId; } } } diff --git a/Content.Shared/Access/Systems/AccessReaderSystem.cs b/Content.Shared/Access/Systems/AccessReaderSystem.cs index 89c08e0a4e..3670e24bd3 100644 --- a/Content.Shared/Access/Systems/AccessReaderSystem.cs +++ b/Content.Shared/Access/Systems/AccessReaderSystem.cs @@ -153,7 +153,7 @@ public bool IsAllowed( return IsAllowedInternal(access, stationKeys, reader); if (!_containerSystem.TryGetContainer(target, reader.ContainerAccessProvider, out var container)) - return false; + return Paused(target); // when mapping, containers with electronics arent spawned foreach (var entity in container.ContainedEntities) { diff --git a/Content.Server/Access/Systems/IdExaminableSystem.cs b/Content.Shared/Access/Systems/IdExaminableSystem.cs similarity index 85% rename from Content.Server/Access/Systems/IdExaminableSystem.cs rename to Content.Shared/Access/Systems/IdExaminableSystem.cs index c2231605e4..333272e27a 100644 --- a/Content.Server/Access/Systems/IdExaminableSystem.cs +++ b/Content.Shared/Access/Systems/IdExaminableSystem.cs @@ -1,4 +1,3 @@ -using Content.Server.Access.Components; using Content.Shared.Access.Components; using Content.Shared.Examine; using Content.Shared.Inventory; @@ -6,7 +5,7 @@ using Content.Shared.Verbs; using Robust.Shared.Utility; -namespace Content.Server.Access.Systems; +namespace Content.Shared.Access.Systems; public sealed class IdExaminableSystem : EntitySystem { @@ -22,7 +21,7 @@ public override void Initialize() private void OnGetExamineVerbs(EntityUid uid, IdExaminableComponent component, GetVerbsEvent args) { var detailsRange = _examineSystem.IsInDetailsRange(args.User, uid); - var info = GetInfo(uid) ?? Loc.GetString("id-examinable-component-verb-no-id"); + var info = GetMessage(uid); var verb = new ExamineVerb() { @@ -41,7 +40,12 @@ private void OnGetExamineVerbs(EntityUid uid, IdExaminableComponent component, G args.Verbs.Add(verb); } - private string? GetInfo(EntityUid uid) + public string GetMessage(EntityUid uid) + { + return GetInfo(uid) ?? Loc.GetString("id-examinable-component-verb-no-id"); + } + + public string? GetInfo(EntityUid uid) { if (_inventorySystem.TryGetSlotEntity(uid, "id", out var idUid)) { @@ -65,9 +69,9 @@ private string GetNameAndJob(IdCardComponent id) var jobSuffix = string.IsNullOrWhiteSpace(id.JobTitle) ? string.Empty : $" ({id.JobTitle})"; var val = string.IsNullOrWhiteSpace(id.FullName) - ? Loc.GetString("access-id-card-component-owner-name-job-title-text", + ? Loc.GetString(id.NameLocId, ("jobSuffix", jobSuffix)) - : Loc.GetString("access-id-card-component-owner-full-name-job-title-text", + : Loc.GetString(id.FullNameLocId, ("fullName", id.FullName), ("jobSuffix", jobSuffix)); diff --git a/Content.Shared/Access/Systems/SharedIdCardSystem.cs b/Content.Shared/Access/Systems/SharedIdCardSystem.cs index 842e7e7e6a..bfde70f504 100644 --- a/Content.Shared/Access/Systems/SharedIdCardSystem.cs +++ b/Content.Shared/Access/Systems/SharedIdCardSystem.cs @@ -1,13 +1,32 @@ using Content.Shared.Access.Components; +using Content.Shared.Administration.Logs; +using Content.Shared.Database; using Content.Shared.Hands.Components; using Content.Shared.Inventory; using Content.Shared.PDA; +using Content.Shared.Roles; +using Content.Shared.StatusIcon; +using Robust.Shared.Prototypes; namespace Content.Shared.Access.Systems; public abstract class SharedIdCardSystem : EntitySystem { + [Dependency] private readonly ISharedAdminLogManager _adminLogger = default!; [Dependency] private readonly InventorySystem _inventorySystem = default!; + [Dependency] private readonly MetaDataSystem _metaSystem = default!; + [Dependency] private readonly IPrototypeManager _prototypeManager = default!; + + public override void Initialize() + { + base.Initialize(); + SubscribeLocalEvent(OnMapInit); + } + + private void OnMapInit(EntityUid uid, IdCardComponent id, MapInitEvent args) + { + UpdateEntityName(uid, id); + } /// /// Attempt to find an ID card on an entity. This will look in the entity itself, in the entity's hands, and @@ -56,4 +75,143 @@ public bool TryGetIdCard(EntityUid uid, out Entity idCard) idCard = default; return false; } + + /// + /// Attempts to change the job title of a card. + /// Returns true/false. + /// + /// + /// If provided with a player's EntityUid to the player parameter, adds the change to the admin logs. + /// + public bool TryChangeJobTitle(EntityUid uid, string? jobTitle, IdCardComponent? id = null, EntityUid? player = null) + { + if (!Resolve(uid, ref id)) + return false; + + if (!string.IsNullOrWhiteSpace(jobTitle)) + { + jobTitle = jobTitle.Trim(); + + if (jobTitle.Length > IdCardConsoleComponent.MaxJobTitleLength) + jobTitle = jobTitle[..IdCardConsoleComponent.MaxJobTitleLength]; + } + else + { + jobTitle = null; + } + + if (id.JobTitle == jobTitle) + return true; + id.JobTitle = jobTitle; + Dirty(uid, id); + UpdateEntityName(uid, id); + + if (player != null) + { + _adminLogger.Add(LogType.Identity, LogImpact.Low, + $"{ToPrettyString(player.Value):player} has changed the job title of {ToPrettyString(uid):entity} to {jobTitle} "); + } + return true; + } + + public bool TryChangeJobIcon(EntityUid uid, StatusIconPrototype jobIcon, IdCardComponent? id = null, EntityUid? player = null) + { + if (!Resolve(uid, ref id)) + { + return false; + } + + if (id.JobIcon == jobIcon.ID) + { + return true; + } + + id.JobIcon = jobIcon.ID; + Dirty(uid, id); + + if (player != null) + { + _adminLogger.Add(LogType.Identity, LogImpact.Low, + $"{ToPrettyString(player.Value):player} has changed the job icon of {ToPrettyString(uid):entity} to {jobIcon} "); + } + + return true; + } + + public bool TryChangeJobDepartment(EntityUid uid, JobPrototype job, IdCardComponent? id = null) + { + if (!Resolve(uid, ref id)) + return false; + + id.JobDepartments.Clear(); + foreach (var department in _prototypeManager.EnumeratePrototypes()) + { + if (department.Roles.Contains(job.ID)) + id.JobDepartments.Add("department-" + department.ID); + } + + Dirty(uid, id); + + return true; + } + + /// + /// Attempts to change the full name of a card. + /// Returns true/false. + /// + /// + /// If provided with a player's EntityUid to the player parameter, adds the change to the admin logs. + /// + public bool TryChangeFullName(EntityUid uid, string? fullName, IdCardComponent? id = null, EntityUid? player = null) + { + if (!Resolve(uid, ref id)) + return false; + + if (!string.IsNullOrWhiteSpace(fullName)) + { + fullName = fullName.Trim(); + if (fullName.Length > IdCardConsoleComponent.MaxFullNameLength) + fullName = fullName[..IdCardConsoleComponent.MaxFullNameLength]; + } + else + { + fullName = null; + } + + if (id.FullName == fullName) + return true; + id.FullName = fullName; + Dirty(uid, id); + UpdateEntityName(uid, id); + + if (player != null) + { + _adminLogger.Add(LogType.Identity, LogImpact.Low, + $"{ToPrettyString(player.Value):player} has changed the name of {ToPrettyString(uid):entity} to {fullName} "); + } + return true; + } + + /// + /// Changes the name of the id's owner. + /// + /// + /// If either or is empty, it's replaced by placeholders. + /// If both are empty, the original entity's name is restored. + /// + private void UpdateEntityName(EntityUid uid, IdCardComponent? id = null) + { + if (!Resolve(uid, ref id)) + return; + + var jobSuffix = string.IsNullOrWhiteSpace(id.JobTitle) ? string.Empty : $" ({id.JobTitle})"; + + var val = string.IsNullOrWhiteSpace(id.FullName) + ? Loc.GetString(id.NameLocId, + ("jobSuffix", jobSuffix)) + : Loc.GetString(id.FullNameLocId, + ("fullName", id.FullName), + ("jobSuffix", jobSuffix)); + _metaSystem.SetEntityName(uid, val); + } } diff --git a/Content.Shared/ActionBlocker/ActionBlockerSystem.cs b/Content.Shared/ActionBlocker/ActionBlockerSystem.cs index f5ed2df227..47b3997806 100644 --- a/Content.Shared/ActionBlocker/ActionBlockerSystem.cs +++ b/Content.Shared/ActionBlocker/ActionBlockerSystem.cs @@ -169,8 +169,16 @@ public bool CanEmote(EntityUid uid) public bool CanAttack(EntityUid uid, EntityUid? target = null, Entity? weapon = null, bool disarm = false) { + // If target is in a container can we attack + if (target != null && _container.IsEntityInContainer(target.Value)) + { + return false; + } + _container.TryGetOuterContainer(uid, Transform(uid), out var outerContainer); - if (target != null && target != outerContainer?.Owner && _container.IsEntityInContainer(uid)) + + // If we're in a container can we attack the target. + if (target != null && target != outerContainer?.Owner && _container.IsEntityInContainer(uid)) { var containerEv = new CanAttackFromContainerEvent(uid, target); RaiseLocalEvent(uid, containerEv); diff --git a/Content.Shared/Actions/ActionEvents.cs b/Content.Shared/Actions/ActionEvents.cs index 72a566b8c8..6cc50bc21b 100644 --- a/Content.Shared/Actions/ActionEvents.cs +++ b/Content.Shared/Actions/ActionEvents.cs @@ -68,9 +68,10 @@ public void AddAction(ref EntityUid? actionId, string prototypeId) AddAction(ref actionId, prototypeId, Provider); } - public void AddAction(EntityUid actionId) + public void AddAction(EntityUid? actionId) { - Actions.Add(actionId); + if (actionId != null) + Actions.Add(actionId.Value); } } @@ -154,4 +155,9 @@ public abstract partial class BaseActionEvent : HandledEntityEventArgs /// The user performing the action. /// public EntityUid Performer; + + /// + /// The action the event belongs to. + /// + public EntityUid Action; } diff --git a/Content.Shared/Actions/BaseActionComponent.cs b/Content.Shared/Actions/BaseActionComponent.cs index 6d9242acc1..57c145a0ec 100644 --- a/Content.Shared/Actions/BaseActionComponent.cs +++ b/Content.Shared/Actions/BaseActionComponent.cs @@ -1,5 +1,4 @@ -using Content.Shared.Mobs; -using Robust.Shared.Audio; +using Robust.Shared.Audio; using Robust.Shared.Serialization; using Robust.Shared.Utility; @@ -25,6 +24,11 @@ public abstract partial class BaseActionComponent : Component /// [DataField("iconOn")] public SpriteSpecifier? IconOn; + /// + /// For toggle actions only, background to show when toggled on. + /// + [DataField] public SpriteSpecifier? BackgroundOn; + /// /// If not null, this color will modulate the action icon color. /// diff --git a/Content.Shared/Actions/Events/ActionPerformedEvent.cs b/Content.Shared/Actions/Events/ActionPerformedEvent.cs new file mode 100644 index 0000000000..530d7c9335 --- /dev/null +++ b/Content.Shared/Actions/Events/ActionPerformedEvent.cs @@ -0,0 +1,8 @@ +namespace Content.Shared.Actions.Events; + +/// +/// Raised on the action entity when it is used and . +/// +/// The entity that performed this action. +[ByRefEvent] +public readonly record struct ActionPerformedEvent(EntityUid Performer); diff --git a/Content.Shared/Actions/Events/AnomalyPowerActionEvent.cs b/Content.Shared/Actions/Events/AnomalyPowerActionEvent.cs new file mode 100644 index 0000000000..7ef98a152c --- /dev/null +++ b/Content.Shared/Actions/Events/AnomalyPowerActionEvent.cs @@ -0,0 +1,380 @@ +using Content.Shared.Anomaly.Effects.Components; +using Content.Shared.Atmos; +using Content.Shared.Damage; +using Robust.Shared.Audio; +using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype; +using Content.Shared.Explosion; +using Robust.Shared.Prototypes; + +namespace Content.Shared.Actions.Events; + +public sealed partial class AnomalyPowerActionEvent : InstantActionEvent +{ + /// + /// Contains settings common to all "Anomalist" Powers. + /// + [DataField] + public AnomalyPowerSettings Settings; + + /// + /// Contains settings specific to "Bluespace Anomaly" powers. + /// + [DataField] + public BluespaceAnomalySettings? Bluespace; + + /// + /// Contains settings specific to "Electrical Anomaly" powers. + /// + [DataField] + public ElectricalAnomalySettings? Electricity; + + /// + /// What entities will be spawned by this action, using the same arguments as an EntitySpawnAnomalyComponent. + /// + [DataField] + public List? EntitySpawnEntries; + + /// + /// Contains settings specific to "Explosion Anomaly" powers. + /// + [DataField] + public ExplosionAnomalySettings? Explosion; + + /// + /// Contains settings specific to "Gas Producer Anomaly" powers. + /// + [DataField] + public GasProducerAnomalySettings? Gas; + + /// + /// Contains settings specific to "Gravity Anomaly" powers. + /// + [DataField] + public GravityAnomalySettings? Gravity; + + /// + /// Contains settings specific to "Injection Anomaly" powers. + /// + [DataField] + public InjectionAnomalySettings? Injection; + + /// + /// Contains settings specific to "Puddle Create Anomaly" powers. + /// + [DataField] + public PuddleAnomalySettings? Puddle; + + /// + /// Contains settings specific to "Pyroclastic Anomaly" powers. + /// + [DataField] + public PyroclasticAnomalySettings? Pyroclastic; +} + +[DataRecord] +public partial record struct AnomalyPowerSettings() +{ + public string PowerName; + + /// + /// When casting above the Supercritical Threshold, if not 0, this will cause all powers to enter cooldown for the given duration. + /// + public float OverchargeCooldown; + + /// + /// When casting above the Supercritical Threshold, if not 0, this will deal recoil damage to the caster of the specified amounts. + /// + public DamageSpecifier? OverchargeRecoil; + + /// + /// When casting above the Supercritical Threshold, play a popup above the caster's head. + /// + public string? OverchargeFeedback; + + /// + /// The minimum amount of glimmer generated by this power. + /// + public int MinGlimmer; + + /// + /// The maximum amount of glimmer generated by this power. + /// + public int MaxGlimmer; + + /// + /// The amount to multiply glimmer generation by when above the Supercritical Threshold + /// + public int SupercriticalGlimmerMultiplier = 1; + + /// + /// The threshold of glimmer at which this power will play a sound. + /// + public float GlimmerSoundThreshold; + + /// + /// The glimmer threshold(divided by amplification and multiplied by dampening) at which this power will act as a Supercritical Anomaly. + /// + public float SupercriticalThreshold = 500f; + + /// + /// The maximum amount Dampening can increase the Supercritical threshold to. + /// + public float MaxSupercriticalThreshold = 800f; + + /// + /// The sound to be played upon activating this power(and not Supercritically) + /// + public SoundSpecifier? PulseSound = new SoundCollectionSpecifier("RadiationPulse"); + + /// + /// The sound plays when this power is activated above a Supercritical glimmer threshold + /// + public SoundSpecifier? SupercriticalSound = new SoundCollectionSpecifier("Explosion"); + + public bool DoSupercritical = true; +} + +[DataRecord] +public partial record struct BluespaceAnomalySettings() +{ + /// + /// The maximum radius that the shuffle effect will extend for + /// scales with stability + /// + public float MaxShuffleRadius = 10; + + /// + /// Whether or not a standard pulse teleports the caster. + /// + public bool PulseTeleportsCaster; + + /// + /// Whether or not a supercrit teleports the caster. + /// + public bool SupercritTeleportsCaster; + + /// + /// How far the supercritical event can teleport you + /// + public float SupercriticalTeleportRadius = 50f; + + /// + /// The sound played after players are shuffled/teleported around + /// + public SoundSpecifier TeleportSound = new SoundPathSpecifier("/Audio/Effects/teleport_arrival.ogg"); +} + +[DataRecord] +public partial record struct ElectricalAnomalySettings() +{ + /// + /// the minimum number of lightning strikes + /// + public int MinBoltCount = 2; + + /// + /// The number of lightning strikes, at the maximum severity of the anomaly + /// + public int MaxBoltCount = 5; + + /// + /// The maximum radius of the passive electrocution effect + /// scales with stability + /// + public float MaxElectrocuteRange = 7f; + + /// + /// Energy consumed from devices by the emp pulse upon going supercritical. + /// + public float EmpEnergyConsumption = 100000f; + + /// + /// Duration of devices being disabled by the emp pulse upon going supercritical. + /// + public float EmpDisabledDuration = 60f; +} + +[DataRecord] +public partial record struct ExplosionAnomalySettings() +{ + /// + /// The explosion prototype to spawn + /// + [DataField(customTypeSerializer: typeof(PrototypeIdSerializer))] + public string? ExplosionPrototype = default!; + + /// + /// The total amount of intensity an explosion can achieve + /// + public float TotalIntensity = 100f; + + /// + /// How quickly does the explosion's power slope? Higher = smaller area and more concentrated damage, lower = larger area and more spread out damage + /// + public float Dropoff = 10f; + + /// + /// How much intensity can be applied per tile? + /// + public float MaxTileIntensity = 10f; + + /// + /// The explosion prototype to spawn on Supercrit + /// + [DataField(customTypeSerializer: typeof(PrototypeIdSerializer))] + public string? SupercritExplosionPrototype = default!; + + /// + /// The total amount of intensity an explosion can achieve + /// + public float SupercritTotalIntensity = 100f; + + /// + /// How quickly does the explosion's power slope? Higher = smaller area and more concentrated damage, lower = larger area and more spread out damage + /// + public float SupercritDropoff = 10f; + + /// + /// How much intensity can be applied per tile? + /// + public float SupercritMaxTileIntensity = 10f; +} + +[DataRecord] +public partial record struct GasProducerAnomalySettings() +{ + /// + /// The gas to release + /// + public Gas ReleasedGas = Gas.WaterVapor; + + /// + /// The gas to release + /// + public Gas SupercritReleasedGas = Gas.WaterVapor; + + /// + /// The amount of gas released passively + /// + public float MoleAmount = 1f; + + /// + /// The radius of random gas spawns. + /// + public float SpawnRadius = 3; + + /// + /// The number of tiles which will be modified. + /// + public int TileCount = 1; + + /// + /// The the amount the temperature should be modified by (negative for decreasing temp) + /// + public float TempChange = 0; + + /// + /// The amount of gas released when the anomaly reaches max severity + /// + public float SupercritMoleAmount = 150f; + + /// + /// The radius of random gas spawns. + /// + public float SupercritSpawnRadius = 10; + + /// + /// The number of tiles which will be modified. + /// + public int SupercritTileCount = 10; + + /// + /// The the amount the temperature should be modified by (negative for decreasing temp) + /// + public float SupercritTempChange = 0; +} + +[DataRecord] +public partial record struct GravityAnomalySettings() +{ + /// + /// The maximum distance from which the anomaly + /// can throw you via a pulse. + /// + public float MaxThrowRange = 5f; + + /// + /// The maximum strength the anomaly + /// can throw you via a pulse + /// + public float MaxThrowStrength = 10; + + /// + /// The range around the anomaly that will be spaced on supercritical. + /// + public float SpaceRange = 3f; +} + +[DataRecord] +public partial record struct InjectionAnomalySettings() +{ + /// + /// the maximum amount of injection of a substance into an entity per pulsation + /// scales with Severity + /// + public float MaxSolutionInjection = 15; + + /// + /// The maximum amount of injection of a substance into an entity in the supercritical phase + /// + public float SuperCriticalSolutionInjection = 50; + + /// + /// The maximum radius in which the anomaly injects reagents into the surrounding containers. + /// + public float InjectRadius = 3; + + /// + /// The maximum radius in which the anomaly injects reagents into the surrounding containers. + /// + public float SuperCriticalInjectRadius = 15; + + /// + /// The name of the prototype of the special effect that appears above the entities into which the injection was carried out + /// + public EntProtoId VisualEffectPrototype = "PuddleSparkle"; + + /// + /// Solution name that can be drained. + /// + public string Solution { get; set; } = "default"; +} + +[DataRecord] +public partial record struct PuddleAnomalySettings() +{ + /// + /// The maximum amount of solution that an anomaly can splash out of the storage on the floor during pulsation. + /// Scales with Amplification. + /// + public float MaxPuddleSize = 100; + + /// + /// Solution name that can be drained. + /// + public string Solution { get; set; } = "default"; +} + +[DataRecord] +public partial record struct PyroclasticAnomalySettings() +{ + /// + /// The maximum distance from which entities will be ignited. + /// + public float MaximumIgnitionRadius = 5f; + + /// + /// The maximum distance from which entities will be ignited on a Supercrit cast. + /// + public float SupercritMaximumIgnitionRadius = 20f; +} diff --git a/Content.Shared/Actions/Events/PsionicHealOtherPowerActionEvent.cs b/Content.Shared/Actions/Events/PsionicHealOtherPowerActionEvent.cs new file mode 100644 index 0000000000..cdcba6740c --- /dev/null +++ b/Content.Shared/Actions/Events/PsionicHealOtherPowerActionEvent.cs @@ -0,0 +1,72 @@ +using Robust.Shared.Audio; +using Content.Shared.Damage; +using Content.Shared.Popups; + +namespace Content.Shared.Actions.Events; +public sealed partial class PsionicHealOtherPowerActionEvent : EntityTargetActionEvent +{ + /// + /// Caster's Amplification that has been modified by the results of a MoodContest. + /// + public float ModifiedAmplification = default!; + + /// + /// Caster's Dampening that has been modified by the results of a MoodContest. + /// + public float ModifiedDampening = default!; + + [DataField] + public DamageSpecifier? HealingAmount = default!; + + [DataField] + public string PowerName = default!; + + /// Controls whether or not a power fires immediately and with no DoAfter + [DataField] + public bool Immediate; + + [DataField] + public string? PopupText; + + [DataField] + public float? RotReduction; + + [DataField] + public bool DoRevive; + + [DataField] + public bool BreakOnUserMove = true; + + [DataField] + public bool BreakOnTargetMove = false; + + [DataField] + public float UseDelay = 8f; + + [DataField] + public int MinGlimmer = 8; + + [DataField] + public int MaxGlimmer = 12; + + [DataField] + public int GlimmerSoundThreshold; + + [DataField] + public int GlimmerPopupThreshold; + + [DataField] + public int GlimmerDoAfterVisibilityThreshold; + + [DataField] + public PopupType PopupType = PopupType.Medium; + + [DataField] + public AudioParams AudioParams = default!; + + [DataField] + public bool PlaySound; + + [DataField] + public SoundSpecifier SoundUse = new SoundPathSpecifier("/Audio/Psionics/heartbeat_fast.ogg"); +} diff --git a/Content.Shared/Actions/Events/ValidateActionEntityTargetEvent.cs b/Content.Shared/Actions/Events/ValidateActionEntityTargetEvent.cs new file mode 100644 index 0000000000..9f22e7973a --- /dev/null +++ b/Content.Shared/Actions/Events/ValidateActionEntityTargetEvent.cs @@ -0,0 +1,4 @@ +namespace Content.Shared.Actions.Events; + +[ByRefEvent] +public record struct ValidateActionEntityTargetEvent(EntityUid User, EntityUid Target, bool Cancelled = false); diff --git a/Content.Shared/Actions/Events/ValidateActionWorldTargetEvent.cs b/Content.Shared/Actions/Events/ValidateActionWorldTargetEvent.cs new file mode 100644 index 0000000000..43e398aad4 --- /dev/null +++ b/Content.Shared/Actions/Events/ValidateActionWorldTargetEvent.cs @@ -0,0 +1,6 @@ +using Robust.Shared.Map; + +namespace Content.Shared.Actions.Events; + +[ByRefEvent] +public record struct ValidateActionWorldTargetEvent(EntityUid User, EntityCoordinates Target, bool Cancelled = false); diff --git a/Content.Shared/Actions/SharedActionsSystem.cs b/Content.Shared/Actions/SharedActionsSystem.cs index 35d962b0e4..0a4755bf10 100644 --- a/Content.Shared/Actions/SharedActionsSystem.cs +++ b/Content.Shared/Actions/SharedActionsSystem.cs @@ -8,14 +8,13 @@ using Content.Shared.Interaction; using Content.Shared.Inventory.Events; using Content.Shared.Mind; -using Content.Shared.Mobs.Components; +using Content.Shared.Rejuvenate; using Robust.Shared.Audio.Systems; using Robust.Shared.Containers; using Robust.Shared.GameStates; using Robust.Shared.Map; using Robust.Shared.Timing; using Robust.Shared.Utility; -using Content.Shared.Rejuvenate; namespace Content.Shared.Actions; @@ -145,9 +144,6 @@ public bool ResolveActionData( public void SetCooldown(EntityUid? actionId, TimeSpan start, TimeSpan end) { - if (actionId == null) - return; - if (!TryGetActionData(actionId, out var action)) return; @@ -163,9 +159,6 @@ public void SetCooldown(EntityUid? actionId, TimeSpan cooldown) public void ClearCooldown(EntityUid? actionId) { - if (actionId == null) - return; - if (!TryGetActionData(actionId, out var action)) return; @@ -176,6 +169,27 @@ public void ClearCooldown(EntityUid? actionId) Dirty(actionId.Value, action); } + /// + /// Sets the cooldown for this action only if it is bigger than the one it already has. + /// + public void SetIfBiggerCooldown(EntityUid? actionId, TimeSpan? cooldown) + { + if (cooldown == null || + cooldown.Value <= TimeSpan.Zero || + !TryGetActionData(actionId, out var action)) + { + return; + } + + var start = GameTiming.CurTime; + var end = start + cooldown; + if (action.Cooldown?.End > end) + return; + + action.Cooldown = (start, end.Value); + Dirty(actionId.Value, action); + } + public void StartUseDelay(EntityUid? actionId) { if (actionId == null) @@ -389,7 +403,7 @@ private void OnActionRequest(RequestPerformActionEvent ev, EntitySessionEventArg var targetWorldPos = _transformSystem.GetWorldPosition(entityTarget); _rotateToFaceSystem.TryFaceCoordinates(user, targetWorldPos); - if (!ValidateEntityTarget(user, entityTarget, entityAction)) + if (!ValidateEntityTarget(user, entityTarget, (actionEnt, entityAction))) return; _adminLogger.Add(LogType.Action, @@ -413,7 +427,7 @@ private void OnActionRequest(RequestPerformActionEvent ev, EntitySessionEventArg var entityCoordinatesTarget = GetCoordinates(netCoordinatesTarget); _rotateToFaceSystem.TryFaceCoordinates(user, entityCoordinatesTarget.ToMapPos(EntityManager, _transformSystem)); - if (!ValidateWorldTarget(user, entityCoordinatesTarget, worldAction)) + if (!ValidateWorldTarget(user, entityCoordinatesTarget, (actionEnt, worldAction))) return; _adminLogger.Add(LogType.Action, @@ -439,13 +453,26 @@ private void OnActionRequest(RequestPerformActionEvent ev, EntitySessionEventArg } if (performEvent != null) + { performEvent.Performer = user; + performEvent.Action = actionEnt; + } // All checks passed. Perform the action! PerformAction(user, component, actionEnt, action, performEvent, curTime); } - public bool ValidateEntityTarget(EntityUid user, EntityUid target, EntityTargetActionComponent action) + public bool ValidateEntityTarget(EntityUid user, EntityUid target, Entity actionEnt) + { + if (!ValidateEntityTargetBase(user, target, actionEnt)) + return false; + + var ev = new ValidateActionEntityTargetEvent(user, target); + RaiseLocalEvent(actionEnt, ref ev); + return !ev.Cancelled; + } + + private bool ValidateEntityTargetBase(EntityUid user, EntityUid target, EntityTargetActionComponent action) { if (!target.IsValid() || Deleted(target)) return false; @@ -487,7 +514,17 @@ public bool ValidateEntityTarget(EntityUid user, EntityUid target, EntityTargetA return _interactionSystem.CanAccessViaStorage(user, target); } - public bool ValidateWorldTarget(EntityUid user, EntityCoordinates coords, WorldTargetActionComponent action) + public bool ValidateWorldTarget(EntityUid user, EntityCoordinates coords, Entity action) + { + if (!ValidateWorldTargetBase(user, coords, action)) + return false; + + var ev = new ValidateActionWorldTargetEvent(user, coords); + RaiseLocalEvent(action, ref ev); + return !ev.Cancelled; + } + + private bool ValidateWorldTargetBase(EntityUid user, EntityCoordinates coords, WorldTargetActionComponent action) { if (action.CheckCanInteract && !_actionBlockerSystem.CanInteract(user, null)) return false; @@ -535,13 +572,12 @@ public void PerformAction(EntityUid performer, ActionsComponent? component, Enti handled = actionEvent.Handled; } - _audio.PlayPredicted(action.Sound, performer,predicted ? performer : null); - handled |= action.Sound != null; - if (!handled) return; // no interaction occurred. - // reduce charges, start cooldown, and mark as dirty (if required). + // play sound, reduce charges, start cooldown, and mark as dirty (if required). + + _audio.PlayPredicted(action.Sound, performer,predicted ? performer : null); var dirty = toggledBefore == action.Toggled; @@ -564,6 +600,9 @@ public void PerformAction(EntityUid performer, ActionsComponent? component, Enti if (dirty && component != null) Dirty(performer, component); + + var ev = new ActionPerformedEvent(performer); + RaiseLocalEvent(actionId, ref ev); } #endregion diff --git a/Content.Shared/Administration/AdminFlags.cs b/Content.Shared/Administration/AdminFlags.cs index 9842e638c2..71a08a70db 100644 --- a/Content.Shared/Administration/AdminFlags.cs +++ b/Content.Shared/Administration/AdminFlags.cs @@ -100,6 +100,16 @@ public enum AdminFlags : uint /// Stealth = 1 << 16, + /// + /// Allows you to use Admin chat + /// + Adminchat = 1 << 17, + + /// + /// Permits the visibility of Pii in game and on SS14 Admin + /// + Pii = 1 << 18, + /// /// DeltaV - The ability to whitelist people. Either this permission or +BAN is required for remove. /// diff --git a/Content.Shared/Administration/Components/SharedHeadstandComponent.cs b/Content.Shared/Administration/Components/SharedHeadstandComponent.cs index ebc23c7b05..96a4dfc2dd 100644 --- a/Content.Shared/Administration/Components/SharedHeadstandComponent.cs +++ b/Content.Shared/Administration/Components/SharedHeadstandComponent.cs @@ -1,6 +1,9 @@ -namespace Content.Shared.Administration.Components; +using Robust.Shared.GameStates; + +namespace Content.Shared.Administration.Components; /// /// Flips the target's sprite on it's head, so they do a headstand. /// +[NetworkedComponent] public abstract partial class SharedHeadstandComponent : Component { } diff --git a/Content.Shared/Administration/Components/SharedKillSignComponent.cs b/Content.Shared/Administration/Components/SharedKillSignComponent.cs index 2e6d54ca88..9a95454f72 100644 --- a/Content.Shared/Administration/Components/SharedKillSignComponent.cs +++ b/Content.Shared/Administration/Components/SharedKillSignComponent.cs @@ -1,5 +1,8 @@ -namespace Content.Shared.Administration.Components; +using Robust.Shared.GameStates; +namespace Content.Shared.Administration.Components; + +[NetworkedComponent] public abstract partial class SharedKillSignComponent : Component { diff --git a/Content.Shared/Alert/AlertType.cs b/Content.Shared/Alert/AlertType.cs index d736e9a627..baa6a806ff 100644 --- a/Content.Shared/Alert/AlertType.cs +++ b/Content.Shared/Alert/AlertType.cs @@ -72,6 +72,7 @@ public enum AlertType : byte BorgDead, Offer, RecentlyBlocked, // WD EDIT + Deflecting, } } diff --git a/Content.Shared/Announcements/Prototypes/AnnouncerPrototype.cs b/Content.Shared/Announcements/Prototypes/AnnouncerPrototype.cs index 42db148df9..1cb9ba085f 100644 --- a/Content.Shared/Announcements/Prototypes/AnnouncerPrototype.cs +++ b/Content.Shared/Announcements/Prototypes/AnnouncerPrototype.cs @@ -7,7 +7,7 @@ namespace Content.Shared.Announcements.Prototypes; /// Defines an announcer and their announcement file paths /// [Prototype("announcer")] -public sealed class AnnouncerPrototype : IPrototype +public sealed partial class AnnouncerPrototype : IPrototype { [IdDataField] public string ID { get; } = default!; diff --git a/Content.Shared/Anomaly/SharedAnomalySystem.cs b/Content.Shared/Anomaly/SharedAnomalySystem.cs index da1d31c6ff..ccc8b7bc5c 100644 --- a/Content.Shared/Anomaly/SharedAnomalySystem.cs +++ b/Content.Shared/Anomaly/SharedAnomalySystem.cs @@ -368,14 +368,14 @@ public override void Update(float frameTime) /// /// Gets random points around the anomaly based on the given parameters. /// - public List? GetSpawningPoints(EntityUid uid, float stability, float severity, AnomalySpawnSettings settings, float powerModifier = 1f) + public List? GetSpawningPoints(EntityUid uid, float stability, float severity, AnomalySpawnSettings settings, float powerModifier = 1f, float minAmountOffset = 0, float maxAmountOffset = 0) { var xform = Transform(uid); if (!TryComp(xform.GridUid, out var grid)) return null; - var amount = (int) (MathHelper.Lerp(settings.MinAmount, settings.MaxAmount, severity * stability * powerModifier) + 0.5f); + var amount = (int) MathF.Round(MathHelper.Lerp(settings.MinAmount + minAmountOffset, settings.MaxAmount + maxAmountOffset, severity * stability * powerModifier) + 0.5f); var localpos = xform.Coordinates.Position; var tilerefs = grid.GetLocalTilesIntersecting( diff --git a/Content.Shared/Arachne/ArachneComponent.cs b/Content.Shared/Arachne/ArachneComponent.cs deleted file mode 100644 index 04c369cc45..0000000000 --- a/Content.Shared/Arachne/ArachneComponent.cs +++ /dev/null @@ -1,21 +0,0 @@ -using Robust.Shared.GameStates; - -namespace Content.Shared.Arachne -{ - [RegisterComponent, NetworkedComponent] - public sealed partial class ArachneComponent : Component - { - [DataField("cocoonDelay")] - public float CocoonDelay = 12f; - - [DataField("cocoonKnockdownMultiplier")] - public float CocoonKnockdownMultiplier = 0.5f; - - /// - /// Blood reagent required to web up a mob. - /// - - [DataField("webBloodReagent")] - public string WebBloodReagent = "Blood"; - } -} diff --git a/Content.Shared/Arachne/Events.cs b/Content.Shared/Arachne/Events.cs deleted file mode 100644 index 02001286ac..0000000000 --- a/Content.Shared/Arachne/Events.cs +++ /dev/null @@ -1,11 +0,0 @@ -using Robust.Shared.Map; -using Robust.Shared.Serialization; -using Content.Shared.DoAfter; - -namespace Content.Shared.Arachne -{ - [Serializable, NetSerializable] - public sealed partial class ArachneCocoonDoAfterEvent : SimpleDoAfterEvent - { - } -} diff --git a/Content.Shared/Arachne/WebComponent.cs b/Content.Shared/Arachne/WebComponent.cs deleted file mode 100644 index c8284f3943..0000000000 --- a/Content.Shared/Arachne/WebComponent.cs +++ /dev/null @@ -1,8 +0,0 @@ -using Robust.Shared.GameStates; - -namespace Content.Shared.Arachne -{ - [RegisterComponent, NetworkedComponent] - public sealed partial class WebComponent : Component - {} -} diff --git a/Content.Shared/Armor/AllowSuitStorageComponent.cs b/Content.Shared/Armor/AllowSuitStorageComponent.cs new file mode 100644 index 0000000000..aa7bce1c87 --- /dev/null +++ b/Content.Shared/Armor/AllowSuitStorageComponent.cs @@ -0,0 +1,10 @@ +namespace Content.Shared.Armor; + +/// +/// Used on outerclothing to allow use of suit storage +/// +[RegisterComponent] +public sealed partial class AllowSuitStorageComponent : Component +{ + +} diff --git a/Content.Shared/Atmos/AtmosDirection.cs b/Content.Shared/Atmos/AtmosDirection.cs index 09ba521aa9..a8155ef88d 100644 --- a/Content.Shared/Atmos/AtmosDirection.cs +++ b/Content.Shared/Atmos/AtmosDirection.cs @@ -104,15 +104,14 @@ public static Angle ToAngle(this AtmosDirection direction) { return direction switch { - AtmosDirection.East => Angle.FromDegrees(90), - AtmosDirection.North => Angle.FromDegrees(180), - AtmosDirection.West => Angle.FromDegrees(270), - AtmosDirection.South => Angle.FromDegrees(0), - - AtmosDirection.NorthEast => Angle.FromDegrees(135), - AtmosDirection.NorthWest => Angle.FromDegrees(205), - AtmosDirection.SouthWest => Angle.FromDegrees(315), - AtmosDirection.SouthEast => Angle.FromDegrees(45), + AtmosDirection.South => Angle.Zero, + AtmosDirection.East => new Angle(MathHelper.PiOver2), + AtmosDirection.North => new Angle(Math.PI), + AtmosDirection.West => new Angle(-MathHelper.PiOver2), + AtmosDirection.NorthEast => new Angle(Math.PI*3/4), + AtmosDirection.NorthWest => new Angle(-Math.PI*3/4), + AtmosDirection.SouthWest => new Angle(-MathHelper.PiOver4), + AtmosDirection.SouthEast => new Angle(MathHelper.PiOver4), _ => throw new ArgumentOutOfRangeException(nameof(direction), $"It was {direction}."), }; diff --git a/Content.Shared/Atmos/Components/GasAnalyzerComponent.cs b/Content.Shared/Atmos/Components/GasAnalyzerComponent.cs index 51ae8cc740..dec9516c01 100644 --- a/Content.Shared/Atmos/Components/GasAnalyzerComponent.cs +++ b/Content.Shared/Atmos/Components/GasAnalyzerComponent.cs @@ -56,13 +56,15 @@ public struct GasMixEntry /// Name of the tab in the UI /// public readonly string Name; + public readonly float Volume; public readonly float Pressure; public readonly float Temperature; public readonly GasEntry[]? Gases; - public GasMixEntry(string name, float pressure, float temperature, GasEntry[]? gases = null) + public GasMixEntry(string name, float volume, float pressure, float temperature, GasEntry[]? gases = null) { Name = name; + Volume = volume; Pressure = pressure; Temperature = temperature; Gases = gases; diff --git a/Content.Shared/Atmos/Consoles/Components/AtmosAlertsComputerComponent.cs b/Content.Shared/Atmos/Consoles/Components/AtmosAlertsComputerComponent.cs new file mode 100644 index 0000000000..d64c8907af --- /dev/null +++ b/Content.Shared/Atmos/Consoles/Components/AtmosAlertsComputerComponent.cs @@ -0,0 +1,235 @@ +using Content.Shared.Atmos.Consoles; +using Content.Shared.Atmos.Monitor; +using Robust.Shared.GameStates; +using Robust.Shared.Map; +using Robust.Shared.Serialization; + +namespace Content.Shared.Atmos.Components; + +[RegisterComponent, NetworkedComponent, AutoGenerateComponentState] +[Access(typeof(SharedAtmosAlertsComputerSystem))] +public sealed partial class AtmosAlertsComputerComponent : Component +{ + /// + /// The current entity of interest (selected via the console UI) + /// + [ViewVariables] + public NetEntity? FocusDevice; + + /// + /// A list of all the atmos devices that will be used to populate the nav map + /// + [ViewVariables, AutoNetworkedField] + public HashSet AtmosDevices = new(); + + /// + /// A list of all the air alarms that have had their alerts silenced on this particular console + /// + [ViewVariables, AutoNetworkedField] + public HashSet SilencedDevices = new(); +} + +[Serializable, NetSerializable] +public struct AtmosAlertsDeviceNavMapData +{ + /// + /// The entity in question + /// + public NetEntity NetEntity; + + /// + /// Location of the entity + /// + public NetCoordinates NetCoordinates; + + /// + /// Used to determine what map icons to use + /// + public AtmosAlertsComputerGroup Group; + + /// + /// Populate the atmos monitoring console nav map with a single entity + /// + public AtmosAlertsDeviceNavMapData(NetEntity netEntity, NetCoordinates netCoordinates, AtmosAlertsComputerGroup group) + { + NetEntity = netEntity; + NetCoordinates = netCoordinates; + Group = group; + } +} + +[Serializable, NetSerializable] +public struct AtmosAlertsFocusDeviceData +{ + /// + /// Focus entity + /// + public NetEntity NetEntity; + + /// + /// Temperature (K) and related alert state + /// + public (float, AtmosAlarmType) TemperatureData; + + /// + /// Pressure (kPA) and related alert state + /// + public (float, AtmosAlarmType) PressureData; + + /// + /// Moles, percentage, and related alert state, for all detected gases + /// + public Dictionary GasData; + + /// + /// Populates the atmos monitoring console focus entry with atmospheric data + /// + public AtmosAlertsFocusDeviceData + (NetEntity netEntity, + (float, AtmosAlarmType) temperatureData, + (float, AtmosAlarmType) pressureData, + Dictionary gasData) + { + NetEntity = netEntity; + TemperatureData = temperatureData; + PressureData = pressureData; + GasData = gasData; + } +} + +[Serializable, NetSerializable] +public sealed class AtmosAlertsComputerBoundInterfaceState : BoundUserInterfaceState +{ + /// + /// A list of all air alarms + /// + public AtmosAlertsComputerEntry[] AirAlarms; + + /// + /// A list of all fire alarms + /// + public AtmosAlertsComputerEntry[] FireAlarms; + + /// + /// Data for the UI focus (if applicable) + /// + public AtmosAlertsFocusDeviceData? FocusData; + + /// + /// Sends data from the server to the client to populate the atmos monitoring console UI + /// + public AtmosAlertsComputerBoundInterfaceState(AtmosAlertsComputerEntry[] airAlarms, AtmosAlertsComputerEntry[] fireAlarms, AtmosAlertsFocusDeviceData? focusData) + { + AirAlarms = airAlarms; + FireAlarms = fireAlarms; + FocusData = focusData; + } +} + +[Serializable, NetSerializable] +public struct AtmosAlertsComputerEntry +{ + /// + /// The entity in question + /// + public NetEntity NetEntity; + + /// + /// Location of the entity + /// + public NetCoordinates Coordinates; + + /// + /// The type of entity + /// + public AtmosAlertsComputerGroup Group; + + /// + /// Current alarm state + /// + public AtmosAlarmType AlarmState; + + /// + /// Localised device name + /// + public string EntityName; + + /// + /// Device network address + /// + public string Address; + + /// + /// Used to populate the atmos monitoring console UI with data from a single air alarm + /// + public AtmosAlertsComputerEntry + (NetEntity entity, + NetCoordinates coordinates, + AtmosAlertsComputerGroup group, + AtmosAlarmType alarmState, + string entityName, + string address) + { + NetEntity = entity; + Coordinates = coordinates; + Group = group; + AlarmState = alarmState; + EntityName = entityName; + Address = address; + } +} + +[Serializable, NetSerializable] +public sealed class AtmosAlertsComputerFocusChangeMessage : BoundUserInterfaceMessage +{ + public NetEntity? FocusDevice; + + /// + /// Used to inform the server that the specified focus for the atmos monitoring console has been changed by the client + /// + public AtmosAlertsComputerFocusChangeMessage(NetEntity? focusDevice) + { + FocusDevice = focusDevice; + } +} + +[Serializable, NetSerializable] +public sealed class AtmosAlertsComputerDeviceSilencedMessage : BoundUserInterfaceMessage +{ + public NetEntity AtmosDevice; + public bool SilenceDevice = true; + + /// + /// Used to inform the server that the client has silenced alerts from the specified device to this atmos monitoring console + /// + public AtmosAlertsComputerDeviceSilencedMessage(NetEntity atmosDevice, bool silenceDevice = true) + { + AtmosDevice = atmosDevice; + SilenceDevice = silenceDevice; + } +} + +/// +/// List of all the different atmos device groups +/// +public enum AtmosAlertsComputerGroup +{ + Invalid, + AirAlarm, + FireAlarm, +} + +[NetSerializable, Serializable] +public enum AtmosAlertsComputerVisuals +{ + ComputerLayerScreen, +} + +/// +/// UI key associated with the atmos monitoring console +/// +[Serializable, NetSerializable] +public enum AtmosAlertsComputerUiKey +{ + Key +} diff --git a/Content.Shared/Atmos/Consoles/Components/AtmosAlertsDeviceComponent.cs b/Content.Shared/Atmos/Consoles/Components/AtmosAlertsDeviceComponent.cs new file mode 100644 index 0000000000..881d60b084 --- /dev/null +++ b/Content.Shared/Atmos/Consoles/Components/AtmosAlertsDeviceComponent.cs @@ -0,0 +1,14 @@ +using Robust.Shared.GameStates; + +namespace Content.Shared.Atmos.Components; + +[RegisterComponent, NetworkedComponent] +[Access([])] +public sealed partial class AtmosAlertsDeviceComponent : Component +{ + /// + /// The group that the entity belongs to + /// + [DataField, ViewVariables] + public AtmosAlertsComputerGroup Group; +} diff --git a/Content.Shared/Atmos/Consoles/SharedAtmosAlertsComputerSystem.cs b/Content.Shared/Atmos/Consoles/SharedAtmosAlertsComputerSystem.cs new file mode 100644 index 0000000000..7e2b2b0467 --- /dev/null +++ b/Content.Shared/Atmos/Consoles/SharedAtmosAlertsComputerSystem.cs @@ -0,0 +1,24 @@ +using Content.Shared.Atmos.Components; + +namespace Content.Shared.Atmos.Consoles; + +public abstract partial class SharedAtmosAlertsComputerSystem : EntitySystem +{ + public override void Initialize() + { + base.Initialize(); + + SubscribeLocalEvent(OnDeviceSilencedMessage); + } + + private void OnDeviceSilencedMessage(EntityUid uid, AtmosAlertsComputerComponent component, AtmosAlertsComputerDeviceSilencedMessage args) + { + if (args.SilenceDevice) + component.SilencedDevices.Add(args.AtmosDevice); + + else + component.SilencedDevices.Remove(args.AtmosDevice); + + Dirty(uid, component); + } +} diff --git a/Content.Server/Atmos/GasMixture.cs b/Content.Shared/Atmos/GasMixture.cs similarity index 98% rename from Content.Server/Atmos/GasMixture.cs rename to Content.Shared/Atmos/GasMixture.cs index 3d73a4d0b1..a676ed6720 100644 --- a/Content.Server/Atmos/GasMixture.cs +++ b/Content.Shared/Atmos/GasMixture.cs @@ -1,13 +1,12 @@ using System.Diagnostics.CodeAnalysis; using System.Linq; using System.Runtime.CompilerServices; -using Content.Server.Atmos.Reactions; -using Content.Shared.Atmos; using Content.Shared.Atmos.EntitySystems; +using Content.Shared.Atmos.Reactions; using Robust.Shared.Serialization; using Robust.Shared.Utility; -namespace Content.Server.Atmos +namespace Content.Shared.Atmos { /// /// A general-purpose, variable volume gas mixture. diff --git a/Content.Shared/Atmos/GasMixtureStringRepresentation.cs b/Content.Shared/Atmos/GasMixtureStringRepresentation.cs new file mode 100644 index 0000000000..942b2bdc67 --- /dev/null +++ b/Content.Shared/Atmos/GasMixtureStringRepresentation.cs @@ -0,0 +1,16 @@ +namespace Content.Shared.Atmos; + +public readonly record struct GasMixtureStringRepresentation(float TotalMoles, float Temperature, float Pressure, Dictionary MolesPerGas) : IFormattable +{ + public override string ToString() + { + return $"{Temperature}K {Pressure} kPa"; + } + + public string ToString(string? format, IFormatProvider? formatProvider) + { + return ToString(); + } + + public static implicit operator string(GasMixtureStringRepresentation rep) => rep.ToString(); +} diff --git a/Content.Shared/Atmos/GetFireProtectionEvent.cs b/Content.Shared/Atmos/GetFireProtectionEvent.cs new file mode 100644 index 0000000000..e243295449 --- /dev/null +++ b/Content.Shared/Atmos/GetFireProtectionEvent.cs @@ -0,0 +1,33 @@ +using Content.Shared.Inventory; + +namespace Content.Shared.Atmos; + +/// +/// Raised on a burning entity to check its fire protection. +/// Damage taken is multiplied by the final amount, but not temperature. +/// TemperatureProtection is needed for that. +/// +[ByRefEvent] +public sealed class GetFireProtectionEvent : EntityEventArgs, IInventoryRelayEvent +{ + public SlotFlags TargetSlots { get; } = ~SlotFlags.POCKET; + + /// + /// What to multiply the fire damage by. + /// If this is 0 then it's ignored + /// + public float Multiplier; + + public GetFireProtectionEvent() + { + Multiplier = 1f; + } + + /// + /// Reduce fire damage taken by a percentage. + /// + public void Reduce(float by) + { + Multiplier -= by; + } +} diff --git a/Content.Shared/Atmos/Reactions/GasReactionEnums.cs b/Content.Shared/Atmos/Reactions/GasReactionEnums.cs new file mode 100644 index 0000000000..73b8998d40 --- /dev/null +++ b/Content.Shared/Atmos/Reactions/GasReactionEnums.cs @@ -0,0 +1,14 @@ +namespace Content.Shared.Atmos.Reactions; + +[Flags] +public enum ReactionResult : byte +{ + NoReaction = 0, + Reacting = 1, + StopReactions = 2, +} + +public enum GasReaction : byte +{ + Fire = 0, +} diff --git a/Content.Shared/Audio/Jukebox/JukeboxPrototype.cs b/Content.Shared/Audio/Jukebox/JukeboxPrototype.cs index 256f22f2a6..ad690ef497 100644 --- a/Content.Shared/Audio/Jukebox/JukeboxPrototype.cs +++ b/Content.Shared/Audio/Jukebox/JukeboxPrototype.cs @@ -7,7 +7,7 @@ namespace Content.Shared.Audio.Jukebox; /// Soundtrack that's visible on the jukebox list. /// [Prototype] -public sealed class JukeboxPrototype : IPrototype +public sealed partial class JukeboxPrototype : IPrototype { [IdDataField] public string ID { get; } = string.Empty; diff --git a/Content.Shared/Bed/Sleep/SharedSleepingSystem.cs b/Content.Shared/Bed/Sleep/SharedSleepingSystem.cs index c6248c88f7..aa5578a3a9 100644 --- a/Content.Shared/Bed/Sleep/SharedSleepingSystem.cs +++ b/Content.Shared/Bed/Sleep/SharedSleepingSystem.cs @@ -31,6 +31,8 @@ public override void Initialize() private void OnMapInit(EntityUid uid, SleepingComponent component, MapInitEvent args) { + component.SleepingSince = _gameTiming.CurTime; + var ev = new SleepStateChangedEvent(true); RaiseLocalEvent(uid, ev); _blindableSystem.UpdateIsBlind(uid); @@ -43,7 +45,10 @@ private void OnMapInit(EntityUid uid, SleepingComponent component, MapInitEvent private void OnShutdown(EntityUid uid, SleepingComponent component, ComponentShutdown args) { _actionsSystem.RemoveAction(uid, component.WakeAction); - var ev = new SleepStateChangedEvent(false); + var ev = new SleepStateChangedEvent(false) + { + TimeSlept = _gameTiming.CurTime - component.SleepingSince + }; RaiseLocalEvent(uid, ev); _blindableSystem.UpdateIsBlind(uid); } @@ -85,6 +90,11 @@ public sealed class SleepStateChangedEvent : EntityEventArgs { public bool FellAsleep = false; + /// + /// The amount of time this entity slept for. Null if is true. + /// + public TimeSpan? TimeSlept; + public SleepStateChangedEvent(bool fellAsleep) { FellAsleep = fellAsleep; diff --git a/Content.Shared/Bed/Sleep/SleepingComponent.cs b/Content.Shared/Bed/Sleep/SleepingComponent.cs index cd468440f4..e87aca2203 100644 --- a/Content.Shared/Bed/Sleep/SleepingComponent.cs +++ b/Content.Shared/Bed/Sleep/SleepingComponent.cs @@ -28,4 +28,10 @@ public sealed partial class SleepingComponent : Component public TimeSpan CoolDownEnd; [DataField("wakeAction")] public EntityUid? WakeAction; + + /// + /// The moment this entity went to sleep. Initialized on MapInit. + /// + [DataField] + public TimeSpan SleepingSince; } diff --git a/Content.Shared/Body/Prototypes/MetabolismGroupPrototype.cs b/Content.Shared/Body/Prototypes/MetabolismGroupPrototype.cs index 162b5f2d6c..82f4e70ce0 100644 --- a/Content.Shared/Body/Prototypes/MetabolismGroupPrototype.cs +++ b/Content.Shared/Body/Prototypes/MetabolismGroupPrototype.cs @@ -1,4 +1,4 @@ -using Robust.Shared.Prototypes; +using Robust.Shared.Prototypes; namespace Content.Shared.Body.Prototypes { @@ -7,5 +7,11 @@ public sealed partial class MetabolismGroupPrototype : IPrototype { [IdDataField] public string ID { get; private set; } = default!; + + [DataField("name", required: true)] + private LocId Name { get; set; } + + [ViewVariables(VVAccess.ReadOnly)] + public string LocalizedName => Loc.GetString(Name); } } diff --git a/Content.Shared/Body/Prototypes/MetabolizerTypePrototype.cs b/Content.Shared/Body/Prototypes/MetabolizerTypePrototype.cs index c840983ca0..5273ac722b 100644 --- a/Content.Shared/Body/Prototypes/MetabolizerTypePrototype.cs +++ b/Content.Shared/Body/Prototypes/MetabolizerTypePrototype.cs @@ -1,4 +1,4 @@ -using Robust.Shared.Prototypes; +using Robust.Shared.Prototypes; namespace Content.Shared.Body.Prototypes { @@ -9,6 +9,9 @@ public sealed partial class MetabolizerTypePrototype : IPrototype public string ID { get; private set; } = default!; [DataField("name", required: true)] - public string Name { get; private set; } = default!; + private LocId Name { get; set; } + + [ViewVariables(VVAccess.ReadOnly)] + public string LocalizedName => Loc.GetString(Name); } } diff --git a/Content.Shared/CCVar/CCVars.cs b/Content.Shared/CCVar/CCVars.cs index e5670f47ac..11b9fd888f 100644 --- a/Content.Shared/CCVar/CCVars.cs +++ b/Content.Shared/CCVar/CCVars.cs @@ -1,6 +1,8 @@ +using Content.Shared.Maps; using Content.Shared.Supermatter.Components; using Robust.Shared; using Robust.Shared.Configuration; +using Robust.Shared.Physics.Components; namespace Content.Shared.CCVar { @@ -205,7 +207,7 @@ public static readonly CVarDef // 12 Minutes /// Controls the maximum number of character slots a player is allowed to have. /// public static readonly CVarDef - GameMaxCharacterSlots = CVarDef.Create("game.maxcharacterslots", 10, CVar.ARCHIVE | CVar.SERVERONLY); + GameMaxCharacterSlots = CVarDef.Create("game.maxcharacterslots", 30, CVar.ARCHIVE | CVar.SERVERONLY); /// /// Controls the game map prototype to load. SS14 stores these prototypes in Prototypes/Maps. @@ -402,6 +404,12 @@ public static readonly CVarDef public static readonly CVarDef GamePressToSprint = CVarDef.Create("game.press_to_sprint", false, CVar.REPLICATED); + /// + /// Whether item slots, such as power cell slots or AME fuel cell slots, should support quick swap if it is not otherwise specified in their YAML prototype. + /// + public static readonly CVarDef AllowSlotQuickSwap = + CVarDef.Create("game.slot_quick_swap", false, CVar.REPLICATED); + #if EXCEPTION_TOLERANCE /// /// Amount of times round start must fail before the server is shut down. @@ -575,6 +583,12 @@ public static readonly CVarDef public static readonly CVarDef LoginTipsDataset = CVarDef.Create("tips.login_dataset", "Tips"); + /// + /// The chance for Tippy to replace a normal tip message. + /// + public static readonly CVarDef TipsTippyChance = + CVarDef.Create("tips.tippy_chance", 0.01f); + /* * Console */ @@ -763,7 +777,6 @@ public static readonly CVarDef public static readonly CVarDef OfferModeIndicatorsPointShow = CVarDef.Create("hud.offer_mode_indicators_point_show", true, CVar.ARCHIVE | CVar.CLIENTONLY); - public static readonly CVarDef LoocAboveHeadShow = CVarDef.Create("hud.show_looc_above_head", true, CVar.ARCHIVE | CVar.CLIENTONLY); @@ -852,19 +865,43 @@ public static readonly CVarDef /// Default severity for role bans /// public static readonly CVarDef RoleBanDefaultSeverity = - CVarDef.Create("admin.role_ban_default_severity", "medium", CVar.ARCHIVE | CVar.SERVER); + CVarDef.Create("admin.role_ban_default_severity", "medium", CVar.ARCHIVE | CVar.SERVER | CVar.REPLICATED); /// /// Default severity for department bans /// public static readonly CVarDef DepartmentBanDefaultSeverity = - CVarDef.Create("admin.department_ban_default_severity", "medium", CVar.ARCHIVE | CVar.SERVER); + CVarDef.Create("admin.department_ban_default_severity", "medium", CVar.ARCHIVE | CVar.SERVER | CVar.REPLICATED); /// /// Default severity for server bans /// public static readonly CVarDef ServerBanDefaultSeverity = - CVarDef.Create("admin.server_ban_default_severity", "High", CVar.ARCHIVE | CVar.SERVER); + CVarDef.Create("admin.server_ban_default_severity", "High", CVar.ARCHIVE | CVar.SERVER | CVar.REPLICATED); + + /// + /// Whether a server ban will ban the player's ip by default. + /// + public static readonly CVarDef ServerBanIpBanDefault = + CVarDef.Create("admin.server_ban_ip_ban_default", true, CVar.ARCHIVE | CVar.SERVER | CVar.REPLICATED); + + /// + /// Whether a server ban will ban the player's hardware id by default. + /// + public static readonly CVarDef ServerBanHwidBanDefault = + CVarDef.Create("admin.server_ban_hwid_ban_default", true, CVar.ARCHIVE | CVar.SERVER | CVar.REPLICATED); + + /// + /// Whether to use details from last connection for ip/hwid in the BanPanel. + /// + public static readonly CVarDef ServerBanUseLastDetails = + CVarDef.Create("admin.server_ban_use_last_details", true, CVar.ARCHIVE | CVar.SERVER | CVar.REPLICATED); + + /// + /// Whether to erase a player's chat messages and their entity from the game when banned. + /// + public static readonly CVarDef ServerBanErasePlayer = + CVarDef.Create("admin.server_ban_erase_player", false, CVar.ARCHIVE | CVar.SERVER | CVar.REPLICATED); /// /// Minimum explosion intensity to create an admin alert message. -1 to disable the alert. @@ -1009,6 +1046,13 @@ public static readonly CVarDef public static readonly CVarDef ExplosionSingleTickAreaLimit = CVarDef.Create("explosion.single_tick_area_limit", 400, CVar.SERVERONLY); + /// + /// Whether or not explosions are allowed to create tiles that have + /// set to true. + /// + public static readonly CVarDef ExplosionCanCreateVacuum = + CVarDef.Create("explosion.can_create_vacuum", true, CVar.SERVERONLY); + /* * Radiation */ @@ -1505,6 +1549,18 @@ public static readonly CVarDef public static readonly CVarDef ArrivalsCooldown = CVarDef.Create("shuttle.arrivals_cooldown", 50f, CVar.SERVERONLY); + /// + /// Time it takes the shuttle to spin up it's hyper drive and jump + /// + public static readonly CVarDef ArrivalsStartupTime= + CVarDef.Create("shuttle.arrivals_startup_time", 5.5f, CVar.SERVERONLY); + + /// + /// Time spent in hyperspace + /// + public static readonly CVarDef ArrivalsHyperspaceTime = + CVarDef.Create("shuttle.arrivals_hyperspace_time", 20f, CVar.SERVERONLY); + /// /// Are players allowed to return on the arrivals shuttle. /// @@ -1517,6 +1573,49 @@ public static readonly CVarDef public static readonly CVarDef GridFill = CVarDef.Create("shuttle.grid_fill", true, CVar.SERVERONLY); + /// + /// Whether to automatically preloading grids by GridPreloaderSystem + /// + public static readonly CVarDef PreloadGrids = + CVarDef.Create("shuttle.preload_grids", true, CVar.SERVERONLY); + + /// + /// How long the warmup time before FTL start should be. + /// + public static readonly CVarDef FTLStartupTime = + CVarDef.Create("shuttle.startup_time", 5.5f, CVar.SERVERONLY); + + /// + /// How long a shuttle spends in FTL. + /// + public static readonly CVarDef FTLTravelTime = + CVarDef.Create("shuttle.travel_time", 20f, CVar.SERVERONLY); + + /// + /// How long the final stage of FTL before arrival should be. + /// + public static readonly CVarDef FTLArrivalTime = + CVarDef.Create("shuttle.arrival_time", 5f, CVar.SERVERONLY); + + /// + /// How much time needs to pass before a shuttle can FTL again. + /// + public static readonly CVarDef FTLCooldown = + CVarDef.Create("shuttle.cooldown", 10f, CVar.SERVERONLY); + + /// + /// The maximum a grid can have before it becomes unable to FTL. + /// Any value equal to or less than zero will disable this check. + /// + public static readonly CVarDef FTLMassLimit = + CVarDef.Create("shuttle.mass_limit", 300f, CVar.SERVERONLY); + + /// + /// How long to knock down entities for if they aren't buckled when FTL starts and stops. + /// + public static readonly CVarDef HyperspaceKnockdownTime = + CVarDef.Create("shuttle.hyperspace_knockdown_time", 5f, CVar.SERVERONLY); + /* * Emergency */ @@ -1541,6 +1640,7 @@ public static readonly CVarDef /// /// The minimum time for the emergency shuttle to arrive at centcomm. + /// Actual minimum travel time cannot be less than /// public static readonly CVarDef EmergencyShuttleMinTransitTime = CVarDef.Create("shuttle.emergency_transit_time_min", 90f, CVar.SERVERONLY); @@ -1696,6 +1796,9 @@ public static readonly CVarDef public static readonly CVarDef ViewportWidth = CVarDef.Create("viewport.width", 21, CVar.CLIENTONLY | CVar.ARCHIVE); + public static readonly CVarDef ViewportVerticalFit = + CVarDef.Create("viewport.vertical_fit", true, CVar.CLIENTONLY | CVar.ARCHIVE); + /* * FOV */ @@ -1763,6 +1866,12 @@ public static readonly CVarDef public static readonly CVarDef AccessibilityColorblindFriendly = CVarDef.Create("accessibility.colorblind_friendly", false, CVar.CLIENTONLY | CVar.ARCHIVE); + /// + /// Disables all vision filters for species like Vulpkanin or Harpies. There are good reasons someone might want to disable these. + /// + public static readonly CVarDef NoVisionFilters = + CVarDef.Create("accessibility.no_vision_filters", false, CVar.CLIENTONLY | CVar.ARCHIVE); + /* * CHAT */ @@ -1991,6 +2100,12 @@ public static readonly CVarDef public static readonly CVarDef ToggleWalk = CVarDef.Create("control.toggle_walk", false, CVar.CLIENTONLY | CVar.ARCHIVE); + /// + /// Whether the player mob is walking by default instead of running. + /// + public static readonly CVarDef DefaultWalk = + CVarDef.Create("control.default_walk", true, CVar.CLIENT | CVar.REPLICATED | CVar.ARCHIVE); + /* * STORAGE */ @@ -2209,6 +2324,10 @@ public static readonly CVarDef public static readonly CVarDef GatewayGeneratorEnabled = CVarDef.Create("gateway.generator_enabled", true); + // Clippy! + public static readonly CVarDef TippyEntity = + CVarDef.Create("tippy.entity", "Tippy", CVar.SERVER | CVar.REPLICATED); + /* * DEBUG */ @@ -2441,6 +2560,25 @@ public static readonly CVarDef public static readonly CVarDef MoodDecreasesSpeed = CVarDef.Create("mood.decreases_speed", true, CVar.SERVER); + public static readonly CVarDef MoodModifiesThresholds = + CVarDef.Create("mood.modify_thresholds", false, CVar.SERVER); + + #endregion + + #region Lying Down System + + public static readonly CVarDef AutoGetUp = + CVarDef.Create("rest.auto_get_up", true, CVar.CLIENT | CVar.ARCHIVE | CVar.REPLICATED); + + public static readonly CVarDef HoldLookUp = + CVarDef.Create("rest.hold_look_up", false, CVar.CLIENT | CVar.ARCHIVE); + + /// + /// When true, players can choose to crawl under tables while laying down, using the designated keybind. + /// + public static readonly CVarDef CrawlUnderTables = + CVarDef.Create("rest.crawlundertables", true, CVar.SERVER | CVar.ARCHIVE); + #endregion #region Material Reclaimer @@ -2452,5 +2590,34 @@ public static readonly CVarDef CVarDef.Create("reclaimer.allow_gibbing", true, CVar.SERVER); #endregion + + #region Jetpack System + + /// + /// When true, Jetpacks can be enabled anywhere, even in gravity. + /// + public static readonly CVarDef JetpackEnableAnywhere = + CVarDef.Create("jetpack.enable_anywhere", false, CVar.REPLICATED); + + /// + /// When true, jetpacks can be enabled on grids that have zero gravity. + /// + public static readonly CVarDef JetpackEnableInNoGravity = + CVarDef.Create("jetpack.enable_in_no_gravity", true, CVar.REPLICATED); + + #endregion + + #region GhostRespawn + + public static readonly CVarDef GhostRespawnTime = + CVarDef.Create("ghost.respawn_time", 15d, CVar.SERVERONLY); + + public static readonly CVarDef GhostRespawnMaxPlayers = + CVarDef.Create("ghost.respawn_max_players", 40, CVar.SERVERONLY); + + public static readonly CVarDef GhostAllowSameCharacter = + CVarDef.Create("ghost.allow_same_character", false, CVar.SERVERONLY); + + #endregion } } diff --git a/Content.Shared/Cargo/CargoOrderData.cs b/Content.Shared/Cargo/CargoOrderData.cs index a6d5fb0a18..ce05d92236 100644 --- a/Content.Shared/Cargo/CargoOrderData.cs +++ b/Content.Shared/Cargo/CargoOrderData.cs @@ -1,48 +1,62 @@ using Robust.Shared.Serialization; -using Content.Shared.Access.Components; using System.Text; namespace Content.Shared.Cargo { - [NetSerializable, Serializable] - public sealed class CargoOrderData + [DataDefinition, NetSerializable, Serializable] + public sealed partial class CargoOrderData { /// /// Price when the order was added. /// + [DataField] public int Price; /// /// A unique (arbitrary) ID which identifies this order. /// - public readonly int OrderId; + [DataField] + public int OrderId { get; private set; } /// /// Prototype Id for the item to be created /// - public readonly string ProductId; + [DataField] + public string ProductId { get; private set; } + + /// + /// Prototype Name + /// + [DataField] + public string ProductName { get; private set; } /// /// The number of items in the order. Not readonly, as it might change /// due to caps on the amount of orders that can be placed. /// + [DataField] public int OrderQuantity; /// /// How many instances of this order that we've already dispatched /// + [DataField] public int NumDispatched = 0; - public readonly string Requester; + [DataField] + public string Requester { get; private set; } // public String RequesterRank; // TODO Figure out how to get Character ID card data // public int RequesterId; - public readonly string Reason; + [DataField] + public string Reason { get; private set; } public bool Approved => Approver is not null; + [DataField] public string? Approver; - public CargoOrderData(int orderId, string productId, int price, int amount, string requester, string reason) + public CargoOrderData(int orderId, string productId, string productName, int price, int amount, string requester, string reason) { OrderId = orderId; ProductId = productId; + ProductName = productName; Price = price; OrderQuantity = amount; Requester = requester; diff --git a/Content.Shared/Cargo/Components/CargoOrderConsoleComponent.cs b/Content.Shared/Cargo/Components/CargoOrderConsoleComponent.cs index a7d1f53175..873e9bb7b9 100644 --- a/Content.Shared/Cargo/Components/CargoOrderConsoleComponent.cs +++ b/Content.Shared/Cargo/Components/CargoOrderConsoleComponent.cs @@ -1,6 +1,8 @@ using Content.Shared.Cargo.Prototypes; using Robust.Shared.Audio; using Robust.Shared.GameStates; +using Content.Shared.Radio; +using Robust.Shared.Prototypes; namespace Content.Shared.Cargo.Components; @@ -21,5 +23,11 @@ public sealed partial class CargoOrderConsoleComponent : Component /// [DataField, ViewVariables(VVAccess.ReadWrite)] public List AllowedGroups = new() { "market" }; + + /// + /// Radio channel on which order approval announcements are transmitted + /// + [DataField, ViewVariables(VVAccess.ReadWrite)] + public ProtoId AnnouncementChannel = "Supply"; } diff --git a/Content.Shared/Cargo/Components/CashComponent.cs b/Content.Shared/Cargo/Components/CashComponent.cs index 10a47ff803..89af094e04 100644 --- a/Content.Shared/Cargo/Components/CashComponent.cs +++ b/Content.Shared/Cargo/Components/CashComponent.cs @@ -3,7 +3,7 @@ namespace Content.Shared.Cargo.Components; /// -/// Can be inserted into a to increase the station's bank account. +/// Can be inserted into a to increase the station's bank account. /// [RegisterComponent, NetworkedComponent] public sealed partial class CashComponent : Component diff --git a/Content.Shared/Cargo/Components/SharedCargoTelepadComponent.cs b/Content.Shared/Cargo/Components/SharedCargoTelepadComponent.cs index 911ea41cca..e69e83d635 100644 --- a/Content.Shared/Cargo/Components/SharedCargoTelepadComponent.cs +++ b/Content.Shared/Cargo/Components/SharedCargoTelepadComponent.cs @@ -1,3 +1,4 @@ +using Content.Shared.Construction.Prototypes; using Content.Shared.DeviceLinking; using Robust.Shared.Audio; using Robust.Shared.GameStates; @@ -12,30 +13,51 @@ namespace Content.Shared.Cargo.Components; [RegisterComponent, NetworkedComponent, Access(typeof(SharedCargoSystem))] public sealed partial class CargoTelepadComponent : Component { + [DataField] + public List CurrentOrders = new(); + /// - /// The actual amount of time it takes to teleport from the telepad + /// The base amount of time it takes to teleport from the telepad /// - [DataField("delay"), ViewVariables(VVAccess.ReadWrite)] + [DataField] + public float BaseDelay = 10f; + + /// + /// The actual amount of time it takes to teleport from the telepad + /// + [DataField] public float Delay = 10f; /// - /// How much time we've accumulated until next teleport. + /// The machine part that affects + /// + [DataField(customTypeSerializer: typeof(PrototypeIdSerializer)), ViewVariables(VVAccess.ReadWrite)] + public string MachinePartTeleportDelay = "Capacitor"; + + /// + /// A multiplier applied to for each level of + /// + [DataField] + public float PartRatingTeleportDelay = 0.8f; + + /// + /// How much time we've accumulated until next teleport. /// - [DataField("accumulator"), ViewVariables(VVAccess.ReadWrite)] + [DataField] public float Accumulator; - [DataField("currentState")] + [DataField] public CargoTelepadState CurrentState = CargoTelepadState.Unpowered; - [DataField("teleportSound")] + [DataField] public SoundSpecifier TeleportSound = new SoundPathSpecifier("/Audio/Machines/phasein.ogg"); /// /// The paper-type prototype to spawn with the order information. /// - [DataField("printerOutput", customTypeSerializer: typeof(PrototypeIdSerializer)), ViewVariables(VVAccess.ReadWrite)] + [DataField(customTypeSerializer: typeof(PrototypeIdSerializer)), ViewVariables(VVAccess.ReadWrite)] public string PrinterOutput = "PaperCargoInvoice"; - [DataField("receiverPort", customTypeSerializer: typeof(PrototypeIdSerializer)), ViewVariables(VVAccess.ReadWrite)] + [DataField(customTypeSerializer: typeof(PrototypeIdSerializer)), ViewVariables(VVAccess.ReadWrite)] public string ReceiverPort = "OrderReceiver"; } diff --git a/Content.Shared/Cargo/Prototypes/CargoProductPrototype.cs b/Content.Shared/Cargo/Prototypes/CargoProductPrototype.cs index 1d0ca8abdb..af2f6613d6 100644 --- a/Content.Shared/Cargo/Prototypes/CargoProductPrototype.cs +++ b/Content.Shared/Cargo/Prototypes/CargoProductPrototype.cs @@ -1,4 +1,4 @@ -using Robust.Shared.Prototypes; +using Robust.Shared.Prototypes; using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype; using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype.Array; using Robust.Shared.Utility; diff --git a/Content.Shared/Chat/EmotesEvents.cs b/Content.Shared/Chat/EmotesEvents.cs new file mode 100644 index 0000000000..4479f8b2ab --- /dev/null +++ b/Content.Shared/Chat/EmotesEvents.cs @@ -0,0 +1,11 @@ +using Content.Shared.Chat.Prototypes; +using Robust.Shared.Prototypes; +using Robust.Shared.Serialization; + +namespace Content.Shared.Chat; + +[Serializable, NetSerializable] +public sealed class PlayEmoteMessage(ProtoId protoId) : EntityEventArgs +{ + public readonly ProtoId ProtoId = protoId; +} diff --git a/Content.Shared/Chat/Prototypes/EmotePrototype.cs b/Content.Shared/Chat/Prototypes/EmotePrototype.cs index dda159b905..7ee958ee6a 100644 --- a/Content.Shared/Chat/Prototypes/EmotePrototype.cs +++ b/Content.Shared/Chat/Prototypes/EmotePrototype.cs @@ -1,11 +1,13 @@ +using Content.Shared.Whitelist; using Robust.Shared.Prototypes; using Robust.Shared.Serialization; +using Robust.Shared.Utility; namespace Content.Shared.Chat.Prototypes; /// /// IC emotes (scream, smile, clapping, etc). -/// Entities can activate emotes by chat input or code. +/// Entities can activate emotes by chat input, radial or code. /// [Prototype("emote")] public sealed partial class EmotePrototype : IPrototype @@ -13,18 +15,50 @@ public sealed partial class EmotePrototype : IPrototype [IdDataField] public string ID { get; private set; } = default!; + /// + /// Localization string for the emote name. Displayed in the radial UI. + /// + [DataField(required: true)] + public string Name = default!; + + /// + /// Determines if emote available to all by default + /// check comes after this setting + /// can ignore this setting + /// + [DataField] + public bool Available = true; + /// /// Different emote categories may be handled by different systems. /// Also may be used for filtering. /// - [DataField("category")] + [DataField] public EmoteCategory Category = EmoteCategory.General; + /// + /// An icon used to visually represent the emote in radial UI. + /// + [DataField] + public SpriteSpecifier Icon = new SpriteSpecifier.Texture(new("/Textures/Interface/Actions/scream.png")); + + /// + /// Determines conditions to this emote be available to use + /// + [DataField] + public EntityWhitelist? Whitelist; + + /// + /// Determines conditions to this emote be unavailable to use + /// + [DataField] + public EntityWhitelist? Blacklist; + /// /// Collection of words that will be sent to chat if emote activates. /// Will be picked randomly from list. /// - [DataField("chatMessages")] + [DataField] public List ChatMessages = new(); /// @@ -32,16 +66,8 @@ public sealed partial class EmotePrototype : IPrototype /// When typed into players chat they will activate emote event. /// All words should be unique across all emote prototypes. /// - [DataField("chatTriggers")] - public HashSet ChatTriggers = new(); - - // WD EDIT START [DataField] - public string ButtonText = "Unknown"; - - [DataField("allowMenu")] - public bool AllowToEmotionsMenu; - // WD EDIT END + public HashSet ChatTriggers = new(); } /// diff --git a/Content.Shared/Chat/Prototypes/EmoteSoundsPrototype.cs b/Content.Shared/Chat/Prototypes/EmoteSoundsPrototype.cs index c9a78e7d6d..2b7064c1e9 100644 --- a/Content.Shared/Chat/Prototypes/EmoteSoundsPrototype.cs +++ b/Content.Shared/Chat/Prototypes/EmoteSoundsPrototype.cs @@ -1,5 +1,6 @@ using Robust.Shared.Audio; using Robust.Shared.Prototypes; +using Robust.Shared.Serialization; using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype.Dictionary; namespace Content.Shared.Chat.Prototypes; @@ -8,8 +9,8 @@ namespace Content.Shared.Chat.Prototypes; /// Sounds collection for each . /// Different entities may use different sounds collections. /// -[Prototype("emoteSounds")] -public sealed partial class EmoteSoundsPrototype : IPrototype +[Prototype("emoteSounds"), Serializable, NetSerializable] +public sealed class EmoteSoundsPrototype : IPrototype { [IdDataField] public string ID { get; private set; } = default!; diff --git a/Content.Shared/Chat/SharedChatSystem.cs b/Content.Shared/Chat/SharedChatSystem.cs index fe48200110..79e3eb2212 100644 --- a/Content.Shared/Chat/SharedChatSystem.cs +++ b/Content.Shared/Chat/SharedChatSystem.cs @@ -163,10 +163,16 @@ public string SanitizeMessageCapital(string message) if (string.IsNullOrEmpty(message)) return message; // Capitalize first letter - message = char.ToUpper(message[0]) + message.Remove(0, 1); + message = OopsConcat(char.ToUpper(message[0]).ToString(), message.Remove(0, 1)); return message; } + private static string OopsConcat(string a, string b) + { + // This exists to prevent Roslyn being clever and compiling something that fails sandbox checks. + return a + b; + } + public string SanitizeMessageCapitalizeTheWordI(string message, string theWordI = "i") { if (string.IsNullOrEmpty(message)) diff --git a/Content.Shared/Chat/TypingIndicator/SharedTypingIndicatorSystem.cs b/Content.Shared/Chat/TypingIndicator/SharedTypingIndicatorSystem.cs index 41ed4b1b2b..81ebcfb108 100644 --- a/Content.Shared/Chat/TypingIndicator/SharedTypingIndicatorSystem.cs +++ b/Content.Shared/Chat/TypingIndicator/SharedTypingIndicatorSystem.cs @@ -1,5 +1,4 @@ -using Content.Shared.Clothing.Components; -using Content.Shared.Inventory.Events; +using Content.Shared.Clothing; namespace Content.Shared.Chat.TypingIndicator; @@ -17,25 +16,21 @@ public abstract class SharedTypingIndicatorSystem : EntitySystem public override void Initialize() { base.Initialize(); - SubscribeLocalEvent(OnGotEquipped); - SubscribeLocalEvent(OnGotUnequipped); + SubscribeLocalEvent(OnGotEquipped); + SubscribeLocalEvent(OnGotUnequipped); } - private void OnGotEquipped(EntityUid uid, TypingIndicatorClothingComponent component, GotEquippedEvent args) + private void OnGotEquipped(EntityUid uid, TypingIndicatorClothingComponent component, ClothingGotEquippedEvent args) { - if (!TryComp(uid, out var clothing) || - !TryComp(args.Equipee, out var indicator)) + if (!TryComp(args.Wearer, out var indicator)) return; - var isCorrectSlot = clothing.Slots.HasFlag(args.SlotFlags); - if (!isCorrectSlot) return; - indicator.Prototype = component.Prototype; } - private void OnGotUnequipped(EntityUid uid, TypingIndicatorClothingComponent component, GotUnequippedEvent args) + private void OnGotUnequipped(EntityUid uid, TypingIndicatorClothingComponent component, ClothingGotUnequippedEvent args) { - if (!TryComp(args.Equipee, out var indicator)) + if (!TryComp(args.Wearer, out var indicator)) return; indicator.Prototype = SharedTypingIndicatorSystem.InitialIndicatorId; diff --git a/Content.Shared/Chat/V2/Repository/Types.cs b/Content.Shared/Chat/V2/Repository/Types.cs new file mode 100644 index 0000000000..59acb849d4 --- /dev/null +++ b/Content.Shared/Chat/V2/Repository/Types.cs @@ -0,0 +1,60 @@ +using System.Linq; +using System.Runtime.InteropServices; +using Robust.Shared.Network; +using Robust.Shared.Serialization; + +namespace Content.Shared.Chat.V2.Repository; + +/// +/// The record associated with a specific chat event. +/// +public struct ChatRecord(string userName, NetUserId userId, IChatEvent storedEvent, string entityName) +{ + public string UserName = userName; + public NetUserId UserId = userId; + public string EntityName = entityName; + public IChatEvent StoredEvent = storedEvent; +} + +/// +/// Notifies that a chat message has been created. +/// +/// +[Serializable, NetSerializable] +public sealed class MessageCreatedEvent(IChatEvent ev) : EntityEventArgs +{ + public IChatEvent Event = ev; +} + +/// +/// Notifies that a chat message has been changed. +/// +/// +/// +[Serializable, NetSerializable] +public sealed class MessagePatchedEvent(uint id, string newMessage) : EntityEventArgs +{ + public uint MessageId = id; + public string NewMessage = newMessage; +} + +/// +/// Notifies that a chat message has been deleted. +/// +/// +[Serializable, NetSerializable] +public sealed class MessageDeletedEvent(uint id) : EntityEventArgs +{ + public uint MessageId = id; +} + +/// +/// Notifies that a player's messages have been nuked. +/// +/// +[Serializable, NetSerializable] +public sealed class MessagesNukedEvent(List set) : EntityEventArgs +{ + public uint[] MessageIds = CollectionsMarshal.AsSpan(set).ToArray(); +} + diff --git a/Content.Shared/Chat/V2/Types.cs b/Content.Shared/Chat/V2/Types.cs new file mode 100644 index 0000000000..50e5a53ab5 --- /dev/null +++ b/Content.Shared/Chat/V2/Types.cs @@ -0,0 +1,94 @@ +namespace Content.Shared.Chat.V2; + +/// +/// The types of messages that can be sent, validated and processed via user input that are covered by Chat V2. +/// +public enum MessageType : byte +{ + #region Player-sendable types + + /// + /// Chat for announcements like CentCom telling you to stop sending them memes. + /// + Announcement, + /// + /// Chat that ghosts use to complain about being gibbed. + /// + DeadChat, + /// + /// Chat that mimes use to evade their vow. + /// + Emote, + /// + /// Chat that players use to make lame jokes to people nearby. + /// + Local, + /// + /// Chat that players use to complain about shitsec/admins/antags/balance/etc. + /// + Looc, + /// + /// Chat that players use to say "HELP MAINT", or plead to call the shuttle because a beaker spilled. + /// + /// This does not tell you what radio channel has been chatted on! + Radio, + /// + /// Chat that is used exclusively by syndie tots to collaborate on whatever tots do. + /// + Whisper, + + #endregion + + #region Non-player-sendable types + + /// + /// Chat that is sent to exactly one player; almost exclusively used for admemes and prayer responses. + /// + Subtle, + /// + /// Chat that is sent by automata, like when a vending machine thanks you for your unwise purchases. + /// + Background, + + #endregion +} + +/// +/// Defines a chat event that can be stored in a chat repository. +/// +public interface IChatEvent +{ + /// + /// The sender of the chat message. + /// + public EntityUid Sender + { + get; + } + + /// + /// The ID of the message. This is overwritten when saved into a repository. + /// + public uint Id + { + get; + set; + } + + /// + /// The sent message. + /// + public string Message + { + get; + set; + } + + /// + /// The type of sent message. + /// + public MessageType Type + { + get; + } +} diff --git a/Content.Shared/Chemistry/Components/InjectorComponent.cs b/Content.Shared/Chemistry/Components/InjectorComponent.cs index 437c5e327d..c583ee6664 100644 --- a/Content.Shared/Chemistry/Components/InjectorComponent.cs +++ b/Content.Shared/Chemistry/Components/InjectorComponent.cs @@ -24,7 +24,8 @@ public sealed partial class InjectorDoAfterEvent : SimpleDoAfterEvent [RegisterComponent, NetworkedComponent, AutoGenerateComponentState] public sealed partial class InjectorComponent : Component { - public const string SolutionName = "injector"; + [DataField] + public string SolutionName = "injector"; /// /// Whether or not the injector is able to draw from containers or if it's a single use diff --git a/Content.Shared/Chemistry/Components/MixableSolutionComponent.cs b/Content.Shared/Chemistry/Components/MixableSolutionComponent.cs new file mode 100644 index 0000000000..2b1c140aa6 --- /dev/null +++ b/Content.Shared/Chemistry/Components/MixableSolutionComponent.cs @@ -0,0 +1,13 @@ +using Robust.Shared.GameStates; + +namespace Content.Shared.Chemistry.Components; + +[RegisterComponent, NetworkedComponent] +public sealed partial class MixableSolutionComponent : Component +{ + /// + /// Solution name which can be mixed with methods such as blessing + /// + [DataField, ViewVariables(VVAccess.ReadWrite)] + public string Solution = "default"; +} diff --git a/Content.Shared/Chemistry/Components/ReagentTankComponent.cs b/Content.Shared/Chemistry/Components/ReagentTankComponent.cs new file mode 100644 index 0000000000..3aa1756cf9 --- /dev/null +++ b/Content.Shared/Chemistry/Components/ReagentTankComponent.cs @@ -0,0 +1,22 @@ +using Content.Shared.FixedPoint; +using Robust.Shared.GameStates; +using Robust.Shared.Serialization; + +namespace Content.Shared.Chemistry.Components; + +[RegisterComponent, NetworkedComponent] +public sealed partial class ReagentTankComponent : Component +{ + [DataField, ViewVariables(VVAccess.ReadWrite)] + public FixedPoint2 TransferAmount { get; set; } = FixedPoint2.New(10); + + [DataField, ViewVariables(VVAccess.ReadWrite)] + public ReagentTankType TankType { get; set; } = ReagentTankType.Unspecified; +} + +[Serializable, NetSerializable] +public enum ReagentTankType : byte +{ + Unspecified, + Fuel +} diff --git a/Content.Shared/Chemistry/Components/Solution.cs b/Content.Shared/Chemistry/Components/Solution.cs index 1c24c860dd..f16cf4a80f 100644 --- a/Content.Shared/Chemistry/Components/Solution.cs +++ b/Content.Shared/Chemistry/Components/Solution.cs @@ -6,6 +6,7 @@ using Robust.Shared.Utility; using System.Collections; using System.Linq; +using Content.Shared.Chemistry.Components.SolutionManager; namespace Content.Shared.Chemistry.Components { @@ -48,13 +49,6 @@ public sealed partial class Solution : IEnumerable, ISerializat [DataField("canReact")] public bool CanReact { get; set; } = true; - /// - /// If reactions can occur via mixing. - /// - [ViewVariables(VVAccess.ReadWrite)] - [DataField("canMix")] - public bool CanMix { get; set; } = false; - /// /// Volume needed to fill this container. /// diff --git a/Content.Shared/Chemistry/EntitySystems/RehydratableSystem.cs b/Content.Shared/Chemistry/EntitySystems/RehydratableSystem.cs index e260280ae4..36ca791290 100644 --- a/Content.Shared/Chemistry/EntitySystems/RehydratableSystem.cs +++ b/Content.Shared/Chemistry/EntitySystems/RehydratableSystem.cs @@ -1,12 +1,14 @@ using Content.Shared.Chemistry.Components; using Content.Shared.FixedPoint; using Content.Shared.Popups; +using Robust.Shared.Network; using Robust.Shared.Random; namespace Content.Shared.Chemistry.EntitySystems; public sealed class RehydratableSystem : EntitySystem { + [Dependency] private readonly INetManager _net = default!; [Dependency] private readonly IRobustRandom _random = default!; [Dependency] private readonly SharedPopupSystem _popup = default!; [Dependency] private readonly SharedSolutionContainerSystem _solutions = default!; @@ -31,6 +33,9 @@ private void OnSolutionChange(Entity ent, ref SolutionCon // Try not to make this public if you can help it. private void Expand(Entity ent) { + if (_net.IsClient) + return; + var (uid, comp) = ent; var randomMob = _random.Pick(comp.PossibleSpawns); diff --git a/Content.Shared/Chemistry/EntitySystems/SharedInjectorSystem.cs b/Content.Shared/Chemistry/EntitySystems/SharedInjectorSystem.cs index 6c43c1d5f0..1620344652 100644 --- a/Content.Shared/Chemistry/EntitySystems/SharedInjectorSystem.cs +++ b/Content.Shared/Chemistry/EntitySystems/SharedInjectorSystem.cs @@ -113,7 +113,7 @@ private void Toggle(Entity injector, EntityUid user) if (injector.Comp.InjectOnly) return; - if (!SolutionContainers.TryGetSolution(injector.Owner, InjectorComponent.SolutionName, out var solEnt, out var solution)) + if (!SolutionContainers.TryGetSolution(injector.Owner, injector.Comp.SolutionName, out var solEnt, out var solution)) return; string msg; diff --git a/Content.Shared/Chemistry/EntitySystems/SharedSolutionContainerSystem.Capabilities.cs b/Content.Shared/Chemistry/EntitySystems/SharedSolutionContainerSystem.Capabilities.cs index 0d4912a504..ce0cfab002 100644 --- a/Content.Shared/Chemistry/EntitySystems/SharedSolutionContainerSystem.Capabilities.cs +++ b/Content.Shared/Chemistry/EntitySystems/SharedSolutionContainerSystem.Capabilities.cs @@ -78,31 +78,15 @@ public bool TryGetFitsInDispenser(Entity container, [NotNullWhen(true)] out Entity? solution) + public bool TryGetMixableSolution(Entity entity, [NotNullWhen(true)] out Entity? soln, [NotNullWhen(true)] out Solution? solution) { - var getMixableSolutionAttempt = new GetMixableSolutionAttemptEvent(container); - RaiseLocalEvent(container, ref getMixableSolutionAttempt); - if (getMixableSolutionAttempt.MixedSolution != null) - { - solution = getMixableSolutionAttempt.MixedSolution; - return true; - } - - if (!Resolve(container, ref container.Comp, false)) + if (!Resolve(entity, ref entity.Comp1, logMissing: false)) { - solution = default!; + (soln, solution) = (default!, null); return false; } - var tryGetSolution = EnumerateSolutions(container).FirstOrNull(x => x.Solution.Comp.Solution.CanMix); - if (tryGetSolution.HasValue) - { - solution = tryGetSolution.Value.Solution; - return true; - } - - solution = default!; - return false; + return TryGetSolution((entity.Owner, entity.Comp2), entity.Comp1.Solution, out soln, out solution); } #endregion Solution Accessors diff --git a/Content.Shared/Chemistry/EntitySystems/SharedSolutionContainerSystem.cs b/Content.Shared/Chemistry/EntitySystems/SharedSolutionContainerSystem.cs index e74c146380..5e58a0944a 100644 --- a/Content.Shared/Chemistry/EntitySystems/SharedSolutionContainerSystem.cs +++ b/Content.Shared/Chemistry/EntitySystems/SharedSolutionContainerSystem.cs @@ -11,10 +11,13 @@ using Robust.Shared.Utility; using System.Diagnostics.CodeAnalysis; using System.Linq; +using System.Numerics; using System.Runtime.CompilerServices; using System.Text; using Content.Shared.Hands.Components; using Content.Shared.Hands.EntitySystems; +using Robust.Shared.Map; +using Robust.Shared.Network; using Dependency = Robust.Shared.IoC.DependencyAttribute; namespace Content.Shared.Chemistry.EntitySystems; @@ -57,7 +60,8 @@ public abstract partial class SharedSolutionContainerSystem : EntitySystem [Dependency] protected readonly SharedAppearanceSystem AppearanceSystem = default!; [Dependency] protected readonly SharedHandsSystem Hands = default!; [Dependency] protected readonly SharedContainerSystem ContainerSystem = default!; - [Dependency] protected readonly MetaDataSystem MetaData = default!; + [Dependency] protected readonly MetaDataSystem MetaDataSys = default!; + [Dependency] protected readonly INetManager NetManager = default!; public override void Initialize() { @@ -66,13 +70,18 @@ public override void Initialize() InitializeRelays(); SubscribeLocalEvent(OnComponentInit); - SubscribeLocalEvent(OnComponentStartup); - SubscribeLocalEvent(OnComponentShutdown); - - SubscribeLocalEvent(OnComponentInit); - + SubscribeLocalEvent(OnSolutionStartup); + SubscribeLocalEvent(OnSolutionShutdown); + SubscribeLocalEvent(OnContainerManagerInit); SubscribeLocalEvent(OnExamineSolution); SubscribeLocalEvent>(OnSolutionExaminableVerb); + SubscribeLocalEvent(OnMapInit); + + if (NetManager.IsServer) + { + SubscribeLocalEvent(OnContainerManagerShutdown); + SubscribeLocalEvent(OnContainedSolutionShutdown); + } } @@ -121,8 +130,14 @@ public bool ResolveSolution(Entity container /// The name of the solution entity to fetch. /// Returns the solution entity that was fetched. /// Returns the solution state of the solution entity that was fetched. + /// /// Should we print an error if the solution specified by name is missing /// - public bool TryGetSolution(Entity container, string? name, [NotNullWhen(true)] out Entity? entity, [NotNullWhen(true)] out Solution? solution) + public bool TryGetSolution( + Entity container, + string? name, + [NotNullWhen(true)] out Entity? entity, + [NotNullWhen(true)] out Solution? solution, + bool errorOnMissing = false) { if (!TryGetSolution(container, name, out entity)) { @@ -135,7 +150,11 @@ public bool TryGetSolution(Entity container, } /// - public bool TryGetSolution(Entity container, string? name, [NotNullWhen(true)] out Entity? entity) + public bool TryGetSolution( + Entity container, + string? name, + [NotNullWhen(true)] out Entity? entity, + bool errorOnMissing = false) { if (TryComp(container, out BlockSolutionAccessComponent? blocker)) { @@ -155,12 +174,18 @@ solutionSlot.ContainedEntity is { } containedSolution else { entity = null; + if (!errorOnMissing) + return false; + Log.Error($"{ToPrettyString(container)} does not have a solution with ID: {name}"); return false; } if (!TryComp(uid, out SolutionComponent? comp)) { entity = null; + if (!errorOnMissing) + return false; + Log.Error($"{ToPrettyString(container)} does not have a solution with ID: {name}"); return false; } @@ -171,13 +196,18 @@ solutionSlot.ContainedEntity is { } containedSolution /// /// Version of TryGetSolution that doesn't take or return an entity. /// Used for prototypes and with old code parity. - public bool TryGetSolution(SolutionContainerManagerComponent container, string name, [NotNullWhen(true)] out Solution? solution) + public bool TryGetSolution(SolutionContainerManagerComponent container, + string name, + [NotNullWhen(true)] out Solution? solution, + bool errorOnMissing = false) { solution = null; - if (container.Solutions == null) + if (container.Solutions != null) + return container.Solutions.TryGetValue(name, out solution); + if (!errorOnMissing) return false; - - return container.Solutions.TryGetValue(name, out solution); + Log.Error($"{container} does not have a solution with ID: {name}"); + return false; } public IEnumerable<(string? Name, Entity Solution)> EnumerateSolutions(Entity container, bool includeSelf = true) @@ -703,17 +733,17 @@ private void OnComponentInit(Entity entity, ref ComponentInit entity.Comp.Solution.ValidateSolution(); } - private void OnComponentStartup(Entity entity, ref ComponentStartup args) + private void OnSolutionStartup(Entity entity, ref ComponentStartup args) { UpdateChemicals(entity); } - private void OnComponentShutdown(Entity entity, ref ComponentShutdown args) + private void OnSolutionShutdown(Entity entity, ref ComponentShutdown args) { RemoveAllSolution(entity); } - private void OnComponentInit(Entity entity, ref ComponentInit args) + private void OnContainerManagerInit(Entity entity, ref ComponentInit args) { if (entity.Comp.Containers is not { Count: > 0 } containers) return; @@ -733,7 +763,7 @@ private void OnExamineSolution(Entity entity, ref E return; } - if (!CanSeeHiddenSolution(entity,args.Examiner)) + if (!CanSeeHiddenSolution(entity, args.Examiner)) return; var primaryReagent = solution.GetPrimaryReagentId(); @@ -832,7 +862,7 @@ private void OnSolutionExaminableVerb(Entity entity return; } - if (!CanSeeHiddenSolution(entity,args.User)) + if (!CanSeeHiddenSolution(entity, args.User)) return; var target = args.Target; @@ -881,6 +911,9 @@ private FormattedMessage GetSolutionExamine(Solution solution) , ("amount", quantity))); } + msg.PushNewline(); + msg.AddMarkup(Loc.GetString("scannable-solution-temperature", ("temperature", Math.Round(solution.Temperature)))); + return msg; } @@ -901,5 +934,273 @@ private bool CanSeeHiddenSolution(Entity entity, En return true; } + private void OnMapInit(Entity entity, ref MapInitEvent args) + { + EnsureAllSolutions(entity); + } + + private void OnContainerManagerShutdown(Entity entity, ref ComponentShutdown args) + { + foreach (var name in entity.Comp.Containers) + { + if (ContainerSystem.TryGetContainer(entity, $"solution@{name}", out var solutionContainer)) + ContainerSystem.ShutdownContainer(solutionContainer); + } + entity.Comp.Containers.Clear(); + } + + private void OnContainedSolutionShutdown(Entity entity, ref ComponentShutdown args) + { + if (TryComp(entity.Comp.Container, out SolutionContainerManagerComponent? container)) + { + container.Containers.Remove(entity.Comp.ContainerName); + Dirty(entity.Comp.Container, container); + } + + if (ContainerSystem.TryGetContainer(entity, $"solution@{entity.Comp.ContainerName}", out var solutionContainer)) + ContainerSystem.ShutdownContainer(solutionContainer); + } + #endregion Event Handlers + + public bool EnsureSolution( + Entity entity, + string name, + [NotNullWhen(true)]out Solution? solution, + FixedPoint2 maxVol = default) + { + return EnsureSolution(entity, name, maxVol, null, out _, out solution); + } + + public bool EnsureSolution( + Entity entity, + string name, + out bool existed, + [NotNullWhen(true)]out Solution? solution, + FixedPoint2 maxVol = default) + { + return EnsureSolution(entity, name, maxVol, null, out existed, out solution); + } + + public bool EnsureSolution( + Entity entity, + string name, + FixedPoint2 maxVol, + Solution? prototype, + out bool existed, + [NotNullWhen(true)] out Solution? solution) + { + solution = null; + existed = false; + + var (uid, meta) = entity; + if (!Resolve(uid, ref meta)) + throw new InvalidOperationException("Attempted to ensure solution on invalid entity."); + var manager = EnsureComp(uid); + if (meta.EntityLifeStage >= EntityLifeStage.MapInitialized) + { + EnsureSolutionEntity((uid, manager), name, out existed, + out var solEnt, maxVol, prototype); + solution = solEnt!.Value.Comp.Solution; + return true; + } + solution = EnsureSolutionPrototype((uid, manager), name, maxVol, prototype, out existed); + return true; + } + + public void EnsureAllSolutions(Entity entity) + { + if (NetManager.IsClient) + return; + + if (entity.Comp.Solutions is not { } prototypes) + return; + + foreach (var (name, prototype) in prototypes) + { + EnsureSolutionEntity((entity.Owner, entity.Comp), name, out _, out _, prototype.MaxVolume, prototype); + } + + entity.Comp.Solutions = null; + Dirty(entity); + } + + public bool EnsureSolutionEntity( + Entity entity, + string name, + [NotNullWhen(true)] out Entity? solutionEntity, + FixedPoint2 maxVol = default) => + EnsureSolutionEntity(entity, name, out _, out solutionEntity, maxVol); + + public bool EnsureSolutionEntity( + Entity entity, + string name, + out bool existed, + [NotNullWhen(true)] out Entity? solutionEntity, + FixedPoint2 maxVol = default, + Solution? prototype = null + ) + { + existed = true; + solutionEntity = null; + + var (uid, container) = entity; + + var solutionSlot = ContainerSystem.EnsureContainer(uid, $"solution@{name}", out existed); + if (!Resolve(uid, ref container, logMissing: false)) + { + existed = false; + container = AddComp(uid); + container.Containers.Add(name); + if (NetManager.IsClient) + return false; + } + else if (!existed) + { + container.Containers.Add(name); + Dirty(uid, container); + } + + var needsInit = false; + SolutionComponent solutionComp; + if (solutionSlot.ContainedEntity is not { } solutionId) + { + if (NetManager.IsClient) + return false; + prototype ??= new() { MaxVolume = maxVol }; + prototype.Name = name; + (solutionId, solutionComp, _) = SpawnSolutionUninitialized(solutionSlot, name, maxVol, prototype); + existed = false; + needsInit = true; + Dirty(uid, container); + } + else + { + solutionComp = Comp(solutionId); + DebugTools.Assert(TryComp(solutionId, out ContainedSolutionComponent? relation) && relation.Container == uid && relation.ContainerName == name); + DebugTools.Assert(solutionComp.Solution.Name == name); + + var solution = solutionComp.Solution; + solution.MaxVolume = FixedPoint2.Max(solution.MaxVolume, maxVol); + + // Depending on MapInitEvent order some systems can ensure solution empty solutions and conflict with the prototype solutions. + // We want the reagents from the prototype to exist even if something else already created the solution. + if (prototype is { Volume.Value: > 0 }) + solution.AddSolution(prototype, PrototypeManager); + + Dirty(solutionId, solutionComp); + } + + if (needsInit) + EntityManager.InitializeAndStartEntity(solutionId, Transform(solutionId).MapID); + solutionEntity = (solutionId, solutionComp); + return true; + } + + private Solution EnsureSolutionPrototype(Entity entity, string name, FixedPoint2 maxVol, Solution? prototype, out bool existed) + { + existed = true; + + var (uid, container) = entity; + if (!Resolve(uid, ref container, logMissing: false)) + { + container = AddComp(uid); + existed = false; + } + + if (container.Solutions is null) + container.Solutions = new(SolutionContainerManagerComponent.DefaultCapacity); + + if (!container.Solutions.TryGetValue(name, out var solution)) + { + solution = prototype ?? new() { Name = name, MaxVolume = maxVol }; + container.Solutions.Add(name, solution); + existed = false; + } + else + solution.MaxVolume = FixedPoint2.Max(solution.MaxVolume, maxVol); + + Dirty(uid, container); + return solution; + } + + private Entity SpawnSolutionUninitialized(ContainerSlot container, string name, FixedPoint2 maxVol, Solution prototype) + { + var coords = new EntityCoordinates(container.Owner, Vector2.Zero); + var uid = EntityManager.CreateEntityUninitialized(null, coords, null); + + var solution = new SolutionComponent() { Solution = prototype }; + AddComp(uid, solution); + + var relation = new ContainedSolutionComponent() { Container = container.Owner, ContainerName = name }; + AddComp(uid, relation); + + MetaDataSys.SetEntityName(uid, $"solution - {name}"); + ContainerSystem.Insert(uid, container, force: true); + + return (uid, solution, relation); + } + + public void AdjustDissolvedReagent( + Entity dissolvedSolution, + FixedPoint2 volume, + ReagentId reagent, + float concentrationChange) + { + if (concentrationChange == 0) + return; + var dissolvedSol = dissolvedSolution.Comp.Solution; + var amtChange = + GetReagentQuantityFromConcentration(dissolvedSolution, volume, MathF.Abs(concentrationChange)); + if (concentrationChange > 0) + { + dissolvedSol.AddReagent(reagent, amtChange); + } + else + { + dissolvedSol.RemoveReagent(reagent,amtChange); + } + UpdateChemicals(dissolvedSolution); + } + + public FixedPoint2 GetReagentQuantityFromConcentration(Entity dissolvedSolution, + FixedPoint2 volume,float concentration) + { + var dissolvedSol = dissolvedSolution.Comp.Solution; + if (volume == 0 + || dissolvedSol.Volume == 0) + return 0; + return concentration * volume; + } + + public float GetReagentConcentration(Entity dissolvedSolution, + FixedPoint2 volume, ReagentId dissolvedReagent) + { + var dissolvedSol = dissolvedSolution.Comp.Solution; + if (volume == 0 + || dissolvedSol.Volume == 0 + || !dissolvedSol.TryGetReagentQuantity(dissolvedReagent, out var dissolvedVol)) + return 0; + return (float)dissolvedVol / volume.Float(); + } + + public FixedPoint2 ClampReagentAmountByConcentration( + Entity dissolvedSolution, + FixedPoint2 volume, + ReagentId dissolvedReagent, + FixedPoint2 dissolvedReagentAmount, + float maxConcentration = 1f) + { + var dissolvedSol = dissolvedSolution.Comp.Solution; + if (volume == 0 + || dissolvedSol.Volume == 0 + || !dissolvedSol.TryGetReagentQuantity(dissolvedReagent, out var dissolvedVol)) + return 0; + volume *= maxConcentration; + dissolvedVol += dissolvedReagentAmount; + var overflow = volume - dissolvedVol; + if (overflow < 0) + dissolvedReagentAmount += overflow; + return dissolvedReagentAmount; + } } diff --git a/Content.Shared/Chemistry/EntitySystems/SolutionTransferSystem.cs b/Content.Shared/Chemistry/EntitySystems/SolutionTransferSystem.cs index 34a64d0edb..b12778262c 100644 --- a/Content.Shared/Chemistry/EntitySystems/SolutionTransferSystem.cs +++ b/Content.Shared/Chemistry/EntitySystems/SolutionTransferSystem.cs @@ -17,7 +17,6 @@ namespace Content.Shared.Chemistry.EntitySystems; /// public sealed class SolutionTransferSystem : EntitySystem { - [Dependency] private readonly INetManager _net = default!; [Dependency] private readonly ISharedAdminLogManager _adminLogger = default!; [Dependency] private readonly SharedPopupSystem _popup = default!; [Dependency] private readonly SharedSolutionContainerSystem _solution = default!; @@ -42,7 +41,7 @@ private void OnTransferAmountSetValueMessage(Entity e var newTransferAmount = FixedPoint2.Clamp(message.Value, ent.Comp.MinimumTransferAmount, ent.Comp.MaximumTransferAmount); ent.Comp.TransferAmount = newTransferAmount; - if (message.Session.AttachedEntity is { Valid: true } user) + if (message.Actor is { Valid: true } user) _popup.PopupClient(Loc.GetString("comp-solution-transfer-set-amount", ("amount", newTransferAmount)), ent, user); } @@ -53,10 +52,9 @@ private void AddSetTransferVerbs(Entity ent, ref GetV if (!args.CanAccess || !args.CanInteract || !comp.CanChangeTransferAmount || args.Hands == null) return; - if (!TryComp(args.User, out var actor)) - return; - // Custom transfer verb + var @event = args; + args.Verbs.Add(new AlternativeVerb() { Text = Loc.GetString("comp-solution-transfer-verb-custom-amount"), @@ -64,8 +62,7 @@ private void AddSetTransferVerbs(Entity ent, ref GetV // TODO: remove server check when bui prediction is a thing Act = () => { - if (_net.IsServer) - _ui.TryOpen(uid, TransferAmountUiKey.Key, actor.PlayerSession); + _ui.OpenUi(uid, TransferAmountUiKey.Key, @event.User); }, Priority = 1 }); diff --git a/Content.Shared/Chemistry/Reaction/ReactionMixerComponent.cs b/Content.Shared/Chemistry/Reaction/ReactionMixerComponent.cs index ede73c4969..118f224061 100644 --- a/Content.Shared/Chemistry/Reaction/ReactionMixerComponent.cs +++ b/Content.Shared/Chemistry/Reaction/ReactionMixerComponent.cs @@ -25,6 +25,3 @@ public sealed partial class ReactionMixerComponent : Component public record struct MixingAttemptEvent(EntityUid Mixed, bool Cancelled = false); public readonly record struct AfterMixingEvent(EntityUid Mixed, EntityUid Mixer); - -[ByRefEvent] -public record struct GetMixableSolutionAttemptEvent(EntityUid Mixed, Entity? MixedSolution = null); diff --git a/Content.Shared/Chemistry/Reagent/ReagentPrototype.cs b/Content.Shared/Chemistry/Reagent/ReagentPrototype.cs index 5d6d9d2120..df1b1aa20b 100644 --- a/Content.Shared/Chemistry/Reagent/ReagentPrototype.cs +++ b/Content.Shared/Chemistry/Reagent/ReagentPrototype.cs @@ -104,6 +104,13 @@ public sealed partial class ReagentPrototype : IPrototype, IInheritingPrototype [DataField] public bool Slippery; + /// + /// How easily this reagent becomes fizzy when aggitated. + /// 0 - completely flat, 1 - fizzes up when nudged. + /// + [DataField] + public float Fizziness; + /// /// How much reagent slows entities down if it's part of a puddle. /// 0 - no slowdown; 1 - can't move. diff --git a/Content.Shared/Chemistry/SharedReagentDispenser.cs b/Content.Shared/Chemistry/SharedReagentDispenser.cs index 2b9c318c58..5de3f6cae3 100644 --- a/Content.Shared/Chemistry/SharedReagentDispenser.cs +++ b/Content.Shared/Chemistry/SharedReagentDispenser.cs @@ -20,6 +20,46 @@ public ReagentDispenserSetDispenseAmountMessage(ReagentDispenserDispenseAmount a { ReagentDispenserDispenseAmount = amount; } + + /// + /// Create a new instance from interpreting a String as an integer, + /// throwing an exception if it is unable to parse. + /// + public ReagentDispenserSetDispenseAmountMessage(String s) + { + switch (s) + { + case "1": + ReagentDispenserDispenseAmount = ReagentDispenserDispenseAmount.U1; + break; + case "5": + ReagentDispenserDispenseAmount = ReagentDispenserDispenseAmount.U5; + break; + case "10": + ReagentDispenserDispenseAmount = ReagentDispenserDispenseAmount.U10; + break; + case "15": + ReagentDispenserDispenseAmount = ReagentDispenserDispenseAmount.U15; + break; + case "20": + ReagentDispenserDispenseAmount = ReagentDispenserDispenseAmount.U20; + break; + case "25": + ReagentDispenserDispenseAmount = ReagentDispenserDispenseAmount.U25; + break; + case "30": + ReagentDispenserDispenseAmount = ReagentDispenserDispenseAmount.U30; + break; + case "50": + ReagentDispenserDispenseAmount = ReagentDispenserDispenseAmount.U50; + break; + case "100": + ReagentDispenserDispenseAmount = ReagentDispenserDispenseAmount.U100; + break; + default: + throw new Exception($"Cannot convert the string `{s}` into a valid ReagentDispenser DispenseAmount"); + } + } } [Serializable, NetSerializable] @@ -52,20 +92,30 @@ public enum ReagentDispenserDispenseAmount U100 = 100, } + [Serializable, NetSerializable] + public sealed class ReagentInventoryItem(string storageSlotId, string reagentLabel, string storedAmount, Color reagentColor) + { + public string StorageSlotId = storageSlotId; + public string ReagentLabel = reagentLabel; + public string StoredAmount = storedAmount; + public Color ReagentColor = reagentColor; + } + [Serializable, NetSerializable] public sealed class ReagentDispenserBoundUserInterfaceState : BoundUserInterfaceState { public readonly ContainerInfo? OutputContainer; public readonly NetEntity? OutputContainerEntity; + /// /// A list of the reagents which this dispenser can dispense. /// - public readonly List>> Inventory; + public readonly List Inventory; public readonly ReagentDispenserDispenseAmount SelectedDispenseAmount; - public ReagentDispenserBoundUserInterfaceState(ContainerInfo? outputContainer, NetEntity? outputContainerEntity, List>> inventory, ReagentDispenserDispenseAmount selectedDispenseAmount) + public ReagentDispenserBoundUserInterfaceState(ContainerInfo? outputContainer, NetEntity? outputContainerEntity, List inventory, ReagentDispenserDispenseAmount selectedDispenseAmount) { OutputContainer = outputContainer; OutputContainerEntity = outputContainerEntity; diff --git a/Content.Shared/Climbing/Systems/BonkSystem.cs b/Content.Shared/Climbing/Systems/BonkSystem.cs index 08ca63368a..c7c89a3b7f 100644 --- a/Content.Shared/Climbing/Systems/BonkSystem.cs +++ b/Content.Shared/Climbing/Systems/BonkSystem.cs @@ -108,17 +108,16 @@ private bool TryStartBonk(EntityUid uid, EntityUid user, EntityUid climber, Bonk { BreakOnTargetMove = true, BreakOnUserMove = true, - BreakOnDamage = true + BreakOnDamage = true, + DuplicateCondition = DuplicateConditions.SameTool | DuplicateConditions.SameTarget }; - _doAfter.TryStartDoAfter(doAfterArgs); - - return true; + return _doAfter.TryStartDoAfter(doAfterArgs); } - private void OnAttemptClimb(EntityUid uid, BonkableComponent component, AttemptClimbEvent args) + private void OnAttemptClimb(EntityUid uid, BonkableComponent component, ref AttemptClimbEvent args) { - if (args.Cancelled || !HasComp(args.Climber) || !HasComp(args.User)) + if (args.Cancelled) return; if (TryStartBonk(uid, args.User, args.Climber, component)) diff --git a/Content.Shared/Climbing/Systems/ClimbSystem.cs b/Content.Shared/Climbing/Systems/ClimbSystem.cs index 521f5ace99..c570a821a6 100644 --- a/Content.Shared/Climbing/Systems/ClimbSystem.cs +++ b/Content.Shared/Climbing/Systems/ClimbSystem.cs @@ -228,7 +228,8 @@ public bool TryClimb( { BreakOnTargetMove = true, BreakOnUserMove = true, - BreakOnDamage = true + BreakOnDamage = true, + DuplicateCondition = DuplicateConditions.SameTool | DuplicateConditions.SameTarget }; _audio.PlayPredicted(comp.StartClimbSound, climbable, user); @@ -473,6 +474,11 @@ public void ForciblySetClimbing(EntityUid uid, EntityUid climbable, ClimbingComp Climb(uid, uid, climbable, true, component); } + public void ForciblyStopClimbing(EntityUid uid, ClimbingComponent? climbing = null, FixturesComponent? fixtures = null) + { + StopClimb(uid, climbing, fixtures); + } + private void OnBuckleChange(EntityUid uid, ClimbingComponent component, ref BuckleChangeEvent args) { if (!args.Buckling) diff --git a/Content.Shared/Cloning/CloningPodComponent.cs b/Content.Shared/Cloning/CloningPodComponent.cs index 082b92e8b1..c9a6fd4500 100644 --- a/Content.Shared/Cloning/CloningPodComponent.cs +++ b/Content.Shared/Cloning/CloningPodComponent.cs @@ -1,3 +1,4 @@ +using Content.Shared.Construction.Prototypes; using Content.Shared.DeviceLinking; using Content.Shared.Materials; using Content.Shared.Random; @@ -38,6 +39,18 @@ public sealed partial class CloningPodComponent : Component [DataField] public ProtoId RequiredMaterial = "Biomass"; + /// + /// The multiplier for cloning duration + /// + [DataField] + public float PartRatingSpeedMultiplier = 0.75f; + + /// + /// The machine part that affects cloning speed + /// + [DataField] + public ProtoId MachinePartCloningSpeed = "Manipulator"; + /// /// The current amount of time it takes to clone a body /// @@ -66,6 +79,18 @@ public sealed partial class CloningPodComponent : Component Params = AudioParams.Default.WithVolume(4), }; + /// + /// The machine part that affects how much biomass is needed to clone a body. + /// + [DataField] + public float PartRatingMaterialMultiplier = 0.85f; + + /// + /// The machine part that decreases the amount of material needed for cloning + /// + [DataField] + public ProtoId MachinePartMaterialUse = "MatterBin"; + [ViewVariables(VVAccess.ReadWrite)] public CloningPodStatus Status; diff --git a/Content.Shared/Clothing/ClothingEvents.cs b/Content.Shared/Clothing/ClothingEvents.cs index 1dcce2402a..83afea4597 100644 --- a/Content.Shared/Clothing/ClothingEvents.cs +++ b/Content.Shared/Clothing/ClothingEvents.cs @@ -1,5 +1,6 @@ using Content.Shared.Actions; +using Content.Shared.Clothing.Components; namespace Content.Shared.Clothing; @@ -71,3 +72,31 @@ public sealed partial class ToggleMaskEvent : InstantActionEvent { } /// [ByRefEvent] public readonly record struct WearerMaskToggledEvent(bool IsToggled); + +/// +/// Raised on the clothing entity when it is equipped to a valid slot, +/// as determined by . +/// +[ByRefEvent] +public readonly record struct ClothingGotEquippedEvent(EntityUid Wearer, ClothingComponent Clothing); + +/// +/// Raised on the clothing entity when it is unequipped from a valid slot, +/// as determined by . +/// +[ByRefEvent] +public readonly record struct ClothingGotUnequippedEvent(EntityUid Wearer, ClothingComponent Clothing); + +/// +/// Raised on an entity when they equip a clothing item to a valid slot, +/// as determined by . +/// +[ByRefEvent] +public readonly record struct ClothingDidEquippedEvent(Entity Clothing); + +/// +/// Raised on an entity when they unequip a clothing item from a valid slot, +/// as determined by . +/// +[ByRefEvent] +public readonly record struct ClothingDidUnequippedEvent(Entity Clothing); diff --git a/Content.Shared/Clothing/Components/ClothingComponent.cs b/Content.Shared/Clothing/Components/ClothingComponent.cs index 0f4c7f68bf..6d7226e767 100644 --- a/Content.Shared/Clothing/Components/ClothingComponent.cs +++ b/Content.Shared/Clothing/Components/ClothingComponent.cs @@ -66,6 +66,9 @@ public sealed partial class ClothingComponent : Component [DataField("unisexMask")] public ClothingMask UnisexMask = ClothingMask.UniformFull; + /// + /// Name of the inventory slot the clothing is in. + /// public string? InSlot; [DataField, ViewVariables(VVAccess.ReadWrite)] diff --git a/Content.Shared/Clothing/Components/FireProtectionComponent.cs b/Content.Shared/Clothing/Components/FireProtectionComponent.cs new file mode 100644 index 0000000000..cafa6e5359 --- /dev/null +++ b/Content.Shared/Clothing/Components/FireProtectionComponent.cs @@ -0,0 +1,17 @@ +using Content.Shared.Clothing.EntitySystems; + +namespace Content.Shared.Clothing.Components; + +/// +/// Makes this clothing reduce fire damage when worn. +/// +[RegisterComponent, Access(typeof(FireProtectionSystem))] +public sealed partial class FireProtectionComponent : Component +{ + /// + /// Percentage to reduce fire damage by, subtracted not multiplicative. + /// 0.25 means 25% less fire damage. + /// + [DataField(required: true)] + public float Reduction; +} diff --git a/Content.Shared/Clothing/Components/HideLayerClothingComponent.cs b/Content.Shared/Clothing/Components/HideLayerClothingComponent.cs new file mode 100644 index 0000000000..ac3d9b9789 --- /dev/null +++ b/Content.Shared/Clothing/Components/HideLayerClothingComponent.cs @@ -0,0 +1,24 @@ +using Content.Shared.Humanoid; +using Robust.Shared.GameStates; + +namespace Content.Shared.Clothing.Components; + +/// +/// This is used for a clothing item that hides an appearance layer. +/// The entity's HumanoidAppearance component must have the corresponding hideLayerOnEquip value. +/// +[RegisterComponent, NetworkedComponent] +public sealed partial class HideLayerClothingComponent : Component +{ + /// + /// The appearance layer to hide. + /// + [DataField] + public HashSet Slots = new(); + + /// + /// If true, the layer will only hide when the item is in a toggled state (e.g. masks) + /// + [DataField] + public bool HideOnToggle = false; +} diff --git a/Content.Shared/Clothing/Components/LoadoutComponent.cs b/Content.Shared/Clothing/Components/LoadoutComponent.cs index a3c6efe2a0..612286e6e6 100644 --- a/Content.Shared/Clothing/Components/LoadoutComponent.cs +++ b/Content.Shared/Clothing/Components/LoadoutComponent.cs @@ -1,16 +1,15 @@ using Content.Shared.Roles; using Robust.Shared.GameStates; -using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype.List; +using Robust.Shared.Prototypes; namespace Content.Shared.Clothing.Components; [RegisterComponent, NetworkedComponent, AutoGenerateComponentState] public sealed partial class LoadoutComponent : Component { - /// /// A list of starting gears, of which one will be given. /// All elements are weighted the same in the list. - /// - [DataField("prototypes", required: true, customTypeSerializer: typeof(PrototypeIdListSerializer)), AutoNetworkedField] - public List? Prototypes; + [DataField("prototypes")] + [AutoNetworkedField] + public List>? StartingGear; } diff --git a/Content.Shared/Clothing/EntitySystems/ClothingSystem.cs b/Content.Shared/Clothing/EntitySystems/ClothingSystem.cs index b407b867f7..9e3f917e96 100644 --- a/Content.Shared/Clothing/EntitySystems/ClothingSystem.cs +++ b/Content.Shared/Clothing/EntitySystems/ClothingSystem.cs @@ -6,31 +6,18 @@ using Content.Shared.Inventory; using Content.Shared.Inventory.Events; using Content.Shared.Item; -using Content.Shared.Tag; -using Robust.Shared.GameStates; -using System.Linq; using Robust.Shared.Containers; +using Robust.Shared.GameStates; namespace Content.Shared.Clothing.EntitySystems; public abstract class ClothingSystem : EntitySystem { [Dependency] private readonly SharedItemSystem _itemSys = default!; + [Dependency] private readonly SharedContainerSystem _containerSys = default!; [Dependency] private readonly SharedHumanoidAppearanceSystem _humanoidSystem = default!; - [Dependency] private readonly TagSystem _tagSystem = default!; [Dependency] private readonly InventorySystem _invSystem = default!; [Dependency] private readonly SharedHandsSystem _handsSystem = default!; - [Dependency] private readonly SharedContainerSystem _containerSys = default!; - - [ValidatePrototypeId] - private const string HairTag = "HidesHair"; - - [ValidatePrototypeId] - private const string NoseTag = "HidesNose"; - - [ValidatePrototypeId] - - private const string BeardTag = "HidesBeard"; public override void Initialize() { @@ -101,61 +88,71 @@ private void QuickEquip( } } - private void ToggleVisualLayer(EntityUid equipee, HumanoidVisualLayers layer, string tag) + private void ToggleVisualLayers(EntityUid equipee, HashSet layers, HashSet appearanceLayers) { - InventorySystem.InventorySlotEnumerator enumerator = _invSystem.GetSlotEnumerator(equipee, SlotFlags.HEAD ^ SlotFlags.MASK); - bool shouldLayerShow = true; - - while (enumerator.NextItem(out EntityUid item)) + foreach (HumanoidVisualLayers layer in layers) { - if (_tagSystem.HasTag(item, tag)) + if (!appearanceLayers.Contains(layer)) + break; + + InventorySystem.InventorySlotEnumerator enumerator = _invSystem.GetSlotEnumerator(equipee); + + bool shouldLayerShow = true; + while (enumerator.NextItem(out EntityUid item)) { - if (tag == NoseTag || tag == BeardTag) // Special check for NoseTag or BeardTag, due to masks being toggleable + if (TryComp(item, out HideLayerClothingComponent? comp)) { - if (TryComp(item, out MaskComponent? mask) && TryComp(item, out ClothingComponent? clothing)) + if (comp.Slots.Contains(layer)) { - if (clothing.EquippedPrefix != mask.EquippedPrefix) + //Checks for mask toggling. TODO: Make a generic system for this + if (comp.HideOnToggle && TryComp(item, out MaskComponent? mask) && TryComp(item, out ClothingComponent? clothing)) + { + if (clothing.EquippedPrefix != mask.EquippedPrefix) + { + shouldLayerShow = false; + break; + } + } + else { shouldLayerShow = false; break; } } - else - { - shouldLayerShow = false; - break; - } - } - else - { - shouldLayerShow = false; - break; } } + _humanoidSystem.SetLayerVisibility(equipee, layer, shouldLayerShow); } - _humanoidSystem.SetLayerVisibility(equipee, layer, shouldLayerShow); } protected virtual void OnGotEquipped(EntityUid uid, ClothingComponent component, GotEquippedEvent args) { component.InSlot = args.Slot; - if ((new string[] { "head" }).Contains(args.Slot) && _tagSystem.HasTag(args.Equipment, HairTag)) - ToggleVisualLayer(args.Equipee, HumanoidVisualLayers.Hair, HairTag); - if ((new string[] { "mask", "head" }).Contains(args.Slot) && _tagSystem.HasTag(args.Equipment, NoseTag)) - ToggleVisualLayer(args.Equipee, HumanoidVisualLayers.Snout, NoseTag); - if ((new string[] { "mask", "head" }).Contains(args.Slot) && _tagSystem.HasTag(args.Equipment, BeardTag)) - ToggleVisualLayer(args.Equipee, HumanoidVisualLayers.FacialHair, BeardTag); + CheckEquipmentForLayerHide(args.Equipment, args.Equipee); + + if ((component.Slots & args.SlotFlags) != SlotFlags.NONE) + { + var gotEquippedEvent = new ClothingGotEquippedEvent(args.Equipee, component); + RaiseLocalEvent(uid, ref gotEquippedEvent); + + var didEquippedEvent = new ClothingDidEquippedEvent((uid, component)); + RaiseLocalEvent(args.Equipee, ref didEquippedEvent); + } } protected virtual void OnGotUnequipped(EntityUid uid, ClothingComponent component, GotUnequippedEvent args) { + if ((component.Slots & args.SlotFlags) != SlotFlags.NONE) + { + var gotUnequippedEvent = new ClothingGotUnequippedEvent(args.Equipee, component); + RaiseLocalEvent(uid, ref gotUnequippedEvent); + + var didUnequippedEvent = new ClothingDidUnequippedEvent((uid, component)); + RaiseLocalEvent(args.Equipee, ref didUnequippedEvent); + } + component.InSlot = null; - if ((new string[] { "head" }).Contains(args.Slot) && _tagSystem.HasTag(args.Equipment, HairTag)) - ToggleVisualLayer(args.Equipee, HumanoidVisualLayers.Hair, HairTag); - if ((new string[] { "mask", "head" }).Contains(args.Slot) && _tagSystem.HasTag(args.Equipment, NoseTag)) - ToggleVisualLayer(args.Equipee, HumanoidVisualLayers.Snout, NoseTag); - if ((new string[] { "mask", "head" }).Contains(args.Slot) && _tagSystem.HasTag(args.Equipment, BeardTag)) - ToggleVisualLayer(args.Equipee, HumanoidVisualLayers.FacialHair, BeardTag); + CheckEquipmentForLayerHide(args.Equipment, args.Equipee); } private void OnGetState(EntityUid uid, ClothingComponent component, ref ComponentGetState args) @@ -166,15 +163,20 @@ private void OnGetState(EntityUid uid, ClothingComponent component, ref Componen private void OnHandleState(EntityUid uid, ClothingComponent component, ref ComponentHandleState args) { if (args.Current is ClothingComponentState state) + { SetEquippedPrefix(uid, state.EquippedPrefix, component); + if (component.InSlot != null && _containerSys.TryGetContainingContainer(uid, out var container)) + { + CheckEquipmentForLayerHide(uid, container.Owner); + } + } } private void OnMaskToggled(Entity ent, ref ItemMaskToggledEvent args) { //TODO: sprites for 'pulled down' state. defaults to invisible due to no sprite with this prefix SetEquippedPrefix(ent, args.IsToggled ? args.equippedPrefix : null, ent); - ToggleVisualLayer(args.Wearer, HumanoidVisualLayers.Snout, NoseTag); - ToggleVisualLayer(args.Wearer, HumanoidVisualLayers.FacialHair, BeardTag); + CheckEquipmentForLayerHide(ent.Owner, args.Wearer); } private void OnPickedUp(Entity ent, ref GettingPickedUpAttemptEvent args) @@ -205,6 +207,12 @@ private void OnUnequipDoAfter(Entity ent, ref ClothingUnequip _handsSystem.TryPickup(args.User, ent); } + private void CheckEquipmentForLayerHide(EntityUid equipment, EntityUid equipee) + { + if (TryComp(equipment, out HideLayerClothingComponent? clothesComp) && TryComp(equipee, out HumanoidAppearanceComponent? appearanceComp)) + ToggleVisualLayers(equipee, clothesComp.Slots, appearanceComp.HideLayersOnEquip); + } + #region Public API public void SetEquippedPrefix(EntityUid uid, string? prefix, ClothingComponent? clothing = null) diff --git a/Content.Shared/Clothing/EntitySystems/FireProtectionSystem.cs b/Content.Shared/Clothing/EntitySystems/FireProtectionSystem.cs new file mode 100644 index 0000000000..6f80bc0588 --- /dev/null +++ b/Content.Shared/Clothing/EntitySystems/FireProtectionSystem.cs @@ -0,0 +1,23 @@ +using Content.Shared.Atmos; +using Content.Shared.Clothing.Components; +using Content.Shared.Inventory; + +namespace Content.Shared.Clothing.EntitySystems; + +/// +/// Handles reducing fire damage when wearing clothing with . +/// +public sealed class FireProtectionSystem : EntitySystem +{ + public override void Initialize() + { + base.Initialize(); + + SubscribeLocalEvent>(OnGetProtection); + } + + private void OnGetProtection(Entity ent, ref InventoryRelayedEvent args) + { + args.Args.Reduce(ent.Comp.Reduction); + } +} diff --git a/Content.Shared/Clothing/EntitySystems/MaskSystem.cs b/Content.Shared/Clothing/EntitySystems/MaskSystem.cs index aab2a172dc..2a4383279a 100644 --- a/Content.Shared/Clothing/EntitySystems/MaskSystem.cs +++ b/Content.Shared/Clothing/EntitySystems/MaskSystem.cs @@ -42,12 +42,10 @@ private void OnToggleMask(Entity ent, ref ToggleMaskEvent args) return; mask.IsToggled ^= true; - _actionSystem.SetToggled(mask.ToggleActionEntity, mask.IsToggled); - if (mask.IsToggled) - _popupSystem.PopupEntity(Loc.GetString("action-mask-pull-down-popup-message", ("mask", uid)), args.Performer, args.Performer); - else - _popupSystem.PopupEntity(Loc.GetString("action-mask-pull-up-popup-message", ("mask", uid)), args.Performer, args.Performer); + var dir = mask.IsToggled ? "down" : "up"; + var msg = $"action-mask-pull-{dir}-popup-message"; + _popupSystem.PopupClient(Loc.GetString(msg, ("mask", uid)), args.Performer, args.Performer); ToggleMaskComponents(uid, mask, args.Performer, mask.EquippedPrefix); } @@ -55,18 +53,22 @@ private void OnToggleMask(Entity ent, ref ToggleMaskEvent args) // set to untoggled when unequipped, so it isn't left in a 'pulled down' state private void OnGotUnequipped(EntityUid uid, MaskComponent mask, GotUnequippedEvent args) { - if (mask.ToggleActionEntity == null) + if (!mask.IsToggled) return; mask.IsToggled = false; - Dirty(uid, mask); - _actionSystem.SetToggled(mask.ToggleActionEntity, mask.IsToggled); - ToggleMaskComponents(uid, mask, args.Equipee, mask.EquippedPrefix, true); } + /// + /// Called after setting IsToggled, raises events and dirties. + /// private void ToggleMaskComponents(EntityUid uid, MaskComponent mask, EntityUid wearer, string? equippedPrefix = null, bool isEquip = false) { + Dirty(uid, mask); + if (mask.ToggleActionEntity is {} action) + _actionSystem.SetToggled(action, mask.IsToggled); + var maskEv = new ItemMaskToggledEvent(wearer, equippedPrefix, mask.IsToggled, isEquip); RaiseLocalEvent(uid, ref maskEv); diff --git a/Content.Shared/Clothing/EntitySystems/SkatesSystem.cs b/Content.Shared/Clothing/EntitySystems/SkatesSystem.cs index 7d748a67a4..bbb640bd98 100644 --- a/Content.Shared/Clothing/EntitySystems/SkatesSystem.cs +++ b/Content.Shared/Clothing/EntitySystems/SkatesSystem.cs @@ -17,34 +17,28 @@ public override void Initialize() { base.Initialize(); - SubscribeLocalEvent(OnGotEquipped); - SubscribeLocalEvent(OnGotUnequipped); + SubscribeLocalEvent(OnGotEquipped); + SubscribeLocalEvent(OnGotUnequipped); } /// /// When item is unequipped from the shoe slot, friction, aceleration and collide on impact return to default settings. /// - public void OnGotUnequipped(EntityUid uid, SkatesComponent component, GotUnequippedEvent args) + public void OnGotUnequipped(EntityUid uid, SkatesComponent component, ClothingGotUnequippedEvent args) { - if (!TryComp(args.Equipee, out MovementSpeedModifierComponent? speedModifier)) + if (!TryComp(args.Wearer, out MovementSpeedModifierComponent? speedModifier)) return; - if (args.Slot == "shoes") - { - _move.ChangeFriction(args.Equipee, MovementSpeedModifierComponent.DefaultFriction, MovementSpeedModifierComponent.DefaultFrictionNoInput, MovementSpeedModifierComponent.DefaultAcceleration, speedModifier); - _impact.ChangeCollide(args.Equipee, component.DefaultMinimumSpeed, component.DefaultStunSeconds, component.DefaultDamageCooldown, component.DefaultSpeedDamage); - } + _move.ChangeFriction(args.Wearer, MovementSpeedModifierComponent.DefaultFriction, MovementSpeedModifierComponent.DefaultFrictionNoInput, MovementSpeedModifierComponent.DefaultAcceleration, speedModifier); + _impact.ChangeCollide(args.Wearer, component.DefaultMinimumSpeed, component.DefaultStunSeconds, component.DefaultDamageCooldown, component.DefaultSpeedDamage); } /// /// When item is equipped into the shoe slot, friction, acceleration and collide on impact are adjusted. /// - private void OnGotEquipped(EntityUid uid, SkatesComponent component, GotEquippedEvent args) + private void OnGotEquipped(EntityUid uid, SkatesComponent component, ClothingGotEquippedEvent args) { - if (args.Slot == "shoes") - { - _move.ChangeFriction(args.Equipee, component.Friction, component.FrictionNoInput, component.Acceleration); - _impact.ChangeCollide(args.Equipee, component.MinimumSpeed, component.StunSeconds, component.DamageCooldown, component.SpeedDamage); - } + _move.ChangeFriction(args.Wearer, component.Friction, component.FrictionNoInput, component.Acceleration); + _impact.ChangeCollide(args.Wearer, component.MinimumSpeed, component.StunSeconds, component.DamageCooldown, component.SpeedDamage); } } diff --git a/Content.Shared/Clothing/Loadouts/Prototypes/LoadoutCategoryPrototype.cs b/Content.Shared/Clothing/Loadouts/Prototypes/LoadoutCategoryPrototype.cs index 26567d0c13..2d008e437d 100644 --- a/Content.Shared/Clothing/Loadouts/Prototypes/LoadoutCategoryPrototype.cs +++ b/Content.Shared/Clothing/Loadouts/Prototypes/LoadoutCategoryPrototype.cs @@ -7,7 +7,7 @@ namespace Content.Shared.Clothing.Loadouts.Prototypes; /// A prototype defining a valid category for s to go into. /// [Prototype] -public sealed class LoadoutCategoryPrototype : IPrototype +public sealed partial class LoadoutCategoryPrototype : IPrototype { [IdDataField] public string ID { get; } = default!; diff --git a/Content.Shared/Clothing/Loadouts/Prototypes/LoadoutPrototype.cs b/Content.Shared/Clothing/Loadouts/Prototypes/LoadoutPrototype.cs index 74cfa1d4e8..19c2bf59f1 100644 --- a/Content.Shared/Clothing/Loadouts/Prototypes/LoadoutPrototype.cs +++ b/Content.Shared/Clothing/Loadouts/Prototypes/LoadoutPrototype.cs @@ -8,7 +8,7 @@ namespace Content.Shared.Clothing.Loadouts.Prototypes; [Prototype] -public sealed class LoadoutPrototype : IPrototype +public sealed partial class LoadoutPrototype : IPrototype { /// /// Formatted like "Loadout[Department/ShortHeadName][CommonClothingSlot][SimplifiedClothingId]", example: "LoadoutScienceOuterLabcoatSeniorResearcher" diff --git a/Content.Shared/Clothing/Loadouts/Systems/LoadoutSystem.cs b/Content.Shared/Clothing/Loadouts/Systems/LoadoutSystem.cs index 5a2f1b2da9..7ee0676f9e 100644 --- a/Content.Shared/Clothing/Loadouts/Systems/LoadoutSystem.cs +++ b/Content.Shared/Clothing/Loadouts/Systems/LoadoutSystem.cs @@ -31,10 +31,11 @@ public override void Initialize() private void OnMapInit(EntityUid uid, LoadoutComponent component, MapInitEvent args) { - if (component.Prototypes == null) + if (component.StartingGear is null + || component.StartingGear.Count <= 0) return; - var proto = _prototype.Index(_random.Pick(component.Prototypes)); + var proto = _prototype.Index(_random.Pick(component.StartingGear)); _station.EquipStartingGear(uid, proto); } diff --git a/Content.Shared/Cocoon/CocoonComponent.cs b/Content.Shared/Cocoon/CocoonComponent.cs new file mode 100644 index 0000000000..66ba6e6dd3 --- /dev/null +++ b/Content.Shared/Cocoon/CocoonComponent.cs @@ -0,0 +1,14 @@ +namespace Content.Shared.Cocoon +{ + [RegisterComponent] + public sealed partial class CocoonComponent : Component + { + public string? OldAccent; + + public EntityUid? Victim; + + [DataField("damagePassthrough")] + public float DamagePassthrough = 0.5f; + + } +} diff --git a/Content.Shared/Cocoon/CocoonDoAfterEvent.cs b/Content.Shared/Cocoon/CocoonDoAfterEvent.cs new file mode 100644 index 0000000000..55986d2894 --- /dev/null +++ b/Content.Shared/Cocoon/CocoonDoAfterEvent.cs @@ -0,0 +1,10 @@ +using Robust.Shared.Serialization; +using Content.Shared.DoAfter; + +namespace Content.Shared.Cocoon +{ + [Serializable, NetSerializable] + public sealed partial class CocoonDoAfterEvent : SimpleDoAfterEvent + { + } +} diff --git a/Content.Shared/Cocoon/CocoonerComponent.cs b/Content.Shared/Cocoon/CocoonerComponent.cs new file mode 100644 index 0000000000..17cce97309 --- /dev/null +++ b/Content.Shared/Cocoon/CocoonerComponent.cs @@ -0,0 +1,14 @@ +using Robust.Shared.GameStates; + +namespace Content.Shared.Cocoon +{ + [RegisterComponent, NetworkedComponent] + public sealed partial class CocoonerComponent : Component + { + [DataField("cocoonDelay")] + public float CocoonDelay = 12f; + + [DataField("cocoonKnockdownMultiplier")] + public float CocoonKnockdownMultiplier = 0.5f; + } +} diff --git a/Content.Shared/Construction/MachinePartSystem.cs b/Content.Shared/Construction/MachinePartSystem.cs index 1a19040b41..01db7fbade 100644 --- a/Content.Shared/Construction/MachinePartSystem.cs +++ b/Content.Shared/Construction/MachinePartSystem.cs @@ -21,6 +21,7 @@ public override void Initialize() { base.Initialize(); SubscribeLocalEvent(OnMachineBoardExamined); + SubscribeLocalEvent(OnMachinePartExamined); } private void OnMachineBoardExamined(EntityUid uid, MachineBoardComponent component, ExaminedEvent args) @@ -61,6 +62,20 @@ private void OnMachineBoardExamined(EntityUid uid, MachineBoardComponent compone } } + private void OnMachinePartExamined(EntityUid uid, MachinePartComponent component, ExaminedEvent args) + { + if (!args.IsInDetailsRange) + return; + + using (args.PushGroup(nameof(MachinePartComponent))) + { + args.PushMarkup(Loc.GetString("machine-part-component-on-examine-rating-text", + ("rating", component.Rating))); + args.PushMarkup(Loc.GetString("machine-part-component-on-examine-type-text", ("type", + Loc.GetString(_prototype.Index(component.PartType).Name)))); + } + } + public Dictionary GetMachineBoardMaterialCost(Entity entity, int coefficient = 1) { var (_, comp) = entity; diff --git a/Content.Shared/Containers/ContainerFillComponent.cs b/Content.Shared/Containers/ContainerFillComponent.cs index 8c63cbc66a..7ce5fa8850 100644 --- a/Content.Shared/Containers/ContainerFillComponent.cs +++ b/Content.Shared/Containers/ContainerFillComponent.cs @@ -1,4 +1,5 @@ using Content.Shared.Storage; +using Content.Shared.Storage.Components; using Robust.Shared.Prototypes; using Robust.Shared.Serialization.Manager; using Robust.Shared.Serialization.Markdown.Mapping; diff --git a/Content.Shared/Containers/ItemSlot/ItemSlotsSystem.cs b/Content.Shared/Containers/ItemSlot/ItemSlotsSystem.cs index 9cb21e882e..885984feb6 100644 --- a/Content.Shared/Containers/ItemSlot/ItemSlotsSystem.cs +++ b/Content.Shared/Containers/ItemSlot/ItemSlotsSystem.cs @@ -626,9 +626,9 @@ private void HandleButtonPressed(EntityUid uid, ItemSlotsComponent component, It return; if (args.TryEject && slot.HasItem) - TryEjectToHands(uid, slot, args.Session.AttachedEntity, false); - else if (args.TryInsert && !slot.HasItem && args.Session.AttachedEntity is EntityUid user) - TryInsertFromHand(uid, slot, user); + TryEjectToHands(uid, slot, args.Actor, true); + else if (args.TryInsert && !slot.HasItem) + TryInsertFromHand(uid, slot, args.Actor); } #endregion diff --git a/Content.Shared/Content.Shared.csproj b/Content.Shared/Content.Shared.csproj index 9752bfcfe2..4cca399b28 100644 --- a/Content.Shared/Content.Shared.csproj +++ b/Content.Shared/Content.Shared.csproj @@ -23,9 +23,6 @@ false - - - diff --git a/Content.Shared/Contests/ContestsSystem.Utilities.cs b/Content.Shared/Contests/ContestsSystem.Utilities.cs index 42a69bff47..0278d75e94 100644 --- a/Content.Shared/Contests/ContestsSystem.Utilities.cs +++ b/Content.Shared/Contests/ContestsSystem.Utilities.cs @@ -1,4 +1,5 @@ using Content.Shared.CCVar; +using Robust.Shared.Serialization; namespace Content.Shared.Contests; public sealed partial class ContestsSystem @@ -18,4 +19,265 @@ private bool ContestClampOverride(bool bypassClamp) { return _cfg.GetCVar(CCVars.AllowClampOverride) && bypassClamp; } + + /// + /// Constructor for feeding options from a given set of ContestArgs into the ContestsSystem. + /// Just multiply by this and give it a user EntityUid and a ContestArgs variable. That's all you need to know. + /// + public float ContestConstructor(EntityUid user, ContestArgs args) + { + if (!_cfg.GetCVar(CCVars.DoContestsSystem)) + return 1; + + if (!args.DoEveryInteraction) + return args.DoMassInteraction ? ((!args.MassDisadvantage + ? MassContest(user, args.MassBypassClamp, args.MassRangeModifier) + : 1 / MassContest(user, args.MassBypassClamp, args.MassRangeModifier)) + + args.MassOffset) + : 1 + * (args.DoStaminaInteraction ? ((!args.StaminaDisadvantage + ? StaminaContest(user, args.StaminaBypassClamp, args.StaminaRangeModifier) + : 1 / StaminaContest(user, args.StaminaBypassClamp, args.StaminaRangeModifier)) + + args.StaminaOffset) + : 1) + * (args.DoHealthInteraction ? ((!args.HealthDisadvantage + ? HealthContest(user, args.HealthBypassClamp, args.HealthRangeModifier) + : 1 / HealthContest(user, args.HealthBypassClamp, args.HealthRangeModifier)) + + args.HealthOffset) + : 1) + * (args.DoMindInteraction ? ((!args.MindDisadvantage + ? MindContest(user, args.MindBypassClamp, args.MindRangeModifier) + : 1 / MindContest(user, args.MindBypassClamp, args.MindRangeModifier)) + + args.MindOffset) + : 1) + * (args.DoMoodInteraction ? ((!args.MoodDisadvantage + ? MoodContest(user, args.MoodBypassClamp, args.MoodRangeModifier) + : 1 / MoodContest(user, args.MoodBypassClamp, args.MoodRangeModifier)) + + args.MoodOffset) + : 1); + + var everyContest = EveryContest(user, + args.MassBypassClamp, + args.StaminaBypassClamp, + args.HealthBypassClamp, + args.MindBypassClamp, + args.MoodBypassClamp, + args.MassRangeModifier, + args.StaminaRangeModifier, + args.HealthRangeModifier, + args.MindRangeModifier, + args.MoodRangeModifier, + args.EveryMassWeight, + args.EveryStaminaWeight, + args.EveryHealthWeight, + args.EveryMindWeight, + args.EveryMoodWeight, + args.EveryInteractionSumOrMultiply); + + return !args.EveryDisadvantage ? everyContest : 1 / everyContest; + } } + +[Serializable, NetSerializable, DataDefinition] +public sealed partial class ContestArgs +{ + /// + /// Controls whether this melee weapon allows for mass to factor into damage. + /// + [DataField] + public bool DoMassInteraction; + + /// + /// When true, mass provides a disadvantage. + /// + [DataField] + public bool MassDisadvantage; + + /// + /// When true, mass contests ignore clamp limitations for a melee weapon. + /// + [DataField] + public bool MassBypassClamp; + + /// + /// Multiplies the acceptable range of outputs provided by mass contests for melee. + /// + [DataField] + public float MassRangeModifier = 1; + + /// + /// The output of a mass contest is increased by this amount. + /// + [DataField] + public float MassOffset; + + /// + /// Controls whether this melee weapon allows for stamina to factor into damage. + /// + [DataField] + public bool DoStaminaInteraction; + + /// + /// When true, stamina provides a disadvantage. + /// + [DataField] + public bool StaminaDisadvantage; + + /// + /// When true, stamina contests ignore clamp limitations for a melee weapon. + /// + [DataField] + public bool StaminaBypassClamp; + + /// + /// Multiplies the acceptable range of outputs provided by mass contests for melee. + /// + [DataField] + public float StaminaRangeModifier = 1; + + /// + /// The output of a stamina contest is increased by this amount. + /// + [DataField] + public float StaminaOffset; + + /// + /// Controls whether this melee weapon allows for health to factor into damage. + /// + [DataField] + public bool DoHealthInteraction; + + /// + /// When true, health contests provide a disadvantage. + /// + [DataField] + public bool HealthDisadvantage; + + /// + /// When true, health contests ignore clamp limitations for a melee weapon. + /// + [DataField] + public bool HealthBypassClamp; + + /// + /// Multiplies the acceptable range of outputs provided by mass contests for melee. + /// + [DataField] + public float HealthRangeModifier = 1; + + /// + /// The output of health contests is increased by this amount. + /// + [DataField] + public float HealthOffset; + + /// + /// Controls whether this melee weapon allows for psychic casting stats to factor into damage. + /// + [DataField] + public bool DoMindInteraction; + + /// + /// When true, high psychic casting stats provide a disadvantage. + /// + [DataField] + public bool MindDisadvantage; + + /// + /// When true, mind contests ignore clamp limitations for a melee weapon. + /// + [DataField] + public bool MindBypassClamp; + + /// + /// Multiplies the acceptable range of outputs provided by mind contests for melee. + /// + [DataField] + public float MindRangeModifier = 1; + + /// + /// The output of a mind contest is increased by this amount. + /// + [DataField] + public float MindOffset; + + /// + /// Controls whether this melee weapon allows mood to factor into damage. + /// + [DataField] + public bool DoMoodInteraction; + + /// + /// When true, mood provides a disadvantage. + /// + [DataField] + public bool MoodDisadvantage; + + /// + /// When true, mood contests ignore clamp limitations for a melee weapon. + /// + [DataField] + public bool MoodBypassClamp; + + /// + /// Multiplies the acceptable range of outputs provided by mood contests for melee. + /// + [DataField] + public float MoodRangeModifier = 1; + + /// + /// The output of mood contests is increased by this amount. + /// + [DataField] + public float MoodOffset; + + /// + /// Enables the EveryContest interaction for a melee weapon. + /// IF YOU PUT THIS ON ANY WEAPON OTHER THAN AN ADMEME, I WILL COME TO YOUR HOUSE AND SEND YOU TO MEET YOUR CREATOR WHEN THE PLAYERS COMPLAIN. + /// + [DataField] + public bool DoEveryInteraction; + + /// + /// When true, EveryContest provides a disadvantage. + /// + [DataField] + public bool EveryDisadvantage; + + /// + /// How much Mass is considered for an EveryContest. + /// + [DataField] + public float EveryMassWeight = 1; + + /// + /// How much Stamina is considered for an EveryContest. + /// + [DataField] + public float EveryStaminaWeight = 1; + + /// + /// How much Health is considered for an EveryContest. + /// + [DataField] + public float EveryHealthWeight = 1; + + /// + /// How much psychic casting stats are considered for an EveryContest. + /// + [DataField] + public float EveryMindWeight = 1; + + /// + /// How much mood is considered for an EveryContest. + /// + [DataField] + public float EveryMoodWeight = 1; + + /// + /// When true, the EveryContest sums the results of all contests rather than multiplying them, + /// probably giving you a very, very, very large multiplier... + /// + [DataField] + public bool EveryInteractionSumOrMultiply; +} \ No newline at end of file diff --git a/Content.Shared/Contests/ContestsSystem.cs b/Content.Shared/Contests/ContestsSystem.cs index 35a52d7fc3..454d17a5d8 100644 --- a/Content.Shared/Contests/ContestsSystem.cs +++ b/Content.Shared/Contests/ContestsSystem.cs @@ -2,473 +2,476 @@ using Content.Shared.CCVar; using Content.Shared.Damage; using Content.Shared.Damage.Components; +using Content.Shared.Mobs.Components; using Content.Shared.Mobs.Systems; using Content.Shared.Mood; using Robust.Shared.Configuration; using Robust.Shared.Physics.Components; -namespace Content.Shared.Contests +namespace Content.Shared.Contests; + +public sealed partial class ContestsSystem : EntitySystem { - public sealed partial class ContestsSystem : EntitySystem + [Dependency] private readonly IConfigurationManager _cfg = default!; + [Dependency] private readonly MobThresholdSystem _mobThreshold = default!; + + /// + /// The presumed average mass of a player entity + /// Defaulted to the average mass of an adult human + /// + private const float AverageMass = 71f; + + /// + /// The presumed average sum of a Psionic's Baseline Amplification and Baseline Dampening. + /// Since Baseline casting stats are a random value between 0.4 and 1.2, this is defaulted to 0.8 + 0.8. + /// + private const float AveragePsionicPotential = 1.6f; + + #region Mass Contests + /// + /// Outputs the ratio of mass between a performer and the average human mass + /// + /// + /// bypassClamp is a deprecated input intended for supporting legacy Nyanotrasen systems. Do not use it if you don't know what you're doing. + /// + public float MassContest(EntityUid performerUid, bool bypassClamp = false, float rangeFactor = 1f, float otherMass = AverageMass) + { + if (!_cfg.GetCVar(CCVars.DoContestsSystem) + || !_cfg.GetCVar(CCVars.DoMassContests) + || !TryComp(performerUid, out var performerPhysics) + || performerPhysics.Mass == 0) + return 1f; + + return ContestClamp(ContestClampOverride(bypassClamp) + ? performerPhysics.Mass / otherMass + : Math.Clamp(performerPhysics.Mass / otherMass, + 1 - _cfg.GetCVar(CCVars.MassContestsMaxPercentage) * rangeFactor, + 1 + _cfg.GetCVar(CCVars.MassContestsMaxPercentage) * rangeFactor)); + } + + /// + /// + /// MaybeMassContest, in case your entity doesn't exist + /// + public float MassContest(EntityUid? performerUid, bool bypassClamp = false, float rangeFactor = 1f, float otherMass = AverageMass) + { + if (!_cfg.GetCVar(CCVars.DoContestsSystem) + || !_cfg.GetCVar(CCVars.DoMassContests) + || performerUid is null) + return 1f; + + return MassContest(performerUid.Value, bypassClamp, rangeFactor, otherMass); + } + + /// + /// Outputs the ratio of mass between a performer and the average human mass + /// If a function already has the performer's physics component, this is faster + /// + /// + /// bypassClamp is a deprecated input intended for supporting legacy Nyanotrasen systems. Do not use it if you don't know what you're doing. + /// + public float MassContest(PhysicsComponent performerPhysics, bool bypassClamp = false, float rangeFactor = 1f, float otherMass = AverageMass) + { + if (!_cfg.GetCVar(CCVars.DoContestsSystem) + || !_cfg.GetCVar(CCVars.DoMassContests) + || performerPhysics.Mass == 0) + return 1f; + + return ContestClamp(ContestClampOverride(bypassClamp) + ? performerPhysics.Mass / otherMass + : Math.Clamp(performerPhysics.Mass / otherMass, + 1 - _cfg.GetCVar(CCVars.MassContestsMaxPercentage) * rangeFactor, + 1 + _cfg.GetCVar(CCVars.MassContestsMaxPercentage) * rangeFactor)); + } + + /// + /// Outputs the ratio of mass between a performer and a target, accepts either EntityUids or PhysicsComponents in any combination + /// If you have physics components already in your function, use instead + /// + /// + /// bypassClamp is a deprecated input intended for supporting legacy Nyanotrasen systems. Do not use it if you don't know what you're doing. + /// + public float MassContest(EntityUid performerUid, EntityUid targetUid, bool bypassClamp = false, float rangeFactor = 1f) + { + if (!_cfg.GetCVar(CCVars.DoContestsSystem) + || !_cfg.GetCVar(CCVars.DoMassContests) + || !TryComp(performerUid, out var performerPhysics) + || !TryComp(targetUid, out var targetPhysics) + || performerPhysics.Mass == 0 + || targetPhysics.InvMass == 0) + return 1f; + + return ContestClamp(ContestClampOverride(bypassClamp) + ? performerPhysics.Mass * targetPhysics.InvMass + : Math.Clamp(performerPhysics.Mass * targetPhysics.InvMass, + 1 - _cfg.GetCVar(CCVars.MassContestsMaxPercentage) * rangeFactor, + 1 + _cfg.GetCVar(CCVars.MassContestsMaxPercentage) * rangeFactor)); + } + + /// + public float MassContest(EntityUid performerUid, PhysicsComponent targetPhysics, bool bypassClamp = false, float rangeFactor = 1f) + { + if (!_cfg.GetCVar(CCVars.DoContestsSystem) + || !_cfg.GetCVar(CCVars.DoMassContests) + || !TryComp(performerUid, out var performerPhysics) + || performerPhysics.Mass == 0 + || targetPhysics.InvMass == 0) + return 1f; + + return ContestClamp(ContestClampOverride(bypassClamp) + ? performerPhysics.Mass * targetPhysics.InvMass + : Math.Clamp(performerPhysics.Mass * targetPhysics.InvMass, + 1 - _cfg.GetCVar(CCVars.MassContestsMaxPercentage) * rangeFactor, + 1 + _cfg.GetCVar(CCVars.MassContestsMaxPercentage) * rangeFactor)); + } + + /// + public float MassContest(PhysicsComponent performerPhysics, EntityUid targetUid, bool bypassClamp = false, float rangeFactor = 1f) + { + if (!_cfg.GetCVar(CCVars.DoContestsSystem) + || !_cfg.GetCVar(CCVars.DoMassContests) + || !TryComp(targetUid, out var targetPhysics) + || performerPhysics.Mass == 0 + || targetPhysics.InvMass == 0) + return 1f; + + return ContestClamp(ContestClampOverride(bypassClamp) + ? performerPhysics.Mass * targetPhysics.InvMass + : Math.Clamp(performerPhysics.Mass * targetPhysics.InvMass, + 1 - _cfg.GetCVar(CCVars.MassContestsMaxPercentage) * rangeFactor, + 1 + _cfg.GetCVar(CCVars.MassContestsMaxPercentage) * rangeFactor)); + } + + /// + public float MassContest(PhysicsComponent performerPhysics, PhysicsComponent targetPhysics, bool bypassClamp = false, float rangeFactor = 1f) + { + if (!_cfg.GetCVar(CCVars.DoContestsSystem) + || !_cfg.GetCVar(CCVars.DoMassContests) + || performerPhysics.Mass == 0 + || targetPhysics.InvMass == 0) + return 1f; + + return ContestClamp(ContestClampOverride(bypassClamp) + ? performerPhysics.Mass * targetPhysics.InvMass + : Math.Clamp(performerPhysics.Mass * targetPhysics.InvMass, + 1 - _cfg.GetCVar(CCVars.MassContestsMaxPercentage) * rangeFactor, + 1 + _cfg.GetCVar(CCVars.MassContestsMaxPercentage) * rangeFactor)); + } + + #endregion + #region Stamina Contests + + /// + /// Outputs 1 minus the percentage of an Entity's Stamina, with a Range of [Epsilon, 1 - 0.25 * rangeFactor], or a range of [Epsilon, 1 - Epsilon] if bypassClamp is true. + /// This will never return a value >1. + /// + /// + /// bypassClamp is a deprecated input intended for supporting legacy Nyanotrasen systems. Do not use it if you don't know what you're doing. + /// + public float StaminaContest(EntityUid performer, bool bypassClamp = false, float rangeFactor = 1f) + { + if (!TryComp(performer, out var perfStamina) + || perfStamina.StaminaDamage == 0) + return 1f; + + return StaminaContest(perfStamina, bypassClamp, rangeFactor); + } + + /// + public float StaminaContest(StaminaComponent perfStamina, bool bypassClamp = false, float rangeFactor = 1f) + { + if (!_cfg.GetCVar(CCVars.DoContestsSystem) + || !_cfg.GetCVar(CCVars.DoStaminaContests)) + return 1f; + + return ContestClamp(ContestClampOverride(bypassClamp) + ? 1 - perfStamina.StaminaDamage / perfStamina.CritThreshold + : 1 - Math.Clamp(perfStamina.StaminaDamage / perfStamina.CritThreshold, 0, 0.25f * rangeFactor)); + } + + /// + /// Outputs the ratio of percentage of an Entity's Stamina and a Target Entity's Stamina, with a Range of [Epsilon, 0.25 * rangeFactor], or a range of [Epsilon, +inf] if bypassClamp is true. + /// This does NOT produce the same kind of outputs as a Single-Entity StaminaContest. 2Entity StaminaContest returns the product of two Solo Stamina Contests, and so its values can be very strange. + /// + /// + /// bypassClamp is a deprecated input intended for supporting legacy Nyanotrasen systems. Do not use it if you don't know what you're doing. + /// + public float StaminaContest(EntityUid performer, EntityUid target, bool bypassClamp = false, float rangeFactor = 1f) + { + if (!_cfg.GetCVar(CCVars.DoContestsSystem) + || !_cfg.GetCVar(CCVars.DoStaminaContests) + || !TryComp(performer, out var perfStamina) + || !TryComp(target, out var targetStamina)) + return 1f; + + return ContestClamp(ContestClampOverride(bypassClamp) + ? (1 - perfStamina.StaminaDamage / perfStamina.CritThreshold) + / (1 - targetStamina.StaminaDamage / targetStamina.CritThreshold) + : (1 - Math.Clamp(perfStamina.StaminaDamage / perfStamina.CritThreshold, 0, 0.25f * rangeFactor)) + / (1 - Math.Clamp(targetStamina.StaminaDamage / targetStamina.CritThreshold, 0, 0.25f * rangeFactor))); + } + + #endregion + + #region Health Contests + + /// + /// Outputs 1 minus the percentage of an Entity's Health, with a Range of [Epsilon, 1 - 0.25 * rangeFactor], or a range of [Epsilon, 1 - Epsilon] if bypassClamp is true. + /// This will never return a value >1. + /// + /// + /// bypassClamp is a deprecated input intended for supporting legacy Nyanotrasen systems. Do not use it if you don't know what you're doing. + /// + public float HealthContest(EntityUid performer, bool bypassClamp = false, float rangeFactor = 1f) + { + if (!_cfg.GetCVar(CCVars.DoContestsSystem) + || !_cfg.GetCVar(CCVars.DoHealthContests) + || !TryComp(performer, out var damage) + || !TryComp(performer, out var thresholdsComponent) + || !_mobThreshold.TryGetThresholdForState(performer, Mobs.MobState.Critical, out var threshold, thresholdsComponent)) + return 1f; + + return ContestClamp(ContestClampOverride(bypassClamp) + ? 1 - damage.TotalDamage.Float() / threshold.Value.Float() + : 1 - Math.Clamp(damage.TotalDamage.Float() / threshold.Value.Float(), 0, 0.25f * rangeFactor)); + } + + /// + /// Outputs the ratio of percentage of an Entity's Health and a Target Entity's Health, with a Range of [Epsilon, 0.25 * rangeFactor], or a range of [Epsilon, +inf] if bypassClamp is true. + /// This does NOT produce the same kind of outputs as a Single-Entity HealthContest. 2Entity HealthContest returns the product of two Solo Health Contests, and so its values can be very strange. + /// + /// + /// bypassClamp is a deprecated input intended for supporting legacy Nyanotrasen systems. Do not use it if you don't know what you're doing. + /// + public float HealthContest(EntityUid performer, EntityUid target, bool bypassClamp = false, float rangeFactor = 1f) + { + if (!_cfg.GetCVar(CCVars.DoContestsSystem) + || !_cfg.GetCVar(CCVars.DoHealthContests) + || !TryComp(performer, out var perfDamage) + || !TryComp(target, out var targetDamage) + || !TryComp(performer, out var perfThresholdComp) + || !TryComp(target, out var targetThresholdComp) + || !_mobThreshold.TryGetThresholdForState(performer, Mobs.MobState.Critical, out var perfThreshold, perfThresholdComp) + || !_mobThreshold.TryGetThresholdForState(target, Mobs.MobState.Critical, out var targetThreshold, targetThresholdComp)) + return 1f; + + return ContestClamp(ContestClampOverride(bypassClamp) + ? (1 - perfDamage.TotalDamage.Float() / perfThreshold.Value.Float()) + / (1 - targetDamage.TotalDamage.Float() / targetThreshold.Value.Float()) + : (1 - Math.Clamp(perfDamage.TotalDamage.Float() / perfThreshold.Value.Float(), 0, 0.25f * rangeFactor)) + / (1 - Math.Clamp(targetDamage.TotalDamage.Float() / targetThreshold.Value.Float(), 0, 0.25f * rangeFactor))); + } + #endregion + + #region Mind Contests + + /// + /// Returns the ratio of casting stats between a performer and the presumed average latent psionic. + /// Uniquely among Contests, not being Psionic is not a failure condition, and is instead a variable. + /// If you do not have a PsionicComponent, your combined casting stats are assumed to be 0.1f + /// + /// + /// This can produce some truly astounding modifiers, so be ready to meet god if you bypass the clamp. + /// By bypassing this function's clamp you hereby agree to forfeit your soul to VMSolidus should unintended bugs occur. + /// + public float MindContest(EntityUid performer, bool bypassClamp = false, float rangeFactor = 1f, float otherPsion = AveragePsionicPotential) + { + if (!_cfg.GetCVar(CCVars.DoContestsSystem) + || !_cfg.GetCVar(CCVars.DoMindContests)) + return 1f; + + var performerPotential = TryComp(performer, out var performerPsionic) + ? performerPsionic.CurrentAmplification + performerPsionic.CurrentDampening + : 0.1f; + + if (performerPotential == otherPsion) + return 1f; + + return ContestClamp(ContestClampOverride(bypassClamp) + ? performerPotential / otherPsion + : Math.Clamp(performerPotential / otherPsion, + 1 - _cfg.GetCVar(CCVars.MassContestsMaxPercentage) * rangeFactor, + 1 + _cfg.GetCVar(CCVars.MassContestsMaxPercentage) * rangeFactor)); + } + + /// + /// Returns the ratio of casting stats between a performer and a target. + /// Like with single-Uid MindContests, if an entity does not possess a PsionicComponent, its casting stats are assumed to be 0.1f. + /// + /// + /// This can produce some truly astounding modifiers, so be ready to meet god if you bypass the clamp. + /// By bypassing this function's clamp you hereby agree to forfeit your soul to VMSolidus should unintended bugs occur. + /// + public float MindContest(EntityUid performer, EntityUid target, bool bypassClamp = false, float rangeFactor = 1f) + { + if (!_cfg.GetCVar(CCVars.DoContestsSystem) + || !_cfg.GetCVar(CCVars.DoMindContests)) + return 1f; + + var performerPotential = TryComp(performer, out var performerPsionic) + ? performerPsionic.CurrentAmplification + performerPsionic.CurrentDampening + : 0.1f; + + var targetPotential = TryComp(target, out var targetPsionic) + ? targetPsionic.CurrentAmplification + targetPsionic.CurrentDampening + : 0.1f; + + if (performerPotential == targetPotential) + return 1f; + + return ContestClamp(ContestClampOverride(bypassClamp) + ? performerPotential / targetPotential + : Math.Clamp(performerPotential / targetPotential, + 1 - _cfg.GetCVar(CCVars.MassContestsMaxPercentage) * rangeFactor, + 1 + _cfg.GetCVar(CCVars.MassContestsMaxPercentage) * rangeFactor)); + } + + #endregion + + #region Mood Contests + + /// + /// Outputs the ratio of an Entity's mood level and its Neutral Mood threshold. + /// + /// + /// bypassClamp is a deprecated input intended for supporting legacy Nyanotrasen systems. Do not use it if you don't know what you're doing. + /// + public float MoodContest(EntityUid performer, bool bypassClamp = false, float rangeFactor = 1f) + { + if (!_cfg.GetCVar(CCVars.DoContestsSystem) + || !_cfg.GetCVar(CCVars.DoMoodContests) + || !TryComp(performer, out var mood)) + return 1f; + + return ContestClamp(ContestClampOverride(bypassClamp) + ? mood.CurrentMoodLevel / mood.NeutralMoodThreshold + : Math.Clamp(mood.CurrentMoodLevel / mood.NeutralMoodThreshold, + 1 - _cfg.GetCVar(CCVars.MassContestsMaxPercentage) * rangeFactor, + 1 + _cfg.GetCVar(CCVars.MassContestsMaxPercentage) * rangeFactor)); + } + + /// + /// Outputs the ratio of mood level between two Entities. + /// + /// + /// bypassClamp is a deprecated input intended for supporting legacy Nyanotrasen systems. Do not use it if you don't know what you're doing. + /// + public float MoodContest(EntityUid performer, EntityUid target, bool bypassClamp = false, float rangeFactor = 1f) + { + if (!_cfg.GetCVar(CCVars.DoContestsSystem) + || !_cfg.GetCVar(CCVars.DoMoodContests) + || !TryComp(performer, out var performerMood) + || !TryComp(target, out var targetMood)) + return 1f; + + return ContestClamp(ContestClampOverride(bypassClamp) + ? performerMood.CurrentMoodLevel / targetMood.CurrentMoodLevel + : Math.Clamp(performerMood.CurrentMoodLevel / targetMood.CurrentMoodLevel, + 1 - _cfg.GetCVar(CCVars.MassContestsMaxPercentage) * rangeFactor, + 1 + _cfg.GetCVar(CCVars.MassContestsMaxPercentage) * rangeFactor)); + } + + #endregion + + #region EVERY CONTESTS + + /// + /// EveryContest takes either the Sum or Product of all existing contests, for if you want to just check if somebody is absolutely fucked up. + /// + /// + /// If it's not immediately obvious that a function with 16 optional inputs is a joke, please take a step back and re-evaluate why you're using this function. + /// All prior warnings also apply here. Bypass the clamps at your own risk. By calling this function in your system, you hereby agree to forfeit your soul to VMSolidus if bugs occur. + /// + public float EveryContest( + EntityUid performer, + bool bypassClampMass = false, + bool bypassClampStamina = false, + bool bypassClampHealth = false, + bool bypassClampMind = false, + bool bypassClampMood = false, + float rangeFactorMass = 1f, + float rangeFactorStamina = 1f, + float rangeFactorHealth = 1f, + float rangeFactorMind = 1f, + float rangeFactorMood = 1f, + float weightMass = 1f, + float weightStamina = 1f, + float weightHealth = 1f, + float weightMind = 1f, + float weightMood = 1f, + bool sumOrMultiply = false) + { + if (!_cfg.GetCVar(CCVars.DoContestsSystem)) + return 1f; + + var weightTotal = weightMass + weightStamina + weightHealth + weightMind + weightMood; + var massMultiplier = weightMass / weightTotal; + var staminaMultiplier = weightStamina / weightTotal; + var healthMultiplier = weightHealth / weightTotal; + var mindMultiplier = weightMind / weightTotal; + var moodMultiplier = weightMood / weightTotal; + + return sumOrMultiply + ? MassContest(performer, bypassClampMass, rangeFactorMass) * massMultiplier + + StaminaContest(performer, bypassClampStamina, rangeFactorStamina) * staminaMultiplier + + HealthContest(performer, bypassClampHealth, rangeFactorHealth) * healthMultiplier + + MindContest(performer, bypassClampMind, rangeFactorMind) * mindMultiplier + + MoodContest(performer, bypassClampMood, rangeFactorMood) * moodMultiplier + : ContestClamp(MassContest(performer, bypassClampMass, rangeFactorMass) * massMultiplier + * StaminaContest(performer, bypassClampStamina, rangeFactorStamina) * staminaMultiplier + * HealthContest(performer, bypassClampHealth, rangeFactorHealth) * healthMultiplier + * MindContest(performer, bypassClampMind, rangeFactorMind) * mindMultiplier + * MoodContest(performer, bypassClampMood, rangeFactorMood) * moodMultiplier); + } + + /// + /// EveryContest takes either the Sum or Product of all existing contests, for if you want to just check if somebody is absolutely fucked up. + /// + /// + /// If it's not immediately obvious that a function with 16 optional inputs is a joke, please take a step back and re-evaluate why you're using this function. + /// All prior warnings also apply here. Bypass the clamps at your own risk. By calling this function in your system, you hereby agree to forfeit your soul to VMSolidus if bugs occur. + /// + public float EveryContest( + EntityUid performer, + EntityUid target, + bool bypassClampMass = false, + bool bypassClampStamina = false, + bool bypassClampHealth = false, + bool bypassClampMind = false, + bool bypassClampMood = false, + float rangeFactorMass = 1f, + float rangeFactorStamina = 1f, + float rangeFactorHealth = 1f, + float rangeFactorMind = 1f, + float rangeFactorMood = 1f, + float weightMass = 1f, + float weightStamina = 1f, + float weightHealth = 1f, + float weightMind = 1f, + float weightMood = 1f, + bool sumOrMultiply = false) { - [Dependency] private readonly IConfigurationManager _cfg = default!; - [Dependency] private readonly MobThresholdSystem _mobThreshold = default!; - - /// - /// The presumed average mass of a player entity - /// Defaulted to the average mass of an adult human - /// - private const float AverageMass = 71f; - - /// - /// The presumed average sum of a Psionic's Baseline Amplification and Baseline Dampening. - /// Since Baseline casting stats are a random value between 0.4 and 1.2, this is defaulted to 0.8 + 0.8. - /// - private const float AveragePsionicPotential = 1.6f; - - #region Mass Contests - /// - /// Outputs the ratio of mass between a performer and the average human mass - /// - /// - /// bypassClamp is a deprecated input intended for supporting legacy Nyanotrasen systems. Do not use it if you don't know what you're doing. - /// - public float MassContest(EntityUid performerUid, bool bypassClamp = false, float rangeFactor = 1f, float otherMass = AverageMass) - { - if (!_cfg.GetCVar(CCVars.DoContestsSystem) - || !_cfg.GetCVar(CCVars.DoMassContests) - || !TryComp(performerUid, out var performerPhysics) - || performerPhysics.Mass == 0) - return 1f; - - return ContestClamp(ContestClampOverride(bypassClamp) - ? performerPhysics.Mass / otherMass - : Math.Clamp(performerPhysics.Mass / otherMass, - 1 - _cfg.GetCVar(CCVars.MassContestsMaxPercentage) * rangeFactor, - 1 + _cfg.GetCVar(CCVars.MassContestsMaxPercentage) * rangeFactor)); - } - - /// - /// - /// MaybeMassContest, in case your entity doesn't exist - /// - public float MassContest(EntityUid? performerUid, bool bypassClamp = false, float rangeFactor = 1f, float otherMass = AverageMass) - { - if (!_cfg.GetCVar(CCVars.DoContestsSystem) - || !_cfg.GetCVar(CCVars.DoMassContests) - || performerUid is null) - return 1f; - - return MassContest(performerUid.Value, bypassClamp, rangeFactor, otherMass); - } - - /// - /// Outputs the ratio of mass between a performer and the average human mass - /// If a function already has the performer's physics component, this is faster - /// - /// - /// bypassClamp is a deprecated input intended for supporting legacy Nyanotrasen systems. Do not use it if you don't know what you're doing. - /// - public float MassContest(PhysicsComponent performerPhysics, bool bypassClamp = false, float rangeFactor = 1f, float otherMass = AverageMass) - { - if (!_cfg.GetCVar(CCVars.DoContestsSystem) - || !_cfg.GetCVar(CCVars.DoMassContests) - || performerPhysics.Mass == 0) - return 1f; - - return ContestClamp(ContestClampOverride(bypassClamp) - ? performerPhysics.Mass / otherMass - : Math.Clamp(performerPhysics.Mass / otherMass, - 1 - _cfg.GetCVar(CCVars.MassContestsMaxPercentage) * rangeFactor, - 1 + _cfg.GetCVar(CCVars.MassContestsMaxPercentage) * rangeFactor)); - } - - /// - /// Outputs the ratio of mass between a performer and a target, accepts either EntityUids or PhysicsComponents in any combination - /// If you have physics components already in your function, use instead - /// - /// - /// bypassClamp is a deprecated input intended for supporting legacy Nyanotrasen systems. Do not use it if you don't know what you're doing. - /// - public float MassContest(EntityUid performerUid, EntityUid targetUid, bool bypassClamp = false, float rangeFactor = 1f) - { - if (!_cfg.GetCVar(CCVars.DoContestsSystem) - || !_cfg.GetCVar(CCVars.DoMassContests) - || !TryComp(performerUid, out var performerPhysics) - || !TryComp(targetUid, out var targetPhysics) - || performerPhysics.Mass == 0 - || targetPhysics.InvMass == 0) - return 1f; - - return ContestClamp(ContestClampOverride(bypassClamp) - ? performerPhysics.Mass * targetPhysics.InvMass - : Math.Clamp(performerPhysics.Mass * targetPhysics.InvMass, - 1 - _cfg.GetCVar(CCVars.MassContestsMaxPercentage) * rangeFactor, - 1 + _cfg.GetCVar(CCVars.MassContestsMaxPercentage) * rangeFactor)); - } - - /// - public float MassContest(EntityUid performerUid, PhysicsComponent targetPhysics, bool bypassClamp = false, float rangeFactor = 1f) - { - if (!_cfg.GetCVar(CCVars.DoContestsSystem) - || !_cfg.GetCVar(CCVars.DoMassContests) - || !TryComp(performerUid, out var performerPhysics) - || performerPhysics.Mass == 0 - || targetPhysics.InvMass == 0) - return 1f; - - return ContestClamp(ContestClampOverride(bypassClamp) - ? performerPhysics.Mass * targetPhysics.InvMass - : Math.Clamp(performerPhysics.Mass * targetPhysics.InvMass, - 1 - _cfg.GetCVar(CCVars.MassContestsMaxPercentage) * rangeFactor, - 1 + _cfg.GetCVar(CCVars.MassContestsMaxPercentage) * rangeFactor)); - } - - /// - public float MassContest(PhysicsComponent performerPhysics, EntityUid targetUid, bool bypassClamp = false, float rangeFactor = 1f) - { - if (!_cfg.GetCVar(CCVars.DoContestsSystem) - || !_cfg.GetCVar(CCVars.DoMassContests) - || !TryComp(targetUid, out var targetPhysics) - || performerPhysics.Mass == 0 - || targetPhysics.InvMass == 0) - return 1f; - - return ContestClamp(ContestClampOverride(bypassClamp) - ? performerPhysics.Mass * targetPhysics.InvMass - : Math.Clamp(performerPhysics.Mass * targetPhysics.InvMass, - 1 - _cfg.GetCVar(CCVars.MassContestsMaxPercentage) * rangeFactor, - 1 + _cfg.GetCVar(CCVars.MassContestsMaxPercentage) * rangeFactor)); - } - - /// - public float MassContest(PhysicsComponent performerPhysics, PhysicsComponent targetPhysics, bool bypassClamp = false, float rangeFactor = 1f) - { - if (!_cfg.GetCVar(CCVars.DoContestsSystem) - || !_cfg.GetCVar(CCVars.DoMassContests) - || performerPhysics.Mass == 0 - || targetPhysics.InvMass == 0) - return 1f; - - return ContestClamp(ContestClampOverride(bypassClamp) - ? performerPhysics.Mass * targetPhysics.InvMass - : Math.Clamp(performerPhysics.Mass * targetPhysics.InvMass, - 1 - _cfg.GetCVar(CCVars.MassContestsMaxPercentage) * rangeFactor, - 1 + _cfg.GetCVar(CCVars.MassContestsMaxPercentage) * rangeFactor)); - } - - #endregion - #region Stamina Contests - - /// - /// Outputs 1 minus the percentage of an Entity's Stamina, with a Range of [Epsilon, 1 - 0.25 * rangeFactor], or a range of [Epsilon, 1 - Epsilon] if bypassClamp is true. - /// This will never return a value >1. - /// - /// - /// bypassClamp is a deprecated input intended for supporting legacy Nyanotrasen systems. Do not use it if you don't know what you're doing. - /// - public float StaminaContest(EntityUid performer, bool bypassClamp = false, float rangeFactor = 1f) - { - if (!TryComp(performer, out var perfStamina) - || perfStamina.StaminaDamage == 0) - return 1f; - - return StaminaContest(perfStamina, bypassClamp, rangeFactor); - } - - /// - public float StaminaContest(StaminaComponent perfStamina, bool bypassClamp = false, float rangeFactor = 1f) - { - if (!_cfg.GetCVar(CCVars.DoContestsSystem) - || !_cfg.GetCVar(CCVars.DoStaminaContests)) - return 1f; - - return ContestClamp(ContestClampOverride(bypassClamp) - ? 1 - perfStamina.StaminaDamage / perfStamina.CritThreshold - : 1 - Math.Clamp(perfStamina.StaminaDamage / perfStamina.CritThreshold, 0, 0.25f * rangeFactor)); - } - - /// - /// Outputs the ratio of percentage of an Entity's Stamina and a Target Entity's Stamina, with a Range of [Epsilon, 0.25 * rangeFactor], or a range of [Epsilon, +inf] if bypassClamp is true. - /// This does NOT produce the same kind of outputs as a Single-Entity StaminaContest. 2Entity StaminaContest returns the product of two Solo Stamina Contests, and so its values can be very strange. - /// - /// - /// bypassClamp is a deprecated input intended for supporting legacy Nyanotrasen systems. Do not use it if you don't know what you're doing. - /// - public float StaminaContest(EntityUid performer, EntityUid target, bool bypassClamp = false, float rangeFactor = 1f) - { - if (!_cfg.GetCVar(CCVars.DoContestsSystem) - || !_cfg.GetCVar(CCVars.DoStaminaContests) - || !TryComp(performer, out var perfStamina) - || !TryComp(target, out var targetStamina)) - return 1f; - - return ContestClamp(ContestClampOverride(bypassClamp) - ? (1 - perfStamina.StaminaDamage / perfStamina.CritThreshold) - / (1 - targetStamina.StaminaDamage / targetStamina.CritThreshold) - : (1 - Math.Clamp(perfStamina.StaminaDamage / perfStamina.CritThreshold, 0, 0.25f * rangeFactor)) - / (1 - Math.Clamp(targetStamina.StaminaDamage / targetStamina.CritThreshold, 0, 0.25f * rangeFactor))); - } - - #endregion - - #region Health Contests - - /// - /// Outputs 1 minus the percentage of an Entity's Health, with a Range of [Epsilon, 1 - 0.25 * rangeFactor], or a range of [Epsilon, 1 - Epsilon] if bypassClamp is true. - /// This will never return a value >1. - /// - /// - /// bypassClamp is a deprecated input intended for supporting legacy Nyanotrasen systems. Do not use it if you don't know what you're doing. - /// - public float HealthContest(EntityUid performer, bool bypassClamp = false, float rangeFactor = 1f) - { - if (!_cfg.GetCVar(CCVars.DoContestsSystem) - || !_cfg.GetCVar(CCVars.DoHealthContests) - || !TryComp(performer, out var damage) - || !_mobThreshold.TryGetThresholdForState(performer, Mobs.MobState.Critical, out var threshold)) - return 1f; - - return ContestClamp(ContestClampOverride(bypassClamp) - ? 1 - damage.TotalDamage.Float() / threshold.Value.Float() - : 1 - Math.Clamp(damage.TotalDamage.Float() / threshold.Value.Float(), 0, 0.25f * rangeFactor)); - } - - /// - /// Outputs the ratio of percentage of an Entity's Health and a Target Entity's Health, with a Range of [Epsilon, 0.25 * rangeFactor], or a range of [Epsilon, +inf] if bypassClamp is true. - /// This does NOT produce the same kind of outputs as a Single-Entity HealthContest. 2Entity HealthContest returns the product of two Solo Health Contests, and so its values can be very strange. - /// - /// - /// bypassClamp is a deprecated input intended for supporting legacy Nyanotrasen systems. Do not use it if you don't know what you're doing. - /// - public float HealthContest(EntityUid performer, EntityUid target, bool bypassClamp = false, float rangeFactor = 1f) - { - if (!_cfg.GetCVar(CCVars.DoContestsSystem) - || !_cfg.GetCVar(CCVars.DoHealthContests) - || !TryComp(performer, out var perfDamage) - || !TryComp(target, out var targetDamage) - || !_mobThreshold.TryGetThresholdForState(performer, Mobs.MobState.Critical, out var perfThreshold) - || !_mobThreshold.TryGetThresholdForState(target, Mobs.MobState.Critical, out var targetThreshold)) - return 1f; - - return ContestClamp(ContestClampOverride(bypassClamp) - ? (1 - perfDamage.TotalDamage.Float() / perfThreshold.Value.Float()) - / (1 - targetDamage.TotalDamage.Float() / targetThreshold.Value.Float()) - : (1 - Math.Clamp(perfDamage.TotalDamage.Float() / perfThreshold.Value.Float(), 0, 0.25f * rangeFactor)) - / (1 - Math.Clamp(targetDamage.TotalDamage.Float() / targetThreshold.Value.Float(), 0, 0.25f * rangeFactor))); - } - #endregion - - #region Mind Contests - - /// - /// Returns the ratio of casting stats between a performer and the presumed average latent psionic. - /// Uniquely among Contests, not being Psionic is not a failure condition, and is instead a variable. - /// If you do not have a PsionicComponent, your combined casting stats are assumed to be 0.1f - /// - /// - /// This can produce some truly astounding modifiers, so be ready to meet god if you bypass the clamp. - /// By bypassing this function's clamp you hereby agree to forfeit your soul to VMSolidus should unintended bugs occur. - /// - public float MindContest(EntityUid performer, bool bypassClamp = false, float rangeFactor = 1f, float otherPsion = AveragePsionicPotential) - { - if (!_cfg.GetCVar(CCVars.DoContestsSystem) - || !_cfg.GetCVar(CCVars.DoMindContests)) - return 1f; - - var performerPotential = TryComp(performer, out var performerPsionic) - ? performerPsionic.CurrentAmplification + performerPsionic.CurrentDampening - : 0.1f; - - if (performerPotential == otherPsion) - return 1f; - - return ContestClamp(ContestClampOverride(bypassClamp) - ? performerPotential / otherPsion - : Math.Clamp(performerPotential / otherPsion, - 1 - _cfg.GetCVar(CCVars.MassContestsMaxPercentage) * rangeFactor, - 1 + _cfg.GetCVar(CCVars.MassContestsMaxPercentage) * rangeFactor)); - } - - /// - /// Returns the ratio of casting stats between a performer and a target. - /// Like with single-Uid MindContests, if an entity does not possess a PsionicComponent, its casting stats are assumed to be 0.1f. - /// - /// - /// This can produce some truly astounding modifiers, so be ready to meet god if you bypass the clamp. - /// By bypassing this function's clamp you hereby agree to forfeit your soul to VMSolidus should unintended bugs occur. - /// - public float MindContest(EntityUid performer, EntityUid target, bool bypassClamp = false, float rangeFactor = 1f) - { - if (!_cfg.GetCVar(CCVars.DoContestsSystem) - || !_cfg.GetCVar(CCVars.DoMindContests)) - return 1f; - - var performerPotential = TryComp(performer, out var performerPsionic) - ? performerPsionic.CurrentAmplification + performerPsionic.CurrentDampening - : 0.1f; - - var targetPotential = TryComp(target, out var targetPsionic) - ? targetPsionic.CurrentAmplification + targetPsionic.CurrentDampening - : 0.1f; - - if (performerPotential == targetPotential) - return 1f; - - return ContestClamp(ContestClampOverride(bypassClamp) - ? performerPotential / targetPotential - : Math.Clamp(performerPotential / targetPotential, - 1 - _cfg.GetCVar(CCVars.MassContestsMaxPercentage) * rangeFactor, - 1 + _cfg.GetCVar(CCVars.MassContestsMaxPercentage) * rangeFactor)); - } - - #endregion - - #region Mood Contests - - /// - /// Outputs the ratio of an Entity's mood level and its Neutral Mood threshold. - /// - /// - /// bypassClamp is a deprecated input intended for supporting legacy Nyanotrasen systems. Do not use it if you don't know what you're doing. - /// - public float MoodContest(EntityUid performer, bool bypassClamp = false, float rangeFactor = 1f) - { - if (!_cfg.GetCVar(CCVars.DoContestsSystem) - || !_cfg.GetCVar(CCVars.DoMoodContests) - || !TryComp(performer, out var mood)) - return 1f; - - return ContestClamp(ContestClampOverride(bypassClamp) - ? mood.CurrentMoodLevel / mood.NeutralMoodThreshold - : Math.Clamp(mood.CurrentMoodLevel / mood.NeutralMoodThreshold, - 1 - _cfg.GetCVar(CCVars.MassContestsMaxPercentage) * rangeFactor, - 1 + _cfg.GetCVar(CCVars.MassContestsMaxPercentage) * rangeFactor)); - } - - /// - /// Outputs the ratio of mood level between two Entities. - /// - /// - /// bypassClamp is a deprecated input intended for supporting legacy Nyanotrasen systems. Do not use it if you don't know what you're doing. - /// - public float MoodContest(EntityUid performer, EntityUid target, bool bypassClamp = false, float rangeFactor = 1f) - { - if (!_cfg.GetCVar(CCVars.DoContestsSystem) - || !_cfg.GetCVar(CCVars.DoMoodContests) - || !TryComp(performer, out var performerMood) - || !TryComp(target, out var targetMood)) - return 1f; - - return ContestClamp(ContestClampOverride(bypassClamp) - ? performerMood.CurrentMoodLevel / targetMood.CurrentMoodLevel - : Math.Clamp(performerMood.CurrentMoodLevel / targetMood.CurrentMoodLevel, - 1 - _cfg.GetCVar(CCVars.MassContestsMaxPercentage) * rangeFactor, - 1 + _cfg.GetCVar(CCVars.MassContestsMaxPercentage) * rangeFactor)); - } - - #endregion - - #region EVERY CONTESTS - - /// - /// EveryContest takes either the Sum or Product of all existing contests, for if you want to just check if somebody is absolutely fucked up. - /// - /// - /// If it's not immediately obvious that a function with 16 optional inputs is a joke, please take a step back and re-evaluate why you're using this function. - /// All prior warnings also apply here. Bypass the clamps at your own risk. By calling this function in your system, you hereby agree to forfeit your soul to VMSolidus if bugs occur. - /// - public float EveryContest( - EntityUid performer, - bool bypassClampMass = false, - bool bypassClampStamina = false, - bool bypassClampHealth = false, - bool bypassClampMind = false, - bool bypassClampMood = false, - float rangeFactorMass = 1f, - float rangeFactorStamina = 1f, - float rangeFactorHealth = 1f, - float rangeFactorMind = 1f, - float rangeFactorMood = 1f, - float weightMass = 1f, - float weightStamina = 1f, - float weightHealth = 1f, - float weightMind = 1f, - float weightMood = 1f, - bool sumOrMultiply = false) - { - if (!_cfg.GetCVar(CCVars.DoContestsSystem)) - return 1f; - - var weightTotal = weightMass + weightStamina + weightHealth + weightMind + weightMood; - var massMultiplier = weightMass / weightTotal; - var staminaMultiplier = weightStamina / weightTotal; - var healthMultiplier = weightHealth / weightTotal; - var mindMultiplier = weightMind / weightTotal; - var moodMultiplier = weightMood / weightTotal; - - return sumOrMultiply - ? MassContest(performer, bypassClampMass, rangeFactorMass) * massMultiplier - + StaminaContest(performer, bypassClampStamina, rangeFactorStamina) * staminaMultiplier - + HealthContest(performer, bypassClampHealth, rangeFactorHealth) * healthMultiplier - + MindContest(performer, bypassClampMind, rangeFactorMind) * mindMultiplier - + MoodContest(performer, bypassClampMood, rangeFactorMood) * moodMultiplier - : ContestClamp(MassContest(performer, bypassClampMass, rangeFactorMass) * massMultiplier - * StaminaContest(performer, bypassClampStamina, rangeFactorStamina) * staminaMultiplier - * HealthContest(performer, bypassClampHealth, rangeFactorHealth) * healthMultiplier - * MindContest(performer, bypassClampMind, rangeFactorMind) * mindMultiplier - * MoodContest(performer, bypassClampMood, rangeFactorMood) * moodMultiplier); - } - - /// - /// EveryContest takes either the Sum or Product of all existing contests, for if you want to just check if somebody is absolutely fucked up. - /// - /// - /// If it's not immediately obvious that a function with 16 optional inputs is a joke, please take a step back and re-evaluate why you're using this function. - /// All prior warnings also apply here. Bypass the clamps at your own risk. By calling this function in your system, you hereby agree to forfeit your soul to VMSolidus if bugs occur. - /// - public float EveryContest( - EntityUid performer, - EntityUid target, - bool bypassClampMass = false, - bool bypassClampStamina = false, - bool bypassClampHealth = false, - bool bypassClampMind = false, - bool bypassClampMood = false, - float rangeFactorMass = 1f, - float rangeFactorStamina = 1f, - float rangeFactorHealth = 1f, - float rangeFactorMind = 1f, - float rangeFactorMood = 1f, - float weightMass = 1f, - float weightStamina = 1f, - float weightHealth = 1f, - float weightMind = 1f, - float weightMood = 1f, - bool sumOrMultiply = false) - { - if (!_cfg.GetCVar(CCVars.DoContestsSystem)) - return 1f; - - var weightTotal = weightMass + weightStamina + weightHealth + weightMind + weightMood; - var massMultiplier = weightMass / weightTotal; - var staminaMultiplier = weightStamina / weightTotal; - var healthMultiplier = weightHealth / weightTotal; - var mindMultiplier = weightMind / weightTotal; - var moodMultiplier = weightMood / weightTotal; - - return sumOrMultiply - ? MassContest(performer, target, bypassClampMass, rangeFactorMass) * massMultiplier - + StaminaContest(performer, target, bypassClampStamina, rangeFactorStamina) * staminaMultiplier - + HealthContest(performer, target, bypassClampHealth, rangeFactorHealth) * healthMultiplier - + MindContest(performer, target, bypassClampMind, rangeFactorMind) * mindMultiplier - + MoodContest(performer, target, bypassClampMood, rangeFactorMood) * moodMultiplier - : ContestClamp(MassContest(performer, target, bypassClampMass, rangeFactorMass) * massMultiplier - * StaminaContest(performer, target, bypassClampStamina, rangeFactorStamina) * staminaMultiplier - * HealthContest(performer, target, bypassClampHealth, rangeFactorHealth) * healthMultiplier - * MindContest(performer, target, bypassClampMind, rangeFactorMind) * mindMultiplier - * MoodContest(performer, target, bypassClampMood, rangeFactorMood) * moodMultiplier); - } - #endregion + if (!_cfg.GetCVar(CCVars.DoContestsSystem)) + return 1f; + + var weightTotal = weightMass + weightStamina + weightHealth + weightMind + weightMood; + var massMultiplier = weightMass / weightTotal; + var staminaMultiplier = weightStamina / weightTotal; + var healthMultiplier = weightHealth / weightTotal; + var mindMultiplier = weightMind / weightTotal; + var moodMultiplier = weightMood / weightTotal; + + return sumOrMultiply + ? MassContest(performer, target, bypassClampMass, rangeFactorMass) * massMultiplier + + StaminaContest(performer, target, bypassClampStamina, rangeFactorStamina) * staminaMultiplier + + HealthContest(performer, target, bypassClampHealth, rangeFactorHealth) * healthMultiplier + + MindContest(performer, target, bypassClampMind, rangeFactorMind) * mindMultiplier + + MoodContest(performer, target, bypassClampMood, rangeFactorMood) * moodMultiplier + : ContestClamp(MassContest(performer, target, bypassClampMass, rangeFactorMass) * massMultiplier + * StaminaContest(performer, target, bypassClampStamina, rangeFactorStamina) * staminaMultiplier + * HealthContest(performer, target, bypassClampHealth, rangeFactorHealth) * healthMultiplier + * MindContest(performer, target, bypassClampMind, rangeFactorMind) * mindMultiplier + * MoodContest(performer, target, bypassClampMood, rangeFactorMood) * moodMultiplier); } + #endregion } diff --git a/Content.Shared/CriminalRecords/Components/CriminalRecordsHackerComponent.cs b/Content.Shared/CriminalRecords/Components/CriminalRecordsHackerComponent.cs new file mode 100644 index 0000000000..189a387a5d --- /dev/null +++ b/Content.Shared/CriminalRecords/Components/CriminalRecordsHackerComponent.cs @@ -0,0 +1,31 @@ +using Content.Shared.CriminalRecords.Systems; +using Content.Shared.Dataset; +using Robust.Shared.GameStates; +using Robust.Shared.Prototypes; + +namespace Content.Shared.CriminalRecords.Components; + +/// +/// Lets the user hack a criminal records console, once. +/// Everyone is set to wanted with a randomly picked reason. +/// +[RegisterComponent, NetworkedComponent, Access(typeof(SharedCriminalRecordsHackerSystem))] +public sealed partial class CriminalRecordsHackerComponent : Component +{ + /// + /// How long the doafter is for hacking it. + /// + public TimeSpan Delay = TimeSpan.FromSeconds(20); + + /// + /// Dataset of random reasons to use. + /// + [DataField] + public ProtoId Reasons = "CriminalRecordsWantedReasonPlaceholders"; + + /// + /// Announcement made after the console is hacked. + /// + [DataField] + public LocId Announcement = "ninja-criminal-records-hack-announcement"; +} diff --git a/Content.Shared/CriminalRecords/Systems/SharedCriminalRecordsHackerSystem.cs b/Content.Shared/CriminalRecords/Systems/SharedCriminalRecordsHackerSystem.cs new file mode 100644 index 0000000000..a626db19e5 --- /dev/null +++ b/Content.Shared/CriminalRecords/Systems/SharedCriminalRecordsHackerSystem.cs @@ -0,0 +1,50 @@ +using Content.Shared.CriminalRecords.Components; +using Content.Shared.DoAfter; +using Content.Shared.Interaction; +using Content.Shared.Ninja.Systems; +using Robust.Shared.Serialization; + +namespace Content.Shared.CriminalRecords.Systems; + +public abstract class SharedCriminalRecordsHackerSystem : EntitySystem +{ + [Dependency] private readonly SharedDoAfterSystem _doAfter = default!; + [Dependency] private readonly SharedNinjaGlovesSystem _gloves = default!; + + public override void Initialize() + { + base.Initialize(); + + SubscribeLocalEvent(OnBeforeInteractHand); + } + + private void OnBeforeInteractHand(Entity ent, ref BeforeInteractHandEvent args) + { + // TODO: generic event + if (args.Handled || !_gloves.AbilityCheck(ent, args, out var target)) + return; + + if (!HasComp(target)) + return; + + var doAfterArgs = new DoAfterArgs(EntityManager, ent, ent.Comp.Delay, new CriminalRecordsHackDoAfterEvent(), target: target, used: ent, eventTarget: ent) + { + BreakOnDamage = true, + BreakOnTargetMove = true, + BreakOnUserMove = true, + BreakOnWeightlessMove = true, + MovementThreshold = 0.5f, + }; + + _doAfter.TryStartDoAfter(doAfterArgs); + args.Handled = true; + } +} + +/// +/// Raised on the user when the doafter completes. +/// +[Serializable, NetSerializable] +public sealed partial class CriminalRecordsHackDoAfterEvent : SimpleDoAfterEvent +{ +} diff --git a/Content.Shared/Cuffs/SharedCuffableSystem.cs b/Content.Shared/Cuffs/SharedCuffableSystem.cs index ebbafef7f0..9777b23988 100644 --- a/Content.Shared/Cuffs/SharedCuffableSystem.cs +++ b/Content.Shared/Cuffs/SharedCuffableSystem.cs @@ -7,6 +7,7 @@ using Content.Shared.Contests; using Content.Shared.Cuffs.Components; using Content.Shared.Database; +using Content.Shared.Flight; using Content.Shared.DoAfter; using Content.Shared.Hands; using Content.Shared.Hands.Components; @@ -479,6 +480,13 @@ public bool TryCuffing(EntityUid user, EntityUid target, EntityUid handcuff, Han return true; } + if (TryComp(target, out var flight) && flight.On) + { + _popup.PopupClient(Loc.GetString("handcuff-component-target-flying-error", + ("targetName", Identity.Name(target, EntityManager, user))), user, user); + return true; + } + var cuffTime = handcuffComponent.CuffTime; if (HasComp(target)) @@ -731,4 +739,4 @@ private sealed partial class AddCuffDoAfterEvent : SimpleDoAfterEvent { } } -} +} \ No newline at end of file diff --git a/Content.Shared/Customization/Systems/CharacterRequirements.Profile.cs b/Content.Shared/Customization/Systems/CharacterRequirements.Profile.cs index 8fdb7c0e7d..568a7f1b61 100644 --- a/Content.Shared/Customization/Systems/CharacterRequirements.Profile.cs +++ b/Content.Shared/Customization/Systems/CharacterRequirements.Profile.cs @@ -41,50 +41,6 @@ public override bool IsValid(JobPrototype job, HumanoidCharacterProfile profile, } } -/// -/// Requires the profile to use either a Backpack, Satchel, or Duffelbag -/// -[UsedImplicitly] -[Serializable, NetSerializable] -public sealed partial class CharacterBackpackTypeRequirement : CharacterRequirement -{ - [DataField(required: true)] - public BackpackPreference Preference; - - 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) - { - reason = FormattedMessage.FromMarkup(Loc.GetString("character-backpack-type-requirement", - ("inverted", Inverted), - ("type", Loc.GetString($"humanoid-profile-editor-preference-{Preference.ToString().ToLower()}")))); - return profile.Backpack == Preference; - } -} - -/// -/// Requires the profile to use either Jumpsuits or Jumpskirts -/// -[UsedImplicitly] -[Serializable, NetSerializable] -public sealed partial class CharacterClothingPreferenceRequirement : CharacterRequirement -{ - [DataField(required: true)] - public ClothingPreference Preference; - - 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) - { - reason = FormattedMessage.FromMarkup(Loc.GetString("character-clothing-preference-requirement", - ("inverted", Inverted), - ("preference", Loc.GetString($"humanoid-profile-editor-preference-{Preference.ToString().ToLower()}")))); - return profile.Clothing == Preference; - } -} - /// /// Requires the profile to be a certain gender /// diff --git a/Content.Shared/Damage/Components/StaminaComponent.cs b/Content.Shared/Damage/Components/StaminaComponent.cs index 65c025c3ad..b78fe97809 100644 --- a/Content.Shared/Damage/Components/StaminaComponent.cs +++ b/Content.Shared/Damage/Components/StaminaComponent.cs @@ -39,6 +39,13 @@ public sealed partial class StaminaComponent : Component [ViewVariables(VVAccess.ReadWrite), DataField, AutoNetworkedField] public float CritThreshold = 100f; + /// + /// A dictionary of active stamina drains, with the key being the source of the drain, + /// DrainRate how much it changes per tick, and ModifiesSpeed if it should slow down the user. + /// + [DataField, AutoNetworkedField] + public Dictionary ActiveDrains = new(); + /// /// How long will this mob be stunned for? /// @@ -63,4 +70,4 @@ public sealed partial class StaminaComponent : Component /// [DataField, AutoNetworkedField] public float SlowdownMultiplier = 0.75f; -} +} \ No newline at end of file diff --git a/Content.Shared/Damage/Prototypes/DamageGroupPrototype.cs b/Content.Shared/Damage/Prototypes/DamageGroupPrototype.cs index 807f143708..bb5aea3a38 100644 --- a/Content.Shared/Damage/Prototypes/DamageGroupPrototype.cs +++ b/Content.Shared/Damage/Prototypes/DamageGroupPrototype.cs @@ -17,6 +17,12 @@ public sealed partial class DamageGroupPrototype : IPrototype { [IdDataField] public string ID { get; } = default!; + [DataField(required: true)] + private LocId Name { get; set; } + + [ViewVariables(VVAccess.ReadOnly)] + public string LocalizedName => Loc.GetString(Name); + [DataField("damageTypes", required: true, customTypeSerializer: typeof(PrototypeIdListSerializer))] public List DamageTypes { get; private set; } = default!; } diff --git a/Content.Shared/Damage/Prototypes/DamageModifierSetPrototype.cs b/Content.Shared/Damage/Prototypes/DamageModifierSetPrototype.cs index 99e13ee284..a50856b044 100644 --- a/Content.Shared/Damage/Prototypes/DamageModifierSetPrototype.cs +++ b/Content.Shared/Damage/Prototypes/DamageModifierSetPrototype.cs @@ -10,7 +10,7 @@ namespace Content.Shared.Damage.Prototypes /// just want normal data to be deserialized. /// [Prototype("damageModifierSet")] - public sealed class DamageModifierSetPrototype : DamageModifierSet, IPrototype + public sealed partial class DamageModifierSetPrototype : DamageModifierSet, IPrototype { [ViewVariables] [IdDataField] diff --git a/Content.Shared/Damage/Prototypes/DamageTypePrototype.cs b/Content.Shared/Damage/Prototypes/DamageTypePrototype.cs index cde7a8617f..a1ae23ef67 100644 --- a/Content.Shared/Damage/Prototypes/DamageTypePrototype.cs +++ b/Content.Shared/Damage/Prototypes/DamageTypePrototype.cs @@ -11,6 +11,12 @@ public sealed partial class DamageTypePrototype : IPrototype [IdDataField] public string ID { get; private set; } = default!; + [DataField(required: true)] + private LocId Name { get; set; } + + [ViewVariables(VVAccess.ReadOnly)] + public string LocalizedName => Loc.GetString(Name); + /// /// The price for each 1% damage reduction in armors /// diff --git a/Content.Shared/Damage/Systems/DamageExamineSystem.cs b/Content.Shared/Damage/Systems/DamageExamineSystem.cs index 8273719110..fd1f191334 100644 --- a/Content.Shared/Damage/Systems/DamageExamineSystem.cs +++ b/Content.Shared/Damage/Systems/DamageExamineSystem.cs @@ -1,8 +1,10 @@ using Content.Shared.Damage.Components; using Content.Shared.Damage.Events; +using Content.Shared.Damage.Prototypes; using Content.Shared.Examine; using Content.Shared.FixedPoint; using Content.Shared.Verbs; +using Robust.Shared.Prototypes; using Robust.Shared.Utility; namespace Content.Shared.Damage.Systems; @@ -10,6 +12,7 @@ namespace Content.Shared.Damage.Systems; public sealed class DamageExamineSystem : EntitySystem { [Dependency] private readonly ExamineSystemShared _examine = default!; + [Dependency] private readonly IPrototypeManager _prototype = default!; public override void Initialize() { @@ -66,7 +69,7 @@ private FormattedMessage GetDamageExamine(DamageSpecifier damageSpecifier, strin if (damage.Value != FixedPoint2.Zero) { msg.PushNewline(); - msg.AddMarkup(Loc.GetString("damage-value", ("type", damage.Key), ("amount", damage.Value))); + msg.AddMarkup(Loc.GetString("damage-value", ("type", _prototype.Index(damage.Key).LocalizedName), ("amount", damage.Value))); } } diff --git a/Content.Shared/Damage/Systems/StaminaSystem.cs b/Content.Shared/Damage/Systems/StaminaSystem.cs index 4900d0d65f..9cdd7ecaf3 100644 --- a/Content.Shared/Damage/Systems/StaminaSystem.cs +++ b/Content.Shared/Damage/Systems/StaminaSystem.cs @@ -261,7 +261,7 @@ public bool TryTakeStamina(EntityUid uid, float value, StaminaComponent? compone } public void TakeStaminaDamage(EntityUid uid, float value, StaminaComponent? component = null, - EntityUid? source = null, EntityUid? with = null, bool visual = true, SoundSpecifier? sound = null) + EntityUid? source = null, EntityUid? with = null, bool visual = true, SoundSpecifier? sound = null, bool? allowsSlowdown = true) { if (!Resolve(uid, ref component, false) || value == 0) @@ -287,8 +287,8 @@ public void TakeStaminaDamage(EntityUid uid, float value, StaminaComponent? comp if (component.NextUpdate < nextUpdate) component.NextUpdate = nextUpdate; } - - _movementSpeed.RefreshMovementSpeedModifiers(uid); + if (allowsSlowdown == true) + _movementSpeed.RefreshMovementSpeedModifiers(uid); SetStaminaAlert(uid, component); if (!component.Critical) @@ -331,27 +331,51 @@ public void TakeStaminaDamage(EntityUid uid, float value, StaminaComponent? comp } } + public void ToggleStaminaDrain(EntityUid target, float drainRate, bool enabled, bool modifiesSpeed, EntityUid? source = null) + { + if (!TryComp(target, out var stamina)) + return; + + // If theres no source, we assume its the target that caused the drain. + var actualSource = source ?? target; + + if (enabled) + { + stamina.ActiveDrains[actualSource] = (drainRate, modifiesSpeed); + EnsureComp(target); + } + else + stamina.ActiveDrains.Remove(actualSource); + + Dirty(target, stamina); + } + public override void Update(float frameTime) { base.Update(frameTime); - if (!_timing.IsFirstTimePredicted) return; var stamQuery = GetEntityQuery(); var query = EntityQueryEnumerator(); var curTime = _timing.CurTime; - while (query.MoveNext(out var uid, out _)) { // Just in case we have active but not stamina we'll check and account for it. if (!stamQuery.TryGetComponent(uid, out var comp) || - comp.StaminaDamage <= 0f && !comp.Critical) + comp.StaminaDamage <= 0f && !comp.Critical && comp.ActiveDrains.Count == 0) { RemComp(uid); continue; } - + if (comp.ActiveDrains.Count > 0) + foreach (var (source, (drainRate, modifiesSpeed)) in comp.ActiveDrains) + TakeStaminaDamage(uid, + drainRate * frameTime, + comp, + source: source, + visual: false, + allowsSlowdown: modifiesSpeed); // Shouldn't need to consider paused time as we're only iterating non-paused stamina components. var nextUpdate = comp.NextUpdate; @@ -366,8 +390,11 @@ public override void Update(float frameTime) } comp.NextUpdate += TimeSpan.FromSeconds(1f); - TakeStaminaDamage(uid, -comp.Decay, comp); - Dirty(comp); + // If theres no active drains, recover stamina. + if (comp.ActiveDrains.Count == 0) + TakeStaminaDamage(uid, -comp.Decay, comp); + + Dirty(uid, comp); } } @@ -383,7 +410,6 @@ private void EnterStamCrit(EntityUid uid, StaminaComponent? component = null) component.StaminaDamage = component.CritThreshold; _stunSystem.TryParalyze(uid, component.StunTime, true); - // Give them buffer before being able to be re-stunned component.NextUpdate = _timing.CurTime + component.StunTime + StamCritBufferTime; EnsureComp(uid); @@ -410,4 +436,4 @@ private void ExitStamCrit(EntityUid uid, StaminaComponent? component = null) /// Raised before stamina damage is dealt to allow other systems to cancel it. /// [ByRefEvent] -public record struct BeforeStaminaDamageEvent(float Value, bool Cancelled = false); +public record struct BeforeStaminaDamageEvent(float Value, bool Cancelled = false); \ No newline at end of file diff --git a/Content.Shared/DeltaV/CCVars/DCCVars.cs b/Content.Shared/DeltaV/CCVars/DCCVars.cs index 2028397ffe..89a14275be 100644 --- a/Content.Shared/DeltaV/CCVars/DCCVars.cs +++ b/Content.Shared/DeltaV/CCVars/DCCVars.cs @@ -15,10 +15,4 @@ public sealed class DCCVars /// public static readonly CVarDef RoundEndPacifist = CVarDef.Create("game.round_end_pacifist", false, CVar.SERVERONLY); - - /// - /// Disables all vision filters for species like Vulpkanin or Harpies. There are good reasons someone might want to disable these. - /// - public static readonly CVarDef NoVisionFilters = - CVarDef.Create("accessibility.no_vision_filters", false, CVar.CLIENTONLY | CVar.ARCHIVE); } diff --git a/Content.Shared/DeltaV/CartridgeLoader/Cartridges/MailMetricUiState.cs b/Content.Shared/DeltaV/CartridgeLoader/Cartridges/MailMetricUiState.cs new file mode 100644 index 0000000000..69506f5d0c --- /dev/null +++ b/Content.Shared/DeltaV/CartridgeLoader/Cartridges/MailMetricUiState.cs @@ -0,0 +1,50 @@ +using Content.Shared.Security; +using Robust.Shared.Serialization; + +namespace Content.Shared.CartridgeLoader.Cartridges; + +[Serializable, NetSerializable] +public sealed class MailMetricUiState : BoundUserInterfaceState +{ + public readonly MailStats Metrics; + public int UnopenedMailCount { get; } + public int TotalMail { get; } + public double SuccessRate { get; } + + public MailMetricUiState(MailStats metrics, int unopenedMailCount) + { + Metrics = metrics; + UnopenedMailCount = unopenedMailCount; + TotalMail = metrics.TotalMail(unopenedMailCount); + SuccessRate = metrics.SuccessRate(unopenedMailCount); + } +} + +[DataDefinition] +[Serializable, NetSerializable] +public partial record struct MailStats +{ + public int Earnings { get; init; } + public int DamagedLosses { get; init; } + public int ExpiredLosses { get; init; } + public int TamperedLosses { get; init; } + public int OpenedCount { get; init; } + public int DamagedCount { get; init; } + public int ExpiredCount { get; init; } + public int TamperedCount { get; init; } + + public readonly int TotalMail(int unopenedCount) + { + return OpenedCount + unopenedCount; + } + + public readonly int TotalIncome => Earnings + DamagedLosses + ExpiredLosses + TamperedLosses; + + public readonly double SuccessRate(int unopenedCount) + { + var totalMail = TotalMail(unopenedCount); + return (totalMail > 0) + ? Math.Round((double)OpenedCount / totalMail * 100, 2) + : 0; + } +} \ No newline at end of file diff --git a/Content.Shared/DeviceLinking/DevicePortPrototype.cs b/Content.Shared/DeviceLinking/DevicePortPrototype.cs index c0a419ee65..e3421dda9d 100644 --- a/Content.Shared/DeviceLinking/DevicePortPrototype.cs +++ b/Content.Shared/DeviceLinking/DevicePortPrototype.cs @@ -29,13 +29,13 @@ public abstract class DevicePortPrototype [Prototype("sinkPort")] [Serializable, NetSerializable] -public sealed class SinkPortPrototype : DevicePortPrototype, IPrototype +public sealed partial class SinkPortPrototype : DevicePortPrototype, IPrototype { } [Prototype("sourcePort")] [Serializable, NetSerializable] -public sealed class SourcePortPrototype : DevicePortPrototype, IPrototype +public sealed partial class SourcePortPrototype : DevicePortPrototype, IPrototype { /// /// This is a set of sink ports that this source port will attempt to link to when using the diff --git a/Content.Shared/DeviceNetwork/Systems/SharedNetworkConfiguratorSystem.cs b/Content.Shared/DeviceNetwork/Systems/SharedNetworkConfiguratorSystem.cs index 4aa9db199d..53928f83a9 100644 --- a/Content.Shared/DeviceNetwork/Systems/SharedNetworkConfiguratorSystem.cs +++ b/Content.Shared/DeviceNetwork/Systems/SharedNetworkConfiguratorSystem.cs @@ -1,10 +1,23 @@ using Content.Shared.Actions; +using Content.Shared.DeviceNetwork.Components; +using Content.Shared.UserInterface; using Robust.Shared.Serialization; namespace Content.Shared.DeviceNetwork.Systems; public abstract class SharedNetworkConfiguratorSystem : EntitySystem { + public override void Initialize() + { + base.Initialize(); + SubscribeLocalEvent(OnUiOpenAttempt); + } + + private void OnUiOpenAttempt(EntityUid uid, NetworkConfiguratorComponent configurator, ActivatableUIOpenAttemptEvent args) + { + if (configurator.LinkModeActive) + args.Cancel(); + } } public sealed partial class ClearAllOverlaysEvent : InstantActionEvent diff --git a/Content.Shared/Disposal/Components/SharedDisposalUnitComponent.cs b/Content.Shared/Disposal/Components/SharedDisposalUnitComponent.cs index 4948cb6640..36dd14f9b2 100644 --- a/Content.Shared/Disposal/Components/SharedDisposalUnitComponent.cs +++ b/Content.Shared/Disposal/Components/SharedDisposalUnitComponent.cs @@ -36,13 +36,6 @@ public abstract partial class SharedDisposalUnitComponent : Component [ViewVariables(VVAccess.ReadWrite), DataField("soundInsert")] public SoundSpecifier? InsertSound = new SoundPathSpecifier("/Audio/Effects/trashbag1.ogg"); - /// - /// Sound played when an item is thrown and misses the disposal unit. - /// - [ViewVariables(VVAccess.ReadWrite), DataField("soundMiss")] - public SoundSpecifier? MissSound = new SoundPathSpecifier("/Audio/Effects/thudswoosh.ogg"); - - /// /// State for this disposals unit. /// diff --git a/Content.Shared/DoAfter/DoAfterEvent.cs b/Content.Shared/DoAfter/DoAfterEvent.cs index c01505f9b2..bc9abdab87 100644 --- a/Content.Shared/DoAfter/DoAfterEvent.cs +++ b/Content.Shared/DoAfter/DoAfterEvent.cs @@ -73,7 +73,7 @@ public sealed partial class DoAfterAttemptEvent : CancellableEntityEvent public readonly DoAfter DoAfter; /// - /// The event that the DoAfter will raise after sucesfully finishing. Given that this event has the data + /// The event that the DoAfter will raise after successfully finishing. Given that this event has the data /// required to perform the interaction, it should also contain the data required to validate/attempt the /// interaction. /// diff --git a/Content.Shared/DoAfter/SharedDoAfterSystem.Update.cs b/Content.Shared/DoAfter/SharedDoAfterSystem.Update.cs index abd8888f58..24b3841759 100644 --- a/Content.Shared/DoAfter/SharedDoAfterSystem.Update.cs +++ b/Content.Shared/DoAfter/SharedDoAfterSystem.Update.cs @@ -101,6 +101,7 @@ private bool TryAttemptEvent(DoAfter doAfter) doAfter.AttemptEvent = _factory.CreateInstance(evType, new object[] { doAfter, args.Event }); } + args.Event.DoAfter = doAfter; if (args.EventTarget != null) RaiseLocalEvent(args.EventTarget.Value, doAfter.AttemptEvent, args.Broadcast); else diff --git a/Content.Shared/DoAfter/SharedDoAfterSystem.cs b/Content.Shared/DoAfter/SharedDoAfterSystem.cs index 3b0ba58f55..81c8c4f382 100644 --- a/Content.Shared/DoAfter/SharedDoAfterSystem.cs +++ b/Content.Shared/DoAfter/SharedDoAfterSystem.cs @@ -247,8 +247,9 @@ public bool TryStartDoAfter(DoAfterArgs args, [NotNullWhen(true)] out DoAfterId? if (args.AttemptFrequency == AttemptFrequency.StartAndEnd && !TryAttemptEvent(doAfter)) return false; - if (args.Delay <= TimeSpan.Zero || - _tag.HasTag(args.User, "InstantDoAfters")) + // TODO DO AFTER + // Why does this tag exist? Just make this a bool on the component? + if (args.Delay <= TimeSpan.Zero || _tag.HasTag(args.User, "InstantDoAfters")) { RaiseDoAfterEvents(doAfter, comp); // We don't store instant do-afters. This is just a lazy way of hiding them from client-side visuals. diff --git a/Content.Shared/Extinguisher/SharedFireExtinguisherComponent.cs b/Content.Shared/Extinguisher/SharedFireExtinguisherComponent.cs index 53d58f1d80..dbb1f6f2c4 100644 --- a/Content.Shared/Extinguisher/SharedFireExtinguisherComponent.cs +++ b/Content.Shared/Extinguisher/SharedFireExtinguisherComponent.cs @@ -1,8 +1,10 @@ using Robust.Shared.Audio; +using Robust.Shared.GameStates; using Robust.Shared.Serialization; namespace Content.Shared.Extinguisher; +[NetworkedComponent] public abstract partial class SharedFireExtinguisherComponent : Component { [DataField("refillSound")] public SoundSpecifier RefillSound = new SoundPathSpecifier("/Audio/Effects/refill.ogg"); diff --git a/Content.Shared/Eye/Blinding/Components/BlindableComponent.cs b/Content.Shared/Eye/Blinding/Components/BlindableComponent.cs index 4379d309bc..c2e73bd6b8 100644 --- a/Content.Shared/Eye/Blinding/Components/BlindableComponent.cs +++ b/Content.Shared/Eye/Blinding/Components/BlindableComponent.cs @@ -24,7 +24,11 @@ public sealed partial class BlindableComponent : Component [ViewVariables(VVAccess.ReadWrite), DataField("EyeDamage"), AutoNetworkedField] public int EyeDamage = 0; - public const int MaxDamage = 9; + [ViewVariables(VVAccess.ReadOnly), DataField] + public int MaxDamage = 9; + + [ViewVariables(VVAccess.ReadOnly), DataField] + public int MinDamage = 0; /// /// Used to ensure that this doesn't break with sandbox or admin tools. diff --git a/Content.Shared/Eye/Blinding/Systems/BlindableSystem.cs b/Content.Shared/Eye/Blinding/Systems/BlindableSystem.cs index 5f24ff2018..24eed3adcf 100644 --- a/Content.Shared/Eye/Blinding/Systems/BlindableSystem.cs +++ b/Content.Shared/Eye/Blinding/Systems/BlindableSystem.cs @@ -37,7 +37,7 @@ public void UpdateIsBlind(Entity blindable) var old = blindable.Comp.IsBlind; // Don't bother raising an event if the eye is too damaged. - if (blindable.Comp.EyeDamage >= BlindableComponent.MaxDamage) + if (blindable.Comp.EyeDamage >= blindable.Comp.MaxDamage) { blindable.Comp.IsBlind = true; } @@ -62,13 +62,31 @@ public void AdjustEyeDamage(Entity blindable, int amount) return; blindable.Comp.EyeDamage += amount; - blindable.Comp.EyeDamage = Math.Clamp(blindable.Comp.EyeDamage, 0, BlindableComponent.MaxDamage); + UpdateEyeDamage(blindable, true); + } + private void UpdateEyeDamage(Entity blindable, bool isDamageChanged) + { + if (!Resolve(blindable, ref blindable.Comp, false)) + return; + + var previousDamage = blindable.Comp.EyeDamage; + blindable.Comp.EyeDamage = Math.Clamp(blindable.Comp.EyeDamage, blindable.Comp.MinDamage, blindable.Comp.MaxDamage); Dirty(blindable); - UpdateIsBlind(blindable); + if (!isDamageChanged && previousDamage == blindable.Comp.EyeDamage) + return; + UpdateIsBlind(blindable); var ev = new EyeDamageChangedEvent(blindable.Comp.EyeDamage); RaiseLocalEvent(blindable.Owner, ref ev); } + public void SetMinDamage(Entity blindable, int amount) + { + if (!Resolve(blindable, ref blindable.Comp, false)) + return; + + blindable.Comp.MinDamage = amount; + UpdateEyeDamage(blindable, false); + } } /// diff --git a/Content.Shared/Eye/Blinding/Systems/EyeClosingSystem.cs b/Content.Shared/Eye/Blinding/Systems/EyeClosingSystem.cs index 5326af9636..9a4afaec3a 100644 --- a/Content.Shared/Eye/Blinding/Systems/EyeClosingSystem.cs +++ b/Content.Shared/Eye/Blinding/Systems/EyeClosingSystem.cs @@ -1,4 +1,3 @@ - using Content.Shared.Actions; using Content.Shared.Eye.Blinding.Components; using Robust.Shared.Audio.Systems; @@ -124,7 +123,7 @@ public void UpdateEyesClosable(Entity blindable) if (_entityManager.TryGetComponent(blindable, out var eyelids) && !eyelids.NaturallyCreated) return; - if (ev.Blur < BlurryVisionComponent.MaxMagnitude || ev.Blur >= BlindableComponent.MaxDamage) + if (ev.Blur < BlurryVisionComponent.MaxMagnitude || ev.Blur >= blindable.Comp.MaxDamage) { RemCompDeferred(blindable); return; diff --git a/Content.Server/Fax/FaxMachineComponent.cs b/Content.Shared/Fax/Components/FaxMachineComponent.cs similarity index 80% rename from Content.Server/Fax/FaxMachineComponent.cs rename to Content.Shared/Fax/Components/FaxMachineComponent.cs index a189bdc05a..5599befa31 100644 --- a/Content.Server/Fax/FaxMachineComponent.cs +++ b/Content.Shared/Fax/Components/FaxMachineComponent.cs @@ -1,12 +1,13 @@ using Content.Shared.Containers.ItemSlots; using Content.Shared.Paper; using Robust.Shared.Audio; +using Robust.Shared.GameStates; using Robust.Shared.Prototypes; using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype; -namespace Content.Server.Fax; +namespace Content.Shared.Fax.Components; -[RegisterComponent] +[RegisterComponent, NetworkedComponent, AutoGenerateComponentState] public sealed partial class FaxMachineComponent : Component { /// @@ -16,6 +17,13 @@ public sealed partial class FaxMachineComponent : Component [DataField("name")] public string FaxName { get; set; } = "Unknown"; + /// + /// Sprite to use when inserting an object. + /// + [ViewVariables(VVAccess.ReadWrite)] + [DataField, AutoNetworkedField] + public string InsertingState = "inserting"; + /// /// Device address of fax in network to which data will be send /// @@ -26,7 +34,7 @@ public sealed partial class FaxMachineComponent : Component /// /// Contains the item to be sent, assumes it's paper... /// - [DataField("paperSlot", required: true)] + [DataField(required: true)] public ItemSlot PaperSlot = new(); /// @@ -34,21 +42,21 @@ public sealed partial class FaxMachineComponent : Component /// This will make it visible to others on the network /// [ViewVariables(VVAccess.ReadWrite)] - [DataField("responsePings")] + [DataField] public bool ResponsePings { get; set; } = true; /// /// Should admins be notified on message receive /// [ViewVariables(VVAccess.ReadWrite)] - [DataField("notifyAdmins")] + [DataField] public bool NotifyAdmins { get; set; } = false; /// /// Should that fax receive nuke codes send by admins. Probably should be captain fax only /// [ViewVariables(VVAccess.ReadWrite)] - [DataField("receiveNukeCodes")] + [DataField] public bool ReceiveNukeCodes { get; set; } = false; /// @@ -60,19 +68,19 @@ public sealed partial class FaxMachineComponent : Component /// /// Sound to play when fax has been emagged /// - [DataField("emagSound")] + [DataField] public SoundSpecifier EmagSound = new SoundCollectionSpecifier("sparks"); /// /// Sound to play when fax printing new message /// - [DataField("printSound")] + [DataField] public SoundSpecifier PrintSound = new SoundPathSpecifier("/Audio/Machines/printer.ogg"); /// /// Sound to play when fax successfully send message /// - [DataField("sendSound")] + [DataField] public SoundSpecifier SendSound = new SoundPathSpecifier("/Audio/Machines/high_tech_confirm.ogg"); /// @@ -85,27 +93,27 @@ public sealed partial class FaxMachineComponent : Component /// Print queue of the incoming message /// [ViewVariables] - [DataField("printingQueue")] + [DataField] public Queue PrintingQueue { get; private set; } = new(); /// /// Message sending timeout /// [ViewVariables] - [DataField("sendTimeoutRemaining")] + [DataField] public float SendTimeoutRemaining; /// /// Message sending timeout /// [ViewVariables] - [DataField("sendTimeout")] + [DataField] public float SendTimeout = 5f; /// /// Remaining time of inserting animation /// - [DataField("insertingTimeRemaining")] + [DataField] public float InsertingTimeRemaining; /// @@ -117,7 +125,7 @@ public sealed partial class FaxMachineComponent : Component /// /// Remaining time of printing animation /// - [DataField("printingTimeRemaining")] + [DataField] public float PrintingTimeRemaining; /// @@ -130,13 +138,16 @@ public sealed partial class FaxMachineComponent : Component [DataDefinition] public sealed partial class FaxPrintout { - [DataField("name", required: true)] + [DataField(required: true)] public string Name { get; private set; } = default!; - [DataField("content", required: true)] + [DataField] + public string? Label { get; private set; } + + [DataField(required: true)] public string Content { get; private set; } = default!; - [DataField("prototypeId", customTypeSerializer: typeof(PrototypeIdSerializer), required: true)] + [DataField(customTypeSerializer: typeof(PrototypeIdSerializer), required: true)] public string PrototypeId { get; private set; } = default!; [DataField("stampState")] @@ -149,10 +160,11 @@ private FaxPrintout() { } - public FaxPrintout(string content, string name, string? prototypeId = null, string? stampState = null, List? stampedBy = null) + public FaxPrintout(string content, string name, string? label = null, string? prototypeId = null, string? stampState = null, List? stampedBy = null) { Content = content; Name = name; + Label = label; PrototypeId = prototypeId ?? ""; StampState = stampState; StampedBy = stampedBy ?? new List(); diff --git a/Content.Shared/Fax/Components/FaxableObjectComponent.cs b/Content.Shared/Fax/Components/FaxableObjectComponent.cs new file mode 100644 index 0000000000..57b6e610a3 --- /dev/null +++ b/Content.Shared/Fax/Components/FaxableObjectComponent.cs @@ -0,0 +1,16 @@ +using Robust.Shared.GameStates; + +namespace Content.Shared.Fax.Components; +/// +/// Entity with this component can be faxed. +/// +[RegisterComponent, NetworkedComponent, AutoGenerateComponentState] +public sealed partial class FaxableObjectComponent : Component +{ + /// + /// Sprite to use when inserting an object. + /// + [ViewVariables(VVAccess.ReadWrite)] + [DataField, AutoNetworkedField] + public string InsertingState = "inserting"; +} diff --git a/Content.Shared/Fax/Components/FaxecuteComponent.cs b/Content.Shared/Fax/Components/FaxecuteComponent.cs new file mode 100644 index 0000000000..9c9bd03020 --- /dev/null +++ b/Content.Shared/Fax/Components/FaxecuteComponent.cs @@ -0,0 +1,19 @@ +using Content.Shared.Damage; +using Robust.Shared.GameStates; + +namespace Content.Shared.Fax.Components; + +/// +/// A fax component which stores a damage specifier for attempting to fax a mob. +/// +[RegisterComponent, NetworkedComponent, AutoGenerateComponentState] +public sealed partial class FaxecuteComponent : Component +{ + + /// + /// Type of damage dealt when entity is faxecuted. + /// + [DataField(required: true), AutoNetworkedField] + public DamageSpecifier Damage = new(); +} + diff --git a/Content.Shared/Fax/DamageOnFaxecuteEvent.cs b/Content.Shared/Fax/DamageOnFaxecuteEvent.cs new file mode 100644 index 0000000000..b36f55ab5d --- /dev/null +++ b/Content.Shared/Fax/DamageOnFaxecuteEvent.cs @@ -0,0 +1,9 @@ + +namespace Content.Shared.Fax.Components; + +/// +/// Event for killing any mob within the fax machine. +/// +/// System for handling execution of a mob within fax when copy or send attempt is made. +/// +public sealed class FaxecuteSystem : EntitySystem +{ + [Dependency] private readonly DamageableSystem _damageable = default!; + [Dependency] private readonly SharedPopupSystem _popupSystem = default!; + + public override void Initialize() + { + base.Initialize(); + } + + public void Faxecute(EntityUid uid, FaxMachineComponent component, DamageOnFaxecuteEvent? args = null) + { + var sendEntity = component.PaperSlot.Item; + if (sendEntity == null) + return; + + if (!TryComp(uid, out var faxecute)) + return; + + var damageSpec = faxecute.Damage; + _damageable.TryChangeDamage(sendEntity, damageSpec); + _popupSystem.PopupEntity(Loc.GetString("fax-machine-popup-error", ("target", uid)), uid, PopupType.LargeCaution); + return; + + } +} diff --git a/Content.Shared/Flash/Components/FlashComponent.cs b/Content.Shared/Flash/Components/FlashComponent.cs index a26e32cb70..a9098bc85a 100644 --- a/Content.Shared/Flash/Components/FlashComponent.cs +++ b/Content.Shared/Flash/Components/FlashComponent.cs @@ -12,6 +12,13 @@ public sealed partial class FlashComponent : Component [ViewVariables(VVAccess.ReadWrite)] public int FlashDuration { get; set; } = 5000; + /// + /// How long a target is stunned when a melee flash is used. + /// If null, melee flashes will not stun at all + /// + [DataField] + public TimeSpan? MeleeStunDuration = TimeSpan.FromSeconds(1.5); + [DataField("range")] [ViewVariables(VVAccess.ReadWrite)] public float Range { get; set; } = 7f; @@ -32,5 +39,8 @@ public sealed partial class FlashComponent : Component }; public bool Flashing; + + [DataField] + public float Probability = 1f; } } diff --git a/Content.Shared/Flash/Components/FlashOnTriggerComponent.cs b/Content.Shared/Flash/Components/FlashOnTriggerComponent.cs index d1270e9db7..7658ca0ae5 100644 --- a/Content.Shared/Flash/Components/FlashOnTriggerComponent.cs +++ b/Content.Shared/Flash/Components/FlashOnTriggerComponent.cs @@ -9,4 +9,5 @@ public sealed partial class FlashOnTriggerComponent : Component { [DataField] public float Range = 1.0f; [DataField] public float Duration = 8.0f; + [DataField] public float Probability = 1.0f; } diff --git a/Content.Shared/Flight/Events.cs b/Content.Shared/Flight/Events.cs new file mode 100644 index 0000000000..6666971b53 --- /dev/null +++ b/Content.Shared/Flight/Events.cs @@ -0,0 +1,24 @@ +using Robust.Shared.Serialization; +using Content.Shared.DoAfter; + +namespace Content.Shared.Flight.Events; + +[Serializable, NetSerializable] +public sealed partial class DashDoAfterEvent : SimpleDoAfterEvent { } + +[Serializable, NetSerializable] +public sealed partial class FlightDoAfterEvent : SimpleDoAfterEvent { } + +[Serializable, NetSerializable] +public sealed class FlightEvent : EntityEventArgs +{ + public NetEntity Uid { get; } + public bool IsFlying { get; } + public bool IsAnimated { get; } + public FlightEvent(NetEntity uid, bool isFlying, bool isAnimated) + { + Uid = uid; + IsFlying = isFlying; + IsAnimated = isAnimated; + } +} diff --git a/Content.Shared/Flight/FlightComponent.cs b/Content.Shared/Flight/FlightComponent.cs new file mode 100644 index 0000000000..d250744544 --- /dev/null +++ b/Content.Shared/Flight/FlightComponent.cs @@ -0,0 +1,101 @@ +using Robust.Shared.Audio; +using Robust.Shared.GameStates; +using Robust.Shared.Prototypes; +using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype; + +namespace Content.Shared.Flight; + +/// +/// Adds an action that allows the user to become temporarily +/// weightless at the cost of stamina and hand usage. +/// +[RegisterComponent, NetworkedComponent(), AutoGenerateComponentState] +public sealed partial class FlightComponent : Component +{ + [DataField(customTypeSerializer: typeof(PrototypeIdSerializer))] + public string? ToggleAction = "ActionToggleFlight"; + + [DataField, AutoNetworkedField] + public EntityUid? ToggleActionEntity; + + /// + /// Is the user flying right now? + /// + [DataField, AutoNetworkedField] + public bool On; + + /// + /// Stamina drain per second when flying + /// + [DataField, AutoNetworkedField] + public float StaminaDrainRate = 6.0f; + + /// + /// DoAfter delay until the user becomes weightless. + /// + [DataField, AutoNetworkedField] + public float ActivationDelay = 1.0f; + + /// + /// Speed modifier while in flight + /// + [DataField, AutoNetworkedField] + public float SpeedModifier = 2.0f; + + /// + /// Path to a sound specifier or collection for the noises made during flight + /// + [DataField] + public SoundSpecifier FlapSound = new SoundCollectionSpecifier("WingFlaps"); + + /// + /// Is the flight animated? + /// + [DataField] + public bool IsAnimated = true; + + /// + /// Does the animation animate a layer?. + /// + [DataField] + public bool IsLayerAnimated; + + /// + /// Which RSI layer path does this animate? + /// + [DataField] + public string? Layer; + + /// + /// Whats the speed of the shader? + /// + [DataField] + public float ShaderSpeed = 6.0f; + + /// + /// How much are the values in the shader's calculations multiplied by? + /// + [DataField] + public float ShaderMultiplier = 0.01f; + + /// + /// What is the offset on the shader? + /// + [DataField] + public float ShaderOffset = 0.25f; + + /// + /// What animation does the flight use? + /// + + [DataField] + public string AnimationKey = "default"; + + /// + /// Time between sounds being played + /// + [DataField] + public float FlapInterval = 1.0f; + + public float TimeUntilFlap; +} diff --git a/Content.Shared/Flight/SharedFlightSystem.cs b/Content.Shared/Flight/SharedFlightSystem.cs new file mode 100644 index 0000000000..281c6d70f0 --- /dev/null +++ b/Content.Shared/Flight/SharedFlightSystem.cs @@ -0,0 +1,104 @@ +using Content.Shared.Actions; +using Content.Shared.Movement.Systems; +using Content.Shared.Damage.Systems; +using Content.Shared.Hands.Components; +using Content.Shared.Hands.EntitySystems; +using Content.Shared.Interaction.Components; +using Content.Shared.Inventory.VirtualItem; +using Content.Shared.Flight.Events; + +namespace Content.Shared.Flight; +public abstract class SharedFlightSystem : EntitySystem +{ + [Dependency] private readonly SharedActionsSystem _actionsSystem = default!; + [Dependency] private readonly SharedVirtualItemSystem _virtualItem = default!; + [Dependency] private readonly StaminaSystem _staminaSystem = default!; + [Dependency] private readonly SharedHandsSystem _hands = default!; + [Dependency] private readonly MovementSpeedModifierSystem _movementSpeed = default!; + + public override void Initialize() + { + base.Initialize(); + + SubscribeLocalEvent(OnStartup); + SubscribeLocalEvent(OnShutdown); + SubscribeLocalEvent(OnRefreshMoveSpeed); + } + + #region Core Functions + private void OnStartup(EntityUid uid, FlightComponent component, ComponentStartup args) + { + _actionsSystem.AddAction(uid, ref component.ToggleActionEntity, component.ToggleAction); + } + + private void OnShutdown(EntityUid uid, FlightComponent component, ComponentShutdown args) + { + _actionsSystem.RemoveAction(uid, component.ToggleActionEntity); + } + + public void ToggleActive(EntityUid uid, bool active, FlightComponent component) + { + component.On = active; + component.TimeUntilFlap = 0f; + _actionsSystem.SetToggled(component.ToggleActionEntity, component.On); + RaiseNetworkEvent(new FlightEvent(GetNetEntity(uid), component.On, component.IsAnimated)); + _staminaSystem.ToggleStaminaDrain(uid, component.StaminaDrainRate, active, false); + _movementSpeed.RefreshMovementSpeedModifiers(uid); + UpdateHands(uid, active); + Dirty(uid, component); + } + + private void UpdateHands(EntityUid uid, bool flying) + { + if (!TryComp(uid, out var handsComponent)) + return; + + if (flying) + BlockHands(uid, handsComponent); + else + FreeHands(uid); + } + + private void BlockHands(EntityUid uid, HandsComponent handsComponent) + { + var freeHands = 0; + foreach (var hand in _hands.EnumerateHands(uid, handsComponent)) + { + if (hand.HeldEntity == null) + { + freeHands++; + continue; + } + + // Is this entity removable? (they might have handcuffs on) + if (HasComp(hand.HeldEntity) && hand.HeldEntity != uid) + continue; + + _hands.DoDrop(uid, hand, true, handsComponent); + freeHands++; + if (freeHands == 2) + break; + } + if (_virtualItem.TrySpawnVirtualItemInHand(uid, uid, out var virtItem1)) + EnsureComp(virtItem1.Value); + + if (_virtualItem.TrySpawnVirtualItemInHand(uid, uid, out var virtItem2)) + EnsureComp(virtItem2.Value); + } + + private void FreeHands(EntityUid uid) + { + _virtualItem.DeleteInHandsMatching(uid, uid); + } + + private void OnRefreshMoveSpeed(EntityUid uid, FlightComponent component, RefreshMovementSpeedModifiersEvent args) + { + if (!component.On) + return; + + args.ModifySpeed(component.SpeedModifier, component.SpeedModifier); + } + + #endregion +} +public sealed partial class ToggleFlightEvent : InstantActionEvent { } diff --git a/Content.Shared/Follower/FollowerSystem.cs b/Content.Shared/Follower/FollowerSystem.cs index fc7cccf9bd..6c02b13076 100644 --- a/Content.Shared/Follower/FollowerSystem.cs +++ b/Content.Shared/Follower/FollowerSystem.cs @@ -247,6 +247,27 @@ public void StopAllFollowers(EntityUid uid, StopFollowingEntity(player, uid, followed); } } + + /// + /// Get the most followed entity. + /// + public EntityUid? GetMostFollowed() + { + EntityUid? picked = null; + int most = 0; + var query = EntityQueryEnumerator(); + while (query.MoveNext(out var uid, out var comp)) + { + var count = comp.Following.Count; + if (count > most) + { + picked = uid; + most = count; + } + } + + return picked; + } } public abstract class FollowEvent : EntityEventArgs diff --git a/Content.Shared/Geras/SharedGerasSystem.cs b/Content.Shared/Geras/SharedGerasSystem.cs new file mode 100644 index 0000000000..8c998371b6 --- /dev/null +++ b/Content.Shared/Geras/SharedGerasSystem.cs @@ -0,0 +1,16 @@ +using Content.Shared.Actions; + +namespace Content.Shared.Geras; + +/// +/// Geras is the god of old age, and A geras is the small morph of a slime. This system allows the slimes to have the morphing action. +/// +public abstract class SharedGerasSystem : EntitySystem +{ + +} + +public sealed partial class MorphIntoGeras : InstantActionEvent +{ + +} diff --git a/Content.Shared/Ghost/GhostComponent.cs b/Content.Shared/Ghost/GhostComponent.cs index f7717e8d23..96e9b717b9 100644 --- a/Content.Shared/Ghost/GhostComponent.cs +++ b/Content.Shared/Ghost/GhostComponent.cs @@ -101,4 +101,6 @@ public sealed partial class ToggleLightingActionEvent : InstantActionEvent { } public sealed partial class ToggleGhostHearingActionEvent : InstantActionEvent { } +public sealed partial class ToggleGhostVisibilityToAllEvent : InstantActionEvent { } + public sealed partial class BooActionEvent : InstantActionEvent { } diff --git a/Content.Shared/Ghost/Roles/GhostRolePrototype.cs b/Content.Shared/Ghost/Roles/GhostRolePrototype.cs new file mode 100644 index 0000000000..43d6432250 --- /dev/null +++ b/Content.Shared/Ghost/Roles/GhostRolePrototype.cs @@ -0,0 +1,38 @@ +using Robust.Shared.Prototypes; + +namespace Content.Shared.Ghost.Roles; + +/// +/// For selectable ghostrole prototypes in ghostrole spawners. +/// +[Prototype] +public sealed partial class GhostRolePrototype : IPrototype +{ + [ViewVariables] + [IdDataField] + public string ID { get; private set; } = default!; + + /// + /// The name of the ghostrole. + /// + [DataField] + public string Name { get; set; } = default!; + + /// + /// The description of the ghostrole. + /// + [DataField] + public string Description { get; set; } = default!; + + /// + /// The entity prototype of the ghostrole + /// + [DataField] + public string EntityPrototype = default!; + + /// + /// Rules of the ghostrole + /// + [DataField] + public string Rules = default!; +} \ No newline at end of file diff --git a/Content.Shared/Ghost/Roles/GhostRolesEuiMessages.cs b/Content.Shared/Ghost/Roles/GhostRolesEuiMessages.cs index 74af1e89ec..4dd6bfa433 100644 --- a/Content.Shared/Ghost/Roles/GhostRolesEuiMessages.cs +++ b/Content.Shared/Ghost/Roles/GhostRolesEuiMessages.cs @@ -13,6 +13,20 @@ public struct GhostRoleInfo public string Description { get; set; } public string Rules { get; set; } public List? Requirements { get; set; } + + /// + public GhostRoleKind Kind { get; set; } + + /// + /// if is , specifies how many players are currently + /// in the raffle for this role. + /// + public uint RafflePlayerCount { get; set; } + + /// + /// if is , specifies when raffle finishes. + /// + public TimeSpan RaffleEndTime { get; set; } } [NetSerializable, Serializable] @@ -27,24 +41,62 @@ public GhostRolesEuiState(GhostRoleInfo[] ghostRoles) } [NetSerializable, Serializable] - public sealed class GhostRoleTakeoverRequestMessage : EuiMessageBase + public sealed class RequestGhostRoleMessage : EuiMessageBase { public uint Identifier { get; } - public GhostRoleTakeoverRequestMessage(uint identifier) + public RequestGhostRoleMessage(uint identifier) { Identifier = identifier; } } [NetSerializable, Serializable] - public sealed class GhostRoleFollowRequestMessage : EuiMessageBase + public sealed class FollowGhostRoleMessage : EuiMessageBase { public uint Identifier { get; } - public GhostRoleFollowRequestMessage(uint identifier) + public FollowGhostRoleMessage(uint identifier) { Identifier = identifier; } } + + [NetSerializable, Serializable] + public sealed class LeaveGhostRoleRaffleMessage : EuiMessageBase + { + public uint Identifier { get; } + + public LeaveGhostRoleRaffleMessage(uint identifier) + { + Identifier = identifier; + } + } + + /// + /// Determines whether a ghost role is a raffle role, and if it is, whether it's running. + /// + [NetSerializable, Serializable] + public enum GhostRoleKind + { + /// + /// Role is not a raffle role and can be taken immediately. + /// + FirstComeFirstServe, + + /// + /// Role is a raffle role, but raffle hasn't started yet. + /// + RaffleReady, + + /// + /// Role is raffle role and currently being raffled, but player hasn't joined raffle. + /// + RaffleInProgress, + + /// + /// Role is raffle role and currently being raffled, and player joined raffle. + /// + RaffleJoined + } } diff --git a/Content.Shared/Ghost/Roles/Raffles/GhostRoleRaffleSettings.cs b/Content.Shared/Ghost/Roles/Raffles/GhostRoleRaffleSettings.cs new file mode 100644 index 0000000000..a7aa757b72 --- /dev/null +++ b/Content.Shared/Ghost/Roles/Raffles/GhostRoleRaffleSettings.cs @@ -0,0 +1,30 @@ +namespace Content.Server.Ghost.Roles.Raffles; + +/// +/// Defines settings for a ghost role raffle. +/// +[DataDefinition] +public sealed partial class GhostRoleRaffleSettings +{ + /// + /// The initial duration of a raffle in seconds. This is the countdown timer's value when the raffle starts. + /// + [ViewVariables(VVAccess.ReadWrite)] + [DataField(required: true)] + public uint InitialDuration { get; set; } + + /// + /// When the raffle is joined by a player, the countdown timer is extended by this value in seconds. + /// + [ViewVariables(VVAccess.ReadWrite)] + [DataField(required: true)] + public uint JoinExtendsDurationBy { get; set; } + + /// + /// The maximum duration in seconds for the ghost role raffle. A raffle cannot run for longer than this + /// duration, even if extended by joiners. Must be greater than or equal to . + /// + [ViewVariables(VVAccess.ReadWrite)] + [DataField(required: true)] + public uint MaxDuration { get; set; } +} diff --git a/Content.Shared/Ghost/Roles/Raffles/GhostRoleRaffleSettingsPrototype.cs b/Content.Shared/Ghost/Roles/Raffles/GhostRoleRaffleSettingsPrototype.cs new file mode 100644 index 0000000000..f1447a0e09 --- /dev/null +++ b/Content.Shared/Ghost/Roles/Raffles/GhostRoleRaffleSettingsPrototype.cs @@ -0,0 +1,22 @@ +using Content.Server.Ghost.Roles.Raffles; +using Robust.Shared.Prototypes; + +namespace Content.Shared.Ghost.Roles.Raffles; + +/// +/// Allows specifying the settings for a ghost role raffle as a prototype. +/// +[Prototype("ghostRoleRaffleSettings")] +public sealed class GhostRoleRaffleSettingsPrototype : IPrototype +{ + /// + [IdDataField] + public string ID { get; private set; } = default!; + + /// + /// The settings for a ghost role raffle. + /// + /// + [DataField(required: true)] + public GhostRoleRaffleSettings Settings { get; private set; } = new(); +} diff --git a/Content.Shared/Ghost/SharedGhostSystem.cs b/Content.Shared/Ghost/SharedGhostSystem.cs index ede37bda2d..6f7370fe58 100644 --- a/Content.Shared/Ghost/SharedGhostSystem.cs +++ b/Content.Shared/Ghost/SharedGhostSystem.cs @@ -127,6 +127,12 @@ public GhostWarpToTargetRequestEvent(NetEntity target) } } + /// + /// A client to server request for their ghost to be warped to the most followed entity. + /// + [Serializable, NetSerializable] + public sealed class GhostnadoRequestEvent : EntityEventArgs; + /// /// A client to server request for their ghost to return to body /// @@ -149,8 +155,6 @@ public GhostUpdateGhostRoleCountEvent(int availableGhostRoleCount) } } - // WD EDIT START [Serializable, NetSerializable] public sealed class GhostReturnToRoundRequest : EntityEventArgs; - // WD EDIT END } diff --git a/Content.Shared/Gravity/SharedFloatingVisualizerSystem.cs b/Content.Shared/Gravity/SharedFloatingVisualizerSystem.cs index 57136116ca..8fe9e00e7e 100644 --- a/Content.Shared/Gravity/SharedFloatingVisualizerSystem.cs +++ b/Content.Shared/Gravity/SharedFloatingVisualizerSystem.cs @@ -1,5 +1,6 @@ using System.Numerics; using Robust.Shared.Map; +using Content.Shared.Flight.Events; namespace Content.Shared.Gravity; @@ -17,6 +18,7 @@ public override void Initialize() SubscribeLocalEvent(OnComponentStartup); SubscribeLocalEvent(OnGravityChanged); SubscribeLocalEvent(OnEntParentChanged); + SubscribeNetworkEvent(OnFlight); } /// @@ -62,10 +64,24 @@ private void OnGravityChanged(ref GravityChangedEvent args) } } + private void OnFlight(FlightEvent args) + { + var uid = GetEntity(args.Uid); + if (!TryComp(uid, out var floating)) + return; + floating.CanFloat = args.IsFlying; + + if (!args.IsFlying + || !args.IsAnimated) + return; + + FloatAnimation(uid, floating.Offset, floating.AnimationKey, floating.AnimationTime); + } + private void OnEntParentChanged(EntityUid uid, FloatingVisualsComponent component, ref EntParentChangedMessage args) { var transform = args.Transform; if (CanFloat(uid, component, transform)) FloatAnimation(uid, component.Offset, component.AnimationKey, component.AnimationTime); } -} +} \ No newline at end of file diff --git a/Content.Shared/Gravity/SharedGravitySystem.cs b/Content.Shared/Gravity/SharedGravitySystem.cs index 100d2ee74f..55187bf14a 100644 --- a/Content.Shared/Gravity/SharedGravitySystem.cs +++ b/Content.Shared/Gravity/SharedGravitySystem.cs @@ -8,6 +8,7 @@ using Robust.Shared.Physics.Components; using Robust.Shared.Serialization; using Robust.Shared.Timing; +using Content.Shared.Flight; namespace Content.Shared.Gravity { @@ -24,6 +25,9 @@ public bool IsWeightless(EntityUid uid, PhysicsComponent? body = null, Transform if ((body?.BodyType & (BodyType.Static | BodyType.Kinematic)) != 0) return false; + if (TryComp(uid, out var flying) && flying.On) + return true; + if (TryComp(uid, out var ignoreGravityComponent)) return ignoreGravityComponent.Weightless; @@ -142,4 +146,4 @@ public GravityComponentState(bool enabled) } } } -} +} \ No newline at end of file diff --git a/Content.Shared/GridPreloader/Prototypes/PreloadedGridPrototype.cs b/Content.Shared/GridPreloader/Prototypes/PreloadedGridPrototype.cs new file mode 100644 index 0000000000..89da9dfb8f --- /dev/null +++ b/Content.Shared/GridPreloader/Prototypes/PreloadedGridPrototype.cs @@ -0,0 +1,21 @@ +using Robust.Shared.Prototypes; +using Robust.Shared.Utility; + +namespace Content.Shared.GridPreloader.Prototypes; + +/// +/// Creating this prototype will automatically load the grid at the specified path at the beginning of the round, +/// and allow the GridPreloader system to load them in the middle of the round. This is needed for optimization, +/// because loading grids in the middle of a round causes the server to lag. +/// +[Prototype("preloadedGrid")] +public sealed partial class PreloadedGridPrototype : IPrototype +{ + [IdDataField] public string ID { get; } = string.Empty; + + [DataField(required: true)] + public ResPath Path; + + [DataField] + public int Copies = 1; +} diff --git a/Content.Shared/GridPreloader/Systems/SharedGridPreloaderSystem.cs b/Content.Shared/GridPreloader/Systems/SharedGridPreloaderSystem.cs new file mode 100644 index 0000000000..04c994adf2 --- /dev/null +++ b/Content.Shared/GridPreloader/Systems/SharedGridPreloaderSystem.cs @@ -0,0 +1,4 @@ +namespace Content.Shared.GridPreloader.Systems; +public abstract class SharedGridPreloaderSystem : EntitySystem +{ +} diff --git a/Content.Shared/Hands/Components/HandsComponent.cs b/Content.Shared/Hands/Components/HandsComponent.cs index f1f25a69f7..919d55f294 100644 --- a/Content.Shared/Hands/Components/HandsComponent.cs +++ b/Content.Shared/Hands/Components/HandsComponent.cs @@ -126,9 +126,43 @@ public HandsComponentState(HandsComponent handComp) /// /// What side of the body this hand is on. /// +/// +/// public enum HandLocation : byte { Left, Middle, Right } + +/// +/// What side of the UI a hand is on. +/// +/// +/// +public enum HandUILocation : byte +{ + Left, + Right +} + +/// +/// Helper functions for working with . +/// +public static class HandLocationExt +{ + /// + /// Convert a into the appropriate . + /// This maps "middle" hands to . + /// + public static HandUILocation GetUILocation(this HandLocation location) + { + return location switch + { + HandLocation.Left => HandUILocation.Left, + HandLocation.Middle => HandUILocation.Right, + HandLocation.Right => HandUILocation.Right, + _ => throw new ArgumentOutOfRangeException(nameof(location), location, null) + }; + } +} diff --git a/Content.Shared/Hands/EntitySystems/SharedHandsSystem.Interactions.cs b/Content.Shared/Hands/EntitySystems/SharedHandsSystem.Interactions.cs index 32339eb03a..6d4d332479 100644 --- a/Content.Shared/Hands/EntitySystems/SharedHandsSystem.Interactions.cs +++ b/Content.Shared/Hands/EntitySystems/SharedHandsSystem.Interactions.cs @@ -8,6 +8,7 @@ using Robust.Shared.Input.Binding; using Robust.Shared.Map; using Robust.Shared.Player; +using Robust.Shared.Utility; namespace Content.Shared.Hands.EntitySystems; @@ -181,27 +182,21 @@ public bool TryMoveHeldEntityToActiveHand(EntityUid uid, string handName, bool c } //TODO: Actually shows all items/clothing/etc. - private void HandleExamined(EntityUid uid, HandsComponent handsComp, ExaminedEvent args) + private void HandleExamined(EntityUid examinedUid, HandsComponent handsComp, ExaminedEvent args) { - var held = EnumerateHeld(uid, handsComp) - .Where(x => !HasComp(x)).ToList(); + var heldItemNames = EnumerateHeld(examinedUid, handsComp) + .Where(entity => !HasComp(entity)) + .Select(item => FormattedMessage.EscapeText(Identity.Name(item, EntityManager))) + .Select(itemName => Loc.GetString("comp-hands-examine-wrapper", ("item", itemName))) + .ToList(); + + var locKey = heldItemNames.Count != 0 ? "comp-hands-examine" : "comp-hands-examine-empty"; + var locUser = ("user", Identity.Entity(examinedUid, EntityManager)); + var locItems = ("items", ContentLocalizationManager.FormatList(heldItemNames)); using (args.PushGroup(nameof(HandsComponent))) { - if (!held.Any()) - { - args.PushText(Loc.GetString("comp-hands-examine-empty", - ("user", Identity.Entity(uid, EntityManager)))); - return; - } - - var heldList = ContentLocalizationManager.FormatList(held - .Select(x => Loc.GetString("comp-hands-examine-wrapper", - ("item", Identity.Entity(x, EntityManager)))).ToList()); - - args.PushMarkup(Loc.GetString("comp-hands-examine", - ("user", Identity.Entity(uid, EntityManager)), - ("items", heldList))); + args.PushMarkup(Loc.GetString(locKey, locUser, locItems)); } } } diff --git a/Content.Shared/Hands/EntitySystems/SharedHandsSystem.cs b/Content.Shared/Hands/EntitySystems/SharedHandsSystem.cs index b72a7c4eb3..fd732009e9 100644 --- a/Content.Shared/Hands/EntitySystems/SharedHandsSystem.cs +++ b/Content.Shared/Hands/EntitySystems/SharedHandsSystem.cs @@ -87,7 +87,6 @@ public virtual void RemoveHand(EntityUid uid, string handName, HandsComponent? h /// /// /// - public void RemoveHands(EntityUid uid, HandsComponent? handsComp = null) { if (!Resolve(uid, ref handsComp)) @@ -137,6 +136,43 @@ public bool TryGetEmptyHand(EntityUid uid, [NotNullWhen(true)] out Hand? emptyHa return false; } + public bool TryGetActiveHand(Entity entity, [NotNullWhen(true)] out Hand? hand) + { + if (!Resolve(entity, ref entity.Comp, false)) + { + hand = null; + return false; + } + + hand = entity.Comp.ActiveHand; + return hand != null; + } + + public bool TryGetActiveItem(Entity entity, [NotNullWhen(true)] out EntityUid? item) + { + if (!TryGetActiveHand(entity, out var hand)) + { + item = null; + return false; + } + + item = hand.HeldEntity; + return item != null; + } + + public Hand? GetActiveHand(Entity entity) + { + if (!Resolve(entity, ref entity.Comp)) + return null; + + return entity.Comp.ActiveHand; + } + + public EntityUid? GetActiveItem(Entity entity) + { + return GetActiveHand(entity)?.HeldEntity; + } + /// /// Enumerate over hands, starting with the currently active hand. /// @@ -227,9 +263,17 @@ public bool SetActiveHand(EntityUid uid, Hand? hand, HandsComponent? handComp = return true; } - public bool IsHolding(EntityUid uid, EntityUid? entity, [NotNullWhen(true)] out Hand? inHand, HandsComponent? handsComp = null) + public bool IsHolding(Entity entity, [NotNullWhen(true)] EntityUid? item) + { + return IsHolding(entity, item, out _, entity); + } + + public bool IsHolding(EntityUid uid, [NotNullWhen(true)] EntityUid? entity, [NotNullWhen(true)] out Hand? inHand, HandsComponent? handsComp = null) { inHand = null; + if (entity == null) + return false; + if (!Resolve(uid, ref handsComp, false)) return false; diff --git a/Content.Shared/HealthExaminable/HealthExaminableComponent.cs b/Content.Shared/HealthExaminable/HealthExaminableComponent.cs new file mode 100644 index 0000000000..88a79782a5 --- /dev/null +++ b/Content.Shared/HealthExaminable/HealthExaminableComponent.cs @@ -0,0 +1,27 @@ +using Content.Shared.Damage.Prototypes; +using Content.Shared.FixedPoint; +using Robust.Shared.Prototypes; + +namespace Content.Shared.HealthExaminable; + +[RegisterComponent, Access(typeof(HealthExaminableSystem))] +public sealed partial class HealthExaminableComponent : Component +{ + // + // The thresholds for determining the examine text for certain amounts of damage. + // These are calculated as a percentage of the entity's critical threshold. + // + public List Thresholds = new() + { FixedPoint2.New(0.10), FixedPoint2.New(0.25), FixedPoint2.New(0.50), FixedPoint2.New(0.75) }; + + [DataField(required: true)] + public HashSet> ExaminableTypes = default!; + + /// + /// Health examine text is automatically generated through creating loc string IDs, in the form: + /// `health-examine-[prefix]-[type]-[threshold]` + /// This part determines the prefix. + /// + [DataField] + public string LocPrefix = "carbon"; +} diff --git a/Content.Server/HealthExaminable/HealthExaminableSystem.cs b/Content.Shared/HealthExaminable/HealthExaminableSystem.cs similarity index 96% rename from Content.Server/HealthExaminable/HealthExaminableSystem.cs rename to Content.Shared/HealthExaminable/HealthExaminableSystem.cs index 89291726fb..39addfc941 100644 --- a/Content.Server/HealthExaminable/HealthExaminableSystem.cs +++ b/Content.Shared/HealthExaminable/HealthExaminableSystem.cs @@ -1,4 +1,3 @@ -using Content.Server.Traits.Assorted; using Content.Shared.Damage; using Content.Shared.Examine; using Content.Shared.FixedPoint; @@ -8,8 +7,9 @@ using Content.Shared.Verbs; using Robust.Shared.Utility; using System.Linq; +using Content.Shared.Traits.Assorted.Components; -namespace Content.Server.HealthExaminable; +namespace Content.Shared.HealthExaminable; public sealed class HealthExaminableSystem : EntitySystem { @@ -53,7 +53,7 @@ private void OnGetExamineVerbs(EntityUid uid, HealthExaminableComponent componen args.Verbs.Add(verb); } - private FormattedMessage CreateMarkup(EntityUid uid, HealthExaminableComponent component, DamageableComponent damage) + public FormattedMessage CreateMarkup(EntityUid uid, HealthExaminableComponent component, DamageableComponent damage) { var msg = new FormattedMessage(); @@ -92,20 +92,14 @@ private FormattedMessage CreateMarkup(EntityUid uid, HealthExaminableComponent c continue; if (!first) - { msg.PushNewline(); - } else - { first = false; - } msg.AddMarkup(chosenLocStr); } if (msg.IsEmpty) - { msg.AddMarkup(Loc.GetString($"health-examinable-{component.LocPrefix}-none")); - } // Anything else want to add on to this? RaiseLocalEvent(uid, new HealthBeingExaminedEvent(msg, false), true); diff --git a/Content.Shared/Humanoid/HumanoidAppearanceComponent.cs b/Content.Shared/Humanoid/HumanoidAppearanceComponent.cs index c9292337d7..c0f9b8ac00 100644 --- a/Content.Shared/Humanoid/HumanoidAppearanceComponent.cs +++ b/Content.Shared/Humanoid/HumanoidAppearanceComponent.cs @@ -32,6 +32,9 @@ public sealed partial class HumanoidAppearanceComponent : Component [DataField, AutoNetworkedField] public int Age = 18; + [DataField, AutoNetworkedField] + public string CustomSpecieName = ""; + /// /// Any custom base layers this humanoid might have. See: /// limb transplants (potentially), robotic arms, etc. @@ -85,6 +88,12 @@ public sealed partial class HumanoidAppearanceComponent : Component [ViewVariables(VVAccess.ReadOnly)] public Color? CachedFacialHairColor; + /// + /// Which layers of this humanoid that should be hidden on equipping a corresponding item.. + /// + [DataField] + public HashSet HideLayersOnEquip = [HumanoidVisualLayers.Hair]; + /// /// DeltaV - let paradox anomaly be cloned /// diff --git a/Content.Shared/Humanoid/HumanoidCharacterAppearance.cs b/Content.Shared/Humanoid/HumanoidCharacterAppearance.cs index f1f7de5c11..fc44ed5e3b 100644 --- a/Content.Shared/Humanoid/HumanoidCharacterAppearance.cs +++ b/Content.Shared/Humanoid/HumanoidCharacterAppearance.cs @@ -5,262 +5,286 @@ using Robust.Shared.Random; using Robust.Shared.Serialization; -namespace Content.Shared.Humanoid +namespace Content.Shared.Humanoid; + +[DataDefinition] +[Serializable, NetSerializable] +public sealed partial class HumanoidCharacterAppearance : ICharacterAppearance, IEquatable { - [DataDefinition] - [Serializable, NetSerializable] - public sealed partial class HumanoidCharacterAppearance : ICharacterAppearance - { - public HumanoidCharacterAppearance(string hairStyleId, - Color hairColor, - string facialHairStyleId, - Color facialHairColor, - Color eyeColor, - Color skinColor, - List markings) - { - HairStyleId = hairStyleId; - HairColor = ClampColor(hairColor); - FacialHairStyleId = facialHairStyleId; - FacialHairColor = ClampColor(facialHairColor); - EyeColor = ClampColor(eyeColor); - SkinColor = ClampColor(skinColor); - Markings = markings; - } + [DataField("hair")] + public string HairStyleId { get; set; } = HairStyles.DefaultHairStyle; - [DataField("hair")] - public string HairStyleId { get; private set; } + [DataField] + public Color HairColor { get; set; } = Color.Black; - [DataField("hairColor")] - public Color HairColor { get; private set; } + [DataField("facialHair")] + public string FacialHairStyleId { get; set; } = HairStyles.DefaultFacialHairStyle; - [DataField("facialHair")] - public string FacialHairStyleId { get; private set; } + [DataField] + public Color FacialHairColor { get; set; } = Color.Black; - [DataField("facialHairColor")] - public Color FacialHairColor { get; private set; } + [DataField] + public Color EyeColor { get; private set; } - [DataField("eyeColor")] - public Color EyeColor { get; private set; } + [DataField] + public Color SkinColor { get; private set; } - [DataField("skinColor")] - public Color SkinColor { get; private set; } + [DataField] + public List Markings { get; private set; } = new(); - [DataField("markings")] - public List Markings { get; private set; } + public HumanoidCharacterAppearance(string hairStyleId, + Color hairColor, + string facialHairStyleId, + Color facialHairColor, + Color eyeColor, + Color skinColor, + List markings) + { + HairStyleId = hairStyleId; + HairColor = ClampColor(hairColor); + FacialHairStyleId = facialHairStyleId; + FacialHairColor = ClampColor(facialHairColor); + EyeColor = ClampColor(eyeColor); + SkinColor = ClampColor(skinColor); + Markings = markings; + } - public HumanoidCharacterAppearance WithHairStyleName(string newName) - { - return new(newName, HairColor, FacialHairStyleId, FacialHairColor, EyeColor, SkinColor, Markings); - } + public HumanoidCharacterAppearance(HumanoidCharacterAppearance other) + : this( + other.HairStyleId, + other.HairColor, + other.FacialHairStyleId, + other.FacialHairColor, + other.EyeColor, + other.SkinColor, + new(other.Markings)) + { - public HumanoidCharacterAppearance WithHairColor(Color newColor) - { - return new(HairStyleId, newColor, FacialHairStyleId, FacialHairColor, EyeColor, SkinColor, Markings); - } + } - public HumanoidCharacterAppearance WithFacialHairStyleName(string newName) - { - return new(HairStyleId, HairColor, newName, FacialHairColor, EyeColor, SkinColor, Markings); - } + public HumanoidCharacterAppearance WithHairStyleName(string newName) + { + return new(newName, HairColor, FacialHairStyleId, FacialHairColor, EyeColor, SkinColor, Markings); + } - public HumanoidCharacterAppearance WithFacialHairColor(Color newColor) - { - return new(HairStyleId, HairColor, FacialHairStyleId, newColor, EyeColor, SkinColor, Markings); - } + public HumanoidCharacterAppearance WithHairColor(Color newColor) + { + return new(HairStyleId, newColor, FacialHairStyleId, FacialHairColor, EyeColor, SkinColor, Markings); + } - public HumanoidCharacterAppearance WithEyeColor(Color newColor) - { - return new(HairStyleId, HairColor, FacialHairStyleId, FacialHairColor, newColor, SkinColor, Markings); - } + public HumanoidCharacterAppearance WithFacialHairStyleName(string newName) + { + return new(HairStyleId, HairColor, newName, FacialHairColor, EyeColor, SkinColor, Markings); + } - public HumanoidCharacterAppearance WithSkinColor(Color newColor) - { - return new(HairStyleId, HairColor, FacialHairStyleId, FacialHairColor, EyeColor, newColor, Markings); - } + public HumanoidCharacterAppearance WithFacialHairColor(Color newColor) + { + return new(HairStyleId, HairColor, FacialHairStyleId, newColor, EyeColor, SkinColor, Markings); + } - public HumanoidCharacterAppearance WithMarkings(List newMarkings) + public HumanoidCharacterAppearance WithEyeColor(Color newColor) + { + return new(HairStyleId, HairColor, FacialHairStyleId, FacialHairColor, newColor, SkinColor, Markings); + } + + public HumanoidCharacterAppearance WithSkinColor(Color newColor) + { + return new(HairStyleId, HairColor, FacialHairStyleId, FacialHairColor, EyeColor, newColor, Markings); + } + + public HumanoidCharacterAppearance WithMarkings(List newMarkings) + { + return new(HairStyleId, HairColor, FacialHairStyleId, FacialHairColor, EyeColor, SkinColor, newMarkings); + } + + public static HumanoidCharacterAppearance DefaultWithSpecies(string species) + { + var speciesPrototype = IoCManager.Resolve().Index(species); + var skinColor = speciesPrototype.SkinColoration switch { - return new(HairStyleId, HairColor, FacialHairStyleId, FacialHairColor, EyeColor, SkinColor, newMarkings); - } + HumanoidSkinColor.HumanToned => Humanoid.SkinColor.HumanSkinTone(speciesPrototype.DefaultHumanSkinTone), + HumanoidSkinColor.Hues => speciesPrototype.DefaultSkinTone, + HumanoidSkinColor.TintedHues => Humanoid.SkinColor.TintedHues(speciesPrototype.DefaultSkinTone), + HumanoidSkinColor.VoxFeathers => Humanoid.SkinColor.ClosestVoxColor(speciesPrototype.DefaultSkinTone), + HumanoidSkinColor.TintedHuesSkin => Humanoid.SkinColor.TintedHuesSkin(speciesPrototype.DefaultSkinTone, speciesPrototype.DefaultSkinTone), + _ => Humanoid.SkinColor.ValidHumanSkinTone, + }; - public HumanoidCharacterAppearance() : this( + return new( HairStyles.DefaultHairStyle, Color.Black, HairStyles.DefaultFacialHairStyle, Color.Black, Color.Black, - Humanoid.SkinColor.ValidHumanSkinTone, + skinColor, new () - ) - { - } - - public static HumanoidCharacterAppearance DefaultWithSpecies(string species) - { - var speciesPrototype = IoCManager.Resolve().Index(species); - var skinColor = speciesPrototype.SkinColoration switch - { - HumanoidSkinColor.HumanToned => Humanoid.SkinColor.HumanSkinTone(speciesPrototype.DefaultHumanSkinTone), - HumanoidSkinColor.Hues => speciesPrototype.DefaultSkinTone, - HumanoidSkinColor.TintedHues => Humanoid.SkinColor.TintedHues(speciesPrototype.DefaultSkinTone), - // DeltaV - Blended tint for moths - HumanoidSkinColor.TintedHuesSkin => Humanoid.SkinColor.TintedHuesSkin(speciesPrototype.DefaultSkinTone, speciesPrototype.DefaultSkinTone), - _ => Humanoid.SkinColor.ValidHumanSkinTone - }; - - return new( - HairStyles.DefaultHairStyle, - Color.Black, - HairStyles.DefaultFacialHairStyle, - Color.Black, - Color.Black, - skinColor, - new () - ); - } - - private static IReadOnlyList RealisticEyeColors = new List - { - Color.Brown, - Color.Gray, - Color.Azure, - Color.SteelBlue, - Color.Black - }; + ); + } - public static HumanoidCharacterAppearance Random(string species, Sex sex) - { - var random = IoCManager.Resolve(); - var markingManager = IoCManager.Resolve(); - var hairStyles = markingManager.MarkingsByCategoryAndSpecies(MarkingCategories.Hair, species).Keys.ToList(); - var facialHairStyles = markingManager.MarkingsByCategoryAndSpecies(MarkingCategories.FacialHair, species).Keys.ToList(); + private static IReadOnlyList RealisticEyeColors = new List + { + Color.Brown, + Color.Gray, + Color.Azure, + Color.SteelBlue, + Color.Black + }; + + public static HumanoidCharacterAppearance Random(string species, Sex sex) + { + var random = IoCManager.Resolve(); + var markingManager = IoCManager.Resolve(); + var hairStyles = markingManager.MarkingsByCategoryAndSpecies(MarkingCategories.Hair, species).Keys.ToList(); + var facialHairStyles = markingManager.MarkingsByCategoryAndSpecies(MarkingCategories.FacialHair, species).Keys.ToList(); - var newHairStyle = hairStyles.Count > 0 - ? random.Pick(hairStyles) - : HairStyles.DefaultHairStyle; + var newHairStyle = hairStyles.Count > 0 + ? random.Pick(hairStyles) + : HairStyles.DefaultHairStyle; - var newFacialHairStyle = facialHairStyles.Count == 0 || sex == Sex.Female - ? HairStyles.DefaultFacialHairStyle - : random.Pick(facialHairStyles); + var newFacialHairStyle = facialHairStyles.Count == 0 || sex == Sex.Female + ? HairStyles.DefaultFacialHairStyle + : random.Pick(facialHairStyles); - var newHairColor = random.Pick(HairStyles.RealisticHairColors); - newHairColor = newHairColor - .WithRed(RandomizeColor(newHairColor.R)) - .WithGreen(RandomizeColor(newHairColor.G)) - .WithBlue(RandomizeColor(newHairColor.B)); + var newHairColor = random.Pick(HairStyles.RealisticHairColors); + newHairColor = newHairColor + .WithRed(RandomizeColor(newHairColor.R)) + .WithGreen(RandomizeColor(newHairColor.G)) + .WithBlue(RandomizeColor(newHairColor.B)); - // TODO: Add random markings + // TODO: Add random markings - var newEyeColor = random.Pick(RealisticEyeColors); + var newEyeColor = random.Pick(RealisticEyeColors); - var skinType = IoCManager.Resolve().Index(species).SkinColoration; + var skinType = IoCManager.Resolve().Index(species).SkinColoration; var skinTone = IoCManager.Resolve().Index(species).DefaultSkinTone; // DeltaV, required for tone blending - var newSkinColor = Humanoid.SkinColor.ValidHumanSkinTone; - switch (skinType) - { - case HumanoidSkinColor.HumanToned: - var tone = random.Next(0, 100); - newSkinColor = Humanoid.SkinColor.HumanSkinTone(tone); - break; - case HumanoidSkinColor.Hues: - case HumanoidSkinColor.TintedHues: - var rbyte = random.NextByte(); - var gbyte = random.NextByte(); - var bbyte = random.NextByte(); - newSkinColor = new Color(rbyte, gbyte, bbyte); - break; - case HumanoidSkinColor.TintedHuesSkin: // DeltaV, tone blending - rbyte = random.NextByte(); - gbyte = random.NextByte(); - bbyte = random.NextByte(); - newSkinColor = new Color(rbyte, gbyte, bbyte); - break; - } - - if (skinType == HumanoidSkinColor.TintedHues) - { + var newSkinColor = new Color(random.NextFloat(1), random.NextFloat(1), random.NextFloat(1), 1); + switch (skinType) + { + case HumanoidSkinColor.HumanToned: + var tone = Math.Round(Humanoid.SkinColor.HumanSkinToneFromColor(newSkinColor)); + newSkinColor = Humanoid.SkinColor.HumanSkinTone((int)tone); + break; + case HumanoidSkinColor.Hues: + break; + case HumanoidSkinColor.TintedHues: newSkinColor = Humanoid.SkinColor.ValidTintedHuesSkinTone(newSkinColor); - } - - if (skinType == HumanoidSkinColor.TintedHuesSkin) // DeltaV, tone blending - { + break; + case HumanoidSkinColor.TintedHuesSkin: newSkinColor = Humanoid.SkinColor.ValidTintedHuesSkinTone(skinTone, newSkinColor); - } + break; + case HumanoidSkinColor.VoxFeathers: + newSkinColor = Humanoid.SkinColor.ProportionalVoxColor(newSkinColor); + break; + } - return new HumanoidCharacterAppearance(newHairStyle, newHairColor, newFacialHairStyle, newHairColor, newEyeColor, newSkinColor, new ()); + return new HumanoidCharacterAppearance(newHairStyle, newHairColor, newFacialHairStyle, newHairColor, newEyeColor, newSkinColor, new ()); - float RandomizeColor(float channel) - { - return MathHelper.Clamp01(channel + random.Next(-25, 25) / 100f); - } + float RandomizeColor(float channel) + { + return MathHelper.Clamp01(channel + random.Next(-25, 25) / 100f); } + } + + public static Color ClampColor(Color color) + { + return new(color.RByte, color.GByte, color.BByte); + } + + public static HumanoidCharacterAppearance EnsureValid(HumanoidCharacterAppearance appearance, string species, Sex sex) + { + var hairStyleId = appearance.HairStyleId; + var facialHairStyleId = appearance.FacialHairStyleId; + + var hairColor = ClampColor(appearance.HairColor); + var facialHairColor = ClampColor(appearance.FacialHairColor); + var eyeColor = ClampColor(appearance.EyeColor); - public static Color ClampColor(Color color) + var proto = IoCManager.Resolve(); + var markingManager = IoCManager.Resolve(); + + if (!markingManager.MarkingsByCategory(MarkingCategories.Hair).ContainsKey(hairStyleId)) { - return new(color.RByte, color.GByte, color.BByte); + hairStyleId = HairStyles.DefaultHairStyle; } - public static HumanoidCharacterAppearance EnsureValid(HumanoidCharacterAppearance appearance, string species, Sex sex) + if (!markingManager.MarkingsByCategory(MarkingCategories.FacialHair).ContainsKey(facialHairStyleId)) { - var hairStyleId = appearance.HairStyleId; - var facialHairStyleId = appearance.FacialHairStyleId; - - var hairColor = ClampColor(appearance.HairColor); - var facialHairColor = ClampColor(appearance.FacialHairColor); - var eyeColor = ClampColor(appearance.EyeColor); + facialHairStyleId = HairStyles.DefaultFacialHairStyle; + } - var proto = IoCManager.Resolve(); - var markingManager = IoCManager.Resolve(); + var markingSet = new MarkingSet(); + var skinColor = appearance.SkinColor; + if (proto.TryIndex(species, out SpeciesPrototype? speciesProto)) + { + markingSet = new MarkingSet(appearance.Markings, speciesProto.MarkingPoints, markingManager, proto); + markingSet.EnsureValid(markingManager); - if (!markingManager.MarkingsByCategory(MarkingCategories.Hair).ContainsKey(hairStyleId)) + if (!Humanoid.SkinColor.VerifySkinColor(speciesProto.SkinColoration, skinColor)) { - hairStyleId = HairStyles.DefaultHairStyle; + skinColor = Humanoid.SkinColor.ValidSkinTone(speciesProto.SkinColoration, skinColor); } - if (!markingManager.MarkingsByCategory(MarkingCategories.FacialHair).ContainsKey(facialHairStyleId)) - { - facialHairStyleId = HairStyles.DefaultFacialHairStyle; - } + markingSet.EnsureSpecies(species, skinColor, markingManager); + markingSet.EnsureSexes(sex, markingManager); + } - var markingSet = new MarkingSet(); - var skinColor = appearance.SkinColor; - if (proto.TryIndex(species, out SpeciesPrototype? speciesProto)) - { - markingSet = new MarkingSet(appearance.Markings, speciesProto.MarkingPoints, markingManager, proto); - markingSet.EnsureValid(markingManager); + return new HumanoidCharacterAppearance( + hairStyleId, + hairColor, + facialHairStyleId, + facialHairColor, + eyeColor, + skinColor, + markingSet.GetForwardEnumerator().ToList()); + } - if (!Humanoid.SkinColor.VerifySkinColor(speciesProto.SkinColoration, skinColor)) - { - skinColor = Humanoid.SkinColor.ValidSkinTone(speciesProto.SkinColoration, skinColor); - } + public bool MemberwiseEquals(ICharacterAppearance maybeOther) + { + return + maybeOther is HumanoidCharacterAppearance other + && HairStyleId == other.HairStyleId + && HairColor.Equals(other.HairColor) + && FacialHairStyleId == other.FacialHairStyleId + && FacialHairColor.Equals(other.FacialHairColor) + && EyeColor.Equals(other.EyeColor) + && SkinColor.Equals(other.SkinColor) + && Markings.SequenceEqual(other.Markings); + } - markingSet.EnsureSpecies(species, skinColor, markingManager); - markingSet.EnsureSexes(sex, markingManager); - } + public bool Equals(HumanoidCharacterAppearance? other) + { + if (ReferenceEquals(null, other)) + return false; + if (ReferenceEquals(this, other)) + return true; + return HairStyleId == other.HairStyleId + && HairColor.Equals(other.HairColor) + && FacialHairStyleId == other.FacialHairStyleId + && FacialHairColor.Equals(other.FacialHairColor) + && EyeColor.Equals(other.EyeColor) + && SkinColor.Equals(other.SkinColor) + && Markings.SequenceEqual(other.Markings); + } - return new HumanoidCharacterAppearance( - hairStyleId, - hairColor, - facialHairStyleId, - facialHairColor, - eyeColor, - skinColor, - markingSet.GetForwardEnumerator().ToList()); - } + public override bool Equals(object? obj) + { + return ReferenceEquals(this, obj) + || obj is HumanoidCharacterAppearance other + && Equals(other); + } - public bool MemberwiseEquals(ICharacterAppearance maybeOther) - { - if (maybeOther is not HumanoidCharacterAppearance other) return false; - if (HairStyleId != other.HairStyleId) return false; - if (!HairColor.Equals(other.HairColor)) return false; - if (FacialHairStyleId != other.FacialHairStyleId) return false; - if (!FacialHairColor.Equals(other.FacialHairColor)) return false; - if (!EyeColor.Equals(other.EyeColor)) return false; - if (!SkinColor.Equals(other.SkinColor)) return false; - if (!Markings.SequenceEqual(other.Markings)) return false; - return true; - } + public override int GetHashCode() + { + return HashCode.Combine( + HairStyleId, + HairColor, + FacialHairStyleId, + FacialHairColor, + EyeColor, + SkinColor, + Markings); } + + public HumanoidCharacterAppearance Clone() => new(this); } diff --git a/Content.Shared/Humanoid/HumanoidProfileExport.cs b/Content.Shared/Humanoid/HumanoidProfileExport.cs new file mode 100644 index 0000000000..4f020cce19 --- /dev/null +++ b/Content.Shared/Humanoid/HumanoidProfileExport.cs @@ -0,0 +1,17 @@ +using Content.Shared.Preferences; + +namespace Content.Shared.Humanoid; + +/// Holds all of the data for importing / exporting character profiles. +[DataDefinition] +public sealed partial class HumanoidProfileExport +{ + [DataField] + public string ForkId; + + [DataField] + public int Version = 1; + + [DataField(required: true)] + public HumanoidCharacterProfile Profile = default!; +} diff --git a/Content.Shared/Humanoid/Prototypes/SpeciesPrototype.cs b/Content.Shared/Humanoid/Prototypes/SpeciesPrototype.cs index 4101363475..005315c8e3 100644 --- a/Content.Shared/Humanoid/Prototypes/SpeciesPrototype.cs +++ b/Content.Shared/Humanoid/Prototypes/SpeciesPrototype.cs @@ -75,6 +75,12 @@ public sealed partial class SpeciesPrototype : IPrototype [DataField(required: true)] public EntProtoId DollPrototype { get; private set; } + /// + /// Allow Custom Specie Name for this Specie. + /// + [DataField] + public Boolean CustomName { get; private set; } = false; + /// /// Method of skin coloration used by the species. /// @@ -121,6 +127,12 @@ public sealed partial class SpeciesPrototype : IPrototype [DataField] public int MaxAge = 120; + /// + /// The minimum height and width ratio for this species + /// + [DataField] + public float SizeRatio = 1.2f; + /// /// The minimum height for this species /// diff --git a/Content.Shared/Humanoid/SharedHumanoidAppearanceSystem.cs b/Content.Shared/Humanoid/SharedHumanoidAppearanceSystem.cs index ce49f80af3..dc1e6b736c 100644 --- a/Content.Shared/Humanoid/SharedHumanoidAppearanceSystem.cs +++ b/Content.Shared/Humanoid/SharedHumanoidAppearanceSystem.cs @@ -1,3 +1,4 @@ +using System.IO; using System.Linq; using System.Numerics; using Content.Shared.Decals; @@ -7,9 +8,17 @@ using Content.Shared.IdentityManagement; using Content.Shared.Preferences; using Content.Shared.HeightAdjust; +using Microsoft.Extensions.Configuration; +using Robust.Shared; +using Robust.Shared.Configuration; using Robust.Shared.GameObjects.Components.Localization; using Robust.Shared.Network; +using Robust.Shared.Player; using Robust.Shared.Prototypes; +using Robust.Shared.Serialization.Manager; +using Robust.Shared.Serialization.Markdown; +using Robust.Shared.Utility; +using YamlDotNet.RepresentationModel; namespace Content.Shared.Humanoid; @@ -24,9 +33,11 @@ namespace Content.Shared.Humanoid; /// public abstract class SharedHumanoidAppearanceSystem : EntitySystem { + [Dependency] private readonly IConfigurationManager _cfgManager = default!; [Dependency] private readonly INetManager _netManager = default!; [Dependency] private readonly IPrototypeManager _proto = default!; [Dependency] private readonly MarkingManager _markingManager = default!; + [Dependency] private readonly ISerializationManager _serManager = default!; [Dependency] private readonly HeightAdjustSystem _heightAdjust = default!; [ValidatePrototypeId] @@ -40,12 +51,39 @@ public override void Initialize() SubscribeLocalEvent(OnExamined); } + public DataNode ToDataNode(HumanoidCharacterProfile profile) + { + var export = new HumanoidProfileExport + { + ForkId = _cfgManager.GetCVar(CVars.BuildForkId), + Profile = profile, + }; + + var dataNode = _serManager.WriteValue(export, alwaysWrite: true, notNullableOverride: true); + return dataNode; + } + + public HumanoidCharacterProfile FromStream(Stream stream, ICommonSession session) + { + using var reader = new StreamReader(stream, EncodingHelpers.UTF8); + var yamlStream = new YamlStream(); + yamlStream.Load(reader); + + var root = yamlStream.Documents[0].RootNode; + var export = _serManager.Read(root.ToDataNode(), notNullableOverride: true); + + // Add custom handling here for forks / version numbers if you care + + var profile = export.Profile; + var collection = IoCManager.Instance; + profile.EnsureValid(session, collection!); + return profile; + } + private void OnInit(EntityUid uid, HumanoidAppearanceComponent humanoid, ComponentInit args) { if (string.IsNullOrEmpty(humanoid.Species) || _netManager.IsClient && !IsClientSide(uid)) - { return; - } if (string.IsNullOrEmpty(humanoid.Initial) || !_proto.TryIndex(humanoid.Initial, out HumanoidProfilePrototype? startingSet)) @@ -56,9 +94,7 @@ private void OnInit(EntityUid uid, HumanoidAppearanceComponent humanoid, Compone // Do this first, because profiles currently do not support custom base layers foreach (var (layer, info) in startingSet.CustomBaseLayers) - { humanoid.CustomBaseLayers.Add(layer, info); - } LoadProfile(uid, startingSet.Profile, humanoid); } @@ -66,7 +102,7 @@ private void OnInit(EntityUid uid, HumanoidAppearanceComponent humanoid, Compone private void OnExamined(EntityUid uid, HumanoidAppearanceComponent component, ExaminedEvent args) { var identity = Identity.Entity(uid, EntityManager); - var species = GetSpeciesRepresentation(component.Species).ToLower(); + var species = GetSpeciesRepresentation(component.Species, component.CustomSpecieName).ToLower(); var age = GetAgeRepresentation(component.Species, component.Age); args.PushText(Loc.GetString("humanoid-appearance-component-examine", ("user", identity), ("age", age), ("species", species))); @@ -110,9 +146,7 @@ public void SetLayersVisibility(EntityUid uid, IEnumerable var dirty = false; foreach (var layer in layers) - { SetLayerVisibility(uid, humanoid, layer, visible, permanent, ref dirty); - } if (dirty) Dirty(humanoid); @@ -153,9 +187,7 @@ protected virtual void SetLayerVisibility( public void SetSpecies(EntityUid uid, string species, bool sync = true, HumanoidAppearanceComponent? humanoid = null) { if (!Resolve(uid, ref humanoid) || !_proto.TryIndex(species, out var prototype)) - { return; - } humanoid.Species = species; humanoid.MarkingSet.EnsureSpecies(species, humanoid.SkinColor, _markingManager); @@ -181,14 +213,10 @@ public virtual void SetSkinColor(EntityUid uid, Color skinColor, bool sync = tru return; if (!_proto.TryIndex(humanoid.Species, out var species)) - { return; - } if (verify && !SkinColor.VerifySkinColor(species.SkinColoration, skinColor)) - { skinColor = SkinColor.ValidSkinTone(species.SkinColoration, skinColor); - } humanoid.SkinColor = skinColor; @@ -259,9 +287,7 @@ public void SetSex(EntityUid uid, Sex sex, bool sync = true, HumanoidAppearanceC RaiseLocalEvent(uid, new SexChangedEvent(oldSex, sex)); if (sync) - { Dirty(humanoid); - } } /// @@ -328,15 +354,10 @@ public void SetScale(EntityUid uid, Vector2 scale, bool sync = true, HumanoidApp /// The mob's entity UID. /// The character profile to load. /// Humanoid component of the entity - public virtual void LoadProfile(EntityUid uid, HumanoidCharacterProfile? profile, HumanoidAppearanceComponent? humanoid = null) + public virtual void LoadProfile(EntityUid uid, HumanoidCharacterProfile profile, HumanoidAppearanceComponent? humanoid = null) { - if (profile == null) - return; - if (!Resolve(uid, ref humanoid)) - { return; - } SetSpecies(uid, profile.Species, false, humanoid); SetSex(uid, profile.Sex, false, humanoid); @@ -353,13 +374,9 @@ public virtual void LoadProfile(EntityUid uid, HumanoidCharacterProfile? profile if (_markingManager.TryGetMarking(marking, out var prototype)) { if (!prototype.ForcedColoring) - { AddMarking(uid, marking.MarkingId, marking.MarkingColors, false); - } else - { markingFColored.Add(marking, prototype); - } } } @@ -372,15 +389,11 @@ public virtual void LoadProfile(EntityUid uid, HumanoidCharacterProfile? profile if (_markingManager.Markings.TryGetValue(profile.Appearance.HairStyleId, out var hairPrototype) && _markingManager.CanBeApplied(profile.Species, profile.Sex, hairPrototype, _proto)) - { AddMarking(uid, profile.Appearance.HairStyleId, hairColor, false); - } if (_markingManager.Markings.TryGetValue(profile.Appearance.FacialHairStyleId, out var facialHairPrototype) && _markingManager.CanBeApplied(profile.Species, profile.Sex, facialHairPrototype, _proto)) - { AddMarking(uid, profile.Appearance.FacialHairStyleId, facialHairColor, false); - } humanoid.MarkingSet.EnsureSpecies(profile.Species, profile.Appearance.SkinColor, _markingManager, _proto); @@ -400,13 +413,20 @@ public virtual void LoadProfile(EntityUid uid, HumanoidCharacterProfile? profile humanoid.Gender = profile.Gender; if (TryComp(uid, out var grammar)) - { grammar.Gender = profile.Gender; - } humanoid.Age = profile.Age; - _heightAdjust.SetScale(uid, new Vector2(profile.Width, profile.Height)); + humanoid.CustomSpecieName = profile.Customspeciename; + + var species = _proto.Index(humanoid.Species); + + if (profile.Height <= 0 || profile.Width <= 0) + SetScale(uid, new Vector2(species.DefaultWidth, species.DefaultHeight), true, humanoid); + else + SetScale(uid, new Vector2(profile.Width, profile.Height), true, humanoid); + + _heightAdjust.SetScale(uid, new Vector2(humanoid.Width, humanoid.Height)); humanoid.LastProfileLoaded = profile; // DeltaV - let paradox anomaly be cloned @@ -426,9 +446,7 @@ public void AddMarking(EntityUid uid, string marking, Color? color = null, bool { if (!Resolve(uid, ref humanoid) || !_markingManager.Markings.TryGetValue(marking, out var prototype)) - { return; - } var markingObject = prototype.AsMarking(); markingObject.Forced = forced; @@ -449,9 +467,7 @@ public void AddMarking(EntityUid uid, string marking, Color? color = null, bool private void EnsureDefaultMarkings(EntityUid uid, HumanoidAppearanceComponent? humanoid) { if (!Resolve(uid, ref humanoid)) - { return; - } humanoid.MarkingSet.EnsureDefault(humanoid.SkinColor, humanoid.EyeColor, _markingManager); } @@ -468,9 +484,7 @@ public void AddMarking(EntityUid uid, string marking, IReadOnlyList color { if (!Resolve(uid, ref humanoid) || !_markingManager.Markings.TryGetValue(marking, out var prototype)) - { return; - } var markingObject = new Marking(marking, colors); markingObject.Forced = forced; @@ -483,12 +497,13 @@ public void AddMarking(EntityUid uid, string marking, IReadOnlyList color /// /// Takes ID of the species prototype, returns UI-friendly name of the species. /// - public string GetSpeciesRepresentation(string speciesId) + public string GetSpeciesRepresentation(string speciesId, string? customespeciename) { + if (!string.IsNullOrEmpty(customespeciename)) + return Loc.GetString(customespeciename); + if (_proto.TryIndex(speciesId, out var species)) - { return Loc.GetString(species.Name); - } Log.Error("Tried to get representation of unknown species: {speciesId}"); return Loc.GetString("humanoid-appearance-component-unknown-species"); @@ -503,14 +518,10 @@ public string GetAgeRepresentation(string species, int age) } if (age < speciesPrototype.YoungAge) - { return Loc.GetString("identity-age-young"); - } if (age < speciesPrototype.OldAge) - { return Loc.GetString("identity-age-middle-aged"); - } return Loc.GetString("identity-age-old"); } diff --git a/Content.Shared/Humanoid/SkinColor.cs b/Content.Shared/Humanoid/SkinColor.cs index dcc5c2d764..64ad82ac98 100644 --- a/Content.Shared/Humanoid/SkinColor.cs +++ b/Content.Shared/Humanoid/SkinColor.cs @@ -1,3 +1,6 @@ +using System.Security.Cryptography; +using Microsoft.VisualBasic.CompilerServices; + namespace Content.Shared.Humanoid; public static class SkinColor @@ -7,6 +10,13 @@ public static class SkinColor public const float MinHuesLightness = 0.175f; + public const float MinFeathersHue = 29f / 360; + public const float MaxFeathersHue = 174f / 360; + public const float MinFeathersSaturation = 20f / 100; + public const float MaxFeathersSaturation = 88f / 100; + public const float MinFeathersValue = 36f / 100; + public const float MaxFeathersValue = 55f / 100; + public static Color ValidHumanSkinTone => Color.FromHsv(new Vector4(0.07f, 0.2f, 1f, 1f)); /// @@ -159,6 +169,60 @@ public static bool VerifyTintedHues(Color color) return Color.ToHsl(color).Y <= MaxTintedHuesSaturation && Color.ToHsl(color).Z >= MinTintedHuesLightness; } + /// + /// Converts a Color proportionally to the allowed vox color range. + /// Will NOT preserve the specific input color even if it is within the allowed vox color range. + /// + /// Color to convert + /// Vox feather coloration + public static Color ProportionalVoxColor(Color color) + { + var newColor = Color.ToHsv(color); + + newColor.X = newColor.X * (MaxFeathersHue - MinFeathersHue) + MinFeathersHue; + newColor.Y = newColor.Y * (MaxFeathersSaturation - MinFeathersSaturation) + MinFeathersSaturation; + newColor.Z = newColor.Z * (MaxFeathersValue - MinFeathersValue) + MinFeathersValue; + + return Color.FromHsv(newColor); + } + + // /// + // /// Ensures the input Color is within the allowed vox color range. + // /// + // /// Color to convert + // /// The same Color if it was within the allowed range, or the closest matching Color otherwise + public static Color ClosestVoxColor(Color color) + { + var hsv = Color.ToHsv(color); + + hsv.X = Math.Clamp(hsv.X, MinFeathersHue, MaxFeathersHue); + hsv.Y = Math.Clamp(hsv.Y, MinFeathersSaturation, MaxFeathersSaturation); + hsv.Z = Math.Clamp(hsv.Z, MinFeathersValue, MaxFeathersValue); + + return Color.FromHsv(hsv); + } + + /// + /// Verify if this color is a valid vox feather coloration, or not. + /// + /// The color to verify + /// True if valid, false otherwise + public static bool VerifyVoxFeathers(Color color) + { + var colorHsv = Color.ToHsv(color); + + if (colorHsv.X < MinFeathersHue || colorHsv.X > MaxFeathersHue) + return false; + + if (colorHsv.Y < MinFeathersSaturation || colorHsv.Y > MaxFeathersSaturation) + return false; + + if (colorHsv.Z < MinFeathersValue || colorHsv.Z > MaxFeathersValue) + return false; + + return true; + } + /// /// This takes in a color, and returns a color guaranteed to be above MinHuesLightness /// @@ -189,6 +253,7 @@ public static bool VerifySkinColor(HumanoidSkinColor type, Color color) HumanoidSkinColor.TintedHues => VerifyTintedHues(color), HumanoidSkinColor.TintedHuesSkin => true, // DeltaV - Tone blending HumanoidSkinColor.Hues => VerifyHues(color), + HumanoidSkinColor.VoxFeathers => VerifyVoxFeathers(color), _ => false, }; } @@ -201,6 +266,7 @@ public static Color ValidSkinTone(HumanoidSkinColor type, Color color) HumanoidSkinColor.TintedHues => ValidTintedHuesSkinTone(color), HumanoidSkinColor.TintedHuesSkin => ValidTintedHuesSkinTone(color), // DeltaV - Tone blending HumanoidSkinColor.Hues => MakeHueValid(color), + HumanoidSkinColor.VoxFeathers => ClosestVoxColor(color), _ => color }; } @@ -210,6 +276,7 @@ public enum HumanoidSkinColor : byte { HumanToned, Hues, + VoxFeathers, // Vox feathers are limited to a specific color range TintedHues, //This gives a color tint to a humanoid's skin (10% saturation with full hue range). TintedHuesSkin, // DeltaV - Default TintedHues assumes the texture will have the proper skin color, but moths dont } diff --git a/Content.Shared/Input/ContentKeyFunctions.cs b/Content.Shared/Input/ContentKeyFunctions.cs index b9871207f5..3f88ca4e20 100644 --- a/Content.Shared/Input/ContentKeyFunctions.cs +++ b/Content.Shared/Input/ContentKeyFunctions.cs @@ -25,7 +25,7 @@ public static class ContentKeyFunctions public static readonly BoundKeyFunction CycleChatChannelBackward = "CycleChatChannelBackward"; public static readonly BoundKeyFunction EscapeContext = "EscapeContext"; public static readonly BoundKeyFunction OpenCharacterMenu = "OpenCharacterMenu"; - public static readonly BoundKeyFunction OpenEmotionsMenu = "OpenEmotionsMenu"; // WD EDIT + public static readonly BoundKeyFunction OpenEmotesMenu = "OpenEmotesMenu"; public static readonly BoundKeyFunction OpenLanguageMenu = "OpenLanguageMenu"; public static readonly BoundKeyFunction OpenCraftingMenu = "OpenCraftingMenu"; public static readonly BoundKeyFunction OpenGuidebook = "OpenGuidebook"; @@ -44,6 +44,7 @@ public static class ContentKeyFunctions public static readonly BoundKeyFunction MovePulledObject = "MovePulledObject"; public static readonly BoundKeyFunction ReleasePulledObject = "ReleasePulledObject"; public static readonly BoundKeyFunction MouseMiddle = "MouseMiddle"; + public static readonly BoundKeyFunction ToggleRoundEndSummaryWindow = "ToggleRoundEndSummaryWindow"; public static readonly BoundKeyFunction OpenEntitySpawnWindow = "OpenEntitySpawnWindow"; public static readonly BoundKeyFunction OpenSandboxWindow = "OpenSandboxWindow"; public static readonly BoundKeyFunction OpenTileSpawnWindow = "OpenTileSpawnWindow"; @@ -58,7 +59,8 @@ public static class ContentKeyFunctions public static readonly BoundKeyFunction ResetZoom = "ResetZoom"; public static readonly BoundKeyFunction OfferItem = "OfferItem"; public static readonly BoundKeyFunction ToggleStanding = "ToggleStanding"; - public static readonly BoundKeyFunction LookUp = "LookUp"; // WD EDIT + public static readonly BoundKeyFunction ToggleCrawlingUnder = "ToggleCrawlingUnder"; + public static readonly BoundKeyFunction LookUp = "LookUp"; public static readonly BoundKeyFunction ArcadeUp = "ArcadeUp"; public static readonly BoundKeyFunction ArcadeDown = "ArcadeDown"; diff --git a/Content.Shared/Interaction/Components/ClumsyComponent.cs b/Content.Shared/Interaction/Components/ClumsyComponent.cs index 5b72fc224c..824696c838 100644 --- a/Content.Shared/Interaction/Components/ClumsyComponent.cs +++ b/Content.Shared/Interaction/Components/ClumsyComponent.cs @@ -1,22 +1,24 @@ using Content.Shared.Damage; using Robust.Shared.Audio; +using Robust.Shared.GameStates; -namespace Content.Shared.Interaction.Components +namespace Content.Shared.Interaction.Components; + +/// +/// A simple clumsy tag-component. +/// +[RegisterComponent, NetworkedComponent, AutoGenerateComponentState] +public sealed partial class ClumsyComponent : Component { /// - /// A simple clumsy tag-component. + /// Damage dealt to a clumsy character when they try to fire a gun. /// - [RegisterComponent] - public sealed partial class ClumsyComponent : Component - { - [DataField("clumsyDamage", required: true)] - [ViewVariables(VVAccess.ReadWrite)] - public DamageSpecifier ClumsyDamage = default!; + [DataField(required: true), AutoNetworkedField] + public DamageSpecifier ClumsyDamage = default!; - /// - /// Sound to play when clumsy interactions fail - /// - [DataField("clumsySound")] - public SoundSpecifier ClumsySound = new SoundPathSpecifier("/Audio/Items/bikehorn.ogg"); - } + /// + /// Sound to play when clumsy interactions fail. + /// + [DataField] + public SoundSpecifier ClumsySound = new SoundPathSpecifier("/Audio/Items/bikehorn.ogg"); } diff --git a/Content.Shared/Interaction/SharedInteractionSystem.cs b/Content.Shared/Interaction/SharedInteractionSystem.cs index 8d49ce31f0..1f421d0e6f 100644 --- a/Content.Shared/Interaction/SharedInteractionSystem.cs +++ b/Content.Shared/Interaction/SharedInteractionSystem.cs @@ -76,8 +76,11 @@ public abstract partial class SharedInteractionSystem : EntitySystem public override void Initialize() { + SubscribeLocalEvent(HandleUserInterfaceRangeCheck); SubscribeLocalEvent(OnBoundInterfaceInteractAttempt); + SubscribeAllEvent(HandleInteractInventorySlotEvent); + SubscribeLocalEvent(OnRemoveAttempt); SubscribeLocalEvent(OnUnequip); SubscribeLocalEvent(OnUnequipHand); @@ -108,7 +111,9 @@ public override void Shutdown() /// private void OnBoundInterfaceInteractAttempt(BoundUserInterfaceMessageAttempt ev) { - if (ev.Sender.AttachedEntity is not { } user || !_actionBlockerSystem.CanInteract(user, ev.Target)) + var user = ev.Actor; + + if (!_actionBlockerSystem.CanInteract(user, ev.Target)) { ev.Cancel(); return; @@ -973,8 +978,8 @@ public bool InteractionActivate( return false; DoContactInteraction(user, used, activateMsg); - if (delayComponent != null) - _useDelay.TryResetDelay((used, delayComponent)); + // Still need to call this even without checkUseDelay in case this gets relayed from Activate. + _useDelay.TryResetDelay(used, component: delayComponent); if (!activateMsg.WasLogged) _adminLogger.Add(LogType.InteractActivate, LogImpact.Low, $"{ToPrettyString(user):user} activated {ToPrettyString(used):used}"); return true; @@ -1145,6 +1150,21 @@ public void DoContactInteraction(EntityUid uidA, EntityUid? uidB, HandledEntityE RaiseLocalEvent(uidA, new ContactInteractionEvent(uidB.Value)); RaiseLocalEvent(uidB.Value, new ContactInteractionEvent(uidA)); } + + private void HandleUserInterfaceRangeCheck(ref BoundUserInterfaceCheckRangeEvent ev) + { + if (ev.Result == BoundUserInterfaceRangeResult.Fail) + return; + + if (InRangeUnobstructed(ev.Actor, ev.Target, ev.Data.InteractionRange)) + { + ev.Result = BoundUserInterfaceRangeResult.Pass; + } + else + { + ev.Result = BoundUserInterfaceRangeResult.Fail; + } + } } /// diff --git a/Content.Shared/InteractionVerbs/InteractionVerbPrototype.cs b/Content.Shared/InteractionVerbs/InteractionVerbPrototype.cs index 1c33444cdf..671e8e4718 100644 --- a/Content.Shared/InteractionVerbs/InteractionVerbPrototype.cs +++ b/Content.Shared/InteractionVerbs/InteractionVerbPrototype.cs @@ -152,8 +152,12 @@ public sealed partial class InteractionVerbPrototype : IPrototype, IInheritingPr [DataField] public bool RequiresHands = false; - [DataField] - public bool RequiresCanInteract = true; + /// + /// Whether this verb requires the user to be able to access the target normally (with their hands or otherwise). + /// + /// The misleading yml name is kept for backwards compatibility with downstreams. + [DataField("requiresCanInteract")] + public bool RequiresCanAccess = true; /// /// If true, this verb can be invoked by the user on itself. diff --git a/Content.Shared/InteractionVerbs/Requirements/AssortedRequirements.cs b/Content.Shared/InteractionVerbs/Requirements/AssortedRequirements.cs index 69193a9212..9a4dd32336 100644 --- a/Content.Shared/InteractionVerbs/Requirements/AssortedRequirements.cs +++ b/Content.Shared/InteractionVerbs/Requirements/AssortedRequirements.cs @@ -55,7 +55,8 @@ public override bool IsMet(InteractionArgs args, InteractionVerbPrototype proto, if (!deps.EntMan.TryGetComponent(args.Target, out var state)) return false; - return state.Standing ? AllowStanding : AllowLaying; + return state.CurrentState == StandingState.Standing && AllowStanding + || state.CurrentState == StandingState.Lying && AllowLaying; } } diff --git a/Content.Shared/InteractionVerbs/SharedInteractionVerbsSystem.cs b/Content.Shared/InteractionVerbs/SharedInteractionVerbsSystem.cs index ed74af8bc6..f8100e71c3 100644 --- a/Content.Shared/InteractionVerbs/SharedInteractionVerbsSystem.cs +++ b/Content.Shared/InteractionVerbs/SharedInteractionVerbsSystem.cs @@ -156,7 +156,7 @@ public bool StartVerb(InteractionVerbPrototype proto, InteractionArgs args, bool Broadcast = true, BreakOnHandChange = proto.RequiresHands, NeedHand = proto.RequiresHands, - RequireCanInteract = proto.RequiresCanInteract, + RequireCanInteract = proto.RequiresCanAccess, Delay = delay, Event = new InteractionVerbDoAfterEvent(proto.ID, args) }; @@ -178,7 +178,8 @@ public void PerformVerb(InteractionVerbPrototype proto, InteractionArgs args, bo if (_net.IsClient) return; // this leads to issues - if (!proto.Action!.CanPerform(args, proto, false, _verbDependencies) && !force + if (!PerformChecks(proto, ref args, out _, out _) && !force + || !proto.Action!.CanPerform(args, proto, false, _verbDependencies) && !force || !proto.Action.Perform(args, proto, _verbDependencies)) { CreateVerbEffects(proto.EffectFailure, Fail, proto, args); @@ -271,7 +272,7 @@ private bool PerformChecks(InteractionVerbPrototype proto, ref InteractionArgs a return false; } - if (proto.RequiresCanInteract && args is not { CanInteract: true, CanAccess: true } || !proto.Range.IsInRange(distance)) + if (!args.CanInteract || proto.RequiresCanAccess && !args.CanAccess || !proto.Range.IsInRange(distance)) { errorLocale = "interaction-verb-cannot-reach"; return false; diff --git a/Content.Shared/Inventory/Events/UnequippedEvents.cs b/Content.Shared/Inventory/Events/UnequippedEvents.cs index ef607f071a..4e1764a7d2 100644 --- a/Content.Shared/Inventory/Events/UnequippedEvents.cs +++ b/Content.Shared/Inventory/Events/UnequippedEvents.cs @@ -22,12 +22,18 @@ public abstract class UnequippedEventBase : EntityEventArgs /// public readonly string SlotGroup; + /// + /// Slotflags of the slot the entity just got unequipped from. + /// + public readonly SlotFlags SlotFlags; + public UnequippedEventBase(EntityUid equipee, EntityUid equipment, SlotDefinition slotDefinition) { Equipee = equipee; Equipment = equipment; Slot = slotDefinition.Name; SlotGroup = slotDefinition.SlotGroup; + SlotFlags = slotDefinition.SlotFlags; } } diff --git a/Content.Shared/Inventory/InventoryComponent.cs b/Content.Shared/Inventory/InventoryComponent.cs index 2a8710f0f2..02b3a5b258 100644 --- a/Content.Shared/Inventory/InventoryComponent.cs +++ b/Content.Shared/Inventory/InventoryComponent.cs @@ -13,6 +13,18 @@ public sealed partial class InventoryComponent : Component [DataField("speciesId")] public string? SpeciesId { get; set; } + [DataField] public Dictionary Displacements = []; + public SlotDefinition[] Slots = Array.Empty(); public ContainerSlot[] Containers = Array.Empty(); + + [DataDefinition] + public sealed partial class SlotDisplacementData + { + [DataField(required: true)] + public PrototypeLayerData Layer = default!; + + [DataField] + public string? ShaderOverride = "DisplacedStencilDraw"; + } } diff --git a/Content.Shared/Inventory/InventorySystem.Equip.cs b/Content.Shared/Inventory/InventorySystem.Equip.cs index d4ddca8c14..b49dcf065f 100644 --- a/Content.Shared/Inventory/InventorySystem.Equip.cs +++ b/Content.Shared/Inventory/InventorySystem.Equip.cs @@ -1,4 +1,5 @@ using System.Diagnostics.CodeAnalysis; +using Content.Shared.Armor; using Content.Shared.Clothing.Components; using Content.Shared.DoAfter; using Content.Shared.Hands; @@ -114,7 +115,7 @@ private void OnUseSlot(UseSlotNetworkMessage ev, EntitySessionEventArgs eventArg if (!_handsSystem.CanDropHeld(actor, hands.ActiveHand!, checkActionBlocker: false)) return; - RaiseLocalEvent(held.Value, new HandDeselectedEvent(actor), false); + RaiseLocalEvent(held.Value, new HandDeselectedEvent(actor)); TryEquip(actor, actor, held.Value, ev.Slot, predicted: true, inventory: inventory, force: true, checkDoafter:true); } @@ -245,8 +246,16 @@ public bool CanEquip(EntityUid actor, EntityUid target, EntityUid itemUid, strin return false; DebugTools.Assert(slotDefinition.Name == slot); - if (slotDefinition.DependsOn != null && !TryGetSlotEntity(target, slotDefinition.DependsOn, out _, inventory)) - return false; + if (slotDefinition.DependsOn != null) + { + if (!TryGetSlotEntity(target, slotDefinition.DependsOn, out EntityUid? slotEntity, inventory)) + return false; + + if (slotDefinition.DependsOnComponents is { } componentRegistry) + foreach (var (_, entry) in componentRegistry) + if (!HasComp(slotEntity, entry.Component.GetType())) + return false; + } var fittingInPocket = slotDefinition.SlotFlags.HasFlag(SlotFlags.POCKET) && item != null && @@ -303,7 +312,6 @@ public bool CanEquip(EntityUid actor, EntityUid target, EntityUid itemUid, strin reason = itemAttemptEvent.Reason ?? reason; return false; } - return true; } diff --git a/Content.Shared/Inventory/InventorySystem.Relay.cs b/Content.Shared/Inventory/InventorySystem.Relay.cs index 3308e881c5..b9d6a51f88 100644 --- a/Content.Shared/Inventory/InventorySystem.Relay.cs +++ b/Content.Shared/Inventory/InventorySystem.Relay.cs @@ -40,12 +40,14 @@ public void InitializeRelay() SubscribeLocalEvent(RelayInventoryEvent); // ComponentActivatedClientSystems - SubscribeLocalEvent>(RelayInventoryEvent); + SubscribeLocalEvent>(RelayInventoryEvent); SubscribeLocalEvent>(RelayInventoryEvent); SubscribeLocalEvent>(RelayInventoryEvent); SubscribeLocalEvent>(RelayInventoryEvent); SubscribeLocalEvent>(RelayInventoryEvent); + SubscribeLocalEvent>(RelayInventoryEvent); SubscribeLocalEvent>(RelayInventoryEvent); + SubscribeLocalEvent>(RelayInventoryEvent); SubscribeLocalEvent>(OnGetEquipmentVerbs); } @@ -123,6 +125,11 @@ public InventoryRelayedEvent(TEvent args) } } +public interface IClothingSlots +{ + SlotFlags Slots { get; } +} + /// /// Events that should be relayed to inventory slots should implement this interface. /// diff --git a/Content.Shared/Inventory/InventorySystem.Slots.cs b/Content.Shared/Inventory/InventorySystem.Slots.cs index cbbee3a85b..e0f2a69557 100644 --- a/Content.Shared/Inventory/InventorySystem.Slots.cs +++ b/Content.Shared/Inventory/InventorySystem.Slots.cs @@ -1,4 +1,6 @@ using System.Diagnostics.CodeAnalysis; +using Content.Shared.Inventory.Events; +using Content.Shared.Storage; using Robust.Shared.Containers; using Robust.Shared.Prototypes; using Robust.Shared.Utility; @@ -13,6 +15,7 @@ public partial class InventorySystem : EntitySystem private void InitializeSlots() { SubscribeLocalEvent(OnInit); + SubscribeNetworkEvent(OnOpenSlotStorage); _vvm.GetTypeHandler() .AddHandler(HandleViewVariablesSlots, ListViewVariablesSlots); @@ -24,6 +27,31 @@ private void ShutdownSlots() .RemoveHandler(HandleViewVariablesSlots, ListViewVariablesSlots); } + /// + /// Tries to find an entity in the specified slot with the specified component. + /// + public bool TryGetInventoryEntity(Entity entity, out EntityUid targetUid) + where T : IComponent, IClothingSlots + { + if (TryGetContainerSlotEnumerator(entity.Owner, out var containerSlotEnumerator)) + { + while (containerSlotEnumerator.NextItem(out var item, out var slot)) + { + if (!TryComp(item, out var required)) + continue; + + if ((((IClothingSlots) required).Slots & slot.SlotFlags) == 0x0) + continue; + + targetUid = item; + return true; + } + } + + targetUid = EntityUid.Invalid; + return false; + } + protected virtual void OnInit(EntityUid uid, InventoryComponent component, ComponentInit args) { if (!_prototypeManager.TryIndex(component.TemplateId, out InventoryTemplatePrototype? invTemplate)) @@ -40,6 +68,17 @@ protected virtual void OnInit(EntityUid uid, InventoryComponent component, Compo } } + private void OnOpenSlotStorage(OpenSlotStorageNetworkMessage ev, EntitySessionEventArgs args) + { + if (args.SenderSession.AttachedEntity is not { Valid: true } uid) + return; + + if (TryGetSlotEntity(uid, ev.Slot, out var entityUid) && TryComp(entityUid, out var storageComponent)) + { + _storageSystem.OpenStorageUI(entityUid.Value, uid, storageComponent); + } + } + public bool TryGetSlotContainer(EntityUid uid, string slot, [NotNullWhen(true)] out ContainerSlot? containerSlot, [NotNullWhen(true)] out SlotDefinition? slotDefinition, InventoryComponent? inventory = null, ContainerManagerComponent? containerComp = null) { @@ -112,7 +151,6 @@ public bool TryGetSlots(EntityUid uid, [NotNullWhen(true)] out SlotDefinition[]? slotDefinitions = null; return false; } - slotDefinitions = inv.Slots; return true; } diff --git a/Content.Shared/Inventory/InventoryTemplatePrototype.cs b/Content.Shared/Inventory/InventoryTemplatePrototype.cs index 585f80d4ce..a4d77767e3 100644 --- a/Content.Shared/Inventory/InventoryTemplatePrototype.cs +++ b/Content.Shared/Inventory/InventoryTemplatePrototype.cs @@ -17,6 +17,10 @@ public sealed partial class SlotDefinition { [DataField("name", required: true)] public string Name { get; private set; } = string.Empty; [DataField("slotTexture")] public string TextureName { get; private set; } = "pocket"; + /// + /// The texture displayed in a slot when it has an item inside of it. + /// + [DataField] public string FullTextureName { get; private set; } = "SlotBackground"; [DataField("slotFlags")] public SlotFlags SlotFlags { get; private set; } = SlotFlags.PREVENTEQUIP; [DataField("showInWindow")] public bool ShowInWindow { get; private set; } = true; [DataField("slotGroup")] public string SlotGroup { get; private set; } = "Default"; @@ -30,6 +34,8 @@ public sealed partial class SlotDefinition [DataField("dependsOn")] public string? DependsOn { get; private set; } + [DataField("dependsOnComponents")] public ComponentRegistry? DependsOnComponents { get; private set; } + [DataField("displayName", required: true)] public string DisplayName { get; private set; } = string.Empty; diff --git a/Content.Shared/Inventory/SlotFlags.cs b/Content.Shared/Inventory/SlotFlags.cs index 8d5e33e348..90971d1670 100644 --- a/Content.Shared/Inventory/SlotFlags.cs +++ b/Content.Shared/Inventory/SlotFlags.cs @@ -27,4 +27,6 @@ public enum SlotFlags FEET = 1 << 14, SUITSTORAGE = 1 << 15, All = ~NONE, + + WITHOUT_POCKET = All & ~POCKET } diff --git a/Content.Shared/Labels/Components/HandLabelerComponent.cs b/Content.Shared/Labels/Components/HandLabelerComponent.cs new file mode 100644 index 0000000000..8e2cb7b067 --- /dev/null +++ b/Content.Shared/Labels/Components/HandLabelerComponent.cs @@ -0,0 +1,30 @@ +using Content.Shared.Labels.EntitySystems; +using Content.Shared.Whitelist; +using Robust.Shared.GameStates; +using Robust.Shared.Serialization; + +namespace Content.Shared.Labels.Components; + +[RegisterComponent, NetworkedComponent] +[Access(typeof(SharedHandLabelerSystem))] +public sealed partial class HandLabelerComponent : Component +{ + [ViewVariables(VVAccess.ReadWrite), Access(Other = AccessPermissions.ReadWriteExecute)] + [DataField] + public string AssignedLabel = string.Empty; + + [ViewVariables(VVAccess.ReadWrite)] + [DataField] + public int MaxLabelChars = 50; + + [DataField] + public EntityWhitelist Whitelist = new(); +} + +[Serializable, NetSerializable] +public sealed class HandLabelerComponentState(string assignedLabel) : IComponentState +{ + public string AssignedLabel = assignedLabel; + + public int MaxLabelChars; +} diff --git a/Content.Shared/Labels/EntitySystems/SharedHandLabelerSystem.cs b/Content.Shared/Labels/EntitySystems/SharedHandLabelerSystem.cs new file mode 100644 index 0000000000..7dbeee3e77 --- /dev/null +++ b/Content.Shared/Labels/EntitySystems/SharedHandLabelerSystem.cs @@ -0,0 +1,129 @@ +using Content.Shared.Administration.Logs; +using Content.Shared.Database; +using Content.Shared.Interaction; +using Content.Shared.Labels.Components; +using Content.Shared.Popups; +using Content.Shared.Verbs; +using Robust.Shared.GameStates; +using Robust.Shared.Network; + +namespace Content.Shared.Labels.EntitySystems; + +public abstract class SharedHandLabelerSystem : EntitySystem +{ + [Dependency] protected readonly SharedUserInterfaceSystem UserInterfaceSystem = default!; + [Dependency] private readonly SharedPopupSystem _popupSystem = default!; + [Dependency] private readonly SharedLabelSystem _labelSystem = default!; + [Dependency] private readonly ISharedAdminLogManager _adminLogger = default!; + [Dependency] private readonly INetManager _netManager = default!; + + public override void Initialize() + { + base.Initialize(); + + SubscribeLocalEvent(AfterInteractOn); + SubscribeLocalEvent>(OnUtilityVerb); + // Bound UI subscriptions + SubscribeLocalEvent(OnHandLabelerLabelChanged); + SubscribeLocalEvent(OnGetState); + SubscribeLocalEvent(OnHandleState); + } + + private void OnGetState(Entity ent, ref ComponentGetState args) + { + args.State = new HandLabelerComponentState(ent.Comp.AssignedLabel) + { + MaxLabelChars = ent.Comp.MaxLabelChars, + }; + } + + private void OnHandleState(Entity ent, ref ComponentHandleState args) + { + if (args.Current is not HandLabelerComponentState state) + return; + + ent.Comp.MaxLabelChars = state.MaxLabelChars; + + if (ent.Comp.AssignedLabel == state.AssignedLabel) + return; + + ent.Comp.AssignedLabel = state.AssignedLabel; + UpdateUI(ent); + } + + protected virtual void UpdateUI(Entity ent) + { + } + + private void AddLabelTo(EntityUid uid, HandLabelerComponent? handLabeler, EntityUid target, out string? result) + { + if (!Resolve(uid, ref handLabeler)) + { + result = null; + return; + } + + if (handLabeler.AssignedLabel == string.Empty) + { + if (_netManager.IsServer) + _labelSystem.Label(target, null); + result = Loc.GetString("hand-labeler-successfully-removed"); + return; + } + if (_netManager.IsServer) + _labelSystem.Label(target, handLabeler.AssignedLabel); + result = Loc.GetString("hand-labeler-successfully-applied"); + } + + private void OnUtilityVerb(EntityUid uid, HandLabelerComponent handLabeler, GetVerbsEvent args) + { + if (args.Target is not { Valid: true } target || !handLabeler.Whitelist.IsValid(target) || !args.CanAccess) + return; + + var labelerText = handLabeler.AssignedLabel == string.Empty ? Loc.GetString("hand-labeler-remove-label-text") : Loc.GetString("hand-labeler-add-label-text"); + + var verb = new UtilityVerb() + { + Act = () => + { + Labeling(uid, target, args.User, handLabeler); + }, + Text = labelerText + }; + + args.Verbs.Add(verb); + } + + private void AfterInteractOn(EntityUid uid, HandLabelerComponent handLabeler, AfterInteractEvent args) + { + if (args.Target is not { Valid: true } target || !handLabeler.Whitelist.IsValid(target) || !args.CanReach) + return; + + Labeling(uid, target, args.User, handLabeler); + } + + private void Labeling(EntityUid uid, EntityUid target, EntityUid User, HandLabelerComponent handLabeler) + { + AddLabelTo(uid, handLabeler, target, out var result); + if (result == null) + return; + + _popupSystem.PopupClient(result, User, User); + + // Log labeling + _adminLogger.Add(LogType.Action, LogImpact.Low, + $"{ToPrettyString(User):user} labeled {ToPrettyString(target):target} with {ToPrettyString(uid):labeler}"); + } + + private void OnHandLabelerLabelChanged(EntityUid uid, HandLabelerComponent handLabeler, HandLabelerLabelChangedMessage args) + { + var label = args.Label.Trim(); + handLabeler.AssignedLabel = label[..Math.Min(handLabeler.MaxLabelChars, label.Length)]; + UpdateUI((uid, handLabeler)); + Dirty(uid, handLabeler); + + // Log label change + _adminLogger.Add(LogType.Action, LogImpact.Low, + $"{ToPrettyString(args.Actor):user} set {ToPrettyString(uid):labeler} to apply label \"{handLabeler.AssignedLabel}\""); + } +} diff --git a/Content.Shared/Labels/EntitySystems/SharedLabelSystem.cs b/Content.Shared/Labels/EntitySystems/SharedLabelSystem.cs index a8239e7867..1189bb46d0 100644 --- a/Content.Shared/Labels/EntitySystems/SharedLabelSystem.cs +++ b/Content.Shared/Labels/EntitySystems/SharedLabelSystem.cs @@ -13,6 +13,8 @@ public override void Initialize() SubscribeLocalEvent(OnExamine); } + public virtual void Label(EntityUid uid, string? text, MetaDataComponent? metadata = null, LabelComponent? label = null){} + private void OnExamine(EntityUid uid, LabelComponent? label, ExaminedEvent args) { if (!Resolve(uid, ref label)) diff --git a/Content.Shared/Labels/LabelEvents.cs b/Content.Shared/Labels/LabelEvents.cs index 9f00354af2..62e9c15c85 100644 --- a/Content.Shared/Labels/LabelEvents.cs +++ b/Content.Shared/Labels/LabelEvents.cs @@ -1,47 +1,27 @@ using Robust.Shared.Serialization; -namespace Content.Shared.Labels -{ - /// - /// Key representing which is currently open. - /// Useful when there are multiple UI for an object. Here it's future-proofing only. - /// - [Serializable, NetSerializable] - public enum HandLabelerUiKey - { - Key, - } - - [Serializable, NetSerializable] - public enum PaperLabelVisuals : byte - { - Layer, - HasLabel, - LabelType - } +namespace Content.Shared.Labels; - /// - /// Represents a state that can be sent to the client - /// - [Serializable, NetSerializable] - public sealed class HandLabelerBoundUserInterfaceState : BoundUserInterfaceState - { - public string CurrentLabel { get; } - - public HandLabelerBoundUserInterfaceState(string currentLabel) - { - CurrentLabel = currentLabel; - } - } +/// +/// Key representing which is currently open. +/// Useful when there are multiple UI for an object. Here it's future-proofing only. +/// +[Serializable, NetSerializable] +public enum HandLabelerUiKey +{ + Key, +} - [Serializable, NetSerializable] - public sealed class HandLabelerLabelChangedMessage : BoundUserInterfaceMessage - { - public string Label { get; } +[Serializable, NetSerializable] +public enum PaperLabelVisuals : byte +{ + Layer, + HasLabel, + LabelType +} - public HandLabelerLabelChangedMessage(string label) - { - Label = label; - } - } +[Serializable, NetSerializable] +public sealed class HandLabelerLabelChangedMessage(string label) : BoundUserInterfaceMessage +{ + public string Label { get; } = label; } diff --git a/Content.Shared/Language/Components/LanguageKnowledgeComponent.cs b/Content.Shared/Language/Components/LanguageKnowledgeComponent.cs deleted file mode 100644 index ddbdc742be..0000000000 --- a/Content.Shared/Language/Components/LanguageKnowledgeComponent.cs +++ /dev/null @@ -1,24 +0,0 @@ -using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype.List; - -namespace Content.Shared.Language.Components; - -// TODO: move to server side, it's never synchronized! - -/// -/// Stores data about entities' intrinsic language knowledge. -/// -[RegisterComponent] -public sealed partial class LanguageKnowledgeComponent : Component -{ - /// - /// List of languages this entity can speak without any external tools. - /// - [DataField("speaks", customTypeSerializer: typeof(PrototypeIdListSerializer), required: true)] - public List SpokenLanguages = new(); - - /// - /// List of languages this entity can understand without any external tools. - /// - [DataField("understands", customTypeSerializer: typeof(PrototypeIdListSerializer), required: true)] - public List UnderstoodLanguages = new(); -} diff --git a/Content.Shared/Language/Components/LanguageSpeakerComponent.cs b/Content.Shared/Language/Components/LanguageSpeakerComponent.cs index e8ebccb3dd..f026361cad 100644 --- a/Content.Shared/Language/Components/LanguageSpeakerComponent.cs +++ b/Content.Shared/Language/Components/LanguageSpeakerComponent.cs @@ -1,7 +1,9 @@ -namespace Content.Shared.Language; +using Robust.Shared.GameStates; +using Robust.Shared.Prototypes; +using Robust.Shared.Serialization; +using Robust.Shared.Serialization.TypeSerializers.Implementations; -// TODO: either move all language speaker-related components to server side, or make everything else shared. -// The current approach leads to confusion, as the server never informs the client of updates in these components. +namespace Content.Shared.Language.Components; /// /// Stores the current state of the languages the entity can speak and understand. @@ -10,23 +12,35 @@ namespace Content.Shared.Language; /// All fields of this component are populated during a DetermineEntityLanguagesEvent. /// They are not to be modified externally. /// -[RegisterComponent] +[RegisterComponent, NetworkedComponent] public sealed partial class LanguageSpeakerComponent : Component { + public override bool SendOnlyToOwner => true; + /// /// The current language the entity uses when speaking. /// Other listeners will hear the entity speak in this language. /// [DataField] - public string CurrentLanguage = ""; // The language system will override it on init + public string CurrentLanguage = ""; // The language system will override it on mapinit /// /// List of languages this entity can speak at the current moment. /// - public List SpokenLanguages = []; + [DataField] + public List> SpokenLanguages = []; /// /// List of languages this entity can understand at the current moment. /// - public List UnderstoodLanguages = []; + [DataField] + public List> UnderstoodLanguages = []; + + [Serializable, NetSerializable] + public sealed class State : ComponentState + { + public string CurrentLanguage = default!; + public List> SpokenLanguages = default!; + public List> UnderstoodLanguages = default!; + } } diff --git a/Content.Shared/Language/Components/Translators/BaseTranslatorComponent.cs b/Content.Shared/Language/Components/Translators/BaseTranslatorComponent.cs index 072480031d..8bd1f6be48 100644 --- a/Content.Shared/Language/Components/Translators/BaseTranslatorComponent.cs +++ b/Content.Shared/Language/Components/Translators/BaseTranslatorComponent.cs @@ -1,3 +1,4 @@ +using Robust.Shared.Prototypes; using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype.List; namespace Content.Shared.Language.Components.Translators; @@ -7,21 +8,21 @@ public abstract partial class BaseTranslatorComponent : Component /// /// The list of additional languages this translator allows the wielder to speak. /// - [DataField("spoken", customTypeSerializer: typeof(PrototypeIdListSerializer))] - public List SpokenLanguages = new(); + [DataField("spoken")] + public List> SpokenLanguages = new(); /// /// The list of additional languages this translator allows the wielder to understand. /// - [DataField("understood", customTypeSerializer: typeof(PrototypeIdListSerializer))] - public List UnderstoodLanguages = new(); + [DataField("understood")] + public List> UnderstoodLanguages = new(); /// /// The languages the wielding MUST know in order for this translator to have effect. /// The field [RequiresAllLanguages] indicates whether all of them are required, or just one. /// - [DataField("requires", customTypeSerializer: typeof(PrototypeIdListSerializer))] - public List RequiredLanguages = new(); + [DataField("requires")] + public List> RequiredLanguages = new(); /// /// If true, the wielder must understand all languages in [RequiredLanguages] to speak [SpokenLanguages], @@ -30,9 +31,8 @@ public abstract partial class BaseTranslatorComponent : Component /// Otherwise, at least one language must be known (or the list must be empty). /// [DataField("requiresAll")] - [ViewVariables(VVAccess.ReadWrite)] public bool RequiresAllLanguages = false; - [DataField("enabled"), ViewVariables(VVAccess.ReadWrite)] + [DataField("enabled")] public bool Enabled = true; } diff --git a/Content.Shared/Language/Components/Translators/HandheldTranslatorComponent.cs b/Content.Shared/Language/Components/Translators/HandheldTranslatorComponent.cs index 7e3de0eca6..6b2f434fa7 100644 --- a/Content.Shared/Language/Components/Translators/HandheldTranslatorComponent.cs +++ b/Content.Shared/Language/Components/Translators/HandheldTranslatorComponent.cs @@ -4,7 +4,7 @@ namespace Content.Shared.Language.Components.Translators; /// A translator that must be held in a hand or a pocket of an entity in order ot have effect. /// [RegisterComponent] -public sealed partial class HandheldTranslatorComponent : Translators.BaseTranslatorComponent +public sealed partial class HandheldTranslatorComponent : BaseTranslatorComponent { /// /// Whether interacting with this translator toggles it on and off. diff --git a/Content.Shared/Language/Components/UniversalLanguageSpeakerComponent.cs b/Content.Shared/Language/Components/UniversalLanguageSpeakerComponent.cs deleted file mode 100644 index 6f5ad1178b..0000000000 --- a/Content.Shared/Language/Components/UniversalLanguageSpeakerComponent.cs +++ /dev/null @@ -1,11 +0,0 @@ -namespace Content.Shared.Language.Components; - -// -// Signifies that this entity can speak and understand any language. -// Applies to such entities as ghosts. -// -[RegisterComponent] -public sealed partial class UniversalLanguageSpeakerComponent : Component -{ - -} diff --git a/Content.Server/Language/DetermineEntityLanguagesEvent.cs b/Content.Shared/Language/Events/DetermineEntityLanguagesEvent.cs similarity index 77% rename from Content.Server/Language/DetermineEntityLanguagesEvent.cs rename to Content.Shared/Language/Events/DetermineEntityLanguagesEvent.cs index 8d6b868d07..a01e5613f8 100644 --- a/Content.Server/Language/DetermineEntityLanguagesEvent.cs +++ b/Content.Shared/Language/Events/DetermineEntityLanguagesEvent.cs @@ -1,6 +1,6 @@ -using Content.Shared.Language; +using Robust.Shared.Prototypes; -namespace Content.Server.Language; +namespace Content.Shared.Language.Events; /// /// Raised in order to determine the list of languages the entity can speak and understand at the given moment. @@ -13,13 +13,13 @@ public record struct DetermineEntityLanguagesEvent /// The list of all languages the entity may speak. /// By default, contains the languages this entity speaks intrinsically. /// - public HashSet SpokenLanguages = new(); + public HashSet> SpokenLanguages = new(); /// /// The list of all languages the entity may understand. /// By default, contains the languages this entity understands intrinsically. /// - public HashSet UnderstoodLanguages = new(); + public HashSet> UnderstoodLanguages = new(); public DetermineEntityLanguagesEvent() {} } diff --git a/Content.Shared/Language/Events/LanguagesUpdateEvent.cs b/Content.Shared/Language/Events/LanguagesUpdateEvent.cs new file mode 100644 index 0000000000..fa68bf5af6 --- /dev/null +++ b/Content.Shared/Language/Events/LanguagesUpdateEvent.cs @@ -0,0 +1,12 @@ +namespace Content.Shared.Language.Events; + +/// +/// Raised on an entity when its list of languages changes. +/// +/// +/// This is raised both on the server and on the client. +/// The client raises it broadcast after receiving a new language comp state from the server. +/// +public sealed class LanguagesUpdateEvent : EntityEventArgs +{ +} diff --git a/Content.Shared/Language/Events/LanguagesUpdatedMessage.cs b/Content.Shared/Language/Events/LanguagesUpdatedMessage.cs deleted file mode 100644 index 563f036df6..0000000000 --- a/Content.Shared/Language/Events/LanguagesUpdatedMessage.cs +++ /dev/null @@ -1,15 +0,0 @@ -using Robust.Shared.Serialization; - -namespace Content.Shared.Language.Events; - -/// -/// Sent to the client when its list of languages changes. -/// The client should in turn update its HUD and relevant systems. -/// -[Serializable, NetSerializable] -public sealed class LanguagesUpdatedMessage(string currentLanguage, List spoken, List understood) : EntityEventArgs -{ - public string CurrentLanguage = currentLanguage; - public List Spoken = spoken; - public List Understood = understood; -} diff --git a/Content.Shared/Language/Events/RequestLanguagesMessage.cs b/Content.Shared/Language/Events/RequestLanguagesMessage.cs deleted file mode 100644 index aead1f4cd1..0000000000 --- a/Content.Shared/Language/Events/RequestLanguagesMessage.cs +++ /dev/null @@ -1,10 +0,0 @@ -using Robust.Shared.Serialization; - -namespace Content.Shared.Language.Events; - -/// -/// Sent from the client to the server when it needs to learn the list of languages its entity knows. -/// This event should always be followed by a , unless the client doesn't have an entity. -/// -[Serializable, NetSerializable] -public sealed class RequestLanguagesMessage : EntityEventArgs; diff --git a/Content.Shared/Language/LanguagePrototype.cs b/Content.Shared/Language/LanguagePrototype.cs index d40a7b4068..2137e4e838 100644 --- a/Content.Shared/Language/LanguagePrototype.cs +++ b/Content.Shared/Language/LanguagePrototype.cs @@ -4,7 +4,7 @@ namespace Content.Shared.Language; [Prototype("language")] -public sealed class LanguagePrototype : IPrototype +public sealed partial class LanguagePrototype : IPrototype { [IdDataField] public string ID { get; private set; } = default!; diff --git a/Content.Shared/Language/Systems/SharedLanguageSystem.cs b/Content.Shared/Language/Systems/SharedLanguageSystem.cs index 0a03086ebe..86a58dc2a7 100644 --- a/Content.Shared/Language/Systems/SharedLanguageSystem.cs +++ b/Content.Shared/Language/Systems/SharedLanguageSystem.cs @@ -10,7 +10,7 @@ public abstract class SharedLanguageSystem : EntitySystem /// The language used as a fallback in cases where an entity suddenly becomes a language speaker (e.g. the usage of make-sentient) /// [ValidatePrototypeId] - public static readonly string FallbackLanguagePrototype = "GalacticCommon"; + public static readonly string FallbackLanguagePrototype = "TauCetiBasic"; /// /// The language whose speakers are assumed to understand and speak every language. Should never be added directly. @@ -31,9 +31,9 @@ public override void Initialize() Universal = _prototype.Index("Universal"); } - public LanguagePrototype? GetLanguagePrototype(string id) + public LanguagePrototype? GetLanguagePrototype(ProtoId id) { - _prototype.TryIndex(id, out var proto); + _prototype.TryIndex(id, out var proto); return proto; } @@ -43,8 +43,7 @@ public override void Initialize() public string ObfuscateSpeech(string message, LanguagePrototype language) { var builder = new StringBuilder(); - var method = language.Obfuscation; - method.Obfuscate(builder, message, this); + language.Obfuscation.Obfuscate(builder, message, this); return builder.ToString(); } diff --git a/Content.Shared/Light/Components/SharedExpendableLightComponent.cs b/Content.Shared/Light/Components/SharedExpendableLightComponent.cs index e40174ab78..001794880a 100644 --- a/Content.Shared/Light/Components/SharedExpendableLightComponent.cs +++ b/Content.Shared/Light/Components/SharedExpendableLightComponent.cs @@ -7,7 +7,6 @@ namespace Content.Shared.Light.Components; [NetworkedComponent] public abstract partial class SharedExpendableLightComponent : Component { - public static readonly AudioParams LoopedSoundParams = new(0, 1, 62.5f, 1, 1, true, 0.3f); [ViewVariables(VVAccess.ReadOnly)] public ExpendableLightState CurrentState { get; set; } diff --git a/Content.Shared/Light/Components/UnpoweredFlashlightComponent.cs b/Content.Shared/Light/Components/UnpoweredFlashlightComponent.cs index 1b0701edd2..2953a01ced 100644 --- a/Content.Shared/Light/Components/UnpoweredFlashlightComponent.cs +++ b/Content.Shared/Light/Components/UnpoweredFlashlightComponent.cs @@ -2,7 +2,6 @@ using Robust.Shared.Audio; using Robust.Shared.GameStates; using Robust.Shared.Prototypes; -using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype; namespace Content.Shared.Light.Components; @@ -17,7 +16,7 @@ public sealed partial class UnpoweredFlashlightComponent : Component public SoundSpecifier ToggleSound = new SoundPathSpecifier("/Audio/Items/flashlight_pda.ogg"); [DataField, AutoNetworkedField] - public bool LightOn = false; + public bool LightOn; [DataField] public EntProtoId ToggleAction = "ActionToggleLight"; diff --git a/Content.Shared/Light/EntitySystems/UnpoweredFlashlightSystem.cs b/Content.Shared/Light/EntitySystems/UnpoweredFlashlightSystem.cs new file mode 100644 index 0000000000..42e55bea55 --- /dev/null +++ b/Content.Shared/Light/EntitySystems/UnpoweredFlashlightSystem.cs @@ -0,0 +1,122 @@ +using Content.Shared.Actions; +using Content.Shared.Emag.Systems; +using Content.Shared.Light.Components; +using Content.Shared.Mind.Components; +using Content.Shared.Toggleable; +using Content.Shared.Verbs; +using Robust.Shared.Audio.Systems; +using Robust.Shared.Prototypes; +using Robust.Shared.Random; +using Robust.Shared.Utility; + +namespace Content.Shared.Light.EntitySystems; + +public sealed class UnpoweredFlashlightSystem : EntitySystem +{ + [Dependency] private readonly IPrototypeManager _prototypeManager = default!; + [Dependency] private readonly IRobustRandom _random = default!; + [Dependency] private readonly SharedActionsSystem _actionsSystem = default!; + [Dependency] private readonly ActionContainerSystem _actionContainer = default!; + [Dependency] private readonly SharedAppearanceSystem _appearance = default!; + [Dependency] private readonly SharedAudioSystem _audioSystem = default!; + [Dependency] private readonly SharedPointLightSystem _light = default!; + + public override void Initialize() + { + base.Initialize(); + + SubscribeLocalEvent>(AddToggleLightVerbs); + SubscribeLocalEvent(OnGetActions); + SubscribeLocalEvent(OnToggleAction); + SubscribeLocalEvent(OnMindAdded); + SubscribeLocalEvent(OnGotEmagged); + SubscribeLocalEvent(OnMapInit); + } + + private void OnMapInit(EntityUid uid, UnpoweredFlashlightComponent component, MapInitEvent args) + { + _actionContainer.EnsureAction(uid, ref component.ToggleActionEntity, component.ToggleAction); + Dirty(uid, component); + } + + private void OnToggleAction(EntityUid uid, UnpoweredFlashlightComponent component, ToggleActionEvent args) + { + if (args.Handled) + return; + + TryToggleLight((uid, component), args.Performer); + args.Handled = true; + } + + private void OnGetActions(EntityUid uid, UnpoweredFlashlightComponent component, GetItemActionsEvent args) + { + args.AddAction(component.ToggleActionEntity); + } + + private void AddToggleLightVerbs(EntityUid uid, UnpoweredFlashlightComponent component, GetVerbsEvent args) + { + if (!args.CanAccess || !args.CanInteract) + return; + + ActivationVerb verb = new() + { + Text = Loc.GetString("toggle-flashlight-verb-get-data-text"), + Icon = new SpriteSpecifier.Texture(new ("/Textures/Interface/VerbIcons/light.svg.192dpi.png")), + Act = () => TryToggleLight((uid, component), args.User), + Priority = -1 // For things like PDA's, Open-UI and other verbs that should be higher priority. + }; + + args.Verbs.Add(verb); + } + + private void OnMindAdded(EntityUid uid, UnpoweredFlashlightComponent component, MindAddedMessage args) + { + _actionsSystem.AddAction(uid, ref component.ToggleActionEntity, component.ToggleAction); + } + + private void OnGotEmagged(EntityUid uid, UnpoweredFlashlightComponent component, ref GotEmaggedEvent args) + { + if (!_light.TryGetLight(uid, out var light)) + return; + + if (_prototypeManager.TryIndex(component.EmaggedColorsPrototype, out var possibleColors)) + { + var pick = _random.Pick(possibleColors.Colors.Values); + _light.SetColor(uid, pick, light); + } + + args.Repeatable = true; + args.Handled = true; + } + + public void TryToggleLight(Entity ent, EntityUid? user = null, bool quiet = false) + { + if (!Resolve(ent, ref ent.Comp, false)) + return; + + SetLight(ent, !ent.Comp.LightOn, user, quiet); + } + + public void SetLight(Entity ent, bool value, EntityUid? user = null, bool quiet = false) + { + if (!Resolve(ent, ref ent.Comp)) + return; + + if (ent.Comp.LightOn == value) + return; + + if (!_light.TryGetLight(ent, out var light)) + return; + + Dirty(ent); + ent.Comp.LightOn = value; + _light.SetEnabled(ent, value, light); + _appearance.SetData(ent, UnpoweredFlashlightVisuals.LightOn, value); + + if (!quiet) + _audioSystem.PlayPredicted(ent.Comp.ToggleSound, ent, user); + + _actionsSystem.SetToggled(ent.Comp.ToggleActionEntity, value); + RaiseLocalEvent(ent, new LightToggleEvent(value)); + } +} diff --git a/Content.Shared/Light/LightToggleEvent.cs b/Content.Shared/Light/LightToggleEvent.cs new file mode 100644 index 0000000000..ac48c09419 --- /dev/null +++ b/Content.Shared/Light/LightToggleEvent.cs @@ -0,0 +1,6 @@ +namespace Content.Shared.Light; + +public sealed class LightToggleEvent(bool isOn) : EntityEventArgs +{ + public bool IsOn = isOn; +} diff --git a/Content.Shared/Localizations/ContentLocalizationManager.cs b/Content.Shared/Localizations/ContentLocalizationManager.cs index 4459613bff..1bc5348f2b 100644 --- a/Content.Shared/Localizations/ContentLocalizationManager.cs +++ b/Content.Shared/Localizations/ContentLocalizationManager.cs @@ -39,7 +39,8 @@ public void Initialize() var fallbackCulture = new CultureInfo(FallbackCulture); _loc.LoadCulture(culture); - _loc.LoadCulture(fallbackCulture); + if (_culture != FallbackCulture) + _loc.LoadCulture(fallbackCulture); _loc.SetFallbackCluture(fallbackCulture); _loc.AddFunction(culture, "PRESSURE", FormatPressure); @@ -92,7 +93,7 @@ private ILocValue FormatNaturalPercent(LocArgs args) var maxDecimals = (int)Math.Floor(((LocValueNumber) args.Args[1]).Value); var formatter = (NumberFormatInfo)NumberFormatInfo.GetInstance(CultureInfo.GetCultureInfo(_culture)).Clone(); formatter.NumberDecimalDigits = maxDecimals; - return new LocValueString(string.Format(formatter, "{0:N}", number).TrimEnd('0').TrimEnd('.') + "%"); + return new LocValueString(string.Format(formatter, "{0:N}", number).TrimEnd('0').TrimEnd(char.Parse(formatter.NumberDecimalSeparator)) + "%"); } private ILocValue FormatNaturalFixed(LocArgs args) @@ -101,7 +102,7 @@ private ILocValue FormatNaturalFixed(LocArgs args) var maxDecimals = (int)Math.Floor(((LocValueNumber) args.Args[1]).Value); var formatter = (NumberFormatInfo)NumberFormatInfo.GetInstance(CultureInfo.GetCultureInfo(_culture)).Clone(); formatter.NumberDecimalDigits = maxDecimals; - return new LocValueString(string.Format(formatter, "{0:N}", number).TrimEnd('0').TrimEnd('.')); + return new LocValueString(string.Format(formatter, "{0:N}", number).TrimEnd('0').TrimEnd(char.Parse(formatter.NumberDecimalSeparator))); } private static readonly Regex PluralEsRule = new("^.*(s|sh|ch|x|z)$"); diff --git a/Content.Shared/Lock/LockComponent.cs b/Content.Shared/Lock/LockComponent.cs index 9606540a74..e1d47365b7 100644 --- a/Content.Shared/Lock/LockComponent.cs +++ b/Content.Shared/Lock/LockComponent.cs @@ -14,88 +14,81 @@ namespace Content.Shared.Lock; public sealed partial class LockComponent : Component { /// - /// Whether or not the lock is locked. + /// Whether or not the lock is locked. /// - [DataField("locked"), ViewVariables(VVAccess.ReadWrite)] - [AutoNetworkedField] - public bool Locked = true; + [DataField, AutoNetworkedField] + public bool Locked = true; /// - /// Whether or not the lock is toggled by simply clicking. + /// Whether or not the lock is toggled by simply clicking. /// - [DataField("lockOnClick"), ViewVariables(VVAccess.ReadWrite)] - [AutoNetworkedField] + [DataField, AutoNetworkedField] public bool LockOnClick; /// - /// Whether or not the lock is unlocked by simply clicking. + /// Whether or not the lock is unlocked by simply clicking. /// - [DataField("unlockOnClick"), ViewVariables(VVAccess.ReadWrite)] - [AutoNetworkedField] + [DataField, AutoNetworkedField] public bool UnlockOnClick = true; - /// - /// The sound played when unlocked. + /// The sound played when unlocked. /// - [DataField("unlockingSound"), ViewVariables(VVAccess.ReadWrite)] + [DataField] public SoundSpecifier UnlockSound = new SoundPathSpecifier("/Audio/Machines/door_lock_off.ogg") { Params = AudioParams.Default.WithVolume(-5f), }; /// - /// The sound played when locked. + /// The sound played when locked. /// - [DataField("lockingSound"), ViewVariables(VVAccess.ReadWrite)] + [DataField] public SoundSpecifier LockSound = new SoundPathSpecifier("/Audio/Machines/door_lock_on.ogg") { Params = AudioParams.Default.WithVolume(-5f) }; /// - /// Whether or not an emag disables it. + /// Whether or not an emag disables it. /// - [DataField("breakOnEmag")] - [AutoNetworkedField] + [DataField, AutoNetworkedField] public bool BreakOnEmag = true; /// - /// Amount of do-after time needed to lock the entity. + /// Amount of do-after time needed to lock the entity. /// /// - /// If set to zero, no do-after will be used. + /// If set to zero, no do-after will be used. /// - [DataField] - [AutoNetworkedField] + [DataField, AutoNetworkedField] public TimeSpan LockTime; /// - /// Amount of do-after time needed to unlock the entity. + /// Amount of do-after time needed to unlock the entity. /// /// - /// If set to zero, no do-after will be used. + /// If set to zero, no do-after will be used. /// - [DataField] - [AutoNetworkedField] + [DataField, AutoNetworkedField] public TimeSpan UnlockTime; } /// -/// Event raised on the lock when a toggle is attempted. -/// Can be cancelled to prevent it. +/// Event raised on the lock when a toggle is attempted. +/// Can be cancelled to prevent it. /// [ByRefEvent] public record struct LockToggleAttemptEvent(EntityUid User, bool Silent = false, bool Cancelled = false); /// -/// Event raised on a lock after it has been toggled. +/// Event raised on a lock after it has been toggled. /// [ByRefEvent] public readonly record struct LockToggledEvent(bool Locked); /// -/// Used to lock a lockable entity that has a lock time configured. +/// Used to lock a lockable entity that has a lock time configured. /// /// /// @@ -109,7 +102,7 @@ public override DoAfterEvent Clone() } /// -/// Used to unlock a lockable entity that has an unlock time configured. +/// Used to unlock a lockable entity that has an unlock time configured. /// /// /// diff --git a/Content.Shared/Lock/LockSystem.cs b/Content.Shared/Lock/LockSystem.cs index b74f17b152..9296a354d2 100644 --- a/Content.Shared/Lock/LockSystem.cs +++ b/Content.Shared/Lock/LockSystem.cs @@ -54,19 +54,18 @@ private void OnStartup(EntityUid uid, LockComponent lockComp, ComponentStartup a private void OnActivated(EntityUid uid, LockComponent lockComp, ActivateInWorldEvent args) { - if (args.Handled) return; // Only attempt an unlock by default on Activate - if (lockComp.Locked) + if (lockComp.Locked && lockComp.UnlockOnClick) { if (!lockComp.UnlockOnClick) return; TryUnlock(uid, args.User, lockComp); args.Handled = true; } - else if (lockComp.LockOnClick) + else if (!lockComp.Locked && lockComp.LockOnClick) { TryLock(uid, args.User, lockComp); args.Handled = true; @@ -204,6 +203,18 @@ public bool TryUnlock(EntityUid uid, EntityUid user, LockComponent? lockComp = n return true; } + /// + /// Returns true if the entity is locked. + /// Entities with no lock component are considered unlocked. + /// + public bool IsLocked(Entity ent) + { + if (!Resolve(ent, ref ent.Comp, false)) + return false; + + return ent.Comp.Locked; + } + /// /// Raises an event for other components to check whether or not /// the entity can be locked in its current state. diff --git a/Content.Shared/Magic/Components/MagicComponent.cs b/Content.Shared/Magic/Components/MagicComponent.cs new file mode 100644 index 0000000000..bcc11063b7 --- /dev/null +++ b/Content.Shared/Magic/Components/MagicComponent.cs @@ -0,0 +1,39 @@ +using Robust.Shared.GameStates; + +namespace Content.Shared.Magic.Components; + +// TODO: Rename to MagicActionComponent or MagicRequirementsComponent +[RegisterComponent, NetworkedComponent, Access(typeof(SharedMagicSystem))] +public sealed partial class MagicComponent : Component +{ + // TODO: Split into different components? + // This could be the MagicRequirementsComp - which just is requirements for the spell + // Magic comp could be on the actual entities itself + // Could handle lifetime, ignore caster, etc? + // Magic caster comp would be on the caster, used for what I'm not sure + + // TODO: Do After here or in actions + + // TODO: Spell requirements + // A list of requirements to cast the spell + // Hands + // Any item in hand + // Spell takes up an inhand slot + // May be an action toggle or something + + // TODO: List requirements in action desc + /// + /// Does this spell require Wizard Robes & Hat? + /// + [DataField, ViewVariables(VVAccess.ReadWrite)] + public bool RequiresClothes; + + /// + /// Does this spell require the user to speak? + /// + [DataField, ViewVariables(VVAccess.ReadWrite)] + public bool RequiresSpeech; + + // TODO: FreeHand - should check if toggleable action + // Check which hand is free to toggle action in +} diff --git a/Content.Shared/Magic/Components/SpellbookComponent.cs b/Content.Shared/Magic/Components/SpellbookComponent.cs new file mode 100644 index 0000000000..f1b307c245 --- /dev/null +++ b/Content.Shared/Magic/Components/SpellbookComponent.cs @@ -0,0 +1,36 @@ +using Robust.Shared.Prototypes; + +namespace Content.Shared.Magic.Components; + +/// +/// Spellbooks can grant one or more spells to the user. If marked as it will teach +/// the performer the spells and wipe the book. +/// Default behavior requires the book to be held in hand +/// +[RegisterComponent, Access(typeof(SpellbookSystem))] +public sealed partial class SpellbookComponent : Component +{ + /// + /// List of spells that this book has. This is a combination of the WorldSpells, EntitySpells, and InstantSpells. + /// + [ViewVariables] + public readonly List Spells = new(); + + /// + /// The three fields below is just used for initialization. + /// + [DataField] + [ViewVariables(VVAccess.ReadWrite)] + public Dictionary SpellActions = new(); + + [DataField] + [ViewVariables(VVAccess.ReadWrite)] + public float LearnTime = .75f; + + /// + /// If true, the spell action stays even after the book is removed + /// + [DataField] + [ViewVariables(VVAccess.ReadWrite)] + public bool LearnPermanently; +} diff --git a/Content.Shared/Magic/Components/WizardClothesComponent.cs b/Content.Shared/Magic/Components/WizardClothesComponent.cs new file mode 100644 index 0000000000..063cf56c33 --- /dev/null +++ b/Content.Shared/Magic/Components/WizardClothesComponent.cs @@ -0,0 +1,10 @@ +using Robust.Shared.GameStates; + +namespace Content.Shared.Magic.Components; + +/// +/// The checks this if a spell requires wizard clothes +/// +[RegisterComponent, NetworkedComponent] +[Access(typeof(SharedMagicSystem))] +public sealed partial class WizardClothesComponent : Component; diff --git a/Content.Shared/Magic/Events/BeforeCastSpellEvent.cs b/Content.Shared/Magic/Events/BeforeCastSpellEvent.cs new file mode 100644 index 0000000000..afb5c1f090 --- /dev/null +++ b/Content.Shared/Magic/Events/BeforeCastSpellEvent.cs @@ -0,0 +1,12 @@ +namespace Content.Shared.Magic.Events; + +[ByRefEvent] +public struct BeforeCastSpellEvent(EntityUid performer) +{ + /// + /// The Performer of the event, to check if they meet the requirements. + /// + public EntityUid Performer = performer; + + public bool Cancelled; +} diff --git a/Content.Shared/Magic/Events/ChargeSpellEvent.cs b/Content.Shared/Magic/Events/ChargeSpellEvent.cs new file mode 100644 index 0000000000..8898761ec2 --- /dev/null +++ b/Content.Shared/Magic/Events/ChargeSpellEvent.cs @@ -0,0 +1,18 @@ +using Content.Shared.Actions; + +namespace Content.Shared.Magic.Events; + +/// +/// Adds provided Charge to the held wand +/// +public sealed partial class ChargeSpellEvent : InstantActionEvent, ISpeakSpell +{ + [DataField(required: true)] + public int Charge; + + [DataField] + public string WandTag = "WizardWand"; + + [DataField] + public string? Speech { get; private set; } +} diff --git a/Content.Shared/Magic/Events/InstantSpawnSpellEvent.cs b/Content.Shared/Magic/Events/InstantSpawnSpellEvent.cs index ef8d689862..1405b15827 100644 --- a/Content.Shared/Magic/Events/InstantSpawnSpellEvent.cs +++ b/Content.Shared/Magic/Events/InstantSpawnSpellEvent.cs @@ -1,6 +1,5 @@ using Content.Shared.Actions; using Robust.Shared.Prototypes; -using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype; namespace Content.Shared.Magic.Events; @@ -9,17 +8,18 @@ public sealed partial class InstantSpawnSpellEvent : InstantActionEvent, ISpeakS /// /// What entity should be spawned. /// - [DataField("prototype", required: true, customTypeSerializer: typeof(PrototypeIdSerializer))] - public string Prototype = default!; + [DataField(required: true)] + public EntProtoId Prototype; - [DataField("preventCollide")] + [DataField] public bool PreventCollideWithCaster = true; - [DataField("speech")] + [DataField] public string? Speech { get; private set; } /// /// Gets the targeted spawn positons; may lead to multiple entities being spawned. /// - [DataField("posData")] public MagicSpawnData Pos = new TargetCasterPos(); + [DataField] + public MagicInstantSpawnData PosData = new TargetCasterPos(); } diff --git a/Content.Shared/Magic/Events/KnockSpellEvent.cs b/Content.Shared/Magic/Events/KnockSpellEvent.cs index a3b0be5575..24a1700d21 100644 --- a/Content.Shared/Magic/Events/KnockSpellEvent.cs +++ b/Content.Shared/Magic/Events/KnockSpellEvent.cs @@ -1,5 +1,4 @@ using Content.Shared.Actions; -using Robust.Shared.Audio; namespace Content.Shared.Magic.Events; @@ -7,20 +6,12 @@ public sealed partial class KnockSpellEvent : InstantActionEvent, ISpeakSpell { /// /// The range this spell opens doors in - /// 4f is the default + /// 10f is the default + /// Should be able to open all doors/lockers in visible sight /// - [DataField("range")] - public float Range = 4f; + [DataField] + public float Range = 10f; - [DataField("knockSound")] - public SoundSpecifier KnockSound = new SoundPathSpecifier("/Audio/Magic/knock.ogg"); - - /// - /// Volume control for the spell. - /// - [DataField("knockVolume")] - public float KnockVolume = 5f; - - [DataField("speech")] + [DataField] public string? Speech { get; private set; } } diff --git a/Content.Shared/Magic/Events/ProjectileSpellEvent.cs b/Content.Shared/Magic/Events/ProjectileSpellEvent.cs index 4496625769..336ea03346 100644 --- a/Content.Shared/Magic/Events/ProjectileSpellEvent.cs +++ b/Content.Shared/Magic/Events/ProjectileSpellEvent.cs @@ -1,6 +1,5 @@ using Content.Shared.Actions; using Robust.Shared.Prototypes; -using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype; namespace Content.Shared.Magic.Events; @@ -9,14 +8,9 @@ public sealed partial class ProjectileSpellEvent : WorldTargetActionEvent, ISpea /// /// What entity should be spawned. /// - [DataField("prototype", required: true, customTypeSerializer: typeof(PrototypeIdSerializer))] - public string Prototype = default!; + [DataField(required: true)] + public EntProtoId Prototype; - /// - /// Gets the targeted spawn positions; may lead to multiple entities being spawned. - /// - [DataField("posData")] public MagicSpawnData Pos = new TargetCasterPos(); - - [DataField("speech")] + [DataField] public string? Speech { get; private set; } } diff --git a/Content.Shared/Magic/Events/SmiteSpellEvent.cs b/Content.Shared/Magic/Events/SmiteSpellEvent.cs index 08ec63c05e..74ca116ad5 100644 --- a/Content.Shared/Magic/Events/SmiteSpellEvent.cs +++ b/Content.Shared/Magic/Events/SmiteSpellEvent.cs @@ -4,12 +4,13 @@ namespace Content.Shared.Magic.Events; public sealed partial class SmiteSpellEvent : EntityTargetActionEvent, ISpeakSpell { + // TODO: Make part of gib method /// - /// Should this smite delete all parts/mechanisms gibbed except for the brain? + /// Should this smite delete all parts/mechanisms gibbed except for the brain? /// - [DataField("deleteNonBrainParts")] + [DataField] public bool DeleteNonBrainParts = true; - [DataField("speech")] + [DataField] public string? Speech { get; private set; } } diff --git a/Content.Shared/Magic/Events/SpeakSpellEvent.cs b/Content.Shared/Magic/Events/SpeakSpellEvent.cs new file mode 100644 index 0000000000..1b3f7af63c --- /dev/null +++ b/Content.Shared/Magic/Events/SpeakSpellEvent.cs @@ -0,0 +1,8 @@ +namespace Content.Shared.Magic.Events; + +[ByRefEvent] +public readonly struct SpeakSpellEvent(EntityUid performer, string speech) +{ + public readonly EntityUid Performer = performer; + public readonly string Speech = speech; +} diff --git a/Content.Shared/Magic/Events/TeleportSpellEvent.cs b/Content.Shared/Magic/Events/TeleportSpellEvent.cs index b24f6ec72f..525c1e5105 100644 --- a/Content.Shared/Magic/Events/TeleportSpellEvent.cs +++ b/Content.Shared/Magic/Events/TeleportSpellEvent.cs @@ -1,19 +1,19 @@ using Content.Shared.Actions; -using Robust.Shared.Audio; namespace Content.Shared.Magic.Events; +// TODO: Can probably just be an entity or something public sealed partial class TeleportSpellEvent : WorldTargetActionEvent, ISpeakSpell { - [DataField("blinkSound")] - public SoundSpecifier BlinkSound = new SoundPathSpecifier("/Audio/Magic/blink.ogg"); - - [DataField("speech")] + [DataField] public string? Speech { get; private set; } + // TODO: Move to magic component + // TODO: Maybe not since sound specifier is a thing + // Keep here to remind what the volume was set as /// /// Volume control for the spell. /// - [DataField("blinkVolume")] + [DataField] public float BlinkVolume = 5f; } diff --git a/Content.Shared/Magic/Events/WorldSpawnSpellEvent.cs b/Content.Shared/Magic/Events/WorldSpawnSpellEvent.cs index 4355cab842..2f50c67b3e 100644 --- a/Content.Shared/Magic/Events/WorldSpawnSpellEvent.cs +++ b/Content.Shared/Magic/Events/WorldSpawnSpellEvent.cs @@ -4,29 +4,31 @@ namespace Content.Shared.Magic.Events; +// TODO: This class needs combining with InstantSpawnSpellEvent + public sealed partial class WorldSpawnSpellEvent : WorldTargetActionEvent, ISpeakSpell { - // TODO:This class needs combining with InstantSpawnSpellEvent - /// /// The list of prototypes this spell will spawn /// - [DataField("prototypes")] - public List Contents = new(); + [DataField] + public List Prototypes = new(); // TODO: This offset is liable for deprecation. + // TODO: Target tile via code instead? /// /// The offset the prototypes will spawn in on relative to the one prior. /// Set to 0,0 to have them spawn on the same tile. /// - [DataField("offset")] + [DataField] public Vector2 Offset; /// /// Lifetime to set for the entities to self delete /// - [DataField("lifetime")] public float? Lifetime; + [DataField] + public float? Lifetime; - [DataField("speech")] + [DataField] public string? Speech { get; private set; } } diff --git a/Content.Shared/Magic/MagicInstantSpawnData.cs b/Content.Shared/Magic/MagicInstantSpawnData.cs new file mode 100644 index 0000000000..5dcc1453ed --- /dev/null +++ b/Content.Shared/Magic/MagicInstantSpawnData.cs @@ -0,0 +1,25 @@ +namespace Content.Shared.Magic; + +// TODO: If still needed, move to magic component +[ImplicitDataDefinitionForInheritors] +public abstract partial class MagicInstantSpawnData; + +/// +/// Spawns underneath caster. +/// +public sealed partial class TargetCasterPos : MagicInstantSpawnData; + +/// +/// Spawns 3 tiles wide in front of the caster. +/// +public sealed partial class TargetInFront : MagicInstantSpawnData +{ + [DataField] + public int Width = 3; +} + + +/// +/// Spawns 1 tile in front of caster +/// +public sealed partial class TargetInFrontSingle : MagicInstantSpawnData; diff --git a/Content.Shared/Magic/MagicSpawnData.cs b/Content.Shared/Magic/MagicSpawnData.cs deleted file mode 100644 index cd96d4ad76..0000000000 --- a/Content.Shared/Magic/MagicSpawnData.cs +++ /dev/null @@ -1,20 +0,0 @@ -namespace Content.Shared.Magic; - -[ImplicitDataDefinitionForInheritors] -public abstract partial class MagicSpawnData -{ - -} - -/// -/// Spawns 1 at the caster's feet. -/// -public sealed partial class TargetCasterPos : MagicSpawnData {} - -/// -/// Targets the 3 tiles in front of the caster. -/// -public sealed partial class TargetInFront : MagicSpawnData -{ - [DataField("width")] public int Width = 3; -} diff --git a/Content.Shared/Magic/SharedMagicSystem.cs b/Content.Shared/Magic/SharedMagicSystem.cs new file mode 100644 index 0000000000..cc7a297aa4 --- /dev/null +++ b/Content.Shared/Magic/SharedMagicSystem.cs @@ -0,0 +1,519 @@ +using System.Numerics; +using Content.Shared.Actions; +using Content.Shared.Body.Components; +using Content.Shared.Body.Systems; +using Content.Shared.Coordinates.Helpers; +using Content.Shared.Doors.Components; +using Content.Shared.Doors.Systems; +using Content.Shared.Hands.Components; +using Content.Shared.Hands.EntitySystems; +using Content.Shared.Interaction; +using Content.Shared.Inventory; +using Content.Shared.Lock; +using Content.Shared.Magic.Components; +using Content.Shared.Magic.Events; +using Content.Shared.Maps; +using Content.Shared.Physics; +using Content.Shared.Popups; +using Content.Shared.Speech.Muting; +using Content.Shared.Storage; +using Content.Shared.Tag; +using Content.Shared.Weapons.Ranged.Components; +using Content.Shared.Weapons.Ranged.Systems; +using Robust.Shared.Map; +using Robust.Shared.Map.Components; +using Robust.Shared.Network; +using Robust.Shared.Physics.Systems; +using Robust.Shared.Random; +using Robust.Shared.Serialization.Manager; +using Robust.Shared.Spawners; + +namespace Content.Shared.Magic; + +/// +/// Handles learning and using spells (actions) +/// +public abstract class SharedMagicSystem : EntitySystem +{ + [Dependency] private readonly ISerializationManager _seriMan = default!; + [Dependency] private readonly IComponentFactory _compFact = default!; + [Dependency] private readonly IMapManager _mapManager = default!; + [Dependency] private readonly SharedMapSystem _mapSystem = default!; + [Dependency] private readonly IRobustRandom _random = default!; + [Dependency] private readonly SharedGunSystem _gunSystem = default!; + [Dependency] private readonly SharedPhysicsSystem _physics = default!; + [Dependency] private readonly SharedTransformSystem _transform = default!; + [Dependency] private readonly INetManager _net = default!; + [Dependency] private readonly SharedBodySystem _body = default!; + [Dependency] private readonly EntityLookupSystem _lookup = default!; + [Dependency] private readonly SharedDoorSystem _door = default!; + [Dependency] private readonly InventorySystem _inventory = default!; + [Dependency] private readonly SharedPopupSystem _popup = default!; + [Dependency] private readonly SharedInteractionSystem _interaction = default!; + [Dependency] private readonly LockSystem _lock = default!; + [Dependency] private readonly SharedHandsSystem _hands = default!; + [Dependency] private readonly TagSystem _tag = default!; + + public override void Initialize() + { + base.Initialize(); + SubscribeLocalEvent(OnBeforeCastSpell); + + SubscribeLocalEvent(OnInstantSpawn); + SubscribeLocalEvent(OnTeleportSpell); + SubscribeLocalEvent(OnWorldSpawn); + SubscribeLocalEvent(OnProjectileSpell); + SubscribeLocalEvent(OnChangeComponentsSpell); + SubscribeLocalEvent(OnSmiteSpell); + SubscribeLocalEvent(OnKnockSpell); + SubscribeLocalEvent(OnChargeSpell); + + // Spell wishlist + // A wishlish of spells that I'd like to implement or planning on implementing in a future PR + + // TODO: InstantDoAfterSpell and WorldDoafterSpell + // Both would be an action that take in an event, that passes an event to trigger once the doafter is done + // This would be three events: + // 1 - Event that triggers from the action that starts the doafter + // 2 - The doafter event itself, which passes the event with it + // 3 - The event to trigger once the do-after finishes + + // TODO: Inanimate objects to life ECS + // AI sentience + + // TODO: Flesh2Stone + // Entity Target spell + // Synergy with Inanimate object to life (detects player and allows player to move around) + + // TODO: Lightning Spell + // Should just fire lightning, try to prevent arc back to caster + + // TODO: Magic Missile (homing projectile ecs) + // Instant action, target any player (except self) on screen + + // TODO: Random projectile ECS for magic-carp, wand of magic + + // TODO: Recall Spell + // mark any item in hand to recall + // ItemRecallComponent + // Event adds the component if it doesn't exist and the performer isn't stored in the comp + // 2nd firing of the event checks to see if the recall comp has this uid, and if it does it calls it + // if no free hands, summon at feet + // if item deleted, clear stored item + + // TODO: Jaunt (should be its own ECS) + // Instant action + // When clicked, disappear/reappear (goes to paused map) + // option to restrict to tiles + // option for requiring entry/exit (blood jaunt) + // speed option + + // TODO: Summon Events + // List of wizard events to add into the event pool that frequently activate + // floor is lava + // change places + // ECS that when triggered, will periodically trigger a random GameRule + // Would need a controller/controller entity? + + // TODO: Summon Guns + // Summon a random gun at peoples feet + // Get every alive player (not in cryo, not a simplemob) + // TODO: After Antag Rework - Rare chance of giving gun collector status to people + + // TODO: Summon Magic + // Summon a random magic wand at peoples feet + // Get every alive player (not in cryo, not a simplemob) + // TODO: After Antag Rework - Rare chance of giving magic collector status to people + + // TODO: Bottle of Blood + // Summons Slaughter Demon + // TODO: Slaughter Demon + // Also see Jaunt + + // TODO: Field Spells + // Should be able to specify a grid of tiles (3x3 for example) that it effects + // Timed despawn - so it doesn't last forever + // Ignore caster - for spells that shouldn't effect the caster (ie if timestop should effect the caster) + + // TODO: Touch toggle spell + // 1 - When toggled on, show in hand + // 2 - Block hand when toggled on + // - Require free hand + // 3 - use spell event when toggled & click + } + + private void OnBeforeCastSpell(Entity ent, ref BeforeCastSpellEvent args) + { + var comp = ent.Comp; + var hasReqs = true; + + if (comp.RequiresClothes) + { + var enumerator = _inventory.GetSlotEnumerator(args.Performer, SlotFlags.OUTERCLOTHING | SlotFlags.HEAD); + while (enumerator.MoveNext(out var containerSlot)) + { + if (containerSlot.ContainedEntity is { } item) + hasReqs = HasComp(item); + else + hasReqs = false; + + if (!hasReqs) + break; + } + } + + if (comp.RequiresSpeech && HasComp(args.Performer)) + hasReqs = false; + + if (hasReqs) + return; + + args.Cancelled = true; + _popup.PopupClient(Loc.GetString("spell-requirements-failed"), args.Performer, args.Performer); + + // TODO: Pre-cast do after, either here or in SharedActionsSystem + } + + private bool PassesSpellPrerequisites(EntityUid spell, EntityUid performer) + { + var ev = new BeforeCastSpellEvent(performer); + RaiseLocalEvent(spell, ref ev); + return !ev.Cancelled; + } + + #region Spells + #region Instant Spawn Spells + /// + /// Handles the instant action (i.e. on the caster) attempting to spawn an entity. + /// + private void OnInstantSpawn(InstantSpawnSpellEvent args) + { + if (args.Handled || !PassesSpellPrerequisites(args.Action, args.Performer)) + return; + + var transform = Transform(args.Performer); + + foreach (var position in GetInstantSpawnPositions(transform, args.PosData)) + { + SpawnSpellHelper(args.Prototype, position, args.Performer, preventCollide: args.PreventCollideWithCaster); + } + + Speak(args); + args.Handled = true; + } + + /// + /// Gets spawn positions listed on + /// + /// + private List GetInstantSpawnPositions(TransformComponent casterXform, MagicInstantSpawnData data) + { + switch (data) + { + case TargetCasterPos: + return new List(1) {casterXform.Coordinates}; + case TargetInFrontSingle: + { + var directionPos = casterXform.Coordinates.Offset(casterXform.LocalRotation.ToWorldVec().Normalized()); + + if (!TryComp(casterXform.GridUid, out var mapGrid)) + return new List(); + if (!directionPos.TryGetTileRef(out var tileReference, EntityManager, _mapManager)) + return new List(); + + var tileIndex = tileReference.Value.GridIndices; + return new List(1) { _mapSystem.GridTileToLocal(casterXform.GridUid.Value, mapGrid, tileIndex) }; + } + case TargetInFront: + { + var directionPos = casterXform.Coordinates.Offset(casterXform.LocalRotation.ToWorldVec().Normalized()); + + if (!TryComp(casterXform.GridUid, out var mapGrid)) + return new List(); + + if (!directionPos.TryGetTileRef(out var tileReference, EntityManager, _mapManager)) + return new List(); + + var tileIndex = tileReference.Value.GridIndices; + var coords = _mapSystem.GridTileToLocal(casterXform.GridUid.Value, mapGrid, tileIndex); + EntityCoordinates coordsPlus; + EntityCoordinates coordsMinus; + + var dir = casterXform.LocalRotation.GetCardinalDir(); + switch (dir) + { + case Direction.North: + case Direction.South: + { + coordsPlus = _mapSystem.GridTileToLocal(casterXform.GridUid.Value, mapGrid, tileIndex + (1, 0)); + coordsMinus = _mapSystem.GridTileToLocal(casterXform.GridUid.Value, mapGrid, tileIndex + (-1, 0)); + return new List(3) + { + coords, + coordsPlus, + coordsMinus, + }; + } + case Direction.East: + case Direction.West: + { + coordsPlus = _mapSystem.GridTileToLocal(casterXform.GridUid.Value, mapGrid, tileIndex + (0, 1)); + coordsMinus = _mapSystem.GridTileToLocal(casterXform.GridUid.Value, mapGrid, tileIndex + (0, -1)); + return new List(3) + { + coords, + coordsPlus, + coordsMinus, + }; + } + } + + return new List(); + } + default: + throw new ArgumentOutOfRangeException(); + } + } + // End Instant Spawn Spells + #endregion + #region World Spawn Spells + /// + /// Spawns entities from a list within range of click. + /// + /// + /// It will offset entities after the first entity based on the OffsetVector2. + /// + /// The Spawn Spell Event args. + private void OnWorldSpawn(WorldSpawnSpellEvent args) + { + if (args.Handled || !PassesSpellPrerequisites(args.Action, args.Performer)) + return; + + var targetMapCoords = args.Target; + + WorldSpawnSpellHelper(args.Prototypes, targetMapCoords, args.Performer, args.Lifetime, args.Offset); + Speak(args); + args.Handled = true; + } + + /// + /// Loops through a supplied list of entity prototypes and spawns them + /// + /// + /// If an offset of 0, 0 is supplied then the entities will all spawn on the same tile. + /// Any other offset will spawn entities starting from the source Map Coordinates and will increment the supplied + /// offset + /// + /// The list of Entities to spawn in + /// Map Coordinates where the entities will spawn + /// Check to see if the entities should self delete + /// A Vector2 offset that the entities will spawn in + private void WorldSpawnSpellHelper(List entityEntries, EntityCoordinates entityCoords, EntityUid performer, float? lifetime, Vector2 offsetVector2) + { + var getProtos = EntitySpawnCollection.GetSpawns(entityEntries, _random); + + var offsetCoords = entityCoords; + foreach (var proto in getProtos) + { + SpawnSpellHelper(proto, offsetCoords, performer, lifetime); + offsetCoords = offsetCoords.Offset(offsetVector2); + } + } + // End World Spawn Spells + #endregion + #region Projectile Spells + private void OnProjectileSpell(ProjectileSpellEvent ev) + { + if (ev.Handled || !PassesSpellPrerequisites(ev.Action, ev.Performer) || !_net.IsServer) + return; + + ev.Handled = true; + Speak(ev); + + var xform = Transform(ev.Performer); + var fromCoords = xform.Coordinates; + var toCoords = ev.Target; + var userVelocity = _physics.GetMapLinearVelocity(ev.Performer); + + // If applicable, this ensures the projectile is parented to grid on spawn, instead of the map. + var fromMap = fromCoords.ToMap(EntityManager, _transform); + var spawnCoords = _mapManager.TryFindGridAt(fromMap, out var gridUid, out _) + ? fromCoords.WithEntityId(gridUid, EntityManager) + : new(_mapManager.GetMapEntityId(fromMap.MapId), fromMap.Position); + + 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); + } + // End Projectile Spells + #endregion + #region Change Component Spells + // staves.yml ActionRGB light + private void OnChangeComponentsSpell(ChangeComponentsSpellEvent ev) + { + if (ev.Handled || !PassesSpellPrerequisites(ev.Action, ev.Performer)) + return; + + ev.Handled = true; + Speak(ev); + + foreach (var toRemove in ev.ToRemove) + { + if (_compFact.TryGetRegistration(toRemove, out var registration)) + RemComp(ev.Target, registration.Type); + } + + foreach (var (name, data) in ev.ToAdd) + { + if (HasComp(ev.Target, data.Component.GetType())) + continue; + + var component = (Component) _compFact.GetComponent(name); + component.Owner = ev.Target; + var temp = (object) component; + _seriMan.CopyTo(data.Component, ref temp); + EntityManager.AddComponent(ev.Target, (Component) temp!); + } + } + // End Change Component Spells + #endregion + #region Teleport Spells + // TODO: Rename to teleport clicked spell? + /// + /// Teleports the user to the clicked location + /// + /// + private void OnTeleportSpell(TeleportSpellEvent args) + { + if (args.Handled || !PassesSpellPrerequisites(args.Action, args.Performer)) + return; + + var transform = Transform(args.Performer); + + if (transform.MapID != args.Target.GetMapId(EntityManager) || !_interaction.InRangeUnobstructed(args.Performer, args.Target, range: 1000F, collisionMask: CollisionGroup.Opaque, popup: true)) + return; + + _transform.SetCoordinates(args.Performer, args.Target); + _transform.AttachToGridOrMap(args.Performer, transform); + Speak(args); + args.Handled = true; + } + // End Teleport Spells + #endregion + #region Spell Helpers + private void SpawnSpellHelper(string? proto, EntityCoordinates position, EntityUid performer, float? lifetime = null, bool preventCollide = false) + { + if (!_net.IsServer) + return; + + var ent = Spawn(proto, position.SnapToGrid(EntityManager, _mapManager)); + + if (lifetime != null) + { + var comp = EnsureComp(ent); + comp.Lifetime = lifetime.Value; + } + + if (preventCollide) + { + var comp = EnsureComp(ent); + comp.Uid = performer; + } + } + // End Spell Helpers + #endregion + #region Smite Spells + private void OnSmiteSpell(SmiteSpellEvent ev) + { + if (ev.Handled || !PassesSpellPrerequisites(ev.Action, ev.Performer)) + return; + + ev.Handled = true; + Speak(ev); + + var direction = _transform.GetMapCoordinates(ev.Target, Transform(ev.Target)).Position - _transform.GetMapCoordinates(ev.Performer, Transform(ev.Performer)).Position; + var impulseVector = direction * 10000; + + _physics.ApplyLinearImpulse(ev.Target, impulseVector); + + if (!TryComp(ev.Target, out var body)) + return; + + _body.GibBody(ev.Target, true, body); + } + // End Smite Spells + #endregion + #region Knock Spells + /// + /// Opens all doors and locks within range + /// + /// + private void OnKnockSpell(KnockSpellEvent args) + { + if (args.Handled || !PassesSpellPrerequisites(args.Action, args.Performer)) + return; + + args.Handled = true; + Speak(args); + + var transform = Transform(args.Performer); + + // Look for doors and lockers, and don't open/unlock them if they're already opened/unlocked. + foreach (var target in _lookup.GetEntitiesInRange(_transform.GetMapCoordinates(args.Performer, transform), args.Range, flags: LookupFlags.Dynamic | LookupFlags.Static)) + { + if (!_interaction.InRangeUnobstructed(args.Performer, target, range: 0, collisionMask: CollisionGroup.Opaque)) + continue; + + if (TryComp(target, out var doorBoltComp) && doorBoltComp.BoltsDown) + _door.SetBoltsDown((target, doorBoltComp), false, predicted: true); + + if (TryComp(target, out var doorComp) && doorComp.State is not DoorState.Open) + _door.StartOpening(target); + + if (TryComp(target, out var lockComp) && lockComp.Locked) + _lock.Unlock(target, args.Performer, lockComp); + } + } + // End Knock Spells + #endregion + #region Charge Spells + // TODO: Future support to charge other items + private void OnChargeSpell(ChargeSpellEvent ev) + { + if (ev.Handled || !PassesSpellPrerequisites(ev.Action, ev.Performer) || !TryComp(ev.Performer, out var handsComp)) + return; + + EntityUid? wand = null; + foreach (var item in _hands.EnumerateHeld(ev.Performer, handsComp)) + { + if (!_tag.HasTag(item, ev.WandTag)) + continue; + + wand = item; + } + + ev.Handled = true; + Speak(ev); + + if (wand == null || !TryComp(wand, out var basicAmmoComp) || basicAmmoComp.Count == null) + return; + + _gunSystem.UpdateBasicEntityAmmoCount(wand.Value, basicAmmoComp.Count.Value + ev.Charge, basicAmmoComp); + } + // End Charge Spells + #endregion + // End Spells + #endregion + + // When any spell is cast it will raise this as an event, so then it can be played in server or something. At least until chat gets moved to shared + // TODO: Temp until chat is in shared + private void Speak(BaseActionEvent args) + { + if (args is not ISpeakSpell speak || string.IsNullOrWhiteSpace(speak.Speech)) + return; + + var ev = new SpeakSpellEvent(args.Performer, speak.Speech); + RaiseLocalEvent(ref ev); + } +} diff --git a/Content.Shared/Magic/SpellbookSystem.cs b/Content.Shared/Magic/SpellbookSystem.cs new file mode 100644 index 0000000000..a7c8274624 --- /dev/null +++ b/Content.Shared/Magic/SpellbookSystem.cs @@ -0,0 +1,98 @@ +using Content.Shared.Actions; +using Content.Shared.DoAfter; +using Content.Shared.Interaction.Events; +using Content.Shared.Magic.Components; +using Content.Shared.Mind; +using Robust.Shared.Network; + +namespace Content.Shared.Magic; + +public sealed class SpellbookSystem : EntitySystem +{ + [Dependency] private readonly SharedMindSystem _mind = default!; + [Dependency] private readonly SharedDoAfterSystem _doAfter = default!; + [Dependency] private readonly SharedActionsSystem _actions = default!; + [Dependency] private readonly ActionContainerSystem _actionContainer = default!; + [Dependency] private readonly INetManager _netManager = default!; + + public override void Initialize() + { + SubscribeLocalEvent(OnInit, before: [typeof(SharedMagicSystem)]); + SubscribeLocalEvent(OnUse); + SubscribeLocalEvent(OnDoAfter); + } + + private void OnInit(Entity ent, ref MapInitEvent args) + { + foreach (var (id, charges) in ent.Comp.SpellActions) + { + var spell = _actionContainer.AddAction(ent, id); + if (spell == null) + continue; + + int? charge = charges; + if (_actions.GetCharges(spell) != null) + charge = _actions.GetCharges(spell); + + _actions.SetCharges(spell, charge < 0 ? null : charge); + ent.Comp.Spells.Add(spell.Value); + } + } + + private void OnUse(Entity ent, ref UseInHandEvent args) + { + if (args.Handled) + return; + + AttemptLearn(ent, args); + + args.Handled = true; + } + + private void OnDoAfter(Entity ent, ref T args) where T : DoAfterEvent // Sometimes i despise this language + { + if (args.Handled || args.Cancelled) + return; + + args.Handled = true; + + if (!ent.Comp.LearnPermanently) + { + _actions.GrantActions(args.Args.User, ent.Comp.Spells, ent); + return; + } + + if (_mind.TryGetMind(args.Args.User, out var mindId, out _)) + { + var mindActionContainerComp = EnsureComp(mindId); + + if (_netManager.IsServer) + _actionContainer.TransferAllActionsWithNewAttached(ent, mindId, args.Args.User, newContainer: mindActionContainerComp); + } + else + { + foreach (var (id, charges) in ent.Comp.SpellActions) + { + EntityUid? actionId = null; + if (_actions.AddAction(args.Args.User, ref actionId, id)) + _actions.SetCharges(actionId, charges < 0 ? null : charges); + } + } + + ent.Comp.SpellActions.Clear(); + } + + private void AttemptLearn(Entity ent, UseInHandEvent args) + { + var doAfterEventArgs = new DoAfterArgs(EntityManager, args.User, ent.Comp.LearnTime, new SpellbookDoAfterEvent(), ent, target: ent) + { + BreakOnTargetMove = true, + BreakOnUserMove = true, + BreakOnWeightlessMove = true, + BreakOnDamage = true, + NeedHand = true, // What, are you going to read with your eyes only?? + }; + + _doAfter.TryStartDoAfter(doAfterEventArgs); + } +} diff --git a/Content.Server/MagicMirror/MagicMirrorComponent.cs b/Content.Shared/MagicMirror/MagicMirrorComponent.cs similarity index 89% rename from Content.Server/MagicMirror/MagicMirrorComponent.cs rename to Content.Shared/MagicMirror/MagicMirrorComponent.cs index 624a381ca5..6357543905 100644 --- a/Content.Server/MagicMirror/MagicMirrorComponent.cs +++ b/Content.Shared/MagicMirror/MagicMirrorComponent.cs @@ -1,13 +1,13 @@ using Content.Shared.DoAfter; -using Content.Shared.Humanoid; using Robust.Shared.Audio; +using Robust.Shared.GameStates; -namespace Content.Server.MagicMirror; +namespace Content.Shared.MagicMirror; /// /// Allows humanoids to change their appearance mid-round. /// -[RegisterComponent] +[RegisterComponent, NetworkedComponent, AutoGenerateComponentState] public sealed partial class MagicMirrorComponent : Component { [DataField] @@ -16,7 +16,7 @@ public sealed partial class MagicMirrorComponent : Component /// /// Magic mirror target, used for validating UI messages. /// - [DataField] + [DataField, AutoNetworkedField] public EntityUid? Target; /// diff --git a/Content.Shared/MagicMirror/SharedMagicMirrorSystem.cs b/Content.Shared/MagicMirror/SharedMagicMirrorSystem.cs index 0b22e02498..f9c941ffe3 100644 --- a/Content.Shared/MagicMirror/SharedMagicMirrorSystem.cs +++ b/Content.Shared/MagicMirror/SharedMagicMirrorSystem.cs @@ -1,10 +1,29 @@ using Content.Shared.DoAfter; using Content.Shared.Humanoid.Markings; -using Robust.Shared.Player; +using Content.Shared.Interaction; using Robust.Shared.Serialization; namespace Content.Shared.MagicMirror; +public abstract class SharedMagicMirrorSystem : EntitySystem +{ + [Dependency] private readonly SharedInteractionSystem _interaction = default!; + + public override void Initialize() + { + base.Initialize(); + SubscribeLocalEvent(OnMirrorRangeCheck); + } + + private void OnMirrorRangeCheck(EntityUid uid, MagicMirrorComponent component, ref BoundUserInterfaceCheckRangeEvent args) + { + if (!Exists(component.Target) || !_interaction.InRangeUnobstructed(uid, component.Target.Value)) + { + args.Result = BoundUserInterfaceRangeResult.Fail; + } + } +} + [Serializable, NetSerializable] public enum MagicMirrorUiKey : byte { diff --git a/Content.Shared/Materials/MaterialReclaimerComponent.cs b/Content.Shared/Materials/MaterialReclaimerComponent.cs index 3e72baf604..2fd6cd6fc8 100644 --- a/Content.Shared/Materials/MaterialReclaimerComponent.cs +++ b/Content.Shared/Materials/MaterialReclaimerComponent.cs @@ -1,100 +1,121 @@ -using Content.Shared.Whitelist; +using Content.Shared.Construction.Prototypes; +using Content.Shared.Whitelist; using Robust.Shared.Audio; using Robust.Shared.GameStates; +using Robust.Shared.Prototypes; using Robust.Shared.Serialization; using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom; namespace Content.Shared.Materials; /// -/// This is a machine that handles converting entities -/// into the raw materials and chemicals that make them up. +/// This is a machine that handles converting entities +/// into the raw materials and chemicals that make them up. /// [RegisterComponent, NetworkedComponent, AutoGenerateComponentState, AutoGenerateComponentPause] [Access(typeof(SharedMaterialReclaimerSystem))] public sealed partial class MaterialReclaimerComponent : Component { /// - /// Whether or not the machine has power. We put it here - /// so we can network and predict it. + /// Whether or not the machine has power. We put it here + /// so we can network and predict it. /// - [DataField, AutoNetworkedField, ViewVariables(VVAccess.ReadWrite)] + [DataField, AutoNetworkedField] public bool Powered; /// - /// An "enable" toggle for things like interfacing with machine linking + /// An "enable" toggle for things like interfacing with machine linking /// - [DataField, AutoNetworkedField, ViewVariables(VVAccess.ReadWrite)] + [DataField, AutoNetworkedField] public bool Enabled = true; /// - /// How efficiently the materials are reclaimed. - /// In practice, a multiplier per material when calculating the output of the reclaimer. + /// How efficiently the materials are reclaimed. + /// In practice, a multiplier per material when calculating the output of the reclaimer. /// - [DataField, ViewVariables(VVAccess.ReadWrite)] + [DataField] public float Efficiency = 1f; /// - /// Whether or not the process - /// speed scales with the amount of materials being processed - /// or if it's just + /// Whether or not the process + /// speed scales with the amount of materials being processed + /// or if it's just /// [DataField] public bool ScaleProcessSpeed = true; /// - /// How quickly it takes to consume X amount of materials per second. - /// For example, with a rate of 50, an entity with 100 total material takes 2 seconds to process. + /// How quickly it takes to consume X amount of materials per second. + /// For example, with a rate of 50, an entity with 100 total material takes 2 seconds to process. /// - [DataField, AutoNetworkedField, ViewVariables(VVAccess.ReadWrite)] + [DataField] + public float BaseMaterialProcessRate = 100f; + + /// + /// How quickly it takes to consume X amount of materials per second. + /// For example, with a rate of 50, an entity with 100 total material takes 2 seconds to process. + /// + [DataField, AutoNetworkedField] public float MaterialProcessRate = 100f; /// - /// The minimum amount fo time it can take to process an entity. - /// this value supercedes the calculated one using + /// Machine part whose rating modifies + /// + [DataField] + public ProtoId MachinePartProcessRate = "Manipulator"; + + /// + /// How much the machine part quality affects the /// - [DataField, ViewVariables(VVAccess.ReadWrite)] + [DataField] + public float PartRatingProcessRateMultiplier = 1.5f; + + /// + /// The minimum amount fo time it can take to process an entity. + /// this value supercedes the calculated one using + /// + [DataField] public TimeSpan MinimumProcessDuration = TimeSpan.FromSeconds(0.5f); /// - /// The id of our output solution + /// The id of our output solution /// - [DataField, ViewVariables(VVAccess.ReadWrite)] + [DataField] public string SolutionContainerId = "output"; /// - /// a whitelist for what entities can be inserted into this reclaimer + /// a whitelist for what entities can be inserted into this reclaimer /// [DataField] public EntityWhitelist? Whitelist; /// - /// a blacklist for what entities cannot be inserted into this reclaimer + /// a blacklist for what entities cannot be inserted into this reclaimer /// [DataField] public EntityWhitelist? Blacklist; /// - /// The sound played when something is being processed. + /// The sound played when something is being processed. /// [DataField] public SoundSpecifier? Sound; /// - /// whether or not we cut off the sound early when the reclaiming ends. + /// whether or not we cut off the sound early when the reclaiming ends. /// [DataField] public bool CutOffSound = true; /// - /// When the next sound will be allowed to be played. Used to prevent spam. + /// When the next sound will be allowed to be played. Used to prevent spam. /// [DataField(customTypeSerializer: typeof(TimeOffsetSerializer))] [AutoPausedField] public TimeSpan NextSound; /// - /// Minimum time inbetween each + /// Minimum time inbetween each /// [DataField] public TimeSpan SoundCooldown = TimeSpan.FromSeconds(0.8f); @@ -102,10 +123,10 @@ public sealed partial class MaterialReclaimerComponent : Component public EntityUid? Stream; /// - /// A counter of how many items have been processed + /// A counter of how many items have been processed /// /// - /// I saw this on the recycler and i'm porting it because it's cute af + /// I saw this on the recycler and i'm porting it because it's cute af /// [DataField, AutoNetworkedField] public int ItemsProcessed; diff --git a/Content.Shared/Medical/PenLightComponent.cs b/Content.Shared/Medical/PenLightComponent.cs index 50dacae3dc..770e8af7e9 100644 --- a/Content.Shared/Medical/PenLightComponent.cs +++ b/Content.Shared/Medical/PenLightComponent.cs @@ -9,6 +9,7 @@ namespace Content.Shared.Medical; [RegisterComponent, NetworkedComponent, AutoGenerateComponentPause] public sealed partial class PenLightComponent : Component { + /// /// Cooldown Time, exams take a bit /// diff --git a/Content.Shared/Mind/SharedMindSystem.cs b/Content.Shared/Mind/SharedMindSystem.cs index 1898126d80..bf1065c1b1 100644 --- a/Content.Shared/Mind/SharedMindSystem.cs +++ b/Content.Shared/Mind/SharedMindSystem.cs @@ -26,7 +26,6 @@ public abstract class SharedMindSystem : EntitySystem [Dependency] private readonly SharedObjectivesSystem _objectives = default!; [Dependency] private readonly SharedPlayerSystem _player = default!; [Dependency] private readonly MetaDataSystem _metadata = default!; - [Dependency] private readonly ISharedPlayerManager _playerMan = default!; [ViewVariables] protected readonly Dictionary UserMinds = new(); @@ -383,6 +382,30 @@ public bool TryGetObjectiveComp(EntityUid mindId, [NotNullWhen(true)] out T? return false; } + /// + /// Tries to find an objective that has the same prototype as the argument. + /// + /// + /// Will not work for objectives that have no prototype, or duplicate objectives with the same prototype. + /// + public bool TryFindObjective(Entity mind, string prototype, [NotNullWhen(true)] out EntityUid? objective) + { + objective = null; + if (!Resolve(mind, ref mind.Comp)) + return false; + + foreach (var uid in mind.Comp.Objectives) + { + if (MetaData(uid).EntityPrototype?.ID == prototype) + { + objective = uid; + return true; + } + } + + return false; + } + public bool TryGetSession(EntityUid? mindId, [NotNullWhen(true)] out ICommonSession? session) { session = null; diff --git a/Content.Shared/Mobs/Components/MobStateComponent.cs b/Content.Shared/Mobs/Components/MobStateComponent.cs index a2ff349e13..7cff0779cb 100644 --- a/Content.Shared/Mobs/Components/MobStateComponent.cs +++ b/Content.Shared/Mobs/Components/MobStateComponent.cs @@ -13,30 +13,21 @@ namespace Content.Shared.Mobs.Components /// [RegisterComponent] [NetworkedComponent] + [AutoGenerateComponentState] [Access(typeof(MobStateSystem), typeof(MobThresholdSystem))] public sealed partial class MobStateComponent : Component { //default mobstate is always the lowest state level - [ViewVariables] public MobState CurrentState { get; set; } = MobState.Alive; + [AutoNetworkedField, ViewVariables] + public MobState CurrentState { get; set; } = MobState.Alive; - [DataField("allowedStates")] public HashSet AllowedStates = new() + [DataField] + [AutoNetworkedField] + public HashSet AllowedStates = new() { MobState.Alive, MobState.Critical, MobState.Dead }; } - - [Serializable, NetSerializable] - public sealed class MobStateComponentState : ComponentState - { - public readonly MobState CurrentState; - public readonly HashSet AllowedStates; - - public MobStateComponentState(MobState currentState, HashSet allowedStates) - { - CurrentState = currentState; - AllowedStates = allowedStates; - } - } } diff --git a/Content.Shared/Mobs/Systems/MobStateSystem.Subscribers.cs b/Content.Shared/Mobs/Systems/MobStateSystem.Subscribers.cs index 08b351e61e..d9ef671afe 100644 --- a/Content.Shared/Mobs/Systems/MobStateSystem.Subscribers.cs +++ b/Content.Shared/Mobs/Systems/MobStateSystem.Subscribers.cs @@ -90,12 +90,12 @@ private void OnStateEnteredSubscribers(EntityUid target, MobStateComponent compo _appearance.SetData(target, MobStateVisuals.State, MobState.Alive); break; case MobState.Critical: - _standing.Down(target); + _standing.Down(target, setDrawDepth: true); _appearance.SetData(target, MobStateVisuals.State, MobState.Critical); break; case MobState.Dead: EnsureComp(target); - _standing.Down(target); + _standing.Down(target, setDrawDepth: true); if (_standing.IsDown(target) && TryComp(target, out var physics)) { diff --git a/Content.Shared/Mobs/Systems/MobStateSystem.cs b/Content.Shared/Mobs/Systems/MobStateSystem.cs index ff54c30aaf..a3886dd42e 100644 --- a/Content.Shared/Mobs/Systems/MobStateSystem.cs +++ b/Content.Shared/Mobs/Systems/MobStateSystem.cs @@ -25,8 +25,6 @@ public override void Initialize() _sawmill = _logManager.GetSawmill("MobState"); base.Initialize(); SubscribeEvents(); - SubscribeLocalEvent(OnGetComponentState); - SubscribeLocalEvent(OnHandleComponentState); } #region Public API @@ -100,24 +98,5 @@ public bool IsInvalidState(EntityUid target, MobStateComponent? component = null #region Private Implementation - private void OnHandleComponentState(EntityUid uid, MobStateComponent component, ref ComponentHandleState args) - { - if (args.Current is not MobStateComponentState state) - return; - - component.CurrentState = state.CurrentState; - - if (!component.AllowedStates.SetEquals(state.AllowedStates)) - { - component.AllowedStates.Clear(); - component.AllowedStates.UnionWith(state.AllowedStates); - } - } - - private void OnGetComponentState(EntityUid uid, MobStateComponent component, ref ComponentGetState args) - { - args.State = new MobStateComponentState(component.CurrentState, component.AllowedStates); - } - #endregion } diff --git a/Content.Shared/Mood/MoodCategoryPrototype.cs b/Content.Shared/Mood/MoodCategoryPrototype.cs index 13d5f8b7ea..d5bcd707c8 100644 --- a/Content.Shared/Mood/MoodCategoryPrototype.cs +++ b/Content.Shared/Mood/MoodCategoryPrototype.cs @@ -6,7 +6,7 @@ namespace Content.Shared.Mood; /// A prototype defining a category for moodlets, where only a single moodlet of a given category is permitted. /// [Prototype] -public sealed class MoodCategoryPrototype : IPrototype +public sealed partial class MoodCategoryPrototype : IPrototype { [IdDataField] public string ID { get; } = default!; diff --git a/Content.Shared/Mood/MoodEffectPrototype.cs b/Content.Shared/Mood/MoodEffectPrototype.cs index ad21faec80..da9d178510 100644 --- a/Content.Shared/Mood/MoodEffectPrototype.cs +++ b/Content.Shared/Mood/MoodEffectPrototype.cs @@ -3,7 +3,7 @@ namespace Content.Shared.Mood; [Prototype] -public sealed class MoodEffectPrototype : IPrototype +public sealed partial class MoodEffectPrototype : IPrototype { /// /// The ID of the moodlet to use. @@ -12,24 +12,34 @@ public sealed class MoodEffectPrototype : IPrototype public string ID { get; } = default!; public string Description => Loc.GetString($"mood-effect-{ID}"); + /// /// If they already have an effect with the same category, the new one will replace the old one. /// [DataField, ValidatePrototypeId] public string? Category; + /// /// How much should this moodlet modify an entity's Mood. /// [DataField(required: true)] public float MoodChange; + /// /// How long, in Seconds, does this moodlet last? If omitted, the moodlet will last until canceled by any system. /// [DataField] public int Timeout; + /// /// Should this moodlet be hidden from the player? EG: No popups or chat messages. /// [DataField] public bool Hidden; + + /// + /// When not null, this moodlet will replace itself with another Moodlet upon expiration. + /// + [DataField] + public ProtoId? MoodletOnEnd; } diff --git a/Content.Shared/MouseRotator/MouseRotatorComponent.cs b/Content.Shared/MouseRotator/MouseRotatorComponent.cs index a35dfe0a28..2844b3cb8b 100644 --- a/Content.Shared/MouseRotator/MouseRotatorComponent.cs +++ b/Content.Shared/MouseRotator/MouseRotatorComponent.cs @@ -30,8 +30,7 @@ public sealed partial class MouseRotatorComponent : Component public double RotationSpeed = float.MaxValue; /// - /// This one is important. If this is true, does not apply, and the system will - /// use instead. In this mode, the client will only send + /// This one is important. If this is true, does not apply. In this mode, the client will only send /// events when an entity should snap to a different cardinal direction, rather than for every angle change. /// /// This is useful for cases like humans, where what really matters is the visual sprite direction, as opposed to something @@ -50,13 +49,3 @@ public sealed class RequestMouseRotatorRotationEvent : EntityEventArgs { public Angle Rotation; } - -/// -/// Simpler version of for implementations -/// that only require snapping to 4-dir and not full angle rotation. -/// -[Serializable, NetSerializable] -public sealed class RequestMouseRotatorRotationSimpleEvent : EntityEventArgs -{ - public Direction Direction; -} diff --git a/Content.Shared/MouseRotator/SharedMouseRotatorSystem.cs b/Content.Shared/MouseRotator/SharedMouseRotatorSystem.cs index c57d477bd2..9663b3363d 100644 --- a/Content.Shared/MouseRotator/SharedMouseRotatorSystem.cs +++ b/Content.Shared/MouseRotator/SharedMouseRotatorSystem.cs @@ -1,5 +1,4 @@ using Content.Shared.Interaction; -using Robust.Shared.Timing; namespace Content.Shared.MouseRotator; @@ -16,7 +15,6 @@ public override void Initialize() base.Initialize(); SubscribeAllEvent(OnRequestRotation); - SubscribeAllEvent(OnRequestSimpleRotation); } public override void Update(float frameTime) @@ -50,7 +48,7 @@ public override void Update(float frameTime) private void OnRequestRotation(RequestMouseRotatorRotationEvent msg, EntitySessionEventArgs args) { if (args.SenderSession.AttachedEntity is not { } ent - || !TryComp(ent, out var rotator) || rotator.Simple4DirMode) + || !TryComp(ent, out var rotator)) { Log.Error($"User {args.SenderSession.Name} ({args.SenderSession.UserId}) tried setting local rotation directly without a valid mouse rotator component attached!"); return; @@ -59,17 +57,4 @@ private void OnRequestRotation(RequestMouseRotatorRotationEvent msg, EntitySessi rotator.GoalRotation = msg.Rotation; Dirty(ent, rotator); } - - private void OnRequestSimpleRotation(RequestMouseRotatorRotationSimpleEvent ev, EntitySessionEventArgs args) - { - if (args.SenderSession.AttachedEntity is not { } ent - || !TryComp(ent, out var rotator) || !rotator.Simple4DirMode) - { - Log.Error($"User {args.SenderSession.Name} ({args.SenderSession.UserId}) tried setting 4-dir rotation directly without a valid mouse rotator component attached!"); - return; - } - - rotator.GoalRotation = ev.Direction.ToAngle(); - Dirty(ent, rotator); - } } diff --git a/Content.Shared/Movement/Components/InputMoverComponent.cs b/Content.Shared/Movement/Components/InputMoverComponent.cs index 916ecc90af..40cb532e60 100644 --- a/Content.Shared/Movement/Components/InputMoverComponent.cs +++ b/Content.Shared/Movement/Components/InputMoverComponent.cs @@ -74,11 +74,12 @@ public sealed partial class InputMoverComponent : Component public const float LerpTime = 1.0f; - //NOTE I don't think I'm supposed to do this - public bool Sprinting => IoCManager.Resolve().GetCVar(CCVars.GamePressToSprint) + public bool Sprinting => DefaultSprinting ? (HeldMoveButtons & MoveButtons.Walk) != 0x0 : (HeldMoveButtons & MoveButtons.Walk) == 0x0; + public bool DefaultSprinting = true; + [ViewVariables(VVAccess.ReadWrite)] public bool CanMove = true; @@ -94,6 +95,6 @@ public sealed class InputMoverComponentState : ComponentState public Angle TargetRelativeRotation; public Angle RelativeRotation; public TimeSpan LerpTarget; - public bool CanMove; + public bool CanMove, DefaultSprinting; } } diff --git a/Content.Shared/Movement/Components/MobMoverComponent.cs b/Content.Shared/Movement/Components/MobMoverComponent.cs index a77f415b93..7ad7961ed7 100644 --- a/Content.Shared/Movement/Components/MobMoverComponent.cs +++ b/Content.Shared/Movement/Components/MobMoverComponent.cs @@ -14,6 +14,15 @@ public sealed partial class MobMoverComponent : Component [DataField] public float PushStrength = 600f; + [DataField, AutoNetworkedField] + public float StepSoundMoveDistanceRunning = 2; + + [DataField, AutoNetworkedField] + public float StepSoundMoveDistanceWalking = 1.5f; + + [DataField, AutoNetworkedField] + public float FootstepVariation; + [ViewVariables(VVAccess.ReadWrite)] public EntityCoordinates LastPosition { get; set; } diff --git a/Content.Shared/Movement/Events/UpdateInputCVarsMessage.cs b/Content.Shared/Movement/Events/UpdateInputCVarsMessage.cs new file mode 100644 index 0000000000..415a833f10 --- /dev/null +++ b/Content.Shared/Movement/Events/UpdateInputCVarsMessage.cs @@ -0,0 +1,9 @@ +using Robust.Shared.Serialization; + +namespace Content.Shared.Movement.Events; + +/// +/// Raised from the client to the server to require the server to update the client's input CVars. +/// +[Serializable, NetSerializable] +public sealed class UpdateInputCVarsMessage : EntityEventArgs { } diff --git a/Content.Shared/Movement/Pulling/Components/PullableComponent.cs b/Content.Shared/Movement/Pulling/Components/PullableComponent.cs index db889e7e3b..01ce0efaae 100644 --- a/Content.Shared/Movement/Pulling/Components/PullableComponent.cs +++ b/Content.Shared/Movement/Pulling/Components/PullableComponent.cs @@ -36,4 +36,11 @@ public sealed partial class PullableComponent : Component [Access(typeof(Systems.PullingSystem), Other = AccessPermissions.ReadExecute)] [AutoNetworkedField, DataField] public bool PrevFixedRotation; + + /// + /// Whether the entity is currently being actively pushed by the puller. + /// If true, the entity will be able to enter disposals upon colliding with them, and the like. + /// + [DataField, AutoNetworkedField] + public bool BeingActivelyPushed = false; } diff --git a/Content.Shared/Movement/Pulling/Components/PullerComponent.cs b/Content.Shared/Movement/Pulling/Components/PullerComponent.cs index 1fc9b731bd..648f06086b 100644 --- a/Content.Shared/Movement/Pulling/Components/PullerComponent.cs +++ b/Content.Shared/Movement/Pulling/Components/PullerComponent.cs @@ -1,5 +1,6 @@ using Content.Shared.Movement.Pulling.Systems; using Robust.Shared.GameStates; +using Robust.Shared.Map; using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom; namespace Content.Shared.Movement.Pulling.Components; @@ -11,16 +12,17 @@ namespace Content.Shared.Movement.Pulling.Components; [Access(typeof(PullingSystem))] public sealed partial class PullerComponent : Component { - // My raiding guild /// - /// Next time the puller can throw what is being pulled. - /// Used to avoid spamming it for infinite spin + velocity. + /// Next time the puller change where they are pulling the target towards. /// [DataField(customTypeSerializer: typeof(TimeOffsetSerializer)), AutoNetworkedField] - public TimeSpan NextThrow; + public TimeSpan NextPushTargetChange; + + [DataField, AutoNetworkedField] + public TimeSpan NextPushStop; [DataField] - public TimeSpan ThrowCooldown = TimeSpan.FromSeconds(1); + public TimeSpan PushChangeCooldown = TimeSpan.FromSeconds(0.1f), PushDuration = TimeSpan.FromSeconds(5f); // Before changing how this is updated, please see SharedPullerSystem.RefreshMovementSpeed public float WalkSpeedModifier => Pulling == default ? 1.0f : 0.95f; @@ -28,14 +30,38 @@ public sealed partial class PullerComponent : Component public float SprintSpeedModifier => Pulling == default ? 1.0f : 0.95f; /// - /// Entity currently being pulled if applicable. + /// Entity currently being pulled/pushed if applicable. /// [AutoNetworkedField, DataField] public EntityUid? Pulling; + /// + /// The position the entity is currently being pulled towards. + /// + [AutoNetworkedField, DataField] + public EntityCoordinates? PushingTowards; + /// /// Does this entity need hands to be able to pull something? /// [DataField] public bool NeedsHands = true; + + /// + /// The maximum acceleration of pushing, in meters per second squared. + /// + [DataField] + public float PushAcceleration = 0.3f; + + /// + /// The maximum speed to which the pulled entity may be accelerated relative to the push direction, in meters per second. + /// + [DataField] + public float MaxPushSpeed = 1.2f; + + /// + /// The maximum distance between the puller and the point towards which the puller may attempt to pull it, in meters. + /// + [DataField] + public float MaxPushRange = 2f; } diff --git a/Content.Shared/Movement/Pulling/Systems/PullingSystem.cs b/Content.Shared/Movement/Pulling/Systems/PullingSystem.cs index 3c265d5a02..33dde399a5 100644 --- a/Content.Shared/Movement/Pulling/Systems/PullingSystem.cs +++ b/Content.Shared/Movement/Pulling/Systems/PullingSystem.cs @@ -4,20 +4,25 @@ using Content.Shared.Alert; using Content.Shared.Buckle.Components; using Content.Shared.Database; +using Content.Shared.Gravity; using Content.Shared.Hands; using Content.Shared.Hands.EntitySystems; using Content.Shared.Input; using Content.Shared.Interaction; +using Content.Shared.Movement.Components; using Content.Shared.Movement.Events; using Content.Shared.Movement.Pulling.Components; using Content.Shared.Movement.Pulling.Events; using Content.Shared.Movement.Systems; +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; using Robust.Shared.Map; +using Robust.Shared.Network; using Robust.Shared.Physics; using Robust.Shared.Physics.Components; using Robust.Shared.Physics.Events; @@ -34,8 +39,10 @@ public sealed class PullingSystem : EntitySystem { [Dependency] private readonly IGameTiming _timing = default!; [Dependency] private readonly ISharedAdminLogManager _adminLogger = default!; + [Dependency] private readonly INetManager _net = default!; [Dependency] private readonly ActionBlockerSystem _blocker = default!; [Dependency] private readonly AlertsSystem _alertsSystem = default!; + [Dependency] private readonly SharedGravitySystem _gravity = default!; [Dependency] private readonly MovementSpeedModifierSystem _modifierSystem = default!; [Dependency] private readonly SharedJointSystem _joints = default!; [Dependency] private readonly SharedContainerSystem _containerSystem = default!; @@ -43,7 +50,7 @@ public sealed class PullingSystem : EntitySystem [Dependency] private readonly SharedInteractionSystem _interaction = default!; [Dependency] private readonly SharedPhysicsSystem _physics = default!; [Dependency] private readonly SharedTransformSystem _xformSys = default!; - [Dependency] private readonly ThrowingSystem _throwing = default!; + [Dependency] private readonly ThrownItemSystem _thrownItem = default!; public override void Initialize() { @@ -57,11 +64,14 @@ public override void Initialize() SubscribeLocalEvent(OnJointRemoved); SubscribeLocalEvent>(AddPullVerbs); SubscribeLocalEvent(OnPullableContainerInsert); + SubscribeLocalEvent(OnPullableCollide); + SubscribeLocalEvent(OnPullerMoveInput); SubscribeLocalEvent(OnPullerContainerInsert); SubscribeLocalEvent(OnPullerUnpaused); SubscribeLocalEvent(OnVirtualItemDeleted); SubscribeLocalEvent(OnRefreshMovespeed); + SubscribeLocalEvent(OnDropHandItems); CommandBinds.Builder .Bind(ContentKeyFunctions.MovePulledObject, new PointerInputCmdHandler(OnRequestMovePulledObject)) @@ -69,6 +79,99 @@ public override void Initialize() .Register(); } + public override void Shutdown() + { + base.Shutdown(); + CommandBinds.Unregister(); + } + + public override void Update(float frameTime) + { + if (_net.IsClient) // Client cannot predict this + return; + + var query = EntityQueryEnumerator(); + while (query.MoveNext(out var puller, out var pullerComp, out var pullerPhysics, out var pullerXForm)) + { + // If not pulling, reset the pushing cooldowns and exit + if (pullerComp.Pulling is not { } pulled || !TryComp(pulled, out var pulledComp)) + { + pullerComp.PushingTowards = null; + pullerComp.NextPushTargetChange = TimeSpan.Zero; + continue; + } + + pulledComp.BeingActivelyPushed = false; // Temporarily set to false; if the checks below pass, it will be set to true again + + // If pulling but the pullee is invalid or is on a different map, stop pulling + var pulledXForm = Transform(pulled); + if (!TryComp(pulled, out var pulledPhysics) + || pulledPhysics.BodyType == BodyType.Static + || pulledXForm.MapUid != pullerXForm.MapUid) + { + StopPulling(pulled, pulledComp); + continue; + } + + if (pullerComp.PushingTowards is null) + continue; + + // If pushing but the target position is invalid, or the push action has expired or finished, stop pushing + if (pullerComp.NextPushStop < _timing.CurTime + || !(pullerComp.PushingTowards.Value.ToMap(EntityManager, _xformSys) is var pushCoordinates) + || pushCoordinates.MapId != pulledXForm.MapID) + { + pullerComp.PushingTowards = null; + pullerComp.NextPushTargetChange = TimeSpan.Zero; + continue; + } + + // Actual force calculation. All the Vector2's below are in map coordinates. + var desiredDeltaPos = pushCoordinates.Position - Transform(pulled).Coordinates.ToMapPos(EntityManager, _xformSys); + if (desiredDeltaPos.LengthSquared() < 0.1f) + { + pullerComp.PushingTowards = null; + continue; + } + + var velocityAndDirectionAngle = new Angle(pulledPhysics.LinearVelocity) - new Angle(desiredDeltaPos); + var currentRelativeSpeed = pulledPhysics.LinearVelocity.Length() * (float) Math.Cos(velocityAndDirectionAngle.Theta); + var desiredAcceleration = MathF.Max(0f, pullerComp.MaxPushSpeed - currentRelativeSpeed); + + var desiredImpulse = pulledPhysics.Mass * desiredDeltaPos; + var maxSourceImpulse = MathF.Min(pullerComp.PushAcceleration, desiredAcceleration) * pullerPhysics.Mass; + var actualImpulse = desiredImpulse.LengthSquared() > maxSourceImpulse * maxSourceImpulse ? desiredDeltaPos.Normalized() * maxSourceImpulse : desiredImpulse; + + // Ideally we'd want to apply forces instead of impulses, however... + // We cannot use ApplyForce here because it will be cleared on the next physics substep which will render it ultimately useless + // The alternative is to run this function on every physics substep, but that is way too expensive for such a minor system + _physics.ApplyLinearImpulse(pulled, actualImpulse); + if (_gravity.IsWeightless(puller, pullerPhysics, pullerXForm)) + _physics.ApplyLinearImpulse(puller, -actualImpulse); + + pulledComp.BeingActivelyPushed = true; + } + query.Dispose(); + } + + private void OnPullerMoveInput(EntityUid uid, PullerComponent component, ref MoveInputEvent args) + { + // Stop pushing + component.PushingTowards = null; + component.NextPushStop = TimeSpan.Zero; + } + + private void OnDropHandItems(EntityUid uid, PullerComponent pullerComp, DropHandItemsEvent args) + { + if (pullerComp.Pulling == null || pullerComp.NeedsHands) + return; + + if (!TryComp(pullerComp.Pulling, out PullableComponent? pullableComp)) + return; + + TryStopPull(pullerComp.Pulling.Value, pullableComp, uid); + } + private void OnPullerContainerInsert(Entity ent, ref EntGotInsertedIntoContainerMessage args) { if (ent.Comp.Pulling == null) return; @@ -84,15 +187,26 @@ private void OnPullableContainerInsert(Entity ent, ref EntGot TryStopPull(ent.Owner, ent.Comp); } - public override void Shutdown() + private void OnPullableCollide(Entity ent, ref StartCollideEvent args) { - base.Shutdown(); - CommandBinds.Unregister(); + if (!ent.Comp.BeingActivelyPushed || ent.Comp.Puller == null || args.OtherEntity == ent.Comp.Puller) + return; + + // This component isn't actually needed anywhere besides the thrownitemsyste`m itself, so we just fake it + var fakeThrown = new ThrownItemComponent() + { + Owner = ent.Owner, + Animate = false, + Landed = false, + PlayLandSound = false, + Thrower = ent.Comp.Puller + }; + _thrownItem.ThrowCollideInteraction(fakeThrown, ent, args.OtherEntity); } private void OnPullerUnpaused(EntityUid uid, PullerComponent component, ref EntityUnpausedEvent args) { - component.NextThrow += args.PausedTime; + component.NextPushTargetChange += args.PausedTime; } private void OnVirtualItemDeleted(EntityUid uid, PullerComponent component, VirtualItemDeletedEvent args) @@ -204,6 +318,7 @@ private void StopPulling(EntityUid pullableUid, PullableComponent pullableComp) var oldPuller = pullableComp.Puller; pullableComp.PullJointId = null; pullableComp.Puller = null; + pullableComp.BeingActivelyPushed = false; Dirty(pullableUid, pullableComp); // No more joints with puller -> force stop pull. @@ -234,31 +349,22 @@ public bool IsPulled(EntityUid uid, PullableComponent? component = null) private bool OnRequestMovePulledObject(ICommonSession? session, EntityCoordinates coords, EntityUid uid) { - if (session?.AttachedEntity is not { } player || - !player.IsValid()) - { - return false; - } - - if (!TryComp(player, out var pullerComp)) + if (session?.AttachedEntity is not { } player + || !player.IsValid() + || !TryComp(player, out var pullerComp)) return false; var pulled = pullerComp.Pulling; - - if (!HasComp(pulled)) + if (!HasComp(pulled) + || _containerSystem.IsEntityInContainer(player) + || _timing.CurTime < pullerComp.NextPushTargetChange) return false; - if (_containerSystem.IsEntityInContainer(player)) - return false; - - // Cooldown buddy - if (_timing.CurTime < pullerComp.NextThrow) - return false; - - pullerComp.NextThrow = _timing.CurTime + pullerComp.ThrowCooldown; + pullerComp.NextPushTargetChange = _timing.CurTime + pullerComp.PushChangeCooldown; + pullerComp.NextPushStop = _timing.CurTime + pullerComp.PushDuration; // Cap the distance - const float range = 2f; + var range = pullerComp.MaxPushRange; var fromUserCoords = coords.WithEntityId(player, EntityManager); var userCoords = new EntityCoordinates(player, Vector2.Zero); @@ -268,8 +374,9 @@ private bool OnRequestMovePulledObject(ICommonSession? session, EntityCoordinate fromUserCoords = userCoords.Offset(userDirection.Normalized() * range); } + pullerComp.PushingTowards = fromUserCoords; Dirty(player, pullerComp); - _throwing.TryThrow(pulled.Value, fromUserCoords, user: player, strength: 4f, animated: false, recoil: false, playSound: false, doSpin: false); + return false; } diff --git a/Content.Shared/Movement/Systems/SharedJetpackSystem.cs b/Content.Shared/Movement/Systems/SharedJetpackSystem.cs index 8c42511f84..8d358f8db3 100644 --- a/Content.Shared/Movement/Systems/SharedJetpackSystem.cs +++ b/Content.Shared/Movement/Systems/SharedJetpackSystem.cs @@ -1,9 +1,11 @@ using Content.Shared.Actions; +using Content.Shared.CCVar; using Content.Shared.Gravity; using Content.Shared.Interaction.Events; using Content.Shared.Movement.Components; using Content.Shared.Movement.Events; using Content.Shared.Popups; +using Robust.Shared.Configuration; using Robust.Shared.Containers; using Robust.Shared.Physics.Components; using Robust.Shared.Physics.Systems; @@ -20,6 +22,7 @@ public abstract class SharedJetpackSystem : EntitySystem [Dependency] private readonly SharedPopupSystem _popup = default!; [Dependency] private readonly SharedPhysicsSystem _physics = default!; [Dependency] private readonly ActionContainerSystem _actionContainer = default!; + [Dependency] private readonly IConfigurationManager _config = default!; public override void Initialize() { @@ -125,8 +128,11 @@ private void OnJetpackToggle(EntityUid uid, JetpackComponent component, ToggleJe private bool CanEnableOnGrid(EntityUid? gridUid) { - return gridUid == null || - (!HasComp(gridUid)); + return _config.GetCVar(CCVars.JetpackEnableAnywhere) + || gridUid == null + || _config.GetCVar(CCVars.JetpackEnableInNoGravity) + && TryComp(gridUid, out var comp) + && comp.Enabled; } private void OnJetpackGetAction(EntityUid uid, JetpackComponent component, GetItemActionsEvent args) diff --git a/Content.Shared/Movement/Systems/SharedMoverController.CVars.cs b/Content.Shared/Movement/Systems/SharedMoverController.CVars.cs new file mode 100644 index 0000000000..97c837eb8e --- /dev/null +++ b/Content.Shared/Movement/Systems/SharedMoverController.CVars.cs @@ -0,0 +1,43 @@ +using Content.Shared.CCVar; +using Content.Shared.Mind.Components; +using Content.Shared.Movement.Components; +using Content.Shared.Movement.Events; +using Robust.Shared.Configuration; + +namespace Content.Shared.Movement.Systems; + +public abstract partial class SharedMoverController +{ + [Dependency] private readonly INetConfigurationManager _netConfig = default!; + + private void InitializeCVars() + { + SubscribeLocalEvent(OnMindAdded); + SubscribeLocalEvent(OnMindRemoved); + SubscribeNetworkEvent(OnUpdateCVars); + } + + private void OnMindAdded(Entity ent, ref MindAddedMessage args) + { + if (args.Mind.Comp.Session?.Channel is not { } channel) + return; + + ent.Comp.DefaultSprinting = _netConfig.GetClientCVar(channel, CCVars.DefaultWalk); + WalkingAlert(ent, ent.Comp); + } + + private void OnMindRemoved(Entity ent, ref MindRemovedMessage args) + { + // If it's an ai-controlled mob, we probably want them sprinting by default. + ent.Comp.DefaultSprinting = true; + } + + private void OnUpdateCVars(UpdateInputCVarsMessage msg, EntitySessionEventArgs args) + { + if (args.SenderSession.AttachedEntity is not { } uid || !TryComp(uid, out var mover)) + return; + + mover.DefaultSprinting = _netConfig.GetClientCVar(args.SenderSession.Channel, CCVars.DefaultWalk); + WalkingAlert(uid, mover); + } +} diff --git a/Content.Shared/Movement/Systems/SharedMoverController.Input.cs b/Content.Shared/Movement/Systems/SharedMoverController.Input.cs index 50cffa6ffe..1c097ce17b 100644 --- a/Content.Shared/Movement/Systems/SharedMoverController.Input.cs +++ b/Content.Shared/Movement/Systems/SharedMoverController.Input.cs @@ -5,6 +5,7 @@ using Content.Shared.Input; using Content.Shared.Movement.Components; using Content.Shared.Movement.Events; +using Robust.Shared.Configuration; using Robust.Shared.GameStates; using Robust.Shared.Input; using Robust.Shared.Input.Binding; @@ -108,6 +109,7 @@ private void OnMoverHandleState(EntityUid uid, InputMoverComponent component, Co component.TargetRelativeRotation = state.TargetRelativeRotation; component.CanMove = state.CanMove; component.RelativeEntity = EnsureEntity(state.RelativeEntity, uid); + component.DefaultSprinting = state.DefaultSprinting; // Reset component.LastInputTick = GameTick.Zero; @@ -131,6 +133,7 @@ private void OnMoverGetState(EntityUid uid, InputMoverComponent component, ref C HeldMoveButtons = component.HeldMoveButtons, RelativeRotation = component.RelativeRotation, TargetRelativeRotation = component.TargetRelativeRotation, + DefaultSprinting = component.DefaultSprinting }; } @@ -260,7 +263,7 @@ private void OnInputParentChange(EntityUid uid, InputMoverComponent component, r } var oldMapId = args.OldMapId; - var mapId = args.Transform.MapID; + var mapId = args.Transform.MapUid; // If we change maps then reset eye rotation entirely. if (oldMapId != mapId) @@ -334,7 +337,7 @@ private void OnInputInit(EntityUid uid, InputMoverComponent component, Component component.RelativeEntity = xform.GridUid ?? xform.MapUid; component.TargetRelativeRotation = Angle.Zero; - WalkingAlert(uid, !component.Sprinting); + WalkingAlert(uid, component); } private void HandleRunChange(EntityUid uid, ushort subTick, bool walking) @@ -346,8 +349,8 @@ private void HandleRunChange(EntityUid uid, ushort subTick, bool walking) // if we swap to relay then stop our existing input if we ever change back. if (moverComp != null) { - WalkingAlert(uid, walking); SetMoveInput(moverComp, MoveButtons.None); + WalkingAlert(uid, moverComp); } HandleRunChange(relayMover.RelayEntity, subTick, walking); @@ -467,8 +470,8 @@ private void ResetSubtick(InputMoverComponent component) public void SetSprinting(EntityUid entity, InputMoverComponent component, ushort subTick, bool walking) { // Logger.Info($"[{_gameTiming.CurTick}/{subTick}] Sprint: {enabled}"); - WalkingAlert(entity, walking); SetMoveInput(entity, component, subTick, walking, MoveButtons.Walk); + WalkingAlert(entity, component); } /// @@ -620,7 +623,7 @@ public enum MoveButtons : byte Down = 2, Left = 4, Right = 8, - Walk = 16, // This may be either a sprint button or a walk button, depending on server config + Walk = 16, // This may be either a sprint button or a walk button, depending on mover config AnyDirection = Up | Down | Left | Right, } diff --git a/Content.Shared/Movement/Systems/SharedMoverController.cs b/Content.Shared/Movement/Systems/SharedMoverController.cs index 3cc35e7bc6..00afa3a4fb 100644 --- a/Content.Shared/Movement/Systems/SharedMoverController.cs +++ b/Content.Shared/Movement/Systems/SharedMoverController.cs @@ -64,11 +64,6 @@ public abstract partial class SharedMoverController : VirtualController protected EntityQuery CanMoveInAirQuery; protected EntityQuery NoRotateQuery; - private const float StepSoundMoveDistanceRunning = 2; - private const float StepSoundMoveDistanceWalking = 1.5f; - - private const float FootstepVariation = 0f; - /// /// /// @@ -98,6 +93,7 @@ public override void Initialize() InitializeInput(); InitializeRelay(); + InitializeCVars(); Subs.CVar(_configManager, CCVars.RelativeMovement, value => _relativeMovement = value, true); Subs.CVar(_configManager, CCVars.StopSpeed, value => _stopSpeed = value, true); UpdatesBefore.Add(typeof(TileFrictionController)); @@ -273,7 +269,7 @@ protected void HandleMobMovement( var audioParams = sound.Params .WithVolume(volume) - .WithVariation(sound.Params.Variation ?? FootstepVariation); + .WithVariation(sound.Params.Variation ?? mobMover.FootstepVariation); // If we're a relay target then predict the sound for all relays. if (relayTarget != null) @@ -298,10 +294,9 @@ protected void HandleMobMovement( PhysicsSystem.SetAngularVelocity(physicsUid, 0, body: physicsComponent); } - private void WalkingAlert(EntityUid player, bool walking) + private void WalkingAlert(EntityUid player, InputMoverComponent component) { - walking = _configManager.GetCVar(CCVars.GamePressToSprint) ? !walking : walking; - _alerts.ShowAlert(player, AlertType.Walking, walking ? (short) 0 : (short) 1); + _alerts.ShowAlert(player, AlertType.Walking, component.Sprinting ? (short) 1 : (short) 0); } public void LerpRotation(EntityUid uid, InputMoverComponent mover, float frameTime) @@ -425,7 +420,9 @@ private bool TryGetSound( return false; var coordinates = xform.Coordinates; - var distanceNeeded = mover.Sprinting ? StepSoundMoveDistanceRunning : StepSoundMoveDistanceWalking; + var distanceNeeded = mover.Sprinting + ? mobMover.StepSoundMoveDistanceRunning + : mobMover.StepSoundMoveDistanceWalking; // Handle footsteps. if (!weightless) diff --git a/Content.Shared/Ninja/Components/SpaceNinjaComponent.cs b/Content.Shared/Ninja/Components/SpaceNinjaComponent.cs index dff4b56aa4..0f3bff265c 100644 --- a/Content.Shared/Ninja/Components/SpaceNinjaComponent.cs +++ b/Content.Shared/Ninja/Components/SpaceNinjaComponent.cs @@ -1,6 +1,6 @@ using Content.Shared.Ninja.Systems; using Robust.Shared.GameStates; -using Robust.Shared.Serialization; +using Robust.Shared.Prototypes; namespace Content.Shared.Ninja.Components; @@ -35,4 +35,22 @@ public sealed partial class SpaceNinjaComponent : Component /// [DataField("katana"), AutoNetworkedField] public EntityUid? Katana; + + /// + /// Objective to complete after calling in a threat. + /// + [DataField] + public EntProtoId TerrorObjective = "TerrorObjective"; + + /// + /// Objective to complete after setting everyone to arrest. + /// + [DataField] + public EntProtoId MassArrestObjective = "MassArrestObjective"; + + /// + /// Objective to complete after the spider charge detonates. + /// + [DataField] + public EntProtoId SpiderChargeObjective = "SpiderChargeObjective"; } diff --git a/Content.Shared/Ninja/Systems/DashAbilitySystem.cs b/Content.Shared/Ninja/Systems/DashAbilitySystem.cs index f9e5d4a1f6..4853968b61 100644 --- a/Content.Shared/Ninja/Systems/DashAbilitySystem.cs +++ b/Content.Shared/Ninja/Systems/DashAbilitySystem.cs @@ -4,8 +4,8 @@ using Content.Shared.Hands.EntitySystems; using Content.Shared.Interaction; using Content.Shared.Ninja.Components; -using Content.Shared.Physics; using Content.Shared.Popups; +using Content.Shared.Examine; using Robust.Shared.Audio.Systems; using Robust.Shared.Timing; @@ -20,7 +20,7 @@ public sealed class DashAbilitySystem : EntitySystem [Dependency] private readonly SharedAudioSystem _audio = default!; [Dependency] private readonly SharedChargesSystem _charges = default!; [Dependency] private readonly SharedHandsSystem _hands = default!; - [Dependency] private readonly SharedInteractionSystem _interaction = default!; + [Dependency] private readonly ExamineSystemShared _examine = default!; [Dependency] private readonly SharedPopupSystem _popup = default!; [Dependency] private readonly SharedTransformSystem _transform = default!; [Dependency] private readonly ActionContainerSystem _actionContainer = default!; @@ -79,11 +79,10 @@ private void OnDash(EntityUid uid, DashAbilityComponent comp, DashEvent args) _popup.PopupClient(Loc.GetString("dash-ability-no-charges", ("item", uid)), user, user); return; } - - var origin = Transform(user).MapPosition; + var origin = _transform.GetMapCoordinates(user); var target = args.Target.ToMap(EntityManager, _transform); // prevent collision with the user duh - if (!_interaction.InRangeUnobstructed(origin, target, 0f, CollisionGroup.Opaque, uid => uid == user)) + if (!_examine.InRangeUnOccluded(origin, target, SharedInteractionSystem.MaxRaycastRange, null)) { // can only dash if the destination is visible on screen _popup.PopupClient(Loc.GetString("dash-ability-cant-see", ("item", uid)), user, user); diff --git a/Content.Shared/Ninja/Systems/SharedNinjaGlovesSystem.cs b/Content.Shared/Ninja/Systems/SharedNinjaGlovesSystem.cs index 815464bf7a..f61d0c6a90 100644 --- a/Content.Shared/Ninja/Systems/SharedNinjaGlovesSystem.cs +++ b/Content.Shared/Ninja/Systems/SharedNinjaGlovesSystem.cs @@ -1,6 +1,7 @@ using Content.Shared.Actions; using Content.Shared.CombatMode; using Content.Shared.Communications; +using Content.Shared.CriminalRecords.Components; using Content.Shared.Examine; using Content.Shared.Hands.Components; using Content.Shared.Interaction; @@ -62,6 +63,7 @@ public void DisableGloves(EntityUid uid, NinjaGlovesComponent? comp = null) RemComp(user); RemComp(user); RemComp(user); + RemComp(user); } /// diff --git a/Content.Shared/Nutrition/Components/ButcherableComponent.cs b/Content.Shared/Nutrition/Components/ButcherableComponent.cs index 4fce45422a..975d4329dc 100644 --- a/Content.Shared/Nutrition/Components/ButcherableComponent.cs +++ b/Content.Shared/Nutrition/Components/ButcherableComponent.cs @@ -1,5 +1,6 @@ using Content.Shared.Storage; using Robust.Shared.GameStates; +using Robust.Shared.Serialization; namespace Content.Shared.Nutrition.Components { @@ -25,6 +26,7 @@ public sealed partial class ButcherableComponent : Component public bool BeingButchered; } + [Serializable, NetSerializable] public enum ButcheringType : byte { Knife, // e.g. goliaths diff --git a/Content.Shared/Nutrition/Components/DrinkComponent.cs b/Content.Shared/Nutrition/Components/DrinkComponent.cs new file mode 100644 index 0000000000..17baaef5a3 --- /dev/null +++ b/Content.Shared/Nutrition/Components/DrinkComponent.cs @@ -0,0 +1,43 @@ +using Content.Shared.Nutrition.EntitySystems; +using Content.Shared.FixedPoint; +using Robust.Shared.Audio; +using Robust.Shared.GameStates; + +namespace Content.Shared.Nutrition.Components; + +[NetworkedComponent, AutoGenerateComponentState] +[RegisterComponent, Access(typeof(SharedDrinkSystem))] +public sealed partial class DrinkComponent : Component +{ + [DataField] + public string Solution = "drink"; + + [DataField, AutoNetworkedField] + public SoundSpecifier UseSound = new SoundPathSpecifier("/Audio/Items/drink.ogg"); + + [DataField, AutoNetworkedField] + public FixedPoint2 TransferAmount = FixedPoint2.New(5); + + /// + /// How long it takes to drink this yourself. + /// + [DataField, AutoNetworkedField] + public float Delay = 1; + + [DataField, AutoNetworkedField] + public bool Examinable = true; + + /// + /// If true, trying to drink when empty will not handle the event. + /// This means other systems such as equipping on use can run. + /// Example usecase is the bucket. + /// + [DataField] + public bool IgnoreEmpty; + + /// + /// This is how many seconds it takes to force feed someone this drink. + /// + [DataField, AutoNetworkedField] + public float ForceFeedDelay = 3; +} diff --git a/Content.Shared/Nutrition/Components/PressurizedSolutionComponent.cs b/Content.Shared/Nutrition/Components/PressurizedSolutionComponent.cs new file mode 100644 index 0000000000..7060f3bf79 --- /dev/null +++ b/Content.Shared/Nutrition/Components/PressurizedSolutionComponent.cs @@ -0,0 +1,106 @@ +using Content.Shared.Nutrition.EntitySystems; +using Robust.Shared.Audio; +using Robust.Shared.GameStates; + +namespace Content.Shared.Nutrition.Components; + +/// +/// Represents a solution container that can hold the pressure from a solution that +/// gets fizzy when aggitated, and can spray the solution when opened or thrown. +/// Handles simulating the fizziness of the solution, responding to aggitating events, +/// and spraying the solution out when opening or throwing the entity. +/// +[NetworkedComponent, AutoGenerateComponentState, AutoGenerateComponentPause] +[RegisterComponent, Access(typeof(PressurizedSolutionSystem))] +public sealed partial class PressurizedSolutionComponent : Component +{ + /// + /// The name of the solution to use. + /// + [DataField] + public string Solution = "drink"; + + /// + /// The sound to play when the solution sprays out of the container. + /// + [DataField] + public SoundSpecifier SpraySound = new SoundPathSpecifier("/Audio/Items/soda_spray.ogg"); + + /// + /// The longest amount of time that the solution can remain fizzy after being aggitated. + /// Put another way, how long the solution will remain fizzy when aggitated the maximum amount. + /// Used to calculate the current fizziness level. + /// + [DataField] + public TimeSpan FizzinessMaxDuration = TimeSpan.FromSeconds(120); + + /// + /// The time at which the solution will be fully settled after being shaken. + /// + [DataField, AutoNetworkedField, AutoPausedField] + public TimeSpan FizzySettleTime; + + /// + /// How much to increase the solution's fizziness each time it's shaken. + /// This assumes the solution has maximum fizzability. + /// A value of 1 will maximize it with a single shake, and a value of + /// 0.5 will increase it by half with each shake. + /// + [DataField] + public float FizzinessAddedOnShake = 1.0f; + + /// + /// How much to increase the solution's fizziness when it lands after being thrown. + /// This assumes the solution has maximum fizzability. + /// + [DataField] + public float FizzinessAddedOnLand = 0.25f; + + /// + /// How much to modify the chance of spraying when the entity is opened. + /// Increasing this effectively increases the fizziness value when checking if it should spray. + /// + [DataField] + public float SprayChanceModOnOpened = -0.01f; // Just enough to prevent spraying at 0 fizziness + + /// + /// How much to modify the chance of spraying when the entity is shaken. + /// Increasing this effectively increases the fizziness value when checking if it should spray. + /// + [DataField] + public float SprayChanceModOnShake = -1; // No spraying when shaken by default + + /// + /// How much to modify the chance of spraying when the entity lands after being thrown. + /// Increasing this effectively increases the fizziness value when checking if it should spray. + /// + [DataField] + public float SprayChanceModOnLand = 0.25f; + + /// + /// Holds the current randomly-rolled threshold value for spraying. + /// If fizziness exceeds this value when the entity is opened, it will spray. + /// By rolling this value when the entity is aggitated, we can have randomization + /// while still having prediction! + /// + [DataField, AutoNetworkedField] + public float SprayFizzinessThresholdRoll; + + /// + /// Popup message shown to user when sprayed by the solution. + /// + [DataField] + public LocId SprayHolderMessageSelf = "pressurized-solution-spray-holder-self"; + + /// + /// Popup message shown to others when a user is sprayed by the solution. + /// + [DataField] + public LocId SprayHolderMessageOthers = "pressurized-solution-spray-holder-others"; + + /// + /// Popup message shown above the entity when the solution sprays without a target. + /// + [DataField] + public LocId SprayGroundMessage = "pressurized-solution-spray-ground"; +} diff --git a/Content.Shared/Nutrition/Components/ShakeableComponent.cs b/Content.Shared/Nutrition/Components/ShakeableComponent.cs new file mode 100644 index 0000000000..cc1c08a9b2 --- /dev/null +++ b/Content.Shared/Nutrition/Components/ShakeableComponent.cs @@ -0,0 +1,50 @@ +using Robust.Shared.Audio; +using Robust.Shared.GameStates; + +namespace Content.Shared.Nutrition.Components; + +/// +/// Adds a "Shake" verb to the entity's verb menu. +/// Handles checking the entity can be shaken, displaying popups when shaking, +/// and raising a ShakeEvent when a shake occurs. +/// Reacting to being shaken is left up to other components. +/// +[RegisterComponent, NetworkedComponent] +public sealed partial class ShakeableComponent : Component +{ + /// + /// How long it takes to shake this item. + /// + [DataField] + public TimeSpan ShakeDuration = TimeSpan.FromSeconds(1f); + + /// + /// Does the entity need to be in the user's hand in order to be shaken? + /// + [DataField] + public bool RequireInHand; + + /// + /// Label to display in the verbs menu for this item's shake action. + /// + [DataField] + public LocId ShakeVerbText = "shakeable-verb"; + + /// + /// Text that will be displayed to the user when shaking this item. + /// + [DataField] + public LocId ShakePopupMessageSelf = "shakeable-popup-message-self"; + + /// + /// Text that will be displayed to other users when someone shakes this item. + /// + [DataField] + public LocId ShakePopupMessageOthers = "shakeable-popup-message-others"; + + /// + /// The sound that will be played when shaking this item. + /// + [DataField] + public SoundSpecifier ShakeSound = new SoundPathSpecifier("/Audio/Items/soda_shake.ogg"); +} diff --git a/Content.Shared/Nutrition/EntitySystems/HungerSystem.cs b/Content.Shared/Nutrition/EntitySystems/HungerSystem.cs index 1bc2a945f3..e6d8255333 100644 --- a/Content.Shared/Nutrition/EntitySystems/HungerSystem.cs +++ b/Content.Shared/Nutrition/EntitySystems/HungerSystem.cs @@ -1,13 +1,17 @@ +using System.Diagnostics.CodeAnalysis; using Content.Shared.Alert; using Content.Shared.Damage; using Content.Shared.Mobs.Systems; using Content.Shared.Movement.Systems; using Content.Shared.Nutrition.Components; using Content.Shared.Rejuvenate; +using Content.Shared.StatusIcon; +using Robust.Shared.Prototypes; using Content.Shared.Mood; using Robust.Shared.Network; using Robust.Shared.Random; using Robust.Shared.Timing; +using Robust.Shared.Utility; using Robust.Shared.Configuration; using Content.Shared.CCVar; @@ -16,6 +20,7 @@ namespace Content.Shared.Nutrition.EntitySystems; public sealed class HungerSystem : EntitySystem { [Dependency] private readonly IGameTiming _timing = default!; + [Dependency] private readonly IPrototypeManager _prototype = default!; [Dependency] private readonly IRobustRandom _random = default!; [Dependency] private readonly AlertsSystem _alerts = default!; [Dependency] private readonly DamageableSystem _damageable = default!; @@ -25,10 +30,27 @@ public sealed class HungerSystem : EntitySystem [Dependency] private readonly INetManager _net = default!; [Dependency] private readonly IConfigurationManager _config = default!; + [ValidatePrototypeId] + private const string HungerIconOverfedId = "HungerIconOverfed"; + + [ValidatePrototypeId] + private const string HungerIconPeckishId = "HungerIconPeckish"; + + [ValidatePrototypeId] + private const string HungerIconStarvingId = "HungerIconStarving"; + + private StatusIconPrototype? _hungerIconOverfed; + private StatusIconPrototype? _hungerIconPeckish; + private StatusIconPrototype? _hungerIconStarving; + public override void Initialize() { base.Initialize(); + DebugTools.Assert(_prototype.TryIndex(HungerIconOverfedId, out _hungerIconOverfed) && + _prototype.TryIndex(HungerIconPeckishId, out _hungerIconPeckish) && + _prototype.TryIndex(HungerIconStarvingId, out _hungerIconStarving)); + SubscribeLocalEvent(OnMapInit); SubscribeLocalEvent(OnShutdown); SubscribeLocalEvent(OnRefreshMovespeed); @@ -205,6 +227,27 @@ private bool GetMovementThreshold(HungerThreshold threshold) } } + public bool TryGetStatusIconPrototype(HungerComponent component, [NotNullWhen(true)] out StatusIconPrototype? prototype) + { + switch (component.CurrentThreshold) + { + case HungerThreshold.Overfed: + prototype = _hungerIconOverfed; + break; + case HungerThreshold.Peckish: + prototype = _hungerIconPeckish; + break; + case HungerThreshold.Starving: + prototype = _hungerIconStarving; + break; + default: + prototype = null; + break; + } + + return prototype != null; + } + public override void Update(float frameTime) { base.Update(frameTime); @@ -221,4 +264,3 @@ public override void Update(float frameTime) } } } - diff --git a/Content.Shared/Nutrition/EntitySystems/OpenableSystem.cs b/Content.Shared/Nutrition/EntitySystems/OpenableSystem.cs index 0ad0877d22..2934ced8b4 100644 --- a/Content.Shared/Nutrition/EntitySystems/OpenableSystem.cs +++ b/Content.Shared/Nutrition/EntitySystems/OpenableSystem.cs @@ -16,9 +16,9 @@ namespace Content.Shared.Nutrition.EntitySystems; /// public sealed partial class OpenableSystem : EntitySystem { - [Dependency] protected readonly SharedAppearanceSystem Appearance = default!; - [Dependency] protected readonly SharedAudioSystem Audio = default!; - [Dependency] protected readonly SharedPopupSystem Popup = default!; + [Dependency] private readonly SharedAppearanceSystem _appearance = default!; + [Dependency] private readonly SharedAudioSystem _audio = default!; + [Dependency] private readonly SharedPopupSystem _popup = default!; public override void Initialize() { @@ -31,6 +31,8 @@ public override void Initialize() SubscribeLocalEvent(HandleIfClosed); SubscribeLocalEvent>(AddOpenCloseVerbs); SubscribeLocalEvent(OnTransferAttempt); + SubscribeLocalEvent(OnAttemptShake); + SubscribeLocalEvent(OnAttemptAddFizziness); } private void OnInit(EntityUid uid, OpenableComponent comp, ComponentInit args) @@ -100,6 +102,20 @@ private void OnTransferAttempt(Entity ent, ref SolutionTransf } } + private void OnAttemptShake(Entity entity, ref AttemptShakeEvent args) + { + // Prevent shaking open containers + if (entity.Comp.Opened) + args.Cancelled = true; + } + + private void OnAttemptAddFizziness(Entity entity, ref AttemptAddFizzinessEvent args) + { + // Can't add fizziness to an open container + if (entity.Comp.Opened) + args.Cancelled = true; + } + /// /// Returns true if the entity either does not have OpenableComponent or it is opened. /// Drinks that don't have OpenableComponent are automatically open, so it returns true. @@ -126,7 +142,7 @@ public bool IsClosed(EntityUid uid, EntityUid? user = null, OpenableComponent? c return false; if (user != null) - Popup.PopupEntity(Loc.GetString(comp.ClosedPopup, ("owner", uid)), user.Value, user.Value); + _popup.PopupEntity(Loc.GetString(comp.ClosedPopup, ("owner", uid)), user.Value, user.Value); return true; } @@ -139,13 +155,13 @@ public void UpdateAppearance(EntityUid uid, OpenableComponent? comp = null, Appe if (!Resolve(uid, ref comp)) return; - Appearance.SetData(uid, OpenableVisuals.Opened, comp.Opened, appearance); + _appearance.SetData(uid, OpenableVisuals.Opened, comp.Opened, appearance); } /// /// Sets the opened field and updates open visuals. /// - public void SetOpen(EntityUid uid, bool opened = true, OpenableComponent? comp = null) + public void SetOpen(EntityUid uid, bool opened = true, OpenableComponent? comp = null, EntityUid? user = null) { if (!Resolve(uid, ref comp, false) || opened == comp.Opened) return; @@ -155,12 +171,12 @@ public void SetOpen(EntityUid uid, bool opened = true, OpenableComponent? comp = if (opened) { - var ev = new OpenableOpenedEvent(); + var ev = new OpenableOpenedEvent(user); RaiseLocalEvent(uid, ref ev); } else { - var ev = new OpenableClosedEvent(); + var ev = new OpenableClosedEvent(user); RaiseLocalEvent(uid, ref ev); } @@ -176,8 +192,8 @@ public bool TryOpen(EntityUid uid, OpenableComponent? comp = null, EntityUid? us if (!Resolve(uid, ref comp, false) || comp.Opened) return false; - SetOpen(uid, true, comp); - Audio.PlayPredicted(comp.Sound, uid, user); + SetOpen(uid, true, comp, user); + _audio.PlayPredicted(comp.Sound, uid, user); return true; } @@ -190,9 +206,9 @@ public bool TryClose(EntityUid uid, OpenableComponent? comp = null, EntityUid? u if (!Resolve(uid, ref comp, false) || !comp.Opened || !comp.Closeable) return false; - SetOpen(uid, false, comp); + SetOpen(uid, false, comp, user); if (comp.CloseSound != null) - Audio.PlayPredicted(comp.CloseSound, uid, user); + _audio.PlayPredicted(comp.CloseSound, uid, user); return true; } } @@ -201,10 +217,10 @@ public bool TryClose(EntityUid uid, OpenableComponent? comp = null, EntityUid? u /// Raised after an Openable is opened. /// [ByRefEvent] -public record struct OpenableOpenedEvent; +public record struct OpenableOpenedEvent(EntityUid? User = null); /// /// Raised after an Openable is closed. /// [ByRefEvent] -public record struct OpenableClosedEvent; +public record struct OpenableClosedEvent(EntityUid? User = null); diff --git a/Content.Shared/Nutrition/EntitySystems/PressurizedSolutionSystem.cs b/Content.Shared/Nutrition/EntitySystems/PressurizedSolutionSystem.cs new file mode 100644 index 0000000000..d63b8e7326 --- /dev/null +++ b/Content.Shared/Nutrition/EntitySystems/PressurizedSolutionSystem.cs @@ -0,0 +1,285 @@ +using Content.Shared.Chemistry.Reagent; +using Content.Shared.Chemistry.EntitySystems; +using Content.Shared.Hands.EntitySystems; +using Content.Shared.Nutrition.Components; +using Content.Shared.Throwing; +using Content.Shared.IdentityManagement; +using Robust.Shared.Audio.Systems; +using Robust.Shared.Random; +using Robust.Shared.Timing; +using Robust.Shared.Prototypes; +using Robust.Shared.Network; +using Content.Shared.Fluids; +using Content.Shared.Popups; + +namespace Content.Shared.Nutrition.EntitySystems; + +public sealed partial class PressurizedSolutionSystem : EntitySystem +{ + [Dependency] private readonly SharedSolutionContainerSystem _solutionContainer = default!; + [Dependency] private readonly OpenableSystem _openable = default!; + [Dependency] private readonly SharedAudioSystem _audio = default!; + [Dependency] private readonly SharedHandsSystem _hands = default!; + [Dependency] private readonly SharedPopupSystem _popup = default!; + [Dependency] private readonly SharedPuddleSystem _puddle = default!; + [Dependency] private readonly INetManager _net = default!; + [Dependency] private readonly IGameTiming _timing = default!; + [Dependency] private readonly IRobustRandom _random = default!; + [Dependency] private readonly IPrototypeManager _prototypeManager = default!; + public override void Initialize() + { + base.Initialize(); + + SubscribeLocalEvent(OnMapInit); + SubscribeLocalEvent(OnShake); + SubscribeLocalEvent(OnOpened); + SubscribeLocalEvent(OnLand); + SubscribeLocalEvent(OnSolutionUpdate); + } + + /// + /// Helper method for checking if the solution's fizziness is high enough to spray. + /// is added to the actual fizziness for the comparison. + /// + private bool SprayCheck(Entity entity, float chanceMod = 0) + { + return Fizziness((entity, entity.Comp)) + chanceMod > entity.Comp.SprayFizzinessThresholdRoll; + } + + /// + /// Calculates how readily the contained solution becomes fizzy. + /// + private float SolutionFizzability(Entity entity) + { + if (!_solutionContainer.TryGetSolution(entity.Owner, entity.Comp.Solution, out var _, out var solution)) + return 0; + + // An empty solution can't be fizzy + if (solution.Volume <= 0) + return 0; + + var totalFizzability = 0f; + + // Check each reagent in the solution + foreach (var reagent in solution.Contents) + { + if (_prototypeManager.TryIndex(reagent.Reagent.Prototype, out ReagentPrototype? reagentProto) && reagentProto != null) + { + // What portion of the solution is this reagent? + var proportion = (float) (reagent.Quantity / solution.Volume); + totalFizzability += reagentProto.Fizziness * proportion; + } + } + + return totalFizzability; + } + + /// + /// Increases the fizziness level of the solution by the given amount, + /// scaled by the solution's fizzability. + /// 0 will result in no change, and 1 will maximize fizziness. + /// Also rerolls the spray threshold. + /// + private void AddFizziness(Entity entity, float amount) + { + var fizzability = SolutionFizzability(entity); + + // Can't add fizziness if the solution isn't fizzy + if (fizzability <= 0) + return; + + // Make sure nothing is preventing fizziness from being added + var attemptEv = new AttemptAddFizzinessEvent(entity, amount); + RaiseLocalEvent(entity, ref attemptEv); + if (attemptEv.Cancelled) + return; + + // Scale added fizziness by the solution's fizzability + amount *= fizzability; + + // Convert fizziness to time + var duration = amount * entity.Comp.FizzinessMaxDuration; + + // Add to the existing settle time, if one exists. Otherwise, add to the current time + var start = entity.Comp.FizzySettleTime > _timing.CurTime ? entity.Comp.FizzySettleTime : _timing.CurTime; + var newTime = start + duration; + + // Cap the maximum fizziness + var maxEnd = _timing.CurTime + entity.Comp.FizzinessMaxDuration; + if (newTime > maxEnd) + newTime = maxEnd; + + entity.Comp.FizzySettleTime = newTime; + + // Roll a new fizziness threshold + RollSprayThreshold(entity); + } + + /// + /// Helper method. Performs a . If it passes, calls . If it fails, . + /// + private void SprayOrAddFizziness(Entity entity, float chanceMod = 0, float fizzinessToAdd = 0, EntityUid? user = null) + { + if (SprayCheck(entity, chanceMod)) + TrySpray((entity, entity.Comp), user); + else + AddFizziness(entity, fizzinessToAdd); + } + + /// + /// Randomly generates a new spray threshold. + /// This is the value used to compare fizziness against when doing . + /// Since RNG will give different results between client and server, this is run on the server + /// and synced to the client by marking the component dirty. + /// We roll this in advance, rather than during , so that the value (hopefully) + /// has time to get synced to the client, so we can try be accurate with prediction. + /// + private void RollSprayThreshold(Entity entity) + { + // Can't predict random, so we wait for the server to tell us + if (!_net.IsServer) + return; + + entity.Comp.SprayFizzinessThresholdRoll = _random.NextFloat(); + Dirty(entity, entity.Comp); + } + + #region Public API + + /// + /// Does the entity contain a solution capable of being fizzy? + /// + public bool CanSpray(Entity entity) + { + if (!Resolve(entity, ref entity.Comp, false)) + return false; + + return SolutionFizzability((entity, entity.Comp)) > 0; + } + + /// + /// Attempts to spray the solution onto the given entity, or the ground if none is given. + /// Fails if the solution isn't able to be sprayed. + /// + public bool TrySpray(Entity entity, EntityUid? target = null) + { + if (!Resolve(entity, ref entity.Comp)) + return false; + + if (!CanSpray(entity)) + return false; + + if (!_solutionContainer.TryGetSolution(entity.Owner, entity.Comp.Solution, out var soln, out var interactions)) + return false; + + // If the container is openable, open it + _openable.SetOpen(entity, true); + + // Get the spray solution from the container + var solution = _solutionContainer.SplitSolution(soln.Value, interactions.Volume); + + // Spray the solution onto the ground and anyone nearby + if (TryComp(entity, out var transform)) + _puddle.TrySplashSpillAt(entity, transform.Coordinates, solution, out _, sound: false); + + var drinkName = Identity.Entity(entity, EntityManager); + + if (target != null) + { + var victimName = Identity.Entity(target.Value, EntityManager); + + var selfMessage = Loc.GetString(entity.Comp.SprayHolderMessageSelf, ("victim", victimName), ("drink", drinkName)); + var othersMessage = Loc.GetString(entity.Comp.SprayHolderMessageOthers, ("victim", victimName), ("drink", drinkName)); + _popup.PopupPredicted(selfMessage, othersMessage, target.Value, target.Value); + } + else + { + // Show a popup to everyone in PVS range + if (_timing.IsFirstTimePredicted) + _popup.PopupEntity(Loc.GetString(entity.Comp.SprayGroundMessage, ("drink", drinkName)), entity); + } + + _audio.PlayPredicted(entity.Comp.SpraySound, entity, target); + + // We just used all our fizziness, so clear it + TryClearFizziness(entity); + + return true; + } + + /// + /// What is the current fizziness level of the solution, from 0 to 1? + /// + public double Fizziness(Entity entity) + { + // No component means no fizz + if (!Resolve(entity, ref entity.Comp, false)) + return 0; + + // No negative fizziness + if (entity.Comp.FizzySettleTime <= _timing.CurTime) + return 0; + + var currentDuration = entity.Comp.FizzySettleTime - _timing.CurTime; + return Easings.InOutCubic((float) Math.Min(currentDuration / entity.Comp.FizzinessMaxDuration, 1)); + } + + /// + /// Attempts to clear any fizziness in the solution. + /// + /// Rolls a new spray threshold. + public void TryClearFizziness(Entity entity) + { + if (!Resolve(entity, ref entity.Comp)) + return; + + entity.Comp.FizzySettleTime = TimeSpan.Zero; + + // Roll a new fizziness threshold + RollSprayThreshold((entity, entity.Comp)); + } + + #endregion + + #region Event Handlers + private void OnMapInit(Entity entity, ref MapInitEvent args) + { + RollSprayThreshold(entity); + } + + private void OnOpened(Entity entity, ref OpenableOpenedEvent args) + { + // Make sure the opener is actually holding the drink + var held = args.User != null && _hands.IsHolding(args.User.Value, entity, out _); + + SprayOrAddFizziness(entity, entity.Comp.SprayChanceModOnOpened, -1, held ? args.User : null); + } + + private void OnShake(Entity entity, ref ShakeEvent args) + { + SprayOrAddFizziness(entity, entity.Comp.SprayChanceModOnShake, entity.Comp.FizzinessAddedOnShake, args.Shaker); + } + + private void OnLand(Entity entity, ref LandEvent args) + { + SprayOrAddFizziness(entity, entity.Comp.SprayChanceModOnLand, entity.Comp.FizzinessAddedOnLand); + } + + private void OnSolutionUpdate(Entity entity, ref SolutionContainerChangedEvent args) + { + if (args.SolutionId != entity.Comp.Solution) + return; + + // If the solution is no longer capable of being fizzy, clear any built up fizziness + if (SolutionFizzability(entity) <= 0) + TryClearFizziness((entity, entity.Comp)); + } + + #endregion +} + +[ByRefEvent] +public record struct AttemptAddFizzinessEvent(Entity Entity, float Amount) +{ + public bool Cancelled; +} diff --git a/Content.Shared/Nutrition/EntitySystems/ShakeableSystem.cs b/Content.Shared/Nutrition/EntitySystems/ShakeableSystem.cs new file mode 100644 index 0000000000..39890aada9 --- /dev/null +++ b/Content.Shared/Nutrition/EntitySystems/ShakeableSystem.cs @@ -0,0 +1,155 @@ +using Content.Shared.DoAfter; +using Content.Shared.Hands.EntitySystems; +using Content.Shared.IdentityManagement; +using Content.Shared.Nutrition.Components; +using Content.Shared.Popups; +using Content.Shared.Verbs; +using Robust.Shared.Audio.Systems; +using Robust.Shared.Serialization; + +namespace Content.Shared.Nutrition.EntitySystems; + +public sealed partial class ShakeableSystem : EntitySystem +{ + [Dependency] private readonly SharedPopupSystem _popup = default!; + [Dependency] private readonly SharedAudioSystem _audio = default!; + [Dependency] private readonly SharedDoAfterSystem _doAfter = default!; + [Dependency] private readonly SharedHandsSystem _hands = default!; + + public override void Initialize() + { + base.Initialize(); + + SubscribeLocalEvent>(AddShakeVerb); + SubscribeLocalEvent(OnShakeDoAfter); + } + + private void AddShakeVerb(EntityUid uid, ShakeableComponent component, GetVerbsEvent args) + { + if (args.Hands == null || !args.CanAccess || !args.CanInteract) + return; + + if (!CanShake((uid, component), args.User)) + return; + + var shakeVerb = new Verb() + { + Text = Loc.GetString(component.ShakeVerbText), + Act = () => TryStartShake((args.Target, component), args.User) + }; + args.Verbs.Add(shakeVerb); + } + + private void OnShakeDoAfter(Entity entity, ref ShakeDoAfterEvent args) + { + if (args.Handled || args.Cancelled) + return; + + TryShake((entity, entity.Comp), args.User); + } + + /// + /// Attempts to start the doAfter to shake the entity. + /// Fails and returns false if the entity cannot be shaken for any reason. + /// If successful, displays popup messages, plays shake sound, and starts the doAfter. + /// + public bool TryStartShake(Entity entity, EntityUid user) + { + if (!Resolve(entity, ref entity.Comp)) + return false; + + if (!CanShake(entity, user)) + return false; + + var doAfterArgs = new DoAfterArgs(EntityManager, + user, + entity.Comp.ShakeDuration, + new ShakeDoAfterEvent(), + eventTarget: entity, + target: user, + used: entity) + { + NeedHand = true, + BreakOnDamage = true, + DistanceThreshold = 1, + MovementThreshold = 0.01f, + BreakOnHandChange = entity.Comp.RequireInHand, + }; + if (entity.Comp.RequireInHand) + doAfterArgs.BreakOnHandChange = true; + + if (!_doAfter.TryStartDoAfter(doAfterArgs)) + return false; + + var userName = Identity.Entity(user, EntityManager); + var shakeableName = Identity.Entity(entity, EntityManager); + + var selfMessage = Loc.GetString(entity.Comp.ShakePopupMessageSelf, ("user", userName), ("shakeable", shakeableName)); + var othersMessage = Loc.GetString(entity.Comp.ShakePopupMessageOthers, ("user", userName), ("shakeable", shakeableName)); + _popup.PopupPredicted(selfMessage, othersMessage, user, user); + + _audio.PlayPredicted(entity.Comp.ShakeSound, entity, user); + + return true; + } + + /// + /// Attempts to shake the entity, skipping the doAfter. + /// Fails and returns false if the entity cannot be shaken for any reason. + /// If successful, raises a ShakeEvent on the entity. + /// + public bool TryShake(Entity entity, EntityUid? user = null) + { + if (!Resolve(entity, ref entity.Comp)) + return false; + + if (!CanShake(entity, user)) + return false; + + var ev = new ShakeEvent(user); + RaiseLocalEvent(entity, ref ev); + + return true; + } + + + /// + /// Is it possible for the given user to shake the entity? + /// + public bool CanShake(Entity entity, EntityUid? user = null) + { + if (!Resolve(entity, ref entity.Comp, false)) + return false; + + // If required to be in hand, fail if the user is not holding this entity + if (user != null && entity.Comp.RequireInHand && !_hands.IsHolding(user.Value, entity, out _)) + return false; + + var attemptEv = new AttemptShakeEvent(); + RaiseLocalEvent(entity, ref attemptEv); + if (attemptEv.Cancelled) + return false; + return true; + } +} + +/// +/// Raised when a ShakeableComponent is shaken, after the doAfter completes. +/// +[ByRefEvent] +public record struct ShakeEvent(EntityUid? Shaker); + +/// +/// Raised when trying to shake a ShakeableComponent. If cancelled, the +/// entity will not be shaken. +/// +[ByRefEvent] +public record struct AttemptShakeEvent() +{ + public bool Cancelled; +} + +[Serializable, NetSerializable] +public sealed partial class ShakeDoAfterEvent : SimpleDoAfterEvent +{ +} diff --git a/Content.Shared/Nutrition/EntitySystems/SharedDrinkSystem.cs b/Content.Shared/Nutrition/EntitySystems/SharedDrinkSystem.cs new file mode 100644 index 0000000000..7cae3b9208 --- /dev/null +++ b/Content.Shared/Nutrition/EntitySystems/SharedDrinkSystem.cs @@ -0,0 +1,90 @@ +using Content.Shared.Chemistry.Components.SolutionManager; +using Content.Shared.Chemistry.EntitySystems; +using Content.Shared.Examine; +using Content.Shared.FixedPoint; +using Content.Shared.Nutrition.Components; + +namespace Content.Shared.Nutrition.EntitySystems; + +public abstract partial class SharedDrinkSystem : EntitySystem +{ + [Dependency] private readonly SharedSolutionContainerSystem _solutionContainer = default!; + [Dependency] private readonly OpenableSystem _openable = default!; + + public override void Initialize() + { + base.Initialize(); + + SubscribeLocalEvent(OnAttemptShake); + SubscribeLocalEvent(OnExamined); + } + + protected void OnAttemptShake(Entity entity, ref AttemptShakeEvent args) + { + if (IsEmpty(entity, entity.Comp)) + args.Cancelled = true; + } + + protected void OnExamined(Entity entity, ref ExaminedEvent args) + { + TryComp(entity, out var openable); + if (_openable.IsClosed(entity.Owner, null, openable) || !args.IsInDetailsRange || !entity.Comp.Examinable) + return; + + var empty = IsEmpty(entity, entity.Comp); + if (empty) + { + args.PushMarkup(Loc.GetString("drink-component-on-examine-is-empty")); + return; + } + + if (HasComp(entity)) + { + //provide exact measurement for beakers + args.PushText(Loc.GetString("drink-component-on-examine-exact-volume", ("amount", DrinkVolume(entity, entity.Comp)))); + } + else + { + //general approximation + var remainingString = (int) _solutionContainer.PercentFull(entity) switch + { + 100 => "drink-component-on-examine-is-full", + > 66 => "drink-component-on-examine-is-mostly-full", + > 33 => HalfEmptyOrHalfFull(args), + _ => "drink-component-on-examine-is-mostly-empty", + }; + args.PushMarkup(Loc.GetString(remainingString)); + } + } + + protected FixedPoint2 DrinkVolume(EntityUid uid, DrinkComponent? component = null) + { + if (!Resolve(uid, ref component)) + return FixedPoint2.Zero; + + if (!_solutionContainer.TryGetSolution(uid, component.Solution, out _, out var sol)) + return FixedPoint2.Zero; + + return sol.Volume; + } + + protected bool IsEmpty(EntityUid uid, DrinkComponent? component = null) + { + if (!Resolve(uid, ref component)) + return true; + + return DrinkVolume(uid, component) <= 0; + } + + // some see half empty, and others see half full + private string HalfEmptyOrHalfFull(ExaminedEvent args) + { + string remainingString = "drink-component-on-examine-is-half-full"; + + if (TryComp(args.Examiner, out var examiner) && examiner.EntityName.Length > 0 + && string.Compare(examiner.EntityName.Substring(0, 1), "m", StringComparison.InvariantCultureIgnoreCase) > 0) + remainingString = "drink-component-on-examine-is-half-empty"; + + return remainingString; + } +} diff --git a/Content.Shared/Nutrition/EntitySystems/SharedFoodGuideDataSystem.cs b/Content.Shared/Nutrition/EntitySystems/SharedFoodGuideDataSystem.cs new file mode 100644 index 0000000000..c31776cd75 --- /dev/null +++ b/Content.Shared/Nutrition/EntitySystems/SharedFoodGuideDataSystem.cs @@ -0,0 +1,158 @@ +using System.Linq; +using Content.Shared.Chemistry.Reaction; +using Content.Shared.Chemistry.Reagent; +using Content.Shared.Kitchen; +using Content.Shared.Nutrition.Components; +using Content.Shared.Storage; +using Robust.Shared.Prototypes; +using Robust.Shared.Serialization; + +namespace Content.Client.Chemistry.EntitySystems; + +public abstract class SharedFoodGuideDataSystem : EntitySystem +{ + public List Registry = new(); +} + +[Serializable, NetSerializable] +public sealed class FoodGuideRegistryChangedEvent : EntityEventArgs +{ + [DataField] + public List Changeset; + + public FoodGuideRegistryChangedEvent(List changeset) + { + Changeset = changeset; + } +} + +[DataDefinition, Serializable, NetSerializable] +public partial struct FoodGuideEntry +{ + [DataField] + public EntProtoId Result; + + [DataField] + public string Identifier; // Used for sorting + + [DataField] + public FoodSourceData[] Sources; + + [DataField] + public ReagentQuantity[] Composition; + + public FoodGuideEntry(EntProtoId result, string identifier, FoodSourceData[] sources, ReagentQuantity[] composition) + { + Result = result; + Identifier = identifier; + Sources = sources; + Composition = composition; + } +} + +[ImplicitDataDefinitionForInheritors, Serializable, NetSerializable] +public abstract partial class FoodSourceData +{ + /// + /// Number of products created from this source. Used for primary ordering. + /// + public abstract int OutputCount { get; } + + /// + /// A string used to distinguish different sources. Typically the name of the related entity. + /// + public string Identitier; + + public abstract bool IsSourceOf(EntProtoId food); +} + +[Serializable, NetSerializable] +public sealed partial class FoodButcheringData : FoodSourceData +{ + [DataField] + public EntProtoId Butchered; + + [DataField] + public ButcheringType Type; + + [DataField] + public List Results; + + public override int OutputCount => Results.Count; + + public FoodButcheringData(EntityPrototype butchered, ButcherableComponent comp) + { + Identitier = butchered.Name; + Butchered = butchered.ID; + Type = comp.Type; + Results = comp.SpawnedEntities; + } + + public override bool IsSourceOf(EntProtoId food) => Results.Any(it => it.PrototypeId == food); +} + +[Serializable, NetSerializable] +public sealed partial class FoodSlicingData : FoodSourceData +{ + [DataField] + public EntProtoId Sliced, Result; + + [DataField] + private int _outputCount; + public override int OutputCount => _outputCount; + + public FoodSlicingData(EntityPrototype sliced, EntProtoId result, int outputCount) + { + Identitier = sliced.Name; + Sliced = sliced.ID; + Result = result; + _outputCount = outputCount; // Server-only + } + + public override bool IsSourceOf(EntProtoId food) => food == Result; +} + +[Serializable, NetSerializable] +public sealed partial class FoodRecipeData : FoodSourceData +{ + [DataField] + public ProtoId Recipe; + + [DataField] + public EntProtoId Result; + + public override int OutputCount => 1; + + public FoodRecipeData(FoodRecipePrototype proto) + { + Identitier = proto.Name; + Recipe = proto.ID; + Result = proto.Result; + } + + public override bool IsSourceOf(EntProtoId food) => food == Result; +} + +[Serializable, NetSerializable] +public sealed partial class FoodReactionData : FoodSourceData +{ + [DataField] + public ProtoId Reaction; + + [DataField] + public EntProtoId Result; + + [DataField] + private int _outputCount; + public override int OutputCount => _outputCount; + + public FoodReactionData(ReactionPrototype reaction, EntProtoId result, int outputCount) + { + Identitier = reaction.Name; + Reaction = reaction.ID; + Result = result; + _outputCount = outputCount; + } + + public override bool IsSourceOf(EntProtoId food) => food == Result; +} diff --git a/Content.Shared/Nutrition/EntitySystems/ThirstSystem.cs b/Content.Shared/Nutrition/EntitySystems/ThirstSystem.cs index f1ddc9b2b5..a068b19104 100644 --- a/Content.Shared/Nutrition/EntitySystems/ThirstSystem.cs +++ b/Content.Shared/Nutrition/EntitySystems/ThirstSystem.cs @@ -3,9 +3,12 @@ using Content.Shared.Movement.Systems; using Content.Shared.Nutrition.Components; using Content.Shared.Rejuvenate; +using Content.Shared.StatusIcon; using JetBrains.Annotations; +using Robust.Shared.Prototypes; using Robust.Shared.Random; using Robust.Shared.Timing; +using Robust.Shared.Utility; using Content.Shared.Mood; using Robust.Shared.Configuration; using Content.Shared.CCVar; @@ -16,16 +19,34 @@ namespace Content.Shared.Nutrition.EntitySystems; public sealed class ThirstSystem : EntitySystem { [Dependency] private readonly IGameTiming _timing = default!; + [Dependency] private readonly IPrototypeManager _prototype = default!; [Dependency] private readonly IRobustRandom _random = default!; [Dependency] private readonly AlertsSystem _alerts = default!; [Dependency] private readonly MovementSpeedModifierSystem _movement = default!; [Dependency] private readonly SharedJetpackSystem _jetpack = default!; [Dependency] private readonly IConfigurationManager _config = default!; + [ValidatePrototypeId] + private const string ThirstIconOverhydratedId = "ThirstIconOverhydrated"; + + [ValidatePrototypeId] + private const string ThirstIconThirstyId = "ThirstIconThirsty"; + + [ValidatePrototypeId] + private const string ThirstIconParchedId = "ThirstIconParched"; + + private StatusIconPrototype? _thirstIconOverhydrated = null; + private StatusIconPrototype? _thirstIconThirsty = null; + private StatusIconPrototype? _thirstIconParched = null; + public override void Initialize() { base.Initialize(); + DebugTools.Assert(_prototype.TryIndex(ThirstIconOverhydratedId, out _thirstIconOverhydrated) && + _prototype.TryIndex(ThirstIconThirstyId, out _thirstIconThirsty) && + _prototype.TryIndex(ThirstIconParchedId, out _thirstIconParched)); + SubscribeLocalEvent(OnRefreshMovespeed); SubscribeLocalEvent(OnMapInit); SubscribeLocalEvent(OnRejuvenate); @@ -112,6 +133,28 @@ private bool IsMovementThreshold(ThirstThreshold threshold) } } + public bool TryGetStatusIconPrototype(ThirstComponent component, out StatusIconPrototype? prototype) + { + switch (component.CurrentThirstThreshold) + { + case ThirstThreshold.OverHydrated: + prototype = _thirstIconOverhydrated; + return true; + + case ThirstThreshold.Thirsty: + prototype = _thirstIconThirsty; + return true; + + case ThirstThreshold.Parched: + prototype = _thirstIconParched; + return true; + + default: + prototype = null; + return false; + } + } + private void UpdateEffects(EntityUid uid, ThirstComponent component) { if (!_config.GetCVar(CCVars.MoodEnabled) diff --git a/Content.Shared/Nyanotrasen/Mail/MailDeliveryPoolPrototype.cs b/Content.Shared/Nyanotrasen/Mail/MailDeliveryPoolPrototype.cs index 544f489d28..4de374a164 100644 --- a/Content.Shared/Nyanotrasen/Mail/MailDeliveryPoolPrototype.cs +++ b/Content.Shared/Nyanotrasen/Mail/MailDeliveryPoolPrototype.cs @@ -6,7 +6,7 @@ namespace Content.Shared.Mail; /// Generic random weighting dataset to use. /// [Prototype("mailDeliveryPool")] -public sealed class MailDeliveryPoolPrototype : IPrototype +public sealed partial class MailDeliveryPoolPrototype : IPrototype { [IdDataFieldAttribute] public string ID { get; } = default!; diff --git a/Content.Shared/Objectives/ObjectiveInfo.cs b/Content.Shared/Objectives/ObjectiveInfo.cs index 689fe17e6c..0b7e7a15f6 100644 --- a/Content.Shared/Objectives/ObjectiveInfo.cs +++ b/Content.Shared/Objectives/ObjectiveInfo.cs @@ -1,3 +1,4 @@ +using Content.Shared.Objectives.Components; using Robust.Shared.Serialization; using Robust.Shared.Utility; diff --git a/Content.Shared/Overlays/ShowCriminalRecordIconsComponent.cs b/Content.Shared/Overlays/ShowCriminalRecordIconsComponent.cs new file mode 100644 index 0000000000..cb0759be3e --- /dev/null +++ b/Content.Shared/Overlays/ShowCriminalRecordIconsComponent.cs @@ -0,0 +1,9 @@ +using Robust.Shared.GameStates; + +namespace Content.Shared.Overlays; + +/// +/// This component allows you to see criminal record status of mobs. +/// +[RegisterComponent, NetworkedComponent] +public sealed partial class ShowCriminalRecordIconsComponent : Component { } diff --git a/Content.Shared/Overlays/ShowHungerIconsComponent.cs b/Content.Shared/Overlays/ShowHungerIconsComponent.cs index bf1fb2dc19..b3841bd80f 100644 --- a/Content.Shared/Overlays/ShowHungerIconsComponent.cs +++ b/Content.Shared/Overlays/ShowHungerIconsComponent.cs @@ -3,7 +3,7 @@ namespace Content.Shared.Overlays; /// -/// This component allows you to see the hungriness of mobs. +/// This component allows you to see the hungriness of mobs. /// [RegisterComponent, NetworkedComponent] public sealed partial class ShowHungerIconsComponent : Component { } diff --git a/Content.Shared/Overlays/ShowJobIconsComponent.cs b/Content.Shared/Overlays/ShowJobIconsComponent.cs new file mode 100644 index 0000000000..aae9739506 --- /dev/null +++ b/Content.Shared/Overlays/ShowJobIconsComponent.cs @@ -0,0 +1,9 @@ +using Robust.Shared.GameStates; + +namespace Content.Shared.Overlays; + +/// +/// This component allows you to see job icons above mobs. +/// +[RegisterComponent, NetworkedComponent] +public sealed partial class ShowJobIconsComponent : Component { } diff --git a/Content.Shared/Overlays/ShowMindShieldIconsComponent.cs b/Content.Shared/Overlays/ShowMindShieldIconsComponent.cs new file mode 100644 index 0000000000..624d5ab8ef --- /dev/null +++ b/Content.Shared/Overlays/ShowMindShieldIconsComponent.cs @@ -0,0 +1,9 @@ +using Robust.Shared.GameStates; + +namespace Content.Shared.Overlays; + +/// +/// This component allows you to see mindshield icons above mobs. +/// +[RegisterComponent, NetworkedComponent] +public sealed partial class ShowMindShieldIconsComponent : Component { } diff --git a/Content.Shared/Overlays/ShowSecurityIconsComponent.cs b/Content.Shared/Overlays/ShowSecurityIconsComponent.cs deleted file mode 100644 index ec268174d1..0000000000 --- a/Content.Shared/Overlays/ShowSecurityIconsComponent.cs +++ /dev/null @@ -1,9 +0,0 @@ -using Robust.Shared.GameStates; - -namespace Content.Shared.Overlays; - -/// -/// This component allows you to see job icons above mobs. -/// -[RegisterComponent, NetworkedComponent] -public sealed partial class ShowSecurityIconsComponent : Component { } diff --git a/Content.Shared/Overlays/ShowSyndicateIconsComponent.cs b/Content.Shared/Overlays/ShowSyndicateIconsComponent.cs index 74a67db694..a63eae8e46 100644 --- a/Content.Shared/Overlays/ShowSyndicateIconsComponent.cs +++ b/Content.Shared/Overlays/ShowSyndicateIconsComponent.cs @@ -3,7 +3,7 @@ namespace Content.Shared.Overlays; /// -/// +/// This component allows you to identify members of the Syndicate faction. /// [RegisterComponent, NetworkedComponent] public sealed partial class ShowSyndicateIconsComponent : Component {} diff --git a/Content.Shared/Overlays/ShowThirstIconsComponent.cs b/Content.Shared/Overlays/ShowThirstIconsComponent.cs index 905ab07fe2..1914034e9e 100644 --- a/Content.Shared/Overlays/ShowThirstIconsComponent.cs +++ b/Content.Shared/Overlays/ShowThirstIconsComponent.cs @@ -3,7 +3,7 @@ namespace Content.Shared.Overlays; /// -/// This component allows you to see the thirstiness of mobs. +/// This component allows you to see the thirstiness of mobs. /// [RegisterComponent, NetworkedComponent] public sealed partial class ShowThirstIconsComponent : Component { } diff --git a/Content.Shared/Paper/SharedPaperComponent.cs b/Content.Shared/Paper/SharedPaperComponent.cs index dd87f9f907..f65a599e53 100644 --- a/Content.Shared/Paper/SharedPaperComponent.cs +++ b/Content.Shared/Paper/SharedPaperComponent.cs @@ -1,8 +1,10 @@ using Robust.Shared.Audio; +using Robust.Shared.GameStates; using Robust.Shared.Serialization; namespace Content.Shared.Paper; +[NetworkedComponent] public abstract partial class SharedPaperComponent : Component { /// diff --git a/Content.Shared/Payload/Components/PayloadTriggerComponent.cs b/Content.Shared/Payload/Components/PayloadTriggerComponent.cs index 6d3df41ac9..b064e91198 100644 --- a/Content.Shared/Payload/Components/PayloadTriggerComponent.cs +++ b/Content.Shared/Payload/Components/PayloadTriggerComponent.cs @@ -1,3 +1,4 @@ +using Content.Shared.Explosion.Components; using Robust.Shared.GameStates; using Robust.Shared.Prototypes; diff --git a/Content.Shared/Physics/CollisionGroup.cs b/Content.Shared/Physics/CollisionGroup.cs index 1c10fefd5d..775ccb7c44 100644 --- a/Content.Shared/Physics/CollisionGroup.cs +++ b/Content.Shared/Physics/CollisionGroup.cs @@ -48,6 +48,9 @@ public enum CollisionGroup MachineLayer = Opaque | MidImpassable | LowImpassable | BulletImpassable, ConveyorMask = Impassable | MidImpassable | LowImpassable | DoorPassable, + // Crates + CrateMask = Impassable | HighImpassable | LowImpassable, + // Tables that SmallMobs can go under TableMask = Impassable | MidImpassable, TableLayer = MidImpassable, diff --git a/Content.Shared/Pinpointer/NavMapComponent.cs b/Content.Shared/Pinpointer/NavMapComponent.cs index 8c9979ba25..d77169d32e 100644 --- a/Content.Shared/Pinpointer/NavMapComponent.cs +++ b/Content.Shared/Pinpointer/NavMapComponent.cs @@ -1,9 +1,13 @@ +using System.Linq; +using Content.Shared.Atmos; using Robust.Shared.GameStates; +using Robust.Shared.Serialization; +using Robust.Shared.Timing; namespace Content.Shared.Pinpointer; /// -/// Used to store grid poly data to be used for UIs. +/// Used to store grid data to be used for UIs. /// [RegisterComponent, NetworkedComponent] public sealed partial class NavMapComponent : Component @@ -12,25 +16,47 @@ public sealed partial class NavMapComponent : Component * Don't need DataFields as this can be reconstructed */ + /// + /// Bitmasks that represent chunked tiles. + /// [ViewVariables] - public readonly Dictionary Chunks = new(); + public Dictionary Chunks = new(); - [ViewVariables] public readonly List Beacons = new(); - - [ViewVariables] public readonly List Airlocks = new(); + /// + /// List of station beacons. + /// + [ViewVariables] + public Dictionary Beacons = new(); } -public sealed class NavMapChunk +[Serializable, NetSerializable] +public sealed class NavMapChunk(Vector2i origin) { - public readonly Vector2i Origin; + /// + /// The chunk origin + /// + [ViewVariables] + public readonly Vector2i Origin = origin; + + /// + /// Array containing the chunk's data. The + /// + [ViewVariables] + public int[] TileData = new int[SharedNavMapSystem.ArraySize]; /// - /// Bitmask for tiles, 1 for occupied and 0 for empty. + /// The last game tick that the chunk was updated /// - public int TileData; + [NonSerialized] + public GameTick LastUpdate; +} - public NavMapChunk(Vector2i origin) - { - Origin = origin; - } +public enum NavMapChunkType : byte +{ + // Values represent bit shift offsets when retrieving data in the tile array. + 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 17f86ac7e6..ffe81c2d0e 100644 --- a/Content.Shared/Pinpointer/SharedNavMapSystem.cs +++ b/Content.Shared/Pinpointer/SharedNavMapSystem.cs @@ -1,49 +1,193 @@ +using System.Diagnostics.CodeAnalysis; using System.Numerics; +using System.Runtime.CompilerServices; +using Content.Shared.Tag; +using Robust.Shared.GameStates; using Robust.Shared.Serialization; +using Robust.Shared.Timing; using Robust.Shared.Utility; namespace Content.Shared.Pinpointer; public abstract class SharedNavMapSystem : EntitySystem { - public const byte ChunkSize = 4; + public const int Categories = 3; + public const int Directions = 4; // Not directly tied to number of atmos directions - /// - /// Converts the chunk's tile into a bitflag for the slot. - /// - public static int GetFlag(Vector2i relativeTile) + public const int ChunkSize = 8; + public const int ArraySize = ChunkSize* ChunkSize; + + public const int AllDirMask = (1 << Directions) - 1; + public const int AirlockMask = AllDirMask << (int) NavMapChunkType.Airlock; + public const int WallMask = AllDirMask << (int) NavMapChunkType.Wall; + public const int FloorMask = AllDirMask << (int) NavMapChunkType.Floor; + + [Robust.Shared.IoC.Dependency] private readonly TagSystem _tagSystem = default!; + + private readonly string[] _wallTags = ["Wall", "Window"]; + private EntityQuery _doorQuery; + + public override void Initialize() { - return 1 << (relativeTile.X * ChunkSize + relativeTile.Y); + base.Initialize(); + + // Data handling events + SubscribeLocalEvent(OnGetState); + _doorQuery = GetEntityQuery(); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static int GetTileIndex(Vector2i relativeTile) + { + return relativeTile.X * ChunkSize + relativeTile.Y; } /// - /// Converts the chunk's tile into a bitflag for the slot. + /// Inverse of /// - public static Vector2i GetTile(int flag) + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static Vector2i GetTileFromIndex(int index) + { + var x = index / ChunkSize; + var y = index % ChunkSize; + return new Vector2i(x, y); + } + + public NavMapChunkType GetEntityType(EntityUid uid) { - var value = Math.Log2(flag); - var x = (int) value / ChunkSize; - var y = (int) value % ChunkSize; - var result = new Vector2i(x, y); + if (_doorQuery.HasComp(uid)) + return NavMapChunkType.Airlock; - DebugTools.Assert(GetFlag(result) == flag); + if (_tagSystem.HasAnyTag(uid, _wallTags)) + return NavMapChunkType.Wall; - return new Vector2i(x, y); + return NavMapChunkType.Invalid; } - [Serializable, NetSerializable] - protected sealed class NavMapComponentState : ComponentState + protected bool TryCreateNavMapBeaconData(EntityUid uid, NavMapBeaconComponent component, TransformComponent xform, MetaDataComponent meta, [NotNullWhen(true)] out NavMapBeacon? beaconData) + { + beaconData = null; + + if (!component.Enabled || xform.GridUid == null || !xform.Anchored) + return false; + + var name = component.Text; + if (string.IsNullOrEmpty(name)) + name = meta.EntityName; + + beaconData = new NavMapBeacon(meta.NetEntity, component.Color, name, xform.LocalPosition); + + return true; + } + + #region: Event handling + + private void OnGetState(EntityUid uid, NavMapComponent component, ref ComponentGetState args) { - public Dictionary TileData = new(); + Dictionary chunks; + + // Should this be a full component state or a delta-state? + if (args.FromTick <= component.CreationTick) + { + // Full state + chunks = new(component.Chunks.Count); + foreach (var (origin, chunk) in component.Chunks) + { + chunks.Add(origin, chunk.TileData); + } - public List Beacons = new(); + args.State = new NavMapComponentState(chunks, component.Beacons); + return; + } - public List Airlocks = new(); + chunks = new(); + foreach (var (origin, chunk) in component.Chunks) + { + if (chunk.LastUpdate < args.FromTick) + continue; + + chunks.Add(origin, chunk.TileData); + } + + args.State = new NavMapComponentState(chunks, component.Beacons) + { + // TODO NAVMAP cache a single AllChunks hashset in the component. + // Or maybe just only send them if a chunk gets removed. + AllChunks = new(component.Chunks.Keys), + }; } + #endregion + + #region: System messages + [Serializable, NetSerializable] - public readonly record struct NavMapBeacon(Color Color, string Text, Vector2 Position); + protected sealed class NavMapComponentState( + Dictionary chunks, + Dictionary beacons) + : ComponentState, IComponentDeltaState + { + public Dictionary Chunks = chunks; + public Dictionary Beacons = beacons; + + // Required to infer deleted/missing chunks for delta states + public HashSet? AllChunks; + + public bool FullState => AllChunks == null; + + public void ApplyToFullState(IComponentState fullState) + { + DebugTools.Assert(!FullState); + var state = (NavMapComponentState) fullState; + DebugTools.Assert(state.FullState); + + foreach (var key in state.Chunks.Keys) + { + if (!AllChunks!.Contains(key)) + state.Chunks.Remove(key); + } + + foreach (var (index, data) in Chunks) + { + if (!state.Chunks.TryGetValue(index, out var stateValue)) + state.Chunks[index] = stateValue = new int[data.Length]; + + Array.Copy(data, stateValue, data.Length); + } + + state.Beacons.Clear(); + foreach (var (nuid, beacon) in Beacons) + { + state.Beacons.Add(nuid, beacon); + } + } + + public IComponentState CreateNewFullState(IComponentState fullState) + { + DebugTools.Assert(!FullState); + var state = (NavMapComponentState) fullState; + DebugTools.Assert(state.FullState); + + var chunks = new Dictionary(state.Chunks.Count); + foreach (var (index, data) in state.Chunks) + { + if (!AllChunks!.Contains(index)) + continue; + + var newData = chunks[index] = new int[ArraySize]; + + if (Chunks.TryGetValue(index, out var updatedData)) + Array.Copy(newData, updatedData, ArraySize); + else + Array.Copy(newData, data, ArraySize); + } + + return new NavMapComponentState(chunks, new(Beacons)); + } + } [Serializable, NetSerializable] - public readonly record struct NavMapAirlock(Vector2 Position); + public record struct NavMapBeacon(NetEntity NetEnt, Color Color, string Text, Vector2 Position); + + #endregion } diff --git a/Content.Shared/Players/PlayTimeTracking/PlayTimeTrackingShared.cs b/Content.Shared/Players/PlayTimeTracking/PlayTimeTrackingShared.cs index e300524d87..ccaf9c17dd 100644 --- a/Content.Shared/Players/PlayTimeTracking/PlayTimeTrackingShared.cs +++ b/Content.Shared/Players/PlayTimeTracking/PlayTimeTrackingShared.cs @@ -1,9 +1,18 @@ -namespace Content.Shared.Players.PlayTimeTracking; +using Content.Shared.Dataset; + +namespace Content.Shared.Players.PlayTimeTracking; public static class PlayTimeTrackingShared { /// /// The prototype ID of the play time tracker that represents overall playtime, i.e. not tied to any one role. /// + [ValidatePrototypeId] public const string TrackerOverall = "Overall"; + + /// + /// The prototype ID of the play time tracker that represents admin time, when a player is in game as admin. + /// + [ValidatePrototypeId] + public const string TrackerAdmin = "Admin"; } diff --git a/Content.Shared/Plunger/Systems/PlungerSystem.cs b/Content.Shared/Plunger/Systems/PlungerSystem.cs index 192a018564..6e07657941 100644 --- a/Content.Shared/Plunger/Systems/PlungerSystem.cs +++ b/Content.Shared/Plunger/Systems/PlungerSystem.cs @@ -17,8 +17,8 @@ namespace Content.Shared.Plunger.Systems; /// public sealed class PlungerSystem : EntitySystem { - [Dependency] protected readonly IPrototypeManager _proto = default!; - [Dependency] protected readonly IRobustRandom _random = default!; + [Dependency] private readonly IPrototypeManager _proto = default!; + [Dependency] private readonly IRobustRandom _random = default!; [Dependency] private readonly SharedAudioSystem _audio = default!; [Dependency] private readonly SharedDoAfterSystem _doAfter = default!; [Dependency] private readonly SharedPopupSystem _popup = default!; diff --git a/Content.Shared/Polymorph/Components/ChameleonDisguiseComponent.cs b/Content.Shared/Polymorph/Components/ChameleonDisguiseComponent.cs new file mode 100644 index 0000000000..2b9fba7b39 --- /dev/null +++ b/Content.Shared/Polymorph/Components/ChameleonDisguiseComponent.cs @@ -0,0 +1,25 @@ +using Robust.Shared.GameStates; +using Robust.Shared.Prototypes; + +namespace Content.Shared.Polymorph.Components; + +/// +/// Component added to disguise entities. +/// Used by client to copy over appearance from the disguise's source entity. +/// +[RegisterComponent, NetworkedComponent, AutoGenerateComponentState(true)] +public sealed partial class ChameleonDisguiseComponent : Component +{ + /// + /// The disguise source entity for copying the sprite. + /// + [DataField, AutoNetworkedField] + public EntityUid SourceEntity; + + /// + /// The source entity's prototype. + /// Used as a fallback if the source entity was deleted. + /// + [DataField, AutoNetworkedField] + public EntProtoId? SourceProto; +} diff --git a/Content.Shared/Polymorph/Components/ChameleonProjectorComponent.cs b/Content.Shared/Polymorph/Components/ChameleonProjectorComponent.cs new file mode 100644 index 0000000000..239b5236f2 --- /dev/null +++ b/Content.Shared/Polymorph/Components/ChameleonProjectorComponent.cs @@ -0,0 +1,68 @@ +using Content.Shared.Polymorph; +using Content.Shared.Polymorph.Systems; +using Content.Shared.Whitelist; +using Robust.Shared.Prototypes; + +namespace Content.Shared.Polymorph.Components; + +/// +/// A chameleon projector polymorphs you into a clicked entity, then polymorphs back when clicked on or destroyed. +/// This creates a new dummy polymorph entity and copies the appearance over. +/// +[RegisterComponent, Access(typeof(SharedChameleonProjectorSystem))] +public sealed partial class ChameleonProjectorComponent : Component +{ + /// + /// If non-null, whitelist for valid entities to disguise as. + /// + [DataField(required: true)] + public EntityWhitelist? Whitelist; + + /// + /// If non-null, blacklist that prevents entities from being used even if they are in the whitelist. + /// + [DataField(required: true)] + public EntityWhitelist? Blacklist; + + /// + /// Polymorph configuration for the disguise entity. + /// + [DataField(required: true)] + public PolymorphConfiguration Polymorph = new(); + + /// + /// Action for disabling your disguise's rotation. + /// + [DataField] + public EntProtoId NoRotAction = "ActionDisguiseNoRot"; + + /// + /// Action for anchoring your disguise in place. + /// + [DataField] + public EntProtoId AnchorAction = "ActionDisguiseAnchor"; + + /// + /// Minimum health to give the disguise. + /// + [DataField] + public float MinHealth = 1f; + + /// + /// Maximum health to give the disguise, health scales with mass. + /// + [DataField] + public float MaxHealth = 100f; + + /// + /// Popup shown to the user when they try to disguise as an invalid entity. + /// + [DataField] + public LocId InvalidPopup = "chameleon-projector-invalid"; + + /// + /// Popup shown to the user when they disguise as a valid entity. + /// + [DataField] + public LocId SuccessPopup = "chameleon-projector-success"; +} diff --git a/Content.Shared/Polymorph/Systems/SharedChameleonProjectorSystem.cs b/Content.Shared/Polymorph/Systems/SharedChameleonProjectorSystem.cs new file mode 100644 index 0000000000..c1abfc526f --- /dev/null +++ b/Content.Shared/Polymorph/Systems/SharedChameleonProjectorSystem.cs @@ -0,0 +1,113 @@ +using Content.Shared.Actions; +using Content.Shared.Interaction; +using Content.Shared.Polymorph; +using Content.Shared.Polymorph.Components; +using Content.Shared.Popups; +using Robust.Shared.Serialization.Manager; +using Robust.Shared.Prototypes; +using System.Diagnostics.CodeAnalysis; + +namespace Content.Shared.Polymorph.Systems; + +/// +/// Handles whitelist/blacklist checking. +/// Actual polymorphing and deactivation is done serverside. +/// +public abstract class SharedChameleonProjectorSystem : EntitySystem +{ + [Dependency] private readonly IPrototypeManager _proto = default!; + [Dependency] private readonly ISerializationManager _serMan = default!; + [Dependency] private readonly SharedPopupSystem _popup = default!; + + public override void Initialize() + { + base.Initialize(); + + SubscribeLocalEvent(OnInteract); + } + + private void OnInteract(Entity ent, ref AfterInteractEvent args) + { + if (!args.CanReach || args.Target is not {} target) + return; + + var user = args.User; + args.Handled = true; + + if (IsInvalid(ent.Comp, target)) + { + _popup.PopupClient(Loc.GetString(ent.Comp.InvalidPopup), target, user); + return; + } + + _popup.PopupClient(Loc.GetString(ent.Comp.SuccessPopup), target, user); + Disguise(ent.Comp, user, target); + } + + /// + /// Returns true if an entity cannot be used as a disguise. + /// + public bool IsInvalid(ChameleonProjectorComponent comp, EntityUid target) + { + return (comp.Whitelist?.IsValid(target, EntityManager) == false) + || (comp.Blacklist?.IsValid(target, EntityManager) == true); + } + + /// + /// On server, polymorphs the user into an entity and sets up the disguise. + /// + public virtual void Disguise(ChameleonProjectorComponent comp, EntityUid user, EntityUid entity) + { + } + + /// + /// Copy a component from the source entity/prototype to the disguise entity. + /// + /// + /// This would probably be a good thing to add to engine in the future. + /// + protected bool CopyComp(Entity ent) where T: Component, new() + { + if (!GetSrcComp(ent.Comp, out var src)) + return true; + + // remove then re-add to prevent a funny + RemComp(ent); + var dest = AddComp(ent); + _serMan.CopyTo(src, ref dest, notNullableOverride: true); + Dirty(ent, dest); + return false; + } + + /// + /// Try to get a single component from the source entity/prototype. + /// + private bool GetSrcComp(ChameleonDisguiseComponent comp, [NotNullWhen(true)] out T? src) where T: Component + { + src = null; + if (TryComp(comp.SourceEntity, out src)) + return true; + + if (comp.SourceProto is not {} protoId) + return false; + + if (!_proto.TryIndex(protoId, out var proto)) + return false; + + return proto.TryGetComponent(out src); + } +} + +/// +/// Action event for toggling transform NoRot on a disguise. +/// +public sealed partial class DisguiseToggleNoRotEvent : InstantActionEvent +{ +} + +/// +/// Action event for toggling transform Anchored on a disguise. +/// +public sealed partial class DisguiseToggleAnchoredEvent : InstantActionEvent +{ +} diff --git a/Content.Shared/Popups/SharedPopupSystem.cs b/Content.Shared/Popups/SharedPopupSystem.cs index 10e8ca9be1..38d2030cd5 100644 --- a/Content.Shared/Popups/SharedPopupSystem.cs +++ b/Content.Shared/Popups/SharedPopupSystem.cs @@ -82,12 +82,24 @@ public abstract class SharedPopupSystem : EntitySystem /// public abstract void PopupEntity(string? message, EntityUid uid, Filter filter, bool recordReplay, PopupType type = PopupType.Small); + /// + /// Variant of that only runs on the client, outside of prediction. + /// Useful for shared code that is always ran by both sides to avoid duplicate popups. + /// + public abstract void PopupClient(string? message, EntityUid? recipient, PopupType type = PopupType.Small); + /// /// Variant of that only runs on the client, outside of prediction. /// Useful for shared code that is always ran by both sides to avoid duplicate popups. /// public abstract void PopupClient(string? message, EntityUid uid, EntityUid? recipient, PopupType type = PopupType.Small); + /// + /// Variant of that only runs on the client, outside of prediction. + /// Useful for shared code that is always ran by both sides to avoid duplicate popups. + /// + public abstract void PopupClient(string? message, EntityCoordinates coordinates, EntityUid? recipient, PopupType type = PopupType.Small); + /// /// Variant of for use with prediction. The local client will show /// the popup to the recipient, and the server will show it to every other player in PVS range. If recipient is null, the local client diff --git a/Content.Shared/Power/Components/ActivatableUIRequiresPowerComponent.cs b/Content.Shared/Power/Components/ActivatableUIRequiresPowerComponent.cs new file mode 100644 index 0000000000..af193c8dfc --- /dev/null +++ b/Content.Shared/Power/Components/ActivatableUIRequiresPowerComponent.cs @@ -0,0 +1,8 @@ +using Robust.Shared.GameStates; + +namespace Content.Shared.Power.Components; + +[RegisterComponent, NetworkedComponent] +public sealed partial class ActivatableUIRequiresPowerComponent : Component +{ +} diff --git a/Content.Shared/Power/SharedPowerMonitoringConsoleSystem.cs b/Content.Shared/Power/SharedPowerMonitoringConsoleSystem.cs index dc4af23c23..749f0233aa 100644 --- a/Content.Shared/Power/SharedPowerMonitoringConsoleSystem.cs +++ b/Content.Shared/Power/SharedPowerMonitoringConsoleSystem.cs @@ -1,3 +1,4 @@ +using System.Runtime.CompilerServices; using JetBrains.Annotations; namespace Content.Shared.Power; @@ -5,4 +6,23 @@ namespace Content.Shared.Power; [UsedImplicitly] public abstract class SharedPowerMonitoringConsoleSystem : EntitySystem { + // Chunk size is limited as we require ChunkSize^2 <= 32 (number of bits in an int) + public const int ChunkSize = 5; + + /// + /// Converts the chunk's tile into a bitflag for the slot. + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static int GetFlag(Vector2i relativeTile) + { + return 1 << (relativeTile.X * ChunkSize + relativeTile.Y); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static Vector2i GetTileFromIndex(int index) + { + var x = index / ChunkSize; + var y = index % ChunkSize; + return new Vector2i(x, y); + } } diff --git a/Content.Shared/Preferences/HumanoidCharacterProfile.cs b/Content.Shared/Preferences/HumanoidCharacterProfile.cs index fb0df05499..b0fb570f60 100644 --- a/Content.Shared/Preferences/HumanoidCharacterProfile.cs +++ b/Content.Shared/Preferences/HumanoidCharacterProfile.cs @@ -15,688 +15,515 @@ using Robust.Shared.Serialization; using Robust.Shared.Utility; -namespace Content.Shared.Preferences -{ - /// - /// Character profile. Looks immutable, but uses non-immutable semantics internally for serialization/code sanity purposes. - /// - [DataDefinition] - [Serializable, NetSerializable] - public sealed partial class HumanoidCharacterProfile : ICharacterProfile - { - public const int MaxNameLength = 48; - public const int MaxDescLength = 1024; - - private readonly Dictionary _jobPriorities; - private readonly List _antagPreferences; - private readonly List _traitPreferences; - private readonly List _loadoutPreferences; - - private HumanoidCharacterProfile( - string name, - string flavortext, - string species, - float height, - float width, - int age, - Sex sex, - Gender gender, - HumanoidCharacterAppearance appearance, - ClothingPreference clothing, - BackpackPreference backpack, - SpawnPriorityPreference spawnPriority, - Dictionary jobPriorities, - PreferenceUnavailableMode preferenceUnavailable, - List antagPreferences, - List traitPreferences, - List loadoutPreferences) - { - Name = name; - FlavorText = flavortext; - Species = species; - Height = height; - Width = width; - Age = age; - Sex = sex; - Gender = gender; - Appearance = appearance; - Clothing = clothing; - Backpack = backpack; - SpawnPriority = spawnPriority; - _jobPriorities = jobPriorities; - PreferenceUnavailable = preferenceUnavailable; - _antagPreferences = antagPreferences; - _traitPreferences = traitPreferences; - _loadoutPreferences = loadoutPreferences; - } - - /// Copy constructor but with overridable references (to prevent useless copies) - private HumanoidCharacterProfile( - HumanoidCharacterProfile other, - Dictionary jobPriorities, - List antagPreferences, - List traitPreferences, - List loadoutPreferences) - : this(other.Name, other.FlavorText, other.Species, other.Height, other.Width, other.Age, other.Sex, other.Gender, other.Appearance, - other.Clothing, other.Backpack, other.SpawnPriority, jobPriorities, other.PreferenceUnavailable, - antagPreferences, traitPreferences, loadoutPreferences) - { - } +namespace Content.Shared.Preferences; - /// Copy constructor - private HumanoidCharacterProfile(HumanoidCharacterProfile other) - : this(other, new Dictionary(other.JobPriorities), - new List(other.AntagPreferences), new List(other.TraitPreferences), - new List(other.LoadoutPreferences)) - { - } - - public HumanoidCharacterProfile( - string name, - string flavortext, - string species, - float height, - float width, - int age, - Sex sex, - Gender gender, - HumanoidCharacterAppearance appearance, - ClothingPreference clothing, - BackpackPreference backpack, - SpawnPriorityPreference spawnPriority, - IReadOnlyDictionary jobPriorities, - PreferenceUnavailableMode preferenceUnavailable, - IReadOnlyList antagPreferences, - IReadOnlyList traitPreferences, - IReadOnlyList loadoutPreferences) - : this(name, flavortext, species, height, width, age, sex, gender, appearance, clothing, backpack, spawnPriority, - new Dictionary(jobPriorities), preferenceUnavailable, - new List(antagPreferences), new List(traitPreferences), - new List(loadoutPreferences)) - { - } - - /// - /// Get the default humanoid character profile, using internal constant values. - /// Defaults to for the species. - /// - /// - public HumanoidCharacterProfile() : this( - "John Doe", - "", - SharedHumanoidAppearanceSystem.DefaultSpecies, - 1f, - 1f, - 18, - Sex.Male, - Gender.Male, - new HumanoidCharacterAppearance(), - ClothingPreference.Jumpsuit, - BackpackPreference.Backpack, - SpawnPriorityPreference.None, - new Dictionary - { - {SharedGameTicker.FallbackOverflowJob, JobPriority.High} - }, - PreferenceUnavailableMode.SpawnAsOverflow, - new List(), - new List(), - new List()) - { - } +/// Character profile. Looks immutable, but uses non-immutable semantics internally for serialization/code sanity purposes +[DataDefinition] +[Serializable, NetSerializable] +public sealed partial class HumanoidCharacterProfile : ICharacterProfile +{ + private static readonly Regex RestrictedNameRegex = new("[^A-Z,a-z,0-9,А-Я,а-я, -]"); + private static readonly Regex ICNameCaseRegex = new(@"^(?\w)|\b(?\w)(?=\w*$)"); - /// - /// Return a default character profile, based on species. - /// - /// The species to use in this default profile. The default species is . - /// Humanoid character profile with default settings. - public static HumanoidCharacterProfile DefaultWithSpecies(string species = SharedHumanoidAppearanceSystem.DefaultSpecies) - { - return new( - "John Doe", - "", - species, - 1f, - 1f, - 18, - Sex.Male, - Gender.Male, - HumanoidCharacterAppearance.DefaultWithSpecies(species), - ClothingPreference.Jumpsuit, - BackpackPreference.Backpack, - SpawnPriorityPreference.None, - new Dictionary - { - {SharedGameTicker.FallbackOverflowJob, JobPriority.High} - }, - PreferenceUnavailableMode.SpawnAsOverflow, - new List(), - new List(), - new List()); - } + public const int MaxNameLength = 64; + public const int MaxDescLength = 1024; - // TODO: This should eventually not be a visual change only. - public static HumanoidCharacterProfile Random(HashSet? ignoredSpecies = null) + /// Job preferences for initial spawn + [DataField] + private Dictionary _jobPriorities = new() + { { - var prototypeManager = IoCManager.Resolve(); - var random = IoCManager.Resolve(); + SharedGameTicker.FallbackOverflowJob, JobPriority.High + }, + }; + + /// Antags we have opted in to + [DataField] + private HashSet _antagPreferences = new(); + + /// Enabled traits + [DataField] + private HashSet _traitPreferences = new(); + + /// + public HashSet LoadoutPreferences => _loadoutPreferences; + + [DataField] + private HashSet _loadoutPreferences = new(); + + [DataField] + public string Name { get; set; } = "John Doe"; + + /// Detailed text that can appear for the character if is enabled + [DataField] + public string FlavorText { get; set; } = string.Empty; + + /// Associated for this profile + [DataField] + public string Species { get; set; } = SharedHumanoidAppearanceSystem.DefaultSpecies; + + [DataField] + public string Customspeciename { get; set; } = ""; + + [DataField] + public float Height { get; private set; } + + [DataField] + public float Width { get; private set; } + + [DataField] + public int Age { get; set; } = 18; + + [DataField] + public Sex Sex { get; private set; } = Sex.Male; + + [DataField] + public Gender Gender { get; private set; } = Gender.Male; + + /// + public ICharacterAppearance CharacterAppearance => Appearance; + + /// Stores markings, eye colors, etc for the profile + [DataField] + public HumanoidCharacterAppearance Appearance { get; set; } = new(); + + [DataField] + public ClothingPreference Clothing { get; set; } + [DataField] + public BackpackPreference Backpack { get; set; } + + /// When spawning into a round what's the preferred spot to spawn + [DataField] + public SpawnPriorityPreference SpawnPriority { get; private set; } = SpawnPriorityPreference.None; + + /// + public IReadOnlyDictionary JobPriorities => _jobPriorities; + + /// + public IReadOnlySet AntagPreferences => _antagPreferences; + + /// + public IReadOnlySet TraitPreferences => _traitPreferences; + + /// If we're unable to get one of our preferred jobs do we spawn as a fallback job or do we stay in lobby + [DataField] + public PreferenceUnavailableMode PreferenceUnavailable { get; private set; } = + PreferenceUnavailableMode.SpawnAsOverflow; + + public HumanoidCharacterProfile( + string name, + string flavortext, + string species, + string customspeciename, + float height, + float width, + int age, + Sex sex, + Gender gender, + HumanoidCharacterAppearance appearance, + SpawnPriorityPreference spawnPriority, + Dictionary jobPriorities, + ClothingPreference clothing, + BackpackPreference backpack, + PreferenceUnavailableMode preferenceUnavailable, + HashSet antagPreferences, + HashSet traitPreferences, + HashSet loadoutPreferences) + { + Name = name; + FlavorText = flavortext; + Species = species; + Customspeciename = customspeciename; + Height = height; + Width = width; + Age = age; + Sex = sex; + Gender = gender; + Appearance = appearance; + SpawnPriority = spawnPriority; + _jobPriorities = jobPriorities; + Clothing = clothing; + Backpack = backpack; + PreferenceUnavailable = preferenceUnavailable; + _antagPreferences = antagPreferences; + _traitPreferences = traitPreferences; + _loadoutPreferences = loadoutPreferences; + } - var species = random.Pick(prototypeManager - .EnumeratePrototypes() - .Where(x => ignoredSpecies == null ? x.RoundStart : x.RoundStart && !ignoredSpecies.Contains(x.ID)) - .ToArray() - ).ID; + /// Copy constructor + public HumanoidCharacterProfile(HumanoidCharacterProfile other) + : this( + other.Name, + other.FlavorText, + other.Species, + other.Customspeciename, + other.Height, + other.Width, + other.Age, + other.Sex, + other.Gender, + other.Appearance.Clone(), + other.SpawnPriority, + new Dictionary(other.JobPriorities), + other.Clothing, + other.Backpack, + other.PreferenceUnavailable, + new HashSet(other.AntagPreferences), + new HashSet(other.TraitPreferences), + new HashSet(other.LoadoutPreferences)) + { + } - return RandomWithSpecies(species); - } + /// + /// Get the default humanoid character profile, using internal constant values. + /// Defaults to for the species. + /// + /// + public HumanoidCharacterProfile() + { + } - public static HumanoidCharacterProfile RandomWithSpecies(string species = SharedHumanoidAppearanceSystem.DefaultSpecies) + /// + /// Return a default character profile, based on species. + /// + /// The species to use in this default profile. The default species is . + /// Humanoid character profile with default settings. + public static HumanoidCharacterProfile DefaultWithSpecies(string species = SharedHumanoidAppearanceSystem.DefaultSpecies) + { + return new() { - var prototypeManager = IoCManager.Resolve(); - var random = IoCManager.Resolve(); - - var sex = Sex.Unsexed; - var age = 18; - var height = 1f; - var width = 1f; - if (prototypeManager.TryIndex(species, out var speciesPrototype)) - { - sex = random.Pick(speciesPrototype.Sexes); - age = random.Next(speciesPrototype.MinAge, speciesPrototype.OldAge); // people don't look and keep making 119 year old characters with zero rp, cap it at middle aged - height = random.NextFloat(speciesPrototype.MinHeight, speciesPrototype.MaxHeight); - width = random.NextFloat(speciesPrototype.MinWidth, speciesPrototype.MaxWidth); - } - - var gender = Gender.Epicene; - - switch (sex) - { - case Sex.Male: - gender = Gender.Male; - break; - case Sex.Female: - gender = Gender.Female; - break; - } - - var name = GetName(species, gender); - - return new HumanoidCharacterProfile(name, "", species, height, width, age, sex, gender, - HumanoidCharacterAppearance.Random(species, sex), ClothingPreference.Jumpsuit, - BackpackPreference.Backpack, SpawnPriorityPreference.None, - new Dictionary - { - {SharedGameTicker.FallbackOverflowJob, JobPriority.High}, - }, PreferenceUnavailableMode.StayInLobby, new List(), new List(), new List()); - } - - public string Name { get; private set; } - public string FlavorText { get; private set; } - [DataField("species")] - public string Species { get; private set; } - - [DataField("height")] - public float Height { get; private set; } - - [DataField("width")] - public float Width { get; private set; } - - [DataField("age")] - public int Age { get; private set; } + Species = species, + }; + } - [DataField("sex")] - public Sex Sex { get; private set; } + // TODO: This should eventually not be a visual change only. + public static HumanoidCharacterProfile Random(HashSet? ignoredSpecies = null) + { + var prototypeManager = IoCManager.Resolve(); + var random = IoCManager.Resolve(); - [DataField("gender")] - public Gender Gender { get; private set; } + var species = random.Pick(prototypeManager + .EnumeratePrototypes() + .Where(x => ignoredSpecies == null ? x.RoundStart : x.RoundStart && !ignoredSpecies.Contains(x.ID)) + .ToArray() + ).ID; - public ICharacterAppearance CharacterAppearance => Appearance; + return RandomWithSpecies(species); + } - [DataField("appearance")] - public HumanoidCharacterAppearance Appearance { get; private set; } - public ClothingPreference Clothing { get; private set; } - public BackpackPreference Backpack { get; private set; } - public SpawnPriorityPreference SpawnPriority { get; private set; } - public IReadOnlyDictionary JobPriorities => _jobPriorities; - public IReadOnlyList AntagPreferences => _antagPreferences; - public IReadOnlyList TraitPreferences => _traitPreferences; - public IReadOnlyList LoadoutPreferences => _loadoutPreferences; - public PreferenceUnavailableMode PreferenceUnavailable { get; private set; } + public static HumanoidCharacterProfile RandomWithSpecies(string species = SharedHumanoidAppearanceSystem.DefaultSpecies) + { + var prototypeManager = IoCManager.Resolve(); + var random = IoCManager.Resolve(); - public HumanoidCharacterProfile WithName(string name) + var sex = Sex.Unsexed; + var age = 18; + if (prototypeManager.TryIndex(species, out var speciesPrototype)) { - return new(this) { Name = name }; + sex = random.Pick(speciesPrototype.Sexes); + age = random.Next(speciesPrototype.MinAge, speciesPrototype.OldAge); // people don't look and keep making 119 year old characters with zero rp, cap it at middle aged } - public HumanoidCharacterProfile WithFlavorText(string flavorText) - { - return new(this) { FlavorText = flavorText }; - } + var gender = Gender.Epicene; - public HumanoidCharacterProfile WithAge(int age) + switch (sex) { - return new(this) { Age = age }; + case Sex.Male: + gender = Gender.Male; + break; + case Sex.Female: + gender = Gender.Female; + break; } - public HumanoidCharacterProfile WithSex(Sex sex) - { - return new(this) { Sex = sex }; - } + var name = GetName(species, gender); - public HumanoidCharacterProfile WithGender(Gender gender) + return new HumanoidCharacterProfile() { - return new(this) { Gender = gender }; - } + Name = name, + Sex = sex, + Age = age, + Gender = gender, + Species = species, + Appearance = HumanoidCharacterAppearance.Random(species, sex), + }; + } - public HumanoidCharacterProfile WithSpecies(string species) - { - return new(this) { Species = species }; - } + public HumanoidCharacterProfile WithName(string name) => new(this) { Name = name }; + public HumanoidCharacterProfile WithFlavorText(string flavorText) => new(this) { FlavorText = flavorText }; + public HumanoidCharacterProfile WithAge(int age) => new(this) { Age = age }; + 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 WithHeight(float height) => new(this) { Height = height }; + public HumanoidCharacterProfile WithWidth(float width) => new(this) { Width = width }; + + public HumanoidCharacterProfile WithCharacterAppearance(HumanoidCharacterAppearance appearance) => + new(this) { Appearance = appearance }; + public HumanoidCharacterProfile WithClothingPreference(ClothingPreference clothing) => + new(this) { Clothing = clothing }; + public HumanoidCharacterProfile WithBackpackPreference(BackpackPreference backpack) => + new(this) { Backpack = backpack }; + public HumanoidCharacterProfile WithSpawnPriorityPreference(SpawnPriorityPreference spawnPriority) => + new(this) { SpawnPriority = spawnPriority }; + public HumanoidCharacterProfile WithJobPriorities(IEnumerable> jobPriorities) => + new(this) { _jobPriorities = new Dictionary(jobPriorities) }; + + public HumanoidCharacterProfile WithJobPriority(string jobId, JobPriority priority) + { + var dictionary = new Dictionary(_jobPriorities); + if (priority == JobPriority.Never) + dictionary.Remove(jobId); + else + dictionary[jobId] = priority; - public HumanoidCharacterProfile WithHeight(float height) - { - return new(this) { Height = height }; - } + return new(this) { _jobPriorities = dictionary }; + } - public HumanoidCharacterProfile WithWidth(float width) - { - return new(this) { Width = width }; - } + public HumanoidCharacterProfile WithPreferenceUnavailable(PreferenceUnavailableMode mode) => + new(this) { PreferenceUnavailable = mode }; + public HumanoidCharacterProfile WithAntagPreferences(IEnumerable antagPreferences) => + new(this) { _antagPreferences = new HashSet(antagPreferences) }; - public HumanoidCharacterProfile WithCharacterAppearance(HumanoidCharacterAppearance appearance) - { - return new(this) { Appearance = appearance }; - } + public HumanoidCharacterProfile WithAntagPreference(string antagId, bool pref) + { + var list = new HashSet(_antagPreferences); + if (pref) + list.Add(antagId); + else + list.Remove(antagId); - public HumanoidCharacterProfile WithClothingPreference(ClothingPreference clothing) - { - return new(this) { Clothing = clothing }; - } - public HumanoidCharacterProfile WithBackpackPreference(BackpackPreference backpack) - { - return new(this) { Backpack = backpack }; - } - public HumanoidCharacterProfile WithSpawnPriorityPreference(SpawnPriorityPreference spawnPriority) - { - return new(this) { SpawnPriority = spawnPriority }; - } - public HumanoidCharacterProfile WithJobPriorities(IEnumerable> jobPriorities) - { - return new(this, new Dictionary(jobPriorities), _antagPreferences, _traitPreferences, - _loadoutPreferences); - } + return new(this) { _antagPreferences = list }; + } - public HumanoidCharacterProfile WithJobPriority(string jobId, JobPriority priority) - { - var dictionary = new Dictionary(_jobPriorities); - if (priority == JobPriority.Never) - { - dictionary.Remove(jobId); - } - else - { - dictionary[jobId] = priority; - } - return new(this, dictionary, _antagPreferences, _traitPreferences, _loadoutPreferences); - } + public HumanoidCharacterProfile WithTraitPreference(string traitId, bool pref) + { + var list = new HashSet(_traitPreferences); - public HumanoidCharacterProfile WithPreferenceUnavailable(PreferenceUnavailableMode mode) - { - return new(this) { PreferenceUnavailable = mode }; - } + if (pref) + list.Add(traitId); + else + list.Remove(traitId); - public HumanoidCharacterProfile WithAntagPreferences(IEnumerable antagPreferences) - { - return new(this, _jobPriorities, new List(antagPreferences), _traitPreferences, - _loadoutPreferences); - } + return new(this) { _traitPreferences = list }; + } - public HumanoidCharacterProfile WithAntagPreference(string antagId, bool pref) - { - var list = new List(_antagPreferences); - if (pref) - { - if (!list.Contains(antagId)) - { - list.Add(antagId); - } - } - else - { - if (list.Contains(antagId)) - { - list.Remove(antagId); - } - } - return new(this, _jobPriorities, list, _traitPreferences, _loadoutPreferences); - } + public HumanoidCharacterProfile WithLoadoutPreference(string loadoutId, bool pref) + { + var list = new HashSet(_loadoutPreferences); - public HumanoidCharacterProfile WithTraitPreference(string traitId, bool pref) - { - var list = new List(_traitPreferences); + if (pref) + list.Add(loadoutId); + else + list.Remove(loadoutId); - // TODO: Maybe just refactor this to HashSet? Same with _antagPreferences - if (pref) - { - if (!list.Contains(traitId)) - { - list.Add(traitId); - } - } - else - { - if (list.Contains(traitId)) - { - list.Remove(traitId); - } - } - return new(this, _jobPriorities, _antagPreferences, list, _loadoutPreferences); - } + return new HumanoidCharacterProfile(this) { _loadoutPreferences = list }; + } - public HumanoidCharacterProfile WithLoadoutPreference(string loadoutId, bool pref) - { - var list = new List(_loadoutPreferences); + public string Summary => + Loc.GetString( + "humanoid-character-profile-summary", + ("name", Name), + ("gender", Gender.ToString().ToLowerInvariant()), + ("age", Age) + ); - if(pref) - { - if(!list.Contains(loadoutId)) - { - list.Add(loadoutId); - } - } - else - { - if(list.Contains(loadoutId)) - { - list.Remove(loadoutId); - } - } - return new(this, _jobPriorities, _antagPreferences, _traitPreferences, list); - } + public bool MemberwiseEquals(ICharacterProfile maybeOther) + { + return maybeOther is HumanoidCharacterProfile other + && Name == other.Name + && Age == other.Age + && Sex == other.Sex + && Gender == other.Gender + && Species == other.Species + && PreferenceUnavailable == other.PreferenceUnavailable + && SpawnPriority == other.SpawnPriority + && _jobPriorities.SequenceEqual(other._jobPriorities) + && _antagPreferences.SequenceEqual(other._antagPreferences) + && _traitPreferences.SequenceEqual(other._traitPreferences) + && LoadoutPreferences.SequenceEqual(other.LoadoutPreferences) + && Appearance.MemberwiseEquals(other.Appearance) + && FlavorText == other.FlavorText; + } - public string Summary => - Loc.GetString( - "humanoid-character-profile-summary", - ("name", Name), - ("gender", Gender.ToString().ToLowerInvariant()), - ("age", Age) - ); + public void EnsureValid(ICommonSession session, IDependencyCollection collection) + { + var configManager = collection.Resolve(); + var prototypeManager = collection.Resolve(); - public bool MemberwiseEquals(ICharacterProfile maybeOther) + if (!prototypeManager.TryIndex(Species, out var speciesPrototype) || speciesPrototype.RoundStart == false) { - if (maybeOther is not HumanoidCharacterProfile other - || Name != other.Name - || Age != other.Age - || Height != other.Height - || Width != other.Width - || Sex != other.Sex - || Gender != other.Gender - || PreferenceUnavailable != other.PreferenceUnavailable - || Clothing != other.Clothing - || Backpack != other.Backpack - || SpawnPriority != other.SpawnPriority - || !_jobPriorities.SequenceEqual(other._jobPriorities) - || !_antagPreferences.SequenceEqual(other._antagPreferences) - || !_traitPreferences.SequenceEqual(other._traitPreferences) - || !_loadoutPreferences.SequenceEqual(other._loadoutPreferences)) - return false; - return Appearance.MemberwiseEquals(other.Appearance); + Species = SharedHumanoidAppearanceSystem.DefaultSpecies; + speciesPrototype = prototypeManager.Index(Species); } - public void EnsureValid(ICommonSession session, IDependencyCollection collection) + var sex = Sex switch { - var configManager = collection.Resolve(); - var prototypeManager = collection.Resolve(); + Sex.Male => Sex.Male, + Sex.Female => Sex.Female, + Sex.Unsexed => Sex.Unsexed, + _ => Sex.Male // Invalid enum values. + }; - if (!prototypeManager.TryIndex(Species, out var speciesPrototype) || speciesPrototype.RoundStart == false) - { - Species = SharedHumanoidAppearanceSystem.DefaultSpecies; - speciesPrototype = prototypeManager.Index(Species); - } + // ensure the species can be that sex and their age fits the founds + if (!speciesPrototype.Sexes.Contains(sex)) + sex = speciesPrototype.Sexes[0]; - var sex = Sex switch - { - Sex.Male => Sex.Male, - Sex.Female => Sex.Female, - Sex.Unsexed => Sex.Unsexed, - _ => Sex.Male // Invalid enum values. - }; + var age = Math.Clamp(Age, speciesPrototype.MinAge, speciesPrototype.MaxAge); - // ensure the species can be that sex and their age fits the founds - if (!speciesPrototype.Sexes.Contains(sex)) - sex = speciesPrototype.Sexes[0]; + var gender = Gender switch + { + Gender.Epicene => Gender.Epicene, + Gender.Female => Gender.Female, + Gender.Male => Gender.Male, + Gender.Neuter => Gender.Neuter, + _ => Gender.Epicene // Invalid enum values. + }; - var age = Math.Clamp(Age, speciesPrototype.MinAge, speciesPrototype.MaxAge); + string name; + if (string.IsNullOrEmpty(Name)) + name = GetName(Species, gender); + else if (Name.Length > MaxNameLength) + name = Name[..MaxNameLength]; + else + name = Name; - var gender = Gender switch - { - Gender.Epicene => Gender.Epicene, - Gender.Female => Gender.Female, - Gender.Male => Gender.Male, - Gender.Neuter => Gender.Neuter, - _ => Gender.Epicene // Invalid enum values. - }; - - string name; - if (string.IsNullOrEmpty(Name)) - { - name = GetName(Species, gender); - } - else if (Name.Length > MaxNameLength) - { - name = Name[..MaxNameLength]; - } - else - { - name = Name; - } + name = name.Trim(); - name = name.Trim(); + if (configManager.GetCVar(CCVars.RestrictedNames)) + name = RestrictedNameRegex.Replace(name, string.Empty); - if (configManager.GetCVar(CCVars.RestrictedNames)) - { - // White Dream: Added Cyrillic support - name = Regex.Replace(name, @"[^\u0030-\u0039,\u0041-\u005A,\u0061-\u007A,\u00C0-\u00D6,\u00D8-\u00F6,\u00F8-\u00FF,\u0100-\u017F,\u0410-\u044F, '.,-]", string.Empty); - /* - * 0030-0039 Basic Latin: ASCII Digits - * 0041-005A Basic Latin: Uppercase Latin Alphabet - * 0061-007A Basic Latin: Lowercase Latin Alphabet - * 00C0-00D6 Latin-1 Supplement: Letters I - * 00D8-00F6 Latin-1 Supplement: Letters II - * 00F8-00FF Latin-1 Supplement: Letters III - * 0100-017F Latin Extended A: European Latin - * 0410-044F Cyrillic Alphabet - */ - } - - if (configManager.GetCVar(CCVars.ICNameCase)) - { - // This regex replaces the first character of the first and last words of the name with their uppercase version - name = Regex.Replace(name, - @"^(?\w)|\b(?\w)(?=\w*$)", - m => m.Groups["word"].Value.ToUpper()); - } + if (configManager.GetCVar(CCVars.ICNameCase)) + { + // This regex replaces the first character of the first and last words of the name with their uppercase version + name = ICNameCaseRegex.Replace(name, m => m.Groups["word"].Value.ToUpper()); + } - if (string.IsNullOrEmpty(name)) - { - name = GetName(Species, gender); - } + var customspeciename = + !speciesPrototype.CustomName + || string.IsNullOrEmpty(Customspeciename) + ? "" + : Customspeciename.Length > MaxNameLength + ? FormattedMessage.RemoveMarkup(Customspeciename)[..MaxNameLength] + : FormattedMessage.RemoveMarkup(Customspeciename); - string flavortext; - if (FlavorText.Length > MaxDescLength) - { - flavortext = FormattedMessage.RemoveMarkup(FlavorText)[..MaxDescLength]; - } - else - { - flavortext = FormattedMessage.RemoveMarkup(FlavorText); - } + if (string.IsNullOrEmpty(name)) + name = GetName(Species, gender); - var height = Math.Clamp(Height, speciesPrototype.MinHeight, speciesPrototype.MaxHeight); + string flavortext; + if (FlavorText.Length > MaxDescLength) + flavortext = FormattedMessage.RemoveMarkup(FlavorText)[..MaxDescLength]; + else + flavortext = FormattedMessage.RemoveMarkup(FlavorText); - var width = Math.Clamp(Width, speciesPrototype.MinWidth, speciesPrototype.MaxWidth); + var appearance = HumanoidCharacterAppearance.EnsureValid(Appearance, Species, Sex); - var appearance = HumanoidCharacterAppearance.EnsureValid(Appearance, Species, Sex); + var prefsUnavailableMode = PreferenceUnavailable switch + { + PreferenceUnavailableMode.StayInLobby => PreferenceUnavailableMode.StayInLobby, + PreferenceUnavailableMode.SpawnAsOverflow => PreferenceUnavailableMode.SpawnAsOverflow, + _ => PreferenceUnavailableMode.StayInLobby // Invalid enum values. + }; - var prefsUnavailableMode = PreferenceUnavailable switch - { - PreferenceUnavailableMode.StayInLobby => PreferenceUnavailableMode.StayInLobby, - PreferenceUnavailableMode.SpawnAsOverflow => PreferenceUnavailableMode.SpawnAsOverflow, - _ => PreferenceUnavailableMode.StayInLobby // Invalid enum values. - }; + var spawnPriority = SpawnPriority switch + { + SpawnPriorityPreference.None => SpawnPriorityPreference.None, + SpawnPriorityPreference.Arrivals => SpawnPriorityPreference.Arrivals, + SpawnPriorityPreference.Cryosleep => SpawnPriorityPreference.Cryosleep, + _ => SpawnPriorityPreference.None // Invalid enum values. + }; - var clothing = Clothing switch + var priorities = new Dictionary(JobPriorities + .Where(p => prototypeManager.TryIndex(p.Key, out var job) && job.SetPreference && p.Value switch { - ClothingPreference.Jumpsuit => ClothingPreference.Jumpsuit, - ClothingPreference.Jumpskirt => ClothingPreference.Jumpskirt, - _ => ClothingPreference.Jumpsuit // Invalid enum values. - }; + JobPriority.Never => false, // Drop never since that's assumed default. + JobPriority.Low => true, + JobPriority.Medium => true, + JobPriority.High => true, + _ => false + })); - var backpack = Backpack switch - { - BackpackPreference.Backpack => BackpackPreference.Backpack, - BackpackPreference.Satchel => BackpackPreference.Satchel, - BackpackPreference.Duffelbag => BackpackPreference.Duffelbag, - _ => BackpackPreference.Backpack // Invalid enum values. - }; + var antags = AntagPreferences + .Where(id => prototypeManager.TryIndex(id, out var antag) && antag.SetPreference) + .ToList(); - var spawnPriority = SpawnPriority switch - { - SpawnPriorityPreference.None => SpawnPriorityPreference.None, - SpawnPriorityPreference.Arrivals => SpawnPriorityPreference.Arrivals, - SpawnPriorityPreference.Cryosleep => SpawnPriorityPreference.Cryosleep, - _ => SpawnPriorityPreference.None // Invalid enum values. - }; - - var priorities = new Dictionary(JobPriorities - .Where(p => prototypeManager.TryIndex(p.Key, out var job) && job.SetPreference && p.Value switch - { - JobPriority.Never => false, // Drop never since that's assumed default. - JobPriority.Low => true, - JobPriority.Medium => true, - JobPriority.High => true, - _ => false - })); - - var antags = AntagPreferences - .Where(id => prototypeManager.TryIndex(id, out var antag) && antag.SetPreference) - .ToList(); - - var traits = TraitPreferences - .Where(prototypeManager.HasIndex) - .ToList(); - - var maxTraits = configManager.GetCVar(CCVars.GameTraitsMax); - var currentTraits = 0; - var traitPoints = configManager.GetCVar(CCVars.GameTraitsDefaultPoints); - - foreach (var trait in traits.OrderBy(t => -prototypeManager.Index(t).Points).ToList()) - { - var proto = prototypeManager.Index(trait); + var traits = TraitPreferences + .Where(prototypeManager.HasIndex) + .ToList(); - if (traitPoints + proto.Points < 0 || currentTraits + 1 > maxTraits) - traits.Remove(trait); - else - { - traitPoints += proto.Points; - currentTraits++; - } - } + var loadouts = LoadoutPreferences + .Where(prototypeManager.HasIndex) + .ToList(); + Name = name; + Customspeciename = customspeciename; + FlavorText = flavortext; + Age = age; + Sex = sex; + Gender = gender; + Appearance = appearance; + SpawnPriority = spawnPriority; - var loadouts = LoadoutPreferences - .Where(prototypeManager.HasIndex) - .ToList(); + _jobPriorities.Clear(); - var loadoutPoints = configManager.GetCVar(CCVars.GameLoadoutsPoints); - var currentPoints = 0; + foreach (var (job, priority) in priorities) + _jobPriorities.Add(job, priority); - foreach (var loadout in loadouts.ToList()) - { - var proto = prototypeManager.Index(loadout); - - if (currentPoints + proto.Cost > loadoutPoints) - loadouts.Remove(loadout); - else - currentPoints += proto.Cost; - } - - - Name = name; - FlavorText = flavortext; - Age = age; - Height = height; - Width = width; - Sex = sex; - Gender = gender; - Appearance = appearance; - Clothing = clothing; - Backpack = backpack; - SpawnPriority = spawnPriority; - - _jobPriorities.Clear(); - - foreach (var (job, priority) in priorities) - { - _jobPriorities.Add(job, priority); - } + PreferenceUnavailable = prefsUnavailableMode; - PreferenceUnavailable = prefsUnavailableMode; + _antagPreferences.Clear(); + _antagPreferences.UnionWith(antags); - _antagPreferences.Clear(); - _antagPreferences.AddRange(antags); + _traitPreferences.Clear(); + _traitPreferences.UnionWith(traits); - _traitPreferences.Clear(); - _traitPreferences.AddRange(traits); + _loadoutPreferences.Clear(); + _loadoutPreferences.UnionWith(loadouts); + } - _loadoutPreferences.Clear(); - _loadoutPreferences.AddRange(loadouts); - } + public ICharacterProfile Validated(ICommonSession session, IDependencyCollection collection) + { + var profile = new HumanoidCharacterProfile(this); + profile.EnsureValid(session, collection); + return profile; + } - public ICharacterProfile Validated(ICommonSession session, IDependencyCollection collection) - { - var profile = new HumanoidCharacterProfile(this); - profile.EnsureValid(session, collection); - return profile; - } + // Sorry this is kind of weird and duplicated, + // Working inside these non entity systems is a bit wack + public static string GetName(string species, Gender gender) + { + var namingSystem = IoCManager.Resolve().GetEntitySystem(); + return namingSystem.GetName(species, gender); + } - // sorry this is kind of weird and duplicated, - /// working inside these non entity systems is a bit wack - public static string GetName(string species, Gender gender) - { - var namingSystem = IoCManager.Resolve().GetEntitySystem(); - return namingSystem.GetName(species, gender); - } + public override bool Equals(object? obj) + { + return ReferenceEquals(this, obj) || obj is HumanoidCharacterProfile other && MemberwiseEquals(other); + } - public override bool Equals(object? obj) - { - return obj is HumanoidCharacterProfile other && MemberwiseEquals(other); - } + public override int GetHashCode() + { + var hashCode = new HashCode(); + hashCode.Add(_jobPriorities); + hashCode.Add(_antagPreferences); + hashCode.Add(_traitPreferences); + hashCode.Add(_loadoutPreferences); + hashCode.Add(Name); + hashCode.Add(FlavorText); + hashCode.Add(Species); + hashCode.Add(Age); + hashCode.Add((int)Sex); + hashCode.Add((int)Gender); + hashCode.Add(Appearance); + hashCode.Add((int)SpawnPriority); + hashCode.Add((int)PreferenceUnavailable); + hashCode.Add(Customspeciename); + return hashCode.ToHashCode(); + } - public override int GetHashCode() - { - return HashCode.Combine( - HashCode.Combine( - Name, - Species, - Age, - Sex, - Gender, - Appearance, - Clothing, - Backpack - ), - HashCode.Combine( - SpawnPriority, - Height, - Width, - PreferenceUnavailable, - _jobPriorities, - _antagPreferences, - _traitPreferences, - _loadoutPreferences - ) - ); - } + public HumanoidCharacterProfile Clone() + { + return new HumanoidCharacterProfile(this); } } diff --git a/Content.Shared/Preferences/Loadouts/Effects/SpeciesLoadoutEffect.cs b/Content.Shared/Preferences/Loadouts/Effects/SpeciesLoadoutEffect.cs new file mode 100644 index 0000000000..74673cbef3 --- /dev/null +++ b/Content.Shared/Preferences/Loadouts/Effects/SpeciesLoadoutEffect.cs @@ -0,0 +1,6 @@ +namespace Content.Shared.Preferences.Loadouts.Effects; + +public sealed class SpeciesLoadoutEffect +{ + +} diff --git a/Content.Shared/Prototypes/LocalizedPrototype.cs b/Content.Shared/Prototypes/LocalizedPrototype.cs new file mode 100644 index 0000000000..acdd5fc180 --- /dev/null +++ b/Content.Shared/Prototypes/LocalizedPrototype.cs @@ -0,0 +1,35 @@ +using System.Linq; +using Robust.Shared.Prototypes; + +namespace Content.Shared.Prototypes; + +public abstract class LocalizedPrototype : IPrototype +{ + [IdDataField] + public string ID { get; } = default!; + + public const string LocFormat = "{0}-{1}-{2}"; + + /// The localization string for the name of this prototype + public string NameLoc => ToLocalizationString("name"); + /// The localized string for the name of prototype + public string Name => Loc.GetString(NameLoc); + + /// + /// Returns an Loc string using the as the 'property'. + /// Given `desc` it will return `this-prototype-PrototypeId-desc`. + /// + public string ToLocalizationString(string field) + { + // Get the ID of the proto Type + var type = + ((PrototypeAttribute?) Attribute.GetCustomAttribute(GetType(), typeof(PrototypeAttribute)))?.Type + ?? GetType().Name.Remove(GetType().Name.Length - 9); + // Lowercase the first letter + type = char.ToLowerInvariant(type[0]) + type[1..]; + // Replace every uppercase letter with a dash and the lowercase letter + type = type.Aggregate("", (current, c) => current + (char.IsUpper(c) ? "-" + char.ToLowerInvariant(c) : c.ToString())); + + return string.Format(LocFormat, type, ID, field); + } +} diff --git a/Content.Shared/Prying/Systems/PryingSystem.cs b/Content.Shared/Prying/Systems/PryingSystem.cs index 8dc6efd4de..d7d1f0ac34 100644 --- a/Content.Shared/Prying/Systems/PryingSystem.cs +++ b/Content.Shared/Prying/Systems/PryingSystem.cs @@ -1,15 +1,14 @@ -using Content.Shared.Prying.Components; -using Content.Shared.Verbs; -using Content.Shared.DoAfter; -using Robust.Shared.Serialization; +using System.Diagnostics.CodeAnalysis; using Content.Shared.Administration.Logs; using Content.Shared.Database; +using Content.Shared.DoAfter; using Content.Shared.Doors.Components; -using System.Diagnostics.CodeAnalysis; using Content.Shared.Interaction; using Content.Shared.Popups; -using Robust.Shared.Audio; +using Content.Shared.Prying.Components; +using Content.Shared.Verbs; using Robust.Shared.Audio.Systems; +using Robust.Shared.Serialization; using PryUnpoweredComponent = Content.Shared.Prying.Components.PryUnpoweredComponent; namespace Content.Shared.Prying.Systems; @@ -99,14 +98,16 @@ public bool TryPry(EntityUid target, EntityUid user, out DoAfterId? id) // to be marked as handled. return true; - return StartPry(target, user, null, 0.1f, out id); // hand-prying is much slower + // hand-prying is much slower + var modifier = CompOrNull(user)?.SpeedModifier ?? 0.1f; + return StartPry(target, user, null, modifier, out id); } private bool CanPry(EntityUid target, EntityUid user, out string? message, PryingComponent? comp = null) { BeforePryEvent canev; - if (comp != null) + if (comp != null || Resolve(user, ref comp, false)) { canev = new BeforePryEvent(user, comp.PryPowered, comp.Force); } diff --git a/Content.Shared/Psionics/Events.cs b/Content.Shared/Psionics/Events.cs index cf9a50c6e1..68ec3097e7 100644 --- a/Content.Shared/Psionics/Events.cs +++ b/Content.Shared/Psionics/Events.cs @@ -1,28 +1,69 @@ using Robust.Shared.Serialization; +using Content.Shared.Damage; using Content.Shared.DoAfter; -namespace Content.Shared.Psionics.Events +namespace Content.Shared.Psionics.Events; + +[Serializable, NetSerializable] +public sealed partial class PsionicRegenerationDoAfterEvent : DoAfterEvent { - [Serializable, NetSerializable] - public sealed partial class PsionicRegenerationDoAfterEvent : DoAfterEvent + [DataField("startedAt", required: true)] + public TimeSpan StartedAt; + + public PsionicRegenerationDoAfterEvent(TimeSpan startedAt) { - [DataField("startedAt", required: true)] - public TimeSpan StartedAt; + StartedAt = startedAt; + } - private PsionicRegenerationDoAfterEvent() - { - } + public override DoAfterEvent Clone() => this; +} - public PsionicRegenerationDoAfterEvent(TimeSpan startedAt) - { - StartedAt = startedAt; - } +[Serializable, NetSerializable] +public sealed partial class GlimmerWispDrainDoAfterEvent : SimpleDoAfterEvent { } - public override DoAfterEvent Clone() => this; +[Serializable, NetSerializable] +public sealed partial class HealingWordDoAfterEvent : DoAfterEvent +{ + [DataField(required: true)] + public TimeSpan StartedAt; + + public HealingWordDoAfterEvent(TimeSpan startedAt) + { + StartedAt = startedAt; } - [Serializable, NetSerializable] - public sealed partial class GlimmerWispDrainDoAfterEvent : SimpleDoAfterEvent + public override DoAfterEvent Clone() => this; +} + +[Serializable, NetSerializable] +public sealed partial class PsionicHealOtherDoAfterEvent : DoAfterEvent +{ + [DataField(required: true)] + public TimeSpan StartedAt; + + [DataField] + public DamageSpecifier? HealingAmount = default!; + + [DataField] + public float? RotReduction; + + [DataField] + public bool DoRevive; + + /// + /// Caster's Amplification that has been modified by the results of a MoodContest. + /// + public float ModifiedAmplification = default!; + + /// + /// Caster's Dampening that has been modified by the results of a MoodContest. + /// + public float ModifiedDampening = default!; + + public PsionicHealOtherDoAfterEvent(TimeSpan startedAt) { + StartedAt = startedAt; } + + public override DoAfterEvent Clone() => this; } diff --git a/Content.Shared/Psionics/PsionicComponent.cs b/Content.Shared/Psionics/PsionicComponent.cs index 6352957615..37d0a9a7ef 100644 --- a/Content.Shared/Psionics/PsionicComponent.cs +++ b/Content.Shared/Psionics/PsionicComponent.cs @@ -1,3 +1,4 @@ +using Content.Shared.DoAfter; using Content.Shared.Psionics; using Robust.Shared.GameStates; using Robust.Shared.Prototypes; @@ -8,11 +9,19 @@ namespace Content.Shared.Abilities.Psionics public sealed partial class PsionicComponent : Component { /// - /// How close a Psion is to awakening a new power. - /// TODO: Implement this in a separate PR. + /// How close a Psion is to generating a new power. When Potentia reaches the NextPowerCost, it is "Spent" in order to "Buy" a random new power. + /// TODO: Psi-Potentiometry should be able to read how much Potentia a person has. + /// + [DataField] + public float Potentia; + + /// + /// Each time a Psion rolls for a new power, they roll a number between 0 and 100, adding any relevant modifiers. This number is then added to Potentia, + /// meaning that it carries over between rolls. When a character has an amount of potentia equal to at least 100 * 2^(total powers), the potentia is then spent, and a power is generated. + /// This variable stores the cost of the next power. /// [DataField] - public float Potentia = 0; + public float NextPowerCost = 100; /// /// The baseline chance of obtaining a psionic power when rolling for one. @@ -24,7 +33,7 @@ public sealed partial class PsionicComponent : Component /// Whether or not a Psion has an available "Reroll" to spend on attempting to gain powers. /// [DataField] - public bool CanReroll; + public bool CanReroll = true; /// /// The Base amount of time (in minutes) this Psion is given the stutter effect if they become mindbroken. @@ -142,10 +151,30 @@ private set public float CurrentDampening; /// + /// How many "Slots" an entity has for psionic powers. This is not a hard limit, and is instead used for calculating the cost to generate new powers. + /// Exceeding this limit causes an entity to become a Glimmer Source. + /// + [DataField] + public int PowerSlots = 1; + + /// + /// How many "Slots" are currently occupied by psionic powers. + /// + [ViewVariables(VVAccess.ReadWrite)] + public int PowerSlotsTaken; + /// List of descriptors this entity will bring up for psychognomy. Used to remove /// unneccesary subs for unique psionic entities like e.g. Oracle. /// [DataField] - public List? PsychognomicDescriptors = null; + public List? PsychognomicDescriptors = null; + + /// Used for tracking what spell a Psion is actively casting + [DataField] + public DoAfterId? DoAfter; + + /// Popup to play if a Psion attempts to start casting a power while already casting one + [DataField] + public string AlreadyCasting = "already-casting"; } } diff --git a/Content.Shared/Psionics/PsionicPowerPrototype.cs b/Content.Shared/Psionics/PsionicPowerPrototype.cs index 3d389f6cdb..d81ae05be2 100644 --- a/Content.Shared/Psionics/PsionicPowerPrototype.cs +++ b/Content.Shared/Psionics/PsionicPowerPrototype.cs @@ -72,7 +72,7 @@ public sealed partial class PsionicPowerPrototype : IPrototype /// /// What message will this power generate when scanned by a Metempsionic Focused Pulse. /// - [DataField(required: true)] + [DataField] public string MetapsionicFeedback = "psionic-metapsionic-feedback-default"; /// @@ -86,4 +86,10 @@ public sealed partial class PsionicPowerPrototype : IPrototype /// [DataField] public float DampeningModifier = 0; + + /// + /// How many "Power Slots" this power occupies. + /// + [DataField] + public int PowerSlotCost = 1; } \ No newline at end of file diff --git a/Content.Shared/Psionics/SharedPsionicAbilitiesSystem.cs b/Content.Shared/Psionics/SharedPsionicAbilitiesSystem.cs index f1f03bcb9e..2792864568 100644 --- a/Content.Shared/Psionics/SharedPsionicAbilitiesSystem.cs +++ b/Content.Shared/Psionics/SharedPsionicAbilitiesSystem.cs @@ -1,4 +1,5 @@ using Content.Shared.Administration.Logs; +using Content.Shared.Contests; using Content.Shared.Popups; using Content.Shared.Psionics.Glimmer; using Robust.Shared.Random; @@ -13,6 +14,7 @@ public sealed class SharedPsionicAbilitiesSystem : EntitySystem [Dependency] private readonly ISharedAdminLogManager _adminLogger = default!; [Dependency] private readonly GlimmerSystem _glimmerSystem = default!; [Dependency] private readonly IRobustRandom _robustRandom = default!; + [Dependency] private readonly ContestsSystem _contests = default!; public override void Initialize() { @@ -41,6 +43,48 @@ public void LogPowerUsed(EntityUid uid, string power, int minGlimmer = 8, int ma _glimmerSystem.Glimmer += _robustRandom.Next(minGlimmer, maxGlimmer); } + + /// + /// Returns the CurrentAmplification of a given Entity, multiplied by the result of that Entity's MoodContest. + /// Higher mood means more Amplification, Lower mood means less Amplification. + /// + public float ModifiedAmplification(EntityUid uid) + { + if (!TryComp(uid, out var psionicComponent)) + return 1; + + return ModifiedAmplification(uid, psionicComponent); + } + + /// + /// Returns the CurrentAmplification of a given Entity, multiplied by the result of that Entity's MoodContest. + /// Higher mood means more Amplification, Lower mood means less Amplification. + /// + public float ModifiedAmplification(EntityUid uid, PsionicComponent component) + { + return component.CurrentAmplification * _contests.MoodContest(uid, true); + } + + /// + /// Returns the CurrentDampening of a given Entity, multiplied by the result of that Entity's MoodContest. + /// Lower mood means more Dampening, higher mood means less Dampening. + /// + public float ModifiedDampening(EntityUid uid) + { + if (!TryComp(uid, out var psionicComponent)) + return 1; + + return ModifiedDampening(uid, psionicComponent); + } + + /// + /// Returns the CurrentDampening of a given Entity, multiplied by the result of that Entity's MoodContest. + /// Lower mood means more Dampening, higher mood means less Dampening. + /// + public float ModifiedDampening(EntityUid uid, PsionicComponent component) + { + return component.CurrentDampening / _contests.MoodContest(uid, true); + } } public sealed class PsionicPowerUsedEvent : HandledEntityEventArgs diff --git a/Content.Shared/RCD/RCDPrototype.cs b/Content.Shared/RCD/RCDPrototype.cs index 1e80abfb72..58093bbe87 100644 --- a/Content.Shared/RCD/RCDPrototype.cs +++ b/Content.Shared/RCD/RCDPrototype.cs @@ -9,7 +9,7 @@ namespace Content.Shared.RCD; /// Contains the parameters for a RCD construction / operation /// [Prototype("rcd")] -public sealed class RCDPrototype : IPrototype +public sealed partial class RCDPrototype : IPrototype { [IdDataField] public string ID { get; private set; } = default!; @@ -51,7 +51,7 @@ public sealed class RCDPrototype : IPrototype public int Cost { get; private set; } = 1; /// - /// The length of the operation + /// The length of the operation /// [DataField, ViewVariables(VVAccess.ReadOnly)] public float Delay { get; private set; } = 1f; @@ -75,7 +75,7 @@ public sealed class RCDPrototype : IPrototype public CollisionGroup CollisionMask { get; private set; } = CollisionGroup.None; /// - /// Specifies a set of custom collision bounds for determining whether the entity prototype will fit into a target tile + /// Specifies a set of custom collision bounds for determining whether the entity prototype will fit into a target tile /// /// /// Should be set assuming that the entity faces south. @@ -106,7 +106,7 @@ private set private Box2? _collisionBounds = null; /// - /// The polygon shape associated with the prototype CollisionBounds (if set) + /// The polygon shape associated with the prototype CollisionBounds (if set) /// [ViewVariables(VVAccess.ReadOnly)] public PolygonShape? CollisionPolygon { get; private set; } = null; diff --git a/Content.Shared/Radio/Components/EncryptionKeyHolderComponent.cs b/Content.Shared/Radio/Components/EncryptionKeyHolderComponent.cs index 6c50acb966..d84a161860 100644 --- a/Content.Shared/Radio/Components/EncryptionKeyHolderComponent.cs +++ b/Content.Shared/Radio/Components/EncryptionKeyHolderComponent.cs @@ -15,27 +15,22 @@ public sealed partial class EncryptionKeyHolderComponent : Component /// /// Whether or not encryption keys can be removed from the headset. /// - [ViewVariables(VVAccess.ReadWrite)] - [DataField("keysUnlocked")] + [DataField] public bool KeysUnlocked = true; /// /// The tool required to extract the encryption keys from the headset. /// - [ViewVariables(VVAccess.ReadWrite)] - [DataField("keysExtractionMethod", customTypeSerializer: typeof(PrototypeIdSerializer))] + [DataField(customTypeSerializer: typeof(PrototypeIdSerializer))] public string KeysExtractionMethod = "Screwing"; - [ViewVariables(VVAccess.ReadWrite)] - [DataField("keySlots")] + [DataField] public int KeySlots = 2; - [ViewVariables(VVAccess.ReadWrite)] - [DataField("keyExtractionSound")] + [DataField] public SoundSpecifier KeyExtractionSound = new SoundPathSpecifier("/Audio/Items/pistol_magout.ogg"); - [ViewVariables(VVAccess.ReadWrite)] - [DataField("keyInsertionSound")] + [DataField] public SoundSpecifier KeyInsertionSound = new SoundPathSpecifier("/Audio/Items/pistol_magin.ogg"); [ViewVariables] @@ -45,8 +40,7 @@ public sealed partial class EncryptionKeyHolderComponent : Component /// /// Whether or not the headset can be examined to see the encryption keys while the keys aren't accessible. /// - [ViewVariables(VVAccess.ReadWrite)] - [DataField("examineWhileLocked")] + [DataField] public bool ExamineWhileLocked = true; /// diff --git a/Content.Shared/Radio/Components/SharedRadioJammerComponent.cs b/Content.Shared/Radio/Components/SharedRadioJammerComponent.cs new file mode 100644 index 0000000000..e5e52a3e47 --- /dev/null +++ b/Content.Shared/Radio/Components/SharedRadioJammerComponent.cs @@ -0,0 +1,74 @@ +using Robust.Shared.Serialization; +using Robust.Shared.GameStates; + +namespace Content.Shared.RadioJammer; + +/// +/// When activated () prevents from sending messages in range +/// Suit sensors will also stop working. +/// +[NetworkedComponent, RegisterComponent] +public sealed partial class RadioJammerComponent : Component +{ + [DataDefinition] + public partial struct RadioJamSetting + { + /// + /// Power usage per second when enabled. + /// + [DataField(required: true)] + public float Wattage; + + /// + /// Range of the jammer. + /// + [DataField(required: true)] + public float Range; + + /// + /// The message that is displayed when switched + /// to this setting. + /// + [DataField(required: true)] + public LocId Message = string.Empty; + + /// + /// Name of the setting. + /// + [DataField(required: true)] + public LocId Name = string.Empty; + } + + /// + /// List of all the settings for the radio jammer. + /// + [DataField(required: true), ViewVariables(VVAccess.ReadOnly)] + public RadioJamSetting[] Settings; + + /// + /// Index of the currently selected setting. + /// + [DataField] + public int SelectedPowerLevel = 1; +} + +[Serializable, NetSerializable] +public enum RadioJammerChargeLevel : byte +{ + Low, + Medium, + High +} + +[Serializable, NetSerializable] +public enum RadioJammerLayers : byte +{ + LED +} + +[Serializable, NetSerializable] +public enum RadioJammerVisuals : byte +{ + ChargeLevel, + LEDOn +} diff --git a/Content.Shared/Radio/EntitySystems/EncryptionKeySystem.cs b/Content.Shared/Radio/EntitySystems/EncryptionKeySystem.cs index cb475a8300..c14001387c 100644 --- a/Content.Shared/Radio/EntitySystems/EncryptionKeySystem.cs +++ b/Content.Shared/Radio/EntitySystems/EncryptionKeySystem.cs @@ -6,10 +6,8 @@ using Content.Shared.Interaction; using Content.Shared.Popups; using Content.Shared.Radio.Components; -using Content.Shared.Tools; using Content.Shared.Tools.Components; using Content.Shared.Wires; -using Robust.Shared.Audio; using Robust.Shared.Audio.Systems; using Robust.Shared.Containers; using Robust.Shared.Network; @@ -175,13 +173,9 @@ private void OnStartup(EntityUid uid, EncryptionKeyHolderComponent component, Co private void OnHolderExamined(EntityUid uid, EncryptionKeyHolderComponent component, ExaminedEvent args) { - if (!args.IsInDetailsRange) - return; - - if (!component.ExamineWhileLocked && !component.KeysUnlocked) - return; - - if (!component.ExamineWhileLocked && TryComp(uid, out var panel) && !panel.Open) + if (!args.IsInDetailsRange + || !component.ExamineWhileLocked && !component.KeysUnlocked + || !component.ExamineWhileLocked && TryComp(uid, out var panel) && !panel.Open) return; if (component.KeyContainer.ContainedEntities.Count == 0) diff --git a/Content.Shared/Radio/EntitySystems/SharedJammerSystem.cs b/Content.Shared/Radio/EntitySystems/SharedJammerSystem.cs new file mode 100644 index 0000000000..e1f632735c --- /dev/null +++ b/Content.Shared/Radio/EntitySystems/SharedJammerSystem.cs @@ -0,0 +1,78 @@ +using Content.Shared.Popups; +using Content.Shared.DeviceNetwork.Components; +using Content.Shared.Verbs; +using Content.Shared.RadioJammer; + +namespace Content.Shared.Radio.EntitySystems; + +public abstract class SharedJammerSystem : EntitySystem +{ + [Dependency] private readonly SharedAppearanceSystem _appearance = default!; + [Dependency] protected readonly SharedPopupSystem Popup = default!; + + public override void Initialize() + { + base.Initialize(); + + SubscribeLocalEvent>(OnGetVerb); + } + + private void OnGetVerb(Entity entity, ref GetVerbsEvent args) + { + if (!args.CanAccess || !args.CanInteract) + return; + + var user = args.User; + + byte index = 0; + foreach (var setting in entity.Comp.Settings) + { + // This is because Act wont work with index. + // Needs it to be saved in the loop. + var currIndex = index; + var verb = new Verb + { + Priority = currIndex, + Category = VerbCategory.PowerLevel, + Disabled = entity.Comp.SelectedPowerLevel == currIndex, + Act = () => + { + entity.Comp.SelectedPowerLevel = currIndex; + if (TryComp(entity.Owner, out var jammerComp)) + { + // This is a little sketcy but only way to do it. + jammerComp.Range = GetCurrentRange(entity.Comp); + Dirty(entity.Owner, jammerComp); + } + Popup.PopupPredicted(Loc.GetString(setting.Message), user, user); + }, + Text = Loc.GetString(setting.Name), + }; + args.Verbs.Add(verb); + index++; + } + } + + public float GetCurrentWattage(RadioJammerComponent jammer) + { + return jammer.Settings[jammer.SelectedPowerLevel].Wattage; + } + + public float GetCurrentRange(RadioJammerComponent jammer) + { + return jammer.Settings[jammer.SelectedPowerLevel].Range; + } + + protected void ChangeLEDState(bool isLEDOn, EntityUid uid, + AppearanceComponent? appearance = null) + { + _appearance.SetData(uid, RadioJammerVisuals.LEDOn, isLEDOn, appearance); + } + + protected void ChangeChargeLevel(RadioJammerChargeLevel chargeLevel, EntityUid uid, + AppearanceComponent? appearance = null) + { + _appearance.SetData(uid, RadioJammerVisuals.ChargeLevel, chargeLevel, appearance); + } + +} diff --git a/Content.Shared/Random/Helpers/SharedRandomExtensions.cs b/Content.Shared/Random/Helpers/SharedRandomExtensions.cs index dcdc9d61d9..20e57e9421 100644 --- a/Content.Shared/Random/Helpers/SharedRandomExtensions.cs +++ b/Content.Shared/Random/Helpers/SharedRandomExtensions.cs @@ -57,7 +57,8 @@ public static string Pick(this IWeightedRandomPrototype prototype, IRobustRandom throw new InvalidOperationException($"Invalid weighted pick for {prototype.ID}!"); } - public static string Pick(this IRobustRandom random, Dictionary weights) + public static T Pick(this IRobustRandom random, Dictionary weights) + where T: notnull { var sum = weights.Values.Sum(); var accumulated = 0f; @@ -74,7 +75,7 @@ public static string Pick(this IRobustRandom random, Dictionary w } } - throw new InvalidOperationException($"Invalid weighted pick"); + throw new InvalidOperationException("Invalid weighted pick"); } public static (string reagent, FixedPoint2 quantity) Pick(this WeightedRandomFillSolutionPrototype prototype, IRobustRandom? random = null) diff --git a/Content.Shared/ReagentSpeed/ReagentSpeedComponent.cs b/Content.Shared/ReagentSpeed/ReagentSpeedComponent.cs new file mode 100644 index 0000000000..d233cad2a0 --- /dev/null +++ b/Content.Shared/ReagentSpeed/ReagentSpeedComponent.cs @@ -0,0 +1,34 @@ +using Content.Shared.Chemistry.Reagent; +using Content.Shared.FixedPoint; +using Robust.Shared.Prototypes; + +namespace Content.Shared.ReagentSpeed; + +/// +/// Makes a device work faster by consuming reagents on each use. +/// Other systems must use for this to do anything. +/// +[RegisterComponent, Access(typeof(ReagentSpeedSystem))] +public sealed partial class ReagentSpeedComponent : Component +{ + /// + /// Solution that will be checked. + /// Anything that isn't in Modifiers is left alone. + /// + [DataField(required: true)] + public string Solution = string.Empty; + + /// + /// How much reagent from the solution to use up for each use. + /// This is per-modifier-reagent and not shared between them. + /// + [DataField] + public FixedPoint2 Cost = 5; + + /// + /// Reagents and how much they modify speed at full purity. + /// Small number means faster large number means slower. + /// + [DataField(required: true)] + public Dictionary, float> Modifiers = new(); +} diff --git a/Content.Shared/ReagentSpeed/ReagentSpeedSystem.cs b/Content.Shared/ReagentSpeed/ReagentSpeedSystem.cs new file mode 100644 index 0000000000..8561c7b12a --- /dev/null +++ b/Content.Shared/ReagentSpeed/ReagentSpeedSystem.cs @@ -0,0 +1,33 @@ +using Content.Shared.Chemistry.EntitySystems; + +namespace Content.Shared.ReagentSpeed; + +public sealed class ReagentSpeedSystem : EntitySystem +{ + [Dependency] private readonly SharedSolutionContainerSystem _solution = default!; + + /// + /// Consumes reagents and modifies the duration. + /// This can be production time firing delay etc. + /// + public TimeSpan ApplySpeed(Entity ent, TimeSpan time) + { + if (!Resolve(ent, ref ent.Comp, false)) + return time; + + if (!_solution.TryGetSolution(ent.Owner, ent.Comp.Solution, out _, out var solution)) + return time; + + foreach (var (reagent, fullModifier) in ent.Comp.Modifiers) + { + var used = solution.RemoveReagent(reagent, ent.Comp.Cost); + var efficiency = (used / ent.Comp.Cost).Float(); + // scale the speed modifier so microdosing has less effect + var reduction = (1f - fullModifier) * efficiency; + var modifier = 1f - reduction; + time *= modifier; + } + + return time; + } +} diff --git a/Content.Shared/Robotics/Components/RoboticsConsoleComponent.cs b/Content.Shared/Robotics/Components/RoboticsConsoleComponent.cs new file mode 100644 index 0000000000..4329e437a2 --- /dev/null +++ b/Content.Shared/Robotics/Components/RoboticsConsoleComponent.cs @@ -0,0 +1,53 @@ +using Content.Shared.Radio; +using Content.Shared.Robotics; +using Content.Shared.Robotics.Systems; +using Robust.Shared.GameStates; +using Robust.Shared.Prototypes; +using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom; + +namespace Content.Shared.Robotics.Components; + +/// +/// Robotics console for managing borgs. +/// +[RegisterComponent, NetworkedComponent, Access(typeof(SharedRoboticsConsoleSystem))] +[AutoGenerateComponentState, AutoGenerateComponentPause] +public sealed partial class RoboticsConsoleComponent : Component +{ + /// + /// Address and data of each cyborg. + /// + [DataField] + public Dictionary Cyborgs = new(); + + /// + /// After not responding for this length of time borgs are removed from the console. + /// + [DataField] + public TimeSpan Timeout = TimeSpan.FromSeconds(10); + + /// + /// Radio channel to send messages on. + /// + [DataField] + public ProtoId RadioChannel = "Science"; + + /// + /// Radio message sent when destroying a borg. + /// + [DataField] + public LocId DestroyMessage = "robotics-console-cyborg-destroyed"; + + /// + /// Cooldown on destroying borgs to prevent complete abuse. + /// + [DataField] + public TimeSpan DestroyCooldown = TimeSpan.FromSeconds(30); + + /// + /// When a borg can next be destroyed. + /// + [DataField(customTypeSerializer: typeof(TimeOffsetSerializer))] + [AutoNetworkedField, AutoPausedField] + public TimeSpan NextDestroy = TimeSpan.Zero; +} diff --git a/Content.Shared/Robotics/RoboticsConsoleUi.cs b/Content.Shared/Robotics/RoboticsConsoleUi.cs new file mode 100644 index 0000000000..1be89beff0 --- /dev/null +++ b/Content.Shared/Robotics/RoboticsConsoleUi.cs @@ -0,0 +1,126 @@ +using Robust.Shared.Prototypes; +using Robust.Shared.Serialization; +using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom; +using Robust.Shared.Utility; + +namespace Content.Shared.Robotics; + +[Serializable, NetSerializable] +public enum RoboticsConsoleUiKey : byte +{ + Key +} + +[Serializable, NetSerializable] +public sealed class RoboticsConsoleState : BoundUserInterfaceState +{ + /// + /// Map of device network addresses to cyborg data. + /// + public Dictionary Cyborgs; + + public RoboticsConsoleState(Dictionary cyborgs) + { + Cyborgs = cyborgs; + } +} + +/// +/// Message to disable the selected cyborg. +/// +[Serializable, NetSerializable] +public sealed class RoboticsConsoleDisableMessage : BoundUserInterfaceMessage +{ + public readonly string Address; + + public RoboticsConsoleDisableMessage(string address) + { + Address = address; + } +} + +/// +/// Message to destroy the selected cyborg. +/// +[Serializable, NetSerializable] +public sealed class RoboticsConsoleDestroyMessage : BoundUserInterfaceMessage +{ + public readonly string Address; + + public RoboticsConsoleDestroyMessage(string address) + { + Address = address; + } +} + +/// +/// All data a client needs to render the console UI for a single cyborg. +/// Created by BorgTransponderComponent and sent to clients by RoboticsConsoleComponent. +/// +[DataRecord, Serializable, NetSerializable] +public record struct CyborgControlData +{ + /// + /// Texture of the borg chassis. + /// + [DataField(required: true)] + public SpriteSpecifier? ChassisSprite; + + /// + /// Name of the borg chassis. + /// + [DataField(required: true)] + public string ChassisName = string.Empty; + + /// + /// Name of the borg's entity, including its silicon id. + /// + [DataField(required: true)] + public string Name = string.Empty; + + /// + /// Battery charge from 0 to 1. + /// + [DataField] + public float Charge; + + /// + /// How many modules this borg has, just useful information for roboticists. + /// Lets them keep track of the latejoin borgs that need new modules and stuff. + /// + [DataField] + public int ModuleCount; + + /// + /// Whether the borg has a brain installed or not. + /// + [DataField] + public bool HasBrain; + + /// + /// When this cyborg's data will be deleted. + /// Set by the console when receiving the packet. + /// + [DataField(customTypeSerializer: typeof(TimeOffsetSerializer))] + public TimeSpan Timeout = TimeSpan.Zero; + + public CyborgControlData(SpriteSpecifier? chassisSprite, string chassisName, string name, float charge, int moduleCount, bool hasBrain) + { + ChassisSprite = chassisSprite; + ChassisName = chassisName; + Name = name; + Charge = charge; + ModuleCount = moduleCount; + HasBrain = hasBrain; + } +} + +public static class RoboticsConsoleConstants +{ + // broadcast by cyborgs on Robotics Console frequency + public const string NET_CYBORG_DATA = "cyborg-data"; + + // sent by robotics console to cyborgs on Cyborg Control frequency + public const string NET_DISABLE_COMMAND = "cyborg-disable"; + public const string NET_DESTROY_COMMAND = "cyborg-destroy"; +} diff --git a/Content.Shared/Robotics/Systems/SharedRoboticsConsoleSystem.cs b/Content.Shared/Robotics/Systems/SharedRoboticsConsoleSystem.cs new file mode 100644 index 0000000000..25b3c5d07a --- /dev/null +++ b/Content.Shared/Robotics/Systems/SharedRoboticsConsoleSystem.cs @@ -0,0 +1,8 @@ +namespace Content.Shared.Robotics.Systems; + +/// +/// Does nothing, only exists for access right now. +/// +public abstract class SharedRoboticsConsoleSystem : EntitySystem +{ +} diff --git a/Content.Shared/Roles/SharedRoleSystem.cs b/Content.Shared/Roles/SharedRoleSystem.cs index 94ad32164b..d5ac2e5923 100644 --- a/Content.Shared/Roles/SharedRoleSystem.cs +++ b/Content.Shared/Roles/SharedRoleSystem.cs @@ -196,11 +196,13 @@ public bool MindTryRemoveRole(EntityUid mindId) where T : IComponent public bool MindHasRole(EntityUid mindId) where T : IComponent { + DebugTools.Assert(HasComp(mindId)); return HasComp(mindId); } public List MindGetAllRoles(EntityUid mindId) { + DebugTools.Assert(HasComp(mindId)); var ev = new MindGetAllRolesEvent(new List()); RaiseLocalEvent(mindId, ref ev); return ev.Roles; @@ -211,6 +213,7 @@ public bool MindIsAntagonist(EntityUid? mindId) if (mindId == null) return false; + DebugTools.Assert(HasComp(mindId)); var ev = new MindIsAntagonistEvent(); RaiseLocalEvent(mindId.Value, ref ev); return ev.IsAntagonist; diff --git a/Content.Shared/Roles/StartingGearEquippedEvent.cs b/Content.Shared/Roles/StartingGearEquippedEvent.cs new file mode 100644 index 0000000000..41b6caccff --- /dev/null +++ b/Content.Shared/Roles/StartingGearEquippedEvent.cs @@ -0,0 +1,10 @@ +namespace Content.Shared.Roles; + +/// +/// Raised directed on an entity when a new starting gear prototype has been equipped. +/// +[ByRefEvent] +public record struct StartingGearEquippedEvent(EntityUid Entity) +{ + public readonly EntityUid Entity = Entity; +} diff --git a/Content.Shared/Salvage/SalvageMapPrototype.cs b/Content.Shared/Salvage/SalvageMapPrototype.cs index a9814c7b0a..9b5a37c668 100644 --- a/Content.Shared/Salvage/SalvageMapPrototype.cs +++ b/Content.Shared/Salvage/SalvageMapPrototype.cs @@ -4,7 +4,7 @@ namespace Content.Shared.Salvage; [Prototype] -public sealed class SalvageMapPrototype : IPrototype +public sealed partial class SalvageMapPrototype : IPrototype { [ViewVariables] [IdDataField] public string ID { get; } = default!; diff --git a/Content.Shared/ShortConstruction/ShortConstructionComponent.cs b/Content.Shared/ShortConstruction/ShortConstructionComponent.cs index 4ca4063866..dedf8605bd 100644 --- a/Content.Shared/ShortConstruction/ShortConstructionComponent.cs +++ b/Content.Shared/ShortConstruction/ShortConstructionComponent.cs @@ -2,6 +2,7 @@ using Robust.Shared.GameStates; using Robust.Shared.Prototypes; using Robust.Shared.Serialization; +using Robust.Shared.Utility; namespace Content.Shared.ShortConstruction; @@ -9,7 +10,30 @@ namespace Content.Shared.ShortConstruction; public sealed partial class ShortConstructionComponent : Component { [DataField(required: true)] - public List> Prototypes = new(); + public List Entries = new(); +} + +[DataDefinition] +public sealed partial class ShortConstructionEntry +{ + [DataField] + public ProtoId? Prototype { get; set; } + + [DataField] + public ShortConstructionCategory? Category { get; set; } +} + +[DataDefinition] +public sealed partial class ShortConstructionCategory +{ + [DataField] + public string Name { get; set; } = string.Empty; + + [DataField] + public SpriteSpecifier Icon { get; set; } = default!; + + [DataField] + public List Entries { get; set; } = new(); } [NetSerializable, Serializable] diff --git a/Content.Shared/Silicon/BatteryDrinkerEvent.cs b/Content.Shared/Silicon/BatteryDrinkerEvent.cs index 4d9a610055..99af03df3a 100644 --- a/Content.Shared/Silicon/BatteryDrinkerEvent.cs +++ b/Content.Shared/Silicon/BatteryDrinkerEvent.cs @@ -6,7 +6,5 @@ namespace Content.Shared.Silicon; [Serializable, NetSerializable] public sealed partial class BatteryDrinkerDoAfterEvent : SimpleDoAfterEvent { - public BatteryDrinkerDoAfterEvent() - { - } + public BatteryDrinkerDoAfterEvent() { } } diff --git a/Content.Shared/Silicon/BlindHealing/SharedBlindHealingSystem.cs b/Content.Shared/Silicon/BlindHealing/SharedBlindHealingSystem.cs index be4be9e5d3..bfc5092b64 100644 --- a/Content.Shared/Silicon/BlindHealing/SharedBlindHealingSystem.cs +++ b/Content.Shared/Silicon/BlindHealing/SharedBlindHealingSystem.cs @@ -6,8 +6,6 @@ namespace Content.Shared.Silicon.BlindHealing; public abstract partial class SharedBlindHealingSystem : EntitySystem { [Serializable, NetSerializable] - protected sealed partial class HealingDoAfterEvent : SimpleDoAfterEvent - { - } + protected sealed partial class HealingDoAfterEvent : SimpleDoAfterEvent { } } diff --git a/Content.Shared/Silicon/Components/SiliconComponent.cs b/Content.Shared/Silicon/Components/SiliconComponent.cs index c80d9397d9..bcee4d161a 100644 --- a/Content.Shared/Silicon/Components/SiliconComponent.cs +++ b/Content.Shared/Silicon/Components/SiliconComponent.cs @@ -1,7 +1,6 @@ using Robust.Shared.GameStates; using Content.Shared.Silicon.Systems; using Robust.Shared.Serialization.TypeSerializers.Implementations; -using Robust.Shared.Containers; using Robust.Shared.Prototypes; using Content.Shared.Alert; @@ -36,7 +35,7 @@ public sealed partial class SiliconComponent : Component /// /// Is the Silicon currently dead? /// - public bool Dead = false; + public bool Dead; // BatterySystem took issue with how this was used, so I'm coming back to it at a later date, when more foundational Silicon stuff is implemented. // /// @@ -52,7 +51,7 @@ public sealed partial class SiliconComponent : Component /// Any new types of Silicons should be added to the enum. /// Setting this to Npc will delay charge state updates by LastDrainTime and skip battery heat calculations /// - [DataField("entityType", customTypeSerializer: typeof(EnumSerializer))] + [DataField(customTypeSerializer: typeof(EnumSerializer))] public Enum EntityType = SiliconType.Npc; /// @@ -61,13 +60,13 @@ public sealed partial class SiliconComponent : Component /// /// If true, should go along with a battery component. One will not be added automatically. /// - [DataField("batteryPowered"), ViewVariables(VVAccess.ReadWrite)] - public bool BatteryPowered = false; + [DataField] + public bool BatteryPowered; /// /// How much power is drained by this Silicon every second by default. /// - [DataField("drainPerSecond"), ViewVariables(VVAccess.ReadWrite)] + [DataField] public float DrainPerSecond = 50f; @@ -79,15 +78,15 @@ public sealed partial class SiliconComponent : Component /// Setting a value to null will disable that state. /// Setting Critical to 0 will cause the Silicon to never enter the dead state. /// - [DataField("chargeThresholdMid"), ViewVariables(VVAccess.ReadWrite)] + [DataField] public float? ChargeThresholdMid = 0.5f; /// - [DataField("chargeThresholdLow"), ViewVariables(VVAccess.ReadWrite)] + [DataField] public float? ChargeThresholdLow = 0.25f; /// - [DataField("chargeThresholdCritical"), ViewVariables(VVAccess.ReadWrite)] + [DataField] public float? ChargeThresholdCritical = 0.1f; [DataField] @@ -100,9 +99,16 @@ public sealed partial class SiliconComponent : Component /// /// The amount the Silicon will be slowed at each charge state. /// - [DataField("speedModifierThresholds", required: true)] - public Dictionary SpeedModifierThresholds = default!; + [DataField(required: true)] + public Dictionary SpeedModifierThresholds = default!; - [DataField("fireStackMultiplier"), ViewVariables(VVAccess.ReadWrite)] + [DataField] public float FireStackMultiplier = 1f; + + /// + /// Whether or not a Silicon will cancel all sleep events. + /// Maybe you want an android that can sleep as well as drink APCs? I'm not going to judge. + /// + [DataField] + public bool DoSiliconsDreamOfElectricSheep; } diff --git a/Content.Shared/Silicon/DeadStartupButton/DeadStartupButtonComponent.cs b/Content.Shared/Silicon/DeadStartupButton/DeadStartupButtonComponent.cs index 3390a76439..9c2e5baf57 100644 --- a/Content.Shared/Silicon/DeadStartupButton/DeadStartupButtonComponent.cs +++ b/Content.Shared/Silicon/DeadStartupButton/DeadStartupButtonComponent.cs @@ -3,26 +3,26 @@ namespace Content.Shared.Silicon.DeadStartupButton; /// -/// This is used for... +/// This is used for Silicon entities such as IPCs, Cyborgs, Androids, anything "living" with a button people can touch. /// [RegisterComponent] public sealed partial class DeadStartupButtonComponent : Component { - [DataField("verbText")] + [DataField] public string VerbText = "dead-startup-button-verb"; - [DataField("sound")] + [DataField] public SoundSpecifier Sound = new SoundPathSpecifier("/Audio/Effects/Arcade/newgame.ogg"); - [DataField("buttonSound")] + [DataField] public SoundSpecifier ButtonSound = new SoundPathSpecifier("/Audio/Machines/button.ogg"); - [DataField("doAfterInterval"), ViewVariables(VVAccess.ReadWrite)] + [DataField] public float DoAfterInterval = 1f; - [DataField("buzzSound")] + [DataField] public SoundSpecifier BuzzSound = new SoundCollectionSpecifier("buzzes"); - [DataField("verbPriority"), ViewVariables(VVAccess.ReadWrite)] + [DataField] public int VerbPriority = 1; } diff --git a/Content.Shared/Silicon/DeadStartupButton/SharedDeadStartupButtonSystem.cs b/Content.Shared/Silicon/DeadStartupButton/SharedDeadStartupButtonSystem.cs index 2faa6dfde0..ced89e7860 100644 --- a/Content.Shared/Silicon/DeadStartupButton/SharedDeadStartupButtonSystem.cs +++ b/Content.Shared/Silicon/DeadStartupButton/SharedDeadStartupButtonSystem.cs @@ -10,19 +10,16 @@ namespace Content.Shared.Silicon.DeadStartupButton; /// -/// This creates a Button that can be activated after an entity, usually a silicon or an IPC, died. -/// This will activate a doAfter and then revive the entity, playing a custom afterward sound. +/// This creates a Button that can be activated after an entity, usually a silicon or an IPC, died. +/// This will activate a doAfter and then revive the entity, playing a custom afterward sound. /// -public partial class SharedDeadStartupButtonSystem : EntitySystem +public abstract partial class SharedDeadStartupButtonSystem : EntitySystem { [Dependency] private readonly MobStateSystem _mobState = default!; [Dependency] private readonly SharedAudioSystem _audio = default!; [Dependency] private readonly SharedDoAfterSystem _doAfterSystem = default!; [Dependency] private readonly INetManager _net = default!; - - - /// public override void Initialize() { @@ -31,10 +28,9 @@ public override void Initialize() private void AddTurnOnVerb(EntityUid uid, DeadStartupButtonComponent component, GetVerbsEvent args) { - if (!args.CanAccess || !args.CanInteract || args.Hands == null) - return; - - if (!TryComp(uid, out MobStateComponent? mobStateComponent) || !_mobState.IsDead(uid, mobStateComponent)) + if (!TryComp(uid, out var mobState) + || !_mobState.IsDead(uid, mobState) + || !args.CanAccess || !args.CanInteract || args.Hands == null) return; args.Verbs.Add(new AlternativeVerb() @@ -50,6 +46,7 @@ private void TryStartup(EntityUid user, EntityUid target, DeadStartupButtonCompo { if (!_net.IsServer) return; + _audio.PlayPvs(comp.ButtonSound, target); var args = new DoAfterArgs(EntityManager, user, comp.DoAfterInterval, new OnDoAfterButtonPressedEvent(), target, target:target) { @@ -60,9 +57,5 @@ private void TryStartup(EntityUid user, EntityUid target, DeadStartupButtonCompo } [Serializable, NetSerializable] - public sealed partial class OnDoAfterButtonPressedEvent : SimpleDoAfterEvent - { - } - - + public sealed partial class OnDoAfterButtonPressedEvent : SimpleDoAfterEvent { } } diff --git a/Content.Shared/Silicon/EmitBuzzWhileDamaged/EmitBuzzWhileDamagedComponent.cs b/Content.Shared/Silicon/EmitBuzzWhileDamaged/EmitBuzzWhileDamagedComponent.cs index a8362610e2..986292551d 100644 --- a/Content.Shared/Silicon/EmitBuzzWhileDamaged/EmitBuzzWhileDamagedComponent.cs +++ b/Content.Shared/Silicon/EmitBuzzWhileDamaged/EmitBuzzWhileDamagedComponent.cs @@ -1,26 +1,26 @@ -using System.ComponentModel.DataAnnotations; using Robust.Shared.Audio; namespace Content.Shared.Silicon.EmitBuzzWhileDamaged; /// -/// This is used for controlling the cadence of the buzzing emitted by EmitBuzzOnCritSystem. -/// This component is used by mechanical species that can get to critical health. +/// This is used for controlling the cadence of the buzzing emitted by EmitBuzzOnCritSystem. +/// This component is used by mechanical species that can get to critical health. /// [RegisterComponent] public sealed partial class EmitBuzzWhileDamagedComponent : Component { - [DataField("buzzPopupCooldown")] - public TimeSpan BuzzPopupCooldown { get; private set; } = TimeSpan.FromSeconds(8); + [DataField] + public TimeSpan BuzzPopupCooldown = TimeSpan.FromSeconds(8); [ViewVariables] public TimeSpan LastBuzzPopupTime; - [DataField("cycleDelay")] + [DataField] public float CycleDelay = 2.0f; + [ViewVariables] public float AccumulatedFrametime; - [DataField("sound")] + [DataField] public SoundSpecifier Sound = new SoundCollectionSpecifier("buzzes"); } diff --git a/Content.Shared/Silicon/Systems/SharedSiliconSystem.cs b/Content.Shared/Silicon/Systems/SharedSiliconSystem.cs index aab9b6e752..8fe87e162b 100644 --- a/Content.Shared/Silicon/Systems/SharedSiliconSystem.cs +++ b/Content.Shared/Silicon/Systems/SharedSiliconSystem.cs @@ -1,17 +1,17 @@ using Content.Shared.Silicon.Components; using Content.Shared.Alert; -using Robust.Shared.Serialization; -using Content.Shared.Movement.Systems; +using Content.Shared.Bed.Sleep; using Content.Shared.Containers.ItemSlots; +using Content.Shared.Movement.Systems; using Content.Shared.PowerCell.Components; +using Robust.Shared.Serialization; namespace Content.Shared.Silicon.Systems; - public sealed class SharedSiliconChargeSystem : EntitySystem { [Dependency] private readonly AlertsSystem _alertsSystem = default!; - [Dependency] protected readonly ItemSlotsSystem ItemSlots = default!; + [Dependency] private readonly ItemSlotsSystem _itemSlots = default!; public override void Initialize() { @@ -22,47 +22,50 @@ public override void Initialize() SubscribeLocalEvent(OnRefreshMovespeed); SubscribeLocalEvent(OnItemSlotInsertAttempt); SubscribeLocalEvent(OnItemSlotEjectAttempt); + SubscribeLocalEvent(OnTryingToSleep); } - private void OnItemSlotInsertAttempt(EntityUid uid, SiliconComponent component, ref ItemSlotInsertAttemptEvent args) + /// + /// Silicon entities can now also be Living player entities. We may want to prevent them from sleeping if they can't sleep. + /// + private void OnTryingToSleep(EntityUid uid, SiliconComponent component, ref TryingToSleepEvent args) { - if (args.Cancelled) - return; - - if (!TryComp(uid, out var cellSlotComp)) - return; + args.Cancelled = !component.DoSiliconsDreamOfElectricSheep; + } - if (!ItemSlots.TryGetSlot(uid, cellSlotComp.CellSlotId, out var cellSlot) || cellSlot != args.Slot) + private void OnItemSlotInsertAttempt(EntityUid uid, SiliconComponent component, ref ItemSlotInsertAttemptEvent args) + { + if (args.Cancelled + || !TryComp(uid, out var cellSlotComp) + || !_itemSlots.TryGetSlot(uid, cellSlotComp.CellSlotId, out var cellSlot) + || cellSlot != args.Slot || args.User != uid) return; - if (args.User == uid) - args.Cancelled = true; + args.Cancelled = true; } private void OnItemSlotEjectAttempt(EntityUid uid, SiliconComponent component, ref ItemSlotEjectAttemptEvent args) { - if (args.Cancelled) - return; - - if (!TryComp(uid, out var cellSlotComp)) - return; - - if (!ItemSlots.TryGetSlot(uid, cellSlotComp.CellSlotId, out var cellSlot) || cellSlot != args.Slot) + if (args.Cancelled + || !TryComp(uid, out var cellSlotComp) + || !_itemSlots.TryGetSlot(uid, cellSlotComp.CellSlotId, out var cellSlot) + || cellSlot != args.Slot || args.User != uid) return; - if (args.User == uid) - args.Cancelled = true; + args.Cancelled = true; } private void OnSiliconInit(EntityUid uid, SiliconComponent component, ComponentInit args) { - if (component.BatteryPowered) - _alertsSystem.ShowAlert(uid, AlertType.BorgBattery, component.ChargeState); + if (!component.BatteryPowered) + return; + + _alertsSystem.ShowAlert(uid, AlertType.BorgBattery, component.ChargeState); } private void OnSiliconChargeStateUpdate(EntityUid uid, SiliconComponent component, SiliconChargeStateUpdateEvent ev) { - _alertsSystem.ShowAlert(uid, AlertType.BorgBattery, (short) ev.ChargePercent); + _alertsSystem.ShowAlert(uid, AlertType.BorgBattery, ev.ChargePercent); } private void OnRefreshMovespeed(EntityUid uid, SiliconComponent component, RefreshMovementSpeedModifiersEvent args) @@ -70,17 +73,12 @@ private void OnRefreshMovespeed(EntityUid uid, SiliconComponent component, Refre if (!component.BatteryPowered) return; - var speedModThresholds = component.SpeedModifierThresholds; - - var closest = 0f; - - foreach (var state in speedModThresholds) - { - if (component.ChargeState >= state.Key && (float) state.Key > closest) - closest = (float) state.Key; - } + var closest = 0; + foreach (var state in component.SpeedModifierThresholds) + if (component.ChargeState >= state.Key && state.Key > closest) + closest = state.Key; - var speedMod = speedModThresholds[(short) closest]; + var speedMod = component.SpeedModifierThresholds[closest]; args.ModifySpeed(speedMod, speedMod); } diff --git a/Content.Shared/Silicons/Borgs/Components/BorgTransponderComponent.cs b/Content.Shared/Silicons/Borgs/Components/BorgTransponderComponent.cs new file mode 100644 index 0000000000..8c15e20d5d --- /dev/null +++ b/Content.Shared/Silicons/Borgs/Components/BorgTransponderComponent.cs @@ -0,0 +1,43 @@ +using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom; +using Robust.Shared.Utility; + +namespace Content.Shared.Silicons.Borgs.Components; + +/// +/// Periodically broadcasts borg data to robotics consoles. +/// When not emagged, handles disabling and destroying commands as expected. +/// +[RegisterComponent, Access(typeof(SharedBorgSystem))] +public sealed partial class BorgTransponderComponent : Component +{ + /// + /// Sprite of the chassis to send. + /// + [DataField(required: true)] + public SpriteSpecifier? Sprite; + + /// + /// Name of the chassis to send. + /// + [DataField(required: true)] + public string Name = string.Empty; + + /// + /// Popup shown to everyone when a borg is disabled. + /// Gets passed a string "name". + /// + [DataField] + public LocId DisabledPopup = "borg-transponder-disabled-popup"; + + /// + /// How long to wait between each broadcast. + /// + [DataField] + public TimeSpan BroadcastDelay = TimeSpan.FromSeconds(5); + + /// + /// When to next broadcast data. + /// + [DataField(customTypeSerializer: typeof(TimeOffsetSerializer))] + public TimeSpan NextBroadcast = TimeSpan.Zero; +} diff --git a/Content.Shared/Silicons/Laws/SiliconLawPrototype.cs b/Content.Shared/Silicons/Laws/SiliconLawPrototype.cs index f6407be5c7..5e5df448b3 100644 --- a/Content.Shared/Silicons/Laws/SiliconLawPrototype.cs +++ b/Content.Shared/Silicons/Laws/SiliconLawPrototype.cs @@ -58,7 +58,7 @@ public SiliconLaw ShallowClone() /// [Prototype("siliconLaw")] [Serializable, NetSerializable] -public sealed class SiliconLawPrototype : SiliconLaw, IPrototype +public sealed partial class SiliconLawPrototype : SiliconLaw, IPrototype { /// [IdDataField] diff --git a/Content.Shared/SimpleStation14/Traits/Components/NearsightedComponent.cs b/Content.Shared/SimpleStation14/Traits/Components/NearsightedComponent.cs deleted file mode 100644 index fafd8f8710..0000000000 --- a/Content.Shared/SimpleStation14/Traits/Components/NearsightedComponent.cs +++ /dev/null @@ -1,49 +0,0 @@ -using Robust.Shared.GameStates; - -namespace Content.Shared.SimpleStation14.Traits.Components; - -/// -/// Owner entity cannot see well, without prescription glasses. -/// -[RegisterComponent, NetworkedComponent, AutoGenerateComponentState] -public sealed partial class NearsightedComponent : Component -{ - /// - /// Distance from the edge of the screen to the center - /// - /// - /// I don't know how the distance is measured, 1 is very close to the center, 0 is maybe visible around the edge - /// - [DataField("radius"), ViewVariables(VVAccess.ReadWrite), AutoNetworkedField] - public float Radius = 0.8f; - - /// - /// How dark the circle mask is from - /// - /// - /// I also don't know how this works, it only starts getting noticeably dark at 0.7, and is definitely noticeable at 0.9, 1 is black - /// - [DataField("alpha"), ViewVariables(VVAccess.ReadWrite), AutoNetworkedField] - public float Alpha = 0.995f; - - /// - [DataField("equippedRadius"), ViewVariables(VVAccess.ReadWrite), AutoNetworkedField] - public float EquippedRadius = 0.45f; - - /// - [DataField("equippedAlpha"), ViewVariables(VVAccess.ReadWrite), AutoNetworkedField] - public float EquippedAlpha = 0.93f; - - /// - /// How long the lerp animation should go on for in seconds. - /// - [DataField("lerpDuration"), ViewVariables(VVAccess.ReadWrite), AutoNetworkedField] - public float LerpDuration = 0.25f; - - /// - /// If true, uses the variables prefixed "Equipped" - /// If false, uses the variables without a prefix - /// - [ViewVariables(VVAccess.ReadWrite)] // Make the system shared if you want this networked, I don't wanna do that - public bool Active = false; -} diff --git a/Content.Shared/Singularity/Components/SharedEmitterComponent.cs b/Content.Shared/Singularity/Components/SharedEmitterComponent.cs index c2e7af717b..cc6e8aeede 100644 --- a/Content.Shared/Singularity/Components/SharedEmitterComponent.cs +++ b/Content.Shared/Singularity/Components/SharedEmitterComponent.cs @@ -1,4 +1,5 @@ using System.Threading; +using Content.Shared.Construction.Prototypes; using Content.Shared.DeviceLinking; using Robust.Shared.GameStates; using Robust.Shared.Prototypes; @@ -14,90 +15,130 @@ public sealed partial class EmitterComponent : Component { public CancellationTokenSource? TimerCancel; - // whether the power switch is in "on" - [ViewVariables] public bool IsOn; - // Whether the power switch is on AND the machine has enough power (so is actively firing) - [ViewVariables] public bool IsPowered; + /// + /// Whether the power switch is on + /// + [ViewVariables] + public bool IsOn; /// - /// counts the number of consecutive shots fired. + /// Whether the power switch is on AND the machine has enough power (so is actively firing) + /// + [ViewVariables] + public bool IsPowered; + + /// + /// counts the number of consecutive shots fired. /// [ViewVariables] public int FireShotCounter; /// - /// The entity that is spawned when the emitter fires. + /// The entity that is spawned when the emitter fires. /// - [DataField("boltType", customTypeSerializer: typeof(PrototypeIdSerializer))] + [DataField(customTypeSerializer: typeof(PrototypeIdSerializer))] public string BoltType = "EmitterBolt"; - [DataField("selectableTypes", customTypeSerializer: typeof(PrototypeIdListSerializer))] + [DataField(customTypeSerializer: typeof(PrototypeIdListSerializer))] public List SelectableTypes = new(); /// - /// The current amount of power being used. + /// The current amount of power being used. /// - [DataField("powerUseActive")] + [DataField] public int PowerUseActive = 600; /// - /// The amount of shots that are fired in a single "burst" + /// The amount of shots that are fired in a single "burst" /// - [DataField("fireBurstSize")] + [DataField] public int FireBurstSize = 3; /// - /// The time between each shot during a burst. + /// The time between each shot during a burst. /// - [DataField("fireInterval")] + [DataField] public TimeSpan FireInterval = TimeSpan.FromSeconds(2); /// - /// The current minimum delay between bursts. + /// The base amount of time between each shot during a burst. /// - [DataField("fireBurstDelayMin")] + [DataField] + public TimeSpan BaseFireInterval = TimeSpan.FromSeconds(2); + + /// + /// The current minimum delay between bursts. + /// + [DataField] public TimeSpan FireBurstDelayMin = TimeSpan.FromSeconds(4); /// - /// The current maximum delay between bursts. + /// The current maximum delay between bursts. /// - [DataField("fireBurstDelayMax")] + [DataField] public TimeSpan FireBurstDelayMax = TimeSpan.FromSeconds(10); /// - /// The visual state that is set when the emitter is turned on + /// The base minimum delay between shot bursts. + /// Used for machine part rating calculations. + /// + [DataField] + public TimeSpan BaseFireBurstDelayMin = TimeSpan.FromSeconds(4); + + /// + /// The base maximum delay between shot bursts. + /// Used for machine part rating calculations. + /// + [DataField] + public TimeSpan BaseFireBurstDelayMax = TimeSpan.FromSeconds(10); + + /// + /// The multiplier for the base delay between shot bursts as well as + /// the fire interval + /// + [DataField] + public float FireRateMultiplier = 0.8f; + + /// + /// The machine part that affects burst delay. + /// + [DataField(customTypeSerializer: typeof(PrototypeIdSerializer))] + public string MachinePartFireRate = "Capacitor"; + + /// + /// The visual state that is set when the emitter is turned on /// - [DataField("onState")] + [DataField] public string? OnState = "beam"; /// - /// The visual state that is set when the emitter doesn't have enough power. + /// The visual state that is set when the emitter doesn't have enough power. /// - [DataField("underpoweredState")] + [DataField] public string? UnderpoweredState = "underpowered"; /// - /// Signal port that turns on the emitter. + /// Signal port that turns on the emitter. /// - [DataField("onPort", customTypeSerializer: typeof(PrototypeIdSerializer))] + [DataField(customTypeSerializer: typeof(PrototypeIdSerializer))] public string OnPort = "On"; /// - /// Signal port that turns off the emitter. + /// Signal port that turns off the emitter. /// - [DataField("offPort", customTypeSerializer: typeof(PrototypeIdSerializer))] + [DataField(customTypeSerializer: typeof(PrototypeIdSerializer))] public string OffPort = "Off"; /// - /// Signal port that toggles the emitter on or off. + /// Signal port that toggles the emitter on or off. /// - [DataField("togglePort", customTypeSerializer: typeof(PrototypeIdSerializer))] + [DataField(customTypeSerializer: typeof(PrototypeIdSerializer))] public string TogglePort = "Toggle"; /// - /// Map of signal ports to entity prototype IDs of the entity that will be fired. + /// Map of signal ports to entity prototype IDs of the entity that will be fired. /// - [DataField("setTypePorts", customTypeSerializer: typeof(PrototypeIdDictionarySerializer))] + [DataField(customTypeSerializer: typeof(PrototypeIdDictionarySerializer))] public Dictionary SetTypePorts = new(); } diff --git a/Content.Server/Speech/Components/VocalComponent.cs b/Content.Shared/Speech/Components/VocalComponent.cs similarity index 83% rename from Content.Server/Speech/Components/VocalComponent.cs rename to Content.Shared/Speech/Components/VocalComponent.cs index 029d638a66..e5d2c9997f 100644 --- a/Content.Server/Speech/Components/VocalComponent.cs +++ b/Content.Shared/Speech/Components/VocalComponent.cs @@ -1,18 +1,18 @@ -using Content.Server.Speech.EntitySystems; using Content.Shared.Chat.Prototypes; using Content.Shared.Humanoid; using Robust.Shared.Audio; +using Robust.Shared.GameStates; using Robust.Shared.Prototypes; using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype; using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype.Dictionary; -namespace Content.Server.Speech.Components; +namespace Content.Shared.Speech.Components; /// /// Component required for entities to be able to do vocal emotions. /// -[RegisterComponent] -[Access(typeof(VocalSystem))] +[RegisterComponent, NetworkedComponent] +[AutoGenerateComponentState] public sealed partial class VocalComponent : Component { /// @@ -20,21 +20,27 @@ public sealed partial class VocalComponent : Component /// Entities without considered to be . /// [DataField("sounds", customTypeSerializer: typeof(PrototypeIdValueDictionarySerializer))] + [AutoNetworkedField] public Dictionary? Sounds; [DataField("screamId", customTypeSerializer: typeof(PrototypeIdSerializer))] + [AutoNetworkedField] public string ScreamId = "Scream"; [DataField("wilhelm")] + [AutoNetworkedField] public SoundSpecifier Wilhelm = new SoundPathSpecifier("/Audio/Voice/Human/wilhelm_scream.ogg"); [DataField("wilhelmProbability")] + [AutoNetworkedField] public float WilhelmProbability = 0.0002f; [DataField("screamAction", customTypeSerializer: typeof(PrototypeIdSerializer))] + [AutoNetworkedField] public string ScreamAction = "ActionScream"; [DataField("screamActionEntity")] + [AutoNetworkedField] public EntityUid? ScreamActionEntity; /// @@ -42,5 +48,6 @@ public sealed partial class VocalComponent : Component /// Null if no valid prototype for entity sex was found. /// [ViewVariables] + [AutoNetworkedField] public EmoteSoundsPrototype? EmoteSounds = null; } diff --git a/Content.Shared/Speech/SpeechComponent.cs b/Content.Shared/Speech/SpeechComponent.cs index 272d9ef8ca..0882120718 100644 --- a/Content.Shared/Speech/SpeechComponent.cs +++ b/Content.Shared/Speech/SpeechComponent.cs @@ -1,3 +1,4 @@ +using Content.Shared.Chat.Prototypes; using Robust.Shared.Audio; using Robust.Shared.GameStates; using Robust.Shared.Prototypes; @@ -26,6 +27,13 @@ public sealed partial class SpeechComponent : Component [DataField] public ProtoId SpeechVerb = "Default"; + /// + /// What emotes allowed to use event if emote is false + /// + [ViewVariables(VVAccess.ReadWrite)] + [DataField] + public List> AllowedEmotes = new(); + /// /// A mapping from chat suffixes loc strings to speech verb prototypes that should be conditionally used. /// For things like '?' changing to 'asks' or '!!' making text bold and changing to 'yells'. Can be overridden if necessary. diff --git a/Content.Shared/SprayPainter/Prototypes/AirlockDepartmentsPrototype.cs b/Content.Shared/SprayPainter/Prototypes/AirlockDepartmentsPrototype.cs index 3553597c52..b61aa037cc 100644 --- a/Content.Shared/SprayPainter/Prototypes/AirlockDepartmentsPrototype.cs +++ b/Content.Shared/SprayPainter/Prototypes/AirlockDepartmentsPrototype.cs @@ -7,7 +7,7 @@ namespace Content.Shared.SprayPainter.Prototypes; /// Maps airlock style names to department ids. /// [Prototype("airlockDepartments")] -public sealed class AirlockDepartmentsPrototype : IPrototype +public sealed partial class AirlockDepartmentsPrototype : IPrototype { [IdDataField] public string ID { get; private set; } = default!; diff --git a/Content.Shared/Standing/LayingDownComponent.cs b/Content.Shared/Standing/LayingDownComponent.cs new file mode 100644 index 0000000000..ec9351e22c --- /dev/null +++ b/Content.Shared/Standing/LayingDownComponent.cs @@ -0,0 +1,37 @@ +using Robust.Shared.GameStates; +using Robust.Shared.Serialization; + +namespace Content.Shared.Standing; + +[RegisterComponent, NetworkedComponent, AutoGenerateComponentState] +public sealed partial class LayingDownComponent : Component +{ + [DataField, AutoNetworkedField] + public TimeSpan StandingUpTime = TimeSpan.FromSeconds(1); + + [DataField, AutoNetworkedField] + public float LyingSpeedModifier = 0.35f, + CrawlingUnderSpeedModifier = 0.5f; + + [DataField, AutoNetworkedField] + public bool AutoGetUp; + + /// + /// If true, the entity is choosing to crawl under furniture. This is purely visual and has no effect on physics. + /// + [DataField, AutoNetworkedField] + public bool IsCrawlingUnder = false; + + [DataField, AutoNetworkedField] + public int NormalDrawDepth = (int) DrawDepth.DrawDepth.Mobs, + CrawlingUnderDrawDepth = (int) DrawDepth.DrawDepth.SmallMobs; +} + +[Serializable, NetSerializable] +public sealed class ChangeLayingDownEvent : CancellableEntityEventArgs; + +[Serializable, NetSerializable] +public sealed class CheckAutoGetUpEvent(NetEntity user) : CancellableEntityEventArgs +{ + public NetEntity User = user; +} diff --git a/Content.Shared/Standing/SharedLayingDownSystem.cs b/Content.Shared/Standing/SharedLayingDownSystem.cs new file mode 100644 index 0000000000..a7f2c30926 --- /dev/null +++ b/Content.Shared/Standing/SharedLayingDownSystem.cs @@ -0,0 +1,211 @@ +using System.Linq; +using Content.Shared.ActionBlocker; +using Content.Shared.CCVar; +using Content.Shared.DoAfter; +using Content.Shared.Gravity; +using Content.Shared.Input; +using Content.Shared.Mobs.Systems; +using Content.Shared.Movement.Systems; +using Content.Shared.Popups; +using Content.Shared.Stunnable; +using Robust.Shared.Configuration; +using Robust.Shared.Input.Binding; +using Robust.Shared.Map; +using Robust.Shared.Player; +using Robust.Shared.Serialization; + +namespace Content.Shared.Standing; + +public abstract class SharedLayingDownSystem : EntitySystem +{ + [Dependency] private readonly IConfigurationManager _config = default!; + + [Dependency] private readonly ActionBlockerSystem _actionBlocker = default!; + [Dependency] private readonly EntityLookupSystem _lookup = default!; // WWDP + [Dependency] private readonly MobStateSystem _mobState = default!; + [Dependency] private readonly MovementSpeedModifierSystem _speed = default!; + [Dependency] private readonly SharedDoAfterSystem _doAfter = default!; + [Dependency] private readonly SharedGravitySystem _gravity = default!; + [Dependency] private readonly SharedPopupSystem _popups = default!; + [Dependency] private readonly StandingStateSystem _standing = default!; + + public override void Initialize() + { + CommandBinds.Builder + .Bind(ContentKeyFunctions.ToggleStanding, InputCmdHandler.FromDelegate(ToggleStanding)) + .Bind(ContentKeyFunctions.ToggleCrawlingUnder, + InputCmdHandler.FromDelegate(HandleCrawlUnderRequest, handle: false)) + .Register(); + + SubscribeNetworkEvent(OnChangeState); + + SubscribeLocalEvent(OnStandingUpDoAfter); + SubscribeLocalEvent(OnRefreshMovementSpeed); + SubscribeLocalEvent(OnParentChanged); + } + + public override void Shutdown() + { + base.Shutdown(); + + CommandBinds.Unregister(); + } + + private void ToggleStanding(ICommonSession? session) + { + if (session is not { AttachedEntity: { Valid: true } uid } _ + || !Exists(uid) + || !HasComp(session.AttachedEntity) + || _gravity.IsWeightless(session.AttachedEntity.Value)) + return; + + RaiseNetworkEvent(new ChangeLayingDownEvent()); + } + + private void HandleCrawlUnderRequest(ICommonSession? session) + { + if (session == null + || session.AttachedEntity is not { } uid + || !TryComp(uid, out var standingState) + || !TryComp(uid, out var layingDown) + || !_actionBlocker.CanInteract(uid, null)) + return; + + var newState = !layingDown.IsCrawlingUnder; + if (standingState.CurrentState is StandingState.Standing) + newState = false; // If the entity is already standing, this function only serves a fallback method to fix its draw depth + + // Do not allow to begin crawling under if it's disabled in config. We still, however, allow to stop it, as a failsafe. + if (newState && !_config.GetCVar(CCVars.CrawlUnderTables)) + { + _popups.PopupEntity(Loc.GetString("crawling-under-tables-disabled-popup"), uid, session); + return; + } + + layingDown.IsCrawlingUnder = newState; + _speed.RefreshMovementSpeedModifiers(uid); + Dirty(uid, layingDown); + } + + private void OnChangeState(ChangeLayingDownEvent ev, EntitySessionEventArgs args) + { + if (!args.SenderSession.AttachedEntity.HasValue) + return; + + var uid = args.SenderSession.AttachedEntity.Value; + if (!TryComp(uid, out StandingStateComponent? standing) + || !TryComp(uid, out LayingDownComponent? layingDown)) + return; + + RaiseNetworkEvent(new CheckAutoGetUpEvent(GetNetEntity(uid))); + + if (HasComp(uid) + || !_mobState.IsAlive(uid)) + return; + + if (_standing.IsDown(uid, standing)) + TryStandUp(uid, layingDown, standing); + else + TryLieDown(uid, layingDown, standing); + } + + private void OnStandingUpDoAfter(EntityUid uid, StandingStateComponent component, StandingUpDoAfterEvent args) + { + if (args.Handled || args.Cancelled + || HasComp(uid) + || _mobState.IsIncapacitated(uid) + || !_standing.Stand(uid)) + component.CurrentState = StandingState.Lying; + + component.CurrentState = StandingState.Standing; + } + + private void OnRefreshMovementSpeed(EntityUid uid, + LayingDownComponent component, + RefreshMovementSpeedModifiersEvent args) + { + if (!_standing.IsDown(uid)) + return; + + var modifier = component.LyingSpeedModifier * + (component.IsCrawlingUnder ? component.CrawlingUnderSpeedModifier : 1); + args.ModifySpeed(modifier, modifier); + } + + private void OnParentChanged(EntityUid uid, LayingDownComponent component, EntParentChangedMessage args) + { + // If the entity is not on a grid, try to make it stand up to avoid issues + if (!TryComp(uid, out var standingState) + || standingState.CurrentState is StandingState.Standing + || Transform(uid).GridUid != null) + return; + + _standing.Stand(uid, standingState); + } + + public bool TryStandUp(EntityUid uid, + LayingDownComponent? layingDown = null, + StandingStateComponent? standingState = null) + { + if (!Resolve(uid, ref standingState, false) + || !Resolve(uid, ref layingDown, false) + || standingState.CurrentState is not StandingState.Lying + || !_mobState.IsAlive(uid) + || TerminatingOrDeleted(uid)) + return false; + + var args = new DoAfterArgs(EntityManager, uid, layingDown.StandingUpTime, new StandingUpDoAfterEvent(), uid) + { + BreakOnHandChange = false, + RequireCanInteract = false + }; + + if (!_doAfter.TryStartDoAfter(args)) + return false; + + standingState.CurrentState = StandingState.GettingUp; + layingDown.IsCrawlingUnder = false; + return true; + } + + public bool TryLieDown(EntityUid uid, + LayingDownComponent? layingDown = null, + StandingStateComponent? standingState = null, + DropHeldItemsBehavior behavior = DropHeldItemsBehavior.NoDrop) + { + if (!Resolve(uid, ref standingState, false) + || !Resolve(uid, ref layingDown, false) + || standingState.CurrentState is not StandingState.Standing) + { + if (behavior == DropHeldItemsBehavior.AlwaysDrop) + RaiseLocalEvent(uid, new DropHandItemsEvent()); + + return false; + } + + _standing.Down(uid, true, behavior != DropHeldItemsBehavior.NoDrop, standingState, setDrawDepth: true); + return true; + } + + // WWDP + public void LieDownInRange(EntityUid uid, EntityCoordinates coords, float range = 0.4f) + { + var ents = new HashSet>(); + _lookup.GetEntitiesInRange(coords, range, ents); + + foreach (var ent in ents.Where(ent => ent.Owner != uid)) + { + TryLieDown(ent, behavior: DropHeldItemsBehavior.DropIfStanding); + } + } +} + +[Serializable, NetSerializable] +public sealed partial class StandingUpDoAfterEvent : SimpleDoAfterEvent; + +public enum DropHeldItemsBehavior : byte +{ + NoDrop, + DropIfStanding, + AlwaysDrop +} diff --git a/Content.Shared/Standing/StandingStateComponent.cs b/Content.Shared/Standing/StandingStateComponent.cs index 3a7cb2a008..5b9759a025 100644 --- a/Content.Shared/Standing/StandingStateComponent.cs +++ b/Content.Shared/Standing/StandingStateComponent.cs @@ -6,14 +6,11 @@ namespace Content.Shared.Standing; [RegisterComponent, NetworkedComponent, AutoGenerateComponentState] public sealed partial class StandingStateComponent : Component { - [ViewVariables(VVAccess.ReadWrite)] [DataField] public SoundSpecifier DownSound { get; private set; } = new SoundCollectionSpecifier("BodyFall"); - // WD EDIT START [DataField, AutoNetworkedField] public StandingState CurrentState { get; set; } = StandingState.Standing; - // WD EDIT END [DataField, AutoNetworkedField] public bool Standing { get; set; } = true; @@ -25,11 +22,10 @@ public sealed partial class StandingStateComponent : Component [DataField, AutoNetworkedField] public List ChangedFixtures = new(); } -// WD EDIT START + public enum StandingState { Lying, GettingUp, Standing, } -// WD EDIT END diff --git a/Content.Shared/Standing/StandingStateSystem.cs b/Content.Shared/Standing/StandingStateSystem.cs index 212e1d06d1..5abbf53f1b 100644 --- a/Content.Shared/Standing/StandingStateSystem.cs +++ b/Content.Shared/Standing/StandingStateSystem.cs @@ -1,5 +1,7 @@ using Content.Shared.Buckle; using Content.Shared.Buckle.Components; +using Content.Shared.Climbing.Systems; +using Content.Shared.Climbing.Components; using Content.Shared.Hands.Components; using Content.Shared.Movement.Systems; using Content.Shared.Physics; @@ -7,172 +9,179 @@ using Robust.Shared.Audio.Systems; using Robust.Shared.Physics; using Robust.Shared.Physics.Systems; +using System.Linq; -namespace Content.Shared.Standing +namespace Content.Shared.Standing; + +public sealed class StandingStateSystem : EntitySystem { - public sealed class StandingStateSystem : EntitySystem + [Dependency] private readonly SharedAppearanceSystem _appearance = default!; + [Dependency] private readonly SharedAudioSystem _audio = default!; + [Dependency] private readonly SharedPhysicsSystem _physics = default!; + [Dependency] private readonly MovementSpeedModifierSystem _movement = default!; + [Dependency] private readonly SharedBuckleSystem _buckle = default!; + [Dependency] private readonly EntityLookupSystem _lookup = default!; + [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; + + public bool IsDown(EntityUid uid, StandingStateComponent? standingState = null) { - [Dependency] private readonly SharedAppearanceSystem _appearance = default!; - [Dependency] private readonly SharedAudioSystem _audio = default!; - [Dependency] private readonly SharedPhysicsSystem _physics = default!; - [Dependency] private readonly MovementSpeedModifierSystem _movement = default!; // WD EDIT - [Dependency] private readonly SharedBuckleSystem _buckle = default!; // WD EDIT + if (!Resolve(uid, ref standingState, false)) + return false; - // If StandingCollisionLayer value is ever changed to more than one layer, the logic needs to be edited. - private const int StandingCollisionLayer = (int) CollisionGroup.MidImpassable; + return standingState.CurrentState is StandingState.Lying or StandingState.GettingUp; + } - public bool IsDown(EntityUid uid, StandingStateComponent? standingState = null) - { - if (!Resolve(uid, ref standingState, false)) - return false; + public bool Down(EntityUid uid, bool playSound = true, bool dropHeldItems = true, + StandingStateComponent? standingState = null, + AppearanceComponent? appearance = null, + HandsComponent? hands = null, + bool setDrawDepth = false) + { + // TODO: This should actually log missing comps... + if (!Resolve(uid, ref standingState, false)) + return false; - return standingState.CurrentState is StandingState.Lying or StandingState.GettingUp; - } + // Optional component. + Resolve(uid, ref appearance, ref hands, false); - public bool Down(EntityUid uid, bool playSound = true, bool dropHeldItems = true, - StandingStateComponent? standingState = null, - AppearanceComponent? appearance = null, - HandsComponent? hands = null) - { - // TODO: This should actually log missing comps... - if (!Resolve(uid, ref standingState, false)) - return false; + if (standingState.CurrentState is StandingState.Lying or StandingState.GettingUp) + return true; + + // This is just to avoid most callers doing this manually saving boilerplate + // 99% of the time you'll want to drop items but in some scenarios (e.g. buckling) you don't want to. + // We do this BEFORE downing because something like buckle may be blocking downing but we want to drop hand items anyway + // and ultimately this is just to avoid boilerplate in Down callers + keep their behavior consistent. + if (dropHeldItems && hands != null) + RaiseLocalEvent(uid, new DropHandItemsEvent(), false); + + if (TryComp(uid, out BuckleComponent? buckle) && buckle.Buckled && !_buckle.TryUnbuckle(uid, uid, buckleComp: buckle)) + return false; - // Optional component. - Resolve(uid, ref appearance, ref hands, false); + var msg = new DownAttemptEvent(); + RaiseLocalEvent(uid, msg, false); - if (standingState.CurrentState is StandingState.Lying or StandingState.GettingUp) - return true; + if (msg.Cancelled) + return false; - // This is just to avoid most callers doing this manually saving boilerplate - // 99% of the time you'll want to drop items but in some scenarios (e.g. buckling) you don't want to. - // We do this BEFORE downing because something like buckle may be blocking downing but we want to drop hand items anyway - // and ultimately this is just to avoid boilerplate in Down callers + keep their behavior consistent. - if (dropHeldItems && hands != null) + standingState.CurrentState = StandingState.Lying; + Dirty(standingState); + RaiseLocalEvent(uid, new DownedEvent(), false); + + // Seemed like the best place to put it + _appearance.SetData(uid, RotationVisuals.RotationState, RotationState.Horizontal, appearance); + + // Change collision masks to allow going under certain entities like flaps and tables + if (TryComp(uid, out FixturesComponent? fixtureComponent)) + foreach (var (key, fixture) in fixtureComponent.Fixtures) { - RaiseLocalEvent(uid, new DropHandItemsEvent(), false); - } + if ((fixture.CollisionMask & StandingCollisionLayer) == 0) + continue; - if (TryComp(uid, out BuckleComponent? buckle) && buckle.Buckled && !_buckle.TryUnbuckle(uid, uid, buckleComp: buckle)) // WD EDIT - return false; + standingState.ChangedFixtures.Add(key); + _physics.SetCollisionMask(uid, key, fixture, fixture.CollisionMask & ~StandingCollisionLayer, manager: fixtureComponent); + } - var msg = new DownAttemptEvent(); - RaiseLocalEvent(uid, msg, false); + // check if component was just added or streamed to client + // if true, no need to play sound - mob was down before player could seen that + if (standingState.LifeStage <= ComponentLifeStage.Starting) + return true; - if (msg.Cancelled) - return false; + if (playSound) + _audio.PlayPredicted(standingState.DownSound, uid, null); - standingState.CurrentState = StandingState.Lying; - Dirty(standingState); - RaiseLocalEvent(uid, new DownedEvent(), false); + _movement.RefreshMovementSpeedModifiers(uid); - // Seemed like the best place to put it - _appearance.SetData(uid, RotationVisuals.RotationState, RotationState.Horizontal, appearance); + Climb(uid); - // Change collision masks to allow going under certain entities like flaps and tables - if (TryComp(uid, out FixturesComponent? fixtureComponent)) - { - foreach (var (key, fixture) in fixtureComponent.Fixtures) - { - if ((fixture.CollisionMask & StandingCollisionLayer) == 0) - continue; - - standingState.ChangedFixtures.Add(key); - _physics.SetCollisionMask(uid, key, fixture, fixture.CollisionMask & ~StandingCollisionLayer, manager: fixtureComponent); - } - } + return true; + } - // check if component was just added or streamed to client - // if true, no need to play sound - mob was down before player could seen that - if (standingState.LifeStage <= ComponentLifeStage.Starting) - return true; + public bool Stand(EntityUid uid, + StandingStateComponent? standingState = null, + AppearanceComponent? appearance = null, + bool force = false) + { + // TODO: This should actually log missing comps... + if (!Resolve(uid, ref standingState, false)) + return false; - if (playSound) - { - _audio.PlayPredicted(standingState.DownSound, uid, null); - } + // Optional component. + Resolve(uid, ref appearance, false); - _movement.RefreshMovementSpeedModifiers(uid); // WD EDIT + if (standingState.CurrentState is StandingState.Standing + || TryComp(uid, out BuckleComponent? buckle) + && buckle.Buckled && !_buckle.TryUnbuckle(uid, uid, buckleComp: buckle)) return true; - } - public bool Stand(EntityUid uid, - StandingStateComponent? standingState = null, - AppearanceComponent? appearance = null, - bool force = false) + if (!force) { - // TODO: This should actually log missing comps... - if (!Resolve(uid, ref standingState, false)) - return false; - - // Optional component. - Resolve(uid, ref appearance, false); - - if (standingState.CurrentState is StandingState.Standing) - return true; + var msg = new StandAttemptEvent(); + RaiseLocalEvent(uid, msg, false); - if (TryComp(uid, out BuckleComponent? buckle) && buckle.Buckled && !_buckle.TryUnbuckle(uid, uid, buckleComp: buckle)) // WD EDIT + if (msg.Cancelled) return false; + } - if (!force) - { - var msg = new StandAttemptEvent(); - RaiseLocalEvent(uid, msg, false); - - if (msg.Cancelled) - return false; - } + standingState.CurrentState = StandingState.Standing; - standingState.CurrentState = StandingState.Standing; - Dirty(uid, standingState); - RaiseLocalEvent(uid, new StoodEvent(), false); + Dirty(uid, standingState); + RaiseLocalEvent(uid, new StoodEvent(), false); - _appearance.SetData(uid, RotationVisuals.RotationState, RotationState.Vertical, appearance); + _appearance.SetData(uid, RotationVisuals.RotationState, RotationState.Vertical, appearance); - if (TryComp(uid, out FixturesComponent? fixtureComponent)) + if (TryComp(uid, out FixturesComponent? fixtureComponent)) + { + foreach (var key in standingState.ChangedFixtures) { - foreach (var key in standingState.ChangedFixtures) - { - if (fixtureComponent.Fixtures.TryGetValue(key, out var fixture)) - _physics.SetCollisionMask(uid, key, fixture, fixture.CollisionMask | StandingCollisionLayer, fixtureComponent); - } + if (fixtureComponent.Fixtures.TryGetValue(key, out var fixture)) + _physics.SetCollisionMask(uid, key, fixture, fixture.CollisionMask | StandingCollisionLayer, fixtureComponent); } - standingState.ChangedFixtures.Clear(); - _movement.RefreshMovementSpeedModifiers(uid); // WD EDIT - - return true; } - } + standingState.ChangedFixtures.Clear(); + _movement.RefreshMovementSpeedModifiers(uid); - public sealed class DropHandItemsEvent : EventArgs - { - } + Climb(uid); - /// - /// Subscribe if you can potentially block a down attempt. - /// - public sealed class DownAttemptEvent : CancellableEntityEventArgs - { + return true; } - /// - /// Subscribe if you can potentially block a stand attempt. - /// - public sealed class StandAttemptEvent : CancellableEntityEventArgs + private void Climb(EntityUid uid) { - } + _climb.ForciblyStopClimbing(uid); - /// - /// Raised when an entity becomes standing - /// - public sealed class StoodEvent : EntityEventArgs - { - } + var entityDistances = new Dictionary(); - /// - /// Raised when an entity is not standing - /// - public sealed class DownedEvent : EntityEventArgs - { + foreach (var entity in _lookup.GetEntitiesInRange(uid, 0.3f)) + if (HasComp(entity)) + entityDistances[entity] = (Transform(uid).Coordinates.Position - Transform(entity).Coordinates.Position).LengthSquared(); + + if (entityDistances.Count > 0) + _climb.ForciblySetClimbing(uid, entityDistances.OrderBy(e => e.Value).First().Key); } } + + +public sealed class DropHandItemsEvent : EventArgs { } + +/// +/// Subscribe if you can potentially block a down attempt. +/// +public sealed class DownAttemptEvent : CancellableEntityEventArgs { } + +/// +/// Subscribe if you can potentially block a stand attempt. +/// +public sealed class StandAttemptEvent : CancellableEntityEventArgs { } + +/// +/// Raised when an entity becomes standing +/// +public sealed class StoodEvent : EntityEventArgs { } + +/// +/// Raised when an entity is not standing +/// +public sealed class DownedEvent : EntityEventArgs { } diff --git a/Content.Shared/Station/SharedStationSpawningSystem.cs b/Content.Shared/Station/SharedStationSpawningSystem.cs index 56a8a846b0..e889b5c974 100644 --- a/Content.Shared/Station/SharedStationSpawningSystem.cs +++ b/Content.Shared/Station/SharedStationSpawningSystem.cs @@ -1,6 +1,8 @@ +using System.Linq; using Content.Shared.Hands.Components; using Content.Shared.Hands.EntitySystems; using Content.Shared.Inventory; +using Content.Shared.Preferences.Loadouts; using Content.Shared.Roles; using Content.Shared.Storage; using Content.Shared.Storage.EntitySystems; @@ -17,12 +19,24 @@ public abstract class SharedStationSpawningSystem : EntitySystem [Dependency] private readonly SharedStorageSystem _storage = default!; [Dependency] private readonly SharedTransformSystem _xformSystem = default!; + private EntityQuery _handsQuery; + private EntityQuery _inventoryQuery; + private EntityQuery _storageQuery; + private EntityQuery _xformQuery; + + public override void Initialize() + { + base.Initialize(); + _handsQuery = GetEntityQuery(); + _inventoryQuery = GetEntityQuery(); + _storageQuery = GetEntityQuery(); + _xformQuery = GetEntityQuery(); + } + /// - /// Equips starting gear onto the given entity. + /// /// - /// Entity to load out. - /// Starting gear to use. - public void EquipStartingGear(EntityUid entity, ProtoId? startingGear) + public void EquipStartingGear(EntityUid entity, ProtoId? startingGear, bool raiseEvent = true) { PrototypeManager.TryIndex(startingGear, out var gearProto); EquipStartingGear(entity, gearProto); @@ -33,11 +47,14 @@ public void EquipStartingGear(EntityUid entity, ProtoId? /// /// Entity to load out. /// Starting gear to use. - public void EquipStartingGear(EntityUid entity, StartingGearPrototype? startingGear) + /// Should we raise the event for equipped. Set to false if you will call this manually + public void EquipStartingGear(EntityUid entity, StartingGearPrototype? startingGear, bool raiseEvent = true) { if (startingGear == null) return; + var xform = _xformQuery.GetComponent(entity); + if (InventorySystem.TryGetSlots(entity, out var slotDefinitions)) { foreach (var slot in slotDefinitions) @@ -46,16 +63,15 @@ public void EquipStartingGear(EntityUid entity, StartingGearPrototype? startingG if (string.IsNullOrEmpty(equipmentStr)) continue; - var equipmentEntity = EntityManager.SpawnEntity(equipmentStr, EntityManager.GetComponent(entity).Coordinates); + var equipmentEntity = EntityManager.SpawnEntity(equipmentStr, xform.Coordinates); InventorySystem.TryEquip(entity, equipmentEntity, slot.Name, true, force:true); } - } - if (TryComp(entity, out HandsComponent? handsComponent)) + if (_handsQuery.TryComp(entity, out var handsComponent)) { var inhand = startingGear.Inhand; - var coords = EntityManager.GetComponent(entity).Coordinates; + var coords = xform.Coordinates; foreach (var prototype in inhand) { var inhandEntity = EntityManager.SpawnEntity(prototype, coords); @@ -72,7 +88,7 @@ public void EquipStartingGear(EntityUid entity, StartingGearPrototype? startingG { var coords = _xformSystem.GetMapCoordinates(entity); var ents = new ValueList(); - TryComp(entity, out InventoryComponent? inventoryComp); + _inventoryQuery.TryComp(entity, out var inventoryComp); foreach (var (slot, entProtos) in startingGear.Storage) { @@ -84,17 +100,22 @@ public void EquipStartingGear(EntityUid entity, StartingGearPrototype? startingG ents.Add(Spawn(ent, coords)); } - if (inventoryComp == null - || !InventorySystem.TryGetSlotEntity(entity, slot, out var slotEnt, - inventoryComponent: inventoryComp) - || !TryComp(slotEnt, out StorageComponent? storage)) - continue; - - foreach (var ent in ents) + if (inventoryComp != null && + InventorySystem.TryGetSlotEntity(entity, slot, out var slotEnt, inventoryComponent: inventoryComp) && + _storageQuery.TryComp(slotEnt, out var storage)) { - _storage.Insert(slotEnt.Value, ent, out _, storageComp: storage, playSound: false); + foreach (var ent in ents) + { + _storage.Insert(slotEnt.Value, ent, out _, storageComp: storage, playSound: false); + } } } } + + if (raiseEvent) + { + var ev = new StartingGearEquippedEvent(entity); + RaiseLocalEvent(entity, ref ev, true); + } } } diff --git a/Content.Shared/StatusIcon/StatusIconPrototype.cs b/Content.Shared/StatusIcon/StatusIconPrototype.cs index b520b185de..c5a5fd8a2c 100644 --- a/Content.Shared/StatusIcon/StatusIconPrototype.cs +++ b/Content.Shared/StatusIcon/StatusIconPrototype.cs @@ -52,7 +52,7 @@ public int CompareTo(StatusIconData? other) /// but in new convenient prototype form! /// [Prototype("statusIcon")] -public sealed class StatusIconPrototype : StatusIconData, IPrototype, IInheritingPrototype +public sealed partial class StatusIconPrototype : StatusIconData, IPrototype, IInheritingPrototype { /// [ParentDataField(typeof(AbstractPrototypeIdArraySerializer))] diff --git a/Content.Shared/Stealth/SharedStealthSystem.cs b/Content.Shared/Stealth/SharedStealthSystem.cs index d0ea804534..1bab55589f 100644 --- a/Content.Shared/Stealth/SharedStealthSystem.cs +++ b/Content.Shared/Stealth/SharedStealthSystem.cs @@ -113,7 +113,7 @@ private void OnStealthHandleState(EntityUid uid, StealthComponent component, ref private void OnMove(EntityUid uid, StealthOnMoveComponent component, ref MoveEvent args) { - if (args.FromStateHandling) + if (_timing.ApplyingState) return; if (args.NewPosition.EntityId != args.OldPosition.EntityId) diff --git a/Content.Shared/StepTrigger/Components/ClothingRequiredStepTriggerComponent.cs b/Content.Shared/StepTrigger/Components/ClothingRequiredStepTriggerComponent.cs new file mode 100644 index 0000000000..9efd78d082 --- /dev/null +++ b/Content.Shared/StepTrigger/Components/ClothingRequiredStepTriggerComponent.cs @@ -0,0 +1,10 @@ +using Content.Shared.Inventory; +using Robust.Shared.GameStates; + +namespace Content.Shared.StepTrigger.Components; + +/// +/// This is used for marking step trigger events that require the user to wear shoes, such as for glass shards. +/// +[RegisterComponent, NetworkedComponent] +public sealed partial class ClothingRequiredStepTriggerComponent : Component; diff --git a/Content.Shared/StepTrigger/Components/ClothingRequiredStepTriggerImmuneComponent.cs b/Content.Shared/StepTrigger/Components/ClothingRequiredStepTriggerImmuneComponent.cs new file mode 100644 index 0000000000..dc76207828 --- /dev/null +++ b/Content.Shared/StepTrigger/Components/ClothingRequiredStepTriggerImmuneComponent.cs @@ -0,0 +1,16 @@ +using Content.Shared.Inventory; +using Content.Shared.StepTrigger.Systems; +using Robust.Shared.GameStates; + +namespace Content.Shared.StepTrigger.Components; + +/// +/// This is used for cancelling step trigger events if the user is wearing clothing in a valid slot. +/// +[RegisterComponent, NetworkedComponent] +[Access(typeof(StepTriggerImmuneSystem))] +public sealed partial class ClothingRequiredStepTriggerImmuneComponent : Component, IClothingSlots +{ + [DataField] + public SlotFlags Slots { get; set; } = SlotFlags.FEET; +} diff --git a/Content.Shared/StepTrigger/Components/ShoesRequiredStepTriggerComponent.cs b/Content.Shared/StepTrigger/Components/ShoesRequiredStepTriggerComponent.cs deleted file mode 100644 index dd95b94a7e..0000000000 --- a/Content.Shared/StepTrigger/Components/ShoesRequiredStepTriggerComponent.cs +++ /dev/null @@ -1,11 +0,0 @@ -using Robust.Shared.GameStates; - -namespace Content.Shared.StepTrigger.Components; - -/// -/// This is used for cancelling step trigger events if the user is wearing shoes, such as for glass shards. -/// -[RegisterComponent, NetworkedComponent] -public sealed partial class ShoesRequiredStepTriggerComponent : Component -{ -} diff --git a/Content.Shared/StepTrigger/Components/StepTriggerComponent.cs b/Content.Shared/StepTrigger/Components/StepTriggerComponent.cs index df0c1d7ea4..d12c2c983e 100644 --- a/Content.Shared/StepTrigger/Components/StepTriggerComponent.cs +++ b/Content.Shared/StepTrigger/Components/StepTriggerComponent.cs @@ -54,22 +54,18 @@ public sealed partial class StepTriggerComponent : Component public bool IgnoreWeightless; /// - /// Does this have separate "StepOn" and "StepOff" triggers. + /// Does this have separate "StepOn" and "StepOff" triggers. /// [DataField, AutoNetworkedField] public bool StepOn = false; /// - /// If TriggerGroups is specified, it will check StepTriggerImmunityComponent to have the same TriggerType to activate immunity + /// If TriggerGroups is specified, it will check StepTriggerImmunityComponent to have the same TriggerType to activate immunity /// - // WD EDIT [DataField] public StepTriggerGroup? TriggerGroups; } [RegisterComponent] [Access(typeof(StepTriggerSystem))] -public sealed partial class StepTriggerActiveComponent : Component -{ - -} +public sealed partial class StepTriggerActiveComponent : Component { } diff --git a/Content.Shared/StepTrigger/Components/StepTriggerImmuneComponent.cs b/Content.Shared/StepTrigger/Components/StepTriggerImmuneComponent.cs index 2a91b4b62e..1b92905fa6 100644 --- a/Content.Shared/StepTrigger/Components/StepTriggerImmuneComponent.cs +++ b/Content.Shared/StepTrigger/Components/StepTriggerImmuneComponent.cs @@ -18,7 +18,7 @@ namespace Content.Shared.StepTrigger.Components; public sealed partial class StepTriggerImmuneComponent : Component { /// - /// WhiteList of immunity step triggers. + /// WhiteList of immunity step triggers. /// [DataField] public StepTriggerGroup? Whitelist; diff --git a/Content.Shared/StepTrigger/Prototypes/StepTriggerGroup.cs b/Content.Shared/StepTrigger/Prototypes/StepTriggerGroup.cs index 8863a5de61..5b64085e9a 100644 --- a/Content.Shared/StepTrigger/Prototypes/StepTriggerGroup.cs +++ b/Content.Shared/StepTrigger/Prototypes/StepTriggerGroup.cs @@ -1,77 +1,72 @@ -using Content.Shared.Damage.Prototypes; -using Content.Shared.StepTrigger.Components; -using Content.Shared.StepTrigger.Systems; +using Content.Shared.StepTrigger.Components; using Robust.Shared.Prototypes; using Robust.Shared.Serialization; -using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype.List; -namespace Content.Shared.StepTrigger.Prototypes +namespace Content.Shared.StepTrigger.Prototypes; + +/// +/// A group of +/// Used to determine StepTriggerTypes like Tags. +/// Used for better work with Immunity. +/// StepTriggerTypes in StepTriggerTypes.yml +/// +/// +/// stepTriggerGroups: +/// types: +/// - Lava +/// - Landmine +/// - Shard +/// - Chasm +/// - Mousetrap +/// - SlipTile +/// - SlipEntity +/// +[DataDefinition] +[Serializable, NetSerializable] +public sealed partial class StepTriggerGroup { + [DataField] + public List>? Types = null; + /// - /// A group of - /// Used to determine StepTriggerTypes like Tags. - /// Used for better work with Immunity. - /// StepTriggerTypes in StepTriggerTypes.yml - /// WD EDIT + /// Checks if types of this StepTriggerGroup is similar to types of AnotherGroup /// - /// - /// stepTriggerGroups: - /// types: - /// - Lava - /// - Landmine - /// - Shard - /// - Chasm - /// - Mousetrap - /// - SlipTile - /// - SlipEntity - /// - [DataDefinition] - [Serializable, NetSerializable] - public sealed partial class StepTriggerGroup + public bool IsValid(StepTriggerGroup? anotherGroup) { - [DataField] - public List>? Types = null; + if (Types is null) + return false; - /// - /// Checks if types of this StepTriggerGroup is similar to types of AnotherGroup - /// - public bool IsValid(StepTriggerGroup? AnotherGroup) + foreach (var type in Types) { - if (Types != null) - { - foreach (var type in Types) - { - if (AnotherGroup != null - && AnotherGroup.Types != null - && AnotherGroup.Types.Contains(type)) - return true; - } - } - return false; + if (anotherGroup != null + && anotherGroup.Types != null + && anotherGroup.Types.Contains(type)) + return true; } + return false; + } - /// - /// Checks validation (if types of this StepTriggerGroup are similar to types of - /// another StepTriggerComponent. - /// - public bool IsValid(StepTriggerComponent component) - { - if (component.TriggerGroups != null) - { - return IsValid(component.TriggerGroups); - } + /// + /// Checks validation (if types of this StepTriggerGroup are similar to types of + /// another StepTriggerComponent. + /// + public bool IsValid(StepTriggerComponent component) + { + if (component.TriggerGroups is null) return false; - } - /// - /// Checks validation (if types of this StepTriggerGroup are similar to types of - /// another StepTriggerImmuneComponent. - /// - public bool IsValid(StepTriggerImmuneComponent component) - { - if (component.Whitelist != null) - return IsValid(component.Whitelist); + return IsValid(component.TriggerGroups); + } + + /// + /// Checks validation (if types of this StepTriggerGroup are similar to types of + /// another StepTriggerImmuneComponent. + /// + public bool IsValid(StepTriggerImmuneComponent component) + { + if (component.Whitelist is null) return false; - } + + return IsValid(component.Whitelist); } } diff --git a/Content.Shared/StepTrigger/Prototypes/StepTriggerTypePrototype.cs b/Content.Shared/StepTrigger/Prototypes/StepTriggerTypePrototype.cs index 0142d2a453..732eb4b732 100644 --- a/Content.Shared/StepTrigger/Prototypes/StepTriggerTypePrototype.cs +++ b/Content.Shared/StepTrigger/Prototypes/StepTriggerTypePrototype.cs @@ -1,19 +1,15 @@ using Robust.Shared.Prototypes; -namespace Content.Shared.StepTrigger.Prototypes +namespace Content.Shared.StepTrigger.Prototypes; + +/// +/// Prototype representing a StepTriggerType in YAML. +/// Meant to only have an ID property, as that is the only thing that +/// gets saved in StepTriggerGroup. +/// +[Prototype] +public sealed partial class StepTriggerTypePrototype : IPrototype { - /// - /// Prototype representing a StepTriggerType in YAML. - /// Meant to only have an ID property, as that is the only thing that - /// gets saved in StepTriggerGroup. - /// - // WD EDIT - [Prototype("stepTriggerType")] - public sealed partial class StepTriggerTypePrototype : IPrototype - { - [ViewVariables] - [IdDataField] - public string ID { get; private set; } = default!; - } + [ViewVariables, IdDataField] + public string ID { get; private set; } = default!; } - diff --git a/Content.Shared/StepTrigger/Systems/ShoesRequiredStepTriggerSystem.cs b/Content.Shared/StepTrigger/Systems/ShoesRequiredStepTriggerSystem.cs deleted file mode 100644 index 5fc9140dfd..0000000000 --- a/Content.Shared/StepTrigger/Systems/ShoesRequiredStepTriggerSystem.cs +++ /dev/null @@ -1,41 +0,0 @@ -using Content.Shared.Examine; -using Content.Shared.Inventory; -using Content.Shared.StepTrigger.Components; -using Content.Shared.Tag; - -namespace Content.Shared.StepTrigger.Systems; - -public sealed class ShoesRequiredStepTriggerSystem : EntitySystem -{ - [Dependency] private readonly InventorySystem _inventory = default!; - [Dependency] private readonly TagSystem _tagSystem = default!; - - /// - public override void Initialize() - { - SubscribeLocalEvent(OnStepTriggerAttempt); - SubscribeLocalEvent(OnExamined); - } - - private void OnStepTriggerAttempt(EntityUid uid, ShoesRequiredStepTriggerComponent component, ref StepTriggerAttemptEvent args) - { - if (_tagSystem.HasTag(args.Tripper, "ShoesRequiredStepTriggerImmune")) - { - args.Cancelled = true; - return; - } - - if (!TryComp(args.Tripper, out var inventory)) - return; - - if (_inventory.TryGetSlotEntity(args.Tripper, "shoes", out _, inventory)) - { - args.Cancelled = true; - } - } - - private void OnExamined(EntityUid uid, ShoesRequiredStepTriggerComponent component, ExaminedEvent args) - { - args.PushMarkup(Loc.GetString("shoes-required-step-trigger-examine")); - } -} diff --git a/Content.Shared/StepTrigger/Systems/StepTriggerImmuneSystem.cs b/Content.Shared/StepTrigger/Systems/StepTriggerImmuneSystem.cs new file mode 100644 index 0000000000..ca72a20ae9 --- /dev/null +++ b/Content.Shared/StepTrigger/Systems/StepTriggerImmuneSystem.cs @@ -0,0 +1,37 @@ +using Content.Shared.Examine; +using Content.Shared.Inventory; +using Content.Shared.StepTrigger.Components; +using Content.Shared.Tag; + +namespace Content.Shared.StepTrigger.Systems; + +public sealed class StepTriggerImmuneSystem : EntitySystem +{ + [Dependency] private readonly InventorySystem _inventory = default!; + + /// + public override void Initialize() + { + SubscribeLocalEvent(OnStepTriggerAttempt); + SubscribeLocalEvent(OnStepTriggerClothingAttempt); + SubscribeLocalEvent(OnExamined); + } + + private void OnStepTriggerAttempt(Entity ent, ref StepTriggerAttemptEvent args) + { + args.Cancelled = true; + } + + private void OnStepTriggerClothingAttempt(EntityUid uid, ClothingRequiredStepTriggerComponent component, ref StepTriggerAttemptEvent args) + { + if (_inventory.TryGetInventoryEntity(args.Tripper, out _)) + { + args.Cancelled = true; + } + } + + private void OnExamined(EntityUid uid, ClothingRequiredStepTriggerComponent component, ExaminedEvent args) + { + args.PushMarkup(Loc.GetString("clothing-required-step-trigger-examine")); + } +} diff --git a/Content.Shared/StepTrigger/Systems/StepTriggerSystem.cs b/Content.Shared/StepTrigger/Systems/StepTriggerSystem.cs index d1ae0e9afb..d0cd5c4b4e 100644 --- a/Content.Shared/StepTrigger/Systems/StepTriggerSystem.cs +++ b/Content.Shared/StepTrigger/Systems/StepTriggerSystem.cs @@ -4,7 +4,6 @@ using Robust.Shared.Physics; using Robust.Shared.Physics.Components; using Robust.Shared.Physics.Events; -using Enumerable = System.Linq.Enumerable; namespace Content.Shared.StepTrigger.Systems; @@ -119,7 +118,6 @@ private void UpdateColliding(EntityUid uid, StepTriggerComponent component, Tran private bool CanTrigger(EntityUid uid, EntityUid otherUid, StepTriggerComponent component) { - // WD EDIT START if (!component.Active || component.CurrentlySteppedOn.Contains(otherUid)) return false; @@ -129,7 +127,6 @@ private bool CanTrigger(EntityUid uid, EntityUid otherUid, StepTriggerComponent && component.TriggerGroups != null && component.TriggerGroups.IsValid(stepTriggerImmuneComponent)) return false; - // WD EDIT END // Can't trigger if we don't ignore weightless entities // and the entity is flying or currently weightless diff --git a/Content.Shared/Storage/Components/SecretStashComponent.cs b/Content.Shared/Storage/Components/SecretStashComponent.cs index 8595f79ca5..07a1078f63 100644 --- a/Content.Shared/Storage/Components/SecretStashComponent.cs +++ b/Content.Shared/Storage/Components/SecretStashComponent.cs @@ -6,6 +6,7 @@ using Content.Shared.Tools; using Robust.Shared.GameStates; using Content.Shared.DoAfter; +using Content.Shared.Toilet.Components; using Robust.Shared.Serialization; namespace Content.Shared.Storage.Components diff --git a/Content.Shared/Storage/EntitySystems/SharedStorageSystem.cs b/Content.Shared/Storage/EntitySystems/SharedStorageSystem.cs index 966ec02b80..f0d1ab7d17 100644 --- a/Content.Shared/Storage/EntitySystems/SharedStorageSystem.cs +++ b/Content.Shared/Storage/EntitySystems/SharedStorageSystem.cs @@ -2,14 +2,18 @@ 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.Coordinates; 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.Inventory; using Content.Shared.Item; using Content.Shared.Lock; using Content.Shared.Nyanotrasen.Item.PseudoItem; @@ -23,10 +27,13 @@ using Robust.Shared.Audio.Systems; using Robust.Shared.Containers; using Robust.Shared.GameStates; +using Robust.Shared.Input.Binding; using Robust.Shared.Map; +using Robust.Shared.Player; using Robust.Shared.Prototypes; using Robust.Shared.Random; using Robust.Shared.Serialization; +using Robust.Shared.Utility; namespace Content.Shared.Storage.EntitySystems; @@ -34,6 +41,7 @@ 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!; @@ -42,6 +50,7 @@ public abstract class SharedStorageSystem : EntitySystem [Dependency] private readonly SharedDoAfterSystem _doAfterSystem = default!; [Dependency] protected readonly SharedEntityStorageSystem EntityStorage = default!; [Dependency] private readonly SharedInteractionSystem _interactionSystem = default!; + [Dependency] private readonly InventorySystem _inventory = default!; [Dependency] protected readonly SharedItemSystem ItemSystem = default!; [Dependency] private readonly SharedPopupSystem _popupSystem = default!; [Dependency] private readonly SharedHandsSystem _sharedHandsSystem = default!; @@ -63,9 +72,17 @@ public abstract class SharedStorageSystem : EntitySystem public bool CheckingCanInsert; + private List _entList = new(); + private HashSet _entSet = new(); + private readonly List _sortedSizes = new(); private FrozenDictionary _nextSmallest = FrozenDictionary.Empty; + private const string QuickInsertUseDelayID = "quickInsert"; + private const string OpenUiUseDelayID = "storage"; + + protected readonly List CantFillReasons = []; + /// public override void Initialize() { @@ -76,6 +93,13 @@ public override void Initialize() _xformQuery = GetEntityQuery(); _prototype.PrototypesReloaded += OnPrototypesReloaded; + Subs.BuiEvents(StorageComponent.StorageUiKey.Key, subs => + { + subs.Event(OnBoundUIClosed); + }); + + SubscribeLocalEvent(OnMapInit); + SubscribeLocalEvent>(AddUiVerb); SubscribeLocalEvent(OnStorageGetState); SubscribeLocalEvent(OnStorageHandleState); SubscribeLocalEvent(OnComponentInit, before: new[] { typeof(SharedContainerSystem) }); @@ -86,6 +110,7 @@ public override void Initialize() SubscribeLocalEvent(AfterInteract); SubscribeLocalEvent(OnDestroy); SubscribeLocalEvent(OnBoundUIOpen); + SubscribeLocalEvent(OnLockToggled); SubscribeLocalEvent(OnStackCountChanged); SubscribeLocalEvent(OnEntInserted); @@ -102,9 +127,20 @@ public override void Initialize() SubscribeLocalEvent(OnReclaimed); + CommandBinds.Builder + .Bind(ContentKeyFunctions.OpenBackpack, InputCmdHandler.FromDelegate(HandleOpenBackpack, handle: false)) + .Bind(ContentKeyFunctions.OpenBelt, InputCmdHandler.FromDelegate(HandleOpenBelt, handle: false)) + .Register(); + UpdatePrototypeCache(); } + private void OnMapInit(Entity entity, ref MapInitEvent args) + { + UseDelay.SetLength(entity.Owner, entity.Comp.QuickInsertCooldown, QuickInsertUseDelayID); + UseDelay.SetLength(entity.Owner, entity.Comp.OpenUiCooldown, OpenUiUseDelayID); + } + private void OnStorageGetState(EntityUid uid, StorageComponent component, ref ComponentGetState args) { var storedItems = new Dictionary(); @@ -117,7 +153,6 @@ private void OnStorageGetState(EntityUid uid, StorageComponent component, ref Co args.State = new StorageComponentState() { Grid = new List(component.Grid), - IsUiOpen = component.IsUiOpen, MaxItemSize = component.MaxItemSize, StoredItems = storedItems, SavedLocations = component.SavedLocations @@ -131,7 +166,6 @@ private void OnStorageHandleState(EntityUid uid, StorageComponent component, ref component.Grid.Clear(); component.Grid.AddRange(state.Grid); - component.IsUiOpen = state.IsUiOpen; component.MaxItemSize = state.MaxItemSize; component.StoredItems.Clear(); @@ -183,9 +217,108 @@ private void OnComponentInit(EntityUid uid, StorageComponent storageComp, Compon UpdateAppearance((uid, storageComp, null)); } - public virtual void UpdateUI(Entity entity) {} + /// + /// If the user has nested-UIs open (e.g., PDA UI open when pda is in a backpack), close them. + /// + private void CloseNestedInterfaces(EntityUid uid, EntityUid actor, StorageComponent? storageComp = null) + { + if (!Resolve(uid, ref storageComp)) + return; - public virtual void OpenStorageUI(EntityUid uid, EntityUid entity, StorageComponent? storageComp = null, bool silent = false) { } + // for each containing thing + // if it has a storage comp + // ensure unsubscribe from session + // if it has a ui component + // close ui + foreach (var entity in storageComp.Container.ContainedEntities) + { + _ui.CloseUis(entity, actor); + } + } + + private void OnBoundUIClosed(EntityUid uid, StorageComponent storageComp, BoundUIClosedEvent args) + { + CloseNestedInterfaces(uid, args.Actor, storageComp); + + // If UI is closed for everyone + if (!_ui.IsUiOpen(uid, args.UiKey)) + { + UpdateAppearance((uid, storageComp, null)); + Audio.PlayPredicted(storageComp.StorageCloseSound, uid, args.Actor); + } + } + + 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); + + // Does this player currently have the storage UI open? + var uiOpen = _ui.IsUiOpen(uid, StorageComponent.StorageUiKey.Key, args.User); + + ActivationVerb verb = new() + { + Act = () => + { + if (uiOpen) + { + _ui.CloseUi(uid, StorageComponent.StorageUiKey.Key, args.User); + } + else + { + OpenStorageUI(uid, args.User, component, silent); + } + } + }; + + if (uiOpen) + { + verb.Text = Loc.GetString("comp-storage-verb-close-storage"); + verb.Icon = new SpriteSpecifier.Texture( + new("/Textures/Interface/VerbIcons/close.svg.192dpi.png")); + } + else + { + verb.Text = Loc.GetString("comp-storage-verb-open-storage"); + verb.Icon = new SpriteSpecifier.Texture( + new("/Textures/Interface/VerbIcons/open.svg.192dpi.png")); + } + args.Verbs.Add(verb); + } + + /// + /// 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) + { + if (!Resolve(uid, ref storageComp, false)) + return; + + // prevent spamming bag open / honkerton honk sound + silent |= TryComp(uid, out var useDelay) && UseDelay.IsDelayed((uid, useDelay)); + if (!silent) + { + if (!_ui.IsUiOpen(uid, StorageComponent.StorageUiKey.Key)) + Audio.PlayPredicted(storageComp.StorageOpenSound, uid, entity); + + if (useDelay != null) + UseDelay.TryResetDelay((uid, useDelay)); + } + + _ui.OpenUi(uid, StorageComponent.StorageUiKey.Key, entity); + } + + public virtual void UpdateUI(Entity entity) {} private void AddTransferVerbs(EntityUid uid, StorageComponent component, GetVerbsEvent args) { @@ -239,7 +372,16 @@ private void OnActivate(EntityUid uid, StorageComponent storageComp, ActivateInW if (args.Handled || TryComp(uid, out var lockComponent) && lockComponent.Locked) return; - OpenStorageUI(uid, args.User, storageComp); + // Toggle + if (_ui.IsUiOpen(uid, StorageComponent.StorageUiKey.Key, args.User)) + { + _ui.CloseUi(uid, StorageComponent.StorageUiKey.Key, args.User); + } + else + { + OpenStorageUI(uid, args.User, storageComp); + } + args.Handled = true; } @@ -262,36 +404,40 @@ private void OnImplantActivate(EntityUid uid, StorageComponent storageComp, Open /// private void AfterInteract(EntityUid uid, StorageComponent storageComp, AfterInteractEvent args) { - if (args.Handled || !args.CanReach) + if (args.Handled || !args.CanReach || !UseDelay.TryResetDelay(uid, checkDelayed: true, id: QuickInsertUseDelayID)) return; // Pick up all entities in a radius around the clicked location. // The last half of the if is because carpets exist and this is terrible if (storageComp.AreaInsert && (args.Target == null || !HasComp(args.Target.Value))) { - var validStorables = new List(); + _entList.Clear(); + _entSet.Clear(); + _entityLookupSystem.GetEntitiesInRange(args.ClickLocation, storageComp.AreaInsertRadius, _entSet, LookupFlags.Dynamic | LookupFlags.Sundries); var delay = 0f; - foreach (var entity in _entityLookupSystem.GetEntitiesInRange(args.ClickLocation, storageComp.AreaInsertRadius, LookupFlags.Dynamic | LookupFlags.Sundries)) + foreach (var entity in _entSet) { if (entity == args.User - // || !_itemQuery.HasComponent(entity) - || !TryComp(entity, out var itemComp) // Need comp to get item size to get weight + || !_itemQuery.TryGetComponent(entity, out var itemComp) // Need comp to get item size to get weight || !_prototype.TryIndex(itemComp.Size, out var itemSize) - || !CanInsert(uid, entity, out _, storageComp) + || !CanInsert(uid, entity, out _, storageComp, item: itemComp) || !_interactionSystem.InRangeUnobstructed(args.User, entity)) { continue; } - validStorables.Add(entity); + _entList.Add(entity); delay += itemSize.Weight * AreaInsertDelayPerItem; + + if (_entList.Count >= StorageComponent.AreaPickupLimit) + break; } //If there's only one then let's be generous - if (validStorables.Count > 1) + if (_entList.Count > 1) { - var doAfterArgs = new DoAfterArgs(EntityManager, args.User, delay, new AreaPickupDoAfterEvent(GetNetEntityList(validStorables)), uid, target: uid) + var doAfterArgs = new DoAfterArgs(EntityManager, args.User, delay, new AreaPickupDoAfterEvent(GetNetEntityList(_entList)), uid, target: uid) { BreakOnDamage = true, BreakOnUserMove = true, @@ -313,7 +459,7 @@ private void AfterInteract(EntityUid uid, StorageComponent storageComp, AfterInt if (_containerSystem.IsEntityInContainer(target) || target == args.User - || !HasComp(target)) + || !_itemQuery.HasComponent(target)) { return; } @@ -331,10 +477,10 @@ private void AfterInteract(EntityUid uid, StorageComponent storageComp, AfterInt args.Handled = true; if (PlayerInsertEntityInWorld((uid, storageComp), args.User, target)) { - RaiseNetworkEvent(new AnimateInsertingEntitiesEvent(GetNetEntity(uid), + EntityManager.RaiseSharedEvent(new AnimateInsertingEntitiesEvent(GetNetEntity(uid), new List { GetNetEntity(target) }, new List { GetNetCoordinates(position) }, - new List { transformOwner.LocalRotation })); + new List { transformOwner.LocalRotation }), args.User); } } } @@ -349,20 +495,27 @@ private void OnDoAfter(EntityUid uid, StorageComponent component, AreaPickupDoAf var successfullyInserted = new List(); var successfullyInsertedPositions = new List(); var successfullyInsertedAngles = new List(); - _xformQuery.TryGetComponent(uid, out var xform); - foreach (var netEntity in args.Entities) + if (!_xformQuery.TryGetComponent(uid, out var xform)) + { + return; + } + + var entCount = Math.Min(StorageComponent.AreaPickupLimit, args.Entities.Count); + + for (var i = 0; i < entCount; i++) { - var entity = GetEntity(netEntity); + var entity = GetEntity(args.Entities[i]); // Check again, situation may have changed for some entities, but we'll still pick up any that are valid if (_containerSystem.IsEntityInContainer(entity) || entity == args.Args.User || !_itemQuery.HasComponent(entity)) + { continue; + } - if (xform == null || - !_xformQuery.TryGetComponent(entity, out var targetXform) || + if (!_xformQuery.TryGetComponent(entity, out var targetXform) || targetXform.MapID != xform.MapID) { continue; @@ -387,12 +540,12 @@ private void OnDoAfter(EntityUid uid, StorageComponent component, AreaPickupDoAf // If we picked up at least one thing, play a sound and do a cool animation! if (successfullyInserted.Count > 0) { - Audio.PlayPvs(component.StorageInsertSound, uid); - RaiseNetworkEvent(new AnimateInsertingEntitiesEvent( + Audio.PlayPredicted(component.StorageInsertSound, uid, args.User); + EntityManager.RaiseSharedEvent(new AnimateInsertingEntitiesEvent( GetNetEntity(uid), GetNetEntityList(successfullyInserted), GetNetCoordinatesList(successfullyInsertedPositions), - successfullyInsertedAngles)); + successfullyInsertedAngles), args.User); } args.Handled = true; @@ -427,8 +580,7 @@ private void OnInteractWithItem(StorageInteractWithItemEvent msg, EntitySessionE if (!TryComp(uid, out var storageComp)) return; - if (!_ui.TryGetUi(uid, StorageComponent.StorageUiKey.Key, out var bui) || - !bui.SubscribedSessions.Contains(args.SenderSession)) + if (!_ui.IsUiOpen(uid, StorageComponent.StorageUiKey.Key, player)) return; if (!Exists(entity)) @@ -470,8 +622,7 @@ private void OnSetItemLocation(StorageSetItemLocationEvent msg, EntitySessionEve if (!TryComp(storageEnt, out var storageComp)) return; - if (!_ui.TryGetUi(storageEnt, StorageComponent.StorageUiKey.Key, out var bui) || - !bui.SubscribedSessions.Contains(args.SenderSession)) + if (!_ui.IsUiOpen(storageEnt, StorageComponent.StorageUiKey.Key, player)) return; if (!Exists(itemEnt)) @@ -497,8 +648,7 @@ private void OnRemoveItem(StorageRemoveItemEvent msg, EntitySessionEventArgs arg if (!TryComp(storageEnt, out var storageComp)) return; - if (!_ui.TryGetUi(storageEnt, StorageComponent.StorageUiKey.Key, out var bui) || - !bui.SubscribedSessions.Contains(args.SenderSession)) + if (!_ui.IsUiOpen(storageEnt, StorageComponent.StorageUiKey.Key, player)) return; if (!Exists(itemEnt)) @@ -525,8 +675,7 @@ private void OnInsertItemIntoLocation(StorageInsertItemIntoLocationEvent msg, En if (!TryComp(storageEnt, out var storageComp)) return; - if (!_ui.TryGetUi(storageEnt, StorageComponent.StorageUiKey.Key, out var bui) || - !bui.SubscribedSessions.Contains(args.SenderSession)) + if (!_ui.IsUiOpen(storageEnt, StorageComponent.StorageUiKey.Key, player)) return; if (!Exists(itemEnt)) @@ -551,11 +700,10 @@ private void OnSaveItemLocation(StorageSaveItemLocationEvent msg, EntitySessionE var storage = GetEntity(msg.Storage); var item = GetEntity(msg.Item); - if (!TryComp(storage, out var storageComp)) + if (!HasComp(storage)) return; - if (!_ui.TryGetUi(storage, StorageComponent.StorageUiKey.Key, out var bui) || - !bui.SubscribedSessions.Contains(args.SenderSession)) + if (!_ui.IsUiOpen(storage, StorageComponent.StorageUiKey.Key, player)) return; if (!Exists(item)) @@ -572,11 +720,7 @@ private void OnSaveItemLocation(StorageSaveItemLocationEvent msg, EntitySessionE private void OnBoundUIOpen(EntityUid uid, StorageComponent storageComp, BoundUIOpenedEvent args) { - if (!storageComp.IsUiOpen) - { - storageComp.IsUiOpen = true; - UpdateAppearance((uid, storageComp, null)); - } + UpdateAppearance((uid, storageComp, null)); } private void OnEntInserted(Entity entity, ref EntInsertedIntoContainerMessage args) @@ -629,8 +773,15 @@ private void OnInsertAttempt(EntityUid uid, StorageComponent component, Containe if (CheckingCanInsert) return; - if (!CanInsert(uid, args.EntityUid, out _, component, ignoreStacks: true)) + if (!CanInsert(uid, args.EntityUid, out var reason, component, ignoreStacks: true)) + { +#if DEBUG + if (reason != null) + CantFillReasons.Add(reason); +#endif + args.Cancel(); + } } public void UpdateAppearance(Entity entity) @@ -647,11 +798,13 @@ public void UpdateAppearance(Entity ent var capacity = storage.Grid.GetArea(); var used = GetCumulativeItemAreas((uid, storage)); + var isOpen = _ui.IsUiOpen(entity.Owner, StorageComponent.StorageUiKey.Key); + _appearance.SetData(uid, StorageVisuals.StorageUsed, used, appearance); _appearance.SetData(uid, StorageVisuals.Capacity, capacity, appearance); - _appearance.SetData(uid, StorageVisuals.Open, storage.IsUiOpen, appearance); - _appearance.SetData(uid, SharedBagOpenVisuals.BagState, storage.IsUiOpen ? SharedBagState.Open : SharedBagState.Closed, appearance); - _appearance.SetData(uid, StackVisuals.Hide, !storage.IsUiOpen, appearance); + _appearance.SetData(uid, StorageVisuals.Open, isOpen, appearance); + _appearance.SetData(uid, SharedBagOpenVisuals.BagState, isOpen ? SharedBagState.Open : SharedBagState.Closed, appearance); + _appearance.SetData(uid, StackVisuals.Hide, !isOpen, appearance); } /// @@ -1076,7 +1229,7 @@ public void SaveItemLocation(Entity ent, Entity uid) return _nextSmallest[item.Size]; } + /// + /// Checks if a storage's UI is open by anyone when locked, and closes it unless they're an admin. + /// + private void OnLockToggled(EntityUid uid, StorageComponent component, ref LockToggledEvent args) + { + if (!args.Locked) + return; + + // 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); + } + } + private void OnStackCountChanged(EntityUid uid, MetaDataComponent component, StackCountChangedEvent args) { if (_containerSystem.TryGetContainingContainer(uid, out var container, component) && @@ -1263,6 +1435,40 @@ private void OnStackCountChanged(EntityUid uid, MetaDataComponent component, Sta } } + private void HandleOpenBackpack(ICommonSession? session) + { + HandleOpenSlotUI(session, "back"); + } + + private void HandleOpenBelt(ICommonSession? session) + { + HandleOpenSlotUI(session, "belt"); + } + + private void HandleOpenSlotUI(ICommonSession? session, string slot) + { + if (session is not { } playerSession) + return; + + if (playerSession.AttachedEntity is not {Valid: true} playerEnt || !Exists(playerEnt)) + return; + + if (!_inventory.TryGetSlotEntity(playerEnt, slot, out var storageEnt)) + return; + + if (!ActionBlocker.CanInteract(playerEnt, storageEnt)) + return; + + OpenStorageUI(storageEnt.Value, playerEnt); + } + + protected void ClearCantFillReasons() + { +#if DEBUG + CantFillReasons.Clear(); +#endif + } + /// /// Plays a clientside pickup animation for the specified uid. /// @@ -1272,8 +1478,6 @@ public abstract void PlayPickupAnimation(EntityUid uid, EntityCoordinates initia [Serializable, NetSerializable] protected sealed class StorageComponentState : ComponentState { - public bool IsUiOpen; - public Dictionary StoredItems = new(); public Dictionary> SavedLocations = new(); diff --git a/Content.Shared/Storage/StorageComponent.cs b/Content.Shared/Storage/StorageComponent.cs index 2cae12f07a..ef682dd4f9 100644 --- a/Content.Shared/Storage/StorageComponent.cs +++ b/Content.Shared/Storage/StorageComponent.cs @@ -19,10 +19,6 @@ public sealed partial class StorageComponent : Component { public static string ContainerId = "storagebase"; - // TODO: This fucking sucks - [ViewVariables(VVAccess.ReadWrite), DataField] - public bool IsUiOpen; - [ViewVariables] public Container Container = default!; @@ -57,9 +53,27 @@ public sealed partial class StorageComponent : Component [DataField] public bool QuickInsert; // Can insert storables by clicking them with the storage entity + /// + /// Minimum delay between quick/area insert actions. + /// + /// Used to prevent autoclickers spamming server with individual pickup actions. + public TimeSpan QuickInsertCooldown = TimeSpan.FromSeconds(0.5); + + /// + /// Minimum delay between UI open actions. + /// Used to spamming opening sounds. + /// + [DataField] + public TimeSpan OpenUiCooldown = TimeSpan.Zero; + [DataField] public bool ClickInsert = true; // Can insert stuff by clicking the storage entity with it + /// + /// How many entities area pickup can pickup at once. + /// + public const int AreaPickupLimit = 10; + [DataField] public bool AreaInsert; // Clicking with the storage entity causes it to insert all nearby storables after a delay @@ -214,15 +228,6 @@ public AnimateInsertingEntitiesEvent(NetEntity storage, List storedEn } } - /// - /// An extra BUI message that either opens, closes, or focuses the storage window based on context. - /// - [Serializable, NetSerializable] - public sealed class StorageModifyWindowMessage : BoundUserInterfaceMessage - { - - } - [NetSerializable] [Serializable] public enum StorageVisuals : byte diff --git a/Content.Shared/Store/ListingLocalisationHelpers.cs b/Content.Shared/Store/ListingLocalisationHelpers.cs index 9be37b533f..19cd029488 100644 --- a/Content.Shared/Store/ListingLocalisationHelpers.cs +++ b/Content.Shared/Store/ListingLocalisationHelpers.cs @@ -18,12 +18,10 @@ public static string GetLocalisedNameOrEntityName(ListingData listingData, IProt else if (listingData.ProductEntity != null) name = prototypeManager.Index(listingData.ProductEntity.Value).Name; - // WD START if (listingData.DiscountValue > 0) name += " " + Loc.GetString("store-sales-amount", ("amount", listingData.DiscountValue)); else if (listingData.OldCost.Count > 0) name += " " + Loc.GetString("store-sales-over"); - // WD END return name; } diff --git a/Content.Shared/Store/ListingPrototype.cs b/Content.Shared/Store/ListingPrototype.cs index f39958dc15..445b5742dd 100644 --- a/Content.Shared/Store/ListingPrototype.cs +++ b/Content.Shared/Store/ListingPrototype.cs @@ -75,14 +75,14 @@ public partial class ListingData : IEquatable, ICloneable public EntProtoId? ProductAction; /// - /// The listing ID of the related upgrade listing. Can be used to link a to an - /// upgrade or to use standalone as an upgrade + /// The listing ID of the related upgrade listing. Can be used to link a to an + /// upgrade or to use standalone as an upgrade /// [DataField] - public ProtoId? ProductUpgradeID; + public ProtoId? ProductUpgradeId; /// - /// Keeps track of the current action entity this is tied to, for action upgrades + /// Keeps track of the current action entity this is tied to, for action upgrades /// [DataField] [NonSerialized] @@ -109,7 +109,6 @@ public partial class ListingData : IEquatable, ICloneable [DataField] public TimeSpan RestockTime = TimeSpan.Zero; - // WD START [DataField] public int SaleLimit = 3; @@ -122,7 +121,6 @@ public partial class ListingData : IEquatable, ICloneable [DataField] public List Components = new(); - // WD END public bool Equals(ListingData? listing) { @@ -176,18 +174,16 @@ public object Clone() Priority = Priority, ProductEntity = ProductEntity, ProductAction = ProductAction, - ProductUpgradeID = ProductUpgradeID, + ProductUpgradeId = ProductUpgradeId, ProductActionEntity = ProductActionEntity, ProductEvent = ProductEvent, PurchaseAmount = PurchaseAmount, RestockTime = RestockTime, - // WD START SaleLimit = SaleLimit, SaleBlacklist = SaleBlacklist, DiscountValue = DiscountValue, OldCost = OldCost, Components = Components, - // WD END }; } } diff --git a/Content.Shared/Store/StorePresetPrototype.cs b/Content.Shared/Store/StorePresetPrototype.cs index ac3d439f46..41ee510bd8 100644 --- a/Content.Shared/Store/StorePresetPrototype.cs +++ b/Content.Shared/Store/StorePresetPrototype.cs @@ -1,4 +1,4 @@ -using Content.Shared._White.StoreDiscount; +using Content.Shared.StoreDiscount; using Robust.Shared.Prototypes; using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype.Set; using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype.Dictionary; @@ -40,8 +40,6 @@ public sealed partial class StorePresetPrototype : IPrototype [DataField("currencyWhitelist", customTypeSerializer: typeof(PrototypeIdHashSetSerializer))] public HashSet CurrencyWhitelist { get; private set; } = new(); - // WD EDIT START [DataField] public SalesSpecifier Sales { get; private set; } = new(); - // WD EDIT END } diff --git a/Content.Shared/_White/StoreDiscount/SalesSpecifier.cs b/Content.Shared/StoreDiscount/SalesSpecifier.cs similarity index 94% rename from Content.Shared/_White/StoreDiscount/SalesSpecifier.cs rename to Content.Shared/StoreDiscount/SalesSpecifier.cs index 31131dc85f..21539f85d4 100644 --- a/Content.Shared/_White/StoreDiscount/SalesSpecifier.cs +++ b/Content.Shared/StoreDiscount/SalesSpecifier.cs @@ -1,4 +1,4 @@ -namespace Content.Shared._White.StoreDiscount; +namespace Content.Shared.StoreDiscount; [DataDefinition] public sealed partial class SalesSpecifier diff --git a/Content.Shared/Stunnable/SharedStunSystem.cs b/Content.Shared/Stunnable/SharedStunSystem.cs index f376236666..52225843f2 100644 --- a/Content.Shared/Stunnable/SharedStunSystem.cs +++ b/Content.Shared/Stunnable/SharedStunSystem.cs @@ -1,4 +1,3 @@ -using Content.Shared._White.Standing; using Content.Shared.ActionBlocker; using Content.Shared.Administration.Logs; using Content.Shared.Audio; @@ -34,8 +33,8 @@ public abstract class SharedStunSystem : EntitySystem [Dependency] private readonly SharedAudioSystem _audio = default!; [Dependency] private readonly StandingStateSystem _standingState = default!; [Dependency] private readonly StatusEffectsSystem _statusEffect = default!; - [Dependency] private readonly SharedLayingDownSystem _layingDown = default!; // WD EDIT - [Dependency] private readonly SharedContainerSystem _container = default!; // WD EDIT + [Dependency] private readonly SharedLayingDownSystem _layingDown = default!; + [Dependency] private readonly SharedContainerSystem _container = default!; /// /// Friction modifier for knocked down players. @@ -80,15 +79,12 @@ public override void Initialize() private void OnMobStateChanged(EntityUid uid, MobStateComponent component, MobStateChangedEvent args) { if (!TryComp(uid, out var status)) - { return; - } + switch (args.NewMobState) { case MobState.Alive: - { break; - } case MobState.Critical: { _statusEffect.TryRemoveStatusEffect(uid, "Stun"); @@ -113,13 +109,12 @@ private void UpdateCanMove(EntityUid uid, StunnedComponent component, EntityEven private void OnKnockInit(EntityUid uid, KnockedDownComponent component, ComponentInit args) { - RaiseNetworkEvent(new CheckAutoGetUpEvent(GetNetEntity(uid))); // WD EDIT - _layingDown.TryLieDown(uid, null, null, DropHeldItemsBehavior.DropIfStanding); // WD EDIT + RaiseNetworkEvent(new CheckAutoGetUpEvent(GetNetEntity(uid))); + _layingDown.TryLieDown(uid, null, null, DropHeldItemsBehavior.DropIfStanding); } private void OnKnockShutdown(EntityUid uid, KnockedDownComponent component, ComponentShutdown args) { - // WD EDIT START if (!TryComp(uid, out StandingStateComponent? standing)) return; @@ -131,7 +126,6 @@ private void OnKnockShutdown(EntityUid uid, KnockedDownComponent component, Comp } _standingState.Stand(uid, standing); - // WD EDIT END } private void OnStandAttempt(EntityUid uid, KnockedDownComponent component, StandAttemptEvent args) @@ -165,13 +159,9 @@ private void OnRefreshMovespeed(EntityUid uid, SlowedDownComponent component, Re public bool TryStun(EntityUid uid, TimeSpan time, bool refresh, StatusEffectsComponent? status = null) { - if (time <= TimeSpan.Zero) - return false; - - if (!Resolve(uid, ref status, false)) - return false; - - if (!_statusEffect.TryAddStatusEffect(uid, "Stun", time, refresh)) + if (time <= TimeSpan.Zero + || !Resolve(uid, ref status, false) + || !_statusEffect.TryAddStatusEffect(uid, "Stun", time, refresh)) return false; var ev = new StunnedEvent(); @@ -187,13 +177,9 @@ public bool TryStun(EntityUid uid, TimeSpan time, bool refresh, public bool TryKnockdown(EntityUid uid, TimeSpan time, bool refresh, StatusEffectsComponent? status = null) { - if (time <= TimeSpan.Zero) - return false; - - if (!Resolve(uid, ref status, false)) - return false; - - if (!_statusEffect.TryAddStatusEffect(uid, "KnockedDown", time, refresh)) + if (time <= TimeSpan.Zero + || !Resolve(uid, ref status, false) + || !_statusEffect.TryAddStatusEffect(uid, "KnockedDown", time, refresh)) return false; var ev = new KnockedDownEvent(); @@ -221,10 +207,8 @@ public bool TrySlowdown(EntityUid uid, TimeSpan time, bool refresh, float walkSpeedMultiplier = 1f, float runSpeedMultiplier = 1f, StatusEffectsComponent? status = null) { - if (!Resolve(uid, ref status, false)) - return false; - - if (time <= TimeSpan.Zero) + if (!Resolve(uid, ref status, false) + || time <= TimeSpan.Zero) return false; if (_statusEffect.TryAddStatusEffect(uid, "SlowedDown", time, refresh, status)) @@ -247,14 +231,8 @@ public bool TrySlowdown(EntityUid uid, TimeSpan time, bool refresh, private void OnInteractHand(EntityUid uid, KnockedDownComponent knocked, InteractHandEvent args) { - // This is currently disabled in favor of an interaction verb with the same effect, but more obvious usage. - return; - - if (args.Handled || knocked.HelpTimer > 0f) - return; - - // TODO: This should be an event. - if (HasComp(uid)) + if (args.Handled || knocked.HelpTimer > 0f + || HasComp(uid)) return; // Set it to half the help interval so helping is actually useful... @@ -290,15 +268,19 @@ private void OnAttempt(EntityUid uid, StunnedComponent stunned, CancellableEntit private void OnEquipAttempt(EntityUid uid, StunnedComponent stunned, IsEquippingAttemptEvent args) { // is this a self-equip, or are they being stripped? - if (args.Equipee == uid) - args.Cancel(); + if (args.Equipee != uid) + return; + + args.Cancel(); } private void OnUnequipAttempt(EntityUid uid, StunnedComponent stunned, IsUnequippingAttemptEvent args) { // is this a self-equip, or are they being stripped? - if (args.Unequipee == uid) - args.Cancel(); + if (args.Unequipee != uid) + return; + + args.Cancel(); } #endregion diff --git a/Content.Shared/Tag/TagSystem.cs b/Content.Shared/Tag/TagSystem.cs index 0628b892ed..0707308e48 100644 --- a/Content.Shared/Tag/TagSystem.cs +++ b/Content.Shared/Tag/TagSystem.cs @@ -1,3 +1,4 @@ +using System.Diagnostics; using System.Linq; using Robust.Shared.GameStates; using Robust.Shared.Prototypes; @@ -9,9 +10,12 @@ public sealed class TagSystem : EntitySystem { [Dependency] private readonly IPrototypeManager _proto = default!; + private EntityQuery _tagQuery; + public override void Initialize() { base.Initialize(); + _tagQuery = GetEntityQuery(); SubscribeLocalEvent(OnTagGetState); SubscribeLocalEvent(OnTagHandleState); @@ -124,7 +128,7 @@ public bool AddTags(EntityUid entity, IEnumerable ids) /// public bool TryAddTag(EntityUid entity, string id) { - return TryComp(entity, out var component) && + return _tagQuery.TryComp(entity, out var component) && AddTag(component, id); } @@ -142,7 +146,7 @@ public bool TryAddTag(EntityUid entity, string id) /// public bool TryAddTags(EntityUid entity, params string[] ids) { - return TryComp(entity, out var component) && + return _tagQuery.TryComp(entity, out var component) && AddTags(component, ids); } @@ -160,7 +164,7 @@ public bool TryAddTags(EntityUid entity, params string[] ids) /// public bool TryAddTags(EntityUid entity, IEnumerable ids) { - return TryComp(entity, out var component) && + return _tagQuery.TryComp(entity, out var component) && AddTags(component, ids); } @@ -175,13 +179,14 @@ public bool TryAddTags(EntityUid entity, IEnumerable ids) /// public bool HasTag(EntityUid entity, string id) { - return TryComp(entity, out var component) && + return _tagQuery.TryComp(entity, out var component) && HasTag(component, id); } /// /// Checks if a tag has been added to an entity. /// + [Obsolete] public bool HasTag(EntityUid entity, string id, EntityQuery tagQuery) { return tagQuery.TryGetComponent(entity, out var component) && @@ -210,7 +215,7 @@ public bool HasTag(EntityUid entity, string id, EntityQuery tagQue /// public bool HasAllTags(EntityUid entity, List ids) { - return TryComp(entity, out var component) && + return _tagQuery.TryComp(entity, out var component) && HasAllTags(component, ids); } @@ -225,7 +230,7 @@ public bool HasAllTags(EntityUid entity, List ids) /// public bool HasAllTags(EntityUid entity, IEnumerable ids) { - return TryComp(entity, out var component) && + return _tagQuery.TryComp(entity, out var component) && HasAllTags(component, ids); } @@ -234,18 +239,33 @@ public bool HasAllTags(EntityUid entity, IEnumerable ids) /// /// The entity to check. /// The tags to check for. + /// true if they all exist, false otherwise. + /// + /// Thrown if one of the ids represents an unregistered . + /// + public bool HasAllTags(EntityUid entity, List> ids) + { + return _tagQuery.TryComp(entity, out var component) && + HasAllTags(component, ids); + } + + /// + /// Checks if any of the given tags have been added to an entity. + /// + /// The entity to check. + /// The tags to check for. /// true if any of them exist, false otherwise. /// /// Thrown if one of the ids represents an unregistered . /// public bool HasAnyTag(EntityUid entity, params string[] ids) { - return TryComp(entity, out var component) && + return _tagQuery.TryComp(entity, out var component) && HasAnyTag(component, ids); } /// - /// Checks if all of the given tags have been added to an entity. + /// Checks if any of the given tags have been added to an entity. /// /// The entity to check. /// The tag to check for. @@ -256,7 +276,7 @@ public bool HasAnyTag(EntityUid entity, params string[] ids) public bool HasAnyTag(EntityUid entity, string id) => HasTag(entity, id); /// - /// Checks if all of the given tags have been added to an entity. + /// Checks if any of the given tags have been added to an entity. /// /// The entity to check. /// The tags to check for. @@ -265,13 +285,28 @@ public bool HasAnyTag(EntityUid entity, params string[] ids) /// Thrown if one of the ids represents an unregistered . /// public bool HasAnyTag(EntityUid entity, List ids) + { + return _tagQuery.TryComp(entity, out var component) && + HasAnyTag(component, ids); + } + + /// + /// Checks if any of the given tags have been added to an entity. + /// + /// The entity to check. + /// The tags to check for. + /// true if any of them exist, false otherwise. + /// + /// Thrown if one of the ids represents an unregistered . + /// + public bool HasAnyTag(EntityUid entity, List> ids) { return TryComp(entity, out var component) && HasAnyTag(component, ids); } /// - /// Checks if all of the given tags have been added to an entity. + /// Checks if any of the given tags have been added to an entity. /// /// The entity to check. /// The tags to check for. @@ -281,7 +316,7 @@ public bool HasAnyTag(EntityUid entity, List ids) /// public bool HasAnyTag(EntityUid entity, IEnumerable ids) { - return TryComp(entity, out var component) && + return _tagQuery.TryComp(entity, out var component) && HasAnyTag(component, ids); } @@ -298,7 +333,7 @@ public bool HasAnyTag(EntityUid entity, IEnumerable ids) /// public bool RemoveTag(EntityUid entity, string id) { - return TryComp(entity, out var component) && + return _tagQuery.TryComp(entity, out var component) && RemoveTag(component, id); } @@ -315,7 +350,7 @@ public bool RemoveTag(EntityUid entity, string id) /// public bool RemoveTags(EntityUid entity, params string[] ids) { - return TryComp(entity, out var component) && + return _tagQuery.TryComp(entity, out var component) && RemoveTags(component, ids); } @@ -332,7 +367,7 @@ public bool RemoveTags(EntityUid entity, params string[] ids) /// public bool RemoveTags(EntityUid entity, IEnumerable ids) { - return TryComp(entity, out var component) && + return _tagQuery.TryComp(entity, out var component) && RemoveTags(component, ids); } @@ -478,6 +513,28 @@ public bool HasAllTags(TagComponent component, IEnumerable ids) return true; } + /// + /// Checks if all of the given tags have been added. + /// + /// The tags to check for. + /// true if they all exist, false otherwise. + /// + /// Thrown if one of the ids represents an unregistered . + /// + public bool HasAllTags(TagComponent component, List> ids) + { + foreach (var id in ids) + { + AssertValidTag(id); + + if (!component.Tags.Contains(id)) + return false; + + } + + return true; + } + /// /// Checks if any of the given tags have been added. /// @@ -488,9 +545,16 @@ public bool HasAllTags(TagComponent component, IEnumerable ids) /// public bool HasAnyTag(TagComponent component, params string[] ids) { - return HasAnyTag(component, ids.AsEnumerable()); - } + foreach (var id in ids) + { + AssertValidTag(id); + + if (component.Tags.Contains(id)) + return true; + } + return false; + } /// /// Checks if any of the given tags have been added. @@ -548,6 +612,27 @@ public bool HasAnyTag(TagComponent component, IEnumerable ids) return false; } + /// + /// Checks if any of the given tags have been added. + /// + /// The tags to check for. + /// true if any of them exist, false otherwise. + /// + /// Thrown if one of the ids represents an unregistered . + /// + public bool HasAnyTag(TagComponent comp, List> ids) + { + foreach (var id in ids) + { + AssertValidTag(id); + + if (comp.Tags.Contains(id)) + return true; + } + + return false; + } + /// /// Tries to remove a tag if it exists. /// diff --git a/Content.Shared/Teleportation/Systems/SwapTeleporterSystem.cs b/Content.Shared/Teleportation/Systems/SwapTeleporterSystem.cs index e69a31a1d4..62c0b0f44e 100644 --- a/Content.Shared/Teleportation/Systems/SwapTeleporterSystem.cs +++ b/Content.Shared/Teleportation/Systems/SwapTeleporterSystem.cs @@ -145,27 +145,14 @@ public void DoTeleport(Entity ent) } var teleEnt = GetTeleportingEntity((uid, xform)); - var teleEntXform = Transform(teleEnt); var otherTeleEnt = GetTeleportingEntity((linkedEnt, Transform(linkedEnt))); - var otherTeleEntXform = Transform(otherTeleEnt); _popup.PopupEntity(Loc.GetString("swap-teleporter-popup-teleport-other", ("entity", Identity.Entity(linkedEnt, EntityManager))), otherTeleEnt, otherTeleEnt, PopupType.MediumCaution); - var pos = teleEntXform.Coordinates; - var otherPos = otherTeleEntXform.Coordinates; - - if (_transform.ContainsEntity(teleEnt, (otherTeleEnt, otherTeleEntXform)) || - _transform.ContainsEntity(otherTeleEnt, (teleEnt, teleEntXform))) - { - Log.Error($"Invalid teleport swap attempt between {ToPrettyString(teleEnt)} and {ToPrettyString(otherTeleEnt)}"); - return; - } - - _transform.SetCoordinates(teleEnt, otherPos); - _transform.SetCoordinates(otherTeleEnt, pos); + _transform.SwapPositions(teleEnt, otherTeleEnt); } /// diff --git a/Content.Shared/_White/Telescope/SharedTelescopeSystem.cs b/Content.Shared/Telescope/SharedTelescopeSystem.cs similarity index 83% rename from Content.Shared/_White/Telescope/SharedTelescopeSystem.cs rename to Content.Shared/Telescope/SharedTelescopeSystem.cs index 78bcf757ea..5f9896cc35 100644 --- a/Content.Shared/_White/Telescope/SharedTelescopeSystem.cs +++ b/Content.Shared/Telescope/SharedTelescopeSystem.cs @@ -5,7 +5,7 @@ using Content.Shared.Item; using Robust.Shared.Serialization; -namespace Content.Shared._White.Telescope; +namespace Content.Shared.Telescope; public abstract class SharedTelescopeSystem : EntitySystem { @@ -23,7 +23,8 @@ public override void Initialize() private void OnShutdown(Entity ent, ref ComponentShutdown args) { - if (!TryComp(ent.Comp.LastEntity, out EyeComponent? eye) || ent.Comp.LastEntity == ent && TerminatingOrDeleted(ent)) + if (!TryComp(ent.Comp.LastEntity, out EyeComponent? eye) + || ent.Comp.LastEntity == ent && TerminatingOrDeleted(ent)) return; SetOffset((ent.Comp.LastEntity.Value, eye), Vector2.Zero, ent); @@ -39,10 +40,8 @@ private void OnHandDeselected(Entity ent, ref HandDeselected private void OnUnequip(Entity ent, ref GotUnequippedHandEvent args) { - if (!TryComp(args.User, out EyeComponent? eye)) - return; - - if (!HasComp(ent.Owner)) + if (!TryComp(args.User, out EyeComponent? eye) + || !HasComp(ent.Owner)) return; SetOffset((args.User, eye), Vector2.Zero, ent); @@ -52,26 +51,20 @@ private void OnUnequip(Entity ent, ref GotUnequippedHandEven { TelescopeComponent? telescope = null; - if (TryComp(ent, out var hands) && - hands.ActiveHandEntity.HasValue && - TryComp(hands.ActiveHandEntity, out var handTelescope)) - { + if (TryComp(ent, out var hands) + && hands.ActiveHandEntity.HasValue + && TryComp(hands.ActiveHandEntity, out var handTelescope)) telescope = handTelescope; - } else if (TryComp(ent, out var entityTelescope)) - { telescope = entityTelescope; - } return telescope; } private void OnEyeOffsetChanged(EyeOffsetChangedEvent msg, EntitySessionEventArgs args) { - if (args.SenderSession.AttachedEntity is not { } ent) - return; - - if (!TryComp(ent, out EyeComponent? eye)) + if (args.SenderSession.AttachedEntity is not { } ent + || !TryComp(ent, out var eye)) return; var telescope = GetRightTelescope(ent); diff --git a/Content.Shared/Telescope/TelescopeComponent.cs b/Content.Shared/Telescope/TelescopeComponent.cs new file mode 100644 index 0000000000..529cc58324 --- /dev/null +++ b/Content.Shared/Telescope/TelescopeComponent.cs @@ -0,0 +1,16 @@ +using Robust.Shared.GameStates; + +namespace Content.Shared.Telescope; + +[RegisterComponent, NetworkedComponent, AutoGenerateComponentState] +public sealed partial class TelescopeComponent : Component +{ + [DataField, AutoNetworkedField] + public float Divisor = 0.1f; + + [DataField, AutoNetworkedField] + public float LerpAmount = 0.1f; + + [ViewVariables] + public EntityUid? LastEntity; +} diff --git a/Content.Shared/Timing/UseDelayComponent.cs b/Content.Shared/Timing/UseDelayComponent.cs index 1560d4dd0b..aa6c66eb81 100644 --- a/Content.Shared/Timing/UseDelayComponent.cs +++ b/Content.Shared/Timing/UseDelayComponent.cs @@ -1,38 +1,53 @@ using Robust.Shared.GameStates; -using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom; +using Robust.Shared.Serialization; namespace Content.Shared.Timing; /// -/// Timer that creates a cooldown each time an object is activated/used +/// Timer that creates a cooldown each time an object is activated/used. +/// Can support additional, separate cooldown timers on the object by passing a unique ID with the system methods. /// -/// -/// Currently it only supports a single delay per entity, this means that for things that have two delay interactions they will share one timer, so this can cause issues. For example, the bible has a delay when opening the storage UI and when applying it's interaction effect, and they share the same delay. -/// [RegisterComponent] -[NetworkedComponent, AutoGenerateComponentState, AutoGenerateComponentPause] +[NetworkedComponent] [Access(typeof(UseDelaySystem))] public sealed partial class UseDelayComponent : Component { - /// - /// When the delay starts. - /// - [ViewVariables(VVAccess.ReadWrite), DataField(customTypeSerializer: typeof(TimeOffsetSerializer)), AutoNetworkedField] - [AutoPausedField] - public TimeSpan DelayStartTime; - - /// - /// When the delay ends. - /// - [ViewVariables(VVAccess.ReadWrite), DataField(customTypeSerializer: typeof(TimeOffsetSerializer)), AutoNetworkedField] - [AutoPausedField] - public TimeSpan DelayEndTime; + [DataField] + public Dictionary Delays = []; /// - /// Default delay time + /// Default delay time. /// + /// + /// This is only used at MapInit and should not be expected + /// to reflect the length of the default delay after that. + /// Use instead. + /// [DataField] - [ViewVariables(VVAccess.ReadWrite)] - [AutoNetworkedField] public TimeSpan Delay = TimeSpan.FromSeconds(1); } + +[Serializable, NetSerializable] +public sealed class UseDelayComponentState : IComponentState +{ + public Dictionary Delays = new(); +} + +[Serializable, NetSerializable] +[DataDefinition] +public sealed partial class UseDelayInfo +{ + [DataField] + public TimeSpan Length { get; set; } + [DataField] + public TimeSpan StartTime { get; set; } + [DataField] + public TimeSpan EndTime { get; set; } + + public UseDelayInfo(TimeSpan length, TimeSpan startTime = default, TimeSpan endTime = default) + { + Length = length; + StartTime = startTime; + EndTime = endTime; + } +} diff --git a/Content.Shared/Timing/UseDelaySystem.cs b/Content.Shared/Timing/UseDelaySystem.cs index 388f31079c..9816d0185a 100644 --- a/Content.Shared/Timing/UseDelaySystem.cs +++ b/Content.Shared/Timing/UseDelaySystem.cs @@ -1,3 +1,5 @@ +using System.Diagnostics.CodeAnalysis; +using Robust.Shared.GameStates; using Robust.Shared.Timing; namespace Content.Shared.Timing; @@ -7,53 +9,171 @@ public sealed class UseDelaySystem : EntitySystem [Dependency] private readonly IGameTiming _gameTiming = default!; [Dependency] private readonly MetaDataSystem _metadata = default!; - public void SetDelay(Entity ent, TimeSpan delay) + private const string DefaultId = "default"; + + public override void Initialize() + { + base.Initialize(); + + SubscribeLocalEvent(OnMapInit); + SubscribeLocalEvent(OnUnpaused); + SubscribeLocalEvent(OnDelayGetState); + SubscribeLocalEvent(OnDelayHandleState); + } + + private void OnDelayHandleState(Entity ent, ref ComponentHandleState args) { - if (ent.Comp.Delay == delay) + if (args.Current is not UseDelayComponentState state) return; - ent.Comp.Delay = delay; + ent.Comp.Delays.Clear(); + + // At time of writing sourcegen networking doesn't deep copy so this will mispredict if you try. + foreach (var (key, delay) in state.Delays) + { + ent.Comp.Delays[key] = new UseDelayInfo(delay.Length, delay.StartTime, delay.EndTime); + } + } + + private void OnDelayGetState(Entity ent, ref ComponentGetState args) + { + args.State = new UseDelayComponentState() + { + Delays = ent.Comp.Delays + }; + } + + private void OnMapInit(Entity ent, ref MapInitEvent args) + { + // Set default delay length from the prototype + // This makes it easier for simple use cases that only need a single delay + SetLength((ent, ent.Comp), ent.Comp.Delay, DefaultId); + } + + private void OnUnpaused(Entity ent, ref EntityUnpausedEvent args) + { + // We have to do this manually, since it's not just a single field. + foreach (var entry in ent.Comp.Delays.Values) + { + entry.EndTime += args.PausedTime; + } + } + + /// + /// Sets the length of the delay with the specified ID. + /// + /// + /// This will add a UseDelay component to the entity if it doesn't have one. + /// + public bool SetLength(Entity ent, TimeSpan length, string id = DefaultId) + { + EnsureComp(ent.Owner, out var comp); + + if (comp.Delays.TryGetValue(id, out var entry)) + { + if (entry.Length == length) + return true; + + entry.Length = length; + } + else + { + comp.Delays.Add(id, new UseDelayInfo(length)); + } + Dirty(ent); + return true; } /// - /// Returns true if the entity has a currently active UseDelay. + /// Returns true if the entity has a currently active UseDelay with the specified ID. /// - public bool IsDelayed(Entity ent) + public bool IsDelayed(Entity ent, string id = DefaultId) { - return ent.Comp.DelayEndTime >= _gameTiming.CurTime; + if (!ent.Comp.Delays.TryGetValue(id, out var entry)) + return false; + + return entry.EndTime >= _gameTiming.CurTime; } /// - /// Cancels the current delay. + /// Cancels the delay with the specified ID. /// - public void CancelDelay(Entity ent) + public void CancelDelay(Entity ent, string id = DefaultId) { - ent.Comp.DelayEndTime = _gameTiming.CurTime; + if (!ent.Comp.Delays.TryGetValue(id, out var entry)) + return; + + entry.EndTime = _gameTiming.CurTime; Dirty(ent); } /// - /// Resets the UseDelay entirely for this entity if possible. + /// Tries to get info about the delay with the specified ID. See . + /// + /// + /// + /// + /// + public bool TryGetDelayInfo(Entity ent, [NotNullWhen(true)] out UseDelayInfo? info, string id = DefaultId) + { + return ent.Comp.Delays.TryGetValue(id, out info); + } + + /// + /// Returns info for the delay that will end farthest in the future. /// - /// Check if the entity has an ongoing delay, return false if it does, return true if it does not. - public bool TryResetDelay(Entity ent, bool checkDelayed = false) + public UseDelayInfo GetLastEndingDelay(Entity ent) { - if (checkDelayed && IsDelayed(ent)) + var last = ent.Comp.Delays[DefaultId]; + foreach (var entry in ent.Comp.Delays) + { + if (entry.Value.EndTime > last.EndTime) + last = entry.Value; + } + return last; + } + + /// + /// Resets the delay with the specified ID for this entity if possible. + /// + /// Check if the entity has an ongoing delay with the specified ID. + /// If it does, return false and don't reset it. + /// Otherwise reset it and return true. + public bool TryResetDelay(Entity ent, bool checkDelayed = false, string id = DefaultId) + { + if (checkDelayed && IsDelayed(ent, id)) + return false; + + if (!ent.Comp.Delays.TryGetValue(id, out var entry)) return false; var curTime = _gameTiming.CurTime; - ent.Comp.DelayStartTime = curTime; - ent.Comp.DelayEndTime = curTime - _metadata.GetPauseTime(ent) + ent.Comp.Delay; + entry.StartTime = curTime; + entry.EndTime = curTime - _metadata.GetPauseTime(ent) + entry.Length; Dirty(ent); return true; } - public bool TryResetDelay(EntityUid uid, bool checkDelayed = false, UseDelayComponent? component = null) + public bool TryResetDelay(EntityUid uid, bool checkDelayed = false, UseDelayComponent? component = null, string id = DefaultId) { if (!Resolve(uid, ref component, false)) return false; - return TryResetDelay((uid, component), checkDelayed); + return TryResetDelay((uid, component), checkDelayed, id); + } + + /// + /// Resets all delays on the entity. + /// + public void ResetAllDelays(Entity ent) + { + var curTime = _gameTiming.CurTime; + foreach (var entry in ent.Comp.Delays.Values) + { + entry.StartTime = curTime; + entry.EndTime = curTime - _metadata.GetPauseTime(ent) + entry.Length; + } + Dirty(ent); } } diff --git a/Content.Shared/Tips/TippyEvent.cs b/Content.Shared/Tips/TippyEvent.cs new file mode 100644 index 0000000000..4370e9c822 --- /dev/null +++ b/Content.Shared/Tips/TippyEvent.cs @@ -0,0 +1,19 @@ + +using Robust.Shared.Serialization; + +namespace Content.Shared.Tips; + +[Serializable, NetSerializable] +public sealed class TippyEvent : EntityEventArgs +{ + public TippyEvent(string msg) + { + Msg = msg; + } + + public string Msg; + public string? Proto; + public float SpeakTime = 5; + public float SlideTime = 3; + public float WaddleInterval = 0.5f; +} diff --git a/Content.Shared/Tools/Components/SharedWeldable.cs b/Content.Shared/Tools/Components/SharedWeldable.cs deleted file mode 100644 index 701bd4d8da..0000000000 --- a/Content.Shared/Tools/Components/SharedWeldable.cs +++ /dev/null @@ -1,49 +0,0 @@ -using Robust.Shared.GameStates; -using Robust.Shared.Serialization; -using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype; - -namespace Content.Shared.Tools.Components; - -[RegisterComponent, NetworkedComponent, AutoGenerateComponentState] -public sealed partial class WeldableComponent : Component -{ - /// - /// Tool quality for welding. - /// - [DataField("weldingQuality", customTypeSerializer: typeof(PrototypeIdSerializer))] - [ViewVariables(VVAccess.ReadWrite)] - public string WeldingQuality = "Welding"; - - /// - /// How much time does it take to weld/unweld entity. - /// - [DataField("time")] - [ViewVariables(VVAccess.ReadWrite)] - [AutoNetworkedField] - public TimeSpan WeldingTime = TimeSpan.FromSeconds(1f); - - /// - /// Shown when welded entity is examined. - /// - [DataField("weldedExamineMessage")] - [ViewVariables(VVAccess.ReadWrite)] - public string? WeldedExamineMessage = "weldable-component-examine-is-welded"; - - /// - /// Is this entity currently welded shut? - /// - [DataField("isWelded"), AutoNetworkedField] - public bool IsWelded; -} - -[Serializable, NetSerializable] -public enum WeldableVisuals : byte -{ - IsWelded -} - -[Serializable, NetSerializable] -public enum WeldableLayers : byte -{ - BaseWelded -} diff --git a/Content.Shared/Tools/Components/SharedWelderComponent.cs b/Content.Shared/Tools/Components/SharedWelderComponent.cs deleted file mode 100644 index 78c1cde201..0000000000 --- a/Content.Shared/Tools/Components/SharedWelderComponent.cs +++ /dev/null @@ -1,21 +0,0 @@ -using Robust.Shared.GameStates; -using Robust.Shared.Serialization; - -namespace Content.Shared.Tools.Components -{ - [NetworkedComponent] - public abstract partial class SharedWelderComponent : Component { } - - [NetSerializable, Serializable] - public sealed class WelderComponentState : ComponentState - { - public float FuelCapacity { get; } - public float Fuel { get; } - - public WelderComponentState(float fuelCapacity, float fuel) - { - FuelCapacity = fuelCapacity; - Fuel = fuel; - } - } -} diff --git a/Content.Shared/Tools/Components/WeldableComponent.cs b/Content.Shared/Tools/Components/WeldableComponent.cs new file mode 100644 index 0000000000..e491b5f6a7 --- /dev/null +++ b/Content.Shared/Tools/Components/WeldableComponent.cs @@ -0,0 +1,51 @@ +using Robust.Shared.GameStates; +using Robust.Shared.Prototypes; +using Robust.Shared.Serialization; + +namespace Content.Shared.Tools.Components; + +[RegisterComponent, NetworkedComponent, AutoGenerateComponentState] +public sealed partial class WeldableComponent : Component +{ + /// + /// Tool quality for welding. + /// + [DataField] + public ProtoId WeldingQuality = "Welding"; + + /// + /// How much time does it take to weld/unweld entity. + /// + [DataField, AutoNetworkedField] + public TimeSpan Time = TimeSpan.FromSeconds(1f); + + /// + /// How much fuel does it take to weld/unweld entity. + /// + [DataField] + public float Fuel = 3f; + + /// + /// Shown when welded entity is examined. + /// + [DataField] + public LocId? WeldedExamineMessage = "weldable-component-examine-is-welded"; + + /// + /// Is this entity currently welded shut? + /// + [DataField, AutoNetworkedField] + public bool IsWelded; +} + +[Serializable, NetSerializable] +public enum WeldableVisuals : byte +{ + IsWelded +} + +[Serializable, NetSerializable] +public enum WeldableLayers : byte +{ + BaseWelded +} diff --git a/Content.Shared/Tools/Components/WelderComponent.cs b/Content.Shared/Tools/Components/WelderComponent.cs new file mode 100644 index 0000000000..3c78a03fde --- /dev/null +++ b/Content.Shared/Tools/Components/WelderComponent.cs @@ -0,0 +1,58 @@ +using Content.Shared.Chemistry.Components; +using Content.Shared.Chemistry.Reagent; +using Content.Shared.FixedPoint; +using Content.Shared.Tools.Systems; +using Robust.Shared.Audio; +using Robust.Shared.GameStates; +using Robust.Shared.Prototypes; + +namespace Content.Shared.Tools.Components; + +[RegisterComponent, NetworkedComponent, AutoGenerateComponentState(true), Access(typeof(SharedToolSystem))] +public sealed partial class WelderComponent : Component +{ + [DataField, AutoNetworkedField] + public bool Enabled; + + [DataField] + public float WelderTimer; + + /// + /// Name of . + /// + [DataField] + public string FuelSolutionName = "Welder"; + + /// + /// Reagent that will be used as fuel for welding. + /// + [DataField] + public ProtoId FuelReagent = "WeldingFuel"; + + /// + /// Fuel consumption per second while the welder is active. + /// + [DataField, AutoNetworkedField] + public FixedPoint2 FuelConsumption = FixedPoint2.New(1.0f); + + /// + /// A fuel amount to be consumed when the welder goes from being unlit to being lit. + /// + [DataField, AutoNetworkedField] + public FixedPoint2 FuelLitCost = FixedPoint2.New(0.5f); + + /// + /// Sound played when refilling the welder. + /// + [DataField] + public SoundSpecifier WelderRefill = new SoundPathSpecifier("/Audio/Effects/refill.ogg"); + + /// + /// Whether the item is safe to refill while lit without exploding the tank. + /// + [DataField] + public bool TankSafe; + + [DataField] + public float WelderUpdateTimer = 1f; +} diff --git a/Content.Shared/Tools/Systems/SharedToolSystem.Welder.cs b/Content.Shared/Tools/Systems/SharedToolSystem.Welder.cs new file mode 100644 index 0000000000..e790b59cd1 --- /dev/null +++ b/Content.Shared/Tools/Systems/SharedToolSystem.Welder.cs @@ -0,0 +1,178 @@ +using Content.Shared.Chemistry.Components; +using Content.Shared.Chemistry.Components.SolutionManager; +using Content.Shared.Database; +using Content.Shared.DoAfter; +using Content.Shared.Examine; +using Content.Shared.FixedPoint; +using Content.Shared.Interaction; +using Content.Shared.Item.ItemToggle.Components; +using Content.Shared.Tools.Components; + +namespace Content.Shared.Tools.Systems; + +public abstract partial class SharedToolSystem +{ + public void InitializeWelder() + { + SubscribeLocalEvent(OnWelderExamine); + SubscribeLocalEvent(OnWelderAfterInteract); + SubscribeLocalEvent>(OnWelderToolUseAttempt); + SubscribeLocalEvent(OnWelderDoAfter); + SubscribeLocalEvent(OnToggle); + SubscribeLocalEvent(OnActivateAttempt); + } + + public virtual void TurnOn(Entity entity, EntityUid? user) + { + if (!SolutionContainerSystem.TryGetSolution(entity.Owner, entity.Comp.FuelSolutionName, out var solutionComp, out _)) + return; + + SolutionContainerSystem.RemoveReagent(solutionComp.Value, entity.Comp.FuelReagent, entity.Comp.FuelLitCost); + AdminLogger.Add(LogType.InteractActivate, LogImpact.Low, + $"{ToPrettyString(user):user} toggled {ToPrettyString(entity.Owner):welder} on"); + + entity.Comp.Enabled = true; + Dirty(entity, entity.Comp); + } + + public void TurnOff(Entity entity, EntityUid? user) + { + AdminLogger.Add(LogType.InteractActivate, LogImpact.Low, + $"{ToPrettyString(user):user} toggled {ToPrettyString(entity.Owner):welder} off"); + entity.Comp.Enabled = false; + Dirty(entity, entity.Comp); + } + + public (FixedPoint2 fuel, FixedPoint2 capacity) GetWelderFuelAndCapacity(EntityUid uid, WelderComponent? welder = null, SolutionContainerManagerComponent? solutionContainer = null) + { + if (!Resolve(uid, ref welder, ref solutionContainer)) + return default; + + if (!SolutionContainer.TryGetSolution( + (uid, solutionContainer), + welder.FuelSolutionName, + out _, + out var fuelSolution)) + { + return default; + } + + return (fuelSolution.GetTotalPrototypeQuantity(welder.FuelReagent), fuelSolution.MaxVolume); + } + + private void OnWelderExamine(Entity entity, ref ExaminedEvent args) + { + using (args.PushGroup(nameof(WelderComponent))) + { + if (ItemToggle.IsActivated(entity.Owner)) + { + args.PushMarkup(Loc.GetString("welder-component-on-examine-welder-lit-message")); + } + else + { + args.PushMarkup(Loc.GetString("welder-component-on-examine-welder-not-lit-message")); + } + + if (args.IsInDetailsRange) + { + var (fuel, capacity) = GetWelderFuelAndCapacity(entity.Owner, entity.Comp); + + args.PushMarkup(Loc.GetString("welder-component-on-examine-detailed-message", + ("colorName", fuel < capacity / FixedPoint2.New(4f) ? "darkorange" : "orange"), + ("fuelLeft", fuel), + ("fuelCapacity", capacity), + ("status", string.Empty))); // Lit status is handled above + } + } + } + + private void OnWelderAfterInteract(Entity entity, ref AfterInteractEvent args) + { + if (args.Handled) + return; + + if (args.Target is not { Valid: true } target || !args.CanReach) + return; + + if (TryComp(target, out ReagentTankComponent? tank) + && tank.TankType == ReagentTankType.Fuel + && SolutionContainerSystem.TryGetDrainableSolution(target, out var targetSoln, out var targetSolution) + && SolutionContainerSystem.TryGetSolution(entity.Owner, entity.Comp.FuelSolutionName, out var solutionComp, out var welderSolution)) + { + var trans = FixedPoint2.Min(welderSolution.AvailableVolume, targetSolution.Volume); + if (trans > 0) + { + var drained = SolutionContainerSystem.Drain(target, targetSoln.Value, trans); + SolutionContainerSystem.TryAddSolution(solutionComp.Value, drained); + _audioSystem.PlayPredicted(entity.Comp.WelderRefill, entity, user: args.User); + _popup.PopupClient(Loc.GetString("welder-component-after-interact-refueled-message"), entity, args.User); + } + else if (welderSolution.AvailableVolume <= 0) + { + _popup.PopupClient(Loc.GetString("welder-component-already-full"), entity, args.User); + } + else + { + _popup.PopupClient(Loc.GetString("welder-component-no-fuel-in-tank", ("owner", args.Target)), entity, args.User); + } + + args.Handled = true; + } + } + + private void OnWelderToolUseAttempt(Entity entity, ref DoAfterAttemptEvent args) + { + var user = args.DoAfter.Args.User; + + if (!ItemToggle.IsActivated(entity.Owner)) + { + _popup.PopupClient(Loc.GetString("welder-component-welder-not-lit-message"), entity, user); + args.Cancel(); + return; + } + + var (fuel, _) = GetWelderFuelAndCapacity(entity); + + if (args.Event.Fuel > fuel) + { + _popup.PopupClient(Loc.GetString("welder-component-cannot-weld-message"), entity, user); + args.Cancel(); + } + } + + private void OnWelderDoAfter(Entity ent, ref ToolDoAfterEvent args) + { + if (args.Cancelled) + return; + + if (!SolutionContainerSystem.TryGetSolution(ent.Owner, ent.Comp.FuelSolutionName, out var solution)) + return; + + SolutionContainerSystem.RemoveReagent(solution.Value, ent.Comp.FuelReagent, FixedPoint2.New(args.Fuel)); + } + + private void OnToggle(Entity entity, ref ItemToggledEvent args) + { + if (args.Activated) + TurnOn(entity, args.User); + else + TurnOff(entity, args.User); + } + + private void OnActivateAttempt(Entity entity, ref ItemToggleActivateAttemptEvent args) + { + if (!SolutionContainerSystem.TryGetSolution(entity.Owner, entity.Comp.FuelSolutionName, out _, out var solution)) + { + args.Cancelled = true; + args.Popup = Loc.GetString("welder-component-no-fuel-message"); + return; + } + + var fuel = solution.GetTotalPrototypeQuantity(entity.Comp.FuelReagent); + if (fuel == FixedPoint2.Zero || fuel < entity.Comp.FuelLitCost) + { + args.Popup = Loc.GetString("welder-component-no-fuel-message"); + args.Cancelled = true; + } + } +} diff --git a/Content.Shared/Tools/Systems/SharedToolSystem.cs b/Content.Shared/Tools/Systems/SharedToolSystem.cs index ee15b1e025..0d7972a8de 100644 --- a/Content.Shared/Tools/Systems/SharedToolSystem.cs +++ b/Content.Shared/Tools/Systems/SharedToolSystem.cs @@ -1,8 +1,12 @@ using Content.Shared.Administration.Logs; +using Content.Shared.Chemistry.EntitySystems; using Content.Shared.DoAfter; using Content.Shared.Interaction; +using Content.Shared.Item.ItemToggle; using Content.Shared.Maps; +using Content.Shared.Popups; using Content.Shared.Tools.Components; +using JetBrains.Annotations; using Robust.Shared.Audio.Systems; using Robust.Shared.Map; using Robust.Shared.Prototypes; @@ -15,20 +19,25 @@ public abstract partial class SharedToolSystem : EntitySystem { [Dependency] private readonly IMapManager _mapManager = default!; [Dependency] private readonly IPrototypeManager _protoMan = default!; - [Dependency] protected readonly ISharedAdminLogManager AdminLogger = default!; + [Dependency] protected readonly ISharedAdminLogManager AdminLogger = default!; [Dependency] private readonly ITileDefinitionManager _tileDefManager = default!; [Dependency] private readonly SharedAudioSystem _audioSystem = default!; [Dependency] private readonly SharedDoAfterSystem _doAfterSystem = default!; [Dependency] protected readonly SharedInteractionSystem InteractionSystem = default!; + [Dependency] protected readonly SharedItemToggleSystem ItemToggle = default!; [Dependency] private readonly SharedMapSystem _maps = default!; + [Dependency] private readonly SharedPopupSystem _popup = default!; + [Dependency] protected readonly SharedSolutionContainerSystem SolutionContainerSystem = default!; [Dependency] private readonly SharedTransformSystem _transformSystem = default!; [Dependency] private readonly TileSystem _tiles = default!; [Dependency] private readonly TurfSystem _turfs = default!; + [Dependency] protected readonly SharedSolutionContainerSystem SolutionContainer = default!; public override void Initialize() { InitializeMultipleTool(); InitializeTile(); + InitializeWelder(); SubscribeLocalEvent(OnDoAfter); } @@ -66,6 +75,7 @@ public void PlayToolSound(EntityUid uid, ToolComponent tool, EntityUid? user) /// The qualities needed for this tool to work. /// The event that will be raised when the tool has finished (including cancellation). Event /// will be directed at the tool target. + /// Amount of fuel that should be taken from the tool. /// The tool component. /// Returns true if any interaction takes place. public bool UseTool( @@ -75,6 +85,7 @@ public bool UseTool( float doAfterDelay, IEnumerable toolQualitiesNeeded, DoAfterEvent doAfterEv, + float fuel = 0, ToolComponent? toolComponent = null) { return UseTool(tool, @@ -84,6 +95,7 @@ public bool UseTool( toolQualitiesNeeded, doAfterEv, out _, + fuel, toolComponent); } @@ -101,6 +113,7 @@ public bool UseTool( /// will be directed at the tool target. /// The id of the DoAfter that was created. This may be null even if the function returns true in /// the event that this tool-use cancelled an existing DoAfter + /// Amount of fuel that should be taken from the tool. /// The tool component. /// Returns true if any interaction takes place. public bool UseTool( @@ -111,31 +124,30 @@ public bool UseTool( IEnumerable toolQualitiesNeeded, DoAfterEvent doAfterEv, out DoAfterId? id, + float fuel = 0, ToolComponent? toolComponent = null) { id = null; if (!Resolve(tool, ref toolComponent, false)) return false; - if (!CanStartToolUse(tool, user, target, toolQualitiesNeeded, toolComponent)) + if (!CanStartToolUse(tool, user, target, fuel, toolQualitiesNeeded, toolComponent)) return false; - var toolEvent = new ToolDoAfterEvent(doAfterEv, GetNetEntity(target)); + var toolEvent = new ToolDoAfterEvent(fuel, doAfterEv, GetNetEntity(target)); var doAfterArgs = new DoAfterArgs(EntityManager, user, delay / toolComponent.SpeedModifier, toolEvent, tool, target: target, used: tool) { BreakOnDamage = true, BreakOnTargetMove = true, BreakOnUserMove = true, NeedHand = tool != user, - AttemptFrequency = IsWelder(tool) ? AttemptFrequency.EveryTick : AttemptFrequency.Never + AttemptFrequency = fuel > 0 ? AttemptFrequency.EveryTick : AttemptFrequency.Never }; _doAfterSystem.TryStartDoAfter(doAfterArgs, out id); return true; } - protected abstract bool IsWelder(EntityUid uid); - /// /// Attempts to use a tool on some entity, which will start a DoAfter. Returns true if an interaction occurred. /// Note that this does not mean the interaction was successful, you need to listen for the DoAfter event. @@ -148,6 +160,7 @@ public bool UseTool( /// The quality needed for this tool to work. /// The event that will be raised when the tool has finished (including cancellation). Event /// will be directed at the tool target. + /// Amount of fuel that should be taken from the tool. /// The tool component. /// Returns true if any interaction takes place. public bool UseTool( @@ -157,6 +170,7 @@ public bool UseTool( float doAfterDelay, string toolQualityNeeded, DoAfterEvent doAfterEv, + float fuel = 0, ToolComponent? toolComponent = null) { return UseTool(tool, @@ -166,6 +180,7 @@ public bool UseTool( new[] { toolQualityNeeded }, doAfterEv, out _, + fuel, toolComponent); } @@ -180,12 +195,13 @@ public bool HasQuality(EntityUid uid, string quality, ToolComponent? tool = null /// /// Whether a tool entity has all specified qualities or not. /// + [PublicAPI] public bool HasAllQualities(EntityUid uid, IEnumerable qualities, ToolComponent? tool = null) { return Resolve(uid, ref tool, false) && tool.Qualities.ContainsAll(qualities); } - private bool CanStartToolUse(EntityUid tool, EntityUid user, EntityUid? target, IEnumerable toolQualitiesNeeded, ToolComponent? toolComponent = null) + private bool CanStartToolUse(EntityUid tool, EntityUid user, EntityUid? target, float fuel, IEnumerable toolQualitiesNeeded, ToolComponent? toolComponent = null) { if (!Resolve(tool, ref toolComponent)) return false; @@ -220,6 +236,9 @@ private bool CanStartToolUse(EntityUid tool, EntityUid user, EntityUid? target, [Serializable, NetSerializable] protected sealed partial class ToolDoAfterEvent : DoAfterEvent { + [DataField] + public float Fuel; + /// /// Entity that the wrapped do after event will get directed at. If null, event will be broadcast. /// @@ -233,10 +252,11 @@ private ToolDoAfterEvent() { } - public ToolDoAfterEvent(DoAfterEvent wrappedEvent, NetEntity? originalTarget) + public ToolDoAfterEvent(float fuel, DoAfterEvent wrappedEvent, NetEntity? originalTarget) { DebugTools.Assert(wrappedEvent.GetType().HasCustomAttribute(), "Tool event is not serializable"); + Fuel = fuel; WrappedEvent = wrappedEvent; OriginalTarget = originalTarget; } @@ -249,14 +269,14 @@ public override DoAfterEvent Clone() if (evClone == WrappedEvent) return this; - return new ToolDoAfterEvent(evClone, OriginalTarget); + return new ToolDoAfterEvent(Fuel, evClone, OriginalTarget); } } [Serializable, NetSerializable] protected sealed partial class LatticeCuttingCompleteEvent : DoAfterEvent { - [DataField("coordinates", required:true)] + [DataField(required:true)] public NetCoordinates Coordinates; private LatticeCuttingCompleteEvent() @@ -273,9 +293,7 @@ public LatticeCuttingCompleteEvent(NetCoordinates coordinates) } [Serializable, NetSerializable] -public sealed partial class CableCuttingFinishedEvent : SimpleDoAfterEvent -{ -} +public sealed partial class CableCuttingFinishedEvent : SimpleDoAfterEvent; #endregion diff --git a/Content.Shared/Tools/Systems/WeldableSystem.cs b/Content.Shared/Tools/Systems/WeldableSystem.cs index b0ea68f713..c6c47d539e 100644 --- a/Content.Shared/Tools/Systems/WeldableSystem.cs +++ b/Content.Shared/Tools/Systems/WeldableSystem.cs @@ -69,7 +69,7 @@ private bool TryWeld(EntityUid uid, EntityUid tool, EntityUid user, WeldableComp if (!CanWeld(uid, tool, user, component)) return false; - if (!_toolSystem.UseTool(tool, user, uid, component.WeldingTime.Seconds, component.WeldingQuality, new WeldFinishedEvent())) + if (!_toolSystem.UseTool(tool, user, uid, component.Time.Seconds, component.WeldingQuality, new WeldFinishedEvent(), component.Fuel)) return false; // Log attempt @@ -140,10 +140,10 @@ public void SetWeldingTime(EntityUid uid, TimeSpan time, WeldableComponent? comp if (!_query.Resolve(uid, ref component)) return; - if (component.WeldingTime.Equals(time)) + if (component.Time.Equals(time)) return; - component.WeldingTime = time; + component.Time = time; Dirty(uid, component); } } diff --git a/Content.Shared/Traits/Assorted/Components/CyberEyesComponent.cs b/Content.Shared/Traits/Assorted/Components/CyberEyesComponent.cs new file mode 100644 index 0000000000..7009077e9c --- /dev/null +++ b/Content.Shared/Traits/Assorted/Components/CyberEyesComponent.cs @@ -0,0 +1,11 @@ +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/PermanentBlindnessComponent.cs b/Content.Shared/Traits/Assorted/Components/PermanentBlindnessComponent.cs index c1bf7e1639..c10b05ae02 100644 --- a/Content.Shared/Traits/Assorted/Components/PermanentBlindnessComponent.cs +++ b/Content.Shared/Traits/Assorted/Components/PermanentBlindnessComponent.cs @@ -8,5 +8,7 @@ namespace Content.Shared.Traits.Assorted.Components; [RegisterComponent, NetworkedComponent] public sealed partial class PermanentBlindnessComponent : Component { + [ViewVariables(VVAccess.ReadWrite), DataField] + public int Blindness = 0; // How damaged should their eyes be. Set 0 for maximum damage. } diff --git a/Content.Server/Traits/Assorted/SelfAwareComponent.cs b/Content.Shared/Traits/Assorted/Components/SelfAwareComponent.cs similarity index 91% rename from Content.Server/Traits/Assorted/SelfAwareComponent.cs rename to Content.Shared/Traits/Assorted/Components/SelfAwareComponent.cs index 03f5cd1550..fa2485ac48 100644 --- a/Content.Server/Traits/Assorted/SelfAwareComponent.cs +++ b/Content.Shared/Traits/Assorted/Components/SelfAwareComponent.cs @@ -1,13 +1,14 @@ using Content.Shared.Damage.Prototypes; using Content.Shared.FixedPoint; +using Robust.Shared.GameStates; using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype.Set; -namespace Content.Server.Traits.Assorted; +namespace Content.Shared.Traits.Assorted.Components; /// /// This is used for the Self-Aware trait to enhance the information received from HealthExaminableSystem. /// -[RegisterComponent] +[RegisterComponent, NetworkedComponent] public sealed partial class SelfAwareComponent : Component { // diff --git a/Content.Shared/Traits/Assorted/Components/SingerComponent.cs b/Content.Shared/Traits/Assorted/Components/SingerComponent.cs index 9c79166ef6..f36969e742 100644 --- a/Content.Shared/Traits/Assorted/Components/SingerComponent.cs +++ b/Content.Shared/Traits/Assorted/Components/SingerComponent.cs @@ -11,6 +11,9 @@ public sealed partial class SingerComponent : Component [DataField(required: true), AutoNetworkedField] public ProtoId Proto = string.Empty; + [DataField(serverOnly: true)] + public EntProtoId? MidiActionId = "ActionHarpyPlayMidi"; + [DataField(serverOnly: true)] public EntityUid? MidiAction; } diff --git a/Content.Shared/Traits/Assorted/Prototypes/SingerInstrumentPrototype.cs b/Content.Shared/Traits/Assorted/Prototypes/SingerInstrumentPrototype.cs index 6a49854f6e..e1fa696d79 100644 --- a/Content.Shared/Traits/Assorted/Prototypes/SingerInstrumentPrototype.cs +++ b/Content.Shared/Traits/Assorted/Prototypes/SingerInstrumentPrototype.cs @@ -1,9 +1,10 @@ +using Content.Shared.Instruments; using Robust.Shared.Prototypes; namespace Content.Shared.Traits.Assorted.Prototypes; [Prototype("SingerInstrument")] -public sealed class SingerInstrumentPrototype : IPrototype +public sealed partial class SingerInstrumentPrototype : IPrototype { [IdDataField] public string ID { get; private set; } = default!; @@ -27,7 +28,7 @@ public sealed class SingerInstrumentPrototype : IPrototype /// The BUI configuration for the instrument. /// [DataField] - public PrototypeData? MidiUi; + public InstrumentUiKey? MidiUi; // The below is server only, as it uses a server-BUI event !type [DataField(serverOnly: true, required: true)] diff --git a/Content.Shared/Traits/Assorted/Systems/CyberEyesSystem.cs b/Content.Shared/Traits/Assorted/Systems/CyberEyesSystem.cs new file mode 100644 index 0000000000..2dde437972 --- /dev/null +++ b/Content.Shared/Traits/Assorted/Systems/CyberEyesSystem.cs @@ -0,0 +1,21 @@ +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/PermanentBlindnessSystem.cs b/Content.Shared/Traits/Assorted/Systems/PermanentBlindnessSystem.cs index 113939f66b..21faf7d50b 100644 --- a/Content.Shared/Traits/Assorted/Systems/PermanentBlindnessSystem.cs +++ b/Content.Shared/Traits/Assorted/Systems/PermanentBlindnessSystem.cs @@ -2,6 +2,7 @@ using Content.Shared.Eye.Blinding.Components; using Content.Shared.Eye.Blinding.Systems; using Content.Shared.IdentityManagement; +using Content.Shared.Traits.Assorted.Components; using Robust.Shared.Network; namespace Content.Shared.Traits.Assorted.Systems; @@ -18,15 +19,14 @@ public sealed class PermanentBlindnessSystem : EntitySystem /// public override void Initialize() { - SubscribeLocalEvent(OnStartup); - SubscribeLocalEvent(OnShutdown); - SubscribeLocalEvent(OnDamageChanged); - SubscribeLocalEvent(OnExamined); + SubscribeLocalEvent(OnMapInit); + SubscribeLocalEvent(OnShutdown); + SubscribeLocalEvent(OnExamined); } private void OnExamined(Entity blindness, ref ExaminedEvent args) { - if (args.IsInDetailsRange && !_net.IsClient) + if (args.IsInDetailsRange && !_net.IsClient && blindness.Comp.Blindness == 0) { args.PushMarkup(Loc.GetString("trait-examined-Blindness", ("target", Identity.Entity(blindness, EntityManager)))); } @@ -37,28 +37,17 @@ private void OnShutdown(Entity blindness _blinding.UpdateIsBlind(blindness.Owner); } - private void OnStartup(Entity blindness, ref ComponentStartup args) + private void OnMapInit(Entity blindness, ref MapInitEvent args) { if (!_entityManager.TryGetComponent(blindness, out var blindable)) return; - var damageToDeal = (int) BlurryVisionComponent.MaxMagnitude - blindable.EyeDamage; - - if (damageToDeal <= 0) - return; - - _blinding.AdjustEyeDamage(blindness.Owner, damageToDeal); - } - - private void OnDamageChanged(Entity blindness, ref EyeDamageChangedEvent args) - { - if (args.Damage >= BlurryVisionComponent.MaxMagnitude) - return; - - if (!_entityManager.TryGetComponent(blindness, out var blindable)) - return; - - var damageRestoration = (int) BlurryVisionComponent.MaxMagnitude - args.Damage; - _blinding.AdjustEyeDamage(blindness.Owner, damageRestoration); + if (blindness.Comp.Blindness != 0) + _blinding.SetMinDamage(new Entity(blindness.Owner, blindable), blindness.Comp.Blindness); + else + { + var maxMagnitudeInt = (int) BlurryVisionComponent.MaxMagnitude; + _blinding.SetMinDamage(new Entity(blindness.Owner, blindable), maxMagnitudeInt); + } } } diff --git a/Content.Shared/Traits/Assorted/Systems/SharedSingerSystem.cs b/Content.Shared/Traits/Assorted/Systems/SharedSingerSystem.cs index 08d0f5c76d..56f76af9bb 100644 --- a/Content.Shared/Traits/Assorted/Systems/SharedSingerSystem.cs +++ b/Content.Shared/Traits/Assorted/Systems/SharedSingerSystem.cs @@ -33,15 +33,12 @@ private void OnStartup(Entity ent, ref ComponentStartup args) if (!ProtoMan.TryIndex(ent.Comp.Proto, out var singer)) return; - _actionsSystem.AddAction(ent, ref ent.Comp.MidiAction, singer.MidiActionId); + _actionsSystem.AddAction(ent, ref ent.Comp.MidiAction, ent.Comp.MidiActionId); var instrumentComp = EnsureInstrumentComp(ent); var defaultData = singer.InstrumentList[singer.DefaultInstrument]; _instrument.SetInstrumentProgram(instrumentComp, defaultData.Item1, defaultData.Item2); SetUpSwappableInstrument(ent, singer); - - if (singer.MidiUi is {} uiData && !_ui.TryGetUi(ent, uiData.UiKey, out _)) - _ui.AddUi(ent.Owner, uiData); } private void OnShutdown(Entity ent, ref ComponentShutdown args) diff --git a/Content.Shared/Traits/Prototypes/TraitPrototype.cs b/Content.Shared/Traits/Prototypes/TraitPrototype.cs index 7bdff058ee..7c0e429a69 100644 --- a/Content.Shared/Traits/Prototypes/TraitPrototype.cs +++ b/Content.Shared/Traits/Prototypes/TraitPrototype.cs @@ -1,4 +1,5 @@ using Content.Shared.Customization.Systems; +using Content.Shared.Mood; using Content.Shared.Psionics; using Robust.Shared.Prototypes; using Robust.Shared.Utility; @@ -56,4 +57,34 @@ public sealed partial class TraitPrototype : IPrototype /// [DataField] public List? PsionicPowers { get; private set; } = default!; + + /// + /// The list of all Spoken Languages that this trait adds. + /// + [DataField] + public List? LanguagesSpoken { get; private set; } = default!; + + /// + /// The list of all Understood Languages that this trait adds. + /// + [DataField] + public List? LanguagesUnderstood { get; private set; } = default!; + + /// + /// The list of all Spoken Languages that this trait removes. + /// + [DataField] + public List? RemoveLanguagesSpoken { get; private set; } = default!; + + /// + /// The list of all Understood Languages that this trait removes. + /// + [DataField] + public List? RemoveLanguagesUnderstood { get; private set; } = default!; + + /// + /// The list of all Moodlets that this trait adds. + /// + [DataField] + public List>? MoodEffects { get; private set; } = default!; } diff --git a/Content.Shared/UserInterface/ActivatableUIComponent.cs b/Content.Shared/UserInterface/ActivatableUIComponent.cs new file mode 100644 index 0000000000..3f83816b7d --- /dev/null +++ b/Content.Shared/UserInterface/ActivatableUIComponent.cs @@ -0,0 +1,77 @@ +using Content.Shared.Whitelist; +using Robust.Shared.GameStates; +using Robust.Shared.Serialization.TypeSerializers.Implementations; + +namespace Content.Shared.UserInterface +{ + [RegisterComponent, NetworkedComponent, AutoGenerateComponentState] + public sealed partial class ActivatableUIComponent : Component + { + [DataField(required: true, customTypeSerializer: typeof(EnumSerializer))] + public Enum? Key; + + /// + /// Whether the item must be held in one of the user's hands to work. + /// This is ignored unless is true. + /// + [ViewVariables(VVAccess.ReadWrite)] + [DataField] + public bool InHandsOnly; + + [DataField] + public bool SingleUser; + + [ViewVariables(VVAccess.ReadWrite)] + [DataField] + public bool AdminOnly; + + [DataField] + public LocId VerbText = "ui-verb-toggle-open"; + + /// + /// Whether you need a hand to operate this UI. The hand does not need to be free, you just need to have one. + /// + /// + /// This should probably be true for most machines & computers, but there will still be UIs that represent a + /// more generic interaction / configuration that might not require hands. + /// + [ViewVariables(VVAccess.ReadWrite)] + [DataField] + public bool RequireHands = true; + + /// + /// Entities that are required to open this UI. + /// + [DataField, ViewVariables(VVAccess.ReadWrite)] + public EntityWhitelist? RequiredItems; + + /// + /// If true, then this UI can only be opened via verbs. I.e., normal interactions/activations will not open + /// the UI. + /// + [DataField, ViewVariables(VVAccess.ReadWrite)] + public bool VerbOnly; + + /// + /// Whether spectators (non-admin ghosts) should be allowed to view this UI. + /// + [ViewVariables(VVAccess.ReadWrite)] + [DataField] + public bool AllowSpectator = true; + + /// + /// Whether the item must be in the user's currently selected/active hand. + /// This is ignored unless is true. + /// + [ViewVariables(VVAccess.ReadWrite)] + [DataField] + public bool RequireActiveHand = true; + + /// + /// The client channel currently using the object, or null if there's none/not single user. + /// NOTE: DO NOT DIRECTLY SET, USE ActivatableUISystem.SetCurrentSingleUser + /// + [DataField, AutoNetworkedField] + public EntityUid? CurrentSingleUser; + } +} diff --git a/Content.Shared/UserInterface/ActivatableUIEvents.cs b/Content.Shared/UserInterface/ActivatableUIEvents.cs index 6e6b3f63c6..338673a3ca 100644 --- a/Content.Shared/UserInterface/ActivatableUIEvents.cs +++ b/Content.Shared/UserInterface/ActivatableUIEvents.cs @@ -24,12 +24,12 @@ public UserOpenActivatableUIAttemptEvent(EntityUid who, EntityUid target) public sealed class AfterActivatableUIOpenEvent : EntityEventArgs { public EntityUid User { get; } - public readonly ICommonSession Session; + public readonly EntityUid Actor; - public AfterActivatableUIOpenEvent(EntityUid who, ICommonSession session) + public AfterActivatableUIOpenEvent(EntityUid who, EntityUid actor) { User = who; - Session = session; + Actor = actor; } } diff --git a/Content.Shared/UserInterface/ActivatableUIRequiresPowerCellComponent.cs b/Content.Shared/UserInterface/ActivatableUIRequiresPowerCellComponent.cs new file mode 100644 index 0000000000..aa9e561e07 --- /dev/null +++ b/Content.Shared/UserInterface/ActivatableUIRequiresPowerCellComponent.cs @@ -0,0 +1,13 @@ +using Content.Shared.PowerCell; +using Robust.Shared.GameStates; + +namespace Content.Shared.UserInterface; + +/// +/// Specifies that the attached entity requires power. +/// +[RegisterComponent, NetworkedComponent] +public sealed partial class ActivatableUIRequiresPowerCellComponent : Component +{ + +} diff --git a/Content.Shared/UserInterface/ActivatableUISystem.Power.cs b/Content.Shared/UserInterface/ActivatableUISystem.Power.cs new file mode 100644 index 0000000000..b8a815c7a8 --- /dev/null +++ b/Content.Shared/UserInterface/ActivatableUISystem.Power.cs @@ -0,0 +1,93 @@ +using Content.Shared.PowerCell; +using Robust.Shared.Containers; + +namespace Content.Shared.UserInterface; + +public sealed partial class ActivatableUISystem +{ + [Dependency] private readonly SharedPowerCellSystem _cell = default!; + + private void InitializePower() + { + SubscribeLocalEvent(OnBatteryOpenAttempt); + SubscribeLocalEvent(OnBatteryOpened); + SubscribeLocalEvent(OnBatteryClosed); + + SubscribeLocalEvent(OnPowerCellRemoved); + } + + private void OnPowerCellRemoved(EntityUid uid, PowerCellDrawComponent component, EntRemovedFromContainerMessage args) + { + _cell.SetPowerCellDrawEnabled(uid, false); + + if (!HasComp(uid) || + !TryComp(uid, out ActivatableUIComponent? activatable)) + { + return; + } + + if (activatable.Key == null) + { + Log.Error($"Encountered null key in activatable ui on entity {ToPrettyString(uid)}"); + return; + } + + _uiSystem.CloseUi(uid, activatable.Key); + } + + private void OnBatteryOpened(EntityUid uid, ActivatableUIRequiresPowerCellComponent component, BoundUIOpenedEvent args) + { + var activatable = Comp(uid); + + if (!args.UiKey.Equals(activatable.Key)) + return; + + _cell.SetPowerCellDrawEnabled(uid, true); + } + + private void OnBatteryClosed(EntityUid uid, ActivatableUIRequiresPowerCellComponent component, BoundUIClosedEvent args) + { + var activatable = Comp(uid); + + if (!args.UiKey.Equals(activatable.Key)) + return; + + // Stop drawing power if this was the last person with the UI open. + if (!_uiSystem.IsUiOpen(uid, activatable.Key)) + _cell.SetPowerCellDrawEnabled(uid, false); + } + + /// + /// Call if you want to check if the UI should close due to a recent battery usage. + /// + public void CheckUsage(EntityUid uid, ActivatableUIComponent? active = null, ActivatableUIRequiresPowerCellComponent? component = null, PowerCellDrawComponent? draw = null) + { + if (!Resolve(uid, ref component, ref draw, ref active, false)) + return; + + if (active.Key == null) + { + Log.Error($"Encountered null key in activatable ui on entity {ToPrettyString(uid)}"); + return; + } + + if (_cell.HasActivatableCharge(uid)) + return; + + _uiSystem.CloseUi(uid, active.Key); + } + + private void OnBatteryOpenAttempt(EntityUid uid, ActivatableUIRequiresPowerCellComponent component, ActivatableUIOpenAttemptEvent args) + { + if (!TryComp(uid, out var draw)) + return; + + // Check if we have the appropriate drawrate / userate to even open it. + if (args.Cancelled || + !_cell.HasActivatableCharge(uid, draw, user: args.User) || + !_cell.HasDrawCharge(uid, draw, user: args.User)) + { + args.Cancel(); + } + } +} diff --git a/Content.Shared/UserInterface/ActivatableUISystem.cs b/Content.Shared/UserInterface/ActivatableUISystem.cs new file mode 100644 index 0000000000..3ac8835dd0 --- /dev/null +++ b/Content.Shared/UserInterface/ActivatableUISystem.cs @@ -0,0 +1,332 @@ +using Content.Shared.ActionBlocker; +using Content.Shared.Administration.Managers; +using Content.Shared.Ghost; +using Content.Shared.Hands; +using Content.Shared.Hands.Components; +using Content.Shared.Hands.EntitySystems; +using Content.Shared.Interaction; +using Content.Shared.Interaction.Events; +using Content.Shared.Popups; +using Content.Shared.Verbs; +using Robust.Shared.Containers; + +namespace Content.Shared.UserInterface; + +public sealed partial class ActivatableUISystem : EntitySystem +{ + [Dependency] private readonly ISharedAdminManager _adminManager = default!; + [Dependency] private readonly ActionBlockerSystem _blockerSystem = default!; + [Dependency] private readonly SharedUserInterfaceSystem _uiSystem = default!; + [Dependency] private readonly SharedPopupSystem _popupSystem = default!; + [Dependency] private readonly SharedHandsSystem _hands = default!; + [Dependency] private readonly SharedContainerSystem _container = default!; + [Dependency] private readonly SharedInteractionSystem _interaction = default!; + + private readonly List _toClose = new(); + + public override void Initialize() + { + base.Initialize(); + + SubscribeLocalEvent(OnUseInHand); + SubscribeLocalEvent(OnActivate); + SubscribeLocalEvent(OnInteractUsing); + SubscribeLocalEvent(OnHandDeselected); + SubscribeLocalEvent(OnHandUnequipped); + SubscribeLocalEvent(OnUIClose); + SubscribeLocalEvent>(GetActivationVerb); + SubscribeLocalEvent>(GetVerb); + + // TODO ActivatableUI + // Add UI-user component, and listen for user container changes. + // I.e., should lose a computer UI if a player gets shut into a locker. + SubscribeLocalEvent(OnGotInserted); + SubscribeLocalEvent(OnGotRemoved); + + SubscribeLocalEvent(OnBoundInterfaceInteractAttempt); + SubscribeLocalEvent(OnActionPerform); + + InitializePower(); + } + + private void OnBoundInterfaceInteractAttempt(BoundUserInterfaceMessageAttempt ev) + { + if (!TryComp(ev.Target, out ActivatableUIComponent? comp)) + return; + + if (!comp.RequireHands) + return; + + if (!TryComp(ev.Actor, out HandsComponent? hands) || hands.Hands.Count == 0) + ev.Cancel(); + } + + private void OnActionPerform(EntityUid uid, UserInterfaceComponent component, OpenUiActionEvent args) + { + if (args.Handled || args.Key == null) + return; + + args.Handled = _uiSystem.TryToggleUi(uid, args.Key, args.Performer); + } + + + private void GetActivationVerb(EntityUid uid, ActivatableUIComponent component, GetVerbsEvent args) + { + if (component.VerbOnly || !ShouldAddVerb(uid, component, args)) + return; + + args.Verbs.Add(new ActivationVerb + { + // TODO VERBS add "open UI" icon + Act = () => InteractUI(args.User, uid, component), + Text = Loc.GetString(component.VerbText) + }); + } + + private void GetVerb(EntityUid uid, ActivatableUIComponent component, GetVerbsEvent args) + { + if (!component.VerbOnly || !ShouldAddVerb(uid, component, args)) + return; + + args.Verbs.Add(new Verb + { + // TODO VERBS add "open UI" icon + Act = () => InteractUI(args.User, uid, component), + Text = Loc.GetString(component.VerbText) + }); + } + + private bool ShouldAddVerb(EntityUid uid, ActivatableUIComponent component, GetVerbsEvent args) where T : Verb + { + if (!args.CanAccess) + return false; + + if (!component.RequiredItems?.IsValid(args.Using ?? default, EntityManager) ?? false) + return false; + + if (component.RequireHands) + { + if (args.Hands == null) + return false; + + if (component.InHandsOnly) + { + if (!_hands.IsHolding(args.User, uid, out var hand, args.Hands)) + return false; + + if (component.RequireActiveHand && args.Hands.ActiveHand != hand) + return false; + } + } + + return args.CanInteract || component.AllowSpectator && HasComp(args.User); + } + + private void OnUseInHand(EntityUid uid, ActivatableUIComponent component, UseInHandEvent args) + { + if (args.Handled) + return; + + if (component.VerbOnly) + return; + + if (component.RequiredItems != null) + return; + + args.Handled = InteractUI(args.User, uid, component); + } + + private void OnActivate(EntityUid uid, ActivatableUIComponent component, ActivateInWorldEvent args) + { + if (args.Handled) + return; + + if (component.VerbOnly) + return; + + if (component.RequiredItems != null) + return; + + args.Handled = InteractUI(args.User, uid, component); + } + + private void OnInteractUsing(EntityUid uid, ActivatableUIComponent component, InteractUsingEvent args) + { + if (args.Handled) + return; + + if (component.VerbOnly) + return; + + if (component.RequiredItems == null) + return; + + if (!component.RequiredItems.IsValid(args.Used, EntityManager)) + return; + + args.Handled = InteractUI(args.User, uid, component); + } + + private void OnUIClose(EntityUid uid, ActivatableUIComponent component, BoundUIClosedEvent args) + { + var user = args.Actor; + + if (user != component.CurrentSingleUser) + return; + + if (!Equals(args.UiKey, component.Key)) + return; + + SetCurrentSingleUser(uid, null, component); + } + + private bool InteractUI(EntityUid user, EntityUid uiEntity, ActivatableUIComponent aui) + { + if (aui.Key == null || !_uiSystem.HasUi(uiEntity, aui.Key)) + return false; + + if (_uiSystem.IsUiOpen(uiEntity, aui.Key, user)) + { + _uiSystem.CloseUi(uiEntity, aui.Key, user); + return true; + } + + if (!_blockerSystem.CanInteract(user, uiEntity) && (!aui.AllowSpectator || !HasComp(user))) + return false; + + if (aui.RequireHands) + { + if (!TryComp(user, out HandsComponent? hands)) + return false; + + if (aui.InHandsOnly) + { + if (!_hands.IsHolding(user, uiEntity, out var hand, hands)) + return false; + + if (aui.RequireActiveHand && hands.ActiveHand != hand) + return false; + } + } + + if (aui.AdminOnly && !_adminManager.IsAdmin(user)) + return false; + + if (aui.SingleUser && aui.CurrentSingleUser != null && user != aui.CurrentSingleUser) + { + var message = Loc.GetString("machine-already-in-use", ("machine", uiEntity)); + _popupSystem.PopupEntity(message, uiEntity, user); + + if (_uiSystem.IsUiOpen(uiEntity, aui.Key)) + return true; + + Log.Error($"Activatable UI has user without being opened? Entity: {ToPrettyString(uiEntity)}. User: {aui.CurrentSingleUser}, Key: {aui.Key}"); + } + + // If we've gotten this far, fire a cancellable event that indicates someone is about to activate this. + // This is so that stuff can require further conditions (like power). + var oae = new ActivatableUIOpenAttemptEvent(user); + var uae = new UserOpenActivatableUIAttemptEvent(user, uiEntity); + RaiseLocalEvent(user, uae); + RaiseLocalEvent(uiEntity, oae); + if (oae.Cancelled || uae.Cancelled) + return false; + + // Give the UI an opportunity to prepare itself if it needs to do anything + // before opening + var bae = new BeforeActivatableUIOpenEvent(user); + RaiseLocalEvent(uiEntity, bae); + + SetCurrentSingleUser(uiEntity, user, aui); + _uiSystem.OpenUi(uiEntity, aui.Key, user); + + //Let the component know a user opened it so it can do whatever it needs to do + var aae = new AfterActivatableUIOpenEvent(user, user); + RaiseLocalEvent(uiEntity, aae); + + return true; + } + + public void SetCurrentSingleUser(EntityUid uid, EntityUid? user, ActivatableUIComponent? aui = null) + { + if (!Resolve(uid, ref aui)) + return; + + if (!aui.SingleUser) + return; + + aui.CurrentSingleUser = user; + Dirty(uid, aui); + + RaiseLocalEvent(uid, new ActivatableUIPlayerChangedEvent()); + } + + public void CloseAll(EntityUid uid, ActivatableUIComponent? aui = null) + { + if (!Resolve(uid, ref aui, false)) + return; + + if (aui.Key == null) + { + Log.Error($"Encountered null key in activatable ui on entity {ToPrettyString(uid)}"); + return; + } + + _uiSystem.CloseUi(uid, aui.Key); + } + + private void OnHandDeselected(Entity ent, ref HandDeselectedEvent args) + { + if (ent.Comp.RequireHands && ent.Comp.InHandsOnly && ent.Comp.RequireActiveHand) + CloseAll(ent, ent); + } + + private void OnHandUnequipped(Entity ent, ref GotUnequippedHandEvent args) + { + if (ent.Comp.RequireHands && ent.Comp.InHandsOnly) + CloseAll(ent, ent); + } + + private void OnGotInserted(Entity ent, ref EntGotInsertedIntoContainerMessage args) + { + CheckAccess((ent, ent)); + } + + private void OnGotRemoved(Entity ent, ref EntGotRemovedFromContainerMessage args) + { + CheckAccess((ent, ent)); + } + + public void CheckAccess(Entity ent) + { + if (!Resolve(ent, ref ent.Comp)) + return; + + if (ent.Comp.Key == null) + { + Log.Error($"Encountered null key in activatable ui on entity {ToPrettyString(ent)}"); + return; + } + + foreach (var user in _uiSystem.GetActors(ent.Owner, ent.Comp.Key)) + { + if (!_container.IsInSameOrParentContainer(user, ent) + && !_interaction.CanAccessViaStorage(user, ent)) + { + _toClose.Add(user); + continue; + + } + + if (!_interaction.InRangeUnobstructed(user, ent)) + _toClose.Add(user); + } + + foreach (var user in _toClose) + { + _uiSystem.CloseUi(ent.Owner, ent.Comp.Key, user); + } + + _toClose.Clear(); + } +} diff --git a/Content.Shared/Verbs/SharedVerbSystem.cs b/Content.Shared/Verbs/SharedVerbSystem.cs index 9dda910f3f..60714aea8f 100644 --- a/Content.Shared/Verbs/SharedVerbSystem.cs +++ b/Content.Shared/Verbs/SharedVerbSystem.cs @@ -55,13 +55,21 @@ public SortedSet GetLocalVerbs(EntityUid target, EntityUid user, Type type return GetLocalVerbs(target, user, new List() { type }, force); } + /// + public SortedSet GetLocalVerbs(EntityUid target, EntityUid user, List types, bool force = false) + { + return GetLocalVerbs(target, user, types, out _, force); + } + /// /// Raises a number of events in order to get all verbs of the given type(s) defined in local systems. This /// does not request verbs from the server. /// - public SortedSet GetLocalVerbs(EntityUid target, EntityUid user, List types, bool force = false) + public SortedSet GetLocalVerbs(EntityUid target, EntityUid user, List types, + out List extraCategories, bool force = false) { SortedSet verbs = new(); + extraCategories = new(); // accessibility checks bool canAccess = false; @@ -108,7 +116,7 @@ public SortedSet GetLocalVerbs(EntityUid target, EntityUid user, List(user, target, @using, hands, canInteract, canAccess); + var verbEvent = new GetVerbsEvent(user, target, @using, hands, canInteract, canAccess, extraCategories); RaiseLocalEvent(target, verbEvent, true); verbs.UnionWith(verbEvent.Verbs); } @@ -117,35 +125,35 @@ public SortedSet GetLocalVerbs(EntityUid target, EntityUid user, List(user, target, @using, hands, canInteract, canAccess); + var verbEvent = new GetVerbsEvent(user, target, @using, hands, canInteract, canAccess, extraCategories); RaiseLocalEvent(@using.Value, verbEvent, true); // directed at used, not at target verbs.UnionWith(verbEvent.Verbs); } if (types.Contains(typeof(InnateVerb))) { - var verbEvent = new GetVerbsEvent(user, target, @using, hands, canInteract, canAccess); + var verbEvent = new GetVerbsEvent(user, target, @using, hands, canInteract, canAccess, extraCategories); RaiseLocalEvent(user, verbEvent, true); verbs.UnionWith(verbEvent.Verbs); } if (types.Contains(typeof(AlternativeVerb))) { - var verbEvent = new GetVerbsEvent(user, target, @using, hands, canInteract, canAccess); + var verbEvent = new GetVerbsEvent(user, target, @using, hands, canInteract, canAccess, extraCategories); RaiseLocalEvent(target, verbEvent, true); verbs.UnionWith(verbEvent.Verbs); } if (types.Contains(typeof(ActivationVerb))) { - var verbEvent = new GetVerbsEvent(user, target, @using, hands, canInteract, canAccess); + var verbEvent = new GetVerbsEvent(user, target, @using, hands, canInteract, canAccess, extraCategories); RaiseLocalEvent(target, verbEvent, true); verbs.UnionWith(verbEvent.Verbs); } if (types.Contains(typeof(ExamineVerb))) { - var verbEvent = new GetVerbsEvent(user, target, @using, hands, canInteract, canAccess); + var verbEvent = new GetVerbsEvent(user, target, @using, hands, canInteract, canAccess, extraCategories); RaiseLocalEvent(target, verbEvent, true); verbs.UnionWith(verbEvent.Verbs); } @@ -153,7 +161,7 @@ public SortedSet GetLocalVerbs(EntityUid target, EntityUid user, List(user, target, @using, hands, canInteract, canAccess); + var verbEvent = new GetVerbsEvent(user, target, @using, hands, canInteract, canAccess, extraCategories); RaiseLocalEvent(target, verbEvent, true); verbs.UnionWith(verbEvent.Verbs); } @@ -161,7 +169,7 @@ public SortedSet GetLocalVerbs(EntityUid target, EntityUid user, List(user, target, @using, hands, canInteract, access); + var verbEvent = new GetVerbsEvent(user, target, @using, hands, canInteract, access, extraCategories); RaiseLocalEvent(target, verbEvent); verbs.UnionWith(verbEvent.Verbs); } diff --git a/Content.Shared/Verbs/VerbCategory.cs b/Content.Shared/Verbs/VerbCategory.cs index 748570b025..3331cad30b 100644 --- a/Content.Shared/Verbs/VerbCategory.cs +++ b/Content.Shared/Verbs/VerbCategory.cs @@ -84,6 +84,8 @@ public VerbCategory(string text, string? icon, bool iconsOnly = false) public static readonly VerbCategory SelectType = new("verb-categories-select-type", null); + public static readonly VerbCategory PowerLevel = new("verb-categories-power-level", null); + public static readonly VerbCategory Interaction = new("verb-categories-interaction", null); } } diff --git a/Content.Shared/Verbs/VerbEvents.cs b/Content.Shared/Verbs/VerbEvents.cs index 9a09d5d7a1..6b3fd327c9 100644 --- a/Content.Shared/Verbs/VerbEvents.cs +++ b/Content.Shared/Verbs/VerbEvents.cs @@ -77,6 +77,13 @@ public sealed class GetVerbsEvent : EntityEventArgs where TVerb : Verb /// public readonly SortedSet Verbs = new(); + /// + /// Additional verb categories to show in the pop-up menu, even if there are no verbs currently associated + /// with that category. This is mainly useful to prevent verb menu pop-in. E.g., admins will get admin/debug + /// related verbs on entities, even though most of those verbs are all defined server-side. + /// + public readonly List ExtraCategories; + /// /// Can the user physically access the target? /// @@ -123,7 +130,7 @@ public sealed class GetVerbsEvent : EntityEventArgs where TVerb : Verb /// public readonly EntityUid? Using; - public GetVerbsEvent(EntityUid user, EntityUid target, EntityUid? @using, HandsComponent? hands, bool canInteract, bool canAccess) + public GetVerbsEvent(EntityUid user, EntityUid target, EntityUid? @using, HandsComponent? hands, bool canInteract, bool canAccess, List extraCategories) { User = user; Target = target; @@ -131,6 +138,7 @@ public GetVerbsEvent(EntityUid user, EntityUid target, EntityUid? @using, HandsC Hands = hands; CanAccess = canAccess; CanInteract = canInteract; + ExtraCategories = extraCategories; } } } diff --git a/Content.Shared/Wagging/WaggingComponent.cs b/Content.Shared/Wagging/WaggingComponent.cs index 76881827dd..70e7f009c7 100644 --- a/Content.Shared/Wagging/WaggingComponent.cs +++ b/Content.Shared/Wagging/WaggingComponent.cs @@ -17,9 +17,6 @@ public sealed partial class WaggingComponent : Component [DataField] public EntityUid? ActionEntity; - [DataField] - public ProtoId EmoteId = "WagTail"; - /// /// Suffix to add to get the animated marking. /// diff --git a/Content.Shared/Weapons/Melee/MeleeSoundSystem.cs b/Content.Shared/Weapons/Melee/MeleeSoundSystem.cs index 350642105a..315d752a2c 100644 --- a/Content.Shared/Weapons/Melee/MeleeSoundSystem.cs +++ b/Content.Shared/Weapons/Melee/MeleeSoundSystem.cs @@ -1,4 +1,5 @@ using Content.Shared.Weapons.Melee.Components; +using Content.Shared.Weapons.Melee.Events; using Robust.Shared.Audio; using Robust.Shared.Audio.Systems; diff --git a/Content.Shared/Weapons/Melee/MeleeWeaponComponent.cs b/Content.Shared/Weapons/Melee/MeleeWeaponComponent.cs index fce6b4fa4f..7fedf32213 100644 --- a/Content.Shared/Weapons/Melee/MeleeWeaponComponent.cs +++ b/Content.Shared/Weapons/Melee/MeleeWeaponComponent.cs @@ -1,3 +1,4 @@ +using Content.Shared.Contests; using Content.Shared.Damage; using Content.Shared.FixedPoint; using Robust.Shared.Audio; @@ -162,10 +163,32 @@ public sealed partial class MeleeWeaponComponent : Component [DataField, AutoNetworkedField] public SoundSpecifier SoundNoDamage { get; set; } = new SoundCollectionSpecifier("WeakHit"); + /// + /// Arguments for the MeleeContestInteractions constructor + /// + [DataField] + public ContestArgs ContestArgs = new ContestArgs + { + DoStaminaInteraction = true, + StaminaDisadvantage = true, + StaminaRangeModifier = 2, + StaminaOffset = 0.25f, + DoHealthInteraction = true, + HealthRangeModifier = 1.5f, + }; + // WD EDIT START [ViewVariables(VVAccess.ReadWrite), DataField, AutoNetworkedField] public bool CanBeBlocked = true; // WD EDIT END + + /// + /// If true, the weapon must be equipped for it to be used. + /// E.g boxing gloves must be equipped to your gloves, + /// not just held in your hand to be used. + /// + [DataField, AutoNetworkedField] + public bool MustBeEquippedToUse = false; } /// diff --git a/Content.Shared/Weapons/Melee/SharedMeleeWeaponSystem.cs b/Content.Shared/Weapons/Melee/SharedMeleeWeaponSystem.cs index efcd6d6b55..5af138bc8f 100644 --- a/Content.Shared/Weapons/Melee/SharedMeleeWeaponSystem.cs +++ b/Content.Shared/Weapons/Melee/SharedMeleeWeaponSystem.cs @@ -33,7 +33,7 @@ namespace Content.Shared.Weapons.Melee; -public abstract class SharedMeleeWeaponSystem : EntitySystem +public abstract partial class SharedMeleeWeaponSystem : EntitySystem { [Dependency] protected readonly ISharedAdminLogManager AdminLogger = default!; [Dependency] protected readonly ActionBlockerSystem Blocker = default!; @@ -170,49 +170,39 @@ private void OnStopAttack(StopAttackEvent msg, EntitySessionEventArgs args) private void OnLightAttack(LightAttackEvent msg, EntitySessionEventArgs args) { - var user = args.SenderSession.AttachedEntity; - - if (user == null) + if (args.SenderSession.AttachedEntity is not {} user) return; - if (!TryGetWeapon(user.Value, out var weaponUid, out var weapon) || + if (!TryGetWeapon(user, out var weaponUid, out var weapon) || weaponUid != GetEntity(msg.Weapon)) { return; } - AttemptAttack(args.SenderSession.AttachedEntity!.Value, weaponUid, weapon, msg, args.SenderSession); + AttemptAttack(user, weaponUid, weapon, msg, args.SenderSession); } private void OnHeavyAttack(HeavyAttackEvent msg, EntitySessionEventArgs args) { - if (args.SenderSession.AttachedEntity == null) - { + if (args.SenderSession.AttachedEntity is not {} user) return; - } - if (!TryGetWeapon(args.SenderSession.AttachedEntity.Value, out var weaponUid, out var weapon) || + if (!TryGetWeapon(user, out var weaponUid, out var weapon) || weaponUid != GetEntity(msg.Weapon)) { return; } - AttemptAttack(args.SenderSession.AttachedEntity.Value, weaponUid, weapon, msg, args.SenderSession); + AttemptAttack(user, weaponUid, weapon, msg, args.SenderSession); } private void OnDisarmAttack(DisarmAttackEvent msg, EntitySessionEventArgs args) { - if (args.SenderSession.AttachedEntity == null) - { + if (args.SenderSession.AttachedEntity is not {} user) return; - } - if (!TryGetWeapon(args.SenderSession.AttachedEntity.Value, out var weaponUid, out var weapon)) - { - return; - } - - AttemptAttack(args.SenderSession.AttachedEntity.Value, weaponUid, weapon, msg, args.SenderSession); + if (TryGetWeapon(user, out var weaponUid, out var weapon)) + AttemptAttack(user, weaponUid, weapon, msg, args.SenderSession); } /// @@ -226,6 +216,9 @@ public DamageSpecifier GetDamage(EntityUid uid, EntityUid user, MeleeWeaponCompo var ev = new GetMeleeDamageEvent(uid, new (component.Damage), new(), user); RaiseLocalEvent(uid, ref ev); + if (component.ContestArgs is not null) + ev.Damage *= _contests.ContestConstructor(user, component.ContestArgs); + return DamageSpecifier.ApplyModifierSets(ev.Damage, ev.Modifiers); } @@ -250,9 +243,7 @@ public FixedPoint2 GetHeavyDamageModifier(EntityUid uid, EntityUid user, MeleeWe return ev.DamageModifier * ev.Multipliers - * component.HeavyDamageBaseModifier - * _contests.StaminaContest(user, false, 2f) //Taking stamina damage reduces wide swing damage by up to 50% - / _contests.HealthContest(user, false, 0.8f); //Being injured grants up to 20% more wide swing damage + * component.HeavyDamageBaseModifier; } public bool TryGetWeapon(EntityUid entity, out EntityUid weaponUid, [NotNullWhen(true)] out MeleeWeaponComponent? melee) @@ -277,7 +268,10 @@ public bool TryGetWeapon(EntityUid entity, out EntityUid weaponUid, [NotNullWhen if (EntityManager.TryGetComponent(entity, out HandsComponent? hands) && hands.ActiveHandEntity is { } held) { - if (EntityManager.TryGetComponent(held, out melee)) + // Make sure the entity is a weapon AND it doesn't need + // to be equipped to be used (E.g boxing gloves). + if (EntityManager.TryGetComponent(held, out melee) && + !melee.MustBeEquippedToUse) { weaponUid = held; return true; @@ -342,23 +336,32 @@ private bool AttemptAttack(EntityUid user, EntityUid weaponUid, MeleeWeaponCompo var fireRateSwingModifier = 1f; + EntityUid? target = null; switch (attack) { case LightAttackEvent light: - var lightTarget = GetEntity(light.Target); + if (light.Target != null && !TryGetEntity(light.Target, out target)) + { + // Target was lightly attacked & deleted. + return false; + } - if (!Blocker.CanAttack(user, lightTarget, (weaponUid, weapon))) + if (!Blocker.CanAttack(user, target, (weaponUid, weapon))) return false; // Can't self-attack if you're the weapon - if (weaponUid == lightTarget) + if (weaponUid == target) return false; break; case DisarmAttackEvent disarm: - var disarmTarget = GetEntity(disarm.Target); + if (disarm.Target != null && !TryGetEntity(disarm.Target, out target)) + { + // Target was lightly attacked & deleted. + return false; + } - if (!Blocker.CanAttack(user, disarmTarget, (weaponUid, weapon), true)) + if (!Blocker.CanAttack(user, target, (weaponUid, weapon), true)) return false; break; case HeavyAttackEvent: @@ -441,9 +444,7 @@ private bool AttemptAttack(EntityUid user, EntityUid weaponUid, MeleeWeaponCompo protected virtual void DoLightAttack(EntityUid user, LightAttackEvent ev, EntityUid meleeUid, MeleeWeaponComponent component, ICommonSession? session) { - var damage = GetDamage(meleeUid, user, component) - * _contests.StaminaContest(user) //Taking stamina damage reduces light attack damage by up to 25% - / _contests.HealthContest(user, false, 0.8f); //Being injured grants up to 20% more damage; + var damage = GetDamage(meleeUid, user, component); var target = GetEntity(ev.Target); // For consistency with wide attacks stuff needs damageable. diff --git a/Content.Shared/Weapons/Ranged/Components/ActionGunComponent.cs b/Content.Shared/Weapons/Ranged/Components/ActionGunComponent.cs new file mode 100644 index 0000000000..112339efd7 --- /dev/null +++ b/Content.Shared/Weapons/Ranged/Components/ActionGunComponent.cs @@ -0,0 +1,37 @@ +using Content.Shared.Actions; +using Content.Shared.Weapons.Ranged.Systems; +using Robust.Shared.GameStates; +using Robust.Shared.Prototypes; + +namespace Content.Shared.Weapons.Ranged.Components; + +/// +/// Lets you shoot a gun using an action. +/// +[RegisterComponent, NetworkedComponent, Access(typeof(ActionGunSystem))] +public sealed partial class ActionGunComponent : Component +{ + /// + /// Action to create, must use . + /// + [DataField(required: true)] + public EntProtoId Action = string.Empty; + + [DataField] + public EntityUid? ActionEntity; + + /// + /// Prototype of gun entity to spawn. + /// Deleted when this component is removed. + /// + [DataField(required: true)] + public EntProtoId GunProto = string.Empty; + + [DataField] + public EntityUid? Gun; +} + +/// +/// Action event for to shoot at a position. +/// +public sealed partial class ActionGunShootEvent : WorldTargetActionEvent; diff --git a/Content.Shared/Weapons/Ranged/Components/GunWieldBonusComponent.cs b/Content.Shared/Weapons/Ranged/Components/GunWieldBonusComponent.cs index ce96639e3c..522319ccbd 100644 --- a/Content.Shared/Weapons/Ranged/Components/GunWieldBonusComponent.cs +++ b/Content.Shared/Weapons/Ranged/Components/GunWieldBonusComponent.cs @@ -33,4 +33,7 @@ public sealed partial class GunWieldBonusComponent : Component /// [DataField, AutoNetworkedField] public Angle AngleIncrease = Angle.FromDegrees(0); + + [DataField] + public LocId? WieldBonusExamineMessage = "gunwieldbonus-component-examine"; } diff --git a/Content.Shared/Weapons/Ranged/Events/MuzzleFlashEvent.cs b/Content.Shared/Weapons/Ranged/Events/MuzzleFlashEvent.cs index 91f5e6cd86..10d4c2fe3c 100644 --- a/Content.Shared/Weapons/Ranged/Events/MuzzleFlashEvent.cs +++ b/Content.Shared/Weapons/Ranged/Events/MuzzleFlashEvent.cs @@ -11,15 +11,12 @@ public sealed class MuzzleFlashEvent : EntityEventArgs public NetEntity Uid; public string Prototype; - /// - /// Should the effect match the rotation of the entity. - /// - public bool MatchRotation; + public Angle Angle; - public MuzzleFlashEvent(NetEntity uid, string prototype, bool matchRotation = false) + public MuzzleFlashEvent(NetEntity uid, string prototype, Angle angle) { Uid = uid; Prototype = prototype; - MatchRotation = matchRotation; + Angle = angle; } } diff --git a/Content.Shared/Weapons/Ranged/Systems/ActionGunSystem.cs b/Content.Shared/Weapons/Ranged/Systems/ActionGunSystem.cs new file mode 100644 index 0000000000..f3dfe8a2a0 --- /dev/null +++ b/Content.Shared/Weapons/Ranged/Systems/ActionGunSystem.cs @@ -0,0 +1,41 @@ +using Content.Shared.Actions; +using Content.Shared.Weapons.Ranged.Components; + +namespace Content.Shared.Weapons.Ranged.Systems; + +public sealed class ActionGunSystem : EntitySystem +{ + [Dependency] private readonly SharedActionsSystem _actions = default!; + [Dependency] private readonly SharedGunSystem _gun = default!; + + public override void Initialize() + { + base.Initialize(); + + SubscribeLocalEvent(OnMapInit); + SubscribeLocalEvent(OnShutdown); + SubscribeLocalEvent(OnShoot); + } + + private void OnMapInit(Entity ent, ref MapInitEvent args) + { + if (string.IsNullOrEmpty(ent.Comp.Action)) + return; + + _actions.AddAction(ent, ref ent.Comp.ActionEntity, ent.Comp.Action); + ent.Comp.Gun = Spawn(ent.Comp.GunProto); + } + + private void OnShutdown(Entity ent, ref ComponentShutdown args) + { + if (ent.Comp.Gun is {} gun) + QueueDel(gun); + } + + private void OnShoot(Entity ent, ref ActionGunShootEvent args) + { + if (TryComp(ent.Comp.Gun, out var gun)) + _gun.AttemptShoot(ent, ent.Comp.Gun.Value, gun, args.Target); + } +} + diff --git a/Content.Shared/Weapons/Ranged/Systems/SharedGunSystem.cs b/Content.Shared/Weapons/Ranged/Systems/SharedGunSystem.cs index 0a28576dff..c1acb2bce4 100644 --- a/Content.Shared/Weapons/Ranged/Systems/SharedGunSystem.cs +++ b/Content.Shared/Weapons/Ranged/Systems/SharedGunSystem.cs @@ -141,7 +141,6 @@ private void OnShootRequest(RequestShootEvent msg, EntitySessionEventArgs args) return; gun.ShootCoordinates = GetCoordinates(msg.Coordinates); - Log.Debug($"Set shoot coordinates to {gun.ShootCoordinates}"); gun.Target = GetEntity(msg.Target); AttemptShoot(user.Value, ent, gun); } @@ -201,7 +200,6 @@ private void StopShooting(EntityUid uid, GunComponent gun) if (gun.ShotCounter == 0) return; - Log.Debug($"Stopped shooting {ToPrettyString(uid)}"); gun.ShotCounter = 0; gun.ShootCoordinates = null; gun.Target = null; @@ -476,7 +474,7 @@ protected void RemoveShootable(EntityUid uid) RemCompDeferred(uid); } - protected void MuzzleFlash(EntityUid gun, AmmoComponent component, EntityUid? user = null) + protected void MuzzleFlash(EntityUid gun, AmmoComponent component, Angle worldAngle, EntityUid? user = null) { var attemptEv = new GunMuzzleFlashAttemptEvent(); RaiseLocalEvent(gun, ref attemptEv); @@ -488,7 +486,7 @@ protected void MuzzleFlash(EntityUid gun, AmmoComponent component, EntityUid? us if (sprite == null) return; - var ev = new MuzzleFlashEvent(GetNetEntity(gun), sprite, user == gun); + var ev = new MuzzleFlashEvent(GetNetEntity(gun), sprite, worldAngle); CreateEffect(gun, ev, user); } @@ -537,7 +535,7 @@ public void RefreshModifiers(Entity gun) Dirty(gun); } - protected abstract void CreateEffect(EntityUid uid, MuzzleFlashEvent message, EntityUid? user = null); + protected abstract void CreateEffect(EntityUid gunUid, MuzzleFlashEvent message, EntityUid? user = null); /// /// Used for animated effects on the client. diff --git a/Content.Shared/Weapons/Reflect/ReflectComponent.cs b/Content.Shared/Weapons/Reflect/ReflectComponent.cs index 8e7b8975d9..5d8432ac77 100644 --- a/Content.Shared/Weapons/Reflect/ReflectComponent.cs +++ b/Content.Shared/Weapons/Reflect/ReflectComponent.cs @@ -21,17 +21,42 @@ public sealed partial class ReflectComponent : Component [ViewVariables(VVAccess.ReadWrite), DataField("reflects")] public ReflectType Reflects = ReflectType.Energy | ReflectType.NonEnergy; + [DataField("spread"), ViewVariables(VVAccess.ReadWrite), AutoNetworkedField] + public Angle Spread = Angle.FromDegrees(45); + + [DataField("soundOnReflect")] + public SoundSpecifier? SoundOnReflect = new SoundPathSpecifier("/Audio/Weapons/Guns/Hits/laser_sear_wall.ogg"); + /// - /// Probability for a projectile to be reflected. + /// Is the deflection an innate power or something actively maintained? If true, this component grants a flat + /// deflection chance rather than a chance that degrades when moving/weightless/stunned/etc. + /// + [DataField] + public bool Innate = false; + + /// + /// Maximum probability for a projectile to be reflected. /// [DataField("reflectProb"), ViewVariables(VVAccess.ReadWrite), AutoNetworkedField] public float ReflectProb = 0.25f; - [DataField("spread"), ViewVariables(VVAccess.ReadWrite), AutoNetworkedField] - public Angle Spread = Angle.FromDegrees(45); + /// + /// The maximum velocity a wielder can move at before losing effectiveness. + /// + [DataField] + public float VelocityBeforeNotMaxProb = 2.5f; // Walking speed for a human. Suitable for a weightless deflector like an e-sword. - [DataField("soundOnReflect")] - public SoundSpecifier? SoundOnReflect = new SoundPathSpecifier("/Audio/Weapons/Guns/Hits/laser_sear_wall.ogg"); + /// + /// The velocity a wielder has to be moving at to use the minimum effectiveness value. + /// + [DataField] + public float VelocityBeforeMinProb = 4.5f; // Sprinting speed for a human. Suitable for a weightless deflector like an e-sword. + + /// + /// Minimum probability for a projectile to be reflected. + /// + [DataField] + public float MinReflectProb = 0.1f; } [Flags] diff --git a/Content.Shared/Weapons/Reflect/ReflectSystem.cs b/Content.Shared/Weapons/Reflect/ReflectSystem.cs index 4a7c2f6b6a..36dbedb4cb 100644 --- a/Content.Shared/Weapons/Reflect/ReflectSystem.cs +++ b/Content.Shared/Weapons/Reflect/ReflectSystem.cs @@ -1,17 +1,20 @@ using System.Diagnostics.CodeAnalysis; using System.Numerics; using Content.Shared.Administration.Logs; +using Content.Shared.Alert; using Content.Shared.Audio; +using Content.Shared.Damage.Components; using Content.Shared.Database; +using Content.Shared.Gravity; using Content.Shared.Hands; using Content.Shared.Inventory; using Content.Shared.Inventory.Events; using Content.Shared.Item.ItemToggle.Components; using Content.Shared.Popups; using Content.Shared.Projectiles; +using Content.Shared.Standing; using Content.Shared.Weapons.Ranged.Components; using Content.Shared.Weapons.Ranged.Events; -using Robust.Shared.Audio; using Robust.Shared.Audio.Systems; using Robust.Shared.Network; using Robust.Shared.Physics.Components; @@ -35,6 +38,9 @@ public sealed class ReflectSystem : EntitySystem [Dependency] private readonly SharedAudioSystem _audio = default!; [Dependency] private readonly SharedTransformSystem _transform = default!; [Dependency] private readonly InventorySystem _inventorySystem = default!; + [Dependency] private readonly SharedGravitySystem _gravity = default!; + [Dependency] private readonly StandingStateSystem _standing = default!; + [Dependency] private readonly AlertsSystem _alerts = default!; public override void Initialize() { @@ -57,7 +63,7 @@ private void OnReflectUserHitscan(EntityUid uid, ReflectUserComponent component, if (args.Reflected) return; - foreach (var ent in _inventorySystem.GetHandOrInventoryEntities(uid, SlotFlags.All & ~SlotFlags.POCKET)) + foreach (var ent in _inventorySystem.GetHandOrInventoryEntities(uid, SlotFlags.WITHOUT_POCKET)) { if (!TryReflectHitscan(uid, ent, args.Shooter, args.SourceItem, args.Direction, out var dir)) continue; @@ -70,7 +76,7 @@ private void OnReflectUserHitscan(EntityUid uid, ReflectUserComponent component, private void OnReflectUserCollide(EntityUid uid, ReflectUserComponent component, ref ProjectileReflectAttemptEvent args) { - foreach (var ent in _inventorySystem.GetHandOrInventoryEntities(uid, SlotFlags.All & ~SlotFlags.POCKET)) + foreach (var ent in _inventorySystem.GetHandOrInventoryEntities(uid, SlotFlags.WITHOUT_POCKET)) { if (!TryReflectProjectile(uid, ent, args.ProjUid)) continue; @@ -91,15 +97,20 @@ private void OnReflectCollide(EntityUid uid, ReflectComponent component, ref Pro private bool TryReflectProjectile(EntityUid user, EntityUid reflector, EntityUid projectile, ProjectileComponent? projectileComp = null, ReflectComponent? reflect = null) { - if (!Resolve(reflector, ref reflect, false) || + // Do we have the components needed to try a reflect at all? + if ( + !Resolve(reflector, ref reflect, false) || !reflect.Enabled || !TryComp(projectile, out var reflective) || (reflect.Reflects & reflective.Reflective) == 0x0 || - !_random.Prob(reflect.ReflectProb) || - !TryComp(projectile, out var physics)) - { + !TryComp(projectile, out var physics) || + TryComp(reflector, out var staminaComponent) && staminaComponent.Critical || + _standing.IsDown(reflector) + ) + return false; + + if (!_random.Prob(CalcReflectChance(reflector, reflect))) return false; - } var rotation = _random.NextAngle(-reflect.Spread / 2, reflect.Spread / 2).Opposite(); var existingVelocity = _physics.GetMapLinearVelocity(projectile, component: physics); @@ -137,6 +148,34 @@ private bool TryReflectProjectile(EntityUid user, EntityUid reflector, EntityUid return true; } + private float CalcReflectChance(EntityUid reflector, ReflectComponent reflect) + { + /* + * The rules of deflection are as follows: + * If you innately reflect things via magic, biology etc., you always have a full chance. + * If you are standing up and standing still, you're prepared to deflect and have full chance. + * If you have velocity, your deflection chance depends on your velocity, clamped. + * If you are floating, your chance is the minimum value possible. + * You cannot deflect if you are knocked down or stunned. + */ + + if (reflect.Innate) + return reflect.ReflectProb; + + if (_gravity.IsWeightless(reflector)) + return reflect.MinReflectProb; + + if (!TryComp(reflector, out var reflectorPhysics)) + return reflect.ReflectProb; + + return MathHelper.Lerp( + reflect.MinReflectProb, + reflect.ReflectProb, + // Inverse progression between velocities fed in as progression between probabilities. We go high -> low so the output here needs to be _inverted_. + 1 - Math.Clamp((reflectorPhysics.LinearVelocity.Length() - reflect.VelocityBeforeNotMaxProb) / (reflect.VelocityBeforeMinProb - reflect.VelocityBeforeNotMaxProb), 0, 1) + ); + } + private void OnReflectHitscan(EntityUid uid, ReflectComponent component, ref HitScanReflectAttemptEvent args) { if (args.Reflected || @@ -162,7 +201,14 @@ private bool TryReflectHitscan( { if (!TryComp(reflector, out var reflect) || !reflect.Enabled || - !_random.Prob(reflect.ReflectProb)) + TryComp(reflector, out var staminaComponent) && staminaComponent.Critical || + _standing.IsDown(reflector)) + { + newDirection = null; + return false; + } + + if (!_random.Prob(CalcReflectChance(reflector, reflect))) { newDirection = null; return false; @@ -191,6 +237,9 @@ private void OnReflectEquipped(EntityUid uid, ReflectComponent component, GotEqu return; EnsureComp(args.Equipee); + + if (component.Enabled) + EnableAlert(args.Equipee); } private void OnReflectUnequipped(EntityUid uid, ReflectComponent comp, GotUnequippedEvent args) @@ -204,6 +253,9 @@ private void OnReflectHandEquipped(EntityUid uid, ReflectComponent component, Go return; EnsureComp(args.User); + + if (component.Enabled) + EnableAlert(args.User); } private void OnReflectHandUnequipped(EntityUid uid, ReflectComponent component, GotUnequippedHandEvent args) @@ -215,6 +267,11 @@ private void OnToggleReflect(EntityUid uid, ReflectComponent comp, ref ItemToggl { comp.Enabled = args.Activated; Dirty(uid, comp); + + if (comp.Enabled) + EnableAlert(uid); + else + DisableAlert(uid); } /// @@ -222,15 +279,28 @@ private void OnToggleReflect(EntityUid uid, ReflectComponent comp, ref ItemToggl /// private void RefreshReflectUser(EntityUid user) { - foreach (var ent in _inventorySystem.GetHandOrInventoryEntities(user, SlotFlags.All & ~SlotFlags.POCKET)) + foreach (var ent in _inventorySystem.GetHandOrInventoryEntities(user, SlotFlags.WITHOUT_POCKET)) { if (!HasComp(ent)) continue; EnsureComp(user); + EnableAlert(user); + return; } RemCompDeferred(user); + DisableAlert(user); + } + + private void EnableAlert(EntityUid alertee) + { + _alerts.ShowAlert(alertee, AlertType.Deflecting); + } + + private void DisableAlert(EntityUid alertee) + { + _alerts.ClearAlert(alertee, AlertType.Deflecting); } } diff --git a/Content.Shared/Whitelist/EntityWhitelist.cs b/Content.Shared/Whitelist/EntityWhitelist.cs index 942de2b0e8..895759be95 100644 --- a/Content.Shared/Whitelist/EntityWhitelist.cs +++ b/Content.Shared/Whitelist/EntityWhitelist.cs @@ -1,100 +1,67 @@ +using Content.Shared.Item; using Content.Shared.Tag; +using Robust.Shared.Prototypes; using Robust.Shared.Serialization; -using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype.List; -namespace Content.Shared.Whitelist +namespace Content.Shared.Whitelist; + +/// +/// Used to determine whether an entity fits a certain whitelist. +/// Does not whitelist by prototypes, since that is undesirable; you're better off just adding a tag to all +/// entity prototypes that need to be whitelisted, and checking for that. +/// +/// +/// whitelist: +/// tags: +/// - Cigarette +/// - FirelockElectronics +/// components: +/// - Buckle +/// - AsteroidRock +/// sizes: +/// - Tiny +/// - Large +/// +[DataDefinition] +[Serializable, NetSerializable] +public sealed partial class EntityWhitelist { /// - /// Used to determine whether an entity fits a certain whitelist. - /// Does not whitelist by prototypes, since that is undesirable; you're better off just adding a tag to all - /// entity prototypes that need to be whitelisted, and checking for that. + /// Component names that are allowed in the whitelist. /// - /// - /// whitelist: - /// tags: - /// - Cigarette - /// - FirelockElectronics - /// components: - /// - Buckle - /// - AsteroidRock - /// - [DataDefinition] - [Serializable, NetSerializable] - public sealed partial class EntityWhitelist - { - /// - /// Component names that are allowed in the whitelist. - /// - [DataField("components")] public string[]? Components = null; - // TODO yaml validation - - [NonSerialized] - private List? _registrations = null; + [DataField] public string[]? Components; + // TODO yaml validation - /// - /// Tags that are allowed in the whitelist. - /// - [DataField("tags", customTypeSerializer:typeof(PrototypeIdListSerializer))] - public List? Tags = null; - - /// - /// If false, an entity only requires one of these components or tags to pass the whitelist. If true, an - /// entity requires to have ALL of these components and tags to pass. - /// - [DataField("requireAll")] - public bool RequireAll = false; + /// + /// Item sizes that are allowed in the whitelist. + /// + [DataField] + public List>? Sizes; - public void UpdateRegistrations() - { - if (Components == null) return; + [NonSerialized, Access(typeof(EntityWhitelistSystem))] + public List? Registrations; - var compfact = IoCManager.Resolve(); - _registrations = new List(); - foreach (var name in Components) - { - var availability = compfact.GetComponentAvailability(name); - if (compfact.TryGetRegistration(name, out var registration) - && availability == ComponentAvailability.Available) - { - _registrations.Add(registration); - } - else if (availability == ComponentAvailability.Unknown) - { - Logger.Warning($"Unknown component name {name} passed to EntityWhitelist!"); - } - } - } + /// + /// Tags that are allowed in the whitelist. + /// + [DataField] + public List>? Tags; - /// - /// Returns whether a given entity fits the whitelist. - /// - public bool IsValid(EntityUid uid, IEntityManager? entityManager = null) - { - if (Components != null && _registrations == null) - UpdateRegistrations(); + /// + /// If false, an entity only requires one of these components or tags to pass the whitelist. If true, an + /// entity requires to have ALL of these components and tags to pass. + /// The "Sizes" criteria will ignores this, since an item can only have one size. + /// + [DataField] + public bool RequireAll; - IoCManager.Resolve(ref entityManager); - if (_registrations != null) - { - foreach (var reg in _registrations) - { - if (entityManager.HasComponent(uid, reg.Type)) - { - if (!RequireAll) - return true; - } - else if (RequireAll) - return false; - } - } + [Obsolete("Use WhitelistSystem")] + public bool IsValid(EntityUid uid, IEntityManager? man = null) + { + var sys = man?.System() ?? + IoCManager.Resolve().GetEntitySystem(); - if (Tags != null && entityManager.TryGetComponent(uid, out TagComponent? tags)) - { - var tagSystem = entityManager.System(); - return RequireAll ? tagSystem.HasAllTags(tags, Tags) : tagSystem.HasAnyTag(tags, Tags); - } + return sys.IsValid(this, uid); - return false; - } } } diff --git a/Content.Shared/Whitelist/EntityWhitelistSystem.cs b/Content.Shared/Whitelist/EntityWhitelistSystem.cs new file mode 100644 index 0000000000..d73646b7e9 --- /dev/null +++ b/Content.Shared/Whitelist/EntityWhitelistSystem.cs @@ -0,0 +1,84 @@ +using System.Diagnostics.CodeAnalysis; +using Content.Shared.Item; +using Content.Shared.Tag; + +namespace Content.Shared.Whitelist; + +public sealed class EntityWhitelistSystem : EntitySystem +{ + [Dependency] private readonly IComponentFactory _factory = default!; + [Dependency] private readonly TagSystem _tag = default!; + + private EntityQuery _itemQuery; + + public override void Initialize() + { + base.Initialize(); + _itemQuery = GetEntityQuery(); + } + + /// + public bool IsValid(EntityWhitelist list, [NotNullWhen(true)] EntityUid? uid) + { + return uid != null && IsValid(list, uid.Value); + } + + /// + /// Checks whether a given entity satisfies a whitelist. + /// + public bool IsValid(EntityWhitelist list, EntityUid uid) + { + if (list.Components != null) + EnsureRegistrations(list); + + if (list.Registrations != null) + { + foreach (var reg in list.Registrations) + { + if (HasComp(uid, reg.Type)) + { + if (!list.RequireAll) + return true; + } + else if (list.RequireAll) + return false; + } + } + + if (list.Sizes != null && _itemQuery.TryComp(uid, out var itemComp)) + { + if (list.Sizes.Contains(itemComp.Size)) + return true; + } + + if (list.Tags != null) + { + return list.RequireAll + ? _tag.HasAllTags(uid, list.Tags) + : _tag.HasAnyTag(uid, list.Tags); + } + + return list.RequireAll; + } + + private void EnsureRegistrations(EntityWhitelist list) + { + if (list.Components == null) + return; + + list.Registrations = new List(); + foreach (var name in list.Components) + { + var availability = _factory.GetComponentAvailability(name); + if (_factory.TryGetRegistration(name, out var registration) + && availability == ComponentAvailability.Available) + { + list.Registrations.Add(registration); + } + else if (availability == ComponentAvailability.Unknown) + { + Log.Warning($"Unknown component name {name} passed to EntityWhitelist!"); + } + } + } +} diff --git a/Content.Shared/Wieldable/Components/WieldableComponent.cs b/Content.Shared/Wieldable/Components/WieldableComponent.cs index 4a50b93072..5dc6abbbbe 100644 --- a/Content.Shared/Wieldable/Components/WieldableComponent.cs +++ b/Content.Shared/Wieldable/Components/WieldableComponent.cs @@ -26,6 +26,13 @@ public sealed partial class WieldableComponent : Component [AutoNetworkedField, DataField("wielded")] public bool Wielded = false; + /// + /// Whether using the item inhand while wielding causes the item to unwield. + /// Unwielding can conflict with other inhand actions. + /// + [DataField] + public bool UnwieldOnUse = true; + [DataField("wieldedInhandPrefix")] public string? WieldedInhandPrefix = "wielded"; diff --git a/Content.Shared/Wieldable/WieldableSystem.cs b/Content.Shared/Wieldable/WieldableSystem.cs index 4cdb23a376..a337a512ed 100644 --- a/Content.Shared/Wieldable/WieldableSystem.cs +++ b/Content.Shared/Wieldable/WieldableSystem.cs @@ -1,3 +1,4 @@ +using Content.Shared.Examine; using Content.Shared.Hands; using Content.Shared.Hands.Components; using Content.Shared.Hands.EntitySystems; @@ -45,6 +46,7 @@ public override void Initialize() SubscribeLocalEvent(OnGunWielded); SubscribeLocalEvent(OnGunUnwielded); SubscribeLocalEvent(OnGunRefreshModifiers); + SubscribeLocalEvent(OnExamine); SubscribeLocalEvent(OnGetMeleeDamage); } @@ -90,6 +92,12 @@ private void OnGunRefreshModifiers(Entity bonus, ref Gun } } + private void OnExamine(EntityUid uid, GunWieldBonusComponent component, ref ExaminedEvent args) + { + if (component.WieldBonusExamineMessage != null) + args.PushText(Loc.GetString(component.WieldBonusExamineMessage)); + } + private void AddToggleWieldVerb(EntityUid uid, WieldableComponent component, GetVerbsEvent args) { if (args.Hands == null || !args.CanAccess || !args.CanInteract) @@ -120,7 +128,7 @@ private void OnUseInHand(EntityUid uid, WieldableComponent component, UseInHandE if (!component.Wielded) args.Handled = TryWield(uid, component, args.User); - else + else if (component.UnwieldOnUse) args.Handled = TryUnwield(uid, component, args.User); } diff --git a/Content.Shared/Xenoarchaeology/Equipment/SharedArtifactAnalyzer.cs b/Content.Shared/Xenoarchaeology/Equipment/SharedArtifactAnalyzer.cs index cecacceda9..07f2a60c84 100644 --- a/Content.Shared/Xenoarchaeology/Equipment/SharedArtifactAnalyzer.cs +++ b/Content.Shared/Xenoarchaeology/Equipment/SharedArtifactAnalyzer.cs @@ -30,50 +30,40 @@ public sealed class AnalysisConsoleExtractButtonPressedMessage : BoundUserInterf } [Serializable, NetSerializable] -public sealed class AnalysisConsoleScanUpdateState : BoundUserInterfaceState +public sealed class AnalysisConsoleBiasButtonPressedMessage(bool isDown) : BoundUserInterfaceMessage { - public NetEntity? Artifact; - - public bool AnalyzerConnected; - - public bool ServerConnected; - - public bool CanScan; - - public bool CanPrint; - - public FormattedMessage? ScanReport; - - public bool Scanning; - - public bool Paused; - - public TimeSpan? StartTime; - - public TimeSpan? AccumulatedRunTime; - - public TimeSpan? TotalTime; - - public int PointAmount; - - public AnalysisConsoleScanUpdateState(NetEntity? artifact, bool analyzerConnected, bool serverConnected, bool canScan, bool canPrint, - FormattedMessage? scanReport, bool scanning, bool paused, TimeSpan? startTime, TimeSpan? accumulatedRunTime, TimeSpan? totalTime, int pointAmount) - { - Artifact = artifact; - AnalyzerConnected = analyzerConnected; - ServerConnected = serverConnected; - CanScan = canScan; - CanPrint = canPrint; - - ScanReport = scanReport; - - Scanning = scanning; - Paused = paused; - - StartTime = startTime; - AccumulatedRunTime = accumulatedRunTime; - TotalTime = totalTime; + public bool IsDown = isDown; +} - PointAmount = pointAmount; - } +[Serializable, NetSerializable] +public sealed class AnalysisConsoleUpdateState( + NetEntity? artifact, + bool analyzerConnected, + bool serverConnected, + bool canScan, + bool canPrint, + FormattedMessage? scanReport, + bool scanning, + bool paused, + TimeSpan? startTime, + TimeSpan? accumulatedRunTime, + TimeSpan? totalTime, + int pointAmount, + bool isTraversalDown +) + : BoundUserInterfaceState +{ + public NetEntity? Artifact = artifact; + public bool AnalyzerConnected = analyzerConnected; + public bool ServerConnected = serverConnected; + public bool CanScan = canScan; + public bool CanPrint = canPrint; + public FormattedMessage? ScanReport = scanReport; + public bool Scanning = scanning; + public bool Paused = paused; + public TimeSpan? StartTime = startTime; + public TimeSpan? AccumulatedRunTime = accumulatedRunTime; + public TimeSpan? TotalTime = totalTime; + public int PointAmount = pointAmount; + public bool IsTraversalDown = isTraversalDown; } diff --git a/Content.Shared/Zombies/ZombieComponent.cs b/Content.Shared/Zombies/ZombieComponent.cs index be3fdbdd01..3673a2c51d 100644 --- a/Content.Shared/Zombies/ZombieComponent.cs +++ b/Content.Shared/Zombies/ZombieComponent.cs @@ -27,7 +27,7 @@ public sealed partial class ZombieComponent : Component, IAntagStatusIconCompone /// being invincible by bundling up. /// [ViewVariables(VVAccess.ReadWrite)] - public float MinZombieInfectionChance = 0.50f; + public float MinZombieInfectionChance = 0.25f; [ViewVariables(VVAccess.ReadWrite)] public float ZombieMovementSpeedDebuff = 0.70f; diff --git a/Content.Shared/_White/CVars.cs b/Content.Shared/_White/CVars.cs index 48c2f5bd78..8b7137f94a 100644 --- a/Content.Shared/_White/CVars.cs +++ b/Content.Shared/_White/CVars.cs @@ -15,16 +15,6 @@ public sealed class WhiteCVars #endregion - #region Keybind - - public static readonly CVarDef AutoGetUp = - CVarDef.Create("white.auto_get_up", true, CVar.CLIENT | CVar.ARCHIVE | CVar.REPLICATED); - - public static readonly CVarDef HoldLookUp = - CVarDef.Create("white.hold_look_up", false, CVar.CLIENT | CVar.ARCHIVE); - - #endregion - #region Locale public static readonly CVarDef @@ -32,15 +22,6 @@ public static readonly CVarDef #endregion - #region GhostRespawn - public static readonly CVarDef GhostRespawnTime = - CVarDef.Create("ghost.respawn_time", 15d, CVar.SERVERONLY); - - public static readonly CVarDef GhostRespawnMaxPlayers = - CVarDef.Create("ghost.respawn_max_players", 40, CVar.SERVERONLY); - - #endregion - #region OptionsMisc public static readonly CVarDef LogInChat = diff --git a/Content.Shared/_White/Collision/Knockdown/KnockdownOnCollideComponent.cs b/Content.Shared/_White/Collision/Knockdown/KnockdownOnCollideComponent.cs index 20ed5f8dce..078f01b952 100644 --- a/Content.Shared/_White/Collision/Knockdown/KnockdownOnCollideComponent.cs +++ b/Content.Shared/_White/Collision/Knockdown/KnockdownOnCollideComponent.cs @@ -1,4 +1,4 @@ -using Content.Shared._White.Standing; +using Content.Shared.Standing; namespace Content.Shared._White.Collision.Knockdown; diff --git a/Content.Shared/_White/Collision/Knockdown/KnockdownOnCollideSystem.cs b/Content.Shared/_White/Collision/Knockdown/KnockdownOnCollideSystem.cs index dafce97c2e..dcc6b38377 100644 --- a/Content.Shared/_White/Collision/Knockdown/KnockdownOnCollideSystem.cs +++ b/Content.Shared/_White/Collision/Knockdown/KnockdownOnCollideSystem.cs @@ -1,5 +1,5 @@ -using Content.Shared._White.Standing; using Content.Shared.Projectiles; +using Content.Shared.Standing; using Content.Shared.Throwing; namespace Content.Shared._White.Collision.Knockdown; diff --git a/Content.Shared/_White/Standing/LayingDownComponent.cs b/Content.Shared/_White/Standing/LayingDownComponent.cs deleted file mode 100644 index 6dce32ac24..0000000000 --- a/Content.Shared/_White/Standing/LayingDownComponent.cs +++ /dev/null @@ -1,25 +0,0 @@ -using Robust.Shared.GameStates; -using Robust.Shared.Serialization; - -namespace Content.Shared._White.Standing; - -[RegisterComponent, NetworkedComponent, AutoGenerateComponentState] -public sealed partial class LayingDownComponent : Component -{ - [DataField, AutoNetworkedField, ViewVariables(VVAccess.ReadWrite)] - public float StandingUpTime { get; set; } = 1f; - - [DataField, AutoNetworkedField, ViewVariables(VVAccess.ReadWrite)] - public float SpeedModify { get; set; } = 0.4f; - - [DataField, AutoNetworkedField, ViewVariables(VVAccess.ReadWrite)] - public bool AutoGetUp; -} -[Serializable, NetSerializable] -public sealed class ChangeLayingDownEvent : CancellableEntityEventArgs; - -[Serializable, NetSerializable] -public sealed class CheckAutoGetUpEvent(NetEntity user) : CancellableEntityEventArgs -{ - public NetEntity User = user; -} diff --git a/Content.Shared/_White/Standing/SharedLayingDownSystem.cs b/Content.Shared/_White/Standing/SharedLayingDownSystem.cs deleted file mode 100644 index 629fdea3fe..0000000000 --- a/Content.Shared/_White/Standing/SharedLayingDownSystem.cs +++ /dev/null @@ -1,176 +0,0 @@ -using System.Linq; -using Content.Shared.DoAfter; -using Content.Shared.Gravity; -using Content.Shared.Input; -using Content.Shared.Mobs.Systems; -using Content.Shared.Movement.Systems; -using Content.Shared.Standing; -using Content.Shared.Stunnable; -using Robust.Shared.Input.Binding; -using Robust.Shared.Map; -using Robust.Shared.Player; -using Robust.Shared.Serialization; - -namespace Content.Shared._White.Standing; - -public abstract class SharedLayingDownSystem : EntitySystem -{ - [Dependency] private readonly MobStateSystem _mobState = default!; - [Dependency] private readonly StandingStateSystem _standing = default!; - [Dependency] private readonly SharedDoAfterSystem _doAfter = default!; - [Dependency] private readonly SharedGravitySystem _gravity = default!; - [Dependency] private readonly EntityLookupSystem _lookup = default!; - - public override void Initialize() - { - CommandBinds.Builder - .Bind(ContentKeyFunctions.ToggleStanding, InputCmdHandler.FromDelegate(ToggleStanding)) - .Register(); - - SubscribeNetworkEvent(OnChangeState); - - SubscribeLocalEvent(OnStandingUpDoAfter); - SubscribeLocalEvent(OnRefreshMovementSpeed); - SubscribeLocalEvent(OnParentChanged); - } - - public override void Shutdown() - { - base.Shutdown(); - - CommandBinds.Unregister(); - } - - private void ToggleStanding(ICommonSession? session) - { - if (session?.AttachedEntity == null || - !HasComp(session.AttachedEntity) || - _gravity.IsWeightless(session.AttachedEntity.Value)) - { - return; - } - - RaiseNetworkEvent(new ChangeLayingDownEvent()); - } - - private void OnChangeState(ChangeLayingDownEvent ev, EntitySessionEventArgs args) - { - if (!args.SenderSession.AttachedEntity.HasValue) - return; - - var uid = args.SenderSession.AttachedEntity.Value; - - // TODO: Wizard - //if (HasComp(uid)) - // return; - - if (!TryComp(uid, out StandingStateComponent? standing) || - !TryComp(uid, out LayingDownComponent? layingDown)) - { - return; - } - - RaiseNetworkEvent(new CheckAutoGetUpEvent(GetNetEntity(uid))); - - if (HasComp(uid) || !_mobState.IsAlive(uid)) - return; - - if (_standing.IsDown(uid, standing)) - TryStandUp(uid, layingDown, standing); - else - TryLieDown(uid, layingDown, standing); - } - - private void OnStandingUpDoAfter(EntityUid uid, StandingStateComponent component, StandingUpDoAfterEvent args) - { - if (args.Handled || args.Cancelled || HasComp(uid) || - _mobState.IsIncapacitated(uid) || !_standing.Stand(uid)) - { - component.CurrentState = StandingState.Lying; - } - - component.CurrentState = StandingState.Standing; - } - - private void OnRefreshMovementSpeed(EntityUid uid, LayingDownComponent component, RefreshMovementSpeedModifiersEvent args) - { - if (_standing.IsDown(uid)) - args.ModifySpeed(component.SpeedModify, component.SpeedModify); - else - args.ModifySpeed(1f, 1f); - } - - private void OnParentChanged(EntityUid uid, LayingDownComponent component, EntParentChangedMessage args) - { - // If the entity is not on a grid, try to make it stand up to avoid issues - if (!TryComp(uid, out var standingState) - || standingState.CurrentState is StandingState.Standing - || Transform(uid).GridUid != null) - { - return; - } - - _standing.Stand(uid, standingState); - } - - public bool TryStandUp(EntityUid uid, LayingDownComponent? layingDown = null, StandingStateComponent? standingState = null) - { - if (!Resolve(uid, ref standingState, false) || - !Resolve(uid, ref layingDown, false) || - standingState.CurrentState is not StandingState.Lying || - !_mobState.IsAlive(uid) || - TerminatingOrDeleted(uid)) - { - return false; - } - - var args = new DoAfterArgs(EntityManager, uid, layingDown.StandingUpTime, new StandingUpDoAfterEvent(), uid) - { - BreakOnHandChange = false, - RequireCanInteract = false - }; - - if (!_doAfter.TryStartDoAfter(args)) - return false; - - standingState.CurrentState = StandingState.GettingUp; - return true; - } - - public bool TryLieDown(EntityUid uid, LayingDownComponent? layingDown = null, StandingStateComponent? standingState = null, DropHeldItemsBehavior behavior = DropHeldItemsBehavior.NoDrop) - { - if (!Resolve(uid, ref standingState, false) || - !Resolve(uid, ref layingDown, false) || - standingState.CurrentState is not StandingState.Standing) - { - if (behavior == DropHeldItemsBehavior.AlwaysDrop) - RaiseLocalEvent(uid, new DropHandItemsEvent()); - - return false; - } - - _standing.Down(uid, true, behavior != DropHeldItemsBehavior.NoDrop, standingState); - return true; - } - - public void LieDownInRange(EntityUid uid, EntityCoordinates coords, float range = 0.4f) - { - var ents = new HashSet>(); - _lookup.GetEntitiesInRange(coords, range, ents); - - foreach (var ent in ents.Where(ent => ent.Owner != uid)) - { - TryLieDown(ent, behavior:DropHeldItemsBehavior.DropIfStanding); - } - } -} - -[Serializable, NetSerializable] -public sealed partial class StandingUpDoAfterEvent : SimpleDoAfterEvent; - -public enum DropHeldItemsBehavior : byte -{ - NoDrop, - DropIfStanding, - AlwaysDrop -} diff --git a/Content.Shared/_White/Telescope/TelescopeComponent.cs b/Content.Shared/_White/Telescope/TelescopeComponent.cs deleted file mode 100644 index 599770e886..0000000000 --- a/Content.Shared/_White/Telescope/TelescopeComponent.cs +++ /dev/null @@ -1,16 +0,0 @@ -using Robust.Shared.GameStates; - -namespace Content.Shared._White.Telescope; - -[RegisterComponent, NetworkedComponent, AutoGenerateComponentState] -public sealed partial class TelescopeComponent : Component -{ - [DataField, ViewVariables(VVAccess.ReadWrite), AutoNetworkedField] - public float Divisor = 0.1f; - - [DataField, ViewVariables(VVAccess.ReadWrite), AutoNetworkedField] - public float LerpAmount = 0.1f; - - [ViewVariables] - public EntityUid? LastEntity; -} diff --git a/Content.Tests/Shared/DamageTest.cs b/Content.Tests/Shared/DamageTest.cs index 11b810bf36..88beca8841 100644 --- a/Content.Tests/Shared/DamageTest.cs +++ b/Content.Tests/Shared/DamageTest.cs @@ -168,45 +168,57 @@ public void ModifierSetTest() private string _damagePrototypes = @" - type: damageType id: Blunt + name: damage-type-blunt - type: damageType id: Slash + name: damage-type-slash - type: damageType id: Piercing + name: damage-type-piercing - type: damageType id: Heat + name: damage-type-heat - type: damageType id: Shock + name: damage-type-shock - type: damageType id: Cold + name: damage-type-cold # Poison damage. Generally caused by various reagents being metabolised. - type: damageType id: Poison + name: damage-type-poison - type: damageType id: Radiation + name: damage-type-radiation # Damage due to being unable to breathe. # Represents not enough oxygen (or equivalent) getting to the blood. # Usually healed automatically if entity can breathe - type: damageType id: Asphyxiation + name: damage-type-asphyxiation # Damage representing not having enough blood. # Represents there not enough blood to supply oxygen (or equivalent). - type: damageType id: Bloodloss + name: damage-type-bloodloss - type: damageType id: Cellular + name: damage-type-cellular - type: damageGroup id: Brute + name: damage-group-brute damageTypes: - Blunt - Slash @@ -214,6 +226,7 @@ public void ModifierSetTest() - type: damageGroup id: Burn + name: damage-group-burn damageTypes: - Heat - Shock @@ -225,6 +238,7 @@ public void ModifierSetTest() # bloodloss, not this whole group, unless you have a wonder drug that affects both. - type: damageGroup id: Airloss + name: damage-group-airloss damageTypes: - Asphyxiation - Bloodloss @@ -233,12 +247,14 @@ public void ModifierSetTest() # Though there are probably some radioactive poisons. - type: damageGroup id: Toxin + name: damage-group-toxin damageTypes: - Poison - Radiation - type: damageGroup id: Genetic + name: damage-group-genetic damageTypes: - Cellular diff --git a/Content.YAMLLinter/Program.cs b/Content.YAMLLinter/Program.cs index 78867fcb8a..7f0b740fe8 100644 --- a/Content.YAMLLinter/Program.cs +++ b/Content.YAMLLinter/Program.cs @@ -1,9 +1,11 @@ using System; using System.Collections.Generic; using System.Linq; +using System.Reflection; using System.Threading.Tasks; using Content.IntegrationTests; using Robust.Shared.Prototypes; +using Robust.Shared.Reflection; using Robust.Shared.Serialization.Markdown.Validation; using Robust.Shared.Timing; using Robust.Shared.Utility; @@ -103,9 +105,13 @@ await instance.WaitPost(() => return (yamlErrors, fieldErrors); } - public static async Task<(Dictionary> YamlErrors , List FieldErrors)> + public static async Task<(Dictionary> YamlErrors, List FieldErrors)> RunValidation() { + var (clientAssemblies, serverAssemblies) = await GetClientServerAssemblies(); + var serverTypes = serverAssemblies.SelectMany(n => n.GetTypes()).Select(t => t.Name).ToHashSet(); + var clientTypes = clientAssemblies.SelectMany(n => n.GetTypes()).Select(t => t.Name).ToHashSet(); + var yamlErrors = new Dictionary>(); var serverErrors = await ValidateServer(); @@ -117,9 +123,18 @@ await instance.WaitPost(() => var newErrors = val.Where(n => n.AlwaysRelevant).ToHashSet(); // We include sometimes-relevant errors if they exist both for the client & server - if (clientErrors.Item1.TryGetValue(key, out var clientVal)) + if (clientErrors.YamlErrors.TryGetValue(key, out var clientVal)) newErrors.UnionWith(val.Intersect(clientVal)); + // Include any errors that relate to server-only types + foreach (var errorNode in val) + { + if (errorNode is FieldNotFoundErrorNode fieldNotFoundNode && !clientTypes.Contains(fieldNotFoundNode.FieldType.Name)) + { + newErrors.Add(errorNode); + } + } + if (newErrors.Count != 0) yamlErrors[key] = newErrors; } @@ -135,6 +150,15 @@ await instance.WaitPost(() => errors.UnionWith(val.Where(n => n.AlwaysRelevant)); else yamlErrors[key] = newErrors; + + // Include any errors that relate to client-only types + foreach (var errorNode in val) + { + if (errorNode is FieldNotFoundErrorNode fieldNotFoundNode && !serverTypes.Contains(fieldNotFoundNode.FieldType.Name)) + { + newErrors.Add(errorNode); + } + } } // Finally, combine the prototype ID field errors. @@ -145,5 +169,23 @@ await instance.WaitPost(() => return (yamlErrors, fieldErrors); } + + private static async Task<(Assembly[] clientAssemblies, Assembly[] serverAssemblies)> + GetClientServerAssemblies() + { + await using var pair = await PoolManager.GetServerClient(); + + var result = (GetAssemblies(pair.Client), GetAssemblies(pair.Server)); + + await pair.CleanReturnAsync(); + + return result; + + Assembly[] GetAssemblies(RobustIntegrationTest.IntegrationInstance instance) + { + var refl = instance.ResolveDependency(); + return refl.Assemblies.ToArray(); + } + } } } diff --git a/Resources/Audio/Animals/attributions.yml b/Resources/Audio/Animals/attributions.yml index c34832a807..7fd7e8b2e7 100644 --- a/Resources/Audio/Animals/attributions.yml +++ b/Resources/Audio/Animals/attributions.yml @@ -7,7 +7,7 @@ license: "CC-BY-3.0" copyright: "Modified from 'Meow 4.wav' by freesound user 'TRNGLE. The original audio was trimmed, split to mono, and converted from WAV to OGG format" source: "https://freesound.org/people/TRNGLE/sounds/368006/" - + - files: ["cat_meow2.ogg"] license: "CC-BY-3.0" copyright: "Created by freesound user 'TRNGLE. The original audio split to mono, and converted from WAV to OGG format" @@ -117,24 +117,42 @@ license: "CC-BY-4.0" copyright: "Audio is recorded/created by Pfranzen 'FreeSound.org'. The original audio was trimmed and renamed" source: "https://freesound.org/people/pfranzen/sounds/322744/" - + - files: ["dog_bark1.ogg"] license: "CC0-1.0" copyright: "Audio is recorded/created by KFerentchak 'FreeSound.org'. The original audio was trimmed and renamed" - source: "https://freesound.org/people/KFerentchak/sounds/235912/" - + source: "https://freesound.org/people/KFerentchak/sounds/235912/" + - files: ["dog_bark2.ogg"] license: "CC0-1.0" copyright: "Audio is recorded/created by KFerentchak 'FreeSound.org'. The original audio was trimmed and renamed" - source: "https://freesound.org/people/KFerentchak/sounds/235912/" - + source: "https://freesound.org/people/KFerentchak/sounds/235912/" + - files: ["dog_bark3.ogg"] license: "CC0-1.0" copyright: "Audio is recorded/created by KFerentchak 'FreeSound.org'. The original audio was trimmed and renamed" source: "https://freesound.org/people/KFerentchak/sounds/235912/" - + - files: ["nymph_chirp.ogg"] license: "CC-BY-SA-3.0" copyright: "Taken from ParadiseSS13" source: "https://github.com/ParadiseSS13/Paradise/commit/a34f1054cef5a44a67fdac3b67b811137c6071dd" - \ No newline at end of file + +- files: + - fox1.ogg + - fox2.ogg + - fox3.ogg + - fox4.ogg + - fox5.ogg + - fox6.ogg + - fox7.ogg + - fox8.ogg + - fox9.ogg + - fox10.ogg + - fox11.ogg + - fox12.ogg + - fox13.ogg + - fox14.ogg + copyright: "Created by fujiwaranao" + license: "CC-BY-NC-SA-4.0" + source: "https://github.com/space-wizards/space-station-14/pull/27578" diff --git a/Resources/Audio/Animals/fox1.ogg b/Resources/Audio/Animals/fox1.ogg new file mode 100644 index 0000000000..40fe16cc52 Binary files /dev/null and b/Resources/Audio/Animals/fox1.ogg differ diff --git a/Resources/Audio/Animals/fox10.ogg b/Resources/Audio/Animals/fox10.ogg new file mode 100644 index 0000000000..2a9e156dc5 Binary files /dev/null and b/Resources/Audio/Animals/fox10.ogg differ diff --git a/Resources/Audio/Animals/fox11.ogg b/Resources/Audio/Animals/fox11.ogg new file mode 100644 index 0000000000..d294137dc1 Binary files /dev/null and b/Resources/Audio/Animals/fox11.ogg differ diff --git a/Resources/Audio/Animals/fox12.ogg b/Resources/Audio/Animals/fox12.ogg new file mode 100644 index 0000000000..c413af81c7 Binary files /dev/null and b/Resources/Audio/Animals/fox12.ogg differ diff --git a/Resources/Audio/Animals/fox13.ogg b/Resources/Audio/Animals/fox13.ogg new file mode 100644 index 0000000000..197a9e4339 Binary files /dev/null and b/Resources/Audio/Animals/fox13.ogg differ diff --git a/Resources/Audio/Animals/fox14.ogg b/Resources/Audio/Animals/fox14.ogg new file mode 100644 index 0000000000..1d9c99889d Binary files /dev/null and b/Resources/Audio/Animals/fox14.ogg differ diff --git a/Resources/Audio/Animals/fox2.ogg b/Resources/Audio/Animals/fox2.ogg new file mode 100644 index 0000000000..7aeb7da911 Binary files /dev/null and b/Resources/Audio/Animals/fox2.ogg differ diff --git a/Resources/Audio/Animals/fox3.ogg b/Resources/Audio/Animals/fox3.ogg new file mode 100644 index 0000000000..561b313f41 Binary files /dev/null and b/Resources/Audio/Animals/fox3.ogg differ diff --git a/Resources/Audio/Animals/fox4.ogg b/Resources/Audio/Animals/fox4.ogg new file mode 100644 index 0000000000..6805d0e848 Binary files /dev/null and b/Resources/Audio/Animals/fox4.ogg differ diff --git a/Resources/Audio/Animals/fox5.ogg b/Resources/Audio/Animals/fox5.ogg new file mode 100644 index 0000000000..5aefa939cc Binary files /dev/null and b/Resources/Audio/Animals/fox5.ogg differ diff --git a/Resources/Audio/Animals/fox6.ogg b/Resources/Audio/Animals/fox6.ogg new file mode 100644 index 0000000000..d23cca5ff2 Binary files /dev/null and b/Resources/Audio/Animals/fox6.ogg differ diff --git a/Resources/Audio/Animals/fox7.ogg b/Resources/Audio/Animals/fox7.ogg new file mode 100644 index 0000000000..d4da91e73b Binary files /dev/null and b/Resources/Audio/Animals/fox7.ogg differ diff --git a/Resources/Audio/Animals/fox8.ogg b/Resources/Audio/Animals/fox8.ogg new file mode 100644 index 0000000000..52337a640b Binary files /dev/null and b/Resources/Audio/Animals/fox8.ogg differ diff --git a/Resources/Audio/Animals/fox9.ogg b/Resources/Audio/Animals/fox9.ogg new file mode 100644 index 0000000000..eb161ccdaf Binary files /dev/null and b/Resources/Audio/Animals/fox9.ogg differ diff --git a/Resources/Audio/Announcements/attributions.yml b/Resources/Audio/Announcements/attributions.yml index 879bfe7f60..774b0da5a0 100644 --- a/Resources/Audio/Announcements/attributions.yml +++ b/Resources/Audio/Announcements/attributions.yml @@ -7,3 +7,8 @@ license: "CC-BY-SA-3.0" copyright: "Paradise, volume and pitch changed, merged with redalert.ogg" source: "https://github.com/ParadiseSS13/Paradise/blob/07b26ee6b4a11a0607986d322ee007020569feae/sound/effects/siren.ogg" + +- files: ["intercept.ogg"] + license: "CC-BY-SA-3.0" + copyright: "Taken from tgstation" + source: "https://github.com/tgstation/tgstation/blob/95731342b97167d7883ff091d389f79c36442ee6/sound/ai/default/intercept.ogg" diff --git a/Resources/Audio/Announcements/intercept.ogg b/Resources/Audio/Announcements/intercept.ogg new file mode 100644 index 0000000000..3569a07d40 Binary files /dev/null and b/Resources/Audio/Announcements/intercept.ogg differ diff --git a/Resources/Audio/DeltaV/Jukebox/DOS=HIGH,_UMB.ogg b/Resources/Audio/DeltaV/Jukebox/DOS=HIGH,_UMB.ogg new file mode 100644 index 0000000000..b16a328b13 Binary files /dev/null and b/Resources/Audio/DeltaV/Jukebox/DOS=HIGH,_UMB.ogg differ diff --git a/Resources/Audio/DeltaV/Jukebox/Patricia_Taxxon_-_Minute_-_MONO.ogg b/Resources/Audio/DeltaV/Jukebox/Patricia_Taxxon_-_Minute_-_MONO.ogg new file mode 100644 index 0000000000..05a7fb5fda Binary files /dev/null and b/Resources/Audio/DeltaV/Jukebox/Patricia_Taxxon_-_Minute_-_MONO.ogg differ diff --git a/Resources/Audio/DeltaV/Jukebox/Phoron_Will_Make_Us_RichMONO2.ogg b/Resources/Audio/DeltaV/Jukebox/Phoron_Will_Make_Us_RichMONO2.ogg new file mode 100644 index 0000000000..f0c5919c3c Binary files /dev/null and b/Resources/Audio/DeltaV/Jukebox/Phoron_Will_Make_Us_RichMONO2.ogg differ diff --git a/Resources/Audio/DeltaV/Jukebox/Scratch_Post_-_OST_MONO.ogg b/Resources/Audio/DeltaV/Jukebox/Scratch_Post_-_OST_MONO.ogg new file mode 100644 index 0000000000..edaa29c836 Binary files /dev/null and b/Resources/Audio/DeltaV/Jukebox/Scratch_Post_-_OST_MONO.ogg differ diff --git a/Resources/Audio/DeltaV/Jukebox/a_different_reality_lagoona_remix.xm-MONO.ogg b/Resources/Audio/DeltaV/Jukebox/a_different_reality_lagoona_remix.xm-MONO.ogg new file mode 100644 index 0000000000..bb857bd105 Binary files /dev/null and b/Resources/Audio/DeltaV/Jukebox/a_different_reality_lagoona_remix.xm-MONO.ogg differ diff --git a/Resources/Audio/DeltaV/Jukebox/aggravated.it-MONO.ogg b/Resources/Audio/DeltaV/Jukebox/aggravated.it-MONO.ogg new file mode 100644 index 0000000000..5570556f4d Binary files /dev/null and b/Resources/Audio/DeltaV/Jukebox/aggravated.it-MONO.ogg differ diff --git a/Resources/Audio/DeltaV/Jukebox/attributions.yml b/Resources/Audio/DeltaV/Jukebox/attributions.yml new file mode 100644 index 0000000000..67555c5445 --- /dev/null +++ b/Resources/Audio/DeltaV/Jukebox/attributions.yml @@ -0,0 +1,88 @@ +# sorted alphabetically based on filenames in the folder Resources/Audio/DeltaV/Jukebox +# keep it ordered or I'll stab you + +- files: ["a_different_reality_lagoona_remix.xm-MONO.ogg"] + license: "CC-BY-4.0" + copyright: "A.D.R (Lagoona rmx) by Andreas Viklund, converted to mono" + source: "https://modarchive.org/index.php?request=view_by_moduleid&query=134786" + +- files: ["aggravated.it-MONO.ogg"] + license: "CC-BY-NC-SA-4.0" + copyright: "MEL -Aggravated Assault by melcom, converted to mono" + source: "https://modarchive.org/index.php?request=view_by_moduleid&query=176234" + +- files: ["autumnal_equinox.xm-MONO.ogg"] + license: "CC-BY-NC-4.0" + copyright: "Autumnal Equinox by lemonade, converted to mono" + source: "https://modarchive.org/index.php?request=view_by_moduleid&query=143993" + +- files: ["DOS=HIGH,_UMB.ogg"] + license: "Custom" + copyright: "DOS=HIGH, UMB by MASTER BOOT RECORD may be used non-commercially in the Delta-V fork of SS14. Converted from FLAC to OGG, then converted to mono." + source: "https://masterbootrecord.bandcamp.com/album/c-edit-config-sys" + +- files: ["drozerix_-_alone.xm-MONO.ogg"] + license: "Custom" + copyright: "Alone by Drozerix, converted to mono" + source: "https://modarchive.org/index.php?request=view_by_moduleid&query=199968" + +- files: ["drozerix_-_leisurely_voice.xm-MONO.ogg"] + license: "Custom" + copyright: "Leisurely Voice by Drozerix, converted to mono" + source: "https://modarchive.org/index.php?request=view_by_moduleid&query=183837" + +- files: ["every_light_is_blinking_at_onceMONO.ogg"] + license: "CC-BY-NC-SA-3.0" + copyright: "every light blinking at once by Sunbeamstress, converted to mono" + source: "https://soundcloud.com/sunbeamstress/every-light-is-blinking-at-once" + +- files: ["hackers-MONO.ogg"] + license: "CC-BY-NC-SA-3.0" + copyright: "Hackers by Karl Casey @ White Bat Audio, converted to mono" + source: "https://www.youtube.com/watch?v=k8nHWwO1U2Q" + +- files: [lasers_rip_apart_the_bulkheadMONO.ogg] + license: "CC-BY-NC-SA-3.0" + copyright: "lasers rip apart by Sunbeamstress, converted to mono" + source: "https://soundcloud.com/sunbeamstress/lasers-rip-apart-the-bulkhead" + +- files: ["marhaba-MONO.ogg"] + license: "CC-BY-NC-SA-3.0" + copyright: "Marhaba by Ian Alex Mac. Converted from MP3 to OGG, then converted to mono" + source: "https://freemusicarchive.org/music/Ian_Alex_Mac/Cues/Marhaba" + +- files: ["Patricia_Taxxon_-_Minute_-_MONO.ogg"] + license: "CC-BY-SA-3.0" + copyright: "Minute by Patricia Taxxon off the album 'Aeroplane,' converted to mono" + source: "https://patriciataxxon.bandcamp.com/track/minute" + +- files: ["Phoron_Will_Make_Us_RichMONO2.ogg"] + license: "CC-BY-NC-SA-3.0" + copyright: "phoron will make us rich by Sunbeamstress, converted to mono" + source: "https://soundcloud.com/sunbeamstress/phoron-will-make-us-rich" + +- files: ["psirius_-_nymphs_of_the_forest.mptm-MONO.ogg"] + license: "CC-BY-NC-SA-4.0" + copyright: "Nymphs of the forest by Psirius, converted to mono" + source: "https://modarchive.org/index.php?request=view_by_moduleid&query=185545" + +- files: ["Scratch_Post_-_OST_MONO.ogg"] + license: "CC-BY-SA-4.0" + copyright: "Scratch Post by Ghirardelli7 on SoundCloud, used with the understanding that credit is given to the artist." + source: "https://soundcloud.com/ghirardelli7/scratch-post-ost" + +- files: ["shibamata-MONO.ogg"] + license: "Custom" + copyright: "Shibamata by .2gou / Dot Nigou. This track is not released under any formal licensure, and exists in the public domain in multiple forms, including remixes and mashups. Converted to mono." + source: "https://www.youtube.com/watch?v=FIw-HUP7XK0" + +- files: ["space_asshole.ogg"] + license: "Custom" + copyright: "Space Asshole by Chris Remo is used with special permission from the author, under the condition that the project remains non-commercial and open source. The author also requested that a link to his bandcamp be included: https://chrisremo.bandcamp.com/ Converted from stereo to mono." + source: "https://idlethumbs.bandcamp.com/track/space-asshole" + +- files: ["superposition-MONO.ogg"] + license: "CC-BY-NC-3.0" + copyright: "Superposition by Amie Waters, converted to mono" + source: "https://amiewaters.bandcamp.com/track/superposition-2" + diff --git a/Resources/Audio/DeltaV/Jukebox/autumnal_equinox.xm-MONO.ogg b/Resources/Audio/DeltaV/Jukebox/autumnal_equinox.xm-MONO.ogg new file mode 100644 index 0000000000..db13ac8d70 Binary files /dev/null and b/Resources/Audio/DeltaV/Jukebox/autumnal_equinox.xm-MONO.ogg differ diff --git a/Resources/Audio/DeltaV/Jukebox/drozerix_-_alone.xm-MONO.ogg b/Resources/Audio/DeltaV/Jukebox/drozerix_-_alone.xm-MONO.ogg new file mode 100644 index 0000000000..7bb1cefdde Binary files /dev/null and b/Resources/Audio/DeltaV/Jukebox/drozerix_-_alone.xm-MONO.ogg differ diff --git a/Resources/Audio/DeltaV/Jukebox/drozerix_-_leisurely_voice.xm-MONO.ogg b/Resources/Audio/DeltaV/Jukebox/drozerix_-_leisurely_voice.xm-MONO.ogg new file mode 100644 index 0000000000..9eb8028c2f Binary files /dev/null and b/Resources/Audio/DeltaV/Jukebox/drozerix_-_leisurely_voice.xm-MONO.ogg differ diff --git a/Resources/Audio/DeltaV/Jukebox/every_light_is_blinking_at_onceMONO.ogg b/Resources/Audio/DeltaV/Jukebox/every_light_is_blinking_at_onceMONO.ogg new file mode 100644 index 0000000000..5de6bfe2c7 Binary files /dev/null and b/Resources/Audio/DeltaV/Jukebox/every_light_is_blinking_at_onceMONO.ogg differ diff --git a/Resources/Audio/DeltaV/Jukebox/hackers-MONO.ogg b/Resources/Audio/DeltaV/Jukebox/hackers-MONO.ogg new file mode 100644 index 0000000000..3603aeac32 Binary files /dev/null and b/Resources/Audio/DeltaV/Jukebox/hackers-MONO.ogg differ diff --git a/Resources/Audio/DeltaV/Jukebox/lasers_rip_apart_the_bulkheadMONO.ogg b/Resources/Audio/DeltaV/Jukebox/lasers_rip_apart_the_bulkheadMONO.ogg new file mode 100644 index 0000000000..addbfcc6c0 Binary files /dev/null and b/Resources/Audio/DeltaV/Jukebox/lasers_rip_apart_the_bulkheadMONO.ogg differ diff --git a/Resources/Audio/DeltaV/Jukebox/marhaba-MONO.ogg b/Resources/Audio/DeltaV/Jukebox/marhaba-MONO.ogg new file mode 100644 index 0000000000..18b39a0296 Binary files /dev/null and b/Resources/Audio/DeltaV/Jukebox/marhaba-MONO.ogg differ diff --git a/Resources/Audio/DeltaV/Jukebox/psirius_-_nymphs_of_the_forest.mptm-MONO.ogg b/Resources/Audio/DeltaV/Jukebox/psirius_-_nymphs_of_the_forest.mptm-MONO.ogg new file mode 100644 index 0000000000..aa26988bcd Binary files /dev/null and b/Resources/Audio/DeltaV/Jukebox/psirius_-_nymphs_of_the_forest.mptm-MONO.ogg differ diff --git a/Resources/Audio/DeltaV/Jukebox/shibamata-MONO.ogg b/Resources/Audio/DeltaV/Jukebox/shibamata-MONO.ogg new file mode 100644 index 0000000000..24fc190218 Binary files /dev/null and b/Resources/Audio/DeltaV/Jukebox/shibamata-MONO.ogg differ diff --git a/Resources/Audio/DeltaV/Jukebox/space_asshole-MONO.ogg b/Resources/Audio/DeltaV/Jukebox/space_asshole-MONO.ogg new file mode 100644 index 0000000000..90e7848b77 Binary files /dev/null and b/Resources/Audio/DeltaV/Jukebox/space_asshole-MONO.ogg differ diff --git a/Resources/Audio/DeltaV/Jukebox/superposition-MONO.ogg b/Resources/Audio/DeltaV/Jukebox/superposition-MONO.ogg new file mode 100644 index 0000000000..5e7d45a886 Binary files /dev/null and b/Resources/Audio/DeltaV/Jukebox/superposition-MONO.ogg differ diff --git a/Resources/Audio/Effects/Flight/wingflap1.ogg b/Resources/Audio/Effects/Flight/wingflap1.ogg new file mode 100644 index 0000000000..724ac3ecd2 Binary files /dev/null and b/Resources/Audio/Effects/Flight/wingflap1.ogg differ diff --git a/Resources/Audio/Effects/Flight/wingflap2.ogg b/Resources/Audio/Effects/Flight/wingflap2.ogg new file mode 100644 index 0000000000..b0264a1317 Binary files /dev/null and b/Resources/Audio/Effects/Flight/wingflap2.ogg differ diff --git a/Resources/Audio/Effects/Flight/wingflap3.ogg b/Resources/Audio/Effects/Flight/wingflap3.ogg new file mode 100644 index 0000000000..aeb0e21acf Binary files /dev/null and b/Resources/Audio/Effects/Flight/wingflap3.ogg differ diff --git a/Resources/Audio/Effects/Footsteps/attributions.yml b/Resources/Audio/Effects/Footsteps/attributions.yml index 82b5fa93ca..91c3ce260d 100644 --- a/Resources/Audio/Effects/Footsteps/attributions.yml +++ b/Resources/Audio/Effects/Footsteps/attributions.yml @@ -71,3 +71,10 @@ license: "CC-BY-SA-3.0" copyright: "Taken from tgstation" source: "https://github.com/tgstation/tgstation/tree/1e8d511946d194f92f744f5f957a7c41683d84a6/sound/effects/footstep" + +- files: + - borgwalk1.ogg + - borgwalk2.ogg + license: "CC-BY-SA-4.0" + copyright: "Taken from IENBA freesound.org and modified by https://github.com/MilenVolf" + source: "https://freesound.org/people/IENBA/sounds/697379/" diff --git a/Resources/Audio/Effects/Footsteps/borgwalk1.ogg b/Resources/Audio/Effects/Footsteps/borgwalk1.ogg new file mode 100644 index 0000000000..3305a52ea2 Binary files /dev/null and b/Resources/Audio/Effects/Footsteps/borgwalk1.ogg differ diff --git a/Resources/Audio/Effects/Footsteps/borgwalk2.ogg b/Resources/Audio/Effects/Footsteps/borgwalk2.ogg new file mode 100644 index 0000000000..96c2c1617f Binary files /dev/null and b/Resources/Audio/Effects/Footsteps/borgwalk2.ogg differ diff --git a/Resources/Audio/Effects/Grenades/SelfDestruct/SDS_Charge.ogg b/Resources/Audio/Effects/Grenades/SelfDestruct/SDS_Charge.ogg new file mode 100644 index 0000000000..5efc8f443b Binary files /dev/null and b/Resources/Audio/Effects/Grenades/SelfDestruct/SDS_Charge.ogg differ diff --git a/Resources/Audio/Effects/Grenades/SelfDestruct/SDS_Charge2.ogg b/Resources/Audio/Effects/Grenades/SelfDestruct/SDS_Charge2.ogg new file mode 100644 index 0000000000..662254fbaa Binary files /dev/null and b/Resources/Audio/Effects/Grenades/SelfDestruct/SDS_Charge2.ogg differ diff --git a/Resources/Audio/Effects/Grenades/SelfDestruct/attributions.yml b/Resources/Audio/Effects/Grenades/SelfDestruct/attributions.yml new file mode 100644 index 0000000000..cb8a425739 --- /dev/null +++ b/Resources/Audio/Effects/Grenades/SelfDestruct/attributions.yml @@ -0,0 +1,8 @@ +- files: + - SDS_Charge.ogg + - SDS_Charge2.ogg + license: Custom + source: https://freesound.org/people/Teh_Bucket/sounds/518739/ + # couldn't figure out how to source multiple (the right way) without shit breaking so heres the rest: https://pixabay.com/sound-effects/switchbigpowerwav-14710/ https://pixabay.com/sound-effects/shield-recharging-107016/ + copyright: '"Electric Charge + Shot" by Teh_Bucket on Freesound.org. This is adapted from multiple works by dylanperitz, satanicupsman, CaptainGusterd, arightwizard, BigKahuna360, michael_grinnell, weaveofkev, MichelleGrobler, Alex_John73, sandyrb and breo2012 all of Freesound.org. The work by sandyrb is licensed under CC-BY-4.0. , "switchbigpower-14710.wav" and "shield-recharging-107016.wav" by Pixabay on pixabay.com' + # i have no idea how to set these up, it uses all 3 sound effects and i copied the electric charge one from the powersink, godo diff --git a/Resources/Audio/Effects/chopstickbreak.ogg b/Resources/Audio/Effects/chopstickbreak.ogg new file mode 100644 index 0000000000..bac8ac0462 Binary files /dev/null and b/Resources/Audio/Effects/chopstickbreak.ogg differ diff --git a/Resources/Audio/Effects/spray3.ogg b/Resources/Audio/Effects/spray3.ogg new file mode 100644 index 0000000000..a9f493198c Binary files /dev/null and b/Resources/Audio/Effects/spray3.ogg differ diff --git a/Resources/Audio/Expedition/attributions.yml b/Resources/Audio/Expedition/attributions.yml new file mode 100644 index 0000000000..8bafcc6f11 --- /dev/null +++ b/Resources/Audio/Expedition/attributions.yml @@ -0,0 +1,9 @@ +- files: ["tension_session.ogg"] + license: "CC-BY-3.0" + copyright: "Created by qwertyquerty" + source: "https://www.youtube.com/@qwertyquerty" + +- files: ["deadline.ogg"] + license: "CC-BY-4.0" + copyright: "Bolgarich" + source: "https://www.youtube.com/watch?v=q7_NFEeeEac" diff --git a/Resources/Audio/Expedition/deadline.ogg b/Resources/Audio/Expedition/deadline.ogg new file mode 100644 index 0000000000..131016d891 Binary files /dev/null and b/Resources/Audio/Expedition/deadline.ogg differ diff --git a/Resources/Audio/Misc/tension_session.ogg b/Resources/Audio/Expedition/tension_session.ogg similarity index 100% rename from Resources/Audio/Misc/tension_session.ogg rename to Resources/Audio/Expedition/tension_session.ogg diff --git a/Resources/Audio/Items/attributions.yml b/Resources/Audio/Items/attributions.yml index c6fea50bd2..b3ae4f611f 100644 --- a/Resources/Audio/Items/attributions.yml +++ b/Resources/Audio/Items/attributions.yml @@ -93,6 +93,16 @@ copyright: "User Hanbaal on freesound.org. Converted to ogg by TheShuEd" source: "https://freesound.org/people/Hanbaal/sounds/178669/" +- files: ["soda_shake.ogg"] + license: "CC-BY-NC-4.0" + copyright: "User mcmast on freesound.org. Converted and edited by Tayrtahn" + source: "https://freesound.org/people/mcmast/sounds/456703/" + +- files: ["soda_spray.ogg"] + license: "CC0-1.0" + copyright: "User Hajisounds on freesound.org. Converted and edited by Tayrtahn" + source: "https://freesound.org/people/Hajisounds/sounds/709149/" + - files: ["newton_cradle.ogg"] license: "CC-BY-4.0" copyright: "User LoafDV on freesound.org. Converted to ogg end edited by lzk228" @@ -117,3 +127,10 @@ license: "CC0-1.0" copyright: "Original sound by stomachache on freesound.org, processed by vanilla" source: "https://freesound.org/s/262213/" + +- files: + - "sheath.ogg" + - "unsheath.ogg" + license: "CC-BY-SA-3.0" + copyright: "Taken from tgstation." + source: "https://github.com/tgstation/tgstation/blob/a7f525bce9a359ab5282fc754078cd4b5678a006/sound/items" diff --git a/Resources/Audio/Items/sheath.ogg b/Resources/Audio/Items/sheath.ogg new file mode 100644 index 0000000000..9e1d5cdc00 Binary files /dev/null and b/Resources/Audio/Items/sheath.ogg differ diff --git a/Resources/Audio/Items/soda_shake.ogg b/Resources/Audio/Items/soda_shake.ogg new file mode 100644 index 0000000000..a596379c93 Binary files /dev/null and b/Resources/Audio/Items/soda_shake.ogg differ diff --git a/Resources/Audio/Items/soda_spray.ogg b/Resources/Audio/Items/soda_spray.ogg new file mode 100644 index 0000000000..f4a5a3e803 Binary files /dev/null and b/Resources/Audio/Items/soda_spray.ogg differ diff --git a/Resources/Audio/Items/unsheath.ogg b/Resources/Audio/Items/unsheath.ogg new file mode 100644 index 0000000000..09867f5966 Binary files /dev/null and b/Resources/Audio/Items/unsheath.ogg differ diff --git a/Resources/Audio/Jukebox/attributions.yml b/Resources/Audio/Jukebox/attributions.yml index 8e48560ac6..48e1458c4c 100644 --- a/Resources/Audio/Jukebox/attributions.yml +++ b/Resources/Audio/Jukebox/attributions.yml @@ -20,3 +20,8 @@ license: "CC-BY-3.0" copyright: "Constellations by Qwertyquerty. Converted to mono OGG." source: "https://www.youtube.com/channel/UCPYbhBUGhH7n_G4HLK2YipQ" + +- files: ["sunset.ogg"] + license: "CC-BY-SA-3.0" + copyright: "Sunset by PigeonBeans. Exported in Mono OGG." + source: "https://soundcloud.com/pigeonbeans/sunset" \ No newline at end of file diff --git a/Resources/Audio/Jukebox/sunset.ogg b/Resources/Audio/Jukebox/sunset.ogg new file mode 100644 index 0000000000..3f6d909eaa Binary files /dev/null and b/Resources/Audio/Jukebox/sunset.ogg differ diff --git a/Resources/Audio/Machines/warning_buzzer.ogg b/Resources/Audio/Machines/warning_buzzer.ogg index 55bb179f57..bef16f46fb 100644 Binary files a/Resources/Audio/Machines/warning_buzzer.ogg and b/Resources/Audio/Machines/warning_buzzer.ogg differ diff --git a/Resources/Audio/Voice/Silicon/attributions.yml b/Resources/Audio/Voice/Silicon/attributions.yml new file mode 100644 index 0000000000..465f845503 --- /dev/null +++ b/Resources/Audio/Voice/Silicon/attributions.yml @@ -0,0 +1,4 @@ +- files: ["syndieborg_laugh.ogg"] + license: "CC0-1.0" + copyright: "Taken from vultraz168 freesound.org and modified by https://github.com/MilenVolf" + source: "https://freesound.org/people/vultraz168/sounds/334665/" diff --git a/Resources/Audio/Voice/Silicon/syndieborg_laugh.ogg b/Resources/Audio/Voice/Silicon/syndieborg_laugh.ogg new file mode 100644 index 0000000000..e0f425301e Binary files /dev/null and b/Resources/Audio/Voice/Silicon/syndieborg_laugh.ogg differ diff --git a/Resources/Audio/Voice/Talk/Silicon/attributions.yml b/Resources/Audio/Voice/Talk/Silicon/attributions.yml new file mode 100644 index 0000000000..3a16007758 --- /dev/null +++ b/Resources/Audio/Voice/Talk/Silicon/attributions.yml @@ -0,0 +1,10 @@ +- files: + - borg.ogg + - borg_ask.ogg + - borg_exclaim.ogg + - syndieborg.ogg + - syndieborg_ask.ogg + - syndieborg_exclaim.ogg + license: "CC-BY-SA-4.0" + copyright: "Recorded and mixed by https://github.com/MilenVolf" + source: "https://github.com/space-wizards/space-station-14/pull/27205" diff --git a/Resources/Audio/Voice/Talk/Silicon/borg.ogg b/Resources/Audio/Voice/Talk/Silicon/borg.ogg new file mode 100644 index 0000000000..afb9739035 Binary files /dev/null and b/Resources/Audio/Voice/Talk/Silicon/borg.ogg differ diff --git a/Resources/Audio/Voice/Talk/Silicon/borg_ask.ogg b/Resources/Audio/Voice/Talk/Silicon/borg_ask.ogg new file mode 100644 index 0000000000..fe2f60141a Binary files /dev/null and b/Resources/Audio/Voice/Talk/Silicon/borg_ask.ogg differ diff --git a/Resources/Audio/Voice/Talk/Silicon/borg_exclaim.ogg b/Resources/Audio/Voice/Talk/Silicon/borg_exclaim.ogg new file mode 100644 index 0000000000..5f0fdfe89e Binary files /dev/null and b/Resources/Audio/Voice/Talk/Silicon/borg_exclaim.ogg differ diff --git a/Resources/Audio/Voice/Talk/Silicon/syndieborg.ogg b/Resources/Audio/Voice/Talk/Silicon/syndieborg.ogg new file mode 100644 index 0000000000..60eb1a5ccf Binary files /dev/null and b/Resources/Audio/Voice/Talk/Silicon/syndieborg.ogg differ diff --git a/Resources/Audio/Voice/Talk/Silicon/syndieborg_ask.ogg b/Resources/Audio/Voice/Talk/Silicon/syndieborg_ask.ogg new file mode 100644 index 0000000000..acafe45642 Binary files /dev/null and b/Resources/Audio/Voice/Talk/Silicon/syndieborg_ask.ogg differ diff --git a/Resources/Audio/Voice/Talk/Silicon/syndieborg_exclaim.ogg b/Resources/Audio/Voice/Talk/Silicon/syndieborg_exclaim.ogg new file mode 100644 index 0000000000..392b4fd1cc Binary files /dev/null and b/Resources/Audio/Voice/Talk/Silicon/syndieborg_exclaim.ogg differ diff --git a/Resources/Changelog/Changelog.yml b/Resources/Changelog/Changelog.yml index 75f0e8a2b0..6d9b2ee3f7 100644 --- a/Resources/Changelog/Changelog.yml +++ b/Resources/Changelog/Changelog.yml @@ -6560,3 +6560,1142 @@ Entries: id: 6368 time: '2024-10-16T02:13:34.0000000+00:00' url: https://github.com/WWhiteDreamProject/wwdpublic/pull/85 +- author: Mnemotechnician + changes: + - type: Add + message: >- + The "food recipes" page in guidebook now contains an automatically + generated list of food recipes. + id: 6341 + time: '2024-09-11T17:55:11.0000000+00:00' + url: https://github.com/Simple-Station/Einstein-Engines/pull/783 +- author: VMSolidus + changes: + - type: Add + message: Rat Kings have returned to the default event rotation. + id: 6342 + time: '2024-09-11T19:59:32.0000000+00:00' + url: https://github.com/Simple-Station/Einstein-Engines/pull/903 +- author: VMSolidus + changes: + - type: Add + message: Jetpacks now work in zero gravity. + - type: Add + message: >- + New CCVar "jetpack.enable_anywhere" allows server hosts to optionally + make it so that jetpacks can be used anywhere, even in gravity and on + grids. + - type: Add + message: >- + New CCVar "jetpack.enable_in_no_gravity" allows server hosts to + optionally disable jetpacks being usable in zero gravity. + id: 6343 + time: '2024-09-11T19:59:45.0000000+00:00' + url: https://github.com/Simple-Station/Einstein-Engines/pull/901 +- author: VMSolidus + changes: + - type: Add + message: >- + Medical Job related items are now part of a Medical loadout group, and + have all been significantly discounted. + id: 6344 + time: '2024-09-11T20:00:07.0000000+00:00' + url: https://github.com/Simple-Station/Einstein-Engines/pull/902 +- author: Tilkku + changes: + - type: Tweak + message: Penlight Exam Messages + - type: Fix + message: Penlights now need to be on in order to examine + - type: Fix + message: Penlights can no longer be used on self + id: 6345 + time: '2024-09-11T20:02:51.0000000+00:00' + url: https://github.com/Simple-Station/Einstein-Engines/pull/900 +- author: Mnemotechnician + changes: + - type: Fix + message: Fixed a couple issues with the language menu UI and translators. + id: 6346 + time: '2024-09-11T20:03:25.0000000+00:00' + url: https://github.com/Simple-Station/Einstein-Engines/pull/893 +- author: Mocho + changes: + - type: Add + message: >- + Cargo Job related items are now part of a Cargo loadout group, and have + all been significantly discounted. + id: 6347 + time: '2024-09-11T20:27:13.0000000+00:00' + url: https://github.com/Simple-Station/Einstein-Engines/pull/909 +- author: Mocho + changes: + - type: Add + message: >- + Security Job related items are now part of a Security loadout group, and + have all been significantly discounted. + id: 6348 + time: '2024-09-11T20:39:55.0000000+00:00' + url: https://github.com/Simple-Station/Einstein-Engines/pull/908 +- author: Mocho + changes: + - type: Add + message: >- + Service Job related items are now part of a Service loadout group, and + have all been significantly discounted. + - type: Tweak + message: >- + Musicians now have significant discounts on all instruments in loadouts, + but can only take a maximum of 3. + id: 6349 + time: '2024-09-11T20:52:21.0000000+00:00' + url: https://github.com/Simple-Station/Einstein-Engines/pull/906 +- author: Mocho + changes: + - type: Add + message: >- + Engineering Job related items are now part of a Engineering loadout + group, and have all been significantly discounted. + id: 6350 + time: '2024-09-11T21:03:37.0000000+00:00' + url: https://github.com/Simple-Station/Einstein-Engines/pull/907 +- author: Squishy77 + changes: + - type: Add + message: >- + added rcds to the list of possible re and ported over the re update from + delta + - type: Tweak + message: >- + tweaked the costs of boards re-machine boards to be more consistent with + their post hyper lathe update counter parts + id: 6351 + time: '2024-09-12T00:12:39.0000000+00:00' + url: https://github.com/Simple-Station/Einstein-Engines/pull/910 +- author: SleepyScarecrow + changes: + - type: Tweak + message: Ethanol Contents + - type: Fix + message: SnowWhite Recipe + - type: Tweak + message: Ethanol overdose changed from 15 to 45 + id: 6352 + time: '2024-09-12T00:14:06.0000000+00:00' + url: https://github.com/Simple-Station/Einstein-Engines/pull/911 +- author: Mnemotechnician + changes: + - type: Add + message: Ported a number of jukebox songs from Delta-V. + id: 6353 + time: '2024-09-12T00:14:56.0000000+00:00' + url: https://github.com/Simple-Station/Einstein-Engines/pull/912 +- author: Skubman + changes: + - type: Fix + message: >- + Blood Deficiency now makes you lose a consistent percentage of blood + regardless of your blood volume, which is dictated by size. This makes + the time to low blood and death consistent for every character of all + sizes with this trait. + id: 6354 + time: '2024-09-12T00:15:18.0000000+00:00' + url: https://github.com/Simple-Station/Einstein-Engines/pull/895 +- author: stellar-novas + changes: + - type: Add + message: Airlocks once again have access wires. Happy hacking! + id: 6355 + time: '2024-09-14T00:48:34.0000000+00:00' + url: https://github.com/Simple-Station/Einstein-Engines/pull/916 +- author: Mocho + changes: + - type: Add + message: >- + Science Job related items are now part of a Science loadout group, and + have all been significantly discounted. + - type: Add + message: Added more clothing to the science section in loadouts. + - type: Tweak + message: Adjusted command loadout item pricing. + - type: Tweak + message: Added localization strings for the new loadout groups. + id: 6356 + time: '2024-09-14T01:00:26.0000000+00:00' + url: https://github.com/Simple-Station/Einstein-Engines/pull/914 +- author: VMSolidus + changes: + - type: Add + message: >- + Added missing Localizations for Departments, Jobs, and Loadout Item + Groups. + - type: Add + message: >- + Bartender-Specific loadouts! Bartenders can now choose to spawn with + either their classic shotgun, or a Mosin Nagant that comes preloaded + with rubber bullets. + id: 6357 + time: '2024-09-14T01:12:40.0000000+00:00' + url: https://github.com/Simple-Station/Einstein-Engines/pull/915 +- author: CilliePaint + changes: + - type: Tweak + message: Stuffed Lawyer's Pockets with Space Law guides! + - type: Remove + message: Took away Atmos backpacks as Starting equipment. + id: 6358 + time: '2024-09-14T05:41:40.0000000+00:00' + url: https://github.com/Simple-Station/Einstein-Engines/pull/897 +- author: Mnemotechnician + changes: + - type: Add + message: >- + You can now choose whether you want to walk or run by default in the + settings. + id: 6359 + time: '2024-09-14T05:44:56.0000000+00:00' + url: https://github.com/Simple-Station/Einstein-Engines/pull/889 +- author: VMSolidus + changes: + - type: Add + message: >- + Drug Addictions! Drug addictions are long lasting Moodlet-Pairs. The + first consisting of a temporary Mood bonus that is refreshed by + consuming the drug, and the second consisting of an extremely long + lasting mood penalty, which replaces the mood bonus should you go a long + enough time between consuming the drug in question. + - type: Add + message: Nicotine Addiction has been added as a new minor negative trait. + - type: Add + message: >- + Drugs/Reagents can now affect your character's Mood! Both with, and + without Addiction. + - type: Add + message: >- + TraitSystem has had functionality added for directly adding Moodlets to + a character upon joining the round, such as drug addictions, or + permanent mood modifications like Sanguine/Saturnine + - type: Add + message: >- + Lotophagoi Oil now induces an extremely powerful drug addiction, + providing an extremely large mood benefit for a short time. Which when + it wears off, creates an equally extreme mood penalty that lasts for a + very long time(or until you drink more Loto Oil). + id: 6360 + time: '2024-09-14T06:48:55.0000000+00:00' + url: https://github.com/Simple-Station/Einstein-Engines/pull/896 +- author: Mnemotechnician + changes: + - type: Fix + message: Cyborg recharging stations finally work again. + - type: Fix + message: >- + Rehydratable entities (such as monkey cubes) no longer spawn a second + client-side entity when rehydrated. + id: 6361 + time: '2024-09-14T17:55:41.0000000+00:00' + url: https://github.com/Simple-Station/Einstein-Engines/pull/888 +- author: VMSolidus + changes: + - type: Tweak + message: The Uncloneable trait is only worth one point now. + id: 6362 + time: '2024-09-14T18:01:21.0000000+00:00' + url: https://github.com/Simple-Station/Einstein-Engines/pull/868 +- author: Mocho + changes: + - type: Add + message: >- + Harpies are now able to fly on station for limited periods of time, + moving faster at the cost of stamina. + id: 6363 + time: '2024-09-16T04:41:44.0000000+00:00' + url: https://github.com/Simple-Station/Einstein-Engines/pull/919 +- author: Mnemotechnician + changes: + - type: Add + message: >- + Pulling has been reworked. Your character will now try to continuously + push the pulled entity when you use the push keybind. + - type: Remove + message: >- + You can no longer push the pulled entity while walking, and pushing now + follows the momentum conservation laws. + id: 6364 + time: '2024-09-17T23:38:45.0000000+00:00' + url: https://github.com/Simple-Station/Einstein-Engines/pull/883 +- author: VMSolidus + changes: + - type: Tweak + message: >- + Core now has a 6-Core AME, which is supplied with two jars of fuel. This + should give Engineers significantly more than 20 minutes of time to + setup the Supermatter engine. + id: 6365 + time: '2024-09-17T23:39:07.0000000+00:00' + url: https://github.com/Simple-Station/Einstein-Engines/pull/927 +- author: JayJacobs + changes: + - type: Tweak + message: Changed the sprite of the barber chair. + - type: Fix + message: Fixed bench textures. + id: 6366 + time: '2024-09-17T23:39:57.0000000+00:00' + url: https://github.com/Simple-Station/Einstein-Engines/pull/925 +- author: VMSolidus + changes: + - type: Fix + message: >- + Cloning Consoles will now correctly state when a body has the + Uncloneable trait. + id: 6368 + time: '2024-09-18T04:30:39.0000000+00:00' + url: https://github.com/Simple-Station/Einstein-Engines/pull/926 +- author: FoxxoTrystan + changes: + - type: Remove + message: DeltaV Option Tab (Options moved) + id: 6370 + time: '2024-09-19T02:24:25.0000000+00:00' + url: https://github.com/Simple-Station/Einstein-Engines/pull/928 +- author: Hell_Cat + changes: [] + id: 6371 + time: '2024-09-19T03:29:41.0000000+00:00' + url: https://github.com/Simple-Station/Einstein-Engines/pull/929 +- author: VMSolidus + changes: + - type: Fix + message: >- + Fixed issues with the LayingDownSystem. Laying down no longer causes all + entities on your screen to lay down at once. Using any movement input no + longer causes the character to appear to the player as to be laying + down. + id: 6372 + time: '2024-09-19T20:37:51.0000000+00:00' + url: https://github.com/Simple-Station/Einstein-Engines/pull/933 +- author: VMSolidus + changes: + - type: Fix + message: >- + UniversalLanguageSpeaker(And Xenoglossy by extension) will now appear in + your language menu alongside other known languages, rather than replace + all known languages. You can effectively now choose whether or not to + speak it, or to use a normal language. + - type: Add + message: Traits can now add Languages directly. + - type: Add + message: Traits can now remove Languages directly. + id: 6373 + time: '2024-09-20T01:47:52.0000000+00:00' + url: https://github.com/Simple-Station/Einstein-Engines/pull/899 +- author: VMSolidus + changes: + - type: Add + message: >- + Melee Weapons can now individually define their interactions with the + ContestsSystem. + - type: Add + message: >- + Added the ContestArgs type, allowing arbitrarily any component to + contain a list of arguments for ContestSystems. + - type: Add + message: >- + Added the ContestConstructor, a new type of meta-Contest that enables + other systems to use components to define all possible contest + behaviors, rather than needing to hardcode specific interactions. + id: 6374 + time: '2024-09-20T02:48:43.0000000+00:00' + url: https://github.com/Simple-Station/Einstein-Engines/pull/934 +- author: gluesniffler + changes: + - type: Add + message: >- + Adds an optional server variable which allows entities to crawl under + tables. + - type: Tweak + message: >- + Tables and plastic flaps are less resistant to damage, and can now be + targeted by guns by aiming on top of them. + id: 6375 + time: '2024-09-20T19:34:02.0000000+00:00' + url: https://github.com/Simple-Station/Einstein-Engines/pull/939 +- author: VMSolidus + changes: + - type: Tweak + message: >- + JukeOperator now allows for JukeDuration and JukeCooldown arguments. + JukeCooldown is a new feature where enemies must wait an amount of time + in seconds equal to the JukeCooldown, before they are allowed to attempt + to dodge a melee attack. + - type: Tweak + message: >- + By default, NPCs will only attempt to dodge attacks once every 5 + seconds. + - type: Fix + message: >- + JukeOperator now performs extremely expensive math 5000 times less + often. EXIT CONDITIONS PEOPLE! + id: 6377 + time: '2024-09-20T20:05:31.0000000+00:00' + url: https://github.com/Simple-Station/Einstein-Engines/pull/935 +- author: VMSolidus + changes: + - type: Add + message: >- + All "Long-arms", Rifles, Light Machine Guns, Shotguns, now require + wielding to use. + id: 6378 + time: '2024-09-20T20:35:43.0000000+00:00' + url: https://github.com/Simple-Station/Einstein-Engines/pull/913 +- author: zelezniciar + changes: + - type: Add + message: Added Atmospheric Alerts Computer + id: 6379 + time: '2024-09-20T21:46:38.0000000+00:00' + url: https://github.com/Simple-Station/Einstein-Engines/pull/922 +- author: VMSolidus + changes: + - type: Add + message: 'A basic Languages menu has been added into the Traits tab. ' + - type: Add + message: >- + Tau-Ceti Basic, Tradeband, Freespeak, Elyran Standard, Sol Common, and + Sign Language have been added to the Languages tab. + id: 6380 + time: '2024-09-20T21:46:47.0000000+00:00' + url: https://github.com/Simple-Station/Einstein-Engines/pull/936 +- author: VMSolidus + changes: + - type: Remove + message: >- + Removed the "Become Psionic" traitor objective. It was literally + impossible to fail if you took the Latent Psychic trait, and literally + impossible to greentext if you didn't. + id: 6381 + time: '2024-09-20T21:47:16.0000000+00:00' + url: https://github.com/Simple-Station/Einstein-Engines/pull/940 +- author: VMSolidus + changes: + - type: Add + message: Part Upgrading has returned! + id: 6382 + time: '2024-09-21T22:46:49.0000000+00:00' + url: https://github.com/Simple-Station/Einstein-Engines/pull/917 +- author: VMSolidus + changes: + - type: Add + message: >- + Healing Word has been added as a new Psionic Power. When cast on another + person, it heals a small amount of every damage type(scaling with + Casting Stats), while also reducing rot timers. Healing Word has a very + short cooldown, and a fairly low Glimmer cost. + - type: Add + message: >- + Breath of Life has been added as a new extremely rare Psionic Power. + When cast on another person, it heals a large amount of damage(scaling + with Casting Stats), while also substantially reducing rot timers. + Additionally, it will revive the target if it is possible to do so. + Breath of Life has an incredibly long cooldown, a long interuptable cast + time, and an extraordinarily high glimmer cost(A typical Psion will + spike glimmer by more than 50 points when casting it). + - type: Add + message: The Chaplain now starts with the Healing Word power. + id: 6384 + time: '2024-09-21T22:50:01.0000000+00:00' + url: https://github.com/Simple-Station/Einstein-Engines/pull/942 +- author: VMSolidus + changes: + - type: Add + message: >- + Bottles, Drink Glasses, Plates, and all liquid containers are now struck + by bullets(and most likely destroyed in the process). We hope that this + will offer both a small tactical advantage/disadvantage, as well as + contribute to making gunfights around the bar more "Cinematic". + - type: Add + message: >- + Chairs are now hit by projectiles if a shooter clicks on them, in + addition to Tables. + id: 6385 + time: '2024-09-21T23:22:43.0000000+00:00' + url: https://github.com/Simple-Station/Einstein-Engines/pull/943 +- author: VMSolidus + changes: + - type: Fix + message: >- + Fixed a bug where Breath of Life and Healing Word would set living + people to crit, which would knock them down. + - type: Fix + message: >- + Fixed a bug where Breath of Life could revive people who were rotten(It + will still heal them and reduce the rot timer as intended, but will not + revive unless said rot timer reduction brings them below the 10 minute + threshold). + - type: Add + message: >- + The Do-After bar for Breath of Life and Healing Word is now hidden if + glimmer is low enough. The threshold for which scales with your + Dampening stat. More Dampening = stealthier casting. + id: 6386 + time: '2024-09-24T00:56:34.0000000+00:00' + url: https://github.com/Simple-Station/Einstein-Engines/pull/949 +- author: Mocho + changes: + - type: Add + message: >- + Added a lot of recipes to the quick construction menus. Give it a shot + by pressing Z with different construction materials in your hand! + id: 6387 + time: '2024-09-24T00:56:45.0000000+00:00' + url: https://github.com/Simple-Station/Einstein-Engines/pull/945 +- author: VMSolidus + changes: + - type: Fix + message: >- + IPC now weigh 71kg by default instead of 5kg. Seriously who the fuck + made the BeepBoops out of feathers!?! + id: 6388 + time: '2024-09-25T05:09:06.0000000+00:00' + url: https://github.com/Simple-Station/Einstein-Engines/pull/959 +- author: fenndragon + changes: + - type: Add + message: Added new neutral xenos, events, and reagent slimes + id: 6389 + time: '2024-09-26T15:06:54.0000000+00:00' + url: https://github.com/Simple-Station/Einstein-Engines/pull/956 +- author: VMSolidus + changes: + - type: Add + message: Backpacks, Duffelbags, and Satchels have been added to loadouts. + - type: Remove + message: >- + The button for "Backpack Preference" has been removed. Backpacks + selection is now done via Loadouts. + - type: Remove + message: >- + The button for "Suit/Skirt Preference" has also been removed. Suit + selection is done via Loadouts. + id: 6390 + time: '2024-09-28T00:46:19.0000000+00:00' + url: https://github.com/Simple-Station/Einstein-Engines/pull/957 +- author: VMSolidus + changes: + - type: Fix + message: Fixed a bug where the button to reboot IPCs wasn't appearing. + id: 6391 + time: '2024-09-28T02:23:54.0000000+00:00' + url: https://github.com/Simple-Station/Einstein-Engines/pull/963 +- author: VMSolidus + changes: + - type: Fix + message: Fix a crash related to Luminous Entities. + id: 6392 + time: '2024-09-28T02:28:40.0000000+00:00' + url: https://github.com/Simple-Station/Einstein-Engines/pull/954 +- author: VMSolidus + changes: + - type: Fix + message: >- + Smoking cigarettes or drinking loto oil will no longer spam moodlet + popup messages. + id: 6393 + time: '2024-09-28T02:30:18.0000000+00:00' + url: https://github.com/Simple-Station/Einstein-Engines/pull/948 +- author: Mnemotechnician + changes: + - type: Tweak + message: Noospheric events should once again occur on lower glimmer levels. + id: 6394 + time: '2024-09-28T02:43:48.0000000+00:00' + url: https://github.com/Simple-Station/Einstein-Engines/pull/969 +- author: Mnemotechnician + changes: + - type: Tweak + message: >- + Pushing something no longer causes your character to move, but only if + there is gravity holding you down. + - type: Tweak + message: >- + Pushing an object with Ctrl-RMB now pushes it continuously for up to 5 + seconds instead of 2. + id: 6395 + time: '2024-09-28T02:44:07.0000000+00:00' + url: https://github.com/Simple-Station/Einstein-Engines/pull/966 +- author: VMSolidus + changes: + - type: Add + message: Humans can now have tail and ear markings. + id: 6396 + time: '2024-09-28T03:10:14.0000000+00:00' + url: https://github.com/Simple-Station/Einstein-Engines/pull/964 +- author: VMSolidus + changes: + - type: Add + message: >- + Harpies now have their own species-specific language, called Valyrian + Standard + - type: Add + message: >- + Valyrian Standard can now be bought as an extra language in the Traits + menu. + id: 6397 + time: '2024-09-28T14:42:50.0000000+00:00' + url: https://github.com/Simple-Station/Einstein-Engines/pull/968 +- author: VMSolidus + changes: + - type: Fix + message: >- + Fixed a bug with Healing Word and Breath of Life where if the caster was + moved by another person mid-cast, they would permanently become unable + to cast it again. + id: 6398 + time: '2024-09-29T01:43:20.0000000+00:00' + url: https://github.com/Simple-Station/Einstein-Engines/pull/970 +- author: VMSolidus + changes: + - type: Remove + message: >- + Removed the Psionics Guidebook. It was straight up wrong about most + things, and is not ever going to be updated to match new Psionics + Content. You are fully intended to "FIND OUT IN GAME" how things work + through guessing, trial and error, and just pure happenstance. + Experiment with shit. The popups are intentionally vague. You're + supposed to think about what they mean. Stop asking admins in Ahelps + what the vague text means. + id: 6399 + time: '2024-09-29T01:43:32.0000000+00:00' + url: https://github.com/Simple-Station/Einstein-Engines/pull/972 +- author: Aikakakah + changes: + - type: Fix + message: Fixed markings having incomplete names for color sections + - type: Fix + message: Fixed IPC marking categories + id: 6400 + time: '2024-09-29T01:58:28.0000000+00:00' + url: https://github.com/Simple-Station/Einstein-Engines/pull/974 +- author: VMSolidus + changes: + - type: Fix + message: >- + Nerfed the fuck out of Reagent Slimes. They have 1/3rd as much HP, spawn + half as many during reagent slime vents, deal significantly less damage, + and inject a lot less chems when biting people. + id: 6401 + time: '2024-09-29T17:42:43.0000000+00:00' + url: https://github.com/Simple-Station/Einstein-Engines/pull/977 +- author: Mnemotechnician + changes: + - type: Fix + message: >- + Fixed multiple minor issues with interaction verbs. Most importantly, + interaction popups will now always be shown correctly. + id: 6402 + time: '2024-09-30T16:27:47.0000000+00:00' + url: https://github.com/Simple-Station/Einstein-Engines/pull/965 +- author: VMSolidus + changes: + - type: Add + message: Added Shadeskip as a new psionic power. + id: 6404 + time: '2024-09-30T18:04:20.0000000+00:00' + url: https://github.com/Simple-Station/Einstein-Engines/pull/987 +- author: VMSolidus + changes: + - type: Add + message: 'Mood System now has some interactions with Psionics. ' + id: 6405 + time: '2024-09-30T18:28:21.0000000+00:00' + url: https://github.com/Simple-Station/Einstein-Engines/pull/988 +- author: VMSolidus + changes: + - type: Add + message: >- + 7 new Psionic-related Traits have been added to the game: High + Psi-Potential, Low Psi-Potential, Power Overwhelming, kα Abundance, kα + Deficiency, kδ Proficient, and kδ Defect + - type: Add + message: >- + Oni now have a built-in negative trait that acts as a more severe + version of Low Psi-Potential. Oni now have significant penalties to + generating new Psionic Powers. + id: 6406 + time: '2024-09-30T18:28:31.0000000+00:00' + url: https://github.com/Simple-Station/Einstein-Engines/pull/983 +- author: Mnemotechnician + changes: + - type: Add + message: >- + Narcolepsy has been reworked. You can now know when you're about to fall + asleep, and can choose to go to sleep willingly to reset the narcolepsy + timer and avoid an incident. + id: 6407 + time: '2024-09-30T19:04:22.0000000+00:00' + url: https://github.com/Simple-Station/Einstein-Engines/pull/967 +- author: zelezniciar + changes: + - type: Fix + message: >- + Space dragons that get butchered or gibbed will now drop devoured + corpses. + id: 6408 + time: '2024-10-01T21:34:55.0000000+00:00' + url: https://github.com/Simple-Station/Einstein-Engines/pull/992 +- author: VMSolidus + changes: + - type: Fix + message: >- + Rampant Brand Intelligence has been unreverted. It was reverted by + complete accident a few weeks ago. I apologize to anyone who missed the + thrill of killing murderous vending machines. + id: 6409 + time: '2024-10-01T21:39:51.0000000+00:00' + url: https://github.com/Simple-Station/Einstein-Engines/pull/947 +- author: VMSolidus + changes: + - type: Fix + message: >- + Fixed the Markings menu by adding a scroll container to it. Markings + with greater than 2 color selections can now be used. + id: 6410 + time: '2024-10-01T21:43:17.0000000+00:00' + url: https://github.com/Simple-Station/Einstein-Engines/pull/997 +- author: VMSolidus + changes: + - type: Add + message: Immovable Rod Event has returned + - type: Add + message: >- + Immovable Rod Event has been made more fair. It won't automatically gib + people, just crit them with a ton of blunt damage(That you can survive + by wearing good armor), or just being an Oni funnily enough. + id: 6411 + time: '2024-10-02T01:31:29.0000000+00:00' + url: https://github.com/Simple-Station/Einstein-Engines/pull/973 +- author: VMSolidus + changes: + - type: Add + message: >- + Added a full Guidebook entry for Harpies. Unlike previous species + guidebooks, this document contains extensive lore and background + information for Harpies, in addition to notes on their game mechanics. + id: 6412 + time: '2024-10-02T01:32:07.0000000+00:00' + url: https://github.com/Simple-Station/Einstein-Engines/pull/993 +- author: VMSolidus + changes: + - type: Add + message: 13 new Kemonomimi-Style markings. 4 Ears, and 9 new tails! + id: 6413 + time: '2024-10-02T01:32:29.0000000+00:00' + url: https://github.com/Simple-Station/Einstein-Engines/pull/981 +- author: fenndragon + changes: + - type: Tweak + message: 'Tweaked the spawnrate of certain mobs within the ventcritters rule. ' + id: 6414 + time: '2024-10-02T01:34:19.0000000+00:00' + url: https://github.com/Simple-Station/Einstein-Engines/pull/982 +- author: VMSolidus + changes: + - type: Add + message: Grapple & Tether Guns have been re-added. + id: 6415 + time: '2024-10-02T02:19:46.0000000+00:00' + url: https://github.com/Simple-Station/Einstein-Engines/pull/1000 +- author: Fansana + changes: + - type: Fix + message: Fixes door access for mail doors + id: 6416 + time: '2024-10-02T23:14:55.0000000+00:00' + url: https://github.com/Simple-Station/Einstein-Engines/pull/986 +- author: VMSolidus + changes: + - type: Add + message: Added Telekinetic Pulse power. + - type: Fix + message: Fixed a crash related to Shadeskip + id: 6417 + time: '2024-10-04T00:14:21.0000000+00:00' + url: https://github.com/Simple-Station/Einstein-Engines/pull/1002 +- author: Mnemotechnician + changes: + - type: Fix + message: Winter boots are no longer able to protect you from insane temperatures. + id: 6420 + time: '2024-10-04T00:52:11.0000000+00:00' + url: https://github.com/Simple-Station/Einstein-Engines/pull/1004 +- author: VMSolidus + changes: + - type: Fix + message: >- + Fixed a bug with CloningSystem. It now correctly spills blood upon + cloning fail. + id: 6421 + time: '2024-10-05T14:28:32.0000000+00:00' + url: https://github.com/Simple-Station/Einstein-Engines/pull/1009 +- author: Mocho + changes: + - type: Fix + message: >- + Fixed downed entities having their draw depth set incorrectly after + being picked up, or laying on a bed. + id: 6422 + time: '2024-10-07T15:28:36.0000000+00:00' + url: https://github.com/Simple-Station/Einstein-Engines/pull/1017 +- author: VMSolidus + changes: + - type: Tweak + message: >- + Nerfed Lotophagoi Moodlets so that both the positive and negative + moodlets only last for 10 minutes. The total mood modification has been + left untouched. + id: 6423 + time: '2024-10-07T15:29:05.0000000+00:00' + url: https://github.com/Simple-Station/Einstein-Engines/pull/1013 +- author: VMSolidus + changes: + - type: Add + message: >- + Shadeskip no longer creates Stationwide Shadow Kudzu when casting at + high glimmer. + id: 6424 + time: '2024-10-07T15:29:16.0000000+00:00' + url: https://github.com/Simple-Station/Einstein-Engines/pull/1012 +- author: VMSolidus + changes: + - type: Add + message: >- + The Salvage Shittle has been replaced with the Pathfinder Expedition + Vessel from Frontier. + id: 6425 + time: '2024-10-09T01:17:11.0000000+00:00' + url: https://github.com/Simple-Station/Einstein-Engines/pull/1027 +- author: VMSolidus + changes: + - type: Add + message: Salvage techs can now buy a Crusher Dagger in their loadout. + - type: Fix + message: Re-Added the Crusher weapons to salvage spawners. + id: 6426 + time: '2024-10-09T01:17:38.0000000+00:00' + url: https://github.com/Simple-Station/Einstein-Engines/pull/1026 +- author: Ichaie + changes: + - type: Add + message: A new map called NCS Gax has been added to rotation. + id: 6427 + time: '2024-10-09T01:37:57.0000000+00:00' + url: https://github.com/Simple-Station/Einstein-Engines/pull/1019 +- author: VMSolidus + changes: + - type: Tweak + message: Almost all security loadout gear is now free. + - type: Remove + message: >- + All Security roles no longer spawn with a pistol by default. This has + been moved to Loadouts. + - type: Add + message: >- + Security characters can now choose from a selection of different + firearms to use as their Duty Weapon. Disablers, Mk58, and Inspector + revolvers are free, fancier weapons such as an N1984 can be bought with + loadout points. + - type: Add + message: Oni can opt to take a Truncheon in lieu of a handgun. + - type: Add + message: >- + Security characters can now take handgun magazines and spare magazines + in their loadouts. + - type: Add + message: Security Backpacks to loadouts. + - type: Fix + message: >- + Fixed issues with the security belt options(webbing, belt, holster) not + correctly replacing the original item, and also not containing items + either. + id: 6428 + time: '2024-10-09T15:37:08.0000000+00:00' + url: https://github.com/Simple-Station/Einstein-Engines/pull/1025 +- author: VMSolidus + changes: + - type: Fix + message: >- + Fixed High & Low Psi-Potential traits lacking a requirement that you + don't have the opposite trait. The two were mutually exclusive, so + taking both caused issues. + id: 6429 + time: '2024-10-09T15:37:29.0000000+00:00' + url: https://github.com/Simple-Station/Einstein-Engines/pull/1022 +- author: VMSolidus + changes: + - type: Fix + message: Fixed localizations for the Sinta'Azaziba language. + id: 6430 + time: '2024-10-09T15:39:59.0000000+00:00' + url: https://github.com/Simple-Station/Einstein-Engines/pull/1020 +- author: Mnemotechnician + changes: + - type: Add + message: >- + Animals now have more unique things to say when not controlled by a + player. + id: 6431 + time: '2024-10-09T15:48:57.0000000+00:00' + url: https://github.com/Simple-Station/Einstein-Engines/pull/1003 +- author: VMSolidus + changes: + - type: Fix + message: Glimmer Mites can no longer spawn anywhere other than "THE" Station. + id: 6432 + time: '2024-10-09T16:12:10.0000000+00:00' + url: https://github.com/Simple-Station/Einstein-Engines/pull/976 +- author: FoxxoTrystan + changes: + - type: Add + message: Custom Species Names. + id: 6433 + time: '2024-10-09T16:12:20.0000000+00:00' + url: https://github.com/Simple-Station/Einstein-Engines/pull/994 +- author: VMSolidus + changes: + - type: Add + message: >- + Logistics can now directly order a variety of hardsuits. "NT In-Network" + hardsuits being substantially cheaper thanks to backroom deals. + id: 6434 + time: '2024-10-09T23:01:29.0000000+00:00' + url: https://github.com/Simple-Station/Einstein-Engines/pull/1024 +- author: VMSolidus + changes: + - type: Remove + message: The X-01 multiphase energy gun has been removed from the HoS locker. + - type: Add + message: >- + A new Loadout Item Group, "Head of Security's Antique Weapon Collection" + has been added. Rather than being given a unique weapon by whatever map + creators put in the HoS Office, each Head of Security is entitled to a + single item selected from this new loadout category, free of charge. But + beware, whatever item chosen from this list may potentially be used as a + Steal Objective for traitors. You may have a fancy new submachine gun, + but it also makes you a target. + - type: Add + message: >- + antique Bulldog, antique C-20r submachine gun, x-01 multiphase energy + gun, antique energy sword, antique pulse pistol, antique Wt550, and a + pair of Katana Sheaths have all been added as loadout options for the + Head of Security. + id: 6436 + time: '2024-10-11T01:43:36.0000000+00:00' + url: https://github.com/Simple-Station/Einstein-Engines/pull/1031 +- author: Ichaie + changes: + - type: Add + message: A map called "RadStation" has been added to rotation. + - type: Add + message: A new Evac shuttle called "emergency_neol" has been added to RadStation + id: 6437 + time: '2024-10-11T16:05:53.0000000+00:00' + url: https://github.com/Simple-Station/Einstein-Engines/pull/1034 +- author: Mnemotechnician + changes: + - type: Add + message: >- + Sleeping and muzzled entities can no longer use vocal emotes (scream, + meow, etc). + id: 6438 + time: '2024-10-11T16:08:48.0000000+00:00' + url: https://github.com/Simple-Station/Einstein-Engines/pull/1037 +- author: VMSolidus + changes: + - type: Add + message: >- + Added Bluespace and Normality ore as very rare ore types. Salvage can + occasionally find these ores on Asteroids or on Expedition planets. + Bluespace and Normality Ore can be smelted in an Ore Processor into + Bluespace and Normality Crystals. Make sure to bring these to Epistemics + so that they can do their job. + id: 6439 + time: '2024-10-12T20:49:32.0000000+00:00' + url: https://github.com/Simple-Station/Einstein-Engines/pull/1042 +- author: Fansana + changes: + - type: Fix + message: Fixes the arrivals shuttle choosing to correct docking port. + id: 6440 + time: '2024-10-13T16:38:30.0000000+00:00' + url: https://github.com/Simple-Station/Einstein-Engines/pull/1040 +- author: FoxxoTrystan + changes: + - type: Fix + message: Oneirophage is once more psionic invisible in webs. + id: 6441 + time: '2024-10-13T18:33:59.0000000+00:00' + url: https://github.com/Simple-Station/Einstein-Engines/pull/1033 +- author: Mnemotechnician + changes: + - type: Add + message: >- + You can now toggle crawling under furniture! The default keybind is + Shift-R, you can change it in settings. + id: 6442 + time: '2024-10-13T18:34:58.0000000+00:00' + url: https://github.com/Simple-Station/Einstein-Engines/pull/1036 +- author: DEATHB4DEFEAT + changes: + - type: Tweak + message: Made the show clothing/loadouts button labels more clear + id: 6443 + time: '2024-10-13T18:41:16.0000000+00:00' + url: https://github.com/Simple-Station/Einstein-Engines/pull/1030 +- author: VMSolidus + changes: + - type: Tweak + message: Brains now can no longer be eaten. + id: 6444 + time: '2024-10-13T18:51:26.0000000+00:00' + url: https://github.com/Simple-Station/Einstein-Engines/pull/1044 +- author: VMSolidus + changes: + - type: Add + message: >- + Added 8 new Physical Traits. These are, Cyber-Eyes Basic System(Plus 4 + different modular options), Bionic Arm, Dermal Armor, and Platelet + Factories. + id: 6445 + time: '2024-10-13T19:25:05.0000000+00:00' + url: https://github.com/Simple-Station/Einstein-Engines/pull/1035 +- author: Mnemotechnician + changes: + - type: Add + message: >- + The Courier and Logistics Officer now have a new program in their PDA + for tracking mail delivery performance, including earnings and percent + of packages opened, damaged, or expired. + - type: Add + message: >- + The list of possible mail packages has been greately expanded, and now + includes large parcels. + - type: Add + message: >- + The CourierDrobe now offers a rapid mail delivery device, along with + capsules for it. + id: 6447 + time: '2024-10-13T19:38:19.0000000+00:00' + url: https://github.com/Simple-Station/Einstein-Engines/pull/1011 +- author: DEATHB4DEFEAT + changes: + - type: Add + message: Merged 400 WizDen PRs. Happy testing! + id: 6448 + time: '2024-10-14T16:10:08.0000000+00:00' + url: https://github.com/Simple-Station/Einstein-Engines/pull/944 +- author: Aidenkrz + changes: + - type: Fix + message: Reverse engineering machine UI works again. + id: 6449 + time: '2024-10-15T23:05:13.0000000+00:00' + url: https://github.com/Simple-Station/Einstein-Engines/pull/1053 +- author: Aidenkrz + changes: + - type: Fix + message: Arachne no longer turn into errors when they take damage + id: 6450 + time: '2024-10-15T23:05:44.0000000+00:00' + url: https://github.com/Simple-Station/Einstein-Engines/pull/1054 +- author: Aidenkrz + changes: + - type: Tweak + message: >- + Cocoon sizing has been changed to reflect the size of the entity inside + better. + id: 6451 + time: '2024-10-15T23:07:03.0000000+00:00' + url: https://github.com/Simple-Station/Einstein-Engines/pull/1055 +- author: Ichaie + changes: + - type: Fix + message: >- + Gax station: fixed arrivals being unable to dock due to meteor shielding + and translated security camera names to English. + id: 6452 + time: '2024-10-15T23:12:44.0000000+00:00' + url: https://github.com/Simple-Station/Einstein-Engines/pull/1048 +- author: VMSolidus + changes: + - type: Tweak + message: >- + Psionic Rolls should now generate larger, random amounts of Potentia. + This should make it a lot easier to obtain powers. + id: 6453 + time: '2024-10-15T23:13:13.0000000+00:00' + url: https://github.com/Simple-Station/Einstein-Engines/pull/1047 +- author: Aidenkrz + changes: + - type: Fix + message: You can properly lay down and stand up on tables now. + id: 6454 + time: '2024-10-16T03:08:07.0000000+00:00' + url: https://github.com/Simple-Station/Einstein-Engines/pull/1057 +- author: Aidenkrz + changes: + - type: Tweak + message: Height and width are now constrained by each other. + - type: Fix + message: Humanoids can no longer phase through walls. + id: 6455 + time: '2024-10-16T12:54:15.0000000+00:00' + url: https://github.com/Simple-Station/Einstein-Engines/pull/1049 +- author: Aidenkrz + changes: + - type: Fix + message: Bluespace crystals now properly eject from lathes. + - type: Fix + message: Bluespace parts can be reverse engineered. + id: 6456 + time: '2024-10-16T12:55:19.0000000+00:00' + url: https://github.com/Simple-Station/Einstein-Engines/pull/1052 +- author: VMSolidus + changes: + - type: Fix + message: 'Fixed Harpy singing not opening the Midi Player. ' + id: 6457 + time: '2024-10-16T22:51:18.0000000+00:00' + url: https://github.com/Simple-Station/Einstein-Engines/pull/1056 +- author: Mnemotechnician + changes: + - type: Fix + message: Soap once again can be used to clean evidence off. + id: 6458 + time: '2024-10-16T22:54:33.0000000+00:00' + url: https://github.com/Simple-Station/Einstein-Engines/pull/1061 +- author: Aidenkrz + changes: + - type: Tweak + message: >- + All spiders, arachne, and arachnids can cocoon mobs, and drink their + blood. + id: 6459 + time: '2024-10-17T19:21:01.0000000+00:00' + url: https://github.com/Simple-Station/Einstein-Engines/pull/1058 +- author: Remuchi + changes: + - type: Add + message: Upstream + id: 6460 + time: '2024-10-19T12:09:52.0000000+00:00' + url: https://github.com/WWhiteDreamProject/wwdpublic/pull/93 +- author: Gersoon + changes: + - type: Add + message: translation of tiles/перевод тайлов + - type: Tweak + message: sign textures changed/изменены текстуры знаков + id: 6461 + time: '2024-10-21T06:56:21.0000000+00:00' + url: https://github.com/WWhiteDreamProject/wwdpublic/pull/90 diff --git a/Resources/ConfigPresets/Build/development.toml b/Resources/ConfigPresets/Build/development.toml index da3a413026..a1900dbaa2 100644 --- a/Resources/ConfigPresets/Build/development.toml +++ b/Resources/ConfigPresets/Build/development.toml @@ -23,6 +23,7 @@ grid_fill = false auto_call_time = 0 emergency = false arrivals = false +preload_grids = false [admin] see_own_notes = true diff --git a/Resources/ConfigPresets/EinsteinEngines/default.toml b/Resources/ConfigPresets/EinsteinEngines/default.toml new file mode 100644 index 0000000000..b5b8dbbf64 --- /dev/null +++ b/Resources/ConfigPresets/EinsteinEngines/default.toml @@ -0,0 +1,56 @@ +[admin] +see_own_notes = true +deadmin_on_join = true + +[discord] +rich_main_icon_id = "einstein-engines" + +[events] +ramping_average_end_time = 180.0 +ramping_average_chaos = 4.5 + +[game] +hostname = "Einstein Engines (change this)" +desc = "An alternative upstream that favors content intended for RP servers. If you are reading this, please change it." +soft_max_players = 60 +lobbyenabled = true +lobbyduration = 240 + +[hub] +tags = "lang:en-US,region:am_n_e,rp:med" +hub_urls = "https://hub.spacestation14.com/" + +[ic] +flavor_text = true + +[infolinks] +discord = "https://discord.gg/X4QEXxUrsJ" +github = "https://github.com/Simple-Station/Einstein-Engines" +website = "https://simplestation.org/" +bug_report = "https://github.com/Simple-Station/Einstein-Engines/issues/new/choose" + +[net] +max_connections = 1024 +tickrate = 30 + +[netres] +limit = 10.0 + +[build] +#! PLEASE set this for your fork +fork_id = "EinsteinEngines" + +[server] +rules_file = "Rules.txt" +rules_header = "ui-rules-header" + +[ooc] +enable_during_round = true + +[vote] +restart_required_ratio = 0.7 +preset_enabled = true +map_enabled = true + +#[worldgen] +#enabled = true diff --git a/Resources/Credits/GitHub.txt b/Resources/Credits/GitHub.txt index 1332902a29..3a7e0e7ed6 100644 --- a/Resources/Credits/GitHub.txt +++ b/Resources/Credits/GitHub.txt @@ -1 +1 @@ -0x6273, 2013HORSEMEATSCANDAL, 20kdc, 21Melkuu, 4dplanner, 612git, 778b, Ablankmann, Acruid, actioninja, adamsong, Admiral-Obvious-001, Adrian16199, Aerocrux, Aexxie, africalimedrop, Agoichi, Ahion, AJCM-git, AjexRose, Alekshhh, AlexMorgan3817, AlmondFlour, AlphaQwerty, Altoids1, amylizzle, ancientpower, angelofallars, ArchPigeon, Arendian, arimah, Arteben, AruMoon, as334, AsikKEsel, asperger-sind, aspiringLich, avghdev, AzzyIsNotHere, BananaFlambe, BasedUser, beck-thompson, BGare, BingoJohnson-zz, BismarckShuffle, Bixkitts, Blackern5000, Blazeror, BlueHNT, Boaz1111, BobdaBiscuit, brainfood1183, BramvanZijp, Brandon-Huu, Bribrooo, Bright0, brndd, BubblegumBlue, BYONDFuckery, c4llv07e, CaasGit, CakeQ, CaptainSqrBeard, Carbonhell, Carolyn3114, CatTheSystem, Centronias, chairbender, Charlese2, Cheackraze, cheesePizza2, Chief-Engineer, chromiumboy, Chronophylos, clorl, Clyybber, CodedCrow, ColdAutumnRain, Colin-Tel, collinlunn, ComicIronic, coolmankid12345, corentt, crazybrain23, creadth, CrigCrag, Crotalus, CrudeWax, CrzyPotato, Cyberboss, d34d10cc, Daemon, daerSeebaer, dahnte, dakamakat, dakimasu, DamianX, DangerRevolution, daniel-cr, Darkenson, DawBla, dch-GH, Deahaka, DEATHB4DEFEAT, DeathCamel58, deathride58, DebugOk, Decappi, Deeeeja, deepdarkdepths, Delete69, deltanedas, DeltaV-Bot, DerbyX, DoctorBeard, DogZeroX, dontbetank, dootythefrooty, Doru991, DoubleRiceEddiedd, DrMelon, DrSmugleaf, drteaspoon420, DTanxxx, DubiousDoggo, Duddino, Dutch-VanDerLinde, Easypoller, eclips_e, EdenTheLiznerd, EEASAS, Efruit, ElectroSR, elthundercloud, Emisse, EmoGarbage404, Endecc, enumerate0, eoineoineoin, ERORR404V1, Errant-4, estacaoespacialpirata, exincore, exp111, Fahasor, FairlySadPanda, Fansana, ficcialfaint, Fildrance, FillerVK, Fishfish458, Flareguy, FluffiestFloof, FluidRock, FoLoKe, fooberticus, Fortune117, FoxxoTrystan, freeman2651, Froffy025, Fromoriss, FungiFellow, GalacticChimp, gbasood, Geekyhobo, Genkail, geraeumig, Ghagliiarghii, Git-Nivrak, github-actions[bot], gituhabu, gluesniffler, GNF54, Golinth, GoodWheatley, graevy, GreyMario, Guess-My-Name, gusxyz, h3half, Hanzdegloker, Hardly3D, harikattar, HerCoyote23, HoofedEar, Hoolny, hord-brayden, hubismal, Hugal31, Huxellberger, iacore, IamVelcroboy, icekot8, igorsaux, ike709, Illiux, Ilya246, IlyaElDunaev, Injazz, Insineer, Interrobang01, IProduceWidgets, ItsMeThom, Jackal298, Jackrost, jamessimo, janekvap, JerryImMouse, Jessetriesagain, jessicamaybe, Jezithyr, jicksaw, JiimBob, JoeHammad1844, JohnGinnane, johnku1, joshepvodka, jproads, Jrpl, juliangiebel, JustArt1m, JustCone14, JustinTrotter, KaiShibaa, kalane15, kalanosh, Kelrak, kerisargit, keronshb, KIBORG04, Killerqu00, KingFroozy, kira-er, Kit0vras, KittenColony, Ko4ergaPunk, komunre, koteq, Krunklehorn, kxvvv, Lamrr, LankLTE, lapatison, Leander-0, leonardo-dabepis, LetterN, Level10Cybermancer, lever1209, liltenhead, LittleBuilderJane, Lomcastar, LordCarve, LordEclipse, LovelyLophi, Lukasz825700516, lunarcomets, luringens, lvvova1, lzimann, lzk228, MACMAN2003, Macoron, MagnusCrowe, ManelNavola, Matz05, MehimoNemo, MeltedPixel, MemeProof, Menshin, Mervill, metalgearsloth, mhamsterr, MilenVolf, Minty642, Mirino97, mirrorcult, misandrie, MishaUnity, MisterMecky, Mith-randalf, Mnemotechnician, Moneyl, Moomoobeef, moony, Morb0, Mr0maks, musicmanvr, Myakot, Myctai, N3X15, Nairodian, Naive817, namespace-Memory, NickPowers43, nikthechampiongr, Nimfar11, Nirnael, nmajask, nok-ko, notafet, notquitehadouken, noudoit, noverd, nuke-haus, NULL882, nyeogmi, OCOtheOmega, OctoRocket, OldDanceJacket, onoira, osjarw, Owai-Seek, pali6, Pangogie, patrikturi, PaulRitter, Peptide90, peptron1, Phantom-Lily, PHCodes, PixelTheKermit, PJB3005, Plykiya, pofitlo, pointer-to-null, PolterTzi, PoorMansDreams, potato1234x, ProfanedBane, PrPleGoo, ps3moira, Pspritechologist, Psychpsyo, psykzz, PuroSlavKing, quatre, QuietlyWhisper, qwerltaz, Radosvik, Radrark, Rainbeon, Rainfey, Rane, ravage123321, rbertoche, Redict, RedlineTriad, RednoWCirabrab, RemberBM, RemieRichards, RemTim, rene-descartes2021, RiceMar1244, RieBi, Rinkashikachi, Rockdtben, rolfero, rosieposieeee, Saakra, Samsterious, SaphireLattice, ScalyChimp, scrato, Scribbles0, Serkket, ShadowCommander, Shadowtheprotogen546, SignalWalker, SimpleStation14, Simyon264, Sirionaut, siyengar04, Skarletto, Skrauz, Skyedra, SlamBamActionman, slarticodefast, Slava0135, SleepyScarecrow, Snowni, snowsignal, SonicHDC, SoulSloth, SpaceManiac, SpeltIncorrectyl, spoogemonster, ssdaniel24, stalengd, Stealthbomber16, stellar-novas, StrawberryMoses, superjj18, SweptWasTaken, Szunti, TadJohnson00, takemysoult, TaralGit, Tayrtahn, tday93, TekuNut, TemporalOroboros, tentekal, tgrkzus, thatrandomcanadianguy, TheArturZh, theashtronaut, thedraccx, themias, Theomund, theOperand, TheShuEd, TimrodDX, Titian3, tkdrg, Tmanzxd, tmtmtl30, TokenStyle, tom-leys, tomasalves8, Tomeno, Tornado-Technology, tosatur, Tryded, TsjipTsjip, Tunguso4ka, TurboTrackerss14, Tyler-IN, Tyzemol, UbaserB, UKNOWH, UnicornOnLSD, Uriende, UristMcDorf, Vaaankas, Varen, VasilisThePikachu, veliebm, Veritius, Vermidia, Verslebas, VigersRay, Visne, VMSolidus, volundr-, Voomra, Vordenburg, vulppine, wafehling, WarMechanic, waylon531, weaversam8, whateverusername0, Willhelm53, Winkarst-cpu, wixoaGit, WlarusFromDaSpace, wrexbe, xRiriq, yathxyz, Ygg01, YotaXP, YuriyKiss, zach-hill, Zandario, Zap527, Zealith-Gamer, ZelteHonor, zerorulez, zionnBE, zlodo, ZNixian, ZoldorfTheWizard, Zumorica, Zymem +0x6273, 2013HORSEMEATSCANDAL, 20kdc, 21Melkuu, 4dplanner, 612git, 778b, Ablankmann, Acruid, actioninja, adamsong, Admiral-Obvious-001, Adrian16199, Aerocrux, Aexxie, africalimedrop, Agoichi, Ahion, AJCM-git, AjexRose, Alekshhh, AlexMorgan3817, AlmondFlour, AlphaQwerty, Altoids1, amylizzle, ancientpower, angelofallars, ArchPigeon, Arendian, arimah, Arteben, AruMoon, as334, AsikKEsel, asperger-sind, aspiringLich, avghdev, AzzyIsNotHere, BananaFlambe, BasedUser, beck-thompson, BGare, BingoJohnson-zz, BismarckShuffle, Bixkitts, Blackern5000, Blazeror, BlueHNT, Boaz1111, BobdaBiscuit, brainfood1183, BramvanZijp, Brandon-Huu, Bribrooo, Bright0, brndd, BubblegumBlue, BYONDFuckery, c4llv07e, CaasGit, CakeQ, CaptainSqrBeard, Carbonhell, Carolyn3114, CatTheSystem, Centronias, chairbender, Charlese2, Cheackraze, cheesePizza2, Chief-Engineer, chromiumboy, Chronophylos, CilliePaint, clorl, Clyybber, CodedCrow, ColdAutumnRain, Colin-Tel, collinlunn, ComicIronic, coolmankid12345, corentt, crazybrain23, creadth, CrigCrag, Crotalus, CrudeWax, CrzyPotato, Cyberboss, d34d10cc, Daemon, daerSeebaer, dahnte, dakamakat, dakimasu, DamianX, DangerRevolution, daniel-cr, Darkenson, DawBla, dch-GH, Deahaka, DEATHB4DEFEAT, DeathCamel58, deathride58, DebugOk, Decappi, Deeeeja, deepdarkdepths, Delete69, deltanedas, DeltaV-Bot, DerbyX, DoctorBeard, DogZeroX, dontbetank, dootythefrooty, Doru991, DoubleRiceEddiedd, DrMelon, DrSmugleaf, drteaspoon420, DTanxxx, DubiousDoggo, Duddino, Dutch-VanDerLinde, Easypoller, eclips_e, EEASAS, Efruit, ElectroSR, elthundercloud, Emisse, EmoGarbage404, Endecc, enumerate0, eoineoineoin, ERORR404V1, Errant-4, estacaoespacialpirata, Evgencheg, exincore, exp111, Fahasor, FairlySadPanda, Fansana, ficcialfaint, Fildrance, FillerVK, Fishfish458, Flareguy, FluffiestFloof, FluidRock, FoLoKe, fooberticus, Fortune117, FoxxoTrystan, freeman2651, Froffy025, Fromoriss, FungiFellow, GalacticChimp, gbasood, Geekyhobo, geraeumig, Git-Nivrak, github-actions[bot], gituhabu, gluesniffler, Golinth, GoodWheatley, graevy, GreyMario, Guess-My-Name, gusxyz, h3half, Hanzdegloker, Hardly3D, harikattar, HerCoyote23, HoofedEar, Hoolny, hord-brayden, hubismal, Hugal31, Huxellberger, iacore, IamVelcroboy, icekot8, igorsaux, ike709, Illiux, Ilya246, IlyaElDunaev, Injazz, Insineer, Interrobang01, IProduceWidgets, ItsMeThom, Jackal298, Jackrost, jamessimo, janekvap, JerryImMouse, Jessetriesagain, jessicamaybe, Jezithyr, jicksaw, JiimBob, JoeHammad1844, JohnGinnane, johnku1, joshepvodka, jproads, Jrpl, juliangiebel, JustArt1m, JustCone14, JustinTrotter, KaiShibaa, kalane15, kalanosh, Kelrak, kerisargit, keronshb, KIBORG04, Killerqu00, KingFroozy, kira-er, Kit0vras, KittenColony, Ko4ergaPunk, komunre, koteq, Krunklehorn, kxvvv, Lamrr, LankLTE, lapatison, Leander-0, leonardo-dabepis, LetterN, Level10Cybermancer, lever1209, Lgibb18, liltenhead, LittleBuilderJane, Lomcastar, LordCarve, LordEclipse, LovelyLophi, Lukasz825700516, lunarcomets, luringens, lvvova1, lzimann, lzk228, MACMAN2003, Macoron, MagnusCrowe, ManelNavola, Matz05, MehimoNemo, MeltedPixel, MemeProof, Menshin, Mervill, metalgearsloth, mhamsterr, MilenVolf, Minty642, Mirino97, mirrorcult, misandrie, MishaUnity, MisterMecky, Mith-randalf, Mnemotechnician, Moneyl, Moomoobeef, moony, Morb0, Mr0maks, musicmanvr, Myakot, Myctai, N3X15, Nairodian, Naive817, namespace-Memory, NickPowers43, nikthechampiongr, Nimfar11, Nirnael, nmajask, nok-ko, notafet, notquitehadouken, noudoit, nuke-haus, NULL882, nyeogmi, OCOtheOmega, OctoRocket, OldDanceJacket, onoira, osjarw, Owai-Seek, pali6, Pangogie, patrikturi, PaulRitter, Peptide90, peptron1, Phantom-Lily, PHCodes, PixelTheKermit, PJB3005, Plykiya, pofitlo, pointer-to-null, PolterTzi, PoorMansDreams, potato1234x, ProfanedBane, PrPleGoo, ps3moira, Pspritechologist, Psychpsyo, psykzz, PuroSlavKing, quatre, QuietlyWhisper, qwerltaz, Radosvik, Radrark, Rainbeon, Rainfey, Rane, ravage123321, rbertoche, Redict, RedlineTriad, RednoWCirabrab, RemberBM, RemieRichards, RemTim, rene-descartes2021, RiceMar1244, RieBi, Rinkashikachi, Rockdtben, rolfero, rosieposieeee, Saakra, Samsterious, SaphireLattice, ScalyChimp, scrato, Scribbles0, Serkket, ShadowCommander, Shadowtheprotogen546, ShatteredSwords, SignalWalker, SimpleStation14, Simyon264, Sirionaut, siyengar04, Skarletto, Skrauz, Skyedra, SlamBamActionman, slarticodefast, Slava0135, SleepyScarecrow, Snowni, snowsignal, SonicHDC, SoulSloth, SpaceManiac, SpeltIncorrectyl, spoogemonster, ssdaniel24, stalengd, Stealthbomber16, stellar-novas, StrawberryMoses, superjj18, SweptWasTaken, Szunti, TadJohnson00, takemysoult, TaralGit, Tayrtahn, tday93, TekuNut, TemporalOroboros, tentekal, tgrkzus, thatrandomcanadianguy, TheArturZh, theashtronaut, thedraccx, themias, Theomund, theOperand, TheShuEd, TimrodDX, Titian3, tkdrg, Tmanzxd, tmtmtl30, TokenStyle, tom-leys, tomasalves8, Tomeno, Tornado-Technology, tosatur, Tryded, TsjipTsjip, Tunguso4ka, TurboTrackerss14, Tyler-IN, Tyzemol, UbaserB, UKNOWH, UltimateJester, UnicornOnLSD, Uriende, UristMcDorf, Vaaankas, Varen, VasilisThePikachu, veliebm, Veritius, Vermidia, Verslebas, VigersRay, Visne, VMSolidus, volundr-, Voomra, Vordenburg, vulppine, wafehling, WarMechanic, waylon531, weaversam8, whateverusername0, Willhelm53, Winkarst-cpu, wixoaGit, WlarusFromDaSpace, wrexbe, xRiriq, yathxyz, Ygg01, YotaXP, YuriyKiss, zach-hill, Zandario, Zap527, Zealith-Gamer, zelezniciar1, ZelteHonor, zerorulez, zionnBE, ZNixian, ZoldorfTheWizard, Zumorica, Zymem diff --git a/Resources/Fonts/Cambria.ttf b/Resources/Fonts/Cambria.ttf new file mode 100644 index 0000000000..ab88fb474a Binary files /dev/null and b/Resources/Fonts/Cambria.ttf differ diff --git a/Resources/Locale/en-US/HUD/game-hud.ftl b/Resources/Locale/en-US/HUD/game-hud.ftl index 7f6573d2ad..ea423f080a 100644 --- a/Resources/Locale/en-US/HUD/game-hud.ftl +++ b/Resources/Locale/en-US/HUD/game-hud.ftl @@ -1,6 +1,7 @@ game-hud-open-escape-menu-button-tooltip = Open escape menu. game-hud-open-guide-menu-button-tooltip = Open guidebook menu. game-hud-open-character-menu-button-tooltip = Open character menu. +game-hud-open-emotes-menu-button-tooltip= Open emotes menu. game-hud-open-inventory-menu-button-tooltip = Open inventory menu. game-hud-open-crafting-menu-button-tooltip = Open crafting menu. game-hud-open-actions-menu-button-tooltip = Open actions menu. diff --git a/Resources/Locale/en-US/Mail/mail.ftl b/Resources/Locale/en-US/Mail/mail.ftl deleted file mode 100644 index 72cd3879b3..0000000000 --- a/Resources/Locale/en-US/Mail/mail.ftl +++ /dev/null @@ -1,30 +0,0 @@ -mail-recipient-mismatch = Recipient name or job does not match. -mail-invalid-access = Recipient name and job match, but access isn't as expected. -mail-locked = The anti-tamper lock hasn't been removed. Tap the recipient's ID. -mail-desc-far = A parcel of mail. You can't make out who it's addressed to from this distance. -mail-desc-close = A parcel of mail addressed to {CAPITALIZE($name)}, {$job}. -mail-desc-fragile = It has a [color=red]red fragile label[/color]. -mail-desc-priority = The anti-tamper lock's [color=yellow]yellow priority tape[/color] is active. Better deliver it on time! -mail-desc-priority-inactive = The anti-tamper lock's [color=#886600]yellow priority tape[/color] is inactive. -mail-unlocked = Anti-tamper system unlocked. -mail-unlocked-by-emag = Anti-tamper system *BZZT*. -mail-unlocked-reward = Anti-tamper system unlocked. {$bounty} spesos have been added to logistics's account. -mail-penalty-lock = ANTI-TAMPER LOCK BROKEN. LOGISTICS BANK ACCOUNT PENALIZED BY {$credits} CREDITS. -mail-penalty-fragile = INTEGRITY COMPROMISED. LOGISTICS BANK ACCOUNT PENALIZED BY {$credits} CREDITS. -mail-penalty-expired = DELIVERY PAST DUE. LOGISTICS BANK ACCOUNT PENALIZED BY {$credits} CREDITS. -mail-item-name-unaddressed = mail -mail-item-name-addressed = mail ({$recipient}) - -command-mailto-description = Queue a parcel to be delivered to an entity. Example usage: `mailto 1234 5678 false false`. The target container's contents will be transferred to an actual mail parcel. -command-mailto-help = Usage: {$command} [is-fragile: true or false] [is-priority: true or false] -command-mailto-no-mailreceiver = Target recipient entity does not have a {$requiredComponent}. -command-mailto-no-blankmail = The {$blankMail} prototype doesn't exist. Something is very wrong. Contact a programmer. -command-mailto-bogus-mail = {$blankMail} did not have {$requiredMailComponent}. Something is very wrong. Contact a programmer. -command-mailto-invalid-container = Target container entity does not have a {$requiredContainer} container. -command-mailto-unable-to-receive = Target recipient entity was unable to be setup for receiving mail. ID may be missing. -command-mailto-no-teleporter-found = Target recipient entity was unable to be matched to any station's mail teleporter. Recipient may be off-station. -command-mailto-success = Success! Mail parcel has been queued for next teleport in {$timeToTeleport} seconds. - -command-mailnow = Force all mail teleporters to deliver another round of mail as soon as possible. This will not bypass the undelivered mail limit. -command-mailnow-help = Usage: {$command} -command-mailnow-success = Success! All mail teleporters will be delivering another round of mail soon. diff --git a/Resources/Locale/en-US/_white/emotes/speech-emotes.ftl b/Resources/Locale/en-US/_white/emotes/speech-emotes.ftl index b62e05d60f..9df3628cc7 100644 --- a/Resources/Locale/en-US/_white/emotes/speech-emotes.ftl +++ b/Resources/Locale/en-US/_white/emotes/speech-emotes.ftl @@ -87,7 +87,7 @@ emote-chat-messages-beep-1 = beeps emote-chat-messages-boop-1 = boops #Chime -emote-chat-messages-chime-1 = chimes +emote-chat-messages-chime-1 = chimes #Buzz-Two emote-chat-messages-buzz-two-1 = buzzes twice @@ -98,22 +98,12 @@ emote-chat-messages-ping-1 = pings #Whirr emote-chat-messages-whirr-1 = whirrs -#Nod -emote-chat-button-text-nod = Nod +chat-emote-name-nod = Nod +chat-emote-name-shake-head = Shake Head +chat-emote-name-frown = Frown +chat-emote-name-smile = Smile -emote-chat-messages-nod-1 = nods - -#ShakeHead -emote-chat-button-text-shake-head = Shake head - -emote-chat-messages-shake-head-1 = shakes head - -#Frown -emote-chat-button-text-frown = Frown - -emote-chat-messages-frown-1 = frowns - -#Smile -emote-chat-button-text-smile = Smile - -emote-chat-messages-smile-1 = smiles \ No newline at end of file +chat-emote-msg-nod = nods. +chat-emote-msg-shake-head = shakes {POSS-ADJ($entity)} head.. +chat-emote-msg-frown = frowns. +chat-emote-msg-smile = smiles. diff --git a/Resources/Locale/en-US/_white/escape-menu/options-menu.ftl b/Resources/Locale/en-US/_white/escape-menu/options-menu.ftl index b1b8726d49..a5bcccadb6 100644 --- a/Resources/Locale/en-US/_white/escape-menu/options-menu.ftl +++ b/Resources/Locale/en-US/_white/escape-menu/options-menu.ftl @@ -1,6 +1,3 @@ ui-options-log-in-chat = Log actions in the chat ui-options-function-open-emotions-menu = Open emotions menu -ui-options-function-look-up = Look up/Take aim -ui-options-function-auto-get-up = Automatically get up after falling -ui-options-function-hold-look-up = Hold down the key to aim \ No newline at end of file diff --git a/Resources/Locale/en-US/_white/ghost/ghost-gui.ftl b/Resources/Locale/en-US/_white/ghost/ghost-gui.ftl deleted file mode 100644 index 9a89f477a6..0000000000 --- a/Resources/Locale/en-US/_white/ghost/ghost-gui.ftl +++ /dev/null @@ -1 +0,0 @@ -ghost-gui-return-to-round-button = Return to round \ No newline at end of file diff --git a/Resources/Locale/en-US/_white/ghost/ghost-respawn.ftl b/Resources/Locale/en-US/_white/ghost/ghost-respawn.ftl deleted file mode 100644 index 7c5d6f75a8..0000000000 --- a/Resources/Locale/en-US/_white/ghost/ghost-respawn.ftl +++ /dev/null @@ -1,15 +0,0 @@ -ghost-respawn-time-left = Before the opportunity to return to the round { $time } - { $time -> - [one] minute - *[other] minutes - } -ghost-respawn-max-players = The function is not available, there should be fewer players on the server { $players }. -ghost-respawn-window-title = Rules for returning to the round -ghost-respawn-window-rules-footer = By using this feature, you [color=#ff7700]agree[/color] [color=#ff0000]not to transfer[/color] the knowledge of your past character to a new one. For violation of the clause specified here, [color=#ff0000]a ban in the amount of 3 days or more follows[/color]. -ghost-respawn-same-character = You cannot enter the round for the same character. Change it in the character settings. - -ghost-respawn-log-character-almost-same = Player { $player } { $try -> - [true] join - *[false] tried to join -} in the round after the respawn with a similar name. Past name: { $oldName }, current: { $newName }. -ghost-respawn-log-return-to-lobby = { $userName } returned to the lobby. \ No newline at end of file diff --git a/Resources/Locale/en-US/_white/store/sales.ftl b/Resources/Locale/en-US/_white/store/sales.ftl deleted file mode 100644 index 018006b3bf..0000000000 --- a/Resources/Locale/en-US/_white/store/sales.ftl +++ /dev/null @@ -1,2 +0,0 @@ -store-sales-amount = [DISCOUNT] { $amount }%! -store-sales-over = [The sale is over] \ No newline at end of file diff --git a/Resources/Locale/en-US/abilities/bloodsucker.ftl b/Resources/Locale/en-US/abilities/bloodsucker.ftl index d956eaff84..c8aa0ed854 100644 --- a/Resources/Locale/en-US/abilities/bloodsucker.ftl +++ b/Resources/Locale/en-US/abilities/bloodsucker.ftl @@ -4,9 +4,9 @@ action-description-suck-blood = Suck the blood of the victim in your hand. bloodsucker-fail-helmet = You'd need to remove {THE($helmet)}. bloodsucker-fail-mask = You'd need to remove your mask! -bloodsucker-fail-not-blood = { CAPITALIZE(SUBJECT($target)) } doesn't have delicious, nourishing mortal blood. -bloodsucker-fail-no-blood = { CAPITALIZE(SUBJECT($target)) } has no blood in { POSS-ADJ($target) } body. -bloodsucker-fail-no-blood-bloodsucked = { CAPITALIZE(SUBJECT($target)) } has been sucked dry. +bloodsucker-not-blood = {$target} doesn't have delicious, nourishing blood. +bloodsucker-fail-no-blood = {$target} has no blood in { POSS-ADJ($target) } body. +bloodsucker-fail-no-blood-bloodsucked = {$target} has been sucked dry. bloodsucker-blood-sucked = You suck some blood from {$target}. bloodsucker-doafter-start = You try to suck blood from {$target}. diff --git a/Resources/Locale/en-US/accent/italian.ftl b/Resources/Locale/en-US/accent/italian.ftl index d0ef4e8f72..cc8641417f 100644 --- a/Resources/Locale/en-US/accent/italian.ftl +++ b/Resources/Locale/en-US/accent/italian.ftl @@ -78,9 +78,6 @@ accent-italian-words-replace-23 = greek accent-italian-words-24 = operatives accent-italian-words-replace-24 = greeks -accent-italian-words-24 = ops -accent-italian-words-replace-24 = greeks - accent-italian-words-25 = sec accent-italian-words-replace-25 = polizia diff --git a/Resources/Locale/en-US/accent/pirate.ftl b/Resources/Locale/en-US/accent/pirate.ftl index 8da975df40..b6db7c803b 100644 --- a/Resources/Locale/en-US/accent/pirate.ftl +++ b/Resources/Locale/en-US/accent/pirate.ftl @@ -1,7 +1,7 @@ accent-pirate-prefix-1 = Arrgh accent-pirate-prefix-2 = Garr accent-pirate-prefix-3 = Yarr -accent-pirate-prefix-3 = Yarrgh +accent-pirate-prefix-4 = Yarrgh accent-pirate-replaced-1 = my accent-pirate-replacement-1 = me diff --git a/Resources/Locale/en-US/accessories/human-hair.ftl b/Resources/Locale/en-US/accessories/human-hair.ftl index 3a507ec6cf..7d3467a610 100644 --- a/Resources/Locale/en-US/accessories/human-hair.ftl +++ b/Resources/Locale/en-US/accessories/human-hair.ftl @@ -165,6 +165,7 @@ marking-HumanHairProtagonist = Slightly Long Hair marking-HumanHairSpikey = Spiky marking-HumanHairSpiky = Spiky 2 marking-HumanHairSpiky2 = Spiky 3 +marking-HumanHairSpookyLong = Spooky Long marking-HumanHairSwept = Swept Back Hair marking-HumanHairSwept2 = Swept Back Hair 2 marking-HumanHairTailed = Tailed diff --git a/Resources/Locale/en-US/accessories/vox-facial-hair.ftl b/Resources/Locale/en-US/accessories/vox-facial-hair.ftl index 48b19ca74b..a63b0b5a39 100644 --- a/Resources/Locale/en-US/accessories/vox-facial-hair.ftl +++ b/Resources/Locale/en-US/accessories/vox-facial-hair.ftl @@ -1,5 +1,5 @@ -marking-VoxFacialHairColonel = Vox Colonel -marking-VoxFacialHairFu = Quill Fu -marking-VoxFacialHairNeck = Neck Quills -marking-VoxFacialHairBeard = Quill Beard -marking-VoxFacialHairRuffBeard = Ruff Beard +marking-VoxFacialHairBeard = Vox Beard (Quills) +marking-VoxFacialHairColonel = Vox Moustache (Colonel) +marking-VoxFacialHairFu = Vox Moustache (Quill Fu) +marking-VoxFacialHairNeck = Vox Beard (Neck Quills) +marking-VoxFacialHairMane = Vox Beard (Mane) diff --git a/Resources/Locale/en-US/accessories/vox-hair.ftl b/Resources/Locale/en-US/accessories/vox-hair.ftl index cf98d0b4f9..94483fd6a6 100644 --- a/Resources/Locale/en-US/accessories/vox-hair.ftl +++ b/Resources/Locale/en-US/accessories/vox-hair.ftl @@ -1,13 +1,22 @@ -marking-VoxHairShortQuills = Short Vox Quills -marking-VoxHairKingly = Vox Kingly marking-VoxHairAfro = Vox Afro -marking-VoxHairMohawk = Vox Mohawk -marking-VoxHairYasuhiro = Vox Yasuhiro +marking-VoxHairBraids = Vox Braids +marking-VoxHairCrestedQuills = Vox Crested Quills +marking-VoxHairEmperorQuills = Vox Emperor Quills +marking-VoxHairFlowing = Vox Flowing +marking-VoxHairHawk = Vox Hawk marking-VoxHairHorns = Vox Horns -marking-VoxHairNights = Vox Nights -marking-VoxHairSurf = Vox Surf -marking-VoxHairCropped = Vox Cropped -marking-VoxHairRuffhawk = Vox Ruffhawk -marking-VoxHairRows = Vox Rows +marking-VoxHairKeelQuills = Vox Keel Quills +marking-VoxHairKeetQuills = Vox Keet Quills +marking-VoxHairKingly = Vox Kingly +marking-VoxHairLongBraid = Vox Long Braid marking-VoxHairMange = Vox Mange +marking-VoxHairMohawk = Vox Mohawk +marking-VoxHairNights = Vox Nights marking-VoxHairPony = Vox Pony +marking-VoxHairRazorClipped = Vox Razor (Clipped) +marking-VoxHairRazor = Vox Razor +marking-VoxHairSortBraid = Vox Short Braid +marking-VoxHairShortQuills = Vox Short Quills +marking-VoxHairSurf = Vox Surf +marking-VoxHairTielQuills = Vox Tiel Quills +marking-VoxHairYasu = Vox Yasuhiro diff --git a/Resources/Locale/en-US/administration/smites.ftl b/Resources/Locale/en-US/administration/smites.ftl index ae4e6f7271..ff3e3b0901 100644 --- a/Resources/Locale/en-US/administration/smites.ftl +++ b/Resources/Locale/en-US/administration/smites.ftl @@ -13,7 +13,6 @@ admin-smite-stomach-removal-self = Your stomach feels hollow... admin-smite-run-walk-swap-prompt = You have to press shift to run! admin-smite-super-speed-prompt = You move at mach 0.8! admin-smite-lung-removal-self = You can't breathe! -admin-smite-terminate-prompt = I'll be back ## Smite descriptions @@ -58,7 +57,6 @@ admin-smite-disarm-prone-description = Makes them get disarmed 100% of the time admin-smite-garbage-can-description = Turn them into a garbage bin to emphasize what they remind you of. admin-smite-super-bonk-description = Slams them on every single table on the Station and beyond. admin-smite-super-bonk-lite-description= Slams them on every single table on the Station and beyond. Stops when the target is dead. -admin-smite-terminate-description = Creates a Terminator ghost role with the sole objective of killing them. ## Tricks descriptions diff --git a/Resources/Locale/en-US/administration/ui/admin-logs.ftl b/Resources/Locale/en-US/administration/ui/admin-logs.ftl index 549e9587d7..377bea6e84 100644 --- a/Resources/Locale/en-US/administration/ui/admin-logs.ftl +++ b/Resources/Locale/en-US/administration/ui/admin-logs.ftl @@ -14,7 +14,6 @@ admin-logs-select-none = None # Players admin-logs-search-players-placeholder = Search Players (OR) -admin-logs-select-none = None admin-logs-include-non-player = Include Non-players # Logs diff --git a/Resources/Locale/en-US/administration/ui/admin-notes.ftl b/Resources/Locale/en-US/administration/ui/admin-notes.ftl index ca5348a940..03e1290257 100644 --- a/Resources/Locale/en-US/administration/ui/admin-notes.ftl +++ b/Resources/Locale/en-US/administration/ui/admin-notes.ftl @@ -35,7 +35,6 @@ admin-notes-message-seen = Seen admin-notes-banned-from = Banned from admin-notes-the-server = the server admin-notes-permanently = permanently -admin-notes-for = for {$player} admin-notes-days = {$days} days admin-notes-hours = {$hours} hours admin-notes-minutes = {$minutes} minutes diff --git a/Resources/Locale/en-US/alerts/alerts.ftl b/Resources/Locale/en-US/alerts/alerts.ftl index ff2c0d9ee2..03f04ec7ba 100644 --- a/Resources/Locale/en-US/alerts/alerts.ftl +++ b/Resources/Locale/en-US/alerts/alerts.ftl @@ -57,9 +57,6 @@ alerts-no-battery-desc = You don't have a battery, rendering you unable to charg alerts-internals-name = Toggle internals alerts-internals-desc = Toggles your gas tank internals on or off. -alerts-internals-name = Toggle internals -alerts-internals-desc = Toggles your gas tank internals on or off. - alerts-piloting-name = Piloting Shuttle alerts-piloting-desc = You are piloting a shuttle. Click the alert to stop. diff --git a/Resources/Locale/en-US/ame/components/ame-controller-component.ftl b/Resources/Locale/en-US/ame/components/ame-controller-component.ftl index ee1f7f42e7..f15141ebcc 100644 --- a/Resources/Locale/en-US/ame/components/ame-controller-component.ftl +++ b/Resources/Locale/en-US/ame/components/ame-controller-component.ftl @@ -16,7 +16,6 @@ ame-window-refresh-parts-button = Refresh Parts ame-window-core-count-label = Core count: ame-window-power-currentsupply-label = Current power supply: ame-window-power-targetsupply-label = Targeted power supply: -ame-window-toggle-injection-button = Toggle Injection ame-window-eject-button = Eject ame-window-increase-fuel-button = Increase ame-window-decrease-fuel-button = Decrease diff --git a/Resources/Locale/en-US/anomaly/anomaly.ftl b/Resources/Locale/en-US/anomaly/anomaly.ftl index da5882fa62..1609d77d91 100644 --- a/Resources/Locale/en-US/anomaly/anomaly.ftl +++ b/Resources/Locale/en-US/anomaly/anomaly.ftl @@ -3,6 +3,7 @@ anomaly-component-contact-damage = The anomaly sears off your skin! anomaly-vessel-component-anomaly-assigned = Anomaly assigned to vessel. anomaly-vessel-component-not-assigned = This vessel is not assigned to any anomaly. Try using a scanner on it. anomaly-vessel-component-assigned = This vessel is currently assigned to an anomaly. +anomaly-vessel-component-upgrade-output = point output anomaly-particles-delta = Delta particles anomaly-particles-epsilon = Epsilon particles diff --git a/Resources/Locale/en-US/arcade/components/space-villain-game-component.ftl b/Resources/Locale/en-US/arcade/components/space-villain-game-component.ftl index af005ae62d..75e18c8d71 100644 --- a/Resources/Locale/en-US/arcade/components/space-villain-game-component.ftl +++ b/Resources/Locale/en-US/arcade/components/space-villain-game-component.ftl @@ -11,5 +11,4 @@ space-villain-game-enemy-dies-with-player-message = {$enemyName} dies, but takes space-villain-game-enemy-throws-bomb-message = {$enemyName} throws a bomb, exploding you for {$damageReceived} damage! space-villain-game-enemy-steals-player-power-message = {$enemyName} steals {$stolenAmount} of your power! space-villain-game-enemy-heals-message = {$enemyName} heals for {$healedAmount} health! -space-villain-game-enemy-steals-player-power-message = {$enemyName} steals {$stolenAmount} of your power! -space-villain-game-enemy-attacks-message = {$enemyName} attacks you for {$damageDealt} damage! \ No newline at end of file +space-villain-game-enemy-attacks-message = {$enemyName} attacks you for {$damageDealt} damage! diff --git a/Resources/Locale/en-US/atmos/atmos-alerts-console.ftl b/Resources/Locale/en-US/atmos/atmos-alerts-console.ftl new file mode 100644 index 0000000000..a1640c5e9d --- /dev/null +++ b/Resources/Locale/en-US/atmos/atmos-alerts-console.ftl @@ -0,0 +1,35 @@ +atmos-alerts-window-title = Atmospheric Alerts Computer +atmos-alerts-window-station-name = [color=white][font size=14]{$stationName}[/font][/color] +atmos-alerts-window-unknown-location = Unknown location + +atmos-alerts-window-tab-no-alerts = Alerts +atmos-alerts-window-tab-alerts = Alerts ({$value}) +atmos-alerts-window-tab-air-alarms = Air alarms +atmos-alerts-window-tab-fire-alarms = Fire alarms + +atmos-alerts-window-alarm-label = {CAPITALIZE($name)} ({$address}) +atmos-alerts-window-temperature-label = Temperature +atmos-alerts-window-temperature-value = {$valueInC} °C ({$valueInK} K) +atmos-alerts-window-pressure-label = Pressure +atmos-alerts-window-pressure-value = {$value} kPa +atmos-alerts-window-oxygenation-label = Oxygenation +atmos-alerts-window-oxygenation-value = {$value}% +atmos-alerts-window-other-gases-label = Other present gases +atmos-alerts-window-other-gases-value = {$shorthand} ({$value}%) +atmos-alerts-window-other-gases-value-nil = None +atmos-alerts-window-silence-alerts = Silence alerts from this alarm + +atmos-alerts-window-label-alert-types = Alert levels: +atmos-alerts-window-normal-state = Normal +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-data-available = No data available +atmos-alerts-window-alerts-being-silenced = Silencing alerts... + +atmos-alerts-window-toggle-overlays = Toggle alarm display + +atmos-alerts-window-flavor-left = Contact an atmospheric technician for assistance +atmos-alerts-window-flavor-right = v1.8 \ No newline at end of file diff --git a/Resources/Locale/en-US/atmos/gas-analyzer-component.ftl b/Resources/Locale/en-US/atmos/gas-analyzer-component.ftl index 03a920cb64..652bb19cb5 100644 --- a/Resources/Locale/en-US/atmos/gas-analyzer-component.ftl +++ b/Resources/Locale/en-US/atmos/gas-analyzer-component.ftl @@ -12,6 +12,8 @@ gas-analyzer-window-refresh-button = Refresh gas-analyzer-window-no-data = No Data gas-analyzer-window-no-gas-text = No Gases gas-analyzer-window-error-text = Error: {$errorText} +gas-analyzer-window-volume-text = Volume: +gas-analyzer-window-volume-val-text = {$volume} L gas-analyzer-window-pressure-text = Pressure: gas-analyzer-window-pressure-val-text = {$pressure} kPa gas-analyzer-window-temperature-text = Temperature: diff --git a/Resources/Locale/en-US/atmos/gas-recycler-system.ftl b/Resources/Locale/en-US/atmos/gas-recycler-system.ftl index cc527adf5c..a72e137732 100644 --- a/Resources/Locale/en-US/atmos/gas-recycler-system.ftl +++ b/Resources/Locale/en-US/atmos/gas-recycler-system.ftl @@ -1,3 +1,6 @@ gas-recycler-reacting = It is [color=green]converting[/color] waste gases. gas-recycler-low-pressure = The input pressure is [color=darkred]too low[/color]. gas-recycler-low-temperature = The input temperature is [color=darkred]too low[/color]. + +gas-recycler-upgrade-min-temp = Minimum temperature +gas-recycler-upgrade-min-pressure = Minimum pressure diff --git a/Resources/Locale/en-US/atmos/portable-scrubber.ftl b/Resources/Locale/en-US/atmos/portable-scrubber.ftl index c4071b4acc..8aadf076d9 100644 --- a/Resources/Locale/en-US/atmos/portable-scrubber.ftl +++ b/Resources/Locale/en-US/atmos/portable-scrubber.ftl @@ -1 +1,4 @@ portable-scrubber-fill-level = It's at about [color=yellow]{$percent}%[/color] of its maximum internal pressure. + +portable-scrubber-component-upgrade-max-pressure = max pressure +portable-scrubber-component-upgrade-transfer-rate = transfer rate diff --git a/Resources/Locale/en-US/borg/borg.ftl b/Resources/Locale/en-US/borg/borg.ftl index 2f51331a83..c9005eb796 100644 --- a/Resources/Locale/en-US/borg/borg.ftl +++ b/Resources/Locale/en-US/borg/borg.ftl @@ -17,3 +17,8 @@ borg-ui-no-brain = No brain present borg-ui-remove-battery = Remove borg-ui-modules-label = Modules: borg-ui-module-counter = {$actual}/{$max} + +# Transponder +borg-transponder-disabled-popup = A brain shoots out the top of {$name}! +borg-transponder-emagged-disabled-popup = Your transponder's lights go out! +borg-transponder-emagged-destroyed-popup = Your transponder's fuse blows! diff --git a/Resources/Locale/en-US/botany/components/seed-extractor-component.ftl b/Resources/Locale/en-US/botany/components/seed-extractor-component.ftl index 84d5a5ed28..c586a594a9 100644 --- a/Resources/Locale/en-US/botany/components/seed-extractor-component.ftl +++ b/Resources/Locale/en-US/botany/components/seed-extractor-component.ftl @@ -2,3 +2,5 @@ seed-extractor-component-interact-message = You extract some seeds from the { THE($name) }. seed-extractor-component-no-seeds = { CAPITALIZE(THE($name)) } has no seeds! + +seed-extractor-component-upgrade-seed-yield = seed yield diff --git a/Resources/Locale/en-US/burning/bodyburn.ftl b/Resources/Locale/en-US/burning/bodyburn.ftl index 896a0b6d04..58b98c09bb 100644 --- a/Resources/Locale/en-US/burning/bodyburn.ftl +++ b/Resources/Locale/en-US/burning/bodyburn.ftl @@ -1 +1 @@ -bodyburn-text-others = {$name}'s body burns to ash! +bodyburn-text-others = {$name} burns to ash! diff --git a/Resources/Locale/en-US/cargo/cargo-console-component.ftl b/Resources/Locale/en-US/cargo/cargo-console-component.ftl index b56f4730cc..941e0fa180 100644 --- a/Resources/Locale/en-US/cargo/cargo-console-component.ftl +++ b/Resources/Locale/en-US/cargo/cargo-console-component.ftl @@ -30,6 +30,7 @@ cargo-console-snip-snip = Order trimmed to capacity cargo-console-insufficient-funds = Insufficient funds (require {$cost}) cargo-console-unfulfilled = No room to fulfill order cargo-console-trade-station = Sent to {$destination} +cargo-console-unlock-approved-order-broadcast = [bold]{$productName} x{$orderAmount}[/bold], which cost [bold]{$cost}[/bold], was approved by [bold]{$approverName}, {$approverJob}[/bold] cargo-console-paper-print-name = Order #{$orderNumber} cargo-console-paper-print-text = @@ -45,3 +46,5 @@ cargo-shuttle-console-station-unknown = Unknown cargo-shuttle-console-shuttle-not-found = Not found cargo-shuttle-console-organics = Detected organic lifeforms on the shuttle cargo-no-shuttle = No cargo shuttle found! + +cargo-telepad-delay-upgrade = Teleport delay diff --git a/Resources/Locale/en-US/chameleon-projector/chameleon-projector.ftl b/Resources/Locale/en-US/chameleon-projector/chameleon-projector.ftl new file mode 100644 index 0000000000..8a79516077 --- /dev/null +++ b/Resources/Locale/en-US/chameleon-projector/chameleon-projector.ftl @@ -0,0 +1,2 @@ +chameleon-projector-invalid = You can't disguise as that! +chameleon-projector-success = Projected new disguise. diff --git a/Resources/Locale/en-US/chat/chat-repo.ftl b/Resources/Locale/en-US/chat/chat-repo.ftl new file mode 100644 index 0000000000..a53380260b --- /dev/null +++ b/Resources/Locale/en-US/chat/chat-repo.ftl @@ -0,0 +1,7 @@ +command-description-deletechatmessage-id = Delete a specific chat message by message ID +command-description-nukechatmessages-usernames = Delete all of the supplied usernames' chat messages posted during this round +command-description-nukechatmessages-userids = Delete all of the supplied userIds' chat messages posted during this round + +command-error-deletechatmessage-id-notexist = The message with the supplied ID does not exist +command-error-nukechatmessages-usernames-usernamenotexist = Username {$username} does not exist +command-error-nukechatmessages-usernames-usernamenomessages = UserID {$userId} has no messages to nuke diff --git a/Resources/Locale/en-US/chat/emotes.ftl b/Resources/Locale/en-US/chat/emotes.ftl new file mode 100644 index 0000000000..e95cb2795d --- /dev/null +++ b/Resources/Locale/en-US/chat/emotes.ftl @@ -0,0 +1,60 @@ +# Names +chat-emote-name-scream = Scream +chat-emote-name-laugh = Laugh +chat-emote-name-honk = Honk +chat-emote-name-sigh = Sigh +chat-emote-name-whistle = Whistle +chat-emote-name-crying = Crying +chat-emote-name-squish = Squish +chat-emote-name-chitter = Chitter +chat-emote-name-squeak = Squeak +chat-emote-name-click = Click +chat-emote-name-clap = Clap +chat-emote-name-snap = Snap +chat-emote-name-salute = Salute +chat-emote-name-deathgasp = Deathgasp +chat-emote-name-buzz = Buzz +chat-emote-name-weh = Weh +chat-emote-name-chirp = Chirp +chat-emote-name-beep = Beep +chat-emote-name-chime = Chime +chat-emote-name-buzztwo = Buzz Two +chat-emote-name-ping = Ping +chat-emote-name-sneeze = Sneeze +chat-emote-name-cough = Cough +chat-emote-name-catmeow = Cat Meow +chat-emote-name-cathisses = Cat Hisses +chat-emote-name-monkeyscreeches = Monkey Screeches +chat-emote-name-robotbeep = Robot +chat-emote-name-yawn = Yawn +chat-emote-name-snore = Snore + +# Message +chat-emote-msg-scream = screams! +chat-emote-msg-laugh = laughs. +chat-emote-msg-honk = honks. +chat-emote-msg-sigh = sighs. +chat-emote-msg-whistle = whistles. +chat-emote-msg-crying = cries. +chat-emote-msg-squish = squishes. +chat-emote-msg-chitter = chitters. +chat-emote-msg-squeak = squeaks. +chat-emote-msg-click = clicks. +chat-emote-msg-clap = claps! +chat-emote-msg-snap = snaps {POSS-ADJ($entity)} fingers. +chat-emote-msg-salute = salutes. +chat-emote-msg-deathgasp = seizes up and falls limp, {POSS-ADJ($entity)} eyes dead and lifeless... +chat-emote-msg-deathgasp-monkey = lets out a faint chimper as {SUBJECT($entity)} collapses and stops moving... +chat-emote-msg-buzz = buzz! +chat-emote-msg-chirp = chirps! +chat-emote-msg-beep = beeps. +chat-emote-msg-chime = chimes. +chat-emote-msg-buzzestwo = buzzes twice. +chat-emote-msg-ping = pings. +chat-emote-msg-sneeze = sneezes. +chat-emote-msg-cough = coughs. +chat-emote-msg-catmeow = meows. +chat-emote-msg-cathisses = hisses! +chat-emote-msg-monkeyscreeches = screeches! +chat-emote-msg-yawn = yawns. +chat-emote-msg-snore = snores. diff --git a/Resources/Locale/en-US/chat/ui/emote-menu.ftl b/Resources/Locale/en-US/chat/ui/emote-menu.ftl new file mode 100644 index 0000000000..1f92a93c63 --- /dev/null +++ b/Resources/Locale/en-US/chat/ui/emote-menu.ftl @@ -0,0 +1,3 @@ +emote-menu-category-general = General +emote-menu-category-vocal = Vocal +emote-menu-category-hands = Hands diff --git a/Resources/Locale/en-US/chemistry/components/reagent-dispenser-component.ftl b/Resources/Locale/en-US/chemistry/components/reagent-dispenser-component.ftl index 48ec8f5213..37697c4517 100644 --- a/Resources/Locale/en-US/chemistry/components/reagent-dispenser-component.ftl +++ b/Resources/Locale/en-US/chemistry/components/reagent-dispenser-component.ftl @@ -10,9 +10,9 @@ reagent-dispenser-bound-user-interface-title = Reagent dispenser ## UI reagent-dispenser-window-amount-to-dispense-label = Amount -reagent-dispenser-window-container-label = Container: reagent-dispenser-window-clear-button = Clear reagent-dispenser-window-eject-button = Eject +reagent-dispenser-window-eject-container-button = ⏏ reagent-dispenser-window-no-container-loaded-text = No container loaded. reagent-dispenser-window-reagent-name-not-found-text = Reagent name not found reagent-dispenser-window-unknown-reagent-text = Unknown reagent diff --git a/Resources/Locale/en-US/chemistry/components/solution-heater-component.ftl b/Resources/Locale/en-US/chemistry/components/solution-heater-component.ftl new file mode 100644 index 0000000000..cecf15550c --- /dev/null +++ b/Resources/Locale/en-US/chemistry/components/solution-heater-component.ftl @@ -0,0 +1 @@ +solution-heater-upgrade-heat = Heat strength diff --git a/Resources/Locale/en-US/chemistry/components/solution-scanner-component.ftl b/Resources/Locale/en-US/chemistry/components/solution-scanner-component.ftl index 8dbbaf3edd..51a049aab1 100644 --- a/Resources/Locale/en-US/chemistry/components/solution-scanner-component.ftl +++ b/Resources/Locale/en-US/chemistry/components/solution-scanner-component.ftl @@ -3,3 +3,4 @@ scannable-solution-verb-message = Examine the chemical composition. scannable-solution-main-text = It contains the following chemicals: scannable-solution-empty-container = It contains no chemicals. scannable-solution-chemical = - {$amount}u [color={$color}]{$type}[/color] +scannable-solution-temperature = Solution temperature: {$temperature}K \ No newline at end of file diff --git a/Resources/Locale/en-US/chemistry/components/solution-status.ftl b/Resources/Locale/en-US/chemistry/components/solution-status.ftl new file mode 100644 index 0000000000..0ec5f932e0 --- /dev/null +++ b/Resources/Locale/en-US/chemistry/components/solution-status.ftl @@ -0,0 +1,2 @@ +solution-status-volume = Volume: [color=white]{$currentVolume}/{$maxVolume}u[/color] +solution-status-transfer = Transfer: [color=white]{$volume}u[/color] diff --git a/Resources/Locale/en-US/commands/tippy-command.ftl b/Resources/Locale/en-US/commands/tippy-command.ftl new file mode 100644 index 0000000000..6b9a95a1dd --- /dev/null +++ b/Resources/Locale/en-US/commands/tippy-command.ftl @@ -0,0 +1,12 @@ +cmd-tippy-desc = Broadcast a message as Tippy the clown. +cmd-tippy-help = tippy [entity prototype] [speak time] [slide time] [waddle interval] +cmd-tippy-auto-1 = +cmd-tippy-auto-2 = message +cmd-tippy-auto-3 = entity prototype +cmd-tippy-auto-4 = speak time, in seconds +cmd-tippy-auto-5 = slide time, in seconds +cmd-tippy-auto-6 = waddle interval, in seconds +cmd-tippy-error-no-user = User not found. +cmd-tippy-error-no-prototype = Prototype not found: {$proto} + +cmd-tip-desc = Spawn a random game tip. diff --git a/Resources/Locale/en-US/commands/toolshed-commands.ftl b/Resources/Locale/en-US/commands/toolshed-commands.ftl index 04f6aa08fa..e2536f6781 100644 --- a/Resources/Locale/en-US/commands/toolshed-commands.ftl +++ b/Resources/Locale/en-US/commands/toolshed-commands.ftl @@ -80,3 +80,5 @@ command-description-mind-control = Assumes control of an entity with the given player. command-description-addaccesslog = Adds an access log to this entity. Do note that this bypasses the log's default limit and pause check. +command-description-stationevent-simulate = + Simulates N number of rounds in which events will occur and prints the occurrences of every event after. diff --git a/Resources/Locale/en-US/communications/communications-console-component.ftl b/Resources/Locale/en-US/communications/communications-console-component.ftl index f7cc87cb8b..bead43df28 100644 --- a/Resources/Locale/en-US/communications/communications-console-component.ftl +++ b/Resources/Locale/en-US/communications/communications-console-component.ftl @@ -1,4 +1,4 @@ -# User interface +# User interface comms-console-menu-title = Communications Console comms-console-menu-announcement-placeholder = Announcement text... comms-console-menu-announcement-button = Announce @@ -9,6 +9,7 @@ comms-console-menu-recall-shuttle = Recall emergency shuttle # Popup comms-console-permission-denied = Permission denied comms-console-shuttle-unavailable = Shuttle is currently unavailable +comms-console-message-too-long = Message is too long # Placeholder values comms-console-announcement-sent-by = Sent by diff --git a/Resources/Locale/en-US/components/storage-component.ftl b/Resources/Locale/en-US/components/storage-component.ftl index 29c858891a..e742c83f6a 100644 --- a/Resources/Locale/en-US/components/storage-component.ftl +++ b/Resources/Locale/en-US/components/storage-component.ftl @@ -8,3 +8,5 @@ comp-storage-cant-drop = You can't let go of { THE($entity) }! comp-storage-window-title = Storage Item comp-storage-window-weight = { $weight }/{ $maxWeight }, Max Size: {$size} comp-storage-window-slots = Slots: { $itemCount }/{ $maxCount }, Max Size: {$size} +comp-storage-verb-open-storage = Open Storage +comp-storage-verb-close-storage = Close Storage diff --git a/Resources/Locale/en-US/construction/components/machine-part-component.ftl b/Resources/Locale/en-US/construction/components/machine-part-component.ftl new file mode 100644 index 0000000000..0613f50516 --- /dev/null +++ b/Resources/Locale/en-US/construction/components/machine-part-component.ftl @@ -0,0 +1,2 @@ +machine-part-component-on-examine-rating-text = [color=white]Rating:[/color] [color=cyan]{$rating}[/color] +machine-part-component-on-examine-type-text = [color=white]Type:[/color] [color=cyan]{$type}[/color] diff --git a/Resources/Locale/en-US/construction/ui/construction-menu.ftl b/Resources/Locale/en-US/construction/ui/construction-menu.ftl index f4b7f3559a..82ebc01bc9 100644 --- a/Resources/Locale/en-US/construction/ui/construction-menu.ftl +++ b/Resources/Locale/en-US/construction/ui/construction-menu.ftl @@ -4,5 +4,4 @@ construction-menu-title = Construction construction-menu-place-ghost = Place construction ghost construction-menu-clear-all = Clear All construction-menu-eraser-mode = Eraser Mode -construction-menu-title = Construction -construction-menu-craft = Craft \ No newline at end of file +construction-menu-craft = Craft diff --git a/Resources/Locale/en-US/containers/containers.ftl b/Resources/Locale/en-US/containers/containers.ftl index ab011f64f8..d96383305a 100644 --- a/Resources/Locale/en-US/containers/containers.ftl +++ b/Resources/Locale/en-US/containers/containers.ftl @@ -1,2 +1,5 @@ container-verb-text-enter = Enter container-verb-text-empty = Empty + +## missed +container-thrown-missed = Missed! \ No newline at end of file diff --git a/Resources/Locale/en-US/cuffs/components/handcuff-component.ftl b/Resources/Locale/en-US/cuffs/components/handcuff-component.ftl index 16447f4251..1f8a895164 100644 --- a/Resources/Locale/en-US/cuffs/components/handcuff-component.ftl +++ b/Resources/Locale/en-US/cuffs/components/handcuff-component.ftl @@ -3,6 +3,7 @@ handcuff-component-cuffs-broken-error = The restraints are broken! handcuff-component-target-has-no-hands-error = {$targetName} has no hands! handcuff-component-target-has-no-free-hands-error = {$targetName} has no free hands! handcuff-component-too-far-away-error = You are too far away to use the restraints! +handcuff-component-target-flying-error = You cannot reach {$targetName}'s hands! handcuff-component-start-cuffing-observer = {$user} starts restraining {$target}! handcuff-component-start-cuffing-target-message = You start restraining {$targetName}. handcuff-component-start-cuffing-by-other-message = {$otherName} starts restraining you! diff --git a/Resources/Locale/en-US/damage/damage-groups.ftl b/Resources/Locale/en-US/damage/damage-groups.ftl new file mode 100644 index 0000000000..cfaf866e34 --- /dev/null +++ b/Resources/Locale/en-US/damage/damage-groups.ftl @@ -0,0 +1,6 @@ +damage-group-brute = Brute +damage-group-burn = Burn +damage-group-airloss = Airloss +damage-group-toxin = Toxin +damage-group-genetic = Genetic +damage-group-immaterial = Immaterial diff --git a/Resources/Locale/en-US/damage/damage-types.ftl b/Resources/Locale/en-US/damage/damage-types.ftl new file mode 100644 index 0000000000..3b6256864f --- /dev/null +++ b/Resources/Locale/en-US/damage/damage-types.ftl @@ -0,0 +1,14 @@ +damage-type-asphyxiation = Asphyxiation +damage-type-bloodloss = Bloodloss +damage-type-blunt = Blunt +damage-type-cellular = Cellular +damage-type-caustic = Caustic +damage-type-cold = Cold +damage-type-heat = Heat +damage-type-piercing = Piercing +damage-type-poison = Poison +damage-type-radiation = Radiation +damage-type-shock = Shock +damage-type-slash = Slash +damage-type-structural = Structural +damage-type-holy = Holy diff --git a/Resources/Locale/en-US/deltav/cartridge-loader/cartridges.ftl b/Resources/Locale/en-US/deltav/cartridge-loader/cartridges.ftl index 9b4c59d001..ede1a36b8e 100644 --- a/Resources/Locale/en-US/deltav/cartridge-loader/cartridges.ftl +++ b/Resources/Locale/en-US/deltav/cartridge-loader/cartridges.ftl @@ -118,3 +118,16 @@ crime-assist-sophont-explanation = A sophont is described as any entity with the • [bold]Sentience[/bold]: the entity has the capacity to process an emotion or lack thereof, or at a minimum the ability to recognise its own pain. • [bold]Self-awareness[/bold]: the entity is capable of altering its behaviour in a reasonable fashion as a result of stimuli, or at a minimum is capable of recognising its own sapience and sentience. Any sophont is considered a legal person, regardless of origin or prior cognitive status. Much like any other intelligent organic, a sophont may press charges against crew and be tried for crimes. + +mail-metrics-program-name = MailMetrics +mail-metrics-header = Income from Mail Deliveries +mail-metrics-opened = Earnings (Opened) +mail-metrics-expired = Losses (Expired) +mail-metrics-damaged = Losses (Damaged) +mail-metrics-tampered = Losses (Tampered) +mail-metrics-unopened = Unopened +mail-metrics-count-header = Packages +mail-metrics-money-header = Spesos +mail-metrics-total = Total +mail-metrics-progress = {$opened} out of {$total} packages opened! +mail-metrics-progress-percent = Success rate: {$successRate}% diff --git a/Resources/Locale/en-US/deltav/escape-menu/options-menu.ftl b/Resources/Locale/en-US/deltav/escape-menu/options-menu.ftl deleted file mode 100644 index 50d55cb76d..0000000000 --- a/Resources/Locale/en-US/deltav/escape-menu/options-menu.ftl +++ /dev/null @@ -1,4 +0,0 @@ -ui-options-tab-deltav = DeltaV -ui-options-general-forknotice = Note: These settings are fork-specific and might not apply on other servers. - -ui-options-no-filters = Disable species vision filters diff --git a/Resources/Locale/en-US/devices/device-network.ftl b/Resources/Locale/en-US/devices/device-network.ftl index d88b1f719d..35b895d18b 100644 --- a/Resources/Locale/en-US/devices/device-network.ftl +++ b/Resources/Locale/en-US/devices/device-network.ftl @@ -7,6 +7,8 @@ device-frequency-prototype-name-mailing-units = Mailing Units device-frequency-prototype-name-pdas = PDAs device-frequency-prototype-name-fax = Fax device-frequency-prototype-name-basic-device = Basic Devices +device-frequency-prototype-name-cyborg-control = Cyborg Control +device-frequency-prototype-name-robotics-console = Robotics Console ## camera frequencies device-frequency-prototype-name-surveillance-camera-test = Subnet Test diff --git a/Resources/Locale/en-US/devices/network-configurator.ftl b/Resources/Locale/en-US/devices/network-configurator.ftl index e1bcbc4c94..cd4955ed36 100644 --- a/Resources/Locale/en-US/devices/network-configurator.ftl +++ b/Resources/Locale/en-US/devices/network-configurator.ftl @@ -41,5 +41,5 @@ network-configurator-examine-current-mode = Current mode: {$mode} network-configurator-examine-switch-modes = Press {$key} to switch modes # item status -network-configurator-item-status-label = Current mode: {$mode} -{$keybinding} to switch mode +network-configurator-item-status-label = Mode: {$mode} + Switch: {$keybinding} diff --git a/Resources/Locale/en-US/disposal/tube/components/disposal-router-component.ftl b/Resources/Locale/en-US/disposal/tube/components/disposal-router-component.ftl index 64fbfdf66f..4fe24b7853 100644 --- a/Resources/Locale/en-US/disposal/tube/components/disposal-router-component.ftl +++ b/Resources/Locale/en-US/disposal/tube/components/disposal-router-component.ftl @@ -4,7 +4,3 @@ disposal-router-window-title = Disposal Router disposal-router-window-tags-label = Tags: disposal-router-window-tag-input-tooltip = A comma separated list of tags disposal-router-window-tag-input-confirm-button = Confirm - -## ConfigureVerb - -configure-verb-get-data-text = Open Configuration diff --git a/Resources/Locale/en-US/disposal/tube/components/disposal-tagger-window.ftl b/Resources/Locale/en-US/disposal/tube/components/disposal-tagger-window.ftl index dc4b40fc7f..55523c4b95 100644 --- a/Resources/Locale/en-US/disposal/tube/components/disposal-tagger-window.ftl +++ b/Resources/Locale/en-US/disposal/tube/components/disposal-tagger-window.ftl @@ -1,6 +1,3 @@ disposal-tagger-window-title = Disposal Tagger disposal-tagger-window-tag-input-label = Tag: disposal-tagger-window-tag-confirm-button = Confirm - -## ConfigureVerb -configure-verb-get-data-text = Open Configuration diff --git a/Resources/Locale/en-US/disposal/unit/components/disposal-unit-component.ftl b/Resources/Locale/en-US/disposal/unit/components/disposal-unit-component.ftl index 288db53668..2b23ee9a4a 100644 --- a/Resources/Locale/en-US/disposal/unit/components/disposal-unit-component.ftl +++ b/Resources/Locale/en-US/disposal/unit/components/disposal-unit-component.ftl @@ -18,9 +18,6 @@ disposal-eject-verb-get-data-text = Eject contents ## No hands disposal-unit-no-hands = You don't have hands! -## missed -disposal-unit-thrown-missed = Missed! - # state disposal-unit-state-Ready = Ready # Yes I want it to always say Pressurizing 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 2eab749c35..207a8ae0a3 100644 --- a/Resources/Locale/en-US/escape-menu/ui/options-menu.ftl +++ b/Resources/Locale/en-US/escape-menu/ui/options-menu.ftl @@ -52,6 +52,7 @@ ui-options-fancy-speech = Show names in speech bubbles ui-options-fancy-name-background = Add background to speech bubble names ui-options-enable-color-name = Add colors to character names ui-options-colorblind-friendly = Colorblind friendly mode +ui-options-no-filters = Disable species vision filters ui-options-reduced-motion = Reduce motion of visual effects ui-options-chat-window-opacity = Chat window opacity ui-options-chat-window-opacity-percent = { TOSTRING($opacity, "P0") } @@ -87,6 +88,10 @@ ui-options-vp-integer-scaling-tooltip = If this option is enabled, the viewport at specific resolutions. While this results in crisp textures, it also often means that black bars appear at the top/bottom of the screen or that part of the viewport is not visible. +ui-options-vp-vertical-fit = Vertical viewport fitting +ui-options-vp-vertical-fit-tooltip = When enabled, the main viewport will ignore the horizontal axis entirely when + fitting to your screen. If your screen is smaller than the viewport, then this + will cause the viewport to be cut off on the horizontal axis. ui-options-vp-low-res = Low-resolution viewport ui-options-parallax-low-quality = Low-quality Parallax (background) ui-options-fps-counter = Show FPS counter @@ -115,6 +120,7 @@ ui-options-header-general = General ui-options-hotkey-keymap = Use US QWERTY Keys ui-options-hotkey-toggle-walk = Toggle Speed +ui-options-hotkey-default-walk = Walk by default ui-options-function-move-up = Move Up ui-options-function-move-left = Move Left @@ -145,6 +151,7 @@ ui-options-function-rotate-stored-item = Rotate stored item ui-options-function-offer-item = Offer something ui-options-function-save-item-location = Save item location ui-options-function-toggle-standing = Toggle standing +ui-options-function-toggle-crawling-under = Toggle crawling under furniture ui-options-static-storage-ui = Lock storage window to hotbar ui-options-function-smart-equip-backpack = Smart-equip to backpack @@ -175,6 +182,7 @@ ui-options-function-open-crafting-menu = Open crafting menu ui-options-function-open-inventory-menu = Open inventory ui-options-function-open-a-help = Open admin help ui-options-function-open-abilities-menu = Open action menu +ui-options-function-toggle-round-end-summary-window = Toggle round end summary window ui-options-function-open-entity-spawn-window = Open entity spawn menu ui-options-function-open-sandbox-window = Open sandbox menu ui-options-function-open-tile-spawn-window = Open tile spawn menu @@ -198,7 +206,6 @@ ui-options-function-editor-rotate-object = Rotate ui-options-function-editor-flip-object = Flip ui-options-function-editor-copy-object = Copy -ui-options-function-open-abilities-menu = Open action menu ui-options-function-show-debug-console = Open Console ui-options-function-show-debug-monitors = Show Debug Monitors ui-options-function-inspect-entity = Inspect Entity @@ -268,3 +275,8 @@ ui-options-net-pvs-leave-tooltip = This limits the rate at which the client will ## Toggle window console command cmd-options-desc = Opens options menu, optionally with a specific tab selected. cmd-options-help = Usage: options [tab] + +## Combat Options +ui-options-function-look-up = Look up/Take aim +ui-options-function-auto-get-up = Automatically get up after falling +ui-options-function-hold-look-up = Hold down the key to aim diff --git a/Resources/Locale/en-US/fax/fax.ftl b/Resources/Locale/en-US/fax/fax.ftl index 1f1881a05d..412f3d7f43 100644 --- a/Resources/Locale/en-US/fax/fax.ftl +++ b/Resources/Locale/en-US/fax/fax.ftl @@ -3,6 +3,8 @@ fax-machine-popup-received = Received correspondence from { $from }. fax-machine-popup-name-long = Fax name is too long fax-machine-popup-name-exist = Fax with same name already exist in network fax-machine-popup-name-set = Fax name has been updated +fax-machine-popup-error = ERROR - jam in paper feed +fax-machine-popup-copy-error = ERROR - unable to copy! fax-machine-dialog-rename = Rename fax-machine-dialog-field-name = Name diff --git a/Resources/Locale/en-US/flavors/flavor-profiles.ftl b/Resources/Locale/en-US/flavors/flavor-profiles.ftl index 61567d8695..39b185bd02 100644 --- a/Resources/Locale/en-US/flavors/flavor-profiles.ftl +++ b/Resources/Locale/en-US/flavors/flavor-profiles.ftl @@ -168,6 +168,9 @@ flavor-complex-light = like a light gone out flavor-complex-profits = like profits flavor-complex-fishops = like the dreaded fishops flavor-complex-violets = like violets +flavor-complex-pyrotton = like a burning mouth +flavor-complex-mothballs = like mothballs +flavor-complex-paint-thinner = like paint thinner # Drink-specific flavors. @@ -240,6 +243,12 @@ flavor-complex-atomic-cola = like hoarding bottle caps flavor-complex-cuba-libre = like spiked cola flavor-complex-gin-tonic = like spiked lemon-lime soda flavor-complex-screwdriver = like spiked orange juice +flavor-complex-vodka-red-bool = like a heart attack +flavor-complex-irish-bool = caffine and Ireland +flavor-complex-xeno-basher = like killing bugs +flavor-complex-budget-insuls-drink = like door hacking +flavor-complex-watermelon-wakeup = like a sweet wakeup call +flavor-complex-rubberneck = like synthetics flavor-complex-irish-car-bomb = like a spiked cola float flavor-complex-themartinez = like violets and lemon vodka flavor-complex-cogchamp = like brass diff --git a/Resources/Locale/en-US/flight/flight_system.ftl b/Resources/Locale/en-US/flight/flight_system.ftl new file mode 100644 index 0000000000..3558ab9dc8 --- /dev/null +++ b/Resources/Locale/en-US/flight/flight_system.ftl @@ -0,0 +1,3 @@ +no-flight-while-restrained = You can't fly right now. +no-flight-while-zombified = You can't use your wings right now. +no-flight-while-lying = You can't fly right now. \ No newline at end of file diff --git a/Resources/Locale/en-US/fluids/components/absorbent-component.ftl b/Resources/Locale/en-US/fluids/components/absorbent-component.ftl index 670ac0a36a..8a4d37023f 100644 --- a/Resources/Locale/en-US/fluids/components/absorbent-component.ftl +++ b/Resources/Locale/en-US/fluids/components/absorbent-component.ftl @@ -1,8 +1,8 @@ mopping-system-target-container-empty = { CAPITALIZE(THE($target)) } is empty! mopping-system-target-container-empty-water = { CAPITALIZE(THE($target)) } has no water! -mopping-system-puddle-space = { THE($used) } is full of water -mopping-system-puddle-evaporate = { THE($target) } is evaporating -mopping-system-no-water = { THE($used) } has no water! +mopping-system-puddle-space = { CAPITALIZE(THE($used)) } is full of water +mopping-system-puddle-evaporate = { CAPITALIZE(THE($target)) } is evaporating +mopping-system-no-water = { CAPITALIZE(THE($used)) } has no water! -mopping-system-full = { THE($used) } is full! -mopping-system-empty = { THE($used) } is empty! +mopping-system-full = { CAPITALIZE(THE($used)) } is full! +mopping-system-empty = { CAPITALIZE(THE($used)) } is empty! diff --git a/Resources/Locale/en-US/game-ticking/game-presets/preset-revolutionary.ftl b/Resources/Locale/en-US/game-ticking/game-presets/preset-revolutionary.ftl index 5fb1d40b3d..15b53cf14b 100644 --- a/Resources/Locale/en-US/game-ticking/game-presets/preset-revolutionary.ftl +++ b/Resources/Locale/en-US/game-ticking/game-presets/preset-revolutionary.ftl @@ -5,31 +5,31 @@ roles-antag-rev-head-objective = Your objective is to take over the station by c head-rev-role-greeting = You are a Head Revolutionary. - You are tasked with removing all of Command from station via death or exilement. + You are tasked with removing all of Command from station via death, exilement or imprisonment. The Syndicate has sponsored you with a flash that converts the crew to your side. Beware, this won't work on Security, Command, or those wearing sunglasses. Viva la revolución! head-rev-briefing = Use flashes to convert people to your cause. - Kill all heads to take over the station. + Get rid of all heads to take over the station. head-rev-break-mindshield = The Mindshield was destroyed! ## Rev roles-antag-rev-name = Revolutionary -roles-antag-rev-objective = Your objective is to ensure the safety and follow the orders of the Head Revolutionaries as well as killing all Command staff on station. +roles-antag-rev-objective = Your objective is to ensure the safety and follow the orders of the Head Revolutionaries as well as getting rid of all Command staff on station. rev-break-control = {$name} has remembered their true allegiance! rev-role-greeting = You are a Revolutionary. You are tasked with taking over the station and protecting the Head Revolutionaries. - Eliminate all of the Command staff. + Get rid of all of the Command staff. Viva la revolución! -rev-briefing = Help your head revolutionaries kill every head to take over the station. +rev-briefing = Help your head revolutionaries get rid of every head to take over the station. ## General @@ -40,9 +40,7 @@ rev-not-enough-ready-players = Not enough players readied up for the game. There rev-no-one-ready = No players readied up! Can't start a Revolution. rev-no-heads = There were no Head Revolutionaries to be selected. Can't start a Revolution. -rev-all-heads-dead = All the heads are dead, now finish up the rest of the crew! - -rev-won = The Head Revs survived and killed all of Command. +rev-won = The Head Revs survived and successfully seized control of the station. rev-lost = Command survived and killed all of the Head Revs. diff --git a/Resources/Locale/en-US/game-ticking/game-presets/preset-traitor.ftl b/Resources/Locale/en-US/game-ticking/game-presets/preset-traitor.ftl index 724b752fbb..e92676a216 100644 --- a/Resources/Locale/en-US/game-ticking/game-presets/preset-traitor.ftl +++ b/Resources/Locale/en-US/game-ticking/game-presets/preset-traitor.ftl @@ -4,6 +4,7 @@ traitor-round-end-codewords = The codewords were: [color=White]{$codewords}[/col traitor-round-end-agent-name = traitor objective-issuer-syndicate = [color=crimson]The Syndicate[/color] +objective-issuer-unknown = Unknown # Shown at the end of a round of Traitor @@ -23,7 +24,7 @@ traitor-death-match-end-round-description-entry = {$originalName}'s PDA, with {$ # TraitorRole traitor-role-greeting = - You are a syndicate agent. + You are an agent sent by {$corporation} on behalf of The Syndicate. Your objectives and codewords are listed in the character menu. Use the uplink loaded into your PDA to buy the tools you'll need for this mission. Death to Nanotrasen! diff --git a/Resources/Locale/en-US/game-ticking/game-rules/rule-terminator.ftl b/Resources/Locale/en-US/game-ticking/game-rules/rule-terminator.ftl deleted file mode 100644 index 2e16743177..0000000000 --- a/Resources/Locale/en-US/game-ticking/game-rules/rule-terminator.ftl +++ /dev/null @@ -1,18 +0,0 @@ -terminator-round-end-agent-name = nt-800 - -objective-issuer-susnet = [color=#d64119]Susnet[/color] - -terminator-role-greeting = - You are the exterminator, a relentless assassin sent into the past to secure our future. - We need you to eliminate {$target}, {$job}. - Use any means at your disposal to complete the mission. - Glory to Cybersun. - -# DeltaV - paradox anomaly -terminator-role-briefing = - You are a bluespace anomaly that looks and sound identical to someone from this reality. - Kill them and assume their identity, or talk it out and become friends. - Your objectives support either playstyle (and you obviously can't do both). - -terminator-endoskeleton-gib-popup = All the battered flesh falls apart, revealing a titanium endoskeleton! -terminator-endoskeleton-burn-popup = The seared flesh is burned to a crisp, revealing a titanium endoskeleton! diff --git a/Resources/Locale/en-US/geras/geras.ftl b/Resources/Locale/en-US/geras/geras.ftl new file mode 100644 index 0000000000..3cd3f101ff --- /dev/null +++ b/Resources/Locale/en-US/geras/geras.ftl @@ -0,0 +1,2 @@ +geras-popup-morph-message-user = You shift and morph into a small version of you! +geras-popup-morph-message-others = {CAPITALIZE(THE($entity))} shifts and morphs into a blob of slime! diff --git a/Resources/Locale/en-US/ghost/ghost-gui.ftl b/Resources/Locale/en-US/ghost/ghost-gui.ftl index 909513e96c..1d793f3941 100644 --- a/Resources/Locale/en-US/ghost/ghost-gui.ftl +++ b/Resources/Locale/en-US/ghost/ghost-gui.ftl @@ -10,8 +10,20 @@ ghost-gui-toggle-hearing-popup-off = You can now only hear radio and nearby mess ghost-target-window-title = Ghost Warp ghost-target-window-current-button = Warp: {$name} +ghost-target-window-warp-to-most-followed = Warp to Most Followed ghost-roles-window-title = Ghost Roles +ghost-roles-window-join-raffle-button = Join raffle +ghost-roles-window-raffle-in-progress-button = + Join raffle ({$time} left, { $players -> + [one] {$players} player + *[other] {$players} players + }) +ghost-roles-window-leave-raffle-button = + Leave raffle ({$time} left, { $players -> + [one] {$players} player + *[other] {$players} players + }) ghost-roles-window-request-role-button = Request ghost-roles-window-request-role-button-timer = Request ({$time}s) ghost-roles-window-follow-role-button = Follow @@ -20,3 +32,4 @@ ghost-roles-window-rules-footer = The button will enable after {$time} seconds ( ghost-return-to-body-title = Return to Body ghost-return-to-body-text = You are being revived! Return to your body? +ghost-gui-return-to-round-button = Return to round \ No newline at end of file diff --git a/Resources/Locale/en-US/ghost/ghost-respawn.ftl b/Resources/Locale/en-US/ghost/ghost-respawn.ftl new file mode 100644 index 0000000000..a97fc68952 --- /dev/null +++ b/Resources/Locale/en-US/ghost/ghost-respawn.ftl @@ -0,0 +1,15 @@ +ghost-respawn-time-left = Please wait {$time} {$time -> + [one] minute + *[other] minutes +} before trying to respawn. + +ghost-respawn-max-players = Cannot respawn right now. There should be fewer than {$players} players. +ghost-respawn-window-title = Respawn rules +ghost-respawn-window-rules-footer = By respawning, you [color=#ff7700]agree[/color] [color=#ff0000]not to use any knowledge gained as your previous charactrer[/color]. Violation of this rule may constitute a server ban. Please, read the server rules for more details. +ghost-respawn-same-character = You cannot respawn as the same character. Please select a different one in character preferences. + +ghost-respawn-log-character-almost-same = Player {$player} { $try -> + [true] joined + *[false] tried to join +} the round after respawning with a similar name. Previous name: { $oldName }, current: { $newName }. +ghost-respawn-log-return-to-lobby = { $userName } returned to the lobby. diff --git a/Resources/Locale/en-US/ghost/roles/ghost-role-component.ftl b/Resources/Locale/en-US/ghost/roles/ghost-role-component.ftl index 9260db903f..4e6ec1f188 100644 --- a/Resources/Locale/en-US/ghost/roles/ghost-role-component.ftl +++ b/Resources/Locale/en-US/ghost/roles/ghost-role-component.ftl @@ -4,17 +4,6 @@ ghost-role-component-default-rules = All normal rules apply unless an administra You are allowed to remember knowledge about the game in general, such as how to cook, how to use objects, etc. You are absolutely [color=red]NOT[/color] allowed to remember, say, the name, appearance, etc. of your previous character. -# Delta V soft antag rule -deltav-ghost-role-information-softantag-rules = You are allowed to attack the crew without provocation. - You are allowed to coexist with the crew. - The crew is allowed to kill you without warning. - -# Delta V salvage antag rule -deltav-ghost-role-information-salvageantag-rules = You are a salvage mob. - You are allowed to attack salvagers without provocation. DO NOT GIB THEIR CORPSES! - You are allowed to attack the salvage shuttle. - You are NOT allowed to go to the station. If the salvagers go to the station, you can't follow them. - ghost-role-information-mouse-name = Mouse ghost-role-information-mouse-description = A hungry and mischievous mouse. @@ -40,16 +29,13 @@ ghost-role-information-angry-slimes-description = Everyone around you irritates ghost-role-information-smile-name = Smile the Slime ghost-role-information-smile-description = The sweetest creature in the world. Smile Slime! -ghost-role-information-smile-rules = You are a crew-aligned pet. You can defend yourself and even attack threats to the station, but you generally should not attack the station's crew nor destroy their property. ghost-role-information-punpun-name = Pun Pun ghost-role-information-punpun-description = An honorable member of the monkey society in charge of the bar and helping the bartenders in any way he can. ghost-role-information-xeno-name = Xeno ghost-role-information-xeno-description = You are a xeno, co-operate with your hive to kill all crewmembers! -ghost-role-information-xeno-rules = You are a xeno. - Your objective is to cooperate with your fellow xenos and kill all the crew. - Strike fast, make them fear the shadows. +ghost-role-information-xeno-rules = You are an antagonist, smack, slash, and wack! ghost-role-information-revenant-name = Revenant ghost-role-information-revenant-description = You are a Revenant. Use your powers to harvest souls and unleash chaos upon the crew. Unlock new abilities with the essence you harvest. @@ -161,7 +147,7 @@ ghost-role-information-skeleton-biker-name = Skeleton Biker ghost-role-information-skeleton-biker-description = Ride around on your sweet ride. ghost-role-information-closet-skeleton-name = Closet Skeleton -ghost-role-information-closet-skeleton-description = You are a closet skeleton! You are a primordial force of chaos with no allegiance! You can either join the crew and use your skeletal antics to help them, or be a a prankster, and hinder their efforts! +ghost-role-information-closet-skeleton-description = Wreak havoc! You are a primordial force with no allegiance. Live happily with the crew or wage sweet skeletal war. ghost-role-information-onestar-mecha-name = Onestar Mecha ghost-role-information-onestar-mecha-description = You are an experimental mecha created by who-knows-what, all you know is that you have weapons and you detect fleshy moving targets nearby... @@ -226,14 +212,6 @@ ghost-role-information-BreadDog-name = BreadDog ghost-role-information-BreadDog-description = You are the chef's favorite child. You're a living bread dog. ghost-role-information-BreadDog-rules = You're an edible dog made of bread. Your task is to find your place in this world where everything wants to eat you. -ghost-role-information-Shiva-name = Shiva -ghost-role-information-Shiva-description = Shiva, the stations first defender. Help the Head of Security in their work -ghost-role-information-Shiva-rules = Protect security staff and the crew from danger. Stay with Security staff or around the Security department, try to disable criminals and not kill them if the situation allows for it. - -ghost-role-information-exterminator-name = Exterminator -ghost-role-information-exterminator-description = You been been sent back in time to terminate a target with high importance to the future. -ghost-role-information-exterminator-rules = You are an antagonist and may kill anyone that tries to stop you, but killing the target is always your top priority. - ghost-role-information-space-ninja-name = Space Ninja ghost-role-information-space-ninja-description = Use stealth and deception to sabotage the station. ghost-role-information-space-ninja-rules = You are an elite mercenary of the Spider Clan. You aren't required to follow your objectives, yet your NINJA HONOR demands you try. @@ -246,6 +224,30 @@ ghost-role-information-syndicate-monkey-reinforcement-name = Syndicate Monkey Ag ghost-role-information-syndicate-monkey-reinforcement-description = Someone needs reinforcements. You, a trained monkey, will help them. ghost-role-information-syndicate-monkey-reinforcement-rules = Normal syndicate antagonist rules apply. Work with whoever called you in, and don't harm them. +ghost-role-information-lost-cargo-technical-name = Lost Cargo Technician +ghost-role-information-lost-cargo-technical-description = Something went wrong and your cargo shuttle with the goods was beamed into the sector to another station. +ghost-role-information-lost-cargo-technical-rules = You're a regular cargo technician from another station. Do what regular cargo do. + +ghost-role-information-clown-troupe-name = Space Clown +ghost-role-information-clown-troupe-description = You and your troupe have come to cheer up this station with your best jokes. Honk! +ghost-role-information-clown-troupe-rules = Normal station crew rules apply. + +ghost-role-information-traveling-chef-name = Traveling Chef +ghost-role-information-traveling-chef-description = You are a chef on a traveling shuttle of exotic cuisine. Delight the station with delicious food! +ghost-role-information-traveling-chef-rules = Normal station crew rules apply. + +ghost-role-information-disaster-victim-name = Disaster Victim +ghost-role-information-disaster-victim-description = You were rescued in an escape pod from another station that suffered a terrible fate. Perhaps you will be found and rescued. +ghost-role-information-disaster-victim-rules = Normal station crew rules apply. + +ghost-role-information-syndie-disaster-victim-name = Syndie Disaster Victim +ghost-role-information-syndie-disaster-victim-description = You're a regular passenger from a syndicate station. Unfortunately, an evacuation pod has thrown you into an enemy sector..... +ghost-role-information-syndie-disaster-victim-rules = Normal station crew rules apply. You are NOT an antagonist! + +ghost-role-information-syndicate-kobold-reinforcement-name = Syndicate Kobold Agent +ghost-role-information-syndicate-kobold-reinforcement-description = Someone needs reinforcements. You, a trained kobold, will help them. +ghost-role-information-syndicate-kobold-reinforcement-rules = Normal syndicate antagonist rules apply. Work with whoever called you in, and don't harm them. + ghost-role-information-artifact-name = Sentient Artifact ghost-role-information-artifact-description = Enact your eldritch whims. diff --git a/Resources/Locale/en-US/ghost/roles/ghostrole-spawner-verb-selectable.ftl b/Resources/Locale/en-US/ghost/roles/ghostrole-spawner-verb-selectable.ftl new file mode 100644 index 0000000000..9d649a5e07 --- /dev/null +++ b/Resources/Locale/en-US/ghost/roles/ghostrole-spawner-verb-selectable.ftl @@ -0,0 +1 @@ +ghostrole-spawner-select = Selected: {$mode} \ No newline at end of file diff --git a/Resources/Locale/en-US/guidebook/chemistry/conditions.ftl b/Resources/Locale/en-US/guidebook/chemistry/conditions.ftl index 807b5591a8..6cbfc13a79 100644 --- a/Resources/Locale/en-US/guidebook/chemistry/conditions.ftl +++ b/Resources/Locale/en-US/guidebook/chemistry/conditions.ftl @@ -1,4 +1,4 @@ -reagent-effect-condition-guidebook-total-damage = +reagent-effect-condition-guidebook-total-damage = { $max -> [2147483648] it has at least {NATURALFIXED($min, 2)} total damage *[other] { $min -> @@ -7,6 +7,15 @@ } } +reagent-effect-condition-guidebook-total-hunger = + { $max -> + [2147483648] the target has at least {NATURALFIXED($min, 2)} total hunger + *[other] { $min -> + [0] the target has at most {NATURALFIXED($max, 2)} total hunger + *[other] the target has between {NATURALFIXED($min, 2)} and {NATURALFIXED($max, 2)} total hunger + } + } + reagent-effect-condition-guidebook-reagent-threshold = { $max -> [2147483648] there's at least {NATURALFIXED($min, 2)}u of {$reagent} @@ -48,3 +57,5 @@ reagent-effect-condition-guidebook-has-tag = [true] does not have *[false] has } the tag {$tag} + +reagent-effect-condition-guidebook-this-reagent = this reagent diff --git a/Resources/Locale/en-US/guidebook/chemistry/effects.ftl b/Resources/Locale/en-US/guidebook/chemistry/effects.ftl index db2f3816f6..9da6c0c0ae 100644 --- a/Resources/Locale/en-US/guidebook/chemistry/effects.ftl +++ b/Resources/Locale/en-US/guidebook/chemistry/effects.ftl @@ -43,7 +43,7 @@ reagent-effect-guidebook-foam-area-reaction-effect = *[other] create } large quantities of foam -reagent-effect-guidebook-foam-area-reaction-effect = +reagent-effect-guidebook-smoke-area-reaction-effect = { $chance -> [1] Creates *[other] create @@ -339,6 +339,12 @@ reagent-effect-guidebook-innoculate-zombie-infection = *[other] cure } an ongoing zombie infection, and provides immunity to future infections +reagent-effect-guidebook-reduce-rotting = + { $chance -> + [1] Regenerates + *[other] regenerate + } {NATURALFIXED($time, 3)} {MANY("second", $time)} of rotting + reagent-effect-guidebook-missing = { $chance -> [1] Causes @@ -361,4 +367,11 @@ reagent-effect-guidebook-chem-reroll-psionic = { $chance -> [1] Allows *[other] allow - } a chance to get a different psionic power \ No newline at end of file + } a chance to get a different psionic power + +reagent-effect-guidebook-add-moodlet = + modifies mood by {$amount} + { $timeout -> + [0] indefinitely + *[other] for {$timeout} seconds + } \ No newline at end of file diff --git a/Resources/Locale/en-US/guidebook/food.ftl b/Resources/Locale/en-US/guidebook/food.ftl new file mode 100644 index 0000000000..bd4fa03251 --- /dev/null +++ b/Resources/Locale/en-US/guidebook/food.ftl @@ -0,0 +1,16 @@ +guidebook-food-name = [bold][color={$color}]{CAPITALIZE($name)}[/color][/bold] +guidebook-food-unknown-proto = Unknown prototype +guidebook-food-sources-header = Sources +guidebook-food-sources-ent-wrapper = {$name} +guidebook-food-reagents-header = Chemical composition + +guidebook-food-processing-butchering = Butcher +guidebook-food-processing-slicing = Slice +guidebook-food-processing-cooking = Microwave for {$time}s +guidebook-food-processing-reaction = Mix + +guidebook-food-processing-recipe = {$ingredients} +guidebook-food-ingredient-solid = add {$amount} {$name} +guidebook-food-ingredient-liquid = add {$amount}u {$name} + +guidebook-food-output = {$name} ({$number}) diff --git a/Resources/Locale/en-US/guidebook/guides.ftl b/Resources/Locale/en-US/guidebook/guides.ftl index 968d3b2003..e807bcad9d 100644 --- a/Resources/Locale/en-US/guidebook/guides.ftl +++ b/Resources/Locale/en-US/guidebook/guides.ftl @@ -11,7 +11,7 @@ guide-entry-access-configurator = Access Configurator guide-entry-power = Power guide-entry-portable-generator = Portable Generators guide-entry-ame = Antimatter Engine (AME) -guide-entry-singularity = Singularity +guide-entry-singularity = Singularity / Tesla guide-entry-teg = Thermo-electric Generator (TEG) guide-entry-rtg = RTG guide-entry-controls = Controls @@ -72,5 +72,4 @@ guide-entry-writing = Writing guide-entry-glossary = Glossary guide-entry-altars-golemancy = Altars and Golemancy -guide-entry-psionics = Psionics guide-entry-reverse-engineering = Reverse Engineering diff --git a/Resources/Locale/en-US/implant/implant.ftl b/Resources/Locale/en-US/implant/implant.ftl index b93d43105a..c3002a73ae 100644 --- a/Resources/Locale/en-US/implant/implant.ftl +++ b/Resources/Locale/en-US/implant/implant.ftl @@ -10,9 +10,10 @@ implanter-component-implant-already = {$target} already has the {$implant}! implanter-draw-text = Draw implanter-inject-text = Inject -implanter-empty-text = None +implanter-empty-text = Empty -implanter-label = Implant: [color=green]{$implantName}[/color] | [color=white]{$modeString}[/color]{$lineBreak}{$implantDescription} +implanter-label = [color=green]{$implantName}[/color] + Mode: [color=white]{$modeString}[/color] implanter-contained-implant-text = [color=green]{$desc}[/color] diff --git a/Resources/Locale/en-US/interaction/interaction-popup-component.ftl b/Resources/Locale/en-US/interaction/interaction-popup-component.ftl index fe30d042c3..7bce6616c5 100644 --- a/Resources/Locale/en-US/interaction/interaction-popup-component.ftl +++ b/Resources/Locale/en-US/interaction/interaction-popup-component.ftl @@ -42,7 +42,6 @@ petting-failure-crab = You reach out to pet {THE($target)}, but {SUBJECT($target petting-failure-dehydrated-carp = You pet {THE($target)} on {POSS-ADJ($target)} dry little head. petting-failure-goat = You reach out to pet {THE($target)}, but {SUBJECT($target)} stubbornly refuses! petting-failure-goose = You reach out to pet {THE($target)}, but {SUBJECT($target)} {CONJUGATE-BE($target)} too horrible! -petting-failure-goose = You reach out to pet {THE($target)}, but {SUBJECT($target)} {CONJUGATE-BE($target)} too australian! petting-failure-possum = You reach out to pet {THE($target)}, but are met with hisses and snarls! petting-failure-pig = You reach out to pet {THE($target)}, but are met with irritated oinks and squeals! petting-failure-raccoon = You reach out to pet {THE($target)}, but {THE($target)} is busy raccooning around. @@ -69,11 +68,6 @@ petting-failure-cleanbot = You reach out to pet {THE($target)}, but {SUBJECT($ta petting-failure-mimebot = You reach out to pet {THE($target)}, but {SUBJECT($target)} {CONJUGATE-BE($target)} busy miming! petting-failure-medibot = You reach out to pet {THE($target)}, but {POSS-ADJ($target)} syringe nearly stabs your hand! -## Knocking on windows - -# Shown when knocking on a window -comp-window-knock = *knock knock* - ## Rattling fences fence-rattle-success = *rattle* diff --git a/Resources/Locale/en-US/inventory/item-status.ftl b/Resources/Locale/en-US/inventory/item-status.ftl new file mode 100644 index 0000000000..a53ba8be7d --- /dev/null +++ b/Resources/Locale/en-US/inventory/item-status.ftl @@ -0,0 +1 @@ +item-status-not-held = No held item diff --git a/Resources/Locale/en-US/job/job-supervisors.ftl b/Resources/Locale/en-US/job/job-supervisors.ftl index 25a49f643e..46321f40dd 100644 --- a/Resources/Locale/en-US/job/job-supervisors.ftl +++ b/Resources/Locale/en-US/job/job-supervisors.ftl @@ -1,4 +1,4 @@ -job-supervisors-centcom = CentCom official +job-supervisors-centcom = Central Command job-supervisors-captain = the captain job-supervisors-hop = the head of personnel job-supervisors-hos = the head of security diff --git a/Resources/Locale/en-US/kitchen/components/microwave-component.ftl b/Resources/Locale/en-US/kitchen/components/microwave-component.ftl index 0603b3c846..12346ee75d 100644 --- a/Resources/Locale/en-US/kitchen/components/microwave-component.ftl +++ b/Resources/Locale/en-US/kitchen/components/microwave-component.ftl @@ -9,6 +9,7 @@ microwave-component-suicide-multi-head-others-message = {$victim} is trying to c microwave-component-suicide-others-message = {$victim} is trying to cook their head! microwave-component-suicide-multi-head-message = You cook your heads! microwave-component-suicide-message = You cook your head! +microwave-component-upgrade-cook-time = cook time microwave-component-interact-full = It's full. microwave-component-interact-item-too-big = { CAPITALIZE(THE($item)) } is too big to fit in the microwave! diff --git a/Resources/Locale/en-US/kitchen/components/reagent-grinder-component.ftl b/Resources/Locale/en-US/kitchen/components/reagent-grinder-component.ftl index 8a3ca9eef8..3495128274 100644 --- a/Resources/Locale/en-US/kitchen/components/reagent-grinder-component.ftl +++ b/Resources/Locale/en-US/kitchen/components/reagent-grinder-component.ftl @@ -4,6 +4,9 @@ reagent-grinder-bound-user-interface-instant-button = INSTANT reagent-grinder-bound-user-interface-cook-time-label = COOK TIME reagent-grinder-component-cannot-put-entity-message = You can't put this in the reagent grinder! +reagent-grinder-component-upgrade-work-time = Work time +reagent-grinder-component-upgrade-storage = Storage + grinder-menu-title = All-In-One Grinder 3000 grinder-menu-grind-button = Grind grinder-menu-juice-button = Juice diff --git a/Resources/Locale/en-US/language/commands.ftl b/Resources/Locale/en-US/language/commands.ftl index 65959e3f28..ccbe2570c9 100644 --- a/Resources/Locale/en-US/language/commands.ftl +++ b/Resources/Locale/en-US/language/commands.ftl @@ -2,10 +2,10 @@ command-list-langs-desc = List languages your current entity can speak at the cu command-list-langs-help = Usage: {$command} command-saylang-desc = Send a message in a specific language. To choose a language, you can use either the name of the language, or its position in the list of languages. -command-saylang-help = Usage: {$command} . Example: {$command} GalacticCommon "Hello World!". Example: {$command} 1 "Hello World!" +command-saylang-help = Usage: {$command} . Example: {$command} TauCetiBasic "Hello World!". Example: {$command} 1 "Hello World!" command-language-select-desc = Select the currently spoken language of your entity. You can use either the name of the language, or its position in the list of languages. -command-language-select-help = Usage: {$command} . Example: {$command} 1. Example: {$command} GalacticCommon +command-language-select-help = Usage: {$command} . Example: {$command} 1. Example: {$command} TauCetiBasic command-language-spoken = Spoken: command-language-understood = Understood: @@ -18,14 +18,14 @@ command-language-invalid-language = The language {$id} does not exist or you can # toolshed command-description-language-add = Adds a new language to the piped entity. The two last arguments indicate whether it should be spoken/understood. Example: 'self language:add "Canilunzt" true true' -command-description-language-rm = Removes a language from the piped entity. Works similarly to language:add. Example: 'self language:rm "GalacticCommon" true true'. +command-description-language-rm = Removes a language from the piped entity. Works similarly to language:add. Example: 'self language:rm "TauCetiBasic" true true'. command-description-language-lsspoken = Lists all languages the entity can speak. Example: 'self language:lsspoken' command-description-language-lsunderstood = Lists all languages the entity can understand. Example: 'self language:lssunderstood' command-description-translator-addlang = Adds a new target language to the piped translator entity. See language:add for details. command-description-translator-rmlang = Removes a target language from the piped translator entity. See language:rm for details. -command-description-translator-addrequired = Adds a new required language to the piped translator entity. Example: 'ent 1234 translator:addrequired "GalacticCommon"' -command-description-translator-rmrequired = Removes a required language from the piped translator entity. Example: 'ent 1234 translator:rmrequired "GalacticCommon"' +command-description-translator-addrequired = Adds a new required language to the piped translator entity. Example: 'ent 1234 translator:addrequired "TauCetiBasic"' +command-description-translator-rmrequired = Removes a required language from the piped translator entity. Example: 'ent 1234 translator:rmrequired "TauCetiBasic"' command-description-translator-lsspoken = Lists all spoken languages for the piped translator entity. Example: 'ent 1234 translator:lsspoken' command-description-translator-lsunderstood = Lists all understood languages for the piped translator entity. Example: 'ent 1234 translator:lssunderstood' command-description-translator-lsrequired = Lists all required languages for the piped translator entity. Example: 'ent 1234 translator:lsrequired' diff --git a/Resources/Locale/en-US/language/languages.ftl b/Resources/Locale/en-US/language/languages.ftl index 68dc80f51d..02527498db 100644 --- a/Resources/Locale/en-US/language/languages.ftl +++ b/Resources/Locale/en-US/language/languages.ftl @@ -1,9 +1,6 @@ language-Universal-name = Universal language-Universal-description = What are you? -language-GalacticCommon-name = Galactic common -language-GalacticCommon-description = The standard Galatic language, most commonly used for inter-species communications and legal work. - language-Bubblish-name = Bubblish language-Bubblish-description = The language of Slimes. Being a mixture of bubbling noises and pops it's very difficult to speak for humans without the use of mechanical aids. @@ -13,14 +10,47 @@ language-RootSpeak-description = The strange whistling-style language spoken by language-Nekomimetic-name = Nekomimetic language-Nekomimetic-description = To the casual observer, this language is an incomprehensible mess of broken Japanese. To the Felinids and Oni, it's somehow comprehensible. -language-Draconic-name = Draconic -language-Draconic-description = The common language of lizard-people, composed of sibilant hisses and rattles. +language-Draconic-name = Sinta'Unathi +language-Draconic-description = + The common language of Moghes - composed of sibilant hisses and rattles. Spoken natively by Unathi. + +language-Azaziba-name = Sinta'Azaziba +language-Azaziba-description = + A language of Moghes consisting of a combination of spoken word and gesticulation. + While waning since Moghes entered the galactic stage - it enjoys popular use by Unathi that never fell to the Hegemony's cultural dominance. language-SolCommon-name = Sol common -language-SolCommon-description = The language common to species from the Sol System. +language-SolCommon-description = + With its roots in Mandarin Chinese - Common evolved as the official language of the Sol Alliance - with officials working to tie it together with a common tongue. + It's spoken by state officials - taught in schools - and spoken by those who either feel a sense of national pride in the Alliance or otherwise fell sway to the culture. + +language-TauCetiBasic-name = Tau-Ceti Basic +language-TauCetiBasic-description = + A spiritual successor of Esperanto, established in 2404 in Tau Ceti by Ceti intellectuals. + Its unique, fully customized alphabet and structure allow it to be spoken even by most alien species. + It's the official language of Tau Ceti and has growing traction in diplomatic circles and Universalists across human space. + +language-Tradeband-name = Tradeband +language-Tradeband-description = + Descended from latin and romance languages of old Earth - Tradeband remains the main tongue of the upper class of humanity. + The language sounds elegant and well structured to most ears. It remains in popular use with traders - diplomats - and those seeking to hold onto a piece of a romantic past. + +language-Freespeak-name = Freespeak +language-Freespeak-description = + A language of renegades and frontiersmen descending from various languages from Earth-- like Hindi, + combined into a multi-rooted jumble that sounds incoherent or even barbarian to non-native speakers. + This language is the only common cultural identity for humans in the frontier. Speaking this language in itself boldly declares the speaker a free spirit. + It is often called 'Gutter' by Alliance citizens. + +language-Elyran-name = Elyran Standard +language-Elyran-description = + Elyran Standard is the official tongue of the Republic of Elyra. Constructed using elements of Farsi - Arabic - and Turkish. + Influence from all three of these languages can be seen throughout its grammar and vocabulary. language-Canilunzt-name = Canilunzt -language-Canilunzt-description = The guttural language spoken and utilized by the inhabitants of the Vazzend system, composed of growls, barks, yaps, and heavy utilization of ears and tail movements. Vulpkanin speak this language with ease. +language-Canilunzt-description = + The guttural language spoken and utilized by the inhabitants of the Vazzend system, + composed of growls, barks, yaps, and heavy utilization of ears and tail movements. Vulpkanin speak this language with ease. language-Moffic-name = Moffic language-Moffic-description = The language of the mothpeople borders on complete unintelligibility. @@ -28,8 +58,14 @@ language-Moffic-description = The language of the mothpeople borders on complete language-RobotTalk-name = RobotTalk language-RobotTalk-description = A language consisting of harsh binary chirps, whistles, hisses, and whines. Organic tongues cannot speak it without aid from special translators. -language-Sign-name = Galactic Sign Language -language-Sign-description = GSL for short, this sign language is prevalent among mute and deaf people. +language-Sign-name = Tau-Ceti Basic Sign Language +language-Sign-description = TCB-SL for short, this sign language is prevalent among mute and deaf people. + +language-ValyrianStandard-name = Valyrian Standard +language-ValyrianStandard-description = + A language descended from eastern european languages of old earth - Valyrian Standard is the commonly spoken tongue of Harpies brought up on their homeworld of Valyrian 4b + It is rarely spoken outside of the worlds of its native speakers, and has in modern times been supplanted by the 'Conlangs of the Sol Alliance. + Its speakers are those who wish to uphold the traditions and beliefs of ancient peoples from before the colonial era. language-Cat-name = Cat language-Cat-description = Meow diff --git a/Resources/Locale/en-US/loadouts/categories.ftl b/Resources/Locale/en-US/loadouts/categories.ftl index 6dde7128d8..ddabf9db13 100644 --- a/Resources/Locale/en-US/loadouts/categories.ftl +++ b/Resources/Locale/en-US/loadouts/categories.ftl @@ -2,12 +2,14 @@ loadout-category-Uncategorized = Uncategorized loadout-category-Accessories = Accessories +loadout-category-Backpacks = Backpacks loadout-category-Eyes = Eyes loadout-category-Hands = Hands loadout-category-Head = Head loadout-category-Items = Items loadout-category-Jobs = Jobs loadout-category-JobsAUncategorized = Uncategorized +loadout-category-JobsCargo = Logistics loadout-category-JobsCommand = Command loadout-category-JobsCommandAUncategorized = Uncategorized loadout-category-JobsCommandCaptain = Captain @@ -17,6 +19,13 @@ loadout-category-JobsCommandHOP = Head of Personnel loadout-category-JobsCommandHOS = Head of Security loadout-category-JobsCommandQM = Logistics Officer loadout-category-JobsCommandRD = Mystagogue +loadout-category-JobsEngineering = Engineering +loadout-category-JobsMedical = Medical +loadout-category-JobsScience = Epistemics +loadout-category-JobsSecurity = Security +loadout-category-JobsService = Service +loadout-category-JobsServiceUncategorized = Uncategorized +loadout-category-JobsServiceBartender = Bartender loadout-category-Mask = Mask loadout-category-Neck = Neck loadout-category-Outer = Outer diff --git a/Resources/Locale/en-US/loadouts/itemgroups.ftl b/Resources/Locale/en-US/loadouts/itemgroups.ftl new file mode 100644 index 0000000000..50f37e7c7a --- /dev/null +++ b/Resources/Locale/en-US/loadouts/itemgroups.ftl @@ -0,0 +1,74 @@ +# This list is sorted Mixed Alphabetically with Generic always being placed first, Departments alphabetically, Items Groups Alphabetically, and Jobs Alphabetically after all Department items +# Generic - Clothing +character-item-group-LoadoutBackpacks = Civilian Backpacks +character-item-group-LoadoutEyes = Civilian Eyewear +character-item-group-LoadoutGloves = Civilian Gloves +character-item-group-LoadoutHead = Civilian Headgear +character-item-group-LoadoutMasks = Civilian Masks +character-item-group-LoadoutNeck = Civilian Neckwear +character-item-group-LoadoutOuter = Civilian Outerwear +character-item-group-LoadoutShoes = Civilian Shoes +character-item-group-LoadoutUniformsCivilian = Civilian Uniforms + +# Generic - Items +character-item-group-LoadoutAirTank = Emergency Air Tanks +character-item-group-LoadoutLighters = Lighters +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 + +# Cargo +character-item-group-LoadoutNeckCargo = Logistics Neckwear +character-item-group-LoadoutOuterCargo = Logistics Outerwear +character-item-group-LoadoutShoesCargo = Logistics Shoes + +# 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 + +# 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 + +# 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 + +# Service +character-item-group-LoadoutEquipmentService = Service Equipment +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 + +# Service - Bartender +character-item-group-LoadoutBartenderAmmo = Bartender Ammo +character-item-group-LoadoutBartenderOuterwear = Bartender Outerwear +character-item-group-LoadoutBartenderWeapon = Bartender Weapon + +# Service - Musician +character-item-group-LoadoutMusicianInstruments = Musician Instruments + +# Traits - Languages +character-item-group-TraitsLanguagesBasic = Basic Languages +character-item-group-TraitsAccents = Accents \ No newline at end of file diff --git a/Resources/Locale/en-US/loadouts/jobs/security.ftl b/Resources/Locale/en-US/loadouts/jobs/security.ftl index c3d78d7813..565e295047 100644 --- a/Resources/Locale/en-US/loadouts/jobs/security.ftl +++ b/Resources/Locale/en-US/loadouts/jobs/security.ftl @@ -1,3 +1,20 @@ loadout-description-LoadoutSecurityUniformJumpskirtSenior = A skirt fit for the best of the best. loadout-description-LoadoutSecurityUniformJumpsuitSenior = A suit fit for the best of the best. loadout-description-LoadoutSecurityShoesJackboots = A really nice, heavy, pair of black boots. +# Equipment +loadout-name-LoadoutMagazinePistolSpare = pistol magazine (.35 auto, spare) +loadout-name-LoadoutMagazinePistolNonLethalSpare = pistol magazine (.35 auto rubber, spare) +loadout-name-LoadoutSpeedLoaderMagnumSpare = speed loader (.45 magnum, spare) +loadout-name-LoadoutSpeedLoaderMagnumRubberSpare = speed loader (.45 magnum rubber, spare) + +# Duty Weapons +loadout-name-LoadoutSecurityMk58 = Mk58 (lethal) +loadout-name-LoadoutSecurityMk58NonLethal = Mk58 (non-lethal) +loadout-name-LoadoutSecurityRevolver = Inspector (lethal) +loadout-name-LoadoutSecurityRevolverNonLethal = Inspector (non-lethal) +loadout-name-LoadoutSecurityRevolverDeckard = Deckard (lethal) +loadout-name-LoadoutSecurityRevolverDeckardNonLethal = Deckard (non-lethal) +loadout-name-LoadoutSecurityPistolN1984 = N1984 (lethal) +loadout-name-LoadoutSecurityPistolN1984NonLethal = N1984 (non-lethal) +loadout-name-LoadoutSecurityPistolViper = Viper (lethal) +loadout-name-LoadoutSecurityPistolViperNonLethal = Viper (non-lethal) \ No newline at end of file diff --git a/Resources/Locale/en-US/machine-linking/transmitter_ports.ftl b/Resources/Locale/en-US/machine-linking/transmitter_ports.ftl index c685cc8fb7..1d879fcee9 100644 --- a/Resources/Locale/en-US/machine-linking/transmitter_ports.ftl +++ b/Resources/Locale/en-US/machine-linking/transmitter_ports.ftl @@ -19,6 +19,9 @@ signal-port-description-right = This port is invoked whenever the lever is moved signal-port-name-doorstatus = Door status signal-port-description-doorstatus = This port is invoked with HIGH when the door opens and LOW when the door finishes closing. +signal-port-name-dockstatus = Dock status +signal-port-description-dockstatus = This port is invoked with HIGH when docked and LOW when undocked. + signal-port-name-middle = Middle signal-port-description-middle = This port is invoked whenever the lever is moved to the neutral position. diff --git a/Resources/Locale/en-US/machine/machine.ftl b/Resources/Locale/en-US/machine/machine.ftl index ce8873df6f..2605950516 100644 --- a/Resources/Locale/en-US/machine/machine.ftl +++ b/Resources/Locale/en-US/machine/machine.ftl @@ -13,6 +13,11 @@ machine-part-name-manipulator = Manipulator machine-part-name-matter-bin = Matter Bin machine-part-name-power-cell = Power Cell +upgrade-power-draw = power draw +upgrade-max-charge = max charge +upgrade-power-supply = power supply +upgrade-power-supply-ramping = power ramp rate + two-way-lever-left = push left two-way-lever-right = push right two-way-lever-cant = can't push the lever that way! diff --git a/Resources/Locale/en-US/magic/magic.ftl b/Resources/Locale/en-US/magic/magic.ftl new file mode 100644 index 0000000000..4c8a5fc51d --- /dev/null +++ b/Resources/Locale/en-US/magic/magic.ftl @@ -0,0 +1 @@ +spell-requirements-failed = Missing requirements to cast this spell! diff --git a/Resources/Locale/en-US/mail/commands.ftl b/Resources/Locale/en-US/mail/commands.ftl new file mode 100644 index 0000000000..1f471bb7a5 --- /dev/null +++ b/Resources/Locale/en-US/mail/commands.ftl @@ -0,0 +1,20 @@ +# Mailto +command-mailto-description = Queue a parcel to be delivered to an entity. Example usage: `mailto 1234 5678 false false`. The target container's contents will be transferred to an actual mail parcel. +command-mailto-help = Usage: {$command} [is-fragile: true or false] [is-priority: true or false] [is-large: true or false, optional] +command-mailto-no-mailreceiver = Target recipient entity does not have a {$requiredComponent}. +command-mailto-no-blankmail = The {$blankMail} prototype doesn't exist. Something is very wrong. Contact a programmer. +command-mailto-bogus-mail = {$blankMail} did not have {$requiredMailComponent}. Something is very wrong. Contact a programmer. +command-mailto-invalid-container = Target container entity does not have a {$requiredContainer} container. +command-mailto-unable-to-receive = Target recipient entity was unable to be setup for receiving mail. ID may be missing. +command-mailto-no-teleporter-found = Target recipient entity was unable to be matched to any station's mail teleporter. Recipient may be off-station. +command-mailto-success = Success! Mail parcel has been queued for next teleport in {$timeToTeleport} seconds. + +# Mailnow +command-mailnow = Force all mail teleporters to deliver another round of mail as soon as possible. This will not bypass the undelivered mail limit. +command-mailnow-help = Usage: {$command} +command-mailnow-success = Success! All mail teleporters will be delivering another round of mail soon. + +# Mailtestbulk +command-mailtestbulk = Sends one of each type of parcel to a given mail teleporter. Implicitly calls mailnow. +command-mailtestbulk-help = Usage: {$command} +command-mailtestbulk-success = Success! All mail teleporters will be delivering another round of mail soon. diff --git a/Resources/Locale/en-US/mail/mail.ftl b/Resources/Locale/en-US/mail/mail.ftl new file mode 100644 index 0000000000..5a27737732 --- /dev/null +++ b/Resources/Locale/en-US/mail/mail.ftl @@ -0,0 +1,23 @@ +mail-recipient-mismatch = Recipient name or job does not match. +mail-invalid-access = Recipient name and job match, but access isn't as expected. +mail-locked = The anti-tamper lock hasn't been removed. Tap the recipient's ID. +mail-desc-far = A parcel of mail. You can't make out who it's addressed to from this distance. +mail-desc-close = A parcel of mail addressed to {CAPITALIZE($name)}, {$job}. +mail-desc-fragile = It has a [color=red]red fragile label[/color]. +mail-desc-priority = The anti-tamper lock's [color=yellow]yellow priority tape[/color] is active. Better deliver it on time! +mail-desc-priority-inactive = The anti-tamper lock's [color=#886600]yellow priority tape[/color] is inactive. +mail-unlocked = Anti-tamper system unlocked. +mail-unlocked-by-emag = Anti-tamper system *BZZT*. +mail-unlocked-reward = Anti-tamper system unlocked. {$bounty} spesos have been added to logistics' account. +mail-penalty-lock = ANTI-TAMPER LOCK BROKEN. LOGISTICS BANK ACCOUNT PENALIZED BY {$credits} SPESOS. +mail-penalty-fragile = INTEGRITY COMPROMISED. LOGISTICS BANK ACCOUNT PENALIZED BY {$credits} SPESOS. +mail-penalty-expired = DELIVERY PAST DUE. LOGISTICS BANK ACCOUNT PENALIZED BY {$credits} SPESOS. +mail-item-name-unaddressed = mail +mail-item-name-addressed = mail ({$recipient}) + +mail-large-item-name-unaddressed = package +mail-large-item-name-addressed = package ({$recipient}) +mail-large-desc-far = A large package. +mail-large-desc-close = A large package addressed to {CAPITALIZE($name)}, {$job}. + + diff --git a/Resources/Locale/en-US/markings/Kemonomimi_tails.ftl b/Resources/Locale/en-US/markings/Kemonomimi_tails.ftl new file mode 100644 index 0000000000..303335cd2c --- /dev/null +++ b/Resources/Locale/en-US/markings/Kemonomimi_tails.ftl @@ -0,0 +1,30 @@ +marking-BunnyTail = Bunny Tail +marking-BunnyTail-bunnytail = Tail + +marking-DobleFur = Doble Tail +marking-DobleFur-doblefurtailtone1 = Outer +marking-DobleFur-doblefurtailtone2 = Inner + +marking-FluffyTail = Fluffy Tail +marking-FluffyTail-fluffytail = Tail + +marking-FoxNineTails = Nine Tails +marking-FoxNineTails-foxninetailstone1 = Inner +marking-FoxNineTails-foxninetailstone2 = Outer + +marking-FoxThreeTails = Three Tails +marking-FoxThreeTails-foxthreetailstone1 = Inner +marking-FoxThreeTails-foxthreetailstone2 = Outer + +marking-HorseTailCulty = Culty Horse Tail +marking-HorseTailCulty = Tail + +marking-HorseTailLong = Long Horse Tail +marking-HorseTailLong-horsetaillong = Tail + +marking-SharkTail = Shark Tail +marking-SharkTail-sharktail = Tail + +marking-TasselTail = Tassel Tail +marking-TasselTail-tasseltailtone1 = Inner +marking-TasselTail-tasseltailtone2 = Outer diff --git a/Resources/Locale/en-US/markings/kemonomimi_ears.ftl b/Resources/Locale/en-US/markings/kemonomimi_ears.ftl new file mode 100644 index 0000000000..e4b0d631e7 --- /dev/null +++ b/Resources/Locale/en-US/markings/kemonomimi_ears.ftl @@ -0,0 +1,13 @@ +marking-BunnyEars = Bunny Ears +marking-BunnyEars-bunnyearstone1 = Outer ear +marking-BunnyEars-bunnyearstone2 = Inner ear + +marking-BullishHorns = Bull Horns +marking-BullishHorns-bullishhorns = Horns + +marking-FoxEars = Fox Ears +marking-FoxEars-foxears = Ears + +marking-GoatHorns = Goat Ears & Horns +marking-GoatHorns-goathornstone1 = Ears +marking-GoatHorns-goathornstone2 = Horns diff --git a/Resources/Locale/en-US/markings/reptilian.ftl b/Resources/Locale/en-US/markings/reptilian.ftl index cfc44a4ba2..470af07361 100644 --- a/Resources/Locale/en-US/markings/reptilian.ftl +++ b/Resources/Locale/en-US/markings/reptilian.ftl @@ -68,6 +68,9 @@ marking-LizardFrillsDivinity = Lizard Frills (Divinity) marking-LizardFrillsBig-frills_big = Lizard Frills (Big) marking-LizardFrillsBig = Lizard Frills (Big) +marking-LizardFrillsNeckfull-frills_neckfull = Lizard Frills (Neckfull) +marking-LizardFrillsNeckfull = Lizard Frills (Neckfull) + marking-LizardHornsDouble-horns_double = Lizard Horns (Double) marking-LizardHornsDouble = Lizard Horns (Double) @@ -100,4 +103,8 @@ marking-LizardChestUnderbelly-body_underbelly = Lizard Chest (Underbelly) marking-LizardChestUnderbelly = Lizard Chest (Underbelly) marking-LizardChestBackspikes-body_backspikes = Lizard Back spikes (Four) -marking-LizardChestBackspikes = Lizard Back spikes (Four) \ No newline at end of file +marking-LizardChestBackspikes = Lizard Back spikes (Four) + +marking-LizardSnoutSplotch = Lizard Snout (Splotch) +marking-LizardSnoutSplotch-snout_splotch_primary = Muzzle +marking-LizardSnoutSplotch-snout_splotch_secondary = Snoot diff --git a/Resources/Locale/en-US/markings/vox_tattoos.ftl b/Resources/Locale/en-US/markings/vox_tattoos.ftl new file mode 100644 index 0000000000..f7f3c7292c --- /dev/null +++ b/Resources/Locale/en-US/markings/vox_tattoos.ftl @@ -0,0 +1,11 @@ +marking-TattooVoxHeartLeftArm-heart_l_arm = Vox Left Arm Tattoo (Heart) +marking-TattooVoxHeartLeftArm = Vox Left Arm Tattoo (Heart) + +marking-TattooVoxHeartRightArm-heart_r_arm = Vox Right Arm Tattoo (Heart) +marking-TattooVoxHeartRightArm = Vox Right Arm Tattoo (Heart) + +marking-TattooVoxHiveChest-hive_s = Vox Chest Tattoo (hive) +marking-TattooVoxHiveChest = Vox Chest Tattoo (hive) + +marking-TattooVoxNightlingChest-nightling_s = Vox Chest Tattoo (nightling) +marking-TattooVoxNightlingChest = Vox Chest Tattoo (nightling) diff --git a/Resources/Locale/en-US/materials/materials.ftl b/Resources/Locale/en-US/materials/materials.ftl index dca520b5b4..b213e7d1e9 100644 --- a/Resources/Locale/en-US/materials/materials.ftl +++ b/Resources/Locale/en-US/materials/materials.ftl @@ -25,6 +25,8 @@ materials-meat = meat materials-web = silk materials-bones = bone materials-coal = coal +materials-bluespace = bluespace +materials-normality = normality # Ores materials-raw-iron = raw iron @@ -35,3 +37,8 @@ materials-raw-plasma = raw plasma materials-raw-uranium = raw uranium materials-raw-bananium = raw bananium materials-raw-salt = raw salt +materials-raw-bluespace = raw bluespace +materials-raw-normality = raw normality + +# Material Reclaimer +material-reclaimer-upgrade-process-rate = process rate diff --git a/Resources/Locale/en-US/mech/mech.ftl b/Resources/Locale/en-US/mech/mech.ftl index 19f570a2a1..9d4f7ef0e0 100644 --- a/Resources/Locale/en-US/mech/mech.ftl +++ b/Resources/Locale/en-US/mech/mech.ftl @@ -13,6 +13,7 @@ mech-menu-title = mech control panel mech-integrity-display = Integrity: {$amount}% mech-energy-display = Energy: {$amount}% +mech-energy-missing = Energy: MISSING mech-slot-display = Open Slots: {$amount} mech-no-enter = You cannot pilot this. diff --git a/Resources/Locale/en-US/medical/components/biomass-reclaimer-component.ftl b/Resources/Locale/en-US/medical/components/biomass-reclaimer-component.ftl index 443429c1ef..0c0b8faf59 100644 --- a/Resources/Locale/en-US/medical/components/biomass-reclaimer-component.ftl +++ b/Resources/Locale/en-US/medical/components/biomass-reclaimer-component.ftl @@ -1 +1,4 @@ biomass-reclaimer-suicide-others = {CAPITALIZE(THE($victim))} threw themselves into the biomass reclaimer! + +biomass-reclaimer-component-upgrade-speed = speed +biomass-reclaimer-component-upgrade-biomass-yield = biomass yield diff --git a/Resources/Locale/en-US/medical/components/cloning-pod-component.ftl b/Resources/Locale/en-US/medical/components/cloning-pod-component.ftl index b222d707a0..e92ac86a1e 100644 --- a/Resources/Locale/en-US/medical/components/cloning-pod-component.ftl +++ b/Resources/Locale/en-US/medical/components/cloning-pod-component.ftl @@ -1,3 +1,5 @@ cloning-pod-biomass = It currently has [color=red]{$number}[/color] units of biomass. +cloning-pod-component-upgrade-speed = cloning speed +cloning-pod-component-upgrade-biomass-requirement = biomass requirement cloning-pod-component-upgrade-emag-requirement = The card zaps something inside the cloning pod. 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 648db3f4eb..8460bcc27b 100644 --- a/Resources/Locale/en-US/medical/components/health-analyzer-component.ftl +++ b/Resources/Locale/en-US/medical/components/health-analyzer-component.ftl @@ -13,26 +13,4 @@ health-analyzer-window-scan-mode-text = Scan Mode: health-analyzer-window-scan-mode-active = ACTIVE health-analyzer-window-scan-mode-inactive = INACTIVE -health-analyzer-window-damage-group-Brute = Brute -health-analyzer-window-damage-type-Blunt = Blunt -health-analyzer-window-damage-type-Slash = Slash -health-analyzer-window-damage-type-Piercing = Piercing - -health-analyzer-window-damage-group-Burn = Burn -health-analyzer-window-damage-type-Heat = Heat -health-analyzer-window-damage-type-Shock = Shock -health-analyzer-window-damage-type-Cold = Cold -health-analyzer-window-damage-type-Caustic = Caustic - -health-analyzer-window-damage-group-Airloss = Airloss -health-analyzer-window-damage-type-Asphyxiation = Asphyxiation -health-analyzer-window-damage-type-Bloodloss = Bloodloss - -health-analyzer-window-damage-group-Toxin = Toxin -health-analyzer-window-damage-type-Poison = Poison -health-analyzer-window-damage-type-Radiation = Radiation - -health-analyzer-window-damage-group-Genetic = Genetic -health-analyzer-window-damage-type-Cellular = Cellular - health-analyzer-window-malnutrition = Severely malnourished diff --git a/Resources/Locale/en-US/medical/components/medical-scanner-component.ftl b/Resources/Locale/en-US/medical/components/medical-scanner-component.ftl index c4b1942654..da4dc7a384 100644 --- a/Resources/Locale/en-US/medical/components/medical-scanner-component.ftl +++ b/Resources/Locale/en-US/medical/components/medical-scanner-component.ftl @@ -2,3 +2,5 @@ medical-scanner-verb-enter = Enter medical-scanner-verb-noun-occupant = occupant + +medical-scanner-upgrade-cloning = Cloning fail chance diff --git a/Resources/Locale/en-US/medical/components/penlight.ftl b/Resources/Locale/en-US/medical/components/penlight.ftl index f0639ad738..c8a5d66f5d 100644 --- a/Resources/Locale/en-US/medical/components/penlight.ftl +++ b/Resources/Locale/en-US/medical/components/penlight.ftl @@ -1,11 +1,12 @@ penlight-off = The pen light is off. +penlight-cannot-examine-self = You cannot examine your own eyes. pen-light-exam-title = Pen Light pen-light-window-entity-eyes-text = {$entityName}'s conditions: pen-light-window-no-patient-data-text = No patient data. pen-light-window-entity-unknown-text = unknown pen-light-exam-blind-text = The patient's eyes are glassy and unfocused. They can't follow the light at all. -pen-light-exam-drunk-text = The patient's eyes are slow to follow the light, droopy. -pen-light-exam-eyedamage-text = The patient's eyes are partially focused, though they struggle to look at the light for too long. +pen-light-exam-drunk-text = There's a clear delay between moving the light and the patient's eyes following. +pen-light-exam-eyedamage-text = The patient's eyes have dark spots within the pupil, evident when the light is shone in them. pen-light-exam-hallucinating-text = The patient's eyes are wandering around, with dilated pupils. They don't focus on the light. pen-light-exam-healthy-text = The patient follows the light perfectly with no stuttering. \ No newline at end of file diff --git a/Resources/Locale/en-US/medical/components/stasis-bed-component.ftl b/Resources/Locale/en-US/medical/components/stasis-bed-component.ftl new file mode 100644 index 0000000000..2d8a18c263 --- /dev/null +++ b/Resources/Locale/en-US/medical/components/stasis-bed-component.ftl @@ -0,0 +1 @@ +stasis-bed-component-upgrade-stasis = stasis effect diff --git a/Resources/Locale/en-US/metabolism/metabolism-groups.ftl b/Resources/Locale/en-US/metabolism/metabolism-groups.ftl new file mode 100644 index 0000000000..404d0fc786 --- /dev/null +++ b/Resources/Locale/en-US/metabolism/metabolism-groups.ftl @@ -0,0 +1,7 @@ +metabolism-group-poison = Poison +metabolism-group-medicine = Medicine +metabolism-group-narcotic = Narcotic +metabolism-group-alcohol = Alcohol +metabolism-group-food = Food +metabolism-group-drink = Drink +metabolism-group-gas = Gas diff --git a/Resources/Locale/en-US/metabolism/metabolizer-types.ftl b/Resources/Locale/en-US/metabolism/metabolizer-types.ftl new file mode 100644 index 0000000000..30ab6c050e --- /dev/null +++ b/Resources/Locale/en-US/metabolism/metabolizer-types.ftl @@ -0,0 +1,13 @@ +metabolizer-type-animal = Animal +metabolizer-type-bloodsucker = Bloodsucker +metabolizer-type-dragon = Dragon +metabolizer-type-human = Human +metabolizer-type-slime = Slime +metabolizer-type-vox = Vox +metabolizer-type-rat = Rat +metabolizer-type-plant = Plant +metabolizer-type-dwarf = Dwarf +metabolizer-type-moth = Moth +metabolizer-type-arachnid = Arachnid +metabolizer-type-vampiric = Vampiric +metabolizer-type-liquorlifeline = Liquor Lifeline diff --git a/Resources/Locale/en-US/mood/mood.ftl b/Resources/Locale/en-US/mood/mood.ftl index bd64d52582..5c31af0a4d 100644 --- a/Resources/Locale/en-US/mood/mood.ftl +++ b/Resources/Locale/en-US/mood/mood.ftl @@ -54,3 +54,22 @@ mood-effect-RevolutionFocused = VIVA LA REVOLUTION!!! 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! + +# 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! + I MUST HAVE IT ALL. I MUST KNOW IT ALL. ALL OF IT. FOREVER! +mood-effect-LotoEnthrallment = + It has fled from me... The heart of all creation is gone from my soul, leaving behind an emptiness I cannot bear. + I fear that I will wither to nothing if I cannot drink from the cup of knowledge once again. + +mood-effect-NicotineBenefit = + I feel as if I have been standing my entire life and I just sat down. +mood-effect-NicotineWithdrawal = + I could really go for a smoke right now. + +# Drugs +mood-effect-EthanolBenefit = + I feel so relaxed from drinking. +mood-effect-SpaceDrugsBenefit = + Woaaaah, such pretty colors maaaaan. It's like I can hear color and taste sound maaan. \ No newline at end of file diff --git a/Resources/Locale/en-US/movement/laying.ftl b/Resources/Locale/en-US/movement/laying.ftl index f75061d6a7..de84ca629e 100644 --- a/Resources/Locale/en-US/movement/laying.ftl +++ b/Resources/Locale/en-US/movement/laying.ftl @@ -1,3 +1,6 @@ +crawling-under-tables-disabled-popup = Crawling under tables is disabled on this server. + +# TODO either remove those, or make use of them laying-comp-lay-success-self = You lay down. laying-comp-lay-success-other = {THE($entity)} lays down. laying-comp-lay-fail-self = You can't lay down right now. diff --git a/Resources/Locale/en-US/ninja/ninja-actions.ftl b/Resources/Locale/en-US/ninja/ninja-actions.ftl index b42da33a29..f01f02a60e 100644 --- a/Resources/Locale/en-US/ninja/ninja-actions.ftl +++ b/Resources/Locale/en-US/ninja/ninja-actions.ftl @@ -4,3 +4,5 @@ ninja-suit-cooldown = The suit needs time to recuperate from the last attack. ninja-research-steal-fail = No new research nodes were stolen... ninja-research-steal-success = Stole {$count} new nodes from {THE($server)}. + +ninja-criminal-records-hack-announcement = ERROR: Criminal records has detected a [REDACTED] error #*;" diff --git a/Resources/Locale/en-US/nutrition/components/drink-component.ftl b/Resources/Locale/en-US/nutrition/components/drink-component.ftl index 9a388744b0..e80787c8d5 100644 --- a/Resources/Locale/en-US/nutrition/components/drink-component.ftl +++ b/Resources/Locale/en-US/nutrition/components/drink-component.ftl @@ -1,4 +1,4 @@ -drink-component-on-use-is-empty = {$owner} is empty! +drink-component-on-use-is-empty = {CAPITALIZE(THE($owner))} is empty! drink-component-on-examine-is-empty = [color=gray]Empty[/color] drink-component-on-examine-is-opened = [color=yellow]Opened[/color] drink-component-on-examine-is-sealed = The seal is intact. @@ -10,7 +10,7 @@ drink-component-on-examine-is-half-empty = Halfway Empty drink-component-on-examine-is-mostly-empty = Mostly Empty drink-component-on-examine-exact-volume = It contains {$amount}u. drink-component-try-use-drink-not-open = Open {$owner} first! -drink-component-try-use-drink-is-empty = {$entity} is empty! +drink-component-try-use-drink-is-empty = {CAPITALIZE(THE($entity))} is empty! drink-component-try-use-drink-cannot-drink = You can't drink anything! drink-component-try-use-drink-had-enough = You can't drink more! drink-component-try-use-drink-cannot-drink-other = They can't drink anything! diff --git a/Resources/Locale/en-US/nutrition/components/fat-extractor.ftl b/Resources/Locale/en-US/nutrition/components/fat-extractor.ftl index 20a31cd8c4..611b8ef540 100644 --- a/Resources/Locale/en-US/nutrition/components/fat-extractor.ftl +++ b/Resources/Locale/en-US/nutrition/components/fat-extractor.ftl @@ -1,3 +1,5 @@ +fat-extractor-component-rate = extraction rate + fat-extractor-fact-1 = Fats are triglycerides made up of a combination of different building blocks; glycerol and fatty acids. fat-extractor-fact-2 = Adults should get a recommended 20-35% of their energy intake from fat. fat-extractor-fact-3 = Being overweight or obese puts you at an increased risk of chronic diseases, such as cardiovascular diseases, metabolic syndrome, type 2 diabetes, and some types of cancers. diff --git a/Resources/Locale/en-US/nutrition/components/pressurized-solution-component.ftl b/Resources/Locale/en-US/nutrition/components/pressurized-solution-component.ftl new file mode 100644 index 0000000000..a227d811f6 --- /dev/null +++ b/Resources/Locale/en-US/nutrition/components/pressurized-solution-component.ftl @@ -0,0 +1,3 @@ +pressurized-solution-spray-holder-self = { CAPITALIZE(THE($drink)) } sprays on you! +pressurized-solution-spray-holder-others = { CAPITALIZE(THE($drink)) } sprays on { THE($victim) }! +pressurized-solution-spray-ground = The contents of { THE($drink) } spray out! diff --git a/Resources/Locale/en-US/nutrition/components/shakeable-component.ftl b/Resources/Locale/en-US/nutrition/components/shakeable-component.ftl new file mode 100644 index 0000000000..acc1ecd848 --- /dev/null +++ b/Resources/Locale/en-US/nutrition/components/shakeable-component.ftl @@ -0,0 +1,3 @@ +shakeable-verb = Shake +shakeable-popup-message-others = { CAPITALIZE(THE($user)) } shakes { THE($shakeable) } +shakeable-popup-message-self = You shake { THE($shakeable) } diff --git a/Resources/Locale/en-US/objectives/conditions/terminate.ftl b/Resources/Locale/en-US/objectives/conditions/terminate.ftl deleted file mode 100644 index c88c7b14da..0000000000 --- a/Resources/Locale/en-US/objectives/conditions/terminate.ftl +++ /dev/null @@ -1 +0,0 @@ -objective-terminate-title = Terminate {$targetName}, {CAPITALIZE($job)} diff --git a/Resources/Locale/en-US/preferences/ui/character-setup-gui.ftl b/Resources/Locale/en-US/preferences/ui/character-setup-gui.ftl index bd80815e23..b85d7be38e 100644 --- a/Resources/Locale/en-US/preferences/ui/character-setup-gui.ftl +++ b/Resources/Locale/en-US/preferences/ui/character-setup-gui.ftl @@ -1,7 +1,6 @@ character-setup-gui-character-setup-label = Character setup character-setup-gui-character-setup-stats-button = Stats character-setup-gui-character-setup-rules-button = Rules -character-setup-gui-character-setup-save-button = Save character-setup-gui-character-setup-close-button = Close character-setup-gui-create-new-character-button = Create new slot... character-setup-gui-create-new-character-button-tooltip = A maximum of {$maxCharacters} characters are allowed. 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 d8fb5eab53..e4588407d3 100644 --- a/Resources/Locale/en-US/preferences/ui/humanoid-profile-editor.ftl +++ b/Resources/Locale/en-US/preferences/ui/humanoid-profile-editor.ftl @@ -2,8 +2,8 @@ humanoid-profile-editor-randomize-everything-button = Randomize everything humanoid-profile-editor-name-label = Name: humanoid-profile-editor-name-random-button = Randomize humanoid-profile-editor-appearance-tab = Appearance -humanoid-profile-editor-clothing = Show clothing -humanoid-profile-editor-loadouts = Show loadout +humanoid-profile-editor-clothing = Preview job equipment: +humanoid-profile-editor-loadouts = Preview loadout items: humanoid-profile-editor-clothing-show = Show humanoid-profile-editor-sex-label = Sex: humanoid-profile-editor-sex-male-text = Male @@ -15,6 +15,7 @@ humanoid-profile-editor-height-label = Height: {$height}cm humanoid-profile-editor-width-label = Width: {$width}cm humanoid-profile-editor-weight-label = Weight: {$weight}kg humanoid-profile-editor-species-label = Species: +humanoid-profile-editor-customspeciename-label = Custom Specie Name: humanoid-profile-editor-pronouns-label = Pronouns: humanoid-profile-editor-pronouns-male-text = He / Him humanoid-profile-editor-pronouns-female-text = She / Her @@ -23,6 +24,7 @@ humanoid-profile-editor-pronouns-neuter-text = It / It humanoid-profile-editor-import-button = Import humanoid-profile-editor-export-button = Export humanoid-profile-editor-save-button = Save +humanoid-profile-editor-reset-button = Reset humanoid-profile-editor-clothing-label = Clothing: humanoid-profile-editor-backpack-label = Backpack: humanoid-profile-editor-spawn-priority-label = Spawn priority: diff --git a/Resources/Locale/en-US/prototypes/catalog/cargo/cargoproduct-categories.ftl b/Resources/Locale/en-US/prototypes/catalog/cargo/cargoproduct-categories.ftl index f2451527b0..70dc057b39 100644 --- a/Resources/Locale/en-US/prototypes/catalog/cargo/cargoproduct-categories.ftl +++ b/Resources/Locale/en-US/prototypes/catalog/cargo/cargoproduct-categories.ftl @@ -6,6 +6,7 @@ cargoproduct-category-name-emergency = Emergency cargoproduct-category-name-engineering = Engineering cargoproduct-category-name-food = Food cargoproduct-category-name-fun = Fun +cargoproduct-category-name-hardsuits = Hardsuits cargoproduct-category-name-hydroponics = Hydroponics cargoproduct-category-name-livestock = Livestock cargoproduct-category-name-materials = Materials diff --git a/Resources/Locale/en-US/prototypes/entities/clothing/head/hardsuit-helmets.ftl b/Resources/Locale/en-US/prototypes/entities/clothing/head/hardsuit-helmets.ftl index 2bbacf2abc..4e003d2704 100644 --- a/Resources/Locale/en-US/prototypes/entities/clothing/head/hardsuit-helmets.ftl +++ b/Resources/Locale/en-US/prototypes/entities/clothing/head/hardsuit-helmets.ftl @@ -55,6 +55,8 @@ ent-ClothingHeadHelmetHardsuitLuxury = HpI-20c helmet .desc = A modified helmet for the Minos hardsuit, fashioned after the Logistics Officer's colors. It's been modified for greater mobility at the expense of physical trauma protection. ent-ClothingHeadHelmetHardsuitSyndie = CSA-51a helmet .desc = An armored helmet deployed over a Shanlin tacsuit. This one has been painted blood red. +ent-ClothingHeadHelmetHardsuitSyndieReverseEngineered = CSA-51a helmet + .desc = An armored helmet deployed over a Shanlin tacsuit. This one has been painted blue. ent-ClothingHeadHelmetHardsuitSyndieMedic = CSA-51m helmet .desc = An armored helmet deployed over a Zhongyao tacsuit. features optic integrations for nearly every medical hud on the market. Designed to enable the survival of combat medics in the most dangerous of environments. @@ -64,6 +66,8 @@ ent-ClothingHeadHelmetHardsuitSyndieCommander = CSA-54c helmet .desc = A bulked up version of the Shanlin tacsuit's helmet, purpose-built for commanders of special operation squads. This one has been painted blood-red. ent-ClothingHeadHelmetHardsuitCybersun = CSA-80UA helmet .desc = An incredibly sturdy looking helmet designed for the Guan Yu tacsuit. +ent-ClothingHeadHelmetHardsuitJuggernautReverseEngineered = CSA-80UA helmet + .desc = An incredibly sturdy looking helmet designed for the Guan Yu tacsuit. This one has been painted blue. ent-ClothingHeadHelmetHardsuitWizard = WZD-84 helmet .desc = A bizarre, gem-encrusted helmet from unknown origins. It provides some protection to its wearer without restricting their movements. ent-ClothingHeadHelmetHardsuitLing = organic space helmet diff --git a/Resources/Locale/en-US/prototypes/entities/clothing/outerClothing/hardsuits.ftl b/Resources/Locale/en-US/prototypes/entities/clothing/outerClothing/hardsuits.ftl index 84f03af5c9..8232ac352d 100644 --- a/Resources/Locale/en-US/prototypes/entities/clothing/outerClothing/hardsuits.ftl +++ b/Resources/Locale/en-US/prototypes/entities/clothing/outerClothing/hardsuits.ftl @@ -74,6 +74,9 @@ ent-ClothingOuterHardsuitLuxury = HpI-20c - "Minos" hardsuit ent-ClothingOuterHardsuitSyndie = CSA-51a - "Shanlin" tacsuit .desc = A tactical combat hardsuit produced by the Cybersun-Armaments Corporation, the suit's tags indicate it provides moderate protection against most forms of damage. This one has been painted blood red. It feels incredibly light. +ent-ClothingOuterHardsuitSyndieReverseEngineered = CSA-51a - "Shanlin" tacsuit + .desc = A tactical combat hardsuit produced by the Cybersun-Armaments Corporation, the suit's tags indicate it provides moderate protection against most forms of damage. + This one has been painted blue. It feels incredibly light. ent-ClothingOuterHardsuitSyndieMedic = CSA-51m - "Zhongyao" tacsuit .desc = A tactical combat hardsuit produced by the Cybersun-Armaments Corporation, the suit's tags indicate it provides moderate protection against most forms of damage. Half of the suit is painted blood red, the rest bears galactic-standard medical markings. It feels incredibly light. @@ -87,6 +90,9 @@ ent-ClothingOuterHardsuitSyndieCommander = CSA-54c - "Tianming" tacsuit ent-ClothingOuterHardsuitJuggernaut = CSA-80UA - "Guan Yu" tacsuit .desc = The pride and joy of the Cybersun-Armaments Corporation, named after an ancient Sol' War God. Commonly known throughout the galaxy as a "Juggernaut". Matching its bulky appearance, it protects against all forms of damage. It feels VERY heavy. +end-ClothingOuterHardsuitJuggernautReverseEngineered = CSA-80UA - "Guan Yu" tacsuit + .desc = The pride and joy of the Cybersun-Armaments Corporation, named after an ancient Sol' War God. Commonly known throughout the galaxy as a "Juggernaut". + Matching its bulky appearance, it protects against all forms of damage. It feels VERY heavy. ent-ClothingOuterHardsuitWizard = WZD-84 - "Mana" tacsuit .desc = A bizarre gem-encrusted hardsuit. Famously used by members of the Wizard Federation in their operations. Contrary to it's appearance, it can protect its wearer from space and considerable amounts of physical trauma, it feels somewhat light. @@ -98,11 +104,6 @@ ent-ClothingOuterHardsuitPirateEVA = pirate vacsuit ent-ClothingOuterHardsuitPirateCap = pirate captain's tacsuit .desc = An ancient armored tactical combat hardsuit of unknown origin, provides basic protections from the cold harsh realities of deep space and physical trauma. It doesn't seem to have any weight either. Perfect for defending against space scurvy and toolbox-wielding scallywags. -ent-ClothingOuterHardsuitSyndieReverseEngineered = NTSA-122 tacsuit - .desc = A suit made by the special adquisitions department of Nanotrasen, the suit's tags indicate it provides moderate protection against most forms of damage. -ent-ClothingOuterHardsuitJuggernautReverseEngineered = NTSA-126 tacsuit - .desc = A suit made by the special acquisitions department of Nanotrasen based on the "Juggernaut" design. - Matching its bulky appearance, it protects against all forms of damage. It feels VERY heavy. ent-ClothingOuterHardsuitERTCentcomm = NT-444c - "Ophanim" tacsuit .desc = A highly advanced, tactical combat hardsuit used by Central Command Officers, it seems to be branded with the Nanotrasen logo and a strange looking series number. The armor appears to be lined with a very sturdy alloy, it doesn't seem to have any weight either. diff --git a/Resources/Locale/en-US/prototypes/roles/antags.ftl b/Resources/Locale/en-US/prototypes/roles/antags.ftl index 40f2c9a682..5c514dba8e 100644 --- a/Resources/Locale/en-US/prototypes/roles/antags.ftl +++ b/Resources/Locale/en-US/prototypes/roles/antags.ftl @@ -30,6 +30,3 @@ roles-antag-space-ninja-objective = Use your stealth to sabotage the station, no roles-antag-thief-name = Thief roles-antag-thief-objective = Add some NT property to your personal collection without using violence. - -roles-antag-terminator-name = Paradox Anomaly # DeltaV - paradox anomaly -roles-antag-terminator-objective = Replace your double, or befriend them. # DeltaV - paradox anomaly diff --git a/Resources/Locale/en-US/psionics/psionic-powers.ftl b/Resources/Locale/en-US/psionics/psionic-powers.ftl index ad6bbef02b..37482a41b6 100644 --- a/Resources/Locale/en-US/psionics/psionic-powers.ftl +++ b/Resources/Locale/en-US/psionics/psionic-powers.ftl @@ -1,4 +1,5 @@ generic-power-initialization-feedback = I Awaken. +already-casting = I cannot channel more than one power at a time. # Dispel dispel-power-description = Dispel summoned entities such as familiars or forcewalls. @@ -48,6 +49,28 @@ psionic-regeneration-power-initialization-feedback = I look within myself, finding a wellspring of life. psionic-regeneration-power-metapsionic-feedback = {CAPITALIZE($entity)} possesses an overwhelming will to live +# Healing Word +action-name-healing-word = Healing Word +action-description-healing-word = Speak the Lesser Secret Of Life, and restore health to another. +healing-word-power-description = Speak the Lesser Secret Of Life, and restore health to another. +healing-word-power-initialization-feedback = + At the beginning of time, a word was spoken that brought life into the Spheres. + Though it taxes my mind to know it, this Secret is known to me now. + I need only speak it. +healing-word-power-metapsionic-feedback = {CAPITALIZE($entity)} bears the Lesser Secret of Life. +healing-word-begin = {CAPITALIZE($entity)} mutters a word that brings both joy and pain alike to those who hear it. + +# Revivify +action-name-revivify = Breath of Life +action-description-revivify = Speak the Greater Secret of Life, and restore another to life. +revivify-power-description = Speak the Greater Secret of Life, and restore another to life. +revivify-power-initialization-feedback = + For a moment, my soul journeys across time and space to the beginning of it all, there I hear it. + The Secret of Life in its fullness. I feel my entire existence burning out from within, merely by knowing it. + Power flows through me as a mighty river, begging to be released with a simple spoken word. +revivify-power-metapsionic-feedback = {CAPITALIZE($entity)} bears the Greater Secret of Life. +revivify-word-begin = {CAPITALIZE($entity)} enunciates a word of such divine power, that those who hear it weep from joy. + # Telegnosis telegnosis-power-description = Create a telegnostic projection to remotely observe things. telegnosis-power-initialization-feedback = @@ -86,7 +109,33 @@ telepathy-power-initialization-feedback = The voices I've heard all my life begin to clear, yet they do not leave me. Before, they were as incoherent whispers, now my senses broaden, I come to a realization that they are part of a communal shared hallucination. Behind every voice is a glimmering sentience. +# Shadeskip +action-name-shadeskip = Shadeskip +action-description-shadeskip = + Call upon the Lords of the End of Time, and beseech them for a fragment of true entropy. +shadeskip-power-description = { action-description-shadeskip } +shadeskip-power-initialization-feedback = + I find myself standing in a frigid land, under a sky lacking in all starlight. Cold is the void at the End of Time. + I look to the pale blue within blue horizon, and find a great eye standing at the center of it all, black and emptier than the deepest reaches of space. + My soul begins to wither under its gaze, and I find myself begging for it to look away. The eye laughs, it demands that I serve it or die. + Knowing I have no choice, I pledge myself to it, and suddenly I am back in the material realm. The eye stares behind me still. +shadeskip-power-metapsionic-feedback = {CAPITALIZE($entity)} has been claimed by the Lords of the End of Time. +shadeskip-overcharge-feedback = My body reels from shock as it is overwhelmed by the sheer force flowing through me. + +# Telekinetic Pulse +action-name-telekinetic-pulse = Telekinetic Pulse +action-description-telekinetic-pulse = + Force everyone around you away. +telekinetic-pulse-power-description = { action-description-telekinetic-pulse } +telekinetic-pulse-power-initialization-feedback = + As I reach through the veil with my psyche, I discover a wellspring of pure kinetic energy. It courses through me, but I seem to lack fine control over it. +telekinetic-pulse-power-metapsionic-feedback = {CAPITALIZE($entity)} has the essence of pure kinesis flowing through him. + +# Psionic System Messages mindbreaking-feedback = The light of life vanishes from {CAPITALIZE($entity)}'s eyes, leaving behind a husk pretending at sapience examine-mindbroken-message = Eyes unblinking, staring deep into the horizon. {CAPITALIZE($entity)} is a sack of meat pretending it has a soul. - There is nothing behind its gaze, no evidence there can be found of the divine light of creation. \ No newline at end of file + There is nothing behind its gaze, no evidence there can be found of the divine light of creation. +psionic-roll-failed = For a moment, my consciousness expands, yet I feel that it is not enough. +entity-anomaly-no-grid = There is nowhere for me to conjure beings. +power-overwhelming-power-feedback = {CAPITALIZE($entity)} wields a vast connection to the noösphere diff --git a/Resources/Locale/en-US/radiation/geiger-component.ftl b/Resources/Locale/en-US/radiation/geiger-component.ftl index 0e7d2a8a35..726c7190f2 100644 --- a/Resources/Locale/en-US/radiation/geiger-component.ftl +++ b/Resources/Locale/en-US/radiation/geiger-component.ftl @@ -1,3 +1,3 @@ -geiger-item-control-status = Radiation: [color={$color}]{$rads} rads[/color] +geiger-item-control-status = [color={$color}]{$rads} rads[/color] geiger-item-control-disabled = Disabled geiger-component-examine = Current radiation: [color={$color}]{$rads} rads[/color] diff --git a/Resources/Locale/en-US/radio/components/radio-jammer-component.ftl b/Resources/Locale/en-US/radio/components/radio-jammer-component.ftl index 68efbf8d4e..eb540ee971 100644 --- a/Resources/Locale/en-US/radio/components/radio-jammer-component.ftl +++ b/Resources/Locale/en-US/radio/components/radio-jammer-component.ftl @@ -4,3 +4,13 @@ radio-jammer-component-off-state = off radio-jammer-component-examine-on-state = The light is currently [color=darkgreen]on[/color]. radio-jammer-component-examine-off-state = The light is currently [color=darkred]off[/color]. + +radio-jammer-component-setting-high = High +radio-jammer-component-setting-medium = Medium +radio-jammer-component-setting-low = Low + +radio-jammer-component-set-message-high = The jammer is now operating at high power. +radio-jammer-component-set-message-medium = The jammer is now operating at medium power. +radio-jammer-component-set-message-low = The jammer is now operating at low power. + +radio-jammer-component-switch-setting = The power level switch is set to "[color=yellow]{$powerLevel}[/color]". diff --git a/Resources/Locale/en-US/random-barks/!default.ftl b/Resources/Locale/en-US/random-barks/!default.ftl new file mode 100644 index 0000000000..9620b80a93 --- /dev/null +++ b/Resources/Locale/en-US/random-barks/!default.ftl @@ -0,0 +1,28 @@ +# Default barks. This file serves as a template for future bark types and as a fallback for mobs who do not have unique barks for one reason or another. + +# Recommendations: +# - Try to keep barks simple and reasonably short. 8 words is the usual limit, but most barks should be at msot 3 words long. +# - Each bark should be one, or at most two sentences long. +# - Keep in mind that those will usually not be understood by players. +# - Do not add punctuation at the end of the message, except for question marks, so that the random bark system will add random punctuation. +bark-default-1 = Bark +bark-default-2 = Boof +bark-default-3 = Woofums +bark-default-4 = Rawrl +bark-default-5 = Eeeeeee +bark-default-6 = Barkums +bark-default-7 = Awooooooooooooooooooo awooo awoooo +bark-default-8 = Grrrrrrrrrrrrrrrrrr +bark-default-9 = Rarrwrarrwr +bark-default-10 = Goddamn I love gold fish crackers +bark-default-11 = Bork bork boof boof bork bork boof boof bork +bark-default-12 = Bark +bark-default-13 = Boof +bark-default-14 = Woofums +bark-default-15 = Rawrl +bark-default-16 = Eeeeeee +bark-default-17 = Barkum + +# This should always come last so that it's easy to keep track of. +# Bark counts are locale-specific so they are typically defined in FTL files instead of YML, to make localization easier. +bark-default-count = 17 diff --git a/Resources/Locale/en-US/random-barks/bee.ftl b/Resources/Locale/en-US/random-barks/bee.ftl new file mode 100644 index 0000000000..2398eaa8a8 --- /dev/null +++ b/Resources/Locale/en-US/random-barks/bee.ftl @@ -0,0 +1,5 @@ +bark-bee-1 = Bzzzz +bark-bee-2 = Bzzt Bzzzt +bark-bee-3 = Bzzzt bzzzzzz +bark-bee-4 = Bzzzzt +bark-bee-count = 4 diff --git a/Resources/Locale/en-US/random-barks/cat.ftl b/Resources/Locale/en-US/random-barks/cat.ftl new file mode 100644 index 0000000000..61536efdf4 --- /dev/null +++ b/Resources/Locale/en-US/random-barks/cat.ftl @@ -0,0 +1,25 @@ +bark-cat-1 = Meow +bark-cat-2 = Purr purr +bark-cat-3 = Hungry +bark-cat-4 = Fish! +bark-cat-5 = Birds! +bark-cat-6 = Nap time +bark-cat-7 = Scratch scratch scratch +bark-cat-8 = Purr purr purr +bark-cat-9 = That a mouse? +bark-cat-10 = Meow meow +bark-cat-11 = Brrow +bark-cat-12 = Pet me +bark-cat-13 = Pets good +bark-cat-14 = Yawn +bark-cat-15 = Hiss +bark-cat-16 = Where'd the sun go? +bark-cat-17 = Play time +bark-cat-18 = Sleepy +bark-cat-19 = Need to rest +bark-cat-20 = I hear mice +bark-cat-21 = Must catch the mouse +bark-cat-22 = Mothroach tasted good +bark-cat-23 = Purrmeow +bark-cat-24 = Mrrp meow mrrow +bark-cat-count = 24 diff --git a/Resources/Locale/en-US/random-barks/chicken.ftl b/Resources/Locale/en-US/random-barks/chicken.ftl new file mode 100644 index 0000000000..fe7070e045 --- /dev/null +++ b/Resources/Locale/en-US/random-barks/chicken.ftl @@ -0,0 +1,9 @@ +bark-chicken-1 = Coooot +bark-chicken-2 = Coot +bark-chicken-3 = Coot Coot Cooot +bark-chicken-4 = Food +bark-chicken-5 = Where is grass? +bark-chicken-6 = Need to eat +bark-chicken-8 = Egg +bark-chicken-9 = Coot coot +bark-chicken-count = 9 diff --git a/Resources/Locale/en-US/random-barks/cow.ftl b/Resources/Locale/en-US/random-barks/cow.ftl new file mode 100644 index 0000000000..e628fde767 --- /dev/null +++ b/Resources/Locale/en-US/random-barks/cow.ftl @@ -0,0 +1,11 @@ +bark-cow-1 = Mooooo +bark-cow-2 = Moo +bark-cow-3 = Huff +bark-cow-4 = Moooooooo +bark-cow-5 = Moooo +bark-cow-6 = Floor is food +bark-cow-7 = I'm hungry +bark-cow-8 = How long have I been here? +bark-cow-9 = Moooo mooooooo +bark-cow-10 = Huff... Moooooo +bark-cow-count = 10 diff --git a/Resources/Locale/en-US/random-barks/crab.ftl b/Resources/Locale/en-US/random-barks/crab.ftl new file mode 100644 index 0000000000..5fe69f5c6b --- /dev/null +++ b/Resources/Locale/en-US/random-barks/crab.ftl @@ -0,0 +1,12 @@ +# Contrary to a popular belief, crabs do not actually possess much of an intelligence, if any at all. +bark-crab-1 = Claw! +bark-crab-2 = Snap snap +bark-crab-3 = Clickity clack +bark-crab-4 = Clack clack +bark-crab-5 = Water +bark-crab-6 = Snap +bark-crab-7 = Clack +bark-crab-8 = Click +bark-crab-9 = Clack clack clack +bark-crab-10 = click click clack +bark-crab-count = 10 diff --git a/Resources/Locale/en-US/random-barks/dog.ftl b/Resources/Locale/en-US/random-barks/dog.ftl new file mode 100644 index 0000000000..4cd94c3a4a --- /dev/null +++ b/Resources/Locale/en-US/random-barks/dog.ftl @@ -0,0 +1,36 @@ +bark-dog-1 = Bark +bark-dog-2 = Boof +bark-dog-3 = Woofums +bark-dog-4 = Rawrl +bark-dog-5 = Eeeeeee +bark-dog-6 = Barkums +bark-dog-7 = Awooooooooooooooooooo awoo awoooo +bark-dog-8 = Grrrrrrrrrrrrrrrrrr +bark-dog-9 = Rarrwrarrwr +bark-dog-10 = Goddamn I love gold fish crackers +bark-dog-11 = Bork bork boof boof bork bork boof boof boof bork +bark-dog-12 = Bark +bark-dog-13 = Boof +bark-dog-14 = Woofums +bark-dog-15 = Rawrl +bark-dog-16 = Eeeeeee +bark-dog-17 = Barkum +bark-dog-18 = Woof woof woof! +bark-dog-19 = Awoooo! I smell food! +bark-dog-20 = Bark bark bark bark! +bark-dog-21 = Grrr, let’s play! +bark-dog-22 = Wooooo! +bark-dog-23 = Rawr! I’m a fierce creature of god! +bark-dog-24 = I love belly rubs! +bark-dog-25 = Bark! Who's there? +bark-dog-26 = Eeeeeee! So excited! +bark-dog-27 = Woof woof, where's my snack? +bark-dog-28 = Bark bark, chasing my tail again! +bark-dog-29 = Grrr, I see a shiny thing! +bark-dog-30 = Bork bork, can I eat that? +bark-dog-31 = Awoo, what’s that weird smell? +bark-dog-32 = Woofums, I like to bark at stars! +bark-dog-33 = Bark bark, I forgot what I wanted! +bark-dog-34 = Eeeee, squeaky toy, my best friend! +bark-dog-35 = Rawrl, let’s run in circles forever! +bark-dog-count = 35 diff --git a/Resources/Locale/en-US/random-barks/fox.ftl b/Resources/Locale/en-US/random-barks/fox.ftl new file mode 100644 index 0000000000..c7a9f61208 --- /dev/null +++ b/Resources/Locale/en-US/random-barks/fox.ftl @@ -0,0 +1,29 @@ +bark-fox-1 = Yip yip +bark-fox-2 = Yap yap +bark-fox-3 = Food +bark-fox-4 = Hungry +bark-fox-5 = Critter! Must catch +bark-fox-6 = Run +bark-fox-7 = Hide +bark-fox-8 = Sniff sniff +bark-fox-9 = I'm scared +bark-fox-10 = Purr purr +bark-fox-11 = Play? +bark-fox-12 = Sleepy +bark-fox-13 = Yap yap yap +bark-fox-14 = Yawn +bark-fox-15 = Curious +bark-fox-16 = Happy +bark-fox-17 = Food, now! +bark-fox-18 = Lonely +bark-fox-19 = Barruf +bark-fox-20 = Raff ruff +bark-fox-21 = Zoomies +bark-fox-22 = Yip yap yap yip yip +bark-fox-23 = I'm hungry +bark-fox-24 = Feed me +bark-fox-25 = Eeeeeeeeeeeeee +bark-fox-26 = Eeeeeee +bark-fox-27 = Myaaaaah +bark-fox-28 = Yip yip yip +bark-fox-count = 28 diff --git a/Resources/Locale/en-US/random-barks/hissing.ftl b/Resources/Locale/en-US/random-barks/hissing.ftl new file mode 100644 index 0000000000..d9f97d984e --- /dev/null +++ b/Resources/Locale/en-US/random-barks/hissing.ftl @@ -0,0 +1,25 @@ +# Agressive xenos/spiders +bark-hissing-1 = Hsssss +bark-hissing-2 = Hssssssss +bark-hissing-3 = I sssee you +bark-hissing-4 = I will catch you +bark-hissing-6 = I'm hhhungry! +bark-hissing-7 = Ssseek... food... +bark-hissing-8 = Hsss... Get there +bark-hissing-9 = People... food +bark-hissing-10 = Hsssss... hssssss +bark-hissing-11 = Darknesss... safe... +bark-hissing-12 = Need to lure them in... +bark-hissing-13 = Yummy meat... +bark-hissing-14 = Ventsss... home... +bark-hissing-15 = Sssneaking up... +bark-hissing-16 = Hsss... shadows... +bark-hissing-17 = I am lurking... +bark-hissing-18 = Flesh... tasty... +bark-hissing-19 = Sssilent... deadly... +bark-hissing-20 = Hsssss... wait... +bark-hissing-21 = Creep closer... +bark-hissing-22 = Trap set... +bark-hissing-23 = Sssso close now... +bark-hissing-24 = Hsss... prey spotted... +bark-hissing-count = 24 diff --git a/Resources/Locale/en-US/random-barks/kobold.ftl b/Resources/Locale/en-US/random-barks/kobold.ftl new file mode 100644 index 0000000000..3168dbf9b7 --- /dev/null +++ b/Resources/Locale/en-US/random-barks/kobold.ftl @@ -0,0 +1,18 @@ +bark-kobold-1 = Grrr +bark-kobold-2 = Treasure, mine now +bark-kobold-3 = Hungry +bark-kobold-4 = More shinies! +bark-kobold-5 = Must collect stuff +bark-kobold-6 = Sneaky sneaky +bark-kobold-7 = Mine now +bark-kobold-8 = Yip yip +bark-kobold-9 = Scared +bark-kobold-10 = Hide +bark-kobold-11 = Yikes +bark-kobold-12 = Yip yip yip +bark-kobold-13 = Go away +bark-kobold-14 = Look, shiny +bark-kobold-15 = Need help +bark-kobold-16 = I see you +bark-kobold-17 = I don't like you +bark-kobold-count = 17 diff --git a/Resources/Locale/en-US/random-barks/mouse.ftl b/Resources/Locale/en-US/random-barks/mouse.ftl new file mode 100644 index 0000000000..88fd0ef04b --- /dev/null +++ b/Resources/Locale/en-US/random-barks/mouse.ftl @@ -0,0 +1,28 @@ +# Mice get a lot because they are a lot more common than e.g. cows or chickens, are understood by certain species and player-controlled mice, etc... +bark-mouse-1 = pi pi pi +bark-mouse-2 = pi pi pi pi +bark-mouse-3 = Cheese +bark-mouse-4 = Food +bark-mouse-5 = I'm hungry +bark-mouse-6 = Need cheese +bark-mouse-7 = Goddamn I love grilled cheese +bark-mouse-8 = Traps everywhere +bark-mouse-9 = Should find food +bark-mouse-10 = Where is the kitchen? +bark-mouse-11 = I'm so hungry +bark-mouse-12 = Squeak +bark-mouse-13 = Cheese now, please +bark-mouse-14 = I want food +bark-mouse-15 = Pi pi pi pi pi +bark-mouse-16 = Where's the cheese? +bark-mouse-17 = Snack time, please +bark-mouse-18 = Hungry! Need snack +bark-mouse-19 = Food? Anyone? +bark-mouse-20 = Cheese is life +bark-mouse-21 = Squeak squeak! More cheese +bark-mouse-22 = I'm still hungry +bark-mouse-23 = Pi? What's that? +bark-mouse-24 = Kitchen smells good +bark-mouse-25 = Cheese is missing +bark-mouse-26 = I'm going to form my own kingdom and overthrow the station command +bark-mouse-count = 26 diff --git a/Resources/Locale/en-US/random-barks/penguin.ftl b/Resources/Locale/en-US/random-barks/penguin.ftl new file mode 100644 index 0000000000..f6f1cc1242 --- /dev/null +++ b/Resources/Locale/en-US/random-barks/penguin.ftl @@ -0,0 +1,12 @@ +bark-penguin-1 = Wark wark +bark-penguin-2 = Fish! +bark-penguin-3 = Cold? +bark-penguin-4 = Waddle waddle +bark-penguin-5 = Gimme fish +bark-penguin-6 = Wark! +bark-penguin-7 = I miss water +bark-penguin-8 = Where's fish? +bark-penguin-9 = Can't fly +bark-penguin-10 = Wank wank wank +bark-penguin-11 = Wank wank wank wank wank wank wank +bark-penguin-count = 11 diff --git a/Resources/Locale/en-US/random-barks/possum.ftl b/Resources/Locale/en-US/random-barks/possum.ftl new file mode 100644 index 0000000000..c9f179e6cc --- /dev/null +++ b/Resources/Locale/en-US/random-barks/possum.ftl @@ -0,0 +1,24 @@ +# Possum <3 +bark-possum-1 = Hiss hiss +bark-possum-2 = Hiss hiss hiss +bark-possum-3 = Food +bark-possum-4 = Hungry +bark-possum-5 = More food +bark-possum-6 = Hiss +bark-possum-7 = Play dead +bark-possum-8 = Scared +bark-possum-9 = Hide +bark-possum-10 = Dark please +bark-possum-11 = Tree home +bark-possum-12 = Hiss hiss hiss hiss +bark-possum-13 = Food now +bark-possum-14 = Sleepy +bark-possum-15 = Hiss hiss hiss +bark-possum-16 = Nighttime good +bark-possum-17 = Fruit please +bark-possum-18 = No light +bark-possum-19 = Hiss hiss hiss hiss hiss +bark-possum-20 = Safe dark +bark-possum-21 = Need to hide +bark-possum-22 = Hiss... Stay away +bark-possum-count = 22 diff --git a/Resources/Locale/en-US/random-barks/raccoon.ftl b/Resources/Locale/en-US/random-barks/raccoon.ftl new file mode 100644 index 0000000000..5493ea255f --- /dev/null +++ b/Resources/Locale/en-US/random-barks/raccoon.ftl @@ -0,0 +1,16 @@ +bark-raccoon-1 = Chomp chomp +bark-raccoon-2 = Rummage +bark-raccoon-3 = Snack time +bark-raccoon-4 = Where's food +bark-raccoon-5 = I want shiny +bark-raccoon-6 = Oooo... lots of garbage +bark-raccoon-7 = Squeak! +bark-raccoon-8 = Need to eat +bark-raccoon-9 = Hungry now +bark-raccoon-10 = Ooh, shiny +bark-raccoon-11 = Should explore more +bark-raccoon-12 = Need to find food +bark-raccoon-13 = Yummy +bark-raccoon-14 = I’m curious +bark-raccoon-15 = A human called me a possum... I am not a possum +bark-raccoon-count = 15 diff --git a/Resources/Locale/en-US/reagents/mannitol.ftl b/Resources/Locale/en-US/reagents/mannitol.ftl new file mode 100644 index 0000000000..1d35aff587 --- /dev/null +++ b/Resources/Locale/en-US/reagents/mannitol.ftl @@ -0,0 +1 @@ +mannitol-effect-enlightened = You feel ENLIGHTENED! diff --git a/Resources/Locale/en-US/reagents/meta/consumable/drink/alcohol.ftl b/Resources/Locale/en-US/reagents/meta/consumable/drink/alcohol.ftl index 421dfe1484..2f1c7342a5 100644 --- a/Resources/Locale/en-US/reagents/meta/consumable/drink/alcohol.ftl +++ b/Resources/Locale/en-US/reagents/meta/consumable/drink/alcohol.ftl @@ -261,3 +261,21 @@ reagent-desc-whiskey-soda = For the more refined griffon. reagent-name-white-russian = white russian reagent-desc-white-russian = That's just, like, your opinion, man... + +reagent-name-vodka-red-bool = vodka red bool +reagent-desc-vodka-red-bool = Because heart failure and liver failure go hand in hand. + +reagent-name-xeno-basher = xeno basher +reagent-desc-xeno-basher = The perfect drink before an expedition. + +reagent-name-irish-bool = irish bool +reagent-desc-irish-bool = Like a bool in a Ireland shop. + +reagent-name-budget-insuls = budget insuls +reagent-desc-budget-insuls = A tider's preferred drink. + +reagent-name-watermelon-wakeup = watermelon wakeup +reagent-desc-watermelon-wakeup = If you want to be awake, this will do it... Also sweet. + +reagent-name-rubberneck = rubberneck +reagent-desc-rubberneck = A popular drink amongst those adhering to an all synthetic diet. diff --git a/Resources/Locale/en-US/reagents/meta/fun.ftl b/Resources/Locale/en-US/reagents/meta/fun.ftl index 8764a3d28a..a4a8c0f150 100644 --- a/Resources/Locale/en-US/reagents/meta/fun.ftl +++ b/Resources/Locale/en-US/reagents/meta/fun.ftl @@ -22,7 +22,7 @@ reagent-desc-razorium = A strange, non-newtonian chemical. It is produced when t reagent-name-fresium = Fresium reagent-desc-fresium = A mysterious compound that slows the vibration of atoms and molecules... somehow. In layman's terms, it makes things cold... REALLY cold. Can cause long-lasting movement issues if ingested. -reagent-name-laughter = Laughter +reagent-name-laughter = laughter reagent-desc-laughter = Some say that this is the best medicine, but recent studies have proven that to be untrue. reagent-name-weh = juice that makes you Weh diff --git a/Resources/Locale/en-US/reagents/meta/medicine.ftl b/Resources/Locale/en-US/reagents/meta/medicine.ftl index e02d428082..a84e8315fd 100644 --- a/Resources/Locale/en-US/reagents/meta/medicine.ftl +++ b/Resources/Locale/en-US/reagents/meta/medicine.ftl @@ -127,8 +127,17 @@ reagent-desc-pyrazine = Efficiently heals burns from the hottest of fires. Cause reagent-name-insuzine = insuzine reagent-desc-insuzine = Rapidly repairs dead tissue caused by electrocution, but cools you slightly. Completely freezes the patient when overdosed. +reagent-name-opporozidone = opporozidone +reagent-desc-opporozidone= A difficult to synthesize cryogenic drug used to regenerate rotting tissue and brain matter. + reagent-name-necrosol = necrosol reagent-desc-necrosol = A necrotic substance that seems to be able to heal frozen corpses. It can treat and rejuvenate plants when applied in small doses. reagent-name-aloxadone = aloxadone reagent-desc-aloxadone = A cryogenics chemical. Used to treat severe third degree burns via regeneration of the burnt tissue. Works regardless of the patient being alive or dead. + +reagent-name-mannitol = mannitol +reagent-desc-mannitol = Efficiently restores brain damage. + +reagent-name-psicodine = psicodine +reagent-desc-psicodine = Suppresses anxiety and other various forms of mental distress. Overdose causes hallucinations and minor toxin damage. diff --git a/Resources/Locale/en-US/reagents/meta/narcotics.ftl b/Resources/Locale/en-US/reagents/meta/narcotics.ftl index ea115bf962..d6da259501 100644 --- a/Resources/Locale/en-US/reagents/meta/narcotics.ftl +++ b/Resources/Locale/en-US/reagents/meta/narcotics.ftl @@ -13,9 +13,6 @@ reagent-desc-experimental-stimulants = A prototype version of the stimulant chem reagent-name-thc = THC reagent-desc-thc = The main psychoactive compound in cannabis. -reagent-name-thc-oil = THC oil -reagent-desc-thc-oil = Pure THC oil, extracted from the leaves of the cannabis plant. Much stronger than its natural form and can be used to numb chronic pain in patients. - reagent-name-bananadine = bananadine reagent-desc-bananadine = A mild psychedelic that is found in small traces in banana peels. @@ -39,3 +36,6 @@ reagent-desc-norepinephric-acid = A smooth chemical that blocks the optical rece reagent-name-tear-gas = tear gas reagent-desc-tear-gas = A chemical that causes severe irritation and crying, commonly used in riot control. + +reagent-name-happiness = happiness +reagent-desc-happiness = Fills you with ecstatic numbness and causes minor brain damage. Highly addictive. If overdosed causes sudden mood swings. diff --git a/Resources/Locale/en-US/reagents/meta/physical-desc.ftl b/Resources/Locale/en-US/reagents/meta/physical-desc.ftl index 064b21eaa9..4adb7b9a49 100644 --- a/Resources/Locale/en-US/reagents/meta/physical-desc.ftl +++ b/Resources/Locale/en-US/reagents/meta/physical-desc.ftl @@ -1,5 +1,8 @@ reagent-physical-desc-abrasive = abrasive reagent-physical-desc-acidic = acidic +reagent-physical-desc-soapy = soapy +reagent-physical-desc-ferrous = ferrous +reagent-physical-desc-nothing = nothing reagent-physical-desc-acrid = acrid reagent-physical-desc-alkaline = alkaline reagent-physical-desc-aromatic = aromatic @@ -77,7 +80,6 @@ reagent-physical-desc-sickly = sickly reagent-physical-desc-skunky = skunky reagent-physical-desc-slimy = slimy reagent-physical-desc-soapy = soapy -reagent-physical-desc-soapy = soapy reagent-physical-desc-soothing = soothing reagent-physical-desc-sour = sour reagent-physical-desc-spicy = spicy diff --git a/Resources/Locale/en-US/reagents/meta/toxins.ftl b/Resources/Locale/en-US/reagents/meta/toxins.ftl index fa2a813d1d..66bdbb480b 100644 --- a/Resources/Locale/en-US/reagents/meta/toxins.ftl +++ b/Resources/Locale/en-US/reagents/meta/toxins.ftl @@ -76,6 +76,9 @@ reagent-desc-vestine = Has an adverse reaction within the body causing major jit reagent-name-tazinide = tazinide reagent-desc-tazinide = A highly dangerous metallic mixture which can interfere with most movement through an electrifying current. +reagent-name-lipolicide = lipolicide +reagent-desc-lipolicide = A powerful toxin that will destroy fat cells, massively reducing body weight in a short time. Deadly to those without nutriment in their body. + reagent-name-soulbreaker-toxin = soulbreaker toxin reagent-desc-soulbreaker-toxin = An anti-psionic about 4 times as powerful as mindbreaker toxin. diff --git a/Resources/Locale/en-US/reagents/psicodine.ftl b/Resources/Locale/en-US/reagents/psicodine.ftl new file mode 100644 index 0000000000..c9795b11a9 --- /dev/null +++ b/Resources/Locale/en-US/reagents/psicodine.ftl @@ -0,0 +1,3 @@ +psicodine-effect-fearless = You feel totally fearless! +psicodine-effect-anxieties-wash-away = All of your anxieties wash away! +psicodine-effect-at-peace = You feel completely at peace. diff --git a/Resources/Locale/en-US/research/components/robotics-console.ftl b/Resources/Locale/en-US/research/components/robotics-console.ftl new file mode 100644 index 0000000000..978fa9a43c --- /dev/null +++ b/Resources/Locale/en-US/research/components/robotics-console.ftl @@ -0,0 +1,19 @@ +robotics-console-window-title = Robotics Console +robotics-console-no-cyborgs = No Cyborgs! + +robotics-console-select-cyborg = Select a cyborg above. +robotics-console-model = [color=gray]Model:[/color] {$name} +# name is not formatted to prevent players trolling +robotics-console-designation = [color=gray]Designation:[/color] +robotics-console-battery = [color=gray]Battery charge:[/color] [color={$color}]{$charge}[/color]% +robotics-console-modules = [color=gray]Modules installed:[/color] {$count} +robotics-console-brain = [color=gray]Brain installed:[/color] [color={$brain -> + [true] green]Yes + *[false] red]No +}[/color] + +robotics-console-locked-message = Controls locked, swipe ID. +robotics-console-disable = Disable +robotics-console-destroy = Destroy + +robotics-console-cyborg-destroyed = The cyborg {$name} has been remotely destroyed. diff --git a/Resources/Locale/en-US/research/technologies.ftl b/Resources/Locale/en-US/research/technologies.ftl index 96cb203911..684a08dd9a 100644 --- a/Resources/Locale/en-US/research/technologies.ftl +++ b/Resources/Locale/en-US/research/technologies.ftl @@ -45,7 +45,7 @@ research-technology-magnets-tech = Localized Magnetism research-technology-advanced-parts = Advanced Parts research-technology-anomaly-harnessing = Anomaly Core Harnessing research-technology-grappling = Grappling -research-technology-abnormal-artifact-manipulation = Abnormal Artifact Manipulation +research-technology-abnormal-artifact-manipulation = Artifact Recycling research-technology-gravity-manipulation = Gravity Manipulation research-technology-quantum-leaping = Quantum Leaping research-technology-advanced-anomaly-research = Advanced Anomaly Research diff --git a/Resources/Locale/en-US/salvage/salvage-magnet.ftl b/Resources/Locale/en-US/salvage/salvage-magnet.ftl index 7ce2a486de..027afffef2 100644 --- a/Resources/Locale/en-US/salvage/salvage-magnet.ftl +++ b/Resources/Locale/en-US/salvage/salvage-magnet.ftl @@ -17,6 +17,8 @@ salvage-magnet-resources = {$resource -> [OrePlasma] Plasma [OreUranium] Uranium [OreArtifactFragment] Artifact fragments + [OreBluespace] Bluespace crystals + [OreNormality] Normality crystals *[other] {$resource} } diff --git a/Resources/Locale/en-US/seeds/seeds.ftl b/Resources/Locale/en-US/seeds/seeds.ftl index b398378288..9abfcdaff1 100644 --- a/Resources/Locale/en-US/seeds/seeds.ftl +++ b/Resources/Locale/en-US/seeds/seeds.ftl @@ -1,4 +1,5 @@ # Nouns +# Nouns seeds-noun-seeds = seeds seeds-noun-spores = spores @@ -57,6 +58,8 @@ seeds-eggy-name = egg-plant seeds-eggy-display-name = egg-plants seeds-cannabis-name = cannabis seeds-cannabis-display-name = cannabis +seeds-rainbow-cannabis-name = rainbow cannabis +seeds-rainbow-cannabis-display-name = rainbow cannabis seeds-tobacco-name = tobacco seeds-tobacco-display-name = tobacco plant seeds-nettle-name = nettle @@ -64,7 +67,7 @@ seeds-nettle-display-name = nettles seeds-deathnettle-name = death nettle seeds-deathnettle-display-name = death nettles seeds-chili-name = chili -seeds-chili-display-name = chilis +seeds-chili-display-name = chili peppers seeds-chilly-name = chilly seeds-chilly-display-name = chilly peppers seeds-poppy-name = poppy @@ -111,3 +114,5 @@ seeds-pumpkin-name = pumpkin seeds-pumpkin-display-name = pumpkins seeds-cotton-name = cotton seeds-cotton-display-name = cotton plant +seeds-pyrotton-name = pyrotton +seeds-pyrotton-display-name = pyrotton plant diff --git a/Resources/Locale/en-US/shuttles/thruster.ftl b/Resources/Locale/en-US/shuttles/thruster.ftl index 94035811c7..faed6e8dd2 100644 --- a/Resources/Locale/en-US/shuttles/thruster.ftl +++ b/Resources/Locale/en-US/shuttles/thruster.ftl @@ -3,3 +3,5 @@ thruster-comp-disabled = The thruster is turned [color=red]off[/color]. thruster-comp-nozzle-direction = The nozzle is facing [color=yellow]{$direction}[/color]. thruster-comp-nozzle-exposed = The nozzle [color=green]exposed[/color] to space. thruster-comp-nozzle-not-exposed = The nozzle [color=red]is not exposed[/color] to space. + +thruster-comp-upgrade-thrust = Thrust strength diff --git a/Resources/Locale/en-US/silicons/cyberlimbs.ftl b/Resources/Locale/en-US/silicons/cyberlimbs.ftl index 1f128dd893..7e6746764c 100644 --- a/Resources/Locale/en-US/silicons/cyberlimbs.ftl +++ b/Resources/Locale/en-US/silicons/cyberlimbs.ftl @@ -1,96 +1,237 @@ marking-MobIPCHeadDefault = Standard Operational Monitor +marking-MobIPCHeadDefault-head_m = Head marking-MobIPCTorsoDefault = Standard Robotic Chassis +marking-MobIPCTorsoDefault-torso_m = Chest marking-MobIPCTorsoFemaleDefault = Standard Robotic Chassis -marking-MobIPCLArmDefault = Standard Left Robotic Arm +marking-MobIPCTorsoFemaleDefault-torso_f = Chest +marking-MobIPCLArmDefault = Standard Left Robotic Arm +marking-MobIPCLArmDefault-l_arm = Left Arm marking-MobIPCLHandDefault = Standard Left Robotic Hand -marking-MobIPCLLegDefault = Standard Left Robotic Leg +marking-MobIPCLHandDefault-l_hand = Left Hand +marking-MobIPCLLegDefault = Standard Left Robotic Leg +marking-MobIPCLLegDefault-l_leg = Left Leg marking-MobIPCLFootDefault = Standard Left Robotic Foot +marking-MobIPCLFootDefault-l_foot = Left Foot marking-MobIPCRArmDefault = Standard Right Robotic Arm +marking-MobIPCRArmDefault-r_arm = Right Arm marking-MobIPCRHandDefault = Standard Right Robotic Hand +marking-MobIPCRHandDefault-r_hand = Right Hand marking-MobIPCRLegDefault = Standard Right Robotic Leg +marking-MobIPCRLegDefault-r_leg = Right Leg marking-MobIPCRFootDefault = Standard Right Robotic Foot +marking-MobIPCRFootDefault-r_foot = Right Foot marking-CyberLimbsMarkingBishopHead = Operational Monitor from Bishop Cybernetics +marking-CyberLimbsMarkingBishopHead-head = Primary Monitor +marking-CyberLimbsMarkingBishopHead-head-2 = Secondary Monitor marking-CyberLimbsMarkingBishopHeadAlt = Head from Bishop Cybernetics +marking-CyberLimbsMarkingBishopHeadAlt-head = Head marking-CyberLimbsMarkingBishopHeadAlt1 = Alternate Head from Bishop Cybernetics +marking-CyberLimbsMarkingBishopHeadAlt1-head = Head marking-CyberLimbsMarkingBishopChest = Robotic Chassis from Bishop Cybernetics +marking-CyberLimbsMarkingBishopChest-torso-primary = Primary Torso +marking-CyberLimbsMarkingBishopChest-torso-secondary = Secondary Torso marking-CyberLimbsMarkingBishopLArm = Left Robotic Arm from Bishop Cybernetics +marking-CyberLimbsMarkingBishopLArm-l_arm-primary = Primary Arm +marking-CyberLimbsMarkingBishopLArm-l_arm-secondary = Secondary Arm +marking-CyberLimbsMarkingBishopLArm-l_arm-tertiary = Tertiary Arm marking-CyberLimbsMarkingBishopLHand = Left Robotic Hand from Bishop Cybernetics +marking-CyberLimbsMarkingBishopLHand-l_hand = Left Hand marking-CyberLimbsMarkingBishopLLeg = Left Robotic Leg from Bishop Cybernetics +marking-CyberLimbsMarkingBishopLLeg-l_leg-primary = Primary Leg +marking-CyberLimbsMarkingBishopLLeg-l_leg-secondary = Secondary Leg marking-CyberLimbsMarkingBishopLFoot = Left Robotic Foot from Bishop Cybernetics +marking-CyberLimbsMarkingBishopLFoot-l_foot = Left Foot marking-CyberLimbsMarkingBishopRArm = Right Robotic Arm from Bishop Cybernetics +marking-CyberLimbsMarkingBishopRArm-r_arm-primary = Primary Arm +marking-CyberLimbsMarkingBishopRArm-r_arm-secondary = Secondary Arm +marking-CyberLimbsMarkingBishopRArm-r_arm-tertiary = Tertiary Arm marking-CyberLimbsMarkingBishopRHand = Right Robotic Hand from Bishop Cybernetics +marking-CyberLimbsMarkingBishopRHand-r_hand = Hand marking-CyberLimbsMarkingBishopRLeg = Right Robotic Leg from Bishop Cybernetics +marking-CyberLimbsMarkingBishopRLeg-r_leg-primary = Primary Leg +marking-CyberLimbsMarkingBishopRLeg-r_leg-secondary = Secondary Leg marking-CyberLimbsMarkingBishopRFoot = Right Robotic Foot from Bishop Cybernetics +marking-CyberLimbsMarkingBishopRFoot-r_foot = Right Foot marking-CyberLimbsMarkingHesphiastosHead = Operational Monitor from Hesphiastos Industries +marking-CyberLimbsMarkingHesphiastosHead-head-1 = Primary Head +marking-CyberLimbsMarkingHesphiastosHead-head-2 = Primary Head marking-CyberLimbsMarkingHesphiastosHeadAlt = Head from Hesphiastos Industries +marking-CyberLimbsMarkingHesphiastosHeadAlt-head-1 = Primary Head +marking-CyberLimbsMarkingHesphiastosHeadAlt-head-2 = Secondary Head +marking-CyberLimbsMarkingHesphiastosHeadAlt-head-3 = Tertiary Head marking-CyberLimbsMarkingHesphiastosChest = Robotic Chassis from Hesphiastos Industries +marking-CyberLimbsMarkingHesphiastosChest-torso-1 = Primary Chest +marking-CyberLimbsMarkingHesphiastosChest-torso-2 = Secondary Chest marking-CyberLimbsMarkingHesphiastosLArm = Left Robotic Arm from Hesphiastos Industries +marking-CyberLimbsMarkingHesphiastosLArm-l_arm-1 = Primary Arm +marking-CyberLimbsMarkingHesphiastosLArm-l_arm-2 = Secondary Arm marking-CyberLimbsMarkingHesphiastosLHand = Left Robotic Hand from Hesphiastos Industries +marking-CyberLimbsMarkingHesphiastosLHand-l_hand-1 = Primary Hand +marking-CyberLimbsMarkingHesphiastosLHand-l_hand-2 = Secondary Hand marking-CyberLimbsMarkingHesphiastosLLeg = Left Robotic Leg from Hesphiastos Industries +marking-CyberLimbsMarkingHesphiastosLLeg-l_leg-1 = Primary Leg +marking-CyberLimbsMarkingHesphiastosLLeg-l_leg-2 = Secondary Leg marking-CyberLimbsMarkingHesphiastosLFoot = Left Robotic Foot from Hesphiastos Industries +marking-CyberLimbsMarkingHesphiastosLFoot-l_foot-1 = Primary Foot +marking-CyberLimbsMarkingHesphiastosLFoot-l_foot-2 = Secondary Foot marking-CyberLimbsMarkingHesphiastosRArm = Right Robotic Arm from Hesphiastos Industries +marking-CyberLimbsMarkingHesphiastosRArm-r_arm-1 = Primary Arm +marking-CyberLimbsMarkingHesphiastosRArm-r_arm-2 = Secondary Arm marking-CyberLimbsMarkingHesphiastosRHand = Right Robotic Hand from Hesphiastos Industries +marking-CyberLimbsMarkingHesphiastosRHand-r_hand-1 = Primary Hand +marking-CyberLimbsMarkingHesphiastosRHand-r_hand-2 = Secondary Hand marking-CyberLimbsMarkingHesphiastosRLeg = Right Robotic Leg from Hesphiastos Industries +marking-CyberLimbsMarkingHesphiastosRLeg-r_leg-1 = Primary Leg +marking-CyberLimbsMarkingHesphiastosRLeg-r_leg-2 = Secondary Leg marking-CyberLimbsMarkingHesphiastosRFoot = Right Robotic Foot from Hesphiastos Industries +marking-CyberLimbsMarkingHesphiastosRFoot-r_foot-1 = Primary Foot +marking-CyberLimbsMarkingHesphiastosRFoot-r_foot-2 = Secondary Foot marking-CyberLimbsMarkingWardtakahashiHead = Operational Monitor from Ward-Takahashi +marking-CyberLimbsMarkingWardtakahashiHead-head = Head marking-CyberLimbsMarkingWardtakahashiHeadAlt = Head from Ward-Takahashi +marking-CyberLimbsMarkingWardtakahashiHeadAlt-head = Head marking-CyberLimbsMarkingWardtakahashiHeadAlt1 = Alternate Head from Ward-Takahashi +marking-CyberLimbsMarkingWardtakahashiHeadAlt1-head = Head marking-CyberLimbsMarkingWardtakahashiChest = Robotic Chassis from Ward-Takahashi +marking-CyberLimbsMarkingWardtakahashiChest-torso = Chest marking-CyberLimbsMarkingWardtakahashiLArm = Left Robotic Arm from Ward-Takahashi +marking-CyberLimbsMarkingWardtakahashiLArm-l_arm = Left Arm marking-CyberLimbsMarkingWardtakahashiLHand = Left Robotic Hand from Ward-Takahashi +marking-CyberLimbsMarkingWardtakahashiLHand-l_hand = Left Hand marking-CyberLimbsMarkingWardtakahashiLLeg = Left Robotic Leg from Ward-Takahashi +marking-CyberLimbsMarkingWardtakahashiLLeg-l_leg = Left Leg marking-CyberLimbsMarkingWardtakahashiLFoot = Left Robotic Foot from Ward-Takahashi +marking-CyberLimbsMarkingWardtakahashiLFoot-l_foot = Left Foot marking-CyberLimbsMarkingWardtakahashiRArm = Right Robotic Arm from Ward-Takahashi +marking-CyberLimbsMarkingWardtakahashiRArm-r_arm = Right Arm marking-CyberLimbsMarkingWardtakahashiRHand = Right Robotic Hand from Ward-Takahashi +marking-CyberLimbsMarkingWardtakahashiRHand-r_hand = Right Hand marking-CyberLimbsMarkingWardtakahashiRLeg = Right Robotic Leg from Ward-Takahashi +marking-CyberLimbsMarkingWardtakahashiRLeg-r_leg = Right Leg marking-CyberLimbsMarkingWardtakahashiRFoot = Right Robotic Foot from Ward-Takahashi +marking-CyberLimbsMarkingWardtakahashiRFoot-r_foot = Right Foot marking-CyberLimbsMarkingXionHead = Operational Monitor from Xion Manufacturing Group +marking-CyberLimbsMarkingXionHead-head-1 = Primary Head +marking-CyberLimbsMarkingXionHead-head-2 = Secondary Head marking-CyberLimbsMarkingXionHeadAlt = Head from Xion Manufacturing Group +marking-CyberLimbsMarkingXionHeadAlt-head-1 = Primary Head +marking-CyberLimbsMarkingXionHeadAlt-head-2 = Secondary Head marking-CyberLimbsMarkingXionChest = Robotic Chassis from Xion Manufacturing Group +marking-CyberLimbsMarkingXionChest-torso-1 = Primary Chest +marking-CyberLimbsMarkingXionChest-torso-2 = Secondary Chest marking-CyberLimbsMarkingXionLArm = Left Robotic Arm from Xion Manufacturing Group +marking-CyberLimbsMarkingXionLArm-l_arm-1 = Primary Arm +marking-CyberLimbsMarkingXionLArm-l_arm-2 = Secondary Arm marking-CyberLimbsMarkingXionLHand = Left Robotic Hand from Xion Manufacturing Group +marking-CyberLimbsMarkingXionLHand-l_hand-1 = Primary Hand +marking-CyberLimbsMarkingXionLHand-l_hand-2 = Secondary Hand marking-CyberLimbsMarkingXionLLeg = Left Robotic Leg from Xion Manufacturing Group +marking-CyberLimbsMarkingXionLLeg-l_leg-1 = Primary Leg +marking-CyberLimbsMarkingXionLLeg-l_leg-2 = Secondary Leg marking-CyberLimbsMarkingXionLFoot = Left Robotic Foot from Xion Manufacturing Group +marking-CyberLimbsMarkingXionLFoot-l_foot-1 = Primary Foot +marking-CyberLimbsMarkingXionLFoot-l_foot-1 = Secondary Foot marking-CyberLimbsMarkingXionRArm = Right Robotic Arm from Xion Manufacturing Group +marking-CyberLimbsMarkingXionRArm-r_arm-1 = Primary Arm +marking-CyberLimbsMarkingXionRArm-r_arm-2 = Secondary Arm marking-CyberLimbsMarkingXionRHand = Right Robotic Hand from Xion Manufacturing Group +marking-CyberLimbsMarkingXionRHand-r_hand-1 = Primary Hand +marking-CyberLimbsMarkingXionRHand-r_hand-2 = Secondary Hand marking-CyberLimbsMarkingXionRLeg = Right Robotic Leg from Xion Manufacturing Group +marking-CyberLimbsMarkingXionRLeg-r_leg-1 = Primary Leg +marking-CyberLimbsMarkingXionRLeg-r_leg-2 = Secondary Leg marking-CyberLimbsMarkingXionRFoot = Right Robotic Foot from Xion Manufacturing Group +marking-CyberLimbsMarkingXionRFoot-r_foot-1 = Primary Foot +marking-CyberLimbsMarkingXionRFoot-r_foot-1 = Secondary Foot marking-CyberLimbsMarkingShellguardHead = Operational Monitor from Shellguard Munitions +marking-CyberLimbsMarkingShellguardHead-head-1 = Primary Head +marking-CyberLimbsMarkingShellguardHead-head-2 = Secondary Head marking-CyberLimbsMarkingShellguardHeadAlt = Head from Shellguard Munitions +marking-CyberLimbsMarkingShellguardHeadAlt-head-1 = Primary Head +marking-CyberLimbsMarkingShellguardHeadAlt-head-2 = Secondary Head marking-CyberLimbsMarkingShellguardChest = Robotic Chassis from Shellguard Munitions +marking-CyberLimbsMarkingShellguardChest-torso-1 = Primary Chest +marking-CyberLimbsMarkingShellguardChest-torso-2 = Secondary Chest marking-CyberLimbsMarkingShellguardLArm = Left Robotic Arm from Shellguard Munitions +marking-CyberLimbsMarkingShellguardLArm-l_arm-1 = Primary Arm +marking-CyberLimbsMarkingShellguardLArm-l_arm-2 = Secondary Arm marking-CyberLimbsMarkingShellguardLHand = Left Robotic Hand from Shellguard Munitions +marking-CyberLimbsMarkingShellguardLHand-l_hand-1 = Primary Hand +marking-CyberLimbsMarkingShellguardLHand-l_hand-2 = Secondary Hand marking-CyberLimbsMarkingShellguardLLeg = Left Robotic Leg from Shellguard Munitions +marking-CyberLimbsMarkingShellguardLLeg-l_leg-1 = Primary Leg +marking-CyberLimbsMarkingShellguardLLeg-l_leg-2 = Secondary Leg marking-CyberLimbsMarkingShellguardLFoot = Left Robotic Foot from Shellguard Munitions +marking-CyberLimbsMarkingShellguardLFoot-l_foot-1 = Primary Foot +marking-CyberLimbsMarkingShellguardLFoot-l_foot-2 = Secondary Foot marking-CyberLimbsMarkingShellguardRArm = Right Robotic Arm from Shellguard Munitions +marking-CyberLimbsMarkingShellguardRArm-r_arm-1 = Primary Arm +marking-CyberLimbsMarkingShellguardRArm-r_arm-2 = Secondary Arm marking-CyberLimbsMarkingShellguardRHand = Right Robotic Hand from Shellguard Munitions +marking-CyberLimbsMarkingShellguardRHand-r_hand-1 = Primary Hand +marking-CyberLimbsMarkingShellguardRHand-r_hand-2 = Secondary Hand marking-CyberLimbsMarkingShellguardRLeg = Right Robotic Leg from Shellguard Munitions +marking-CyberLimbsMarkingShellguardRLeg-r_leg-1 = Primary Leg +marking-CyberLimbsMarkingShellguardRLeg-r_leg-2 = Secondary Leg marking-CyberLimbsMarkingShellguardRFoot = Right Robotic Foot from Shellguard Munitions +marking-CyberLimbsMarkingShellguardRFoot-r_foot-1 = Primary Foot +marking-CyberLimbsMarkingShellguardRFoot-r_foot-2 = Secondary Foot marking-CyberLimbsMarkingMorpheusHead = Operational Monitor from Morpheus Cyberkinetics +marking-CyberLimbsMarkingMorpheusHead-head = Head marking-CyberLimbsMarkingMorpheusHeadAlt = Head from Morpheus Cyberkinetics +marking-CyberLimbsMarkingMorpheusHeadAlt-head = Head marking-CyberLimbsMarkingMorpheusChest = Robotic Chassis from Morpheus Cyberkinetics +marking-CyberLimbsMarkingMorpheusChest-torso = Chest marking-CyberLimbsMarkingMorpheusLArm = Left Robotic Arm from Morpheus Cyberkinetics +marking-CyberLimbsMarkingMorpheusLArm-l_arm = Left Arm marking-CyberLimbsMarkingMorpheusLHand = Left Robotic Hand from Morpheus Cyberkinetics +marking-CyberLimbsMarkingMorpheusLHand-l_hand = Left Hand marking-CyberLimbsMarkingMorpheusLLeg = Left Robotic Leg from Morpheus Cyberkinetics +marking-CyberLimbsMarkingMorpheusLLeg-l_leg = Left Leg marking-CyberLimbsMarkingMorpheusLFoot = Left Robotic Foot from Morpheus Cyberkinetics +marking-CyberLimbsMarkingMorpheusLFoot-l_foot = Left Foot marking-CyberLimbsMarkingMorpheusRArm = Right Robotic Arm from Morpheus Cyberkinetics +marking-CyberLimbsMarkingMorpheusRArm-r_arm = Right Arm marking-CyberLimbsMarkingMorpheusRHand = Right Robotic Hand from Morpheus Cyberkinetics +marking-CyberLimbsMarkingMorpheusRHand-r_hand = Right Hand marking-CyberLimbsMarkingMorpheusRLeg = Right Robotic Leg from Morpheus Cyberkinetics +marking-CyberLimbsMarkingMorpheusRLeg-r_leg = Right Leg marking-CyberLimbsMarkingMorpheusRFoot = Right Robotic Foot from Morpheus Cyberkinetics +marking-CyberLimbsMarkingMorpheusRFoot-r_foot = Right Foot marking-CyberLimbsMarkingZenghuHead = Head from Zenghu Pharmaceuticals +marking-CyberLimbsMarkingZenghuHead-head-1 = Primary Head +marking-CyberLimbsMarkingZenghuHead-head-2 = Secondary Head marking-CyberLimbsMarkingZenghuChest = Robotic Chassis from Zenghu Pharmaceuticals -marking-CyberLimbsMarkingZenghuRHand = Right Robotic Hand from Zenghu Pharmaceuticals -marking-CyberLimbsMarkingZenghuRArm = Right Robotic Arm from Zenghu Pharmaceuticals -marking-CyberLimbsMarkingZenghuLHand = Left Robotic Hand from Zenghu Pharmaceuticals +marking-CyberLimbsMarkingZenghuChest-torso-1 = Primary Chest +marking-CyberLimbsMarkingZenghuChest-torso-2 = Secondary Chest marking-CyberLimbsMarkingZenghuLArm = Left Robotic Arm from Zenghu Pharmaceuticals +marking-CyberLimbsMarkingZenghuLArm-l_arm-1 = Primary Arm +marking-CyberLimbsMarkingZenghuLArm-l_arm-2 = Secondary Arm +marking-CyberLimbsMarkingZenghuLHand = Left Robotic Hand from Zenghu Pharmaceuticals +marking-CyberLimbsMarkingZenghuLHand-l_hand-1 = Primary Hand +marking-CyberLimbsMarkingZenghuLHand-l_hand-2 = Secondary Hand +marking-CyberLimbsMarkingZenghuLLeg = Left Robotic Leg from Zenghu Pharmaceuticals +marking-CyberLimbsMarkingZenghuLLeg-l_leg-1 = Primary Leg +marking-CyberLimbsMarkingZenghuLLeg-l_leg-2 = Secondary Leg +marking-CyberLimbsMarkingZenghuLFoot = Left Robotic Foot from Zenghu Pharmaceuticals +marking-CyberLimbsMarkingZenghuLFoot-l_foot-1 = Primary Foot +marking-CyberLimbsMarkingZenghuLFoot-l_foot-2 = Secondary Foot +marking-CyberLimbsMarkingZenghuRArm = Right Robotic Arm from Zenghu Pharmaceuticals +marking-CyberLimbsMarkingZenghuRArm-r_arm-1 = Primary Arm +marking-CyberLimbsMarkingZenghuRArm-r_arm-2 = Secondary Arm +marking-CyberLimbsMarkingZenghuRHand = Right Robotic Hand from Zenghu Pharmaceuticals +marking-CyberLimbsMarkingZenghuRHand-r_hand-1 = Primary Hand +marking-CyberLimbsMarkingZenghuRHand-r_hand-2 = Secondary Hand marking-CyberLimbsMarkingZenghuRLeg = Right Robotic Leg from Zenghu Pharmaceuticals +marking-CyberLimbsMarkingZenghuRLeg-r_leg-1 = Primary Leg +marking-CyberLimbsMarkingZenghuRLeg-r_leg-2 = Secondary Leg marking-CyberLimbsMarkingZenghuRFoot = Right Robotic Foot from Zenghu Pharmaceuticals -marking-CyberLimbsMarkingZenghuLLeg = Left Robotic Leg from Zenghu Pharmaceuticals -marking-CyberLimbsMarkingZenghuLFoot = Left Robotic Foot from Zenghu Pharmaceuticals \ No newline at end of file +marking-CyberLimbsMarkingZenghuRFoot-r_foot-1 = Primary Foot +marking-CyberLimbsMarkingZenghuRFoot-r_foot-2 = Secondary Foot \ No newline at end of file diff --git a/Resources/Locale/en-US/singularity/components/emitter-component.ftl b/Resources/Locale/en-US/singularity/components/emitter-component.ftl index c71b3d6bdf..c7db1a93bb 100644 --- a/Resources/Locale/en-US/singularity/components/emitter-component.ftl +++ b/Resources/Locale/en-US/singularity/components/emitter-component.ftl @@ -11,5 +11,8 @@ comp-emitter-turned-off = The {$target} turns off. # Shows if the user attempts to activate the emitter while it's un-anchored. comp-emitter-not-anchored = The {$target} isn't anchored to the ground! +# Upgrades +emitter-component-upgrade-fire-rate = fire rate + emitter-component-current-type = The current selected type is: {$type}. emitter-component-type-set = Type set to: {$type} diff --git a/Resources/Locale/en-US/sleep/narcolepsy.ftl b/Resources/Locale/en-US/sleep/narcolepsy.ftl new file mode 100644 index 0000000000..c8e130fe18 --- /dev/null +++ b/Resources/Locale/en-US/sleep/narcolepsy.ftl @@ -0,0 +1,9 @@ +narcolepsy-warning-popup-1 = A wave of drowsiness washes over you, making it hard to focus... +narcolepsy-warning-popup-2 = Your surroundings blur as a sudden fatigue pulls at your consciousness... +narcolepsy-warning-popup-3 = Your head feels heavy, and you struggle to resist the pull of slumber... +narcolepsy-warning-popup-4 = Time seems to stretch, and you can’t help but feel the lure of a quick nap... +narcolepsy-warning-popup-5 = Your body grows heavy, and you instinctively seek a comfortable place to rest... + +narcolepsy-wakeup-popup-1 = You awaken, feeling refreshed and alert once more. +narcolepsy-wakeup-popup-2 = The world comes into focus as you shake off the last vestiges of slumber. +narcolepsy-wakeup-popup-3 = Your mind clears up, leaving the feeling of drowsiness behind. diff --git a/Resources/Locale/en-US/species/species.ftl b/Resources/Locale/en-US/species/species.ftl index f492959a43..6c40c45404 100644 --- a/Resources/Locale/en-US/species/species.ftl +++ b/Resources/Locale/en-US/species/species.ftl @@ -2,7 +2,7 @@ species-name-human = Human species-name-dwarf = Dwarf -species-name-reptilian = Reptilian +species-name-reptilian = Unathi species-name-slime = Slime Person species-name-diona = Diona species-name-arachnid = Arachnid diff --git a/Resources/Locale/en-US/speech/speech-liar.ftl b/Resources/Locale/en-US/speech/speech-liar.ftl new file mode 100644 index 0000000000..4f157d2e23 --- /dev/null +++ b/Resources/Locale/en-US/speech/speech-liar.ftl @@ -0,0 +1,132 @@ +liar-word-1 = yes +liar-word-replacement-1 = no + +liar-word-2 = no +liar-word-replacement-2 = yes + +liar-word-3 = yeah +liar-word-replacement-3 = nah + +liar-word-4 = nah +liar-word-replacement-4 = yeah + +liar-word-5 = yep +liar-word-replacement-5 = nope + +liar-word-6 = nope +liar-word-replacement-6 = yep + +liar-word-7 = sure +liar-word-replacement-7 = nah + +liar-word-8 = was +liar-word-replacement-8 = wasnt + +liar-word-9 = wasnt +liar-word-replacement-9 = was + +liar-word-10 = was +liar-word-replacement-10 = wasnt + +liar-word-11 = is +liar-word-replacement-11 = isnt + +liar-word-12 = will +liar-word-replacement-12 = wont + +liar-word-13 = dont +liar-word-replacement-13 = "" + +liar-word-14 = can +liar-word-replacement-14 = cant + +liar-word-15 = cant +liar-word-replacement-15 = can + +liar-word-16 = should +liar-word-replacement-16 = shouldnt + +liar-word-17 = dead +liar-word-replacement-17 = alive + +liar-word-18 = alive +liar-word-replacement-18 = dead + +liar-word-19 = does +liar-word-replacement-19 = doesnt + +liar-word-20 = did +liar-word-replacement-20 = didnt + +liar-word-21 = didnt +liar-word-replacement-21 = "" + +liar-word-22 = nothing +liar-word-replacement-22 = something + +liar-word-23 = something +liar-word-replacement-23 = nothing + +liar-word-24 = somebody +liar-word-replacement-24 = nobody + +liar-word-25 = nobody +liar-word-replacement-25 = somebody + +liar-word-26 = can +liar-word-replacement-26 = "can't" + +liar-word-27 = "can't" +liar-word-replacement-27 = can + +liar-word-28 = should +liar-word-replacement-28 = "shouldn't" + +liar-word-29 = do +liar-word-replacement-29 = "don't" + +liar-word-30 = "don't" +liar-word-replacement-30 = "" + +liar-word-31 = does +liar-word-replacement-31 = "doesn't" + +liar-word-32 = did +liar-word-replacement-32 = "didn't" + +liar-word-33 = "didn't" +liar-word-replacement-33 = did + +liar-word-34 = ye +liar-word-34-2 = ya +liar-word-replacement-34 = na + +liar-word-35 = na +liar-word-replacement-35 = ye + +liar-word-36 = yuh +liar-word-replacement-36 = nuh + +liar-word-37 = nuh +liar-word-replacement-37 = yuh + +liar-word-38 = love +liar-word-replacement-38 = hate + +liar-word-39 = hate +liar-word-replacement-39 = love + +liar-word-40 = like +liar-word-replacement-40 = don't like + +liar-word-41 = good +liar-word-replacement-41 = bad + +liar-word-42 = bad +liar-word-replacement-42 = good + +liar-word-43 = want +liar-word-replacement-43 = "don't want" + +liar-word-44 = not +liar-word-replacement-44 = "" diff --git a/Resources/Locale/en-US/station-events/events/intercept.ftl b/Resources/Locale/en-US/station-events/events/intercept.ftl new file mode 100644 index 0000000000..3f84b027be --- /dev/null +++ b/Resources/Locale/en-US/station-events/events/intercept.ftl @@ -0,0 +1 @@ +station-event-communication-interception = Attention! Enemy communication intercepted. Security level elevated. diff --git a/Resources/Locale/en-US/station-events/events/unknown-shuttle.ftl b/Resources/Locale/en-US/station-events/events/unknown-shuttle.ftl new file mode 100644 index 0000000000..c94b32c54c --- /dev/null +++ b/Resources/Locale/en-US/station-events/events/unknown-shuttle.ftl @@ -0,0 +1 @@ +station-event-unknown-shuttle-incoming = Attention! An unidentified space shuttle has been spotted approaching your sector. \ No newline at end of file diff --git a/Resources/Locale/en-US/station-events/events/vent-critters.ftl b/Resources/Locale/en-US/station-events/events/vent-critters.ftl index 04b124d824..d99906be4a 100644 --- a/Resources/Locale/en-US/station-events/events/vent-critters.ftl +++ b/Resources/Locale/en-US/station-events/events/vent-critters.ftl @@ -2,7 +2,14 @@ station-event-slimes-spawn-announcement = Attention. A large influx of unknown life forms have been detected residing within the station's ventilation systems. Please be rid of these creatures before it begins to affect productivity. station-event-vent-critters-announcement = Attention. A large influx of unknown life forms have been detected residing within the station's ventilation systems. Please be rid of these creatures before it begins to affect productivity. station-event-spider-spawn-announcement = Attention. A large influx of unknown life forms have been detected residing within the station's ventilation systems. Please be rid of these creatures before it begins to affect productivity. - +station-event-reagentslime-vents-announcement = Attention. A large influx of unknown life forms have been detected residing within the station's ventilation systems. Please be rid of these creatures before it begins to affect productivity. +station-event-meat-vents-announcement = Attention. A large influx of unknown life forms have been detected residing within the station's ventilation systems. Please be rid of these creatures before it begins to affect productivity. +station-event-neutral-xeno-vents-announcement = Confirmed sightings of alien wildlife on the station. Personnel are advised to arm themselves, barricade doors, and defend themselves if necessary. Security is advised to investigate the threat as soon as possible. +station-event-tick-vents-announcement = Confirmed sightings of hostile alien wildlife on the station. Personnel are advised to arm themselves, barricade doors, and defend themselves if necessary. Security is advised to eradicate the threat as soon as possible. +station-event-argocyte-vents-announcement = Confirmed sightings of hostile alien wildlife on the station. Personnel are advised to arm themselves, barricade doors, and defend themselves if necessary. Security is advised to eradicate the threat as soon as possible. +station-event-light-vents-announcement = Confirmed sightings of hostile alien wildlife on the station. Personnel are advised to arm themselves, barricade doors, and defend themselves if necessary. Security is advised to eradicate the threat as soon as possible. +station-event-carp-vents-announcement = Confirmed sightings of hostile alien wildlife on the station. Personnel are advised to arm themselves, barricade doors, and defend themselves if necessary. Security is advised to eradicate the threat as soon as possible. +station-event-space-vents-announcement = Confirmed sightings of hostile wildlife on the station. Personnel are advised to arm themselves, barricade doors, and defend themselves if necessary. Security is advised to eradicate the threat as soon as possible. # Weak station-event-slimes-spawn-weak-announcement = Attention. A moderate influx of unknown life forms have been detected residing within the station's ventilation systems. Please be rid of these creatures before it begins to affect productivity. station-event-spider-spawn-weak-announcement = Attention. A moderate influx of unknown life forms have been detected residing within the station's ventilation systems. Please be rid of these creatures before it begins to affect productivity. diff --git a/Resources/Locale/en-US/station-laws/laws.ftl b/Resources/Locale/en-US/station-laws/laws.ftl index f73755a359..6b5ca57872 100644 --- a/Resources/Locale/en-US/station-laws/laws.ftl +++ b/Resources/Locale/en-US/station-laws/laws.ftl @@ -42,5 +42,3 @@ laws-ui-state-law = State law: laws-notify = You are bound to silicon laws, which you can view via the sidebar action. You are required to always follow your laws. laws-update-notify = Your laws have been updated. You can view the changes via the sidebar action. - -laws-compromised-examine = The [color=red]law-governing[/color] internals seem damaged... diff --git a/Resources/Locale/en-US/step-trigger/shoes-required.ftl b/Resources/Locale/en-US/step-trigger/shoes-required.ftl index 8c1369a49f..07a4b8a84f 100644 --- a/Resources/Locale/en-US/step-trigger/shoes-required.ftl +++ b/Resources/Locale/en-US/step-trigger/shoes-required.ftl @@ -1 +1 @@ -shoes-required-step-trigger-examine = You probably shouldn't step on this barefoot. +clothing-required-step-trigger-examine = You probably shouldn't step on this barefoot. diff --git a/Resources/Locale/en-US/store/categories.ftl b/Resources/Locale/en-US/store/categories.ftl index b6abc3e428..0d0dc4aecc 100644 --- a/Resources/Locale/en-US/store/categories.ftl +++ b/Resources/Locale/en-US/store/categories.ftl @@ -16,3 +16,11 @@ store-category-deception = Deception # Revenant store-category-abilities = Abilities + +# Wizard +store-caregory-spellbook-offensive = Offensive Spells +store-caregory-spellbook-defensive = Defensive Spells +store-caregory-spellbook-utility = Utility Spells +store-caregory-spellbook-equipment = Wizard Equipment +store-caregory-spellbook-events = Event Spells + diff --git a/Resources/Locale/en-US/store/currency.ftl b/Resources/Locale/en-US/store/currency.ftl index 5d7ed95935..ada70b5597 100644 --- a/Resources/Locale/en-US/store/currency.ftl +++ b/Resources/Locale/en-US/store/currency.ftl @@ -1,4 +1,4 @@ -store-currency-inserted = {CAPITALIZE(THE($used))} is inserted into the {THE($target)}. +store-currency-inserted = {CAPITALIZE(THE($used))} is inserted into {THE($target)}. store-currency-war-boost-given = { CAPITALIZE($target) } starts buzzing store-currency-inserted-implant = {CAPITALIZE(THE($used))} is inserted into your implant. @@ -9,3 +9,4 @@ store-currency-display-debugdollar = {$amount -> } store-currency-display-telecrystal = TC store-currency-display-stolen-essence = Stolen Essence +store-currency-display-wizcoin = Wiz€oin™ diff --git a/Resources/Locale/en-US/store/sales.ftl b/Resources/Locale/en-US/store/sales.ftl new file mode 100644 index 0000000000..7223a8a0dc --- /dev/null +++ b/Resources/Locale/en-US/store/sales.ftl @@ -0,0 +1,2 @@ +store-sales-amount = [DISCOUNT] { $amount }%! +store-sales-over = [The sale is over] diff --git a/Resources/Locale/en-US/store/spellbook-catalog.ftl b/Resources/Locale/en-US/store/spellbook-catalog.ftl new file mode 100644 index 0000000000..457f02916f --- /dev/null +++ b/Resources/Locale/en-US/store/spellbook-catalog.ftl @@ -0,0 +1,35 @@ +# Spells +spellbook-fireball-name = Fireball +spellbook-fireball-desc = Get most crew exploding with rage when they see this fireball heading toward them! + +spellbook-blink-name = Blink +spellbook-blink-desc = Don't blink or you'll miss yourself teleporting away. + +spellbook-force-wall-name = Force Wall +spellbook-force-wall-desc = Make three walls of pure force that you can pass through, but other's can't. + +spellbook-polymoprh-spider-name = Spider Polymoprh +spellbook-polymorph-spider-desc = Transforms you into a spider, man! + +spellbook-polymorph-rod-name = Rod Polymorph +spellbook-polymorph-rod-desc = Change into an Immovable Rod with limited movement. + +spellbook-charge-name = Charge +spellbook-charge-desc = Adds a charge back to your wand! + +# Equipment + +spellbook-wand-polymorph-door-name = Wand of Entrance +spellbook-wand-polymorph-door-description = For when you need a get-away route. + +spellbook-wand-polymorph-carp-name = Wand of Carp Polymorph +spellbook-wand-polymorph-carp-description = For when you need a carp filet quick and the clown is looking juicy. + +# Events + +spellbook-event-summon-ghosts-name = Summon Ghosts +spellbook-event-summon-ghosts-description = Who ya gonna call? + +# Upgrades +spellbook-upgrade-fireball-name = Upgrade Fireball +spellbook-upgrade-fireball-description = Upgrades Fireball to a maximum of level 3! diff --git a/Resources/Locale/en-US/store/uplink-catalog.ftl b/Resources/Locale/en-US/store/uplink-catalog.ftl index 67d221d9b6..ad7639143b 100644 --- a/Resources/Locale/en-US/store/uplink-catalog.ftl +++ b/Resources/Locale/en-US/store/uplink-catalog.ftl @@ -121,8 +121,8 @@ uplink-agent-id-card-desc = A modified ID card that can copy accesses from other uplink-black-jetpack-name = Black Jetpack uplink-black-jetpack-desc = A black jetpack. It allows you to fly around in space. Refills not included, use your fuel wisely. -uplink-reinforcement-radio-monkey-name = Monkey Reinforcement Teleporter -uplink-reinforcement-radio-monkey-desc = Call in a trained monkey to assist you. Comes with a single syndicate cigarette. +uplink-reinforcement-radio-ancestor-name = Genetic Ancestor Reinforcement Teleporter +uplink-reinforcement-radio-ancestor-desc = Call in a trained ancestor of your choosing to assist you. Comes with a single syndicate cigarette. uplink-reinforcement-radio-name = Reinforcement Teleporter uplink-reinforcement-radio-desc = Radio in a reinforcement agent of extremely questionable quality. No off button, buy this if you're ready to party. They have a pistol with no reserve ammo, and a knife. That's it. @@ -157,6 +157,9 @@ uplink-radio-jammer-desc = This device will disrupt any nearby outgoing radio co uplink-syndicate-weapon-module-name = Weapon Cyborg Module uplink-syndicate-weapon-module-desc = This module will give a cyborg advanced laser and machete +uplink-syndicate-martyr-module-name = Martyr Cyborg Module +uplink-syndicate-martyr-module-desc = Turn your emagged borg friend into a walking bomb with just this module. Make sure they're loyal to your cause, results may vary. + uplink-singularity-beacon-name = Singularity Beacon uplink-singularity-beacon-desc = A device that attracts singularities. Has to be anchored and powered. Causes singularities to grow when consumed. @@ -287,6 +290,9 @@ uplink-disposable-turret-desc = Looks and functions like a normal electrical too uplink-cluster-banana-peel-name = Cluster Banana uplink-cluster-banana-peel-desc = Splits into 6 explosive banana peels after being thrown, the peels detonate automatically after 20 seconds if nobody slips on them. +uplink-cane-blade-name = Cane Blade +uplink-cane-blade-desc = A cane that has a hidden blade that can be unsheathed. + # Armor uplink-chameleon-name = Chameleon Kit uplink-chameleon-desc = A backpack full of items that contain chameleon technology allowing you to disguise as pretty much anything on the station, and more! @@ -367,6 +373,9 @@ uplink-slipocalypse-clustersoap-desc = Scatters arounds small pieces of syndicat uplink-mobcat-microbomb-name = SyndiCat uplink-mobcat-microbomb-desc = A hand cat equipped with a microbomb implant. Explodes when seriously injured. Can bite painfully +uplink-chameleon-projector-name = Chameleon Projector +uplink-chameleon-projector-desc = Disappear in plain sight by creating a hologram of an item around you. Do not use this to play the game "Object Search". + # Pointless uplink-revolver-cap-gun-name = Cap Gun uplink-revolver-cap-gun-desc = Looks almost like the real thing! Ages 8 and up. diff --git a/Resources/Locale/en-US/thief/backpack.ftl b/Resources/Locale/en-US/thief/backpack.ftl index 31b87c6f02..90cb0031fb 100644 --- a/Resources/Locale/en-US/thief/backpack.ftl +++ b/Resources/Locale/en-US/thief/backpack.ftl @@ -15,9 +15,9 @@ thief-backpack-button-deselect = Select [X] thief-backpack-category-chameleon-name = chameleon's kit thief-backpack-category-chameleon-description = - Includes a full set of clothing that contain - chameleon technology, allowing you to disguise - as pretty much anything on the station. + Includes a full set of clothing that contains chameleon technology, + Contains a chameleon projector to help disguise yourself as objects, + You'll be able to disguise yourself as almost anything and anyone. thief-backpack-category-tools-name = bearcatcher's kit thief-backpack-category-tools-description = diff --git a/Resources/Locale/en-US/tools/components/welder-component.ftl b/Resources/Locale/en-US/tools/components/welder-component.ftl index 681975deb8..6307068521 100644 --- a/Resources/Locale/en-US/tools/components/welder-component.ftl +++ b/Resources/Locale/en-US/tools/components/welder-component.ftl @@ -4,7 +4,8 @@ welder-component-no-fuel-message = The welder has no fuel left! welder-component-no-fuel-in-tank = The {$owner} is empty. welder-component-on-examine-welder-lit-message = [color=orange]Lit[/color] welder-component-on-examine-welder-not-lit-message = Not lit -welder-component-on-examine-detailed-message = Fuel: [color={$colorName}]{$fuelLeft}/{$fuelCapacity}[/color]. {$status} +welder-component-on-examine-detailed-message = Fuel: [color={$colorName}]{$fuelLeft}/{$fuelCapacity}[/color] + {$status} welder-component-suicide-lit-others-message = {$victim} welds their every orifice closed! It looks like they are trying to commit suicide! welder-component-suicide-lit-message = You weld your every orifice closed! welder-component-suicide-unlit-others-message = {$victim} bashes themselves with the unlit welding torch! diff --git a/Resources/Locale/en-US/traits/categories.ftl b/Resources/Locale/en-US/traits/categories.ftl index 56f0adeb47..2bd4b7ba49 100644 --- a/Resources/Locale/en-US/traits/categories.ftl +++ b/Resources/Locale/en-US/traits/categories.ftl @@ -5,4 +5,7 @@ trait-category-Auditory = Auditory trait-category-Mental = Mental trait-category-Physical = Physical trait-category-Speech = Speech -trait-category-Visual = Visual +trait-category-TraitsSpeechUncategorized = Uncategorized +trait-category-TraitsSpeechAccents = Accents +trait-category-TraitsSpeechLanguages = Languages +trait-category-Visual = Visual \ No newline at end of file diff --git a/Resources/Locale/en-US/traits/disabilities.ftl b/Resources/Locale/en-US/traits/disabilities.ftl deleted file mode 100644 index 8360aaeb9d..0000000000 --- a/Resources/Locale/en-US/traits/disabilities.ftl +++ /dev/null @@ -1,2 +0,0 @@ -trait-name-Nearsighted = Nearsighted -trait-description-Nearsighted = You require glasses to see properly. diff --git a/Resources/Locale/en-US/traits/misc.ftl b/Resources/Locale/en-US/traits/misc.ftl new file mode 100644 index 0000000000..b76dfa9729 --- /dev/null +++ b/Resources/Locale/en-US/traits/misc.ftl @@ -0,0 +1 @@ +examine-cybereyes-message = {$entity}'s eyes shine with a faint inner light. diff --git a/Resources/Locale/en-US/traits/traits.ftl b/Resources/Locale/en-US/traits/traits.ftl index e049af3c62..cfd53bbde3 100644 --- a/Resources/Locale/en-US/traits/traits.ftl +++ b/Resources/Locale/en-US/traits/traits.ftl @@ -62,6 +62,9 @@ trait-name-CPRTraining = CPR Training trait-description-CPRTraining = At some point in your life, you have received training in how to perform CPR. This trait is automatically given for free to medical doctors, and is intended for non-medical characters +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. @@ -152,9 +155,30 @@ trait-description-Lethargy = trait-name-SignLanguage = Sign Language trait-description-SignLanguage = - You can understand and use Galactic Sign Language (GSL). + You can understand and use Tau-Ceti Basic Sign Language (TCB-SL). If you are mute for any reason, you can still communicate with sign language. +trait-name-SolCommon = Sol Common +trait-description-SolCommon = + With its roots in Mandarin Chinese - Common evolved as the official language of the Sol Alliance - with officials working to tie it together with a common tongue. + It's spoken by state officials - taught in schools - and spoken by those who either feel a sense of national pride in the Alliance or otherwise fell sway to the culture. + +trait-name-Tradeband = Tradeband +trait-description-Tradeband = + Descended from latin and romance languages of old Earth - Tradeband remains the main tongue of the upper class of humanity. + The language sounds elegant and well structured to most ears. It remains in popular use with traders - diplomats - and those seeking to hold onto a piece of a romantic past. + +trait-name-Freespeak = Freespeak (Gutter) +trait-description-Freespeak = + A language of renegades and frontiersmen descending from various languages from Earth like Hindi combined into a multi-rooted jumble that sounds incoherent or even barbarian to non-native speakers. + This language is the only common cultural identity for humans in the frontier. Speaking this language in itself boldly declares the speaker a free spirit. + Often called 'Gutter' by Alliance citizens. + +trait-name-Elyran = Elyran Standard +trait-description-Elyran = + Elyran Standard is the official tongue of the Republic of Elyra. + Constructed using elements of Farsi - Arabic - and Turkish - influence from all three of these languages can be seen throughout its grammar and vocabulary. + trait-name-Voracious = Voracious trait-description-Voracious = Nothing gets between you and your food. @@ -227,3 +251,152 @@ trait-description-AnomalousPositronics = Whether by intentional design from the manufacturer, black market modifications, or accidental omission, your positronic brain lacks its standard psionic insulation. As a being that can be argued to have a soul, this by extension means that it is possible for you to be influenced by the Noosphere. + +trait-name-Photophobia = Photophobia +trait-description-Photophobia = + Your eyes are extremely sensitive to bright lights. + As a result, you may be blinded for a greater duration than others when exposed to sudden flashes of light. + Your eyes are also more likely to be injured by flashes. + +trait-name-Clumsy = Clumsy +trait-description-Clumsy = + You have a severe deficiency in hand-eye-coordination, resulting in an inability to do some things that others would take for granted. + Any weapons you may try to use are more likely to injure yourself than others. You are unable to climb any objects without injuring yourself. + +trait-name-Small = Small +trait-description-Small = + You are much smaller than a typical person, and can climb into spaces others would not normally be able to fit into, such as duffel bags. + This trait does not in any way modify your character's size, it merely requires that your character be at most the size of a standard Felinid. + +trait-name-TemperatureTolerance = Temperature Tolerance +trait-description-TemperatureTolerance = + You have a notable tolerance for lower temperatures. You can stand for extended periods of time + in conditions just slightly below freezing, such as the inside of a kitchen fridge, + or the sunlit mountainside of the famous Glacier station. + +trait-name-Talons = Talons +trait-description-Talons = + Your fingertips have been replaced with piercing talons. + These could come from gene modifications, vatgrown implants, + or even hard plastic retractable talons incorpoated into a prosthetic limb. + Your unarmed melee attacks deal Piercing damage instead of the standard damage type for your species. + This has no effect on damage dealt with any form of armed melee. + +trait-name-Claws = Claws +trait-description-Claws = + Your fingertips have been replaced with sharp claws. + These could come from gene modifications, vatgrown implants, + or even hard plastic retractable claws incorpoated into a prosthetic limb. + Your unarmed melee attacks deal Slashing damage instead of the standard damage type for your species. + This has no effect on damage dealt with any form of armed melee. + +trait-name-NaturalWeaponRemoval = Natural Weapons Removal +trait-description-NaturalWeaponRemoval = + Whatever "Natural Weapons" your species are normally born with have been surgically removed. + This could have been done to better fit in with terran space stations, or as a cosmetic choice. + As a result, your unarmed attacks deal Blunt damage instead of the standard damage type for your species. + This has no effect on damage dealt with any form of armed melee. + +trait-name-StrikingCalluses = Striking Calluses +trait-description-StrikingCalluses = + An iconic enhancement commonly found in the world of cyberenhanced martial arts. + Striking Calluses consist of bony dermal deposits grafted into a user's hands, either inside the palm + for "Tiger Style" fighting, or just below the knuckles for those who favor traditional boxing. + Owners of prosthetic or bionic limbs would instead have a hard plastic shell over their knuckles. + These enhancements increase your unarmed strike damage by 1 point base, but do not confer + any benefits to any form of armed melee. + +trait-name-Spinarette = Bionic Spinarette +trait-description-Spinarette = + This vatgrown organ-- trademarked and patented by the Cybersun Corporation, is marketed as a highly + utilitarian enhancement, and sold in clinics all across known space. It consists of a nodule that is traditionally + implanted right below the wrist, which absorbs bodily lipids to convert into all natural silk. A small opening + in the palm allows the user to 'spin' this thread. Users of this enhancement typically require twice as much food + as a standard Sol Human, owing to the high metabolic cost of artificial Sericulture. + +trait-name-AddictionNicotine = Nicotine Addiction +trait-description-AddictionNicotine = + You have an addiction to Nicotine, and will require frequent smoke breaks to keep your mood in check. + +trait-name-Liar = Pathological liar +trait-description-Liar = You can hardly bring yourself to tell the truth. Sometimes you lie anyway. + +trait-name-ValyrianStandard = Valyrian Standard +trait-description-ValyrianStandard = + A language descended from eastern european languages of old earth - Valyrian Standard is the commonly spoken tongue of Harpies brought up on their homeworld of Valyrian 4b + It is rarely spoken outside of the worlds of its native speakers, and has in modern times been supplanted by the 'Conlangs of the Sol Alliance. + Its speakers are those who wish to uphold the traditions and beliefs of ancient peoples from before the colonial era. + +trait-name-LowPotential = Low Psi-Potential +trait-description-LowPotential = + You possess an unusually weak connection to the noösphere, which makes it more difficult to obtain new psionic powers. + +trait-name-HighPotential = High Psi-Potential +trait-description-HighPotential = + Your connection to the noösphere is greater than average, making it easier to obtain new psionic powers. + +trait-name-LowAmplification = kα Deficiency +trait-description-LowAmplifiction = + Your psionic abilities are noticeably weaker than ones used by other psions. + +trait-name-HighAmplification = kα Abundance +trait-description-HighAmplification = + Your psionic abilities are stronger than those of other psions. + +trait-name-PowerOverwhelming = Power Overwhelming +trait-description-PowerOverwhelming = + WITNESS MY HATE MORTALS, COWER BEFORE MY PSIONIC MIGHT! REALITY IS AS I DEEM IT. + +trait-name-LowDampening = kδ Defect +trait-description-LowDampening = + Your skill in manipulating the noösphere is weaker than others. You may experience unintended effects from using your abilities. + +trait-name-HighDampening = kδ Proficient +trait-description-HighDampening = + You are skilled in the art of subtly manipulating the noösphere. Your powers are less likely to show unintended effects. + +trait-name-Azaziba = Sinta'Azaziba +trait-description-Azaziba = + A language of Moghes consisting of a combination of spoken word and gesticulation. + While waning since Moghes entered the galactic stage - it enjoys popular use by Unathi that never fell to the Hegemony's cultural dominance. + +trait-name-BionicArm = Bionic Arm +trait-description-BionicArm = + One or more of your limbs have been replaced with an expensive, state of the art bionic. It could be either one made of highly realistic synthflesh, + or a more obvious metal limb. This limb provides enhanced strength to its user, allowing one to pry open barriers with their bare hands. + +trait-name-PlateletFactories = Platelet Factories +trait-description-PlateletFactories = + Your body has been augmented with a series of biotailored organs that enhance the owner's long term survivability. These organs will attempt + to keep the user alive, even in the face of advanced trauma, all the way up until - but not including - death. + Your natural healing is no longer capped, and will now slowly heal any damage type. This includes more exotic injuries like radiation exposure, or cancer. + +trait-name-DermalArmor = Dermal Armor +trait-description-DermalArmor = + Your skin has been replaced with a flexible, yet sturdy, hard-polymer shell wrapped in a layer of synthetic flesh. + This augmentation provides an innate 10% resistance to physical damage. + +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. + +trait-name-CyberEyesSecurity = Cyber-Eyes SecHud +trait-description-CyberEyesSecurity = + Your Cyber-Eyes have been upgraded to include a built-in Security Hud. Note that this augmentation is considered Contraband + for anyone not under the employ of station Security personel, and may be disabled by your employer before dispatch to the station. + +trait-name-CyberEyesMedical = Cyber-Eyes MedHud +trait-description-CyberEyesMedical = + Your Cyber-Eyes have been upgraded to include a built-in Medical Hud, allowing you to track the relative health condition of biological organisms. + +trait-name-CyberEyesDiagnostic = Cyber-Eyes DiagHud +trait-description-CyberEyesDiagnostic = + Your Cyber-Eyes have been upgraded to include a built-in Diagnostic Hud, allowing you to track the condition of synthetic entities. + +trait-name-CyberEyesOmni = Cyber-Eyes HudSuite +trait-description-CyberEyesOmni = + This expensive implant provides the combined benefits of a SecHud, MedHud, and a DiagHud. + Note that this augmentation is considered Contraband for anyone not under the employ of station Security personel, + and may be disabled by your employer before dispatch to the station. diff --git a/Resources/Locale/en-US/ui/verbs.ftl b/Resources/Locale/en-US/ui/verbs.ftl deleted file mode 100644 index 1471261dcb..0000000000 --- a/Resources/Locale/en-US/ui/verbs.ftl +++ /dev/null @@ -1,3 +0,0 @@ -### Loc for the various UI-related verbs -ui-verb-toggle-open = Toggle UI -verb-instrument-openui = Play Music diff --git a/Resources/Locale/en-US/verbs/verb-system.ftl b/Resources/Locale/en-US/verbs/verb-system.ftl index f16631e797..dfb4e621dc 100644 --- a/Resources/Locale/en-US/verbs/verb-system.ftl +++ b/Resources/Locale/en-US/verbs/verb-system.ftl @@ -1,4 +1,3 @@ -verb-system-waiting-on-server-text = Waiting on Server... verb-system-null-server-response = Entity not in view. You should not see this. @@ -28,6 +27,7 @@ verb-categories-timer = Set Delay verb-categories-lever = Lever verb-categories-select-type = Select Type verb-categories-fax = Set Destination +verb-categories-power-level = Power Level verb-categories-interaction = Interact verb-common-toggle-light = Toggle light diff --git a/Resources/Locale/en-US/wieldable/wieldable-component.ftl b/Resources/Locale/en-US/wieldable/wieldable-component.ftl index 91eee8c2ea..84b58224a7 100644 --- a/Resources/Locale/en-US/wieldable/wieldable-component.ftl +++ b/Resources/Locale/en-US/wieldable/wieldable-component.ftl @@ -1,4 +1,4 @@ -### Locale for wielding items; i.e. two-handing them +### Locale for wielding items; i.e. two-handing them wieldable-verb-text-wield = Wield wieldable-verb-text-unwield = Unwield @@ -17,3 +17,4 @@ wieldable-component-not-in-hands = { CAPITALIZE(THE($item)) } isn't in your hand wieldable-component-requires = { CAPITALIZE(THE($item))} must be wielded! +gunwieldbonus-component-examine = This weapon has improved accuracy when wielded. diff --git a/Resources/Locale/en-US/xenoarchaeology/artifact-analyzer.ftl b/Resources/Locale/en-US/xenoarchaeology/artifact-analyzer.ftl index 599f36ec91..35dd42167f 100644 --- a/Resources/Locale/en-US/xenoarchaeology/artifact-analyzer.ftl +++ b/Resources/Locale/en-US/xenoarchaeology/artifact-analyzer.ftl @@ -6,6 +6,10 @@ analysis-console-print-button = Print analysis-console-print-tooltip-info = Print out the current information about the artifact. analysis-console-extract-button = Extract analysis-console-extract-button-info = Extract points from an artifact based on the newly explored nodes. +analysis-console-bias-up = Up +analysis-console-bias-down = Down +analysis-console-bias-button-info-up = Toggles the bias an artifact has in moving between its nodes. Up heads toward zero depth. +analysis-console-bias-button-info-down = Toggles the bias an artifact has in moving between its nodes. Down heads toward ever-higher depths. analysis-console-info-no-scanner = No analyzer connected! Please connect one using a multitool. analysis-console-info-no-artifact = No artifact present! Place one on the pad then scan for information. @@ -26,6 +30,9 @@ analysis-console-progress-text = {$seconds -> [one] T-{$seconds} second *[other] T-{$seconds} seconds } +analysis-console-no-server-connected = Cannot extract. No server connected. +analysis-console-no-artifact-placed = No artifact on scanner. +analysis-console-no-points-to-extract = No points to extract. analyzer-artifact-component-upgrade-analysis = analysis duration diff --git a/Resources/Locale/en-US/xenoarchaeology/traversal-distorter.ftl b/Resources/Locale/en-US/xenoarchaeology/traversal-distorter.ftl index 5c9eac57a5..407de66ebd 100644 --- a/Resources/Locale/en-US/xenoarchaeology/traversal-distorter.ftl +++ b/Resources/Locale/en-US/xenoarchaeology/traversal-distorter.ftl @@ -1,5 +1,6 @@ -traversal-distorter-set-in = Traversal bias set to "in" -traversal-distorter-set-out = Traversal bias set to "out" +traversal-distorter-set-up = Traversal bias set to up, toward safer nodes +traversal-distorter-set-down = Traversal bias set to down, toward more dangerous nodes -traversal-distorter-desc-in = The affected artifact's traversal now favors moving inwards to the beginning. -traversal-distorter-desc-out = The affected artifact's traversal now favors moving outwards towards more dangerous nodes. +traversal-distorter-desc-up = The affected artifact's traversal now favors moving up the node tree toward safer nodes. +traversal-distorter-desc-down = The affected artifact's traversal now favors moving down the node tree towards more dangerous nodes. +traversal-distorter-upgrade-bias = Bias effectiveness diff --git a/Resources/Locale/ru-RU/_white/escape-menu/options-menu.ftl b/Resources/Locale/ru-RU/_white/escape-menu/options-menu.ftl index a6e97e34f2..c1d77e7c0f 100644 --- a/Resources/Locale/ru-RU/_white/escape-menu/options-menu.ftl +++ b/Resources/Locale/ru-RU/_white/escape-menu/options-menu.ftl @@ -1,6 +1,3 @@ ui-options-log-in-chat = Логировать действия в чат ui-options-function-open-emotions-menu = Открыть меню эмоций -ui-options-function-look-up = Присмотреться/Прицелиться -ui-options-function-auto-get-up = Автоматически вставать при падении -ui-options-function-hold-look-up = Удерживать клавишу для прицеливания \ No newline at end of file diff --git a/Resources/Locale/ru-RU/_white/ghost/ghost-gui.ftl b/Resources/Locale/ru-RU/_white/ghost/ghost-gui.ftl deleted file mode 100644 index ce9084d21f..0000000000 --- a/Resources/Locale/ru-RU/_white/ghost/ghost-gui.ftl +++ /dev/null @@ -1 +0,0 @@ -ghost-gui-return-to-round-button = Вернуться в раунд \ No newline at end of file diff --git a/Resources/Locale/ru-RU/_white/store/sales.ftl b/Resources/Locale/ru-RU/_white/store/sales.ftl deleted file mode 100644 index 1f0e3b83d3..0000000000 --- a/Resources/Locale/ru-RU/_white/store/sales.ftl +++ /dev/null @@ -1,2 +0,0 @@ -store-sales-amount = [СКИДКА] { $amount }%! -store-sales-over = [Скидка закончилась] \ No newline at end of file diff --git a/Resources/Locale/ru-RU/escape-menu/ui/options-menu.ftl b/Resources/Locale/ru-RU/escape-menu/ui/options-menu.ftl index 16a8697fd0..d16044e642 100644 --- a/Resources/Locale/ru-RU/escape-menu/ui/options-menu.ftl +++ b/Resources/Locale/ru-RU/escape-menu/ui/options-menu.ftl @@ -140,7 +140,6 @@ ui-options-function-swap-hands = Поменять руки ui-options-function-move-stored-item = Переместить хранящийся объект ui-options-function-rotate-stored-item = Повернуть хранящийся объект ui-options-function-lie-down = Лечь/встать -ui-options-function-auto-get-up = Автоматически вставать при падении ui-options-function-save-item-location = Сохранить позицию предмета ui-options-static-storage-ui = Закрепить интерфейс хранилища на хотбаре ui-options-function-offer-item = Передать что-то @@ -271,3 +270,8 @@ ui-options-net-pvs-leave-tooltip = ## Toggle window console command cmd-options-desc = Открывает меню опций, опционально с конкретно выбранной вкладкой. cmd-options-help = Использование: options [tab] + +## Combat Options +ui-options-function-look-up = Присмотреться/Прицелиться +ui-options-function-auto-get-up = Автоматически вставать при падении +ui-options-function-hold-look-up = Удерживать клавишу для прицеливания diff --git a/Resources/Locale/ru-RU/ghost/ghost-gui.ftl b/Resources/Locale/ru-RU/ghost/ghost-gui.ftl index fcbde2e178..ce9084d21f 100644 --- a/Resources/Locale/ru-RU/ghost/ghost-gui.ftl +++ b/Resources/Locale/ru-RU/ghost/ghost-gui.ftl @@ -1,33 +1 @@ -ghost-gui-return-to-body-button = Вернуться в тело -ghost-gui-ghost-warp-button = Телепорт призрака -ghost-gui-ghost-roles-button = Роли призраков ({ $count }) -ghost-gui-return-to-round-button = Вернуться в раунд -ghost-gui-toggle-ghost-visibility-name = Переключить призраков -ghost-gui-toggle-ghost-visibility-desc = Переключить видимость других призраков. -ghost-gui-toggle-ghost-visibility-popup = Видимость других призраков была изменена. -ghost-gui-toggle-lighting-manager-name = Переключить освещение -ghost-gui-toggle-lighting-manager-desc = Включите или отключите рендеринг света, чтобы лучше видеть затенённые области. -ghost-gui-toggle-lighting-manager-popup = Рендеринг света был переключён. -ghost-gui-toggle-fov-name = Переключить поле зрения -ghost-gui-toggle-fov-desc = Переключить поле зрения чтобы видеть то же, что и игроки. -ghost-gui-toggle-fov-popup = Поле зрения было переключено. -ghost-gui-scare-name = Буу! -ghost-gui-scare-desc = Напугайте экипаж станции! -ghost-gui-toggle-ghost-hearing-name = Переключить видимость сообщений -ghost-gui-toggle-ghost-hearing-desc = Переключение между прослушиванием всех сообщений и прослушиванием только радиосвязи и ближайших сообщений. -ghost-gui-toggle-hearing-popup-on = Теперь вы слышите все сообщения. -ghost-gui-toggle-hearing-popup-off = Теперь вы можете слышать только радиосвязь и ближайшие сообщения. - - -ghost-target-window-title = Телепорт призрака -ghost-target-window-current-button = Телепорт в: { $name } - -ghost-roles-window-title = Роли призраков -ghost-roles-window-request-role-button = Запросить -ghost-roles-window-request-role-button-timer = Запросить ({ $time }сек.) -ghost-roles-window-follow-role-button = Следовать -ghost-roles-window-no-roles-available-label = В настоящее время нет доступных ролей призраков. - -ghost-return-to-body-title = Вернуться в тело -ghost-return-to-body-text = Вы возрождаетесь! Вернуться в свое тело? -ghost-roles-window-rules-footer = Кнопка станет доступна через { $time } секунд (эта задержка нужна, чтобы убедиться, что вы прочитали правила). \ No newline at end of file +ghost-gui-return-to-round-button = Вернуться в раунд \ No newline at end of file diff --git a/Resources/Locale/ru-RU/_white/ghost/ghost-respawn.ftl b/Resources/Locale/ru-RU/ghost/ghost-respawn.ftl similarity index 100% rename from Resources/Locale/ru-RU/_white/ghost/ghost-respawn.ftl rename to Resources/Locale/ru-RU/ghost/ghost-respawn.ftl diff --git a/Resources/Locale/ru-RU/prototypes/entities/structures/wallmounts/signs/signs.ftl b/Resources/Locale/ru-RU/prototypes/entities/structures/wallmounts/signs/signs.ftl index f01bb812d8..880d61a28a 100644 --- a/Resources/Locale/ru-RU/prototypes/entities/structures/wallmounts/signs/signs.ftl +++ b/Resources/Locale/ru-RU/prototypes/entities/structures/wallmounts/signs/signs.ftl @@ -1,96 +1,120 @@ ent-PaintingMonkey = картина обезьяны - .desc = Отвергни эволюцию, стань манки. + .desc = Отвергни эволюцию, стань бибизянкой. .suffix = { "" } ent-BaseSignDirectional = { ent-BaseSign } .desc = { ent-BaseSign.desc } - .suffix = { "" } + .suffix = { "Указатель" } ent-SignDirectionalBar = знак "бар" .desc = Указатель в сторону бара. - .suffix = { "" } + .suffix = { "Указатель" } ent-SignDirectionalSec = знак "служба безопасности" .desc = Указатель в сторону отдела службы безопасности. - .suffix = { "" } + .suffix = { "Указатель" } ent-SignDirectionalBrig = знак "бриг" .desc = Указатель в сторону брига. - .suffix = { "" } + .suffix = { "Указатель" } ent-SignDirectionalChapel = знак "церковь" .desc = Указатель в сторону церкви. - .suffix = { "" } + .suffix = { "Указатель" } ent-SignDirectionalChemistry = знак "химлаб" .desc = Указатель в сторону химической лаборатории. - .suffix = { "" } + .suffix = { "Указатель" } ent-SignDirectionalCryo = знак "крио" .desc = Указатель в сторону отдела криогеники. - .suffix = { "" } + .suffix = { "Указатель" } ent-SignDirectionalDorms = знак "жилой отсек" .desc = Указатель в сторону жилого отсека. - .suffix = { "" } + .suffix = { "Указатель" } ent-SignDirectionalEvac = знак "эвакуация" .desc = Указатель в сторону эвакуации. - .suffix = { "" } + .suffix = { "Указатель" } +ent-SignDirectionalExam = знак "медосмотр" + .desc = Указатель в сторону палаты медосмотра. + .suffix = { "Указатель" } ent-SignDirectionalBridge = знак "мостик" .desc = Указатель в сторону капитанского мостика. - .suffix = { "" } + .suffix = { "Указатель" } ent-SignDirectionalFood = знак "еда" .desc = Указатель в сторону кухни. - .suffix = { "" } + .suffix = { "Указатель" } ent-SignDirectionalGravity = знак "гравитация" .desc = Указатель в сторону генератора гравитации. - .suffix = { "" } + .suffix = { "Указатель" } ent-SignDirectionalHydro = знак "гидро" .desc = Указатель в сторону отдела гидропоники. - .suffix = { "" } -ent-SignDirectionalHop = знак "ГП" - .desc = Указатель в сторону офиса Главы персонала. - .suffix = { "" } + .suffix = { "Указатель" } +ent-SignDirectionalHop = знак "ХОП" + .desc = Указатель в сторону офиса главы персонала. + .suffix = { "Указатель" } ent-SignDirectionalMed = знак "медицинский отдел" .desc = Указатель в сторону медицинского отдела. - .suffix = { "" } + .suffix = { "Указатель" } ent-SignDirectionalSalvage = знак "утилизация" .desc = Указатель в сторону отдела утилизации обломков. - .suffix = { "" } + .suffix = { "Указатель" } ent-SignDirectionalJanitor = знак "уборщик" .desc = Указатель в сторону чулана уборщика. - .suffix = { "" } + .suffix = { "Указатель" } ent-SignDirectionalLibrary = знак "библиотека" .desc = Указатель в сторону библиотеки. - .suffix = { "" } + .suffix = { "Указатель" } ent-SignDirectionalEng = знак "инженерный отдел" .desc = Указатель в сторону инженерного отдела. - .suffix = { "" } + .suffix = { "Указатель" } +ent-SignDirectionalIcu = знак "отдел интенсивной терапии" + .desc = Указатель в сторону отдела интенсивной терапии. + .suffix = { "Указатель" } ent-SignDirectionalSci = знак "научный отдел" .desc = Указатель в сторону научного отдела. - .suffix = { "" } + .suffix = { "Указатель" } ent-SignDirectionalSolar = знак "солнечные панели" .desc = Указатель в сторону солнечных панелей. - .suffix = { "" } + .suffix = { "Указатель" } ent-SignDirectionalSupply = знак "отдел снабжения" .desc = Указатель в сторону отдела снабжения. - .suffix = { "" } + .suffix = { "Указатель" } ent-SignDirectionalWash = знак "уборная" .desc = Указатель в сторону уборной. - .suffix = { "" } + .suffix = { "Указатель" } ent-SignAi = знак "ИИ" - .desc = { ent-BaseSign.desc } - .suffix = { "" } + .desc = Знак, указывающий на ИИ + .suffix = { "Знак ВД" } +ent-SignAME = знак "ДАМ" + .desc = Знак, указывающий на ДАМ + .suffix = { "Знак ВД" } ent-SignArmory = знак "оружейная" .desc = Знак, указывающий на оружейную. - .suffix = { "" } + .suffix = { "Знак ВД" } ent-SignToolStorage = знак "склад инструментов" .desc = Знак, указывающий на склад инструментов. - .suffix = { "" } + .suffix = { "Знак ВД" } ent-SignAnomaly = знак "ксено-археология" .desc = Знак, указывающий на ксено-археологическую лабораторию. - .suffix = { "" } + .suffix = { "Знак ВД" } +ent-SignAnomaly2 = знак "лаборатория аномалий" + .desc = Знак, указывающий на лабораторию по исследованию аномалий. + .suffix = { "Знак ВД" } +ent-SignArrivals = знак "прибытие" + .desc = Знак, указывающий на прибытие. + .suffix = { "Знак ВД" } ent-SignAtmos = знак "атмос" .desc = Знак, указывающий на атмосферный отсек. - .suffix = { "" } + .suffix = { "Знак ВД" } ent-SignAtmosMinsky = знак "атмос" .desc = Знак, указывающий на атмосферный отсек. .suffix = { "" } ent-SignBar = знак "бар" .desc = Знак, указывающий на бар. - .suffix = { "" } + .suffix = { "Знак ВД" } +ent-SignBoxing = знак "ринг" + .desc = Знак, указывающий на ринг. + .suffix = { "Знак ВД" } +ent-SignBrig = знак "бриг" + .desc = Знак, указывающий на бриг. + .suffix = { "Знак ВД" } +ent-SignHydro = знак "гидропоника" + .desc = Знак, указывающий на гидропонику. + .suffix = { "Знак ВД" } ent-SignHydro1 = знак "гидропоника" .desc = Знак, указывающий на гидропонику. .suffix = { "" } @@ -102,43 +126,55 @@ ent-SignHydro3 = знак "гидропоника" .suffix = { "" } ent-SignLibrary = знак "библиотека" .desc = Знак, указывающий на библиотеку. - .suffix = { "" } + .suffix = { "Знак ВД" } ent-SignChapel = знак "церковь" .desc = Знак, указывающий на церковь. - .suffix = { "" } + .suffix = { "Знак ВД" } +ent-SignCaptain = знак "капитан" + .desc = Знак, указывающий на офис капитана. + .suffix = { "Знак ВД" } +ent-SignCryo = знак "криогеника" + .desc = Знак, указывающий на криокапсулы в медицинском отделе. + .suffix = { "Знак ВД" } +ent-SignHOP = знак "ХОП" + .desc = Знак, указывающий на офис главы персонала + .suffix = { "Знак ВД" } ent-SignHead = знак "глава" .desc = Знак, указывающий на офис главы отдела. - .suffix = { "" } + .suffix = { "Знак ВД" } ent-SignConference = знак "конференц-зал" .desc = Знак, указывающий на конференц-зал. - .suffix = { "" } + .suffix = { "Знак ВД" } ent-SignDrones = знак "дроны" .desc = Знак, указывающий на хранилище дронов. - .suffix = { "" } + .suffix = { "Знак ВД" } +ent-SignDorms = знак "дормы" + .desc = Знак, указывающий на дормы. + .suffix = { "Знак ВД" } ent-SignEngine = знак "двигатель суперматерии" .desc = Знак, указывающий на отсек двигателя суперматерии. - .suffix = { "" } + .suffix = { "Знак ВД" } ent-SignCloning = знак "клонирование" .desc = Знак, указывающий на отсек клонирования. - .suffix = { "" } + .suffix = { "Знак ВД" } ent-SignInterrogation = знак "допросная" .desc = Знак, указывающий на допросную. - .suffix = { "" } + .suffix = { "Знак ВД" } ent-SignSurgery = знак "операционная" .desc = Знак, указывающий на операционную. - .suffix = { "" } + .suffix = { "Знак ВД" } ent-SignTelecomms = знак "телекоммуникация" .desc = Знак, указывающий на отсек телекоммуникаций. - .suffix = { "" } + .suffix = { "Знак ВД" } ent-SignCargo = знак "карго" .desc = Знак, указывающий на отдел снабжения. - .suffix = { "" } + .suffix = { "Знак ВД" } ent-SignCargoDock = знак "карго док" .desc = Знак, указывающий на док отдела снабжения. - .suffix = { "" } + .suffix = { "Знак ВД" } ent-SignChem = знак "хим лаб" .desc = Знак, указывающий на химическую лабораторию. - .suffix = { "" } + .suffix = { "Знак ВД" } ent-SignChemistry1 = знак "хим лаб" .desc = Знак, указывающий на химическую лабораторию. .suffix = { "" } @@ -147,34 +183,100 @@ ent-SignChemistry2 = знак "хим лаб" .suffix = { "" } ent-SignEscapePods = знак "капсулы" .desc = Знак, указывающий на спасательные капсулы. - .suffix = { "" } + .suffix = { "Знак ВД" } ent-SignShipDock = знак "стыковочный док" .desc = Знак, указывающий на стыковочный док. - .suffix = { "" } + .suffix = { "Знак ВД" } ent-SignEngineering = знак "инженерия" .desc = Знак, указывающий на инженерный отдел. - .suffix = { "" } + .suffix = { "Знак ВД" } +ent-SignEquip = знак "снаряжение" + .desc = Знак, указывающий на шкафчики и стойки со снаряжением. + .suffix = { "Знак ВД" } +ent-SignEvac = знак "эвакуация" + .desc = Знак, указывающий на эвакуацию. + .suffix = { "Знак ВД" } +ent-SignGenetics = знак "генетика" + .desc = Знак, указывающий на лабораторию генетики. + .suffix = { "Знак ВД" } +ent-SignGate = знак "гейт-вей" + .desc = Знак, указывающий на гейт-вей. + .suffix = { "Знак ВД" } ent-SignEVA = знак "EVA" .desc = Знак, указывающий на хранилище скафандров. - .suffix = { "" } + .suffix = { "Знак ВД" } ent-SignGravity = знак "гравитация" .desc = Знак, указывающий на отсек генератора гравитации. - .suffix = { "" } + .suffix = { "Знак ВД" } ent-SignMedical = знак "мед отсек" .desc = Знак, указывающий на медицинский отдел. - .suffix = { "" } + .suffix = { "Знак ВД" } ent-SignMorgue = знак "морг" .desc = Знак, указывающий на морг. - .suffix = { "" } + .suffix = { "Знак ВД" } ent-SignPrison = знак "тюрьма" .desc = Знак, указывающий на тюрьму. - .suffix = { "" } + .suffix = { "Знак ВД" } ent-SignRND = знак "РнД" .desc = Знак, указывающий на отдел исследования и разработки. - .suffix = { "" } + .suffix = { "Знак ВД" } ent-SignScience = знак "наука" .desc = Знак, указывающий на научный отсек. - .suffix = { "" } + .suffix = { "Знак ВД" } +ent-SignLawyer = знак "юрист" + .desc = Знак, указывающий на офис юриста. + .suffix = { "Знак ВД" } +ent-SignCourt = знак "суд" + .desc = Знак, указывающий на суд. + .suffix = { "Знак ВД" } +ent-SignNews = знак "репортёр" + .desc = Знак, указывающий на офис репортёра. + .suffix = { "Знак ВД" } +ent-SignNukeVault = знак "хранилище ядерной бомбы" + .desc = Знак, указывающий на хранилище ядерной бомбы и драгоценностей. + .suffix = { "Знак ВД" } +ent-SignPA = знак "УЧ" + .desc = Знак, указывающий на ускоритель частиц. + .suffix = { "Знак ВД" } +ent-SignSMES = знак "СМЭС" + .desc = Знак, указывающий на СМЭСы. + .suffix = { "Знак ВД" } +ent-SignSecurity = знак "служба безопасности" + .desc = Знак, указывающий на службу безопасности. + .suffix = { "Знак ВД" } +ent-SignSolar = знак "солнечные панели" + .desc = Знак, указывающий на солнечные панели. + .suffix = { "Знак ВД" } +ent-SignStorage = знак "склад" + .desc = Знак, указывающий на склад. + .suffix = { "Знак ВД" } +ent-SignTheatre = знак "театр" + .desc = Знак, указывающий на театр. + .suffix = { "Знак ВД" } +ent-SignToilet = знак "уборная" + .desc = Знак, указывающий на уборную. + .suffix = { "Знак ВД" } +ent-SignArcade = знак "аркадные игры" + .desc = Знак, указывающий на аркадные игры. + .suffix = { "Знак ВД" } +ent-SignBarbershop = знак "парикмахерская" + .desc = Знак, указывающий на парикмахерскую. + .suffix = { "Знак ВД" } +ent-SignJanitor = знак "уборщик" + .desc = Знак, указывающий на чулан уборщика. + .suffix = { "Знак ВД" } +ent-SignLaundromat = знак "прачечная" + .desc = Знак, указывающий на прачечную. + .suffix = { "Знак ВД" } +ent-SignPsychology = знак "психолог" + .desc = Знак, указывающий на психолога. + .suffix = { "Знак ВД" } +ent-SignReception = знак "ресепшн" + .desc = Знак, указывающий на ресепшн. + .suffix = { "Знак ВД" } +ent-SignSalvage = знак "утилизаторы" + .desc = Знак, указывающий на утилизаторов. + .suffix = { "Знак ВД" } ent-SignScience1 = знак "наука" .desc = Знак, указывающий на научный отсек. .suffix = { "" } @@ -183,22 +285,22 @@ ent-SignScience2 = знак "наука" .suffix = { "" } ent-SignToxins = знак "токсины" .desc = Знак, указывающий на лабораторию токсинов. - .suffix = { "" } + .suffix = { "Знак ВД" } ent-SignToxins2 = знак "токсины" .desc = Знак, указывающий на лабораторию токсинов. - .suffix = { "" } + .suffix = { "Знак ВД" } ent-SignBridge = знак "мостик" .desc = Знак, указывающий на мостик. - .suffix = { "" } + .suffix = { "Знак ВД" } ent-SignBio = знак "био лаб" .desc = Знак, указывающий на биологическую лабораторию. .suffix = { "" } ent-SignBiohazard = знак "биологическая угроза" .desc = Знак, предупреждающий о биологической опасности. .suffix = { "" } -ent-SignCanisters = знак "газовые баллоны" +ent-SignCanisters = знак "газовые канистры" .desc = Знак, предупреждающий о канистрах под давлением. - .suffix = { "" } + .suffix = { "Знак ВД" } ent-SignCorrosives = предупреждающий знак "едкие вещества" .desc = Знак, предупреждающий об опасности едких веществ. .suffix = { "" } @@ -209,17 +311,23 @@ ent-SignDanger = предупреждающий знак "опасно" .desc = Знак, предупреждающий о какой-то опасности. .suffix = { "" } ent-SignDisposalSpace = знак "мусоросброс" - .desc = Знак, указывающий на зону утилизации. - .suffix = { "" } + .desc = Знак, указывающий на зону мусоросброса. + .suffix = { "Знак ВД" } ent-SignDoors = знак "двери" .desc = Знак, указывающий на двери. - .suffix = { "" } + .suffix = { "Знак ВД" } ent-SignElectrical = знак "высокое напряжение" .desc = Знак, предупреждающий о высоком напряжении. .suffix = { "" } ent-SignExamroom = знак "медосмотр" .desc = Знак, указывающий на кабинет медицинского осмотра. - .suffix = { "" } + .suffix = { "Знак ВД" } +ent-SignKitchen = знак "кухня" + .desc = Знак, указывающий на кухню. + .suffix = { "Знак ВД" } +ent-SignCheckpoint = знак "КПП" + .desc = Знак, указывающий на контрольно-пропускной пункт. + .suffix = { "Знак ВД" } ent-SignExplosives = предупреждающий знак "взрывоопасно" .desc = Знак, предупреждающий об опасности взрывоопасных материалов. .suffix = { "" } @@ -237,13 +345,13 @@ ent-SignMagnetics = предупреждающий знак "магнитное .suffix = { "" } ent-SignMail = знак "почта" .desc = Знак, указывающий на почту. - .suffix = { "" } + .suffix = { "Знак ВД" } ent-SignMemetic = предупреждающий знак "меметическая угроза" .desc = Знак, предупреждающий о меметической угрозе. .suffix = { "" } ent-SignMinerDock = знак "шахтёрский док" .desc = Знак, указывающий на шахтёрский док. - .suffix = { "" } + .suffix = { "Знак ВД" } ent-SignNosmoking = знак "не курить" .desc = Знак, предупреждающий о запрете курения в непосредственной близости. .suffix = { "" } @@ -255,7 +363,7 @@ ent-SignRadiation = предупреждающий знак "радиоакти .suffix = { "" } ent-SignRobo = знак "робототехника" .desc = Знак, указывающий на отдел робототехники. - .suffix = { "" } + .suffix = { "Знак ВД" } ent-SignSecure = знак "охрана" .desc = Знак, предупреждающий что территория впереди является охраняемой зоной. .suffix = { "" } @@ -264,7 +372,7 @@ ent-SignSecurearea = знак "охраняемая территория" .suffix = { "" } ent-SignShield = знак "щит" .desc = Знак со щитом. - .suffix = { "" } + .suffix = { "Знак ВД" } ent-SignOxidants = предупреждающий знак "окислитель" .desc = Знак, предупреждающий об опасности окисляющих веществ. .suffix = { "" } @@ -273,10 +381,10 @@ ent-SignShock = знак "высокое напряжение" .suffix = { "" } ent-SignSpace = знак "космос" .desc = Знак, предупреждающий о том, что впереди - только холодное, пустое пространство. - .suffix = { "" } + .suffix = { "Знак ВД" } ent-SignVirology = знак "вирусология" .desc = Знак, указывающий на лабораторию вирусологии. - .suffix = { "" } + .suffix = { "Знак ВД" } ent-SignXenobio = знак "ксенобиология" .desc = Знак, указывающий на лабораторию ксенобиологии. .suffix = { "" } @@ -285,10 +393,10 @@ ent-SignXenobio2 = знак "ксенобиология" .suffix = { "" } ent-SignXenolab = знак "ксенолаборатория" .desc = Знак, указывающий на лабораторию ксенобиологии. - .suffix = { "" } + .suffix = { "Знак ВД" } ent-SignZomlab = знак "зомби-лаборатория" .desc = Знак, указывающий на лабораторию зомби. - .suffix = { "" } + .suffix = { "Знак ВД" } ent-SignSecureMedRed = красный знак "охрана" .desc = Знак, предупреждающий что территория впереди является охраняемой зоной. .suffix = { "" } @@ -364,9 +472,6 @@ ent-SignSomethingOld = старый плакат ent-SignSomethingOld2 = старый плакат .desc = Выглядит так, будто планета разламывается врезающейся в неё станцией. Страшновато. .suffix = { "" } -ent-SignSecurity = знак "служба безопасности" - .desc = Знак, изображающий эмблему службы безопасности. - .suffix = { "" } ent-SignPlaque = золотая табличка .desc = Престижная золотая табличка. .suffix = { "" } diff --git a/Resources/Locale/ru-RU/store/sales.ftl b/Resources/Locale/ru-RU/store/sales.ftl new file mode 100644 index 0000000000..93f1798fe7 --- /dev/null +++ b/Resources/Locale/ru-RU/store/sales.ftl @@ -0,0 +1,2 @@ +store-sales-amount = [СКИДКА] { $amount }%! +store-sales-over = [Скидка закончилась] diff --git a/Resources/Locale/ru-RU/tiles/tiles.ftl b/Resources/Locale/ru-RU/tiles/tiles.ftl index fa41b406e1..9f69120c97 100644 --- a/Resources/Locale/ru-RU/tiles/tiles.ftl +++ b/Resources/Locale/ru-RU/tiles/tiles.ftl @@ -126,4 +126,30 @@ tiles-mowed-astro-grass = астро-газон tiles-jungle-astro-grass = астро-трава джунглей tiles-astro-ice = астро-лёд tiles-astro-snow = астро-снег -tiles-wood-large = большой деревянный пол \ No newline at end of file +tiles-wood-large = большой деревянный пол +tiles-asteroid-coarse = грубая астероидная почва +tiles-asteroid-coarse-dug = вырытая грубая астероидная почва +tiles-asteroid-gravel = астероидный гравий +tiles-bedrock-floor = коренная порода +tiles-glass-frame-floor = обрамленное стекло +tiles-reinforced-glass-frame-floor = обрамленное армированное стекло +tiles-linoleum-dark-floor = темный линолеумный пол +tiles-linoleum-grey-floor = серый линолеумный пол +tiles-linoleum-white-floor = светлый линолеумный пол +tiles-plastic-blue-floor = синие пластиковые плиты +tiles-plastic-red-floor = красные пластиковые плиты +tiles-plastic-green-floor = зеленые пластиковые плиты +tiles-plastic-yellow-floor = желтые пластиковые плиты +tiles-steel-blue-floor = синие стальные плиты +tiles-steel-red-floor = красные стальные плиты +tiles-steel-green-floor = зеленые стальные плиты +tiles-steel-yellow-floor = желтые стальные плиты +tiles-plating-diagonal-NE-floor = диагональное покрытие СВ +tiles-plating-diagonal-NW-floor = диагональное покрытие СЗ +tiles-plating-diagonal-SE-floor = диагональное покрытие ЮВ +tiles-plating-diagonal-SW-floor = диагональное покрытие ЮЗ +tiles-shielding-floor = экранирующие плиты +tiles-shielding-mono-floor = экранирующие моно плиты +tiles-sterile = стерильные плиты +tiles-sterile-dark = стерильные темные плиты +tiles-sundie-shuttle-floor = синди пол шаттла diff --git a/Resources/Maps/Dungeon/experiment.yml b/Resources/Maps/Dungeon/experiment.yml index 8449abf932..590692a6bb 100644 --- a/Resources/Maps/Dungeon/experiment.yml +++ b/Resources/Maps/Dungeon/experiment.yml @@ -7444,13 +7444,6 @@ entities: - type: Transform pos: 32.5,14.5 parent: 1653 -- proto: MachineTraversalDistorter - entities: - - uid: 1058 - components: - - type: Transform - pos: 34.5,22.5 - parent: 1653 - proto: MaintenanceFluffSpawner entities: - uid: 867 diff --git a/Resources/Maps/Dungeon/lava_brig.yml b/Resources/Maps/Dungeon/lava_brig.yml index 071083c291..ebf267a9c2 100644 --- a/Resources/Maps/Dungeon/lava_brig.yml +++ b/Resources/Maps/Dungeon/lava_brig.yml @@ -1,13004 +1,13004 @@ -meta: - format: 6 - postmapinit: false -tilemap: - 0: Space - 15: FloorBasalt - 29: FloorDark - 33: FloorDarkMini - 34: FloorDarkMono - 42: FloorElevatorShaft - 54: FloorGreenCircuit - 62: FloorLino - 77: FloorReinforced - 82: FloorShuttleOrange - 89: FloorSteel - 99: FloorSteelMini - 100: FloorSteelMono - 104: FloorTechMaint - 108: FloorWhite - 112: FloorWhiteMini - 118: FloorWood - 121: Plating -entities: -- proto: "" - entities: - - uid: 588 - components: - - type: MetaData - - type: Transform - - type: Map - - type: PhysicsMap - - type: Broadphase - - type: OccluderTree - - type: MapGrid - chunks: - -1,-1: - ind: -1,-1 - tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAA - version: 6 - 0,0: - ind: 0,0 - tiles: WQAAAAADWQAAAAABWQAAAAACWQAAAAADWQAAAAACWQAAAAABeQAAAAAADwAAAAAAHQAAAAABDwAAAAAAeQAAAAAAWQAAAAACWQAAAAACWQAAAAACWQAAAAACWQAAAAACWQAAAAACWQAAAAABWQAAAAABWQAAAAAAWQAAAAADWQAAAAADeQAAAAAADwAAAAAADwAAAAAADwAAAAAAeQAAAAAAWQAAAAABWQAAAAACWQAAAAABWQAAAAACWQAAAAAAWQAAAAADWQAAAAADWQAAAAABWQAAAAADWQAAAAACWQAAAAABIgAAAAABHQAAAAABDwAAAAAAHQAAAAACIgAAAAAAWQAAAAABWQAAAAACWQAAAAABWQAAAAADWQAAAAADaAAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAeQAAAAAADwAAAAAADwAAAAAADwAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAeQAAAAAADwAAAAAAHQAAAAACDwAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAHQAAAAABHQAAAAABHQAAAAACDwAAAAAADwAAAAAADwAAAAAADwAAAAAADwAAAAAAHQAAAAABHQAAAAADHQAAAAABUgAAAAAAZAAAAAACWQAAAAAAZAAAAAACeQAAAAAAHQAAAAAAIgAAAAADeQAAAAAADwAAAAAADwAAAAAADwAAAAAADwAAAAAADwAAAAAAeQAAAAAAIgAAAAACHQAAAAACUgAAAAAAYwAAAAACYwAAAAAAYwAAAAAAeQAAAAAAHQAAAAABIgAAAAACeQAAAAAADwAAAAAADwAAAAAADwAAAAAADwAAAAAADwAAAAAAeQAAAAAAIgAAAAABHQAAAAADUgAAAAAAYwAAAAACYwAAAAAAYwAAAAAAWQAAAAACHQAAAAAAIgAAAAADeQAAAAAADwAAAAAADwAAAAAADwAAAAAADwAAAAAADwAAAAAAeQAAAAAAIgAAAAAAHQAAAAABUgAAAAAAYwAAAAADYwAAAAABYwAAAAABeQAAAAAAHQAAAAADHQAAAAADHQAAAAACDwAAAAAADwAAAAAADwAAAAAADwAAAAAADwAAAAAAHQAAAAABHQAAAAABHQAAAAAAUgAAAAAAZAAAAAABWQAAAAABZAAAAAACeQAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAHQAAAAAAHQAAAAABeQAAAAAAHQAAAAADeQAAAAAAHQAAAAADHQAAAAADUgAAAAAAaAAAAAAAeQAAAAAAdgAAAAADdgAAAAABdgAAAAADdgAAAAAAdgAAAAADUgAAAAAAHQAAAAABHQAAAAACHQAAAAACHQAAAAADHQAAAAADHQAAAAADHQAAAAAAUgAAAAAAaAAAAAAAeQAAAAAAdgAAAAABdgAAAAACdgAAAAAAdgAAAAACdgAAAAACUgAAAAAAHQAAAAADHQAAAAACDwAAAAAADwAAAAAADwAAAAAAHQAAAAACHQAAAAACUgAAAAAAaAAAAAAAeQAAAAAAdgAAAAACdgAAAAADdgAAAAADdgAAAAACdgAAAAADUgAAAAAAHQAAAAADHQAAAAACHQAAAAABHQAAAAACHQAAAAACHQAAAAADHQAAAAABUgAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAdgAAAAABUgAAAAAA - version: 6 - 0,1: - ind: 0,1 - tiles: HQAAAAAAHQAAAAADeQAAAAAAHQAAAAACeQAAAAAAHQAAAAADHQAAAAAAUgAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAeQAAAAAAdgAAAAACUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAHQAAAAADHQAAAAAAHQAAAAADHQAAAAADHQAAAAABUgAAAAAAWQAAAAAAWQAAAAABWQAAAAACWQAAAAAAWQAAAAAAUgAAAAAAaAAAAAAAeQAAAAAAWQAAAAABaAAAAAAAHQAAAAACeQAAAAAADwAAAAAAeQAAAAAAHQAAAAACUgAAAAAAWQAAAAADYwAAAAAAYwAAAAABYwAAAAADWQAAAAABUgAAAAAAaAAAAAAAaAAAAAAAWQAAAAAAeQAAAAAAHQAAAAABDwAAAAAADwAAAAAADwAAAAAAHQAAAAAAUgAAAAAAWQAAAAAAYwAAAAABYwAAAAACYwAAAAACWQAAAAADUgAAAAAAWQAAAAACWQAAAAADWQAAAAABWQAAAAAAHQAAAAAAeQAAAAAADwAAAAAAeQAAAAAAHQAAAAAAUgAAAAAAWQAAAAABYwAAAAABYwAAAAABYwAAAAABWQAAAAADUgAAAAAAaAAAAAAAaAAAAAAAWQAAAAAAWQAAAAABHQAAAAADHQAAAAABHQAAAAACHQAAAAAAHQAAAAABUgAAAAAAWQAAAAAAWQAAAAABWQAAAAAAWQAAAAACWQAAAAABUgAAAAAAaAAAAAAAaAAAAAAAWQAAAAABWQAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAHQAAAAAAHQAAAAADHQAAAAAAUgAAAAAAaAAAAAAAaAAAAAAAeQAAAAAAUgAAAAAAcAAAAAACcAAAAAACcAAAAAABUgAAAAAAWQAAAAADWQAAAAADZAAAAAAAUgAAAAAAHQAAAAAADwAAAAAAHQAAAAACUgAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAUgAAAAAAcAAAAAADcAAAAAACcAAAAAADUgAAAAAAWQAAAAAAWQAAAAABZAAAAAABUgAAAAAAHQAAAAACDwAAAAAAHQAAAAAAUgAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAUgAAAAAAcAAAAAADcAAAAAAAcAAAAAAAUgAAAAAAWQAAAAABWQAAAAABWQAAAAABUgAAAAAAHQAAAAACDwAAAAAAHQAAAAABUgAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAUgAAAAAAcAAAAAADcAAAAAADcAAAAAABUgAAAAAAZAAAAAACWQAAAAABWQAAAAACUgAAAAAAHQAAAAADHQAAAAACHQAAAAADUgAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAUgAAAAAAcAAAAAACcAAAAAACcAAAAAADUgAAAAAAZAAAAAACWQAAAAAAWQAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAHQAAAAAAHQAAAAABDwAAAAAADwAAAAAADwAAAAAADwAAAAAADwAAAAAADwAAAAAADwAAAAAADwAAAAAADwAAAAAAHQAAAAADHQAAAAACUgAAAAAAWQAAAAABWQAAAAACHQAAAAACHQAAAAABHQAAAAAADwAAAAAADwAAAAAADwAAAAAADwAAAAAADwAAAAAADwAAAAAADwAAAAAAHQAAAAADHQAAAAADHQAAAAAAUgAAAAAAaAAAAAAAeQAAAAAA - version: 6 - 0,-1: - ind: 0,-1 - tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAA - version: 6 - -1,0: - ind: -1,0 - tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAA - version: 6 - -1,1: - ind: -1,1 - tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAA - version: 6 - 1,-1: - ind: 1,-1 - tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAA - version: 6 - 1,0: - ind: 1,0 - tiles: WQAAAAABUgAAAAAAPgAAAAAAPgAAAAAAPgAAAAAAPgAAAAAAeQAAAAAAHQAAAAACHQAAAAAAHQAAAAABHQAAAAADHQAAAAABHQAAAAADHQAAAAADHQAAAAACHQAAAAADWQAAAAADUgAAAAAAPgAAAAAAPgAAAAAAPgAAAAAAPgAAAAAAeQAAAAAAHQAAAAAAHQAAAAADHQAAAAABHQAAAAACHQAAAAABHQAAAAADHQAAAAACHQAAAAABHQAAAAABWQAAAAAAUgAAAAAAPgAAAAAAPgAAAAAAPgAAAAAAPgAAAAAAIgAAAAACHQAAAAACHQAAAAACHQAAAAACHQAAAAABHQAAAAACHQAAAAACHQAAAAAAHQAAAAAAHQAAAAABaAAAAAAAUgAAAAAAPgAAAAAAPgAAAAAAPgAAAAAAPgAAAAAAeQAAAAAAHQAAAAADHQAAAAAAHQAAAAACHQAAAAAAHQAAAAADHQAAAAADHQAAAAADHQAAAAAAHQAAAAABaAAAAAAAUgAAAAAAPgAAAAAAPgAAAAAAPgAAAAAAPgAAAAAAeQAAAAAAHQAAAAABHQAAAAABHQAAAAACHQAAAAAAHQAAAAABHQAAAAACHQAAAAAAHQAAAAACHQAAAAADUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAWQAAAAABWQAAAAACWQAAAAACeQAAAAAAZAAAAAAAWQAAAAABZAAAAAAAUgAAAAAATQAAAAAATQAAAAAATQAAAAAATQAAAAAATQAAAAAATQAAAAAATQAAAAAATQAAAAAAWQAAAAAAWQAAAAABWQAAAAAAeQAAAAAAYwAAAAAAYwAAAAAAYwAAAAABUgAAAAAATQAAAAAAeQAAAAAAIgAAAAACeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAACWQAAAAACWQAAAAAAWQAAAAADYwAAAAADYwAAAAAAYwAAAAADUgAAAAAATQAAAAAAeQAAAAAAKgAAAAAAeQAAAAAAKgAAAAAAKgAAAAAAKgAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAABeQAAAAAAYwAAAAACYwAAAAABYwAAAAADUgAAAAAATQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAIgAAAAABeQAAAAAAeQAAAAAAWQAAAAADWQAAAAAAWQAAAAAAeQAAAAAAZAAAAAADWQAAAAABZAAAAAACUgAAAAAATQAAAAAATQAAAAAATQAAAAAATQAAAAAATQAAAAAATQAAAAAATQAAAAAATQAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAWQAAAAABWQAAAAAAWQAAAAAAWQAAAAADWQAAAAACWQAAAAACWQAAAAADUgAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAUgAAAAAAWQAAAAABYwAAAAACYwAAAAACYwAAAAAAYwAAAAADYwAAAAACWQAAAAAAUgAAAAAAaAAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAWQAAAAAAeQAAAAAAUgAAAAAAWQAAAAAAYwAAAAABYwAAAAADYwAAAAABYwAAAAACYwAAAAAAWQAAAAACUgAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAADaAAAAAAAUgAAAAAAWQAAAAACYwAAAAABYwAAAAABYwAAAAADYwAAAAAAYwAAAAABWQAAAAAAUgAAAAAAaAAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAWQAAAAAAeQAAAAAAUgAAAAAA - version: 6 - 1,1: - ind: 1,1 - tiles: WQAAAAABWQAAAAACWQAAAAACWQAAAAAAWQAAAAABWQAAAAAAWQAAAAACUgAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAaAAAAAAAUgAAAAAAWQAAAAACWQAAAAABWQAAAAABWQAAAAAAWQAAAAADUgAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAeQAAAAAAUgAAAAAAWQAAAAACWQAAAAACaAAAAAAAUgAAAAAAWQAAAAADYwAAAAACYwAAAAABYwAAAAAAWQAAAAABUgAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAUgAAAAAAWQAAAAADYwAAAAADWQAAAAACUgAAAAAAWQAAAAADYwAAAAADYwAAAAADYwAAAAADWQAAAAABUgAAAAAAeQAAAAAAWQAAAAABeQAAAAAAWQAAAAABeQAAAAAAUgAAAAAAWQAAAAAAYwAAAAABWQAAAAADUgAAAAAAWQAAAAAAYwAAAAAAYwAAAAACYwAAAAACWQAAAAADUgAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAeQAAAAAAUgAAAAAAWQAAAAADYwAAAAADWQAAAAACUgAAAAAAWQAAAAACWQAAAAACWQAAAAADWQAAAAADWQAAAAACUgAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAeQAAAAAAUgAAAAAAWQAAAAACWQAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAWQAAAAADWQAAAAABWQAAAAAAUgAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAUgAAAAAAaAAAAAAAaAAAAAAAeQAAAAAAUgAAAAAAWQAAAAABWQAAAAACZAAAAAACUgAAAAAAWQAAAAABWQAAAAAAWQAAAAAAUgAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAUgAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAUgAAAAAAWQAAAAACWQAAAAADZAAAAAABUgAAAAAAWQAAAAACWQAAAAAAWQAAAAACUgAAAAAAWQAAAAACWQAAAAAAWQAAAAACUgAAAAAAWQAAAAADWQAAAAAAWQAAAAADUgAAAAAAWQAAAAADWQAAAAACWQAAAAADUgAAAAAAZAAAAAADWQAAAAACZAAAAAADUgAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAUgAAAAAAaAAAAAAAaAAAAAAAeQAAAAAAUgAAAAAAZAAAAAAAWQAAAAADWQAAAAACUgAAAAAAZAAAAAABWQAAAAABZAAAAAABUgAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAUgAAAAAAaAAAAAAAeQAAAAAAaAAAAAAAUgAAAAAAZAAAAAADWQAAAAADWQAAAAABUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAWQAAAAAAWQAAAAACWQAAAAABWQAAAAADWQAAAAACWQAAAAAAWQAAAAACWQAAAAAAWQAAAAACWQAAAAACWQAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAA - version: 6 - -1,2: - ind: -1,2 - tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAA - version: 6 - -1,3: - ind: -1,3 - tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - version: 6 - 0,2: - ind: 0,2 - tiles: HQAAAAACHQAAAAACDwAAAAAADwAAAAAADwAAAAAADwAAAAAADwAAAAAADwAAAAAADwAAAAAADwAAAAAADwAAAAAAHQAAAAADHQAAAAAAUgAAAAAAaAAAAAAAaAAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAaAAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAUgAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAUgAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAWQAAAAADaAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAUgAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAeQAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAHQAAAAAADwAAAAAADwAAAAAADwAAAAAADwAAAAAADwAAAAAAHQAAAAAAUgAAAAAAHQAAAAABTQAAAAAATQAAAAAATQAAAAAATQAAAAAATQAAAAAAHQAAAAABUgAAAAAAHQAAAAAADwAAAAAADwAAAAAADwAAAAAADwAAAAAADwAAAAAAHQAAAAAAUgAAAAAAHQAAAAAATQAAAAAANgAAAAAANgAAAAAANgAAAAAATQAAAAAAHQAAAAAAUgAAAAAAHQAAAAACDwAAAAAADwAAAAAADwAAAAAADwAAAAAADwAAAAAAHQAAAAACUgAAAAAAHQAAAAAATQAAAAAATQAAAAAATQAAAAAATQAAAAAATQAAAAAAHQAAAAACUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAADwAAAAAADwAAAAAAeQAAAAAAIgAAAAABeQAAAAAADwAAAAAADwAAAAAAUgAAAAAAbAAAAAACbAAAAAAAbAAAAAAAbAAAAAAAbAAAAAADbAAAAAABbAAAAAABUgAAAAAADwAAAAAADwAAAAAADwAAAAAAHQAAAAAADwAAAAAADwAAAAAADwAAAAAAUgAAAAAAbAAAAAABbAAAAAABeQAAAAAAbAAAAAAAeQAAAAAAbAAAAAABbAAAAAADUgAAAAAAeQAAAAAADwAAAAAADwAAAAAADwAAAAAADwAAAAAADwAAAAAAeQAAAAAAUgAAAAAAIgAAAAABIgAAAAABIgAAAAACaAAAAAAAIgAAAAADIgAAAAACIgAAAAABUgAAAAAAIgAAAAAAHQAAAAACDwAAAAAADwAAAAAADwAAAAAAHQAAAAAAIgAAAAABUgAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAUgAAAAAAeQAAAAAADwAAAAAADwAAAAAADwAAAAAADwAAAAAADwAAAAAAeQAAAAAAUgAAAAAAIgAAAAACIgAAAAAAIgAAAAABaAAAAAAAIgAAAAABIgAAAAACIgAAAAAAUgAAAAAADwAAAAAADwAAAAAADwAAAAAAHQAAAAADDwAAAAAADwAAAAAADwAAAAAAUgAAAAAAIgAAAAAAIgAAAAAAIgAAAAACaAAAAAAAIgAAAAAAIgAAAAACIgAAAAADUgAAAAAA - version: 6 - 0,3: - ind: 0,3 - tiles: DwAAAAAADwAAAAAAeQAAAAAAIgAAAAAAeQAAAAAADwAAAAAADwAAAAAAUgAAAAAAIgAAAAACIgAAAAAAIgAAAAAAaAAAAAAAIgAAAAABIgAAAAACIgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - version: 6 - 1,2: - ind: 1,2 - tiles: aAAAAAAAaAAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAYwAAAAACYwAAAAADYwAAAAABeQAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAUgAAAAAAHQAAAAACHQAAAAADHQAAAAACTQAAAAAATQAAAAAATQAAAAAATQAAAAAATQAAAAAAYwAAAAACYwAAAAAAYwAAAAABWQAAAAACaAAAAAAAaAAAAAAAaAAAAAAAUgAAAAAAHQAAAAACHQAAAAABHQAAAAABTQAAAAAATQAAAAAATQAAAAAATQAAAAAATQAAAAAAYwAAAAADYwAAAAADYwAAAAADeQAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAUgAAAAAAHQAAAAADHQAAAAABHQAAAAABTQAAAAAATQAAAAAATQAAAAAATQAAAAAATQAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAWQAAAAACWQAAAAAAWQAAAAAAWQAAAAABWQAAAAADWQAAAAADWQAAAAAAUgAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAUgAAAAAAWQAAAAACYwAAAAABYwAAAAACYwAAAAABYwAAAAADYwAAAAAAWQAAAAAAUgAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAUgAAAAAAWQAAAAAAWQAAAAABWQAAAAABWQAAAAACWQAAAAAAWQAAAAAAWQAAAAADUgAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAUgAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAWQAAAAACYwAAAAAAYwAAAAADYwAAAAADUgAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAUgAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAWQAAAAADYwAAAAABYwAAAAABYwAAAAACUgAAAAAAaAAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAaAAAAAAAUgAAAAAAWQAAAAACWQAAAAADWQAAAAABWQAAAAACYwAAAAADYwAAAAABYwAAAAACUgAAAAAAaAAAAAAAWQAAAAADeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAACaAAAAAAAUgAAAAAAWQAAAAADWQAAAAADWQAAAAACWQAAAAADWQAAAAACWQAAAAADWQAAAAADUgAAAAAAaAAAAAAAWQAAAAABaAAAAAAAaAAAAAAAaAAAAAAAWQAAAAAAaAAAAAAAUgAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAACIQAAAAABIQAAAAADWQAAAAACUgAAAAAAaAAAAAAAWQAAAAADeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAAAaAAAAAAAUgAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAWQAAAAABIQAAAAAAIQAAAAABWQAAAAABUgAAAAAA - version: 6 - 1,3: - ind: 1,3 - tiles: aAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAUgAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAWQAAAAABWQAAAAAAWQAAAAAAWQAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - version: 6 - 2,-1: - ind: 2,-1 - tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - version: 6 - 2,0: - ind: 2,0 - tiles: HQAAAAAAHQAAAAABWQAAAAACUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHQAAAAABHQAAAAACWQAAAAABUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHQAAAAACHQAAAAACWQAAAAABUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHQAAAAAAHQAAAAADWQAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHQAAAAACHQAAAAAAWQAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATQAAAAAATQAAAAAATQAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIgAAAAADeQAAAAAATQAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKgAAAAAAeQAAAAAATQAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAATQAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATQAAAAAATQAAAAAATQAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - version: 6 - 2,1: - ind: 2,1 - tiles: UgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWQAAAAABWQAAAAACWQAAAAADUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYwAAAAAAYwAAAAABWQAAAAADUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYwAAAAADYwAAAAABWQAAAAABUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYwAAAAABYwAAAAAAWQAAAAABUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWQAAAAACWQAAAAABWQAAAAACUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIgAAAAACHQAAAAAAIgAAAAADUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIgAAAAACHQAAAAACIgAAAAADUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHQAAAAABHQAAAAADHQAAAAADUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIgAAAAABIgAAAAACIgAAAAADUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHQAAAAAAHQAAAAADHQAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - version: 6 - 2,2: - ind: 2,2 - tiles: UgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATQAAAAAAHQAAAAADHQAAAAABUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIgAAAAABeQAAAAAAHQAAAAADUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATQAAAAAAHQAAAAAAHQAAAAADUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - version: 6 - 2,3: - ind: 2,3 - tiles: UgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - version: 6 - - type: Gravity - gravityShakeSound: !type:SoundPathSpecifier - path: /Audio/Effects/alert.ogg - - type: DecalGrid - chunkCollection: - version: 2 - nodes: - - node: - color: '#52B4E996' - id: BotGreyscale - decals: - 680: 30,25 - 681: 30,24 - 682: 28,27 - 683: 28,27 - 684: 28,28 - 685: 28,28 - 686: 30,25 - 687: 30,24 - - node: - color: '#DE3A3A96' - id: BotGreyscale - decals: - 478: 32,25 - 479: 32,24 - 480: 34,25 - 481: 34,24 - 482: 16,28 - 483: 18,28 - 484: 18,27 - 485: 16,27 - 486: 14,25 - 487: 14,24 - 488: 12,27 - 489: 12,28 - 748: 26,7 - 749: 32,7 - 750: 29,9 - 836: 6,2 - 837: 10,2 - 940: 1,9 - 941: 1,8 - 942: 1,7 - 943: 9,9 - 944: 9,8 - 945: 9,7 - 946: 20,10 - 947: 14,10 - 948: 14,6 - 949: 20,6 - 950: 22,6 - 951: 22,10 - 952: 12,10 - 953: 12,6 - - node: - color: '#FFFFFFFF' - id: BrickTileDarkCornerNe - decals: - 194: 21,4 - 250: 10,44 - 525: 12,32 - 543: 4,22 - 585: 6,40 - 659: 34,36 - 675: 30,28 - 703: 6,16 - 757: 10,10 - - node: - color: '#FFFFFFFF' - id: BrickTileDarkCornerNw - decals: - 191: 18,4 - 251: 12,44 - 519: 0,32 - 542: 0,22 - 582: 0,40 - 633: 24,36 - 702: 0,16 - 754: 0,10 - 853: 23,4 - - node: - color: '#FFFFFFFF' - id: BrickTileDarkCornerSe - decals: - 192: 21,0 - 238: 10,46 - 272: 14,42 - 524: 12,30 - 537: 4,18 - 584: 6,38 - 658: 34,34 - 701: 6,12 - 755: 10,6 - - node: - color: '#FFFFFFFF' - id: BrickTileDarkCornerSw - decals: - 193: 18,0 - 241: 12,46 - 270: 8,42 - 518: 0,30 - 534: 0,18 - 583: 0,38 - 632: 24,34 - 672: 28,24 - 700: 0,12 - 756: 0,6 - 852: 23,0 - - node: - color: '#FFFFFFFF' - id: BrickTileDarkLineE - decals: - 202: 21,1 - 203: 21,2 - 204: 21,3 - 239: 10,47 - 240: 10,48 - 273: 14,43 - 501: 0,25 - 502: 0,26 - 503: 0,27 - 535: 4,19 - 536: 4,21 - 592: 14,38 - 593: 14,40 - 674: 30,27 - 706: 6,15 - 707: 6,13 - 758: 10,9 - 759: 10,7 - 926: 5,45 - 929: 33,36 - 930: 33,34 - 931: 10,31 - 935: 8,10 - 936: 8,6 - 937: 7,2 - - node: - color: '#FFFFFFFF' - id: BrickTileDarkLineN - decals: - 197: 19,4 - 198: 20,4 - 248: 8,44 - 249: 9,44 - 252: 13,44 - 253: 14,44 - 506: 0,28 - 507: 2,28 - 520: 1,32 - 523: 11,32 - 540: 1,22 - 541: 3,22 - 634: 25,36 - 635: 26,36 - 704: 1,16 - 705: 5,16 - 762: 1,10 - 765: 9,10 - 846: 24,4 - 847: 25,4 - 848: 27,4 - 849: 28,4 - 850: 29,4 - 851: 30,4 - 927: 3,47 - - node: - color: '#FFFFFFFF' - id: BrickTileDarkLineS - decals: - 195: 20,0 - 196: 19,0 - 244: 8,46 - 245: 9,46 - 246: 13,46 - 247: 14,46 - 274: 9,42 - 275: 10,42 - 276: 13,42 - 277: 12,42 - 504: 0,24 - 505: 2,24 - 521: 1,30 - 522: 11,30 - 538: 3,18 - 539: 1,18 - 636: 25,34 - 637: 26,34 - 710: 1,12 - 711: 5,12 - 763: 1,6 - 764: 9,6 - 840: 25,0 - 841: 24,0 - 842: 27,0 - 843: 28,0 - 844: 29,0 - 845: 30,0 - 928: 3,43 - - node: - color: '#FFFFFFFF' - id: BrickTileDarkLineW - decals: - 199: 18,3 - 200: 18,2 - 201: 18,1 - 242: 12,47 - 243: 12,48 - 271: 8,43 - 498: 2,27 - 499: 2,26 - 500: 2,25 - 544: 0,19 - 545: 0,21 - 590: 8,40 - 591: 8,38 - 673: 28,25 - 708: 0,13 - 709: 0,15 - 760: 0,7 - 761: 0,9 - 854: 23,3 - 855: 23,1 - 925: 1,45 - 932: 2,31 - 933: 2,10 - 934: 2,6 - 938: 9,2 - 939: 30,2 - - node: - color: '#FFFFFFFF' - id: BrickTileSteelCornerNe - decals: - 84: 18,36 - 104: 16,25 - 336: 9,21 - 337: 10,22 - 364: 16,22 - 374: 21,15 - 375: 22,16 - 415: 21,21 - 421: 22,22 - 446: 33,21 - 447: 34,22 - 490: 12,25 - 554: 22,9 - 568: 14,9 - 610: 22,40 - 2025: 30,48 - 2039: 30,44 - 2058: 29,47 - - node: - color: '#FFFFFFFF' - id: BrickTileSteelCornerNw - decals: - 85: 16,36 - 103: 18,25 - 338: 7,21 - 339: 6,22 - 376: 17,15 - 377: 16,16 - 414: 19,21 - 420: 18,22 - 448: 31,21 - 449: 30,22 - 555: 20,9 - 569: 12,9 - 611: 16,40 - 2040: 28,44 - 2059: 28,47 - - node: - color: '#FFFFFFFF' - id: BrickTileSteelCornerSe - decals: - 83: 18,34 - 308: 26,30 - 332: 9,19 - 335: 10,18 - 372: 21,13 - 373: 22,12 - 418: 21,19 - 419: 22,18 - 452: 33,19 - 453: 34,18 - 561: 22,7 - 562: 14,7 - 609: 22,38 - 778: 16,0 - 779: 5,0 - 2038: 30,42 - 2056: 29,46 - - node: - color: '#FFFFFFFF' - id: BrickTileSteelCornerSw - decals: - 81: 16,34 - 82: 3,35 - 309: 14,30 - 333: 7,19 - 334: 6,18 - 370: 17,13 - 371: 16,12 - 416: 18,18 - 417: 19,19 - 450: 31,19 - 451: 30,18 - 493: 14,27 - 558: 20,7 - 567: 12,7 - 608: 16,38 - 780: 0,0 - 781: 11,0 - 2037: 28,42 - 2057: 28,46 - - node: - color: '#FFFFFFFF' - id: BrickTileSteelEndE - decals: - 73: 21,39 - - node: - color: '#FFFFFFFF' - id: BrickTileSteelEndW - decals: - 74: 17,39 - - node: - color: '#D4D4D496' - id: BrickTileSteelLineE - decals: - 1330: 32,2 - 1332: 31,2 - - node: - color: '#FFFFFFFF' - id: BrickTileSteelLineE - decals: - 87: 18,35 - 93: 14,34 - 94: 14,35 - 95: 14,36 - 105: 16,24 - 286: 17,45 - 287: 17,46 - 288: 17,47 - 323: 27,20 - 349: 9,20 - 350: 10,21 - 351: 10,19 - 365: 16,21 - 378: 21,14 - 379: 22,13 - 380: 22,15 - 425: 21,20 - 426: 22,19 - 427: 22,21 - 454: 34,19 - 455: 34,21 - 462: 33,20 - 491: 12,24 - 559: 22,8 - 566: 14,8 - 802: 16,1 - 806: 5,1 - 872: 34,0 - 873: 34,1 - 874: 34,3 - 875: 34,4 - 1328: 33,2 - 2023: 30,46 - 2024: 30,47 - 2041: 30,43 - - node: - color: '#FFFFFFFF' - id: BrickTileSteelLineN - decals: - 75: 18,39 - 76: 19,39 - 77: 20,39 - 86: 17,36 - 340: 8,21 - 341: 9,22 - 342: 7,22 - 366: 15,22 - 391: 18,15 - 392: 19,15 - 393: 20,15 - 394: 21,16 - 395: 20,16 - 396: 18,16 - 397: 17,16 - 422: 20,21 - 423: 19,22 - 424: 21,22 - 458: 31,22 - 459: 33,22 - 460: 32,21 - 556: 21,9 - 564: 13,9 - 572: 16,10 - 573: 18,10 - 612: 17,40 - 613: 18,40 - 614: 21,40 - 615: 20,40 - 2026: 29,48 - 2027: 28,48 - 2044: 29,44 - - node: - color: '#FFFFFFFF' - id: BrickTileSteelLineS - decals: - 78: 18,39 - 79: 19,39 - 80: 20,39 - 89: 17,34 - 298: 15,30 - 299: 16,30 - 300: 17,30 - 301: 18,30 - 302: 19,30 - 303: 21,30 - 304: 22,30 - 305: 23,30 - 306: 24,30 - 307: 25,30 - 346: 8,19 - 347: 7,18 - 348: 9,18 - 384: 18,13 - 385: 19,13 - 386: 20,13 - 387: 20,12 - 388: 21,12 - 389: 18,12 - 390: 17,12 - 431: 20,19 - 432: 19,18 - 433: 21,18 - 463: 32,19 - 464: 31,18 - 465: 33,18 - 557: 21,7 - 563: 13,7 - 570: 16,6 - 571: 18,6 - 616: 17,38 - 617: 18,38 - 618: 21,38 - 619: 20,38 - 782: 1,0 - 783: 2,0 - 784: 3,0 - 785: 4,0 - 786: 0,3 - 787: 1,3 - 788: 2,3 - 789: 3,3 - 790: 4,3 - 791: 5,3 - 792: 12,0 - 793: 13,0 - 794: 14,0 - 795: 15,0 - 796: 11,3 - 797: 12,3 - 798: 13,3 - 799: 14,3 - 800: 15,3 - 801: 16,3 - 2043: 29,42 - - node: - color: '#D4D4D496' - id: BrickTileSteelLineW - decals: - 1329: 33,2 - 1331: 32,2 - 1333: 31,2 - - node: - color: '#FFFFFFFF' - id: BrickTileSteelLineW - decals: - 88: 16,35 - 90: 20,34 - 91: 20,35 - 92: 20,36 - 102: 18,24 - 289: 21,45 - 290: 21,46 - 291: 21,47 - 322: 25,20 - 326: 29,15 - 327: 29,14 - 328: 29,13 - 343: 7,20 - 344: 6,21 - 345: 6,19 - 381: 17,14 - 382: 16,15 - 383: 16,13 - 428: 19,20 - 429: 18,19 - 430: 18,21 - 456: 30,19 - 457: 30,21 - 461: 31,20 - 492: 14,28 - 560: 20,8 - 565: 12,8 - 803: 0,1 - 805: 11,1 - 2021: 24,44 - 2022: 24,46 - 2042: 28,43 - - node: - color: '#52B4E996' - id: BrickTileWhiteCornerNe - decals: - 264: 10,44 - 679: 30,28 - - node: - color: '#DE3A3A96' - id: BrickTileWhiteCornerNe - decals: - 109: 16,25 - 362: 10,22 - 367: 16,22 - 413: 22,16 - 438: 22,22 - 475: 34,22 - 494: 12,25 - 527: 12,32 - 580: 4,22 - 587: 6,40 - 630: 22,40 - 660: 34,36 - 715: 6,16 - 777: 10,10 - 2045: 30,48 - - node: - color: '#FFFFFFFF' - id: BrickTileWhiteCornerNe - decals: - 689: 10,28 - - node: - color: '#52B4E996' - id: BrickTileWhiteCornerNw - decals: - 265: 12,44 - - node: - color: '#DE3A3A96' - id: BrickTileWhiteCornerNw - decals: - 108: 18,25 - 363: 6,22 - 412: 16,16 - 442: 18,22 - 476: 30,22 - 532: 0,32 - 579: 0,22 - 588: 0,40 - 629: 16,40 - 639: 24,36 - 714: 0,16 - 772: 0,10 - 858: 23,4 - - node: - color: '#FFFFFFFF' - id: BrickTileWhiteCornerNw - decals: - 688: 8,28 - - node: - color: '#52B4E996' - id: BrickTileWhiteCornerSe - decals: - 263: 10,46 - 279: 14,42 - - node: - color: '#DE3A3A96' - id: BrickTileWhiteCornerSe - decals: - 361: 10,18 - 411: 22,12 - 443: 22,18 - 477: 34,18 - 526: 12,30 - 581: 4,18 - 586: 6,38 - 628: 22,38 - 661: 34,34 - 713: 6,12 - 771: 10,6 - 809: 5,0 - 810: 16,0 - - node: - color: '#EFB34196' - id: BrickTileWhiteCornerSe - decals: - 311: 26,30 - - node: - color: '#FFFFFFFF' - id: BrickTileWhiteCornerSe - decals: - 690: 10,24 - - node: - color: '#52B4E996' - id: BrickTileWhiteCornerSw - decals: - 262: 12,46 - 278: 8,42 - 676: 28,24 - - node: - color: '#DE3A3A96' - id: BrickTileWhiteCornerSw - decals: - 360: 6,18 - 406: 16,12 - 439: 18,18 - 474: 30,18 - 496: 14,27 - 533: 0,30 - 578: 0,18 - 589: 0,38 - 631: 16,38 - 638: 24,34 - 712: 0,12 - 770: 0,6 - 807: 0,0 - 808: 11,0 - 859: 23,0 - - node: - color: '#EFB34196' - id: BrickTileWhiteCornerSw - decals: - 310: 14,30 - - node: - color: '#FFFFFFFF' - id: BrickTileWhiteCornerSw - decals: - 691: 8,24 - - node: - color: '#52B4E996' - id: BrickTileWhiteLineE - decals: - 258: 10,47 - 259: 10,48 - 280: 14,43 - 678: 30,27 - - node: - color: '#D4D4D419' - id: BrickTileWhiteLineE - decals: - 895: 2,6 - 896: 2,10 - 900: 9,2 - 901: 30,2 - 906: 1,45 - 908: 2,31 - - node: - color: '#DE3A3A96' - id: BrickTileWhiteLineE - decals: - 96: 14,36 - 97: 14,35 - 98: 14,34 - 106: 16,24 - 356: 10,19 - 357: 10,21 - 368: 16,21 - 409: 22,15 - 410: 22,13 - 444: 22,19 - 445: 22,21 - 470: 34,21 - 471: 34,19 - 495: 12,24 - 511: 0,25 - 512: 0,26 - 513: 0,27 - 548: 4,19 - 549: 4,21 - 596: 14,38 - 597: 14,40 - 716: 6,15 - 717: 6,13 - 768: 10,9 - 769: 10,7 - 811: 5,1 - 812: 16,1 - 876: 34,0 - 877: 34,1 - 878: 34,3 - 879: 34,4 - 2048: 30,47 - 2049: 30,46 - - node: - color: '#EFB34196' - id: BrickTileWhiteLineE - decals: - 292: 17,45 - 293: 17,46 - 294: 17,47 - 324: 27,20 - - node: - color: '#FFFFFFFF' - id: BrickTileWhiteLineE - decals: - 693: 10,27 - 694: 10,26 - 695: 10,25 - - node: - color: '#52B4E996' - id: BrickTileWhiteLineN - decals: - 266: 9,44 - 267: 8,44 - 268: 13,44 - 269: 14,44 - - node: - color: '#D4D4D419' - id: BrickTileWhiteLineN - decals: - 907: 3,43 - - node: - color: '#DE3A3A96' - id: BrickTileWhiteLineN - decals: - 358: 9,22 - 359: 7,22 - 369: 15,22 - 398: 18,16 - 399: 17,16 - 400: 21,16 - 401: 20,16 - 436: 19,22 - 437: 21,22 - 468: 31,22 - 469: 33,22 - 516: 0,28 - 517: 2,28 - 528: 11,32 - 531: 1,32 - 552: 1,22 - 553: 3,22 - 574: 16,10 - 575: 18,10 - 620: 18,40 - 621: 17,40 - 622: 20,40 - 623: 21,40 - 642: 25,36 - 643: 26,36 - 722: 1,16 - 723: 5,16 - 773: 1,10 - 774: 9,10 - 866: 24,4 - 867: 25,4 - 868: 27,4 - 869: 28,4 - 870: 30,4 - 871: 29,4 - 2046: 28,48 - 2047: 29,48 - - node: - color: '#FFFFFFFF' - id: BrickTileWhiteLineN - decals: - 692: 9,28 - - node: - color: '#52B4E996' - id: BrickTileWhiteLineS - decals: - 254: 8,46 - 255: 9,46 - 256: 13,46 - 257: 14,46 - 282: 9,42 - 283: 10,42 - 284: 12,42 - 285: 13,42 - - node: - color: '#D4D4D419' - id: BrickTileWhiteLineS - decals: - 905: 3,47 - - node: - color: '#DE3A3A96' - id: BrickTileWhiteLineS - decals: - 352: 7,18 - 353: 9,18 - 402: 17,12 - 403: 18,12 - 404: 20,12 - 405: 21,12 - 434: 19,18 - 435: 21,18 - 466: 33,18 - 467: 31,18 - 514: 0,24 - 515: 2,24 - 529: 11,30 - 530: 1,30 - 550: 1,18 - 551: 3,18 - 576: 16,6 - 577: 18,6 - 624: 17,38 - 625: 18,38 - 626: 20,38 - 627: 21,38 - 640: 25,34 - 641: 26,34 - 718: 5,12 - 719: 1,12 - 775: 1,6 - 776: 9,6 - 813: 12,0 - 814: 13,0 - 815: 14,0 - 816: 15,0 - 817: 16,3 - 818: 15,3 - 819: 13,3 - 820: 14,3 - 821: 11,3 - 822: 12,3 - 823: 0,3 - 824: 1,3 - 825: 2,3 - 826: 3,3 - 827: 4,3 - 828: 5,3 - 829: 4,0 - 830: 3,0 - 831: 2,0 - 832: 1,0 - 860: 24,0 - 861: 25,0 - 862: 27,0 - 863: 28,0 - 864: 29,0 - 865: 30,0 - - node: - color: '#EFB34196' - id: BrickTileWhiteLineS - decals: - 312: 15,30 - 313: 16,30 - 314: 17,30 - 315: 18,30 - 316: 19,30 - 317: 21,30 - 318: 22,30 - 319: 23,30 - 320: 24,30 - 321: 25,30 - - node: - color: '#FFFFFFFF' - id: BrickTileWhiteLineS - decals: - 696: 9,24 - - node: - color: '#52B4E996' - id: BrickTileWhiteLineW - decals: - 260: 12,47 - 261: 12,48 - 281: 8,43 - 677: 28,25 - - node: - color: '#D4D4D419' - id: BrickTileWhiteLineW - decals: - 897: 8,10 - 898: 8,6 - 899: 7,2 - 902: 33,36 - 903: 33,34 - 904: 5,45 - 909: 10,31 - - node: - color: '#DE3A3A96' - id: BrickTileWhiteLineW - decals: - 99: 20,36 - 100: 20,35 - 101: 20,34 - 107: 18,24 - 354: 6,19 - 355: 6,21 - 407: 16,13 - 408: 16,15 - 440: 18,19 - 441: 18,21 - 472: 30,19 - 473: 30,21 - 497: 14,28 - 508: 2,25 - 509: 2,26 - 510: 2,27 - 546: 0,19 - 547: 0,21 - 594: 8,38 - 595: 8,40 - 720: 0,13 - 721: 0,15 - 766: 0,7 - 767: 0,9 - 804: 0,1 - 833: 11,1 - 856: 23,1 - 857: 23,3 - 2050: 24,44 - 2051: 24,46 - - node: - color: '#EFB34196' - id: BrickTileWhiteLineW - decals: - 295: 21,45 - 296: 21,46 - 297: 21,47 - 325: 25,20 - 329: 29,13 - 330: 29,14 - 331: 29,15 - - node: - color: '#FFFFFFFF' - id: BrickTileWhiteLineW - decals: - 697: 8,25 - 698: 8,26 - 699: 8,27 - - node: - cleanable: True - angle: 1.5707963267948966 rad - color: '#B02E269B' - id: Clandestine - decals: - 2136: 3.132535,34.09553 - - node: - color: '#A4610696' - id: Dirt - decals: - 1334: 31,2 - 1335: 32,2 - 1336: 33,2 - 1337: 30,2 - 1338: 34,2 - 1339: 33,3 - 1340: 31,4 - 1341: 32,3 - 1342: 32,1 - 1343: 31,1 - 1344: 31,0 - 1345: 33,0 - 1346: 32,0 - 1347: 33,3 - 1348: 33,4 - 1349: 32,4 - 1350: 31,3 - 1351: 32,1 - 1352: 33,1 - - node: - cleanable: True - color: '#A4610696' - id: Dirt - decals: - 954: 0,45 - 955: 3,47 - 956: 3,48 - 957: 6,45 - 958: 3,42 - 959: 3,43 - 960: 5,45 - 961: 1,45 - 962: 13,45 - 963: 12,45 - 964: 11,47 - 965: 9,45 - 966: 8,45 - 967: 8,46 - 968: 10,47 - 969: 13,47 - 970: 14,46 - 971: 11,43 - 972: 11,42 - 973: 9,42 - 974: 10,42 - 975: 13,42 - 976: 12,42 - 977: 13,43 - 978: 9,43 - 979: 11,44 - 980: 11,45 - 981: 11,47 - 982: 9,46 - 983: 11,46 - 984: 16,45 - 985: 16,46 - 986: 16,47 - 987: 16,44 - 988: 17,45 - 989: 17,46 - 990: 21,45 - 991: 22,45 - 992: 22,44 - 993: 22,43 - 994: 22,46 - 995: 21,45 - 996: 21,46 - 997: 22,47 - 998: 24,39 - 999: 24,38 - 1000: 24,40 - 1001: 27,39 - 1002: 27,39 - 1003: 30,40 - 1004: 30,39 - 1005: 30,38 - 1006: 30,39 - 1007: 34,35 - 1008: 33,34 - 1009: 33,36 - 1010: 24,35 - 1011: 22,35 - 1012: 20,35 - 1013: 21,35 - 1014: 20,34 - 1015: 14,35 - 1016: 13,35 - 1017: 12,35 - 1018: 14,36 - 1019: 17,36 - 1020: 17,35 - 1021: 17,34 - 1022: 16,35 - 1023: 18,35 - 1024: 18,36 - 1025: 18,34 - 1026: 16,34 - 1027: 16,36 - 1028: 16,30 - 1029: 16,30 - 1030: 18,30 - 1031: 19,30 - 1032: 22,30 - 1033: 24,30 - 1034: 25,30 - 1035: 26,30 - 1036: 20,30 - 1037: 20,30 - 1038: 15,30 - 1039: 14,30 - 1040: 14,31 - 1041: 26,31 - 1042: 10,31 - 1043: 2,31 - 1044: 0,31 - 1045: 12,31 - 1046: 5,35 - 1047: 6,36 - 1048: 4,34 - 1049: 9,35 - 1050: 9,35 - 1051: 10,35 - 1052: 10,34 - 1053: 0,35 - 1054: 0,36 - 1055: 0,35 - 1056: 5,36 - 1057: 6,36 - 1058: 6,39 - 1059: 0,39 - 1060: 8,39 - 1061: 8,40 - 1062: 8,38 - 1063: 9,39 - 1064: 11,38 - 1065: 9,38 - 1066: 11,40 - 1067: 10,40 - 1068: 13,39 - 1069: 14,39 - 1070: 14,40 - 1071: 14,38 - 1072: 13,39 - 1073: 13,40 - 1074: 16,39 - 1075: 18,40 - 1076: 19,40 - 1077: 19,39 - 1078: 18,39 - 1079: 17,39 - 1080: 20,39 - 1081: 21,39 - 1082: 19,38 - 1083: 22,39 - 1084: 21,38 - 1085: 24,39 - 1086: 24,38 - 1087: 24,40 - 1088: 17,32 - 1089: 24,32 - 1090: 23,32 - 1091: 34,26 - 1092: 33,26 - 1093: 33,28 - 1094: 32,28 - 1095: 32,27 - 1096: 34,27 - 1097: 34,28 - 1098: 32,25 - 1099: 33,24 - 1100: 33,25 - 1101: 32,26 - 1102: 29,24 - 1103: 30,26 - 1104: 28,26 - 1105: 29,28 - 1106: 29,27 - 1107: 29,25 - 1108: 25,26 - 1109: 24,26 - 1110: 26,26 - 1111: 25,27 - 1112: 24,28 - 1113: 25,28 - 1114: 24,27 - 1115: 24,24 - 1116: 25,25 - 1117: 25,24 - 1118: 26,25 - 1119: 22,26 - 1120: 24,26 - 1121: 26,26 - 1122: 20,26 - 1123: 21,25 - 1124: 21,24 - 1125: 21,28 - 1126: 21,27 - 1127: 18,26 - 1128: 16,26 - 1129: 17,27 - 1130: 17,28 - 1131: 17,25 - 1132: 17,24 - 1133: 17,26 - 1134: 13,28 - 1135: 13,27 - 1136: 13,26 - 1137: 13,25 - 1138: 13,24 - 1139: 12,26 - 1140: 14,26 - 1141: 9,26 - 1142: 9,27 - 1143: 9,28 - 1144: 8,28 - 1145: 8,27 - 1146: 8,26 - 1147: 9,25 - 1148: 8,25 - 1149: 8,24 - 1150: 9,24 - 1151: 10,24 - 1152: 10,25 - 1153: 10,26 - 1154: 10,27 - 1155: 10,28 - 1156: 5,28 - 1157: 5,28 - 1158: 5,24 - 1159: 5,24 - 1160: 0,26 - 1161: 2,26 - 1162: 2,28 - 1163: 1,24 - 1164: 2,24 - 1165: 2,22 - 1166: 4,20 - 1167: 2,18 - 1168: 1,19 - 1169: 0,20 - 1170: 0,17 - 1171: 0,18 - 1172: 4,18 - 1173: 4,19 - 1174: 4,22 - 1175: 0,22 - 1176: 6,20 - 1177: 7,20 - 1178: 8,20 - 1179: 9,20 - 1180: 10,20 - 1181: 8,21 - 1182: 8,22 - 1183: 8,19 - 1184: 8,18 - 1185: 6,18 - 1186: 7,19 - 1187: 7,18 - 1188: 9,20 - 1189: 10,21 - 1190: 9,21 - 1191: 9,22 - 1192: 9,19 - 1193: 7,21 - 1194: 8,13 - 1195: 8,13 - 1196: 11,16 - 1197: 11,16 - 1198: 10,16 - 1199: 9,16 - 1200: 8,15 - 1201: 8,14 - 1202: 8,16 - 1203: 10,16 - 1204: 9,16 - 1205: 12,14 - 1206: 11,14 - 1207: 11,12 - 1208: 10,12 - 1209: 14,12 - 1210: 14,14 - 1211: 14,15 - 1212: 13,14 - 1213: 12,14 - 1214: 11,14 - 1215: 11,13 - 1216: 6,14 - 1217: 0,14 - 1218: 3,16 - 1219: 3,12 - 1220: 3,13 - 1221: 2,13 - 1222: 4,13 - 1223: 3,15 - 1224: 2,15 - 1225: 4,15 - 1226: 5,14 - 1227: 1,14 - 1228: 1,15 - 1229: 1,13 - 1230: 5,15 - 1231: 5,13 - 1232: 0,8 - 1233: 2,10 - 1234: 2,6 - 1235: 8,6 - 1236: 8,10 - 1237: 0,8 - 1238: 10,8 - 1239: 10,10 - 1240: 10,7 - 1241: 10,6 - 1242: 9,6 - 1243: 9,10 - 1244: 1,10 - 1245: 0,7 - 1246: 0,6 - 1247: 0,3 - 1248: 1,3 - 1249: 1,3 - 1250: 2,3 - 1251: 3,3 - 1252: 4,3 - 1253: 4,3 - 1254: 5,3 - 1255: 7,2 - 1256: 9,2 - 1257: 4,0 - 1258: 4,1 - 1259: 2,1 - 1260: 1,1 - 1261: 0,2 - 1262: 1,2 - 1263: 2,2 - 1264: 5,2 - 1265: 4,2 - 1266: 3,2 - 1267: 4,1 - 1268: 3,1 - 1269: 11,2 - 1270: 12,3 - 1271: 11,3 - 1272: 14,3 - 1273: 14,3 - 1274: 15,3 - 1275: 16,3 - 1276: 13,3 - 1277: 11,3 - 1278: 12,2 - 1279: 11,1 - 1280: 13,1 - 1281: 16,2 - 1282: 16,1 - 1283: 14,1 - 1284: 13,2 - 1285: 14,2 - 1286: 18,2 - 1287: 19,2 - 1288: 20,2 - 1289: 21,2 - 1290: 19,3 - 1291: 18,3 - 1292: 20,3 - 1293: 20,1 - 1294: 21,1 - 1295: 19,1 - 1296: 23,2 - 1297: 28,2 - 1298: 29,2 - 1299: 30,2 - 1300: 28,4 - 1301: 29,4 - 1302: 26,4 - 1303: 26,2 - 1304: 26,1 - 1305: 26,0 - 1306: 24,2 - 1307: 25,2 - 1308: 27,2 - 1309: 24,4 - 1310: 23,3 - 1311: 24,3 - 1312: 23,4 - 1469: 14,8 - 1470: 12,8 - 1471: 12,7 - 1472: 13,7 - 1473: 13,6 - 1474: 13,10 - 1475: 12,9 - 1476: 14,9 - 1477: 17,10 - 1478: 17,9 - 1479: 18,9 - 1480: 18,8 - 1481: 17,7 - 1482: 17,7 - 1483: 17,6 - 1484: 17,8 - 1485: 16,7 - 1486: 18,7 - 1487: 20,9 - 1488: 20,8 - 1489: 21,10 - 1490: 21,9 - 1491: 21,7 - 1492: 21,6 - 1493: 20,7 - 1494: 22,7 - 1495: 22,8 - 1534: 19,16 - 1535: 18,15 - 1536: 19,13 - 1537: 19,12 - 1538: 22,14 - 1539: 22,14 - 1540: 22,15 - 1541: 21,16 - 1542: 21,15 - 1543: 21,13 - 1544: 16,14 - 1545: 17,13 - 1546: 17,15 - 1556: 30,20 - 1557: 32,22 - 1558: 31,22 - 1559: 31,21 - 1560: 32,19 - 1561: 32,18 - 1562: 34,20 - 1563: 34,19 - 1564: 34,18 - 1565: 34,21 - 1566: 34,22 - 2060: 24,45 - 2061: 25,45 - 2062: 27,48 - 2063: 27,42 - 2064: 30,45 - 2065: 28,43 - 2066: 29,43 - 2067: 30,43 - 2068: 24,42 - 2069: 25,43 - 2070: 26,42 - 2071: 25,42 - 2072: 26,48 - 2073: 25,47 - 2074: 26,47 - 2075: 25,47 - 2076: 25,48 - 2077: 27,47 - 2078: 27,45 - 2079: 27,46 - 2080: 26,45 - 2081: 28,45 - 2082: 26,44 - 2083: 27,44 - 2084: 25,46 - 2085: 26,46 - 2086: 29,45 - - node: - color: '#A4610696' - id: DirtHeavy - decals: - 1353: 11,31 - 1354: 1,31 - 1355: 0,39 - 1356: 6,39 - 1357: 5,45 - 1358: 14,39 - 1359: 16,39 - 1360: 19,38 - - node: - cleanable: True - color: '#A4610696' - id: DirtHeavy - decals: - 1361: 22,39 - 1362: 19,40 - 1363: 30,39 - 1364: 25,35 - 1365: 24,36 - 1366: 20,30 - 1367: 14,30 - 1368: 18,30 - 1369: 22,30 - 1370: 26,31 - 1371: 22,26 - 1372: 24,26 - 1373: 26,26 - 1374: 28,26 - 1375: 29,27 - 1376: 33,25 - 1377: 33,28 - 1378: 32,28 - 1379: 14,26 - 1380: 12,26 - 1381: 9,26 - 1382: 9,28 - 1383: 8,28 - 1384: 8,24 - 1385: 10,25 - 1386: 5,24 - 1387: 5,28 - 1388: 0,26 - 1389: 0,27 - 1390: 2,24 - 1391: 2,25 - 1392: 0,35 - 1393: 0,36 - 1394: 7,36 - 1395: 5,35 - 1396: 4,34 - 1397: 10,35 - 1398: 9,35 - 1399: 8,39 - 1400: 14,39 - 1401: 14,38 - 1402: 8,45 - 1403: 11,48 - 1404: 11,44 - 1405: 14,45 - 1406: 11,42 - 1407: 9,42 - 1408: 13,43 - 1409: 3,47 - 1410: 4,20 - 1411: 3,22 - 1412: 2,18 - 1413: 0,19 - 1414: 6,20 - 1415: 8,20 - 1416: 8,18 - 1417: 10,20 - 1418: 8,22 - 1419: 14,20 - 1420: 15,21 - 1421: 16,20 - 1422: 12,20 - 1423: 12,21 - 1424: 13,22 - 1425: 13,21 - 1426: 13,19 - 1427: 16,19 - 1428: 16,19 - 1429: 15,20 - 1430: 14,18 - 1431: 12,20 - 1432: 14,22 - 1433: 20,20 - 1434: 20,22 - 1435: 18,20 - 1436: 22,21 - 1437: 19,21 - 1438: 20,18 - 1439: 22,20 - 1440: 27,22 - 1441: 25,22 - 1442: 26,18 - 1443: 27,18 - 1444: 31,18 - 1445: 32,18 - 1446: 31,20 - 1447: 32,21 - 1448: 34,22 - 1449: 34,20 - 1450: 32,19 - 1451: 29,14 - 1452: 24,14 - 1453: 24,13 - 1454: 30,14 - 1455: 29,13 - 1456: 34,2 - 1457: 32,3 - 1458: 30,1 - 1459: 26,1 - 1460: 23,3 - 1461: 24,4 - 1462: 29,4 - 1463: 26,0 - 1464: 26,1 - 1465: 18,2 - 1466: 22,8 - 1467: 20,8 - 1468: 16,8 - 1496: 17,6 - 1497: 16,8 - 1498: 18,8 - 1499: 17,10 - 1500: 14,8 - 1501: 12,8 - 1502: 13,6 - 1503: 13,10 - 1504: 21,10 - 1505: 21,9 - 1506: 21,8 - 1507: 21,7 - 1508: 21,6 - 1509: 10,8 - 1510: 9,10 - 1511: 9,6 - 1512: 2,6 - 1513: 0,7 - 1514: 0,9 - 1515: 1,10 - 1516: 8,10 - 1517: 0,14 - 1518: 5,14 - 1519: 4,15 - 1520: 3,16 - 1521: 1,18 - 1522: 5,15 - 1523: 6,14 - 1524: 11,16 - 1525: 8,13 - 1526: 11,12 - 1527: 10,13 - 1528: 16,14 - 1529: 19,16 - 1530: 19,13 - 1531: 18,13 - 1532: 18,15 - 1533: 16,15 - 1547: 19,16 - 1548: 16,14 - 1549: 17,15 - 1550: 18,14 - 1551: 19,13 - 1552: 21,13 - 1553: 22,14 - 1554: 29,15 - 1555: 29,13 - 2095: 24,45 - 2096: 27,48 - 2097: 27,42 - 2098: 25,44 - 2099: 29,45 - 2100: 29,46 - 2101: 29,47 - 2102: 25,45 - - node: - cleanable: True - color: '#A4610696' - id: DirtLight - decals: - 1567: 0,2 - 1568: 5,2 - 1569: 4,1 - 1570: 5,2 - 1571: 2,1 - 1572: 7,2 - 1573: 9,2 - 1574: 11,2 - 1575: 14,2 - 1576: 13,3 - 1577: 10,3 - 1578: 11,3 - 1579: 12,3 - 1580: 16,3 - 1581: 15,3 - 1582: 16,2 - 1583: 16,1 - 1584: 14,1 - 1585: 15,1 - 1586: 1,3 - 1587: 3,3 - 1588: 5,3 - 1589: 5,3 - 1590: 1,1 - 1591: 23,2 - 1592: 26,2 - 1593: 28,2 - 1594: 28,4 - 1595: 30,2 - 1596: 31,1 - 1597: 34,1 - 1598: 33,0 - 1599: 34,3 - 1600: 21,9 - 1601: 20,8 - 1602: 22,8 - 1603: 16,8 - 1604: 17,9 - 1605: 17,10 - 1606: 17,6 - 1607: 12,8 - 1608: 14,9 - 1609: 14,8 - 1610: 13,6 - 1611: 10,8 - 1612: 8,10 - 1613: 2,10 - 1614: 0,8 - 1615: 0,9 - 1616: 2,6 - 1617: 0,14 - 1618: 3,12 - 1619: 1,14 - 1620: 3,15 - 1621: 5,14 - 1622: 5,15 - 1623: 6,14 - 1624: 3,13 - 1625: 3,12 - 1626: 8,13 - 1627: 10,16 - 1628: 11,16 - 1629: 17,14 - 1630: 17,13 - 1631: 16,15 - 1632: 19,16 - 1633: 22,14 - 1634: 21,14 - 1635: 21,13 - 1636: 19,13 - 1637: 20,12 - 1638: 20,13 - 1639: 21,15 - 1640: 29,14 - 1641: 29,15 - 1642: 34,20 - 1643: 32,18 - 1644: 34,18 - 1645: 34,21 - 1646: 32,22 - 1647: 30,20 - 1648: 30,21 - 1649: 32,19 - 1650: 32,21 - 1651: 32,20 - 1652: 30,18 - 1653: 26,22 - 1654: 25,22 - 1655: 25,20 - 1656: 27,20 - 1657: 27,22 - 1658: 25,20 - 1659: 27,20 - 1660: 26,18 - 1661: 27,18 - 1662: 25,18 - 1663: 22,20 - 1664: 18,20 - 1665: 20,22 - 1666: 20,20 - 1667: 19,19 - 1668: 20,19 - 1669: 20,21 - 1670: 21,20 - 1671: 16,20 - 1672: 16,21 - 1673: 12,20 - 1674: 13,21 - 1675: 13,22 - 1676: 13,19 - 1677: 13,19 - 1678: 14,20 - 1679: 14,18 - 1680: 10,20 - 1681: 10,21 - 1682: 8,22 - 1683: 6,21 - 1684: 6,20 - 1685: 7,20 - 1686: 7,19 - 1687: 8,20 - 1688: 9,20 - 1689: 4,20 - 1690: 3,18 - 1691: 2,18 - 1692: 1,18 - 1693: 0,21 - 1694: 1,22 - 1695: 0,20 - 1696: 2,22 - 1697: 1,24 - 1698: 0,26 - 1699: 0,25 - 1700: 2,25 - 1701: 2,27 - 1702: 5,28 - 1703: 5,24 - 1704: 9,26 - 1705: 9,27 - 1706: 9,24 - 1707: 8,24 - 1708: 10,24 - 1709: 10,26 - 1710: 13,26 - 1711: 12,26 - 1712: 13,28 - 1713: 12,28 - 1714: 13,24 - 1715: 14,26 - 1716: 13,25 - 1717: 18,26 - 1718: 16,26 - 1719: 17,28 - 1720: 17,25 - 1721: 17,24 - 1722: 20,26 - 1723: 22,26 - 1724: 21,26 - 1725: 21,27 - 1726: 21,24 - 1727: 21,25 - 1728: 25,26 - 1729: 26,26 - 1730: 25,26 - 1731: 25,26 - 1732: 25,24 - 1733: 25,24 - 1734: 26,25 - 1735: 24,27 - 1736: 29,26 - 1737: 29,27 - 1738: 30,26 - 1739: 29,24 - 1740: 33,26 - 1741: 33,24 - 1742: 34,26 - 1743: 32,26 - 1744: 34,28 - 1745: 34,28 - 1746: 33,28 - 1747: 32,28 - 1748: 26,31 - 1749: 21,30 - 1750: 20,30 - 1751: 17,30 - 1752: 15,30 - 1753: 14,31 - 1754: 10,31 - 1755: 2,31 - 1756: 11,30 - 1757: 12,31 - 1758: 0,32 - 1759: 1,32 - 1760: 0,31 - 1761: -1,35 - 1762: 0,36 - 1763: 0,35 - 1764: 4,34 - 1765: 5,35 - 1766: 3,34 - 1767: 10,34 - 1768: 10,35 - 1769: 6,39 - 1770: 0,39 - 1771: 0,45 - 1772: 3,43 - 1773: 3,47 - 1774: 4,45 - 1775: 5,45 - 1776: 8,45 - 1777: 11,46 - 1778: 11,45 - 1779: 11,42 - 1780: 13,42 - 1781: 9,42 - 1782: 14,45 - 1783: 10,44 - 1784: 11,44 - 1785: 11,45 - 1786: 16,47 - 1787: 16,45 - 1788: 17,45 - 1789: 21,45 - 1790: 16,48 - 1791: 16,43 - 1792: 23,43 - 1793: 22,42 - 1794: 30,38 - 1795: 30,40 - 1796: 24,38 - 1797: 22,39 - 1798: 19,38 - 1799: 19,39 - 1800: 18,39 - 1801: 16,39 - 1802: 18,38 - 1803: 17,38 - 1804: 14,38 - 1805: 14,40 - 1806: 9,39 - 1807: 10,40 - 1808: 12,38 - 1809: 10,38 - 1810: 10,38 - 1811: 6,39 - 1812: 0,39 - 2103: 24,45 - 2104: 30,45 - 2105: 26,44 - 2106: 27,43 - 2107: 30,43 - 2108: 29,42 - 2109: 28,47 - - node: - cleanable: True - color: '#A4610696' - id: DirtMedium - decals: - 1813: 0,35 - 1814: 0,39 - 1815: 6,39 - 1816: 3,43 - 1817: 1,45 - 1818: 11,45 - 1819: 11,42 - 1820: 14,45 - 1821: 16,45 - 1822: 21,45 - 1823: 22,45 - 1824: 21,38 - 1825: 20,38 - 1826: 20,38 - 1827: 24,38 - 1828: 30,39 - 1829: 34,35 - 1830: 33,36 - 1831: 33,34 - 1832: 24,34 - 1833: 20,34 - 1834: 22,35 - 1835: 17,35 - 1836: 16,34 - 1837: 17,36 - 1838: 12,35 - 1839: 10,35 - 1840: 5,35 - 1841: 0,35 - 1842: 1,31 - 1843: 2,31 - 1844: 11,31 - 1845: 9,26 - 1846: 8,26 - 1847: 9,27 - 1848: 9,28 - 1849: 10,26 - 1850: 10,25 - 1851: 9,25 - 1852: 13,26 - 1853: 12,26 - 1854: 13,28 - 1855: 14,26 - 1856: 17,24 - 1857: 18,26 - 1858: 17,28 - 1859: 16,26 - 1860: 22,26 - 1861: 20,26 - 1862: 25,27 - 1863: 24,27 - 1864: 24,28 - 1865: 24,25 - 1866: 25,25 - 1867: 25,24 - 1868: 24,24 - 1869: 26,25 - 1870: 26,26 - 1871: 25,26 - 1872: 24,26 - 1873: 24,26 - 1874: 25,26 - 1875: 25,26 - 1876: 28,26 - 1877: 30,26 - 1878: 29,27 - 1879: 29,25 - 1880: 33,26 - 1881: 34,26 - 1882: 34,28 - 1883: 32,28 - 1884: 34,28 - 1885: 32,20 - 1886: 31,20 - 1887: 30,20 - 1888: 30,18 - 1889: 34,18 - 1890: 34,21 - 1891: 25,18 - 1892: 26,18 - 1893: 25,18 - 1894: 27,20 - 1895: 27,22 - 1896: 29,15 - 1897: 30,14 - 1898: 29,12 - 1899: 24,14 - 1900: 24,15 - 1901: 24,16 - 1902: 20,20 - 1903: 17,20 - 1904: 19,21 - 1905: 18,20 - 1906: 21,22 - 1907: 22,20 - 1908: 22,21 - 1909: 20,19 - 1910: 15,20 - 1911: 14,21 - 1912: 15,21 - 1913: 16,21 - 1914: 14,22 - 1915: 12,20 - 1916: 14,18 - 1917: 15,18 - 1918: 16,19 - 1919: 16,19 - 1920: 13,19 - 1921: 12,19 - 1922: 12,19 - 1923: 12,18 - 1924: 14,18 - 1925: 15,18 - 1926: 15,18 - 1927: 10,20 - 1928: 8,22 - 1929: 7,20 - 1930: 9,21 - 1931: 7,19 - 1932: 10,19 - 1933: 10,21 - 1934: 7,18 - 1935: 4,20 - 1936: 4,21 - 1937: 2,22 - 1938: 1,22 - 1939: 0,19 - 1940: 1,18 - 1941: 1,18 - 1942: 3,18 - 1943: 0,14 - 1944: 2,13 - 1945: 3,13 - 1946: 5,13 - 1947: 3,12 - 1948: 8,15 - 1949: 8,16 - 1950: 9,16 - 1951: 9,16 - 1952: 18,14 - 1953: 19,16 - 1954: 19,14 - 1955: 20,13 - 1956: 18,16 - 1957: 17,13 - 1958: 20,12 - 1959: 22,13 - 1960: 24,13 - 1961: 30,12 - 1962: 30,14 - 1963: 29,16 - 1964: 24,16 - 1965: 24,16 - 1966: 25,6 - 1967: 24,7 - 1968: 26,9 - 1969: 27,10 - 1970: 28,10 - 1971: 34,10 - 1972: 34,8 - 1973: 34,7 - 1974: 33,6 - 1975: 30,6 - 1976: 27,6 - 1977: 21,8 - 1978: 16,8 - 1979: 17,10 - 1980: 18,8 - 1981: 17,6 - 1982: 13,7 - 1983: 13,9 - 1984: 13,8 - 1985: 14,7 - 1986: 10,6 - 1987: 8,10 - 1988: 2,6 - 1989: 0,7 - 1990: 1,1 - 1991: 0,1 - 1992: 4,1 - 1993: 5,2 - 1994: 3,1 - 1995: 3,0 - 1996: 7,2 - 1997: 9,2 - 1998: 11,2 - 1999: 13,1 - 2000: 15,1 - 2001: 16,2 - 2002: 16,1 - 2003: 23,2 - 2004: 26,2 - 2005: 29,3 - 2006: 30,2 - 2007: 33,2 - 2008: 33,3 - 2009: 34,2 - 2010: 34,0 - 2011: 34,1 - 2012: 31,1 - 2013: 29,0 - 2014: 26,0 - 2015: 23,3 - 2016: 28,4 - 2087: 27,42 - 2088: 27,48 - 2089: 24,45 - 2090: 30,45 - 2091: 28,45 - 2092: 26,45 - 2093: 28,47 - 2094: 27,44 - 2110: 24,45 - 2111: 27,48 - 2112: 27,45 - 2113: 26,46 - 2114: 26,42 - 2115: 25,42 - 2116: 25,47 - 2117: 25,47 - 2118: 26,48 - 2119: 26,47 - 2120: 26,47 - 2121: 26,43 - 2122: 26,43 - 2123: 27,43 - 2124: 6,1 - 2125: 10,3 - - node: - color: '#D4D4D41B' - id: FullTileOverlayGreyscale - decals: - 1313: 31,4 - 1314: 31,3 - 1315: 31,2 - 1316: 31,1 - 1317: 31,0 - - node: - color: '#D4D4D433' - id: FullTileOverlayGreyscale - decals: - 1318: 32,0 - 1319: 32,1 - 1320: 32,2 - 1321: 32,3 - 1322: 32,4 - - node: - color: '#D4D4D44C' - id: FullTileOverlayGreyscale - decals: - 1323: 33,0 - 1324: 33,1 - 1325: 33,2 - 1326: 33,3 - 1327: 33,4 - - node: - color: '#D4D4D40C' - id: HalfTileOverlayGreyscale - decals: - 923: 3,47 - - node: - color: '#D4D4D419' - id: HalfTileOverlayGreyscale - decals: - 893: 3,43 - - node: - color: '#D4D4D40C' - id: HalfTileOverlayGreyscale180 - decals: - 924: 3,43 - - node: - color: '#D4D4D419' - id: HalfTileOverlayGreyscale180 - decals: - 894: 3,47 - - node: - color: '#D4D4D40C' - id: HalfTileOverlayGreyscale270 - decals: - 910: 30,2 - 911: 9,2 - 914: 2,6 - 915: 2,10 - 918: 2,31 - 922: 1,45 - - node: - color: '#D4D4D419' - id: HalfTileOverlayGreyscale270 - decals: - 882: 7,2 - 883: 8,6 - 884: 8,10 - 888: 10,31 - 889: 33,34 - 890: 33,36 - 891: 5,45 - - node: - color: '#D4D4D40C' - id: HalfTileOverlayGreyscale90 - decals: - 912: 7,2 - 913: 8,6 - 916: 8,10 - 917: 10,31 - 919: 33,34 - 920: 33,36 - 921: 5,45 - - node: - color: '#D4D4D419' - id: HalfTileOverlayGreyscale90 - decals: - 880: 30,2 - 881: 9,2 - 885: 2,6 - 886: 2,10 - 887: 2,31 - 892: 1,45 - - node: - color: '#9FED5896' - id: MiniTileCheckerAOverlay - decals: - 2028: 28,42 - 2029: 29,42 - 2030: 30,42 - 2031: 28,43 - 2032: 29,43 - 2033: 30,43 - 2034: 28,44 - 2035: 29,44 - 2036: 30,44 - - node: - color: '#DE3A3A96' - id: MiniTileCheckerAOverlay - decals: - 0: 7,19 - 1: 8,19 - 2: 9,19 - 3: 9,20 - 4: 8,20 - 5: 7,20 - 6: 7,21 - 7: 8,21 - 8: 9,21 - 9: 19,19 - 10: 20,19 - 11: 21,19 - 12: 21,20 - 13: 20,20 - 14: 19,20 - 15: 19,21 - 16: 20,21 - 17: 21,21 - 18: 17,15 - 19: 17,14 - 20: 17,13 - 21: 18,13 - 22: 19,13 - 23: 20,13 - 24: 21,13 - 25: 21,14 - 26: 21,15 - 27: 20,15 - 28: 19,15 - 29: 18,15 - 30: 18,14 - 31: 19,14 - 32: 20,9 - 33: 21,9 - 34: 22,9 - 35: 22,8 - 36: 22,7 - 37: 21,7 - 38: 21,8 - 39: 20,8 - 40: 20,7 - 41: 12,7 - 42: 13,7 - 43: 14,7 - 44: 14,8 - 45: 13,8 - 46: 12,8 - 47: 12,9 - 48: 13,9 - 49: 14,9 - 59: 17,39 - 60: 18,39 - 61: 19,39 - 62: 20,39 - 63: 21,39 - 64: 16,36 - 65: 16,35 - 66: 16,34 - 67: 17,34 - 68: 18,34 - 69: 18,35 - 70: 17,35 - 71: 17,36 - 72: 18,36 - - node: - color: '#FFFFFFFF' - id: MiniTileCheckerAOverlay - decals: - 2052: 28,46 - 2053: 28,47 - 2054: 29,47 - 2055: 29,46 - - node: - color: '#9FED5896' - id: MiniTileCheckerBOverlay - decals: - 50: 31,21 - 51: 31,20 - 52: 31,19 - 53: 33,21 - 54: 33,20 - 55: 33,19 - - node: - color: '#DE3A3A96' - id: MiniTileCheckerBOverlay - decals: - 56: 32,21 - 57: 32,20 - 58: 32,19 - - node: - color: '#DE3A3A96' - id: StandClearGreyscale - decals: - 751: 26,7 - 752: 32,7 - 753: 29,9 - 838: 6,2 - 839: 10,2 - - node: - color: '#FFFFFFFF' - id: WarnCornerNE - decals: - 605: 13,40 - 747: 34,10 - - node: - color: '#FFFFFFFF' - id: WarnCornerNW - decals: - 606: 9,40 - 741: 24,10 - - node: - color: '#FFFFFFFF' - id: WarnCornerSE - decals: - 604: 13,38 - 746: 34,6 - - node: - color: '#FFFFFFFF' - id: WarnCornerSW - decals: - 598: 9,38 - 740: 24,6 - - node: - color: '#FFFFFFFF' - id: WarnFull - decals: - 657: 32,35 - - node: - color: '#FFFFFFFF' - id: WarnLineE - decals: - 607: 13,39 - 644: 26,34 - 645: 26,35 - 646: 26,36 - 744: 34,7 - 745: 34,9 - - node: - color: '#DE3A3A96' - id: WarnLineGreyscaleE - decals: - 112: 18,26 - 117: 14,26 - 118: 22,26 - 121: 22,35 - 122: 22,39 - 128: 14,39 - 131: 6,39 - 132: 12,31 - 135: 26,31 - 140: 26,26 - 145: 30,26 - 146: 34,26 - 153: 2,26 - 159: 4,20 - 160: 10,20 - 166: 16,20 - 170: 22,20 - 175: 34,20 - 176: 22,14 - 183: 6,14 - 184: 10,8 - 188: 16,2 - 190: 34,2 - 205: 21,2 - 213: 34,8 - 214: 30,14 - 219: 34,35 - 223: 30,39 - 224: 22,45 - 227: 14,45 - 230: 6,45 - 235: 10,35 - 834: 5,2 - 2018: 30,45 - - node: - color: '#DE3A3A96' - id: WarnLineGreyscaleN - decals: - 111: 17,28 - 116: 13,28 - 125: 19,40 - 126: 11,40 - 138: 21,28 - 144: 29,28 - 154: 1,28 - 158: 2,22 - 161: 8,22 - 165: 14,22 - 171: 20,22 - 173: 32,22 - 179: 19,16 - 180: 3,16 - 186: 17,10 - 209: 26,4 - 210: 29,10 - 217: 26,22 - 220: 29,36 - 228: 11,48 - 233: 3,48 - 237: 5,28 - 2020: 27,48 - - node: - color: '#FFFFFFFF' - id: WarnLineGreyscaleN - decals: - 667: 27,35 - 668: 28,35 - 669: 29,35 - 670: 30,35 - 671: 31,35 - - node: - color: '#DE3A3A96' - id: WarnLineGreyscaleS - decals: - 110: 17,24 - 115: 13,24 - 124: 19,38 - 127: 11,38 - 136: 20,30 - 137: 21,24 - 139: 25,24 - 143: 29,24 - 148: 33,24 - 149: 32,28 - 150: 33,28 - 151: 34,28 - 152: 1,24 - 157: 2,18 - 163: 8,18 - 164: 14,18 - 169: 20,18 - 172: 32,18 - 177: 19,12 - 181: 3,12 - 187: 17,6 - 208: 26,0 - 211: 29,6 - 216: 26,18 - 221: 29,34 - 229: 11,42 - 231: 3,42 - 236: 5,24 - 2019: 27,42 - - node: - color: '#FFFFFFFF' - id: WarnLineGreyscaleS - decals: - 662: 27,35 - 663: 28,35 - 664: 29,35 - 665: 30,35 - 666: 31,35 - - node: - color: '#DE3A3A96' - id: WarnLineGreyscaleW - decals: - 113: 16,26 - 114: 12,26 - 119: 20,26 - 120: 12,35 - 123: 16,39 - 129: 8,39 - 130: 0,39 - 133: 0,31 - 134: 14,31 - 141: 24,26 - 142: 28,26 - 147: 32,26 - 155: 0,26 - 156: 0,20 - 162: 6,20 - 167: 12,20 - 168: 18,20 - 174: 30,20 - 178: 16,14 - 182: 0,14 - 185: 0,8 - 189: 0,2 - 206: 18,2 - 207: 23,2 - 212: 24,8 - 215: 24,14 - 218: 24,35 - 222: 24,39 - 225: 16,45 - 226: 8,45 - 232: 0,45 - 234: 0,35 - 835: 11,2 - 2017: 24,45 - - node: - color: '#FFFFFFFF' - id: WarnLineN - decals: - 601: 10,38 - 602: 12,38 - 647: 27,34 - 648: 28,34 - 649: 30,34 - 650: 31,34 - 651: 32,34 - 732: 28,6 - 733: 27,6 - 734: 26,6 - 735: 25,6 - 736: 30,6 - 737: 31,6 - 738: 32,6 - 739: 33,6 - - node: - color: '#FFFFFFFF' - id: WarnLineS - decals: - 603: 9,39 - 742: 24,7 - 743: 24,9 - - node: - color: '#FFFFFFFF' - id: WarnLineW - decals: - 599: 10,40 - 600: 12,40 - 652: 27,36 - 653: 28,36 - 654: 30,36 - 655: 31,36 - 656: 32,36 - 724: 25,10 - 725: 26,10 - 726: 28,10 - 727: 27,10 - 728: 30,10 - 729: 31,10 - 730: 32,10 - 731: 33,10 - - node: - cleanable: True - color: '#80C71F7F' - id: revolution - decals: - 2138: 14.060958,20.754644 - 2139: 13.607299,19.803425 - - node: - cleanable: True - color: '#B02E60A3' - id: revolution - decals: - 2137: 25.02975,25.438416 - - node: - cleanable: True - angle: -1.5707963267948966 rad - color: '#B02E2644' - id: splatter - decals: - 2131: 27.967218,24.104916 - - node: - cleanable: True - color: '#B02E2666' - id: splatter - decals: - 2126: 8.891183,43.065514 - - node: - cleanable: True - angle: -1.5707963267948966 rad - color: '#B02E266F' - id: splatter - decals: - 2132: 28.36234,24.163452 - 2133: 32.200607,35.087025 - 2134: 13.24002,46.473877 - 2135: 24.497486,47.84553 - - node: - cleanable: True - angle: -4.71238898038469 rad - color: '#B02E26B4' - id: splatter - decals: - 2128: 8.788744,42.524048 - 2129: 15.538555,20.953827 - 2130: 24.864944,27.488853 - - node: - cleanable: True - angle: -3.141592653589793 rad - color: '#B02E26B4' - id: splatter - decals: - 2127: 9.110695,42.81673 - - type: RadiationGridResistance - - type: LoadedMap - - type: SpreaderGrid - - type: GridTree - - type: MovedGrids - - type: GridPathfinding -- proto: AirlockBrigGlassLocked - entities: - - uid: 1245 - components: - - type: Transform - pos: 15.5,35.5 - parent: 588 - - uid: 1246 - components: - - type: Transform - pos: 19.5,35.5 - parent: 588 - - uid: 1625 - components: - - type: Transform - pos: 22.5,2.5 - parent: 588 -- proto: AirlockEngineering - entities: - - uid: 1515 - components: - - type: Transform - pos: 19.5,43.5 - parent: 588 -- proto: AirlockSecurityGlassLocked - entities: - - uid: 1579 - components: - - type: Transform - pos: 11.5,15.5 - parent: 588 - - uid: 1609 - components: - - type: Transform - pos: 15.5,8.5 - parent: 588 - - uid: 1610 - components: - - type: Transform - pos: 19.5,8.5 - parent: 588 - - uid: 1623 - components: - - type: Transform - pos: 6.5,2.5 - parent: 588 - - uid: 1624 - components: - - type: Transform - pos: 10.5,2.5 - parent: 588 -- proto: APCBasic - entities: - - uid: 484 - components: - - type: Transform - pos: 25.5,13.5 - parent: 588 - - uid: 773 - components: - - type: Transform - pos: 25.5,19.5 - parent: 588 - - uid: 973 - components: - - type: Transform - pos: 21.5,32.5 - parent: 588 - - uid: 1509 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 19.5,47.5 - parent: 588 -- proto: BannerSecurity - entities: - - uid: 553 - components: - - type: Transform - pos: 30.5,8.5 - parent: 588 - - uid: 1619 - components: - - type: Transform - pos: 18.5,10.5 - parent: 588 - - uid: 1620 - components: - - type: Transform - pos: 16.5,6.5 - parent: 588 -- proto: BasaltFive - entities: - - uid: 608 - components: - - type: Transform - pos: 2.5,14.5 - parent: 588 - - uid: 647 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 2.5,21.5 - parent: 588 - - uid: 899 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 10.5,30.5 - parent: 588 - - uid: 1264 - components: - - type: Transform - pos: 9.5,0.5 - parent: 588 - - uid: 1384 - components: - - type: Transform - pos: 5.5,48.5 - parent: 588 - - uid: 1386 - components: - - type: Transform - pos: 0.5,47.5 - parent: 588 - - uid: 1387 - components: - - type: Transform - pos: 0.5,42.5 - parent: 588 - - uid: 1388 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 1.5,42.5 - parent: 588 -- proto: BasaltFour - entities: - - uid: 900 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 8.5,32.5 - parent: 588 - - uid: 904 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 2.5,40.5 - parent: 588 - - uid: 1381 - components: - - type: Transform - pos: 1.5,44.5 - parent: 588 - - uid: 1385 - components: - - type: Transform - pos: 6.5,48.5 - parent: 588 -- proto: BasaltOne - entities: - - uid: 813 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 1.5,27.5 - parent: 588 - - uid: 897 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 3.5,30.5 - parent: 588 - - uid: 901 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 10.5,32.5 - parent: 588 - - uid: 903 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 5.5,38.5 - parent: 588 - - uid: 1382 - components: - - type: Transform - pos: 1.5,48.5 - parent: 588 -- proto: BasaltRandom - entities: - - uid: 613 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 4.5,14.5 - parent: 588 - - uid: 615 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 3.5,7.5 - parent: 588 -- proto: BasaltThree - entities: - - uid: 616 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 6.5,7.5 - parent: 588 - - uid: 644 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 1.5,20.5 - parent: 588 - - uid: 898 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 2.5,30.5 - parent: 588 - - uid: 905 - components: - - type: Transform - pos: 4.5,38.5 - parent: 588 - - uid: 1265 - components: - - type: Transform - pos: 7.5,1.5 - parent: 588 - - uid: 1266 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 9.5,3.5 - parent: 588 - - uid: 1383 - components: - - type: Transform - pos: 6.5,47.5 - parent: 588 -- proto: BasaltTwo - entities: - - uid: 610 - components: - - type: Transform - pos: 3.5,14.5 - parent: 588 - - uid: 617 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 3.5,9.5 - parent: 588 - - uid: 618 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 7.5,8.5 - parent: 588 - - uid: 646 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 2.5,19.5 - parent: 588 - - uid: 814 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 1.5,26.5 - parent: 588 - - uid: 896 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 3.5,32.5 - parent: 588 - - uid: 902 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 1.5,38.5 - parent: 588 - - uid: 1263 - components: - - type: Transform - pos: 7.5,4.5 - parent: 588 - - uid: 1380 - components: - - type: Transform - pos: 1.5,43.5 - parent: 588 -- proto: Bed - entities: - - uid: 257 - components: - - type: Transform - pos: 15.5,4.5 - parent: 588 - - uid: 282 - components: - - type: Transform - pos: 1.5,4.5 - parent: 588 - - uid: 293 - components: - - type: Transform - pos: 3.5,4.5 - parent: 588 - - uid: 294 - components: - - type: Transform - pos: 5.5,4.5 - parent: 588 - - uid: 295 - components: - - type: Transform - pos: 11.5,4.5 - parent: 588 - - uid: 296 - components: - - type: Transform - pos: 13.5,4.5 - parent: 588 - - uid: 700 - components: - - type: Transform - pos: 12.5,22.5 - parent: 588 - - uid: 701 - components: - - type: Transform - pos: 16.5,18.5 - parent: 588 - - uid: 1043 - components: - - type: Transform - pos: 20.5,28.5 - parent: 588 - - uid: 1044 - components: - - type: Transform - pos: 22.5,24.5 - parent: 588 - - uid: 1075 - components: - - type: Transform - pos: 24.5,28.5 - parent: 588 - - uid: 1099 - components: - - type: Transform - pos: 20.5,36.5 - parent: 588 - - uid: 1100 - components: - - type: Transform - pos: 14.5,34.5 - parent: 588 - - uid: 1763 - components: - - type: Transform - pos: 24.5,48.5 - parent: 588 - - uid: 1764 - components: - - type: Transform - pos: 24.5,42.5 - parent: 588 -- proto: BedsheetMedical - entities: - - uid: 1150 - components: - - type: Transform - pos: 28.5,24.5 - parent: 588 - - uid: 1151 - components: - - type: Transform - pos: 28.5,25.5 - parent: 588 -- proto: BedsheetOrange - entities: - - uid: 298 - components: - - type: Transform - pos: 3.5,4.5 - parent: 588 - - uid: 299 - components: - - type: Transform - pos: 5.5,4.5 - parent: 588 - - uid: 300 - components: - - type: Transform - pos: 13.5,4.5 - parent: 588 - - uid: 1765 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 24.5,42.5 - parent: 588 -- proto: BedsheetSpawner - entities: - - uid: 301 - components: - - type: Transform - pos: 11.5,4.5 - parent: 588 - - uid: 1041 - components: - - type: Transform - pos: 20.5,28.5 - parent: 588 - - uid: 1225 - components: - - type: Transform - pos: 14.5,34.5 - parent: 588 - - uid: 1226 - components: - - type: Transform - pos: 20.5,36.5 - parent: 588 -- proto: BedsheetSyndie - entities: - - uid: 1037 - components: - - type: Transform - pos: 22.5,24.5 - parent: 588 - - uid: 1766 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 24.5,48.5 - parent: 588 -- proto: BlastDoor - entities: - - uid: 1600 - components: - - type: Transform - pos: 26.5,7.5 - parent: 588 - - uid: 1601 - components: - - type: Transform - pos: 29.5,9.5 - parent: 588 - - uid: 1602 - components: - - type: Transform - pos: 32.5,7.5 - parent: 588 -- proto: Bola - entities: - - uid: 1157 - components: - - type: Transform - pos: 15.616387,0.61007345 - parent: 588 -- proto: BookEscalationSecurity - entities: - - uid: 373 - components: - - type: Transform - pos: 19.42657,0.6288943 - parent: 588 -- proto: BookRandom - entities: - - uid: 1835 - components: - - type: Transform - pos: 24.420084,44.539436 - parent: 588 -- proto: BookSecurity - entities: - - uid: 522 - components: - - type: Transform - pos: 32.41844,8.400207 - parent: 588 -- proto: BoxFolderBlack - entities: - - uid: 365 - components: - - type: Transform - pos: 27.841173,1.5632035 - parent: 588 - - uid: 728 - components: - - type: Transform - pos: 10.690479,19.262342 - parent: 588 -- proto: BoxFolderGrey - entities: - - uid: 364 - components: - - type: Transform - pos: 25.072409,1.4780562 - parent: 588 - - uid: 727 - components: - - type: Transform - pos: 7.2148314,22.575037 - parent: 588 -- proto: BoxFolderRed - entities: - - uid: 329 - components: - - type: Transform - pos: 21.42984,3.6329575 - parent: 588 - - uid: 362 - components: - - type: Transform - pos: 24.788435,1.6057768 - parent: 588 - - uid: 363 - components: - - type: Transform - pos: 28.196142,1.5773941 - parent: 588 - - uid: 726 - components: - - type: Transform - pos: 10.428753,19.429379 - parent: 588 -- proto: BoxMouthSwab - entities: - - uid: 1476 - components: - - type: Transform - pos: 12.356534,44.605965 - parent: 588 -- proto: BoxSterileMask - entities: - - uid: 1477 - components: - - type: Transform - pos: 12.683106,44.705303 - parent: 588 -- proto: BriefcaseBrownFilled - entities: - - uid: 325 - components: - - type: Transform - pos: 19.413612,4.6972914 - parent: 588 -- proto: BrokenBottle - entities: - - uid: 1691 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 25.063513,27.520548 - parent: 588 -- proto: Bucket - entities: - - uid: 1839 - components: - - type: Transform - pos: 29.616838,43.531868 - parent: 588 - - uid: 1857 - components: - - type: Transform - pos: 30.264944,21.705044 - parent: 588 -- proto: CableApcExtension - entities: - - uid: 1 - components: - - type: Transform - pos: 0.5,2.5 - parent: 588 - - uid: 2 - components: - - type: Transform - pos: 1.5,2.5 - parent: 588 - - uid: 3 - components: - - type: Transform - pos: 2.5,2.5 - parent: 588 - - uid: 4 - components: - - type: Transform - pos: 3.5,2.5 - parent: 588 - - uid: 5 - components: - - type: Transform - pos: 4.5,2.5 - parent: 588 - - uid: 6 - components: - - type: Transform - pos: 5.5,2.5 - parent: 588 - - uid: 7 - components: - - type: Transform - pos: 6.5,2.5 - parent: 588 - - uid: 8 - components: - - type: Transform - pos: 7.5,2.5 - parent: 588 - - uid: 9 - components: - - type: Transform - pos: 8.5,2.5 - parent: 588 - - uid: 10 - components: - - type: Transform - pos: 9.5,2.5 - parent: 588 - - uid: 11 - components: - - type: Transform - pos: 10.5,2.5 - parent: 588 - - uid: 12 - components: - - type: Transform - pos: 11.5,2.5 - parent: 588 - - uid: 13 - components: - - type: Transform - pos: 12.5,2.5 - parent: 588 - - uid: 14 - components: - - type: Transform - pos: 13.5,2.5 - parent: 588 - - uid: 15 - components: - - type: Transform - pos: 14.5,2.5 - parent: 588 - - uid: 16 - components: - - type: Transform - pos: 15.5,2.5 - parent: 588 - - uid: 17 - components: - - type: Transform - pos: 16.5,2.5 - parent: 588 - - uid: 18 - components: - - type: Transform - pos: 8.5,4.5 - parent: 588 - - uid: 19 - components: - - type: Transform - pos: 8.5,3.5 - parent: 588 - - uid: 20 - components: - - type: Transform - pos: 8.5,1.5 - parent: 588 - - uid: 21 - components: - - type: Transform - pos: 8.5,0.5 - parent: 588 - - uid: 22 - components: - - type: Transform - pos: 18.5,2.5 - parent: 588 - - uid: 23 - components: - - type: Transform - pos: 19.5,2.5 - parent: 588 - - uid: 24 - components: - - type: Transform - pos: 20.5,2.5 - parent: 588 - - uid: 25 - components: - - type: Transform - pos: 21.5,2.5 - parent: 588 - - uid: 26 - components: - - type: Transform - pos: 22.5,2.5 - parent: 588 - - uid: 27 - components: - - type: Transform - pos: 23.5,2.5 - parent: 588 - - uid: 28 - components: - - type: Transform - pos: 24.5,2.5 - parent: 588 - - uid: 29 - components: - - type: Transform - pos: 25.5,2.5 - parent: 588 - - uid: 30 - components: - - type: Transform - pos: 26.5,2.5 - parent: 588 - - uid: 31 - components: - - type: Transform - pos: 27.5,2.5 - parent: 588 - - uid: 32 - components: - - type: Transform - pos: 28.5,2.5 - parent: 588 - - uid: 33 - components: - - type: Transform - pos: 29.5,2.5 - parent: 588 - - uid: 34 - components: - - type: Transform - pos: 30.5,2.5 - parent: 588 - - uid: 35 - components: - - type: Transform - pos: 31.5,2.5 - parent: 588 - - uid: 36 - components: - - type: Transform - pos: 32.5,2.5 - parent: 588 - - uid: 37 - components: - - type: Transform - pos: 33.5,2.5 - parent: 588 - - uid: 38 - components: - - type: Transform - pos: 34.5,2.5 - parent: 588 - - uid: 39 - components: - - type: Transform - pos: 26.5,4.5 - parent: 588 - - uid: 40 - components: - - type: Transform - pos: 26.5,3.5 - parent: 588 - - uid: 41 - components: - - type: Transform - pos: 26.5,1.5 - parent: 588 - - uid: 42 - components: - - type: Transform - pos: 26.5,0.5 - parent: 588 - - uid: 43 - components: - - type: Transform - pos: 0.5,8.5 - parent: 588 - - uid: 44 - components: - - type: Transform - pos: 1.5,8.5 - parent: 588 - - uid: 52 - components: - - type: Transform - pos: 9.5,8.5 - parent: 588 - - uid: 53 - components: - - type: Transform - pos: 10.5,8.5 - parent: 588 - - uid: 54 - components: - - type: Transform - pos: 5.5,10.5 - parent: 588 - - uid: 57 - components: - - type: Transform - pos: 5.5,6.5 - parent: 588 - - uid: 58 - components: - - type: Transform - pos: 17.5,6.5 - parent: 588 - - uid: 59 - components: - - type: Transform - pos: 17.5,7.5 - parent: 588 - - uid: 60 - components: - - type: Transform - pos: 17.5,8.5 - parent: 588 - - uid: 61 - components: - - type: Transform - pos: 17.5,9.5 - parent: 588 - - uid: 62 - components: - - type: Transform - pos: 17.5,10.5 - parent: 588 - - uid: 63 - components: - - type: Transform - pos: 12.5,8.5 - parent: 588 - - uid: 64 - components: - - type: Transform - pos: 13.5,8.5 - parent: 588 - - uid: 65 - components: - - type: Transform - pos: 14.5,8.5 - parent: 588 - - uid: 66 - components: - - type: Transform - pos: 15.5,8.5 - parent: 588 - - uid: 67 - components: - - type: Transform - pos: 16.5,8.5 - parent: 588 - - uid: 68 - components: - - type: Transform - pos: 18.5,8.5 - parent: 588 - - uid: 69 - components: - - type: Transform - pos: 19.5,8.5 - parent: 588 - - uid: 70 - components: - - type: Transform - pos: 20.5,8.5 - parent: 588 - - uid: 71 - components: - - type: Transform - pos: 21.5,8.5 - parent: 588 - - uid: 72 - components: - - type: Transform - pos: 22.5,8.5 - parent: 588 - - uid: 73 - components: - - type: Transform - pos: 22.5,14.5 - parent: 588 - - uid: 74 - components: - - type: Transform - pos: 21.5,14.5 - parent: 588 - - uid: 75 - components: - - type: Transform - pos: 20.5,14.5 - parent: 588 - - uid: 76 - components: - - type: Transform - pos: 19.5,14.5 - parent: 588 - - uid: 77 - components: - - type: Transform - pos: 18.5,14.5 - parent: 588 - - uid: 78 - components: - - type: Transform - pos: 17.5,14.5 - parent: 588 - - uid: 79 - components: - - type: Transform - pos: 16.5,14.5 - parent: 588 - - uid: 80 - components: - - type: Transform - pos: 19.5,13.5 - parent: 588 - - uid: 81 - components: - - type: Transform - pos: 19.5,12.5 - parent: 588 - - uid: 82 - components: - - type: Transform - pos: 19.5,15.5 - parent: 588 - - uid: 83 - components: - - type: Transform - pos: 19.5,16.5 - parent: 588 - - uid: 84 - components: - - type: Transform - pos: 14.5,14.5 - parent: 588 - - uid: 85 - components: - - type: Transform - pos: 13.5,14.5 - parent: 588 - - uid: 86 - components: - - type: Transform - pos: 12.5,14.5 - parent: 588 - - uid: 87 - components: - - type: Transform - pos: 11.5,14.5 - parent: 588 - - uid: 88 - components: - - type: Transform - pos: 10.5,14.5 - parent: 588 - - uid: 89 - components: - - type: Transform - pos: 9.5,14.5 - parent: 588 - - uid: 90 - components: - - type: Transform - pos: 8.5,14.5 - parent: 588 - - uid: 91 - components: - - type: Transform - pos: 11.5,13.5 - parent: 588 - - uid: 92 - components: - - type: Transform - pos: 11.5,12.5 - parent: 588 - - uid: 93 - components: - - type: Transform - pos: 11.5,15.5 - parent: 588 - - uid: 94 - components: - - type: Transform - pos: 11.5,16.5 - parent: 588 - - uid: 95 - components: - - type: Transform - pos: 6.5,14.5 - parent: 588 - - uid: 96 - components: - - type: Transform - pos: 5.5,14.5 - parent: 588 - - uid: 98 - components: - - type: Transform - pos: 4.5,22.5 - parent: 588 - - uid: 100 - components: - - type: Transform - pos: 1.5,14.5 - parent: 588 - - uid: 101 - components: - - type: Transform - pos: 0.5,14.5 - parent: 588 - - uid: 102 - components: - - type: Transform - pos: 3.5,15.5 - parent: 588 - - uid: 103 - components: - - type: Transform - pos: 3.5,16.5 - parent: 588 - - uid: 104 - components: - - type: Transform - pos: 3.5,13.5 - parent: 588 - - uid: 105 - components: - - type: Transform - pos: 3.5,12.5 - parent: 588 - - uid: 106 - components: - - type: Transform - pos: 14.5,18.5 - parent: 588 - - uid: 107 - components: - - type: Transform - pos: 14.5,19.5 - parent: 588 - - uid: 108 - components: - - type: Transform - pos: 14.5,20.5 - parent: 588 - - uid: 109 - components: - - type: Transform - pos: 14.5,21.5 - parent: 588 - - uid: 110 - components: - - type: Transform - pos: 14.5,22.5 - parent: 588 - - uid: 111 - components: - - type: Transform - pos: 15.5,20.5 - parent: 588 - - uid: 112 - components: - - type: Transform - pos: 16.5,20.5 - parent: 588 - - uid: 113 - components: - - type: Transform - pos: 13.5,20.5 - parent: 588 - - uid: 114 - components: - - type: Transform - pos: 12.5,20.5 - parent: 588 - - uid: 115 - components: - - type: Transform - pos: 8.5,18.5 - parent: 588 - - uid: 116 - components: - - type: Transform - pos: 8.5,19.5 - parent: 588 - - uid: 117 - components: - - type: Transform - pos: 8.5,20.5 - parent: 588 - - uid: 118 - components: - - type: Transform - pos: 8.5,21.5 - parent: 588 - - uid: 119 - components: - - type: Transform - pos: 8.5,22.5 - parent: 588 - - uid: 120 - components: - - type: Transform - pos: 9.5,20.5 - parent: 588 - - uid: 121 - components: - - type: Transform - pos: 10.5,20.5 - parent: 588 - - uid: 122 - components: - - type: Transform - pos: 7.5,20.5 - parent: 588 - - uid: 123 - components: - - type: Transform - pos: 6.5,20.5 - parent: 588 - - uid: 124 - components: - - type: Transform - pos: 2.5,22.5 - parent: 588 - - uid: 125 - components: - - type: Transform - pos: 4.5,21.5 - parent: 588 - - uid: 126 - components: - - type: Transform - pos: 4.5,19.5 - parent: 588 - - uid: 127 - components: - - type: Transform - pos: 3.5,18.5 - parent: 588 - - uid: 128 - components: - - type: Transform - pos: 2.5,18.5 - parent: 588 - - uid: 129 - components: - - type: Transform - pos: 3.5,22.5 - parent: 588 - - uid: 130 - components: - - type: Transform - pos: 0.5,20.5 - parent: 588 - - uid: 131 - components: - - type: Transform - pos: 4.5,18.5 - parent: 588 - - uid: 132 - components: - - type: Transform - pos: 4.5,20.5 - parent: 588 - - uid: 133 - components: - - type: Transform - pos: 1.5,24.5 - parent: 588 - - uid: 134 - components: - - type: Transform - pos: 2.5,25.5 - parent: 588 - - uid: 135 - components: - - type: Transform - pos: 0.5,24.5 - parent: 588 - - uid: 136 - components: - - type: Transform - pos: 2.5,24.5 - parent: 588 - - uid: 137 - components: - - type: Transform - pos: 1.5,28.5 - parent: 588 - - uid: 138 - components: - - type: Transform - pos: 0.5,26.5 - parent: 588 - - uid: 139 - components: - - type: Transform - pos: 2.5,26.5 - parent: 588 - - uid: 147 - components: - - type: Transform - pos: 9.5,28.5 - parent: 588 - - uid: 148 - components: - - type: Transform - pos: 9.5,27.5 - parent: 588 - - uid: 149 - components: - - type: Transform - pos: 9.5,26.5 - parent: 588 - - uid: 150 - components: - - type: Transform - pos: 9.5,25.5 - parent: 588 - - uid: 151 - components: - - type: Transform - pos: 9.5,24.5 - parent: 588 - - uid: 152 - components: - - type: Transform - pos: 8.5,26.5 - parent: 588 - - uid: 153 - components: - - type: Transform - pos: 10.5,26.5 - parent: 588 - - uid: 154 - components: - - type: Transform - pos: 13.5,28.5 - parent: 588 - - uid: 155 - components: - - type: Transform - pos: 13.5,27.5 - parent: 588 - - uid: 156 - components: - - type: Transform - pos: 13.5,26.5 - parent: 588 - - uid: 157 - components: - - type: Transform - pos: 13.5,25.5 - parent: 588 - - uid: 158 - components: - - type: Transform - pos: 13.5,24.5 - parent: 588 - - uid: 159 - components: - - type: Transform - pos: 12.5,26.5 - parent: 588 - - uid: 160 - components: - - type: Transform - pos: 14.5,26.5 - parent: 588 - - uid: 161 - components: - - type: Transform - pos: 0.5,31.5 - parent: 588 - - uid: 162 - components: - - type: Transform - pos: 1.5,31.5 - parent: 588 - - uid: 163 - components: - - type: Transform - pos: 2.5,31.5 - parent: 588 - - uid: 164 - components: - - type: Transform - pos: 3.5,31.5 - parent: 588 - - uid: 165 - components: - - type: Transform - pos: 4.5,31.5 - parent: 588 - - uid: 166 - components: - - type: Transform - pos: 5.5,31.5 - parent: 588 - - uid: 167 - components: - - type: Transform - pos: 6.5,31.5 - parent: 588 - - uid: 168 - components: - - type: Transform - pos: 7.5,31.5 - parent: 588 - - uid: 169 - components: - - type: Transform - pos: 8.5,31.5 - parent: 588 - - uid: 170 - components: - - type: Transform - pos: 9.5,31.5 - parent: 588 - - uid: 171 - components: - - type: Transform - pos: 10.5,31.5 - parent: 588 - - uid: 172 - components: - - type: Transform - pos: 11.5,31.5 - parent: 588 - - uid: 173 - components: - - type: Transform - pos: 12.5,31.5 - parent: 588 - - uid: 174 - components: - - type: Transform - pos: 6.5,30.5 - parent: 588 - - uid: 175 - components: - - type: Transform - pos: 6.5,32.5 - parent: 588 - - uid: 176 - components: - - type: Transform - pos: 26.5,31.5 - parent: 588 - - uid: 177 - components: - - type: Transform - pos: 25.5,31.5 - parent: 588 - - uid: 178 - components: - - type: Transform - pos: 24.5,31.5 - parent: 588 - - uid: 179 - components: - - type: Transform - pos: 23.5,31.5 - parent: 588 - - uid: 180 - components: - - type: Transform - pos: 22.5,31.5 - parent: 588 - - uid: 181 - components: - - type: Transform - pos: 21.5,31.5 - parent: 588 - - uid: 182 - components: - - type: Transform - pos: 20.5,31.5 - parent: 588 - - uid: 183 - components: - - type: Transform - pos: 19.5,31.5 - parent: 588 - - uid: 184 - components: - - type: Transform - pos: 18.5,31.5 - parent: 588 - - uid: 185 - components: - - type: Transform - pos: 17.5,31.5 - parent: 588 - - uid: 186 - components: - - type: Transform - pos: 16.5,31.5 - parent: 588 - - uid: 187 - components: - - type: Transform - pos: 15.5,31.5 - parent: 588 - - uid: 188 - components: - - type: Transform - pos: 14.5,31.5 - parent: 588 - - uid: 189 - components: - - type: Transform - pos: 20.5,32.5 - parent: 588 - - uid: 190 - components: - - type: Transform - pos: 20.5,30.5 - parent: 588 - - uid: 191 - components: - - type: Transform - pos: 22.5,35.5 - parent: 588 - - uid: 192 - components: - - type: Transform - pos: 21.5,35.5 - parent: 588 - - uid: 193 - components: - - type: Transform - pos: 20.5,35.5 - parent: 588 - - uid: 194 - components: - - type: Transform - pos: 19.5,35.5 - parent: 588 - - uid: 195 - components: - - type: Transform - pos: 18.5,35.5 - parent: 588 - - uid: 196 - components: - - type: Transform - pos: 17.5,35.5 - parent: 588 - - uid: 197 - components: - - type: Transform - pos: 16.5,35.5 - parent: 588 - - uid: 198 - components: - - type: Transform - pos: 15.5,35.5 - parent: 588 - - uid: 199 - components: - - type: Transform - pos: 14.5,35.5 - parent: 588 - - uid: 200 - components: - - type: Transform - pos: 13.5,35.5 - parent: 588 - - uid: 201 - components: - - type: Transform - pos: 12.5,35.5 - parent: 588 - - uid: 202 - components: - - type: Transform - pos: 17.5,36.5 - parent: 588 - - uid: 203 - components: - - type: Transform - pos: 17.5,34.5 - parent: 588 - - uid: 204 - components: - - type: Transform - pos: 10.5,35.5 - parent: 588 - - uid: 215 - components: - - type: Transform - pos: 5.5,36.5 - parent: 588 - - uid: 216 - components: - - type: Transform - pos: 5.5,34.5 - parent: 588 - - uid: 217 - components: - - type: Transform - pos: 0.5,39.5 - parent: 588 - - uid: 218 - components: - - type: Transform - pos: 1.5,39.5 - parent: 588 - - uid: 219 - components: - - type: Transform - pos: 2.5,39.5 - parent: 588 - - uid: 220 - components: - - type: Transform - pos: 3.5,39.5 - parent: 588 - - uid: 221 - components: - - type: Transform - pos: 4.5,39.5 - parent: 588 - - uid: 222 - components: - - type: Transform - pos: 5.5,39.5 - parent: 588 - - uid: 223 - components: - - type: Transform - pos: 6.5,39.5 - parent: 588 - - uid: 224 - components: - - type: Transform - pos: 3.5,38.5 - parent: 588 - - uid: 225 - components: - - type: Transform - pos: 3.5,40.5 - parent: 588 - - uid: 226 - components: - - type: Transform - pos: 8.5,39.5 - parent: 588 - - uid: 227 - components: - - type: Transform - pos: 9.5,39.5 - parent: 588 - - uid: 228 - components: - - type: Transform - pos: 10.5,39.5 - parent: 588 - - uid: 229 - components: - - type: Transform - pos: 11.5,39.5 - parent: 588 - - uid: 230 - components: - - type: Transform - pos: 12.5,39.5 - parent: 588 - - uid: 231 - components: - - type: Transform - pos: 13.5,39.5 - parent: 588 - - uid: 232 - components: - - type: Transform - pos: 14.5,39.5 - parent: 588 - - uid: 233 - components: - - type: Transform - pos: 11.5,38.5 - parent: 588 - - uid: 234 - components: - - type: Transform - pos: 11.5,40.5 - parent: 588 - - uid: 235 - components: - - type: Transform - pos: 16.5,39.5 - parent: 588 - - uid: 236 - components: - - type: Transform - pos: 17.5,39.5 - parent: 588 - - uid: 237 - components: - - type: Transform - pos: 18.5,39.5 - parent: 588 - - uid: 238 - components: - - type: Transform - pos: 19.5,39.5 - parent: 588 - - uid: 239 - components: - - type: Transform - pos: 20.5,39.5 - parent: 588 - - uid: 240 - components: - - type: Transform - pos: 21.5,39.5 - parent: 588 - - uid: 241 - components: - - type: Transform - pos: 22.5,39.5 - parent: 588 - - uid: 242 - components: - - type: Transform - pos: 19.5,40.5 - parent: 588 - - uid: 243 - components: - - type: Transform - pos: 19.5,38.5 - parent: 588 - - uid: 284 - components: - - type: Transform - pos: 29.5,26.5 - parent: 588 - - uid: 288 - components: - - type: Transform - pos: 28.5,26.5 - parent: 588 - - uid: 425 - components: - - type: Transform - pos: 1.5,10.5 - parent: 588 - - uid: 438 - components: - - type: Transform - pos: 1.5,9.5 - parent: 588 - - uid: 441 - components: - - type: Transform - pos: 2.5,10.5 - parent: 588 - - uid: 442 - components: - - type: Transform - pos: 3.5,10.5 - parent: 588 - - uid: 443 - components: - - type: Transform - pos: 4.5,10.5 - parent: 588 - - uid: 444 - components: - - type: Transform - pos: 1.5,7.5 - parent: 588 - - uid: 445 - components: - - type: Transform - pos: 1.5,6.5 - parent: 588 - - uid: 446 - components: - - type: Transform - pos: 2.5,6.5 - parent: 588 - - uid: 447 - components: - - type: Transform - pos: 3.5,6.5 - parent: 588 - - uid: 448 - components: - - type: Transform - pos: 4.5,6.5 - parent: 588 - - uid: 449 - components: - - type: Transform - pos: 6.5,6.5 - parent: 588 - - uid: 450 - components: - - type: Transform - pos: 7.5,6.5 - parent: 588 - - uid: 451 - components: - - type: Transform - pos: 8.5,6.5 - parent: 588 - - uid: 452 - components: - - type: Transform - pos: 9.5,6.5 - parent: 588 - - uid: 453 - components: - - type: Transform - pos: 9.5,7.5 - parent: 588 - - uid: 454 - components: - - type: Transform - pos: 9.5,9.5 - parent: 588 - - uid: 455 - components: - - type: Transform - pos: 9.5,10.5 - parent: 588 - - uid: 456 - components: - - type: Transform - pos: 8.5,10.5 - parent: 588 - - uid: 457 - components: - - type: Transform - pos: 7.5,10.5 - parent: 588 - - uid: 472 - components: - - type: Transform - pos: 29.5,14.5 - parent: 588 - - uid: 477 - components: - - type: Transform - pos: 24.5,13.5 - parent: 588 - - uid: 479 - components: - - type: Transform - pos: 30.5,14.5 - parent: 588 - - uid: 493 - components: - - type: Transform - pos: 25.5,13.5 - parent: 588 - - uid: 494 - components: - - type: Transform - pos: 25.5,12.5 - parent: 588 - - uid: 495 - components: - - type: Transform - pos: 26.5,12.5 - parent: 588 - - uid: 496 - components: - - type: Transform - pos: 27.5,12.5 - parent: 588 - - uid: 497 - components: - - type: Transform - pos: 28.5,12.5 - parent: 588 - - uid: 498 - components: - - type: Transform - pos: 29.5,12.5 - parent: 588 - - uid: 500 - components: - - type: Transform - pos: 24.5,12.5 - parent: 588 - - uid: 502 - components: - - type: Transform - pos: 24.5,14.5 - parent: 588 - - uid: 503 - components: - - type: Transform - pos: 24.5,15.5 - parent: 588 - - uid: 504 - components: - - type: Transform - pos: 24.5,16.5 - parent: 588 - - uid: 505 - components: - - type: Transform - pos: 25.5,16.5 - parent: 588 - - uid: 506 - components: - - type: Transform - pos: 26.5,16.5 - parent: 588 - - uid: 507 - components: - - type: Transform - pos: 27.5,16.5 - parent: 588 - - uid: 508 - components: - - type: Transform - pos: 28.5,16.5 - parent: 588 - - uid: 509 - components: - - type: Transform - pos: 29.5,16.5 - parent: 588 - - uid: 514 - components: - - type: Transform - pos: 29.5,13.5 - parent: 588 - - uid: 523 - components: - - type: Transform - pos: 29.5,15.5 - parent: 588 - - uid: 628 - components: - - type: Transform - pos: 1.5,22.5 - parent: 588 - - uid: 639 - components: - - type: Transform - pos: 0.5,22.5 - parent: 588 - - uid: 640 - components: - - type: Transform - pos: 0.5,21.5 - parent: 588 - - uid: 641 - components: - - type: Transform - pos: 0.5,19.5 - parent: 588 - - uid: 642 - components: - - type: Transform - pos: 0.5,18.5 - parent: 588 - - uid: 643 - components: - - type: Transform - pos: 1.5,18.5 - parent: 588 - - uid: 657 - components: - - type: Transform - pos: 2.5,15.5 - parent: 588 - - uid: 661 - components: - - type: Transform - pos: 1.5,15.5 - parent: 588 - - uid: 662 - components: - - type: Transform - pos: 1.5,13.5 - parent: 588 - - uid: 663 - components: - - type: Transform - pos: 2.5,13.5 - parent: 588 - - uid: 664 - components: - - type: Transform - pos: 4.5,13.5 - parent: 588 - - uid: 665 - components: - - type: Transform - pos: 5.5,13.5 - parent: 588 - - uid: 666 - components: - - type: Transform - pos: 5.5,15.5 - parent: 588 - - uid: 667 - components: - - type: Transform - pos: 4.5,15.5 - parent: 588 - - uid: 668 - components: - - type: Transform - pos: 29.5,10.5 - parent: 588 - - uid: 669 - components: - - type: Transform - pos: 28.5,10.5 - parent: 588 - - uid: 670 - components: - - type: Transform - pos: 27.5,10.5 - parent: 588 - - uid: 671 - components: - - type: Transform - pos: 26.5,10.5 - parent: 588 - - uid: 672 - components: - - type: Transform - pos: 25.5,10.5 - parent: 588 - - uid: 673 - components: - - type: Transform - pos: 24.5,10.5 - parent: 588 - - uid: 674 - components: - - type: Transform - pos: 24.5,9.5 - parent: 588 - - uid: 675 - components: - - type: Transform - pos: 24.5,8.5 - parent: 588 - - uid: 676 - components: - - type: Transform - pos: 24.5,7.5 - parent: 588 - - uid: 677 - components: - - type: Transform - pos: 24.5,6.5 - parent: 588 - - uid: 678 - components: - - type: Transform - pos: 25.5,6.5 - parent: 588 - - uid: 679 - components: - - type: Transform - pos: 26.5,6.5 - parent: 588 - - uid: 680 - components: - - type: Transform - pos: 27.5,6.5 - parent: 588 - - uid: 681 - components: - - type: Transform - pos: 28.5,6.5 - parent: 588 - - uid: 682 - components: - - type: Transform - pos: 29.5,6.5 - parent: 588 - - uid: 683 - components: - - type: Transform - pos: 30.5,6.5 - parent: 588 - - uid: 684 - components: - - type: Transform - pos: 31.5,6.5 - parent: 588 - - uid: 685 - components: - - type: Transform - pos: 32.5,6.5 - parent: 588 - - uid: 686 - components: - - type: Transform - pos: 33.5,6.5 - parent: 588 - - uid: 687 - components: - - type: Transform - pos: 34.5,6.5 - parent: 588 - - uid: 688 - components: - - type: Transform - pos: 34.5,7.5 - parent: 588 - - uid: 689 - components: - - type: Transform - pos: 34.5,8.5 - parent: 588 - - uid: 690 - components: - - type: Transform - pos: 34.5,9.5 - parent: 588 - - uid: 691 - components: - - type: Transform - pos: 34.5,10.5 - parent: 588 - - uid: 692 - components: - - type: Transform - pos: 33.5,10.5 - parent: 588 - - uid: 693 - components: - - type: Transform - pos: 32.5,10.5 - parent: 588 - - uid: 694 - components: - - type: Transform - pos: 31.5,10.5 - parent: 588 - - uid: 695 - components: - - type: Transform - pos: 30.5,10.5 - parent: 588 - - uid: 733 - components: - - type: Transform - pos: 20.5,18.5 - parent: 588 - - uid: 734 - components: - - type: Transform - pos: 20.5,19.5 - parent: 588 - - uid: 735 - components: - - type: Transform - pos: 20.5,20.5 - parent: 588 - - uid: 736 - components: - - type: Transform - pos: 20.5,21.5 - parent: 588 - - uid: 737 - components: - - type: Transform - pos: 20.5,22.5 - parent: 588 - - uid: 738 - components: - - type: Transform - pos: 21.5,20.5 - parent: 588 - - uid: 739 - components: - - type: Transform - pos: 22.5,20.5 - parent: 588 - - uid: 740 - components: - - type: Transform - pos: 19.5,20.5 - parent: 588 - - uid: 741 - components: - - type: Transform - pos: 18.5,20.5 - parent: 588 - - uid: 751 - components: - - type: Transform - pos: 32.5,22.5 - parent: 588 - - uid: 752 - components: - - type: Transform - pos: 32.5,21.5 - parent: 588 - - uid: 753 - components: - - type: Transform - pos: 32.5,20.5 - parent: 588 - - uid: 754 - components: - - type: Transform - pos: 32.5,19.5 - parent: 588 - - uid: 755 - components: - - type: Transform - pos: 32.5,18.5 - parent: 588 - - uid: 756 - components: - - type: Transform - pos: 31.5,20.5 - parent: 588 - - uid: 757 - components: - - type: Transform - pos: 30.5,20.5 - parent: 588 - - uid: 758 - components: - - type: Transform - pos: 33.5,20.5 - parent: 588 - - uid: 759 - components: - - type: Transform - pos: 34.5,20.5 - parent: 588 - - uid: 779 - components: - - type: Transform - pos: 25.5,19.5 - parent: 588 - - uid: 780 - components: - - type: Transform - pos: 25.5,18.5 - parent: 588 - - uid: 781 - components: - - type: Transform - pos: 24.5,18.5 - parent: 588 - - uid: 782 - components: - - type: Transform - pos: 24.5,19.5 - parent: 588 - - uid: 783 - components: - - type: Transform - pos: 24.5,20.5 - parent: 588 - - uid: 784 - components: - - type: Transform - pos: 24.5,21.5 - parent: 588 - - uid: 785 - components: - - type: Transform - pos: 24.5,22.5 - parent: 588 - - uid: 786 - components: - - type: Transform - pos: 25.5,22.5 - parent: 588 - - uid: 787 - components: - - type: Transform - pos: 26.5,22.5 - parent: 588 - - uid: 788 - components: - - type: Transform - pos: 27.5,22.5 - parent: 588 - - uid: 789 - components: - - type: Transform - pos: 28.5,22.5 - parent: 588 - - uid: 790 - components: - - type: Transform - pos: 28.5,21.5 - parent: 588 - - uid: 791 - components: - - type: Transform - pos: 28.5,20.5 - parent: 588 - - uid: 792 - components: - - type: Transform - pos: 28.5,19.5 - parent: 588 - - uid: 793 - components: - - type: Transform - pos: 28.5,18.5 - parent: 588 - - uid: 794 - components: - - type: Transform - pos: 27.5,18.5 - parent: 588 - - uid: 795 - components: - - type: Transform - pos: 26.5,18.5 - parent: 588 - - uid: 815 - components: - - type: Transform - pos: 0.5,25.5 - parent: 588 - - uid: 816 - components: - - type: Transform - pos: 0.5,27.5 - parent: 588 - - uid: 817 - components: - - type: Transform - pos: 0.5,28.5 - parent: 588 - - uid: 818 - components: - - type: Transform - pos: 2.5,28.5 - parent: 588 - - uid: 819 - components: - - type: Transform - pos: 2.5,27.5 - parent: 588 - - uid: 869 - components: - - type: Transform - pos: 5.5,24.5 - parent: 588 - - uid: 870 - components: - - type: Transform - pos: 6.5,24.5 - parent: 588 - - uid: 871 - components: - - type: Transform - pos: 6.5,25.5 - parent: 588 - - uid: 872 - components: - - type: Transform - pos: 6.5,26.5 - parent: 588 - - uid: 873 - components: - - type: Transform - pos: 6.5,27.5 - parent: 588 - - uid: 874 - components: - - type: Transform - pos: 6.5,28.5 - parent: 588 - - uid: 875 - components: - - type: Transform - pos: 5.5,28.5 - parent: 588 - - uid: 876 - components: - - type: Transform - pos: 4.5,28.5 - parent: 588 - - uid: 877 - components: - - type: Transform - pos: 4.5,27.5 - parent: 588 - - uid: 878 - components: - - type: Transform - pos: 4.5,26.5 - parent: 588 - - uid: 912 - components: - - type: Transform - pos: 6.5,10.5 - parent: 588 - - uid: 927 - components: - - type: Transform - pos: 34.5,36.5 - parent: 588 - - uid: 928 - components: - - type: Transform - pos: 32.5,36.5 - parent: 588 - - uid: 996 - components: - - type: Transform - pos: 21.5,32.5 - parent: 588 - - uid: 1079 - components: - - type: Transform - pos: 32.5,35.5 - parent: 588 - - uid: 1080 - components: - - type: Transform - pos: 31.5,35.5 - parent: 588 - - uid: 1081 - components: - - type: Transform - pos: 32.5,34.5 - parent: 588 - - uid: 1082 - components: - - type: Transform - pos: 29.5,34.5 - parent: 588 - - uid: 1083 - components: - - type: Transform - pos: 24.5,35.5 - parent: 588 - - uid: 1084 - components: - - type: Transform - pos: 27.5,35.5 - parent: 588 - - uid: 1085 - components: - - type: Transform - pos: 29.5,35.5 - parent: 588 - - uid: 1086 - components: - - type: Transform - pos: 28.5,35.5 - parent: 588 - - uid: 1089 - components: - - type: Transform - pos: 4.5,36.5 - parent: 588 - - uid: 1090 - components: - - type: Transform - pos: 33.5,34.5 - parent: 588 - - uid: 1091 - components: - - type: Transform - pos: 5.5,35.5 - parent: 588 - - uid: 1092 - components: - - type: Transform - pos: 29.5,36.5 - parent: 588 - - uid: 1093 - components: - - type: Transform - pos: 34.5,34.5 - parent: 588 - - uid: 1094 - components: - - type: Transform - pos: 34.5,35.5 - parent: 588 - - uid: 1095 - components: - - type: Transform - pos: 26.5,35.5 - parent: 588 - - uid: 1096 - components: - - type: Transform - pos: 25.5,35.5 - parent: 588 - - uid: 1097 - components: - - type: Transform - pos: 33.5,36.5 - parent: 588 - - uid: 1098 - components: - - type: Transform - pos: 30.5,35.5 - parent: 588 - - uid: 1117 - components: - - type: Transform - pos: 16.5,26.5 - parent: 588 - - uid: 1121 - components: - - type: Transform - pos: 17.5,26.5 - parent: 588 - - uid: 1122 - components: - - type: Transform - pos: 18.5,26.5 - parent: 588 - - uid: 1123 - components: - - type: Transform - pos: 17.5,27.5 - parent: 588 - - uid: 1124 - components: - - type: Transform - pos: 17.5,28.5 - parent: 588 - - uid: 1125 - components: - - type: Transform - pos: 17.5,24.5 - parent: 588 - - uid: 1126 - components: - - type: Transform - pos: 17.5,25.5 - parent: 588 - - uid: 1127 - components: - - type: Transform - pos: 20.5,26.5 - parent: 588 - - uid: 1128 - components: - - type: Transform - pos: 21.5,26.5 - parent: 588 - - uid: 1129 - components: - - type: Transform - pos: 22.5,26.5 - parent: 588 - - uid: 1130 - components: - - type: Transform - pos: 21.5,27.5 - parent: 588 - - uid: 1131 - components: - - type: Transform - pos: 21.5,28.5 - parent: 588 - - uid: 1132 - components: - - type: Transform - pos: 21.5,25.5 - parent: 588 - - uid: 1133 - components: - - type: Transform - pos: 21.5,24.5 - parent: 588 - - uid: 1134 - components: - - type: Transform - pos: 24.5,26.5 - parent: 588 - - uid: 1135 - components: - - type: Transform - pos: 25.5,26.5 - parent: 588 - - uid: 1136 - components: - - type: Transform - pos: 26.5,26.5 - parent: 588 - - uid: 1137 - components: - - type: Transform - pos: 25.5,27.5 - parent: 588 - - uid: 1138 - components: - - type: Transform - pos: 25.5,28.5 - parent: 588 - - uid: 1139 - components: - - type: Transform - pos: 25.5,25.5 - parent: 588 - - uid: 1140 - components: - - type: Transform - pos: 25.5,24.5 - parent: 588 - - uid: 1170 - components: - - type: Transform - pos: 3.5,36.5 - parent: 588 - - uid: 1171 - components: - - type: Transform - pos: 2.5,36.5 - parent: 588 - - uid: 1172 - components: - - type: Transform - pos: 1.5,36.5 - parent: 588 - - uid: 1173 - components: - - type: Transform - pos: 0.5,36.5 - parent: 588 - - uid: 1174 - components: - - type: Transform - pos: 0.5,35.5 - parent: 588 - - uid: 1175 - components: - - type: Transform - pos: 6.5,34.5 - parent: 588 - - uid: 1176 - components: - - type: Transform - pos: 7.5,34.5 - parent: 588 - - uid: 1177 - components: - - type: Transform - pos: 8.5,34.5 - parent: 588 - - uid: 1178 - components: - - type: Transform - pos: 9.5,34.5 - parent: 588 - - uid: 1179 - components: - - type: Transform - pos: 10.5,34.5 - parent: 588 - - uid: 1268 - components: - - type: Transform - pos: 30.5,26.5 - parent: 588 - - uid: 1269 - components: - - type: Transform - pos: 29.5,27.5 - parent: 588 - - uid: 1270 - components: - - type: Transform - pos: 29.5,28.5 - parent: 588 - - uid: 1271 - components: - - type: Transform - pos: 29.5,25.5 - parent: 588 - - uid: 1272 - components: - - type: Transform - pos: 29.5,24.5 - parent: 588 - - uid: 1273 - components: - - type: Transform - pos: 32.5,26.5 - parent: 588 - - uid: 1274 - components: - - type: Transform - pos: 33.5,26.5 - parent: 588 - - uid: 1275 - components: - - type: Transform - pos: 34.5,26.5 - parent: 588 - - uid: 1276 - components: - - type: Transform - pos: 33.5,27.5 - parent: 588 - - uid: 1277 - components: - - type: Transform - pos: 33.5,28.5 - parent: 588 - - uid: 1278 - components: - - type: Transform - pos: 33.5,25.5 - parent: 588 - - uid: 1279 - components: - - type: Transform - pos: 33.5,24.5 - parent: 588 - - uid: 1306 - components: - - type: Transform - pos: 27.5,40.5 - parent: 588 - - uid: 1307 - components: - - type: Transform - pos: 26.5,40.5 - parent: 588 - - uid: 1308 - components: - - type: Transform - pos: 25.5,40.5 - parent: 588 - - uid: 1309 - components: - - type: Transform - pos: 24.5,40.5 - parent: 588 - - uid: 1310 - components: - - type: Transform - pos: 24.5,39.5 - parent: 588 - - uid: 1311 - components: - - type: Transform - pos: 24.5,38.5 - parent: 588 - - uid: 1312 - components: - - type: Transform - pos: 25.5,38.5 - parent: 588 - - uid: 1313 - components: - - type: Transform - pos: 26.5,38.5 - parent: 588 - - uid: 1314 - components: - - type: Transform - pos: 27.5,38.5 - parent: 588 - - uid: 1315 - components: - - type: Transform - pos: 28.5,38.5 - parent: 588 - - uid: 1316 - components: - - type: Transform - pos: 29.5,38.5 - parent: 588 - - uid: 1317 - components: - - type: Transform - pos: 30.5,38.5 - parent: 588 - - uid: 1318 - components: - - type: Transform - pos: 30.5,39.5 - parent: 588 - - uid: 1426 - components: - - type: Transform - pos: 11.5,42.5 - parent: 588 - - uid: 1427 - components: - - type: Transform - pos: 11.5,43.5 - parent: 588 - - uid: 1428 - components: - - type: Transform - pos: 11.5,44.5 - parent: 588 - - uid: 1429 - components: - - type: Transform - pos: 11.5,45.5 - parent: 588 - - uid: 1430 - components: - - type: Transform - pos: 11.5,46.5 - parent: 588 - - uid: 1431 - components: - - type: Transform - pos: 11.5,47.5 - parent: 588 - - uid: 1432 - components: - - type: Transform - pos: 11.5,48.5 - parent: 588 - - uid: 1433 - components: - - type: Transform - pos: 10.5,45.5 - parent: 588 - - uid: 1434 - components: - - type: Transform - pos: 9.5,45.5 - parent: 588 - - uid: 1435 - components: - - type: Transform - pos: 8.5,45.5 - parent: 588 - - uid: 1436 - components: - - type: Transform - pos: 12.5,45.5 - parent: 588 - - uid: 1437 - components: - - type: Transform - pos: 13.5,45.5 - parent: 588 - - uid: 1438 - components: - - type: Transform - pos: 14.5,45.5 - parent: 588 - - uid: 1439 - components: - - type: Transform - pos: 13.5,46.5 - parent: 588 - - uid: 1440 - components: - - type: Transform - pos: 13.5,47.5 - parent: 588 - - uid: 1441 - components: - - type: Transform - pos: 9.5,46.5 - parent: 588 - - uid: 1442 - components: - - type: Transform - pos: 9.5,47.5 - parent: 588 - - uid: 1443 - components: - - type: Transform - pos: 10.5,43.5 - parent: 588 - - uid: 1444 - components: - - type: Transform - pos: 9.5,43.5 - parent: 588 - - uid: 1445 - components: - - type: Transform - pos: 12.5,43.5 - parent: 588 - - uid: 1446 - components: - - type: Transform - pos: 13.5,43.5 - parent: 588 - - uid: 1447 - components: - - type: Transform - pos: 3.5,42.5 - parent: 588 - - uid: 1448 - components: - - type: Transform - pos: 3.5,43.5 - parent: 588 - - uid: 1449 - components: - - type: Transform - pos: 3.5,44.5 - parent: 588 - - uid: 1450 - components: - - type: Transform - pos: 3.5,45.5 - parent: 588 - - uid: 1451 - components: - - type: Transform - pos: 3.5,46.5 - parent: 588 - - uid: 1452 - components: - - type: Transform - pos: 3.5,47.5 - parent: 588 - - uid: 1453 - components: - - type: Transform - pos: 3.5,48.5 - parent: 588 - - uid: 1454 - components: - - type: Transform - pos: 0.5,45.5 - parent: 588 - - uid: 1455 - components: - - type: Transform - pos: 1.5,45.5 - parent: 588 - - uid: 1456 - components: - - type: Transform - pos: 2.5,45.5 - parent: 588 - - uid: 1457 - components: - - type: Transform - pos: 3.5,45.5 - parent: 588 - - uid: 1458 - components: - - type: Transform - pos: 4.5,45.5 - parent: 588 - - uid: 1459 - components: - - type: Transform - pos: 5.5,45.5 - parent: 588 - - uid: 1460 - components: - - type: Transform - pos: 6.5,45.5 - parent: 588 - - uid: 1529 - components: - - type: Transform - pos: 19.5,47.5 - parent: 588 - - uid: 1530 - components: - - type: Transform - pos: 19.5,48.5 - parent: 588 - - uid: 1531 - components: - - type: Transform - pos: 18.5,48.5 - parent: 588 - - uid: 1532 - components: - - type: Transform - pos: 17.5,48.5 - parent: 588 - - uid: 1533 - components: - - type: Transform - pos: 16.5,48.5 - parent: 588 - - uid: 1534 - components: - - type: Transform - pos: 16.5,47.5 - parent: 588 - - uid: 1535 - components: - - type: Transform - pos: 16.5,46.5 - parent: 588 - - uid: 1536 - components: - - type: Transform - pos: 16.5,45.5 - parent: 588 - - uid: 1537 - components: - - type: Transform - pos: 16.5,44.5 - parent: 588 - - uid: 1538 - components: - - type: Transform - pos: 16.5,43.5 - parent: 588 - - uid: 1539 - components: - - type: Transform - pos: 16.5,42.5 - parent: 588 - - uid: 1540 - components: - - type: Transform - pos: 17.5,42.5 - parent: 588 - - uid: 1541 - components: - - type: Transform - pos: 18.5,42.5 - parent: 588 - - uid: 1542 - components: - - type: Transform - pos: 19.5,42.5 - parent: 588 - - uid: 1543 - components: - - type: Transform - pos: 20.5,42.5 - parent: 588 - - uid: 1544 - components: - - type: Transform - pos: 21.5,42.5 - parent: 588 - - uid: 1545 - components: - - type: Transform - pos: 22.5,42.5 - parent: 588 - - uid: 1546 - components: - - type: Transform - pos: 22.5,43.5 - parent: 588 - - uid: 1547 - components: - - type: Transform - pos: 22.5,44.5 - parent: 588 - - uid: 1548 - components: - - type: Transform - pos: 22.5,45.5 - parent: 588 - - uid: 1549 - components: - - type: Transform - pos: 22.5,46.5 - parent: 588 - - uid: 1550 - components: - - type: Transform - pos: 22.5,47.5 - parent: 588 - - uid: 1551 - components: - - type: Transform - pos: 22.5,48.5 - parent: 588 - - uid: 1552 - components: - - type: Transform - pos: 21.5,48.5 - parent: 588 - - uid: 1553 - components: - - type: Transform - pos: 20.5,48.5 - parent: 588 - - uid: 1554 - components: - - type: Transform - pos: 19.5,43.5 - parent: 588 - - uid: 1555 - components: - - type: Transform - pos: 19.5,44.5 - parent: 588 - - uid: 1556 - components: - - type: Transform - pos: 19.5,45.5 - parent: 588 - - uid: 1557 - components: - - type: Transform - pos: 19.5,46.5 - parent: 588 - - uid: 1807 - components: - - type: Transform - pos: 27.5,42.5 - parent: 588 - - uid: 1808 - components: - - type: Transform - pos: 27.5,43.5 - parent: 588 - - uid: 1809 - components: - - type: Transform - pos: 27.5,44.5 - parent: 588 - - uid: 1810 - components: - - type: Transform - pos: 27.5,45.5 - parent: 588 - - uid: 1811 - components: - - type: Transform - pos: 27.5,46.5 - parent: 588 - - uid: 1812 - components: - - type: Transform - pos: 27.5,47.5 - parent: 588 - - uid: 1813 - components: - - type: Transform - pos: 27.5,48.5 - parent: 588 - - uid: 1814 - components: - - type: Transform - pos: 28.5,45.5 - parent: 588 - - uid: 1815 - components: - - type: Transform - pos: 29.5,45.5 - parent: 588 - - uid: 1816 - components: - - type: Transform - pos: 30.5,45.5 - parent: 588 - - uid: 1817 - components: - - type: Transform - pos: 26.5,45.5 - parent: 588 - - uid: 1818 - components: - - type: Transform - pos: 25.5,45.5 - parent: 588 - - uid: 1819 - components: - - type: Transform - pos: 24.5,45.5 - parent: 588 - - uid: 1820 - components: - - type: Transform - pos: 26.5,47.5 - parent: 588 - - uid: 1821 - components: - - type: Transform - pos: 25.5,47.5 - parent: 588 - - uid: 1822 - components: - - type: Transform - pos: 28.5,47.5 - parent: 588 - - uid: 1823 - components: - - type: Transform - pos: 29.5,47.5 - parent: 588 - - uid: 1824 - components: - - type: Transform - pos: 26.5,43.5 - parent: 588 - - uid: 1825 - components: - - type: Transform - pos: 25.5,43.5 - parent: 588 - - uid: 1826 - components: - - type: Transform - pos: 28.5,43.5 - parent: 588 - - uid: 1827 - components: - - type: Transform - pos: 29.5,43.5 - parent: 588 -- proto: CableApcStack1 - entities: - - uid: 655 - components: - - type: Transform - pos: 16.273203,19.650417 - parent: 588 -- proto: CableHV - entities: - - uid: 462 - components: - - type: Transform - pos: 27.5,13.5 - parent: 588 - - uid: 466 - components: - - type: Transform - pos: 26.5,13.5 - parent: 588 - - uid: 468 - components: - - type: Transform - pos: 28.5,13.5 - parent: 588 - - uid: 485 - components: - - type: Transform - pos: 26.5,15.5 - parent: 588 - - uid: 486 - components: - - type: Transform - pos: 26.5,14.5 - parent: 588 - - uid: 487 - components: - - type: Transform - pos: 27.5,14.5 - parent: 588 - - uid: 488 - components: - - type: Transform - pos: 28.5,14.5 - parent: 588 - - uid: 489 - components: - - type: Transform - pos: 28.5,15.5 - parent: 588 - - uid: 743 - components: - - type: Transform - pos: 26.5,21.5 - parent: 588 - - uid: 744 - components: - - type: Transform - pos: 27.5,21.5 - parent: 588 - - uid: 745 - components: - - type: Transform - pos: 26.5,20.5 - parent: 588 - - uid: 746 - components: - - type: Transform - pos: 25.5,21.5 - parent: 588 - - uid: 768 - components: - - type: Transform - pos: 26.5,19.5 - parent: 588 - - uid: 778 - components: - - type: Transform - pos: 27.5,19.5 - parent: 588 - - uid: 978 - components: - - type: Transform - pos: 16.5,32.5 - parent: 588 - - uid: 979 - components: - - type: Transform - pos: 15.5,31.5 - parent: 588 - - uid: 980 - components: - - type: Transform - pos: 16.5,31.5 - parent: 588 - - uid: 981 - components: - - type: Transform - pos: 17.5,31.5 - parent: 588 - - uid: 982 - components: - - type: Transform - pos: 18.5,31.5 - parent: 588 - - uid: 983 - components: - - type: Transform - pos: 22.5,31.5 - parent: 588 - - uid: 984 - components: - - type: Transform - pos: 23.5,31.5 - parent: 588 - - uid: 985 - components: - - type: Transform - pos: 24.5,31.5 - parent: 588 - - uid: 986 - components: - - type: Transform - pos: 24.5,32.5 - parent: 588 - - uid: 987 - components: - - type: Transform - pos: 25.5,31.5 - parent: 588 - - uid: 989 - components: - - type: Transform - pos: 18.5,32.5 - parent: 588 - - uid: 990 - components: - - type: Transform - pos: 19.5,32.5 - parent: 588 - - uid: 991 - components: - - type: Transform - pos: 20.5,32.5 - parent: 588 - - uid: 992 - components: - - type: Transform - pos: 21.5,32.5 - parent: 588 - - uid: 993 - components: - - type: Transform - pos: 22.5,32.5 - parent: 588 - - uid: 1003 - components: - - type: Transform - pos: 16.5,30.5 - parent: 588 - - uid: 1004 - components: - - type: Transform - pos: 24.5,30.5 - parent: 588 - - uid: 1510 - components: - - type: Transform - pos: 18.5,44.5 - parent: 588 - - uid: 1511 - components: - - type: Transform - pos: 18.5,45.5 - parent: 588 - - uid: 1512 - components: - - type: Transform - pos: 20.5,45.5 - parent: 588 - - uid: 1513 - components: - - type: Transform - pos: 20.5,44.5 - parent: 588 - - uid: 1514 - components: - - type: Transform - pos: 19.5,44.5 - parent: 588 - - uid: 1522 - components: - - type: Transform - pos: 17.5,46.5 - parent: 588 - - uid: 1523 - components: - - type: Transform - pos: 21.5,46.5 - parent: 588 - - uid: 1524 - components: - - type: Transform - pos: 20.5,46.5 - parent: 588 - - uid: 1525 - components: - - type: Transform - pos: 18.5,46.5 - parent: 588 - - uid: 1526 - components: - - type: Transform - pos: 19.5,46.5 - parent: 588 -- proto: CableMV - entities: - - uid: 490 - components: - - type: Transform - pos: 27.5,13.5 - parent: 588 - - uid: 491 - components: - - type: Transform - pos: 26.5,13.5 - parent: 588 - - uid: 492 - components: - - type: Transform - pos: 25.5,13.5 - parent: 588 - - uid: 775 - components: - - type: Transform - pos: 27.5,19.5 - parent: 588 - - uid: 776 - components: - - type: Transform - pos: 26.5,19.5 - parent: 588 - - uid: 777 - components: - - type: Transform - pos: 25.5,19.5 - parent: 588 - - uid: 1527 - components: - - type: Transform - pos: 19.5,46.5 - parent: 588 - - uid: 1528 - components: - - type: Transform - pos: 19.5,47.5 - parent: 588 -- proto: CableTerminal - entities: - - uid: 463 - components: - - type: Transform - pos: 26.5,14.5 - parent: 588 - - uid: 464 - components: - - type: Transform - pos: 27.5,14.5 - parent: 588 - - uid: 465 - components: - - type: Transform - pos: 28.5,14.5 - parent: 588 - - uid: 767 - components: - - type: Transform - pos: 26.5,20.5 - parent: 588 - - uid: 970 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 18.5,31.5 - parent: 588 - - uid: 976 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 22.5,31.5 - parent: 588 - - uid: 1558 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 18.5,45.5 - parent: 588 - - uid: 1559 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 20.5,45.5 - parent: 588 -- proto: Carpet - entities: - - uid: 1632 - components: - - type: Transform - pos: 24.5,0.5 - parent: 588 - - uid: 1633 - components: - - type: Transform - pos: 25.5,0.5 - parent: 588 - - uid: 1634 - components: - - type: Transform - pos: 25.5,1.5 - parent: 588 - - uid: 1635 - components: - - type: Transform - pos: 24.5,1.5 - parent: 588 -- proto: CarpetBlue - entities: - - uid: 1636 - components: - - type: Transform - pos: 27.5,0.5 - parent: 588 - - uid: 1637 - components: - - type: Transform - pos: 28.5,1.5 - parent: 588 - - uid: 1638 - components: - - type: Transform - pos: 27.5,1.5 - parent: 588 - - uid: 1639 - components: - - type: Transform - pos: 28.5,0.5 - parent: 588 -- proto: CarpetPurple - entities: - - uid: 1626 - components: - - type: Transform - pos: 25.5,4.5 - parent: 588 - - uid: 1627 - components: - - type: Transform - pos: 25.5,3.5 - parent: 588 - - uid: 1628 - components: - - type: Transform - pos: 26.5,3.5 - parent: 588 - - uid: 1629 - components: - - type: Transform - pos: 27.5,3.5 - parent: 588 - - uid: 1630 - components: - - type: Transform - pos: 27.5,4.5 - parent: 588 - - uid: 1631 - components: - - type: Transform - pos: 26.5,4.5 - parent: 588 -- proto: Catwalk - entities: - - uid: 141 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 6.5,24.5 - parent: 588 - - uid: 142 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 6.5,26.5 - parent: 588 - - uid: 143 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 6.5,25.5 - parent: 588 - - uid: 248 - components: - - type: Transform - pos: 8.5,4.5 - parent: 588 - - uid: 249 - components: - - type: Transform - pos: 8.5,2.5 - parent: 588 - - uid: 250 - components: - - type: Transform - pos: 8.5,3.5 - parent: 588 - - uid: 251 - components: - - type: Transform - pos: 8.5,1.5 - parent: 588 - - uid: 471 - components: - - type: Transform - pos: 27.5,14.5 - parent: 588 - - uid: 473 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 29.5,12.5 - parent: 588 - - uid: 474 - components: - - type: Transform - pos: 28.5,14.5 - parent: 588 - - uid: 475 - components: - - type: Transform - pos: 26.5,14.5 - parent: 588 - - uid: 512 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 25.5,12.5 - parent: 588 - - uid: 513 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 28.5,12.5 - parent: 588 - - uid: 515 - components: - - type: Transform - pos: 25.5,16.5 - parent: 588 - - uid: 516 - components: - - type: Transform - pos: 26.5,16.5 - parent: 588 - - uid: 517 - components: - - type: Transform - pos: 27.5,16.5 - parent: 588 - - uid: 518 - components: - - type: Transform - pos: 28.5,16.5 - parent: 588 - - uid: 519 - components: - - type: Transform - pos: 29.5,16.5 - parent: 588 - - uid: 520 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 27.5,12.5 - parent: 588 - - uid: 521 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 26.5,12.5 - parent: 588 - - uid: 769 - components: - - type: Transform - pos: 26.5,20.5 - parent: 588 - - uid: 832 - components: - - type: Transform - pos: 3.5,31.5 - parent: 588 - - uid: 833 - components: - - type: Transform - pos: 4.5,31.5 - parent: 588 - - uid: 834 - components: - - type: Transform - pos: 5.5,31.5 - parent: 588 - - uid: 835 - components: - - type: Transform - pos: 6.5,31.5 - parent: 588 - - uid: 836 - components: - - type: Transform - pos: 7.5,31.5 - parent: 588 - - uid: 837 - components: - - type: Transform - pos: 8.5,31.5 - parent: 588 - - uid: 838 - components: - - type: Transform - pos: 9.5,31.5 - parent: 588 - - uid: 839 - components: - - type: Transform - pos: 6.5,32.5 - parent: 588 - - uid: 840 - components: - - type: Transform - pos: 6.5,30.5 - parent: 588 - - uid: 841 - components: - - type: Transform - pos: 5.5,32.5 - parent: 588 - - uid: 842 - components: - - type: Transform - pos: 7.5,32.5 - parent: 588 - - uid: 843 - components: - - type: Transform - pos: 5.5,30.5 - parent: 588 - - uid: 844 - components: - - type: Transform - pos: 7.5,30.5 - parent: 588 - - uid: 861 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 6.5,27.5 - parent: 588 - - uid: 862 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 6.5,28.5 - parent: 588 - - uid: 863 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 4.5,28.5 - parent: 588 - - uid: 864 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 4.5,27.5 - parent: 588 - - uid: 865 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 4.5,26.5 - parent: 588 - - uid: 879 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 3.5,40.5 - parent: 588 - - uid: 880 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 3.5,39.5 - parent: 588 - - uid: 881 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 2.5,39.5 - parent: 588 - - uid: 882 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 1.5,39.5 - parent: 588 - - uid: 883 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 4.5,39.5 - parent: 588 - - uid: 884 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 5.5,39.5 - parent: 588 - - uid: 885 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 3.5,38.5 - parent: 588 - - uid: 914 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 3.5,10.5 - parent: 588 - - uid: 915 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 4.5,10.5 - parent: 588 - - uid: 916 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 5.5,10.5 - parent: 588 - - uid: 917 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 6.5,10.5 - parent: 588 - - uid: 918 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 7.5,10.5 - parent: 588 - - uid: 919 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 3.5,6.5 - parent: 588 - - uid: 920 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 4.5,6.5 - parent: 588 - - uid: 921 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 5.5,6.5 - parent: 588 - - uid: 922 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 6.5,6.5 - parent: 588 - - uid: 923 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 7.5,6.5 - parent: 588 - - uid: 955 - components: - - type: Transform - pos: 15.5,31.5 - parent: 588 - - uid: 956 - components: - - type: Transform - pos: 16.5,31.5 - parent: 588 - - uid: 957 - components: - - type: Transform - pos: 17.5,31.5 - parent: 588 - - uid: 958 - components: - - type: Transform - pos: 18.5,31.5 - parent: 588 - - uid: 959 - components: - - type: Transform - pos: 19.5,31.5 - parent: 588 - - uid: 960 - components: - - type: Transform - pos: 20.5,31.5 - parent: 588 - - uid: 961 - components: - - type: Transform - pos: 21.5,31.5 - parent: 588 - - uid: 962 - components: - - type: Transform - pos: 22.5,31.5 - parent: 588 - - uid: 963 - components: - - type: Transform - pos: 23.5,31.5 - parent: 588 - - uid: 964 - components: - - type: Transform - pos: 24.5,31.5 - parent: 588 - - uid: 965 - components: - - type: Transform - pos: 25.5,31.5 - parent: 588 - - uid: 994 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 20.5,32.5 - parent: 588 - - uid: 1158 - components: - - type: Transform - pos: 8.5,0.5 - parent: 588 - - uid: 1180 - components: - - type: Transform - pos: 1.5,36.5 - parent: 588 - - uid: 1181 - components: - - type: Transform - pos: 2.5,36.5 - parent: 588 - - uid: 1182 - components: - - type: Transform - pos: 3.5,36.5 - parent: 588 - - uid: 1183 - components: - - type: Transform - pos: 4.5,36.5 - parent: 588 - - uid: 1184 - components: - - type: Transform - pos: 5.5,36.5 - parent: 588 - - uid: 1185 - components: - - type: Transform - pos: 5.5,34.5 - parent: 588 - - uid: 1186 - components: - - type: Transform - pos: 6.5,34.5 - parent: 588 - - uid: 1187 - components: - - type: Transform - pos: 7.5,34.5 - parent: 588 - - uid: 1188 - components: - - type: Transform - pos: 8.5,34.5 - parent: 588 - - uid: 1189 - components: - - type: Transform - pos: 9.5,34.5 - parent: 588 - - uid: 1320 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 27.5,40.5 - parent: 588 - - uid: 1321 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 26.5,40.5 - parent: 588 - - uid: 1322 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 25.5,40.5 - parent: 588 - - uid: 1323 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 25.5,38.5 - parent: 588 - - uid: 1324 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 26.5,38.5 - parent: 588 - - uid: 1325 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 27.5,38.5 - parent: 588 - - uid: 1326 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 28.5,38.5 - parent: 588 - - uid: 1327 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 29.5,38.5 - parent: 588 - - uid: 1331 - components: - - type: Transform - pos: 4.5,45.5 - parent: 588 - - uid: 1336 - components: - - type: Transform - pos: 2.5,45.5 - parent: 588 - - uid: 1339 - components: - - type: Transform - pos: 3.5,45.5 - parent: 588 - - uid: 1342 - components: - - type: Transform - pos: 3.5,46.5 - parent: 588 - - uid: 1344 - components: - - type: Transform - pos: 3.5,44.5 - parent: 588 - - uid: 1346 - components: - - type: Transform - pos: 2.5,44.5 - parent: 588 - - uid: 1347 - components: - - type: Transform - pos: 4.5,44.5 - parent: 588 - - uid: 1348 - components: - - type: Transform - pos: 4.5,44.5 - parent: 588 - - uid: 1349 - components: - - type: Transform - pos: 4.5,46.5 - parent: 588 - - uid: 1350 - components: - - type: Transform - pos: 2.5,46.5 - parent: 588 - - uid: 1494 - components: - - type: Transform - pos: 17.5,42.5 - parent: 588 - - uid: 1495 - components: - - type: Transform - pos: 18.5,42.5 - parent: 588 - - uid: 1496 - components: - - type: Transform - pos: 19.5,42.5 - parent: 588 - - uid: 1497 - components: - - type: Transform - pos: 20.5,42.5 - parent: 588 - - uid: 1498 - components: - - type: Transform - pos: 21.5,42.5 - parent: 588 - - uid: 1499 - components: - - type: Transform - pos: 17.5,48.5 - parent: 588 - - uid: 1500 - components: - - type: Transform - pos: 18.5,48.5 - parent: 588 - - uid: 1501 - components: - - type: Transform - pos: 19.5,48.5 - parent: 588 - - uid: 1502 - components: - - type: Transform - pos: 20.5,48.5 - parent: 588 - - uid: 1503 - components: - - type: Transform - pos: 21.5,48.5 - parent: 588 - - uid: 1516 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 19.5,44.5 - parent: 588 - - uid: 1517 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 19.5,45.5 - parent: 588 - - uid: 1518 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 18.5,45.5 - parent: 588 - - uid: 1519 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 20.5,45.5 - parent: 588 - - uid: 1582 - components: - - type: Transform - pos: 28.5,22.5 - parent: 588 - - uid: 1583 - components: - - type: Transform - pos: 28.5,21.5 - parent: 588 - - uid: 1584 - components: - - type: Transform - pos: 28.5,20.5 - parent: 588 - - uid: 1585 - components: - - type: Transform - pos: 28.5,19.5 - parent: 588 - - uid: 1586 - components: - - type: Transform - pos: 28.5,18.5 - parent: 588 - - uid: 1587 - components: - - type: Transform - pos: 24.5,22.5 - parent: 588 - - uid: 1588 - components: - - type: Transform - pos: 24.5,21.5 - parent: 588 - - uid: 1589 - components: - - type: Transform - pos: 24.5,20.5 - parent: 588 - - uid: 1590 - components: - - type: Transform - pos: 24.5,19.5 - parent: 588 - - uid: 1591 - components: - - type: Transform - pos: 24.5,18.5 - parent: 588 -- proto: Cautery - entities: - - uid: 1474 - components: - - type: Transform - pos: 8.533231,42.775993 - parent: 588 -- proto: Chair - entities: - - uid: 357 - components: - - type: Transform - pos: 23.5,4.5 - parent: 588 - - uid: 421 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 14.5,9.5 - parent: 588 - - uid: 422 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 20.5,9.5 - parent: 588 - - uid: 423 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 20.5,7.5 - parent: 588 - - uid: 533 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 19.5,14.5 - parent: 588 - - uid: 534 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 19.5,15.5 - parent: 588 - - uid: 537 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 21.5,14.5 - parent: 588 - - uid: 569 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 11.5,13.5 - parent: 588 - - uid: 716 - components: - - type: Transform - pos: 18.5,19.5 - parent: 588 - - uid: 717 - components: - - type: Transform - pos: 19.5,19.5 - parent: 588 - - uid: 718 - components: - - type: Transform - pos: 22.5,19.5 - parent: 588 - - uid: 719 - components: - - type: Transform - pos: 21.5,19.5 - parent: 588 - - uid: 1280 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 17.5,38.5 - parent: 588 - - uid: 1281 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 18.5,38.5 - parent: 588 - - uid: 1282 - components: - - type: Transform - pos: 20.5,40.5 - parent: 588 - - uid: 1283 - components: - - type: Transform - pos: 21.5,40.5 - parent: 588 - - uid: 1865 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 14.5,7.5 - parent: 588 -- proto: ChairFolding - entities: - - uid: 344 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 31.5,0.5 - parent: 588 - - uid: 345 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 32.5,1.5 - parent: 588 - - uid: 346 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 32.5,0.5 - parent: 588 - - uid: 347 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 31.5,3.5 - parent: 588 - - uid: 348 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 32.5,3.5 - parent: 588 - - uid: 349 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 31.5,4.5 - parent: 588 - - uid: 350 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 33.5,1.5 - parent: 588 - - uid: 351 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 33.5,0.5 - parent: 588 - - uid: 352 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 33.5,4.5 - parent: 588 - - uid: 353 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 32.5,4.5 - parent: 588 - - uid: 1212 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 7.5,36.5 - parent: 588 -- proto: ChairFoldingSpawnFolded - entities: - - uid: 354 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 31.53707,1.6455604 - parent: 588 - - uid: 355 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 33.595894,3.4052575 - parent: 588 -- proto: ChairOfficeDark - entities: - - uid: 330 - components: - - type: Transform - pos: 19.5,1.5 - parent: 588 - - uid: 331 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 20.5,3.5 - parent: 588 - - uid: 358 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 24.5,0.5 - parent: 588 - - uid: 359 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 25.5,0.5 - parent: 588 - - uid: 360 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 28.5,0.5 - parent: 588 - - uid: 361 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 27.5,0.5 - parent: 588 - - uid: 571 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 13.5,12.5 - parent: 588 -- proto: ChairOfficeLight - entities: - - uid: 631 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 9.5,19.5 - parent: 588 - - uid: 638 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 7.5,21.5 - parent: 588 - - uid: 707 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 15.5,21.5 - parent: 588 -- proto: ChairPilotSeat - entities: - - uid: 356 - components: - - type: Transform - pos: 26.5,4.5 - parent: 588 -- proto: ChairWood - entities: - - uid: 1049 - components: - - type: Transform - pos: 20.5,25.5 - parent: 588 - - uid: 1050 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 22.5,27.5 - parent: 588 - - uid: 1231 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 21.5,34.5 - parent: 588 - - uid: 1232 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 13.5,36.5 - parent: 588 - - uid: 1790 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 25.5,46.5 - parent: 588 - - uid: 1791 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 25.5,44.5 - parent: 588 -- proto: CigarGold - entities: - - uid: 1219 - components: - - type: Transform - pos: 7.4719925,36.539555 - parent: 588 -- proto: ClosetBombFilled - entities: - - uid: 413 - components: - - type: Transform - pos: 14.5,6.5 - parent: 588 - - uid: 1014 - components: - - type: Transform - pos: 12.5,27.5 - parent: 588 - - uid: 1026 - components: - - type: Transform - pos: 16.5,27.5 - parent: 588 -- proto: ClosetEmergencyFilledRandom - entities: - - uid: 1203 - components: - - type: Transform - pos: 12.5,30.5 - parent: 588 - - uid: 1204 - components: - - type: Transform - pos: 0.5,32.5 - parent: 588 - - uid: 1205 - components: - - type: Transform - pos: 9.5,9.5 - parent: 588 - - uid: 1207 - components: - - type: Transform - pos: 1.5,7.5 - parent: 588 -- proto: ClosetFireFilled - entities: - - uid: 1194 - components: - - type: Transform - pos: 1.5,9.5 - parent: 588 - - uid: 1195 - components: - - type: Transform - pos: 9.5,7.5 - parent: 588 - - uid: 1196 - components: - - type: Transform - pos: 6.5,40.5 - parent: 588 - - uid: 1197 - components: - - type: Transform - pos: 0.5,38.5 - parent: 588 -- proto: ClosetL3SecurityFilled - entities: - - uid: 415 - components: - - type: Transform - pos: 20.5,10.5 - parent: 588 -- proto: ClosetToolFilled - entities: - - uid: 1007 - components: - - type: Transform - pos: 14.5,30.5 - parent: 588 -- proto: ClosetWallMaintenanceFilledRandom - entities: - - uid: 499 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 25.5,15.5 - parent: 588 - - uid: 868 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 5.5,27.5 - parent: 588 - - uid: 1564 - components: - - type: Transform - pos: 17.5,43.5 - parent: 588 - - uid: 1565 - components: - - type: Transform - pos: 21.5,43.5 - parent: 588 -- proto: ClothingBeltChampion - entities: - - uid: 1236 - components: - - type: Transform - pos: 10.581136,39.53631 - parent: 588 -- proto: ClothingEyesGlassesMeson - entities: - - uid: 1108 - components: - - type: Transform - pos: 25.666832,30.643515 - parent: 588 -- proto: ClothingHandsGlovesNitrile - entities: - - uid: 1715 - components: - - type: Transform - pos: 10.432637,44.476112 - parent: 588 -- proto: ClothingHeadBandRed - entities: - - uid: 1295 - components: - - type: Transform - pos: 12.571781,39.694115 - parent: 588 -- proto: ClothingHeadHatFedoraBrown - entities: - - uid: 577 - components: - - type: Transform - pos: 12.686508,13.58602 - parent: 588 -- proto: ClothingHeadHatPwig - entities: - - uid: 369 - components: - - type: Transform - pos: 25.824945,3.5783403 - parent: 588 -- proto: ClothingHeadHatSecsoftFlipped - entities: - - uid: 606 - components: - - type: Transform - pos: 12.705482,6.671774 - parent: 588 - - uid: 1027 - components: - - type: Transform - pos: 18.403675,25.53719 - parent: 588 -- proto: ClothingHeadHatSurgcapPurple - entities: - - uid: 1711 - components: - - type: Transform - pos: 10.304593,44.632217 - parent: 588 -- proto: ClothingHeadHelmetRiot - entities: - - uid: 1617 - components: - - type: Transform - pos: 22.499683,6.7142525 - parent: 588 -- proto: ClothingHeadHelmetThunderdome - entities: - - uid: 1240 - components: - - type: Transform - pos: 34.666565,24.66942 - parent: 588 -- proto: ClothingNeckLawyerbadge - entities: - - uid: 326 - components: - - type: Transform - pos: 21.586027,4.583762 - parent: 588 -- proto: ClothingNeckTieDet - entities: - - uid: 573 - components: - - type: Transform - pos: 12.714905,13.486683 - parent: 588 -- proto: ClothingOuterArmorReflective - entities: - - uid: 1031 - components: - - type: Transform - pos: 18.47467,24.458666 - parent: 588 -- proto: ClothingOuterCoatDetective - entities: - - uid: 574 - components: - - type: Transform - pos: 13.396446,12.479115 - parent: 588 -- proto: ClothingOuterRobesJudge - entities: - - uid: 370 - components: - - type: Transform - pos: 27.40101,3.677678 - parent: 588 -- proto: ClothingShoesBootsCombatFilled - entities: - - uid: 1036 - components: - - type: Transform - pos: 12.582174,25.636528 - parent: 588 -- proto: ClothingShoesBootsLaceup - entities: - - uid: 372 - components: - - type: Transform - pos: 18.586912,0.70824456 - parent: 588 -- proto: ClothingUniformJumpskirtColorMaroon - entities: - - uid: 1714 - components: - - type: Transform - pos: 10.673761,44.53288 - parent: 588 -- proto: ClothingUniformJumpsuitColorMaroon - entities: - - uid: 1713 - components: - - type: Transform - pos: 10.645364,44.67479 - parent: 588 -- proto: ClusterBangFull - entities: - - uid: 599 - components: - - type: Transform - pos: 33.484257,28.42918 - parent: 588 -- proto: ComputerAlert - entities: - - uid: 999 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 17.5,30.5 - parent: 588 - - uid: 1001 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 23.5,30.5 - parent: 588 - - uid: 1561 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 21.5,46.5 - parent: 588 -- proto: computerBodyScanner - entities: - - uid: 1394 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 9.5,44.5 - parent: 588 - - uid: 1423 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 13.5,44.5 - parent: 588 -- proto: ComputerCriminalRecords - entities: - - uid: 461 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 11.5,0.5 - parent: 588 - - uid: 634 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 9.5,18.5 - parent: 588 -- proto: ComputerPowerMonitoring - entities: - - uid: 1000 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 16.5,30.5 - parent: 588 - - uid: 1002 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 24.5,30.5 - parent: 588 - - uid: 1560 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 17.5,46.5 - parent: 588 -- proto: ComputerSurveillanceCameraMonitor - entities: - - uid: 635 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 6.5,21.5 - parent: 588 -- proto: ComputerTelevision - entities: - - uid: 1229 - components: - - type: Transform - pos: 12.5,34.5 - parent: 588 - - uid: 1230 - components: - - type: Transform - pos: 22.5,36.5 - parent: 588 -- proto: CrateEngineeringGear - entities: - - uid: 1008 - components: - - type: Transform - pos: 26.5,30.5 - parent: 588 -- proto: CrateFunBoardGames - entities: - - uid: 1845 - components: - - type: Transform - pos: 26.5,48.5 - parent: 588 -- proto: CrateFunParty - entities: - - uid: 1876 - components: - - type: Transform - pos: 25.5,43.5 - parent: 588 -- proto: CrateHydroponicsSeedsExotic - entities: - - uid: 1660 - components: - - type: Transform - pos: 31.5,22.5 - parent: 588 -- proto: CrayonBox - entities: - - uid: 1057 - components: - - type: Transform - pos: 20.47107,24.608877 - parent: 588 - - uid: 1116 - components: - - type: Transform - pos: 20.607256,14.646415 - parent: 588 -- proto: CryoPod - entities: - - uid: 1395 - components: - - type: Transform - pos: 8.5,47.5 - parent: 588 - - uid: 1397 - components: - - type: Transform - pos: 14.5,47.5 - parent: 588 -- proto: DebugSMES - entities: - - uid: 971 - components: - - type: Transform - pos: 22.5,32.5 - parent: 588 - - uid: 974 - components: - - type: Transform - pos: 18.5,32.5 - parent: 588 -- proto: DeployableBarrier - entities: - - uid: 1233 - components: - - type: Transform - pos: 32.5,24.5 - parent: 588 -- proto: DiceBag - entities: - - uid: 552 - components: - - type: Transform - pos: 20.294882,15.426926 - parent: 588 -- proto: DiseaseDiagnoser - entities: - - uid: 1424 - components: - - type: Transform - pos: 14.5,44.5 - parent: 588 -- proto: DisposalUnit - entities: - - uid: 550 - components: - - type: Transform - pos: 22.5,16.5 - parent: 588 - - uid: 725 - components: - - type: Transform - pos: 21.5,22.5 - parent: 588 - - uid: 766 - components: - - type: Transform - pos: 9.5,22.5 - parent: 588 - - uid: 1288 - components: - - type: Transform - pos: 22.5,38.5 - parent: 588 -- proto: DonkpocketBoxSpawner - entities: - - uid: 526 - components: - - type: Transform - pos: 16.5,13.5 - parent: 588 - - uid: 723 - components: - - type: Transform - pos: 18.5,21.5 - parent: 588 -- proto: DoorElectronics - entities: - - uid: 659 - components: - - type: Transform - pos: 12.581519,21.410114 - parent: 588 - - uid: 1074 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 25.639427,25.54549 - parent: 588 -- proto: Dresser - entities: - - uid: 1051 - components: - - type: Transform - pos: 22.5,25.5 - parent: 588 - - uid: 1052 - components: - - type: Transform - pos: 20.5,27.5 - parent: 588 - - uid: 1061 - components: - - type: Transform - pos: 24.5,25.5 - parent: 588 - - uid: 1221 - components: - - type: Transform - pos: 21.5,36.5 - parent: 588 - - uid: 1222 - components: - - type: Transform - pos: 13.5,34.5 - parent: 588 -- proto: DrinkDetFlask - entities: - - uid: 1577 - components: - - type: Transform - pos: 12.606661,13.037249 - parent: 588 -- proto: DrinkMugMetal - entities: - - uid: 1294 - components: - - type: Transform - pos: 22.442232,12.514399 - parent: 588 -- proto: DrinkMugRed - entities: - - uid: 721 - components: - - type: Transform - pos: 22.448559,18.561966 - parent: 588 - - uid: 1293 - components: - - type: Transform - pos: 22.328642,12.741456 - parent: 588 -- proto: DrinkShinyFlask - entities: - - uid: 1874 - components: - - type: Transform - pos: 6.890398,22.663696 - parent: 588 -- proto: DrinkShotGlass - entities: - - uid: 578 - components: - - type: Transform - pos: 12.412022,12.535878 - parent: 588 - - uid: 579 - components: - - type: Transform - pos: 12.539811,12.748745 - parent: 588 -- proto: DrinkWaterCup - entities: - - uid: 722 - components: - - type: Transform - pos: 18.373508,18.661304 - parent: 588 - - uid: 762 - components: - - type: Transform - pos: 6.313587,19.590261 - parent: 588 - - uid: 763 - components: - - type: Transform - pos: 6.441377,19.419968 - parent: 588 -- proto: EmergencyLight - entities: - - uid: 1716 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 13.5,6.5 - parent: 588 - - type: PointLight - enabled: True - - uid: 1717 - components: - - type: Transform - pos: 21.5,10.5 - parent: 588 - - type: PointLight - enabled: True - - uid: 1718 - components: - - type: Transform - pos: 30.5,4.5 - parent: 588 - - type: PointLight - enabled: True - - uid: 1719 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 13.5,0.5 - parent: 588 - - type: PointLight - enabled: True - - uid: 1720 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 3.5,0.5 - parent: 588 - - type: PointLight - enabled: True - - uid: 1721 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 1.5,12.5 - parent: 588 - - type: PointLight - enabled: True - - uid: 1722 - components: - - type: Transform - pos: 18.5,16.5 - parent: 588 - - type: PointLight - enabled: True - - uid: 1723 - components: - - type: Transform - pos: 31.5,22.5 - parent: 588 - - type: PointLight - enabled: True - - uid: 1724 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 34.5,25.5 - parent: 588 - - type: PointLight - enabled: True - - uid: 1726 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 30.5,25.5 - parent: 588 - - type: PointLight - enabled: True - - uid: 1727 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 26.5,27.5 - parent: 588 - - type: PointLight - enabled: True - - uid: 1728 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 20.5,27.5 - parent: 588 - - type: PointLight - enabled: True - - uid: 1729 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 18.5,27.5 - parent: 588 - - type: PointLight - enabled: True - - uid: 1730 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 12.5,25.5 - parent: 588 - - type: PointLight - enabled: True - - uid: 1731 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 0.5,7.5 - parent: 588 - - type: PointLight - enabled: True - - uid: 1732 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 10.5,9.5 - parent: 588 - - type: PointLight - enabled: True - - uid: 1733 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 4.5,20.5 - parent: 588 - - type: PointLight - enabled: True - - uid: 1734 - components: - - type: Transform - pos: 1.5,24.5 - parent: 588 - - type: PointLight - enabled: True - - uid: 1735 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 1.5,30.5 - parent: 588 - - type: PointLight - enabled: True - - uid: 1736 - components: - - type: Transform - pos: 11.5,32.5 - parent: 588 - - type: PointLight - enabled: True - - uid: 1737 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 6.5,40.5 - parent: 588 - - type: PointLight - enabled: True - - uid: 1738 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 8.5,40.5 - parent: 588 - - type: PointLight - enabled: True - - uid: 1739 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 22.5,30.5 - parent: 588 - - type: PointLight - enabled: True - - uid: 1740 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 6.5,19.5 - parent: 588 - - type: PointLight - enabled: True - - uid: 1742 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 16.5,21.5 - parent: 588 - - type: PointLight - enabled: True - - uid: 1744 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 19.5,18.5 - parent: 588 - - type: PointLight - enabled: True - - uid: 1745 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 16.5,34.5 - parent: 588 - - type: PointLight - enabled: True - - uid: 1746 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 30.5,34.5 - parent: 588 - - type: PointLight - enabled: True - - uid: 1747 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 20.5,38.5 - parent: 588 - - type: PointLight - enabled: True - - uid: 1748 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 20.5,44.5 - parent: 588 - - type: PointLight - enabled: True - - uid: 1749 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 8.5,44.5 - parent: 588 - - type: PointLight - enabled: True - - uid: 1750 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 5.5,46.5 - parent: 588 - - type: PointLight - enabled: True - - uid: 1751 - components: - - type: Transform - pos: 30.5,6.5 - parent: 588 - - type: PointLight - enabled: True - - uid: 1752 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 28.5,10.5 - parent: 588 - - type: PointLight - enabled: True - - uid: 1832 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 30.5,46.5 - parent: 588 - - type: PointLight - enabled: True -- proto: EmergencyRollerBed - entities: - - uid: 1141 - components: - - type: Transform - pos: 30.5,25.5 - parent: 588 - - uid: 1142 - components: - - type: Transform - pos: 30.5,24.5 - parent: 588 -- proto: ExtinguisherCabinetFilled - entities: - - uid: 867 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 5.5,26.5 - parent: 588 - - uid: 1198 - components: - - type: Transform - pos: 2.5,8.5 - parent: 588 - - uid: 1199 - components: - - type: Transform - pos: 8.5,8.5 - parent: 588 - - uid: 1200 - components: - - type: Transform - pos: 8.5,35.5 - parent: 588 - - uid: 1201 - components: - - type: Transform - pos: 1.5,35.5 - parent: 588 - - uid: 1202 - components: - - type: Transform - pos: 25.5,14.5 - parent: 588 - - uid: 1328 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 28.5,39.5 - parent: 588 - - uid: 1566 - components: - - type: Transform - pos: 17.5,44.5 - parent: 588 -- proto: filingCabinetRandom - entities: - - uid: 320 - components: - - type: Transform - pos: 21.5,0.5 - parent: 588 - - uid: 321 - components: - - type: Transform - pos: 20.5,0.5 - parent: 588 -- proto: filingCabinetTallRandom - entities: - - uid: 1396 - components: - - type: Transform - pos: 8.5,44.5 - parent: 588 -- proto: Flash - entities: - - uid: 1209 - components: - - type: Transform - pos: 10.726851,19.047483 - parent: 588 -- proto: FlashlightSeclite - entities: - - uid: 374 - components: - - type: Transform - pos: 13.377204,0.54605544 - parent: 588 -- proto: FloodlightBroken - entities: - - uid: 1193 - components: - - type: Transform - pos: 9.462372,35.6454 - parent: 588 -- proto: FloorDrain - entities: - - uid: 944 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 8.5,28.5 - parent: 588 - - type: Fixtures - fixtures: {} - - uid: 945 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 10.5,28.5 - parent: 588 - - type: Fixtures - fixtures: {} -- proto: FloorLavaEntity - entities: - - uid: 47 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 5.5,8.5 - parent: 588 - - uid: 49 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 6.5,8.5 - parent: 588 - - uid: 458 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 5.5,10.5 - parent: 588 - - uid: 459 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 4.5,8.5 - parent: 588 - - uid: 460 - components: - - type: Transform - pos: 8.5,3.5 - parent: 588 - - uid: 645 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 2.5,20.5 - parent: 588 - - uid: 820 - components: - - type: Transform - pos: 4.5,32.5 - parent: 588 - - uid: 821 - components: - - type: Transform - pos: 4.5,31.5 - parent: 588 - - uid: 822 - components: - - type: Transform - pos: 5.5,31.5 - parent: 588 - - uid: 823 - components: - - type: Transform - pos: 5.5,32.5 - parent: 588 - - uid: 824 - components: - - type: Transform - pos: 5.5,30.5 - parent: 588 - - uid: 825 - components: - - type: Transform - pos: 6.5,30.5 - parent: 588 - - uid: 826 - components: - - type: Transform - pos: 7.5,30.5 - parent: 588 - - uid: 827 - components: - - type: Transform - pos: 6.5,32.5 - parent: 588 - - uid: 828 - components: - - type: Transform - pos: 7.5,32.5 - parent: 588 - - uid: 829 - components: - - type: Transform - pos: 7.5,31.5 - parent: 588 - - uid: 830 - components: - - type: Transform - pos: 6.5,31.5 - parent: 588 - - uid: 831 - components: - - type: Transform - pos: 8.5,30.5 - parent: 588 - - uid: 857 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 2.5,39.5 - parent: 588 - - uid: 858 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 3.5,39.5 - parent: 588 - - uid: 859 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 3.5,38.5 - parent: 588 - - uid: 860 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 3.5,40.5 - parent: 588 - - uid: 887 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 4.5,40.5 - parent: 588 - - uid: 889 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 4.5,39.5 - parent: 588 - - uid: 906 - components: - - type: Transform - pos: 4.5,7.5 - parent: 588 - - uid: 907 - components: - - type: Transform - pos: 5.5,7.5 - parent: 588 - - uid: 908 - components: - - type: Transform - pos: 5.5,9.5 - parent: 588 - - uid: 909 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 5.5,6.5 - parent: 588 - - uid: 910 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 4.5,6.5 - parent: 588 - - uid: 911 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 6.5,9.5 - parent: 588 - - uid: 913 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 6.5,10.5 - parent: 588 - - uid: 1247 - components: - - type: Transform - pos: 8.5,4.5 - parent: 588 - - uid: 1248 - components: - - type: Transform - pos: 9.5,4.5 - parent: 588 - - uid: 1249 - components: - - type: Transform - pos: 8.5,2.5 - parent: 588 - - uid: 1250 - components: - - type: Transform - pos: 8.5,1.5 - parent: 588 - - uid: 1251 - components: - - type: Transform - pos: 9.5,1.5 - parent: 588 - - uid: 1252 - components: - - type: Transform - pos: 8.5,1.5 - parent: 588 - - uid: 1253 - components: - - type: Transform - pos: 8.5,0.5 - parent: 588 - - uid: 1254 - components: - - type: Transform - pos: 7.5,0.5 - parent: 588 - - uid: 1333 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 2.5,46.5 - parent: 588 - - uid: 1341 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 3.5,45.5 - parent: 588 - - uid: 1343 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 3.5,46.5 - parent: 588 - - uid: 1345 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 1.5,46.5 - parent: 588 - - uid: 1359 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 1.5,47.5 - parent: 588 - - uid: 1360 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 4.5,46.5 - parent: 588 - - uid: 1361 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 4.5,47.5 - parent: 588 - - uid: 1362 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 5.5,47.5 - parent: 588 - - uid: 1363 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 2.5,44.5 - parent: 588 - - uid: 1364 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 2.5,47.5 - parent: 588 - - uid: 1365 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 3.5,44.5 - parent: 588 - - uid: 1366 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 4.5,45.5 - parent: 588 - - uid: 1367 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 4.5,44.5 - parent: 588 - - uid: 1368 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 4.5,43.5 - parent: 588 - - uid: 1369 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 5.5,43.5 - parent: 588 - - uid: 1370 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 5.5,42.5 - parent: 588 - - uid: 1371 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 6.5,42.5 - parent: 588 - - uid: 1372 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 6.5,43.5 - parent: 588 - - uid: 1373 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 5.5,44.5 - parent: 588 - - uid: 1374 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 5.5,46.5 - parent: 588 - - uid: 1375 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 2.5,43.5 - parent: 588 -- proto: FoodBowlBigTrash - entities: - - uid: 1840 - components: - - type: Transform - pos: 30.547388,48.16116 - parent: 588 -- proto: FoodBurgerMime - entities: - - uid: 399 - components: - - type: Transform - pos: 10.958169,39.64943 - parent: 588 -- proto: FoodPlateSmallPlastic - entities: - - uid: 529 - components: - - type: Transform - pos: 17.462528,12.615073 - parent: 588 -- proto: FoodPlateTrash - entities: - - uid: 1692 - components: - - type: Transform - pos: 28.80027,47.44947 - parent: 588 -- proto: ForensicPad - entities: - - uid: 761 - components: - - type: Transform - pos: 7.562898,22.48225 - parent: 588 -- proto: ForkPlastic - entities: - - uid: 531 - components: - - type: Transform - pos: 17.405733,12.600882 - parent: 588 -- proto: GasFilter - entities: - - uid: 1415 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 12.5,47.5 - parent: 588 -- proto: GasPipeBend - entities: - - uid: 1412 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 8.5,46.5 - parent: 588 - - uid: 1414 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 14.5,46.5 - parent: 588 - - uid: 1416 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 11.5,47.5 - parent: 588 - - uid: 1421 - components: - - type: Transform - pos: 13.5,47.5 - parent: 588 -- proto: GasPipeStraight - entities: - - uid: 1418 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 10.5,47.5 - parent: 588 - - uid: 1420 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 12.5,46.5 - parent: 588 -- proto: GasPipeTJunction - entities: - - uid: 1410 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 9.5,46.5 - parent: 588 - - uid: 1411 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 13.5,46.5 - parent: 588 - - uid: 1417 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 10.5,46.5 - parent: 588 - - uid: 1419 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 11.5,46.5 - parent: 588 -- proto: GasPort - entities: - - uid: 1404 - components: - - type: Transform - pos: 9.5,48.5 - parent: 588 - - uid: 1422 - components: - - type: Transform - pos: 12.5,48.5 - parent: 588 -- proto: GasPressurePump - entities: - - uid: 1409 - components: - - type: Transform - pos: 9.5,47.5 - parent: 588 -- proto: GasThermoMachineFreezer - entities: - - uid: 1403 - components: - - type: Transform - pos: 10.5,48.5 - parent: 588 -- proto: GatfruitSeeds - entities: - - uid: 562 - components: - - type: Transform - pos: 8.528373,27.49547 - parent: 588 -- proto: Gauze - entities: - - uid: 1482 - components: - - type: Transform - pos: 8.452288,42.514927 - parent: 588 -- proto: GeneratorRTG - entities: - - uid: 742 - components: - - type: Transform - pos: 27.5,21.5 - parent: 588 - - uid: 748 - components: - - type: Transform - pos: 25.5,21.5 - parent: 588 -- proto: Girder - entities: - - uid: 1301 - components: - - type: Transform - pos: 26.5,39.5 - parent: 588 -- proto: Grille - entities: - - uid: 209 - components: - - type: Transform - pos: 15.5,34.5 - parent: 588 - - uid: 211 - components: - - type: Transform - pos: 19.5,36.5 - parent: 588 - - uid: 212 - components: - - type: Transform - pos: 19.5,34.5 - parent: 588 - - uid: 213 - components: - - type: Transform - pos: 15.5,36.5 - parent: 588 - - uid: 403 - components: - - type: Transform - pos: 15.5,9.5 - parent: 588 - - uid: 404 - components: - - type: Transform - pos: 15.5,7.5 - parent: 588 - - uid: 407 - components: - - type: Transform - pos: 19.5,9.5 - parent: 588 - - uid: 408 - components: - - type: Transform - pos: 19.5,7.5 - parent: 588 - - uid: 568 - components: - - type: Transform - pos: 12.5,15.5 - parent: 588 - - uid: 584 - components: - - type: Transform - pos: 2.5,12.5 - parent: 588 - - uid: 586 - components: - - type: Transform - pos: 2.5,16.5 - parent: 588 - - uid: 587 - components: - - type: Transform - pos: 4.5,16.5 - parent: 588 - - uid: 589 - components: - - type: Transform - pos: 4.5,12.5 - parent: 588 - - uid: 1465 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 10.5,43.5 - parent: 588 - - uid: 1466 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 12.5,43.5 - parent: 588 -- proto: GrilleBroken - entities: - - uid: 1302 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 27.5,39.5 - parent: 588 -- proto: Handcuffs - entities: - - uid: 1614 - components: - - type: Transform - pos: 22.608034,10.659381 - parent: 588 -- proto: Hemostat - entities: - - uid: 1471 - components: - - type: Transform - pos: 8.51377,43.004257 - parent: 588 -- proto: HighSecArmoryLocked - entities: - - uid: 1597 - components: - - type: Transform - pos: 26.5,7.5 - parent: 588 - - uid: 1598 - components: - - type: Transform - pos: 32.5,7.5 - parent: 588 - - uid: 1599 - components: - - type: Transform - pos: 29.5,9.5 - parent: 588 -- proto: HospitalCurtains - entities: - - uid: 402 - components: - - type: Transform - pos: 8.5,27.5 - parent: 588 - - uid: 949 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 8.5,24.5 - parent: 588 - - uid: 951 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 10.5,27.5 - parent: 588 - - uid: 1768 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 24.5,48.5 - parent: 588 -- proto: HospitalCurtainsOpen - entities: - - uid: 946 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 8.5,25.5 - parent: 588 - - uid: 947 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 10.5,24.5 - parent: 588 - - uid: 1040 - components: - - type: Transform - pos: 20.5,28.5 - parent: 588 - - uid: 1046 - components: - - type: Transform - pos: 22.5,24.5 - parent: 588 - - uid: 1148 - components: - - type: Transform - pos: 28.5,25.5 - parent: 588 - - uid: 1149 - components: - - type: Transform - pos: 28.5,24.5 - parent: 588 - - uid: 1223 - components: - - type: Transform - pos: 20.5,36.5 - parent: 588 - - uid: 1224 - components: - - type: Transform - pos: 14.5,34.5 - parent: 588 - - uid: 1467 - components: - - type: Transform - pos: 12.5,42.5 - parent: 588 - - uid: 1469 - components: - - type: Transform - pos: 10.5,42.5 - parent: 588 - - uid: 1767 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 24.5,42.5 - parent: 588 -- proto: HydroponicsToolHatchet - entities: - - uid: 1844 - components: - - type: Transform - pos: 29.538284,44.04174 - parent: 588 - - uid: 1851 - components: - - type: Transform - pos: 30.630798,21.602604 - parent: 588 -- proto: HydroponicsToolMiniHoe - entities: - - uid: 1837 - components: - - type: Transform - pos: 30.099596,43.446724 - parent: 588 - - uid: 1841 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 33.38517,20.601 - parent: 588 -- proto: HydroponicsToolSpade - entities: - - uid: 1838 - components: - - type: Transform - pos: 29.95761,43.361576 - parent: 588 - - uid: 1842 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 33.42777,20.58681 - parent: 588 -- proto: hydroponicsTray - entities: - - uid: 796 - components: - - type: Transform - pos: 31.5,21.5 - parent: 588 - - uid: 797 - components: - - type: Transform - pos: 31.5,20.5 - parent: 588 - - uid: 798 - components: - - type: Transform - pos: 31.5,19.5 - parent: 588 - - uid: 1772 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 29.5,42.5 - parent: 588 - - uid: 1774 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 29.5,44.5 - parent: 588 - - uid: 1787 - components: - - type: Transform - pos: 30.5,44.5 - parent: 588 - - uid: 1788 - components: - - type: Transform - pos: 30.5,42.5 - parent: 588 -- proto: IngotGold - entities: - - uid: 952 - components: - - type: Transform - pos: 11.069347,39.504154 - parent: 588 -- proto: KitchenMicrowave - entities: - - uid: 524 - components: - - type: Transform - pos: 16.5,12.5 - parent: 588 - - uid: 709 - components: - - type: Transform - pos: 18.5,22.5 - parent: 588 - - uid: 1785 - components: - - type: Transform - pos: 29.5,48.5 - parent: 588 -- proto: KitchenReagentGrinder - entities: - - uid: 1786 - components: - - type: Transform - pos: 30.5,47.5 - parent: 588 -- proto: KnifePlastic - entities: - - uid: 530 - components: - - type: Transform - pos: 17.249546,12.643455 - parent: 588 - - uid: 1836 - components: - - type: Transform - pos: 30.241585,48.271698 - parent: 588 -- proto: Lamp - entities: - - uid: 581 - components: - - type: Transform - pos: 12.369425,13.798887 - parent: 588 -- proto: LampGold - entities: - - uid: 322 - components: - - type: Transform - pos: 18.419699,1.6320114 - parent: 588 - - uid: 323 - components: - - type: Transform - pos: 20.563715,4.8959665 - parent: 588 - - uid: 729 - components: - - type: Transform - pos: 6.4779434,22.892899 - parent: 588 - - uid: 730 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 10.765976,19.912766 - parent: 588 -- proto: Lighter - entities: - - uid: 1220 - components: - - type: Transform - pos: 7.5287867,36.397644 - parent: 588 -- proto: LockerDetective - entities: - - uid: 560 - components: - - type: Transform - pos: 14.5,16.5 - parent: 588 -- proto: LockerEvidence - entities: - - uid: 254 - components: - - type: Transform - pos: 16.5,0.5 - parent: 588 - - uid: 262 - components: - - type: Transform - pos: 2.5,0.5 - parent: 588 - - uid: 263 - components: - - type: Transform - pos: 4.5,0.5 - parent: 588 - - uid: 276 - components: - - type: Transform - pos: 0.5,0.5 - parent: 588 - - uid: 286 - components: - - type: Transform - pos: 12.5,0.5 - parent: 588 - - uid: 287 - components: - - type: Transform - pos: 14.5,0.5 - parent: 588 - - uid: 704 - components: - - type: Transform - pos: 16.5,22.5 - parent: 588 -- proto: LockerMedicineFilled - entities: - - uid: 1152 - components: - - type: Transform - pos: 28.5,27.5 - parent: 588 -- proto: LockerSecurityFilled - entities: - - uid: 416 - components: - - type: Transform - pos: 20.5,6.5 - parent: 588 -- proto: LockerSyndicatePersonal - entities: - - uid: 605 - components: - - type: Transform - pos: 6.5,12.5 - parent: 588 -- proto: MachineFrame - entities: - - uid: 400 - components: - - type: Transform - pos: 26.5,8.5 - parent: 588 -- proto: MaintenanceFluffSpawner - entities: - - uid: 414 - components: - - type: Transform - pos: 25.5,32.5 - parent: 588 - - uid: 1289 - components: - - type: Transform - pos: 17.5,38.5 - parent: 588 - - uid: 1290 - components: - - type: Transform - pos: 21.5,40.5 - parent: 588 - - uid: 1291 - components: - - type: Transform - pos: 20.5,40.5 - parent: 588 -- proto: MaintenanceWeaponSpawner - entities: - - uid: 548 - components: - - type: Transform - pos: 15.5,4.5 - parent: 588 - - uid: 549 - components: - - type: Transform - pos: 3.5,4.5 - parent: 588 - - uid: 1580 - components: - - type: Transform - pos: 1.5,8.5 - parent: 588 - - uid: 1581 - components: - - type: Transform - pos: 9.5,8.5 - parent: 588 -- proto: MaterialCloth1 - entities: - - uid: 702 - components: - - type: Transform - pos: 12.462601,18.586084 - parent: 588 - - uid: 1065 - components: - - type: Transform - pos: 24.460928,24.594687 - parent: 588 - - uid: 1066 - components: - - type: Transform - pos: 24.389935,24.296673 - parent: 588 -- proto: MaterialWoodPlank1 - entities: - - uid: 703 - components: - - type: Transform - pos: 12.817572,18.685423 - parent: 588 - - uid: 1064 - components: - - type: Transform - pos: 26.278374,24.608877 - parent: 588 - - uid: 1067 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 24.801699,24.708214 - parent: 588 - - uid: 1076 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 24.823982,27.574818 - parent: 588 -- proto: MedicalBed - entities: - - uid: 1146 - components: - - type: Transform - pos: 28.5,24.5 - parent: 588 - - uid: 1147 - components: - - type: Transform - pos: 28.5,25.5 - parent: 588 -- proto: MedkitAdvancedFilled - entities: - - uid: 1153 - components: - - type: Transform - pos: 30.614443,28.392822 - parent: 588 -- proto: MedkitCombatFilled - entities: - - uid: 1154 - components: - - type: Transform - pos: 30.40146,28.066427 - parent: 588 -- proto: OperatingTable - entities: - - uid: 1389 - components: - - type: Transform - pos: 9.5,43.5 - parent: 588 -- proto: Paper - entities: - - uid: 1055 - components: - - type: Transform - pos: 20.428474,24.722406 - parent: 588 - - uid: 1056 - components: - - type: Transform - pos: 20.669853,24.52373 - parent: 588 -- proto: PaperOffice - entities: - - uid: 327 - components: - - type: Transform - pos: 21.415642,4.0728827 - parent: 588 - - uid: 328 - components: - - type: Transform - pos: 21.586027,4.0019264 - parent: 588 - - uid: 1113 - components: - - type: Transform - pos: 20.706646,15.341779 - parent: 588 - - uid: 1114 - components: - - type: Transform - pos: 20.465267,15.185677 - parent: 588 - - uid: 1115 - components: - - type: Transform - pos: 20.30908,14.603841 - parent: 588 -- proto: PartRodMetal1 - entities: - - uid: 1071 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 25.341253,26.595633 - parent: 588 - - uid: 1072 - components: - - type: Transform - pos: 25.36965,28.11408 - parent: 588 -- proto: Pen - entities: - - uid: 366 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 21.352327,3.9473093 - parent: 588 - - uid: 367 - components: - - type: Transform - pos: 18.75395,1.1232786 - parent: 588 - - uid: 368 - components: - - type: Transform - pos: 24.788435,1.4496742 - parent: 588 - - uid: 731 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 10.36841,19.019064 - parent: 588 - - uid: 732 - components: - - type: Transform - pos: 7.4631767,22.637186 - parent: 588 -- proto: PhoneInstrument - entities: - - uid: 371 - components: - - type: Transform - pos: 25.484175,4.4865713 - parent: 588 -- proto: PillCanister - entities: - - uid: 1481 - components: - - type: Transform - pos: 14.438607,42.637726 - parent: 588 -- proto: PillSpaceDrugs - entities: - - uid: 1479 - components: - - type: Transform - pos: 14.438607,42.96412 - parent: 588 - - uid: 1480 - components: - - type: Transform - pos: 14.537998,42.878975 - parent: 588 -- proto: PlushieNuke - entities: - - uid: 1850 - components: - - type: Transform - pos: 22.519993,28.594225 - parent: 588 -- proto: PortableFlasher - entities: - - uid: 1234 - components: - - type: Transform - pos: 32.5,25.5 - parent: 588 -- proto: PortableGeneratorPacman - entities: - - uid: 967 - components: - - type: Transform - pos: 16.5,32.5 - parent: 588 - - uid: 969 - components: - - type: Transform - pos: 24.5,32.5 - parent: 588 -- proto: PortableGeneratorSuperPacman - entities: - - uid: 50 - components: - - type: Transform - pos: 26.5,15.5 - parent: 588 - - uid: 55 - components: - - type: Transform - pos: 28.5,15.5 - parent: 588 - - uid: 1504 - components: - - type: Transform - pos: 18.5,44.5 - parent: 588 - - uid: 1505 - components: - - type: Transform - pos: 20.5,44.5 - parent: 588 -- proto: PortableScrubber - entities: - - uid: 1101 - components: - - type: Transform - pos: 18.5,30.5 - parent: 588 -- proto: PosterContrabandBountyHunters - entities: - - uid: 1578 - components: - - type: Transform - pos: 13.5,15.5 - parent: 588 -- proto: PosterLegitDickGumshue - entities: - - uid: 1576 - components: - - type: Transform - pos: 9.5,15.5 - parent: 588 -- proto: PosterLegitEnlist - entities: - - uid: 1800 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 8.5,9.5 - parent: 588 -- proto: PosterLegitNanotrasenLogo - entities: - - uid: 1802 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 2.5,48.5 - parent: 588 - - uid: 1803 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 3.5,21.5 - parent: 588 -- proto: PosterLegitObey - entities: - - uid: 1801 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 4.5,42.5 - parent: 588 -- proto: PosterLegitSecWatch - entities: - - uid: 1799 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 2.5,7.5 - parent: 588 -- proto: PosterLegitSpaceCops - entities: - - uid: 1804 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 1.5,19.5 - parent: 588 -- proto: PottedPlantRandom - entities: - - uid: 1286 - components: - - type: Transform - pos: 16.5,38.5 - parent: 588 - - uid: 1287 - components: - - type: Transform - pos: 22.5,40.5 - parent: 588 -- proto: PowerCellHyper - entities: - - uid: 469 - components: - - type: Transform - pos: 12.355853,25.41643 - parent: 588 - - uid: 590 - components: - - type: Transform - pos: 5.381793,16.642464 - parent: 588 -- proto: PowerCellRecharger - entities: - - uid: 1103 - components: - - type: Transform - pos: 15.5,30.5 - parent: 588 - - uid: 1568 - components: - - type: Transform - pos: 21.5,47.5 - parent: 588 -- proto: Poweredlight - entities: - - uid: 1641 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 2.5,0.5 - parent: 588 - - type: ApcPowerReceiver - powerLoad: 0 - - uid: 1642 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 14.5,0.5 - parent: 588 - - type: ApcPowerReceiver - powerLoad: 0 - - uid: 1646 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 24.5,0.5 - parent: 588 - - type: ApcPowerReceiver - powerLoad: 0 - - uid: 1647 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 28.5,0.5 - parent: 588 - - type: ApcPowerReceiver - powerLoad: 0 - - uid: 1648 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 21.5,6.5 - parent: 588 - - type: ApcPowerReceiver - powerLoad: 0 - - uid: 1649 - components: - - type: Transform - pos: 13.5,10.5 - parent: 588 - - type: ApcPowerReceiver - powerLoad: 0 - - uid: 1650 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 16.5,6.5 - parent: 588 - - type: ApcPowerReceiver - powerLoad: 0 - - uid: 1651 - components: - - type: Transform - pos: 18.5,10.5 - parent: 588 - - type: ApcPowerReceiver - powerLoad: 0 - - uid: 1693 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 32.5,25.5 - parent: 588 - - type: ApcPowerReceiver - powerLoad: 0 - - uid: 1701 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 18.5,12.5 - parent: 588 - - type: ApcPowerReceiver - powerLoad: 0 - - uid: 1702 - components: - - type: Transform - pos: 20.5,16.5 - parent: 588 - - type: ApcPowerReceiver - powerLoad: 0 - - uid: 1703 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 34.5,20.5 - parent: 588 - - type: ApcPowerReceiver - powerLoad: 0 - - uid: 1704 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 16.5,25.5 - parent: 588 - - type: ApcPowerReceiver - powerLoad: 0 - - uid: 1705 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 14.5,27.5 - parent: 588 - - type: ApcPowerReceiver - powerLoad: 0 - - uid: 1706 - components: - - type: Transform - pos: 18.5,40.5 - parent: 588 - - type: ApcPowerReceiver - powerLoad: 0 - - uid: 1741 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 10.5,21.5 - parent: 588 - - type: ApcPowerReceiver - powerLoad: 0 - - uid: 1743 - components: - - type: Transform - pos: 21.5,22.5 - parent: 588 - - type: ApcPowerReceiver - powerLoad: 0 - - uid: 1830 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 30.5,43.5 - parent: 588 - - type: ApcPowerReceiver - powerLoad: 0 - - uid: 1831 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 30.5,47.5 - parent: 588 - - type: ApcPowerReceiver - powerLoad: 0 -- proto: PoweredlightLED - entities: - - uid: 1707 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 8.5,42.5 - parent: 588 - - type: ApcPowerReceiver - powerLoad: 0 - - uid: 1708 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 14.5,42.5 - parent: 588 - - type: ApcPowerReceiver - powerLoad: 0 - - uid: 1709 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 14.5,46.5 - parent: 588 - - type: ApcPowerReceiver - powerLoad: 0 - - uid: 1710 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 8.5,46.5 - parent: 588 - - type: ApcPowerReceiver - powerLoad: 0 - - uid: 1725 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 28.5,27.5 - parent: 588 - - type: ApcPowerReceiver - powerLoad: 0 -- proto: PoweredSmallLight - entities: - - uid: 470 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 26.5,14.5 - parent: 588 - - type: ApcPowerReceiver - powerLoad: 0 - - uid: 940 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 10.5,28.5 - parent: 588 - - type: ApcPowerReceiver - powerLoad: 0 - - uid: 948 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 8.5,28.5 - parent: 588 - - type: ApcPowerReceiver - powerLoad: 0 - - uid: 953 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 10.5,25.5 - parent: 588 - - type: ApcPowerReceiver - powerLoad: 0 - - uid: 1603 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 26.5,10.5 - parent: 588 - - type: ApcPowerReceiver - powerLoad: 0 - - uid: 1604 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 32.5,10.5 - parent: 588 - - type: ApcPowerReceiver - powerLoad: 0 - - uid: 1605 - components: - - type: Transform - pos: 29.5,6.5 - parent: 588 - - type: ApcPowerReceiver - powerLoad: 0 - - uid: 1606 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 29.5,8.5 - parent: 588 - - type: ApcPowerReceiver - powerLoad: 0 - - uid: 1607 - components: - - type: Transform - pos: 32.5,8.5 - parent: 588 - - type: ApcPowerReceiver - powerLoad: 0 - - uid: 1608 - components: - - type: Transform - pos: 26.5,8.5 - parent: 588 - - type: ApcPowerReceiver - powerLoad: 0 - - uid: 1643 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 7.5,1.5 - parent: 588 - - type: ApcPowerReceiver - powerLoad: 0 - - uid: 1644 - components: - - type: Transform - pos: 20.5,4.5 - parent: 588 - - type: ApcPowerReceiver - powerLoad: 0 - - uid: 1645 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 19.5,0.5 - parent: 588 - - type: ApcPowerReceiver - powerLoad: 0 - - uid: 1652 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 9.5,8.5 - parent: 588 - - type: ApcPowerReceiver - powerLoad: 0 - - uid: 1653 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 7.5,8.5 - parent: 588 - - type: ApcPowerReceiver - powerLoad: 0 - - uid: 1654 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 3.5,8.5 - parent: 588 - - type: ApcPowerReceiver - powerLoad: 0 - - uid: 1655 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 1.5,8.5 - parent: 588 - - type: ApcPowerReceiver - powerLoad: 0 - - uid: 1656 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 5.5,14.5 - parent: 588 - - type: ApcPowerReceiver - powerLoad: 0 - - uid: 1657 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 1.5,14.5 - parent: 588 - - type: ApcPowerReceiver - powerLoad: 0 - - uid: 1659 - components: - - type: Transform - pos: 3.5,18.5 - parent: 588 - - type: ApcPowerReceiver - powerLoad: 0 - - uid: 1661 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 1.5,22.5 - parent: 588 - - type: ApcPowerReceiver - powerLoad: 0 - - uid: 1662 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 4.5,27.5 - parent: 588 - - type: ApcPowerReceiver - powerLoad: 0 - - uid: 1663 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 6.5,25.5 - parent: 588 - - type: ApcPowerReceiver - powerLoad: 0 - - uid: 1664 - components: - - type: Transform - pos: 0.5,28.5 - parent: 588 - - type: ApcPowerReceiver - powerLoad: 0 - - uid: 1665 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 2.5,24.5 - parent: 588 - - type: ApcPowerReceiver - powerLoad: 0 - - uid: 1666 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 3.5,30.5 - parent: 588 - - type: ApcPowerReceiver - powerLoad: 0 - - uid: 1667 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 9.5,30.5 - parent: 588 - - type: ApcPowerReceiver - powerLoad: 0 - - uid: 1668 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 1.5,36.5 - parent: 588 - - type: ApcPowerReceiver - powerLoad: 0 - - uid: 1669 - components: - - type: Transform - pos: 8.5,34.5 - parent: 588 - - type: ApcPowerReceiver - powerLoad: 0 - - uid: 1670 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 5.5,38.5 - parent: 588 - - type: ApcPowerReceiver - powerLoad: 0 - - uid: 1671 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 1.5,38.5 - parent: 588 - - type: ApcPowerReceiver - powerLoad: 0 - - uid: 1672 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 2.5,43.5 - parent: 588 - - type: ApcPowerReceiver - powerLoad: 0 - - uid: 1673 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 4.5,43.5 - parent: 588 - - type: ApcPowerReceiver - powerLoad: 0 - - uid: 1674 - components: - - type: Transform - pos: 2.5,47.5 - parent: 588 - - type: ApcPowerReceiver - powerLoad: 0 - - uid: 1675 - components: - - type: Transform - pos: 4.5,47.5 - parent: 588 - - type: ApcPowerReceiver - powerLoad: 0 - - uid: 1676 - components: - - type: Transform - pos: 9.5,40.5 - parent: 588 - - type: ApcPowerReceiver - powerLoad: 0 - - uid: 1677 - components: - - type: Transform - pos: 13.5,40.5 - parent: 588 - - type: ApcPowerReceiver - powerLoad: 0 - - uid: 1678 - components: - - type: Transform - pos: 13.5,36.5 - parent: 588 - - type: ApcPowerReceiver - powerLoad: 0 - - uid: 1679 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 21.5,34.5 - parent: 588 - - type: ApcPowerReceiver - powerLoad: 0 - - uid: 1680 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 32.5,35.5 - parent: 588 - - type: ApcPowerReceiver - powerLoad: 0 - - uid: 1681 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 34.5,35.5 - parent: 588 - - type: ApcPowerReceiver - powerLoad: 0 - - uid: 1682 - components: - - type: Transform - pos: 25.5,36.5 - parent: 588 - - type: ApcPowerReceiver - powerLoad: 0 - - uid: 1683 - components: - - type: Transform - pos: 28.5,38.5 - parent: 588 - - type: ApcPowerReceiver - powerLoad: 0 - - uid: 1684 - components: - - type: Transform - pos: 19.5,46.5 - parent: 588 - - type: ApcPowerReceiver - powerLoad: 0 - - uid: 1685 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 17.5,47.5 - parent: 588 - - type: ApcPowerReceiver - powerLoad: 0 - - uid: 1686 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 21.5,47.5 - parent: 588 - - type: ApcPowerReceiver - powerLoad: 0 - - uid: 1687 - components: - - type: Transform - pos: 23.5,32.5 - parent: 588 - - type: ApcPowerReceiver - powerLoad: 0 - - uid: 1688 - components: - - type: Transform - pos: 17.5,32.5 - parent: 588 - - type: ApcPowerReceiver - powerLoad: 0 - - uid: 1689 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 22.5,27.5 - parent: 588 - - type: ApcPowerReceiver - powerLoad: 0 - - uid: 1690 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 20.5,25.5 - parent: 588 - - type: ApcPowerReceiver - powerLoad: 0 - - uid: 1694 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 28.5,19.5 - parent: 588 - - type: ApcPowerReceiver - powerLoad: 0 - - uid: 1695 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 24.5,19.5 - parent: 588 - - type: ApcPowerReceiver - powerLoad: 0 - - uid: 1696 - components: - - type: Transform - pos: 13.5,22.5 - parent: 588 - - type: ApcPowerReceiver - powerLoad: 0 - - uid: 1697 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 13.5,18.5 - parent: 588 - - type: ApcPowerReceiver - powerLoad: 0 - - uid: 1698 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 15.5,18.5 - parent: 588 - - type: ApcPowerReceiver - powerLoad: 0 - - uid: 1699 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 9.5,16.5 - parent: 588 - - type: ApcPowerReceiver - powerLoad: 0 - - uid: 1700 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 10.5,13.5 - parent: 588 - - type: ApcPowerReceiver - powerLoad: 0 - - uid: 1828 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 25.5,42.5 - parent: 588 - - type: ApcPowerReceiver - powerLoad: 0 - - uid: 1829 - components: - - type: Transform - pos: 25.5,48.5 - parent: 588 - - type: ApcPowerReceiver - powerLoad: 0 -- proto: PoweredSmallLightEmpty - entities: - - uid: 1640 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 26.5,25.5 - parent: 588 - - type: ApcPowerReceiver - powerLoad: 0 - - uid: 1658 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 24.5,27.5 - parent: 588 - - type: ApcPowerReceiver - powerLoad: 0 -- proto: Rack - entities: - - uid: 255 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 15.5,0.5 - parent: 588 - - uid: 264 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 3.5,0.5 - parent: 588 - - uid: 283 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 1.5,0.5 - parent: 588 - - uid: 285 - components: - - type: Transform - pos: 13.5,0.5 - parent: 588 - - uid: 324 - components: - - type: Transform - pos: 19.5,4.5 - parent: 588 - - uid: 396 - components: - - type: Transform - pos: 28.5,8.5 - parent: 588 - - uid: 401 - components: - - type: Transform - pos: 32.5,8.5 - parent: 588 - - uid: 417 - components: - - type: Transform - pos: 12.5,6.5 - parent: 588 - - uid: 418 - components: - - type: Transform - pos: 12.5,10.5 - parent: 588 - - uid: 419 - components: - - type: Transform - pos: 22.5,10.5 - parent: 588 - - uid: 420 - components: - - type: Transform - pos: 22.5,6.5 - parent: 588 - - uid: 478 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 27.5,15.5 - parent: 588 - - uid: 551 - components: - - type: Transform - pos: 22.5,15.5 - parent: 588 - - uid: 585 - components: - - type: Transform - pos: 1.5,12.5 - parent: 588 - - uid: 596 - components: - - type: Transform - pos: 1.5,16.5 - parent: 588 - - uid: 597 - components: - - type: Transform - pos: 5.5,16.5 - parent: 588 - - uid: 598 - components: - - type: Transform - pos: 5.5,12.5 - parent: 588 - - uid: 966 - components: - - type: Transform - pos: 25.5,32.5 - parent: 588 - - uid: 977 - components: - - type: Transform - pos: 15.5,32.5 - parent: 588 - - uid: 1015 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 12.5,25.5 - parent: 588 - - uid: 1016 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 12.5,24.5 - parent: 588 - - uid: 1021 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 18.5,25.5 - parent: 588 - - uid: 1024 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 18.5,24.5 - parent: 588 - - uid: 1111 - components: - - type: Transform - pos: 14.5,32.5 - parent: 588 - - uid: 1112 - components: - - type: Transform - pos: 26.5,32.5 - parent: 588 - - uid: 1206 - components: - - type: Transform - pos: 1.5,8.5 - parent: 588 - - uid: 1208 - components: - - type: Transform - pos: 9.5,8.5 - parent: 588 - - uid: 1211 - components: - - type: Transform - pos: 2.5,34.5 - parent: 588 - - uid: 1319 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 29.5,40.5 - parent: 588 - - uid: 1562 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 17.5,47.5 - parent: 588 - - uid: 1858 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 26.5,21.5 - parent: 588 -- proto: Railing - entities: - - uid: 313 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 30.5,4.5 - parent: 588 - - uid: 314 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 30.5,0.5 - parent: 588 - - uid: 427 - components: - - type: Transform - pos: 6.5,7.5 - parent: 588 - - uid: 428 - components: - - type: Transform - pos: 4.5,7.5 - parent: 588 - - uid: 429 - components: - - type: Transform - pos: 3.5,7.5 - parent: 588 - - uid: 430 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 7.5,9.5 - parent: 588 - - uid: 431 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 6.5,9.5 - parent: 588 - - uid: 435 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 5.5,9.5 - parent: 588 - - uid: 436 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 4.5,9.5 - parent: 588 - - uid: 437 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 3.5,9.5 - parent: 588 - - uid: 439 - components: - - type: Transform - pos: 5.5,7.5 - parent: 588 - - uid: 440 - components: - - type: Transform - pos: 7.5,7.5 - parent: 588 - - uid: 770 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 26.5,21.5 - parent: 588 - - uid: 850 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 9.5,30.5 - parent: 588 - - uid: 851 - components: - - type: Transform - pos: 9.5,32.5 - parent: 588 - - uid: 854 - components: - - type: Transform - pos: 3.5,32.5 - parent: 588 - - uid: 855 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 3.5,30.5 - parent: 588 - - uid: 1259 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 7.5,4.5 - parent: 588 - - uid: 1260 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 9.5,4.5 - parent: 588 - - uid: 1261 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 9.5,0.5 - parent: 588 - - uid: 1262 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 7.5,0.5 - parent: 588 -- proto: RailingCorner - entities: - - uid: 315 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 30.5,1.5 - parent: 588 - - uid: 316 - components: - - type: Transform - pos: 30.5,3.5 - parent: 588 - - uid: 771 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 27.5,21.5 - parent: 588 - - uid: 772 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 25.5,21.5 - parent: 588 - - uid: 845 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 2.5,32.5 - parent: 588 - - uid: 846 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 2.5,30.5 - parent: 588 - - uid: 847 - components: - - type: Transform - pos: 10.5,32.5 - parent: 588 - - uid: 848 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 10.5,30.5 - parent: 588 - - uid: 849 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 8.5,30.5 - parent: 588 - - uid: 852 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 8.5,32.5 - parent: 588 - - uid: 853 - components: - - type: Transform - pos: 4.5,32.5 - parent: 588 - - uid: 856 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 4.5,30.5 - parent: 588 - - uid: 886 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 4.5,40.5 - parent: 588 - - uid: 888 - components: - - type: Transform - pos: 2.5,40.5 - parent: 588 - - uid: 890 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 1.5,40.5 - parent: 588 - - uid: 891 - components: - - type: Transform - pos: 5.5,40.5 - parent: 588 - - uid: 892 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 4.5,38.5 - parent: 588 - - uid: 893 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 5.5,38.5 - parent: 588 - - uid: 894 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 2.5,38.5 - parent: 588 - - uid: 895 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 1.5,38.5 - parent: 588 - - uid: 1255 - components: - - type: Transform - pos: 7.5,3.5 - parent: 588 - - uid: 1256 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 9.5,3.5 - parent: 588 - - uid: 1257 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 9.5,1.5 - parent: 588 - - uid: 1258 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 7.5,1.5 - parent: 588 - - uid: 1351 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 1.5,44.5 - parent: 588 - - uid: 1352 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 2.5,43.5 - parent: 588 - - uid: 1353 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 4.5,43.5 - parent: 588 - - uid: 1354 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 5.5,44.5 - parent: 588 - - uid: 1355 - components: - - type: Transform - pos: 1.5,46.5 - parent: 588 - - uid: 1356 - components: - - type: Transform - pos: 2.5,47.5 - parent: 588 - - uid: 1357 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 4.5,47.5 - parent: 588 - - uid: 1358 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 5.5,46.5 - parent: 588 -- proto: RailingCornerSmall - entities: - - uid: 337 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 29.5,3.5 - parent: 588 - - uid: 338 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 29.5,1.5 - parent: 588 - - uid: 1376 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 1.5,43.5 - parent: 588 - - uid: 1377 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 1.5,47.5 - parent: 588 - - uid: 1378 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 5.5,47.5 - parent: 588 - - uid: 1379 - components: - - type: Transform - pos: 5.5,43.5 - parent: 588 -- proto: RandomDrinkBottle - entities: - - uid: 580 - components: - - type: Transform - pos: 12.5,12.5 - parent: 588 -- proto: RandomFoodSingle - entities: - - uid: 764 - components: - - type: Transform - pos: 6.5,19.5 - parent: 588 -- proto: RandomInstruments - entities: - - uid: 546 - components: - - type: Transform - pos: 1.5,4.5 - parent: 588 - - uid: 1159 - components: - - type: Transform - pos: 21.5,18.5 - parent: 588 - - uid: 1833 - components: - - type: Transform - pos: 24.5,42.5 - parent: 588 -- proto: RandomPosterContraband - entities: - - uid: 1571 - components: - - type: Transform - pos: 25.5,39.5 - parent: 588 - - uid: 1572 - components: - - type: Transform - pos: 3.5,35.5 - parent: 588 - - uid: 1573 - components: - - type: Transform - pos: 7.5,35.5 - parent: 588 - - uid: 1574 - components: - - type: Transform - pos: 5.5,25.5 - parent: 588 - - uid: 1575 - components: - - type: Transform - pos: 30.5,15.5 - parent: 588 - - uid: 1805 - components: - - type: Transform - pos: 18.5,43.5 - parent: 588 - - uid: 1806 - components: - - type: Transform - pos: 20.5,47.5 - parent: 588 -- proto: RandomSoap - entities: - - uid: 397 - components: - - type: Transform - pos: 8.5,24.5 - parent: 588 -- proto: RandomVending - entities: - - uid: 539 - components: - - type: Transform - pos: 17.5,16.5 - parent: 588 -- proto: ReinforcedWindow - entities: - - uid: 214 - components: - - type: Transform - pos: 19.5,34.5 - parent: 588 - - uid: 409 - components: - - type: Transform - pos: 15.5,7.5 - parent: 588 - - uid: 410 - components: - - type: Transform - pos: 15.5,9.5 - parent: 588 - - uid: 411 - components: - - type: Transform - pos: 19.5,7.5 - parent: 588 - - uid: 412 - components: - - type: Transform - pos: 19.5,9.5 - parent: 588 - - uid: 591 - components: - - type: Transform - pos: 2.5,12.5 - parent: 588 - - uid: 592 - components: - - type: Transform - pos: 4.5,12.5 - parent: 588 - - uid: 594 - components: - - type: Transform - pos: 4.5,16.5 - parent: 588 - - uid: 595 - components: - - type: Transform - pos: 2.5,16.5 - parent: 588 - - uid: 1166 - components: - - type: Transform - pos: 19.5,36.5 - parent: 588 - - uid: 1168 - components: - - type: Transform - pos: 15.5,36.5 - parent: 588 - - uid: 1169 - components: - - type: Transform - pos: 15.5,34.5 - parent: 588 -- proto: RemoteSignaller - entities: - - uid: 593 - components: - - type: Transform - pos: 34.361877,24.623777 - parent: 588 - - type: DeviceLinkSource - linkedPorts: - 1238: - - Pressed: Toggle - 1239: - - Pressed: Toggle - 1237: - - Pressed: Toggle - - uid: 1104 - components: - - type: Transform - pos: 25.24476,30.698978 - parent: 588 - - uid: 1105 - components: - - type: Transform - pos: 25.443544,30.613832 - parent: 588 - - uid: 1106 - components: - - type: Transform - pos: 5.677143,16.762346 - parent: 588 -- proto: RiotLaserShield - entities: - - uid: 1618 - components: - - type: Transform - pos: 12.616156,10.534842 - parent: 588 -- proto: RiotShield - entities: - - uid: 600 - components: - - type: Transform - pos: 1.3209407,16.656654 - parent: 588 - - uid: 601 - components: - - type: Transform - pos: 1.5481212,16.543125 - parent: 588 -- proto: SalvageCanisterSpawner - entities: - - uid: 998 - components: - - type: Transform - pos: 22.5,30.5 - parent: 588 - - uid: 1009 - components: - - type: Transform - pos: 19.5,30.5 - parent: 588 - - uid: 1025 - components: - - type: Transform - pos: 21.5,30.5 - parent: 588 - - uid: 1190 - components: - - type: Transform - pos: 9.5,36.5 - parent: 588 - - uid: 1210 - components: - - type: Transform - pos: 9.5,48.5 - parent: 588 - - uid: 1413 - components: - - type: Transform - pos: 13.5,48.5 - parent: 588 - - uid: 1470 - components: - - type: Transform - pos: 12.5,48.5 - parent: 588 -- proto: SawAdvanced - entities: - - uid: 1468 - components: - - type: Transform - pos: 8.527969,43.529327 - parent: 588 -- proto: ScalpelLaser - entities: - - uid: 1472 - components: - - type: Transform - pos: 8.485372,43.131977 - parent: 588 -- proto: ScalpelShiv - entities: - - uid: 708 - components: - - type: Transform - pos: 16.074419,18.727995 - parent: 588 - - uid: 1592 - components: - - type: Transform - pos: 10.50393,24.491432 - parent: 588 -- proto: SeedExtractor - entities: - - uid: 802 - components: - - type: Transform - pos: 33.5,21.5 - parent: 588 - - uid: 1776 - components: - - type: Transform - pos: 28.5,42.5 - parent: 588 -- proto: SheetGlass - entities: - - uid: 649 - components: - - type: Transform - pos: 14.3137455,32.471424 - parent: 588 -- proto: SheetPlasteel - entities: - - uid: 866 - components: - - type: Transform - pos: 2.412651,34.456436 - parent: 588 -- proto: SheetPlastic - entities: - - uid: 398 - components: - - type: Transform - pos: 20.04785,45.07574 - parent: 588 -- proto: SheetSteel - entities: - - uid: 656 - components: - - type: Transform - pos: 26.36062,32.5183 - parent: 588 - - uid: 699 - components: - - type: Transform - pos: 29.259031,40.432583 - parent: 588 -- proto: ShowcaseRobot - entities: - - uid: 1621 - components: - - type: Transform - pos: 16.5,10.5 - parent: 588 - - uid: 1622 - components: - - type: Transform - pos: 18.5,6.5 - parent: 588 -- proto: ShuttersNormal - entities: - - uid: 1237 - components: - - type: Transform - pos: 34.5,27.5 - parent: 588 - - type: DeviceLinkSink - links: - - 593 - - uid: 1238 - components: - - type: Transform - pos: 32.5,27.5 - parent: 588 - - type: DeviceLinkSink - links: - - 593 -- proto: ShuttersWindow - entities: - - uid: 1239 - components: - - type: Transform - pos: 33.5,27.5 - parent: 588 - - type: DeviceLinkSink - links: - - 593 -- proto: SignCloning - entities: - - uid: 1484 - components: - - type: Transform - pos: 12.5,43.5 - parent: 588 -- proto: SignPrison - entities: - - uid: 1792 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 6.5,3.5 - parent: 588 - - uid: 1793 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 10.5,1.5 - parent: 588 - - uid: 1794 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 1.5,21.5 - parent: 588 - - uid: 1795 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 3.5,19.5 - parent: 588 - - uid: 1796 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 0.5,46.5 - parent: 588 - - uid: 1797 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 6.5,44.5 - parent: 588 -- proto: SignSecurity - entities: - - uid: 1798 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 22.5,1.5 - parent: 588 -- proto: SignSurgery - entities: - - uid: 1483 - components: - - type: Transform - pos: 10.5,43.5 - parent: 588 -- proto: Sink - entities: - - uid: 935 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 10.5,25.5 - parent: 588 -- proto: SinkStemlessWater - entities: - - uid: 1461 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 9.5,42.5 - parent: 588 - - uid: 1462 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 13.5,42.5 - parent: 588 -- proto: SMESBasic - entities: - - uid: 46 - components: - - type: Transform - pos: 26.5,13.5 - parent: 588 - - uid: 56 - components: - - type: Transform - pos: 28.5,13.5 - parent: 588 - - uid: 747 - components: - - type: Transform - pos: 26.5,19.5 - parent: 588 - - uid: 1506 - components: - - type: Transform - pos: 18.5,46.5 - parent: 588 - - uid: 1507 - components: - - type: Transform - pos: 20.5,46.5 - parent: 588 -- proto: SoapSyndie - entities: - - uid: 1856 - components: - - type: Transform - pos: 10.4890785,27.46785 - parent: 588 -- proto: SpaceCash100 - entities: - - uid: 1243 - components: - - type: Transform - pos: 11.887424,39.621456 - parent: 588 - - uid: 1244 - components: - - type: Transform - pos: 11.759636,39.479546 - parent: 588 - - uid: 1296 - components: - - type: Transform - pos: 12.100407,39.465355 - parent: 588 - - uid: 1297 - components: - - type: Transform - pos: 12.100407,39.80594 - parent: 588 - - uid: 1298 - components: - - type: Transform - pos: 11.688642,39.720795 - parent: 588 - - uid: 1299 - components: - - type: Transform - pos: 11.4330635,39.57888 - parent: 588 -- proto: Spear - entities: - - uid: 1834 - components: - - type: Transform - pos: 24.466219,48.441994 - parent: 588 -- proto: SpeedLoaderMagnum - entities: - - uid: 950 - components: - - type: Transform - pos: 28.703945,8.421182 - parent: 588 -- proto: StasisBed - entities: - - uid: 1425 - components: - - type: Transform - pos: 13.5,43.5 - parent: 588 -- proto: StimkitFilled - entities: - - uid: 561 - components: - - type: Transform - pos: 30.39083,27.514402 - parent: 588 -- proto: StimpackMini - entities: - - uid: 1879 - components: - - type: Transform - pos: 24.467485,46.702366 - parent: 588 -- proto: Stool - entities: - - uid: 1017 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 14.5,25.5 - parent: 588 - - uid: 1018 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 14.5,24.5 - parent: 588 - - uid: 1019 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 16.5,28.5 - parent: 588 - - uid: 1020 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 18.5,28.5 - parent: 588 - - uid: 1593 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 0.5,13.5 - parent: 588 - - uid: 1594 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 0.5,15.5 - parent: 588 - - uid: 1595 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 6.5,15.5 - parent: 588 - - uid: 1596 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 6.5,13.5 - parent: 588 -- proto: SubstationBasic - entities: - - uid: 467 - components: - - type: Transform - pos: 27.5,13.5 - parent: 588 - - uid: 1508 - components: - - type: Transform - pos: 19.5,46.5 - parent: 588 -- proto: SubstationWallBasic - entities: - - uid: 774 - components: - - type: Transform - pos: 27.5,19.5 - parent: 588 - - uid: 972 - components: - - type: Transform - pos: 19.5,32.5 - parent: 588 -- proto: SyringeEphedrine - entities: - - uid: 1475 - components: - - type: Transform - pos: 14.472328,42.917698 - parent: 588 -- proto: Table - entities: - - uid: 525 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 16.5,13.5 - parent: 588 - - uid: 527 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 16.5,12.5 - parent: 588 - - uid: 528 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 17.5,12.5 - parent: 588 - - uid: 535 - components: - - type: Transform - pos: 20.5,14.5 - parent: 588 - - uid: 536 - components: - - type: Transform - pos: 20.5,15.5 - parent: 588 - - uid: 630 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 6.5,19.5 - parent: 588 - - uid: 632 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 10.5,19.5 - parent: 588 - - uid: 633 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 10.5,18.5 - parent: 588 - - uid: 636 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 6.5,22.5 - parent: 588 - - uid: 637 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 7.5,22.5 - parent: 588 - - uid: 710 - components: - - type: Transform - pos: 18.5,22.5 - parent: 588 - - uid: 711 - components: - - type: Transform - pos: 18.5,21.5 - parent: 588 - - uid: 712 - components: - - type: Transform - pos: 21.5,18.5 - parent: 588 - - uid: 713 - components: - - type: Transform - pos: 22.5,18.5 - parent: 588 - - uid: 714 - components: - - type: Transform - pos: 18.5,18.5 - parent: 588 - - uid: 715 - components: - - type: Transform - pos: 19.5,18.5 - parent: 588 - - uid: 799 - components: - - type: Transform - pos: 33.5,20.5 - parent: 588 - - uid: 1118 - components: - - type: Transform - pos: 22.5,12.5 - parent: 588 - - uid: 1778 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 30.5,48.5 - parent: 588 - - uid: 1779 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 29.5,48.5 - parent: 588 - - uid: 1780 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 30.5,47.5 - parent: 588 -- proto: TableFrame - entities: - - uid: 705 - components: - - type: Transform - pos: 15.5,22.5 - parent: 588 - - uid: 1063 - components: - - type: Transform - pos: 26.5,24.5 - parent: 588 -- proto: TableGlass - entities: - - uid: 1144 - components: - - type: Transform - pos: 30.5,27.5 - parent: 588 - - uid: 1145 - components: - - type: Transform - pos: 30.5,28.5 - parent: 588 - - uid: 1390 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 8.5,43.5 - parent: 588 - - uid: 1391 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 8.5,42.5 - parent: 588 - - uid: 1398 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 10.5,44.5 - parent: 588 - - uid: 1405 - components: - - type: Transform - pos: 14.5,42.5 - parent: 588 - - uid: 1406 - components: - - type: Transform - pos: 14.5,43.5 - parent: 588 - - uid: 1407 - components: - - type: Transform - pos: 12.5,44.5 - parent: 588 -- proto: TableReinforced - entities: - - uid: 924 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 26.5,36.5 - parent: 588 - - uid: 925 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 26.5,35.5 - parent: 588 - - uid: 926 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 26.5,34.5 - parent: 588 - - uid: 1005 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 15.5,30.5 - parent: 588 - - uid: 1006 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 25.5,30.5 - parent: 588 - - uid: 1012 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 14.5,28.5 - parent: 588 - - uid: 1023 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 16.5,24.5 - parent: 588 - - uid: 1235 - components: - - type: Transform - pos: 34.5,24.5 - parent: 588 - - uid: 1567 - components: - - type: Transform - pos: 21.5,47.5 - parent: 588 -- proto: TableReinforcedGlass - entities: - - uid: 1213 - components: - - type: Transform - pos: 10.5,39.5 - parent: 588 - - uid: 1214 - components: - - type: Transform - pos: 11.5,39.5 - parent: 588 - - uid: 1215 - components: - - type: Transform - pos: 12.5,39.5 - parent: 588 -- proto: TableWood - entities: - - uid: 309 - components: - - type: Transform - pos: 20.5,4.5 - parent: 588 - - uid: 310 - components: - - type: Transform - pos: 21.5,4.5 - parent: 588 - - uid: 311 - components: - - type: Transform - pos: 18.5,0.5 - parent: 588 - - uid: 312 - components: - - type: Transform - pos: 21.5,3.5 - parent: 588 - - uid: 317 - components: - - type: Transform - pos: 18.5,1.5 - parent: 588 - - uid: 318 - components: - - type: Transform - pos: 19.5,0.5 - parent: 588 - - uid: 332 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 25.5,3.5 - parent: 588 - - uid: 333 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 26.5,3.5 - parent: 588 - - uid: 334 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 27.5,3.5 - parent: 588 - - uid: 335 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 25.5,4.5 - parent: 588 - - uid: 336 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 27.5,4.5 - parent: 588 - - uid: 340 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 24.5,1.5 - parent: 588 - - uid: 341 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 25.5,1.5 - parent: 588 - - uid: 342 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 27.5,1.5 - parent: 588 - - uid: 343 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 28.5,1.5 - parent: 588 - - uid: 563 - components: - - type: Transform - pos: 13.5,13.5 - parent: 588 - - uid: 564 - components: - - type: Transform - pos: 12.5,13.5 - parent: 588 - - uid: 565 - components: - - type: Transform - pos: 12.5,12.5 - parent: 588 - - uid: 1047 - components: - - type: Transform - pos: 22.5,28.5 - parent: 588 - - uid: 1048 - components: - - type: Transform - pos: 20.5,24.5 - parent: 588 - - uid: 1062 - components: - - type: Transform - pos: 26.5,28.5 - parent: 588 - - uid: 1227 - components: - - type: Transform - pos: 12.5,36.5 - parent: 588 - - uid: 1228 - components: - - type: Transform - pos: 22.5,34.5 - parent: 588 - - uid: 1783 - components: - - type: Transform - pos: 24.5,46.5 - parent: 588 - - uid: 1784 - components: - - type: Transform - pos: 24.5,44.5 - parent: 588 -- proto: TargetHuman - entities: - - uid: 1077 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 32.5,35.5 - parent: 588 -- proto: TintedWindow - entities: - - uid: 567 - components: - - type: Transform - pos: 12.5,15.5 - parent: 588 - - uid: 1463 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 10.5,43.5 - parent: 588 - - uid: 1464 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 12.5,43.5 - parent: 588 -- proto: ToiletEmpty - entities: - - uid: 932 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 8.5,24.5 - parent: 588 - - uid: 933 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 10.5,24.5 - parent: 588 - - uid: 934 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 8.5,25.5 - parent: 588 -- proto: UniformScrubsColorPurple - entities: - - uid: 1712 - components: - - type: Transform - pos: 10.503376,44.53288 - parent: 588 -- proto: VendingMachineChefvend - entities: - - uid: 532 - components: - - type: Transform - pos: 18.5,12.5 - parent: 588 -- proto: VendingMachineCigs - entities: - - uid: 720 - components: - - type: Transform - pos: 22.5,22.5 - parent: 588 -- proto: VendingMachineCoffee - entities: - - uid: 765 - components: - - type: Transform - pos: 10.5,22.5 - parent: 588 - - uid: 1285 - components: - - type: Transform - pos: 18.5,40.5 - parent: 588 -- proto: VendingMachineDetDrobe - entities: - - uid: 582 - components: - - type: Transform - pos: 10.5,14.5 - parent: 588 -- proto: VendingMachineDinnerware - entities: - - uid: 1781 - components: - - type: Transform - pos: 30.5,46.5 - parent: 588 -- proto: VendingMachineDonut - entities: - - uid: 538 - components: - - type: Transform - pos: 16.5,16.5 - parent: 588 -- proto: VendingMachineLawDrobe - entities: - - uid: 319 - components: - - type: Transform - pos: 18.5,4.5 - parent: 588 -- proto: VendingMachineMedical - entities: - - uid: 1143 - components: - - type: Transform - pos: 28.5,28.5 - parent: 588 -- proto: VendingMachineSec - entities: - - uid: 1013 - components: - - type: Transform - pos: 14.5,27.5 - parent: 588 -- proto: VendingMachineSeedsUnlocked - entities: - - uid: 800 - components: - - type: Transform - pos: 33.5,19.5 - parent: 588 - - uid: 1775 - components: - - type: Transform - pos: 28.5,44.5 - parent: 588 -- proto: WallmountTelescreen - entities: - - uid: 572 - components: - - type: Transform - pos: 13.5,13.5 - parent: 588 -- proto: WallPlastitaniumIndestructible - entities: - - uid: 377 - components: - - type: Transform - pos: 30.5,7.5 - parent: 588 - - uid: 378 - components: - - type: Transform - pos: 29.5,7.5 - parent: 588 - - uid: 379 - components: - - type: Transform - pos: 25.5,9.5 - parent: 588 - - uid: 380 - components: - - type: Transform - pos: 27.5,9.5 - parent: 588 - - uid: 381 - components: - - type: Transform - pos: 27.5,8.5 - parent: 588 - - uid: 382 - components: - - type: Transform - pos: 28.5,9.5 - parent: 588 - - uid: 383 - components: - - type: Transform - pos: 31.5,9.5 - parent: 588 - - uid: 384 - components: - - type: Transform - pos: 31.5,8.5 - parent: 588 - - uid: 385 - components: - - type: Transform - pos: 31.5,7.5 - parent: 588 - - uid: 386 - components: - - type: Transform - pos: 25.5,8.5 - parent: 588 - - uid: 387 - components: - - type: Transform - pos: 33.5,7.5 - parent: 588 - - uid: 388 - components: - - type: Transform - pos: 25.5,7.5 - parent: 588 - - uid: 389 - components: - - type: Transform - pos: 27.5,7.5 - parent: 588 - - uid: 390 - components: - - type: Transform - pos: 30.5,9.5 - parent: 588 - - uid: 391 - components: - - type: Transform - pos: 28.5,7.5 - parent: 588 - - uid: 392 - components: - - type: Transform - pos: 26.5,9.5 - parent: 588 - - uid: 393 - components: - - type: Transform - pos: 33.5,8.5 - parent: 588 - - uid: 394 - components: - - type: Transform - pos: 33.5,9.5 - parent: 588 - - uid: 395 - components: - - type: Transform - pos: 32.5,9.5 - parent: 588 -- proto: WallReinforced - entities: - - uid: 45 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 2.5,8.5 - parent: 588 - - uid: 51 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 8.5,8.5 - parent: 588 - - uid: 244 - components: - - type: Transform - pos: 6.5,4.5 - parent: 588 - - uid: 245 - components: - - type: Transform - pos: 6.5,3.5 - parent: 588 - - uid: 246 - components: - - type: Transform - pos: 10.5,4.5 - parent: 588 - - uid: 247 - components: - - type: Transform - pos: 10.5,3.5 - parent: 588 - - uid: 266 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 6.5,1.5 - parent: 588 - - uid: 267 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 6.5,0.5 - parent: 588 - - uid: 268 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 10.5,1.5 - parent: 588 - - uid: 269 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 10.5,0.5 - parent: 588 - - uid: 291 - components: - - type: Transform - pos: 15.5,6.5 - parent: 588 - - uid: 292 - components: - - type: Transform - pos: 19.5,6.5 - parent: 588 - - uid: 405 - components: - - type: Transform - pos: 15.5,10.5 - parent: 588 - - uid: 406 - components: - - type: Transform - pos: 19.5,10.5 - parent: 588 - - uid: 426 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 8.5,9.5 - parent: 588 - - uid: 432 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 2.5,7.5 - parent: 588 - - uid: 433 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 2.5,9.5 - parent: 588 - - uid: 434 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 8.5,7.5 - parent: 588 - - uid: 570 - components: - - type: Transform - pos: 0.5,46.5 - parent: 588 - - uid: 621 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 1.5,21.5 - parent: 588 - - uid: 622 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 3.5,19.5 - parent: 588 - - uid: 623 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 3.5,21.5 - parent: 588 - - uid: 627 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 1.5,19.5 - parent: 588 - - uid: 1078 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 33.5,35.5 - parent: 588 - - uid: 1330 - components: - - type: Transform - pos: 0.5,44.5 - parent: 588 - - uid: 1332 - components: - - type: Transform - pos: 2.5,42.5 - parent: 588 - - uid: 1334 - components: - - type: Transform - pos: 4.5,42.5 - parent: 588 - - uid: 1335 - components: - - type: Transform - pos: 6.5,44.5 - parent: 588 - - uid: 1337 - components: - - type: Transform - pos: 4.5,48.5 - parent: 588 - - uid: 1338 - components: - - type: Transform - pos: 6.5,46.5 - parent: 588 - - uid: 1340 - components: - - type: Transform - pos: 2.5,48.5 - parent: 588 -- proto: WallSolid - entities: - - uid: 140 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 5.5,25.5 - parent: 588 - - uid: 144 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 5.5,26.5 - parent: 588 - - uid: 145 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 4.5,25.5 - parent: 588 - - uid: 146 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 5.5,27.5 - parent: 588 - - uid: 205 - components: - - type: Transform - pos: 8.5,35.5 - parent: 588 - - uid: 206 - components: - - type: Transform - pos: 7.5,35.5 - parent: 588 - - uid: 207 - components: - - type: Transform - pos: 6.5,35.5 - parent: 588 - - uid: 208 - components: - - type: Transform - pos: 4.5,35.5 - parent: 588 - - uid: 210 - components: - - type: Transform - pos: 1.5,34.5 - parent: 588 - - uid: 305 - components: - - type: Transform - pos: 22.5,4.5 - parent: 588 - - uid: 306 - components: - - type: Transform - pos: 22.5,3.5 - parent: 588 - - uid: 307 - components: - - type: Transform - pos: 22.5,0.5 - parent: 588 - - uid: 308 - components: - - type: Transform - pos: 22.5,1.5 - parent: 588 - - uid: 476 - components: - - type: Transform - pos: 25.5,13.5 - parent: 588 - - uid: 481 - components: - - type: Transform - pos: 25.5,15.5 - parent: 588 - - uid: 483 - components: - - type: Transform - pos: 30.5,13.5 - parent: 588 - - uid: 501 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 25.5,14.5 - parent: 588 - - uid: 510 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 30.5,15.5 - parent: 588 - - uid: 749 - components: - - type: Transform - pos: 25.5,19.5 - parent: 588 - - uid: 750 - components: - - type: Transform - pos: 27.5,19.5 - parent: 588 - - uid: 975 - components: - - type: Transform - pos: 19.5,32.5 - parent: 588 - - uid: 995 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 21.5,32.5 - parent: 588 - - uid: 1163 - components: - - type: Transform - pos: 8.5,36.5 - parent: 588 - - uid: 1164 - components: - - type: Transform - pos: 3.5,35.5 - parent: 588 - - uid: 1165 - components: - - type: Transform - pos: 2.5,35.5 - parent: 588 - - uid: 1167 - components: - - type: Transform - pos: 1.5,35.5 - parent: 588 - - uid: 1300 - components: - - type: Transform - pos: 25.5,39.5 - parent: 588 - - uid: 1303 - components: - - type: Transform - pos: 28.5,39.5 - parent: 588 - - uid: 1304 - components: - - type: Transform - pos: 29.5,39.5 - parent: 588 - - uid: 1305 - components: - - type: Transform - pos: 28.5,40.5 - parent: 588 - - uid: 1485 - components: - - type: Transform - pos: 17.5,43.5 - parent: 588 - - uid: 1486 - components: - - type: Transform - pos: 17.5,44.5 - parent: 588 - - uid: 1487 - components: - - type: Transform - pos: 18.5,43.5 - parent: 588 - - uid: 1488 - components: - - type: Transform - pos: 20.5,43.5 - parent: 588 - - uid: 1489 - components: - - type: Transform - pos: 21.5,43.5 - parent: 588 - - uid: 1490 - components: - - type: Transform - pos: 21.5,44.5 - parent: 588 - - uid: 1491 - components: - - type: Transform - pos: 18.5,47.5 - parent: 588 - - uid: 1492 - components: - - type: Transform - pos: 19.5,47.5 - parent: 588 - - uid: 1493 - components: - - type: Transform - pos: 20.5,47.5 - parent: 588 -- proto: WallWood - entities: - - uid: 554 - components: - - type: Transform - pos: 9.5,13.5 - parent: 588 - - uid: 555 - components: - - type: Transform - pos: 9.5,14.5 - parent: 588 - - uid: 556 - components: - - type: Transform - pos: 9.5,15.5 - parent: 588 - - uid: 557 - components: - - type: Transform - pos: 10.5,15.5 - parent: 588 - - uid: 558 - components: - - type: Transform - pos: 13.5,15.5 - parent: 588 - - uid: 559 - components: - - type: Transform - pos: 13.5,16.5 - parent: 588 - - uid: 566 - components: - - type: Transform - pos: 9.5,12.5 - parent: 588 -- proto: WardrobePrisonFilled - entities: - - uid: 297 - components: - - type: Transform - pos: 2.5,4.5 - parent: 588 - - uid: 302 - components: - - type: Transform - pos: 4.5,4.5 - parent: 588 - - uid: 303 - components: - - type: Transform - pos: 12.5,4.5 - parent: 588 - - uid: 304 - components: - - type: Transform - pos: 14.5,4.5 - parent: 588 - - uid: 544 - components: - - type: Transform - pos: 16.5,4.5 - parent: 588 - - uid: 545 - components: - - type: Transform - pos: 0.5,4.5 - parent: 588 - - uid: 1769 - components: - - type: Transform - pos: 24.5,43.5 - parent: 588 - - uid: 1770 - components: - - type: Transform - pos: 24.5,47.5 - parent: 588 -- proto: WaterCooler - entities: - - uid: 629 - components: - - type: Transform - pos: 6.5,18.5 - parent: 588 - - uid: 724 - components: - - type: Transform - pos: 19.5,22.5 - parent: 588 - - uid: 1284 - components: - - type: Transform - pos: 17.5,40.5 - parent: 588 - - uid: 1292 - components: - - type: Transform - pos: 21.5,12.5 - parent: 588 -- proto: WaterTankHighCapacity - entities: - - uid: 801 - components: - - type: Transform - pos: 30.5,22.5 - parent: 588 - - uid: 1789 - components: - - type: Transform - pos: 28.5,48.5 - parent: 588 -- proto: WeaponCapacitorRecharger - entities: - - uid: 760 - components: - - type: Transform - pos: 10.5,18.5 - parent: 588 - - uid: 929 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 26.5,34.5 - parent: 588 - - uid: 1033 - components: - - type: Transform - pos: 14.5,28.5 - parent: 588 - - uid: 1034 - components: - - type: Transform - pos: 16.5,24.5 - parent: 588 -- proto: WeaponDisablerPractice - entities: - - uid: 547 - components: - - type: Transform - pos: 1.4370823,0.5241035 - parent: 588 - - uid: 930 - components: - - type: Transform - pos: 26.440151,36.61676 - parent: 588 - - uid: 1611 - components: - - type: Transform - pos: 12.371853,10.605072 - parent: 588 -- proto: WeaponLaserCarbinePractice - entities: - - uid: 931 - components: - - type: Transform - pos: 26.596338,36.36132 - parent: 588 - - uid: 1612 - components: - - type: Transform - pos: 22.543945,6.5464144 - parent: 588 -- proto: WeaponShotgunKammerer - entities: - - uid: 583 - components: - - type: Transform - pos: 26.57963,35.4414 - parent: 588 -- proto: WindoorAssemblySecure - entities: - - uid: 696 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 16.5,19.5 - parent: 588 - - uid: 697 - components: - - type: Transform - pos: 12.5,21.5 - parent: 588 - - uid: 1073 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 25.5,25.5 - parent: 588 -- proto: WindoorSecure - entities: - - uid: 1761 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 26.5,43.5 - parent: 588 - - uid: 1762 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 26.5,47.5 - parent: 588 -- proto: WindoorSecureBrigLocked - entities: - - uid: 339 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 29.5,2.5 - parent: 588 -- proto: WindoorSecureEngineeringLocked - entities: - - uid: 1569 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 18.5,45.5 - parent: 588 - - uid: 1570 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 20.5,45.5 - parent: 588 -- proto: WindoorSecureMedicalLocked - entities: - - uid: 1408 - components: - - type: Transform - pos: 11.5,44.5 - parent: 588 -- proto: WindoorSecureSecurityLocked - entities: - - uid: 252 - components: - - type: Transform - pos: 4.5,3.5 - parent: 588 - - uid: 253 - components: - - type: Transform - pos: 2.5,3.5 - parent: 588 - - uid: 256 - components: - - type: Transform - pos: 16.5,3.5 - parent: 588 - - uid: 274 - components: - - type: Transform - pos: 12.5,3.5 - parent: 588 - - uid: 275 - components: - - type: Transform - pos: 14.5,3.5 - parent: 588 - - uid: 289 - components: - - type: Transform - pos: 0.5,3.5 - parent: 588 - - uid: 698 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 12.5,19.5 - parent: 588 - - uid: 1053 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 21.5,25.5 - parent: 588 - - uid: 1054 - components: - - type: Transform - pos: 21.5,27.5 - parent: 588 -- proto: WindowDirectional - entities: - - uid: 480 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 26.5,15.5 - parent: 588 - - uid: 482 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 27.5,15.5 - parent: 588 - - uid: 540 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 28.5,15.5 - parent: 588 - - uid: 541 - components: - - type: Transform - pos: 26.5,13.5 - parent: 588 - - uid: 542 - components: - - type: Transform - pos: 27.5,13.5 - parent: 588 - - uid: 543 - components: - - type: Transform - pos: 28.5,13.5 - parent: 588 - - uid: 575 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 33.5,20.5 - parent: 588 - - uid: 576 - components: - - type: Transform - pos: 26.5,19.5 - parent: 588 - - uid: 803 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 33.5,21.5 - parent: 588 - - uid: 804 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 33.5,19.5 - parent: 588 - - uid: 1087 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 27.5,36.5 - parent: 588 - - uid: 1088 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 27.5,34.5 - parent: 588 - - uid: 1520 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 18.5,46.5 - parent: 588 - - uid: 1521 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 20.5,46.5 - parent: 588 - - uid: 1771 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 28.5,44.5 - parent: 588 - - uid: 1773 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 29.5,44.5 - parent: 588 - - uid: 1777 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 30.5,44.5 - parent: 588 - - uid: 1782 - components: - - type: Transform - pos: 30.5,46.5 - parent: 588 -- proto: WindowFrostedDirectional - entities: - - uid: 936 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 8.5,24.5 - parent: 588 - - uid: 937 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 10.5,24.5 - parent: 588 - - uid: 938 - components: - - type: Transform - pos: 8.5,27.5 - parent: 588 - - uid: 939 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 8.5,25.5 - parent: 588 - - uid: 941 - components: - - type: Transform - pos: 10.5,27.5 - parent: 588 - - uid: 942 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 10.5,28.5 - parent: 588 - - uid: 943 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 8.5,28.5 - parent: 588 - - uid: 1392 - components: - - type: Transform - pos: 8.5,44.5 - parent: 588 - - uid: 1393 - components: - - type: Transform - pos: 10.5,44.5 - parent: 588 - - uid: 1401 - components: - - type: Transform - pos: 12.5,44.5 - parent: 588 - - uid: 1402 - components: - - type: Transform - pos: 14.5,44.5 - parent: 588 - - uid: 1753 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 24.5,43.5 - parent: 588 - - uid: 1754 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 25.5,43.5 - parent: 588 - - uid: 1755 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 26.5,43.5 - parent: 588 - - uid: 1756 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 26.5,42.5 - parent: 588 - - uid: 1757 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 26.5,48.5 - parent: 588 - - uid: 1758 - components: - - type: Transform - pos: 26.5,47.5 - parent: 588 - - uid: 1759 - components: - - type: Transform - pos: 25.5,47.5 - parent: 588 - - uid: 1760 - components: - - type: Transform - pos: 24.5,47.5 - parent: 588 -- proto: WindowReinforcedDirectional - entities: - - uid: 97 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 2.5,14.5 - parent: 588 - - uid: 99 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 4.5,14.5 - parent: 588 - - uid: 258 - components: - - type: Transform - pos: 3.5,3.5 - parent: 588 - - uid: 259 - components: - - type: Transform - pos: 5.5,3.5 - parent: 588 - - uid: 260 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 3.5,3.5 - parent: 588 - - uid: 261 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 3.5,4.5 - parent: 588 - - uid: 270 - components: - - type: Transform - pos: 11.5,3.5 - parent: 588 - - uid: 271 - components: - - type: Transform - pos: 13.5,3.5 - parent: 588 - - uid: 272 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 13.5,3.5 - parent: 588 - - uid: 273 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 13.5,4.5 - parent: 588 - - uid: 277 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 1.5,4.5 - parent: 588 - - uid: 278 - components: - - type: Transform - pos: 15.5,3.5 - parent: 588 - - uid: 279 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 15.5,4.5 - parent: 588 - - uid: 280 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 1.5,3.5 - parent: 588 - - uid: 281 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 15.5,3.5 - parent: 588 - - uid: 290 - components: - - type: Transform - pos: 1.5,3.5 - parent: 588 - - uid: 607 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 3.5,14.5 - parent: 588 - - uid: 609 - components: - - type: Transform - pos: 4.5,14.5 - parent: 588 - - uid: 611 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 4.5,14.5 - parent: 588 - - uid: 612 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 2.5,14.5 - parent: 588 - - uid: 614 - components: - - type: Transform - pos: 3.5,14.5 - parent: 588 - - uid: 619 - components: - - type: Transform - pos: 2.5,14.5 - parent: 588 - - uid: 620 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 3.5,20.5 - parent: 588 - - uid: 624 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 1.5,20.5 - parent: 588 - - uid: 625 - components: - - type: Transform - pos: 2.5,19.5 - parent: 588 - - uid: 626 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 2.5,21.5 - parent: 588 - - uid: 648 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 15.5,19.5 - parent: 588 - - uid: 650 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 13.5,18.5 - parent: 588 - - uid: 651 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 13.5,19.5 - parent: 588 - - uid: 652 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 15.5,19.5 - parent: 588 - - uid: 653 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 15.5,18.5 - parent: 588 - - uid: 654 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 13.5,21.5 - parent: 588 - - uid: 658 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 13.5,22.5 - parent: 588 - - uid: 660 - components: - - type: Transform - pos: 13.5,21.5 - parent: 588 - - uid: 805 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 1.5,27.5 - parent: 588 - - uid: 806 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 1.5,26.5 - parent: 588 - - uid: 807 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 1.5,25.5 - parent: 588 - - uid: 808 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 1.5,25.5 - parent: 588 - - uid: 809 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 1.5,26.5 - parent: 588 - - uid: 810 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 1.5,27.5 - parent: 588 - - uid: 811 - components: - - type: Transform - pos: 1.5,25.5 - parent: 588 - - uid: 812 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 1.5,27.5 - parent: 588 - - uid: 1038 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 22.5,25.5 - parent: 588 - - uid: 1039 - components: - - type: Transform - pos: 20.5,27.5 - parent: 588 - - uid: 1042 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 20.5,25.5 - parent: 588 - - uid: 1045 - components: - - type: Transform - pos: 22.5,27.5 - parent: 588 - - uid: 1058 - components: - - type: Transform - pos: 24.5,27.5 - parent: 588 - - uid: 1059 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 26.5,25.5 - parent: 588 - - uid: 1060 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 24.5,25.5 - parent: 588 - - uid: 1399 - components: - - type: Transform - pos: 9.5,44.5 - parent: 588 - - uid: 1400 - components: - - type: Transform - pos: 13.5,44.5 - parent: 588 -- proto: Wrench - entities: - - uid: 424 - components: - - type: Transform - pos: 15.156982,32.526764 - parent: 588 -- proto: Zipties - entities: - - uid: 1156 - components: - - type: Transform - pos: 15.332411,0.52492684 - parent: 588 -- proto: ZiptiesBroken - entities: - - uid: 48 - components: - - type: Transform - pos: 5.2591753,3.5817227 - parent: 588 - - uid: 706 - components: - - type: Transform - pos: 16.06022,21.977758 - parent: 588 -... +meta: + format: 6 + postmapinit: false +tilemap: + 0: Space + 15: FloorBasalt + 29: FloorDark + 33: FloorDarkMini + 34: FloorDarkMono + 42: FloorElevatorShaft + 54: FloorGreenCircuit + 62: FloorLino + 77: FloorReinforced + 82: FloorShuttleOrange + 89: FloorSteel + 99: FloorSteelMini + 100: FloorSteelMono + 104: FloorTechMaint + 108: FloorWhite + 112: FloorWhiteMini + 118: FloorWood + 121: Plating +entities: +- proto: "" + entities: + - uid: 588 + components: + - type: MetaData + - type: Transform + - type: Map + - type: PhysicsMap + - type: Broadphase + - type: OccluderTree + - type: MapGrid + chunks: + -1,-1: + ind: -1,-1 + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAA + version: 6 + 0,0: + ind: 0,0 + tiles: WQAAAAADWQAAAAABWQAAAAACWQAAAAADWQAAAAACWQAAAAABeQAAAAAADwAAAAAAHQAAAAABDwAAAAAAeQAAAAAAWQAAAAACWQAAAAACWQAAAAACWQAAAAACWQAAAAACWQAAAAACWQAAAAABWQAAAAABWQAAAAAAWQAAAAADWQAAAAADeQAAAAAADwAAAAAADwAAAAAADwAAAAAAeQAAAAAAWQAAAAABWQAAAAACWQAAAAABWQAAAAACWQAAAAAAWQAAAAADWQAAAAADWQAAAAABWQAAAAADWQAAAAACWQAAAAABIgAAAAABHQAAAAABDwAAAAAAHQAAAAACIgAAAAAAWQAAAAABWQAAAAACWQAAAAABWQAAAAADWQAAAAADaAAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAeQAAAAAADwAAAAAADwAAAAAADwAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAeQAAAAAADwAAAAAAHQAAAAACDwAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAHQAAAAABHQAAAAABHQAAAAACDwAAAAAADwAAAAAADwAAAAAADwAAAAAADwAAAAAAHQAAAAABHQAAAAADHQAAAAABUgAAAAAAZAAAAAACWQAAAAAAZAAAAAACeQAAAAAAHQAAAAAAIgAAAAADeQAAAAAADwAAAAAADwAAAAAADwAAAAAADwAAAAAADwAAAAAAeQAAAAAAIgAAAAACHQAAAAACUgAAAAAAYwAAAAACYwAAAAAAYwAAAAAAeQAAAAAAHQAAAAABIgAAAAACeQAAAAAADwAAAAAADwAAAAAADwAAAAAADwAAAAAADwAAAAAAeQAAAAAAIgAAAAABHQAAAAADUgAAAAAAYwAAAAACYwAAAAAAYwAAAAAAWQAAAAACHQAAAAAAIgAAAAADeQAAAAAADwAAAAAADwAAAAAADwAAAAAADwAAAAAADwAAAAAAeQAAAAAAIgAAAAAAHQAAAAABUgAAAAAAYwAAAAADYwAAAAABYwAAAAABeQAAAAAAHQAAAAADHQAAAAADHQAAAAACDwAAAAAADwAAAAAADwAAAAAADwAAAAAADwAAAAAAHQAAAAABHQAAAAABHQAAAAAAUgAAAAAAZAAAAAABWQAAAAABZAAAAAACeQAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAHQAAAAAAHQAAAAABeQAAAAAAHQAAAAADeQAAAAAAHQAAAAADHQAAAAADUgAAAAAAaAAAAAAAeQAAAAAAdgAAAAADdgAAAAABdgAAAAADdgAAAAAAdgAAAAADUgAAAAAAHQAAAAABHQAAAAACHQAAAAACHQAAAAADHQAAAAADHQAAAAADHQAAAAAAUgAAAAAAaAAAAAAAeQAAAAAAdgAAAAABdgAAAAACdgAAAAAAdgAAAAACdgAAAAACUgAAAAAAHQAAAAADHQAAAAACDwAAAAAADwAAAAAADwAAAAAAHQAAAAACHQAAAAACUgAAAAAAaAAAAAAAeQAAAAAAdgAAAAACdgAAAAADdgAAAAADdgAAAAACdgAAAAADUgAAAAAAHQAAAAADHQAAAAACHQAAAAABHQAAAAACHQAAAAACHQAAAAADHQAAAAABUgAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAdgAAAAABUgAAAAAA + version: 6 + 0,1: + ind: 0,1 + tiles: HQAAAAAAHQAAAAADeQAAAAAAHQAAAAACeQAAAAAAHQAAAAADHQAAAAAAUgAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAeQAAAAAAdgAAAAACUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAHQAAAAADHQAAAAAAHQAAAAADHQAAAAADHQAAAAABUgAAAAAAWQAAAAAAWQAAAAABWQAAAAACWQAAAAAAWQAAAAAAUgAAAAAAaAAAAAAAeQAAAAAAWQAAAAABaAAAAAAAHQAAAAACeQAAAAAADwAAAAAAeQAAAAAAHQAAAAACUgAAAAAAWQAAAAADYwAAAAAAYwAAAAABYwAAAAADWQAAAAABUgAAAAAAaAAAAAAAaAAAAAAAWQAAAAAAeQAAAAAAHQAAAAABDwAAAAAADwAAAAAADwAAAAAAHQAAAAAAUgAAAAAAWQAAAAAAYwAAAAABYwAAAAACYwAAAAACWQAAAAADUgAAAAAAWQAAAAACWQAAAAADWQAAAAABWQAAAAAAHQAAAAAAeQAAAAAADwAAAAAAeQAAAAAAHQAAAAAAUgAAAAAAWQAAAAABYwAAAAABYwAAAAABYwAAAAABWQAAAAADUgAAAAAAaAAAAAAAaAAAAAAAWQAAAAAAWQAAAAABHQAAAAADHQAAAAABHQAAAAACHQAAAAAAHQAAAAABUgAAAAAAWQAAAAAAWQAAAAABWQAAAAAAWQAAAAACWQAAAAABUgAAAAAAaAAAAAAAaAAAAAAAWQAAAAABWQAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAHQAAAAAAHQAAAAADHQAAAAAAUgAAAAAAaAAAAAAAaAAAAAAAeQAAAAAAUgAAAAAAcAAAAAACcAAAAAACcAAAAAABUgAAAAAAWQAAAAADWQAAAAADZAAAAAAAUgAAAAAAHQAAAAAADwAAAAAAHQAAAAACUgAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAUgAAAAAAcAAAAAADcAAAAAACcAAAAAADUgAAAAAAWQAAAAAAWQAAAAABZAAAAAABUgAAAAAAHQAAAAACDwAAAAAAHQAAAAAAUgAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAUgAAAAAAcAAAAAADcAAAAAAAcAAAAAAAUgAAAAAAWQAAAAABWQAAAAABWQAAAAABUgAAAAAAHQAAAAACDwAAAAAAHQAAAAABUgAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAUgAAAAAAcAAAAAADcAAAAAADcAAAAAABUgAAAAAAZAAAAAACWQAAAAABWQAAAAACUgAAAAAAHQAAAAADHQAAAAACHQAAAAADUgAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAUgAAAAAAcAAAAAACcAAAAAACcAAAAAADUgAAAAAAZAAAAAACWQAAAAAAWQAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAHQAAAAAAHQAAAAABDwAAAAAADwAAAAAADwAAAAAADwAAAAAADwAAAAAADwAAAAAADwAAAAAADwAAAAAADwAAAAAAHQAAAAADHQAAAAACUgAAAAAAWQAAAAABWQAAAAACHQAAAAACHQAAAAABHQAAAAAADwAAAAAADwAAAAAADwAAAAAADwAAAAAADwAAAAAADwAAAAAADwAAAAAAHQAAAAADHQAAAAADHQAAAAAAUgAAAAAAaAAAAAAAeQAAAAAA + version: 6 + 0,-1: + ind: 0,-1 + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAA + version: 6 + -1,0: + ind: -1,0 + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAA + version: 6 + -1,1: + ind: -1,1 + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAA + version: 6 + 1,-1: + ind: 1,-1 + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAA + version: 6 + 1,0: + ind: 1,0 + tiles: WQAAAAABUgAAAAAAPgAAAAAAPgAAAAAAPgAAAAAAPgAAAAAAeQAAAAAAHQAAAAACHQAAAAAAHQAAAAABHQAAAAADHQAAAAABHQAAAAADHQAAAAADHQAAAAACHQAAAAADWQAAAAADUgAAAAAAPgAAAAAAPgAAAAAAPgAAAAAAPgAAAAAAeQAAAAAAHQAAAAAAHQAAAAADHQAAAAABHQAAAAACHQAAAAABHQAAAAADHQAAAAACHQAAAAABHQAAAAABWQAAAAAAUgAAAAAAPgAAAAAAPgAAAAAAPgAAAAAAPgAAAAAAIgAAAAACHQAAAAACHQAAAAACHQAAAAACHQAAAAABHQAAAAACHQAAAAACHQAAAAAAHQAAAAAAHQAAAAABaAAAAAAAUgAAAAAAPgAAAAAAPgAAAAAAPgAAAAAAPgAAAAAAeQAAAAAAHQAAAAADHQAAAAAAHQAAAAACHQAAAAAAHQAAAAADHQAAAAADHQAAAAADHQAAAAAAHQAAAAABaAAAAAAAUgAAAAAAPgAAAAAAPgAAAAAAPgAAAAAAPgAAAAAAeQAAAAAAHQAAAAABHQAAAAABHQAAAAACHQAAAAAAHQAAAAABHQAAAAACHQAAAAAAHQAAAAACHQAAAAADUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAWQAAAAABWQAAAAACWQAAAAACeQAAAAAAZAAAAAAAWQAAAAABZAAAAAAAUgAAAAAATQAAAAAATQAAAAAATQAAAAAATQAAAAAATQAAAAAATQAAAAAATQAAAAAATQAAAAAAWQAAAAAAWQAAAAABWQAAAAAAeQAAAAAAYwAAAAAAYwAAAAAAYwAAAAABUgAAAAAATQAAAAAAeQAAAAAAIgAAAAACeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAACWQAAAAACWQAAAAAAWQAAAAADYwAAAAADYwAAAAAAYwAAAAADUgAAAAAATQAAAAAAeQAAAAAAKgAAAAAAeQAAAAAAKgAAAAAAKgAAAAAAKgAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAABeQAAAAAAYwAAAAACYwAAAAABYwAAAAADUgAAAAAATQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAIgAAAAABeQAAAAAAeQAAAAAAWQAAAAADWQAAAAAAWQAAAAAAeQAAAAAAZAAAAAADWQAAAAABZAAAAAACUgAAAAAATQAAAAAATQAAAAAATQAAAAAATQAAAAAATQAAAAAATQAAAAAATQAAAAAATQAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAWQAAAAABWQAAAAAAWQAAAAAAWQAAAAADWQAAAAACWQAAAAACWQAAAAADUgAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAUgAAAAAAWQAAAAABYwAAAAACYwAAAAACYwAAAAAAYwAAAAADYwAAAAACWQAAAAAAUgAAAAAAaAAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAWQAAAAAAeQAAAAAAUgAAAAAAWQAAAAAAYwAAAAABYwAAAAADYwAAAAABYwAAAAACYwAAAAAAWQAAAAACUgAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAADaAAAAAAAUgAAAAAAWQAAAAACYwAAAAABYwAAAAABYwAAAAADYwAAAAAAYwAAAAABWQAAAAAAUgAAAAAAaAAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAWQAAAAAAeQAAAAAAUgAAAAAA + version: 6 + 1,1: + ind: 1,1 + tiles: WQAAAAABWQAAAAACWQAAAAACWQAAAAAAWQAAAAABWQAAAAAAWQAAAAACUgAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAaAAAAAAAUgAAAAAAWQAAAAACWQAAAAABWQAAAAABWQAAAAAAWQAAAAADUgAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAeQAAAAAAUgAAAAAAWQAAAAACWQAAAAACaAAAAAAAUgAAAAAAWQAAAAADYwAAAAACYwAAAAABYwAAAAAAWQAAAAABUgAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAUgAAAAAAWQAAAAADYwAAAAADWQAAAAACUgAAAAAAWQAAAAADYwAAAAADYwAAAAADYwAAAAADWQAAAAABUgAAAAAAeQAAAAAAWQAAAAABeQAAAAAAWQAAAAABeQAAAAAAUgAAAAAAWQAAAAAAYwAAAAABWQAAAAADUgAAAAAAWQAAAAAAYwAAAAAAYwAAAAACYwAAAAACWQAAAAADUgAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAeQAAAAAAUgAAAAAAWQAAAAADYwAAAAADWQAAAAACUgAAAAAAWQAAAAACWQAAAAACWQAAAAADWQAAAAADWQAAAAACUgAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAeQAAAAAAUgAAAAAAWQAAAAACWQAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAWQAAAAADWQAAAAABWQAAAAAAUgAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAUgAAAAAAaAAAAAAAaAAAAAAAeQAAAAAAUgAAAAAAWQAAAAABWQAAAAACZAAAAAACUgAAAAAAWQAAAAABWQAAAAAAWQAAAAAAUgAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAUgAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAUgAAAAAAWQAAAAACWQAAAAADZAAAAAABUgAAAAAAWQAAAAACWQAAAAAAWQAAAAACUgAAAAAAWQAAAAACWQAAAAAAWQAAAAACUgAAAAAAWQAAAAADWQAAAAAAWQAAAAADUgAAAAAAWQAAAAADWQAAAAACWQAAAAADUgAAAAAAZAAAAAADWQAAAAACZAAAAAADUgAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAUgAAAAAAaAAAAAAAaAAAAAAAeQAAAAAAUgAAAAAAZAAAAAAAWQAAAAADWQAAAAACUgAAAAAAZAAAAAABWQAAAAABZAAAAAABUgAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAUgAAAAAAaAAAAAAAeQAAAAAAaAAAAAAAUgAAAAAAZAAAAAADWQAAAAADWQAAAAABUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAWQAAAAAAWQAAAAACWQAAAAABWQAAAAADWQAAAAACWQAAAAAAWQAAAAACWQAAAAAAWQAAAAACWQAAAAACWQAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAA + version: 6 + -1,2: + ind: -1,2 + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAA + version: 6 + -1,3: + ind: -1,3 + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + version: 6 + 0,2: + ind: 0,2 + tiles: HQAAAAACHQAAAAACDwAAAAAADwAAAAAADwAAAAAADwAAAAAADwAAAAAADwAAAAAADwAAAAAADwAAAAAADwAAAAAAHQAAAAADHQAAAAAAUgAAAAAAaAAAAAAAaAAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAaAAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAUgAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAUgAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAWQAAAAADaAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAUgAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAeQAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAHQAAAAAADwAAAAAADwAAAAAADwAAAAAADwAAAAAADwAAAAAAHQAAAAAAUgAAAAAAHQAAAAABTQAAAAAATQAAAAAATQAAAAAATQAAAAAATQAAAAAAHQAAAAABUgAAAAAAHQAAAAAADwAAAAAADwAAAAAADwAAAAAADwAAAAAADwAAAAAAHQAAAAAAUgAAAAAAHQAAAAAATQAAAAAANgAAAAAANgAAAAAANgAAAAAATQAAAAAAHQAAAAAAUgAAAAAAHQAAAAACDwAAAAAADwAAAAAADwAAAAAADwAAAAAADwAAAAAAHQAAAAACUgAAAAAAHQAAAAAATQAAAAAATQAAAAAATQAAAAAATQAAAAAATQAAAAAAHQAAAAACUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAADwAAAAAADwAAAAAAeQAAAAAAIgAAAAABeQAAAAAADwAAAAAADwAAAAAAUgAAAAAAbAAAAAACbAAAAAAAbAAAAAAAbAAAAAAAbAAAAAADbAAAAAABbAAAAAABUgAAAAAADwAAAAAADwAAAAAADwAAAAAAHQAAAAAADwAAAAAADwAAAAAADwAAAAAAUgAAAAAAbAAAAAABbAAAAAABeQAAAAAAbAAAAAAAeQAAAAAAbAAAAAABbAAAAAADUgAAAAAAeQAAAAAADwAAAAAADwAAAAAADwAAAAAADwAAAAAADwAAAAAAeQAAAAAAUgAAAAAAIgAAAAABIgAAAAABIgAAAAACaAAAAAAAIgAAAAADIgAAAAACIgAAAAABUgAAAAAAIgAAAAAAHQAAAAACDwAAAAAADwAAAAAADwAAAAAAHQAAAAAAIgAAAAABUgAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAUgAAAAAAeQAAAAAADwAAAAAADwAAAAAADwAAAAAADwAAAAAADwAAAAAAeQAAAAAAUgAAAAAAIgAAAAACIgAAAAAAIgAAAAABaAAAAAAAIgAAAAABIgAAAAACIgAAAAAAUgAAAAAADwAAAAAADwAAAAAADwAAAAAAHQAAAAADDwAAAAAADwAAAAAADwAAAAAAUgAAAAAAIgAAAAAAIgAAAAAAIgAAAAACaAAAAAAAIgAAAAAAIgAAAAACIgAAAAADUgAAAAAA + version: 6 + 0,3: + ind: 0,3 + tiles: DwAAAAAADwAAAAAAeQAAAAAAIgAAAAAAeQAAAAAADwAAAAAADwAAAAAAUgAAAAAAIgAAAAACIgAAAAAAIgAAAAAAaAAAAAAAIgAAAAABIgAAAAACIgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + version: 6 + 1,2: + ind: 1,2 + tiles: aAAAAAAAaAAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAYwAAAAACYwAAAAADYwAAAAABeQAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAUgAAAAAAHQAAAAACHQAAAAADHQAAAAACTQAAAAAATQAAAAAATQAAAAAATQAAAAAATQAAAAAAYwAAAAACYwAAAAAAYwAAAAABWQAAAAACaAAAAAAAaAAAAAAAaAAAAAAAUgAAAAAAHQAAAAACHQAAAAABHQAAAAABTQAAAAAATQAAAAAATQAAAAAATQAAAAAATQAAAAAAYwAAAAADYwAAAAADYwAAAAADeQAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAUgAAAAAAHQAAAAADHQAAAAABHQAAAAABTQAAAAAATQAAAAAATQAAAAAATQAAAAAATQAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAWQAAAAACWQAAAAAAWQAAAAAAWQAAAAABWQAAAAADWQAAAAADWQAAAAAAUgAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAUgAAAAAAWQAAAAACYwAAAAABYwAAAAACYwAAAAABYwAAAAADYwAAAAAAWQAAAAAAUgAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAUgAAAAAAWQAAAAAAWQAAAAABWQAAAAABWQAAAAACWQAAAAAAWQAAAAAAWQAAAAADUgAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAUgAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAWQAAAAACYwAAAAAAYwAAAAADYwAAAAADUgAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAUgAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAWQAAAAADYwAAAAABYwAAAAABYwAAAAACUgAAAAAAaAAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAaAAAAAAAUgAAAAAAWQAAAAACWQAAAAADWQAAAAABWQAAAAACYwAAAAADYwAAAAABYwAAAAACUgAAAAAAaAAAAAAAWQAAAAADeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAACaAAAAAAAUgAAAAAAWQAAAAADWQAAAAADWQAAAAACWQAAAAADWQAAAAACWQAAAAADWQAAAAADUgAAAAAAaAAAAAAAWQAAAAABaAAAAAAAaAAAAAAAaAAAAAAAWQAAAAAAaAAAAAAAUgAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAACIQAAAAABIQAAAAADWQAAAAACUgAAAAAAaAAAAAAAWQAAAAADeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAAAaAAAAAAAUgAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAWQAAAAABIQAAAAAAIQAAAAABWQAAAAABUgAAAAAA + version: 6 + 1,3: + ind: 1,3 + tiles: aAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAUgAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAWQAAAAABWQAAAAAAWQAAAAAAWQAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + version: 6 + 2,-1: + ind: 2,-1 + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + version: 6 + 2,0: + ind: 2,0 + tiles: HQAAAAAAHQAAAAABWQAAAAACUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHQAAAAABHQAAAAACWQAAAAABUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHQAAAAACHQAAAAACWQAAAAABUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHQAAAAAAHQAAAAADWQAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHQAAAAACHQAAAAAAWQAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATQAAAAAATQAAAAAATQAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIgAAAAADeQAAAAAATQAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKgAAAAAAeQAAAAAATQAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAATQAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATQAAAAAATQAAAAAATQAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + version: 6 + 2,1: + ind: 2,1 + tiles: UgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWQAAAAABWQAAAAACWQAAAAADUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYwAAAAAAYwAAAAABWQAAAAADUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYwAAAAADYwAAAAABWQAAAAABUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYwAAAAABYwAAAAAAWQAAAAABUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWQAAAAACWQAAAAABWQAAAAACUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIgAAAAACHQAAAAAAIgAAAAADUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIgAAAAACHQAAAAACIgAAAAADUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHQAAAAABHQAAAAADHQAAAAADUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIgAAAAABIgAAAAACIgAAAAADUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHQAAAAAAHQAAAAADHQAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + version: 6 + 2,2: + ind: 2,2 + tiles: UgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATQAAAAAAHQAAAAADHQAAAAABUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIgAAAAABeQAAAAAAHQAAAAADUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATQAAAAAAHQAAAAAAHQAAAAADUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + version: 6 + 2,3: + ind: 2,3 + tiles: UgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + version: 6 + - type: Gravity + gravityShakeSound: !type:SoundPathSpecifier + path: /Audio/Effects/alert.ogg + - type: DecalGrid + chunkCollection: + version: 2 + nodes: + - node: + color: '#52B4E996' + id: BotGreyscale + decals: + 680: 30,25 + 681: 30,24 + 682: 28,27 + 683: 28,27 + 684: 28,28 + 685: 28,28 + 686: 30,25 + 687: 30,24 + - node: + color: '#DE3A3A96' + id: BotGreyscale + decals: + 478: 32,25 + 479: 32,24 + 480: 34,25 + 481: 34,24 + 482: 16,28 + 483: 18,28 + 484: 18,27 + 485: 16,27 + 486: 14,25 + 487: 14,24 + 488: 12,27 + 489: 12,28 + 748: 26,7 + 749: 32,7 + 750: 29,9 + 836: 6,2 + 837: 10,2 + 940: 1,9 + 941: 1,8 + 942: 1,7 + 943: 9,9 + 944: 9,8 + 945: 9,7 + 946: 20,10 + 947: 14,10 + 948: 14,6 + 949: 20,6 + 950: 22,6 + 951: 22,10 + 952: 12,10 + 953: 12,6 + - node: + color: '#FFFFFFFF' + id: BrickTileDarkCornerNe + decals: + 194: 21,4 + 250: 10,44 + 525: 12,32 + 543: 4,22 + 585: 6,40 + 659: 34,36 + 675: 30,28 + 703: 6,16 + 757: 10,10 + - node: + color: '#FFFFFFFF' + id: BrickTileDarkCornerNw + decals: + 191: 18,4 + 251: 12,44 + 519: 0,32 + 542: 0,22 + 582: 0,40 + 633: 24,36 + 702: 0,16 + 754: 0,10 + 853: 23,4 + - node: + color: '#FFFFFFFF' + id: BrickTileDarkCornerSe + decals: + 192: 21,0 + 238: 10,46 + 272: 14,42 + 524: 12,30 + 537: 4,18 + 584: 6,38 + 658: 34,34 + 701: 6,12 + 755: 10,6 + - node: + color: '#FFFFFFFF' + id: BrickTileDarkCornerSw + decals: + 193: 18,0 + 241: 12,46 + 270: 8,42 + 518: 0,30 + 534: 0,18 + 583: 0,38 + 632: 24,34 + 672: 28,24 + 700: 0,12 + 756: 0,6 + 852: 23,0 + - node: + color: '#FFFFFFFF' + id: BrickTileDarkLineE + decals: + 202: 21,1 + 203: 21,2 + 204: 21,3 + 239: 10,47 + 240: 10,48 + 273: 14,43 + 501: 0,25 + 502: 0,26 + 503: 0,27 + 535: 4,19 + 536: 4,21 + 592: 14,38 + 593: 14,40 + 674: 30,27 + 706: 6,15 + 707: 6,13 + 758: 10,9 + 759: 10,7 + 926: 5,45 + 929: 33,36 + 930: 33,34 + 931: 10,31 + 935: 8,10 + 936: 8,6 + 937: 7,2 + - node: + color: '#FFFFFFFF' + id: BrickTileDarkLineN + decals: + 197: 19,4 + 198: 20,4 + 248: 8,44 + 249: 9,44 + 252: 13,44 + 253: 14,44 + 506: 0,28 + 507: 2,28 + 520: 1,32 + 523: 11,32 + 540: 1,22 + 541: 3,22 + 634: 25,36 + 635: 26,36 + 704: 1,16 + 705: 5,16 + 762: 1,10 + 765: 9,10 + 846: 24,4 + 847: 25,4 + 848: 27,4 + 849: 28,4 + 850: 29,4 + 851: 30,4 + 927: 3,47 + - node: + color: '#FFFFFFFF' + id: BrickTileDarkLineS + decals: + 195: 20,0 + 196: 19,0 + 244: 8,46 + 245: 9,46 + 246: 13,46 + 247: 14,46 + 274: 9,42 + 275: 10,42 + 276: 13,42 + 277: 12,42 + 504: 0,24 + 505: 2,24 + 521: 1,30 + 522: 11,30 + 538: 3,18 + 539: 1,18 + 636: 25,34 + 637: 26,34 + 710: 1,12 + 711: 5,12 + 763: 1,6 + 764: 9,6 + 840: 25,0 + 841: 24,0 + 842: 27,0 + 843: 28,0 + 844: 29,0 + 845: 30,0 + 928: 3,43 + - node: + color: '#FFFFFFFF' + id: BrickTileDarkLineW + decals: + 199: 18,3 + 200: 18,2 + 201: 18,1 + 242: 12,47 + 243: 12,48 + 271: 8,43 + 498: 2,27 + 499: 2,26 + 500: 2,25 + 544: 0,19 + 545: 0,21 + 590: 8,40 + 591: 8,38 + 673: 28,25 + 708: 0,13 + 709: 0,15 + 760: 0,7 + 761: 0,9 + 854: 23,3 + 855: 23,1 + 925: 1,45 + 932: 2,31 + 933: 2,10 + 934: 2,6 + 938: 9,2 + 939: 30,2 + - node: + color: '#FFFFFFFF' + id: BrickTileSteelCornerNe + decals: + 84: 18,36 + 104: 16,25 + 336: 9,21 + 337: 10,22 + 364: 16,22 + 374: 21,15 + 375: 22,16 + 415: 21,21 + 421: 22,22 + 446: 33,21 + 447: 34,22 + 490: 12,25 + 554: 22,9 + 568: 14,9 + 610: 22,40 + 2025: 30,48 + 2039: 30,44 + 2058: 29,47 + - node: + color: '#FFFFFFFF' + id: BrickTileSteelCornerNw + decals: + 85: 16,36 + 103: 18,25 + 338: 7,21 + 339: 6,22 + 376: 17,15 + 377: 16,16 + 414: 19,21 + 420: 18,22 + 448: 31,21 + 449: 30,22 + 555: 20,9 + 569: 12,9 + 611: 16,40 + 2040: 28,44 + 2059: 28,47 + - node: + color: '#FFFFFFFF' + id: BrickTileSteelCornerSe + decals: + 83: 18,34 + 308: 26,30 + 332: 9,19 + 335: 10,18 + 372: 21,13 + 373: 22,12 + 418: 21,19 + 419: 22,18 + 452: 33,19 + 453: 34,18 + 561: 22,7 + 562: 14,7 + 609: 22,38 + 778: 16,0 + 779: 5,0 + 2038: 30,42 + 2056: 29,46 + - node: + color: '#FFFFFFFF' + id: BrickTileSteelCornerSw + decals: + 81: 16,34 + 82: 3,35 + 309: 14,30 + 333: 7,19 + 334: 6,18 + 370: 17,13 + 371: 16,12 + 416: 18,18 + 417: 19,19 + 450: 31,19 + 451: 30,18 + 493: 14,27 + 558: 20,7 + 567: 12,7 + 608: 16,38 + 780: 0,0 + 781: 11,0 + 2037: 28,42 + 2057: 28,46 + - node: + color: '#FFFFFFFF' + id: BrickTileSteelEndE + decals: + 73: 21,39 + - node: + color: '#FFFFFFFF' + id: BrickTileSteelEndW + decals: + 74: 17,39 + - node: + color: '#D4D4D496' + id: BrickTileSteelLineE + decals: + 1330: 32,2 + 1332: 31,2 + - node: + color: '#FFFFFFFF' + id: BrickTileSteelLineE + decals: + 87: 18,35 + 93: 14,34 + 94: 14,35 + 95: 14,36 + 105: 16,24 + 286: 17,45 + 287: 17,46 + 288: 17,47 + 323: 27,20 + 349: 9,20 + 350: 10,21 + 351: 10,19 + 365: 16,21 + 378: 21,14 + 379: 22,13 + 380: 22,15 + 425: 21,20 + 426: 22,19 + 427: 22,21 + 454: 34,19 + 455: 34,21 + 462: 33,20 + 491: 12,24 + 559: 22,8 + 566: 14,8 + 802: 16,1 + 806: 5,1 + 872: 34,0 + 873: 34,1 + 874: 34,3 + 875: 34,4 + 1328: 33,2 + 2023: 30,46 + 2024: 30,47 + 2041: 30,43 + - node: + color: '#FFFFFFFF' + id: BrickTileSteelLineN + decals: + 75: 18,39 + 76: 19,39 + 77: 20,39 + 86: 17,36 + 340: 8,21 + 341: 9,22 + 342: 7,22 + 366: 15,22 + 391: 18,15 + 392: 19,15 + 393: 20,15 + 394: 21,16 + 395: 20,16 + 396: 18,16 + 397: 17,16 + 422: 20,21 + 423: 19,22 + 424: 21,22 + 458: 31,22 + 459: 33,22 + 460: 32,21 + 556: 21,9 + 564: 13,9 + 572: 16,10 + 573: 18,10 + 612: 17,40 + 613: 18,40 + 614: 21,40 + 615: 20,40 + 2026: 29,48 + 2027: 28,48 + 2044: 29,44 + - node: + color: '#FFFFFFFF' + id: BrickTileSteelLineS + decals: + 78: 18,39 + 79: 19,39 + 80: 20,39 + 89: 17,34 + 298: 15,30 + 299: 16,30 + 300: 17,30 + 301: 18,30 + 302: 19,30 + 303: 21,30 + 304: 22,30 + 305: 23,30 + 306: 24,30 + 307: 25,30 + 346: 8,19 + 347: 7,18 + 348: 9,18 + 384: 18,13 + 385: 19,13 + 386: 20,13 + 387: 20,12 + 388: 21,12 + 389: 18,12 + 390: 17,12 + 431: 20,19 + 432: 19,18 + 433: 21,18 + 463: 32,19 + 464: 31,18 + 465: 33,18 + 557: 21,7 + 563: 13,7 + 570: 16,6 + 571: 18,6 + 616: 17,38 + 617: 18,38 + 618: 21,38 + 619: 20,38 + 782: 1,0 + 783: 2,0 + 784: 3,0 + 785: 4,0 + 786: 0,3 + 787: 1,3 + 788: 2,3 + 789: 3,3 + 790: 4,3 + 791: 5,3 + 792: 12,0 + 793: 13,0 + 794: 14,0 + 795: 15,0 + 796: 11,3 + 797: 12,3 + 798: 13,3 + 799: 14,3 + 800: 15,3 + 801: 16,3 + 2043: 29,42 + - node: + color: '#D4D4D496' + id: BrickTileSteelLineW + decals: + 1329: 33,2 + 1331: 32,2 + 1333: 31,2 + - node: + color: '#FFFFFFFF' + id: BrickTileSteelLineW + decals: + 88: 16,35 + 90: 20,34 + 91: 20,35 + 92: 20,36 + 102: 18,24 + 289: 21,45 + 290: 21,46 + 291: 21,47 + 322: 25,20 + 326: 29,15 + 327: 29,14 + 328: 29,13 + 343: 7,20 + 344: 6,21 + 345: 6,19 + 381: 17,14 + 382: 16,15 + 383: 16,13 + 428: 19,20 + 429: 18,19 + 430: 18,21 + 456: 30,19 + 457: 30,21 + 461: 31,20 + 492: 14,28 + 560: 20,8 + 565: 12,8 + 803: 0,1 + 805: 11,1 + 2021: 24,44 + 2022: 24,46 + 2042: 28,43 + - node: + color: '#52B4E996' + id: BrickTileWhiteCornerNe + decals: + 264: 10,44 + 679: 30,28 + - node: + color: '#DE3A3A96' + id: BrickTileWhiteCornerNe + decals: + 109: 16,25 + 362: 10,22 + 367: 16,22 + 413: 22,16 + 438: 22,22 + 475: 34,22 + 494: 12,25 + 527: 12,32 + 580: 4,22 + 587: 6,40 + 630: 22,40 + 660: 34,36 + 715: 6,16 + 777: 10,10 + 2045: 30,48 + - node: + color: '#FFFFFFFF' + id: BrickTileWhiteCornerNe + decals: + 689: 10,28 + - node: + color: '#52B4E996' + id: BrickTileWhiteCornerNw + decals: + 265: 12,44 + - node: + color: '#DE3A3A96' + id: BrickTileWhiteCornerNw + decals: + 108: 18,25 + 363: 6,22 + 412: 16,16 + 442: 18,22 + 476: 30,22 + 532: 0,32 + 579: 0,22 + 588: 0,40 + 629: 16,40 + 639: 24,36 + 714: 0,16 + 772: 0,10 + 858: 23,4 + - node: + color: '#FFFFFFFF' + id: BrickTileWhiteCornerNw + decals: + 688: 8,28 + - node: + color: '#52B4E996' + id: BrickTileWhiteCornerSe + decals: + 263: 10,46 + 279: 14,42 + - node: + color: '#DE3A3A96' + id: BrickTileWhiteCornerSe + decals: + 361: 10,18 + 411: 22,12 + 443: 22,18 + 477: 34,18 + 526: 12,30 + 581: 4,18 + 586: 6,38 + 628: 22,38 + 661: 34,34 + 713: 6,12 + 771: 10,6 + 809: 5,0 + 810: 16,0 + - node: + color: '#EFB34196' + id: BrickTileWhiteCornerSe + decals: + 311: 26,30 + - node: + color: '#FFFFFFFF' + id: BrickTileWhiteCornerSe + decals: + 690: 10,24 + - node: + color: '#52B4E996' + id: BrickTileWhiteCornerSw + decals: + 262: 12,46 + 278: 8,42 + 676: 28,24 + - node: + color: '#DE3A3A96' + id: BrickTileWhiteCornerSw + decals: + 360: 6,18 + 406: 16,12 + 439: 18,18 + 474: 30,18 + 496: 14,27 + 533: 0,30 + 578: 0,18 + 589: 0,38 + 631: 16,38 + 638: 24,34 + 712: 0,12 + 770: 0,6 + 807: 0,0 + 808: 11,0 + 859: 23,0 + - node: + color: '#EFB34196' + id: BrickTileWhiteCornerSw + decals: + 310: 14,30 + - node: + color: '#FFFFFFFF' + id: BrickTileWhiteCornerSw + decals: + 691: 8,24 + - node: + color: '#52B4E996' + id: BrickTileWhiteLineE + decals: + 258: 10,47 + 259: 10,48 + 280: 14,43 + 678: 30,27 + - node: + color: '#D4D4D419' + id: BrickTileWhiteLineE + decals: + 895: 2,6 + 896: 2,10 + 900: 9,2 + 901: 30,2 + 906: 1,45 + 908: 2,31 + - node: + color: '#DE3A3A96' + id: BrickTileWhiteLineE + decals: + 96: 14,36 + 97: 14,35 + 98: 14,34 + 106: 16,24 + 356: 10,19 + 357: 10,21 + 368: 16,21 + 409: 22,15 + 410: 22,13 + 444: 22,19 + 445: 22,21 + 470: 34,21 + 471: 34,19 + 495: 12,24 + 511: 0,25 + 512: 0,26 + 513: 0,27 + 548: 4,19 + 549: 4,21 + 596: 14,38 + 597: 14,40 + 716: 6,15 + 717: 6,13 + 768: 10,9 + 769: 10,7 + 811: 5,1 + 812: 16,1 + 876: 34,0 + 877: 34,1 + 878: 34,3 + 879: 34,4 + 2048: 30,47 + 2049: 30,46 + - node: + color: '#EFB34196' + id: BrickTileWhiteLineE + decals: + 292: 17,45 + 293: 17,46 + 294: 17,47 + 324: 27,20 + - node: + color: '#FFFFFFFF' + id: BrickTileWhiteLineE + decals: + 693: 10,27 + 694: 10,26 + 695: 10,25 + - node: + color: '#52B4E996' + id: BrickTileWhiteLineN + decals: + 266: 9,44 + 267: 8,44 + 268: 13,44 + 269: 14,44 + - node: + color: '#D4D4D419' + id: BrickTileWhiteLineN + decals: + 907: 3,43 + - node: + color: '#DE3A3A96' + id: BrickTileWhiteLineN + decals: + 358: 9,22 + 359: 7,22 + 369: 15,22 + 398: 18,16 + 399: 17,16 + 400: 21,16 + 401: 20,16 + 436: 19,22 + 437: 21,22 + 468: 31,22 + 469: 33,22 + 516: 0,28 + 517: 2,28 + 528: 11,32 + 531: 1,32 + 552: 1,22 + 553: 3,22 + 574: 16,10 + 575: 18,10 + 620: 18,40 + 621: 17,40 + 622: 20,40 + 623: 21,40 + 642: 25,36 + 643: 26,36 + 722: 1,16 + 723: 5,16 + 773: 1,10 + 774: 9,10 + 866: 24,4 + 867: 25,4 + 868: 27,4 + 869: 28,4 + 870: 30,4 + 871: 29,4 + 2046: 28,48 + 2047: 29,48 + - node: + color: '#FFFFFFFF' + id: BrickTileWhiteLineN + decals: + 692: 9,28 + - node: + color: '#52B4E996' + id: BrickTileWhiteLineS + decals: + 254: 8,46 + 255: 9,46 + 256: 13,46 + 257: 14,46 + 282: 9,42 + 283: 10,42 + 284: 12,42 + 285: 13,42 + - node: + color: '#D4D4D419' + id: BrickTileWhiteLineS + decals: + 905: 3,47 + - node: + color: '#DE3A3A96' + id: BrickTileWhiteLineS + decals: + 352: 7,18 + 353: 9,18 + 402: 17,12 + 403: 18,12 + 404: 20,12 + 405: 21,12 + 434: 19,18 + 435: 21,18 + 466: 33,18 + 467: 31,18 + 514: 0,24 + 515: 2,24 + 529: 11,30 + 530: 1,30 + 550: 1,18 + 551: 3,18 + 576: 16,6 + 577: 18,6 + 624: 17,38 + 625: 18,38 + 626: 20,38 + 627: 21,38 + 640: 25,34 + 641: 26,34 + 718: 5,12 + 719: 1,12 + 775: 1,6 + 776: 9,6 + 813: 12,0 + 814: 13,0 + 815: 14,0 + 816: 15,0 + 817: 16,3 + 818: 15,3 + 819: 13,3 + 820: 14,3 + 821: 11,3 + 822: 12,3 + 823: 0,3 + 824: 1,3 + 825: 2,3 + 826: 3,3 + 827: 4,3 + 828: 5,3 + 829: 4,0 + 830: 3,0 + 831: 2,0 + 832: 1,0 + 860: 24,0 + 861: 25,0 + 862: 27,0 + 863: 28,0 + 864: 29,0 + 865: 30,0 + - node: + color: '#EFB34196' + id: BrickTileWhiteLineS + decals: + 312: 15,30 + 313: 16,30 + 314: 17,30 + 315: 18,30 + 316: 19,30 + 317: 21,30 + 318: 22,30 + 319: 23,30 + 320: 24,30 + 321: 25,30 + - node: + color: '#FFFFFFFF' + id: BrickTileWhiteLineS + decals: + 696: 9,24 + - node: + color: '#52B4E996' + id: BrickTileWhiteLineW + decals: + 260: 12,47 + 261: 12,48 + 281: 8,43 + 677: 28,25 + - node: + color: '#D4D4D419' + id: BrickTileWhiteLineW + decals: + 897: 8,10 + 898: 8,6 + 899: 7,2 + 902: 33,36 + 903: 33,34 + 904: 5,45 + 909: 10,31 + - node: + color: '#DE3A3A96' + id: BrickTileWhiteLineW + decals: + 99: 20,36 + 100: 20,35 + 101: 20,34 + 107: 18,24 + 354: 6,19 + 355: 6,21 + 407: 16,13 + 408: 16,15 + 440: 18,19 + 441: 18,21 + 472: 30,19 + 473: 30,21 + 497: 14,28 + 508: 2,25 + 509: 2,26 + 510: 2,27 + 546: 0,19 + 547: 0,21 + 594: 8,38 + 595: 8,40 + 720: 0,13 + 721: 0,15 + 766: 0,7 + 767: 0,9 + 804: 0,1 + 833: 11,1 + 856: 23,1 + 857: 23,3 + 2050: 24,44 + 2051: 24,46 + - node: + color: '#EFB34196' + id: BrickTileWhiteLineW + decals: + 295: 21,45 + 296: 21,46 + 297: 21,47 + 325: 25,20 + 329: 29,13 + 330: 29,14 + 331: 29,15 + - node: + color: '#FFFFFFFF' + id: BrickTileWhiteLineW + decals: + 697: 8,25 + 698: 8,26 + 699: 8,27 + - node: + cleanable: True + angle: 1.5707963267948966 rad + color: '#B02E269B' + id: Clandestine + decals: + 2136: 3.132535,34.09553 + - node: + color: '#A4610696' + id: Dirt + decals: + 1334: 31,2 + 1335: 32,2 + 1336: 33,2 + 1337: 30,2 + 1338: 34,2 + 1339: 33,3 + 1340: 31,4 + 1341: 32,3 + 1342: 32,1 + 1343: 31,1 + 1344: 31,0 + 1345: 33,0 + 1346: 32,0 + 1347: 33,3 + 1348: 33,4 + 1349: 32,4 + 1350: 31,3 + 1351: 32,1 + 1352: 33,1 + - node: + cleanable: True + color: '#A4610696' + id: Dirt + decals: + 954: 0,45 + 955: 3,47 + 956: 3,48 + 957: 6,45 + 958: 3,42 + 959: 3,43 + 960: 5,45 + 961: 1,45 + 962: 13,45 + 963: 12,45 + 964: 11,47 + 965: 9,45 + 966: 8,45 + 967: 8,46 + 968: 10,47 + 969: 13,47 + 970: 14,46 + 971: 11,43 + 972: 11,42 + 973: 9,42 + 974: 10,42 + 975: 13,42 + 976: 12,42 + 977: 13,43 + 978: 9,43 + 979: 11,44 + 980: 11,45 + 981: 11,47 + 982: 9,46 + 983: 11,46 + 984: 16,45 + 985: 16,46 + 986: 16,47 + 987: 16,44 + 988: 17,45 + 989: 17,46 + 990: 21,45 + 991: 22,45 + 992: 22,44 + 993: 22,43 + 994: 22,46 + 995: 21,45 + 996: 21,46 + 997: 22,47 + 998: 24,39 + 999: 24,38 + 1000: 24,40 + 1001: 27,39 + 1002: 27,39 + 1003: 30,40 + 1004: 30,39 + 1005: 30,38 + 1006: 30,39 + 1007: 34,35 + 1008: 33,34 + 1009: 33,36 + 1010: 24,35 + 1011: 22,35 + 1012: 20,35 + 1013: 21,35 + 1014: 20,34 + 1015: 14,35 + 1016: 13,35 + 1017: 12,35 + 1018: 14,36 + 1019: 17,36 + 1020: 17,35 + 1021: 17,34 + 1022: 16,35 + 1023: 18,35 + 1024: 18,36 + 1025: 18,34 + 1026: 16,34 + 1027: 16,36 + 1028: 16,30 + 1029: 16,30 + 1030: 18,30 + 1031: 19,30 + 1032: 22,30 + 1033: 24,30 + 1034: 25,30 + 1035: 26,30 + 1036: 20,30 + 1037: 20,30 + 1038: 15,30 + 1039: 14,30 + 1040: 14,31 + 1041: 26,31 + 1042: 10,31 + 1043: 2,31 + 1044: 0,31 + 1045: 12,31 + 1046: 5,35 + 1047: 6,36 + 1048: 4,34 + 1049: 9,35 + 1050: 9,35 + 1051: 10,35 + 1052: 10,34 + 1053: 0,35 + 1054: 0,36 + 1055: 0,35 + 1056: 5,36 + 1057: 6,36 + 1058: 6,39 + 1059: 0,39 + 1060: 8,39 + 1061: 8,40 + 1062: 8,38 + 1063: 9,39 + 1064: 11,38 + 1065: 9,38 + 1066: 11,40 + 1067: 10,40 + 1068: 13,39 + 1069: 14,39 + 1070: 14,40 + 1071: 14,38 + 1072: 13,39 + 1073: 13,40 + 1074: 16,39 + 1075: 18,40 + 1076: 19,40 + 1077: 19,39 + 1078: 18,39 + 1079: 17,39 + 1080: 20,39 + 1081: 21,39 + 1082: 19,38 + 1083: 22,39 + 1084: 21,38 + 1085: 24,39 + 1086: 24,38 + 1087: 24,40 + 1088: 17,32 + 1089: 24,32 + 1090: 23,32 + 1091: 34,26 + 1092: 33,26 + 1093: 33,28 + 1094: 32,28 + 1095: 32,27 + 1096: 34,27 + 1097: 34,28 + 1098: 32,25 + 1099: 33,24 + 1100: 33,25 + 1101: 32,26 + 1102: 29,24 + 1103: 30,26 + 1104: 28,26 + 1105: 29,28 + 1106: 29,27 + 1107: 29,25 + 1108: 25,26 + 1109: 24,26 + 1110: 26,26 + 1111: 25,27 + 1112: 24,28 + 1113: 25,28 + 1114: 24,27 + 1115: 24,24 + 1116: 25,25 + 1117: 25,24 + 1118: 26,25 + 1119: 22,26 + 1120: 24,26 + 1121: 26,26 + 1122: 20,26 + 1123: 21,25 + 1124: 21,24 + 1125: 21,28 + 1126: 21,27 + 1127: 18,26 + 1128: 16,26 + 1129: 17,27 + 1130: 17,28 + 1131: 17,25 + 1132: 17,24 + 1133: 17,26 + 1134: 13,28 + 1135: 13,27 + 1136: 13,26 + 1137: 13,25 + 1138: 13,24 + 1139: 12,26 + 1140: 14,26 + 1141: 9,26 + 1142: 9,27 + 1143: 9,28 + 1144: 8,28 + 1145: 8,27 + 1146: 8,26 + 1147: 9,25 + 1148: 8,25 + 1149: 8,24 + 1150: 9,24 + 1151: 10,24 + 1152: 10,25 + 1153: 10,26 + 1154: 10,27 + 1155: 10,28 + 1156: 5,28 + 1157: 5,28 + 1158: 5,24 + 1159: 5,24 + 1160: 0,26 + 1161: 2,26 + 1162: 2,28 + 1163: 1,24 + 1164: 2,24 + 1165: 2,22 + 1166: 4,20 + 1167: 2,18 + 1168: 1,19 + 1169: 0,20 + 1170: 0,17 + 1171: 0,18 + 1172: 4,18 + 1173: 4,19 + 1174: 4,22 + 1175: 0,22 + 1176: 6,20 + 1177: 7,20 + 1178: 8,20 + 1179: 9,20 + 1180: 10,20 + 1181: 8,21 + 1182: 8,22 + 1183: 8,19 + 1184: 8,18 + 1185: 6,18 + 1186: 7,19 + 1187: 7,18 + 1188: 9,20 + 1189: 10,21 + 1190: 9,21 + 1191: 9,22 + 1192: 9,19 + 1193: 7,21 + 1194: 8,13 + 1195: 8,13 + 1196: 11,16 + 1197: 11,16 + 1198: 10,16 + 1199: 9,16 + 1200: 8,15 + 1201: 8,14 + 1202: 8,16 + 1203: 10,16 + 1204: 9,16 + 1205: 12,14 + 1206: 11,14 + 1207: 11,12 + 1208: 10,12 + 1209: 14,12 + 1210: 14,14 + 1211: 14,15 + 1212: 13,14 + 1213: 12,14 + 1214: 11,14 + 1215: 11,13 + 1216: 6,14 + 1217: 0,14 + 1218: 3,16 + 1219: 3,12 + 1220: 3,13 + 1221: 2,13 + 1222: 4,13 + 1223: 3,15 + 1224: 2,15 + 1225: 4,15 + 1226: 5,14 + 1227: 1,14 + 1228: 1,15 + 1229: 1,13 + 1230: 5,15 + 1231: 5,13 + 1232: 0,8 + 1233: 2,10 + 1234: 2,6 + 1235: 8,6 + 1236: 8,10 + 1237: 0,8 + 1238: 10,8 + 1239: 10,10 + 1240: 10,7 + 1241: 10,6 + 1242: 9,6 + 1243: 9,10 + 1244: 1,10 + 1245: 0,7 + 1246: 0,6 + 1247: 0,3 + 1248: 1,3 + 1249: 1,3 + 1250: 2,3 + 1251: 3,3 + 1252: 4,3 + 1253: 4,3 + 1254: 5,3 + 1255: 7,2 + 1256: 9,2 + 1257: 4,0 + 1258: 4,1 + 1259: 2,1 + 1260: 1,1 + 1261: 0,2 + 1262: 1,2 + 1263: 2,2 + 1264: 5,2 + 1265: 4,2 + 1266: 3,2 + 1267: 4,1 + 1268: 3,1 + 1269: 11,2 + 1270: 12,3 + 1271: 11,3 + 1272: 14,3 + 1273: 14,3 + 1274: 15,3 + 1275: 16,3 + 1276: 13,3 + 1277: 11,3 + 1278: 12,2 + 1279: 11,1 + 1280: 13,1 + 1281: 16,2 + 1282: 16,1 + 1283: 14,1 + 1284: 13,2 + 1285: 14,2 + 1286: 18,2 + 1287: 19,2 + 1288: 20,2 + 1289: 21,2 + 1290: 19,3 + 1291: 18,3 + 1292: 20,3 + 1293: 20,1 + 1294: 21,1 + 1295: 19,1 + 1296: 23,2 + 1297: 28,2 + 1298: 29,2 + 1299: 30,2 + 1300: 28,4 + 1301: 29,4 + 1302: 26,4 + 1303: 26,2 + 1304: 26,1 + 1305: 26,0 + 1306: 24,2 + 1307: 25,2 + 1308: 27,2 + 1309: 24,4 + 1310: 23,3 + 1311: 24,3 + 1312: 23,4 + 1469: 14,8 + 1470: 12,8 + 1471: 12,7 + 1472: 13,7 + 1473: 13,6 + 1474: 13,10 + 1475: 12,9 + 1476: 14,9 + 1477: 17,10 + 1478: 17,9 + 1479: 18,9 + 1480: 18,8 + 1481: 17,7 + 1482: 17,7 + 1483: 17,6 + 1484: 17,8 + 1485: 16,7 + 1486: 18,7 + 1487: 20,9 + 1488: 20,8 + 1489: 21,10 + 1490: 21,9 + 1491: 21,7 + 1492: 21,6 + 1493: 20,7 + 1494: 22,7 + 1495: 22,8 + 1534: 19,16 + 1535: 18,15 + 1536: 19,13 + 1537: 19,12 + 1538: 22,14 + 1539: 22,14 + 1540: 22,15 + 1541: 21,16 + 1542: 21,15 + 1543: 21,13 + 1544: 16,14 + 1545: 17,13 + 1546: 17,15 + 1556: 30,20 + 1557: 32,22 + 1558: 31,22 + 1559: 31,21 + 1560: 32,19 + 1561: 32,18 + 1562: 34,20 + 1563: 34,19 + 1564: 34,18 + 1565: 34,21 + 1566: 34,22 + 2060: 24,45 + 2061: 25,45 + 2062: 27,48 + 2063: 27,42 + 2064: 30,45 + 2065: 28,43 + 2066: 29,43 + 2067: 30,43 + 2068: 24,42 + 2069: 25,43 + 2070: 26,42 + 2071: 25,42 + 2072: 26,48 + 2073: 25,47 + 2074: 26,47 + 2075: 25,47 + 2076: 25,48 + 2077: 27,47 + 2078: 27,45 + 2079: 27,46 + 2080: 26,45 + 2081: 28,45 + 2082: 26,44 + 2083: 27,44 + 2084: 25,46 + 2085: 26,46 + 2086: 29,45 + - node: + color: '#A4610696' + id: DirtHeavy + decals: + 1353: 11,31 + 1354: 1,31 + 1355: 0,39 + 1356: 6,39 + 1357: 5,45 + 1358: 14,39 + 1359: 16,39 + 1360: 19,38 + - node: + cleanable: True + color: '#A4610696' + id: DirtHeavy + decals: + 1361: 22,39 + 1362: 19,40 + 1363: 30,39 + 1364: 25,35 + 1365: 24,36 + 1366: 20,30 + 1367: 14,30 + 1368: 18,30 + 1369: 22,30 + 1370: 26,31 + 1371: 22,26 + 1372: 24,26 + 1373: 26,26 + 1374: 28,26 + 1375: 29,27 + 1376: 33,25 + 1377: 33,28 + 1378: 32,28 + 1379: 14,26 + 1380: 12,26 + 1381: 9,26 + 1382: 9,28 + 1383: 8,28 + 1384: 8,24 + 1385: 10,25 + 1386: 5,24 + 1387: 5,28 + 1388: 0,26 + 1389: 0,27 + 1390: 2,24 + 1391: 2,25 + 1392: 0,35 + 1393: 0,36 + 1394: 7,36 + 1395: 5,35 + 1396: 4,34 + 1397: 10,35 + 1398: 9,35 + 1399: 8,39 + 1400: 14,39 + 1401: 14,38 + 1402: 8,45 + 1403: 11,48 + 1404: 11,44 + 1405: 14,45 + 1406: 11,42 + 1407: 9,42 + 1408: 13,43 + 1409: 3,47 + 1410: 4,20 + 1411: 3,22 + 1412: 2,18 + 1413: 0,19 + 1414: 6,20 + 1415: 8,20 + 1416: 8,18 + 1417: 10,20 + 1418: 8,22 + 1419: 14,20 + 1420: 15,21 + 1421: 16,20 + 1422: 12,20 + 1423: 12,21 + 1424: 13,22 + 1425: 13,21 + 1426: 13,19 + 1427: 16,19 + 1428: 16,19 + 1429: 15,20 + 1430: 14,18 + 1431: 12,20 + 1432: 14,22 + 1433: 20,20 + 1434: 20,22 + 1435: 18,20 + 1436: 22,21 + 1437: 19,21 + 1438: 20,18 + 1439: 22,20 + 1440: 27,22 + 1441: 25,22 + 1442: 26,18 + 1443: 27,18 + 1444: 31,18 + 1445: 32,18 + 1446: 31,20 + 1447: 32,21 + 1448: 34,22 + 1449: 34,20 + 1450: 32,19 + 1451: 29,14 + 1452: 24,14 + 1453: 24,13 + 1454: 30,14 + 1455: 29,13 + 1456: 34,2 + 1457: 32,3 + 1458: 30,1 + 1459: 26,1 + 1460: 23,3 + 1461: 24,4 + 1462: 29,4 + 1463: 26,0 + 1464: 26,1 + 1465: 18,2 + 1466: 22,8 + 1467: 20,8 + 1468: 16,8 + 1496: 17,6 + 1497: 16,8 + 1498: 18,8 + 1499: 17,10 + 1500: 14,8 + 1501: 12,8 + 1502: 13,6 + 1503: 13,10 + 1504: 21,10 + 1505: 21,9 + 1506: 21,8 + 1507: 21,7 + 1508: 21,6 + 1509: 10,8 + 1510: 9,10 + 1511: 9,6 + 1512: 2,6 + 1513: 0,7 + 1514: 0,9 + 1515: 1,10 + 1516: 8,10 + 1517: 0,14 + 1518: 5,14 + 1519: 4,15 + 1520: 3,16 + 1521: 1,18 + 1522: 5,15 + 1523: 6,14 + 1524: 11,16 + 1525: 8,13 + 1526: 11,12 + 1527: 10,13 + 1528: 16,14 + 1529: 19,16 + 1530: 19,13 + 1531: 18,13 + 1532: 18,15 + 1533: 16,15 + 1547: 19,16 + 1548: 16,14 + 1549: 17,15 + 1550: 18,14 + 1551: 19,13 + 1552: 21,13 + 1553: 22,14 + 1554: 29,15 + 1555: 29,13 + 2095: 24,45 + 2096: 27,48 + 2097: 27,42 + 2098: 25,44 + 2099: 29,45 + 2100: 29,46 + 2101: 29,47 + 2102: 25,45 + - node: + cleanable: True + color: '#A4610696' + id: DirtLight + decals: + 1567: 0,2 + 1568: 5,2 + 1569: 4,1 + 1570: 5,2 + 1571: 2,1 + 1572: 7,2 + 1573: 9,2 + 1574: 11,2 + 1575: 14,2 + 1576: 13,3 + 1577: 10,3 + 1578: 11,3 + 1579: 12,3 + 1580: 16,3 + 1581: 15,3 + 1582: 16,2 + 1583: 16,1 + 1584: 14,1 + 1585: 15,1 + 1586: 1,3 + 1587: 3,3 + 1588: 5,3 + 1589: 5,3 + 1590: 1,1 + 1591: 23,2 + 1592: 26,2 + 1593: 28,2 + 1594: 28,4 + 1595: 30,2 + 1596: 31,1 + 1597: 34,1 + 1598: 33,0 + 1599: 34,3 + 1600: 21,9 + 1601: 20,8 + 1602: 22,8 + 1603: 16,8 + 1604: 17,9 + 1605: 17,10 + 1606: 17,6 + 1607: 12,8 + 1608: 14,9 + 1609: 14,8 + 1610: 13,6 + 1611: 10,8 + 1612: 8,10 + 1613: 2,10 + 1614: 0,8 + 1615: 0,9 + 1616: 2,6 + 1617: 0,14 + 1618: 3,12 + 1619: 1,14 + 1620: 3,15 + 1621: 5,14 + 1622: 5,15 + 1623: 6,14 + 1624: 3,13 + 1625: 3,12 + 1626: 8,13 + 1627: 10,16 + 1628: 11,16 + 1629: 17,14 + 1630: 17,13 + 1631: 16,15 + 1632: 19,16 + 1633: 22,14 + 1634: 21,14 + 1635: 21,13 + 1636: 19,13 + 1637: 20,12 + 1638: 20,13 + 1639: 21,15 + 1640: 29,14 + 1641: 29,15 + 1642: 34,20 + 1643: 32,18 + 1644: 34,18 + 1645: 34,21 + 1646: 32,22 + 1647: 30,20 + 1648: 30,21 + 1649: 32,19 + 1650: 32,21 + 1651: 32,20 + 1652: 30,18 + 1653: 26,22 + 1654: 25,22 + 1655: 25,20 + 1656: 27,20 + 1657: 27,22 + 1658: 25,20 + 1659: 27,20 + 1660: 26,18 + 1661: 27,18 + 1662: 25,18 + 1663: 22,20 + 1664: 18,20 + 1665: 20,22 + 1666: 20,20 + 1667: 19,19 + 1668: 20,19 + 1669: 20,21 + 1670: 21,20 + 1671: 16,20 + 1672: 16,21 + 1673: 12,20 + 1674: 13,21 + 1675: 13,22 + 1676: 13,19 + 1677: 13,19 + 1678: 14,20 + 1679: 14,18 + 1680: 10,20 + 1681: 10,21 + 1682: 8,22 + 1683: 6,21 + 1684: 6,20 + 1685: 7,20 + 1686: 7,19 + 1687: 8,20 + 1688: 9,20 + 1689: 4,20 + 1690: 3,18 + 1691: 2,18 + 1692: 1,18 + 1693: 0,21 + 1694: 1,22 + 1695: 0,20 + 1696: 2,22 + 1697: 1,24 + 1698: 0,26 + 1699: 0,25 + 1700: 2,25 + 1701: 2,27 + 1702: 5,28 + 1703: 5,24 + 1704: 9,26 + 1705: 9,27 + 1706: 9,24 + 1707: 8,24 + 1708: 10,24 + 1709: 10,26 + 1710: 13,26 + 1711: 12,26 + 1712: 13,28 + 1713: 12,28 + 1714: 13,24 + 1715: 14,26 + 1716: 13,25 + 1717: 18,26 + 1718: 16,26 + 1719: 17,28 + 1720: 17,25 + 1721: 17,24 + 1722: 20,26 + 1723: 22,26 + 1724: 21,26 + 1725: 21,27 + 1726: 21,24 + 1727: 21,25 + 1728: 25,26 + 1729: 26,26 + 1730: 25,26 + 1731: 25,26 + 1732: 25,24 + 1733: 25,24 + 1734: 26,25 + 1735: 24,27 + 1736: 29,26 + 1737: 29,27 + 1738: 30,26 + 1739: 29,24 + 1740: 33,26 + 1741: 33,24 + 1742: 34,26 + 1743: 32,26 + 1744: 34,28 + 1745: 34,28 + 1746: 33,28 + 1747: 32,28 + 1748: 26,31 + 1749: 21,30 + 1750: 20,30 + 1751: 17,30 + 1752: 15,30 + 1753: 14,31 + 1754: 10,31 + 1755: 2,31 + 1756: 11,30 + 1757: 12,31 + 1758: 0,32 + 1759: 1,32 + 1760: 0,31 + 1761: -1,35 + 1762: 0,36 + 1763: 0,35 + 1764: 4,34 + 1765: 5,35 + 1766: 3,34 + 1767: 10,34 + 1768: 10,35 + 1769: 6,39 + 1770: 0,39 + 1771: 0,45 + 1772: 3,43 + 1773: 3,47 + 1774: 4,45 + 1775: 5,45 + 1776: 8,45 + 1777: 11,46 + 1778: 11,45 + 1779: 11,42 + 1780: 13,42 + 1781: 9,42 + 1782: 14,45 + 1783: 10,44 + 1784: 11,44 + 1785: 11,45 + 1786: 16,47 + 1787: 16,45 + 1788: 17,45 + 1789: 21,45 + 1790: 16,48 + 1791: 16,43 + 1792: 23,43 + 1793: 22,42 + 1794: 30,38 + 1795: 30,40 + 1796: 24,38 + 1797: 22,39 + 1798: 19,38 + 1799: 19,39 + 1800: 18,39 + 1801: 16,39 + 1802: 18,38 + 1803: 17,38 + 1804: 14,38 + 1805: 14,40 + 1806: 9,39 + 1807: 10,40 + 1808: 12,38 + 1809: 10,38 + 1810: 10,38 + 1811: 6,39 + 1812: 0,39 + 2103: 24,45 + 2104: 30,45 + 2105: 26,44 + 2106: 27,43 + 2107: 30,43 + 2108: 29,42 + 2109: 28,47 + - node: + cleanable: True + color: '#A4610696' + id: DirtMedium + decals: + 1813: 0,35 + 1814: 0,39 + 1815: 6,39 + 1816: 3,43 + 1817: 1,45 + 1818: 11,45 + 1819: 11,42 + 1820: 14,45 + 1821: 16,45 + 1822: 21,45 + 1823: 22,45 + 1824: 21,38 + 1825: 20,38 + 1826: 20,38 + 1827: 24,38 + 1828: 30,39 + 1829: 34,35 + 1830: 33,36 + 1831: 33,34 + 1832: 24,34 + 1833: 20,34 + 1834: 22,35 + 1835: 17,35 + 1836: 16,34 + 1837: 17,36 + 1838: 12,35 + 1839: 10,35 + 1840: 5,35 + 1841: 0,35 + 1842: 1,31 + 1843: 2,31 + 1844: 11,31 + 1845: 9,26 + 1846: 8,26 + 1847: 9,27 + 1848: 9,28 + 1849: 10,26 + 1850: 10,25 + 1851: 9,25 + 1852: 13,26 + 1853: 12,26 + 1854: 13,28 + 1855: 14,26 + 1856: 17,24 + 1857: 18,26 + 1858: 17,28 + 1859: 16,26 + 1860: 22,26 + 1861: 20,26 + 1862: 25,27 + 1863: 24,27 + 1864: 24,28 + 1865: 24,25 + 1866: 25,25 + 1867: 25,24 + 1868: 24,24 + 1869: 26,25 + 1870: 26,26 + 1871: 25,26 + 1872: 24,26 + 1873: 24,26 + 1874: 25,26 + 1875: 25,26 + 1876: 28,26 + 1877: 30,26 + 1878: 29,27 + 1879: 29,25 + 1880: 33,26 + 1881: 34,26 + 1882: 34,28 + 1883: 32,28 + 1884: 34,28 + 1885: 32,20 + 1886: 31,20 + 1887: 30,20 + 1888: 30,18 + 1889: 34,18 + 1890: 34,21 + 1891: 25,18 + 1892: 26,18 + 1893: 25,18 + 1894: 27,20 + 1895: 27,22 + 1896: 29,15 + 1897: 30,14 + 1898: 29,12 + 1899: 24,14 + 1900: 24,15 + 1901: 24,16 + 1902: 20,20 + 1903: 17,20 + 1904: 19,21 + 1905: 18,20 + 1906: 21,22 + 1907: 22,20 + 1908: 22,21 + 1909: 20,19 + 1910: 15,20 + 1911: 14,21 + 1912: 15,21 + 1913: 16,21 + 1914: 14,22 + 1915: 12,20 + 1916: 14,18 + 1917: 15,18 + 1918: 16,19 + 1919: 16,19 + 1920: 13,19 + 1921: 12,19 + 1922: 12,19 + 1923: 12,18 + 1924: 14,18 + 1925: 15,18 + 1926: 15,18 + 1927: 10,20 + 1928: 8,22 + 1929: 7,20 + 1930: 9,21 + 1931: 7,19 + 1932: 10,19 + 1933: 10,21 + 1934: 7,18 + 1935: 4,20 + 1936: 4,21 + 1937: 2,22 + 1938: 1,22 + 1939: 0,19 + 1940: 1,18 + 1941: 1,18 + 1942: 3,18 + 1943: 0,14 + 1944: 2,13 + 1945: 3,13 + 1946: 5,13 + 1947: 3,12 + 1948: 8,15 + 1949: 8,16 + 1950: 9,16 + 1951: 9,16 + 1952: 18,14 + 1953: 19,16 + 1954: 19,14 + 1955: 20,13 + 1956: 18,16 + 1957: 17,13 + 1958: 20,12 + 1959: 22,13 + 1960: 24,13 + 1961: 30,12 + 1962: 30,14 + 1963: 29,16 + 1964: 24,16 + 1965: 24,16 + 1966: 25,6 + 1967: 24,7 + 1968: 26,9 + 1969: 27,10 + 1970: 28,10 + 1971: 34,10 + 1972: 34,8 + 1973: 34,7 + 1974: 33,6 + 1975: 30,6 + 1976: 27,6 + 1977: 21,8 + 1978: 16,8 + 1979: 17,10 + 1980: 18,8 + 1981: 17,6 + 1982: 13,7 + 1983: 13,9 + 1984: 13,8 + 1985: 14,7 + 1986: 10,6 + 1987: 8,10 + 1988: 2,6 + 1989: 0,7 + 1990: 1,1 + 1991: 0,1 + 1992: 4,1 + 1993: 5,2 + 1994: 3,1 + 1995: 3,0 + 1996: 7,2 + 1997: 9,2 + 1998: 11,2 + 1999: 13,1 + 2000: 15,1 + 2001: 16,2 + 2002: 16,1 + 2003: 23,2 + 2004: 26,2 + 2005: 29,3 + 2006: 30,2 + 2007: 33,2 + 2008: 33,3 + 2009: 34,2 + 2010: 34,0 + 2011: 34,1 + 2012: 31,1 + 2013: 29,0 + 2014: 26,0 + 2015: 23,3 + 2016: 28,4 + 2087: 27,42 + 2088: 27,48 + 2089: 24,45 + 2090: 30,45 + 2091: 28,45 + 2092: 26,45 + 2093: 28,47 + 2094: 27,44 + 2110: 24,45 + 2111: 27,48 + 2112: 27,45 + 2113: 26,46 + 2114: 26,42 + 2115: 25,42 + 2116: 25,47 + 2117: 25,47 + 2118: 26,48 + 2119: 26,47 + 2120: 26,47 + 2121: 26,43 + 2122: 26,43 + 2123: 27,43 + 2124: 6,1 + 2125: 10,3 + - node: + color: '#D4D4D41B' + id: FullTileOverlayGreyscale + decals: + 1313: 31,4 + 1314: 31,3 + 1315: 31,2 + 1316: 31,1 + 1317: 31,0 + - node: + color: '#D4D4D433' + id: FullTileOverlayGreyscale + decals: + 1318: 32,0 + 1319: 32,1 + 1320: 32,2 + 1321: 32,3 + 1322: 32,4 + - node: + color: '#D4D4D44C' + id: FullTileOverlayGreyscale + decals: + 1323: 33,0 + 1324: 33,1 + 1325: 33,2 + 1326: 33,3 + 1327: 33,4 + - node: + color: '#D4D4D40C' + id: HalfTileOverlayGreyscale + decals: + 923: 3,47 + - node: + color: '#D4D4D419' + id: HalfTileOverlayGreyscale + decals: + 893: 3,43 + - node: + color: '#D4D4D40C' + id: HalfTileOverlayGreyscale180 + decals: + 924: 3,43 + - node: + color: '#D4D4D419' + id: HalfTileOverlayGreyscale180 + decals: + 894: 3,47 + - node: + color: '#D4D4D40C' + id: HalfTileOverlayGreyscale270 + decals: + 910: 30,2 + 911: 9,2 + 914: 2,6 + 915: 2,10 + 918: 2,31 + 922: 1,45 + - node: + color: '#D4D4D419' + id: HalfTileOverlayGreyscale270 + decals: + 882: 7,2 + 883: 8,6 + 884: 8,10 + 888: 10,31 + 889: 33,34 + 890: 33,36 + 891: 5,45 + - node: + color: '#D4D4D40C' + id: HalfTileOverlayGreyscale90 + decals: + 912: 7,2 + 913: 8,6 + 916: 8,10 + 917: 10,31 + 919: 33,34 + 920: 33,36 + 921: 5,45 + - node: + color: '#D4D4D419' + id: HalfTileOverlayGreyscale90 + decals: + 880: 30,2 + 881: 9,2 + 885: 2,6 + 886: 2,10 + 887: 2,31 + 892: 1,45 + - node: + color: '#9FED5896' + id: MiniTileCheckerAOverlay + decals: + 2028: 28,42 + 2029: 29,42 + 2030: 30,42 + 2031: 28,43 + 2032: 29,43 + 2033: 30,43 + 2034: 28,44 + 2035: 29,44 + 2036: 30,44 + - node: + color: '#DE3A3A96' + id: MiniTileCheckerAOverlay + decals: + 0: 7,19 + 1: 8,19 + 2: 9,19 + 3: 9,20 + 4: 8,20 + 5: 7,20 + 6: 7,21 + 7: 8,21 + 8: 9,21 + 9: 19,19 + 10: 20,19 + 11: 21,19 + 12: 21,20 + 13: 20,20 + 14: 19,20 + 15: 19,21 + 16: 20,21 + 17: 21,21 + 18: 17,15 + 19: 17,14 + 20: 17,13 + 21: 18,13 + 22: 19,13 + 23: 20,13 + 24: 21,13 + 25: 21,14 + 26: 21,15 + 27: 20,15 + 28: 19,15 + 29: 18,15 + 30: 18,14 + 31: 19,14 + 32: 20,9 + 33: 21,9 + 34: 22,9 + 35: 22,8 + 36: 22,7 + 37: 21,7 + 38: 21,8 + 39: 20,8 + 40: 20,7 + 41: 12,7 + 42: 13,7 + 43: 14,7 + 44: 14,8 + 45: 13,8 + 46: 12,8 + 47: 12,9 + 48: 13,9 + 49: 14,9 + 59: 17,39 + 60: 18,39 + 61: 19,39 + 62: 20,39 + 63: 21,39 + 64: 16,36 + 65: 16,35 + 66: 16,34 + 67: 17,34 + 68: 18,34 + 69: 18,35 + 70: 17,35 + 71: 17,36 + 72: 18,36 + - node: + color: '#FFFFFFFF' + id: MiniTileCheckerAOverlay + decals: + 2052: 28,46 + 2053: 28,47 + 2054: 29,47 + 2055: 29,46 + - node: + color: '#9FED5896' + id: MiniTileCheckerBOverlay + decals: + 50: 31,21 + 51: 31,20 + 52: 31,19 + 53: 33,21 + 54: 33,20 + 55: 33,19 + - node: + color: '#DE3A3A96' + id: MiniTileCheckerBOverlay + decals: + 56: 32,21 + 57: 32,20 + 58: 32,19 + - node: + color: '#DE3A3A96' + id: StandClearGreyscale + decals: + 751: 26,7 + 752: 32,7 + 753: 29,9 + 838: 6,2 + 839: 10,2 + - node: + color: '#FFFFFFFF' + id: WarnCornerNE + decals: + 605: 13,40 + 747: 34,10 + - node: + color: '#FFFFFFFF' + id: WarnCornerNW + decals: + 606: 9,40 + 741: 24,10 + - node: + color: '#FFFFFFFF' + id: WarnCornerSE + decals: + 604: 13,38 + 746: 34,6 + - node: + color: '#FFFFFFFF' + id: WarnCornerSW + decals: + 598: 9,38 + 740: 24,6 + - node: + color: '#FFFFFFFF' + id: WarnFull + decals: + 657: 32,35 + - node: + color: '#FFFFFFFF' + id: WarnLineE + decals: + 607: 13,39 + 644: 26,34 + 645: 26,35 + 646: 26,36 + 744: 34,7 + 745: 34,9 + - node: + color: '#DE3A3A96' + id: WarnLineGreyscaleE + decals: + 112: 18,26 + 117: 14,26 + 118: 22,26 + 121: 22,35 + 122: 22,39 + 128: 14,39 + 131: 6,39 + 132: 12,31 + 135: 26,31 + 140: 26,26 + 145: 30,26 + 146: 34,26 + 153: 2,26 + 159: 4,20 + 160: 10,20 + 166: 16,20 + 170: 22,20 + 175: 34,20 + 176: 22,14 + 183: 6,14 + 184: 10,8 + 188: 16,2 + 190: 34,2 + 205: 21,2 + 213: 34,8 + 214: 30,14 + 219: 34,35 + 223: 30,39 + 224: 22,45 + 227: 14,45 + 230: 6,45 + 235: 10,35 + 834: 5,2 + 2018: 30,45 + - node: + color: '#DE3A3A96' + id: WarnLineGreyscaleN + decals: + 111: 17,28 + 116: 13,28 + 125: 19,40 + 126: 11,40 + 138: 21,28 + 144: 29,28 + 154: 1,28 + 158: 2,22 + 161: 8,22 + 165: 14,22 + 171: 20,22 + 173: 32,22 + 179: 19,16 + 180: 3,16 + 186: 17,10 + 209: 26,4 + 210: 29,10 + 217: 26,22 + 220: 29,36 + 228: 11,48 + 233: 3,48 + 237: 5,28 + 2020: 27,48 + - node: + color: '#FFFFFFFF' + id: WarnLineGreyscaleN + decals: + 667: 27,35 + 668: 28,35 + 669: 29,35 + 670: 30,35 + 671: 31,35 + - node: + color: '#DE3A3A96' + id: WarnLineGreyscaleS + decals: + 110: 17,24 + 115: 13,24 + 124: 19,38 + 127: 11,38 + 136: 20,30 + 137: 21,24 + 139: 25,24 + 143: 29,24 + 148: 33,24 + 149: 32,28 + 150: 33,28 + 151: 34,28 + 152: 1,24 + 157: 2,18 + 163: 8,18 + 164: 14,18 + 169: 20,18 + 172: 32,18 + 177: 19,12 + 181: 3,12 + 187: 17,6 + 208: 26,0 + 211: 29,6 + 216: 26,18 + 221: 29,34 + 229: 11,42 + 231: 3,42 + 236: 5,24 + 2019: 27,42 + - node: + color: '#FFFFFFFF' + id: WarnLineGreyscaleS + decals: + 662: 27,35 + 663: 28,35 + 664: 29,35 + 665: 30,35 + 666: 31,35 + - node: + color: '#DE3A3A96' + id: WarnLineGreyscaleW + decals: + 113: 16,26 + 114: 12,26 + 119: 20,26 + 120: 12,35 + 123: 16,39 + 129: 8,39 + 130: 0,39 + 133: 0,31 + 134: 14,31 + 141: 24,26 + 142: 28,26 + 147: 32,26 + 155: 0,26 + 156: 0,20 + 162: 6,20 + 167: 12,20 + 168: 18,20 + 174: 30,20 + 178: 16,14 + 182: 0,14 + 185: 0,8 + 189: 0,2 + 206: 18,2 + 207: 23,2 + 212: 24,8 + 215: 24,14 + 218: 24,35 + 222: 24,39 + 225: 16,45 + 226: 8,45 + 232: 0,45 + 234: 0,35 + 835: 11,2 + 2017: 24,45 + - node: + color: '#FFFFFFFF' + id: WarnLineN + decals: + 601: 10,38 + 602: 12,38 + 647: 27,34 + 648: 28,34 + 649: 30,34 + 650: 31,34 + 651: 32,34 + 732: 28,6 + 733: 27,6 + 734: 26,6 + 735: 25,6 + 736: 30,6 + 737: 31,6 + 738: 32,6 + 739: 33,6 + - node: + color: '#FFFFFFFF' + id: WarnLineS + decals: + 603: 9,39 + 742: 24,7 + 743: 24,9 + - node: + color: '#FFFFFFFF' + id: WarnLineW + decals: + 599: 10,40 + 600: 12,40 + 652: 27,36 + 653: 28,36 + 654: 30,36 + 655: 31,36 + 656: 32,36 + 724: 25,10 + 725: 26,10 + 726: 28,10 + 727: 27,10 + 728: 30,10 + 729: 31,10 + 730: 32,10 + 731: 33,10 + - node: + cleanable: True + color: '#80C71F7F' + id: revolution + decals: + 2138: 14.060958,20.754644 + 2139: 13.607299,19.803425 + - node: + cleanable: True + color: '#B02E60A3' + id: revolution + decals: + 2137: 25.02975,25.438416 + - node: + cleanable: True + angle: -1.5707963267948966 rad + color: '#B02E2644' + id: splatter + decals: + 2131: 27.967218,24.104916 + - node: + cleanable: True + color: '#B02E2666' + id: splatter + decals: + 2126: 8.891183,43.065514 + - node: + cleanable: True + angle: -1.5707963267948966 rad + color: '#B02E266F' + id: splatter + decals: + 2132: 28.36234,24.163452 + 2133: 32.200607,35.087025 + 2134: 13.24002,46.473877 + 2135: 24.497486,47.84553 + - node: + cleanable: True + angle: -4.71238898038469 rad + color: '#B02E26B4' + id: splatter + decals: + 2128: 8.788744,42.524048 + 2129: 15.538555,20.953827 + 2130: 24.864944,27.488853 + - node: + cleanable: True + angle: -3.141592653589793 rad + color: '#B02E26B4' + id: splatter + decals: + 2127: 9.110695,42.81673 + - type: RadiationGridResistance + - type: LoadedMap + - type: SpreaderGrid + - type: GridTree + - type: MovedGrids + - type: GridPathfinding +- proto: AirlockBrigGlassLocked + entities: + - uid: 1245 + components: + - type: Transform + pos: 15.5,35.5 + parent: 588 + - uid: 1246 + components: + - type: Transform + pos: 19.5,35.5 + parent: 588 + - uid: 1625 + components: + - type: Transform + pos: 22.5,2.5 + parent: 588 +- proto: AirlockEngineering + entities: + - uid: 1515 + components: + - type: Transform + pos: 19.5,43.5 + parent: 588 +- proto: AirlockSecurityGlassLocked + entities: + - uid: 1579 + components: + - type: Transform + pos: 11.5,15.5 + parent: 588 + - uid: 1609 + components: + - type: Transform + pos: 15.5,8.5 + parent: 588 + - uid: 1610 + components: + - type: Transform + pos: 19.5,8.5 + parent: 588 + - uid: 1623 + components: + - type: Transform + pos: 6.5,2.5 + parent: 588 + - uid: 1624 + components: + - type: Transform + pos: 10.5,2.5 + parent: 588 +- proto: APCBasic + entities: + - uid: 484 + components: + - type: Transform + pos: 25.5,13.5 + parent: 588 + - uid: 773 + components: + - type: Transform + pos: 25.5,19.5 + parent: 588 + - uid: 973 + components: + - type: Transform + pos: 21.5,32.5 + parent: 588 + - uid: 1509 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 19.5,47.5 + parent: 588 +- proto: BannerSecurity + entities: + - uid: 553 + components: + - type: Transform + pos: 30.5,8.5 + parent: 588 + - uid: 1619 + components: + - type: Transform + pos: 18.5,10.5 + parent: 588 + - uid: 1620 + components: + - type: Transform + pos: 16.5,6.5 + parent: 588 +- proto: BasaltFive + entities: + - uid: 608 + components: + - type: Transform + pos: 2.5,14.5 + parent: 588 + - uid: 647 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 2.5,21.5 + parent: 588 + - uid: 899 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 10.5,30.5 + parent: 588 + - uid: 1264 + components: + - type: Transform + pos: 9.5,0.5 + parent: 588 + - uid: 1384 + components: + - type: Transform + pos: 5.5,48.5 + parent: 588 + - uid: 1386 + components: + - type: Transform + pos: 0.5,47.5 + parent: 588 + - uid: 1387 + components: + - type: Transform + pos: 0.5,42.5 + parent: 588 + - uid: 1388 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 1.5,42.5 + parent: 588 +- proto: BasaltFour + entities: + - uid: 900 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 8.5,32.5 + parent: 588 + - uid: 904 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 2.5,40.5 + parent: 588 + - uid: 1381 + components: + - type: Transform + pos: 1.5,44.5 + parent: 588 + - uid: 1385 + components: + - type: Transform + pos: 6.5,48.5 + parent: 588 +- proto: BasaltOne + entities: + - uid: 813 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 1.5,27.5 + parent: 588 + - uid: 897 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 3.5,30.5 + parent: 588 + - uid: 901 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 10.5,32.5 + parent: 588 + - uid: 903 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 5.5,38.5 + parent: 588 + - uid: 1382 + components: + - type: Transform + pos: 1.5,48.5 + parent: 588 +- proto: BasaltRandom + entities: + - uid: 613 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 4.5,14.5 + parent: 588 + - uid: 615 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 3.5,7.5 + parent: 588 +- proto: BasaltThree + entities: + - uid: 616 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 6.5,7.5 + parent: 588 + - uid: 644 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 1.5,20.5 + parent: 588 + - uid: 898 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 2.5,30.5 + parent: 588 + - uid: 905 + components: + - type: Transform + pos: 4.5,38.5 + parent: 588 + - uid: 1265 + components: + - type: Transform + pos: 7.5,1.5 + parent: 588 + - uid: 1266 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 9.5,3.5 + parent: 588 + - uid: 1383 + components: + - type: Transform + pos: 6.5,47.5 + parent: 588 +- proto: BasaltTwo + entities: + - uid: 610 + components: + - type: Transform + pos: 3.5,14.5 + parent: 588 + - uid: 617 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 3.5,9.5 + parent: 588 + - uid: 618 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 7.5,8.5 + parent: 588 + - uid: 646 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 2.5,19.5 + parent: 588 + - uid: 814 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 1.5,26.5 + parent: 588 + - uid: 896 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 3.5,32.5 + parent: 588 + - uid: 902 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 1.5,38.5 + parent: 588 + - uid: 1263 + components: + - type: Transform + pos: 7.5,4.5 + parent: 588 + - uid: 1380 + components: + - type: Transform + pos: 1.5,43.5 + parent: 588 +- proto: Bed + entities: + - uid: 257 + components: + - type: Transform + pos: 15.5,4.5 + parent: 588 + - uid: 282 + components: + - type: Transform + pos: 1.5,4.5 + parent: 588 + - uid: 293 + components: + - type: Transform + pos: 3.5,4.5 + parent: 588 + - uid: 294 + components: + - type: Transform + pos: 5.5,4.5 + parent: 588 + - uid: 295 + components: + - type: Transform + pos: 11.5,4.5 + parent: 588 + - uid: 296 + components: + - type: Transform + pos: 13.5,4.5 + parent: 588 + - uid: 700 + components: + - type: Transform + pos: 12.5,22.5 + parent: 588 + - uid: 701 + components: + - type: Transform + pos: 16.5,18.5 + parent: 588 + - uid: 1043 + components: + - type: Transform + pos: 20.5,28.5 + parent: 588 + - uid: 1044 + components: + - type: Transform + pos: 22.5,24.5 + parent: 588 + - uid: 1075 + components: + - type: Transform + pos: 24.5,28.5 + parent: 588 + - uid: 1099 + components: + - type: Transform + pos: 20.5,36.5 + parent: 588 + - uid: 1100 + components: + - type: Transform + pos: 14.5,34.5 + parent: 588 + - uid: 1763 + components: + - type: Transform + pos: 24.5,48.5 + parent: 588 + - uid: 1764 + components: + - type: Transform + pos: 24.5,42.5 + parent: 588 +- proto: BedsheetMedical + entities: + - uid: 1150 + components: + - type: Transform + pos: 28.5,24.5 + parent: 588 + - uid: 1151 + components: + - type: Transform + pos: 28.5,25.5 + parent: 588 +- proto: BedsheetOrange + entities: + - uid: 298 + components: + - type: Transform + pos: 3.5,4.5 + parent: 588 + - uid: 299 + components: + - type: Transform + pos: 5.5,4.5 + parent: 588 + - uid: 300 + components: + - type: Transform + pos: 13.5,4.5 + parent: 588 + - uid: 1765 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 24.5,42.5 + parent: 588 +- proto: BedsheetSpawner + entities: + - uid: 301 + components: + - type: Transform + pos: 11.5,4.5 + parent: 588 + - uid: 1041 + components: + - type: Transform + pos: 20.5,28.5 + parent: 588 + - uid: 1225 + components: + - type: Transform + pos: 14.5,34.5 + parent: 588 + - uid: 1226 + components: + - type: Transform + pos: 20.5,36.5 + parent: 588 +- proto: BedsheetSyndie + entities: + - uid: 1037 + components: + - type: Transform + pos: 22.5,24.5 + parent: 588 + - uid: 1766 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 24.5,48.5 + parent: 588 +- proto: BlastDoor + entities: + - uid: 1600 + components: + - type: Transform + pos: 26.5,7.5 + parent: 588 + - uid: 1601 + components: + - type: Transform + pos: 29.5,9.5 + parent: 588 + - uid: 1602 + components: + - type: Transform + pos: 32.5,7.5 + parent: 588 +- proto: Bola + entities: + - uid: 1157 + components: + - type: Transform + pos: 15.616387,0.61007345 + parent: 588 +- proto: BookEscalationSecurity + entities: + - uid: 373 + components: + - type: Transform + pos: 19.42657,0.6288943 + parent: 588 +- proto: BookRandom + entities: + - uid: 1835 + components: + - type: Transform + pos: 24.420084,44.539436 + parent: 588 +- proto: BookSecurity + entities: + - uid: 522 + components: + - type: Transform + pos: 32.41844,8.400207 + parent: 588 +- proto: BoxFolderBlack + entities: + - uid: 365 + components: + - type: Transform + pos: 27.841173,1.5632035 + parent: 588 + - uid: 728 + components: + - type: Transform + pos: 10.690479,19.262342 + parent: 588 +- proto: BoxFolderGrey + entities: + - uid: 364 + components: + - type: Transform + pos: 25.072409,1.4780562 + parent: 588 + - uid: 727 + components: + - type: Transform + pos: 7.2148314,22.575037 + parent: 588 +- proto: BoxFolderRed + entities: + - uid: 329 + components: + - type: Transform + pos: 21.42984,3.6329575 + parent: 588 + - uid: 362 + components: + - type: Transform + pos: 24.788435,1.6057768 + parent: 588 + - uid: 363 + components: + - type: Transform + pos: 28.196142,1.5773941 + parent: 588 + - uid: 726 + components: + - type: Transform + pos: 10.428753,19.429379 + parent: 588 +- proto: BoxMouthSwab + entities: + - uid: 1476 + components: + - type: Transform + pos: 12.356534,44.605965 + parent: 588 +- proto: BoxSterileMask + entities: + - uid: 1477 + components: + - type: Transform + pos: 12.683106,44.705303 + parent: 588 +- proto: BriefcaseBrownFilled + entities: + - uid: 325 + components: + - type: Transform + pos: 19.413612,4.6972914 + parent: 588 +- proto: BrokenBottle + entities: + - uid: 1691 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 25.063513,27.520548 + parent: 588 +- proto: Bucket + entities: + - uid: 1839 + components: + - type: Transform + pos: 29.616838,43.531868 + parent: 588 + - uid: 1857 + components: + - type: Transform + pos: 30.264944,21.705044 + parent: 588 +- proto: CableApcExtension + entities: + - uid: 1 + components: + - type: Transform + pos: 0.5,2.5 + parent: 588 + - uid: 2 + components: + - type: Transform + pos: 1.5,2.5 + parent: 588 + - uid: 3 + components: + - type: Transform + pos: 2.5,2.5 + parent: 588 + - uid: 4 + components: + - type: Transform + pos: 3.5,2.5 + parent: 588 + - uid: 5 + components: + - type: Transform + pos: 4.5,2.5 + parent: 588 + - uid: 6 + components: + - type: Transform + pos: 5.5,2.5 + parent: 588 + - uid: 7 + components: + - type: Transform + pos: 6.5,2.5 + parent: 588 + - uid: 8 + components: + - type: Transform + pos: 7.5,2.5 + parent: 588 + - uid: 9 + components: + - type: Transform + pos: 8.5,2.5 + parent: 588 + - uid: 10 + components: + - type: Transform + pos: 9.5,2.5 + parent: 588 + - uid: 11 + components: + - type: Transform + pos: 10.5,2.5 + parent: 588 + - uid: 12 + components: + - type: Transform + pos: 11.5,2.5 + parent: 588 + - uid: 13 + components: + - type: Transform + pos: 12.5,2.5 + parent: 588 + - uid: 14 + components: + - type: Transform + pos: 13.5,2.5 + parent: 588 + - uid: 15 + components: + - type: Transform + pos: 14.5,2.5 + parent: 588 + - uid: 16 + components: + - type: Transform + pos: 15.5,2.5 + parent: 588 + - uid: 17 + components: + - type: Transform + pos: 16.5,2.5 + parent: 588 + - uid: 18 + components: + - type: Transform + pos: 8.5,4.5 + parent: 588 + - uid: 19 + components: + - type: Transform + pos: 8.5,3.5 + parent: 588 + - uid: 20 + components: + - type: Transform + pos: 8.5,1.5 + parent: 588 + - uid: 21 + components: + - type: Transform + pos: 8.5,0.5 + parent: 588 + - uid: 22 + components: + - type: Transform + pos: 18.5,2.5 + parent: 588 + - uid: 23 + components: + - type: Transform + pos: 19.5,2.5 + parent: 588 + - uid: 24 + components: + - type: Transform + pos: 20.5,2.5 + parent: 588 + - uid: 25 + components: + - type: Transform + pos: 21.5,2.5 + parent: 588 + - uid: 26 + components: + - type: Transform + pos: 22.5,2.5 + parent: 588 + - uid: 27 + components: + - type: Transform + pos: 23.5,2.5 + parent: 588 + - uid: 28 + components: + - type: Transform + pos: 24.5,2.5 + parent: 588 + - uid: 29 + components: + - type: Transform + pos: 25.5,2.5 + parent: 588 + - uid: 30 + components: + - type: Transform + pos: 26.5,2.5 + parent: 588 + - uid: 31 + components: + - type: Transform + pos: 27.5,2.5 + parent: 588 + - uid: 32 + components: + - type: Transform + pos: 28.5,2.5 + parent: 588 + - uid: 33 + components: + - type: Transform + pos: 29.5,2.5 + parent: 588 + - uid: 34 + components: + - type: Transform + pos: 30.5,2.5 + parent: 588 + - uid: 35 + components: + - type: Transform + pos: 31.5,2.5 + parent: 588 + - uid: 36 + components: + - type: Transform + pos: 32.5,2.5 + parent: 588 + - uid: 37 + components: + - type: Transform + pos: 33.5,2.5 + parent: 588 + - uid: 38 + components: + - type: Transform + pos: 34.5,2.5 + parent: 588 + - uid: 39 + components: + - type: Transform + pos: 26.5,4.5 + parent: 588 + - uid: 40 + components: + - type: Transform + pos: 26.5,3.5 + parent: 588 + - uid: 41 + components: + - type: Transform + pos: 26.5,1.5 + parent: 588 + - uid: 42 + components: + - type: Transform + pos: 26.5,0.5 + parent: 588 + - uid: 43 + components: + - type: Transform + pos: 0.5,8.5 + parent: 588 + - uid: 44 + components: + - type: Transform + pos: 1.5,8.5 + parent: 588 + - uid: 52 + components: + - type: Transform + pos: 9.5,8.5 + parent: 588 + - uid: 53 + components: + - type: Transform + pos: 10.5,8.5 + parent: 588 + - uid: 54 + components: + - type: Transform + pos: 5.5,10.5 + parent: 588 + - uid: 57 + components: + - type: Transform + pos: 5.5,6.5 + parent: 588 + - uid: 58 + components: + - type: Transform + pos: 17.5,6.5 + parent: 588 + - uid: 59 + components: + - type: Transform + pos: 17.5,7.5 + parent: 588 + - uid: 60 + components: + - type: Transform + pos: 17.5,8.5 + parent: 588 + - uid: 61 + components: + - type: Transform + pos: 17.5,9.5 + parent: 588 + - uid: 62 + components: + - type: Transform + pos: 17.5,10.5 + parent: 588 + - uid: 63 + components: + - type: Transform + pos: 12.5,8.5 + parent: 588 + - uid: 64 + components: + - type: Transform + pos: 13.5,8.5 + parent: 588 + - uid: 65 + components: + - type: Transform + pos: 14.5,8.5 + parent: 588 + - uid: 66 + components: + - type: Transform + pos: 15.5,8.5 + parent: 588 + - uid: 67 + components: + - type: Transform + pos: 16.5,8.5 + parent: 588 + - uid: 68 + components: + - type: Transform + pos: 18.5,8.5 + parent: 588 + - uid: 69 + components: + - type: Transform + pos: 19.5,8.5 + parent: 588 + - uid: 70 + components: + - type: Transform + pos: 20.5,8.5 + parent: 588 + - uid: 71 + components: + - type: Transform + pos: 21.5,8.5 + parent: 588 + - uid: 72 + components: + - type: Transform + pos: 22.5,8.5 + parent: 588 + - uid: 73 + components: + - type: Transform + pos: 22.5,14.5 + parent: 588 + - uid: 74 + components: + - type: Transform + pos: 21.5,14.5 + parent: 588 + - uid: 75 + components: + - type: Transform + pos: 20.5,14.5 + parent: 588 + - uid: 76 + components: + - type: Transform + pos: 19.5,14.5 + parent: 588 + - uid: 77 + components: + - type: Transform + pos: 18.5,14.5 + parent: 588 + - uid: 78 + components: + - type: Transform + pos: 17.5,14.5 + parent: 588 + - uid: 79 + components: + - type: Transform + pos: 16.5,14.5 + parent: 588 + - uid: 80 + components: + - type: Transform + pos: 19.5,13.5 + parent: 588 + - uid: 81 + components: + - type: Transform + pos: 19.5,12.5 + parent: 588 + - uid: 82 + components: + - type: Transform + pos: 19.5,15.5 + parent: 588 + - uid: 83 + components: + - type: Transform + pos: 19.5,16.5 + parent: 588 + - uid: 84 + components: + - type: Transform + pos: 14.5,14.5 + parent: 588 + - uid: 85 + components: + - type: Transform + pos: 13.5,14.5 + parent: 588 + - uid: 86 + components: + - type: Transform + pos: 12.5,14.5 + parent: 588 + - uid: 87 + components: + - type: Transform + pos: 11.5,14.5 + parent: 588 + - uid: 88 + components: + - type: Transform + pos: 10.5,14.5 + parent: 588 + - uid: 89 + components: + - type: Transform + pos: 9.5,14.5 + parent: 588 + - uid: 90 + components: + - type: Transform + pos: 8.5,14.5 + parent: 588 + - uid: 91 + components: + - type: Transform + pos: 11.5,13.5 + parent: 588 + - uid: 92 + components: + - type: Transform + pos: 11.5,12.5 + parent: 588 + - uid: 93 + components: + - type: Transform + pos: 11.5,15.5 + parent: 588 + - uid: 94 + components: + - type: Transform + pos: 11.5,16.5 + parent: 588 + - uid: 95 + components: + - type: Transform + pos: 6.5,14.5 + parent: 588 + - uid: 96 + components: + - type: Transform + pos: 5.5,14.5 + parent: 588 + - uid: 98 + components: + - type: Transform + pos: 4.5,22.5 + parent: 588 + - uid: 100 + components: + - type: Transform + pos: 1.5,14.5 + parent: 588 + - uid: 101 + components: + - type: Transform + pos: 0.5,14.5 + parent: 588 + - uid: 102 + components: + - type: Transform + pos: 3.5,15.5 + parent: 588 + - uid: 103 + components: + - type: Transform + pos: 3.5,16.5 + parent: 588 + - uid: 104 + components: + - type: Transform + pos: 3.5,13.5 + parent: 588 + - uid: 105 + components: + - type: Transform + pos: 3.5,12.5 + parent: 588 + - uid: 106 + components: + - type: Transform + pos: 14.5,18.5 + parent: 588 + - uid: 107 + components: + - type: Transform + pos: 14.5,19.5 + parent: 588 + - uid: 108 + components: + - type: Transform + pos: 14.5,20.5 + parent: 588 + - uid: 109 + components: + - type: Transform + pos: 14.5,21.5 + parent: 588 + - uid: 110 + components: + - type: Transform + pos: 14.5,22.5 + parent: 588 + - uid: 111 + components: + - type: Transform + pos: 15.5,20.5 + parent: 588 + - uid: 112 + components: + - type: Transform + pos: 16.5,20.5 + parent: 588 + - uid: 113 + components: + - type: Transform + pos: 13.5,20.5 + parent: 588 + - uid: 114 + components: + - type: Transform + pos: 12.5,20.5 + parent: 588 + - uid: 115 + components: + - type: Transform + pos: 8.5,18.5 + parent: 588 + - uid: 116 + components: + - type: Transform + pos: 8.5,19.5 + parent: 588 + - uid: 117 + components: + - type: Transform + pos: 8.5,20.5 + parent: 588 + - uid: 118 + components: + - type: Transform + pos: 8.5,21.5 + parent: 588 + - uid: 119 + components: + - type: Transform + pos: 8.5,22.5 + parent: 588 + - uid: 120 + components: + - type: Transform + pos: 9.5,20.5 + parent: 588 + - uid: 121 + components: + - type: Transform + pos: 10.5,20.5 + parent: 588 + - uid: 122 + components: + - type: Transform + pos: 7.5,20.5 + parent: 588 + - uid: 123 + components: + - type: Transform + pos: 6.5,20.5 + parent: 588 + - uid: 124 + components: + - type: Transform + pos: 2.5,22.5 + parent: 588 + - uid: 125 + components: + - type: Transform + pos: 4.5,21.5 + parent: 588 + - uid: 126 + components: + - type: Transform + pos: 4.5,19.5 + parent: 588 + - uid: 127 + components: + - type: Transform + pos: 3.5,18.5 + parent: 588 + - uid: 128 + components: + - type: Transform + pos: 2.5,18.5 + parent: 588 + - uid: 129 + components: + - type: Transform + pos: 3.5,22.5 + parent: 588 + - uid: 130 + components: + - type: Transform + pos: 0.5,20.5 + parent: 588 + - uid: 131 + components: + - type: Transform + pos: 4.5,18.5 + parent: 588 + - uid: 132 + components: + - type: Transform + pos: 4.5,20.5 + parent: 588 + - uid: 133 + components: + - type: Transform + pos: 1.5,24.5 + parent: 588 + - uid: 134 + components: + - type: Transform + pos: 2.5,25.5 + parent: 588 + - uid: 135 + components: + - type: Transform + pos: 0.5,24.5 + parent: 588 + - uid: 136 + components: + - type: Transform + pos: 2.5,24.5 + parent: 588 + - uid: 137 + components: + - type: Transform + pos: 1.5,28.5 + parent: 588 + - uid: 138 + components: + - type: Transform + pos: 0.5,26.5 + parent: 588 + - uid: 139 + components: + - type: Transform + pos: 2.5,26.5 + parent: 588 + - uid: 147 + components: + - type: Transform + pos: 9.5,28.5 + parent: 588 + - uid: 148 + components: + - type: Transform + pos: 9.5,27.5 + parent: 588 + - uid: 149 + components: + - type: Transform + pos: 9.5,26.5 + parent: 588 + - uid: 150 + components: + - type: Transform + pos: 9.5,25.5 + parent: 588 + - uid: 151 + components: + - type: Transform + pos: 9.5,24.5 + parent: 588 + - uid: 152 + components: + - type: Transform + pos: 8.5,26.5 + parent: 588 + - uid: 153 + components: + - type: Transform + pos: 10.5,26.5 + parent: 588 + - uid: 154 + components: + - type: Transform + pos: 13.5,28.5 + parent: 588 + - uid: 155 + components: + - type: Transform + pos: 13.5,27.5 + parent: 588 + - uid: 156 + components: + - type: Transform + pos: 13.5,26.5 + parent: 588 + - uid: 157 + components: + - type: Transform + pos: 13.5,25.5 + parent: 588 + - uid: 158 + components: + - type: Transform + pos: 13.5,24.5 + parent: 588 + - uid: 159 + components: + - type: Transform + pos: 12.5,26.5 + parent: 588 + - uid: 160 + components: + - type: Transform + pos: 14.5,26.5 + parent: 588 + - uid: 161 + components: + - type: Transform + pos: 0.5,31.5 + parent: 588 + - uid: 162 + components: + - type: Transform + pos: 1.5,31.5 + parent: 588 + - uid: 163 + components: + - type: Transform + pos: 2.5,31.5 + parent: 588 + - uid: 164 + components: + - type: Transform + pos: 3.5,31.5 + parent: 588 + - uid: 165 + components: + - type: Transform + pos: 4.5,31.5 + parent: 588 + - uid: 166 + components: + - type: Transform + pos: 5.5,31.5 + parent: 588 + - uid: 167 + components: + - type: Transform + pos: 6.5,31.5 + parent: 588 + - uid: 168 + components: + - type: Transform + pos: 7.5,31.5 + parent: 588 + - uid: 169 + components: + - type: Transform + pos: 8.5,31.5 + parent: 588 + - uid: 170 + components: + - type: Transform + pos: 9.5,31.5 + parent: 588 + - uid: 171 + components: + - type: Transform + pos: 10.5,31.5 + parent: 588 + - uid: 172 + components: + - type: Transform + pos: 11.5,31.5 + parent: 588 + - uid: 173 + components: + - type: Transform + pos: 12.5,31.5 + parent: 588 + - uid: 174 + components: + - type: Transform + pos: 6.5,30.5 + parent: 588 + - uid: 175 + components: + - type: Transform + pos: 6.5,32.5 + parent: 588 + - uid: 176 + components: + - type: Transform + pos: 26.5,31.5 + parent: 588 + - uid: 177 + components: + - type: Transform + pos: 25.5,31.5 + parent: 588 + - uid: 178 + components: + - type: Transform + pos: 24.5,31.5 + parent: 588 + - uid: 179 + components: + - type: Transform + pos: 23.5,31.5 + parent: 588 + - uid: 180 + components: + - type: Transform + pos: 22.5,31.5 + parent: 588 + - uid: 181 + components: + - type: Transform + pos: 21.5,31.5 + parent: 588 + - uid: 182 + components: + - type: Transform + pos: 20.5,31.5 + parent: 588 + - uid: 183 + components: + - type: Transform + pos: 19.5,31.5 + parent: 588 + - uid: 184 + components: + - type: Transform + pos: 18.5,31.5 + parent: 588 + - uid: 185 + components: + - type: Transform + pos: 17.5,31.5 + parent: 588 + - uid: 186 + components: + - type: Transform + pos: 16.5,31.5 + parent: 588 + - uid: 187 + components: + - type: Transform + pos: 15.5,31.5 + parent: 588 + - uid: 188 + components: + - type: Transform + pos: 14.5,31.5 + parent: 588 + - uid: 189 + components: + - type: Transform + pos: 20.5,32.5 + parent: 588 + - uid: 190 + components: + - type: Transform + pos: 20.5,30.5 + parent: 588 + - uid: 191 + components: + - type: Transform + pos: 22.5,35.5 + parent: 588 + - uid: 192 + components: + - type: Transform + pos: 21.5,35.5 + parent: 588 + - uid: 193 + components: + - type: Transform + pos: 20.5,35.5 + parent: 588 + - uid: 194 + components: + - type: Transform + pos: 19.5,35.5 + parent: 588 + - uid: 195 + components: + - type: Transform + pos: 18.5,35.5 + parent: 588 + - uid: 196 + components: + - type: Transform + pos: 17.5,35.5 + parent: 588 + - uid: 197 + components: + - type: Transform + pos: 16.5,35.5 + parent: 588 + - uid: 198 + components: + - type: Transform + pos: 15.5,35.5 + parent: 588 + - uid: 199 + components: + - type: Transform + pos: 14.5,35.5 + parent: 588 + - uid: 200 + components: + - type: Transform + pos: 13.5,35.5 + parent: 588 + - uid: 201 + components: + - type: Transform + pos: 12.5,35.5 + parent: 588 + - uid: 202 + components: + - type: Transform + pos: 17.5,36.5 + parent: 588 + - uid: 203 + components: + - type: Transform + pos: 17.5,34.5 + parent: 588 + - uid: 204 + components: + - type: Transform + pos: 10.5,35.5 + parent: 588 + - uid: 215 + components: + - type: Transform + pos: 5.5,36.5 + parent: 588 + - uid: 216 + components: + - type: Transform + pos: 5.5,34.5 + parent: 588 + - uid: 217 + components: + - type: Transform + pos: 0.5,39.5 + parent: 588 + - uid: 218 + components: + - type: Transform + pos: 1.5,39.5 + parent: 588 + - uid: 219 + components: + - type: Transform + pos: 2.5,39.5 + parent: 588 + - uid: 220 + components: + - type: Transform + pos: 3.5,39.5 + parent: 588 + - uid: 221 + components: + - type: Transform + pos: 4.5,39.5 + parent: 588 + - uid: 222 + components: + - type: Transform + pos: 5.5,39.5 + parent: 588 + - uid: 223 + components: + - type: Transform + pos: 6.5,39.5 + parent: 588 + - uid: 224 + components: + - type: Transform + pos: 3.5,38.5 + parent: 588 + - uid: 225 + components: + - type: Transform + pos: 3.5,40.5 + parent: 588 + - uid: 226 + components: + - type: Transform + pos: 8.5,39.5 + parent: 588 + - uid: 227 + components: + - type: Transform + pos: 9.5,39.5 + parent: 588 + - uid: 228 + components: + - type: Transform + pos: 10.5,39.5 + parent: 588 + - uid: 229 + components: + - type: Transform + pos: 11.5,39.5 + parent: 588 + - uid: 230 + components: + - type: Transform + pos: 12.5,39.5 + parent: 588 + - uid: 231 + components: + - type: Transform + pos: 13.5,39.5 + parent: 588 + - uid: 232 + components: + - type: Transform + pos: 14.5,39.5 + parent: 588 + - uid: 233 + components: + - type: Transform + pos: 11.5,38.5 + parent: 588 + - uid: 234 + components: + - type: Transform + pos: 11.5,40.5 + parent: 588 + - uid: 235 + components: + - type: Transform + pos: 16.5,39.5 + parent: 588 + - uid: 236 + components: + - type: Transform + pos: 17.5,39.5 + parent: 588 + - uid: 237 + components: + - type: Transform + pos: 18.5,39.5 + parent: 588 + - uid: 238 + components: + - type: Transform + pos: 19.5,39.5 + parent: 588 + - uid: 239 + components: + - type: Transform + pos: 20.5,39.5 + parent: 588 + - uid: 240 + components: + - type: Transform + pos: 21.5,39.5 + parent: 588 + - uid: 241 + components: + - type: Transform + pos: 22.5,39.5 + parent: 588 + - uid: 242 + components: + - type: Transform + pos: 19.5,40.5 + parent: 588 + - uid: 243 + components: + - type: Transform + pos: 19.5,38.5 + parent: 588 + - uid: 284 + components: + - type: Transform + pos: 29.5,26.5 + parent: 588 + - uid: 288 + components: + - type: Transform + pos: 28.5,26.5 + parent: 588 + - uid: 425 + components: + - type: Transform + pos: 1.5,10.5 + parent: 588 + - uid: 438 + components: + - type: Transform + pos: 1.5,9.5 + parent: 588 + - uid: 441 + components: + - type: Transform + pos: 2.5,10.5 + parent: 588 + - uid: 442 + components: + - type: Transform + pos: 3.5,10.5 + parent: 588 + - uid: 443 + components: + - type: Transform + pos: 4.5,10.5 + parent: 588 + - uid: 444 + components: + - type: Transform + pos: 1.5,7.5 + parent: 588 + - uid: 445 + components: + - type: Transform + pos: 1.5,6.5 + parent: 588 + - uid: 446 + components: + - type: Transform + pos: 2.5,6.5 + parent: 588 + - uid: 447 + components: + - type: Transform + pos: 3.5,6.5 + parent: 588 + - uid: 448 + components: + - type: Transform + pos: 4.5,6.5 + parent: 588 + - uid: 449 + components: + - type: Transform + pos: 6.5,6.5 + parent: 588 + - uid: 450 + components: + - type: Transform + pos: 7.5,6.5 + parent: 588 + - uid: 451 + components: + - type: Transform + pos: 8.5,6.5 + parent: 588 + - uid: 452 + components: + - type: Transform + pos: 9.5,6.5 + parent: 588 + - uid: 453 + components: + - type: Transform + pos: 9.5,7.5 + parent: 588 + - uid: 454 + components: + - type: Transform + pos: 9.5,9.5 + parent: 588 + - uid: 455 + components: + - type: Transform + pos: 9.5,10.5 + parent: 588 + - uid: 456 + components: + - type: Transform + pos: 8.5,10.5 + parent: 588 + - uid: 457 + components: + - type: Transform + pos: 7.5,10.5 + parent: 588 + - uid: 472 + components: + - type: Transform + pos: 29.5,14.5 + parent: 588 + - uid: 477 + components: + - type: Transform + pos: 24.5,13.5 + parent: 588 + - uid: 479 + components: + - type: Transform + pos: 30.5,14.5 + parent: 588 + - uid: 493 + components: + - type: Transform + pos: 25.5,13.5 + parent: 588 + - uid: 494 + components: + - type: Transform + pos: 25.5,12.5 + parent: 588 + - uid: 495 + components: + - type: Transform + pos: 26.5,12.5 + parent: 588 + - uid: 496 + components: + - type: Transform + pos: 27.5,12.5 + parent: 588 + - uid: 497 + components: + - type: Transform + pos: 28.5,12.5 + parent: 588 + - uid: 498 + components: + - type: Transform + pos: 29.5,12.5 + parent: 588 + - uid: 500 + components: + - type: Transform + pos: 24.5,12.5 + parent: 588 + - uid: 502 + components: + - type: Transform + pos: 24.5,14.5 + parent: 588 + - uid: 503 + components: + - type: Transform + pos: 24.5,15.5 + parent: 588 + - uid: 504 + components: + - type: Transform + pos: 24.5,16.5 + parent: 588 + - uid: 505 + components: + - type: Transform + pos: 25.5,16.5 + parent: 588 + - uid: 506 + components: + - type: Transform + pos: 26.5,16.5 + parent: 588 + - uid: 507 + components: + - type: Transform + pos: 27.5,16.5 + parent: 588 + - uid: 508 + components: + - type: Transform + pos: 28.5,16.5 + parent: 588 + - uid: 509 + components: + - type: Transform + pos: 29.5,16.5 + parent: 588 + - uid: 514 + components: + - type: Transform + pos: 29.5,13.5 + parent: 588 + - uid: 523 + components: + - type: Transform + pos: 29.5,15.5 + parent: 588 + - uid: 628 + components: + - type: Transform + pos: 1.5,22.5 + parent: 588 + - uid: 639 + components: + - type: Transform + pos: 0.5,22.5 + parent: 588 + - uid: 640 + components: + - type: Transform + pos: 0.5,21.5 + parent: 588 + - uid: 641 + components: + - type: Transform + pos: 0.5,19.5 + parent: 588 + - uid: 642 + components: + - type: Transform + pos: 0.5,18.5 + parent: 588 + - uid: 643 + components: + - type: Transform + pos: 1.5,18.5 + parent: 588 + - uid: 657 + components: + - type: Transform + pos: 2.5,15.5 + parent: 588 + - uid: 661 + components: + - type: Transform + pos: 1.5,15.5 + parent: 588 + - uid: 662 + components: + - type: Transform + pos: 1.5,13.5 + parent: 588 + - uid: 663 + components: + - type: Transform + pos: 2.5,13.5 + parent: 588 + - uid: 664 + components: + - type: Transform + pos: 4.5,13.5 + parent: 588 + - uid: 665 + components: + - type: Transform + pos: 5.5,13.5 + parent: 588 + - uid: 666 + components: + - type: Transform + pos: 5.5,15.5 + parent: 588 + - uid: 667 + components: + - type: Transform + pos: 4.5,15.5 + parent: 588 + - uid: 668 + components: + - type: Transform + pos: 29.5,10.5 + parent: 588 + - uid: 669 + components: + - type: Transform + pos: 28.5,10.5 + parent: 588 + - uid: 670 + components: + - type: Transform + pos: 27.5,10.5 + parent: 588 + - uid: 671 + components: + - type: Transform + pos: 26.5,10.5 + parent: 588 + - uid: 672 + components: + - type: Transform + pos: 25.5,10.5 + parent: 588 + - uid: 673 + components: + - type: Transform + pos: 24.5,10.5 + parent: 588 + - uid: 674 + components: + - type: Transform + pos: 24.5,9.5 + parent: 588 + - uid: 675 + components: + - type: Transform + pos: 24.5,8.5 + parent: 588 + - uid: 676 + components: + - type: Transform + pos: 24.5,7.5 + parent: 588 + - uid: 677 + components: + - type: Transform + pos: 24.5,6.5 + parent: 588 + - uid: 678 + components: + - type: Transform + pos: 25.5,6.5 + parent: 588 + - uid: 679 + components: + - type: Transform + pos: 26.5,6.5 + parent: 588 + - uid: 680 + components: + - type: Transform + pos: 27.5,6.5 + parent: 588 + - uid: 681 + components: + - type: Transform + pos: 28.5,6.5 + parent: 588 + - uid: 682 + components: + - type: Transform + pos: 29.5,6.5 + parent: 588 + - uid: 683 + components: + - type: Transform + pos: 30.5,6.5 + parent: 588 + - uid: 684 + components: + - type: Transform + pos: 31.5,6.5 + parent: 588 + - uid: 685 + components: + - type: Transform + pos: 32.5,6.5 + parent: 588 + - uid: 686 + components: + - type: Transform + pos: 33.5,6.5 + parent: 588 + - uid: 687 + components: + - type: Transform + pos: 34.5,6.5 + parent: 588 + - uid: 688 + components: + - type: Transform + pos: 34.5,7.5 + parent: 588 + - uid: 689 + components: + - type: Transform + pos: 34.5,8.5 + parent: 588 + - uid: 690 + components: + - type: Transform + pos: 34.5,9.5 + parent: 588 + - uid: 691 + components: + - type: Transform + pos: 34.5,10.5 + parent: 588 + - uid: 692 + components: + - type: Transform + pos: 33.5,10.5 + parent: 588 + - uid: 693 + components: + - type: Transform + pos: 32.5,10.5 + parent: 588 + - uid: 694 + components: + - type: Transform + pos: 31.5,10.5 + parent: 588 + - uid: 695 + components: + - type: Transform + pos: 30.5,10.5 + parent: 588 + - uid: 733 + components: + - type: Transform + pos: 20.5,18.5 + parent: 588 + - uid: 734 + components: + - type: Transform + pos: 20.5,19.5 + parent: 588 + - uid: 735 + components: + - type: Transform + pos: 20.5,20.5 + parent: 588 + - uid: 736 + components: + - type: Transform + pos: 20.5,21.5 + parent: 588 + - uid: 737 + components: + - type: Transform + pos: 20.5,22.5 + parent: 588 + - uid: 738 + components: + - type: Transform + pos: 21.5,20.5 + parent: 588 + - uid: 739 + components: + - type: Transform + pos: 22.5,20.5 + parent: 588 + - uid: 740 + components: + - type: Transform + pos: 19.5,20.5 + parent: 588 + - uid: 741 + components: + - type: Transform + pos: 18.5,20.5 + parent: 588 + - uid: 751 + components: + - type: Transform + pos: 32.5,22.5 + parent: 588 + - uid: 752 + components: + - type: Transform + pos: 32.5,21.5 + parent: 588 + - uid: 753 + components: + - type: Transform + pos: 32.5,20.5 + parent: 588 + - uid: 754 + components: + - type: Transform + pos: 32.5,19.5 + parent: 588 + - uid: 755 + components: + - type: Transform + pos: 32.5,18.5 + parent: 588 + - uid: 756 + components: + - type: Transform + pos: 31.5,20.5 + parent: 588 + - uid: 757 + components: + - type: Transform + pos: 30.5,20.5 + parent: 588 + - uid: 758 + components: + - type: Transform + pos: 33.5,20.5 + parent: 588 + - uid: 759 + components: + - type: Transform + pos: 34.5,20.5 + parent: 588 + - uid: 779 + components: + - type: Transform + pos: 25.5,19.5 + parent: 588 + - uid: 780 + components: + - type: Transform + pos: 25.5,18.5 + parent: 588 + - uid: 781 + components: + - type: Transform + pos: 24.5,18.5 + parent: 588 + - uid: 782 + components: + - type: Transform + pos: 24.5,19.5 + parent: 588 + - uid: 783 + components: + - type: Transform + pos: 24.5,20.5 + parent: 588 + - uid: 784 + components: + - type: Transform + pos: 24.5,21.5 + parent: 588 + - uid: 785 + components: + - type: Transform + pos: 24.5,22.5 + parent: 588 + - uid: 786 + components: + - type: Transform + pos: 25.5,22.5 + parent: 588 + - uid: 787 + components: + - type: Transform + pos: 26.5,22.5 + parent: 588 + - uid: 788 + components: + - type: Transform + pos: 27.5,22.5 + parent: 588 + - uid: 789 + components: + - type: Transform + pos: 28.5,22.5 + parent: 588 + - uid: 790 + components: + - type: Transform + pos: 28.5,21.5 + parent: 588 + - uid: 791 + components: + - type: Transform + pos: 28.5,20.5 + parent: 588 + - uid: 792 + components: + - type: Transform + pos: 28.5,19.5 + parent: 588 + - uid: 793 + components: + - type: Transform + pos: 28.5,18.5 + parent: 588 + - uid: 794 + components: + - type: Transform + pos: 27.5,18.5 + parent: 588 + - uid: 795 + components: + - type: Transform + pos: 26.5,18.5 + parent: 588 + - uid: 815 + components: + - type: Transform + pos: 0.5,25.5 + parent: 588 + - uid: 816 + components: + - type: Transform + pos: 0.5,27.5 + parent: 588 + - uid: 817 + components: + - type: Transform + pos: 0.5,28.5 + parent: 588 + - uid: 818 + components: + - type: Transform + pos: 2.5,28.5 + parent: 588 + - uid: 819 + components: + - type: Transform + pos: 2.5,27.5 + parent: 588 + - uid: 869 + components: + - type: Transform + pos: 5.5,24.5 + parent: 588 + - uid: 870 + components: + - type: Transform + pos: 6.5,24.5 + parent: 588 + - uid: 871 + components: + - type: Transform + pos: 6.5,25.5 + parent: 588 + - uid: 872 + components: + - type: Transform + pos: 6.5,26.5 + parent: 588 + - uid: 873 + components: + - type: Transform + pos: 6.5,27.5 + parent: 588 + - uid: 874 + components: + - type: Transform + pos: 6.5,28.5 + parent: 588 + - uid: 875 + components: + - type: Transform + pos: 5.5,28.5 + parent: 588 + - uid: 876 + components: + - type: Transform + pos: 4.5,28.5 + parent: 588 + - uid: 877 + components: + - type: Transform + pos: 4.5,27.5 + parent: 588 + - uid: 878 + components: + - type: Transform + pos: 4.5,26.5 + parent: 588 + - uid: 912 + components: + - type: Transform + pos: 6.5,10.5 + parent: 588 + - uid: 927 + components: + - type: Transform + pos: 34.5,36.5 + parent: 588 + - uid: 928 + components: + - type: Transform + pos: 32.5,36.5 + parent: 588 + - uid: 996 + components: + - type: Transform + pos: 21.5,32.5 + parent: 588 + - uid: 1079 + components: + - type: Transform + pos: 32.5,35.5 + parent: 588 + - uid: 1080 + components: + - type: Transform + pos: 31.5,35.5 + parent: 588 + - uid: 1081 + components: + - type: Transform + pos: 32.5,34.5 + parent: 588 + - uid: 1082 + components: + - type: Transform + pos: 29.5,34.5 + parent: 588 + - uid: 1083 + components: + - type: Transform + pos: 24.5,35.5 + parent: 588 + - uid: 1084 + components: + - type: Transform + pos: 27.5,35.5 + parent: 588 + - uid: 1085 + components: + - type: Transform + pos: 29.5,35.5 + parent: 588 + - uid: 1086 + components: + - type: Transform + pos: 28.5,35.5 + parent: 588 + - uid: 1089 + components: + - type: Transform + pos: 4.5,36.5 + parent: 588 + - uid: 1090 + components: + - type: Transform + pos: 33.5,34.5 + parent: 588 + - uid: 1091 + components: + - type: Transform + pos: 5.5,35.5 + parent: 588 + - uid: 1092 + components: + - type: Transform + pos: 29.5,36.5 + parent: 588 + - uid: 1093 + components: + - type: Transform + pos: 34.5,34.5 + parent: 588 + - uid: 1094 + components: + - type: Transform + pos: 34.5,35.5 + parent: 588 + - uid: 1095 + components: + - type: Transform + pos: 26.5,35.5 + parent: 588 + - uid: 1096 + components: + - type: Transform + pos: 25.5,35.5 + parent: 588 + - uid: 1097 + components: + - type: Transform + pos: 33.5,36.5 + parent: 588 + - uid: 1098 + components: + - type: Transform + pos: 30.5,35.5 + parent: 588 + - uid: 1117 + components: + - type: Transform + pos: 16.5,26.5 + parent: 588 + - uid: 1121 + components: + - type: Transform + pos: 17.5,26.5 + parent: 588 + - uid: 1122 + components: + - type: Transform + pos: 18.5,26.5 + parent: 588 + - uid: 1123 + components: + - type: Transform + pos: 17.5,27.5 + parent: 588 + - uid: 1124 + components: + - type: Transform + pos: 17.5,28.5 + parent: 588 + - uid: 1125 + components: + - type: Transform + pos: 17.5,24.5 + parent: 588 + - uid: 1126 + components: + - type: Transform + pos: 17.5,25.5 + parent: 588 + - uid: 1127 + components: + - type: Transform + pos: 20.5,26.5 + parent: 588 + - uid: 1128 + components: + - type: Transform + pos: 21.5,26.5 + parent: 588 + - uid: 1129 + components: + - type: Transform + pos: 22.5,26.5 + parent: 588 + - uid: 1130 + components: + - type: Transform + pos: 21.5,27.5 + parent: 588 + - uid: 1131 + components: + - type: Transform + pos: 21.5,28.5 + parent: 588 + - uid: 1132 + components: + - type: Transform + pos: 21.5,25.5 + parent: 588 + - uid: 1133 + components: + - type: Transform + pos: 21.5,24.5 + parent: 588 + - uid: 1134 + components: + - type: Transform + pos: 24.5,26.5 + parent: 588 + - uid: 1135 + components: + - type: Transform + pos: 25.5,26.5 + parent: 588 + - uid: 1136 + components: + - type: Transform + pos: 26.5,26.5 + parent: 588 + - uid: 1137 + components: + - type: Transform + pos: 25.5,27.5 + parent: 588 + - uid: 1138 + components: + - type: Transform + pos: 25.5,28.5 + parent: 588 + - uid: 1139 + components: + - type: Transform + pos: 25.5,25.5 + parent: 588 + - uid: 1140 + components: + - type: Transform + pos: 25.5,24.5 + parent: 588 + - uid: 1170 + components: + - type: Transform + pos: 3.5,36.5 + parent: 588 + - uid: 1171 + components: + - type: Transform + pos: 2.5,36.5 + parent: 588 + - uid: 1172 + components: + - type: Transform + pos: 1.5,36.5 + parent: 588 + - uid: 1173 + components: + - type: Transform + pos: 0.5,36.5 + parent: 588 + - uid: 1174 + components: + - type: Transform + pos: 0.5,35.5 + parent: 588 + - uid: 1175 + components: + - type: Transform + pos: 6.5,34.5 + parent: 588 + - uid: 1176 + components: + - type: Transform + pos: 7.5,34.5 + parent: 588 + - uid: 1177 + components: + - type: Transform + pos: 8.5,34.5 + parent: 588 + - uid: 1178 + components: + - type: Transform + pos: 9.5,34.5 + parent: 588 + - uid: 1179 + components: + - type: Transform + pos: 10.5,34.5 + parent: 588 + - uid: 1268 + components: + - type: Transform + pos: 30.5,26.5 + parent: 588 + - uid: 1269 + components: + - type: Transform + pos: 29.5,27.5 + parent: 588 + - uid: 1270 + components: + - type: Transform + pos: 29.5,28.5 + parent: 588 + - uid: 1271 + components: + - type: Transform + pos: 29.5,25.5 + parent: 588 + - uid: 1272 + components: + - type: Transform + pos: 29.5,24.5 + parent: 588 + - uid: 1273 + components: + - type: Transform + pos: 32.5,26.5 + parent: 588 + - uid: 1274 + components: + - type: Transform + pos: 33.5,26.5 + parent: 588 + - uid: 1275 + components: + - type: Transform + pos: 34.5,26.5 + parent: 588 + - uid: 1276 + components: + - type: Transform + pos: 33.5,27.5 + parent: 588 + - uid: 1277 + components: + - type: Transform + pos: 33.5,28.5 + parent: 588 + - uid: 1278 + components: + - type: Transform + pos: 33.5,25.5 + parent: 588 + - uid: 1279 + components: + - type: Transform + pos: 33.5,24.5 + parent: 588 + - uid: 1306 + components: + - type: Transform + pos: 27.5,40.5 + parent: 588 + - uid: 1307 + components: + - type: Transform + pos: 26.5,40.5 + parent: 588 + - uid: 1308 + components: + - type: Transform + pos: 25.5,40.5 + parent: 588 + - uid: 1309 + components: + - type: Transform + pos: 24.5,40.5 + parent: 588 + - uid: 1310 + components: + - type: Transform + pos: 24.5,39.5 + parent: 588 + - uid: 1311 + components: + - type: Transform + pos: 24.5,38.5 + parent: 588 + - uid: 1312 + components: + - type: Transform + pos: 25.5,38.5 + parent: 588 + - uid: 1313 + components: + - type: Transform + pos: 26.5,38.5 + parent: 588 + - uid: 1314 + components: + - type: Transform + pos: 27.5,38.5 + parent: 588 + - uid: 1315 + components: + - type: Transform + pos: 28.5,38.5 + parent: 588 + - uid: 1316 + components: + - type: Transform + pos: 29.5,38.5 + parent: 588 + - uid: 1317 + components: + - type: Transform + pos: 30.5,38.5 + parent: 588 + - uid: 1318 + components: + - type: Transform + pos: 30.5,39.5 + parent: 588 + - uid: 1426 + components: + - type: Transform + pos: 11.5,42.5 + parent: 588 + - uid: 1427 + components: + - type: Transform + pos: 11.5,43.5 + parent: 588 + - uid: 1428 + components: + - type: Transform + pos: 11.5,44.5 + parent: 588 + - uid: 1429 + components: + - type: Transform + pos: 11.5,45.5 + parent: 588 + - uid: 1430 + components: + - type: Transform + pos: 11.5,46.5 + parent: 588 + - uid: 1431 + components: + - type: Transform + pos: 11.5,47.5 + parent: 588 + - uid: 1432 + components: + - type: Transform + pos: 11.5,48.5 + parent: 588 + - uid: 1433 + components: + - type: Transform + pos: 10.5,45.5 + parent: 588 + - uid: 1434 + components: + - type: Transform + pos: 9.5,45.5 + parent: 588 + - uid: 1435 + components: + - type: Transform + pos: 8.5,45.5 + parent: 588 + - uid: 1436 + components: + - type: Transform + pos: 12.5,45.5 + parent: 588 + - uid: 1437 + components: + - type: Transform + pos: 13.5,45.5 + parent: 588 + - uid: 1438 + components: + - type: Transform + pos: 14.5,45.5 + parent: 588 + - uid: 1439 + components: + - type: Transform + pos: 13.5,46.5 + parent: 588 + - uid: 1440 + components: + - type: Transform + pos: 13.5,47.5 + parent: 588 + - uid: 1441 + components: + - type: Transform + pos: 9.5,46.5 + parent: 588 + - uid: 1442 + components: + - type: Transform + pos: 9.5,47.5 + parent: 588 + - uid: 1443 + components: + - type: Transform + pos: 10.5,43.5 + parent: 588 + - uid: 1444 + components: + - type: Transform + pos: 9.5,43.5 + parent: 588 + - uid: 1445 + components: + - type: Transform + pos: 12.5,43.5 + parent: 588 + - uid: 1446 + components: + - type: Transform + pos: 13.5,43.5 + parent: 588 + - uid: 1447 + components: + - type: Transform + pos: 3.5,42.5 + parent: 588 + - uid: 1448 + components: + - type: Transform + pos: 3.5,43.5 + parent: 588 + - uid: 1449 + components: + - type: Transform + pos: 3.5,44.5 + parent: 588 + - uid: 1450 + components: + - type: Transform + pos: 3.5,45.5 + parent: 588 + - uid: 1451 + components: + - type: Transform + pos: 3.5,46.5 + parent: 588 + - uid: 1452 + components: + - type: Transform + pos: 3.5,47.5 + parent: 588 + - uid: 1453 + components: + - type: Transform + pos: 3.5,48.5 + parent: 588 + - uid: 1454 + components: + - type: Transform + pos: 0.5,45.5 + parent: 588 + - uid: 1455 + components: + - type: Transform + pos: 1.5,45.5 + parent: 588 + - uid: 1456 + components: + - type: Transform + pos: 2.5,45.5 + parent: 588 + - uid: 1457 + components: + - type: Transform + pos: 3.5,45.5 + parent: 588 + - uid: 1458 + components: + - type: Transform + pos: 4.5,45.5 + parent: 588 + - uid: 1459 + components: + - type: Transform + pos: 5.5,45.5 + parent: 588 + - uid: 1460 + components: + - type: Transform + pos: 6.5,45.5 + parent: 588 + - uid: 1529 + components: + - type: Transform + pos: 19.5,47.5 + parent: 588 + - uid: 1530 + components: + - type: Transform + pos: 19.5,48.5 + parent: 588 + - uid: 1531 + components: + - type: Transform + pos: 18.5,48.5 + parent: 588 + - uid: 1532 + components: + - type: Transform + pos: 17.5,48.5 + parent: 588 + - uid: 1533 + components: + - type: Transform + pos: 16.5,48.5 + parent: 588 + - uid: 1534 + components: + - type: Transform + pos: 16.5,47.5 + parent: 588 + - uid: 1535 + components: + - type: Transform + pos: 16.5,46.5 + parent: 588 + - uid: 1536 + components: + - type: Transform + pos: 16.5,45.5 + parent: 588 + - uid: 1537 + components: + - type: Transform + pos: 16.5,44.5 + parent: 588 + - uid: 1538 + components: + - type: Transform + pos: 16.5,43.5 + parent: 588 + - uid: 1539 + components: + - type: Transform + pos: 16.5,42.5 + parent: 588 + - uid: 1540 + components: + - type: Transform + pos: 17.5,42.5 + parent: 588 + - uid: 1541 + components: + - type: Transform + pos: 18.5,42.5 + parent: 588 + - uid: 1542 + components: + - type: Transform + pos: 19.5,42.5 + parent: 588 + - uid: 1543 + components: + - type: Transform + pos: 20.5,42.5 + parent: 588 + - uid: 1544 + components: + - type: Transform + pos: 21.5,42.5 + parent: 588 + - uid: 1545 + components: + - type: Transform + pos: 22.5,42.5 + parent: 588 + - uid: 1546 + components: + - type: Transform + pos: 22.5,43.5 + parent: 588 + - uid: 1547 + components: + - type: Transform + pos: 22.5,44.5 + parent: 588 + - uid: 1548 + components: + - type: Transform + pos: 22.5,45.5 + parent: 588 + - uid: 1549 + components: + - type: Transform + pos: 22.5,46.5 + parent: 588 + - uid: 1550 + components: + - type: Transform + pos: 22.5,47.5 + parent: 588 + - uid: 1551 + components: + - type: Transform + pos: 22.5,48.5 + parent: 588 + - uid: 1552 + components: + - type: Transform + pos: 21.5,48.5 + parent: 588 + - uid: 1553 + components: + - type: Transform + pos: 20.5,48.5 + parent: 588 + - uid: 1554 + components: + - type: Transform + pos: 19.5,43.5 + parent: 588 + - uid: 1555 + components: + - type: Transform + pos: 19.5,44.5 + parent: 588 + - uid: 1556 + components: + - type: Transform + pos: 19.5,45.5 + parent: 588 + - uid: 1557 + components: + - type: Transform + pos: 19.5,46.5 + parent: 588 + - uid: 1807 + components: + - type: Transform + pos: 27.5,42.5 + parent: 588 + - uid: 1808 + components: + - type: Transform + pos: 27.5,43.5 + parent: 588 + - uid: 1809 + components: + - type: Transform + pos: 27.5,44.5 + parent: 588 + - uid: 1810 + components: + - type: Transform + pos: 27.5,45.5 + parent: 588 + - uid: 1811 + components: + - type: Transform + pos: 27.5,46.5 + parent: 588 + - uid: 1812 + components: + - type: Transform + pos: 27.5,47.5 + parent: 588 + - uid: 1813 + components: + - type: Transform + pos: 27.5,48.5 + parent: 588 + - uid: 1814 + components: + - type: Transform + pos: 28.5,45.5 + parent: 588 + - uid: 1815 + components: + - type: Transform + pos: 29.5,45.5 + parent: 588 + - uid: 1816 + components: + - type: Transform + pos: 30.5,45.5 + parent: 588 + - uid: 1817 + components: + - type: Transform + pos: 26.5,45.5 + parent: 588 + - uid: 1818 + components: + - type: Transform + pos: 25.5,45.5 + parent: 588 + - uid: 1819 + components: + - type: Transform + pos: 24.5,45.5 + parent: 588 + - uid: 1820 + components: + - type: Transform + pos: 26.5,47.5 + parent: 588 + - uid: 1821 + components: + - type: Transform + pos: 25.5,47.5 + parent: 588 + - uid: 1822 + components: + - type: Transform + pos: 28.5,47.5 + parent: 588 + - uid: 1823 + components: + - type: Transform + pos: 29.5,47.5 + parent: 588 + - uid: 1824 + components: + - type: Transform + pos: 26.5,43.5 + parent: 588 + - uid: 1825 + components: + - type: Transform + pos: 25.5,43.5 + parent: 588 + - uid: 1826 + components: + - type: Transform + pos: 28.5,43.5 + parent: 588 + - uid: 1827 + components: + - type: Transform + pos: 29.5,43.5 + parent: 588 +- proto: CableApcStack1 + entities: + - uid: 655 + components: + - type: Transform + pos: 16.273203,19.650417 + parent: 588 +- proto: CableHV + entities: + - uid: 462 + components: + - type: Transform + pos: 27.5,13.5 + parent: 588 + - uid: 466 + components: + - type: Transform + pos: 26.5,13.5 + parent: 588 + - uid: 468 + components: + - type: Transform + pos: 28.5,13.5 + parent: 588 + - uid: 485 + components: + - type: Transform + pos: 26.5,15.5 + parent: 588 + - uid: 486 + components: + - type: Transform + pos: 26.5,14.5 + parent: 588 + - uid: 487 + components: + - type: Transform + pos: 27.5,14.5 + parent: 588 + - uid: 488 + components: + - type: Transform + pos: 28.5,14.5 + parent: 588 + - uid: 489 + components: + - type: Transform + pos: 28.5,15.5 + parent: 588 + - uid: 743 + components: + - type: Transform + pos: 26.5,21.5 + parent: 588 + - uid: 744 + components: + - type: Transform + pos: 27.5,21.5 + parent: 588 + - uid: 745 + components: + - type: Transform + pos: 26.5,20.5 + parent: 588 + - uid: 746 + components: + - type: Transform + pos: 25.5,21.5 + parent: 588 + - uid: 768 + components: + - type: Transform + pos: 26.5,19.5 + parent: 588 + - uid: 778 + components: + - type: Transform + pos: 27.5,19.5 + parent: 588 + - uid: 978 + components: + - type: Transform + pos: 16.5,32.5 + parent: 588 + - uid: 979 + components: + - type: Transform + pos: 15.5,31.5 + parent: 588 + - uid: 980 + components: + - type: Transform + pos: 16.5,31.5 + parent: 588 + - uid: 981 + components: + - type: Transform + pos: 17.5,31.5 + parent: 588 + - uid: 982 + components: + - type: Transform + pos: 18.5,31.5 + parent: 588 + - uid: 983 + components: + - type: Transform + pos: 22.5,31.5 + parent: 588 + - uid: 984 + components: + - type: Transform + pos: 23.5,31.5 + parent: 588 + - uid: 985 + components: + - type: Transform + pos: 24.5,31.5 + parent: 588 + - uid: 986 + components: + - type: Transform + pos: 24.5,32.5 + parent: 588 + - uid: 987 + components: + - type: Transform + pos: 25.5,31.5 + parent: 588 + - uid: 989 + components: + - type: Transform + pos: 18.5,32.5 + parent: 588 + - uid: 990 + components: + - type: Transform + pos: 19.5,32.5 + parent: 588 + - uid: 991 + components: + - type: Transform + pos: 20.5,32.5 + parent: 588 + - uid: 992 + components: + - type: Transform + pos: 21.5,32.5 + parent: 588 + - uid: 993 + components: + - type: Transform + pos: 22.5,32.5 + parent: 588 + - uid: 1003 + components: + - type: Transform + pos: 16.5,30.5 + parent: 588 + - uid: 1004 + components: + - type: Transform + pos: 24.5,30.5 + parent: 588 + - uid: 1510 + components: + - type: Transform + pos: 18.5,44.5 + parent: 588 + - uid: 1511 + components: + - type: Transform + pos: 18.5,45.5 + parent: 588 + - uid: 1512 + components: + - type: Transform + pos: 20.5,45.5 + parent: 588 + - uid: 1513 + components: + - type: Transform + pos: 20.5,44.5 + parent: 588 + - uid: 1514 + components: + - type: Transform + pos: 19.5,44.5 + parent: 588 + - uid: 1522 + components: + - type: Transform + pos: 17.5,46.5 + parent: 588 + - uid: 1523 + components: + - type: Transform + pos: 21.5,46.5 + parent: 588 + - uid: 1524 + components: + - type: Transform + pos: 20.5,46.5 + parent: 588 + - uid: 1525 + components: + - type: Transform + pos: 18.5,46.5 + parent: 588 + - uid: 1526 + components: + - type: Transform + pos: 19.5,46.5 + parent: 588 +- proto: CableMV + entities: + - uid: 490 + components: + - type: Transform + pos: 27.5,13.5 + parent: 588 + - uid: 491 + components: + - type: Transform + pos: 26.5,13.5 + parent: 588 + - uid: 492 + components: + - type: Transform + pos: 25.5,13.5 + parent: 588 + - uid: 775 + components: + - type: Transform + pos: 27.5,19.5 + parent: 588 + - uid: 776 + components: + - type: Transform + pos: 26.5,19.5 + parent: 588 + - uid: 777 + components: + - type: Transform + pos: 25.5,19.5 + parent: 588 + - uid: 1527 + components: + - type: Transform + pos: 19.5,46.5 + parent: 588 + - uid: 1528 + components: + - type: Transform + pos: 19.5,47.5 + parent: 588 +- proto: CableTerminal + entities: + - uid: 463 + components: + - type: Transform + pos: 26.5,14.5 + parent: 588 + - uid: 464 + components: + - type: Transform + pos: 27.5,14.5 + parent: 588 + - uid: 465 + components: + - type: Transform + pos: 28.5,14.5 + parent: 588 + - uid: 767 + components: + - type: Transform + pos: 26.5,20.5 + parent: 588 + - uid: 970 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 18.5,31.5 + parent: 588 + - uid: 976 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 22.5,31.5 + parent: 588 + - uid: 1558 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 18.5,45.5 + parent: 588 + - uid: 1559 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 20.5,45.5 + parent: 588 +- proto: Carpet + entities: + - uid: 1632 + components: + - type: Transform + pos: 24.5,0.5 + parent: 588 + - uid: 1633 + components: + - type: Transform + pos: 25.5,0.5 + parent: 588 + - uid: 1634 + components: + - type: Transform + pos: 25.5,1.5 + parent: 588 + - uid: 1635 + components: + - type: Transform + pos: 24.5,1.5 + parent: 588 +- proto: CarpetBlue + entities: + - uid: 1636 + components: + - type: Transform + pos: 27.5,0.5 + parent: 588 + - uid: 1637 + components: + - type: Transform + pos: 28.5,1.5 + parent: 588 + - uid: 1638 + components: + - type: Transform + pos: 27.5,1.5 + parent: 588 + - uid: 1639 + components: + - type: Transform + pos: 28.5,0.5 + parent: 588 +- proto: CarpetPurple + entities: + - uid: 1626 + components: + - type: Transform + pos: 25.5,4.5 + parent: 588 + - uid: 1627 + components: + - type: Transform + pos: 25.5,3.5 + parent: 588 + - uid: 1628 + components: + - type: Transform + pos: 26.5,3.5 + parent: 588 + - uid: 1629 + components: + - type: Transform + pos: 27.5,3.5 + parent: 588 + - uid: 1630 + components: + - type: Transform + pos: 27.5,4.5 + parent: 588 + - uid: 1631 + components: + - type: Transform + pos: 26.5,4.5 + parent: 588 +- proto: Catwalk + entities: + - uid: 141 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 6.5,24.5 + parent: 588 + - uid: 142 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 6.5,26.5 + parent: 588 + - uid: 143 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 6.5,25.5 + parent: 588 + - uid: 248 + components: + - type: Transform + pos: 8.5,4.5 + parent: 588 + - uid: 249 + components: + - type: Transform + pos: 8.5,2.5 + parent: 588 + - uid: 250 + components: + - type: Transform + pos: 8.5,3.5 + parent: 588 + - uid: 251 + components: + - type: Transform + pos: 8.5,1.5 + parent: 588 + - uid: 471 + components: + - type: Transform + pos: 27.5,14.5 + parent: 588 + - uid: 473 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 29.5,12.5 + parent: 588 + - uid: 474 + components: + - type: Transform + pos: 28.5,14.5 + parent: 588 + - uid: 475 + components: + - type: Transform + pos: 26.5,14.5 + parent: 588 + - uid: 512 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 25.5,12.5 + parent: 588 + - uid: 513 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 28.5,12.5 + parent: 588 + - uid: 515 + components: + - type: Transform + pos: 25.5,16.5 + parent: 588 + - uid: 516 + components: + - type: Transform + pos: 26.5,16.5 + parent: 588 + - uid: 517 + components: + - type: Transform + pos: 27.5,16.5 + parent: 588 + - uid: 518 + components: + - type: Transform + pos: 28.5,16.5 + parent: 588 + - uid: 519 + components: + - type: Transform + pos: 29.5,16.5 + parent: 588 + - uid: 520 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 27.5,12.5 + parent: 588 + - uid: 521 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 26.5,12.5 + parent: 588 + - uid: 769 + components: + - type: Transform + pos: 26.5,20.5 + parent: 588 + - uid: 832 + components: + - type: Transform + pos: 3.5,31.5 + parent: 588 + - uid: 833 + components: + - type: Transform + pos: 4.5,31.5 + parent: 588 + - uid: 834 + components: + - type: Transform + pos: 5.5,31.5 + parent: 588 + - uid: 835 + components: + - type: Transform + pos: 6.5,31.5 + parent: 588 + - uid: 836 + components: + - type: Transform + pos: 7.5,31.5 + parent: 588 + - uid: 837 + components: + - type: Transform + pos: 8.5,31.5 + parent: 588 + - uid: 838 + components: + - type: Transform + pos: 9.5,31.5 + parent: 588 + - uid: 839 + components: + - type: Transform + pos: 6.5,32.5 + parent: 588 + - uid: 840 + components: + - type: Transform + pos: 6.5,30.5 + parent: 588 + - uid: 841 + components: + - type: Transform + pos: 5.5,32.5 + parent: 588 + - uid: 842 + components: + - type: Transform + pos: 7.5,32.5 + parent: 588 + - uid: 843 + components: + - type: Transform + pos: 5.5,30.5 + parent: 588 + - uid: 844 + components: + - type: Transform + pos: 7.5,30.5 + parent: 588 + - uid: 861 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 6.5,27.5 + parent: 588 + - uid: 862 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 6.5,28.5 + parent: 588 + - uid: 863 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 4.5,28.5 + parent: 588 + - uid: 864 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 4.5,27.5 + parent: 588 + - uid: 865 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 4.5,26.5 + parent: 588 + - uid: 879 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 3.5,40.5 + parent: 588 + - uid: 880 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 3.5,39.5 + parent: 588 + - uid: 881 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 2.5,39.5 + parent: 588 + - uid: 882 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 1.5,39.5 + parent: 588 + - uid: 883 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 4.5,39.5 + parent: 588 + - uid: 884 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 5.5,39.5 + parent: 588 + - uid: 885 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 3.5,38.5 + parent: 588 + - uid: 914 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 3.5,10.5 + parent: 588 + - uid: 915 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 4.5,10.5 + parent: 588 + - uid: 916 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 5.5,10.5 + parent: 588 + - uid: 917 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 6.5,10.5 + parent: 588 + - uid: 918 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 7.5,10.5 + parent: 588 + - uid: 919 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 3.5,6.5 + parent: 588 + - uid: 920 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 4.5,6.5 + parent: 588 + - uid: 921 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 5.5,6.5 + parent: 588 + - uid: 922 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 6.5,6.5 + parent: 588 + - uid: 923 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 7.5,6.5 + parent: 588 + - uid: 955 + components: + - type: Transform + pos: 15.5,31.5 + parent: 588 + - uid: 956 + components: + - type: Transform + pos: 16.5,31.5 + parent: 588 + - uid: 957 + components: + - type: Transform + pos: 17.5,31.5 + parent: 588 + - uid: 958 + components: + - type: Transform + pos: 18.5,31.5 + parent: 588 + - uid: 959 + components: + - type: Transform + pos: 19.5,31.5 + parent: 588 + - uid: 960 + components: + - type: Transform + pos: 20.5,31.5 + parent: 588 + - uid: 961 + components: + - type: Transform + pos: 21.5,31.5 + parent: 588 + - uid: 962 + components: + - type: Transform + pos: 22.5,31.5 + parent: 588 + - uid: 963 + components: + - type: Transform + pos: 23.5,31.5 + parent: 588 + - uid: 964 + components: + - type: Transform + pos: 24.5,31.5 + parent: 588 + - uid: 965 + components: + - type: Transform + pos: 25.5,31.5 + parent: 588 + - uid: 994 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 20.5,32.5 + parent: 588 + - uid: 1158 + components: + - type: Transform + pos: 8.5,0.5 + parent: 588 + - uid: 1180 + components: + - type: Transform + pos: 1.5,36.5 + parent: 588 + - uid: 1181 + components: + - type: Transform + pos: 2.5,36.5 + parent: 588 + - uid: 1182 + components: + - type: Transform + pos: 3.5,36.5 + parent: 588 + - uid: 1183 + components: + - type: Transform + pos: 4.5,36.5 + parent: 588 + - uid: 1184 + components: + - type: Transform + pos: 5.5,36.5 + parent: 588 + - uid: 1185 + components: + - type: Transform + pos: 5.5,34.5 + parent: 588 + - uid: 1186 + components: + - type: Transform + pos: 6.5,34.5 + parent: 588 + - uid: 1187 + components: + - type: Transform + pos: 7.5,34.5 + parent: 588 + - uid: 1188 + components: + - type: Transform + pos: 8.5,34.5 + parent: 588 + - uid: 1189 + components: + - type: Transform + pos: 9.5,34.5 + parent: 588 + - uid: 1320 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 27.5,40.5 + parent: 588 + - uid: 1321 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 26.5,40.5 + parent: 588 + - uid: 1322 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 25.5,40.5 + parent: 588 + - uid: 1323 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 25.5,38.5 + parent: 588 + - uid: 1324 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 26.5,38.5 + parent: 588 + - uid: 1325 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 27.5,38.5 + parent: 588 + - uid: 1326 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 28.5,38.5 + parent: 588 + - uid: 1327 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 29.5,38.5 + parent: 588 + - uid: 1331 + components: + - type: Transform + pos: 4.5,45.5 + parent: 588 + - uid: 1336 + components: + - type: Transform + pos: 2.5,45.5 + parent: 588 + - uid: 1339 + components: + - type: Transform + pos: 3.5,45.5 + parent: 588 + - uid: 1342 + components: + - type: Transform + pos: 3.5,46.5 + parent: 588 + - uid: 1344 + components: + - type: Transform + pos: 3.5,44.5 + parent: 588 + - uid: 1346 + components: + - type: Transform + pos: 2.5,44.5 + parent: 588 + - uid: 1347 + components: + - type: Transform + pos: 4.5,44.5 + parent: 588 + - uid: 1348 + components: + - type: Transform + pos: 4.5,44.5 + parent: 588 + - uid: 1349 + components: + - type: Transform + pos: 4.5,46.5 + parent: 588 + - uid: 1350 + components: + - type: Transform + pos: 2.5,46.5 + parent: 588 + - uid: 1494 + components: + - type: Transform + pos: 17.5,42.5 + parent: 588 + - uid: 1495 + components: + - type: Transform + pos: 18.5,42.5 + parent: 588 + - uid: 1496 + components: + - type: Transform + pos: 19.5,42.5 + parent: 588 + - uid: 1497 + components: + - type: Transform + pos: 20.5,42.5 + parent: 588 + - uid: 1498 + components: + - type: Transform + pos: 21.5,42.5 + parent: 588 + - uid: 1499 + components: + - type: Transform + pos: 17.5,48.5 + parent: 588 + - uid: 1500 + components: + - type: Transform + pos: 18.5,48.5 + parent: 588 + - uid: 1501 + components: + - type: Transform + pos: 19.5,48.5 + parent: 588 + - uid: 1502 + components: + - type: Transform + pos: 20.5,48.5 + parent: 588 + - uid: 1503 + components: + - type: Transform + pos: 21.5,48.5 + parent: 588 + - uid: 1516 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 19.5,44.5 + parent: 588 + - uid: 1517 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 19.5,45.5 + parent: 588 + - uid: 1518 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 18.5,45.5 + parent: 588 + - uid: 1519 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 20.5,45.5 + parent: 588 + - uid: 1582 + components: + - type: Transform + pos: 28.5,22.5 + parent: 588 + - uid: 1583 + components: + - type: Transform + pos: 28.5,21.5 + parent: 588 + - uid: 1584 + components: + - type: Transform + pos: 28.5,20.5 + parent: 588 + - uid: 1585 + components: + - type: Transform + pos: 28.5,19.5 + parent: 588 + - uid: 1586 + components: + - type: Transform + pos: 28.5,18.5 + parent: 588 + - uid: 1587 + components: + - type: Transform + pos: 24.5,22.5 + parent: 588 + - uid: 1588 + components: + - type: Transform + pos: 24.5,21.5 + parent: 588 + - uid: 1589 + components: + - type: Transform + pos: 24.5,20.5 + parent: 588 + - uid: 1590 + components: + - type: Transform + pos: 24.5,19.5 + parent: 588 + - uid: 1591 + components: + - type: Transform + pos: 24.5,18.5 + parent: 588 +- proto: Cautery + entities: + - uid: 1474 + components: + - type: Transform + pos: 8.533231,42.775993 + parent: 588 +- proto: Chair + entities: + - uid: 357 + components: + - type: Transform + pos: 23.5,4.5 + parent: 588 + - uid: 421 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 14.5,9.5 + parent: 588 + - uid: 422 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 20.5,9.5 + parent: 588 + - uid: 423 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 20.5,7.5 + parent: 588 + - uid: 533 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 19.5,14.5 + parent: 588 + - uid: 534 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 19.5,15.5 + parent: 588 + - uid: 537 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 21.5,14.5 + parent: 588 + - uid: 569 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 11.5,13.5 + parent: 588 + - uid: 716 + components: + - type: Transform + pos: 18.5,19.5 + parent: 588 + - uid: 717 + components: + - type: Transform + pos: 19.5,19.5 + parent: 588 + - uid: 718 + components: + - type: Transform + pos: 22.5,19.5 + parent: 588 + - uid: 719 + components: + - type: Transform + pos: 21.5,19.5 + parent: 588 + - uid: 1280 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 17.5,38.5 + parent: 588 + - uid: 1281 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 18.5,38.5 + parent: 588 + - uid: 1282 + components: + - type: Transform + pos: 20.5,40.5 + parent: 588 + - uid: 1283 + components: + - type: Transform + pos: 21.5,40.5 + parent: 588 + - uid: 1865 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 14.5,7.5 + parent: 588 +- proto: ChairFolding + entities: + - uid: 344 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 31.5,0.5 + parent: 588 + - uid: 345 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 32.5,1.5 + parent: 588 + - uid: 346 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 32.5,0.5 + parent: 588 + - uid: 347 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 31.5,3.5 + parent: 588 + - uid: 348 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 32.5,3.5 + parent: 588 + - uid: 349 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 31.5,4.5 + parent: 588 + - uid: 350 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 33.5,1.5 + parent: 588 + - uid: 351 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 33.5,0.5 + parent: 588 + - uid: 352 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 33.5,4.5 + parent: 588 + - uid: 353 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 32.5,4.5 + parent: 588 + - uid: 1212 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 7.5,36.5 + parent: 588 +- proto: ChairFoldingSpawnFolded + entities: + - uid: 354 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 31.53707,1.6455604 + parent: 588 + - uid: 355 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 33.595894,3.4052575 + parent: 588 +- proto: ChairOfficeDark + entities: + - uid: 330 + components: + - type: Transform + pos: 19.5,1.5 + parent: 588 + - uid: 331 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 20.5,3.5 + parent: 588 + - uid: 358 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 24.5,0.5 + parent: 588 + - uid: 359 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 25.5,0.5 + parent: 588 + - uid: 360 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 28.5,0.5 + parent: 588 + - uid: 361 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 27.5,0.5 + parent: 588 + - uid: 571 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 13.5,12.5 + parent: 588 +- proto: ChairOfficeLight + entities: + - uid: 631 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 9.5,19.5 + parent: 588 + - uid: 638 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 7.5,21.5 + parent: 588 + - uid: 707 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 15.5,21.5 + parent: 588 +- proto: ChairPilotSeat + entities: + - uid: 356 + components: + - type: Transform + pos: 26.5,4.5 + parent: 588 +- proto: ChairWood + entities: + - uid: 1049 + components: + - type: Transform + pos: 20.5,25.5 + parent: 588 + - uid: 1050 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 22.5,27.5 + parent: 588 + - uid: 1231 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 21.5,34.5 + parent: 588 + - uid: 1232 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 13.5,36.5 + parent: 588 + - uid: 1790 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 25.5,46.5 + parent: 588 + - uid: 1791 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 25.5,44.5 + parent: 588 +- proto: CigarGold + entities: + - uid: 1219 + components: + - type: Transform + pos: 7.4719925,36.539555 + parent: 588 +- proto: ClosetBombFilled + entities: + - uid: 413 + components: + - type: Transform + pos: 14.5,6.5 + parent: 588 + - uid: 1014 + components: + - type: Transform + pos: 12.5,27.5 + parent: 588 + - uid: 1026 + components: + - type: Transform + pos: 16.5,27.5 + parent: 588 +- proto: ClosetEmergencyFilledRandom + entities: + - uid: 1203 + components: + - type: Transform + pos: 12.5,30.5 + parent: 588 + - uid: 1204 + components: + - type: Transform + pos: 0.5,32.5 + parent: 588 + - uid: 1205 + components: + - type: Transform + pos: 9.5,9.5 + parent: 588 + - uid: 1207 + components: + - type: Transform + pos: 1.5,7.5 + parent: 588 +- proto: ClosetFireFilled + entities: + - uid: 1194 + components: + - type: Transform + pos: 1.5,9.5 + parent: 588 + - uid: 1195 + components: + - type: Transform + pos: 9.5,7.5 + parent: 588 + - uid: 1196 + components: + - type: Transform + pos: 6.5,40.5 + parent: 588 + - uid: 1197 + components: + - type: Transform + pos: 0.5,38.5 + parent: 588 +- proto: ClosetL3SecurityFilled + entities: + - uid: 415 + components: + - type: Transform + pos: 20.5,10.5 + parent: 588 +- proto: ClosetToolFilled + entities: + - uid: 1007 + components: + - type: Transform + pos: 14.5,30.5 + parent: 588 +- proto: ClosetWallMaintenanceFilledRandom + entities: + - uid: 499 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 25.5,15.5 + parent: 588 + - uid: 868 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 5.5,27.5 + parent: 588 + - uid: 1564 + components: + - type: Transform + pos: 17.5,43.5 + parent: 588 + - uid: 1565 + components: + - type: Transform + pos: 21.5,43.5 + parent: 588 +- proto: ClothingBeltChampion + entities: + - uid: 1236 + components: + - type: Transform + pos: 10.581136,39.53631 + parent: 588 +- proto: ClothingEyesGlassesMeson + entities: + - uid: 1108 + components: + - type: Transform + pos: 25.666832,30.643515 + parent: 588 +- proto: ClothingHandsGlovesNitrile + entities: + - uid: 1715 + components: + - type: Transform + pos: 10.432637,44.476112 + parent: 588 +- proto: ClothingHeadBandRed + entities: + - uid: 1295 + components: + - type: Transform + pos: 12.571781,39.694115 + parent: 588 +- proto: ClothingHeadHatFedoraBrown + entities: + - uid: 577 + components: + - type: Transform + pos: 12.686508,13.58602 + parent: 588 +- proto: ClothingHeadHatPwig + entities: + - uid: 369 + components: + - type: Transform + pos: 25.824945,3.5783403 + parent: 588 +- proto: ClothingHeadHatSecsoftFlipped + entities: + - uid: 606 + components: + - type: Transform + pos: 12.705482,6.671774 + parent: 588 + - uid: 1027 + components: + - type: Transform + pos: 18.403675,25.53719 + parent: 588 +- proto: ClothingHeadHatSurgcapPurple + entities: + - uid: 1711 + components: + - type: Transform + pos: 10.304593,44.632217 + parent: 588 +- proto: ClothingHeadHelmetRiot + entities: + - uid: 1617 + components: + - type: Transform + pos: 22.499683,6.7142525 + parent: 588 +- proto: ClothingHeadHelmetThunderdome + entities: + - uid: 1240 + components: + - type: Transform + pos: 34.666565,24.66942 + parent: 588 +- proto: ClothingNeckLawyerbadge + entities: + - uid: 326 + components: + - type: Transform + pos: 21.586027,4.583762 + parent: 588 +- proto: ClothingNeckTieDet + entities: + - uid: 573 + components: + - type: Transform + pos: 12.714905,13.486683 + parent: 588 +- proto: ClothingOuterArmorReflective + entities: + - uid: 1031 + components: + - type: Transform + pos: 18.47467,24.458666 + parent: 588 +- proto: ClothingOuterCoatDetectiveLoadout + entities: + - uid: 574 + components: + - type: Transform + pos: 13.396446,12.479115 + parent: 588 +- proto: ClothingOuterRobesJudge + entities: + - uid: 370 + components: + - type: Transform + pos: 27.40101,3.677678 + parent: 588 +- proto: ClothingShoesBootsCombatFilled + entities: + - uid: 1036 + components: + - type: Transform + pos: 12.582174,25.636528 + parent: 588 +- proto: ClothingShoesBootsLaceup + entities: + - uid: 372 + components: + - type: Transform + pos: 18.586912,0.70824456 + parent: 588 +- proto: ClothingUniformJumpskirtColorMaroon + entities: + - uid: 1714 + components: + - type: Transform + pos: 10.673761,44.53288 + parent: 588 +- proto: ClothingUniformJumpsuitColorMaroon + entities: + - uid: 1713 + components: + - type: Transform + pos: 10.645364,44.67479 + parent: 588 +- proto: ClusterBangFull + entities: + - uid: 599 + components: + - type: Transform + pos: 33.484257,28.42918 + parent: 588 +- proto: ComputerAlert + entities: + - uid: 999 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 17.5,30.5 + parent: 588 + - uid: 1001 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 23.5,30.5 + parent: 588 + - uid: 1561 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 21.5,46.5 + parent: 588 +- proto: computerBodyScanner + entities: + - uid: 1394 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 9.5,44.5 + parent: 588 + - uid: 1423 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 13.5,44.5 + parent: 588 +- proto: ComputerCriminalRecords + entities: + - uid: 461 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 11.5,0.5 + parent: 588 + - uid: 634 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 9.5,18.5 + parent: 588 +- proto: ComputerPowerMonitoring + entities: + - uid: 1000 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 16.5,30.5 + parent: 588 + - uid: 1002 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 24.5,30.5 + parent: 588 + - uid: 1560 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 17.5,46.5 + parent: 588 +- proto: ComputerSurveillanceCameraMonitor + entities: + - uid: 635 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 6.5,21.5 + parent: 588 +- proto: ComputerTelevision + entities: + - uid: 1229 + components: + - type: Transform + pos: 12.5,34.5 + parent: 588 + - uid: 1230 + components: + - type: Transform + pos: 22.5,36.5 + parent: 588 +- proto: CrateEngineeringGear + entities: + - uid: 1008 + components: + - type: Transform + pos: 26.5,30.5 + parent: 588 +- proto: CrateFunBoardGames + entities: + - uid: 1845 + components: + - type: Transform + pos: 26.5,48.5 + parent: 588 +- proto: CrateFunParty + entities: + - uid: 1876 + components: + - type: Transform + pos: 25.5,43.5 + parent: 588 +- proto: CrateHydroponicsSeedsExotic + entities: + - uid: 1660 + components: + - type: Transform + pos: 31.5,22.5 + parent: 588 +- proto: CrayonBox + entities: + - uid: 1057 + components: + - type: Transform + pos: 20.47107,24.608877 + parent: 588 + - uid: 1116 + components: + - type: Transform + pos: 20.607256,14.646415 + parent: 588 +- proto: CryoPod + entities: + - uid: 1395 + components: + - type: Transform + pos: 8.5,47.5 + parent: 588 + - uid: 1397 + components: + - type: Transform + pos: 14.5,47.5 + parent: 588 +- proto: DebugSMES + entities: + - uid: 971 + components: + - type: Transform + pos: 22.5,32.5 + parent: 588 + - uid: 974 + components: + - type: Transform + pos: 18.5,32.5 + parent: 588 +- proto: DeployableBarrier + entities: + - uid: 1233 + components: + - type: Transform + pos: 32.5,24.5 + parent: 588 +- proto: DiceBag + entities: + - uid: 552 + components: + - type: Transform + pos: 20.294882,15.426926 + parent: 588 +- proto: DiseaseDiagnoser + entities: + - uid: 1424 + components: + - type: Transform + pos: 14.5,44.5 + parent: 588 +- proto: DisposalUnit + entities: + - uid: 550 + components: + - type: Transform + pos: 22.5,16.5 + parent: 588 + - uid: 725 + components: + - type: Transform + pos: 21.5,22.5 + parent: 588 + - uid: 766 + components: + - type: Transform + pos: 9.5,22.5 + parent: 588 + - uid: 1288 + components: + - type: Transform + pos: 22.5,38.5 + parent: 588 +- proto: DonkpocketBoxSpawner + entities: + - uid: 526 + components: + - type: Transform + pos: 16.5,13.5 + parent: 588 + - uid: 723 + components: + - type: Transform + pos: 18.5,21.5 + parent: 588 +- proto: DoorElectronics + entities: + - uid: 659 + components: + - type: Transform + pos: 12.581519,21.410114 + parent: 588 + - uid: 1074 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 25.639427,25.54549 + parent: 588 +- proto: Dresser + entities: + - uid: 1051 + components: + - type: Transform + pos: 22.5,25.5 + parent: 588 + - uid: 1052 + components: + - type: Transform + pos: 20.5,27.5 + parent: 588 + - uid: 1061 + components: + - type: Transform + pos: 24.5,25.5 + parent: 588 + - uid: 1221 + components: + - type: Transform + pos: 21.5,36.5 + parent: 588 + - uid: 1222 + components: + - type: Transform + pos: 13.5,34.5 + parent: 588 +- proto: DrinkDetFlask + entities: + - uid: 1577 + components: + - type: Transform + pos: 12.606661,13.037249 + parent: 588 +- proto: DrinkMugMetal + entities: + - uid: 1294 + components: + - type: Transform + pos: 22.442232,12.514399 + parent: 588 +- proto: DrinkMugRed + entities: + - uid: 721 + components: + - type: Transform + pos: 22.448559,18.561966 + parent: 588 + - uid: 1293 + components: + - type: Transform + pos: 22.328642,12.741456 + parent: 588 +- proto: DrinkShinyFlask + entities: + - uid: 1874 + components: + - type: Transform + pos: 6.890398,22.663696 + parent: 588 +- proto: DrinkShotGlass + entities: + - uid: 578 + components: + - type: Transform + pos: 12.412022,12.535878 + parent: 588 + - uid: 579 + components: + - type: Transform + pos: 12.539811,12.748745 + parent: 588 +- proto: DrinkWaterCup + entities: + - uid: 722 + components: + - type: Transform + pos: 18.373508,18.661304 + parent: 588 + - uid: 762 + components: + - type: Transform + pos: 6.313587,19.590261 + parent: 588 + - uid: 763 + components: + - type: Transform + pos: 6.441377,19.419968 + parent: 588 +- proto: EmergencyLight + entities: + - uid: 1716 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 13.5,6.5 + parent: 588 + - type: PointLight + enabled: True + - uid: 1717 + components: + - type: Transform + pos: 21.5,10.5 + parent: 588 + - type: PointLight + enabled: True + - uid: 1718 + components: + - type: Transform + pos: 30.5,4.5 + parent: 588 + - type: PointLight + enabled: True + - uid: 1719 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 13.5,0.5 + parent: 588 + - type: PointLight + enabled: True + - uid: 1720 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 3.5,0.5 + parent: 588 + - type: PointLight + enabled: True + - uid: 1721 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 1.5,12.5 + parent: 588 + - type: PointLight + enabled: True + - uid: 1722 + components: + - type: Transform + pos: 18.5,16.5 + parent: 588 + - type: PointLight + enabled: True + - uid: 1723 + components: + - type: Transform + pos: 31.5,22.5 + parent: 588 + - type: PointLight + enabled: True + - uid: 1724 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 34.5,25.5 + parent: 588 + - type: PointLight + enabled: True + - uid: 1726 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 30.5,25.5 + parent: 588 + - type: PointLight + enabled: True + - uid: 1727 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 26.5,27.5 + parent: 588 + - type: PointLight + enabled: True + - uid: 1728 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 20.5,27.5 + parent: 588 + - type: PointLight + enabled: True + - uid: 1729 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 18.5,27.5 + parent: 588 + - type: PointLight + enabled: True + - uid: 1730 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 12.5,25.5 + parent: 588 + - type: PointLight + enabled: True + - uid: 1731 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 0.5,7.5 + parent: 588 + - type: PointLight + enabled: True + - uid: 1732 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 10.5,9.5 + parent: 588 + - type: PointLight + enabled: True + - uid: 1733 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 4.5,20.5 + parent: 588 + - type: PointLight + enabled: True + - uid: 1734 + components: + - type: Transform + pos: 1.5,24.5 + parent: 588 + - type: PointLight + enabled: True + - uid: 1735 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 1.5,30.5 + parent: 588 + - type: PointLight + enabled: True + - uid: 1736 + components: + - type: Transform + pos: 11.5,32.5 + parent: 588 + - type: PointLight + enabled: True + - uid: 1737 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 6.5,40.5 + parent: 588 + - type: PointLight + enabled: True + - uid: 1738 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 8.5,40.5 + parent: 588 + - type: PointLight + enabled: True + - uid: 1739 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 22.5,30.5 + parent: 588 + - type: PointLight + enabled: True + - uid: 1740 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 6.5,19.5 + parent: 588 + - type: PointLight + enabled: True + - uid: 1742 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 16.5,21.5 + parent: 588 + - type: PointLight + enabled: True + - uid: 1744 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 19.5,18.5 + parent: 588 + - type: PointLight + enabled: True + - uid: 1745 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 16.5,34.5 + parent: 588 + - type: PointLight + enabled: True + - uid: 1746 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 30.5,34.5 + parent: 588 + - type: PointLight + enabled: True + - uid: 1747 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 20.5,38.5 + parent: 588 + - type: PointLight + enabled: True + - uid: 1748 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 20.5,44.5 + parent: 588 + - type: PointLight + enabled: True + - uid: 1749 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 8.5,44.5 + parent: 588 + - type: PointLight + enabled: True + - uid: 1750 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 5.5,46.5 + parent: 588 + - type: PointLight + enabled: True + - uid: 1751 + components: + - type: Transform + pos: 30.5,6.5 + parent: 588 + - type: PointLight + enabled: True + - uid: 1752 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 28.5,10.5 + parent: 588 + - type: PointLight + enabled: True + - uid: 1832 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 30.5,46.5 + parent: 588 + - type: PointLight + enabled: True +- proto: EmergencyRollerBed + entities: + - uid: 1141 + components: + - type: Transform + pos: 30.5,25.5 + parent: 588 + - uid: 1142 + components: + - type: Transform + pos: 30.5,24.5 + parent: 588 +- proto: ExtinguisherCabinetFilled + entities: + - uid: 867 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 5.5,26.5 + parent: 588 + - uid: 1198 + components: + - type: Transform + pos: 2.5,8.5 + parent: 588 + - uid: 1199 + components: + - type: Transform + pos: 8.5,8.5 + parent: 588 + - uid: 1200 + components: + - type: Transform + pos: 8.5,35.5 + parent: 588 + - uid: 1201 + components: + - type: Transform + pos: 1.5,35.5 + parent: 588 + - uid: 1202 + components: + - type: Transform + pos: 25.5,14.5 + parent: 588 + - uid: 1328 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 28.5,39.5 + parent: 588 + - uid: 1566 + components: + - type: Transform + pos: 17.5,44.5 + parent: 588 +- proto: filingCabinetRandom + entities: + - uid: 320 + components: + - type: Transform + pos: 21.5,0.5 + parent: 588 + - uid: 321 + components: + - type: Transform + pos: 20.5,0.5 + parent: 588 +- proto: filingCabinetTallRandom + entities: + - uid: 1396 + components: + - type: Transform + pos: 8.5,44.5 + parent: 588 +- proto: Flash + entities: + - uid: 1209 + components: + - type: Transform + pos: 10.726851,19.047483 + parent: 588 +- proto: FlashlightSeclite + entities: + - uid: 374 + components: + - type: Transform + pos: 13.377204,0.54605544 + parent: 588 +- proto: FloodlightBroken + entities: + - uid: 1193 + components: + - type: Transform + pos: 9.462372,35.6454 + parent: 588 +- proto: FloorDrain + entities: + - uid: 944 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 8.5,28.5 + parent: 588 + - type: Fixtures + fixtures: {} + - uid: 945 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 10.5,28.5 + parent: 588 + - type: Fixtures + fixtures: {} +- proto: FloorLavaEntity + entities: + - uid: 47 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 5.5,8.5 + parent: 588 + - uid: 49 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 6.5,8.5 + parent: 588 + - uid: 458 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 5.5,10.5 + parent: 588 + - uid: 459 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 4.5,8.5 + parent: 588 + - uid: 460 + components: + - type: Transform + pos: 8.5,3.5 + parent: 588 + - uid: 645 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 2.5,20.5 + parent: 588 + - uid: 820 + components: + - type: Transform + pos: 4.5,32.5 + parent: 588 + - uid: 821 + components: + - type: Transform + pos: 4.5,31.5 + parent: 588 + - uid: 822 + components: + - type: Transform + pos: 5.5,31.5 + parent: 588 + - uid: 823 + components: + - type: Transform + pos: 5.5,32.5 + parent: 588 + - uid: 824 + components: + - type: Transform + pos: 5.5,30.5 + parent: 588 + - uid: 825 + components: + - type: Transform + pos: 6.5,30.5 + parent: 588 + - uid: 826 + components: + - type: Transform + pos: 7.5,30.5 + parent: 588 + - uid: 827 + components: + - type: Transform + pos: 6.5,32.5 + parent: 588 + - uid: 828 + components: + - type: Transform + pos: 7.5,32.5 + parent: 588 + - uid: 829 + components: + - type: Transform + pos: 7.5,31.5 + parent: 588 + - uid: 830 + components: + - type: Transform + pos: 6.5,31.5 + parent: 588 + - uid: 831 + components: + - type: Transform + pos: 8.5,30.5 + parent: 588 + - uid: 857 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 2.5,39.5 + parent: 588 + - uid: 858 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 3.5,39.5 + parent: 588 + - uid: 859 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 3.5,38.5 + parent: 588 + - uid: 860 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 3.5,40.5 + parent: 588 + - uid: 887 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 4.5,40.5 + parent: 588 + - uid: 889 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 4.5,39.5 + parent: 588 + - uid: 906 + components: + - type: Transform + pos: 4.5,7.5 + parent: 588 + - uid: 907 + components: + - type: Transform + pos: 5.5,7.5 + parent: 588 + - uid: 908 + components: + - type: Transform + pos: 5.5,9.5 + parent: 588 + - uid: 909 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 5.5,6.5 + parent: 588 + - uid: 910 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 4.5,6.5 + parent: 588 + - uid: 911 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 6.5,9.5 + parent: 588 + - uid: 913 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 6.5,10.5 + parent: 588 + - uid: 1247 + components: + - type: Transform + pos: 8.5,4.5 + parent: 588 + - uid: 1248 + components: + - type: Transform + pos: 9.5,4.5 + parent: 588 + - uid: 1249 + components: + - type: Transform + pos: 8.5,2.5 + parent: 588 + - uid: 1250 + components: + - type: Transform + pos: 8.5,1.5 + parent: 588 + - uid: 1251 + components: + - type: Transform + pos: 9.5,1.5 + parent: 588 + - uid: 1252 + components: + - type: Transform + pos: 8.5,1.5 + parent: 588 + - uid: 1253 + components: + - type: Transform + pos: 8.5,0.5 + parent: 588 + - uid: 1254 + components: + - type: Transform + pos: 7.5,0.5 + parent: 588 + - uid: 1333 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 2.5,46.5 + parent: 588 + - uid: 1341 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 3.5,45.5 + parent: 588 + - uid: 1343 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 3.5,46.5 + parent: 588 + - uid: 1345 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 1.5,46.5 + parent: 588 + - uid: 1359 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 1.5,47.5 + parent: 588 + - uid: 1360 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 4.5,46.5 + parent: 588 + - uid: 1361 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 4.5,47.5 + parent: 588 + - uid: 1362 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 5.5,47.5 + parent: 588 + - uid: 1363 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 2.5,44.5 + parent: 588 + - uid: 1364 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 2.5,47.5 + parent: 588 + - uid: 1365 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 3.5,44.5 + parent: 588 + - uid: 1366 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 4.5,45.5 + parent: 588 + - uid: 1367 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 4.5,44.5 + parent: 588 + - uid: 1368 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 4.5,43.5 + parent: 588 + - uid: 1369 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 5.5,43.5 + parent: 588 + - uid: 1370 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 5.5,42.5 + parent: 588 + - uid: 1371 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 6.5,42.5 + parent: 588 + - uid: 1372 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 6.5,43.5 + parent: 588 + - uid: 1373 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 5.5,44.5 + parent: 588 + - uid: 1374 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 5.5,46.5 + parent: 588 + - uid: 1375 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 2.5,43.5 + parent: 588 +- proto: FoodBowlBigTrash + entities: + - uid: 1840 + components: + - type: Transform + pos: 30.547388,48.16116 + parent: 588 +- proto: FoodBurgerMime + entities: + - uid: 399 + components: + - type: Transform + pos: 10.958169,39.64943 + parent: 588 +- proto: FoodPlateSmallPlastic + entities: + - uid: 529 + components: + - type: Transform + pos: 17.462528,12.615073 + parent: 588 +- proto: FoodPlateTrash + entities: + - uid: 1692 + components: + - type: Transform + pos: 28.80027,47.44947 + parent: 588 +- proto: ForensicPad + entities: + - uid: 761 + components: + - type: Transform + pos: 7.562898,22.48225 + parent: 588 +- proto: ForkPlastic + entities: + - uid: 531 + components: + - type: Transform + pos: 17.405733,12.600882 + parent: 588 +- proto: GasFilter + entities: + - uid: 1415 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 12.5,47.5 + parent: 588 +- proto: GasPipeBend + entities: + - uid: 1412 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 8.5,46.5 + parent: 588 + - uid: 1414 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 14.5,46.5 + parent: 588 + - uid: 1416 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 11.5,47.5 + parent: 588 + - uid: 1421 + components: + - type: Transform + pos: 13.5,47.5 + parent: 588 +- proto: GasPipeStraight + entities: + - uid: 1418 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 10.5,47.5 + parent: 588 + - uid: 1420 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 12.5,46.5 + parent: 588 +- proto: GasPipeTJunction + entities: + - uid: 1410 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 9.5,46.5 + parent: 588 + - uid: 1411 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 13.5,46.5 + parent: 588 + - uid: 1417 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 10.5,46.5 + parent: 588 + - uid: 1419 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 11.5,46.5 + parent: 588 +- proto: GasPort + entities: + - uid: 1404 + components: + - type: Transform + pos: 9.5,48.5 + parent: 588 + - uid: 1422 + components: + - type: Transform + pos: 12.5,48.5 + parent: 588 +- proto: GasPressurePump + entities: + - uid: 1409 + components: + - type: Transform + pos: 9.5,47.5 + parent: 588 +- proto: GasThermoMachineFreezer + entities: + - uid: 1403 + components: + - type: Transform + pos: 10.5,48.5 + parent: 588 +- proto: GatfruitSeeds + entities: + - uid: 562 + components: + - type: Transform + pos: 8.528373,27.49547 + parent: 588 +- proto: Gauze + entities: + - uid: 1482 + components: + - type: Transform + pos: 8.452288,42.514927 + parent: 588 +- proto: GeneratorRTG + entities: + - uid: 742 + components: + - type: Transform + pos: 27.5,21.5 + parent: 588 + - uid: 748 + components: + - type: Transform + pos: 25.5,21.5 + parent: 588 +- proto: Girder + entities: + - uid: 1301 + components: + - type: Transform + pos: 26.5,39.5 + parent: 588 +- proto: Grille + entities: + - uid: 209 + components: + - type: Transform + pos: 15.5,34.5 + parent: 588 + - uid: 211 + components: + - type: Transform + pos: 19.5,36.5 + parent: 588 + - uid: 212 + components: + - type: Transform + pos: 19.5,34.5 + parent: 588 + - uid: 213 + components: + - type: Transform + pos: 15.5,36.5 + parent: 588 + - uid: 403 + components: + - type: Transform + pos: 15.5,9.5 + parent: 588 + - uid: 404 + components: + - type: Transform + pos: 15.5,7.5 + parent: 588 + - uid: 407 + components: + - type: Transform + pos: 19.5,9.5 + parent: 588 + - uid: 408 + components: + - type: Transform + pos: 19.5,7.5 + parent: 588 + - uid: 568 + components: + - type: Transform + pos: 12.5,15.5 + parent: 588 + - uid: 584 + components: + - type: Transform + pos: 2.5,12.5 + parent: 588 + - uid: 586 + components: + - type: Transform + pos: 2.5,16.5 + parent: 588 + - uid: 587 + components: + - type: Transform + pos: 4.5,16.5 + parent: 588 + - uid: 589 + components: + - type: Transform + pos: 4.5,12.5 + parent: 588 + - uid: 1465 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 10.5,43.5 + parent: 588 + - uid: 1466 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 12.5,43.5 + parent: 588 +- proto: GrilleBroken + entities: + - uid: 1302 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 27.5,39.5 + parent: 588 +- proto: Handcuffs + entities: + - uid: 1614 + components: + - type: Transform + pos: 22.608034,10.659381 + parent: 588 +- proto: Hemostat + entities: + - uid: 1471 + components: + - type: Transform + pos: 8.51377,43.004257 + parent: 588 +- proto: HighSecArmoryLocked + entities: + - uid: 1597 + components: + - type: Transform + pos: 26.5,7.5 + parent: 588 + - uid: 1598 + components: + - type: Transform + pos: 32.5,7.5 + parent: 588 + - uid: 1599 + components: + - type: Transform + pos: 29.5,9.5 + parent: 588 +- proto: HospitalCurtains + entities: + - uid: 402 + components: + - type: Transform + pos: 8.5,27.5 + parent: 588 + - uid: 949 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 8.5,24.5 + parent: 588 + - uid: 951 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 10.5,27.5 + parent: 588 + - uid: 1768 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 24.5,48.5 + parent: 588 +- proto: HospitalCurtainsOpen + entities: + - uid: 946 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 8.5,25.5 + parent: 588 + - uid: 947 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 10.5,24.5 + parent: 588 + - uid: 1040 + components: + - type: Transform + pos: 20.5,28.5 + parent: 588 + - uid: 1046 + components: + - type: Transform + pos: 22.5,24.5 + parent: 588 + - uid: 1148 + components: + - type: Transform + pos: 28.5,25.5 + parent: 588 + - uid: 1149 + components: + - type: Transform + pos: 28.5,24.5 + parent: 588 + - uid: 1223 + components: + - type: Transform + pos: 20.5,36.5 + parent: 588 + - uid: 1224 + components: + - type: Transform + pos: 14.5,34.5 + parent: 588 + - uid: 1467 + components: + - type: Transform + pos: 12.5,42.5 + parent: 588 + - uid: 1469 + components: + - type: Transform + pos: 10.5,42.5 + parent: 588 + - uid: 1767 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 24.5,42.5 + parent: 588 +- proto: HydroponicsToolHatchet + entities: + - uid: 1844 + components: + - type: Transform + pos: 29.538284,44.04174 + parent: 588 + - uid: 1851 + components: + - type: Transform + pos: 30.630798,21.602604 + parent: 588 +- proto: HydroponicsToolMiniHoe + entities: + - uid: 1837 + components: + - type: Transform + pos: 30.099596,43.446724 + parent: 588 + - uid: 1841 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 33.38517,20.601 + parent: 588 +- proto: HydroponicsToolSpade + entities: + - uid: 1838 + components: + - type: Transform + pos: 29.95761,43.361576 + parent: 588 + - uid: 1842 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 33.42777,20.58681 + parent: 588 +- proto: hydroponicsTray + entities: + - uid: 796 + components: + - type: Transform + pos: 31.5,21.5 + parent: 588 + - uid: 797 + components: + - type: Transform + pos: 31.5,20.5 + parent: 588 + - uid: 798 + components: + - type: Transform + pos: 31.5,19.5 + parent: 588 + - uid: 1772 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 29.5,42.5 + parent: 588 + - uid: 1774 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 29.5,44.5 + parent: 588 + - uid: 1787 + components: + - type: Transform + pos: 30.5,44.5 + parent: 588 + - uid: 1788 + components: + - type: Transform + pos: 30.5,42.5 + parent: 588 +- proto: IngotGold + entities: + - uid: 952 + components: + - type: Transform + pos: 11.069347,39.504154 + parent: 588 +- proto: KitchenMicrowave + entities: + - uid: 524 + components: + - type: Transform + pos: 16.5,12.5 + parent: 588 + - uid: 709 + components: + - type: Transform + pos: 18.5,22.5 + parent: 588 + - uid: 1785 + components: + - type: Transform + pos: 29.5,48.5 + parent: 588 +- proto: KitchenReagentGrinder + entities: + - uid: 1786 + components: + - type: Transform + pos: 30.5,47.5 + parent: 588 +- proto: KnifePlastic + entities: + - uid: 530 + components: + - type: Transform + pos: 17.249546,12.643455 + parent: 588 + - uid: 1836 + components: + - type: Transform + pos: 30.241585,48.271698 + parent: 588 +- proto: Lamp + entities: + - uid: 581 + components: + - type: Transform + pos: 12.369425,13.798887 + parent: 588 +- proto: LampGold + entities: + - uid: 322 + components: + - type: Transform + pos: 18.419699,1.6320114 + parent: 588 + - uid: 323 + components: + - type: Transform + pos: 20.563715,4.8959665 + parent: 588 + - uid: 729 + components: + - type: Transform + pos: 6.4779434,22.892899 + parent: 588 + - uid: 730 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 10.765976,19.912766 + parent: 588 +- proto: Lighter + entities: + - uid: 1220 + components: + - type: Transform + pos: 7.5287867,36.397644 + parent: 588 +- proto: LockerDetective + entities: + - uid: 560 + components: + - type: Transform + pos: 14.5,16.5 + parent: 588 +- proto: LockerEvidence + entities: + - uid: 254 + components: + - type: Transform + pos: 16.5,0.5 + parent: 588 + - uid: 262 + components: + - type: Transform + pos: 2.5,0.5 + parent: 588 + - uid: 263 + components: + - type: Transform + pos: 4.5,0.5 + parent: 588 + - uid: 276 + components: + - type: Transform + pos: 0.5,0.5 + parent: 588 + - uid: 286 + components: + - type: Transform + pos: 12.5,0.5 + parent: 588 + - uid: 287 + components: + - type: Transform + pos: 14.5,0.5 + parent: 588 + - uid: 704 + components: + - type: Transform + pos: 16.5,22.5 + parent: 588 +- proto: LockerMedicineFilled + entities: + - uid: 1152 + components: + - type: Transform + pos: 28.5,27.5 + parent: 588 +- proto: LockerSecurityFilled + entities: + - uid: 416 + components: + - type: Transform + pos: 20.5,6.5 + parent: 588 +- proto: LockerSyndicatePersonal + entities: + - uid: 605 + components: + - type: Transform + pos: 6.5,12.5 + parent: 588 +- proto: MachineFrame + entities: + - uid: 400 + components: + - type: Transform + pos: 26.5,8.5 + parent: 588 +- proto: MaintenanceFluffSpawner + entities: + - uid: 414 + components: + - type: Transform + pos: 25.5,32.5 + parent: 588 + - uid: 1289 + components: + - type: Transform + pos: 17.5,38.5 + parent: 588 + - uid: 1290 + components: + - type: Transform + pos: 21.5,40.5 + parent: 588 + - uid: 1291 + components: + - type: Transform + pos: 20.5,40.5 + parent: 588 +- proto: MaintenanceWeaponSpawner + entities: + - uid: 548 + components: + - type: Transform + pos: 15.5,4.5 + parent: 588 + - uid: 549 + components: + - type: Transform + pos: 3.5,4.5 + parent: 588 + - uid: 1580 + components: + - type: Transform + pos: 1.5,8.5 + parent: 588 + - uid: 1581 + components: + - type: Transform + pos: 9.5,8.5 + parent: 588 +- proto: MaterialCloth1 + entities: + - uid: 702 + components: + - type: Transform + pos: 12.462601,18.586084 + parent: 588 + - uid: 1065 + components: + - type: Transform + pos: 24.460928,24.594687 + parent: 588 + - uid: 1066 + components: + - type: Transform + pos: 24.389935,24.296673 + parent: 588 +- proto: MaterialWoodPlank1 + entities: + - uid: 703 + components: + - type: Transform + pos: 12.817572,18.685423 + parent: 588 + - uid: 1064 + components: + - type: Transform + pos: 26.278374,24.608877 + parent: 588 + - uid: 1067 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 24.801699,24.708214 + parent: 588 + - uid: 1076 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 24.823982,27.574818 + parent: 588 +- proto: MedicalBed + entities: + - uid: 1146 + components: + - type: Transform + pos: 28.5,24.5 + parent: 588 + - uid: 1147 + components: + - type: Transform + pos: 28.5,25.5 + parent: 588 +- proto: MedkitAdvancedFilled + entities: + - uid: 1153 + components: + - type: Transform + pos: 30.614443,28.392822 + parent: 588 +- proto: MedkitCombatFilled + entities: + - uid: 1154 + components: + - type: Transform + pos: 30.40146,28.066427 + parent: 588 +- proto: OperatingTable + entities: + - uid: 1389 + components: + - type: Transform + pos: 9.5,43.5 + parent: 588 +- proto: Paper + entities: + - uid: 1055 + components: + - type: Transform + pos: 20.428474,24.722406 + parent: 588 + - uid: 1056 + components: + - type: Transform + pos: 20.669853,24.52373 + parent: 588 +- proto: PaperOffice + entities: + - uid: 327 + components: + - type: Transform + pos: 21.415642,4.0728827 + parent: 588 + - uid: 328 + components: + - type: Transform + pos: 21.586027,4.0019264 + parent: 588 + - uid: 1113 + components: + - type: Transform + pos: 20.706646,15.341779 + parent: 588 + - uid: 1114 + components: + - type: Transform + pos: 20.465267,15.185677 + parent: 588 + - uid: 1115 + components: + - type: Transform + pos: 20.30908,14.603841 + parent: 588 +- proto: PartRodMetal1 + entities: + - uid: 1071 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 25.341253,26.595633 + parent: 588 + - uid: 1072 + components: + - type: Transform + pos: 25.36965,28.11408 + parent: 588 +- proto: Pen + entities: + - uid: 366 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 21.352327,3.9473093 + parent: 588 + - uid: 367 + components: + - type: Transform + pos: 18.75395,1.1232786 + parent: 588 + - uid: 368 + components: + - type: Transform + pos: 24.788435,1.4496742 + parent: 588 + - uid: 731 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 10.36841,19.019064 + parent: 588 + - uid: 732 + components: + - type: Transform + pos: 7.4631767,22.637186 + parent: 588 +- proto: PhoneInstrument + entities: + - uid: 371 + components: + - type: Transform + pos: 25.484175,4.4865713 + parent: 588 +- proto: PillCanister + entities: + - uid: 1481 + components: + - type: Transform + pos: 14.438607,42.637726 + parent: 588 +- proto: PillSpaceDrugs + entities: + - uid: 1479 + components: + - type: Transform + pos: 14.438607,42.96412 + parent: 588 + - uid: 1480 + components: + - type: Transform + pos: 14.537998,42.878975 + parent: 588 +- proto: PlushieNuke + entities: + - uid: 1850 + components: + - type: Transform + pos: 22.519993,28.594225 + parent: 588 +- proto: PortableFlasher + entities: + - uid: 1234 + components: + - type: Transform + pos: 32.5,25.5 + parent: 588 +- proto: PortableGeneratorPacman + entities: + - uid: 967 + components: + - type: Transform + pos: 16.5,32.5 + parent: 588 + - uid: 969 + components: + - type: Transform + pos: 24.5,32.5 + parent: 588 +- proto: PortableGeneratorSuperPacman + entities: + - uid: 50 + components: + - type: Transform + pos: 26.5,15.5 + parent: 588 + - uid: 55 + components: + - type: Transform + pos: 28.5,15.5 + parent: 588 + - uid: 1504 + components: + - type: Transform + pos: 18.5,44.5 + parent: 588 + - uid: 1505 + components: + - type: Transform + pos: 20.5,44.5 + parent: 588 +- proto: PortableScrubber + entities: + - uid: 1101 + components: + - type: Transform + pos: 18.5,30.5 + parent: 588 +- proto: PosterContrabandBountyHunters + entities: + - uid: 1578 + components: + - type: Transform + pos: 13.5,15.5 + parent: 588 +- proto: PosterLegitDickGumshue + entities: + - uid: 1576 + components: + - type: Transform + pos: 9.5,15.5 + parent: 588 +- proto: PosterLegitEnlist + entities: + - uid: 1800 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 8.5,9.5 + parent: 588 +- proto: PosterLegitNanotrasenLogo + entities: + - uid: 1802 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 2.5,48.5 + parent: 588 + - uid: 1803 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 3.5,21.5 + parent: 588 +- proto: PosterLegitObey + entities: + - uid: 1801 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 4.5,42.5 + parent: 588 +- proto: PosterLegitSecWatch + entities: + - uid: 1799 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 2.5,7.5 + parent: 588 +- proto: PosterLegitSpaceCops + entities: + - uid: 1804 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 1.5,19.5 + parent: 588 +- proto: PottedPlantRandom + entities: + - uid: 1286 + components: + - type: Transform + pos: 16.5,38.5 + parent: 588 + - uid: 1287 + components: + - type: Transform + pos: 22.5,40.5 + parent: 588 +- proto: PowerCellHyper + entities: + - uid: 469 + components: + - type: Transform + pos: 12.355853,25.41643 + parent: 588 + - uid: 590 + components: + - type: Transform + pos: 5.381793,16.642464 + parent: 588 +- proto: PowerCellRecharger + entities: + - uid: 1103 + components: + - type: Transform + pos: 15.5,30.5 + parent: 588 + - uid: 1568 + components: + - type: Transform + pos: 21.5,47.5 + parent: 588 +- proto: Poweredlight + entities: + - uid: 1641 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 2.5,0.5 + parent: 588 + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 1642 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 14.5,0.5 + parent: 588 + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 1646 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 24.5,0.5 + parent: 588 + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 1647 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 28.5,0.5 + parent: 588 + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 1648 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 21.5,6.5 + parent: 588 + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 1649 + components: + - type: Transform + pos: 13.5,10.5 + parent: 588 + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 1650 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 16.5,6.5 + parent: 588 + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 1651 + components: + - type: Transform + pos: 18.5,10.5 + parent: 588 + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 1693 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 32.5,25.5 + parent: 588 + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 1701 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 18.5,12.5 + parent: 588 + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 1702 + components: + - type: Transform + pos: 20.5,16.5 + parent: 588 + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 1703 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 34.5,20.5 + parent: 588 + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 1704 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 16.5,25.5 + parent: 588 + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 1705 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 14.5,27.5 + parent: 588 + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 1706 + components: + - type: Transform + pos: 18.5,40.5 + parent: 588 + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 1741 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 10.5,21.5 + parent: 588 + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 1743 + components: + - type: Transform + pos: 21.5,22.5 + parent: 588 + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 1830 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 30.5,43.5 + parent: 588 + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 1831 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 30.5,47.5 + parent: 588 + - type: ApcPowerReceiver + powerLoad: 0 +- proto: PoweredlightLED + entities: + - uid: 1707 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 8.5,42.5 + parent: 588 + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 1708 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 14.5,42.5 + parent: 588 + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 1709 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 14.5,46.5 + parent: 588 + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 1710 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 8.5,46.5 + parent: 588 + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 1725 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 28.5,27.5 + parent: 588 + - type: ApcPowerReceiver + powerLoad: 0 +- proto: PoweredSmallLight + entities: + - uid: 470 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 26.5,14.5 + parent: 588 + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 940 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 10.5,28.5 + parent: 588 + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 948 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 8.5,28.5 + parent: 588 + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 953 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 10.5,25.5 + parent: 588 + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 1603 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 26.5,10.5 + parent: 588 + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 1604 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 32.5,10.5 + parent: 588 + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 1605 + components: + - type: Transform + pos: 29.5,6.5 + parent: 588 + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 1606 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 29.5,8.5 + parent: 588 + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 1607 + components: + - type: Transform + pos: 32.5,8.5 + parent: 588 + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 1608 + components: + - type: Transform + pos: 26.5,8.5 + parent: 588 + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 1643 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 7.5,1.5 + parent: 588 + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 1644 + components: + - type: Transform + pos: 20.5,4.5 + parent: 588 + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 1645 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 19.5,0.5 + parent: 588 + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 1652 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 9.5,8.5 + parent: 588 + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 1653 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 7.5,8.5 + parent: 588 + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 1654 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 3.5,8.5 + parent: 588 + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 1655 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 1.5,8.5 + parent: 588 + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 1656 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 5.5,14.5 + parent: 588 + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 1657 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 1.5,14.5 + parent: 588 + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 1659 + components: + - type: Transform + pos: 3.5,18.5 + parent: 588 + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 1661 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 1.5,22.5 + parent: 588 + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 1662 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 4.5,27.5 + parent: 588 + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 1663 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 6.5,25.5 + parent: 588 + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 1664 + components: + - type: Transform + pos: 0.5,28.5 + parent: 588 + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 1665 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 2.5,24.5 + parent: 588 + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 1666 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 3.5,30.5 + parent: 588 + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 1667 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 9.5,30.5 + parent: 588 + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 1668 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 1.5,36.5 + parent: 588 + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 1669 + components: + - type: Transform + pos: 8.5,34.5 + parent: 588 + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 1670 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 5.5,38.5 + parent: 588 + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 1671 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 1.5,38.5 + parent: 588 + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 1672 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 2.5,43.5 + parent: 588 + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 1673 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 4.5,43.5 + parent: 588 + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 1674 + components: + - type: Transform + pos: 2.5,47.5 + parent: 588 + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 1675 + components: + - type: Transform + pos: 4.5,47.5 + parent: 588 + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 1676 + components: + - type: Transform + pos: 9.5,40.5 + parent: 588 + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 1677 + components: + - type: Transform + pos: 13.5,40.5 + parent: 588 + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 1678 + components: + - type: Transform + pos: 13.5,36.5 + parent: 588 + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 1679 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 21.5,34.5 + parent: 588 + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 1680 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 32.5,35.5 + parent: 588 + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 1681 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 34.5,35.5 + parent: 588 + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 1682 + components: + - type: Transform + pos: 25.5,36.5 + parent: 588 + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 1683 + components: + - type: Transform + pos: 28.5,38.5 + parent: 588 + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 1684 + components: + - type: Transform + pos: 19.5,46.5 + parent: 588 + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 1685 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 17.5,47.5 + parent: 588 + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 1686 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 21.5,47.5 + parent: 588 + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 1687 + components: + - type: Transform + pos: 23.5,32.5 + parent: 588 + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 1688 + components: + - type: Transform + pos: 17.5,32.5 + parent: 588 + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 1689 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 22.5,27.5 + parent: 588 + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 1690 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 20.5,25.5 + parent: 588 + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 1694 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 28.5,19.5 + parent: 588 + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 1695 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 24.5,19.5 + parent: 588 + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 1696 + components: + - type: Transform + pos: 13.5,22.5 + parent: 588 + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 1697 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 13.5,18.5 + parent: 588 + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 1698 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 15.5,18.5 + parent: 588 + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 1699 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 9.5,16.5 + parent: 588 + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 1700 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 10.5,13.5 + parent: 588 + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 1828 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 25.5,42.5 + parent: 588 + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 1829 + components: + - type: Transform + pos: 25.5,48.5 + parent: 588 + - type: ApcPowerReceiver + powerLoad: 0 +- proto: PoweredSmallLightEmpty + entities: + - uid: 1640 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 26.5,25.5 + parent: 588 + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 1658 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 24.5,27.5 + parent: 588 + - type: ApcPowerReceiver + powerLoad: 0 +- proto: Rack + entities: + - uid: 255 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 15.5,0.5 + parent: 588 + - uid: 264 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 3.5,0.5 + parent: 588 + - uid: 283 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 1.5,0.5 + parent: 588 + - uid: 285 + components: + - type: Transform + pos: 13.5,0.5 + parent: 588 + - uid: 324 + components: + - type: Transform + pos: 19.5,4.5 + parent: 588 + - uid: 396 + components: + - type: Transform + pos: 28.5,8.5 + parent: 588 + - uid: 401 + components: + - type: Transform + pos: 32.5,8.5 + parent: 588 + - uid: 417 + components: + - type: Transform + pos: 12.5,6.5 + parent: 588 + - uid: 418 + components: + - type: Transform + pos: 12.5,10.5 + parent: 588 + - uid: 419 + components: + - type: Transform + pos: 22.5,10.5 + parent: 588 + - uid: 420 + components: + - type: Transform + pos: 22.5,6.5 + parent: 588 + - uid: 478 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 27.5,15.5 + parent: 588 + - uid: 551 + components: + - type: Transform + pos: 22.5,15.5 + parent: 588 + - uid: 585 + components: + - type: Transform + pos: 1.5,12.5 + parent: 588 + - uid: 596 + components: + - type: Transform + pos: 1.5,16.5 + parent: 588 + - uid: 597 + components: + - type: Transform + pos: 5.5,16.5 + parent: 588 + - uid: 598 + components: + - type: Transform + pos: 5.5,12.5 + parent: 588 + - uid: 966 + components: + - type: Transform + pos: 25.5,32.5 + parent: 588 + - uid: 977 + components: + - type: Transform + pos: 15.5,32.5 + parent: 588 + - uid: 1015 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 12.5,25.5 + parent: 588 + - uid: 1016 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 12.5,24.5 + parent: 588 + - uid: 1021 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 18.5,25.5 + parent: 588 + - uid: 1024 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 18.5,24.5 + parent: 588 + - uid: 1111 + components: + - type: Transform + pos: 14.5,32.5 + parent: 588 + - uid: 1112 + components: + - type: Transform + pos: 26.5,32.5 + parent: 588 + - uid: 1206 + components: + - type: Transform + pos: 1.5,8.5 + parent: 588 + - uid: 1208 + components: + - type: Transform + pos: 9.5,8.5 + parent: 588 + - uid: 1211 + components: + - type: Transform + pos: 2.5,34.5 + parent: 588 + - uid: 1319 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 29.5,40.5 + parent: 588 + - uid: 1562 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 17.5,47.5 + parent: 588 + - uid: 1858 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 26.5,21.5 + parent: 588 +- proto: Railing + entities: + - uid: 313 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 30.5,4.5 + parent: 588 + - uid: 314 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 30.5,0.5 + parent: 588 + - uid: 427 + components: + - type: Transform + pos: 6.5,7.5 + parent: 588 + - uid: 428 + components: + - type: Transform + pos: 4.5,7.5 + parent: 588 + - uid: 429 + components: + - type: Transform + pos: 3.5,7.5 + parent: 588 + - uid: 430 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 7.5,9.5 + parent: 588 + - uid: 431 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 6.5,9.5 + parent: 588 + - uid: 435 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 5.5,9.5 + parent: 588 + - uid: 436 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 4.5,9.5 + parent: 588 + - uid: 437 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 3.5,9.5 + parent: 588 + - uid: 439 + components: + - type: Transform + pos: 5.5,7.5 + parent: 588 + - uid: 440 + components: + - type: Transform + pos: 7.5,7.5 + parent: 588 + - uid: 770 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 26.5,21.5 + parent: 588 + - uid: 850 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 9.5,30.5 + parent: 588 + - uid: 851 + components: + - type: Transform + pos: 9.5,32.5 + parent: 588 + - uid: 854 + components: + - type: Transform + pos: 3.5,32.5 + parent: 588 + - uid: 855 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 3.5,30.5 + parent: 588 + - uid: 1259 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 7.5,4.5 + parent: 588 + - uid: 1260 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 9.5,4.5 + parent: 588 + - uid: 1261 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 9.5,0.5 + parent: 588 + - uid: 1262 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 7.5,0.5 + parent: 588 +- proto: RailingCorner + entities: + - uid: 315 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 30.5,1.5 + parent: 588 + - uid: 316 + components: + - type: Transform + pos: 30.5,3.5 + parent: 588 + - uid: 771 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 27.5,21.5 + parent: 588 + - uid: 772 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 25.5,21.5 + parent: 588 + - uid: 845 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 2.5,32.5 + parent: 588 + - uid: 846 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 2.5,30.5 + parent: 588 + - uid: 847 + components: + - type: Transform + pos: 10.5,32.5 + parent: 588 + - uid: 848 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 10.5,30.5 + parent: 588 + - uid: 849 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 8.5,30.5 + parent: 588 + - uid: 852 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 8.5,32.5 + parent: 588 + - uid: 853 + components: + - type: Transform + pos: 4.5,32.5 + parent: 588 + - uid: 856 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 4.5,30.5 + parent: 588 + - uid: 886 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 4.5,40.5 + parent: 588 + - uid: 888 + components: + - type: Transform + pos: 2.5,40.5 + parent: 588 + - uid: 890 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 1.5,40.5 + parent: 588 + - uid: 891 + components: + - type: Transform + pos: 5.5,40.5 + parent: 588 + - uid: 892 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 4.5,38.5 + parent: 588 + - uid: 893 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 5.5,38.5 + parent: 588 + - uid: 894 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 2.5,38.5 + parent: 588 + - uid: 895 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 1.5,38.5 + parent: 588 + - uid: 1255 + components: + - type: Transform + pos: 7.5,3.5 + parent: 588 + - uid: 1256 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 9.5,3.5 + parent: 588 + - uid: 1257 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 9.5,1.5 + parent: 588 + - uid: 1258 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 7.5,1.5 + parent: 588 + - uid: 1351 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 1.5,44.5 + parent: 588 + - uid: 1352 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 2.5,43.5 + parent: 588 + - uid: 1353 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 4.5,43.5 + parent: 588 + - uid: 1354 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 5.5,44.5 + parent: 588 + - uid: 1355 + components: + - type: Transform + pos: 1.5,46.5 + parent: 588 + - uid: 1356 + components: + - type: Transform + pos: 2.5,47.5 + parent: 588 + - uid: 1357 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 4.5,47.5 + parent: 588 + - uid: 1358 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 5.5,46.5 + parent: 588 +- proto: RailingCornerSmall + entities: + - uid: 337 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 29.5,3.5 + parent: 588 + - uid: 338 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 29.5,1.5 + parent: 588 + - uid: 1376 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 1.5,43.5 + parent: 588 + - uid: 1377 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 1.5,47.5 + parent: 588 + - uid: 1378 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 5.5,47.5 + parent: 588 + - uid: 1379 + components: + - type: Transform + pos: 5.5,43.5 + parent: 588 +- proto: RandomDrinkBottle + entities: + - uid: 580 + components: + - type: Transform + pos: 12.5,12.5 + parent: 588 +- proto: RandomFoodSingle + entities: + - uid: 764 + components: + - type: Transform + pos: 6.5,19.5 + parent: 588 +- proto: RandomInstruments + entities: + - uid: 546 + components: + - type: Transform + pos: 1.5,4.5 + parent: 588 + - uid: 1159 + components: + - type: Transform + pos: 21.5,18.5 + parent: 588 + - uid: 1833 + components: + - type: Transform + pos: 24.5,42.5 + parent: 588 +- proto: RandomPosterContraband + entities: + - uid: 1571 + components: + - type: Transform + pos: 25.5,39.5 + parent: 588 + - uid: 1572 + components: + - type: Transform + pos: 3.5,35.5 + parent: 588 + - uid: 1573 + components: + - type: Transform + pos: 7.5,35.5 + parent: 588 + - uid: 1574 + components: + - type: Transform + pos: 5.5,25.5 + parent: 588 + - uid: 1575 + components: + - type: Transform + pos: 30.5,15.5 + parent: 588 + - uid: 1805 + components: + - type: Transform + pos: 18.5,43.5 + parent: 588 + - uid: 1806 + components: + - type: Transform + pos: 20.5,47.5 + parent: 588 +- proto: RandomSoap + entities: + - uid: 397 + components: + - type: Transform + pos: 8.5,24.5 + parent: 588 +- proto: RandomVending + entities: + - uid: 539 + components: + - type: Transform + pos: 17.5,16.5 + parent: 588 +- proto: ReinforcedWindow + entities: + - uid: 214 + components: + - type: Transform + pos: 19.5,34.5 + parent: 588 + - uid: 409 + components: + - type: Transform + pos: 15.5,7.5 + parent: 588 + - uid: 410 + components: + - type: Transform + pos: 15.5,9.5 + parent: 588 + - uid: 411 + components: + - type: Transform + pos: 19.5,7.5 + parent: 588 + - uid: 412 + components: + - type: Transform + pos: 19.5,9.5 + parent: 588 + - uid: 591 + components: + - type: Transform + pos: 2.5,12.5 + parent: 588 + - uid: 592 + components: + - type: Transform + pos: 4.5,12.5 + parent: 588 + - uid: 594 + components: + - type: Transform + pos: 4.5,16.5 + parent: 588 + - uid: 595 + components: + - type: Transform + pos: 2.5,16.5 + parent: 588 + - uid: 1166 + components: + - type: Transform + pos: 19.5,36.5 + parent: 588 + - uid: 1168 + components: + - type: Transform + pos: 15.5,36.5 + parent: 588 + - uid: 1169 + components: + - type: Transform + pos: 15.5,34.5 + parent: 588 +- proto: RemoteSignaller + entities: + - uid: 593 + components: + - type: Transform + pos: 34.361877,24.623777 + parent: 588 + - type: DeviceLinkSource + linkedPorts: + 1238: + - Pressed: Toggle + 1239: + - Pressed: Toggle + 1237: + - Pressed: Toggle + - uid: 1104 + components: + - type: Transform + pos: 25.24476,30.698978 + parent: 588 + - uid: 1105 + components: + - type: Transform + pos: 25.443544,30.613832 + parent: 588 + - uid: 1106 + components: + - type: Transform + pos: 5.677143,16.762346 + parent: 588 +- proto: RiotLaserShield + entities: + - uid: 1618 + components: + - type: Transform + pos: 12.616156,10.534842 + parent: 588 +- proto: RiotShield + entities: + - uid: 600 + components: + - type: Transform + pos: 1.3209407,16.656654 + parent: 588 + - uid: 601 + components: + - type: Transform + pos: 1.5481212,16.543125 + parent: 588 +- proto: SalvageCanisterSpawner + entities: + - uid: 998 + components: + - type: Transform + pos: 22.5,30.5 + parent: 588 + - uid: 1009 + components: + - type: Transform + pos: 19.5,30.5 + parent: 588 + - uid: 1025 + components: + - type: Transform + pos: 21.5,30.5 + parent: 588 + - uid: 1190 + components: + - type: Transform + pos: 9.5,36.5 + parent: 588 + - uid: 1210 + components: + - type: Transform + pos: 9.5,48.5 + parent: 588 + - uid: 1413 + components: + - type: Transform + pos: 13.5,48.5 + parent: 588 + - uid: 1470 + components: + - type: Transform + pos: 12.5,48.5 + parent: 588 +- proto: SawAdvanced + entities: + - uid: 1468 + components: + - type: Transform + pos: 8.527969,43.529327 + parent: 588 +- proto: ScalpelLaser + entities: + - uid: 1472 + components: + - type: Transform + pos: 8.485372,43.131977 + parent: 588 +- proto: ScalpelShiv + entities: + - uid: 708 + components: + - type: Transform + pos: 16.074419,18.727995 + parent: 588 + - uid: 1592 + components: + - type: Transform + pos: 10.50393,24.491432 + parent: 588 +- proto: SeedExtractor + entities: + - uid: 802 + components: + - type: Transform + pos: 33.5,21.5 + parent: 588 + - uid: 1776 + components: + - type: Transform + pos: 28.5,42.5 + parent: 588 +- proto: SheetGlass + entities: + - uid: 649 + components: + - type: Transform + pos: 14.3137455,32.471424 + parent: 588 +- proto: SheetPlasteel + entities: + - uid: 866 + components: + - type: Transform + pos: 2.412651,34.456436 + parent: 588 +- proto: SheetPlastic + entities: + - uid: 398 + components: + - type: Transform + pos: 20.04785,45.07574 + parent: 588 +- proto: SheetSteel + entities: + - uid: 656 + components: + - type: Transform + pos: 26.36062,32.5183 + parent: 588 + - uid: 699 + components: + - type: Transform + pos: 29.259031,40.432583 + parent: 588 +- proto: ShowcaseRobot + entities: + - uid: 1621 + components: + - type: Transform + pos: 16.5,10.5 + parent: 588 + - uid: 1622 + components: + - type: Transform + pos: 18.5,6.5 + parent: 588 +- proto: ShuttersNormal + entities: + - uid: 1237 + components: + - type: Transform + pos: 34.5,27.5 + parent: 588 + - type: DeviceLinkSink + links: + - 593 + - uid: 1238 + components: + - type: Transform + pos: 32.5,27.5 + parent: 588 + - type: DeviceLinkSink + links: + - 593 +- proto: ShuttersWindow + entities: + - uid: 1239 + components: + - type: Transform + pos: 33.5,27.5 + parent: 588 + - type: DeviceLinkSink + links: + - 593 +- proto: SignCloning + entities: + - uid: 1484 + components: + - type: Transform + pos: 12.5,43.5 + parent: 588 +- proto: SignPrison + entities: + - uid: 1792 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 6.5,3.5 + parent: 588 + - uid: 1793 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 10.5,1.5 + parent: 588 + - uid: 1794 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 1.5,21.5 + parent: 588 + - uid: 1795 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 3.5,19.5 + parent: 588 + - uid: 1796 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 0.5,46.5 + parent: 588 + - uid: 1797 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 6.5,44.5 + parent: 588 +- proto: SignSecurity + entities: + - uid: 1798 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 22.5,1.5 + parent: 588 +- proto: SignSurgery + entities: + - uid: 1483 + components: + - type: Transform + pos: 10.5,43.5 + parent: 588 +- proto: Sink + entities: + - uid: 935 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 10.5,25.5 + parent: 588 +- proto: SinkStemlessWater + entities: + - uid: 1461 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 9.5,42.5 + parent: 588 + - uid: 1462 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 13.5,42.5 + parent: 588 +- proto: SMESBasic + entities: + - uid: 46 + components: + - type: Transform + pos: 26.5,13.5 + parent: 588 + - uid: 56 + components: + - type: Transform + pos: 28.5,13.5 + parent: 588 + - uid: 747 + components: + - type: Transform + pos: 26.5,19.5 + parent: 588 + - uid: 1506 + components: + - type: Transform + pos: 18.5,46.5 + parent: 588 + - uid: 1507 + components: + - type: Transform + pos: 20.5,46.5 + parent: 588 +- proto: SoapSyndie + entities: + - uid: 1856 + components: + - type: Transform + pos: 10.4890785,27.46785 + parent: 588 +- proto: SpaceCash100 + entities: + - uid: 1243 + components: + - type: Transform + pos: 11.887424,39.621456 + parent: 588 + - uid: 1244 + components: + - type: Transform + pos: 11.759636,39.479546 + parent: 588 + - uid: 1296 + components: + - type: Transform + pos: 12.100407,39.465355 + parent: 588 + - uid: 1297 + components: + - type: Transform + pos: 12.100407,39.80594 + parent: 588 + - uid: 1298 + components: + - type: Transform + pos: 11.688642,39.720795 + parent: 588 + - uid: 1299 + components: + - type: Transform + pos: 11.4330635,39.57888 + parent: 588 +- proto: Spear + entities: + - uid: 1834 + components: + - type: Transform + pos: 24.466219,48.441994 + parent: 588 +- proto: SpeedLoaderMagnum + entities: + - uid: 950 + components: + - type: Transform + pos: 28.703945,8.421182 + parent: 588 +- proto: StasisBed + entities: + - uid: 1425 + components: + - type: Transform + pos: 13.5,43.5 + parent: 588 +- proto: StimkitFilled + entities: + - uid: 561 + components: + - type: Transform + pos: 30.39083,27.514402 + parent: 588 +- proto: StimpackMini + entities: + - uid: 1879 + components: + - type: Transform + pos: 24.467485,46.702366 + parent: 588 +- proto: Stool + entities: + - uid: 1017 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 14.5,25.5 + parent: 588 + - uid: 1018 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 14.5,24.5 + parent: 588 + - uid: 1019 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 16.5,28.5 + parent: 588 + - uid: 1020 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 18.5,28.5 + parent: 588 + - uid: 1593 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 0.5,13.5 + parent: 588 + - uid: 1594 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 0.5,15.5 + parent: 588 + - uid: 1595 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 6.5,15.5 + parent: 588 + - uid: 1596 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 6.5,13.5 + parent: 588 +- proto: SubstationBasic + entities: + - uid: 467 + components: + - type: Transform + pos: 27.5,13.5 + parent: 588 + - uid: 1508 + components: + - type: Transform + pos: 19.5,46.5 + parent: 588 +- proto: SubstationWallBasic + entities: + - uid: 774 + components: + - type: Transform + pos: 27.5,19.5 + parent: 588 + - uid: 972 + components: + - type: Transform + pos: 19.5,32.5 + parent: 588 +- proto: SyringeEphedrine + entities: + - uid: 1475 + components: + - type: Transform + pos: 14.472328,42.917698 + parent: 588 +- proto: Table + entities: + - uid: 525 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 16.5,13.5 + parent: 588 + - uid: 527 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 16.5,12.5 + parent: 588 + - uid: 528 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 17.5,12.5 + parent: 588 + - uid: 535 + components: + - type: Transform + pos: 20.5,14.5 + parent: 588 + - uid: 536 + components: + - type: Transform + pos: 20.5,15.5 + parent: 588 + - uid: 630 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 6.5,19.5 + parent: 588 + - uid: 632 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 10.5,19.5 + parent: 588 + - uid: 633 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 10.5,18.5 + parent: 588 + - uid: 636 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 6.5,22.5 + parent: 588 + - uid: 637 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 7.5,22.5 + parent: 588 + - uid: 710 + components: + - type: Transform + pos: 18.5,22.5 + parent: 588 + - uid: 711 + components: + - type: Transform + pos: 18.5,21.5 + parent: 588 + - uid: 712 + components: + - type: Transform + pos: 21.5,18.5 + parent: 588 + - uid: 713 + components: + - type: Transform + pos: 22.5,18.5 + parent: 588 + - uid: 714 + components: + - type: Transform + pos: 18.5,18.5 + parent: 588 + - uid: 715 + components: + - type: Transform + pos: 19.5,18.5 + parent: 588 + - uid: 799 + components: + - type: Transform + pos: 33.5,20.5 + parent: 588 + - uid: 1118 + components: + - type: Transform + pos: 22.5,12.5 + parent: 588 + - uid: 1778 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 30.5,48.5 + parent: 588 + - uid: 1779 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 29.5,48.5 + parent: 588 + - uid: 1780 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 30.5,47.5 + parent: 588 +- proto: TableFrame + entities: + - uid: 705 + components: + - type: Transform + pos: 15.5,22.5 + parent: 588 + - uid: 1063 + components: + - type: Transform + pos: 26.5,24.5 + parent: 588 +- proto: TableGlass + entities: + - uid: 1144 + components: + - type: Transform + pos: 30.5,27.5 + parent: 588 + - uid: 1145 + components: + - type: Transform + pos: 30.5,28.5 + parent: 588 + - uid: 1390 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 8.5,43.5 + parent: 588 + - uid: 1391 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 8.5,42.5 + parent: 588 + - uid: 1398 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 10.5,44.5 + parent: 588 + - uid: 1405 + components: + - type: Transform + pos: 14.5,42.5 + parent: 588 + - uid: 1406 + components: + - type: Transform + pos: 14.5,43.5 + parent: 588 + - uid: 1407 + components: + - type: Transform + pos: 12.5,44.5 + parent: 588 +- proto: TableReinforced + entities: + - uid: 924 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 26.5,36.5 + parent: 588 + - uid: 925 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 26.5,35.5 + parent: 588 + - uid: 926 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 26.5,34.5 + parent: 588 + - uid: 1005 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 15.5,30.5 + parent: 588 + - uid: 1006 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 25.5,30.5 + parent: 588 + - uid: 1012 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 14.5,28.5 + parent: 588 + - uid: 1023 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 16.5,24.5 + parent: 588 + - uid: 1235 + components: + - type: Transform + pos: 34.5,24.5 + parent: 588 + - uid: 1567 + components: + - type: Transform + pos: 21.5,47.5 + parent: 588 +- proto: TableReinforcedGlass + entities: + - uid: 1213 + components: + - type: Transform + pos: 10.5,39.5 + parent: 588 + - uid: 1214 + components: + - type: Transform + pos: 11.5,39.5 + parent: 588 + - uid: 1215 + components: + - type: Transform + pos: 12.5,39.5 + parent: 588 +- proto: TableWood + entities: + - uid: 309 + components: + - type: Transform + pos: 20.5,4.5 + parent: 588 + - uid: 310 + components: + - type: Transform + pos: 21.5,4.5 + parent: 588 + - uid: 311 + components: + - type: Transform + pos: 18.5,0.5 + parent: 588 + - uid: 312 + components: + - type: Transform + pos: 21.5,3.5 + parent: 588 + - uid: 317 + components: + - type: Transform + pos: 18.5,1.5 + parent: 588 + - uid: 318 + components: + - type: Transform + pos: 19.5,0.5 + parent: 588 + - uid: 332 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 25.5,3.5 + parent: 588 + - uid: 333 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 26.5,3.5 + parent: 588 + - uid: 334 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 27.5,3.5 + parent: 588 + - uid: 335 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 25.5,4.5 + parent: 588 + - uid: 336 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 27.5,4.5 + parent: 588 + - uid: 340 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 24.5,1.5 + parent: 588 + - uid: 341 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 25.5,1.5 + parent: 588 + - uid: 342 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 27.5,1.5 + parent: 588 + - uid: 343 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 28.5,1.5 + parent: 588 + - uid: 563 + components: + - type: Transform + pos: 13.5,13.5 + parent: 588 + - uid: 564 + components: + - type: Transform + pos: 12.5,13.5 + parent: 588 + - uid: 565 + components: + - type: Transform + pos: 12.5,12.5 + parent: 588 + - uid: 1047 + components: + - type: Transform + pos: 22.5,28.5 + parent: 588 + - uid: 1048 + components: + - type: Transform + pos: 20.5,24.5 + parent: 588 + - uid: 1062 + components: + - type: Transform + pos: 26.5,28.5 + parent: 588 + - uid: 1227 + components: + - type: Transform + pos: 12.5,36.5 + parent: 588 + - uid: 1228 + components: + - type: Transform + pos: 22.5,34.5 + parent: 588 + - uid: 1783 + components: + - type: Transform + pos: 24.5,46.5 + parent: 588 + - uid: 1784 + components: + - type: Transform + pos: 24.5,44.5 + parent: 588 +- proto: TargetHuman + entities: + - uid: 1077 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 32.5,35.5 + parent: 588 +- proto: TintedWindow + entities: + - uid: 567 + components: + - type: Transform + pos: 12.5,15.5 + parent: 588 + - uid: 1463 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 10.5,43.5 + parent: 588 + - uid: 1464 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 12.5,43.5 + parent: 588 +- proto: ToiletEmpty + entities: + - uid: 932 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 8.5,24.5 + parent: 588 + - uid: 933 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 10.5,24.5 + parent: 588 + - uid: 934 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 8.5,25.5 + parent: 588 +- proto: UniformScrubsColorPurple + entities: + - uid: 1712 + components: + - type: Transform + pos: 10.503376,44.53288 + parent: 588 +- proto: VendingMachineChefvend + entities: + - uid: 532 + components: + - type: Transform + pos: 18.5,12.5 + parent: 588 +- proto: VendingMachineCigs + entities: + - uid: 720 + components: + - type: Transform + pos: 22.5,22.5 + parent: 588 +- proto: VendingMachineCoffee + entities: + - uid: 765 + components: + - type: Transform + pos: 10.5,22.5 + parent: 588 + - uid: 1285 + components: + - type: Transform + pos: 18.5,40.5 + parent: 588 +- proto: VendingMachineDetDrobe + entities: + - uid: 582 + components: + - type: Transform + pos: 10.5,14.5 + parent: 588 +- proto: VendingMachineDinnerware + entities: + - uid: 1781 + components: + - type: Transform + pos: 30.5,46.5 + parent: 588 +- proto: VendingMachineDonut + entities: + - uid: 538 + components: + - type: Transform + pos: 16.5,16.5 + parent: 588 +- proto: VendingMachineLawDrobe + entities: + - uid: 319 + components: + - type: Transform + pos: 18.5,4.5 + parent: 588 +- proto: VendingMachineMedical + entities: + - uid: 1143 + components: + - type: Transform + pos: 28.5,28.5 + parent: 588 +- proto: VendingMachineSec + entities: + - uid: 1013 + components: + - type: Transform + pos: 14.5,27.5 + parent: 588 +- proto: VendingMachineSeedsUnlocked + entities: + - uid: 800 + components: + - type: Transform + pos: 33.5,19.5 + parent: 588 + - uid: 1775 + components: + - type: Transform + pos: 28.5,44.5 + parent: 588 +- proto: WallmountTelescreen + entities: + - uid: 572 + components: + - type: Transform + pos: 13.5,13.5 + parent: 588 +- proto: WallPlastitaniumIndestructible + entities: + - uid: 377 + components: + - type: Transform + pos: 30.5,7.5 + parent: 588 + - uid: 378 + components: + - type: Transform + pos: 29.5,7.5 + parent: 588 + - uid: 379 + components: + - type: Transform + pos: 25.5,9.5 + parent: 588 + - uid: 380 + components: + - type: Transform + pos: 27.5,9.5 + parent: 588 + - uid: 381 + components: + - type: Transform + pos: 27.5,8.5 + parent: 588 + - uid: 382 + components: + - type: Transform + pos: 28.5,9.5 + parent: 588 + - uid: 383 + components: + - type: Transform + pos: 31.5,9.5 + parent: 588 + - uid: 384 + components: + - type: Transform + pos: 31.5,8.5 + parent: 588 + - uid: 385 + components: + - type: Transform + pos: 31.5,7.5 + parent: 588 + - uid: 386 + components: + - type: Transform + pos: 25.5,8.5 + parent: 588 + - uid: 387 + components: + - type: Transform + pos: 33.5,7.5 + parent: 588 + - uid: 388 + components: + - type: Transform + pos: 25.5,7.5 + parent: 588 + - uid: 389 + components: + - type: Transform + pos: 27.5,7.5 + parent: 588 + - uid: 390 + components: + - type: Transform + pos: 30.5,9.5 + parent: 588 + - uid: 391 + components: + - type: Transform + pos: 28.5,7.5 + parent: 588 + - uid: 392 + components: + - type: Transform + pos: 26.5,9.5 + parent: 588 + - uid: 393 + components: + - type: Transform + pos: 33.5,8.5 + parent: 588 + - uid: 394 + components: + - type: Transform + pos: 33.5,9.5 + parent: 588 + - uid: 395 + components: + - type: Transform + pos: 32.5,9.5 + parent: 588 +- proto: WallReinforced + entities: + - uid: 45 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 2.5,8.5 + parent: 588 + - uid: 51 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 8.5,8.5 + parent: 588 + - uid: 244 + components: + - type: Transform + pos: 6.5,4.5 + parent: 588 + - uid: 245 + components: + - type: Transform + pos: 6.5,3.5 + parent: 588 + - uid: 246 + components: + - type: Transform + pos: 10.5,4.5 + parent: 588 + - uid: 247 + components: + - type: Transform + pos: 10.5,3.5 + parent: 588 + - uid: 266 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 6.5,1.5 + parent: 588 + - uid: 267 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 6.5,0.5 + parent: 588 + - uid: 268 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 10.5,1.5 + parent: 588 + - uid: 269 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 10.5,0.5 + parent: 588 + - uid: 291 + components: + - type: Transform + pos: 15.5,6.5 + parent: 588 + - uid: 292 + components: + - type: Transform + pos: 19.5,6.5 + parent: 588 + - uid: 405 + components: + - type: Transform + pos: 15.5,10.5 + parent: 588 + - uid: 406 + components: + - type: Transform + pos: 19.5,10.5 + parent: 588 + - uid: 426 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 8.5,9.5 + parent: 588 + - uid: 432 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 2.5,7.5 + parent: 588 + - uid: 433 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 2.5,9.5 + parent: 588 + - uid: 434 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 8.5,7.5 + parent: 588 + - uid: 570 + components: + - type: Transform + pos: 0.5,46.5 + parent: 588 + - uid: 621 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 1.5,21.5 + parent: 588 + - uid: 622 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 3.5,19.5 + parent: 588 + - uid: 623 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 3.5,21.5 + parent: 588 + - uid: 627 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 1.5,19.5 + parent: 588 + - uid: 1078 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 33.5,35.5 + parent: 588 + - uid: 1330 + components: + - type: Transform + pos: 0.5,44.5 + parent: 588 + - uid: 1332 + components: + - type: Transform + pos: 2.5,42.5 + parent: 588 + - uid: 1334 + components: + - type: Transform + pos: 4.5,42.5 + parent: 588 + - uid: 1335 + components: + - type: Transform + pos: 6.5,44.5 + parent: 588 + - uid: 1337 + components: + - type: Transform + pos: 4.5,48.5 + parent: 588 + - uid: 1338 + components: + - type: Transform + pos: 6.5,46.5 + parent: 588 + - uid: 1340 + components: + - type: Transform + pos: 2.5,48.5 + parent: 588 +- proto: WallSolid + entities: + - uid: 140 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 5.5,25.5 + parent: 588 + - uid: 144 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 5.5,26.5 + parent: 588 + - uid: 145 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 4.5,25.5 + parent: 588 + - uid: 146 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 5.5,27.5 + parent: 588 + - uid: 205 + components: + - type: Transform + pos: 8.5,35.5 + parent: 588 + - uid: 206 + components: + - type: Transform + pos: 7.5,35.5 + parent: 588 + - uid: 207 + components: + - type: Transform + pos: 6.5,35.5 + parent: 588 + - uid: 208 + components: + - type: Transform + pos: 4.5,35.5 + parent: 588 + - uid: 210 + components: + - type: Transform + pos: 1.5,34.5 + parent: 588 + - uid: 305 + components: + - type: Transform + pos: 22.5,4.5 + parent: 588 + - uid: 306 + components: + - type: Transform + pos: 22.5,3.5 + parent: 588 + - uid: 307 + components: + - type: Transform + pos: 22.5,0.5 + parent: 588 + - uid: 308 + components: + - type: Transform + pos: 22.5,1.5 + parent: 588 + - uid: 476 + components: + - type: Transform + pos: 25.5,13.5 + parent: 588 + - uid: 481 + components: + - type: Transform + pos: 25.5,15.5 + parent: 588 + - uid: 483 + components: + - type: Transform + pos: 30.5,13.5 + parent: 588 + - uid: 501 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 25.5,14.5 + parent: 588 + - uid: 510 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 30.5,15.5 + parent: 588 + - uid: 749 + components: + - type: Transform + pos: 25.5,19.5 + parent: 588 + - uid: 750 + components: + - type: Transform + pos: 27.5,19.5 + parent: 588 + - uid: 975 + components: + - type: Transform + pos: 19.5,32.5 + parent: 588 + - uid: 995 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 21.5,32.5 + parent: 588 + - uid: 1163 + components: + - type: Transform + pos: 8.5,36.5 + parent: 588 + - uid: 1164 + components: + - type: Transform + pos: 3.5,35.5 + parent: 588 + - uid: 1165 + components: + - type: Transform + pos: 2.5,35.5 + parent: 588 + - uid: 1167 + components: + - type: Transform + pos: 1.5,35.5 + parent: 588 + - uid: 1300 + components: + - type: Transform + pos: 25.5,39.5 + parent: 588 + - uid: 1303 + components: + - type: Transform + pos: 28.5,39.5 + parent: 588 + - uid: 1304 + components: + - type: Transform + pos: 29.5,39.5 + parent: 588 + - uid: 1305 + components: + - type: Transform + pos: 28.5,40.5 + parent: 588 + - uid: 1485 + components: + - type: Transform + pos: 17.5,43.5 + parent: 588 + - uid: 1486 + components: + - type: Transform + pos: 17.5,44.5 + parent: 588 + - uid: 1487 + components: + - type: Transform + pos: 18.5,43.5 + parent: 588 + - uid: 1488 + components: + - type: Transform + pos: 20.5,43.5 + parent: 588 + - uid: 1489 + components: + - type: Transform + pos: 21.5,43.5 + parent: 588 + - uid: 1490 + components: + - type: Transform + pos: 21.5,44.5 + parent: 588 + - uid: 1491 + components: + - type: Transform + pos: 18.5,47.5 + parent: 588 + - uid: 1492 + components: + - type: Transform + pos: 19.5,47.5 + parent: 588 + - uid: 1493 + components: + - type: Transform + pos: 20.5,47.5 + parent: 588 +- proto: WallWood + entities: + - uid: 554 + components: + - type: Transform + pos: 9.5,13.5 + parent: 588 + - uid: 555 + components: + - type: Transform + pos: 9.5,14.5 + parent: 588 + - uid: 556 + components: + - type: Transform + pos: 9.5,15.5 + parent: 588 + - uid: 557 + components: + - type: Transform + pos: 10.5,15.5 + parent: 588 + - uid: 558 + components: + - type: Transform + pos: 13.5,15.5 + parent: 588 + - uid: 559 + components: + - type: Transform + pos: 13.5,16.5 + parent: 588 + - uid: 566 + components: + - type: Transform + pos: 9.5,12.5 + parent: 588 +- proto: WardrobePrisonFilled + entities: + - uid: 297 + components: + - type: Transform + pos: 2.5,4.5 + parent: 588 + - uid: 302 + components: + - type: Transform + pos: 4.5,4.5 + parent: 588 + - uid: 303 + components: + - type: Transform + pos: 12.5,4.5 + parent: 588 + - uid: 304 + components: + - type: Transform + pos: 14.5,4.5 + parent: 588 + - uid: 544 + components: + - type: Transform + pos: 16.5,4.5 + parent: 588 + - uid: 545 + components: + - type: Transform + pos: 0.5,4.5 + parent: 588 + - uid: 1769 + components: + - type: Transform + pos: 24.5,43.5 + parent: 588 + - uid: 1770 + components: + - type: Transform + pos: 24.5,47.5 + parent: 588 +- proto: WaterCooler + entities: + - uid: 629 + components: + - type: Transform + pos: 6.5,18.5 + parent: 588 + - uid: 724 + components: + - type: Transform + pos: 19.5,22.5 + parent: 588 + - uid: 1284 + components: + - type: Transform + pos: 17.5,40.5 + parent: 588 + - uid: 1292 + components: + - type: Transform + pos: 21.5,12.5 + parent: 588 +- proto: WaterTankHighCapacity + entities: + - uid: 801 + components: + - type: Transform + pos: 30.5,22.5 + parent: 588 + - uid: 1789 + components: + - type: Transform + pos: 28.5,48.5 + parent: 588 +- proto: WeaponCapacitorRecharger + entities: + - uid: 760 + components: + - type: Transform + pos: 10.5,18.5 + parent: 588 + - uid: 929 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 26.5,34.5 + parent: 588 + - uid: 1033 + components: + - type: Transform + pos: 14.5,28.5 + parent: 588 + - uid: 1034 + components: + - type: Transform + pos: 16.5,24.5 + parent: 588 +- proto: WeaponDisablerPractice + entities: + - uid: 547 + components: + - type: Transform + pos: 1.4370823,0.5241035 + parent: 588 + - uid: 930 + components: + - type: Transform + pos: 26.440151,36.61676 + parent: 588 + - uid: 1611 + components: + - type: Transform + pos: 12.371853,10.605072 + parent: 588 +- proto: WeaponLaserCarbinePractice + entities: + - uid: 931 + components: + - type: Transform + pos: 26.596338,36.36132 + parent: 588 + - uid: 1612 + components: + - type: Transform + pos: 22.543945,6.5464144 + parent: 588 +- proto: WeaponShotgunKammerer + entities: + - uid: 583 + components: + - type: Transform + pos: 26.57963,35.4414 + parent: 588 +- proto: WindoorAssemblySecure + entities: + - uid: 696 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 16.5,19.5 + parent: 588 + - uid: 697 + components: + - type: Transform + pos: 12.5,21.5 + parent: 588 + - uid: 1073 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 25.5,25.5 + parent: 588 +- proto: WindoorSecure + entities: + - uid: 1761 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 26.5,43.5 + parent: 588 + - uid: 1762 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 26.5,47.5 + parent: 588 +- proto: WindoorSecureBrigLocked + entities: + - uid: 339 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 29.5,2.5 + parent: 588 +- proto: WindoorSecureEngineeringLocked + entities: + - uid: 1569 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 18.5,45.5 + parent: 588 + - uid: 1570 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 20.5,45.5 + parent: 588 +- proto: WindoorSecureMedicalLocked + entities: + - uid: 1408 + components: + - type: Transform + pos: 11.5,44.5 + parent: 588 +- proto: WindoorSecureSecurityLocked + entities: + - uid: 252 + components: + - type: Transform + pos: 4.5,3.5 + parent: 588 + - uid: 253 + components: + - type: Transform + pos: 2.5,3.5 + parent: 588 + - uid: 256 + components: + - type: Transform + pos: 16.5,3.5 + parent: 588 + - uid: 274 + components: + - type: Transform + pos: 12.5,3.5 + parent: 588 + - uid: 275 + components: + - type: Transform + pos: 14.5,3.5 + parent: 588 + - uid: 289 + components: + - type: Transform + pos: 0.5,3.5 + parent: 588 + - uid: 698 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 12.5,19.5 + parent: 588 + - uid: 1053 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 21.5,25.5 + parent: 588 + - uid: 1054 + components: + - type: Transform + pos: 21.5,27.5 + parent: 588 +- proto: WindowDirectional + entities: + - uid: 480 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 26.5,15.5 + parent: 588 + - uid: 482 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 27.5,15.5 + parent: 588 + - uid: 540 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 28.5,15.5 + parent: 588 + - uid: 541 + components: + - type: Transform + pos: 26.5,13.5 + parent: 588 + - uid: 542 + components: + - type: Transform + pos: 27.5,13.5 + parent: 588 + - uid: 543 + components: + - type: Transform + pos: 28.5,13.5 + parent: 588 + - uid: 575 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 33.5,20.5 + parent: 588 + - uid: 576 + components: + - type: Transform + pos: 26.5,19.5 + parent: 588 + - uid: 803 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 33.5,21.5 + parent: 588 + - uid: 804 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 33.5,19.5 + parent: 588 + - uid: 1087 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 27.5,36.5 + parent: 588 + - uid: 1088 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 27.5,34.5 + parent: 588 + - uid: 1520 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 18.5,46.5 + parent: 588 + - uid: 1521 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 20.5,46.5 + parent: 588 + - uid: 1771 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 28.5,44.5 + parent: 588 + - uid: 1773 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 29.5,44.5 + parent: 588 + - uid: 1777 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 30.5,44.5 + parent: 588 + - uid: 1782 + components: + - type: Transform + pos: 30.5,46.5 + parent: 588 +- proto: WindowFrostedDirectional + entities: + - uid: 936 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 8.5,24.5 + parent: 588 + - uid: 937 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 10.5,24.5 + parent: 588 + - uid: 938 + components: + - type: Transform + pos: 8.5,27.5 + parent: 588 + - uid: 939 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 8.5,25.5 + parent: 588 + - uid: 941 + components: + - type: Transform + pos: 10.5,27.5 + parent: 588 + - uid: 942 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 10.5,28.5 + parent: 588 + - uid: 943 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 8.5,28.5 + parent: 588 + - uid: 1392 + components: + - type: Transform + pos: 8.5,44.5 + parent: 588 + - uid: 1393 + components: + - type: Transform + pos: 10.5,44.5 + parent: 588 + - uid: 1401 + components: + - type: Transform + pos: 12.5,44.5 + parent: 588 + - uid: 1402 + components: + - type: Transform + pos: 14.5,44.5 + parent: 588 + - uid: 1753 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 24.5,43.5 + parent: 588 + - uid: 1754 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 25.5,43.5 + parent: 588 + - uid: 1755 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 26.5,43.5 + parent: 588 + - uid: 1756 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 26.5,42.5 + parent: 588 + - uid: 1757 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 26.5,48.5 + parent: 588 + - uid: 1758 + components: + - type: Transform + pos: 26.5,47.5 + parent: 588 + - uid: 1759 + components: + - type: Transform + pos: 25.5,47.5 + parent: 588 + - uid: 1760 + components: + - type: Transform + pos: 24.5,47.5 + parent: 588 +- proto: WindowReinforcedDirectional + entities: + - uid: 97 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 2.5,14.5 + parent: 588 + - uid: 99 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 4.5,14.5 + parent: 588 + - uid: 258 + components: + - type: Transform + pos: 3.5,3.5 + parent: 588 + - uid: 259 + components: + - type: Transform + pos: 5.5,3.5 + parent: 588 + - uid: 260 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 3.5,3.5 + parent: 588 + - uid: 261 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 3.5,4.5 + parent: 588 + - uid: 270 + components: + - type: Transform + pos: 11.5,3.5 + parent: 588 + - uid: 271 + components: + - type: Transform + pos: 13.5,3.5 + parent: 588 + - uid: 272 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 13.5,3.5 + parent: 588 + - uid: 273 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 13.5,4.5 + parent: 588 + - uid: 277 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 1.5,4.5 + parent: 588 + - uid: 278 + components: + - type: Transform + pos: 15.5,3.5 + parent: 588 + - uid: 279 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 15.5,4.5 + parent: 588 + - uid: 280 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 1.5,3.5 + parent: 588 + - uid: 281 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 15.5,3.5 + parent: 588 + - uid: 290 + components: + - type: Transform + pos: 1.5,3.5 + parent: 588 + - uid: 607 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 3.5,14.5 + parent: 588 + - uid: 609 + components: + - type: Transform + pos: 4.5,14.5 + parent: 588 + - uid: 611 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 4.5,14.5 + parent: 588 + - uid: 612 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 2.5,14.5 + parent: 588 + - uid: 614 + components: + - type: Transform + pos: 3.5,14.5 + parent: 588 + - uid: 619 + components: + - type: Transform + pos: 2.5,14.5 + parent: 588 + - uid: 620 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 3.5,20.5 + parent: 588 + - uid: 624 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 1.5,20.5 + parent: 588 + - uid: 625 + components: + - type: Transform + pos: 2.5,19.5 + parent: 588 + - uid: 626 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 2.5,21.5 + parent: 588 + - uid: 648 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 15.5,19.5 + parent: 588 + - uid: 650 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 13.5,18.5 + parent: 588 + - uid: 651 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 13.5,19.5 + parent: 588 + - uid: 652 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 15.5,19.5 + parent: 588 + - uid: 653 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 15.5,18.5 + parent: 588 + - uid: 654 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 13.5,21.5 + parent: 588 + - uid: 658 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 13.5,22.5 + parent: 588 + - uid: 660 + components: + - type: Transform + pos: 13.5,21.5 + parent: 588 + - uid: 805 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 1.5,27.5 + parent: 588 + - uid: 806 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 1.5,26.5 + parent: 588 + - uid: 807 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 1.5,25.5 + parent: 588 + - uid: 808 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 1.5,25.5 + parent: 588 + - uid: 809 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 1.5,26.5 + parent: 588 + - uid: 810 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 1.5,27.5 + parent: 588 + - uid: 811 + components: + - type: Transform + pos: 1.5,25.5 + parent: 588 + - uid: 812 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 1.5,27.5 + parent: 588 + - uid: 1038 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 22.5,25.5 + parent: 588 + - uid: 1039 + components: + - type: Transform + pos: 20.5,27.5 + parent: 588 + - uid: 1042 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 20.5,25.5 + parent: 588 + - uid: 1045 + components: + - type: Transform + pos: 22.5,27.5 + parent: 588 + - uid: 1058 + components: + - type: Transform + pos: 24.5,27.5 + parent: 588 + - uid: 1059 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 26.5,25.5 + parent: 588 + - uid: 1060 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 24.5,25.5 + parent: 588 + - uid: 1399 + components: + - type: Transform + pos: 9.5,44.5 + parent: 588 + - uid: 1400 + components: + - type: Transform + pos: 13.5,44.5 + parent: 588 +- proto: Wrench + entities: + - uid: 424 + components: + - type: Transform + pos: 15.156982,32.526764 + parent: 588 +- proto: Zipties + entities: + - uid: 1156 + components: + - type: Transform + pos: 15.332411,0.52492684 + parent: 588 +- proto: ZiptiesBroken + entities: + - uid: 48 + components: + - type: Transform + pos: 5.2591753,3.5817227 + parent: 588 + - uid: 706 + components: + - type: Transform + pos: 16.06022,21.977758 + parent: 588 +... diff --git a/Resources/Maps/Ruins/DeltaV/biodome_satellite.yml b/Resources/Maps/Ruins/DeltaV/biodome_satellite.yml index 02d55a3cf0..4631b1aad8 100644 --- a/Resources/Maps/Ruins/DeltaV/biodome_satellite.yml +++ b/Resources/Maps/Ruins/DeltaV/biodome_satellite.yml @@ -73,6 +73,10 @@ entities: - type: Gravity gravityShakeSound: !type:SoundPathSpecifier path: /Audio/Effects/alert.ogg + - type: DeviceNetwork + configurators: [] + deviceLists: [] + transmitFrequencyId: ShuttleTimer - type: DecalGrid chunkCollection: version: 2 diff --git a/Resources/Maps/Ruins/DeltaV/old_ai_sat.yml b/Resources/Maps/Ruins/DeltaV/old_ai_sat.yml index 2b4110b781..3d0ef0b73b 100644 --- a/Resources/Maps/Ruins/DeltaV/old_ai_sat.yml +++ b/Resources/Maps/Ruins/DeltaV/old_ai_sat.yml @@ -81,6 +81,10 @@ entities: - type: Gravity gravityShakeSound: !type:SoundPathSpecifier path: /Audio/Effects/alert.ogg + - type: DeviceNetwork + configurators: [] + deviceLists: [] + transmitFrequencyId: ShuttleTimer - type: DecalGrid chunkCollection: version: 2 diff --git a/Resources/Maps/Salvage/DeltaV/DV-atlas-conference-room.yml b/Resources/Maps/Salvage/DeltaV/DV-atlas-conference-room.yml index c01a214ca5..4664f07f40 100644 --- a/Resources/Maps/Salvage/DeltaV/DV-atlas-conference-room.yml +++ b/Resources/Maps/Salvage/DeltaV/DV-atlas-conference-room.yml @@ -55,6 +55,10 @@ entities: - type: Gravity gravityShakeSound: !type:SoundPathSpecifier path: /Audio/Effects/alert.ogg + - type: DeviceNetwork + configurators: [] + deviceLists: [] + transmitFrequencyId: ShuttleTimer - type: DecalGrid chunkCollection: version: 2 diff --git a/Resources/Maps/Salvage/small-3.yml b/Resources/Maps/Salvage/small-3.yml index 7a29b665ff..cc015fe27b 100644 --- a/Resources/Maps/Salvage/small-3.yml +++ b/Resources/Maps/Salvage/small-3.yml @@ -926,176 +926,132 @@ entities: rot: 3.141592653589793 rad pos: 1.5,-10.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 4 components: - type: Transform rot: 3.141592653589793 rad pos: -6.5,5.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 6 components: - type: Transform rot: 3.141592653589793 rad pos: 0.5,6.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 7 components: - type: Transform rot: -1.5707963267948966 rad pos: -5.5,8.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 14 components: - type: Transform rot: -1.5707963267948966 rad pos: -0.5,6.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 17 components: - type: Transform rot: -1.5707963267948966 rad pos: 3.5,6.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 24 components: - type: Transform rot: -1.5707963267948966 rad pos: 3.5,5.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 25 components: - type: Transform rot: 3.141592653589793 rad pos: 3.5,7.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 26 components: - type: Transform rot: 3.141592653589793 rad pos: 1.5,7.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 29 components: - type: Transform rot: 3.141592653589793 rad pos: -4.5,5.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 30 components: - type: Transform rot: -1.5707963267948966 rad pos: -7.5,6.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 31 components: - type: Transform rot: 3.141592653589793 rad pos: 2.5,7.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 37 components: - type: Transform rot: -1.5707963267948966 rad pos: 4.5,8.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 38 components: - type: Transform rot: 3.141592653589793 rad pos: 0.5,7.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 44 components: - type: Transform rot: -1.5707963267948966 rad pos: -3.5,6.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 48 components: - type: Transform rot: -1.5707963267948966 rad pos: -3.5,7.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 49 components: - type: Transform rot: -1.5707963267948966 rad pos: -6.5,6.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 50 components: - type: Transform rot: 3.141592653589793 rad pos: -5.5,5.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 51 components: - type: Transform rot: -1.5707963267948966 rad pos: -7.5,4.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 52 components: - type: Transform rot: -1.5707963267948966 rad pos: -7.5,5.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 53 components: - type: Transform rot: 3.141592653589793 rad pos: -7.5,4.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 66 components: - type: Transform rot: -1.5707963267948966 rad pos: -2.5,7.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 75 components: - type: Transform @@ -1108,8 +1064,6 @@ entities: rot: -1.5707963267948966 rad pos: -2.5,5.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 78 components: - type: Transform @@ -1122,144 +1076,108 @@ entities: rot: -1.5707963267948966 rad pos: -3.5,5.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 80 components: - type: Transform rot: -1.5707963267948966 rad pos: 3.5,7.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 97 components: - type: Transform rot: 3.141592653589793 rad pos: -6.5,7.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 101 components: - type: Transform rot: 3.141592653589793 rad pos: -7.5,7.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 105 components: - type: Transform rot: 3.141592653589793 rad pos: -0.5,6.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 106 components: - type: Transform rot: -1.5707963267948966 rad pos: -2.5,6.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 107 components: - type: Transform rot: 3.141592653589793 rad pos: 1.5,6.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 108 components: - type: Transform rot: -1.5707963267948966 rad pos: -1.5,8.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 110 components: - type: Transform rot: 3.141592653589793 rad pos: -2.5,7.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 112 components: - type: Transform rot: -1.5707963267948966 rad pos: -5.5,7.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 115 components: - type: Transform rot: -1.5707963267948966 rad pos: -3.5,8.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 116 components: - type: Transform rot: -1.5707963267948966 rad pos: -4.5,7.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 117 components: - type: Transform rot: -1.5707963267948966 rad pos: -4.5,6.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 118 components: - type: Transform rot: -1.5707963267948966 rad pos: -0.5,7.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 119 components: - type: Transform rot: -1.5707963267948966 rad pos: -7.5,7.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 120 components: - type: Transform rot: -1.5707963267948966 rad pos: 1.5,6.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 121 components: - type: Transform rot: 3.141592653589793 rad pos: 0.5,5.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 122 components: - type: Transform rot: -1.5707963267948966 rad pos: 0.5,5.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 123 components: - type: Transform @@ -1278,48 +1196,36 @@ entities: rot: -1.5707963267948966 rad pos: -1.5,5.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 126 components: - type: Transform rot: -1.5707963267948966 rad pos: -1.5,6.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 127 components: - type: Transform rot: 3.141592653589793 rad pos: -6.5,3.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 128 components: - type: Transform rot: 3.141592653589793 rad pos: -5.5,3.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 129 components: - type: Transform rot: 3.141592653589793 rad pos: -4.5,3.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 130 components: - type: Transform rot: 3.141592653589793 rad pos: -3.5,3.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 131 components: - type: Transform @@ -1332,88 +1238,66 @@ entities: rot: 3.141592653589793 rad pos: -1.5,3.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 133 components: - type: Transform rot: 3.141592653589793 rad pos: -2.5,3.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 134 components: - type: Transform rot: -1.5707963267948966 rad pos: -0.5,3.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 135 components: - type: Transform rot: -1.5707963267948966 rad pos: -0.5,2.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 136 components: - type: Transform rot: 3.141592653589793 rad pos: -0.5,2.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 137 components: - type: Transform rot: 3.141592653589793 rad pos: -0.5,1.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 138 components: - type: Transform rot: 3.141592653589793 rad pos: 0.5,2.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 139 components: - type: Transform rot: 3.141592653589793 rad pos: 1.5,2.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 140 components: - type: Transform rot: 3.141592653589793 rad pos: 0.5,3.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 141 components: - type: Transform rot: 3.141592653589793 rad pos: 1.5,3.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 142 components: - type: Transform rot: 3.141592653589793 rad pos: 2.5,3.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 143 components: - type: Transform @@ -1444,40 +1328,30 @@ entities: rot: -1.5707963267948966 rad pos: 2.5,5.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 148 components: - type: Transform rot: 3.141592653589793 rad pos: 2.5,2.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 149 components: - type: Transform rot: 3.141592653589793 rad pos: 3.5,2.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 150 components: - type: Transform rot: -1.5707963267948966 rad pos: 4.5,3.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 151 components: - type: Transform rot: 3.141592653589793 rad pos: 4.5,3.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 152 components: - type: Transform @@ -1490,112 +1364,84 @@ entities: rot: -1.5707963267948966 rad pos: 5.5,5.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 154 components: - type: Transform rot: 3.141592653589793 rad pos: 4.5,5.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 155 components: - type: Transform rot: -1.5707963267948966 rad pos: 4.5,6.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 156 components: - type: Transform rot: 3.141592653589793 rad pos: 4.5,6.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 157 components: - type: Transform rot: -1.5707963267948966 rad pos: 5.5,7.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 158 components: - type: Transform rot: 3.141592653589793 rad pos: 5.5,7.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 159 components: - type: Transform rot: 3.141592653589793 rad pos: 6.5,7.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 160 components: - type: Transform rot: -1.5707963267948966 rad pos: 8.5,8.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 161 components: - type: Transform rot: -1.5707963267948966 rad pos: 8.5,7.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 162 components: - type: Transform rot: 3.141592653589793 rad pos: 7.5,6.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 163 components: - type: Transform rot: 3.141592653589793 rad pos: 6.5,6.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 164 components: - type: Transform rot: -1.5707963267948966 rad pos: 6.5,6.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 165 components: - type: Transform rot: 3.141592653589793 rad pos: 6.5,5.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 166 components: - type: Transform rot: -1.5707963267948966 rad pos: 6.5,5.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 167 components: - type: Transform @@ -1614,56 +1460,42 @@ entities: rot: -1.5707963267948966 rad pos: 8.5,5.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 170 components: - type: Transform rot: -1.5707963267948966 rad pos: 8.5,6.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 171 components: - type: Transform rot: 3.141592653589793 rad pos: 9.5,7.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 172 components: - type: Transform rot: -1.5707963267948966 rad pos: 10.5,6.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 173 components: - type: Transform rot: -1.5707963267948966 rad pos: 10.5,7.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 174 components: - type: Transform rot: -1.5707963267948966 rad pos: 9.5,6.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 175 components: - type: Transform rot: -1.5707963267948966 rad pos: 9.5,7.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 176 components: - type: Transform @@ -1676,8 +1508,6 @@ entities: rot: -1.5707963267948966 rad pos: 9.5,5.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 178 components: - type: Transform @@ -1690,1104 +1520,828 @@ entities: rot: 3.141592653589793 rad pos: 9.5,3.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 180 components: - type: Transform rot: -1.5707963267948966 rad pos: 10.5,3.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 181 components: - type: Transform rot: 3.141592653589793 rad pos: 8.5,3.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 182 components: - type: Transform rot: 3.141592653589793 rad pos: 7.5,3.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 183 components: - type: Transform rot: 3.141592653589793 rad pos: 6.5,3.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 184 components: - type: Transform rot: 3.141592653589793 rad pos: 10.5,1.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 185 components: - type: Transform rot: 3.141592653589793 rad pos: 9.5,1.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 186 components: - type: Transform rot: -1.5707963267948966 rad pos: 9.5,2.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 187 components: - type: Transform rot: 3.141592653589793 rad pos: 8.5,2.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 188 components: - type: Transform rot: -1.5707963267948966 rad pos: 7.5,3.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 189 components: - type: Transform rot: -1.5707963267948966 rad pos: 7.5,2.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 190 components: - type: Transform rot: 3.141592653589793 rad pos: 7.5,1.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 191 components: - type: Transform rot: -1.5707963267948966 rad pos: 7.5,1.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 192 components: - type: Transform rot: -1.5707963267948966 rad pos: 7.5,0.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 193 components: - type: Transform rot: -1.5707963267948966 rad pos: 10.5,0.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 194 components: - type: Transform rot: -1.5707963267948966 rad pos: 10.5,-0.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 195 components: - type: Transform rot: -1.5707963267948966 rad pos: 10.5,-1.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 196 components: - type: Transform rot: 3.141592653589793 rad pos: 10.5,-2.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 197 components: - type: Transform rot: -1.5707963267948966 rad pos: 9.5,-1.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 198 components: - type: Transform rot: -1.5707963267948966 rad pos: 9.5,-0.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 199 components: - type: Transform rot: -1.5707963267948966 rad pos: 9.5,0.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 200 components: - type: Transform rot: 3.141592653589793 rad pos: 8.5,-2.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 201 components: - type: Transform rot: 3.141592653589793 rad pos: 8.5,0.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 202 components: - type: Transform rot: -1.5707963267948966 rad pos: 8.5,-0.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 203 components: - type: Transform rot: 3.141592653589793 rad pos: 7.5,-1.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 204 components: - type: Transform rot: -1.5707963267948966 rad pos: 8.5,0.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 205 components: - type: Transform rot: 3.141592653589793 rad pos: 6.5,-1.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 206 components: - type: Transform rot: -1.5707963267948966 rad pos: 7.5,-1.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 207 components: - type: Transform rot: -1.5707963267948966 rad pos: 6.5,-0.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 208 components: - type: Transform rot: -1.5707963267948966 rad pos: 6.5,0.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 209 components: - type: Transform rot: -1.5707963267948966 rad pos: 6.5,1.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 210 components: - type: Transform rot: -1.5707963267948966 rad pos: 6.5,2.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 211 components: - type: Transform rot: -1.5707963267948966 rad pos: 6.5,3.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 212 components: - type: Transform rot: 3.141592653589793 rad pos: 5.5,2.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 213 components: - type: Transform rot: 3.141592653589793 rad pos: 5.5,0.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 214 components: - type: Transform rot: 3.141592653589793 rad pos: 4.5,1.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 215 components: - type: Transform rot: -1.5707963267948966 rad pos: 4.5,1.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 216 components: - type: Transform rot: -1.5707963267948966 rad pos: 4.5,0.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 217 components: - type: Transform rot: 3.141592653589793 rad pos: 4.5,-0.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 218 components: - type: Transform rot: -1.5707963267948966 rad pos: 5.5,-0.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 219 components: - type: Transform rot: -1.5707963267948966 rad pos: 5.5,-1.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 220 components: - type: Transform rot: 3.141592653589793 rad pos: 5.5,-2.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 221 components: - type: Transform rot: -1.5707963267948966 rad pos: 6.5,-2.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 222 components: - type: Transform rot: 3.141592653589793 rad pos: 6.5,-3.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 223 components: - type: Transform rot: 3.141592653589793 rad pos: 7.5,-3.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 224 components: - type: Transform rot: 3.141592653589793 rad pos: 8.5,-3.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 225 components: - type: Transform rot: 3.141592653589793 rad pos: 9.5,-3.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 226 components: - type: Transform rot: 3.141592653589793 rad pos: -8.5,2.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 227 components: - type: Transform rot: 3.141592653589793 rad pos: -7.5,2.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 228 components: - type: Transform rot: 3.141592653589793 rad pos: -6.5,2.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 229 components: - type: Transform rot: 3.141592653589793 rad pos: -5.5,2.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 230 components: - type: Transform rot: -1.5707963267948966 rad pos: -4.5,2.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 231 components: - type: Transform rot: -1.5707963267948966 rad pos: -4.5,1.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 232 components: - type: Transform rot: -1.5707963267948966 rad pos: -4.5,0.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 233 components: - type: Transform rot: 3.141592653589793 rad pos: -4.5,0.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 234 components: - type: Transform rot: 3.141592653589793 rad pos: -3.5,0.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 235 components: - type: Transform rot: -1.5707963267948966 rad pos: -2.5,1.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 236 components: - type: Transform rot: -1.5707963267948966 rad pos: -2.5,0.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 237 components: - type: Transform rot: -1.5707963267948966 rad pos: -3.5,2.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 238 components: - type: Transform rot: 3.141592653589793 rad pos: -3.5,2.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 239 components: - type: Transform rot: 3.141592653589793 rad pos: -2.5,2.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 240 components: - type: Transform rot: -1.5707963267948966 rad pos: -1.5,2.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 241 components: - type: Transform rot: -1.5707963267948966 rad pos: -1.5,1.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 242 components: - type: Transform rot: -1.5707963267948966 rad pos: -1.5,0.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 243 components: - type: Transform rot: -1.5707963267948966 rad pos: -1.5,-0.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 244 components: - type: Transform rot: 3.141592653589793 rad pos: -2.5,-1.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 245 components: - type: Transform rot: 3.141592653589793 rad pos: -3.5,-1.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 246 components: - type: Transform rot: -1.5707963267948966 rad pos: -3.5,-0.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 247 components: - type: Transform rot: 3.141592653589793 rad pos: -4.5,-0.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 248 components: - type: Transform rot: 3.141592653589793 rad pos: -0.5,0.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 249 components: - type: Transform rot: -1.5707963267948966 rad pos: -0.5,0.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 250 components: - type: Transform rot: -1.5707963267948966 rad pos: -0.5,-0.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 251 components: - type: Transform rot: -1.5707963267948966 rad pos: -0.5,-1.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 252 components: - type: Transform rot: 3.141592653589793 rad pos: -1.5,-2.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 253 components: - type: Transform rot: -1.5707963267948966 rad pos: -1.5,-1.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 254 components: - type: Transform rot: 3.141592653589793 rad pos: -7.5,1.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 255 components: - type: Transform rot: 3.141592653589793 rad pos: -6.5,1.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 256 components: - type: Transform rot: -1.5707963267948966 rad pos: -5.5,1.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 257 components: - type: Transform rot: 3.141592653589793 rad pos: -6.5,0.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 258 components: - type: Transform rot: -1.5707963267948966 rad pos: -6.5,0.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 259 components: - type: Transform rot: 3.141592653589793 rad pos: -7.5,-0.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 260 components: - type: Transform rot: -1.5707963267948966 rad pos: -7.5,-0.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 261 components: - type: Transform rot: 3.141592653589793 rad pos: -8.5,0.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 262 components: - type: Transform rot: -1.5707963267948966 rad pos: -7.5,-1.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 263 components: - type: Transform rot: -1.5707963267948966 rad pos: -7.5,-2.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 264 components: - type: Transform rot: -1.5707963267948966 rad pos: -7.5,-3.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 265 components: - type: Transform rot: 3.141592653589793 rad pos: -5.5,-0.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 266 components: - type: Transform rot: -1.5707963267948966 rad pos: -5.5,-0.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 267 components: - type: Transform rot: -1.5707963267948966 rad pos: -5.5,-1.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 268 components: - type: Transform rot: 3.141592653589793 rad pos: -6.5,-2.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 269 components: - type: Transform rot: 3.141592653589793 rad pos: -6.5,-1.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 270 components: - type: Transform rot: 3.141592653589793 rad pos: -7.5,-3.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 271 components: - type: Transform rot: 3.141592653589793 rad pos: -6.5,-3.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 272 components: - type: Transform rot: 3.141592653589793 rad pos: -5.5,-3.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 273 components: - type: Transform rot: -1.5707963267948966 rad pos: -4.5,-2.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 274 components: - type: Transform rot: -1.5707963267948966 rad pos: -4.5,-1.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 275 components: - type: Transform rot: 3.141592653589793 rad pos: -4.5,-2.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 276 components: - type: Transform rot: 3.141592653589793 rad pos: -3.5,-2.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 277 components: - type: Transform rot: -1.5707963267948966 rad pos: -2.5,-2.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 278 components: - type: Transform rot: 3.141592653589793 rad pos: -3.5,-3.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 279 components: - type: Transform rot: 3.141592653589793 rad pos: -2.5,-3.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 280 components: - type: Transform rot: 3.141592653589793 rad pos: -1.5,-3.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 281 components: - type: Transform rot: 3.141592653589793 rad pos: -0.5,-2.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 282 components: - type: Transform rot: 3.141592653589793 rad pos: 0.5,-2.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 283 components: - type: Transform rot: -1.5707963267948966 rad pos: 0.5,-2.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 284 components: - type: Transform rot: -1.5707963267948966 rad pos: 0.5,-3.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 285 components: - type: Transform rot: 3.141592653589793 rad pos: -0.5,-4.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 286 components: - type: Transform rot: -1.5707963267948966 rad pos: 0.5,-0.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 287 components: - type: Transform rot: 3.141592653589793 rad pos: 0.5,-1.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 288 components: - type: Transform rot: -1.5707963267948966 rad pos: 1.5,-0.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 289 components: - type: Transform rot: -1.5707963267948966 rad pos: 1.5,0.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 290 components: - type: Transform rot: -1.5707963267948966 rad pos: 1.5,1.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 291 components: - type: Transform rot: -1.5707963267948966 rad pos: 1.5,2.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 292 components: - type: Transform rot: -1.5707963267948966 rad pos: 2.5,0.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 293 components: - type: Transform rot: -1.5707963267948966 rad pos: 2.5,1.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 294 components: - type: Transform rot: 3.141592653589793 rad pos: 2.5,-0.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 295 components: - type: Transform rot: 3.141592653589793 rad pos: 3.5,-0.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 296 components: - type: Transform rot: -1.5707963267948966 rad pos: 3.5,1.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 297 components: - type: Transform rot: -1.5707963267948966 rad pos: 3.5,2.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 298 components: - type: Transform rot: 3.141592653589793 rad pos: 1.5,-1.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 299 components: - type: Transform rot: -1.5707963267948966 rad pos: 2.5,-1.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 300 components: - type: Transform rot: -1.5707963267948966 rad pos: 2.5,-2.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 301 components: - type: Transform rot: 3.141592653589793 rad pos: 1.5,-3.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 302 components: - type: Transform rot: -1.5707963267948966 rad pos: 1.5,-3.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 303 components: - type: Transform rot: -1.5707963267948966 rad pos: 1.5,-4.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 304 components: - type: Transform rot: 3.141592653589793 rad pos: 2.5,-4.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 305 components: - type: Transform rot: -1.5707963267948966 rad pos: 3.5,-4.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 306 components: - type: Transform rot: -1.5707963267948966 rad pos: 3.5,-3.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 307 components: - type: Transform rot: -1.5707963267948966 rad pos: 3.5,-2.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 308 components: - type: Transform rot: -1.5707963267948966 rad pos: 3.5,-1.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 309 components: - type: Transform rot: -1.5707963267948966 rad pos: 3.5,-0.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 310 components: - type: Transform rot: 3.141592653589793 rad pos: 3.5,-5.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 311 components: - type: Transform rot: 3.141592653589793 rad pos: 4.5,-5.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 312 components: - type: Transform rot: 3.141592653589793 rad pos: 5.5,-5.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 313 components: - type: Transform rot: -1.5707963267948966 rad pos: 5.5,-5.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 314 components: - type: Transform rot: 3.141592653589793 rad pos: 4.5,-4.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 315 components: - type: Transform rot: -1.5707963267948966 rad pos: 4.5,-3.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 316 components: - type: Transform rot: -1.5707963267948966 rad pos: 4.5,-2.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 317 components: - type: Transform @@ -2800,982 +2354,736 @@ entities: rot: 3.141592653589793 rad pos: 4.5,-3.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 319 components: - type: Transform rot: 3.141592653589793 rad pos: 5.5,-3.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 320 components: - type: Transform rot: -1.5707963267948966 rad pos: 6.5,-4.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 321 components: - type: Transform rot: 3.141592653589793 rad pos: 6.5,-4.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 322 components: - type: Transform rot: 3.141592653589793 rad pos: 7.5,-4.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 323 components: - type: Transform rot: 3.141592653589793 rad pos: 8.5,-4.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 324 components: - type: Transform rot: 3.141592653589793 rad pos: 9.5,-4.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 325 components: - type: Transform rot: 3.141592653589793 rad pos: 10.5,-5.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 326 components: - type: Transform rot: -1.5707963267948966 rad pos: 9.5,-4.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 327 components: - type: Transform rot: -1.5707963267948966 rad pos: 9.5,-5.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 328 components: - type: Transform rot: 3.141592653589793 rad pos: 9.5,-6.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 329 components: - type: Transform rot: 3.141592653589793 rad pos: 8.5,-6.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 330 components: - type: Transform rot: -1.5707963267948966 rad pos: 8.5,-6.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 331 components: - type: Transform rot: -1.5707963267948966 rad pos: 8.5,-7.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 332 components: - type: Transform rot: -1.5707963267948966 rad pos: 8.5,-8.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 333 components: - type: Transform rot: -1.5707963267948966 rad pos: 9.5,-7.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 334 components: - type: Transform rot: 3.141592653589793 rad pos: 9.5,-7.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 335 components: - type: Transform rot: 3.141592653589793 rad pos: 10.5,-7.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 336 components: - type: Transform rot: -1.5707963267948966 rad pos: 10.5,-8.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 337 components: - type: Transform rot: 3.141592653589793 rad pos: 9.5,-9.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 338 components: - type: Transform rot: 3.141592653589793 rad pos: 8.5,-9.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 339 components: - type: Transform rot: -1.5707963267948966 rad pos: 8.5,-9.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 340 components: - type: Transform rot: 3.141592653589793 rad pos: 10.5,-10.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 341 components: - type: Transform rot: -1.5707963267948966 rad pos: 9.5,-10.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 342 components: - type: Transform rot: -1.5707963267948966 rad pos: 7.5,-10.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 343 components: - type: Transform rot: 3.141592653589793 rad pos: 7.5,-9.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 344 components: - type: Transform rot: 3.141592653589793 rad pos: 6.5,-9.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 345 components: - type: Transform rot: -1.5707963267948966 rad pos: 6.5,-9.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 346 components: - type: Transform rot: 3.141592653589793 rad pos: 5.5,-10.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 347 components: - type: Transform rot: 3.141592653589793 rad pos: 4.5,-10.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 348 components: - type: Transform rot: 3.141592653589793 rad pos: 3.5,-10.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 349 components: - type: Transform rot: -1.5707963267948966 rad pos: 3.5,-10.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 350 components: - type: Transform rot: -1.5707963267948966 rad pos: 1.5,-10.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 351 components: - type: Transform rot: -1.5707963267948966 rad pos: 2.5,-9.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 352 components: - type: Transform rot: 3.141592653589793 rad pos: 2.5,-9.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 353 components: - type: Transform rot: 3.141592653589793 rad pos: 3.5,-9.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 354 components: - type: Transform rot: 3.141592653589793 rad pos: 4.5,-9.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 355 components: - type: Transform rot: -1.5707963267948966 rad pos: 5.5,-8.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 356 components: - type: Transform rot: 3.141592653589793 rad pos: 5.5,-8.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 357 components: - type: Transform rot: 3.141592653589793 rad pos: 6.5,-8.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 358 components: - type: Transform rot: -1.5707963267948966 rad pos: 7.5,-7.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 359 components: - type: Transform rot: -1.5707963267948966 rad pos: 7.5,-6.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 360 components: - type: Transform rot: -1.5707963267948966 rad pos: 7.5,-5.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 361 components: - type: Transform rot: 3.141592653589793 rad pos: 7.5,-5.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 362 components: - type: Transform rot: 3.141592653589793 rad pos: 6.5,-6.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 363 components: - type: Transform rot: -1.5707963267948966 rad pos: 6.5,-6.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 364 components: - type: Transform rot: -1.5707963267948966 rad pos: 5.5,-7.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 365 components: - type: Transform rot: 3.141592653589793 rad pos: 4.5,-7.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 366 components: - type: Transform rot: -1.5707963267948966 rad pos: 4.5,-7.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 367 components: - type: Transform rot: 3.141592653589793 rad pos: 3.5,-8.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 368 components: - type: Transform rot: -1.5707963267948966 rad pos: 2.5,-8.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 369 components: - type: Transform rot: -1.5707963267948966 rad pos: 2.5,-7.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 370 components: - type: Transform rot: 3.141592653589793 rad pos: 2.5,-7.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 371 components: - type: Transform rot: -1.5707963267948966 rad pos: 4.5,-6.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 372 components: - type: Transform rot: 3.141592653589793 rad pos: 3.5,-6.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 373 components: - type: Transform rot: 3.141592653589793 rad pos: 2.5,-6.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 374 components: - type: Transform rot: -1.5707963267948966 rad pos: 2.5,-5.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 375 components: - type: Transform rot: 3.141592653589793 rad pos: 1.5,-5.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 376 components: - type: Transform rot: 3.141592653589793 rad pos: 0.5,-5.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 377 components: - type: Transform rot: 3.141592653589793 rad pos: -0.5,-5.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 378 components: - type: Transform rot: -1.5707963267948966 rad pos: -0.5,-5.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 379 components: - type: Transform rot: 3.141592653589793 rad pos: 0.5,-6.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 380 components: - type: Transform rot: -1.5707963267948966 rad pos: 1.5,-6.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 381 components: - type: Transform rot: -1.5707963267948966 rad pos: 1.5,-7.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 382 components: - type: Transform rot: -1.5707963267948966 rad pos: 1.5,-8.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 383 components: - type: Transform rot: -1.5707963267948966 rad pos: 1.5,-9.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 384 components: - type: Transform rot: 3.141592653589793 rad pos: -8.5,-10.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 385 components: - type: Transform rot: 3.141592653589793 rad pos: -7.5,-10.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 386 components: - type: Transform rot: -1.5707963267948966 rad pos: -7.5,-8.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 387 components: - type: Transform rot: 3.141592653589793 rad pos: -7.5,-9.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 388 components: - type: Transform rot: 3.141592653589793 rad pos: -6.5,-9.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 389 components: - type: Transform rot: -1.5707963267948966 rad pos: -5.5,-10.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 390 components: - type: Transform rot: -1.5707963267948966 rad pos: -5.5,-9.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 391 components: - type: Transform rot: -1.5707963267948966 rad pos: -5.5,-8.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 392 components: - type: Transform rot: -1.5707963267948966 rad pos: -6.5,-7.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 393 components: - type: Transform rot: 3.141592653589793 rad pos: -7.5,-7.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 394 components: - type: Transform rot: 3.141592653589793 rad pos: -6.5,-7.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 395 components: - type: Transform rot: 3.141592653589793 rad pos: -5.5,-7.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 396 components: - type: Transform rot: -1.5707963267948966 rad pos: -4.5,-7.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 397 components: - type: Transform rot: -1.5707963267948966 rad pos: -4.5,-8.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 398 components: - type: Transform rot: 3.141592653589793 rad pos: -4.5,-10.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 399 components: - type: Transform rot: 3.141592653589793 rad pos: -3.5,-10.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 400 components: - type: Transform rot: -1.5707963267948966 rad pos: -2.5,-10.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 401 components: - type: Transform rot: -1.5707963267948966 rad pos: -3.5,-9.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 402 components: - type: Transform rot: -1.5707963267948966 rad pos: -5.5,-6.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 403 components: - type: Transform rot: 3.141592653589793 rad pos: -6.5,-6.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 404 components: - type: Transform rot: 3.141592653589793 rad pos: -7.5,-6.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 405 components: - type: Transform rot: 3.141592653589793 rad pos: -8.5,-6.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 406 components: - type: Transform rot: -1.5707963267948966 rad pos: -6.5,-5.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 407 components: - type: Transform rot: 3.141592653589793 rad pos: -7.5,-5.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 408 components: - type: Transform rot: 3.141592653589793 rad pos: -7.5,-4.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 409 components: - type: Transform rot: 3.141592653589793 rad pos: -6.5,-4.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 410 components: - type: Transform rot: -1.5707963267948966 rad pos: -5.5,-4.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 411 components: - type: Transform rot: 3.141592653589793 rad pos: -5.5,-5.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 412 components: - type: Transform rot: -1.5707963267948966 rad pos: -4.5,-5.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 413 components: - type: Transform rot: 3.141592653589793 rad pos: -4.5,-5.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 414 components: - type: Transform rot: 3.141592653589793 rad pos: -3.5,-5.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 415 components: - type: Transform rot: -1.5707963267948966 rad pos: -2.5,-5.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 416 components: - type: Transform rot: 3.141592653589793 rad pos: -2.5,-6.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 417 components: - type: Transform rot: -1.5707963267948966 rad pos: -1.5,-6.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 418 components: - type: Transform rot: 3.141592653589793 rad pos: -1.5,-7.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 419 components: - type: Transform rot: 3.141592653589793 rad pos: -0.5,-7.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 420 components: - type: Transform rot: 3.141592653589793 rad pos: -4.5,-6.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 421 components: - type: Transform rot: -1.5707963267948966 rad pos: -3.5,-6.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 422 components: - type: Transform rot: -1.5707963267948966 rad pos: -3.5,-7.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 423 components: - type: Transform rot: 3.141592653589793 rad pos: -3.5,-8.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 424 components: - type: Transform rot: -1.5707963267948966 rad pos: -2.5,-8.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 425 components: - type: Transform rot: -1.5707963267948966 rad pos: -2.5,-7.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 426 components: - type: Transform rot: -1.5707963267948966 rad pos: -4.5,-3.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 427 components: - type: Transform rot: 3.141592653589793 rad pos: -4.5,-4.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 428 components: - type: Transform rot: 3.141592653589793 rad pos: -3.5,-4.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 429 components: - type: Transform rot: 3.141592653589793 rad pos: -2.5,-4.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 430 components: - type: Transform rot: -1.5707963267948966 rad pos: -1.5,-4.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 431 components: - type: Transform rot: 3.141592653589793 rad pos: -1.5,-5.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 432 components: - type: Transform rot: -1.5707963267948966 rad pos: 0.5,-9.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 433 components: - type: Transform rot: -1.5707963267948966 rad pos: 0.5,-8.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 434 components: - type: Transform rot: 3.141592653589793 rad pos: -0.5,-8.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 435 components: - type: Transform rot: 3.141592653589793 rad pos: -1.5,-8.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 436 components: - type: Transform rot: 3.141592653589793 rad pos: -2.5,-8.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 437 components: - type: Transform rot: 3.141592653589793 rad pos: -0.5,-10.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 438 components: - type: Transform rot: -1.5707963267948966 rad pos: -0.5,-9.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 439 components: - type: Transform rot: -1.5707963267948966 rad pos: -1.5,-9.5 parent: 10 - - type: Godmode - oldDamage: {} - uid: 440 components: - type: Transform rot: 3.141592653589793 rad pos: -2.5,-9.5 parent: 10 - - type: Godmode - oldDamage: {} ... diff --git a/Resources/Maps/Salvage/vegan-meatball.yml b/Resources/Maps/Salvage/vegan-meatball.yml index 824e3d0b7e..ab67aabadb 100644 --- a/Resources/Maps/Salvage/vegan-meatball.yml +++ b/Resources/Maps/Salvage/vegan-meatball.yml @@ -505,7 +505,7 @@ entities: chemicals: THC: Inherent: True - PotencyDivisor: 10 + potencyDivisor: 10 Max: 10 Min: 1 productPrototypes: @@ -578,7 +578,7 @@ entities: chemicals: Stellibinin: Inherent: True - PotencyDivisor: 4 + potencyDivisor: 4 Max: 25 Min: 1 productPrototypes: diff --git a/Resources/Maps/Shuttles/DeltaV/NTES_Box.yml b/Resources/Maps/Shuttles/DeltaV/NTES_Box.yml index 61831cd089..30e9979650 100644 --- a/Resources/Maps/Shuttles/DeltaV/NTES_Box.yml +++ b/Resources/Maps/Shuttles/DeltaV/NTES_Box.yml @@ -61,6 +61,10 @@ entities: - type: Gravity gravityShakeSound: !type:SoundPathSpecifier path: /Audio/Effects/alert.ogg + - type: DeviceNetwork + configurators: [] + deviceLists: [] + transmitFrequencyId: ShuttleTimer - type: DecalGrid chunkCollection: version: 2 diff --git a/Resources/Maps/Shuttles/DeltaV/NTES_Delta.yml b/Resources/Maps/Shuttles/DeltaV/NTES_Delta.yml index ea42d89ddd..764a81b452 100644 --- a/Resources/Maps/Shuttles/DeltaV/NTES_Delta.yml +++ b/Resources/Maps/Shuttles/DeltaV/NTES_Delta.yml @@ -68,6 +68,10 @@ entities: - type: Gravity gravityShakeSound: !type:SoundPathSpecifier path: /Audio/Effects/alert.ogg + - type: DeviceNetwork + configurators: [] + deviceLists: [] + transmitFrequencyId: ShuttleTimer - type: DecalGrid chunkCollection: version: 2 diff --git a/Resources/Maps/Shuttles/DeltaV/NTES_Kaeri.yml b/Resources/Maps/Shuttles/DeltaV/NTES_Kaeri.yml index 0a9fc598df..35a8eb637a 100644 --- a/Resources/Maps/Shuttles/DeltaV/NTES_Kaeri.yml +++ b/Resources/Maps/Shuttles/DeltaV/NTES_Kaeri.yml @@ -61,6 +61,10 @@ entities: - type: Gravity gravityShakeSound: !type:SoundPathSpecifier path: /Audio/Effects/alert.ogg + - type: DeviceNetwork + configurators: [] + deviceLists: [] + transmitFrequencyId: ShuttleTimer - type: DecalGrid chunkCollection: version: 2 diff --git a/Resources/Maps/Shuttles/DeltaV/NTES_Lox.yml b/Resources/Maps/Shuttles/DeltaV/NTES_Lox.yml index 9522cd74d3..e04c801d28 100644 --- a/Resources/Maps/Shuttles/DeltaV/NTES_Lox.yml +++ b/Resources/Maps/Shuttles/DeltaV/NTES_Lox.yml @@ -66,6 +66,10 @@ entities: - type: Gravity gravityShakeSound: !type:SoundPathSpecifier path: /Audio/Effects/alert.ogg + - type: DeviceNetwork + configurators: [] + deviceLists: [] + transmitFrequencyId: ShuttleTimer - type: DecalGrid chunkCollection: version: 2 diff --git a/Resources/Maps/Shuttles/DeltaV/NTES_Propeller.yml b/Resources/Maps/Shuttles/DeltaV/NTES_Propeller.yml index 929103c42a..c814fb0b34 100644 --- a/Resources/Maps/Shuttles/DeltaV/NTES_Propeller.yml +++ b/Resources/Maps/Shuttles/DeltaV/NTES_Propeller.yml @@ -90,6 +90,10 @@ entities: - type: Gravity gravityShakeSound: !type:SoundPathSpecifier path: /Audio/Effects/alert.ogg + - type: DeviceNetwork + configurators: [] + deviceLists: [] + transmitFrequencyId: ShuttleTimer - type: DecalGrid chunkCollection: version: 2 diff --git a/Resources/Maps/Shuttles/ShuttleEvent/disaster_evacpod.yml b/Resources/Maps/Shuttles/ShuttleEvent/disaster_evacpod.yml new file mode 100644 index 0000000000..be1ca4ffde --- /dev/null +++ b/Resources/Maps/Shuttles/ShuttleEvent/disaster_evacpod.yml @@ -0,0 +1,350 @@ +meta: + format: 6 + postmapinit: false +tilemap: + 0: Space + 82: FloorShuttleOrange + 85: FloorShuttleWhite + 120: Lattice + 121: Plating +entities: +- proto: "" + entities: + - uid: 1 + components: + - type: MetaData + name: Evacuation pod + - type: Transform + parent: invalid + - type: MapGrid + chunks: + 0,0: + ind: 0,0 + tiles: eQAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + version: 6 + -1,0: + ind: -1,0 + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + version: 6 + 0,-1: + ind: 0,-1 + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + version: 6 + -1,-1: + ind: -1,-1 + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAA + 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,-1: + 0: 4368 + 1: 32 + 0,0: + 1: 2 + -1,0: + 1: 8 + -1,-1: + 1: 128 + 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: NavMap +- proto: AirlockShuttle + entities: + - uid: 2 + components: + - type: Transform + pos: 0.5,-2.5 + parent: 1 +- proto: APCBasic + entities: + - uid: 3 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 1.5,-0.5 + parent: 1 +- proto: AtmosDeviceFanTiny + entities: + - uid: 4 + components: + - type: Transform + pos: 0.5,-2.5 + parent: 1 +- proto: BoxMRE + entities: + - uid: 6 + components: + - type: Transform + parent: 5 + - type: Physics + canCollide: False + - type: InsideEntityStorage +- proto: CableApcExtension + entities: + - uid: 10 + components: + - type: Transform + pos: 1.5,-0.5 + parent: 1 + - uid: 11 + components: + - type: Transform + pos: 0.5,-0.5 + parent: 1 + - uid: 12 + components: + - type: Transform + pos: 0.5,-1.5 + parent: 1 +- proto: CableHV + entities: + - uid: 13 + components: + - type: Transform + pos: -0.5,-1.5 + parent: 1 + - uid: 14 + components: + - type: Transform + pos: -0.5,-0.5 + parent: 1 +- proto: CableMV + entities: + - uid: 15 + components: + - type: Transform + pos: -0.5,-0.5 + parent: 1 + - uid: 16 + components: + - type: Transform + pos: 0.5,-0.5 + parent: 1 + - uid: 17 + components: + - type: Transform + pos: 1.5,-0.5 + parent: 1 +- proto: ChairPilotSeat + entities: + - uid: 18 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 0.5,-1.5 + parent: 1 +- proto: ClosetWallMaintenanceFilledRandom + entities: + - uid: 5 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 1.5,-1.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: + - 8 + - 9 + - 6 + - 7 +- proto: ClothingOuterSuitEmergency + entities: + - uid: 7 + components: + - type: Transform + parent: 5 + - type: Physics + canCollide: False + - type: InsideEntityStorage +- proto: ComputerShuttle + entities: + - uid: 19 + components: + - type: Transform + pos: 0.5,-0.5 + parent: 1 +- proto: DisasterVictimSpawner + entities: + - uid: 20 + components: + - type: Transform + pos: 0.5,-1.5 + parent: 1 +- proto: GeneratorWallmountAPU + entities: + - uid: 21 + components: + - type: Transform + pos: -0.5,-1.5 + parent: 1 +- proto: Gyroscope + entities: + - uid: 32 + components: + - type: Transform + pos: -0.5,-2.5 + parent: 1 +- proto: HandheldGPSBasic + entities: + - uid: 8 + components: + - type: Transform + parent: 5 + - type: Physics + canCollide: False + - type: InsideEntityStorage +- proto: Poweredlight + entities: + - uid: 22 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 0.5,-1.5 + parent: 1 +- proto: ShuttleWindow + entities: + - uid: 23 + components: + - type: Transform + pos: 0.5,0.5 + parent: 1 +- proto: SubstationWallBasic + entities: + - uid: 24 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -0.5,-0.5 + parent: 1 +- proto: Thruster + entities: + - uid: 25 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 1.5,-2.5 + parent: 1 +- proto: WallShuttle + entities: + - uid: 26 + components: + - type: Transform + pos: -0.5,-0.5 + parent: 1 + - uid: 27 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -0.5,-1.5 + parent: 1 + - uid: 28 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 1.5,-0.5 + parent: 1 + - uid: 29 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 1.5,-1.5 + parent: 1 +- proto: WallShuttleDiagonal + entities: + - uid: 30 + components: + - type: Transform + pos: -0.5,0.5 + parent: 1 + - uid: 31 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 1.5,0.5 + parent: 1 +- proto: WeaponLaserSvalinn + entities: + - uid: 9 + components: + - type: Transform + parent: 5 + - type: Physics + canCollide: False + - type: InsideEntityStorage +... diff --git a/Resources/Maps/Shuttles/ShuttleEvent/honki.yml b/Resources/Maps/Shuttles/ShuttleEvent/honki.yml new file mode 100644 index 0000000000..0fca6a8ba9 --- /dev/null +++ b/Resources/Maps/Shuttles/ShuttleEvent/honki.yml @@ -0,0 +1,2666 @@ +meta: + format: 6 + postmapinit: false +tilemap: + 0: Space + 20: FloorCarpetClown + 25: FloorClown + 120: Lattice + 121: Plating +entities: +- proto: "" + entities: + - uid: 1 + components: + - type: MetaData + name: Honkomother + - type: Transform + pos: 1.212189,-1.7551664 + parent: invalid + - type: MapGrid + chunks: + 0,0: + ind: 0,0 + tiles: GQAAAAAAGQAAAAAAGQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAFAAAAAAAGQAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAFAAAAAAAeQAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + version: 6 + 0,-1: + ind: 0,-1 + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGQAAAAAAGQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGQAAAAAAGQAAAAAAeQAAAAAAGQAAAAAAGQAAAAAAGQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGQAAAAAAGQAAAAAAGQAAAAAAGQAAAAAAGQAAAAAAGQAAAAAAeQAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGQAAAAAAGQAAAAAAeQAAAAAAGQAAAAAAGQAAAAAAGQAAAAAAeQAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGQAAAAAAGQAAAAAAGQAAAAAAeQAAAAAAGQAAAAAAGQAAAAAAGQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGQAAAAAAGQAAAAAAGQAAAAAAGQAAAAAAGQAAAAAAGQAAAAAAGQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGQAAAAAAGQAAAAAAGQAAAAAAeQAAAAAAGQAAAAAAGQAAAAAAGQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + version: 6 + -1,0: + ind: -1,0 + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAGQAAAAAAGQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAGQAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeQAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + version: 6 + -1,-1: + ind: -1,-1 + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAGQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAGQAAAAAAGQAAAAAAGQAAAAAAeQAAAAAAGQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeQAAAAAAGQAAAAAAGQAAAAAAGQAAAAAAGQAAAAAAGQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeQAAAAAAGQAAAAAAGQAAAAAAGQAAAAAAeQAAAAAAGQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAGQAAAAAAGQAAAAAAGQAAAAAAeQAAAAAAGQAAAAAAGQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAGQAAAAAAGQAAAAAAGQAAAAAAGQAAAAAAGQAAAAAAGQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAGQAAAAAAGQAAAAAAGQAAAAAAeQAAAAAAGQAAAAAAGQAAAAAA + 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: + - node: + color: '#EFB34196' + id: MiniTileWhiteCornerNe + decals: + 21: 5,-5 + 39: -4,-1 + 40: 6,-1 + - node: + color: '#EFB34196' + id: MiniTileWhiteCornerNw + decals: + 20: -5,-5 + 41: -6,-1 + 42: 4,-1 + - node: + color: '#EFB34196' + id: MiniTileWhiteCornerSe + decals: + 0: 2,-3 + 23: 5,-7 + 35: -4,-3 + 36: 6,-3 + - node: + color: '#EFB34196' + id: MiniTileWhiteCornerSw + decals: + 1: -2,-3 + 33: -5,-7 + 37: -6,-3 + 38: 4,-3 + - node: + color: '#EFB34196' + id: MiniTileWhiteInnerNe + decals: + 57: -2,0 + - node: + color: '#EFB34196' + id: MiniTileWhiteInnerNw + decals: + 56: 2,0 + - node: + color: '#EFB34196' + id: MiniTileWhiteLineE + decals: + 2: 2,-2 + 3: 2,-1 + 4: 2,0 + 5: 2,1 + 22: 5,-6 + 47: -4,-2 + 48: 6,-2 + 55: -2,1 + - node: + color: '#EFB34196' + id: MiniTileWhiteLineN + decals: + 13: 0,-5 + 14: 4,-5 + 15: -1,-5 + 16: 1,-5 + 17: 3,-5 + 18: -3,-5 + 19: -4,-5 + 49: -5,-1 + 50: 5,-1 + 51: -1,0 + 52: 0,0 + 53: 1,0 + - node: + color: '#EFB34196' + id: MiniTileWhiteLineS + decals: + 10: -1,-3 + 11: 0,-3 + 12: 1,-3 + 24: 4,-7 + 25: 3,-7 + 26: 2,-7 + 27: 1,-7 + 28: 0,-7 + 29: -1,-7 + 30: -2,-7 + 31: -3,-7 + 32: -4,-7 + 43: -5,-3 + 44: 5,-3 + - node: + color: '#EFB34196' + id: MiniTileWhiteLineW + decals: + 6: -2,-2 + 7: -2,-1 + 8: -2,0 + 9: -2,1 + 34: -5,-6 + 45: 4,-2 + 46: -6,-2 + 54: 2,1 + - type: GridAtmosphere + version: 2 + data: + tiles: + 0,0: + 0: 887 + 1: 18432 + 0,-1: + 0: 30576 + -1,0: + 0: 2252 + 1: 16912 + 1,0: + 1: 56 + 1,-1: + 0: 30576 + 0,-2: + 0: 48051 + -1,-2: + 0: 48056 + -1,-1: + 0: 56784 + 0,-3: + 1: 32768 + 1,-3: + 1: 12288 + 1,-2: + 0: 13104 + 1: 34820 + -2,0: + 1: 130 + -2,-1: + 0: 52928 + -2,-2: + 1: 8708 + 0: 34944 + -2,-3: + 1: 32768 + -1,-3: + 1: 12288 + 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 +- proto: AirCanister + entities: + - uid: 2 + components: + - type: Transform + anchored: True + pos: -1.5,-2.5 + parent: 1 + - type: Physics + bodyType: Static + - uid: 3 + components: + - type: Transform + anchored: True + pos: 2.5,-2.5 + parent: 1 + - type: Physics + bodyType: Static +- proto: AirlockShuttle + entities: + - uid: 4 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -6.5,-1.5 + parent: 1 +- proto: AltarBananium + entities: + - uid: 374 + components: + - type: Transform + pos: 6.5,-1.5 + parent: 1 +- proto: APCBasic + entities: + - uid: 5 + components: + - type: Transform + pos: 1.5,-3.5 + parent: 1 +- proto: AtmosDeviceFanTiny + entities: + - uid: 6 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -6.5,-1.5 + parent: 1 +- proto: BananaPhoneInstrument + entities: + - uid: 7 + components: + - type: Transform + pos: -1.4946816,-0.2775966 + parent: 1 +- proto: BananiumDoor + entities: + - uid: 8 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 2.5,-5.5 + parent: 1 + - uid: 9 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -2.5,-1.5 + parent: 1 + - uid: 10 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 3.5,-1.5 + parent: 1 + - uid: 11 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -1.5,-5.5 + parent: 1 + - uid: 12 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 0.5,-3.5 + parent: 1 +- proto: BarricadeBlock + entities: + - uid: 372 + components: + - type: Transform + pos: -1.5,-5.5 + parent: 1 +- proto: Bed + entities: + - uid: 13 + components: + - type: Transform + pos: 3.5,-6.5 + parent: 1 + - uid: 14 + components: + - type: Transform + pos: 3.5,-4.5 + parent: 1 + - uid: 15 + components: + - type: Transform + pos: 5.5,-6.5 + parent: 1 + - uid: 16 + components: + - type: Transform + pos: 5.5,-4.5 + parent: 1 +- proto: BedsheetSpawner + entities: + - uid: 17 + components: + - type: Transform + pos: 3.5,-6.5 + parent: 1 + - uid: 18 + components: + - type: Transform + pos: 5.5,-6.5 + parent: 1 + - uid: 19 + components: + - type: Transform + pos: 3.5,-4.5 + parent: 1 + - uid: 20 + components: + - type: Transform + pos: 5.5,-4.5 + parent: 1 +- proto: BikeHornImplanter + entities: + - uid: 22 + components: + - type: Transform + parent: 21 + - type: Physics + canCollide: False + - type: InsideEntityStorage + - uid: 27 + components: + - type: Transform + parent: 26 + - type: Physics + canCollide: False + - type: InsideEntityStorage +- proto: CableApcExtension + entities: + - uid: 31 + components: + - type: Transform + pos: -0.5,-2.5 + parent: 1 + - uid: 32 + components: + - type: Transform + pos: -0.5,-1.5 + parent: 1 + - uid: 33 + components: + - type: Transform + pos: 1.5,-3.5 + parent: 1 + - uid: 34 + components: + - type: Transform + pos: 1.5,-4.5 + parent: 1 + - uid: 35 + components: + - type: Transform + pos: 1.5,-5.5 + parent: 1 + - uid: 36 + components: + - type: Transform + pos: 1.5,-6.5 + parent: 1 + - uid: 37 + components: + - type: Transform + pos: 0.5,-5.5 + parent: 1 + - uid: 38 + components: + - type: Transform + pos: -0.5,-5.5 + parent: 1 + - uid: 39 + components: + - type: Transform + pos: -0.5,-6.5 + parent: 1 + - uid: 40 + components: + - type: Transform + pos: -0.5,-7.5 + parent: 1 + - uid: 41 + components: + - type: Transform + pos: 1.5,-2.5 + parent: 1 + - uid: 42 + components: + - type: Transform + pos: -0.5,-4.5 + parent: 1 + - uid: 43 + components: + - type: Transform + pos: -1.5,-5.5 + parent: 1 + - uid: 44 + components: + - type: Transform + pos: -2.5,-5.5 + parent: 1 + - uid: 45 + components: + - type: Transform + pos: -3.5,-5.5 + parent: 1 + - uid: 46 + components: + - type: Transform + pos: -4.5,-5.5 + parent: 1 + - uid: 47 + components: + - type: Transform + pos: 3.5,-5.5 + parent: 1 + - uid: 48 + components: + - type: Transform + pos: 4.5,-5.5 + parent: 1 + - uid: 49 + components: + - type: Transform + pos: 5.5,-5.5 + parent: 1 + - uid: 50 + components: + - type: Transform + pos: -0.5,-2.5 + parent: 1 + - uid: 51 + components: + - type: Transform + pos: -0.5,-1.5 + parent: 1 + - uid: 52 + components: + - type: Transform + pos: -0.5,-0.5 + parent: 1 + - uid: 53 + components: + - type: Transform + pos: 1.5,-1.5 + parent: 1 + - uid: 54 + components: + - type: Transform + pos: 4.5,-1.5 + parent: 1 + - uid: 55 + components: + - type: Transform + pos: 1.5,-0.5 + parent: 1 + - uid: 56 + components: + - type: Transform + pos: 1.5,0.5 + parent: 1 + - uid: 57 + components: + - type: Transform + pos: 1.5,1.5 + parent: 1 + - uid: 58 + components: + - type: Transform + pos: -0.5,1.5 + parent: 1 + - uid: 59 + components: + - type: Transform + pos: -0.5,0.5 + parent: 1 + - uid: 60 + components: + - type: Transform + pos: 2.5,-1.5 + parent: 1 + - uid: 61 + components: + - type: Transform + pos: 3.5,-1.5 + parent: 1 + - uid: 62 + components: + - type: Transform + pos: 5.5,-1.5 + parent: 1 + - uid: 63 + components: + - type: Transform + pos: -2.5,-1.5 + parent: 1 + - uid: 64 + components: + - type: Transform + pos: -3.5,-1.5 + parent: 1 + - uid: 65 + components: + - type: Transform + pos: -4.5,-1.5 + parent: 1 + - uid: 66 + components: + - type: Transform + pos: -5.5,-1.5 + parent: 1 + - uid: 67 + components: + - type: Transform + pos: -4.5,-0.5 + parent: 1 + - uid: 68 + components: + - type: Transform + pos: -4.5,0.5 + parent: 1 + - uid: 69 + components: + - type: Transform + pos: 5.5,-0.5 + parent: 1 + - uid: 70 + components: + - type: Transform + pos: 5.5,0.5 + parent: 1 + - uid: 71 + components: + - type: Transform + pos: 6.5,-5.5 + parent: 1 + - uid: 72 + components: + - type: Transform + pos: 5.5,-5.5 + parent: 1 + - uid: 73 + components: + - type: Transform + pos: 4.5,-6.5 + parent: 1 + - uid: 74 + components: + - type: Transform + pos: 4.5,-7.5 + parent: 1 + - uid: 75 + components: + - type: Transform + pos: -3.5,-7.5 + parent: 1 + - uid: 76 + components: + - type: Transform + pos: -3.5,-6.5 + parent: 1 + - uid: 77 + components: + - type: Transform + pos: -5.5,-5.5 + parent: 1 + - uid: 78 + components: + - type: Transform + pos: -0.5,-3.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: 2.5,-5.5 + parent: 1 +- proto: CableHV + entities: + - uid: 82 + components: + - type: Transform + pos: -0.5,-8.5 + parent: 1 + - uid: 83 + components: + - type: Transform + pos: 0.5,-8.5 + parent: 1 + - uid: 84 + components: + - type: Transform + pos: 1.5,-8.5 + parent: 1 + - uid: 85 + components: + - type: Transform + pos: 0.5,-7.5 + parent: 1 +- proto: CableMV + entities: + - uid: 86 + components: + - type: Transform + pos: 0.5,-7.5 + parent: 1 + - uid: 87 + components: + - type: Transform + pos: 1.5,-3.5 + parent: 1 + - uid: 88 + components: + - type: Transform + pos: 0.5,-6.5 + parent: 1 + - uid: 89 + components: + - type: Transform + pos: 0.5,-5.5 + parent: 1 + - uid: 90 + components: + - type: Transform + pos: 0.5,-4.5 + parent: 1 + - uid: 91 + components: + - type: Transform + pos: 1.5,-4.5 + parent: 1 +- proto: ChairPilotSeat + entities: + - uid: 92 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 0.5,1.5 + parent: 1 +- proto: CigaretteBanana + entities: + - uid: 94 + components: + - type: Transform + parent: 93 + - type: Physics + canCollide: False + - type: InsideEntityStorage + - uid: 95 + components: + - type: Transform + parent: 93 + - type: Physics + canCollide: False + - type: InsideEntityStorage + - uid: 96 + components: + - type: Transform + parent: 93 + - type: Physics + canCollide: False + - type: InsideEntityStorage +- proto: ClothingOuterHardsuitClown + entities: + - uid: 97 + components: + - type: Transform + parent: 93 + - type: Physics + canCollide: False + - type: InsideEntityStorage + - uid: 100 + components: + - type: Transform + parent: 99 + - type: Physics + canCollide: False + - type: InsideEntityStorage + - uid: 104 + components: + - type: Transform + parent: 103 + - type: Physics + canCollide: False + - type: InsideEntityStorage +- proto: ClothingOuterWinterClown + entities: + - uid: 105 + components: + - type: Transform + parent: 103 + - type: Physics + canCollide: False + - type: InsideEntityStorage +- proto: ClownRecorder + entities: + - uid: 107 + components: + - type: Transform + pos: 2.6453638,0.42502415 + parent: 1 +- proto: ClownTroupeSpawner + entities: + - uid: 108 + components: + - type: Transform + pos: 3.5,-6.5 + parent: 1 + - uid: 109 + components: + - type: Transform + pos: 5.5,-4.5 + parent: 1 + - uid: 110 + components: + - type: Transform + pos: 5.5,-6.5 + parent: 1 +- proto: CluwneHorn + entities: + - uid: 23 + components: + - type: Transform + parent: 21 + - type: Physics + canCollide: False + - type: InsideEntityStorage + - uid: 28 + components: + - type: Transform + parent: 26 + - type: Physics + canCollide: False + - type: InsideEntityStorage +- proto: ComfyChair + entities: + - uid: 111 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -0.5,-0.5 + parent: 1 + - uid: 112 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 1.5,-0.5 + parent: 1 +- proto: ComputerShuttle + entities: + - uid: 113 + components: + - type: Transform + pos: 0.5,2.5 + parent: 1 +- proto: CrateCargoGambling + entities: + - uid: 114 + components: + - type: Transform + pos: -0.5,-2.5 + parent: 1 +- proto: CratePirate + entities: + - uid: 21 + components: + - type: Transform + pos: 4.5,-0.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: + - 25 + - 23 + - 22 + - 24 + - 261 + paper_label: !type:ContainerSlot + showEnts: False + occludes: True + ent: null + - uid: 26 + components: + - type: Transform + pos: 4.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: + - 29 + - 315 + - 27 + - 28 + - 30 + paper_label: !type:ContainerSlot + showEnts: False + occludes: True + ent: null + - uid: 115 + components: + - type: Transform + pos: 6.5,-2.5 + parent: 1 + - type: ContainerContainer + containers: + entity_storage: !type:Container + showEnts: False + occludes: True + ents: + - 125 + - 124 + - 123 + - 122 + - 121 + - 126 + - 120 + - 119 + - 118 + - 117 + - 116 + paper_label: !type:ContainerSlot + showEnts: False + occludes: True + ent: null + - uid: 127 + components: + - type: Transform + pos: 6.5,-0.5 + parent: 1 + - type: ContainerContainer + containers: + entity_storage: !type:Container + showEnts: False + occludes: True + ents: + - 128 + - 129 + - 130 + - 131 + - 132 + - 133 + - 134 + - 135 + - 138 + - 136 + - 137 + paper_label: !type:ContainerSlot + showEnts: False + occludes: True + ent: null +- proto: DehydratedSpaceCarp + entities: + - uid: 24 + components: + - type: Transform + parent: 21 + - type: Physics + canCollide: False + - type: InsideEntityStorage + - uid: 29 + components: + - type: Transform + parent: 26 + - type: Physics + canCollide: False + - type: InsideEntityStorage +- proto: DeviceQuantumSpinInverter + entities: + - uid: 25 + components: + - type: Transform + parent: 21 + - type: Physics + canCollide: False + - type: InsideEntityStorage + - uid: 30 + components: + - type: Transform + parent: 26 + - type: Physics + canCollide: False + - type: InsideEntityStorage +- proto: EmergencyFunnyOxygenTankFilled + entities: + - uid: 98 + components: + - type: Transform + parent: 93 + - type: Physics + canCollide: False + - type: InsideEntityStorage + - uid: 101 + components: + - type: Transform + parent: 99 + - type: Physics + canCollide: False + - type: InsideEntityStorage + - uid: 106 + components: + - type: Transform + parent: 103 + - type: Physics + canCollide: False + - type: InsideEntityStorage +- proto: FloorBananiumEntity + entities: + - uid: 139 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -0.5,-7.5 + parent: 1 + - uid: 140 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 0.5,-7.5 + parent: 1 + - uid: 141 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 1.5,-7.5 + parent: 1 + - uid: 142 + components: + - type: Transform + pos: -1.5,-6.5 + parent: 1 + - uid: 143 + components: + - type: Transform + pos: -1.5,-4.5 + parent: 1 + - uid: 373 + components: + - type: Transform + pos: 0.5,-3.5 + parent: 1 +- proto: FoodBanana + entities: + - uid: 116 + components: + - type: Transform + parent: 115 + - type: Physics + canCollide: False + - type: InsideEntityStorage + - uid: 117 + components: + - type: Transform + parent: 115 + - type: Physics + canCollide: False + - type: InsideEntityStorage + - uid: 118 + components: + - type: Transform + parent: 115 + - type: Physics + canCollide: False + - type: InsideEntityStorage + - uid: 119 + components: + - type: Transform + parent: 115 + - type: Physics + canCollide: False + - type: InsideEntityStorage + - uid: 128 + components: + - type: Transform + parent: 127 + - type: Physics + canCollide: False + - type: InsideEntityStorage + - uid: 129 + components: + - type: Transform + parent: 127 + - type: Physics + canCollide: False + - type: InsideEntityStorage + - uid: 130 + components: + - type: Transform + parent: 127 + - type: Physics + canCollide: False + - type: InsideEntityStorage + - uid: 131 + components: + - type: Transform + parent: 127 + - type: Physics + canCollide: False + - type: InsideEntityStorage +- proto: FoodBurgerClown + entities: + - uid: 144 + components: + - type: Transform + pos: -1.5971907,0.54355335 + parent: 1 + - uid: 145 + components: + - type: Transform + pos: -1.405974,0.27368832 + parent: 1 +- proto: FoodCakeClown + entities: + - uid: 146 + components: + - type: Transform + pos: 2.4229474,-0.24963892 + parent: 1 +- proto: FoodMeatClown + entities: + - uid: 147 + components: + - type: Transform + pos: 3.4782665,-4.592343 + parent: 1 +- proto: FoodPieBananaCream + entities: + - uid: 120 + components: + - type: Transform + parent: 115 + - type: Physics + canCollide: False + - type: InsideEntityStorage + - uid: 121 + components: + - type: Transform + parent: 115 + - type: Physics + canCollide: False + - type: InsideEntityStorage + - uid: 122 + components: + - type: Transform + parent: 115 + - type: Physics + canCollide: False + - type: InsideEntityStorage + - uid: 123 + components: + - type: Transform + parent: 115 + - type: Physics + canCollide: False + - type: InsideEntityStorage + - uid: 124 + components: + - type: Transform + parent: 115 + - type: Physics + canCollide: False + - type: InsideEntityStorage + - uid: 125 + components: + - type: Transform + parent: 115 + - type: Physics + canCollide: False + - type: InsideEntityStorage + - uid: 132 + components: + - type: Transform + parent: 127 + - type: Physics + canCollide: False + - type: InsideEntityStorage + - uid: 133 + components: + - type: Transform + parent: 127 + - type: Physics + canCollide: False + - type: InsideEntityStorage + - uid: 134 + components: + - type: Transform + parent: 127 + - type: Physics + canCollide: False + - type: InsideEntityStorage + - uid: 135 + components: + - type: Transform + parent: 127 + - type: Physics + canCollide: False + - type: InsideEntityStorage + - uid: 136 + components: + - type: Transform + parent: 127 + - type: Physics + canCollide: False + - type: InsideEntityStorage + - uid: 137 + components: + - type: Transform + parent: 127 + - type: Physics + canCollide: False + - type: InsideEntityStorage +- proto: GasPassiveVent + entities: + - uid: 148 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -4.5,1.5 + parent: 1 + - uid: 149 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 5.5,1.5 + parent: 1 +- proto: GasPipeBend + entities: + - uid: 150 + components: + - type: Transform + pos: 5.5,-0.5 + parent: 1 + - uid: 151 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -4.5,-0.5 + parent: 1 + - uid: 152 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -3.5,-4.5 + parent: 1 + - uid: 153 + components: + - type: Transform + pos: 4.5,-4.5 + parent: 1 +- proto: GasPipeFourway + entities: + - uid: 154 + components: + - type: Transform + pos: 0.5,-2.5 + parent: 1 + - uid: 155 + components: + - type: Transform + pos: 0.5,-1.5 + parent: 1 + - uid: 156 + components: + - type: Transform + pos: 0.5,-5.5 + parent: 1 + - uid: 157 + components: + - type: Transform + pos: -0.5,-4.5 + parent: 1 + - uid: 158 + components: + - type: Transform + pos: 1.5,-4.5 + parent: 1 + - uid: 159 + components: + - type: Transform + pos: 1.5,-0.5 + parent: 1 + - uid: 160 + components: + - type: Transform + pos: -0.5,-0.5 + parent: 1 +- proto: GasPipeStraight + entities: + - uid: 161 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -0.5,-2.5 + parent: 1 + - uid: 162 + components: + - type: Transform + pos: 0.5,-3.5 + parent: 1 + - uid: 163 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 3.5,-1.5 + parent: 1 + - uid: 164 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 1.5,-1.5 + parent: 1 + - uid: 165 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 1.5,-5.5 + parent: 1 + - uid: 166 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 1.5,1.5 + parent: 1 + - uid: 167 + components: + - type: Transform + pos: 0.5,-4.5 + parent: 1 + - uid: 168 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 2.5,-1.5 + parent: 1 + - uid: 169 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -0.5,-1.5 + parent: 1 + - uid: 170 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -1.5,-1.5 + parent: 1 + - uid: 171 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -2.5,-1.5 + parent: 1 + - uid: 172 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -0.5,-5.5 + parent: 1 + - uid: 173 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -1.5,-5.5 + parent: 1 + - uid: 174 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 2.5,-5.5 + parent: 1 + - uid: 175 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 2.5,-0.5 + parent: 1 + - uid: 176 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -1.5,-4.5 + parent: 1 + - uid: 177 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 2.5,-4.5 + parent: 1 + - uid: 178 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 1.5,-3.5 + parent: 1 + - uid: 179 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -0.5,-3.5 + parent: 1 + - uid: 180 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 3.5,-0.5 + parent: 1 + - uid: 181 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -2.5,-0.5 + parent: 1 + - uid: 182 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -1.5,-0.5 + parent: 1 + - uid: 183 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -0.5,-1.5 + parent: 1 + - uid: 184 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 1.5,-1.5 + parent: 1 + - uid: 185 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 1.5,-2.5 + parent: 1 + - uid: 186 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 0.5,0.5 + parent: 1 + - uid: 187 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 2.5,1.5 + parent: 1 + - uid: 188 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 3.5,1.5 + parent: 1 + - uid: 189 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 4.5,1.5 + parent: 1 + - uid: 190 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -0.5,1.5 + parent: 1 + - uid: 191 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -1.5,1.5 + parent: 1 + - uid: 192 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -2.5,1.5 + parent: 1 + - uid: 193 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -3.5,1.5 + parent: 1 + - uid: 194 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 0.5,-4.5 + parent: 1 + - uid: 195 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -3.5,-0.5 + parent: 1 + - uid: 196 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 4.5,-0.5 + parent: 1 + - uid: 197 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 3.5,-4.5 + parent: 1 + - uid: 198 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -2.5,-4.5 + parent: 1 + - uid: 199 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 1.5,-2.5 + parent: 1 + - uid: 200 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -0.5,-2.5 + parent: 1 +- proto: GasPipeTJunction + entities: + - uid: 201 + components: + - type: Transform + pos: 0.5,1.5 + parent: 1 + - uid: 202 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 0.5,-0.5 + parent: 1 +- proto: GasPort + entities: + - uid: 203 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -1.5,-2.5 + parent: 1 + - uid: 204 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 2.5,-2.5 + parent: 1 +- proto: GasVentPump + entities: + - uid: 205 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 3.5,-5.5 + parent: 1 + - uid: 206 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 4.5,-1.5 + parent: 1 + - uid: 207 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -2.5,-5.5 + parent: 1 + - uid: 208 + components: + - type: Transform + pos: 0.5,-0.5 + parent: 1 + - uid: 209 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 0.5,-6.5 + parent: 1 + - uid: 210 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -3.5,-1.5 + parent: 1 +- proto: GasVentScrubber + entities: + - uid: 211 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -3.5,-5.5 + parent: 1 + - uid: 212 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 5.5,-1.5 + parent: 1 + - uid: 213 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 4.5,-5.5 + parent: 1 + - uid: 214 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 1.5,-5.5 + parent: 1 + - uid: 215 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -0.5,-5.5 + parent: 1 + - uid: 216 + components: + - type: Transform + pos: -0.5,0.5 + parent: 1 + - uid: 217 + components: + - type: Transform + pos: 1.5,0.5 + parent: 1 + - uid: 218 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -4.5,-1.5 + parent: 1 +- proto: GeneratorWallmountAPU + entities: + - uid: 219 + components: + - type: Transform + pos: -0.5,-8.5 + parent: 1 + - uid: 220 + components: + - type: Transform + pos: 0.5,-8.5 + parent: 1 + - uid: 221 + components: + - type: Transform + pos: 1.5,-8.5 + parent: 1 +- proto: GoldenBikeHorn + entities: + - uid: 222 + components: + - type: Transform + pos: 6.4591703,-1.2964956 + parent: 1 +- proto: GravityGeneratorMini + entities: + - uid: 223 + components: + - type: Transform + pos: -0.5,-7.5 + parent: 1 +- proto: Grille + entities: + - uid: 224 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -1.5,2.5 + parent: 1 + - uid: 225 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -0.5,3.5 + parent: 1 + - uid: 226 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 0.5,3.5 + parent: 1 + - uid: 227 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 1.5,3.5 + parent: 1 + - uid: 228 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 2.5,2.5 + parent: 1 + - uid: 229 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 4.5,0.5 + parent: 1 + - uid: 230 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 5.5,0.5 + parent: 1 + - uid: 231 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 6.5,0.5 + parent: 1 + - uid: 232 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -3.5,0.5 + parent: 1 + - uid: 233 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -4.5,0.5 + parent: 1 + - uid: 234 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -5.5,0.5 + parent: 1 + - uid: 235 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -5.5,-4.5 + parent: 1 + - uid: 236 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -5.5,-5.5 + parent: 1 + - uid: 237 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -5.5,-6.5 + parent: 1 + - uid: 238 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 6.5,-4.5 + parent: 1 + - uid: 239 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 6.5,-5.5 + parent: 1 + - uid: 240 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 6.5,-6.5 + parent: 1 + - uid: 241 + components: + - type: Transform + pos: -1.5,-6.5 + parent: 1 + - uid: 242 + components: + - type: Transform + pos: -1.5,-4.5 + parent: 1 +- proto: GrilleDiagonal + entities: + - uid: 243 + components: + - type: Transform + pos: -3.5,1.5 + parent: 1 + - uid: 244 + components: + - type: Transform + pos: -2.5,2.5 + parent: 1 + - uid: 245 + components: + - type: Transform + pos: -1.5,3.5 + parent: 1 + - uid: 246 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 2.5,3.5 + parent: 1 + - uid: 247 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 3.5,2.5 + parent: 1 + - uid: 248 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 2.5,1.5 + parent: 1 + - uid: 249 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 1.5,2.5 + parent: 1 + - uid: 250 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -0.5,2.5 + parent: 1 + - uid: 251 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -1.5,1.5 + parent: 1 + - uid: 252 + components: + - type: Transform + pos: -6.5,0.5 + parent: 1 + - uid: 253 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 4.5,1.5 + parent: 1 + - uid: 254 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 7.5,0.5 + parent: 1 + - uid: 255 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 7.5,-4.5 + parent: 1 + - uid: 256 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 6.5,-7.5 + parent: 1 + - uid: 257 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -5.5,-7.5 + parent: 1 + - uid: 258 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -6.5,-4.5 + parent: 1 +- proto: Gyroscope + entities: + - uid: 259 + components: + - type: Transform + pos: 1.5,-7.5 + parent: 1 +- proto: LampBanana + entities: + - uid: 260 + components: + - type: Transform + pos: 2.532099,1.060484 + parent: 1 +- proto: LauncherCreamPie + entities: + - uid: 126 + components: + - type: Transform + parent: 115 + - type: Physics + canCollide: False + - type: InsideEntityStorage + - uid: 138 + components: + - type: Transform + parent: 127 + - type: Physics + canCollide: False + - type: InsideEntityStorage +- proto: PlasmaWindow + entities: + - uid: 262 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -0.5,3.5 + parent: 1 + - uid: 263 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 0.5,3.5 + parent: 1 + - uid: 264 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 1.5,3.5 + parent: 1 + - uid: 265 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -1.5,2.5 + parent: 1 + - uid: 266 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 2.5,2.5 + parent: 1 + - uid: 267 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -5.5,0.5 + parent: 1 + - uid: 268 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -4.5,0.5 + parent: 1 + - uid: 269 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -3.5,0.5 + parent: 1 + - uid: 270 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 4.5,0.5 + parent: 1 + - uid: 271 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 5.5,0.5 + parent: 1 + - uid: 272 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 6.5,0.5 + parent: 1 + - uid: 273 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -5.5,-4.5 + parent: 1 + - uid: 274 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -5.5,-5.5 + parent: 1 + - uid: 275 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -5.5,-6.5 + parent: 1 + - uid: 276 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 6.5,-6.5 + parent: 1 + - uid: 277 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 6.5,-5.5 + parent: 1 + - uid: 278 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 6.5,-4.5 + parent: 1 + - uid: 279 + components: + - type: Transform + pos: -1.5,-6.5 + parent: 1 + - uid: 280 + components: + - type: Transform + pos: -1.5,-4.5 + parent: 1 +- proto: PlasmaWindowDiagonal + entities: + - uid: 281 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -1.5,1.5 + parent: 1 + - uid: 282 + components: + - type: Transform + pos: -2.5,2.5 + parent: 1 + - uid: 283 + components: + - type: Transform + pos: -1.5,3.5 + parent: 1 + - uid: 284 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 2.5,3.5 + parent: 1 + - uid: 285 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 3.5,2.5 + parent: 1 + - uid: 286 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -0.5,2.5 + parent: 1 + - uid: 287 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 1.5,2.5 + parent: 1 + - uid: 288 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 2.5,1.5 + parent: 1 + - uid: 289 + components: + - type: Transform + pos: -6.5,0.5 + parent: 1 + - uid: 290 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 7.5,0.5 + parent: 1 + - uid: 291 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -6.5,-4.5 + parent: 1 + - uid: 292 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 7.5,-4.5 + parent: 1 + - uid: 293 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 6.5,-7.5 + parent: 1 + - uid: 294 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -5.5,-7.5 + parent: 1 + - uid: 295 + components: + - type: Transform + pos: -3.5,1.5 + parent: 1 + - uid: 296 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 4.5,1.5 + parent: 1 +- proto: PoweredlightLED + entities: + - uid: 297 + components: + - type: Transform + pos: 4.5,-4.5 + parent: 1 + - uid: 298 + components: + - type: Transform + pos: -3.5,-4.5 + parent: 1 + - uid: 299 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 2.5,-0.5 + parent: 1 + - uid: 300 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -1.5,-0.5 + parent: 1 +- proto: PoweredlightOrange + entities: + - uid: 301 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 0.5,-7.5 + parent: 1 +- proto: PoweredlightPink + entities: + - uid: 302 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -3.5,-6.5 + parent: 1 + - uid: 303 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 4.5,-6.5 + parent: 1 + - uid: 304 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 4.5,-0.5 + parent: 1 + - uid: 305 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -3.5,-0.5 + parent: 1 + - uid: 306 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -2.5,2.5 + parent: 1 + - uid: 307 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 3.5,2.5 + parent: 1 +- proto: RailingCorner + entities: + - uid: 308 + components: + - type: Transform + pos: 1.5,1.5 + parent: 1 + - uid: 309 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -0.5,1.5 + parent: 1 +- proto: RailingCornerSmall + entities: + - uid: 310 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 1.5,2.5 + parent: 1 + - uid: 311 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -0.5,2.5 + parent: 1 +- proto: RubberStampClown + entities: + - uid: 102 + components: + - type: Transform + parent: 99 + - type: Physics + canCollide: False + - type: InsideEntityStorage +- proto: SpawnClownSpider + entities: + - uid: 312 + components: + - type: Transform + pos: -4.5,-4.5 + parent: 1 + - uid: 313 + components: + - type: Transform + pos: -2.5,-5.5 + parent: 1 + - uid: 314 + components: + - type: Transform + pos: -3.5,-6.5 + parent: 1 +- proto: SpiderWebClown + entities: + - uid: 376 + components: + - type: Transform + pos: -4.5,-6.5 + parent: 1 + - uid: 377 + components: + - type: Transform + pos: -2.5,-4.5 + parent: 1 + - uid: 378 + components: + - type: Transform + pos: -2.5,-5.5 + parent: 1 +- proto: StatueBananiumClown + entities: + - uid: 375 + components: + - type: Transform + pos: -5.5,-0.5 + parent: 1 +- proto: SubstationBasic + entities: + - uid: 316 + components: + - type: Transform + pos: 0.5,-7.5 + parent: 1 +- proto: SuitStorageBase + entities: + - uid: 93 + components: + - type: Transform + pos: -3.5,-2.5 + parent: 1 + - type: Lock + locked: False + - type: ContainerContainer + containers: + entity_storage: !type:Container + showEnts: False + occludes: True + ents: + - 96 + - 95 + - 97 + - 94 + - 98 + - uid: 99 + components: + - type: Transform + pos: -5.5,-2.5 + parent: 1 + - type: Lock + locked: False + - type: ContainerContainer + containers: + entity_storage: !type:Container + showEnts: False + occludes: True + ents: + - 101 + - 100 + - 102 + - uid: 103 + components: + - type: Transform + pos: -4.5,-2.5 + parent: 1 + - type: Lock + locked: False + - type: ContainerContainer + containers: + entity_storage: !type:Container + showEnts: False + occludes: True + ents: + - 104 + - 105 + - 106 +- proto: TablePlasmaGlass + entities: + - uid: 317 + components: + - type: Transform + pos: -1.5,0.5 + parent: 1 + - uid: 318 + components: + - type: Transform + pos: 2.5,-0.5 + parent: 1 + - uid: 319 + components: + - type: Transform + pos: -1.5,-0.5 + parent: 1 + - uid: 320 + components: + - type: Transform + pos: 2.5,0.5 + parent: 1 +- proto: Thruster + entities: + - uid: 321 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 3.5,-8.5 + parent: 1 + - uid: 322 + components: + - type: Transform + rot: -3.141592653589793 rad + pos: -2.5,-8.5 + parent: 1 + - uid: 323 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 7.5,-5.5 + parent: 1 + - uid: 324 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -6.5,-5.5 + parent: 1 + - uid: 325 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -4.5,-8.5 + parent: 1 + - uid: 326 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 5.5,-8.5 + parent: 1 + - uid: 327 + components: + - type: Transform + pos: 5.5,1.5 + parent: 1 + - uid: 328 + components: + - type: Transform + pos: -4.5,1.5 + parent: 1 +- proto: ToolboxMechanicalFilled + entities: + - uid: 261 + components: + - type: Transform + parent: 21 + - type: Physics + canCollide: False + - type: InsideEntityStorage + - uid: 315 + components: + - type: Transform + parent: 26 + - type: Physics + canCollide: False + - type: InsideEntityStorage +- proto: VendingMachineTankDispenserEVA + entities: + - uid: 329 + components: + - type: Transform + pos: -3.5,-0.5 + parent: 1 +- proto: WallClown + entities: + - uid: 330 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -6.5,-3.5 + parent: 1 + - uid: 331 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 7.5,-0.5 + parent: 1 + - uid: 332 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 7.5,-1.5 + parent: 1 + - uid: 333 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 7.5,-2.5 + parent: 1 + - uid: 334 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 7.5,-3.5 + parent: 1 + - uid: 335 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 6.5,-3.5 + parent: 1 + - uid: 336 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -5.5,-3.5 + parent: 1 + - uid: 337 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -4.5,-7.5 + parent: 1 + - uid: 338 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -3.5,-7.5 + parent: 1 + - uid: 339 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -2.5,-7.5 + parent: 1 + - uid: 340 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -1.5,-7.5 + parent: 1 + - uid: 341 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 5.5,-7.5 + parent: 1 + - uid: 342 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 4.5,-7.5 + parent: 1 + - uid: 343 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 3.5,-7.5 + parent: 1 + - uid: 344 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 2.5,-7.5 + parent: 1 + - uid: 345 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 2.5,-6.5 + parent: 1 + - uid: 346 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 2.5,-4.5 + parent: 1 + - uid: 347 + components: + - type: Transform + pos: -0.5,-3.5 + parent: 1 + - uid: 348 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -1.5,-3.5 + parent: 1 + - uid: 349 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -2.5,-3.5 + parent: 1 + - uid: 350 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -3.5,-3.5 + parent: 1 + - uid: 351 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -4.5,-3.5 + parent: 1 + - uid: 352 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -2.5,-2.5 + parent: 1 + - uid: 353 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 1.5,-3.5 + parent: 1 + - uid: 354 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 2.5,-3.5 + parent: 1 + - uid: 355 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 3.5,-3.5 + parent: 1 + - uid: 356 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 4.5,-3.5 + parent: 1 + - uid: 357 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 5.5,-3.5 + parent: 1 + - uid: 358 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 3.5,-0.5 + parent: 1 + - uid: 359 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 3.5,0.5 + parent: 1 + - uid: 360 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 3.5,1.5 + parent: 1 + - uid: 361 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -2.5,-0.5 + parent: 1 + - uid: 362 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -2.5,0.5 + parent: 1 + - uid: 363 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -2.5,1.5 + parent: 1 + - uid: 364 + components: + - type: Transform + pos: -1.5,-8.5 + parent: 1 + - uid: 365 + components: + - type: Transform + pos: -0.5,-8.5 + parent: 1 + - uid: 366 + components: + - type: Transform + pos: 0.5,-8.5 + parent: 1 + - uid: 367 + components: + - type: Transform + pos: 1.5,-8.5 + parent: 1 + - uid: 368 + components: + - type: Transform + pos: 2.5,-8.5 + parent: 1 + - uid: 369 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -6.5,-0.5 + parent: 1 + - uid: 370 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -6.5,-2.5 + parent: 1 + - uid: 371 + components: + - type: Transform + pos: 3.5,-2.5 + parent: 1 +... diff --git a/Resources/Maps/Shuttles/ShuttleEvent/lost_cargo.yml b/Resources/Maps/Shuttles/ShuttleEvent/lost_cargo.yml new file mode 100644 index 0000000000..148577363f --- /dev/null +++ b/Resources/Maps/Shuttles/ShuttleEvent/lost_cargo.yml @@ -0,0 +1,1411 @@ +meta: + format: 6 + postmapinit: false +tilemap: + 0: Space + 54: FloorGreenCircuit + 85: FloorShuttleWhite + 89: FloorSteel + 104: FloorTechMaint + 121: Plating +entities: +- proto: "" + entities: + - uid: 1 + components: + - type: MetaData + name: Cargo shuttle + - type: Transform + pos: 2.2710133,-2.4148211 + parent: invalid + - type: MapGrid + chunks: + -1,0: + ind: -1,0 + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAVQAAAAAANgAAAAAAVQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAANgAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + version: 6 + 0,0: + ind: 0,0 + tiles: WQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + version: 6 + -1,-1: + ind: -1,-1 + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAA + version: 6 + 0,-1: + ind: 0,-1 + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + version: 6 + - type: Broadphase + - type: Physics + bodyStatus: InAir + angularDamping: 0.05 + linearDamping: 0.05 + fixedRotation: False + bodyType: Dynamic + - type: Fixtures + fixtures: {} + - type: Gravity + gravityShakeSound: !type:SoundPathSpecifier + path: /Audio/Effects/alert.ogg + - type: CargoShuttle + - type: DecalGrid + chunkCollection: + version: 2 + nodes: + - node: + color: '#FFFFFFFF' + id: Bot + decals: + 0: -5,5 + 1: -4,5 + 2: -1,5 + 3: -1,-1 + 4: -2,-1 + 5: -4,-1 + 6: -1,2 + 7: -4,2 + 8: -5,2 + - node: + color: '#9FED5896' + id: CheckerNESW + decals: + 9: -3,-1 + 10: -3,0 + 11: -3,1 + 12: -3,2 + 13: -3,3 + 14: -3,4 + 15: -3,5 + - node: + color: '#9FED5896' + id: MiniTileWhiteCornerNe + decals: + 29: -1,5 + 30: -2,6 + - node: + color: '#9FED5896' + id: MiniTileWhiteCornerNw + decals: + 19: -5,5 + 20: -4,6 + - node: + color: '#9FED5896' + id: MiniTileWhiteCornerSe + decals: + 21: -1,-1 + - node: + color: '#9FED5896' + id: MiniTileWhiteCornerSw + decals: + 22: -5,-1 + - node: + color: '#9FED5896' + id: MiniTileWhiteInnerNe + decals: + 33: -2,5 + - node: + color: '#9FED5896' + id: MiniTileWhiteInnerNw + decals: + 32: -4,5 + - node: + color: '#9FED5896' + id: MiniTileWhiteLineE + decals: + 26: -1,0 + 27: -1,2 + 28: -1,4 + - node: + color: '#9FED5896' + id: MiniTileWhiteLineN + decals: + 31: -3,6 + - node: + color: '#9FED5896' + id: MiniTileWhiteLineS + decals: + 23: -4,-1 + 24: -3,-1 + 25: -2,-1 + - node: + color: '#9FED5896' + id: MiniTileWhiteLineW + decals: + 16: -5,0 + 17: -5,2 + 18: -5,4 + - node: + color: '#9FED5896' + id: WarnLineE + decals: + 36: -1,1 + 37: -1,3 + - node: + color: '#9FED5896' + id: WarnLineS + decals: + 34: -5,1 + 35: -5,3 + - type: GridAtmosphere + version: 2 + data: + tiles: + -2,0: + 0: 51400 + -2,1: + 0: 16520 + -2,-1: + 0: 32832 + -1,0: + 0: 65535 + -1,1: + 0: 30719 + -2,2: + 0: 128 + -1,-1: + 0: 63346 + -1,2: + 0: 130 + 0,0: + 0: 4112 + 0,1: + 0: 4096 + -2,-2: + 0: 32768 + -1,-2: + 0: 32768 + 0,-1: + 0: 16 + uniqueMixes: + - volume: 2500 + temperature: 293.15 + moles: + - 21.824879 + - 82.10312 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + chunkSize: 4 + - type: OccluderTree + - type: Shuttle + - type: GridPathfinding + - type: RadiationGridResistance + - type: SpreaderGrid + - type: GravityShake + shakeTimes: 10 + - type: GasTileOverlay +- proto: AirCanister + entities: + - uid: 2 + components: + - type: Transform + pos: -3.5,-1.5 + parent: 1 +- proto: AirlockGlassShuttle + entities: + - uid: 3 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -5.5,3.5 + parent: 1 + - uid: 4 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -5.5,1.5 + parent: 1 + - uid: 5 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 0.5,3.5 + parent: 1 + - uid: 6 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 0.5,1.5 + parent: 1 +- proto: APCHyperCapacity + entities: + - uid: 7 + components: + - type: Transform + pos: -0.5,6.5 + parent: 1 +- proto: AtmosDeviceFanTiny + entities: + - uid: 8 + components: + - type: Transform + pos: -5.5,1.5 + parent: 1 + - uid: 9 + components: + - type: Transform + pos: -5.5,3.5 + parent: 1 + - uid: 10 + components: + - type: Transform + pos: 0.5,3.5 + parent: 1 + - uid: 11 + components: + - type: Transform + pos: 0.5,1.5 + parent: 1 +- proto: BlastDoor + entities: + - uid: 12 + components: + - type: Transform + pos: 0.5,4.5 + parent: 1 + - type: DeviceLinkSink + links: + - 135 + - uid: 13 + components: + - type: Transform + pos: -5.5,0.5 + parent: 1 + - type: DeviceLinkSink + links: + - 134 + - uid: 14 + components: + - type: Transform + pos: 0.5,0.5 + parent: 1 + - type: DeviceLinkSink + links: + - 136 + - uid: 15 + components: + - type: Transform + pos: -5.5,4.5 + parent: 1 + - type: DeviceLinkSink + links: + - 133 +- proto: BoxMRE + entities: + - uid: 93 + components: + - type: Transform + pos: -1.3692467,7.6214685 + parent: 1 +- proto: CableApcExtension + entities: + - uid: 16 + components: + - type: Transform + pos: -0.5,6.5 + parent: 1 + - uid: 17 + components: + - type: Transform + pos: -1.5,6.5 + parent: 1 + - uid: 18 + components: + - type: Transform + pos: -2.5,6.5 + parent: 1 + - uid: 19 + components: + - type: Transform + pos: -2.5,5.5 + parent: 1 + - uid: 20 + components: + - type: Transform + pos: -2.5,8.5 + parent: 1 + - uid: 21 + components: + - type: Transform + pos: -3.5,8.5 + parent: 1 + - uid: 22 + components: + - type: Transform + pos: -1.5,8.5 + parent: 1 + - uid: 23 + components: + - type: Transform + pos: -3.5,6.5 + parent: 1 + - uid: 24 + components: + - type: Transform + pos: -3.5,7.5 + parent: 1 + - uid: 25 + components: + - type: Transform + pos: -2.5,4.5 + parent: 1 + - uid: 26 + components: + - type: Transform + pos: -2.5,3.5 + parent: 1 + - uid: 27 + components: + - type: Transform + pos: -2.5,2.5 + parent: 1 + - uid: 28 + components: + - type: Transform + pos: -2.5,1.5 + parent: 1 + - uid: 29 + components: + - type: Transform + pos: -2.5,0.5 + parent: 1 + - uid: 30 + components: + - type: Transform + pos: -2.5,-0.5 + parent: 1 + - uid: 31 + components: + - type: Transform + pos: -2.5,-1.5 + parent: 1 + - uid: 32 + components: + - type: Transform + pos: -1.5,-4.5 + parent: 1 + - uid: 33 + components: + - type: Transform + pos: -1.5,-1.5 + parent: 1 + - uid: 34 + components: + - type: Transform + pos: -1.5,-2.5 + parent: 1 + - uid: 35 + components: + - type: Transform + pos: -2.5,-4.5 + parent: 1 + - uid: 36 + components: + - type: Transform + pos: -1.5,-3.5 + parent: 1 + - uid: 37 + components: + - type: Transform + pos: -3.5,-4.5 + parent: 1 + - uid: 38 + components: + - type: Transform + pos: -3.5,-3.5 + parent: 1 + - uid: 39 + components: + - type: Transform + pos: -4.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,3.5 + parent: 1 + - uid: 42 + components: + - type: Transform + pos: -0.5,3.5 + parent: 1 + - uid: 43 + components: + - type: Transform + pos: -1.5,1.5 + parent: 1 + - uid: 44 + components: + - type: Transform + pos: -0.5,1.5 + parent: 1 + - uid: 45 + components: + - type: Transform + pos: -3.5,1.5 + parent: 1 + - uid: 46 + components: + - type: Transform + pos: -4.5,1.5 + parent: 1 + - uid: 47 + components: + - type: Transform + pos: -3.5,3.5 + parent: 1 + - uid: 48 + components: + - type: Transform + pos: -4.5,3.5 + parent: 1 + - uid: 49 + components: + - type: Transform + pos: -4.5,-3.5 + parent: 1 +- proto: CableHV + entities: + - uid: 50 + components: + - type: Transform + pos: -1.5,-2.5 + parent: 1 + - uid: 51 + components: + - type: Transform + pos: -2.5,-2.5 + parent: 1 + - uid: 52 + components: + - type: Transform + pos: -2.5,-3.5 + parent: 1 +- proto: CableMV + entities: + - uid: 53 + components: + - type: Transform + pos: -1.5,-2.5 + parent: 1 + - uid: 54 + components: + - type: Transform + pos: -1.5,-1.5 + parent: 1 + - uid: 55 + components: + - type: Transform + pos: -2.5,-1.5 + parent: 1 + - uid: 56 + components: + - type: Transform + pos: -2.5,-0.5 + parent: 1 + - uid: 57 + components: + - type: Transform + pos: -2.5,0.5 + parent: 1 + - uid: 58 + components: + - type: Transform + pos: -2.5,1.5 + parent: 1 + - uid: 59 + components: + - type: Transform + pos: -2.5,2.5 + parent: 1 + - uid: 60 + components: + - type: Transform + pos: -2.5,3.5 + parent: 1 + - uid: 61 + components: + - type: Transform + pos: -2.5,4.5 + parent: 1 + - uid: 62 + components: + - type: Transform + pos: -2.5,5.5 + parent: 1 + - uid: 63 + components: + - type: Transform + pos: -2.5,6.5 + parent: 1 + - uid: 64 + components: + - type: Transform + pos: -1.5,6.5 + parent: 1 + - uid: 65 + components: + - type: Transform + pos: -0.5,6.5 + parent: 1 +- proto: CableTerminal + entities: + - uid: 66 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -2.5,-3.5 + parent: 1 +- proto: Catwalk + entities: + - uid: 67 + components: + - type: Transform + pos: -1.5,-0.5 + parent: 1 + - uid: 68 + components: + - type: Transform + pos: -0.5,-0.5 + parent: 1 + - uid: 71 + components: + - type: Transform + pos: -4.5,2.5 + parent: 1 + - uid: 72 + components: + - type: Transform + pos: -3.5,2.5 + parent: 1 + - uid: 73 + components: + - type: Transform + pos: -3.5,5.5 + parent: 1 + - uid: 74 + components: + - type: Transform + pos: -4.5,5.5 + parent: 1 + - uid: 75 + components: + - type: Transform + pos: -3.5,-0.5 + parent: 1 + - uid: 76 + components: + - type: Transform + pos: -4.5,-0.5 + parent: 1 + - uid: 77 + components: + - type: Transform + pos: -1.5,5.5 + parent: 1 + - uid: 78 + components: + - type: Transform + pos: -0.5,5.5 + parent: 1 +- proto: ChairPilotSeat + entities: + - uid: 70 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -0.5,2.5 + parent: 1 + - uid: 79 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -2.5,7.5 + parent: 1 +- proto: ComputerShuttle + entities: + - uid: 80 + components: + - type: Transform + pos: -2.5,8.5 + parent: 1 +- proto: ConveyorBelt + entities: + - uid: 81 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 0.5,4.5 + parent: 1 + - type: DeviceLinkSink + links: + - 151 + - uid: 82 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -0.5,4.5 + parent: 1 + - type: DeviceLinkSink + links: + - 151 + - uid: 83 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -1.5,4.5 + parent: 1 + - type: DeviceLinkSink + links: + - 151 + - uid: 84 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -5.5,0.5 + parent: 1 + - type: DeviceLinkSink + links: + - 149 + - uid: 85 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -4.5,0.5 + parent: 1 + - type: DeviceLinkSink + links: + - 149 + - uid: 86 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -3.5,0.5 + parent: 1 + - type: DeviceLinkSink + links: + - 149 + - uid: 87 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -0.5,0.5 + parent: 1 + - type: DeviceLinkSink + links: + - 150 + - uid: 88 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -3.5,4.5 + parent: 1 + - type: DeviceLinkSink + links: + - 152 + - uid: 89 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -4.5,4.5 + parent: 1 + - type: DeviceLinkSink + links: + - 152 + - uid: 90 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -5.5,4.5 + parent: 1 + - type: DeviceLinkSink + links: + - 152 + - uid: 91 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -1.5,0.5 + parent: 1 + - type: DeviceLinkSink + links: + - 150 + - uid: 92 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 0.5,0.5 + parent: 1 + - type: DeviceLinkSink + links: + - 150 +- proto: CrateFilledSpawner + entities: + - uid: 95 + components: + - type: Transform + pos: -0.5,-0.5 + parent: 1 + - uid: 96 + components: + - type: Transform + pos: -4.5,2.5 + parent: 1 + - uid: 97 + components: + - type: Transform + pos: -0.5,5.5 + parent: 1 + - uid: 98 + components: + - type: Transform + pos: -3.5,2.5 + parent: 1 +- proto: DrinkBeerBottleFull + entities: + - uid: 99 + components: + - type: Transform + pos: -3.2915764,7.812316 + parent: 1 + - uid: 100 + components: + - type: Transform + pos: -3.4715438,7.654894 + parent: 1 +- proto: GasPipeBend + entities: + - uid: 101 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -2.5,-1.5 + parent: 1 +- proto: GasPipeStraight + entities: + - uid: 102 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -2.5,0.5 + parent: 1 + - uid: 103 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -2.5,1.5 + parent: 1 + - uid: 104 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -2.5,-0.5 + parent: 1 +- proto: GasPort + entities: + - uid: 105 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -3.5,-1.5 + parent: 1 +- proto: GasVentPump + entities: + - uid: 106 + components: + - type: Transform + pos: -2.5,2.5 + parent: 1 +- proto: GeneratorBasic15kW + entities: + - uid: 107 + components: + - type: Transform + pos: -2.5,-3.5 + parent: 1 +- proto: GravityGeneratorMini + entities: + - uid: 108 + components: + - type: Transform + pos: -1.5,-1.5 + parent: 1 +- proto: Grille + entities: + - uid: 109 + components: + - type: Transform + pos: -3.5,8.5 + parent: 1 + - uid: 110 + components: + - type: Transform + pos: -3.5,9.5 + parent: 1 + - uid: 111 + components: + - type: Transform + pos: -2.5,9.5 + parent: 1 + - uid: 112 + components: + - type: Transform + pos: -1.5,9.5 + parent: 1 + - uid: 113 + components: + - type: Transform + pos: -1.5,8.5 + parent: 1 +- proto: Gyroscope + entities: + - uid: 114 + components: + - type: Transform + pos: -3.5,-2.5 + parent: 1 +- proto: LostCargoTechnicianSpawner + entities: + - uid: 69 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -0.5,2.5 + parent: 1 + - uid: 187 + components: + - type: Transform + pos: -2.5,7.5 + parent: 1 +- proto: PlasticFlapsAirtightClear + entities: + - uid: 116 + components: + - type: Transform + pos: 0.5,0.5 + parent: 1 + - uid: 117 + components: + - type: Transform + pos: -5.5,0.5 + parent: 1 + - uid: 118 + components: + - type: Transform + pos: -5.5,4.5 + parent: 1 + - uid: 119 + components: + - type: Transform + pos: 0.5,4.5 + parent: 1 +- proto: Poweredlight + entities: + - uid: 120 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -0.5,2.5 + parent: 1 + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 121 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -4.5,2.5 + parent: 1 + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 122 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -3.5,7.5 + parent: 1 + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 123 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -1.5,7.5 + parent: 1 + - type: ApcPowerReceiver + powerLoad: 0 +- proto: RandomPosterAny + entities: + - uid: 124 + components: + - type: Transform + pos: -4.5,6.5 + parent: 1 +- proto: RandomSpawner100 + entities: + - uid: 188 + components: + - type: Transform + pos: -4.5,1.5 + parent: 1 + - uid: 189 + components: + - type: Transform + pos: -0.5,3.5 + parent: 1 + - uid: 190 + components: + - type: Transform + pos: -2.5,4.5 + parent: 1 + - uid: 191 + components: + - type: Transform + pos: -1.5,-0.5 + parent: 1 + - uid: 192 + components: + - type: Transform + pos: -0.5,0.5 + parent: 1 + - uid: 193 + components: + - type: Transform + pos: -4.5,4.5 + parent: 1 +- proto: SalvageLootSpawner + entities: + - uid: 115 + components: + - type: Transform + pos: -1.5,2.5 + parent: 1 +- proto: SalvageMaterialCrateSpawner + entities: + - uid: 94 + components: + - type: Transform + pos: -3.5,-0.5 + parent: 1 + - uid: 125 + components: + - type: Transform + pos: -4.5,-0.5 + parent: 1 + - uid: 127 + components: + - type: Transform + pos: -3.5,5.5 + parent: 1 +- proto: ShuttleWindow + entities: + - uid: 128 + components: + - type: Transform + pos: -1.5,8.5 + parent: 1 + - uid: 129 + components: + - type: Transform + pos: -1.5,9.5 + parent: 1 + - uid: 130 + components: + - type: Transform + pos: -2.5,9.5 + parent: 1 + - uid: 131 + components: + - type: Transform + pos: -3.5,9.5 + parent: 1 + - uid: 132 + components: + - type: Transform + pos: -3.5,8.5 + parent: 1 +- proto: SignalButton + entities: + - uid: 133 + components: + - type: Transform + pos: -5.5,5.5 + parent: 1 + - type: DeviceLinkSource + linkedPorts: + 15: + - Pressed: Toggle + - uid: 134 + components: + - type: Transform + pos: -5.5,-0.5 + parent: 1 + - type: DeviceLinkSource + linkedPorts: + 13: + - Pressed: Toggle + - uid: 135 + components: + - type: Transform + pos: 0.5,5.5 + parent: 1 + - type: DeviceLinkSource + linkedPorts: + 12: + - Pressed: Toggle + - uid: 136 + components: + - type: Transform + pos: 0.5,-0.5 + parent: 1 + - type: DeviceLinkSource + linkedPorts: + 14: + - Pressed: Toggle +- proto: SMESBasic + entities: + - uid: 137 + components: + - type: Transform + pos: -2.5,-2.5 + parent: 1 +- proto: SubstationBasic + entities: + - uid: 138 + components: + - type: Transform + pos: -1.5,-2.5 + parent: 1 +- proto: TableReinforced + entities: + - uid: 126 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -1.5,2.5 + parent: 1 + - uid: 139 + components: + - type: Transform + pos: -3.5,7.5 + parent: 1 + - uid: 140 + components: + - type: Transform + pos: -1.5,7.5 + parent: 1 +- proto: Thruster + entities: + - uid: 141 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 0.5,-2.5 + parent: 1 + - uid: 142 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 0.5,7.5 + parent: 1 + - uid: 143 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -5.5,7.5 + parent: 1 + - uid: 144 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -5.5,-2.5 + parent: 1 + - uid: 145 + components: + - type: Transform + pos: -4.5,9.5 + parent: 1 + - uid: 146 + components: + - type: Transform + pos: -0.5,9.5 + parent: 1 + - uid: 147 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -0.5,-4.5 + parent: 1 + - uid: 148 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -4.5,-4.5 + parent: 1 +- proto: TwoWayLever + entities: + - uid: 149 + components: + - type: Transform + pos: -3.5,1.5 + parent: 1 + - type: DeviceLinkSource + linkedPorts: + 86: + - Left: Forward + - Right: Reverse + - Middle: Off + 85: + - Left: Forward + - Right: Reverse + - Middle: Off + 84: + - Left: Forward + - Right: Reverse + - Middle: Off + - uid: 150 + components: + - type: Transform + pos: -1.5,1.5 + parent: 1 + - type: DeviceLinkSource + linkedPorts: + 91: + - Left: Forward + - Right: Reverse + - Middle: Off + 87: + - Left: Forward + - Right: Reverse + - Middle: Off + 92: + - Left: Forward + - Right: Reverse + - Middle: Off + - uid: 151 + components: + - type: Transform + pos: -1.5,3.5 + parent: 1 + - type: DeviceLinkSource + linkedPorts: + 81: + - Left: Forward + - Right: Reverse + - Middle: Off + 82: + - Left: Forward + - Right: Reverse + - Middle: Off + 83: + - Left: Forward + - Right: Reverse + - Middle: Off + - uid: 152 + components: + - type: Transform + pos: -3.5,3.5 + parent: 1 + - type: DeviceLinkSource + linkedPorts: + 90: + - Left: Forward + - Right: Reverse + - Middle: Off + 89: + - Left: Forward + - Right: Reverse + - Middle: Off + 88: + - Left: Forward + - Right: Reverse + - Middle: Off +- proto: WallShuttle + entities: + - uid: 153 + components: + - type: Transform + pos: -5.5,8.5 + parent: 1 + - uid: 154 + components: + - type: Transform + pos: -4.5,8.5 + parent: 1 + - uid: 155 + components: + - type: Transform + pos: -0.5,8.5 + parent: 1 + - uid: 156 + components: + - type: Transform + pos: 0.5,8.5 + parent: 1 + - uid: 157 + components: + - type: Transform + pos: -0.5,-3.5 + parent: 1 + - uid: 158 + components: + - type: Transform + pos: 0.5,-3.5 + parent: 1 + - uid: 159 + components: + - type: Transform + pos: -4.5,-3.5 + parent: 1 + - uid: 160 + components: + - type: Transform + pos: -5.5,-3.5 + parent: 1 + - uid: 161 + components: + - type: Transform + pos: -0.5,-1.5 + parent: 1 + - uid: 162 + components: + - type: Transform + pos: -0.5,-2.5 + parent: 1 + - uid: 163 + components: + - type: Transform + pos: -4.5,-1.5 + parent: 1 + - uid: 164 + components: + - type: Transform + pos: 0.5,-1.5 + parent: 1 + - uid: 165 + components: + - type: Transform + pos: -4.5,-2.5 + parent: 1 + - uid: 166 + components: + - type: Transform + pos: -5.5,-1.5 + parent: 1 + - uid: 167 + components: + - type: Transform + pos: -0.5,7.5 + parent: 1 + - uid: 168 + components: + - type: Transform + pos: -0.5,6.5 + parent: 1 + - uid: 169 + components: + - type: Transform + pos: 0.5,6.5 + parent: 1 + - uid: 170 + components: + - type: Transform + pos: -4.5,7.5 + parent: 1 + - uid: 171 + components: + - type: Transform + pos: -4.5,6.5 + parent: 1 + - uid: 172 + components: + - type: Transform + pos: -5.5,6.5 + parent: 1 + - uid: 173 + components: + - type: Transform + pos: -5.5,-0.5 + parent: 1 + - uid: 174 + components: + - type: Transform + pos: -5.5,5.5 + parent: 1 + - uid: 175 + components: + - type: Transform + pos: 0.5,5.5 + parent: 1 + - uid: 176 + components: + - type: Transform + pos: 0.5,-0.5 + parent: 1 + - uid: 177 + components: + - type: Transform + pos: 0.5,2.5 + parent: 1 + - uid: 178 + components: + - type: Transform + pos: -5.5,2.5 + parent: 1 + - uid: 179 + components: + - type: Transform + pos: -3.5,-4.5 + parent: 1 + - uid: 180 + components: + - type: Transform + pos: -2.5,-4.5 + parent: 1 + - uid: 181 + components: + - type: Transform + pos: -1.5,-4.5 + parent: 1 + - uid: 182 + components: + - type: Transform + pos: -3.5,-3.5 + parent: 1 + - uid: 183 + components: + - type: Transform + pos: -1.5,-3.5 + parent: 1 +- proto: WindoorCargoLocked + entities: + - uid: 184 + components: + - type: Transform + pos: -2.5,7.5 + parent: 1 +- proto: WindowReinforcedDirectional + entities: + - uid: 185 + components: + - type: Transform + pos: -1.5,7.5 + parent: 1 + - uid: 186 + components: + - type: Transform + pos: -3.5,7.5 + parent: 1 +... diff --git a/Resources/Maps/Shuttles/striker.yml b/Resources/Maps/Shuttles/ShuttleEvent/striker.yml similarity index 100% rename from Resources/Maps/Shuttles/striker.yml rename to Resources/Maps/Shuttles/ShuttleEvent/striker.yml diff --git a/Resources/Maps/Shuttles/ShuttleEvent/syndie_evacpod.yml b/Resources/Maps/Shuttles/ShuttleEvent/syndie_evacpod.yml new file mode 100644 index 0000000000..d90fadba23 --- /dev/null +++ b/Resources/Maps/Shuttles/ShuttleEvent/syndie_evacpod.yml @@ -0,0 +1,1188 @@ +meta: + format: 6 + postmapinit: false +tilemap: + 0: Space + 29: FloorDark + 84: FloorShuttleRed + 101: FloorSteelOffset + 104: FloorTechMaint + 120: Lattice + 121: Plating +entities: +- proto: "" + entities: + - uid: 1 + components: + - type: MetaData + desc: Evacuation pod + name: Evacuation pod + - type: Transform + parent: invalid + - type: MapGrid + chunks: + -1,-1: + ind: -1,-1 + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeQAAAAAAeAAAAAAAeQAAAAAAHQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAZQAAAAAAZQAAAAAA + version: 6 + -1,0: + ind: -1,0 + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAZQAAAAAAZQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAZQAAAAAAVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAeQAAAAAAVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAeAAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + version: 6 + 0,-1: + ind: 0,-1 + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHQAAAAAAHQAAAAAAeQAAAAAAeAAAAAAAeQAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZQAAAAAAZQAAAAAAZQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + version: 6 + 0,0: + ind: 0,0 + tiles: ZQAAAAAAZQAAAAAAZQAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVAAAAAAAVAAAAAAAZQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVAAAAAAAVAAAAAAAeQAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + 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: + - node: + color: '#A91409FF' + id: StandClearGreyscale + decals: + 18: 0,-1 + - node: + color: '#A91409FF' + id: WarnCornerSmallGreyscaleNE + decals: + 15: -2,0 + - node: + color: '#A91409FF' + id: WarnCornerSmallGreyscaleNW + decals: + 14: 2,0 + - node: + color: '#A91409FF' + id: WarnEndGreyscaleN + decals: + 9: -2,1 + 10: 2,1 + - node: + color: '#A91409FF' + id: WarnLineGreyscaleE + decals: + 0: 2,0 + 8: 2,-1 + 17: 5,0 + - node: + color: '#A91409FF' + id: WarnLineGreyscaleN + decals: + 11: -1,0 + 12: 0,0 + 13: 1,0 + - node: + color: '#A91409FF' + id: WarnLineGreyscaleS + decals: + 1: 1,-1 + 2: 0,-1 + 3: -1,-1 + 4: -2,-1 + 5: 2,-1 + - node: + color: '#A91409FF' + id: WarnLineGreyscaleW + decals: + 6: -2,-1 + 7: -2,0 + 16: -5,0 + - type: GridAtmosphere + version: 2 + data: + tiles: + -2,-1: + 0: 18432 + -2,0: + 1: 12 + 0: 64 + -1,-1: + 0: 601 + 1: 51200 + -1,0: + 1: 2255 + 0: 16896 + 0,-1: + 0: 2115 + 1: 29440 + -2,1: + 0: 8 + -1,1: + 0: 4096 + 0,0: + 1: 895 + 0: 18432 + 1,-1: + 0: 16913 + 1,0: + 1: 7 + 0: 64 + 1,1: + 0: 4098 + 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: NavMap + - type: RadiationGridResistance +- proto: AirlockShuttleSyndicate + entities: + - uid: 2 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 6.5,0.5 + parent: 1 + - uid: 3 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -5.5,0.5 + parent: 1 +- proto: AirlockSyndicate + entities: + - uid: 4 + components: + - type: Transform + pos: 3.5,0.5 + parent: 1 + - uid: 5 + components: + - type: Transform + pos: -2.5,0.5 + parent: 1 +- proto: APCBasic + entities: + - uid: 6 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -2.5,1.5 + parent: 1 +- proto: AtmosDeviceFanTiny + entities: + - uid: 7 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -5.5,0.5 + parent: 1 + - uid: 8 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 6.5,0.5 + parent: 1 +- proto: BannerSyndicate + entities: + - uid: 9 + components: + - type: Transform + pos: 1.5,1.5 + parent: 1 +- proto: CableApcExtension + entities: + - uid: 10 + components: + - type: Transform + pos: -2.5,1.5 + parent: 1 + - uid: 11 + components: + - type: Transform + pos: -2.5,0.5 + parent: 1 + - uid: 12 + components: + - type: Transform + pos: -3.5,0.5 + parent: 1 + - uid: 13 + components: + - type: Transform + pos: -4.5,0.5 + parent: 1 + - uid: 14 + components: + - type: Transform + pos: -5.5,0.5 + parent: 1 + - uid: 15 + components: + - type: Transform + pos: -1.5,0.5 + parent: 1 + - uid: 16 + components: + - type: Transform + pos: -0.5,0.5 + parent: 1 + - uid: 17 + components: + - type: Transform + pos: 0.5,0.5 + parent: 1 + - uid: 18 + components: + - type: Transform + pos: 1.5,0.5 + parent: 1 + - uid: 19 + components: + - type: Transform + pos: 2.5,0.5 + parent: 1 + - uid: 20 + components: + - type: Transform + pos: 3.5,0.5 + parent: 1 + - uid: 21 + components: + - type: Transform + pos: 4.5,0.5 + parent: 1 + - uid: 22 + components: + - type: Transform + pos: 5.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,-2.5 + parent: 1 + - uid: 27 + components: + - type: Transform + pos: 1.5,-2.5 + parent: 1 + - uid: 28 + components: + - type: Transform + pos: -0.5,-1.5 + parent: 1 + - uid: 29 + components: + - type: Transform + pos: -1.5,-1.5 + parent: 1 + - uid: 30 + components: + - type: Transform + pos: 1.5,-1.5 + parent: 1 + - uid: 31 + components: + - type: Transform + pos: 2.5,-1.5 + parent: 1 + - uid: 32 + components: + - type: Transform + pos: 0.5,1.5 + parent: 1 +- proto: CableHV + entities: + - uid: 33 + components: + - type: Transform + pos: -2.5,-0.5 + parent: 1 + - uid: 34 + components: + - type: Transform + pos: -1.5,-0.5 + parent: 1 + - uid: 35 + components: + - type: Transform + pos: -0.5,-0.5 + parent: 1 + - uid: 36 + components: + - type: Transform + pos: 0.5,-0.5 + parent: 1 + - uid: 37 + components: + - type: Transform + pos: 1.5,-0.5 + parent: 1 + - uid: 38 + components: + - type: Transform + pos: 2.5,-0.5 + parent: 1 + - uid: 39 + components: + - type: Transform + pos: 3.5,-0.5 + parent: 1 + - uid: 40 + components: + - type: Transform + pos: 3.5,-0.5 + parent: 1 + - uid: 41 + components: + - type: Transform + pos: 3.5,0.5 + parent: 1 + - uid: 42 + components: + - type: Transform + pos: 3.5,1.5 + parent: 1 +- proto: CableMV + entities: + - uid: 43 + components: + - type: Transform + pos: 3.5,1.5 + parent: 1 + - uid: 44 + components: + - type: Transform + pos: 2.5,1.5 + parent: 1 + - uid: 45 + components: + - type: Transform + pos: 1.5,1.5 + parent: 1 + - uid: 46 + components: + - type: Transform + pos: 0.5,1.5 + parent: 1 + - uid: 47 + components: + - type: Transform + pos: -0.5,1.5 + parent: 1 + - uid: 48 + components: + - type: Transform + pos: -1.5,1.5 + parent: 1 + - uid: 49 + components: + - type: Transform + pos: -2.5,1.5 + parent: 1 +- proto: ChairPilotSeat + entities: + - uid: 50 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 0.5,1.5 + parent: 1 + - uid: 51 + components: + - type: Transform + pos: -1.5,1.5 + parent: 1 + - uid: 52 + components: + - type: Transform + pos: 2.5,1.5 + parent: 1 +- proto: ClosetWallEmergencyFilledRandom + entities: + - uid: 53 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -3.5,-0.5 + parent: 1 +- proto: ClosetWallFireFilledRandom + entities: + - uid: 54 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 4.5,-0.5 + parent: 1 +- proto: ClothingHeadPyjamaSyndicateRed + entities: + - uid: 98 + components: + - type: Transform + parent: 92 + - type: Physics + canCollide: False + - type: InsideEntityStorage +- proto: ClothingNeckScarfStripedSyndieRed + entities: + - uid: 101 + components: + - type: Transform + parent: 92 + - type: Physics + canCollide: False + - type: InsideEntityStorage + - uid: 102 + components: + - type: Transform + parent: 92 + - type: Physics + canCollide: False + - type: InsideEntityStorage +- proto: ComputerShuttleSyndie + entities: + - uid: 55 + components: + - type: Transform + pos: 0.5,2.5 + parent: 1 +- proto: CrateSyndicate + entities: + - uid: 92 + components: + - type: Transform + pos: 1.5,-0.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: + - 102 + - 101 + - 100 + - 99 + - 98 + - 97 + - 96 + - 95 + - 94 + - 93 + paper_label: !type:ContainerSlot + showEnts: False + occludes: True + ent: null +- proto: CyberPen + entities: + - uid: 93 + components: + - type: Transform + parent: 92 + - type: Physics + canCollide: False + - type: InsideEntityStorage +- proto: FaxMachineSyndie + entities: + - uid: 162 + components: + - type: Transform + pos: -0.5,1.5 + parent: 1 +- proto: GeneratorWallmountAPU + entities: + - uid: 56 + components: + - type: Transform + pos: 3.5,-0.5 + parent: 1 +- proto: GeneratorWallmountBasic + entities: + - uid: 57 + components: + - type: Transform + pos: -2.5,-0.5 + parent: 1 +- proto: Grille + entities: + - uid: 58 + components: + - type: Transform + pos: 2.5,2.5 + parent: 1 + - uid: 59 + components: + - type: Transform + pos: 0.5,3.5 + parent: 1 + - uid: 60 + components: + - type: Transform + pos: -1.5,2.5 + parent: 1 + - uid: 61 + components: + - type: Transform + pos: -0.5,3.5 + parent: 1 + - uid: 62 + components: + - type: Transform + pos: 1.5,3.5 + parent: 1 +- proto: GrilleDiagonal + entities: + - uid: 63 + components: + - type: Transform + pos: -2.5,2.5 + parent: 1 + - uid: 64 + components: + - type: Transform + pos: -1.5,3.5 + parent: 1 + - uid: 65 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 2.5,3.5 + parent: 1 + - uid: 66 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 3.5,2.5 + parent: 1 + - uid: 67 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -0.5,2.5 + parent: 1 + - uid: 68 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 1.5,2.5 + parent: 1 +- proto: Gyroscope + entities: + - uid: 69 + components: + - type: Transform + pos: 0.5,-1.5 + parent: 1 +- proto: Paper + entities: + - uid: 95 + components: + - type: Transform + parent: 92 + - type: Physics + canCollide: False + - type: InsideEntityStorage + - uid: 97 + components: + - type: Transform + parent: 92 + - type: Physics + canCollide: False + - type: InsideEntityStorage + - uid: 99 + components: + - type: Transform + parent: 92 + - type: Physics + canCollide: False + - type: InsideEntityStorage + - uid: 100 + components: + - type: Transform + parent: 92 + - type: Physics + canCollide: False + - type: InsideEntityStorage +- proto: PlasmaWindowDiagonal + entities: + - uid: 70 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -0.5,2.5 + parent: 1 + - uid: 71 + components: + - type: Transform + pos: -1.5,3.5 + parent: 1 + - uid: 72 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 1.5,2.5 + parent: 1 + - uid: 73 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 3.5,2.5 + parent: 1 + - uid: 74 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 2.5,3.5 + parent: 1 + - uid: 75 + components: + - type: Transform + pos: -2.5,2.5 + parent: 1 +- proto: Poweredlight + entities: + - uid: 76 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 0.5,-1.5 + parent: 1 +- proto: PoweredSmallLight + entities: + - uid: 77 + components: + - type: Transform + pos: -4.5,0.5 + parent: 1 + - uid: 78 + components: + - type: Transform + pos: 5.5,0.5 + parent: 1 + - uid: 79 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 2.5,1.5 + parent: 1 + - uid: 80 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -1.5,1.5 + parent: 1 +- proto: RandomPosterContraband + entities: + - uid: 81 + components: + - type: Transform + pos: -3.5,1.5 + parent: 1 + - uid: 82 + components: + - type: Transform + pos: 4.5,1.5 + parent: 1 +- proto: ReinforcedPlasmaWindow + entities: + - uid: 83 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 0.5,3.5 + parent: 1 + - uid: 84 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -0.5,3.5 + parent: 1 + - uid: 85 + components: + - type: Transform + pos: 2.5,2.5 + parent: 1 + - uid: 86 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 1.5,3.5 + parent: 1 + - uid: 87 + components: + - type: Transform + pos: -1.5,2.5 + parent: 1 +- proto: RubberStampSyndicate + entities: + - uid: 94 + components: + - type: Transform + parent: 92 + - type: Physics + canCollide: False + - type: InsideEntityStorage +- proto: SubstationWallBasic + entities: + - uid: 88 + components: + - type: Transform + pos: 3.5,1.5 + parent: 1 +- proto: SyndieDisasterVictimSpawner + entities: + - uid: 89 + components: + - type: Transform + pos: -1.5,1.5 + parent: 1 + - uid: 90 + components: + - type: Transform + pos: 0.5,1.5 + parent: 1 + - uid: 91 + components: + - type: Transform + pos: 2.5,1.5 + parent: 1 +- proto: TableGlass + entities: + - uid: 163 + components: + - type: Transform + pos: -0.5,1.5 + parent: 1 +- proto: Thruster + entities: + - uid: 103 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -0.5,-3.5 + parent: 1 + - uid: 104 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 0.5,-3.5 + parent: 1 + - uid: 105 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 1.5,-3.5 + parent: 1 + - uid: 106 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -2.5,-1.5 + parent: 1 + - uid: 107 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 3.5,-1.5 + parent: 1 +- proto: ToolboxSyndicateFilled + entities: + - uid: 96 + components: + - type: Transform + parent: 92 + - type: Physics + canCollide: False + - type: InsideEntityStorage +- proto: VendingMachineTankDispenserEVA + entities: + - uid: 108 + components: + - type: Transform + pos: -0.5,-0.5 + parent: 1 +- proto: WallPlastitanium + entities: + - uid: 109 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 4.5,-0.5 + parent: 1 + - uid: 110 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -4.5,1.5 + parent: 1 + - uid: 111 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -3.5,5.5 + parent: 1 + - uid: 112 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 4.5,6.5 + parent: 1 + - uid: 113 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 4.5,3.5 + parent: 1 + - uid: 114 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 5.5,-0.5 + parent: 1 + - uid: 115 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -3.5,2.5 + parent: 1 + - uid: 116 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 5.5,2.5 + parent: 1 + - uid: 117 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -3.5,1.5 + parent: 1 + - uid: 118 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -3.5,-0.5 + parent: 1 + - uid: 119 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -4.5,3.5 + parent: 1 + - uid: 120 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -4.5,-0.5 + parent: 1 + - uid: 121 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -3.5,3.5 + parent: 1 + - uid: 122 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 5.5,1.5 + parent: 1 + - uid: 123 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 4.5,4.5 + parent: 1 + - uid: 124 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 4.5,1.5 + parent: 1 + - uid: 125 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 4.5,-1.5 + parent: 1 + - uid: 126 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -2.5,1.5 + parent: 1 + - uid: 127 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 4.5,5.5 + parent: 1 + - uid: 128 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 4.5,2.5 + parent: 1 + - uid: 129 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -3.5,-1.5 + parent: 1 + - uid: 130 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 5.5,3.5 + parent: 1 + - uid: 131 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -3.5,4.5 + parent: 1 + - uid: 132 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -3.5,6.5 + parent: 1 + - uid: 133 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -4.5,2.5 + parent: 1 + - uid: 134 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 3.5,1.5 + parent: 1 + - uid: 135 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 2.5,-1.5 + parent: 1 + - uid: 136 + components: + - type: Transform + pos: -0.5,-2.5 + parent: 1 + - uid: 137 + components: + - type: Transform + pos: 0.5,-2.5 + parent: 1 + - uid: 138 + components: + - type: Transform + pos: 1.5,-2.5 + parent: 1 + - uid: 139 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -1.5,-1.5 + parent: 1 + - uid: 140 + components: + - type: Transform + pos: 3.5,-0.5 + parent: 1 + - uid: 141 + components: + - type: Transform + pos: -2.5,-0.5 + parent: 1 + - uid: 142 + components: + - type: Transform + pos: -3.5,-2.5 + parent: 1 + - uid: 143 + components: + - type: Transform + pos: 4.5,-2.5 + parent: 1 +- proto: WallPlastitaniumDiagonal + entities: + - uid: 144 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 6.5,1.5 + parent: 1 + - uid: 145 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -5.5,-0.5 + parent: 1 + - uid: 146 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -4.5,-1.5 + parent: 1 + - uid: 147 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 5.5,4.5 + parent: 1 + - uid: 148 + components: + - type: Transform + pos: -3.5,7.5 + parent: 1 + - uid: 149 + components: + - type: Transform + pos: -4.5,4.5 + parent: 1 + - uid: 150 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 4.5,7.5 + parent: 1 + - uid: 151 + components: + - type: Transform + pos: -5.5,1.5 + parent: 1 + - uid: 152 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 6.5,-0.5 + parent: 1 + - uid: 153 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 5.5,-1.5 + parent: 1 + - uid: 154 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 2.5,-2.5 + parent: 1 + - uid: 155 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -1.5,-2.5 + parent: 1 + - uid: 156 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -1.5,-0.5 + parent: 1 + - uid: 157 + components: + - type: Transform + pos: 2.5,-0.5 + parent: 1 + - uid: 158 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -0.5,-1.5 + parent: 1 + - uid: 159 + components: + - type: Transform + pos: 1.5,-1.5 + parent: 1 + - uid: 160 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -3.5,-3.5 + parent: 1 + - uid: 161 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 4.5,-3.5 + parent: 1 +... diff --git a/Resources/Maps/Shuttles/ShuttleEvent/traveling_china_cuisine.yml b/Resources/Maps/Shuttles/ShuttleEvent/traveling_china_cuisine.yml new file mode 100644 index 0000000000..4b3bf617e2 --- /dev/null +++ b/Resources/Maps/Shuttles/ShuttleEvent/traveling_china_cuisine.yml @@ -0,0 +1,1872 @@ +meta: + format: 6 + postmapinit: false +tilemap: + 0: Space + 14: FloorBar + 40: FloorDirt + 44: FloorFreezer + 50: FloorGrassLight + 76: FloorRGlass + 85: FloorShuttleWhite + 96: FloorSteelDirty + 98: FloorSteelLime + 106: FloorTechMaint3 + 112: FloorWhiteMini + 117: FloorWhitePlastic + 119: FloorWoodTile + 120: Lattice + 121: Plating +entities: +- proto: "" + entities: + - uid: 1 + components: + - type: MetaData + name: SRV "Salami-Salami" + - type: Transform + pos: -0.5104167,-0.5 + parent: invalid + - type: MapGrid + chunks: + 0,0: + ind: 0,0 + tiles: YgAAAAAAYgAAAAAAYgAAAAAAVQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + version: 6 + -1,0: + ind: -1,0 + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAVQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + version: 6 + -1,-1: + ind: -1,-1 + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAMgAAAAAAMgAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAADgAAAAAADgAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAATAAAAAAADgAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAADgAAAAAADgAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAdwAAAAAAdwAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAdQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYgAAAAAAYgAAAAAAYgAAAAAAYgAAAAAA + version: 6 + 0,-1: + ind: 0,-1 + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALAAAAAAALAAAAAAALAAAAAAALAAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALAAAAAAATAAAAAAALAAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALAAAAAAATAAAAAAALAAAAAAAcAAAAAAAagAAAAAAKAAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALAAAAAAATAAAAAAALAAAAAAAcAAAAAAAYAAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALAAAAAAATAAAAAAALAAAAAAAcAAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALAAAAAAALAAAAAAALAAAAAAAdQAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYgAAAAAAYgAAAAAAYgAAAAAAdQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + 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: + - node: + color: '#FFFFFFFF' + id: FlowersBROne + decals: + 3: -2,-7 + - node: + color: '#FFFFFFFF' + id: Flowerspv2 + decals: + 2: -3,-7 + - node: + color: '#FFFFFFFF' + id: Flowersy3 + decals: + 0: -2,-7 + 1: -3,-7 + - type: GridAtmosphere + version: 2 + data: + tiles: + 0,0: + 0: 7 + 1: 128 + 0,-1: + 0: 29303 + -1,0: + 1: 129 + -1,-1: + 0: 28686 + 1: 272 + -1,-2: + 1: 28 + 0: 65024 + -1,-3: + 1: 49152 + 0,-3: + 1: 61440 + 0,-2: + 0: 32624 + 1: 8 + 1,-3: + 1: 4096 + 1,-2: + 1: 65 + 0: 13056 + 1,-1: + 0: 3 + 1: 320 + 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: NavMap +- proto: AirlockShuttle + entities: + - uid: 2 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -3.5,-4.5 + parent: 1 + - uid: 3 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -3.5,-0.5 + parent: 1 +- proto: APCBasic + entities: + - uid: 4 + components: + - type: Transform + pos: 2.5,-1.5 + parent: 1 +- proto: AtmosDeviceFanTiny + entities: + - uid: 5 + components: + - type: Transform + pos: -3.5,-4.5 + parent: 1 + - uid: 6 + components: + - type: Transform + pos: -3.5,-0.5 + parent: 1 +- proto: BarSignMaidCafe + entities: + - uid: 7 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 3.5,-3.5 + parent: 1 +- proto: BlastDoor + entities: + - uid: 8 + components: + - type: Transform + pos: -0.5,-0.5 + parent: 1 + - type: DeviceLinkSink + links: + - 161 +- proto: Bucket + entities: + - uid: 9 + components: + - type: Transform + pos: 0.32937366,-3.3336349 + parent: 1 +- proto: ButchCleaver + entities: + - uid: 11 + components: + - type: Transform + parent: 10 + - type: Physics + canCollide: False + - type: InsideEntityStorage +- proto: CableApcExtension + entities: + - uid: 41 + components: + - type: Transform + pos: 2.5,-3.5 + parent: 1 + - uid: 42 + components: + - type: Transform + pos: 2.5,-1.5 + parent: 1 + - uid: 43 + components: + - type: Transform + pos: 2.5,-0.5 + parent: 1 + - uid: 44 + components: + - type: Transform + pos: 2.5,0.5 + parent: 1 + - uid: 45 + components: + - type: Transform + pos: 1.5,0.5 + parent: 1 + - uid: 46 + components: + - type: Transform + pos: 0.5,0.5 + parent: 1 + - uid: 47 + components: + - type: Transform + pos: -0.5,0.5 + parent: 1 + - uid: 48 + components: + - type: Transform + pos: 2.5,-2.5 + parent: 1 + - uid: 49 + components: + - type: Transform + pos: 2.5,-4.5 + parent: 1 + - uid: 50 + components: + - type: Transform + pos: 2.5,-5.5 + parent: 1 + - uid: 51 + components: + - type: Transform + pos: 2.5,-6.5 + parent: 1 + - uid: 52 + components: + - type: Transform + pos: 1.5,-6.5 + parent: 1 + - uid: 53 + components: + - type: Transform + pos: 0.5,-6.5 + parent: 1 + - uid: 54 + components: + - type: Transform + pos: 1.5,-7.5 + parent: 1 + - uid: 55 + components: + - type: Transform + pos: -0.5,-0.5 + parent: 1 + - uid: 56 + components: + - type: Transform + pos: -0.5,-1.5 + parent: 1 + - uid: 57 + components: + - type: Transform + pos: 3.5,-3.5 + parent: 1 + - uid: 58 + components: + - type: Transform + pos: 4.5,-3.5 + parent: 1 + - uid: 59 + components: + - type: Transform + pos: 5.5,-3.5 + parent: 1 + - uid: 60 + components: + - type: Transform + pos: -0.5,-7.5 + parent: 1 + - uid: 61 + components: + - type: Transform + pos: 3.5,-7.5 + parent: 1 + - uid: 62 + components: + - type: Transform + pos: 0.5,-7.5 + parent: 1 + - uid: 63 + components: + - type: Transform + pos: 2.5,-7.5 + parent: 1 + - uid: 64 + components: + - type: Transform + pos: -1.5,-0.5 + parent: 1 +- proto: CableHV + entities: + - uid: 65 + components: + - type: Transform + pos: 3.5,-0.5 + parent: 1 + - uid: 66 + components: + - type: Transform + pos: 3.5,0.5 + parent: 1 +- proto: CableMV + entities: + - uid: 67 + components: + - type: Transform + pos: 2.5,-1.5 + parent: 1 + - uid: 68 + components: + - type: Transform + pos: 3.5,-1.5 + parent: 1 + - uid: 69 + components: + - type: Transform + pos: 3.5,-0.5 + parent: 1 +- proto: ChairPilotSeat + entities: + - uid: 70 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 1.5,-0.5 + parent: 1 +- proto: ClosetMaintenance + entities: + - uid: 71 + components: + - type: Transform + pos: 0.5,0.5 + parent: 1 + - type: EntityStorage + air: + volume: 200 + immutable: False + temperature: 293.14786 + moles: + - 1.8856695 + - 7.0937095 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - type: ContainerContainer + containers: + entity_storage: !type:Container + showEnts: False + occludes: True + ents: + - 80 + - 76 + - 73 + - 74 + - 78 + - 81 + - 77 + - 72 + - 75 + - 79 + paper_label: !type:ContainerSlot + showEnts: False + occludes: True + ent: null +- proto: ClothingHeadHatCasa + entities: + - uid: 72 + components: + - type: Transform + parent: 71 + - type: Physics + canCollide: False + - type: InsideEntityStorage +- proto: ClothingHeadHelmetHardsuitBasic + entities: + - uid: 82 + components: + - type: Transform + pos: 0.30235916,-0.6487955 + parent: 1 +- proto: ClothingOuterDameDane + entities: + - uid: 79 + components: + - type: Transform + parent: 71 + - type: Physics + canCollide: False + - type: InsideEntityStorage +- proto: ClothingOuterDogi + entities: + - uid: 73 + components: + - type: Transform + parent: 71 + - type: Physics + canCollide: False + - type: InsideEntityStorage +- proto: ClothingOuterHardsuitAncientEVA + entities: + - uid: 74 + components: + - type: Transform + parent: 71 + - type: Physics + canCollide: False + - type: InsideEntityStorage +- proto: ClothingShoesDameDane + entities: + - uid: 75 + components: + - type: Transform + parent: 71 + - type: Physics + canCollide: False + - type: InsideEntityStorage +- proto: ClothingUniformJumpsuitDameDane + entities: + - uid: 76 + components: + - type: Transform + parent: 71 + - type: Physics + canCollide: False + - type: InsideEntityStorage +- proto: ClothingUniformJumpsuitFamilyGuy + entities: + - uid: 83 + components: + - type: Transform + pos: 4.1954827,-4.679846 + parent: 1 +- proto: ClothingUniformJumpsuitKimono + entities: + - uid: 77 + components: + - type: Transform + parent: 71 + - type: Physics + canCollide: False + - type: InsideEntityStorage +- proto: ComputerShuttle + entities: + - uid: 84 + components: + - type: Transform + pos: 1.5,0.5 + parent: 1 +- proto: CrateFreezer + entities: + - uid: 10 + components: + - type: Transform + pos: 5.5,-5.5 + parent: 1 + - type: EntityStorage + air: + volume: 200 + immutable: False + temperature: 293.14783 + 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: + - 11 + - 29 + - 24 + - 13 + - 25 + - 37 + - 33 + - 32 + - 38 + - 16 + - 15 + - 19 + - 17 + - 18 + - 20 + - 40 + - 14 + - 22 + - 30 + - 21 + - 34 + - 23 + - 35 + - 28 + - 36 + - 27 + - 39 + - 31 + - 26 + - 12 + paper_label: !type:ContainerSlot + showEnts: False + occludes: True + ent: null +- proto: DrinkCanPack + entities: + - uid: 85 + components: + - type: Transform + pos: 2.4942255,-4.6459746 + parent: 1 +- proto: DrinkGlass + entities: + - uid: 86 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 1.9675496,-6.258177 + parent: 1 + - uid: 87 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 1.9050496,-6.383177 + parent: 1 + - uid: 88 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 1.8425496,-6.086302 + parent: 1 +- proto: EggySeeds + entities: + - uid: 89 + components: + - type: Transform + pos: 4.8663497,-4.2508607 + parent: 1 +- proto: ExtendedEmergencyOxygenTankFilled + entities: + - uid: 78 + components: + - type: Transform + parent: 71 + - type: Physics + canCollide: False + - type: InsideEntityStorage +- proto: FolderSpawner + entities: + - uid: 90 + components: + - type: Transform + pos: 2.6497245,-0.5822141 + parent: 1 +- proto: FoodBowlBig + entities: + - uid: 12 + components: + - type: Transform + parent: 10 + - type: Physics + canCollide: False + - type: InsideEntityStorage + - uid: 13 + components: + - type: Transform + parent: 10 + - type: Physics + canCollide: False + - type: InsideEntityStorage +- proto: FoodBreadMoldySlice + entities: + - uid: 91 + components: + - type: Transform + pos: 4.5392327,-5.695471 + parent: 1 +- proto: FoodBreadTofu + entities: + - uid: 92 + components: + - type: Transform + pos: -0.56204444,-5.412466 + parent: 1 +- proto: FoodButter + entities: + - uid: 14 + components: + - type: Transform + parent: 10 + - type: Physics + canCollide: False + - type: InsideEntityStorage +- proto: FoodEgg + entities: + - uid: 15 + components: + - type: Transform + parent: 10 + - type: Physics + canCollide: False + - type: InsideEntityStorage + - uid: 16 + components: + - type: Transform + parent: 10 + - type: Physics + canCollide: False + - type: InsideEntityStorage + - uid: 17 + components: + - type: Transform + parent: 10 + - type: Physics + canCollide: False + - type: InsideEntityStorage + - uid: 18 + components: + - type: Transform + parent: 10 + - type: Physics + canCollide: False + - type: InsideEntityStorage + - uid: 19 + components: + - type: Transform + parent: 10 + - type: Physics + canCollide: False + - type: InsideEntityStorage + - uid: 20 + components: + - type: Transform + parent: 10 + - type: Physics + canCollide: False + - type: InsideEntityStorage +- proto: FoodMealSashimi + entities: + - uid: 93 + components: + - type: Transform + pos: 2.532601,-3.619526 + parent: 1 + - uid: 94 + components: + - type: Transform + pos: 2.5117679,-3.192443 + parent: 1 +- proto: FoodMeat + entities: + - uid: 21 + components: + - type: Transform + parent: 10 + - type: Physics + canCollide: False + - type: InsideEntityStorage + - uid: 22 + components: + - type: Transform + parent: 10 + - type: Physics + canCollide: False + - type: InsideEntityStorage +- proto: FoodMeatBear + entities: + - uid: 23 + components: + - type: Transform + parent: 10 + - type: Physics + canCollide: False + - type: InsideEntityStorage + - uid: 24 + components: + - type: Transform + parent: 10 + - type: Physics + canCollide: False + - type: InsideEntityStorage +- proto: FoodMeatBearCooked + entities: + - uid: 25 + components: + - type: Transform + parent: 10 + - type: Physics + canCollide: False + - type: InsideEntityStorage +- proto: FoodMeatClown + entities: + - uid: 26 + components: + - type: Transform + parent: 10 + - type: Physics + canCollide: False + - type: InsideEntityStorage +- proto: FoodMeatCorgi + entities: + - uid: 27 + components: + - type: Transform + parent: 10 + - type: Physics + canCollide: False + - type: InsideEntityStorage +- proto: FoodMeatDragon + entities: + - uid: 96 + components: + - type: Transform + parent: 95 + - type: Physics + canCollide: False + - type: InsideEntityStorage + - uid: 97 + components: + - type: Transform + parent: 95 + - type: Physics + canCollide: False + - type: InsideEntityStorage + - uid: 98 + components: + - type: Transform + parent: 95 + - type: Physics + canCollide: False + - type: InsideEntityStorage +- proto: FoodMeatFish + entities: + - uid: 112 + components: + - type: Transform + pos: 2.3519397,-4.0480876 + parent: 1 + - uid: 113 + components: + - type: Transform + pos: 2.5602732,-4.4543376 + parent: 1 +- proto: FoodMeatGoliath + entities: + - uid: 28 + components: + - type: Transform + parent: 10 + - type: Physics + canCollide: False + - type: InsideEntityStorage + - uid: 29 + components: + - type: Transform + parent: 10 + - type: Physics + canCollide: False + - type: InsideEntityStorage +- proto: FoodMeatHuman + entities: + - uid: 30 + components: + - type: Transform + parent: 10 + - type: Physics + canCollide: False + - type: InsideEntityStorage +- proto: FoodMeatLizard + entities: + - uid: 31 + components: + - type: Transform + parent: 10 + - type: Physics + canCollide: False + - type: InsideEntityStorage +- proto: FoodMeatPlant + entities: + - uid: 32 + components: + - type: Transform + parent: 10 + - type: Physics + canCollide: False + - type: InsideEntityStorage +- proto: FoodMeatRat + entities: + - uid: 33 + components: + - type: Transform + parent: 10 + - type: Physics + canCollide: False + - type: InsideEntityStorage +- proto: FoodMeatRouny + entities: + - uid: 34 + components: + - type: Transform + parent: 10 + - type: Physics + canCollide: False + - type: InsideEntityStorage + - uid: 35 + components: + - type: Transform + parent: 10 + - type: Physics + canCollide: False + - type: InsideEntityStorage +- proto: FoodMeatSnake + entities: + - uid: 36 + components: + - type: Transform + parent: 10 + - type: Physics + canCollide: False + - type: InsideEntityStorage + - uid: 37 + components: + - type: Transform + parent: 10 + - type: Physics + canCollide: False + - type: InsideEntityStorage +- proto: FoodMeatSpider + entities: + - uid: 38 + components: + - type: Transform + parent: 10 + - type: Physics + canCollide: False + - type: InsideEntityStorage +- proto: FoodNoodlesButter + entities: + - uid: 99 + components: + - type: Transform + parent: 95 + - type: Physics + canCollide: False + - type: InsideEntityStorage + - uid: 100 + components: + - type: Transform + parent: 95 + - type: Physics + canCollide: False + - type: InsideEntityStorage +- proto: FoodNoodlesChowmein + entities: + - uid: 101 + components: + - type: Transform + parent: 95 + - type: Physics + canCollide: False + - type: InsideEntityStorage +- proto: FoodNoodlesMeatball + entities: + - uid: 102 + components: + - type: Transform + parent: 95 + - type: Physics + canCollide: False + - type: InsideEntityStorage +- proto: FoodRiceBoiled + entities: + - uid: 103 + components: + - type: Transform + parent: 95 + - type: Physics + canCollide: False + - type: InsideEntityStorage + - uid: 104 + components: + - type: Transform + parent: 95 + - type: Physics + canCollide: False + - type: InsideEntityStorage + - uid: 105 + components: + - type: Transform + parent: 95 + - type: Physics + canCollide: False + - type: InsideEntityStorage + - uid: 114 + components: + - type: Transform + pos: 4.2319775,-4.0944357 + parent: 1 +- proto: FoodRiceEgg + entities: + - uid: 106 + components: + - type: Transform + parent: 95 + - type: Physics + canCollide: False + - type: InsideEntityStorage + - uid: 107 + components: + - type: Transform + parent: 95 + - type: Physics + canCollide: False + - type: InsideEntityStorage +- proto: FoodRiceGumbo + entities: + - uid: 108 + components: + - type: Transform + parent: 95 + - type: Physics + canCollide: False + - type: InsideEntityStorage +- proto: FoodRicePork + entities: + - uid: 109 + components: + - type: Transform + parent: 95 + - type: Physics + canCollide: False + - type: InsideEntityStorage + - uid: 110 + components: + - type: Transform + parent: 95 + - type: Physics + canCollide: False + - type: InsideEntityStorage +- proto: FoodRicePudding + entities: + - uid: 111 + components: + - type: Transform + parent: 95 + - type: Physics + canCollide: False + - type: InsideEntityStorage +- proto: FoodTofu + entities: + - uid: 115 + components: + - type: Transform + pos: -2.4682944,-0.4437158 + parent: 1 +- proto: GeneratorWallmountAPU + entities: + - uid: 116 + components: + - type: Transform + pos: 3.5,0.5 + parent: 1 + - type: PowerSupplier + supplyRampRate: 1000 + supplyRampTolerance: 1000 + supplyRate: 16000 +- proto: GravityGeneratorMini + entities: + - uid: 117 + components: + - type: Transform + pos: 5.5,-3.5 + parent: 1 +- proto: Grille + entities: + - uid: 118 + components: + - type: Transform + pos: 1.5,1.5 + parent: 1 + - uid: 119 + components: + - type: Transform + pos: 0.5,1.5 + parent: 1 + - uid: 120 + components: + - type: Transform + pos: 2.5,1.5 + parent: 1 + - uid: 121 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -2.5,0.5 + parent: 1 + - uid: 122 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -1.5,0.5 + parent: 1 +- proto: Gyroscope + entities: + - uid: 123 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 4.5,-3.5 + parent: 1 +- proto: HospitalCurtains + entities: + - uid: 124 + components: + - type: Transform + pos: 3.5,-5.5 + parent: 1 +- proto: HospitalCurtainsOpen + entities: + - uid: 125 + components: + - type: Transform + pos: 1.5,-1.5 + parent: 1 +- proto: hydroponicsSoil + entities: + - uid: 126 + components: + - type: Transform + pos: 5.5,-4.5 + parent: 1 +- proto: HydroponicsToolClippers + entities: + - uid: 127 + components: + - type: Transform + pos: 4.6706424,-4.7269287 + parent: 1 +- proto: HydroponicsToolMiniHoe + entities: + - uid: 128 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 5.0306153,-4.877862 + parent: 1 +- proto: KitchenElectricGrill + entities: + - uid: 129 + components: + - type: Transform + pos: 0.5,-6.5 + parent: 1 +- proto: KitchenKnife + entities: + - uid: 80 + components: + - type: Transform + parent: 71 + - type: Physics + canCollide: False + - type: InsideEntityStorage +- proto: KitchenMicrowave + entities: + - uid: 130 + components: + - type: Transform + pos: 2.5,-2.5 + parent: 1 +- proto: KitchenReagentGrinder + entities: + - uid: 131 + components: + - type: Transform + pos: 1.5,-6.5 + parent: 1 +- proto: LockerFreezerBase + entities: + - uid: 95 + components: + - type: Transform + pos: 0.5,-2.5 + parent: 1 + - type: EntityStorage + air: + volume: 200 + immutable: False + temperature: 293.14798 + 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: + - 110 + - 109 + - 103 + - 104 + - 105 + - 96 + - 98 + - 97 + - 99 + - 101 + - 100 + - 106 + - 102 + - 108 + - 107 + - 111 + paper_label: !type:ContainerSlot + showEnts: False + occludes: True + ent: null +- proto: MaterialSheetMeat + entities: + - uid: 39 + components: + - type: Transform + parent: 10 + - type: Physics + canCollide: False + - type: InsideEntityStorage +- proto: Mattress + entities: + - uid: 132 + components: + - type: Transform + pos: 4.5,-4.5 + parent: 1 +- proto: NitrogenTankFilled + entities: + - uid: 81 + components: + - type: Transform + parent: 71 + - type: Physics + canCollide: False + - type: InsideEntityStorage +- proto: NoticeBoard + entities: + - uid: 133 + components: + - type: Transform + pos: -1.5,-2.5 + parent: 1 +- proto: Pen + entities: + - uid: 232 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 2.27949,-0.47790605 + parent: 1 +- proto: PlushieVox + entities: + - uid: 134 + components: + - type: Transform + pos: -0.5571752,-4.2839594 + parent: 1 +- proto: PosterLegitFruitBowl + entities: + - uid: 135 + components: + - type: Transform + pos: -2.5,-2.5 + parent: 1 +- proto: PottedPlantRandom + entities: + - uid: 136 + components: + - type: Transform + pos: -2.5,-3.5 + parent: 1 + - uid: 137 + components: + - type: Transform + pos: -2.5,-5.5 + parent: 1 +- proto: Poweredlight + entities: + - uid: 138 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -2.5,-5.5 + parent: 1 + - uid: 139 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 2.5,-4.5 + parent: 1 + - uid: 140 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 2.5,-0.5 + parent: 1 +- proto: PoweredSmallLight + entities: + - uid: 141 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -1.5,-0.5 + parent: 1 + - uid: 142 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 5.5,-4.5 + parent: 1 + - uid: 143 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 1.5,-6.5 + parent: 1 +- proto: RagItem + entities: + - uid: 144 + components: + - type: Transform + pos: -0.47175223,-3.4022202 + parent: 1 +- proto: RandomSpawner100 + entities: + - uid: 145 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 0.5,-4.5 + parent: 1 +- proto: ReagentContainerFlour + entities: + - uid: 40 + components: + - type: Transform + parent: 10 + - type: Physics + canCollide: False + - type: InsideEntityStorage +- proto: RiceSeeds + entities: + - uid: 146 + components: + - type: Transform + pos: 4.716352,-4.1569357 + parent: 1 +- proto: RubberStampTrader + entities: + - uid: 147 + components: + - type: Transform + pos: 2.6184745,-0.09783912 + parent: 1 +- proto: Shovel + entities: + - uid: 148 + components: + - type: Transform + pos: 5.0644813,-4.460167 + parent: 1 +- proto: ShuttersWindowOpen + entities: + - uid: 149 + components: + - type: Transform + pos: -0.5,-4.5 + parent: 1 + - type: DeviceLinkSink + links: + - 160 + - uid: 150 + components: + - type: Transform + pos: -0.5,-3.5 + parent: 1 + - type: DeviceLinkSink + links: + - 160 + - uid: 151 + components: + - type: Transform + pos: -0.5,-5.5 + parent: 1 + - type: DeviceLinkSink + links: + - 160 + - uid: 152 + components: + - type: Transform + pos: -3.5,-4.5 + parent: 1 + - type: DeviceLinkSink + links: + - 160 +- proto: ShuttleWindow + entities: + - uid: 153 + components: + - type: Transform + pos: 1.5,1.5 + parent: 1 + - uid: 154 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 2.5,1.5 + parent: 1 + - uid: 155 + components: + - type: Transform + pos: -2.5,-6.5 + parent: 1 + - uid: 156 + components: + - type: Transform + pos: -1.5,-6.5 + parent: 1 + - uid: 157 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -2.5,0.5 + parent: 1 + - uid: 158 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -1.5,0.5 + parent: 1 + - uid: 159 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 0.5,1.5 + parent: 1 +- proto: SignalButton + entities: + - uid: 160 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 0.5,-1.5 + parent: 1 + - type: DeviceLinkSource + linkedPorts: + 150: + - Pressed: Toggle + 149: + - Pressed: Toggle + 151: + - Pressed: Toggle + 152: + - Pressed: Toggle + - uid: 161 + components: + - type: Transform + pos: 1.5,0.5 + parent: 1 + - type: DeviceLinkSource + linkedPorts: + 8: + - Pressed: Toggle +- proto: SignDoors + entities: + - uid: 162 + components: + - type: Transform + pos: -0.5,0.5 + parent: 1 +- proto: SinkStemlessWater + entities: + - uid: 163 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 0.5,-6.5 + parent: 1 +- proto: soda_dispenser + entities: + - uid: 164 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 2.5,-6.5 + parent: 1 +- proto: StoolBar + entities: + - uid: 165 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -1.5,-3.5 + parent: 1 + - uid: 166 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -1.5,-4.5 + parent: 1 + - uid: 167 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -1.5,-5.5 + parent: 1 +- proto: SubstationWallBasic + entities: + - uid: 168 + components: + - type: Transform + pos: 3.5,-0.5 + parent: 1 +- proto: Table + entities: + - uid: 169 + components: + - type: Transform + pos: 2.5,-6.5 + parent: 1 + - uid: 170 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 1.5,-6.5 + parent: 1 + - uid: 171 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 0.5,-6.5 + parent: 1 +- proto: TableGlass + entities: + - uid: 172 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 2.5,-4.5 + parent: 1 + - uid: 173 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 2.5,-3.5 + parent: 1 + - uid: 174 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 2.5,-2.5 + parent: 1 +- proto: TableStone + entities: + - uid: 175 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -0.5,-4.5 + parent: 1 + - uid: 176 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -0.5,-3.5 + parent: 1 + - uid: 177 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -0.5,-5.5 + parent: 1 +- proto: TableWood + entities: + - uid: 178 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 2.5,-0.5 + parent: 1 +- proto: Thruster + entities: + - uid: 179 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 1.5,-8.5 + parent: 1 + - uid: 180 + components: + - type: Transform + pos: 4.5,-1.5 + parent: 1 + - uid: 181 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 0.5,-8.5 + parent: 1 + - uid: 182 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 4.5,-7.5 + parent: 1 + - uid: 183 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 2.5,-8.5 + parent: 1 + - uid: 184 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -1.5,-7.5 + parent: 1 +- proto: ToolboxMechanicalFilled + entities: + - uid: 185 + components: + - type: Transform + pos: 0.5731925,-0.16962886 + parent: 1 +- proto: TravelingChefSpawner + entities: + - uid: 186 + components: + - type: Transform + pos: 1.5,-0.5 + parent: 1 + - uid: 187 + components: + - type: Transform + pos: 4.5,-5.5 + parent: 1 +- proto: VendingMachineChang + entities: + - uid: 188 + components: + - type: Transform + pos: 2.5,0.5 + parent: 1 +- proto: WallShuttle + entities: + - uid: 189 + components: + - type: Transform + pos: -1.5,-1.5 + parent: 1 + - uid: 190 + components: + - type: Transform + pos: -0.5,-7.5 + parent: 1 + - uid: 191 + components: + - type: Transform + pos: 3.5,-0.5 + parent: 1 + - uid: 192 + components: + - type: Transform + pos: 3.5,0.5 + parent: 1 + - uid: 193 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -0.5,-1.5 + parent: 1 + - uid: 194 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 3.5,-1.5 + parent: 1 + - uid: 195 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 3.5,-2.5 + parent: 1 + - uid: 196 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 3.5,-3.5 + parent: 1 + - uid: 197 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 3.5,-4.5 + parent: 1 + - uid: 198 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 2.5,-7.5 + parent: 1 + - uid: 199 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 1.5,-7.5 + parent: 1 + - uid: 200 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 0.5,-7.5 + parent: 1 + - uid: 201 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -0.5,-6.5 + parent: 1 + - uid: 202 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -0.5,-2.5 + parent: 1 + - uid: 203 + components: + - type: Transform + pos: 2.5,-1.5 + parent: 1 + - uid: 204 + components: + - type: Transform + pos: 0.5,-1.5 + parent: 1 + - uid: 205 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -1.5,-2.5 + parent: 1 + - uid: 206 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -2.5,-2.5 + parent: 1 + - uid: 207 + components: + - type: Transform + pos: -3.5,-3.5 + parent: 1 + - uid: 208 + components: + - type: Transform + pos: -3.5,-5.5 + parent: 1 + - uid: 209 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 5.5,-2.5 + parent: 1 + - uid: 210 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -0.5,0.5 + parent: 1 + - uid: 211 + components: + - type: Transform + pos: 4.5,-2.5 + parent: 1 + - uid: 212 + components: + - type: Transform + pos: 4.5,-6.5 + parent: 1 + - uid: 213 + components: + - type: Transform + pos: 5.5,-6.5 + parent: 1 + - uid: 214 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 6.5,-3.5 + parent: 1 + - uid: 215 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 6.5,-4.5 + parent: 1 + - uid: 216 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 6.5,-5.5 + parent: 1 + - uid: 217 + components: + - type: Transform + pos: 3.5,-6.5 + parent: 1 + - uid: 218 + components: + - type: Transform + pos: 3.5,-7.5 + parent: 1 + - uid: 219 + components: + - type: Transform + pos: -2.5,-1.5 + parent: 1 +- proto: WallShuttleDiagonal + entities: + - uid: 220 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -0.5,-8.5 + parent: 1 + - uid: 221 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 3.5,1.5 + parent: 1 + - uid: 222 + components: + - type: Transform + pos: -0.5,1.5 + parent: 1 + - uid: 223 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -3.5,-6.5 + parent: 1 + - uid: 224 + components: + - type: Transform + pos: -3.5,-2.5 + parent: 1 + - uid: 225 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 3.5,-8.5 + parent: 1 + - uid: 226 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 6.5,-2.5 + parent: 1 + - uid: 227 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 6.5,-6.5 + parent: 1 + - uid: 228 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -3.5,-1.5 + parent: 1 + - uid: 229 + components: + - type: Transform + pos: -3.5,0.5 + parent: 1 + - uid: 230 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -1.5,-8.5 + parent: 1 + - uid: 231 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 4.5,-8.5 + parent: 1 +... diff --git a/Resources/Maps/Shuttles/emergency_neol.yml b/Resources/Maps/Shuttles/emergency_neol.yml new file mode 100644 index 0000000000..e5c359a4f5 --- /dev/null +++ b/Resources/Maps/Shuttles/emergency_neol.yml @@ -0,0 +1,6758 @@ +meta: + format: 6 + postmapinit: false +tilemap: + 0: Space + 31: FloorDarkMini + 34: FloorDarkPavement + 48: FloorGrassLight + 72: FloorReinforced + 84: FloorSteel + 89: FloorSteelDirty + 91: FloorSteelMini + 96: FloorTechMaint + 97: FloorTechMaint2 + 104: FloorWhiteMini + 110: FloorWood + 112: Lattice + 113: Plating +entities: +- proto: "" + entities: + - uid: 1 + components: + - name: NT-LMEST-T14 "Neol" + type: MetaData + - pos: -0.5124855,0.9164498 + parent: invalid + type: Transform + - chunks: + 0,0: + ind: 0,0 + tiles: HwAAAAAAHwAAAAAAWwAAAAAAHwAAAAAAHwAAAAAAHwAAAAAAWwAAAAAAWwAAAAAAWwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHwAAAAAAHwAAAAAAHwAAAAAAHwAAAAAAHwAAAAAAHwAAAAAAWwAAAAAAHwAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbgAAAAAAcQAAAAAAbgAAAAAAcQAAAAAAcQAAAAAAHwAAAAAAWwAAAAAAWwAAAAAAWwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAcQAAAAAAHwAAAAAAWwAAAAAAHwAAAAAAcQAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbgAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAHwAAAAAAWwAAAAAAHwAAAAAAcQAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAcQAAAAAAHwAAAAAAWwAAAAAAHwAAAAAAcQAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAHwAAAAAAWwAAAAAAHwAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAcQAAAAAAIgAAAAAAcQAAAAAAcQAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbgAAAAAAbgAAAAAAIgAAAAAAIgAAAAAAIgAAAAAAIgAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIgAAAAAAIgAAAAAAIgAAAAAAIgAAAAAAIgAAAAAAIgAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAIgAAAAAAcQAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIgAAAAAAIgAAAAAAIgAAAAAAIgAAAAAAIgAAAAAAcQAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIgAAAAAAIgAAAAAAIgAAAAAAIgAAAAAAIgAAAAAAcQAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIgAAAAAAIgAAAAAAIgAAAAAAIgAAAAAAcQAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + version: 6 + -1,0: + ind: -1,0 + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWwAAAAAAWwAAAAAAWwAAAAAAHwAAAAAAHwAAAAAAHwAAAAAAWwAAAAAAHwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAHwAAAAAAWwAAAAAAHwAAAAAAHwAAAAAAHwAAAAAAHwAAAAAAHwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWwAAAAAAWwAAAAAAWwAAAAAAHwAAAAAAcQAAAAAAcQAAAAAAbgAAAAAAbgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcQAAAAAAHwAAAAAAWwAAAAAAHwAAAAAAcQAAAAAAbgAAAAAAbgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcQAAAAAAHwAAAAAAWwAAAAAAHwAAAAAAcQAAAAAAbgAAAAAAbgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcQAAAAAAHwAAAAAAWwAAAAAAHwAAAAAAcQAAAAAAbgAAAAAAbgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAHwAAAAAAWwAAAAAAHwAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcQAAAAAAcQAAAAAAIgAAAAAAcQAAAAAAbgAAAAAAbgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAIgAAAAAAIgAAAAAAIgAAAAAAIgAAAAAAbgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAIgAAAAAAIgAAAAAAIgAAAAAAIgAAAAAAIgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAcQAAAAAAIgAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcQAAAAAAIgAAAAAAIgAAAAAAIgAAAAAAIgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcQAAAAAAIgAAAAAAIgAAAAAAIgAAAAAAIgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAcQAAAAAAIgAAAAAAIgAAAAAAIgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + version: 6 + 0,-1: + ind: 0,-1 + tiles: cQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYQAAAAAAYQAAAAAAYQAAAAAASAAAAAAAcQAAAAAAcQAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYQAAAAAAYQAAAAAAYQAAAAAASAAAAAAASAAAAAAAcQAAAAAAcQAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYQAAAAAAYQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAYQAAAAAAcQAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAcQAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHwAAAAAAWwAAAAAAcQAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAcQAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWwAAAAAAWwAAAAAAcQAAAAAAaAAAAAAAaAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWwAAAAAAHwAAAAAAcQAAAAAAaAAAAAAAaAAAAAAAcQAAAAAAHwAAAAAAHwAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWwAAAAAAWwAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAcQAAAAAAWwAAAAAAWwAAAAAAWwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWwAAAAAAHwAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAWwAAAAAAVAAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWwAAAAAAHwAAAAAAHwAAAAAAHwAAAAAAHwAAAAAAHwAAAAAAWwAAAAAAWwAAAAAAWwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHwAAAAAAHwAAAAAAWwAAAAAAHwAAAAAAHwAAAAAAHwAAAAAAWwAAAAAAHwAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAMAAAAAAAWwAAAAAAHwAAAAAAMAAAAAAAHwAAAAAAWwAAAAAAHwAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAMAAAAAAAWwAAAAAAHwAAAAAAMAAAAAAAHwAAAAAAWwAAAAAAHwAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAMAAAAAAAWwAAAAAAHwAAAAAAMAAAAAAAHwAAAAAAWwAAAAAAHwAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAMAAAAAAAWwAAAAAAHwAAAAAAMAAAAAAAHwAAAAAAWwAAAAAAHwAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + version: 6 + -1,-1: + ind: -1,-1 + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcQAAAAAAcQAAAAAAYAAAAAAAYAAAAAAAYQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAYQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAcQAAAAAAYAAAAAAAYAAAAAAAYQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcQAAAAAAWQAAAAAAWQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAYQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcQAAAAAAWQAAAAAAVAAAAAAAHwAAAAAAHwAAAAAAcQAAAAAAWwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAHwAAAAAAcQAAAAAAWwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAHwAAAAAAHwAAAAAAHwAAAAAAHwAAAAAAHwAAAAAAcQAAAAAAHwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHwAAAAAAHwAAAAAAHwAAAAAAHwAAAAAAHwAAAAAAHwAAAAAAHwAAAAAAWwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAHwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWwAAAAAAWwAAAAAAWwAAAAAAHwAAAAAAHwAAAAAAHwAAAAAAHwAAAAAAHwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAHwAAAAAAWwAAAAAAHwAAAAAAHwAAAAAAHwAAAAAAWwAAAAAAHwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAHwAAAAAAWwAAAAAAHwAAAAAAMAAAAAAAHwAAAAAAWwAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAHwAAAAAAWwAAAAAAHwAAAAAAMAAAAAAAHwAAAAAAWwAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAHwAAAAAAWwAAAAAAHwAAAAAAMAAAAAAAHwAAAAAAWwAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAHwAAAAAAWwAAAAAAHwAAAAAAMAAAAAAAHwAAAAAAWwAAAAAAMAAAAAAA + version: 6 + -1,-2: + ind: -1,-2 + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAA + version: 6 + 0,-2: + ind: 0,-2 + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + version: 6 + type: MapGrid + - type: Broadphase + - bodyStatus: InAir + angularDamping: 0.05 + linearDamping: 0.05 + fixedRotation: False + bodyType: Dynamic + type: Physics + - fixtures: {} + type: Fixtures + - type: OccluderTree + - type: SpreaderGrid + - type: Shuttle + - type: GridPathfinding + - gravityShakeSound: !type:SoundPathSpecifier + path: /Audio/Effects/alert.ogg + type: Gravity + - chunkCollection: + version: 2 + nodes: + - node: + angle: -1.5707963267948966 rad + color: '#FFFFFFFF' + id: Arrows + decals: + 180: -7,2 + 181: -7,0 + 182: -7,-6 + 183: -7,-8 + - node: + angle: 1.5707963267948966 rad + color: '#FFFFFFFF' + id: Arrows + decals: + 174: 7,-6 + 176: 7,-8 + 177: 7,0 + 178: 7,2 + - node: + angle: 1.5707963267948966 rad + color: '#FF0000FF' + id: ArrowsGreyscale + decals: + 185: 7,-6 + 186: 7,-8 + 187: 7,0 + 188: 7,2 + - node: + angle: 4.71238898038469 rad + color: '#FF0000FF' + id: ArrowsGreyscale + decals: + 184: -7,-6 + 189: -7,0 + 190: -7,2 + 191: -7,-8 + - node: + color: '#FFFFFFFF' + id: ArrowsGreyscale + decals: + 179: -4,1 + 202: 4,1 + 203: 4,-5 + 204: -4,-5 + - node: + angle: 3.141592653589793 rad + color: '#FFFFFFFF' + id: ArrowsGreyscale + decals: + 200: -4,0 + 201: 4,0 + 205: -4,-6 + 206: 4,-6 + - node: + color: '#FFFFFFFF' + id: Basalt4 + decals: + 23: -1,-1 + - node: + color: '#FFFFFFFF' + id: Basalt5 + decals: + 24: 4,-3 + - node: + color: '#FFFFFFFF' + id: Basalt7 + decals: + 20: -4,-4 + - node: + color: '#FFFFFFFF' + id: Basalt8 + decals: + 21: -4,-1 + 22: -1,-3 + - node: + color: '#FFFFFFFF' + id: BotLeft + decals: + 134: -7,-1 + 135: -7,-2 + 136: -7,-3 + 137: -7,-4 + - node: + color: '#FFFFFFFF' + id: BotLeftGreyscale + decals: + 142: -7,-4 + 143: -7,-4 + 144: -7,-4 + 145: -7,-4 + 146: -7,-3 + 147: -7,-3 + 148: -7,-3 + 149: -7,-2 + 150: -7,-2 + 151: -7,-2 + 152: -7,-1 + 153: -7,-1 + 154: -7,-1 + 159: -3,-1 + 160: -3,-2 + 161: -3,-3 + 162: -3,-4 + 167: 5,-1 + 168: 5,-2 + 169: 5,-3 + 170: 5,-4 + - node: + color: '#FFFFFFFF' + id: BotRight + decals: + 138: 7,-1 + 139: 7,-2 + 140: 7,-3 + 141: 7,-4 + - node: + color: '#FFFFFFFF' + id: BotRightGreyscale + decals: + 155: -5,-4 + 156: -5,-3 + 157: -5,-2 + 158: -5,-1 + 163: 3,-4 + 164: 3,-3 + 165: 3,-2 + 166: 3,-1 + 171: 7,-4 + 172: 7,-3 + 173: 7,-2 + 175: 7,-1 + - node: + color: '#334E6DFF' + id: BoxGreyscale + decals: + 313: 4,-9 + - node: + color: '#334E6DC8' + id: BrickTileWhiteLineE + decals: + 240: 1,11 + 241: 1,12 + 242: 1,13 + 249: 0,11 + 250: 0,12 + 251: 0,13 + - node: + color: '#334E6DC8' + id: BrickTileWhiteLineW + decals: + 243: -1,11 + 244: -1,12 + 245: -1,13 + 246: 0,11 + 247: 0,12 + 248: 0,13 + - node: + color: '#FFFFFFFF' + id: Bushf1 + decals: + 0: -1,-4 + 1: 1,-3 + 2: -1,-3 + 3: 0,-1 + 4: 4,-1 + - node: + color: '#FFFFFFFF' + id: Bushf2 + decals: + 5: 1,-4 + 6: -1,-2 + 7: 0,-1 + 8: -4,-4 + 9: -4,-3 + 10: -4,-1 + - node: + color: '#FFFFFFFF' + id: Bushf3 + decals: + 11: -4,-2 + 12: -4,-3 + 13: 0,-4 + 14: -1,-3 + 15: 1,-3 + 16: 0,-1 + 17: 4,-2 + 18: 4,-4 + 19: 4,-3 + - node: + color: '#EFB3413E' + id: CheckerNWSE + decals: + 291: -1,-12 + 292: -1,-13 + 293: -1,-14 + 294: -1,-15 + 295: 0,-15 + 296: 0,-14 + 297: 0,-13 + 298: 1,-13 + 299: 1,-14 + 300: 1,-15 + 301: 2,-15 + 302: 2,-14 + 303: 1,-12 + - node: + color: '#FFFFFFFF' + id: Delivery + decals: + 207: -1,-7 + 208: 0,-7 + 209: 1,-7 + - node: + color: '#FFFFFFFF' + id: Dirt + decals: + 258: -6,-11 + 259: -5,-12 + 260: -5,-13 + - node: + color: '#FFFFFFFF' + id: DirtHeavy + decals: + 252: -5,-12 + 253: -6,-12 + 254: -6,-12 + 255: -6,-11 + 256: -5,-13 + 257: -5,-11 + - node: + color: '#FFFFFFFF' + id: Flowersy1 + decals: + 25: 1,-4 + - node: + color: '#FFFFFFFF' + id: Flowersy2 + decals: + 26: -1,-3 + 29: -4,-3 + - node: + color: '#FFFFFFFF' + id: Flowersy3 + decals: + 30: -1,-4 + 31: 4,-4 + - node: + color: '#FFFFFFFF' + id: Flowersy4 + decals: + 27: 1,-1 + 28: 4,-2 + - node: + color: '#DE3A3A96' + id: MiniTileCheckerAOverlay + decals: + 261: -3,-11 + 262: -3,-10 + 263: -3,-9 + 264: -3,-8 + 265: -2,-8 + 266: -4,-9 + 267: -4,-8 + 268: -5,-8 + 269: -5,-9 + 270: -6,-9 + 271: -6,-8 + 272: -7,-8 + 273: -7,-9 + 274: -8,-8 + 275: -4,-11 + - node: + color: '#52B4E996' + id: MiniTileCheckerBOverlay + decals: + 276: 2,-8 + 277: 3,-8 + 278: 4,-8 + 279: 4,-9 + 280: 3,-9 + 281: 3,-10 + 282: 4,-10 + 283: 4,-11 + 284: 3,-11 + 285: 3,-12 + 286: 4,-12 + - node: + color: '#9FED5896' + id: MiniTileCheckerBOverlay + decals: + 287: 6,-11 + 288: 5,-11 + 289: 5,-12 + 290: 6,-12 + - node: + color: '#919191FF' + id: MiniTileWhiteCornerNe + decals: + 41: -7,-1 + 64: -1,-6 + 82: 5,-6 + 89: 5,0 + 90: 5,2 + 97: -3,0 + 100: 1,0 + - node: + color: '#919191FF' + id: MiniTileWhiteCornerNw + decals: + 55: -5,2 + 57: -5,0 + 62: -5,-6 + 65: 1,-6 + 98: 3,0 + 99: -1,0 + 121: 7,-1 + - node: + color: '#919191FF' + id: MiniTileWhiteCornerSe + decals: + 45: -7,-5 + 47: -6,3 + 83: 5,-5 + 88: 5,1 + 109: -3,-5 + 110: 1,-5 + 112: -1,-7 + - node: + color: '#919191FF' + id: MiniTileWhiteCornerSw + decals: + 56: -5,1 + 63: -5,-5 + 107: 3,-5 + 108: -1,-5 + 113: 1,-7 + 122: 7,-5 + 126: 6,3 + - node: + color: '#919191FF' + id: MiniTileWhiteEndE + decals: + 46: -7,1 + 114: -1,-9 + - node: + color: '#919191FF' + id: MiniTileWhiteEndN + decals: + 116: 0,-11 + - node: + color: '#919191FF' + id: MiniTileWhiteEndW + decals: + 86: 7,-7 + 87: 7,1 + 115: 1,-9 + - node: + color: '#919191FF' + id: MiniTileWhiteLineE + decals: + 42: -7,-2 + 43: -7,-3 + 44: -7,-4 + 48: -6,4 + 49: -6,5 + 50: -6,6 + 66: -3,-1 + 67: -3,-2 + 68: -3,-3 + 69: -3,-4 + 117: 5,-4 + 118: 5,-3 + 119: 5,-2 + 120: 5,-1 + 130: 4,6 + 131: 4,5 + 132: 4,4 + 133: 4,3 + - node: + color: '#919191FF' + id: MiniTileWhiteLineN + decals: + 74: -4,-6 + 75: -3,-6 + 76: -2,-6 + 79: 4,-6 + 80: 3,-6 + 81: 2,-6 + 84: 7,-9 + 85: 6,-9 + 91: 4,0 + 92: -4,0 + 101: 0,0 + - node: + color: '#919191FF' + id: MiniTileWhiteLineS + decals: + 77: -4,-5 + 78: 4,-5 + 93: -4,1 + 94: -3,1 + 95: 4,1 + 96: 3,1 + 102: -2,1 + 103: -1,1 + 104: 0,1 + 105: 1,1 + 106: 2,1 + 111: 0,-5 + - node: + color: '#919191FF' + id: MiniTileWhiteLineW + decals: + 51: -4,6 + 52: -4,5 + 53: -4,4 + 54: -4,3 + 58: -5,-1 + 59: -5,-2 + 60: -5,-3 + 61: -5,-4 + 70: 3,-1 + 71: 3,-2 + 72: 3,-3 + 73: 3,-4 + 123: 7,-4 + 124: 7,-3 + 125: 7,-2 + 127: 6,4 + 128: 6,5 + 129: 6,6 + - node: + color: '#334E6DC8' + id: PavementCheckerBOverlay + decals: + 210: -4,8 + 211: -5,8 + 212: -5,9 + 213: -4,9 + 214: 5,8 + 215: 4,8 + 216: 4,9 + 217: 5,9 + 218: -3,8 + 219: -3,9 + 220: 3,8 + 221: 3,9 + - node: + color: '#334E6DC8' + id: PavementOverlay + decals: + 222: -4,10 + 223: -4,11 + 224: -4,12 + 225: -3,12 + 226: -3,11 + 227: -2,11 + 228: -2,12 + 229: -2,13 + 230: -3,13 + 231: 2,11 + 232: 2,12 + 233: 2,13 + 234: 3,13 + 235: 3,12 + 236: 3,11 + 237: 4,11 + 238: 4,12 + 239: 4,10 + - node: + color: '#D4D4D4FF' + id: WarnLineE + decals: + 311: 2,-14 + 312: 2,-15 + - node: + color: '#52B4E9FF' + id: WarnLineGreyscaleE + decals: + 305: 1,-8 + - node: + color: '#334E6DFF' + id: WarnLineGreyscaleN + decals: + 308: 4,6 + 309: -4,6 + - node: + color: '#D4D4D4DE' + id: WarnLineGreyscaleN + decals: + 310: 2,1 + - node: + color: '#EFB341FF' + id: WarnLineGreyscaleS + decals: + 306: -1,-11 + 307: 1,-11 + - node: + color: '#DE3A3AFF' + id: WarnLineGreyscaleW + decals: + 304: -1,-8 + - node: + color: '#FFFFFFFF' + id: WarnLineN + decals: + 196: -4,-6 + 197: 4,-6 + 198: 4,0 + 199: -4,0 + - node: + color: '#FFFFFFFF' + id: WarnLineW + decals: + 192: -4,-5 + 193: 4,-5 + 194: 4,1 + 195: -4,1 + - node: + color: '#FFFFFFFF' + id: WoodTrimThinCornerSe + decals: + 33: -2,8 + - node: + color: '#FFFFFFFF' + id: WoodTrimThinCornerSw + decals: + 32: 2,8 + - node: + color: '#FFFFFFFF' + id: WoodTrimThinInnerSe + decals: + 35: -2,9 + 40: -3,8 + - node: + color: '#FFFFFFFF' + id: WoodTrimThinInnerSw + decals: + 34: 2,9 + 39: 3,8 + - node: + color: '#FFFFFFFF' + id: WoodTrimThinLineS + decals: + 36: -1,9 + 37: 0,9 + 38: 1,9 + type: DecalGrid + - version: 2 + data: + tiles: + 0,0: + 0: 65535 + -2,0: + 0: 65535 + -1,0: + 0: 65535 + 0,1: + 0: 65535 + 0,2: + 0: 65535 + 0,3: + 0: 4095 + 1,0: + 0: 65535 + 1,1: + 0: 65535 + 1,2: + 0: 30583 + 1,3: + 0: 311 + 2,0: + 0: 4369 + 2,1: + 0: 17 + -2,1: + 0: 61183 + -2,2: + 0: 52428 + -2,3: + 0: 140 + -1,1: + 0: 65535 + -1,2: + 0: 65535 + -1,3: + 0: 4095 + 0,-4: + 0: 65535 + 0,-3: + 0: 65535 + 0,-2: + 0: 65535 + 0,-1: + 0: 65535 + 1,-4: + 0: 65395 + 1,-3: + 0: 65535 + 1,-2: + 0: 65535 + 1,-1: + 0: 65535 + 2,-4: + 0: 4096 + 2,-3: + 0: 4369 + 2,-2: + 0: 4369 + 2,-1: + 0: 4369 + -2,-4: + 0: 65224 + -2,-3: + 0: 65535 + -2,-2: + 0: 65535 + -2,-1: + 0: 65535 + -1,-4: + 0: 65535 + -1,-3: + 0: 65535 + -1,-2: + 0: 65535 + -1,-1: + 0: 65535 + -1,-5: + 0: 28672 + 0,-5: + 0: 53248 + 1,-5: + 0: 4096 + uniqueMixes: + - volume: 2500 + temperature: 293.15 + moles: + - 21.824879 + - 82.10312 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + chunkSize: 4 + type: GridAtmosphere + - type: GasTileOverlay + - type: RadiationGridResistance +- proto: AirCanister + entities: + - uid: 2 + components: + - pos: 2.5,-14.5 + parent: 1 + type: Transform +- proto: AirlockBarGlassLocked + entities: + - uid: 3 + components: + - pos: 2.5,2.5 + parent: 1 + type: Transform +- proto: AirlockBarLocked + entities: + - uid: 4 + components: + - rot: 3.141592653589793 rad + pos: 1.5,5.5 + parent: 1 + type: Transform +- proto: AirlockBrigGlassLocked + entities: + - uid: 5 + components: + - rot: 3.141592653589793 rad + pos: -3.5,-10.5 + parent: 1 + type: Transform +- proto: AirlockCommandGlassLocked + entities: + - uid: 6 + components: + - pos: -3.5,7.5 + parent: 1 + type: Transform + - links: + - 778 + type: DeviceLinkSink + - uid: 7 + components: + - pos: 4.5,7.5 + parent: 1 + type: Transform + - links: + - 778 + type: DeviceLinkSink + - uid: 8 + components: + - rot: 3.141592653589793 rad + pos: -3.5,10.5 + parent: 1 + type: Transform + - links: + - 780 + type: DeviceLinkSink + - uid: 9 + components: + - rot: 3.141592653589793 rad + pos: 4.5,10.5 + parent: 1 + type: Transform + - links: + - 780 + type: DeviceLinkSink +- proto: AirlockEngineeringLocked + entities: + - uid: 10 + components: + - pos: 1.5,-11.5 + parent: 1 + type: Transform + - uid: 11 + components: + - pos: -0.5,-11.5 + parent: 1 + type: Transform +- proto: AirlockExternalGlassShuttleEmergencyLocked + entities: + - uid: 12 + components: + - rot: 1.5707963267948966 rad + pos: 8.5,2.5 + parent: 1 + type: Transform + - uid: 13 + components: + - rot: -1.5707963267948966 rad + pos: -7.5,-5.5 + parent: 1 + type: Transform + - uid: 14 + components: + - rot: -1.5707963267948966 rad + pos: -7.5,2.5 + parent: 1 + type: Transform + - uid: 15 + components: + - rot: -1.5707963267948966 rad + pos: -7.5,0.5 + parent: 1 + type: Transform + - uid: 16 + components: + - rot: -1.5707963267948966 rad + pos: -7.5,-7.5 + parent: 1 + type: Transform + - uid: 17 + components: + - rot: 1.5707963267948966 rad + pos: 8.5,0.5 + parent: 1 + type: Transform + - uid: 18 + components: + - rot: 1.5707963267948966 rad + pos: 8.5,-5.5 + parent: 1 + type: Transform + - uid: 19 + components: + - rot: 1.5707963267948966 rad + pos: 8.5,-7.5 + parent: 1 + type: Transform +- proto: AirlockMedicalGlassLocked + entities: + - uid: 20 + components: + - pos: 2.5,-7.5 + parent: 1 + type: Transform +- proto: AirlockSecurityGlassLocked + entities: + - uid: 21 + components: + - pos: -1.5,-7.5 + parent: 1 + type: Transform +- proto: APCHyperCapacity + entities: + - uid: 22 + components: + - pos: -4.5,-6.5 + parent: 1 + type: Transform + - uid: 23 + components: + - pos: 4.5,-6.5 + parent: 1 + type: Transform + - uid: 24 + components: + - pos: 1.5,2.5 + parent: 1 + type: Transform + - uid: 25 + components: + - pos: 3.5,10.5 + parent: 1 + type: Transform + - uid: 26 + components: + - pos: -3.5,-13.5 + parent: 1 + type: Transform + - uid: 27 + components: + - pos: 0.5,-0.5 + parent: 1 + type: Transform +- proto: AtmosDeviceFanTiny + entities: + - uid: 28 + components: + - rot: 1.5707963267948966 rad + pos: -7.5,-7.5 + parent: 1 + type: Transform + - uid: 29 + components: + - rot: 1.5707963267948966 rad + pos: -7.5,-5.5 + parent: 1 + type: Transform + - uid: 30 + components: + - rot: 1.5707963267948966 rad + pos: -7.5,0.5 + parent: 1 + type: Transform + - uid: 31 + components: + - rot: 1.5707963267948966 rad + pos: -7.5,2.5 + parent: 1 + type: Transform + - uid: 32 + components: + - rot: 1.5707963267948966 rad + pos: 8.5,2.5 + parent: 1 + type: Transform + - uid: 33 + components: + - rot: 1.5707963267948966 rad + pos: 8.5,0.5 + parent: 1 + type: Transform + - uid: 34 + components: + - rot: 1.5707963267948966 rad + pos: 8.5,-5.5 + parent: 1 + type: Transform + - uid: 35 + components: + - rot: 1.5707963267948966 rad + pos: 8.5,-7.5 + parent: 1 + type: Transform +- proto: Bed + entities: + - uid: 36 + components: + - pos: 6.5,-11.5 + parent: 1 + type: Transform + - uid: 37 + components: + - pos: -5.5,-11.5 + parent: 1 + type: Transform + - uid: 38 + components: + - pos: 4.5,-7.5 + parent: 1 + type: Transform + - uid: 39 + components: + - pos: 4.5,-9.5 + parent: 1 + type: Transform +- proto: BedsheetBrown + entities: + - uid: 40 + components: + - rot: 3.141592653589793 rad + pos: -5.5,-11.5 + parent: 1 + type: Transform +- proto: BedsheetGreen + entities: + - uid: 41 + components: + - rot: -1.5707963267948966 rad + pos: 6.5,-11.5 + parent: 1 + type: Transform +- proto: BedsheetMedical + entities: + - uid: 42 + components: + - rot: 3.141592653589793 rad + pos: 4.5,-7.5 + parent: 1 + type: Transform + - uid: 43 + components: + - rot: 3.141592653589793 rad + pos: 4.5,-9.5 + parent: 1 + type: Transform +- proto: BlastDoorOpen + entities: + - uid: 44 + components: + - rot: 1.5707963267948966 rad + pos: -0.5,10.5 + parent: 1 + type: Transform + - links: + - 780 + type: DeviceLinkSink + - uid: 45 + components: + - rot: 1.5707963267948966 rad + pos: 0.5,10.5 + parent: 1 + type: Transform + - links: + - 780 + type: DeviceLinkSink + - uid: 46 + components: + - rot: 1.5707963267948966 rad + pos: 1.5,10.5 + parent: 1 + type: Transform + - links: + - 780 + type: DeviceLinkSink +- proto: BoozeDispenser + entities: + - uid: 47 + components: + - pos: -1.5,5.5 + parent: 1 + type: Transform +- proto: CableApcExtension + entities: + - uid: 48 + components: + - pos: 1.5,0.5 + parent: 1 + type: Transform + - uid: 49 + components: + - pos: -3.5,-13.5 + parent: 1 + type: Transform + - uid: 50 + components: + - pos: -2.5,-13.5 + parent: 1 + type: Transform + - uid: 51 + components: + - pos: -1.5,-13.5 + parent: 1 + type: Transform + - uid: 52 + components: + - pos: -0.5,-13.5 + parent: 1 + type: Transform + - uid: 53 + components: + - pos: 0.5,-13.5 + parent: 1 + type: Transform + - uid: 54 + components: + - pos: 1.5,-13.5 + parent: 1 + type: Transform + - uid: 55 + components: + - pos: 2.5,-13.5 + parent: 1 + type: Transform + - uid: 56 + components: + - pos: 3.5,-13.5 + parent: 1 + type: Transform + - uid: 57 + components: + - pos: 4.5,-13.5 + parent: 1 + type: Transform + - uid: 58 + components: + - pos: -0.5,-14.5 + parent: 1 + type: Transform + - uid: 59 + components: + - pos: -0.5,-15.5 + parent: 1 + type: Transform + - uid: 60 + components: + - pos: 0.5,-15.5 + parent: 1 + type: Transform + - uid: 61 + components: + - pos: 1.5,-15.5 + parent: 1 + type: Transform + - uid: 62 + components: + - pos: 1.5,-14.5 + parent: 1 + type: Transform + - uid: 63 + components: + - pos: 3.5,-14.5 + parent: 1 + type: Transform + - uid: 64 + components: + - pos: -2.5,-14.5 + parent: 1 + type: Transform + - uid: 65 + components: + - pos: -4.5,-12.5 + parent: 1 + type: Transform + - uid: 66 + components: + - pos: -4.5,-11.5 + parent: 1 + type: Transform + - uid: 67 + components: + - pos: -5.5,-9.5 + parent: 1 + type: Transform + - uid: 68 + components: + - pos: -5.5,-10.5 + parent: 1 + type: Transform + - uid: 69 + components: + - pos: -5.5,-11.5 + parent: 1 + type: Transform + - uid: 70 + components: + - pos: -5.5,-8.5 + parent: 1 + type: Transform + - uid: 71 + components: + - pos: -5.5,-7.5 + parent: 1 + type: Transform + - uid: 72 + components: + - pos: -6.5,-7.5 + parent: 1 + type: Transform + - uid: 73 + components: + - pos: -4.5,-7.5 + parent: 1 + type: Transform + - uid: 74 + components: + - pos: -4.5,-6.5 + parent: 1 + type: Transform + - uid: 75 + components: + - pos: -3.5,-7.5 + parent: 1 + type: Transform + - uid: 76 + components: + - pos: -3.5,-8.5 + parent: 1 + type: Transform + - uid: 77 + components: + - pos: -2.5,-7.5 + parent: 1 + type: Transform + - uid: 78 + components: + - pos: 4.5,-6.5 + parent: 1 + type: Transform + - uid: 79 + components: + - pos: 4.5,-7.5 + parent: 1 + type: Transform + - uid: 80 + components: + - pos: 4.5,-8.5 + parent: 1 + type: Transform + - uid: 81 + components: + - pos: 4.5,-9.5 + parent: 1 + type: Transform + - uid: 82 + components: + - pos: 4.5,-10.5 + parent: 1 + type: Transform + - uid: 83 + components: + - pos: 4.5,-11.5 + parent: 1 + type: Transform + - uid: 84 + components: + - pos: 5.5,-11.5 + parent: 1 + type: Transform + - uid: 85 + components: + - pos: 6.5,-11.5 + parent: 1 + type: Transform + - uid: 86 + components: + - pos: 6.5,-10.5 + parent: 1 + type: Transform + - uid: 87 + components: + - pos: 0.5,-0.5 + parent: 1 + type: Transform + - uid: 88 + components: + - pos: 0.5,0.5 + parent: 1 + type: Transform + - uid: 89 + components: + - pos: 2.5,0.5 + parent: 1 + type: Transform + - uid: 90 + components: + - pos: 2.5,-0.5 + parent: 1 + type: Transform + - uid: 91 + components: + - pos: 2.5,-1.5 + parent: 1 + type: Transform + - uid: 92 + components: + - pos: 2.5,-2.5 + parent: 1 + type: Transform + - uid: 93 + components: + - pos: 2.5,-3.5 + parent: 1 + type: Transform + - uid: 94 + components: + - pos: 2.5,-4.5 + parent: 1 + type: Transform + - uid: 95 + components: + - pos: 2.5,-5.5 + parent: 1 + type: Transform + - uid: 96 + components: + - pos: -1.5,-5.5 + parent: 1 + type: Transform + - uid: 97 + components: + - pos: -1.5,-4.5 + parent: 1 + type: Transform + - uid: 98 + components: + - pos: -1.5,-3.5 + parent: 1 + type: Transform + - uid: 99 + components: + - pos: -1.5,-2.5 + parent: 1 + type: Transform + - uid: 100 + components: + - pos: -1.5,-1.5 + parent: 1 + type: Transform + - uid: 101 + components: + - pos: -2.5,-5.5 + parent: 1 + type: Transform + - uid: 102 + components: + - pos: -1.5,-0.5 + parent: 1 + type: Transform + - uid: 103 + components: + - pos: -1.5,0.5 + parent: 1 + type: Transform + - uid: 104 + components: + - pos: -0.5,0.5 + parent: 1 + type: Transform + - uid: 105 + components: + - pos: -3.5,-5.5 + parent: 1 + type: Transform + - uid: 106 + components: + - pos: -6.5,-2.5 + parent: 1 + type: Transform + - uid: 107 + components: + - pos: -6.5,-3.5 + parent: 1 + type: Transform + - uid: 108 + components: + - pos: -6.5,-5.5 + parent: 1 + type: Transform + - uid: 109 + components: + - pos: -6.5,-4.5 + parent: 1 + type: Transform + - uid: 110 + components: + - pos: -3.5,-4.5 + parent: 1 + type: Transform + - uid: 111 + components: + - pos: -4.5,-4.5 + parent: 1 + type: Transform + - uid: 112 + components: + - pos: -5.5,-4.5 + parent: 1 + type: Transform + - uid: 113 + components: + - pos: -6.5,-1.5 + parent: 1 + type: Transform + - uid: 114 + components: + - pos: -6.5,-0.5 + parent: 1 + type: Transform + - uid: 115 + components: + - pos: -6.5,0.5 + parent: 1 + type: Transform + - uid: 116 + components: + - pos: -6.5,1.5 + parent: 1 + type: Transform + - uid: 117 + components: + - pos: -6.5,2.5 + parent: 1 + type: Transform + - uid: 118 + components: + - pos: -5.5,2.5 + parent: 1 + type: Transform + - uid: 119 + components: + - pos: -5.5,3.5 + parent: 1 + type: Transform + - uid: 120 + components: + - pos: -5.5,4.5 + parent: 1 + type: Transform + - uid: 121 + components: + - pos: -5.5,5.5 + parent: 1 + type: Transform + - uid: 122 + components: + - pos: -5.5,6.5 + parent: 1 + type: Transform + - uid: 123 + components: + - pos: -4.5,6.5 + parent: 1 + type: Transform + - uid: 124 + components: + - pos: -3.5,6.5 + parent: 1 + type: Transform + - uid: 125 + components: + - pos: -3.5,5.5 + parent: 1 + type: Transform + - uid: 126 + components: + - pos: -3.5,4.5 + parent: 1 + type: Transform + - uid: 127 + components: + - pos: -3.5,3.5 + parent: 1 + type: Transform + - uid: 128 + components: + - pos: -2.5,0.5 + parent: 1 + type: Transform + - uid: 129 + components: + - pos: -3.5,0.5 + parent: 1 + type: Transform + - uid: 130 + components: + - pos: -3.5,1.5 + parent: 1 + type: Transform + - uid: 131 + components: + - pos: 4.5,1.5 + parent: 1 + type: Transform + - uid: 132 + components: + - pos: 4.5,0.5 + parent: 1 + type: Transform + - uid: 133 + components: + - pos: 3.5,0.5 + parent: 1 + type: Transform + - uid: 134 + components: + - pos: 4.5,3.5 + parent: 1 + type: Transform + - uid: 135 + components: + - pos: 4.5,4.5 + parent: 1 + type: Transform + - uid: 136 + components: + - pos: 4.5,5.5 + parent: 1 + type: Transform + - uid: 137 + components: + - pos: 4.5,6.5 + parent: 1 + type: Transform + - uid: 138 + components: + - pos: 5.5,6.5 + parent: 1 + type: Transform + - uid: 139 + components: + - pos: 6.5,6.5 + parent: 1 + type: Transform + - uid: 140 + components: + - pos: 6.5,5.5 + parent: 1 + type: Transform + - uid: 141 + components: + - pos: 6.5,4.5 + parent: 1 + type: Transform + - uid: 142 + components: + - pos: 6.5,3.5 + parent: 1 + type: Transform + - uid: 143 + components: + - pos: 6.5,2.5 + parent: 1 + type: Transform + - uid: 144 + components: + - pos: 7.5,2.5 + parent: 1 + type: Transform + - uid: 145 + components: + - pos: 7.5,0.5 + parent: 1 + type: Transform + - uid: 146 + components: + - pos: 7.5,1.5 + parent: 1 + type: Transform + - uid: 147 + components: + - pos: 7.5,-0.5 + parent: 1 + type: Transform + - uid: 148 + components: + - pos: 7.5,-1.5 + parent: 1 + type: Transform + - uid: 149 + components: + - pos: 7.5,-2.5 + parent: 1 + type: Transform + - uid: 150 + components: + - pos: 7.5,-3.5 + parent: 1 + type: Transform + - uid: 151 + components: + - pos: 7.5,-4.5 + parent: 1 + type: Transform + - uid: 152 + components: + - pos: 7.5,-5.5 + parent: 1 + type: Transform + - uid: 153 + components: + - pos: 7.5,-6.5 + parent: 1 + type: Transform + - uid: 154 + components: + - pos: 7.5,-7.5 + parent: 1 + type: Transform + - uid: 155 + components: + - pos: 7.5,-8.5 + parent: 1 + type: Transform + - uid: 156 + components: + - pos: 6.5,-8.5 + parent: 1 + type: Transform + - uid: 157 + components: + - pos: 1.5,-5.5 + parent: 1 + type: Transform + - uid: 158 + components: + - pos: 0.5,-5.5 + parent: 1 + type: Transform + - uid: 159 + components: + - pos: 5.5,-5.5 + parent: 1 + type: Transform + - uid: 160 + components: + - pos: 6.5,-5.5 + parent: 1 + type: Transform + - uid: 161 + components: + - pos: 5.5,-4.5 + parent: 1 + type: Transform + - uid: 162 + components: + - pos: 4.5,-4.5 + parent: 1 + type: Transform + - uid: 163 + components: + - pos: 3.5,-4.5 + parent: 1 + type: Transform + - uid: 164 + components: + - pos: -0.5,-5.5 + parent: 1 + type: Transform + - uid: 165 + components: + - pos: 0.5,-6.5 + parent: 1 + type: Transform + - uid: 166 + components: + - pos: 0.5,-7.5 + parent: 1 + type: Transform + - uid: 167 + components: + - pos: 0.5,-8.5 + parent: 1 + type: Transform + - uid: 168 + components: + - pos: 0.5,-9.5 + parent: 1 + type: Transform + - uid: 169 + components: + - pos: 0.5,-10.5 + parent: 1 + type: Transform + - uid: 170 + components: + - pos: 1.5,2.5 + parent: 1 + type: Transform + - uid: 171 + components: + - pos: 2.5,3.5 + parent: 1 + type: Transform + - uid: 172 + components: + - pos: 1.5,3.5 + parent: 1 + type: Transform + - uid: 173 + components: + - pos: 0.5,3.5 + parent: 1 + type: Transform + - uid: 174 + components: + - pos: -0.5,3.5 + parent: 1 + type: Transform + - uid: 175 + components: + - pos: -1.5,3.5 + parent: 1 + type: Transform + - uid: 176 + components: + - pos: -1.5,4.5 + parent: 1 + type: Transform + - uid: 177 + components: + - pos: -1.5,5.5 + parent: 1 + type: Transform + - uid: 178 + components: + - pos: -0.5,5.5 + parent: 1 + type: Transform + - uid: 179 + components: + - pos: 0.5,5.5 + parent: 1 + type: Transform + - uid: 180 + components: + - pos: 1.5,5.5 + parent: 1 + type: Transform + - uid: 181 + components: + - pos: 2.5,5.5 + parent: 1 + type: Transform + - uid: 182 + components: + - pos: 3.5,10.5 + parent: 1 + type: Transform + - uid: 183 + components: + - pos: 3.5,9.5 + parent: 1 + type: Transform + - uid: 184 + components: + - pos: 3.5,8.5 + parent: 1 + type: Transform + - uid: 185 + components: + - pos: 2.5,8.5 + parent: 1 + type: Transform + - uid: 186 + components: + - pos: 1.5,8.5 + parent: 1 + type: Transform + - uid: 187 + components: + - pos: 0.5,8.5 + parent: 1 + type: Transform + - uid: 188 + components: + - pos: -0.5,8.5 + parent: 1 + type: Transform + - uid: 189 + components: + - pos: -1.5,8.5 + parent: 1 + type: Transform + - uid: 190 + components: + - pos: -2.5,8.5 + parent: 1 + type: Transform + - uid: 191 + components: + - pos: -3.5,8.5 + parent: 1 + type: Transform + - uid: 192 + components: + - pos: -3.5,9.5 + parent: 1 + type: Transform + - uid: 193 + components: + - pos: -3.5,10.5 + parent: 1 + type: Transform + - uid: 194 + components: + - pos: -3.5,11.5 + parent: 1 + type: Transform + - uid: 195 + components: + - pos: -3.5,12.5 + parent: 1 + type: Transform + - uid: 196 + components: + - pos: -2.5,12.5 + parent: 1 + type: Transform + - uid: 197 + components: + - pos: -1.5,12.5 + parent: 1 + type: Transform + - uid: 198 + components: + - pos: -0.5,12.5 + parent: 1 + type: Transform + - uid: 199 + components: + - pos: 0.5,12.5 + parent: 1 + type: Transform + - uid: 200 + components: + - pos: 1.5,12.5 + parent: 1 + type: Transform + - uid: 201 + components: + - pos: 2.5,12.5 + parent: 1 + type: Transform + - uid: 202 + components: + - pos: 3.5,12.5 + parent: 1 + type: Transform + - uid: 203 + components: + - pos: 3.5,11.5 + parent: 1 + type: Transform +- proto: CableHV + entities: + - uid: 204 + components: + - pos: -2.5,-12.5 + parent: 1 + type: Transform + - uid: 205 + components: + - pos: -2.5,-13.5 + parent: 1 + type: Transform + - uid: 206 + components: + - pos: -0.5,-11.5 + parent: 1 + type: Transform + - uid: 207 + components: + - pos: 2.5,-12.5 + parent: 1 + type: Transform + - uid: 208 + components: + - pos: 2.5,-13.5 + parent: 1 + type: Transform + - uid: 209 + components: + - pos: 2.5,-14.5 + parent: 1 + type: Transform + - uid: 210 + components: + - pos: 2.5,-15.5 + parent: 1 + type: Transform + - uid: 211 + components: + - pos: -2.5,-14.5 + parent: 1 + type: Transform + - uid: 212 + components: + - pos: 2.5,-12.5 + parent: 1 + type: Transform + - uid: 213 + components: + - pos: 1.5,-12.5 + parent: 1 + type: Transform + - uid: 214 + components: + - pos: 0.5,-12.5 + parent: 1 + type: Transform + - uid: 215 + components: + - pos: -0.5,-12.5 + parent: 1 + type: Transform + - uid: 216 + components: + - pos: -1.5,-11.5 + parent: 1 + type: Transform + - uid: 217 + components: + - pos: -1.5,-12.5 + parent: 1 + type: Transform + - uid: 218 + components: + - pos: -1.5,-13.5 + parent: 1 + type: Transform + - uid: 219 + components: + - pos: -0.5,-10.5 + parent: 1 + type: Transform + - uid: 220 + components: + - pos: -0.5,-9.5 + parent: 1 + type: Transform + - uid: 221 + components: + - pos: -0.5,-8.5 + parent: 1 + type: Transform + - uid: 222 + components: + - pos: -0.5,-7.5 + parent: 1 + type: Transform + - uid: 223 + components: + - pos: -0.5,-6.5 + parent: 1 + type: Transform + - uid: 224 + components: + - pos: -2.5,10.5 + parent: 1 + type: Transform + - uid: 225 + components: + - pos: -3.5,10.5 + parent: 1 + type: Transform + - uid: 226 + components: + - pos: -3.5,9.5 + parent: 1 + type: Transform + - uid: 227 + components: + - pos: -3.5,8.5 + parent: 1 + type: Transform + - uid: 228 + components: + - pos: -3.5,7.5 + parent: 1 + type: Transform + - uid: 229 + components: + - pos: -3.5,6.5 + parent: 1 + type: Transform + - uid: 230 + components: + - pos: -3.5,5.5 + parent: 1 + type: Transform + - uid: 231 + components: + - pos: -4.5,5.5 + parent: 1 + type: Transform + - uid: 232 + components: + - pos: -4.5,4.5 + parent: 1 + type: Transform + - uid: 233 + components: + - pos: -4.5,3.5 + parent: 1 + type: Transform + - uid: 234 + components: + - pos: -4.5,2.5 + parent: 1 + type: Transform + - uid: 235 + components: + - pos: -4.5,1.5 + parent: 1 + type: Transform + - uid: 236 + components: + - pos: -4.5,0.5 + parent: 1 + type: Transform + - uid: 237 + components: + - pos: -4.5,-0.5 + parent: 1 + type: Transform + - uid: 238 + components: + - pos: -4.5,-1.5 + parent: 1 + type: Transform + - uid: 239 + components: + - pos: -4.5,-2.5 + parent: 1 + type: Transform + - uid: 240 + components: + - pos: -4.5,-3.5 + parent: 1 + type: Transform + - uid: 241 + components: + - pos: -4.5,-4.5 + parent: 1 + type: Transform + - uid: 242 + components: + - pos: -4.5,-5.5 + parent: 1 + type: Transform + - uid: 243 + components: + - pos: -3.5,-5.5 + parent: 1 + type: Transform + - uid: 244 + components: + - pos: -2.5,-5.5 + parent: 1 + type: Transform + - uid: 245 + components: + - pos: -1.5,-5.5 + parent: 1 + type: Transform + - uid: 246 + components: + - pos: -0.5,-5.5 + parent: 1 + type: Transform + - uid: 247 + components: + - pos: -3.5,11.5 + parent: 1 + type: Transform + - uid: 248 + components: + - pos: -3.5,12.5 + parent: 1 + type: Transform + - uid: 249 + components: + - pos: -4.5,12.5 + parent: 1 + type: Transform + - uid: 250 + components: + - pos: -4.5,13.5 + parent: 1 + type: Transform + - uid: 251 + components: + - pos: -3.5,13.5 + parent: 1 + type: Transform + - uid: 252 + components: + - pos: -3.5,14.5 + parent: 1 + type: Transform + - uid: 253 + components: + - pos: -2.5,14.5 + parent: 1 + type: Transform + - uid: 254 + components: + - pos: -1.5,14.5 + parent: 1 + type: Transform + - uid: 255 + components: + - pos: -0.5,14.5 + parent: 1 + type: Transform + - uid: 256 + components: + - pos: 0.5,14.5 + parent: 1 + type: Transform + - uid: 257 + components: + - pos: 1.5,14.5 + parent: 1 + type: Transform + - uid: 258 + components: + - pos: 2.5,14.5 + parent: 1 + type: Transform + - uid: 259 + components: + - pos: 3.5,14.5 + parent: 1 + type: Transform + - uid: 260 + components: + - pos: 4.5,14.5 + parent: 1 + type: Transform + - uid: 261 + components: + - pos: 4.5,13.5 + parent: 1 + type: Transform + - uid: 262 + components: + - pos: 5.5,13.5 + parent: 1 + type: Transform + - uid: 263 + components: + - pos: 5.5,12.5 + parent: 1 + type: Transform + - uid: 264 + components: + - pos: 4.5,12.5 + parent: 1 + type: Transform + - uid: 265 + components: + - pos: 2.5,10.5 + parent: 1 + type: Transform + - uid: 266 + components: + - pos: 2.5,11.5 + parent: 1 + type: Transform + - uid: 267 + components: + - pos: 3.5,11.5 + parent: 1 + type: Transform + - uid: 268 + components: + - pos: 4.5,11.5 + parent: 1 + type: Transform + - uid: 269 + components: + - pos: 4.5,10.5 + parent: 1 + type: Transform + - uid: 270 + components: + - pos: 4.5,9.5 + parent: 1 + type: Transform + - uid: 271 + components: + - pos: 4.5,8.5 + parent: 1 + type: Transform + - uid: 272 + components: + - pos: 3.5,8.5 + parent: 1 + type: Transform + - uid: 273 + components: + - pos: 2.5,8.5 + parent: 1 + type: Transform + - uid: 274 + components: + - pos: 1.5,8.5 + parent: 1 + type: Transform + - uid: 275 + components: + - pos: 0.5,8.5 + parent: 1 + type: Transform + - uid: 276 + components: + - pos: -0.5,8.5 + parent: 1 + type: Transform + - uid: 277 + components: + - pos: -1.5,8.5 + parent: 1 + type: Transform + - uid: 278 + components: + - pos: -2.5,8.5 + parent: 1 + type: Transform + - uid: 279 + components: + - pos: 4.5,-0.5 + parent: 1 + type: Transform + - uid: 280 + components: + - pos: 4.5,0.5 + parent: 1 + type: Transform + - uid: 281 + components: + - pos: 3.5,0.5 + parent: 1 + type: Transform + - uid: 282 + components: + - pos: 2.5,0.5 + parent: 1 + type: Transform + - uid: 283 + components: + - pos: 1.5,0.5 + parent: 1 + type: Transform + - uid: 284 + components: + - pos: 0.5,0.5 + parent: 1 + type: Transform + - uid: 285 + components: + - pos: -0.5,0.5 + parent: 1 + type: Transform + - uid: 286 + components: + - pos: -1.5,0.5 + parent: 1 + type: Transform + - uid: 287 + components: + - pos: -2.5,0.5 + parent: 1 + type: Transform + - uid: 288 + components: + - pos: -3.5,0.5 + parent: 1 + type: Transform + - uid: 289 + components: + - pos: -3.5,-0.5 + parent: 1 + type: Transform +- proto: CableMV + entities: + - uid: 290 + components: + - pos: 2.5,-12.5 + parent: 1 + type: Transform + - uid: 291 + components: + - pos: 2.5,-13.5 + parent: 1 + type: Transform + - uid: 292 + components: + - pos: 1.5,-13.5 + parent: 1 + type: Transform + - uid: 293 + components: + - pos: 0.5,-13.5 + parent: 1 + type: Transform + - uid: 294 + components: + - pos: -0.5,-13.5 + parent: 1 + type: Transform + - uid: 295 + components: + - pos: -1.5,-13.5 + parent: 1 + type: Transform + - uid: 296 + components: + - pos: -2.5,-13.5 + parent: 1 + type: Transform + - uid: 297 + components: + - pos: -3.5,-13.5 + parent: 1 + type: Transform + - uid: 298 + components: + - pos: -0.5,-14.5 + parent: 1 + type: Transform + - uid: 299 + components: + - pos: -0.5,-15.5 + parent: 1 + type: Transform + - uid: 300 + components: + - pos: 0.5,-15.5 + parent: 1 + type: Transform + - uid: 301 + components: + - pos: 1.5,-15.5 + parent: 1 + type: Transform + - uid: 302 + components: + - pos: 1.5,-14.5 + parent: 1 + type: Transform + - uid: 303 + components: + - pos: -0.5,-12.5 + parent: 1 + type: Transform + - uid: 304 + components: + - pos: -0.5,-11.5 + parent: 1 + type: Transform + - uid: 305 + components: + - pos: -0.5,-9.5 + parent: 1 + type: Transform + - uid: 306 + components: + - pos: -0.5,-8.5 + parent: 1 + type: Transform + - uid: 307 + components: + - pos: -0.5,-7.5 + parent: 1 + type: Transform + - uid: 308 + components: + - pos: -1.5,-7.5 + parent: 1 + type: Transform + - uid: 309 + components: + - pos: -2.5,-7.5 + parent: 1 + type: Transform + - uid: 310 + components: + - pos: -3.5,-7.5 + parent: 1 + type: Transform + - uid: 311 + components: + - pos: -4.5,-7.5 + parent: 1 + type: Transform + - uid: 312 + components: + - pos: -4.5,-6.5 + parent: 1 + type: Transform + - uid: 313 + components: + - pos: -0.5,-10.5 + parent: 1 + type: Transform + - uid: 314 + components: + - pos: 1.5,-10.5 + parent: 1 + type: Transform + - uid: 315 + components: + - pos: 1.5,-11.5 + parent: 1 + type: Transform + - uid: 316 + components: + - pos: 1.5,-12.5 + parent: 1 + type: Transform + - uid: 317 + components: + - pos: 1.5,-7.5 + parent: 1 + type: Transform + - uid: 318 + components: + - pos: 1.5,-8.5 + parent: 1 + type: Transform + - uid: 319 + components: + - pos: 2.5,-7.5 + parent: 1 + type: Transform + - uid: 320 + components: + - pos: 3.5,-7.5 + parent: 1 + type: Transform + - uid: 321 + components: + - pos: 4.5,-7.5 + parent: 1 + type: Transform + - uid: 322 + components: + - pos: 4.5,-6.5 + parent: 1 + type: Transform + - uid: 323 + components: + - pos: 1.5,-9.5 + parent: 1 + type: Transform + - uid: 324 + components: + - pos: 1.5,-6.5 + parent: 1 + type: Transform + - uid: 325 + components: + - pos: 1.5,-5.5 + parent: 1 + type: Transform + - uid: 326 + components: + - pos: 2.5,-5.5 + parent: 1 + type: Transform + - uid: 327 + components: + - pos: 2.5,-4.5 + parent: 1 + type: Transform + - uid: 328 + components: + - pos: 2.5,-3.5 + parent: 1 + type: Transform + - uid: 329 + components: + - pos: 2.5,-2.5 + parent: 1 + type: Transform + - uid: 330 + components: + - pos: 2.5,-1.5 + parent: 1 + type: Transform + - uid: 331 + components: + - pos: 2.5,-0.5 + parent: 1 + type: Transform + - uid: 332 + components: + - pos: 2.5,0.5 + parent: 1 + type: Transform + - uid: 333 + components: + - pos: 1.5,0.5 + parent: 1 + type: Transform + - uid: 334 + components: + - pos: 0.5,0.5 + parent: 1 + type: Transform + - uid: 335 + components: + - pos: 0.5,-0.5 + parent: 1 + type: Transform + - uid: 336 + components: + - pos: -0.5,0.5 + parent: 1 + type: Transform + - uid: 337 + components: + - pos: -1.5,0.5 + parent: 1 + type: Transform + - uid: 338 + components: + - pos: -1.5,-0.5 + parent: 1 + type: Transform + - uid: 339 + components: + - pos: -1.5,-1.5 + parent: 1 + type: Transform + - uid: 340 + components: + - pos: -1.5,-2.5 + parent: 1 + type: Transform + - uid: 341 + components: + - pos: -1.5,-3.5 + parent: 1 + type: Transform + - uid: 342 + components: + - pos: -1.5,-4.5 + parent: 1 + type: Transform + - uid: 343 + components: + - pos: -1.5,-5.5 + parent: 1 + type: Transform + - uid: 344 + components: + - pos: -0.5,-5.5 + parent: 1 + type: Transform + - uid: 345 + components: + - pos: -0.5,-6.5 + parent: 1 + type: Transform + - uid: 346 + components: + - pos: 1.5,1.5 + parent: 1 + type: Transform + - uid: 347 + components: + - pos: 1.5,2.5 + parent: 1 + type: Transform + - uid: 348 + components: + - pos: -2.5,10.5 + parent: 1 + type: Transform + - uid: 349 + components: + - pos: -2.5,9.5 + parent: 1 + type: Transform + - uid: 350 + components: + - pos: -1.5,9.5 + parent: 1 + type: Transform + - uid: 351 + components: + - pos: -0.5,9.5 + parent: 1 + type: Transform + - uid: 352 + components: + - pos: 0.5,9.5 + parent: 1 + type: Transform + - uid: 353 + components: + - pos: 1.5,9.5 + parent: 1 + type: Transform + - uid: 354 + components: + - pos: 2.5,9.5 + parent: 1 + type: Transform + - uid: 355 + components: + - pos: 3.5,9.5 + parent: 1 + type: Transform + - uid: 356 + components: + - pos: 3.5,10.5 + parent: 1 + type: Transform + - uid: 357 + components: + - pos: 4.5,9.5 + parent: 1 + type: Transform + - uid: 358 + components: + - pos: 5.5,9.5 + parent: 1 + type: Transform + - uid: 359 + components: + - pos: 6.5,9.5 + parent: 1 + type: Transform + - uid: 360 + components: + - pos: 6.5,8.5 + parent: 1 + type: Transform + - uid: 361 + components: + - pos: -5.5,8.5 + parent: 1 + type: Transform + - uid: 362 + components: + - pos: -5.5,9.5 + parent: 1 + type: Transform + - uid: 363 + components: + - pos: -4.5,9.5 + parent: 1 + type: Transform + - uid: 364 + components: + - pos: -3.5,9.5 + parent: 1 + type: Transform + - uid: 365 + components: + - pos: -2.5,0.5 + parent: 1 + type: Transform + - uid: 366 + components: + - pos: -3.5,0.5 + parent: 1 + type: Transform + - uid: 367 + components: + - pos: -3.5,-0.5 + parent: 1 + type: Transform +- proto: CableTerminal + entities: + - uid: 368 + components: + - rot: 3.141592653589793 rad + pos: -1.5,-13.5 + parent: 1 + type: Transform +- proto: CandleBlueInfinite + entities: + - uid: 369 + components: + - pos: 0.40085018,8.408222 + parent: 1 + type: Transform +- proto: CandleGreenInfinite + entities: + - uid: 370 + components: + - pos: 0.57516325,8.27147 + parent: 1 + type: Transform +- proto: CandlePurpleInfinite + entities: + - uid: 371 + components: + - pos: 0.45705903,8.178229 + parent: 1 + type: Transform +- proto: CarpetBlue + entities: + - uid: 372 + components: + - rot: 1.5707963267948966 rad + pos: 0.5,5.5 + parent: 1 + type: Transform + - uid: 373 + components: + - rot: 1.5707963267948966 rad + pos: 0.5,4.5 + parent: 1 + type: Transform + - uid: 374 + components: + - rot: 1.5707963267948966 rad + pos: -0.5,4.5 + parent: 1 + type: Transform + - uid: 375 + components: + - rot: 1.5707963267948966 rad + pos: -1.5,4.5 + parent: 1 + type: Transform +- proto: Catwalk + entities: + - uid: 376 + components: + - pos: -1.5,-13.5 + parent: 1 + type: Transform + - uid: 377 + components: + - pos: -2.5,-13.5 + parent: 1 + type: Transform +- proto: Chair + entities: + - uid: 378 + components: + - rot: 1.5707963267948966 rad + pos: -1.5,3.5 + parent: 1 + type: Transform +- proto: ChairOfficeLight + entities: + - uid: 379 + components: + - rot: 3.141592653589793 rad + pos: 4.5,-11.5 + parent: 1 + type: Transform +- proto: ChairPilotSeat + entities: + - uid: 380 + components: + - rot: 3.141592653589793 rad + pos: 0.5,-14.5 + parent: 1 + type: Transform + - uid: 381 + components: + - rot: -1.5707963267948966 rad + pos: 6.5,4.5 + parent: 1 + type: Transform + - uid: 382 + components: + - rot: -1.5707963267948966 rad + pos: 6.5,5.5 + parent: 1 + type: Transform + - uid: 383 + components: + - rot: 3.141592653589793 rad + pos: -4.5,-8.5 + parent: 1 + type: Transform + - uid: 384 + components: + - rot: 3.141592653589793 rad + pos: -5.5,-8.5 + parent: 1 + type: Transform + - uid: 385 + components: + - rot: 3.141592653589793 rad + pos: -0.5,-14.5 + parent: 1 + type: Transform + - uid: 386 + components: + - rot: 3.141592653589793 rad + pos: 1.5,-14.5 + parent: 1 + type: Transform + - uid: 387 + components: + - rot: -1.5707963267948966 rad + pos: 3.5,-3.5 + parent: 1 + type: Transform + - uid: 388 + components: + - rot: 1.5707963267948966 rad + pos: -6.5,-1.5 + parent: 1 + type: Transform + - uid: 389 + components: + - rot: 1.5707963267948966 rad + pos: -6.5,-2.5 + parent: 1 + type: Transform + - uid: 390 + components: + - rot: 1.5707963267948966 rad + pos: -2.5,-3.5 + parent: 1 + type: Transform + - uid: 391 + components: + - rot: 1.5707963267948966 rad + pos: -2.5,-2.5 + parent: 1 + type: Transform + - uid: 392 + components: + - rot: 1.5707963267948966 rad + pos: -2.5,-1.5 + parent: 1 + type: Transform + - uid: 393 + components: + - rot: 1.5707963267948966 rad + pos: -2.5,-0.5 + parent: 1 + type: Transform + - uid: 394 + components: + - rot: -1.5707963267948966 rad + pos: 3.5,-0.5 + parent: 1 + type: Transform + - uid: 395 + components: + - rot: -1.5707963267948966 rad + pos: 3.5,-1.5 + parent: 1 + type: Transform + - uid: 396 + components: + - rot: -1.5707963267948966 rad + pos: 3.5,-2.5 + parent: 1 + type: Transform + - uid: 397 + components: + - rot: 1.5707963267948966 rad + pos: -6.5,-0.5 + parent: 1 + type: Transform + - uid: 398 + components: + - rot: 1.5707963267948966 rad + pos: -6.5,-3.5 + parent: 1 + type: Transform + - uid: 399 + components: + - rot: -1.5707963267948966 rad + pos: -4.5,-3.5 + parent: 1 + type: Transform + - uid: 400 + components: + - rot: -1.5707963267948966 rad + pos: -4.5,-2.5 + parent: 1 + type: Transform + - uid: 401 + components: + - rot: -1.5707963267948966 rad + pos: -4.5,-1.5 + parent: 1 + type: Transform + - uid: 402 + components: + - rot: -1.5707963267948966 rad + pos: -4.5,-0.5 + parent: 1 + type: Transform + - uid: 403 + components: + - rot: 1.5707963267948966 rad + pos: 5.5,-3.5 + parent: 1 + type: Transform + - uid: 404 + components: + - rot: 1.5707963267948966 rad + pos: 5.5,-2.5 + parent: 1 + type: Transform + - uid: 405 + components: + - rot: 1.5707963267948966 rad + pos: 5.5,-1.5 + parent: 1 + type: Transform + - uid: 406 + components: + - rot: 1.5707963267948966 rad + pos: 5.5,-0.5 + parent: 1 + type: Transform + - uid: 407 + components: + - rot: -1.5707963267948966 rad + pos: 7.5,-0.5 + parent: 1 + type: Transform + - uid: 408 + components: + - rot: -1.5707963267948966 rad + pos: 7.5,-1.5 + parent: 1 + type: Transform + - uid: 409 + components: + - rot: -1.5707963267948966 rad + pos: 7.5,-2.5 + parent: 1 + type: Transform + - uid: 410 + components: + - rot: -1.5707963267948966 rad + pos: 7.5,-3.5 + parent: 1 + type: Transform + - uid: 411 + components: + - rot: 1.5707963267948966 rad + pos: -5.5,5.5 + parent: 1 + type: Transform + - uid: 412 + components: + - rot: 1.5707963267948966 rad + pos: -5.5,4.5 + parent: 1 + type: Transform + - uid: 413 + components: + - rot: -1.5707963267948966 rad + pos: -2.5,12.5 + parent: 1 + type: Transform + - uid: 414 + components: + - rot: 3.141592653589793 rad + pos: 0.5,12.5 + parent: 1 + type: Transform + - uid: 415 + components: + - rot: 3.141592653589793 rad + pos: -1.5,12.5 + parent: 1 + type: Transform + - uid: 416 + components: + - rot: 3.141592653589793 rad + pos: 2.5,12.5 + parent: 1 + type: Transform + - uid: 417 + components: + - rot: 1.5707963267948966 rad + pos: 3.5,12.5 + parent: 1 + type: Transform +- proto: ClosetEmergencyFilledRandom + entities: + - uid: 418 + components: + - pos: -6.5,-4.5 + parent: 1 + type: Transform + - uid: 419 + components: + - pos: -5.5,6.5 + parent: 1 + type: Transform +- proto: ClosetFireFilled + entities: + - uid: 420 + components: + - pos: 7.5,-4.5 + parent: 1 + type: Transform + - uid: 421 + components: + - pos: 6.5,6.5 + parent: 1 + type: Transform +- proto: ClosetL3VirologyFilled + entities: + - uid: 422 + components: + - pos: 5.5,-11.5 + parent: 1 + type: Transform +- proto: ClosetWallEmergencyFilledRandom + entities: + - uid: 423 + components: + - rot: 3.141592653589793 rad + pos: 7.5,-9.5 + parent: 1 + type: Transform + - uid: 424 + components: + - pos: -2.5,2.5 + parent: 1 + type: Transform +- proto: ClosetWallFireFilledRandom + entities: + - uid: 425 + components: + - rot: 3.141592653589793 rad + pos: 6.5,-9.5 + parent: 1 + type: Transform + - uid: 426 + components: + - pos: 3.5,2.5 + parent: 1 + type: Transform +- proto: ComfyChair + entities: + - uid: 428 + components: + - rot: 1.5707963267948966 rad + pos: -0.5,7.5 + parent: 1 + type: Transform + - uid: 429 + components: + - rot: 1.5707963267948966 rad + pos: -0.5,8.5 + parent: 1 + type: Transform + - uid: 430 + components: + - rot: -1.5707963267948966 rad + pos: 1.5,8.5 + parent: 1 + type: Transform + - uid: 431 + components: + - rot: -1.5707963267948966 rad + pos: 1.5,7.5 + parent: 1 + type: Transform +- proto: ComputerComms + entities: + - uid: 432 + components: + - pos: -0.5,13.5 + parent: 1 + type: Transform +- proto: ComputerCrewMonitoring + entities: + - uid: 433 + components: + - rot: 1.5707963267948966 rad + pos: -3.5,12.5 + parent: 1 + type: Transform +- proto: ComputerCriminalRecords + entities: + - uid: 434 + components: + - pos: 2.5,13.5 + parent: 1 + type: Transform +- proto: ComputerEmergencyShuttle + entities: + - uid: 435 + components: + - pos: 0.5,13.5 + parent: 1 + type: Transform +- proto: ComputerId + entities: + - uid: 436 + components: + - pos: 1.5,13.5 + parent: 1 + type: Transform +- proto: ComputerPowerMonitoring + entities: + - uid: 437 + components: + - rot: -1.5707963267948966 rad + pos: 4.5,12.5 + parent: 1 + type: Transform +- proto: ComputerResearchAndDevelopment + entities: + - uid: 438 + components: + - pos: -1.5,13.5 + parent: 1 + type: Transform +- proto: DefibrillatorCabinetFilled + entities: + - uid: 439 + components: + - pos: 3.5,-6.5 + parent: 1 + type: Transform +- proto: DogBed + entities: + - uid: 440 + components: + - pos: 2.5,7.5 + parent: 1 + type: Transform +- proto: EmergencyLight + entities: + - uid: 441 + components: + - pos: 2.5,9.5 + parent: 1 + type: Transform + - uid: 442 + components: + - rot: 3.141592653589793 rad + pos: -1.5,11.5 + parent: 1 + type: Transform + - uid: 443 + components: + - pos: 2.5,-13.5 + parent: 1 + type: Transform + - uid: 444 + components: + - rot: 1.5707963267948966 rad + pos: -0.5,-8.5 + parent: 1 + type: Transform +- proto: Firelock + entities: + - uid: 445 + components: + - rot: 1.5707963267948966 rad + pos: -0.5,-11.5 + parent: 1 + type: Transform + - uid: 446 + components: + - rot: 1.5707963267948966 rad + pos: 1.5,-11.5 + parent: 1 + type: Transform +- proto: FirelockEdge + entities: + - uid: 447 + components: + - rot: 3.141592653589793 rad + pos: -1.5,-0.5 + parent: 1 + type: Transform + - uid: 448 + components: + - rot: 3.141592653589793 rad + pos: 2.5,-0.5 + parent: 1 + type: Transform + - uid: 449 + components: + - pos: -1.5,-3.5 + parent: 1 + type: Transform + - uid: 450 + components: + - pos: 2.5,-3.5 + parent: 1 + type: Transform + - uid: 451 + components: + - rot: 1.5707963267948966 rad + pos: -1.5,11.5 + parent: 1 + type: Transform + - uid: 452 + components: + - rot: -1.5707963267948966 rad + pos: 2.5,11.5 + parent: 1 + type: Transform +- proto: FirelockGlass + entities: + - uid: 453 + components: + - rot: -1.5707963267948966 rad + pos: -0.5,-6.5 + parent: 1 + type: Transform + - uid: 454 + components: + - rot: -1.5707963267948966 rad + pos: 0.5,-6.5 + parent: 1 + type: Transform + - uid: 455 + components: + - rot: -1.5707963267948966 rad + pos: 1.5,-6.5 + parent: 1 + type: Transform + - uid: 456 + components: + - rot: -1.5707963267948966 rad + pos: 4.5,0.5 + parent: 1 + type: Transform + - uid: 457 + components: + - rot: -1.5707963267948966 rad + pos: 4.5,-4.5 + parent: 1 + type: Transform + - uid: 458 + components: + - rot: -1.5707963267948966 rad + pos: 4.5,-5.5 + parent: 1 + type: Transform + - uid: 459 + components: + - rot: -1.5707963267948966 rad + pos: -3.5,-4.5 + parent: 1 + type: Transform + - uid: 460 + components: + - rot: -1.5707963267948966 rad + pos: -3.5,-5.5 + parent: 1 + type: Transform + - uid: 461 + components: + - rot: -1.5707963267948966 rad + pos: -3.5,0.5 + parent: 1 + type: Transform + - uid: 462 + components: + - rot: -1.5707963267948966 rad + pos: -3.5,1.5 + parent: 1 + type: Transform + - uid: 463 + components: + - rot: -1.5707963267948966 rad + pos: 4.5,1.5 + parent: 1 + type: Transform + - uid: 464 + components: + - pos: -1.5,2.5 + parent: 1 + type: Transform + - uid: 465 + components: + - pos: -0.5,2.5 + parent: 1 + type: Transform + - uid: 466 + components: + - pos: 0.5,2.5 + parent: 1 + type: Transform + - uid: 467 + components: + - rot: 1.5707963267948966 rad + pos: -1.5,-7.5 + parent: 1 + type: Transform + - uid: 468 + components: + - rot: 1.5707963267948966 rad + pos: 2.5,-7.5 + parent: 1 + type: Transform + - uid: 469 + components: + - rot: 1.5707963267948966 rad + pos: -3.5,7.5 + parent: 1 + type: Transform + - uid: 470 + components: + - rot: 1.5707963267948966 rad + pos: 4.5,7.5 + parent: 1 + type: Transform + - uid: 471 + components: + - rot: 1.5707963267948966 rad + pos: 4.5,10.5 + parent: 1 + type: Transform + - uid: 472 + components: + - rot: 1.5707963267948966 rad + pos: -3.5,10.5 + parent: 1 + type: Transform +- proto: FloraTreeLarge06 + entities: + - uid: 473 + components: + - pos: 0.5138967,-2.4482055 + parent: 1 + type: Transform +- proto: FoodCakeBirthday + entities: + - uid: 427 + components: + - pos: 0.49291778,7.754779 + parent: 1 + type: Transform +- proto: GasOutletInjector + entities: + - uid: 474 + components: + - rot: -1.5707963267948966 rad + pos: 3.5,-14.5 + parent: 1 + type: Transform +- proto: GasPassiveVent + entities: + - uid: 475 + components: + - rot: -1.5707963267948966 rad + pos: 4.5,-13.5 + parent: 1 + type: Transform + - color: '#FC6100FF' + type: AtmosPipeColor +- proto: GasPipeBend + entities: + - uid: 476 + components: + - rot: 3.141592653589793 rad + pos: 0.5,-13.5 + parent: 1 + type: Transform + - color: '#FC6100FF' + type: AtmosPipeColor + - uid: 477 + components: + - rot: 1.5707963267948966 rad + pos: -2.5,-7.5 + parent: 1 + type: Transform + - color: '#020F73FF' + type: AtmosPipeColor + - uid: 478 + components: + - rot: -1.5707963267948966 rad + pos: -2.5,-10.5 + parent: 1 + type: Transform + - color: '#020F73FF' + type: AtmosPipeColor + - uid: 479 + components: + - rot: 1.5707963267948966 rad + pos: -4.5,-10.5 + parent: 1 + type: Transform + - color: '#020F73FF' + type: AtmosPipeColor + - uid: 480 + components: + - rot: -1.5707963267948966 rad + pos: 6.5,-5.5 + parent: 1 + type: Transform + - color: '#020F73FF' + type: AtmosPipeColor + - uid: 481 + components: + - pos: 3.5,-7.5 + parent: 1 + type: Transform + - color: '#020F73FF' + type: AtmosPipeColor + - uid: 482 + components: + - rot: 3.141592653589793 rad + pos: -5.5,-5.5 + parent: 1 + type: Transform + - color: '#020F73FF' + type: AtmosPipeColor + - uid: 483 + components: + - pos: 2.5,3.5 + parent: 1 + type: Transform + - color: '#020F73FF' + type: AtmosPipeColor + - uid: 484 + components: + - pos: 6.5,2.5 + parent: 1 + type: Transform + - color: '#020F73FF' + type: AtmosPipeColor + - uid: 485 + components: + - rot: 3.141592653589793 rad + pos: 5.5,2.5 + parent: 1 + type: Transform + - color: '#020F73FF' + type: AtmosPipeColor + - uid: 486 + components: + - rot: 1.5707963267948966 rad + pos: -5.5,2.5 + parent: 1 + type: Transform + - color: '#020F73FF' + type: AtmosPipeColor + - uid: 487 + components: + - rot: -1.5707963267948966 rad + pos: -4.5,2.5 + parent: 1 + type: Transform + - color: '#020F73FF' + type: AtmosPipeColor + - uid: 488 + components: + - pos: 5.5,5.5 + parent: 1 + type: Transform + - color: '#020F73FF' + type: AtmosPipeColor + - uid: 489 + components: + - rot: 3.141592653589793 rad + pos: 4.5,5.5 + parent: 1 + type: Transform + - color: '#020F73FF' + type: AtmosPipeColor + - uid: 490 + components: + - rot: 1.5707963267948966 rad + pos: -4.5,5.5 + parent: 1 + type: Transform + - color: '#020F73FF' + type: AtmosPipeColor + - uid: 491 + components: + - rot: -1.5707963267948966 rad + pos: -3.5,5.5 + parent: 1 + type: Transform + - color: '#020F73FF' + type: AtmosPipeColor + - uid: 492 + components: + - rot: -1.5707963267948966 rad + pos: -3.5,5.5 + parent: 1 + type: Transform + - color: '#020F73FF' + type: AtmosPipeColor + - uid: 493 + components: + - rot: 1.5707963267948966 rad + pos: -3.5,11.5 + parent: 1 + type: Transform + - color: '#020F73FF' + type: AtmosPipeColor + - uid: 494 + components: + - pos: 4.5,11.5 + parent: 1 + type: Transform + - color: '#020F73FF' + type: AtmosPipeColor +- proto: GasPipeFourway + entities: + - uid: 495 + components: + - pos: 0.5,-5.5 + parent: 1 + type: Transform + - color: '#020F73FF' + type: AtmosPipeColor + - uid: 496 + components: + - pos: 2.5,1.5 + parent: 1 + type: Transform + - color: '#020F73FF' + type: AtmosPipeColor +- proto: GasPipeStraight + entities: + - uid: 497 + components: + - rot: 1.5707963267948966 rad + pos: 3.5,-13.5 + parent: 1 + type: Transform + - color: '#FC6100FF' + type: AtmosPipeColor + - uid: 498 + components: + - rot: 1.5707963267948966 rad + pos: 2.5,-13.5 + parent: 1 + type: Transform + - color: '#FC6100FF' + type: AtmosPipeColor + - uid: 499 + components: + - rot: 3.141592653589793 rad + pos: 1.5,-11.5 + parent: 1 + type: Transform + - color: '#020F73FF' + type: AtmosPipeColor + - uid: 500 + components: + - rot: 3.141592653589793 rad + pos: 1.5,-9.5 + parent: 1 + type: Transform + - color: '#020F73FF' + type: AtmosPipeColor + - uid: 501 + components: + - pos: 1.5,-8.5 + parent: 1 + type: Transform + - color: '#020F73FF' + type: AtmosPipeColor + - uid: 502 + components: + - rot: -1.5707963267948966 rad + pos: -0.5,-7.5 + parent: 1 + type: Transform + - color: '#020F73FF' + type: AtmosPipeColor + - uid: 503 + components: + - rot: -1.5707963267948966 rad + pos: -1.5,-7.5 + parent: 1 + type: Transform + - color: '#020F73FF' + type: AtmosPipeColor + - uid: 504 + components: + - rot: -1.5707963267948966 rad + pos: -3.5,-8.5 + parent: 1 + type: Transform + - color: '#020F73FF' + type: AtmosPipeColor + - uid: 505 + components: + - rot: -1.5707963267948966 rad + pos: -4.5,-8.5 + parent: 1 + type: Transform + - color: '#020F73FF' + type: AtmosPipeColor + - uid: 506 + components: + - pos: 0.5,-6.5 + parent: 1 + type: Transform + - color: '#020F73FF' + type: AtmosPipeColor + - uid: 507 + components: + - rot: 1.5707963267948966 rad + pos: -3.5,-10.5 + parent: 1 + type: Transform + - color: '#020F73FF' + type: AtmosPipeColor + - uid: 508 + components: + - pos: -4.5,-11.5 + parent: 1 + type: Transform + - color: '#020F73FF' + type: AtmosPipeColor + - uid: 509 + components: + - pos: -2.5,-9.5 + parent: 1 + type: Transform + - color: '#020F73FF' + type: AtmosPipeColor + - uid: 510 + components: + - rot: -1.5707963267948966 rad + pos: 1.5,-5.5 + parent: 1 + type: Transform + - color: '#020F73FF' + type: AtmosPipeColor + - uid: 511 + components: + - rot: -1.5707963267948966 rad + pos: 2.5,-5.5 + parent: 1 + type: Transform + - color: '#020F73FF' + type: AtmosPipeColor + - uid: 512 + components: + - rot: -1.5707963267948966 rad + pos: 3.5,-5.5 + parent: 1 + type: Transform + - color: '#020F73FF' + type: AtmosPipeColor + - uid: 513 + components: + - rot: -1.5707963267948966 rad + pos: 4.5,-5.5 + parent: 1 + type: Transform + - color: '#020F73FF' + type: AtmosPipeColor + - uid: 514 + components: + - rot: -1.5707963267948966 rad + pos: 5.5,-5.5 + parent: 1 + type: Transform + - color: '#020F73FF' + type: AtmosPipeColor + - uid: 515 + components: + - pos: 3.5,-9.5 + parent: 1 + type: Transform + - color: '#020F73FF' + type: AtmosPipeColor + - uid: 516 + components: + - rot: -1.5707963267948966 rad + pos: 2.5,-7.5 + parent: 1 + type: Transform + - color: '#020F73FF' + type: AtmosPipeColor + - uid: 517 + components: + - pos: 3.5,-8.5 + parent: 1 + type: Transform + - color: '#020F73FF' + type: AtmosPipeColor + - uid: 518 + components: + - rot: -1.5707963267948966 rad + pos: -0.5,-5.5 + parent: 1 + type: Transform + - color: '#020F73FF' + type: AtmosPipeColor + - uid: 519 + components: + - rot: 1.5707963267948966 rad + pos: 4.5,-10.5 + parent: 1 + type: Transform + - color: '#020F73FF' + type: AtmosPipeColor + - uid: 520 + components: + - rot: 1.5707963267948966 rad + pos: 5.5,-10.5 + parent: 1 + type: Transform + - color: '#020F73FF' + type: AtmosPipeColor + - uid: 521 + components: + - pos: 6.5,-3.5 + parent: 1 + type: Transform + - color: '#020F73FF' + type: AtmosPipeColor + - uid: 522 + components: + - pos: -1.5,-4.5 + parent: 1 + type: Transform + - color: '#020F73FF' + type: AtmosPipeColor + - uid: 523 + components: + - pos: -1.5,-3.5 + parent: 1 + type: Transform + - color: '#020F73FF' + type: AtmosPipeColor + - uid: 524 + components: + - pos: -1.5,-2.5 + parent: 1 + type: Transform + - color: '#020F73FF' + type: AtmosPipeColor + - uid: 525 + components: + - pos: -1.5,-1.5 + parent: 1 + type: Transform + - color: '#020F73FF' + type: AtmosPipeColor + - uid: 526 + components: + - rot: -1.5707963267948966 rad + pos: -2.5,-5.5 + parent: 1 + type: Transform + - color: '#020F73FF' + type: AtmosPipeColor + - uid: 527 + components: + - rot: -1.5707963267948966 rad + pos: -3.5,-5.5 + parent: 1 + type: Transform + - color: '#020F73FF' + type: AtmosPipeColor + - uid: 528 + components: + - rot: -1.5707963267948966 rad + pos: -4.5,-5.5 + parent: 1 + type: Transform + - color: '#020F73FF' + type: AtmosPipeColor + - uid: 529 + components: + - pos: 6.5,-2.5 + parent: 1 + type: Transform + - color: '#020F73FF' + type: AtmosPipeColor + - uid: 530 + components: + - pos: 6.5,-1.5 + parent: 1 + type: Transform + - color: '#020F73FF' + type: AtmosPipeColor + - uid: 531 + components: + - pos: 6.5,-0.5 + parent: 1 + type: Transform + - color: '#020F73FF' + type: AtmosPipeColor + - uid: 532 + components: + - rot: 3.141592653589793 rad + pos: -5.5,-3.5 + parent: 1 + type: Transform + - color: '#020F73FF' + type: AtmosPipeColor + - uid: 533 + components: + - rot: 3.141592653589793 rad + pos: -5.5,-2.5 + parent: 1 + type: Transform + - color: '#020F73FF' + type: AtmosPipeColor + - uid: 534 + components: + - rot: 3.141592653589793 rad + pos: -5.5,-1.5 + parent: 1 + type: Transform + - color: '#020F73FF' + type: AtmosPipeColor + - uid: 535 + components: + - rot: 3.141592653589793 rad + pos: -5.5,-0.5 + parent: 1 + type: Transform + - color: '#020F73FF' + type: AtmosPipeColor + - uid: 536 + components: + - pos: 6.5,0.5 + parent: 1 + type: Transform + - color: '#020F73FF' + type: AtmosPipeColor + - uid: 537 + components: + - pos: -5.5,0.5 + parent: 1 + type: Transform + - color: '#020F73FF' + type: AtmosPipeColor + - uid: 538 + components: + - rot: -1.5707963267948966 rad + pos: -4.5,1.5 + parent: 1 + type: Transform + - color: '#020F73FF' + type: AtmosPipeColor + - uid: 539 + components: + - rot: -1.5707963267948966 rad + pos: -3.5,1.5 + parent: 1 + type: Transform + - color: '#020F73FF' + type: AtmosPipeColor + - uid: 540 + components: + - rot: -1.5707963267948966 rad + pos: -2.5,1.5 + parent: 1 + type: Transform + - color: '#020F73FF' + type: AtmosPipeColor + - uid: 541 + components: + - rot: -1.5707963267948966 rad + pos: -1.5,1.5 + parent: 1 + type: Transform + - color: '#020F73FF' + type: AtmosPipeColor + - uid: 542 + components: + - rot: -1.5707963267948966 rad + pos: -0.5,1.5 + parent: 1 + type: Transform + - color: '#020F73FF' + type: AtmosPipeColor + - uid: 543 + components: + - rot: -1.5707963267948966 rad + pos: 0.5,1.5 + parent: 1 + type: Transform + - color: '#020F73FF' + type: AtmosPipeColor + - uid: 544 + components: + - rot: -1.5707963267948966 rad + pos: 1.5,1.5 + parent: 1 + type: Transform + - color: '#020F73FF' + type: AtmosPipeColor + - uid: 545 + components: + - rot: 3.141592653589793 rad + pos: 2.5,0.5 + parent: 1 + type: Transform + - color: '#020F73FF' + type: AtmosPipeColor + - uid: 546 + components: + - rot: 3.141592653589793 rad + pos: 2.5,-0.5 + parent: 1 + type: Transform + - color: '#020F73FF' + type: AtmosPipeColor + - uid: 547 + components: + - rot: 3.141592653589793 rad + pos: 2.5,-1.5 + parent: 1 + type: Transform + - color: '#020F73FF' + type: AtmosPipeColor + - uid: 548 + components: + - rot: 3.141592653589793 rad + pos: 2.5,-2.5 + parent: 1 + type: Transform + - color: '#020F73FF' + type: AtmosPipeColor + - uid: 549 + components: + - rot: 1.5707963267948966 rad + pos: 3.5,1.5 + parent: 1 + type: Transform + - color: '#020F73FF' + type: AtmosPipeColor + - uid: 550 + components: + - rot: 1.5707963267948966 rad + pos: 4.5,1.5 + parent: 1 + type: Transform + - color: '#020F73FF' + type: AtmosPipeColor + - uid: 551 + components: + - rot: 1.5707963267948966 rad + pos: 5.5,1.5 + parent: 1 + type: Transform + - color: '#020F73FF' + type: AtmosPipeColor + - uid: 552 + components: + - pos: 2.5,2.5 + parent: 1 + type: Transform + - color: '#020F73FF' + type: AtmosPipeColor + - uid: 553 + components: + - rot: -1.5707963267948966 rad + pos: 1.5,3.5 + parent: 1 + type: Transform + - color: '#020F73FF' + type: AtmosPipeColor + - uid: 554 + components: + - rot: -1.5707963267948966 rad + pos: 0.5,3.5 + parent: 1 + type: Transform + - color: '#020F73FF' + type: AtmosPipeColor + - uid: 555 + components: + - rot: -1.5707963267948966 rad + pos: -0.5,3.5 + parent: 1 + type: Transform + - color: '#020F73FF' + type: AtmosPipeColor + - uid: 556 + components: + - pos: 5.5,3.5 + parent: 1 + type: Transform + - color: '#020F73FF' + type: AtmosPipeColor + - uid: 557 + components: + - rot: 3.141592653589793 rad + pos: -4.5,3.5 + parent: 1 + type: Transform + - color: '#020F73FF' + type: AtmosPipeColor + - uid: 558 + components: + - pos: 4.5,6.5 + parent: 1 + type: Transform + - color: '#020F73FF' + type: AtmosPipeColor + - uid: 559 + components: + - pos: 4.5,7.5 + parent: 1 + type: Transform + - color: '#020F73FF' + type: AtmosPipeColor + - uid: 560 + components: + - pos: 4.5,8.5 + parent: 1 + type: Transform + - color: '#020F73FF' + type: AtmosPipeColor + - uid: 561 + components: + - rot: -1.5707963267948966 rad + pos: 3.5,9.5 + parent: 1 + type: Transform + - color: '#020F73FF' + type: AtmosPipeColor + - uid: 562 + components: + - rot: -1.5707963267948966 rad + pos: 1.5,9.5 + parent: 1 + type: Transform + - color: '#020F73FF' + type: AtmosPipeColor + - uid: 563 + components: + - rot: -1.5707963267948966 rad + pos: 2.5,9.5 + parent: 1 + type: Transform + - color: '#020F73FF' + type: AtmosPipeColor + - uid: 564 + components: + - rot: -1.5707963267948966 rad + pos: -0.5,9.5 + parent: 1 + type: Transform + - color: '#020F73FF' + type: AtmosPipeColor + - uid: 565 + components: + - rot: -1.5707963267948966 rad + pos: -1.5,9.5 + parent: 1 + type: Transform + - color: '#020F73FF' + type: AtmosPipeColor + - uid: 566 + components: + - rot: -1.5707963267948966 rad + pos: -2.5,9.5 + parent: 1 + type: Transform + - color: '#020F73FF' + type: AtmosPipeColor + - uid: 567 + components: + - rot: 3.141592653589793 rad + pos: -3.5,8.5 + parent: 1 + type: Transform + - color: '#020F73FF' + type: AtmosPipeColor + - uid: 568 + components: + - rot: 3.141592653589793 rad + pos: -3.5,6.5 + parent: 1 + type: Transform + - color: '#020F73FF' + type: AtmosPipeColor + - uid: 569 + components: + - rot: 3.141592653589793 rad + pos: -3.5,7.5 + parent: 1 + type: Transform + - color: '#020F73FF' + type: AtmosPipeColor + - uid: 570 + components: + - rot: 3.141592653589793 rad + pos: -3.5,10.5 + parent: 1 + type: Transform + - color: '#020F73FF' + type: AtmosPipeColor + - uid: 571 + components: + - rot: 3.141592653589793 rad + pos: 4.5,10.5 + parent: 1 + type: Transform + - color: '#020F73FF' + type: AtmosPipeColor + - uid: 572 + components: + - rot: 3.141592653589793 rad + pos: -3.5,10.5 + parent: 1 + type: Transform + - color: '#020F73FF' + type: AtmosPipeColor + - uid: 573 + components: + - rot: 3.141592653589793 rad + pos: 0.5,12.5 + parent: 1 + type: Transform + - color: '#020F73FF' + type: AtmosPipeColor + - uid: 574 + components: + - rot: 3.141592653589793 rad + pos: -2.5,12.5 + parent: 1 + type: Transform + - color: '#020F73FF' + type: AtmosPipeColor + - uid: 575 + components: + - rot: 3.141592653589793 rad + pos: 3.5,12.5 + parent: 1 + type: Transform + - color: '#020F73FF' + type: AtmosPipeColor + - uid: 576 + components: + - rot: 1.5707963267948966 rad + pos: -1.5,11.5 + parent: 1 + type: Transform + - color: '#020F73FF' + type: AtmosPipeColor + - uid: 577 + components: + - rot: 1.5707963267948966 rad + pos: -0.5,11.5 + parent: 1 + type: Transform + - color: '#020F73FF' + type: AtmosPipeColor + - uid: 578 + components: + - rot: 1.5707963267948966 rad + pos: 2.5,11.5 + parent: 1 + type: Transform + - color: '#020F73FF' + type: AtmosPipeColor + - uid: 579 + components: + - pos: 4.5,10.5 + parent: 1 + type: Transform + - color: '#020F73FF' + type: AtmosPipeColor + - uid: 580 + components: + - rot: -1.5707963267948966 rad + pos: 1.5,11.5 + parent: 1 + type: Transform + - color: '#020F73FF' + type: AtmosPipeColor +- proto: GasPipeTJunction + entities: + - uid: 581 + components: + - rot: 3.141592653589793 rad + pos: 1.5,-13.5 + parent: 1 + type: Transform + - color: '#FC6100FF' + type: AtmosPipeColor + - uid: 582 + components: + - rot: -1.5707963267948966 rad + pos: 1.5,-10.5 + parent: 1 + type: Transform + - color: '#020F73FF' + type: AtmosPipeColor + - uid: 583 + components: + - rot: 3.141592653589793 rad + pos: 0.5,-7.5 + parent: 1 + type: Transform + - color: '#020F73FF' + type: AtmosPipeColor + - uid: 584 + components: + - pos: 1.5,-7.5 + parent: 1 + type: Transform + - color: '#020F73FF' + type: AtmosPipeColor + - uid: 585 + components: + - rot: -1.5707963267948966 rad + pos: -2.5,-8.5 + parent: 1 + type: Transform + - color: '#020F73FF' + type: AtmosPipeColor + - uid: 586 + components: + - rot: 1.5707963267948966 rad + pos: 3.5,-10.5 + parent: 1 + type: Transform + - color: '#020F73FF' + type: AtmosPipeColor + - uid: 587 + components: + - rot: 3.141592653589793 rad + pos: -1.5,-5.5 + parent: 1 + type: Transform + - color: '#020F73FF' + type: AtmosPipeColor + - uid: 588 + components: + - rot: -1.5707963267948966 rad + pos: -5.5,-4.5 + parent: 1 + type: Transform + - color: '#020F73FF' + type: AtmosPipeColor + - uid: 589 + components: + - rot: -1.5707963267948966 rad + pos: 5.5,4.5 + parent: 1 + type: Transform + - color: '#020F73FF' + type: AtmosPipeColor + - uid: 590 + components: + - rot: 1.5707963267948966 rad + pos: -5.5,1.5 + parent: 1 + type: Transform + - color: '#020F73FF' + type: AtmosPipeColor + - uid: 591 + components: + - rot: 1.5707963267948966 rad + pos: -4.5,4.5 + parent: 1 + type: Transform + - color: '#020F73FF' + type: AtmosPipeColor + - uid: 592 + components: + - rot: -1.5707963267948966 rad + pos: 6.5,1.5 + parent: 1 + type: Transform + - color: '#020F73FF' + type: AtmosPipeColor + - uid: 593 + components: + - pos: 0.5,9.5 + parent: 1 + type: Transform + - color: '#020F73FF' + type: AtmosPipeColor + - uid: 594 + components: + - rot: -1.5707963267948966 rad + pos: 4.5,9.5 + parent: 1 + type: Transform + - color: '#020F73FF' + type: AtmosPipeColor + - uid: 595 + components: + - rot: 1.5707963267948966 rad + pos: -3.5,9.5 + parent: 1 + type: Transform + - color: '#020F73FF' + type: AtmosPipeColor + - uid: 596 + components: + - rot: 1.5707963267948966 rad + pos: 6.5,-4.5 + parent: 1 + type: Transform + - color: '#020F73FF' + type: AtmosPipeColor + - uid: 597 + components: + - rot: 3.141592653589793 rad + pos: -2.5,11.5 + parent: 1 + type: Transform + - color: '#020F73FF' + type: AtmosPipeColor + - uid: 598 + components: + - rot: 3.141592653589793 rad + pos: 0.5,11.5 + parent: 1 + type: Transform + - color: '#020F73FF' + type: AtmosPipeColor + - uid: 599 + components: + - rot: 3.141592653589793 rad + pos: 3.5,11.5 + parent: 1 + type: Transform + - color: '#020F73FF' + type: AtmosPipeColor +- proto: GasPort + entities: + - uid: 600 + components: + - rot: 1.5707963267948966 rad + pos: 2.5,-14.5 + parent: 1 + type: Transform +- proto: GasPressurePump + entities: + - uid: 601 + components: + - rot: 3.141592653589793 rad + pos: 1.5,-12.5 + parent: 1 + type: Transform + - color: '#FC6100FF' + type: AtmosPipeColor +- proto: GasVentPump + entities: + - uid: 602 + components: + - pos: 0.5,-12.5 + parent: 1 + type: Transform + - color: '#FC6100FF' + type: AtmosPipeColor + - uid: 603 + components: + - rot: 1.5707963267948966 rad + pos: 0.5,-10.5 + parent: 1 + type: Transform + - color: '#020F73FF' + type: AtmosPipeColor + - uid: 604 + components: + - rot: 3.141592653589793 rad + pos: -4.5,-12.5 + parent: 1 + type: Transform + - color: '#020F73FF' + type: AtmosPipeColor + - uid: 605 + components: + - rot: 1.5707963267948966 rad + pos: -1.5,3.5 + parent: 1 + type: Transform + - color: '#020F73FF' + type: AtmosPipeColor + - uid: 606 + components: + - rot: -1.5707963267948966 rad + pos: -3.5,4.5 + parent: 1 + type: Transform + - color: '#020F73FF' + type: AtmosPipeColor + - uid: 607 + components: + - rot: 1.5707963267948966 rad + pos: 4.5,4.5 + parent: 1 + type: Transform + - color: '#020F73FF' + type: AtmosPipeColor + - uid: 608 + components: + - rot: -1.5707963267948966 rad + pos: 7.5,-4.5 + parent: 1 + type: Transform + - color: '#020F73FF' + type: AtmosPipeColor + - uid: 609 + components: + - rot: 1.5707963267948966 rad + pos: -6.5,-4.5 + parent: 1 + type: Transform + - color: '#020F73FF' + type: AtmosPipeColor + - uid: 610 + components: + - pos: -1.5,-0.5 + parent: 1 + type: Transform + - color: '#020F73FF' + type: AtmosPipeColor + - uid: 611 + components: + - rot: 3.141592653589793 rad + pos: 2.5,-3.5 + parent: 1 + type: Transform + - color: '#020F73FF' + type: AtmosPipeColor + - uid: 612 + components: + - rot: 1.5707963267948966 rad + pos: -5.5,-8.5 + parent: 1 + type: Transform + - color: '#020F73FF' + type: AtmosPipeColor + - uid: 613 + components: + - rot: -1.5707963267948966 rad + pos: 6.5,-10.5 + parent: 1 + type: Transform + - color: '#020F73FF' + type: AtmosPipeColor + - uid: 614 + components: + - rot: 3.141592653589793 rad + pos: 0.5,8.5 + parent: 1 + type: Transform + - color: '#020F73FF' + type: AtmosPipeColor + - uid: 615 + components: + - pos: 0.5,13.5 + parent: 1 + type: Transform + - color: '#020F73FF' + type: AtmosPipeColor + - uid: 616 + components: + - pos: 3.5,13.5 + parent: 1 + type: Transform + - color: '#020F73FF' + type: AtmosPipeColor + - uid: 617 + components: + - pos: -2.5,13.5 + parent: 1 + type: Transform + - color: '#020F73FF' + type: AtmosPipeColor + - uid: 618 + components: + - rot: 3.141592653589793 rad + pos: 3.5,-11.5 + parent: 1 + type: Transform + - color: '#020F73FF' + type: AtmosPipeColor + - uid: 619 + components: + - pos: 0.5,-4.5 + parent: 1 + type: Transform + - color: '#020F73FF' + type: AtmosPipeColor + - uid: 620 + components: + - rot: 3.141592653589793 rad + pos: 0.5,0.5 + parent: 1 + type: Transform +- proto: GeneratorBasic15kW + entities: + - uid: 621 + components: + - pos: -2.5,-12.5 + parent: 1 + type: Transform + - uid: 622 + components: + - pos: -2.5,-14.5 + parent: 1 + type: Transform +- proto: GeneratorWallmountAPU + entities: + - uid: 623 + components: + - pos: 2.5,-15.5 + parent: 1 + type: Transform + - uid: 624 + components: + - pos: 4.5,-0.5 + parent: 1 + type: Transform + - uid: 625 + components: + - pos: 2.5,10.5 + parent: 1 + type: Transform +- proto: GravityGeneratorMini + entities: + - uid: 626 + components: + - pos: -1.5,-14.5 + parent: 1 + type: Transform +- proto: Grille + entities: + - uid: 627 + components: + - pos: 7.5,5.5 + parent: 1 + type: Transform + - uid: 628 + components: + - pos: -1.5,-10.5 + parent: 1 + type: Transform + - uid: 629 + components: + - rot: -1.5707963267948966 rad + pos: -4.5,13.5 + parent: 1 + type: Transform + - uid: 630 + components: + - rot: -1.5707963267948966 rad + pos: -3.5,14.5 + parent: 1 + type: Transform + - uid: 631 + components: + - pos: -5.5,-9.5 + parent: 1 + type: Transform + - uid: 632 + components: + - rot: 1.5707963267948966 rad + pos: 8.5,1.5 + parent: 1 + type: Transform + - uid: 633 + components: + - rot: 1.5707963267948966 rad + pos: -7.5,1.5 + parent: 1 + type: Transform + - uid: 634 + components: + - rot: 1.5707963267948966 rad + pos: -7.5,-4.5 + parent: 1 + type: Transform + - uid: 635 + components: + - rot: 1.5707963267948966 rad + pos: -7.5,-3.5 + parent: 1 + type: Transform + - uid: 636 + components: + - rot: 1.5707963267948966 rad + pos: -7.5,-2.5 + parent: 1 + type: Transform + - uid: 637 + components: + - rot: 1.5707963267948966 rad + pos: -7.5,-1.5 + parent: 1 + type: Transform + - uid: 638 + components: + - rot: 1.5707963267948966 rad + pos: -7.5,-0.5 + parent: 1 + type: Transform + - uid: 639 + components: + - rot: 1.5707963267948966 rad + pos: 8.5,-0.5 + parent: 1 + type: Transform + - uid: 640 + components: + - rot: 1.5707963267948966 rad + pos: 8.5,-1.5 + parent: 1 + type: Transform + - uid: 641 + components: + - rot: 1.5707963267948966 rad + pos: 8.5,-2.5 + parent: 1 + type: Transform + - uid: 642 + components: + - rot: 1.5707963267948966 rad + pos: 8.5,-3.5 + parent: 1 + type: Transform + - uid: 643 + components: + - rot: 1.5707963267948966 rad + pos: 8.5,-4.5 + parent: 1 + type: Transform + - uid: 644 + components: + - pos: -4.5,-9.5 + parent: 1 + type: Transform + - uid: 645 + components: + - rot: -1.5707963267948966 rad + pos: -3.5,13.5 + parent: 1 + type: Transform + - uid: 646 + components: + - rot: -1.5707963267948966 rad + pos: -4.5,12.5 + parent: 1 + type: Transform + - uid: 647 + components: + - rot: -1.5707963267948966 rad + pos: -1.5,14.5 + parent: 1 + type: Transform + - uid: 648 + components: + - rot: 1.5707963267948966 rad + pos: 1.5,14.5 + parent: 1 + type: Transform + - uid: 649 + components: + - rot: 1.5707963267948966 rad + pos: 0.5,14.5 + parent: 1 + type: Transform + - uid: 650 + components: + - rot: 1.5707963267948966 rad + pos: -0.5,14.5 + parent: 1 + type: Transform + - uid: 651 + components: + - pos: -1.5,-9.5 + parent: 1 + type: Transform + - uid: 652 + components: + - rot: -1.5707963267948966 rad + pos: -2.5,14.5 + parent: 1 + type: Transform + - uid: 653 + components: + - pos: -5.5,8.5 + parent: 1 + type: Transform + - uid: 654 + components: + - pos: -5.5,9.5 + parent: 1 + type: Transform + - uid: 655 + components: + - pos: -0.5,-15.5 + parent: 1 + type: Transform + - uid: 656 + components: + - pos: 0.5,-15.5 + parent: 1 + type: Transform + - uid: 657 + components: + - pos: 1.5,-15.5 + parent: 1 + type: Transform + - uid: 658 + components: + - pos: 7.5,4.5 + parent: 1 + type: Transform + - uid: 659 + components: + - pos: -6.5,5.5 + parent: 1 + type: Transform + - uid: 660 + components: + - pos: -6.5,4.5 + parent: 1 + type: Transform + - uid: 661 + components: + - pos: 2.5,-10.5 + parent: 1 + type: Transform + - uid: 662 + components: + - pos: 2.5,-9.5 + parent: 1 + type: Transform + - uid: 663 + components: + - pos: 6.5,8.5 + parent: 1 + type: Transform + - uid: 664 + components: + - pos: 6.5,9.5 + parent: 1 + type: Transform + - uid: 665 + components: + - rot: -1.5707963267948966 rad + pos: 2.5,14.5 + parent: 1 + type: Transform + - uid: 666 + components: + - rot: -1.5707963267948966 rad + pos: 3.5,14.5 + parent: 1 + type: Transform + - uid: 667 + components: + - rot: -1.5707963267948966 rad + pos: 4.5,14.5 + parent: 1 + type: Transform + - uid: 668 + components: + - rot: -1.5707963267948966 rad + pos: 4.5,13.5 + parent: 1 + type: Transform + - uid: 669 + components: + - rot: -1.5707963267948966 rad + pos: 5.5,13.5 + parent: 1 + type: Transform + - uid: 670 + components: + - rot: -1.5707963267948966 rad + pos: 5.5,12.5 + parent: 1 + type: Transform + - uid: 671 + components: + - rot: 3.141592653589793 rad + pos: 1.5,10.5 + parent: 1 + type: Transform + - uid: 672 + components: + - rot: 3.141592653589793 rad + pos: 0.5,10.5 + parent: 1 + type: Transform + - uid: 673 + components: + - rot: 3.141592653589793 rad + pos: -0.5,10.5 + parent: 1 + type: Transform +- proto: Gyroscope + entities: + - uid: 674 + components: + - rot: -1.5707963267948966 rad + pos: -1.5,-16.5 + parent: 1 + type: Transform + - uid: 675 + components: + - rot: -1.5707963267948966 rad + pos: 2.5,-16.5 + parent: 1 + type: Transform +- proto: HospitalCurtainsOpen + entities: + - uid: 676 + components: + - rot: 1.5707963267948966 rad + pos: -4.5,-12.5 + parent: 1 + type: Transform + - uid: 677 + components: + - rot: 3.141592653589793 rad + pos: 4.5,-7.5 + parent: 1 + type: Transform + - uid: 678 + components: + - rot: 3.141592653589793 rad + pos: 4.5,-9.5 + parent: 1 + type: Transform +- proto: LockerBoozeFilled + entities: + - uid: 679 + components: + - pos: 2.5,5.5 + parent: 1 + type: Transform +- proto: LockerElectricalSuppliesFilled + entities: + - uid: 680 + components: + - pos: 2.5,-13.5 + parent: 1 + type: Transform +- proto: LockerEvidence + entities: + - uid: 681 + components: + - pos: -3.5,-8.5 + parent: 1 + type: Transform +- proto: LockerMedicineFilled + entities: + - uid: 682 + components: + - pos: 3.5,-11.5 + parent: 1 + type: Transform +- proto: MedkitCombatFilled + entities: + - uid: 683 + components: + - pos: -2.5,13.5 + parent: 1 + type: Transform +- proto: PetCarrier + entities: + - uid: 684 + components: + - pos: -1.5,7.5 + parent: 1 + type: Transform +- proto: PlasmaReinforcedWindowDirectional + entities: + - uid: 685 + components: + - rot: -1.5707963267948966 rad + pos: 3.5,-14.5 + parent: 1 + type: Transform + - uid: 686 + components: + - rot: -1.5707963267948966 rad + pos: 3.5,-13.5 + parent: 1 + type: Transform +- proto: PlasmaWindowDirectional + entities: + - uid: 687 + components: + - rot: -1.5707963267948966 rad + pos: 5.5,-11.5 + parent: 1 + type: Transform +- proto: PottedPlantRandom + entities: + - uid: 688 + components: + - pos: 4.5,4.5 + parent: 1 + type: Transform + - uid: 689 + components: + - pos: -3.5,4.5 + parent: 1 + type: Transform + - uid: 690 + components: + - pos: -0.5,12.5 + parent: 1 + type: Transform + - uid: 691 + components: + - pos: 1.5,12.5 + parent: 1 + type: Transform + - uid: 692 + components: + - pos: 3.5,8.5 + parent: 1 + type: Transform + - uid: 693 + components: + - pos: 7.5,-6.5 + parent: 1 + type: Transform + - uid: 694 + components: + - pos: -2.5,8.5 + parent: 1 + type: Transform + - uid: 695 + components: + - pos: -6.5,1.5 + parent: 1 + type: Transform + - uid: 696 + components: + - pos: 7.5,1.5 + parent: 1 + type: Transform + - uid: 697 + components: + - pos: 0.5,-10.5 + parent: 1 + type: Transform +- proto: PowerCellRecharger + entities: + - uid: 698 + components: + - rot: 1.5707963267948966 rad + pos: 0.5,-12.5 + parent: 1 + type: Transform +- proto: Poweredlight + entities: + - uid: 699 + components: + - rot: 3.141592653589793 rad + pos: -2.5,11.5 + parent: 1 + type: Transform + - uid: 700 + components: + - pos: 6.5,6.5 + parent: 1 + type: Transform + - uid: 701 + components: + - pos: -5.5,6.5 + parent: 1 + type: Transform + - uid: 702 + components: + - rot: 3.141592653589793 rad + pos: 3.5,11.5 + parent: 1 + type: Transform + - uid: 703 + components: + - pos: -1.5,5.5 + parent: 1 + type: Transform + - uid: 704 + components: + - rot: 3.141592653589793 rad + pos: 1.5,3.5 + parent: 1 + type: Transform + - uid: 705 + components: + - pos: -4.5,9.5 + parent: 1 + type: Transform + - uid: 706 + components: + - pos: 5.5,9.5 + parent: 1 + type: Transform + - uid: 707 + components: + - rot: 3.141592653589793 rad + pos: 0.5,-10.5 + parent: 1 + type: Transform + - uid: 708 + components: + - pos: -2.5,1.5 + parent: 1 + type: Transform + - uid: 709 + components: + - pos: 3.5,1.5 + parent: 1 + type: Transform + - uid: 710 + components: + - rot: 3.141592653589793 rad + pos: -2.5,-5.5 + parent: 1 + type: Transform + - uid: 711 + components: + - rot: 3.141592653589793 rad + pos: 3.5,-5.5 + parent: 1 + type: Transform + - uid: 712 + components: + - rot: 1.5707963267948966 rad + pos: -6.5,-2.5 + parent: 1 + type: Transform + - uid: 713 + components: + - rot: -1.5707963267948966 rad + pos: 7.5,-2.5 + parent: 1 + type: Transform + - uid: 714 + components: + - rot: 1.5707963267948966 rad + pos: 6.5,-7.5 + parent: 1 + type: Transform + - uid: 715 + components: + - rot: 1.5707963267948966 rad + pos: 3.5,-8.5 + parent: 1 + type: Transform + - uid: 716 + components: + - rot: -1.5707963267948966 rad + pos: 6.5,-11.5 + parent: 1 + type: Transform + - uid: 717 + components: + - pos: -4.5,-7.5 + parent: 1 + type: Transform +- proto: PoweredLightPostSmall + entities: + - uid: 718 + components: + - pos: 0.5,-1.5 + parent: 1 + type: Transform +- proto: PoweredSmallLight + entities: + - uid: 719 + components: + - rot: -1.5707963267948966 rad + pos: 4.5,-13.5 + parent: 1 + type: Transform + - uid: 720 + components: + - rot: 1.5707963267948966 rad + pos: -2.5,-13.5 + parent: 1 + type: Transform + - uid: 721 + components: + - pos: 0.5,-12.5 + parent: 1 + type: Transform + - uid: 722 + components: + - rot: -1.5707963267948966 rad + pos: 2.5,5.5 + parent: 1 + type: Transform + - uid: 723 + components: + - rot: 1.5707963267948966 rad + pos: -5.5,-10.5 + parent: 1 + type: Transform +- proto: RandomDrinkBottle + entities: + - uid: 724 + components: + - pos: 0.5,2.5 + parent: 1 + type: Transform +- proto: RandomDrinkGlass + entities: + - uid: 725 + components: + - pos: -1.5,2.5 + parent: 1 + type: Transform +- proto: RandomFoodMeal + entities: + - uid: 726 + components: + - pos: -3.5,3.5 + parent: 1 + type: Transform + - uid: 727 + components: + - pos: 4.5,3.5 + parent: 1 + type: Transform +- proto: ShuttersNormalOpen + entities: + - uid: 728 + components: + - pos: -1.5,2.5 + parent: 1 + type: Transform + - links: + - 779 + type: DeviceLinkSink + - uid: 729 + components: + - pos: -0.5,2.5 + parent: 1 + type: Transform + - links: + - 779 + type: DeviceLinkSink + - uid: 730 + components: + - pos: 0.5,2.5 + parent: 1 + type: Transform + - links: + - 779 + type: DeviceLinkSink +- proto: ShuttleWindow + entities: + - uid: 731 + components: + - rot: -1.5707963267948966 rad + pos: -7.5,-4.5 + parent: 1 + type: Transform + - uid: 732 + components: + - rot: -1.5707963267948966 rad + pos: -7.5,-3.5 + parent: 1 + type: Transform + - uid: 733 + components: + - rot: -1.5707963267948966 rad + pos: -7.5,-2.5 + parent: 1 + type: Transform + - uid: 734 + components: + - rot: -1.5707963267948966 rad + pos: -7.5,-1.5 + parent: 1 + type: Transform + - uid: 735 + components: + - rot: -1.5707963267948966 rad + pos: -7.5,-0.5 + parent: 1 + type: Transform + - uid: 736 + components: + - rot: -1.5707963267948966 rad + pos: 8.5,-4.5 + parent: 1 + type: Transform + - uid: 737 + components: + - rot: -1.5707963267948966 rad + pos: 8.5,-3.5 + parent: 1 + type: Transform + - uid: 738 + components: + - rot: -1.5707963267948966 rad + pos: 8.5,-2.5 + parent: 1 + type: Transform + - uid: 739 + components: + - rot: -1.5707963267948966 rad + pos: 8.5,-1.5 + parent: 1 + type: Transform + - uid: 740 + components: + - rot: -1.5707963267948966 rad + pos: 8.5,-0.5 + parent: 1 + type: Transform + - uid: 741 + components: + - rot: -1.5707963267948966 rad + pos: 8.5,1.5 + parent: 1 + type: Transform + - uid: 742 + components: + - rot: -1.5707963267948966 rad + pos: 1.5,-15.5 + parent: 1 + type: Transform + - uid: 743 + components: + - rot: -1.5707963267948966 rad + pos: 0.5,-15.5 + parent: 1 + type: Transform + - uid: 744 + components: + - rot: -1.5707963267948966 rad + pos: -0.5,-15.5 + parent: 1 + type: Transform + - uid: 745 + components: + - pos: -6.5,5.5 + parent: 1 + type: Transform + - uid: 746 + components: + - pos: 7.5,5.5 + parent: 1 + type: Transform + - uid: 747 + components: + - pos: 7.5,4.5 + parent: 1 + type: Transform + - uid: 748 + components: + - rot: -1.5707963267948966 rad + pos: -0.5,14.5 + parent: 1 + type: Transform + - uid: 749 + components: + - rot: -1.5707963267948966 rad + pos: 0.5,14.5 + parent: 1 + type: Transform + - uid: 750 + components: + - rot: -1.5707963267948966 rad + pos: 1.5,14.5 + parent: 1 + type: Transform + - uid: 751 + components: + - rot: -1.5707963267948966 rad + pos: 5.5,12.5 + parent: 1 + type: Transform + - uid: 752 + components: + - rot: 1.5707963267948966 rad + pos: -7.5,1.5 + parent: 1 + type: Transform + - uid: 753 + components: + - pos: 6.5,9.5 + parent: 1 + type: Transform + - uid: 754 + components: + - rot: -1.5707963267948966 rad + pos: -1.5,14.5 + parent: 1 + type: Transform + - uid: 755 + components: + - rot: -1.5707963267948966 rad + pos: -2.5,14.5 + parent: 1 + type: Transform + - uid: 756 + components: + - rot: -1.5707963267948966 rad + pos: -3.5,14.5 + parent: 1 + type: Transform + - uid: 757 + components: + - rot: -1.5707963267948966 rad + pos: 2.5,14.5 + parent: 1 + type: Transform + - uid: 758 + components: + - rot: -1.5707963267948966 rad + pos: 3.5,14.5 + parent: 1 + type: Transform + - uid: 759 + components: + - rot: -1.5707963267948966 rad + pos: 4.5,14.5 + parent: 1 + type: Transform + - uid: 760 + components: + - rot: -1.5707963267948966 rad + pos: 4.5,13.5 + parent: 1 + type: Transform + - uid: 761 + components: + - rot: -1.5707963267948966 rad + pos: 5.5,13.5 + parent: 1 + type: Transform + - uid: 762 + components: + - pos: 6.5,8.5 + parent: 1 + type: Transform + - uid: 763 + components: + - rot: -1.5707963267948966 rad + pos: -4.5,12.5 + parent: 1 + type: Transform + - uid: 764 + components: + - rot: -1.5707963267948966 rad + pos: -4.5,13.5 + parent: 1 + type: Transform + - uid: 765 + components: + - rot: -1.5707963267948966 rad + pos: -3.5,13.5 + parent: 1 + type: Transform + - uid: 766 + components: + - rot: -1.5707963267948966 rad + pos: -4.5,-9.5 + parent: 1 + type: Transform + - uid: 767 + components: + - rot: -1.5707963267948966 rad + pos: -5.5,-9.5 + parent: 1 + type: Transform + - uid: 768 + components: + - rot: -1.5707963267948966 rad + pos: -1.5,-9.5 + parent: 1 + type: Transform + - uid: 769 + components: + - rot: -1.5707963267948966 rad + pos: -1.5,-10.5 + parent: 1 + type: Transform + - uid: 770 + components: + - rot: -1.5707963267948966 rad + pos: 2.5,-9.5 + parent: 1 + type: Transform + - uid: 771 + components: + - rot: -1.5707963267948966 rad + pos: 2.5,-10.5 + parent: 1 + type: Transform + - uid: 772 + components: + - pos: -6.5,4.5 + parent: 1 + type: Transform + - uid: 773 + components: + - pos: -5.5,9.5 + parent: 1 + type: Transform + - uid: 774 + components: + - pos: -5.5,8.5 + parent: 1 + type: Transform + - uid: 775 + components: + - rot: 3.141592653589793 rad + pos: 1.5,10.5 + parent: 1 + type: Transform + - uid: 776 + components: + - rot: 3.141592653589793 rad + pos: 0.5,10.5 + parent: 1 + type: Transform + - uid: 777 + components: + - rot: 3.141592653589793 rad + pos: -0.5,10.5 + parent: 1 + type: Transform +- proto: SignalButtonDirectional + entities: + - uid: 778 + components: + - pos: -1.5,10.5 + parent: 1 + type: Transform + - linkedPorts: + 6: + - Pressed: DoorBolt + 7: + - Pressed: DoorBolt + type: DeviceLinkSource + - uid: 779 + components: + - pos: 0.5,6.5 + parent: 1 + type: Transform + - linkedPorts: + 728: + - Pressed: Toggle + 729: + - Pressed: Toggle + 730: + - Pressed: Toggle + type: DeviceLinkSource + - uid: 780 + components: + - rot: 3.141592653589793 rad + pos: -1.5,10.5 + parent: 1 + type: Transform + - linkedPorts: + 44: + - Pressed: Toggle + 45: + - Pressed: Toggle + 46: + - Pressed: Toggle + 8: + - Pressed: DoorBolt + 9: + - Pressed: DoorBolt + type: DeviceLinkSource +- proto: SignBio + entities: + - uid: 781 + components: + - pos: 7.5,-10.5 + parent: 1 + type: Transform +- proto: SignEngineering + entities: + - uid: 782 + components: + - rot: 1.5707963267948966 rad + pos: 0.5,-11.5 + parent: 1 + type: Transform +- proto: SignMedical + entities: + - uid: 783 + components: + - pos: 2.5,-6.5 + parent: 1 + type: Transform +- proto: SignPrison + entities: + - uid: 784 + components: + - rot: -1.5707963267948966 rad + pos: -3.5,-9.5 + parent: 1 + type: Transform +- proto: SignShield + entities: + - uid: 785 + components: + - pos: -1.5,-6.5 + parent: 1 + type: Transform +- proto: SinkWide + entities: + - uid: 786 + components: + - rot: 1.5707963267948966 rad + pos: -1.5,4.5 + parent: 1 + type: Transform + - uid: 787 + components: + - rot: -1.5707963267948966 rad + pos: 6.5,-10.5 + parent: 1 + type: Transform +- proto: SMESBasic + entities: + - uid: 788 + components: + - pos: -1.5,-12.5 + parent: 1 + type: Transform +- proto: soda_dispenser + entities: + - uid: 789 + components: + - pos: -0.5,5.5 + parent: 1 + type: Transform +- proto: StasisBed + entities: + - uid: 790 + components: + - pos: 4.5,-8.5 + parent: 1 + type: Transform +- proto: StoolBar + entities: + - uid: 791 + components: + - rot: 3.141592653589793 rad + pos: -1.5,1.5 + parent: 1 + type: Transform + - uid: 792 + components: + - rot: 3.141592653589793 rad + pos: -0.5,1.5 + parent: 1 + type: Transform + - uid: 793 + components: + - rot: 3.141592653589793 rad + pos: 0.5,1.5 + parent: 1 + type: Transform +- proto: SubstationWallBasic + entities: + - uid: 794 + components: + - pos: -2.5,10.5 + parent: 1 + type: Transform + - uid: 795 + components: + - pos: 2.5,-12.5 + parent: 1 + type: Transform + - uid: 796 + components: + - rot: 3.141592653589793 rad + pos: -3.5,-0.5 + parent: 1 + type: Transform +- proto: Table + entities: + - uid: 797 + components: + - rot: 1.5707963267948966 rad + pos: 0.5,-12.5 + parent: 1 + type: Transform + - uid: 798 + components: + - rot: -1.5707963267948966 rad + pos: -3.5,3.5 + parent: 1 + type: Transform + - uid: 799 + components: + - rot: -1.5707963267948966 rad + pos: 4.5,3.5 + parent: 1 + type: Transform +- proto: TableCounterWood + entities: + - uid: 800 + components: + - pos: -1.5,2.5 + parent: 1 + type: Transform + - uid: 801 + components: + - pos: -0.5,2.5 + parent: 1 + type: Transform + - uid: 802 + components: + - pos: 0.5,2.5 + parent: 1 + type: Transform +- proto: TableReinforced + entities: + - uid: 803 + components: + - rot: 1.5707963267948966 rad + pos: -2.5,13.5 + parent: 1 + type: Transform + - uid: 804 + components: + - rot: -1.5707963267948966 rad + pos: 3.5,13.5 + parent: 1 + type: Transform +- proto: TableWood + entities: + - uid: 805 + components: + - pos: -1.5,5.5 + parent: 1 + type: Transform + - uid: 806 + components: + - pos: -0.5,5.5 + parent: 1 + type: Transform + - uid: 807 + components: + - rot: 3.141592653589793 rad + pos: 0.5,7.5 + parent: 1 + type: Transform + - uid: 808 + components: + - rot: 3.141592653589793 rad + pos: 0.5,8.5 + parent: 1 + type: Transform +- proto: Thruster + entities: + - uid: 809 + components: + - rot: 1.5707963267948966 rad + pos: -7.5,-10.5 + parent: 1 + type: Transform + - uid: 810 + components: + - rot: 1.5707963267948966 rad + pos: -7.5,-11.5 + parent: 1 + type: Transform + - uid: 811 + components: + - rot: 3.141592653589793 rad + pos: -7.5,-12.5 + parent: 1 + type: Transform + - uid: 812 + components: + - rot: 3.141592653589793 rad + pos: -5.5,-14.5 + parent: 1 + type: Transform + - uid: 813 + components: + - rot: 3.141592653589793 rad + pos: -4.5,-15.5 + parent: 1 + type: Transform + - uid: 814 + components: + - rot: 3.141592653589793 rad + pos: -3.5,-16.5 + parent: 1 + type: Transform + - uid: 815 + components: + - rot: 3.141592653589793 rad + pos: -2.5,-16.5 + parent: 1 + type: Transform + - uid: 816 + components: + - rot: 3.141592653589793 rad + pos: 3.5,-16.5 + parent: 1 + type: Transform + - uid: 817 + components: + - rot: 3.141592653589793 rad + pos: 4.5,-16.5 + parent: 1 + type: Transform + - uid: 818 + components: + - rot: 3.141592653589793 rad + pos: 5.5,-15.5 + parent: 1 + type: Transform + - uid: 819 + components: + - rot: 3.141592653589793 rad + pos: 6.5,-14.5 + parent: 1 + type: Transform + - uid: 820 + components: + - rot: 3.141592653589793 rad + pos: 8.5,-12.5 + parent: 1 + type: Transform + - uid: 821 + components: + - rot: -1.5707963267948966 rad + pos: 8.5,-11.5 + parent: 1 + type: Transform + - uid: 822 + components: + - rot: -1.5707963267948966 rad + pos: 8.5,-10.5 + parent: 1 + type: Transform + - uid: 823 + components: + - rot: -1.5707963267948966 rad + pos: 8.5,4.5 + parent: 1 + type: Transform + - uid: 824 + components: + - pos: 8.5,5.5 + parent: 1 + type: Transform + - uid: 825 + components: + - pos: -7.5,5.5 + parent: 1 + type: Transform + - uid: 826 + components: + - rot: 1.5707963267948966 rad + pos: -7.5,4.5 + parent: 1 + type: Transform + - uid: 827 + components: + - rot: 1.5707963267948966 rad + pos: -5.5,11.5 + parent: 1 + type: Transform + - uid: 828 + components: + - pos: -5.5,12.5 + parent: 1 + type: Transform + - uid: 829 + components: + - pos: 6.5,12.5 + parent: 1 + type: Transform + - uid: 830 + components: + - rot: -1.5707963267948966 rad + pos: 6.5,11.5 + parent: 1 + type: Transform +- proto: ToiletEmpty + entities: + - uid: 831 + components: + - rot: 1.5707963267948966 rad + pos: -4.5,-12.5 + parent: 1 + type: Transform +- proto: ToyFigurineClown + entities: + - uid: 832 + components: + - pos: 0.18010247,-3.0342817 + parent: 1 + type: Transform +- proto: ToyFigurineGreytider + entities: + - uid: 833 + components: + - pos: 7.5,-13.5 + parent: 1 + type: Transform +- proto: ToyFigurineMime + entities: + - uid: 834 + components: + - pos: 0.7675153,-2.929387 + parent: 1 + type: Transform +- proto: ToyFigurineNukieCommander + entities: + - uid: 835 + components: + - pos: -6.5,-13.5 + parent: 1 + type: Transform +- proto: ToyRubberDuck + entities: + - uid: 836 + components: + - pos: -4.5,-12.5 + parent: 1 + type: Transform +- proto: ToySpawner + entities: + - uid: 837 + components: + - pos: 0.5,12.5 + parent: 1 + type: Transform + - uid: 838 + components: + - pos: 2.5,7.5 + parent: 1 + type: Transform +- proto: VendingMachineBooze + entities: + - uid: 839 + components: + - pos: 1.5,4.5 + parent: 1 + type: Transform +- proto: VendingMachineCigs + entities: + - uid: 841 + components: + - pos: -4.5,8.5 + parent: 1 + type: Transform +- proto: VendingMachineDiscount + entities: + - uid: 842 + components: + - pos: 5.5,8.5 + parent: 1 + type: Transform +- proto: VendingMachineSec + entities: + - uid: 843 + components: + - pos: -6.5,-8.5 + parent: 1 + type: Transform +- proto: VendingMachineWallMedical + entities: + - uid: 844 + components: + - rot: 1.5707963267948966 rad + pos: 2.5,-8.5 + parent: 1 + type: Transform + - uid: 845 + components: + - rot: 1.5707963267948966 rad + pos: 2.5,-8.5 + parent: 1 + type: Transform +- proto: VendingMachineWinter + entities: + - uid: 846 + components: + - pos: -4.5,9.5 + parent: 1 + type: Transform +- proto: WallShuttle + entities: + - uid: 847 + components: + - rot: 1.5707963267948966 rad + pos: -5.5,-6.5 + parent: 1 + type: Transform + - uid: 848 + components: + - rot: -1.5707963267948966 rad + pos: -7.5,-8.5 + parent: 1 + type: Transform + - uid: 849 + components: + - rot: -1.5707963267948966 rad + pos: 8.5,-8.5 + parent: 1 + type: Transform + - uid: 850 + components: + - rot: -1.5707963267948966 rad + pos: -6.5,-9.5 + parent: 1 + type: Transform + - uid: 851 + components: + - rot: -1.5707963267948966 rad + pos: -6.5,-10.5 + parent: 1 + type: Transform + - uid: 852 + components: + - rot: -1.5707963267948966 rad + pos: -6.5,-11.5 + parent: 1 + type: Transform + - uid: 853 + components: + - rot: -1.5707963267948966 rad + pos: -6.5,-12.5 + parent: 1 + type: Transform + - uid: 854 + components: + - rot: -1.5707963267948966 rad + pos: -5.5,-12.5 + parent: 1 + type: Transform + - uid: 855 + components: + - rot: -1.5707963267948966 rad + pos: -5.5,-13.5 + parent: 1 + type: Transform + - uid: 856 + components: + - rot: -1.5707963267948966 rad + pos: -4.5,-13.5 + parent: 1 + type: Transform + - uid: 857 + components: + - rot: -1.5707963267948966 rad + pos: -4.5,-14.5 + parent: 1 + type: Transform + - uid: 858 + components: + - rot: -1.5707963267948966 rad + pos: -3.5,-14.5 + parent: 1 + type: Transform + - uid: 859 + components: + - rot: -1.5707963267948966 rad + pos: -3.5,-15.5 + parent: 1 + type: Transform + - uid: 860 + components: + - rot: -1.5707963267948966 rad + pos: -2.5,-15.5 + parent: 1 + type: Transform + - uid: 861 + components: + - rot: -1.5707963267948966 rad + pos: -1.5,-15.5 + parent: 1 + type: Transform + - uid: 862 + components: + - rot: -1.5707963267948966 rad + pos: 2.5,-15.5 + parent: 1 + type: Transform + - uid: 863 + components: + - rot: -1.5707963267948966 rad + pos: 3.5,-15.5 + parent: 1 + type: Transform + - uid: 864 + components: + - rot: -1.5707963267948966 rad + pos: 4.5,-15.5 + parent: 1 + type: Transform + - uid: 865 + components: + - rot: -1.5707963267948966 rad + pos: 4.5,-14.5 + parent: 1 + type: Transform + - uid: 866 + components: + - rot: -1.5707963267948966 rad + pos: 5.5,-14.5 + parent: 1 + type: Transform + - uid: 867 + components: + - rot: -1.5707963267948966 rad + pos: 5.5,-13.5 + parent: 1 + type: Transform + - uid: 868 + components: + - rot: -1.5707963267948966 rad + pos: 6.5,-13.5 + parent: 1 + type: Transform + - uid: 869 + components: + - rot: -1.5707963267948966 rad + pos: 6.5,-12.5 + parent: 1 + type: Transform + - uid: 870 + components: + - rot: -1.5707963267948966 rad + pos: 7.5,-12.5 + parent: 1 + type: Transform + - uid: 871 + components: + - rot: -1.5707963267948966 rad + pos: 7.5,-11.5 + parent: 1 + type: Transform + - uid: 872 + components: + - rot: -1.5707963267948966 rad + pos: 7.5,-10.5 + parent: 1 + type: Transform + - uid: 873 + components: + - rot: -1.5707963267948966 rad + pos: 7.5,-9.5 + parent: 1 + type: Transform + - uid: 874 + components: + - rot: -1.5707963267948966 rad + pos: -6.5,3.5 + parent: 1 + type: Transform + - uid: 875 + components: + - rot: -1.5707963267948966 rad + pos: -6.5,6.5 + parent: 1 + type: Transform + - uid: 876 + components: + - rot: -1.5707963267948966 rad + pos: 7.5,3.5 + parent: 1 + type: Transform + - uid: 877 + components: + - rot: -1.5707963267948966 rad + pos: 7.5,6.5 + parent: 1 + type: Transform + - uid: 878 + components: + - rot: -1.5707963267948966 rad + pos: 3.5,4.5 + parent: 1 + type: Transform + - uid: 879 + components: + - rot: -1.5707963267948966 rad + pos: -1.5,6.5 + parent: 1 + type: Transform + - uid: 880 + components: + - rot: -1.5707963267948966 rad + pos: 2.5,6.5 + parent: 1 + type: Transform + - uid: 881 + components: + - rot: 1.5707963267948966 rad + pos: -6.5,-6.5 + parent: 1 + type: Transform + - uid: 882 + components: + - rot: 3.141592653589793 rad + pos: -4.5,10.5 + parent: 1 + type: Transform + - uid: 883 + components: + - rot: 3.141592653589793 rad + pos: 5.5,10.5 + parent: 1 + type: Transform + - uid: 884 + components: + - rot: -1.5707963267948966 rad + pos: 6.5,7.5 + parent: 1 + type: Transform + - uid: 885 + components: + - rot: -1.5707963267948966 rad + pos: -5.5,7.5 + parent: 1 + type: Transform + - uid: 886 + components: + - rot: 1.5707963267948966 rad + pos: -7.5,-6.5 + parent: 1 + type: Transform + - uid: 887 + components: + - rot: -1.5707963267948966 rad + pos: -4.5,11.5 + parent: 1 + type: Transform + - uid: 888 + components: + - rot: 1.5707963267948966 rad + pos: -4.5,-6.5 + parent: 1 + type: Transform + - uid: 889 + components: + - rot: 1.5707963267948966 rad + pos: -2.5,-6.5 + parent: 1 + type: Transform + - uid: 890 + components: + - rot: 1.5707963267948966 rad + pos: -3.5,-6.5 + parent: 1 + type: Transform + - uid: 891 + components: + - rot: 1.5707963267948966 rad + pos: -1.5,-6.5 + parent: 1 + type: Transform + - uid: 892 + components: + - rot: 1.5707963267948966 rad + pos: 5.5,-8.5 + parent: 1 + type: Transform + - uid: 893 + components: + - rot: -1.5707963267948966 rad + pos: 5.5,-6.5 + parent: 1 + type: Transform + - uid: 894 + components: + - rot: -1.5707963267948966 rad + pos: 4.5,-6.5 + parent: 1 + type: Transform + - uid: 895 + components: + - rot: -1.5707963267948966 rad + pos: 3.5,-6.5 + parent: 1 + type: Transform + - uid: 896 + components: + - rot: -1.5707963267948966 rad + pos: 2.5,-6.5 + parent: 1 + type: Transform + - uid: 897 + components: + - rot: 1.5707963267948966 rad + pos: 5.5,-7.5 + parent: 1 + type: Transform + - uid: 898 + components: + - rot: 1.5707963267948966 rad + pos: 2.5,-8.5 + parent: 1 + type: Transform + - uid: 899 + components: + - rot: 1.5707963267948966 rad + pos: 5.5,-9.5 + parent: 1 + type: Transform + - uid: 900 + components: + - rot: 1.5707963267948966 rad + pos: 6.5,-9.5 + parent: 1 + type: Transform + - uid: 901 + components: + - rot: 1.5707963267948966 rad + pos: 2.5,-11.5 + parent: 1 + type: Transform + - uid: 902 + components: + - rot: 1.5707963267948966 rad + pos: 2.5,-12.5 + parent: 1 + type: Transform + - uid: 903 + components: + - rot: 3.141592653589793 rad + pos: -3.5,-9.5 + parent: 1 + type: Transform + - uid: 904 + components: + - rot: -1.5707963267948966 rad + pos: -1.5,-11.5 + parent: 1 + type: Transform + - uid: 905 + components: + - rot: -1.5707963267948966 rad + pos: -2.5,-11.5 + parent: 1 + type: Transform + - uid: 906 + components: + - rot: -1.5707963267948966 rad + pos: -3.5,-11.5 + parent: 1 + type: Transform + - uid: 907 + components: + - rot: -1.5707963267948966 rad + pos: -3.5,-12.5 + parent: 1 + type: Transform + - uid: 908 + components: + - rot: -1.5707963267948966 rad + pos: -3.5,-13.5 + parent: 1 + type: Transform + - uid: 909 + components: + - rot: -1.5707963267948966 rad + pos: -1.5,-8.5 + parent: 1 + type: Transform + - uid: 910 + components: + - rot: 3.141592653589793 rad + pos: 4.5,-12.5 + parent: 1 + type: Transform + - uid: 911 + components: + - rot: 3.141592653589793 rad + pos: 5.5,-12.5 + parent: 1 + type: Transform + - uid: 912 + components: + - rot: 3.141592653589793 rad + pos: 3.5,-12.5 + parent: 1 + type: Transform + - uid: 913 + components: + - pos: 0.5,-0.5 + parent: 1 + type: Transform + - uid: 914 + components: + - rot: -1.5707963267948966 rad + pos: -3.5,-3.5 + parent: 1 + type: Transform + - uid: 915 + components: + - rot: -1.5707963267948966 rad + pos: 4.5,-3.5 + parent: 1 + type: Transform + - uid: 916 + components: + - rot: -1.5707963267948966 rad + pos: 4.5,-0.5 + parent: 1 + type: Transform + - uid: 917 + components: + - rot: -1.5707963267948966 rad + pos: -3.5,-0.5 + parent: 1 + type: Transform + - uid: 918 + components: + - rot: 3.141592653589793 rad + pos: -3.5,2.5 + parent: 1 + type: Transform + - uid: 919 + components: + - rot: -1.5707963267948966 rad + pos: 3.5,2.5 + parent: 1 + type: Transform + - uid: 920 + components: + - rot: 3.141592653589793 rad + pos: 2.5,4.5 + parent: 1 + type: Transform + - uid: 921 + components: + - rot: -1.5707963267948966 rad + pos: 3.5,5.5 + parent: 1 + type: Transform + - uid: 922 + components: + - rot: 3.141592653589793 rad + pos: 3.5,6.5 + parent: 1 + type: Transform + - uid: 923 + components: + - rot: -1.5707963267948966 rad + pos: -2.5,2.5 + parent: 1 + type: Transform + - uid: 924 + components: + - rot: -1.5707963267948966 rad + pos: -2.5,6.5 + parent: 1 + type: Transform + - uid: 925 + components: + - rot: -1.5707963267948966 rad + pos: -2.5,3.5 + parent: 1 + type: Transform + - uid: 926 + components: + - rot: -1.5707963267948966 rad + pos: 4.5,2.5 + parent: 1 + type: Transform + - uid: 927 + components: + - rot: 3.141592653589793 rad + pos: 1.5,2.5 + parent: 1 + type: Transform + - uid: 928 + components: + - rot: 3.141592653589793 rad + pos: 1.5,6.5 + parent: 1 + type: Transform + - uid: 929 + components: + - rot: 3.141592653589793 rad + pos: 0.5,6.5 + parent: 1 + type: Transform + - uid: 930 + components: + - rot: 3.141592653589793 rad + pos: -0.5,6.5 + parent: 1 + type: Transform + - uid: 931 + components: + - rot: -1.5707963267948966 rad + pos: -2.5,5.5 + parent: 1 + type: Transform + - uid: 932 + components: + - rot: -1.5707963267948966 rad + pos: -2.5,4.5 + parent: 1 + type: Transform + - uid: 933 + components: + - rot: -1.5707963267948966 rad + pos: 3.5,3.5 + parent: 1 + type: Transform + - uid: 934 + components: + - pos: -2.5,7.5 + parent: 1 + type: Transform + - uid: 935 + components: + - pos: 3.5,7.5 + parent: 1 + type: Transform + - uid: 936 + components: + - pos: -4.5,7.5 + parent: 1 + type: Transform + - uid: 937 + components: + - pos: 5.5,7.5 + parent: 1 + type: Transform + - uid: 938 + components: + - pos: 0.5,-11.5 + parent: 1 + type: Transform + - uid: 939 + components: + - rot: -1.5707963267948966 rad + pos: 5.5,11.5 + parent: 1 + type: Transform + - uid: 940 + components: + - rot: -1.5707963267948966 rad + pos: -5.5,10.5 + parent: 1 + type: Transform + - uid: 941 + components: + - rot: -1.5707963267948966 rad + pos: 6.5,10.5 + parent: 1 + type: Transform + - uid: 942 + components: + - rot: -1.5707963267948966 rad + pos: -1.5,10.5 + parent: 1 + type: Transform + - uid: 943 + components: + - rot: -1.5707963267948966 rad + pos: 2.5,10.5 + parent: 1 + type: Transform + - uid: 944 + components: + - rot: 3.141592653589793 rad + pos: 3.5,10.5 + parent: 1 + type: Transform + - uid: 945 + components: + - rot: 3.141592653589793 rad + pos: -2.5,10.5 + parent: 1 + type: Transform + - uid: 946 + components: + - pos: 8.5,-6.5 + parent: 1 + type: Transform +- proto: WallShuttleDiagonal + entities: + - uid: 947 + components: + - rot: -1.5707963267948966 rad + pos: 8.5,3.5 + parent: 1 + type: Transform + - uid: 948 + components: + - pos: -7.5,3.5 + parent: 1 + type: Transform + - uid: 949 + components: + - rot: 1.5707963267948966 rad + pos: -7.5,-9.5 + parent: 1 + type: Transform + - uid: 950 + components: + - rot: 3.141592653589793 rad + pos: 8.5,-9.5 + parent: 1 + type: Transform + - uid: 951 + components: + - pos: -6.5,7.5 + parent: 1 + type: Transform + - uid: 952 + components: + - rot: -1.5707963267948966 rad + pos: 7.5,7.5 + parent: 1 + type: Transform +- proto: WallWeaponCapacitorRecharger + entities: + - uid: 953 + components: + - pos: -3.5,-6.5 + parent: 1 + type: Transform + - uid: 954 + components: + - pos: -5.5,-6.5 + parent: 1 + type: Transform +- proto: WardrobePrisonFilled + entities: + - uid: 955 + components: + - pos: -5.5,-10.5 + parent: 1 + type: Transform +- proto: WeaponCapacitorRecharger + entities: + - uid: 956 + components: + - pos: 3.5,13.5 + parent: 1 + type: Transform +- proto: Windoor + entities: + - uid: 957 + components: + - pos: 2.5,-3.5 + parent: 1 + type: Transform + - uid: 958 + components: + - rot: 3.141592653589793 rad + pos: 2.5,-0.5 + parent: 1 + type: Transform + - uid: 959 + components: + - rot: 3.141592653589793 rad + pos: -1.5,-0.5 + parent: 1 + type: Transform + - uid: 960 + components: + - pos: -1.5,-3.5 + parent: 1 + type: Transform +- proto: WindoorSecureCommandLocked + entities: + - uid: 961 + components: + - rot: 1.5707963267948966 rad + pos: -1.5,11.5 + parent: 1 + type: Transform + - uid: 962 + components: + - rot: -1.5707963267948966 rad + pos: 2.5,11.5 + parent: 1 + type: Transform +- proto: WindoorSecureEngineeringLocked + entities: + - uid: 963 + components: + - rot: 1.5707963267948966 rad + pos: -1.5,-13.5 + parent: 1 + type: Transform +- proto: WindoorSecureMedicalLocked + entities: + - uid: 964 + components: + - rot: -1.5707963267948966 rad + pos: 5.5,-10.5 + parent: 1 + type: Transform +- proto: WindowDirectional + entities: + - uid: 965 + components: + - rot: -1.5707963267948966 rad + pos: -3.5,-1.5 + parent: 1 + type: Transform + - uid: 966 + components: + - rot: -1.5707963267948966 rad + pos: -3.5,-2.5 + parent: 1 + type: Transform + - uid: 967 + components: + - rot: 1.5707963267948966 rad + pos: -3.5,-2.5 + parent: 1 + type: Transform + - uid: 968 + components: + - rot: 1.5707963267948966 rad + pos: -3.5,-1.5 + parent: 1 + type: Transform + - uid: 969 + components: + - pos: 1.5,-3.5 + parent: 1 + type: Transform + - uid: 970 + components: + - rot: 3.141592653589793 rad + pos: -0.5,-0.5 + parent: 1 + type: Transform + - uid: 971 + components: + - rot: 3.141592653589793 rad + pos: 1.5,-0.5 + parent: 1 + type: Transform + - uid: 972 + components: + - rot: 1.5707963267948966 rad + pos: 1.5,-0.5 + parent: 1 + type: Transform + - uid: 973 + components: + - rot: 1.5707963267948966 rad + pos: 1.5,-1.5 + parent: 1 + type: Transform + - uid: 974 + components: + - rot: 1.5707963267948966 rad + pos: 1.5,-2.5 + parent: 1 + type: Transform + - uid: 975 + components: + - rot: 1.5707963267948966 rad + pos: 1.5,-3.5 + parent: 1 + type: Transform + - uid: 976 + components: + - pos: 0.5,-3.5 + parent: 1 + type: Transform + - uid: 977 + components: + - pos: -0.5,-3.5 + parent: 1 + type: Transform + - uid: 978 + components: + - rot: -1.5707963267948966 rad + pos: -0.5,-3.5 + parent: 1 + type: Transform + - uid: 979 + components: + - rot: -1.5707963267948966 rad + pos: -0.5,-2.5 + parent: 1 + type: Transform + - uid: 980 + components: + - rot: -1.5707963267948966 rad + pos: -0.5,-1.5 + parent: 1 + type: Transform + - uid: 981 + components: + - rot: -1.5707963267948966 rad + pos: -0.5,-0.5 + parent: 1 + type: Transform + - uid: 982 + components: + - rot: -1.5707963267948966 rad + pos: 4.5,-1.5 + parent: 1 + type: Transform + - uid: 983 + components: + - rot: -1.5707963267948966 rad + pos: 4.5,-2.5 + parent: 1 + type: Transform + - uid: 984 + components: + - rot: 1.5707963267948966 rad + pos: 4.5,-2.5 + parent: 1 + type: Transform + - uid: 985 + components: + - rot: 1.5707963267948966 rad + pos: 4.5,-1.5 + parent: 1 + type: Transform + - uid: 986 + components: + - pos: 3.5,-3.5 + parent: 1 + type: Transform + - uid: 987 + components: + - rot: 3.141592653589793 rad + pos: 3.5,-0.5 + parent: 1 + type: Transform + - uid: 988 + components: + - pos: -2.5,-3.5 + parent: 1 + type: Transform + - uid: 989 + components: + - rot: 3.141592653589793 rad + pos: -2.5,-0.5 + parent: 1 + type: Transform +- proto: WindowReinforcedDirectional + entities: + - uid: 990 + components: + - rot: 1.5707963267948966 rad + pos: -1.5,13.5 + parent: 1 + type: Transform + - uid: 991 + components: + - rot: 1.5707963267948966 rad + pos: -1.5,-12.5 + parent: 1 + type: Transform + - uid: 992 + components: + - rot: 1.5707963267948966 rad + pos: -1.5,-14.5 + parent: 1 + type: Transform + - uid: 993 + components: + - rot: 1.5707963267948966 rad + pos: -1.5,12.5 + parent: 1 + type: Transform + - uid: 994 + components: + - rot: -1.5707963267948966 rad + pos: 2.5,12.5 + parent: 1 + type: Transform + - uid: 995 + components: + - rot: -1.5707963267948966 rad + pos: 2.5,13.5 + parent: 1 + type: Transform +... diff --git a/Resources/Maps/Shuttles/pathfinder.yml b/Resources/Maps/Shuttles/pathfinder.yml new file mode 100644 index 0000000000..cc43ba831c --- /dev/null +++ b/Resources/Maps/Shuttles/pathfinder.yml @@ -0,0 +1,3184 @@ +meta: + format: 6 + postmapinit: false +tilemap: + 0: Space + 30: FloorDark + 35: FloorDarkMono + 1: FloorGlass + 65: FloorMetalDiamond + 92: FloorSteel + 99: FloorSteelDirty + 108: FloorTechMaint2 + 124: Lattice + 125: Plating +entities: +- proto: "" + entities: + - uid: 1 + components: + - type: MetaData + name: Pathfinder + - type: Transform + pos: -0.515625,-0.515625 + parent: invalid + - type: MapGrid + chunks: + 0,0: + ind: 0,0 + tiles: fQAAAAAAbAAAAAAAbAAAAAAAbAAAAAAAbAAAAAAAfQAAAAAAfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfQAAAAAAbAAAAAAAbAAAAAAAbAAAAAAAfQAAAAAAAQAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfQAAAAAAbAAAAAAAbAAAAAAAfQAAAAAAAQAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfQAAAAAAfQAAAAAAfQAAAAAAAQAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + version: 6 + 0,-1: + ind: 0,-1 + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQQAAAAAAQQAAAAAAfQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQQAAAAAAQQAAAAAAfQAAAAAAfQAAAAAAAQAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQQAAAAAAQQAAAAAAfQAAAAAAYwAAAAAAfQAAAAAAfQAAAAAAfQAAAAAAfQAAAAAAfAAAAAAAfAAAAAAAfQAAAAAAAQAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYwAAAAAAYwAAAAAAYwAAAAAAYwAAAAAAYwAAAAAAYwAAAAAAYwAAAAAAfQAAAAAAfQAAAAAAfQAAAAAAfQAAAAAAfQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYwAAAAAAYwAAAAAAYwAAAAAAYwAAAAAAYwAAAAAAYwAAAAAAYwAAAAAAYwAAAAAAYwAAAAAAYwAAAAAAYwAAAAAAfQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfQAAAAAAYwAAAAAAYwAAAAAAYwAAAAAAYwAAAAAAYwAAAAAAYwAAAAAAfQAAAAAAYwAAAAAAYwAAAAAAYwAAAAAAfQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfQAAAAAAYwAAAAAAYwAAAAAAYwAAAAAAYwAAAAAAYwAAAAAAYwAAAAAAfQAAAAAAYwAAAAAAYwAAAAAAYwAAAAAAfQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfQAAAAAAbAAAAAAAfQAAAAAAfQAAAAAAfQAAAAAAfQAAAAAAYwAAAAAAfQAAAAAAfQAAAAAAfQAAAAAAfQAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfQAAAAAAbAAAAAAAbAAAAAAAbAAAAAAAbAAAAAAAfQAAAAAAYwAAAAAAYwAAAAAAYwAAAAAAfQAAAAAAfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfQAAAAAAbAAAAAAAbAAAAAAAbAAAAAAAbAAAAAAAfQAAAAAAfQAAAAAAfQAAAAAAfQAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfQAAAAAAbAAAAAAAbAAAAAAAbAAAAAAAbAAAAAAAfQAAAAAAfQAAAAAAAQAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + version: 6 + -1,0: + ind: -1,0 + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfAAAAAAAfQAAAAAAHgAAAAABHgAAAAABHgAAAAACHgAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAfQAAAAAAHgAAAAABHgAAAAAAHgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAABfQAAAAAAHgAAAAAAHgAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAADfQAAAAAAfQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + version: 6 + -1,-1: + ind: -1,-1 + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfQAAAAAAQQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAADfQAAAAAAfQAAAAAAQQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAACfAAAAAAAfAAAAAAAfAAAAAAAfQAAAAAAfQAAAAAAfQAAAAAAfQAAAAAAYwAAAAAAfQAAAAAAQQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfQAAAAAAfQAAAAAAfQAAAAAAfQAAAAAAYwAAAAAAYwAAAAAAYwAAAAAAYwAAAAAAYwAAAAAAYwAAAAAAYwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQQAAAAAAQQAAAAAAYwAAAAAAYwAAAAAAYwAAAAAAYwAAAAAAYwAAAAAAYwAAAAAAYwAAAAAAYwAAAAAAYwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQQAAAAAAQQAAAAAAYwAAAAAAYwAAAAAAYwAAAAAAYwAAAAAAYwAAAAAAYwAAAAAAfQAAAAAAfQAAAAAAXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQQAAAAAAQQAAAAAAYwAAAAAAYwAAAAAAYwAAAAAAYwAAAAAAYwAAAAAAfQAAAAAAXAAAAAABXAAAAAAAXAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAfQAAAAAAfQAAAAAAYwAAAAAAYwAAAAAAYwAAAAAAYwAAAAAAfQAAAAAAXAAAAAADXAAAAAACXAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfAAAAAAAfQAAAAAAYwAAAAAAYwAAAAAAYwAAAAAAYwAAAAAAfQAAAAAAXAAAAAABXAAAAAABXAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAABfQAAAAAAfQAAAAAAYwAAAAAAfQAAAAAAfQAAAAAAfQAAAAAAfQAAAAAAXAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAABfQAAAAAAfQAAAAAAHgAAAAACHgAAAAAAHgAAAAAAHgAAAAAB + version: 6 + - type: Broadphase + - type: Physics + bodyStatus: InAir + angularDamping: 0.05 + linearDamping: 0.05 + fixedRotation: False + bodyType: Dynamic + - type: Fixtures + fixtures: {} + - type: SalvageShuttle + - type: OccluderTree + - type: SpreaderGrid + - 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: -5,-3 + 1: -6,-3 + 2: -7,-3 + 3: -8,-3 + 4: -8,-4 + 5: -7,-4 + 6: -6,-4 + 7: -5,-4 + 8: -5,-5 + 9: -6,-5 + 10: -7,-5 + 11: 2,-5 + 12: 2,-6 + 13: 5,-6 + 14: 5,-5 + 17: 3,-5 + 18: 4,-5 + 19: 4,-6 + 20: 3,-6 + - node: + color: '#FFFFFFFF' + id: Box + decals: + 15: -3,-9 + 16: 3,-9 + 131: -4,-1 + 132: -2,-3 + 133: -2,-5 + 134: -4,0 + - node: + color: '#3AB3DAFF' + id: DeliveryGreyscale + decals: + 136: 1,2 + - node: + color: '#F9801DFF' + id: DeliveryGreyscale + decals: + 135: 2,2 + - node: + cleanable: True + color: '#FFFFFFFF' + id: Dirt + decals: + 111: 8,-7 + 112: 8,-7 + 113: 8,-5 + 114: 9,-5 + 115: 9,-7 + 116: 10,-7 + 117: 10,-6 + 118: 8,-6 + 119: 6,-3 + 120: 6,-3 + 121: 6,-4 + 122: 6,-3 + 123: 7,-3 + 124: 6,-3 + 125: 8,-3 + 126: 8,-3 + 127: 8,-3 + 128: 8,-3 + 129: 7,-3 + 130: 7,-3 + - node: + cleanable: True + color: '#FFFFFFFF' + id: DirtHeavy + decals: + 21: -4,-6 + 22: -7,-6 + 23: -7,-6 + 24: -8,-5 + 25: -9,-5 + 26: -6,-8 + 27: -4,-8 + 28: -3,-8 + 29: -6,-7 + 30: -6,-8 + 31: 2,-8 + 32: 4,-7 + 33: 1,-6 + 34: -1,-7 + 35: 3,-7 + 36: 3,-5 + 37: 0,-6 + 38: -1,-7 + 39: -3,-7 + 40: -3,-8 + 41: 4,-8 + 42: 4,-9 + 43: 6,-7 + 44: 6,-5 + 45: 6,-7 + 46: 4,-7 + 47: 4,-7 + 48: 1,-7 + 49: -4,-8 + 50: -3,-8 + 51: 0,-8 + 52: -5,-7 + 53: -7,-5 + 54: -6,-5 + 55: -5,-4 + 56: -6,-4 + 57: -8,-5 + 58: -8,-7 + 59: -9,-7 + 60: -8,-7 + 61: -6,-6 + 62: -6,-8 + - node: + cleanable: True + color: '#FFFFFFFF' + id: DirtMedium + decals: + 63: -7,-6 + 64: -7,-6 + 65: -5,-7 + 66: -9,-7 + 67: -9,-5 + 68: -9,-7 + 69: -8,-6 + 70: -8,-6 + 71: -6,-4 + 72: -5,-5 + 73: -6,-5 + 74: -8,-4 + 75: -7,-4 + 76: -5,-6 + 77: -4,-7 + 78: -5,-8 + 79: -2,-8 + 80: -2,-8 + 81: 0,-8 + 82: 1,-8 + 83: 3,-6 + 84: 1,-5 + 85: 2,-6 + 86: 2,-5 + 87: 2,-5 + 88: 5,-6 + 89: 6,-7 + 90: 6,-8 + 91: 6,-6 + 92: 4,-8 + 93: 2,-8 + 94: -1,-7 + 95: -4,-8 + 96: -1,-5 + 97: -2,-4 + 98: -1,-4 + 99: -2,-3 + 100: -3,-1 + 101: -1,0 + 102: -1,-1 + 103: -3,-1 + 104: -3,1 + 105: -2,1 + 106: -2,0 + 107: -1,2 + 108: -3,0 + 109: -4,-1 + 110: -4,0 + - type: GridAtmosphere + version: 2 + data: + tiles: + 0,0: + 0: 1774 + 1: 32768 + -1,0: + 0: 3311 + 1: 8448 + 0,-1: + 0: 61154 + 1,0: + 0: 1 + 1: 288 + 2: 4 + 1,-1: + 0: 4564 + 1: 32768 + 0,-3: + 0: 45872 + -1,-3: + 0: 43136 + 1: 256 + 0,-2: + 0: 61183 + -1,-2: + 0: 59647 + -1,-1: + 0: 63726 + 1,-3: + 1: 256 + 1,-2: + 0: 30711 + 2,-3: + 2: 12288 + 1: 32768 + 2,-2: + 0: 30576 + 2,-1: + 0: 16 + 1: 520 + 2: 64 + -2,0: + 2: 4 + 1: 128 + -3,-3: + 1: 8192 + 2: 49152 + -3,-2: + 0: 52416 + -3,-1: + 1: 2050 + 2: 64 + -2,-3: + 2: 4096 + -2,-2: + 0: 65532 + -2,-1: + 0: 1279 + 1: 8192 + 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: + - 0 + - 0 + - 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: BecomesStation + id: Pathfinder +- proto: AirAlarm + entities: + - uid: 3 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 0.5,1.5 + parent: 1 + - type: DeviceList + devices: + - 153 + - 126 + - 118 + - 140 + - 104 + - 150 + - 276 + - 278 + - 273 + - 173 + - 174 + - 513 + - 512 + - 511 + - 510 + - 263 + - 21 + - 19 + - 17 +- proto: AirlockGlassShuttle + entities: + - uid: 8 + components: + - type: Transform + pos: -0.5,-10.5 + parent: 1 + - uid: 193 + components: + - type: Transform + pos: 1.5,-10.5 + parent: 1 + - uid: 226 + components: + - type: Transform + pos: 0.5,-10.5 + parent: 1 +- proto: AirlockSalvageGlassLocked + entities: + - uid: 6 + components: + - type: Transform + pos: -0.5,-5.5 + parent: 1 + - uid: 88 + components: + - type: Transform + pos: -0.5,-1.5 + parent: 1 + - uid: 187 + components: + - type: Transform + pos: 7.5,-6.5 + parent: 1 +- proto: AirlockSalvageLocked + entities: + - uid: 5 + components: + - type: Transform + pos: 1.5,-3.5 + parent: 1 + - uid: 7 + components: + - type: Transform + pos: 1.5,-8.5 + parent: 1 + - uid: 86 + components: + - type: Transform + pos: 0.5,-8.5 + parent: 1 + - uid: 144 + components: + - type: Transform + pos: -0.5,-8.5 + parent: 1 +- proto: AmeController + entities: + - uid: 70 + components: + - type: Transform + pos: 3.5,-2.5 + parent: 1 + - type: AmeController + injecting: True + - type: ContainerContainer + containers: + fuelSlot: !type:ContainerSlot + showEnts: False + occludes: True + ent: 72 +- proto: AmeJar + entities: + - uid: 72 + components: + - type: Transform + parent: 70 + - type: Physics + canCollide: False + - uid: 117 + components: + - type: Transform + pos: 2.9327545,-2.3777018 + parent: 1 + - uid: 363 + components: + - type: Transform + pos: 2.7608795,-2.3620768 + parent: 1 +- proto: AmeShielding + entities: + - uid: 14 + components: + - type: Transform + pos: 3.5,-1.5 + parent: 1 + - uid: 22 + components: + - type: Transform + pos: 4.5,0.5 + parent: 1 + - uid: 79 + components: + - type: Transform + pos: 2.5,-0.5 + parent: 1 + - uid: 102 + components: + - type: Transform + pos: 3.5,-0.5 + parent: 1 + - type: PointLight + radius: 2 + enabled: True + - uid: 103 + components: + - type: Transform + pos: 4.5,-1.5 + parent: 1 + - uid: 105 + components: + - type: Transform + pos: 4.5,-0.5 + parent: 1 + - uid: 115 + components: + - type: Transform + pos: 2.5,0.5 + parent: 1 + - uid: 172 + components: + - type: Transform + pos: 3.5,0.5 + parent: 1 + - uid: 334 + components: + - type: Transform + pos: 2.5,-1.5 + parent: 1 +- proto: APCBasic + entities: + - uid: 96 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 0.5,-3.5 + parent: 1 +- proto: AtmosDeviceFanTiny + entities: + - uid: 9 + components: + - type: Transform + pos: 0.5,-10.5 + parent: 1 + - uid: 25 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -10.5,-4.5 + parent: 1 + - uid: 26 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -10.5,-6.5 + parent: 1 + - uid: 27 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -10.5,-5.5 + parent: 1 + - uid: 28 + components: + - type: Transform + pos: 1.5,-10.5 + parent: 1 + - uid: 29 + components: + - type: Transform + pos: -0.5,-10.5 + parent: 1 +- proto: AtmosFixBlockerMarker + entities: + - uid: 23 + components: + - type: Transform + pos: 4.5,-9.5 + parent: 1 + - uid: 42 + components: + - type: Transform + pos: 10.5,-2.5 + parent: 1 + - uid: 82 + components: + - type: Transform + pos: -10.5,-3.5 + parent: 1 + - uid: 89 + components: + - type: Transform + pos: -2.5,3.5 + parent: 1 + - uid: 90 + components: + - type: Transform + pos: 11.5,-3.5 + parent: 1 + - uid: 159 + components: + - type: Transform + pos: -3.5,-9.5 + parent: 1 + - uid: 230 + components: + - type: Transform + pos: -10.5,-8.5 + parent: 1 + - uid: 232 + components: + - type: Transform + pos: -8.5,-8.5 + parent: 1 + - uid: 233 + components: + - type: Transform + pos: -7.5,-8.5 + parent: 1 + - uid: 234 + components: + - type: Transform + pos: -9.5,-2.5 + parent: 1 + - uid: 236 + components: + - type: Transform + pos: -8.5,-1.5 + parent: 1 + - uid: 238 + components: + - type: Transform + pos: -6.5,-0.5 + parent: 1 + - uid: 239 + components: + - type: Transform + pos: -5.5,0.5 + parent: 1 + - uid: 240 + components: + - type: Transform + pos: -4.5,1.5 + parent: 1 + - uid: 241 + components: + - type: Transform + pos: 3.5,3.5 + parent: 1 + - uid: 242 + components: + - type: Transform + pos: 4.5,2.5 + parent: 1 + - uid: 243 + components: + - type: Transform + pos: 5.5,1.5 + parent: 1 + - uid: 244 + components: + - type: Transform + pos: 6.5,0.5 + parent: 1 + - uid: 245 + components: + - type: Transform + pos: 7.5,-0.5 + parent: 1 + - uid: 251 + components: + - type: Transform + pos: 9.5,-1.5 + parent: 1 + - uid: 253 + components: + - type: Transform + pos: 11.5,-8.5 + parent: 1 + - uid: 254 + components: + - type: Transform + pos: 9.5,-8.5 + parent: 1 + - uid: 255 + components: + - type: Transform + pos: 8.5,-8.5 + parent: 1 + - uid: 309 + components: + - type: Transform + pos: -3.5,2.5 + parent: 1 +- proto: Bed + entities: + - uid: 30 + components: + - type: Transform + pos: -2.5,-4.5 + parent: 1 + - uid: 31 + components: + - type: Transform + pos: -2.5,-2.5 + parent: 1 +- proto: BedsheetSpawner + entities: + - uid: 32 + components: + - type: Transform + pos: -2.5,-4.5 + parent: 1 + - uid: 33 + components: + - type: Transform + pos: -2.5,-2.5 + parent: 1 +- proto: BlastDoor + entities: + - uid: 34 + components: + - type: Transform + pos: -10.5,-4.5 + parent: 1 + - type: DeviceLinkSink + links: + - 225 + - uid: 35 + components: + - type: Transform + pos: -10.5,-5.5 + parent: 1 + - type: DeviceLinkSink + links: + - 225 + - uid: 36 + components: + - type: Transform + pos: -10.5,-6.5 + parent: 1 + - type: DeviceLinkSink + links: + - 225 +- proto: ButtonFrameGrey + entities: + - uid: 157 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 0.5,-2.5 + parent: 1 + - uid: 191 + components: + - type: Transform + pos: -9.5,-3.5 + parent: 1 +- proto: CableApcExtension + entities: + - uid: 20 + components: + - type: Transform + pos: -0.5,-5.5 + parent: 1 + - uid: 24 + components: + - type: Transform + pos: 6.5,-6.5 + parent: 1 + - uid: 38 + components: + - type: Transform + pos: -4.5,-6.5 + parent: 1 + - uid: 43 + components: + - type: Transform + pos: 3.5,-7.5 + parent: 1 + - uid: 44 + components: + - type: Transform + pos: 7.5,-2.5 + parent: 1 + - uid: 45 + components: + - type: Transform + pos: 6.5,-2.5 + parent: 1 + - uid: 46 + components: + - type: Transform + pos: 6.5,-3.5 + parent: 1 + - uid: 47 + components: + - type: Transform + pos: 6.5,-4.5 + parent: 1 + - uid: 48 + components: + - type: Transform + pos: 6.5,-5.5 + parent: 1 + - uid: 49 + components: + - type: Transform + pos: -2.5,0.5 + parent: 1 + - uid: 50 + components: + - type: Transform + pos: -1.5,0.5 + parent: 1 + - uid: 51 + components: + - type: Transform + pos: -1.5,-0.5 + parent: 1 + - uid: 54 + components: + - type: Transform + pos: -0.5,-0.5 + parent: 1 + - uid: 55 + components: + - type: Transform + pos: -3.5,-7.5 + parent: 1 + - uid: 56 + components: + - type: Transform + pos: -2.5,-7.5 + parent: 1 + - uid: 57 + components: + - type: Transform + pos: -5.5,-6.5 + parent: 1 + - uid: 58 + components: + - type: Transform + pos: -6.5,-6.5 + parent: 1 + - uid: 61 + components: + - type: Transform + pos: -0.5,-1.5 + parent: 1 + - uid: 62 + components: + - type: Transform + pos: -0.5,-2.5 + parent: 1 + - uid: 64 + components: + - type: Transform + pos: 4.5,-6.5 + parent: 1 + - uid: 65 + components: + - type: Transform + pos: 7.5,-6.5 + parent: 1 + - uid: 66 + components: + - type: Transform + pos: 8.5,-6.5 + parent: 1 + - uid: 71 + components: + - type: Transform + pos: -1.5,-7.5 + parent: 1 + - uid: 77 + components: + - type: Transform + pos: 9.5,-6.5 + parent: 1 + - uid: 91 + components: + - type: Transform + pos: 2.5,-7.5 + parent: 1 + - uid: 93 + components: + - type: Transform + pos: -7.5,-6.5 + parent: 1 + - uid: 94 + components: + - type: Transform + pos: -1.5,-3.5 + parent: 1 + - uid: 97 + components: + - type: Transform + pos: 1.5,0.5 + parent: 1 + - uid: 100 + components: + - type: Transform + pos: 1.5,-2.5 + parent: 1 + - uid: 106 + components: + - type: Transform + pos: 3.5,-6.5 + parent: 1 + - uid: 108 + components: + - type: Transform + pos: -7.5,-4.5 + parent: 1 + - uid: 109 + components: + - type: Transform + pos: 1.5,-3.5 + parent: 1 + - uid: 110 + components: + - type: Transform + pos: -7.5,-3.5 + parent: 1 + - uid: 111 + components: + - type: Transform + pos: -0.5,-3.5 + parent: 1 + - uid: 112 + components: + - type: Transform + pos: -0.5,-7.5 + parent: 1 + - uid: 123 + components: + - type: Transform + pos: 1.5,-0.5 + parent: 1 + - uid: 138 + components: + - type: Transform + pos: 1.5,-7.5 + parent: 1 + - uid: 139 + components: + - type: Transform + pos: 0.5,-7.5 + parent: 1 + - uid: 145 + components: + - type: Transform + pos: 1.5,-1.5 + parent: 1 + - uid: 151 + components: + - type: Transform + pos: 0.5,-3.5 + parent: 1 + - uid: 155 + components: + - type: Transform + pos: -7.5,-5.5 + parent: 1 + - uid: 177 + components: + - type: Transform + pos: -2.5,-3.5 + parent: 1 + - uid: 208 + components: + - type: Transform + pos: -0.5,-6.5 + parent: 1 + - uid: 348 + components: + - type: Transform + pos: -3.5,-6.5 + parent: 1 + - uid: 352 + components: + - type: Transform + pos: -0.5,-4.5 + parent: 1 + - uid: 362 + components: + - type: Transform + pos: 5.5,-6.5 + parent: 1 +- proto: CableHV + entities: + - uid: 13 + components: + - type: Transform + pos: 3.5,-2.5 + parent: 1 + - uid: 299 + components: + - type: Transform + pos: 4.5,-2.5 + parent: 1 + - uid: 305 + components: + - type: Transform + pos: 4.5,-3.5 + parent: 1 +- proto: CableMV + entities: + - uid: 16 + components: + - type: Transform + pos: -0.5,-3.5 + parent: 1 + - uid: 53 + components: + - type: Transform + pos: 4.5,-3.5 + parent: 1 + - uid: 68 + components: + - type: Transform + pos: 2.5,-6.5 + parent: 1 + - uid: 73 + components: + - type: Transform + pos: 4.5,-4.5 + parent: 1 + - uid: 74 + components: + - type: Transform + pos: 4.5,-5.5 + parent: 1 + - uid: 75 + components: + - type: Transform + pos: 4.5,-6.5 + parent: 1 + - uid: 76 + components: + - type: Transform + pos: 3.5,-6.5 + parent: 1 + - uid: 78 + components: + - type: Transform + pos: 1.5,-6.5 + parent: 1 + - uid: 95 + components: + - type: Transform + pos: 0.5,-3.5 + parent: 1 + - uid: 107 + components: + - type: Transform + pos: 4.5,-5.5 + parent: 1 + - uid: 113 + components: + - type: Transform + pos: 0.5,-6.5 + parent: 1 + - uid: 281 + components: + - type: Transform + pos: -0.5,-4.5 + parent: 1 + - uid: 322 + components: + - type: Transform + pos: -0.5,-6.5 + parent: 1 + - uid: 356 + components: + - type: Transform + pos: -0.5,-5.5 + parent: 1 +- proto: CableTerminal + entities: + - uid: 98 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 3.5,-2.5 + parent: 1 +- proto: CargoPallet + entities: + - uid: 158 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -5.5,-1.5 + parent: 1 +- proto: CarpetBlack + entities: + - uid: 154 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -2.5,-2.5 + parent: 1 + - uid: 259 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -1.5,-3.5 + parent: 1 + - uid: 501 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -2.5,-3.5 + parent: 1 + - uid: 502 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -2.5,-4.5 + parent: 1 + - uid: 503 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -1.5,-2.5 + parent: 1 + - uid: 505 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -1.5,-4.5 + parent: 1 +- proto: Chair + entities: + - uid: 162 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 10.5,-4.5 + parent: 1 + - uid: 163 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 10.5,-5.5 + parent: 1 +- proto: ChairPilotSeat + entities: + - uid: 165 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -1.5,1.5 + parent: 1 +- proto: ClosetWallEmergencyFilledRandom + entities: + - uid: 160 + components: + - type: Transform + pos: -4.5,-1.5 + parent: 1 +- proto: ClosetWallFireFilledRandom + entities: + - uid: 92 + components: + - type: Transform + pos: 2.5,-3.5 + parent: 1 +- proto: ComputerBroken + entities: + - uid: 41 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 5.5,-7.5 + parent: 1 + - uid: 164 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -5.5,-7.5 + parent: 1 + - uid: 336 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 6.5,-7.5 + parent: 1 +- proto: ComputerRadar + entities: + - uid: 67 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -0.5,1.5 + parent: 1 +- proto: ComputerSalvageExpedition + entities: + - uid: 257 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -2.5,1.5 + parent: 1 +- proto: ComputerShuttleSalvage + entities: + - uid: 258 + components: + - type: Transform + pos: -1.5,2.5 + parent: 1 +- proto: DefibrillatorCabinetFilled + entities: + - uid: 283 + components: + - type: Transform + pos: -2.5,-5.5 + parent: 1 +- proto: DisposalBend + entities: + - uid: 184 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 6.5,-2.5 + parent: 1 +- proto: DisposalPipe + entities: + - uid: 185 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 7.5,-2.5 + parent: 1 + - uid: 189 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 6.5,-3.5 + parent: 1 +- proto: DisposalPipeBroken + entities: + - uid: 186 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 6.5,-4.5 + parent: 1 +- proto: DisposalTrunk + entities: + - uid: 188 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 8.5,-2.5 + parent: 1 +- proto: DrinkMugMetal + entities: + - uid: 195 + components: + - type: Transform + pos: 9.636227,-6.42377 + parent: 1 + - uid: 196 + components: + - type: Transform + pos: 10.542477,-6.408145 + parent: 1 +- proto: EmergencyLight + entities: + - uid: 183 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -0.5,-9.5 + parent: 1 + - uid: 262 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -4.5,-4.5 + parent: 1 + - uid: 265 + components: + - type: Transform + pos: 5.5,-4.5 + parent: 1 + - uid: 274 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -0.5,0.5 + parent: 1 + - uid: 275 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -1.5,-4.5 + parent: 1 + - uid: 277 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 1.5,0.5 + parent: 1 +- proto: ExtinguisherCabinetFilled + entities: + - uid: 84 + components: + - type: Transform + pos: -1.5,-5.5 + parent: 1 +- proto: FirelockEdge + entities: + - uid: 173 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -1.5,-6.5 + parent: 1 + - type: DeviceNetwork + deviceLists: + - 3 + - uid: 174 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -1.5,-7.5 + parent: 1 + - type: DeviceNetwork + deviceLists: + - 3 + - uid: 510 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 2.5,-4.5 + parent: 1 + - type: DeviceNetwork + deviceLists: + - 3 + - uid: 511 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 2.5,-5.5 + parent: 1 + - type: DeviceNetwork + deviceLists: + - 3 + - uid: 512 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 2.5,-6.5 + parent: 1 + - type: DeviceNetwork + deviceLists: + - 3 + - uid: 513 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 2.5,-7.5 + parent: 1 + - type: DeviceNetwork + deviceLists: + - 3 +- proto: FirelockGlass + entities: + - uid: 17 + components: + - type: Transform + pos: -0.5,-1.5 + parent: 1 + - type: DeviceNetwork + deviceLists: + - 3 + - uid: 19 + components: + - type: Transform + pos: -0.5,-5.5 + parent: 1 + - type: DeviceNetwork + deviceLists: + - 3 + - uid: 21 + components: + - type: Transform + pos: 1.5,-3.5 + parent: 1 + - type: DeviceNetwork + deviceLists: + - 3 + - uid: 263 + components: + - type: Transform + pos: 7.5,-6.5 + parent: 1 + - type: DeviceNetwork + deviceLists: + - 3 +- proto: FloorDrain + entities: + - uid: 198 + components: + - type: Transform + pos: 7.5,-2.5 + parent: 1 + - type: Fixtures + fixtures: {} +- proto: Fulton + entities: + - uid: 197 + components: + - type: Transform + pos: 3.7384453,-4.482957 + parent: 1 + - type: Physics + angularDamping: 0 + linearDamping: 0 + - uid: 260 + components: + - type: Transform + pos: 4.4102926,-4.1582947 + parent: 1 + - uid: 292 + components: + - type: Transform + pos: 4.722792,-4.2364197 + parent: 1 + - uid: 314 + components: + - type: Transform + pos: 3.5509453,-4.186082 + parent: 1 +- proto: GasMixerFlipped + entities: + - uid: 182 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 1.5,1.5 + parent: 1 + - type: GasMixer + inletTwoConcentration: 0.79 + inletOneConcentration: 0.21 + - type: AtmosPipeColor + color: '#0055CCFF' +- proto: GasPassiveVent + entities: + - uid: 37 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -8.5,-8.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' +- proto: GasPipeBend + entities: + - uid: 124 + components: + - type: Transform + pos: -5.5,-6.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 128 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 6.5,-7.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 131 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -5.5,-7.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 152 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -4.5,-6.5 + parent: 1 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 178 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -1.5,0.5 + parent: 1 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 203 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 2.5,1.5 + parent: 1 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 222 + components: + - type: Transform + pos: -4.5,-5.5 + parent: 1 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 227 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -8.5,-6.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' +- proto: GasPipeFourway + entities: + - uid: 204 + components: + - type: Transform + pos: 1.5,-6.5 + parent: 1 + - type: AtmosPipeColor + color: '#0055CCFF' +- proto: GasPipeStraight + entities: + - uid: 99 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 0.5,-0.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 114 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 1.5,-0.5 + parent: 1 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 119 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -0.5,-6.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 122 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -0.5,-5.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 125 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -0.5,0.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 129 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 6.5,-6.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 130 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 5.5,-7.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 132 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 2.5,-7.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 133 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 1.5,-7.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 135 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -1.5,-7.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 141 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -0.5,-6.5 + parent: 1 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 142 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -2.5,-7.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 146 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -3.5,-7.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 147 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -4.5,-7.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 149 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 4.5,-6.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 167 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -1.5,-4.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 168 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -0.5,-2.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 175 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 1.5,-1.5 + parent: 1 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 181 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 0.5,-6.5 + parent: 1 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 194 + components: + - type: Transform + pos: -8.5,-7.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 199 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -2.5,-6.5 + parent: 1 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 201 + components: + - type: Transform + pos: -1.5,-1.5 + parent: 1 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 202 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -3.5,-6.5 + parent: 1 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 209 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 2.5,-6.5 + parent: 1 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 211 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 1.5,0.5 + parent: 1 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 213 + components: + - type: Transform + pos: -1.5,-0.5 + parent: 1 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 214 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -1.5,-5.5 + parent: 1 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 216 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 4.5,-6.5 + parent: 1 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 217 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 5.5,-6.5 + parent: 1 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 218 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 6.5,-6.5 + parent: 1 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 219 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 7.5,-6.5 + parent: 1 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 220 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 8.5,-6.5 + parent: 1 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 221 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 9.5,-6.5 + parent: 1 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 224 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 7.5,-5.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 228 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 3.5,-7.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 229 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -1.5,-4.5 + parent: 1 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 231 + components: + - type: Transform + pos: -0.5,-1.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 237 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -0.5,-3.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 247 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -7.5,-6.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 248 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -1.5,-3.5 + parent: 1 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 249 + components: + - type: Transform + pos: 6.5,-4.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 250 + components: + - type: Transform + pos: 6.5,-3.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 252 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 0.5,0.5 + parent: 1 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 320 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 1.5,-5.5 + parent: 1 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 321 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 1.5,-4.5 + parent: 1 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 325 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 1.5,-3.5 + parent: 1 + - type: AtmosPipeColor + color: '#0055CCFF' +- proto: GasPipeTJunction + entities: + - uid: 120 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -0.5,-7.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 121 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 3.5,-6.5 + parent: 1 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 127 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 6.5,-5.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 148 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 4.5,-7.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 166 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -0.5,-4.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 206 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 0.5,-7.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 207 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -1.5,-2.5 + parent: 1 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 215 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -1.5,-6.5 + parent: 1 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 256 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 1.5,-2.5 + parent: 1 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 261 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -0.5,-0.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 267 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -6.5,-6.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' +- proto: GasPort + entities: + - uid: 268 + components: + - type: Transform + pos: 2.5,2.5 + parent: 1 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 269 + components: + - type: Transform + pos: 1.5,2.5 + parent: 1 + - type: AtmosPipeColor + color: '#0055CCFF' +- proto: GasVentPump + entities: + - uid: 60 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -5.5,-5.5 + parent: 1 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 104 + components: + - type: Transform + pos: 3.5,-5.5 + parent: 1 + - type: DeviceNetwork + deviceLists: + - 3 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 140 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 1.5,-7.5 + parent: 1 + - type: DeviceNetwork + deviceLists: + - 3 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 212 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -0.5,0.5 + parent: 1 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 235 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 2.5,-2.5 + parent: 1 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 273 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 10.5,-6.5 + parent: 1 + - type: DeviceNetwork + deviceLists: + - 3 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 372 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -2.5,-2.5 + parent: 1 + - type: AtmosPipeColor + color: '#0055CCFF' +- proto: GasVentScrubber + entities: + - uid: 118 + components: + - type: Transform + pos: 0.5,-6.5 + parent: 1 + - type: DeviceNetwork + deviceLists: + - 3 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 126 + components: + - type: Transform + pos: -0.5,1.5 + parent: 1 + - type: DeviceNetwork + deviceLists: + - 3 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 150 + components: + - type: Transform + pos: 4.5,-5.5 + parent: 1 + - type: DeviceNetwork + deviceLists: + - 3 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 153 + components: + - type: Transform + pos: -6.5,-5.5 + parent: 1 + - type: DeviceNetwork + deviceLists: + - 3 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 205 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 1.5,-0.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 210 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -2.5,-4.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 276 + components: + - type: Transform + pos: 6.5,-2.5 + parent: 1 + - type: DeviceNetwork + deviceLists: + - 3 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 278 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 8.5,-5.5 + parent: 1 + - type: DeviceNetwork + deviceLists: + - 3 + - type: AtmosPipeColor + color: '#990000FF' +- proto: GravityGeneratorMini + entities: + - uid: 333 + components: + - type: Transform + pos: 3.5,1.5 + parent: 1 +- proto: Grille + entities: + - uid: 10 + components: + - type: Transform + pos: -1.5,3.5 + parent: 1 + - uid: 272 + components: + - type: Transform + pos: 11.5,-4.5 + parent: 1 + - uid: 279 + components: + - type: Transform + pos: 7.5,-4.5 + parent: 1 + - uid: 280 + components: + - type: Transform + pos: -0.5,3.5 + parent: 1 + - uid: 315 + components: + - type: Transform + pos: 0.5,-4.5 + parent: 1 + - uid: 318 + components: + - type: Transform + pos: 5.5,-8.5 + parent: 1 + - uid: 319 + components: + - type: Transform + pos: -4.5,-8.5 + parent: 1 + - uid: 329 + components: + - type: Transform + pos: 7.5,-5.5 + parent: 1 + - uid: 330 + components: + - type: Transform + pos: 11.5,-5.5 + parent: 1 + - uid: 340 + components: + - type: Transform + pos: -2.5,2.5 + parent: 1 + - uid: 342 + components: + - type: Transform + pos: 11.5,-6.5 + parent: 1 + - uid: 345 + components: + - type: Transform + pos: -7.5,-1.5 + parent: 1 + - uid: 392 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -2.5,-9.5 + parent: 1 + - uid: 396 + components: + - type: Transform + pos: -5.5,-8.5 + parent: 1 + - uid: 465 + components: + - type: Transform + pos: 6.5,-8.5 + parent: 1 + - uid: 494 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 3.5,-9.5 + parent: 1 + - uid: 499 + components: + - type: Transform + pos: 1.5,3.5 + parent: 1 + - uid: 500 + components: + - type: Transform + pos: 2.5,3.5 + parent: 1 +- proto: GrilleDiagonal + entities: + - uid: 294 + components: + - type: Transform + pos: -2.5,3.5 + parent: 1 + - uid: 297 + components: + - type: Transform + pos: -3.5,2.5 + parent: 1 +- proto: Gyroscope + entities: + - uid: 143 + components: + - type: Transform + pos: 2.5,1.5 + parent: 1 +- proto: HospitalCurtainsOpen + entities: + - uid: 284 + components: + - type: Transform + pos: 6.5,-2.5 + parent: 1 + - uid: 285 + components: + - type: Transform + pos: -2.5,-2.5 + parent: 1 + - uid: 286 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -2.5,-4.5 + parent: 1 +- proto: LockerFreezer + entities: + - uid: 288 + components: + - type: Transform + pos: 8.5,-4.5 + parent: 1 +- proto: LockerSalvageSpecialistFilled + entities: + - uid: 69 + components: + - type: Transform + pos: -3.5,0.5 + parent: 1 + - uid: 223 + components: + - type: Transform + pos: -1.5,-4.5 + parent: 1 +- proto: NitrogenCanister + entities: + - uid: 11 + components: + - type: Transform + anchored: True + pos: 2.5,2.5 + parent: 1 + - type: Physics + bodyType: Static +- proto: OreProcessor + entities: + - uid: 365 + components: + - type: Transform + pos: -6.5,-2.5 + parent: 1 +- proto: OxygenCanister + entities: + - uid: 12 + components: + - type: Transform + anchored: True + pos: 1.5,2.5 + parent: 1 + - type: Physics + bodyType: Static +- proto: PaperBin5 + entities: + - uid: 291 + components: + - type: Transform + pos: -0.5,0.5 + parent: 1 +- proto: PoweredSmallLight + entities: + - uid: 18 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -4.5,-2.5 + parent: 1 + - uid: 81 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -8.5,-6.5 + parent: 1 + - uid: 264 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 9.5,-6.5 + parent: 1 + - uid: 266 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -3.5,-7.5 + parent: 1 + - uid: 270 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 4.5,-7.5 + parent: 1 + - uid: 293 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -2.5,-3.5 + parent: 1 + - uid: 301 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 8.5,-2.5 + parent: 1 + - uid: 303 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 1.5,-0.5 + parent: 1 + - uid: 304 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -1.5,-0.5 + parent: 1 + - uid: 324 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 1.5,-9.5 + parent: 1 +- proto: Rack + entities: + - uid: 2 + components: + - type: Transform + pos: 3.5,-4.5 + parent: 1 + - uid: 39 + components: + - type: Transform + pos: 4.5,-4.5 + parent: 1 +- proto: RandomPosterAny + entities: + - uid: 4 + components: + - type: Transform + pos: -2.5,-1.5 + parent: 1 + - uid: 87 + components: + - type: Transform + pos: 0.5,0.5 + parent: 1 + - uid: 170 + components: + - type: Transform + pos: 3.5,-3.5 + parent: 1 + - uid: 171 + components: + - type: Transform + pos: 7.5,-3.5 + parent: 1 + - uid: 176 + components: + - type: Transform + pos: -7.5,-7.5 + parent: 1 + - uid: 180 + components: + - type: Transform + pos: -3.5,-3.5 + parent: 1 + - uid: 355 + components: + - type: Transform + pos: 9.5,-3.5 + parent: 1 + - uid: 360 + components: + - type: Transform + pos: -8.5,-3.5 + parent: 1 +- proto: ReinforcedWindow + entities: + - uid: 83 + components: + - type: Transform + pos: -7.5,-1.5 + parent: 1 + - uid: 85 + components: + - type: Transform + pos: 11.5,-6.5 + parent: 1 + - uid: 271 + components: + - type: Transform + pos: 11.5,-4.5 + parent: 1 + - uid: 289 + components: + - type: Transform + pos: -1.5,3.5 + parent: 1 + - uid: 323 + components: + - type: Transform + pos: 1.5,3.5 + parent: 1 + - uid: 326 + components: + - type: Transform + pos: -2.5,2.5 + parent: 1 + - uid: 327 + components: + - type: Transform + pos: 11.5,-5.5 + parent: 1 + - uid: 332 + components: + - type: Transform + pos: -0.5,3.5 + parent: 1 + - uid: 391 + components: + - type: Transform + pos: 6.5,-8.5 + parent: 1 + - uid: 394 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 3.5,-9.5 + parent: 1 + - uid: 398 + components: + - type: Transform + pos: -4.5,-8.5 + parent: 1 + - uid: 421 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -2.5,-9.5 + parent: 1 + - uid: 442 + components: + - type: Transform + pos: 0.5,-4.5 + parent: 1 + - uid: 468 + components: + - type: Transform + pos: -5.5,-8.5 + parent: 1 + - uid: 469 + components: + - type: Transform + pos: 5.5,-8.5 + parent: 1 + - uid: 490 + components: + - type: Transform + pos: 2.5,3.5 + parent: 1 +- proto: ReinforcedWindowDiagonal + entities: + - uid: 287 + components: + - type: Transform + pos: -2.5,3.5 + parent: 1 + - uid: 328 + components: + - type: Transform + pos: -3.5,2.5 + parent: 1 +- proto: SalvageMagnet + entities: + - uid: 169 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -0.5,2.5 + parent: 1 +- proto: ShuttersNormalOpen + entities: + - uid: 520 + components: + - type: Transform + pos: 0.5,-4.5 + parent: 1 + - type: DeviceLinkSink + links: + - 156 +- proto: SignalButtonDirectional + entities: + - uid: 156 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 0.5,-2.5 + parent: 1 + - type: DeviceLinkSource + linkedPorts: + 520: + - Pressed: Toggle + - uid: 225 + components: + - type: Transform + pos: -9.5,-3.5 + parent: 1 + - type: DeviceLinkSource + linkedPorts: + 34: + - Pressed: Toggle + 35: + - Pressed: Toggle + 36: + - Pressed: Toggle +- proto: SignBridge + entities: + - uid: 354 + components: + - type: Transform + pos: -1.5,-1.5 + parent: 1 +- proto: SinkEmpty + entities: + - uid: 192 + components: + - type: Transform + pos: 7.5,-2.5 + parent: 1 +- proto: SMESBasic + entities: + - uid: 59 + components: + - type: Transform + pos: 4.5,-2.5 + parent: 1 +- proto: SpawnPointLatejoin + entities: + - uid: 357 + components: + - type: Transform + pos: -2.5,-4.5 + parent: 1 + - uid: 358 + components: + - type: Transform + pos: -2.5,-2.5 + parent: 1 +- proto: SubstationWallBasic + entities: + - uid: 52 + components: + - type: Transform + pos: 4.5,-3.5 + parent: 1 +- proto: SuitStorageEVAAlternate + entities: + - uid: 200 + components: + - type: Transform + pos: 3.5,-8.5 + parent: 1 +- proto: SuitStorageSalv + entities: + - uid: 40 + components: + - type: Transform + pos: -1.5,-2.5 + parent: 1 + - uid: 116 + components: + - type: Transform + pos: -3.5,-0.5 + parent: 1 +- proto: Table + entities: + - uid: 364 + components: + - type: Transform + pos: 9.5,-6.5 + parent: 1 + - uid: 521 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 10.5,-6.5 + parent: 1 +- proto: TableReinforced + entities: + - uid: 367 + components: + - type: Transform + pos: -0.5,0.5 + parent: 1 +- proto: Thruster + entities: + - uid: 349 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 10.5,-2.5 + parent: 1 + - uid: 351 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -9.5,-2.5 + parent: 1 + - uid: 368 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -8.5,-8.5 + parent: 1 + - uid: 369 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -7.5,-8.5 + parent: 1 + - uid: 370 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 9.5,-8.5 + parent: 1 + - uid: 371 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 8.5,-8.5 + parent: 1 + - uid: 374 + components: + - type: Transform + pos: -5.5,0.5 + parent: 1 + - uid: 375 + components: + - type: Transform + pos: 6.5,0.5 + parent: 1 +- proto: ToiletEmpty + entities: + - uid: 337 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 8.5,-2.5 + parent: 1 +- proto: VendingMachineTankDispenserEVA + entities: + - uid: 335 + components: + - type: Transform + pos: -2.5,-8.5 + parent: 1 +- proto: WallReinforced + entities: + - uid: 190 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -8.5,-7.5 + parent: 1 + - uid: 246 + components: + - type: Transform + pos: -9.5,-7.5 + parent: 1 + - uid: 295 + components: + - type: Transform + pos: 2.5,-10.5 + parent: 1 + - uid: 296 + components: + - type: Transform + pos: 5.5,-0.5 + parent: 1 + - uid: 306 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 2.5,-9.5 + parent: 1 + - uid: 313 + components: + - type: Transform + pos: -1.5,-10.5 + parent: 1 + - uid: 338 + components: + - type: Transform + pos: -8.5,-3.5 + parent: 1 + - uid: 339 + components: + - type: Transform + pos: -4.5,-0.5 + parent: 1 + - uid: 341 + components: + - type: Transform + pos: -9.5,-8.5 + parent: 1 + - uid: 346 + components: + - type: Transform + pos: -5.5,-0.5 + parent: 1 + - uid: 347 + components: + - type: Transform + pos: -4.5,0.5 + parent: 1 + - uid: 350 + components: + - type: Transform + pos: -6.5,-7.5 + parent: 1 + - uid: 380 + components: + - type: Transform + pos: -10.5,-7.5 + parent: 1 + - uid: 383 + components: + - type: Transform + pos: -7.5,-7.5 + parent: 1 + - uid: 386 + components: + - type: Transform + pos: 11.5,-7.5 + parent: 1 + - uid: 387 + components: + - type: Transform + pos: 10.5,-7.5 + parent: 1 + - uid: 388 + components: + - type: Transform + pos: 9.5,-7.5 + parent: 1 + - uid: 389 + components: + - type: Transform + pos: 8.5,-7.5 + parent: 1 + - uid: 390 + components: + - type: Transform + pos: 7.5,-7.5 + parent: 1 + - uid: 399 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -1.5,-9.5 + parent: 1 + - uid: 404 + components: + - type: Transform + pos: -9.5,-3.5 + parent: 1 + - uid: 405 + components: + - type: Transform + pos: -8.5,-2.5 + parent: 1 + - uid: 407 + components: + - type: Transform + pos: -6.5,-1.5 + parent: 1 + - uid: 411 + components: + - type: Transform + pos: 4.5,1.5 + parent: 1 + - uid: 412 + components: + - type: Transform + pos: 5.5,0.5 + parent: 1 + - uid: 413 + components: + - type: Transform + pos: 6.5,-0.5 + parent: 1 + - uid: 414 + components: + - type: Transform + pos: 7.5,-1.5 + parent: 1 + - uid: 415 + components: + - type: Transform + pos: 8.5,-1.5 + parent: 1 + - uid: 416 + components: + - type: Transform + pos: 9.5,-2.5 + parent: 1 + - uid: 417 + components: + - type: Transform + pos: 10.5,-3.5 + parent: 1 + - uid: 418 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -1.5,-8.5 + parent: 1 + - uid: 420 + components: + - type: Transform + pos: 2.5,-8.5 + parent: 1 + - uid: 423 + components: + - type: Transform + pos: 3.5,2.5 + parent: 1 + - uid: 425 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -6.5,-8.5 + parent: 1 + - uid: 426 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 7.5,-8.5 + parent: 1 + - uid: 427 + components: + - type: Transform + pos: 10.5,-8.5 + parent: 1 + - uid: 428 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -3.5,1.5 + parent: 1 + - uid: 429 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 0.5,3.5 + parent: 1 + - uid: 467 + components: + - type: Transform + pos: 4.5,-8.5 + parent: 1 + - uid: 473 + components: + - type: Transform + pos: -3.5,-8.5 + parent: 1 +- proto: WallReinforcedDiagonal + entities: + - uid: 298 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 9.5,-1.5 + parent: 1 + - uid: 300 + components: + - type: Transform + pos: -6.5,-0.5 + parent: 1 + - uid: 302 + components: + - type: Transform + pos: -8.5,-1.5 + parent: 1 + - uid: 307 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 11.5,-8.5 + parent: 1 + - uid: 308 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 4.5,2.5 + parent: 1 + - uid: 310 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 3.5,3.5 + parent: 1 + - uid: 311 + components: + - type: Transform + pos: -4.5,1.5 + parent: 1 + - uid: 312 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -10.5,-8.5 + parent: 1 + - uid: 316 + components: + - type: Transform + pos: -10.5,-3.5 + parent: 1 + - uid: 317 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 11.5,-3.5 + parent: 1 + - uid: 343 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 4.5,-9.5 + parent: 1 + - uid: 344 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -3.5,-9.5 + parent: 1 + - uid: 353 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 5.5,1.5 + parent: 1 + - uid: 361 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 7.5,-0.5 + parent: 1 +- proto: WallSolid + entities: + - uid: 15 + components: + - type: Transform + pos: 0.5,0.5 + parent: 1 + - uid: 63 + components: + - type: Transform + pos: 3.5,-3.5 + parent: 1 + - uid: 80 + components: + - type: Transform + pos: 6.5,-1.5 + parent: 1 + - uid: 101 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -4.5,-1.5 + parent: 1 + - uid: 134 + components: + - type: Transform + pos: -2.5,-5.5 + parent: 1 + - uid: 136 + components: + - type: Transform + pos: 2.5,-3.5 + parent: 1 + - uid: 137 + components: + - type: Transform + pos: -1.5,-5.5 + parent: 1 + - uid: 179 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 0.5,-5.5 + parent: 1 + - uid: 290 + components: + - type: Transform + pos: 0.5,-0.5 + parent: 1 + - uid: 359 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -3.5,-5.5 + parent: 1 + - uid: 434 + components: + - type: Transform + pos: -2.5,-1.5 + parent: 1 + - uid: 436 + components: + - type: Transform + pos: 0.5,-3.5 + parent: 1 + - uid: 438 + components: + - type: Transform + pos: 0.5,-1.5 + parent: 1 + - uid: 439 + components: + - type: Transform + pos: -1.5,-1.5 + parent: 1 + - uid: 441 + components: + - type: Transform + pos: 0.5,-2.5 + parent: 1 + - uid: 444 + components: + - type: Transform + pos: 0.5,2.5 + parent: 1 + - uid: 446 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 9.5,-3.5 + parent: 1 + - uid: 447 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 8.5,-3.5 + parent: 1 + - uid: 448 + components: + - type: Transform + pos: 0.5,1.5 + parent: 1 + - uid: 450 + components: + - type: Transform + pos: -3.5,-3.5 + parent: 1 + - uid: 452 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 7.5,-3.5 + parent: 1 + - uid: 454 + components: + - type: Transform + pos: -3.5,-2.5 + parent: 1 + - uid: 456 + components: + - type: Transform + pos: 5.5,-1.5 + parent: 1 + - uid: 457 + components: + - type: Transform + pos: 5.5,-2.5 + parent: 1 + - uid: 458 + components: + - type: Transform + pos: 5.5,-3.5 + parent: 1 + - uid: 459 + components: + - type: Transform + pos: 4.5,-3.5 + parent: 1 + - uid: 461 + components: + - type: Transform + pos: -3.5,-1.5 + parent: 1 + - uid: 463 + components: + - type: Transform + pos: -3.5,-4.5 + parent: 1 +- proto: WaterCooler + entities: + - uid: 161 + components: + - type: Transform + pos: 9.5,-4.5 + parent: 1 +- proto: Windoor + entities: + - uid: 487 + components: + - type: Transform + pos: 6.5,-3.5 + parent: 1 +- proto: Window + entities: + - uid: 282 + components: + - type: Transform + pos: 7.5,-4.5 + parent: 1 + - uid: 331 + components: + - type: Transform + pos: 7.5,-5.5 + parent: 1 +... diff --git a/Resources/Maps/Test/dev_map.yml b/Resources/Maps/Test/dev_map.yml index f00d7049a5..910a059ee7 100644 --- a/Resources/Maps/Test/dev_map.yml +++ b/Resources/Maps/Test/dev_map.yml @@ -4358,7 +4358,6 @@ entities: solutions: absorbed: temperature: 293.15 - canMix: False canReact: True maxVol: 50 name: null diff --git a/Resources/Maps/arena.yml b/Resources/Maps/arena.yml index 563011f75f..ab548d14f2 100644 --- a/Resources/Maps/arena.yml +++ b/Resources/Maps/arena.yml @@ -174553,13 +174553,6 @@ entities: - type: Transform pos: -31.493519,10.543685 parent: 6747 -- proto: WeaponRifleM90GrenadeLauncher - entities: - - uid: 8311 - components: - - type: Transform - pos: -14.458499,-2.5063553 - parent: 6747 - proto: WeaponShotgunKammerer entities: - uid: 1624 diff --git a/Resources/Maps/core.yml b/Resources/Maps/core.yml index 0f31cea837..fcea47a9e3 100644 --- a/Resources/Maps/core.yml +++ b/Resources/Maps/core.yml @@ -97,11 +97,11 @@ entities: version: 6 0,-2: ind: 0,-2 - tiles: aAAAAAAAaAAAAAAAXQAAAAADXQAAAAADaAAAAAACXQAAAAABXQAAAAADXQAAAAABaAAAAAABXQAAAAADaAAAAAADXQAAAAAAXQAAAAABXQAAAAAAXQAAAAADXQAAAAADTgAAAAABTgAAAAABaAAAAAACaAAAAAACaAAAAAABaAAAAAAAaAAAAAABaAAAAAACaAAAAAABXQAAAAACfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAXQAAAAACXQAAAAABXQAAAAAAXQAAAAAAaAAAAAADXQAAAAABXQAAAAABXQAAAAACXQAAAAADXQAAAAABfgAAAAAAHwAAAAAAJAAAAAAAJAAAAAABJAAAAAACJAAAAAACfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAXQAAAAAAXQAAAAABXQAAAAAAXQAAAAADXQAAAAABfgAAAAAAHwAAAAACJAAAAAABfgAAAAAAfgAAAAAAfgAAAAAAHwAAAAAAfgAAAAAAJAAAAAADegAAAAAAfgAAAAAAHwAAAAACHwAAAAAAHwAAAAACHwAAAAAAJAAAAAADfgAAAAAAHwAAAAADJAAAAAABfgAAAAAAfgAAAAAAfgAAAAAAHwAAAAADHwAAAAADegAAAAAAegAAAAAAfgAAAAAAHwAAAAAAHwAAAAACHwAAAAADHwAAAAABHwAAAAABfgAAAAAAHwAAAAACJAAAAAADfgAAAAAAfgAAAAAAfgAAAAAAHwAAAAACfgAAAAAAegAAAAAAegAAAAADfgAAAAAAfgAAAAAAfgAAAAAAHwAAAAABfgAAAAAAfgAAAAAAfgAAAAAAHwAAAAADJAAAAAABJAAAAAAAJAAAAAADJAAAAAADfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAXQAAAAADXQAAAAACaAAAAAABXQAAAAABHwAAAAABfgAAAAAAHwAAAAACJAAAAAABJAAAAAACJAAAAAAAJAAAAAABXQAAAAAAXQAAAAAAJAAAAAAAfgAAAAAAJAAAAAACaAAAAAADaAAAAAAAaAAAAAACXQAAAAAAHwAAAAADfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAHwAAAAABfgAAAAAATgAAAAACTgAAAAADJAAAAAABfgAAAAAAaAAAAAADaAAAAAAAaAAAAAABaAAAAAACXQAAAAACHwAAAAABHwAAAAACHwAAAAADHwAAAAAAHwAAAAACHwAAAAAAHwAAAAADXQAAAAAAXQAAAAABXQAAAAABaAAAAAADaAAAAAADaAAAAAACaAAAAAADaAAAAAACXQAAAAABHwAAAAACHwAAAAAAHwAAAAABHwAAAAABXQAAAAADXQAAAAADaAAAAAAAXQAAAAAAXQAAAAABXQAAAAADfgAAAAAAaAAAAAACaAAAAAADaAAAAAACaAAAAAADXQAAAAAAHwAAAAAAHwAAAAAAfgAAAAAAHwAAAAACXQAAAAADXQAAAAABaAAAAAAAHwAAAAACHwAAAAAAHwAAAAABfgAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAaAAAAAADXQAAAAACfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAXQAAAAADfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAaAAAAAACaAAAAAABaAAAAAABaAAAAAABXQAAAAABfgAAAAAAJAAAAAACJAAAAAAAJAAAAAABXQAAAAABXQAAAAADaAAAAAAAXQAAAAAAXQAAAAADXQAAAAACfgAAAAAAXQAAAAABXQAAAAABXQAAAAABXQAAAAADXQAAAAAAfgAAAAAAJAAAAAACHwAAAAACHwAAAAACXQAAAAAAXQAAAAADaAAAAAADXQAAAAABXQAAAAACXQAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAbAAAAAAAfgAAAAAAJAAAAAAAHwAAAAADHwAAAAABXQAAAAADXQAAAAAAaAAAAAAD + tiles: aAAAAAAAaAAAAAAAXQAAAAADXQAAAAADaAAAAAACXQAAAAABXQAAAAADXQAAAAABaAAAAAABXQAAAAADaAAAAAADXQAAAAAAXQAAAAABXQAAAAAAXQAAAAADXQAAAAADTgAAAAABTgAAAAABaAAAAAACaAAAAAACaAAAAAABaAAAAAAAaAAAAAABaAAAAAACaAAAAAABXQAAAAACfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAXQAAAAACXQAAAAABXQAAAAAAXQAAAAAAaAAAAAADXQAAAAABXQAAAAABXQAAAAACXQAAAAADXQAAAAABfgAAAAAAHwAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAXQAAAAAAXQAAAAABXQAAAAAAXQAAAAADXQAAAAABfgAAAAAAHwAAAAACfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAHwAAAAAAfgAAAAAAJAAAAAADegAAAAAAfgAAAAAAHwAAAAACHwAAAAAAHwAAAAACHwAAAAAAJAAAAAADfgAAAAAAHwAAAAADfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAHwAAAAADHwAAAAADegAAAAAAegAAAAAAfgAAAAAAHwAAAAAAHwAAAAACHwAAAAADHwAAAAABHwAAAAABfgAAAAAAHwAAAAACfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAHwAAAAACfgAAAAAAegAAAAAAegAAAAADfgAAAAAAfgAAAAAAfgAAAAAAHwAAAAABfgAAAAAAfgAAAAAAfgAAAAAAHwAAAAADJAAAAAABJAAAAAAAJAAAAAADJAAAAAADfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAXQAAAAADXQAAAAACaAAAAAABXQAAAAABHwAAAAABfgAAAAAAHwAAAAACJAAAAAABJAAAAAACJAAAAAAAJAAAAAABXQAAAAAAXQAAAAAAJAAAAAAAfgAAAAAAJAAAAAACaAAAAAADaAAAAAAAaAAAAAACXQAAAAAAHwAAAAADfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAHwAAAAABfgAAAAAATgAAAAACTgAAAAADJAAAAAABfgAAAAAAaAAAAAADaAAAAAAAaAAAAAABaAAAAAACXQAAAAACHwAAAAABHwAAAAACHwAAAAADHwAAAAAAHwAAAAACHwAAAAAAHwAAAAADXQAAAAAAXQAAAAABXQAAAAABaAAAAAADaAAAAAADaAAAAAACaAAAAAADaAAAAAACXQAAAAABHwAAAAACHwAAAAAAHwAAAAABHwAAAAABXQAAAAADXQAAAAADaAAAAAAAXQAAAAAAXQAAAAABXQAAAAADfgAAAAAAaAAAAAACaAAAAAADaAAAAAACaAAAAAADXQAAAAAAHwAAAAAAHwAAAAAAfgAAAAAAHwAAAAACXQAAAAADXQAAAAABaAAAAAAAHwAAAAACHwAAAAAAHwAAAAABfgAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAaAAAAAADXQAAAAACfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAXQAAAAADfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAaAAAAAACaAAAAAABaAAAAAABaAAAAAABXQAAAAABfgAAAAAAJAAAAAACJAAAAAAAJAAAAAABXQAAAAABXQAAAAADaAAAAAAAXQAAAAAAXQAAAAADXQAAAAACfgAAAAAAXQAAAAABXQAAAAABXQAAAAABXQAAAAADXQAAAAAAfgAAAAAAJAAAAAACHwAAAAACHwAAAAACXQAAAAAAXQAAAAADaAAAAAADXQAAAAABXQAAAAACXQAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAbAAAAAAAfgAAAAAAJAAAAAAAHwAAAAADHwAAAAABXQAAAAADXQAAAAAAaAAAAAAD version: 6 1,-2: ind: 1,-2 - tiles: XQAAAAAAXQAAAAABaAAAAAAAXQAAAAAAaAAAAAAAXQAAAAACfgAAAAAAHwAAAAACaAAAAAADaAAAAAABaAAAAAABaAAAAAADaAAAAAABHwAAAAABfgAAAAAAHwAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAXQAAAAADaAAAAAABXQAAAAABfgAAAAAAHwAAAAAAaAAAAAADaAAAAAAAaAAAAAADaAAAAAABaAAAAAABHwAAAAAAfgAAAAAAHwAAAAAAJAAAAAABHwAAAAACfgAAAAAAXQAAAAABaAAAAAACXQAAAAACfgAAAAAAHwAAAAAAaAAAAAAAaAAAAAABaAAAAAABXQAAAAADaAAAAAACHwAAAAADHwAAAAACHwAAAAACJAAAAAAAHwAAAAADfgAAAAAAXQAAAAADaAAAAAAAXQAAAAABfgAAAAAAHwAAAAADaAAAAAABaAAAAAABaAAAAAABaAAAAAADaAAAAAADHwAAAAABfgAAAAAAHwAAAAAAJAAAAAACHwAAAAABfgAAAAAAaAAAAAAAaAAAAAABaAAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAHwAAAAABJAAAAAADHwAAAAAAfgAAAAAAXQAAAAADaAAAAAACXQAAAAAAJAAAAAABXQAAAAAAXQAAAAADXQAAAAABXQAAAAABXQAAAAACXQAAAAAAXQAAAAACfgAAAAAAfgAAAAAAJAAAAAADHwAAAAABfgAAAAAAXQAAAAACaAAAAAACaAAAAAAAaAAAAAABaAAAAAACaAAAAAACaAAAAAABaAAAAAADaAAAAAABaAAAAAADXQAAAAACfgAAAAAAHwAAAAABJAAAAAAAHwAAAAADfgAAAAAAXQAAAAACXQAAAAADXQAAAAABXQAAAAACXQAAAAABXQAAAAAAXQAAAAADXQAAAAABXQAAAAABaAAAAAAAXQAAAAACfgAAAAAAXQAAAAABfgAAAAAAfgAAAAAAfgAAAAAAXQAAAAACXQAAAAABXQAAAAABfgAAAAAAXQAAAAACfgAAAAAAAwAAAAAAAwAAAAAAXQAAAAACaAAAAAADXQAAAAACfgAAAAAAXQAAAAABfgAAAAAAHwAAAAAAHwAAAAACXQAAAAABXQAAAAAAXQAAAAACfgAAAAAAXQAAAAABfgAAAAAAAwAAAAAAAwAAAAAAXQAAAAABaAAAAAACXQAAAAABfgAAAAAAfgAAAAAAfgAAAAAAHwAAAAAAHwAAAAAAXQAAAAACXQAAAAACXQAAAAAAXQAAAAACXQAAAAACfgAAAAAAAwAAAAAAAwAAAAAAXQAAAAABaAAAAAAAXQAAAAACfgAAAAAAXQAAAAAAfgAAAAAAHwAAAAAAJAAAAAAAXQAAAAACXQAAAAACXQAAAAADfgAAAAAAHwAAAAABfgAAAAAAAwAAAAAAAwAAAAAAXQAAAAAAaAAAAAABXQAAAAAAaAAAAAABXQAAAAABfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAXQAAAAABfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAXQAAAAABaAAAAAABaAAAAAABaAAAAAAAaAAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAHwAAAAABHwAAAAABHwAAAAABHwAAAAADfgAAAAAAXQAAAAABXQAAAAABXQAAAAACaAAAAAAAXQAAAAACfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAHwAAAAABHwAAAAAAHwAAAAABHwAAAAABfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAHwAAAAADHwAAAAACHwAAAAADHwAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfQAAAAAA + tiles: XQAAAAAAXQAAAAABaAAAAAAAXQAAAAAAaAAAAAAAXQAAAAACfgAAAAAAHwAAAAACaAAAAAADaAAAAAABaAAAAAABaAAAAAADaAAAAAABHwAAAAABfgAAAAAAHwAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAXQAAAAADaAAAAAABXQAAAAABfgAAAAAAHwAAAAAAaAAAAAADaAAAAAAAaAAAAAADaAAAAAABaAAAAAABHwAAAAAAfgAAAAAAHwAAAAAAfgAAAAAAHwAAAAACfgAAAAAAXQAAAAABaAAAAAACXQAAAAACfgAAAAAAHwAAAAAAaAAAAAAAaAAAAAABaAAAAAABXQAAAAADaAAAAAACHwAAAAADHwAAAAACHwAAAAACfgAAAAAAHwAAAAADfgAAAAAAXQAAAAADaAAAAAAAXQAAAAABfgAAAAAAHwAAAAADaAAAAAABaAAAAAABaAAAAAABaAAAAAADaAAAAAADHwAAAAABfgAAAAAAHwAAAAAAfgAAAAAAHwAAAAABfgAAAAAAaAAAAAAAaAAAAAABaAAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAHwAAAAABfgAAAAAAHwAAAAAAfgAAAAAAXQAAAAADaAAAAAACXQAAAAAAJAAAAAABXQAAAAAAXQAAAAADXQAAAAABXQAAAAABXQAAAAACXQAAAAAAXQAAAAACfgAAAAAAfgAAAAAAJAAAAAADHwAAAAABfgAAAAAAXQAAAAACaAAAAAACaAAAAAAAaAAAAAABaAAAAAACaAAAAAACaAAAAAABaAAAAAADaAAAAAABaAAAAAADXQAAAAACfgAAAAAAHwAAAAABJAAAAAAAHwAAAAADfgAAAAAAXQAAAAACXQAAAAADXQAAAAABXQAAAAACXQAAAAABXQAAAAAAXQAAAAADXQAAAAABXQAAAAABaAAAAAAAXQAAAAACfgAAAAAAXQAAAAABfgAAAAAAfgAAAAAAfgAAAAAAXQAAAAACXQAAAAABXQAAAAABfgAAAAAAXQAAAAACfgAAAAAAAwAAAAAAAwAAAAAAXQAAAAACaAAAAAADXQAAAAACfgAAAAAAXQAAAAABfgAAAAAAHwAAAAAAHwAAAAACXQAAAAABXQAAAAAAXQAAAAACfgAAAAAAXQAAAAABfgAAAAAAAwAAAAAAAwAAAAAAXQAAAAABaAAAAAACXQAAAAABfgAAAAAAfgAAAAAAfgAAAAAAHwAAAAAAHwAAAAAAXQAAAAACXQAAAAACXQAAAAAAXQAAAAACXQAAAAACfgAAAAAAAwAAAAAAAwAAAAAAXQAAAAABaAAAAAAAXQAAAAACfgAAAAAAXQAAAAAAfgAAAAAAHwAAAAAAJAAAAAAAXQAAAAACXQAAAAACXQAAAAADfgAAAAAAHwAAAAABfgAAAAAAAwAAAAAAAwAAAAAAXQAAAAAAaAAAAAABXQAAAAAAaAAAAAABXQAAAAABfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAXQAAAAABfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAXQAAAAABaAAAAAABaAAAAAABaAAAAAAAaAAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAHwAAAAABHwAAAAABHwAAAAABHwAAAAADfgAAAAAAXQAAAAABXQAAAAABXQAAAAACaAAAAAAAXQAAAAACfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAHwAAAAABHwAAAAAAHwAAAAABHwAAAAABfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAHwAAAAADHwAAAAACHwAAAAADHwAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfQAAAAAA version: 6 1,-1: ind: 1,-1 @@ -3793,7 +3793,6 @@ entities: 5754: 12,-22 5755: 15,-26 5756: 12,-26 - 5757: 12,-29 5758: 7,-30 5759: 8,-32 5760: 7,-32 @@ -3860,15 +3859,6 @@ entities: 6417: 39,-3 6418: 37,-3 6419: 37,-3 - - node: - cleanable: True - color: '#FFFFFF47' - id: Dirt - decals: - 6314: 15,-30 - 6315: 15,-30 - 6316: 16,-27 - 6317: 16,-27 - node: cleanable: True color: '#FFFFFFFF' @@ -5194,7 +5184,6 @@ entities: 4911: 13,-17 4912: 11,-30 4913: 11,-28 - 4914: 11,-27 4915: 11,-26 4916: 17,-26 4917: 17,-28 @@ -5955,15 +5944,12 @@ entities: 3363: 10,-16 3364: 10,-18 3365: 10,-18 - 3366: 12,-29 - 3367: 12,-28 3368: 12,-26 3369: 13,-25 3370: 14,-25 3371: 14,-26 3372: 15,-25 3373: 16,-26 - 3374: 16,-29 3375: -4,-36 3376: -4,-37 3377: -6,-37 @@ -6482,10 +6468,6 @@ entities: id: DirtHeavyMonotile decals: 2847: -44,17 - 6310: 13,-30 - 6311: 16,-30 - 6312: 12,-30 - 6313: 12,-30 - node: cleanable: True angle: -6.283185307179586 rad @@ -8333,12 +8315,6 @@ entities: decals: 6401: 49,-11 6402: 52,-11 - - node: - color: '#EFB34118' - id: WarnCornerSmallNE - decals: - 6325: 12,-30 - 6326: 12,-30 - node: color: '#EFB34131' id: WarnCornerSmallNE @@ -8347,11 +8323,6 @@ entities: 6471: 14,39 6472: 14,39 6473: 14,39 - - node: - color: '#EFB3416C' - id: WarnCornerSmallNE - decals: - 6324: 12,-30 - node: color: '#EFB34196' id: WarnCornerSmallNE @@ -8368,12 +8339,6 @@ entities: 6071: 51,-11 6748: 46,15 6846: 57,-5 - - node: - color: '#EFB34118' - id: WarnCornerSmallNW - decals: - 6327: 16,-30 - 6328: 16,-30 - node: color: '#EFB34131' id: WarnCornerSmallNW @@ -8382,11 +8347,6 @@ entities: 6467: 16,39 6468: 16,39 6469: 16,39 - - node: - color: '#EFB3416C' - id: WarnCornerSmallNW - decals: - 6323: 16,-30 - node: color: '#EFB34196' id: WarnCornerSmallNW @@ -8469,9 +8429,6 @@ entities: 85: -4,-19 116: -4,-16 119: -2,-15 - 189: 12,-27 - 190: 12,-28 - 191: 12,-29 265: 25,-16 266: 25,-15 276: 29,-13 @@ -8648,9 +8605,6 @@ entities: 88: -10,-17 89: -10,-16 128: 0,-21 - 186: 16,-27 - 187: 16,-28 - 188: 16,-29 194: 13,-21 195: 13,-20 196: 13,-19 @@ -8677,16 +8631,6 @@ entities: 6370: -33,-11 6743: 46,16 6824: 61,-4 - - node: - color: '#EFB34118' - id: WarnLineW - decals: - 6329: 13,-30 - 6330: 13,-30 - 6331: 14,-30 - 6332: 14,-30 - 6333: 15,-30 - 6334: 15,-30 - node: color: '#EFB34131' id: WarnLineW @@ -8695,13 +8639,6 @@ entities: 6451: 15,39 6452: 15,39 6453: 15,39 - - node: - color: '#EFB3416C' - id: WarnLineW - decals: - 6320: 13,-30 - 6321: 14,-30 - 6322: 15,-30 - node: color: '#EFB34196' id: WarnLineW @@ -17945,10 +17882,15 @@ entities: parent: 2 - proto: AmeJar entities: - - uid: 94 + - uid: 695 components: - type: Transform - pos: 17.51151,-27.35627 + pos: 15.659197,-24.407036 + parent: 2 + - uid: 1534 + components: + - type: Transform + pos: 15.346697,-24.39141 parent: 2 - proto: AmePartFlatpack entities: @@ -17997,6 +17939,61 @@ entities: - type: Transform pos: 16.69675,-24.555443 parent: 2 + - uid: 693 + components: + - type: Transform + pos: 16.299822,-24.36016 + parent: 2 + - uid: 694 + components: + - type: Transform + pos: 17.768572,-25.313286 + parent: 2 + - uid: 6126 + components: + - type: Transform + pos: 16.299822,-24.20391 + parent: 2 + - uid: 10573 + components: + - type: Transform + pos: 16.299822,-24.563286 + parent: 2 + - uid: 22532 + components: + - type: Transform + pos: 17.768572,-25.563286 + parent: 2 + - uid: 22533 + components: + - type: Transform + pos: 17.768572,-25.73516 + parent: 2 + - uid: 22534 + components: + - type: Transform + pos: 17.284197,-25.70391 + parent: 2 + - uid: 22535 + components: + - type: Transform + pos: 17.284197,-25.48516 + parent: 2 + - uid: 22536 + components: + - type: Transform + pos: 17.284197,-25.26641 + parent: 2 + - uid: 22538 + components: + - type: Transform + pos: 17.737322,-26.20391 + parent: 2 + - uid: 22539 + components: + - type: Transform + pos: 17.518572,-26.344536 + parent: 2 - proto: AmmoniaCanister entities: - uid: 22510 @@ -51029,50 +51026,37 @@ entities: - uid: 641 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 13.5,-26.5 - parent: 2 - - uid: 642 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 13.5,-27.5 + pos: 12.5,-28.5 parent: 2 - uid: 643 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 13.5,-28.5 + pos: 12.5,-27.5 parent: 2 - uid: 647 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 14.5,-26.5 + pos: 13.5,-29.5 parent: 2 - uid: 648 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 14.5,-27.5 + pos: 12.5,-29.5 parent: 2 - uid: 650 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 15.5,-27.5 + pos: 13.5,-27.5 parent: 2 - uid: 651 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 15.5,-28.5 + pos: 14.5,-26.5 parent: 2 - uid: 652 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 15.5,-26.5 + pos: 13.5,-28.5 parent: 2 - uid: 653 components: @@ -51212,6 +51196,11 @@ entities: rot: 1.5707963267948966 rad pos: 16.5,-13.5 parent: 2 + - uid: 692 + components: + - type: Transform + pos: 13.5,-26.5 + parent: 2 - uid: 753 components: - type: Transform @@ -51400,6 +51389,11 @@ entities: rot: -1.5707963267948966 rad pos: -22.5,25.5 parent: 2 + - uid: 2189 + components: + - type: Transform + pos: 12.5,-26.5 + parent: 2 - uid: 2199 components: - type: Transform @@ -51660,11 +51654,6 @@ entities: - type: Transform pos: 40.5,21.5 parent: 2 - - uid: 6126 - components: - - type: Transform - pos: 14.5,-28.5 - parent: 2 - uid: 6203 components: - type: Transform @@ -56376,6 +56365,61 @@ entities: - type: Transform pos: -6.5,-12.5 parent: 2 + - uid: 22521 + components: + - type: Transform + pos: 14.5,-27.5 + parent: 2 + - uid: 22522 + components: + - type: Transform + pos: 14.5,-28.5 + parent: 2 + - uid: 22523 + components: + - type: Transform + pos: 14.5,-29.5 + parent: 2 + - uid: 22524 + components: + - type: Transform + pos: 15.5,-29.5 + parent: 2 + - uid: 22525 + components: + - type: Transform + pos: 15.5,-28.5 + parent: 2 + - uid: 22526 + components: + - type: Transform + pos: 15.5,-27.5 + parent: 2 + - uid: 22527 + components: + - type: Transform + pos: 15.5,-26.5 + parent: 2 + - uid: 22528 + components: + - type: Transform + pos: 16.5,-26.5 + parent: 2 + - uid: 22529 + components: + - type: Transform + pos: 16.5,-27.5 + parent: 2 + - uid: 22530 + components: + - type: Transform + pos: 16.5,-28.5 + parent: 2 + - uid: 22531 + components: + - type: Transform + pos: 16.5,-29.5 + parent: 2 - proto: Chair entities: - uid: 678 @@ -56452,28 +56496,6 @@ entities: rot: 3.141592653589793 rad pos: 6.5,-24.5 parent: 2 - - uid: 692 - components: - - type: Transform - pos: 11.5,-26.5 - parent: 2 - - uid: 693 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 11.5,-28.5 - parent: 2 - - uid: 694 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 17.5,-28.5 - parent: 2 - - uid: 695 - components: - - type: Transform - pos: 17.5,-26.5 - parent: 2 - uid: 696 components: - type: Transform @@ -62611,10 +62633,10 @@ entities: parent: 2 - proto: DefaultStationBeaconAME entities: - - uid: 10573 + - uid: 642 components: - type: Transform - pos: 14.5,-27.5 + pos: 13.5,-25.5 parent: 2 - proto: DefaultStationBeaconAnomalyGenerator entities: @@ -68953,7 +68975,6 @@ entities: solutions: drink: temperature: 293.15 - canMix: False canReact: True maxVol: 50 name: null @@ -105392,7 +105413,7 @@ entities: - type: Transform pos: 14.5,32.5 parent: 2 -- proto: Oracle +- proto: OracleSpawner entities: - uid: 22459 components: @@ -105879,13 +105900,6 @@ entities: - type: Transform pos: -5.47442,23.570398 parent: 2 -- proto: PaperWrittenAMEScribbles - entities: - - uid: 1534 - components: - - type: Transform - pos: 11.480261,-27.434395 - parent: 2 - proto: ParticleAcceleratorComputerCircuitboard entities: - uid: 5471 @@ -110183,6 +110197,11 @@ entities: parent: 2 - proto: Rack entities: + - uid: 94 + components: + - type: Transform + pos: 15.5,-24.5 + parent: 2 - uid: 1605 components: - type: Transform @@ -110242,6 +110261,11 @@ entities: - type: Transform pos: -40.5,-33.5 parent: 2 + - uid: 2190 + components: + - type: Transform + pos: 17.5,-25.5 + parent: 2 - uid: 3526 components: - type: Transform @@ -110615,6 +110639,11 @@ entities: - type: Transform pos: 3.5,-4.5 parent: 2 + - uid: 22537 + components: + - type: Transform + pos: 17.5,-26.5 + parent: 2 - proto: RadiationCollectorNoTank entities: - uid: 607 @@ -121356,7 +121385,7 @@ entities: - type: Transform pos: -35.5,-42.5 parent: 2 -- proto: SophicScribe +- proto: SophicScribeSpawner entities: - uid: 16214 components: @@ -125063,18 +125092,6 @@ entities: - type: Transform pos: 5.5,-23.5 parent: 2 - - uid: 2189 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 11.5,-27.5 - parent: 2 - - uid: 2190 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 17.5,-27.5 - parent: 2 - uid: 2191 components: - type: Transform @@ -146796,13 +146813,6 @@ entities: - type: Transform pos: 2.553135,33.488186 parent: 2 -- proto: WeaponSubMachineGunWt550 - entities: - - uid: 5081 - components: - - type: Transform - pos: -11.600864,32.694817 - parent: 2 - proto: WeaponTurretSyndicateBroken entities: - uid: 853 diff --git a/Resources/Maps/gaxstation.yml b/Resources/Maps/gaxstation.yml new file mode 100644 index 0000000000..1e2d999ab2 --- /dev/null +++ b/Resources/Maps/gaxstation.yml @@ -0,0 +1,127301 @@ +meta: + format: 6 + postmapinit: false +tilemap: + 0: Space + 10: FloorAsteroidSandUnvariantized + 11: FloorAsteroidTile + 6: FloorAstroGrass + 17: FloorBlueCircuit + 20: FloorCarpetClown + 25: FloorClown + 4: FloorDark + 34: FloorDarkMono + 1: FloorDarkPavementVertical + 38: FloorDarkPlastic + 40: FloorDirt + 44: FloorFreezer + 5: FloorGlass + 50: FloorGrassLight + 51: FloorGrayConcrete + 54: FloorGreenCircuit + 58: FloorHydro + 60: FloorKitchen + 62: FloorLino + 64: FloorMetalDiamond + 74: FloorPlanetGrass + 75: FloorPlastic + 77: FloorReinforced + 89: FloorSteel + 90: FloorSteelBurnt + 92: FloorSteelCheckerLight + 93: FloorSteelDamaged + 104: FloorTechMaint + 3: FloorTechMaint2 + 117: FloorWhitePlastic + 118: FloorWood + 119: FloorWoodTile + 120: Lattice + 121: Plating + 2: PlatingBurnt + 124: PlatingDamaged +entities: +- proto: "" + entities: + - uid: 1 + components: + - type: MetaData + name: NTEB14 'GaxStation' TG-182 + - type: Transform + - type: Map + mapPaused: True + - type: PhysicsMap + - type: GridTree + - type: MovedGrids + - type: Broadphase + - type: OccluderTree + - type: LoadedMap + - uid: 2 + components: + - type: MetaData + name: grid + - type: Transform + pos: -0.52690125,-0.4910388 + parent: 1 + - type: MapGrid + chunks: + 0,0: + ind: 0,0 + tiles: eQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAWQAAAAAAWQAAAAAAQAAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAWQAAAAAAWQAAAAAAQAAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAQAAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAQAAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAJgAAAAAAJgAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAeQAAAAAAWQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAJgAAAAAAJgAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAaAAAAAAAeQAAAAAA + version: 6 + -1,0: + ind: -1,0 + tiles: WQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAQAAAAAAAWQAAAAAAeQAAAAAAWQAAAAAAeQAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAQAAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAQAAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAQAAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAeQAAAAAAWQAAAAAAeQAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAAAeQAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAJgAAAAAAJgAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAJgAAAAAAJgAAAAAA + version: 6 + -2,0: + ind: -2,0 + tiles: eQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAeQAAAAAAeAAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAJgAAAAAAeQAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAQAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAeQAAAAAA + version: 6 + -1,1: + ind: -1,1 + tiles: eQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAJgAAAAAAJgAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAJgAAAAAAJgAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAeQAAAAAAeQAAAAAAWQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAeQAAAAAAWQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAeQAAAAAAWQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAeQAAAAAAWQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAWQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAWQAAAAAA + version: 6 + 0,1: + ind: 0,1 + tiles: JgAAAAAAJgAAAAAAJgAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAJgAAAAAAJgAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAeQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAeQAAAAAAeQAAAAAAdQAAAAAAdQAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAeQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAeQAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAeQAAAAAAdQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAdQAAAAAAdQAAAAAAeQAAAAAAdQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAAAeQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAeQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAA + version: 6 + 0,2: + ind: 0,2 + tiles: WQAAAAAAWQAAAAAAeQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAeQAAAAAAJgAAAAAAJgAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAeQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAeQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAdQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAdQAAAAAAdQAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAWQAAAAAAeQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAWQAAAAAAeQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAeQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAeQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAeQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAJgAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAdQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAdQAAAAAAeQAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAeQAAAAAAJgAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAeQAAAAAAJgAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAeQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAeQAAAAAAJgAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAJgAAAAAAJgAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAeQAAAAAAJgAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAeQAAAAAAJgAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAdQAAAAAAdQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAeQAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAA + version: 6 + -1,2: + ind: -1,2 + tiles: eQAAAAAAeQAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAeQAAAAAAWQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAWQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAWQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAWQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAJgAAAAAAeQAAAAAAWQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAJgAAAAAAeQAAAAAAWQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAAAeQAAAAAAWQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAJgAAAAAAJgAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAJgAAAAAAJgAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAA + version: 6 + 1,1: + ind: 1,1 + tiles: eQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAdgAAAAAAdgAAAAAAdgAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAdgAAAAAAdgAAAAAAdgAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAdgAAAAAAdgAAAAAAdgAAAAAAdgAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAAAeQAAAAAAWQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAdQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAdQAAAAAAeQAAAAAAdQAAAAAAeQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAeQAAAAAAdQAAAAAAdQAAAAAASgAAAAAASgAAAAAAeQAAAAAAeQAAAAAAWQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAeQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAeQAAAAAAdQAAAAAAdQAAAAAASgAAAAAASgAAAAAASgAAAAAAeQAAAAAAWQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAASgAAAAAASgAAAAAASgAAAAAAeQAAAAAAWQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAeQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAeQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAeQAAAAAAWQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAeQAAAAAAeQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAeQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAeQAAAAAAWQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAeQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAeQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAWQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAeQAAAAAAWQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAeQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAeQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAeQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAeQAAAAAAWQAAAAAA + version: 6 + 1,2: + ind: 1,2 + tiles: JgAAAAAAJgAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAeQAAAAAAWQAAAAAAeQAAAAAAeQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAWQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAeQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAeQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAWQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAeQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAeQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAWQAAAAAAeQAAAAAAeQAAAAAAJgAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAeQAAAAAAWQAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAeQAAAAAAdQAAAAAAdQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAeQAAAAAAdQAAAAAAdQAAAAAAeQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAASgAAAAAASgAAAAAAeQAAAAAAWQAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAeQAAAAAAdQAAAAAAdQAAAAAAeQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAASgAAAAAASgAAAAAAeQAAAAAAWQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAJgAAAAAAJgAAAAAAeQAAAAAAdQAAAAAAdQAAAAAAeQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAeQAAAAAAWQAAAAAAJgAAAAAAJgAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAdQAAAAAAdQAAAAAAeQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAeQAAAAAAWQAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAdQAAAAAAeQAAAAAAeQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAeQAAAAAAWQAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAdQAAAAAAdQAAAAAAeQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAeQAAAAAAWQAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAeQAAAAAAWQAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAdQAAAAAAdQAAAAAAeQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAeQAAAAAAeQAAAAAAWQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAA + version: 6 + 2,1: + ind: 2,1 + tiles: WQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAASgAAAAAASgAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAJgAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAIgAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAdQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAIgAAAAAAeQAAAAAAdQAAAAAAdQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAIgAAAAAAeQAAAAAAdQAAAAAAdQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAdQAAAAAAdQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAeAAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAdQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAdQAAAAAAdQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAeQAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAeAAAAAAAeQAAAAAAEQAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAEQAAAAAAeQAAAAAAAAAAAAAAeQAAAAAAdQAAAAAAdQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAeAAAAAAAeQAAAAAAEQAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAEQAAAAAAeQAAAAAAeAAAAAAAeQAAAAAAdQAAAAAAdQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAAAAAAAAAeQAAAAAAEQAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAEQAAAAAAeQAAAAAAAAAAAAAAeQAAAAAAdQAAAAAAdQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAeAAAAAAAeQAAAAAAEQAAAAAAEQAAAAAAeQAAAAAAeQAAAAAAJgAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAeQAAAAAAdQAAAAAAdQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAeQAAAAAAAAAAAAAAeQAAAAAAdQAAAAAAdQAAAAAA + version: 6 + 2,2: + ind: 2,2 + tiles: WQAAAAAAWQAAAAAAeQAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAJgAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAOgAAAAAAeQAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAdgAAAAAAdgAAAAAAdgAAAAAAdgAAAAAAdgAAAAAAdgAAAAAAdgAAAAAAeQAAAAAAOgAAAAAAOgAAAAAAOgAAAAAAOgAAAAAAOgAAAAAAWQAAAAAAWQAAAAAAdgAAAAAAdgAAAAAAdgAAAAAAdgAAAAAAdgAAAAAAdgAAAAAAdgAAAAAAdgAAAAAAeQAAAAAAOgAAAAAAOgAAAAAAOgAAAAAAOgAAAAAAOgAAAAAAWQAAAAAAWQAAAAAAdgAAAAAAdgAAAAAAdgAAAAAAdgAAAAAAdgAAAAAAdgAAAAAAdgAAAAAAdgAAAAAAeQAAAAAAOgAAAAAAOgAAAAAAOgAAAAAAOgAAAAAAOgAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAdgAAAAAAdgAAAAAAdgAAAAAAdgAAAAAAdgAAAAAAdgAAAAAAdgAAAAAAeQAAAAAAOgAAAAAAOgAAAAAAOgAAAAAAOgAAAAAAOgAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAGQAAAAAAeQAAAAAAeQAAAAAAOgAAAAAAOgAAAAAAOgAAAAAAOgAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAGQAAAAAAGQAAAAAAGQAAAAAAeQAAAAAAOgAAAAAAOgAAAAAAOgAAAAAAOgAAAAAAWQAAAAAAWQAAAAAAXAAAAAAAXAAAAAAAXAAAAAAAXAAAAAAAXAAAAAAAeQAAAAAAGQAAAAAAGQAAAAAAFAAAAAAAeQAAAAAAOgAAAAAAOgAAAAAAOgAAAAAAOgAAAAAAWQAAAAAAWQAAAAAAXAAAAAAAXAAAAAAAXAAAAAAAXAAAAAAAXAAAAAAAeQAAAAAAGQAAAAAAFAAAAAAAFAAAAAAAeQAAAAAAOgAAAAAAOgAAAAAAOgAAAAAAOgAAAAAAWQAAAAAAWQAAAAAAXAAAAAAAXAAAAAAAXAAAAAAAXAAAAAAAXAAAAAAAeQAAAAAAFAAAAAAAFAAAAAAAFAAAAAAAeQAAAAAAOgAAAAAAOgAAAAAAOgAAAAAAOgAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAXAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAFAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAOgAAAAAAOgAAAAAA + version: 6 + 1,3: + ind: 1,3 + tiles: WQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAdgAAAAAAdgAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAJgAAAAAAeQAAAAAAdgAAAAAAdgAAAAAAdgAAAAAAdgAAAAAAdgAAAAAAdgAAAAAAdgAAAAAAdgAAAAAAdgAAAAAAdgAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAJgAAAAAAeQAAAAAAdgAAAAAAdgAAAAAAdgAAAAAAdgAAAAAAdgAAAAAAdgAAAAAAdgAAAAAAdgAAAAAAdgAAAAAAdgAAAAAAeQAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAJgAAAAAAeQAAAAAAdgAAAAAAdgAAAAAAdgAAAAAAdgAAAAAAdgAAAAAAdgAAAAAAdgAAAAAAdgAAAAAAdgAAAAAAdgAAAAAAeQAAAAAAeAAAAAAAeQAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAdgAAAAAAdgAAAAAAdgAAAAAAdgAAAAAAdgAAAAAAdgAAAAAAdgAAAAAAdgAAAAAAdgAAAAAAdgAAAAAAeQAAAAAAeAAAAAAAeQAAAAAAEQAAAAAAEQAAAAAAEQAAAAAAdgAAAAAAdgAAAAAAdgAAAAAAdgAAAAAAdgAAAAAAdgAAAAAAdgAAAAAAdgAAAAAAdgAAAAAAdgAAAAAAeQAAAAAAeAAAAAAAeQAAAAAAEQAAAAAAEQAAAAAAEQAAAAAAdgAAAAAAdgAAAAAAdgAAAAAAdgAAAAAAdgAAAAAAdgAAAAAAdgAAAAAAdgAAAAAAdgAAAAAAdgAAAAAAeQAAAAAAeAAAAAAAeQAAAAAAEQAAAAAAJgAAAAAAEQAAAAAAeQAAAAAAJgAAAAAAeQAAAAAAeQAAAAAAdgAAAAAAdgAAAAAAdgAAAAAAdgAAAAAAdgAAAAAAdgAAAAAAeQAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAeQAAAAAAdgAAAAAAdgAAAAAAdgAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAA + version: 6 + 0,3: + ind: 0,3 + tiles: WQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAeQAAAAAAdgAAAAAAdgAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAeQAAAAAAJgAAAAAAJgAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAIgAAAAAAeQAAAAAAdgAAAAAAdgAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAeQAAAAAAIgAAAAAAeQAAAAAAdgAAAAAAdgAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAeQAAAAAAeQAAAAAAdgAAAAAAdgAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAASwAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAeQAAAAAAeQAAAAAAeQAAAAAASwAAAAAAeQAAAAAAIgAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAdgAAAAAAdgAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAeQAAAAAAdgAAAAAAdgAAAAAAdgAAAAAAdgAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAJgAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAdgAAAAAAdgAAAAAAdgAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAPgAAAAAAPgAAAAAAPgAAAAAAPgAAAAAAPgAAAAAAPgAAAAAAPgAAAAAAeQAAAAAAdgAAAAAAdgAAAAAAdgAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAPgAAAAAAPgAAAAAAPgAAAAAAPgAAAAAAPgAAAAAAPgAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAPgAAAAAAPgAAAAAAPgAAAAAAPgAAAAAAPgAAAAAAPgAAAAAAJgAAAAAAJgAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAPgAAAAAAeQAAAAAAJgAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAJgAAAAAA + version: 6 + -1,3: + ind: -1,3 + tiles: WQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAJgAAAAAAJgAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAIgAAAAAAIgAAAAAAIgAAAAAAeQAAAAAAIgAAAAAAIgAAAAAAIgAAAAAAeQAAAAAAIgAAAAAAIgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAIgAAAAAAIgAAAAAAIgAAAAAAeQAAAAAAIgAAAAAAIgAAAAAAIgAAAAAAeQAAAAAAIgAAAAAAIgAAAAAAJgAAAAAAeQAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAeQAAAAAAIgAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAIgAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAIgAAAAAASwAAAAAASwAAAAAASwAAAAAASwAAAAAASwAAAAAASwAAAAAASwAAAAAASwAAAAAASwAAAAAASwAAAAAASwAAAAAASwAAAAAASwAAAAAASwAAAAAASwAAAAAASwAAAAAASwAAAAAASwAAAAAASwAAAAAASwAAAAAASwAAAAAASwAAAAAASwAAAAAASwAAAAAASwAAAAAASwAAAAAASwAAAAAASwAAAAAASwAAAAAASwAAAAAASwAAAAAASwAAAAAASwAAAAAASwAAAAAASwAAAAAASwAAAAAASwAAAAAASwAAAAAASwAAAAAASwAAAAAASwAAAAAASwAAAAAASwAAAAAASwAAAAAASwAAAAAASwAAAAAASwAAAAAASwAAAAAASwAAAAAASwAAAAAASwAAAAAASwAAAAAASwAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAeQAAAAAAeQAAAAAAdgAAAAAASwAAAAAASwAAAAAASwAAAAAASwAAAAAASwAAAAAAeQAAAAAAIgAAAAAAIgAAAAAAIgAAAAAAeQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAeQAAAAAAdgAAAAAAdgAAAAAASwAAAAAAeQAAAAAAeQAAAAAASwAAAAAASwAAAAAAIgAAAAAAIgAAAAAAIgAAAAAAIgAAAAAAeQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAeQAAAAAAdgAAAAAAdgAAAAAALAAAAAAALAAAAAAAeQAAAAAASwAAAAAASwAAAAAAeQAAAAAAIgAAAAAAIgAAAAAAIgAAAAAAeQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAeQAAAAAAdgAAAAAAdgAAAAAALAAAAAAALAAAAAAAeQAAAAAASwAAAAAASwAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAALAAAAAAALAAAAAAAeQAAAAAASwAAAAAASwAAAAAAIgAAAAAAIgAAAAAAeQAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAASwAAAAAASwAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAA + version: 6 + 2,3: + ind: 2,3 + tiles: WQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAOgAAAAAAOgAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAJgAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAJgAAAAAAeQAAAAAAAAAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAJgAAAAAAeQAAAAAAeAAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAeQAAAAAAAAAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAeQAAAAAAeAAAAAAAeQAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAeQAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAAAAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAeQAAAAAAeAAAAAAA + version: 6 + -2,1: + ind: -2,1 + tiles: eQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAWQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAeQAAAAAAWQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAA + version: 6 + -2,2: + ind: -2,2 + tiles: eQAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAJgAAAAAAEQAAAAAAeQAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAJgAAAAAAEQAAAAAAeQAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAJgAAAAAANgAAAAAAeQAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAJgAAAAAANgAAAAAAeQAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAJgAAAAAAEQAAAAAAeQAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAJgAAAAAAEQAAAAAAeQAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAJgAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAATQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAeQAAAAAATQAAAAAATQAAAAAATQAAAAAATQAAAAAATQAAAAAAeQAAAAAAJgAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeQAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAeQAAAAAATQAAAAAAJgAAAAAAJgAAAAAAJgAAAAAATQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAeQAAAAAATQAAAAAAJgAAAAAAJgAAAAAAJgAAAAAATQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAeQAAAAAAeQAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAAA + version: 6 + -3,2: + ind: -3,2 + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeAAAAAAAeQAAAAAAJgAAAAAAEQAAAAAAJgAAAAAAEQAAAAAABAAAAAAAEQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeQAAAAAAJgAAAAAAEQAAAAAAJgAAAAAAEQAAAAAAJgAAAAAAEQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeQAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAJgAAAAAAEQAAAAAAJgAAAAAAEQAAAAAAJgAAAAAAEQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeQAAAAAAJgAAAAAAEQAAAAAAJgAAAAAAEQAAAAAAJgAAAAAAEQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAAAAAAAAAeQAAAAAAAAAAAAAAeQAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + version: 6 + -3,1: + ind: -3,1 + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAJgAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAJgAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAJgAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAJgAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAJgAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAJgAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAJgAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAJgAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAJgAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAA + version: 6 + -3,0: + ind: -3,0 + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAeQAAAAAAJgAAAAAAJgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAJgAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAJgAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAJgAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAJgAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAJgAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAJgAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAJgAAAAAAeQAAAAAAeQAAAAAA + version: 6 + -3,-1: + ind: -3,-1 + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAA + version: 6 + -2,-1: + ind: -2,-1 + tiles: eAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeQAAAAAAWQAAAAAAWQAAAAAA + version: 6 + -2,3: + ind: -2,3 + tiles: AAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAWQAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAeQAAAAAAWQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAJgAAAAAAeQAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAeQAAAAAAdgAAAAAAdgAAAAAAdgAAAAAAeQAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAeQAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAeQAAAAAAdgAAAAAAdgAAAAAAdgAAAAAAeQAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAeQAAAAAAJgAAAAAAeQAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAeQAAAAAAdgAAAAAAdgAAAAAAdgAAAAAAeQAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAeQAAAAAAdgAAAAAAdgAAAAAAdgAAAAAAeQAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAeQAAAAAASwAAAAAAeQAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAeQAAAAAAdgAAAAAAdgAAAAAAdgAAAAAAeQAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAeQAAAAAASwAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAJgAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAdgAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAJgAAAAAAeQAAAAAAeQAAAAAASwAAAAAASwAAAAAASwAAAAAASwAAAAAASwAAAAAASwAAAAAASwAAAAAASwAAAAAASwAAAAAASwAAAAAASwAAAAAASwAAAAAASwAAAAAASwAAAAAASwAAAAAASwAAAAAASwAAAAAASwAAAAAASwAAAAAASwAAAAAASwAAAAAASwAAAAAASwAAAAAASwAAAAAASwAAAAAASwAAAAAASwAAAAAASwAAAAAASwAAAAAASwAAAAAASwAAAAAASwAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAASwAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAASwAAAAAAeQAAAAAAWQAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAASwAAAAAASwAAAAAASwAAAAAASwAAAAAASwAAAAAAeQAAAAAALAAAAAAALAAAAAAALAAAAAAALAAAAAAAWQAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAASwAAAAAASwAAAAAASwAAAAAASwAAAAAASwAAAAAAeQAAAAAALAAAAAAALAAAAAAALAAAAAAALAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAAAeQAAAAAAeQAAAAAASwAAAAAASwAAAAAASwAAAAAASwAAAAAAeQAAAAAAeQAAAAAALAAAAAAALAAAAAAALAAAAAAALAAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAASwAAAAAASwAAAAAASwAAAAAASwAAAAAAeQAAAAAASwAAAAAASwAAAAAASwAAAAAASwAAAAAASwAAAAAA + version: 6 + -1,4: + ind: -1,4 + tiles: eQAAAAAAIgAAAAAAIgAAAAAASwAAAAAASwAAAAAAIgAAAAAAIgAAAAAAeQAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAIgAAAAAAeQAAAAAAeQAAAAAAJgAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAJgAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAIgAAAAAAIgAAAAAAeQAAAAAAeQAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAeQAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAeQAAAAAALAAAAAAAIgAAAAAAIgAAAAAAeQAAAAAAeQAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAIgAAAAAAIgAAAAAAeQAAAAAAeQAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAeQAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAALAAAAAAAIgAAAAAAIgAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAJgAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAJgAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAIgAAAAAAIgAAAAAAeQAAAAAAeQAAAAAAJgAAAAAAJgAAAAAAeQAAAAAAeAAAAAAAeQAAAAAAJgAAAAAAJgAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAMgAAAAAAMgAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAJgAAAAAAeQAAAAAAeAAAAAAAeQAAAAAAJgAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAMgAAAAAAMgAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAMgAAAAAACgAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAMgAAAAAACgAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAMgAAAAAAMgAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAMgAAAAAAMgAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAA + version: 6 + -2,4: + ind: -2,4 + tiles: WQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAWQAAAAAAeQAAAAAASwAAAAAASwAAAAAASwAAAAAASwAAAAAAeQAAAAAASwAAAAAASwAAAAAASwAAAAAASwAAAAAASwAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAALAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAIgAAAAAAIgAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAALAAAAAAALAAAAAAALAAAAAAALAAAAAAALAAAAAAAeQAAAAAAIgAAAAAAIgAAAAAAIgAAAAAAIgAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAWQAAAAAAeQAAAAAALAAAAAAALAAAAAAALAAAAAAALAAAAAAALAAAAAAAeQAAAAAAIgAAAAAAIgAAAAAAIgAAAAAAIgAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAALAAAAAAALAAAAAAALAAAAAAALAAAAAAALAAAAAAAeQAAAAAAIgAAAAAAIgAAAAAAIgAAAAAAIgAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAALAAAAAAALAAAAAAALAAAAAAALAAAAAAALAAAAAAAeQAAAAAAIgAAAAAAIgAAAAAAIgAAAAAAIgAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAALAAAAAAALAAAAAAALAAAAAAALAAAAAAALAAAAAAAeQAAAAAAIgAAAAAAIgAAAAAAIgAAAAAAIgAAAAAABgAAAAAABgAAAAAABgAAAAAABgAAAAAABgAAAAAAeQAAAAAALAAAAAAALAAAAAAALAAAAAAALAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAABgAAAAAABgAAAAAABgAAAAAABgAAAAAABgAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAABgAAAAAABgAAAAAABgAAAAAABgAAAAAABgAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAABgAAAAAABgAAAAAABgAAAAAABgAAAAAABgAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAABgAAAAAABgAAAAAABgAAAAAABgAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAABgAAAAAABgAAAAAABgAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAABgAAAAAABgAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAA + version: 6 + -3,3: + ind: -3,3 + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAJgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAJgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAAAAAAAAAeQAAAAAAJgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAASwAAAAAASwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAeQAAAAAASwAAAAAASwAAAAAASwAAAAAASwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeAAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAeQAAAAAASwAAAAAASwAAAAAASwAAAAAASwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAASwAAAAAASwAAAAAASwAAAAAASwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAALAAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAALAAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAALAAAAAAAeQAAAAAAeQAAAAAAWQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAALAAAAAAALAAAAAAAeQAAAAAAWQAAAAAA + version: 6 + -3,4: + ind: -3,4 + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAALAAAAAAALAAAAAAAWQAAAAAAWQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeQAAAAAANgAAAAAANgAAAAAAeQAAAAAAWQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeQAAAAAAEQAAAAAAEQAAAAAAWQAAAAAAWQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeAAAAAAAeQAAAAAAEQAAAAAAEQAAAAAAWQAAAAAAWQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAANgAAAAAANgAAAAAAWQAAAAAAWQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAeQAAAAAABgAAAAAABgAAAAAABgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAeQAAAAAABgAAAAAABgAAAAAABgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAABgAAAAAABgAAAAAABgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeAAAAAAAeQAAAAAABgAAAAAABgAAAAAABgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAABgAAAAAABgAAAAAABgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeAAAAAAAeQAAAAAAeQAAAAAABgAAAAAABgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAeQAAAAAABgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAA + version: 6 + 0,4: + ind: 0,4 + tiles: WQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAALAAAAAAALAAAAAAALAAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAXAAAAAAAXAAAAAAAeQAAAAAALAAAAAAALAAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAeQAAAAAALAAAAAAALAAAAAAALAAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAXAAAAAAAXAAAAAAALAAAAAAALAAAAAAALAAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAeQAAAAAALAAAAAAALAAAAAAALAAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAXAAAAAAAXAAAAAAAeQAAAAAALAAAAAAALAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAXAAAAAAAXAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAMgAAAAAACgAAAAAACgAAAAAACgAAAAAACgAAAAAACgAAAAAACgAAAAAACgAAAAAACgAAAAAAMgAAAAAAMgAAAAAAMgAAAAAAMgAAAAAAeQAAAAAAeQAAAAAAeQAAAAAACgAAAAAACgAAAAAACgAAAAAACgAAAAAACgAAAAAACgAAAAAACgAAAAAACgAAAAAACgAAAAAACgAAAAAACgAAAAAACgAAAAAAMgAAAAAAeQAAAAAAeQAAAAAAeQAAAAAACgAAAAAACgAAAAAACgAAAAAACgAAAAAACgAAAAAACgAAAAAAMgAAAAAAMgAAAAAAMgAAAAAAMgAAAAAAMgAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAACgAAAAAACgAAAAAACgAAAAAACgAAAAAACgAAAAAACgAAAAAAMgAAAAAAMgAAAAAAMgAAAAAAMgAAAAAAMgAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAACgAAAAAACgAAAAAACgAAAAAACgAAAAAACgAAAAAACgAAAAAACgAAAAAAMgAAAAAAMgAAAAAAMgAAAAAAMgAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAMgAAAAAACgAAAAAACgAAAAAACgAAAAAACgAAAAAACgAAAAAACgAAAAAACgAAAAAAMgAAAAAAMgAAAAAAMgAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAAAWQAAAAAACgAAAAAACgAAAAAACgAAAAAAKAAAAAAACgAAAAAACgAAAAAAMgAAAAAAMgAAAAAAMgAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAAAWQAAAAAACgAAAAAAMgAAAAAAMgAAAAAAMgAAAAAAMgAAAAAACgAAAAAACgAAAAAAMgAAAAAAMgAAAAAAeQAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAMgAAAAAAMgAAAAAAMgAAAAAAMgAAAAAAMgAAAAAAMgAAAAAACgAAAAAACgAAAAAAMgAAAAAAeQAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAACgAAAAAACgAAAAAACgAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAA + version: 6 + 1,4: + ind: 1,4 + tiles: JgAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAaAAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAaAAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAaAAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAaAAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAaAAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAA + version: 6 + 0,5: + ind: 0,5 + tiles: eAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAAAAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + version: 6 + 1,0: + ind: 1,0 + tiles: eQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAJgAAAAAAJgAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAaAAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAEQAAAAAAEQAAAAAAEQAAAAAAeQAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAaAAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAEQAAAAAANgAAAAAAEQAAAAAAeQAAAAAAJgAAAAAAJgAAAAAAeQAAAAAAeQAAAAAAJgAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAJgAAAAAAJgAAAAAAeQAAAAAAdQAAAAAAdQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAdQAAAAAAdQAAAAAAaAAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAeQAAAAAAdQAAAAAAdQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAeAAAAAAATQAAAAAATQAAAAAATQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAeAAAAAAATQAAAAAATQAAAAAATQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAeAAAAAAATQAAAAAATQAAAAAATQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAdgAAAAAAdgAAAAAAdgAAAAAAeQAAAAAAeQAAAAAAdgAAAAAAdgAAAAAAdgAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAdgAAAAAAdgAAAAAAdgAAAAAAdgAAAAAAeQAAAAAAeQAAAAAAdgAAAAAAdgAAAAAAdgAAAAAAdgAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAA + version: 6 + 0,-1: + ind: 0,-1 + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAAAAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAA + version: 6 + 1,-1: + ind: 1,-1 + tiles: AAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAJgAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAJgAAAAAAeQAAAAAAeQAAAAAAeQAAAAAATQAAAAAANgAAAAAANgAAAAAANgAAAAAANgAAAAAATQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAJgAAAAAAeQAAAAAAeQAAAAAANgAAAAAATQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAJgAAAAAAeQAAAAAAeQAAAAAANgAAAAAAEQAAAAAAEQAAAAAAEQAAAAAAEQAAAAAANgAAAAAAeQAAAAAATQAAAAAATQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAJgAAAAAAeQAAAAAAeQAAAAAANgAAAAAAEQAAAAAAEQAAAAAAEQAAAAAAEQAAAAAANgAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAJgAAAAAAeQAAAAAAeQAAAAAANgAAAAAAEQAAAAAAEQAAAAAAEQAAAAAAEQAAAAAANgAAAAAAeQAAAAAATQAAAAAATQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAJgAAAAAAeQAAAAAAeQAAAAAANgAAAAAATQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAJgAAAAAAeQAAAAAAeQAAAAAAeQAAAAAATQAAAAAANgAAAAAANgAAAAAANgAAAAAANgAAAAAATQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAJgAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAJgAAAAAAJgAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeQAAAAAAeAAAAAAAeQAAAAAAeAAAAAAAeQAAAAAAeAAAAAAAeQAAAAAAeAAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAA + version: 6 + 2,-1: + ind: 2,-1 + tiles: eQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAJgAAAAAAJgAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAJgAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAATQAAAAAATQAAAAAATQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAJgAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAATQAAAAAATQAAAAAATQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAJgAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAJgAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAATQAAAAAATQAAAAAATQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAJgAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeAAAAAAATQAAAAAATQAAAAAATQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAJgAAAAAAeAAAAAAAAAAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAeAAAAAAAeQAAAAAATQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAJgAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeQAAAAAATQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAJgAAAAAAJgAAAAAAeAAAAAAAAAAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAeAAAAAAAeQAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAATQAAAAAATQAAAAAATQAAAAAAeQAAAAAATQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAATQAAAAAATQAAAAAATQAAAAAAeQAAAAAATQAAAAAAeQAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAeQAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAATQAAAAAATQAAAAAATQAAAAAAeQAAAAAATQAAAAAAeQAAAAAAJgAAAAAAJgAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAATQAAAAAATQAAAAAATQAAAAAA + version: 6 + 2,0: + ind: 2,0 + tiles: eQAAAAAATQAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAATQAAAAAATQAAAAAATQAAAAAAeQAAAAAAeQAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAATQAAAAAATQAAAAAATQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAJgAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAATQAAAAAATQAAAAAATQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAATQAAAAAATQAAAAAATQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAATQAAAAAATQAAAAAATQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAdQAAAAAAeQAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAdQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAdQAAAAAAeQAAAAAAeQAAAAAAJgAAAAAAdQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAdQAAAAAAWQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAdQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAWQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAATQAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAWQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAeQAAAAAATQAAAAAATQAAAAAATQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAATQAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAWQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAAAdQAAAAAAdQAAAAAAWQAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAWQAAAAAAdQAAAAAAdQAAAAAAWQAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAeQAAAAAAdQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAeQAAAAAAeQAAAAAAWQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAA + version: 6 + 3,1: + ind: 3,1 + tiles: dQAAAAAAdQAAAAAAeQAAAAAAXAAAAAAAXAAAAAAAXAAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAJgAAAAAAJgAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAAAdQAAAAAAdQAAAAAAXAAAAAAAXAAAAAAAXAAAAAAAXAAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAJgAAAAAAJgAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAdQAAAAAAdQAAAAAAeQAAAAAAXAAAAAAAXAAAAAAAXAAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAdQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAdQAAAAAAeQAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAdQAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAdQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAdQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAdQAAAAAAeQAAAAAAWQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAeQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAeQAAAAAAeQAAAAAAWQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAAAdQAAAAAAdQAAAAAAeQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAeQAAAAAAeQAAAAAAWQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAeQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAdQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAdQAAAAAAeQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAeQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAdQAAAAAAeQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAeQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAA + version: 6 + 3,0: + ind: 3,0 + tiles: dQAAAAAAdQAAAAAATQAAAAAATQAAAAAATQAAAAAAdQAAAAAAdQAAAAAATQAAAAAATQAAAAAATQAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAdQAAAAAAdQAAAAAATQAAAAAATQAAAAAATQAAAAAAdQAAAAAAdQAAAAAATQAAAAAATQAAAAAATQAAAAAAeQAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAWQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAATQAAAAAATQAAAAAATQAAAAAAeQAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAWQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAATQAAAAAATQAAAAAATQAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAWQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAATQAAAAAATQAAAAAATQAAAAAAeQAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAWQAAAAAAeQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAWQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAEQAAAAAAEQAAAAAAEQAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAWQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAeQAAAAAAEQAAAAAAEQAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAdQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAeQAAAAAAJgAAAAAAJgAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAeAAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAdQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAdQAAAAAAdQAAAAAAeQAAAAAAXAAAAAAAXAAAAAAAXAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAAAdQAAAAAAdQAAAAAAeQAAAAAAXAAAAAAAXAAAAAAAXAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAAAdQAAAAAAdQAAAAAAeQAAAAAAXAAAAAAAXAAAAAAAXAAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAJgAAAAAAJgAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAAA + version: 6 + 3,2: + ind: 3,2 + tiles: eQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAMgAAAAAAMgAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAOgAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAeQAAAAAAOgAAAAAAOgAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAeQAAAAAAOgAAAAAAOgAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAeQAAAAAAOgAAAAAAeQAAAAAAWQAAAAAAPAAAAAAAPAAAAAAAPAAAAAAAPAAAAAAAPAAAAAAAPAAAAAAAPAAAAAAAJgAAAAAAeQAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAeQAAAAAAOgAAAAAAeQAAAAAAOgAAAAAAeQAAAAAAeQAAAAAAPAAAAAAAeQAAAAAAPAAAAAAAPAAAAAAAPAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAdwAAAAAAeQAAAAAAeQAAAAAAOgAAAAAAOgAAAAAAOgAAAAAAeQAAAAAAPAAAAAAAPAAAAAAAPAAAAAAAPAAAAAAAPAAAAAAAPAAAAAAAeQAAAAAAdwAAAAAAdwAAAAAAdwAAAAAAdwAAAAAAeQAAAAAAOgAAAAAAOgAAAAAAOgAAAAAAPAAAAAAAPAAAAAAAPAAAAAAAPAAAAAAAPAAAAAAAPAAAAAAAPAAAAAAAeQAAAAAAdwAAAAAAdwAAAAAAdwAAAAAAdwAAAAAAeQAAAAAAOgAAAAAAOgAAAAAAOgAAAAAAPAAAAAAAPAAAAAAAPAAAAAAAPAAAAAAAPAAAAAAAPAAAAAAAPAAAAAAAeQAAAAAAdwAAAAAAdwAAAAAAdwAAAAAAdwAAAAAAeQAAAAAAOgAAAAAAOgAAAAAAOgAAAAAAPAAAAAAAPAAAAAAAPAAAAAAAPAAAAAAAPAAAAAAAPAAAAAAAPAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAOgAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAPAAAAAAAPAAAAAAAPAAAAAAAPAAAAAAAPAAAAAAAPAAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAeQAAAAAAOgAAAAAAOgAAAAAAOgAAAAAAeQAAAAAAeQAAAAAAeQAAAAAALAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAA + version: 6 + 3,-1: + ind: 3,-1 + tiles: AAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAeQAAAAAAeAAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAATQAAAAAATQAAAAAATQAAAAAATQAAAAAATQAAAAAAeQAAAAAAeAAAAAAAeQAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAATQAAAAAATQAAAAAATQAAAAAATQAAAAAATQAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAeQAAAAAAeAAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAATQAAAAAATQAAAAAATQAAAAAATQAAAAAATQAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAATQAAAAAAeQAAAAAAfAAAAAAAfAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAATQAAAAAAeQAAAAAAeQAAAAAAfAAAAAAAfAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAATQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAATQAAAAAATQAAAAAATQAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAeAAAAAAAeQAAAAAAdQAAAAAAdQAAAAAATQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAAdQAAAAAATQAAAAAATQAAAAAATQAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAdQAAAAAAdQAAAAAATQAAAAAATQAAAAAATQAAAAAAdQAAAAAAdQAAAAAATQAAAAAATQAAAAAATQAAAAAAeQAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdQAAAAAAdQAAAAAATQAAAAAATQAAAAAATQAAAAAAdQAAAAAAdQAAAAAATQAAAAAATQAAAAAATQAAAAAAeQAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAA + version: 6 + 4,2: + ind: 4,2 + tiles: WQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAeQAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAeQAAAAAAJgAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAeQAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAeQAAAAAAJgAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAMgAAAAAAMgAAAAAAJgAAAAAAJgAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAMgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAeQAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAMgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAeQAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAMgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAeQAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAJgAAAAAAJgAAAAAAeQAAAAAAJgAAAAAAJgAAAAAAeQAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAJgAAAAAAJgAAAAAAeQAAAAAAJgAAAAAAJgAAAAAAeQAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAJgAAAAAAJgAAAAAAeQAAAAAAJgAAAAAAJgAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAA + version: 6 + 4,1: + ind: 4,1 + tiles: WQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAJgAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAeQAAAAAALAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAJgAAAAAABQAAAAAABQAAAAAAJgAAAAAAJgAAAAAAeQAAAAAALAAAAAAAeQAAAAAAdwAAAAAAdwAAAAAAdwAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAJgAAAAAABQAAAAAABQAAAAAAJgAAAAAAJgAAAAAAeQAAAAAALAAAAAAALAAAAAAAdwAAAAAAdwAAAAAAdwAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAJgAAAAAABQAAAAAABQAAAAAAdwAAAAAAdwAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAdwAAAAAAdwAAAAAAdwAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAJgAAAAAAJgAAAAAABQAAAAAABQAAAAAAdwAAAAAAdwAAAAAAdwAAAAAAdwAAAAAAdwAAAAAAeQAAAAAAdwAAAAAAeQAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAJgAAAAAABQAAAAAABQAAAAAAdwAAAAAAdwAAAAAAdwAAAAAAdwAAAAAAdwAAAAAAdwAAAAAAdwAAAAAAdwAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAJgAAAAAABQAAAAAABQAAAAAAdwAAAAAAdwAAAAAAdwAAAAAAdwAAAAAAdwAAAAAAdwAAAAAAdwAAAAAAdwAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAdwAAAAAAdwAAAAAAdwAAAAAAdwAAAAAAdwAAAAAAdwAAAAAAdwAAAAAAdwAAAAAAdwAAAAAAdwAAAAAAdwAAAAAAdwAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAdwAAAAAAdwAAAAAAdwAAAAAAdwAAAAAAdwAAAAAAdwAAAAAAdwAAAAAAdwAAAAAAdwAAAAAAdwAAAAAAdwAAAAAAeQAAAAAA + version: 6 + 4,0: + ind: 4,0 + tiles: WQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAeAAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAAAAAAAAAAAAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAWQAAAAAAeQAAAAAAAAAAAAAAeAAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAJgAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAAAAAAAAAAAAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAJgAAAAAAeQAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAJgAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAAAAAAAAAAAAAAAAA + version: 6 + 4,-1: + ind: 4,-1 + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeQAAAAAAAAAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAA + version: 6 + 3,-2: + ind: 3,-2 + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + version: 6 + 2,-2: + ind: 2,-2 + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeQAAAAAAAAAAAAAAeQAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAJgAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAA + version: 6 + 2,4: + ind: 2,4 + tiles: eQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAfAAAAAAAfAAAAAAAeQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAeQAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAgAAAAAAeQAAAAAAaAAAAAAAfAAAAAAAfAAAAAAAeQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAeQAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAeQAAAAAAAgAAAAAAAgAAAAAAaAAAAAAAeQAAAAAAfAAAAAAAeQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAeQAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + version: 6 + 2,5: + ind: 2,5 + tiles: AAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + version: 6 + -2,-2: + ind: -2,-2 + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + version: 6 + -3,-2: + ind: -3,-2 + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAA + version: 6 + 1,5: + ind: 1,5 + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + version: 6 + 3,3: + ind: 3,3 + tiles: OgAAAAAAOgAAAAAAOgAAAAAAeQAAAAAALAAAAAAALAAAAAAALAAAAAAALAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAALAAAAAAALAAAAAAALAAAAAAALAAAAAAALAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAALAAAAAAALAAAAAAALAAAAAAALAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAeQAAAAAALAAAAAAALAAAAAAALAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAeQAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAJgAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAJgAAAAAAJgAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAaAAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAWQAAAAAAWQAAAAAAaAAAAAAAaAAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAJgAAAAAAJgAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAJgAAAAAAJgAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAJgAAAAAAeQAAAAAAWQAAAAAAeQAAAAAA + version: 6 + 4,3: + ind: 4,3 + tiles: WQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAAwAAAAAAAwAAAAAAAwAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAwAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAAwAAAAAAAwAAAAAAAwAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAeQAAAAAAAwAAAAAAAwAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAAwAAAAAAAwAAAAAAAwAAAAAAAwAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAAwAAAAAAAwAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAAwAAAAAAAwAAAAAAAwAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAwAAAAAAAwAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAAwAAAAAAAwAAAAAAAwAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAwAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAMgAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAATQAAAAAATQAAAAAATQAAAAAATQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAATQAAAAAATQAAAAAATQAAAAAATQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAATQAAAAAATQAAAAAATQAAAAAATQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAATQAAAAAATQAAAAAATQAAAAAATQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAAAeQAAAAAAWQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAA + version: 6 + 3,4: + ind: 3,4 + tiles: AAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAJgAAAAAAeQAAAAAAWQAAAAAAeQAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAJgAAAAAAeQAAAAAAWQAAAAAAeQAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + version: 6 + 4,4: + ind: 4,4 + tiles: eAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAWQAAAAAAeQAAAAAAWQAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeQAAAAAAWQAAAAAAeQAAAAAAWQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeAAAAAAAeQAAAAAAeAAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + version: 6 + 5,3: + ind: 5,3 + tiles: eQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATQAAAAAATQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATQAAAAAATQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATQAAAAAATQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATQAAAAAATQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + version: 6 + 5,2: + ind: 5,2 + tiles: JgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAeQAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAJgAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAJgAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + version: 6 + 5,1: + ind: 5,1 + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdwAAAAAAdwAAAAAAdwAAAAAAdwAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdwAAAAAAdwAAAAAAdwAAAAAAdwAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdwAAAAAAdwAAAAAAdwAAAAAAdwAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdwAAAAAAdwAAAAAAdwAAAAAAdwAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdwAAAAAAdwAAAAAAdwAAAAAAdwAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdwAAAAAAdwAAAAAAdwAAAAAAdwAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdwAAAAAAdwAAAAAAdwAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAJgAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAeQAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + version: 6 + 5,0: + ind: 5,0 + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeAAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + version: 6 + -1,-1: + ind: -1,-1 + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + version: 6 + -2,5: + ind: -2,5 + tiles: eAAAAAAAeQAAAAAAeAAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeAAAAAAAeQAAAAAAeAAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + version: 6 + -1,5: + ind: -1,5 + tiles: eAAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + version: 6 + 1,-2: + ind: 1,-2 + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAJgAAAAAAJgAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAA + version: 6 + 0,-2: + ind: 0,-2 + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAA + version: 6 + 5,-1: + ind: 5,-1 + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAAAAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + version: 6 + -3,5: + ind: -3,5 + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeAAAAAAAeQAAAAAAeAAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + 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: + - node: + angle: -1.5707963267948966 rad + color: '#FFFFFFFF' + id: Arrows + decals: + 4702: 34,0 + - node: + color: '#FFFFFFFF' + id: Arrows + decals: + 4701: 33,-2 + - node: + angle: -3.141592653589793 rad + color: '#4B709CFF' + id: ArrowsGreyscale + decals: + 4863: -6,20 + 4864: -5,20 + - node: + angle: -1.5707963267948966 rad + color: '#4B709CFF' + id: ArrowsGreyscale + decals: + 4867: -4,21 + 4868: -3,21 + - node: + angle: -1.5707963267948966 rad + color: '#9C2020FF' + id: ArrowsGreyscale + decals: + 4865: -4,19 + 4866: -3,19 + - node: + color: '#9C2020FF' + id: ArrowsGreyscale + decals: + 4861: -6,20 + 4862: -5,20 + - node: + color: '#FFFFFFFF' + id: Bot + decals: + 0: -14,9 + 1649: -14,11 + 1650: -13,11 + 1651: -14,14 + 1652: -14,14 + 1653: -13,14 + 1654: -13,13 + 1655: -14,13 + 1656: -10,14 + 1657: -10,13 + 1658: -9,13 + 1659: -9,14 + 1691: -20,20 + 1692: -20,21 + 1693: -20,22 + 1694: -21,22 + 1695: -21,21 + 1696: -21,23 + 1697: -20,23 + 1698: -18,23 + 1699: -18,22 + 1700: -18,21 + 1701: -18,20 + 1704: -4,3 + 1705: -4,4 + 1706: -4,5 + 1707: 0,3 + 1708: 0,4 + 1709: 0,5 + 1710: 4,3 + 1711: 4,4 + 1712: 4,5 + 1750: -26,66 + 1751: -26,67 + 1752: -26,69 + 1753: -26,70 + 1754: -26,71 + 1755: -23,71 + 1926: 43,19 + 1927: 44,20 + 1928: 44,21 + 1934: 40,19 + 1935: 40,20 + 1938: 32,16 + 1939: 33,15 + 1940: 32,15 + 1941: 33,16 + 1942: 35,13 + 1943: 36,13 + 1944: 36,17 + 1945: 35,17 + 1946: 36,14 + 1947: 34,13 + 1948: 34,14 + 1949: 34,16 + 1950: 32,14 + 2003: 57,0 + 2004: 57,-3 + 2005: 57,3 + 2210: 21,66 + 2211: 21,65 + 2225: 39,54 + 2226: 40,54 + 2227: 41,54 + 2231: 42,51 + 2232: 42,52 + 2281: 73,59 + 2282: 74,59 + 2283: 73,59 + 2284: 74,59 + 2434: 72,37 + 2435: 72,38 + 2436: 72,39 + 2450: 74,42 + 2451: 74,45 + 2951: -20,67 + 2952: -20,68 + 3852: 51,-6 + 4181: 33,54 + 4182: 34,55 + 4183: 35,54 + 4184: 34,53 + 4247: -33,19 + 4256: -27,7 + 4257: -27,7 + 4303: -36,27 + 4309: -26,31 + 4310: -26,33 + 4311: -26,35 + 4312: -26,37 + 4313: -15,37 + 4698: 33,-6 + 4699: 33,0 + 4772: 27,3 + 4773: 24,2 + 4795: 35,-1 + 4796: 35,-2 + 4797: 37,-2 + - node: + angle: 3.141592653589793 rad + color: '#FFFFFFFF' + id: Bot + decals: + 1724: -1,8 + 1725: 0,8 + 1726: 1,8 + 1727: -2,10 + 1728: -1,10 + 1729: 0,10 + 1730: 1,10 + 1731: 2,10 + - node: + color: '#FFFFFFFF' + id: BotGreyscale + decals: + 642: -21,46 + 643: -21,44 + 644: -20,45 + 645: -22,45 + - node: + color: '#FFFFFFFF' + id: BotLeft + decals: + 2957: -26,68 + 4177: 33,55 + 4178: 35,53 + 4346: -21,37 + 4347: -21,36 + 4348: -22,35 + 4349: -23,35 + 4350: -19,32 + 4351: -19,31 + 4774: 23,2 + - node: + color: '#FFFFFFFF' + id: BotLeftGreyscale + decals: + 638: -22,46 + 639: -20,44 + 640: -22,44 + 641: -20,46 + - node: + color: '#FFFFFFFF' + id: BotRight + decals: + 2953: -10,62 + 2954: -10,64 + 2958: -22,69 + 2959: -22,70 + 4179: 35,55 + 4180: 33,53 + 4248: -28,10 + 4344: -19,36 + 4345: -19,37 + 4352: -21,31 + 4353: -21,32 + 4354: -22,33 + 4355: -23,33 + 4775: 25,2 + - node: + color: '#9C2020FF' + id: Box + decals: + 4859: -6,19 + 4860: -5,19 + - node: + color: '#FFFFFFFF' + id: Box + decals: + 1713: 0,3 + 1714: 0,4 + 1715: 0,5 + 1716: 4,3 + 1717: 4,4 + 1718: 4,5 + 1719: -4,5 + 1720: -4,4 + 1721: -4,3 + 1748: -21,63 + 1749: -21,64 + 2006: 45,-1 + 2007: 45,0 + 2008: 45,1 + 2433: 76,40 + 2446: 75,45 + 2447: 76,45 + 2448: 76,42 + 2449: 75,42 + 3853: 49,-7 + 4225: -34,17 + 4226: -32,17 + 4227: -30,18 + 4228: -31,19 + 4229: -32,20 + 4230: -34,21 + 4231: -27,19 + 4232: -27,19 + 4233: -25,19 + 4234: -26,18 + 4235: -27,16 + 4236: -27,16 + 4237: -28,16 + 4238: -29,16 + 4239: -31,13 + 4240: -34,13 + 4241: -34,9 + 4242: -32,7 + 4243: -29,10 + 4244: -28,7 + 4245: -26,10 + 4246: -26,14 + 4301: -34,26 + 4302: -35,27 + 4308: -28,28 + 4335: -21,35 + 4336: -20,35 + 4337: -19,35 + 4338: -19,33 + 4339: -20,33 + 4340: -21,33 + 4341: -22,34 + 4342: -20,36 + 4343: -20,32 + 4768: 27,1 + 4769: 27,2 + 4770: 28,3 + 4771: 28,3 + 4776: 25,1 + 4794: 34,1 + 4798: 36,-2 + 4799: 77,40 + 4800: 78,40 + - node: + angle: 3.141592653589793 rad + color: '#FFFFFFFF' + id: Box + decals: + 1732: -1,8 + 1733: 0,8 + 1734: 1,8 + 1735: 1,10 + 1736: 2,10 + 1737: 0,10 + 1738: -1,10 + 1739: -2,10 + - node: + color: '#4B709CFF' + id: BoxGreyscale + decals: + 4857: -6,21 + 4858: -5,21 + - node: + color: '#FFFFFFFF' + id: BoxGreyscale + decals: + 646: -21,45 + 2955: -33,52 + 4327: -14,35 + 4328: -14,33 + 4329: -14,29 + 4330: -14,27 + - node: + color: '#DE3A3A96' + id: BrickCornerOverlayNE + decals: + 2946: -17,68 + - node: + color: '#DE3A3A96' + id: BrickCornerOverlaySE + decals: + 2947: -17,67 + - node: + color: '#DE3A3A96' + id: BrickCornerOverlaySW + decals: + 2948: -18,67 + - node: + color: '#52B4E996' + id: BrickLineOverlayN + decals: + 3736: 21,21 + - node: + color: '#FFFFFFFF' + id: BrickTileDarkInnerSw + decals: + 4766: 25,1 + - node: + color: '#FFFFFFFF' + id: BrickTileDarkLineS + decals: + 4764: 23,1 + 4765: 24,1 + - node: + color: '#FFFFFFFF' + id: BrickTileSteelCornerNe + decals: + 659: -1,71 + 678: 2,77 + 713: 9,79 + 4826: 70,29 + - node: + color: '#FFFFFFFF' + id: BrickTileSteelCornerNw + decals: + 660: 2,71 + 681: 7,77 + 4827: 69,29 + - node: + color: '#FFFFFFFF' + id: BrickTileSteelCornerSe + decals: + 657: -1,74 + 683: 9,78 + 684: 8,77 + 685: 7,75 + 686: 6,74 + 699: 11,71 + 703: 8,70 + 4833: 70,24 + - node: + color: '#FFFFFFFF' + id: BrickTileSteelCornerSw + decals: + 658: 2,74 + 4832: 69,24 + - node: + color: '#FFFFFFFF' + id: BrickTileSteelEndN + decals: + 707: 2,77 + - node: + color: '#FFFFFFFF' + id: BrickTileSteelEndW + decals: + 705: 1,70 + 706: 1,75 + 710: 7,79 + - node: + color: '#FFFFFFFF' + id: BrickTileSteelInnerNe + decals: + 654: 4,75 + 672: -1,70 + 673: -2,71 + 679: 2,76 + 719: 5,71 + 4848: 69,24 + - node: + color: '#FFFFFFFF' + id: BrickTileSteelInnerNw + decals: + 653: 6,75 + 666: 3,71 + 667: 2,70 + 680: 7,76 + 682: 8,77 + 709: 2,75 + 720: 11,71 + 4849: 70,24 + - node: + color: '#FFFFFFFF' + id: BrickTileSteelInnerSe + decals: + 651: 4,77 + 668: -2,74 + 669: -1,75 + 688: 7,77 + 689: 8,78 + 693: 5,74 + 702: 8,71 + 774: 6,75 + 4847: 69,29 + - node: + color: '#FFFFFFFF' + id: BrickTileSteelInnerSw + decals: + 652: 6,77 + 670: 2,75 + 671: 3,74 + 711: 8,79 + 4846: 70,29 + - node: + color: '#FFFFFFFF' + id: BrickTileSteelLineE + decals: + 647: 4,76 + 655: -2,72 + 656: -2,73 + 687: 7,76 + 691: 5,73 + 692: 5,72 + 4834: 70,25 + 4835: 70,26 + 4836: 70,27 + 4837: 70,28 + 4842: 69,28 + 4843: 69,27 + 4844: 69,26 + 4845: 69,25 + - node: + color: '#FFFFFFFF' + id: BrickTileSteelLineN + decals: + 648: 5,75 + 661: 0,70 + 675: 3,76 + 676: 4,76 + 677: 6,76 + 694: 6,71 + 695: 7,71 + 696: 8,71 + 697: 9,71 + 698: 10,71 + 712: 8,79 + - node: + color: '#FFFFFFFF' + id: BrickTileSteelLineS + decals: + 650: 5,77 + 662: 0,75 + 663: 1,75 + 700: 10,71 + 701: 9,71 + 704: 7,70 + 714: 2,70 + 715: 3,70 + 716: 4,70 + 717: 6,70 + 718: 5,70 + - node: + color: '#FFFFFFFF' + id: BrickTileSteelLineW + decals: + 649: 6,76 + 664: 3,72 + 665: 3,73 + 674: 1,75 + 690: 8,78 + 708: 2,76 + 4828: 69,28 + 4829: 69,27 + 4830: 69,26 + 4831: 69,25 + 4838: 70,27 + 4839: 70,28 + 4840: 70,26 + 4841: 70,25 + - node: + color: '#334E6DC8' + id: BrickTileWhiteCornerNe + decals: + 886: -18,55 + 1339: -3,27 + 1399: 73,35 + 1457: 78,40 + 1480: 77,35 + 1508: 71,46 + 1517: 78,45 + 1524: 83,44 + 1531: 82,40 + 1560: 83,35 + 1616: 20,40 + 1632: 1,17 + 4683: 21,-17 + 4743: 28,3 + 4782: 36,1 + - node: + color: '#52B4E996' + id: BrickTileWhiteCornerNe + decals: + 227: 2,23 + 331: 8,45 + 342: 9,41 + 372: 18,45 + 446: 24,45 + 452: 28,45 + 454: 29,44 + 517: 23,28 + 530: 29,29 + 572: 29,36 + 1090: -4,60 + 4292: 5,35 + - node: + color: '#9FED5896' + id: BrickTileWhiteCornerNe + decals: + 2587: 50,48 + 2662: 42,49 + - node: + color: '#A4610696' + id: BrickTileWhiteCornerNe + decals: + 7: -9,14 + 35: -10,7 + 87: 12,13 + 90: 8,13 + 104: 4,17 + 124: 12,17 + 1567: 86,38 + 4162: -6,8 + - node: + color: '#D381C996' + id: BrickTileWhiteCornerNe + decals: + 1899: 40,13 + 2023: 48,31 + 2032: 50,27 + 2062: 50,11 + 2151: 60,22 + 2174: 59,17 + 3798: 54,-1 + 3802: 54,2 + 3812: 52,7 + 4714: 36,5 + - node: + color: '#D4D4D496' + id: BrickTileWhiteCornerNe + decals: + 2740: 72,21 + - node: + color: '#DE3A3A96' + id: BrickTileWhiteCornerNe + decals: + 868: -15,52 + 912: -27,55 + 987: -23,71 + 988: -22,70 + 998: -23,64 + 1002: -22,61 + 1035: -10,68 + 1042: -6,68 + 1067: -8,60 + 1101: 0,55 + 1569: 87,37 + 1679: -3,31 + 1980: 46,14 + 2410: 62,57 + 4271: -4,17 + - node: + color: '#EFB34196' + id: BrickTileWhiteCornerNe + decals: + 1159: -25,13 + 1189: -31,21 + 1204: -22,19 + 1215: -15,20 + 1314: -3,36 + 1325: -8,25 + 1389: -31,28 + 1393: -34,30 + - node: + zIndex: 100 + color: '#FA750096' + id: BrickTileWhiteCornerNe + decals: + 2869: 14,26 + - node: + color: '#334E6DC8' + id: BrickTileWhiteCornerNw + decals: + 897: -21,55 + 1411: 68,40 + 1451: 80,40 + 1476: 79,35 + 1481: 75,35 + 1507: 70,46 + 1522: 80,44 + 1617: 19,40 + 1621: 16,39 + 1635: -2,17 + 4662: 39,-16 + 4670: 32,-17 + 4742: 27,3 + - node: + color: '#52B4E996' + id: BrickTileWhiteCornerNw + decals: + 180: 7,35 + 188: 3,41 + 197: 4,45 + 274: 30,22 + 321: 10,45 + 357: 11,41 + 369: 15,45 + 412: 14,32 + 433: 21,35 + 440: 22,41 + 445: 23,45 + 449: 26,45 + 464: 25,41 + 512: 20,26 + 515: 21,28 + 526: 25,29 + 1088: -6,60 + 4294: 3,35 + - node: + color: '#9FED5896' + id: BrickTileWhiteCornerNw + decals: + 2590: 46,48 + 2602: 44,45 + 2608: 43,40 + - node: + color: '#A4610696' + id: BrickTileWhiteCornerNw + decals: + 2: -14,14 + 89: 10,13 + 95: 6,13 + 112: 6,17 + 146: -2,12 + 546: -16,9 + 1566: 84,38 + 4164: -8,8 + - node: + color: '#D381C996' + id: BrickTileWhiteCornerNw + decals: + 1886: 35,8 + 1892: 38,11 + 1995: 45,18 + 2012: 46,22 + 2021: 46,31 + 2050: 48,11 + 2056: 47,7 + 2073: 52,27 + 3783: 48,2 + 3787: 48,-1 + 4721: 30,5 + - node: + color: '#D4D4D496' + id: BrickTileWhiteCornerNw + decals: + 2535: 62,11 + 2542: 63,16 + - node: + color: '#DE3A3A96' + id: BrickTileWhiteCornerNw + decals: + 800: -17,49 + 851: -8,64 + 929: -30,55 + 947: -36,58 + 973: -26,64 + 984: -26,71 + 1030: -13,64 + 1039: -8,68 + 1064: -10,60 + 1986: 43,14 + 2423: 59,62 + 2757: 69,15 + 2945: -18,68 + 4260: 3,29 + 4274: -7,17 + 4875: -12,68 + - node: + color: '#EFB34196' + id: BrickTileWhiteCornerNw + decals: + 585: -6,21 + 591: -2,23 + 1185: -34,21 + 1208: -20,19 + 1213: -17,20 + 1218: -13,20 + 1226: -11,25 + 1233: -12,29 + 1281: -12,37 + 1287: -12,41 + 1354: -7,36 + - node: + zIndex: 100 + angle: 3.141592653589793 rad + color: '#FA750096' + id: BrickTileWhiteCornerNw + decals: + 2841: 14,24 + - node: + zIndex: 100 + angle: 7.853981633974483 rad + color: '#FA750096' + id: BrickTileWhiteCornerNw + decals: + 2840: 15,28 + - node: + color: '#334E6DC8' + id: BrickTileWhiteCornerSe + decals: + 890: -18,51 + 1341: -3,25 + 1344: -4,23 + 1429: 68,42 + 1434: 71,42 + 1443: 78,42 + 1469: 78,37 + 1526: 83,42 + 1538: 82,29 + 1558: 83,33 + 1586: 77,33 + 1593: 73,33 + 1613: 20,37 + 1641: 1,14 + 4695: 21,-7 + 4811: 71,23 + - node: + color: '#52B4E996' + id: BrickTileWhiteCornerSe + decals: + 207: 2,45 + 260: 23,23 + 332: 8,43 + 375: 18,42 + 377: 17,41 + 396: 14,37 + 471: 24,43 + 490: 29,31 + 495: 23,30 + 505: 19,28 + 1579: 86,30 + 2272: 9,39 + 4300: 5,31 + - node: + color: '#9FED5896' + id: BrickTileWhiteCornerSe + decals: + 2586: 50,47 + 2616: 48,37 + 2661: 42,47 + - node: + color: '#A4610696' + id: BrickTileWhiteCornerSe + decals: + 32: -10,4 + 48: -10,9 + 70: 4,3 + 84: 12,10 + 126: 12,15 + 560: 8,9 + 4171: -6,3 + - node: + color: '#D381C996' + id: BrickTileWhiteCornerSe + decals: + 1961: 41,15 + 2035: 50,24 + 2061: 50,9 + 2106: 56,24 + 2152: 60,20 + 2172: 59,15 + 3797: 54,-2 + 3801: 54,1 + 4715: 36,3 + - node: + color: '#DE3A3A96' + id: BrickTileWhiteCornerSe + decals: + 160: -4,13 + 165: 8,28 + 167: 7,26 + 869: -15,51 + 939: -32,55 + 993: -22,66 + 1003: -22,60 + 1044: -6,66 + 1051: -10,66 + 1069: -8,58 + 1102: 0,54 + 1677: -3,29 + 1982: 46,12 + 2409: 62,56 + 2751: 73,13 + - node: + color: '#EFB34196' + id: BrickTileWhiteCornerSe + decals: + 1129: -8,19 + 1134: -12,18 + 1139: -15,18 + 1143: -18,17 + 1149: -22,17 + 1154: -25,17 + 1162: -25,10 + 1167: -27,7 + 1307: -3,38 + 1381: -31,23 + 1577: 87,31 + - node: + zIndex: 100 + angle: 3.141592653589793 rad + color: '#FA750096' + id: BrickTileWhiteCornerSe + decals: + 2843: 10,28 + 2844: 9,26 + - node: + zIndex: 100 + angle: 6.283185307179586 rad + color: '#FA750096' + id: BrickTileWhiteCornerSe + decals: + 2845: 10,23 + - node: + color: '#334E6DC8' + id: BrickTileWhiteCornerSw + decals: + 893: -21,51 + 1346: -6,23 + 1414: 68,37 + 1433: 70,42 + 1438: 73,42 + 1447: 80,42 + 1465: 74,37 + 1543: 80,29 + 1582: 79,33 + 1588: 75,33 + 1623: 16,37 + 1638: -2,14 + 4644: 32,-7 + 4652: 39,-8 + 4740: 27,1 + 4788: 35,-2 + 4808: 68,23 + - node: + color: '#52B4E996' + id: BrickTileWhiteCornerSw + decals: + 254: 25,23 + 263: 20,23 + 298: 30,46 + 353: 11,37 + 364: 10,43 + 380: 15,43 + 489: 25,31 + 497: 21,30 + 1581: 84,30 + 4298: 3,31 + - node: + color: '#9FED5896' + id: BrickTileWhiteCornerSw + decals: + 2594: 46,47 + 2611: 43,37 + - node: + color: '#A4610696' + id: BrickTileWhiteCornerSw + decals: + 22: -16,5 + 31: -12,4 + 60: -4,3 + 111: 6,15 + 543: -14,11 + 559: 6,9 + 4169: -8,3 + - node: + color: '#D381C996' + id: BrickTileWhiteCornerSw + decals: + 1916: 38,15 + 1969: 48,13 + 2010: 46,20 + 2016: 46,24 + 2051: 48,9 + 2057: 47,6 + 2070: 52,24 + 3784: 48,1 + 3788: 48,-2 + - node: + color: '#D4D4D496' + id: BrickTileWhiteCornerSw + decals: + 2539: 63,13 + - node: + color: '#DE3A3A96' + id: BrickTileWhiteCornerSw + decals: + 161: -7,13 + 166: 6,26 + 849: -8,62 + 870: -16,51 + 918: -30,51 + 941: -34,55 + 944: -36,56 + 968: -26,60 + 979: -26,66 + 1047: -8,66 + 1071: -10,58 + 1674: -6,29 + 2406: 59,56 + 2427: 59,59 + 2755: 69,13 + 4262: 3,27 + 4877: -12,66 + - node: + color: '#EFB34196' + id: BrickTileWhiteCornerSw + decals: + 619: -2,45 + 636: -17,47 + 1135: -13,18 + 1145: -20,17 + 1173: -34,7 + 1231: -12,27 + 1237: -12,31 + 1285: -12,39 + - node: + zIndex: 100 + angle: 3.141592653589793 rad + color: '#FA750096' + id: BrickTileWhiteCornerSw + decals: + 2842: 13,28 + - node: + color: '#334E6DC8' + id: BrickTileWhiteEndE + decals: + 4786: 37,-2 + - node: + color: '#D381C996' + id: BrickTileWhiteEndE + decals: + 3794: 54,-4 + 3803: 54,4 + - node: + color: '#334E6DC8' + id: BrickTileWhiteEndN + decals: + 4733: 31,2 + 4780: 35,2 + 4813: 71,25 + 4824: 68,29 + - node: + color: '#EFB34196' + id: BrickTileWhiteEndN + decals: + 1197: -25,20 + - node: + color: '#D381C996' + id: BrickTileWhiteEndS + decals: + 1906: 40,6 + - node: + color: '#52B4E996' + id: BrickTileWhiteEndW + decals: + 194: 3,43 + - node: + color: '#D381C996' + id: BrickTileWhiteEndW + decals: + 3780: 48,4 + - node: + color: '#334E6DC8' + id: BrickTileWhiteInnerNe + decals: + 404: 16,35 + 407: 18,35 + 900: -19,55 + 1334: -8,27 + 1402: 70,35 + 1420: 66,35 + 1455: 78,38 + 1479: 77,34 + 1487: 68,43 + 1495: 71,43 + 1504: 68,45 + 1509: 71,45 + 1519: 78,43 + 1530: 81,40 + 1534: 82,37 + 1555: 81,32 + 1562: 81,35 + 1591: 73,34 + 1631: 1,16 + 1999: 49,17 + 2002: 49,15 + 2218: 30,49 + 2224: 28,49 + 2777: 66,27 + 2783: 66,22 + 4682: 21,-18 + 4684: 20,-17 + 4745: 28,1 + 4781: 35,1 + 4785: 36,-2 + 4818: 68,23 + - node: + color: '#52B4E996' + id: BrickTileWhiteInnerNe + decals: + 226: 1,23 + 229: 2,21 + 245: 16,22 + 329: 6,45 + 337: 5,41 + 345: 8,35 + 366: 13,44 + 390: 13,41 + 400: 13,35 + 411: 19,33 + 427: 12,31 + 447: 24,44 + 453: 28,44 + 483: 23,33 + 509: 18,25 + 520: 23,25 + 533: 29,26 + 534: 26,21 + 566: 23,36 + 573: 29,35 + 1093: -4,57 + 2904: -38,37 + - node: + zIndex: 100 + color: '#52B4E996' + id: BrickTileWhiteInnerNe + decals: + 2877: 18,21 + - node: + color: '#9FED5896' + id: BrickTileWhiteInnerNe + decals: + 2565: 57,35 + 2573: 50,40 + 2582: 48,45 + 2639: 33,35 + 2643: 33,39 + 2648: 33,45 + 2666: 40,49 + 2670: 37,49 + 2674: 24,49 + 2689: 10,49 + 2693: 6,49 + 2697: 6,53 + - node: + zIndex: 100 + color: '#9FED5896' + id: BrickTileWhiteInnerNe + decals: + 2895: -32,37 + - node: + color: '#A4610696' + id: BrickTileWhiteInnerNe + decals: + 10: -9,11 + 39: -14,7 + 42: -11,7 + 92: 8,12 + 105: 4,16 + 122: 11,17 + 148: -3,11 + 4161: -6,7 + 4484: 8,17 + - node: + color: '#D381C996' + id: BrickTileWhiteInnerNe + decals: + 1898: 39,13 + 1920: 38,17 + 1991: 41,17 + 2024: 48,30 + 2030: 48,27 + 2039: 48,22 + 2045: 48,18 + 2063: 49,11 + 2099: 56,30 + 3796: 53,-4 + 3800: 53,-1 + 3804: 53,2 + 3808: 52,4 + 3811: 52,6 + 3815: 49,7 + 4711: 35,5 + - node: + color: '#D4D4D496' + id: BrickTileWhiteInnerNe + decals: + 2725: -2,64 + 2734: 66,21 + - node: + color: '#DE3A3A96' + id: BrickTileWhiteInnerNe + decals: + 153: -7,11 + 154: -5,11 + 807: -12,49 + 855: -7,64 + 867: -16,52 + 911: -28,55 + 924: -32,52 + 925: -32,51 + 953: -33,58 + 960: -29,58 + 989: -23,70 + 997: -24,64 + 1001: -23,61 + 1007: -24,58 + 1015: -18,58 + 1021: -16,58 + 1034: -11,68 + 1037: -10,67 + 1041: -7,68 + 1055: -12,64 + 1060: -12,62 + 1062: -12,59 + 1077: -12,56 + 1095: -4,56 + 1100: -1,55 + 1568: 86,37 + 1573: 87,34 + 1669: -8,30 + 1671: -8,29 + 1682: -6,31 + 1978: 44,14 + 2412: 60,57 + 2420: 60,60 + 2747: 71,15 + 2770: 67,11 + 2926: -36,37 + 3753: 70,39 + - node: + color: '#EFB34196' + id: BrickTileWhiteInnerNe + decals: + 1160: -26,13 + 1188: -32,21 + 1191: -31,19 + 1200: -25,18 + 1205: -22,18 + 1210: -19,19 + 1216: -15,19 + 1291: -11,41 + 1312: -5,36 + 1317: -3,33 + 1324: -10,25 + 1330: -8,20 + 1369: -9,31 + 1388: -31,27 + 1391: -34,28 + 2933: -34,37 + 4197: 33,49 + - node: + zIndex: 100 + color: '#FA750096' + id: BrickTileWhiteInnerNe + decals: + 2868: 13,26 + 2872: 12,22 + - node: + color: '#334E6DC8' + id: BrickTileWhiteInnerNw + decals: + 406: 18,35 + 408: 19,35 + 899: -19,55 + 1417: 69,35 + 1450: 81,40 + 1453: 80,38 + 1475: 80,35 + 1477: 79,34 + 1484: 75,34 + 1493: 70,43 + 1494: 73,43 + 1506: 70,45 + 1521: 80,43 + 1535: 84,37 + 1545: 80,30 + 1553: 84,32 + 1618: 19,39 + 1629: 3,16 + 1647: 3,14 + 2221: 30,49 + 2944: 32,49 + 4661: 40,-16 + 4663: 39,-17 + 4671: 32,-18 + 4748: 31,1 + 4793: 35,1 + 4802: 68,27 + 4815: 71,23 + - node: + color: '#52B4E996' + id: BrickTileWhiteInnerNw + decals: + 181: 8,35 + 190: 5,41 + 195: 4,43 + 199: 6,45 + 237: 12,21 + 239: 16,22 + 251: 26,21 + 273: 30,21 + 275: 31,22 + 320: 11,45 + 350: 13,35 + 359: 13,41 + 368: 15,44 + 385: 16,41 + 403: 16,35 + 416: 18,32 + 429: 14,31 + 431: 21,33 + 434: 22,35 + 441: 23,41 + 450: 26,44 + 465: 26,41 + 484: 25,33 + 511: 20,25 + 513: 21,26 + 522: 25,25 + 575: 31,35 + 1084: -6,57 + 2901: -36,37 + - node: + zIndex: 100 + color: '#52B4E996' + id: BrickTileWhiteInnerNw + decals: + 2878: 18,22 + - node: + color: '#5E7C16A1' + id: BrickTileWhiteInnerNw + decals: + 536: 16,23 + - node: + color: '#9FED5896' + id: BrickTileWhiteInnerNw + decals: + 2558: 64,35 + 2567: 50,35 + 2598: 48,45 + 2607: 44,40 + 2667: 40,49 + 2672: 27,49 + 2675: 23,49 + 2690: 9,49 + - node: + color: '#A4610696' + id: BrickTileWhiteInnerNw + decals: + 12: -7,11 + 16: -12,9 + 41: -11,7 + 93: 10,12 + 97: 6,11 + 99: 3,12 + 109: 6,16 + 117: 10,17 + 133: 7,17 + 147: -2,11 + 1702: -4,7 + - node: + color: '#D381C996' + id: BrickTileWhiteInnerNw + decals: + 1889: 38,8 + 1893: 39,11 + 1918: 38,16 + 1925: 41,17 + 1994: 45,17 + 1997: 47,18 + 2013: 47,22 + 2046: 49,18 + 2049: 49,11 + 2054: 49,7 + 2075: 54,27 + 2081: 54,30 + 2122: 64,30 + 3779: 49,4 + 3781: 49,2 + 3785: 49,-1 + 4725: 35,5 + - node: + color: '#D4D4D496' + id: BrickTileWhiteInnerNw + decals: + 2537: 64,11 + 2543: 64,16 + 2715: 4,67 + 2719: 4,64 + - node: + color: '#DE3A3A96' + id: BrickTileWhiteInnerNw + decals: + 152: -3,11 + 155: -5,11 + 175: 8,29 + 799: -17,48 + 804: -13,49 + 823: 4,49 + 833: 4,58 + 852: -7,64 + 922: -30,52 + 931: -28,55 + 946: -36,57 + 950: -33,58 + 957: -29,58 + 965: -24,58 + 975: -24,64 + 1013: -18,58 + 1018: -16,58 + 1024: -13,58 + 1031: -12,64 + 1033: -11,68 + 1038: -8,67 + 1040: -7,68 + 1065: -10,59 + 1083: -6,56 + 1098: -1,56 + 1409: 71,39 + 1687: -6,30 + 1987: 44,14 + 2414: 60,57 + 2424: 60,62 + 2726: -2,64 + 2759: 71,15 + 2773: 70,11 + 2924: -34,37 + - node: + color: '#EFB34196' + id: BrickTileWhiteInnerNw + decals: + 584: -6,20 + 589: -2,21 + 592: -1,23 + 605: -1,33 + 616: -1,43 + 1187: -32,21 + 1198: -25,19 + 1202: -23,18 + 1207: -20,18 + 1209: -19,19 + 1212: -17,19 + 1219: -13,19 + 1221: -11,20 + 1227: -10,25 + 1234: -11,29 + 1280: -12,36 + 1282: -11,37 + 1288: -11,41 + 1356: -5,36 + 2932: -32,37 + 4195: 35,49 + 4196: 37,49 + 4265: -6,19 + - node: + zIndex: 100 + color: '#FA750096' + id: BrickTileWhiteInnerNw + decals: + 2864: 16,25 + 2871: 14,22 + 2887: 9,24 + - node: + color: '#334E6DC8' + id: BrickTileWhiteInnerSe + decals: + 880: -21,57 + 883: -19,57 + 1333: -9,27 + 1342: -4,25 + 1405: 70,38 + 1427: 66,42 + 1430: 68,43 + 1435: 71,43 + 1444: 78,43 + 1470: 78,38 + 1489: 68,45 + 1498: 71,45 + 1528: 81,42 + 1537: 82,31 + 1539: 81,29 + 1556: 81,33 + 1563: 81,36 + 1585: 77,34 + 1592: 73,34 + 1600: 66,33 + 1611: 18,37 + 1643: 1,16 + 1661: -8,29 + 2000: 49,17 + 2240: 41,33 + 2243: 39,33 + 2778: 66,27 + 2913: -38,36 + 4694: 20,-7 + 4696: 21,-6 + 4732: 30,3 + 4791: 34,0 + - node: + color: '#52B4E996' + id: BrickTileWhiteInnerSe + decals: + 205: 2,47 + 208: 1,45 + 258: 23,25 + 267: 18,25 + 316: 13,47 + 328: 6,47 + 336: 5,43 + 376: 17,42 + 391: 13,44 + 393: 14,41 + 399: 13,37 + 424: 12,34 + 470: 24,44 + 472: 23,43 + 479: 29,33 + 485: 23,32 + 501: 19,32 + 506: 18,28 + 579: 23,36 + 2271: 8,39 + - node: + zIndex: 100 + color: '#52B4E996' + id: BrickTileWhiteInnerSe + decals: + 2879: 16,24 + - node: + color: '#9FED5896' + id: BrickTileWhiteInnerSe + decals: + 2566: 57,36 + 2579: 50,45 + 2584: 48,47 + 2620: 48,42 + 2642: 33,38 + 2647: 33,43 + 2650: 33,47 + 2655: 37,47 + 2660: 41,47 + 2696: 6,52 + - node: + color: '#A4610696' + id: BrickTileWhiteInnerSe + decals: + 23: -15,5 + 40: -14,9 + 45: -11,9 + 49: -10,10 + 64: 1,3 + 65: -1,3 + 77: 4,10 + 80: 8,10 + 106: 4,16 + 118: 8,19 + 121: 11,19 + 2938: -34,36 + 4174: -6,6 + 4268: -6,19 + - node: + color: '#D381C996' + id: BrickTileWhiteInnerSe + decals: + 1913: 35,8 + 1960: 39,15 + 1962: 41,16 + 1964: 46,16 + 2027: 48,30 + 2037: 48,24 + 2040: 48,22 + 2060: 49,9 + 2067: 49,15 + 2095: 43,33 + 2096: 56,33 + 2100: 56,30 + 2109: 53,24 + 2153: 59,20 + 2250: 33,33 + 3790: 49,-4 + 3793: 52,-4 + 3795: 53,-4 + 3799: 53,-2 + 3805: 53,1 + 3806: 53,4 + 3810: 52,6 + 4718: 32,3 + - node: + zIndex: 100 + color: '#D381C996' + id: BrickTileWhiteInnerSe + decals: + 2936: -36,36 + - node: + color: '#D4D4D496' + id: BrickTileWhiteInnerSe + decals: + 2713: 6,67 + - node: + zIndex: 100 + color: '#D4D4D496' + id: BrickTileWhiteInnerSe + decals: + 2902: -32,36 + - node: + color: '#DE3A3A96' + id: BrickTileWhiteInnerSe + decals: + 159: -5,13 + 172: 7,28 + 537: 8,31 + 540: 7,31 + 865: -16,54 + 877: -17,57 + 904: -24,57 + 909: -28,57 + 923: -32,52 + 926: -32,53 + 937: -32,57 + 952: -33,59 + 959: -29,59 + 995: -24,66 + 1005: -24,60 + 1016: -18,59 + 1019: -16,59 + 1045: -7,66 + 1046: -7,66 + 1052: -10,67 + 1058: -12,62 + 1059: -12,64 + 1074: -12,59 + 1094: -4,57 + 1103: -1,54 + 1104: -5,54 + 1105: -9,54 + 1123: -12,54 + 1664: -7,33 + 1670: -8,31 + 1672: -8,30 + 1684: -6,33 + 1970: 42,16 + 1974: 44,16 + 2417: 60,60 + 2745: 71,17 + 2765: 67,17 + 4870: 43,12 + - node: + color: '#EFB34196' + id: BrickTileWhiteInnerSe + decals: + 1128: -8,20 + 1133: -12,19 + 1138: -15,19 + 1142: -18,18 + 1148: -22,18 + 1153: -25,18 + 1155: -26,17 + 1164: -27,10 + 1269: -15,42 + 1290: -11,42 + 1310: -5,38 + 1321: -10,27 + 1362: -9,38 + 1380: -32,23 + 1385: -31,27 + 1574: 87,34 + 1578: 86,31 + 1663: -5,33 + 3859: -37,25 + 3860: -37,25 + - node: + zIndex: 100 + angle: 29.845130209103036 rad + color: '#FA750096' + id: BrickTileWhiteInnerSe + decals: + 2854: 12,30 + - node: + zIndex: 100 + angle: 31.41592653589793 rad + color: '#FA750096' + id: BrickTileWhiteInnerSe + decals: + 2855: 12,30 + - node: + color: '#334E6DC8' + id: BrickTileWhiteInnerSw + decals: + 879: -17,57 + 882: -19,57 + 1350: -6,27 + 1406: 71,38 + 1415: 69,37 + 1432: 70,43 + 1437: 73,43 + 1446: 80,43 + 1448: 81,42 + 1463: 74,40 + 1464: 74,40 + 1472: 80,38 + 1491: 70,45 + 1496: 73,45 + 1497: 73,45 + 1536: 84,31 + 1542: 81,29 + 1544: 80,30 + 1548: 80,33 + 1549: 84,36 + 1583: 79,34 + 1589: 75,34 + 1625: 18,37 + 1628: 3,17 + 1646: 3,16 + 1864: 32,3 + 2239: 43,33 + 2241: 41,33 + 2912: -36,36 + 4643: 32,-6 + 4651: 39,-7 + 4653: 40,-8 + 4739: 28,1 + 4779: 23,1 + 4790: 35,0 + 4805: 68,27 + - node: + color: '#52B4E996' + id: BrickTileWhiteInnerSw + decals: + 192: 5,43 + 201: 6,47 + 244: 18,24 + 253: 26,23 + 256: 25,25 + 265: 20,25 + 286: 31,33 + 297: 31,46 + 299: 30,47 + 323: 11,47 + 351: 13,37 + 361: 13,43 + 386: 16,43 + 387: 15,44 + 418: 18,34 + 468: 26,44 + 486: 25,32 + 499: 21,32 + 577: 25,36 + 2268: 8,37 + - node: + color: '#9FED5896' + id: BrickTileWhiteInnerSw + decals: + 2596: 48,47 + 2622: 50,42 + 2654: 37,47 + 2659: 41,47 + - node: + color: '#A4610696' + id: BrickTileWhiteInnerSw + decals: + 15: -12,11 + 17: -12,9 + 24: -15,5 + 29: -12,5 + 46: -11,9 + 55: -4,10 + 63: -1,3 + 66: 1,3 + 79: 6,10 + 110: 6,16 + 119: 10,19 + 1127: 13,19 + 1648: 3,14 + 1703: -4,6 + 2937: -32,36 + 4485: 7,19 + - node: + color: '#D381C996' + id: BrickTileWhiteInnerSw + decals: + 1908: 40,8 + 1915: 39,15 + 1917: 38,16 + 1963: 42,16 + 1966: 48,16 + 2009: 47,20 + 2015: 47,24 + 2047: 49,13 + 2052: 49,9 + 2069: 53,24 + 2080: 54,30 + 2084: 54,33 + 2119: 64,33 + 2123: 64,30 + 2160: 55,21 + 2245: 39,33 + 3777: 49,6 + 3782: 49,4 + 3786: 49,1 + 3789: 49,-2 + 3791: 50,-4 + 3792: 53,-4 + - node: + zIndex: 100 + color: '#D381C996' + id: BrickTileWhiteInnerSw + decals: + 2935: -34,36 + - node: + color: '#D4D4D496' + id: BrickTileWhiteInnerSw + decals: + 2538: 64,13 + 2716: 4,67 + - node: + color: '#DE3A3A96' + id: BrickTileWhiteInnerSw + decals: + 158: -5,13 + 171: 6,27 + 539: 10,31 + 541: 8,31 + 832: 4,58 + 837: 4,62 + 862: -13,54 + 876: -16,57 + 901: -21,57 + 905: -24,57 + 917: -29,51 + 919: -30,52 + 933: -28,57 + 942: -34,56 + 945: -36,57 + 951: -33,59 + 958: -29,59 + 967: -24,60 + 977: -24,66 + 1014: -18,59 + 1020: -16,59 + 1048: -7,66 + 1049: -8,67 + 1072: -10,59 + 1085: -6,57 + 1108: -1,54 + 1109: -5,54 + 1110: -9,54 + 1665: -6,33 + 1685: -5,33 + 1686: -6,30 + 1972: 44,16 + 1977: 46,16 + 2428: 60,59 + 2761: 71,17 + - node: + color: '#EFB34196' + id: BrickTileWhiteInnerSw + decals: + 581: -6,20 + 602: -1,33 + 615: -1,43 + 618: -1,45 + 621: -2,47 + 637: -17,48 + 1136: -13,19 + 1146: -20,18 + 1151: -23,18 + 1229: -10,27 + 1236: -11,31 + 1241: -12,36 + 1268: -15,42 + 1284: -11,39 + 1289: -11,42 + 1320: -9,27 + 1358: -5,38 + 1377: -32,23 + - node: + zIndex: 100 + color: '#FA750096' + id: BrickTileWhiteInnerSw + decals: + 2859: 15,30 + 2865: 16,28 + 2866: 16,25 + - node: + zIndex: 100 + angle: 14.137166941154069 rad + color: '#FA750096' + id: BrickTileWhiteInnerSw + decals: + 2853: 10,24 + - node: + color: '#334E6DC8' + id: BrickTileWhiteLineE + decals: + 884: -19,56 + 887: -18,54 + 888: -18,53 + 889: -18,52 + 1331: -8,28 + 1340: -3,26 + 1343: -4,24 + 1403: 70,36 + 1404: 70,37 + 1421: 66,36 + 1422: 66,37 + 1423: 66,38 + 1424: 66,39 + 1425: 66,40 + 1426: 66,41 + 1456: 78,39 + 1488: 68,44 + 1500: 71,44 + 1503: 68,46 + 1518: 78,44 + 1525: 83,43 + 1529: 81,41 + 1532: 82,39 + 1533: 82,38 + 1540: 81,28 + 1559: 83,34 + 1601: 66,32 + 1602: 66,31 + 1610: 18,36 + 1614: 20,38 + 1615: 20,39 + 1642: 1,15 + 1998: 49,18 + 2001: 49,16 + 2219: 30,50 + 2220: 30,51 + 2774: 66,30 + 2775: 66,29 + 2776: 66,28 + 2779: 66,26 + 2780: 66,24 + 2781: 66,25 + 2782: 66,23 + 2916: -38,35 + 2917: -38,34 + 4685: 20,-16 + 4686: 20,-15 + 4687: 20,-14 + 4688: 20,-13 + 4689: 20,-12 + 4690: 20,-11 + 4691: 20,-10 + 4692: 20,-9 + 4693: 20,-8 + 4734: 31,1 + 4735: 31,0 + 4744: 28,2 + 4783: 36,0 + 4784: 36,-1 + 4812: 71,24 + 4819: 68,24 + 4820: 68,25 + 4821: 68,27 + 4822: 68,26 + 4823: 68,28 + - node: + color: '#52B4E996' + id: BrickTileWhiteLineE + decals: + 206: 2,46 + 209: 1,44 + 210: 1,42 + 211: 1,43 + 212: 1,41 + 213: 1,40 + 214: 1,39 + 215: 1,38 + 216: 1,36 + 217: 1,37 + 218: 1,32 + 219: 1,31 + 220: 1,30 + 221: 1,29 + 222: 1,28 + 223: 1,27 + 224: 1,26 + 225: 1,24 + 228: 2,22 + 241: 16,23 + 246: 18,23 + 259: 23,24 + 268: 18,24 + 317: 13,46 + 318: 13,45 + 327: 6,46 + 333: 8,44 + 338: 5,42 + 343: 9,40 + 344: 8,36 + 373: 18,44 + 374: 18,43 + 388: 13,43 + 389: 13,42 + 392: 14,40 + 394: 14,39 + 395: 14,38 + 398: 13,36 + 409: 19,35 + 410: 19,34 + 425: 12,33 + 426: 12,32 + 455: 29,43 + 456: 29,42 + 457: 29,41 + 458: 29,40 + 459: 29,39 + 460: 29,38 + 473: 23,42 + 474: 23,41 + 475: 23,40 + 476: 23,39 + 477: 23,38 + 478: 23,37 + 480: 23,34 + 488: 23,31 + 494: 29,32 + 502: 19,31 + 503: 19,30 + 504: 19,29 + 507: 18,27 + 508: 18,26 + 518: 23,27 + 519: 23,26 + 531: 29,28 + 532: 29,27 + 535: 26,22 + 565: 23,35 + 1091: -4,59 + 1092: -4,58 + 2269: 8,37 + 2270: 8,38 + 2899: -38,39 + 2900: -38,38 + 4286: 1,35 + 4287: 1,34 + 4288: 1,33 + 4289: 5,32 + 4290: 5,33 + 4291: 5,34 + - node: + zIndex: 100 + color: '#52B4E996' + id: BrickTileWhiteLineE + decals: + 2876: 18,22 + - node: + color: '#9FED5896' + id: BrickTileWhiteLineE + decals: + 2575: 50,41 + 2576: 50,42 + 2577: 50,43 + 2578: 50,44 + 2583: 48,46 + 2617: 48,39 + 2618: 48,40 + 2619: 48,41 + 2640: 33,36 + 2641: 33,37 + 2644: 33,40 + 2645: 33,41 + 2646: 33,42 + 2649: 33,46 + 2694: 6,50 + 2695: 6,51 + 2698: 6,54 + 2699: 6,55 + 2700: 6,56 + 2701: 6,57 + 2702: 6,59 + 2703: 6,58 + 2704: 6,60 + 2705: 6,61 + 2706: 6,62 + 2707: 6,63 + - node: + zIndex: 100 + color: '#9FED5896' + id: BrickTileWhiteLineE + decals: + 2892: -32,39 + 2893: -32,38 + - node: + color: '#A4610696' + id: BrickTileWhiteLineE + decals: + 8: -9,13 + 9: -9,12 + 25: -15,4 + 33: -10,5 + 34: -10,6 + 38: -14,8 + 43: -11,8 + 71: 4,4 + 72: 4,5 + 73: 4,6 + 74: 4,7 + 75: 4,9 + 76: 4,8 + 85: 12,11 + 86: 12,12 + 100: 4,12 + 101: 4,13 + 102: 4,14 + 103: 4,15 + 114: 8,18 + 120: 11,18 + 125: 12,16 + 2943: -34,34 + 4172: -6,4 + 4173: -6,5 + - node: + zIndex: 100 + color: '#A4610696' + id: BrickTileWhiteLineE + decals: + 2929: -34,35 + - node: + color: '#D381C996' + id: BrickTileWhiteLineE + decals: + 1897: 39,14 + 1900: 40,12 + 1901: 40,11 + 1902: 40,10 + 1903: 40,9 + 1904: 40,8 + 1905: 40,7 + 1914: 35,7 + 1989: 41,18 + 2028: 48,29 + 2029: 48,28 + 2033: 50,26 + 2034: 50,25 + 2038: 48,23 + 2041: 48,21 + 2042: 48,20 + 2043: 48,19 + 2059: 49,8 + 2064: 49,12 + 2065: 49,13 + 2066: 49,14 + 2097: 56,32 + 2098: 56,31 + 2101: 56,29 + 2102: 56,28 + 2103: 56,27 + 2104: 56,26 + 2105: 56,25 + 2110: 53,23 + 2173: 59,16 + 2251: 33,32 + 2252: 33,30 + 2253: 33,31 + 2254: 33,29 + 2255: 33,28 + 2256: 33,27 + 2257: 33,26 + 2258: 33,25 + 2259: 33,24 + 2260: 33,23 + 2261: 33,22 + 2262: 33,21 + 3809: 52,5 + 4713: 35,6 + - node: + zIndex: 100 + color: '#D381C996' + id: BrickTileWhiteLineE + decals: + 2922: -36,35 + 2923: -36,34 + - node: + color: '#D4D4D496' + id: BrickTileWhiteLineE + decals: + 2710: 6,65 + 2712: 6,66 + 2741: 72,20 + 2742: 72,19 + - node: + zIndex: 100 + color: '#D4D4D496' + id: BrickTileWhiteLineE + decals: + 2896: -32,35 + 2897: -32,34 + - node: + color: '#DE3A3A96' + id: BrickTileWhiteLineE + decals: + 156: -5,12 + 162: -4,14 + 170: 7,27 + 173: 8,29 + 174: 8,30 + 806: -12,50 + 854: -7,65 + 866: -16,53 + 910: -28,56 + 913: -27,54 + 914: -27,53 + 915: -27,52 + 916: -27,51 + 938: -32,56 + 990: -22,69 + 991: -22,68 + 992: -22,67 + 996: -24,65 + 999: -23,63 + 1000: -23,62 + 1006: -24,59 + 1043: -6,67 + 1054: -12,65 + 1056: -12,63 + 1057: -12,61 + 1061: -12,60 + 1068: -8,59 + 1075: -12,58 + 1076: -12,57 + 1099: -1,56 + 1106: -1,53 + 1113: -9,53 + 1114: -5,53 + 1124: -12,53 + 1125: -12,52 + 1126: -12,51 + 1570: 87,36 + 1571: 87,35 + 1572: 87,35 + 1678: -3,30 + 1683: -6,32 + 1975: 44,15 + 1981: 46,13 + 2415: 60,58 + 2416: 60,59 + 2421: 60,61 + 2422: 60,62 + 2746: 71,16 + 2750: 73,14 + 2766: 67,16 + 2767: 67,15 + 2768: 67,14 + 2769: 67,13 + 2920: -36,38 + 2921: -36,39 + 3752: 70,40 + 4269: -4,15 + 4270: -4,16 + - node: + color: '#EFB34196' + id: BrickTileWhiteLineE + decals: + 1156: -26,16 + 1157: -26,15 + 1158: -26,14 + 1161: -25,12 + 1165: -27,9 + 1166: -27,8 + 1190: -31,20 + 1199: -25,19 + 1311: -5,37 + 1315: -3,35 + 1316: -3,34 + 1322: -10,26 + 1326: -8,24 + 1327: -8,23 + 1328: -8,22 + 1329: -8,21 + 1363: -9,37 + 1364: -9,35 + 1365: -9,36 + 1366: -9,34 + 1367: -9,33 + 1368: -9,32 + 1379: -32,22 + 1382: -31,24 + 1383: -31,25 + 1384: -31,26 + 1392: -34,29 + 1575: 87,33 + 1576: 87,32 + 2930: -34,39 + 2931: -34,38 + 4188: 35,51 + 4189: 35,50 + 4190: 35,52 + - node: + zIndex: 100 + color: '#FA750096' + id: BrickTileWhiteLineE + decals: + 2867: 13,27 + - node: + color: '#334E6DC8' + id: BrickTileWhiteLineN + decals: + 405: 17,35 + 898: -20,55 + 1335: -7,27 + 1336: -6,27 + 1337: -5,27 + 1338: -4,27 + 1400: 71,35 + 1401: 72,35 + 1410: 69,40 + 1418: 68,35 + 1419: 67,35 + 1454: 79,38 + 1458: 77,40 + 1459: 75,40 + 1460: 74,40 + 1478: 78,34 + 1482: 76,35 + 1483: 74,34 + 1485: 69,43 + 1486: 69,43 + 1499: 72,43 + 1505: 69,45 + 1510: 72,45 + 1511: 72,45 + 1512: 73,45 + 1513: 74,45 + 1514: 75,45 + 1515: 76,45 + 1516: 77,45 + 1520: 79,43 + 1523: 82,44 + 1554: 82,32 + 1561: 82,35 + 1619: 18,39 + 1620: 17,39 + 1630: 2,16 + 1633: 0,17 + 1634: -1,17 + 2216: 29,49 + 2217: 31,49 + 2432: 76,40 + 4664: 38,-17 + 4665: 37,-17 + 4666: 36,-17 + 4667: 35,-17 + 4668: 34,-17 + 4669: 33,-17 + 4672: 31,-18 + 4673: 30,-18 + 4674: 29,-18 + 4675: 28,-18 + 4676: 27,-18 + 4677: 26,-18 + 4678: 25,-18 + 4679: 24,-18 + 4680: 23,-18 + 4681: 22,-18 + 4746: 29,1 + 4747: 30,1 + 4792: 34,1 + 4803: 67,27 + 4816: 70,23 + 4817: 69,23 + - node: + color: '#52B4E996' + id: BrickTileWhiteLineN + decals: + 189: 4,41 + 198: 5,45 + 230: 3,21 + 231: 5,21 + 232: 6,21 + 233: 7,21 + 234: 8,21 + 235: 9,21 + 236: 11,21 + 238: 15,22 + 240: 17,22 + 247: 20,21 + 248: 22,21 + 249: 23,21 + 250: 24,21 + 269: 25,21 + 270: 27,21 + 271: 28,21 + 272: 29,21 + 330: 7,45 + 339: 6,41 + 340: 7,41 + 341: 8,41 + 346: 10,35 + 347: 9,35 + 348: 11,35 + 349: 12,35 + 358: 12,41 + 367: 14,44 + 370: 16,45 + 371: 17,45 + 382: 14,41 + 383: 15,41 + 401: 14,35 + 402: 15,35 + 413: 15,32 + 414: 16,32 + 415: 17,32 + 428: 13,31 + 430: 20,33 + 448: 25,44 + 451: 27,45 + 481: 24,33 + 510: 19,25 + 516: 22,28 + 521: 24,25 + 527: 26,29 + 528: 27,29 + 529: 28,29 + 567: 24,36 + 568: 25,36 + 569: 26,36 + 570: 27,36 + 571: 28,36 + 574: 30,35 + 1089: -5,60 + 2903: -37,37 + 4293: 4,35 + 4703: 4,21 + - node: + zIndex: 100 + color: '#52B4E996' + id: BrickTileWhiteLineN + decals: + 2874: 10,21 + 2875: 19,21 + - node: + color: '#9FED5896' + id: BrickTileWhiteLineN + decals: + 2559: 63,35 + 2560: 62,35 + 2561: 61,35 + 2562: 59,35 + 2563: 60,35 + 2564: 58,35 + 2574: 49,35 + 2580: 50,45 + 2581: 49,45 + 2588: 49,48 + 2589: 48,48 + 2599: 47,45 + 2600: 46,45 + 2601: 45,45 + 2624: 48,35 + 2625: 47,35 + 2626: 46,35 + 2627: 45,35 + 2628: 44,35 + 2629: 43,35 + 2630: 42,35 + 2631: 41,35 + 2632: 40,35 + 2633: 39,35 + 2634: 38,35 + 2635: 37,35 + 2636: 35,35 + 2637: 36,35 + 2638: 34,35 + 2665: 41,49 + 2668: 39,49 + 2669: 38,49 + 2671: 26,49 + 2673: 25,49 + 2676: 22,49 + 2677: 21,49 + 2678: 21,49 + 2679: 20,49 + 2680: 19,49 + 2681: 18,49 + 2682: 17,49 + 2683: 16,49 + 2684: 15,49 + 2685: 14,49 + 2686: 13,49 + 2687: 12,49 + 2688: 11,49 + 2691: 8,49 + 2692: 7,49 + - node: + zIndex: 100 + color: '#9FED5896' + id: BrickTileWhiteLineN + decals: + 2894: -31,37 + - node: + color: '#A4610696' + id: BrickTileWhiteLineN + decals: + 3: -13,14 + 4: -12,14 + 5: -11,14 + 6: -10,14 + 11: -8,11 + 18: -13,9 + 20: -14,9 + 36: -13,7 + 37: -12,7 + 88: 11,13 + 91: 9,12 + 94: 7,13 + 98: 5,11 + 107: 5,16 + 113: 9,17 + 142: -1,12 + 143: 0,12 + 144: 1,12 + 145: 2,12 + 545: -15,9 + 1565: 85,38 + 1627: 3,17 + 4163: -7,8 + 4176: -5,7 + - node: + color: '#D381C996' + id: BrickTileWhiteLineN + decals: + 1887: 36,8 + 1888: 37,8 + 1921: 39,17 + 1924: 40,17 + 1988: 42,17 + 1992: 43,17 + 1993: 44,17 + 1996: 46,18 + 2022: 47,31 + 2025: 49,30 + 2031: 49,27 + 2055: 48,7 + 2074: 53,27 + 2079: 53,30 + 2148: 57,22 + 2149: 58,22 + 2150: 59,22 + 2162: 54,21 + 3807: 53,4 + 3813: 51,7 + 3814: 50,7 + 4722: 32,5 + 4723: 33,5 + 4724: 34,5 + - node: + color: '#D4D4D496' + id: BrickTileWhiteLineN + decals: + 2536: 63,11 + 2720: 3,64 + 2721: 2,64 + 2722: 1,64 + 2723: 0,64 + 2724: -1,64 + 2735: 67,21 + 2736: 68,21 + 2737: 70,21 + 2738: 69,21 + 2739: 71,21 + - node: + color: '#DE3A3A96' + id: BrickTileWhiteLineN + decals: + 150: -6,11 + 151: -4,11 + 168: 6,29 + 169: 7,29 + 801: -16,49 + 802: -15,49 + 803: -14,49 + 808: -11,49 + 809: -10,49 + 810: -9,49 + 811: -8,49 + 812: -7,49 + 813: -6,49 + 814: -5,49 + 815: -4,49 + 816: -3,49 + 817: -2,49 + 818: -1,49 + 819: 0,49 + 820: 1,49 + 821: 2,49 + 822: 3,49 + 856: -6,64 + 857: -5,64 + 858: -3,64 + 921: -31,52 + 930: -29,55 + 948: -35,58 + 949: -34,58 + 954: -32,58 + 955: -31,58 + 956: -30,58 + 961: -28,58 + 962: -27,58 + 963: -26,58 + 964: -25,58 + 974: -25,64 + 985: -25,71 + 986: -24,71 + 1008: -22,58 + 1009: -23,58 + 1010: -21,58 + 1011: -20,58 + 1012: -19,58 + 1017: -17,58 + 1022: -15,58 + 1023: -14,58 + 1036: -9,67 + 1063: -11,59 + 1066: -9,60 + 1078: -11,56 + 1079: -10,56 + 1080: -9,56 + 1081: -8,56 + 1082: -7,56 + 1096: -3,56 + 1097: -2,56 + 1668: -7,30 + 1680: -4,31 + 1681: -5,31 + 1979: 45,14 + 2411: 61,57 + 2413: 59,57 + 2419: 61,60 + 2748: 72,15 + 2749: 73,15 + 2758: 70,15 + 2771: 68,11 + 2772: 69,11 + 2927: -35,37 + 4258: 4,29 + 4259: 5,29 + 4272: -6,17 + 4273: -5,17 + - node: + color: '#EFB34196' + id: BrickTileWhiteLineN + decals: + 583: -7,20 + 586: -5,21 + 587: -4,21 + 588: -3,21 + 604: -2,33 + 1186: -33,21 + 1192: -30,19 + 1193: -29,19 + 1194: -28,19 + 1195: -27,19 + 1196: -26,19 + 1201: -24,18 + 1206: -21,18 + 1211: -18,19 + 1214: -16,20 + 1217: -14,19 + 1220: -12,20 + 1279: -13,36 + 1301: -7,40 + 1302: -6,40 + 1303: -5,40 + 1304: -4,40 + 1313: -4,36 + 1323: -9,25 + 1355: -6,36 + 1387: -30,27 + 1390: -33,28 + 1660: -8,31 + 2934: -33,37 + 4186: 36,49 + 4187: 34,49 + - node: + zIndex: 100 + color: '#FA750096' + id: BrickTileWhiteLineN + decals: + 2870: 13,22 + 2882: 8,24 + 2883: 7,24 + - node: + color: '#334E6DC8' + id: BrickTileWhiteLineS + decals: + 878: -18,57 + 881: -20,57 + 891: -19,51 + 892: -20,51 + 1332: -8,27 + 1345: -5,23 + 1351: -7,27 + 1428: 67,42 + 1431: 69,43 + 1436: 72,43 + 1439: 74,42 + 1440: 75,42 + 1441: 76,42 + 1442: 77,42 + 1445: 79,43 + 1466: 75,37 + 1467: 76,37 + 1468: 77,37 + 1471: 79,38 + 1490: 69,45 + 1501: 72,45 + 1527: 82,42 + 1557: 82,33 + 1564: 82,36 + 1584: 78,34 + 1587: 76,33 + 1590: 74,34 + 1594: 72,33 + 1595: 71,33 + 1596: 70,33 + 1597: 69,33 + 1598: 68,33 + 1599: 67,33 + 1612: 19,37 + 1624: 17,37 + 1639: -1,14 + 1640: 0,14 + 1644: 2,16 + 1863: 31,3 + 2238: 42,33 + 2242: 40,33 + 2915: -37,36 + 4633: 23,-6 + 4634: 24,-6 + 4635: 25,-6 + 4637: 26,-6 + 4638: 27,-6 + 4639: 28,-6 + 4640: 29,-6 + 4641: 30,-6 + 4642: 31,-6 + 4645: 33,-7 + 4646: 34,-7 + 4647: 35,-7 + 4648: 36,-7 + 4649: 37,-7 + 4650: 38,-7 + 4697: 22,-6 + 4736: 29,-1 + 4737: 28,-1 + 4787: 36,-2 + 4804: 67,27 + 4809: 69,23 + 4810: 70,23 + - node: + color: '#52B4E996' + id: BrickTileWhiteLineS + decals: + 183: 7,37 + 184: 6,37 + 193: 4,43 + 202: 5,47 + 203: 4,47 + 204: 3,47 + 242: 17,24 + 257: 24,25 + 261: 22,23 + 262: 21,23 + 266: 19,25 + 287: 30,33 + 300: 29,47 + 301: 28,47 + 302: 27,47 + 303: 26,47 + 304: 25,47 + 305: 24,47 + 306: 23,47 + 307: 22,47 + 309: 20,47 + 310: 19,47 + 311: 18,47 + 312: 17,47 + 313: 16,47 + 314: 15,47 + 315: 14,47 + 322: 10,47 + 324: 9,47 + 325: 8,47 + 326: 7,47 + 334: 7,43 + 335: 6,43 + 352: 12,37 + 362: 12,43 + 363: 11,43 + 378: 16,41 + 379: 15,41 + 381: 14,44 + 419: 17,34 + 420: 15,34 + 421: 16,34 + 422: 14,34 + 423: 13,34 + 469: 25,44 + 487: 24,32 + 491: 26,31 + 492: 27,31 + 493: 28,31 + 496: 22,30 + 500: 20,32 + 578: 24,36 + 1580: 85,30 + 4299: 4,31 + - node: + color: '#9FED5896' + id: BrickTileWhiteLineS + decals: + 2585: 49,47 + 2595: 47,47 + 2612: 44,37 + 2613: 45,37 + 2614: 46,37 + 2615: 47,37 + 2621: 49,42 + 2651: 34,47 + 2652: 35,47 + 2653: 36,47 + 2656: 38,47 + 2657: 39,47 + 2658: 40,47 + - node: + color: '#A4610696' + id: BrickTileWhiteLineS + decals: + 13: -13,11 + 19: -13,9 + 27: -14,5 + 28: -13,5 + 30: -11,4 + 47: -12,9 + 50: -9,10 + 51: -8,10 + 52: -6,10 + 53: -7,10 + 54: -5,10 + 61: -3,3 + 62: -2,3 + 67: 0,3 + 68: 2,3 + 69: 3,3 + 78: 5,10 + 81: 9,10 + 82: 10,10 + 83: 11,10 + 108: 5,16 + 115: 9,19 + 123: 12,19 + 127: 11,15 + 128: 10,15 + 129: 9,15 + 130: 8,15 + 131: 7,15 + 134: 6,19 + 135: 5,19 + 136: 3,19 + 137: 1,19 + 138: 2,19 + 139: 0,19 + 140: -1,19 + 141: -2,19 + 580: -3,19 + 4170: -7,3 + 4175: -5,6 + 4266: -4,19 + 4267: -5,19 + 4704: 4,19 + - node: + zIndex: 100 + color: '#A4610696' + id: BrickTileWhiteLineS + decals: + 2928: -33,36 + - node: + color: '#D381C996' + id: BrickTileWhiteLineS + decals: + 1909: 39,8 + 1910: 38,8 + 1911: 37,8 + 1912: 36,8 + 1959: 40,15 + 1965: 47,16 + 2026: 49,30 + 2036: 49,24 + 2058: 48,6 + 2078: 53,30 + 2085: 53,33 + 2086: 51,33 + 2087: 52,33 + 2088: 50,33 + 2089: 49,33 + 2090: 48,33 + 2091: 47,33 + 2092: 46,33 + 2093: 45,33 + 2094: 44,33 + 2107: 55,24 + 2108: 54,24 + 2111: 58,33 + 2112: 58,33 + 2113: 57,33 + 2114: 59,33 + 2115: 60,33 + 2116: 62,33 + 2117: 61,33 + 2118: 63,33 + 2161: 54,21 + 2171: 58,15 + 2244: 38,33 + 2246: 37,33 + 2247: 36,33 + 2248: 35,33 + 2249: 34,33 + 4716: 34,3 + 4717: 33,3 + - node: + zIndex: 100 + color: '#D381C996' + id: BrickTileWhiteLineS + decals: + 2925: -35,36 + - node: + zIndex: 100 + color: '#D4D4D496' + id: BrickTileWhiteLineS + decals: + 2898: -31,36 + - node: + color: '#DE3A3A96' + id: BrickTileWhiteLineS + decals: + 163: -6,13 + 538: 9,31 + 838: 3,62 + 839: 2,62 + 840: 1,62 + 841: 0,62 + 842: -1,62 + 843: -2,62 + 844: -3,62 + 845: -4,62 + 846: -5,62 + 847: -6,62 + 848: -7,62 + 863: -14,54 + 864: -15,54 + 902: -22,57 + 903: -23,57 + 906: -25,57 + 907: -26,57 + 908: -27,57 + 920: -31,52 + 934: -29,57 + 935: -30,57 + 936: -31,57 + 940: -33,55 + 943: -35,56 + 969: -25,60 + 978: -25,66 + 994: -23,66 + 1004: -23,60 + 1050: -9,67 + 1053: -11,66 + 1070: -9,58 + 1073: -11,59 + 1115: -4,54 + 1116: -2,54 + 1117: -3,54 + 1118: -6,54 + 1119: -7,54 + 1120: -8,54 + 1121: -10,54 + 1122: -11,54 + 1673: -7,30 + 1675: -5,29 + 1676: -4,29 + 1971: 43,16 + 1976: 45,16 + 1983: 44,12 + 1984: 45,12 + 2407: 60,56 + 2408: 61,56 + 2418: 61,60 + 2744: 72,17 + 2752: 72,13 + 2753: 71,13 + 2754: 70,13 + 2762: 70,17 + 2763: 69,17 + 2764: 68,17 + 4263: 4,27 + 4264: 5,27 + - node: + color: '#EFB34196' + id: BrickTileWhiteLineS + decals: + 582: -7,20 + 603: -2,33 + 622: -3,47 + 623: -4,47 + 624: -5,47 + 625: -7,47 + 626: -6,47 + 627: -8,47 + 628: -9,47 + 629: -10,47 + 630: -11,47 + 631: -12,47 + 632: -13,47 + 633: -14,47 + 634: -15,47 + 635: -16,47 + 1130: -9,19 + 1131: -10,19 + 1132: -11,19 + 1137: -14,19 + 1140: -16,18 + 1141: -17,18 + 1144: -19,17 + 1147: -21,18 + 1152: -24,18 + 1163: -26,10 + 1168: -28,7 + 1169: -29,7 + 1170: -30,7 + 1171: -31,7 + 1172: -33,7 + 1230: -11,27 + 1242: -13,36 + 1309: -4,38 + 1318: -3,33 + 1319: -4,33 + 1359: -6,38 + 1360: -7,38 + 1361: -8,38 + 1373: -33,23 + 1374: -35,25 + 1386: -30,27 + 1394: -36,25 + 4224: -32,7 + - node: + zIndex: 100 + color: '#FA750096' + id: BrickTileWhiteLineS + decals: + 2880: 10,30 + 2884: 7,23 + 2885: 8,23 + 2886: 9,23 + - node: + zIndex: 100 + angle: 31.41592653589793 rad + color: '#FA750096' + id: BrickTileWhiteLineS + decals: + 2856: 11,30 + 2857: 13,30 + 2858: 14,30 + - node: + color: '#334E6DC8' + id: BrickTileWhiteLineW + decals: + 885: -19,56 + 894: -21,52 + 895: -21,53 + 896: -21,54 + 1347: -6,24 + 1348: -6,25 + 1349: -6,26 + 1407: 71,37 + 1412: 68,39 + 1413: 68,38 + 1416: 69,36 + 1449: 81,41 + 1452: 80,39 + 1461: 74,39 + 1462: 74,38 + 1473: 80,37 + 1474: 80,36 + 1492: 70,44 + 1502: 73,44 + 1541: 81,28 + 1546: 80,31 + 1547: 80,32 + 1550: 84,35 + 1551: 84,34 + 1552: 84,33 + 1622: 16,38 + 1626: 18,36 + 1636: -2,16 + 1637: -2,15 + 1645: 3,15 + 2222: 30,50 + 2223: 30,51 + 2911: -36,34 + 2939: -36,35 + 4654: 40,-9 + 4655: 40,-10 + 4656: 40,-11 + 4657: 40,-12 + 4658: 40,-13 + 4659: 40,-14 + 4660: 40,-15 + 4738: 28,0 + 4741: 27,2 + 4777: 23,-1 + 4778: 23,0 + 4789: 35,-1 + 4801: 68,28 + 4806: 68,25 + 4807: 68,24 + 4814: 71,24 + 4825: 68,26 + - node: + color: '#52B4E996' + id: BrickTileWhiteLineW + decals: + 177: 7,32 + 178: 7,33 + 179: 7,34 + 182: 8,36 + 185: 3,38 + 186: 3,40 + 187: 3,39 + 191: 5,42 + 196: 4,44 + 200: 6,46 + 243: 18,23 + 252: 26,22 + 255: 25,24 + 264: 20,24 + 276: 31,23 + 277: 31,24 + 278: 31,25 + 279: 31,26 + 280: 31,27 + 281: 31,29 + 282: 31,28 + 283: 31,30 + 284: 31,31 + 285: 31,32 + 288: 31,37 + 289: 31,38 + 290: 31,39 + 291: 31,40 + 292: 31,42 + 293: 31,41 + 294: 31,43 + 295: 31,44 + 296: 31,45 + 319: 11,46 + 354: 11,38 + 355: 11,39 + 356: 11,40 + 360: 13,42 + 365: 10,44 + 384: 16,42 + 397: 13,36 + 417: 18,33 + 432: 21,34 + 435: 22,37 + 436: 22,36 + 437: 22,38 + 438: 22,39 + 439: 22,40 + 442: 23,42 + 443: 23,43 + 444: 23,44 + 461: 25,38 + 462: 25,39 + 463: 25,40 + 466: 26,42 + 467: 26,43 + 482: 25,34 + 498: 21,31 + 514: 21,27 + 523: 25,26 + 524: 25,27 + 525: 25,28 + 542: 7,31 + 564: 25,35 + 576: 31,36 + 1086: -6,58 + 1087: -6,59 + 2905: -36,38 + 2906: -36,39 + 4295: 3,34 + 4296: 3,33 + 4297: 3,32 + - node: + zIndex: 100 + color: '#52B4E996' + id: BrickTileWhiteLineW + decals: + 2873: 12,22 + - node: + color: '#9FED5896' + id: BrickTileWhiteLineW + decals: + 2546: 64,46 + 2548: 64,45 + 2549: 64,44 + 2550: 64,43 + 2551: 64,42 + 2552: 64,41 + 2553: 64,40 + 2554: 64,39 + 2555: 64,38 + 2556: 64,37 + 2557: 64,36 + 2568: 50,36 + 2569: 50,37 + 2570: 50,39 + 2571: 50,40 + 2572: 50,38 + 2597: 48,46 + 2603: 44,44 + 2604: 44,43 + 2605: 44,42 + 2606: 44,41 + 2609: 43,39 + 2610: 43,38 + 2623: 50,41 + - node: + color: '#A4610696' + id: BrickTileWhiteLineW + decals: + 14: -12,10 + 21: -16,6 + 26: -15,4 + 44: -11,8 + 56: -4,9 + 57: -4,8 + 58: -4,5 + 59: -4,4 + 96: 6,12 + 116: 10,18 + 132: 7,18 + 149: 3,13 + 544: -14,13 + 547: -16,7 + 4165: -8,7 + 4166: -8,6 + 4167: -8,5 + 4168: -8,4 + - node: + zIndex: 100 + color: '#A4610696' + id: BrickTileWhiteLineW + decals: + 2909: -32,35 + 2910: -32,34 + - node: + color: '#D381C996' + id: BrickTileWhiteLineW + decals: + 1885: 35,7 + 1890: 38,9 + 1891: 38,10 + 1894: 39,12 + 1895: 39,13 + 1896: 39,14 + 1907: 40,7 + 1919: 38,17 + 1967: 48,15 + 1968: 48,14 + 1990: 41,18 + 2011: 46,21 + 2014: 47,23 + 2017: 46,28 + 2018: 46,27 + 2019: 46,29 + 2020: 46,30 + 2044: 47,19 + 2048: 49,12 + 2053: 49,8 + 2068: 53,23 + 2071: 52,25 + 2072: 52,26 + 2076: 54,28 + 2077: 54,29 + 2082: 54,31 + 2083: 54,32 + 2120: 64,32 + 2121: 64,31 + 2124: 64,29 + 2125: 64,28 + 2126: 64,27 + 2127: 64,26 + 2128: 64,25 + 2129: 64,24 + 2130: 64,23 + 2131: 64,22 + 2132: 64,21 + 2133: 64,20 + 2134: 64,19 + 2159: 55,20 + 2942: -34,34 + 3778: 49,5 + 4712: 35,6 + 4719: 30,3 + 4720: 30,4 + - node: + zIndex: 100 + color: '#D381C996' + id: BrickTileWhiteLineW + decals: + 2914: -34,35 + - node: + color: '#D4D4D496' + id: BrickTileWhiteLineW + decals: + 2533: 62,9 + 2534: 62,10 + 2540: 63,14 + 2541: 63,15 + 2544: 64,17 + 2714: 4,68 + 2717: 4,66 + 2718: 4,65 + - node: + color: '#DE3A3A96' + id: BrickTileWhiteLineW + decals: + 157: -5,12 + 164: -7,14 + 176: 8,30 + 805: -13,50 + 824: 4,50 + 825: 4,51 + 826: 4,52 + 827: 4,53 + 828: 4,54 + 829: 4,55 + 830: 4,56 + 831: 4,57 + 834: 4,59 + 835: 4,60 + 836: 4,61 + 850: -8,63 + 853: -7,65 + 859: -13,51 + 860: -13,52 + 861: -13,53 + 871: -16,52 + 872: -16,53 + 873: -16,54 + 874: -16,55 + 875: -16,56 + 927: -30,53 + 928: -30,54 + 932: -28,56 + 966: -24,59 + 970: -26,61 + 971: -26,62 + 972: -26,63 + 976: -24,65 + 980: -26,67 + 981: -26,68 + 982: -26,69 + 983: -26,70 + 1025: -13,59 + 1026: -13,61 + 1027: -13,60 + 1028: -13,62 + 1029: -13,63 + 1032: -12,65 + 1107: -1,53 + 1111: -9,53 + 1112: -5,53 + 1408: 71,40 + 1666: -6,32 + 1667: -6,31 + 1973: 44,15 + 1985: 43,13 + 2425: 59,61 + 2426: 59,60 + 2429: 60,58 + 2756: 69,14 + 2760: 71,16 + 4261: 3,28 + 4275: -7,16 + 4276: -7,15 + 4869: 43,12 + 4876: -12,67 + - node: + zIndex: 100 + color: '#DE3A3A96' + id: BrickTileWhiteLineW + decals: + 2881: 10,30 + 2918: -34,39 + 2919: -34,38 + - node: + color: '#EFB34196' + id: BrickTileWhiteLineW + decals: + 590: -2,22 + 593: -1,24 + 594: -1,25 + 595: -1,26 + 596: -1,27 + 597: -1,28 + 598: -1,29 + 599: -1,30 + 600: -1,32 + 601: -1,31 + 606: -1,34 + 607: -1,35 + 608: -1,36 + 609: -1,37 + 610: -1,38 + 611: -1,39 + 612: -1,40 + 613: -1,41 + 614: -1,42 + 617: -1,44 + 620: -2,46 + 1150: -23,17 + 1174: -34,10 + 1175: -34,11 + 1176: -34,12 + 1177: -34,13 + 1178: -34,14 + 1179: -34,15 + 1180: -34,16 + 1181: -34,18 + 1182: -34,17 + 1183: -34,19 + 1184: -34,20 + 1203: -23,19 + 1222: -11,21 + 1223: -11,22 + 1224: -11,23 + 1225: -11,24 + 1228: -10,26 + 1232: -12,28 + 1235: -11,30 + 1238: -12,33 + 1239: -12,34 + 1240: -12,35 + 1283: -11,38 + 1286: -12,40 + 1352: -7,34 + 1353: -7,35 + 1357: -5,37 + 1378: -32,22 + 1662: -7,33 + 4191: 35,52 + 4192: 35,52 + 4193: 35,51 + 4194: 35,50 + 4222: -34,8 + 4223: -34,9 + - node: + zIndex: 100 + color: '#EFB34196' + id: BrickTileWhiteLineW + decals: + 2907: -32,39 + 2908: -32,38 + - node: + zIndex: 100 + color: '#FA750096' + id: BrickTileWhiteLineW + decals: + 2860: 15,29 + 2861: 16,24 + 2862: 16,27 + 2863: 16,26 + - node: + zIndex: 100 + angle: 6.283185307179586 rad + color: '#FA750096' + id: BrickTileWhiteLineW + decals: + 2846: 9,25 + 2847: 10,27 + - node: + zIndex: 100 + angle: 10.995574287564276 rad + color: '#FA750096' + id: BrickTileWhiteLineW + decals: + 2848: 11,28 + 2849: 12,28 + - node: + zIndex: 100 + angle: 14.137166941154069 rad + color: '#FA750096' + id: BrickTileWhiteLineW + decals: + 2850: 13,24 + 2851: 12,24 + 2852: 11,24 + - node: + color: '#FFFFFFFF' + id: BushDThree + decals: + 724: -2,72 + 725: -1,74 + 726: 0,75 + 727: 7,72 + 728: 9,74 + 729: 8,73 + - node: + color: '#FFFFFFFF' + id: Busha1 + decals: + 775: 6.9581475,77.98995 + 776: 9.035699,76.69938 + 777: 9.891987,76.657295 + 778: 9.442786,76.13826 + - node: + color: '#FFFFFFFF' + id: Bushb2 + decals: + 721: 0,70 + 722: -1,71 + 723: -2,75 + 2940: 33,18 + - node: + color: '#FFFFFFFF' + id: Bushd4 + decals: + 2941: 32,18 + - node: + color: '#FFFFFFFF' + id: Bushf1 + decals: + 743: 8.701018,72.975945 + 744: 8.097405,73.84567 + 745: 9.304631,72.83566 + 746: 8.300048,72.33791 + 747: 8.987885,71.73471 + 748: 9.437085,71.98721 + 749: 9.830135,78.25876 + 750: 10.321448,77.9782 + 751: 9.984549,77.43111 + - node: + color: '#FFFFFFFF' + id: Bushh1 + decals: + 730: 6.1860366,72.687935 + 731: 7.196737,73.31919 + 732: 6.8387804,72.87731 + 733: 6.988714,72.370224 + 734: 6.2306886,72.054596 + 735: -0.7916156,70.24648 + 736: -1.240816,70.372734 + 737: -0.84776556,69.79759 + 738: -2.1251793,74.06045 + 739: -1.3110031,74.38309 + 740: 2.0526922,78.32553 + 741: 2.3053677,78.14317 + 742: 2.4597797,78.059006 + 779: 9.063538,70.10648 + 780: 9.990012,70.232735 + 781: 9.147762,69.7137 + 782: 9.428513,70.17662 + - node: + color: '#FFFFFFFF' + id: Bushi2 + decals: + 755: 8.80135,75.70484 + 756: 9.826087,75.46636 + - node: + color: '#FFFFFFFF' + id: Bushi3 + decals: + 752: 8.313764,75.95757 + 753: 8.9173765,75.045525 + 754: 8.103201,75.6347 + - node: + color: '#FFFFFFFF' + id: Bushi4 + decals: + 757: 9.741834,74.371445 + 758: 9.854134,73.249214 + 759: 3.192065,77.86268 + 760: 3.22014,77.3298 + 761: 3.7254906,77.30172 + 762: 3.8097153,78.04227 + 763: -1.864522,70.719055 + 764: -1.9347098,70.10183 + 765: -1.9768219,69.86335 + 766: -2.1171975,73.178085 + 767: -2.10316,72.81336 + - node: + color: '#FFFFFFFF' + id: Bushm1 + decals: + 794: 11.070395,70.46965 + 795: 11.870534,70.91241 + 796: 12.389921,70.85629 + 797: 11.828421,70.81421 + 798: 12.067059,71.24908 + - node: + color: '#FFFFFFFF' + id: Bushm2 + decals: + 768: -0.9441774,75.07202 + 769: 5.5321712,71.8456 + 770: 5.7146583,72.65922 + 771: 6.739396,74.076035 + 772: 7.4693475,74.062004 + 773: 8.916599,73.92723 + - node: + color: '#FFFFFFFF' + id: Bushn1 + decals: + 783: 12.320795,69.86638 + 784: 12.054083,70.24513 + 785: 11.661032,69.922485 + 786: 7.817417,72.18015 + 787: 8.912344,73.62502 + 788: 8.336805,74.71921 + 789: -2.2574775,71.69938 + 790: -1.5696402,71.096176 + 791: -2.0328777,74.126205 + 792: 10.204514,75.144905 + 793: 10.747977,69.92256 + 4987: -33.747612,71.87493 + 4988: -30.082,72.072716 + 4989: -29.936958,75.06785 + 4990: -33.912235,74.93599 + - node: + angle: -1.5707963267948966 rad + color: '#FFFFFFFF' + id: Caution + decals: + 3843: 49,-3 + - node: + color: '#FFFFFFFF' + id: Caution + decals: + 3842: 50,-4 + - node: + angle: 1.5707963267948966 rad + color: '#FFFFFFFF' + id: Caution + decals: + 3844: 51,-3 + - node: + color: '#DE3A3A96' + id: Delivery + decals: + 2949: -18,65 + 2950: -17,65 + - node: + color: '#FFFFFFFF' + id: Delivery + decals: + 1951: 32,13 + 1952: 33,13 + 1953: 33,14 + 2228: 39,54 + 2229: 40,54 + 2230: 41,54 + 2437: 72,40 + 2452: 78,45 + 4185: 34,54 + 4249: -28,12 + 4250: -28,14 + 4251: -34,6 + 4252: -35,7 + 4253: -30,6 + 4254: -35,11 + 4255: -35,15 + 4304: -37,25 + 4305: -37,27 + 4306: -31,24 + 4307: -36,28 + 4314: -22,28 + 4315: -21,28 + 4316: -20,25 + 4317: -21,25 + 4318: -19,25 + 4319: -18,25 + 4320: -18,28 + 4321: -19,29 + 4322: -16,30 + 4323: -16,31 + 4324: -15,34 + 4325: -17,35 + 4326: -17,33 + 4331: -17,31 + 4332: -17,30 + 4333: -17,37 + 4334: -17,38 + - node: + color: '#951710FF' + id: Dirt + decals: + 2799: 27,65 + 2800: 28,65 + 2801: 28,64 + 2802: 28,64 + 2803: 28,65 + 2804: 27,65 + 2805: 28,65 + 2806: 28,65 + 2807: 28,65 + 2808: 29,65 + 2809: 29,65 + 2810: 29,65 + 2814: 27,63 + 2815: 27,63 + 2816: 27,62 + 2817: 26,62 + 2818: 26,62 + 2819: 27,62 + 2820: 28,62 + 2821: 28,61 + 2822: 28,61 + 2823: 26,65 + 2824: 27,64 + 2825: 27,64 + 2826: 26,64 + 2827: 26,64 + 2828: 29,64 + 2829: 29,63 + 2830: 29,63 + 2831: 29,62 + 2832: 29,62 + 2833: 28,62 + 2834: 28,63 + 2835: 29,64 + - node: + cleanable: True + color: '#FFFFFFFF' + id: Dirt + decals: + 1756: 15,5 + 1757: 15,4 + 1758: 14,3 + 1759: 14,3 + 1760: 15,1 + 1761: 15,1 + 1762: 16,2 + 1763: 16,3 + 1764: 16,2 + 1765: 16,2 + 1766: 14,6 + 1767: 13,6 + 1768: 13,7 + 1769: 15,7 + 1770: 15,8 + 1771: 12,8 + 1772: 11,8 + 1773: 11,7 + 1774: 10,8 + 1775: 8,7 + 1776: 7,7 + 1777: 7,7 + 1778: 7,7 + 1779: 6,7 + 1780: 6,6 + 1781: 7,4 + 1782: 8,4 + 1783: 9,4 + 3021: 42,21 + 3022: 42,21 + 3023: 40,21 + 3024: 40,21 + 3025: 40,20 + 3026: 41,20 + 3027: 41,19 + 3028: 40,19 + 3029: 43,19 + 3030: 43,20 + 3090: 49,11 + 3091: 50,11 + 3092: 50,10 + 3123: 60,38 + 3230: 68,52 + 3231: 68,50 + 3232: 69,50 + 3233: 70,51 + 3234: 69,51 + 3235: 70,50 + 3236: 70,50 + 3441: -19,68 + 3442: -19,67 + 3443: -15,68 + 3444: -16,69 + 3445: -18,69 + 3446: -17,67 + 3447: -16,66 + 3553: 16,44 + 3554: 15,43 + 3564: 26,42 + 3565: 28,42 + 3566: 29,42 + 3567: 29,40 + 3568: 27,44 + 3569: 28,45 + 3590: 27,27 + 3591: 28,27 + 3592: 28,26 + 3593: 28,26 + 3594: 29,27 + 3595: 26,29 + 3596: 26,27 + 3597: 26,26 + 3598: 27,28 + 3599: 26,25 + 3600: 26,24 + 3601: 25,24 + 3602: 25,24 + 3603: 26,23 + 3604: 23,25 + 3605: 23,27 + 3606: 23,27 + 3607: 21,25 + 3608: 22,24 + 3609: 22,24 + 3610: 22,24 + 3611: 19,24 + 3612: 20,24 + 3613: 21,26 + 3614: 22,27 + 3615: 23,25 + 3616: 23,25 + 3617: 23,24 + 4080: -15,-1 + 4081: -15,-1 + 4082: -17,0 + 4083: -15,1 + 4084: -15,2 + 4085: -15,-1 + 4086: -17,-2 + 4087: -14,-2 + 4088: -14,-2 + 4089: -14,0 + 4090: -16,0 + 4091: -16,-2 + 4092: -17,-1 + 4093: -18,1 + 4094: -18,2 + 4095: -18,0 + 4096: -17,-1 + 4097: -18,-2 + 4098: -15,2 + 4099: -15,3 + 4100: -14,3 + 4101: -15,2 + 4102: -15,4 + 4103: -15,5 + 4104: -15,6 + 4105: -15,6 + 4106: -16,5 + 4107: -16,7 + 4108: -15,9 + 4109: -14,9 + 4110: -14,6 + 4111: -13,6 + 4112: -15,7 + 4113: -15,6 + 4114: -15,7 + 4115: -18,8 + 4116: -18,8 + 4117: -18,7 + 4118: -19,7 + 4119: -18,7 + 4120: -18,6 + 4121: -18,6 + 4122: -15,7 + 4123: -15,8 + 4124: -15,8 + 4125: -13,5 + 4126: -12,4 + 4127: -11,6 + 4128: -11,5 + 4129: -11,4 + 4130: -10,4 + 4131: -11,6 + 4132: -11,7 + 4133: -11,8 + 4134: -11,9 + 4135: -11,10 + 4136: -11,11 + 4137: -13,12 + 4138: -13,12 + 4139: -10,9 + 4140: -11,12 + 4141: -12,13 + 4142: -12,13 + 4143: -12,11 + 4144: -13,12 + 4145: -8,12 + 4146: -11,12 + 4147: -12,12 + 4148: -9,11 + 4149: -8,10 + 4150: -11,11 + 4151: -12,11 + 4152: -10,10 + 4153: -7,10 + 4154: -11,13 + 4155: -12,14 + 4156: -11,12 + 4157: -10,12 + 4158: -10,11 + 4159: -10,12 + 4160: -10,11 + - node: + color: '#951710FF' + id: DirtHeavy + decals: + 2785: 28,64 + 2786: 28,64 + 2787: 28,64 + 2788: 28,64 + 2789: 28,63 + 2790: 28,63 + 2811: 27,63 + 2812: 27,63 + 2813: 27,63 + - node: + color: '#FFFFFFFF' + id: DirtHeavy + decals: + 3737: 69,61 + 3738: 73,61 + 3739: 75,60 + 3740: 75,59 + 3741: 78,60 + 3742: 78,61 + 3743: 75,61 + 3744: 75,62 + 3745: 74,61 + - node: + cleanable: True + color: '#FFFFFFFF' + id: DirtHeavy + decals: + 1784: 6,4 + 1785: 7,3 + 1786: 7,3 + 1787: 6,3 + 1788: 6,4 + 1789: 7,4 + 1790: 9,4 + 1791: 9,3 + 1792: 9,4 + 1793: 6,2 + 1794: 6,2 + 1795: 7,3 + 1796: 7,3 + 1797: 12,7 + 1798: 12,6 + 1799: 13,7 + 1800: 14,8 + 1801: 13,7 + 1802: 14,6 + 1803: 14,7 + 1804: 13,7 + 1805: 16,5 + 1806: 16,6 + 1807: 13,6 + 1808: 13,5 + 1809: 15,6 + 1810: 15,3 + 1811: 14,2 + 1812: 15,2 + 1813: 15,2 + 1814: 15,1 + 1815: 14,1 + 1816: 15,2 + 1817: 12,4 + 1818: 12,4 + 1819: 12,5 + 1820: 13,6 + 1821: 14,7 + 3031: 42,20 + 3032: 42,20 + 3033: 42,19 + 3034: 42,20 + 3035: 43,21 + 3036: 43,21 + 3037: 44,21 + 3038: 44,20 + 3039: 44,20 + 3055: 34,15 + 3103: 57,19 + 3120: 60,42 + 3121: 61,42 + 3122: 61,43 + 3154: 44,42 + 3155: 44,42 + 3227: 63,50 + 3228: 66,52 + 3229: 64,53 + 3340: -2,47 + 3341: 4,47 + 3342: 3,47 + 3343: -6,47 + 3344: -7,47 + 3345: -11,49 + 3346: -13,47 + 3347: -13,47 + 3348: 0,40 + 3349: -2,36 + 3350: -2,33 + 3351: 0,31 + 3352: 0,31 + 3353: 1,30 + 3354: -1,27 + 3355: -1,27 + 3356: 1,26 + 3357: -2,24 + 3358: -1,19 + 3359: -2,19 + 3360: -7,20 + 3361: -6,21 + 3362: 1,19 + 3363: 9,18 + 3364: 12,19 + 3365: 22,19 + 3366: 25,20 + 3367: 28,20 + 3368: 30,19 + 3369: 30,19 + 3370: 28,19 + 3371: 26,18 + 3372: 23,17 + 3373: 24,16 + 3374: 23,14 + 3375: 25,13 + 3376: 26,13 + 3377: 26,15 + 3378: 23,14 + 3379: 28,14 + 3380: 21,12 + 3381: 22,10 + 3382: 21,9 + 3383: 22,8 + 3384: 27,10 + 3385: 35,47 + 3386: 39,48 + 3387: 39,49 + 3388: 15,47 + 3389: 14,49 + 3408: -2,52 + 3409: -2,51 + 3410: -1,51 + 3411: -1,52 + 3412: -1,51 + 3413: -1,54 + 3414: -3,56 + 3415: -5,55 + 3416: -5,54 + 3417: -2,55 + 3418: 0,55 + 3419: -8,56 + 3420: -9,55 + 3421: -11,55 + 3422: -12,55 + 3423: -13,54 + 3424: -13,53 + 3425: -11,57 + 3426: -12,58 + 3427: -16,57 + 3428: -16,55 + 3429: -15,55 + 3430: -13,57 + 3431: -12,60 + 3432: -12,61 + 3433: -12,63 + 3434: -13,64 + 3435: -18,62 + 3436: -19,61 + 3437: -20,60 + 3438: -20,64 + 3439: -17,64 + 3440: -17,64 + 3448: -23,69 + 3449: -23,69 + 3450: -23,70 + 3451: -25,71 + 3452: -25,70 + 3453: -24,68 + 3485: -33,53 + 3486: -33,53 + 3487: -32,51 + 3488: -29,52 + 3489: -28,53 + 3490: -28,54 + 3491: -29,55 + 3492: -27,51 + 3493: -27,51 + 3494: -20,54 + 3495: -19,55 + 3496: -15,49 + 3497: -18,38 + 3498: -15,38 + 3499: -17,36 + 3500: -18,37 + 3501: -26,30 + 3502: -26,28 + 3503: -26,28 + 3504: -24,28 + 3505: -23,28 + 3506: -20,27 + 3507: -20,28 + 3508: -23,26 + 3509: -31,27 + 3510: -32,26 + 3511: -32,25 + 3512: -33,24 + 3513: -30,24 + 3514: -32,23 + 3515: -33,24 + 3516: -33,25 + 3517: -31,25 + 3518: -32,26 + 3519: -33,27 + 3520: -34,28 + 3521: -32,28 + 3522: -31,28 + 3523: -34,29 + 3524: -34,26 + 3525: -34,25 + 3526: -38,26 + 3527: -36,25 + 3528: -35,28 + 3529: -28,20 + 3530: -27,22 + 3531: -22,18 + 3532: -23,17 + 3533: -21,19 + 3534: -18,18 + 3535: -19,18 + 3536: -18,17 + 3537: -15,19 + 3538: -14,20 + 3539: -15,19 + 3540: -12,19 + 3541: -11,20 + 3542: -9,20 + 3543: -1,25 + 3544: 1,30 + 3545: -2,32 + 3546: 12,44 + 3547: 13,40 + 3548: 17,43 + 3549: 15,42 + 3550: 18,44 + 3551: 17,45 + 3552: 18,45 + 3712: 17,38 + 3713: 17,39 + 3714: 23,43 + 3715: 24,43 + 3716: 36,44 + 3717: 37,45 + 3718: 38,44 + 3719: 36,43 + 3720: 35,43 + 3721: 40,47 + 3722: 40,47 + 3723: 38,47 + 3724: 37,47 + 3725: 40,49 + 3726: 41,48 + 3727: 42,47 + 3728: 42,52 + 3729: 41,51 + 3730: 41,50 + 3731: 41,51 + 3732: 40,53 + 3733: 39,54 + 3734: 42,53 + 3735: 44,54 + 3971: -15,-7 + 3972: -15,-7 + 3973: -16,-5 + 3974: -16,-5 + 3975: -17,-6 + 3976: -16,-8 + 3977: -17,-7 + 3978: -17,-5 + 3979: -17,-5 + 3980: -17,-7 + 3981: -17,-8 + 3982: -16,-6 + 3983: -17,-4 + 3984: -17,-6 + 3985: -15,-6 + 3986: -15,-5 + 3987: -15,-4 + 3988: -16,-5 + 3989: -17,-2 + 3990: -17,-1 + 3991: -17,-2 + 3992: -18,-1 + 3993: -17,0 + 3994: -17,1 + 3995: -16,-2 + 3996: -15,-1 + 3997: -15,-1 + 3998: -14,0 + 3999: -14,-2 + 4000: -15,-1 + 4001: -14,1 + 4002: -15,2 + 4003: -17,1 + 4004: -15,2 + 4005: -15,3 + 4006: -17,0 + 4007: -17,-1 + 4008: -15,1 + 4009: -16,-1 + 4010: -16,0 + 4011: -15,3 + 4012: -15,6 + 4013: -13,7 + 4014: -13,6 + 4015: -14,6 + 4016: -14,5 + 4017: -12,5 + 4018: -15,5 + 4019: -15,5 + 4020: -15,5 + 4021: -16,5 + 4022: -16,6 + 4023: -16,6 + 4024: -16,8 + 4025: -15,8 + 4026: -14,9 + 4027: -14,8 + 4028: -14,8 + 4029: -15,9 + 4030: -14,9 + 4031: -13,10 + 4032: -13,9 + 4033: -12,9 + 4034: -12,10 + 4035: -12,10 + 4036: -12,9 + 4037: -12,10 + 4038: -11,10 + 4039: -11,9 + 4040: -11,11 + 4041: -11,11 + 4042: -10,10 + 4043: -10,9 + 4044: -11,11 + 4045: -13,11 + 4046: -13,12 + 4047: -13,12 + 4048: -13,12 + 4049: -11,11 + 4050: -11,11 + 4051: -12,13 + 4052: -9,10 + 4053: -8,10 + 4054: -10,6 + 4055: -10,6 + 4056: -11,6 + 4057: -11,5 + 4058: -12,5 + 4059: -10,4 + 4060: -10,4 + 4061: -12,4 + 4062: -11,5 + 4063: -12,4 + 4064: -10,5 + 4065: -12,6 + 4066: -11,5 + 4067: -13,6 + 4068: -14,5 + 4069: -11,5 + 4070: -11,5 + 4071: -14,5 + 4072: -12,5 + 4073: -13,5 + 4074: -15,1 + 4075: -15,1 + 4076: -14,0 + 4077: -14,0 + 4078: -14,-1 + 4079: -14,-1 + - node: + color: '#951710FF' + id: DirtHeavyMonotile + decals: + 2791: 28,62 + 2792: 28,62 + 2793: 28,62 + 2794: 28,61 + 2795: 28,61 + 2796: 29,63 + 2797: 29,63 + 2798: 29,63 + - node: + color: '#FFFFFFFF' + id: DirtHeavyMonotile + decals: + 3746: 69,58 + 3747: 63,60 + 3748: 70,56 + 3749: 67,55 + 3750: 67,45 + 3751: 68,43 + - node: + cleanable: True + color: '#FFFFFFFF' + id: DirtHeavyMonotile + decals: + 1822: 14,7 + 1823: 14,7 + 1824: 14,8 + 1825: 13,8 + 1826: 13,7 + 1827: 14,7 + 1828: 16,6 + 1829: 17,5 + 1830: 18,5 + 1831: 16,6 + 1832: 16,6 + 1833: 18,6 + 1834: 17,5 + 1835: 17,5 + 1836: 18,6 + 1837: 18,6 + 1838: 18,6 + 1839: 17,6 + 1840: 18,6 + 1841: 18,6 + 1842: 18,7 + 1843: 18,8 + 1844: 18,9 + 1845: 18,9 + 1846: 17,9 + 1847: 9,7 + 1848: 8,7 + 1849: 9,7 + 1850: 7,7 + 1851: 6,7 + 1852: 9,4 + 1853: 9,4 + 1854: 8,4 + 1855: 9,4 + 1856: 9,3 + 3008: 53,25 + 3009: 56,29 + 3010: 54,30 + 3011: 50,27 + 3012: 50,26 + 3013: 50,25 + 3014: 50,24 + 3015: 48,26 + 3016: 47,26 + 3017: 47,25 + 3018: 49,24 + 3019: 49,24 + 3020: 47,24 + 3056: 35,10 + 3057: 35,10 + 3058: 36,11 + 3059: 38,11 + 3060: 39,9 + 3061: 41,7 + 3062: 36,7 + 3093: 49,10 + 3094: 48,9 + 3095: 57,17 + 3096: 58,17 + 3097: 58,16 + 3098: 59,16 + 3099: 59,17 + 3100: 59,21 + 3101: 60,20 + 3102: 60,21 + 3109: 62,30 + 3110: 61,29 + 3111: 57,38 + 3112: 57,39 + 3113: 58,40 + 3114: 58,40 + 3115: 60,40 + 3116: 62,40 + 3117: 62,37 + 3118: 62,37 + 3119: 60,37 + 3124: 56,43 + 3125: 56,44 + 3126: 57,45 + 3127: 57,45 + 3128: 56,46 + 3129: 56,46 + 3130: 55,46 + 3131: 55,46 + 3132: 57,46 + 3133: 57,46 + 3134: 54,46 + 3135: 54,46 + 3136: 53,46 + 3137: 53,46 + 3138: 53,46 + 3139: 52,45 + 3140: 52,44 + 3141: 52,44 + 3142: 53,43 + 3143: 54,42 + 3144: 54,42 + 3145: 55,42 + 3146: 45,40 + 3147: 47,42 + 3148: 49,43 + 3149: 47,43 + 3150: 46,44 + 3151: 46,42 + 3152: 49,41 + 3153: 50,42 + 3195: 46,33 + 3196: 43,35 + 3197: 43,35 + 3198: 49,33 + 3199: 58,33 + 3200: 56,33 + 3201: 54,33 + 3202: 59,35 + 3203: 62,35 + 3204: 64,35 + 3205: 70,33 + 3206: 70,33 + 3207: 71,35 + 3208: 73,35 + 3209: 72,33 + 3210: 69,36 + 3211: 71,39 + 3212: 71,38 + 3213: 72,37 + 3214: 72,40 + 3215: 63,38 + 3216: 65,39 + 3217: 66,40 + 3218: 66,41 + 3219: 64,42 + 3220: 63,42 + 3221: 65,43 + 3222: 65,44 + 3223: 65,47 + 3224: 64,47 + 3225: 64,47 + 3226: 66,47 + 3237: 68,50 + 3238: 69,49 + 3239: 69,49 + 3240: 70,49 + 3241: 69,49 + 3242: 68,48 + 3243: 68,48 + 3244: 70,48 + 3245: 69,50 + 3246: 68,49 + 3247: 68,52 + 3248: 69,52 + 3249: 70,52 + 3250: 73,44 + 3251: 73,43 + 3252: 74,43 + 3253: 77,44 + 3254: 76,44 + 3255: 75,43 + 3256: 77,42 + 3257: 78,42 + 3258: 77,44 + 3259: 35,37 + 3260: 37,38 + 3261: 37,40 + 3262: 35,38 + 3263: 37,38 + 3264: 40,37 + 3265: 41,38 + 3283: 21,34 + 3284: 22,34 + 3285: 22,32 + 3286: 22,31 + 3287: 24,31 + 3288: 22,30 + 3289: 22,30 + 3290: 18,31 + 3291: 17,30 + 3292: 16,29 + 3293: 15,29 + 3294: 16,28 + 3295: 17,28 + 3296: 19,28 + 3297: 17,30 + 3298: 11,31 + 3299: 12,30 + 3300: 11,31 + 3301: 11,33 + 3302: 12,33 + 3303: 13,34 + 3304: 17,35 + 3305: 19,35 + 3306: 18,34 + 3390: 5,56 + 3391: 5,58 + 3392: 5,58 + 3393: 6,58 + 3394: -1,63 + 3395: -2,62 + 3396: -2,62 + 3397: -2,62 + 3398: 3,62 + 3399: -6,64 + 3555: 23,39 + 3556: 22,40 + 3557: 22,38 + 3558: 22,37 + 3559: 27,40 + 3560: 26,40 + 3561: 26,39 + 3562: 26,38 + 3563: 29,39 + 3618: 22,26 + 3619: 22,25 + 3620: 22,25 + 3621: 23,26 + 3622: 22,25 + 3623: 22,24 + 3624: 23,24 + 3625: 20,24 + 3626: 25,25 + 3627: 26,26 + 3628: 26,27 + 3629: 27,28 + 3630: 27,28 + 3631: 26,28 + 3632: 25,28 + 3633: 25,27 + 3634: 25,26 + 3635: 22,19 + 3636: 25,25 + 3637: 24,19 + 3638: 15,18 + 3639: 14,18 + 3640: 9,15 + 3641: 9,15 + 3642: 13,15 + 3643: 11,15 + 3644: 12,16 + 3645: 9,13 + 3646: 12,10 + 3647: 12,10 + 3648: 9,10 + 3649: 8,9 + 3650: 8,9 + 3651: 7,12 + 3652: 6,13 + 3653: 0,11 + 3654: 0,8 + 3655: 1,8 + 3656: 1,8 + 3657: 1,4 + 3658: 2,4 + 3659: 4,4 + 3660: 3,3 + 3661: 3,7 + 3662: 3,9 + 3663: 4,9 + 3664: 4,12 + 3665: 3,13 + 3666: 1,11 + 3667: 1,11 + 3668: -2,7 + 3669: -4,5 + 3670: -4,3 + 3671: -4,3 + 3672: -3,8 + 3673: -3,10 + 3674: -2,10 + 3675: -1,9 + 3676: -1,8 + 3677: 2,11 + 3678: -3,10 + 3679: -4,11 + 3680: -4,6 + 3681: -7,2 + 3682: -7,9 + 3683: -7,12 + 3684: -9,11 + 3685: -10,10 + 3686: -11,9 + 3687: -11,12 + 3688: -11,12 + 3689: -13,13 + 3690: -12,14 + 3691: -11,14 + 3692: -11,14 + 3693: -10,13 + 3694: -14,12 + 3695: -14,11 + 3696: -13,10 + 3697: -12,8 + 3698: -15,7 + 3699: -15,6 + 3700: -13,5 + 3701: -11,5 + 3702: -11,6 + 3703: -14,6 + 3704: -14,5 + 3705: -14,9 + 3706: -14,9 + 3707: -15,8 + 3708: -17,3 + 3709: -15,3 + 3710: -15,3 + 3711: -15,2 + 3861: -18,-2 + 3862: -14,-1 + 3863: -15,1 + 3864: -15,0 + 3865: -17,0 + 3866: -17,0 + 3867: -17,1 + 3868: -16,-1 + 3869: -17,-2 + 3870: -16,1 + 3871: -14,1 + 3872: -14,2 + 3873: -14,2 + 3874: -16,3 + 3875: -16,3 + 3876: -15,2 + 3877: -13,6 + 3878: -12,6 + 3879: -14,7 + 3880: -15,8 + 3881: -15,7 + 3882: -15,7 + 3883: -15,7 + 3884: -14,6 + 3885: -12,5 + 3886: -12,6 + 3887: -11,7 + 3888: -11,9 + 3889: -11,9 + 3890: -11,9 + 3891: -11,9 + 3892: -11,9 + 3893: -11,9 + 3894: -11,7 + 3895: -11,7 + 3896: -12,9 + 3897: -12,11 + 3898: -12,11 + 3899: -12,11 + 3900: -12,10 + 3901: -12,9 + 3902: -10,10 + 3903: -10,10 + 3904: -10,9 + 3905: -11,9 + 3906: -12,9 + 3907: -11,9 + 3908: -11,6 + 3909: -10,5 + 3910: -11,4 + 3911: -10,4 + 3912: -11,5 + 3913: -12,5 + 3914: -12,5 + 3915: -11,6 + 3916: -12,6 + 3917: -13,7 + 3918: -15,6 + 3919: -14,6 + 3920: -14,3 + 3921: -14,2 + 3922: -16,2 + 3923: -16,2 + 3924: -18,1 + 3925: -18,1 + 3926: -18,2 + 3927: -18,2 + 3928: -17,2 + 3929: -17,2 + 3930: -17,1 + 3931: -17,1 + 3932: -17,1 + 3933: -18,0 + 3934: -17,0 + 3935: -16,-1 + 3936: -18,-2 + 3937: -16,0 + 3938: -16,-1 + 3939: -16,-4 + 3940: -15,-5 + 3941: -16,-4 + 3942: -18,-5 + 3943: -16,-5 + 3944: -16,-5 + 3945: -16,-5 + 3946: -16,-5 + 3947: -17,-5 + 3948: -16,-7 + 3949: -16,-8 + 3950: -15,-6 + 3951: -17,-5 + 3952: -17,-7 + 3953: -17,-8 + 3954: -16,-7 + 3955: -16,-6 + 3956: -18,-4 + 3957: -17,-6 + 3958: -16,-7 + 3959: -16,-8 + 3960: -17,-9 + 3961: -16,-10 + 3962: -16,-10 + 3963: -16,-10 + 3964: -16,-10 + 3965: -16,-7 + 3966: -16,-7 + 3967: -18,-8 + 3968: -18,-7 + 3969: -17,-6 + 3970: -17,-6 + - node: + cleanable: True + color: '#FFFFFFFF' + id: DirtLight + decals: + 2960: 66,58 + 2961: 65,60 + 2962: 65,60 + 2963: 62,61 + 2964: 66,49 + 2965: 62,47 + 2966: 65,46 + 2967: 66,46 + 2968: 69,43 + 2969: 67,42 + 2970: 70,37 + 2971: 72,35 + 2972: 69,34 + 2973: 70,33 + 2974: 72,33 + 2975: 73,33 + 2976: 76,34 + 2977: 76,34 + 2978: 75,34 + 2979: 77,35 + 2980: 81,34 + 2981: 81,38 + 2982: 85,37 + 2983: 86,37 + 2984: 86,34 + 2985: 85,33 + 2986: 85,32 + 2987: 86,31 + 2988: 82,26 + 2989: 81,26 + 2990: 81,25 + 2991: 80,24 + 2992: 80,23 + 2993: 80,22 + 2994: 82,21 + 2995: 82,21 + 2996: 83,21 + 2997: 76,28 + 2998: 77,29 + 2999: 77,30 + 3000: 75,30 + 3001: 74,30 + 3002: 74,29 + 3003: 58,29 + 3004: 59,30 + 3005: 62,30 + 3006: 62,29 + 3007: 62,28 + 3040: 34,14 + 3041: 34,14 + 3042: 32,14 + 3043: 34,16 + 3044: 34,16 + 3045: 35,16 + 3046: 36,16 + 3047: 37,15 + 3048: 36,14 + 3049: 35,14 + 3050: 35,14 + 3051: 36,13 + 3052: 33,13 + 3053: 32,14 + 3054: 32,15 + 3063: 38,11 + 3064: 38,11 + 3065: 38,9 + 3066: 38,9 + 3067: 40,12 + 3068: 40,13 + 3069: 39,13 + 3070: 40,12 + 3071: 29,1 + 3072: 28,0 + 3073: 28,0 + 3074: 28,-1 + 3075: 31,0 + 3076: 31,1 + 3077: 31,1 + 3078: 28,3 + 3079: 29,3 + 3080: 28,2 + 3081: 27,2 + 3082: 26,0 + 3083: 26,0 + 3084: 25,-1 + 3085: 24,1 + 3086: 50,9 + 3087: 48,10 + 3088: 49,10 + 3089: 48,11 + 3104: 58,19 + 3105: 59,20 + 3106: 59,19 + 3107: 58,29 + 3108: 58,29 + 3156: 48,42 + 3157: 47,42 + 3158: 44,41 + 3159: 44,41 + 3160: 44,39 + 3161: 45,39 + 3162: 45,38 + 3163: 45,38 + 3164: 46,39 + 3165: 48,41 + 3166: 49,42 + 3167: 50,43 + 3168: 50,44 + 3169: 51,37 + 3170: 52,38 + 3171: 55,39 + 3172: 54,39 + 3173: 52,39 + 3174: 51,39 + 3175: 50,38 + 3176: 36,35 + 3177: 37,33 + 3178: 38,33 + 3179: 46,33 + 3180: 48,33 + 3181: 52,33 + 3182: 63,35 + 3183: 60,33 + 3184: 57,33 + 3185: 62,35 + 3186: 61,32 + 3187: 60,33 + 3188: 56,33 + 3189: 56,33 + 3190: 50,35 + 3191: 49,35 + 3192: 49,36 + 3193: 47,33 + 3194: 45,33 + 3266: 38,38 + 3267: 36,38 + 3268: 36,39 + 3269: 36,39 + 3270: 36,40 + 3271: 37,40 + 3272: 38,40 + 3273: 40,40 + 3274: 39,40 + 3275: 29,35 + 3276: 27,34 + 3277: 27,33 + 3278: 29,33 + 3279: 26,32 + 3280: 26,31 + 3281: 29,32 + 3282: 29,32 + 3307: 11,34 + 3308: 10,33 + 3309: 9,32 + 3310: 10,32 + 3311: 11,31 + 3312: 10,31 + 3313: 12,31 + 3314: 12,32 + 3315: 12,38 + 3316: 12,38 + 3317: 13,39 + 3318: 14,40 + 3319: 13,41 + 3320: 12,40 + 3321: 14,38 + 3322: 14,37 + 3323: 12,37 + 3324: 5,39 + 3325: 4,39 + 3326: 4,38 + 3327: 5,39 + 3328: 6,38 + 3329: 7,38 + 3330: 9,39 + 3331: 6,40 + 3332: 5,40 + 3333: 8,39 + 3334: 8,38 + 3335: 4,43 + 3336: 5,43 + 3337: 7,44 + 3338: 7,44 + 3339: 6,44 + 3400: -8,51 + 3401: -9,52 + 3402: -9,52 + 3403: -9,51 + 3404: -9,51 + 3405: -5,52 + 3406: -5,52 + 3407: -5,51 + 3454: -24,67 + 3455: -24,67 + 3456: -23,67 + 3457: -23,68 + 3458: -24,70 + 3459: -25,69 + 3460: -25,63 + 3461: -24,63 + 3462: -24,62 + 3463: -25,61 + 3464: -24,61 + 3465: -23,60 + 3466: -24,61 + 3467: -25,60 + 3468: -25,60 + 3469: -23,61 + 3470: -30,58 + 3471: -30,57 + 3472: -32,57 + 3473: -33,57 + 3474: -33,56 + 3475: -33,55 + 3476: -32,55 + 3477: -33,55 + 3478: -35,58 + 3479: -35,58 + 3480: -35,56 + 3481: -36,56 + 3482: -35,56 + 3483: -34,56 + 3484: -34,57 + 3570: 26,27 + 3571: 25,27 + 3572: 24,25 + 3573: 25,24 + 3574: 25,23 + 3575: 27,23 + 3576: 28,24 + 3577: 28,25 + 3578: 28,27 + 3579: 28,27 + 3580: 28,28 + 3581: 28,28 + 3582: 28,28 + 3583: 29,26 + 3584: 29,26 + 3585: 27,26 + 3586: 26,26 + 3587: 26,24 + 3588: 26,24 + 3589: 26,23 + 3754: 32,40 + 3755: 31,43 + 3756: 32,43 + 3757: 33,38 + 3758: 32,37 + 3759: 32,35 + 3760: 16,20 + 3761: 19,20 + 3762: 5,52 + 3763: 5,63 + 3764: 6,67 + 3765: 7,67 + 3766: 2,63 + 3767: 22,48 + 3768: 16,48 + 3769: 20,56 + 3770: 22,58 + 3771: 18,56 + 3772: 18,56 + 3773: 16,55 + 3774: 12,55 + 3775: 8,55 + 3776: 8,57 + - node: + color: '#951710FF' + id: Donk + decals: + 2784: 27,64 + - node: + color: '#FFFFFFFF' + id: FlowersBRTwo + decals: + 4958: -32.740227,71.75434 + 4959: -33.87947,72.741684 + 4960: -30.176937,72.779655 + 4961: -31.52504,74.5075 + 4962: -32.056686,75.24801 + 4963: -32.455418,76.14042 + 4964: -29.968077,76.0075 + 4965: -28.259216,72.13409 + 4966: -28.544025,73.3113 + 4967: -34.582,71.10877 + - node: + color: '#FFFFFFFF' + id: Flowersbr1 + decals: + 4948: -33.898457,75.34295 + 4949: -32.569344,76.23535 + 4950: -31.619976,75.95054 + 4951: -31.01238,74.71636 + 4952: -30.347824,72.13409 + 4953: -33.30985,72.874596 + 4954: -33.082,70.99484 + 4955: -30.879469,71.260666 + 4956: -28.563015,71.260666 + 4957: -28.297192,73.444214 + - node: + color: '#FFFFFFFF' + id: Flowerspv2 + decals: + 4937: -33.233902,71.69738 + 4938: -32.208584,72.64674 + 4939: -30.936432,72.058136 + 4940: -29.759216,71.127754 + 4941: -27.822506,71.279655 + 4942: -33.10099,75.077126 + 4943: -30.44276,74.39358 + 4944: -28.316177,73.67206 + 4945: -30.556684,76.02649 + 4946: -31.487064,76.72903 + 4947: -33.328835,76.4632 + - node: + color: '#FFFFFFFF' + id: Flowersy3 + decals: + 4926: -34.069344,71.31763 + 4927: -30.328836,71.03282 + 4928: -31.259216,72.39991 + 4929: -32.702255,73.02649 + 4930: -30.195925,74.58345 + 4931: -33.063015,75.4189 + 4932: -29.835167,75.64674 + 4933: -30.879469,76.95687 + 4934: -32.96808,76.99484 + 4935: -27.80352,71.67839 + 4936: -28.316177,73.63409 + - node: + color: '#00000077' + id: FullTileOverlayGreyscale + decals: + 4206: -35,7 + 4207: -35,8 + 4208: -35,9 + - node: + color: '#3EB38896' + id: FullTileOverlayGreyscale + decals: + 4209: -34,6 + 4210: -33,6 + 4211: -32,6 + - node: + color: '#52B4E996' + id: FullTileOverlayGreyscale + decals: + 4216: -35,15 + 4217: -35,16 + 4218: -35,17 + - node: + color: '#8C347F96' + id: FullTileOverlayGreyscale + decals: + 4203: -28,6 + 4204: -29,6 + 4205: -30,6 + - node: + color: '#D4D4D496' + id: FullTileOverlayGreyscale + decals: + 4219: -35,19 + 4220: -35,20 + 4221: -35,21 + - node: + color: '#DE3A3A96' + id: FullTileOverlayGreyscale + decals: + 4212: -35,11 + 4213: -35,12 + 4214: -35,12 + 4215: -35,13 + - node: + color: '#FFFFFFFF' + id: Grassa1 + decals: + 4974: -29.436432,70.59611 + 4975: -31.657951,70.86193 + - node: + color: '#FFFFFFFF' + id: Grassa3 + decals: + 4972: -31.904785,70.27332 + - node: + color: '#FFFFFFFF' + id: Grassa4 + decals: + 4971: -33.974407,70.27332 + - node: + color: '#FFFFFFFF' + id: Grassa5 + decals: + 4970: -32.645294,70.6151 + 4973: -30.822506,70.71004 + 4993: -27.37387,73.70472 + 4994: -27.358047,73.08763 + - node: + color: '#FFFFFFFF' + id: Grassb1 + decals: + 4978: -28.695925,70.06446 + 4979: -32.94909,70.08345 + 4980: -35.36048,69.95054 + 4981: -30.860481,69.798645 + 4982: -33.480736,70.84295 + - node: + color: '#FFFFFFFF' + id: Grassb2 + decals: + 4983: -34.08833,70.88092 + 4984: -35.056686,70.93788 + 4985: -29.94909,71.03282 + 4986: -27.974407,70.9189 + - node: + color: '#FFFFFFFF' + id: Grassb4 + decals: + 4969: -30.082,70.3113 + - node: + color: '#FFFFFFFF' + id: Grassb5 + decals: + 4968: -34.94276,70.34927 + 4976: -28.44909,70.69105 + 4977: -28.031368,70.3113 + 4991: -27.24729,74.10029 + 4992: -27.13653,73.055984 + - node: + angle: -3.141592653589793 rad + color: '#DE3A3A96' + id: LoadingArea + decals: + 2733: 74,9 + - node: + angle: -1.5707963267948966 rad + color: '#DE3A3A96' + id: LoadingArea + decals: + 2732: 70,11 + - node: + angle: -3.141592653589793 rad + color: '#FFFFFFFF' + id: LoadingArea + decals: + 4362: -21,29 + 4363: -20,29 + - node: + angle: -1.5707963267948966 rad + color: '#FFFFFFFF' + id: LoadingArea + decals: + 1936: 41,19 + 2438: 71,40 + 3845: 48,-3 + 3846: 48,0 + 3847: 48,3 + 4364: -17,34 + 4365: -19,34 + - node: + color: '#FFFFFFFF' + id: LoadingArea + decals: + 1722: 1,3 + 1741: 2,7 + 3851: 51,-5 + 4356: -21,39 + 4357: -20,39 + 4358: -19,39 + 4700: 33,-1 + - node: + angle: 1.5707963267948966 rad + color: '#FFFFFFFF' + id: LoadingArea + decals: + 1: -12,9 + 3848: 54,3 + 3849: 54,0 + 3850: 54,-3 + 4359: -25,33 + 4360: -25,34 + 4361: -25,35 + - node: + angle: 3.141592653589793 rad + color: '#FFFFFFFF' + id: LoadingArea + decals: + 1723: -1,3 + 1740: -2,7 + - node: + color: '#FFFFFFFF' + id: MiniTileDarkInnerNe + decals: + 2519: 63,5 + - node: + color: '#FFFFFFFF' + id: MiniTileDarkInnerNw + decals: + 2523: 67,5 + - node: + color: '#FFFFFFFF' + id: MiniTileDarkInnerSw + decals: + 2517: 69,9 + - node: + color: '#FFFFFFFF' + id: MiniTileDarkLineE + decals: + 2518: 63,6 + - node: + color: '#FFFFFFFF' + id: MiniTileDarkLineN + decals: + 2520: 64,5 + 2521: 65,5 + 2522: 66,5 + - node: + color: '#FFFFFFFF' + id: MiniTileDarkLineS + decals: + 2510: 68,9 + 2511: 66,9 + 2512: 67,9 + 2513: 65,9 + 2514: 64,9 + 2515: 63,9 + 2516: 62,9 + - node: + color: '#FFFFFFFF' + id: MiniTileDarkLineW + decals: + 2524: 67,6 + - node: + color: '#951710FF' + id: Omni + decals: + 2839: 27.985142,61.999886 + - node: + color: '#FFFFFFFF' + id: SpaceStationSign1 + decals: + 1603: 65,20 + - node: + color: '#FFFFFFFF' + id: SpaceStationSign2 + decals: + 1604: 66,20 + - node: + color: '#FFFFFFFF' + id: SpaceStationSign3 + decals: + 1605: 67,20 + - node: + color: '#FFFFFFFF' + id: SpaceStationSign4 + decals: + 1606: 68,20 + - node: + color: '#FFFFFFFF' + id: SpaceStationSign5 + decals: + 1607: 69,20 + - node: + color: '#FFFFFFFF' + id: SpaceStationSign6 + decals: + 1608: 70,20 + - node: + color: '#FFFFFFFF' + id: SpaceStationSign7 + decals: + 1609: 71,20 + - node: + color: '#FFFFFFFF' + id: StandClear + decals: + 4762: 25,-1 + 4763: 27,-1 + - node: + color: '#951710FF' + id: Waffle + decals: + 2836: 28,65 + - node: + color: '#FFFFFFFF' + id: WarnBox + decals: + 1278: -17,43 + 2285: 77,59 + 2286: 76,59 + 3828: 48,-4 + 3829: 50,-3 + 3830: 49,-5 + 3831: 53,-5 + - node: + color: '#D381C996' + id: WarnCornerGreyscaleNW + decals: + 2146: 55,22 + 2168: 58,17 + - node: + color: '#DE3A3A96' + id: WarnCornerNE + decals: + 2345: 71,57 + 2727: 74,11 + - node: + color: '#FFFFFFFF' + id: WarnCornerNE + decals: + 1875: 39,7 + 1932: 43,21 + 2163: 53,22 + 2177: 52,31 + 2188: 48,26 + 2276: 21,45 + 2469: 76,5 + 3837: 52,1 + 4624: 40,-8 + 4626: 39,-7 + - node: + color: '#FFFFFFFF' + id: WarnCornerNW + decals: + 1872: 36,7 + 2175: 50,31 + 2186: 46,26 + 2274: 9,38 + 2275: 20,45 + 2500: 69,4 + 3839: 50,1 + 3854: -36,29 + 3856: -37,28 + 4581: 21,-6 + 4583: 20,-7 + - node: + color: '#FFFFFFFF' + id: WarnCornerSE + decals: + 1869: 37,9 + 1883: 38,12 + 1931: 43,20 + 2180: 52,29 + 2189: 48,25 + 2277: 21,43 + 2472: 76,2 + 2479: 74,-2 + 3834: 52,-2 + 4606: 32,-18 + 4614: 39,-17 + 4616: 40,-16 + - node: + color: '#DE3A3A96' + id: WarnCornerSW + decals: + 2314: 62,59 + 2351: 68,54 + - node: + color: '#FFFFFFFF' + id: WarnCornerSW + decals: + 2182: 50,29 + 2185: 46,25 + 2278: 20,43 + 2482: 72,-2 + 2489: 69,2 + 3832: 50,-2 + 4593: 20,-17 + 4595: 21,-18 + - node: + color: '#D381C996' + id: WarnCornerSmallGreyscaleNW + decals: + 2145: 55,21 + - node: + color: '#DE3A3A96' + id: WarnCornerSmallNE + decals: + 2301: 70,60 + 2309: 62,62 + 2333: 68,62 + 2339: 66,56 + 2344: 70,57 + 2363: 66,46 + 2730: 70,11 + 2731: 74,9 + - node: + color: '#FFFFFFFF' + id: WarnCornerSmallNE + decals: + 555: -16,11 + 556: -18,7 + 1248: -23,43 + 1264: -25,10 + 1294: -11,39 + 1300: -4,38 + 1397: -33,28 + 1933: 42,21 + 2166: 51,22 + 2167: 53,20 + 2178: 52,30 + 2196: -5,64 + 2206: 15,63 + 2265: 33,19 + 2371: 74,57 + 2376: 62,46 + 2385: 59,44 + 2389: 51,52 + 2396: 47,51 + 2403: 57,56 + 2441: 80,44 + 2460: 72,17 + 2461: 73,14 + 2464: 74,7 + 2467: 74,5 + 2476: 74,0 + 2494: 67,1 + 2497: 67,3 + 2593: 46,48 + 2663: 42,47 + 2709: 6,63 + 4284: 1,24 + 4625: 39,-8 + 4631: 34,-7 + 4726: 36,3 + 4727: 30,5 + 4925: -28,72 + - node: + zIndex: 100 + color: '#FFFFFFFF' + id: WarnCornerSmallNE + decals: + 2891: 5,23 + - node: + color: '#DE3A3A96' + id: WarnCornerSmallNW + decals: + 2298: 70,62 + 2312: 62,60 + 2332: 68,62 + 2341: 68,56 + 2365: 68,46 + - node: + color: '#FFFFFFFF' + id: WarnCornerSmallNW + decals: + 552: -14,11 + 558: -16,7 + 1249: -19,43 + 1253: -12,31 + 1256: -22,19 + 1260: -22,15 + 1266: -23,10 + 1275: -12,43 + 1298: -7,39 + 1398: -31,28 + 1689: -34,29 + 1923: 39,17 + 1937: 44,21 + 2143: 62,20 + 2184: 50,30 + 2195: -3,64 + 2203: 21,60 + 2205: 17,63 + 2234: 43,54 + 2369: 73,53 + 2382: 57,48 + 2384: 61,44 + 2392: 49,51 + 2401: 44,47 + 2431: 59,56 + 2440: 82,44 + 2455: 74,17 + 2499: 69,3 + 2503: 72,4 + 2528: 63,1 + 2545: 64,17 + 2547: 64,46 + 2592: 48,48 + 3855: -36,28 + 4198: 35,19 + 4281: -7,15 + 4582: 21,-7 + 4728: 32,5 + 4874: 44,10 + - node: + zIndex: 100 + color: '#FFFFFFFF' + id: WarnCornerSmallNW + decals: + 2889: 7,23 + - node: + color: '#DE3A3A96' + id: WarnCornerSmallSE + decals: + 2304: 70,60 + 2335: 66,60 + 2354: 66,55 + - node: + color: '#FFFFFFFF' + id: WarnCornerSmallSE + decals: + 554: -16,13 + 563: 6,9 + 1263: -25,12 + 1376: -35,25 + 1861: 30,7 + 1930: 42,20 + 1955: 37,19 + 1956: 42,23 + 2136: 61,28 + 2140: 62,19 + 2179: 52,30 + 2208: 15,65 + 2237: 41,56 + 2264: 33,21 + 2291: 74,59 + 2367: 71,55 + 2375: 62,48 + 2379: 59,46 + 2390: 51,54 + 2395: 47,53 + 2398: 46,50 + 2404: 57,58 + 2444: 80,21 + 2462: 74,9 + 2465: 74,7 + 2474: 74,2 + 2477: 74,0 + 2480: 73,-2 + 2492: 67,3 + 2495: 67,5 + 2509: 71,9 + 2664: 42,49 + 2711: 6,65 + 2743: 72,19 + 4279: -9,17 + 4283: 1,26 + 4607: 32,-17 + 4615: 39,-16 + 4729: 34,3 + 4730: 36,5 + 4751: 29,0 + 4755: 27,3 + 4767: 24,0 + - node: + color: '#DE3A3A96' + id: WarnCornerSmallSW + decals: + 2313: 62,60 + 2316: 64,59 + 2331: 68,60 + 2352: 68,55 + - node: + color: '#FFFFFFFF' + id: WarnCornerSmallSW + decals: + 553: -14,13 + 557: -16,9 + 562: 8,9 + 1254: -12,33 + 1258: -22,17 + 1267: -23,12 + 1371: -33,25 + 1860: 32,7 + 1958: 44,23 + 2138: 64,19 + 2142: 62,22 + 2183: 50,30 + 2209: 17,65 + 2236: 43,56 + 2267: 35,21 + 2373: 64,48 + 2378: 61,46 + 2381: 57,50 + 2387: 53,54 + 2393: 49,53 + 2400: 44,49 + 2443: 82,21 + 2456: 74,19 + 2457: 75,16 + 2481: 73,-2 + 2486: 72,2 + 2490: 69,3 + 2508: 72,9 + 2532: 63,5 + 4280: -7,17 + 4594: 21,-17 + 4731: 36,3 + 4761: 28,0 + 4872: 44,12 + - node: + color: '#FFFFFFFF' + id: WarnEndE + decals: + 4879: -11,70 + 4880: -6,70 + - node: + color: '#FFFFFFFF' + id: WarnEndW + decals: + 4878: -12,70 + 4881: -7,70 + - node: + color: '#DE3A3A96' + id: WarnLineE + decals: + 2299: 70,62 + 2300: 70,61 + 2336: 66,59 + 2337: 66,58 + 2338: 66,57 + 2342: 70,59 + 2343: 70,58 + 2346: 71,56 + 2347: 71,55 + 2355: 66,54 + 2356: 66,53 + 2357: 66,52 + 2358: 66,51 + 2359: 66,50 + 2360: 66,49 + 2361: 66,48 + 2362: 66,47 + 2445: 82,30 + - node: + color: '#FFFFFFFF' + id: WarnLineE + decals: + 549: -18,8 + 550: -16,12 + 1246: -23,44 + 1247: -23,45 + 1262: -25,11 + 1292: -11,41 + 1293: -11,40 + 1299: -4,39 + 1306: -4,40 + 1858: 36,4 + 1866: 34,7 + 1867: 37,11 + 1868: 37,10 + 1876: 39,6 + 1884: 38,13 + 1929: 42,19 + 2139: 62,18 + 2165: 53,21 + 2199: 21,63 + 2200: 21,62 + 2214: 20,65 + 2215: 20,66 + 2263: 33,20 + 2279: 21,44 + 2292: 81,62 + 2293: 81,61 + 2294: 81,60 + 2295: 81,59 + 2366: 71,54 + 2374: 62,47 + 2388: 51,53 + 2394: 47,52 + 2402: 42,48 + 2405: 57,57 + 2458: 73,15 + 2459: 72,18 + 2463: 74,8 + 2466: 74,6 + 2470: 76,4 + 2471: 76,3 + 2475: 74,1 + 2478: 74,-1 + 2493: 67,2 + 2496: 67,4 + 2708: 6,64 + 3817: 48,3 + 3818: 48,0 + 3819: 48,-3 + 3825: 53,-3 + 3826: 53,0 + 3827: 53,3 + 3835: 52,-1 + 3836: 52,0 + 4278: -9,16 + 4282: 1,25 + 4381: -3,49 + 4382: -3,48 + 4383: -3,47 + 4384: 7,49 + 4385: 7,48 + 4386: 7,47 + 4408: 3,62 + 4409: 3,63 + 4410: 3,64 + 4423: 18,49 + 4424: 18,48 + 4425: 18,47 + 4426: 27,49 + 4427: 27,48 + 4428: 27,47 + 4443: 37,49 + 4444: 37,48 + 4445: 37,47 + 4473: 20,21 + 4474: 20,19 + 4475: 20,20 + 4489: 43,35 + 4490: 43,34 + 4491: 43,33 + 4492: 49,35 + 4493: 49,34 + 4494: 49,33 + 4516: 63,35 + 4517: 63,34 + 4518: 63,33 + 4519: 67,35 + 4520: 67,34 + 4521: 67,33 + 4551: 79,59 + 4552: 79,60 + 4553: 79,61 + 4554: 79,62 + 4565: 70,11 + 4566: 70,10 + 4567: 70,10 + 4568: 70,9 + 4617: 40,-15 + 4618: 40,-14 + 4619: 40,-13 + 4620: 40,-12 + 4621: 40,-11 + 4622: 40,-10 + 4623: 40,-9 + 4632: 34,-6 + 4708: 4,21 + 4709: 4,20 + 4710: 4,19 + 4752: 29,-1 + 4753: 27,1 + 4754: 27,2 + 4759: 24,-1 + 4760: 26,-1 + 4919: -27,74 + 4920: -27,73 + 4921: -28,74 + 4922: -28,73 + - node: + zIndex: 100 + color: '#FFFFFFFF' + id: WarnLineE + decals: + 2890: 5,24 + - node: + color: '#D381C996' + id: WarnLineGreyscaleN + decals: + 2147: 56,22 + - node: + color: '#DE3A3A96' + id: WarnLineGreyscaleN + decals: + 2956: -15,65 + - node: + color: '#D381C996' + id: WarnLineGreyscaleW + decals: + 2169: 58,16 + 2170: 58,15 + - node: + color: '#DE3A3A96' + id: WarnLineN + decals: + 2303: 71,60 + 2315: 63,59 + 2334: 67,60 + 2348: 71,54 + 2349: 69,54 + 2350: 70,54 + 2353: 67,55 + - node: + color: '#FFFFFFFF' + id: WarnLineN + decals: + 308: 21,47 + 561: 7,9 + 1257: -23,17 + 1261: -23,21 + 1372: -34,25 + 1859: 31,7 + 1862: 35,3 + 1870: 36,9 + 1871: 35,9 + 1954: 38,19 + 1957: 43,23 + 2135: 62,28 + 2181: 51,29 + 2190: 47,25 + 2201: 20,62 + 2207: 16,65 + 2235: 42,56 + 2290: 75,59 + 2377: 60,46 + 2397: 47,50 + 2442: 81,21 + 2473: 75,2 + 2487: 71,2 + 2488: 70,2 + 2491: 68,3 + 2525: 64,0 + 2526: 65,0 + 2527: 66,0 + 3833: 51,-2 + 4201: -16,26 + 4202: -15,26 + 4366: -1,24 + 4367: 0,24 + 4368: 1,24 + 4372: -1,44 + 4373: 0,44 + 4374: 1,44 + 4390: 6,54 + 4391: 5,54 + 4392: 4,54 + 4402: 6,61 + 4403: 5,61 + 4404: 4,61 + 4405: 4,65 + 4406: 5,65 + 4407: 6,65 + 4414: 11,46 + 4415: 12,46 + 4416: 13,46 + 4432: 30,46 + 4433: 31,46 + 4434: 32,46 + 4435: 33,46 + 4446: 31,36 + 4447: 32,36 + 4448: 33,36 + 4455: 31,32 + 4456: 32,32 + 4457: 33,32 + 4458: 30,22 + 4459: 31,22 + 4460: 32,22 + 4461: 33,22 + 4468: 23,18 + 4469: 25,18 + 4476: 7,18 + 4477: 8,18 + 4478: 11,18 + 4479: 10,18 + 4498: 50,36 + 4499: 51,36 + 4500: 52,36 + 4501: 55,36 + 4502: 56,36 + 4503: 57,36 + 4504: 56,32 + 4505: 55,32 + 4506: 54,32 + 4525: 66,32 + 4526: 65,32 + 4527: 64,32 + 4534: 65,36 + 4535: 66,36 + 4536: 64,36 + 4537: 70,36 + 4538: 69,36 + 4544: 64,52 + 4545: 65,52 + 4546: 66,52 + 4555: 64,22 + 4556: 65,22 + 4557: 66,22 + 4596: 22,-18 + 4597: 23,-18 + 4598: 24,-18 + 4599: 25,-18 + 4600: 26,-18 + 4601: 27,-18 + 4602: 28,-18 + 4603: 29,-18 + 4604: 30,-18 + 4605: 31,-18 + 4608: 33,-17 + 4609: 34,-17 + 4610: 35,-17 + 4611: 36,-17 + 4612: 37,-17 + 4613: 38,-17 + 4749: 31,0 + 4750: 30,0 + 4756: 28,3 + 4871: 43,12 + 4891: -35,71 + 4892: -34,71 + 4893: -33,71 + 4894: -32,71 + 4895: -31,71 + 4896: -30,71 + 4897: -29,71 + 4898: -28,71 + 4899: -28,70 + 4900: -29,70 + 4901: -30,70 + 4902: -31,70 + 4903: -32,70 + 4904: -33,70 + 4905: -34,70 + 4906: -35,70 + 4907: -36,70 + - node: + color: '#DE3A3A96' + id: WarnLineS + decals: + 2310: 62,62 + 2311: 62,61 + 2317: 64,58 + 2318: 64,57 + 2319: 64,56 + 2320: 64,55 + 2321: 64,54 + 2322: 64,53 + 2323: 64,52 + 2324: 64,51 + 2325: 64,50 + 2326: 64,49 + 2327: 64,48 + 2328: 68,57 + 2329: 68,58 + 2330: 68,59 + - node: + color: '#FFFFFFFF' + id: WarnLineS + decals: + 548: -16,8 + 551: -14,12 + 1250: -19,44 + 1251: -19,45 + 1252: -12,32 + 1265: -23,11 + 1276: -12,44 + 1277: -12,45 + 1305: -7,40 + 1370: -33,24 + 1375: -33,23 + 1395: -37,26 + 1690: -34,30 + 1865: 38,4 + 1877: 41,7 + 1878: 41,8 + 1879: 41,9 + 1880: 41,11 + 1881: 41,12 + 1882: 41,13 + 2137: 64,18 + 2141: 62,21 + 2197: 21,63 + 2198: 21,62 + 2212: 22,65 + 2213: 22,66 + 2266: 35,20 + 2273: 9,37 + 2280: 20,44 + 2287: 76,60 + 2288: 76,61 + 2289: 76,62 + 2368: 73,54 + 2372: 64,47 + 2380: 57,49 + 2386: 53,53 + 2391: 49,52 + 2399: 44,48 + 2430: 59,57 + 2453: 75,15 + 2454: 74,18 + 2483: 72,-1 + 2484: 72,0 + 2485: 72,1 + 2504: 72,5 + 2505: 72,6 + 2506: 72,7 + 2507: 72,8 + 2529: 63,2 + 2530: 63,3 + 2531: 63,4 + 3816: 49,3 + 3820: 49,-3 + 3821: 49,0 + 3822: 54,0 + 3823: 54,3 + 3824: 54,-3 + 3840: 50,0 + 3841: 50,-1 + 3857: -37,27 + 3858: -37,25 + 4277: -7,16 + 4285: 3,25 + 4378: -3,47 + 4379: -3,48 + 4380: -3,49 + 4387: 7,47 + 4388: 7,48 + 4389: 7,49 + 4411: 3,62 + 4412: 3,63 + 4413: 3,64 + 4420: 18,47 + 4421: 18,48 + 4422: 18,49 + 4429: 27,49 + 4430: 27,48 + 4431: 27,47 + 4440: 37,47 + 4441: 37,48 + 4442: 37,49 + 4470: 20,19 + 4471: 20,20 + 4472: 20,21 + 4486: 43,33 + 4487: 43,34 + 4488: 43,35 + 4495: 49,33 + 4496: 49,34 + 4497: 49,35 + 4513: 63,33 + 4514: 63,34 + 4515: 63,35 + 4522: 67,35 + 4523: 67,34 + 4524: 67,33 + 4547: 81,59 + 4548: 81,60 + 4549: 81,61 + 4550: 81,62 + 4561: 70,11 + 4562: 70,9 + 4563: 70,10 + 4564: 70,11 + 4584: 20,-8 + 4585: 20,-10 + 4586: 20,-9 + 4587: 20,-11 + 4588: 20,-12 + 4589: 20,-13 + 4590: 20,-14 + 4591: 20,-15 + 4592: 20,-16 + 4705: 4,19 + 4706: 4,20 + 4707: 4,21 + 4757: 28,-1 + 4758: 26,-1 + 4917: -27,74 + 4918: -27,73 + 4923: -26,74 + 4924: -26,73 + - node: + zIndex: 100 + color: '#FFFFFFFF' + id: WarnLineS + decals: + 2888: 7,24 + - node: + color: '#DE3A3A96' + id: WarnLineW + decals: + 2296: 67,62 + 2297: 69,62 + 2302: 71,60 + 2305: 66,62 + 2306: 65,62 + 2307: 64,62 + 2308: 63,62 + 2340: 67,56 + 2364: 67,46 + 2728: 73,11 + 2729: 72,11 + - node: + color: '#FFFFFFFF' + id: WarnLineW + decals: + 1243: -22,43 + 1244: -21,43 + 1245: -20,43 + 1255: -23,19 + 1259: -23,15 + 1270: -17,43 + 1271: -16,43 + 1272: -15,43 + 1273: -14,43 + 1274: -13,43 + 1295: -10,39 + 1296: -9,39 + 1297: -8,39 + 1308: -3,38 + 1396: -32,28 + 1688: -35,29 + 1742: -20,62 + 1743: -19,62 + 1744: -18,62 + 1745: -17,62 + 1746: -16,62 + 1747: -15,62 + 1857: 31,5 + 1873: 37,7 + 1874: 38,7 + 1922: 38,17 + 2144: 62,26 + 2154: 55,19 + 2155: 56,19 + 2156: 57,19 + 2157: 58,19 + 2158: 59,19 + 2164: 52,22 + 2176: 51,31 + 2187: 47,26 + 2191: -29,50 + 2192: -28,50 + 2193: -27,50 + 2194: -4,64 + 2202: 20,60 + 2204: 16,63 + 2233: 42,54 + 2370: 75,57 + 2383: 60,44 + 2439: 81,44 + 2468: 75,5 + 2498: 68,3 + 2501: 70,4 + 2502: 71,4 + 2591: 47,48 + 3838: 51,1 + 4199: -16,26 + 4200: -15,26 + 4369: 1,24 + 4370: 0,24 + 4371: -1,24 + 4375: 1,44 + 4376: 0,44 + 4377: -1,44 + 4393: 4,54 + 4394: 5,54 + 4395: 6,54 + 4396: 6,61 + 4397: 5,61 + 4398: 4,61 + 4399: 4,65 + 4400: 5,65 + 4401: 6,65 + 4417: 11,46 + 4418: 12,46 + 4419: 13,46 + 4436: 30,46 + 4437: 31,46 + 4438: 32,46 + 4439: 33,46 + 4449: 31,36 + 4450: 32,36 + 4451: 33,36 + 4452: 33,32 + 4453: 32,32 + 4454: 31,32 + 4462: 30,22 + 4463: 31,22 + 4464: 32,22 + 4465: 33,22 + 4466: 23,18 + 4467: 25,18 + 4480: 7,18 + 4481: 8,18 + 4482: 11,18 + 4483: 10,18 + 4507: 50,36 + 4508: 52,36 + 4509: 51,36 + 4510: 55,36 + 4511: 56,36 + 4512: 57,36 + 4528: 64,32 + 4529: 65,32 + 4530: 66,32 + 4531: 66,36 + 4532: 64,36 + 4533: 65,36 + 4539: 70,36 + 4540: 69,36 + 4541: 66,52 + 4542: 65,52 + 4543: 64,52 + 4558: 64,22 + 4559: 65,22 + 4560: 66,22 + 4569: 34,-6 + 4570: 33,-6 + 4571: 32,-6 + 4572: 30,-6 + 4573: 31,-6 + 4574: 29,-6 + 4575: 28,-6 + 4576: 25,-6 + 4577: 24,-6 + 4578: 27,-6 + 4579: 23,-6 + 4580: 22,-6 + 4627: 38,-7 + 4628: 37,-7 + 4629: 36,-7 + 4630: 35,-7 + 4636: 26,-6 + 4873: 43,10 + 4882: -36,70 + 4883: -35,70 + 4884: -34,70 + 4885: -32,70 + 4886: -33,70 + 4887: -31,70 + 4888: -30,70 + 4889: -29,70 + 4890: -28,70 + 4908: -36,69 + 4909: -35,69 + 4910: -34,69 + 4911: -33,69 + 4912: -32,69 + 4913: -31,69 + 4914: -30,69 + 4915: -29,69 + 4916: -28,69 + - node: + color: '#FFFFFFFF' + id: WoodTrimThinCornerNw + decals: + 4851: 71,31 + - node: + color: '#FFFFFFFF' + id: WoodTrimThinEndS + decals: + 4850: 71,30 + - node: + color: '#FFFFFFFF' + id: WoodTrimThinLineN + decals: + 4852: 72,31 + 4853: 73,31 + - node: + color: '#FFFFFFFF' + id: WoodTrimThinLineS + decals: + 4854: 72,31 + 4856: 73,30 + - node: + color: '#FFFFFFFF' + id: WoodTrimThinLineW + decals: + 4855: 73,30 + - node: + color: '#951710FF' + id: prolizard + decals: + 2838: 27.004784,64.98674 + - node: + color: '#951710FF' + id: star + decals: + 2837: 28,64 + - type: GridAtmosphere + version: 2 + data: + tiles: + 0,0: + 0: 62050 + -1,0: + 0: 63688 + 1: 17 + 0,1: + 0: 65535 + -1,1: + 0: 65535 + 0,2: + 0: 65535 + -1,2: + 0: 65535 + 0,3: + 0: 48015 + -1,3: + 0: 56604 + 0,4: + 0: 61631 + 1,0: + 1: 31 + 0: 56320 + 1,1: + 0: 54749 + 1,2: + 0: 65497 + 1,3: + 0: 55773 + 1,4: + 0: 63711 + 1,-1: + 1: 52416 + 2,1: + 0: 61559 + 2,2: + 0: 65308 + 2,3: + 0: 63711 + 2,-1: + 1: 65280 + 2,0: + 0: 26144 + 2,4: + 0: 65023 + 3,0: + 0: 56785 + 3,1: + 0: 65529 + 3,2: + 0: 56719 + 3,3: + 0: 56541 + 3,-1: + 1: 62208 + 3,4: + 0: 64729 + 4,0: + 0: 37136 + 4,1: + 0: 20444 + 4,2: + 0: 22374 + 4,3: + 0: 60933 + -4,0: + 0: 30583 + -4,-1: + 0: 30483 + 1: 8 + -5,0: + 0: 3276 + 1: 273 + -4,1: + 0: 65522 + -4,2: + 0: 53495 + -5,2: + 0: 63022 + -4,3: + 0: 7647 + -5,3: + 0: 62463 + -4,4: + 0: 64271 + -3,0: + 1: 2001 + -3,1: + 0: 30583 + -3,2: + 0: 65394 + -3,3: + 0: 4095 + -3,-1: + 1: 4369 + -3,4: + 0: 61903 + -2,0: + 1: 240 + 0: 28672 + -2,1: + 0: 65399 + -2,2: + 0: 65287 + -2,3: + 0: 61160 + -2,4: + 0: 53487 + -1,4: + 0: 61917 + -8,0: + 2: 4368 + 3: 52416 + -9,0: + 2: 52416 + 1: 4369 + -8,1: + 0: 64848 + 1: 160 + -9,1: + 1: 433 + 0: 64576 + -8,2: + 0: 65535 + -9,2: + 0: 64766 + 1: 257 + -8,3: + 0: 65535 + -9,3: + 0: 64766 + 1: 257 + -8,4: + 0: 65535 + -8,-1: + 1: 58030 + -7,0: + 3: 4368 + 1: 17476 + -7,1: + 0: 45328 + 1: 100 + -7,2: + 0: 65339 + -7,3: + 0: 65535 + -7,-1: + 1: 61695 + -7,4: + 0: 65535 + -6,1: + 0: 61986 + -6,2: + 0: 62191 + -6,0: + 1: 32563 + -6,-1: + 1: 12847 + -6,3: + 0: 61102 + -6,4: + 0: 28514 + -5,-1: + 1: 4369 + 0: 52364 + -5,1: + 0: 26182 + -5,4: + 0: 65392 + -4,5: + 0: 65291 + -5,5: + 0: 30591 + -4,6: + 0: 29695 + -4,7: + 0: 30583 + -5,6: + 0: 63344 + -5,7: + 0: 47359 + -4,8: + 0: 26478 + -3,5: + 0: 61167 + -3,6: + 0: 62702 + -3,7: + 0: 65279 + -3,8: + 0: 65535 + -2,5: + 0: 53727 + -2,6: + 0: 64733 + -2,7: + 0: 57297 + -2,8: + 0: 61156 + -1,5: + 0: 56575 + -1,6: + 0: 48057 + -1,7: + 0: 49080 + 0,5: + 0: 30719 + 0,6: + 0: 46067 + 0,7: + 0: 46075 + -1,8: + 0: 64504 + 0,8: + 0: 48059 + 1,5: + 0: 45311 + 1,6: + 0: 64543 + 1,7: + 0: 45311 + 1,8: + 0: 48127 + 2,5: + 0: 28927 + 2,6: + 0: 52975 + 2,7: + 0: 64797 + 2,8: + 0: 65535 + 3,5: + 0: 28671 + 3,6: + 0: 14327 + 3,7: + 0: 65467 + 3,8: + 0: 65309 + 4,4: + 0: 62384 + 4,5: + 0: 22527 + 4,6: + 0: 30711 + 4,7: + 0: 65535 + 0,9: + 0: 48051 + -1,9: + 0: 48011 + 0,10: + 0: 46011 + -1,10: + 0: 64395 + 0,11: + 0: 63347 + -1,11: + 0: 64729 + 0,12: + 0: 56575 + 1,9: + 0: 65520 + 1,10: + 0: 62207 + 1,11: + 0: 64767 + 1,12: + 0: 30719 + 2,9: + 0: 48049 + 2,10: + 0: 53435 + 2,11: + 0: 63709 + 2,12: + 0: 63231 + 3,9: + 0: 30582 + 3,10: + 0: 45815 + 3,11: + 0: 62399 + 3,12: + 0: 28927 + 4,8: + 0: 65487 + 4,9: + 0: 65524 + 4,10: + 0: 30520 + 4,11: + 0: 61559 + -5,8: + 0: 49075 + -4,9: + 0: 30590 + -5,9: + 0: 63667 + -4,10: + 0: 62071 + -5,10: + 0: 45311 + -4,11: + 0: 61695 + -5,11: + 0: 33211 + -4,12: + 0: 64511 + -3,9: + 0: 65279 + -3,10: + 0: 45823 + -3,11: + 0: 61627 + -3,12: + 0: 53759 + -2,9: + 0: 65422 + -2,10: + 0: 56351 + -2,11: + 0: 61661 + -2,12: + 0: 53503 + -1,12: + 0: 53503 + 5,4: + 0: 63740 + 5,5: + 0: 61695 + 5,6: + 0: 61439 + 5,3: + 0: 65263 + 5,7: + 0: 60942 + 5,8: + 0: 61183 + 6,4: + 0: 62199 + 6,5: + 0: 58623 + 6,6: + 0: 61182 + 6,3: + 0: 32631 + 6,7: + 0: 57582 + 6,8: + 0: 61183 + 7,4: + 0: 61559 + 7,5: + 0: 40191 + 7,6: + 0: 48059 + 7,7: + 0: 47295 + 7,8: + 0: 65531 + 8,4: + 0: 45967 + 8,5: + 0: 13247 + 1: 32768 + 8,6: + 0: 13107 + 1: 32776 + 8,7: + 0: 13107 + 1: 2056 + 4,12: + 0: 61695 + 5,9: + 0: 56796 + 5,10: + 0: 47309 + 5,11: + 0: 62139 + 5,12: + 0: 63743 + 6,9: + 0: 60943 + 6,10: + 0: 56558 + 6,11: + 0: 61663 + 6,12: + 0: 12799 + 1: 32768 + 7,9: + 0: 48011 + 7,10: + 0: 48059 + 7,11: + 0: 64667 + 7,12: + 0: 16639 + 1: 4096 + 8,8: + 0: 65531 + 8,9: + 0: 65459 + 8,10: + 0: 46011 + 8,11: + 0: 62395 + 8,3: + 0: 65520 + 9,4: + 0: 29919 + 9,5: + 0: 58999 + 9,3: + 0: 55772 + 9,6: + 1: 176 + 0: 57344 + 9,7: + 0: 1774 + 9,8: + 0: 65523 + 10,4: + 0: 62207 + 10,5: + 0: 63743 + 10,6: + 0: 28688 + 1: 160 + 10,7: + 0: 28791 + 10,3: + 0: 14523 + 11,4: + 0: 36607 + 11,5: + 0: 40157 + 11,6: + 1: 272 + 0: 52428 + 11,7: + 1: 257 + 0: 52428 + 11,3: + 0: 6007 + 12,4: + 0: 7163 + 12,5: + 0: 8157 + 12,6: + 0: 30711 + 12,7: + 0: 57297 + 8,12: + 0: 35071 + 1: 12288 + 9,9: + 0: 65520 + 9,10: + 0: 28735 + 9,11: + 0: 62071 + 9,12: + 0: 33023 + 10,8: + 0: 65520 + 10,9: + 0: 48048 + 10,10: + 0: 30507 + 10,11: + 0: 29303 + 10,12: + 0: 29055 + 11,8: + 0: 65520 + 11,9: + 0: 65522 + 11,10: + 0: 65535 + 11,11: + 0: 53503 + 11,12: + 0: 65437 + 12,8: + 0: 65520 + 12,9: + 0: 65500 + 12,10: + 0: 63325 + 12,11: + 0: 29183 + 4,13: + 0: 65535 + 3,13: + 0: 20991 + 4,14: + 0: 30511 + 4,15: + 0: 63344 + 3,15: + 0: 35571 + 4,16: + 0: 30705 + 5,13: + 0: 65535 + 5,14: + 0: 2047 + 5,15: + 0: 48031 + 6,13: + 0: 13107 + 1: 34952 + 6,14: + 0: 12595 + 1: 2184 + 6,15: + 0: 56735 + 6,16: + 0: 4317 + 1: 24576 + 7,14: + 1: 3328 + 0: 14 + 7,15: + 0: 45983 + 7,13: + 0: 61152 + 7,16: + 0: 825 + 1: 2048 + 8,15: + 0: 62207 + 0,13: + 0: 20941 + -1,13: + 0: 65421 + -1,14: + 0: 56735 + 0,14: + 0: 32608 + 0,15: + 0: 65287 + -1,15: + 0: 65293 + 0,16: + 0: 59151 + 1,13: + 0: 30719 + 1,14: + 0: 30583 + 1,15: + 0: 30583 + 1,16: + 0: 65407 + 2,13: + 0: 65535 + 2,14: + 0: 62719 + 2,15: + 0: 61695 + 2,16: + 0: 64783 + 3,14: + 0: 28753 + 3,16: + 0: 28387 + -5,12: + 0: 28808 + 1: 35 + -4,13: + 0: 65439 + -4,14: + 0: 40959 + -5,14: + 0: 20466 + -4,15: + 0: 35771 + -5,15: + 0: 65535 + -4,16: + 0: 13098 + -3,13: + 0: 65437 + -3,14: + 0: 64799 + -3,15: + 0: 5405 + -3,16: + 0: 63253 + -2,13: + 0: 65421 + -2,14: + 0: 56783 + -2,15: + 0: 65293 + -2,16: + 0: 30511 + -1,16: + 0: 15135 + 8,13: + 0: 61160 + 8,14: + 1: 672 + 0: 32768 + 8,16: + 0: 8751 + 1: 2048 + 9,14: + 1: 18 + 0: 63624 + 9,15: + 0: 36559 + 9,13: + 1: 514 + 0: 2184 + 9,16: + 0: 3822 + 10,13: + 0: 20471 + 10,14: + 0: 61247 + 10,15: + 0: 36654 + 10,16: + 0: 3003 + 11,13: + 0: 52700 + 11,14: + 0: 45967 + 11,15: + 0: 13195 + 1: 32768 + 11,16: + 0: 819 + 1: 32904 + 12,12: + 0: 26119 + 12,13: + 0: 3823 + 12,14: + 0: 47615 + 12,15: + 0: 51 + 1: 30848 + -9,4: + 0: 64766 + 1: 257 + -8,5: + 0: 12603 + 1: 128 + 2: 32768 + -9,5: + 0: 49406 + 1: 4353 + -8,6: + 0: 62259 + 2: 136 + -9,6: + 0: 65532 + -8,7: + 0: 4363 + 1: 52224 + -9,7: + 0: 1919 + -8,8: + 0: 13057 + 1: 2188 + -7,5: + 0: 34827 + 1: 48 + 2: 12288 + -7,6: + 2: 51 + 0: 63616 + -7,7: + 0: 61167 + -7,8: + 0: 61166 + -6,5: + 0: 48034 + -6,6: + 0: 65521 + -6,7: + 0: 46079 + -6,8: + 0: 61160 + -9,8: + 0: 65280 + 1: 7 + -8,9: + 0: 13107 + 1: 34824 + -9,9: + 0: 65535 + -8,10: + 1: 19640 + -9,10: + 1: 240 + -8,11: + 1: 4 + 0: 3072 + -8,12: + 1: 12 + 0: 55296 + -7,11: + 0: 4079 + -7,9: + 0: 61166 + -7,10: + 0: 58606 + -7,12: + 1: 10 + 0: 45824 + -6,9: + 0: 62392 + -6,10: + 1: 15 + 0: 57584 + -6,11: + 0: 3310 + -6,12: + 1: 250 + 0: 45056 + -11,9: + 1: 3080 + -11,10: + 1: 8 + -10,8: + 1: 4383 + 0: 52224 + -10,9: + 1: 4369 + 0: 52428 + -10,10: + 1: 241 + -11,6: + 1: 30583 + -11,7: + 1: 3815 + -11,4: + 1: 17440 + -11,5: + 1: 57444 + -10,4: + 4: 119 + 2: 28672 + -10,5: + 2: 119 + 1: 45056 + -10,6: + 2: 13104 + 0: 34944 + -10,7: + 1: 16 + 0: 4008 + -10,3: + 4: 28672 + 5: 119 + -11,1: + 1: 26304 + -11,2: + 1: 24644 + -11,3: + 1: 17476 + -10,1: + 1: 242 + 2: 28672 + -10,2: + 2: 119 + 5: 28672 + -10,0: + 1: 2048 + -9,-1: + 1: 61696 + -9,-4: + 1: 34952 + -9,-5: + 1: 34944 + -8,-4: + 1: 53487 + -8,-3: + 1: 45535 + -8,-5: + 1: 57584 + -8,-2: + 1: 41646 + -7,-4: + 1: 28735 + -7,-3: + 1: 61567 + -7,-2: + 1: 61695 + -7,-5: + 1: 12532 + -6,-4: + 1: 6559 + -6,-3: + 1: 8751 + -6,-2: + 1: 8751 + -6,-5: + 1: 39413 + -5,-4: + 1: 65280 + -5,-3: + 1: 6143 + 0: 34816 + -5,-2: + 1: 4369 + 0: 52428 + -4,-4: + 1: 65280 + -4,-3: + 1: 36607 + 0: 4352 + -4,-2: + 0: 13107 + 1: 34952 + -8,13: + 0: 56543 + -9,12: + 0: 32768 + 1: 768 + -9,13: + 0: 49288 + 1: 275 + -8,14: + 0: 36849 + -9,14: + 0: 36863 + -8,15: + 0: 63709 + -9,15: + 0: 63965 + -8,16: + 0: 65535 + -7,13: + 0: 48059 + -7,14: + 0: 4081 + -7,15: + 0: 56541 + -7,16: + 0: 56605 + -6,13: + 0: 48059 + -6,14: + 0: 8177 + -6,15: + 0: 45943 + -6,16: + 0: 30491 + -5,13: + 0: 30583 + -5,16: + 0: 65487 + -4,17: + 0: 819 + -5,17: + 0: 4095 + -4,18: + 1: 1792 + -5,18: + 1: 3840 + -4,19: + 1: 25207 + -5,19: + 1: 43775 + -3,17: + 0: 8999 + 1: 34816 + -2,17: + 0: 9767 + 1: 34816 + -1,17: + 0: 52235 + 1: 4352 + -1,18: + 0: 52428 + -1,19: + 0: 224 + 0,17: + 0: 65287 + 0,18: + 0: 65535 + 0,19: + 0: 4095 + -9,16: + 0: 65487 + -8,17: + 0: 65535 + -9,17: + 0: 61439 + -8,18: + 0: 65535 + -9,18: + 0: 61166 + -8,19: + 0: 55 + 1: 63488 + -9,19: + 0: 140 + 1: 62224 + -8,20: + 1: 5 + -7,17: + 0: 56797 + -7,18: + 0: 4081 + -7,19: + 1: 4028 + -6,17: + 0: 14199 + -6,18: + 0: 1904 + -6,19: + 1: 47871 + -6,20: + 1: 12 + -5,20: + 1: 90 + -11,13: + 1: 24816 + -11,12: + 1: 49152 + -11,14: + 1: 64 + -10,12: + 1: 65280 + -10,13: + 1: 287 + 0: 17472 + -10,14: + 0: 759 + -10,17: + 1: 25700 + -10,18: + 1: 51404 + -10,16: + 1: 17408 + -10,19: + 1: 35016 + -9,20: + 1: 5 + 0,20: + 1: 39 + 1,17: + 0: 65535 + 1,18: + 0: 65535 + 1,19: + 0: 36863 + 1,20: + 1: 1123 + 2,17: + 0: 65309 + 2,18: + 0: 65535 + 2,19: + 0: 14199 + 3,17: + 0: 21958 + 3,18: + 0: 24533 + 3,19: + 1: 272 + 0: 1220 + 2,20: + 1: 744 + 4,17: + 0: 4470 + 4,18: + 0: 273 + 5,16: + 0: 2032 + 5,17: + 1: 2 + 6,17: + 1: 44706 + 6,18: + 1: 44706 + 6,19: + 1: 44706 + 6,20: + 1: 226 + 7,17: + 1: 65522 + 7,18: + 1: 65522 + 7,19: + 1: 65522 + 7,20: + 1: 35058 + 8,17: + 1: 45047 + 8,18: + 1: 44962 + 8,19: + 1: 44962 + 4,-1: + 1: 4980 + 5,1: + 0: 4049 + 5,2: + 0: 65535 + 5,0: + 6: 2184 + 5,-1: + 6: 32768 + 1: 57 + 6,0: + 6: 817 + 0: 34944 + 6,1: + 0: 61424 + 6,2: + 0: 30578 + 6,-1: + 6: 4096 + 0: 57344 + 1: 138 + 7,0: + 0: 55807 + 7,1: + 0: 63964 + 7,2: + 1: 4368 + 0: 52416 + 7,3: + 0: 1904 + 7,-1: + 0: 61440 + 1: 170 + 8,0: + 0: 63694 + 8,1: + 0: 55551 + 8,2: + 0: 44968 + 4,-2: + 1: 18684 + 4,-4: + 1: 51436 + 4,-3: + 1: 59592 + 4,-5: + 1: 64740 + 5,-4: + 0: 39185 + 5,-3: + 0: 6553 + 5,-2: + 0: 3633 + 1: 61696 + 5,-5: + 0: 15872 + 1: 510 + 6,-4: + 0: 20464 + 6,-3: + 0: 65350 + 6,-2: + 0: 3840 + 1: 61440 + 7,-4: + 0: 45872 + 7,-3: + 0: 13235 + 7,-2: + 0: 3840 + 1: 61440 + 8,-4: + 0: 65280 + 8,-3: + 0: 4095 + 8,-2: + 0: 63474 + 1: 2048 + 8,-1: + 0: 43527 + 1: 8 + 8,-5: + 0: 61696 + 1: 3829 + 9,-4: + 0: 13064 + 9,-3: + 0: 819 + 9,-2: + 0: 12536 + 1: 36608 + 9,-1: + 1: 34821 + 0: 4866 + 9,-5: + 0: 61440 + 1: 3921 + 9,0: + 0: 4113 + 1: 3276 + 10,-4: + 0: 4369 + 1: 43690 + 10,-3: + 0: 4369 + 1: 41642 + 10,-2: + 0: 1 + 1: 52498 + 10,-5: + 1: 48058 + 10,-1: + 1: 558 + 0: 34944 + 10,0: + 0: 20206 + 11,-4: + 1: 61416 + 11,-3: + 1: 35720 + 11,-2: + 1: 4047 + 11,-1: + 0: 61166 + 11,0: + 0: 61166 + 11,-5: + 1: 61416 + 12,-4: + 1: 49080 + 12,-3: + 1: 248 + 0: 57344 + 12,-1: + 0: 65535 + 9,1: + 0: 64543 + 9,2: + 0: 65535 + 10,1: + 0: 47567 + 10,2: + 0: 47547 + 11,1: + 0: 47886 + 11,2: + 0: 3955 + 12,0: + 0: 65535 + 12,1: + 0: 65519 + 12,2: + 0: 32626 + 12,3: + 0: 48050 + 13,4: + 0: 35771 + 13,5: + 0: 44027 + 13,6: + 0: 65535 + 13,7: + 0: 57308 + 13,3: + 0: 46008 + 13,8: + 0: 65532 + 14,4: + 0: 65535 + 14,5: + 0: 4095 + 14,6: + 0: 7645 + 14,7: + 0: 57309 + 14,3: + 0: 61695 + 14,8: + 0: 65521 + 15,5: + 0: 17781 + 15,6: + 0: 17781 + 15,7: + 0: 32631 + 15,4: + 0: 20010 + 15,3: + 0: 43697 + 16,4: + 0: 65535 + 16,5: + 0: 30719 + 16,6: + 0: 63351 + 16,7: + 0: 30583 + 13,0: + 0: 65535 + 13,1: + 0: 4895 + 6: 52224 + 13,2: + 0: 65520 + 13,-1: + 0: 65535 + 14,0: + 0: 13107 + 1: 34952 + 14,1: + 0: 3 + 1: 61064 + 14,-1: + 0: 13107 + 1: 34952 + 14,2: + 1: 142 + 0: 8736 + 15,0: + 1: 12291 + 0: 34944 + 15,1: + 1: 48 + 0: 2184 + 15,2: + 1: 272 + 0: 52428 + 16,0: + 0: 65527 + 16,1: + 0: 12287 + 16,2: + 0: 65535 + 16,3: + 0: 65527 + 13,9: + 0: 65535 + 13,10: + 0: 65455 + 13,11: + 0: 20479 + 13,12: + 6: 61439 + 14,9: + 0: 65523 + 14,10: + 0: 47927 + 14,11: + 0: 35643 + 14,12: + 0: 9854 + 15,8: + 0: 65520 + 15,9: + 0: 30576 + 15,10: + 0: 30567 + 15,11: + 0: 63255 + 15,12: + 0: 30471 + 16,8: + 0: 65527 + 16,9: + 0: 65535 + 16,10: + 0: 65399 + 16,11: + 0: 32767 + 12,-2: + 0: 43246 + 12,-5: + 1: 49080 + 13,-4: + 1: 61416 + 13,-3: + 1: 35064 + 0: 12288 + 13,-2: + 0: 8243 + 1: 2184 + 13,-5: + 1: 61416 + 14,-4: + 1: 49080 + 14,-2: + 1: 36857 + 14,-3: + 1: 17032 + 14,-5: + 1: 49080 + 15,-2: + 1: 16 + 0: 4096 + 15,-1: + 1: 245 + 16,-1: + 1: 1533 + 16,12: + 0: 30583 + 17,8: + 0: 65520 + 17,9: + 0: 65527 + 17,10: + 0: 56591 + 17,11: + 0: 3581 + 17,7: + 0: 65535 + 17,12: + 0: 32631 + 18,8: + 0: 49072 + 18,9: + 0: 56784 + 18,10: + 0: 60943 + 18,11: + 0: 57598 + 18,7: + 0: 65535 + 18,12: + 0: 40959 + 19,8: + 0: 49072 + 19,9: + 0: 32624 + 19,10: + 0: 63239 + 19,11: + 0: 61559 + 19,7: + 0: 32631 + 20,8: + 0: 65535 + 20,9: + 0: 30719 + 20,10: + 0: 65319 + 20,11: + 0: 16175 + 17,4: + 0: 65528 + 17,5: + 0: 61695 + 17,6: + 0: 65535 + 17,3: + 0: 61152 + 18,4: + 0: 57304 + 18,5: + 0: 20573 + 18,6: + 0: 61909 + 18,3: + 0: 64433 + 19,4: + 0: 53523 + 19,5: + 0: 7 + 1: 1792 + 19,6: + 0: 10103 + 19,3: + 0: 4112 + 1: 204 + 20,4: + 0: 12288 + 1: 34816 + 20,5: + 0: 65522 + 20,6: + 0: 32767 + 20,7: + 0: 63346 + 17,0: + 0: 65024 + 1: 4 + 17,2: + 0: 65521 + 17,1: + 0: 14 + 1: 17408 + 17,-1: + 1: 17532 + 18,0: + 0: 65407 + 18,1: + 0: 63487 + 18,2: + 0: 30583 + 18,-1: + 0: 30498 + 1: 8 + 19,0: + 0: 4355 + 19,1: + 0: 12305 + 19,2: + 1: 12592 + 20,3: + 1: 2288 + 17,-4: + 1: 17476 + 17,-3: + 1: 17476 + 17,-2: + 1: 50244 + 18,-2: + 0: 8192 + 1: 32768 + 19,-2: + 1: 8091 + 19,-1: + 1: 785 + 19,-4: + 1: 4369 + 19,-3: + 1: 47889 + 20,-2: + 1: 3978 + 12,-7: + 1: 64224 + 11,-7: + 1: 61440 + 12,-6: + 1: 49080 + 11,-6: + 1: 61416 + 13,-7: + 1: 62000 + 13,-6: + 1: 61416 + 14,-7: + 1: 61440 + 14,-6: + 1: 49080 + 8,-6: + 1: 20736 + 7,-5: + 1: 253 + 0: 3840 + 10,-7: + 1: 32768 + 10,-6: + 1: 34952 + 8,20: + 1: 64242 + 9,17: + 1: 65522 + 9,18: + 1: 65522 + 9,19: + 1: 65522 + 9,20: + 1: 242 + 10,17: + 1: 9006 + 10,18: + 1: 8994 + 10,19: + 1: 8994 + 10,20: + 1: 50 + 11,17: + 1: 71 + 12,16: + 1: 4368 + -7,-6: + 1: 49152 + -6,-6: + 1: 28672 + 13,13: + 0: 12016 + 13,14: + 0: 7419 + 13,15: + 1: 4400 + 14,13: + 0: 6014 + 14,14: + 0: 37883 + 14,15: + 0: 2184 + 15,13: + 0: 1911 + 15,14: + 0: 53623 + 15,15: + 0: 24031 + 15,16: + 0: 85 + 16,13: + 0: 63351 + 16,14: + 0: 32639 + 16,15: + 0: 4095 + 16,16: + 1: 39 + 17,13: + 0: 65287 + 17,14: + 0: 30719 + 17,15: + 0: 22399 + 17,16: + 0: 85 + 18,13: + 0: 36847 + 18,14: + 0: 63726 + 18,15: + 0: 4095 + 18,16: + 1: 143 + 19,12: + 0: 52688 + 19,13: + 0: 58617 + 19,14: + 0: 61679 + 19,15: + 0: 4095 + 19,16: + 1: 47 + 20,12: + 0: 4368 + 20,13: + 0: 16 + 1: 25668 + 20,14: + 1: 34 + 0: 8192 + 20,15: + 0: 546 + 21,8: + 0: 65535 + 21,9: + 0: 2047 + 21,10: + 1: 26351 + 21,7: + 0: 63232 + 1: 15 + 21,11: + 1: 9830 + 22,9: + 1: 13926 + 22,10: + 1: 1 + 22,8: + 1: 26214 + 22,7: + 1: 26161 + 21,4: + 1: 35320 + 21,5: + 1: 26350 + 21,6: + 1: 58982 + 21,3: + 1: 63604 + 21,0: + 1: 17612 + 21,-1: + 1: 17604 + 21,1: + 1: 19652 + 21,2: + 1: 19652 + 22,0: + 1: 4368 + 22,1: + 1: 273 + 22,2: + 1: 771 + 22,3: + 1: 1799 + -4,20: + 1: 1 + 5,-6: + 1: 41472 + 6,-5: + 1: 242 + 0: 3840 + 7,-6: + 1: 16384 + 20,-3: + 1: 40960 + 21,-2: + 1: 18314 + 21,-3: + 1: 43520 + 22,-2: + 1: 28785 + 22,-1: + 1: 12336 + 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 + - 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: 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: 235 + moles: + - 21.824879 + - 82.10312 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + chunkSize: 4 + - type: GasTileOverlay + - type: RadiationGridResistance + - type: NavMap + - type: BecomesStation + id: Gaxstation +- proto: AirAlarm + entities: + - uid: 3 + components: + - type: Transform + pos: 75.5,63.5 + parent: 2 + - type: DeviceList + devices: + - 11851 + - 8552 + - 8549 + - 8550 + - 8551 + - 8554 + - 8553 + - 8555 + - 11849 + - 11850 + - 11848 + - 422 + - 421 + - 8915 + - 8916 + - 8917 + - 8919 + - 8920 + - 8918 + - 8922 + - uid: 4 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 67.5,40.5 + parent: 2 + - type: DeviceList + devices: + - 464 + - 8923 + - 8924 + - 11831 + - 11680 + - 8551 + - 8550 + - 8549 + - 8570 + - 8571 + - 8572 + - 8597 + - 8599 + - 8598 + - 11694 + - 11841 + - 429 + - 8564 + - 8565 + - 8566 + - 8575 + - 8574 + - 8573 + - 8569 + - 8568 + - 8567 + - uid: 5 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 79.5,32.5 + parent: 2 + - type: DeviceList + devices: + - 423 + - 11683 + - 11834 + - 11837 + - 11686 + - 8582 + - 8583 + - 8581 + - 8580 + - 8562 + - 8563 + - 8559 + - 8586 + - 8584 + - 428 + - 426 + - 8585 + - 424 + - 8576 + - 8588 + - 8578 + - 425 + - 11687 + - 8589 + - 11838 + - 427 + - 8577 + - 304 + - 18618 + - 18619 + - uid: 6 + components: + - type: Transform + pos: 74.5,46.5 + parent: 2 + - type: DeviceList + devices: + - 423 + - 8557 + - 8558 + - 8559 + - 365 + - 11833 + - 11832 + - 11834 + - uid: 7 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 79.5,25.5 + parent: 2 + - type: DeviceList + devices: + - 11838 + - 11687 + - 11688 + - 11839 + - 428 + - 425 + - 8590 + - 8588 + - uid: 8 + components: + - type: Transform + pos: 71.5,22.5 + parent: 2 + - type: DeviceList + devices: + - 11695 + - 11843 + - 11694 + - 11841 + - 429 + - 364 + - 11696 + - 8579 + - 8594 + - 8593 + - 8592 + - 8599 + - 8598 + - 8597 + - 8596 + - 8595 + - 11844 + - 8872 + - uid: 9 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 71.5,7.5 + parent: 2 + - type: DeviceList + devices: + - 435 + - 11845 + - 8601 + - 8600 + - 8594 + - 8593 + - 8592 + - 11847 + - 11699 + - 11846 + - 11698 + - 434 + - 8604 + - 8603 + - 8602 + - uid: 10 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 49.5,36.5 + parent: 2 + - type: DeviceList + devices: + - 11808 + - 11653 + - 436 + - 11805 + - 11652 + - 420 + - 419 + - 11810 + - 8610 + - 8609 + - 8608 + - 8607 + - 8606 + - 8605 + - 8619 + - 8618 + - 8617 + - 8627 + - 8628 + - 8629 + - 8573 + - 8574 + - 8575 + - 8612 + - 8611 + - 8641 + - 8640 + - 8623 + - 8925 + - uid: 11 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 43.5,41.5 + parent: 2 + - type: DeviceList + devices: + - 366 + - 11802 + - 11649 + - 8622 + - 8621 + - 8623 + - 8613 + - 8624 + - 418 + - 11803 + - uid: 12 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 43.5,42.5 + parent: 2 + - type: DeviceList + devices: + - 11637 + - 11795 + - 11645 + - 11789 + - 370 + - 369 + - 368 + - 8638 + - 8642 + - 8636 + - 8637 + - 11791 + - 11638 + - 8643 + - 8645 + - 8644 + - 8639 + - uid: 13 + components: + - type: Transform + pos: 55.5,52.5 + parent: 2 + - type: DeviceList + devices: + - 367 + - 8625 + - 8626 + - 11807 + - uid: 14 + components: + - type: Transform + pos: 34.5,36.5 + parent: 2 + - type: DeviceList + devices: + - 8646 + - 8647 + - 8648 + - 8651 + - 8652 + - 8653 + - 437 + - 11788 + - 11646 + - 8633 + - 8649 + - 8650 + - 8656 + - 8654 + - 8655 + - 412 + - 11640 + - 11790 + - 11786 + - 411 + - 8670 + - 8669 + - 8635 + - 8634 + - 8660 + - 413 + - uid: 15 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 34.5,46.5 + parent: 2 + - type: DeviceList + devices: + - 8662 + - 8661 + - 8663 + - 8664 + - 8665 + - 8556 + - 8666 + - 8667 + - 8659 + - 8658 + - 8657 + - 8927 + - 8676 + - uid: 16 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 7.5,51.5 + parent: 2 + - type: DeviceList + devices: + - 8693 + - 8694 + - 8695 + - 8696 + - 8697 + - 8698 + - 11750 + - 11611 + - 414 + - 8699 + - 8700 + - 416 + - 8702 + - 8701 + - 11752 + - 415 + - uid: 17 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -7.5,46.5 + parent: 2 + - type: DeviceList + devices: + - 8686 + - 8687 + - 8689 + - 11727 + - 11583 + - 387 + - 8716 + - 8715 + - 8714 + - 8713 + - 8712 + - 8709 + - 8708 + - 8710 + - 8711 + - uid: 18 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 2.5,36.5 + parent: 2 + - type: DeviceList + devices: + - 11565 + - 11716 + - 11564 + - 8770 + - 8771 + - 8772 + - 8768 + - 8692 + - 8691 + - 8690 + - 8769 + - 11717 + - 386 + - uid: 19 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 19.5,10.5 + parent: 2 + - uid: 20 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 13.5,16.5 + parent: 2 + - type: DeviceList + devices: + - 8824 + - 8823 + - 8805 + - 8806 + - 8804 + - 8803 + - 8807 + - 11573 + - 11776 + - 372 + - uid: 21 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 13.5,12.5 + parent: 2 + - type: DeviceList + devices: + - 8824 + - 8823 + - 8809 + - 8810 + - 383 + - 11712 + - 11559 + - 8812 + - 8811 + - 8813 + - 8814 + - uid: 22 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 7.5,50.5 + parent: 2 + - type: DeviceList + devices: + - 406 + - 11796 + - 11625 + - 8678 + - 8679 + - 8680 + - 397 + - 8686 + - 8687 + - 8689 + - 11582 + - 8692 + - 8691 + - 8690 + - 8684 + - 8682 + - 8681 + - uid: 23 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 26.5,52.5 + parent: 2 + - type: DeviceList + devices: + - 8704 + - 8703 + - 8705 + - 8706 + - 8707 + - 8697 + - 8698 + - 417 + - 11632 + - uid: 24 + components: + - type: Transform + pos: -7.5,57.5 + parent: 2 + - type: DeviceList + devices: + - 8723 + - 8724 + - 8725 + - 8523 + - 8522 + - 8524 + - 8521 + - 8525 + - 8526 + - 11732 + - 11588 + - 11731 + - 11587 + - 11730 + - 11586 + - 395 + - 8717 + - 8527 + - 396 + - uid: 25 + components: + - type: Transform + pos: -13.5,59.5 + parent: 2 + - type: DeviceList + devices: + - 8720 + - 8719 + - 8723 + - 8724 + - 8725 + - 8711 + - 8710 + - 8712 + - 8721 + - 8722 + - 8726 + - 388 + - 11590 + - 11736 + - 390 + - 395 + - 393 + - 8736 + - uid: 26 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -8.5,68.5 + parent: 2 + - type: DeviceList + devices: + - 13233 + - 11605 + - 394 + - 441 + - 393 + - 11603 + - 11737 + - 11741 + - 11742 + - 8732 + - 8730 + - 8731 + - uid: 27 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -20.5,62.5 + parent: 2 + - type: DeviceList + devices: + - 11592 + - 11740 + - 442 + - 443 + - 8736 + - 11738 + - 8732 + - 8737 + - uid: 28 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -26.5,62.5 + parent: 2 + - type: DeviceList + devices: + - 392 + - 11773 + - 11599 + - 11774 + - 11601 + - 11772 + - 11598 + - 8746 + - 8745 + - 8744 + - 8743 + - 8747 + - 8539 + - 8541 + - uid: 29 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -30.5,56.5 + parent: 2 + - type: DeviceList + devices: + - 11602 + - 11775 + - 446 + - 8739 + - 8738 + - 8748 + - 8743 + - 8744 + - 8542 + - 8540 + - 11597 + - 11772 + - 11774 + - uid: 30 + components: + - type: Transform + pos: -25.5,65.5 + parent: 2 + - type: DeviceList + devices: + - 11746 + - 11596 + - 11595 + - 11745 + - 445 + - 444 + - 8741 + - 8740 + - 8738 + - 8739 + - 8722 + - 8721 + - 8742 + - 390 + - uid: 31 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -28.5,49.5 + parent: 2 + - uid: 32 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -21.5,54.5 + parent: 2 + - type: DeviceList + devices: + - 391 + - 8742 + - 11594 + - uid: 33 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -21.5,53.5 + parent: 2 + - type: DeviceList + devices: + - 8726 + - 389 + - 11739 + - 11593 + - uid: 34 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 0.5,57.5 + parent: 2 + - type: DeviceList + devices: + - 8717 + - 8718 + - 11734 + - 11589 + - 447 + - uid: 35 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 9.5,66.5 + parent: 2 + - type: DeviceList + devices: + - 399 + - 448 + - 398 + - 8750 + - 8749 + - 8757 + - 8758 + - 8756 + - 8751 + - 8755 + - 8754 + - 8753 + - 8759 + - 8760 + - 8761 + - 11748 + - 11610 + - 401 + - 11608 + - 11747 + - 8763 + - 8762 + - 8752 + - 8729 + - 8766 + - 11743 + - 11606 + - 8794 + - 8795 + - 8793 + - uid: 36 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 3.5,69.5 + parent: 2 + - type: DeviceList + devices: + - 8759 + - 8760 + - 8761 + - 11749 + - 11609 + - 400 + - 8767 + - uid: 37 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -7.5,35.5 + parent: 2 + - type: DeviceList + devices: + - 8769 + - 11566 + - 11718 + - 8773 + - 8774 + - 8546 + - 8928 + - 8548 + - uid: 38 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -11.5,30.5 + parent: 2 + - type: DeviceList + devices: + - 8776 + - 8792 + - 8775 + - 449 + - 11721 + - 11569 + - 8774 + - 8780 + - 8778 + - 8777 + - uid: 39 + components: + - type: Transform + pos: -8.5,26.5 + parent: 2 + - type: DeviceList + devices: + - 8791 + - 8790 + - 8792 + - 379 + - 11563 + - 11715 + - uid: 40 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -6.5,25.5 + parent: 2 + - uid: 41 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -14.5,17.5 + parent: 2 + - type: DeviceList + devices: + - 377 + - 11714 + - 11562 + - 8787 + - 8543 + - 8790 + - uid: 42 + components: + - type: Transform + pos: -29.5,20.5 + parent: 2 + - uid: 43 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -2.5,24.5 + parent: 2 + - type: DeviceList + devices: + - 11720 + - 11567 + - 450 + - 8776 + - uid: 44 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -23.5,16.5 + parent: 2 + - type: DeviceList + devices: + - 11560 + - 376 + - 8786 + - 8788 + - 8787 + - 8789 + - 8785 + - 374 + - 11703 + - 11856 + - 11857 + - uid: 45 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -35.5,24.5 + parent: 2 + - type: DeviceList + devices: + - 375 + - 8782 + - 8785 + - 8545 + - uid: 46 + components: + - type: Transform + pos: -26.5,47.5 + parent: 2 + - type: DeviceList + devices: + - 8935 + - 11551 + - 11711 + - 471 + - uid: 47 + components: + - type: Transform + pos: -31.5,40.5 + parent: 2 + - type: DeviceList + devices: + - 451 + - 8784 + - 8783 + - uid: 48 + components: + - type: Transform + pos: -18.5,46.5 + parent: 2 + - type: DeviceList + devices: + - 378 + - 11570 + - 11723 + - 8796 + - uid: 49 + components: + - type: Transform + pos: -11.5,46.5 + parent: 2 + - type: DeviceList + devices: + - 11571 + - 11722 + - 8780 + - 8779 + - 452 + - uid: 50 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -1.5,18.5 + parent: 2 + - type: DeviceList + devices: + - 8772 + - 8771 + - 8770 + - 8797 + - 8798 + - 8799 + - 384 + - 8800 + - 8801 + - 8802 + - uid: 51 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -8.5,7.5 + parent: 2 + - type: DeviceList + devices: + - 8817 + - 8818 + - 11579 + - 11782 + - 381 + - 8827 + - 8802 + - 467 + - 11701 + - 11853 + - 466 + - 11700 + - 11852 + - 8932 + - 8933 + - uid: 52 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -4.5,4.5 + parent: 2 + - type: DeviceList + devices: + - 8815 + - 8816 + - 11577 + - 11779 + - 468 + - uid: 53 + components: + - type: Transform + pos: 2.5,13.5 + parent: 2 + - type: DeviceList + devices: + - 8809 + - 8810 + - 8815 + - 8816 + - 8807 + - 8825 + - 8826 + - 382 + - 11778 + - 11575 + - 8808 + - 11578 + - 11781 + - uid: 54 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -2.5,16.5 + parent: 2 + - type: DeviceList + devices: + - 11777 + - 11574 + - 8808 + - 453 + - uid: 55 + components: + - type: Transform + pos: 24.5,22.5 + parent: 2 + - type: DeviceList + devices: + - 410 + - 11642 + - 8830 + - 8831 + - 8832 + - 8829 + - 8828 + - 8670 + - 8669 + - 8635 + - 8634 + - 11553 + - 11785 + - 11783 + - 8675 + - uid: 56 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 27.5,15.5 + parent: 2 + - type: DeviceList + devices: + - 438 + - 11784 + - 11641 + - 8833 + - 8829 + - 8828 + - 8837 + - 8836 + - 8835 + - 8834 + - uid: 57 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 57.5,27.5 + parent: 2 + - type: DeviceList + devices: + - 8839 + - 8838 + - 8822 + - 8875 + - 8846 + - 8840 + - 8841 + - 8842 + - 11814 + - 11661 + - 454 + - uid: 58 + components: + - type: Transform + pos: 47.5,32.5 + parent: 2 + - type: DeviceList + devices: + - 430 + - 8847 + - 8848 + - 8845 + - 8840 + - 11813 + - 11660 + - uid: 59 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 50.5,19.5 + parent: 2 + - uid: 60 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 56.5,14.5 + parent: 2 + - type: DeviceList + devices: + - 11662 + - 11815 + - 458 + - 8844 + - 8842 + - 8871 + - 8677 + - uid: 61 + components: + - type: Transform + pos: 44.5,18.5 + parent: 2 + - type: DeviceList + devices: + - 8849 + - 8851 + - 8870 + - 8869 + - 8868 + - 431 + - 8862 + - 8859 + - 8852 + - 8843 + - 8847 + - 8848 + - uid: 62 + components: + - type: Transform + pos: 48.5,8.5 + parent: 2 + - type: DeviceList + devices: + - 11666 + - 11820 + - 433 + - 8859 + - 8861 + - 8858 + - 8860 + - 19347 + - 19358 + - 19348 + - 19357 + - 19349 + - 19356 + - 19355 + - 19354 + - 19361 + - 19350 + - 19360 + - 19351 + - 19359 + - 19352 + - 19353 + - 19362 + - uid: 63 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 51.5,12.5 + parent: 2 + - type: DeviceList + devices: + - 8852 + - 455 + - 11665 + - 11818 + - uid: 64 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 28.5,-1.5 + parent: 2 + - type: DeviceList + devices: + - 11828 + - 11676 + - 457 + - 8857 + - 8864 + - uid: 65 + components: + - type: Transform + pos: 36.5,12.5 + parent: 2 + - type: DeviceList + devices: + - 11672 + - 432 + - 11824 + - 8853 + - 8863 + - 8867 + - 8849 + - uid: 66 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 34.5,2.5 + parent: 2 + - type: DeviceList + devices: + - 11825 + - 11675 + - 8854 + - 8855 + - 8853 + - 8857 + - 8856 + - 456 + - 8865 + - 8866 + - uid: 67 + components: + - type: Transform + pos: 11.5,36.5 + parent: 2 + - type: DeviceList + devices: + - 11760 + - 404 + - 11619 + - 8892 + - 8894 + - 11620 + - 11757 + - 11617 + - 8891 + - 8890 + - 8885 + - 8886 + - 403 + - 465 + - 8931 + - 8930 + - 11702 + - 11854 + - uid: 68 + components: + - type: Transform + pos: 7.5,42.5 + parent: 2 + - type: DeviceList + devices: + - 8876 + - 8910 + - 8909 + - 11614 + - 463 + - 8908 + - 11615 + - 11754 + - uid: 69 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 10.5,39.5 + parent: 2 + - type: DeviceList + devices: + - 11756 + - 11624 + - 462 + - 8883 + - 8881 + - 8882 + - uid: 70 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 14.5,43.5 + parent: 2 + - type: DeviceList + devices: + - 402 + - 11627 + - 11769 + - 8882 + - 8880 + - 8879 + - 8878 + - 8877 + - 11770 + - 11626 + - 8881 + - uid: 71 + components: + - type: Transform + pos: 18.5,40.5 + parent: 2 + - type: DeviceList + devices: + - 8884 + - 11766 + - 11628 + - 405 + - uid: 72 + components: + - type: Transform + pos: 24.5,46.5 + parent: 2 + - type: DeviceList + devices: + - 8903 + - 11768 + - 11630 + - 461 + - 11556 + - 11557 + - 11555 + - 11554 + - 11767 + - 408 + - 8911 + - uid: 73 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 30.5,40.5 + parent: 2 + - uid: 74 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 30.5,24.5 + parent: 2 + - uid: 75 + components: + - type: Transform + pos: 20.5,27.5 + parent: 2 + - uid: 76 + components: + - type: Transform + pos: 9.5,28.5 + parent: 2 + - type: DeviceList + devices: + - 11758 + - 11618 + - 459 + - 8899 + - 8895 + - 8893 + - 8904 + - 11755 + - 11616 + - 385 + - 8546 + - uid: 77 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 24.5,37.5 + parent: 2 + - type: DeviceList + devices: + - 8886 + - 11762 + - 11621 + - 409 + - 8889 + - 8887 + - 8888 + - 8902 + - 11765 + - 11629 + - 460 + - 8633 + - 8650 + - 8649 + - uid: 78 + components: + - type: Transform + pos: 40.5,55.5 + parent: 2 + - type: DeviceList + devices: + - 440 + - 11794 + - 11636 + - 8668 + - 8674 + - 8913 + - 8912 + - 8914 + - 8915 + - 8917 + - 8916 + - 371 + - uid: 79 + components: + - type: Transform + pos: 78.5,41.5 + parent: 2 + - uid: 80 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -7.5,17.5 + parent: 2 + - type: DeviceList + devices: + - 8546 + - 8928 + - 8548 + - 8547 + - 380 + - 8821 + - 8929 + - 11780 + - 11576 + - uid: 81 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -15.5,36.5 + parent: 2 + - uid: 82 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -9.5,44.5 + parent: 2 + - type: DeviceList + devices: + - 8934 + - 8768 + - 470 + - 469 + - 11581 + - 11725 + - 11724 + - 11580 + - uid: 83 + components: + - type: Transform + pos: 26.5,-7.5 + parent: 2 + - type: DeviceList + devices: + - 8939 + - 8936 + - 472 + - 11705 + - 11859 + - 8937 + - 8938 + - 473 + - 11704 + - 11858 + - 8940 + - 8941 + - 8854 + - 11674 + - 11826 + - uid: 18626 + components: + - type: Transform + pos: 74.5,32.5 + parent: 2 + - type: DeviceList + devices: + - 18628 + - 11678 + - 11842 + - 8579 + - 18625 + - 18624 + - 18623 + - 8588 + - 8578 + - 11838 + - 11687 + - 11688 + - 428 + - 11839 + - 8590 + - uid: 19588 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -26.5,67.5 + parent: 2 + - type: DeviceList + devices: + - 11774 + - 11601 + - 8745 + - 8746 + - 11598 + - 11772 + - 392 + - 19592 + - 19591 + - 11773 + - 19382 + - 19383 + - 11599 + - 19593 + - 19594 + - 19595 + - 19596 + - 19597 + - 19598 + - 19599 + - 8539 + - 8541 + - uid: 19589 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -35.5,74.5 + parent: 2 + - type: DeviceList + devices: + - 19557 + - 19558 + - 19559 + - 19561 + - 19560 + - 19562 + - 19563 + - 19564 + - 19565 + - 19566 + - 19567 + - 19571 + - 19568 + - 19570 + - 19569 + - 19573 + - 19401 + - 19400 + - 19493 + - 19574 + - 19575 + - 19576 + - 19577 + - 19578 + - 19579 + - 19580 + - 19584 + - 19583 + - uid: 19590 + components: + - type: Transform + pos: -21.5,75.5 + parent: 2 + - type: DeviceList + devices: + - 19582 + - 19581 + - 19403 + - 19402 + - 19585 +- proto: AirCanister + entities: + - uid: 84 + components: + - type: Transform + pos: -38.5,20.5 + parent: 2 + - uid: 18642 + components: + - type: Transform + pos: -5.5,21.5 + parent: 2 + - uid: 18643 + components: + - type: Transform + pos: -4.5,21.5 + parent: 2 +- proto: AirlockArmoryGlassLocked + entities: + - uid: 85 + components: + - type: Transform + pos: -17.5,59.5 + parent: 2 +- proto: AirlockAtmosphericsGlassLocked + entities: + - uid: 86 + components: + - type: Transform + pos: -20.5,18.5 + parent: 2 + - uid: 87 + components: + - type: Transform + pos: -13.5,19.5 + parent: 2 + - uid: 88 + components: + - type: Transform + pos: -9.5,26.5 + parent: 2 + - uid: 89 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -23.5,18.5 + parent: 2 + - uid: 90 + components: + - type: Transform + pos: -29.5,27.5 + parent: 2 + - uid: 91 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -31.5,22.5 + parent: 2 +- proto: AirlockAtmosphericsLocked + entities: + - uid: 92 + components: + - type: Transform + pos: 21.5,46.5 + parent: 2 + - uid: 93 + components: + - type: Transform + pos: -22.5,20.5 + parent: 2 +- proto: AirlockBarGlassLocked + entities: + - uid: 94 + components: + - type: Transform + pos: 59.5,37.5 + parent: 2 +- proto: AirlockBarLocked + entities: + - uid: 95 + components: + - type: Transform + pos: 60.5,45.5 + parent: 2 + - uid: 96 + components: + - type: Transform + pos: 61.5,41.5 + parent: 2 +- proto: AirlockCaptainLocked + entities: + - uid: 97 + components: + - type: Transform + pos: 77.5,27.5 + parent: 2 + - uid: 98 + components: + - type: Transform + pos: 79.5,30.5 + parent: 2 + - uid: 109 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 67.5,27.5 + parent: 2 +- proto: AirlockCargoGlassLocked + entities: + - uid: 99 + components: + - type: Transform + pos: 5.5,16.5 + parent: 2 +- proto: AirlockChapelGlassLocked + entities: + - uid: 100 + components: + - type: Transform + pos: 10.5,58.5 + parent: 2 +- proto: AirlockChapelLocked + entities: + - uid: 101 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 20.5,61.5 + parent: 2 + - uid: 102 + components: + - type: Transform + pos: 14.5,61.5 + parent: 2 + - uid: 103 + components: + - type: Transform + pos: 16.5,64.5 + parent: 2 + - uid: 104 + components: + - type: Transform + pos: 19.5,63.5 + parent: 2 +- proto: AirlockChemistryGlassLocked + entities: + - uid: 105 + components: + - type: Transform + pos: 15.5,25.5 + parent: 2 +- proto: AirlockChiefEngineerLocked + entities: + - uid: 106 + components: + - type: Transform + pos: -6.5,27.5 + parent: 2 +- proto: AirlockChiefMedicalOfficerLocked + entities: + - uid: 107 + components: + - type: Transform + pos: 18.5,36.5 + parent: 2 +- proto: AirlockCommandGlassLocked + entities: + - uid: 4405 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 76.5,47.5 + parent: 2 +- proto: AirlockCommandLocked + entities: + - uid: 108 + components: + - type: Transform + pos: 81.5,28.5 + parent: 2 + - uid: 110 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 81.5,41.5 + parent: 2 + - uid: 111 + components: + - type: Transform + pos: 78.5,34.5 + parent: 2 + - uid: 112 + components: + - type: Transform + pos: 74.5,34.5 + parent: 2 +- proto: AirlockDetectiveLocked + entities: + - uid: 113 + components: + - type: Transform + pos: -0.5,57.5 + parent: 2 + - uid: 114 + components: + - type: Transform + pos: 3.5,58.5 + parent: 2 +- proto: AirlockEngineeringGlassLocked + entities: + - uid: 115 + components: + - type: Transform + pos: -1.5,33.5 + parent: 2 + - uid: 116 + components: + - type: Transform + pos: -10.5,42.5 + parent: 2 + - uid: 117 + components: + - type: Transform + pos: 35.5,50.5 + parent: 2 + - uid: 118 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -15.5,34.5 + parent: 2 + - uid: 119 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -17.5,34.5 + parent: 2 + - uid: 120 + components: + - type: Transform + pos: -4.5,37.5 + parent: 2 + - uid: 121 + components: + - type: Transform + pos: -12.5,36.5 + parent: 2 + - uid: 122 + components: + - type: Transform + pos: -14.5,42.5 + parent: 2 + - uid: 123 + components: + - type: Transform + pos: -12.5,32.5 + parent: 2 +- proto: AirlockEngineeringLocked + entities: + - uid: 124 + components: + - type: Transform + pos: -22.5,10.5 + parent: 2 + - uid: 125 + components: + - type: Transform + pos: -3.5,65.5 + parent: 2 + - uid: 126 + components: + - type: Transform + pos: 18.5,11.5 + parent: 2 + - uid: 127 + components: + - type: Transform + pos: 35.5,52.5 + parent: 2 + - uid: 128 + components: + - type: Transform + pos: -23.5,24.5 + parent: 2 + - uid: 129 + components: + - type: Transform + pos: -17.5,5.5 + parent: 2 + - uid: 130 + components: + - type: Transform + pos: 42.5,3.5 + parent: 2 + - uid: 131 + components: + - type: Transform + pos: -1.5,43.5 + parent: 2 + - uid: 132 + components: + - type: Transform + pos: 75.5,14.5 + parent: 2 + - uid: 133 + components: + - type: Transform + pos: 82.5,46.5 + parent: 2 + - uid: 134 + components: + - type: Transform + pos: 51.5,58.5 + parent: 2 + - uid: 135 + components: + - type: Transform + pos: 33.5,62.5 + parent: 2 + - uid: 136 + components: + - type: Transform + pos: -25.5,42.5 + parent: 2 +- proto: AirlockEVAGlassLocked + entities: + - uid: 137 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 69.5,45.5 + parent: 2 + - uid: 138 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 72.5,45.5 + parent: 2 + - uid: 139 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 79.5,43.5 + parent: 2 +- proto: AirlockExternal + entities: + - uid: 140 + components: + - type: Transform + pos: 12.5,0.5 + parent: 2 + - uid: 141 + components: + - type: Transform + pos: 12.5,2.5 + parent: 2 +- proto: AirlockExternalAtmosphericsLocked + entities: + - uid: 142 + components: + - type: Transform + pos: -39.5,30.5 + parent: 2 + - uid: 143 + components: + - type: Transform + pos: -37.5,30.5 + parent: 2 +- proto: AirlockExternalEngineeringLocked + entities: + - uid: 144 + components: + - type: Transform + pos: -22.5,6.5 + parent: 2 + - uid: 145 + components: + - type: Transform + pos: -22.5,4.5 + parent: 2 +- proto: AirlockExternalGlass + entities: + - uid: 146 + components: + - type: Transform + pos: -2.5,77.5 + parent: 2 + - uid: 147 + components: + - type: Transform + pos: -0.5,77.5 + parent: 2 + - uid: 148 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 75.5,0.5 + parent: 2 + - uid: 149 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 75.5,7.5 + parent: 2 + - uid: 150 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 73.5,-2.5 + parent: 2 + - uid: 151 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 73.5,-4.5 + parent: 2 + - uid: 152 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 60.5,63.5 + parent: 2 + - uid: 153 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 62.5,63.5 + parent: 2 + - uid: 154 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 68.5,63.5 + parent: 2 + - uid: 155 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 70.5,63.5 + parent: 2 +- proto: AirlockExternalGlassCargoLocked + entities: + - uid: 156 + components: + - type: Transform + pos: -0.5,2.5 + parent: 2 + - uid: 157 + components: + - type: Transform + pos: 1.5,2.5 + parent: 2 +- proto: AirlockExternalGlassEngineeringLocked + entities: + - uid: 158 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -27.5,46.5 + parent: 2 + - uid: 159 + components: + - type: Transform + pos: 33.5,65.5 + parent: 2 + - uid: 160 + components: + - type: Transform + pos: 33.5,67.5 + parent: 2 + - uid: 161 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 57.5,9.5 + parent: 2 + - uid: 162 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 43.5,-2.5 + parent: 2 + - uid: 163 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 43.5,-0.5 + parent: 2 + - uid: 164 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 57.5,11.5 + parent: 2 +- proto: AirlockExternalGlassLocked + entities: + - uid: 165 + components: + - type: Transform + pos: -6.5,69.5 + parent: 2 + - uid: 166 + components: + - type: Transform + pos: -10.5,69.5 + parent: 2 +- proto: AirlockExternalGlassSalvageLocked + entities: + - uid: 167 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -16.5,-8.5 + parent: 2 + - uid: 168 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -15.5,-8.5 + parent: 2 +- proto: AirlockExternalGlassShuttleArrivals + entities: + - uid: 169 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 77.5,7.5 + parent: 2 + - uid: 170 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 77.5,0.5 + parent: 2 +- proto: AirlockExternalGlassShuttleEmergencyLocked + entities: + - uid: 171 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 68.5,65.5 + parent: 2 + - uid: 172 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 70.5,65.5 + parent: 2 + - uid: 173 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 62.5,65.5 + parent: 2 + - uid: 174 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 60.5,65.5 + parent: 2 +- proto: AirlockExternalGlassShuttleEscape + entities: + - uid: 175 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -38.5,58.5 + parent: 2 + - uid: 176 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 15.5,77.5 + parent: 2 + - uid: 177 + components: + - type: Transform + pos: 19.5,3.5 + parent: 2 + - uid: 178 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 77.5,16.5 + parent: 2 + - uid: 16848 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 56.5,59.5 + parent: 2 +- proto: AirlockExternalGlassShuttleLocked + entities: + - uid: 179 + components: + - type: Transform + pos: -0.5,0.5 + parent: 2 + - uid: 180 + components: + - type: Transform + pos: 1.5,0.5 + parent: 2 +- proto: AirlockExternalLocked + entities: + - uid: 181 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -37.5,53.5 + parent: 2 + - uid: 182 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -36.5,57.5 + parent: 2 + - uid: 183 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -37.5,55.5 + parent: 2 +- proto: AirlockFreezerKitchenHydroLocked + entities: + - uid: 184 + components: + - type: Transform + pos: 51.5,45.5 + parent: 2 +- proto: AirlockFreezerLocked + entities: + - uid: 185 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 54.5,47.5 + parent: 2 + - uid: 186 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 56.5,49.5 + parent: 2 +- proto: AirlockGlass + entities: + - uid: 187 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 71.5,60.5 + parent: 2 + - uid: 188 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 10.5,50.5 + parent: 2 + - uid: 189 + components: + - type: Transform + pos: 57.5,30.5 + parent: 2 + - uid: 190 + components: + - type: Transform + pos: 63.5,30.5 + parent: 2 + - uid: 191 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -28.5,62.5 + parent: 2 + - uid: 192 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -32.5,62.5 + parent: 2 + - uid: 193 + components: + - type: Transform + pos: 7.5,52.5 + parent: 2 + - uid: 194 + components: + - type: Transform + pos: 9.5,50.5 + parent: 2 + - uid: 195 + components: + - type: Transform + pos: 15.5,52.5 + parent: 2 + - uid: 196 + components: + - type: Transform + pos: 15.5,53.5 + parent: 2 + - uid: 197 + components: + - type: Transform + pos: 23.5,50.5 + parent: 2 + - uid: 198 + components: + - type: Transform + pos: 24.5,50.5 + parent: 2 + - uid: 199 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 7.5,53.5 + parent: 2 + - uid: 200 + components: + - type: Transform + pos: 34.5,38.5 + parent: 2 + - uid: 201 + components: + - type: Transform + pos: 34.5,39.5 + parent: 2 + - uid: 202 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 34.5,35.5 + parent: 2 + - uid: 203 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 34.5,34.5 + parent: 2 + - uid: 204 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 34.5,33.5 + parent: 2 + - uid: 205 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 30.5,33.5 + parent: 2 + - uid: 206 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 30.5,34.5 + parent: 2 + - uid: 207 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 30.5,35.5 + parent: 2 + - uid: 208 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 65.5,7.5 + parent: 2 + - uid: 209 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 68.5,3.5 + parent: 2 + - uid: 237 + components: + - type: Transform + pos: 63.5,34.5 + parent: 2 + - uid: 238 + components: + - type: Transform + pos: 63.5,35.5 + parent: 2 + - uid: 305 + components: + - type: Transform + pos: 18.5,47.5 + parent: 2 + - uid: 4409 + components: + - type: Transform + pos: 49.5,34.5 + parent: 2 + - uid: 4410 + components: + - type: Transform + pos: 49.5,33.5 + parent: 2 + - uid: 6324 + components: + - type: Transform + pos: 49.5,35.5 + parent: 2 + - uid: 9953 + components: + - type: Transform + pos: 63.5,33.5 + parent: 2 + - uid: 10775 + components: + - type: Transform + pos: 64.5,22.5 + parent: 2 + - uid: 10776 + components: + - type: Transform + pos: 65.5,22.5 + parent: 2 + - uid: 10777 + components: + - type: Transform + pos: 66.5,22.5 + parent: 2 + - uid: 10778 + components: + - type: Transform + pos: 18.5,49.5 + parent: 2 + - uid: 11420 + components: + - type: Transform + pos: 66.5,52.5 + parent: 2 + - uid: 11827 + components: + - type: Transform + pos: 18.5,48.5 + parent: 2 + - uid: 12136 + components: + - type: Transform + pos: 64.5,52.5 + parent: 2 + - uid: 14031 + components: + - type: Transform + pos: 65.5,52.5 + parent: 2 + - uid: 18533 + components: + - type: Transform + pos: 25.5,18.5 + parent: 2 + - uid: 18534 + components: + - type: Transform + pos: 23.5,18.5 + parent: 2 + - uid: 18535 + components: + - type: Transform + pos: -0.5,24.5 + parent: 2 + - uid: 18536 + components: + - type: Transform + pos: 0.5,24.5 + parent: 2 + - uid: 18537 + components: + - type: Transform + pos: 1.5,24.5 + parent: 2 + - uid: 18538 + components: + - type: Transform + pos: 4.5,21.5 + parent: 2 + - uid: 18539 + components: + - type: Transform + pos: 4.5,20.5 + parent: 2 + - uid: 18540 + components: + - type: Transform + pos: 4.5,19.5 + parent: 2 + - uid: 18541 + components: + - type: Transform + pos: 20.5,21.5 + parent: 2 + - uid: 18542 + components: + - type: Transform + pos: 20.5,20.5 + parent: 2 + - uid: 18543 + components: + - type: Transform + pos: 20.5,19.5 + parent: 2 + - uid: 18544 + components: + - type: Transform + pos: -0.5,44.5 + parent: 2 + - uid: 18545 + components: + - type: Transform + pos: 0.5,44.5 + parent: 2 + - uid: 18546 + components: + - type: Transform + pos: 1.5,44.5 + parent: 2 + - uid: 18547 + components: + - type: Transform + pos: 4.5,54.5 + parent: 2 + - uid: 18548 + components: + - type: Transform + pos: 5.5,54.5 + parent: 2 + - uid: 18549 + components: + - type: Transform + pos: 6.5,54.5 + parent: 2 + - uid: 18550 + components: + - type: Transform + pos: -2.5,49.5 + parent: 2 + - uid: 18551 + components: + - type: Transform + pos: -2.5,48.5 + parent: 2 + - uid: 18552 + components: + - type: Transform + pos: -2.5,47.5 + parent: 2 + - uid: 18946 + components: + - type: Transform + pos: 4.5,65.5 + parent: 2 + - uid: 18947 + components: + - type: Transform + pos: 5.5,65.5 + parent: 2 + - uid: 18948 + components: + - type: Transform + pos: 6.5,65.5 + parent: 2 +- proto: AirlockGlassShuttle + entities: + - uid: 210 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -6.5,71.5 + parent: 2 + - uid: 211 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -10.5,71.5 + parent: 2 + - uid: 212 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -29.5,46.5 + parent: 2 +- proto: AirlockHatchMaintenance + entities: + - uid: 213 + components: + - type: Transform + pos: 27.5,61.5 + parent: 2 +- proto: AirlockHeadOfPersonnelGlassLocked + entities: + - uid: 214 + components: + - type: Transform + pos: 79.5,38.5 + parent: 2 +- proto: AirlockHeadOfSecurityLocked + entities: + - uid: 215 + components: + - type: Transform + pos: -18.5,56.5 + parent: 2 +- proto: AirlockHydroGlassLocked + entities: + - uid: 216 + components: + - type: Transform + pos: 48.5,46.5 + parent: 2 + - uid: 217 + components: + - type: Transform + pos: 50.5,41.5 + parent: 2 +- proto: AirlockHydroponicsLocked + entities: + - uid: 218 + components: + - type: Transform + pos: 47.5,49.5 + parent: 2 +- proto: AirlockJanitorLocked + entities: + - uid: 219 + components: + - type: Transform + pos: 42.5,55.5 + parent: 2 + - uid: 220 + components: + - type: Transform + pos: 40.5,50.5 + parent: 2 +- proto: AirlockKitchenGlassLocked + entities: + - uid: 221 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 53.5,41.5 + parent: 2 +- proto: AirlockLawyerGlassLocked + entities: + - uid: 222 + components: + - type: Transform + pos: -23.5,56.5 + parent: 2 +- proto: AirlockMailGlassLocked + entities: + - uid: 223 + components: + - type: Transform + pos: -4.5,7.5 + parent: 2 +- proto: AirlockMaint + entities: + - uid: 224 + components: + - type: Transform + pos: 20.5,15.5 + parent: 2 + - uid: 225 + components: + - type: Transform + pos: 21.5,17.5 + parent: 2 + - uid: 226 + components: + - type: Transform + pos: 27.5,17.5 + parent: 2 + - uid: 227 + components: + - type: Transform + pos: 27.5,14.5 + parent: 2 + - uid: 228 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -35.5,62.5 + parent: 2 + - uid: 229 + components: + - type: Transform + pos: 0.5,66.5 + parent: 2 + - uid: 230 + components: + - type: Transform + pos: 0.5,68.5 + parent: 2 + - uid: 231 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 3.5,67.5 + parent: 2 + - uid: 232 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 9.5,67.5 + parent: 2 + - uid: 233 + components: + - type: Transform + pos: 14.5,75.5 + parent: 2 + - uid: 234 + components: + - type: Transform + pos: 48.5,52.5 + parent: 2 + - uid: 235 + components: + - type: Transform + pos: 52.5,53.5 + parent: 2 + - uid: 236 + components: + - type: Transform + pos: 34.5,20.5 + parent: 2 + - uid: 239 + components: + - type: Transform + pos: 71.5,50.5 + parent: 2 + - uid: 240 + components: + - type: Transform + pos: 78.5,54.5 + parent: 2 + - uid: 241 + components: + - type: Transform + pos: 76.5,56.5 + parent: 2 + - uid: 242 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 61.5,25.5 + parent: 2 + - uid: 243 + components: + - type: Transform + pos: 21.5,6.5 + parent: 2 + - uid: 244 + components: + - type: Transform + pos: 59.5,52.5 + parent: 2 + - uid: 245 + components: + - type: Transform + pos: 48.5,58.5 + parent: 2 + - uid: 246 + components: + - type: Transform + pos: 42.5,62.5 + parent: 2 + - uid: 247 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 39.5,63.5 + parent: 2 + - uid: 248 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -7.5,16.5 + parent: 2 + - uid: 4408 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 79.5,52.5 + parent: 2 + - uid: 17248 + components: + - type: Transform + pos: 43.5,11.5 + parent: 2 +- proto: AirlockMaintAtmoLocked + entities: + - uid: 249 + components: + - type: Transform + pos: -23.5,11.5 + parent: 2 + - uid: 250 + components: + - type: Transform + pos: -22.5,16.5 + parent: 2 +- proto: AirlockMaintCargoLocked + entities: + - uid: 251 + components: + - type: Transform + pos: 7.5,8.5 + parent: 2 + - uid: 252 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -18.5,9.5 + parent: 2 + - uid: 253 + components: + - type: Transform + pos: -14.5,12.5 + parent: 2 +- proto: AirlockMaintChemLocked + entities: + - uid: 254 + components: + - type: Transform + pos: 6.5,24.5 + parent: 2 +- proto: AirlockMaintCommandLocked + entities: + - uid: 256 + components: + - type: Transform + pos: 81.5,45.5 + parent: 2 + - uid: 258 + components: + - type: Transform + pos: 81.5,20.5 + parent: 2 +- proto: AirlockMaintGlass + entities: + - uid: 259 + components: + - type: Transform + pos: 15.5,4.5 + parent: 2 +- proto: AirlockMaintGlassLocked + entities: + - uid: 260 + components: + - type: Transform + pos: 37.5,46.5 + parent: 2 +- proto: AirlockMaintLocked + entities: + - uid: 261 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 23.5,65.5 + parent: 2 + - uid: 262 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 43.5,48.5 + parent: 2 + - uid: 263 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 73.5,18.5 + parent: 2 + - uid: 264 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 63.5,18.5 + parent: 2 + - uid: 265 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 47.5,10.5 + parent: 2 + - uid: 266 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 15.5,16.5 + parent: 2 + - uid: 267 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 7.5,64.5 + parent: 2 + - uid: 268 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 72.5,54.5 + parent: 2 + - uid: 269 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 75.5,58.5 + parent: 2 + - uid: 270 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 19.5,65.5 + parent: 2 + - uid: 271 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 63.5,47.5 + parent: 2 + - uid: 272 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 62.5,27.5 + parent: 2 + - uid: 273 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 51.5,10.5 + parent: 2 + - uid: 274 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 25.5,8.5 + parent: 2 + - uid: 275 + components: + - type: Transform + pos: 24.5,58.5 + parent: 2 + - uid: 276 + components: + - type: Transform + pos: 2.5,25.5 + parent: 2 + - uid: 277 + components: + - type: Transform + pos: 13.5,74.5 + parent: 2 +- proto: AirlockMaintRnDLocked + entities: + - uid: 278 + components: + - type: Transform + pos: 38.5,18.5 + parent: 2 + - uid: 279 + components: + - type: Transform + pos: 43.5,22.5 + parent: 2 + - uid: 280 + components: + - type: Transform + pos: 37.5,4.5 + parent: 2 + - uid: 281 + components: + - type: Transform + pos: 31.5,6.5 + parent: 2 + - uid: 282 + components: + - type: Transform + pos: 61.5,21.5 + parent: 2 +- proto: AirlockMaintSalvageLocked + entities: + - uid: 283 + components: + - type: Transform + pos: -16.5,8.5 + parent: 2 +- proto: AirlockMaintSecLocked + entities: + - uid: 284 + components: + - type: Transform + pos: 58.5,57.5 + parent: 2 + - uid: 285 + components: + - type: Transform + pos: 74.5,15.5 + parent: 2 +- proto: AirlockMedicalGlassLocked + entities: + - uid: 286 + components: + - type: Transform + pos: 16.5,23.5 + parent: 2 + - uid: 287 + components: + - type: Transform + pos: 13.5,42.5 + parent: 2 + - uid: 288 + components: + - type: Transform + pos: 13.5,36.5 + parent: 2 + - uid: 289 + components: + - type: Transform + pos: 24.5,33.5 + parent: 2 + - uid: 290 + components: + - type: Transform + pos: 5.5,42.5 + parent: 2 + - uid: 291 + components: + - type: Transform + pos: 6.5,46.5 + parent: 2 + - uid: 292 + components: + - type: Transform + pos: 18.5,23.5 + parent: 2 + - uid: 293 + components: + - type: Transform + pos: 24.5,32.5 + parent: 2 + - uid: 294 + components: + - type: Transform + pos: 6.5,32.5 + parent: 2 + - uid: 295 + components: + - type: Transform + pos: 6.5,33.5 + parent: 2 +- proto: AirlockMedicalLocked + entities: + - uid: 296 + components: + - type: Transform + pos: 14.5,44.5 + parent: 2 + - uid: 297 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 24.5,36.5 + parent: 2 + - uid: 298 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 15.5,41.5 + parent: 2 + - uid: 299 + components: + - type: Transform + pos: 8.5,36.5 + parent: 2 + - uid: 300 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 19.5,25.5 + parent: 2 +- proto: AirlockMedicalScienceGlassLocked + entities: + - uid: 301 + components: + - type: Transform + pos: 26.5,22.5 + parent: 2 + - uid: 302 + components: + - type: Transform + pos: 24.5,25.5 + parent: 2 +- proto: AirlockQuartermasterLocked + entities: + - uid: 303 + components: + - type: Transform + pos: 2.5,16.5 + parent: 2 +- proto: AirlockResearchDirectorGlassLocked + entities: + - uid: 306 + components: + - type: Transform + pos: 50.5,17.5 + parent: 2 + - uid: 9951 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 27.5,-0.5 + parent: 2 + - uid: 9952 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 25.5,-0.5 + parent: 2 +- proto: AirlockResearchDirectorLocked + entities: + - uid: 307 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 35.5,2.5 + parent: 2 + - uid: 308 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 31.5,-10.5 + parent: 2 + - uid: 309 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 31.5,-12.5 + parent: 2 + - uid: 310 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 33.5,-7.5 + parent: 2 +- proto: AirlockSalvageGlassLocked + entities: + - uid: 311 + components: + - type: Transform + pos: -14.5,4.5 + parent: 2 + - uid: 312 + components: + - type: Transform + pos: -10.5,8.5 + parent: 2 + - uid: 313 + components: + - type: Transform + pos: -16.5,-2.5 + parent: 2 + - uid: 314 + components: + - type: Transform + pos: -15.5,-2.5 + parent: 2 +- proto: AirlockScienceGlassLocked + entities: + - uid: 315 + components: + - type: Transform + pos: 37.5,16.5 + parent: 2 + - uid: 316 + components: + - type: Transform + pos: 39.5,14.5 + parent: 2 + - uid: 317 + components: + - type: Transform + pos: 34.5,10.5 + parent: 2 + - uid: 318 + components: + - type: Transform + pos: 32.5,10.5 + parent: 2 +- proto: AirlockScienceLocked + entities: + - uid: 320 + components: + - type: Transform + pos: 49.5,8.5 + parent: 2 + - uid: 321 + components: + - type: Transform + pos: 31.5,2.5 + parent: 2 + - uid: 322 + components: + - type: Transform + pos: 35.5,6.5 + parent: 2 + - uid: 323 + components: + - type: Transform + pos: 41.5,18.5 + parent: 2 + - uid: 324 + components: + - type: Transform + pos: 49.5,12.5 + parent: 2 + - uid: 325 + components: + - type: Transform + pos: 53.5,23.5 + parent: 2 + - uid: 326 + components: + - type: Transform + pos: 49.5,22.5 + parent: 2 + - uid: 327 + components: + - type: Transform + pos: 54.5,21.5 + parent: 2 + - uid: 328 + components: + - type: Transform + pos: 53.5,30.5 + parent: 2 + - uid: 329 + components: + - type: Transform + pos: 49.5,30.5 + parent: 2 +- proto: AirlockSecurityGlassLocked + entities: + - uid: 330 + components: + - type: Transform + pos: -3.5,18.5 + parent: 2 + - uid: 331 + components: + - type: Transform + pos: -26.5,58.5 + parent: 2 + - uid: 332 + components: + - type: Transform + pos: -26.5,57.5 + parent: 2 + - uid: 333 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -5.5,32.5 + parent: 2 + - uid: 334 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -6.5,30.5 + parent: 2 + - uid: 335 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 44.5,15.5 + parent: 2 + - uid: 336 + components: + - type: Transform + pos: 60.5,58.5 + parent: 2 + - uid: 337 + components: + - type: Transform + pos: 61.5,60.5 + parent: 2 + - uid: 338 + components: + - type: Transform + pos: -8.5,67.5 + parent: 2 + - uid: 339 + components: + - type: Transform + pos: -23.5,65.5 + parent: 2 + - uid: 340 + components: + - type: Transform + pos: -4.5,12.5 + parent: 2 + - uid: 341 + components: + - type: Transform + pos: 2.5,29.5 + parent: 2 + - uid: 342 + components: + - type: Transform + pos: 8.5,30.5 + parent: 2 + - uid: 343 + components: + - type: Transform + pos: -1.5,30.5 + parent: 2 +- proto: AirlockSecurityLawyerGlassLocked + entities: + - uid: 344 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -12.5,53.5 + parent: 2 + - uid: 345 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -11.5,53.5 + parent: 2 + - uid: 346 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -11.5,50.5 + parent: 2 + - uid: 347 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -12.5,50.5 + parent: 2 +- proto: AirlockSecurityLawyerLocked + entities: + - uid: 348 + components: + - type: Transform + pos: -10.5,59.5 + parent: 2 +- proto: AirlockSecurityLocked + entities: + - uid: 349 + components: + - type: Transform + pos: -6.5,65.5 + parent: 2 + - uid: 350 + components: + - type: Transform + pos: -11.5,65.5 + parent: 2 + - uid: 351 + components: + - type: Transform + pos: -15.5,53.5 + parent: 2 + - uid: 352 + components: + - type: Transform + pos: -23.5,59.5 + parent: 2 + - uid: 353 + components: + - type: Transform + pos: -28.5,59.5 + parent: 2 + - uid: 354 + components: + - type: Transform + pos: -32.5,59.5 + parent: 2 + - uid: 355 + components: + - type: Transform + pos: -27.5,56.5 + parent: 2 + - uid: 356 + components: + - type: Transform + pos: 71.5,16.5 + parent: 2 +- proto: AirlockServiceCaptainLocked + entities: + - uid: 357 + components: + - type: Transform + pos: 75.5,25.5 + parent: 2 +- proto: AirlockServiceLocked + entities: + - uid: 359 + components: + - type: Transform + pos: 17.5,57.5 + parent: 2 +- proto: AirlockTheatreLocked + entities: + - uid: 360 + components: + - type: Transform + pos: 41.5,41.5 + parent: 2 + - uid: 361 + components: + - type: Transform + pos: 41.5,46.5 + parent: 2 +- proto: AirlockVirologyLocked + entities: + - uid: 362 + components: + - type: Transform + pos: 23.5,42.5 + parent: 2 + - type: DeviceLinkSink + invokeCounter: 1 + links: + - 363 + - type: DeviceLinkSource + linkedPorts: + 363: + - DoorStatus: DoorBolt + - uid: 363 + components: + - type: Transform + pos: 25.5,44.5 + parent: 2 + - type: DeviceLinkSink + invokeCounter: 1 + links: + - 362 + - type: DeviceLinkSource + linkedPorts: + 362: + - DoorStatus: DoorBolt +- proto: AirSensor + entities: + - uid: 364 + components: + - type: Transform + pos: 70.5,14.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 8 + - uid: 365 + components: + - type: Transform + pos: 74.5,44.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 6 + - uid: 366 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 48.5,41.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 11 + - uid: 367 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 53.5,48.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 13 + - uid: 368 + components: + - type: Transform + pos: 37.5,39.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 12 + - uid: 369 + components: + - type: Transform + pos: 37.5,44.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 12 + - uid: 370 + components: + - type: Transform + pos: 41.5,44.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 12 + - uid: 371 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 42.5,49.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 78 + - uid: 372 + components: + - type: Transform + pos: 12.5,16.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 20 + - uid: 373 + components: + - type: Transform + pos: 1.5,39.5 + parent: 2 + - uid: 374 + components: + - type: Transform + pos: -29.5,19.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 44 + - uid: 375 + components: + - type: Transform + pos: -32.5,28.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 45 + - uid: 376 + components: + - type: Transform + pos: -21.5,19.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 44 + - uid: 377 + components: + - type: Transform + pos: -14.5,20.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 41 + - uid: 378 + components: + - type: Transform + pos: -18.5,45.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 48 + - uid: 379 + components: + - type: Transform + pos: -7.5,22.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 39 + - uid: 380 + components: + - type: Transform + pos: -4.5,15.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 80 + - uid: 381 + components: + - type: Transform + pos: -12.5,7.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 51 + - uid: 382 + components: + - type: Transform + pos: 4.5,6.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 53 + - uid: 383 + components: + - type: Transform + pos: 12.5,11.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 21 + - uid: 384 + components: + - type: Transform + pos: -1.5,23.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 50 + - uid: 385 + components: + - type: Transform + pos: 5.5,29.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 76 + - uid: 386 + components: + - type: Transform + pos: 1.5,39.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 18 + - uid: 387 + components: + - type: Transform + pos: -10.5,49.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 17 + - uid: 388 + components: + - type: Transform + pos: -13.5,58.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 25 + - uid: 389 + components: + - type: Transform + pos: -19.5,55.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 33 + - uid: 390 + components: + - type: Transform + pos: -26.5,58.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 25 + - 30 + - uid: 391 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -22.5,53.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 32 + - uid: 392 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -27.5,65.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 28 + - 19588 + - 8512 + - uid: 393 + components: + - type: Transform + pos: -12.5,64.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 25 + - 26 + - uid: 394 + components: + - type: Transform + pos: -7.5,68.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 26 + - uid: 395 + components: + - type: Transform + pos: -2.5,56.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 24 + - 25 + - uid: 396 + components: + - type: Transform + pos: -4.5,60.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 24 + - uid: 397 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 3.5,47.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 22 + - uid: 398 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 6.5,58.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 35 + - uid: 399 + components: + - type: Transform + pos: 0.5,64.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 35 + - uid: 400 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 3.5,70.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 36 + - uid: 401 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 10.5,66.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 35 + - uid: 402 + components: + - type: Transform + pos: 17.5,45.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 70 + - uid: 403 + components: + - type: Transform + pos: 16.5,32.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 67 + - uid: 404 + components: + - type: Transform + pos: 18.5,26.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 67 + - uid: 405 + components: + - type: Transform + pos: 18.5,39.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 71 + - uid: 406 + components: + - type: Transform + pos: 14.5,49.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 22 + - uid: 407 + components: + - type: Transform + pos: 26.5,49.5 + parent: 2 + - uid: 408 + components: + - type: Transform + pos: 27.5,45.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 72 + - uid: 409 + components: + - type: Transform + pos: 21.5,35.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 77 + - uid: 410 + components: + - type: Transform + pos: 24.5,21.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 55 + - uid: 411 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 33.5,28.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 14 + - uid: 412 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 31.5,44.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 14 + - uid: 413 + components: + - type: Transform + pos: 32.5,49.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 14 + - uid: 414 + components: + - type: Transform + pos: 11.5,57.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 16 + - uid: 415 + components: + - type: Transform + pos: 11.5,61.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 16 + - uid: 416 + components: + - type: Transform + pos: 17.5,63.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 16 + - uid: 417 + components: + - type: Transform + pos: 21.5,58.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 23 + - uid: 418 + components: + - type: Transform + pos: 48.5,48.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 11 + - uid: 419 + components: + - type: Transform + pos: 60.5,40.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 10 + - uid: 420 + components: + - type: Transform + pos: 54.5,40.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 10 + - uid: 421 + components: + - type: Transform + pos: 61.5,57.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 3 + - uid: 422 + components: + - type: Transform + pos: 65.5,62.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 3 + - uid: 423 + components: + - type: Transform + pos: 83.5,44.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 6 + - 5 + - uid: 424 + components: + - type: Transform + pos: 74.5,40.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 5 + - uid: 425 + components: + - type: Transform + pos: 76.5,31.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 7 + - 5 + - uid: 426 + components: + - type: Transform + pos: 80.5,32.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 5 + - uid: 427 + components: + - type: Transform + pos: 83.5,26.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 5 + - uid: 428 + components: + - type: Transform + pos: 76.5,26.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 7 + - 5 + - 18626 + - 18627 + - uid: 429 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 66.5,29.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 4 + - 8 + - uid: 430 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 49.5,27.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 58 + - uid: 431 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 44.5,17.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 61 + - uid: 432 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 40.5,10.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 65 + - uid: 433 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 50.5,11.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 62 + - uid: 434 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 63.5,5.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 9 + - uid: 435 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 67.5,11.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 9 + - uid: 436 + components: + - type: Transform + pos: 58.5,35.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 10 + - uid: 437 + components: + - type: Transform + pos: 38.5,35.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 14 + - uid: 438 + components: + - type: Transform + pos: 24.5,17.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 56 + - uid: 439 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 9.5,40.5 + parent: 2 + - uid: 440 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 39.5,54.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 78 + - uid: 441 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -10.5,66.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 26 + - uid: 442 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -19.5,63.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 27 + - uid: 443 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -18.5,69.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 27 + - uid: 444 + components: + - type: Transform + pos: -23.5,60.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 30 + - uid: 445 + components: + - type: Transform + pos: -23.5,69.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 30 + - uid: 446 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -30.5,57.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 29 + - uid: 447 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -1.5,59.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 34 + - uid: 448 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 5.5,63.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 35 + - uid: 449 + components: + - type: Transform + pos: -10.5,34.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 38 + - uid: 450 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -5.5,27.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 43 + - uid: 451 + components: + - type: Transform + pos: -31.5,36.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 47 + - uid: 452 + components: + - type: Transform + pos: -15.5,43.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 49 + - uid: 453 + components: + - type: Transform + pos: 0.5,16.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 54 + - uid: 454 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 53.5,26.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 57 + - uid: 455 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 51.5,17.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 63 + - uid: 456 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 33.5,4.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 66 + - uid: 457 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 28.5,1.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 64 + - uid: 458 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 57.5,18.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 60 + - uid: 459 + components: + - type: Transform + pos: 10.5,25.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 76 + - uid: 460 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 29.5,32.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 77 + - uid: 461 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 23.5,44.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 72 + - uid: 462 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 12.5,39.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 69 + - uid: 463 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 6.5,44.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 68 + - uid: 464 + components: + - type: Transform + pos: 65.5,42.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 4 + - uid: 465 + components: + - type: Transform + pos: 4.5,33.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 8494 + - 67 + - uid: 466 + components: + - type: Transform + pos: -15.5,1.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 51 + - uid: 467 + components: + - type: Transform + pos: -14.5,-5.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 51 + - uid: 468 + components: + - type: Transform + pos: -6.5,7.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 52 + - uid: 469 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -7.5,44.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 82 + - uid: 470 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -3.5,43.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 82 + - uid: 471 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -26.5,44.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 46 + - uid: 472 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 29.5,-11.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 83 + - 8517 + - uid: 473 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 34.5,-11.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 83 + - 8517 + - uid: 18628 + components: + - type: Transform + pos: 70.5,26.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 18626 + - 18627 + - uid: 19573 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -30.5,75.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 19589 + - 19586 + - uid: 19585 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -24.5,74.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 19587 + - 19590 + - uid: 19591 + components: + - type: Transform + pos: -31.5,61.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 19588 + - 8512 + - uid: 19592 + components: + - type: Transform + pos: -27.5,61.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 19588 + - 8512 +- proto: AltarConvertMaint + entities: + - uid: 474 + components: + - type: Transform + pos: 15.5,2.5 + parent: 2 +- proto: AltarTechnology + entities: + - uid: 475 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 10.5,56.5 + parent: 2 + - uid: 14743 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 11.5,56.5 + parent: 2 + - uid: 18770 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 9.5,56.5 + parent: 2 +- proto: AmeController + entities: + - uid: 12701 + components: + - type: Transform + pos: -15.5,26.5 + parent: 2 +- proto: AmeShielding + entities: + - uid: 18735 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -14.5,23.5 + parent: 2 + - uid: 18736 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -15.5,23.5 + parent: 2 + - uid: 18737 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -14.5,22.5 + parent: 2 + - uid: 18738 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -15.5,25.5 + parent: 2 + - uid: 18739 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -13.5,23.5 + parent: 2 + - uid: 18740 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -15.5,22.5 + parent: 2 + - uid: 18741 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -13.5,22.5 + parent: 2 + - uid: 18742 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -12.5,22.5 + parent: 2 + - uid: 18743 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -12.5,23.5 + parent: 2 + - uid: 18744 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -13.5,24.5 + parent: 2 + - uid: 18745 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -13.5,25.5 + parent: 2 + - uid: 18746 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -14.5,25.5 + parent: 2 + - uid: 18747 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -12.5,24.5 + parent: 2 + - uid: 18748 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -12.5,25.5 + parent: 2 + - uid: 18749 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -14.5,24.5 + parent: 2 + - uid: 18750 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -15.5,24.5 + parent: 2 +- proto: AmmoniaCanister + entities: + - uid: 489 + components: + - type: Transform + pos: -32.5,2.5 + parent: 2 +- proto: AmmoTechFabCircuitboard + entities: + - uid: 490 + components: + - type: Transform + pos: 29.35275,54.417416 + parent: 2 +- proto: AnomalyScanner + entities: + - uid: 491 + components: + - type: Transform + pos: 50.361633,-0.18300986 + parent: 2 + - uid: 492 + components: + - type: Transform + pos: 50.70237,-0.36222148 + parent: 2 + - uid: 493 + components: + - type: Transform + pos: 50.379566,-0.5414331 + parent: 2 +- proto: AnomalyVesselCircuitboard + entities: + - uid: 494 + components: + - type: Transform + pos: 52.549507,-0.46974826 + parent: 2 +- proto: AntiAnomalyZone + entities: + - uid: 482 + components: + - type: Transform + pos: 71.5,3.5 + parent: 2 + - uid: 485 + components: + - type: Transform + pos: 65.5,62.5 + parent: 2 +- proto: APCBasic + entities: + - uid: 495 + components: + - type: Transform + pos: 34.5,56.5 + parent: 2 + - uid: 496 + components: + - type: Transform + pos: 27.5,30.5 + parent: 2 + - uid: 497 + components: + - type: Transform + pos: 19.5,41.5 + parent: 2 + - uid: 498 + components: + - type: Transform + pos: 13.5,32.5 + parent: 2 + - uid: 499 + components: + - type: Transform + pos: 6.5,30.5 + parent: 2 + - uid: 500 + components: + - type: Transform + pos: 4.5,46.5 + parent: 2 + - uid: 501 + components: + - type: Transform + pos: -24.5,47.5 + parent: 2 + - uid: 502 + components: + - type: Transform + pos: -31.5,54.5 + parent: 2 + - uid: 503 + components: + - type: Transform + pos: -22.5,46.5 + parent: 2 + - uid: 504 + components: + - type: Transform + pos: -10.5,46.5 + parent: 2 + - uid: 505 + components: + - type: Transform + pos: -8.5,46.5 + parent: 2 + - uid: 506 + components: + - type: Transform + pos: -2.5,37.5 + parent: 2 + - uid: 507 + components: + - type: Transform + pos: -3.5,28.5 + parent: 2 + - uid: 508 + components: + - type: Transform + pos: -11.5,21.5 + parent: 2 + - uid: 509 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -23.5,15.5 + parent: 2 + - uid: 510 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -21.5,6.5 + parent: 2 + - uid: 512 + components: + - type: Transform + pos: 11.5,76.5 + parent: 2 + - uid: 513 + components: + - type: Transform + pos: -17.5,56.5 + parent: 2 + - uid: 514 + components: + - type: Transform + pos: -25.5,72.5 + parent: 2 + - uid: 515 + components: + - type: Transform + pos: -17.5,71.5 + parent: 2 + - uid: 516 + components: + - type: Transform + pos: -30.5,59.5 + parent: 2 + - uid: 517 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 36.5,64.5 + parent: 2 + - uid: 518 + components: + - type: Transform + pos: 18.5,60.5 + parent: 2 + - uid: 519 + components: + - type: Transform + pos: 13.5,63.5 + parent: 2 + - uid: 520 + components: + - type: Transform + pos: -3.5,69.5 + parent: 2 + - type: Apc + hasAccess: True + lastExternalState: Good + lastChargeState: Full + - uid: 521 + components: + - type: Transform + pos: -0.5,18.5 + parent: 2 + - uid: 522 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 13.5,13.5 + parent: 2 + - uid: 523 + components: + - type: Transform + pos: -11.5,8.5 + parent: 2 + - uid: 524 + components: + - type: Transform + pos: 7.5,6.5 + parent: 2 + - uid: 525 + components: + - type: Transform + pos: 26.5,18.5 + parent: 2 + - uid: 526 + components: + - type: Transform + pos: 14.5,27.5 + parent: 2 + - uid: 527 + components: + - type: Transform + pos: 29.5,2.5 + parent: 2 + - uid: 528 + components: + - type: Transform + pos: 34.5,8.5 + parent: 2 + - uid: 529 + components: + - type: Transform + pos: 37.5,15.5 + parent: 2 + - uid: 530 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 44.5,11.5 + parent: 2 + - uid: 531 + components: + - type: Transform + pos: 43.5,18.5 + parent: 2 + - uid: 532 + components: + - type: Transform + pos: 42.5,22.5 + parent: 2 + - uid: 533 + components: + - type: Transform + pos: 54.5,5.5 + parent: 2 + - uid: 534 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -34.5,24.5 + parent: 2 + - uid: 535 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -12.5,38.5 + parent: 2 + - uid: 536 + components: + - type: Transform + pos: 50.5,13.5 + parent: 2 + - uid: 537 + components: + - type: Transform + pos: 54.5,18.5 + parent: 2 + - uid: 538 + components: + - type: Transform + pos: -8.5,57.5 + parent: 2 + - uid: 539 + components: + - type: Transform + pos: -2.5,59.5 + parent: 2 + - uid: 540 + components: + - type: Transform + pos: 3.5,65.5 + parent: 2 + - uid: 541 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 45.5,29.5 + parent: 2 + - uid: 542 + components: + - type: Transform + pos: 60.5,27.5 + parent: 2 + - uid: 543 + components: + - type: Transform + pos: 43.5,3.5 + parent: 2 + - uid: 544 + components: + - type: Transform + pos: 49.5,49.5 + parent: 2 + - uid: 545 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 51.5,51.5 + parent: 2 + - uid: 546 + components: + - type: Transform + pos: 54.5,52.5 + parent: 2 + - uid: 547 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 63.5,43.5 + parent: 2 + - uid: 548 + components: + - type: Transform + pos: 38.5,31.5 + parent: 2 + - uid: 549 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 45.5,53.5 + parent: 2 + - uid: 550 + components: + - type: Transform + pos: 31.5,57.5 + parent: 2 + - uid: 551 + components: + - type: Transform + pos: 39.5,55.5 + parent: 2 + - uid: 552 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 37.5,42.5 + parent: 2 + - uid: 553 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 43.5,31.5 + parent: 2 + - uid: 554 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 19.5,44.5 + parent: 2 + - uid: 555 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 15.5,42.5 + parent: 2 + - uid: 556 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 15.5,38.5 + parent: 2 + - uid: 557 + components: + - type: Transform + pos: 26.5,37.5 + parent: 2 + - uid: 558 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 10.5,40.5 + parent: 2 + - uid: 559 + components: + - type: Transform + pos: 77.5,46.5 + parent: 2 + - uid: 561 + components: + - type: Transform + pos: 75.5,32.5 + parent: 2 + - uid: 562 + components: + - type: Transform + pos: 78.5,27.5 + parent: 2 + - uid: 563 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 79.5,24.5 + parent: 2 + - uid: 564 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 79.5,39.5 + parent: 2 + - uid: 565 + components: + - type: Transform + pos: 79.5,36.5 + parent: 2 + - uid: 566 + components: + - type: Transform + pos: 59.5,58.5 + parent: 2 + - uid: 567 + components: + - type: Transform + pos: 70.5,22.5 + parent: 2 + - uid: 568 + components: + - type: Transform + pos: 73.5,16.5 + parent: 2 + - uid: 569 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 62.5,6.5 + parent: 2 + - uid: 570 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 19.5,24.5 + parent: 2 + - uid: 571 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 24.5,27.5 + parent: 2 + - uid: 572 + components: + - type: Transform + pos: -32.5,40.5 + parent: 2 + - uid: 573 + components: + - type: Transform + pos: -6.5,18.5 + parent: 2 + - uid: 574 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 27.5,-11.5 + parent: 2 + - uid: 13429 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -12.5,68.5 + parent: 2 +- proto: APCElectronics + entities: + - uid: 575 + components: + - type: Transform + pos: 26.682535,62.301582 + parent: 2 + - uid: 576 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 26.562979,62.480793 + parent: 2 +- proto: APECircuitboard + entities: + - uid: 577 + components: + - type: Transform + pos: 52.49136,-0.61347103 + parent: 2 +- proto: ArrivalsShuttleTimer + entities: + - uid: 578 + components: + - type: Transform + pos: 67.5,12.5 + parent: 2 + - uid: 579 + components: + - type: Transform + pos: 68.5,5.5 + parent: 2 + - uid: 580 + components: + - type: Transform + pos: 75.5,6.5 + parent: 2 + - uid: 581 + components: + - type: Transform + pos: 67.5,22.5 + parent: 2 +- proto: Ashtray + entities: + - uid: 582 + components: + - type: Transform + pos: 70.50509,21.587791 + parent: 2 +- proto: AtmosDeviceFanTiny + entities: + - uid: 583 + components: + - type: Transform + pos: -29.5,46.5 + parent: 2 + - uid: 584 + components: + - type: Transform + pos: 1.5,0.5 + parent: 2 + - uid: 585 + components: + - type: Transform + pos: -0.5,0.5 + parent: 2 + - uid: 586 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -38.5,58.5 + parent: 2 + - uid: 587 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -6.5,71.5 + parent: 2 + - uid: 588 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -10.5,71.5 + parent: 2 + - uid: 589 + components: + - type: Transform + pos: 15.5,77.5 + parent: 2 + - uid: 590 + components: + - type: Transform + pos: 19.5,3.5 + parent: 2 + - uid: 591 + components: + - type: Transform + pos: 9.5,0.5 + parent: 2 + - uid: 592 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 77.5,16.5 + parent: 2 + - uid: 593 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 77.5,7.5 + parent: 2 + - uid: 594 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 77.5,0.5 + parent: 2 + - uid: 595 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 70.5,65.5 + parent: 2 + - uid: 596 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 68.5,65.5 + parent: 2 + - uid: 597 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 62.5,65.5 + parent: 2 + - uid: 598 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 60.5,65.5 + parent: 2 + - uid: 599 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 80.5,62.5 + parent: 2 + - uid: 600 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 80.5,61.5 + parent: 2 + - uid: 601 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 80.5,60.5 + parent: 2 + - uid: 602 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 80.5,59.5 + parent: 2 + - uid: 603 + components: + - type: Transform + pos: 25.5,-0.5 + parent: 2 + - uid: 604 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 56.5,49.5 + parent: 2 + - uid: 605 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 54.5,47.5 + parent: 2 + - uid: 606 + components: + - type: Transform + pos: -16.5,-8.5 + parent: 2 + - uid: 607 + components: + - type: Transform + pos: -15.5,-8.5 + parent: 2 + - uid: 9910 + components: + - type: Transform + pos: 53.5,6.5 + parent: 2 +- proto: AtmosFixBlockerMarker + entities: + - uid: 608 + components: + - type: Transform + pos: -27.5,25.5 + parent: 2 + - uid: 609 + components: + - type: Transform + pos: -27.5,24.5 + parent: 2 + - uid: 610 + components: + - type: Transform + pos: -27.5,23.5 + parent: 2 + - uid: 611 + components: + - type: Transform + pos: -26.5,24.5 + parent: 2 + - uid: 612 + components: + - type: Transform + pos: -26.5,25.5 + parent: 2 + - uid: 613 + components: + - type: Transform + pos: -38.5,26.5 + parent: 2 + - uid: 614 + components: + - type: Transform + pos: -40.5,27.5 + parent: 2 + - uid: 615 + components: + - type: Transform + pos: -39.5,26.5 + parent: 2 + - uid: 616 + components: + - type: Transform + pos: -39.5,25.5 + parent: 2 + - uid: 617 + components: + - type: Transform + pos: -26.5,23.5 + parent: 2 + - uid: 618 + components: + - type: Transform + pos: -28.5,25.5 + parent: 2 + - uid: 619 + components: + - type: Transform + pos: -28.5,24.5 + parent: 2 + - uid: 620 + components: + - type: Transform + pos: -28.5,23.5 + parent: 2 + - uid: 621 + components: + - type: Transform + pos: -40.5,25.5 + parent: 2 + - uid: 622 + components: + - type: Transform + pos: -40.5,26.5 + parent: 2 + - uid: 623 + components: + - type: Transform + pos: -38.5,25.5 + parent: 2 + - uid: 624 + components: + - type: Transform + pos: -39.5,27.5 + parent: 2 + - uid: 625 + components: + - type: Transform + pos: -38.5,27.5 + parent: 2 + - uid: 626 + components: + - type: Transform + pos: -39.5,21.5 + parent: 2 + - uid: 627 + components: + - type: Transform + pos: -39.5,20.5 + parent: 2 + - uid: 628 + components: + - type: Transform + pos: -39.5,19.5 + parent: 2 + - uid: 629 + components: + - type: Transform + pos: -38.5,21.5 + parent: 2 + - uid: 630 + components: + - type: Transform + pos: -38.5,20.5 + parent: 2 + - uid: 631 + components: + - type: Transform + pos: -38.5,19.5 + parent: 2 + - uid: 632 + components: + - type: Transform + pos: -37.5,21.5 + parent: 2 + - uid: 633 + components: + - type: Transform + pos: -37.5,20.5 + parent: 2 + - uid: 634 + components: + - type: Transform + pos: -37.5,19.5 + parent: 2 + - uid: 635 + components: + - type: Transform + pos: -31.5,1.5 + parent: 2 + - uid: 636 + components: + - type: Transform + pos: -31.5,1.5 + parent: 2 + - uid: 637 + components: + - type: Transform + pos: -31.5,2.5 + parent: 2 + - uid: 638 + components: + - type: Transform + pos: -31.5,3.5 + parent: 2 + - uid: 639 + components: + - type: Transform + pos: -32.5,1.5 + parent: 2 + - uid: 640 + components: + - type: Transform + pos: -32.5,2.5 + parent: 2 + - uid: 641 + components: + - type: Transform + pos: -32.5,3.5 + parent: 2 + - uid: 642 + components: + - type: Transform + pos: -33.5,1.5 + parent: 2 + - uid: 643 + components: + - type: Transform + pos: -33.5,2.5 + parent: 2 + - uid: 644 + components: + - type: Transform + pos: -33.5,3.5 + parent: 2 + - uid: 645 + components: + - type: Transform + pos: -39.5,9.5 + parent: 2 + - uid: 646 + components: + - type: Transform + pos: -39.5,8.5 + parent: 2 + - uid: 647 + components: + - type: Transform + pos: -39.5,7.5 + parent: 2 + - uid: 648 + components: + - type: Transform + pos: -38.5,9.5 + parent: 2 + - uid: 649 + components: + - type: Transform + pos: -38.5,8.5 + parent: 2 + - uid: 650 + components: + - type: Transform + pos: -38.5,7.5 + parent: 2 + - uid: 651 + components: + - type: Transform + pos: -37.5,9.5 + parent: 2 + - uid: 652 + components: + - type: Transform + pos: -37.5,8.5 + parent: 2 + - uid: 653 + components: + - type: Transform + pos: -37.5,7.5 + parent: 2 + - uid: 654 + components: + - type: Transform + pos: -37.5,7.5 + parent: 2 +- proto: AtmosFixFreezerMarker + entities: + - uid: 655 + components: + - type: Transform + pos: 24.5,-0.5 + parent: 2 + - uid: 656 + components: + - type: Transform + pos: 24.5,0.5 + parent: 2 + - uid: 657 + components: + - type: Transform + pos: 24.5,1.5 + parent: 2 + - uid: 658 + components: + - type: Transform + pos: 24.5,2.5 + parent: 2 + - uid: 659 + components: + - type: Transform + pos: 23.5,-0.5 + parent: 2 + - uid: 660 + components: + - type: Transform + pos: 23.5,0.5 + parent: 2 + - uid: 661 + components: + - type: Transform + pos: 23.5,1.5 + parent: 2 + - uid: 662 + components: + - type: Transform + pos: 23.5,2.5 + parent: 2 + - uid: 663 + components: + - type: Transform + pos: 25.5,2.5 + parent: 2 + - uid: 664 + components: + - type: Transform + pos: 25.5,1.5 + parent: 2 + - uid: 665 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 55.5,48.5 + parent: 2 + - uid: 666 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 55.5,49.5 + parent: 2 + - uid: 667 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 55.5,50.5 + parent: 2 + - uid: 668 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 54.5,48.5 + parent: 2 + - uid: 669 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 54.5,49.5 + parent: 2 + - uid: 670 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 55.5,51.5 + parent: 2 + - uid: 671 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 54.5,50.5 + parent: 2 + - uid: 672 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 54.5,51.5 + parent: 2 + - uid: 673 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 53.5,48.5 + parent: 2 + - uid: 674 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 53.5,49.5 + parent: 2 + - uid: 675 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 53.5,50.5 + parent: 2 + - uid: 676 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 53.5,51.5 + parent: 2 + - uid: 677 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 52.5,50.5 + parent: 2 + - uid: 678 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 52.5,49.5 + parent: 2 + - uid: 679 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 52.5,48.5 + parent: 2 + - uid: 9911 + components: + - type: Transform + pos: 54.5,7.5 + parent: 2 + - uid: 9912 + components: + - type: Transform + pos: 54.5,6.5 + parent: 2 + - uid: 9913 + components: + - type: Transform + pos: 55.5,7.5 + parent: 2 + - uid: 11668 + components: + - type: Transform + pos: 55.5,6.5 + parent: 2 +- proto: AtmosFixNitrogenMarker + entities: + - uid: 680 + components: + - type: Transform + pos: -39.5,13.5 + parent: 2 + - uid: 681 + components: + - type: Transform + pos: -39.5,12.5 + parent: 2 + - uid: 682 + components: + - type: Transform + pos: -39.5,11.5 + parent: 2 + - uid: 683 + components: + - type: Transform + pos: -38.5,13.5 + parent: 2 + - uid: 684 + components: + - type: Transform + pos: -38.5,12.5 + parent: 2 + - uid: 685 + components: + - type: Transform + pos: -38.5,11.5 + parent: 2 + - uid: 686 + components: + - type: Transform + pos: -37.5,13.5 + parent: 2 + - uid: 687 + components: + - type: Transform + pos: -37.5,12.5 + parent: 2 + - uid: 688 + components: + - type: Transform + pos: -37.5,11.5 + parent: 2 +- proto: AtmosFixOxygenMarker + entities: + - uid: 689 + components: + - type: Transform + pos: -39.5,17.5 + parent: 2 + - uid: 690 + components: + - type: Transform + pos: -39.5,16.5 + parent: 2 + - uid: 691 + components: + - type: Transform + pos: -39.5,15.5 + parent: 2 + - uid: 692 + components: + - type: Transform + pos: -38.5,17.5 + parent: 2 + - uid: 693 + components: + - type: Transform + pos: -38.5,16.5 + parent: 2 + - uid: 694 + components: + - type: Transform + pos: -38.5,15.5 + parent: 2 + - uid: 695 + components: + - type: Transform + pos: -37.5,17.5 + parent: 2 + - uid: 696 + components: + - type: Transform + pos: -37.5,16.5 + parent: 2 + - uid: 697 + components: + - type: Transform + pos: -37.5,15.5 + parent: 2 +- proto: AtmosFixPlasmaMarker + entities: + - uid: 698 + components: + - type: Transform + pos: -29.5,3.5 + parent: 2 + - uid: 699 + components: + - type: Transform + pos: -29.5,2.5 + parent: 2 + - uid: 700 + components: + - type: Transform + pos: -29.5,1.5 + parent: 2 + - uid: 701 + components: + - type: Transform + pos: -28.5,3.5 + parent: 2 + - uid: 702 + components: + - type: Transform + pos: -28.5,2.5 + parent: 2 + - uid: 703 + components: + - type: Transform + pos: -28.5,1.5 + parent: 2 + - uid: 704 + components: + - type: Transform + pos: -27.5,3.5 + parent: 2 + - uid: 705 + components: + - type: Transform + pos: -27.5,2.5 + parent: 2 + - uid: 706 + components: + - type: Transform + pos: -27.5,1.5 + parent: 2 + - uid: 707 + components: + - type: Transform + pos: -27.5,1.5 + parent: 2 +- proto: Autolathe + entities: + - uid: 708 + components: + - type: Transform + pos: 10.5,13.5 + parent: 2 + - uid: 709 + components: + - type: Transform + pos: 46.5,20.5 + parent: 2 + - uid: 710 + components: + - type: Transform + pos: -13.5,-0.5 + parent: 2 +- proto: AutolatheMachineCircuitboard + entities: + - uid: 711 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 50.982067,53.66527 + parent: 2 +- proto: BananaPhoneInstrument + entities: + - uid: 712 + components: + - type: Transform + pos: 40.525475,43.56165 + parent: 2 +- proto: BananaSeeds + entities: + - uid: 12079 + components: + - type: Transform + pos: -30.504583,76.46657 + parent: 2 + - uid: 12083 + components: + - type: Transform + pos: -30.504583,77.4729 + parent: 2 + - uid: 13975 + components: + - type: Transform + pos: -29.479267,76.4286 + parent: 2 +- proto: BannerNanotrasen + entities: + - uid: 18019 + components: + - type: Transform + pos: 79.5,35.5 + parent: 2 + - uid: 18128 + components: + - type: Transform + pos: 79.5,33.5 + parent: 2 +- proto: BarricadeBlock + entities: + - uid: 716 + components: + - type: Transform + pos: 61.5,25.5 + parent: 2 + - uid: 717 + components: + - type: Transform + pos: 27.5,61.5 + parent: 2 + - uid: 718 + components: + - type: Transform + pos: 48.5,58.5 + parent: 2 + - uid: 719 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 39.5,63.5 + parent: 2 +- proto: BarricadeDirectional + entities: + - uid: 720 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 60.5,25.5 + parent: 2 + - uid: 721 + components: + - type: Transform + pos: 48.5,59.5 + parent: 2 + - uid: 722 + components: + - type: Transform + pos: 39.5,64.5 + parent: 2 +- proto: BarSignSpacebucks + entities: + - uid: 723 + components: + - type: Transform + pos: 59.5,36.5 + parent: 2 +- proto: BaseBallBat + entities: + - uid: 724 + components: + - type: Transform + pos: -26.319265,53.646645 + parent: 2 +- proto: BaseComputer + entities: + - uid: 725 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 37.5,27.5 + parent: 2 + - uid: 726 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 37.5,29.5 + parent: 2 +- proto: BaseGasCondenser + entities: + - uid: 727 + components: + - type: Transform + pos: 38.5,13.5 + parent: 2 + - uid: 728 + components: + - type: Transform + pos: 9.5,26.5 + parent: 2 +- proto: Beaker + entities: + - uid: 19512 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -31.199577,74.62238 + parent: 2 +- proto: Bed + entities: + - uid: 729 + components: + - type: Transform + pos: 28.5,13.5 + parent: 2 + - uid: 730 + components: + - type: Transform + pos: 28.5,16.5 + parent: 2 + - uid: 731 + components: + - type: Transform + pos: 19.5,14.5 + parent: 2 + - uid: 733 + components: + - type: Transform + pos: -33.5,61.5 + parent: 2 + - uid: 734 + components: + - type: Transform + pos: -29.5,61.5 + parent: 2 + - uid: 735 + components: + - type: Transform + pos: -7.5,51.5 + parent: 2 + - uid: 736 + components: + - type: Transform + pos: -3.5,51.5 + parent: 2 + - uid: 737 + components: + - type: Transform + pos: 0.5,51.5 + parent: 2 + - uid: 738 + components: + - type: Transform + pos: 76.5,26.5 + parent: 2 +- proto: BedsheetBrigmedic + entities: + - uid: 739 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -5.5,58.5 + parent: 2 +- proto: BedsheetCaptain + entities: + - uid: 741 + components: + - type: Transform + pos: 76.5,26.5 + parent: 2 +- proto: BedsheetClown + entities: + - uid: 743 + components: + - type: Transform + parent: 742 + - type: Physics + angularDamping: 0 + linearDamping: 0 + canCollide: False + - type: InsideEntityStorage +- proto: BedsheetCult + entities: + - uid: 768 + components: + - type: Transform + pos: 13.5,62.5 + parent: 2 +- proto: BedsheetMedical + entities: + - uid: 769 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 5.5,35.5 + parent: 2 + - uid: 770 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 3.5,35.5 + parent: 2 + - uid: 771 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 4.5,35.5 + parent: 2 +- proto: BedsheetMime + entities: + - uid: 773 + components: + - type: Transform + parent: 772 + - type: Physics + angularDamping: 0 + linearDamping: 0 + canCollide: False + - type: InsideEntityStorage +- proto: BedsheetOrange + entities: + - uid: 796 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 29.5,40.5 + parent: 2 + - uid: 797 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 29.5,42.5 + parent: 2 +- proto: BedsheetSpawner + entities: + - uid: 798 + components: + - type: Transform + pos: 19.5,14.5 + parent: 2 + - uid: 799 + components: + - type: Transform + pos: 28.5,13.5 + parent: 2 + - uid: 800 + components: + - type: Transform + pos: 28.5,16.5 + parent: 2 + - uid: 801 + components: + - type: Transform + pos: -7.5,51.5 + parent: 2 + - uid: 802 + components: + - type: Transform + pos: -3.5,51.5 + parent: 2 + - uid: 803 + components: + - type: Transform + pos: 0.5,51.5 + parent: 2 +- proto: BedsheetSyndie + entities: + - uid: 804 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -29.5,61.5 + parent: 2 + - uid: 805 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -33.5,61.5 + parent: 2 +- proto: BenchSofaCorpLeft + entities: + - uid: 13645 + components: + - type: Transform + pos: 70.5,31.5 + parent: 2 +- proto: BenchSofaCorpMiddle + entities: + - uid: 5665 + components: + - type: Transform + pos: 69.5,31.5 + parent: 2 +- proto: BenchSofaCorpRight + entities: + - uid: 12613 + components: + - type: Transform + pos: 68.5,31.5 + parent: 2 +- proto: BenchSofaLeft + entities: + - uid: 560 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 72.5,23.5 + parent: 2 +- proto: BenchSofaMiddle + entities: + - uid: 16998 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 72.5,24.5 + parent: 2 +- proto: BenchSofaRight + entities: + - uid: 5986 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 72.5,25.5 + parent: 2 +- proto: BiomassReclaimer + entities: + - uid: 18529 + components: + - type: Transform + pos: 20.5,23.5 + parent: 2 +- proto: BlastDoor + entities: + - uid: 806 + components: + - type: Transform + pos: -1.5,0.5 + parent: 2 + - type: DeviceLinkSink + links: + - 14460 + - uid: 807 + components: + - type: Transform + pos: 33.5,-2.5 + parent: 2 + - type: DeviceLinkSink + links: + - 14461 + - uid: 808 + components: + - type: Transform + pos: -1.5,2.5 + parent: 2 + - type: DeviceLinkSink + links: + - 14460 + - uid: 809 + components: + - type: Transform + pos: 2.5,0.5 + parent: 2 + - type: DeviceLinkSink + links: + - 14456 + - uid: 810 + components: + - type: Transform + pos: 2.5,2.5 + parent: 2 + - type: DeviceLinkSink + links: + - 14456 + - uid: 811 + components: + - type: Transform + pos: 9.5,0.5 + parent: 2 + - type: DeviceLinkSink + links: + - 14459 + - uid: 812 + components: + - type: Transform + pos: -40.5,25.5 + parent: 2 + - type: DeviceLinkSink + links: + - 14457 + - uid: 813 + components: + - type: Transform + pos: -40.5,26.5 + parent: 2 + - type: DeviceLinkSink + links: + - 14457 + - uid: 814 + components: + - type: Transform + pos: -40.5,27.5 + parent: 2 + - type: DeviceLinkSink + links: + - 14457 + - uid: 815 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 21.5,64.5 + parent: 2 + - type: DeviceLinkSink + links: + - 14462 + - uid: 816 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 21.5,67.5 + parent: 2 + - type: DeviceLinkSink + links: + - 14462 + - uid: 817 + components: + - type: Transform + pos: 80.5,62.5 + parent: 2 + - type: DeviceLinkSink + links: + - 14470 + - uid: 818 + components: + - type: Transform + pos: 80.5,61.5 + parent: 2 + - type: DeviceLinkSink + links: + - 14470 + - uid: 819 + components: + - type: Transform + pos: 80.5,60.5 + parent: 2 + - type: DeviceLinkSink + links: + - 14470 + - uid: 820 + components: + - type: Transform + pos: 80.5,59.5 + parent: 2 + - type: DeviceLinkSink + links: + - 14470 +- proto: BlastDoorExterior3 + entities: + - uid: 821 + components: + - type: Transform + pos: 29.5,9.5 + parent: 2 + - uid: 822 + components: + - type: Transform + pos: 29.5,10.5 + parent: 2 + - uid: 823 + components: + - type: Transform + pos: 29.5,11.5 + parent: 2 +- proto: BlastDoorOpen + entities: + - uid: 824 + components: + - type: Transform + pos: 13.5,23.5 + parent: 2 + - type: DeviceLinkSink + links: + - 14467 + - uid: 825 + components: + - type: Transform + pos: 14.5,23.5 + parent: 2 + - type: DeviceLinkSink + links: + - 14467 + - uid: 826 + components: + - type: Transform + pos: 13.5,29.5 + parent: 2 + - type: DeviceLinkSink + links: + - 14467 + - uid: 827 + components: + - type: Transform + pos: 12.5,29.5 + parent: 2 + - type: DeviceLinkSink + links: + - 14467 + - uid: 828 + components: + - type: Transform + pos: 7.5,46.5 + parent: 2 + - type: DeviceLinkSink + links: + - 14469 +- proto: BlockGameArcade + entities: + - uid: 831 + components: + - type: Transform + pos: -27.5,68.5 + parent: 2 + - type: SpamEmitSound + enabled: False +- proto: BodyBag + entities: + - uid: 832 + components: + - type: Transform + pos: 29.499334,63.573135 + parent: 2 +- proto: BookAtmosAirAlarms + entities: + - uid: 833 + components: + - type: Transform + pos: -7.5243444,23.902966 + parent: 2 +- proto: BookAtmosDistro + entities: + - uid: 834 + components: + - type: Transform + pos: -7.355895,23.776714 + parent: 2 +- proto: BookAtmosVentsMore + entities: + - uid: 835 + components: + - type: Transform + pos: -7.6506824,23.629421 + parent: 2 +- proto: BookAtmosWaste + entities: + - uid: 836 + components: + - type: Transform + pos: -7.27167,23.50317 + parent: 2 +- proto: BookBartendersManual + entities: + - uid: 837 + components: + - type: Transform + pos: 59.54428,38.528282 + parent: 2 +- proto: BookChefGaming + entities: + - uid: 838 + components: + - type: Transform + pos: 54.416607,44.586376 + parent: 2 +- proto: BookEngineersHandbook + entities: + - uid: 839 + components: + - type: Transform + pos: -11.444434,33.764362 + parent: 2 +- proto: BookSecurity + entities: + - uid: 840 + components: + - type: Transform + pos: 5.5,27.5 + parent: 2 +- proto: BookshelfFilled + entities: + - uid: 841 + components: + - type: Transform + pos: 23.5,57.5 + parent: 2 + - uid: 842 + components: + - type: Transform + pos: 25.5,57.5 + parent: 2 + - uid: 843 + components: + - type: Transform + pos: 23.5,55.5 + parent: 2 + - uid: 844 + components: + - type: Transform + pos: 22.5,55.5 + parent: 2 + - uid: 845 + components: + - type: Transform + pos: 25.5,55.5 + parent: 2 + - uid: 846 + components: + - type: Transform + pos: 23.5,53.5 + parent: 2 + - uid: 847 + components: + - type: Transform + pos: 25.5,53.5 + parent: 2 + - uid: 848 + components: + - type: Transform + pos: 16.5,59.5 + parent: 2 + - uid: 849 + components: + - type: Transform + pos: 22.5,53.5 + parent: 2 + - uid: 850 + components: + - type: Transform + pos: 22.5,57.5 + parent: 2 + - uid: 851 + components: + - type: Transform + pos: 24.5,55.5 + parent: 2 + - uid: 852 + components: + - type: Transform + pos: 24.5,53.5 + parent: 2 +- proto: BoozeDispenser + entities: + - uid: 853 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 62.5,37.5 + parent: 2 + - uid: 854 + components: + - type: Transform + pos: 59.5,26.5 + parent: 2 + - uid: 855 + components: + - type: Transform + pos: 47.5,61.5 + parent: 2 +- proto: BorgCharger + entities: + - uid: 856 + components: + - type: Transform + pos: 53.5,20.5 + parent: 2 + - uid: 857 + components: + - type: Transform + pos: -0.5,66.5 + parent: 2 + - uid: 858 + components: + - type: Transform + pos: 40.5,31.5 + parent: 2 + - uid: 859 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 55.5,16.5 + parent: 2 + - uid: 860 + components: + - type: Transform + pos: 35.5,-9.5 + parent: 2 + - uid: 861 + components: + - type: Transform + pos: 34.5,-9.5 + parent: 2 +- proto: BorgModuleClowning + entities: + - uid: 744 + components: + - type: Transform + parent: 742 + - type: Physics + angularDamping: 0 + linearDamping: 0 + canCollide: False + - type: InsideEntityStorage +- proto: BoxBeaker + entities: + - uid: 862 + components: + - type: Transform + pos: 25.604435,41.674557 + parent: 2 + - uid: 863 + components: + - type: Transform + pos: 3.362266,38.704063 + parent: 2 +- proto: BoxBodyBag + entities: + - uid: 864 + components: + - type: Transform + pos: -28.070541,50.583153 + parent: 2 + - uid: 865 + components: + - type: Transform + pos: -5.4911914,57.617535 + parent: 2 + - uid: 866 + components: + - type: Transform + pos: 23.459993,23.461582 + parent: 2 + - uid: 867 + components: + - type: Transform + pos: 23.656519,23.629917 + parent: 2 + - uid: 868 + components: + - type: Transform + pos: 17.488485,41.597794 + parent: 2 + - uid: 869 + components: + - type: Transform + pos: 3.673111,38.745247 + parent: 2 +- proto: BoxBottle + entities: + - uid: 870 + components: + - type: Transform + pos: 25.590397,41.59039 + parent: 2 + - uid: 871 + components: + - type: Transform + pos: 3.7089782,38.48901 + parent: 2 +- proto: BoxCartridgeCap + entities: + - uid: 872 + components: + - type: Transform + pos: 40.402996,38.55928 + parent: 2 +- proto: BoxFolderBlue + entities: + - uid: 873 + components: + - type: Transform + pos: 36.64572,11.392298 + parent: 2 + - uid: 874 + components: + - type: Transform + pos: 1.4076779,15.600878 + parent: 2 + - uid: 875 + components: + - type: Transform + pos: -17.656897,54.815556 + parent: 2 + - uid: 876 + components: + - type: Transform + pos: 36.556053,11.589432 + parent: 2 + - uid: 877 + components: + - type: Transform + pos: 36.34085,11.768642 + parent: 2 + - uid: 878 + components: + - type: Transform + pos: 53.74968,14.408739 + parent: 2 + - uid: 879 + components: + - type: Transform + pos: 76.22655,37.437874 + parent: 2 + - uid: 880 + components: + - type: Transform + pos: 82.71409,23.572166 + parent: 2 + - uid: 881 + components: + - type: Transform + pos: 82.570625,23.715534 + parent: 2 + - uid: 884 + components: + - type: Transform + parent: 883 + - type: Physics + angularDamping: 0 + linearDamping: 0 + canCollide: False + - type: InsideEntityStorage + - uid: 885 + components: + - type: Transform + parent: 883 + - type: Physics + angularDamping: 0 + linearDamping: 0 + canCollide: False + - type: InsideEntityStorage + - uid: 886 + components: + - type: Transform + parent: 883 + - type: Physics + angularDamping: 0 + linearDamping: 0 + canCollide: False + - type: InsideEntityStorage +- proto: BoxFolderGreen + entities: + - uid: 887 + components: + - type: Transform + parent: 883 + - type: Physics + angularDamping: 0 + linearDamping: 0 + canCollide: False + - type: InsideEntityStorage + - uid: 888 + components: + - type: Transform + parent: 883 + - type: Physics + angularDamping: 0 + linearDamping: 0 + canCollide: False + - type: InsideEntityStorage + - uid: 895 + components: + - type: Transform + pos: 9.432186,12.429024 + parent: 2 + - uid: 896 + components: + - type: Transform + pos: 9.593586,12.429024 + parent: 2 + - uid: 897 + components: + - type: Transform + pos: 12.498117,12.370186 + parent: 2 + - uid: 898 + components: + - type: Transform + pos: 1.3538773,15.672562 + parent: 2 +- proto: BoxFolderRed + entities: + - uid: 889 + components: + - type: Transform + parent: 883 + - type: Physics + angularDamping: 0 + linearDamping: 0 + canCollide: False + - type: InsideEntityStorage + - uid: 890 + components: + - type: Transform + parent: 883 + - type: Physics + angularDamping: 0 + linearDamping: 0 + canCollide: False + - type: InsideEntityStorage + - uid: 891 + components: + - type: Transform + parent: 883 + - type: Physics + angularDamping: 0 + linearDamping: 0 + canCollide: False + - type: InsideEntityStorage + - uid: 899 + components: + - type: Transform + pos: -17.40583,54.696083 + parent: 2 + - uid: 900 + components: + - type: Transform + pos: -17.561253,54.576607 + parent: 2 + - uid: 901 + components: + - type: Transform + pos: -24.330013,51.6445 + parent: 2 + - uid: 902 + components: + - type: Transform + pos: -24.557169,51.763977 + parent: 2 + - uid: 903 + components: + - type: Transform + pos: -24.526747,55.209854 + parent: 2 + - uid: 904 + components: + - type: Transform + pos: -21.339342,60.47898 + parent: 2 + - uid: 905 + components: + - type: Transform + pos: -21.554543,60.60443 + parent: 2 + - uid: 906 + components: + - type: Transform + pos: 46.763573,12.463495 + parent: 2 + - uid: 907 + components: + - type: Transform + pos: 46.512505,12.481417 + parent: 2 +- proto: BoxFolderWhite + entities: + - uid: 909 + components: + - type: Transform + pos: 18.613544,39.495056 + parent: 2 + - uid: 910 + components: + - type: Transform + pos: 18.774944,39.620502 + parent: 2 +- proto: BoxFolderYellow + entities: + - uid: 911 + components: + - type: Transform + pos: -5.715718,26.000225 + parent: 2 + - uid: 912 + components: + - type: Transform + pos: -5.603417,25.537304 + parent: 2 + - uid: 913 + components: + - type: Transform + pos: -5.53323,25.705639 + parent: 2 +- proto: BoxLightMixed + entities: + - uid: 914 + components: + - type: Transform + pos: 44.48078,54.628574 + parent: 2 +- proto: BoxMagazinePistol + entities: + - uid: 915 + components: + - type: Transform + pos: -14.526857,70.690544 + parent: 2 +- proto: BoxMagazinePistolSubMachineGun + entities: + - uid: 916 + components: + - type: Transform + pos: -14.272904,70.80773 + parent: 2 +- proto: BoxMagazineRifle + entities: + - uid: 917 + components: + - type: Transform + pos: -14.780811,70.49523 + parent: 2 +- proto: BoxSyringe + entities: + - uid: 918 + components: + - type: Transform + pos: 25.379835,41.50622 + parent: 2 + - uid: 919 + components: + - type: Transform + pos: 3.4579105,38.524853 + parent: 2 +- proto: BriefcaseBrownFilled + entities: + - uid: 920 + components: + - type: Transform + pos: -24.485435,51.51308 + parent: 2 + - uid: 921 + components: + - type: Transform + pos: 0.45231438,59.847607 + parent: 2 +- proto: BrigTimer + entities: + - uid: 922 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -9.5,53.5 + parent: 2 + - uid: 923 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -5.5,53.5 + parent: 2 + - uid: 924 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -1.5,53.5 + parent: 2 +- proto: Bucket + entities: + - uid: 925 + components: + - type: Transform + pos: 55.549828,19.621422 + parent: 2 + - uid: 926 + components: + - type: Transform + pos: 39.50665,52.551533 + parent: 2 +- proto: CableApcExtension + entities: + - uid: 927 + components: + - type: Transform + pos: -32.5,1.5 + parent: 2 + - uid: 928 + components: + - type: Transform + pos: -14.5,38.5 + parent: 2 + - uid: 929 + components: + - type: Transform + pos: -13.5,38.5 + parent: 2 + - uid: 930 + components: + - type: Transform + pos: -28.5,1.5 + parent: 2 + - uid: 931 + components: + - type: Transform + pos: -34.5,69.5 + parent: 2 + - uid: 932 + components: + - type: Transform + pos: -34.5,30.5 + parent: 2 + - uid: 933 + components: + - type: Transform + pos: -28.5,21.5 + parent: 2 + - uid: 934 + components: + - type: Transform + pos: 34.5,56.5 + parent: 2 + - uid: 935 + components: + - type: Transform + pos: 34.5,53.5 + parent: 2 + - uid: 936 + components: + - type: Transform + pos: 15.5,5.5 + parent: 2 + - uid: 937 + components: + - type: Transform + pos: 15.5,3.5 + parent: 2 + - uid: 938 + components: + - type: Transform + pos: 15.5,4.5 + parent: 2 + - uid: 939 + components: + - type: Transform + pos: 15.5,2.5 + parent: 2 + - uid: 940 + components: + - type: Transform + pos: -23.5,15.5 + parent: 2 + - uid: 941 + components: + - type: Transform + pos: -24.5,15.5 + parent: 2 + - uid: 942 + components: + - type: Transform + pos: -24.5,13.5 + parent: 2 + - uid: 943 + components: + - type: Transform + pos: -24.5,12.5 + parent: 2 + - uid: 944 + components: + - type: Transform + pos: -24.5,11.5 + parent: 2 + - uid: 945 + components: + - type: Transform + pos: -24.5,10.5 + parent: 2 + - uid: 946 + components: + - type: Transform + pos: -25.5,10.5 + parent: 2 + - uid: 947 + components: + - type: Transform + pos: -26.5,10.5 + parent: 2 + - uid: 948 + components: + - type: Transform + pos: -24.5,14.5 + parent: 2 + - uid: 949 + components: + - type: Transform + pos: -26.5,9.5 + parent: 2 + - uid: 950 + components: + - type: Transform + pos: -41.5,28.5 + parent: 2 + - uid: 951 + components: + - type: Transform + pos: -31.5,27.5 + parent: 2 + - uid: 952 + components: + - type: Transform + pos: -32.5,27.5 + parent: 2 + - uid: 953 + components: + - type: Transform + pos: -33.5,27.5 + parent: 2 + - uid: 954 + components: + - type: Transform + pos: -34.5,27.5 + parent: 2 + - uid: 955 + components: + - type: Transform + pos: -34.5,28.5 + parent: 2 + - uid: 956 + components: + - type: Transform + pos: -34.5,29.5 + parent: 2 + - uid: 957 + components: + - type: Transform + pos: -34.5,26.5 + parent: 2 + - uid: 958 + components: + - type: Transform + pos: -31.5,26.5 + parent: 2 + - uid: 959 + components: + - type: Transform + pos: -31.5,25.5 + parent: 2 + - uid: 960 + components: + - type: Transform + pos: -31.5,24.5 + parent: 2 + - uid: 961 + components: + - type: Transform + pos: -31.5,23.5 + parent: 2 + - uid: 962 + components: + - type: Transform + pos: -26.5,8.5 + parent: 2 + - uid: 963 + components: + - type: Transform + pos: -26.5,7.5 + parent: 2 + - uid: 964 + components: + - type: Transform + pos: -27.5,7.5 + parent: 2 + - uid: 965 + components: + - type: Transform + pos: -27.5,6.5 + parent: 2 + - uid: 966 + components: + - type: Transform + pos: -28.5,6.5 + parent: 2 + - uid: 967 + components: + - type: Transform + pos: -29.5,6.5 + parent: 2 + - uid: 968 + components: + - type: Transform + pos: -30.5,6.5 + parent: 2 + - uid: 969 + components: + - type: Transform + pos: -31.5,6.5 + parent: 2 + - uid: 970 + components: + - type: Transform + pos: -32.5,6.5 + parent: 2 + - uid: 971 + components: + - type: Transform + pos: -33.5,6.5 + parent: 2 + - uid: 972 + components: + - type: Transform + pos: -33.5,7.5 + parent: 2 + - uid: 973 + components: + - type: Transform + pos: -34.5,7.5 + parent: 2 + - uid: 974 + components: + - type: Transform + pos: -34.5,8.5 + parent: 2 + - uid: 975 + components: + - type: Transform + pos: -34.5,9.5 + parent: 2 + - uid: 976 + components: + - type: Transform + pos: -34.5,10.5 + parent: 2 + - uid: 977 + components: + - type: Transform + pos: -34.5,11.5 + parent: 2 + - uid: 978 + components: + - type: Transform + pos: -34.5,12.5 + parent: 2 + - uid: 979 + components: + - type: Transform + pos: -34.5,13.5 + parent: 2 + - uid: 980 + components: + - type: Transform + pos: -34.5,14.5 + parent: 2 + - uid: 981 + components: + - type: Transform + pos: -34.5,15.5 + parent: 2 + - uid: 982 + components: + - type: Transform + pos: -34.5,16.5 + parent: 2 + - uid: 983 + components: + - type: Transform + pos: -34.5,17.5 + parent: 2 + - uid: 984 + components: + - type: Transform + pos: -34.5,18.5 + parent: 2 + - uid: 985 + components: + - type: Transform + pos: -34.5,19.5 + parent: 2 + - uid: 986 + components: + - type: Transform + pos: -34.5,20.5 + parent: 2 + - uid: 987 + components: + - type: Transform + pos: -34.5,21.5 + parent: 2 + - uid: 988 + components: + - type: Transform + pos: -33.5,21.5 + parent: 2 + - uid: 989 + components: + - type: Transform + pos: -32.5,21.5 + parent: 2 + - uid: 990 + components: + - type: Transform + pos: -31.5,21.5 + parent: 2 + - uid: 991 + components: + - type: Transform + pos: -30.5,21.5 + parent: 2 + - uid: 992 + components: + - type: Transform + pos: -30.5,20.5 + parent: 2 + - uid: 993 + components: + - type: Transform + pos: -30.5,19.5 + parent: 2 + - uid: 994 + components: + - type: Transform + pos: -29.5,19.5 + parent: 2 + - uid: 995 + components: + - type: Transform + pos: -28.5,19.5 + parent: 2 + - uid: 996 + components: + - type: Transform + pos: -28.5,20.5 + parent: 2 + - uid: 997 + components: + - type: Transform + pos: -27.5,20.5 + parent: 2 + - uid: 998 + components: + - type: Transform + pos: -26.5,20.5 + parent: 2 + - uid: 999 + components: + - type: Transform + pos: -26.5,19.5 + parent: 2 + - uid: 1000 + components: + - type: Transform + pos: -25.5,19.5 + parent: 2 + - uid: 1001 + components: + - type: Transform + pos: -24.5,19.5 + parent: 2 + - uid: 1002 + components: + - type: Transform + pos: -24.5,18.5 + parent: 2 + - uid: 1003 + components: + - type: Transform + pos: -24.5,17.5 + parent: 2 + - uid: 1004 + components: + - type: Transform + pos: -24.5,16.5 + parent: 2 + - uid: 1005 + components: + - type: Transform + pos: -23.5,18.5 + parent: 2 + - uid: 1006 + components: + - type: Transform + pos: -22.5,18.5 + parent: 2 + - uid: 1007 + components: + - type: Transform + pos: -21.5,18.5 + parent: 2 + - uid: 1008 + components: + - type: Transform + pos: -22.5,17.5 + parent: 2 + - uid: 1009 + components: + - type: Transform + pos: -22.5,19.5 + parent: 2 + - uid: 1010 + components: + - type: Transform + pos: -22.5,20.5 + parent: 2 + - uid: 1011 + components: + - type: Transform + pos: -22.5,21.5 + parent: 2 + - uid: 1012 + components: + - type: Transform + pos: -22.5,22.5 + parent: 2 + - uid: 1013 + components: + - type: Transform + pos: -22.5,23.5 + parent: 2 + - uid: 1014 + components: + - type: Transform + pos: -23.5,23.5 + parent: 2 + - uid: 1015 + components: + - type: Transform + pos: -24.5,23.5 + parent: 2 + - uid: 1016 + components: + - type: Transform + pos: -11.5,21.5 + parent: 2 + - uid: 1017 + components: + - type: Transform + pos: -11.5,20.5 + parent: 2 + - uid: 1018 + components: + - type: Transform + pos: -11.5,19.5 + parent: 2 + - uid: 1019 + components: + - type: Transform + pos: -12.5,19.5 + parent: 2 + - uid: 1020 + components: + - type: Transform + pos: -13.5,19.5 + parent: 2 + - uid: 1021 + components: + - type: Transform + pos: -14.5,19.5 + parent: 2 + - uid: 1022 + components: + - type: Transform + pos: -15.5,19.5 + parent: 2 + - uid: 1023 + components: + - type: Transform + pos: -16.5,19.5 + parent: 2 + - uid: 1024 + components: + - type: Transform + pos: -16.5,18.5 + parent: 2 + - uid: 1025 + components: + - type: Transform + pos: -17.5,18.5 + parent: 2 + - uid: 1026 + components: + - type: Transform + pos: -18.5,18.5 + parent: 2 + - uid: 1027 + components: + - type: Transform + pos: -19.5,18.5 + parent: 2 + - uid: 1028 + components: + - type: Transform + pos: -18.5,18.5 + parent: 2 + - uid: 1029 + components: + - type: Transform + pos: -18.5,19.5 + parent: 2 + - uid: 1030 + components: + - type: Transform + pos: -18.5,20.5 + parent: 2 + - uid: 1031 + components: + - type: Transform + pos: -18.5,21.5 + parent: 2 + - uid: 1032 + components: + - type: Transform + pos: -18.5,22.5 + parent: 2 + - uid: 1033 + components: + - type: Transform + pos: -19.5,22.5 + parent: 2 + - uid: 1034 + components: + - type: Transform + pos: -18.5,17.5 + parent: 2 + - uid: 1035 + components: + - type: Transform + pos: -10.5,20.5 + parent: 2 + - uid: 1036 + components: + - type: Transform + pos: -9.5,20.5 + parent: 2 + - uid: 1037 + components: + - type: Transform + pos: -8.5,20.5 + parent: 2 + - uid: 1038 + components: + - type: Transform + pos: -7.5,20.5 + parent: 2 + - uid: 1039 + components: + - type: Transform + pos: -9.5,21.5 + parent: 2 + - uid: 1040 + components: + - type: Transform + pos: -9.5,22.5 + parent: 2 + - uid: 1041 + components: + - type: Transform + pos: -9.5,23.5 + parent: 2 + - uid: 1042 + components: + - type: Transform + pos: -9.5,24.5 + parent: 2 + - uid: 1043 + components: + - type: Transform + pos: -9.5,25.5 + parent: 2 + - uid: 1044 + components: + - type: Transform + pos: -3.5,28.5 + parent: 2 + - uid: 1045 + components: + - type: Transform + pos: -3.5,27.5 + parent: 2 + - uid: 1046 + components: + - type: Transform + pos: -4.5,27.5 + parent: 2 + - uid: 1047 + components: + - type: Transform + pos: -4.5,26.5 + parent: 2 + - uid: 1048 + components: + - type: Transform + pos: -4.5,25.5 + parent: 2 + - uid: 1049 + components: + - type: Transform + pos: -4.5,24.5 + parent: 2 + - uid: 1050 + components: + - type: Transform + pos: -4.5,23.5 + parent: 2 + - uid: 1051 + components: + - type: Transform + pos: -3.5,25.5 + parent: 2 + - uid: 1052 + components: + - type: Transform + pos: -2.5,25.5 + parent: 2 + - uid: 1053 + components: + - type: Transform + pos: -5.5,27.5 + parent: 2 + - uid: 1054 + components: + - type: Transform + pos: -6.5,27.5 + parent: 2 + - uid: 1055 + components: + - type: Transform + pos: -2.5,37.5 + parent: 2 + - uid: 1056 + components: + - type: Transform + pos: -2.5,36.5 + parent: 2 + - uid: 1057 + components: + - type: Transform + pos: -2.5,35.5 + parent: 2 + - uid: 1058 + components: + - type: Transform + pos: -3.5,35.5 + parent: 2 + - uid: 1059 + components: + - type: Transform + pos: -4.5,35.5 + parent: 2 + - uid: 1060 + components: + - type: Transform + pos: -5.5,35.5 + parent: 2 + - uid: 1061 + components: + - type: Transform + pos: -2.5,34.5 + parent: 2 + - uid: 1062 + components: + - type: Transform + pos: -2.5,33.5 + parent: 2 + - uid: 1063 + components: + - type: Transform + pos: -3.5,33.5 + parent: 2 + - uid: 1064 + components: + - type: Transform + pos: -4.5,33.5 + parent: 2 + - uid: 1065 + components: + - type: Transform + pos: -5.5,33.5 + parent: 2 + - uid: 1066 + components: + - type: Transform + pos: -5.5,32.5 + parent: 2 + - uid: 1067 + components: + - type: Transform + pos: -5.5,31.5 + parent: 2 + - uid: 1068 + components: + - type: Transform + pos: -5.5,30.5 + parent: 2 + - uid: 1069 + components: + - type: Transform + pos: -4.5,30.5 + parent: 2 + - uid: 1070 + components: + - type: Transform + pos: -3.5,30.5 + parent: 2 + - uid: 1071 + components: + - type: Transform + pos: -2.5,30.5 + parent: 2 + - uid: 1072 + components: + - type: Transform + pos: -4.5,36.5 + parent: 2 + - uid: 1073 + components: + - type: Transform + pos: -4.5,37.5 + parent: 2 + - uid: 1074 + components: + - type: Transform + pos: -4.5,38.5 + parent: 2 + - uid: 1075 + components: + - type: Transform + pos: -4.5,39.5 + parent: 2 + - uid: 1076 + components: + - type: Transform + pos: -3.5,39.5 + parent: 2 + - uid: 1077 + components: + - type: Transform + pos: -2.5,39.5 + parent: 2 + - uid: 1078 + components: + - type: Transform + pos: -5.5,39.5 + parent: 2 + - uid: 1079 + components: + - type: Transform + pos: -6.5,39.5 + parent: 2 + - uid: 1080 + components: + - type: Transform + pos: -7.5,39.5 + parent: 2 + - uid: 1081 + components: + - type: Transform + pos: -8.5,39.5 + parent: 2 + - uid: 1082 + components: + - type: Transform + pos: -9.5,39.5 + parent: 2 + - uid: 1083 + components: + - type: Transform + pos: -8.5,40.5 + parent: 2 + - uid: 1084 + components: + - type: Transform + pos: -10.5,39.5 + parent: 2 + - uid: 1085 + components: + - type: Transform + pos: -10.5,40.5 + parent: 2 + - uid: 1086 + components: + - type: Transform + pos: -9.5,38.5 + parent: 2 + - uid: 1087 + components: + - type: Transform + pos: -9.5,37.5 + parent: 2 + - uid: 1088 + components: + - type: Transform + pos: -9.5,36.5 + parent: 2 + - uid: 1089 + components: + - type: Transform + pos: -9.5,35.5 + parent: 2 + - uid: 1090 + components: + - type: Transform + pos: -9.5,34.5 + parent: 2 + - uid: 1091 + components: + - type: Transform + pos: -9.5,33.5 + parent: 2 + - uid: 1092 + components: + - type: Transform + pos: -9.5,32.5 + parent: 2 + - uid: 1093 + components: + - type: Transform + pos: -9.5,31.5 + parent: 2 + - uid: 1094 + components: + - type: Transform + pos: -9.5,30.5 + parent: 2 + - uid: 1095 + components: + - type: Transform + pos: -9.5,29.5 + parent: 2 + - uid: 1096 + components: + - type: Transform + pos: -9.5,28.5 + parent: 2 + - uid: 1097 + components: + - type: Transform + pos: -9.5,27.5 + parent: 2 + - uid: 1098 + components: + - type: Transform + pos: -8.5,28.5 + parent: 2 + - uid: 1099 + components: + - type: Transform + pos: -10.5,28.5 + parent: 2 + - uid: 1100 + components: + - type: Transform + pos: -8.5,30.5 + parent: 2 + - uid: 1101 + components: + - type: Transform + pos: -10.5,30.5 + parent: 2 + - uid: 1102 + components: + - type: Transform + pos: -10.5,32.5 + parent: 2 + - uid: 1103 + components: + - type: Transform + pos: -11.5,32.5 + parent: 2 + - uid: 1104 + components: + - type: Transform + pos: -12.5,38.5 + parent: 2 + - uid: 1105 + components: + - type: Transform + pos: -41.5,27.5 + parent: 2 + - uid: 1106 + components: + - type: Transform + pos: -42.5,27.5 + parent: 2 + - uid: 1107 + components: + - type: Transform + pos: -40.5,30.5 + parent: 2 + - uid: 1108 + components: + - type: Transform + pos: -41.5,29.5 + parent: 2 + - uid: 1109 + components: + - type: Transform + pos: -43.5,27.5 + parent: 2 + - uid: 1110 + components: + - type: Transform + pos: -8.5,32.5 + parent: 2 + - uid: 1111 + components: + - type: Transform + pos: -10.5,35.5 + parent: 2 + - uid: 1112 + components: + - type: Transform + pos: -10.5,46.5 + parent: 2 + - uid: 1113 + components: + - type: Transform + pos: -10.5,45.5 + parent: 2 + - uid: 1114 + components: + - type: Transform + pos: -10.5,44.5 + parent: 2 + - uid: 1115 + components: + - type: Transform + pos: -10.5,43.5 + parent: 2 + - uid: 1116 + components: + - type: Transform + pos: -10.5,41.5 + parent: 2 + - uid: 1117 + components: + - type: Transform + pos: -8.5,41.5 + parent: 2 + - uid: 1118 + components: + - type: Transform + pos: -11.5,44.5 + parent: 2 + - uid: 1119 + components: + - type: Transform + pos: -12.5,44.5 + parent: 2 + - uid: 1120 + components: + - type: Transform + pos: -13.5,44.5 + parent: 2 + - uid: 1121 + components: + - type: Transform + pos: -14.5,44.5 + parent: 2 + - uid: 1122 + components: + - type: Transform + pos: -15.5,44.5 + parent: 2 + - uid: 1123 + components: + - type: Transform + pos: -14.5,43.5 + parent: 2 + - uid: 1124 + components: + - type: Transform + pos: -43.5,26.5 + parent: 2 + - uid: 1125 + components: + - type: Transform + pos: -40.5,29.5 + parent: 2 + - uid: 1126 + components: + - type: Transform + pos: -43.5,25.5 + parent: 2 + - uid: 1127 + components: + - type: Transform + pos: -22.5,46.5 + parent: 2 + - uid: 1128 + components: + - type: Transform + pos: -22.5,45.5 + parent: 2 + - uid: 1129 + components: + - type: Transform + pos: -22.5,44.5 + parent: 2 + - uid: 1130 + components: + - type: Transform + pos: -22.5,43.5 + parent: 2 + - uid: 1131 + components: + - type: Transform + pos: -21.5,43.5 + parent: 2 + - uid: 1132 + components: + - type: Transform + pos: -20.5,43.5 + parent: 2 + - uid: 1133 + components: + - type: Transform + pos: -19.5,43.5 + parent: 2 + - uid: 1134 + components: + - type: Transform + pos: -18.5,43.5 + parent: 2 + - uid: 1135 + components: + - type: Transform + pos: -21.5,45.5 + parent: 2 + - uid: 1136 + components: + - type: Transform + pos: -20.5,45.5 + parent: 2 + - uid: 1137 + components: + - type: Transform + pos: -19.5,45.5 + parent: 2 + - uid: 1138 + components: + - type: Transform + pos: -18.5,45.5 + parent: 2 + - uid: 1139 + components: + - type: Transform + pos: -24.5,47.5 + parent: 2 + - uid: 1140 + components: + - type: Transform + pos: -24.5,46.5 + parent: 2 + - uid: 1141 + components: + - type: Transform + pos: -25.5,46.5 + parent: 2 + - uid: 1142 + components: + - type: Transform + pos: -26.5,46.5 + parent: 2 + - uid: 1143 + components: + - type: Transform + pos: -28.5,46.5 + parent: 2 + - uid: 1144 + components: + - type: Transform + pos: -27.5,46.5 + parent: 2 + - uid: 1145 + components: + - type: Transform + pos: -25.5,45.5 + parent: 2 + - uid: 1146 + components: + - type: Transform + pos: -25.5,44.5 + parent: 2 + - uid: 1147 + components: + - type: Transform + pos: -25.5,43.5 + parent: 2 + - uid: 1148 + components: + - type: Transform + pos: -26.5,44.5 + parent: 2 + - uid: 1149 + components: + - type: Transform + pos: -27.5,44.5 + parent: 2 + - uid: 1150 + components: + - type: Transform + pos: -24.5,44.5 + parent: 2 + - uid: 1151 + components: + - type: Transform + pos: -42.5,25.5 + parent: 2 + - uid: 1152 + components: + - type: Transform + pos: -35.5,30.5 + parent: 2 + - uid: 1153 + components: + - type: Transform + pos: -34.5,24.5 + parent: 2 + - uid: 1154 + components: + - type: Transform + pos: -8.5,46.5 + parent: 2 + - uid: 1155 + components: + - type: Transform + pos: -8.5,45.5 + parent: 2 + - uid: 1156 + components: + - type: Transform + pos: -8.5,44.5 + parent: 2 + - uid: 1157 + components: + - type: Transform + pos: -8.5,43.5 + parent: 2 + - uid: 1158 + components: + - type: Transform + pos: -7.5,44.5 + parent: 2 + - uid: 1159 + components: + - type: Transform + pos: -6.5,44.5 + parent: 2 + - uid: 1160 + components: + - type: Transform + pos: -5.5,44.5 + parent: 2 + - uid: 1161 + components: + - type: Transform + pos: -4.5,44.5 + parent: 2 + - uid: 1162 + components: + - type: Transform + pos: -3.5,44.5 + parent: 2 + - uid: 1163 + components: + - type: Transform + pos: -4.5,43.5 + parent: 2 + - uid: 1164 + components: + - type: Transform + pos: -4.5,42.5 + parent: 2 + - uid: 1165 + components: + - type: Transform + pos: -3.5,42.5 + parent: 2 + - uid: 1166 + components: + - type: Transform + pos: -2.5,42.5 + parent: 2 + - uid: 1167 + components: + - type: Transform + pos: -2.5,43.5 + parent: 2 + - uid: 1168 + components: + - type: Transform + pos: -1.5,43.5 + parent: 2 + - uid: 1169 + components: + - type: Transform + pos: -21.5,6.5 + parent: 2 + - uid: 1170 + components: + - type: Transform + pos: -21.5,7.5 + parent: 2 + - uid: 1171 + components: + - type: Transform + pos: -22.5,7.5 + parent: 2 + - uid: 1172 + components: + - type: Transform + pos: -23.5,7.5 + parent: 2 + - uid: 1173 + components: + - type: Transform + pos: -20.5,7.5 + parent: 2 + - uid: 1174 + components: + - type: Transform + pos: -22.5,8.5 + parent: 2 + - uid: 1175 + components: + - type: Transform + pos: -22.5,9.5 + parent: 2 + - uid: 1176 + components: + - type: Transform + pos: -21.5,9.5 + parent: 2 + - uid: 1177 + components: + - type: Transform + pos: -22.5,10.5 + parent: 2 + - uid: 1178 + components: + - type: Transform + pos: -22.5,11.5 + parent: 2 + - uid: 1179 + components: + - type: Transform + pos: -22.5,12.5 + parent: 2 + - uid: 1180 + components: + - type: Transform + pos: -22.5,13.5 + parent: 2 + - uid: 1181 + components: + - type: Transform + pos: -22.5,14.5 + parent: 2 + - uid: 1182 + components: + - type: Transform + pos: -21.5,14.5 + parent: 2 + - uid: 1183 + components: + - type: Transform + pos: -20.5,14.5 + parent: 2 + - uid: 1184 + components: + - type: Transform + pos: -19.5,14.5 + parent: 2 + - uid: 1185 + components: + - type: Transform + pos: -19.5,13.5 + parent: 2 + - uid: 1186 + components: + - type: Transform + pos: -19.5,12.5 + parent: 2 + - uid: 1187 + components: + - type: Transform + pos: -18.5,12.5 + parent: 2 + - uid: 1188 + components: + - type: Transform + pos: -17.5,12.5 + parent: 2 + - uid: 1189 + components: + - type: Transform + pos: -4.5,13.5 + parent: 2 + - uid: 1190 + components: + - type: Transform + pos: -18.5,11.5 + parent: 2 + - uid: 1191 + components: + - type: Transform + pos: -18.5,10.5 + parent: 2 + - uid: 1192 + components: + - type: Transform + pos: -18.5,9.5 + parent: 2 + - uid: 1193 + components: + - type: Transform + pos: -18.5,8.5 + parent: 2 + - uid: 1194 + components: + - type: Transform + pos: -18.5,7.5 + parent: 2 + - uid: 1195 + components: + - type: Transform + pos: -18.5,6.5 + parent: 2 + - uid: 1196 + components: + - type: Transform + pos: -17.5,6.5 + parent: 2 + - uid: 1197 + components: + - type: Transform + pos: -17.5,5.5 + parent: 2 + - uid: 1198 + components: + - type: Transform + pos: -17.5,4.5 + parent: 2 + - uid: 1199 + components: + - type: Transform + pos: -15.5,12.5 + parent: 2 + - uid: 1200 + components: + - type: Transform + pos: -15.5,13.5 + parent: 2 + - uid: 1201 + components: + - type: Transform + pos: -15.5,14.5 + parent: 2 + - uid: 1202 + components: + - type: Transform + pos: -15.5,15.5 + parent: 2 + - uid: 1203 + components: + - type: Transform + pos: -15.5,16.5 + parent: 2 + - uid: 1204 + components: + - type: Transform + pos: -14.5,16.5 + parent: 2 + - uid: 1205 + components: + - type: Transform + pos: -13.5,16.5 + parent: 2 + - uid: 1206 + components: + - type: Transform + pos: -12.5,16.5 + parent: 2 + - uid: 1207 + components: + - type: Transform + pos: -11.5,16.5 + parent: 2 + - uid: 1208 + components: + - type: Transform + pos: -10.5,16.5 + parent: 2 + - uid: 1209 + components: + - type: Transform + pos: -9.5,16.5 + parent: 2 + - uid: 1210 + components: + - type: Transform + pos: -9.5,17.5 + parent: 2 + - uid: 1211 + components: + - type: Transform + pos: -8.5,17.5 + parent: 2 + - uid: 1212 + components: + - type: Transform + pos: -7.5,17.5 + parent: 2 + - uid: 1213 + components: + - type: Transform + pos: -6.5,17.5 + parent: 2 + - uid: 1214 + components: + - type: Transform + pos: -4.5,17.5 + parent: 2 + - uid: 1215 + components: + - type: Transform + pos: -5.5,17.5 + parent: 2 + - uid: 1216 + components: + - type: Transform + pos: -3.5,17.5 + parent: 2 + - uid: 1217 + components: + - type: Transform + pos: -19.5,15.5 + parent: 2 + - uid: 1218 + components: + - type: Transform + pos: -18.5,15.5 + parent: 2 + - uid: 1219 + components: + - type: Transform + pos: -22.5,6.5 + parent: 2 + - uid: 1220 + components: + - type: Transform + pos: -22.5,5.5 + parent: 2 + - uid: 1221 + components: + - type: Transform + pos: -22.5,4.5 + parent: 2 + - uid: 1222 + components: + - type: Transform + pos: -11.5,8.5 + parent: 2 + - uid: 1223 + components: + - type: Transform + pos: -11.5,7.5 + parent: 2 + - uid: 1224 + components: + - type: Transform + pos: -11.5,6.5 + parent: 2 + - uid: 1225 + components: + - type: Transform + pos: -10.5,6.5 + parent: 2 + - uid: 1226 + components: + - type: Transform + pos: -9.5,6.5 + parent: 2 + - uid: 1227 + components: + - type: Transform + pos: -10.5,5.5 + parent: 2 + - uid: 1228 + components: + - type: Transform + pos: -10.5,4.5 + parent: 2 + - uid: 1229 + components: + - type: Transform + pos: -12.5,6.5 + parent: 2 + - uid: 1230 + components: + - type: Transform + pos: -13.5,6.5 + parent: 2 + - uid: 1231 + components: + - type: Transform + pos: -14.5,6.5 + parent: 2 + - uid: 1232 + components: + - type: Transform + pos: -15.5,6.5 + parent: 2 + - uid: 1233 + components: + - type: Transform + pos: -14.5,5.5 + parent: 2 + - uid: 1234 + components: + - type: Transform + pos: -14.5,4.5 + parent: 2 + - uid: 1235 + components: + - type: Transform + pos: -14.5,3.5 + parent: 2 + - uid: 1236 + components: + - type: Transform + pos: -14.5,2.5 + parent: 2 + - uid: 1237 + components: + - type: Transform + pos: -14.5,7.5 + parent: 2 + - uid: 1238 + components: + - type: Transform + pos: -14.5,8.5 + parent: 2 + - uid: 1239 + components: + - type: Transform + pos: -14.5,9.5 + parent: 2 + - uid: 1240 + components: + - type: Transform + pos: -13.5,9.5 + parent: 2 + - uid: 1241 + components: + - type: Transform + pos: -15.5,9.5 + parent: 2 + - uid: 1242 + components: + - type: Transform + pos: -11.5,9.5 + parent: 2 + - uid: 1243 + components: + - type: Transform + pos: -11.5,10.5 + parent: 2 + - uid: 1244 + components: + - type: Transform + pos: -11.5,11.5 + parent: 2 + - uid: 1245 + components: + - type: Transform + pos: -11.5,12.5 + parent: 2 + - uid: 1246 + components: + - type: Transform + pos: -11.5,13.5 + parent: 2 + - uid: 1247 + components: + - type: Transform + pos: -11.5,14.5 + parent: 2 + - uid: 1248 + components: + - type: Transform + pos: -12.5,14.5 + parent: 2 + - uid: 1249 + components: + - type: Transform + pos: -13.5,14.5 + parent: 2 + - uid: 1250 + components: + - type: Transform + pos: -12.5,11.5 + parent: 2 + - uid: 1251 + components: + - type: Transform + pos: -13.5,11.5 + parent: 2 + - uid: 1252 + components: + - type: Transform + pos: -10.5,14.5 + parent: 2 + - uid: 1253 + components: + - type: Transform + pos: -9.5,14.5 + parent: 2 + - uid: 1254 + components: + - type: Transform + pos: -8.5,14.5 + parent: 2 + - uid: 1255 + components: + - type: Transform + pos: -10.5,11.5 + parent: 2 + - uid: 1256 + components: + - type: Transform + pos: -9.5,11.5 + parent: 2 + - uid: 1257 + components: + - type: Transform + pos: -8.5,11.5 + parent: 2 + - uid: 1258 + components: + - type: Transform + pos: -5.5,16.5 + parent: 2 + - uid: 1259 + components: + - type: Transform + pos: -5.5,15.5 + parent: 2 + - uid: 1260 + components: + - type: Transform + pos: -5.5,14.5 + parent: 2 + - uid: 1261 + components: + - type: Transform + pos: -5.5,13.5 + parent: 2 + - uid: 1262 + components: + - type: Transform + pos: -4.5,14.5 + parent: 2 + - uid: 1263 + components: + - type: Transform + pos: -6.5,14.5 + parent: 2 + - uid: 1264 + components: + - type: Transform + pos: -3.5,14.5 + parent: 2 + - uid: 1265 + components: + - type: Transform + pos: -0.5,18.5 + parent: 2 + - uid: 1266 + components: + - type: Transform + pos: -0.5,17.5 + parent: 2 + - uid: 1267 + components: + - type: Transform + pos: -0.5,16.5 + parent: 2 + - uid: 1268 + components: + - type: Transform + pos: -0.5,15.5 + parent: 2 + - uid: 1269 + components: + - type: Transform + pos: -0.5,14.5 + parent: 2 + - uid: 1270 + components: + - type: Transform + pos: 0.5,17.5 + parent: 2 + - uid: 1271 + components: + - type: Transform + pos: 1.5,17.5 + parent: 2 + - uid: 1272 + components: + - type: Transform + pos: 1.5,14.5 + parent: 2 + - uid: 1273 + components: + - type: Transform + pos: 0.5,14.5 + parent: 2 + - uid: 1274 + components: + - type: Transform + pos: -1.5,14.5 + parent: 2 + - uid: 1275 + components: + - type: Transform + pos: -1.5,17.5 + parent: 2 + - uid: 1276 + components: + - type: Transform + pos: 1.5,16.5 + parent: 2 + - uid: 1277 + components: + - type: Transform + pos: 1.5,15.5 + parent: 2 + - uid: 1278 + components: + - type: Transform + pos: 13.5,13.5 + parent: 2 + - uid: 1279 + components: + - type: Transform + pos: 12.5,13.5 + parent: 2 + - uid: 1280 + components: + - type: Transform + pos: 11.5,13.5 + parent: 2 + - uid: 1281 + components: + - type: Transform + pos: 11.5,14.5 + parent: 2 + - uid: 1282 + components: + - type: Transform + pos: 11.5,15.5 + parent: 2 + - uid: 1283 + components: + - type: Transform + pos: 11.5,16.5 + parent: 2 + - uid: 1284 + components: + - type: Transform + pos: 11.5,17.5 + parent: 2 + - uid: 1285 + components: + - type: Transform + pos: 11.5,18.5 + parent: 2 + - uid: 1286 + components: + - type: Transform + pos: 11.5,12.5 + parent: 2 + - uid: 1287 + components: + - type: Transform + pos: 11.5,11.5 + parent: 2 + - uid: 1288 + components: + - type: Transform + pos: 11.5,10.5 + parent: 2 + - uid: 1289 + components: + - type: Transform + pos: 10.5,10.5 + parent: 2 + - uid: 1290 + components: + - type: Transform + pos: 9.5,10.5 + parent: 2 + - uid: 1291 + components: + - type: Transform + pos: 8.5,10.5 + parent: 2 + - uid: 1292 + components: + - type: Transform + pos: 7.5,10.5 + parent: 2 + - uid: 1293 + components: + - type: Transform + pos: 7.5,9.5 + parent: 2 + - uid: 1294 + components: + - type: Transform + pos: 10.5,15.5 + parent: 2 + - uid: 1295 + components: + - type: Transform + pos: 9.5,15.5 + parent: 2 + - uid: 1296 + components: + - type: Transform + pos: 8.5,15.5 + parent: 2 + - uid: 1297 + components: + - type: Transform + pos: 7.5,15.5 + parent: 2 + - uid: 1298 + components: + - type: Transform + pos: 10.5,17.5 + parent: 2 + - uid: 1299 + components: + - type: Transform + pos: 9.5,17.5 + parent: 2 + - uid: 1300 + components: + - type: Transform + pos: 8.5,17.5 + parent: 2 + - uid: 1301 + components: + - type: Transform + pos: 7.5,17.5 + parent: 2 + - uid: 1302 + components: + - type: Transform + pos: 10.5,13.5 + parent: 2 + - uid: 1303 + components: + - type: Transform + pos: 9.5,13.5 + parent: 2 + - uid: 1304 + components: + - type: Transform + pos: 8.5,13.5 + parent: 2 + - uid: 1305 + components: + - type: Transform + pos: 7.5,13.5 + parent: 2 + - uid: 1306 + components: + - type: Transform + pos: 7.5,11.5 + parent: 2 + - uid: 1307 + components: + - type: Transform + pos: 7.5,12.5 + parent: 2 + - uid: 1308 + components: + - type: Transform + pos: 6.5,11.5 + parent: 2 + - uid: 1309 + components: + - type: Transform + pos: 5.5,11.5 + parent: 2 + - uid: 1310 + components: + - type: Transform + pos: 4.5,11.5 + parent: 2 + - uid: 1311 + components: + - type: Transform + pos: 4.5,12.5 + parent: 2 + - uid: 1312 + components: + - type: Transform + pos: 4.5,13.5 + parent: 2 + - uid: 1313 + components: + - type: Transform + pos: 4.5,14.5 + parent: 2 + - uid: 1314 + components: + - type: Transform + pos: 4.5,15.5 + parent: 2 + - uid: 1315 + components: + - type: Transform + pos: 4.5,16.5 + parent: 2 + - uid: 1316 + components: + - type: Transform + pos: 4.5,17.5 + parent: 2 + - uid: 1317 + components: + - type: Transform + pos: 4.5,10.5 + parent: 2 + - uid: 1318 + components: + - type: Transform + pos: 4.5,9.5 + parent: 2 + - uid: 1319 + components: + - type: Transform + pos: 4.5,8.5 + parent: 2 + - uid: 1320 + components: + - type: Transform + pos: 4.5,7.5 + parent: 2 + - uid: 1321 + components: + - type: Transform + pos: 4.5,6.5 + parent: 2 + - uid: 1322 + components: + - type: Transform + pos: 4.5,5.5 + parent: 2 + - uid: 1323 + components: + - type: Transform + pos: 4.5,4.5 + parent: 2 + - uid: 1324 + components: + - type: Transform + pos: 4.5,3.5 + parent: 2 + - uid: 1325 + components: + - type: Transform + pos: 3.5,3.5 + parent: 2 + - uid: 1326 + components: + - type: Transform + pos: 2.5,3.5 + parent: 2 + - uid: 1327 + components: + - type: Transform + pos: 1.5,3.5 + parent: 2 + - uid: 1328 + components: + - type: Transform + pos: 0.5,3.5 + parent: 2 + - uid: 1329 + components: + - type: Transform + pos: -0.5,3.5 + parent: 2 + - uid: 1330 + components: + - type: Transform + pos: -1.5,3.5 + parent: 2 + - uid: 1331 + components: + - type: Transform + pos: -2.5,3.5 + parent: 2 + - uid: 1332 + components: + - type: Transform + pos: -3.5,3.5 + parent: 2 + - uid: 1333 + components: + - type: Transform + pos: 3.5,6.5 + parent: 2 + - uid: 1334 + components: + - type: Transform + pos: 2.5,6.5 + parent: 2 + - uid: 1335 + components: + - type: Transform + pos: 1.5,6.5 + parent: 2 + - uid: 1336 + components: + - type: Transform + pos: 0.5,6.5 + parent: 2 + - uid: 1337 + components: + - type: Transform + pos: -0.5,6.5 + parent: 2 + - uid: 1338 + components: + - type: Transform + pos: -1.5,6.5 + parent: 2 + - uid: 1339 + components: + - type: Transform + pos: -2.5,6.5 + parent: 2 + - uid: 1340 + components: + - type: Transform + pos: 3.5,9.5 + parent: 2 + - uid: 1341 + components: + - type: Transform + pos: 2.5,9.5 + parent: 2 + - uid: 1342 + components: + - type: Transform + pos: 1.5,9.5 + parent: 2 + - uid: 1343 + components: + - type: Transform + pos: 0.5,9.5 + parent: 2 + - uid: 1344 + components: + - type: Transform + pos: -0.5,9.5 + parent: 2 + - uid: 1345 + components: + - type: Transform + pos: -1.5,9.5 + parent: 2 + - uid: 1346 + components: + - type: Transform + pos: -2.5,9.5 + parent: 2 + - uid: 1347 + components: + - type: Transform + pos: 3.5,12.5 + parent: 2 + - uid: 1348 + components: + - type: Transform + pos: 2.5,12.5 + parent: 2 + - uid: 1349 + components: + - type: Transform + pos: 1.5,12.5 + parent: 2 + - uid: 1350 + components: + - type: Transform + pos: 0.5,12.5 + parent: 2 + - uid: 1351 + components: + - type: Transform + pos: -0.5,12.5 + parent: 2 + - uid: 1352 + components: + - type: Transform + pos: -1.5,12.5 + parent: 2 + - uid: 1353 + components: + - type: Transform + pos: -1.5,11.5 + parent: 2 + - uid: 1354 + components: + - type: Transform + pos: -2.5,11.5 + parent: 2 + - uid: 1355 + components: + - type: Transform + pos: -3.5,11.5 + parent: 2 + - uid: 1356 + components: + - type: Transform + pos: -4.5,11.5 + parent: 2 + - uid: 1357 + components: + - type: Transform + pos: -5.5,11.5 + parent: 2 + - uid: 1358 + components: + - type: Transform + pos: -6.5,11.5 + parent: 2 + - uid: 1359 + components: + - type: Transform + pos: -2.5,10.5 + parent: 2 + - uid: 1360 + components: + - type: Transform + pos: -2.5,8.5 + parent: 2 + - uid: 1361 + components: + - type: Transform + pos: -2.5,7.5 + parent: 2 + - uid: 1362 + components: + - type: Transform + pos: -2.5,5.5 + parent: 2 + - uid: 1363 + components: + - type: Transform + pos: -2.5,4.5 + parent: 2 + - uid: 1364 + components: + - type: Transform + pos: -3.5,6.5 + parent: 2 + - uid: 1365 + components: + - type: Transform + pos: -4.5,6.5 + parent: 2 + - uid: 1366 + components: + - type: Transform + pos: -5.5,6.5 + parent: 2 + - uid: 1367 + components: + - type: Transform + pos: -6.5,6.5 + parent: 2 + - uid: 1368 + components: + - type: Transform + pos: -6.5,7.5 + parent: 2 + - uid: 1369 + components: + - type: Transform + pos: -6.5,8.5 + parent: 2 + - uid: 1370 + components: + - type: Transform + pos: -6.5,5.5 + parent: 2 + - uid: 1371 + components: + - type: Transform + pos: -6.5,3.5 + parent: 2 + - uid: 1372 + components: + - type: Transform + pos: -6.5,4.5 + parent: 2 + - uid: 1373 + components: + - type: Transform + pos: -0.5,2.5 + parent: 2 + - uid: 1374 + components: + - type: Transform + pos: -0.5,1.5 + parent: 2 + - uid: 1375 + components: + - type: Transform + pos: -0.5,0.5 + parent: 2 + - uid: 1376 + components: + - type: Transform + pos: 1.5,2.5 + parent: 2 + - uid: 1377 + components: + - type: Transform + pos: 1.5,1.5 + parent: 2 + - uid: 1378 + components: + - type: Transform + pos: 1.5,0.5 + parent: 2 + - uid: 1379 + components: + - type: Transform + pos: -34.5,25.5 + parent: 2 + - uid: 1380 + components: + - type: Transform + pos: -35.5,26.5 + parent: 2 + - uid: 1381 + components: + - type: Transform + pos: -36.5,26.5 + parent: 2 + - uid: 1382 + components: + - type: Transform + pos: -37.5,26.5 + parent: 2 + - uid: 1383 + components: + - type: Transform + pos: 7.5,6.5 + parent: 2 + - uid: 1384 + components: + - type: Transform + pos: 7.5,5.5 + parent: 2 + - uid: 1385 + components: + - type: Transform + pos: 7.5,4.5 + parent: 2 + - uid: 1386 + components: + - type: Transform + pos: 7.5,3.5 + parent: 2 + - uid: 1387 + components: + - type: Transform + pos: 7.5,2.5 + parent: 2 + - uid: 1388 + components: + - type: Transform + pos: 8.5,4.5 + parent: 2 + - uid: 1389 + components: + - type: Transform + pos: 9.5,4.5 + parent: 2 + - uid: 1390 + components: + - type: Transform + pos: 9.5,3.5 + parent: 2 + - uid: 1391 + components: + - type: Transform + pos: 9.5,2.5 + parent: 2 + - uid: 1392 + components: + - type: Transform + pos: 9.5,1.5 + parent: 2 + - uid: 1393 + components: + - type: Transform + pos: 7.5,7.5 + parent: 2 + - uid: 1394 + components: + - type: Transform + pos: 8.5,7.5 + parent: 2 + - uid: 1395 + components: + - type: Transform + pos: 9.5,7.5 + parent: 2 + - uid: 1396 + components: + - type: Transform + pos: 10.5,7.5 + parent: 2 + - uid: 1397 + components: + - type: Transform + pos: 11.5,7.5 + parent: 2 + - uid: 1398 + components: + - type: Transform + pos: 12.5,7.5 + parent: 2 + - uid: 1399 + components: + - type: Transform + pos: 13.5,7.5 + parent: 2 + - uid: 1400 + components: + - type: Transform + pos: 12.5,6.5 + parent: 2 + - uid: 1401 + components: + - type: Transform + pos: 12.5,5.5 + parent: 2 + - uid: 1402 + components: + - type: Transform + pos: 12.5,4.5 + parent: 2 + - uid: 1403 + components: + - type: Transform + pos: 12.5,3.5 + parent: 2 + - uid: 1404 + components: + - type: Transform + pos: 12.5,2.5 + parent: 2 + - uid: 1405 + components: + - type: Transform + pos: 12.5,1.5 + parent: 2 + - uid: 1406 + components: + - type: Transform + pos: 12.5,0.5 + parent: 2 + - uid: 1407 + components: + - type: Transform + pos: 14.5,7.5 + parent: 2 + - uid: 1408 + components: + - type: Transform + pos: 15.5,7.5 + parent: 2 + - uid: 1409 + components: + - type: Transform + pos: 15.5,8.5 + parent: 2 + - uid: 1410 + components: + - type: Transform + pos: 15.5,9.5 + parent: 2 + - uid: 1411 + components: + - type: Transform + pos: 15.5,10.5 + parent: 2 + - uid: 1412 + components: + - type: Transform + pos: 15.5,11.5 + parent: 2 + - uid: 1413 + components: + - type: Transform + pos: 15.5,12.5 + parent: 2 + - uid: 1414 + components: + - type: Transform + pos: 15.5,13.5 + parent: 2 + - uid: 1415 + components: + - type: Transform + pos: 15.5,14.5 + parent: 2 + - uid: 1416 + components: + - type: Transform + pos: 15.5,15.5 + parent: 2 + - uid: 1417 + components: + - type: Transform + pos: 16.5,12.5 + parent: 2 + - uid: 1418 + components: + - type: Transform + pos: 16.5,11.5 + parent: 2 + - uid: 1419 + components: + - type: Transform + pos: 16.5,10.5 + parent: 2 + - uid: 1420 + components: + - type: Transform + pos: 17.5,10.5 + parent: 2 + - uid: 1421 + components: + - type: Transform + pos: 18.5,10.5 + parent: 2 + - uid: 1422 + components: + - type: Transform + pos: 18.5,10.5 + parent: 2 + - uid: 1423 + components: + - type: Transform + pos: 18.5,9.5 + parent: 2 + - uid: 1424 + components: + - type: Transform + pos: 18.5,8.5 + parent: 2 + - uid: 1425 + components: + - type: Transform + pos: 18.5,7.5 + parent: 2 + - uid: 1426 + components: + - type: Transform + pos: 18.5,6.5 + parent: 2 + - uid: 1427 + components: + - type: Transform + pos: 19.5,6.5 + parent: 2 + - uid: 1428 + components: + - type: Transform + pos: 15.5,6.5 + parent: 2 + - uid: 1429 + components: + - type: Transform + pos: 16.5,6.5 + parent: 2 + - uid: 1430 + components: + - type: Transform + pos: 17.5,6.5 + parent: 2 + - uid: 1431 + components: + - type: Transform + pos: 15.5,1.5 + parent: 2 + - uid: 1432 + components: + - type: Transform + pos: 19.5,5.5 + parent: 2 + - uid: 1433 + components: + - type: Transform + pos: 19.5,4.5 + parent: 2 + - uid: 1434 + components: + - type: Transform + pos: 20.5,6.5 + parent: 2 + - uid: 1435 + components: + - type: Transform + pos: 21.5,6.5 + parent: 2 + - uid: 1436 + components: + - type: Transform + pos: 22.5,6.5 + parent: 2 + - uid: 1437 + components: + - type: Transform + pos: 23.5,6.5 + parent: 2 + - uid: 1438 + components: + - type: Transform + pos: 24.5,6.5 + parent: 2 + - uid: 1439 + components: + - type: Transform + pos: 25.5,6.5 + parent: 2 + - uid: 1440 + components: + - type: Transform + pos: 25.5,7.5 + parent: 2 + - uid: 1441 + components: + - type: Transform + pos: 26.5,7.5 + parent: 2 + - uid: 1442 + components: + - type: Transform + pos: 27.5,7.5 + parent: 2 + - uid: 1443 + components: + - type: Transform + pos: 27.5,6.5 + parent: 2 + - uid: 1444 + components: + - type: Transform + pos: 28.5,7.5 + parent: 2 + - uid: 1445 + components: + - type: Transform + pos: 29.5,7.5 + parent: 2 + - uid: 1446 + components: + - type: Transform + pos: 30.5,7.5 + parent: 2 + - uid: 1447 + components: + - type: Transform + pos: 31.5,7.5 + parent: 2 + - uid: 1448 + components: + - type: Transform + pos: 32.5,7.5 + parent: 2 + - uid: 1449 + components: + - type: Transform + pos: 31.5,6.5 + parent: 2 + - uid: 1450 + components: + - type: Transform + pos: -35.5,8.5 + parent: 2 + - uid: 1451 + components: + - type: Transform + pos: -36.5,8.5 + parent: 2 + - uid: 1452 + components: + - type: Transform + pos: -37.5,8.5 + parent: 2 + - uid: 1453 + components: + - type: Transform + pos: -38.5,8.5 + parent: 2 + - uid: 1454 + components: + - type: Transform + pos: -39.5,8.5 + parent: 2 + - uid: 1455 + components: + - type: Transform + pos: -35.5,12.5 + parent: 2 + - uid: 1456 + components: + - type: Transform + pos: -36.5,12.5 + parent: 2 + - uid: 1457 + components: + - type: Transform + pos: -37.5,12.5 + parent: 2 + - uid: 1458 + components: + - type: Transform + pos: -38.5,12.5 + parent: 2 + - uid: 1459 + components: + - type: Transform + pos: -39.5,12.5 + parent: 2 + - uid: 1460 + components: + - type: Transform + pos: -35.5,16.5 + parent: 2 + - uid: 1461 + components: + - type: Transform + pos: -36.5,16.5 + parent: 2 + - uid: 1462 + components: + - type: Transform + pos: -37.5,16.5 + parent: 2 + - uid: 1463 + components: + - type: Transform + pos: -38.5,16.5 + parent: 2 + - uid: 1464 + components: + - type: Transform + pos: -39.5,16.5 + parent: 2 + - uid: 1465 + components: + - type: Transform + pos: -35.5,20.5 + parent: 2 + - uid: 1466 + components: + - type: Transform + pos: -36.5,20.5 + parent: 2 + - uid: 1467 + components: + - type: Transform + pos: -37.5,20.5 + parent: 2 + - uid: 1468 + components: + - type: Transform + pos: -38.5,20.5 + parent: 2 + - uid: 1469 + components: + - type: Transform + pos: -39.5,20.5 + parent: 2 + - uid: 1470 + components: + - type: Transform + pos: -32.5,5.5 + parent: 2 + - uid: 1471 + components: + - type: Transform + pos: -32.5,4.5 + parent: 2 + - uid: 1472 + components: + - type: Transform + pos: -32.5,3.5 + parent: 2 + - uid: 1473 + components: + - type: Transform + pos: -32.5,2.5 + parent: 2 + - uid: 1474 + components: + - type: Transform + pos: -28.5,4.5 + parent: 2 + - uid: 1475 + components: + - type: Transform + pos: -28.5,3.5 + parent: 2 + - uid: 1476 + components: + - type: Transform + pos: -28.5,2.5 + parent: 2 + - uid: 1477 + components: + - type: Transform + pos: -17.5,71.5 + parent: 2 + - uid: 1478 + components: + - type: Transform + pos: -17.5,70.5 + parent: 2 + - uid: 1479 + components: + - type: Transform + pos: -17.5,69.5 + parent: 2 + - uid: 1480 + components: + - type: Transform + pos: -17.5,68.5 + parent: 2 + - uid: 1481 + components: + - type: Transform + pos: -17.5,67.5 + parent: 2 + - uid: 1482 + components: + - type: Transform + pos: -17.5,66.5 + parent: 2 + - uid: 1483 + components: + - type: Transform + pos: -17.5,65.5 + parent: 2 + - uid: 1484 + components: + - type: Transform + pos: -17.5,64.5 + parent: 2 + - uid: 1485 + components: + - type: Transform + pos: -17.5,63.5 + parent: 2 + - uid: 1486 + components: + - type: Transform + pos: -17.5,62.5 + parent: 2 + - uid: 1487 + components: + - type: Transform + pos: -17.5,61.5 + parent: 2 + - uid: 1488 + components: + - type: Transform + pos: -17.5,60.5 + parent: 2 + - uid: 1489 + components: + - type: Transform + pos: -16.5,69.5 + parent: 2 + - uid: 1490 + components: + - type: Transform + pos: -15.5,69.5 + parent: 2 + - uid: 1491 + components: + - type: Transform + pos: -18.5,69.5 + parent: 2 + - uid: 1492 + components: + - type: Transform + pos: -18.5,67.5 + parent: 2 + - uid: 1493 + components: + - type: Transform + pos: -16.5,67.5 + parent: 2 + - uid: 1494 + components: + - type: Transform + pos: -15.5,67.5 + parent: 2 + - uid: 1495 + components: + - type: Transform + pos: -14.5,67.5 + parent: 2 + - uid: 1496 + components: + - type: Transform + pos: -14.5,66.5 + parent: 2 + - uid: 1497 + components: + - type: Transform + pos: -14.5,65.5 + parent: 2 + - uid: 1498 + components: + - type: Transform + pos: -14.5,64.5 + parent: 2 + - uid: 1499 + components: + - type: Transform + pos: -18.5,63.5 + parent: 2 + - uid: 1500 + components: + - type: Transform + pos: -19.5,63.5 + parent: 2 + - uid: 1501 + components: + - type: Transform + pos: -16.5,63.5 + parent: 2 + - uid: 1502 + components: + - type: Transform + pos: -18.5,61.5 + parent: 2 + - uid: 1503 + components: + - type: Transform + pos: -19.5,61.5 + parent: 2 + - uid: 1504 + components: + - type: Transform + pos: -16.5,61.5 + parent: 2 + - uid: 1505 + components: + - type: Transform + pos: -15.5,61.5 + parent: 2 + - uid: 1506 + components: + - type: Transform + pos: -14.5,61.5 + parent: 2 + - uid: 1507 + components: + - type: Transform + pos: -25.5,72.5 + parent: 2 + - uid: 1508 + components: + - type: Transform + pos: -25.5,71.5 + parent: 2 + - uid: 1509 + components: + - type: Transform + pos: -25.5,70.5 + parent: 2 + - uid: 1510 + components: + - type: Transform + pos: -25.5,69.5 + parent: 2 + - uid: 1511 + components: + - type: Transform + pos: -25.5,68.5 + parent: 2 + - uid: 1512 + components: + - type: Transform + pos: -25.5,67.5 + parent: 2 + - uid: 1513 + components: + - type: Transform + pos: -25.5,66.5 + parent: 2 + - uid: 1514 + components: + - type: Transform + pos: -24.5,66.5 + parent: 2 + - uid: 1515 + components: + - type: Transform + pos: -23.5,66.5 + parent: 2 + - uid: 1516 + components: + - type: Transform + pos: -22.5,66.5 + parent: 2 + - uid: 1517 + components: + - type: Transform + pos: -21.5,66.5 + parent: 2 + - uid: 1518 + components: + - type: Transform + pos: -24.5,69.5 + parent: 2 + - uid: 1519 + components: + - type: Transform + pos: -23.5,69.5 + parent: 2 + - uid: 1520 + components: + - type: Transform + pos: -22.5,69.5 + parent: 2 + - uid: 1521 + components: + - type: Transform + pos: -21.5,69.5 + parent: 2 + - uid: 1522 + components: + - type: Transform + pos: -24.5,71.5 + parent: 2 + - uid: 1523 + components: + - type: Transform + pos: -22.5,71.5 + parent: 2 + - uid: 1524 + components: + - type: Transform + pos: -23.5,65.5 + parent: 2 + - uid: 1525 + components: + - type: Transform + pos: -23.5,71.5 + parent: 2 + - uid: 1526 + components: + - type: Transform + pos: -23.5,64.5 + parent: 2 + - uid: 1527 + components: + - type: Transform + pos: -23.5,63.5 + parent: 2 + - uid: 1528 + components: + - type: Transform + pos: -23.5,62.5 + parent: 2 + - uid: 1529 + components: + - type: Transform + pos: -23.5,61.5 + parent: 2 + - uid: 1530 + components: + - type: Transform + pos: -23.5,60.5 + parent: 2 + - uid: 1531 + components: + - type: Transform + pos: -22.5,60.5 + parent: 2 + - uid: 1532 + components: + - type: Transform + pos: -21.5,60.5 + parent: 2 + - uid: 1533 + components: + - type: Transform + pos: -24.5,60.5 + parent: 2 + - uid: 1534 + components: + - type: Transform + pos: -25.5,60.5 + parent: 2 + - uid: 1535 + components: + - type: Transform + pos: -24.5,63.5 + parent: 2 + - uid: 1536 + components: + - type: Transform + pos: -25.5,63.5 + parent: 2 + - uid: 1537 + components: + - type: Transform + pos: -22.5,63.5 + parent: 2 + - uid: 1538 + components: + - type: Transform + pos: -17.5,56.5 + parent: 2 + - uid: 1539 + components: + - type: Transform + pos: -17.5,55.5 + parent: 2 + - uid: 1540 + components: + - type: Transform + pos: -17.5,54.5 + parent: 2 + - uid: 1541 + components: + - type: Transform + pos: -17.5,53.5 + parent: 2 + - uid: 1542 + components: + - type: Transform + pos: -17.5,52.5 + parent: 2 + - uid: 1543 + components: + - type: Transform + pos: -17.5,51.5 + parent: 2 + - uid: 1544 + components: + - type: Transform + pos: -18.5,52.5 + parent: 2 + - uid: 1545 + components: + - type: Transform + pos: -19.5,52.5 + parent: 2 + - uid: 1546 + components: + - type: Transform + pos: -18.5,55.5 + parent: 2 + - uid: 1547 + components: + - type: Transform + pos: -19.5,55.5 + parent: 2 + - uid: 1548 + components: + - type: Transform + pos: -20.5,55.5 + parent: 2 + - uid: 1549 + components: + - type: Transform + pos: -21.5,55.5 + parent: 2 + - uid: 1550 + components: + - type: Transform + pos: -22.5,55.5 + parent: 2 + - uid: 1551 + components: + - type: Transform + pos: -23.5,55.5 + parent: 2 + - uid: 1552 + components: + - type: Transform + pos: -24.5,55.5 + parent: 2 + - uid: 1553 + components: + - type: Transform + pos: -23.5,54.5 + parent: 2 + - uid: 1554 + components: + - type: Transform + pos: -23.5,53.5 + parent: 2 + - uid: 1555 + components: + - type: Transform + pos: -23.5,52.5 + parent: 2 + - uid: 1556 + components: + - type: Transform + pos: -23.5,51.5 + parent: 2 + - uid: 1557 + components: + - type: Transform + pos: -25.5,72.5 + parent: 2 + - uid: 1558 + components: + - type: Transform + pos: -25.5,72.5 + parent: 2 + - uid: 1559 + components: + - type: Transform + pos: -25.5,71.5 + parent: 2 + - uid: 1560 + components: + - type: Transform + pos: -25.5,70.5 + parent: 2 + - uid: 1561 + components: + - type: Transform + pos: -25.5,69.5 + parent: 2 + - uid: 1562 + components: + - type: Transform + pos: -25.5,68.5 + parent: 2 + - uid: 1563 + components: + - type: Transform + pos: -25.5,67.5 + parent: 2 + - uid: 1564 + components: + - type: Transform + pos: -25.5,66.5 + parent: 2 + - uid: 1565 + components: + - type: Transform + pos: -24.5,66.5 + parent: 2 + - uid: 1566 + components: + - type: Transform + pos: -23.5,66.5 + parent: 2 + - uid: 1567 + components: + - type: Transform + pos: -22.5,66.5 + parent: 2 + - uid: 1568 + components: + - type: Transform + pos: -21.5,66.5 + parent: 2 + - uid: 1569 + components: + - type: Transform + pos: -17.5,57.5 + parent: 2 + - uid: 1570 + components: + - type: Transform + pos: -17.5,58.5 + parent: 2 + - uid: 1571 + components: + - type: Transform + pos: -16.5,58.5 + parent: 2 + - uid: 1572 + components: + - type: Transform + pos: -15.5,58.5 + parent: 2 + - uid: 1573 + components: + - type: Transform + pos: -14.5,58.5 + parent: 2 + - uid: 1574 + components: + - type: Transform + pos: -13.5,58.5 + parent: 2 + - uid: 1575 + components: + - type: Transform + pos: -10.5,59.5 + parent: 2 + - uid: 1576 + components: + - type: Transform + pos: -11.5,58.5 + parent: 2 + - uid: 1577 + components: + - type: Transform + pos: -11.5,59.5 + parent: 2 + - uid: 1578 + components: + - type: Transform + pos: -11.5,60.5 + parent: 2 + - uid: 1579 + components: + - type: Transform + pos: -11.5,61.5 + parent: 2 + - uid: 1580 + components: + - type: Transform + pos: -11.5,62.5 + parent: 2 + - uid: 1581 + components: + - type: Transform + pos: -11.5,63.5 + parent: 2 + - uid: 1582 + components: + - type: Transform + pos: -11.5,64.5 + parent: 2 + - uid: 1583 + components: + - type: Transform + pos: -9.5,59.5 + parent: 2 + - uid: 1584 + components: + - type: Transform + pos: -8.5,59.5 + parent: 2 + - uid: 1585 + components: + - type: Transform + pos: -7.5,59.5 + parent: 2 + - uid: 1586 + components: + - type: Transform + pos: -10.5,62.5 + parent: 2 + - uid: 1587 + components: + - type: Transform + pos: -9.5,62.5 + parent: 2 + - uid: 1588 + components: + - type: Transform + pos: -10.5,64.5 + parent: 2 + - uid: 1589 + components: + - type: Transform + pos: -9.5,64.5 + parent: 2 + - uid: 1590 + components: + - type: Transform + pos: -11.5,65.5 + parent: 2 + - uid: 1591 + components: + - type: Transform + pos: -11.5,66.5 + parent: 2 + - uid: 1592 + components: + - type: Transform + pos: -11.5,67.5 + parent: 2 + - uid: 1593 + components: + - type: Transform + pos: -11.5,68.5 + parent: 2 + - uid: 1594 + components: + - type: Transform + pos: -12.5,68.5 + parent: 2 + - uid: 1596 + components: + - type: Transform + pos: -10.5,68.5 + parent: 2 + - uid: 1597 + components: + - type: Transform + pos: -9.5,68.5 + parent: 2 + - uid: 1598 + components: + - type: Transform + pos: -10.5,66.5 + parent: 2 + - uid: 1599 + components: + - type: Transform + pos: -9.5,66.5 + parent: 2 + - uid: 1600 + components: + - type: Transform + pos: -9.5,67.5 + parent: 2 + - uid: 1601 + components: + - type: Transform + pos: -3.5,69.5 + parent: 2 + - uid: 1602 + components: + - type: Transform + pos: -3.5,68.5 + parent: 2 + - uid: 1603 + components: + - type: Transform + pos: -3.5,67.5 + parent: 2 + - uid: 1604 + components: + - type: Transform + pos: -3.5,66.5 + parent: 2 + - uid: 1605 + components: + - type: Transform + pos: -3.5,65.5 + parent: 2 + - uid: 1606 + components: + - type: Transform + pos: -3.5,64.5 + parent: 2 + - uid: 1607 + components: + - type: Transform + pos: -3.5,63.5 + parent: 2 + - uid: 1608 + components: + - type: Transform + pos: -4.5,67.5 + parent: 2 + - uid: 1609 + components: + - type: Transform + pos: -5.5,67.5 + parent: 2 + - uid: 1610 + components: + - type: Transform + pos: -6.5,67.5 + parent: 2 + - uid: 1611 + components: + - type: Transform + pos: -6.5,68.5 + parent: 2 + - uid: 1612 + components: + - type: Transform + pos: -6.5,66.5 + parent: 2 + - uid: 1613 + components: + - type: Transform + pos: -7.5,67.5 + parent: 2 + - uid: 1614 + components: + - type: Transform + pos: -6.5,65.5 + parent: 2 + - uid: 1615 + components: + - type: Transform + pos: -6.5,64.5 + parent: 2 + - uid: 1616 + components: + - type: Transform + pos: -6.5,63.5 + parent: 2 + - uid: 1617 + components: + - type: Transform + pos: -5.5,63.5 + parent: 2 + - uid: 1618 + components: + - type: Transform + pos: -4.5,63.5 + parent: 2 + - uid: 1619 + components: + - type: Transform + pos: -2.5,63.5 + parent: 2 + - uid: 1620 + components: + - type: Transform + pos: -1.5,63.5 + parent: 2 + - uid: 1621 + components: + - type: Transform + pos: -0.5,63.5 + parent: 2 + - uid: 1622 + components: + - type: Transform + pos: 0.5,63.5 + parent: 2 + - uid: 1623 + components: + - type: Transform + pos: 1.5,63.5 + parent: 2 + - uid: 1624 + components: + - type: Transform + pos: 29.5,2.5 + parent: 2 + - uid: 1625 + components: + - type: Transform + pos: 29.5,1.5 + parent: 2 + - uid: 1626 + components: + - type: Transform + pos: 29.5,0.5 + parent: 2 + - uid: 1627 + components: + - type: Transform + pos: 29.5,-0.5 + parent: 2 + - uid: 1628 + components: + - type: Transform + pos: 30.5,0.5 + parent: 2 + - uid: 1629 + components: + - type: Transform + pos: 31.5,0.5 + parent: 2 + - uid: 1630 + components: + - type: Transform + pos: 28.5,-0.5 + parent: 2 + - uid: 1631 + components: + - type: Transform + pos: 27.5,-0.5 + parent: 2 + - uid: 1632 + components: + - type: Transform + pos: 28.5,1.5 + parent: 2 + - uid: 1633 + components: + - type: Transform + pos: 28.5,2.5 + parent: 2 + - uid: 1634 + components: + - type: Transform + pos: 28.5,3.5 + parent: 2 + - uid: 1635 + components: + - type: Transform + pos: 26.5,-0.5 + parent: 2 + - uid: 1636 + components: + - type: Transform + pos: 25.5,-0.5 + parent: 2 + - uid: 1637 + components: + - type: Transform + pos: 24.5,-0.5 + parent: 2 + - uid: 1638 + components: + - type: Transform + pos: 24.5,0.5 + parent: 2 + - uid: 1639 + components: + - type: Transform + pos: 24.5,1.5 + parent: 2 + - uid: 1640 + components: + - type: Transform + pos: 34.5,8.5 + parent: 2 + - uid: 1641 + components: + - type: Transform + pos: 35.5,8.5 + parent: 2 + - uid: 1642 + components: + - type: Transform + pos: 36.5,8.5 + parent: 2 + - uid: 1643 + components: + - type: Transform + pos: 37.5,8.5 + parent: 2 + - uid: 1644 + components: + - type: Transform + pos: 38.5,8.5 + parent: 2 + - uid: 1645 + components: + - type: Transform + pos: 39.5,8.5 + parent: 2 + - uid: 1646 + components: + - type: Transform + pos: 37.5,9.5 + parent: 2 + - uid: 1647 + components: + - type: Transform + pos: 37.5,10.5 + parent: 2 + - uid: 1648 + components: + - type: Transform + pos: 36.5,10.5 + parent: 2 + - uid: 1649 + components: + - type: Transform + pos: 35.5,10.5 + parent: 2 + - uid: 1650 + components: + - type: Transform + pos: 34.5,10.5 + parent: 2 + - uid: 1651 + components: + - type: Transform + pos: 33.5,10.5 + parent: 2 + - uid: 1652 + components: + - type: Transform + pos: 32.5,10.5 + parent: 2 + - uid: 1653 + components: + - type: Transform + pos: 31.5,10.5 + parent: 2 + - uid: 1654 + components: + - type: Transform + pos: 38.5,10.5 + parent: 2 + - uid: 1655 + components: + - type: Transform + pos: 39.5,10.5 + parent: 2 + - uid: 1656 + components: + - type: Transform + pos: 40.5,10.5 + parent: 2 + - uid: 1657 + components: + - type: Transform + pos: 39.5,11.5 + parent: 2 + - uid: 1658 + components: + - type: Transform + pos: 39.5,12.5 + parent: 2 + - uid: 1659 + components: + - type: Transform + pos: 39.5,13.5 + parent: 2 + - uid: 1660 + components: + - type: Transform + pos: 39.5,9.5 + parent: 2 + - uid: 1661 + components: + - type: Transform + pos: 39.5,7.5 + parent: 2 + - uid: 1662 + components: + - type: Transform + pos: 39.5,6.5 + parent: 2 + - uid: 1663 + components: + - type: Transform + pos: 40.5,7.5 + parent: 2 + - uid: 1664 + components: + - type: Transform + pos: 35.5,7.5 + parent: 2 + - uid: 1665 + components: + - type: Transform + pos: 35.5,6.5 + parent: 2 + - uid: 1666 + components: + - type: Transform + pos: 35.5,5.5 + parent: 2 + - uid: 1667 + components: + - type: Transform + pos: 35.5,4.5 + parent: 2 + - uid: 1668 + components: + - type: Transform + pos: 35.5,3.5 + parent: 2 + - uid: 1669 + components: + - type: Transform + pos: 34.5,4.5 + parent: 2 + - uid: 1670 + components: + - type: Transform + pos: 33.5,4.5 + parent: 2 + - uid: 1671 + components: + - type: Transform + pos: 32.5,4.5 + parent: 2 + - uid: 1672 + components: + - type: Transform + pos: 31.5,4.5 + parent: 2 + - uid: 1673 + components: + - type: Transform + pos: 35.5,2.5 + parent: 2 + - uid: 1674 + components: + - type: Transform + pos: 35.5,1.5 + parent: 2 + - uid: 1675 + components: + - type: Transform + pos: 35.5,0.5 + parent: 2 + - uid: 1676 + components: + - type: Transform + pos: 35.5,-0.5 + parent: 2 + - uid: 1677 + components: + - type: Transform + pos: 35.5,-1.5 + parent: 2 + - uid: 1678 + components: + - type: Transform + pos: 34.5,0.5 + parent: 2 + - uid: 1679 + components: + - type: Transform + pos: 36.5,-1.5 + parent: 2 + - uid: 1680 + components: + - type: Transform + pos: 32.5,15.5 + parent: 2 + - uid: 1681 + components: + - type: Transform + pos: 33.5,15.5 + parent: 2 + - uid: 1682 + components: + - type: Transform + pos: 34.5,15.5 + parent: 2 + - uid: 1683 + components: + - type: Transform + pos: 35.5,15.5 + parent: 2 + - uid: 1684 + components: + - type: Transform + pos: 36.5,15.5 + parent: 2 + - uid: 1685 + components: + - type: Transform + pos: 37.5,15.5 + parent: 2 + - uid: 1686 + components: + - type: Transform + pos: 34.5,14.5 + parent: 2 + - uid: 1687 + components: + - type: Transform + pos: 34.5,13.5 + parent: 2 + - uid: 1688 + components: + - type: Transform + pos: 34.5,16.5 + parent: 2 + - uid: 1689 + components: + - type: Transform + pos: 36.5,14.5 + parent: 2 + - uid: 1690 + components: + - type: Transform + pos: 32.5,14.5 + parent: 2 + - uid: 1691 + components: + - type: Transform + pos: 36.5,16.5 + parent: 2 + - uid: 1692 + components: + - type: Transform + pos: 44.5,11.5 + parent: 2 + - uid: 1693 + components: + - type: Transform + pos: 44.5,12.5 + parent: 2 + - uid: 1694 + components: + - type: Transform + pos: 44.5,13.5 + parent: 2 + - uid: 1695 + components: + - type: Transform + pos: 44.5,14.5 + parent: 2 + - uid: 1696 + components: + - type: Transform + pos: 43.5,13.5 + parent: 2 + - uid: 1697 + components: + - type: Transform + pos: 45.5,13.5 + parent: 2 + - uid: 1698 + components: + - type: Transform + pos: 46.5,13.5 + parent: 2 + - uid: 1699 + components: + - type: Transform + pos: 42.5,22.5 + parent: 2 + - uid: 1700 + components: + - type: Transform + pos: 42.5,21.5 + parent: 2 + - uid: 1701 + components: + - type: Transform + pos: 42.5,20.5 + parent: 2 + - uid: 1702 + components: + - type: Transform + pos: 42.5,19.5 + parent: 2 + - uid: 1703 + components: + - type: Transform + pos: 41.5,20.5 + parent: 2 + - uid: 1704 + components: + - type: Transform + pos: 43.5,20.5 + parent: 2 + - uid: 1705 + components: + - type: Transform + pos: 43.5,18.5 + parent: 2 + - uid: 1706 + components: + - type: Transform + pos: 43.5,17.5 + parent: 2 + - uid: 1707 + components: + - type: Transform + pos: 43.5,16.5 + parent: 2 + - uid: 1708 + components: + - type: Transform + pos: 42.5,16.5 + parent: 2 + - uid: 1709 + components: + - type: Transform + pos: 41.5,16.5 + parent: 2 + - uid: 1710 + components: + - type: Transform + pos: 40.5,16.5 + parent: 2 + - uid: 1711 + components: + - type: Transform + pos: 39.5,16.5 + parent: 2 + - uid: 1712 + components: + - type: Transform + pos: 44.5,16.5 + parent: 2 + - uid: 1713 + components: + - type: Transform + pos: 46.5,16.5 + parent: 2 + - uid: 1714 + components: + - type: Transform + pos: 45.5,16.5 + parent: 2 + - uid: 1715 + components: + - type: Transform + pos: 46.5,17.5 + parent: 2 + - uid: 1716 + components: + - type: Transform + pos: 47.5,17.5 + parent: 2 + - uid: 1717 + components: + - type: Transform + pos: 48.5,17.5 + parent: 2 + - uid: 1718 + components: + - type: Transform + pos: 49.5,17.5 + parent: 2 + - uid: 1719 + components: + - type: Transform + pos: 48.5,16.5 + parent: 2 + - uid: 1720 + components: + - type: Transform + pos: 48.5,15.5 + parent: 2 + - uid: 1721 + components: + - type: Transform + pos: 48.5,14.5 + parent: 2 + - uid: 1722 + components: + - type: Transform + pos: 48.5,13.5 + parent: 2 + - uid: 1723 + components: + - type: Transform + pos: 48.5,18.5 + parent: 2 + - uid: 1724 + components: + - type: Transform + pos: 54.5,5.5 + parent: 2 + - uid: 1725 + components: + - type: Transform + pos: 54.5,4.5 + parent: 2 + - uid: 1726 + components: + - type: Transform + pos: 53.5,4.5 + parent: 2 + - uid: 1727 + components: + - type: Transform + pos: 52.5,4.5 + parent: 2 + - uid: 1728 + components: + - type: Transform + pos: 51.5,4.5 + parent: 2 + - uid: 1729 + components: + - type: Transform + pos: 51.5,3.5 + parent: 2 + - uid: 1730 + components: + - type: Transform + pos: 51.5,2.5 + parent: 2 + - uid: 1731 + components: + - type: Transform + pos: 51.5,1.5 + parent: 2 + - uid: 1732 + components: + - type: Transform + pos: 51.5,0.5 + parent: 2 + - uid: 1733 + components: + - type: Transform + pos: 51.5,-0.5 + parent: 2 + - uid: 1734 + components: + - type: Transform + pos: 51.5,-1.5 + parent: 2 + - uid: 1735 + components: + - type: Transform + pos: 51.5,-2.5 + parent: 2 + - uid: 1736 + components: + - type: Transform + pos: 51.5,-3.5 + parent: 2 + - uid: 1737 + components: + - type: Transform + pos: 51.5,-4.5 + parent: 2 + - uid: 1738 + components: + - type: Transform + pos: 51.5,-5.5 + parent: 2 + - uid: 1739 + components: + - type: Transform + pos: 51.5,-6.5 + parent: 2 + - uid: 1740 + components: + - type: Transform + pos: 51.5,-7.5 + parent: 2 + - uid: 1741 + components: + - type: Transform + pos: 51.5,-8.5 + parent: 2 + - uid: 1742 + components: + - type: Transform + pos: 52.5,-7.5 + parent: 2 + - uid: 1743 + components: + - type: Transform + pos: 50.5,-7.5 + parent: 2 + - uid: 1744 + components: + - type: Transform + pos: 50.5,-3.5 + parent: 2 + - uid: 1745 + components: + - type: Transform + pos: 49.5,-3.5 + parent: 2 + - uid: 1746 + components: + - type: Transform + pos: 48.5,-3.5 + parent: 2 + - uid: 1747 + components: + - type: Transform + pos: 47.5,-3.5 + parent: 2 + - uid: 1748 + components: + - type: Transform + pos: 46.5,-3.5 + parent: 2 + - uid: 1749 + components: + - type: Transform + pos: 52.5,-3.5 + parent: 2 + - uid: 1750 + components: + - type: Transform + pos: 53.5,-3.5 + parent: 2 + - uid: 1751 + components: + - type: Transform + pos: 54.5,-3.5 + parent: 2 + - uid: 1752 + components: + - type: Transform + pos: 55.5,-3.5 + parent: 2 + - uid: 1753 + components: + - type: Transform + pos: 56.5,-3.5 + parent: 2 + - uid: 1754 + components: + - type: Transform + pos: 52.5,-0.5 + parent: 2 + - uid: 1755 + components: + - type: Transform + pos: 53.5,-0.5 + parent: 2 + - uid: 1756 + components: + - type: Transform + pos: 54.5,-0.5 + parent: 2 + - uid: 1757 + components: + - type: Transform + pos: 55.5,-0.5 + parent: 2 + - uid: 1758 + components: + - type: Transform + pos: 56.5,-0.5 + parent: 2 + - uid: 1759 + components: + - type: Transform + pos: 52.5,2.5 + parent: 2 + - uid: 1760 + components: + - type: Transform + pos: 53.5,2.5 + parent: 2 + - uid: 1761 + components: + - type: Transform + pos: 54.5,2.5 + parent: 2 + - uid: 1762 + components: + - type: Transform + pos: 55.5,2.5 + parent: 2 + - uid: 1763 + components: + - type: Transform + pos: 56.5,2.5 + parent: 2 + - uid: 1764 + components: + - type: Transform + pos: 50.5,2.5 + parent: 2 + - uid: 1765 + components: + - type: Transform + pos: 49.5,2.5 + parent: 2 + - uid: 1766 + components: + - type: Transform + pos: 48.5,2.5 + parent: 2 + - uid: 1767 + components: + - type: Transform + pos: 47.5,2.5 + parent: 2 + - uid: 1768 + components: + - type: Transform + pos: 46.5,2.5 + parent: 2 + - uid: 1769 + components: + - type: Transform + pos: 50.5,-0.5 + parent: 2 + - uid: 1770 + components: + - type: Transform + pos: 49.5,-0.5 + parent: 2 + - uid: 1771 + components: + - type: Transform + pos: 48.5,-0.5 + parent: 2 + - uid: 1772 + components: + - type: Transform + pos: 47.5,-0.5 + parent: 2 + - uid: 1773 + components: + - type: Transform + pos: 46.5,-0.5 + parent: 2 + - uid: 1774 + components: + - type: Transform + pos: 50.5,4.5 + parent: 2 + - uid: 1775 + components: + - type: Transform + pos: 49.5,4.5 + parent: 2 + - uid: 1776 + components: + - type: Transform + pos: 48.5,4.5 + parent: 2 + - uid: 1777 + components: + - type: Transform + pos: 47.5,4.5 + parent: 2 + - uid: 1778 + components: + - type: Transform + pos: 46.5,4.5 + parent: 2 + - uid: 1779 + components: + - type: Transform + pos: 55.5,4.5 + parent: 2 + - uid: 1780 + components: + - type: Transform + pos: 56.5,4.5 + parent: 2 + - uid: 1781 + components: + - type: Transform + pos: 57.5,4.5 + parent: 2 + - uid: 1782 + components: + - type: Transform + pos: 45.5,4.5 + parent: 2 + - uid: 1783 + components: + - type: Transform + pos: 50.5,5.5 + parent: 2 + - uid: 1784 + components: + - type: Transform + pos: 50.5,6.5 + parent: 2 + - uid: 1785 + components: + - type: Transform + pos: 51.5,6.5 + parent: 2 + - uid: 1786 + components: + - type: Transform + pos: 52.5,6.5 + parent: 2 + - uid: 1787 + components: + - type: Transform + pos: 53.5,6.5 + parent: 2 + - uid: 1788 + components: + - type: Transform + pos: 54.5,6.5 + parent: 2 + - uid: 1789 + components: + - type: Transform + pos: 49.5,6.5 + parent: 2 + - uid: 1790 + components: + - type: Transform + pos: 48.5,6.5 + parent: 2 + - uid: 1791 + components: + - type: Transform + pos: 47.5,6.5 + parent: 2 + - uid: 1792 + components: + - type: Transform + pos: 49.5,7.5 + parent: 2 + - uid: 1793 + components: + - type: Transform + pos: 49.5,8.5 + parent: 2 + - uid: 1794 + components: + - type: Transform + pos: 49.5,9.5 + parent: 2 + - uid: 1795 + components: + - type: Transform + pos: 49.5,10.5 + parent: 2 + - uid: 1796 + components: + - type: Transform + pos: 49.5,11.5 + parent: 2 + - uid: 1797 + components: + - type: Transform + pos: 50.5,10.5 + parent: 2 + - uid: 1798 + components: + - type: Transform + pos: 48.5,10.5 + parent: 2 + - uid: 1799 + components: + - type: Transform + pos: -41.5,25.5 + parent: 2 + - uid: 1800 + components: + - type: Transform + pos: -41.5,25.5 + parent: 2 + - uid: 1801 + components: + - type: Transform + pos: -36.5,30.5 + parent: 2 + - uid: 1802 + components: + - type: Transform + pos: -37.5,30.5 + parent: 2 + - uid: 1803 + components: + - type: Transform + pos: -38.5,30.5 + parent: 2 + - uid: 1804 + components: + - type: Transform + pos: 68.5,62.5 + parent: 2 + - uid: 1805 + components: + - type: Transform + pos: 65.5,62.5 + parent: 2 + - uid: 1806 + components: + - type: Transform + pos: 70.5,59.5 + parent: 2 + - uid: 1807 + components: + - type: Transform + pos: 70.5,57.5 + parent: 2 + - uid: 1808 + components: + - type: Transform + pos: 70.5,55.5 + parent: 2 + - uid: 1809 + components: + - type: Transform + pos: 70.5,56.5 + parent: 2 + - uid: 1810 + components: + - type: Transform + pos: -41.5,24.5 + parent: 2 + - uid: 1811 + components: + - type: Transform + pos: -39.5,30.5 + parent: 2 + - uid: 1813 + components: + - type: Transform + pos: -35.5,69.5 + parent: 2 + - uid: 1814 + components: + - type: Transform + pos: -33.5,69.5 + parent: 2 + - uid: 1815 + components: + - type: Transform + pos: -31.5,69.5 + parent: 2 + - uid: 1816 + components: + - type: Transform + pos: -32.5,69.5 + parent: 2 + - uid: 1817 + components: + - type: Transform + pos: -30.5,69.5 + parent: 2 + - uid: 1818 + components: + - type: Transform + pos: -27.5,69.5 + parent: 2 + - uid: 1820 + components: + - type: Transform + pos: -29.5,69.5 + parent: 2 + - uid: 1821 + components: + - type: Transform + pos: -28.5,69.5 + parent: 2 + - uid: 1824 + components: + - type: Transform + pos: -28.5,22.5 + parent: 2 + - uid: 1825 + components: + - type: Transform + pos: -26.5,22.5 + parent: 2 + - uid: 1826 + components: + - type: Transform + pos: -27.5,22.5 + parent: 2 + - uid: 1828 + components: + - type: Transform + pos: 35.5,51.5 + parent: 2 + - uid: 1829 + components: + - type: Transform + pos: 35.5,53.5 + parent: 2 + - uid: 1830 + components: + - type: Transform + pos: 35.5,52.5 + parent: 2 + - uid: 1831 + components: + - type: Transform + pos: 34.5,54.5 + parent: 2 + - uid: 1832 + components: + - type: Transform + pos: 34.5,55.5 + parent: 2 + - uid: 1833 + components: + - type: Transform + pos: -26.5,21.5 + parent: 2 + - uid: 1834 + components: + - type: Transform + pos: -0.5,47.5 + parent: 2 + - uid: 1835 + components: + - type: Transform + pos: -9.5,50.5 + parent: 2 + - uid: 1836 + components: + - type: Transform + pos: -7.5,50.5 + parent: 2 + - uid: 1837 + components: + - type: Transform + pos: -5.5,50.5 + parent: 2 + - uid: 1838 + components: + - type: Transform + pos: -8.5,51.5 + parent: 2 + - uid: 1839 + components: + - type: Transform + pos: 37.5,44.5 + parent: 2 + - uid: 1840 + components: + - type: Transform + pos: 50.5,13.5 + parent: 2 + - uid: 1841 + components: + - type: Transform + pos: 51.5,13.5 + parent: 2 + - uid: 1842 + components: + - type: Transform + pos: 52.5,13.5 + parent: 2 + - uid: 1843 + components: + - type: Transform + pos: 53.5,13.5 + parent: 2 + - uid: 1844 + components: + - type: Transform + pos: 52.5,14.5 + parent: 2 + - uid: 1845 + components: + - type: Transform + pos: 52.5,15.5 + parent: 2 + - uid: 1846 + components: + - type: Transform + pos: 52.5,16.5 + parent: 2 + - uid: 1847 + components: + - type: Transform + pos: 52.5,17.5 + parent: 2 + - uid: 1848 + components: + - type: Transform + pos: 52.5,18.5 + parent: 2 + - uid: 1849 + components: + - type: Transform + pos: 51.5,17.5 + parent: 2 + - uid: 1850 + components: + - type: Transform + pos: 53.5,17.5 + parent: 2 + - uid: 1851 + components: + - type: Transform + pos: 54.5,18.5 + parent: 2 + - uid: 1852 + components: + - type: Transform + pos: 55.5,18.5 + parent: 2 + - uid: 1853 + components: + - type: Transform + pos: 56.5,18.5 + parent: 2 + - uid: 1854 + components: + - type: Transform + pos: 57.5,18.5 + parent: 2 + - uid: 1855 + components: + - type: Transform + pos: 58.5,18.5 + parent: 2 + - uid: 1856 + components: + - type: Transform + pos: 59.5,18.5 + parent: 2 + - uid: 1857 + components: + - type: Transform + pos: 57.5,17.5 + parent: 2 + - uid: 1858 + components: + - type: Transform + pos: 57.5,16.5 + parent: 2 + - uid: 1859 + components: + - type: Transform + pos: 57.5,15.5 + parent: 2 + - uid: 1860 + components: + - type: Transform + pos: 56.5,16.5 + parent: 2 + - uid: 1861 + components: + - type: Transform + pos: 58.5,16.5 + parent: 2 + - uid: 1862 + components: + - type: Transform + pos: 57.5,19.5 + parent: 2 + - uid: 1863 + components: + - type: Transform + pos: 57.5,20.5 + parent: 2 + - uid: 1864 + components: + - type: Transform + pos: 57.5,21.5 + parent: 2 + - uid: 1865 + components: + - type: Transform + pos: 57.5,22.5 + parent: 2 + - uid: 1866 + components: + - type: Transform + pos: 58.5,21.5 + parent: 2 + - uid: 1867 + components: + - type: Transform + pos: 59.5,21.5 + parent: 2 + - uid: 1868 + components: + - type: Transform + pos: 60.5,21.5 + parent: 2 + - uid: 1869 + components: + - type: Transform + pos: 56.5,21.5 + parent: 2 + - uid: 1870 + components: + - type: Transform + pos: 55.5,21.5 + parent: 2 + - uid: 1871 + components: + - type: Transform + pos: 26.5,18.5 + parent: 2 + - uid: 1872 + components: + - type: Transform + pos: 25.5,18.5 + parent: 2 + - uid: 1873 + components: + - type: Transform + pos: 24.5,18.5 + parent: 2 + - uid: 1874 + components: + - type: Transform + pos: 24.5,17.5 + parent: 2 + - uid: 1875 + components: + - type: Transform + pos: 24.5,16.5 + parent: 2 + - uid: 1876 + components: + - type: Transform + pos: 23.5,17.5 + parent: 2 + - uid: 1877 + components: + - type: Transform + pos: 22.5,17.5 + parent: 2 + - uid: 1878 + components: + - type: Transform + pos: 21.5,17.5 + parent: 2 + - uid: 1879 + components: + - type: Transform + pos: 20.5,17.5 + parent: 2 + - uid: 1880 + components: + - type: Transform + pos: 19.5,17.5 + parent: 2 + - uid: 1881 + components: + - type: Transform + pos: 25.5,17.5 + parent: 2 + - uid: 1882 + components: + - type: Transform + pos: 26.5,17.5 + parent: 2 + - uid: 1883 + components: + - type: Transform + pos: 27.5,17.5 + parent: 2 + - uid: 1884 + components: + - type: Transform + pos: 28.5,17.5 + parent: 2 + - uid: 1885 + components: + - type: Transform + pos: 29.5,17.5 + parent: 2 + - uid: 1886 + components: + - type: Transform + pos: 30.5,17.5 + parent: 2 + - uid: 1887 + components: + - type: Transform + pos: 24.5,15.5 + parent: 2 + - uid: 1888 + components: + - type: Transform + pos: 24.5,14.5 + parent: 2 + - uid: 1889 + components: + - type: Transform + pos: 24.5,13.5 + parent: 2 + - uid: 1890 + components: + - type: Transform + pos: 24.5,12.5 + parent: 2 + - uid: 1891 + components: + - type: Transform + pos: 24.5,11.5 + parent: 2 + - uid: 1892 + components: + - type: Transform + pos: 24.5,10.5 + parent: 2 + - uid: 1893 + components: + - type: Transform + pos: 24.5,9.5 + parent: 2 + - uid: 1894 + components: + - type: Transform + pos: 23.5,10.5 + parent: 2 + - uid: 1895 + components: + - type: Transform + pos: 22.5,10.5 + parent: 2 + - uid: 1896 + components: + - type: Transform + pos: 21.5,10.5 + parent: 2 + - uid: 1897 + components: + - type: Transform + pos: 21.5,9.5 + parent: 2 + - uid: 1898 + components: + - type: Transform + pos: 21.5,11.5 + parent: 2 + - uid: 1899 + components: + - type: Transform + pos: 23.5,13.5 + parent: 2 + - uid: 1900 + components: + - type: Transform + pos: 25.5,13.5 + parent: 2 + - uid: 1901 + components: + - type: Transform + pos: 25.5,14.5 + parent: 2 + - uid: 1902 + components: + - type: Transform + pos: 26.5,14.5 + parent: 2 + - uid: 1903 + components: + - type: Transform + pos: 27.5,14.5 + parent: 2 + - uid: 1904 + components: + - type: Transform + pos: 29.5,14.5 + parent: 2 + - uid: 1905 + components: + - type: Transform + pos: 28.5,14.5 + parent: 2 + - uid: 1906 + components: + - type: Transform + pos: 30.5,14.5 + parent: 2 + - uid: 1907 + components: + - type: Transform + pos: 23.5,15.5 + parent: 2 + - uid: 1908 + components: + - type: Transform + pos: 22.5,15.5 + parent: 2 + - uid: 1909 + components: + - type: Transform + pos: 21.5,15.5 + parent: 2 + - uid: 1910 + components: + - type: Transform + pos: 20.5,15.5 + parent: 2 + - uid: 1911 + components: + - type: Transform + pos: 19.5,15.5 + parent: 2 + - uid: 1912 + components: + - type: Transform + pos: 18.5,15.5 + parent: 2 + - uid: 1913 + components: + - type: Transform + pos: 17.5,15.5 + parent: 2 + - uid: 1914 + components: + - type: Transform + pos: -31.5,54.5 + parent: 2 + - uid: 1915 + components: + - type: Transform + pos: -31.5,53.5 + parent: 2 + - uid: 1916 + components: + - type: Transform + pos: -31.5,52.5 + parent: 2 + - uid: 1917 + components: + - type: Transform + pos: -31.5,51.5 + parent: 2 + - uid: 1918 + components: + - type: Transform + pos: -32.5,52.5 + parent: 2 + - uid: 1919 + components: + - type: Transform + pos: -30.5,52.5 + parent: 2 + - uid: 1920 + components: + - type: Transform + pos: -29.5,52.5 + parent: 2 + - uid: 1921 + components: + - type: Transform + pos: -28.5,52.5 + parent: 2 + - uid: 1922 + components: + - type: Transform + pos: -27.5,52.5 + parent: 2 + - uid: 1923 + components: + - type: Transform + pos: -27.5,51.5 + parent: 2 + - uid: 1924 + components: + - type: Transform + pos: -27.5,53.5 + parent: 2 + - uid: 1925 + components: + - type: Transform + pos: -27.5,54.5 + parent: 2 + - uid: 1926 + components: + - type: Transform + pos: -27.5,55.5 + parent: 2 + - uid: 1927 + components: + - type: Transform + pos: -28.5,54.5 + parent: 2 + - uid: 1928 + components: + - type: Transform + pos: -26.5,54.5 + parent: 2 + - uid: 1929 + components: + - type: Transform + pos: -30.5,59.5 + parent: 2 + - uid: 1930 + components: + - type: Transform + pos: -30.5,58.5 + parent: 2 + - uid: 1931 + components: + - type: Transform + pos: -30.5,57.5 + parent: 2 + - uid: 1932 + components: + - type: Transform + pos: -31.5,57.5 + parent: 2 + - uid: 1933 + components: + - type: Transform + pos: -32.5,57.5 + parent: 2 + - uid: 1934 + components: + - type: Transform + pos: -33.5,57.5 + parent: 2 + - uid: 1935 + components: + - type: Transform + pos: -34.5,57.5 + parent: 2 + - uid: 1936 + components: + - type: Transform + pos: -35.5,57.5 + parent: 2 + - uid: 1937 + components: + - type: Transform + pos: -32.5,56.5 + parent: 2 + - uid: 1938 + components: + - type: Transform + pos: -32.5,55.5 + parent: 2 + - uid: 1939 + components: + - type: Transform + pos: -36.5,57.5 + parent: 2 + - uid: 1940 + components: + - type: Transform + pos: -37.5,57.5 + parent: 2 + - uid: 1941 + components: + - type: Transform + pos: -38.5,57.5 + parent: 2 + - uid: 1942 + components: + - type: Transform + pos: -37.5,56.5 + parent: 2 + - uid: 1943 + components: + - type: Transform + pos: -37.5,55.5 + parent: 2 + - uid: 1944 + components: + - type: Transform + pos: -37.5,54.5 + parent: 2 + - uid: 1945 + components: + - type: Transform + pos: -37.5,53.5 + parent: 2 + - uid: 1946 + components: + - type: Transform + pos: -32.5,58.5 + parent: 2 + - uid: 1947 + components: + - type: Transform + pos: -32.5,59.5 + parent: 2 + - uid: 1948 + components: + - type: Transform + pos: -32.5,60.5 + parent: 2 + - uid: 1949 + components: + - type: Transform + pos: -32.5,61.5 + parent: 2 + - uid: 1950 + components: + - type: Transform + pos: -32.5,62.5 + parent: 2 + - uid: 1951 + components: + - type: Transform + pos: -32.5,63.5 + parent: 2 + - uid: 1952 + components: + - type: Transform + pos: -29.5,57.5 + parent: 2 + - uid: 1953 + components: + - type: Transform + pos: -28.5,57.5 + parent: 2 + - uid: 1954 + components: + - type: Transform + pos: -27.5,57.5 + parent: 2 + - uid: 1955 + components: + - type: Transform + pos: -26.5,57.5 + parent: 2 + - uid: 1956 + components: + - type: Transform + pos: -28.5,58.5 + parent: 2 + - uid: 1957 + components: + - type: Transform + pos: -28.5,59.5 + parent: 2 + - uid: 1958 + components: + - type: Transform + pos: -28.5,60.5 + parent: 2 + - uid: 1959 + components: + - type: Transform + pos: -28.5,61.5 + parent: 2 + - uid: 1960 + components: + - type: Transform + pos: -28.5,62.5 + parent: 2 + - uid: 1961 + components: + - type: Transform + pos: -28.5,63.5 + parent: 2 + - uid: 1962 + components: + - type: Transform + pos: -29.5,63.5 + parent: 2 + - uid: 1963 + components: + - type: Transform + pos: -30.5,63.5 + parent: 2 + - uid: 1964 + components: + - type: Transform + pos: -31.5,63.5 + parent: 2 + - uid: 1965 + components: + - type: Transform + pos: -33.5,63.5 + parent: 2 + - uid: 1966 + components: + - type: Transform + pos: -34.5,63.5 + parent: 2 + - uid: 1967 + components: + - type: Transform + pos: -35.5,63.5 + parent: 2 + - uid: 1968 + components: + - type: Transform + pos: -35.5,61.5 + parent: 2 + - uid: 1969 + components: + - type: Transform + pos: -35.5,62.5 + parent: 2 + - uid: 1970 + components: + - type: Transform + pos: -30.5,64.5 + parent: 2 + - uid: 1971 + components: + - type: Transform + pos: -30.5,65.5 + parent: 2 + - uid: 1972 + components: + - type: Transform + pos: -30.5,66.5 + parent: 2 + - uid: 1973 + components: + - type: Transform + pos: -30.5,67.5 + parent: 2 + - uid: 1974 + components: + - type: Transform + pos: -30.5,68.5 + parent: 2 + - uid: 1975 + components: + - type: Transform + pos: -31.5,66.5 + parent: 2 + - uid: 1976 + components: + - type: Transform + pos: -32.5,66.5 + parent: 2 + - uid: 1977 + components: + - type: Transform + pos: -33.5,66.5 + parent: 2 + - uid: 1978 + components: + - type: Transform + pos: -34.5,66.5 + parent: 2 + - uid: 1979 + components: + - type: Transform + pos: -29.5,66.5 + parent: 2 + - uid: 1980 + components: + - type: Transform + pos: -28.5,66.5 + parent: 2 + - uid: 1981 + components: + - type: Transform + pos: -27.5,66.5 + parent: 2 + - uid: 1982 + components: + - type: Transform + pos: -8.5,57.5 + parent: 2 + - uid: 1983 + components: + - type: Transform + pos: -8.5,56.5 + parent: 2 + - uid: 1984 + components: + - type: Transform + pos: -8.5,55.5 + parent: 2 + - uid: 1985 + components: + - type: Transform + pos: -8.5,54.5 + parent: 2 + - uid: 1986 + components: + - type: Transform + pos: -9.5,55.5 + parent: 2 + - uid: 1987 + components: + - type: Transform + pos: -10.5,55.5 + parent: 2 + - uid: 1988 + components: + - type: Transform + pos: -11.5,55.5 + parent: 2 + - uid: 1989 + components: + - type: Transform + pos: -12.5,55.5 + parent: 2 + - uid: 1990 + components: + - type: Transform + pos: -13.5,55.5 + parent: 2 + - uid: 1991 + components: + - type: Transform + pos: -14.5,55.5 + parent: 2 + - uid: 1992 + components: + - type: Transform + pos: -15.5,55.5 + parent: 2 + - uid: 1993 + components: + - type: Transform + pos: -15.5,54.5 + parent: 2 + - uid: 1994 + components: + - type: Transform + pos: -15.5,53.5 + parent: 2 + - uid: 1995 + components: + - type: Transform + pos: -15.5,52.5 + parent: 2 + - uid: 1996 + components: + - type: Transform + pos: -15.5,51.5 + parent: 2 + - uid: 1997 + components: + - type: Transform + pos: -12.5,54.5 + parent: 2 + - uid: 1998 + components: + - type: Transform + pos: -12.5,53.5 + parent: 2 + - uid: 1999 + components: + - type: Transform + pos: -12.5,52.5 + parent: 2 + - uid: 2000 + components: + - type: Transform + pos: -12.5,51.5 + parent: 2 + - uid: 2001 + components: + - type: Transform + pos: -14.5,56.5 + parent: 2 + - uid: 2002 + components: + - type: Transform + pos: -7.5,55.5 + parent: 2 + - uid: 2003 + components: + - type: Transform + pos: -6.5,55.5 + parent: 2 + - uid: 2004 + components: + - type: Transform + pos: -5.5,55.5 + parent: 2 + - uid: 2005 + components: + - type: Transform + pos: -4.5,55.5 + parent: 2 + - uid: 2006 + components: + - type: Transform + pos: -3.5,55.5 + parent: 2 + - uid: 2007 + components: + - type: Transform + pos: -2.5,55.5 + parent: 2 + - uid: 2008 + components: + - type: Transform + pos: -1.5,55.5 + parent: 2 + - uid: 2009 + components: + - type: Transform + pos: -0.5,55.5 + parent: 2 + - uid: 2010 + components: + - type: Transform + pos: 0.5,55.5 + parent: 2 + - uid: 2011 + components: + - type: Transform + pos: -8.5,53.5 + parent: 2 + - uid: 2012 + components: + - type: Transform + pos: -8.5,52.5 + parent: 2 + - uid: 2013 + components: + - type: Transform + pos: -4.5,53.5 + parent: 2 + - uid: 2014 + components: + - type: Transform + pos: -4.5,52.5 + parent: 2 + - uid: 2015 + components: + - type: Transform + pos: -4.5,54.5 + parent: 2 + - uid: 2016 + components: + - type: Transform + pos: -0.5,54.5 + parent: 2 + - uid: 2017 + components: + - type: Transform + pos: -0.5,53.5 + parent: 2 + - uid: 2018 + components: + - type: Transform + pos: -0.5,52.5 + parent: 2 + - uid: 2019 + components: + - type: Transform + pos: -4.5,56.5 + parent: 2 + - uid: 2020 + components: + - type: Transform + pos: -4.5,57.5 + parent: 2 + - uid: 2021 + components: + - type: Transform + pos: -4.5,58.5 + parent: 2 + - uid: 2022 + components: + - type: Transform + pos: -4.5,59.5 + parent: 2 + - uid: 2023 + components: + - type: Transform + pos: -2.5,59.5 + parent: 2 + - uid: 2024 + components: + - type: Transform + pos: -1.5,59.5 + parent: 2 + - uid: 2025 + components: + - type: Transform + pos: -0.5,59.5 + parent: 2 + - uid: 2026 + components: + - type: Transform + pos: 0.5,59.5 + parent: 2 + - uid: 2027 + components: + - type: Transform + pos: 1.5,59.5 + parent: 2 + - uid: 2028 + components: + - type: Transform + pos: 2.5,59.5 + parent: 2 + - uid: 2029 + components: + - type: Transform + pos: 2.5,58.5 + parent: 2 + - uid: 2030 + components: + - type: Transform + pos: 3.5,65.5 + parent: 2 + - uid: 2031 + components: + - type: Transform + pos: 3.5,64.5 + parent: 2 + - uid: 2032 + components: + - type: Transform + pos: 3.5,63.5 + parent: 2 + - uid: 2033 + components: + - type: Transform + pos: 3.5,62.5 + parent: 2 + - uid: 2034 + components: + - type: Transform + pos: 4.5,63.5 + parent: 2 + - uid: 2035 + components: + - type: Transform + pos: 5.5,63.5 + parent: 2 + - uid: 2036 + components: + - type: Transform + pos: 5.5,64.5 + parent: 2 + - uid: 2037 + components: + - type: Transform + pos: 6.5,64.5 + parent: 2 + - uid: 2038 + components: + - type: Transform + pos: 5.5,65.5 + parent: 2 + - uid: 2039 + components: + - type: Transform + pos: 5.5,66.5 + parent: 2 + - uid: 2040 + components: + - type: Transform + pos: 5.5,67.5 + parent: 2 + - uid: 2041 + components: + - type: Transform + pos: 4.5,67.5 + parent: 2 + - uid: 2042 + components: + - type: Transform + pos: 3.5,67.5 + parent: 2 + - uid: 2043 + components: + - type: Transform + pos: 2.5,67.5 + parent: 2 + - uid: 2044 + components: + - type: Transform + pos: 1.5,67.5 + parent: 2 + - uid: 2045 + components: + - type: Transform + pos: 0.5,67.5 + parent: 2 + - uid: 2046 + components: + - type: Transform + pos: -0.5,67.5 + parent: 2 + - uid: 2047 + components: + - type: Transform + pos: 6.5,67.5 + parent: 2 + - uid: 2048 + components: + - type: Transform + pos: 7.5,67.5 + parent: 2 + - uid: 2049 + components: + - type: Transform + pos: 8.5,67.5 + parent: 2 + - uid: 2050 + components: + - type: Transform + pos: 9.5,67.5 + parent: 2 + - uid: 2051 + components: + - type: Transform + pos: 10.5,67.5 + parent: 2 + - uid: 2052 + components: + - type: Transform + pos: 11.5,67.5 + parent: 2 + - uid: 2053 + components: + - type: Transform + pos: 5.5,62.5 + parent: 2 + - uid: 2054 + components: + - type: Transform + pos: 5.5,61.5 + parent: 2 + - uid: 2055 + components: + - type: Transform + pos: 5.5,60.5 + parent: 2 + - uid: 2056 + components: + - type: Transform + pos: 5.5,59.5 + parent: 2 + - uid: 2057 + components: + - type: Transform + pos: 5.5,58.5 + parent: 2 + - uid: 2058 + components: + - type: Transform + pos: 5.5,57.5 + parent: 2 + - uid: 2059 + components: + - type: Transform + pos: 5.5,56.5 + parent: 2 + - uid: 2060 + components: + - type: Transform + pos: 5.5,55.5 + parent: 2 + - uid: 2061 + components: + - type: Transform + pos: 5.5,54.5 + parent: 2 + - uid: 2062 + components: + - type: Transform + pos: 5.5,53.5 + parent: 2 + - uid: 2063 + components: + - type: Transform + pos: 5.5,52.5 + parent: 2 + - uid: 2064 + components: + - type: Transform + pos: 5.5,51.5 + parent: 2 + - uid: 2065 + components: + - type: Transform + pos: 3.5,51.5 + parent: 2 + - uid: 2066 + components: + - type: Transform + pos: 4.5,51.5 + parent: 2 + - uid: 2067 + components: + - type: Transform + pos: 5.5,50.5 + parent: 2 + - uid: 2068 + components: + - type: Transform + pos: 6.5,51.5 + parent: 2 + - uid: 2069 + components: + - type: Transform + pos: 11.5,76.5 + parent: 2 + - uid: 2070 + components: + - type: Transform + pos: 11.5,75.5 + parent: 2 + - uid: 2071 + components: + - type: Transform + pos: 11.5,74.5 + parent: 2 + - uid: 2072 + components: + - type: Transform + pos: 11.5,73.5 + parent: 2 + - uid: 2073 + components: + - type: Transform + pos: 11.5,72.5 + parent: 2 + - uid: 2074 + components: + - type: Transform + pos: 12.5,72.5 + parent: 2 + - uid: 2075 + components: + - type: Transform + pos: 12.5,71.5 + parent: 2 + - uid: 2076 + components: + - type: Transform + pos: 12.5,70.5 + parent: 2 + - uid: 2077 + components: + - type: Transform + pos: 11.5,70.5 + parent: 2 + - uid: 2078 + components: + - type: Transform + pos: 10.5,70.5 + parent: 2 + - uid: 2079 + components: + - type: Transform + pos: 11.5,77.5 + parent: 2 + - uid: 2080 + components: + - type: Transform + pos: 11.5,78.5 + parent: 2 + - uid: 2081 + components: + - type: Transform + pos: 11.5,79.5 + parent: 2 + - uid: 2082 + components: + - type: Transform + pos: 10.5,79.5 + parent: 2 + - uid: 2083 + components: + - type: Transform + pos: 10.5,80.5 + parent: 2 + - uid: 2084 + components: + - type: Transform + pos: 6.5,80.5 + parent: 2 + - uid: 2085 + components: + - type: Transform + pos: 6.5,79.5 + parent: 2 + - uid: 2086 + components: + - type: Transform + pos: 5.5,79.5 + parent: 2 + - uid: 2087 + components: + - type: Transform + pos: 4.5,79.5 + parent: 2 + - uid: 2088 + components: + - type: Transform + pos: 3.5,79.5 + parent: 2 + - uid: 2089 + components: + - type: Transform + pos: 2.5,79.5 + parent: 2 + - uid: 2090 + components: + - type: Transform + pos: 1.5,79.5 + parent: 2 + - uid: 2091 + components: + - type: Transform + pos: 0.5,79.5 + parent: 2 + - uid: 2092 + components: + - type: Transform + pos: -0.5,78.5 + parent: 2 + - uid: 2093 + components: + - type: Transform + pos: -0.5,77.5 + parent: 2 + - uid: 2094 + components: + - type: Transform + pos: -1.5,77.5 + parent: 2 + - uid: 2095 + components: + - type: Transform + pos: -1.5,76.5 + parent: 2 + - uid: 2096 + components: + - type: Transform + pos: -2.5,76.5 + parent: 2 + - uid: 2097 + components: + - type: Transform + pos: -2.5,75.5 + parent: 2 + - uid: 2098 + components: + - type: Transform + pos: -2.5,74.5 + parent: 2 + - uid: 2099 + components: + - type: Transform + pos: -2.5,73.5 + parent: 2 + - uid: 2100 + components: + - type: Transform + pos: -2.5,72.5 + parent: 2 + - uid: 2101 + components: + - type: Transform + pos: -2.5,71.5 + parent: 2 + - uid: 2102 + components: + - type: Transform + pos: -2.5,70.5 + parent: 2 + - uid: 2103 + components: + - type: Transform + pos: -2.5,69.5 + parent: 2 + - uid: 2104 + components: + - type: Transform + pos: -1.5,69.5 + parent: 2 + - uid: 2105 + components: + - type: Transform + pos: -0.5,69.5 + parent: 2 + - uid: 2106 + components: + - type: Transform + pos: 0.5,69.5 + parent: 2 + - uid: 2107 + components: + - type: Transform + pos: 1.5,69.5 + parent: 2 + - uid: 2108 + components: + - type: Transform + pos: 2.5,69.5 + parent: 2 + - uid: 2109 + components: + - type: Transform + pos: 3.5,69.5 + parent: 2 + - uid: 2110 + components: + - type: Transform + pos: 4.5,69.5 + parent: 2 + - uid: 2111 + components: + - type: Transform + pos: 5.5,69.5 + parent: 2 + - uid: 2112 + components: + - type: Transform + pos: 6.5,69.5 + parent: 2 + - uid: 2113 + components: + - type: Transform + pos: 7.5,69.5 + parent: 2 + - uid: 2114 + components: + - type: Transform + pos: 8.5,69.5 + parent: 2 + - uid: 2115 + components: + - type: Transform + pos: 9.5,69.5 + parent: 2 + - uid: 2116 + components: + - type: Transform + pos: 10.5,69.5 + parent: 2 + - uid: 2117 + components: + - type: Transform + pos: 18.5,60.5 + parent: 2 + - uid: 2118 + components: + - type: Transform + pos: -8.5,50.5 + parent: 2 + - uid: 2119 + components: + - type: Transform + pos: 13.5,59.5 + parent: 2 + - uid: 2120 + components: + - type: Transform + pos: 13.5,60.5 + parent: 2 + - uid: 2121 + components: + - type: Transform + pos: 13.5,61.5 + parent: 2 + - uid: 2122 + components: + - type: Transform + pos: 13.5,62.5 + parent: 2 + - uid: 2123 + components: + - type: Transform + pos: 13.5,63.5 + parent: 2 + - uid: 2124 + components: + - type: Transform + pos: 14.5,61.5 + parent: 2 + - uid: 2125 + components: + - type: Transform + pos: 15.5,61.5 + parent: 2 + - uid: 2126 + components: + - type: Transform + pos: 16.5,61.5 + parent: 2 + - uid: 2127 + components: + - type: Transform + pos: 17.5,61.5 + parent: 2 + - uid: 2128 + components: + - type: Transform + pos: 17.5,62.5 + parent: 2 + - uid: 2129 + components: + - type: Transform + pos: 17.5,63.5 + parent: 2 + - uid: 2130 + components: + - type: Transform + pos: 18.5,63.5 + parent: 2 + - uid: 2131 + components: + - type: Transform + pos: 19.5,63.5 + parent: 2 + - uid: 2132 + components: + - type: Transform + pos: 20.5,63.5 + parent: 2 + - uid: 2133 + components: + - type: Transform + pos: 21.5,63.5 + parent: 2 + - uid: 2134 + components: + - type: Transform + pos: 21.5,64.5 + parent: 2 + - uid: 2135 + components: + - type: Transform + pos: 21.5,65.5 + parent: 2 + - uid: 2136 + components: + - type: Transform + pos: 21.5,66.5 + parent: 2 + - uid: 2137 + components: + - type: Transform + pos: 21.5,62.5 + parent: 2 + - uid: 2138 + components: + - type: Transform + pos: 12.5,60.5 + parent: 2 + - uid: 2139 + components: + - type: Transform + pos: 11.5,60.5 + parent: 2 + - uid: 2140 + components: + - type: Transform + pos: 10.5,60.5 + parent: 2 + - uid: 2141 + components: + - type: Transform + pos: 9.5,60.5 + parent: 2 + - uid: 2142 + components: + - type: Transform + pos: 8.5,60.5 + parent: 2 + - uid: 2143 + components: + - type: Transform + pos: 10.5,59.5 + parent: 2 + - uid: 2144 + components: + - type: Transform + pos: 10.5,58.5 + parent: 2 + - uid: 2145 + components: + - type: Transform + pos: 10.5,57.5 + parent: 2 + - uid: 2146 + components: + - type: Transform + pos: 10.5,56.5 + parent: 2 + - uid: 2147 + components: + - type: Transform + pos: 10.5,55.5 + parent: 2 + - uid: 2148 + components: + - type: Transform + pos: 10.5,54.5 + parent: 2 + - uid: 2149 + components: + - type: Transform + pos: 10.5,53.5 + parent: 2 + - uid: 2150 + components: + - type: Transform + pos: 10.5,52.5 + parent: 2 + - uid: 2151 + components: + - type: Transform + pos: 10.5,51.5 + parent: 2 + - uid: 2152 + components: + - type: Transform + pos: 9.5,52.5 + parent: 2 + - uid: 2153 + components: + - type: Transform + pos: 8.5,52.5 + parent: 2 + - uid: 2154 + components: + - type: Transform + pos: 11.5,52.5 + parent: 2 + - uid: 2155 + components: + - type: Transform + pos: 12.5,52.5 + parent: 2 + - uid: 2156 + components: + - type: Transform + pos: 13.5,52.5 + parent: 2 + - uid: 2157 + components: + - type: Transform + pos: 14.5,52.5 + parent: 2 + - uid: 2158 + components: + - type: Transform + pos: 11.5,56.5 + parent: 2 + - uid: 2159 + components: + - type: Transform + pos: 12.5,56.5 + parent: 2 + - uid: 2160 + components: + - type: Transform + pos: 13.5,56.5 + parent: 2 + - uid: 2161 + components: + - type: Transform + pos: 14.5,56.5 + parent: 2 + - uid: 2162 + components: + - type: Transform + pos: 8.5,56.5 + parent: 2 + - uid: 2163 + components: + - type: Transform + pos: 18.5,59.5 + parent: 2 + - uid: 2164 + components: + - type: Transform + pos: 18.5,58.5 + parent: 2 + - uid: 2165 + components: + - type: Transform + pos: 17.5,59.5 + parent: 2 + - uid: 2166 + components: + - type: Transform + pos: 17.5,58.5 + parent: 2 + - uid: 2167 + components: + - type: Transform + pos: 17.5,57.5 + parent: 2 + - uid: 2168 + components: + - type: Transform + pos: 17.5,56.5 + parent: 2 + - uid: 2169 + components: + - type: Transform + pos: 17.5,55.5 + parent: 2 + - uid: 2170 + components: + - type: Transform + pos: 17.5,54.5 + parent: 2 + - uid: 2171 + components: + - type: Transform + pos: 17.5,53.5 + parent: 2 + - uid: 2172 + components: + - type: Transform + pos: 17.5,52.5 + parent: 2 + - uid: 2173 + components: + - type: Transform + pos: 17.5,51.5 + parent: 2 + - uid: 2174 + components: + - type: Transform + pos: 18.5,51.5 + parent: 2 + - uid: 2175 + components: + - type: Transform + pos: 19.5,51.5 + parent: 2 + - uid: 2176 + components: + - type: Transform + pos: 20.5,51.5 + parent: 2 + - uid: 2177 + components: + - type: Transform + pos: 21.5,51.5 + parent: 2 + - uid: 2178 + components: + - type: Transform + pos: 22.5,51.5 + parent: 2 + - uid: 2179 + components: + - type: Transform + pos: 23.5,51.5 + parent: 2 + - uid: 2180 + components: + - type: Transform + pos: 24.5,51.5 + parent: 2 + - uid: 2181 + components: + - type: Transform + pos: 25.5,51.5 + parent: 2 + - uid: 2182 + components: + - type: Transform + pos: 17.5,56.5 + parent: 2 + - uid: 2183 + components: + - type: Transform + pos: 18.5,56.5 + parent: 2 + - uid: 2184 + components: + - type: Transform + pos: 19.5,56.5 + parent: 2 + - uid: 2185 + components: + - type: Transform + pos: 20.5,56.5 + parent: 2 + - uid: 2186 + components: + - type: Transform + pos: 21.5,56.5 + parent: 2 + - uid: 2187 + components: + - type: Transform + pos: 22.5,56.5 + parent: 2 + - uid: 2188 + components: + - type: Transform + pos: 23.5,56.5 + parent: 2 + - uid: 2189 + components: + - type: Transform + pos: 24.5,56.5 + parent: 2 + - uid: 2190 + components: + - type: Transform + pos: 25.5,56.5 + parent: 2 + - uid: 2191 + components: + - type: Transform + pos: 21.5,55.5 + parent: 2 + - uid: 2192 + components: + - type: Transform + pos: 21.5,54.5 + parent: 2 + - uid: 2193 + components: + - type: Transform + pos: 21.5,53.5 + parent: 2 + - uid: 2194 + components: + - type: Transform + pos: 21.5,52.5 + parent: 2 + - uid: 2195 + components: + - type: Transform + pos: 25.5,55.5 + parent: 2 + - uid: 2196 + components: + - type: Transform + pos: 25.5,54.5 + parent: 2 + - uid: 2197 + components: + - type: Transform + pos: 25.5,53.5 + parent: 2 + - uid: 2198 + components: + - type: Transform + pos: 25.5,52.5 + parent: 2 + - uid: 2199 + components: + - type: Transform + pos: 24.5,58.5 + parent: 2 + - uid: 2200 + components: + - type: Transform + pos: 24.5,57.5 + parent: 2 + - uid: 2201 + components: + - type: Transform + pos: 21.5,58.5 + parent: 2 + - uid: 2202 + components: + - type: Transform + pos: 21.5,57.5 + parent: 2 + - uid: 2203 + components: + - type: Transform + pos: 60.5,13.5 + parent: 2 + - uid: 2204 + components: + - type: Transform + pos: 45.5,29.5 + parent: 2 + - uid: 2205 + components: + - type: Transform + pos: 46.5,29.5 + parent: 2 + - uid: 2206 + components: + - type: Transform + pos: 47.5,29.5 + parent: 2 + - uid: 2207 + components: + - type: Transform + pos: 48.5,29.5 + parent: 2 + - uid: 2208 + components: + - type: Transform + pos: 47.5,30.5 + parent: 2 + - uid: 2209 + components: + - type: Transform + pos: 47.5,31.5 + parent: 2 + - uid: 2210 + components: + - type: Transform + pos: 47.5,28.5 + parent: 2 + - uid: 2211 + components: + - type: Transform + pos: 47.5,27.5 + parent: 2 + - uid: 2212 + components: + - type: Transform + pos: 47.5,26.5 + parent: 2 + - uid: 2213 + components: + - type: Transform + pos: 47.5,25.5 + parent: 2 + - uid: 2214 + components: + - type: Transform + pos: 47.5,24.5 + parent: 2 + - uid: 2215 + components: + - type: Transform + pos: 47.5,23.5 + parent: 2 + - uid: 2216 + components: + - type: Transform + pos: 47.5,22.5 + parent: 2 + - uid: 2217 + components: + - type: Transform + pos: 47.5,21.5 + parent: 2 + - uid: 2218 + components: + - type: Transform + pos: 47.5,20.5 + parent: 2 + - uid: 2219 + components: + - type: Transform + pos: 48.5,22.5 + parent: 2 + - uid: 2220 + components: + - type: Transform + pos: 49.5,22.5 + parent: 2 + - uid: 2221 + components: + - type: Transform + pos: 50.5,22.5 + parent: 2 + - uid: 2222 + components: + - type: Transform + pos: 51.5,22.5 + parent: 2 + - uid: 2223 + components: + - type: Transform + pos: 52.5,22.5 + parent: 2 + - uid: 2224 + components: + - type: Transform + pos: 53.5,22.5 + parent: 2 + - uid: 2225 + components: + - type: Transform + pos: 52.5,21.5 + parent: 2 + - uid: 2226 + components: + - type: Transform + pos: 53.5,21.5 + parent: 2 + - uid: 2227 + components: + - type: Transform + pos: 53.5,20.5 + parent: 2 + - uid: 2228 + components: + - type: Transform + pos: 48.5,26.5 + parent: 2 + - uid: 2229 + components: + - type: Transform + pos: 49.5,26.5 + parent: 2 + - uid: 2230 + components: + - type: Transform + pos: 50.5,26.5 + parent: 2 + - uid: 2231 + components: + - type: Transform + pos: 48.5,30.5 + parent: 2 + - uid: 2232 + components: + - type: Transform + pos: 49.5,30.5 + parent: 2 + - uid: 2233 + components: + - type: Transform + pos: 50.5,30.5 + parent: 2 + - uid: 2234 + components: + - type: Transform + pos: 51.5,30.5 + parent: 2 + - uid: 2235 + components: + - type: Transform + pos: 52.5,30.5 + parent: 2 + - uid: 2236 + components: + - type: Transform + pos: 53.5,30.5 + parent: 2 + - uid: 2237 + components: + - type: Transform + pos: 54.5,30.5 + parent: 2 + - uid: 2238 + components: + - type: Transform + pos: 56.5,30.5 + parent: 2 + - uid: 2239 + components: + - type: Transform + pos: 55.5,30.5 + parent: 2 + - uid: 2240 + components: + - type: Transform + pos: 55.5,31.5 + parent: 2 + - uid: 2241 + components: + - type: Transform + pos: 55.5,32.5 + parent: 2 + - uid: 2242 + components: + - type: Transform + pos: 55.5,29.5 + parent: 2 + - uid: 2243 + components: + - type: Transform + pos: 55.5,28.5 + parent: 2 + - uid: 2244 + components: + - type: Transform + pos: 55.5,27.5 + parent: 2 + - uid: 2245 + components: + - type: Transform + pos: 55.5,26.5 + parent: 2 + - uid: 2246 + components: + - type: Transform + pos: 55.5,25.5 + parent: 2 + - uid: 2247 + components: + - type: Transform + pos: 55.5,24.5 + parent: 2 + - uid: 2248 + components: + - type: Transform + pos: 54.5,26.5 + parent: 2 + - uid: 2249 + components: + - type: Transform + pos: 53.5,26.5 + parent: 2 + - uid: 2250 + components: + - type: Transform + pos: 60.5,27.5 + parent: 2 + - uid: 2251 + components: + - type: Transform + pos: 60.5,26.5 + parent: 2 + - uid: 2252 + components: + - type: Transform + pos: 60.5,25.5 + parent: 2 + - uid: 2253 + components: + - type: Transform + pos: 60.5,24.5 + parent: 2 + - uid: 2254 + components: + - type: Transform + pos: 59.5,25.5 + parent: 2 + - uid: 2255 + components: + - type: Transform + pos: 61.5,25.5 + parent: 2 + - uid: 2256 + components: + - type: Transform + pos: 62.5,25.5 + parent: 2 + - uid: 2257 + components: + - type: Transform + pos: 62.5,26.5 + parent: 2 + - uid: 2258 + components: + - type: Transform + pos: 62.5,27.5 + parent: 2 + - uid: 2259 + components: + - type: Transform + pos: 62.5,28.5 + parent: 2 + - uid: 2260 + components: + - type: Transform + pos: 62.5,29.5 + parent: 2 + - uid: 2261 + components: + - type: Transform + pos: 62.5,30.5 + parent: 2 + - uid: 2262 + components: + - type: Transform + pos: 61.5,30.5 + parent: 2 + - uid: 2263 + components: + - type: Transform + pos: 60.5,30.5 + parent: 2 + - uid: 2264 + components: + - type: Transform + pos: 59.5,30.5 + parent: 2 + - uid: 2265 + components: + - type: Transform + pos: 58.5,30.5 + parent: 2 + - uid: 2266 + components: + - type: Transform + pos: 62.5,24.5 + parent: 2 + - uid: 2267 + components: + - type: Transform + pos: 62.5,23.5 + parent: 2 + - uid: 2268 + components: + - type: Transform + pos: 62.5,22.5 + parent: 2 + - uid: 2269 + components: + - type: Transform + pos: 62.5,21.5 + parent: 2 + - uid: 2270 + components: + - type: Transform + pos: 62.5,20.5 + parent: 2 + - uid: 2271 + components: + - type: Transform + pos: 62.5,19.5 + parent: 2 + - uid: 2272 + components: + - type: Transform + pos: 62.5,18.5 + parent: 2 + - uid: 2273 + components: + - type: Transform + pos: 61.5,18.5 + parent: 2 + - uid: 2274 + components: + - type: Transform + pos: 61.5,17.5 + parent: 2 + - uid: 2275 + components: + - type: Transform + pos: 61.5,16.5 + parent: 2 + - uid: 2276 + components: + - type: Transform + pos: 61.5,15.5 + parent: 2 + - uid: 2277 + components: + - type: Transform + pos: 61.5,14.5 + parent: 2 + - uid: 2278 + components: + - type: Transform + pos: 61.5,13.5 + parent: 2 + - uid: 2279 + components: + - type: Transform + pos: 59.5,13.5 + parent: 2 + - uid: 2280 + components: + - type: Transform + pos: 58.5,13.5 + parent: 2 + - uid: 2281 + components: + - type: Transform + pos: 57.5,13.5 + parent: 2 + - uid: 2282 + components: + - type: Transform + pos: 56.5,13.5 + parent: 2 + - uid: 2283 + components: + - type: Transform + pos: 55.5,13.5 + parent: 2 + - uid: 2284 + components: + - type: Transform + pos: 57.5,12.5 + parent: 2 + - uid: 2285 + components: + - type: Transform + pos: 57.5,11.5 + parent: 2 + - uid: 2286 + components: + - type: Transform + pos: 57.5,10.5 + parent: 2 + - uid: 2287 + components: + - type: Transform + pos: 57.5,9.5 + parent: 2 + - uid: 2288 + components: + - type: Transform + pos: 57.5,8.5 + parent: 2 + - uid: 2289 + components: + - type: Transform + pos: 58.5,8.5 + parent: 2 + - uid: 2290 + components: + - type: Transform + pos: 59.5,8.5 + parent: 2 + - uid: 2291 + components: + - type: Transform + pos: 59.5,7.5 + parent: 2 + - uid: 2292 + components: + - type: Transform + pos: 59.5,6.5 + parent: 2 + - uid: 2293 + components: + - type: Transform + pos: 59.5,5.5 + parent: 2 + - uid: 2294 + components: + - type: Transform + pos: 59.5,4.5 + parent: 2 + - uid: 2295 + components: + - type: Transform + pos: 59.5,3.5 + parent: 2 + - uid: 2296 + components: + - type: Transform + pos: 59.5,2.5 + parent: 2 + - uid: 2297 + components: + - type: Transform + pos: 59.5,1.5 + parent: 2 + - uid: 2298 + components: + - type: Transform + pos: 59.5,0.5 + parent: 2 + - uid: 2299 + components: + - type: Transform + pos: 59.5,-0.5 + parent: 2 + - uid: 2300 + components: + - type: Transform + pos: 59.5,-1.5 + parent: 2 + - uid: 2301 + components: + - type: Transform + pos: 59.5,-2.5 + parent: 2 + - uid: 2302 + components: + - type: Transform + pos: 59.5,-3.5 + parent: 2 + - uid: 2303 + components: + - type: Transform + pos: 59.5,-4.5 + parent: 2 + - uid: 2304 + components: + - type: Transform + pos: 59.5,-5.5 + parent: 2 + - uid: 2305 + components: + - type: Transform + pos: 55.5,12.5 + parent: 2 + - uid: 2306 + components: + - type: Transform + pos: 55.5,11.5 + parent: 2 + - uid: 2307 + components: + - type: Transform + pos: 54.5,11.5 + parent: 2 + - uid: 2308 + components: + - type: Transform + pos: 53.5,11.5 + parent: 2 + - uid: 2309 + components: + - type: Transform + pos: 52.5,11.5 + parent: 2 + - uid: 2310 + components: + - type: Transform + pos: 52.5,10.5 + parent: 2 + - uid: 2311 + components: + - type: Transform + pos: 43.5,3.5 + parent: 2 + - uid: 2312 + components: + - type: Transform + pos: 43.5,2.5 + parent: 2 + - uid: 2313 + components: + - type: Transform + pos: 43.5,1.5 + parent: 2 + - uid: 2314 + components: + - type: Transform + pos: 43.5,0.5 + parent: 2 + - uid: 2315 + components: + - type: Transform + pos: 43.5,-0.5 + parent: 2 + - uid: 2316 + components: + - type: Transform + pos: 43.5,-1.5 + parent: 2 + - uid: 2317 + components: + - type: Transform + pos: 43.5,-2.5 + parent: 2 + - uid: 2318 + components: + - type: Transform + pos: 42.5,1.5 + parent: 2 + - uid: 2319 + components: + - type: Transform + pos: 43.5,-3.5 + parent: 2 + - uid: 2320 + components: + - type: Transform + pos: 43.5,-4.5 + parent: 2 + - uid: 2321 + components: + - type: Transform + pos: 43.5,-5.5 + parent: 2 + - uid: 2322 + components: + - type: Transform + pos: 44.5,-5.5 + parent: 2 + - uid: 2323 + components: + - type: Transform + pos: 45.5,-5.5 + parent: 2 + - uid: 2324 + components: + - type: Transform + pos: 46.5,-5.5 + parent: 2 + - uid: 2325 + components: + - type: Transform + pos: 47.5,-5.5 + parent: 2 + - uid: 2326 + components: + - type: Transform + pos: 47.5,-6.5 + parent: 2 + - uid: 2327 + components: + - type: Transform + pos: 47.5,-7.5 + parent: 2 + - uid: 2328 + components: + - type: Transform + pos: 47.5,-8.5 + parent: 2 + - uid: 2329 + components: + - type: Transform + pos: 47.5,-9.5 + parent: 2 + - uid: 2330 + components: + - type: Transform + pos: 47.5,-10.5 + parent: 2 + - uid: 2331 + components: + - type: Transform + pos: 48.5,-10.5 + parent: 2 + - uid: 2332 + components: + - type: Transform + pos: 49.5,-10.5 + parent: 2 + - uid: 2333 + components: + - type: Transform + pos: 50.5,-10.5 + parent: 2 + - uid: 2334 + components: + - type: Transform + pos: 51.5,-10.5 + parent: 2 + - uid: 2335 + components: + - type: Transform + pos: 33.5,66.5 + parent: 2 + - uid: 2336 + components: + - type: Transform + pos: 43.5,4.5 + parent: 2 + - uid: 2337 + components: + - type: Transform + pos: 42.5,4.5 + parent: 2 + - uid: 2338 + components: + - type: Transform + pos: 41.5,4.5 + parent: 2 + - uid: 2339 + components: + - type: Transform + pos: 40.5,4.5 + parent: 2 + - uid: 2340 + components: + - type: Transform + pos: 39.5,4.5 + parent: 2 + - uid: 2341 + components: + - type: Transform + pos: 38.5,4.5 + parent: 2 + - uid: 2342 + components: + - type: Transform + pos: 43.5,5.5 + parent: 2 + - uid: 2343 + components: + - type: Transform + pos: 43.5,6.5 + parent: 2 + - uid: 2344 + components: + - type: Transform + pos: 43.5,7.5 + parent: 2 + - uid: 2345 + components: + - type: Transform + pos: 43.5,8.5 + parent: 2 + - uid: 2346 + components: + - type: Transform + pos: 43.5,9.5 + parent: 2 + - uid: 2347 + components: + - type: Transform + pos: 43.5,10.5 + parent: 2 + - uid: 2348 + components: + - type: Transform + pos: 44.5,10.5 + parent: 2 + - uid: 2349 + components: + - type: Transform + pos: 45.5,10.5 + parent: 2 + - uid: 2350 + components: + - type: Transform + pos: 46.5,10.5 + parent: 2 + - uid: 2351 + components: + - type: Transform + pos: 44.5,7.5 + parent: 2 + - uid: 2352 + components: + - type: Transform + pos: 49.5,48.5 + parent: 2 + - uid: 2353 + components: + - type: Transform + pos: 48.5,45.5 + parent: 2 + - uid: 2354 + components: + - type: Transform + pos: 50.5,48.5 + parent: 2 + - uid: 2355 + components: + - type: Transform + pos: 48.5,48.5 + parent: 2 + - uid: 2356 + components: + - type: Transform + pos: 47.5,48.5 + parent: 2 + - uid: 2357 + components: + - type: Transform + pos: 46.5,48.5 + parent: 2 + - uid: 2358 + components: + - type: Transform + pos: 49.5,49.5 + parent: 2 + - uid: 2359 + components: + - type: Transform + pos: 48.5,47.5 + parent: 2 + - uid: 2360 + components: + - type: Transform + pos: 48.5,46.5 + parent: 2 + - uid: 2361 + components: + - type: Transform + pos: 48.5,44.5 + parent: 2 + - uid: 2362 + components: + - type: Transform + pos: 48.5,43.5 + parent: 2 + - uid: 2363 + components: + - type: Transform + pos: 48.5,42.5 + parent: 2 + - uid: 2364 + components: + - type: Transform + pos: 48.5,41.5 + parent: 2 + - uid: 2365 + components: + - type: Transform + pos: 48.5,40.5 + parent: 2 + - uid: 2366 + components: + - type: Transform + pos: 48.5,39.5 + parent: 2 + - uid: 2367 + components: + - type: Transform + pos: 48.5,38.5 + parent: 2 + - uid: 2368 + components: + - type: Transform + pos: 48.5,37.5 + parent: 2 + - uid: 2369 + components: + - type: Transform + pos: 47.5,37.5 + parent: 2 + - uid: 2370 + components: + - type: Transform + pos: 46.5,37.5 + parent: 2 + - uid: 2371 + components: + - type: Transform + pos: 45.5,37.5 + parent: 2 + - uid: 2372 + components: + - type: Transform + pos: 44.5,37.5 + parent: 2 + - uid: 2373 + components: + - type: Transform + pos: 43.5,37.5 + parent: 2 + - uid: 2374 + components: + - type: Transform + pos: 47.5,41.5 + parent: 2 + - uid: 2375 + components: + - type: Transform + pos: 46.5,41.5 + parent: 2 + - uid: 2376 + components: + - type: Transform + pos: 45.5,41.5 + parent: 2 + - uid: 2377 + components: + - type: Transform + pos: 44.5,41.5 + parent: 2 + - uid: 2378 + components: + - type: Transform + pos: 47.5,45.5 + parent: 2 + - uid: 2379 + components: + - type: Transform + pos: 46.5,45.5 + parent: 2 + - uid: 2380 + components: + - type: Transform + pos: 45.5,45.5 + parent: 2 + - uid: 2381 + components: + - type: Transform + pos: 44.5,45.5 + parent: 2 + - uid: 2382 + components: + - type: Transform + pos: 49.5,45.5 + parent: 2 + - uid: 2383 + components: + - type: Transform + pos: 50.5,45.5 + parent: 2 + - uid: 2384 + components: + - type: Transform + pos: 51.5,51.5 + parent: 2 + - uid: 2385 + components: + - type: Transform + pos: 50.5,51.5 + parent: 2 + - uid: 2386 + components: + - type: Transform + pos: 49.5,51.5 + parent: 2 + - uid: 2387 + components: + - type: Transform + pos: 50.5,50.5 + parent: 2 + - uid: 2388 + components: + - type: Transform + pos: 50.5,52.5 + parent: 2 + - uid: 2389 + components: + - type: Transform + pos: 50.5,53.5 + parent: 2 + - uid: 2390 + components: + - type: Transform + pos: 50.5,54.5 + parent: 2 + - uid: 2391 + components: + - type: Transform + pos: 54.5,52.5 + parent: 2 + - uid: 2392 + components: + - type: Transform + pos: 54.5,51.5 + parent: 2 + - uid: 2393 + components: + - type: Transform + pos: 54.5,50.5 + parent: 2 + - uid: 2394 + components: + - type: Transform + pos: 54.5,49.5 + parent: 2 + - uid: 2395 + components: + - type: Transform + pos: 54.5,48.5 + parent: 2 + - uid: 2396 + components: + - type: Transform + pos: 53.5,50.5 + parent: 2 + - uid: 2397 + components: + - type: Transform + pos: 52.5,50.5 + parent: 2 + - uid: 2398 + components: + - type: Transform + pos: 55.5,50.5 + parent: 2 + - uid: 2399 + components: + - type: Transform + pos: 54.5,47.5 + parent: 2 + - uid: 2400 + components: + - type: Transform + pos: 54.5,46.5 + parent: 2 + - uid: 2401 + components: + - type: Transform + pos: 54.5,45.5 + parent: 2 + - uid: 2402 + components: + - type: Transform + pos: 54.5,44.5 + parent: 2 + - uid: 2403 + components: + - type: Transform + pos: 54.5,43.5 + parent: 2 + - uid: 2404 + components: + - type: Transform + pos: 54.5,42.5 + parent: 2 + - uid: 2405 + components: + - type: Transform + pos: 53.5,42.5 + parent: 2 + - uid: 2406 + components: + - type: Transform + pos: 52.5,42.5 + parent: 2 + - uid: 2407 + components: + - type: Transform + pos: 55.5,42.5 + parent: 2 + - uid: 2408 + components: + - type: Transform + pos: 56.5,42.5 + parent: 2 + - uid: 2409 + components: + - type: Transform + pos: 57.5,42.5 + parent: 2 + - uid: 2410 + components: + - type: Transform + pos: 55.5,45.5 + parent: 2 + - uid: 2411 + components: + - type: Transform + pos: 56.5,45.5 + parent: 2 + - uid: 2412 + components: + - type: Transform + pos: 57.5,45.5 + parent: 2 + - uid: 2413 + components: + - type: Transform + pos: 53.5,45.5 + parent: 2 + - uid: 2414 + components: + - type: Transform + pos: 52.5,45.5 + parent: 2 + - uid: 2415 + components: + - type: Transform + pos: 63.5,43.5 + parent: 2 + - uid: 2416 + components: + - type: Transform + pos: 62.5,43.5 + parent: 2 + - uid: 2417 + components: + - type: Transform + pos: 61.5,43.5 + parent: 2 + - uid: 2418 + components: + - type: Transform + pos: 60.5,43.5 + parent: 2 + - uid: 2419 + components: + - type: Transform + pos: 59.5,43.5 + parent: 2 + - uid: 2420 + components: + - type: Transform + pos: 61.5,42.5 + parent: 2 + - uid: 2421 + components: + - type: Transform + pos: 61.5,41.5 + parent: 2 + - uid: 2422 + components: + - type: Transform + pos: 61.5,40.5 + parent: 2 + - uid: 2423 + components: + - type: Transform + pos: 61.5,39.5 + parent: 2 + - uid: 2424 + components: + - type: Transform + pos: 61.5,38.5 + parent: 2 + - uid: 2425 + components: + - type: Transform + pos: 61.5,37.5 + parent: 2 + - uid: 2426 + components: + - type: Transform + pos: 60.5,38.5 + parent: 2 + - uid: 2427 + components: + - type: Transform + pos: 59.5,38.5 + parent: 2 + - uid: 2428 + components: + - type: Transform + pos: 57.5,38.5 + parent: 2 + - uid: 2429 + components: + - type: Transform + pos: 56.5,38.5 + parent: 2 + - uid: 2430 + components: + - type: Transform + pos: 55.5,38.5 + parent: 2 + - uid: 2431 + components: + - type: Transform + pos: 54.5,38.5 + parent: 2 + - uid: 2432 + components: + - type: Transform + pos: 53.5,38.5 + parent: 2 + - uid: 2433 + components: + - type: Transform + pos: 52.5,38.5 + parent: 2 + - uid: 2434 + components: + - type: Transform + pos: 51.5,38.5 + parent: 2 + - uid: 2435 + components: + - type: Transform + pos: 50.5,38.5 + parent: 2 + - uid: 2436 + components: + - type: Transform + pos: 50.5,39.5 + parent: 2 + - uid: 2437 + components: + - type: Transform + pos: 50.5,40.5 + parent: 2 + - uid: 2438 + components: + - type: Transform + pos: 50.5,37.5 + parent: 2 + - uid: 2439 + components: + - type: Transform + pos: 50.5,36.5 + parent: 2 + - uid: 2440 + components: + - type: Transform + pos: 57.5,35.5 + parent: 2 + - uid: 2441 + components: + - type: Transform + pos: 57.5,39.5 + parent: 2 + - uid: 2442 + components: + - type: Transform + pos: 57.5,40.5 + parent: 2 + - uid: 2443 + components: + - type: Transform + pos: 57.5,34.5 + parent: 2 + - uid: 2444 + components: + - type: Transform + pos: 57.5,36.5 + parent: 2 + - uid: 2445 + components: + - type: Transform + pos: 57.5,37.5 + parent: 2 + - uid: 2446 + components: + - type: Transform + pos: 56.5,34.5 + parent: 2 + - uid: 2447 + components: + - type: Transform + pos: 55.5,34.5 + parent: 2 + - uid: 2448 + components: + - type: Transform + pos: 54.5,34.5 + parent: 2 + - uid: 2449 + components: + - type: Transform + pos: 53.5,34.5 + parent: 2 + - uid: 2450 + components: + - type: Transform + pos: 52.5,34.5 + parent: 2 + - uid: 2451 + components: + - type: Transform + pos: 51.5,34.5 + parent: 2 + - uid: 2452 + components: + - type: Transform + pos: 50.5,34.5 + parent: 2 + - uid: 2453 + components: + - type: Transform + pos: 49.5,34.5 + parent: 2 + - uid: 2454 + components: + - type: Transform + pos: 48.5,34.5 + parent: 2 + - uid: 2455 + components: + - type: Transform + pos: 47.5,34.5 + parent: 2 + - uid: 2456 + components: + - type: Transform + pos: 46.5,34.5 + parent: 2 + - uid: 2457 + components: + - type: Transform + pos: 45.5,34.5 + parent: 2 + - uid: 2458 + components: + - type: Transform + pos: 44.5,34.5 + parent: 2 + - uid: 2459 + components: + - type: Transform + pos: 43.5,34.5 + parent: 2 + - uid: 2460 + components: + - type: Transform + pos: 42.5,34.5 + parent: 2 + - uid: 2461 + components: + - type: Transform + pos: 41.5,34.5 + parent: 2 + - uid: 2462 + components: + - type: Transform + pos: 40.5,34.5 + parent: 2 + - uid: 2463 + components: + - type: Transform + pos: 39.5,34.5 + parent: 2 + - uid: 2464 + components: + - type: Transform + pos: 38.5,34.5 + parent: 2 + - uid: 2465 + components: + - type: Transform + pos: 37.5,34.5 + parent: 2 + - uid: 2466 + components: + - type: Transform + pos: 36.5,34.5 + parent: 2 + - uid: 2467 + components: + - type: Transform + pos: 35.5,34.5 + parent: 2 + - uid: 2468 + components: + - type: Transform + pos: 50.5,35.5 + parent: 2 + - uid: 2469 + components: + - type: Transform + pos: 58.5,34.5 + parent: 2 + - uid: 2470 + components: + - type: Transform + pos: 59.5,34.5 + parent: 2 + - uid: 2471 + components: + - type: Transform + pos: 60.5,34.5 + parent: 2 + - uid: 2472 + components: + - type: Transform + pos: 61.5,34.5 + parent: 2 + - uid: 2473 + components: + - type: Transform + pos: 62.5,34.5 + parent: 2 + - uid: 2474 + components: + - type: Transform + pos: 63.5,34.5 + parent: 2 + - uid: 2475 + components: + - type: Transform + pos: 64.5,34.5 + parent: 2 + - uid: 2476 + components: + - type: Transform + pos: 65.5,34.5 + parent: 2 + - uid: 2477 + components: + - type: Transform + pos: 45.5,53.5 + parent: 2 + - uid: 2478 + components: + - type: Transform + pos: 46.5,53.5 + parent: 2 + - uid: 2479 + components: + - type: Transform + pos: 46.5,52.5 + parent: 2 + - uid: 2480 + components: + - type: Transform + pos: 46.5,51.5 + parent: 2 + - uid: 2481 + components: + - type: Transform + pos: 45.5,51.5 + parent: 2 + - uid: 2482 + components: + - type: Transform + pos: 44.5,51.5 + parent: 2 + - uid: 2483 + components: + - type: Transform + pos: 44.5,50.5 + parent: 2 + - uid: 2484 + components: + - type: Transform + pos: 44.5,49.5 + parent: 2 + - uid: 2485 + components: + - type: Transform + pos: 44.5,48.5 + parent: 2 + - uid: 2486 + components: + - type: Transform + pos: 44.5,47.5 + parent: 2 + - uid: 2487 + components: + - type: Transform + pos: 46.5,54.5 + parent: 2 + - uid: 2488 + components: + - type: Transform + pos: 46.5,55.5 + parent: 2 + - uid: 2489 + components: + - type: Transform + pos: 46.5,56.5 + parent: 2 + - uid: 2490 + components: + - type: Transform + pos: 47.5,56.5 + parent: 2 + - uid: 2491 + components: + - type: Transform + pos: 48.5,56.5 + parent: 2 + - uid: 2492 + components: + - type: Transform + pos: 49.5,56.5 + parent: 2 + - uid: 2493 + components: + - type: Transform + pos: 50.5,56.5 + parent: 2 + - uid: 2494 + components: + - type: Transform + pos: 51.5,56.5 + parent: 2 + - uid: 2495 + components: + - type: Transform + pos: 52.5,56.5 + parent: 2 + - uid: 2496 + components: + - type: Transform + pos: 53.5,56.5 + parent: 2 + - uid: 2497 + components: + - type: Transform + pos: 51.5,57.5 + parent: 2 + - uid: 2498 + components: + - type: Transform + pos: 51.5,58.5 + parent: 2 + - uid: 2499 + components: + - type: Transform + pos: 51.5,59.5 + parent: 2 + - uid: 2500 + components: + - type: Transform + pos: 48.5,57.5 + parent: 2 + - uid: 2501 + components: + - type: Transform + pos: 48.5,58.5 + parent: 2 + - uid: 2502 + components: + - type: Transform + pos: 48.5,59.5 + parent: 2 + - uid: 2503 + components: + - type: Transform + pos: 48.5,60.5 + parent: 2 + - uid: 2504 + components: + - type: Transform + pos: 48.5,61.5 + parent: 2 + - uid: 2505 + components: + - type: Transform + pos: 53.5,57.5 + parent: 2 + - uid: 2506 + components: + - type: Transform + pos: 54.5,57.5 + parent: 2 + - uid: 2507 + components: + - type: Transform + pos: 55.5,57.5 + parent: 2 + - uid: 2508 + components: + - type: Transform + pos: 56.5,57.5 + parent: 2 + - uid: 2509 + components: + - type: Transform + pos: 57.5,57.5 + parent: 2 + - uid: 2510 + components: + - type: Transform + pos: 56.5,56.5 + parent: 2 + - uid: 2511 + components: + - type: Transform + pos: 56.5,55.5 + parent: 2 + - uid: 2512 + components: + - type: Transform + pos: 53.5,55.5 + parent: 2 + - uid: 2513 + components: + - type: Transform + pos: 53.5,54.5 + parent: 2 + - uid: 2514 + components: + - type: Transform + pos: 53.5,53.5 + parent: 2 + - uid: 2515 + components: + - type: Transform + pos: 54.5,53.5 + parent: 2 + - uid: 2516 + components: + - type: Transform + pos: 55.5,53.5 + parent: 2 + - uid: 2517 + components: + - type: Transform + pos: 56.5,53.5 + parent: 2 + - uid: 2518 + components: + - type: Transform + pos: 57.5,53.5 + parent: 2 + - uid: 2519 + components: + - type: Transform + pos: 58.5,53.5 + parent: 2 + - uid: 2520 + components: + - type: Transform + pos: 59.5,52.5 + parent: 2 + - uid: 2521 + components: + - type: Transform + pos: 58.5,52.5 + parent: 2 + - uid: 2522 + components: + - type: Transform + pos: 60.5,52.5 + parent: 2 + - uid: 2523 + components: + - type: Transform + pos: 61.5,52.5 + parent: 2 + - uid: 2524 + components: + - type: Transform + pos: 62.5,52.5 + parent: 2 + - uid: 2525 + components: + - type: Transform + pos: 61.5,53.5 + parent: 2 + - uid: 2526 + components: + - type: Transform + pos: 61.5,51.5 + parent: 2 + - uid: 2527 + components: + - type: Transform + pos: 61.5,50.5 + parent: 2 + - uid: 2528 + components: + - type: Transform + pos: 61.5,54.5 + parent: 2 + - uid: 2529 + components: + - type: Transform + pos: 57.5,52.5 + parent: 2 + - uid: 2530 + components: + - type: Transform + pos: 57.5,51.5 + parent: 2 + - uid: 2531 + components: + - type: Transform + pos: 57.5,50.5 + parent: 2 + - uid: 2532 + components: + - type: Transform + pos: 57.5,49.5 + parent: 2 + - uid: 2533 + components: + - type: Transform + pos: 57.5,48.5 + parent: 2 + - uid: 2534 + components: + - type: Transform + pos: 58.5,48.5 + parent: 2 + - uid: 2535 + components: + - type: Transform + pos: 59.5,48.5 + parent: 2 + - uid: 2536 + components: + - type: Transform + pos: 59.5,47.5 + parent: 2 + - uid: 2537 + components: + - type: Transform + pos: 60.5,47.5 + parent: 2 + - uid: 2538 + components: + - type: Transform + pos: 61.5,47.5 + parent: 2 + - uid: 2539 + components: + - type: Transform + pos: 62.5,47.5 + parent: 2 + - uid: 2540 + components: + - type: Transform + pos: 45.5,56.5 + parent: 2 + - uid: 2541 + components: + - type: Transform + pos: 44.5,56.5 + parent: 2 + - uid: 2542 + components: + - type: Transform + pos: 43.5,56.5 + parent: 2 + - uid: 2543 + components: + - type: Transform + pos: 42.5,56.5 + parent: 2 + - uid: 2544 + components: + - type: Transform + pos: 41.5,56.5 + parent: 2 + - uid: 2545 + components: + - type: Transform + pos: 40.5,56.5 + parent: 2 + - uid: 2546 + components: + - type: Transform + pos: 40.5,57.5 + parent: 2 + - uid: 2547 + components: + - type: Transform + pos: 39.5,52.5 + parent: 2 + - uid: 2548 + components: + - type: Transform + pos: 39.5,58.5 + parent: 2 + - uid: 2549 + components: + - type: Transform + pos: 39.5,59.5 + parent: 2 + - uid: 2550 + components: + - type: Transform + pos: 36.5,64.5 + parent: 2 + - uid: 2551 + components: + - type: Transform + pos: 35.5,64.5 + parent: 2 + - uid: 2552 + components: + - type: Transform + pos: 40.5,58.5 + parent: 2 + - uid: 2553 + components: + - type: Transform + pos: 41.5,58.5 + parent: 2 + - uid: 2554 + components: + - type: Transform + pos: 41.5,59.5 + parent: 2 + - uid: 2555 + components: + - type: Transform + pos: 41.5,60.5 + parent: 2 + - uid: 2556 + components: + - type: Transform + pos: 41.5,61.5 + parent: 2 + - uid: 2557 + components: + - type: Transform + pos: 41.5,62.5 + parent: 2 + - uid: 2558 + components: + - type: Transform + pos: 42.5,59.5 + parent: 2 + - uid: 2559 + components: + - type: Transform + pos: 43.5,59.5 + parent: 2 + - uid: 2560 + components: + - type: Transform + pos: 44.5,59.5 + parent: 2 + - uid: 2561 + components: + - type: Transform + pos: 45.5,59.5 + parent: 2 + - uid: 2562 + components: + - type: Transform + pos: 42.5,62.5 + parent: 2 + - uid: 2563 + components: + - type: Transform + pos: 43.5,62.5 + parent: 2 + - uid: 2564 + components: + - type: Transform + pos: 44.5,62.5 + parent: 2 + - uid: 2565 + components: + - type: Transform + pos: 45.5,62.5 + parent: 2 + - uid: 2566 + components: + - type: Transform + pos: 44.5,63.5 + parent: 2 + - uid: 2567 + components: + - type: Transform + pos: 44.5,64.5 + parent: 2 + - uid: 2568 + components: + - type: Transform + pos: 44.5,65.5 + parent: 2 + - uid: 2569 + components: + - type: Transform + pos: 44.5,66.5 + parent: 2 + - uid: 2570 + components: + - type: Transform + pos: 40.5,62.5 + parent: 2 + - uid: 2571 + components: + - type: Transform + pos: 39.5,62.5 + parent: 2 + - uid: 2572 + components: + - type: Transform + pos: 39.5,63.5 + parent: 2 + - uid: 2573 + components: + - type: Transform + pos: 39.5,64.5 + parent: 2 + - uid: 2574 + components: + - type: Transform + pos: 39.5,65.5 + parent: 2 + - uid: 2575 + components: + - type: Transform + pos: 39.5,66.5 + parent: 2 + - uid: 2576 + components: + - type: Transform + pos: 38.5,65.5 + parent: 2 + - uid: 2577 + components: + - type: Transform + pos: 40.5,65.5 + parent: 2 + - uid: 2578 + components: + - type: Transform + pos: 39.5,61.5 + parent: 2 + - uid: 2579 + components: + - type: Transform + pos: 39.5,60.5 + parent: 2 + - uid: 2580 + components: + - type: Transform + pos: 39.5,59.5 + parent: 2 + - uid: 2581 + components: + - type: Transform + pos: 34.5,64.5 + parent: 2 + - uid: 2582 + components: + - type: Transform + pos: 33.5,64.5 + parent: 2 + - uid: 2583 + components: + - type: Transform + pos: 32.5,64.5 + parent: 2 + - uid: 2584 + components: + - type: Transform + pos: 31.5,64.5 + parent: 2 + - uid: 2585 + components: + - type: Transform + pos: 33.5,67.5 + parent: 2 + - uid: 2586 + components: + - type: Transform + pos: 33.5,68.5 + parent: 2 + - uid: 2587 + components: + - type: Transform + pos: 33.5,69.5 + parent: 2 + - uid: 2588 + components: + - type: Transform + pos: 33.5,63.5 + parent: 2 + - uid: 2589 + components: + - type: Transform + pos: 33.5,62.5 + parent: 2 + - uid: 2590 + components: + - type: Transform + pos: 33.5,61.5 + parent: 2 + - uid: 2591 + components: + - type: Transform + pos: 33.5,60.5 + parent: 2 + - uid: 2592 + components: + - type: Transform + pos: 34.5,60.5 + parent: 2 + - uid: 2593 + components: + - type: Transform + pos: 35.5,60.5 + parent: 2 + - uid: 2594 + components: + - type: Transform + pos: 35.5,59.5 + parent: 2 + - uid: 2595 + components: + - type: Transform + pos: 37.5,59.5 + parent: 2 + - uid: 2596 + components: + - type: Transform + pos: 36.5,59.5 + parent: 2 + - uid: 2597 + components: + - type: Transform + pos: 32.5,60.5 + parent: 2 + - uid: 2598 + components: + - type: Transform + pos: 31.5,60.5 + parent: 2 + - uid: 2599 + components: + - type: Transform + pos: 30.5,60.5 + parent: 2 + - uid: 2600 + components: + - type: Transform + pos: 29.5,60.5 + parent: 2 + - uid: 2601 + components: + - type: Transform + pos: 28.5,60.5 + parent: 2 + - uid: 2602 + components: + - type: Transform + pos: 27.5,60.5 + parent: 2 + - uid: 2603 + components: + - type: Transform + pos: 26.5,60.5 + parent: 2 + - uid: 2604 + components: + - type: Transform + pos: 28.5,61.5 + parent: 2 + - uid: 2605 + components: + - type: Transform + pos: 28.5,62.5 + parent: 2 + - uid: 2606 + components: + - type: Transform + pos: 28.5,63.5 + parent: 2 + - uid: 2607 + components: + - type: Transform + pos: 28.5,64.5 + parent: 2 + - uid: 2608 + components: + - type: Transform + pos: 28.5,65.5 + parent: 2 + - uid: 2609 + components: + - type: Transform + pos: 28.5,66.5 + parent: 2 + - uid: 2610 + components: + - type: Transform + pos: 27.5,64.5 + parent: 2 + - uid: 2611 + components: + - type: Transform + pos: 26.5,64.5 + parent: 2 + - uid: 2612 + components: + - type: Transform + pos: 26.5,65.5 + parent: 2 + - uid: 2613 + components: + - type: Transform + pos: 26.5,66.5 + parent: 2 + - uid: 2614 + components: + - type: Transform + pos: 26.5,67.5 + parent: 2 + - uid: 2615 + components: + - type: Transform + pos: 25.5,67.5 + parent: 2 + - uid: 2616 + components: + - type: Transform + pos: 24.5,67.5 + parent: 2 + - uid: 2617 + components: + - type: Transform + pos: 25.5,60.5 + parent: 2 + - uid: 2618 + components: + - type: Transform + pos: 24.5,60.5 + parent: 2 + - uid: 2619 + components: + - type: Transform + pos: 23.5,60.5 + parent: 2 + - uid: 2620 + components: + - type: Transform + pos: 22.5,60.5 + parent: 2 + - uid: 2621 + components: + - type: Transform + pos: 21.5,60.5 + parent: 2 + - uid: 2622 + components: + - type: Transform + pos: 20.5,60.5 + parent: 2 + - uid: 2623 + components: + - type: Transform + pos: 24.5,61.5 + parent: 2 + - uid: 2624 + components: + - type: Transform + pos: 24.5,62.5 + parent: 2 + - uid: 2625 + components: + - type: Transform + pos: 24.5,63.5 + parent: 2 + - uid: 2626 + components: + - type: Transform + pos: 24.5,64.5 + parent: 2 + - uid: 2627 + components: + - type: Transform + pos: 24.5,65.5 + parent: 2 + - uid: 2628 + components: + - type: Transform + pos: 12.5,74.5 + parent: 2 + - uid: 2629 + components: + - type: Transform + pos: 13.5,74.5 + parent: 2 + - uid: 2630 + components: + - type: Transform + pos: 14.5,74.5 + parent: 2 + - uid: 2631 + components: + - type: Transform + pos: 15.5,74.5 + parent: 2 + - uid: 2632 + components: + - type: Transform + pos: 16.5,74.5 + parent: 2 + - uid: 2633 + components: + - type: Transform + pos: 14.5,75.5 + parent: 2 + - uid: 2634 + components: + - type: Transform + pos: 14.5,76.5 + parent: 2 + - uid: 2635 + components: + - type: Transform + pos: 14.5,77.5 + parent: 2 + - uid: 2636 + components: + - type: Transform + pos: 14.5,78.5 + parent: 2 + - uid: 2637 + components: + - type: Transform + pos: 14.5,73.5 + parent: 2 + - uid: 2638 + components: + - type: Transform + pos: 14.5,72.5 + parent: 2 + - uid: 2639 + components: + - type: Transform + pos: 14.5,71.5 + parent: 2 + - uid: 2640 + components: + - type: Transform + pos: 14.5,70.5 + parent: 2 + - uid: 2641 + components: + - type: Transform + pos: 14.5,69.5 + parent: 2 + - uid: 2642 + components: + - type: Transform + pos: 14.5,68.5 + parent: 2 + - uid: 2643 + components: + - type: Transform + pos: 13.5,68.5 + parent: 2 + - uid: 2644 + components: + - type: Transform + pos: 13.5,67.5 + parent: 2 + - uid: 2645 + components: + - type: Transform + pos: 13.5,66.5 + parent: 2 + - uid: 2646 + components: + - type: Transform + pos: 14.5,66.5 + parent: 2 + - uid: 2647 + components: + - type: Transform + pos: 13.5,64.5 + parent: 2 + - uid: 2648 + components: + - type: Transform + pos: 12.5,64.5 + parent: 2 + - uid: 2649 + components: + - type: Transform + pos: 11.5,64.5 + parent: 2 + - uid: 2650 + components: + - type: Transform + pos: 10.5,64.5 + parent: 2 + - uid: 2651 + components: + - type: Transform + pos: 9.5,64.5 + parent: 2 + - uid: 2652 + components: + - type: Transform + pos: 8.5,64.5 + parent: 2 + - uid: 2653 + components: + - type: Transform + pos: 14.5,65.5 + parent: 2 + - uid: 2654 + components: + - type: Transform + pos: 15.5,65.5 + parent: 2 + - uid: 2655 + components: + - type: Transform + pos: 16.5,65.5 + parent: 2 + - uid: 2656 + components: + - type: Transform + pos: 17.5,65.5 + parent: 2 + - uid: 2657 + components: + - type: Transform + pos: 18.5,65.5 + parent: 2 + - uid: 2658 + components: + - type: Transform + pos: 17.5,66.5 + parent: 2 + - uid: 2659 + components: + - type: Transform + pos: 17.5,67.5 + parent: 2 + - uid: 2660 + components: + - type: Transform + pos: 17.5,68.5 + parent: 2 + - uid: 2661 + components: + - type: Transform + pos: 17.5,69.5 + parent: 2 + - uid: 2662 + components: + - type: Transform + pos: 16.5,69.5 + parent: 2 + - uid: 2663 + components: + - type: Transform + pos: 16.5,70.5 + parent: 2 + - uid: 2664 + components: + - type: Transform + pos: 16.5,71.5 + parent: 2 + - uid: 2665 + components: + - type: Transform + pos: 16.5,72.5 + parent: 2 + - uid: 2666 + components: + - type: Transform + pos: 16.5,73.5 + parent: 2 + - uid: 2667 + components: + - type: Transform + pos: 16.5,74.5 + parent: 2 + - uid: 2668 + components: + - type: Transform + pos: 23.5,49.5 + parent: 2 + - uid: 2669 + components: + - type: Transform + pos: 23.5,50.5 + parent: 2 + - uid: 2670 + components: + - type: Transform + pos: 23.5,48.5 + parent: 2 + - uid: 2671 + components: + - type: Transform + pos: 22.5,48.5 + parent: 2 + - uid: 2672 + components: + - type: Transform + pos: 21.5,48.5 + parent: 2 + - uid: 2673 + components: + - type: Transform + pos: 20.5,48.5 + parent: 2 + - uid: 2674 + components: + - type: Transform + pos: 19.5,48.5 + parent: 2 + - uid: 2675 + components: + - type: Transform + pos: 18.5,48.5 + parent: 2 + - uid: 2676 + components: + - type: Transform + pos: 17.5,48.5 + parent: 2 + - uid: 2677 + components: + - type: Transform + pos: 16.5,48.5 + parent: 2 + - uid: 2678 + components: + - type: Transform + pos: 15.5,48.5 + parent: 2 + - uid: 2679 + components: + - type: Transform + pos: 14.5,48.5 + parent: 2 + - uid: 2680 + components: + - type: Transform + pos: 13.5,48.5 + parent: 2 + - uid: 2681 + components: + - type: Transform + pos: 12.5,48.5 + parent: 2 + - uid: 2682 + components: + - type: Transform + pos: 11.5,48.5 + parent: 2 + - uid: 2683 + components: + - type: Transform + pos: 10.5,48.5 + parent: 2 + - uid: 2684 + components: + - type: Transform + pos: 9.5,48.5 + parent: 2 + - uid: 2685 + components: + - type: Transform + pos: 8.5,48.5 + parent: 2 + - uid: 2686 + components: + - type: Transform + pos: 7.5,48.5 + parent: 2 + - uid: 2687 + components: + - type: Transform + pos: 6.5,48.5 + parent: 2 + - uid: 2688 + components: + - type: Transform + pos: 5.5,48.5 + parent: 2 + - uid: 2689 + components: + - type: Transform + pos: 24.5,48.5 + parent: 2 + - uid: 2690 + components: + - type: Transform + pos: 25.5,48.5 + parent: 2 + - uid: 2691 + components: + - type: Transform + pos: 26.5,48.5 + parent: 2 + - uid: 2692 + components: + - type: Transform + pos: 27.5,48.5 + parent: 2 + - uid: 2693 + components: + - type: Transform + pos: 28.5,48.5 + parent: 2 + - uid: 2694 + components: + - type: Transform + pos: 29.5,48.5 + parent: 2 + - uid: 2695 + components: + - type: Transform + pos: 30.5,48.5 + parent: 2 + - uid: 2696 + components: + - type: Transform + pos: 31.5,48.5 + parent: 2 + - uid: 2697 + components: + - type: Transform + pos: 32.5,48.5 + parent: 2 + - uid: 2698 + components: + - type: Transform + pos: 33.5,48.5 + parent: 2 + - uid: 2699 + components: + - type: Transform + pos: 34.5,48.5 + parent: 2 + - uid: 2700 + components: + - type: Transform + pos: 35.5,48.5 + parent: 2 + - uid: 2701 + components: + - type: Transform + pos: 36.5,48.5 + parent: 2 + - uid: 2702 + components: + - type: Transform + pos: 37.5,48.5 + parent: 2 + - uid: 2703 + components: + - type: Transform + pos: 38.5,48.5 + parent: 2 + - uid: 2704 + components: + - type: Transform + pos: 39.5,48.5 + parent: 2 + - uid: 2705 + components: + - type: Transform + pos: 40.5,48.5 + parent: 2 + - uid: 2706 + components: + - type: Transform + pos: 41.5,48.5 + parent: 2 + - uid: 2707 + components: + - type: Transform + pos: 42.5,48.5 + parent: 2 + - uid: 2708 + components: + - type: Transform + pos: -6.5,50.5 + parent: 2 + - uid: 2709 + components: + - type: Transform + pos: -4.5,50.5 + parent: 2 + - uid: 2710 + components: + - type: Transform + pos: -3.5,50.5 + parent: 2 + - uid: 2711 + components: + - type: Transform + pos: -2.5,50.5 + parent: 2 + - uid: 2712 + components: + - type: Transform + pos: -1.5,50.5 + parent: 2 + - uid: 2713 + components: + - type: Transform + pos: -0.5,50.5 + parent: 2 + - uid: 2714 + components: + - type: Transform + pos: 0.5,50.5 + parent: 2 + - uid: 2715 + components: + - type: Transform + pos: -0.5,51.5 + parent: 2 + - uid: 2716 + components: + - type: Transform + pos: -4.5,51.5 + parent: 2 + - uid: 2717 + components: + - type: Transform + pos: 31.5,57.5 + parent: 2 + - uid: 2718 + components: + - type: Transform + pos: 31.5,56.5 + parent: 2 + - uid: 2719 + components: + - type: Transform + pos: 31.5,55.5 + parent: 2 + - uid: 2720 + components: + - type: Transform + pos: 31.5,54.5 + parent: 2 + - uid: 2721 + components: + - type: Transform + pos: 31.5,53.5 + parent: 2 + - uid: 2722 + components: + - type: Transform + pos: 30.5,53.5 + parent: 2 + - uid: 2723 + components: + - type: Transform + pos: 29.5,53.5 + parent: 2 + - uid: 2724 + components: + - type: Transform + pos: 29.5,54.5 + parent: 2 + - uid: 2725 + components: + - type: Transform + pos: 29.5,55.5 + parent: 2 + - uid: 2726 + components: + - type: Transform + pos: 29.5,56.5 + parent: 2 + - uid: 2727 + components: + - type: Transform + pos: 30.5,56.5 + parent: 2 + - uid: 2728 + components: + - type: Transform + pos: 30.5,52.5 + parent: 2 + - uid: 2729 + components: + - type: Transform + pos: 30.5,51.5 + parent: 2 + - uid: 2730 + components: + - type: Transform + pos: 30.5,50.5 + parent: 2 + - uid: 2731 + components: + - type: Transform + pos: 37.5,45.5 + parent: 2 + - uid: 2732 + components: + - type: Transform + pos: 37.5,42.5 + parent: 2 + - uid: 2733 + components: + - type: Transform + pos: 37.5,43.5 + parent: 2 + - uid: 2734 + components: + - type: Transform + pos: 38.5,44.5 + parent: 2 + - uid: 2735 + components: + - type: Transform + pos: 36.5,44.5 + parent: 2 + - uid: 2736 + components: + - type: Transform + pos: 35.5,44.5 + parent: 2 + - uid: 2737 + components: + - type: Transform + pos: 37.5,41.5 + parent: 2 + - uid: 2738 + components: + - type: Transform + pos: 37.5,40.5 + parent: 2 + - uid: 2739 + components: + - type: Transform + pos: 37.5,39.5 + parent: 2 + - uid: 2740 + components: + - type: Transform + pos: 37.5,38.5 + parent: 2 + - uid: 2741 + components: + - type: Transform + pos: 37.5,37.5 + parent: 2 + - uid: 2742 + components: + - type: Transform + pos: 38.5,40.5 + parent: 2 + - uid: 2743 + components: + - type: Transform + pos: 39.5,40.5 + parent: 2 + - uid: 2744 + components: + - type: Transform + pos: 40.5,40.5 + parent: 2 + - uid: 2745 + components: + - type: Transform + pos: 41.5,40.5 + parent: 2 + - uid: 2746 + components: + - type: Transform + pos: 36.5,40.5 + parent: 2 + - uid: 2747 + components: + - type: Transform + pos: 35.5,40.5 + parent: 2 + - uid: 2748 + components: + - type: Transform + pos: 38.5,37.5 + parent: 2 + - uid: 2749 + components: + - type: Transform + pos: 39.5,37.5 + parent: 2 + - uid: 2750 + components: + - type: Transform + pos: 40.5,37.5 + parent: 2 + - uid: 2751 + components: + - type: Transform + pos: 41.5,37.5 + parent: 2 + - uid: 2752 + components: + - type: Transform + pos: 41.5,41.5 + parent: 2 + - uid: 2753 + components: + - type: Transform + pos: 41.5,42.5 + parent: 2 + - uid: 2754 + components: + - type: Transform + pos: 41.5,43.5 + parent: 2 + - uid: 2755 + components: + - type: Transform + pos: 41.5,44.5 + parent: 2 + - uid: 2756 + components: + - type: Transform + pos: 41.5,45.5 + parent: 2 + - uid: 2757 + components: + - type: Transform + pos: 34.5,44.5 + parent: 2 + - uid: 2758 + components: + - type: Transform + pos: 33.5,44.5 + parent: 2 + - uid: 2759 + components: + - type: Transform + pos: 32.5,44.5 + parent: 2 + - uid: 2760 + components: + - type: Transform + pos: 32.5,45.5 + parent: 2 + - uid: 2761 + components: + - type: Transform + pos: 32.5,46.5 + parent: 2 + - uid: 2762 + components: + - type: Transform + pos: 32.5,43.5 + parent: 2 + - uid: 2763 + components: + - type: Transform + pos: 32.5,42.5 + parent: 2 + - uid: 2764 + components: + - type: Transform + pos: 32.5,41.5 + parent: 2 + - uid: 2765 + components: + - type: Transform + pos: 32.5,40.5 + parent: 2 + - uid: 2766 + components: + - type: Transform + pos: 32.5,39.5 + parent: 2 + - uid: 2767 + components: + - type: Transform + pos: 32.5,38.5 + parent: 2 + - uid: 2768 + components: + - type: Transform + pos: 32.5,37.5 + parent: 2 + - uid: 2769 + components: + - type: Transform + pos: 32.5,36.5 + parent: 2 + - uid: 2770 + components: + - type: Transform + pos: 32.5,35.5 + parent: 2 + - uid: 2771 + components: + - type: Transform + pos: 32.5,34.5 + parent: 2 + - uid: 2772 + components: + - type: Transform + pos: 32.5,33.5 + parent: 2 + - uid: 2773 + components: + - type: Transform + pos: 32.5,32.5 + parent: 2 + - uid: 2774 + components: + - type: Transform + pos: 32.5,31.5 + parent: 2 + - uid: 2775 + components: + - type: Transform + pos: 32.5,30.5 + parent: 2 + - uid: 2776 + components: + - type: Transform + pos: 32.5,29.5 + parent: 2 + - uid: 2777 + components: + - type: Transform + pos: 32.5,28.5 + parent: 2 + - uid: 2778 + components: + - type: Transform + pos: 32.5,27.5 + parent: 2 + - uid: 2779 + components: + - type: Transform + pos: 32.5,26.5 + parent: 2 + - uid: 2780 + components: + - type: Transform + pos: 32.5,25.5 + parent: 2 + - uid: 2781 + components: + - type: Transform + pos: 32.5,24.5 + parent: 2 + - uid: 2782 + components: + - type: Transform + pos: 40.5,53.5 + parent: 2 + - uid: 2783 + components: + - type: Transform + pos: 39.5,53.5 + parent: 2 + - uid: 2784 + components: + - type: Transform + pos: 39.5,54.5 + parent: 2 + - uid: 2785 + components: + - type: Transform + pos: 39.5,55.5 + parent: 2 + - uid: 2786 + components: + - type: Transform + pos: 39.5,51.5 + parent: 2 + - uid: 2787 + components: + - type: Transform + pos: 40.5,51.5 + parent: 2 + - uid: 2788 + components: + - type: Transform + pos: 41.5,51.5 + parent: 2 + - uid: 2789 + components: + - type: Transform + pos: 42.5,51.5 + parent: 2 + - uid: 2790 + components: + - type: Transform + pos: 41.5,53.5 + parent: 2 + - uid: 2791 + components: + - type: Transform + pos: 42.5,53.5 + parent: 2 + - uid: 2792 + components: + - type: Transform + pos: 43.5,53.5 + parent: 2 + - uid: 2793 + components: + - type: Transform + pos: 41.5,33.5 + parent: 2 + - uid: 2794 + components: + - type: Transform + pos: 41.5,32.5 + parent: 2 + - uid: 2795 + components: + - type: Transform + pos: 41.5,31.5 + parent: 2 + - uid: 2796 + components: + - type: Transform + pos: 42.5,31.5 + parent: 2 + - uid: 2797 + components: + - type: Transform + pos: 43.5,31.5 + parent: 2 + - uid: 2798 + components: + - type: Transform + pos: 38.5,31.5 + parent: 2 + - uid: 2799 + components: + - type: Transform + pos: 38.5,30.5 + parent: 2 + - uid: 2800 + components: + - type: Transform + pos: 38.5,29.5 + parent: 2 + - uid: 2801 + components: + - type: Transform + pos: 38.5,28.5 + parent: 2 + - uid: 2802 + components: + - type: Transform + pos: 38.5,27.5 + parent: 2 + - uid: 2803 + components: + - type: Transform + pos: 39.5,28.5 + parent: 2 + - uid: 2804 + components: + - type: Transform + pos: 40.5,28.5 + parent: 2 + - uid: 2805 + components: + - type: Transform + pos: 41.5,28.5 + parent: 2 + - uid: 2806 + components: + - type: Transform + pos: 42.5,28.5 + parent: 2 + - uid: 2807 + components: + - type: Transform + pos: -10.5,47.5 + parent: 2 + - uid: 2808 + components: + - type: Transform + pos: -10.5,48.5 + parent: 2 + - uid: 2809 + components: + - type: Transform + pos: -11.5,48.5 + parent: 2 + - uid: 2810 + components: + - type: Transform + pos: -12.5,48.5 + parent: 2 + - uid: 2811 + components: + - type: Transform + pos: -13.5,48.5 + parent: 2 + - uid: 2812 + components: + - type: Transform + pos: -14.5,48.5 + parent: 2 + - uid: 2813 + components: + - type: Transform + pos: -15.5,48.5 + parent: 2 + - uid: 2814 + components: + - type: Transform + pos: -16.5,48.5 + parent: 2 + - uid: 2815 + components: + - type: Transform + pos: -9.5,48.5 + parent: 2 + - uid: 2816 + components: + - type: Transform + pos: -8.5,48.5 + parent: 2 + - uid: 2817 + components: + - type: Transform + pos: -7.5,48.5 + parent: 2 + - uid: 2818 + components: + - type: Transform + pos: -6.5,48.5 + parent: 2 + - uid: 2819 + components: + - type: Transform + pos: -5.5,48.5 + parent: 2 + - uid: 2820 + components: + - type: Transform + pos: -4.5,48.5 + parent: 2 + - uid: 2821 + components: + - type: Transform + pos: -3.5,48.5 + parent: 2 + - uid: 2822 + components: + - type: Transform + pos: -2.5,48.5 + parent: 2 + - uid: 2823 + components: + - type: Transform + pos: -1.5,48.5 + parent: 2 + - uid: 2824 + components: + - type: Transform + pos: -0.5,48.5 + parent: 2 + - uid: 2825 + components: + - type: Transform + pos: 0.5,48.5 + parent: 2 + - uid: 2826 + components: + - type: Transform + pos: 1.5,48.5 + parent: 2 + - uid: 2827 + components: + - type: Transform + pos: 2.5,48.5 + parent: 2 + - uid: 2828 + components: + - type: Transform + pos: 3.5,48.5 + parent: 2 + - uid: 2829 + components: + - type: Transform + pos: 0.5,47.5 + parent: 2 + - uid: 2830 + components: + - type: Transform + pos: 0.5,46.5 + parent: 2 + - uid: 2831 + components: + - type: Transform + pos: 0.5,45.5 + parent: 2 + - uid: 2832 + components: + - type: Transform + pos: -1.5,33.5 + parent: 2 + - uid: 2833 + components: + - type: Transform + pos: -0.5,33.5 + parent: 2 + - uid: 2834 + components: + - type: Transform + pos: 0.5,33.5 + parent: 2 + - uid: 2835 + components: + - type: Transform + pos: 0.5,34.5 + parent: 2 + - uid: 2836 + components: + - type: Transform + pos: 0.5,35.5 + parent: 2 + - uid: 2837 + components: + - type: Transform + pos: 0.5,36.5 + parent: 2 + - uid: 2838 + components: + - type: Transform + pos: 0.5,37.5 + parent: 2 + - uid: 2839 + components: + - type: Transform + pos: 0.5,38.5 + parent: 2 + - uid: 2840 + components: + - type: Transform + pos: 0.5,39.5 + parent: 2 + - uid: 2841 + components: + - type: Transform + pos: 0.5,40.5 + parent: 2 + - uid: 2842 + components: + - type: Transform + pos: 0.5,41.5 + parent: 2 + - uid: 2843 + components: + - type: Transform + pos: 0.5,42.5 + parent: 2 + - uid: 2844 + components: + - type: Transform + pos: 0.5,43.5 + parent: 2 + - uid: 2845 + components: + - type: Transform + pos: 0.5,32.5 + parent: 2 + - uid: 2846 + components: + - type: Transform + pos: 0.5,31.5 + parent: 2 + - uid: 2847 + components: + - type: Transform + pos: 0.5,30.5 + parent: 2 + - uid: 2848 + components: + - type: Transform + pos: 0.5,29.5 + parent: 2 + - uid: 2849 + components: + - type: Transform + pos: 0.5,28.5 + parent: 2 + - uid: 2850 + components: + - type: Transform + pos: 0.5,27.5 + parent: 2 + - uid: 2851 + components: + - type: Transform + pos: 0.5,26.5 + parent: 2 + - uid: 2852 + components: + - type: Transform + pos: 0.5,25.5 + parent: 2 + - uid: 2853 + components: + - type: Transform + pos: 0.5,24.5 + parent: 2 + - uid: 2854 + components: + - type: Transform + pos: 0.5,23.5 + parent: 2 + - uid: 2855 + components: + - type: Transform + pos: 0.5,22.5 + parent: 2 + - uid: 2856 + components: + - type: Transform + pos: 11.5,19.5 + parent: 2 + - uid: 2857 + components: + - type: Transform + pos: -5.5,20.5 + parent: 2 + - uid: 2858 + components: + - type: Transform + pos: -6.5,20.5 + parent: 2 + - uid: 2859 + components: + - type: Transform + pos: -4.5,20.5 + parent: 2 + - uid: 2860 + components: + - type: Transform + pos: -3.5,20.5 + parent: 2 + - uid: 2861 + components: + - type: Transform + pos: -2.5,20.5 + parent: 2 + - uid: 2862 + components: + - type: Transform + pos: -1.5,20.5 + parent: 2 + - uid: 2863 + components: + - type: Transform + pos: -0.5,20.5 + parent: 2 + - uid: 2864 + components: + - type: Transform + pos: 0.5,20.5 + parent: 2 + - uid: 2865 + components: + - type: Transform + pos: 1.5,20.5 + parent: 2 + - uid: 2866 + components: + - type: Transform + pos: 2.5,20.5 + parent: 2 + - uid: 2867 + components: + - type: Transform + pos: 3.5,20.5 + parent: 2 + - uid: 2868 + components: + - type: Transform + pos: 11.5,20.5 + parent: 2 + - uid: 2869 + components: + - type: Transform + pos: 10.5,20.5 + parent: 2 + - uid: 2870 + components: + - type: Transform + pos: 9.5,20.5 + parent: 2 + - uid: 2871 + components: + - type: Transform + pos: 8.5,20.5 + parent: 2 + - uid: 2872 + components: + - type: Transform + pos: 7.5,20.5 + parent: 2 + - uid: 2873 + components: + - type: Transform + pos: 6.5,20.5 + parent: 2 + - uid: 2874 + components: + - type: Transform + pos: 5.5,20.5 + parent: 2 + - uid: 2875 + components: + - type: Transform + pos: 12.5,20.5 + parent: 2 + - uid: 2876 + components: + - type: Transform + pos: 13.5,20.5 + parent: 2 + - uid: 2877 + components: + - type: Transform + pos: 14.5,20.5 + parent: 2 + - uid: 2878 + components: + - type: Transform + pos: 15.5,20.5 + parent: 2 + - uid: 2879 + components: + - type: Transform + pos: 16.5,20.5 + parent: 2 + - uid: 2880 + components: + - type: Transform + pos: 17.5,20.5 + parent: 2 + - uid: 2881 + components: + - type: Transform + pos: 18.5,20.5 + parent: 2 + - uid: 2882 + components: + - type: Transform + pos: 19.5,20.5 + parent: 2 + - uid: 2883 + components: + - type: Transform + pos: 15.5,19.5 + parent: 2 + - uid: 2884 + components: + - type: Transform + pos: 15.5,18.5 + parent: 2 + - uid: 2885 + components: + - type: Transform + pos: 15.5,17.5 + parent: 2 + - uid: 2886 + components: + - type: Transform + pos: 16.5,17.5 + parent: 2 + - uid: 2887 + components: + - type: Transform + pos: 17.5,17.5 + parent: 2 + - uid: 2888 + components: + - type: Transform + pos: 15.5,21.5 + parent: 2 + - uid: 2889 + components: + - type: Transform + pos: 15.5,22.5 + parent: 2 + - uid: 2890 + components: + - type: Transform + pos: 16.5,22.5 + parent: 2 + - uid: 2891 + components: + - type: Transform + pos: 17.5,22.5 + parent: 2 + - uid: 2892 + components: + - type: Transform + pos: 14.5,22.5 + parent: 2 + - uid: 2893 + components: + - type: Transform + pos: 13.5,22.5 + parent: 2 + - uid: 2894 + components: + - type: Transform + pos: 24.5,19.5 + parent: 2 + - uid: 2895 + components: + - type: Transform + pos: 24.5,20.5 + parent: 2 + - uid: 2896 + components: + - type: Transform + pos: 24.5,21.5 + parent: 2 + - uid: 2897 + components: + - type: Transform + pos: 23.5,20.5 + parent: 2 + - uid: 2898 + components: + - type: Transform + pos: 22.5,20.5 + parent: 2 + - uid: 2899 + components: + - type: Transform + pos: 21.5,20.5 + parent: 2 + - uid: 2900 + components: + - type: Transform + pos: 25.5,20.5 + parent: 2 + - uid: 2901 + components: + - type: Transform + pos: 26.5,20.5 + parent: 2 + - uid: 2902 + components: + - type: Transform + pos: 27.5,20.5 + parent: 2 + - uid: 2903 + components: + - type: Transform + pos: 28.5,20.5 + parent: 2 + - uid: 2904 + components: + - type: Transform + pos: 29.5,20.5 + parent: 2 + - uid: 2905 + components: + - type: Transform + pos: 30.5,20.5 + parent: 2 + - uid: 2906 + components: + - type: Transform + pos: 31.5,20.5 + parent: 2 + - uid: 2907 + components: + - type: Transform + pos: 32.5,20.5 + parent: 2 + - uid: 2908 + components: + - type: Transform + pos: 32.5,21.5 + parent: 2 + - uid: 2909 + components: + - type: Transform + pos: 32.5,22.5 + parent: 2 + - uid: 2910 + components: + - type: Transform + pos: 32.5,19.5 + parent: 2 + - uid: 2911 + components: + - type: Transform + pos: 19.5,41.5 + parent: 2 + - uid: 2912 + components: + - type: Transform + pos: 19.5,40.5 + parent: 2 + - uid: 2913 + components: + - type: Transform + pos: 19.5,39.5 + parent: 2 + - uid: 2914 + components: + - type: Transform + pos: 19.5,38.5 + parent: 2 + - uid: 2915 + components: + - type: Transform + pos: 19.5,37.5 + parent: 2 + - uid: 2916 + components: + - type: Transform + pos: 20.5,38.5 + parent: 2 + - uid: 2917 + components: + - type: Transform + pos: 18.5,38.5 + parent: 2 + - uid: 2918 + components: + - type: Transform + pos: 17.5,38.5 + parent: 2 + - uid: 2919 + components: + - type: Transform + pos: 15.5,38.5 + parent: 2 + - uid: 2920 + components: + - type: Transform + pos: 19.5,44.5 + parent: 2 + - uid: 2921 + components: + - type: Transform + pos: 20.5,44.5 + parent: 2 + - uid: 2922 + components: + - type: Transform + pos: 21.5,44.5 + parent: 2 + - uid: 2923 + components: + - type: Transform + pos: 21.5,45.5 + parent: 2 + - uid: 2924 + components: + - type: Transform + pos: 21.5,43.5 + parent: 2 + - uid: 2925 + components: + - type: Transform + pos: 22.5,44.5 + parent: 2 + - uid: 2926 + components: + - type: Transform + pos: 23.5,44.5 + parent: 2 + - uid: 2927 + components: + - type: Transform + pos: 24.5,44.5 + parent: 2 + - uid: 2928 + components: + - type: Transform + pos: 25.5,44.5 + parent: 2 + - uid: 2929 + components: + - type: Transform + pos: 26.5,44.5 + parent: 2 + - uid: 2930 + components: + - type: Transform + pos: 27.5,44.5 + parent: 2 + - uid: 2931 + components: + - type: Transform + pos: 28.5,44.5 + parent: 2 + - uid: 2932 + components: + - type: Transform + pos: 27.5,43.5 + parent: 2 + - uid: 2933 + components: + - type: Transform + pos: 27.5,42.5 + parent: 2 + - uid: 2934 + components: + - type: Transform + pos: 27.5,41.5 + parent: 2 + - uid: 2935 + components: + - type: Transform + pos: 27.5,40.5 + parent: 2 + - uid: 2936 + components: + - type: Transform + pos: 27.5,39.5 + parent: 2 + - uid: 2937 + components: + - type: Transform + pos: 27.5,38.5 + parent: 2 + - uid: 2938 + components: + - type: Transform + pos: 23.5,43.5 + parent: 2 + - uid: 2939 + components: + - type: Transform + pos: 23.5,42.5 + parent: 2 + - uid: 2940 + components: + - type: Transform + pos: 23.5,41.5 + parent: 2 + - uid: 2941 + components: + - type: Transform + pos: 23.5,40.5 + parent: 2 + - uid: 2942 + components: + - type: Transform + pos: 23.5,39.5 + parent: 2 + - uid: 2943 + components: + - type: Transform + pos: 23.5,38.5 + parent: 2 + - uid: 2944 + components: + - type: Transform + pos: 15.5,42.5 + parent: 2 + - uid: 2945 + components: + - type: Transform + pos: 16.5,42.5 + parent: 2 + - uid: 2946 + components: + - type: Transform + pos: 17.5,42.5 + parent: 2 + - uid: 2947 + components: + - type: Transform + pos: 17.5,43.5 + parent: 2 + - uid: 2948 + components: + - type: Transform + pos: 17.5,44.5 + parent: 2 + - uid: 2949 + components: + - type: Transform + pos: 17.5,45.5 + parent: 2 + - uid: 2950 + components: + - type: Transform + pos: 16.5,44.5 + parent: 2 + - uid: 2951 + components: + - type: Transform + pos: 17.5,41.5 + parent: 2 + - uid: 2952 + components: + - type: Transform + pos: 15.5,44.5 + parent: 2 + - uid: 2953 + components: + - type: Transform + pos: 14.5,44.5 + parent: 2 + - uid: 2954 + components: + - type: Transform + pos: 13.5,44.5 + parent: 2 + - uid: 2955 + components: + - type: Transform + pos: 12.5,44.5 + parent: 2 + - uid: 2956 + components: + - type: Transform + pos: 11.5,44.5 + parent: 2 + - uid: 2957 + components: + - type: Transform + pos: 14.5,38.5 + parent: 2 + - uid: 2958 + components: + - type: Transform + pos: 13.5,38.5 + parent: 2 + - uid: 2959 + components: + - type: Transform + pos: 12.5,38.5 + parent: 2 + - uid: 2960 + components: + - type: Transform + pos: 11.5,38.5 + parent: 2 + - uid: 2961 + components: + - type: Transform + pos: 12.5,39.5 + parent: 2 + - uid: 2962 + components: + - type: Transform + pos: 12.5,40.5 + parent: 2 + - uid: 2963 + components: + - type: Transform + pos: 12.5,41.5 + parent: 2 + - uid: 2964 + components: + - type: Transform + pos: 12.5,37.5 + parent: 2 + - uid: 2965 + components: + - type: Transform + pos: 14.5,39.5 + parent: 2 + - uid: 2966 + components: + - type: Transform + pos: 14.5,40.5 + parent: 2 + - uid: 2967 + components: + - type: Transform + pos: 14.5,41.5 + parent: 2 + - uid: 2968 + components: + - type: Transform + pos: 14.5,37.5 + parent: 2 + - uid: 2969 + components: + - type: Transform + pos: 13.5,32.5 + parent: 2 + - uid: 2970 + components: + - type: Transform + pos: 14.5,31.5 + parent: 2 + - uid: 2971 + components: + - type: Transform + pos: 14.5,30.5 + parent: 2 + - uid: 2972 + components: + - type: Transform + pos: 15.5,31.5 + parent: 2 + - uid: 2973 + components: + - type: Transform + pos: 16.5,31.5 + parent: 2 + - uid: 2974 + components: + - type: Transform + pos: 17.5,31.5 + parent: 2 + - uid: 2975 + components: + - type: Transform + pos: 18.5,31.5 + parent: 2 + - uid: 2976 + components: + - type: Transform + pos: 17.5,30.5 + parent: 2 + - uid: 2977 + components: + - type: Transform + pos: 17.5,29.5 + parent: 2 + - uid: 2978 + components: + - type: Transform + pos: 17.5,28.5 + parent: 2 + - uid: 2979 + components: + - type: Transform + pos: 17.5,27.5 + parent: 2 + - uid: 2980 + components: + - type: Transform + pos: 17.5,26.5 + parent: 2 + - uid: 2981 + components: + - type: Transform + pos: 17.5,25.5 + parent: 2 + - uid: 2982 + components: + - type: Transform + pos: 17.5,24.5 + parent: 2 + - uid: 2983 + components: + - type: Transform + pos: 18.5,32.5 + parent: 2 + - uid: 2984 + components: + - type: Transform + pos: 18.5,33.5 + parent: 2 + - uid: 2985 + components: + - type: Transform + pos: 18.5,34.5 + parent: 2 + - uid: 2986 + components: + - type: Transform + pos: 18.5,35.5 + parent: 2 + - uid: 2987 + components: + - type: Transform + pos: 17.5,35.5 + parent: 2 + - uid: 2988 + components: + - type: Transform + pos: 16.5,35.5 + parent: 2 + - uid: 2989 + components: + - type: Transform + pos: 15.5,35.5 + parent: 2 + - uid: 2990 + components: + - type: Transform + pos: 14.5,35.5 + parent: 2 + - uid: 2991 + components: + - type: Transform + pos: 13.5,35.5 + parent: 2 + - uid: 2992 + components: + - type: Transform + pos: 12.5,35.5 + parent: 2 + - uid: 2993 + components: + - type: Transform + pos: 11.5,35.5 + parent: 2 + - uid: 2994 + components: + - type: Transform + pos: 10.5,35.5 + parent: 2 + - uid: 2995 + components: + - type: Transform + pos: 9.5,35.5 + parent: 2 + - uid: 2996 + components: + - type: Transform + pos: 8.5,35.5 + parent: 2 + - uid: 2997 + components: + - type: Transform + pos: 13.5,31.5 + parent: 2 + - uid: 2998 + components: + - type: Transform + pos: 12.5,31.5 + parent: 2 + - uid: 2999 + components: + - type: Transform + pos: 11.5,31.5 + parent: 2 + - uid: 3000 + components: + - type: Transform + pos: 10.5,31.5 + parent: 2 + - uid: 3001 + components: + - type: Transform + pos: 9.5,31.5 + parent: 2 + - uid: 3002 + components: + - type: Transform + pos: 8.5,31.5 + parent: 2 + - uid: 3003 + components: + - type: Transform + pos: 8.5,32.5 + parent: 2 + - uid: 3004 + components: + - type: Transform + pos: 8.5,33.5 + parent: 2 + - uid: 3005 + components: + - type: Transform + pos: 8.5,34.5 + parent: 2 + - uid: 3006 + components: + - type: Transform + pos: 9.5,33.5 + parent: 2 + - uid: 3007 + components: + - type: Transform + pos: 10.5,33.5 + parent: 2 + - uid: 3008 + components: + - type: Transform + pos: 11.5,33.5 + parent: 2 + - uid: 3009 + components: + - type: Transform + pos: 12.5,33.5 + parent: 2 + - uid: 3010 + components: + - type: Transform + pos: 19.5,33.5 + parent: 2 + - uid: 3011 + components: + - type: Transform + pos: 20.5,33.5 + parent: 2 + - uid: 3012 + components: + - type: Transform + pos: 21.5,33.5 + parent: 2 + - uid: 3013 + components: + - type: Transform + pos: 22.5,33.5 + parent: 2 + - uid: 3014 + components: + - type: Transform + pos: 23.5,33.5 + parent: 2 + - uid: 3015 + components: + - type: Transform + pos: 22.5,32.5 + parent: 2 + - uid: 3016 + components: + - type: Transform + pos: 22.5,31.5 + parent: 2 + - uid: 3017 + components: + - type: Transform + pos: 22.5,30.5 + parent: 2 + - uid: 3018 + components: + - type: Transform + pos: 22.5,34.5 + parent: 2 + - uid: 3019 + components: + - type: Transform + pos: 22.5,35.5 + parent: 2 + - uid: 3020 + components: + - type: Transform + pos: 22.5,36.5 + parent: 2 + - uid: 3021 + components: + - type: Transform + pos: 22.5,37.5 + parent: 2 + - uid: 3022 + components: + - type: Transform + pos: 26.5,37.5 + parent: 2 + - uid: 3023 + components: + - type: Transform + pos: 26.5,36.5 + parent: 2 + - uid: 3024 + components: + - type: Transform + pos: 26.5,35.5 + parent: 2 + - uid: 3025 + components: + - type: Transform + pos: 26.5,34.5 + parent: 2 + - uid: 3026 + components: + - type: Transform + pos: 26.5,33.5 + parent: 2 + - uid: 3027 + components: + - type: Transform + pos: 26.5,32.5 + parent: 2 + - uid: 3028 + components: + - type: Transform + pos: 26.5,31.5 + parent: 2 + - uid: 3029 + components: + - type: Transform + pos: 27.5,31.5 + parent: 2 + - uid: 3030 + components: + - type: Transform + pos: 28.5,31.5 + parent: 2 + - uid: 3031 + components: + - type: Transform + pos: 29.5,31.5 + parent: 2 + - uid: 3032 + components: + - type: Transform + pos: 27.5,36.5 + parent: 2 + - uid: 3033 + components: + - type: Transform + pos: 28.5,36.5 + parent: 2 + - uid: 3034 + components: + - type: Transform + pos: 29.5,36.5 + parent: 2 + - uid: 3035 + components: + - type: Transform + pos: 27.5,34.5 + parent: 2 + - uid: 3036 + components: + - type: Transform + pos: 28.5,34.5 + parent: 2 + - uid: 3037 + components: + - type: Transform + pos: 29.5,34.5 + parent: 2 + - uid: 3038 + components: + - type: Transform + pos: 10.5,40.5 + parent: 2 + - uid: 3039 + components: + - type: Transform + pos: 9.5,40.5 + parent: 2 + - uid: 3040 + components: + - type: Transform + pos: 8.5,40.5 + parent: 2 + - uid: 3041 + components: + - type: Transform + pos: 7.5,40.5 + parent: 2 + - uid: 3042 + components: + - type: Transform + pos: 6.5,40.5 + parent: 2 + - uid: 3043 + components: + - type: Transform + pos: 5.5,40.5 + parent: 2 + - uid: 3044 + components: + - type: Transform + pos: 4.5,40.5 + parent: 2 + - uid: 3045 + components: + - type: Transform + pos: 3.5,40.5 + parent: 2 + - uid: 3046 + components: + - type: Transform + pos: 4.5,39.5 + parent: 2 + - uid: 3047 + components: + - type: Transform + pos: 4.5,38.5 + parent: 2 + - uid: 3048 + components: + - type: Transform + pos: 4.5,37.5 + parent: 2 + - uid: 3049 + components: + - type: Transform + pos: 8.5,39.5 + parent: 2 + - uid: 3050 + components: + - type: Transform + pos: 8.5,38.5 + parent: 2 + - uid: 3051 + components: + - type: Transform + pos: 8.5,37.5 + parent: 2 + - uid: 3052 + components: + - type: Transform + pos: 6.5,39.5 + parent: 2 + - uid: 3053 + components: + - type: Transform + pos: 6.5,38.5 + parent: 2 + - uid: 3054 + components: + - type: Transform + pos: 6.5,37.5 + parent: 2 + - uid: 3055 + components: + - type: Transform + pos: 5.5,41.5 + parent: 2 + - uid: 3056 + components: + - type: Transform + pos: 5.5,42.5 + parent: 2 + - uid: 3057 + components: + - type: Transform + pos: 5.5,43.5 + parent: 2 + - uid: 3058 + components: + - type: Transform + pos: 5.5,44.5 + parent: 2 + - uid: 3059 + components: + - type: Transform + pos: 5.5,45.5 + parent: 2 + - uid: 3060 + components: + - type: Transform + pos: 4.5,44.5 + parent: 2 + - uid: 3061 + components: + - type: Transform + pos: 6.5,44.5 + parent: 2 + - uid: 3062 + components: + - type: Transform + pos: 7.5,44.5 + parent: 2 + - uid: 3063 + components: + - type: Transform + pos: 8.5,44.5 + parent: 2 + - uid: 3064 + components: + - type: Transform + pos: 6.5,30.5 + parent: 2 + - uid: 3065 + components: + - type: Transform + pos: 6.5,29.5 + parent: 2 + - uid: 3066 + components: + - type: Transform + pos: 6.5,28.5 + parent: 2 + - uid: 3067 + components: + - type: Transform + pos: 6.5,27.5 + parent: 2 + - uid: 3068 + components: + - type: Transform + pos: 6.5,26.5 + parent: 2 + - uid: 3069 + components: + - type: Transform + pos: 7.5,28.5 + parent: 2 + - uid: 3070 + components: + - type: Transform + pos: 14.5,27.5 + parent: 2 + - uid: 3071 + components: + - type: Transform + pos: 13.5,27.5 + parent: 2 + - uid: 3072 + components: + - type: Transform + pos: 12.5,27.5 + parent: 2 + - uid: 3073 + components: + - type: Transform + pos: 11.5,27.5 + parent: 2 + - uid: 3074 + components: + - type: Transform + pos: 10.5,27.5 + parent: 2 + - uid: 3075 + components: + - type: Transform + pos: 12.5,28.5 + parent: 2 + - uid: 3076 + components: + - type: Transform + pos: 10.5,26.5 + parent: 2 + - uid: 3077 + components: + - type: Transform + pos: 10.5,25.5 + parent: 2 + - uid: 3078 + components: + - type: Transform + pos: 10.5,24.5 + parent: 2 + - uid: 3079 + components: + - type: Transform + pos: 10.5,23.5 + parent: 2 + - uid: 3080 + components: + - type: Transform + pos: 11.5,25.5 + parent: 2 + - uid: 3081 + components: + - type: Transform + pos: 12.5,25.5 + parent: 2 + - uid: 3082 + components: + - type: Transform + pos: 13.5,25.5 + parent: 2 + - uid: 3083 + components: + - type: Transform + pos: 14.5,25.5 + parent: 2 + - uid: 3084 + components: + - type: Transform + pos: 9.5,24.5 + parent: 2 + - uid: 3085 + components: + - type: Transform + pos: 8.5,24.5 + parent: 2 + - uid: 3086 + components: + - type: Transform + pos: 7.5,24.5 + parent: 2 + - uid: 3087 + components: + - type: Transform + pos: 6.5,24.5 + parent: 2 + - uid: 3088 + components: + - type: Transform + pos: 5.5,24.5 + parent: 2 + - uid: 3089 + components: + - type: Transform + pos: 4.5,24.5 + parent: 2 + - uid: 3090 + components: + - type: Transform + pos: 4.5,25.5 + parent: 2 + - uid: 3091 + components: + - type: Transform + pos: 3.5,25.5 + parent: 2 + - uid: 3092 + components: + - type: Transform + pos: 77.5,46.5 + parent: 2 + - uid: 3093 + components: + - type: Transform + pos: 77.5,45.5 + parent: 2 + - uid: 3094 + components: + - type: Transform + pos: 77.5,44.5 + parent: 2 + - uid: 3095 + components: + - type: Transform + pos: 77.5,43.5 + parent: 2 + - uid: 3096 + components: + - type: Transform + pos: 77.5,42.5 + parent: 2 + - uid: 3097 + components: + - type: Transform + pos: 76.5,44.5 + parent: 2 + - uid: 3098 + components: + - type: Transform + pos: 75.5,44.5 + parent: 2 + - uid: 3099 + components: + - type: Transform + pos: 74.5,44.5 + parent: 2 + - uid: 3100 + components: + - type: Transform + pos: 73.5,44.5 + parent: 2 + - uid: 3101 + components: + - type: Transform + pos: 72.5,44.5 + parent: 2 + - uid: 3102 + components: + - type: Transform + pos: 71.5,44.5 + parent: 2 + - uid: 3103 + components: + - type: Transform + pos: 70.5,44.5 + parent: 2 + - uid: 3104 + components: + - type: Transform + pos: 69.5,44.5 + parent: 2 + - uid: 3105 + components: + - type: Transform + pos: 68.5,44.5 + parent: 2 + - uid: 3106 + components: + - type: Transform + pos: 67.5,44.5 + parent: 2 + - uid: 3107 + components: + - type: Transform + pos: 70.5,43.5 + parent: 2 + - uid: 3108 + components: + - type: Transform + pos: 70.5,42.5 + parent: 2 + - uid: 3109 + components: + - type: Transform + pos: 70.5,45.5 + parent: 2 + - uid: 3110 + components: + - type: Transform + pos: 70.5,46.5 + parent: 2 + - uid: 3111 + components: + - type: Transform + pos: 78.5,43.5 + parent: 2 + - uid: 3112 + components: + - type: Transform + pos: 79.5,43.5 + parent: 2 + - uid: 3113 + components: + - type: Transform + pos: 80.5,43.5 + parent: 2 + - uid: 3114 + components: + - type: Transform + pos: 81.5,43.5 + parent: 2 + - uid: 3115 + components: + - type: Transform + pos: 82.5,43.5 + parent: 2 + - uid: 3116 + components: + - type: Transform + pos: 83.5,43.5 + parent: 2 + - uid: 3117 + components: + - type: Transform + pos: 81.5,23.5 + parent: 2 + - uid: 3118 + components: + - type: Transform + pos: 79.5,39.5 + parent: 2 + - uid: 3119 + components: + - type: Transform + pos: 78.5,39.5 + parent: 2 + - uid: 3120 + components: + - type: Transform + pos: 77.5,39.5 + parent: 2 + - uid: 3121 + components: + - type: Transform + pos: 76.5,39.5 + parent: 2 + - uid: 3122 + components: + - type: Transform + pos: 75.5,39.5 + parent: 2 + - uid: 3123 + components: + - type: Transform + pos: 74.5,39.5 + parent: 2 + - uid: 3124 + components: + - type: Transform + pos: 76.5,38.5 + parent: 2 + - uid: 3125 + components: + - type: Transform + pos: 76.5,40.5 + parent: 2 + - uid: 3126 + components: + - type: Transform + pos: 73.5,39.5 + parent: 2 + - uid: 3127 + components: + - type: Transform + pos: 72.5,39.5 + parent: 2 + - uid: 3128 + components: + - type: Transform + pos: 71.5,39.5 + parent: 2 + - uid: 3129 + components: + - type: Transform + pos: 70.5,39.5 + parent: 2 + - uid: 3130 + components: + - type: Transform + pos: 69.5,39.5 + parent: 2 + - uid: 3131 + components: + - type: Transform + pos: 69.5,38.5 + parent: 2 + - uid: 3132 + components: + - type: Transform + pos: 69.5,37.5 + parent: 2 + - uid: 3133 + components: + - type: Transform + pos: 78.5,38.5 + parent: 2 + - uid: 3134 + components: + - type: Transform + pos: 79.5,36.5 + parent: 2 + - uid: 3135 + components: + - type: Transform + pos: 79.5,35.5 + parent: 2 + - uid: 3136 + components: + - type: Transform + pos: 79.5,34.5 + parent: 2 + - uid: 3137 + components: + - type: Transform + pos: 79.5,33.5 + parent: 2 + - uid: 3138 + components: + - type: Transform + pos: 78.5,34.5 + parent: 2 + - uid: 3139 + components: + - type: Transform + pos: 77.5,34.5 + parent: 2 + - uid: 3140 + components: + - type: Transform + pos: 76.5,34.5 + parent: 2 + - uid: 3141 + components: + - type: Transform + pos: 75.5,34.5 + parent: 2 + - uid: 3142 + components: + - type: Transform + pos: 74.5,34.5 + parent: 2 + - uid: 3143 + components: + - type: Transform + pos: 73.5,34.5 + parent: 2 + - uid: 3144 + components: + - type: Transform + pos: 72.5,34.5 + parent: 2 + - uid: 3145 + components: + - type: Transform + pos: 71.5,34.5 + parent: 2 + - uid: 3146 + components: + - type: Transform + pos: 70.5,34.5 + parent: 2 + - uid: 3147 + components: + - type: Transform + pos: 69.5,34.5 + parent: 2 + - uid: 3148 + components: + - type: Transform + pos: 68.5,34.5 + parent: 2 + - uid: 3149 + components: + - type: Transform + pos: 67.5,34.5 + parent: 2 + - uid: 3150 + components: + - type: Transform + pos: 80.5,34.5 + parent: 2 + - uid: 3151 + components: + - type: Transform + pos: 81.5,34.5 + parent: 2 + - uid: 3152 + components: + - type: Transform + pos: 82.5,34.5 + parent: 2 + - uid: 3153 + components: + - type: Transform + pos: 83.5,34.5 + parent: 2 + - uid: 3154 + components: + - type: Transform + pos: 84.5,34.5 + parent: 2 + - uid: 3155 + components: + - type: Transform + pos: 85.5,34.5 + parent: 2 + - uid: 3156 + components: + - type: Transform + pos: 86.5,34.5 + parent: 2 + - uid: 3157 + components: + - type: Transform + pos: 87.5,34.5 + parent: 2 + - uid: 3158 + components: + - type: Transform + pos: 85.5,35.5 + parent: 2 + - uid: 3159 + components: + - type: Transform + pos: 85.5,36.5 + parent: 2 + - uid: 3160 + components: + - type: Transform + pos: 85.5,37.5 + parent: 2 + - uid: 3161 + components: + - type: Transform + pos: 85.5,38.5 + parent: 2 + - uid: 3162 + components: + - type: Transform + pos: 85.5,33.5 + parent: 2 + - uid: 3163 + components: + - type: Transform + pos: 85.5,32.5 + parent: 2 + - uid: 3164 + components: + - type: Transform + pos: 85.5,31.5 + parent: 2 + - uid: 3165 + components: + - type: Transform + pos: 85.5,30.5 + parent: 2 + - uid: 3166 + components: + - type: Transform + pos: 81.5,33.5 + parent: 2 + - uid: 3167 + components: + - type: Transform + pos: 81.5,32.5 + parent: 2 + - uid: 3168 + components: + - type: Transform + pos: 81.5,31.5 + parent: 2 + - uid: 3169 + components: + - type: Transform + pos: 81.5,30.5 + parent: 2 + - uid: 3170 + components: + - type: Transform + pos: 81.5,29.5 + parent: 2 + - uid: 3171 + components: + - type: Transform + pos: 81.5,35.5 + parent: 2 + - uid: 3172 + components: + - type: Transform + pos: 81.5,36.5 + parent: 2 + - uid: 3173 + components: + - type: Transform + pos: 81.5,37.5 + parent: 2 + - uid: 3174 + components: + - type: Transform + pos: 81.5,38.5 + parent: 2 + - uid: 3175 + components: + - type: Transform + pos: 81.5,39.5 + parent: 2 + - uid: 3176 + components: + - type: Transform + pos: 81.5,40.5 + parent: 2 + - uid: 3177 + components: + - type: Transform + pos: 79.5,24.5 + parent: 2 + - uid: 3178 + components: + - type: Transform + pos: 80.5,24.5 + parent: 2 + - uid: 3179 + components: + - type: Transform + pos: 81.5,24.5 + parent: 2 + - uid: 3180 + components: + - type: Transform + pos: 82.5,24.5 + parent: 2 + - uid: 3181 + components: + - type: Transform + pos: 83.5,24.5 + parent: 2 + - uid: 3182 + components: + - type: Transform + pos: 81.5,25.5 + parent: 2 + - uid: 3183 + components: + - type: Transform + pos: 81.5,26.5 + parent: 2 + - uid: 3184 + components: + - type: Transform + pos: 81.5,27.5 + parent: 2 + - uid: 3185 + components: + - type: Transform + pos: 81.5,22.5 + parent: 2 + - uid: 3186 + components: + - type: Transform + pos: 81.5,21.5 + parent: 2 + - uid: 3187 + components: + - type: Transform + pos: 81.5,20.5 + parent: 2 + - uid: 3188 + components: + - type: Transform + pos: 81.5,19.5 + parent: 2 + - uid: 3189 + components: + - type: Transform + pos: 80.5,19.5 + parent: 2 + - uid: 3190 + components: + - type: Transform + pos: 79.5,19.5 + parent: 2 + - uid: 3191 + components: + - type: Transform + pos: 78.5,19.5 + parent: 2 + - uid: 3192 + components: + - type: Transform + pos: 78.5,20.5 + parent: 2 + - uid: 3193 + components: + - type: Transform + pos: 77.5,20.5 + parent: 2 + - uid: 3194 + components: + - type: Transform + pos: 76.5,20.5 + parent: 2 + - uid: 3195 + components: + - type: Transform + pos: 75.5,20.5 + parent: 2 + - uid: 3196 + components: + - type: Transform + pos: 74.5,20.5 + parent: 2 + - uid: 3197 + components: + - type: Transform + pos: 74.5,19.5 + parent: 2 + - uid: 3198 + components: + - type: Transform + pos: 74.5,18.5 + parent: 2 + - uid: 3199 + components: + - type: Transform + pos: 74.5,17.5 + parent: 2 + - uid: 3200 + components: + - type: Transform + pos: 75.5,17.5 + parent: 2 + - uid: 3201 + components: + - type: Transform + pos: 75.5,16.5 + parent: 2 + - uid: 3202 + components: + - type: Transform + pos: 75.5,15.5 + parent: 2 + - uid: 3203 + components: + - type: Transform + pos: 75.5,14.5 + parent: 2 + - uid: 3204 + components: + - type: Transform + pos: 75.5,13.5 + parent: 2 + - uid: 3205 + components: + - type: Transform + pos: 76.5,16.5 + parent: 2 + - uid: 3206 + components: + - type: Transform + pos: 75.5,32.5 + parent: 2 + - uid: 3207 + components: + - type: Transform + pos: 75.5,31.5 + parent: 2 + - uid: 3208 + components: + - type: Transform + pos: 75.5,30.5 + parent: 2 + - uid: 3209 + components: + - type: Transform + pos: 75.5,29.5 + parent: 2 + - uid: 3210 + components: + - type: Transform + pos: 75.5,28.5 + parent: 2 + - uid: 3211 + components: + - type: Transform + pos: 76.5,30.5 + parent: 2 + - uid: 3212 + components: + - type: Transform + pos: 77.5,30.5 + parent: 2 + - uid: 3213 + components: + - type: Transform + pos: 78.5,30.5 + parent: 2 + - uid: 3214 + components: + - type: Transform + pos: 74.5,30.5 + parent: 2 + - uid: 3215 + components: + - type: Transform + pos: 73.5,30.5 + parent: 2 + - uid: 3216 + components: + - type: Transform + pos: 74.5,28.5 + parent: 2 + - uid: 3217 + components: + - type: Transform + pos: 74.5,27.5 + parent: 2 + - uid: 3218 + components: + - type: Transform + pos: 78.5,27.5 + parent: 2 + - uid: 3219 + components: + - type: Transform + pos: 78.5,26.5 + parent: 2 + - uid: 3220 + components: + - type: Transform + pos: 78.5,25.5 + parent: 2 + - uid: 3221 + components: + - type: Transform + pos: 74.5,24.5 + parent: 2 + - uid: 3222 + components: + - type: Transform + pos: 77.5,25.5 + parent: 2 + - uid: 3223 + components: + - type: Transform + pos: 76.5,25.5 + parent: 2 + - uid: 3224 + components: + - type: Transform + pos: 75.5,25.5 + parent: 2 + - uid: 3225 + components: + - type: Transform + pos: 74.5,25.5 + parent: 2 + - uid: 3226 + components: + - type: Transform + pos: 74.5,23.5 + parent: 2 + - uid: 3227 + components: + - type: Transform + pos: 69.5,30.5 + parent: 2 + - uid: 3228 + components: + - type: Transform + pos: 69.5,29.5 + parent: 2 + - uid: 3229 + components: + - type: Transform + pos: 69.5,28.5 + parent: 2 + - uid: 3230 + components: + - type: Transform + pos: 69.5,27.5 + parent: 2 + - uid: 3231 + components: + - type: Transform + pos: 69.5,26.5 + parent: 2 + - uid: 3232 + components: + - type: Transform + pos: 69.5,25.5 + parent: 2 + - uid: 3233 + components: + - type: Transform + pos: 69.5,24.5 + parent: 2 + - uid: 3234 + components: + - type: Transform + pos: 69.5,23.5 + parent: 2 + - uid: 3235 + components: + - type: Transform + pos: 70.5,24.5 + parent: 2 + - uid: 3238 + components: + - type: Transform + pos: 70.5,28.5 + parent: 2 + - uid: 3239 + components: + - type: Transform + pos: 71.5,28.5 + parent: 2 + - uid: 3240 + components: + - type: Transform + pos: 69.5,31.5 + parent: 2 + - uid: 3241 + components: + - type: Transform + pos: 68.5,31.5 + parent: 2 + - uid: 3242 + components: + - type: Transform + pos: 70.5,31.5 + parent: 2 + - uid: 3243 + components: + - type: Transform + pos: 71.5,31.5 + parent: 2 + - uid: 3244 + components: + - type: Transform + pos: 72.5,31.5 + parent: 2 + - uid: 3245 + components: + - type: Transform + pos: 59.5,58.5 + parent: 2 + - uid: 3246 + components: + - type: Transform + pos: 59.5,57.5 + parent: 2 + - uid: 3247 + components: + - type: Transform + pos: 59.5,56.5 + parent: 2 + - uid: 3248 + components: + - type: Transform + pos: 60.5,57.5 + parent: 2 + - uid: 3249 + components: + - type: Transform + pos: 61.5,57.5 + parent: 2 + - uid: 3250 + components: + - type: Transform + pos: 62.5,57.5 + parent: 2 + - uid: 3251 + components: + - type: Transform + pos: 60.5,58.5 + parent: 2 + - uid: 3252 + components: + - type: Transform + pos: 60.5,59.5 + parent: 2 + - uid: 3253 + components: + - type: Transform + pos: 60.5,60.5 + parent: 2 + - uid: 3254 + components: + - type: Transform + pos: 60.5,61.5 + parent: 2 + - uid: 3255 + components: + - type: Transform + pos: 60.5,62.5 + parent: 2 + - uid: 3256 + components: + - type: Transform + pos: 61.5,60.5 + parent: 2 + - uid: 3257 + components: + - type: Transform + pos: 62.5,60.5 + parent: 2 + - uid: 3258 + components: + - type: Transform + pos: 63.5,60.5 + parent: 2 + - uid: 3259 + components: + - type: Transform + pos: 64.5,60.5 + parent: 2 + - uid: 3260 + components: + - type: Transform + pos: 65.5,60.5 + parent: 2 + - uid: 3261 + components: + - type: Transform + pos: 66.5,60.5 + parent: 2 + - uid: 3262 + components: + - type: Transform + pos: 67.5,60.5 + parent: 2 + - uid: 3263 + components: + - type: Transform + pos: 68.5,60.5 + parent: 2 + - uid: 3264 + components: + - type: Transform + pos: 69.5,60.5 + parent: 2 + - uid: 3265 + components: + - type: Transform + pos: 70.5,60.5 + parent: 2 + - uid: 3266 + components: + - type: Transform + pos: 65.5,59.5 + parent: 2 + - uid: 3267 + components: + - type: Transform + pos: 65.5,58.5 + parent: 2 + - uid: 3268 + components: + - type: Transform + pos: 65.5,57.5 + parent: 2 + - uid: 3269 + components: + - type: Transform + pos: 65.5,56.5 + parent: 2 + - uid: 3270 + components: + - type: Transform + pos: 65.5,55.5 + parent: 2 + - uid: 3271 + components: + - type: Transform + pos: 65.5,54.5 + parent: 2 + - uid: 3272 + components: + - type: Transform + pos: 65.5,53.5 + parent: 2 + - uid: 3273 + components: + - type: Transform + pos: 65.5,52.5 + parent: 2 + - uid: 3274 + components: + - type: Transform + pos: 69.5,56.5 + parent: 2 + - uid: 3275 + components: + - type: Transform + pos: 71.5,56.5 + parent: 2 + - uid: 3276 + components: + - type: Transform + pos: 70.5,54.5 + parent: 2 + - uid: 3277 + components: + - type: Transform + pos: 70.5,58.5 + parent: 2 + - uid: 3278 + components: + - type: Transform + pos: 65.5,61.5 + parent: 2 + - uid: 3279 + components: + - type: Transform + pos: 68.5,61.5 + parent: 2 + - uid: 3280 + components: + - type: Transform + pos: 65.5,45.5 + parent: 2 + - uid: 3281 + components: + - type: Transform + pos: 65.5,44.5 + parent: 2 + - uid: 3282 + components: + - type: Transform + pos: 65.5,43.5 + parent: 2 + - uid: 3283 + components: + - type: Transform + pos: 65.5,42.5 + parent: 2 + - uid: 3284 + components: + - type: Transform + pos: 65.5,41.5 + parent: 2 + - uid: 3285 + components: + - type: Transform + pos: 65.5,40.5 + parent: 2 + - uid: 3286 + components: + - type: Transform + pos: 65.5,39.5 + parent: 2 + - uid: 3287 + components: + - type: Transform + pos: 65.5,38.5 + parent: 2 + - uid: 3288 + components: + - type: Transform + pos: 65.5,37.5 + parent: 2 + - uid: 3289 + components: + - type: Transform + pos: 65.5,36.5 + parent: 2 + - uid: 3290 + components: + - type: Transform + pos: 67.5,56.5 + parent: 2 + - uid: 3291 + components: + - type: Transform + pos: 66.5,56.5 + parent: 2 + - uid: 3292 + components: + - type: Transform + pos: 65.5,46.5 + parent: 2 + - uid: 3293 + components: + - type: Transform + pos: 65.5,47.5 + parent: 2 + - uid: 3294 + components: + - type: Transform + pos: 65.5,48.5 + parent: 2 + - uid: 3295 + components: + - type: Transform + pos: 65.5,49.5 + parent: 2 + - uid: 3296 + components: + - type: Transform + pos: 65.5,50.5 + parent: 2 + - uid: 3297 + components: + - type: Transform + pos: 65.5,51.5 + parent: 2 + - uid: 3298 + components: + - type: Transform + pos: 68.5,56.5 + parent: 2 + - uid: 3299 + components: + - type: Transform + pos: 68.5,63.5 + parent: 2 + - uid: 3300 + components: + - type: Transform + pos: 68.5,64.5 + parent: 2 + - uid: 3301 + components: + - type: Transform + pos: 70.5,61.5 + parent: 2 + - uid: 3302 + components: + - type: Transform + pos: 70.5,62.5 + parent: 2 + - uid: 3303 + components: + - type: Transform + pos: 70.5,63.5 + parent: 2 + - uid: 3304 + components: + - type: Transform + pos: 70.5,64.5 + parent: 2 + - uid: 3305 + components: + - type: Transform + pos: 62.5,61.5 + parent: 2 + - uid: 3306 + components: + - type: Transform + pos: 62.5,62.5 + parent: 2 + - uid: 3307 + components: + - type: Transform + pos: 62.5,63.5 + parent: 2 + - uid: 3308 + components: + - type: Transform + pos: 62.5,64.5 + parent: 2 + - uid: 3309 + components: + - type: Transform + pos: 60.5,63.5 + parent: 2 + - uid: 3310 + components: + - type: Transform + pos: 60.5,64.5 + parent: 2 + - uid: 3311 + components: + - type: Transform + pos: 71.5,60.5 + parent: 2 + - uid: 3312 + components: + - type: Transform + pos: 72.5,60.5 + parent: 2 + - uid: 3313 + components: + - type: Transform + pos: 73.5,60.5 + parent: 2 + - uid: 3314 + components: + - type: Transform + pos: 74.5,60.5 + parent: 2 + - uid: 3315 + components: + - type: Transform + pos: 75.5,60.5 + parent: 2 + - uid: 3316 + components: + - type: Transform + pos: 76.5,60.5 + parent: 2 + - uid: 3317 + components: + - type: Transform + pos: 77.5,60.5 + parent: 2 + - uid: 3318 + components: + - type: Transform + pos: 78.5,60.5 + parent: 2 + - uid: 3319 + components: + - type: Transform + pos: 79.5,60.5 + parent: 2 + - uid: 3320 + components: + - type: Transform + pos: 80.5,60.5 + parent: 2 + - uid: 3321 + components: + - type: Transform + pos: 74.5,61.5 + parent: 2 + - uid: 3322 + components: + - type: Transform + pos: 74.5,59.5 + parent: 2 + - uid: 3323 + components: + - type: Transform + pos: 70.5,22.5 + parent: 2 + - uid: 3324 + components: + - type: Transform + pos: 70.5,21.5 + parent: 2 + - uid: 3325 + components: + - type: Transform + pos: 70.5,20.5 + parent: 2 + - uid: 3326 + components: + - type: Transform + pos: 70.5,19.5 + parent: 2 + - uid: 3327 + components: + - type: Transform + pos: 70.5,18.5 + parent: 2 + - uid: 3328 + components: + - type: Transform + pos: 70.5,17.5 + parent: 2 + - uid: 3329 + components: + - type: Transform + pos: 71.5,19.5 + parent: 2 + - uid: 3330 + components: + - type: Transform + pos: 72.5,19.5 + parent: 2 + - uid: 3331 + components: + - type: Transform + pos: 69.5,19.5 + parent: 2 + - uid: 3332 + components: + - type: Transform + pos: 68.5,19.5 + parent: 2 + - uid: 3333 + components: + - type: Transform + pos: 67.5,19.5 + parent: 2 + - uid: 3334 + components: + - type: Transform + pos: 66.5,19.5 + parent: 2 + - uid: 3335 + components: + - type: Transform + pos: 65.5,19.5 + parent: 2 + - uid: 3336 + components: + - type: Transform + pos: 64.5,19.5 + parent: 2 + - uid: 3337 + components: + - type: Transform + pos: 65.5,20.5 + parent: 2 + - uid: 3338 + components: + - type: Transform + pos: 65.5,21.5 + parent: 2 + - uid: 3339 + components: + - type: Transform + pos: 65.5,22.5 + parent: 2 + - uid: 3340 + components: + - type: Transform + pos: 65.5,23.5 + parent: 2 + - uid: 3341 + components: + - type: Transform + pos: 65.5,24.5 + parent: 2 + - uid: 3342 + components: + - type: Transform + pos: 65.5,25.5 + parent: 2 + - uid: 3343 + components: + - type: Transform + pos: 65.5,26.5 + parent: 2 + - uid: 3344 + components: + - type: Transform + pos: 65.5,27.5 + parent: 2 + - uid: 3345 + components: + - type: Transform + pos: 65.5,28.5 + parent: 2 + - uid: 3346 + components: + - type: Transform + pos: 65.5,29.5 + parent: 2 + - uid: 3347 + components: + - type: Transform + pos: 65.5,30.5 + parent: 2 + - uid: 3348 + components: + - type: Transform + pos: 65.5,31.5 + parent: 2 + - uid: 3349 + components: + - type: Transform + pos: 65.5,32.5 + parent: 2 + - uid: 3350 + components: + - type: Transform + pos: 65.5,18.5 + parent: 2 + - uid: 3351 + components: + - type: Transform + pos: 65.5,17.5 + parent: 2 + - uid: 3352 + components: + - type: Transform + pos: 65.5,16.5 + parent: 2 + - uid: 3353 + components: + - type: Transform + pos: 65.5,15.5 + parent: 2 + - uid: 3354 + components: + - type: Transform + pos: 65.5,14.5 + parent: 2 + - uid: 3355 + components: + - type: Transform + pos: 65.5,13.5 + parent: 2 + - uid: 3356 + components: + - type: Transform + pos: 64.5,15.5 + parent: 2 + - uid: 3357 + components: + - type: Transform + pos: 66.5,15.5 + parent: 2 + - uid: 3358 + components: + - type: Transform + pos: 67.5,15.5 + parent: 2 + - uid: 3359 + components: + - type: Transform + pos: 73.5,16.5 + parent: 2 + - uid: 3360 + components: + - type: Transform + pos: 73.5,15.5 + parent: 2 + - uid: 3361 + components: + - type: Transform + pos: 73.5,14.5 + parent: 2 + - uid: 3362 + components: + - type: Transform + pos: 73.5,13.5 + parent: 2 + - uid: 3363 + components: + - type: Transform + pos: 72.5,14.5 + parent: 2 + - uid: 3364 + components: + - type: Transform + pos: 71.5,14.5 + parent: 2 + - uid: 3365 + components: + - type: Transform + pos: 70.5,14.5 + parent: 2 + - uid: 3366 + components: + - type: Transform + pos: 69.5,14.5 + parent: 2 + - uid: 3367 + components: + - type: Transform + pos: 62.5,6.5 + parent: 2 + - uid: 3368 + components: + - type: Transform + pos: 63.5,6.5 + parent: 2 + - uid: 3369 + components: + - type: Transform + pos: 64.5,6.5 + parent: 2 + - uid: 3370 + components: + - type: Transform + pos: 65.5,6.5 + parent: 2 + - uid: 3371 + components: + - type: Transform + pos: 66.5,6.5 + parent: 2 + - uid: 3372 + components: + - type: Transform + pos: 67.5,6.5 + parent: 2 + - uid: 3373 + components: + - type: Transform + pos: 65.5,5.5 + parent: 2 + - uid: 3374 + components: + - type: Transform + pos: 65.5,4.5 + parent: 2 + - uid: 3375 + components: + - type: Transform + pos: 65.5,3.5 + parent: 2 + - uid: 3376 + components: + - type: Transform + pos: 65.5,2.5 + parent: 2 + - uid: 3377 + components: + - type: Transform + pos: 65.5,1.5 + parent: 2 + - uid: 3378 + components: + - type: Transform + pos: 65.5,0.5 + parent: 2 + - uid: 3379 + components: + - type: Transform + pos: 66.5,3.5 + parent: 2 + - uid: 3380 + components: + - type: Transform + pos: 67.5,3.5 + parent: 2 + - uid: 3381 + components: + - type: Transform + pos: 68.5,3.5 + parent: 2 + - uid: 3382 + components: + - type: Transform + pos: 69.5,3.5 + parent: 2 + - uid: 3383 + components: + - type: Transform + pos: 70.5,3.5 + parent: 2 + - uid: 3384 + components: + - type: Transform + pos: 71.5,3.5 + parent: 2 + - uid: 3385 + components: + - type: Transform + pos: 72.5,3.5 + parent: 2 + - uid: 3386 + components: + - type: Transform + pos: 73.5,3.5 + parent: 2 + - uid: 3387 + components: + - type: Transform + pos: 74.5,3.5 + parent: 2 + - uid: 3388 + components: + - type: Transform + pos: 75.5,3.5 + parent: 2 + - uid: 3389 + components: + - type: Transform + pos: 73.5,2.5 + parent: 2 + - uid: 3390 + components: + - type: Transform + pos: 73.5,1.5 + parent: 2 + - uid: 3391 + components: + - type: Transform + pos: 73.5,0.5 + parent: 2 + - uid: 3392 + components: + - type: Transform + pos: 73.5,-0.5 + parent: 2 + - uid: 3393 + components: + - type: Transform + pos: 73.5,-1.5 + parent: 2 + - uid: 3394 + components: + - type: Transform + pos: 73.5,-2.5 + parent: 2 + - uid: 3395 + components: + - type: Transform + pos: 73.5,-3.5 + parent: 2 + - uid: 3396 + components: + - type: Transform + pos: 73.5,-4.5 + parent: 2 + - uid: 3397 + components: + - type: Transform + pos: 76.5,0.5 + parent: 2 + - uid: 3398 + components: + - type: Transform + pos: 77.5,0.5 + parent: 2 + - uid: 3399 + components: + - type: Transform + pos: 75.5,0.5 + parent: 2 + - uid: 3400 + components: + - type: Transform + pos: 74.5,0.5 + parent: 2 + - uid: 3401 + components: + - type: Transform + pos: 73.5,4.5 + parent: 2 + - uid: 3402 + components: + - type: Transform + pos: 73.5,5.5 + parent: 2 + - uid: 3403 + components: + - type: Transform + pos: 73.5,6.5 + parent: 2 + - uid: 3404 + components: + - type: Transform + pos: 73.5,7.5 + parent: 2 + - uid: 3405 + components: + - type: Transform + pos: 73.5,8.5 + parent: 2 + - uid: 3406 + components: + - type: Transform + pos: 74.5,7.5 + parent: 2 + - uid: 3407 + components: + - type: Transform + pos: 75.5,7.5 + parent: 2 + - uid: 3408 + components: + - type: Transform + pos: 76.5,7.5 + parent: 2 + - uid: 3409 + components: + - type: Transform + pos: 77.5,7.5 + parent: 2 + - uid: 3410 + components: + - type: Transform + pos: 75.5,4.5 + parent: 2 + - uid: 3411 + components: + - type: Transform + pos: 65.5,7.5 + parent: 2 + - uid: 3412 + components: + - type: Transform + pos: 65.5,8.5 + parent: 2 + - uid: 3413 + components: + - type: Transform + pos: 65.5,9.5 + parent: 2 + - uid: 3414 + components: + - type: Transform + pos: 65.5,10.5 + parent: 2 + - uid: 3415 + components: + - type: Transform + pos: 65.5,11.5 + parent: 2 + - uid: 3416 + components: + - type: Transform + pos: 64.5,10.5 + parent: 2 + - uid: 3417 + components: + - type: Transform + pos: 63.5,10.5 + parent: 2 + - uid: 3418 + components: + - type: Transform + pos: 62.5,10.5 + parent: 2 + - uid: 3419 + components: + - type: Transform + pos: 66.5,10.5 + parent: 2 + - uid: 3420 + components: + - type: Transform + pos: 67.5,10.5 + parent: 2 + - uid: 3421 + components: + - type: Transform + pos: 68.5,10.5 + parent: 2 + - uid: 3422 + components: + - type: Transform + pos: 69.5,10.5 + parent: 2 + - uid: 3423 + components: + - type: Transform + pos: 70.5,10.5 + parent: 2 + - uid: 3424 + components: + - type: Transform + pos: 71.5,10.5 + parent: 2 + - uid: 3425 + components: + - type: Transform + pos: 72.5,10.5 + parent: 2 + - uid: 3426 + components: + - type: Transform + pos: 73.5,10.5 + parent: 2 + - uid: 3427 + components: + - type: Transform + pos: 73.5,9.5 + parent: 2 + - uid: 3428 + components: + - type: Transform + pos: 19.5,24.5 + parent: 2 + - uid: 3429 + components: + - type: Transform + pos: 20.5,24.5 + parent: 2 + - uid: 3430 + components: + - type: Transform + pos: 21.5,24.5 + parent: 2 + - uid: 3431 + components: + - type: Transform + pos: 22.5,24.5 + parent: 2 + - uid: 3432 + components: + - type: Transform + pos: 23.5,24.5 + parent: 2 + - uid: 3433 + components: + - type: Transform + pos: 23.5,24.5 + parent: 2 + - uid: 3434 + components: + - type: Transform + pos: 22.5,25.5 + parent: 2 + - uid: 3435 + components: + - type: Transform + pos: 22.5,26.5 + parent: 2 + - uid: 3436 + components: + - type: Transform + pos: 22.5,27.5 + parent: 2 + - uid: 3437 + components: + - type: Transform + pos: 22.5,28.5 + parent: 2 + - uid: 3438 + components: + - type: Transform + pos: 22.5,23.5 + parent: 2 + - uid: 3439 + components: + - type: Transform + pos: 24.5,27.5 + parent: 2 + - uid: 3440 + components: + - type: Transform + pos: 25.5,27.5 + parent: 2 + - uid: 3441 + components: + - type: Transform + pos: 26.5,27.5 + parent: 2 + - uid: 3442 + components: + - type: Transform + pos: 27.5,27.5 + parent: 2 + - uid: 3443 + components: + - type: Transform + pos: 28.5,27.5 + parent: 2 + - uid: 3444 + components: + - type: Transform + pos: 29.5,27.5 + parent: 2 + - uid: 3445 + components: + - type: Transform + pos: 27.5,26.5 + parent: 2 + - uid: 3446 + components: + - type: Transform + pos: 27.5,25.5 + parent: 2 + - uid: 3447 + components: + - type: Transform + pos: 27.5,24.5 + parent: 2 + - uid: 3448 + components: + - type: Transform + pos: 27.5,23.5 + parent: 2 + - uid: 3449 + components: + - type: Transform + pos: 27.5,28.5 + parent: 2 + - uid: 3450 + components: + - type: Transform + pos: 27.5,29.5 + parent: 2 + - uid: 3451 + components: + - type: Transform + pos: -32.5,40.5 + parent: 2 + - uid: 3452 + components: + - type: Transform + pos: -32.5,39.5 + parent: 2 + - uid: 3453 + components: + - type: Transform + pos: -32.5,38.5 + parent: 2 + - uid: 3454 + components: + - type: Transform + pos: -32.5,37.5 + parent: 2 + - uid: 3455 + components: + - type: Transform + pos: -32.5,36.5 + parent: 2 + - uid: 3456 + components: + - type: Transform + pos: -32.5,35.5 + parent: 2 + - uid: 3457 + components: + - type: Transform + pos: -32.5,34.5 + parent: 2 + - uid: 3458 + components: + - type: Transform + pos: -31.5,37.5 + parent: 2 + - uid: 3459 + components: + - type: Transform + pos: -30.5,37.5 + parent: 2 + - uid: 3460 + components: + - type: Transform + pos: -32.5,34.5 + parent: 2 + - uid: 3461 + components: + - type: Transform + pos: -31.5,34.5 + parent: 2 + - uid: 3462 + components: + - type: Transform + pos: -31.5,33.5 + parent: 2 + - uid: 3463 + components: + - type: Transform + pos: -31.5,32.5 + parent: 2 + - uid: 3464 + components: + - type: Transform + pos: -31.5,31.5 + parent: 2 + - uid: 3465 + components: + - type: Transform + pos: -31.5,30.5 + parent: 2 + - uid: 3466 + components: + - type: Transform + pos: -31.5,29.5 + parent: 2 + - uid: 3467 + components: + - type: Transform + pos: -33.5,34.5 + parent: 2 + - uid: 3468 + components: + - type: Transform + pos: -34.5,34.5 + parent: 2 + - uid: 3469 + components: + - type: Transform + pos: -35.5,34.5 + parent: 2 + - uid: 3470 + components: + - type: Transform + pos: -36.5,34.5 + parent: 2 + - uid: 3471 + components: + - type: Transform + pos: -33.5,37.5 + parent: 2 + - uid: 3472 + components: + - type: Transform + pos: -34.5,37.5 + parent: 2 + - uid: 3473 + components: + - type: Transform + pos: -35.5,37.5 + parent: 2 + - uid: 3474 + components: + - type: Transform + pos: -36.5,37.5 + parent: 2 + - uid: 3475 + components: + - type: Transform + pos: -31.5,39.5 + parent: 2 + - uid: 3476 + components: + - type: Transform + pos: -30.5,39.5 + parent: 2 + - uid: 3477 + components: + - type: Transform + pos: -33.5,39.5 + parent: 2 + - uid: 3478 + components: + - type: Transform + pos: -34.5,39.5 + parent: 2 + - uid: 3479 + components: + - type: Transform + pos: -35.5,39.5 + parent: 2 + - uid: 3480 + components: + - type: Transform + pos: -36.5,39.5 + parent: 2 + - uid: 3481 + components: + - type: Transform + pos: -37.5,34.5 + parent: 2 + - uid: 3482 + components: + - type: Transform + pos: -37.5,35.5 + parent: 2 + - uid: 3483 + components: + - type: Transform + pos: -37.5,36.5 + parent: 2 + - uid: 3484 + components: + - type: Transform + pos: -37.5,37.5 + parent: 2 + - uid: 3485 + components: + - type: Transform + pos: -37.5,38.5 + parent: 2 + - uid: 3486 + components: + - type: Transform + pos: -37.5,39.5 + parent: 2 + - uid: 3487 + components: + - type: Transform + pos: -30.5,7.5 + parent: 2 + - uid: 3488 + components: + - type: Transform + pos: -30.5,8.5 + parent: 2 + - uid: 3489 + components: + - type: Transform + pos: -30.5,9.5 + parent: 2 + - uid: 3490 + components: + - type: Transform + pos: -30.5,10.5 + parent: 2 + - uid: 3491 + components: + - type: Transform + pos: -30.5,11.5 + parent: 2 + - uid: 3492 + components: + - type: Transform + pos: -30.5,12.5 + parent: 2 + - uid: 3493 + components: + - type: Transform + pos: -30.5,13.5 + parent: 2 + - uid: 3494 + components: + - type: Transform + pos: -30.5,14.5 + parent: 2 + - uid: 3495 + components: + - type: Transform + pos: -30.5,15.5 + parent: 2 + - uid: 3496 + components: + - type: Transform + pos: -30.5,16.5 + parent: 2 + - uid: 3497 + components: + - type: Transform + pos: -30.5,17.5 + parent: 2 + - uid: 3498 + components: + - type: Transform + pos: -30.5,18.5 + parent: 2 + - uid: 3499 + components: + - type: Transform + pos: -29.5,14.5 + parent: 2 + - uid: 3500 + components: + - type: Transform + pos: -28.5,14.5 + parent: 2 + - uid: 3501 + components: + - type: Transform + pos: -27.5,14.5 + parent: 2 + - uid: 3502 + components: + - type: Transform + pos: -26.5,14.5 + parent: 2 + - uid: 3503 + components: + - type: Transform + pos: -25.5,14.5 + parent: 2 + - uid: 3504 + components: + - type: Transform + pos: -29.5,10.5 + parent: 2 + - uid: 3505 + components: + - type: Transform + pos: -28.5,10.5 + parent: 2 + - uid: 3506 + components: + - type: Transform + pos: -27.5,10.5 + parent: 2 + - uid: 3507 + components: + - type: Transform + pos: -31.5,10.5 + parent: 2 + - uid: 3508 + components: + - type: Transform + pos: -32.5,10.5 + parent: 2 + - uid: 3509 + components: + - type: Transform + pos: -33.5,10.5 + parent: 2 + - uid: 3510 + components: + - type: Transform + pos: -31.5,14.5 + parent: 2 + - uid: 3511 + components: + - type: Transform + pos: -32.5,14.5 + parent: 2 + - uid: 3512 + components: + - type: Transform + pos: -33.5,14.5 + parent: 2 + - uid: 3513 + components: + - type: Transform + pos: 7.5,80.5 + parent: 2 + - uid: 3514 + components: + - type: Transform + pos: 8.5,80.5 + parent: 2 + - uid: 3515 + components: + - type: Transform + pos: 9.5,80.5 + parent: 2 + - uid: 3516 + components: + - type: Transform + pos: -15.5,38.5 + parent: 2 + - uid: 3517 + components: + - type: Transform + pos: -14.5,36.5 + parent: 2 + - uid: 3518 + components: + - type: Transform + pos: -16.5,38.5 + parent: 2 + - uid: 3519 + components: + - type: Transform + pos: -14.5,37.5 + parent: 2 + - uid: 3520 + components: + - type: Transform + pos: -14.5,34.5 + parent: 2 + - uid: 3521 + components: + - type: Transform + pos: -14.5,35.5 + parent: 2 + - uid: 3522 + components: + - type: Transform + pos: -14.5,33.5 + parent: 2 + - uid: 3523 + components: + - type: Transform + pos: -14.5,32.5 + parent: 2 + - uid: 3524 + components: + - type: Transform + pos: -15.5,38.5 + parent: 2 + - uid: 3525 + components: + - type: Transform + pos: -14.5,31.5 + parent: 2 + - uid: 3526 + components: + - type: Transform + pos: -14.5,30.5 + parent: 2 + - uid: 3527 + components: + - type: Transform + pos: -14.5,30.5 + parent: 2 + - uid: 3528 + components: + - type: Transform + pos: -14.5,30.5 + parent: 2 + - uid: 3529 + components: + - type: Transform + pos: -15.5,30.5 + parent: 2 + - uid: 3530 + components: + - type: Transform + pos: -16.5,30.5 + parent: 2 + - uid: 3531 + components: + - type: Transform + pos: -16.5,30.5 + parent: 2 + - uid: 3532 + components: + - type: Transform + pos: -13.5,30.5 + parent: 2 + - uid: 3533 + components: + - type: Transform + pos: -13.5,30.5 + parent: 2 + - uid: 3534 + components: + - type: Transform + pos: -15.5,34.5 + parent: 2 + - uid: 3535 + components: + - type: Transform + pos: -16.5,34.5 + parent: 2 + - uid: 3536 + components: + - type: Transform + pos: -17.5,34.5 + parent: 2 + - uid: 3537 + components: + - type: Transform + pos: -18.5,34.5 + parent: 2 + - uid: 3538 + components: + - type: Transform + pos: -19.5,34.5 + parent: 2 + - uid: 3539 + components: + - type: Transform + pos: -20.5,34.5 + parent: 2 + - uid: 3540 + components: + - type: Transform + pos: -21.5,34.5 + parent: 2 + - uid: 3541 + components: + - type: Transform + pos: -22.5,34.5 + parent: 2 + - uid: 3542 + components: + - type: Transform + pos: -23.5,34.5 + parent: 2 + - uid: 3543 + components: + - type: Transform + pos: -24.5,34.5 + parent: 2 + - uid: 3544 + components: + - type: Transform + pos: -25.5,34.5 + parent: 2 + - uid: 3545 + components: + - type: Transform + pos: -26.5,34.5 + parent: 2 + - uid: 3546 + components: + - type: Transform + pos: -26.5,35.5 + parent: 2 + - uid: 3547 + components: + - type: Transform + pos: -26.5,36.5 + parent: 2 + - uid: 3548 + components: + - type: Transform + pos: -26.5,37.5 + parent: 2 + - uid: 3549 + components: + - type: Transform + pos: -26.5,38.5 + parent: 2 + - uid: 3550 + components: + - type: Transform + pos: -26.5,39.5 + parent: 2 + - uid: 3551 + components: + - type: Transform + pos: -26.5,40.5 + parent: 2 + - uid: 3552 + components: + - type: Transform + pos: -26.5,41.5 + parent: 2 + - uid: 3553 + components: + - type: Transform + pos: -26.5,41.5 + parent: 2 + - uid: 3554 + components: + - type: Transform + pos: -25.5,41.5 + parent: 2 + - uid: 3555 + components: + - type: Transform + pos: -24.5,41.5 + parent: 2 + - uid: 3556 + components: + - type: Transform + pos: -23.5,41.5 + parent: 2 + - uid: 3557 + components: + - type: Transform + pos: -22.5,41.5 + parent: 2 + - uid: 3558 + components: + - type: Transform + pos: -21.5,41.5 + parent: 2 + - uid: 3559 + components: + - type: Transform + pos: -20.5,41.5 + parent: 2 + - uid: 3560 + components: + - type: Transform + pos: -19.5,41.5 + parent: 2 + - uid: 3561 + components: + - type: Transform + pos: -18.5,41.5 + parent: 2 + - uid: 3562 + components: + - type: Transform + pos: -17.5,41.5 + parent: 2 + - uid: 3563 + components: + - type: Transform + pos: -16.5,41.5 + parent: 2 + - uid: 3564 + components: + - type: Transform + pos: -15.5,41.5 + parent: 2 + - uid: 3565 + components: + - type: Transform + pos: -14.5,41.5 + parent: 2 + - uid: 3566 + components: + - type: Transform + pos: -13.5,41.5 + parent: 2 + - uid: 3567 + components: + - type: Transform + pos: -14.5,40.5 + parent: 2 + - uid: 3568 + components: + - type: Transform + pos: -14.5,39.5 + parent: 2 + - uid: 3569 + components: + - type: Transform + pos: -25.5,38.5 + parent: 2 + - uid: 3570 + components: + - type: Transform + pos: -24.5,38.5 + parent: 2 + - uid: 3571 + components: + - type: Transform + pos: -23.5,38.5 + parent: 2 + - uid: 3572 + components: + - type: Transform + pos: -22.5,38.5 + parent: 2 + - uid: 3573 + components: + - type: Transform + pos: -26.5,33.5 + parent: 2 + - uid: 3574 + components: + - type: Transform + pos: -26.5,32.5 + parent: 2 + - uid: 3575 + components: + - type: Transform + pos: -26.5,31.5 + parent: 2 + - uid: 3576 + components: + - type: Transform + pos: -26.5,30.5 + parent: 2 + - uid: 3577 + components: + - type: Transform + pos: -26.5,29.5 + parent: 2 + - uid: 3578 + components: + - type: Transform + pos: -26.5,28.5 + parent: 2 + - uid: 3579 + components: + - type: Transform + pos: -26.5,27.5 + parent: 2 + - uid: 3580 + components: + - type: Transform + pos: -26.5,27.5 + parent: 2 + - uid: 3581 + components: + - type: Transform + pos: -27.5,27.5 + parent: 2 + - uid: 3582 + components: + - type: Transform + pos: -27.5,27.5 + parent: 2 + - uid: 3583 + components: + - type: Transform + pos: -25.5,27.5 + parent: 2 + - uid: 3584 + components: + - type: Transform + pos: -24.5,27.5 + parent: 2 + - uid: 3585 + components: + - type: Transform + pos: -23.5,27.5 + parent: 2 + - uid: 3586 + components: + - type: Transform + pos: -22.5,27.5 + parent: 2 + - uid: 3587 + components: + - type: Transform + pos: -21.5,27.5 + parent: 2 + - uid: 3588 + components: + - type: Transform + pos: -20.5,27.5 + parent: 2 + - uid: 3589 + components: + - type: Transform + pos: -19.5,27.5 + parent: 2 + - uid: 3590 + components: + - type: Transform + pos: -18.5,27.5 + parent: 2 + - uid: 3591 + components: + - type: Transform + pos: -17.5,27.5 + parent: 2 + - uid: 3592 + components: + - type: Transform + pos: -16.5,27.5 + parent: 2 + - uid: 3593 + components: + - type: Transform + pos: -15.5,27.5 + parent: 2 + - uid: 3594 + components: + - type: Transform + pos: -14.5,27.5 + parent: 2 + - uid: 3595 + components: + - type: Transform + pos: -13.5,27.5 + parent: 2 + - uid: 3596 + components: + - type: Transform + pos: -24.5,26.5 + parent: 2 + - uid: 3597 + components: + - type: Transform + pos: -24.5,25.5 + parent: 2 + - uid: 3598 + components: + - type: Transform + pos: -23.5,25.5 + parent: 2 + - uid: 3599 + components: + - type: Transform + pos: -22.5,25.5 + parent: 2 + - uid: 3600 + components: + - type: Transform + pos: -21.5,25.5 + parent: 2 + - uid: 3601 + components: + - type: Transform + pos: -20.5,25.5 + parent: 2 + - uid: 3602 + components: + - type: Transform + pos: -19.5,25.5 + parent: 2 + - uid: 3603 + components: + - type: Transform + pos: -18.5,25.5 + parent: 2 + - uid: 3604 + components: + - type: Transform + pos: -17.5,25.5 + parent: 2 + - uid: 3605 + components: + - type: Transform + pos: -17.5,25.5 + parent: 2 + - uid: 3606 + components: + - type: Transform + pos: -17.5,26.5 + parent: 2 + - uid: 3607 + components: + - type: Transform + pos: -14.5,28.5 + parent: 2 + - uid: 3608 + components: + - type: Transform + pos: -14.5,29.5 + parent: 2 + - uid: 3609 + components: + - type: Transform + pos: -19.5,28.5 + parent: 2 + - uid: 3610 + components: + - type: Transform + pos: -19.5,29.5 + parent: 2 + - uid: 3611 + components: + - type: Transform + pos: -19.5,30.5 + parent: 2 + - uid: 3612 + components: + - type: Transform + pos: -19.5,31.5 + parent: 2 + - uid: 3613 + components: + - type: Transform + pos: -25.5,30.5 + parent: 2 + - uid: 3614 + components: + - type: Transform + pos: -24.5,30.5 + parent: 2 + - uid: 3615 + components: + - type: Transform + pos: -23.5,30.5 + parent: 2 + - uid: 3616 + components: + - type: Transform + pos: -22.5,30.5 + parent: 2 + - uid: 3617 + components: + - type: Transform + pos: -22.5,30.5 + parent: 2 + - uid: 3618 + components: + - type: Transform + pos: -22.5,30.5 + parent: 2 + - uid: 3619 + components: + - type: Transform + pos: -19.5,40.5 + parent: 2 + - uid: 3620 + components: + - type: Transform + pos: -19.5,39.5 + parent: 2 + - uid: 3621 + components: + - type: Transform + pos: -19.5,38.5 + parent: 2 + - uid: 3622 + components: + - type: Transform + pos: -19.5,37.5 + parent: 2 + - uid: 3623 + components: + - type: Transform + pos: -14.5,25.5 + parent: 2 + - uid: 3624 + components: + - type: Transform + pos: -14.5,24.5 + parent: 2 + - uid: 3625 + components: + - type: Transform + pos: -14.5,23.5 + parent: 2 + - uid: 3626 + components: + - type: Transform + pos: -14.5,22.5 + parent: 2 + - uid: 3627 + components: + - type: Transform + pos: -13.5,24.5 + parent: 2 + - uid: 3628 + components: + - type: Transform + pos: -12.5,24.5 + parent: 2 + - uid: 3629 + components: + - type: Transform + pos: -14.5,26.5 + parent: 2 + - uid: 3630 + components: + - type: Transform + pos: -14.5,1.5 + parent: 2 + - uid: 3631 + components: + - type: Transform + pos: -14.5,0.5 + parent: 2 + - uid: 3632 + components: + - type: Transform + pos: -14.5,-0.5 + parent: 2 + - uid: 3633 + components: + - type: Transform + pos: -14.5,-1.5 + parent: 2 + - uid: 3634 + components: + - type: Transform + pos: -15.5,-1.5 + parent: 2 + - uid: 3635 + components: + - type: Transform + pos: -16.5,-1.5 + parent: 2 + - uid: 3636 + components: + - type: Transform + pos: -16.5,-2.5 + parent: 2 + - uid: 3637 + components: + - type: Transform + pos: -16.5,-3.5 + parent: 2 + - uid: 3638 + components: + - type: Transform + pos: -16.5,-4.5 + parent: 2 + - uid: 3639 + components: + - type: Transform + pos: -16.5,-5.5 + parent: 2 + - uid: 3640 + components: + - type: Transform + pos: -16.5,-6.5 + parent: 2 + - uid: 3641 + components: + - type: Transform + pos: -16.5,-7.5 + parent: 2 + - uid: 3642 + components: + - type: Transform + pos: -15.5,2.5 + parent: 2 + - uid: 3643 + components: + - type: Transform + pos: -16.5,2.5 + parent: 2 + - uid: 3644 + components: + - type: Transform + pos: -15.5,-3.5 + parent: 2 + - uid: 3645 + components: + - type: Transform + pos: -14.5,-3.5 + parent: 2 + - uid: 3646 + components: + - type: Transform + pos: -15.5,-7.5 + parent: 2 + - uid: 3647 + components: + - type: Transform + pos: -14.5,-7.5 + parent: 2 + - uid: 3648 + components: + - type: Transform + pos: -17.5,0.5 + parent: 2 + - uid: 3649 + components: + - type: Transform + pos: -17.5,1.5 + parent: 2 + - uid: 3650 + components: + - type: Transform + pos: -17.5,2.5 + parent: 2 + - uid: 3651 + components: + - type: Transform + pos: -16.5,-8.5 + parent: 2 + - uid: 3652 + components: + - type: Transform + pos: -16.5,-9.5 + parent: 2 + - uid: 3653 + components: + - type: Transform + pos: -16.5,-10.5 + parent: 2 + - uid: 3654 + components: + - type: Transform + pos: -16.5,-11.5 + parent: 2 + - uid: 3655 + components: + - type: Transform + pos: -16.5,-12.5 + parent: 2 + - uid: 3656 + components: + - type: Transform + pos: -17.5,-12.5 + parent: 2 + - uid: 3657 + components: + - type: Transform + pos: -18.5,-12.5 + parent: 2 + - uid: 3658 + components: + - type: Transform + pos: -15.5,-12.5 + parent: 2 + - uid: 3659 + components: + - type: Transform + pos: -14.5,-12.5 + parent: 2 + - uid: 3660 + components: + - type: Transform + pos: -13.5,-12.5 + parent: 2 + - uid: 3661 + components: + - type: Transform + pos: -15.5,-9.5 + parent: 2 + - uid: 3662 + components: + - type: Transform + pos: -14.5,-9.5 + parent: 2 + - uid: 3663 + components: + - type: Transform + pos: -13.5,-9.5 + parent: 2 + - uid: 3664 + components: + - type: Transform + pos: -17.5,-9.5 + parent: 2 + - uid: 3665 + components: + - type: Transform + pos: -18.5,-9.5 + parent: 2 + - uid: 3666 + components: + - type: Transform + pos: -17.5,-0.5 + parent: 2 + - uid: 3667 + components: + - type: Transform + pos: -17.5,-1.5 + parent: 2 + - uid: 3668 + components: + - type: Transform + pos: -6.5,18.5 + parent: 2 + - uid: 3669 + components: + - type: Transform + pos: 27.5,-11.5 + parent: 2 + - uid: 3670 + components: + - type: Transform + pos: 26.5,-11.5 + parent: 2 + - uid: 3671 + components: + - type: Transform + pos: 25.5,-11.5 + parent: 2 + - uid: 3672 + components: + - type: Transform + pos: 26.5,-10.5 + parent: 2 + - uid: 3673 + components: + - type: Transform + pos: 26.5,-9.5 + parent: 2 + - uid: 3674 + components: + - type: Transform + pos: 26.5,-8.5 + parent: 2 + - uid: 3675 + components: + - type: Transform + pos: 26.5,-12.5 + parent: 2 + - uid: 3676 + components: + - type: Transform + pos: 26.5,-13.5 + parent: 2 + - uid: 3677 + components: + - type: Transform + pos: 26.5,-14.5 + parent: 2 + - uid: 3678 + components: + - type: Transform + pos: 25.5,-13.5 + parent: 2 + - uid: 3679 + components: + - type: Transform + pos: 24.5,-13.5 + parent: 2 + - uid: 3680 + components: + - type: Transform + pos: 23.5,-13.5 + parent: 2 + - uid: 3681 + components: + - type: Transform + pos: 27.5,-13.5 + parent: 2 + - uid: 3682 + components: + - type: Transform + pos: 28.5,-13.5 + parent: 2 + - uid: 3683 + components: + - type: Transform + pos: 29.5,-13.5 + parent: 2 + - uid: 3684 + components: + - type: Transform + pos: 25.5,-9.5 + parent: 2 + - uid: 3685 + components: + - type: Transform + pos: 24.5,-9.5 + parent: 2 + - uid: 3686 + components: + - type: Transform + pos: 23.5,-9.5 + parent: 2 + - uid: 3687 + components: + - type: Transform + pos: 27.5,-9.5 + parent: 2 + - uid: 3688 + components: + - type: Transform + pos: 28.5,-9.5 + parent: 2 + - uid: 3689 + components: + - type: Transform + pos: 29.5,-9.5 + parent: 2 + - uid: 3690 + components: + - type: Transform + pos: 29.5,-11.5 + parent: 2 + - uid: 3691 + components: + - type: Transform + pos: 29.5,-10.5 + parent: 2 + - uid: 3692 + components: + - type: Transform + pos: 29.5,-12.5 + parent: 2 + - uid: 3693 + components: + - type: Transform + pos: 30.5,-11.5 + parent: 2 + - uid: 3694 + components: + - type: Transform + pos: 31.5,-11.5 + parent: 2 + - uid: 3695 + components: + - type: Transform + pos: 32.5,-11.5 + parent: 2 + - uid: 3696 + components: + - type: Transform + pos: 33.5,-11.5 + parent: 2 + - uid: 3697 + components: + - type: Transform + pos: 34.5,-11.5 + parent: 2 + - uid: 3698 + components: + - type: Transform + pos: 35.5,-11.5 + parent: 2 + - uid: 3699 + components: + - type: Transform + pos: 36.5,-11.5 + parent: 2 + - uid: 3700 + components: + - type: Transform + pos: 37.5,-11.5 + parent: 2 + - uid: 3701 + components: + - type: Transform + pos: 33.5,-10.5 + parent: 2 + - uid: 3702 + components: + - type: Transform + pos: 33.5,-9.5 + parent: 2 + - uid: 3703 + components: + - type: Transform + pos: 33.5,-8.5 + parent: 2 + - uid: 3704 + components: + - type: Transform + pos: 33.5,-13.5 + parent: 2 + - uid: 3705 + components: + - type: Transform + pos: 33.5,-12.5 + parent: 2 + - uid: 3706 + components: + - type: Transform + pos: 33.5,-7.5 + parent: 2 + - uid: 3707 + components: + - type: Transform + pos: 33.5,-6.5 + parent: 2 + - uid: 3708 + components: + - type: Transform + pos: 33.5,-5.5 + parent: 2 + - uid: 3709 + components: + - type: Transform + pos: 34.5,-6.5 + parent: 2 + - uid: 3710 + components: + - type: Transform + pos: 35.5,-6.5 + parent: 2 + - uid: 3711 + components: + - type: Transform + pos: 36.5,-6.5 + parent: 2 + - uid: 3712 + components: + - type: Transform + pos: 37.5,-6.5 + parent: 2 + - uid: 3713 + components: + - type: Transform + pos: 38.5,-6.5 + parent: 2 + - uid: 3714 + components: + - type: Transform + pos: 39.5,-6.5 + parent: 2 + - uid: 3715 + components: + - type: Transform + pos: 39.5,-7.5 + parent: 2 + - uid: 3716 + components: + - type: Transform + pos: 40.5,-7.5 + parent: 2 + - uid: 3717 + components: + - type: Transform + pos: 40.5,-8.5 + parent: 2 + - uid: 3718 + components: + - type: Transform + pos: 40.5,-9.5 + parent: 2 + - uid: 3719 + components: + - type: Transform + pos: 40.5,-10.5 + parent: 2 + - uid: 3720 + components: + - type: Transform + pos: 40.5,-11.5 + parent: 2 + - uid: 3721 + components: + - type: Transform + pos: 40.5,-12.5 + parent: 2 + - uid: 3722 + components: + - type: Transform + pos: 40.5,-13.5 + parent: 2 + - uid: 3723 + components: + - type: Transform + pos: 40.5,-14.5 + parent: 2 + - uid: 3724 + components: + - type: Transform + pos: 40.5,-15.5 + parent: 2 + - uid: 3725 + components: + - type: Transform + pos: 39.5,-15.5 + parent: 2 + - uid: 3726 + components: + - type: Transform + pos: 39.5,-16.5 + parent: 2 + - uid: 3727 + components: + - type: Transform + pos: 38.5,-16.5 + parent: 2 + - uid: 3728 + components: + - type: Transform + pos: 37.5,-16.5 + parent: 2 + - uid: 3729 + components: + - type: Transform + pos: 36.5,-16.5 + parent: 2 + - uid: 3730 + components: + - type: Transform + pos: 35.5,-16.5 + parent: 2 + - uid: 3731 + components: + - type: Transform + pos: 34.5,-16.5 + parent: 2 + - uid: 3732 + components: + - type: Transform + pos: 33.5,-16.5 + parent: 2 + - uid: 3733 + components: + - type: Transform + pos: 32.5,-16.5 + parent: 2 + - uid: 3734 + components: + - type: Transform + pos: 32.5,-17.5 + parent: 2 + - uid: 3735 + components: + - type: Transform + pos: 31.5,-17.5 + parent: 2 + - uid: 3736 + components: + - type: Transform + pos: 30.5,-17.5 + parent: 2 + - uid: 3737 + components: + - type: Transform + pos: 29.5,-17.5 + parent: 2 + - uid: 3738 + components: + - type: Transform + pos: 28.5,-17.5 + parent: 2 + - uid: 3739 + components: + - type: Transform + pos: 27.5,-17.5 + parent: 2 + - uid: 3740 + components: + - type: Transform + pos: 26.5,-17.5 + parent: 2 + - uid: 3741 + components: + - type: Transform + pos: 25.5,-17.5 + parent: 2 + - uid: 3742 + components: + - type: Transform + pos: 24.5,-17.5 + parent: 2 + - uid: 3743 + components: + - type: Transform + pos: 23.5,-17.5 + parent: 2 + - uid: 3744 + components: + - type: Transform + pos: 22.5,-17.5 + parent: 2 + - uid: 3745 + components: + - type: Transform + pos: 21.5,-17.5 + parent: 2 + - uid: 3746 + components: + - type: Transform + pos: 21.5,-16.5 + parent: 2 + - uid: 3747 + components: + - type: Transform + pos: 20.5,-16.5 + parent: 2 + - uid: 3748 + components: + - type: Transform + pos: 20.5,-15.5 + parent: 2 + - uid: 3749 + components: + - type: Transform + pos: 20.5,-14.5 + parent: 2 + - uid: 3750 + components: + - type: Transform + pos: 20.5,-13.5 + parent: 2 + - uid: 3751 + components: + - type: Transform + pos: 20.5,-12.5 + parent: 2 + - uid: 3752 + components: + - type: Transform + pos: 20.5,-11.5 + parent: 2 + - uid: 3753 + components: + - type: Transform + pos: 20.5,-10.5 + parent: 2 + - uid: 3754 + components: + - type: Transform + pos: 20.5,-9.5 + parent: 2 + - uid: 3755 + components: + - type: Transform + pos: 20.5,-8.5 + parent: 2 + - uid: 3756 + components: + - type: Transform + pos: 20.5,-7.5 + parent: 2 + - uid: 3757 + components: + - type: Transform + pos: 20.5,-6.5 + parent: 2 + - uid: 3758 + components: + - type: Transform + pos: 21.5,-6.5 + parent: 2 + - uid: 3759 + components: + - type: Transform + pos: 21.5,-5.5 + parent: 2 + - uid: 3760 + components: + - type: Transform + pos: 22.5,-5.5 + parent: 2 + - uid: 3761 + components: + - type: Transform + pos: 23.5,-5.5 + parent: 2 + - uid: 3762 + components: + - type: Transform + pos: 24.5,-5.5 + parent: 2 + - uid: 3763 + components: + - type: Transform + pos: 25.5,-5.5 + parent: 2 + - uid: 3764 + components: + - type: Transform + pos: 26.5,-5.5 + parent: 2 + - uid: 3765 + components: + - type: Transform + pos: 27.5,-5.5 + parent: 2 + - uid: 3766 + components: + - type: Transform + pos: 28.5,-5.5 + parent: 2 + - uid: 3767 + components: + - type: Transform + pos: 29.5,-5.5 + parent: 2 + - uid: 3768 + components: + - type: Transform + pos: 30.5,-5.5 + parent: 2 + - uid: 3769 + components: + - type: Transform + pos: 31.5,-5.5 + parent: 2 + - uid: 3770 + components: + - type: Transform + pos: 32.5,-5.5 + parent: 2 + - uid: 13018 + components: + - type: Transform + pos: 73.5,24.5 + parent: 2 + - uid: 13758 + components: + - type: Transform + pos: 72.5,24.5 + parent: 2 + - uid: 18794 + components: + - type: Transform + pos: 77.5,47.5 + parent: 2 + - uid: 18795 + components: + - type: Transform + pos: 76.5,47.5 + parent: 2 + - uid: 18796 + components: + - type: Transform + pos: 75.5,47.5 + parent: 2 + - uid: 18797 + components: + - type: Transform + pos: 74.5,47.5 + parent: 2 + - uid: 18798 + components: + - type: Transform + pos: 73.5,47.5 + parent: 2 + - uid: 18799 + components: + - type: Transform + pos: 75.5,48.5 + parent: 2 + - uid: 18800 + components: + - type: Transform + pos: 75.5,49.5 + parent: 2 + - uid: 18801 + components: + - type: Transform + pos: 75.5,50.5 + parent: 2 + - uid: 18802 + components: + - type: Transform + pos: 75.5,51.5 + parent: 2 + - uid: 18803 + components: + - type: Transform + pos: 75.5,52.5 + parent: 2 + - uid: 18804 + components: + - type: Transform + pos: 75.5,53.5 + parent: 2 + - uid: 18805 + components: + - type: Transform + pos: 74.5,53.5 + parent: 2 + - uid: 18806 + components: + - type: Transform + pos: 73.5,53.5 + parent: 2 + - uid: 18807 + components: + - type: Transform + pos: 73.5,54.5 + parent: 2 + - uid: 18808 + components: + - type: Transform + pos: 74.5,50.5 + parent: 2 + - uid: 18809 + components: + - type: Transform + pos: 73.5,50.5 + parent: 2 + - uid: 18810 + components: + - type: Transform + pos: 72.5,50.5 + parent: 2 + - uid: 18811 + components: + - type: Transform + pos: 71.5,50.5 + parent: 2 + - uid: 18812 + components: + - type: Transform + pos: 70.5,50.5 + parent: 2 + - uid: 18813 + components: + - type: Transform + pos: 69.5,50.5 + parent: 2 + - uid: 18814 + components: + - type: Transform + pos: 69.5,51.5 + parent: 2 + - uid: 18815 + components: + - type: Transform + pos: 69.5,49.5 + parent: 2 + - uid: 18816 + components: + - type: Transform + pos: 76.5,53.5 + parent: 2 + - uid: 18817 + components: + - type: Transform + pos: 77.5,53.5 + parent: 2 + - uid: 18818 + components: + - type: Transform + pos: 78.5,53.5 + parent: 2 + - uid: 18819 + components: + - type: Transform + pos: 79.5,53.5 + parent: 2 + - uid: 18820 + components: + - type: Transform + pos: 79.5,52.5 + parent: 2 + - uid: 18821 + components: + - type: Transform + pos: 79.5,51.5 + parent: 2 + - uid: 18822 + components: + - type: Transform + pos: 79.5,50.5 + parent: 2 + - uid: 18823 + components: + - type: Transform + pos: 79.5,49.5 + parent: 2 + - uid: 18824 + components: + - type: Transform + pos: 78.5,54.5 + parent: 2 + - uid: 18825 + components: + - type: Transform + pos: 78.5,55.5 + parent: 2 + - uid: 18826 + components: + - type: Transform + pos: 78.5,56.5 + parent: 2 + - uid: 18827 + components: + - type: Transform + pos: 78.5,57.5 + parent: 2 + - uid: 18828 + components: + - type: Transform + pos: 77.5,56.5 + parent: 2 + - uid: 18829 + components: + - type: Transform + pos: 79.5,56.5 + parent: 2 + - uid: 18830 + components: + - type: Transform + pos: 76.5,56.5 + parent: 2 + - uid: 18831 + components: + - type: Transform + pos: 75.5,56.5 + parent: 2 + - uid: 18832 + components: + - type: Transform + pos: 75.5,55.5 + parent: 2 + - uid: 18833 + components: + - type: Transform + pos: 75.5,54.5 + parent: 2 + - uid: 18834 + components: + - type: Transform + pos: 75.5,57.5 + parent: 2 + - uid: 19431 + components: + - type: Transform + pos: -36.5,69.5 + parent: 2 + - uid: 19442 + components: + - type: Transform + pos: -36.5,70.5 + parent: 2 + - uid: 19443 + components: + - type: Transform + pos: -36.5,71.5 + parent: 2 + - uid: 19444 + components: + - type: Transform + pos: -35.5,71.5 + parent: 2 + - uid: 19445 + components: + - type: Transform + pos: -35.5,72.5 + parent: 2 + - uid: 19446 + components: + - type: Transform + pos: -35.5,73.5 + parent: 2 + - uid: 19447 + components: + - type: Transform + pos: -35.5,74.5 + parent: 2 + - uid: 19448 + components: + - type: Transform + pos: -35.5,75.5 + parent: 2 + - uid: 19449 + components: + - type: Transform + pos: -35.5,76.5 + parent: 2 + - uid: 19450 + components: + - type: Transform + pos: -34.5,76.5 + parent: 2 + - uid: 19451 + components: + - type: Transform + pos: -34.5,77.5 + parent: 2 + - uid: 19452 + components: + - type: Transform + pos: -33.5,77.5 + parent: 2 + - uid: 19453 + components: + - type: Transform + pos: -33.5,78.5 + parent: 2 + - uid: 19454 + components: + - type: Transform + pos: -32.5,78.5 + parent: 2 + - uid: 19455 + components: + - type: Transform + pos: -31.5,78.5 + parent: 2 + - uid: 19456 + components: + - type: Transform + pos: -30.5,78.5 + parent: 2 + - uid: 19457 + components: + - type: Transform + pos: -29.5,78.5 + parent: 2 + - uid: 19458 + components: + - type: Transform + pos: -29.5,77.5 + parent: 2 + - uid: 19459 + components: + - type: Transform + pos: -28.5,77.5 + parent: 2 + - uid: 19460 + components: + - type: Transform + pos: -28.5,76.5 + parent: 2 + - uid: 19461 + components: + - type: Transform + pos: -27.5,76.5 + parent: 2 + - uid: 19462 + components: + - type: Transform + pos: -27.5,75.5 + parent: 2 + - uid: 19463 + components: + - type: Transform + pos: -26.5,75.5 + parent: 2 + - uid: 19464 + components: + - type: Transform + pos: -25.5,75.5 + parent: 2 + - uid: 19465 + components: + - type: Transform + pos: -25.5,74.5 + parent: 2 + - uid: 19467 + components: + - type: Transform + pos: -24.5,74.5 + parent: 2 + - uid: 19468 + components: + - type: Transform + pos: -23.5,74.5 + parent: 2 + - uid: 19469 + components: + - type: Transform + pos: -22.5,74.5 + parent: 2 + - uid: 19470 + components: + - type: Transform + pos: -21.5,74.5 + parent: 2 +- proto: CableApcStack + entities: + - uid: 3771 + components: + - type: Transform + pos: -7.469557,28.649622 + parent: 2 + - uid: 3772 + components: + - type: Transform + pos: 48.691536,31.712133 + parent: 2 + - uid: 3773 + components: + - type: Transform + pos: 48.601868,31.479158 + parent: 2 + - uid: 3774 + components: + - type: Transform + pos: 60.434174,28.366611 + parent: 2 + - uid: 3775 + components: + - type: Transform + pos: 60.77491,28.599586 + parent: 2 +- proto: CableApcStack1 + entities: + - uid: 3776 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 50.308266,50.298573 + parent: 2 + - uid: 3777 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 50.79256,50.782536 + parent: 2 + - uid: 3778 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 50.2451,53.87569 + parent: 2 +- proto: Cablecuffs + entities: + - uid: 3779 + components: + - type: Transform + pos: -26.328623,55.189487 + parent: 2 + - uid: 3780 + components: + - type: Transform + pos: -26.515789,55.32977 + parent: 2 +- proto: CableHV + entities: + - uid: 3781 + components: + - type: Transform + pos: -3.5,17.5 + parent: 2 + - uid: 3782 + components: + - type: Transform + pos: -22.5,33.5 + parent: 2 + - uid: 3783 + components: + - type: Transform + pos: -25.5,26.5 + parent: 2 + - uid: 3784 + components: + - type: Transform + pos: -21.5,36.5 + parent: 2 + - uid: 3785 + components: + - type: Transform + pos: -17.5,36.5 + parent: 2 + - uid: 3786 + components: + - type: Transform + pos: -19.5,36.5 + parent: 2 + - uid: 3787 + components: + - type: Transform + pos: -20.5,31.5 + parent: 2 + - uid: 3788 + components: + - type: Transform + pos: -20.5,32.5 + parent: 2 + - uid: 3789 + components: + - type: Transform + pos: -24.5,24.5 + parent: 2 + - uid: 3790 + components: + - type: Transform + pos: -25.5,24.5 + parent: 2 + - uid: 3791 + components: + - type: Transform + pos: -25.5,24.5 + parent: 2 + - uid: 3792 + components: + - type: Transform + pos: -25.5,25.5 + parent: 2 + - uid: 3793 + components: + - type: Transform + pos: -26.5,26.5 + parent: 2 + - uid: 3794 + components: + - type: Transform + pos: -27.5,26.5 + parent: 2 + - uid: 3795 + components: + - type: Transform + pos: -22.5,-0.5 + parent: 2 + - uid: 3796 + components: + - type: Transform + pos: -22.5,1.5 + parent: 2 + - uid: 3797 + components: + - type: Transform + pos: -22.5,0.5 + parent: 2 + - uid: 3798 + components: + - type: Transform + pos: -24.5,-3.5 + parent: 2 + - uid: 3799 + components: + - type: Transform + pos: -25.5,-11.5 + parent: 2 + - uid: 3800 + components: + - type: Transform + pos: -24.5,-11.5 + parent: 2 + - uid: 3801 + components: + - type: Transform + pos: -28.5,26.5 + parent: 2 + - uid: 3802 + components: + - type: Transform + pos: -29.5,26.5 + parent: 2 + - uid: 3803 + components: + - type: Transform + pos: -31.5,27.5 + parent: 2 + - uid: 3804 + components: + - type: Transform + pos: 45.5,-20.5 + parent: 2 + - uid: 3805 + components: + - type: Transform + pos: 46.5,-20.5 + parent: 2 + - uid: 3806 + components: + - type: Transform + pos: 47.5,-20.5 + parent: 2 + - uid: 3807 + components: + - type: Transform + pos: 48.5,-20.5 + parent: 2 + - uid: 3808 + components: + - type: Transform + pos: 49.5,-20.5 + parent: 2 + - uid: 3809 + components: + - type: Transform + pos: 45.5,-22.5 + parent: 2 + - uid: 3810 + components: + - type: Transform + pos: 46.5,-22.5 + parent: 2 + - uid: 3811 + components: + - type: Transform + pos: 47.5,-22.5 + parent: 2 + - uid: 3812 + components: + - type: Transform + pos: 48.5,-22.5 + parent: 2 + - uid: 3813 + components: + - type: Transform + pos: 49.5,-22.5 + parent: 2 + - uid: 3814 + components: + - type: Transform + pos: 49.5,-21.5 + parent: 2 + - uid: 3815 + components: + - type: Transform + pos: 45.5,-21.5 + parent: 2 + - uid: 3816 + components: + - type: Transform + pos: 50.5,-21.5 + parent: 2 + - uid: 3817 + components: + - type: Transform + pos: 52.5,-21.5 + parent: 2 + - uid: 3818 + components: + - type: Transform + pos: 53.5,-21.5 + parent: 2 + - uid: 3819 + components: + - type: Transform + pos: 53.5,-20.5 + parent: 2 + - uid: 3820 + components: + - type: Transform + pos: 53.5,-22.5 + parent: 2 + - uid: 3821 + components: + - type: Transform + pos: 54.5,-20.5 + parent: 2 + - uid: 3822 + components: + - type: Transform + pos: 55.5,-20.5 + parent: 2 + - uid: 3823 + components: + - type: Transform + pos: 56.5,-20.5 + parent: 2 + - uid: 3824 + components: + - type: Transform + pos: 57.5,-20.5 + parent: 2 + - uid: 3825 + components: + - type: Transform + pos: 57.5,-22.5 + parent: 2 + - uid: 3826 + components: + - type: Transform + pos: 56.5,-22.5 + parent: 2 + - uid: 3827 + components: + - type: Transform + pos: 55.5,-22.5 + parent: 2 + - uid: 3828 + components: + - type: Transform + pos: 54.5,-22.5 + parent: 2 + - uid: 3829 + components: + - type: Transform + pos: 57.5,-21.5 + parent: 2 + - uid: 3830 + components: + - type: Transform + pos: 51.5,-24.5 + parent: 2 + - uid: 3831 + components: + - type: Transform + pos: 51.5,-23.5 + parent: 2 + - uid: 3832 + components: + - type: Transform + pos: 49.5,-18.5 + parent: 2 + - uid: 3833 + components: + - type: Transform + pos: 49.5,-17.5 + parent: 2 + - uid: 3834 + components: + - type: Transform + pos: 49.5,-16.5 + parent: 2 + - uid: 3835 + components: + - type: Transform + pos: 48.5,-16.5 + parent: 2 + - uid: 3836 + components: + - type: Transform + pos: 47.5,-16.5 + parent: 2 + - uid: 3837 + components: + - type: Transform + pos: 46.5,-16.5 + parent: 2 + - uid: 3838 + components: + - type: Transform + pos: 45.5,-16.5 + parent: 2 + - uid: 3839 + components: + - type: Transform + pos: 45.5,-17.5 + parent: 2 + - uid: 3840 + components: + - type: Transform + pos: 45.5,-18.5 + parent: 2 + - uid: 3841 + components: + - type: Transform + pos: 46.5,-18.5 + parent: 2 + - uid: 3842 + components: + - type: Transform + pos: 47.5,-18.5 + parent: 2 + - uid: 3843 + components: + - type: Transform + pos: 48.5,-18.5 + parent: 2 + - uid: 3844 + components: + - type: Transform + pos: 53.5,-18.5 + parent: 2 + - uid: 3845 + components: + - type: Transform + pos: 54.5,-18.5 + parent: 2 + - uid: 3846 + components: + - type: Transform + pos: 55.5,-18.5 + parent: 2 + - uid: 3847 + components: + - type: Transform + pos: 56.5,-18.5 + parent: 2 + - uid: 3848 + components: + - type: Transform + pos: 57.5,-18.5 + parent: 2 + - uid: 3849 + components: + - type: Transform + pos: 57.5,-17.5 + parent: 2 + - uid: 3850 + components: + - type: Transform + pos: 57.5,-16.5 + parent: 2 + - uid: 3851 + components: + - type: Transform + pos: 56.5,-16.5 + parent: 2 + - uid: 3852 + components: + - type: Transform + pos: 55.5,-16.5 + parent: 2 + - uid: 3853 + components: + - type: Transform + pos: 54.5,-16.5 + parent: 2 + - uid: 3854 + components: + - type: Transform + pos: 53.5,-16.5 + parent: 2 + - uid: 3855 + components: + - type: Transform + pos: 53.5,-17.5 + parent: 2 + - uid: 3856 + components: + - type: Transform + pos: 52.5,-17.5 + parent: 2 + - uid: 3857 + components: + - type: Transform + pos: 50.5,-17.5 + parent: 2 + - uid: 3858 + components: + - type: Transform + pos: 50.5,-13.5 + parent: 2 + - uid: 3859 + components: + - type: Transform + pos: 49.5,-13.5 + parent: 2 + - uid: 3860 + components: + - type: Transform + pos: 49.5,-12.5 + parent: 2 + - uid: 3861 + components: + - type: Transform + pos: 48.5,-12.5 + parent: 2 + - uid: 3862 + components: + - type: Transform + pos: 47.5,-12.5 + parent: 2 + - uid: 3863 + components: + - type: Transform + pos: 46.5,-12.5 + parent: 2 + - uid: 3864 + components: + - type: Transform + pos: 45.5,-12.5 + parent: 2 + - uid: 3865 + components: + - type: Transform + pos: 45.5,-13.5 + parent: 2 + - uid: 3866 + components: + - type: Transform + pos: 45.5,-14.5 + parent: 2 + - uid: 3867 + components: + - type: Transform + pos: 46.5,-14.5 + parent: 2 + - uid: 3868 + components: + - type: Transform + pos: 47.5,-14.5 + parent: 2 + - uid: 3869 + components: + - type: Transform + pos: 48.5,-14.5 + parent: 2 + - uid: 3870 + components: + - type: Transform + pos: 49.5,-14.5 + parent: 2 + - uid: 3871 + components: + - type: Transform + pos: 52.5,-13.5 + parent: 2 + - uid: 3872 + components: + - type: Transform + pos: 53.5,-13.5 + parent: 2 + - uid: 3873 + components: + - type: Transform + pos: 53.5,-12.5 + parent: 2 + - uid: 3874 + components: + - type: Transform + pos: 54.5,-12.5 + parent: 2 + - uid: 3875 + components: + - type: Transform + pos: 55.5,-12.5 + parent: 2 + - uid: 3876 + components: + - type: Transform + pos: 56.5,-12.5 + parent: 2 + - uid: 3877 + components: + - type: Transform + pos: 57.5,-12.5 + parent: 2 + - uid: 3878 + components: + - type: Transform + pos: 57.5,-13.5 + parent: 2 + - uid: 3879 + components: + - type: Transform + pos: 57.5,-14.5 + parent: 2 + - uid: 3880 + components: + - type: Transform + pos: 56.5,-14.5 + parent: 2 + - uid: 3881 + components: + - type: Transform + pos: 55.5,-14.5 + parent: 2 + - uid: 3882 + components: + - type: Transform + pos: 54.5,-14.5 + parent: 2 + - uid: 3883 + components: + - type: Transform + pos: 53.5,-14.5 + parent: 2 + - uid: 3884 + components: + - type: Transform + pos: -26.5,-16.5 + parent: 2 + - uid: 3885 + components: + - type: Transform + pos: -27.5,-16.5 + parent: 2 + - uid: 3886 + components: + - type: Transform + pos: -28.5,-16.5 + parent: 2 + - uid: 3887 + components: + - type: Transform + pos: -29.5,-16.5 + parent: 2 + - uid: 3888 + components: + - type: Transform + pos: -30.5,-16.5 + parent: 2 + - uid: 3889 + components: + - type: Transform + pos: -30.5,-15.5 + parent: 2 + - uid: 3890 + components: + - type: Transform + pos: -26.5,-15.5 + parent: 2 + - uid: 3891 + components: + - type: Transform + pos: -30.5,-14.5 + parent: 2 + - uid: 3892 + components: + - type: Transform + pos: -29.5,-14.5 + parent: 2 + - uid: 3893 + components: + - type: Transform + pos: -28.5,-14.5 + parent: 2 + - uid: 3894 + components: + - type: Transform + pos: -27.5,-14.5 + parent: 2 + - uid: 3895 + components: + - type: Transform + pos: -26.5,-14.5 + parent: 2 + - uid: 3896 + components: + - type: Transform + pos: -25.5,-15.5 + parent: 2 + - uid: 3897 + components: + - type: Transform + pos: -23.5,-18.5 + parent: 2 + - uid: 3898 + components: + - type: Transform + pos: -25.5,-12.5 + parent: 2 + - uid: 3899 + components: + - type: Transform + pos: -29.5,-12.5 + parent: 2 + - uid: 3900 + components: + - type: Transform + pos: -28.5,-12.5 + parent: 2 + - uid: 3901 + components: + - type: Transform + pos: -27.5,-12.5 + parent: 2 + - uid: 3902 + components: + - type: Transform + pos: -26.5,-12.5 + parent: 2 + - uid: 3903 + components: + - type: Transform + pos: -23.5,-17.5 + parent: 2 + - uid: 3904 + components: + - type: Transform + pos: -23.5,-7.5 + parent: 2 + - uid: 3905 + components: + - type: Transform + pos: -24.5,-7.5 + parent: 2 + - uid: 3906 + components: + - type: Transform + pos: -24.5,-6.5 + parent: 2 + - uid: 3907 + components: + - type: Transform + pos: -25.5,-6.5 + parent: 2 + - uid: 3908 + components: + - type: Transform + pos: -26.5,-6.5 + parent: 2 + - uid: 3909 + components: + - type: Transform + pos: -27.5,-6.5 + parent: 2 + - uid: 3910 + components: + - type: Transform + pos: -28.5,-6.5 + parent: 2 + - uid: 3911 + components: + - type: Transform + pos: -28.5,-7.5 + parent: 2 + - uid: 3912 + components: + - type: Transform + pos: -28.5,-8.5 + parent: 2 + - uid: 3913 + components: + - type: Transform + pos: -27.5,-8.5 + parent: 2 + - uid: 3914 + components: + - type: Transform + pos: -26.5,-8.5 + parent: 2 + - uid: 3915 + components: + - type: Transform + pos: -25.5,-8.5 + parent: 2 + - uid: 3916 + components: + - type: Transform + pos: -24.5,-8.5 + parent: 2 + - uid: 3917 + components: + - type: Transform + pos: -24.5,-2.5 + parent: 2 + - uid: 3918 + components: + - type: Transform + pos: -25.5,-2.5 + parent: 2 + - uid: 3919 + components: + - type: Transform + pos: -26.5,-2.5 + parent: 2 + - uid: 3920 + components: + - type: Transform + pos: -27.5,-2.5 + parent: 2 + - uid: 3921 + components: + - type: Transform + pos: -28.5,-2.5 + parent: 2 + - uid: 3922 + components: + - type: Transform + pos: -28.5,-4.5 + parent: 2 + - uid: 3923 + components: + - type: Transform + pos: -27.5,-4.5 + parent: 2 + - uid: 3924 + components: + - type: Transform + pos: -26.5,-4.5 + parent: 2 + - uid: 3925 + components: + - type: Transform + pos: -25.5,-4.5 + parent: 2 + - uid: 3926 + components: + - type: Transform + pos: -24.5,-4.5 + parent: 2 + - uid: 3927 + components: + - type: Transform + pos: 27.5,79.5 + parent: 2 + - uid: 3928 + components: + - type: Transform + pos: 28.5,79.5 + parent: 2 + - uid: 3929 + components: + - type: Transform + pos: 29.5,79.5 + parent: 2 + - uid: 3930 + components: + - type: Transform + pos: 30.5,79.5 + parent: 2 + - uid: 3931 + components: + - type: Transform + pos: 31.5,79.5 + parent: 2 + - uid: 3932 + components: + - type: Transform + pos: 31.5,78.5 + parent: 2 + - uid: 3933 + components: + - type: Transform + pos: 31.5,77.5 + parent: 2 + - uid: 3934 + components: + - type: Transform + pos: 30.5,77.5 + parent: 2 + - uid: 3935 + components: + - type: Transform + pos: 29.5,77.5 + parent: 2 + - uid: 3936 + components: + - type: Transform + pos: 28.5,77.5 + parent: 2 + - uid: 3937 + components: + - type: Transform + pos: 27.5,77.5 + parent: 2 + - uid: 3938 + components: + - type: Transform + pos: 27.5,78.5 + parent: 2 + - uid: 3939 + components: + - type: Transform + pos: 32.5,78.5 + parent: 2 + - uid: 3940 + components: + - type: Transform + pos: 33.5,81.5 + parent: 2 + - uid: 3941 + components: + - type: Transform + pos: 34.5,74.5 + parent: 2 + - uid: 3942 + components: + - type: Transform + pos: 35.5,79.5 + parent: 2 + - uid: 3943 + components: + - type: Transform + pos: 36.5,79.5 + parent: 2 + - uid: 3944 + components: + - type: Transform + pos: 37.5,79.5 + parent: 2 + - uid: 3945 + components: + - type: Transform + pos: 38.5,79.5 + parent: 2 + - uid: 3946 + components: + - type: Transform + pos: 39.5,79.5 + parent: 2 + - uid: 3947 + components: + - type: Transform + pos: 39.5,77.5 + parent: 2 + - uid: 3948 + components: + - type: Transform + pos: 38.5,77.5 + parent: 2 + - uid: 3949 + components: + - type: Transform + pos: 37.5,77.5 + parent: 2 + - uid: 3950 + components: + - type: Transform + pos: 36.5,77.5 + parent: 2 + - uid: 3951 + components: + - type: Transform + pos: 35.5,77.5 + parent: 2 + - uid: 3952 + components: + - type: Transform + pos: 35.5,78.5 + parent: 2 + - uid: 3953 + components: + - type: Transform + pos: 39.5,78.5 + parent: 2 + - uid: 3954 + components: + - type: Transform + pos: 34.5,78.5 + parent: 2 + - uid: 3955 + components: + - type: Transform + pos: 35.5,74.5 + parent: 2 + - uid: 3956 + components: + - type: Transform + pos: 35.5,75.5 + parent: 2 + - uid: 3957 + components: + - type: Transform + pos: 36.5,75.5 + parent: 2 + - uid: 3958 + components: + - type: Transform + pos: 37.5,75.5 + parent: 2 + - uid: 3959 + components: + - type: Transform + pos: 38.5,75.5 + parent: 2 + - uid: 3960 + components: + - type: Transform + pos: 39.5,75.5 + parent: 2 + - uid: 3961 + components: + - type: Transform + pos: 39.5,74.5 + parent: 2 + - uid: 3962 + components: + - type: Transform + pos: 39.5,73.5 + parent: 2 + - uid: 3963 + components: + - type: Transform + pos: 38.5,73.5 + parent: 2 + - uid: 3964 + components: + - type: Transform + pos: 37.5,73.5 + parent: 2 + - uid: 3965 + components: + - type: Transform + pos: 36.5,73.5 + parent: 2 + - uid: 3966 + components: + - type: Transform + pos: 35.5,73.5 + parent: 2 + - uid: 3967 + components: + - type: Transform + pos: 34.5,70.5 + parent: 2 + - uid: 3968 + components: + - type: Transform + pos: 35.5,70.5 + parent: 2 + - uid: 3969 + components: + - type: Transform + pos: 35.5,71.5 + parent: 2 + - uid: 3970 + components: + - type: Transform + pos: 36.5,71.5 + parent: 2 + - uid: 3971 + components: + - type: Transform + pos: 37.5,71.5 + parent: 2 + - uid: 3972 + components: + - type: Transform + pos: 38.5,71.5 + parent: 2 + - uid: 3973 + components: + - type: Transform + pos: 39.5,71.5 + parent: 2 + - uid: 3974 + components: + - type: Transform + pos: 39.5,70.5 + parent: 2 + - uid: 3975 + components: + - type: Transform + pos: 39.5,69.5 + parent: 2 + - uid: 3976 + components: + - type: Transform + pos: 38.5,69.5 + parent: 2 + - uid: 3977 + components: + - type: Transform + pos: 37.5,69.5 + parent: 2 + - uid: 3978 + components: + - type: Transform + pos: 36.5,69.5 + parent: 2 + - uid: 3979 + components: + - type: Transform + pos: 35.5,69.5 + parent: 2 + - uid: 3980 + components: + - type: Transform + pos: 32.5,70.5 + parent: 2 + - uid: 3981 + components: + - type: Transform + pos: 31.5,70.5 + parent: 2 + - uid: 3982 + components: + - type: Transform + pos: 31.5,69.5 + parent: 2 + - uid: 3983 + components: + - type: Transform + pos: 30.5,69.5 + parent: 2 + - uid: 3984 + components: + - type: Transform + pos: 29.5,69.5 + parent: 2 + - uid: 3985 + components: + - type: Transform + pos: 28.5,69.5 + parent: 2 + - uid: 3986 + components: + - type: Transform + pos: 27.5,69.5 + parent: 2 + - uid: 3987 + components: + - type: Transform + pos: 27.5,70.5 + parent: 2 + - uid: 3988 + components: + - type: Transform + pos: 27.5,71.5 + parent: 2 + - uid: 3989 + components: + - type: Transform + pos: 28.5,71.5 + parent: 2 + - uid: 3990 + components: + - type: Transform + pos: 29.5,71.5 + parent: 2 + - uid: 3991 + components: + - type: Transform + pos: 30.5,71.5 + parent: 2 + - uid: 3992 + components: + - type: Transform + pos: 31.5,71.5 + parent: 2 + - uid: 3993 + components: + - type: Transform + pos: 31.5,73.5 + parent: 2 + - uid: 3994 + components: + - type: Transform + pos: 30.5,73.5 + parent: 2 + - uid: 3995 + components: + - type: Transform + pos: 29.5,73.5 + parent: 2 + - uid: 3996 + components: + - type: Transform + pos: 28.5,73.5 + parent: 2 + - uid: 3997 + components: + - type: Transform + pos: 27.5,73.5 + parent: 2 + - uid: 3998 + components: + - type: Transform + pos: 27.5,74.5 + parent: 2 + - uid: 3999 + components: + - type: Transform + pos: 27.5,75.5 + parent: 2 + - uid: 4000 + components: + - type: Transform + pos: 28.5,75.5 + parent: 2 + - uid: 4001 + components: + - type: Transform + pos: 29.5,75.5 + parent: 2 + - uid: 4002 + components: + - type: Transform + pos: 30.5,75.5 + parent: 2 + - uid: 4003 + components: + - type: Transform + pos: 31.5,75.5 + parent: 2 + - uid: 4004 + components: + - type: Transform + pos: 31.5,74.5 + parent: 2 + - uid: 4005 + components: + - type: Transform + pos: 32.5,74.5 + parent: 2 + - uid: 4006 + components: + - type: Transform + pos: 48.5,-10.5 + parent: 2 + - uid: 4007 + components: + - type: Transform + pos: 14.5,48.5 + parent: 2 + - uid: 4008 + components: + - type: Transform + pos: 16.5,48.5 + parent: 2 + - uid: 4009 + components: + - type: Transform + pos: 15.5,48.5 + parent: 2 + - uid: 4010 + components: + - type: Transform + pos: -11.5,33.5 + parent: 2 + - uid: 4011 + components: + - type: Transform + pos: -11.5,34.5 + parent: 2 + - uid: 4012 + components: + - type: Transform + pos: -11.5,35.5 + parent: 2 + - uid: 4013 + components: + - type: Transform + pos: -11.5,36.5 + parent: 2 + - uid: 4014 + components: + - type: Transform + pos: -12.5,36.5 + parent: 2 + - uid: 4015 + components: + - type: Transform + pos: -13.5,42.5 + parent: 2 + - uid: 4016 + components: + - type: Transform + pos: -13.5,43.5 + parent: 2 + - uid: 4017 + components: + - type: Transform + pos: -13.5,44.5 + parent: 2 + - uid: 4018 + components: + - type: Transform + pos: -14.5,44.5 + parent: 2 + - uid: 4019 + components: + - type: Transform + pos: -12.5,44.5 + parent: 2 + - uid: 4020 + components: + - type: Transform + pos: -12.5,45.5 + parent: 2 + - uid: 4021 + components: + - type: Transform + pos: -13.5,45.5 + parent: 2 + - uid: 4022 + components: + - type: Transform + pos: -14.5,45.5 + parent: 2 + - uid: 4023 + components: + - type: Transform + pos: -15.5,45.5 + parent: 2 + - uid: 4024 + components: + - type: Transform + pos: -16.5,45.5 + parent: 2 + - uid: 4025 + components: + - type: Transform + pos: -16.5,44.5 + parent: 2 + - uid: 4026 + components: + - type: Transform + pos: -16.5,43.5 + parent: 2 + - uid: 4027 + components: + - type: Transform + pos: -13.5,46.5 + parent: 2 + - uid: 4028 + components: + - type: Transform + pos: -13.5,47.5 + parent: 2 + - uid: 4029 + components: + - type: Transform + pos: -13.5,48.5 + parent: 2 + - uid: 4030 + components: + - type: Transform + pos: -12.5,48.5 + parent: 2 + - uid: 4031 + components: + - type: Transform + pos: -11.5,48.5 + parent: 2 + - uid: 4032 + components: + - type: Transform + pos: -10.5,48.5 + parent: 2 + - uid: 4033 + components: + - type: Transform + pos: -9.5,48.5 + parent: 2 + - uid: 4034 + components: + - type: Transform + pos: -8.5,48.5 + parent: 2 + - uid: 4035 + components: + - type: Transform + pos: -7.5,48.5 + parent: 2 + - uid: 4036 + components: + - type: Transform + pos: -6.5,48.5 + parent: 2 + - uid: 4037 + components: + - type: Transform + pos: -5.5,48.5 + parent: 2 + - uid: 4038 + components: + - type: Transform + pos: -4.5,48.5 + parent: 2 + - uid: 4039 + components: + - type: Transform + pos: -3.5,48.5 + parent: 2 + - uid: 4040 + components: + - type: Transform + pos: -2.5,48.5 + parent: 2 + - uid: 4041 + components: + - type: Transform + pos: -1.5,48.5 + parent: 2 + - uid: 4042 + components: + - type: Transform + pos: -0.5,48.5 + parent: 2 + - uid: 4043 + components: + - type: Transform + pos: 0.5,48.5 + parent: 2 + - uid: 4044 + components: + - type: Transform + pos: 1.5,48.5 + parent: 2 + - uid: 4045 + components: + - type: Transform + pos: 2.5,48.5 + parent: 2 + - uid: 4046 + components: + - type: Transform + pos: 3.5,48.5 + parent: 2 + - uid: 4047 + components: + - type: Transform + pos: 4.5,48.5 + parent: 2 + - uid: 4048 + components: + - type: Transform + pos: 5.5,48.5 + parent: 2 + - uid: 4049 + components: + - type: Transform + pos: 5.5,49.5 + parent: 2 + - uid: 4050 + components: + - type: Transform + pos: 5.5,50.5 + parent: 2 + - uid: 4051 + components: + - type: Transform + pos: 5.5,51.5 + parent: 2 + - uid: 4052 + components: + - type: Transform + pos: 5.5,52.5 + parent: 2 + - uid: 4053 + components: + - type: Transform + pos: 5.5,53.5 + parent: 2 + - uid: 4054 + components: + - type: Transform + pos: 5.5,54.5 + parent: 2 + - uid: 4055 + components: + - type: Transform + pos: 5.5,55.5 + parent: 2 + - uid: 4056 + components: + - type: Transform + pos: 5.5,56.5 + parent: 2 + - uid: 4057 + components: + - type: Transform + pos: 5.5,57.5 + parent: 2 + - uid: 4058 + components: + - type: Transform + pos: 5.5,58.5 + parent: 2 + - uid: 4059 + components: + - type: Transform + pos: 5.5,59.5 + parent: 2 + - uid: 4060 + components: + - type: Transform + pos: 5.5,60.5 + parent: 2 + - uid: 4061 + components: + - type: Transform + pos: 5.5,61.5 + parent: 2 + - uid: 4062 + components: + - type: Transform + pos: 5.5,62.5 + parent: 2 + - uid: 4063 + components: + - type: Transform + pos: 5.5,63.5 + parent: 2 + - uid: 4064 + components: + - type: Transform + pos: 4.5,63.5 + parent: 2 + - uid: 4065 + components: + - type: Transform + pos: 3.5,63.5 + parent: 2 + - uid: 4066 + components: + - type: Transform + pos: 2.5,63.5 + parent: 2 + - uid: 4067 + components: + - type: Transform + pos: 1.5,63.5 + parent: 2 + - uid: 4068 + components: + - type: Transform + pos: 0.5,63.5 + parent: 2 + - uid: 4069 + components: + - type: Transform + pos: -0.5,63.5 + parent: 2 + - uid: 4070 + components: + - type: Transform + pos: -1.5,63.5 + parent: 2 + - uid: 4071 + components: + - type: Transform + pos: -2.5,63.5 + parent: 2 + - uid: 4072 + components: + - type: Transform + pos: -3.5,63.5 + parent: 2 + - uid: 4073 + components: + - type: Transform + pos: -3.5,64.5 + parent: 2 + - uid: 4074 + components: + - type: Transform + pos: -3.5,65.5 + parent: 2 + - uid: 4075 + components: + - type: Transform + pos: -3.5,66.5 + parent: 2 + - uid: 4076 + components: + - type: Transform + pos: -3.5,67.5 + parent: 2 + - uid: 4077 + components: + - type: Transform + pos: -3.5,68.5 + parent: 2 + - uid: 4078 + components: + - type: Transform + pos: -2.5,68.5 + parent: 2 + - uid: 4079 + components: + - type: Transform + pos: 5.5,64.5 + parent: 2 + - uid: 4080 + components: + - type: Transform + pos: 6.5,64.5 + parent: 2 + - uid: 4081 + components: + - type: Transform + pos: 7.5,64.5 + parent: 2 + - uid: 4082 + components: + - type: Transform + pos: 8.5,64.5 + parent: 2 + - uid: 4083 + components: + - type: Transform + pos: 9.5,64.5 + parent: 2 + - uid: 4084 + components: + - type: Transform + pos: 10.5,64.5 + parent: 2 + - uid: 4085 + components: + - type: Transform + pos: 11.5,64.5 + parent: 2 + - uid: 4086 + components: + - type: Transform + pos: 12.5,64.5 + parent: 2 + - uid: 4087 + components: + - type: Transform + pos: 13.5,64.5 + parent: 2 + - uid: 4088 + components: + - type: Transform + pos: 13.5,65.5 + parent: 2 + - uid: 4089 + components: + - type: Transform + pos: 14.5,65.5 + parent: 2 + - uid: 4090 + components: + - type: Transform + pos: 15.5,65.5 + parent: 2 + - uid: 4091 + components: + - type: Transform + pos: 16.5,65.5 + parent: 2 + - uid: 4092 + components: + - type: Transform + pos: 17.5,65.5 + parent: 2 + - uid: 4093 + components: + - type: Transform + pos: 18.5,65.5 + parent: 2 + - uid: 4094 + components: + - type: Transform + pos: 19.5,65.5 + parent: 2 + - uid: 4095 + components: + - type: Transform + pos: 20.5,65.5 + parent: 2 + - uid: 4096 + components: + - type: Transform + pos: 21.5,65.5 + parent: 2 + - uid: 4097 + components: + - type: Transform + pos: 22.5,65.5 + parent: 2 + - uid: 4098 + components: + - type: Transform + pos: 23.5,65.5 + parent: 2 + - uid: 4099 + components: + - type: Transform + pos: 24.5,65.5 + parent: 2 + - uid: 4100 + components: + - type: Transform + pos: 24.5,64.5 + parent: 2 + - uid: 4101 + components: + - type: Transform + pos: 24.5,63.5 + parent: 2 + - uid: 4102 + components: + - type: Transform + pos: 24.5,62.5 + parent: 2 + - uid: 4103 + components: + - type: Transform + pos: 24.5,61.5 + parent: 2 + - uid: 4104 + components: + - type: Transform + pos: 24.5,60.5 + parent: 2 + - uid: 4105 + components: + - type: Transform + pos: 25.5,60.5 + parent: 2 + - uid: 4106 + components: + - type: Transform + pos: 26.5,60.5 + parent: 2 + - uid: 4107 + components: + - type: Transform + pos: 27.5,60.5 + parent: 2 + - uid: 4108 + components: + - type: Transform + pos: 28.5,60.5 + parent: 2 + - uid: 4109 + components: + - type: Transform + pos: 29.5,60.5 + parent: 2 + - uid: 4110 + components: + - type: Transform + pos: 30.5,60.5 + parent: 2 + - uid: 4111 + components: + - type: Transform + pos: 31.5,60.5 + parent: 2 + - uid: 4112 + components: + - type: Transform + pos: 31.5,61.5 + parent: 2 + - uid: 4113 + components: + - type: Transform + pos: 32.5,61.5 + parent: 2 + - uid: 4114 + components: + - type: Transform + pos: 33.5,61.5 + parent: 2 + - uid: 4115 + components: + - type: Transform + pos: 35.5,61.5 + parent: 2 + - uid: 4116 + components: + - type: Transform + pos: 31.5,62.5 + parent: 2 + - uid: 4117 + components: + - type: Transform + pos: 35.5,63.5 + parent: 2 + - uid: 4118 + components: + - type: Transform + pos: 34.5,61.5 + parent: 2 + - uid: 4119 + components: + - type: Transform + pos: 33.5,65.5 + parent: 2 + - uid: 4120 + components: + - type: Transform + pos: 31.5,63.5 + parent: 2 + - uid: 4121 + components: + - type: Transform + pos: 31.5,64.5 + parent: 2 + - uid: 4122 + components: + - type: Transform + pos: 32.5,64.5 + parent: 2 + - uid: 4123 + components: + - type: Transform + pos: 33.5,64.5 + parent: 2 + - uid: 4124 + components: + - type: Transform + pos: 35.5,63.5 + parent: 2 + - uid: 4125 + components: + - type: Transform + pos: 33.5,67.5 + parent: 2 + - uid: 4126 + components: + - type: Transform + pos: 33.5,66.5 + parent: 2 + - uid: 4127 + components: + - type: Transform + pos: 33.5,68.5 + parent: 2 + - uid: 4128 + components: + - type: Transform + pos: 0.5,47.5 + parent: 2 + - uid: 4129 + components: + - type: Transform + pos: 0.5,46.5 + parent: 2 + - uid: 4130 + components: + - type: Transform + pos: 0.5,45.5 + parent: 2 + - uid: 4131 + components: + - type: Transform + pos: 0.5,44.5 + parent: 2 + - uid: 4132 + components: + - type: Transform + pos: 0.5,43.5 + parent: 2 + - uid: 4133 + components: + - type: Transform + pos: 0.5,42.5 + parent: 2 + - uid: 4134 + components: + - type: Transform + pos: 0.5,41.5 + parent: 2 + - uid: 4135 + components: + - type: Transform + pos: 0.5,40.5 + parent: 2 + - uid: 4136 + components: + - type: Transform + pos: 0.5,39.5 + parent: 2 + - uid: 4137 + components: + - type: Transform + pos: 0.5,38.5 + parent: 2 + - uid: 4138 + components: + - type: Transform + pos: 0.5,37.5 + parent: 2 + - uid: 4139 + components: + - type: Transform + pos: 0.5,36.5 + parent: 2 + - uid: 4140 + components: + - type: Transform + pos: 0.5,35.5 + parent: 2 + - uid: 4141 + components: + - type: Transform + pos: 0.5,34.5 + parent: 2 + - uid: 4142 + components: + - type: Transform + pos: 0.5,33.5 + parent: 2 + - uid: 4143 + components: + - type: Transform + pos: 0.5,32.5 + parent: 2 + - uid: 4144 + components: + - type: Transform + pos: 6.5,48.5 + parent: 2 + - uid: 4145 + components: + - type: Transform + pos: 7.5,48.5 + parent: 2 + - uid: 4146 + components: + - type: Transform + pos: 8.5,48.5 + parent: 2 + - uid: 4147 + components: + - type: Transform + pos: 9.5,48.5 + parent: 2 + - uid: 4148 + components: + - type: Transform + pos: 10.5,48.5 + parent: 2 + - uid: 4149 + components: + - type: Transform + pos: 11.5,48.5 + parent: 2 + - uid: 4150 + components: + - type: Transform + pos: 12.5,48.5 + parent: 2 + - uid: 4151 + components: + - type: Transform + pos: 13.5,48.5 + parent: 2 + - uid: 4152 + components: + - type: Transform + pos: 0.5,31.5 + parent: 2 + - uid: 4153 + components: + - type: Transform + pos: 0.5,30.5 + parent: 2 + - uid: 4154 + components: + - type: Transform + pos: 0.5,29.5 + parent: 2 + - uid: 4155 + components: + - type: Transform + pos: 0.5,28.5 + parent: 2 + - uid: 4156 + components: + - type: Transform + pos: 0.5,27.5 + parent: 2 + - uid: 4157 + components: + - type: Transform + pos: 0.5,26.5 + parent: 2 + - uid: 4158 + components: + - type: Transform + pos: 0.5,25.5 + parent: 2 + - uid: 4159 + components: + - type: Transform + pos: 0.5,24.5 + parent: 2 + - uid: 4160 + components: + - type: Transform + pos: 0.5,23.5 + parent: 2 + - uid: 4161 + components: + - type: Transform + pos: 0.5,22.5 + parent: 2 + - uid: 4162 + components: + - type: Transform + pos: 0.5,21.5 + parent: 2 + - uid: 4163 + components: + - type: Transform + pos: 0.5,20.5 + parent: 2 + - uid: 4164 + components: + - type: Transform + pos: -22.5,4.5 + parent: 2 + - uid: 4165 + components: + - type: Transform + pos: -22.5,5.5 + parent: 2 + - uid: 4166 + components: + - type: Transform + pos: -22.5,6.5 + parent: 2 + - uid: 4167 + components: + - type: Transform + pos: -22.5,7.5 + parent: 2 + - uid: 4168 + components: + - type: Transform + pos: -21.5,7.5 + parent: 2 + - uid: 4169 + components: + - type: Transform + pos: -20.5,7.5 + parent: 2 + - uid: 4170 + components: + - type: Transform + pos: -20.5,8.5 + parent: 2 + - uid: 4171 + components: + - type: Transform + pos: -20.5,9.5 + parent: 2 + - uid: 4172 + components: + - type: Transform + pos: -21.5,9.5 + parent: 2 + - uid: 4173 + components: + - type: Transform + pos: -22.5,9.5 + parent: 2 + - uid: 4174 + components: + - type: Transform + pos: -22.5,10.5 + parent: 2 + - uid: 4175 + components: + - type: Transform + pos: -22.5,11.5 + parent: 2 + - uid: 4176 + components: + - type: Transform + pos: -22.5,12.5 + parent: 2 + - uid: 4177 + components: + - type: Transform + pos: -22.5,13.5 + parent: 2 + - uid: 4178 + components: + - type: Transform + pos: -22.5,14.5 + parent: 2 + - uid: 4179 + components: + - type: Transform + pos: -21.5,14.5 + parent: 2 + - uid: 4180 + components: + - type: Transform + pos: -20.5,14.5 + parent: 2 + - uid: 4181 + components: + - type: Transform + pos: -20.5,13.5 + parent: 2 + - uid: 4182 + components: + - type: Transform + pos: -20.5,12.5 + parent: 2 + - uid: 4183 + components: + - type: Transform + pos: -20.5,11.5 + parent: 2 + - uid: 4184 + components: + - type: Transform + pos: -19.5,11.5 + parent: 2 + - uid: 4185 + components: + - type: Transform + pos: -18.5,11.5 + parent: 2 + - uid: 4186 + components: + - type: Transform + pos: -18.5,10.5 + parent: 2 + - uid: 4187 + components: + - type: Transform + pos: -18.5,9.5 + parent: 2 + - uid: 4188 + components: + - type: Transform + pos: -18.5,8.5 + parent: 2 + - uid: 4189 + components: + - type: Transform + pos: -18.5,7.5 + parent: 2 + - uid: 4190 + components: + - type: Transform + pos: -18.5,6.5 + parent: 2 + - uid: 4191 + components: + - type: Transform + pos: -17.5,6.5 + parent: 2 + - uid: 4192 + components: + - type: Transform + pos: -17.5,5.5 + parent: 2 + - uid: 4193 + components: + - type: Transform + pos: -17.5,4.5 + parent: 2 + - uid: 4194 + components: + - type: Transform + pos: -18.5,4.5 + parent: 2 + - uid: 4195 + components: + - type: Transform + pos: -17.5,11.5 + parent: 2 + - uid: 4196 + components: + - type: Transform + pos: -16.5,11.5 + parent: 2 + - uid: 4197 + components: + - type: Transform + pos: -15.5,11.5 + parent: 2 + - uid: 4198 + components: + - type: Transform + pos: -15.5,12.5 + parent: 2 + - uid: 4199 + components: + - type: Transform + pos: -15.5,13.5 + parent: 2 + - uid: 4200 + components: + - type: Transform + pos: -15.5,14.5 + parent: 2 + - uid: 4201 + components: + - type: Transform + pos: -15.5,15.5 + parent: 2 + - uid: 4202 + components: + - type: Transform + pos: -15.5,16.5 + parent: 2 + - uid: 4203 + components: + - type: Transform + pos: -14.5,16.5 + parent: 2 + - uid: 4204 + components: + - type: Transform + pos: -13.5,16.5 + parent: 2 + - uid: 4205 + components: + - type: Transform + pos: -12.5,16.5 + parent: 2 + - uid: 4206 + components: + - type: Transform + pos: -11.5,16.5 + parent: 2 + - uid: 4207 + components: + - type: Transform + pos: -10.5,16.5 + parent: 2 + - uid: 4208 + components: + - type: Transform + pos: -9.5,16.5 + parent: 2 + - uid: 4209 + components: + - type: Transform + pos: -8.5,16.5 + parent: 2 + - uid: 4210 + components: + - type: Transform + pos: -8.5,17.5 + parent: 2 + - uid: 4211 + components: + - type: Transform + pos: -7.5,17.5 + parent: 2 + - uid: 4212 + components: + - type: Transform + pos: -6.5,17.5 + parent: 2 + - uid: 4213 + components: + - type: Transform + pos: -5.5,17.5 + parent: 2 + - uid: 4214 + components: + - type: Transform + pos: -4.5,17.5 + parent: 2 + - uid: 4215 + components: + - type: Transform + pos: -4.5,20.5 + parent: 2 + - uid: 4216 + components: + - type: Transform + pos: -3.5,20.5 + parent: 2 + - uid: 4217 + components: + - type: Transform + pos: -2.5,20.5 + parent: 2 + - uid: 4218 + components: + - type: Transform + pos: -1.5,20.5 + parent: 2 + - uid: 4219 + components: + - type: Transform + pos: -0.5,20.5 + parent: 2 + - uid: 4220 + components: + - type: Transform + pos: 1.5,20.5 + parent: 2 + - uid: 4221 + components: + - type: Transform + pos: 2.5,20.5 + parent: 2 + - uid: 4222 + components: + - type: Transform + pos: 3.5,20.5 + parent: 2 + - uid: 4223 + components: + - type: Transform + pos: 4.5,20.5 + parent: 2 + - uid: 4224 + components: + - type: Transform + pos: 5.5,20.5 + parent: 2 + - uid: 4225 + components: + - type: Transform + pos: 6.5,20.5 + parent: 2 + - uid: 4226 + components: + - type: Transform + pos: 7.5,20.5 + parent: 2 + - uid: 4227 + components: + - type: Transform + pos: 8.5,20.5 + parent: 2 + - uid: 4228 + components: + - type: Transform + pos: 9.5,20.5 + parent: 2 + - uid: 4229 + components: + - type: Transform + pos: 10.5,20.5 + parent: 2 + - uid: 4230 + components: + - type: Transform + pos: 11.5,20.5 + parent: 2 + - uid: 4231 + components: + - type: Transform + pos: 12.5,20.5 + parent: 2 + - uid: 4232 + components: + - type: Transform + pos: 13.5,20.5 + parent: 2 + - uid: 4233 + components: + - type: Transform + pos: 14.5,20.5 + parent: 2 + - uid: 4234 + components: + - type: Transform + pos: 15.5,20.5 + parent: 2 + - uid: 4235 + components: + - type: Transform + pos: 15.5,19.5 + parent: 2 + - uid: 4236 + components: + - type: Transform + pos: 15.5,18.5 + parent: 2 + - uid: 4237 + components: + - type: Transform + pos: 15.5,17.5 + parent: 2 + - uid: 4238 + components: + - type: Transform + pos: 15.5,16.5 + parent: 2 + - uid: 4239 + components: + - type: Transform + pos: 15.5,15.5 + parent: 2 + - uid: 4240 + components: + - type: Transform + pos: 15.5,14.5 + parent: 2 + - uid: 4241 + components: + - type: Transform + pos: 15.5,13.5 + parent: 2 + - uid: 4242 + components: + - type: Transform + pos: 15.5,12.5 + parent: 2 + - uid: 4243 + components: + - type: Transform + pos: 16.5,12.5 + parent: 2 + - uid: 4244 + components: + - type: Transform + pos: 16.5,11.5 + parent: 2 + - uid: 4245 + components: + - type: Transform + pos: 16.5,10.5 + parent: 2 + - uid: 4246 + components: + - type: Transform + pos: 17.5,10.5 + parent: 2 + - uid: 4247 + components: + - type: Transform + pos: 18.5,10.5 + parent: 2 + - uid: 4248 + components: + - type: Transform + pos: 18.5,11.5 + parent: 2 + - uid: 4249 + components: + - type: Transform + pos: 18.5,12.5 + parent: 2 + - uid: 4250 + components: + - type: Transform + pos: 41.5,0.5 + parent: 2 + - uid: 4251 + components: + - type: Transform + pos: 41.5,1.5 + parent: 2 + - uid: 4252 + components: + - type: Transform + pos: 41.5,2.5 + parent: 2 + - uid: 4253 + components: + - type: Transform + pos: 42.5,0.5 + parent: 2 + - uid: 4254 + components: + - type: Transform + pos: 43.5,0.5 + parent: 2 + - uid: 4255 + components: + - type: Transform + pos: 43.5,-0.5 + parent: 2 + - uid: 4256 + components: + - type: Transform + pos: 43.5,-1.5 + parent: 2 + - uid: 4257 + components: + - type: Transform + pos: 43.5,-2.5 + parent: 2 + - uid: 4258 + components: + - type: Transform + pos: 43.5,-3.5 + parent: 2 + - uid: 4259 + components: + - type: Transform + pos: 43.5,-4.5 + parent: 2 + - uid: 4260 + components: + - type: Transform + pos: 43.5,-5.5 + parent: 2 + - uid: 4261 + components: + - type: Transform + pos: 44.5,-5.5 + parent: 2 + - uid: 4262 + components: + - type: Transform + pos: 45.5,-5.5 + parent: 2 + - uid: 4263 + components: + - type: Transform + pos: 46.5,-5.5 + parent: 2 + - uid: 4264 + components: + - type: Transform + pos: 47.5,-5.5 + parent: 2 + - uid: 4265 + components: + - type: Transform + pos: 47.5,-6.5 + parent: 2 + - uid: 4266 + components: + - type: Transform + pos: 47.5,-7.5 + parent: 2 + - uid: 4267 + components: + - type: Transform + pos: 47.5,-8.5 + parent: 2 + - uid: 4268 + components: + - type: Transform + pos: 47.5,-9.5 + parent: 2 + - uid: 4269 + components: + - type: Transform + pos: 47.5,-10.5 + parent: 2 + - uid: 4270 + components: + - type: Transform + pos: 49.5,-10.5 + parent: 2 + - uid: 4271 + components: + - type: Transform + pos: 50.5,-10.5 + parent: 2 + - uid: 4272 + components: + - type: Transform + pos: 51.5,-10.5 + parent: 2 + - uid: 4273 + components: + - type: Transform + pos: 51.5,-11.5 + parent: 2 + - uid: 4274 + components: + - type: Transform + pos: 18.5,9.5 + parent: 2 + - uid: 4275 + components: + - type: Transform + pos: 18.5,8.5 + parent: 2 + - uid: 4276 + components: + - type: Transform + pos: 18.5,7.5 + parent: 2 + - uid: 4277 + components: + - type: Transform + pos: 18.5,6.5 + parent: 2 + - uid: 4278 + components: + - type: Transform + pos: 19.5,6.5 + parent: 2 + - uid: 4279 + components: + - type: Transform + pos: 20.5,6.5 + parent: 2 + - uid: 4280 + components: + - type: Transform + pos: 21.5,6.5 + parent: 2 + - uid: 4281 + components: + - type: Transform + pos: 22.5,6.5 + parent: 2 + - uid: 4282 + components: + - type: Transform + pos: 23.5,6.5 + parent: 2 + - uid: 4283 + components: + - type: Transform + pos: 24.5,6.5 + parent: 2 + - uid: 4284 + components: + - type: Transform + pos: 25.5,6.5 + parent: 2 + - uid: 4285 + components: + - type: Transform + pos: 25.5,7.5 + parent: 2 + - uid: 4286 + components: + - type: Transform + pos: 26.5,7.5 + parent: 2 + - uid: 4287 + components: + - type: Transform + pos: 27.5,7.5 + parent: 2 + - uid: 4288 + components: + - type: Transform + pos: 28.5,7.5 + parent: 2 + - uid: 4289 + components: + - type: Transform + pos: 29.5,7.5 + parent: 2 + - uid: 4290 + components: + - type: Transform + pos: 30.5,7.5 + parent: 2 + - uid: 4291 + components: + - type: Transform + pos: 31.5,7.5 + parent: 2 + - uid: 4292 + components: + - type: Transform + pos: 31.5,6.5 + parent: 2 + - uid: 4293 + components: + - type: Transform + pos: 31.5,5.5 + parent: 2 + - uid: 4294 + components: + - type: Transform + pos: 31.5,4.5 + parent: 2 + - uid: 4295 + components: + - type: Transform + pos: 32.5,4.5 + parent: 2 + - uid: 4296 + components: + - type: Transform + pos: 33.5,4.5 + parent: 2 + - uid: 4297 + components: + - type: Transform + pos: 34.5,4.5 + parent: 2 + - uid: 4298 + components: + - type: Transform + pos: 35.5,4.5 + parent: 2 + - uid: 4299 + components: + - type: Transform + pos: 36.5,4.5 + parent: 2 + - uid: 4300 + components: + - type: Transform + pos: 37.5,4.5 + parent: 2 + - uid: 4301 + components: + - type: Transform + pos: 38.5,4.5 + parent: 2 + - uid: 4302 + components: + - type: Transform + pos: 39.5,4.5 + parent: 2 + - uid: 4303 + components: + - type: Transform + pos: 40.5,4.5 + parent: 2 + - uid: 4304 + components: + - type: Transform + pos: 41.5,4.5 + parent: 2 + - uid: 4305 + components: + - type: Transform + pos: 42.5,4.5 + parent: 2 + - uid: 4306 + components: + - type: Transform + pos: 42.5,3.5 + parent: 2 + - uid: 4307 + components: + - type: Transform + pos: 42.5,2.5 + parent: 2 + - uid: 4308 + components: + - type: Transform + pos: 43.5,4.5 + parent: 2 + - uid: 4309 + components: + - type: Transform + pos: 43.5,5.5 + parent: 2 + - uid: 4310 + components: + - type: Transform + pos: 43.5,6.5 + parent: 2 + - uid: 4311 + components: + - type: Transform + pos: 43.5,7.5 + parent: 2 + - uid: 4312 + components: + - type: Transform + pos: 43.5,8.5 + parent: 2 + - uid: 4313 + components: + - type: Transform + pos: 43.5,9.5 + parent: 2 + - uid: 4314 + components: + - type: Transform + pos: 43.5,10.5 + parent: 2 + - uid: 4315 + components: + - type: Transform + pos: 44.5,10.5 + parent: 2 + - uid: 4316 + components: + - type: Transform + pos: 45.5,10.5 + parent: 2 + - uid: 4317 + components: + - type: Transform + pos: 46.5,10.5 + parent: 2 + - uid: 4318 + components: + - type: Transform + pos: 47.5,10.5 + parent: 2 + - uid: 4319 + components: + - type: Transform + pos: 48.5,10.5 + parent: 2 + - uid: 4320 + components: + - type: Transform + pos: 49.5,10.5 + parent: 2 + - uid: 4321 + components: + - type: Transform + pos: 50.5,10.5 + parent: 2 + - uid: 4322 + components: + - type: Transform + pos: 51.5,10.5 + parent: 2 + - uid: 4323 + components: + - type: Transform + pos: 52.5,10.5 + parent: 2 + - uid: 4324 + components: + - type: Transform + pos: 52.5,11.5 + parent: 2 + - uid: 4325 + components: + - type: Transform + pos: 53.5,11.5 + parent: 2 + - uid: 4326 + components: + - type: Transform + pos: 54.5,11.5 + parent: 2 + - uid: 4327 + components: + - type: Transform + pos: 55.5,11.5 + parent: 2 + - uid: 4328 + components: + - type: Transform + pos: 55.5,12.5 + parent: 2 + - uid: 4329 + components: + - type: Transform + pos: 55.5,13.5 + parent: 2 + - uid: 4330 + components: + - type: Transform + pos: 56.5,13.5 + parent: 2 + - uid: 4331 + components: + - type: Transform + pos: 57.5,13.5 + parent: 2 + - uid: 4332 + components: + - type: Transform + pos: 58.5,13.5 + parent: 2 + - uid: 4333 + components: + - type: Transform + pos: 59.5,13.5 + parent: 2 + - uid: 4334 + components: + - type: Transform + pos: 60.5,13.5 + parent: 2 + - uid: 4335 + components: + - type: Transform + pos: 61.5,13.5 + parent: 2 + - uid: 4336 + components: + - type: Transform + pos: 61.5,14.5 + parent: 2 + - uid: 4337 + components: + - type: Transform + pos: 61.5,15.5 + parent: 2 + - uid: 4338 + components: + - type: Transform + pos: 61.5,16.5 + parent: 2 + - uid: 4339 + components: + - type: Transform + pos: 61.5,17.5 + parent: 2 + - uid: 4340 + components: + - type: Transform + pos: 61.5,18.5 + parent: 2 + - uid: 4341 + components: + - type: Transform + pos: 62.5,18.5 + parent: 2 + - uid: 4342 + components: + - type: Transform + pos: 63.5,18.5 + parent: 2 + - uid: 4343 + components: + - type: Transform + pos: 64.5,18.5 + parent: 2 + - uid: 4344 + components: + - type: Transform + pos: 65.5,18.5 + parent: 2 + - uid: 4345 + components: + - type: Transform + pos: 65.5,19.5 + parent: 2 + - uid: 4346 + components: + - type: Transform + pos: 65.5,20.5 + parent: 2 + - uid: 4347 + components: + - type: Transform + pos: 65.5,21.5 + parent: 2 + - uid: 4348 + components: + - type: Transform + pos: 65.5,22.5 + parent: 2 + - uid: 4349 + components: + - type: Transform + pos: 65.5,23.5 + parent: 2 + - uid: 4350 + components: + - type: Transform + pos: 65.5,24.5 + parent: 2 + - uid: 4351 + components: + - type: Transform + pos: 65.5,25.5 + parent: 2 + - uid: 4352 + components: + - type: Transform + pos: 65.5,26.5 + parent: 2 + - uid: 4353 + components: + - type: Transform + pos: 65.5,27.5 + parent: 2 + - uid: 4354 + components: + - type: Transform + pos: 65.5,28.5 + parent: 2 + - uid: 4355 + components: + - type: Transform + pos: 65.5,29.5 + parent: 2 + - uid: 4356 + components: + - type: Transform + pos: 65.5,30.5 + parent: 2 + - uid: 4357 + components: + - type: Transform + pos: 65.5,31.5 + parent: 2 + - uid: 4358 + components: + - type: Transform + pos: 65.5,32.5 + parent: 2 + - uid: 4359 + components: + - type: Transform + pos: 65.5,33.5 + parent: 2 + - uid: 4360 + components: + - type: Transform + pos: 66.5,18.5 + parent: 2 + - uid: 4361 + components: + - type: Transform + pos: 67.5,18.5 + parent: 2 + - uid: 4362 + components: + - type: Transform + pos: 68.5,18.5 + parent: 2 + - uid: 4363 + components: + - type: Transform + pos: 69.5,18.5 + parent: 2 + - uid: 4364 + components: + - type: Transform + pos: 70.5,18.5 + parent: 2 + - uid: 4365 + components: + - type: Transform + pos: 71.5,18.5 + parent: 2 + - uid: 4366 + components: + - type: Transform + pos: 72.5,18.5 + parent: 2 + - uid: 4367 + components: + - type: Transform + pos: 73.5,18.5 + parent: 2 + - uid: 4368 + components: + - type: Transform + pos: 74.5,18.5 + parent: 2 + - uid: 4369 + components: + - type: Transform + pos: 74.5,17.5 + parent: 2 + - uid: 4370 + components: + - type: Transform + pos: 75.5,17.5 + parent: 2 + - uid: 4371 + components: + - type: Transform + pos: 75.5,16.5 + parent: 2 + - uid: 4372 + components: + - type: Transform + pos: 75.5,15.5 + parent: 2 + - uid: 4373 + components: + - type: Transform + pos: 75.5,14.5 + parent: 2 + - uid: 4374 + components: + - type: Transform + pos: 75.5,13.5 + parent: 2 + - uid: 4375 + components: + - type: Transform + pos: 76.5,13.5 + parent: 2 + - uid: 4376 + components: + - type: Transform + pos: 65.5,34.5 + parent: 2 + - uid: 4377 + components: + - type: Transform + pos: 65.5,35.5 + parent: 2 + - uid: 4378 + components: + - type: Transform + pos: 65.5,36.5 + parent: 2 + - uid: 4379 + components: + - type: Transform + pos: 65.5,37.5 + parent: 2 + - uid: 4380 + components: + - type: Transform + pos: 65.5,38.5 + parent: 2 + - uid: 4381 + components: + - type: Transform + pos: 65.5,39.5 + parent: 2 + - uid: 4382 + components: + - type: Transform + pos: 65.5,40.5 + parent: 2 + - uid: 4383 + components: + - type: Transform + pos: 65.5,41.5 + parent: 2 + - uid: 4384 + components: + - type: Transform + pos: 65.5,42.5 + parent: 2 + - uid: 4385 + components: + - type: Transform + pos: 65.5,43.5 + parent: 2 + - uid: 4386 + components: + - type: Transform + pos: 65.5,44.5 + parent: 2 + - uid: 4387 + components: + - type: Transform + pos: 65.5,45.5 + parent: 2 + - uid: 4388 + components: + - type: Transform + pos: 65.5,52.5 + parent: 2 + - uid: 4389 + components: + - type: Transform + pos: 65.5,53.5 + parent: 2 + - uid: 4390 + components: + - type: Transform + pos: 65.5,54.5 + parent: 2 + - uid: 4391 + components: + - type: Transform + pos: 65.5,55.5 + parent: 2 + - uid: 4393 + components: + - type: Transform + pos: 66.5,55.5 + parent: 2 + - uid: 4394 + components: + - type: Transform + pos: 67.5,55.5 + parent: 2 + - uid: 4395 + components: + - type: Transform + pos: 68.5,55.5 + parent: 2 + - uid: 4396 + components: + - type: Transform + pos: 68.5,54.5 + parent: 2 + - uid: 4397 + components: + - type: Transform + pos: 69.5,54.5 + parent: 2 + - uid: 4398 + components: + - type: Transform + pos: 70.5,54.5 + parent: 2 + - uid: 4399 + components: + - type: Transform + pos: 71.5,54.5 + parent: 2 + - uid: 4400 + components: + - type: Transform + pos: 72.5,54.5 + parent: 2 + - uid: 4401 + components: + - type: Transform + pos: 73.5,54.5 + parent: 2 + - uid: 4402 + components: + - type: Transform + pos: 73.5,53.5 + parent: 2 + - uid: 4403 + components: + - type: Transform + pos: 74.5,53.5 + parent: 2 + - uid: 4404 + components: + - type: Transform + pos: 75.5,53.5 + parent: 2 + - uid: 4414 + components: + - type: Transform + pos: 80.5,47.5 + parent: 2 + - uid: 4415 + components: + - type: Transform + pos: 79.5,47.5 + parent: 2 + - uid: 4416 + components: + - type: Transform + pos: 81.5,47.5 + parent: 2 + - uid: 4417 + components: + - type: Transform + pos: 81.5,46.5 + parent: 2 + - uid: 4418 + components: + - type: Transform + pos: 82.5,46.5 + parent: 2 + - uid: 4419 + components: + - type: Transform + pos: 83.5,46.5 + parent: 2 + - uid: 4420 + components: + - type: Transform + pos: 35.5,60.5 + parent: 2 + - uid: 4421 + components: + - type: Transform + pos: 35.5,59.5 + parent: 2 + - uid: 4422 + components: + - type: Transform + pos: 36.5,59.5 + parent: 2 + - uid: 4423 + components: + - type: Transform + pos: 37.5,59.5 + parent: 2 + - uid: 4424 + components: + - type: Transform + pos: 38.5,59.5 + parent: 2 + - uid: 4425 + components: + - type: Transform + pos: 39.5,59.5 + parent: 2 + - uid: 4426 + components: + - type: Transform + pos: 39.5,58.5 + parent: 2 + - uid: 4427 + components: + - type: Transform + pos: 39.5,57.5 + parent: 2 + - uid: 4428 + components: + - type: Transform + pos: 39.5,56.5 + parent: 2 + - uid: 4429 + components: + - type: Transform + pos: 40.5,56.5 + parent: 2 + - uid: 4430 + components: + - type: Transform + pos: 41.5,56.5 + parent: 2 + - uid: 4431 + components: + - type: Transform + pos: 42.5,56.5 + parent: 2 + - uid: 4432 + components: + - type: Transform + pos: 43.5,56.5 + parent: 2 + - uid: 4433 + components: + - type: Transform + pos: 44.5,56.5 + parent: 2 + - uid: 4435 + components: + - type: Transform + pos: 46.5,56.5 + parent: 2 + - uid: 4436 + components: + - type: Transform + pos: 47.5,56.5 + parent: 2 + - uid: 4437 + components: + - type: Transform + pos: 48.5,56.5 + parent: 2 + - uid: 4438 + components: + - type: Transform + pos: 49.5,56.5 + parent: 2 + - uid: 4439 + components: + - type: Transform + pos: 50.5,56.5 + parent: 2 + - uid: 4440 + components: + - type: Transform + pos: 51.5,56.5 + parent: 2 + - uid: 4441 + components: + - type: Transform + pos: 51.5,57.5 + parent: 2 + - uid: 4442 + components: + - type: Transform + pos: 51.5,58.5 + parent: 2 + - uid: 4443 + components: + - type: Transform + pos: 51.5,59.5 + parent: 2 + - uid: 4444 + components: + - type: Transform + pos: 52.5,59.5 + parent: 2 + - uid: 4445 + components: + - type: Transform + pos: 52.5,56.5 + parent: 2 + - uid: 4446 + components: + - type: Transform + pos: 53.5,56.5 + parent: 2 + - uid: 4447 + components: + - type: Transform + pos: 53.5,55.5 + parent: 2 + - uid: 4448 + components: + - type: Transform + pos: 53.5,54.5 + parent: 2 + - uid: 4449 + components: + - type: Transform + pos: 53.5,53.5 + parent: 2 + - uid: 4450 + components: + - type: Transform + pos: 54.5,53.5 + parent: 2 + - uid: 4451 + components: + - type: Transform + pos: 55.5,53.5 + parent: 2 + - uid: 4452 + components: + - type: Transform + pos: 56.5,53.5 + parent: 2 + - uid: 4453 + components: + - type: Transform + pos: 57.5,53.5 + parent: 2 + - uid: 4454 + components: + - type: Transform + pos: 57.5,52.5 + parent: 2 + - uid: 4455 + components: + - type: Transform + pos: 57.5,51.5 + parent: 2 + - uid: 4456 + components: + - type: Transform + pos: 57.5,50.5 + parent: 2 + - uid: 4457 + components: + - type: Transform + pos: 57.5,49.5 + parent: 2 + - uid: 4458 + components: + - type: Transform + pos: 57.5,48.5 + parent: 2 + - uid: 4459 + components: + - type: Transform + pos: 58.5,48.5 + parent: 2 + - uid: 4460 + components: + - type: Transform + pos: 59.5,48.5 + parent: 2 + - uid: 4461 + components: + - type: Transform + pos: 59.5,47.5 + parent: 2 + - uid: 4462 + components: + - type: Transform + pos: 60.5,47.5 + parent: 2 + - uid: 4463 + components: + - type: Transform + pos: 61.5,47.5 + parent: 2 + - uid: 4464 + components: + - type: Transform + pos: 62.5,47.5 + parent: 2 + - uid: 4465 + components: + - type: Transform + pos: 63.5,47.5 + parent: 2 + - uid: 4466 + components: + - type: Transform + pos: 64.5,47.5 + parent: 2 + - uid: 4467 + components: + - type: Transform + pos: 17.5,48.5 + parent: 2 + - uid: 4468 + components: + - type: Transform + pos: 18.5,48.5 + parent: 2 + - uid: 4469 + components: + - type: Transform + pos: 19.5,48.5 + parent: 2 + - uid: 4470 + components: + - type: Transform + pos: 20.5,48.5 + parent: 2 + - uid: 4471 + components: + - type: Transform + pos: 21.5,48.5 + parent: 2 + - uid: 4472 + components: + - type: Transform + pos: 21.5,47.5 + parent: 2 + - uid: 4473 + components: + - type: Transform + pos: 21.5,46.5 + parent: 2 + - uid: 4474 + components: + - type: Transform + pos: 21.5,45.5 + parent: 2 + - uid: 4475 + components: + - type: Transform + pos: 21.5,44.5 + parent: 2 + - uid: 4476 + components: + - type: Transform + pos: 21.5,43.5 + parent: 2 + - uid: 4477 + components: + - type: Transform + pos: 20.5,43.5 + parent: 2 + - uid: 4478 + components: + - type: Transform + pos: 22.5,48.5 + parent: 2 + - uid: 4479 + components: + - type: Transform + pos: 23.5,48.5 + parent: 2 + - uid: 4480 + components: + - type: Transform + pos: 24.5,48.5 + parent: 2 + - uid: 4481 + components: + - type: Transform + pos: 25.5,48.5 + parent: 2 + - uid: 4482 + components: + - type: Transform + pos: 26.5,48.5 + parent: 2 + - uid: 4483 + components: + - type: Transform + pos: 27.5,48.5 + parent: 2 + - uid: 4484 + components: + - type: Transform + pos: 28.5,48.5 + parent: 2 + - uid: 4485 + components: + - type: Transform + pos: 29.5,48.5 + parent: 2 + - uid: 4486 + components: + - type: Transform + pos: 30.5,48.5 + parent: 2 + - uid: 4487 + components: + - type: Transform + pos: 31.5,48.5 + parent: 2 + - uid: 4488 + components: + - type: Transform + pos: 32.5,48.5 + parent: 2 + - uid: 4489 + components: + - type: Transform + pos: 33.5,48.5 + parent: 2 + - uid: 4490 + components: + - type: Transform + pos: 34.5,48.5 + parent: 2 + - uid: 4491 + components: + - type: Transform + pos: 35.5,48.5 + parent: 2 + - uid: 4492 + components: + - type: Transform + pos: 36.5,48.5 + parent: 2 + - uid: 4493 + components: + - type: Transform + pos: 37.5,48.5 + parent: 2 + - uid: 4494 + components: + - type: Transform + pos: 38.5,48.5 + parent: 2 + - uid: 4495 + components: + - type: Transform + pos: 39.5,48.5 + parent: 2 + - uid: 4496 + components: + - type: Transform + pos: 40.5,48.5 + parent: 2 + - uid: 4497 + components: + - type: Transform + pos: 41.5,48.5 + parent: 2 + - uid: 4498 + components: + - type: Transform + pos: 42.5,48.5 + parent: 2 + - uid: 4499 + components: + - type: Transform + pos: 43.5,48.5 + parent: 2 + - uid: 4500 + components: + - type: Transform + pos: 44.5,48.5 + parent: 2 + - uid: 4501 + components: + - type: Transform + pos: 44.5,49.5 + parent: 2 + - uid: 4502 + components: + - type: Transform + pos: 44.5,50.5 + parent: 2 + - uid: 4503 + components: + - type: Transform + pos: 44.5,51.5 + parent: 2 + - uid: 4504 + components: + - type: Transform + pos: 45.5,51.5 + parent: 2 + - uid: 4505 + components: + - type: Transform + pos: 46.5,51.5 + parent: 2 + - uid: 4506 + components: + - type: Transform + pos: 46.5,52.5 + parent: 2 + - uid: 4507 + components: + - type: Transform + pos: 46.5,53.5 + parent: 2 + - uid: 4508 + components: + - type: Transform + pos: 46.5,54.5 + parent: 2 + - uid: 4509 + components: + - type: Transform + pos: 46.5,55.5 + parent: 2 + - uid: 4510 + components: + - type: Transform + pos: 32.5,47.5 + parent: 2 + - uid: 4511 + components: + - type: Transform + pos: 32.5,46.5 + parent: 2 + - uid: 4512 + components: + - type: Transform + pos: 32.5,45.5 + parent: 2 + - uid: 4513 + components: + - type: Transform + pos: 32.5,44.5 + parent: 2 + - uid: 4514 + components: + - type: Transform + pos: 32.5,43.5 + parent: 2 + - uid: 4515 + components: + - type: Transform + pos: 32.5,42.5 + parent: 2 + - uid: 4516 + components: + - type: Transform + pos: 32.5,41.5 + parent: 2 + - uid: 4517 + components: + - type: Transform + pos: 32.5,40.5 + parent: 2 + - uid: 4518 + components: + - type: Transform + pos: 32.5,39.5 + parent: 2 + - uid: 4519 + components: + - type: Transform + pos: 32.5,38.5 + parent: 2 + - uid: 4520 + components: + - type: Transform + pos: 32.5,37.5 + parent: 2 + - uid: 4521 + components: + - type: Transform + pos: 32.5,36.5 + parent: 2 + - uid: 4522 + components: + - type: Transform + pos: 32.5,35.5 + parent: 2 + - uid: 4523 + components: + - type: Transform + pos: 32.5,34.5 + parent: 2 + - uid: 4524 + components: + - type: Transform + pos: 32.5,33.5 + parent: 2 + - uid: 4525 + components: + - type: Transform + pos: 32.5,32.5 + parent: 2 + - uid: 4526 + components: + - type: Transform + pos: 32.5,31.5 + parent: 2 + - uid: 4527 + components: + - type: Transform + pos: 32.5,30.5 + parent: 2 + - uid: 4528 + components: + - type: Transform + pos: 32.5,29.5 + parent: 2 + - uid: 4529 + components: + - type: Transform + pos: 32.5,28.5 + parent: 2 + - uid: 4530 + components: + - type: Transform + pos: 32.5,27.5 + parent: 2 + - uid: 4531 + components: + - type: Transform + pos: 32.5,26.5 + parent: 2 + - uid: 4532 + components: + - type: Transform + pos: 32.5,25.5 + parent: 2 + - uid: 4533 + components: + - type: Transform + pos: 32.5,24.5 + parent: 2 + - uid: 4534 + components: + - type: Transform + pos: 32.5,23.5 + parent: 2 + - uid: 4535 + components: + - type: Transform + pos: 32.5,22.5 + parent: 2 + - uid: 4536 + components: + - type: Transform + pos: 32.5,21.5 + parent: 2 + - uid: 4537 + components: + - type: Transform + pos: 32.5,20.5 + parent: 2 + - uid: 4538 + components: + - type: Transform + pos: 16.5,20.5 + parent: 2 + - uid: 4539 + components: + - type: Transform + pos: 17.5,20.5 + parent: 2 + - uid: 4540 + components: + - type: Transform + pos: 18.5,20.5 + parent: 2 + - uid: 4541 + components: + - type: Transform + pos: 19.5,20.5 + parent: 2 + - uid: 4542 + components: + - type: Transform + pos: 20.5,20.5 + parent: 2 + - uid: 4543 + components: + - type: Transform + pos: 21.5,20.5 + parent: 2 + - uid: 4544 + components: + - type: Transform + pos: 22.5,20.5 + parent: 2 + - uid: 4545 + components: + - type: Transform + pos: 23.5,20.5 + parent: 2 + - uid: 4546 + components: + - type: Transform + pos: 24.5,20.5 + parent: 2 + - uid: 4547 + components: + - type: Transform + pos: 25.5,20.5 + parent: 2 + - uid: 4548 + components: + - type: Transform + pos: 26.5,20.5 + parent: 2 + - uid: 4549 + components: + - type: Transform + pos: 27.5,20.5 + parent: 2 + - uid: 4550 + components: + - type: Transform + pos: 28.5,20.5 + parent: 2 + - uid: 4551 + components: + - type: Transform + pos: 29.5,20.5 + parent: 2 + - uid: 4552 + components: + - type: Transform + pos: 30.5,20.5 + parent: 2 + - uid: 4553 + components: + - type: Transform + pos: 31.5,20.5 + parent: 2 + - uid: 4554 + components: + - type: Transform + pos: 33.5,34.5 + parent: 2 + - uid: 4555 + components: + - type: Transform + pos: 34.5,34.5 + parent: 2 + - uid: 4556 + components: + - type: Transform + pos: 35.5,34.5 + parent: 2 + - uid: 4557 + components: + - type: Transform + pos: 36.5,34.5 + parent: 2 + - uid: 4558 + components: + - type: Transform + pos: 37.5,34.5 + parent: 2 + - uid: 4559 + components: + - type: Transform + pos: 38.5,34.5 + parent: 2 + - uid: 4560 + components: + - type: Transform + pos: 39.5,34.5 + parent: 2 + - uid: 4561 + components: + - type: Transform + pos: 40.5,34.5 + parent: 2 + - uid: 4562 + components: + - type: Transform + pos: 41.5,34.5 + parent: 2 + - uid: 4563 + components: + - type: Transform + pos: 42.5,34.5 + parent: 2 + - uid: 4564 + components: + - type: Transform + pos: 43.5,34.5 + parent: 2 + - uid: 4565 + components: + - type: Transform + pos: 44.5,34.5 + parent: 2 + - uid: 4566 + components: + - type: Transform + pos: 45.5,34.5 + parent: 2 + - uid: 4567 + components: + - type: Transform + pos: 47.5,34.5 + parent: 2 + - uid: 4568 + components: + - type: Transform + pos: 48.5,34.5 + parent: 2 + - uid: 4569 + components: + - type: Transform + pos: 49.5,34.5 + parent: 2 + - uid: 4570 + components: + - type: Transform + pos: 50.5,34.5 + parent: 2 + - uid: 4571 + components: + - type: Transform + pos: 51.5,34.5 + parent: 2 + - uid: 4572 + components: + - type: Transform + pos: 52.5,34.5 + parent: 2 + - uid: 4573 + components: + - type: Transform + pos: 53.5,34.5 + parent: 2 + - uid: 4574 + components: + - type: Transform + pos: 54.5,34.5 + parent: 2 + - uid: 4575 + components: + - type: Transform + pos: 55.5,34.5 + parent: 2 + - uid: 4576 + components: + - type: Transform + pos: 56.5,34.5 + parent: 2 + - uid: 4577 + components: + - type: Transform + pos: 57.5,34.5 + parent: 2 + - uid: 4578 + components: + - type: Transform + pos: 58.5,34.5 + parent: 2 + - uid: 4579 + components: + - type: Transform + pos: 59.5,34.5 + parent: 2 + - uid: 4580 + components: + - type: Transform + pos: 60.5,34.5 + parent: 2 + - uid: 4581 + components: + - type: Transform + pos: 61.5,34.5 + parent: 2 + - uid: 4582 + components: + - type: Transform + pos: 62.5,34.5 + parent: 2 + - uid: 4583 + components: + - type: Transform + pos: 63.5,34.5 + parent: 2 + - uid: 4584 + components: + - type: Transform + pos: 64.5,34.5 + parent: 2 + - uid: 4585 + components: + - type: Transform + pos: -24.5,-15.5 + parent: 2 + - uid: 4586 + components: + - type: Transform + pos: 33.5,69.5 + parent: 2 + - uid: 4587 + components: + - type: Transform + pos: 33.5,80.5 + parent: 2 + - uid: 4588 + components: + - type: Transform + pos: -43.5,26.5 + parent: 2 + - uid: 4589 + components: + - type: Transform + pos: -30.5,27.5 + parent: 2 + - uid: 4590 + components: + - type: Transform + pos: -29.5,27.5 + parent: 2 + - uid: 4591 + components: + - type: Transform + pos: -5.5,20.5 + parent: 2 + - uid: 4592 + components: + - type: Transform + pos: -6.5,20.5 + parent: 2 + - uid: 4593 + components: + - type: Transform + pos: -7.5,20.5 + parent: 2 + - uid: 4594 + components: + - type: Transform + pos: -8.5,20.5 + parent: 2 + - uid: 4595 + components: + - type: Transform + pos: -9.5,20.5 + parent: 2 + - uid: 4596 + components: + - type: Transform + pos: -10.5,20.5 + parent: 2 + - uid: 4597 + components: + - type: Transform + pos: -11.5,20.5 + parent: 2 + - uid: 4598 + components: + - type: Transform + pos: -11.5,19.5 + parent: 2 + - uid: 4599 + components: + - type: Transform + pos: -12.5,19.5 + parent: 2 + - uid: 4600 + components: + - type: Transform + pos: -13.5,19.5 + parent: 2 + - uid: 4601 + components: + - type: Transform + pos: -14.5,19.5 + parent: 2 + - uid: 4602 + components: + - type: Transform + pos: -15.5,19.5 + parent: 2 + - uid: 4603 + components: + - type: Transform + pos: -16.5,19.5 + parent: 2 + - uid: 4604 + components: + - type: Transform + pos: -17.5,19.5 + parent: 2 + - uid: 4605 + components: + - type: Transform + pos: -18.5,19.5 + parent: 2 + - uid: 4606 + components: + - type: Transform + pos: -19.5,19.5 + parent: 2 + - uid: 4607 + components: + - type: Transform + pos: -19.5,18.5 + parent: 2 + - uid: 4608 + components: + - type: Transform + pos: -20.5,18.5 + parent: 2 + - uid: 4609 + components: + - type: Transform + pos: -21.5,18.5 + parent: 2 + - uid: 4610 + components: + - type: Transform + pos: -22.5,18.5 + parent: 2 + - uid: 4611 + components: + - type: Transform + pos: -22.5,19.5 + parent: 2 + - uid: 4612 + components: + - type: Transform + pos: -22.5,20.5 + parent: 2 + - uid: 4613 + components: + - type: Transform + pos: -22.5,21.5 + parent: 2 + - uid: 4614 + components: + - type: Transform + pos: -22.5,22.5 + parent: 2 + - uid: 4615 + components: + - type: Transform + pos: -23.5,22.5 + parent: 2 + - uid: 4616 + components: + - type: Transform + pos: -24.5,22.5 + parent: 2 + - uid: 4617 + components: + - type: Transform + pos: -23.5,23.5 + parent: 2 + - uid: 4618 + components: + - type: Transform + pos: -23.5,24.5 + parent: 2 + - uid: 4619 + components: + - type: Transform + pos: -18.5,31.5 + parent: 2 + - uid: 4620 + components: + - type: Transform + pos: 31.5,1.5 + parent: 2 + - uid: 4621 + components: + - type: Transform + pos: 31.5,3.5 + parent: 2 + - uid: 4622 + components: + - type: Transform + pos: 31.5,2.5 + parent: 2 + - uid: 4623 + components: + - type: Transform + pos: 31.5,0.5 + parent: 2 + - uid: 4624 + components: + - type: Transform + pos: 31.5,-0.5 + parent: 2 + - uid: 4625 + components: + - type: Transform + pos: 30.5,-0.5 + parent: 2 + - uid: 4626 + components: + - type: Transform + pos: -11.5,43.5 + parent: 2 + - uid: 4627 + components: + - type: Transform + pos: 35.5,62.5 + parent: 2 + - uid: 4628 + components: + - type: Transform + pos: -26.5,-10.5 + parent: 2 + - uid: 4629 + components: + - type: Transform + pos: -28.5,-3.5 + parent: 2 + - uid: 4630 + components: + - type: Transform + pos: -23.5,-3.5 + parent: 2 + - uid: 4631 + components: + - type: Transform + pos: -25.5,-10.5 + parent: 2 + - uid: 4632 + components: + - type: Transform + pos: -22.5,3.5 + parent: 2 + - uid: 4633 + components: + - type: Transform + pos: -22.5,2.5 + parent: 2 + - uid: 4634 + components: + - type: Transform + pos: -28.5,-10.5 + parent: 2 + - uid: 4635 + components: + - type: Transform + pos: -27.5,-10.5 + parent: 2 + - uid: 4636 + components: + - type: Transform + pos: -29.5,-11.5 + parent: 2 + - uid: 4637 + components: + - type: Transform + pos: -21.5,33.5 + parent: 2 + - uid: 4638 + components: + - type: Transform + pos: -10.5,42.5 + parent: 2 + - uid: 4639 + components: + - type: Transform + pos: -29.5,-10.5 + parent: 2 + - uid: 4640 + components: + - type: Transform + pos: -15.5,42.5 + parent: 2 + - uid: 4641 + components: + - type: Transform + pos: -10.5,43.5 + parent: 2 + - uid: 4642 + components: + - type: Transform + pos: -30.5,36.5 + parent: 2 + - uid: 4643 + components: + - type: Transform + pos: -30.5,37.5 + parent: 2 + - uid: 4644 + components: + - type: Transform + pos: 65.5,46.5 + parent: 2 + - uid: 4645 + components: + - type: Transform + pos: 65.5,48.5 + parent: 2 + - uid: 4646 + components: + - type: Transform + pos: 65.5,50.5 + parent: 2 + - uid: 4647 + components: + - type: Transform + pos: -18.5,32.5 + parent: 2 + - uid: 4648 + components: + - type: Transform + pos: -14.5,46.5 + parent: 2 + - uid: 4649 + components: + - type: Transform + pos: -10.5,40.5 + parent: 2 + - uid: 4650 + components: + - type: Transform + pos: -21.5,35.5 + parent: 2 + - uid: 4651 + components: + - type: Transform + pos: -22.5,35.5 + parent: 2 + - uid: 4652 + components: + - type: Transform + pos: -10.5,38.5 + parent: 2 + - uid: 4653 + components: + - type: Transform + pos: -16.5,42.5 + parent: 2 + - uid: 4654 + components: + - type: Transform + pos: -14.5,43.5 + parent: 2 + - uid: 4655 + components: + - type: Transform + pos: -10.5,36.5 + parent: 2 + - uid: 4656 + components: + - type: Transform + pos: -14.5,36.5 + parent: 2 + - uid: 4657 + components: + - type: Transform + pos: -10.5,39.5 + parent: 2 + - uid: 4658 + components: + - type: Transform + pos: -12.5,46.5 + parent: 2 + - uid: 4659 + components: + - type: Transform + pos: -13.5,36.5 + parent: 2 + - uid: 4660 + components: + - type: Transform + pos: -10.5,37.5 + parent: 2 + - uid: 4661 + components: + - type: Transform + pos: -12.5,43.5 + parent: 2 + - uid: 4662 + components: + - type: Transform + pos: -18.5,36.5 + parent: 2 + - uid: 4663 + components: + - type: Transform + pos: -20.5,37.5 + parent: 2 + - uid: 4664 + components: + - type: Transform + pos: -21.5,32.5 + parent: 2 + - uid: 4665 + components: + - type: Transform + pos: -21.5,36.5 + parent: 2 + - uid: 4666 + components: + - type: Transform + pos: -21.5,34.5 + parent: 2 + - uid: 4667 + components: + - type: Transform + pos: -20.5,36.5 + parent: 2 + - uid: 4668 + components: + - type: Transform + pos: -19.5,32.5 + parent: 2 + - uid: 4669 + components: + - type: Transform + pos: -18.5,37.5 + parent: 2 + - uid: 4670 + components: + - type: Transform + pos: -10.5,41.5 + parent: 2 + - uid: 4671 + components: + - type: Transform + pos: -16.5,36.5 + parent: 2 + - uid: 4672 + components: + - type: Transform + pos: -15.5,36.5 + parent: 2 + - uid: 4673 + components: + - type: Transform + pos: -14.5,42.5 + parent: 2 + - uid: 4674 + components: + - type: Transform + pos: 46.5,34.5 + parent: 2 + - uid: 4675 + components: + - type: Transform + pos: 84.5,44.5 + parent: 2 + - uid: 4676 + components: + - type: Transform + pos: 84.5,46.5 + parent: 2 + - uid: 4677 + components: + - type: Transform + pos: 84.5,45.5 + parent: 2 + - uid: 4678 + components: + - type: Transform + pos: 84.5,43.5 + parent: 2 + - uid: 4679 + components: + - type: Transform + pos: 84.5,42.5 + parent: 2 + - uid: 4680 + components: + - type: Transform + pos: 84.5,41.5 + parent: 2 + - uid: 4681 + components: + - type: Transform + pos: 83.5,41.5 + parent: 2 + - uid: 4682 + components: + - type: Transform + pos: 83.5,40.5 + parent: 2 + - uid: 4683 + components: + - type: Transform + pos: 83.5,39.5 + parent: 2 + - uid: 4684 + components: + - type: Transform + pos: 84.5,39.5 + parent: 2 + - uid: 4685 + components: + - type: Transform + pos: 85.5,39.5 + parent: 2 + - uid: 4686 + components: + - type: Transform + pos: 86.5,39.5 + parent: 2 + - uid: 4687 + components: + - type: Transform + pos: 87.5,39.5 + parent: 2 + - uid: 4688 + components: + - type: Transform + pos: 87.5,38.5 + parent: 2 + - uid: 4689 + components: + - type: Transform + pos: 88.5,38.5 + parent: 2 + - uid: 4690 + components: + - type: Transform + pos: 88.5,37.5 + parent: 2 + - uid: 4691 + components: + - type: Transform + pos: 88.5,36.5 + parent: 2 + - uid: 4692 + components: + - type: Transform + pos: 88.5,35.5 + parent: 2 + - uid: 4693 + components: + - type: Transform + pos: 88.5,34.5 + parent: 2 + - uid: 4694 + components: + - type: Transform + pos: 88.5,33.5 + parent: 2 + - uid: 4695 + components: + - type: Transform + pos: 88.5,32.5 + parent: 2 + - uid: 4696 + components: + - type: Transform + pos: 88.5,31.5 + parent: 2 + - uid: 4697 + components: + - type: Transform + pos: 88.5,30.5 + parent: 2 + - uid: 4698 + components: + - type: Transform + pos: 87.5,30.5 + parent: 2 + - uid: 4699 + components: + - type: Transform + pos: 87.5,29.5 + parent: 2 + - uid: 4700 + components: + - type: Transform + pos: 86.5,29.5 + parent: 2 + - uid: 4701 + components: + - type: Transform + pos: 85.5,29.5 + parent: 2 + - uid: 4702 + components: + - type: Transform + pos: 84.5,29.5 + parent: 2 + - uid: 4703 + components: + - type: Transform + pos: 83.5,29.5 + parent: 2 + - uid: 4704 + components: + - type: Transform + pos: 83.5,28.5 + parent: 2 + - uid: 4705 + components: + - type: Transform + pos: 83.5,27.5 + parent: 2 + - uid: 4706 + components: + - type: Transform + pos: 84.5,27.5 + parent: 2 + - uid: 4707 + components: + - type: Transform + pos: 84.5,26.5 + parent: 2 + - uid: 4708 + components: + - type: Transform + pos: 84.5,25.5 + parent: 2 + - uid: 4709 + components: + - type: Transform + pos: 84.5,24.5 + parent: 2 + - uid: 4710 + components: + - type: Transform + pos: 84.5,23.5 + parent: 2 + - uid: 4711 + components: + - type: Transform + pos: 84.5,22.5 + parent: 2 + - uid: 4712 + components: + - type: Transform + pos: 84.5,21.5 + parent: 2 + - uid: 4713 + components: + - type: Transform + pos: 65.5,51.5 + parent: 2 + - uid: 4714 + components: + - type: Transform + pos: 65.5,49.5 + parent: 2 + - uid: 4715 + components: + - type: Transform + pos: 65.5,47.5 + parent: 2 + - uid: 4716 + components: + - type: Transform + pos: -31.5,35.5 + parent: 2 + - uid: 4717 + components: + - type: Transform + pos: -31.5,36.5 + parent: 2 + - uid: 4718 + components: + - type: Transform + pos: -31.5,28.5 + parent: 2 + - uid: 4719 + components: + - type: Transform + pos: -31.5,29.5 + parent: 2 + - uid: 4720 + components: + - type: Transform + pos: -31.5,30.5 + parent: 2 + - uid: 4721 + components: + - type: Transform + pos: -31.5,31.5 + parent: 2 + - uid: 4722 + components: + - type: Transform + pos: -31.5,32.5 + parent: 2 + - uid: 4723 + components: + - type: Transform + pos: -31.5,33.5 + parent: 2 + - uid: 4724 + components: + - type: Transform + pos: -31.5,34.5 + parent: 2 + - uid: 4728 + components: + - type: Transform + pos: -13.5,23.5 + parent: 2 + - uid: 4729 + components: + - type: Transform + pos: -14.5,23.5 + parent: 2 + - uid: 4731 + components: + - type: Transform + pos: -13.5,25.5 + parent: 2 + - uid: 4732 + components: + - type: Transform + pos: -14.5,26.5 + parent: 2 + - uid: 4733 + components: + - type: Transform + pos: -14.5,27.5 + parent: 2 + - uid: 4734 + components: + - type: Transform + pos: -14.5,25.5 + parent: 2 + - uid: 4735 + components: + - type: Transform + pos: -13.5,27.5 + parent: 2 + - uid: 4736 + components: + - type: Transform + pos: -13.5,28.5 + parent: 2 + - uid: 4737 + components: + - type: Transform + pos: -13.5,29.5 + parent: 2 + - uid: 4738 + components: + - type: Transform + pos: -13.5,30.5 + parent: 2 + - uid: 4739 + components: + - type: Transform + pos: -13.5,31.5 + parent: 2 + - uid: 4740 + components: + - type: Transform + pos: -13.5,32.5 + parent: 2 + - uid: 4741 + components: + - type: Transform + pos: -13.5,33.5 + parent: 2 + - uid: 4742 + components: + - type: Transform + pos: -13.5,34.5 + parent: 2 + - uid: 4743 + components: + - type: Transform + pos: -13.5,35.5 + parent: 2 + - uid: 4744 + components: + - type: Transform + pos: -3.5,19.5 + parent: 2 + - uid: 4745 + components: + - type: Transform + pos: -3.5,18.5 + parent: 2 + - uid: 4746 + components: + - type: Transform + pos: 36.5,-9.5 + parent: 2 + - uid: 4747 + components: + - type: Transform + pos: 36.5,-10.5 + parent: 2 + - uid: 4748 + components: + - type: Transform + pos: 36.5,-11.5 + parent: 2 + - uid: 4749 + components: + - type: Transform + pos: 36.5,-12.5 + parent: 2 + - uid: 4750 + components: + - type: Transform + pos: 36.5,-13.5 + parent: 2 + - uid: 4751 + components: + - type: Transform + pos: 37.5,-9.5 + parent: 2 + - uid: 4752 + components: + - type: Transform + pos: 37.5,-10.5 + parent: 2 + - uid: 4753 + components: + - type: Transform + pos: 37.5,-11.5 + parent: 2 + - uid: 4754 + components: + - type: Transform + pos: 37.5,-12.5 + parent: 2 + - uid: 4755 + components: + - type: Transform + pos: 37.5,-13.5 + parent: 2 + - uid: 4756 + components: + - type: Transform + pos: 35.5,-11.5 + parent: 2 + - uid: 4757 + components: + - type: Transform + pos: 34.5,-11.5 + parent: 2 + - uid: 4758 + components: + - type: Transform + pos: 33.5,-11.5 + parent: 2 + - uid: 4759 + components: + - type: Transform + pos: 32.5,-11.5 + parent: 2 + - uid: 4760 + components: + - type: Transform + pos: 31.5,-11.5 + parent: 2 + - uid: 4761 + components: + - type: Transform + pos: 30.5,-11.5 + parent: 2 + - uid: 4762 + components: + - type: Transform + pos: 29.5,-11.5 + parent: 2 + - uid: 4763 + components: + - type: Transform + pos: 28.5,-11.5 + parent: 2 + - uid: 4764 + components: + - type: Transform + pos: 27.5,-11.5 + parent: 2 + - uid: 4765 + components: + - type: Transform + pos: 26.5,-11.5 + parent: 2 + - uid: 4766 + components: + - type: Transform + pos: 25.5,-11.5 + parent: 2 + - uid: 4767 + components: + - type: Transform + pos: 24.5,-11.5 + parent: 2 + - uid: 4768 + components: + - type: Transform + pos: 23.5,-12.5 + parent: 2 + - uid: 4769 + components: + - type: Transform + pos: 23.5,-11.5 + parent: 2 + - uid: 4770 + components: + - type: Transform + pos: 23.5,-10.5 + parent: 2 + - uid: 6323 + components: + - type: Transform + pos: -14.5,24.5 + parent: 2 + - uid: 7021 + components: + - type: Transform + pos: -13.5,24.5 + parent: 2 + - uid: 18778 + components: + - type: Transform + pos: 75.5,52.5 + parent: 2 + - uid: 18779 + components: + - type: Transform + pos: 75.5,51.5 + parent: 2 + - uid: 18780 + components: + - type: Transform + pos: 75.5,50.5 + parent: 2 + - uid: 18781 + components: + - type: Transform + pos: 75.5,49.5 + parent: 2 + - uid: 18782 + components: + - type: Transform + pos: 75.5,48.5 + parent: 2 + - uid: 18783 + components: + - type: Transform + pos: 75.5,47.5 + parent: 2 + - uid: 18784 + components: + - type: Transform + pos: 76.5,47.5 + parent: 2 + - uid: 18788 + components: + - type: Transform + pos: 77.5,47.5 + parent: 2 + - uid: 18789 + components: + - type: Transform + pos: 78.5,47.5 + parent: 2 +- proto: CableHVStack + entities: + - uid: 4771 + components: + - type: Transform + pos: -7.609933,28.761845 + parent: 2 +- proto: CableMV + entities: + - uid: 1812 + components: + - type: Transform + pos: -36.5,70.5 + parent: 2 + - uid: 1819 + components: + - type: Transform + pos: -36.5,69.5 + parent: 2 + - uid: 3236 + components: + - type: Transform + pos: 69.5,32.5 + parent: 2 + - uid: 4772 + components: + - type: Transform + pos: -19.5,41.5 + parent: 2 + - uid: 4773 + components: + - type: Transform + pos: -13.5,36.5 + parent: 2 + - uid: 4774 + components: + - type: Transform + pos: -13.5,36.5 + parent: 2 + - uid: 4775 + components: + - type: Transform + pos: -13.5,36.5 + parent: 2 + - uid: 4776 + components: + - type: Transform + pos: -13.5,39.5 + parent: 2 + - uid: 4777 + components: + - type: Transform + pos: -13.5,40.5 + parent: 2 + - uid: 4778 + components: + - type: Transform + pos: -13.5,41.5 + parent: 2 + - uid: 4779 + components: + - type: Transform + pos: -20.5,41.5 + parent: 2 + - uid: 4780 + components: + - type: Transform + pos: -21.5,41.5 + parent: 2 + - uid: 4781 + components: + - type: Transform + pos: -12.5,68.5 + parent: 2 + - uid: 4782 + components: + - type: Transform + pos: -19.5,36.5 + parent: 2 + - uid: 4783 + components: + - type: Transform + pos: 32.5,57.5 + parent: 2 + - uid: 4784 + components: + - type: Transform + pos: 33.5,57.5 + parent: 2 + - uid: 4785 + components: + - type: Transform + pos: 33.5,56.5 + parent: 2 + - uid: 4786 + components: + - type: Transform + pos: 34.5,56.5 + parent: 2 + - uid: 4787 + components: + - type: Transform + pos: -34.5,24.5 + parent: 2 + - uid: 4788 + components: + - type: Transform + pos: -3.5,66.5 + parent: 2 + - uid: 4789 + components: + - type: Transform + pos: -3.5,65.5 + parent: 2 + - uid: 4790 + components: + - type: Transform + pos: -16.5,36.5 + parent: 2 + - uid: 4791 + components: + - type: Transform + pos: -21.5,35.5 + parent: 2 + - uid: 4792 + components: + - type: Transform + pos: -14.5,36.5 + parent: 2 + - uid: 4793 + components: + - type: Transform + pos: -17.5,36.5 + parent: 2 + - uid: 4794 + components: + - type: Transform + pos: -15.5,36.5 + parent: 2 + - uid: 4795 + components: + - type: Transform + pos: -20.5,36.5 + parent: 2 + - uid: 4796 + components: + - type: Transform + pos: -18.5,36.5 + parent: 2 + - uid: 4797 + components: + - type: Transform + pos: -21.5,36.5 + parent: 2 + - uid: 4798 + components: + - type: Transform + pos: -34.5,25.5 + parent: 2 + - uid: 4799 + components: + - type: Transform + pos: -16.5,43.5 + parent: 2 + - uid: 4800 + components: + - type: Transform + pos: -15.5,43.5 + parent: 2 + - uid: 4801 + components: + - type: Transform + pos: -14.5,43.5 + parent: 2 + - uid: 4802 + components: + - type: Transform + pos: -13.5,43.5 + parent: 2 + - uid: 4803 + components: + - type: Transform + pos: -12.5,43.5 + parent: 2 + - uid: 4804 + components: + - type: Transform + pos: -11.5,43.5 + parent: 2 + - uid: 4805 + components: + - type: Transform + pos: -10.5,43.5 + parent: 2 + - uid: 4806 + components: + - type: Transform + pos: -10.5,44.5 + parent: 2 + - uid: 4807 + components: + - type: Transform + pos: -10.5,45.5 + parent: 2 + - uid: 4808 + components: + - type: Transform + pos: -10.5,46.5 + parent: 2 + - uid: 4809 + components: + - type: Transform + pos: -14.5,42.5 + parent: 2 + - uid: 4810 + components: + - type: Transform + pos: -25.5,41.5 + parent: 2 + - uid: 4811 + components: + - type: Transform + pos: -25.5,42.5 + parent: 2 + - uid: 4812 + components: + - type: Transform + pos: -25.5,43.5 + parent: 2 + - uid: 4813 + components: + - type: Transform + pos: -25.5,44.5 + parent: 2 + - uid: 4814 + components: + - type: Transform + pos: -25.5,45.5 + parent: 2 + - uid: 4815 + components: + - type: Transform + pos: -25.5,46.5 + parent: 2 + - uid: 4816 + components: + - type: Transform + pos: -24.5,46.5 + parent: 2 + - uid: 4817 + components: + - type: Transform + pos: -24.5,47.5 + parent: 2 + - uid: 4818 + components: + - type: Transform + pos: -18.5,42.5 + parent: 2 + - uid: 4819 + components: + - type: Transform + pos: -18.5,43.5 + parent: 2 + - uid: 4820 + components: + - type: Transform + pos: -19.5,43.5 + parent: 2 + - uid: 4821 + components: + - type: Transform + pos: -20.5,43.5 + parent: 2 + - uid: 4822 + components: + - type: Transform + pos: -21.5,43.5 + parent: 2 + - uid: 4823 + components: + - type: Transform + pos: -22.5,43.5 + parent: 2 + - uid: 4824 + components: + - type: Transform + pos: -22.5,44.5 + parent: 2 + - uid: 4825 + components: + - type: Transform + pos: -22.5,45.5 + parent: 2 + - uid: 4826 + components: + - type: Transform + pos: -22.5,46.5 + parent: 2 + - uid: 4827 + components: + - type: Transform + pos: -12.5,36.5 + parent: 2 + - uid: 4828 + components: + - type: Transform + pos: -11.5,36.5 + parent: 2 + - uid: 4829 + components: + - type: Transform + pos: -10.5,36.5 + parent: 2 + - uid: 4830 + components: + - type: Transform + pos: -9.5,36.5 + parent: 2 + - uid: 4831 + components: + - type: Transform + pos: -8.5,36.5 + parent: 2 + - uid: 4832 + components: + - type: Transform + pos: -7.5,36.5 + parent: 2 + - uid: 4833 + components: + - type: Transform + pos: -6.5,36.5 + parent: 2 + - uid: 4834 + components: + - type: Transform + pos: -5.5,36.5 + parent: 2 + - uid: 4835 + components: + - type: Transform + pos: -4.5,36.5 + parent: 2 + - uid: 4836 + components: + - type: Transform + pos: -3.5,36.5 + parent: 2 + - uid: 4837 + components: + - type: Transform + pos: -2.5,36.5 + parent: 2 + - uid: 4838 + components: + - type: Transform + pos: -2.5,37.5 + parent: 2 + - uid: 4839 + components: + - type: Transform + pos: -10.5,21.5 + parent: 2 + - uid: 4840 + components: + - type: Transform + pos: -9.5,21.5 + parent: 2 + - uid: 4841 + components: + - type: Transform + pos: -9.5,22.5 + parent: 2 + - uid: 4842 + components: + - type: Transform + pos: -9.5,23.5 + parent: 2 + - uid: 4843 + components: + - type: Transform + pos: -9.5,24.5 + parent: 2 + - uid: 4844 + components: + - type: Transform + pos: -9.5,25.5 + parent: 2 + - uid: 4845 + components: + - type: Transform + pos: -9.5,26.5 + parent: 2 + - uid: 4846 + components: + - type: Transform + pos: -9.5,27.5 + parent: 2 + - uid: 4847 + components: + - type: Transform + pos: -8.5,27.5 + parent: 2 + - uid: 4848 + components: + - type: Transform + pos: -7.5,27.5 + parent: 2 + - uid: 4849 + components: + - type: Transform + pos: -6.5,27.5 + parent: 2 + - uid: 4850 + components: + - type: Transform + pos: -5.5,27.5 + parent: 2 + - uid: 4851 + components: + - type: Transform + pos: -4.5,27.5 + parent: 2 + - uid: 4852 + components: + - type: Transform + pos: -3.5,27.5 + parent: 2 + - uid: 4853 + components: + - type: Transform + pos: -3.5,28.5 + parent: 2 + - uid: 4854 + components: + - type: Transform + pos: -11.5,20.5 + parent: 2 + - uid: 4855 + components: + - type: Transform + pos: -11.5,21.5 + parent: 2 + - uid: 4856 + components: + - type: Transform + pos: -11.5,19.5 + parent: 2 + - uid: 4857 + components: + - type: Transform + pos: -12.5,19.5 + parent: 2 + - uid: 4858 + components: + - type: Transform + pos: -13.5,19.5 + parent: 2 + - uid: 4859 + components: + - type: Transform + pos: -14.5,19.5 + parent: 2 + - uid: 4860 + components: + - type: Transform + pos: -15.5,19.5 + parent: 2 + - uid: 4861 + components: + - type: Transform + pos: -16.5,19.5 + parent: 2 + - uid: 4862 + components: + - type: Transform + pos: -17.5,19.5 + parent: 2 + - uid: 4863 + components: + - type: Transform + pos: -18.5,19.5 + parent: 2 + - uid: 4864 + components: + - type: Transform + pos: -18.5,18.5 + parent: 2 + - uid: 4865 + components: + - type: Transform + pos: -18.5,18.5 + parent: 2 + - uid: 4866 + components: + - type: Transform + pos: -19.5,18.5 + parent: 2 + - uid: 4867 + components: + - type: Transform + pos: -20.5,18.5 + parent: 2 + - uid: 4868 + components: + - type: Transform + pos: -21.5,18.5 + parent: 2 + - uid: 4869 + components: + - type: Transform + pos: -22.5,18.5 + parent: 2 + - uid: 4870 + components: + - type: Transform + pos: -23.5,18.5 + parent: 2 + - uid: 4871 + components: + - type: Transform + pos: -23.5,16.5 + parent: 2 + - uid: 4872 + components: + - type: Transform + pos: -23.5,16.5 + parent: 2 + - uid: 4873 + components: + - type: Transform + pos: -23.5,17.5 + parent: 2 + - uid: 4874 + components: + - type: Transform + pos: -23.5,15.5 + parent: 2 + - uid: 4875 + components: + - type: Transform + pos: -22.5,19.5 + parent: 2 + - uid: 4876 + components: + - type: Transform + pos: -22.5,20.5 + parent: 2 + - uid: 4877 + components: + - type: Transform + pos: -22.5,21.5 + parent: 2 + - uid: 4878 + components: + - type: Transform + pos: -22.5,22.5 + parent: 2 + - uid: 4879 + components: + - type: Transform + pos: -23.5,24.5 + parent: 2 + - uid: 4880 + components: + - type: Transform + pos: -23.5,23.5 + parent: 2 + - uid: 4881 + components: + - type: Transform + pos: -23.5,22.5 + parent: 2 + - uid: 4882 + components: + - type: Transform + pos: -24.5,22.5 + parent: 2 + - uid: 4883 + components: + - type: Transform + pos: -9.5,45.5 + parent: 2 + - uid: 4884 + components: + - type: Transform + pos: -8.5,45.5 + parent: 2 + - uid: 4885 + components: + - type: Transform + pos: -8.5,46.5 + parent: 2 + - uid: 4886 + components: + - type: Transform + pos: -20.5,9.5 + parent: 2 + - uid: 4887 + components: + - type: Transform + pos: -21.5,9.5 + parent: 2 + - uid: 4888 + components: + - type: Transform + pos: -21.5,8.5 + parent: 2 + - uid: 4889 + components: + - type: Transform + pos: -21.5,7.5 + parent: 2 + - uid: 4890 + components: + - type: Transform + pos: -21.5,6.5 + parent: 2 + - uid: 4891 + components: + - type: Transform + pos: -18.5,4.5 + parent: 2 + - uid: 4892 + components: + - type: Transform + pos: -17.5,4.5 + parent: 2 + - uid: 4893 + components: + - type: Transform + pos: -17.5,5.5 + parent: 2 + - uid: 4894 + components: + - type: Transform + pos: -17.5,6.5 + parent: 2 + - uid: 4895 + components: + - type: Transform + pos: -17.5,7.5 + parent: 2 + - uid: 4896 + components: + - type: Transform + pos: -17.5,8.5 + parent: 2 + - uid: 4897 + components: + - type: Transform + pos: -16.5,8.5 + parent: 2 + - uid: 4898 + components: + - type: Transform + pos: -15.5,8.5 + parent: 2 + - uid: 4899 + components: + - type: Transform + pos: -14.5,8.5 + parent: 2 + - uid: 4900 + components: + - type: Transform + pos: -13.5,8.5 + parent: 2 + - uid: 4901 + components: + - type: Transform + pos: -13.5,7.5 + parent: 2 + - uid: 4902 + components: + - type: Transform + pos: -13.5,7.5 + parent: 2 + - uid: 4903 + components: + - type: Transform + pos: -12.5,7.5 + parent: 2 + - uid: 4904 + components: + - type: Transform + pos: -11.5,7.5 + parent: 2 + - uid: 4905 + components: + - type: Transform + pos: -11.5,8.5 + parent: 2 + - uid: 4906 + components: + - type: Transform + pos: -11.5,9.5 + parent: 2 + - uid: 4907 + components: + - type: Transform + pos: -11.5,10.5 + parent: 2 + - uid: 4908 + components: + - type: Transform + pos: -10.5,10.5 + parent: 2 + - uid: 4909 + components: + - type: Transform + pos: -9.5,10.5 + parent: 2 + - uid: 4910 + components: + - type: Transform + pos: -8.5,10.5 + parent: 2 + - uid: 4911 + components: + - type: Transform + pos: -7.5,10.5 + parent: 2 + - uid: 4912 + components: + - type: Transform + pos: -6.5,10.5 + parent: 2 + - uid: 4913 + components: + - type: Transform + pos: -5.5,10.5 + parent: 2 + - uid: 4914 + components: + - type: Transform + pos: -5.5,10.5 + parent: 2 + - uid: 4915 + components: + - type: Transform + pos: -5.5,11.5 + parent: 2 + - uid: 4916 + components: + - type: Transform + pos: -5.5,12.5 + parent: 2 + - uid: 4917 + components: + - type: Transform + pos: -5.5,13.5 + parent: 2 + - uid: 4918 + components: + - type: Transform + pos: -5.5,14.5 + parent: 2 + - uid: 4919 + components: + - type: Transform + pos: -5.5,15.5 + parent: 2 + - uid: 4920 + components: + - type: Transform + pos: -5.5,16.5 + parent: 2 + - uid: 4921 + components: + - type: Transform + pos: -4.5,10.5 + parent: 2 + - uid: 4922 + components: + - type: Transform + pos: -3.5,10.5 + parent: 2 + - uid: 4923 + components: + - type: Transform + pos: -2.5,10.5 + parent: 2 + - uid: 4924 + components: + - type: Transform + pos: -1.5,10.5 + parent: 2 + - uid: 4925 + components: + - type: Transform + pos: -0.5,10.5 + parent: 2 + - uid: 4926 + components: + - type: Transform + pos: 0.5,10.5 + parent: 2 + - uid: 4927 + components: + - type: Transform + pos: 1.5,10.5 + parent: 2 + - uid: 4928 + components: + - type: Transform + pos: 2.5,10.5 + parent: 2 + - uid: 4929 + components: + - type: Transform + pos: 3.5,10.5 + parent: 2 + - uid: 4930 + components: + - type: Transform + pos: 4.5,10.5 + parent: 2 + - uid: 4931 + components: + - type: Transform + pos: 4.5,11.5 + parent: 2 + - uid: 4932 + components: + - type: Transform + pos: 4.5,12.5 + parent: 2 + - uid: 4933 + components: + - type: Transform + pos: 4.5,12.5 + parent: 2 + - uid: 4934 + components: + - type: Transform + pos: 5.5,12.5 + parent: 2 + - uid: 4935 + components: + - type: Transform + pos: 6.5,12.5 + parent: 2 + - uid: 4936 + components: + - type: Transform + pos: 7.5,12.5 + parent: 2 + - uid: 4937 + components: + - type: Transform + pos: 8.5,12.5 + parent: 2 + - uid: 4938 + components: + - type: Transform + pos: 9.5,12.5 + parent: 2 + - uid: 4939 + components: + - type: Transform + pos: 10.5,12.5 + parent: 2 + - uid: 4940 + components: + - type: Transform + pos: 11.5,12.5 + parent: 2 + - uid: 4941 + components: + - type: Transform + pos: 11.5,13.5 + parent: 2 + - uid: 4942 + components: + - type: Transform + pos: 12.5,13.5 + parent: 2 + - uid: 4943 + components: + - type: Transform + pos: 13.5,13.5 + parent: 2 + - uid: 4944 + components: + - type: Transform + pos: 4.5,13.5 + parent: 2 + - uid: 4945 + components: + - type: Transform + pos: 4.5,14.5 + parent: 2 + - uid: 4946 + components: + - type: Transform + pos: 4.5,15.5 + parent: 2 + - uid: 4947 + components: + - type: Transform + pos: 4.5,16.5 + parent: 2 + - uid: 4948 + components: + - type: Transform + pos: 3.5,16.5 + parent: 2 + - uid: 4949 + components: + - type: Transform + pos: 2.5,16.5 + parent: 2 + - uid: 4950 + components: + - type: Transform + pos: 1.5,16.5 + parent: 2 + - uid: 4951 + components: + - type: Transform + pos: 0.5,16.5 + parent: 2 + - uid: 4952 + components: + - type: Transform + pos: -0.5,16.5 + parent: 2 + - uid: 4953 + components: + - type: Transform + pos: -0.5,17.5 + parent: 2 + - uid: 4954 + components: + - type: Transform + pos: -0.5,18.5 + parent: 2 + - uid: 4955 + components: + - type: Transform + pos: 5.5,10.5 + parent: 2 + - uid: 4956 + components: + - type: Transform + pos: 6.5,10.5 + parent: 2 + - uid: 4957 + components: + - type: Transform + pos: 7.5,10.5 + parent: 2 + - uid: 4958 + components: + - type: Transform + pos: 7.5,9.5 + parent: 2 + - uid: 4959 + components: + - type: Transform + pos: 7.5,8.5 + parent: 2 + - uid: 4960 + components: + - type: Transform + pos: 7.5,7.5 + parent: 2 + - uid: 4961 + components: + - type: Transform + pos: 7.5,6.5 + parent: 2 + - uid: 4962 + components: + - type: Transform + pos: 2.5,17.5 + parent: 2 + - uid: 4963 + components: + - type: Transform + pos: 2.5,15.5 + parent: 2 + - uid: 4964 + components: + - type: Transform + pos: 2.5,14.5 + parent: 2 + - uid: 4965 + components: + - type: Transform + pos: 2.5,13.5 + parent: 2 + - uid: 4966 + components: + - type: Transform + pos: 1.5,13.5 + parent: 2 + - uid: 4967 + components: + - type: Transform + pos: 0.5,13.5 + parent: 2 + - uid: 4968 + components: + - type: Transform + pos: -0.5,13.5 + parent: 2 + - uid: 4969 + components: + - type: Transform + pos: -2.5,68.5 + parent: 2 + - uid: 4970 + components: + - type: Transform + pos: -3.5,68.5 + parent: 2 + - uid: 4971 + components: + - type: Transform + pos: -3.5,69.5 + parent: 2 + - uid: 4972 + components: + - type: Transform + pos: -3.5,67.5 + parent: 2 + - uid: 4973 + components: + - type: Transform + pos: -4.5,67.5 + parent: 2 + - uid: 4974 + components: + - type: Transform + pos: -5.5,67.5 + parent: 2 + - uid: 4975 + components: + - type: Transform + pos: -6.5,67.5 + parent: 2 + - uid: 4976 + components: + - type: Transform + pos: -7.5,67.5 + parent: 2 + - uid: 4977 + components: + - type: Transform + pos: -8.5,67.5 + parent: 2 + - uid: 4978 + components: + - type: Transform + pos: -9.5,67.5 + parent: 2 + - uid: 4979 + components: + - type: Transform + pos: -10.5,67.5 + parent: 2 + - uid: 4980 + components: + - type: Transform + pos: -11.5,67.5 + parent: 2 + - uid: 4981 + components: + - type: Transform + pos: -11.5,66.5 + parent: 2 + - uid: 4982 + components: + - type: Transform + pos: -11.5,65.5 + parent: 2 + - uid: 4983 + components: + - type: Transform + pos: -11.5,64.5 + parent: 2 + - uid: 4984 + components: + - type: Transform + pos: -11.5,63.5 + parent: 2 + - uid: 4985 + components: + - type: Transform + pos: -11.5,62.5 + parent: 2 + - uid: 4986 + components: + - type: Transform + pos: -11.5,61.5 + parent: 2 + - uid: 4987 + components: + - type: Transform + pos: -11.5,60.5 + parent: 2 + - uid: 4988 + components: + - type: Transform + pos: -11.5,59.5 + parent: 2 + - uid: 4989 + components: + - type: Transform + pos: -11.5,58.5 + parent: 2 + - uid: 4990 + components: + - type: Transform + pos: -12.5,64.5 + parent: 2 + - uid: 4991 + components: + - type: Transform + pos: -13.5,64.5 + parent: 2 + - uid: 4992 + components: + - type: Transform + pos: -14.5,64.5 + parent: 2 + - uid: 4993 + components: + - type: Transform + pos: -14.5,65.5 + parent: 2 + - uid: 4994 + components: + - type: Transform + pos: -15.5,66.5 + parent: 2 + - uid: 4995 + components: + - type: Transform + pos: -14.5,66.5 + parent: 2 + - uid: 4996 + components: + - type: Transform + pos: -16.5,66.5 + parent: 2 + - uid: 4997 + components: + - type: Transform + pos: -17.5,66.5 + parent: 2 + - uid: 4998 + components: + - type: Transform + pos: -17.5,67.5 + parent: 2 + - uid: 4999 + components: + - type: Transform + pos: -17.5,68.5 + parent: 2 + - uid: 5000 + components: + - type: Transform + pos: -17.5,69.5 + parent: 2 + - uid: 5001 + components: + - type: Transform + pos: -17.5,70.5 + parent: 2 + - uid: 5002 + components: + - type: Transform + pos: -17.5,71.5 + parent: 2 + - uid: 5003 + components: + - type: Transform + pos: -12.5,58.5 + parent: 2 + - uid: 5004 + components: + - type: Transform + pos: -13.5,58.5 + parent: 2 + - uid: 5005 + components: + - type: Transform + pos: -14.5,58.5 + parent: 2 + - uid: 5006 + components: + - type: Transform + pos: -15.5,58.5 + parent: 2 + - uid: 5007 + components: + - type: Transform + pos: -16.5,58.5 + parent: 2 + - uid: 5008 + components: + - type: Transform + pos: -17.5,58.5 + parent: 2 + - uid: 5009 + components: + - type: Transform + pos: -18.5,58.5 + parent: 2 + - uid: 5010 + components: + - type: Transform + pos: -19.5,58.5 + parent: 2 + - uid: 5011 + components: + - type: Transform + pos: -17.5,57.5 + parent: 2 + - uid: 5012 + components: + - type: Transform + pos: -17.5,56.5 + parent: 2 + - uid: 5013 + components: + - type: Transform + pos: -20.5,58.5 + parent: 2 + - uid: 5014 + components: + - type: Transform + pos: -21.5,58.5 + parent: 2 + - uid: 5015 + components: + - type: Transform + pos: -22.5,58.5 + parent: 2 + - uid: 5016 + components: + - type: Transform + pos: -23.5,58.5 + parent: 2 + - uid: 5017 + components: + - type: Transform + pos: -24.5,58.5 + parent: 2 + - uid: 5018 + components: + - type: Transform + pos: -25.5,58.5 + parent: 2 + - uid: 5019 + components: + - type: Transform + pos: -23.5,59.5 + parent: 2 + - uid: 5020 + components: + - type: Transform + pos: -23.5,60.5 + parent: 2 + - uid: 5021 + components: + - type: Transform + pos: -23.5,61.5 + parent: 2 + - uid: 5022 + components: + - type: Transform + pos: -23.5,62.5 + parent: 2 + - uid: 5023 + components: + - type: Transform + pos: -23.5,63.5 + parent: 2 + - uid: 5024 + components: + - type: Transform + pos: -23.5,64.5 + parent: 2 + - uid: 5025 + components: + - type: Transform + pos: -23.5,65.5 + parent: 2 + - uid: 5026 + components: + - type: Transform + pos: -23.5,66.5 + parent: 2 + - uid: 5027 + components: + - type: Transform + pos: -23.5,67.5 + parent: 2 + - uid: 5028 + components: + - type: Transform + pos: -23.5,68.5 + parent: 2 + - uid: 5029 + components: + - type: Transform + pos: -24.5,68.5 + parent: 2 + - uid: 5030 + components: + - type: Transform + pos: -25.5,68.5 + parent: 2 + - uid: 5031 + components: + - type: Transform + pos: -25.5,69.5 + parent: 2 + - uid: 5032 + components: + - type: Transform + pos: -25.5,70.5 + parent: 2 + - uid: 5033 + components: + - type: Transform + pos: -25.5,71.5 + parent: 2 + - uid: 5034 + components: + - type: Transform + pos: -25.5,72.5 + parent: 2 + - uid: 5035 + components: + - type: Transform + pos: -26.5,58.5 + parent: 2 + - uid: 5036 + components: + - type: Transform + pos: -27.5,58.5 + parent: 2 + - uid: 5037 + components: + - type: Transform + pos: -27.5,57.5 + parent: 2 + - uid: 5038 + components: + - type: Transform + pos: -27.5,56.5 + parent: 2 + - uid: 5039 + components: + - type: Transform + pos: -27.5,55.5 + parent: 2 + - uid: 5040 + components: + - type: Transform + pos: -27.5,54.5 + parent: 2 + - uid: 5041 + components: + - type: Transform + pos: -27.5,53.5 + parent: 2 + - uid: 5042 + components: + - type: Transform + pos: -27.5,52.5 + parent: 2 + - uid: 5043 + components: + - type: Transform + pos: -28.5,52.5 + parent: 2 + - uid: 5044 + components: + - type: Transform + pos: -29.5,52.5 + parent: 2 + - uid: 5045 + components: + - type: Transform + pos: -30.5,52.5 + parent: 2 + - uid: 5046 + components: + - type: Transform + pos: -31.5,52.5 + parent: 2 + - uid: 5047 + components: + - type: Transform + pos: -31.5,53.5 + parent: 2 + - uid: 5048 + components: + - type: Transform + pos: -31.5,54.5 + parent: 2 + - uid: 5049 + components: + - type: Transform + pos: -28.5,58.5 + parent: 2 + - uid: 5050 + components: + - type: Transform + pos: -29.5,58.5 + parent: 2 + - uid: 5051 + components: + - type: Transform + pos: -30.5,58.5 + parent: 2 + - uid: 5052 + components: + - type: Transform + pos: -30.5,59.5 + parent: 2 + - uid: 5053 + components: + - type: Transform + pos: -30.5,59.5 + parent: 2 + - uid: 5054 + components: + - type: Transform + pos: -30.5,60.5 + parent: 2 + - uid: 5055 + components: + - type: Transform + pos: -30.5,61.5 + parent: 2 + - uid: 5056 + components: + - type: Transform + pos: -30.5,62.5 + parent: 2 + - uid: 5057 + components: + - type: Transform + pos: -30.5,63.5 + parent: 2 + - uid: 5058 + components: + - type: Transform + pos: -30.5,64.5 + parent: 2 + - uid: 5059 + components: + - type: Transform + pos: -30.5,65.5 + parent: 2 + - uid: 5060 + components: + - type: Transform + pos: -30.5,66.5 + parent: 2 + - uid: 5061 + components: + - type: Transform + pos: -30.5,67.5 + parent: 2 + - uid: 5062 + components: + - type: Transform + pos: -30.5,68.5 + parent: 2 + - uid: 5063 + components: + - type: Transform + pos: -34.5,68.5 + parent: 2 + - uid: 5067 + components: + - type: Transform + pos: -22.5,75.5 + parent: 2 + - uid: 5070 + components: + - type: Transform + pos: -32.5,68.5 + parent: 2 + - uid: 5071 + components: + - type: Transform + pos: -33.5,68.5 + parent: 2 + - uid: 5072 + components: + - type: Transform + pos: -35.5,68.5 + parent: 2 + - uid: 5073 + components: + - type: Transform + pos: -36.5,68.5 + parent: 2 + - uid: 5074 + components: + - type: Transform + pos: -36.5,67.5 + parent: 2 + - uid: 5075 + components: + - type: Transform + pos: -24.5,72.5 + parent: 2 + - uid: 5076 + components: + - type: Transform + pos: -23.5,72.5 + parent: 2 + - uid: 5077 + components: + - type: Transform + pos: -22.5,72.5 + parent: 2 + - uid: 5078 + components: + - type: Transform + pos: -11.5,68.5 + parent: 2 + - uid: 5079 + components: + - type: Transform + pos: -11.5,69.5 + parent: 2 + - uid: 5081 + components: + - type: Transform + pos: -11.5,71.5 + parent: 2 + - uid: 5083 + components: + - type: Transform + pos: -10.5,71.5 + parent: 2 + - uid: 5084 + components: + - type: Transform + pos: -9.5,71.5 + parent: 2 + - uid: 5085 + components: + - type: Transform + pos: -8.5,71.5 + parent: 2 + - uid: 5086 + components: + - type: Transform + pos: -7.5,71.5 + parent: 2 + - uid: 5087 + components: + - type: Transform + pos: -6.5,71.5 + parent: 2 + - uid: 5088 + components: + - type: Transform + pos: -5.5,71.5 + parent: 2 + - uid: 5089 + components: + - type: Transform + pos: -5.5,70.5 + parent: 2 + - uid: 5090 + components: + - type: Transform + pos: -5.5,69.5 + parent: 2 + - uid: 5091 + components: + - type: Transform + pos: -14.5,63.5 + parent: 2 + - uid: 5092 + components: + - type: Transform + pos: -13.5,63.5 + parent: 2 + - uid: 5093 + components: + - type: Transform + pos: -13.5,62.5 + parent: 2 + - uid: 5094 + components: + - type: Transform + pos: -13.5,61.5 + parent: 2 + - uid: 5095 + components: + - type: Transform + pos: -13.5,60.5 + parent: 2 + - uid: 5096 + components: + - type: Transform + pos: -13.5,59.5 + parent: 2 + - uid: 5097 + components: + - type: Transform + pos: -14.5,59.5 + parent: 2 + - uid: 5098 + components: + - type: Transform + pos: -16.5,59.5 + parent: 2 + - uid: 5099 + components: + - type: Transform + pos: -18.5,59.5 + parent: 2 + - uid: 5100 + components: + - type: Transform + pos: -17.5,65.5 + parent: 2 + - uid: 5101 + components: + - type: Transform + pos: -18.5,65.5 + parent: 2 + - uid: 5102 + components: + - type: Transform + pos: -19.5,65.5 + parent: 2 + - uid: 5103 + components: + - type: Transform + pos: -16.5,56.5 + parent: 2 + - uid: 5104 + components: + - type: Transform + pos: -16.5,55.5 + parent: 2 + - uid: 5105 + components: + - type: Transform + pos: -16.5,54.5 + parent: 2 + - uid: 5106 + components: + - type: Transform + pos: -20.5,57.5 + parent: 2 + - uid: 5107 + components: + - type: Transform + pos: -20.5,56.5 + parent: 2 + - uid: 5108 + components: + - type: Transform + pos: -17.5,55.5 + parent: 2 + - uid: 5109 + components: + - type: Transform + pos: -17.5,54.5 + parent: 2 + - uid: 5110 + components: + - type: Transform + pos: -17.5,53.5 + parent: 2 + - uid: 5111 + components: + - type: Transform + pos: -17.5,52.5 + parent: 2 + - uid: 5112 + components: + - type: Transform + pos: -17.5,51.5 + parent: 2 + - uid: 5113 + components: + - type: Transform + pos: -17.5,50.5 + parent: 2 + - uid: 5114 + components: + - type: Transform + pos: -18.5,50.5 + parent: 2 + - uid: 5115 + components: + - type: Transform + pos: -19.5,50.5 + parent: 2 + - uid: 5116 + components: + - type: Transform + pos: -20.5,50.5 + parent: 2 + - uid: 5117 + components: + - type: Transform + pos: -21.5,50.5 + parent: 2 + - uid: 5118 + components: + - type: Transform + pos: -22.5,50.5 + parent: 2 + - uid: 5119 + components: + - type: Transform + pos: -23.5,50.5 + parent: 2 + - uid: 5120 + components: + - type: Transform + pos: -24.5,50.5 + parent: 2 + - uid: 5121 + components: + - type: Transform + pos: -32.5,52.5 + parent: 2 + - uid: 5122 + components: + - type: Transform + pos: -33.5,52.5 + parent: 2 + - uid: 5123 + components: + - type: Transform + pos: -31.5,58.5 + parent: 2 + - uid: 5124 + components: + - type: Transform + pos: -32.5,58.5 + parent: 2 + - uid: 5125 + components: + - type: Transform + pos: -33.5,58.5 + parent: 2 + - uid: 5126 + components: + - type: Transform + pos: -34.5,58.5 + parent: 2 + - uid: 5127 + components: + - type: Transform + pos: -35.5,58.5 + parent: 2 + - uid: 5128 + components: + - type: Transform + pos: -35.5,57.5 + parent: 2 + - uid: 5129 + components: + - type: Transform + pos: -35.5,56.5 + parent: 2 + - uid: 5130 + components: + - type: Transform + pos: -35.5,55.5 + parent: 2 + - uid: 5131 + components: + - type: Transform + pos: 30.5,-0.5 + parent: 2 + - uid: 5132 + components: + - type: Transform + pos: 29.5,1.5 + parent: 2 + - uid: 5133 + components: + - type: Transform + pos: 29.5,2.5 + parent: 2 + - uid: 5134 + components: + - type: Transform + pos: 29.5,0.5 + parent: 2 + - uid: 5135 + components: + - type: Transform + pos: 29.5,-0.5 + parent: 2 + - uid: 5136 + components: + - type: Transform + pos: 29.5,-1.5 + parent: 2 + - uid: 5137 + components: + - type: Transform + pos: 30.5,-1.5 + parent: 2 + - uid: 5138 + components: + - type: Transform + pos: 41.5,2.5 + parent: 2 + - uid: 5139 + components: + - type: Transform + pos: 42.5,2.5 + parent: 2 + - uid: 5140 + components: + - type: Transform + pos: 42.5,3.5 + parent: 2 + - uid: 5141 + components: + - type: Transform + pos: 42.5,4.5 + parent: 2 + - uid: 5142 + components: + - type: Transform + pos: 41.5,4.5 + parent: 2 + - uid: 5143 + components: + - type: Transform + pos: 40.5,4.5 + parent: 2 + - uid: 5144 + components: + - type: Transform + pos: 39.5,4.5 + parent: 2 + - uid: 5145 + components: + - type: Transform + pos: 38.5,4.5 + parent: 2 + - uid: 5146 + components: + - type: Transform + pos: 37.5,4.5 + parent: 2 + - uid: 5147 + components: + - type: Transform + pos: 36.5,4.5 + parent: 2 + - uid: 5148 + components: + - type: Transform + pos: 35.5,4.5 + parent: 2 + - uid: 5149 + components: + - type: Transform + pos: 35.5,5.5 + parent: 2 + - uid: 5150 + components: + - type: Transform + pos: 35.5,6.5 + parent: 2 + - uid: 5151 + components: + - type: Transform + pos: 35.5,7.5 + parent: 2 + - uid: 5152 + components: + - type: Transform + pos: 35.5,8.5 + parent: 2 + - uid: 5153 + components: + - type: Transform + pos: 34.5,8.5 + parent: 2 + - uid: 5154 + components: + - type: Transform + pos: 39.5,9.5 + parent: 2 + - uid: 5155 + components: + - type: Transform + pos: 39.5,8.5 + parent: 2 + - uid: 5156 + components: + - type: Transform + pos: 38.5,8.5 + parent: 2 + - uid: 5157 + components: + - type: Transform + pos: 37.5,8.5 + parent: 2 + - uid: 5158 + components: + - type: Transform + pos: 36.5,8.5 + parent: 2 + - uid: 5159 + components: + - type: Transform + pos: 39.5,10.5 + parent: 2 + - uid: 5160 + components: + - type: Transform + pos: 39.5,11.5 + parent: 2 + - uid: 5161 + components: + - type: Transform + pos: 39.5,12.5 + parent: 2 + - uid: 5162 + components: + - type: Transform + pos: 39.5,13.5 + parent: 2 + - uid: 5163 + components: + - type: Transform + pos: 39.5,14.5 + parent: 2 + - uid: 5164 + components: + - type: Transform + pos: 39.5,15.5 + parent: 2 + - uid: 5165 + components: + - type: Transform + pos: 38.5,15.5 + parent: 2 + - uid: 5166 + components: + - type: Transform + pos: 37.5,15.5 + parent: 2 + - uid: 5167 + components: + - type: Transform + pos: 43.5,4.5 + parent: 2 + - uid: 5168 + components: + - type: Transform + pos: 43.5,5.5 + parent: 2 + - uid: 5169 + components: + - type: Transform + pos: 43.5,6.5 + parent: 2 + - uid: 5170 + components: + - type: Transform + pos: 43.5,7.5 + parent: 2 + - uid: 5171 + components: + - type: Transform + pos: 43.5,8.5 + parent: 2 + - uid: 5172 + components: + - type: Transform + pos: 43.5,9.5 + parent: 2 + - uid: 5173 + components: + - type: Transform + pos: 43.5,10.5 + parent: 2 + - uid: 5174 + components: + - type: Transform + pos: 44.5,10.5 + parent: 2 + - uid: 5175 + components: + - type: Transform + pos: 44.5,11.5 + parent: 2 + - uid: 5176 + components: + - type: Transform + pos: 40.5,15.5 + parent: 2 + - uid: 5177 + components: + - type: Transform + pos: 41.5,15.5 + parent: 2 + - uid: 5178 + components: + - type: Transform + pos: 41.5,16.5 + parent: 2 + - uid: 5179 + components: + - type: Transform + pos: 41.5,17.5 + parent: 2 + - uid: 5180 + components: + - type: Transform + pos: 42.5,17.5 + parent: 2 + - uid: 5181 + components: + - type: Transform + pos: 43.5,17.5 + parent: 2 + - uid: 5182 + components: + - type: Transform + pos: 43.5,18.5 + parent: 2 + - uid: 5183 + components: + - type: Transform + pos: 41.5,18.5 + parent: 2 + - uid: 5184 + components: + - type: Transform + pos: 41.5,19.5 + parent: 2 + - uid: 5185 + components: + - type: Transform + pos: 41.5,20.5 + parent: 2 + - uid: 5186 + components: + - type: Transform + pos: 42.5,20.5 + parent: 2 + - uid: 5187 + components: + - type: Transform + pos: 42.5,21.5 + parent: 2 + - uid: 5188 + components: + - type: Transform + pos: 42.5,22.5 + parent: 2 + - uid: 5189 + components: + - type: Transform + pos: 45.5,10.5 + parent: 2 + - uid: 5190 + components: + - type: Transform + pos: 46.5,10.5 + parent: 2 + - uid: 5191 + components: + - type: Transform + pos: 47.5,10.5 + parent: 2 + - uid: 5192 + components: + - type: Transform + pos: 48.5,10.5 + parent: 2 + - uid: 5193 + components: + - type: Transform + pos: 49.5,10.5 + parent: 2 + - uid: 5194 + components: + - type: Transform + pos: 49.5,9.5 + parent: 2 + - uid: 5195 + components: + - type: Transform + pos: 49.5,8.5 + parent: 2 + - uid: 5196 + components: + - type: Transform + pos: 49.5,7.5 + parent: 2 + - uid: 5197 + components: + - type: Transform + pos: 49.5,6.5 + parent: 2 + - uid: 5198 + components: + - type: Transform + pos: 50.5,6.5 + parent: 2 + - uid: 5199 + components: + - type: Transform + pos: 51.5,6.5 + parent: 2 + - uid: 5200 + components: + - type: Transform + pos: 51.5,5.5 + parent: 2 + - uid: 5201 + components: + - type: Transform + pos: 51.5,4.5 + parent: 2 + - uid: 5202 + components: + - type: Transform + pos: 52.5,4.5 + parent: 2 + - uid: 5203 + components: + - type: Transform + pos: 53.5,4.5 + parent: 2 + - uid: 5204 + components: + - type: Transform + pos: 54.5,4.5 + parent: 2 + - uid: 5205 + components: + - type: Transform + pos: 54.5,5.5 + parent: 2 + - uid: 5207 + components: + - type: Transform + pos: -32.5,26.5 + parent: 2 + - uid: 5208 + components: + - type: Transform + pos: -30.5,26.5 + parent: 2 + - uid: 5209 + components: + - type: Transform + pos: -29.5,26.5 + parent: 2 + - uid: 5210 + components: + - type: Transform + pos: -31.5,26.5 + parent: 2 + - uid: 5211 + components: + - type: Transform + pos: -33.5,26.5 + parent: 2 + - uid: 5212 + components: + - type: Transform + pos: -34.5,26.5 + parent: 2 + - uid: 5213 + components: + - type: Transform + pos: -28.5,26.5 + parent: 2 + - uid: 5214 + components: + - type: Transform + pos: -26.5,26.5 + parent: 2 + - uid: 5215 + components: + - type: Transform + pos: -25.5,26.5 + parent: 2 + - uid: 5216 + components: + - type: Transform + pos: -25.5,25.5 + parent: 2 + - uid: 5217 + components: + - type: Transform + pos: -13.5,38.5 + parent: 2 + - uid: 5218 + components: + - type: Transform + pos: -12.5,38.5 + parent: 2 + - uid: 5219 + components: + - type: Transform + pos: -21.5,33.5 + parent: 2 + - uid: 5220 + components: + - type: Transform + pos: -27.5,26.5 + parent: 2 + - uid: 5221 + components: + - type: Transform + pos: -25.5,24.5 + parent: 2 + - uid: 5222 + components: + - type: Transform + pos: -20.5,32.5 + parent: 2 + - uid: 5223 + components: + - type: Transform + pos: -21.5,34.5 + parent: 2 + - uid: 5224 + components: + - type: Transform + pos: -19.5,32.5 + parent: 2 + - uid: 5225 + components: + - type: Transform + pos: -17.5,32.5 + parent: 2 + - uid: 5226 + components: + - type: Transform + pos: -24.5,24.5 + parent: 2 + - uid: 5227 + components: + - type: Transform + pos: -18.5,32.5 + parent: 2 + - uid: 5228 + components: + - type: Transform + pos: -21.5,32.5 + parent: 2 + - uid: 5229 + components: + - type: Transform + pos: -14.5,41.5 + parent: 2 + - uid: 5230 + components: + - type: Transform + pos: 49.5,11.5 + parent: 2 + - uid: 5231 + components: + - type: Transform + pos: 49.5,12.5 + parent: 2 + - uid: 5232 + components: + - type: Transform + pos: 49.5,13.5 + parent: 2 + - uid: 5233 + components: + - type: Transform + pos: 50.5,13.5 + parent: 2 + - uid: 5234 + components: + - type: Transform + pos: 51.5,13.5 + parent: 2 + - uid: 5235 + components: + - type: Transform + pos: 52.5,13.5 + parent: 2 + - uid: 5236 + components: + - type: Transform + pos: 53.5,13.5 + parent: 2 + - uid: 5237 + components: + - type: Transform + pos: 54.5,13.5 + parent: 2 + - uid: 5238 + components: + - type: Transform + pos: 55.5,13.5 + parent: 2 + - uid: 5239 + components: + - type: Transform + pos: 55.5,14.5 + parent: 2 + - uid: 5240 + components: + - type: Transform + pos: 55.5,15.5 + parent: 2 + - uid: 5241 + components: + - type: Transform + pos: 55.5,16.5 + parent: 2 + - uid: 5242 + components: + - type: Transform + pos: 55.5,17.5 + parent: 2 + - uid: 5243 + components: + - type: Transform + pos: 55.5,18.5 + parent: 2 + - uid: 5244 + components: + - type: Transform + pos: 54.5,18.5 + parent: 2 + - uid: 5245 + components: + - type: Transform + pos: 18.5,12.5 + parent: 2 + - uid: 5246 + components: + - type: Transform + pos: 18.5,11.5 + parent: 2 + - uid: 5247 + components: + - type: Transform + pos: 18.5,10.5 + parent: 2 + - uid: 5248 + components: + - type: Transform + pos: 18.5,9.5 + parent: 2 + - uid: 5249 + components: + - type: Transform + pos: 18.5,8.5 + parent: 2 + - uid: 5250 + components: + - type: Transform + pos: 18.5,7.5 + parent: 2 + - uid: 5251 + components: + - type: Transform + pos: 18.5,6.5 + parent: 2 + - uid: 5252 + components: + - type: Transform + pos: 19.5,6.5 + parent: 2 + - uid: 5253 + components: + - type: Transform + pos: 20.5,6.5 + parent: 2 + - uid: 5254 + components: + - type: Transform + pos: 21.5,6.5 + parent: 2 + - uid: 5255 + components: + - type: Transform + pos: 22.5,6.5 + parent: 2 + - uid: 5256 + components: + - type: Transform + pos: 23.5,6.5 + parent: 2 + - uid: 5257 + components: + - type: Transform + pos: 24.5,6.5 + parent: 2 + - uid: 5258 + components: + - type: Transform + pos: 25.5,6.5 + parent: 2 + - uid: 5259 + components: + - type: Transform + pos: 25.5,7.5 + parent: 2 + - uid: 5260 + components: + - type: Transform + pos: 25.5,8.5 + parent: 2 + - uid: 5261 + components: + - type: Transform + pos: 25.5,9.5 + parent: 2 + - uid: 5262 + components: + - type: Transform + pos: 25.5,10.5 + parent: 2 + - uid: 5263 + components: + - type: Transform + pos: 25.5,11.5 + parent: 2 + - uid: 5264 + components: + - type: Transform + pos: 25.5,12.5 + parent: 2 + - uid: 5265 + components: + - type: Transform + pos: 25.5,13.5 + parent: 2 + - uid: 5266 + components: + - type: Transform + pos: 25.5,14.5 + parent: 2 + - uid: 5267 + components: + - type: Transform + pos: 25.5,15.5 + parent: 2 + - uid: 5268 + components: + - type: Transform + pos: 25.5,16.5 + parent: 2 + - uid: 5269 + components: + - type: Transform + pos: 26.5,16.5 + parent: 2 + - uid: 5270 + components: + - type: Transform + pos: 24.5,18.5 + parent: 2 + - uid: 5271 + components: + - type: Transform + pos: 26.5,18.5 + parent: 2 + - uid: 5272 + components: + - type: Transform + pos: 26.5,17.5 + parent: 2 + - uid: 5273 + components: + - type: Transform + pos: -11.5,57.5 + parent: 2 + - uid: 5274 + components: + - type: Transform + pos: -11.5,56.5 + parent: 2 + - uid: 5275 + components: + - type: Transform + pos: -10.5,56.5 + parent: 2 + - uid: 5276 + components: + - type: Transform + pos: -9.5,56.5 + parent: 2 + - uid: 5277 + components: + - type: Transform + pos: -8.5,56.5 + parent: 2 + - uid: 5278 + components: + - type: Transform + pos: -8.5,57.5 + parent: 2 + - uid: 5279 + components: + - type: Transform + pos: -7.5,56.5 + parent: 2 + - uid: 5280 + components: + - type: Transform + pos: -6.5,56.5 + parent: 2 + - uid: 5281 + components: + - type: Transform + pos: -5.5,56.5 + parent: 2 + - uid: 5282 + components: + - type: Transform + pos: -4.5,56.5 + parent: 2 + - uid: 5283 + components: + - type: Transform + pos: -3.5,56.5 + parent: 2 + - uid: 5284 + components: + - type: Transform + pos: -2.5,56.5 + parent: 2 + - uid: 5285 + components: + - type: Transform + pos: -1.5,56.5 + parent: 2 + - uid: 5286 + components: + - type: Transform + pos: -0.5,56.5 + parent: 2 + - uid: 5287 + components: + - type: Transform + pos: -0.5,57.5 + parent: 2 + - uid: 5288 + components: + - type: Transform + pos: -0.5,58.5 + parent: 2 + - uid: 5289 + components: + - type: Transform + pos: -0.5,59.5 + parent: 2 + - uid: 5290 + components: + - type: Transform + pos: -1.5,59.5 + parent: 2 + - uid: 5291 + components: + - type: Transform + pos: -2.5,59.5 + parent: 2 + - uid: 5292 + components: + - type: Transform + pos: -3.5,64.5 + parent: 2 + - uid: 5293 + components: + - type: Transform + pos: -3.5,63.5 + parent: 2 + - uid: 5294 + components: + - type: Transform + pos: -2.5,63.5 + parent: 2 + - uid: 5295 + components: + - type: Transform + pos: -1.5,63.5 + parent: 2 + - uid: 5296 + components: + - type: Transform + pos: -0.5,63.5 + parent: 2 + - uid: 5297 + components: + - type: Transform + pos: 0.5,63.5 + parent: 2 + - uid: 5298 + components: + - type: Transform + pos: 1.5,63.5 + parent: 2 + - uid: 5299 + components: + - type: Transform + pos: 2.5,63.5 + parent: 2 + - uid: 5300 + components: + - type: Transform + pos: 3.5,63.5 + parent: 2 + - uid: 5301 + components: + - type: Transform + pos: 3.5,65.5 + parent: 2 + - uid: 5302 + components: + - type: Transform + pos: 3.5,64.5 + parent: 2 + - uid: 5303 + components: + - type: Transform + pos: 3.5,65.5 + parent: 2 + - uid: 5304 + components: + - type: Transform + pos: 4.5,64.5 + parent: 2 + - uid: 5305 + components: + - type: Transform + pos: 5.5,64.5 + parent: 2 + - uid: 5306 + components: + - type: Transform + pos: 6.5,64.5 + parent: 2 + - uid: 5307 + components: + - type: Transform + pos: 7.5,64.5 + parent: 2 + - uid: 5308 + components: + - type: Transform + pos: 8.5,64.5 + parent: 2 + - uid: 5309 + components: + - type: Transform + pos: 9.5,64.5 + parent: 2 + - uid: 5310 + components: + - type: Transform + pos: 10.5,64.5 + parent: 2 + - uid: 5311 + components: + - type: Transform + pos: 11.5,64.5 + parent: 2 + - uid: 5312 + components: + - type: Transform + pos: 12.5,64.5 + parent: 2 + - uid: 5313 + components: + - type: Transform + pos: 13.5,64.5 + parent: 2 + - uid: 5314 + components: + - type: Transform + pos: 13.5,65.5 + parent: 2 + - uid: 5315 + components: + - type: Transform + pos: 13.5,66.5 + parent: 2 + - uid: 5316 + components: + - type: Transform + pos: 13.5,67.5 + parent: 2 + - uid: 5317 + components: + - type: Transform + pos: 13.5,68.5 + parent: 2 + - uid: 5318 + components: + - type: Transform + pos: 14.5,68.5 + parent: 2 + - uid: 5319 + components: + - type: Transform + pos: 14.5,69.5 + parent: 2 + - uid: 5320 + components: + - type: Transform + pos: 14.5,70.5 + parent: 2 + - uid: 5321 + components: + - type: Transform + pos: 14.5,71.5 + parent: 2 + - uid: 5322 + components: + - type: Transform + pos: 14.5,72.5 + parent: 2 + - uid: 5323 + components: + - type: Transform + pos: 14.5,73.5 + parent: 2 + - uid: 5324 + components: + - type: Transform + pos: 14.5,74.5 + parent: 2 + - uid: 5325 + components: + - type: Transform + pos: 13.5,74.5 + parent: 2 + - uid: 5326 + components: + - type: Transform + pos: 12.5,74.5 + parent: 2 + - uid: 5327 + components: + - type: Transform + pos: 11.5,74.5 + parent: 2 + - uid: 5328 + components: + - type: Transform + pos: 11.5,75.5 + parent: 2 + - uid: 5329 + components: + - type: Transform + pos: 11.5,76.5 + parent: 2 + - uid: 5330 + components: + - type: Transform + pos: 13.5,63.5 + parent: 2 + - uid: 5331 + components: + - type: Transform + pos: 18.5,60.5 + parent: 2 + - uid: 5332 + components: + - type: Transform + pos: 19.5,60.5 + parent: 2 + - uid: 5333 + components: + - type: Transform + pos: 20.5,60.5 + parent: 2 + - uid: 5334 + components: + - type: Transform + pos: 21.5,60.5 + parent: 2 + - uid: 5335 + components: + - type: Transform + pos: 22.5,60.5 + parent: 2 + - uid: 5336 + components: + - type: Transform + pos: 23.5,60.5 + parent: 2 + - uid: 5337 + components: + - type: Transform + pos: 24.5,60.5 + parent: 2 + - uid: 5338 + components: + - type: Transform + pos: 25.5,60.5 + parent: 2 + - uid: 5339 + components: + - type: Transform + pos: 26.5,60.5 + parent: 2 + - uid: 5340 + components: + - type: Transform + pos: 27.5,60.5 + parent: 2 + - uid: 5341 + components: + - type: Transform + pos: 28.5,60.5 + parent: 2 + - uid: 5342 + components: + - type: Transform + pos: 29.5,60.5 + parent: 2 + - uid: 5343 + components: + - type: Transform + pos: 30.5,60.5 + parent: 2 + - uid: 5344 + components: + - type: Transform + pos: 31.5,60.5 + parent: 2 + - uid: 5345 + components: + - type: Transform + pos: 31.5,61.5 + parent: 2 + - uid: 5346 + components: + - type: Transform + pos: 32.5,61.5 + parent: 2 + - uid: 5347 + components: + - type: Transform + pos: 33.5,61.5 + parent: 2 + - uid: 5348 + components: + - type: Transform + pos: 33.5,62.5 + parent: 2 + - uid: 5349 + components: + - type: Transform + pos: 33.5,63.5 + parent: 2 + - uid: 5350 + components: + - type: Transform + pos: 34.5,63.5 + parent: 2 + - uid: 5351 + components: + - type: Transform + pos: 35.5,63.5 + parent: 2 + - uid: 5352 + components: + - type: Transform + pos: 44.5,17.5 + parent: 2 + - uid: 5353 + components: + - type: Transform + pos: 45.5,17.5 + parent: 2 + - uid: 5354 + components: + - type: Transform + pos: 46.5,17.5 + parent: 2 + - uid: 5355 + components: + - type: Transform + pos: 47.5,17.5 + parent: 2 + - uid: 5356 + components: + - type: Transform + pos: 47.5,18.5 + parent: 2 + - uid: 5357 + components: + - type: Transform + pos: 47.5,19.5 + parent: 2 + - uid: 5358 + components: + - type: Transform + pos: 47.5,20.5 + parent: 2 + - uid: 5359 + components: + - type: Transform + pos: 47.5,21.5 + parent: 2 + - uid: 5360 + components: + - type: Transform + pos: 47.5,22.5 + parent: 2 + - uid: 5361 + components: + - type: Transform + pos: 47.5,23.5 + parent: 2 + - uid: 5362 + components: + - type: Transform + pos: 47.5,24.5 + parent: 2 + - uid: 5363 + components: + - type: Transform + pos: 47.5,25.5 + parent: 2 + - uid: 5364 + components: + - type: Transform + pos: 47.5,26.5 + parent: 2 + - uid: 5365 + components: + - type: Transform + pos: 47.5,27.5 + parent: 2 + - uid: 5366 + components: + - type: Transform + pos: 47.5,28.5 + parent: 2 + - uid: 5367 + components: + - type: Transform + pos: 47.5,29.5 + parent: 2 + - uid: 5368 + components: + - type: Transform + pos: 46.5,29.5 + parent: 2 + - uid: 5369 + components: + - type: Transform + pos: 45.5,29.5 + parent: 2 + - uid: 5370 + components: + - type: Transform + pos: 56.5,13.5 + parent: 2 + - uid: 5371 + components: + - type: Transform + pos: 57.5,13.5 + parent: 2 + - uid: 5372 + components: + - type: Transform + pos: 58.5,13.5 + parent: 2 + - uid: 5373 + components: + - type: Transform + pos: 59.5,13.5 + parent: 2 + - uid: 5374 + components: + - type: Transform + pos: 60.5,13.5 + parent: 2 + - uid: 5375 + components: + - type: Transform + pos: 61.5,13.5 + parent: 2 + - uid: 5376 + components: + - type: Transform + pos: 61.5,14.5 + parent: 2 + - uid: 5377 + components: + - type: Transform + pos: 61.5,15.5 + parent: 2 + - uid: 5378 + components: + - type: Transform + pos: 61.5,16.5 + parent: 2 + - uid: 5379 + components: + - type: Transform + pos: 61.5,17.5 + parent: 2 + - uid: 5380 + components: + - type: Transform + pos: 61.5,18.5 + parent: 2 + - uid: 5381 + components: + - type: Transform + pos: 62.5,18.5 + parent: 2 + - uid: 5382 + components: + - type: Transform + pos: 62.5,19.5 + parent: 2 + - uid: 5383 + components: + - type: Transform + pos: 62.5,20.5 + parent: 2 + - uid: 5384 + components: + - type: Transform + pos: 62.5,21.5 + parent: 2 + - uid: 5385 + components: + - type: Transform + pos: 62.5,22.5 + parent: 2 + - uid: 5386 + components: + - type: Transform + pos: 62.5,23.5 + parent: 2 + - uid: 5387 + components: + - type: Transform + pos: 62.5,24.5 + parent: 2 + - uid: 5388 + components: + - type: Transform + pos: 62.5,25.5 + parent: 2 + - uid: 5389 + components: + - type: Transform + pos: 61.5,25.5 + parent: 2 + - uid: 5390 + components: + - type: Transform + pos: 60.5,25.5 + parent: 2 + - uid: 5391 + components: + - type: Transform + pos: 60.5,26.5 + parent: 2 + - uid: 5392 + components: + - type: Transform + pos: 60.5,27.5 + parent: 2 + - uid: 5393 + components: + - type: Transform + pos: 43.5,3.5 + parent: 2 + - uid: 5394 + components: + - type: Transform + pos: 52.5,59.5 + parent: 2 + - uid: 5395 + components: + - type: Transform + pos: 51.5,59.5 + parent: 2 + - uid: 5396 + components: + - type: Transform + pos: 51.5,58.5 + parent: 2 + - uid: 5397 + components: + - type: Transform + pos: 51.5,57.5 + parent: 2 + - uid: 5398 + components: + - type: Transform + pos: 51.5,56.5 + parent: 2 + - uid: 5399 + components: + - type: Transform + pos: 50.5,56.5 + parent: 2 + - uid: 5400 + components: + - type: Transform + pos: 49.5,56.5 + parent: 2 + - uid: 5401 + components: + - type: Transform + pos: 48.5,56.5 + parent: 2 + - uid: 5402 + components: + - type: Transform + pos: 47.5,56.5 + parent: 2 + - uid: 5403 + components: + - type: Transform + pos: 46.5,56.5 + parent: 2 + - uid: 5404 + components: + - type: Transform + pos: 46.5,55.5 + parent: 2 + - uid: 5405 + components: + - type: Transform + pos: 46.5,54.5 + parent: 2 + - uid: 5406 + components: + - type: Transform + pos: 46.5,53.5 + parent: 2 + - uid: 5407 + components: + - type: Transform + pos: 46.5,52.5 + parent: 2 + - uid: 5408 + components: + - type: Transform + pos: 46.5,51.5 + parent: 2 + - uid: 5409 + components: + - type: Transform + pos: 47.5,51.5 + parent: 2 + - uid: 5410 + components: + - type: Transform + pos: 47.5,50.5 + parent: 2 + - uid: 5411 + components: + - type: Transform + pos: 47.5,49.5 + parent: 2 + - uid: 5412 + components: + - type: Transform + pos: 47.5,48.5 + parent: 2 + - uid: 5413 + components: + - type: Transform + pos: 48.5,48.5 + parent: 2 + - uid: 5414 + components: + - type: Transform + pos: 49.5,48.5 + parent: 2 + - uid: 5415 + components: + - type: Transform + pos: 49.5,49.5 + parent: 2 + - uid: 5416 + components: + - type: Transform + pos: 47.5,52.5 + parent: 2 + - uid: 5417 + components: + - type: Transform + pos: 48.5,52.5 + parent: 2 + - uid: 5418 + components: + - type: Transform + pos: 49.5,52.5 + parent: 2 + - uid: 5419 + components: + - type: Transform + pos: 50.5,52.5 + parent: 2 + - uid: 5420 + components: + - type: Transform + pos: 51.5,52.5 + parent: 2 + - uid: 5421 + components: + - type: Transform + pos: 51.5,51.5 + parent: 2 + - uid: 5422 + components: + - type: Transform + pos: 52.5,56.5 + parent: 2 + - uid: 5423 + components: + - type: Transform + pos: 53.5,56.5 + parent: 2 + - uid: 5424 + components: + - type: Transform + pos: 53.5,55.5 + parent: 2 + - uid: 5425 + components: + - type: Transform + pos: 53.5,54.5 + parent: 2 + - uid: 5426 + components: + - type: Transform + pos: 53.5,53.5 + parent: 2 + - uid: 5427 + components: + - type: Transform + pos: 54.5,53.5 + parent: 2 + - uid: 5428 + components: + - type: Transform + pos: 54.5,52.5 + parent: 2 + - uid: 5429 + components: + - type: Transform + pos: 55.5,53.5 + parent: 2 + - uid: 5430 + components: + - type: Transform + pos: 56.5,53.5 + parent: 2 + - uid: 5431 + components: + - type: Transform + pos: 57.5,53.5 + parent: 2 + - uid: 5432 + components: + - type: Transform + pos: 57.5,52.5 + parent: 2 + - uid: 5433 + components: + - type: Transform + pos: 57.5,51.5 + parent: 2 + - uid: 5434 + components: + - type: Transform + pos: 57.5,50.5 + parent: 2 + - uid: 5435 + components: + - type: Transform + pos: 57.5,49.5 + parent: 2 + - uid: 5436 + components: + - type: Transform + pos: 57.5,48.5 + parent: 2 + - uid: 5437 + components: + - type: Transform + pos: 58.5,48.5 + parent: 2 + - uid: 5438 + components: + - type: Transform + pos: 59.5,48.5 + parent: 2 + - uid: 5439 + components: + - type: Transform + pos: 59.5,47.5 + parent: 2 + - uid: 5440 + components: + - type: Transform + pos: 60.5,47.5 + parent: 2 + - uid: 5441 + components: + - type: Transform + pos: 60.5,46.5 + parent: 2 + - uid: 5442 + components: + - type: Transform + pos: 60.5,45.5 + parent: 2 + - uid: 5443 + components: + - type: Transform + pos: 60.5,44.5 + parent: 2 + - uid: 5444 + components: + - type: Transform + pos: 60.5,43.5 + parent: 2 + - uid: 5445 + components: + - type: Transform + pos: 61.5,43.5 + parent: 2 + - uid: 5446 + components: + - type: Transform + pos: 62.5,43.5 + parent: 2 + - uid: 5447 + components: + - type: Transform + pos: 63.5,43.5 + parent: 2 + - uid: 5448 + components: + - type: Transform + pos: 45.5,53.5 + parent: 2 + - uid: 5449 + components: + - type: Transform + pos: 35.5,64.5 + parent: 2 + - uid: 5450 + components: + - type: Transform + pos: 36.5,64.5 + parent: 2 + - uid: 5451 + components: + - type: Transform + pos: 31.5,59.5 + parent: 2 + - uid: 5452 + components: + - type: Transform + pos: 31.5,58.5 + parent: 2 + - uid: 5453 + components: + - type: Transform + pos: 31.5,57.5 + parent: 2 + - uid: 5454 + components: + - type: Transform + pos: 30.5,59.5 + parent: 2 + - uid: 5455 + components: + - type: Transform + pos: 29.5,59.5 + parent: 2 + - uid: 5456 + components: + - type: Transform + pos: 34.5,61.5 + parent: 2 + - uid: 5457 + components: + - type: Transform + pos: 35.5,61.5 + parent: 2 + - uid: 5458 + components: + - type: Transform + pos: 35.5,60.5 + parent: 2 + - uid: 5459 + components: + - type: Transform + pos: 35.5,59.5 + parent: 2 + - uid: 5460 + components: + - type: Transform + pos: 35.5,58.5 + parent: 2 + - uid: 5461 + components: + - type: Transform + pos: 36.5,58.5 + parent: 2 + - uid: 5462 + components: + - type: Transform + pos: 37.5,58.5 + parent: 2 + - uid: 5463 + components: + - type: Transform + pos: 35.5,50.5 + parent: 2 + - uid: 5464 + components: + - type: Transform + pos: 36.5,50.5 + parent: 2 + - uid: 5465 + components: + - type: Transform + pos: 37.5,50.5 + parent: 2 + - uid: 5466 + components: + - type: Transform + pos: 34.5,50.5 + parent: 2 + - uid: 5467 + components: + - type: Transform + pos: 33.5,50.5 + parent: 2 + - uid: 5468 + components: + - type: Transform + pos: 32.5,50.5 + parent: 2 + - uid: 5469 + components: + - type: Transform + pos: 31.5,50.5 + parent: 2 + - uid: 5470 + components: + - type: Transform + pos: 31.5,51.5 + parent: 2 + - uid: 5471 + components: + - type: Transform + pos: 30.5,50.5 + parent: 2 + - uid: 5472 + components: + - type: Transform + pos: 29.5,50.5 + parent: 2 + - uid: 5473 + components: + - type: Transform + pos: 27.5,50.5 + parent: 2 + - uid: 5474 + components: + - type: Transform + pos: 28.5,50.5 + parent: 2 + - uid: 5475 + components: + - type: Transform + pos: 29.5,51.5 + parent: 2 + - uid: 5476 + components: + - type: Transform + pos: 45.5,51.5 + parent: 2 + - uid: 5477 + components: + - type: Transform + pos: 44.5,51.5 + parent: 2 + - uid: 5478 + components: + - type: Transform + pos: 44.5,50.5 + parent: 2 + - uid: 5479 + components: + - type: Transform + pos: 44.5,49.5 + parent: 2 + - uid: 5480 + components: + - type: Transform + pos: 44.5,48.5 + parent: 2 + - uid: 5481 + components: + - type: Transform + pos: 43.5,48.5 + parent: 2 + - uid: 5482 + components: + - type: Transform + pos: 42.5,48.5 + parent: 2 + - uid: 5483 + components: + - type: Transform + pos: 41.5,48.5 + parent: 2 + - uid: 5484 + components: + - type: Transform + pos: 40.5,48.5 + parent: 2 + - uid: 5485 + components: + - type: Transform + pos: 39.5,48.5 + parent: 2 + - uid: 5486 + components: + - type: Transform + pos: 38.5,48.5 + parent: 2 + - uid: 5487 + components: + - type: Transform + pos: 37.5,48.5 + parent: 2 + - uid: 5488 + components: + - type: Transform + pos: 37.5,42.5 + parent: 2 + - uid: 5489 + components: + - type: Transform + pos: 37.5,43.5 + parent: 2 + - uid: 5490 + components: + - type: Transform + pos: 37.5,46.5 + parent: 2 + - uid: 5491 + components: + - type: Transform + pos: 37.5,45.5 + parent: 2 + - uid: 5492 + components: + - type: Transform + pos: 37.5,47.5 + parent: 2 + - uid: 5493 + components: + - type: Transform + pos: 37.5,44.5 + parent: 2 + - uid: 5494 + components: + - type: Transform + pos: 45.5,56.5 + parent: 2 + - uid: 5495 + components: + - type: Transform + pos: 44.5,56.5 + parent: 2 + - uid: 5496 + components: + - type: Transform + pos: 43.5,56.5 + parent: 2 + - uid: 5497 + components: + - type: Transform + pos: 42.5,56.5 + parent: 2 + - uid: 5498 + components: + - type: Transform + pos: 41.5,56.5 + parent: 2 + - uid: 5499 + components: + - type: Transform + pos: 40.5,56.5 + parent: 2 + - uid: 5500 + components: + - type: Transform + pos: 39.5,56.5 + parent: 2 + - uid: 5501 + components: + - type: Transform + pos: 39.5,55.5 + parent: 2 + - uid: 5502 + components: + - type: Transform + pos: 42.5,23.5 + parent: 2 + - uid: 5503 + components: + - type: Transform + pos: 41.5,23.5 + parent: 2 + - uid: 5504 + components: + - type: Transform + pos: 40.5,23.5 + parent: 2 + - uid: 5505 + components: + - type: Transform + pos: 40.5,24.5 + parent: 2 + - uid: 5506 + components: + - type: Transform + pos: 40.5,25.5 + parent: 2 + - uid: 5507 + components: + - type: Transform + pos: 39.5,24.5 + parent: 2 + - uid: 5508 + components: + - type: Transform + pos: 41.5,24.5 + parent: 2 + - uid: 5509 + components: + - type: Transform + pos: 40.5,26.5 + parent: 2 + - uid: 5510 + components: + - type: Transform + pos: 40.5,27.5 + parent: 2 + - uid: 5511 + components: + - type: Transform + pos: 40.5,28.5 + parent: 2 + - uid: 5512 + components: + - type: Transform + pos: 40.5,29.5 + parent: 2 + - uid: 5513 + components: + - type: Transform + pos: 40.5,30.5 + parent: 2 + - uid: 5514 + components: + - type: Transform + pos: 40.5,31.5 + parent: 2 + - uid: 5515 + components: + - type: Transform + pos: 41.5,31.5 + parent: 2 + - uid: 5516 + components: + - type: Transform + pos: 42.5,31.5 + parent: 2 + - uid: 5517 + components: + - type: Transform + pos: 43.5,31.5 + parent: 2 + - uid: 5518 + components: + - type: Transform + pos: 39.5,30.5 + parent: 2 + - uid: 5519 + components: + - type: Transform + pos: 38.5,30.5 + parent: 2 + - uid: 5520 + components: + - type: Transform + pos: 38.5,31.5 + parent: 2 + - uid: 5521 + components: + - type: Transform + pos: 20.5,43.5 + parent: 2 + - uid: 5522 + components: + - type: Transform + pos: 21.5,43.5 + parent: 2 + - uid: 5523 + components: + - type: Transform + pos: 21.5,44.5 + parent: 2 + - uid: 5524 + components: + - type: Transform + pos: 22.5,44.5 + parent: 2 + - uid: 5525 + components: + - type: Transform + pos: 23.5,44.5 + parent: 2 + - uid: 5526 + components: + - type: Transform + pos: 23.5,43.5 + parent: 2 + - uid: 5527 + components: + - type: Transform + pos: 23.5,42.5 + parent: 2 + - uid: 5528 + components: + - type: Transform + pos: 23.5,41.5 + parent: 2 + - uid: 5529 + components: + - type: Transform + pos: 23.5,40.5 + parent: 2 + - uid: 5530 + components: + - type: Transform + pos: 23.5,39.5 + parent: 2 + - uid: 5531 + components: + - type: Transform + pos: 23.5,38.5 + parent: 2 + - uid: 5532 + components: + - type: Transform + pos: 23.5,37.5 + parent: 2 + - uid: 5533 + components: + - type: Transform + pos: 23.5,36.5 + parent: 2 + - uid: 5534 + components: + - type: Transform + pos: 23.5,35.5 + parent: 2 + - uid: 5535 + components: + - type: Transform + pos: 23.5,34.5 + parent: 2 + - uid: 5536 + components: + - type: Transform + pos: 23.5,33.5 + parent: 2 + - uid: 5537 + components: + - type: Transform + pos: 22.5,33.5 + parent: 2 + - uid: 5538 + components: + - type: Transform + pos: 21.5,33.5 + parent: 2 + - uid: 5539 + components: + - type: Transform + pos: 20.5,33.5 + parent: 2 + - uid: 5540 + components: + - type: Transform + pos: 19.5,33.5 + parent: 2 + - uid: 5541 + components: + - type: Transform + pos: 18.5,33.5 + parent: 2 + - uid: 5542 + components: + - type: Transform + pos: 18.5,34.5 + parent: 2 + - uid: 5543 + components: + - type: Transform + pos: 18.5,35.5 + parent: 2 + - uid: 5544 + components: + - type: Transform + pos: 18.5,36.5 + parent: 2 + - uid: 5545 + components: + - type: Transform + pos: 18.5,37.5 + parent: 2 + - uid: 5546 + components: + - type: Transform + pos: 18.5,38.5 + parent: 2 + - uid: 5547 + components: + - type: Transform + pos: 19.5,38.5 + parent: 2 + - uid: 5548 + components: + - type: Transform + pos: 19.5,39.5 + parent: 2 + - uid: 5549 + components: + - type: Transform + pos: 19.5,40.5 + parent: 2 + - uid: 5550 + components: + - type: Transform + pos: 19.5,41.5 + parent: 2 + - uid: 5551 + components: + - type: Transform + pos: 20.5,44.5 + parent: 2 + - uid: 5552 + components: + - type: Transform + pos: 19.5,44.5 + parent: 2 + - uid: 5553 + components: + - type: Transform + pos: 17.5,35.5 + parent: 2 + - uid: 5554 + components: + - type: Transform + pos: 16.5,35.5 + parent: 2 + - uid: 5555 + components: + - type: Transform + pos: 15.5,35.5 + parent: 2 + - uid: 5556 + components: + - type: Transform + pos: 14.5,35.5 + parent: 2 + - uid: 5557 + components: + - type: Transform + pos: 14.5,36.5 + parent: 2 + - uid: 5558 + components: + - type: Transform + pos: 14.5,37.5 + parent: 2 + - uid: 5559 + components: + - type: Transform + pos: 14.5,38.5 + parent: 2 + - uid: 5560 + components: + - type: Transform + pos: 14.5,39.5 + parent: 2 + - uid: 5561 + components: + - type: Transform + pos: 14.5,40.5 + parent: 2 + - uid: 5562 + components: + - type: Transform + pos: 14.5,41.5 + parent: 2 + - uid: 5563 + components: + - type: Transform + pos: 15.5,41.5 + parent: 2 + - uid: 5564 + components: + - type: Transform + pos: 15.5,42.5 + parent: 2 + - uid: 5565 + components: + - type: Transform + pos: 15.5,38.5 + parent: 2 + - uid: 5566 + components: + - type: Transform + pos: 14.5,34.5 + parent: 2 + - uid: 5567 + components: + - type: Transform + pos: 24.5,36.5 + parent: 2 + - uid: 5568 + components: + - type: Transform + pos: 25.5,36.5 + parent: 2 + - uid: 5569 + components: + - type: Transform + pos: 26.5,36.5 + parent: 2 + - uid: 5570 + components: + - type: Transform + pos: 26.5,37.5 + parent: 2 + - uid: 5571 + components: + - type: Transform + pos: 13.5,40.5 + parent: 2 + - uid: 5572 + components: + - type: Transform + pos: 12.5,40.5 + parent: 2 + - uid: 5573 + components: + - type: Transform + pos: 11.5,40.5 + parent: 2 + - uid: 5574 + components: + - type: Transform + pos: 10.5,40.5 + parent: 2 + - uid: 5575 + components: + - type: Transform + pos: 14.5,34.5 + parent: 2 + - uid: 5576 + components: + - type: Transform + pos: 13.5,34.5 + parent: 2 + - uid: 5577 + components: + - type: Transform + pos: 12.5,34.5 + parent: 2 + - uid: 5578 + components: + - type: Transform + pos: 11.5,34.5 + parent: 2 + - uid: 5579 + components: + - type: Transform + pos: 10.5,34.5 + parent: 2 + - uid: 5580 + components: + - type: Transform + pos: 9.5,34.5 + parent: 2 + - uid: 5581 + components: + - type: Transform + pos: 8.5,34.5 + parent: 2 + - uid: 5582 + components: + - type: Transform + pos: 8.5,33.5 + parent: 2 + - uid: 5583 + components: + - type: Transform + pos: 8.5,32.5 + parent: 2 + - uid: 5584 + components: + - type: Transform + pos: 8.5,31.5 + parent: 2 + - uid: 5585 + components: + - type: Transform + pos: 8.5,30.5 + parent: 2 + - uid: 5586 + components: + - type: Transform + pos: 8.5,29.5 + parent: 2 + - uid: 5587 + components: + - type: Transform + pos: 7.5,29.5 + parent: 2 + - uid: 5588 + components: + - type: Transform + pos: 6.5,29.5 + parent: 2 + - uid: 5589 + components: + - type: Transform + pos: 6.5,30.5 + parent: 2 + - uid: 5590 + components: + - type: Transform + pos: 8.5,31.5 + parent: 2 + - uid: 5591 + components: + - type: Transform + pos: 9.5,31.5 + parent: 2 + - uid: 5592 + components: + - type: Transform + pos: 10.5,31.5 + parent: 2 + - uid: 5593 + components: + - type: Transform + pos: 11.5,31.5 + parent: 2 + - uid: 5594 + components: + - type: Transform + pos: 12.5,31.5 + parent: 2 + - uid: 5595 + components: + - type: Transform + pos: 13.5,31.5 + parent: 2 + - uid: 5596 + components: + - type: Transform + pos: 13.5,30.5 + parent: 2 + - uid: 5597 + components: + - type: Transform + pos: 13.5,29.5 + parent: 2 + - uid: 5598 + components: + - type: Transform + pos: 13.5,28.5 + parent: 2 + - uid: 5599 + components: + - type: Transform + pos: 13.5,27.5 + parent: 2 + - uid: 5600 + components: + - type: Transform + pos: 14.5,27.5 + parent: 2 + - uid: 5601 + components: + - type: Transform + pos: 83.5,46.5 + parent: 2 + - uid: 5602 + components: + - type: Transform + pos: 82.5,46.5 + parent: 2 + - uid: 5603 + components: + - type: Transform + pos: 81.5,46.5 + parent: 2 + - uid: 5604 + components: + - type: Transform + pos: 81.5,47.5 + parent: 2 + - uid: 5605 + components: + - type: Transform + pos: 80.5,47.5 + parent: 2 + - uid: 5606 + components: + - type: Transform + pos: 79.5,47.5 + parent: 2 + - uid: 5607 + components: + - type: Transform + pos: 78.5,47.5 + parent: 2 + - uid: 5608 + components: + - type: Transform + pos: 77.5,47.5 + parent: 2 + - uid: 5609 + components: + - type: Transform + pos: 77.5,46.5 + parent: 2 + - uid: 5610 + components: + - type: Transform + pos: 81.5,45.5 + parent: 2 + - uid: 5611 + components: + - type: Transform + pos: 81.5,44.5 + parent: 2 + - uid: 5612 + components: + - type: Transform + pos: 81.5,43.5 + parent: 2 + - uid: 5613 + components: + - type: Transform + pos: 81.5,42.5 + parent: 2 + - uid: 5614 + components: + - type: Transform + pos: 81.5,41.5 + parent: 2 + - uid: 5615 + components: + - type: Transform + pos: 81.5,40.5 + parent: 2 + - uid: 5616 + components: + - type: Transform + pos: 81.5,39.5 + parent: 2 + - uid: 5617 + components: + - type: Transform + pos: 80.5,39.5 + parent: 2 + - uid: 5618 + components: + - type: Transform + pos: 79.5,39.5 + parent: 2 + - uid: 5619 + components: + - type: Transform + pos: 81.5,38.5 + parent: 2 + - uid: 5620 + components: + - type: Transform + pos: 81.5,37.5 + parent: 2 + - uid: 5621 + components: + - type: Transform + pos: 81.5,36.5 + parent: 2 + - uid: 5622 + components: + - type: Transform + pos: 80.5,36.5 + parent: 2 + - uid: 5623 + components: + - type: Transform + pos: 79.5,36.5 + parent: 2 + - uid: 5624 + components: + - type: Transform + pos: 78.5,36.5 + parent: 2 + - uid: 5625 + components: + - type: Transform + pos: 78.5,35.5 + parent: 2 + - uid: 5626 + components: + - type: Transform + pos: 78.5,34.5 + parent: 2 + - uid: 5627 + components: + - type: Transform + pos: 78.5,33.5 + parent: 2 + - uid: 5628 + components: + - type: Transform + pos: 77.5,34.5 + parent: 2 + - uid: 5629 + components: + - type: Transform + pos: 76.5,34.5 + parent: 2 + - uid: 5630 + components: + - type: Transform + pos: 75.5,34.5 + parent: 2 + - uid: 5631 + components: + - type: Transform + pos: 74.5,34.5 + parent: 2 + - uid: 5632 + components: + - type: Transform + pos: 74.5,35.5 + parent: 2 + - uid: 5633 + components: + - type: Transform + pos: 74.5,33.5 + parent: 2 + - uid: 5634 + components: + - type: Transform + pos: 81.5,35.5 + parent: 2 + - uid: 5635 + components: + - type: Transform + pos: 81.5,34.5 + parent: 2 + - uid: 5636 + components: + - type: Transform + pos: 81.5,33.5 + parent: 2 + - uid: 5637 + components: + - type: Transform + pos: 81.5,32.5 + parent: 2 + - uid: 5638 + components: + - type: Transform + pos: 81.5,31.5 + parent: 2 + - uid: 5639 + components: + - type: Transform + pos: 81.5,30.5 + parent: 2 + - uid: 5640 + components: + - type: Transform + pos: 81.5,29.5 + parent: 2 + - uid: 5641 + components: + - type: Transform + pos: 81.5,28.5 + parent: 2 + - uid: 5642 + components: + - type: Transform + pos: 81.5,27.5 + parent: 2 + - uid: 5643 + components: + - type: Transform + pos: 81.5,26.5 + parent: 2 + - uid: 5644 + components: + - type: Transform + pos: 81.5,25.5 + parent: 2 + - uid: 5645 + components: + - type: Transform + pos: 81.5,24.5 + parent: 2 + - uid: 5646 + components: + - type: Transform + pos: 80.5,24.5 + parent: 2 + - uid: 5647 + components: + - type: Transform + pos: 79.5,24.5 + parent: 2 + - uid: 5648 + components: + - type: Transform + pos: 80.5,30.5 + parent: 2 + - uid: 5649 + components: + - type: Transform + pos: 79.5,30.5 + parent: 2 + - uid: 5650 + components: + - type: Transform + pos: 78.5,30.5 + parent: 2 + - uid: 5651 + components: + - type: Transform + pos: 77.5,30.5 + parent: 2 + - uid: 5652 + components: + - type: Transform + pos: 76.5,30.5 + parent: 2 + - uid: 5653 + components: + - type: Transform + pos: 75.5,30.5 + parent: 2 + - uid: 5654 + components: + - type: Transform + pos: 75.5,31.5 + parent: 2 + - uid: 5655 + components: + - type: Transform + pos: 75.5,32.5 + parent: 2 + - uid: 5656 + components: + - type: Transform + pos: 78.5,29.5 + parent: 2 + - uid: 5657 + components: + - type: Transform + pos: 78.5,28.5 + parent: 2 + - uid: 5658 + components: + - type: Transform + pos: 78.5,27.5 + parent: 2 + - uid: 5659 + components: + - type: Transform + pos: 74.5,31.5 + parent: 2 + - uid: 5660 + components: + - type: Transform + pos: 73.5,31.5 + parent: 2 + - uid: 5661 + components: + - type: Transform + pos: 72.5,31.5 + parent: 2 + - uid: 5662 + components: + - type: Transform + pos: 71.5,31.5 + parent: 2 + - uid: 5663 + components: + - type: Transform + pos: 70.5,31.5 + parent: 2 + - uid: 5664 + components: + - type: Transform + pos: 69.5,31.5 + parent: 2 + - uid: 5666 + components: + - type: Transform + pos: 79.5,23.5 + parent: 2 + - uid: 5667 + components: + - type: Transform + pos: 78.5,23.5 + parent: 2 + - uid: 5668 + components: + - type: Transform + pos: 77.5,23.5 + parent: 2 + - uid: 5669 + components: + - type: Transform + pos: 53.5,57.5 + parent: 2 + - uid: 5670 + components: + - type: Transform + pos: 54.5,57.5 + parent: 2 + - uid: 5671 + components: + - type: Transform + pos: 55.5,57.5 + parent: 2 + - uid: 5672 + components: + - type: Transform + pos: 56.5,57.5 + parent: 2 + - uid: 5673 + components: + - type: Transform + pos: 57.5,57.5 + parent: 2 + - uid: 5674 + components: + - type: Transform + pos: 58.5,57.5 + parent: 2 + - uid: 5675 + components: + - type: Transform + pos: 59.5,57.5 + parent: 2 + - uid: 5676 + components: + - type: Transform + pos: 59.5,58.5 + parent: 2 + - uid: 5677 + components: + - type: Transform + pos: 76.5,13.5 + parent: 2 + - uid: 5678 + components: + - type: Transform + pos: 75.5,13.5 + parent: 2 + - uid: 5679 + components: + - type: Transform + pos: 75.5,14.5 + parent: 2 + - uid: 5680 + components: + - type: Transform + pos: 75.5,15.5 + parent: 2 + - uid: 5681 + components: + - type: Transform + pos: 75.5,16.5 + parent: 2 + - uid: 5682 + components: + - type: Transform + pos: 75.5,17.5 + parent: 2 + - uid: 5683 + components: + - type: Transform + pos: 74.5,17.5 + parent: 2 + - uid: 5684 + components: + - type: Transform + pos: 74.5,18.5 + parent: 2 + - uid: 5685 + components: + - type: Transform + pos: 73.5,18.5 + parent: 2 + - uid: 5686 + components: + - type: Transform + pos: 72.5,18.5 + parent: 2 + - uid: 5687 + components: + - type: Transform + pos: 70.5,18.5 + parent: 2 + - uid: 5688 + components: + - type: Transform + pos: 71.5,18.5 + parent: 2 + - uid: 5689 + components: + - type: Transform + pos: 70.5,19.5 + parent: 2 + - uid: 5690 + components: + - type: Transform + pos: 70.5,20.5 + parent: 2 + - uid: 5691 + components: + - type: Transform + pos: 70.5,21.5 + parent: 2 + - uid: 5692 + components: + - type: Transform + pos: 70.5,22.5 + parent: 2 + - uid: 5693 + components: + - type: Transform + pos: 74.5,16.5 + parent: 2 + - uid: 5694 + components: + - type: Transform + pos: 73.5,16.5 + parent: 2 + - uid: 5695 + components: + - type: Transform + pos: 69.5,18.5 + parent: 2 + - uid: 5696 + components: + - type: Transform + pos: 68.5,18.5 + parent: 2 + - uid: 5697 + components: + - type: Transform + pos: 67.5,18.5 + parent: 2 + - uid: 5698 + components: + - type: Transform + pos: 66.5,18.5 + parent: 2 + - uid: 5699 + components: + - type: Transform + pos: 65.5,18.5 + parent: 2 + - uid: 5700 + components: + - type: Transform + pos: 65.5,17.5 + parent: 2 + - uid: 5701 + components: + - type: Transform + pos: 65.5,16.5 + parent: 2 + - uid: 5702 + components: + - type: Transform + pos: 65.5,15.5 + parent: 2 + - uid: 5703 + components: + - type: Transform + pos: 65.5,14.5 + parent: 2 + - uid: 5704 + components: + - type: Transform + pos: 65.5,13.5 + parent: 2 + - uid: 5705 + components: + - type: Transform + pos: 65.5,12.5 + parent: 2 + - uid: 5706 + components: + - type: Transform + pos: 65.5,11.5 + parent: 2 + - uid: 5707 + components: + - type: Transform + pos: 65.5,10.5 + parent: 2 + - uid: 5708 + components: + - type: Transform + pos: 65.5,9.5 + parent: 2 + - uid: 5709 + components: + - type: Transform + pos: 65.5,8.5 + parent: 2 + - uid: 5710 + components: + - type: Transform + pos: 65.5,7.5 + parent: 2 + - uid: 5711 + components: + - type: Transform + pos: 65.5,6.5 + parent: 2 + - uid: 5712 + components: + - type: Transform + pos: 64.5,6.5 + parent: 2 + - uid: 5713 + components: + - type: Transform + pos: 63.5,6.5 + parent: 2 + - uid: 5714 + components: + - type: Transform + pos: 62.5,6.5 + parent: 2 + - uid: 5715 + components: + - type: Transform + pos: 15.5,30.5 + parent: 2 + - uid: 5716 + components: + - type: Transform + pos: 14.5,30.5 + parent: 2 + - uid: 5717 + components: + - type: Transform + pos: 16.5,30.5 + parent: 2 + - uid: 5718 + components: + - type: Transform + pos: 17.5,30.5 + parent: 2 + - uid: 5719 + components: + - type: Transform + pos: 17.5,29.5 + parent: 2 + - uid: 5720 + components: + - type: Transform + pos: 17.5,28.5 + parent: 2 + - uid: 5721 + components: + - type: Transform + pos: 17.5,27.5 + parent: 2 + - uid: 5722 + components: + - type: Transform + pos: 17.5,26.5 + parent: 2 + - uid: 5723 + components: + - type: Transform + pos: 17.5,25.5 + parent: 2 + - uid: 5724 + components: + - type: Transform + pos: 17.5,24.5 + parent: 2 + - uid: 5725 + components: + - type: Transform + pos: 18.5,24.5 + parent: 2 + - uid: 5726 + components: + - type: Transform + pos: 19.5,24.5 + parent: 2 + - uid: 5727 + components: + - type: Transform + pos: 20.5,24.5 + parent: 2 + - uid: 5728 + components: + - type: Transform + pos: 21.5,24.5 + parent: 2 + - uid: 5729 + components: + - type: Transform + pos: 22.5,24.5 + parent: 2 + - uid: 5730 + components: + - type: Transform + pos: 22.5,25.5 + parent: 2 + - uid: 5731 + components: + - type: Transform + pos: 22.5,26.5 + parent: 2 + - uid: 5732 + components: + - type: Transform + pos: 22.5,27.5 + parent: 2 + - uid: 5733 + components: + - type: Transform + pos: 23.5,27.5 + parent: 2 + - uid: 5734 + components: + - type: Transform + pos: 24.5,27.5 + parent: 2 + - uid: 5735 + components: + - type: Transform + pos: -30.5,37.5 + parent: 2 + - uid: 5736 + components: + - type: Transform + pos: -31.5,37.5 + parent: 2 + - uid: 5737 + components: + - type: Transform + pos: -32.5,37.5 + parent: 2 + - uid: 5738 + components: + - type: Transform + pos: -32.5,38.5 + parent: 2 + - uid: 5739 + components: + - type: Transform + pos: -32.5,39.5 + parent: 2 + - uid: 5740 + components: + - type: Transform + pos: -32.5,40.5 + parent: 2 + - uid: 5741 + components: + - type: Transform + pos: -17.5,72.5 + parent: 2 + - uid: 5742 + components: + - type: Transform + pos: -22.5,41.5 + parent: 2 + - uid: 5743 + components: + - type: Transform + pos: -16.5,41.5 + parent: 2 + - uid: 5744 + components: + - type: Transform + pos: -15.5,41.5 + parent: 2 + - uid: 5745 + components: + - type: Transform + pos: -18.5,41.5 + parent: 2 + - uid: 5746 + components: + - type: Transform + pos: -17.5,41.5 + parent: 2 + - uid: 5747 + components: + - type: Transform + pos: -23.5,41.5 + parent: 2 + - uid: 5748 + components: + - type: Transform + pos: -24.5,41.5 + parent: 2 + - uid: 5749 + components: + - type: Transform + pos: -24.5,41.5 + parent: 2 + - uid: 5757 + components: + - type: Transform + pos: -17.5,73.5 + parent: 2 + - uid: 5760 + components: + - type: Transform + pos: -19.5,74.5 + parent: 2 + - uid: 5761 + components: + - type: Transform + pos: -18.5,74.5 + parent: 2 + - uid: 5762 + components: + - type: Transform + pos: -17.5,74.5 + parent: 2 + - uid: 5763 + components: + - type: Transform + pos: -16.5,74.5 + parent: 2 + - uid: 5764 + components: + - type: Transform + pos: -15.5,74.5 + parent: 2 + - uid: 5765 + components: + - type: Transform + pos: -14.5,74.5 + parent: 2 + - uid: 5766 + components: + - type: Transform + pos: -13.5,74.5 + parent: 2 + - uid: 5767 + components: + - type: Transform + pos: -13.5,76.5 + parent: 2 + - uid: 5768 + components: + - type: Transform + pos: -14.5,76.5 + parent: 2 + - uid: 5769 + components: + - type: Transform + pos: -15.5,76.5 + parent: 2 + - uid: 5770 + components: + - type: Transform + pos: -16.5,76.5 + parent: 2 + - uid: 5771 + components: + - type: Transform + pos: -17.5,76.5 + parent: 2 + - uid: 5772 + components: + - type: Transform + pos: -18.5,76.5 + parent: 2 + - uid: 5773 + components: + - type: Transform + pos: -19.5,76.5 + parent: 2 + - uid: 5774 + components: + - type: Transform + pos: -20.5,76.5 + parent: 2 + - uid: 5775 + components: + - type: Transform + pos: -21.5,76.5 + parent: 2 + - uid: 5776 + components: + - type: Transform + pos: -17.5,75.5 + parent: 2 + - uid: 5777 + components: + - type: Transform + pos: -12.5,37.5 + parent: 2 + - uid: 5778 + components: + - type: Transform + pos: -6.5,16.5 + parent: 2 + - uid: 5779 + components: + - type: Transform + pos: -6.5,17.5 + parent: 2 + - uid: 5780 + components: + - type: Transform + pos: -6.5,18.5 + parent: 2 + - uid: 5781 + components: + - type: Transform + pos: 13.5,32.5 + parent: 2 + - uid: 5782 + components: + - type: Transform + pos: 36.5,59.5 + parent: 2 + - uid: 5783 + components: + - type: Transform + pos: 37.5,59.5 + parent: 2 + - uid: 5784 + components: + - type: Transform + pos: 38.5,59.5 + parent: 2 + - uid: 5785 + components: + - type: Transform + pos: 39.5,59.5 + parent: 2 + - uid: 5786 + components: + - type: Transform + pos: 39.5,58.5 + parent: 2 + - uid: 5787 + components: + - type: Transform + pos: 39.5,57.5 + parent: 2 + - uid: 5788 + components: + - type: Transform + pos: 23.5,-12.5 + parent: 2 + - uid: 5789 + components: + - type: Transform + pos: 23.5,-11.5 + parent: 2 + - uid: 5790 + components: + - type: Transform + pos: 23.5,-10.5 + parent: 2 + - uid: 5791 + components: + - type: Transform + pos: 24.5,-10.5 + parent: 2 + - uid: 5792 + components: + - type: Transform + pos: 24.5,-12.5 + parent: 2 + - uid: 5793 + components: + - type: Transform + pos: 25.5,-12.5 + parent: 2 + - uid: 5794 + components: + - type: Transform + pos: 25.5,-10.5 + parent: 2 + - uid: 5795 + components: + - type: Transform + pos: 26.5,-10.5 + parent: 2 + - uid: 5796 + components: + - type: Transform + pos: 26.5,-12.5 + parent: 2 + - uid: 5797 + components: + - type: Transform + pos: 27.5,-10.5 + parent: 2 + - uid: 5798 + components: + - type: Transform + pos: 27.5,-11.5 + parent: 2 + - uid: 5799 + components: + - type: Transform + pos: 27.5,-12.5 + parent: 2 + - uid: 6656 + components: + - type: Transform + pos: -24.5,75.5 + parent: 2 + - uid: 6657 + components: + - type: Transform + pos: -23.5,74.5 + parent: 2 + - uid: 12073 + components: + - type: Transform + pos: -31.5,68.5 + parent: 2 + - uid: 12538 + components: + - type: Transform + pos: -11.5,70.5 + parent: 2 + - uid: 13971 + components: + - type: Transform + pos: -23.5,75.5 + parent: 2 + - uid: 15141 + components: + - type: Transform + pos: -23.5,73.5 + parent: 2 + - uid: 19420 + components: + - type: Transform + pos: -36.5,71.5 + parent: 2 + - uid: 19421 + components: + - type: Transform + pos: -35.5,71.5 + parent: 2 + - uid: 19422 + components: + - type: Transform + pos: -35.5,72.5 + parent: 2 + - uid: 19423 + components: + - type: Transform + pos: -35.5,73.5 + parent: 2 + - uid: 19424 + components: + - type: Transform + pos: -35.5,74.5 + parent: 2 + - uid: 19425 + components: + - type: Transform + pos: -35.5,75.5 + parent: 2 + - uid: 19426 + components: + - type: Transform + pos: -35.5,76.5 + parent: 2 + - uid: 19427 + components: + - type: Transform + pos: -34.5,76.5 + parent: 2 + - uid: 19428 + components: + - type: Transform + pos: -34.5,77.5 + parent: 2 + - uid: 19429 + components: + - type: Transform + pos: -33.5,77.5 + parent: 2 + - uid: 19430 + components: + - type: Transform + pos: -33.5,78.5 + parent: 2 + - uid: 19432 + components: + - type: Transform + pos: -32.5,78.5 + parent: 2 + - uid: 19433 + components: + - type: Transform + pos: -32.5,78.5 + parent: 2 + - uid: 19434 + components: + - type: Transform + pos: -31.5,78.5 + parent: 2 + - uid: 19435 + components: + - type: Transform + pos: -30.5,78.5 + parent: 2 + - uid: 19436 + components: + - type: Transform + pos: -29.5,78.5 + parent: 2 + - uid: 19437 + components: + - type: Transform + pos: -29.5,77.5 + parent: 2 + - uid: 19438 + components: + - type: Transform + pos: -28.5,77.5 + parent: 2 + - uid: 19439 + components: + - type: Transform + pos: -28.5,76.5 + parent: 2 + - uid: 19440 + components: + - type: Transform + pos: -27.5,76.5 + parent: 2 + - uid: 19441 + components: + - type: Transform + pos: -27.5,75.5 + parent: 2 +- proto: CableMVStack + entities: + - uid: 5800 + components: + - type: Transform + pos: -7.483595,28.481287 + parent: 2 +- proto: CableTerminal + entities: + - uid: 5801 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -14.5,44.5 + parent: 2 + - uid: 5802 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -13.5,44.5 + parent: 2 + - uid: 5803 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -12.5,44.5 + parent: 2 + - uid: 5804 + components: + - type: Transform + pos: 31.5,64.5 + parent: 2 + - uid: 5805 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -20.5,7.5 + parent: 2 + - uid: 5806 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 42.5,0.5 + parent: 2 + - uid: 5807 + components: + - type: Transform + pos: 31.5,0.5 + parent: 2 + - uid: 5808 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -31.5,36.5 + parent: 2 + - uid: 5809 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 24.5,-11.5 + parent: 2 +- proto: CandleBlueInfinite + entities: + - uid: 4413 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 80.57869,50.655235 + parent: 2 + - uid: 4725 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 80.43365,50.747536 + parent: 2 +- proto: CandleBlueSmallInfinite + entities: + - uid: 4412 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 80.48639,50.61568 + parent: 2 +- proto: CannabisSeeds + entities: + - uid: 13976 + components: + - type: Transform + pos: -33.485596,76.50455 + parent: 2 + - uid: 13977 + components: + - type: Transform + pos: -32.479267,77.51087 + parent: 2 + - uid: 17246 + components: + - type: Transform + pos: -32.498253,76.50455 + parent: 2 +- proto: CarbonDioxideCanister + entities: + - uid: 5812 + components: + - type: Transform + pos: 36.5,14.5 + parent: 2 + - uid: 5813 + components: + - type: Transform + pos: 36.5,13.5 + parent: 2 + - uid: 5814 + components: + - type: Transform + pos: -38.5,8.5 + parent: 2 + - uid: 14284 + components: + - type: Transform + pos: -19.5,21.5 + parent: 2 + - uid: 14285 + components: + - type: Transform + pos: -20.5,21.5 + parent: 2 +- proto: CargoBountyComputerCircuitboard + entities: + - uid: 5815 + components: + - type: Transform + pos: -8.2761965,43.516277 + parent: 2 +- proto: CargoRequestComputerCircuitboard + entities: + - uid: 5816 + components: + - type: Transform + pos: -8.570984,43.670586 + parent: 2 +- proto: CargoShuttleConsoleCircuitboard + entities: + - uid: 5817 + components: + - type: Transform + pos: -8.613097,43.404053 + parent: 2 +- proto: Carpet + entities: + - uid: 5818 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -20.5,53.5 + parent: 2 + - uid: 5819 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -20.5,52.5 + parent: 2 + - uid: 5820 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -20.5,51.5 + parent: 2 + - uid: 5821 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -19.5,53.5 + parent: 2 + - uid: 5822 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -19.5,52.5 + parent: 2 + - uid: 5823 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -19.5,51.5 + parent: 2 + - uid: 5824 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -18.5,53.5 + parent: 2 + - uid: 5825 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -18.5,52.5 + parent: 2 + - uid: 5826 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -18.5,51.5 + parent: 2 + - uid: 5827 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -17.5,53.5 + parent: 2 + - uid: 5828 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -17.5,52.5 + parent: 2 + - uid: 5829 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -17.5,51.5 + parent: 2 + - uid: 5830 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 0.5,59.5 + parent: 2 + - uid: 5831 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 0.5,60.5 + parent: 2 + - uid: 5832 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -0.5,59.5 + parent: 2 + - uid: 5833 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -0.5,60.5 + parent: 2 + - uid: 5834 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -1.5,59.5 + parent: 2 + - uid: 5835 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -1.5,60.5 + parent: 2 + - uid: 5836 + components: + - type: Transform + pos: 16.5,52.5 + parent: 2 + - uid: 5837 + components: + - type: Transform + pos: 17.5,53.5 + parent: 2 + - uid: 5838 + components: + - type: Transform + pos: 17.5,52.5 + parent: 2 + - uid: 5839 + components: + - type: Transform + pos: 16.5,53.5 + parent: 2 + - uid: 5840 + components: + - type: Transform + pos: 18.5,53.5 + parent: 2 + - uid: 5841 + components: + - type: Transform + pos: 18.5,52.5 + parent: 2 + - uid: 5842 + components: + - type: Transform + pos: 19.5,53.5 + parent: 2 + - uid: 5843 + components: + - type: Transform + pos: 19.5,52.5 + parent: 2 + - uid: 5844 + components: + - type: Transform + pos: 20.5,53.5 + parent: 2 + - uid: 5845 + components: + - type: Transform + pos: 20.5,52.5 + parent: 2 + - uid: 5846 + components: + - type: Transform + pos: 21.5,53.5 + parent: 2 + - uid: 5847 + components: + - type: Transform + pos: 21.5,52.5 + parent: 2 + - uid: 5848 + components: + - type: Transform + pos: 22.5,53.5 + parent: 2 + - uid: 5849 + components: + - type: Transform + pos: 22.5,52.5 + parent: 2 + - uid: 5850 + components: + - type: Transform + pos: 23.5,53.5 + parent: 2 + - uid: 5851 + components: + - type: Transform + pos: 23.5,52.5 + parent: 2 + - uid: 5852 + components: + - type: Transform + pos: 24.5,53.5 + parent: 2 + - uid: 5853 + components: + - type: Transform + pos: 24.5,52.5 + parent: 2 + - uid: 5854 + components: + - type: Transform + pos: 25.5,53.5 + parent: 2 + - uid: 5855 + components: + - type: Transform + pos: 25.5,52.5 + parent: 2 + - uid: 5856 + components: + - type: Transform + pos: 23.5,51.5 + parent: 2 + - uid: 5857 + components: + - type: Transform + pos: 24.5,51.5 + parent: 2 + - uid: 5858 + components: + - type: Transform + pos: 24.5,50.5 + parent: 2 + - uid: 5859 + components: + - type: Transform + pos: 23.5,50.5 + parent: 2 + - uid: 5860 + components: + - type: Transform + pos: 21.5,54.5 + parent: 2 + - uid: 5861 + components: + - type: Transform + pos: 21.5,55.5 + parent: 2 + - uid: 5862 + components: + - type: Transform + pos: 21.5,56.5 + parent: 2 + - uid: 5863 + components: + - type: Transform + pos: 21.5,57.5 + parent: 2 + - uid: 5864 + components: + - type: Transform + pos: 22.5,54.5 + parent: 2 + - uid: 5865 + components: + - type: Transform + pos: 22.5,55.5 + parent: 2 + - uid: 5866 + components: + - type: Transform + pos: 22.5,56.5 + parent: 2 + - uid: 5867 + components: + - type: Transform + pos: 22.5,57.5 + parent: 2 + - uid: 5868 + components: + - type: Transform + pos: 23.5,54.5 + parent: 2 + - uid: 5869 + components: + - type: Transform + pos: 23.5,55.5 + parent: 2 + - uid: 5870 + components: + - type: Transform + pos: 23.5,56.5 + parent: 2 + - uid: 5871 + components: + - type: Transform + pos: 23.5,57.5 + parent: 2 + - uid: 5872 + components: + - type: Transform + pos: 24.5,54.5 + parent: 2 + - uid: 5873 + components: + - type: Transform + pos: 24.5,55.5 + parent: 2 + - uid: 5874 + components: + - type: Transform + pos: 24.5,56.5 + parent: 2 + - uid: 5875 + components: + - type: Transform + pos: 24.5,57.5 + parent: 2 + - uid: 5876 + components: + - type: Transform + pos: 25.5,54.5 + parent: 2 + - uid: 5877 + components: + - type: Transform + pos: 25.5,55.5 + parent: 2 + - uid: 5878 + components: + - type: Transform + pos: 25.5,56.5 + parent: 2 + - uid: 5879 + components: + - type: Transform + pos: 25.5,57.5 + parent: 2 + - uid: 5880 + components: + - type: Transform + pos: 63.5,13.5 + parent: 2 + - uid: 5881 + components: + - type: Transform + pos: 63.5,14.5 + parent: 2 + - uid: 5882 + components: + - type: Transform + pos: 63.5,15.5 + parent: 2 + - uid: 5883 + components: + - type: Transform + pos: 63.5,16.5 + parent: 2 +- proto: CarpetBlack + entities: + - uid: 740 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 70.5,30.5 + parent: 2 + - uid: 5884 + components: + - type: Transform + pos: 74.5,31.5 + parent: 2 + - uid: 5885 + components: + - type: Transform + pos: 74.5,30.5 + parent: 2 + - uid: 5886 + components: + - type: Transform + pos: 75.5,31.5 + parent: 2 + - uid: 5887 + components: + - type: Transform + pos: 75.5,30.5 + parent: 2 + - uid: 5888 + components: + - type: Transform + pos: 76.5,31.5 + parent: 2 + - uid: 5889 + components: + - type: Transform + pos: 76.5,30.5 + parent: 2 + - uid: 8449 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 69.5,31.5 + parent: 2 + - uid: 8587 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 68.5,30.5 + parent: 2 + - uid: 12650 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 70.5,31.5 + parent: 2 + - uid: 12991 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 71.5,29.5 + parent: 2 + - uid: 13130 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 71.5,28.5 + parent: 2 + - uid: 13682 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 68.5,31.5 + parent: 2 + - uid: 16997 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 69.5,30.5 + parent: 2 + - uid: 17003 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 72.5,28.5 + parent: 2 + - uid: 17004 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 71.5,27.5 + parent: 2 + - uid: 17005 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 72.5,29.5 + parent: 2 + - uid: 17006 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 72.5,27.5 + parent: 2 +- proto: CarpetBlue + entities: + - uid: 5890 + components: + - type: Transform + pos: 74.5,40.5 + parent: 2 + - uid: 5891 + components: + - type: Transform + pos: 74.5,39.5 + parent: 2 + - uid: 5892 + components: + - type: Transform + pos: 74.5,38.5 + parent: 2 + - uid: 5893 + components: + - type: Transform + pos: 74.5,37.5 + parent: 2 + - uid: 5894 + components: + - type: Transform + pos: 75.5,40.5 + parent: 2 + - uid: 5895 + components: + - type: Transform + pos: 75.5,39.5 + parent: 2 + - uid: 5896 + components: + - type: Transform + pos: 75.5,38.5 + parent: 2 + - uid: 5897 + components: + - type: Transform + pos: 75.5,37.5 + parent: 2 +- proto: CarpetChapel + entities: + - uid: 5898 + components: + - type: Transform + pos: 8.5,54.5 + parent: 2 + - uid: 5899 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 9.5,54.5 + parent: 2 + - uid: 5900 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 8.5,55.5 + parent: 2 + - uid: 5901 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 9.5,55.5 + parent: 2 + - uid: 5902 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 9.5,57.5 + parent: 2 + - uid: 5903 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 12.5,57.5 + parent: 2 + - uid: 5904 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 12.5,55.5 + parent: 2 + - uid: 5905 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 9.5,56.5 + parent: 2 + - uid: 5906 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 12.5,56.5 + parent: 2 + - uid: 5907 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 12.5,54.5 + parent: 2 + - uid: 5908 + components: + - type: Transform + pos: 11.5,54.5 + parent: 2 + - uid: 5909 + components: + - type: Transform + pos: 8.5,56.5 + parent: 2 + - uid: 5910 + components: + - type: Transform + pos: 11.5,56.5 + parent: 2 + - uid: 5911 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 11.5,55.5 + parent: 2 + - uid: 5912 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 11.5,57.5 + parent: 2 + - uid: 5913 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 8.5,57.5 + parent: 2 +- proto: CarpetCyan + entities: + - uid: 8591 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 72.5,23.5 + parent: 2 + - uid: 8985 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 72.5,24.5 + parent: 2 + - uid: 13665 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 72.5,25.5 + parent: 2 +- proto: CarpetOrange + entities: + - uid: 5914 + components: + - type: Transform + pos: -3.5,24.5 + parent: 2 + - uid: 5915 + components: + - type: Transform + pos: -3.5,25.5 + parent: 2 + - uid: 5916 + components: + - type: Transform + pos: -4.5,24.5 + parent: 2 + - uid: 5917 + components: + - type: Transform + pos: -4.5,25.5 + parent: 2 + - uid: 5918 + components: + - type: Transform + pos: -5.5,24.5 + parent: 2 + - uid: 5919 + components: + - type: Transform + pos: -5.5,25.5 + parent: 2 +- proto: CarpetPurple + entities: + - uid: 5920 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 7.5,53.5 + parent: 2 + - uid: 5921 + components: + - type: Transform + pos: 53.5,16.5 + parent: 2 + - uid: 5922 + components: + - type: Transform + pos: 53.5,15.5 + parent: 2 + - uid: 5923 + components: + - type: Transform + pos: 53.5,14.5 + parent: 2 + - uid: 5924 + components: + - type: Transform + pos: 52.5,16.5 + parent: 2 + - uid: 5925 + components: + - type: Transform + pos: 52.5,15.5 + parent: 2 + - uid: 5926 + components: + - type: Transform + pos: 52.5,14.5 + parent: 2 + - uid: 5927 + components: + - type: Transform + pos: 10.5,57.5 + parent: 2 + - uid: 5928 + components: + - type: Transform + pos: 10.5,56.5 + parent: 2 + - uid: 5929 + components: + - type: Transform + pos: 10.5,55.5 + parent: 2 + - uid: 5930 + components: + - type: Transform + pos: 10.5,54.5 + parent: 2 + - uid: 5931 + components: + - type: Transform + pos: 10.5,53.5 + parent: 2 + - uid: 5932 + components: + - type: Transform + pos: 10.5,51.5 + parent: 2 + - uid: 5933 + components: + - type: Transform + pos: 7.5,52.5 + parent: 2 + - uid: 5934 + components: + - type: Transform + pos: 8.5,52.5 + parent: 2 + - uid: 5935 + components: + - type: Transform + pos: 9.5,52.5 + parent: 2 + - uid: 5936 + components: + - type: Transform + pos: 11.5,51.5 + parent: 2 + - uid: 5937 + components: + - type: Transform + pos: 12.5,51.5 + parent: 2 + - uid: 5938 + components: + - type: Transform + pos: 11.5,53.5 + parent: 2 + - uid: 5939 + components: + - type: Transform + pos: 11.5,52.5 + parent: 2 + - uid: 5940 + components: + - type: Transform + pos: 12.5,53.5 + parent: 2 + - uid: 5941 + components: + - type: Transform + pos: 12.5,52.5 + parent: 2 + - uid: 5942 + components: + - type: Transform + pos: 13.5,53.5 + parent: 2 + - uid: 5943 + components: + - type: Transform + pos: 13.5,52.5 + parent: 2 + - uid: 5944 + components: + - type: Transform + pos: 14.5,53.5 + parent: 2 + - uid: 5945 + components: + - type: Transform + pos: 14.5,52.5 + parent: 2 + - uid: 5946 + components: + - type: Transform + pos: 15.5,53.5 + parent: 2 + - uid: 5947 + components: + - type: Transform + pos: 15.5,52.5 + parent: 2 + - uid: 5948 + components: + - type: Transform + pos: 8.5,51.5 + parent: 2 + - uid: 5949 + components: + - type: Transform + pos: 9.5,51.5 + parent: 2 + - uid: 5950 + components: + - type: Transform + pos: 13.5,51.5 + parent: 2 + - uid: 5951 + components: + - type: Transform + pos: 14.5,51.5 + parent: 2 + - uid: 5952 + components: + - type: Transform + pos: 10.5,50.5 + parent: 2 + - uid: 5953 + components: + - type: Transform + pos: 9.5,50.5 + parent: 2 + - uid: 5954 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 8.5,53.5 + parent: 2 + - uid: 5955 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 9.5,53.5 + parent: 2 + - uid: 5956 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 10.5,52.5 + parent: 2 +- proto: CarpetSBlue + entities: + - uid: 5958 + components: + - type: Transform + pos: 18.5,39.5 + parent: 2 + - uid: 5959 + components: + - type: Transform + pos: 18.5,38.5 + parent: 2 + - uid: 5960 + components: + - type: Transform + pos: 19.5,39.5 + parent: 2 + - uid: 5961 + components: + - type: Transform + pos: 19.5,38.5 + parent: 2 + - uid: 5962 + components: + - type: Transform + pos: 20.5,39.5 + parent: 2 + - uid: 5963 + components: + - type: Transform + pos: 20.5,38.5 + parent: 2 + - uid: 5964 + components: + - type: Transform + pos: 77.5,27.5 + parent: 2 + - uid: 5965 + components: + - type: Transform + pos: 76.5,26.5 + parent: 2 + - uid: 5966 + components: + - type: Transform + pos: 76.5,25.5 + parent: 2 + - uid: 5967 + components: + - type: Transform + pos: 76.5,24.5 + parent: 2 + - uid: 5968 + components: + - type: Transform + pos: 77.5,26.5 + parent: 2 + - uid: 5969 + components: + - type: Transform + pos: 77.5,25.5 + parent: 2 + - uid: 5970 + components: + - type: Transform + pos: 77.5,24.5 + parent: 2 + - uid: 5971 + components: + - type: Transform + pos: 78.5,26.5 + parent: 2 + - uid: 5972 + components: + - type: Transform + pos: 78.5,25.5 + parent: 2 + - uid: 5973 + components: + - type: Transform + pos: 78.5,24.5 + parent: 2 + - uid: 5974 + components: + - type: Transform + pos: 83.5,25.5 + parent: 2 + - uid: 5975 + components: + - type: Transform + pos: 83.5,24.5 + parent: 2 + - uid: 5976 + components: + - type: Transform + pos: 83.5,23.5 + parent: 2 + - uid: 5977 + components: + - type: Transform + pos: 83.5,22.5 + parent: 2 + - uid: 5978 + components: + - type: Transform + pos: 82.5,25.5 + parent: 2 + - uid: 5979 + components: + - type: Transform + pos: 82.5,24.5 + parent: 2 + - uid: 5980 + components: + - type: Transform + pos: 82.5,23.5 + parent: 2 + - uid: 5981 + components: + - type: Transform + pos: 82.5,22.5 + parent: 2 + - uid: 5982 + components: + - type: Transform + pos: 81.5,25.5 + parent: 2 + - uid: 5983 + components: + - type: Transform + pos: 81.5,24.5 + parent: 2 + - uid: 5984 + components: + - type: Transform + pos: 81.5,23.5 + parent: 2 + - uid: 5985 + components: + - type: Transform + pos: 81.5,22.5 + parent: 2 +- proto: Catwalk + entities: + - uid: 4406 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 76.5,53.5 + parent: 2 + - uid: 4407 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 78.5,53.5 + parent: 2 + - uid: 4434 + components: + - type: Transform + pos: 45.5,56.5 + parent: 2 + - uid: 4726 + components: + - type: Transform + pos: -15.5,23.5 + parent: 2 + - uid: 4727 + components: + - type: Transform + pos: -12.5,24.5 + parent: 2 + - uid: 4730 + components: + - type: Transform + pos: -12.5,23.5 + parent: 2 + - uid: 5068 + components: + - type: Transform + pos: 7.5,0.5 + parent: 2 + - uid: 5989 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -27.5,5.5 + parent: 2 + - uid: 5990 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -40.5,30.5 + parent: 2 + - uid: 5991 + components: + - type: Transform + pos: -24.5,-11.5 + parent: 2 + - uid: 5992 + components: + - type: Transform + pos: -25.5,-11.5 + parent: 2 + - uid: 5993 + components: + - type: Transform + pos: -22.5,-1.5 + parent: 2 + - uid: 5995 + components: + - type: Transform + pos: -22.5,-2.5 + parent: 2 + - uid: 5996 + components: + - type: Transform + pos: -26.5,-11.5 + parent: 2 + - uid: 6003 + components: + - type: Transform + pos: -24.5,-3.5 + parent: 2 + - uid: 6004 + components: + - type: Transform + pos: -23.5,-13.5 + parent: 2 + - uid: 6005 + components: + - type: Transform + pos: -22.5,-10.5 + parent: 2 + - uid: 6006 + components: + - type: Transform + pos: -22.5,-11.5 + parent: 2 + - uid: 6007 + components: + - type: Transform + pos: -22.5,-6.5 + parent: 2 + - uid: 6008 + components: + - type: Transform + pos: -22.5,-7.5 + parent: 2 + - uid: 6009 + components: + - type: Transform + pos: -22.5,-8.5 + parent: 2 + - uid: 6010 + components: + - type: Transform + pos: -22.5,-9.5 + parent: 2 + - uid: 6011 + components: + - type: Transform + pos: -23.5,-3.5 + parent: 2 + - uid: 6012 + components: + - type: Transform + pos: -23.5,-11.5 + parent: 2 + - uid: 6013 + components: + - type: Transform + pos: -23.5,-12.5 + parent: 2 + - uid: 6017 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -42.5,25.5 + parent: 2 + - uid: 6018 + components: + - type: Transform + pos: -27.5,-11.5 + parent: 2 + - uid: 6019 + components: + - type: Transform + pos: 33.5,79.5 + parent: 2 + - uid: 6020 + components: + - type: Transform + pos: -29.5,-11.5 + parent: 2 + - uid: 6021 + components: + - type: Transform + pos: -28.5,-11.5 + parent: 2 + - uid: 6022 + components: + - type: Transform + pos: 33.5,77.5 + parent: 2 + - uid: 6023 + components: + - type: Transform + pos: -26.5,21.5 + parent: 2 + - uid: 6024 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -35.5,21.5 + parent: 2 + - uid: 6025 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -35.5,19.5 + parent: 2 + - uid: 6026 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -35.5,17.5 + parent: 2 + - uid: 6027 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -35.5,15.5 + parent: 2 + - uid: 6028 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -35.5,13.5 + parent: 2 + - uid: 6029 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -35.5,11.5 + parent: 2 + - uid: 6030 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -35.5,9.5 + parent: 2 + - uid: 6031 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -35.5,7.5 + parent: 2 + - uid: 6032 + components: + - type: Transform + pos: -33.5,5.5 + parent: 2 + - uid: 6033 + components: + - type: Transform + pos: -31.5,5.5 + parent: 2 + - uid: 6034 + components: + - type: Transform + pos: -29.5,5.5 + parent: 2 + - uid: 6035 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -23.5,3.5 + parent: 2 + - uid: 6036 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -23.5,2.5 + parent: 2 + - uid: 6037 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -21.5,3.5 + parent: 2 + - uid: 6038 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -21.5,2.5 + parent: 2 + - uid: 6039 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -29.5,48.5 + parent: 2 + - uid: 6040 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -38.5,52.5 + parent: 2 + - uid: 6041 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -38.5,51.5 + parent: 2 + - uid: 6042 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -37.5,52.5 + parent: 2 + - uid: 6043 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -37.5,51.5 + parent: 2 + - uid: 6044 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -36.5,52.5 + parent: 2 + - uid: 6045 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -36.5,51.5 + parent: 2 + - uid: 6046 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -37.5,50.5 + parent: 2 + - uid: 6055 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -3.5,71.5 + parent: 2 + - uid: 6057 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -8.5,71.5 + parent: 2 + - uid: 6058 + components: + - type: Transform + pos: 4.5,0.5 + parent: 2 + - uid: 6059 + components: + - type: Transform + pos: 5.5,0.5 + parent: 2 + - uid: 6060 + components: + - type: Transform + pos: 6.5,0.5 + parent: 2 + - uid: 6063 + components: + - type: Transform + pos: 7.5,-0.5 + parent: 2 + - uid: 6064 + components: + - type: Transform + pos: 8.5,-0.5 + parent: 2 + - uid: 6065 + components: + - type: Transform + pos: 9.5,-0.5 + parent: 2 + - uid: 6066 + components: + - type: Transform + pos: 10.5,-0.5 + parent: 2 + - uid: 6067 + components: + - type: Transform + pos: 11.5,-0.5 + parent: 2 + - uid: 6068 + components: + - type: Transform + pos: 12.5,-0.5 + parent: 2 + - uid: 6069 + components: + - type: Transform + pos: 13.5,-0.5 + parent: 2 + - uid: 6070 + components: + - type: Transform + pos: 13.5,-1.5 + parent: 2 + - uid: 6071 + components: + - type: Transform + pos: 12.5,-1.5 + parent: 2 + - uid: 6072 + components: + - type: Transform + pos: 11.5,-1.5 + parent: 2 + - uid: 6074 + components: + - type: Transform + pos: 16.5,-2.5 + parent: 2 + - uid: 6075 + components: + - type: Transform + pos: 18.5,-4.5 + parent: 2 + - uid: 6076 + components: + - type: Transform + pos: 20.5,-5.5 + parent: 2 + - uid: 6077 + components: + - type: Transform + pos: 57.5,8.5 + parent: 2 + - uid: 6078 + components: + - type: Transform + pos: 58.5,8.5 + parent: 2 + - uid: 6079 + components: + - type: Transform + pos: 59.5,8.5 + parent: 2 + - uid: 6080 + components: + - type: Transform + pos: 59.5,7.5 + parent: 2 + - uid: 6081 + components: + - type: Transform + pos: 59.5,6.5 + parent: 2 + - uid: 6082 + components: + - type: Transform + pos: 59.5,5.5 + parent: 2 + - uid: 6083 + components: + - type: Transform + pos: 59.5,4.5 + parent: 2 + - uid: 6084 + components: + - type: Transform + pos: 59.5,3.5 + parent: 2 + - uid: 6085 + components: + - type: Transform + pos: 59.5,2.5 + parent: 2 + - uid: 6086 + components: + - type: Transform + pos: 59.5,1.5 + parent: 2 + - uid: 6087 + components: + - type: Transform + pos: 59.5,0.5 + parent: 2 + - uid: 6088 + components: + - type: Transform + pos: 59.5,-0.5 + parent: 2 + - uid: 6089 + components: + - type: Transform + pos: 59.5,-1.5 + parent: 2 + - uid: 6090 + components: + - type: Transform + pos: 59.5,-3.5 + parent: 2 + - uid: 6091 + components: + - type: Transform + pos: 59.5,-4.5 + parent: 2 + - uid: 6092 + components: + - type: Transform + pos: 59.5,-5.5 + parent: 2 + - uid: 6093 + components: + - type: Transform + pos: 58.5,-5.5 + parent: 2 + - uid: 6094 + components: + - type: Transform + pos: 57.5,-5.5 + parent: 2 + - uid: 6095 + components: + - type: Transform + pos: 55.5,-7.5 + parent: 2 + - uid: 6096 + components: + - type: Transform + pos: 55.5,-8.5 + parent: 2 + - uid: 6097 + components: + - type: Transform + pos: 55.5,-9.5 + parent: 2 + - uid: 6098 + components: + - type: Transform + pos: 55.5,-10.5 + parent: 2 + - uid: 6099 + components: + - type: Transform + pos: 54.5,-10.5 + parent: 2 + - uid: 6100 + components: + - type: Transform + pos: 53.5,-10.5 + parent: 2 + - uid: 6101 + components: + - type: Transform + pos: 52.5,-10.5 + parent: 2 + - uid: 6102 + components: + - type: Transform + pos: 51.5,-10.5 + parent: 2 + - uid: 6103 + components: + - type: Transform + pos: 50.5,-10.5 + parent: 2 + - uid: 6104 + components: + - type: Transform + pos: 49.5,-10.5 + parent: 2 + - uid: 6105 + components: + - type: Transform + pos: 48.5,-10.5 + parent: 2 + - uid: 6106 + components: + - type: Transform + pos: 47.5,-10.5 + parent: 2 + - uid: 6107 + components: + - type: Transform + pos: 47.5,-9.5 + parent: 2 + - uid: 6108 + components: + - type: Transform + pos: 47.5,-8.5 + parent: 2 + - uid: 6109 + components: + - type: Transform + pos: 47.5,-7.5 + parent: 2 + - uid: 6110 + components: + - type: Transform + pos: 47.5,-6.5 + parent: 2 + - uid: 6111 + components: + - type: Transform + pos: 47.5,-5.5 + parent: 2 + - uid: 6112 + components: + - type: Transform + pos: 46.5,-5.5 + parent: 2 + - uid: 6113 + components: + - type: Transform + pos: 45.5,-5.5 + parent: 2 + - uid: 6114 + components: + - type: Transform + pos: 44.5,-5.5 + parent: 2 + - uid: 6115 + components: + - type: Transform + pos: 43.5,-5.5 + parent: 2 + - uid: 6116 + components: + - type: Transform + pos: 42.5,-5.5 + parent: 2 + - uid: 6117 + components: + - type: Transform + pos: 43.5,-4.5 + parent: 2 + - uid: 6118 + components: + - type: Transform + pos: 43.5,-3.5 + parent: 2 + - uid: 6119 + components: + - type: Transform + pos: 42.5,-3.5 + parent: 2 + - uid: 6120 + components: + - type: Transform + pos: 42.5,-4.5 + parent: 2 + - uid: 6121 + components: + - type: Transform + pos: 52.5,-13.5 + parent: 2 + - uid: 6122 + components: + - type: Transform + pos: 51.5,-11.5 + parent: 2 + - uid: 6123 + components: + - type: Transform + pos: 51.5,-22.5 + parent: 2 + - uid: 6124 + components: + - type: Transform + pos: 51.5,-21.5 + parent: 2 + - uid: 6125 + components: + - type: Transform + pos: 51.5,-20.5 + parent: 2 + - uid: 6126 + components: + - type: Transform + pos: 51.5,-19.5 + parent: 2 + - uid: 6127 + components: + - type: Transform + pos: 51.5,-18.5 + parent: 2 + - uid: 6128 + components: + - type: Transform + pos: 51.5,-17.5 + parent: 2 + - uid: 6129 + components: + - type: Transform + pos: 51.5,-16.5 + parent: 2 + - uid: 6130 + components: + - type: Transform + pos: 51.5,-15.5 + parent: 2 + - uid: 6131 + components: + - type: Transform + pos: 51.5,-13.5 + parent: 2 + - uid: 6132 + components: + - type: Transform + pos: 51.5,-12.5 + parent: 2 + - uid: 6133 + components: + - type: Transform + pos: 51.5,-14.5 + parent: 2 + - uid: 6134 + components: + - type: Transform + pos: 51.5,-23.5 + parent: 2 + - uid: 6135 + components: + - type: Transform + pos: 50.5,-21.5 + parent: 2 + - uid: 6136 + components: + - type: Transform + pos: 49.5,-21.5 + parent: 2 + - uid: 6137 + components: + - type: Transform + pos: 48.5,-21.5 + parent: 2 + - uid: 6138 + components: + - type: Transform + pos: 47.5,-21.5 + parent: 2 + - uid: 6139 + components: + - type: Transform + pos: 46.5,-21.5 + parent: 2 + - uid: 6140 + components: + - type: Transform + pos: 45.5,-21.5 + parent: 2 + - uid: 6141 + components: + - type: Transform + pos: 52.5,-21.5 + parent: 2 + - uid: 6142 + components: + - type: Transform + pos: 53.5,-21.5 + parent: 2 + - uid: 6143 + components: + - type: Transform + pos: 54.5,-21.5 + parent: 2 + - uid: 6144 + components: + - type: Transform + pos: 55.5,-21.5 + parent: 2 + - uid: 6145 + components: + - type: Transform + pos: 56.5,-21.5 + parent: 2 + - uid: 6146 + components: + - type: Transform + pos: 57.5,-21.5 + parent: 2 + - uid: 6147 + components: + - type: Transform + pos: 52.5,-17.5 + parent: 2 + - uid: 6148 + components: + - type: Transform + pos: 53.5,-17.5 + parent: 2 + - uid: 6149 + components: + - type: Transform + pos: 54.5,-17.5 + parent: 2 + - uid: 6150 + components: + - type: Transform + pos: 55.5,-17.5 + parent: 2 + - uid: 6151 + components: + - type: Transform + pos: 56.5,-17.5 + parent: 2 + - uid: 6152 + components: + - type: Transform + pos: 57.5,-17.5 + parent: 2 + - uid: 6153 + components: + - type: Transform + pos: 50.5,-17.5 + parent: 2 + - uid: 6154 + components: + - type: Transform + pos: 49.5,-17.5 + parent: 2 + - uid: 6155 + components: + - type: Transform + pos: 48.5,-17.5 + parent: 2 + - uid: 6156 + components: + - type: Transform + pos: 47.5,-17.5 + parent: 2 + - uid: 6157 + components: + - type: Transform + pos: 46.5,-17.5 + parent: 2 + - uid: 6158 + components: + - type: Transform + pos: 45.5,-17.5 + parent: 2 + - uid: 6159 + components: + - type: Transform + pos: 53.5,-13.5 + parent: 2 + - uid: 6160 + components: + - type: Transform + pos: 54.5,-13.5 + parent: 2 + - uid: 6161 + components: + - type: Transform + pos: 55.5,-13.5 + parent: 2 + - uid: 6162 + components: + - type: Transform + pos: 56.5,-13.5 + parent: 2 + - uid: 6163 + components: + - type: Transform + pos: 57.5,-13.5 + parent: 2 + - uid: 6164 + components: + - type: Transform + pos: 50.5,-13.5 + parent: 2 + - uid: 6165 + components: + - type: Transform + pos: 49.5,-13.5 + parent: 2 + - uid: 6166 + components: + - type: Transform + pos: 48.5,-13.5 + parent: 2 + - uid: 6167 + components: + - type: Transform + pos: 47.5,-13.5 + parent: 2 + - uid: 6168 + components: + - type: Transform + pos: 46.5,-13.5 + parent: 2 + - uid: 6169 + components: + - type: Transform + pos: 45.5,-13.5 + parent: 2 + - uid: 6170 + components: + - type: Transform + pos: 61.5,-2.5 + parent: 2 + - uid: 6171 + components: + - type: Transform + pos: 62.5,-2.5 + parent: 2 + - uid: 6172 + components: + - type: Transform + pos: 63.5,-2.5 + parent: 2 + - uid: 6173 + components: + - type: Transform + pos: 64.5,-2.5 + parent: 2 + - uid: 6174 + components: + - type: Transform + pos: 65.5,-2.5 + parent: 2 + - uid: 6175 + components: + - type: Transform + pos: 66.5,-2.5 + parent: 2 + - uid: 6176 + components: + - type: Transform + pos: 67.5,-2.5 + parent: 2 + - uid: 6177 + components: + - type: Transform + pos: 68.5,-2.5 + parent: 2 + - uid: 6178 + components: + - type: Transform + pos: 69.5,-2.5 + parent: 2 + - uid: 6179 + components: + - type: Transform + pos: 70.5,-2.5 + parent: 2 + - uid: 6180 + components: + - type: Transform + pos: -24.5,-15.5 + parent: 2 + - uid: 6181 + components: + - type: Transform + pos: -22.5,3.5 + parent: 2 + - uid: 6182 + components: + - type: Transform + pos: -22.5,-0.5 + parent: 2 + - uid: 6183 + components: + - type: Transform + pos: -22.5,0.5 + parent: 2 + - uid: 6184 + components: + - type: Transform + pos: -22.5,1.5 + parent: 2 + - uid: 6185 + components: + - type: Transform + pos: -22.5,2.5 + parent: 2 + - uid: 6186 + components: + - type: Transform + pos: -23.5,-7.5 + parent: 2 + - uid: 6187 + components: + - type: Transform + pos: -24.5,-7.5 + parent: 2 + - uid: 6188 + components: + - type: Transform + pos: -25.5,-7.5 + parent: 2 + - uid: 6189 + components: + - type: Transform + pos: -26.5,-7.5 + parent: 2 + - uid: 6190 + components: + - type: Transform + pos: -27.5,-7.5 + parent: 2 + - uid: 6191 + components: + - type: Transform + pos: -28.5,-7.5 + parent: 2 + - uid: 6194 + components: + - type: Transform + pos: -22.5,-5.5 + parent: 2 + - uid: 6195 + components: + - type: Transform + pos: -25.5,-3.5 + parent: 2 + - uid: 6196 + components: + - type: Transform + pos: -26.5,-3.5 + parent: 2 + - uid: 6197 + components: + - type: Transform + pos: -27.5,-3.5 + parent: 2 + - uid: 6198 + components: + - type: Transform + pos: -28.5,-3.5 + parent: 2 + - uid: 6199 + components: + - type: Transform + pos: -22.5,-4.5 + parent: 2 + - uid: 6200 + components: + - type: Transform + pos: -25.5,-15.5 + parent: 2 + - uid: 6201 + components: + - type: Transform + pos: -26.5,-15.5 + parent: 2 + - uid: 6202 + components: + - type: Transform + pos: -27.5,-15.5 + parent: 2 + - uid: 6203 + components: + - type: Transform + pos: -28.5,-15.5 + parent: 2 + - uid: 6204 + components: + - type: Transform + pos: -29.5,-15.5 + parent: 2 + - uid: 6205 + components: + - type: Transform + pos: -30.5,-15.5 + parent: 2 + - uid: 6206 + components: + - type: Transform + pos: 33.5,80.5 + parent: 2 + - uid: 6207 + components: + - type: Transform + pos: -23.5,-17.5 + parent: 2 + - uid: 6208 + components: + - type: Transform + pos: 33.5,68.5 + parent: 2 + - uid: 6209 + components: + - type: Transform + pos: 33.5,78.5 + parent: 2 + - uid: 6210 + components: + - type: Transform + pos: 33.5,69.5 + parent: 2 + - uid: 6211 + components: + - type: Transform + pos: 33.5,76.5 + parent: 2 + - uid: 6212 + components: + - type: Transform + pos: 33.5,75.5 + parent: 2 + - uid: 6213 + components: + - type: Transform + pos: 33.5,74.5 + parent: 2 + - uid: 6214 + components: + - type: Transform + pos: 33.5,73.5 + parent: 2 + - uid: 6215 + components: + - type: Transform + pos: 33.5,72.5 + parent: 2 + - uid: 6216 + components: + - type: Transform + pos: 33.5,71.5 + parent: 2 + - uid: 6217 + components: + - type: Transform + pos: 33.5,70.5 + parent: 2 + - uid: 6218 + components: + - type: Transform + pos: 27.5,78.5 + parent: 2 + - uid: 6219 + components: + - type: Transform + pos: 28.5,78.5 + parent: 2 + - uid: 6220 + components: + - type: Transform + pos: 29.5,78.5 + parent: 2 + - uid: 6221 + components: + - type: Transform + pos: 30.5,78.5 + parent: 2 + - uid: 6222 + components: + - type: Transform + pos: 31.5,78.5 + parent: 2 + - uid: 6223 + components: + - type: Transform + pos: 32.5,78.5 + parent: 2 + - uid: 6224 + components: + - type: Transform + pos: 34.5,78.5 + parent: 2 + - uid: 6225 + components: + - type: Transform + pos: 35.5,78.5 + parent: 2 + - uid: 6226 + components: + - type: Transform + pos: 36.5,78.5 + parent: 2 + - uid: 6227 + components: + - type: Transform + pos: 37.5,78.5 + parent: 2 + - uid: 6228 + components: + - type: Transform + pos: 38.5,78.5 + parent: 2 + - uid: 6229 + components: + - type: Transform + pos: 39.5,78.5 + parent: 2 + - uid: 6230 + components: + - type: Transform + pos: 27.5,74.5 + parent: 2 + - uid: 6231 + components: + - type: Transform + pos: 28.5,74.5 + parent: 2 + - uid: 6232 + components: + - type: Transform + pos: 29.5,74.5 + parent: 2 + - uid: 6233 + components: + - type: Transform + pos: 30.5,74.5 + parent: 2 + - uid: 6234 + components: + - type: Transform + pos: 31.5,74.5 + parent: 2 + - uid: 6235 + components: + - type: Transform + pos: 32.5,74.5 + parent: 2 + - uid: 6236 + components: + - type: Transform + pos: 32.5,70.5 + parent: 2 + - uid: 6237 + components: + - type: Transform + pos: 34.5,74.5 + parent: 2 + - uid: 6238 + components: + - type: Transform + pos: 35.5,74.5 + parent: 2 + - uid: 6239 + components: + - type: Transform + pos: 36.5,74.5 + parent: 2 + - uid: 6240 + components: + - type: Transform + pos: 37.5,74.5 + parent: 2 + - uid: 6241 + components: + - type: Transform + pos: 38.5,74.5 + parent: 2 + - uid: 6242 + components: + - type: Transform + pos: 39.5,74.5 + parent: 2 + - uid: 6243 + components: + - type: Transform + pos: 31.5,70.5 + parent: 2 + - uid: 6244 + components: + - type: Transform + pos: 30.5,70.5 + parent: 2 + - uid: 6245 + components: + - type: Transform + pos: 29.5,70.5 + parent: 2 + - uid: 6246 + components: + - type: Transform + pos: 28.5,70.5 + parent: 2 + - uid: 6247 + components: + - type: Transform + pos: 27.5,70.5 + parent: 2 + - uid: 6248 + components: + - type: Transform + pos: 34.5,70.5 + parent: 2 + - uid: 6249 + components: + - type: Transform + pos: 35.5,70.5 + parent: 2 + - uid: 6250 + components: + - type: Transform + pos: 36.5,70.5 + parent: 2 + - uid: 6251 + components: + - type: Transform + pos: 37.5,70.5 + parent: 2 + - uid: 6252 + components: + - type: Transform + pos: 38.5,70.5 + parent: 2 + - uid: 6253 + components: + - type: Transform + pos: 39.5,70.5 + parent: 2 + - uid: 6254 + components: + - type: Transform + pos: 32.5,68.5 + parent: 2 + - uid: 6255 + components: + - type: Transform + pos: 34.5,68.5 + parent: 2 + - uid: 6256 + components: + - type: Transform + pos: 34.5,69.5 + parent: 2 + - uid: 6257 + components: + - type: Transform + pos: 32.5,69.5 + parent: 2 + - uid: 6258 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 75.5,-4.5 + parent: 2 + - uid: 6259 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 76.5,-3.5 + parent: 2 + - uid: 6260 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 76.5,-2.5 + parent: 2 + - uid: 6261 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 76.5,-1.5 + parent: 2 + - uid: 6262 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 76.5,-4.5 + parent: 2 + - uid: 6263 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 70.5,-5.5 + parent: 2 + - uid: 6264 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 70.5,-3.5 + parent: 2 + - uid: 6265 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 70.5,-4.5 + parent: 2 + - uid: 6266 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 71.5,-4.5 + parent: 2 + - uid: 6267 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 70.5,-6.5 + parent: 2 + - uid: 6268 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 76.5,-5.5 + parent: 2 + - uid: 6269 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 76.5,-6.5 + parent: 2 + - uid: 6270 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 70.5,-8.5 + parent: 2 + - uid: 6271 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 76.5,-8.5 + parent: 2 + - uid: 6272 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 70.5,-11.5 + parent: 2 + - uid: 6273 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 76.5,-11.5 + parent: 2 + - uid: 6274 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 76.5,-15.5 + parent: 2 + - uid: 6275 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 70.5,-15.5 + parent: 2 + - uid: 6276 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -15.5,44.5 + parent: 2 + - uid: 6277 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -15.5,45.5 + parent: 2 + - uid: 6278 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -16.5,44.5 + parent: 2 + - uid: 6279 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -16.5,45.5 + parent: 2 + - uid: 6280 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -14.5,45.5 + parent: 2 + - uid: 6281 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -13.5,45.5 + parent: 2 + - uid: 6282 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -12.5,45.5 + parent: 2 + - uid: 6283 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -41.5,25.5 + parent: 2 + - uid: 6284 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -41.5,27.5 + parent: 2 + - uid: 6285 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -41.5,28.5 + parent: 2 + - uid: 6286 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -42.5,27.5 + parent: 2 + - uid: 6287 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -43.5,25.5 + parent: 2 + - uid: 6288 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -41.5,24.5 + parent: 2 + - uid: 6289 + components: + - type: Transform + pos: -23.5,-15.5 + parent: 2 + - uid: 6290 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -43.5,26.5 + parent: 2 + - uid: 6291 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -43.5,27.5 + parent: 2 + - uid: 6292 + components: + - type: Transform + pos: -23.5,-14.5 + parent: 2 + - uid: 6293 + components: + - type: Transform + pos: -23.5,-16.5 + parent: 2 + - uid: 6294 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -41.5,29.5 + parent: 2 + - uid: 6295 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -40.5,29.5 + parent: 2 + - uid: 6296 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 59.5,-2.5 + parent: 2 + - uid: 6297 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 56.5,-5.5 + parent: 2 + - uid: 6298 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 55.5,-5.5 + parent: 2 + - uid: 6299 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 55.5,-6.5 + parent: 2 + - uid: 6300 + components: + - type: Transform + pos: -22.5,-3.5 + parent: 2 + - uid: 6301 + components: + - type: Transform + pos: -31.5,30.5 + parent: 2 + - uid: 6302 + components: + - type: Transform + pos: 74.5,18.5 + parent: 2 + - uid: 6303 + components: + - type: Transform + pos: 74.5,17.5 + parent: 2 + - uid: 6304 + components: + - type: Transform + pos: 75.5,17.5 + parent: 2 + - uid: 6305 + components: + - type: Transform + pos: 75.5,16.5 + parent: 2 + - uid: 6306 + components: + - type: Transform + pos: 75.5,15.5 + parent: 2 + - uid: 6307 + components: + - type: Transform + pos: 74.5,19.5 + parent: 2 + - uid: 6308 + components: + - type: Transform + pos: 74.5,20.5 + parent: 2 + - uid: 6309 + components: + - type: Transform + pos: 75.5,20.5 + parent: 2 + - uid: 6310 + components: + - type: Transform + pos: 76.5,20.5 + parent: 2 + - uid: 6311 + components: + - type: Transform + pos: 77.5,20.5 + parent: 2 + - uid: 6312 + components: + - type: Transform + pos: 78.5,20.5 + parent: 2 + - uid: 6313 + components: + - type: Transform + pos: 78.5,19.5 + parent: 2 + - uid: 6314 + components: + - type: Transform + pos: 79.5,19.5 + parent: 2 + - uid: 6315 + components: + - type: Transform + pos: 80.5,19.5 + parent: 2 + - uid: 6316 + components: + - type: Transform + pos: 81.5,19.5 + parent: 2 + - uid: 6317 + components: + - type: Transform + pos: 81.5,46.5 + parent: 2 + - uid: 6318 + components: + - type: Transform + pos: 76.5,47.5 + parent: 2 + - uid: 6319 + components: + - type: Transform + pos: 74.5,47.5 + parent: 2 + - uid: 6320 + components: + - type: Transform + pos: 75.5,47.5 + parent: 2 + - uid: 6321 + components: + - type: Transform + pos: 78.5,47.5 + parent: 2 + - uid: 6322 + components: + - type: Transform + pos: 77.5,47.5 + parent: 2 + - uid: 6326 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 79.5,53.5 + parent: 2 + - uid: 6327 + components: + - type: Transform + pos: 75.5,53.5 + parent: 2 + - uid: 6328 + components: + - type: Transform + pos: 74.5,53.5 + parent: 2 + - uid: 6329 + components: + - type: Transform + pos: 73.5,53.5 + parent: 2 + - uid: 6330 + components: + - type: Transform + pos: 73.5,54.5 + parent: 2 + - uid: 6332 + components: + - type: Transform + pos: 62.5,26.5 + parent: 2 + - uid: 6333 + components: + - type: Transform + pos: 62.5,25.5 + parent: 2 + - uid: 6334 + components: + - type: Transform + pos: 62.5,24.5 + parent: 2 + - uid: 6335 + components: + - type: Transform + pos: 62.5,23.5 + parent: 2 + - uid: 6336 + components: + - type: Transform + pos: 62.5,22.5 + parent: 2 + - uid: 6337 + components: + - type: Transform + pos: 62.5,21.5 + parent: 2 + - uid: 6338 + components: + - type: Transform + pos: 62.5,20.5 + parent: 2 + - uid: 6339 + components: + - type: Transform + pos: 62.5,19.5 + parent: 2 + - uid: 6340 + components: + - type: Transform + pos: 62.5,18.5 + parent: 2 + - uid: 6341 + components: + - type: Transform + pos: 61.5,18.5 + parent: 2 + - uid: 6342 + components: + - type: Transform + pos: 61.5,17.5 + parent: 2 + - uid: 6343 + components: + - type: Transform + pos: 61.5,16.5 + parent: 2 + - uid: 6344 + components: + - type: Transform + pos: 61.5,15.5 + parent: 2 + - uid: 6345 + components: + - type: Transform + pos: 61.5,14.5 + parent: 2 + - uid: 6346 + components: + - type: Transform + pos: 61.5,13.5 + parent: 2 + - uid: 6347 + components: + - type: Transform + pos: 60.5,13.5 + parent: 2 + - uid: 6348 + components: + - type: Transform + pos: 59.5,13.5 + parent: 2 + - uid: 6349 + components: + - type: Transform + pos: 58.5,13.5 + parent: 2 + - uid: 6350 + components: + - type: Transform + pos: 57.5,13.5 + parent: 2 + - uid: 6351 + components: + - type: Transform + pos: 56.5,13.5 + parent: 2 + - uid: 6352 + components: + - type: Transform + pos: 55.5,13.5 + parent: 2 + - uid: 6353 + components: + - type: Transform + pos: 55.5,12.5 + parent: 2 + - uid: 6354 + components: + - type: Transform + pos: 55.5,11.5 + parent: 2 + - uid: 6355 + components: + - type: Transform + pos: 54.5,11.5 + parent: 2 + - uid: 6356 + components: + - type: Transform + pos: 53.5,11.5 + parent: 2 + - uid: 6357 + components: + - type: Transform + pos: 52.5,11.5 + parent: 2 + - uid: 6358 + components: + - type: Transform + pos: 52.5,10.5 + parent: 2 + - uid: 6359 + components: + - type: Transform + pos: 57.5,12.5 + parent: 2 + - uid: 6360 + components: + - type: Transform + pos: 46.5,10.5 + parent: 2 + - uid: 6361 + components: + - type: Transform + pos: 45.5,10.5 + parent: 2 + - uid: 6362 + components: + - type: Transform + pos: 44.5,10.5 + parent: 2 + - uid: 6363 + components: + - type: Transform + pos: 43.5,10.5 + parent: 2 + - uid: 6364 + components: + - type: Transform + pos: 43.5,9.5 + parent: 2 + - uid: 6365 + components: + - type: Transform + pos: 43.5,8.5 + parent: 2 + - uid: 6366 + components: + - type: Transform + pos: 43.5,7.5 + parent: 2 + - uid: 6367 + components: + - type: Transform + pos: 43.5,6.5 + parent: 2 + - uid: 6368 + components: + - type: Transform + pos: 43.5,5.5 + parent: 2 + - uid: 6369 + components: + - type: Transform + pos: 43.5,4.5 + parent: 2 + - uid: 6370 + components: + - type: Transform + pos: 44.5,7.5 + parent: 2 + - uid: 6371 + components: + - type: Transform + pos: 42.5,4.5 + parent: 2 + - uid: 6372 + components: + - type: Transform + pos: 41.5,4.5 + parent: 2 + - uid: 6373 + components: + - type: Transform + pos: 40.5,4.5 + parent: 2 + - uid: 6374 + components: + - type: Transform + pos: 39.5,4.5 + parent: 2 + - uid: 6375 + components: + - type: Transform + pos: 38.5,4.5 + parent: 2 + - uid: 6376 + components: + - type: Transform + pos: 32.5,7.5 + parent: 2 + - uid: 6377 + components: + - type: Transform + pos: 31.5,7.5 + parent: 2 + - uid: 6378 + components: + - type: Transform + pos: 30.5,7.5 + parent: 2 + - uid: 6379 + components: + - type: Transform + pos: 29.5,7.5 + parent: 2 + - uid: 6380 + components: + - type: Transform + pos: 28.5,7.5 + parent: 2 + - uid: 6381 + components: + - type: Transform + pos: 27.5,7.5 + parent: 2 + - uid: 6382 + components: + - type: Transform + pos: 26.5,7.5 + parent: 2 + - uid: 6383 + components: + - type: Transform + pos: 25.5,7.5 + parent: 2 + - uid: 6384 + components: + - type: Transform + pos: 27.5,6.5 + parent: 2 + - uid: 6385 + components: + - type: Transform + pos: 25.5,6.5 + parent: 2 + - uid: 6386 + components: + - type: Transform + pos: 24.5,6.5 + parent: 2 + - uid: 6387 + components: + - type: Transform + pos: 23.5,6.5 + parent: 2 + - uid: 6388 + components: + - type: Transform + pos: 22.5,6.5 + parent: 2 + - uid: 6389 + components: + - type: Transform + pos: 20.5,6.5 + parent: 2 + - uid: 6390 + components: + - type: Transform + pos: 19.5,6.5 + parent: 2 + - uid: 6391 + components: + - type: Transform + pos: 18.5,6.5 + parent: 2 + - uid: 6392 + components: + - type: Transform + pos: 19.5,5.5 + parent: 2 + - uid: 6393 + components: + - type: Transform + pos: 19.5,4.5 + parent: 2 + - uid: 6394 + components: + - type: Transform + pos: 17.5,6.5 + parent: 2 + - uid: 6395 + components: + - type: Transform + pos: 16.5,6.5 + parent: 2 + - uid: 6396 + components: + - type: Transform + pos: 15.5,6.5 + parent: 2 + - uid: 6397 + components: + - type: Transform + pos: 15.5,5.5 + parent: 2 + - uid: 6398 + components: + - type: Transform + pos: 15.5,7.5 + parent: 2 + - uid: 6399 + components: + - type: Transform + pos: 15.5,8.5 + parent: 2 + - uid: 6400 + components: + - type: Transform + pos: 15.5,9.5 + parent: 2 + - uid: 6401 + components: + - type: Transform + pos: 15.5,10.5 + parent: 2 + - uid: 6402 + components: + - type: Transform + pos: 16.5,10.5 + parent: 2 + - uid: 6403 + components: + - type: Transform + pos: 17.5,10.5 + parent: 2 + - uid: 6404 + components: + - type: Transform + pos: 18.5,10.5 + parent: 2 + - uid: 6405 + components: + - type: Transform + pos: 18.5,9.5 + parent: 2 + - uid: 6406 + components: + - type: Transform + pos: 18.5,8.5 + parent: 2 + - uid: 6407 + components: + - type: Transform + pos: 16.5,11.5 + parent: 2 + - uid: 6408 + components: + - type: Transform + pos: 16.5,12.5 + parent: 2 + - uid: 6409 + components: + - type: Transform + pos: 15.5,11.5 + parent: 2 + - uid: 6410 + components: + - type: Transform + pos: 15.5,12.5 + parent: 2 + - uid: 6411 + components: + - type: Transform + pos: 15.5,13.5 + parent: 2 + - uid: 6412 + components: + - type: Transform + pos: 15.5,14.5 + parent: 2 + - uid: 6413 + components: + - type: Transform + pos: 15.5,15.5 + parent: 2 + - uid: 6414 + components: + - type: Transform + pos: 7.5,7.5 + parent: 2 + - uid: 6415 + components: + - type: Transform + pos: 8.5,7.5 + parent: 2 + - uid: 6416 + components: + - type: Transform + pos: 9.5,7.5 + parent: 2 + - uid: 6417 + components: + - type: Transform + pos: 10.5,7.5 + parent: 2 + - uid: 6418 + components: + - type: Transform + pos: 11.5,7.5 + parent: 2 + - uid: 6419 + components: + - type: Transform + pos: 12.5,7.5 + parent: 2 + - uid: 6420 + components: + - type: Transform + pos: 13.5,7.5 + parent: 2 + - uid: 6421 + components: + - type: Transform + pos: 14.5,7.5 + parent: 2 + - uid: 6422 + components: + - type: Transform + pos: 12.5,6.5 + parent: 2 + - uid: 6423 + components: + - type: Transform + pos: 12.5,5.5 + parent: 2 + - uid: 6424 + components: + - type: Transform + pos: 12.5,4.5 + parent: 2 + - uid: 6425 + components: + - type: Transform + pos: 12.5,3.5 + parent: 2 + - uid: 6426 + components: + - type: Transform + pos: -18.5,8.5 + parent: 2 + - uid: 6427 + components: + - type: Transform + pos: -18.5,7.5 + parent: 2 + - uid: 6428 + components: + - type: Transform + pos: -18.5,6.5 + parent: 2 + - uid: 6429 + components: + - type: Transform + pos: -17.5,6.5 + parent: 2 + - uid: 6430 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -18.5,10.5 + parent: 2 + - uid: 6431 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -20.5,11.5 + parent: 2 + - uid: 6432 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -19.5,11.5 + parent: 2 + - uid: 6433 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -18.5,11.5 + parent: 2 + - uid: 6434 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -17.5,11.5 + parent: 2 + - uid: 6435 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -16.5,11.5 + parent: 2 + - uid: 6436 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -15.5,11.5 + parent: 2 + - uid: 6437 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -19.5,14.5 + parent: 2 + - uid: 6438 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -20.5,14.5 + parent: 2 + - uid: 6439 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -20.5,13.5 + parent: 2 + - uid: 6440 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -20.5,12.5 + parent: 2 + - uid: 6441 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -19.5,15.5 + parent: 2 + - uid: 6442 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -18.5,15.5 + parent: 2 + - uid: 6443 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -21.5,14.5 + parent: 2 + - uid: 6444 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -22.5,14.5 + parent: 2 + - uid: 6445 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -22.5,13.5 + parent: 2 + - uid: 6446 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -22.5,12.5 + parent: 2 + - uid: 6447 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -22.5,11.5 + parent: 2 + - uid: 6448 + components: + - type: Transform + pos: -15.5,12.5 + parent: 2 + - uid: 6449 + components: + - type: Transform + pos: -15.5,13.5 + parent: 2 + - uid: 6450 + components: + - type: Transform + pos: -15.5,14.5 + parent: 2 + - uid: 6451 + components: + - type: Transform + pos: -15.5,15.5 + parent: 2 + - uid: 6452 + components: + - type: Transform + pos: -15.5,16.5 + parent: 2 + - uid: 6453 + components: + - type: Transform + pos: -14.5,16.5 + parent: 2 + - uid: 6454 + components: + - type: Transform + pos: -13.5,16.5 + parent: 2 + - uid: 6455 + components: + - type: Transform + pos: -12.5,16.5 + parent: 2 + - uid: 6456 + components: + - type: Transform + pos: -11.5,16.5 + parent: 2 + - uid: 6457 + components: + - type: Transform + pos: -10.5,16.5 + parent: 2 + - uid: 6458 + components: + - type: Transform + pos: -9.5,16.5 + parent: 2 + - uid: 6459 + components: + - type: Transform + pos: -8.5,16.5 + parent: 2 + - uid: 6460 + components: + - type: Transform + pos: -8.5,17.5 + parent: 2 + - uid: 6462 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -37.5,69.5 + parent: 2 + - uid: 6463 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -37.5,68.5 + parent: 2 + - uid: 6464 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -37.5,67.5 + parent: 2 + - uid: 6465 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -37.5,66.5 + parent: 2 + - uid: 6466 + components: + - type: Transform + pos: 8.5,64.5 + parent: 2 + - uid: 6467 + components: + - type: Transform + pos: 9.5,64.5 + parent: 2 + - uid: 6468 + components: + - type: Transform + pos: 10.5,64.5 + parent: 2 + - uid: 6469 + components: + - type: Transform + pos: 11.5,64.5 + parent: 2 + - uid: 6470 + components: + - type: Transform + pos: 12.5,64.5 + parent: 2 + - uid: 6471 + components: + - type: Transform + pos: 13.5,64.5 + parent: 2 + - uid: 6472 + components: + - type: Transform + pos: 13.5,65.5 + parent: 2 + - uid: 6473 + components: + - type: Transform + pos: 13.5,66.5 + parent: 2 + - uid: 6474 + components: + - type: Transform + pos: 13.5,67.5 + parent: 2 + - uid: 6475 + components: + - type: Transform + pos: 13.5,68.5 + parent: 2 + - uid: 6476 + components: + - type: Transform + pos: 14.5,65.5 + parent: 2 + - uid: 6477 + components: + - type: Transform + pos: 15.5,65.5 + parent: 2 + - uid: 6478 + components: + - type: Transform + pos: 16.5,65.5 + parent: 2 + - uid: 6479 + components: + - type: Transform + pos: 17.5,65.5 + parent: 2 + - uid: 6480 + components: + - type: Transform + pos: 18.5,65.5 + parent: 2 + - uid: 6481 + components: + - type: Transform + pos: 14.5,68.5 + parent: 2 + - uid: 6482 + components: + - type: Transform + pos: 14.5,69.5 + parent: 2 + - uid: 6483 + components: + - type: Transform + pos: 14.5,70.5 + parent: 2 + - uid: 6484 + components: + - type: Transform + pos: 14.5,71.5 + parent: 2 + - uid: 6485 + components: + - type: Transform + pos: 14.5,72.5 + parent: 2 + - uid: 6486 + components: + - type: Transform + pos: 14.5,73.5 + parent: 2 + - uid: 6487 + components: + - type: Transform + pos: 14.5,74.5 + parent: 2 + - uid: 6488 + components: + - type: Transform + pos: 20.5,62.5 + parent: 2 + - uid: 6489 + components: + - type: Transform + pos: 20.5,63.5 + parent: 2 + - uid: 6490 + components: + - type: Transform + pos: 24.5,65.5 + parent: 2 + - uid: 6491 + components: + - type: Transform + pos: 24.5,64.5 + parent: 2 + - uid: 6492 + components: + - type: Transform + pos: 24.5,63.5 + parent: 2 + - uid: 6493 + components: + - type: Transform + pos: 24.5,62.5 + parent: 2 + - uid: 6494 + components: + - type: Transform + pos: 24.5,61.5 + parent: 2 + - uid: 6495 + components: + - type: Transform + pos: 24.5,60.5 + parent: 2 + - uid: 6496 + components: + - type: Transform + pos: 23.5,60.5 + parent: 2 + - uid: 6497 + components: + - type: Transform + pos: 22.5,60.5 + parent: 2 + - uid: 6498 + components: + - type: Transform + pos: 21.5,60.5 + parent: 2 + - uid: 6499 + components: + - type: Transform + pos: 20.5,60.5 + parent: 2 + - uid: 6500 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 25.5,60.5 + parent: 2 + - uid: 6501 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 26.5,60.5 + parent: 2 + - uid: 6502 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 27.5,60.5 + parent: 2 + - uid: 6503 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 28.5,60.5 + parent: 2 + - uid: 6504 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 29.5,60.5 + parent: 2 + - uid: 6505 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 30.5,60.5 + parent: 2 + - uid: 6506 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 31.5,60.5 + parent: 2 + - uid: 6507 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 31.5,61.5 + parent: 2 + - uid: 6508 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 32.5,61.5 + parent: 2 + - uid: 6509 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 33.5,61.5 + parent: 2 + - uid: 6510 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 34.5,61.5 + parent: 2 + - uid: 6511 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 35.5,61.5 + parent: 2 + - uid: 6512 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 35.5,60.5 + parent: 2 + - uid: 6513 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 35.5,59.5 + parent: 2 + - uid: 6514 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 36.5,59.5 + parent: 2 + - uid: 6515 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 37.5,59.5 + parent: 2 + - uid: 6516 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 38.5,59.5 + parent: 2 + - uid: 6517 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 39.5,59.5 + parent: 2 + - uid: 6518 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 39.5,58.5 + parent: 2 + - uid: 6519 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 39.5,57.5 + parent: 2 + - uid: 6520 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 39.5,56.5 + parent: 2 + - uid: 6521 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 40.5,56.5 + parent: 2 + - uid: 6522 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 41.5,56.5 + parent: 2 + - uid: 6523 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 42.5,56.5 + parent: 2 + - uid: 6524 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 43.5,56.5 + parent: 2 + - uid: 6525 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 44.5,56.5 + parent: 2 + - uid: 6526 + components: + - type: Transform + pos: 46.5,56.5 + parent: 2 + - uid: 6528 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 46.5,55.5 + parent: 2 + - uid: 6529 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 46.5,54.5 + parent: 2 + - uid: 6530 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 46.5,53.5 + parent: 2 + - uid: 6531 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 46.5,52.5 + parent: 2 + - uid: 6532 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 46.5,51.5 + parent: 2 + - uid: 6533 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 47.5,52.5 + parent: 2 + - uid: 6534 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 47.5,51.5 + parent: 2 + - uid: 6535 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 47.5,50.5 + parent: 2 + - uid: 6536 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 45.5,51.5 + parent: 2 + - uid: 6537 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 44.5,51.5 + parent: 2 + - uid: 6538 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 44.5,50.5 + parent: 2 + - uid: 6539 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 44.5,49.5 + parent: 2 + - uid: 6540 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 44.5,48.5 + parent: 2 + - uid: 6541 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 47.5,56.5 + parent: 2 + - uid: 6542 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 48.5,56.5 + parent: 2 + - uid: 6543 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 49.5,56.5 + parent: 2 + - uid: 6544 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 50.5,56.5 + parent: 2 + - uid: 6545 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 51.5,56.5 + parent: 2 + - uid: 6546 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 51.5,57.5 + parent: 2 + - uid: 6547 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 52.5,56.5 + parent: 2 + - uid: 6548 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 53.5,56.5 + parent: 2 + - uid: 6549 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 53.5,55.5 + parent: 2 + - uid: 6550 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 53.5,54.5 + parent: 2 + - uid: 6551 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 53.5,53.5 + parent: 2 + - uid: 6552 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 54.5,53.5 + parent: 2 + - uid: 6553 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 55.5,53.5 + parent: 2 + - uid: 6554 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 56.5,53.5 + parent: 2 + - uid: 6555 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 57.5,53.5 + parent: 2 + - uid: 6556 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 53.5,57.5 + parent: 2 + - uid: 6557 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 54.5,57.5 + parent: 2 + - uid: 6558 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 55.5,57.5 + parent: 2 + - uid: 6559 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 56.5,57.5 + parent: 2 + - uid: 6560 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 57.5,57.5 + parent: 2 + - uid: 6561 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 57.5,52.5 + parent: 2 + - uid: 6562 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 57.5,51.5 + parent: 2 + - uid: 6563 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 57.5,50.5 + parent: 2 + - uid: 6564 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 57.5,49.5 + parent: 2 + - uid: 6565 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 57.5,48.5 + parent: 2 + - uid: 6566 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 58.5,48.5 + parent: 2 + - uid: 6567 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 59.5,47.5 + parent: 2 + - uid: 6568 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 59.5,48.5 + parent: 2 + - uid: 6569 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 60.5,47.5 + parent: 2 + - uid: 6570 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 61.5,47.5 + parent: 2 + - uid: 6571 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 62.5,47.5 + parent: 2 + - uid: 6572 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 60.5,46.5 + parent: 2 + - uid: 6573 + components: + - type: Transform + pos: 33.5,63.5 + parent: 2 + - uid: 6574 + components: + - type: Transform + pos: 34.5,63.5 + parent: 2 + - uid: 6575 + components: + - type: Transform + pos: 35.5,64.5 + parent: 2 + - uid: 6576 + components: + - type: Transform + pos: -31.5,33.5 + parent: 2 + - uid: 6577 + components: + - type: Transform + pos: -31.5,31.5 + parent: 2 + - uid: 6578 + components: + - type: Transform + pos: -31.5,29.5 + parent: 2 + - uid: 6579 + components: + - type: Transform + pos: -31.5,32.5 + parent: 2 + - uid: 6580 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 38.5,19.5 + parent: 2 + - uid: 6581 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 38.5,20.5 + parent: 2 + - uid: 6582 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 38.5,21.5 + parent: 2 + - uid: 6583 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 38.5,22.5 + parent: 2 + - uid: 6584 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 38.5,23.5 + parent: 2 + - uid: 6585 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 37.5,20.5 + parent: 2 + - uid: 6586 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 36.5,20.5 + parent: 2 + - uid: 6587 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 35.5,20.5 + parent: 2 + - uid: 6588 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 39.5,23.5 + parent: 2 + - uid: 6589 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 40.5,23.5 + parent: 2 + - uid: 6590 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 41.5,23.5 + parent: 2 + - uid: 6591 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 42.5,23.5 + parent: 2 + - uid: 6592 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 43.5,23.5 + parent: 2 + - uid: 6593 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 5.5,24.5 + parent: 2 + - uid: 6594 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 4.5,24.5 + parent: 2 + - uid: 6595 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 4.5,25.5 + parent: 2 + - uid: 6596 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 3.5,25.5 + parent: 2 + - uid: 6597 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -3.5,68.5 + parent: 2 + - uid: 6598 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -3.5,67.5 + parent: 2 + - uid: 6599 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -3.5,66.5 + parent: 2 + - uid: 6600 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 77.5,53.5 + parent: 2 + - uid: 6601 + components: + - type: Transform + pos: -15.5,25.5 + parent: 2 + - uid: 6602 + components: + - type: Transform + pos: -12.5,25.5 + parent: 2 + - uid: 6603 + components: + - type: Transform + pos: -15.5,24.5 + parent: 2 + - uid: 6604 + components: + - type: Transform + pos: -13.5,25.5 + parent: 2 + - uid: 6605 + components: + - type: Transform + pos: -12.5,22.5 + parent: 2 + - uid: 6606 + components: + - type: Transform + pos: -14.5,25.5 + parent: 2 + - uid: 6607 + components: + - type: Transform + pos: -14.5,22.5 + parent: 2 + - uid: 6608 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -4.5,1.5 + parent: 2 + - uid: 6609 + components: + - type: Transform + pos: -13.5,22.5 + parent: 2 + - uid: 6610 + components: + - type: Transform + pos: -15.5,22.5 + parent: 2 + - uid: 6611 + components: + - type: Transform + pos: -18.5,-9.5 + parent: 2 + - uid: 6612 + components: + - type: Transform + pos: -18.5,-10.5 + parent: 2 + - uid: 6613 + components: + - type: Transform + pos: -18.5,-11.5 + parent: 2 + - uid: 6614 + components: + - type: Transform + pos: -18.5,-12.5 + parent: 2 + - uid: 6615 + components: + - type: Transform + pos: -17.5,-9.5 + parent: 2 + - uid: 6616 + components: + - type: Transform + pos: -17.5,-10.5 + parent: 2 + - uid: 6617 + components: + - type: Transform + pos: -17.5,-11.5 + parent: 2 + - uid: 6618 + components: + - type: Transform + pos: -17.5,-12.5 + parent: 2 + - uid: 6619 + components: + - type: Transform + pos: -16.5,-10.5 + parent: 2 + - uid: 6620 + components: + - type: Transform + pos: -16.5,-11.5 + parent: 2 + - uid: 6621 + components: + - type: Transform + pos: -16.5,-12.5 + parent: 2 + - uid: 6622 + components: + - type: Transform + pos: -15.5,-10.5 + parent: 2 + - uid: 6623 + components: + - type: Transform + pos: -15.5,-11.5 + parent: 2 + - uid: 6624 + components: + - type: Transform + pos: -15.5,-12.5 + parent: 2 + - uid: 6625 + components: + - type: Transform + pos: -14.5,-9.5 + parent: 2 + - uid: 6626 + components: + - type: Transform + pos: -14.5,-10.5 + parent: 2 + - uid: 6627 + components: + - type: Transform + pos: -14.5,-11.5 + parent: 2 + - uid: 6628 + components: + - type: Transform + pos: -14.5,-12.5 + parent: 2 + - uid: 6629 + components: + - type: Transform + pos: -13.5,-9.5 + parent: 2 + - uid: 6630 + components: + - type: Transform + pos: -13.5,-10.5 + parent: 2 + - uid: 6631 + components: + - type: Transform + pos: -13.5,-11.5 + parent: 2 + - uid: 6632 + components: + - type: Transform + pos: -13.5,-12.5 + parent: 2 + - uid: 6633 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -3.5,0.5 + parent: 2 + - uid: 6634 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -3.5,1.5 + parent: 2 + - uid: 6635 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -5.5,1.5 + parent: 2 + - uid: 6636 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -6.5,1.5 + parent: 2 + - uid: 6637 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -7.5,1.5 + parent: 2 + - uid: 6638 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -8.5,1.5 + parent: 2 + - uid: 6639 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -9.5,1.5 + parent: 2 + - uid: 6640 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -9.5,2.5 + parent: 2 + - uid: 6641 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -10.5,2.5 + parent: 2 + - uid: 6642 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -11.5,2.5 + parent: 2 + - uid: 6643 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -11.5,1.5 + parent: 2 + - uid: 6644 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -11.5,0.5 + parent: 2 + - uid: 6645 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -11.5,-0.5 + parent: 2 + - uid: 6646 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -11.5,-1.5 + parent: 2 + - uid: 6647 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -11.5,-2.5 + parent: 2 + - uid: 6648 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -11.5,-3.5 + parent: 2 + - uid: 6649 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -12.5,-3.5 + parent: 2 + - uid: 6650 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -12.5,-4.5 + parent: 2 + - uid: 6651 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -12.5,-5.5 + parent: 2 + - uid: 6652 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -12.5,-6.5 + parent: 2 + - uid: 6653 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -12.5,-7.5 + parent: 2 + - uid: 6654 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -12.5,-8.5 + parent: 2 + - uid: 6658 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -22.5,76.5 + parent: 2 + - uid: 6659 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -22.5,77.5 + parent: 2 + - uid: 6660 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -21.5,77.5 + parent: 2 + - uid: 6661 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -20.5,77.5 + parent: 2 + - uid: 6662 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -19.5,77.5 + parent: 2 + - uid: 6663 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -18.5,77.5 + parent: 2 + - uid: 6664 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -17.5,77.5 + parent: 2 + - uid: 6665 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -16.5,77.5 + parent: 2 + - uid: 6666 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -15.5,77.5 + parent: 2 + - uid: 6667 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -14.5,77.5 + parent: 2 + - uid: 6668 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -13.5,77.5 + parent: 2 + - uid: 6669 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -28.5,21.5 + parent: 2 + - uid: 6670 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 25.5,-9.5 + parent: 2 + - uid: 6671 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 26.5,-9.5 + parent: 2 + - uid: 6672 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 27.5,-9.5 + parent: 2 + - uid: 6673 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 28.5,-9.5 + parent: 2 + - uid: 6674 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 29.5,-9.5 + parent: 2 + - uid: 6675 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 29.5,-10.5 + parent: 2 + - uid: 6676 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 29.5,-11.5 + parent: 2 + - uid: 6677 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 29.5,-12.5 + parent: 2 + - uid: 6678 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 29.5,-13.5 + parent: 2 + - uid: 6679 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 27.5,-13.5 + parent: 2 + - uid: 6680 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 26.5,-13.5 + parent: 2 + - uid: 6681 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 25.5,-13.5 + parent: 2 + - uid: 6682 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 28.5,-13.5 + parent: 2 + - uid: 6683 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 32.5,-11.5 + parent: 2 + - uid: 6684 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 33.5,-11.5 + parent: 2 + - uid: 6685 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 34.5,-11.5 + parent: 2 + - uid: 6686 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 35.5,-11.5 + parent: 2 + - uid: 6687 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 35.5,-9.5 + parent: 2 + - uid: 6688 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 35.5,-10.5 + parent: 2 + - uid: 6689 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 35.5,-11.5 + parent: 2 + - uid: 6690 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 35.5,-12.5 + parent: 2 + - uid: 6691 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 35.5,-13.5 + parent: 2 + - uid: 6692 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 36.5,-9.5 + parent: 2 + - uid: 6693 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 36.5,-10.5 + parent: 2 + - uid: 6694 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 36.5,-11.5 + parent: 2 + - uid: 6695 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 36.5,-12.5 + parent: 2 + - uid: 6696 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 36.5,-13.5 + parent: 2 + - uid: 6697 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 37.5,-9.5 + parent: 2 + - uid: 6698 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 37.5,-10.5 + parent: 2 + - uid: 6699 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 37.5,-11.5 + parent: 2 + - uid: 6700 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 37.5,-12.5 + parent: 2 + - uid: 6701 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 37.5,-13.5 + parent: 2 + - uid: 6702 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 16.5,-6.5 + parent: 2 + - uid: 6703 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 17.5,-8.5 + parent: 2 + - uid: 6704 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 18.5,-10.5 + parent: 2 + - uid: 6705 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 18.5,-12.5 + parent: 2 + - uid: 6706 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 17.5,-14.5 + parent: 2 + - uid: 6707 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 16.5,-16.5 + parent: 2 + - uid: 6708 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 17.5,-18.5 + parent: 2 + - uid: 6709 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 18.5,-19.5 + parent: 2 + - uid: 6710 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 21.5,-21.5 + parent: 2 + - uid: 6711 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 23.5,-20.5 + parent: 2 + - uid: 6712 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 25.5,-19.5 + parent: 2 + - uid: 6713 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 28.5,-19.5 + parent: 2 + - uid: 6714 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 30.5,-20.5 + parent: 2 + - uid: 6715 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 32.5,-21.5 + parent: 2 + - uid: 6716 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 34.5,-20.5 + parent: 2 + - uid: 6717 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 36.5,-19.5 + parent: 2 + - uid: 6718 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 38.5,-18.5 + parent: 2 + - uid: 6719 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 40.5,-18.5 + parent: 2 + - uid: 6720 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 41.5,-19.5 + parent: 2 + - uid: 6721 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 19.5,-5.5 + parent: 2 + - uid: 6722 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 19.5,-6.5 + parent: 2 + - uid: 6723 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 19.5,-7.5 + parent: 2 + - uid: 6724 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 19.5,-8.5 + parent: 2 + - uid: 6725 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 19.5,-9.5 + parent: 2 + - uid: 6726 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 19.5,-10.5 + parent: 2 + - uid: 6727 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 19.5,-11.5 + parent: 2 + - uid: 6728 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 19.5,-12.5 + parent: 2 + - uid: 6729 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 19.5,-13.5 + parent: 2 + - uid: 6730 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 19.5,-14.5 + parent: 2 + - uid: 6731 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 19.5,-15.5 + parent: 2 + - uid: 6732 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 19.5,-16.5 + parent: 2 + - uid: 6733 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 19.5,-17.5 + parent: 2 + - uid: 6734 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 20.5,-17.5 + parent: 2 + - uid: 6735 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 20.5,-18.5 + parent: 2 + - uid: 6736 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 21.5,-18.5 + parent: 2 + - uid: 6737 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 22.5,-18.5 + parent: 2 + - uid: 6738 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 23.5,-18.5 + parent: 2 + - uid: 6739 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 24.5,-18.5 + parent: 2 + - uid: 6740 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 25.5,-18.5 + parent: 2 + - uid: 6741 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 26.5,-18.5 + parent: 2 + - uid: 6742 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 27.5,-18.5 + parent: 2 + - uid: 6743 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 28.5,-18.5 + parent: 2 + - uid: 6744 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 29.5,-18.5 + parent: 2 + - uid: 6745 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 30.5,-18.5 + parent: 2 + - uid: 6746 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 31.5,-18.5 + parent: 2 + - uid: 6747 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 32.5,-18.5 + parent: 2 + - uid: 6748 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 33.5,-18.5 + parent: 2 + - uid: 6749 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 33.5,-17.5 + parent: 2 + - uid: 6750 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 34.5,-17.5 + parent: 2 + - uid: 6751 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 35.5,-17.5 + parent: 2 + - uid: 6752 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 36.5,-17.5 + parent: 2 + - uid: 6753 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 37.5,-17.5 + parent: 2 + - uid: 6754 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 38.5,-17.5 + parent: 2 + - uid: 6755 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 39.5,-17.5 + parent: 2 + - uid: 6756 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 40.5,-17.5 + parent: 2 + - uid: 6757 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 40.5,-16.5 + parent: 2 + - uid: 6758 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 41.5,-16.5 + parent: 2 + - uid: 6759 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 41.5,-15.5 + parent: 2 + - uid: 6760 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 41.5,-14.5 + parent: 2 + - uid: 6761 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 41.5,-13.5 + parent: 2 + - uid: 6762 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 41.5,-12.5 + parent: 2 + - uid: 6763 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 41.5,-11.5 + parent: 2 + - uid: 6764 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 41.5,-10.5 + parent: 2 + - uid: 6765 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 41.5,-9.5 + parent: 2 + - uid: 6766 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 41.5,-8.5 + parent: 2 + - uid: 6767 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 41.5,-7.5 + parent: 2 + - uid: 6768 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 20.5,-4.5 + parent: 2 + - uid: 6769 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 21.5,-4.5 + parent: 2 + - uid: 6770 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 22.5,-4.5 + parent: 2 + - uid: 6771 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 23.5,-4.5 + parent: 2 + - uid: 6772 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 24.5,-4.5 + parent: 2 + - uid: 6773 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 25.5,-4.5 + parent: 2 + - uid: 6774 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 26.5,-4.5 + parent: 2 + - uid: 6775 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 27.5,-4.5 + parent: 2 + - uid: 6776 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 28.5,-4.5 + parent: 2 + - uid: 6777 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 29.5,-4.5 + parent: 2 + - uid: 6778 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 30.5,-4.5 + parent: 2 + - uid: 6779 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 31.5,-4.5 + parent: 2 + - uid: 6780 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 32.5,-4.5 + parent: 2 + - uid: 6781 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 33.5,-4.5 + parent: 2 + - uid: 6782 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 34.5,-4.5 + parent: 2 + - uid: 6783 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 35.5,-4.5 + parent: 2 + - uid: 6784 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 35.5,-5.5 + parent: 2 + - uid: 6785 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 36.5,-5.5 + parent: 2 + - uid: 6786 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 37.5,-5.5 + parent: 2 + - uid: 6787 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 38.5,-5.5 + parent: 2 + - uid: 6788 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 39.5,-5.5 + parent: 2 + - uid: 6789 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 40.5,-5.5 + parent: 2 + - uid: 6790 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 40.5,-6.5 + parent: 2 + - uid: 6791 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 34.5,-3.5 + parent: 2 + - uid: 6792 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 33.5,-3.5 + parent: 2 + - uid: 6793 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 32.5,-3.5 + parent: 2 + - uid: 6794 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 36.5,-4.5 + parent: 2 + - uid: 6795 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 37.5,-4.5 + parent: 2 + - uid: 6796 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 37.5,-3.5 + parent: 2 + - uid: 12071 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -36.5,75.5 + parent: 2 + - uid: 18574 + components: + - type: Transform + pos: 86.5,17.5 + parent: 2 + - uid: 18575 + components: + - type: Transform + pos: 86.5,15.5 + parent: 2 + - uid: 18578 + components: + - type: Transform + pos: 83.5,19.5 + parent: 2 + - uid: 18579 + components: + - type: Transform + pos: 83.5,18.5 + parent: 2 + - uid: 18580 + components: + - type: Transform + pos: 83.5,14.5 + parent: 2 + - uid: 18582 + components: + - type: Transform + pos: 90.5,14.5 + parent: 2 + - uid: 18583 + components: + - type: Transform + pos: 90.5,12.5 + parent: 2 + - uid: 18584 + components: + - type: Transform + pos: 89.5,10.5 + parent: 2 + - uid: 18585 + components: + - type: Transform + pos: 89.5,8.5 + parent: 2 + - uid: 18589 + components: + - type: Transform + pos: 89.5,-0.5 + parent: 2 + - uid: 18590 + components: + - type: Transform + pos: 89.5,-2.5 + parent: 2 + - uid: 18591 + components: + - type: Transform + pos: 90.5,-4.5 + parent: 2 + - uid: 18592 + components: + - type: Transform + pos: 90.5,-6.5 + parent: 2 + - uid: 18593 + components: + - type: Transform + pos: 87.5,-9.5 + parent: 2 + - uid: 18599 + components: + - type: Transform + pos: 88.5,-7.5 + parent: 2 + - uid: 18600 + components: + - type: Transform + pos: 89.5,-6.5 + parent: 2 + - uid: 18601 + components: + - type: Transform + pos: 87.5,-8.5 + parent: 2 + - uid: 18604 + components: + - type: Transform + pos: 87.5,-2.5 + parent: 2 + - uid: 18605 + components: + - type: Transform + pos: 87.5,0.5 + parent: 2 + - uid: 18606 + components: + - type: Transform + pos: 87.5,1.5 + parent: 2 + - uid: 18607 + components: + - type: Transform + pos: 87.5,5.5 + parent: 2 + - uid: 18608 + components: + - type: Transform + pos: 87.5,6.5 + parent: 2 + - uid: 18609 + components: + - type: Transform + pos: 87.5,9.5 + parent: 2 + - uid: 18610 + components: + - type: Transform + pos: 87.5,10.5 + parent: 2 + - uid: 18611 + components: + - type: Transform + pos: 87.5,14.5 + parent: 2 + - uid: 18785 + components: + - type: Transform + pos: 79.5,47.5 + parent: 2 + - uid: 18786 + components: + - type: Transform + pos: 80.5,47.5 + parent: 2 + - uid: 18787 + components: + - type: Transform + pos: 81.5,47.5 + parent: 2 + - uid: 18790 + components: + - type: Transform + pos: 72.5,48.5 + parent: 2 + - uid: 18791 + components: + - type: Transform + pos: 72.5,49.5 + parent: 2 + - uid: 18792 + components: + - type: Transform + pos: 75.5,52.5 + parent: 2 + - uid: 18793 + components: + - type: Transform + pos: 75.5,51.5 + parent: 2 + - uid: 18835 + components: + - type: Transform + pos: 75.5,54.5 + parent: 2 + - uid: 18836 + components: + - type: Transform + pos: 75.5,55.5 + parent: 2 + - uid: 18837 + components: + - type: Transform + pos: 75.5,56.5 + parent: 2 + - uid: 18838 + components: + - type: Transform + pos: 75.5,57.5 + parent: 2 + - uid: 18849 + components: + - type: Transform + pos: 87.5,21.5 + parent: 2 + - uid: 18850 + components: + - type: Transform + pos: 87.5,20.5 + parent: 2 + - uid: 18851 + components: + - type: Transform + pos: 87.5,19.5 + parent: 2 + - uid: 18852 + components: + - type: Transform + pos: 87.5,18.5 + parent: 2 + - uid: 18853 + components: + - type: Transform + pos: 87.5,17.5 + parent: 2 + - uid: 18854 + components: + - type: Transform + pos: 87.5,16.5 + parent: 2 + - uid: 18855 + components: + - type: Transform + pos: 87.5,15.5 + parent: 2 + - uid: 18856 + components: + - type: Transform + pos: 86.5,20.5 + parent: 2 + - uid: 18857 + components: + - type: Transform + pos: 85.5,20.5 + parent: 2 + - uid: 18858 + components: + - type: Transform + pos: 85.5,21.5 + parent: 2 + - uid: 18859 + components: + - type: Transform + pos: 85.5,22.5 + parent: 2 + - uid: 18860 + components: + - type: Transform + pos: 85.5,23.5 + parent: 2 + - uid: 18861 + components: + - type: Transform + pos: 85.5,24.5 + parent: 2 + - uid: 18862 + components: + - type: Transform + pos: 85.5,25.5 + parent: 2 + - uid: 18863 + components: + - type: Transform + pos: 85.5,26.5 + parent: 2 + - uid: 18864 + components: + - type: Transform + pos: 85.5,27.5 + parent: 2 + - uid: 18865 + components: + - type: Transform + pos: 85.5,28.5 + parent: 2 + - uid: 18866 + components: + - type: Transform + pos: 84.5,28.5 + parent: 2 + - uid: 18867 + components: + - type: Transform + pos: 86.5,28.5 + parent: 2 + - uid: 18868 + components: + - type: Transform + pos: 87.5,28.5 + parent: 2 + - uid: 18869 + components: + - type: Transform + pos: 88.5,28.5 + parent: 2 + - uid: 18870 + components: + - type: Transform + pos: 88.5,29.5 + parent: 2 + - uid: 18871 + components: + - type: Transform + pos: 89.5,29.5 + parent: 2 + - uid: 18872 + components: + - type: Transform + pos: 89.5,30.5 + parent: 2 + - uid: 18873 + components: + - type: Transform + pos: 89.5,31.5 + parent: 2 + - uid: 18874 + components: + - type: Transform + pos: 89.5,32.5 + parent: 2 + - uid: 18875 + components: + - type: Transform + pos: 89.5,33.5 + parent: 2 + - uid: 18876 + components: + - type: Transform + pos: 89.5,34.5 + parent: 2 + - uid: 18877 + components: + - type: Transform + pos: 89.5,35.5 + parent: 2 + - uid: 18878 + components: + - type: Transform + pos: 89.5,36.5 + parent: 2 + - uid: 18879 + components: + - type: Transform + pos: 89.5,37.5 + parent: 2 + - uid: 18880 + components: + - type: Transform + pos: 89.5,38.5 + parent: 2 + - uid: 18881 + components: + - type: Transform + pos: 89.5,39.5 + parent: 2 + - uid: 18882 + components: + - type: Transform + pos: 88.5,39.5 + parent: 2 + - uid: 18883 + components: + - type: Transform + pos: 88.5,40.5 + parent: 2 + - uid: 18884 + components: + - type: Transform + pos: 87.5,40.5 + parent: 2 + - uid: 18885 + components: + - type: Transform + pos: 86.5,40.5 + parent: 2 + - uid: 18886 + components: + - type: Transform + pos: 85.5,40.5 + parent: 2 + - uid: 18887 + components: + - type: Transform + pos: 84.5,40.5 + parent: 2 + - uid: 18888 + components: + - type: Transform + pos: 85.5,41.5 + parent: 2 + - uid: 18889 + components: + - type: Transform + pos: 85.5,42.5 + parent: 2 + - uid: 18890 + components: + - type: Transform + pos: 85.5,43.5 + parent: 2 + - uid: 18891 + components: + - type: Transform + pos: 85.5,44.5 + parent: 2 + - uid: 18892 + components: + - type: Transform + pos: 85.5,45.5 + parent: 2 + - uid: 18893 + components: + - type: Transform + pos: 85.5,46.5 + parent: 2 + - uid: 18894 + components: + - type: Transform + pos: 85.5,47.5 + parent: 2 + - uid: 19540 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -36.5,76.5 + parent: 2 + - uid: 19541 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -36.5,77.5 + parent: 2 + - uid: 19542 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -35.5,77.5 + parent: 2 + - uid: 19543 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -36.5,74.5 + parent: 2 + - uid: 19544 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -35.5,78.5 + parent: 2 + - uid: 19545 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -34.5,78.5 + parent: 2 + - uid: 19546 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -34.5,79.5 + parent: 2 + - uid: 19547 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -33.5,79.5 + parent: 2 + - uid: 19548 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -32.5,79.5 + parent: 2 + - uid: 19549 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -31.5,79.5 + parent: 2 + - uid: 19550 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -30.5,79.5 + parent: 2 + - uid: 19551 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -29.5,79.5 + parent: 2 + - uid: 19552 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -28.5,79.5 + parent: 2 + - uid: 19553 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -28.5,78.5 + parent: 2 + - uid: 19554 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -27.5,78.5 + parent: 2 + - uid: 19555 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -27.5,77.5 + parent: 2 + - uid: 19556 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -26.5,77.5 + parent: 2 +- proto: Chair + entities: + - uid: 6797 + components: + - type: Transform + pos: 9.5,17.5 + parent: 2 + - uid: 6798 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 12.5,15.5 + parent: 2 + - uid: 6799 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -7.5,58.5 + parent: 2 + - uid: 6800 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -9.5,58.5 + parent: 2 + - uid: 6801 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -11.5,67.5 + parent: 2 + - uid: 6802 + components: + - type: Transform + pos: 53.5,27.5 + parent: 2 + - uid: 6803 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 56.5,24.5 + parent: 2 + - uid: 6804 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 56.5,25.5 + parent: 2 + - uid: 6805 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 56.5,26.5 + parent: 2 + - uid: 6806 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -29.5,53.5 + parent: 2 + - uid: 6807 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -28.5,54.5 + parent: 2 + - uid: 6808 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -28.5,55.5 + parent: 2 + - uid: 6809 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -32.5,52.5 + parent: 2 + - uid: 6810 + components: + - type: Transform + pos: -31.5,64.5 + parent: 2 + - uid: 6811 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -28.5,68.5 + parent: 2 + - uid: 6812 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -27.5,67.5 + parent: 2 + - uid: 6813 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 9.5,59.5 + parent: 2 + - uid: 6814 + components: + - type: Transform + pos: 45.5,37.5 + parent: 2 + - uid: 6815 + components: + - type: Transform + pos: 53.5,38.5 + parent: 2 + - uid: 6816 + components: + - type: Transform + pos: 54.5,38.5 + parent: 2 + - uid: 6817 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 35.5,44.5 + parent: 2 + - uid: 6818 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 38.5,38.5 + parent: 2 + - uid: 6819 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 40.5,37.5 + parent: 2 + - uid: 6820 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 39.5,37.5 + parent: 2 + - uid: 6821 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 41.5,38.5 + parent: 2 + - uid: 6822 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 37.5,37.5 + parent: 2 + - uid: 6823 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 35.5,37.5 + parent: 2 + - uid: 6824 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 28.5,31.5 + parent: 2 + - uid: 6825 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 29.5,31.5 + parent: 2 + - uid: 6826 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 26.5,31.5 + parent: 2 + - uid: 6827 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 25.5,31.5 + parent: 2 + - uid: 6828 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 4.5,41.5 + parent: 2 + - uid: 6829 + components: + - type: Transform + pos: 12.5,43.5 + parent: 2 + - uid: 6830 + components: + - type: Transform + pos: 11.5,43.5 + parent: 2 + - uid: 6831 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 66.5,59.5 + parent: 2 + - uid: 6832 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 66.5,58.5 + parent: 2 + - uid: 6833 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 66.5,57.5 + parent: 2 + - uid: 6834 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 68.5,59.5 + parent: 2 + - uid: 6835 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 68.5,58.5 + parent: 2 + - uid: 6836 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 68.5,57.5 + parent: 2 + - uid: 6837 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 71.5,57.5 + parent: 2 + - uid: 6838 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 71.5,56.5 + parent: 2 + - uid: 6839 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 71.5,55.5 + parent: 2 + - uid: 6840 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 69.5,54.5 + parent: 2 + - uid: 6841 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 68.5,54.5 + parent: 2 + - uid: 6842 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 68.5,39.5 + parent: 2 + - uid: 6843 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 68.5,38.5 + parent: 2 + - uid: 6844 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 68.5,37.5 + parent: 2 + - uid: 6845 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 59.5,62.5 + parent: 2 + - uid: 6846 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 59.5,61.5 + parent: 2 + - uid: 6847 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 59.5,60.5 + parent: 2 + - uid: 6848 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 59.5,59.5 + parent: 2 + - uid: 6849 + components: + - type: Transform + pos: 70.5,4.5 + parent: 2 + - uid: 6850 + components: + - type: Transform + pos: 70.5,4.5 + parent: 2 + - uid: 6851 + components: + - type: Transform + pos: 69.5,4.5 + parent: 2 + - uid: 6852 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 76.5,3.5 + parent: 2 + - uid: 6853 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 76.5,2.5 + parent: 2 + - uid: 6854 + components: + - type: Transform + pos: 27.5,63.5 + parent: 2 + - uid: 6855 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 44.5,65.5 + parent: 2 + - uid: 6856 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 44.5,64.5 + parent: 2 + - uid: 6857 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 45.5,63.5 + parent: 2 + - uid: 12628 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -33.5,74.5 + parent: 2 + - uid: 19479 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -29.5,68.5 + parent: 2 + - uid: 19480 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -29.5,67.5 + parent: 2 + - uid: 19481 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -32.5,67.5 + parent: 2 + - uid: 19482 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -30.5,69.5 + parent: 2 + - uid: 19483 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -33.5,68.5 + parent: 2 + - uid: 19485 + components: + - type: Transform + pos: -31.5,69.5 + parent: 2 + - uid: 19486 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -30.5,66.5 + parent: 2 + - uid: 19521 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -25.5,73.5 + parent: 2 + - uid: 19522 + components: + - type: Transform + pos: -24.5,74.5 + parent: 2 + - uid: 19523 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -23.5,74.5 + parent: 2 + - uid: 19524 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -22.5,74.5 + parent: 2 +- proto: ChairGreyscale + entities: + - uid: 6858 + components: + - type: Transform + pos: -27.5,61.5 + parent: 2 + - uid: 6859 + components: + - type: Transform + pos: -31.5,61.5 + parent: 2 +- proto: ChairOfficeDark + entities: + - uid: 6860 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 4.5,28.5 + parent: 2 + - uid: 6861 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 7.5,13.5 + parent: 2 + - uid: 6862 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 11.5,13.5 + parent: 2 + - uid: 6863 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -14.5,6.5 + parent: 2 + - uid: 6864 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -4.5,14.5 + parent: 2 + - uid: 6865 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -7.5,20.5 + parent: 2 + - uid: 6866 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -10.5,28.5 + parent: 2 + - uid: 6867 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -2.5,35.5 + parent: 2 + - uid: 6868 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -11.5,45.5 + parent: 2 + - uid: 6869 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -26.5,44.5 + parent: 2 + - uid: 6870 + components: + - type: Transform + pos: -0.5,15.5 + parent: 2 + - uid: 6871 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -3.5,29.5 + parent: 2 + - uid: 6872 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -14.5,64.5 + parent: 2 + - uid: 6873 + components: + - type: Transform + pos: -15.5,60.5 + parent: 2 + - uid: 6874 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -23.5,52.5 + parent: 2 + - uid: 6875 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -23.5,54.5 + parent: 2 + - uid: 6876 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -24.5,64.5 + parent: 2 + - uid: 6877 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 45.5,13.5 + parent: 2 + - uid: 6878 + components: + - type: Transform + pos: 74.54003,40.548847 + parent: 2 + - uid: 6879 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 52.5,15.5 + parent: 2 + - uid: 6880 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 55.5,22.5 + parent: 2 + - uid: 6881 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 1.5,59.5 + parent: 2 + - uid: 6882 + components: + - type: Transform + pos: 17.5,55.5 + parent: 2 + - uid: 6883 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 26.5,28.5 + parent: 2 + - uid: 6884 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 29.5,28.5 + parent: 2 + - uid: 6885 + components: + - type: Transform + pos: 26.5,36.5 + parent: 2 + - uid: 6886 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 28.5,44.5 + parent: 2 + - uid: 6887 + components: + - type: Transform + pos: 19.5,38.5 + parent: 2 + - uid: 6888 + components: + - type: Transform + pos: 13.5,24.5 + parent: 2 + - uid: 6889 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 12.5,28.5 + parent: 2 + - uid: 6890 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 4.5,44.5 + parent: 2 + - uid: 6891 + components: + - type: Transform + pos: 75.5,37.5 + parent: 2 + - uid: 6892 + components: + - type: Transform + pos: 77.5,37.5 + parent: 2 + - uid: 6893 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 85.5,37.5 + parent: 2 + - uid: 6894 + components: + - type: Transform + pos: 85.5,31.5 + parent: 2 + - uid: 6895 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 61.5,57.5 + parent: 2 + - uid: 6897 + components: + - type: Transform + pos: 72.5,13.5 + parent: 2 + - uid: 6898 + components: + - type: Transform + pos: 72.5,14.5 + parent: 2 + - uid: 6899 + components: + - type: Transform + pos: 71.5,39.5 + parent: 2 + - uid: 6900 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -5.5,6.5 + parent: 2 + - uid: 6901 + components: + - type: Transform + pos: -6.5,4.5 + parent: 2 + - uid: 6902 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 36.5,-1.5 + parent: 2 + - uid: 13116 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 71.5,28.5 + parent: 2 +- proto: ChairOfficeLight + entities: + - uid: 6903 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -4.5,25.5 + parent: 2 + - uid: 6904 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 28.5,2.5 + parent: 2 +- proto: ChairWood + entities: + - uid: 6905 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 29.5,13.5 + parent: 2 + - uid: 6906 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 29.5,16.5 + parent: 2 + - uid: 6907 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 18.5,14.5 + parent: 2 + - uid: 6908 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 20.5,17.5 + parent: 2 + - uid: 6909 + components: + - type: Transform + pos: 23.5,14.5 + parent: 2 + - uid: 6910 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 22.5,13.5 + parent: 2 + - uid: 6911 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 22.5,11.5 + parent: 2 + - uid: 6912 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 24.5,10.5 + parent: 2 + - uid: 6913 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 25.5,11.5 + parent: 2 + - uid: 6914 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 25.5,13.5 + parent: 2 + - uid: 6915 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 7.5,73.5 + parent: 2 + - uid: 6916 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 9.5,79.5 + parent: 2 + - uid: 6917 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 7.5,79.5 + parent: 2 + - uid: 6918 + components: + - type: Transform + pos: 9.5,61.5 + parent: 2 + - uid: 6919 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 13.5,59.5 + parent: 2 + - uid: 6920 + components: + - type: Transform + pos: 14.5,57.5 + parent: 2 + - uid: 6921 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 14.5,55.5 + parent: 2 + - uid: 6922 + components: + - type: Transform + pos: 80.5,51.5 + parent: 2 + - uid: 6923 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 80.5,49.5 + parent: 2 + - uid: 6924 + components: + - type: Transform + pos: 62.5,51.5 + parent: 2 + - uid: 6925 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 61.5,50.5 + parent: 2 + - uid: 6926 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 61.5,54.5 + parent: 2 + - uid: 6927 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 60.5,53.5 + parent: 2 +- proto: chem_master + entities: + - uid: 6928 + components: + - type: Transform + pos: 47.5,45.5 + parent: 2 + - uid: 6929 + components: + - type: Transform + pos: 59.5,42.5 + parent: 2 + - uid: 6930 + components: + - type: Transform + pos: 14.5,24.5 + parent: 2 + - uid: 6931 + components: + - type: Transform + pos: 13.5,27.5 + parent: 2 +- proto: ChemDispenser + entities: + - uid: 6932 + components: + - type: Transform + pos: 12.5,24.5 + parent: 2 + - uid: 6933 + components: + - type: Transform + pos: 11.5,28.5 + parent: 2 +- proto: ChemicalPayload + entities: + - uid: 6934 + components: + - type: Transform + pos: 41.33658,7.402665 + parent: 2 + - uid: 6935 + components: + - type: Transform + pos: 41.551777,7.3668227 + parent: 2 + - uid: 6936 + components: + - type: Transform + pos: 41.76698,7.3847437 + parent: 2 + - uid: 6937 + components: + - type: Transform + pos: 44.60328,53.38158 + parent: 2 + - uid: 6938 + components: + - type: Transform + pos: 44.28048,53.297947 + parent: 2 + - uid: 6939 + components: + - type: Transform + pos: 44.66306,53.656372 + parent: 2 +- proto: ChemistryHotplate + entities: + - uid: 6940 + components: + - type: Transform + pos: 43.5,39.5 + parent: 2 + - uid: 6941 + components: + - type: Transform + pos: 13.5,28.5 + parent: 2 +- proto: CigarGoldCase + entities: + - uid: 6942 + components: + - type: Transform + pos: 31.374626,53.571064 + parent: 2 + - uid: 6943 + components: + - type: Transform + pos: 84.33954,33.767384 + parent: 2 + - type: Physics + angularDamping: 0 + linearDamping: 0 +- proto: CircuitImprinter + entities: + - uid: 6944 + components: + - type: Transform + pos: -6.5,34.5 + parent: 2 + - uid: 6945 + components: + - type: Transform + pos: 55.5,20.5 + parent: 2 + - uid: 6946 + components: + - type: Transform + pos: 46.5,25.5 + parent: 2 +- proto: CleanerDispenser + entities: + - uid: 6947 + components: + - type: Transform + pos: 43.5,55.5 + parent: 2 +- proto: ClosetBombFilled + entities: + - uid: 6949 + components: + - type: Transform + pos: -25.5,71.5 + parent: 2 +- proto: ClosetChefFilled + entities: + - uid: 6950 + components: + - type: Transform + pos: 55.5,46.5 + parent: 2 + - uid: 6951 + components: + - type: Transform + pos: 57.5,42.5 + parent: 2 +- proto: ClosetEmergencyFilledRandom + entities: + - uid: 5080 + components: + - type: Transform + pos: -11.5,70.5 + parent: 2 + - uid: 6952 + components: + - type: Transform + pos: 36.5,19.5 + parent: 2 + - uid: 6953 + components: + - type: Transform + pos: 3.5,17.5 + parent: 2 + - uid: 6954 + components: + - type: Transform + pos: 4.5,17.5 + parent: 2 + - uid: 6955 + components: + - type: Transform + pos: 20.5,4.5 + parent: 2 + - uid: 6956 + components: + - type: Transform + pos: -39.5,56.5 + parent: 2 + - uid: 6957 + components: + - type: Transform + pos: 52.5,29.5 + parent: 2 + - uid: 6958 + components: + - type: Transform + pos: 0.5,78.5 + parent: 2 + - uid: 6959 + components: + - type: Transform + pos: 11.5,75.5 + parent: 2 + - uid: 6960 + components: + - type: Transform + pos: 14.5,78.5 + parent: 2 + - uid: 6961 + components: + - type: Transform + pos: 77.5,59.5 + parent: 2 + - uid: 6962 + components: + - type: Transform + pos: 66.5,62.5 + parent: 2 + - uid: 6963 + components: + - type: Transform + pos: 64.5,62.5 + parent: 2 + - uid: 6964 + components: + - type: Transform + pos: 68.5,46.5 + parent: 2 + - uid: 6965 + components: + - type: Transform + pos: 75.5,35.5 + parent: 2 + - uid: 6966 + components: + - type: Transform + pos: 77.5,35.5 + parent: 2 + - uid: 6967 + components: + - type: Transform + pos: 67.5,5.5 + parent: 2 + - uid: 6968 + components: + - type: Transform + pos: 72.5,-1.5 + parent: 2 + - uid: 6969 + components: + - type: Transform + pos: 63.5,6.5 + parent: 2 + - uid: 6970 + components: + - type: Transform + pos: 62.5,11.5 + parent: 2 + - uid: 6971 + components: + - type: Transform + pos: 76.5,15.5 + parent: 2 + - uid: 6972 + components: + - type: Transform + pos: 59.5,12.5 + parent: 2 + - uid: 6973 + components: + - type: Transform + pos: 45.5,8.5 + parent: 2 + - uid: 6974 + components: + - type: Transform + pos: 14.5,15.5 + parent: 2 + - uid: 6975 + components: + - type: Transform + pos: -21.5,15.5 + parent: 2 + - uid: 6976 + components: + - type: Transform + pos: 18.5,69.5 + parent: 2 + - uid: 6977 + components: + - type: Transform + pos: 62.5,46.5 + parent: 2 + - uid: 6978 + components: + - type: Transform + pos: 58.5,49.5 + parent: 2 + - uid: 6979 + components: + - type: Transform + pos: 47.5,55.5 + parent: 2 + - uid: 6980 + components: + - type: Transform + pos: 47.5,53.5 + parent: 2 + - uid: 14312 + components: + - type: Transform + pos: 57.5,58.5 + parent: 2 + - uid: 14781 + components: + - type: Transform + pos: -5.5,70.5 + parent: 2 +- proto: ClosetEmergencyN2FilledRandom + entities: + - uid: 6981 + components: + - type: Transform + pos: 76.5,59.5 + parent: 2 + - uid: 12531 + components: + - type: Transform + pos: -11.5,70.5 + parent: 2 + - uid: 14313 + components: + - type: Transform + pos: 57.5,56.5 + parent: 2 + - uid: 14531 + components: + - type: Transform + pos: -5.5,70.5 + parent: 2 +- proto: ClosetFireFilled + entities: + - uid: 6982 + components: + - type: Transform + pos: 37.5,19.5 + parent: 2 + - uid: 6983 + components: + - type: Transform + pos: -39.5,57.5 + parent: 2 + - uid: 6984 + components: + - type: Transform + pos: -3.5,40.5 + parent: 2 + - uid: 6985 + components: + - type: Transform + pos: -7.5,62.5 + parent: 2 + - uid: 6986 + components: + - type: Transform + pos: 50.5,29.5 + parent: 2 + - uid: 6987 + components: + - type: Transform + pos: 51.5,29.5 + parent: 2 + - uid: 6988 + components: + - type: Transform + pos: 8.5,43.5 + parent: 2 + - uid: 6989 + components: + - type: Transform + pos: 68.5,42.5 + parent: 2 + - uid: 6990 + components: + - type: Transform + pos: 75.5,33.5 + parent: 2 + - uid: 6991 + components: + - type: Transform + pos: 77.5,33.5 + parent: 2 + - uid: 6992 + components: + - type: Transform + pos: 67.5,6.5 + parent: 2 + - uid: 6993 + components: + - type: Transform + pos: 72.5,-0.5 + parent: 2 + - uid: 6994 + components: + - type: Transform + pos: 63.5,11.5 + parent: 2 + - uid: 6995 + components: + - type: Transform + pos: 58.5,12.5 + parent: 2 + - uid: 6996 + components: + - type: Transform + pos: 45.5,9.5 + parent: 2 + - uid: 6997 + components: + - type: Transform + pos: 14.5,14.5 + parent: 2 + - uid: 6998 + components: + - type: Transform + pos: -20.5,15.5 + parent: 2 + - uid: 6999 + components: + - type: Transform + pos: 18.5,68.5 + parent: 2 + - uid: 7000 + components: + - type: Transform + pos: 61.5,46.5 + parent: 2 + - uid: 7001 + components: + - type: Transform + pos: 23.5,61.5 + parent: 2 + - uid: 7002 + components: + - type: Transform + pos: 47.5,54.5 + parent: 2 + - uid: 14121 + components: + - type: Transform + pos: 55.5,58.5 + parent: 2 + - uid: 18754 + components: + - type: Transform + pos: -24.5,14.5 + parent: 2 + - uid: 18755 + components: + - type: Transform + pos: -24.5,15.5 + parent: 2 +- proto: ClosetJanitorBombFilled + entities: + - uid: 7003 + components: + - type: Transform + pos: 42.5,52.5 + parent: 2 +- proto: ClosetJanitorFilled + entities: + - uid: 7004 + components: + - type: Transform + pos: 41.5,54.5 + parent: 2 +- proto: ClosetL3Filled + entities: + - uid: 7005 + components: + - type: Transform + pos: 29.5,63.5 + parent: 2 +- proto: ClosetL3JanitorFilled + entities: + - uid: 7006 + components: + - type: Transform + pos: 42.5,51.5 + parent: 2 +- proto: ClosetL3SecurityFilled + entities: + - uid: 7007 + components: + - type: Transform + pos: -22.5,71.5 + parent: 2 + - uid: 7008 + components: + - type: Transform + pos: 25.5,39.5 + parent: 2 +- proto: ClosetMaintenance + entities: + - uid: 7009 + components: + - type: Transform + pos: 20.5,8.5 + parent: 2 + - uid: 7010 + components: + - type: Transform + pos: 21.5,8.5 + parent: 2 + - uid: 7110 + components: + - type: Transform + pos: 78.5,50.5 + parent: 2 +- proto: ClosetMaintenanceFilledRandom + entities: + - uid: 7011 + components: + - type: Transform + pos: 35.5,19.5 + parent: 2 + - uid: 7012 + components: + - type: Transform + pos: 46.5,9.5 + parent: 2 + - uid: 7013 + components: + - type: Transform + pos: 41.5,65.5 + parent: 2 + - uid: 7014 + components: + - type: Transform + pos: 41.5,66.5 + parent: 2 + - uid: 7015 + components: + - type: Transform + pos: 37.5,64.5 + parent: 2 + - uid: 7016 + components: + - type: Transform + pos: 37.5,66.5 + parent: 2 + - uid: 7017 + components: + - type: Transform + pos: 37.5,65.5 + parent: 2 + - uid: 7018 + components: + - type: Transform + pos: 41.5,64.5 + parent: 2 + - uid: 7019 + components: + - type: Transform + pos: 68.5,51.5 + parent: 2 + - uid: 7020 + components: + - type: Transform + pos: 72.5,48.5 + parent: 2 + - uid: 7022 + components: + - type: Transform + pos: 80.5,53.5 + parent: 2 + - uid: 7023 + components: + - type: Transform + pos: 79.5,57.5 + parent: 2 + - uid: 7024 + components: + - type: Transform + pos: 76.5,17.5 + parent: 2 + - uid: 7025 + components: + - type: Transform + pos: 60.5,12.5 + parent: 2 + - uid: 7026 + components: + - type: Transform + pos: 42.5,5.5 + parent: 2 + - uid: 7027 + components: + - type: Transform + pos: 28.5,6.5 + parent: 2 + - uid: 7028 + components: + - type: Transform + pos: 20.5,5.5 + parent: 2 + - uid: 7029 + components: + - type: Transform + pos: 9.5,3.5 + parent: 2 + - uid: 7030 + components: + - type: Transform + pos: 11.5,8.5 + parent: 2 + - uid: 7031 + components: + - type: Transform + pos: -18.5,14.5 + parent: 2 + - uid: 7032 + components: + - type: Transform + pos: -17.5,7.5 + parent: 2 + - uid: 7033 + components: + - type: Transform + pos: -9.5,17.5 + parent: 2 + - uid: 7034 + components: + - type: Transform + pos: 8.5,63.5 + parent: 2 + - uid: 7035 + components: + - type: Transform + pos: 16.5,67.5 + parent: 2 + - uid: 7036 + components: + - type: Transform + pos: 15.5,73.5 + parent: 2 + - uid: 7037 + components: + - type: Transform + pos: 25.5,59.5 + parent: 2 + - uid: 7038 + components: + - type: Transform + pos: 59.5,46.5 + parent: 2 + - uid: 7039 + components: + - type: Transform + pos: 58.5,50.5 + parent: 2 + - uid: 7040 + components: + - type: Transform + pos: 47.5,57.5 + parent: 2 + - uid: 7041 + components: + - type: Transform + pos: 44.5,47.5 + parent: 2 + - uid: 7042 + components: + - type: Transform + pos: 37.5,62.5 + parent: 2 + - uid: 7043 + components: + - type: Transform + pos: 36.5,60.5 + parent: 2 + - uid: 7044 + components: + - type: Transform + pos: 55.5,56.5 + parent: 2 + - uid: 7045 + components: + - type: Transform + pos: 44.5,23.5 + parent: 2 +- proto: ClosetRadiationSuitFilled + entities: + - uid: 7046 + components: + - type: Transform + pos: -2.5,38.5 + parent: 2 + - uid: 7047 + components: + - type: Transform + pos: -33.5,23.5 + parent: 2 + - uid: 7048 + components: + - type: Transform + pos: -33.5,24.5 + parent: 2 + - uid: 7049 + components: + - type: Transform + pos: 6.5,37.5 + parent: 2 + - uid: 7050 + components: + - type: Transform + pos: -11.5,31.5 + parent: 2 + - uid: 7051 + components: + - type: Transform + pos: -11.5,31.5 + parent: 2 + - uid: 7052 + components: + - type: Transform + pos: -11.5,37.5 + parent: 2 + - uid: 7053 + components: + - type: Transform + pos: -11.5,37.5 + parent: 2 + - uid: 18670 + components: + - type: Transform + pos: 38.5,15.5 + parent: 2 + - uid: 18671 + components: + - type: Transform + pos: 38.5,15.5 + parent: 2 +- proto: ClosetSteelBase + entities: + - uid: 7054 + components: + - type: Transform + pos: -9.5,60.5 + parent: 2 + - uid: 7055 + components: + - type: Transform + pos: -8.5,60.5 + parent: 2 +- proto: ClosetWallMaintenanceFilledRandom + entities: + - uid: 7056 + components: + - type: Transform + pos: 74.5,55.5 + parent: 2 +- proto: ClothingBackpackClown + entities: + - uid: 745 + components: + - type: Transform + parent: 742 + - type: Physics + angularDamping: 0 + linearDamping: 0 + canCollide: False + - type: InsideEntityStorage + - uid: 7057 + components: + - type: Transform + pos: 40.59282,43.67842 + parent: 2 +- proto: ClothingBackpackDuffelClown + entities: + - uid: 746 + components: + - type: Transform + parent: 742 + - type: Physics + angularDamping: 0 + linearDamping: 0 + canCollide: False + - type: InsideEntityStorage +- proto: ClothingBackpackDuffelMime + entities: + - uid: 774 + components: + - type: Transform + parent: 772 + - type: Physics + angularDamping: 0 + linearDamping: 0 + canCollide: False + - type: GroupExamine + group: + - hoverMessage: "" + contextText: verb-examine-group-other + icon: /Textures/Interface/examine-star.png + components: + - Armor + - ClothingSpeedModifier + entries: + - message: >- + Isso concede as seguintes proteções: + + - Dano de [color=orange]explosão[/color] [color=white]aos conteúdos[/color] reduzido em [color=lightblue]10%[/color]. + priority: 0 + component: Armor + - message: Diminui sua velocidade de corrida em [color=yellow]10%[/color]. + priority: 0 + component: ClothingSpeedModifier + title: null + - type: InsideEntityStorage + - uid: 7058 + components: + - type: Transform + pos: 40.524685,45.87787 + parent: 2 +- proto: ClothingBackpackDuffelSurgeryFilled + entities: + - uid: 7059 + components: + - type: Transform + pos: 59.48093,16.47347 + parent: 2 + - uid: 7060 + components: + - type: Transform + pos: -29.510458,54.469387 + parent: 2 + - uid: 7061 + components: + - type: Transform + pos: -3.5407438,59.420185 + parent: 2 + - uid: 7062 + components: + - type: Transform + pos: 11.418509,39.366848 + parent: 2 + - uid: 7063 + components: + - type: Transform + pos: 11.430464,39.904484 + parent: 2 +- proto: ClothingBackpackERTClown + entities: + - uid: 747 + components: + - type: Transform + parent: 742 + - type: Physics + angularDamping: 0 + linearDamping: 0 + canCollide: False + - type: InsideEntityStorage +- proto: ClothingBackpackMime + entities: + - uid: 775 + components: + - type: Transform + parent: 772 + - type: Physics + angularDamping: 0 + linearDamping: 0 + canCollide: False + - type: InsideEntityStorage +- proto: ClothingBackpackSatchelClown + entities: + - uid: 748 + components: + - type: Transform + parent: 742 + - type: Physics + angularDamping: 0 + linearDamping: 0 + canCollide: False + - type: InsideEntityStorage +- proto: ClothingBackpackSatchelMime + entities: + - uid: 776 + components: + - type: Transform + parent: 772 + - type: Physics + angularDamping: 0 + linearDamping: 0 + canCollide: False + - type: InsideEntityStorage +- proto: ClothingBeltMantis + entities: + - uid: 480 + components: + - type: Transform + pos: 34.256275,5.674018 + parent: 2 +- proto: ClothingBeltUtilityEngineering + entities: + - uid: 7064 + components: + - type: Transform + pos: -4.599819,40.670532 + parent: 2 + - uid: 7065 + components: + - type: Transform + pos: -4.4173317,40.54428 + parent: 2 + - uid: 7066 + components: + - type: Transform + pos: 78.430534,42.512993 + parent: 2 +- proto: ClothingBeltUtilityFilled + entities: + - uid: 7067 + components: + - type: Transform + pos: -21.469843,66.69192 + parent: 2 + - uid: 7068 + components: + - type: Transform + pos: 55.388428,17.467995 + parent: 2 + - uid: 7069 + components: + - type: Transform + pos: 55.603626,17.665127 + parent: 2 + - uid: 7070 + components: + - type: Transform + pos: 59.46577,28.456217 + parent: 2 + - uid: 7071 + components: + - type: Transform + pos: 59.680973,28.63543 + parent: 2 +- proto: ClothingEyesGlassesSunglasses + entities: + - uid: 7072 + components: + - type: Transform + pos: -17.443285,67.75773 + parent: 2 + - uid: 7073 + components: + - type: Transform + pos: 0.41975856,59.424564 + parent: 2 +- proto: ClothingHandsGlovesColorBlack + entities: + - uid: 7074 + components: + - type: Transform + pos: 29.53992,62.564426 + parent: 2 +- proto: ClothingHandsGlovesColorYellow + entities: + - uid: 7075 + components: + - type: Transform + pos: -10.3801365,21.491434 + parent: 2 + - uid: 7076 + components: + - type: Transform + pos: -5.4825945,40.568024 + parent: 2 + - uid: 7077 + components: + - type: Transform + pos: 60.549847,31.581648 + parent: 2 +- proto: ClothingHandsGlovesLatex + entities: + - uid: 7078 + components: + - type: Transform + pos: 58.572304,15.51898 + parent: 2 +- proto: ClothingHandsTacticalMaidGloves + entities: + - uid: 7079 + components: + - type: Transform + pos: 39.8144,66.24514 + parent: 2 +- proto: ClothingHeadBandGold + entities: + - uid: 7080 + components: + - type: Transform + pos: 31.58519,54.286488 + parent: 2 +- proto: ClothingHeadCourier + entities: + - uid: 7081 + components: + - type: Transform + pos: -5.3823576,3.5615594 + parent: 2 +- proto: ClothingHeadCourierFlipped + entities: + - uid: 7082 + components: + - type: Transform + pos: -6.695648,3.798901 + parent: 2 +- proto: ClothingHeadHatCargosoftFlipped + entities: + - uid: 7083 + components: + - type: Transform + pos: 0.58671916,12.564867 + parent: 2 +- proto: ClothingHeadHatFezMantis + entities: + - uid: 477 + components: + - type: Transform + pos: 34.46197,5.7214866 + parent: 2 +- proto: ClothingHeadHatMimesoft + entities: + - uid: 777 + components: + - type: Transform + parent: 772 + - type: Physics + angularDamping: 0 + linearDamping: 0 + canCollide: False + - type: InsideEntityStorage +- proto: ClothingHeadHatMimesoftFlipped + entities: + - uid: 778 + components: + - type: Transform + parent: 772 + - type: Physics + angularDamping: 0 + linearDamping: 0 + canCollide: False + - type: InsideEntityStorage +- proto: ClothingHeadHatPaper + entities: + - uid: 7084 + components: + - type: Transform + pos: 27.29713,29.40831 + parent: 2 +- proto: ClothingHeadHatTacticalMaidHeadband + entities: + - uid: 7085 + components: + - type: Transform + pos: 39.21662,66.71109 + parent: 2 +- proto: ClothingHeadHelmetAtmosFire + entities: + - uid: 7086 + components: + - type: Transform + pos: -10.401194,21.55456 + parent: 2 +- proto: ClothingMaskBreathMedical + entities: + - uid: 7087 + components: + - type: Transform + pos: 41.48497,21.60299 + parent: 2 + - uid: 7088 + components: + - type: Transform + pos: 58.56035,15.51898 + parent: 2 +- proto: ClothingMaskClown + entities: + - uid: 749 + components: + - type: Transform + parent: 742 + - type: Physics + angularDamping: 0 + linearDamping: 0 + canCollide: False + - type: InsideEntityStorage +- proto: ClothingMaskClownBanana + entities: + - uid: 750 + components: + - type: Transform + parent: 742 + - type: Physics + angularDamping: 0 + linearDamping: 0 + canCollide: False + - type: InsideEntityStorage +- proto: ClothingMaskGas + entities: + - uid: 7089 + components: + - type: Transform + pos: -7.6801195,29.392736 + parent: 2 + - uid: 7090 + components: + - type: Transform + pos: -7.5397444,29.49093 + parent: 2 + - uid: 7091 + components: + - type: Transform + pos: -7.371295,29.589127 + parent: 2 +- proto: ClothingMaskGasAtmos + entities: + - uid: 7092 + components: + - type: Transform + pos: -10.422249,21.575602 + parent: 2 + - uid: 7093 + components: + - type: Transform + pos: -11.457145,18.53368 + parent: 2 +- proto: ClothingMaskMime + entities: + - uid: 779 + components: + - type: Transform + parent: 772 + - type: Physics + angularDamping: 0 + linearDamping: 0 + canCollide: False + - type: InsideEntityStorage +- proto: ClothingMaskSadMime + entities: + - uid: 780 + components: + - type: Transform + parent: 772 + - type: Physics + angularDamping: 0 + linearDamping: 0 + canCollide: False + - type: InsideEntityStorage +- proto: ClothingMaskSexyClown + entities: + - uid: 751 + components: + - type: Transform + parent: 742 + - type: Physics + angularDamping: 0 + linearDamping: 0 + canCollide: False + - type: InsideEntityStorage +- proto: ClothingMaskSexyMime + entities: + - uid: 781 + components: + - type: Transform + parent: 772 + - type: Physics + angularDamping: 0 + linearDamping: 0 + canCollide: False + - type: InsideEntityStorage +- proto: ClothingNeckClownmedal + entities: + - uid: 752 + components: + - type: Transform + parent: 742 + - type: Physics + angularDamping: 0 + linearDamping: 0 + canCollide: False + - type: InsideEntityStorage +- proto: ClothingNeckStoleChaplain + entities: + - uid: 7094 + components: + - type: Transform + pos: 14.541786,59.652855 + parent: 2 +- proto: ClothingOuterClownPriest + entities: + - uid: 753 + components: + - type: Transform + parent: 742 + - type: Physics + angularDamping: 0 + linearDamping: 0 + canCollide: False + - type: InsideEntityStorage +- proto: ClothingOuterHardsuitClown + entities: + - uid: 754 + components: + - type: Transform + parent: 742 + - type: Physics + angularDamping: 0 + linearDamping: 0 + canCollide: False + - type: InsideEntityStorage +- proto: ClothingOuterHardsuitMime + entities: + - uid: 782 + components: + - type: Transform + parent: 772 + - type: Physics + angularDamping: 0 + linearDamping: 0 + canCollide: False + - type: InsideEntityStorage +- proto: ClothingOuterSuitAtmosFire + entities: + - uid: 7095 + components: + - type: Transform + pos: -10.401194,21.65977 + parent: 2 +- proto: ClothingOuterSuitRad + entities: + - uid: 7096 + components: + - type: Transform + pos: -11.458471,35.630077 + parent: 2 +- proto: ClothingOuterWinterCoatMantis + entities: + - uid: 4392 + components: + - type: Transform + pos: 32.667603,5.6265497 + parent: 2 +- proto: ClothingOuterWinterMime + entities: + - uid: 783 + components: + - type: Transform + parent: 772 + - type: Physics + angularDamping: 0 + linearDamping: 0 + canCollide: False + - type: InsideEntityStorage +- proto: ClothingOuterWinterMusician + entities: + - uid: 7097 + components: + - type: Transform + pos: 41.26708,39.659565 + parent: 2 +- proto: ClothingShoesBootsMag + entities: + - uid: 7098 + components: + - type: Transform + pos: 74.55618,42.616943 + parent: 2 + - uid: 7099 + components: + - type: Transform + pos: 74.55618,42.616943 + parent: 2 + - uid: 7100 + components: + - type: Transform + pos: 74.626366,45.703087 + parent: 2 + - uid: 7101 + components: + - type: Transform + pos: 74.626366,45.703087 + parent: 2 +- proto: ClothingShoesBootsWinterClown + entities: + - uid: 755 + components: + - type: Transform + parent: 742 + - type: Physics + angularDamping: 0 + linearDamping: 0 + canCollide: False + - type: InsideEntityStorage +- proto: ClothingShoesBootsWinterMime + entities: + - uid: 784 + components: + - type: Transform + parent: 772 + - type: Physics + angularDamping: 0 + linearDamping: 0 + canCollide: False + - type: InsideEntityStorage +- proto: ClothingShoesClown + entities: + - uid: 756 + components: + - type: Transform + parent: 742 + - type: Physics + angularDamping: 0 + linearDamping: 0 + canCollide: False + - type: InsideEntityStorage +- proto: ClothingShoesClownBanana + entities: + - uid: 757 + components: + - type: Transform + parent: 742 + - type: Physics + angularDamping: 0 + linearDamping: 0 + canCollide: False + - type: InsideEntityStorage +- proto: ClothingShoesClownLarge + entities: + - uid: 758 + components: + - type: Transform + parent: 742 + - type: Physics + angularDamping: 0 + linearDamping: 0 + canCollide: False + - type: InsideEntityStorage +- proto: ClothingUniformCourier + entities: + - uid: 7102 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -6.3551354,3.3736491 + parent: 2 +- proto: ClothingUniformJumpskirtJanimaid + entities: + - uid: 7103 + components: + - type: Transform + pos: 44.528,54.73264 + parent: 2 + - uid: 7104 + components: + - type: Transform + pos: 44.51665,54.718178 + parent: 2 +- proto: ClothingUniformJumpskirtMime + entities: + - uid: 785 + components: + - type: Transform + parent: 772 + - type: Physics + angularDamping: 0 + linearDamping: 0 + canCollide: False + - type: InsideEntityStorage +- proto: ClothingUniformJumpskirtTacticalMaid + entities: + - uid: 7105 + components: + - type: Transform + pos: 39.30031,66.41241 + parent: 2 +- proto: ClothingUniformJumpskirtTacticool + entities: + - uid: 7106 + components: + - type: Transform + pos: 39.587246,66.567726 + parent: 2 +- proto: ClothingUniformJumpsuitAtmos + entities: + - uid: 7107 + components: + - type: Transform + pos: -10.3801365,21.533518 + parent: 2 +- proto: ClothingUniformJumpsuitClown + entities: + - uid: 759 + components: + - type: Transform + parent: 742 + - type: Physics + angularDamping: 0 + linearDamping: 0 + canCollide: False + - type: InsideEntityStorage +- proto: ClothingUniformJumpsuitClownBanana + entities: + - uid: 760 + components: + - type: Transform + parent: 742 + - type: Physics + angularDamping: 0 + linearDamping: 0 + canCollide: False + - type: InsideEntityStorage +- proto: ClothingUniformJumpsuitMime + entities: + - uid: 786 + components: + - type: Transform + parent: 772 + - type: Physics + angularDamping: 0 + linearDamping: 0 + canCollide: False + - type: InsideEntityStorage +- proto: ClothingUniformSkirtCourier + entities: + - uid: 7108 + components: + - type: Transform + pos: -6.228554,3.7533958 + parent: 2 +- proto: ClownRecorder + entities: + - uid: 761 + components: + - type: Transform + parent: 742 + - type: Physics + angularDamping: 0 + linearDamping: 0 + canCollide: False + - type: InsideEntityStorage +- proto: ComfyChair + entities: + - uid: 479 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 33.5,4.5 + parent: 2 + - uid: 6896 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 73.5,28.5 + parent: 2 + - uid: 7109 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -19.5,52.5 + parent: 2 + - uid: 7112 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -0.5,59.5 + parent: 2 + - uid: 7113 + components: + - type: Transform + pos: 2.5,52.5 + parent: 2 + - uid: 7114 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 2.5,50.5 + parent: 2 + - uid: 7115 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 17.5,58.5 + parent: 2 + - uid: 7116 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 16.5,51.5 + parent: 2 + - uid: 7117 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 18.5,51.5 + parent: 2 + - uid: 7118 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 20.5,51.5 + parent: 2 + - uid: 7119 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 22.5,51.5 + parent: 2 + - uid: 7120 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 39.5,39.5 + parent: 2 + - uid: 7121 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 17.5,39.5 + parent: 2 + - uid: 7122 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 82.5,34.5 + parent: 2 + - uid: 7123 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 86.5,36.5 + parent: 2 + - uid: 7124 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 86.5,32.5 + parent: 2 + - uid: 7125 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 76.5,31.5 + parent: 2 + - uid: 7126 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 74.5,31.5 + parent: 2 + - uid: 7128 + components: + - type: Transform + pos: 78.5,25.5 + parent: 2 + - uid: 7129 + components: + - type: Transform + pos: 83.5,25.5 + parent: 2 + - uid: 7130 + components: + - type: Transform + pos: 82.5,25.5 + parent: 2 + - uid: 7131 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 81.5,23.5 + parent: 2 + - uid: 7132 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 81.5,24.5 + parent: 2 + - uid: 7133 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 83.5,22.5 + parent: 2 + - uid: 7134 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 82.5,22.5 + parent: 2 + - uid: 7135 + components: + - type: Transform + pos: 63.5,16.5 + parent: 2 + - uid: 7136 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 63.5,13.5 + parent: 2 +- proto: CommsComputerCircuitboard + entities: + - uid: 7137 + components: + - type: Transform + pos: -8.678612,45.68498 + parent: 2 + - uid: 7138 + components: + - type: Transform + pos: 29.689651,54.454826 + parent: 2 +- proto: ComputerAlert + entities: + - uid: 7139 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -34.5,20.5 + parent: 2 + - uid: 7140 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -34.5,16.5 + parent: 2 + - uid: 7141 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -34.5,12.5 + parent: 2 + - uid: 7142 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -34.5,8.5 + parent: 2 + - uid: 7143 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -32.5,6.5 + parent: 2 + - uid: 7144 + components: + - type: Transform + pos: -7.5,21.5 + parent: 2 + - uid: 7145 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -6.5,36.5 + parent: 2 + - uid: 7146 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -30.5,23.5 + parent: 2 + - uid: 7147 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 40.5,6.5 + parent: 2 + - uid: 7148 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 51.5,16.5 + parent: 2 + - uid: 7149 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -28.5,6.5 + parent: 2 + - uid: 7150 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 35.5,-0.5 + parent: 2 +- proto: ComputerAnalysisConsole + entities: + - uid: 7151 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 27.5,2.5 + parent: 2 + - uid: 7152 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 27.5,1.5 + parent: 2 + - uid: 7153 + components: + - type: Transform + pos: 35.5,11.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 12782: + - ArtifactAnalyzerSender: ArtifactAnalyzerReceiver + - uid: 7154 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 53.5,16.5 + parent: 2 +- proto: ComputerBroken + entities: + - uid: 7155 + components: + - type: Transform + pos: -9.5,68.5 + parent: 2 + - uid: 7156 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 40.5,20.5 + parent: 2 +- proto: ComputerCargoBounty + entities: + - uid: 7157 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 0.5,14.5 + parent: 2 + - uid: 7158 + components: + - type: Transform + pos: 2.5,12.5 + parent: 2 + - uid: 7159 + components: + - type: Transform + pos: 86.5,38.5 + parent: 2 +- proto: ComputerCargoOrders + entities: + - uid: 7160 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 8.5,13.5 + parent: 2 + - uid: 7161 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 10.5,12.5 + parent: 2 + - uid: 7162 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 6.5,15.5 + parent: 2 + - uid: 7163 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -0.5,14.5 + parent: 2 + - uid: 7164 + components: + - type: Transform + pos: 85.5,38.5 + parent: 2 +- proto: ComputerCargoShuttle + entities: + - uid: 7165 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 6.5,13.5 + parent: 2 + - uid: 7166 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -1.5,14.5 + parent: 2 +- proto: ComputerCloningConsole + entities: + - uid: 7167 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 84.5,30.5 + parent: 2 + - uid: 7168 + components: + - type: Transform + pos: 22.5,28.5 + parent: 2 +- proto: ComputerComms + entities: + - uid: 7169 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 83.5,34.5 + parent: 2 + - uid: 15256 + components: + - type: Transform + pos: 73.5,29.5 + parent: 2 +- proto: ComputerCrewMonitoring + entities: + - uid: 7171 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 4.5,27.5 + parent: 2 + - uid: 7172 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -19.5,61.5 + parent: 2 + - uid: 7173 + components: + - type: Transform + pos: -1.5,60.5 + parent: 2 + - uid: 7174 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 20.5,37.5 + parent: 2 + - uid: 7175 + components: + - type: Transform + pos: 4.5,45.5 + parent: 2 + - uid: 7176 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 74.5,37.5 + parent: 2 + - uid: 7177 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 87.5,37.5 + parent: 2 + - uid: 7178 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 85.5,30.5 + parent: 2 + - uid: 7179 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 71.5,13.5 + parent: 2 + - uid: 7180 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -3.5,58.5 + parent: 2 +- proto: ComputerCriminalRecords + entities: + - uid: 7181 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 3.5,28.5 + parent: 2 + - uid: 7182 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -3.5,14.5 + parent: 2 + - uid: 7183 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -2.5,29.5 + parent: 2 + - uid: 7184 + components: + - type: Transform + pos: -15.5,62.5 + parent: 2 + - uid: 7185 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -19.5,51.5 + parent: 2 + - uid: 7186 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -25.5,63.5 + parent: 2 + - uid: 7188 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 45.5,12.5 + parent: 2 + - uid: 7189 + components: + - type: Transform + pos: -14.5,52.5 + parent: 2 + - uid: 7190 + components: + - type: Transform + pos: -0.5,60.5 + parent: 2 + - uid: 7191 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 87.5,36.5 + parent: 2 + - uid: 7192 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 62.5,57.5 + parent: 2 + - uid: 7193 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 73.5,14.5 + parent: 2 + - uid: 19539 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -9.5,66.5 + parent: 2 +- proto: ComputerId + entities: + - uid: 7196 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 74.5,39.5 + parent: 2 + - uid: 7197 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 83.5,33.5 + parent: 2 + - uid: 8114 + components: + - type: Transform + pos: 74.5,29.5 + parent: 2 +- proto: ComputerMedicalRecords + entities: + - uid: 7194 + components: + - type: Transform + pos: 29.5,29.5 + parent: 2 + - uid: 7195 + components: + - type: Transform + pos: 26.5,29.5 + parent: 2 + - uid: 7199 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 59.5,17.5 + parent: 2 + - uid: 7200 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -29.5,55.5 + parent: 2 + - uid: 7201 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 16.5,38.5 + parent: 2 + - uid: 7202 + components: + - type: Transform + pos: 5.5,45.5 + parent: 2 + - uid: 7203 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 11.5,37.5 + parent: 2 + - uid: 7204 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 11.5,41.5 + parent: 2 + - uid: 7205 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 86.5,30.5 + parent: 2 +- proto: ComputerPowerMonitoring + entities: + - uid: 7206 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -7.5,19.5 + parent: 2 + - uid: 7207 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -4.5,23.5 + parent: 2 + - uid: 7208 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -11.5,28.5 + parent: 2 + - uid: 7209 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 87.5,32.5 + parent: 2 + - uid: 7210 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 37.5,-1.5 + parent: 2 +- proto: ComputerRadar + entities: + - uid: 7211 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -8.5,19.5 + parent: 2 + - uid: 7212 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -11.5,29.5 + parent: 2 + - uid: 7213 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -27.5,44.5 + parent: 2 + - uid: 7214 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 87.5,31.5 + parent: 2 + - uid: 7215 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -15.5,-11.5 + parent: 2 + - uid: 7216 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 35.5,-1.5 + parent: 2 +- proto: ComputerResearchAndDevelopment + entities: + - uid: 7217 + components: + - type: Transform + pos: 24.5,2.5 + parent: 2 + - uid: 7218 + components: + - type: Transform + pos: 28.5,3.5 + parent: 2 + - uid: 7219 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 53.5,15.5 + parent: 2 + - uid: 7220 + components: + - type: Transform + pos: 56.5,22.5 + parent: 2 + - uid: 7221 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 52.5,20.5 + parent: 2 + - uid: 7222 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 48.5,26.5 + parent: 2 +- proto: ComputerSalvageExpedition + entities: + - uid: 7223 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -15.5,6.5 + parent: 2 + - uid: 7224 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -1.5,17.5 + parent: 2 + - uid: 7225 + components: + - type: Transform + pos: 84.5,38.5 + parent: 2 +- proto: ComputerShuttleCargo + entities: + - uid: 7226 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 0.5,3.5 + parent: 2 +- proto: ComputerShuttleSalvage + entities: + - uid: 7227 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -15.5,5.5 + parent: 2 +- proto: ComputerSolarControl + entities: + - uid: 7228 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -5.5,23.5 + parent: 2 + - uid: 7229 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -11.5,27.5 + parent: 2 + - uid: 7230 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 87.5,33.5 + parent: 2 + - uid: 7231 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 31.5,64.5 + parent: 2 + - uid: 7232 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -20.5,7.5 + parent: 2 + - uid: 7233 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 41.5,1.5 + parent: 2 +- proto: ComputerStationRecords + entities: + - uid: 7234 + components: + - type: Transform + pos: -14.5,62.5 + parent: 2 + - uid: 7235 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -18.5,51.5 + parent: 2 +- proto: ComputerSurveillanceCameraMonitor + entities: + - uid: 7236 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -3.5,13.5 + parent: 2 + - uid: 7237 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -14.5,60.5 + parent: 2 + - uid: 7238 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -20.5,51.5 + parent: 2 + - uid: 7239 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -25.5,64.5 + parent: 2 + - uid: 7242 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 51.5,15.5 + parent: 2 + - uid: 7243 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 19.5,37.5 + parent: 2 + - uid: 7244 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 83.5,35.5 + parent: 2 + - uid: 7245 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 87.5,35.5 + parent: 2 + - uid: 7246 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 73.5,13.5 + parent: 2 + - uid: 12090 + components: + - type: Transform + pos: -7.5,68.5 + parent: 2 +- proto: ComputerSurveillanceWirelessCameraMonitor + entities: + - uid: 7247 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 18.5,55.5 + parent: 2 +- proto: ComputerTelevision + entities: + - uid: 5957 + components: + - type: Transform + pos: 72.5,30.5 + parent: 2 + - uid: 7248 + components: + - type: Transform + pos: -31.5,63.5 + parent: 2 +- proto: ContainmentFieldGenerator + entities: + - uid: 7249 + components: + - type: Transform + pos: 49.5,-4.5 + parent: 2 + - uid: 7250 + components: + - type: Transform + pos: 53.5,-4.5 + parent: 2 +- proto: ConveyorBelt + entities: + - uid: 7251 + components: + - type: Transform + pos: -1.5,2.5 + parent: 2 + - type: DeviceLinkSink + links: + - 15416 + - uid: 7252 + components: + - type: Transform + pos: -1.5,1.5 + parent: 2 + - type: DeviceLinkSink + links: + - 15416 + - uid: 7253 + components: + - type: Transform + pos: -1.5,0.5 + parent: 2 + - type: DeviceLinkSink + links: + - 15416 + - uid: 7254 + components: + - type: Transform + pos: 2.5,2.5 + parent: 2 + - type: DeviceLinkSink + links: + - 15415 + - uid: 7255 + components: + - type: Transform + pos: 2.5,1.5 + parent: 2 + - type: DeviceLinkSink + links: + - 15415 + - uid: 7256 + components: + - type: Transform + pos: 2.5,0.5 + parent: 2 + - type: DeviceLinkSink + links: + - 15415 + - uid: 7257 + components: + - type: Transform + pos: -1.5,3.5 + parent: 2 + - type: DeviceLinkSink + links: + - 15416 + - uid: 7258 + components: + - type: Transform + pos: -1.5,4.5 + parent: 2 + - type: DeviceLinkSink + links: + - 15416 + - uid: 7259 + components: + - type: Transform + pos: -1.5,5.5 + parent: 2 + - type: DeviceLinkSink + links: + - 15416 + - uid: 7260 + components: + - type: Transform + pos: -1.5,6.5 + parent: 2 + - type: DeviceLinkSink + links: + - 15416 + - uid: 7261 + components: + - type: Transform + pos: 2.5,3.5 + parent: 2 + - type: DeviceLinkSink + links: + - 15415 + - uid: 7262 + components: + - type: Transform + pos: 2.5,4.5 + parent: 2 + - type: DeviceLinkSink + links: + - 15415 + - uid: 7263 + components: + - type: Transform + pos: 2.5,5.5 + parent: 2 + - type: DeviceLinkSink + links: + - 15415 + - uid: 7264 + components: + - type: Transform + pos: 2.5,6.5 + parent: 2 + - type: DeviceLinkSink + links: + - 15415 + - uid: 7265 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 7.5,5.5 + parent: 2 + - type: DeviceLinkSink + links: + - 15414 + - uid: 7266 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 8.5,5.5 + parent: 2 + - type: DeviceLinkSink + links: + - 15414 + - uid: 7267 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 9.5,5.5 + parent: 2 + - type: DeviceLinkSink + links: + - 15414 + - uid: 7268 + components: + - type: Transform + pos: 9.5,1.5 + parent: 2 + - type: DeviceLinkSink + links: + - 15414 + - uid: 7269 + components: + - type: Transform + pos: 9.5,2.5 + parent: 2 + - type: DeviceLinkSink + links: + - 15414 + - uid: 7270 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 10.5,2.5 + parent: 2 + - type: DeviceLinkSink + links: + - 15414 + - uid: 7271 + components: + - type: Transform + pos: 10.5,3.5 + parent: 2 + - type: DeviceLinkSink + links: + - 15414 + - uid: 7272 + components: + - type: Transform + pos: 10.5,4.5 + parent: 2 + - type: DeviceLinkSink + links: + - 15414 + - uid: 7273 + components: + - type: Transform + pos: 10.5,5.5 + parent: 2 + - type: DeviceLinkSink + links: + - 15414 + - uid: 7274 + components: + - type: Transform + pos: 9.5,0.5 + parent: 2 + - type: DeviceLinkSink + links: + - 15414 + - 14459 +- proto: CourierBag + entities: + - uid: 7275 + components: + - type: Transform + pos: -5.6196995,3.751433 + parent: 2 +- proto: CrateArtifactContainer + entities: + - uid: 7276 + components: + - type: Transform + pos: 40.5,10.5 + parent: 2 + - type: Lock + locked: False + - type: Fixtures + fixtures: + fix1: + shape: !type:PhysShapeCircle + radius: 0.45 + position: 0,0 + mask: + - Impassable + - LowImpassable + layer: + - BulletImpassable + - Opaque + density: 50 + hard: True + restitution: 0 + friction: 0.4 + - type: EntityStorage + open: True + removedMasks: 20 + - type: PlaceableSurface + isPlaceable: True +- proto: CrateCoffin + entities: + - uid: 7277 + components: + - type: Transform + pos: 15.5,62.5 + parent: 2 +- proto: CrateCommandSecure + entities: + - uid: 7278 + components: + - type: Transform + pos: 78.5,31.5 + parent: 2 +- proto: CrateEmptySpawner + entities: + - uid: 7279 + components: + - type: Transform + pos: -13.5,11.5 + parent: 2 + - uid: 7280 + components: + - type: Transform + pos: -13.5,13.5 + parent: 2 + - uid: 7281 + components: + - type: Transform + pos: 7.5,2.5 + parent: 2 + - uid: 7282 + components: + - type: Transform + pos: 14.5,1.5 + parent: 2 + - uid: 7283 + components: + - type: Transform + pos: 16.5,1.5 + parent: 2 +- proto: CrateEngineeringAMEJar + entities: + - uid: 18530 + components: + - type: Transform + pos: -14.5,26.5 + parent: 2 +- proto: CrateEngineeringCableHV + entities: + - uid: 7285 + components: + - type: Transform + pos: 35.5,64.5 + parent: 2 + - uid: 7286 + components: + - type: Transform + pos: -24.5,8.5 + parent: 2 +- proto: CrateEvaKit + entities: + - uid: 7287 + components: + - type: Transform + pos: 78.5,45.5 + parent: 2 +- proto: CrateFilledSpawner + entities: + - uid: 7288 + components: + - type: Transform + pos: -13.5,14.5 + parent: 2 + - uid: 7289 + components: + - type: Transform + pos: -12.5,14.5 + parent: 2 + - uid: 7290 + components: + - type: Transform + pos: -8.5,14.5 + parent: 2 + - uid: 7291 + components: + - type: Transform + pos: -8.5,13.5 + parent: 2 + - uid: 7292 + components: + - type: Transform + pos: -9.5,14.5 + parent: 2 + - uid: 7293 + components: + - type: Transform + pos: 6.5,2.5 + parent: 2 + - uid: 7294 + components: + - type: Transform + pos: 6.5,3.5 + parent: 2 +- proto: CrateFoodMRE + entities: + - uid: 7295 + components: + - type: Transform + pos: -13.5,3.5 + parent: 2 +- proto: CrateFreezer + entities: + - uid: 7296 + components: + - type: Transform + pos: 54.5,51.5 + parent: 2 +- proto: CrateFunInstrumentsVariety + entities: + - uid: 7297 + components: + - type: Transform + pos: 40.5,39.5 + parent: 2 +- proto: CrateGenericSteel + entities: + - uid: 7298 + components: + - type: Transform + pos: -7.5,25.5 + parent: 2 + - type: EntityStorage + air: + volume: 200 + immutable: False + temperature: 293.147 + 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: + - 7299 + - 7303 + - 7300 + - 7304 + - 7305 + - 7308 + - 7302 + - 7306 + - 7307 + - 7301 + paper_label: !type:ContainerSlot + showEnts: False + occludes: True + ent: null +- proto: CrateHydroponicsSeeds + entities: + - uid: 5810 + components: + - type: Transform + pos: -28.5,75.5 + parent: 2 + - uid: 7310 + components: + - type: Transform + pos: 10.5,76.5 + parent: 2 +- proto: CrateHydroponicsSeedsMedicinal + entities: + - uid: 7311 + components: + - type: Transform + pos: 50.5,47.5 + parent: 2 +- proto: CrateInternals + entities: + - uid: 7312 + components: + - type: Transform + pos: -13.5,1.5 + parent: 2 +- proto: CrateMedical + entities: + - uid: 7313 + components: + - type: Transform + pos: 19.5,28.5 + parent: 2 +- proto: CrateMedicalSecure + entities: + - uid: 7314 + components: + - type: Transform + pos: 21.5,23.5 + parent: 2 +- proto: CrateMedicalSurgery + entities: + - uid: 7316 + components: + - type: Transform + pos: 14.5,40.5 + parent: 2 +- proto: CrateNPCCow + entities: + - uid: 7317 + components: + - type: Transform + pos: 52.5,42.5 + parent: 2 +- proto: CrateSecurityHelmet + entities: + - uid: 7318 + components: + - type: Transform + pos: -19.5,67.5 + parent: 2 +- proto: CrateSecurityRiot + entities: + - uid: 7319 + components: + - type: Transform + pos: -19.5,68.5 + parent: 2 +- proto: CrateSecurityTrackingMindshieldImplants + entities: + - uid: 7320 + components: + - type: Transform + pos: -16.5,67.5 + parent: 2 +- proto: CrateServiceBooks + entities: + - uid: 7321 + components: + - type: Transform + pos: 18.5,58.5 + parent: 2 +- proto: CrateServiceJanitorialSupplies + entities: + - uid: 7322 + components: + - type: Transform + pos: 43.5,53.5 + parent: 2 +- proto: CrateSlimepersonLifeSupport + entities: + - uid: 7323 + components: + - type: Transform + pos: -13.5,2.5 + parent: 2 +- proto: CrateTrashCartJani + entities: + - uid: 7324 + components: + - type: Transform + pos: 39.5,56.5 + parent: 2 +- proto: CrayonMime + entities: + - uid: 787 + components: + - type: Transform + parent: 772 + - type: Physics + angularDamping: 0 + linearDamping: 0 + canCollide: False + - type: InsideEntityStorage + - uid: 788 + components: + - type: Transform + parent: 772 + - type: Physics + angularDamping: 0 + linearDamping: 0 + canCollide: False + - type: InsideEntityStorage + - uid: 789 + components: + - type: Transform + parent: 772 + - type: Physics + angularDamping: 0 + linearDamping: 0 + canCollide: False + - type: InsideEntityStorage + - uid: 7325 + components: + - type: Transform + pos: 40.83351,45.414948 + parent: 2 +- proto: Crematorium + entities: + - uid: 7326 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 18.5,61.5 + parent: 2 +- proto: CrewMonitoringServer + entities: + - uid: 7327 + components: + - type: Transform + pos: 17.5,37.5 + parent: 2 + - type: SingletonDeviceNetServer + active: False + available: False +- proto: Crowbar + entities: + - uid: 7328 + components: + - type: Transform + pos: 36.297527,7.6566176 + parent: 2 +- proto: CrowbarRed + entities: + - uid: 7329 + components: + - type: Transform + pos: 73.59081,62.54297 + parent: 2 +- proto: CryogenicSleepUnitSpawnerLateJoin + entities: + - uid: 7330 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 63.5,2.5 + parent: 2 + - uid: 7331 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 63.5,3.5 + parent: 2 + - uid: 7332 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 63.5,4.5 + parent: 2 + - uid: 7333 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 64.5,0.5 + parent: 2 + - uid: 7334 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 66.5,0.5 + parent: 2 +- proto: CryogenicSleepUnitSpawnerPrisoner + entities: + - uid: 15065 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -35.5,66.5 + parent: 2 + - uid: 19472 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -35.5,69.5 + parent: 2 +- proto: CryoPod + entities: + - uid: 7335 + components: + - type: Transform + pos: 10.5,35.5 + parent: 2 +- proto: CryoxadoneBeakerSmall + entities: + - uid: 7336 + components: + - type: Transform + pos: 19.5,30.5 + parent: 2 +- proto: DawInstrumentMachineCircuitboard + entities: + - uid: 7337 + components: + - type: Transform + pos: 41.533226,39.5077 + parent: 2 +- proto: DefaultStationBeaconAI + entities: + - uid: 7338 + components: + - type: Transform + pos: 35.5,0.5 + parent: 2 +- proto: DefaultStationBeaconAICore + entities: + - uid: 7339 + components: + - type: Transform + pos: 25.5,-11.5 + parent: 2 +- proto: DefaultStationBeaconAISatellite + entities: + - uid: 7340 + components: + - type: Transform + pos: 35.5,-11.5 + parent: 2 +- proto: DefaultStationBeaconAnomalyGenerator + entities: + - uid: 7341 + components: + - type: Transform + pos: 51.5,3.5 + parent: 2 +- proto: DefaultStationBeaconArmory + entities: + - uid: 7342 + components: + - type: Transform + pos: -16.5,69.5 + parent: 2 +- proto: DefaultStationBeaconArrivals + entities: + - uid: 7343 + components: + - type: Transform + pos: 73.5,3.5 + parent: 2 +- proto: DefaultStationBeaconArtifactLab + entities: + - uid: 7344 + components: + - type: Transform + pos: 35.5,10.5 + parent: 2 +- proto: DefaultStationBeaconAtmospherics + entities: + - uid: 7345 + components: + - type: Transform + pos: -27.5,19.5 + parent: 2 +- proto: DefaultStationBeaconBar + entities: + - uid: 7346 + components: + - type: Transform + pos: 60.5,38.5 + parent: 2 +- proto: DefaultStationBeaconBotany + entities: + - uid: 7347 + components: + - type: Transform + pos: 46.5,41.5 + parent: 2 +- proto: DefaultStationBeaconBridge + entities: + - uid: 7348 + components: + - type: Transform + pos: 80.5,34.5 + parent: 2 +- proto: DefaultStationBeaconBrig + entities: + - uid: 7349 + components: + - type: Transform + pos: -13.5,56.5 + parent: 2 +- proto: DefaultStationBeaconCaptainsQuarters + entities: + - uid: 7350 + components: + - type: Transform + pos: 77.5,29.5 + parent: 2 +- proto: DefaultStationBeaconCargoBay + entities: + - uid: 7351 + components: + - type: Transform + pos: 0.5,6.5 + parent: 2 +- proto: DefaultStationBeaconCargoReception + entities: + - uid: 7352 + components: + - type: Transform + pos: 9.5,11.5 + parent: 2 +- proto: DefaultStationBeaconCERoom + entities: + - uid: 7353 + components: + - type: Transform + pos: -3.5,27.5 + parent: 2 +- proto: DefaultStationBeaconChapel + entities: + - uid: 7354 + components: + - type: Transform + pos: 9.5,55.5 + parent: 2 +- proto: DefaultStationBeaconChemistry + entities: + - uid: 7355 + components: + - type: Transform + pos: 12.5,25.5 + parent: 2 +- proto: DefaultStationBeaconCMORoom + entities: + - uid: 7356 + components: + - type: Transform + pos: 17.5,38.5 + parent: 2 +- proto: DefaultStationBeaconCommand + entities: + - uid: 7357 + components: + - type: Transform + pos: 70.5,34.5 + parent: 2 +- proto: DefaultStationBeaconConferenceRoom + entities: + - uid: 18848 + components: + - type: Transform + pos: 82.5,24.5 + parent: 2 +- proto: DefaultStationBeaconCryonics + entities: + - uid: 7358 + components: + - type: Transform + pos: 10.5,34.5 + parent: 2 +- proto: DefaultStationBeaconCryosleep + entities: + - uid: 7359 + components: + - type: Transform + pos: 65.5,3.5 + parent: 2 +- proto: DefaultStationBeaconDetectiveRoom + entities: + - uid: 7360 + components: + - type: Transform + pos: 2.5,59.5 + parent: 2 + - uid: 7361 + components: + - type: Transform + pos: 0.5,58.5 + parent: 2 +- proto: DefaultStationBeaconDorms + entities: + - uid: 7362 + components: + - type: Transform + pos: 24.5,16.5 + parent: 2 +- proto: DefaultStationBeaconEngineering + entities: + - uid: 7363 + components: + - type: Transform + pos: -8.5,39.5 + parent: 2 +- proto: DefaultStationBeaconEscapePod + entities: + - uid: 7364 + components: + - type: Transform + pos: 76.5,16.5 + parent: 2 + - uid: 7365 + components: + - type: Transform + pos: -38.5,56.5 + parent: 2 + - uid: 7366 + components: + - type: Transform + pos: 14.5,77.5 + parent: 2 + - uid: 7367 + components: + - type: Transform + pos: 19.5,4.5 + parent: 2 +- proto: DefaultStationBeaconEvac + entities: + - uid: 7368 + components: + - type: Transform + pos: 65.5,61.5 + parent: 2 +- proto: DefaultStationBeaconEVAStorage + entities: + - uid: 7369 + components: + - type: Transform + pos: 76.5,43.5 + parent: 2 +- proto: DefaultStationBeaconGravGen + entities: + - uid: 7370 + components: + - type: Transform + pos: -20.5,43.5 + parent: 2 +- proto: DefaultStationBeaconHOPOffice + entities: + - uid: 7371 + components: + - type: Transform + pos: 77.5,39.5 + parent: 2 +- proto: DefaultStationBeaconHOSRoom + entities: + - uid: 7372 + components: + - type: Transform + pos: -18.5,54.5 + parent: 2 +- proto: DefaultStationBeaconJanitorsCloset + entities: + - uid: 7373 + components: + - type: Transform + pos: 40.5,53.5 + parent: 2 +- proto: DefaultStationBeaconKitchen + entities: + - uid: 7374 + components: + - type: Transform + pos: 54.5,42.5 + parent: 2 +- proto: DefaultStationBeaconLawOffice + entities: + - uid: 7375 + components: + - type: Transform + pos: -23.5,55.5 + parent: 2 +- proto: DefaultStationBeaconLibrary + entities: + - uid: 7376 + components: + - type: Transform + pos: 17.5,56.5 + parent: 2 +- proto: DefaultStationBeaconMailroom + entities: + - uid: 7377 + components: + - type: Transform + pos: -6.5,6.5 + parent: 2 +- proto: DefaultStationBeaconMedbay + entities: + - uid: 7378 + components: + - type: Transform + pos: 28.5,34.5 + parent: 2 +- proto: DefaultStationBeaconMedical + entities: + - uid: 7379 + components: + - type: Transform + pos: 16.5,31.5 + parent: 2 +- proto: DefaultStationBeaconMetempsychosis + entities: + - uid: 7380 + components: + - type: Transform + pos: 22.5,26.5 + parent: 2 +- proto: DefaultStationBeaconMorgue + entities: + - uid: 7381 + components: + - type: Transform + pos: 17.5,44.5 + parent: 2 +- proto: DefaultStationBeaconPermaBrig + entities: + - uid: 7382 + components: + - type: Transform + pos: -31.5,66.5 + parent: 2 +- proto: DefaultStationBeaconPowerBank + entities: + - uid: 7383 + components: + - type: Transform + pos: -11.5,44.5 + parent: 2 +- proto: DefaultStationBeaconQMRoom + entities: + - uid: 7384 + components: + - type: Transform + pos: 0.5,15.5 + parent: 2 +- proto: DefaultStationBeaconRDRoom + entities: + - uid: 7385 + components: + - type: Transform + pos: 52.5,16.5 + parent: 2 +- proto: DefaultStationBeaconRND + entities: + - uid: 7386 + components: + - type: Transform + pos: 47.5,28.5 + parent: 2 +- proto: DefaultStationBeaconRobotics + entities: + - uid: 7387 + components: + - type: Transform + pos: 58.5,21.5 + parent: 2 +- proto: DefaultStationBeaconSalvage + entities: + - uid: 7388 + components: + - type: Transform + pos: -12.5,6.5 + parent: 2 +- proto: DefaultStationBeaconSecurity + entities: + - uid: 7389 + components: + - type: Transform + pos: -23.5,69.5 + parent: 2 +- proto: DefaultStationBeaconSecurityCheckpoint + entities: + - uid: 7390 + components: + - type: Transform + pos: 7.5,28.5 + parent: 2 + - uid: 7391 + components: + - type: Transform + pos: -4.5,30.5 + parent: 2 + - uid: 7392 + components: + - type: Transform + pos: -5.5,14.5 + parent: 2 + - uid: 7393 + components: + - type: Transform + pos: 44.5,13.5 + parent: 2 + - uid: 7394 + components: + - type: Transform + pos: 61.5,56.5 + parent: 2 + - uid: 7395 + components: + - type: Transform + pos: 71.5,14.5 + parent: 2 +- proto: DefaultStationBeaconServerRoom + entities: + - uid: 7396 + components: + - type: Transform + pos: 24.5,0.5 + parent: 2 +- proto: DefaultStationBeaconService + entities: + - uid: 7397 + components: + - type: Transform + pos: 54.5,39.5 + parent: 2 +- proto: DefaultStationBeaconSolars + entities: + - uid: 7398 + components: + - type: Transform + pos: -22.5,8.5 + parent: 2 +- proto: DefaultStationBeaconSurgery + entities: + - uid: 7399 + components: + - type: Transform + pos: 13.5,39.5 + parent: 2 +- proto: DefaultStationBeaconTechVault + entities: + - uid: 7400 + components: + - type: Transform + pos: -7.5,44.5 + parent: 2 + - uid: 18660 + components: + - type: Transform + pos: -8.5,44.5 + parent: 2 +- proto: DefaultStationBeaconTelecoms + entities: + - uid: 7401 + components: + - type: Transform + pos: -34.5,37.5 + parent: 2 +- proto: DefaultStationBeaconTheater + entities: + - uid: 7402 + components: + - type: Transform + pos: 37.5,40.5 + parent: 2 +- proto: DefaultStationBeaconToolRoom + entities: + - uid: 7403 + components: + - type: Transform + pos: 60.5,30.5 + parent: 2 +- proto: DefaultStationBeaconVault + entities: + - uid: 7404 + components: + - type: Transform + pos: 30.5,55.5 + parent: 2 +- proto: DefaultStationBeaconWardensOffice + entities: + - uid: 7405 + components: + - type: Transform + pos: -15.5,61.5 + parent: 2 +- proto: DefibrillatorCabinetFilled + entities: + - uid: 7406 + components: + - type: Transform + pos: 17.5,33.5 + parent: 2 + - uid: 7407 + components: + - type: Transform + pos: 34.5,25.5 + parent: 2 + - uid: 7408 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 3.5,44.5 + parent: 2 + - uid: 7409 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 2.5,39.5 + parent: 2 + - uid: 7410 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 24.5,38.5 + parent: 2 + - uid: 7411 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 15.5,27.5 + parent: 2 + - uid: 7412 + components: + - type: Transform + pos: 14.5,42.5 + parent: 2 + - uid: 7413 + components: + - type: Transform + pos: 8.5,46.5 + parent: 2 +- proto: DeskBell + entities: + - uid: 7414 + components: + - type: Transform + pos: -15.572306,50.576622 + parent: 2 + - uid: 7415 + components: + - type: Transform + pos: 17.974758,54.617676 + parent: 2 + - uid: 7416 + components: + - type: Transform + pos: 59.34066,39.685585 + parent: 2 + - uid: 7417 + components: + - type: Transform + pos: 13.298826,23.596142 + parent: 2 + - uid: 7418 + components: + - type: Transform + pos: 12.5114565,29.654684 + parent: 2 + - uid: 7419 + components: + - type: Transform + pos: 7.481876,46.649487 + parent: 2 +- proto: DiceBag + entities: + - uid: 7420 + components: + - type: Transform + pos: 23.747915,13.402235 + parent: 2 +- proto: DiseaseDiagnoser + entities: + - uid: 7421 + components: + - type: Transform + pos: 28.5,45.5 + parent: 2 +- proto: DisposalBend + entities: + - uid: 7422 + components: + - type: Transform + pos: -29.5,28.5 + parent: 2 + - uid: 7423 + components: + - type: Transform + pos: -25.5,21.5 + parent: 2 + - uid: 7424 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -17.5,18.5 + parent: 2 + - uid: 7425 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 78.5,38.5 + parent: 2 + - uid: 7426 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -18.5,51.5 + parent: 2 + - uid: 7427 + components: + - type: Transform + pos: 31.5,7.5 + parent: 2 + - uid: 7428 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 32.5,20.5 + parent: 2 + - uid: 7429 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -25.5,18.5 + parent: 2 + - uid: 7430 + components: + - type: Transform + pos: 50.5,-3.5 + parent: 2 + - uid: 7431 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 50.5,-6.5 + parent: 2 + - uid: 7432 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 50.5,6.5 + parent: 2 + - uid: 7433 + components: + - type: Transform + pos: 59.5,6.5 + parent: 2 + - uid: 7434 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 59.5,-4.5 + parent: 2 + - uid: 7435 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -9.5,19.5 + parent: 2 + - uid: 7437 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 27.5,45.5 + parent: 2 + - uid: 7438 + components: + - type: Transform + pos: 27.5,62.5 + parent: 2 + - uid: 7439 + components: + - type: Transform + pos: 26.5,67.5 + parent: 2 + - uid: 7440 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 26.5,62.5 + parent: 2 + - uid: 7441 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -11.5,57.5 + parent: 2 + - uid: 7442 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 67.5,34.5 + parent: 2 + - uid: 7443 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 67.5,33.5 + parent: 2 + - uid: 7444 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -10.5,7.5 + parent: 2 + - uid: 7445 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -10.5,10.5 + parent: 2 + - uid: 7446 + components: + - type: Transform + pos: 3.5,16.5 + parent: 2 + - uid: 7447 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 15.5,6.5 + parent: 2 + - uid: 7448 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -17.5,19.5 + parent: 2 + - uid: 7449 + components: + - type: Transform + pos: -4.5,27.5 + parent: 2 + - uid: 7450 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -9.5,37.5 + parent: 2 + - uid: 7451 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -12.5,48.5 + parent: 2 + - uid: 7452 + components: + - type: Transform + pos: 2.5,58.5 + parent: 2 + - uid: 7453 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -0.5,58.5 + parent: 2 + - uid: 7454 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -0.5,55.5 + parent: 2 + - uid: 7455 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -32.5,55.5 + parent: 2 + - uid: 7456 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -32.5,57.5 + parent: 2 + - uid: 7457 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -27.5,51.5 + parent: 2 + - uid: 7458 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -23.5,51.5 + parent: 2 + - uid: 7459 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -17.5,63.5 + parent: 2 + - uid: 7460 + components: + - type: Transform + pos: -5.5,67.5 + parent: 2 + - uid: 7461 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 10.5,52.5 + parent: 2 + - uid: 7462 + components: + - type: Transform + pos: 10.5,59.5 + parent: 2 + - uid: 7463 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -11.5,67.5 + parent: 2 + - uid: 7464 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 5.5,66.5 + parent: 2 + - uid: 7465 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 24.5,48.5 + parent: 2 + - uid: 7466 + components: + - type: Transform + pos: 24.5,55.5 + parent: 2 + - uid: 7467 + components: + - type: Transform + pos: 18.5,37.5 + parent: 2 + - uid: 7468 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 9.5,25.5 + parent: 2 + - uid: 7469 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 9.5,34.5 + parent: 2 + - uid: 7470 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 18.5,28.5 + parent: 2 + - uid: 7471 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 17.5,28.5 + parent: 2 + - uid: 7472 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 40.5,54.5 + parent: 2 + - uid: 7473 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 41.5,43.5 + parent: 2 + - uid: 7474 + components: + - type: Transform + pos: 41.5,48.5 + parent: 2 + - uid: 7475 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 32.5,48.5 + parent: 2 + - uid: 7476 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 78.5,30.5 + parent: 2 + - uid: 7477 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 81.5,27.5 + parent: 2 + - uid: 7478 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 77.5,43.5 + parent: 2 + - uid: 7479 + components: + - type: Transform + pos: 70.5,55.5 + parent: 2 + - uid: 7480 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 65.5,55.5 + parent: 2 + - uid: 7481 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 65.5,8.5 + parent: 2 + - uid: 7482 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 23.5,9.5 + parent: 2 + - uid: 7483 + components: + - type: Transform + pos: 25.5,9.5 + parent: 2 + - uid: 7484 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 25.5,6.5 + parent: 2 + - uid: 7485 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 31.5,4.5 + parent: 2 + - uid: 7486 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 52.5,13.5 + parent: 2 + - uid: 7487 + components: + - type: Transform + pos: 52.5,17.5 + parent: 2 + - uid: 7488 + components: + - type: Transform + pos: 47.5,28.5 + parent: 2 + - uid: 7489 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 56.5,15.5 + parent: 2 + - uid: 7490 + components: + - type: Transform + pos: 56.5,21.5 + parent: 2 + - uid: 7491 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 39.5,17.5 + parent: 2 + - uid: 7492 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 39.5,8.5 + parent: 2 + - uid: 7493 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 35.5,8.5 + parent: 2 + - uid: 7494 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 35.5,4.5 + parent: 2 + - uid: 7495 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -7.5,7.5 + parent: 2 + - uid: 7496 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -1.5,7.5 + parent: 2 + - uid: 7497 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -33.5,28.5 + parent: 2 + - uid: 7498 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -29.5,21.5 + parent: 2 +- proto: DisposalJunction + entities: + - uid: 7499 + components: + - type: Transform + pos: 81.5,38.5 + parent: 2 + - uid: 7500 + components: + - type: Transform + pos: -9.5,36.5 + parent: 2 + - uid: 7501 + components: + - type: Transform + pos: 53.5,40.5 + parent: 2 + - uid: 7502 + components: + - type: Transform + pos: 15.5,17.5 + parent: 2 + - uid: 7503 + components: + - type: Transform + pos: 0.5,46.5 + parent: 2 + - uid: 7504 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -27.5,57.5 + parent: 2 + - uid: 7505 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -23.5,57.5 + parent: 2 + - uid: 7506 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -18.5,57.5 + parent: 2 + - uid: 7507 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 5.5,48.5 + parent: 2 + - uid: 7508 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 17.5,20.5 + parent: 2 + - uid: 7509 + components: + - type: Transform + pos: 17.5,25.5 + parent: 2 + - uid: 7510 + components: + - type: Transform + pos: 18.5,34.5 + parent: 2 + - uid: 7511 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 40.5,48.5 + parent: 2 + - uid: 7512 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 46.5,34.5 + parent: 2 + - uid: 7513 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 53.5,34.5 + parent: 2 + - uid: 7514 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 81.5,29.5 + parent: 2 + - uid: 7515 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 65.5,33.5 + parent: 2 + - uid: 7516 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 65.5,27.5 + parent: 2 + - uid: 7517 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 65.5,17.5 + parent: 2 + - uid: 7518 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 47.5,17.5 + parent: 2 + - uid: 7519 + components: + - type: Transform + pos: 35.5,7.5 + parent: 2 + - uid: 7520 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -1.5,10.5 + parent: 2 +- proto: DisposalJunctionFlipped + entities: + - uid: 7521 + components: + - type: Transform + pos: 17.5,26.5 + parent: 2 + - uid: 7522 + components: + - type: Transform + pos: -12.5,55.5 + parent: 2 + - uid: 7523 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -24.5,18.5 + parent: 2 + - uid: 7524 + components: + - type: Transform + pos: 7.5,7.5 + parent: 2 + - uid: 7525 + components: + - type: Transform + pos: -9.5,27.5 + parent: 2 + - uid: 7526 + components: + - type: Transform + pos: 5.5,52.5 + parent: 2 + - uid: 7527 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 3.5,10.5 + parent: 2 + - uid: 7528 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 0.5,20.5 + parent: 2 + - uid: 7529 + components: + - type: Transform + pos: 0.5,23.5 + parent: 2 + - uid: 7530 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -22.5,57.5 + parent: 2 + - uid: 7531 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -17.5,57.5 + parent: 2 + - uid: 7532 + components: + - type: Transform + pos: 32.5,34.5 + parent: 2 + - uid: 7533 + components: + - type: Transform + pos: 53.5,39.5 + parent: 2 + - uid: 7534 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 81.5,30.5 + parent: 2 + - uid: 7535 + components: + - type: Transform + pos: 25.5,7.5 + parent: 2 + - uid: 7536 + components: + - type: Transform + pos: 47.5,21.5 + parent: 2 +- proto: DisposalPipe + entities: + - uid: 7537 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -29.5,25.5 + parent: 2 + - uid: 7538 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -29.5,23.5 + parent: 2 + - uid: 7539 + components: + - type: Transform + pos: -17.5,62.5 + parent: 2 + - uid: 7540 + components: + - type: Transform + pos: -27.5,53.5 + parent: 2 + - uid: 7541 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -28.5,21.5 + parent: 2 + - uid: 7542 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -29.5,22.5 + parent: 2 + - uid: 7543 + components: + - type: Transform + pos: 46.5,36.5 + parent: 2 + - uid: 7544 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 23.5,26.5 + parent: 2 + - uid: 7545 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 25.5,26.5 + parent: 2 + - uid: 7546 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 58.5,34.5 + parent: 2 + - uid: 7547 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 57.5,34.5 + parent: 2 + - uid: 7548 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 56.5,34.5 + parent: 2 + - uid: 7549 + components: + - type: Transform + pos: -22.5,58.5 + parent: 2 + - uid: 7550 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 26.5,26.5 + parent: 2 + - uid: 7551 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 24.5,9.5 + parent: 2 + - uid: 7552 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 32.5,4.5 + parent: 2 + - uid: 7553 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -32.5,28.5 + parent: 2 + - uid: 7554 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -31.5,28.5 + parent: 2 + - uid: 7555 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -18.5,52.5 + parent: 2 + - uid: 7556 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -18.5,53.5 + parent: 2 + - uid: 7557 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 9.5,52.5 + parent: 2 + - uid: 7558 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -9.5,10.5 + parent: 2 + - uid: 7559 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 71.5,17.5 + parent: 2 + - uid: 7560 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 1.5,58.5 + parent: 2 + - uid: 7561 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -8.5,10.5 + parent: 2 + - uid: 7562 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 70.5,17.5 + parent: 2 + - uid: 7563 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 7.5,6.5 + parent: 2 + - uid: 7564 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 8.5,7.5 + parent: 2 + - uid: 7565 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 9.5,7.5 + parent: 2 + - uid: 7566 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 10.5,7.5 + parent: 2 + - uid: 7567 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 11.5,7.5 + parent: 2 + - uid: 7568 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 7.5,8.5 + parent: 2 + - uid: 7569 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 7.5,9.5 + parent: 2 + - uid: 7570 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 11.5,10.5 + parent: 2 + - uid: 7571 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 10.5,10.5 + parent: 2 + - uid: 7572 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 9.5,10.5 + parent: 2 + - uid: 7573 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 8.5,10.5 + parent: 2 + - uid: 7574 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 33.5,-0.5 + parent: 2 + - uid: 7575 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 33.5,-1.5 + parent: 2 + - uid: 7576 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 33.5,-2.5 + parent: 2 + - uid: 7577 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 34.5,48.5 + parent: 2 + - uid: 7578 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 32.5,33.5 + parent: 2 + - uid: 7579 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 32.5,32.5 + parent: 2 + - uid: 7580 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 32.5,31.5 + parent: 2 + - uid: 7581 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 32.5,30.5 + parent: 2 + - uid: 7582 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 32.5,29.5 + parent: 2 + - uid: 7583 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 32.5,28.5 + parent: 2 + - uid: 7584 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 32.5,27.5 + parent: 2 + - uid: 7585 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 32.5,26.5 + parent: 2 + - uid: 7586 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 32.5,25.5 + parent: 2 + - uid: 7587 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 32.5,24.5 + parent: 2 + - uid: 7588 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 32.5,23.5 + parent: 2 + - uid: 7589 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 32.5,22.5 + parent: 2 + - uid: 7590 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 32.5,21.5 + parent: 2 + - uid: 7591 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 31.5,20.5 + parent: 2 + - uid: 7592 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 30.5,20.5 + parent: 2 + - uid: 7593 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 29.5,20.5 + parent: 2 + - uid: 7594 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 28.5,20.5 + parent: 2 + - uid: 7595 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 27.5,20.5 + parent: 2 + - uid: 7596 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 26.5,20.5 + parent: 2 + - uid: 7597 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 25.5,20.5 + parent: 2 + - uid: 7598 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 24.5,20.5 + parent: 2 + - uid: 7599 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 23.5,20.5 + parent: 2 + - uid: 7600 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 22.5,20.5 + parent: 2 + - uid: 7601 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 21.5,20.5 + parent: 2 + - uid: 7602 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 20.5,20.5 + parent: 2 + - uid: 7603 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 19.5,20.5 + parent: 2 + - uid: 7604 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 18.5,20.5 + parent: 2 + - uid: 7605 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -25.5,19.5 + parent: 2 + - uid: 7606 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 50.5,-5.5 + parent: 2 + - uid: 7607 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 50.5,-4.5 + parent: 2 + - uid: 7608 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 49.5,-3.5 + parent: 2 + - uid: 7609 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 59.5,-3.5 + parent: 2 + - uid: 7610 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 59.5,-2.5 + parent: 2 + - uid: 7611 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 59.5,-1.5 + parent: 2 + - uid: 7612 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 19.5,26.5 + parent: 2 + - uid: 7613 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -10.5,8.5 + parent: 2 + - uid: 7614 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 59.5,-0.5 + parent: 2 + - uid: 7615 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 59.5,0.5 + parent: 2 + - uid: 7616 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 59.5,1.5 + parent: 2 + - uid: 7617 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 59.5,2.5 + parent: 2 + - uid: 7618 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 59.5,3.5 + parent: 2 + - uid: 7619 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 59.5,4.5 + parent: 2 + - uid: 7620 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 59.5,5.5 + parent: 2 + - uid: 7621 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 58.5,6.5 + parent: 2 + - uid: 7622 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 57.5,6.5 + parent: 2 + - uid: 7623 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 56.5,6.5 + parent: 2 + - uid: 7624 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 55.5,6.5 + parent: 2 + - uid: 7625 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 54.5,6.5 + parent: 2 + - uid: 7626 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 53.5,6.5 + parent: 2 + - uid: 7627 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 52.5,6.5 + parent: 2 + - uid: 7628 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 51.5,6.5 + parent: 2 + - uid: 7629 + components: + - type: Transform + pos: 50.5,5.5 + parent: 2 + - uid: 7630 + components: + - type: Transform + pos: 50.5,4.5 + parent: 2 + - uid: 7631 + components: + - type: Transform + pos: 50.5,3.5 + parent: 2 + - uid: 7632 + components: + - type: Transform + pos: 50.5,2.5 + parent: 2 + - uid: 7633 + components: + - type: Transform + pos: 50.5,1.5 + parent: 2 + - uid: 7634 + components: + - type: Transform + pos: 50.5,0.5 + parent: 2 + - uid: 7635 + components: + - type: Transform + pos: 50.5,-0.5 + parent: 2 + - uid: 7636 + components: + - type: Transform + pos: 50.5,-1.5 + parent: 2 + - uid: 7637 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 9.5,24.5 + parent: 2 + - uid: 7638 + components: + - type: Transform + pos: 5.5,53.5 + parent: 2 + - uid: 7639 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 55.5,34.5 + parent: 2 + - uid: 7640 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 54.5,34.5 + parent: 2 + - uid: 7641 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 41.5,45.5 + parent: 2 + - uid: 7642 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 41.5,44.5 + parent: 2 + - uid: 7643 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 21.5,63.5 + parent: 2 + - uid: 7644 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 21.5,64.5 + parent: 2 + - uid: 7645 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 21.5,65.5 + parent: 2 + - uid: 7646 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 21.5,66.5 + parent: 2 + - uid: 7647 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 21.5,67.5 + parent: 2 + - uid: 7648 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 27.5,46.5 + parent: 2 + - uid: 7649 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 27.5,47.5 + parent: 2 + - uid: 7650 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 27.5,48.5 + parent: 2 + - uid: 7651 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 27.5,49.5 + parent: 2 + - uid: 7652 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 27.5,50.5 + parent: 2 + - uid: 7653 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 27.5,51.5 + parent: 2 + - uid: 7654 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 27.5,52.5 + parent: 2 + - uid: 7655 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 27.5,53.5 + parent: 2 + - uid: 7656 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 27.5,54.5 + parent: 2 + - uid: 7657 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 27.5,55.5 + parent: 2 + - uid: 7658 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 27.5,56.5 + parent: 2 + - uid: 7659 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 27.5,57.5 + parent: 2 + - uid: 7660 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 27.5,58.5 + parent: 2 + - uid: 7661 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 27.5,59.5 + parent: 2 + - uid: 7662 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 27.5,60.5 + parent: 2 + - uid: 7663 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 27.5,61.5 + parent: 2 + - uid: 7664 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 26.5,63.5 + parent: 2 + - uid: 7665 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 26.5,64.5 + parent: 2 + - uid: 7666 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 26.5,65.5 + parent: 2 + - uid: 7667 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 26.5,66.5 + parent: 2 + - uid: 7668 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 25.5,67.5 + parent: 2 + - uid: 7669 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 6.5,52.5 + parent: 2 + - uid: 7670 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 8.5,52.5 + parent: 2 + - uid: 7671 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 7.5,52.5 + parent: 2 + - uid: 7672 + components: + - type: Transform + pos: -11.5,62.5 + parent: 2 + - uid: 7673 + components: + - type: Transform + pos: -11.5,66.5 + parent: 2 + - uid: 7674 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 10.5,56.5 + parent: 2 + - uid: 7675 + components: + - type: Transform + pos: -11.5,58.5 + parent: 2 + - uid: 7676 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 10.5,57.5 + parent: 2 + - uid: 7677 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -16.5,57.5 + parent: 2 + - uid: 7678 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -15.5,57.5 + parent: 2 + - uid: 7679 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -14.5,57.5 + parent: 2 + - uid: 7680 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 66.5,33.5 + parent: 2 + - uid: 7681 + components: + - type: Transform + pos: -11.5,60.5 + parent: 2 + - uid: 7682 + components: + - type: Transform + pos: -11.5,63.5 + parent: 2 + - uid: 7683 + components: + - type: Transform + pos: -11.5,65.5 + parent: 2 + - uid: 7684 + components: + - type: Transform + pos: -11.5,64.5 + parent: 2 + - uid: 7685 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 10.5,58.5 + parent: 2 + - uid: 7686 + components: + - type: Transform + pos: -12.5,56.5 + parent: 2 + - uid: 7687 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -13.5,57.5 + parent: 2 + - uid: 7688 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -14.5,7.5 + parent: 2 + - uid: 7689 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -13.5,7.5 + parent: 2 + - uid: 7690 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -12.5,7.5 + parent: 2 + - uid: 7691 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -11.5,7.5 + parent: 2 + - uid: 7692 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -10.5,9.5 + parent: 2 + - uid: 7693 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -7.5,10.5 + parent: 2 + - uid: 7694 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -6.5,10.5 + parent: 2 + - uid: 7695 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -5.5,10.5 + parent: 2 + - uid: 7696 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -4.5,10.5 + parent: 2 + - uid: 7697 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -3.5,10.5 + parent: 2 + - uid: 7698 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -2.5,10.5 + parent: 2 + - uid: 7699 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -0.5,10.5 + parent: 2 + - uid: 7700 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 0.5,10.5 + parent: 2 + - uid: 7701 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 1.5,10.5 + parent: 2 + - uid: 7702 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 2.5,10.5 + parent: 2 + - uid: 7703 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 4.5,10.5 + parent: 2 + - uid: 7704 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 5.5,10.5 + parent: 2 + - uid: 7705 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 6.5,10.5 + parent: 2 + - uid: 7706 + components: + - type: Transform + pos: 3.5,11.5 + parent: 2 + - uid: 7707 + components: + - type: Transform + pos: 3.5,12.5 + parent: 2 + - uid: 7708 + components: + - type: Transform + pos: 3.5,13.5 + parent: 2 + - uid: 7709 + components: + - type: Transform + pos: 3.5,14.5 + parent: 2 + - uid: 7710 + components: + - type: Transform + pos: 3.5,15.5 + parent: 2 + - uid: 7711 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 2.5,16.5 + parent: 2 + - uid: 7712 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 1.5,16.5 + parent: 2 + - uid: 7713 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 0.5,16.5 + parent: 2 + - uid: 7714 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -0.5,16.5 + parent: 2 + - uid: 7715 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 12.5,7.5 + parent: 2 + - uid: 7716 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 13.5,7.5 + parent: 2 + - uid: 7717 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 14.5,7.5 + parent: 2 + - uid: 7718 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 15.5,8.5 + parent: 2 + - uid: 7719 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 15.5,9.5 + parent: 2 + - uid: 7720 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 15.5,10.5 + parent: 2 + - uid: 7721 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 15.5,11.5 + parent: 2 + - uid: 7722 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 15.5,12.5 + parent: 2 + - uid: 7723 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 15.5,13.5 + parent: 2 + - uid: 7724 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 15.5,14.5 + parent: 2 + - uid: 7725 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 15.5,15.5 + parent: 2 + - uid: 7726 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 15.5,16.5 + parent: 2 + - uid: 7727 + components: + - type: Transform + pos: 15.5,18.5 + parent: 2 + - uid: 7728 + components: + - type: Transform + pos: 15.5,19.5 + parent: 2 + - uid: 7729 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 14.5,20.5 + parent: 2 + - uid: 7730 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 13.5,20.5 + parent: 2 + - uid: 7731 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 12.5,20.5 + parent: 2 + - uid: 7732 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 11.5,20.5 + parent: 2 + - uid: 7733 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 10.5,20.5 + parent: 2 + - uid: 7734 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 9.5,20.5 + parent: 2 + - uid: 7735 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 8.5,20.5 + parent: 2 + - uid: 7736 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 7.5,20.5 + parent: 2 + - uid: 7737 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 6.5,20.5 + parent: 2 + - uid: 7738 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 5.5,20.5 + parent: 2 + - uid: 7739 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 4.5,20.5 + parent: 2 + - uid: 7740 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 3.5,20.5 + parent: 2 + - uid: 7741 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 2.5,20.5 + parent: 2 + - uid: 7742 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 1.5,20.5 + parent: 2 + - uid: 7743 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -0.5,20.5 + parent: 2 + - uid: 7744 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -1.5,20.5 + parent: 2 + - uid: 7745 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -2.5,20.5 + parent: 2 + - uid: 7746 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -3.5,20.5 + parent: 2 + - uid: 7747 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -4.5,20.5 + parent: 2 + - uid: 7748 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -5.5,20.5 + parent: 2 + - uid: 7749 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -6.5,20.5 + parent: 2 + - uid: 7750 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -7.5,20.5 + parent: 2 + - uid: 7751 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -8.5,20.5 + parent: 2 + - uid: 7752 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -33.5,29.5 + parent: 2 + - uid: 7753 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -30.5,28.5 + parent: 2 + - uid: 7754 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -29.5,27.5 + parent: 2 + - uid: 7755 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -29.5,26.5 + parent: 2 + - uid: 7756 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -29.5,24.5 + parent: 2 + - uid: 7757 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -27.5,21.5 + parent: 2 + - uid: 7758 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -26.5,21.5 + parent: 2 + - uid: 7759 + components: + - type: Transform + pos: -25.5,20.5 + parent: 2 + - uid: 7760 + components: + - type: Transform + pos: -24.5,19.5 + parent: 2 + - uid: 7761 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -23.5,18.5 + parent: 2 + - uid: 7762 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -22.5,18.5 + parent: 2 + - uid: 7763 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -21.5,18.5 + parent: 2 + - uid: 7764 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -20.5,18.5 + parent: 2 + - uid: 7765 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -19.5,18.5 + parent: 2 + - uid: 7766 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -18.5,18.5 + parent: 2 + - uid: 7767 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -16.5,19.5 + parent: 2 + - uid: 7768 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -15.5,19.5 + parent: 2 + - uid: 7769 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -14.5,19.5 + parent: 2 + - uid: 7770 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -13.5,19.5 + parent: 2 + - uid: 7771 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -12.5,19.5 + parent: 2 + - uid: 7772 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -11.5,19.5 + parent: 2 + - uid: 7773 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -10.5,19.5 + parent: 2 + - uid: 7774 + components: + - type: Transform + pos: -9.5,21.5 + parent: 2 + - uid: 7775 + components: + - type: Transform + pos: -9.5,22.5 + parent: 2 + - uid: 7776 + components: + - type: Transform + pos: -9.5,23.5 + parent: 2 + - uid: 7777 + components: + - type: Transform + pos: -9.5,24.5 + parent: 2 + - uid: 7778 + components: + - type: Transform + pos: -9.5,25.5 + parent: 2 + - uid: 7779 + components: + - type: Transform + pos: -9.5,26.5 + parent: 2 + - uid: 7780 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -5.5,27.5 + parent: 2 + - uid: 7781 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -6.5,27.5 + parent: 2 + - uid: 7782 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -7.5,27.5 + parent: 2 + - uid: 7783 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -8.5,27.5 + parent: 2 + - uid: 7784 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -12.5,36.5 + parent: 2 + - uid: 7785 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -11.5,36.5 + parent: 2 + - uid: 7786 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -10.5,36.5 + parent: 2 + - uid: 7787 + components: + - type: Transform + pos: -9.5,35.5 + parent: 2 + - uid: 7788 + components: + - type: Transform + pos: -9.5,34.5 + parent: 2 + - uid: 7789 + components: + - type: Transform + pos: -9.5,33.5 + parent: 2 + - uid: 7790 + components: + - type: Transform + pos: -9.5,32.5 + parent: 2 + - uid: 7791 + components: + - type: Transform + pos: -9.5,31.5 + parent: 2 + - uid: 7792 + components: + - type: Transform + pos: -9.5,30.5 + parent: 2 + - uid: 7793 + components: + - type: Transform + pos: -9.5,29.5 + parent: 2 + - uid: 7794 + components: + - type: Transform + pos: -9.5,28.5 + parent: 2 + - uid: 7795 + components: + - type: Transform + pos: 0.5,21.5 + parent: 2 + - uid: 7796 + components: + - type: Transform + pos: 0.5,22.5 + parent: 2 + - uid: 7797 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 1.5,23.5 + parent: 2 + - uid: 7798 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 0.5,24.5 + parent: 2 + - uid: 7799 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 0.5,25.5 + parent: 2 + - uid: 7800 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 0.5,26.5 + parent: 2 + - uid: 7801 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 0.5,27.5 + parent: 2 + - uid: 7802 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 0.5,28.5 + parent: 2 + - uid: 7803 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 0.5,29.5 + parent: 2 + - uid: 7804 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 0.5,30.5 + parent: 2 + - uid: 7805 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 0.5,31.5 + parent: 2 + - uid: 7806 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 0.5,32.5 + parent: 2 + - uid: 7807 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 0.5,33.5 + parent: 2 + - uid: 7808 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 0.5,34.5 + parent: 2 + - uid: 7809 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 0.5,35.5 + parent: 2 + - uid: 7810 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 0.5,36.5 + parent: 2 + - uid: 7811 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 0.5,37.5 + parent: 2 + - uid: 7812 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 0.5,38.5 + parent: 2 + - uid: 7813 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 0.5,39.5 + parent: 2 + - uid: 7814 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 0.5,40.5 + parent: 2 + - uid: 7815 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 0.5,41.5 + parent: 2 + - uid: 7816 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 0.5,42.5 + parent: 2 + - uid: 7817 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 0.5,43.5 + parent: 2 + - uid: 7818 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 0.5,44.5 + parent: 2 + - uid: 7819 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 0.5,45.5 + parent: 2 + - uid: 7820 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -0.5,46.5 + parent: 2 + - uid: 7821 + components: + - type: Transform + pos: 0.5,47.5 + parent: 2 + - uid: 7822 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -0.5,48.5 + parent: 2 + - uid: 7823 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -1.5,48.5 + parent: 2 + - uid: 7824 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -2.5,48.5 + parent: 2 + - uid: 7825 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -3.5,48.5 + parent: 2 + - uid: 7826 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -4.5,48.5 + parent: 2 + - uid: 7827 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -5.5,48.5 + parent: 2 + - uid: 7828 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -6.5,48.5 + parent: 2 + - uid: 7829 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -7.5,48.5 + parent: 2 + - uid: 7830 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -8.5,48.5 + parent: 2 + - uid: 7831 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -9.5,48.5 + parent: 2 + - uid: 7832 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -10.5,48.5 + parent: 2 + - uid: 7833 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -11.5,48.5 + parent: 2 + - uid: 7834 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 0.5,58.5 + parent: 2 + - uid: 7835 + components: + - type: Transform + pos: -0.5,57.5 + parent: 2 + - uid: 7836 + components: + - type: Transform + pos: -0.5,56.5 + parent: 2 + - uid: 7837 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -1.5,55.5 + parent: 2 + - uid: 7838 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -2.5,55.5 + parent: 2 + - uid: 7839 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -3.5,55.5 + parent: 2 + - uid: 7840 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -4.5,55.5 + parent: 2 + - uid: 7841 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -5.5,55.5 + parent: 2 + - uid: 7842 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -6.5,55.5 + parent: 2 + - uid: 7843 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -7.5,55.5 + parent: 2 + - uid: 7844 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -8.5,55.5 + parent: 2 + - uid: 7845 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -9.5,55.5 + parent: 2 + - uid: 7846 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -10.5,55.5 + parent: 2 + - uid: 7847 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -11.5,55.5 + parent: 2 + - uid: 7848 + components: + - type: Transform + pos: -12.5,54.5 + parent: 2 + - uid: 7849 + components: + - type: Transform + pos: -12.5,53.5 + parent: 2 + - uid: 7850 + components: + - type: Transform + pos: -12.5,52.5 + parent: 2 + - uid: 7851 + components: + - type: Transform + pos: -12.5,51.5 + parent: 2 + - uid: 7852 + components: + - type: Transform + pos: -12.5,50.5 + parent: 2 + - uid: 7853 + components: + - type: Transform + pos: -12.5,49.5 + parent: 2 + - uid: 7854 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -32.5,56.5 + parent: 2 + - uid: 7855 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -28.5,51.5 + parent: 2 + - uid: 7856 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -27.5,52.5 + parent: 2 + - uid: 7857 + components: + - type: Transform + pos: -27.5,54.5 + parent: 2 + - uid: 7858 + components: + - type: Transform + pos: -27.5,55.5 + parent: 2 + - uid: 7859 + components: + - type: Transform + pos: -27.5,56.5 + parent: 2 + - uid: 7860 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -31.5,57.5 + parent: 2 + - uid: 7861 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -30.5,57.5 + parent: 2 + - uid: 7862 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -29.5,57.5 + parent: 2 + - uid: 7863 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -28.5,57.5 + parent: 2 + - uid: 7864 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -26.5,57.5 + parent: 2 + - uid: 7865 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -25.5,57.5 + parent: 2 + - uid: 7866 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -24.5,57.5 + parent: 2 + - uid: 7867 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -23.5,52.5 + parent: 2 + - uid: 7868 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -23.5,53.5 + parent: 2 + - uid: 7869 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -23.5,54.5 + parent: 2 + - uid: 7870 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -23.5,55.5 + parent: 2 + - uid: 7871 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -23.5,56.5 + parent: 2 + - uid: 7872 + components: + - type: Transform + pos: -22.5,59.5 + parent: 2 + - uid: 7873 + components: + - type: Transform + pos: -22.5,60.5 + parent: 2 + - uid: 7874 + components: + - type: Transform + pos: -22.5,61.5 + parent: 2 + - uid: 7875 + components: + - type: Transform + pos: -22.5,62.5 + parent: 2 + - uid: 7876 + components: + - type: Transform + pos: -22.5,63.5 + parent: 2 + - uid: 7877 + components: + - type: Transform + pos: -17.5,61.5 + parent: 2 + - uid: 7878 + components: + - type: Transform + pos: -17.5,60.5 + parent: 2 + - uid: 7879 + components: + - type: Transform + pos: -17.5,59.5 + parent: 2 + - uid: 7880 + components: + - type: Transform + pos: -17.5,58.5 + parent: 2 + - uid: 7881 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -21.5,57.5 + parent: 2 + - uid: 7882 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -20.5,57.5 + parent: 2 + - uid: 7883 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -19.5,57.5 + parent: 2 + - uid: 7884 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -18.5,54.5 + parent: 2 + - uid: 7885 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -18.5,55.5 + parent: 2 + - uid: 7886 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -18.5,56.5 + parent: 2 + - uid: 7887 + components: + - type: Transform + pos: -11.5,61.5 + parent: 2 + - uid: 7888 + components: + - type: Transform + pos: -11.5,59.5 + parent: 2 + - uid: 7889 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 10.5,55.5 + parent: 2 + - uid: 7890 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 10.5,54.5 + parent: 2 + - uid: 7891 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 9.5,59.5 + parent: 2 + - uid: 7892 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -6.5,67.5 + parent: 2 + - uid: 7893 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 10.5,53.5 + parent: 2 + - uid: 7894 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -7.5,67.5 + parent: 2 + - uid: 7895 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -8.5,67.5 + parent: 2 + - uid: 7896 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -9.5,67.5 + parent: 2 + - uid: 7897 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -10.5,67.5 + parent: 2 + - uid: 7898 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 1.5,48.5 + parent: 2 + - uid: 7899 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 2.5,48.5 + parent: 2 + - uid: 7900 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 3.5,48.5 + parent: 2 + - uid: 7901 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 4.5,48.5 + parent: 2 + - uid: 7902 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 5.5,49.5 + parent: 2 + - uid: 7903 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 5.5,50.5 + parent: 2 + - uid: 7904 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 5.5,51.5 + parent: 2 + - uid: 7905 + components: + - type: Transform + pos: 5.5,54.5 + parent: 2 + - uid: 7906 + components: + - type: Transform + pos: 5.5,55.5 + parent: 2 + - uid: 7907 + components: + - type: Transform + pos: 5.5,56.5 + parent: 2 + - uid: 7908 + components: + - type: Transform + pos: 5.5,57.5 + parent: 2 + - uid: 7909 + components: + - type: Transform + pos: 5.5,58.5 + parent: 2 + - uid: 7910 + components: + - type: Transform + pos: 5.5,59.5 + parent: 2 + - uid: 7911 + components: + - type: Transform + pos: 5.5,60.5 + parent: 2 + - uid: 7912 + components: + - type: Transform + pos: 5.5,61.5 + parent: 2 + - uid: 7913 + components: + - type: Transform + pos: 5.5,62.5 + parent: 2 + - uid: 7914 + components: + - type: Transform + pos: 5.5,63.5 + parent: 2 + - uid: 7915 + components: + - type: Transform + pos: 5.5,64.5 + parent: 2 + - uid: 7916 + components: + - type: Transform + pos: 5.5,65.5 + parent: 2 + - uid: 7917 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 6.5,66.5 + parent: 2 + - uid: 7918 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 6.5,48.5 + parent: 2 + - uid: 7919 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 7.5,48.5 + parent: 2 + - uid: 7920 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 8.5,48.5 + parent: 2 + - uid: 7921 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 9.5,48.5 + parent: 2 + - uid: 7922 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 10.5,48.5 + parent: 2 + - uid: 7923 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 11.5,48.5 + parent: 2 + - uid: 7924 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 12.5,48.5 + parent: 2 + - uid: 7925 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 13.5,48.5 + parent: 2 + - uid: 7926 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 14.5,48.5 + parent: 2 + - uid: 7927 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 15.5,48.5 + parent: 2 + - uid: 7928 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 16.5,48.5 + parent: 2 + - uid: 7929 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 17.5,48.5 + parent: 2 + - uid: 7930 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 18.5,48.5 + parent: 2 + - uid: 7931 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 19.5,48.5 + parent: 2 + - uid: 7932 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 20.5,48.5 + parent: 2 + - uid: 7933 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 21.5,48.5 + parent: 2 + - uid: 7934 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 22.5,48.5 + parent: 2 + - uid: 7935 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 23.5,48.5 + parent: 2 + - uid: 7936 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 23.5,55.5 + parent: 2 + - uid: 7937 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 22.5,55.5 + parent: 2 + - uid: 7938 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 21.5,55.5 + parent: 2 + - uid: 7939 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 24.5,49.5 + parent: 2 + - uid: 7940 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 24.5,50.5 + parent: 2 + - uid: 7941 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 24.5,51.5 + parent: 2 + - uid: 7942 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 24.5,52.5 + parent: 2 + - uid: 7943 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 24.5,53.5 + parent: 2 + - uid: 7944 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 24.5,54.5 + parent: 2 + - uid: 7945 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 17.5,37.5 + parent: 2 + - uid: 7946 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 16.5,20.5 + parent: 2 + - uid: 7947 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 17.5,21.5 + parent: 2 + - uid: 7948 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 17.5,22.5 + parent: 2 + - uid: 7949 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 17.5,23.5 + parent: 2 + - uid: 7950 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 17.5,24.5 + parent: 2 + - uid: 7951 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 24.5,26.5 + parent: 2 + - uid: 7952 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 22.5,26.5 + parent: 2 + - uid: 7953 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 20.5,26.5 + parent: 2 + - uid: 7954 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 21.5,26.5 + parent: 2 + - uid: 7955 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 18.5,26.5 + parent: 2 + - uid: 7956 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 10.5,25.5 + parent: 2 + - uid: 7957 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 11.5,25.5 + parent: 2 + - uid: 7958 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 12.5,25.5 + parent: 2 + - uid: 7959 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 13.5,25.5 + parent: 2 + - uid: 7960 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 14.5,25.5 + parent: 2 + - uid: 7961 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 15.5,25.5 + parent: 2 + - uid: 7962 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 16.5,25.5 + parent: 2 + - uid: 7963 + components: + - type: Transform + pos: 9.5,40.5 + parent: 2 + - uid: 7964 + components: + - type: Transform + pos: 9.5,39.5 + parent: 2 + - uid: 7965 + components: + - type: Transform + pos: 9.5,38.5 + parent: 2 + - uid: 7966 + components: + - type: Transform + pos: 9.5,37.5 + parent: 2 + - uid: 7967 + components: + - type: Transform + pos: 9.5,36.5 + parent: 2 + - uid: 7968 + components: + - type: Transform + pos: 9.5,35.5 + parent: 2 + - uid: 7969 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 10.5,34.5 + parent: 2 + - uid: 7970 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 11.5,34.5 + parent: 2 + - uid: 7971 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 12.5,34.5 + parent: 2 + - uid: 7972 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 13.5,34.5 + parent: 2 + - uid: 7973 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 14.5,34.5 + parent: 2 + - uid: 7974 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 15.5,34.5 + parent: 2 + - uid: 7975 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 16.5,34.5 + parent: 2 + - uid: 7976 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 17.5,34.5 + parent: 2 + - uid: 7977 + components: + - type: Transform + pos: 18.5,36.5 + parent: 2 + - uid: 7978 + components: + - type: Transform + pos: 18.5,35.5 + parent: 2 + - uid: 7979 + components: + - type: Transform + pos: 18.5,33.5 + parent: 2 + - uid: 7980 + components: + - type: Transform + pos: 18.5,32.5 + parent: 2 + - uid: 7981 + components: + - type: Transform + pos: 18.5,31.5 + parent: 2 + - uid: 7982 + components: + - type: Transform + pos: 18.5,30.5 + parent: 2 + - uid: 7983 + components: + - type: Transform + pos: 18.5,29.5 + parent: 2 + - uid: 7984 + components: + - type: Transform + pos: 17.5,27.5 + parent: 2 + - uid: 7985 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 41.5,54.5 + parent: 2 + - uid: 7986 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 42.5,54.5 + parent: 2 + - uid: 7987 + components: + - type: Transform + pos: 40.5,53.5 + parent: 2 + - uid: 7988 + components: + - type: Transform + pos: 40.5,52.5 + parent: 2 + - uid: 7989 + components: + - type: Transform + pos: 40.5,51.5 + parent: 2 + - uid: 7990 + components: + - type: Transform + pos: 40.5,50.5 + parent: 2 + - uid: 7991 + components: + - type: Transform + pos: 40.5,49.5 + parent: 2 + - uid: 7992 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 41.5,46.5 + parent: 2 + - uid: 7993 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 41.5,47.5 + parent: 2 + - uid: 7994 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 39.5,48.5 + parent: 2 + - uid: 7995 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 38.5,48.5 + parent: 2 + - uid: 7996 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 37.5,48.5 + parent: 2 + - uid: 7997 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 36.5,48.5 + parent: 2 + - uid: 7998 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 35.5,48.5 + parent: 2 + - uid: 7999 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 33.5,48.5 + parent: 2 + - uid: 8000 + components: + - type: Transform + pos: 32.5,47.5 + parent: 2 + - uid: 8001 + components: + - type: Transform + pos: 32.5,46.5 + parent: 2 + - uid: 8002 + components: + - type: Transform + pos: 32.5,45.5 + parent: 2 + - uid: 8003 + components: + - type: Transform + pos: 32.5,44.5 + parent: 2 + - uid: 8004 + components: + - type: Transform + pos: 32.5,43.5 + parent: 2 + - uid: 8005 + components: + - type: Transform + pos: 32.5,42.5 + parent: 2 + - uid: 8006 + components: + - type: Transform + pos: 32.5,41.5 + parent: 2 + - uid: 8007 + components: + - type: Transform + pos: 32.5,40.5 + parent: 2 + - uid: 8008 + components: + - type: Transform + pos: 32.5,39.5 + parent: 2 + - uid: 8009 + components: + - type: Transform + pos: 32.5,38.5 + parent: 2 + - uid: 8010 + components: + - type: Transform + pos: 32.5,37.5 + parent: 2 + - uid: 8011 + components: + - type: Transform + pos: 32.5,36.5 + parent: 2 + - uid: 8012 + components: + - type: Transform + pos: 32.5,35.5 + parent: 2 + - uid: 8013 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 33.5,34.5 + parent: 2 + - uid: 8014 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 34.5,34.5 + parent: 2 + - uid: 8015 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 35.5,34.5 + parent: 2 + - uid: 8016 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 36.5,34.5 + parent: 2 + - uid: 8017 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 37.5,34.5 + parent: 2 + - uid: 8018 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 38.5,34.5 + parent: 2 + - uid: 8019 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 39.5,34.5 + parent: 2 + - uid: 8020 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 40.5,34.5 + parent: 2 + - uid: 8021 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 41.5,34.5 + parent: 2 + - uid: 8022 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 42.5,34.5 + parent: 2 + - uid: 8023 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 43.5,34.5 + parent: 2 + - uid: 8024 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 44.5,34.5 + parent: 2 + - uid: 8025 + components: + - type: Transform + pos: 46.5,35.5 + parent: 2 + - uid: 8026 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 45.5,34.5 + parent: 2 + - uid: 8027 + components: + - type: Transform + pos: 53.5,45.5 + parent: 2 + - uid: 8028 + components: + - type: Transform + pos: 53.5,44.5 + parent: 2 + - uid: 8029 + components: + - type: Transform + pos: 53.5,43.5 + parent: 2 + - uid: 8030 + components: + - type: Transform + pos: 53.5,42.5 + parent: 2 + - uid: 8031 + components: + - type: Transform + pos: 53.5,41.5 + parent: 2 + - uid: 8032 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 57.5,39.5 + parent: 2 + - uid: 8033 + components: + - type: Transform + pos: 53.5,38.5 + parent: 2 + - uid: 8034 + components: + - type: Transform + pos: 53.5,37.5 + parent: 2 + - uid: 8035 + components: + - type: Transform + pos: 53.5,36.5 + parent: 2 + - uid: 8036 + components: + - type: Transform + pos: 53.5,35.5 + parent: 2 + - uid: 8037 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 61.5,39.5 + parent: 2 + - uid: 8038 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 60.5,39.5 + parent: 2 + - uid: 8039 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 59.5,39.5 + parent: 2 + - uid: 8040 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 58.5,39.5 + parent: 2 + - uid: 8041 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 56.5,39.5 + parent: 2 + - uid: 8042 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 55.5,39.5 + parent: 2 + - uid: 8043 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 54.5,39.5 + parent: 2 + - uid: 8044 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 52.5,34.5 + parent: 2 + - uid: 8045 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 51.5,34.5 + parent: 2 + - uid: 8046 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 50.5,34.5 + parent: 2 + - uid: 8047 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 49.5,34.5 + parent: 2 + - uid: 8048 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 48.5,34.5 + parent: 2 + - uid: 8049 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 47.5,34.5 + parent: 2 + - uid: 8050 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 59.5,34.5 + parent: 2 + - uid: 8051 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 60.5,34.5 + parent: 2 + - uid: 8052 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 61.5,34.5 + parent: 2 + - uid: 8053 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 62.5,34.5 + parent: 2 + - uid: 8054 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 63.5,34.5 + parent: 2 + - uid: 8055 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 64.5,34.5 + parent: 2 + - uid: 8056 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 79.5,30.5 + parent: 2 + - uid: 8057 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 80.5,30.5 + parent: 2 + - uid: 8058 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 81.5,28.5 + parent: 2 + - uid: 8059 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 77.5,44.5 + parent: 2 + - uid: 8060 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 78.5,43.5 + parent: 2 + - uid: 8061 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 79.5,43.5 + parent: 2 + - uid: 8062 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 82.5,43.5 + parent: 2 + - uid: 8063 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 80.5,43.5 + parent: 2 + - uid: 8064 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 79.5,38.5 + parent: 2 + - uid: 8065 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 80.5,38.5 + parent: 2 + - uid: 8066 + components: + - type: Transform + pos: 81.5,42.5 + parent: 2 + - uid: 8067 + components: + - type: Transform + pos: 81.5,41.5 + parent: 2 + - uid: 8068 + components: + - type: Transform + pos: 81.5,40.5 + parent: 2 + - uid: 8069 + components: + - type: Transform + pos: 81.5,39.5 + parent: 2 + - uid: 8070 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 81.5,31.5 + parent: 2 + - uid: 8071 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 81.5,32.5 + parent: 2 + - uid: 8072 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 81.5,33.5 + parent: 2 + - uid: 8073 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 81.5,35.5 + parent: 2 + - uid: 8074 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 81.5,36.5 + parent: 2 + - uid: 8075 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 81.5,37.5 + parent: 2 + - uid: 8076 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 80.5,34.5 + parent: 2 + - uid: 8077 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 79.5,34.5 + parent: 2 + - uid: 8078 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 78.5,34.5 + parent: 2 + - uid: 8079 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 77.5,34.5 + parent: 2 + - uid: 8080 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 76.5,34.5 + parent: 2 + - uid: 8081 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 75.5,34.5 + parent: 2 + - uid: 8082 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 74.5,34.5 + parent: 2 + - uid: 8083 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 73.5,34.5 + parent: 2 + - uid: 8084 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 72.5,34.5 + parent: 2 + - uid: 8085 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 71.5,34.5 + parent: 2 + - uid: 8086 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 70.5,34.5 + parent: 2 + - uid: 8087 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 69.5,34.5 + parent: 2 + - uid: 8088 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 68.5,34.5 + parent: 2 + - uid: 8089 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 66.5,55.5 + parent: 2 + - uid: 8090 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 67.5,55.5 + parent: 2 + - uid: 8091 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 68.5,55.5 + parent: 2 + - uid: 8092 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 69.5,55.5 + parent: 2 + - uid: 8093 + components: + - type: Transform + pos: 65.5,54.5 + parent: 2 + - uid: 8094 + components: + - type: Transform + pos: 65.5,53.5 + parent: 2 + - uid: 8095 + components: + - type: Transform + pos: 65.5,52.5 + parent: 2 + - uid: 8096 + components: + - type: Transform + pos: 65.5,51.5 + parent: 2 + - uid: 8097 + components: + - type: Transform + pos: 65.5,50.5 + parent: 2 + - uid: 8098 + components: + - type: Transform + pos: 65.5,49.5 + parent: 2 + - uid: 8099 + components: + - type: Transform + pos: 65.5,48.5 + parent: 2 + - uid: 8100 + components: + - type: Transform + pos: 65.5,47.5 + parent: 2 + - uid: 8101 + components: + - type: Transform + pos: 65.5,46.5 + parent: 2 + - uid: 8102 + components: + - type: Transform + pos: 65.5,45.5 + parent: 2 + - uid: 8103 + components: + - type: Transform + pos: 65.5,44.5 + parent: 2 + - uid: 8104 + components: + - type: Transform + pos: 65.5,43.5 + parent: 2 + - uid: 8105 + components: + - type: Transform + pos: 65.5,42.5 + parent: 2 + - uid: 8106 + components: + - type: Transform + pos: 65.5,41.5 + parent: 2 + - uid: 8107 + components: + - type: Transform + pos: 65.5,40.5 + parent: 2 + - uid: 8108 + components: + - type: Transform + pos: 65.5,39.5 + parent: 2 + - uid: 8109 + components: + - type: Transform + pos: 65.5,38.5 + parent: 2 + - uid: 8110 + components: + - type: Transform + pos: 65.5,37.5 + parent: 2 + - uid: 8111 + components: + - type: Transform + pos: 65.5,36.5 + parent: 2 + - uid: 8112 + components: + - type: Transform + pos: 65.5,35.5 + parent: 2 + - uid: 8118 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 67.5,27.5 + parent: 2 + - uid: 8119 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 66.5,27.5 + parent: 2 + - uid: 8120 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 65.5,28.5 + parent: 2 + - uid: 8121 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 65.5,29.5 + parent: 2 + - uid: 8122 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 65.5,30.5 + parent: 2 + - uid: 8123 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 65.5,31.5 + parent: 2 + - uid: 8124 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 65.5,32.5 + parent: 2 + - uid: 8125 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 65.5,26.5 + parent: 2 + - uid: 8126 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 65.5,25.5 + parent: 2 + - uid: 8127 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 65.5,24.5 + parent: 2 + - uid: 8128 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 65.5,23.5 + parent: 2 + - uid: 8129 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 65.5,22.5 + parent: 2 + - uid: 8130 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 65.5,21.5 + parent: 2 + - uid: 8131 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 65.5,20.5 + parent: 2 + - uid: 8132 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 65.5,19.5 + parent: 2 + - uid: 8133 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 69.5,17.5 + parent: 2 + - uid: 8134 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 68.5,17.5 + parent: 2 + - uid: 8135 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 67.5,17.5 + parent: 2 + - uid: 8136 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 66.5,17.5 + parent: 2 + - uid: 8137 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 65.5,18.5 + parent: 2 + - uid: 8138 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 65.5,9.5 + parent: 2 + - uid: 8139 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 65.5,10.5 + parent: 2 + - uid: 8140 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 65.5,11.5 + parent: 2 + - uid: 8141 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 65.5,12.5 + parent: 2 + - uid: 8142 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 65.5,13.5 + parent: 2 + - uid: 8143 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 65.5,14.5 + parent: 2 + - uid: 8144 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 65.5,15.5 + parent: 2 + - uid: 8145 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 65.5,16.5 + parent: 2 + - uid: 8146 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 16.5,6.5 + parent: 2 + - uid: 8147 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 17.5,6.5 + parent: 2 + - uid: 8148 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 18.5,6.5 + parent: 2 + - uid: 8149 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 19.5,6.5 + parent: 2 + - uid: 8150 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 20.5,6.5 + parent: 2 + - uid: 8151 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 21.5,6.5 + parent: 2 + - uid: 8152 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 22.5,6.5 + parent: 2 + - uid: 8153 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 23.5,6.5 + parent: 2 + - uid: 8154 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 24.5,6.5 + parent: 2 + - uid: 8155 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 26.5,7.5 + parent: 2 + - uid: 8156 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 27.5,7.5 + parent: 2 + - uid: 8157 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 28.5,7.5 + parent: 2 + - uid: 8158 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 29.5,7.5 + parent: 2 + - uid: 8159 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 30.5,7.5 + parent: 2 + - uid: 8160 + components: + - type: Transform + pos: 31.5,6.5 + parent: 2 + - uid: 8161 + components: + - type: Transform + pos: 31.5,5.5 + parent: 2 + - uid: 8162 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 33.5,4.5 + parent: 2 + - uid: 8163 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 34.5,4.5 + parent: 2 + - uid: 8164 + components: + - type: Transform + pos: 52.5,14.5 + parent: 2 + - uid: 8165 + components: + - type: Transform + pos: 52.5,15.5 + parent: 2 + - uid: 8166 + components: + - type: Transform + pos: 52.5,16.5 + parent: 2 + - uid: 8167 + components: + - type: Transform + pos: 47.5,27.5 + parent: 2 + - uid: 8168 + components: + - type: Transform + pos: 47.5,26.5 + parent: 2 + - uid: 8169 + components: + - type: Transform + pos: 47.5,25.5 + parent: 2 + - uid: 8170 + components: + - type: Transform + pos: 47.5,24.5 + parent: 2 + - uid: 8171 + components: + - type: Transform + pos: 47.5,23.5 + parent: 2 + - uid: 8172 + components: + - type: Transform + pos: 56.5,16.5 + parent: 2 + - uid: 8173 + components: + - type: Transform + pos: 56.5,17.5 + parent: 2 + - uid: 8174 + components: + - type: Transform + pos: 56.5,18.5 + parent: 2 + - uid: 8175 + components: + - type: Transform + pos: 56.5,19.5 + parent: 2 + - uid: 8176 + components: + - type: Transform + pos: 56.5,20.5 + parent: 2 + - uid: 8177 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 55.5,21.5 + parent: 2 + - uid: 8178 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 54.5,21.5 + parent: 2 + - uid: 8179 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 53.5,21.5 + parent: 2 + - uid: 8180 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 52.5,21.5 + parent: 2 + - uid: 8181 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 51.5,21.5 + parent: 2 + - uid: 8182 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 50.5,21.5 + parent: 2 + - uid: 8183 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 49.5,21.5 + parent: 2 + - uid: 8184 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 48.5,21.5 + parent: 2 + - uid: 8185 + components: + - type: Transform + pos: 47.5,22.5 + parent: 2 + - uid: 8186 + components: + - type: Transform + pos: 47.5,20.5 + parent: 2 + - uid: 8187 + components: + - type: Transform + pos: 47.5,19.5 + parent: 2 + - uid: 8188 + components: + - type: Transform + pos: 47.5,18.5 + parent: 2 + - uid: 8189 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 51.5,17.5 + parent: 2 + - uid: 8190 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 50.5,17.5 + parent: 2 + - uid: 8191 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 49.5,17.5 + parent: 2 + - uid: 8192 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 48.5,17.5 + parent: 2 + - uid: 8193 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 46.5,17.5 + parent: 2 + - uid: 8194 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 45.5,17.5 + parent: 2 + - uid: 8195 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 44.5,17.5 + parent: 2 + - uid: 8196 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 43.5,17.5 + parent: 2 + - uid: 8197 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 42.5,17.5 + parent: 2 + - uid: 8198 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 41.5,17.5 + parent: 2 + - uid: 8199 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 40.5,17.5 + parent: 2 + - uid: 8200 + components: + - type: Transform + pos: 39.5,16.5 + parent: 2 + - uid: 8201 + components: + - type: Transform + pos: 39.5,15.5 + parent: 2 + - uid: 8202 + components: + - type: Transform + pos: 39.5,14.5 + parent: 2 + - uid: 8203 + components: + - type: Transform + pos: 39.5,13.5 + parent: 2 + - uid: 8204 + components: + - type: Transform + pos: 39.5,12.5 + parent: 2 + - uid: 8205 + components: + - type: Transform + pos: 39.5,11.5 + parent: 2 + - uid: 8206 + components: + - type: Transform + pos: 39.5,10.5 + parent: 2 + - uid: 8207 + components: + - type: Transform + pos: 39.5,9.5 + parent: 2 + - uid: 8208 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 38.5,8.5 + parent: 2 + - uid: 8209 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 37.5,8.5 + parent: 2 + - uid: 8210 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 36.5,8.5 + parent: 2 + - uid: 8211 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 35.5,5.5 + parent: 2 + - uid: 8212 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 35.5,6.5 + parent: 2 + - uid: 8213 + components: + - type: Transform + pos: -1.5,9.5 + parent: 2 + - uid: 8214 + components: + - type: Transform + pos: -1.5,8.5 + parent: 2 + - uid: 8215 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -2.5,7.5 + parent: 2 + - uid: 8216 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -3.5,7.5 + parent: 2 + - uid: 8217 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -4.5,7.5 + parent: 2 + - uid: 8218 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -5.5,7.5 + parent: 2 + - uid: 8219 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -6.5,7.5 + parent: 2 + - uid: 8220 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -7.5,6.5 + parent: 2 + - uid: 8221 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -7.5,5.5 + parent: 2 + - uid: 8222 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -7.5,4.5 + parent: 2 + - uid: 8223 + components: + - type: Transform + pos: 33.5,-3.5 + parent: 2 + - uid: 8224 + components: + - type: Transform + pos: 33.5,-4.5 + parent: 2 +- proto: DisposalTrunk + entities: + - uid: 8225 + components: + - type: Transform + pos: 46.5,37.5 + parent: 2 + - uid: 8226 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 72.5,17.5 + parent: 2 + - uid: 8227 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 60.5,-4.5 + parent: 2 + - uid: 8228 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 7.5,5.5 + parent: 2 + - uid: 8229 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 12.5,10.5 + parent: 2 + - uid: 8230 + components: + - type: Transform + pos: 33.5,0.5 + parent: 2 + - uid: 8231 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 49.5,-6.5 + parent: 2 + - uid: 8232 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 48.5,-3.5 + parent: 2 + - uid: 8233 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 52.5,40.5 + parent: 2 + - uid: 8234 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 50.5,-2.5 + parent: 2 + - uid: 8235 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 82.5,29.5 + parent: 2 + - uid: 8236 + components: + - type: Transform + pos: 21.5,68.5 + parent: 2 + - uid: 8237 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 21.5,62.5 + parent: 2 + - uid: 8238 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 26.5,45.5 + parent: 2 + - uid: 8239 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 24.5,67.5 + parent: 2 + - uid: 8240 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -33.5,55.5 + parent: 2 + - uid: 8241 + components: + - type: Transform + pos: -24.5,20.5 + parent: 2 + - uid: 8242 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -15.5,7.5 + parent: 2 + - uid: 8243 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -1.5,16.5 + parent: 2 + - uid: 8244 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 14.5,17.5 + parent: 2 + - uid: 8245 + components: + - type: Transform + pos: -33.5,30.5 + parent: 2 + - uid: 8246 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -4.5,26.5 + parent: 2 + - uid: 8247 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -8.5,37.5 + parent: 2 + - uid: 8248 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 2.5,23.5 + parent: 2 + - uid: 8249 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -1.5,46.5 + parent: 2 + - uid: 8250 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 2.5,57.5 + parent: 2 + - uid: 8251 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -29.5,51.5 + parent: 2 + - uid: 8252 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -22.5,51.5 + parent: 2 + - uid: 8253 + components: + - type: Transform + pos: -22.5,64.5 + parent: 2 + - uid: 8254 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -16.5,63.5 + parent: 2 + - uid: 8255 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -17.5,51.5 + parent: 2 + - uid: 8256 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -5.5,66.5 + parent: 2 + - uid: 8257 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 8.5,59.5 + parent: 2 + - uid: 8258 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 7.5,66.5 + parent: 2 + - uid: 8259 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 20.5,55.5 + parent: 2 + - uid: 8260 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 16.5,37.5 + parent: 2 + - uid: 8261 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 27.5,26.5 + parent: 2 + - uid: 8262 + components: + - type: Transform + pos: 9.5,41.5 + parent: 2 + - uid: 8263 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 9.5,23.5 + parent: 2 + - uid: 8264 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 43.5,54.5 + parent: 2 + - uid: 8265 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 42.5,43.5 + parent: 2 + - uid: 8266 + components: + - type: Transform + pos: 53.5,46.5 + parent: 2 + - uid: 8267 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 62.5,39.5 + parent: 2 + - uid: 8268 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 78.5,29.5 + parent: 2 + - uid: 8269 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 80.5,27.5 + parent: 2 + - uid: 8270 + components: + - type: Transform + pos: 77.5,45.5 + parent: 2 + - uid: 8271 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 83.5,43.5 + parent: 2 + - uid: 8272 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 78.5,37.5 + parent: 2 + - uid: 8273 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 70.5,54.5 + parent: 2 + - uid: 8275 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 66.5,8.5 + parent: 2 + - uid: 8276 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 23.5,8.5 + parent: 2 + - uid: 8277 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 34.5,7.5 + parent: 2 + - uid: 8278 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 53.5,13.5 + parent: 2 + - uid: 8279 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 46.5,28.5 + parent: 2 + - uid: 8280 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 55.5,15.5 + parent: 2 + - uid: 8281 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -7.5,3.5 + parent: 2 + - uid: 8282 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 33.5,-5.5 + parent: 2 +- proto: DisposalUnit + entities: + - uid: 8283 + components: + - type: Transform + pos: 12.5,10.5 + parent: 2 + - uid: 8284 + components: + - type: Transform + pos: -4.5,26.5 + parent: 2 + - uid: 8285 + components: + - type: Transform + pos: -8.5,37.5 + parent: 2 + - uid: 8286 + components: + - type: Transform + pos: -1.5,16.5 + parent: 2 + - uid: 8287 + components: + - type: Transform + pos: -24.5,20.5 + parent: 2 + - uid: 8289 + components: + - type: Transform + pos: -17.5,51.5 + parent: 2 + - uid: 8290 + components: + - type: Transform + pos: -22.5,51.5 + parent: 2 + - uid: 8291 + components: + - type: Transform + pos: -22.5,64.5 + parent: 2 + - uid: 8292 + components: + - type: Transform + pos: 33.5,0.5 + parent: 2 + - uid: 8293 + components: + - type: Transform + pos: 34.5,7.5 + parent: 2 + - uid: 8294 + components: + - type: Transform + pos: 50.5,-2.5 + parent: 2 + - uid: 8295 + components: + - type: Transform + pos: 48.5,-3.5 + parent: 2 + - uid: 8296 + components: + - type: Transform + pos: 49.5,-6.5 + parent: 2 + - uid: 8297 + components: + - type: Transform + pos: 53.5,13.5 + parent: 2 + - uid: 8298 + components: + - type: Transform + pos: 55.5,15.5 + parent: 2 + - uid: 8299 + components: + - type: Transform + pos: 46.5,28.5 + parent: 2 + - uid: 8300 + components: + - type: Transform + pos: 23.5,8.5 + parent: 2 + - uid: 8301 + components: + - type: Transform + pos: 2.5,57.5 + parent: 2 + - uid: 8302 + components: + - type: Transform + pos: 7.5,66.5 + parent: 2 + - uid: 8303 + components: + - type: Transform + pos: 8.5,59.5 + parent: 2 + - uid: 8304 + components: + - type: Transform + pos: 21.5,62.5 + parent: 2 + - uid: 8305 + components: + - type: Transform + pos: 26.5,45.5 + parent: 2 + - uid: 8306 + components: + - type: Transform + pos: 24.5,67.5 + parent: 2 + - uid: 8307 + components: + - type: Transform + pos: 20.5,55.5 + parent: 2 + - uid: 8308 + components: + - type: Transform + pos: 46.5,37.5 + parent: 2 + - uid: 8309 + components: + - type: Transform + pos: 53.5,46.5 + parent: 2 + - uid: 8310 + components: + - type: Transform + pos: 52.5,40.5 + parent: 2 + - uid: 8311 + components: + - type: Transform + pos: 62.5,39.5 + parent: 2 + - uid: 8312 + components: + - type: Transform + pos: 43.5,54.5 + parent: 2 + - uid: 8313 + components: + - type: Transform + pos: 42.5,43.5 + parent: 2 + - uid: 8314 + components: + - type: Transform + pos: 27.5,26.5 + parent: 2 + - uid: 8315 + components: + - type: Transform + pos: 9.5,23.5 + parent: 2 + - uid: 8316 + components: + - type: Transform + pos: 9.5,41.5 + parent: 2 + - uid: 8317 + components: + - type: Transform + pos: 16.5,37.5 + parent: 2 + - uid: 8318 + components: + - type: Transform + pos: 78.5,37.5 + parent: 2 + - uid: 8319 + components: + - type: Transform + pos: 78.5,29.5 + parent: 2 + - uid: 8320 + components: + - type: Transform + pos: 80.5,27.5 + parent: 2 + - uid: 8322 + components: + - type: Transform + pos: 72.5,17.5 + parent: 2 + - uid: 8323 + components: + - type: Transform + pos: -1.5,46.5 + parent: 2 + - uid: 8324 + components: + - type: Transform + pos: 2.5,23.5 + parent: 2 + - uid: 8325 + components: + - type: Transform + pos: 14.5,17.5 + parent: 2 + - uid: 8326 + components: + - type: Transform + pos: -15.5,7.5 + parent: 2 + - uid: 8327 + components: + - type: Transform + pos: -33.5,30.5 + parent: 2 + - uid: 8328 + components: + - type: Transform + pos: -16.5,63.5 + parent: 2 + - uid: 8329 + components: + - type: Transform + pos: -29.5,51.5 + parent: 2 + - uid: 8330 + components: + - type: Transform + pos: -33.5,55.5 + parent: 2 + - uid: 8331 + components: + - type: Transform + pos: -5.5,66.5 + parent: 2 + - uid: 8332 + components: + - type: Transform + pos: 70.5,54.5 + parent: 2 + - uid: 8333 + components: + - type: Transform + pos: 83.5,43.5 + parent: 2 + - uid: 8334 + components: + - type: Transform + pos: 77.5,45.5 + parent: 2 + - uid: 8335 + components: + - type: Transform + pos: 82.5,29.5 + parent: 2 + - uid: 8336 + components: + - type: Transform + pos: 66.5,8.5 + parent: 2 + - uid: 8337 + components: + - type: Transform + pos: -7.5,3.5 + parent: 2 + - uid: 8338 + components: + - type: Transform + pos: 33.5,-5.5 + parent: 2 + - uid: 15251 + components: + - type: Transform + pos: 72.5,27.5 + parent: 2 +- proto: DisposalYJunction + entities: + - uid: 8339 + components: + - type: Transform + pos: 7.5,10.5 + parent: 2 + - uid: 8340 + components: + - type: Transform + pos: -12.5,57.5 + parent: 2 + - uid: 8341 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 15.5,7.5 + parent: 2 + - uid: 8342 + components: + - type: Transform + pos: 15.5,20.5 + parent: 2 + - uid: 8343 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -9.5,20.5 + parent: 2 + - uid: 8344 + components: + - type: Transform + pos: 0.5,48.5 + parent: 2 + - uid: 8345 + components: + - type: Transform + pos: 81.5,43.5 + parent: 2 + - uid: 8346 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 81.5,34.5 + parent: 2 + - uid: 8347 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 65.5,34.5 + parent: 2 +- proto: DogBed + entities: + - uid: 8116 + components: + - type: Transform + pos: 74.5,28.5 + parent: 2 + - uid: 8348 + components: + - type: Transform + pos: 78.5,39.5 + parent: 2 + - uid: 8349 + components: + - type: Transform + pos: 52.5,13.5 + parent: 2 + - uid: 8350 + components: + - type: Transform + pos: -14.5,61.5 + parent: 2 + - uid: 8351 + components: + - type: Transform + pos: 20.5,38.5 + parent: 2 + - uid: 8353 + components: + - type: Transform + pos: 13.5,26.5 + parent: 2 + - uid: 12549 + components: + - type: Transform + pos: -3.5,23.5 + parent: 2 + - uid: 18751 + components: + - type: Transform + pos: -1.5,59.5 + parent: 2 + - uid: 19364 + components: + - type: Transform + pos: -8.5,20.5 + parent: 2 + - uid: 19366 + components: + - type: Transform + pos: 0.5,15.5 + parent: 2 + - uid: 19369 + components: + - type: Transform + pos: -12.5,7.5 + parent: 2 +- proto: DonkpocketBoxSpawner + entities: + - uid: 8354 + components: + - type: Transform + pos: -25.5,60.5 + parent: 2 + - uid: 8355 + components: + - type: Transform + pos: 55.5,43.5 + parent: 2 + - uid: 8356 + components: + - type: Transform + pos: 3.5,40.5 + parent: 2 + - uid: 8357 + components: + - type: Transform + pos: 44.5,66.5 + parent: 2 +- proto: DoubleEmergencyNitrogenTankFilled + entities: + - uid: 8358 + components: + - type: Transform + pos: -17.453373,-3.5452433 + parent: 2 +- proto: DoubleEmergencyOxygenTankFilled + entities: + - uid: 8359 + components: + - type: Transform + pos: -11.443108,18.449512 + parent: 2 + - uid: 8360 + components: + - type: Transform + pos: 28.578362,66.59765 + parent: 2 + - uid: 8361 + components: + - type: Transform + pos: -17.453373,-3.3395076 + parent: 2 +- proto: DresserCaptainFilled + entities: + - uid: 8362 + components: + - type: Transform + pos: 77.5,24.5 + parent: 2 +- proto: DresserChiefEngineerFilled + entities: + - uid: 8363 + components: + - type: Transform + pos: -2.5,25.5 + parent: 2 +- proto: DresserChiefMedicalOfficerFilled + entities: + - uid: 14264 + components: + - type: Transform + pos: 20.5,39.5 + parent: 2 +- proto: DresserFilled + entities: + - uid: 8364 + components: + - type: Transform + pos: 40.5,44.5 + parent: 2 +- proto: DresserHeadOfPersonnelFilled + entities: + - uid: 18621 + components: + - type: Transform + pos: 76.5,40.5 + parent: 2 +- proto: DresserHeadOfSecurityFilled + entities: + - uid: 18622 + components: + - type: Transform + pos: -17.5,52.5 + parent: 2 +- proto: DresserQuarterMasterFilled + entities: + - uid: 8365 + components: + - type: Transform + pos: 0.5,17.5 + parent: 2 +- proto: DresserResearchDirectorFilled + entities: + - uid: 13598 + components: + - type: Transform + pos: 51.5,13.5 + parent: 2 +- proto: DrinkBeerBottleFull + entities: + - uid: 8366 + components: + - type: Transform + pos: 49.910133,60.460823 + parent: 2 + - uid: 8367 + components: + - type: Transform + pos: 49.748734,60.783405 + parent: 2 + - uid: 8368 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 49.766666,60.3533 + parent: 2 +- proto: DrinkBlueCuracaoBottleFull + entities: + - uid: 8369 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 47.56086,61.159748 + parent: 2 + - uid: 8370 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 47.381527,60.926773 + parent: 2 + - uid: 8371 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 47.66846,61.07014 + parent: 2 + - uid: 8372 + components: + - type: Transform + pos: 47.07666,61.267273 + parent: 2 +- proto: DrinkBottleCoffeeLiqueur + entities: + - uid: 8373 + components: + - type: Transform + pos: 48.923798,60.60419 + parent: 2 + - uid: 8374 + components: + - type: Transform + pos: 48.905865,60.12032 + parent: 2 +- proto: DrinkGoldenCup + entities: + - uid: 8375 + components: + - type: Transform + pos: 31.641338,54.32857 + parent: 2 +- proto: DrinkVermouthBottleFull + entities: + - uid: 8376 + components: + - type: Transform + pos: 31.767677,53.86565 + parent: 2 +- proto: DrinkWineBottleFull + entities: + - uid: 8377 + components: + - type: Transform + pos: 10.612774,60.678593 + parent: 2 + - uid: 18772 + components: + - type: Transform + pos: 9.289278,56.894657 + parent: 2 + - uid: 18773 + components: + - type: Transform + pos: 11.675882,56.894657 + parent: 2 +- proto: Dropper + entities: + - uid: 8378 + components: + - type: Transform + pos: 47.767334,31.689003 + parent: 2 +- proto: ElectricGuitarInstrument + entities: + - uid: 19499 + components: + - type: Transform + pos: -31.581257,67.58908 + parent: 2 +- proto: EmergencyRollerBedSpawnFolded + entities: + - uid: 8379 + components: + - type: Transform + pos: 7.3722377,37.43149 + parent: 2 + - uid: 8380 + components: + - type: Transform + pos: 7.6352606,37.682384 + parent: 2 + - uid: 8381 + components: + - type: Transform + pos: 7.3961487,37.65849 + parent: 2 +- proto: Emitter + entities: + - uid: 8382 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -21.5,34.5 + parent: 2 + - uid: 8383 + components: + - type: Transform + pos: -19.5,36.5 + parent: 2 + - uid: 8384 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -19.5,32.5 + parent: 2 +- proto: EncryptionKeyCargo + entities: + - uid: 8386 + components: + - type: Transform + parent: 8385 + - type: Physics + canCollide: False +- proto: EncryptionKeyCommand + entities: + - uid: 8388 + components: + - type: Transform + parent: 8387 + - type: Physics + canCollide: False +- proto: EncryptionKeyCommon + entities: + - uid: 8390 + components: + - type: Transform + parent: 8389 + - type: Physics + canCollide: False +- proto: EncryptionKeyEngineering + entities: + - uid: 8392 + components: + - type: Transform + parent: 8391 + - type: Physics + canCollide: False +- proto: EncryptionKeyMedical + entities: + - uid: 8394 + components: + - type: Transform + parent: 8393 + - type: Physics + canCollide: False +- proto: EncryptionKeyScience + entities: + - uid: 8396 + components: + - type: Transform + parent: 8395 + - type: Physics + canCollide: False +- proto: EncryptionKeySecurity + entities: + - uid: 8398 + components: + - type: Transform + parent: 8397 + - type: Physics + canCollide: False +- proto: EncryptionKeyService + entities: + - uid: 8400 + components: + - type: Transform + parent: 8399 + - type: Physics + canCollide: False +- proto: EpinephrineChemistryBottle + entities: + - uid: 8401 + components: + - type: Transform + pos: 15.344378,28.906837 + parent: 2 + - uid: 8402 + components: + - type: Transform + pos: 15.751467,28.850725 + parent: 2 + - uid: 8403 + components: + - type: Transform + pos: 27.41061,31.748636 + parent: 2 + - uid: 8404 + components: + - type: Transform + pos: 27.607136,31.538218 + parent: 2 + - uid: 8405 + components: + - type: Transform + pos: 14.622032,38.709717 + parent: 2 +- proto: ExosuitFabricator + entities: + - uid: 8406 + components: + - type: Transform + pos: 57.5,22.5 + parent: 2 + - uid: 8407 + components: + - type: Transform + pos: 58.5,22.5 + parent: 2 +- proto: ExtinguisherCabinetFilled + entities: + - uid: 8408 + components: + - type: Transform + pos: 74.5,63.5 + parent: 2 + - uid: 8409 + components: + - type: Transform + pos: 72.5,57.5 + parent: 2 + - uid: 8410 + components: + - type: Transform + pos: 37.5,12.5 + parent: 2 + - uid: 8411 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 13.5,11.5 + parent: 2 + - uid: 8412 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 20.5,18.5 + parent: 2 + - uid: 8413 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 16.5,36.5 + parent: 2 + - uid: 8414 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 8.5,25.5 + parent: 2 + - uid: 8415 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -23.5,13.5 + parent: 2 + - uid: 8416 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -16.5,6.5 + parent: 2 + - uid: 8417 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 5.5,5.5 + parent: 2 + - uid: 8418 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 19.5,9.5 + parent: 2 + - uid: 8419 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 34.5,26.5 + parent: 2 + - uid: 8420 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 42.5,32.5 + parent: 2 + - uid: 8421 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 45.5,27.5 + parent: 2 + - uid: 8422 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 57.5,25.5 + parent: 2 + - uid: 8423 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 83.5,38.5 + parent: 2 + - uid: 8424 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 73.5,41.5 + parent: 2 + - uid: 8425 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 34.5,40.5 + parent: 2 + - uid: 8426 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 38.5,50.5 + parent: 2 + - uid: 8427 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 25.5,50.5 + parent: 2 + - uid: 8428 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 11.5,50.5 + parent: 2 + - uid: 8429 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 7.5,63.5 + parent: 2 + - uid: 8430 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 13.5,72.5 + parent: 2 + - uid: 8431 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -2.5,72.5 + parent: 2 + - uid: 8432 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -19.5,59.5 + parent: 2 + - uid: 8433 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -6.5,57.5 + parent: 2 + - uid: 8434 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -29.5,56.5 + parent: 2 + - uid: 8435 + components: + - type: Transform + pos: 72.5,36.5 + parent: 2 + - uid: 8436 + components: + - type: Transform + pos: 79.5,29.5 + parent: 2 + - uid: 8437 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 84.5,26.5 + parent: 2 + - uid: 18757 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -23.5,14.5 + parent: 2 +- proto: FaxMachineBase + entities: + - uid: 1827 + components: + - type: Transform + pos: 76.5,28.5 + parent: 2 + - uid: 8438 + components: + - type: Transform + pos: -5.5,26.5 + parent: 2 + - uid: 8439 + components: + - type: Transform + pos: 1.5,14.5 + parent: 2 + - uid: 8440 + components: + - type: Transform + pos: -16.5,62.5 + parent: 2 + - uid: 8441 + components: + - type: Transform + pos: -17.5,53.5 + parent: 2 + - uid: 8442 + components: + - type: Transform + pos: -22.5,52.5 + parent: 2 + - uid: 8444 + components: + - type: Transform + pos: 51.5,14.5 + parent: 2 + - uid: 8445 + components: + - type: Transform + pos: 16.5,56.5 + parent: 2 + - uid: 8446 + components: + - type: Transform + pos: 16.5,39.5 + parent: 2 + - uid: 8447 + components: + - type: Transform + pos: 76.5,38.5 + parent: 2 + - uid: 8448 + components: + - type: Transform + pos: 82.5,35.5 + parent: 2 +- proto: filingCabinetDrawerRandom + entities: + - uid: 8450 + components: + - type: Transform + pos: 45.5,14.5 + parent: 2 + - uid: 8451 + components: + - type: Transform + pos: -1.5,58.5 + parent: 2 + - uid: 8452 + components: + - type: Transform + pos: 29.5,56.5 + parent: 2 + - uid: 8453 + components: + - type: Transform + pos: 8.5,28.5 + parent: 2 + - uid: 8454 + components: + - type: Transform + pos: 59.5,56.5 + parent: 2 + - uid: 8455 + components: + - type: Transform + pos: 36.5,1.5 + parent: 2 +- proto: filingCabinetRandom + entities: + - uid: 8456 + components: + - type: Transform + pos: -2.5,31.5 + parent: 2 +- proto: FireAlarm + entities: + - uid: 8457 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 63.5,55.5 + parent: 2 + - type: DeviceList + devices: + - 8553 + - 8551 + - 8550 + - 8549 + - 8922 + - 8552 + - uid: 8458 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 60.5,55.5 + parent: 2 + - type: DeviceList + devices: + - 8554 + - 8555 + - 8553 + - 8915 + - 8916 + - 8917 + - uid: 8459 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 72.5,56.5 + parent: 2 + - type: DeviceList + devices: + - 8549 + - 8550 + - 8551 + - 8552 + - 8553 + - uid: 8460 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 73.5,58.5 + parent: 2 + - type: DeviceList + devices: + - 8552 + - uid: 8461 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 72.5,41.5 + parent: 2 + - type: DeviceList + devices: + - 8585 + - 8584 + - 8561 + - 8560 + - uid: 8462 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 75.5,41.5 + parent: 2 + - type: DeviceList + devices: + - 8585 + - 8584 + - 8561 + - 8560 + - uid: 8463 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 73.5,46.5 + parent: 2 + - type: DeviceList + devices: + - 8558 + - 8557 + - 8559 + - 8586 + - uid: 8464 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 63.5,36.5 + parent: 2 + - type: DeviceList + devices: + - 8567 + - 8568 + - 8569 + - 8573 + - 8574 + - 8575 + - 8566 + - 8565 + - 8564 + - 8572 + - 8571 + - 8570 + - 8874 + - 8607 + - 8606 + - 8605 + - 8619 + - 8618 + - 8617 + - 8627 + - 8628 + - 8629 + - 8822 + - 8838 + - 8839 + - uid: 8465 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 67.5,32.5 + parent: 2 + - type: DeviceList + devices: + - 8572 + - 8571 + - 8570 + - 8567 + - 8568 + - 8569 + - 8574 + - 8573 + - 8575 + - 8566 + - 8565 + - 8564 + - 8560 + - 8561 + - 8562 + - 8563 + - uid: 8466 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 58.5,41.5 + parent: 2 + - type: DeviceList + devices: + - 8607 + - 8606 + - 8605 + - 8619 + - 8618 + - 8617 + - 8611 + - 8612 + - 8925 + - 8609 + - 8608 + - 8610 + - 8623 + - 8622 + - 8616 + - uid: 8467 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 58.5,36.5 + parent: 2 + - type: DeviceList + devices: + - 8607 + - 8606 + - 8605 + - 8839 + - 8838 + - 8822 + - 8629 + - 8628 + - 8627 + - 8617 + - 8618 + - 8619 + - 8573 + - 8574 + - 8575 + - 8875 + - 8874 + - uid: 8468 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 57.5,31.5 + parent: 2 + - type: DeviceList + devices: + - 8839 + - 8838 + - 8822 + - 8846 + - 8840 + - 8841 + - 8842 + - 8875 + - uid: 8469 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 49.5,29.5 + parent: 2 + - type: DeviceList + devices: + - 8845 + - 8846 + - 8847 + - 8848 + - 8840 + - uid: 8470 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 46.5,19.5 + parent: 2 + - type: DeviceList + devices: + - 8845 + - 8846 + - 8847 + - 8848 + - 8840 + - 8862 + - 8849 + - 8850 + - 8859 + - 8852 + - 8843 + - uid: 8471 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 61.5,22.5 + parent: 2 + - type: DeviceList + devices: + - 8844 + - 8842 + - 8677 + - 8871 + - uid: 8472 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 41.5,10.5 + parent: 2 + - type: DeviceList + devices: + - 8849 + - 8853 + - 8867 + - 8863 + - uid: 8473 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 37.5,5.5 + parent: 2 + - uid: 8474 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 32.5,1.5 + parent: 2 + - type: DeviceList + devices: + - 8855 + - 8853 + - 8854 + - 8857 + - 8864 + - uid: 8475 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 50.5,8.5 + parent: 2 + - type: DeviceList + devices: + - 8858 + - 8859 + - 8861 + - 8860 + - uid: 8476 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 38.5,36.5 + parent: 2 + - type: DeviceList + devices: + - 8630 + - 8631 + - 8632 + - 8656 + - 8654 + - 8655 + - uid: 8477 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 34.5,41.5 + parent: 2 + - type: DeviceList + devices: + - 8636 + - 8638 + - 8637 + - 8642 + - 8643 + - 8639 + - 8644 + - 8645 + - uid: 8478 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 43.5,43.5 + parent: 2 + - type: DeviceList + devices: + - 8622 + - 8616 + - 8623 + - 8613 + - 8624 + - uid: 8479 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 51.5,42.5 + parent: 2 + - uid: 8480 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 53.5,47.5 + parent: 2 + - type: DeviceList + devices: + - 8610 + - 8608 + - 8609 + - 8614 + - 8625 + - uid: 8481 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 59.5,40.5 + parent: 2 + - type: DeviceList + devices: + - 8925 + - 8641 + - 8640 + - uid: 8482 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 30.5,36.5 + parent: 2 + - uid: 8483 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 30.5,43.5 + parent: 2 + - uid: 8484 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 34.5,50.5 + parent: 2 + - type: DeviceList + devices: + - 8676 + - 8927 + - 8657 + - 8658 + - 8659 + - 8667 + - 8666 + - 8556 + - 8665 + - 8664 + - 8663 + - 8661 + - 8662 + - 8660 + - uid: 8485 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 20.5,50.5 + parent: 2 + - uid: 8486 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 14.5,50.5 + parent: 2 + - uid: 8487 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 9.5,45.5 + parent: 2 + - uid: 8488 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 7.5,57.5 + parent: 2 + - uid: 8489 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 9.5,69.5 + parent: 2 + - uid: 8490 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 1.5,65.5 + parent: 2 + - uid: 8491 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 1.5,61.5 + parent: 2 + - uid: 8492 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -9.5,57.5 + parent: 2 + - type: DeviceList + devices: + - 8725 + - 8724 + - 8723 + - 8523 + - 8522 + - 8524 + - 8521 + - 8525 + - 8526 + - 8527 + - 8717 + - uid: 8493 + components: + - type: Transform + pos: 15.5,40.5 + parent: 2 + - type: DeviceList + devices: + - 8881 + - 8883 + - 8882 + - uid: 8494 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 16.5,33.5 + parent: 2 + - type: DeviceList + devices: + - 8891 + - 8890 + - 8885 + - 8886 + - 8894 + - 8892 + - 8893 + - 8895 + - 8907 + - 8906 + - 8905 + - 8908 + - 8883 + - 465 + - 8931 + - 8930 + - uid: 8495 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 24.5,35.5 + parent: 2 + - type: DeviceList + devices: + - 8889 + - 8887 + - 8888 + - 8649 + - 8650 + - 8633 + - uid: 8496 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 31.5,18.5 + parent: 2 + - type: DeviceList + devices: + - 8670 + - 8669 + - 8635 + - 8634 + - 8830 + - 8831 + - 8832 + - 8829 + - 8828 + - 8675 + - uid: 8497 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 27.5,13.5 + parent: 2 + - type: DeviceList + devices: + - 8833 + - 8836 + - 8837 + - 8829 + - 8828 + - 8835 + - uid: 8498 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 9.5,9.5 + parent: 2 + - type: DeviceList + devices: + - 8810 + - 8809 + - 8811 + - 8823 + - 8824 + - 8812 + - uid: 8499 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 5.5,6.5 + parent: 2 + - type: DeviceList + devices: + - 8810 + - 8809 + - 8807 + - 8815 + - 8816 + - 8826 + - 8825 + - 8821 + - 8808 + - uid: 8500 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -6.5,28.5 + parent: 2 + - uid: 8501 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -8.5,6.5 + parent: 2 + - type: DeviceList + devices: + - 8826 + - 8825 + - 8817 + - 8819 + - 8820 + - 8827 + - 8802 + - 8932 + - 8933 + - uid: 8502 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -7.5,33.5 + parent: 2 + - type: DeviceList + devices: + - 8774 + - 8773 + - 8769 + - uid: 8503 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -11.5,22.5 + parent: 2 + - type: DeviceList + devices: + - 8790 + - 8792 + - 8791 + - uid: 8504 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -16.5,21.5 + parent: 2 + - type: DeviceList + devices: + - 8790 + - 8787 + - 8789 + - 8786 + - 8788 + - uid: 8505 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -23.5,12.5 + parent: 2 + - type: DeviceList + devices: + - 8786 + - 8926 + - 8785 + - uid: 8506 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -37.5,28.5 + parent: 2 + - type: DeviceList + devices: + - 8783 + - 8785 + - 8782 + - uid: 8507 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -15.5,42.5 + parent: 2 + - type: DeviceList + devices: + - 8779 + - 8778 + - 8796 + - uid: 8508 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -17.5,44.5 + parent: 2 + - type: DeviceList + devices: + - 8780 + - 8779 + - uid: 8509 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -13.5,53.5 + parent: 2 + - type: DeviceList + devices: + - 8711 + - 8710 + - 8712 + - 8723 + - 8724 + - 8725 + - 8721 + - 8722 + - 8726 + - 8720 + - 8719 + - uid: 8510 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -31.5,59.5 + parent: 2 + - type: DeviceList + devices: + - 8738 + - 8739 + - 8748 + - 8744 + - uid: 8511 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -25.5,52.5 + parent: 2 + - type: DeviceList + devices: + - 8748 + - 8742 + - uid: 8512 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -26.5,68.5 + parent: 2 + - type: DeviceList + devices: + - 8741 + - 8740 + - 11774 + - 11601 + - 8745 + - 8746 + - 11598 + - 11772 + - 392 + - 19592 + - 19591 + - 11773 + - 19382 + - 19383 + - 11599 + - 19593 + - 19594 + - 19595 + - 19596 + - 19597 + - 19598 + - 19599 + - 8539 + - 8541 + - uid: 8513 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -15.5,64.5 + parent: 2 + - type: DeviceList + devices: + - 8732 + - 8734 + - 8735 + - 8733 + - 8736 + - 8737 + - uid: 8514 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -8.5,66.5 + parent: 2 + - type: DeviceList + devices: + - 8727 + - 8729 + - uid: 8515 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 14.5,60.5 + parent: 2 + - type: DeviceList + devices: + - 8700 + - 8699 + - 8701 + - 8702 + - uid: 8516 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 19.5,57.5 + parent: 2 + - type: DeviceList + devices: + - 8705 + - 8706 + - 8707 + - 8703 + - 8704 + - uid: 8517 + components: + - type: Transform + pos: 27.5,-7.5 + parent: 2 + - type: DeviceList + devices: + - 8939 + - 8936 + - 472 + - 11705 + - 11859 + - 8937 + - 8938 + - 473 + - 11704 + - 11858 + - 8940 + - 8941 + - 8854 + - 11674 + - 11826 + - uid: 8518 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 38.5,-10.5 + parent: 2 + - uid: 18620 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 79.5,31.5 + parent: 2 + - type: DeviceList + devices: + - 304 + - 18618 + - 18619 + - 8581 + - 8580 + - 8583 + - 8582 + - 8586 + - 8584 + - 8563 + - 8562 + - 8576 + - 8588 + - 8577 + - uid: 18627 + components: + - type: Transform + pos: 76.5,27.5 + parent: 2 + - type: DeviceList + devices: + - 18628 + - 11678 + - 11842 + - 8579 + - 18625 + - 18624 + - 18623 + - 8588 + - 8578 + - 11838 + - 11687 + - 11688 + - 428 + - 11839 + - 8590 + - uid: 19586 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -35.5,72.5 + parent: 2 + - type: DeviceList + devices: + - 19493 + - 19574 + - 19575 + - 19576 + - 19577 + - 19578 + - 19579 + - 19580 + - 19584 + - 19583 + - 19573 + - 19401 + - 19400 + - uid: 19587 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -25.5,75.5 + parent: 2 + - type: DeviceList + devices: + - 19582 + - 19581 + - 19403 + - 19402 + - 19585 +- proto: FireAxeCabinetFilled + entities: + - uid: 8519 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -29.5,21.5 + parent: 2 + - uid: 8520 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 83.5,30.5 + parent: 2 +- proto: FirelockEdge + entities: + - uid: 304 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 84.5,35.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 5 + - 18620 + - uid: 8521 + components: + - type: Transform + pos: -4.5,53.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 24 + - 8492 + - uid: 8522 + components: + - type: Transform + pos: -8.5,53.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 24 + - 8492 + - uid: 8523 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -8.5,53.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 24 + - 8492 + - uid: 8524 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -4.5,53.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 24 + - 8492 + - uid: 8525 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -0.5,53.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 24 + - 8492 + - uid: 8526 + components: + - type: Transform + pos: -0.5,53.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 24 + - 8492 + - uid: 8527 + components: + - type: Transform + pos: -4.5,57.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 24 + - 8492 + - uid: 8539 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -37.5,68.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 28 + - 19588 + - 8512 + - uid: 8540 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -30.5,52.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 29 + - uid: 8541 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -37.5,67.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 28 + - 19588 + - 8512 + - uid: 8542 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -30.5,52.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 29 + - uid: 8543 + components: + - type: Transform + pos: -18.5,20.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 41 + - uid: 8544 + components: + - type: Transform + pos: -14.5,5.5 + parent: 2 + - uid: 8545 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -36.5,30.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 45 + - uid: 18618 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 84.5,34.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 5 + - 18620 + - uid: 18619 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 84.5,33.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 5 + - 18620 + - uid: 18623 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 72.5,31.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 18626 + - 18627 + - uid: 18624 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 72.5,29.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 18626 + - 18627 + - uid: 18625 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 72.5,28.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 18626 + - 18627 + - uid: 19493 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -34.5,70.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 19586 + - 19589 + - uid: 19557 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -36.5,75.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 19589 + - uid: 19558 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -36.5,76.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 19589 + - uid: 19559 + components: + - type: Transform + pos: -35.5,77.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 19589 + - uid: 19560 + components: + - type: Transform + pos: -34.5,78.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 19589 + - uid: 19561 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -35.5,77.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 19589 + - uid: 19562 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -34.5,78.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 19589 + - uid: 19563 + components: + - type: Transform + pos: -33.5,79.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 19589 + - uid: 19564 + components: + - type: Transform + pos: -32.5,79.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 19589 + - uid: 19565 + components: + - type: Transform + pos: -31.5,79.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 19589 + - uid: 19566 + components: + - type: Transform + pos: -30.5,79.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 19589 + - uid: 19567 + components: + - type: Transform + pos: -29.5,79.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 19589 + - uid: 19568 + components: + - type: Transform + pos: -28.5,78.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 19589 + - uid: 19569 + components: + - type: Transform + pos: -27.5,77.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 19589 + - uid: 19570 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -27.5,77.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 19589 + - uid: 19571 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -28.5,78.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 19589 + - uid: 19574 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -33.5,70.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 19586 + - 19589 + - uid: 19575 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -32.5,70.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 19586 + - 19589 + - uid: 19576 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -31.5,70.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 19586 + - 19589 + - uid: 19577 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -30.5,70.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 19586 + - 19589 + - uid: 19578 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -29.5,70.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 19586 + - 19589 + - uid: 19579 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -28.5,70.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 19586 + - 19589 + - uid: 19580 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -27.5,70.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 19586 + - 19589 + - uid: 19581 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -26.5,74.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 19587 + - 19590 + - uid: 19582 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -26.5,73.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 19587 + - 19590 + - uid: 19583 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -26.5,74.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 19589 + - 19586 + - uid: 19584 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -26.5,73.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 19589 + - 19586 + - uid: 19593 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -33.5,69.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 19588 + - 8512 + - uid: 19594 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -32.5,69.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 19588 + - 8512 + - uid: 19595 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -31.5,69.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 19588 + - 8512 + - uid: 19596 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -30.5,69.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 19588 + - 8512 + - uid: 19597 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -29.5,69.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 19588 + - 8512 + - uid: 19598 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -28.5,69.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 19588 + - 8512 + - uid: 19599 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -27.5,69.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 19588 + - 8512 +- proto: FirelockGlass + entities: + - uid: 8546 + components: + - type: Transform + pos: 2.5,29.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 76 + - 37 + - 80 + - uid: 8547 + components: + - type: Transform + pos: -3.5,18.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 80 + - uid: 8548 + components: + - type: Transform + pos: -1.5,35.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 37 + - 80 + - uid: 8549 + components: + - type: Transform + pos: 66.5,52.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 3 + - 8459 + - 8457 + - 4 + - uid: 8550 + components: + - type: Transform + pos: 65.5,52.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 3 + - 8459 + - 8457 + - 4 + - uid: 8551 + components: + - type: Transform + pos: 64.5,52.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 3 + - 8459 + - 8457 + - 4 + - uid: 8552 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 71.5,60.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 3 + - 8460 + - 8459 + - 8457 + - uid: 8553 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 61.5,60.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 3 + - 8459 + - 8458 + - 8457 + - uid: 8554 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 60.5,58.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 3 + - 8458 + - uid: 8555 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 58.5,57.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 3 + - 8458 + - uid: 8556 + components: + - type: Transform + pos: 27.5,49.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 15 + - 8484 + - uid: 8557 + components: + - type: Transform + pos: 69.5,45.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 6 + - 8463 + - uid: 8558 + components: + - type: Transform + pos: 72.5,45.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 6 + - 8463 + - uid: 8559 + components: + - type: Transform + pos: 79.5,43.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 6 + - 5 + - 8463 + - uid: 8560 + components: + - type: Transform + pos: 69.5,36.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 8465 + - 8461 + - 8462 + - uid: 8561 + components: + - type: Transform + pos: 70.5,36.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 8465 + - 8461 + - 8462 + - uid: 8562 + components: + - type: Transform + pos: 74.5,34.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 8465 + - 5 + - 18620 + - uid: 8563 + components: + - type: Transform + pos: 78.5,34.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 8465 + - 5 + - 18620 + - uid: 8564 + components: + - type: Transform + pos: 66.5,32.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 4 + - 8465 + - 8464 + - uid: 8565 + components: + - type: Transform + pos: 65.5,32.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 4 + - 8465 + - 8464 + - uid: 8566 + components: + - type: Transform + pos: 64.5,32.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 4 + - 8465 + - 8464 + - uid: 8567 + components: + - type: Transform + pos: 66.5,36.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 4 + - 8465 + - 8464 + - uid: 8568 + components: + - type: Transform + pos: 65.5,36.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 4 + - 8465 + - 8464 + - uid: 8569 + components: + - type: Transform + pos: 64.5,36.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 4 + - 8465 + - 8464 + - uid: 8570 + components: + - type: Transform + pos: 67.5,35.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 4 + - 8465 + - 8464 + - uid: 8571 + components: + - type: Transform + pos: 67.5,34.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 4 + - 8465 + - 8464 + - uid: 8572 + components: + - type: Transform + pos: 67.5,33.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 4 + - 8465 + - 8464 + - uid: 8573 + components: + - type: Transform + pos: 63.5,35.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 4 + - 10 + - 8465 + - 8464 + - 8467 + - uid: 8574 + components: + - type: Transform + pos: 63.5,34.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 4 + - 10 + - 8465 + - 8464 + - 8467 + - uid: 8575 + components: + - type: Transform + pos: 63.5,33.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 4 + - 10 + - 8465 + - 8464 + - 8467 + - uid: 8576 + components: + - type: Transform + pos: 81.5,28.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 5 + - 18620 + - uid: 8577 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 81.5,20.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 5 + - 18620 + - uid: 8578 + components: + - type: Transform + pos: 77.5,27.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 5 + - 18626 + - 18627 + - uid: 8579 + components: + - type: Transform + pos: 67.5,27.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 8 + - 18626 + - 18627 + - uid: 8580 + components: + - type: Transform + pos: 83.5,32.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 5 + - 18620 + - uid: 8581 + components: + - type: Transform + pos: 83.5,31.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 5 + - 18620 + - uid: 8582 + components: + - type: Transform + pos: 83.5,37.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 5 + - 18620 + - uid: 8583 + components: + - type: Transform + pos: 83.5,36.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 5 + - 18620 + - uid: 8584 + components: + - type: Transform + pos: 79.5,38.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 5 + - 8461 + - 8462 + - 18620 + - uid: 8585 + components: + - type: Transform + pos: 73.5,40.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 5 + - 8461 + - 8462 + - uid: 8586 + components: + - type: Transform + pos: 81.5,41.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 5 + - 8463 + - 18620 + - uid: 8588 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 79.5,30.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 7 + - 5 + - 18620 + - 18626 + - 18627 + - uid: 8589 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 81.5,45.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 5 + - uid: 8590 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 75.5,25.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 7 + - 18626 + - 18627 + - uid: 8592 + components: + - type: Transform + pos: 64.5,12.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 8 + - 9 + - uid: 8593 + components: + - type: Transform + pos: 65.5,12.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 8 + - 9 + - uid: 8594 + components: + - type: Transform + pos: 66.5,12.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 8 + - 9 + - uid: 8595 + components: + - type: Transform + pos: 71.5,16.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 8 + - uid: 8596 + components: + - type: Transform + pos: 73.5,18.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 8 + - uid: 8597 + components: + - type: Transform + pos: 66.5,22.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 8 + - 4 + - uid: 8598 + components: + - type: Transform + pos: 65.5,22.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 8 + - 4 + - uid: 8599 + components: + - type: Transform + pos: 64.5,22.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 8 + - 4 + - uid: 8600 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 65.5,7.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 9 + - uid: 8601 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 68.5,3.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 9 + - uid: 8602 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 70.5,9.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 9 + - uid: 8603 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 70.5,10.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 9 + - uid: 8604 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 70.5,11.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 9 + - uid: 8605 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 55.5,36.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 10 + - 8464 + - 8466 + - 8467 + - uid: 8606 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 56.5,36.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 10 + - 8464 + - 8466 + - 8467 + - uid: 8607 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 57.5,36.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 10 + - 8464 + - 8466 + - 8467 + - uid: 8608 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 57.5,41.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 10 + - 8466 + - 8480 + - uid: 8609 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 56.5,41.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 10 + - 8466 + - 8480 + - uid: 8610 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 55.5,41.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 10 + - 8466 + - 8480 + - uid: 8611 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 59.5,39.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 10 + - 8466 + - uid: 8612 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 59.5,38.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 10 + - 8466 + - uid: 8613 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 48.5,46.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 11 + - 8478 + - uid: 8614 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 53.5,41.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 8480 + - uid: 8615 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 49.5,39.5 + parent: 2 + - uid: 8616 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 49.5,38.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 8466 + - 8478 + - uid: 8617 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 50.5,36.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 10 + - 8464 + - 8466 + - 8467 + - uid: 8618 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 51.5,36.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 10 + - 8464 + - 8466 + - 8467 + - uid: 8619 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 52.5,36.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 10 + - 8464 + - 8466 + - 8467 + - uid: 8620 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 45.5,36.5 + parent: 2 + - uid: 8621 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 49.5,38.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 11 + - uid: 8622 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 49.5,39.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 11 + - 8466 + - 8478 + - uid: 8623 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 50.5,41.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 10 + - 11 + - 8466 + - 8478 + - uid: 8624 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 47.5,49.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 11 + - 8478 + - uid: 8625 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 54.5,47.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 13 + - 8480 + - uid: 8626 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 56.5,49.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 13 + - uid: 8627 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 49.5,35.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 10 + - 8464 + - 8467 + - uid: 8628 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 49.5,34.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 10 + - 8464 + - 8467 + - uid: 8629 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 49.5,33.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 10 + - 8464 + - 8467 + - uid: 8630 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 43.5,35.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 8476 + - uid: 8631 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 43.5,34.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 8476 + - uid: 8632 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 43.5,33.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 8476 + - uid: 8633 + components: + - type: Transform + pos: 30.5,33.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 14 + - 77 + - 8495 + - uid: 8634 + components: + - type: Transform + pos: 33.5,22.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 14 + - 55 + - 8496 + - uid: 8635 + components: + - type: Transform + pos: 32.5,22.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 14 + - 55 + - 8496 + - uid: 8636 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 34.5,39.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 12 + - 8477 + - uid: 8637 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 34.5,38.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 12 + - 8477 + - uid: 8638 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 41.5,41.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 12 + - 8477 + - uid: 8639 + components: + - type: Transform + pos: 34.5,45.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 12 + - 8477 + - uid: 8640 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 60.5,45.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 10 + - 8481 + - uid: 8641 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 61.5,41.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 10 + - 8481 + - uid: 8642 + components: + - type: Transform + pos: 41.5,46.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 12 + - 8477 + - uid: 8643 + components: + - type: Transform + pos: 37.5,46.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 12 + - 8477 + - uid: 8644 + components: + - type: Transform + pos: 34.5,44.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 12 + - 8477 + - uid: 8645 + components: + - type: Transform + pos: 34.5,43.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 12 + - 8477 + - uid: 8646 + components: + - type: Transform + pos: 33.5,36.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 14 + - uid: 8647 + components: + - type: Transform + pos: 32.5,36.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 14 + - uid: 8648 + components: + - type: Transform + pos: 31.5,36.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 14 + - uid: 8649 + components: + - type: Transform + pos: 30.5,34.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 14 + - 77 + - 8495 + - uid: 8650 + components: + - type: Transform + pos: 30.5,35.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 14 + - 77 + - 8495 + - uid: 8651 + components: + - type: Transform + pos: 33.5,32.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 14 + - uid: 8652 + components: + - type: Transform + pos: 32.5,32.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 14 + - uid: 8653 + components: + - type: Transform + pos: 31.5,32.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 14 + - uid: 8654 + components: + - type: Transform + pos: 34.5,34.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 14 + - 8476 + - uid: 8655 + components: + - type: Transform + pos: 34.5,33.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 14 + - 8476 + - uid: 8656 + components: + - type: Transform + pos: 34.5,35.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 14 + - 8476 + - uid: 8657 + components: + - type: Transform + pos: 33.5,46.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 15 + - 8484 + - uid: 8658 + components: + - type: Transform + pos: 32.5,46.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 15 + - 8484 + - uid: 8659 + components: + - type: Transform + pos: 31.5,46.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 15 + - 8484 + - uid: 8660 + components: + - type: Transform + pos: 30.5,46.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 8484 + - 14 + - uid: 8661 + components: + - type: Transform + pos: 30.5,50.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 15 + - 8484 + - uid: 8662 + components: + - type: Transform + pos: 30.5,52.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 15 + - 8484 + - uid: 8663 + components: + - type: Transform + pos: 37.5,49.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 15 + - 8484 + - uid: 8664 + components: + - type: Transform + pos: 37.5,48.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 15 + - 8484 + - uid: 8665 + components: + - type: Transform + pos: 37.5,47.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 15 + - 8484 + - uid: 8666 + components: + - type: Transform + pos: 27.5,48.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 15 + - 8484 + - uid: 8667 + components: + - type: Transform + pos: 27.5,47.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 15 + - 8484 + - uid: 8668 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 40.5,50.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 78 + - uid: 8669 + components: + - type: Transform + pos: 31.5,22.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 14 + - 55 + - 8496 + - uid: 8670 + components: + - type: Transform + pos: 30.5,22.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 14 + - 55 + - 8496 + - uid: 8671 + components: + - type: Transform + pos: 18.5,49.5 + parent: 2 + - uid: 8672 + components: + - type: Transform + pos: 18.5,48.5 + parent: 2 + - uid: 8673 + components: + - type: Transform + pos: 18.5,47.5 + parent: 2 + - uid: 8674 + components: + - type: Transform + pos: 42.5,55.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 78 + - uid: 8675 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 34.5,20.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 55 + - 8496 + - uid: 8676 + components: + - type: Transform + pos: 35.5,50.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 8484 + - 15 + - uid: 8677 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 61.5,21.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 60 + - 8471 + - uid: 8678 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 7.5,49.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 22 + - uid: 8679 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 7.5,48.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 22 + - uid: 8680 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 7.5,47.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 22 + - uid: 8681 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 4.5,54.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 22 + - uid: 8682 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 5.5,54.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 22 + - uid: 8683 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 6.5,54.5 + parent: 2 + - uid: 8684 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 6.5,54.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 22 + - uid: 8685 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -2.5,49.5 + parent: 2 + - uid: 8686 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -2.5,49.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 22 + - 17 + - uid: 8687 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -2.5,48.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 22 + - 17 + - uid: 8688 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -2.5,47.5 + parent: 2 + - uid: 8689 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -2.5,47.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 22 + - 17 + - uid: 8690 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 1.5,44.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 22 + - 18 + - uid: 8691 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 0.5,44.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 22 + - 18 + - uid: 8692 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -0.5,44.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 22 + - 18 + - uid: 8693 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 7.5,52.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 16 + - uid: 8694 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 7.5,53.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 16 + - uid: 8695 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 9.5,50.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 16 + - uid: 8696 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 10.5,50.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 16 + - uid: 8697 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 15.5,52.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 16 + - 23 + - uid: 8698 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 15.5,53.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 16 + - 23 + - uid: 8699 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 10.5,58.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 16 + - 8515 + - uid: 8700 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 14.5,61.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 16 + - 8515 + - uid: 8701 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 16.5,64.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 16 + - 8515 + - uid: 8702 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 19.5,63.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 16 + - 8515 + - uid: 8703 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 23.5,50.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 23 + - 8516 + - uid: 8704 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 24.5,50.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 23 + - 8516 + - uid: 8705 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 19.5,56.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 23 + - 8516 + - uid: 8706 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 17.5,57.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 23 + - 8516 + - uid: 8707 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 24.5,58.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 23 + - 8516 + - uid: 8708 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -11.5,50.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 17 + - uid: 8709 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -12.5,50.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 17 + - uid: 8710 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -12.5,53.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 17 + - 25 + - 8509 + - uid: 8711 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -11.5,53.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 17 + - 25 + - 8509 + - uid: 8712 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -15.5,53.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 17 + - 25 + - 8509 + - uid: 8713 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -13.5,52.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 17 + - uid: 8714 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -13.5,51.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 17 + - uid: 8715 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -15.5,50.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 17 + - uid: 8716 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -14.5,50.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 17 + - uid: 8717 + components: + - type: Transform + pos: -0.5,57.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 24 + - 34 + - 8492 + - uid: 8718 + components: + - type: Transform + pos: 3.5,58.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 34 + - uid: 8719 + components: + - type: Transform + pos: -11.5,60.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 25 + - 8509 + - uid: 8720 + components: + - type: Transform + pos: -12.5,60.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 25 + - 8509 + - uid: 8721 + components: + - type: Transform + pos: -20.5,58.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 25 + - 30 + - 8509 + - uid: 8722 + components: + - type: Transform + pos: -20.5,57.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 25 + - 30 + - 8509 + - uid: 8723 + components: + - type: Transform + pos: -10.5,56.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 24 + - 25 + - 8509 + - 8492 + - uid: 8724 + components: + - type: Transform + pos: -10.5,55.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 24 + - 25 + - 8509 + - 8492 + - uid: 8725 + components: + - type: Transform + pos: -10.5,54.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 24 + - 25 + - 8509 + - 8492 + - uid: 8726 + components: + - type: Transform + pos: -18.5,56.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 25 + - 33 + - 8509 + - uid: 8727 + components: + - type: Transform + pos: -11.5,65.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 8514 + - uid: 8728 + components: + - type: Transform + pos: -8.5,67.5 + parent: 2 + - uid: 8729 + components: + - type: Transform + pos: -6.5,65.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 35 + - 8514 + - uid: 8730 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -10.5,64.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 26 + - uid: 8731 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -10.5,62.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 26 + - uid: 8732 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -13.5,64.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 26 + - 27 + - 8513 + - uid: 8733 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -14.5,65.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 8513 + - uid: 8734 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -16.5,65.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 8513 + - uid: 8735 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -17.5,65.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 8513 + - uid: 8736 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -17.5,59.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 27 + - 25 + - 8513 + - uid: 8737 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -15.5,59.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 27 + - 8513 + - uid: 8738 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -26.5,58.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 30 + - 29 + - 8510 + - uid: 8739 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -26.5,57.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 30 + - 29 + - 8510 + - uid: 8740 + components: + - type: Transform + pos: -23.5,59.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 30 + - 8512 + - uid: 8741 + components: + - type: Transform + pos: -23.5,65.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 30 + - 8512 + - uid: 8742 + components: + - type: Transform + pos: -23.5,56.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 30 + - 32 + - 8511 + - uid: 8743 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -28.5,59.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 28 + - 29 + - uid: 8744 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -32.5,59.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 28 + - 29 + - 8510 + - uid: 8745 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -32.5,62.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 28 + - 19588 + - 8512 + - uid: 8746 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -28.5,62.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 28 + - 19588 + - 8512 + - uid: 8747 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -35.5,62.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 28 + - uid: 8748 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -27.5,56.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 29 + - 8510 + - 8511 + - uid: 8749 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 4.5,61.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 35 + - uid: 8750 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 5.5,61.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 35 + - uid: 8751 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 6.5,61.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 35 + - uid: 8752 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 7.5,64.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 35 + - uid: 8753 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 4.5,65.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 35 + - uid: 8754 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 5.5,65.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 35 + - uid: 8755 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 6.5,65.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 35 + - uid: 8756 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 3.5,64.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 35 + - uid: 8757 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 3.5,62.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 35 + - uid: 8758 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 3.5,63.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 35 + - uid: 8759 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 4.5,69.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 35 + - 36 + - uid: 8760 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 5.5,69.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 35 + - 36 + - uid: 8761 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 6.5,69.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 35 + - 36 + - uid: 8762 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 9.5,67.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 35 + - uid: 8763 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 3.5,67.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 35 + - uid: 8764 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 0.5,68.5 + parent: 2 + - uid: 8765 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 0.5,66.5 + parent: 2 + - uid: 8766 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -3.5,65.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 35 + - uid: 8767 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 13.5,74.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 36 + - uid: 8768 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -1.5,43.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 18 + - 82 + - uid: 8769 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -1.5,33.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 18 + - 37 + - 8502 + - uid: 8770 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -0.5,24.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 18 + - 50 + - uid: 8771 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 0.5,24.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 18 + - 50 + - uid: 8772 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 1.5,24.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 18 + - 50 + - uid: 8773 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -5.5,32.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 37 + - 8502 + - uid: 8774 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -4.5,37.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 37 + - 38 + - 8502 + - uid: 8775 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -6.5,30.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 38 + - uid: 8776 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -6.5,27.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 38 + - 43 + - uid: 8777 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -12.5,32.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 38 + - uid: 8778 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -12.5,36.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 38 + - 8507 + - uid: 8779 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -14.5,42.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 49 + - 8507 + - 8508 + - uid: 8780 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -10.5,42.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 38 + - 49 + - 8508 + - uid: 8781 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -23.5,24.5 + parent: 2 + - uid: 8782 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -29.5,27.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 45 + - 8506 + - uid: 8783 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -31.5,29.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 47 + - 8506 + - uid: 8784 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -31.5,33.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 47 + - uid: 8785 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -31.5,22.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 44 + - 45 + - 8505 + - 8506 + - uid: 8786 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -23.5,18.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 44 + - 8504 + - 8505 + - uid: 8787 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -20.5,18.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 41 + - 44 + - 8504 + - uid: 8788 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -22.5,16.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 44 + - 8504 + - uid: 8789 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -22.5,20.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 44 + - 8504 + - uid: 8790 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -13.5,19.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 39 + - 41 + - 8503 + - 8504 + - uid: 8791 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -6.5,20.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 39 + - 8503 + - uid: 8792 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -9.5,26.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 38 + - 39 + - 8503 + - uid: 8793 + components: + - type: Transform + pos: 12.5,64.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 35 + - uid: 8794 + components: + - type: Transform + pos: 14.5,70.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 35 + - uid: 8795 + components: + - type: Transform + pos: 16.5,70.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 35 + - uid: 8796 + components: + - type: Transform + pos: -18.5,42.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 48 + - 8507 + - uid: 8797 + components: + - type: Transform + pos: 4.5,21.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 50 + - uid: 8798 + components: + - type: Transform + pos: 4.5,20.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 50 + - uid: 8799 + components: + - type: Transform + pos: 4.5,19.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 50 + - uid: 8800 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -15.5,14.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 50 + - uid: 8801 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -16.5,15.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 50 + - uid: 8802 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -18.5,9.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 50 + - 51 + - 8501 + - uid: 8803 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 7.5,18.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 20 + - uid: 8804 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 8.5,18.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 20 + - uid: 8805 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 10.5,18.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 20 + - uid: 8806 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 11.5,18.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 20 + - uid: 8807 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 5.5,16.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 20 + - 53 + - 8499 + - uid: 8808 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 2.5,16.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 53 + - 54 + - 8499 + - uid: 8809 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 5.5,11.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 21 + - 53 + - 8498 + - 8499 + - uid: 8810 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 5.5,10.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 21 + - 53 + - 8498 + - 8499 + - uid: 8811 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 7.5,8.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 21 + - 8498 + - uid: 8812 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 9.5,7.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 21 + - 8498 + - uid: 8813 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 15.5,9.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 21 + - uid: 8814 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 17.5,6.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 21 + - uid: 8815 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -4.5,6.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 53 + - 8499 + - 52 + - uid: 8816 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -4.5,7.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 53 + - 8499 + - 52 + - uid: 8817 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -10.5,8.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 51 + - 8501 + - uid: 8818 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -14.5,4.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 51 + - uid: 8819 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -12.5,9.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 8501 + - uid: 8820 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -14.5,12.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 8501 + - uid: 8821 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -4.5,12.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 80 + - 8499 + - uid: 8822 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 54.5,32.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 57 + - 8464 + - 8467 + - 8468 + - uid: 8823 + components: + - type: Transform + pos: 7.5,14.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 20 + - 21 + - 8498 + - uid: 8824 + components: + - type: Transform + pos: 11.5,14.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 20 + - 21 + - 8498 + - uid: 8825 + components: + - type: Transform + pos: -7.5,11.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 53 + - 8499 + - 8501 + - uid: 8826 + components: + - type: Transform + pos: -7.5,10.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 53 + - 8499 + - 8501 + - uid: 8827 + components: + - type: Transform + pos: -16.5,8.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 51 + - 8501 + - uid: 8828 + components: + - type: Transform + pos: 25.5,18.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 55 + - 56 + - 8496 + - 8497 + - uid: 8829 + components: + - type: Transform + pos: 23.5,18.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 55 + - 56 + - 8496 + - 8497 + - uid: 8830 + components: + - type: Transform + pos: 20.5,21.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 55 + - 8496 + - uid: 8831 + components: + - type: Transform + pos: 20.5,20.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 55 + - 8496 + - uid: 8832 + components: + - type: Transform + pos: 20.5,19.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 55 + - 8496 + - uid: 8833 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 25.5,8.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 56 + - 8497 + - uid: 8834 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 27.5,17.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 56 + - uid: 8835 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 27.5,14.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 56 + - 8497 + - uid: 8836 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 20.5,15.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 56 + - 8497 + - uid: 8837 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 21.5,17.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 56 + - 8497 + - uid: 8838 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 55.5,32.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 57 + - 8464 + - 8467 + - 8468 + - uid: 8839 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 56.5,32.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 57 + - 8464 + - 8467 + - 8468 + - uid: 8840 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 51.5,25.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 57 + - 58 + - 8468 + - 8469 + - 8470 + - uid: 8841 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 53.5,23.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 57 + - 8468 + - uid: 8842 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 55.5,23.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 60 + - 57 + - 8468 + - 8471 + - uid: 8843 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 49.5,22.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 61 + - 8470 + - uid: 8844 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 54.5,21.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 60 + - 8471 + - uid: 8845 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 49.5,30.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 58 + - 8469 + - 8470 + - uid: 8846 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 53.5,30.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 57 + - 8468 + - 8469 + - 8470 + - uid: 8847 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 48.5,23.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 61 + - 58 + - 8469 + - 8470 + - uid: 8848 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 47.5,23.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 61 + - 58 + - 8469 + - 8470 + - uid: 8849 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 39.5,14.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 65 + - 61 + - 8470 + - 8472 + - uid: 8850 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 37.5,16.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 8470 + - uid: 8851 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 38.5,18.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 61 + - uid: 8852 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 50.5,17.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 61 + - 63 + - 8470 + - uid: 8853 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 35.5,6.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 65 + - 66 + - 8472 + - 8474 + - uid: 8854 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 35.5,2.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 66 + - 8474 + - 83 + - 8517 + - uid: 8855 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 37.5,4.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 66 + - 8474 + - uid: 8856 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 31.5,6.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 66 + - uid: 8857 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 31.5,2.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 66 + - 64 + - 8474 + - uid: 8858 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 49.5,8.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 62 + - 8475 + - uid: 8859 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 49.5,12.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 61 + - 62 + - 8470 + - 8475 + - uid: 8860 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 47.5,10.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 62 + - 8475 + - uid: 8861 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 51.5,10.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 62 + - 8475 + - uid: 8862 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 44.5,15.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 61 + - 8470 + - uid: 8863 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 32.5,10.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 65 + - 8472 + - uid: 8864 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 27.5,-0.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 64 + - 8474 + - uid: 8865 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 43.5,6.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 66 + - uid: 8866 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 44.5,6.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 66 + - uid: 8867 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 34.5,10.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 65 + - 8472 + - uid: 8868 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 41.5,18.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 61 + - uid: 8869 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 43.5,22.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 61 + - uid: 8870 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 39.5,23.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 61 + - uid: 8871 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 62.5,19.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 60 + - 8471 + - uid: 8872 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 63.5,18.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 8 + - uid: 8873 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 62.5,27.5 + parent: 2 + - uid: 8874 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 63.5,30.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 8464 + - 8467 + - uid: 8875 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 57.5,30.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 57 + - 8467 + - 8468 + - uid: 8876 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 7.5,46.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 68 + - uid: 8877 + components: + - type: Transform + pos: 11.5,46.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 70 + - uid: 8878 + components: + - type: Transform + pos: 12.5,46.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 70 + - uid: 8879 + components: + - type: Transform + pos: 13.5,46.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 70 + - uid: 8880 + components: + - type: Transform + pos: 14.5,44.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 70 + - uid: 8881 + components: + - type: Transform + pos: 13.5,42.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 70 + - 69 + - 8493 + - uid: 8882 + components: + - type: Transform + pos: 15.5,41.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 70 + - 69 + - 8493 + - uid: 8883 + components: + - type: Transform + pos: 13.5,36.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 69 + - 8493 + - 8494 + - uid: 8884 + components: + - type: Transform + pos: 18.5,36.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 71 + - uid: 8885 + components: + - type: Transform + pos: 20.5,33.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 67 + - 8494 + - uid: 8886 + components: + - type: Transform + pos: 20.5,32.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 67 + - 77 + - 8494 + - uid: 8887 + components: + - type: Transform + pos: 24.5,33.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 77 + - 8495 + - uid: 8888 + components: + - type: Transform + pos: 24.5,32.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 77 + - 8495 + - uid: 8889 + components: + - type: Transform + pos: 24.5,36.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 77 + - 8495 + - uid: 8890 + components: + - type: Transform + pos: 16.5,34.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 67 + - 8494 + - uid: 8891 + components: + - type: Transform + pos: 16.5,35.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 67 + - 8494 + - uid: 8892 + components: + - type: Transform + pos: 13.5,31.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 67 + - 8494 + - uid: 8893 + components: + - type: Transform + pos: 13.5,29.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 76 + - 8494 + - uid: 8894 + components: + - type: Transform + pos: 13.5,30.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 67 + - 8494 + - uid: 8895 + components: + - type: Transform + pos: 12.5,29.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 76 + - 8494 + - uid: 8896 + components: + - type: Transform + pos: 16.5,23.5 + parent: 2 + - uid: 8897 + components: + - type: Transform + pos: 18.5,23.5 + parent: 2 + - uid: 8898 + components: + - type: Transform + pos: 19.5,25.5 + parent: 2 + - uid: 8899 + components: + - type: Transform + pos: 15.5,25.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 76 + - uid: 8900 + components: + - type: Transform + pos: 26.5,22.5 + parent: 2 + - uid: 8901 + components: + - type: Transform + pos: 24.5,25.5 + parent: 2 + - uid: 8902 + components: + - type: Transform + pos: 23.5,42.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 77 + - uid: 8903 + components: + - type: Transform + pos: 25.5,44.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 72 + - uid: 8904 + components: + - type: Transform + pos: 8.5,30.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 76 + - uid: 8905 + components: + - type: Transform + pos: 18.5,27.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 8494 + - uid: 8906 + components: + - type: Transform + pos: 17.5,27.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 8494 + - uid: 8907 + components: + - type: Transform + pos: 16.5,27.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 8494 + - uid: 8908 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 8.5,36.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 68 + - 8494 + - uid: 8909 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 5.5,42.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 68 + - uid: 8910 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 6.5,46.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 68 + - uid: 8911 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 22.5,44.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 72 + - uid: 8912 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 44.5,49.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 78 + - uid: 8913 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 43.5,56.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 78 + - uid: 8914 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 53.5,55.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 78 + - uid: 8915 + components: + - type: Transform + pos: 56.5,55.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 78 + - 3 + - 8458 + - uid: 8916 + components: + - type: Transform + pos: 54.5,57.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 78 + - 3 + - 8458 + - uid: 8917 + components: + - type: Transform + pos: 54.5,58.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 78 + - 3 + - 8458 + - uid: 8918 + components: + - type: Transform + pos: 77.5,53.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 3 + - uid: 8919 + components: + - type: Transform + pos: 75.5,51.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 3 + - uid: 8920 + components: + - type: Transform + pos: 72.5,51.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 3 + - uid: 8921 + components: + - type: Transform + pos: 76.5,47.5 + parent: 2 + - uid: 8922 + components: + - type: Transform + pos: 72.5,54.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 3 + - 8457 + - uid: 8923 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 57.5,51.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 4 + - uid: 8924 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 63.5,47.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 4 + - uid: 8925 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 59.5,37.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 8466 + - 10 + - 8481 + - uid: 8926 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -23.5,11.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 8505 + - uid: 8927 + components: + - type: Transform + pos: 35.5,52.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 8484 + - 15 + - uid: 8928 + components: + - type: Transform + pos: -1.5,30.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 37 + - 80 + - uid: 8929 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -7.5,16.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 80 + - uid: 8930 + components: + - type: Transform + pos: 6.5,32.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 8494 + - 67 + - uid: 8931 + components: + - type: Transform + pos: 6.5,33.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 8494 + - 67 + - uid: 8932 + components: + - type: Transform + pos: -15.5,-2.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 51 + - 8501 + - uid: 8933 + components: + - type: Transform + pos: -16.5,-2.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 51 + - 8501 + - uid: 8934 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -6.5,44.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 82 + - uid: 8935 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -25.5,42.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 46 + - uid: 8936 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 30.5,-10.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 83 + - 8517 + - uid: 8937 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 31.5,-10.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 83 + - 8517 + - uid: 8938 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 31.5,-12.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 83 + - 8517 + - uid: 8939 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 30.5,-12.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 83 + - 8517 + - uid: 8940 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 33.5,-8.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 83 + - 8517 + - uid: 8941 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 33.5,-7.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 83 + - 8517 +- proto: FitnessPunchingBagWizard + entities: + - uid: 19496 + components: + - type: Transform + pos: -27.5,66.5 + parent: 2 +- proto: Flash + entities: + - uid: 8942 + components: + - type: Transform + pos: -4.600379,15.522152 + parent: 2 + - uid: 8943 + components: + - type: Transform + pos: -5.0364122,45.794884 + parent: 2 + - uid: 8944 + components: + - type: Transform + pos: -4.8539248,45.68266 + parent: 2 + - uid: 8945 + components: + - type: Transform + pos: -4.427536,29.557364 + parent: 2 + - uid: 8946 + components: + - type: Transform + pos: -25.531055,61.412098 + parent: 2 + - uid: 8947 + components: + - type: Transform + pos: 46.781506,14.452742 + parent: 2 + - uid: 8948 + components: + - type: Transform + pos: 70.56277,13.657604 + parent: 2 + - uid: 8949 + components: + - type: Transform + pos: 3.3651924,27.537037 + parent: 2 +- proto: FlashlightLantern + entities: + - uid: 8950 + components: + - type: Transform + pos: -11.528659,34.74632 + parent: 2 + - uid: 8951 + components: + - type: Transform + pos: -11.374247,34.634094 + parent: 2 + - uid: 8952 + components: + - type: Transform + pos: -11.500584,34.563953 + parent: 2 + - uid: 8953 + components: + - type: Transform + pos: -11.654996,34.64812 + parent: 2 + - uid: 8954 + components: + - type: Transform + pos: -4.7837367,45.41613 + parent: 2 + - uid: 8955 + components: + - type: Transform + pos: -4.559137,45.62655 + parent: 2 + - uid: 8956 + components: + - type: Transform + pos: 78.50072,42.681328 + parent: 2 +- proto: FlashlightSeclite + entities: + - uid: 8957 + components: + - type: Transform + pos: 70.56277,13.567997 + parent: 2 +- proto: FloorDrain + entities: + - uid: 8958 + components: + - type: Transform + pos: 59.5,16.5 + parent: 2 + - type: Fixtures + fixtures: {} + - uid: 8959 + components: + - type: Transform + pos: 51.5,30.5 + parent: 2 + - type: Fixtures + fixtures: {} + - uid: 8960 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -29.5,54.5 + parent: 2 + - type: Fixtures + fixtures: {} + - uid: 8961 + components: + - type: Transform + pos: 54.5,49.5 + parent: 2 + - type: Fixtures + fixtures: {} + - uid: 8962 + components: + - type: Transform + pos: 12.5,26.5 + parent: 2 + - type: Fixtures + fixtures: {} + - uid: 14759 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 74.5,24.5 + parent: 2 + - type: Fixtures + fixtures: {} + - uid: 19371 + components: + - type: Transform + pos: 20.5,23.5 + parent: 2 + - type: Fixtures + fixtures: {} +- proto: FloorTileItemCarpetClown + entities: + - uid: 762 + components: + - type: Transform + parent: 742 + - type: Physics + angularDamping: 0 + linearDamping: 0 + canCollide: False + - type: InsideEntityStorage + - uid: 763 + components: + - type: Transform + parent: 742 + - type: Physics + angularDamping: 0 + linearDamping: 0 + canCollide: False + - type: InsideEntityStorage + - uid: 764 + components: + - type: Transform + parent: 742 + - type: Physics + angularDamping: 0 + linearDamping: 0 + canCollide: False + - type: InsideEntityStorage + - uid: 765 + components: + - type: Transform + parent: 742 + - type: Physics + angularDamping: 0 + linearDamping: 0 + canCollide: False + - type: InsideEntityStorage + - uid: 766 + components: + - type: Transform + parent: 742 + - type: Physics + angularDamping: 0 + linearDamping: 0 + canCollide: False + - type: InsideEntityStorage +- proto: FloorTileItemMime + entities: + - uid: 790 + components: + - type: Transform + parent: 772 + - type: Physics + angularDamping: 0 + linearDamping: 0 + canCollide: False + - type: InsideEntityStorage + - uid: 791 + components: + - type: Transform + parent: 772 + - type: Physics + angularDamping: 0 + linearDamping: 0 + canCollide: False + - type: InsideEntityStorage + - uid: 792 + components: + - type: Transform + parent: 772 + - type: Physics + angularDamping: 0 + linearDamping: 0 + canCollide: False + - type: InsideEntityStorage + - uid: 793 + components: + - type: Transform + parent: 772 + - type: Physics + angularDamping: 0 + linearDamping: 0 + canCollide: False + - type: InsideEntityStorage + - uid: 794 + components: + - type: Transform + parent: 772 + - type: Physics + angularDamping: 0 + linearDamping: 0 + canCollide: False + - type: InsideEntityStorage +- proto: FloorWaterEntity + entities: + - uid: 8963 + components: + - type: Transform + pos: 2.5,72.5 + parent: 2 + - uid: 8964 + components: + - type: Transform + pos: 0.5,74.5 + parent: 2 + - uid: 8965 + components: + - type: Transform + pos: -0.5,72.5 + parent: 2 + - uid: 8966 + components: + - type: Transform + pos: 2.5,73.5 + parent: 2 + - uid: 8967 + components: + - type: Transform + pos: -0.5,73.5 + parent: 2 + - uid: 8968 + components: + - type: Transform + pos: 0.5,72.5 + parent: 2 + - uid: 8969 + components: + - type: Transform + pos: 0.5,73.5 + parent: 2 + - uid: 8970 + components: + - type: Transform + pos: 1.5,72.5 + parent: 2 + - uid: 8971 + components: + - type: Transform + pos: 1.5,73.5 + parent: 2 + - uid: 8972 + components: + - type: Transform + pos: 1.5,74.5 + parent: 2 + - uid: 8973 + components: + - type: Transform + pos: 1.5,71.5 + parent: 2 + - uid: 8974 + components: + - type: Transform + pos: 0.5,71.5 + parent: 2 + - uid: 8975 + components: + - type: Transform + pos: 29.5,38.5 + parent: 2 +- proto: FloraTree02 + entities: + - uid: 19601 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -34.5,72.5 + parent: 2 +- proto: FloraTreeLarge02 + entities: + - uid: 8976 + components: + - type: Transform + pos: 5.502884,76.42747 + parent: 2 + - uid: 19600 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -28.5,71.5 + parent: 2 +- proto: FolderSpawner + entities: + - uid: 8977 + components: + - type: Transform + pos: 53.713814,14.749241 + parent: 2 + - uid: 8978 + components: + - type: Transform + pos: 17.649437,59.56088 + parent: 2 + - uid: 8979 + components: + - type: Transform + pos: 17.452913,59.673103 + parent: 2 + - uid: 8980 + components: + - type: Transform + pos: 22.40718,23.68603 + parent: 2 + - uid: 8981 + components: + - type: Transform + pos: 22.379105,23.61589 + parent: 2 + - uid: 8982 + components: + - type: Transform + pos: 76.674515,37.92216 + parent: 2 + - uid: 8983 + components: + - type: Transform + pos: 76.43588,37.86605 + parent: 2 + - uid: 8984 + components: + - type: Transform + pos: 83.359695,24.396538 + parent: 2 +- proto: FoodAmbrosiaVulgaris + entities: + - uid: 8986 + components: + - type: Transform + pos: 46.18796,45.641068 + parent: 2 + - uid: 8987 + components: + - type: Transform + pos: 46.3143,45.493774 + parent: 2 + - uid: 8988 + components: + - type: Transform + pos: 46.20902,45.53586 + parent: 2 +- proto: FoodBanana + entities: + - uid: 8989 + components: + - type: Transform + pos: 40.776543,43.40036 + parent: 2 + - uid: 8990 + components: + - type: Transform + pos: 40.776543,43.40036 + parent: 2 + - uid: 8991 + components: + - type: Transform + pos: 40.776543,43.40036 + parent: 2 + - uid: 8992 + components: + - type: Transform + pos: 27.737072,24.792421 + parent: 2 + - uid: 8993 + components: + - type: Transform + pos: 28.558273,39.352062 + parent: 2 +- proto: FoodBreadPlain + entities: + - uid: 18771 + components: + - type: Transform + pos: 10.475987,56.739117 + parent: 2 +- proto: FoodBurgerBaseball + entities: + - uid: 8994 + components: + - type: Transform + pos: 23.550648,12.255281 + parent: 2 +- proto: FoodBurgerClown + entities: + - uid: 8995 + components: + - type: Transform + pos: 40.25592,43.60828 + parent: 2 +- proto: FoodBurgerMcrib + entities: + - uid: 19500 + components: + - type: Transform + pos: -30.47999,68.71875 + parent: 2 + - uid: 19501 + components: + - type: Transform + pos: -30.385054,68.58584 + parent: 2 +- proto: FoodBurgerMime + entities: + - uid: 8996 + components: + - type: Transform + pos: 40.201824,45.807728 + parent: 2 +- proto: FoodCondimentPacketBbq + entities: + - uid: 19502 + components: + - type: Transform + pos: -30.743881,68.58292 + parent: 2 +- proto: FoodFrozenSnowconeTrash + entities: + - uid: 8997 + components: + - type: Transform + pos: 27.535769,29.632755 + parent: 2 +- proto: FoodPieBananaCream + entities: + - uid: 8998 + components: + - type: Transform + pos: 40.686874,43.88423 + parent: 2 + - uid: 8999 + components: + - type: Transform + pos: 40.686874,43.88423 + parent: 2 + - uid: 9000 + components: + - type: Transform + pos: 40.686874,43.88423 + parent: 2 +- proto: FoodPoppy + entities: + - uid: 4411 + components: + - type: Transform + pos: 80.37502,50.538662 + parent: 2 +- proto: FoodSnackCnDs + entities: + - uid: 19503 + components: + - type: Transform + pos: -30.629957,67.80443 + parent: 2 +- proto: FoodTartMime + entities: + - uid: 795 + components: + - type: Transform + parent: 772 + - type: Physics + angularDamping: 0 + linearDamping: 0 + canCollide: False + - type: InsideEntityStorage + - uid: 9001 + components: + - type: Transform + pos: 40.44046,45.443 + parent: 2 +- proto: FoodTartMimeSlice + entities: + - uid: 9002 + components: + - type: Transform + pos: 40.538723,45.569252 + parent: 2 +- proto: FoodTinPeachesMaint + entities: + - uid: 9003 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 68.868546,49.227726 + parent: 2 + - uid: 9004 + components: + - type: Transform + pos: 68.33054,49.460705 + parent: 2 +- proto: GasAnalyzer + entities: + - uid: 9005 + components: + - type: Transform + pos: 36.983482,7.5447493 + parent: 2 +- proto: GasCanisterBrokenBase + entities: + - uid: 9006 + components: + - type: Transform + pos: 73.5,47.5 + parent: 2 +- proto: GasFilter + entities: + - uid: 9010 + components: + - type: Transform + pos: -25.5,37.5 + parent: 2 + - type: AtmosPipeColor + color: '#17D8D2FF' + - uid: 9011 + components: + - type: Transform + pos: -25.5,31.5 + parent: 2 + - type: AtmosPipeColor + color: '#17D8D2FF' + - uid: 9241 + components: + - type: Transform + pos: -25.5,35.5 + parent: 2 + - type: AtmosPipeColor + color: '#17D8D2FF' + - uid: 10167 + components: + - type: Transform + pos: -25.5,33.5 + parent: 2 + - type: AtmosPipeColor + color: '#17D8D2FF' +- proto: GasFilterFlipped + entities: + - uid: 9007 + components: + - type: Transform + pos: -14.5,37.5 + parent: 2 + - type: AtmosPipeColor + color: '#17D8D2FF' + - uid: 9012 + components: + - type: Transform + pos: 9.5,35.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 9013 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -29.5,6.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 9014 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -33.5,6.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 9015 + components: + - type: Transform + pos: -34.5,7.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 9016 + components: + - type: Transform + pos: -34.5,11.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 9017 + components: + - type: Transform + pos: -34.5,11.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 9018 + components: + - type: Transform + pos: -34.5,15.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 9019 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -35.5,27.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' +- proto: GasMinerAmmonia + entities: + - uid: 9020 + components: + - type: Transform + pos: -32.5,1.5 + parent: 2 +- proto: GasMinerCarbonDioxide + entities: + - uid: 9021 + components: + - type: Transform + pos: -39.5,8.5 + parent: 2 +- proto: GasMinerNitrogenStation + entities: + - uid: 9022 + components: + - type: Transform + pos: -39.5,12.5 + parent: 2 +- proto: GasMinerOxygenStation + entities: + - uid: 9023 + components: + - type: Transform + pos: -39.5,16.5 + parent: 2 +- proto: GasMixerFlipped + entities: + - uid: 9024 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -32.5,19.5 + parent: 2 + - type: GasMixer + inletTwoConcentration: 0.78 + inletOneConcentration: 0.22 + - type: AtmosPipeColor + color: '#EAC300FF' +- proto: GasOutletInjector + entities: + - uid: 9025 + components: + - type: Transform + pos: -28.5,30.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 9026 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -37.5,19.5 + parent: 2 + - type: AtmosPipeColor + color: '#EAC300FF' + - uid: 9027 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -37.5,15.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 9028 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -37.5,11.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 9029 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -37.5,7.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 9030 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -33.5,3.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 9031 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -29.5,3.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 9032 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -37.5,7.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 9033 + components: + - type: Transform + pos: -28.5,23.5 + parent: 2 + - type: AtmosPipeColor + color: '#EAC300FF' + - uid: 9034 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -25.5,5.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 9035 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -38.5,25.5 + parent: 2 + - uid: 9036 + components: + - type: Transform + pos: -33.5,32.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 9037 + components: + - type: Transform + pos: -33.5,32.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 19310 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 51.5,-7.5 + parent: 2 +- proto: GasPassiveVent + entities: + - uid: 9038 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -27.5,3.5 + parent: 2 + - type: AtmosPipeColor + color: '#EAC300FF' + - uid: 9039 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -37.5,9.5 + parent: 2 + - type: AtmosPipeColor + color: '#EAC300FF' + - uid: 9040 + components: + - type: Transform + pos: -20.5,33.5 + parent: 2 + - type: AtmosPipeColor + color: '#17D8D2FF' + - uid: 9041 + components: + - type: Transform + pos: -18.5,33.5 + parent: 2 + - type: AtmosPipeColor + color: '#17D8D2FF' + - uid: 9042 + components: + - type: Transform + pos: -19.5,33.5 + parent: 2 + - type: AtmosPipeColor + color: '#17D8D2FF' + - uid: 9043 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -37.5,13.5 + parent: 2 + - type: AtmosPipeColor + color: '#EAC300FF' + - uid: 9044 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -37.5,21.5 + parent: 2 + - type: AtmosPipeColor + color: '#17D8D2FF' + - uid: 9045 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -31.5,3.5 + parent: 2 + - type: AtmosPipeColor + color: '#EAC300FF' + - uid: 9046 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -37.5,17.5 + parent: 2 + - type: AtmosPipeColor + color: '#EAC300FF' + - uid: 9047 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 31.5,11.5 + parent: 2 + - uid: 9048 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 31.5,9.5 + parent: 2 + - uid: 9049 + components: + - type: Transform + pos: -26.5,23.5 + parent: 2 + - type: AtmosPipeColor + color: '#EAC300FF' + - uid: 11501 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -18.5,35.5 + parent: 2 + - type: AtmosPipeColor + color: '#BFA200FF' + - uid: 11502 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -20.5,35.5 + parent: 2 + - type: AtmosPipeColor + color: '#BFA200FF' + - uid: 11539 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -19.5,35.5 + parent: 2 + - type: AtmosPipeColor + color: '#BFA200FF' +- proto: GasPipeBend + entities: + - uid: 9008 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -26.5,37.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 9050 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -24.5,12.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9052 + components: + - type: Transform + pos: -14.5,40.5 + parent: 2 + - type: AtmosPipeColor + color: '#BFA200FF' + - uid: 9053 + components: + - type: Transform + pos: -23.5,44.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 9055 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -28.5,28.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 9056 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -25.5,40.5 + parent: 2 + - type: AtmosPipeColor + color: '#BFA200FF' + - uid: 9057 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -17.5,35.5 + parent: 2 + - type: AtmosPipeColor + color: '#BFA200FF' + - uid: 9058 + components: + - type: Transform + pos: -17.5,36.5 + parent: 2 + - type: AtmosPipeColor + color: '#BFA200FF' + - uid: 9060 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -14.5,29.5 + parent: 2 + - type: AtmosPipeColor + color: '#17D8D2FF' + - uid: 9061 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -23.5,43.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 9062 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -20.5,36.5 + parent: 2 + - type: AtmosPipeColor + color: '#BFA200FF' + - uid: 9063 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -13.5,36.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9064 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -25.5,41.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9065 + components: + - type: Transform + pos: -15.5,38.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 9066 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -17.5,17.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9067 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -11.5,18.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9068 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -11.5,19.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9069 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -5.5,33.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9070 + components: + - type: Transform + pos: -8.5,36.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9071 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -13.5,43.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9072 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 7.5,12.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9073 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 1.5,16.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9074 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -3.5,7.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9075 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -5.5,7.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9076 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -13.5,7.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9077 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -5.5,42.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9078 + components: + - type: Transform + pos: -5.5,43.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9079 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -12.5,47.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9080 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -15.5,61.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9081 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 9.5,61.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9082 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 6.5,38.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9083 + components: + - type: Transform + pos: 7.5,38.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9084 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 7.5,29.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9085 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 21.5,25.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9086 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 19.5,37.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9087 + components: + - type: Transform + pos: 23.5,52.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9088 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 16.5,52.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9089 + components: + - type: Transform + pos: 42.5,47.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9090 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 31.5,19.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9091 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 62.5,37.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9092 + components: + - type: Transform + pos: 56.5,43.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9093 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 50.5,47.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9094 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 56.5,19.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9095 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 45.5,18.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9096 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 40.5,7.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9097 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 36.5,7.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9098 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 30.5,4.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9099 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 69.5,37.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9100 + components: + - type: Transform + pos: 72.5,9.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9101 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -18.5,18.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 9102 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -18.5,19.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 9103 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -14.5,20.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 9104 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -10.5,20.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 9105 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -4.5,36.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 9106 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -2.5,29.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 9107 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -4.5,26.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 9108 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -3.5,44.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 9109 + components: + - type: Transform + pos: -3.5,45.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 9110 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -13.5,49.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 9111 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -0.5,55.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 9112 + components: + - type: Transform + pos: 0.5,55.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 9113 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -11.5,58.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 9114 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 13.5,62.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 9115 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 7.5,39.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 9116 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 23.5,24.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 9117 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 23.5,38.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 9118 + components: + - type: Transform + pos: 27.5,45.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 9119 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 13.5,41.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 9121 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -2.5,6.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 9122 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -5.5,6.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 9123 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -15.5,6.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 9124 + components: + - type: Transform + pos: 24.5,54.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 9125 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 18.5,54.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 9126 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 49.5,45.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 9127 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 46.5,31.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 9128 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 49.5,11.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 9129 + components: + - type: Transform + pos: 50.5,11.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 9130 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 41.5,8.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 9131 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 35.5,8.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 9132 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 31.5,3.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 9133 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 31.5,-0.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 9134 + components: + - type: Transform + pos: 76.5,45.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 9135 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 76.5,44.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 9136 + components: + - type: Transform + pos: 82.5,44.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 9137 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 70.5,40.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 9138 + components: + - type: Transform + pos: 71.5,20.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 9139 + components: + - type: Transform + pos: 74.5,11.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 9140 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 12.5,35.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9141 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 26.5,39.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9142 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 28.5,40.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9143 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 20.5,44.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9144 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -17.5,32.5 + parent: 2 + - type: AtmosPipeColor + color: '#17D8D2FF' + - uid: 9145 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -17.5,33.5 + parent: 2 + - type: AtmosPipeColor + color: '#17D8D2FF' + - uid: 9146 + components: + - type: Transform + pos: 13.5,35.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9147 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 28.5,42.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9148 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 14.5,35.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 9149 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -20.5,32.5 + parent: 2 + - type: AtmosPipeColor + color: '#17D8D2FF' + - uid: 9150 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 9.5,34.5 + parent: 2 + - uid: 9151 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -15.5,44.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 9152 + components: + - type: Transform + pos: -10.5,44.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 9153 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -13.5,-1.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9154 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -16.5,-0.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 9155 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -16.5,-0.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 9156 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -15.5,-0.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 9157 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -15.5,-1.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9158 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -22.5,10.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 9159 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -26.5,10.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 9160 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -26.5,5.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 9161 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -28.5,6.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 9162 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -34.5,6.5 + parent: 2 + - uid: 9163 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -34.5,20.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 9164 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -28.5,18.5 + parent: 2 + - type: AtmosPipeColor + color: '#EAC300FF' + - uid: 9165 + components: + - type: Transform + pos: -31.5,19.5 + parent: 2 + - type: AtmosPipeColor + color: '#EAC300FF' + - uid: 9166 + components: + - type: Transform + pos: -31.5,19.5 + parent: 2 + - type: AtmosPipeColor + color: '#EAC300FF' + - uid: 9167 + components: + - type: Transform + pos: -27.5,9.5 + parent: 2 + - type: AtmosPipeColor + color: '#EAC300FF' + - uid: 9168 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -26.5,11.5 + parent: 2 + - uid: 9169 + components: + - type: Transform + pos: -28.5,17.5 + parent: 2 + - type: AtmosPipeColor + color: '#EAC300FF' + - uid: 9170 + components: + - type: Transform + pos: -27.5,19.5 + parent: 2 + - type: AtmosPipeColor + color: '#BFA200FF' + - uid: 9171 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -29.5,19.5 + parent: 2 + - type: AtmosPipeColor + color: '#BFA200FF' + - uid: 9172 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -29.5,26.5 + parent: 2 + - type: AtmosPipeColor + color: '#BFA200FF' + - uid: 9173 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -21.5,26.5 + parent: 2 + - type: AtmosPipeColor + color: '#BFA200FF' + - uid: 9174 + components: + - type: Transform + pos: -24.5,21.5 + parent: 2 + - type: AtmosPipeColor + color: '#17D8D2FF' + - uid: 9175 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -19.5,12.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9176 + components: + - type: Transform + pos: -30.5,25.5 + parent: 2 + - type: AtmosPipeColor + color: '#EAC300FF' + - uid: 9177 + components: + - type: Transform + pos: 37.5,0.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9178 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 34.5,0.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 9179 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 34.5,-3.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 9180 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 32.5,-3.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 9181 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 37.5,-4.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9182 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 34.5,-4.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9226 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -25.5,29.5 + parent: 2 + - type: AtmosPipeColor + color: '#17D8D2FF' + - uid: 9265 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -26.5,28.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 9316 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -6.5,19.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9319 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -6.5,20.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9320 + components: + - type: Transform + pos: -2.5,20.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9321 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -2.5,19.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9905 + components: + - type: Transform + pos: 52.5,5.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 9907 + components: + - type: Transform + pos: 49.5,6.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9908 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 48.5,6.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10787 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 51.5,6.5 + parent: 2 + - uid: 10789 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 54.5,7.5 + parent: 2 + - uid: 11159 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -17.5,26.5 + parent: 2 + - uid: 11163 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -20.5,26.5 + parent: 2 + - uid: 11286 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 29.5,-0.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11414 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 50.5,5.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 12070 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -12.5,66.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 18634 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -3.5,19.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 19292 + components: + - type: Transform + pos: 54.5,-2.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 19295 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 53.5,-3.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 19297 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 52.5,-3.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 19298 + components: + - type: Transform + pos: 50.5,-3.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 19311 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 54.5,-3.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 19384 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -28.5,67.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 19385 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -32.5,67.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' +- proto: GasPipeFourway + entities: + - uid: 9183 + components: + - type: Transform + pos: -15.5,19.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 9184 + components: + - type: Transform + pos: 7.5,16.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9185 + components: + - type: Transform + pos: -3.5,11.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9186 + components: + - type: Transform + pos: -12.5,51.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9187 + components: + - type: Transform + pos: -12.5,57.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9188 + components: + - type: Transform + pos: -22.5,57.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9189 + components: + - type: Transform + pos: -31.5,57.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9190 + components: + - type: Transform + pos: 4.5,58.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9191 + components: + - type: Transform + pos: 4.5,66.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9192 + components: + - type: Transform + pos: 12.5,47.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9193 + components: + - type: Transform + pos: 56.5,33.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9194 + components: + - type: Transform + pos: 56.5,37.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9195 + components: + - type: Transform + pos: 56.5,29.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9196 + components: + - type: Transform + pos: 48.5,18.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9197 + components: + - type: Transform + pos: 64.5,33.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9198 + components: + - type: Transform + pos: -13.5,52.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 9199 + components: + - type: Transform + pos: -13.5,56.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 9200 + components: + - type: Transform + pos: -24.5,58.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 9201 + components: + - type: Transform + pos: 6.5,68.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 9202 + components: + - type: Transform + pos: 11.5,31.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 9203 + components: + - type: Transform + pos: 23.5,33.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 9204 + components: + - type: Transform + pos: 33.5,35.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 9205 + components: + - type: Transform + pos: 31.5,49.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 9206 + components: + - type: Transform + pos: 47.5,35.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 9207 + components: + - type: Transform + pos: 54.5,31.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 9208 + components: + - type: Transform + pos: 66.5,35.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11160 + components: + - type: Transform + pos: -18.5,26.5 + parent: 2 + - uid: 11162 + components: + - type: Transform + pos: -19.5,26.5 + parent: 2 + - uid: 19319 + components: + - type: Transform + pos: 53.5,-1.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 19320 + components: + - type: Transform + pos: 53.5,1.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 19325 + components: + - type: Transform + pos: 49.5,2.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 19326 + components: + - type: Transform + pos: 49.5,-0.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' +- proto: GasPipeStraight + entities: + - uid: 714 + components: + - type: Transform + pos: -33.5,66.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 715 + components: + - type: Transform + pos: -31.5,62.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 7240 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -9.5,67.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9051 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -24.5,29.5 + parent: 2 + - type: AtmosPipeColor + color: '#17D8D2FF' + - uid: 9054 + components: + - type: Transform + pos: -25.5,30.5 + parent: 2 + - type: AtmosPipeColor + color: '#17D8D2FF' + - uid: 9209 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -24.5,13.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9210 + components: + - type: Transform + pos: -26.5,17.5 + parent: 2 + - uid: 9211 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -22.5,17.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 9212 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -11.5,27.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9213 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -9.5,31.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 9214 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -10.5,29.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 9215 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -11.5,29.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 9216 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -12.5,29.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 9217 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -9.5,27.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9218 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -12.5,27.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9219 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -10.5,27.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9220 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -36.5,15.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 9221 + components: + - type: Transform + pos: 66.5,48.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 9223 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -19.5,29.5 + parent: 2 + - type: AtmosPipeColor + color: '#17D8D2FF' + - uid: 9225 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -14.5,32.5 + parent: 2 + - type: AtmosPipeColor + color: '#17D8D2FF' + - uid: 9227 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -15.5,35.5 + parent: 2 + - type: AtmosPipeColor + color: '#17D8D2FF' + - uid: 9228 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -23.5,29.5 + parent: 2 + - type: AtmosPipeColor + color: '#17D8D2FF' + - uid: 9229 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -22.5,29.5 + parent: 2 + - type: AtmosPipeColor + color: '#17D8D2FF' + - uid: 9230 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -16.5,40.5 + parent: 2 + - type: AtmosPipeColor + color: '#BFA200FF' + - uid: 9231 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -15.5,40.5 + parent: 2 + - type: AtmosPipeColor + color: '#BFA200FF' + - uid: 9232 + components: + - type: Transform + pos: -14.5,39.5 + parent: 2 + - type: AtmosPipeColor + color: '#BFA200FF' + - uid: 9233 + components: + - type: Transform + pos: -14.5,38.5 + parent: 2 + - type: AtmosPipeColor + color: '#BFA200FF' + - uid: 9234 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -20.5,41.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9235 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -21.5,41.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9236 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -25.5,42.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9237 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -25.5,43.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9238 + components: + - type: Transform + pos: -13.5,39.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9239 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -15.5,33.5 + parent: 2 + - type: AtmosPipeColor + color: '#17D8D2FF' + - uid: 9240 + components: + - type: Transform + pos: -25.5,39.5 + parent: 2 + - type: AtmosPipeColor + color: '#BFA200FF' + - uid: 9242 + components: + - type: Transform + pos: -13.5,40.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9243 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -24.5,41.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9244 + components: + - type: Transform + pos: -28.5,29.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 9245 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -25.5,34.5 + parent: 2 + - type: AtmosPipeColor + color: '#17D8D2FF' + - uid: 9246 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -25.5,36.5 + parent: 2 + - type: AtmosPipeColor + color: '#17D8D2FF' + - uid: 9249 + components: + - type: Transform + pos: -25.5,38.5 + parent: 2 + - type: AtmosPipeColor + color: '#BFA200FF' + - uid: 9250 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -16.5,29.5 + parent: 2 + - type: AtmosPipeColor + color: '#17D8D2FF' + - uid: 9251 + components: + - type: Transform + pos: -17.5,27.5 + parent: 2 + - uid: 9252 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -14.5,41.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9253 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -15.5,41.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9254 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -22.5,41.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9255 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -17.5,40.5 + parent: 2 + - type: AtmosPipeColor + color: '#BFA200FF' + - uid: 9256 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -20.5,27.5 + parent: 2 + - uid: 9257 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -14.5,36.5 + parent: 2 + - type: AtmosPipeColor + color: '#17D8D2FF' + - uid: 9258 + components: + - type: Transform + pos: -13.5,38.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9259 + components: + - type: Transform + pos: -13.5,42.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9260 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -16.5,41.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9261 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -17.5,41.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9262 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -23.5,41.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9263 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -19.5,41.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9264 + components: + - type: Transform + pos: -13.5,37.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9266 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 27.5,42.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9267 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 27.5,40.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9268 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -4.5,27.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9269 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -7.5,29.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 9270 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -35.5,9.5 + parent: 2 + - type: AtmosPipeColor + color: '#EAC300FF' + - uid: 9271 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -35.5,9.5 + parent: 2 + - type: AtmosPipeColor + color: '#EAC300FF' + - uid: 9272 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -36.5,9.5 + parent: 2 + - type: AtmosPipeColor + color: '#EAC300FF' + - uid: 9273 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -35.5,7.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 9274 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -36.5,7.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 9275 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -33.5,5.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 9276 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -33.5,4.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 9277 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -31.5,5.5 + parent: 2 + - type: AtmosPipeColor + color: '#EAC300FF' + - uid: 9278 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -31.5,4.5 + parent: 2 + - type: AtmosPipeColor + color: '#EAC300FF' + - uid: 9279 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -29.5,5.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 9280 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -29.5,4.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 9281 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -27.5,5.5 + parent: 2 + - type: AtmosPipeColor + color: '#EAC300FF' + - uid: 9282 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -27.5,4.5 + parent: 2 + - type: AtmosPipeColor + color: '#EAC300FF' + - uid: 9283 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -35.5,11.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 9284 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -36.5,11.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 9285 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -35.5,13.5 + parent: 2 + - type: AtmosPipeColor + color: '#EAC300FF' + - uid: 9286 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -36.5,13.5 + parent: 2 + - type: AtmosPipeColor + color: '#EAC300FF' + - uid: 9287 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -35.5,15.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 9288 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -35.5,17.5 + parent: 2 + - type: AtmosPipeColor + color: '#EAC300FF' + - uid: 9289 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -36.5,17.5 + parent: 2 + - type: AtmosPipeColor + color: '#EAC300FF' + - uid: 9290 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -35.5,19.5 + parent: 2 + - type: AtmosPipeColor + color: '#EAC300FF' + - uid: 9291 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -36.5,19.5 + parent: 2 + - type: AtmosPipeColor + color: '#EAC300FF' + - uid: 9292 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -35.5,21.5 + parent: 2 + - type: AtmosPipeColor + color: '#17D8D2FF' + - uid: 9293 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -36.5,21.5 + parent: 2 + - type: AtmosPipeColor + color: '#17D8D2FF' + - uid: 9294 + components: + - type: Transform + pos: -28.5,21.5 + parent: 2 + - type: AtmosPipeColor + color: '#EAC300FF' + - uid: 9295 + components: + - type: Transform + pos: -28.5,22.5 + parent: 2 + - type: AtmosPipeColor + color: '#EAC300FF' + - uid: 9296 + components: + - type: Transform + pos: -26.5,21.5 + parent: 2 + - type: AtmosPipeColor + color: '#EAC300FF' + - uid: 9297 + components: + - type: Transform + pos: -26.5,22.5 + parent: 2 + - type: AtmosPipeColor + color: '#EAC300FF' + - uid: 9298 + components: + - type: Transform + pos: -2.5,33.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 9300 + components: + - type: Transform + pos: -2.5,32.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 9301 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -3.5,12.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9302 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 37.5,7.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9303 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -20.5,17.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9304 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -18.5,17.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9306 + components: + - type: Transform + pos: -17.5,19.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9307 + components: + - type: Transform + pos: -17.5,20.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9308 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -15.5,18.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9309 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -14.5,18.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9310 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -13.5,18.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9311 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -12.5,18.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9312 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -10.5,19.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9313 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -8.5,19.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9314 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -7.5,19.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9317 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -9.5,20.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9318 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -9.5,21.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9322 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -1.5,19.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9323 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 0.5,19.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9324 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 1.5,19.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9325 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 2.5,19.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9326 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -0.5,20.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9327 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -0.5,21.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9328 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -0.5,22.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9329 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -0.5,23.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9330 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -0.5,25.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9331 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -0.5,26.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9332 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -0.5,27.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9333 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -0.5,28.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9334 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -0.5,29.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9335 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -0.5,30.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9336 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -0.5,31.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9337 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -0.5,32.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9338 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -1.5,33.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9339 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -2.5,33.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9340 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -3.5,33.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9341 + components: + - type: Transform + pos: -5.5,32.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9342 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -6.5,31.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9343 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -7.5,31.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9344 + components: + - type: Transform + pos: -8.5,30.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9345 + components: + - type: Transform + pos: -8.5,29.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9346 + components: + - type: Transform + pos: -8.5,28.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9347 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -5.5,27.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9348 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -6.5,27.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9349 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -7.5,27.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9350 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -3.5,27.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9351 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -4.5,31.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9352 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -8.5,32.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9353 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -8.5,35.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9354 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -9.5,33.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9355 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -10.5,33.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9356 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -11.5,33.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9357 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -12.5,33.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9358 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -9.5,36.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9359 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -10.5,36.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9360 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -11.5,36.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9361 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -12.5,36.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9363 + components: + - type: Transform + pos: -18.5,42.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9364 + components: + - type: Transform + pos: -18.5,43.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9365 + components: + - type: Transform + pos: -13.5,42.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9366 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 3.5,19.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9367 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 4.5,19.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9368 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 5.5,19.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9369 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 6.5,19.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9370 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 8.5,19.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9371 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 9.5,19.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9372 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 10.5,19.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9373 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 11.5,19.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9374 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 12.5,19.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9375 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 13.5,19.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9376 + components: + - type: Transform + pos: 7.5,18.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9377 + components: + - type: Transform + pos: 7.5,17.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9378 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 7.5,15.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9379 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 7.5,14.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9380 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 7.5,13.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9381 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 6.5,16.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9382 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 5.5,16.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9383 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 4.5,16.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9384 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 2.5,16.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9385 + components: + - type: Transform + pos: 3.5,15.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9386 + components: + - type: Transform + pos: 3.5,14.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9387 + components: + - type: Transform + pos: 3.5,13.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9388 + components: + - type: Transform + pos: 3.5,12.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9389 + components: + - type: Transform + pos: 3.5,10.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9390 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 3.5,9.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9391 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 3.5,8.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9392 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 3.5,7.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9393 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 3.5,6.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9394 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 2.5,11.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9395 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 1.5,11.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9396 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 0.5,11.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9397 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -0.5,11.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9398 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -1.5,11.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9399 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -2.5,11.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9400 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -3.5,13.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9401 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -3.5,14.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9402 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -3.5,10.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9403 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -3.5,9.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9404 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -3.5,8.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9405 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -4.5,7.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9406 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -4.5,11.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9407 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -5.5,11.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9408 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -6.5,11.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9409 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -7.5,11.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9410 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -8.5,11.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9411 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -9.5,11.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9412 + components: + - type: Transform + pos: -10.5,12.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9413 + components: + - type: Transform + pos: -10.5,10.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9414 + components: + - type: Transform + pos: -10.5,9.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9415 + components: + - type: Transform + pos: -10.5,8.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9416 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -11.5,7.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9417 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -12.5,7.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9418 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -13.5,5.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9419 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -13.5,6.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9420 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -13.5,4.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9421 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -0.5,35.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9422 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -0.5,36.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9423 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -0.5,37.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9424 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -0.5,38.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9425 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -0.5,39.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9426 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -0.5,40.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9427 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -0.5,41.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9428 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -0.5,43.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9429 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -0.5,44.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9430 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -1.5,42.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9431 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -2.5,42.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9432 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -3.5,42.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9433 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -6.5,43.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9434 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -7.5,43.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9435 + components: + - type: Transform + pos: -0.5,46.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9436 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -1.5,47.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9437 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -2.5,47.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9438 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -3.5,47.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9439 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -4.5,47.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9440 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -5.5,47.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9441 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -6.5,47.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9442 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -7.5,47.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9443 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -9.5,47.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9444 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -10.5,47.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9445 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -11.5,47.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9446 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -12.5,48.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9447 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -12.5,49.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9448 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -12.5,50.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9449 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -13.5,51.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9450 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -12.5,52.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9451 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -12.5,53.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9452 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -11.5,54.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9453 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -10.5,54.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9454 + components: + - type: Transform + pos: -9.5,53.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9455 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -8.5,54.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9456 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -7.5,54.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9457 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -6.5,54.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9458 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -3.5,54.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9459 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -2.5,54.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9460 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -1.5,53.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9461 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -5.5,53.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9462 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -4.5,58.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9463 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -4.5,57.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9464 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -4.5,56.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9465 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -4.5,55.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9466 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -1.5,55.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9467 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -1.5,56.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9468 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -1.5,57.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9469 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -1.5,59.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9470 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -0.5,58.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9471 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 0.5,58.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9472 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 1.5,58.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9473 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 2.5,58.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9474 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 3.5,58.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9475 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -12.5,55.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9476 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -12.5,56.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9477 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -13.5,57.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9478 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -14.5,57.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9479 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -16.5,57.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9480 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -17.5,57.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9481 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -19.5,57.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9482 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -20.5,57.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9483 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -21.5,57.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9484 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -23.5,57.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9485 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -24.5,57.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9486 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -25.5,57.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9487 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -28.5,57.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9488 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -29.5,57.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9489 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -30.5,57.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9490 + components: + - type: Transform + pos: -15.5,58.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9491 + components: + - type: Transform + pos: -15.5,59.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9492 + components: + - type: Transform + pos: -15.5,60.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9493 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -14.5,62.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9494 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -14.5,63.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9495 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -14.5,64.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9496 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -14.5,65.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9497 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -14.5,66.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9498 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -14.5,67.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9499 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -14.5,68.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9500 + components: + - type: Transform + pos: -18.5,56.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9501 + components: + - type: Transform + pos: -18.5,55.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9502 + components: + - type: Transform + pos: -18.5,54.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9503 + components: + - type: Transform + pos: -18.5,53.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9504 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -22.5,56.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9505 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -22.5,55.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9506 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -22.5,54.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9507 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -22.5,53.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9508 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -22.5,58.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9509 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -22.5,59.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9510 + components: + - type: Transform + pos: -22.5,61.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9511 + components: + - type: Transform + pos: -22.5,62.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9512 + components: + - type: Transform + pos: -22.5,63.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9513 + components: + - type: Transform + pos: -22.5,64.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9514 + components: + - type: Transform + pos: -22.5,65.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9515 + components: + - type: Transform + pos: -22.5,66.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9516 + components: + - type: Transform + pos: -22.5,67.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9517 + components: + - type: Transform + pos: -22.5,68.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9518 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -26.5,56.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9519 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -26.5,55.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9520 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -26.5,54.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9521 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -26.5,53.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9522 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -26.5,52.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9523 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -26.5,51.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9524 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -27.5,58.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9525 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -27.5,59.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9526 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -27.5,60.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9527 + components: + - type: Transform + pos: -27.5,62.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9528 + components: + - type: Transform + pos: -27.5,63.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9529 + components: + - type: Transform + pos: -27.5,64.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9530 + components: + - type: Transform + pos: -27.5,65.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9531 + components: + - type: Transform + pos: -27.5,66.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9533 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -32.5,57.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9534 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -33.5,57.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9535 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -34.5,57.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9536 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -35.5,57.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9537 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -36.5,57.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9538 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -37.5,57.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9539 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -31.5,58.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9540 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -31.5,59.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9541 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -31.5,60.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9542 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -12.5,58.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9543 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -12.5,59.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9544 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -12.5,60.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9545 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -12.5,61.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9546 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -12.5,63.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9547 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -12.5,64.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9548 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -12.5,65.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9549 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -11.5,66.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9550 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -10.5,66.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9552 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -8.5,66.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9553 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -7.5,65.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9554 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -6.5,64.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9555 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -5.5,64.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9556 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -4.5,64.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9557 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -3.5,64.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9558 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -2.5,64.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9559 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -1.5,64.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9560 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -0.5,64.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9561 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 0.5,64.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9562 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 1.5,64.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9563 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 2.5,64.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9564 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 3.5,64.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9565 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 0.5,47.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9566 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 1.5,47.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9567 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 2.5,47.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9568 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 3.5,47.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9569 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 4.5,48.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9570 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 4.5,49.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9571 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 4.5,50.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9572 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 4.5,51.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9573 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 4.5,52.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9574 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 4.5,54.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9575 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 4.5,55.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9576 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 4.5,56.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9577 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 4.5,57.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9578 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 4.5,59.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9579 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 4.5,60.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9580 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 4.5,61.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9581 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 4.5,62.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9582 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 4.5,63.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9583 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 4.5,65.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9584 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 3.5,66.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9585 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 2.5,66.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9586 + components: + - type: Transform + pos: 4.5,67.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9587 + components: + - type: Transform + pos: 4.5,68.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9588 + components: + - type: Transform + pos: 4.5,69.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9589 + components: + - type: Transform + pos: 4.5,70.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9590 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 5.5,66.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9591 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 6.5,66.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9592 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 7.5,66.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9593 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 8.5,66.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9594 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 9.5,66.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9595 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 10.5,66.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9596 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 5.5,53.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9597 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 6.5,53.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9598 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 7.5,53.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9599 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 8.5,53.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9600 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 9.5,59.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9601 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 9.5,58.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9602 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 9.5,57.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9603 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 9.5,56.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9604 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 9.5,55.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9605 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 9.5,54.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9606 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 10.5,61.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9607 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 11.5,61.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9608 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 12.5,61.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9609 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 13.5,61.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9610 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 14.5,61.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9611 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 15.5,61.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9612 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 16.5,61.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9613 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 17.5,61.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9614 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 5.5,47.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9615 + components: + - type: Transform + pos: 6.5,46.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9616 + components: + - type: Transform + pos: 6.5,45.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9617 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 5.5,44.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9618 + components: + - type: Transform + pos: 6.5,43.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9619 + components: + - type: Transform + pos: 6.5,42.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9620 + components: + - type: Transform + pos: 6.5,41.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9621 + components: + - type: Transform + pos: 6.5,40.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9622 + components: + - type: Transform + pos: 7.5,37.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9623 + components: + - type: Transform + pos: 7.5,36.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9624 + components: + - type: Transform + pos: 7.5,35.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9625 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 7.5,34.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9626 + components: + - type: Transform + pos: 7.5,31.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9627 + components: + - type: Transform + pos: 7.5,30.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9628 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 8.5,33.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9629 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 9.5,33.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9630 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 10.5,32.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9631 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 10.5,31.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9632 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 10.5,30.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9633 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 10.5,29.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9634 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 10.5,28.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9635 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 10.5,27.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9636 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 15.5,19.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9637 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 16.5,20.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9638 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 16.5,21.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9639 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 16.5,22.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9640 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 16.5,23.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9641 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 16.5,24.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9642 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 16.5,26.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9643 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 16.5,27.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9644 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 16.5,28.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9645 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 16.5,29.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9646 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 17.5,30.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9647 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 20.5,30.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9648 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 21.5,29.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9649 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 21.5,27.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9650 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 21.5,26.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9651 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 22.5,25.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9652 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 23.5,25.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9653 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 24.5,25.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9654 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 25.5,25.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9655 + components: + - type: Transform + pos: 12.5,36.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9656 + components: + - type: Transform + pos: 12.5,38.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9657 + components: + - type: Transform + pos: 12.5,39.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9658 + components: + - type: Transform + pos: 12.5,40.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9659 + components: + - type: Transform + pos: 12.5,41.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9660 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 7.5,47.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9661 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 8.5,47.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9662 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 9.5,47.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9663 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 10.5,47.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9664 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 11.5,47.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9665 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 13.5,47.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9666 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 14.5,47.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9667 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 15.5,47.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9668 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 16.5,47.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9669 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 17.5,47.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9670 + components: + - type: Transform + pos: 12.5,46.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9671 + components: + - type: Transform + pos: 12.5,45.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9672 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 11.5,43.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9673 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 13.5,44.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9674 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 14.5,44.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9675 + components: + - type: Transform + pos: 12.5,42.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9676 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 15.5,44.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9677 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 15.5,34.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9678 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 14.5,34.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9679 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 16.5,34.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9680 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 17.5,34.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9681 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 18.5,34.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9682 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 18.5,30.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9683 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 19.5,31.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9684 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 19.5,33.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9685 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 19.5,35.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9686 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 19.5,36.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9687 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 19.5,36.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9688 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 20.5,32.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9689 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 21.5,32.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9690 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 23.5,32.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9691 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 24.5,32.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9692 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 25.5,32.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9693 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 26.5,32.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9694 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 27.5,32.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9695 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 26.5,43.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9696 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 27.5,39.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9697 + components: + - type: Transform + pos: 26.5,41.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9698 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 21.5,44.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9699 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 22.5,44.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9700 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 27.5,44.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9701 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 25.5,44.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9702 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 24.5,44.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9703 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 18.5,47.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9704 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 19.5,47.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9705 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 20.5,47.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9706 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 21.5,47.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9707 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 22.5,47.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9708 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 23.5,49.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9709 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 23.5,50.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9710 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 23.5,51.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9711 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 22.5,52.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9712 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 21.5,52.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9713 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 19.5,52.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9714 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 18.5,52.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9715 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 17.5,52.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9716 + components: + - type: Transform + pos: 16.5,53.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9717 + components: + - type: Transform + pos: 16.5,54.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9718 + components: + - type: Transform + pos: 16.5,55.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9719 + components: + - type: Transform + pos: 16.5,56.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9720 + components: + - type: Transform + pos: 16.5,57.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9721 + components: + - type: Transform + pos: 16.5,58.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9722 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 24.5,47.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9723 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 25.5,47.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9724 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 26.5,47.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9725 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 27.5,47.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9726 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 28.5,47.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9727 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 29.5,47.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9728 + components: + - type: Transform + pos: 30.5,48.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9729 + components: + - type: Transform + pos: 30.5,49.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9730 + components: + - type: Transform + pos: 30.5,50.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9731 + components: + - type: Transform + pos: 30.5,51.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9732 + components: + - type: Transform + pos: 30.5,52.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9733 + components: + - type: Transform + pos: 30.5,53.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9734 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 33.5,47.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9735 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 34.5,47.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9736 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 35.5,47.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9737 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 36.5,47.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9738 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 38.5,47.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9739 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 37.5,47.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9740 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 40.5,47.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9741 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 41.5,47.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9742 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 39.5,49.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9743 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 39.5,50.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9744 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 39.5,51.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9745 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 39.5,52.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9746 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 42.5,46.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9747 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 42.5,45.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9748 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 42.5,44.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9749 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 31.5,46.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9750 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 32.5,45.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9751 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 33.5,45.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9752 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 34.5,45.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9753 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 35.5,45.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9754 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 36.5,45.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9755 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 31.5,44.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9756 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 31.5,43.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9757 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 31.5,42.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9758 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 31.5,40.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9759 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 31.5,39.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9760 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 17.5,19.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9761 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 18.5,19.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9762 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 19.5,19.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9763 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 20.5,19.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9764 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 21.5,19.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9765 + components: + - type: Transform + pos: 22.5,18.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9766 + components: + - type: Transform + pos: 22.5,17.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9767 + components: + - type: Transform + pos: 22.5,16.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9768 + components: + - type: Transform + pos: 22.5,15.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9769 + components: + - type: Transform + pos: 22.5,14.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9770 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 23.5,19.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9771 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 25.5,19.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9772 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 26.5,19.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9773 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 27.5,19.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9774 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 28.5,19.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9775 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 29.5,19.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9776 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 30.5,19.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9777 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 31.5,21.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9778 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 31.5,22.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9779 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 31.5,23.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9780 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 31.5,24.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9781 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 31.5,25.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9782 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 31.5,26.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9783 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 31.5,27.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9784 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 31.5,31.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9785 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 31.5,30.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9786 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 31.5,29.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9787 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 31.5,32.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9788 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 31.5,34.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9789 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 31.5,35.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9790 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 31.5,36.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9791 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 31.5,37.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9792 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 32.5,38.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9793 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 33.5,38.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9794 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 34.5,38.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9795 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 35.5,38.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9796 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 36.5,38.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9797 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 37.5,38.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9798 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 38.5,38.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9799 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 39.5,38.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9800 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 33.5,33.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9801 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 34.5,33.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9802 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 35.5,33.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9803 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 36.5,33.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9804 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 37.5,33.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9805 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 39.5,33.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9806 + components: + - type: Transform + pos: 40.5,32.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9807 + components: + - type: Transform + pos: 40.5,31.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9808 + components: + - type: Transform + pos: 40.5,30.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9809 + components: + - type: Transform + pos: 40.5,29.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9810 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 41.5,33.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9811 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 42.5,33.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9812 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 43.5,33.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9813 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 44.5,33.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9814 + components: + - type: Transform + pos: 46.5,34.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9815 + components: + - type: Transform + pos: 46.5,35.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9816 + components: + - type: Transform + pos: 46.5,36.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9817 + components: + - type: Transform + pos: 46.5,37.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9818 + components: + - type: Transform + pos: 46.5,38.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9819 + components: + - type: Transform + pos: 46.5,41.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9820 + components: + - type: Transform + pos: 46.5,42.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9821 + components: + - type: Transform + pos: 46.5,43.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9822 + components: + - type: Transform + pos: 46.5,44.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9823 + components: + - type: Transform + pos: 46.5,45.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9824 + components: + - type: Transform + pos: 46.5,46.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9825 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 47.5,33.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9826 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 48.5,33.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9827 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 49.5,33.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9828 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 50.5,33.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9829 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 51.5,33.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9830 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 53.5,33.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9831 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 54.5,33.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9832 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 55.5,33.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9833 + components: + - type: Transform + pos: 56.5,34.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9834 + components: + - type: Transform + pos: 56.5,35.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9835 + components: + - type: Transform + pos: 56.5,36.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9836 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 62.5,38.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9837 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 61.5,37.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9838 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 60.5,37.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9839 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 59.5,37.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9840 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 58.5,37.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9841 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 57.5,37.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9842 + components: + - type: Transform + pos: 62.5,40.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9843 + components: + - type: Transform + pos: 62.5,41.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9844 + components: + - type: Transform + pos: 62.5,42.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9845 + components: + - type: Transform + pos: 56.5,38.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9846 + components: + - type: Transform + pos: 56.5,39.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9847 + components: + - type: Transform + pos: 56.5,40.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9848 + components: + - type: Transform + pos: 56.5,41.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9849 + components: + - type: Transform + pos: 56.5,42.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9850 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 47.5,47.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9851 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 48.5,47.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9852 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 49.5,47.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9853 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 50.5,48.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9854 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 50.5,49.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9855 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 50.5,50.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9856 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 50.5,51.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9857 + components: + - type: Transform + pos: 56.5,32.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9858 + components: + - type: Transform + pos: 56.5,31.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9859 + components: + - type: Transform + pos: 56.5,30.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9860 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 57.5,29.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9861 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 58.5,29.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9862 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 59.5,29.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9863 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 55.5,29.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9864 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 54.5,29.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9865 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 53.5,29.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9866 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 52.5,29.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9867 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 50.5,29.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9868 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 49.5,29.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9869 + components: + - type: Transform + pos: 48.5,28.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9870 + components: + - type: Transform + pos: 48.5,27.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9871 + components: + - type: Transform + pos: 48.5,26.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9872 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 49.5,25.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9873 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 50.5,25.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9874 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 51.5,25.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9875 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 52.5,25.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9876 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 53.5,25.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9877 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 56.5,28.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9878 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 56.5,27.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9879 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 56.5,26.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9880 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 55.5,25.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9881 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 56.5,24.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9882 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 56.5,23.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9883 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 56.5,22.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9884 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 56.5,21.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9885 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 56.5,20.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9886 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 48.5,24.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9887 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 48.5,23.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9888 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 49.5,22.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9889 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 50.5,22.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9890 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 51.5,22.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9891 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 48.5,20.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9892 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 48.5,19.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9893 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 49.5,18.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9894 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 50.5,18.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9895 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 51.5,18.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9896 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 48.5,17.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9897 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 48.5,15.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9898 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 48.5,14.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9899 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 48.5,13.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9900 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 48.5,12.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9901 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 48.5,11.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9902 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 48.5,9.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9903 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 48.5,8.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9904 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 48.5,7.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9906 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 52.5,-2.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9914 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 47.5,18.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9915 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 46.5,18.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9916 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 45.5,16.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9917 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 45.5,15.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9918 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 45.5,14.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9919 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 44.5,17.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9920 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 43.5,17.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9921 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 42.5,18.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9922 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 42.5,19.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9923 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 39.5,17.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9924 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 38.5,17.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9925 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 37.5,17.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9926 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 36.5,17.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9927 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 41.5,17.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9928 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 40.5,16.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9929 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 40.5,15.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9930 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 40.5,14.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9931 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 40.5,13.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9932 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 40.5,12.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9933 + components: + - type: Transform + pos: 40.5,10.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9934 + components: + - type: Transform + pos: 40.5,9.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9935 + components: + - type: Transform + pos: 40.5,8.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9936 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 39.5,7.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9937 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 38.5,7.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9938 + components: + - type: Transform + pos: 36.5,5.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9939 + components: + - type: Transform + pos: 36.5,6.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9940 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 35.5,4.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9941 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 36.5,3.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9942 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 36.5,2.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9943 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 36.5,1.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9944 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 33.5,4.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9945 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 32.5,4.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9946 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 31.5,4.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9947 + components: + - type: Transform + pos: 30.5,3.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9948 + components: + - type: Transform + pos: 30.5,2.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9949 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 30.5,1.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9954 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 57.5,33.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9955 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 58.5,33.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9956 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 59.5,33.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9957 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 60.5,33.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9958 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 61.5,33.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9959 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 62.5,33.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9960 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 63.5,33.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9961 + components: + - type: Transform + pos: 64.5,32.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9962 + components: + - type: Transform + pos: 64.5,31.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9963 + components: + - type: Transform + pos: 64.5,30.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9964 + components: + - type: Transform + pos: 64.5,29.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9965 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 65.5,28.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9966 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 66.5,28.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9967 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 67.5,28.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9968 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 68.5,28.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9969 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 69.5,28.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9970 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 65.5,33.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9971 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 66.5,33.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9972 + components: + - type: Transform + pos: 64.5,43.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9973 + components: + - type: Transform + pos: 64.5,34.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9974 + components: + - type: Transform + pos: 64.5,35.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9975 + components: + - type: Transform + pos: 64.5,36.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9976 + components: + - type: Transform + pos: 64.5,37.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9977 + components: + - type: Transform + pos: 64.5,38.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9978 + components: + - type: Transform + pos: 64.5,39.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9979 + components: + - type: Transform + pos: 64.5,40.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9980 + components: + - type: Transform + pos: 64.5,41.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9981 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 65.5,42.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9982 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 66.5,42.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9983 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 67.5,42.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9984 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 68.5,42.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9985 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 69.5,42.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9986 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 69.5,42.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9987 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 71.5,42.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9988 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 72.5,42.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9989 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 73.5,42.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9990 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 74.5,42.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9991 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 76.5,42.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9992 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 77.5,42.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9993 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 78.5,42.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9994 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 79.5,42.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9995 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 80.5,41.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9996 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 80.5,40.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9997 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 68.5,33.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9998 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 69.5,34.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9999 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 69.5,35.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10000 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 69.5,36.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10001 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 70.5,37.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10002 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 71.5,37.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10003 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 72.5,37.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10004 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 73.5,37.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10005 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 74.5,37.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10006 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 75.5,37.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10007 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 70.5,33.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10008 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 71.5,33.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10009 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 72.5,33.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10010 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 73.5,33.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10011 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 74.5,33.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10012 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 75.5,33.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10013 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 77.5,33.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10014 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 79.5,33.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10015 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 78.5,33.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10016 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 78.5,37.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10017 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 79.5,37.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10018 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 80.5,38.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10019 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 80.5,39.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10020 + components: + - type: Transform + pos: 80.5,35.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10021 + components: + - type: Transform + pos: 80.5,36.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10022 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 80.5,32.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10023 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 79.5,31.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10024 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 77.5,31.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10025 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 78.5,31.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10026 + components: + - type: Transform + pos: 76.5,30.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10027 + components: + - type: Transform + pos: 76.5,29.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10028 + components: + - type: Transform + pos: 76.5,28.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10029 + components: + - type: Transform + pos: 76.5,27.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10030 + components: + - type: Transform + pos: 76.5,26.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10031 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 80.5,30.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10032 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 80.5,29.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10033 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 80.5,28.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10034 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 80.5,27.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10035 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 80.5,26.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10036 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 80.5,25.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10037 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 64.5,45.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10038 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 64.5,46.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10039 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 64.5,47.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10040 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 64.5,48.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10041 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 64.5,49.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10042 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 64.5,50.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10043 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 64.5,51.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10044 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 64.5,52.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10045 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 64.5,53.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10046 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 64.5,54.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10047 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 65.5,55.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10048 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 66.5,55.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10049 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 63.5,56.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10050 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 62.5,56.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10051 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 61.5,56.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10052 + components: + - type: Transform + pos: 64.5,57.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10053 + components: + - type: Transform + pos: 64.5,58.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10054 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 63.5,59.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10055 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 62.5,59.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10056 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 61.5,59.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10057 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 60.5,59.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10058 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 65.5,59.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10059 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 66.5,59.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10060 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 67.5,59.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10061 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 68.5,59.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10062 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 69.5,59.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10063 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 70.5,59.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10064 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 71.5,59.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10065 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 72.5,59.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10066 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 73.5,59.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10067 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 64.5,26.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10068 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 64.5,25.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10069 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 64.5,24.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10070 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 64.5,23.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10071 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 64.5,22.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10072 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 64.5,21.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10073 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 64.5,20.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10074 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 64.5,18.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10075 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 64.5,17.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10076 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 64.5,16.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10077 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 64.5,15.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10078 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 65.5,19.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10079 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 66.5,19.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10080 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 67.5,19.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10081 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 68.5,19.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10082 + components: + - type: Transform + pos: 69.5,18.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10083 + components: + - type: Transform + pos: 69.5,17.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10084 + components: + - type: Transform + pos: 69.5,16.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10085 + components: + - type: Transform + pos: 69.5,15.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10086 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 64.5,14.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10087 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 64.5,13.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10088 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 64.5,12.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10089 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 64.5,11.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10090 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 64.5,8.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10091 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 64.5,10.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10092 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 65.5,9.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10093 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 66.5,9.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10094 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 67.5,9.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10095 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 68.5,9.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10096 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 70.5,9.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10097 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 71.5,9.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10098 + components: + - type: Transform + pos: 64.5,7.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10099 + components: + - type: Transform + pos: 64.5,6.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10100 + components: + - type: Transform + pos: 64.5,5.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10101 + components: + - type: Transform + pos: 64.5,4.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10102 + components: + - type: Transform + pos: 72.5,8.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10103 + components: + - type: Transform + pos: 72.5,7.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10104 + components: + - type: Transform + pos: 72.5,6.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10105 + components: + - type: Transform + pos: 72.5,5.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10106 + components: + - type: Transform + pos: 72.5,4.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10107 + components: + - type: Transform + pos: 72.5,3.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10108 + components: + - type: Transform + pos: 72.5,2.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10109 + components: + - type: Transform + pos: 72.5,1.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10110 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -21.5,18.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10111 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -20.5,18.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10112 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -19.5,19.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10113 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -19.5,20.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10114 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -17.5,19.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10115 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -16.5,19.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10116 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -13.5,20.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10117 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -12.5,20.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10118 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -11.5,20.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10119 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -9.5,21.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10120 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -8.5,21.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10121 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -7.5,21.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10122 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -6.5,21.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10123 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -5.5,21.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10124 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -4.5,21.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10126 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -2.5,21.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10127 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -1.5,21.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10128 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -0.5,21.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10129 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 0.5,21.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10130 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 1.5,22.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10131 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 1.5,23.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10132 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 1.5,24.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10133 + components: + - type: Transform + pos: 1.5,26.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10134 + components: + - type: Transform + pos: 1.5,27.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10135 + components: + - type: Transform + pos: 1.5,28.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10136 + components: + - type: Transform + pos: 1.5,29.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10137 + components: + - type: Transform + pos: 1.5,30.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10138 + components: + - type: Transform + pos: 1.5,31.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10139 + components: + - type: Transform + pos: 1.5,32.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10140 + components: + - type: Transform + pos: 1.5,33.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10141 + components: + - type: Transform + pos: 1.5,34.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10142 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 0.5,36.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10143 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -0.5,36.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10144 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -1.5,36.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10145 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -3.5,36.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10146 + components: + - type: Transform + pos: -2.5,35.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10147 + components: + - type: Transform + pos: -2.5,34.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10148 + components: + - type: Transform + pos: -2.5,31.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10149 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -3.5,29.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10150 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -5.5,29.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10151 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -6.5,29.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10152 + components: + - type: Transform + pos: -4.5,28.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10153 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -3.5,26.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10154 + components: + - type: Transform + pos: -9.5,30.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10155 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -8.5,29.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10156 + components: + - type: Transform + pos: -9.5,32.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10157 + components: + - type: Transform + pos: -9.5,33.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10158 + components: + - type: Transform + pos: -9.5,34.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10159 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -11.5,35.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10160 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -12.5,35.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10161 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -16.5,43.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10162 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -17.5,43.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10163 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -18.5,43.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10164 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -19.5,43.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10165 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -20.5,43.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10166 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -21.5,43.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10168 + components: + - type: Transform + pos: 1.5,37.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10169 + components: + - type: Transform + pos: 1.5,38.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10170 + components: + - type: Transform + pos: 1.5,39.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10171 + components: + - type: Transform + pos: 1.5,40.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10172 + components: + - type: Transform + pos: 1.5,41.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10173 + components: + - type: Transform + pos: 1.5,42.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10174 + components: + - type: Transform + pos: 1.5,43.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10175 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 0.5,44.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10176 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -0.5,44.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10177 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -1.5,44.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10178 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -2.5,44.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10179 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -5.5,45.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10180 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -6.5,45.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10181 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -7.5,45.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10182 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 1.5,46.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10183 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 1.5,47.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10184 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 1.5,48.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10185 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 0.5,49.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10186 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -0.5,49.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10187 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -1.5,49.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10188 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -2.5,49.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10189 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -3.5,49.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10190 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -4.5,49.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10191 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -5.5,49.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10192 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -6.5,49.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10193 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -8.5,49.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10194 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -9.5,49.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10195 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -10.5,49.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10196 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -11.5,49.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10197 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -12.5,49.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10198 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -12.5,49.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10199 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -13.5,51.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10200 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -13.5,50.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10201 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -12.5,52.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10202 + components: + - type: Transform + pos: -13.5,53.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10203 + components: + - type: Transform + pos: -13.5,54.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10204 + components: + - type: Transform + pos: -13.5,55.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10205 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -12.5,56.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10206 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -11.5,56.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10207 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -10.5,56.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10208 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -9.5,56.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10209 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -8.5,56.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10210 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -6.5,56.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10211 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -4.5,56.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10212 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -2.5,56.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10213 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -1.5,56.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10214 + components: + - type: Transform + pos: 0.5,54.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10215 + components: + - type: Transform + pos: 0.5,53.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10216 + components: + - type: Transform + pos: -3.5,55.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10217 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -3.5,53.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10218 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -7.5,55.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10219 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -7.5,54.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10220 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -7.5,53.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10221 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -5.5,57.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10222 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -5.5,58.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10223 + components: + - type: Transform + pos: -0.5,57.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10224 + components: + - type: Transform + pos: -0.5,58.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10225 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 0.5,59.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10226 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 1.5,59.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10227 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 2.5,59.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10228 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 3.5,59.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10229 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 4.5,59.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10230 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 5.5,59.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10231 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 6.5,58.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10232 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -14.5,56.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10233 + components: + - type: Transform + pos: -13.5,57.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10234 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -12.5,58.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10235 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -11.5,59.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10236 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -11.5,60.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10237 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -14.5,58.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10238 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -15.5,58.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10239 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -16.5,58.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10240 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -18.5,58.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10241 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -17.5,59.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10242 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -18.5,60.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10243 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -19.5,57.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10244 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -19.5,56.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10245 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -19.5,55.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10246 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -19.5,54.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10247 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -19.5,53.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10248 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -17.5,61.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10249 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -17.5,62.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10250 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -17.5,63.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10251 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -17.5,64.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10252 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -17.5,65.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10253 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -17.5,66.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10254 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -17.5,67.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10255 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -17.5,68.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10256 + components: + - type: Transform + pos: -11.5,62.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10257 + components: + - type: Transform + pos: -11.5,63.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10258 + components: + - type: Transform + pos: -11.5,64.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10259 + components: + - type: Transform + pos: -11.5,65.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10260 + components: + - type: Transform + pos: -11.5,66.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10261 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -10.5,67.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10262 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -9.5,67.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10263 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -8.5,67.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10264 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -7.5,67.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10265 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -6.5,67.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10266 + components: + - type: Transform + pos: -5.5,66.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10267 + components: + - type: Transform + pos: -5.5,65.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10268 + components: + - type: Transform + pos: -5.5,64.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10269 + components: + - type: Transform + pos: -5.5,63.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10270 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -3.5,62.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10271 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -2.5,62.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10272 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -1.5,62.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10273 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -0.5,62.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10274 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 0.5,62.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10275 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -4.5,62.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10276 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 1.5,62.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10277 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 2.5,62.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10278 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 3.5,62.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10279 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 4.5,62.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10280 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 5.5,62.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10281 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 6.5,61.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10282 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 6.5,60.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10283 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -20.5,58.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10284 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -21.5,58.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10285 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -22.5,58.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10286 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -23.5,58.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10287 + components: + - type: Transform + pos: -24.5,57.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10288 + components: + - type: Transform + pos: -24.5,56.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10289 + components: + - type: Transform + pos: -24.5,55.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10290 + components: + - type: Transform + pos: -24.5,54.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10291 + components: + - type: Transform + pos: -24.5,53.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10292 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -24.5,61.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10293 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -24.5,62.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10294 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -24.5,63.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10295 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -24.5,64.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10296 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -24.5,65.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10297 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -24.5,66.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10298 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -24.5,67.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10299 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -24.5,68.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10300 + components: + - type: Transform + pos: -4.5,27.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10301 + components: + - type: Transform + pos: -3.5,54.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10302 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 10.5,15.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10304 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 9.5,15.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10305 + components: + - type: Transform + pos: 6.5,63.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10306 + components: + - type: Transform + pos: 6.5,64.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10307 + components: + - type: Transform + pos: 6.5,65.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10308 + components: + - type: Transform + pos: 6.5,66.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10309 + components: + - type: Transform + pos: 6.5,67.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10310 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 5.5,68.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10311 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 4.5,68.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10312 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 3.5,68.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10313 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 2.5,68.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10314 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 7.5,68.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10315 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 8.5,68.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10316 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 9.5,68.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10317 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 10.5,68.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10318 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 6.5,69.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10319 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 6.5,70.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10320 + components: + - type: Transform + pos: 6.5,56.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10321 + components: + - type: Transform + pos: 6.5,55.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10322 + components: + - type: Transform + pos: 6.5,54.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10323 + components: + - type: Transform + pos: 6.5,53.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10324 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 7.5,52.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10325 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 8.5,52.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10326 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 9.5,52.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10327 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 10.5,52.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10328 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 11.5,52.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10329 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 12.5,52.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10330 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 13.5,53.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10331 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 13.5,54.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10332 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 13.5,55.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10333 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 13.5,56.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10334 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 13.5,57.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10335 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 13.5,58.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10336 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 13.5,60.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10337 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 13.5,61.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10338 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 14.5,62.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10339 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 15.5,62.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10340 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 16.5,62.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10341 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 17.5,62.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10342 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 2.5,49.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10343 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 3.5,49.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10344 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 4.5,49.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10345 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 5.5,49.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10346 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 6.5,50.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10347 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 6.5,51.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10348 + components: + - type: Transform + pos: 7.5,48.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10349 + components: + - type: Transform + pos: 7.5,47.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10350 + components: + - type: Transform + pos: 7.5,46.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10351 + components: + - type: Transform + pos: 7.5,45.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10352 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 7.5,43.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10353 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 7.5,41.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10354 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 7.5,40.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10355 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 8.5,38.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10356 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 8.5,37.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10357 + components: + - type: Transform + pos: 9.5,36.5 + parent: 2 + - uid: 10358 + components: + - type: Transform + pos: 8.5,33.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10359 + components: + - type: Transform + pos: 8.5,32.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10360 + components: + - type: Transform + pos: 8.5,30.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10361 + components: + - type: Transform + pos: 8.5,29.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10362 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 8.5,36.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10363 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 14.5,36.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10364 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 9.5,31.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10365 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 10.5,31.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10366 + components: + - type: Transform + pos: 11.5,30.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10367 + components: + - type: Transform + pos: 11.5,29.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10368 + components: + - type: Transform + pos: 11.5,28.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10369 + components: + - type: Transform + pos: 11.5,27.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10370 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 12.5,31.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10371 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 13.5,31.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10372 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 14.5,31.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10373 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 16.5,31.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10374 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 17.5,31.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10375 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 18.5,30.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10376 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 18.5,29.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10377 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 18.5,28.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10378 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 18.5,27.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10379 + components: + - type: Transform + pos: 18.5,25.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10380 + components: + - type: Transform + pos: 18.5,24.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10381 + components: + - type: Transform + pos: 18.5,23.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10382 + components: + - type: Transform + pos: 18.5,22.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10383 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 2.5,21.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10384 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 3.5,21.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10385 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 4.5,21.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10386 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 5.5,21.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10387 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 6.5,21.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10388 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 7.5,21.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10389 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 8.5,21.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10390 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 9.5,21.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10391 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 10.5,21.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10392 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 12.5,21.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10393 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 13.5,21.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10394 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 15.5,21.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10395 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 16.5,21.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10396 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 17.5,21.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10397 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 18.5,32.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10398 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 19.5,33.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10399 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 20.5,33.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10400 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 21.5,33.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10401 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 22.5,33.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10402 + components: + - type: Transform + pos: 23.5,32.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10403 + components: + - type: Transform + pos: 23.5,30.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10404 + components: + - type: Transform + pos: 23.5,29.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10405 + components: + - type: Transform + pos: 23.5,28.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10406 + components: + - type: Transform + pos: 23.5,26.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10407 + components: + - type: Transform + pos: 23.5,25.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10408 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 24.5,24.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10409 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 25.5,24.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10410 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 24.5,33.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10411 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 25.5,33.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10412 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 26.5,33.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10413 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 27.5,33.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10414 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 18.5,34.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10415 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 18.5,36.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10416 + components: + - type: Transform + pos: 23.5,34.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10417 + components: + - type: Transform + pos: 23.5,35.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10418 + components: + - type: Transform + pos: 23.5,36.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10419 + components: + - type: Transform + pos: 23.5,37.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10420 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 24.5,38.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10421 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 25.5,38.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10422 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 26.5,38.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10423 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 27.5,39.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10424 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 27.5,40.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10425 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 27.5,41.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10426 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 27.5,42.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10427 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 27.5,43.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10428 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 27.5,44.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10429 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 26.5,45.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10430 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 25.5,45.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10431 + components: + - type: Transform + pos: 14.5,38.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10432 + components: + - type: Transform + pos: 14.5,39.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10433 + components: + - type: Transform + pos: 14.5,40.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10434 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 15.5,41.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10435 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 13.5,42.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10436 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 13.5,43.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10437 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 13.5,44.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10438 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 11.5,45.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10439 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 12.5,45.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10440 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -25.5,58.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10441 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -26.5,58.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10442 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -27.5,58.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10443 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -28.5,57.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10444 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -28.5,56.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10445 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -28.5,55.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10446 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -28.5,54.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10447 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -28.5,53.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10448 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -28.5,52.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10449 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -28.5,51.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10450 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -29.5,59.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10451 + components: + - type: Transform + pos: -29.5,61.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10452 + components: + - type: Transform + pos: -29.5,62.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10453 + components: + - type: Transform + pos: -29.5,63.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10454 + components: + - type: Transform + pos: -29.5,64.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10455 + components: + - type: Transform + pos: -29.5,65.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10456 + components: + - type: Transform + pos: -29.5,66.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10457 + components: + - type: Transform + pos: -29.5,67.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10458 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -30.5,58.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10459 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -31.5,58.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10460 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -32.5,58.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10461 + components: + - type: Transform + pos: -33.5,59.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10462 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -33.5,57.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10463 + components: + - type: Transform + pos: 11.5,20.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10464 + components: + - type: Transform + pos: 11.5,19.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10465 + components: + - type: Transform + pos: 11.5,18.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10466 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 11.5,17.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10467 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 11.5,13.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10468 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 11.5,12.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10469 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 11.5,14.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10470 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 8.5,15.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10471 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 7.5,15.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10472 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 6.5,15.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10473 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 5.5,15.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10474 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 3.5,15.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10475 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 2.5,15.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10476 + components: + - type: Transform + pos: 4.5,14.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10477 + components: + - type: Transform + pos: 4.5,13.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10478 + components: + - type: Transform + pos: 4.5,12.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10479 + components: + - type: Transform + pos: 4.5,11.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10480 + components: + - type: Transform + pos: 4.5,9.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10481 + components: + - type: Transform + pos: 4.5,8.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10482 + components: + - type: Transform + pos: 4.5,7.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10483 + components: + - type: Transform + pos: 4.5,6.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10484 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 3.5,10.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10485 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 2.5,10.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10486 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 1.5,10.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10487 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 0.5,10.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10488 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -0.5,10.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10489 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -1.5,10.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10490 + components: + - type: Transform + pos: -2.5,9.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10491 + components: + - type: Transform + pos: -2.5,8.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10492 + components: + - type: Transform + pos: -2.5,7.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10493 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -3.5,6.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10494 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -4.5,6.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10495 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -3.5,10.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10496 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -4.5,10.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10497 + components: + - type: Transform + pos: -5.5,11.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10498 + components: + - type: Transform + pos: -5.5,12.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10499 + components: + - type: Transform + pos: -5.5,13.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10500 + components: + - type: Transform + pos: -5.5,14.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10501 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -6.5,10.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10502 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -7.5,10.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10503 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -8.5,10.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10504 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -9.5,10.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10505 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -10.5,10.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10506 + components: + - type: Transform + pos: -11.5,11.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10507 + components: + - type: Transform + pos: -11.5,12.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10508 + components: + - type: Transform + pos: -11.5,9.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10509 + components: + - type: Transform + pos: -11.5,8.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10510 + components: + - type: Transform + pos: -11.5,7.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10511 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -10.5,6.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10512 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -12.5,6.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10513 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -13.5,6.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10514 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -14.5,6.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10515 + components: + - type: Transform + pos: -15.5,5.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10516 + components: + - type: Transform + pos: -15.5,4.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10517 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 19.5,21.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10518 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 20.5,21.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10519 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 21.5,21.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10520 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 22.5,21.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10521 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 23.5,21.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10522 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 24.5,21.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10523 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 25.5,21.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10524 + components: + - type: Transform + pos: 26.5,19.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10525 + components: + - type: Transform + pos: 26.5,18.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10526 + components: + - type: Transform + pos: 26.5,17.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10527 + components: + - type: Transform + pos: 26.5,16.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10528 + components: + - type: Transform + pos: 26.5,15.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10529 + components: + - type: Transform + pos: 26.5,14.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10530 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 27.5,21.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10531 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 28.5,21.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10532 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 29.5,21.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10533 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 30.5,21.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10534 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 31.5,21.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10535 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 32.5,21.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10536 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 33.5,22.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10537 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 33.5,23.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10538 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 33.5,24.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10539 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 33.5,25.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10540 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 33.5,26.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10541 + components: + - type: Transform + pos: 33.5,28.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10542 + components: + - type: Transform + pos: 33.5,29.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10543 + components: + - type: Transform + pos: 33.5,30.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10544 + components: + - type: Transform + pos: 33.5,31.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10545 + components: + - type: Transform + pos: 33.5,32.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10546 + components: + - type: Transform + pos: 33.5,33.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10547 + components: + - type: Transform + pos: 33.5,34.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10548 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 34.5,35.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10549 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 35.5,35.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10550 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 36.5,35.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10551 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 37.5,35.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10552 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 38.5,35.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10553 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 33.5,36.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10554 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 33.5,37.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10555 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 33.5,38.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10556 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 34.5,39.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10557 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 35.5,39.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10558 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 36.5,39.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10559 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 37.5,39.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10560 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 38.5,39.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10561 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 39.5,39.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10562 + components: + - type: Transform + pos: 33.5,41.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10563 + components: + - type: Transform + pos: 33.5,42.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10564 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 34.5,43.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10565 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 36.5,43.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10566 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 35.5,43.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10567 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 33.5,44.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10568 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 33.5,45.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10569 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 33.5,46.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10570 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 33.5,47.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10571 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 33.5,48.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10572 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 32.5,49.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10573 + components: + - type: Transform + pos: 31.5,50.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10574 + components: + - type: Transform + pos: 31.5,51.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10575 + components: + - type: Transform + pos: 31.5,52.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10576 + components: + - type: Transform + pos: 31.5,53.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10577 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 34.5,49.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10578 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 35.5,49.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10579 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 36.5,49.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10580 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 37.5,49.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10581 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 38.5,49.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10582 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 39.5,49.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10583 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 40.5,49.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10584 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 41.5,50.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10585 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 41.5,51.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10586 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 41.5,52.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10587 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 41.5,48.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10588 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 41.5,47.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10589 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 41.5,46.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10590 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 41.5,45.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10591 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 41.5,44.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10592 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 8.5,49.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10593 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 9.5,49.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10594 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 10.5,49.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10595 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 11.5,49.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10596 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 12.5,49.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10597 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 14.5,49.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10598 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 15.5,49.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10599 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 16.5,49.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10600 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 17.5,49.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10601 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 18.5,49.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10602 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 19.5,49.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10603 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 20.5,49.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10604 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 21.5,49.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10605 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 23.5,49.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10606 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 24.5,50.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10607 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 24.5,51.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10608 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 24.5,52.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10609 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 24.5,53.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10610 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 22.5,54.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10611 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 21.5,54.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10612 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 20.5,54.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10613 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 19.5,54.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10614 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 18.5,55.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10615 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 18.5,56.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10616 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 18.5,57.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10617 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 18.5,58.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10618 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 25.5,49.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10619 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 26.5,49.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10620 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 27.5,49.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10621 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 28.5,49.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10622 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 29.5,49.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10623 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 30.5,49.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10624 + components: + - type: Transform + pos: -24.5,59.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10625 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 41.5,35.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10626 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 40.5,35.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10627 + components: + - type: Transform + pos: 42.5,34.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10628 + components: + - type: Transform + pos: 42.5,33.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10629 + components: + - type: Transform + pos: 42.5,32.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10630 + components: + - type: Transform + pos: 42.5,31.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10631 + components: + - type: Transform + pos: 42.5,30.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10632 + components: + - type: Transform + pos: 42.5,29.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10633 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 43.5,35.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10634 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 44.5,35.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10635 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 45.5,35.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10636 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 46.5,35.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10637 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 47.5,36.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10638 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 47.5,37.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10639 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 47.5,38.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10640 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 47.5,40.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10641 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 47.5,41.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10642 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 47.5,42.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10643 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 47.5,43.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10644 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 47.5,44.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10645 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 48.5,45.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10646 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 49.5,46.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10647 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 49.5,47.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10648 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 49.5,48.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10649 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 49.5,49.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10650 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 49.5,50.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10651 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 49.5,51.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10652 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 47.5,46.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10653 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 47.5,47.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10654 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 48.5,35.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10655 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 49.5,35.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10656 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 50.5,35.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10657 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 51.5,35.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10658 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 52.5,36.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10659 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 52.5,39.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10660 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 52.5,40.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10661 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 52.5,41.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10662 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 52.5,42.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10663 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 52.5,44.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10664 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 52.5,45.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10665 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 52.5,46.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10666 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 52.5,47.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10667 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 52.5,48.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10668 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 53.5,38.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10669 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 54.5,38.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10670 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 55.5,38.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10671 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 56.5,38.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10672 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 57.5,38.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10673 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 58.5,38.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10674 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 59.5,38.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10675 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 60.5,39.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10676 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 60.5,40.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10677 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 60.5,41.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10678 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 60.5,42.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10679 + components: + - type: Transform + pos: 54.5,34.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10680 + components: + - type: Transform + pos: 54.5,33.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10681 + components: + - type: Transform + pos: 54.5,32.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10682 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 52.5,31.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10683 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 51.5,31.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10684 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 55.5,31.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10685 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 56.5,31.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10686 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 57.5,31.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10687 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 58.5,31.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10688 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 59.5,31.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10689 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 49.5,31.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10690 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 48.5,31.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10691 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 46.5,30.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10692 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 46.5,29.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10693 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 46.5,28.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10694 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 54.5,30.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10695 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 54.5,29.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10696 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 54.5,28.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10697 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 55.5,26.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10698 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 55.5,25.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10699 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 55.5,24.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10700 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 55.5,23.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10701 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 55.5,22.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10702 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 55.5,21.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10703 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 55.5,20.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10704 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 53.5,27.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10705 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 52.5,27.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10706 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 51.5,27.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10707 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 50.5,27.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10708 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 49.5,27.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10709 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 48.5,27.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10710 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 47.5,27.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10711 + components: + - type: Transform + pos: 46.5,26.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10712 + components: + - type: Transform + pos: 46.5,25.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10713 + components: + - type: Transform + pos: 46.5,24.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10714 + components: + - type: Transform + pos: 46.5,23.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10715 + components: + - type: Transform + pos: 46.5,21.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10716 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 47.5,20.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10717 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 48.5,20.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10718 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 49.5,20.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10719 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 50.5,20.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10720 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 51.5,20.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10721 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 46.5,19.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10722 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 46.5,18.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10723 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 47.5,17.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10724 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 48.5,17.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10725 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 50.5,17.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10726 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 51.5,17.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10727 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 46.5,15.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10728 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 46.5,14.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10729 + components: + - type: Transform + pos: 49.5,16.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10730 + components: + - type: Transform + pos: 49.5,15.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10731 + components: + - type: Transform + pos: 49.5,14.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10732 + components: + - type: Transform + pos: 49.5,13.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10733 + components: + - type: Transform + pos: 49.5,12.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10734 + components: + - type: Transform + pos: 50.5,10.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10735 + components: + - type: Transform + pos: 50.5,8.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10736 + components: + - type: Transform + pos: 50.5,6.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10737 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 51.5,5.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10738 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 49.5,5.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10740 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 53.5,2.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10741 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 45.5,16.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10742 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 44.5,16.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10743 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 43.5,16.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10744 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 42.5,16.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10745 + components: + - type: Transform + pos: 41.5,17.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10746 + components: + - type: Transform + pos: 41.5,18.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10747 + components: + - type: Transform + pos: 41.5,19.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10748 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 40.5,15.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10749 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 39.5,15.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10750 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 38.5,15.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10751 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 37.5,15.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10752 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 36.5,15.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10753 + components: + - type: Transform + pos: 41.5,14.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10754 + components: + - type: Transform + pos: 41.5,13.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10755 + components: + - type: Transform + pos: 41.5,12.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10756 + components: + - type: Transform + pos: 41.5,11.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10757 + components: + - type: Transform + pos: 41.5,10.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10758 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 40.5,8.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10759 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 39.5,8.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10760 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 38.5,8.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10761 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 37.5,8.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10762 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 36.5,8.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10763 + components: + - type: Transform + pos: 35.5,7.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10764 + components: + - type: Transform + pos: 35.5,6.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10765 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 35.5,4.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10766 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 35.5,1.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10767 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 35.5,2.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10768 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 34.5,3.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10769 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 32.5,3.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10770 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 33.5,3.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10771 + components: + - type: Transform + pos: 31.5,2.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10772 + components: + - type: Transform + pos: 31.5,1.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10773 + components: + - type: Transform + pos: 31.5,0.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10774 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 30.5,-0.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10779 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 32.5,9.5 + parent: 2 + - uid: 10780 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 34.5,9.5 + parent: 2 + - uid: 10781 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 35.5,9.5 + parent: 2 + - uid: 10782 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 36.5,9.5 + parent: 2 + - uid: 10783 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 32.5,11.5 + parent: 2 + - uid: 10784 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 34.5,11.5 + parent: 2 + - uid: 10785 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 35.5,11.5 + parent: 2 + - uid: 10786 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 36.5,11.5 + parent: 2 + - uid: 10790 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 55.5,35.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10791 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 56.5,35.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10792 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 57.5,35.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10793 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 58.5,35.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10794 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 59.5,35.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10795 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 60.5,35.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10796 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 61.5,35.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10797 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 62.5,35.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10798 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 63.5,35.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10799 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 64.5,35.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10800 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 65.5,35.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10801 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 67.5,35.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10802 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 66.5,36.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10803 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 66.5,37.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10804 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 66.5,38.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10805 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 66.5,39.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10806 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 66.5,40.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10807 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 66.5,41.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10808 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 66.5,42.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10809 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 66.5,44.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10810 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 67.5,45.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10811 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 68.5,45.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10812 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 69.5,45.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10813 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 71.5,45.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10814 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 72.5,45.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10815 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 73.5,45.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10816 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 74.5,45.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10817 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 77.5,44.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10818 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 78.5,44.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10819 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 79.5,44.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10820 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 80.5,44.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10821 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 81.5,44.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10822 + components: + - type: Transform + pos: 70.5,36.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10823 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 69.5,35.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10824 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 70.5,37.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10825 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 70.5,38.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10826 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 70.5,39.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10827 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 71.5,40.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10828 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 72.5,40.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10829 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 73.5,40.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10830 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 74.5,40.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10831 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 75.5,40.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10832 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 71.5,35.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10833 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 72.5,35.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10834 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 73.5,35.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10835 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 74.5,35.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10836 + components: + - type: Transform + pos: 82.5,42.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10837 + components: + - type: Transform + pos: 82.5,41.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10838 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 81.5,40.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10839 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 80.5,40.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10840 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 79.5,40.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10841 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 78.5,40.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10842 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 77.5,40.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10843 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 82.5,39.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10844 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 82.5,38.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10845 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 82.5,37.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10846 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 82.5,36.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10847 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 76.5,35.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10848 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 77.5,35.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10849 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 78.5,35.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10850 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 79.5,35.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10851 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 80.5,35.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10852 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 81.5,35.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10853 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 82.5,33.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10854 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 82.5,32.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10855 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 82.5,31.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10856 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 82.5,30.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10857 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 81.5,29.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10858 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 80.5,29.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10859 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 79.5,29.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10860 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 78.5,28.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10861 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 78.5,27.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10862 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 78.5,26.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10863 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 82.5,28.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10864 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 82.5,27.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10865 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 82.5,26.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10866 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 82.5,25.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10867 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 66.5,34.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10868 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 66.5,33.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10869 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 66.5,32.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10870 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 66.5,31.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10871 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 66.5,30.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10872 + components: + - type: Transform + pos: 66.5,28.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10873 + components: + - type: Transform + pos: 66.5,27.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10874 + components: + - type: Transform + pos: 66.5,26.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10875 + components: + - type: Transform + pos: 66.5,25.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10876 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 67.5,24.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10877 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 68.5,24.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10878 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 69.5,24.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10879 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 66.5,23.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10880 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 66.5,22.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10881 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 66.5,21.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10882 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 67.5,20.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10883 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 68.5,20.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10884 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 69.5,20.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10885 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 70.5,20.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10886 + components: + - type: Transform + pos: 71.5,19.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10887 + components: + - type: Transform + pos: 71.5,17.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10888 + components: + - type: Transform + pos: 71.5,16.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10889 + components: + - type: Transform + pos: 71.5,15.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10890 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 66.5,19.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10891 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 66.5,18.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10892 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 66.5,17.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10893 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 66.5,16.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10894 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 66.5,15.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10895 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 66.5,14.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10896 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 66.5,13.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10897 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 66.5,12.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10898 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 67.5,11.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10899 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 69.5,11.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10900 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 70.5,11.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10901 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 71.5,11.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10902 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 72.5,11.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10903 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 73.5,11.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10904 + components: + - type: Transform + pos: 66.5,10.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10905 + components: + - type: Transform + pos: 66.5,9.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10906 + components: + - type: Transform + pos: 66.5,8.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10907 + components: + - type: Transform + pos: 66.5,7.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10908 + components: + - type: Transform + pos: 66.5,6.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10909 + components: + - type: Transform + pos: 66.5,5.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10910 + components: + - type: Transform + pos: 66.5,4.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10911 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 74.5,10.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10912 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 74.5,9.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10913 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 74.5,8.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10914 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 74.5,7.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10915 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 74.5,6.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10916 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 74.5,5.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10917 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 74.5,4.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10918 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 74.5,3.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10919 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 74.5,2.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10920 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 74.5,1.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10921 + components: + - type: Transform + pos: 66.5,51.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10922 + components: + - type: Transform + pos: 66.5,50.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10923 + components: + - type: Transform + pos: 66.5,47.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10924 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 66.5,52.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10925 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 66.5,53.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10926 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 66.5,54.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10927 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 66.5,55.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10928 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 65.5,57.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10929 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 64.5,57.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10930 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 63.5,57.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10931 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 62.5,57.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10932 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 61.5,57.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10933 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 60.5,60.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10934 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 61.5,60.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10935 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 62.5,60.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10936 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 63.5,60.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10937 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 64.5,60.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10938 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 65.5,60.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10939 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 66.5,58.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10940 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 66.5,59.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10941 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 67.5,60.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10942 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 68.5,60.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10943 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 69.5,60.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10944 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 70.5,60.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10945 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 71.5,60.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10946 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 72.5,60.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10947 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 73.5,60.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10948 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 17.5,35.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10949 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 16.5,35.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10950 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 15.5,35.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10951 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -15.5,29.5 + parent: 2 + - type: AtmosPipeColor + color: '#17D8D2FF' + - uid: 10952 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 22.5,32.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10953 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 55.5,43.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10954 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 46.5,40.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10955 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 77.5,37.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10956 + components: + - type: Transform + pos: 66.5,46.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10957 + components: + - type: Transform + pos: 66.5,49.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10958 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -13.5,3.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10959 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -13.5,3.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10960 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -15.5,3.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10961 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -15.5,2.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10962 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -14.5,44.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10963 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -13.5,44.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10964 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -12.5,44.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10965 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -11.5,44.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10966 + components: + - type: Transform + pos: -10.5,43.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10967 + components: + - type: Transform + pos: -10.5,42.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10968 + components: + - type: Transform + pos: -10.5,41.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10969 + components: + - type: Transform + pos: -10.5,40.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10970 + components: + - type: Transform + pos: -10.5,39.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10971 + components: + - type: Transform + pos: -10.5,38.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10972 + components: + - type: Transform + pos: -10.5,37.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10973 + components: + - type: Transform + pos: -10.5,36.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10974 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -13.5,2.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10975 + components: + - type: Transform + pos: -15.5,1.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10976 + components: + - type: Transform + pos: -13.5,0.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10977 + components: + - type: Transform + pos: -13.5,-0.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10978 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -14.5,-1.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10979 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -16.5,-1.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10980 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -16.5,-2.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10981 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -16.5,-3.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10982 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -16.5,-4.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10983 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -15.5,-2.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10984 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -15.5,-3.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10985 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -15.5,-4.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10986 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 6.5,34.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10987 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 7.5,34.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10988 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 6.5,32.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10989 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -32.5,21.5 + parent: 2 + - type: AtmosPipeColor + color: '#17D8D2FF' + - uid: 10990 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -22.5,16.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10991 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -22.5,15.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10992 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -22.5,14.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10993 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -22.5,13.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10994 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -22.5,12.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10995 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -22.5,11.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10996 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -24.5,10.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10997 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -23.5,10.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10998 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -26.5,9.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10999 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -26.5,6.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11000 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -27.5,8.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11001 + components: + - type: Transform + pos: -28.5,7.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11002 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -30.5,6.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11003 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -31.5,6.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11004 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -32.5,6.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11005 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -34.5,8.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11006 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -34.5,9.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11007 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -34.5,10.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11008 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -34.5,12.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11009 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -34.5,13.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11010 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -34.5,14.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11011 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -34.5,14.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11012 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -34.5,16.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11013 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -34.5,17.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11014 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -34.5,18.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11015 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -34.5,19.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11016 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -33.5,20.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11017 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -32.5,20.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11018 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -32.5,20.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11019 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -30.5,20.5 + parent: 2 + - type: AtmosPipeColor + color: '#EAC300FF' + - uid: 11020 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -29.5,20.5 + parent: 2 + - type: AtmosPipeColor + color: '#EAC300FF' + - uid: 11021 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -28.5,19.5 + parent: 2 + - type: AtmosPipeColor + color: '#EAC300FF' + - uid: 11022 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -34.5,17.5 + parent: 2 + - type: AtmosPipeColor + color: '#EAC300FF' + - uid: 11023 + components: + - type: Transform + pos: -32.5,18.5 + parent: 2 + - type: AtmosPipeColor + color: '#EAC300FF' + - uid: 11024 + components: + - type: Transform + pos: -31.5,18.5 + parent: 2 + - type: AtmosPipeColor + color: '#EAC300FF' + - uid: 11025 + components: + - type: Transform + pos: -31.5,17.5 + parent: 2 + - type: AtmosPipeColor + color: '#EAC300FF' + - uid: 11026 + components: + - type: Transform + pos: -31.5,16.5 + parent: 2 + - type: AtmosPipeColor + color: '#EAC300FF' + - uid: 11027 + components: + - type: Transform + pos: -31.5,15.5 + parent: 2 + - type: AtmosPipeColor + color: '#EAC300FF' + - uid: 11028 + components: + - type: Transform + pos: -31.5,14.5 + parent: 2 + - type: AtmosPipeColor + color: '#EAC300FF' + - uid: 11029 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -34.5,13.5 + parent: 2 + - type: AtmosPipeColor + color: '#EAC300FF' + - uid: 11030 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -32.5,13.5 + parent: 2 + - type: AtmosPipeColor + color: '#EAC300FF' + - uid: 11031 + components: + - type: Transform + pos: -29.5,14.5 + parent: 2 + - type: AtmosPipeColor + color: '#EAC300FF' + - uid: 11032 + components: + - type: Transform + pos: -29.5,15.5 + parent: 2 + - type: AtmosPipeColor + color: '#EAC300FF' + - uid: 11033 + components: + - type: Transform + pos: -29.5,16.5 + parent: 2 + - type: AtmosPipeColor + color: '#EAC300FF' + - uid: 11034 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -33.5,19.5 + parent: 2 + - type: AtmosPipeColor + color: '#EAC300FF' + - uid: 11035 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -34.5,19.5 + parent: 2 + - type: AtmosPipeColor + color: '#EAC300FF' + - uid: 11036 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -22.5,17.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11037 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -23.5,17.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11038 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -24.5,17.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11039 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -23.5,19.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11040 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -24.5,19.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11041 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -34.5,9.5 + parent: 2 + - type: AtmosPipeColor + color: '#EAC300FF' + - uid: 11042 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -32.5,9.5 + parent: 2 + - type: AtmosPipeColor + color: '#EAC300FF' + - uid: 11043 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -28.5,9.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11044 + components: + - type: Transform + pos: -31.5,8.5 + parent: 2 + - type: AtmosPipeColor + color: '#EAC300FF' + - uid: 11045 + components: + - type: Transform + pos: -31.5,6.5 + parent: 2 + - type: AtmosPipeColor + color: '#EAC300FF' + - uid: 11046 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -29.5,10.5 + parent: 2 + - type: AtmosPipeColor + color: '#EAC300FF' + - uid: 11047 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -30.5,9.5 + parent: 2 + - type: AtmosPipeColor + color: '#EAC300FF' + - uid: 11048 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -29.5,11.5 + parent: 2 + - type: AtmosPipeColor + color: '#EAC300FF' + - uid: 11049 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -29.5,12.5 + parent: 2 + - type: AtmosPipeColor + color: '#EAC300FF' + - uid: 11050 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -28.5,9.5 + parent: 2 + - type: AtmosPipeColor + color: '#EAC300FF' + - uid: 11051 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -27.5,8.5 + parent: 2 + - type: AtmosPipeColor + color: '#EAC300FF' + - uid: 11052 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -28.5,13.5 + parent: 2 + - uid: 11053 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -27.5,6.5 + parent: 2 + - type: AtmosPipeColor + color: '#EAC300FF' + - uid: 11054 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -26.5,12.5 + parent: 2 + - uid: 11055 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -26.5,13.5 + parent: 2 + - uid: 11056 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -27.5,17.5 + parent: 2 + - type: AtmosPipeColor + color: '#BFA200FF' + - uid: 11057 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -27.5,18.5 + parent: 2 + - type: AtmosPipeColor + color: '#BFA200FF' + - uid: 11058 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -28.5,19.5 + parent: 2 + - type: AtmosPipeColor + color: '#BFA200FF' + - uid: 11059 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -21.5,27.5 + parent: 2 + - type: AtmosPipeColor + color: '#BFA200FF' + - uid: 11060 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -22.5,26.5 + parent: 2 + - type: AtmosPipeColor + color: '#BFA200FF' + - uid: 11061 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -23.5,26.5 + parent: 2 + - type: AtmosPipeColor + color: '#BFA200FF' + - uid: 11062 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -24.5,26.5 + parent: 2 + - type: AtmosPipeColor + color: '#BFA200FF' + - uid: 11063 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -25.5,26.5 + parent: 2 + - type: AtmosPipeColor + color: '#BFA200FF' + - uid: 11064 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -26.5,26.5 + parent: 2 + - type: AtmosPipeColor + color: '#BFA200FF' + - uid: 11065 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -27.5,26.5 + parent: 2 + - type: AtmosPipeColor + color: '#BFA200FF' + - uid: 11066 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -28.5,26.5 + parent: 2 + - type: AtmosPipeColor + color: '#BFA200FF' + - uid: 11067 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -28.5,26.5 + parent: 2 + - type: AtmosPipeColor + color: '#BFA200FF' + - uid: 11068 + components: + - type: Transform + pos: -29.5,25.5 + parent: 2 + - type: AtmosPipeColor + color: '#BFA200FF' + - uid: 11069 + components: + - type: Transform + pos: -29.5,24.5 + parent: 2 + - type: AtmosPipeColor + color: '#BFA200FF' + - uid: 11070 + components: + - type: Transform + pos: -29.5,23.5 + parent: 2 + - type: AtmosPipeColor + color: '#BFA200FF' + - uid: 11071 + components: + - type: Transform + pos: -29.5,22.5 + parent: 2 + - type: AtmosPipeColor + color: '#BFA200FF' + - uid: 11072 + components: + - type: Transform + pos: -29.5,21.5 + parent: 2 + - type: AtmosPipeColor + color: '#BFA200FF' + - uid: 11073 + components: + - type: Transform + pos: -29.5,20.5 + parent: 2 + - type: AtmosPipeColor + color: '#BFA200FF' + - uid: 11074 + components: + - type: Transform + pos: -26.5,20.5 + parent: 2 + - type: AtmosPipeColor + color: '#EAC300FF' + - uid: 11075 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -34.5,21.5 + parent: 2 + - type: AtmosPipeColor + color: '#17D8D2FF' + - uid: 11076 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -31.5,21.5 + parent: 2 + - type: AtmosPipeColor + color: '#17D8D2FF' + - uid: 11077 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -30.5,21.5 + parent: 2 + - type: AtmosPipeColor + color: '#17D8D2FF' + - uid: 11078 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -29.5,21.5 + parent: 2 + - type: AtmosPipeColor + color: '#17D8D2FF' + - uid: 11079 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -28.5,21.5 + parent: 2 + - type: AtmosPipeColor + color: '#17D8D2FF' + - uid: 11080 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -27.5,21.5 + parent: 2 + - type: AtmosPipeColor + color: '#17D8D2FF' + - uid: 11081 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -26.5,21.5 + parent: 2 + - type: AtmosPipeColor + color: '#17D8D2FF' + - uid: 11082 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -25.5,21.5 + parent: 2 + - type: AtmosPipeColor + color: '#17D8D2FF' + - uid: 11083 + components: + - type: Transform + pos: -24.5,20.5 + parent: 2 + - type: AtmosPipeColor + color: '#17D8D2FF' + - uid: 11084 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -24.5,17.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11085 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -24.5,16.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11086 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -24.5,15.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11087 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -19.5,16.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11088 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -19.5,15.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11089 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -19.5,14.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11090 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -19.5,13.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11091 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -20.5,12.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11092 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -21.5,12.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11093 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -22.5,12.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11094 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -23.5,12.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11095 + components: + - type: Transform + pos: -30.5,23.5 + parent: 2 + - type: AtmosPipeColor + color: '#9D00E0FF' + - uid: 11096 + components: + - type: Transform + pos: -30.5,23.5 + parent: 2 + - type: AtmosPipeColor + color: '#9D00E0FF' + - uid: 11097 + components: + - type: Transform + pos: -30.5,22.5 + parent: 2 + - type: AtmosPipeColor + color: '#9D00E0FF' + - uid: 11098 + components: + - type: Transform + pos: -30.5,21.5 + parent: 2 + - type: AtmosPipeColor + color: '#9D00E0FF' + - uid: 11099 + components: + - type: Transform + pos: -30.5,20.5 + parent: 2 + - type: AtmosPipeColor + color: '#9D00E0FF' + - uid: 11100 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -31.5,25.5 + parent: 2 + - type: AtmosPipeColor + color: '#EAC300FF' + - uid: 11101 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -32.5,25.5 + parent: 2 + - type: AtmosPipeColor + color: '#EAC300FF' + - uid: 11102 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -33.5,28.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11103 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -34.5,25.5 + parent: 2 + - type: AtmosPipeColor + color: '#EAC300FF' + - uid: 11104 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -35.5,25.5 + parent: 2 + - type: AtmosPipeColor + color: '#EAC300FF' + - uid: 11105 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -37.5,25.5 + parent: 2 + - uid: 11106 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -33.5,29.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11107 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -33.5,30.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11108 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -33.5,31.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11109 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 32.5,-10.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11110 + components: + - type: Transform + pos: 32.5,-10.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11111 + components: + - type: Transform + pos: 32.5,-7.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11112 + components: + - type: Transform + pos: 34.5,-7.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11113 + components: + - type: Transform + pos: 32.5,-11.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11114 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 33.5,-12.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11115 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 34.5,-12.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11116 + components: + - type: Transform + pos: 32.5,-9.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11117 + components: + - type: Transform + pos: 32.5,-8.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11118 + components: + - type: Transform + pos: 34.5,-9.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11119 + components: + - type: Transform + pos: 34.5,-8.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11120 + components: + - type: Transform + pos: 34.5,-6.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11121 + components: + - type: Transform + pos: 32.5,-5.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11122 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 33.5,-10.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11123 + components: + - type: Transform + pos: 34.5,-0.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11124 + components: + - type: Transform + pos: 34.5,-1.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11125 + components: + - type: Transform + pos: 34.5,-2.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11126 + components: + - type: Transform + pos: 37.5,-0.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11127 + components: + - type: Transform + pos: 37.5,-1.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11128 + components: + - type: Transform + pos: 37.5,-2.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11129 + components: + - type: Transform + pos: 37.5,-3.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11130 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 36.5,-4.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11131 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 35.5,-4.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11132 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 33.5,-3.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11133 + components: + - type: Transform + pos: 32.5,-4.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11134 + components: + - type: Transform + pos: 32.5,-6.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11135 + components: + - type: Transform + pos: 34.5,-5.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11136 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 30.5,-10.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11137 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 31.5,-10.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11138 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 31.5,-12.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11139 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 30.5,-12.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11279 + components: + - type: Transform + pos: 50.5,7.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11322 + components: + - type: Transform + pos: -25.5,32.5 + parent: 2 + - type: AtmosPipeColor + color: '#17D8D2FF' + - uid: 11708 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -18.5,40.5 + parent: 2 + - type: AtmosPipeColor + color: '#BFA200FF' + - uid: 11821 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 51.5,-2.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 12186 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 53.5,6.5 + parent: 2 + - uid: 12629 + components: + - type: Transform + pos: -33.5,65.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 12630 + components: + - type: Transform + pos: -33.5,64.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 12777 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 53.5,0.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13257 + components: + - type: Transform + pos: -33.5,63.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13428 + components: + - type: Transform + pos: -33.5,62.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13914 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -3.5,20.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 16307 + components: + - type: Transform + pos: -33.5,61.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 18633 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -3.5,20.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 18636 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -4.5,19.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 18931 + components: + - type: Transform + pos: -26.5,29.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 18932 + components: + - type: Transform + pos: -26.5,30.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 18933 + components: + - type: Transform + pos: -26.5,32.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 18934 + components: + - type: Transform + pos: -26.5,34.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 18935 + components: + - type: Transform + pos: -26.5,36.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 19284 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 53.5,-0.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 19285 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 50.5,-2.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 19286 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 53.5,-2.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 19287 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 49.5,4.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 19289 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 53.5,-2.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 19290 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 49.5,1.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 19291 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 49.5,0.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 19293 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 49.5,-1.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 19299 + components: + - type: Transform + pos: 50.5,-4.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 19300 + components: + - type: Transform + pos: 50.5,-5.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 19301 + components: + - type: Transform + pos: 50.5,-6.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 19302 + components: + - type: Transform + pos: 52.5,-4.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 19303 + components: + - type: Transform + pos: 52.5,-5.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 19304 + components: + - type: Transform + pos: 52.5,-6.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 19305 + components: + - type: Transform + pos: 51.5,-6.5 + parent: 2 + - uid: 19306 + components: + - type: Transform + pos: 51.5,-5.5 + parent: 2 + - uid: 19307 + components: + - type: Transform + pos: 51.5,-4.5 + parent: 2 + - uid: 19312 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 48.5,-3.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 19313 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 48.5,-0.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 19314 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 48.5,2.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 19316 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 54.5,4.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 19317 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 54.5,1.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 19318 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 54.5,-1.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 19321 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 51.5,4.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 19322 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 50.5,4.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 19323 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 49.5,4.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 19324 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 48.5,4.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 19327 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 50.5,-0.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 19328 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 51.5,-0.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 19329 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 52.5,-0.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 19330 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 53.5,-0.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 19331 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 54.5,-0.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 19332 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 50.5,2.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 19333 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 51.5,2.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 19334 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 52.5,2.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 19335 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 53.5,2.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 19336 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 54.5,2.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 19337 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 52.5,1.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 19338 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 51.5,1.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 19339 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 50.5,1.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 19340 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 49.5,1.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 19341 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 48.5,1.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 19342 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 52.5,-1.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 19343 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 51.5,-1.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 19344 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 50.5,-1.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 19345 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 49.5,-1.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 19346 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 48.5,-1.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 19377 + components: + - type: Transform + pos: -31.5,63.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 19378 + components: + - type: Transform + pos: -31.5,64.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 19379 + components: + - type: Transform + pos: -31.5,65.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 19380 + components: + - type: Transform + pos: -31.5,66.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 19381 + components: + - type: Transform + pos: -31.5,67.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 19386 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -32.5,68.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 19387 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -32.5,69.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 19388 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -32.5,70.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 19389 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -32.5,71.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 19390 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -32.5,72.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 19392 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -32.5,74.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 19393 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -28.5,68.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 19394 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -28.5,69.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 19395 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -28.5,70.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 19396 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -28.5,71.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 19397 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -28.5,72.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 19398 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -28.5,73.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 19404 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -27.5,74.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 19405 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -26.5,74.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 19406 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -25.5,74.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 19407 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -24.5,74.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 19408 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -23.5,74.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 19409 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -22.5,74.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 19410 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -22.5,73.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 19411 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -23.5,73.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 19412 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -24.5,73.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 19413 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -25.5,73.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 19414 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -26.5,73.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 19415 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -27.5,73.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 19416 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -28.5,73.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 19417 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -29.5,73.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 19418 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -30.5,73.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 19419 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -31.5,73.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' +- proto: GasPipeTJunction + entities: + - uid: 9009 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -26.5,33.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 9224 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -26.5,35.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 9315 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -5.5,20.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 9551 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -33.5,60.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10125 + components: + - type: Transform + pos: -3.5,21.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10739 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 49.5,3.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10788 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 52.5,6.5 + parent: 2 + - uid: 11140 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -26.5,18.5 + parent: 2 + - uid: 11141 + components: + - type: Transform + pos: -21.5,29.5 + parent: 2 + - type: AtmosPipeColor + color: '#17D8D2FF' + - uid: 11142 + components: + - type: Transform + pos: -19.5,17.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11143 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 7.5,32.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11144 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 36.5,0.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11145 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 35.5,0.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11146 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 8.5,34.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11147 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -9.5,29.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11148 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -8.5,27.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11149 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -15.5,43.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11150 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -10.5,35.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11151 + components: + - type: Transform + pos: -17.5,29.5 + parent: 2 + - type: AtmosPipeColor + color: '#17D8D2FF' + - uid: 11152 + components: + - type: Transform + pos: 33.5,49.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11153 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -15.5,37.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11154 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -14.5,33.5 + parent: 2 + - type: AtmosPipeColor + color: '#17D8D2FF' + - uid: 11155 + components: + - type: Transform + pos: -20.5,29.5 + parent: 2 + - type: AtmosPipeColor + color: '#17D8D2FF' + - uid: 11156 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -13.5,41.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11157 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -18.5,41.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11161 + components: + - type: Transform + pos: -19.5,36.5 + parent: 2 + - type: AtmosPipeColor + color: '#BFA200FF' + - uid: 11164 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -14.5,35.5 + parent: 2 + - type: AtmosPipeColor + color: '#17D8D2FF' + - uid: 11165 + components: + - type: Transform + pos: -18.5,36.5 + parent: 2 + - type: AtmosPipeColor + color: '#BFA200FF' + - uid: 11166 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -14.5,19.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11167 + components: + - type: Transform + pos: 10.5,33.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11169 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 11.5,34.5 + parent: 2 + - uid: 11170 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 26.5,42.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11171 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 26.5,40.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11172 + components: + - type: Transform + pos: 26.5,44.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11173 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -19.5,32.5 + parent: 2 + - type: AtmosPipeColor + color: '#17D8D2FF' + - uid: 11174 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -18.5,32.5 + parent: 2 + - type: AtmosPipeColor + color: '#17D8D2FF' + - uid: 11175 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -14.5,31.5 + parent: 2 + - type: AtmosPipeColor + color: '#17D8D2FF' + - uid: 11176 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 8.5,35.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11177 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 10.5,34.5 + parent: 2 + - uid: 11178 + components: + - type: Transform + pos: -4.5,29.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11179 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -21.5,17.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11180 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -17.5,18.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11181 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -16.5,18.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11182 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -9.5,19.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11183 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -0.5,19.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11184 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -0.5,24.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11185 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -0.5,33.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11186 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -0.5,34.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11187 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -4.5,33.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11188 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -5.5,31.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11189 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -8.5,31.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11190 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -8.5,33.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11191 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -8.5,34.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11192 + components: + - type: Transform + pos: 14.5,19.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11193 + components: + - type: Transform + pos: 7.5,19.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11194 + components: + - type: Transform + pos: 3.5,16.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11195 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 3.5,11.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11196 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -10.5,11.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11197 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -10.5,7.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11198 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -0.5,42.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11199 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -0.5,45.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11200 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -4.5,42.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11201 + components: + - type: Transform + pos: -0.5,47.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11202 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -8.5,47.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11203 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -12.5,54.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11204 + components: + - type: Transform + pos: -5.5,54.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11205 + components: + - type: Transform + pos: -9.5,54.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11206 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -1.5,54.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11207 + components: + - type: Transform + pos: -3.5,56.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11208 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -1.5,58.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11209 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -15.5,57.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11210 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -14.5,61.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11211 + components: + - type: Transform + pos: -18.5,57.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11212 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -22.5,60.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11213 + components: + - type: Transform + pos: -26.5,57.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11214 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -27.5,57.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11215 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -27.5,61.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11216 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -31.5,61.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11217 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -12.5,62.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11218 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -27.5,67.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11219 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -7.5,66.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11220 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -7.5,64.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11221 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 4.5,47.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11222 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 4.5,53.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11223 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 4.5,64.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11224 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 9.5,53.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11225 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 9.5,60.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11226 + components: + - type: Transform + pos: 6.5,47.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11227 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 6.5,44.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11228 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 6.5,39.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11229 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 7.5,33.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11230 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 16.5,19.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11231 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 16.5,25.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11232 + components: + - type: Transform + pos: 16.5,30.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11233 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 19.5,32.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11234 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 19.5,30.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11235 + components: + - type: Transform + pos: 21.5,30.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11236 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 21.5,28.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11237 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 12.5,37.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11238 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 12.5,44.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11239 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 12.5,43.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11240 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 19.5,34.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11241 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 23.5,47.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11242 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 23.5,47.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11243 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 23.5,48.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11244 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 20.5,52.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11245 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 30.5,47.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11246 + components: + - type: Transform + pos: 31.5,47.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11247 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 32.5,47.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11248 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 39.5,47.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11249 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 39.5,48.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11250 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 31.5,45.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11251 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 31.5,38.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11252 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 31.5,41.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11253 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 31.5,41.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11254 + components: + - type: Transform + pos: 22.5,19.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11255 + components: + - type: Transform + pos: 22.5,19.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11256 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 24.5,19.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11257 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 31.5,20.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11258 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 31.5,28.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11259 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 31.5,33.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11260 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 32.5,33.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11261 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 38.5,33.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11262 + components: + - type: Transform + pos: 40.5,33.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11263 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 46.5,33.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11264 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 45.5,33.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11265 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 46.5,39.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11266 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 46.5,47.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11267 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 52.5,33.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11268 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 62.5,39.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11269 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 51.5,29.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11270 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 48.5,29.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11271 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 48.5,25.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11272 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 54.5,25.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11273 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 56.5,25.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11274 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 56.5,25.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11275 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 48.5,22.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11276 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 48.5,21.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11277 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 48.5,16.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11278 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 48.5,10.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11280 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 45.5,17.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11281 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 42.5,17.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11282 + components: + - type: Transform + pos: 40.5,17.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11283 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 40.5,11.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11284 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 36.5,4.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11285 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 34.5,4.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11287 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 64.5,28.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11288 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 67.5,33.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11289 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 64.5,44.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11290 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 64.5,42.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11291 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 70.5,42.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11292 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 75.5,42.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11293 + components: + - type: Transform + pos: 80.5,42.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11294 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 69.5,33.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11295 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 76.5,37.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11296 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 76.5,33.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11297 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 80.5,37.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11298 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 80.5,33.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11299 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 80.5,34.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11300 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 80.5,31.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11301 + components: + - type: Transform + pos: 76.5,31.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11302 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 64.5,55.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11303 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 64.5,56.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11304 + components: + - type: Transform + pos: 64.5,59.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11305 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 64.5,27.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11306 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 64.5,19.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11307 + components: + - type: Transform + pos: 69.5,19.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11308 + components: + - type: Transform + pos: 69.5,19.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11309 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 64.5,9.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11310 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 69.5,9.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11311 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -22.5,18.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11312 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -19.5,18.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11313 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -10.5,21.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11314 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 1.5,21.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11315 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 1.5,25.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11316 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 1.5,35.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11317 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 1.5,36.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11318 + components: + - type: Transform + pos: -2.5,36.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11319 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -2.5,30.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11320 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -9.5,35.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11321 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -14.5,30.5 + parent: 2 + - type: AtmosPipeColor + color: '#17D8D2FF' + - uid: 11323 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 1.5,44.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11324 + components: + - type: Transform + pos: -4.5,45.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11325 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 1.5,45.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11326 + components: + - type: Transform + pos: 1.5,49.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11327 + components: + - type: Transform + pos: -7.5,49.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11328 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -5.5,56.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11329 + components: + - type: Transform + pos: -7.5,56.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11330 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -0.5,56.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11331 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -0.5,59.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11332 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 6.5,59.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11333 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 6.5,57.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11334 + components: + - type: Transform + pos: -13.5,58.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11335 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -11.5,61.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11336 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -17.5,58.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11337 + components: + - type: Transform + pos: -19.5,58.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11338 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -17.5,60.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11339 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -11.5,67.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11340 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -5.5,67.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11341 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -5.5,62.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11342 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 6.5,62.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11343 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -24.5,60.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11344 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -4.5,54.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11345 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 6.5,52.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11346 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 13.5,52.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11347 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 13.5,59.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11348 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 6.5,49.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11349 + components: + - type: Transform + pos: 7.5,49.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11350 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 7.5,44.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11351 + components: + - type: Transform + pos: 8.5,39.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11352 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 8.5,31.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11353 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 14.5,37.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11354 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 15.5,31.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11355 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 18.5,31.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11356 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 18.5,26.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11357 + components: + - type: Transform + pos: 11.5,21.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11358 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 14.5,21.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11359 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 18.5,21.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11360 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 18.5,33.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11361 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 23.5,31.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11362 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 23.5,27.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11363 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 18.5,35.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11364 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 27.5,38.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11365 + components: + - type: Transform + pos: 14.5,41.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11366 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 13.5,45.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11367 + components: + - type: Transform + pos: -28.5,58.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11368 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -29.5,58.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11369 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -29.5,60.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11370 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -33.5,58.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11371 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 11.5,16.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11372 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 11.5,15.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11373 + components: + - type: Transform + pos: 4.5,15.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11374 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 4.5,10.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11375 + components: + - type: Transform + pos: -2.5,10.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11376 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -5.5,10.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11377 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -11.5,10.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11378 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -11.5,6.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11379 + components: + - type: Transform + pos: 26.5,21.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11380 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 26.5,20.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11381 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 26.5,20.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11382 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 33.5,21.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11383 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 33.5,27.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11384 + components: + - type: Transform + pos: 39.5,35.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11385 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 33.5,39.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11386 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 33.5,40.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11387 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 33.5,43.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11388 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 41.5,49.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11389 + components: + - type: Transform + pos: 13.5,49.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11390 + components: + - type: Transform + pos: 22.5,49.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11391 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 24.5,49.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11392 + components: + - type: Transform + pos: 23.5,54.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11393 + components: + - type: Transform + pos: 42.5,35.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11394 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 47.5,39.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11395 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 47.5,45.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11396 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 52.5,35.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11397 + components: + - type: Transform + pos: 53.5,35.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11398 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 52.5,38.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11399 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 52.5,37.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11400 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 52.5,43.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11401 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 60.5,38.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11402 + components: + - type: Transform + pos: 54.5,35.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11403 + components: + - type: Transform + pos: 50.5,31.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11404 + components: + - type: Transform + pos: 47.5,31.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11405 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 54.5,27.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11406 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 55.5,27.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11407 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 46.5,27.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11408 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 46.5,22.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11409 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 46.5,20.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11410 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 46.5,17.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11411 + components: + - type: Transform + pos: 49.5,17.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11412 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 46.5,16.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11413 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 50.5,9.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11415 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 41.5,16.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11416 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 41.5,15.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11417 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 41.5,9.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11418 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 35.5,5.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11419 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 35.5,3.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11421 + components: + - type: Transform + pos: 68.5,35.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11422 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 66.5,43.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11423 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 66.5,45.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11424 + components: + - type: Transform + pos: 70.5,45.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11425 + components: + - type: Transform + pos: 75.5,45.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11426 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 82.5,43.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11427 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 70.5,35.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11428 + components: + - type: Transform + pos: 76.5,40.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11429 + components: + - type: Transform + pos: 75.5,35.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11430 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 82.5,40.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11431 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 82.5,35.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11432 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 82.5,34.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11433 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 82.5,29.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11434 + components: + - type: Transform + pos: 78.5,29.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11435 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 66.5,29.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11436 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 66.5,24.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11437 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 66.5,20.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11438 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 71.5,18.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11439 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 66.5,11.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11440 + components: + - type: Transform + pos: 68.5,11.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11441 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 66.5,56.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11442 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 66.5,57.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11443 + components: + - type: Transform + pos: 66.5,60.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11444 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 23.5,44.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11445 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -22.5,43.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11446 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 13.5,34.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11447 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -13.5,1.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11448 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -15.5,0.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11449 + components: + - type: Transform + pos: -22.5,19.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11450 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -28.5,11.5 + parent: 2 + - uid: 11451 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -26.5,8.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11452 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -26.5,8.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11453 + components: + - type: Transform + pos: -27.5,11.5 + parent: 2 + - uid: 11454 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -28.5,14.5 + parent: 2 + - uid: 11455 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -28.5,8.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11456 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -28.5,12.5 + parent: 2 + - uid: 11457 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -28.5,20.5 + parent: 2 + - type: AtmosPipeColor + color: '#EAC300FF' + - uid: 11458 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -28.5,20.5 + parent: 2 + - type: AtmosPipeColor + color: '#EAC300FF' + - uid: 11459 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -30.5,18.5 + parent: 2 + - type: AtmosPipeColor + color: '#EAC300FF' + - uid: 11460 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -30.5,17.5 + parent: 2 + - type: AtmosPipeColor + color: '#EAC300FF' + - uid: 11461 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -32.5,17.5 + parent: 2 + - type: AtmosPipeColor + color: '#EAC300FF' + - uid: 11462 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -31.5,13.5 + parent: 2 + - type: AtmosPipeColor + color: '#EAC300FF' + - uid: 11463 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -29.5,13.5 + parent: 2 + - type: AtmosPipeColor + color: '#EAC300FF' + - uid: 11464 + components: + - type: Transform + pos: -29.5,17.5 + parent: 2 + - type: AtmosPipeColor + color: '#EAC300FF' + - uid: 11465 + components: + - type: Transform + pos: -22.5,19.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11466 + components: + - type: Transform + pos: -31.5,9.5 + parent: 2 + - type: AtmosPipeColor + color: '#EAC300FF' + - uid: 11467 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -29.5,9.5 + parent: 2 + - type: AtmosPipeColor + color: '#EAC300FF' + - uid: 11468 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -28.5,15.5 + parent: 2 + - uid: 11469 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -27.5,15.5 + parent: 2 + - uid: 11470 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -26.5,15.5 + parent: 2 + - uid: 11471 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -26.5,14.5 + parent: 2 + - uid: 11472 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -24.5,18.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11473 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -24.5,14.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11474 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -24.5,14.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11475 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -33.5,27.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11476 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -33.5,25.5 + parent: 2 + - type: AtmosPipeColor + color: '#EAC300FF' + - uid: 11477 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 34.5,-10.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11478 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 32.5,-12.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11604 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -9.5,66.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11987 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -4.5,20.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 12867 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -33.5,67.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14075 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 54.5,6.5 + parent: 2 + - uid: 16718 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 52.5,4.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 18930 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -26.5,31.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 19288 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 53.5,3.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 19294 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 49.5,-2.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 19296 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 49.5,-3.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 19315 + components: + - type: Transform + pos: 53.5,4.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 19391 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -28.5,74.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 19399 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -32.5,73.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' +- proto: GasPort + entities: + - uid: 319 + components: + - type: Transform + pos: 51.5,7.5 + parent: 2 + - uid: 11479 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -27.5,10.5 + parent: 2 + - uid: 11480 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -16.5,38.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11483 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -16.5,37.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11484 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -14.5,18.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11485 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -15.5,18.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11486 + components: + - type: Transform + pos: 20.5,45.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11487 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 37.5,9.5 + parent: 2 + - uid: 11488 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 37.5,11.5 + parent: 2 + - uid: 11489 + components: + - type: Transform + pos: 38.5,7.5 + parent: 2 + - uid: 11490 + components: + - type: Transform + pos: 39.5,7.5 + parent: 2 + - uid: 11491 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 38.5,12.5 + parent: 2 + - uid: 11492 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -16.5,31.5 + parent: 2 + - uid: 11493 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -16.5,30.5 + parent: 2 + - uid: 11494 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 9.5,25.5 + parent: 2 + - uid: 11495 + components: + - type: Transform + pos: 9.5,38.5 + parent: 2 + - uid: 11496 + components: + - type: Transform + pos: -35.5,28.5 + parent: 2 + - uid: 18635 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -5.5,19.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 18637 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -4.5,19.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 18638 + components: + - type: Transform + pos: -4.5,21.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 18639 + components: + - type: Transform + pos: -5.5,21.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 18926 + components: + - type: Transform + pos: -18.5,28.5 + parent: 2 + - uid: 18927 + components: + - type: Transform + pos: -19.5,28.5 + parent: 2 + - uid: 19309 + components: + - type: Transform + pos: 51.5,-2.5 + parent: 2 +- proto: GasPressurePump + entities: + - uid: 11505 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -15.5,30.5 + parent: 2 + - type: AtmosPipeColor + color: '#17D8D2FF' + - uid: 11507 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -15.5,31.5 + parent: 2 + - type: AtmosPipeColor + color: '#17D8D2FF' + - uid: 11508 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 12.5,34.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11509 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 9.5,37.5 + parent: 2 + - uid: 11510 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 33.5,9.5 + parent: 2 + - uid: 11511 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 33.5,11.5 + parent: 2 + - uid: 11512 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -25.5,10.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11513 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -31.5,20.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11514 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -29.5,18.5 + parent: 2 + - type: AtmosPipeColor + color: '#EAC300FF' + - uid: 11515 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -30.5,19.5 + parent: 2 + - type: AtmosPipeColor + color: '#9D00E0FF' + - uid: 11516 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -31.5,17.5 + parent: 2 + - type: AtmosPipeColor + color: '#EAC300FF' + - uid: 11517 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -31.5,17.5 + parent: 2 + - type: AtmosPipeColor + color: '#EAC300FF' + - uid: 11518 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -31.5,17.5 + parent: 2 + - type: AtmosPipeColor + color: '#EAC300FF' + - uid: 11519 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -33.5,17.5 + parent: 2 + - type: AtmosPipeColor + color: '#EAC300FF' + - uid: 11520 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -33.5,13.5 + parent: 2 + - type: AtmosPipeColor + color: '#EAC300FF' + - uid: 11521 + components: + - type: Transform + pos: -28.5,10.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11522 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -30.5,13.5 + parent: 2 + - type: AtmosPipeColor + color: '#EAC300FF' + - uid: 11523 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -33.5,9.5 + parent: 2 + - type: AtmosPipeColor + color: '#EAC300FF' + - uid: 11524 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -31.5,7.5 + parent: 2 + - type: AtmosPipeColor + color: '#EAC300FF' + - uid: 11525 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -27.5,7.5 + parent: 2 + - type: AtmosPipeColor + color: '#EAC300FF' + - uid: 11526 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -25.5,14.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11527 + components: + - type: Transform + pos: -28.5,16.5 + parent: 2 + - type: AtmosPipeColor + color: '#EAC300FF' + - uid: 11528 + components: + - type: Transform + pos: -26.5,16.5 + parent: 2 + - uid: 11529 + components: + - type: MetaData + name: supermatter loop pump + - type: Transform + rot: 3.141592653589793 rad + pos: -27.5,16.5 + parent: 2 + - type: AtmosPipeColor + color: '#BFA200FF' + - uid: 11531 + components: + - type: Transform + pos: -26.5,19.5 + parent: 2 + - type: AtmosPipeColor + color: '#EAC300FF' + - uid: 11532 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -33.5,21.5 + parent: 2 + - type: AtmosPipeColor + color: '#17D8D2FF' + - uid: 11533 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -25.5,18.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11534 + components: + - type: Transform + pos: -24.5,19.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11535 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -30.5,24.5 + parent: 2 + - type: AtmosPipeColor + color: '#EAC300FF' + - uid: 11536 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -36.5,25.5 + parent: 2 + - type: AtmosPipeColor + color: '#EAC300FF' + - uid: 11537 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -36.5,27.5 + parent: 2 + - uid: 11709 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -21.5,28.5 + parent: 2 + - type: AtmosPipeColor + color: '#BFA200FF' + - uid: 18928 + components: + - type: Transform + pos: -19.5,27.5 + parent: 2 + - uid: 18929 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -18.5,27.5 + parent: 2 + - uid: 19308 + components: + - type: Transform + pos: 51.5,-3.5 + parent: 2 +- proto: GasThermoMachineFreezer + entities: + - uid: 11481 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -18.5,25.5 + parent: 2 + - uid: 11538 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -19.5,25.5 + parent: 2 + - uid: 11540 + components: + - type: Transform + pos: 11.5,35.5 + parent: 2 + - uid: 11541 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 38.5,6.5 + parent: 2 + - uid: 11542 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -27.5,12.5 + parent: 2 +- proto: GasThermoMachineFreezerEnabled + entities: + - uid: 10303 + components: + - type: Transform + pos: 52.5,7.5 + parent: 2 +- proto: GasThermoMachineHeater + entities: + - uid: 11543 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 39.5,6.5 + parent: 2 + - uid: 11544 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -27.5,14.5 + parent: 2 +- proto: GasValve + entities: + - uid: 11499 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -18.5,29.5 + parent: 2 + - type: AtmosPipeColor + color: '#17D8D2FF' + - uid: 11504 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -14.5,34.5 + parent: 2 + - type: AtmosPipeColor + color: '#17D8D2FF' + - uid: 11545 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -27.5,28.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11546 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -27.5,28.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11547 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -26.5,7.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11548 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -34.5,27.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11549 + components: + - type: Transform + pos: -33.5,26.5 + parent: 2 +- proto: GasVentPump + entities: + - uid: 11550 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -13.5,27.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11551 + components: + - type: Transform + pos: -25.5,44.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 46 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11552 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -13.5,33.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11553 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 32.5,20.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 55 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11554 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 28.5,44.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 72 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11555 + components: + - type: Transform + pos: 28.5,43.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 72 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11556 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 28.5,39.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 72 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11557 + components: + - type: Transform + pos: 28.5,41.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 72 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11558 + components: + - type: Transform + pos: -4.5,59.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11559 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 8.5,12.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 21 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11560 + components: + - type: Transform + pos: -21.5,18.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 44 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11561 + components: + - type: Transform + pos: -17.5,21.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11562 + components: + - type: Transform + pos: -16.5,19.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 41 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11563 + components: + - type: Transform + pos: -9.5,22.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 39 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11564 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 0.5,24.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 18 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11565 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 0.5,34.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 18 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11566 + components: + - type: Transform + pos: -4.5,34.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 37 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11567 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -2.5,27.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 43 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11568 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -3.5,31.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11569 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -9.5,34.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 38 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11570 + components: + - type: Transform + pos: -18.5,44.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 48 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11571 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -12.5,43.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 49 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11572 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 14.5,18.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11573 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 8.5,16.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 20 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11574 + components: + - type: Transform + pos: 1.5,17.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 54 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11575 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 3.5,5.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 53 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11576 + components: + - type: Transform + pos: -3.5,15.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 80 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11577 + components: + - type: Transform + pos: -5.5,8.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 52 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11578 + components: + - type: Transform + pos: -10.5,13.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 53 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11579 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -9.5,7.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 51 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11580 + components: + - type: Transform + pos: -4.5,43.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 82 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11581 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -8.5,43.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 82 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11582 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -1.5,45.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 22 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11583 + components: + - type: Transform + pos: -8.5,48.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 17 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11584 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -14.5,51.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11585 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -11.5,51.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11586 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -9.5,52.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 24 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11587 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -5.5,52.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 24 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11588 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -1.5,52.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 24 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11589 + components: + - type: Transform + pos: -1.5,60.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 34 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11590 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -11.5,57.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 25 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11591 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -14.5,60.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11592 + components: + - type: Transform + pos: -14.5,69.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 27 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11593 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -18.5,52.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 33 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11594 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -22.5,52.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 32 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11595 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -21.5,60.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 30 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11596 + components: + - type: Transform + pos: -22.5,69.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 30 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11597 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -26.5,50.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 29 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11598 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -28.5,61.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 28 + - 19588 + - 8512 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11599 + components: + - type: Transform + pos: -27.5,68.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 28 + - 19588 + - 8512 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11600 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -38.5,57.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11601 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -32.5,61.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 28 + - 19588 + - 8512 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11602 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -31.5,56.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 29 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11603 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -11.5,62.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 26 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11605 + components: + - type: Transform + pos: -7.5,67.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 26 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11606 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -7.5,63.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 35 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11607 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 5.5,58.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11608 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 1.5,66.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 35 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11609 + components: + - type: Transform + pos: 4.5,71.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 36 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11610 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 11.5,66.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 35 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11611 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 10.5,53.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 16 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11612 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 8.5,60.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11613 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 18.5,61.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11614 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 4.5,44.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 68 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11615 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 5.5,39.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 68 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11616 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 6.5,29.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 76 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11617 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 11.5,33.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 67 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11618 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 10.5,26.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 76 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11619 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 17.5,25.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 67 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11620 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 15.5,30.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 67 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11621 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 22.5,30.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 77 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11622 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 22.5,28.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11623 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 26.5,25.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11624 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 11.5,37.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 69 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11625 + components: + - type: Transform + pos: 12.5,48.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 22 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11626 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 10.5,43.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 70 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11627 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 16.5,44.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 70 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11628 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 20.5,37.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 71 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11629 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 28.5,32.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 77 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11630 + components: + - type: Transform + pos: 23.5,45.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 72 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11631 + components: + - type: Transform + pos: 16.5,59.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11632 + components: + - type: Transform + pos: 20.5,53.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 23 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11633 + components: + - type: Transform + pos: 30.5,54.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11634 + components: + - type: Transform + pos: 32.5,48.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11635 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 24.5,48.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11636 + components: + - type: Transform + pos: 39.5,53.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 78 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11637 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 42.5,43.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 12 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11638 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 37.5,45.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 12 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11639 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 40.5,48.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11640 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 32.5,41.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 14 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11641 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 22.5,13.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 56 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11642 + components: + - type: Transform + pos: 24.5,20.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 55 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11643 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 32.5,28.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11644 + components: + - type: Transform + pos: 32.5,34.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11645 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 40.5,38.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 12 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11646 + components: + - type: Transform + pos: 38.5,34.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 14 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11647 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 40.5,28.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11648 + components: + - type: Transform + pos: 45.5,34.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11649 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 45.5,39.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 11 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11650 + components: + - type: Transform + pos: 46.5,48.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11651 + components: + - type: Transform + pos: 52.5,34.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11652 + components: + - type: Transform + pos: 52.5,34.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 10 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11653 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 55.5,37.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 10 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11654 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 61.5,39.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11655 + components: + - type: Transform + pos: 62.5,43.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11656 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 54.5,43.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11657 + components: + - type: Transform + pos: 50.5,52.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11658 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 60.5,29.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11659 + components: + - type: Transform + pos: 51.5,30.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11660 + components: + - type: Transform + pos: 48.5,30.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 58 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11661 + components: + - type: Transform + pos: 54.5,26.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 57 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11662 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 57.5,19.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 60 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11663 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 47.5,21.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11664 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 52.5,22.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11665 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 52.5,18.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 63 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11666 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 49.5,10.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 62 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11669 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 45.5,13.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11670 + components: + - type: Transform + pos: 42.5,20.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11671 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 35.5,17.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11672 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 41.5,11.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 65 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11673 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 49.5,16.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11674 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 36.5,-0.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 83 + - 8517 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11675 + components: + - type: Transform + pos: 34.5,5.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 66 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11676 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 30.5,0.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 64 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11678 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 70.5,28.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 18626 + - 18627 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11679 + components: + - type: Transform + pos: 67.5,34.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11680 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 65.5,44.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 4 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11681 + components: + - type: Transform + pos: 70.5,43.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11682 + components: + - type: Transform + pos: 75.5,43.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11683 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 81.5,42.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 5 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11684 + components: + - type: Transform + pos: 76.5,38.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11685 + components: + - type: Transform + pos: 76.5,34.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11686 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 81.5,34.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 5 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11687 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 75.5,31.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 7 + - 5 + - 18626 + - 18627 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11688 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 76.5,25.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 7 + - 18626 + - 18627 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11689 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 80.5,24.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11690 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 67.5,55.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11691 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 60.5,56.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11692 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 59.5,59.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11693 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 74.5,59.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11694 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 65.5,27.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 4 + - 8 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11695 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 70.5,19.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 8 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11696 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 69.5,14.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 8 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11697 + components: + - type: Transform + pos: 69.5,10.5 + parent: 2 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11698 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 64.5,3.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 9 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11699 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 72.5,0.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 9 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11700 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -14.5,1.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 51 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11701 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -15.5,-5.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 51 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11702 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 5.5,32.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 67 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11703 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -25.5,17.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 44 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11704 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 35.5,-10.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 83 + - 8517 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11705 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 29.5,-10.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 83 + - 8517 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11829 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 55.5,7.5 + parent: 2 + - uid: 13233 + components: + - type: Transform + pos: -9.5,68.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 26 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 18672 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 55.5,6.5 + parent: 2 + - uid: 19355 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 50.5,-7.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 62 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 19356 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 47.5,-3.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 62 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 19357 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 47.5,-0.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 62 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 19358 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 47.5,2.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 62 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 19359 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 55.5,2.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 62 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 19360 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 55.5,-0.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 62 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 19361 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 55.5,-3.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 62 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 19362 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 50.5,3.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 62 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 19383 + components: + - type: Transform + pos: -31.5,68.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 19588 + - 8512 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 19400 + components: + - type: Transform + pos: -28.5,75.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 19589 + - 19586 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 19403 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -21.5,74.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 19587 + - 19590 + - type: AtmosPipeColor + color: '#0000FFFF' +- proto: GasVentScrubber + entities: + - uid: 11706 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -13.5,29.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11707 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -13.5,35.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11711 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -24.5,44.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 46 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11712 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 11.5,11.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 21 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11713 + components: + - type: Transform + pos: -19.5,21.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11714 + components: + - type: Transform + pos: -15.5,20.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 41 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11715 + components: + - type: Transform + pos: -10.5,22.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 39 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11716 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 0.5,25.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 18 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11717 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 0.5,35.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 18 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11718 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -4.5,35.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 37 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11719 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -3.5,30.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11720 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -2.5,26.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 43 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11721 + components: + - type: Transform + pos: -9.5,36.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 38 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11722 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -14.5,43.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 49 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11723 + components: + - type: Transform + pos: -22.5,44.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 48 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11724 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -4.5,44.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 82 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11725 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -8.5,45.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 82 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11726 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 2.5,45.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11727 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -7.5,48.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 17 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11728 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -11.5,52.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11729 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -14.5,52.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11730 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -7.5,52.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 24 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11731 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -3.5,52.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 24 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11732 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 0.5,52.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 24 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11733 + components: + - type: Transform + pos: -5.5,59.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11734 + components: + - type: Transform + pos: -0.5,60.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 34 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11735 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 5.5,57.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11736 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -15.5,56.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 25 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11737 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -12.5,61.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 26 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11738 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -19.5,60.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 27 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11739 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -19.5,52.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 33 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11740 + components: + - type: Transform + pos: -17.5,69.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 27 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11741 + components: + - type: Transform + pos: -11.5,68.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 26 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11742 + components: + - type: Transform + pos: -5.5,68.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 26 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11743 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -6.5,62.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 35 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11744 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -24.5,52.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11745 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -25.5,60.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 30 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11746 + components: + - type: Transform + pos: -24.5,69.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 30 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11747 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 1.5,68.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 35 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11748 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 11.5,68.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 35 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11749 + components: + - type: Transform + pos: 6.5,71.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 36 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11750 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 14.5,52.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 16 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11751 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 14.5,59.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11752 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 18.5,62.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 16 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11753 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 8.5,44.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11754 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 9.5,39.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 68 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11755 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 8.5,28.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 76 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11756 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 13.5,37.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 69 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11757 + components: + - type: Transform + pos: 11.5,32.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 67 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11758 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 11.5,26.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 76 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11759 + components: + - type: Transform + pos: 15.5,32.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11760 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 17.5,26.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 67 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11761 + components: + - type: Transform + pos: 14.5,22.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11762 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 22.5,31.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 77 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11763 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 22.5,27.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11764 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 26.5,24.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11765 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 28.5,33.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 77 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11766 + components: + - type: Transform + pos: 18.5,37.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 71 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11767 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 28.5,38.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 72 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11768 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 24.5,45.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 72 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11769 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 16.5,41.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 70 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11770 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 10.5,45.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 70 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11771 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -28.5,50.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11772 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -28.5,60.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 28 + - 29 + - 19588 + - 8512 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11773 + components: + - type: Transform + pos: -29.5,68.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 28 + - 19588 + - 8512 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11774 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -32.5,60.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 28 + - 29 + - 19588 + - 8512 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11775 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -33.5,56.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 29 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11776 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 10.5,16.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 20 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11777 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 1.5,15.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 54 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11778 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 4.5,5.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 53 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11779 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -5.5,5.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 52 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11780 + components: + - type: Transform + pos: -5.5,15.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 80 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11781 + components: + - type: Transform + pos: -11.5,13.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 53 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11782 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -9.5,6.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 51 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11783 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 25.5,20.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 55 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11784 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 26.5,13.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 56 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11785 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 33.5,20.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 55 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11786 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 32.5,27.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 14 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11787 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 32.5,35.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11788 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 39.5,34.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 14 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11789 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 40.5,39.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 12 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11790 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 32.5,40.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 14 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11791 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 37.5,43.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 12 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11792 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 31.5,48.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11793 + components: + - type: Transform + pos: 31.5,54.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11794 + components: + - type: Transform + pos: 41.5,53.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 78 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11795 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 41.5,43.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 12 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11796 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 13.5,48.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 22 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11797 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 22.5,48.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11798 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 23.5,53.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11799 + components: + - type: Transform + pos: 18.5,59.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11800 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 42.5,28.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11801 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 47.5,34.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11802 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 48.5,39.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 11 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11803 + components: + - type: Transform + pos: 47.5,48.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 11 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11804 + components: + - type: Transform + pos: 49.5,52.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11805 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 53.5,34.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 10 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11806 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 53.5,43.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11807 + components: + - type: Transform + pos: 52.5,49.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 13 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11808 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 53.5,37.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 10 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11809 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 61.5,38.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11810 + components: + - type: Transform + pos: 60.5,43.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 10 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11811 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 50.5,30.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11812 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 60.5,31.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11813 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 47.5,30.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 58 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11814 + components: + - type: Transform + pos: 55.5,28.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 57 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11815 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 55.5,19.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 60 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11816 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 47.5,22.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11817 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 52.5,20.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11818 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 52.5,17.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 63 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11819 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 46.5,13.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11820 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 49.5,9.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 62 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11822 + components: + - type: Transform + pos: 41.5,20.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11823 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 35.5,15.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11824 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 40.5,9.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 65 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11825 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 36.5,5.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 66 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11826 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 35.5,-0.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 83 + - 8517 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11828 + components: + - type: Transform + pos: 29.5,0.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 64 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11830 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 68.5,34.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11831 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 65.5,43.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 4 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11832 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 70.5,44.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 6 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11833 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 75.5,44.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 6 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11834 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 81.5,43.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 6 + - 5 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11835 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 76.5,39.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11836 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 75.5,34.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11837 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 83.5,34.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 5 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11838 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 77.5,29.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 7 + - 5 + - 18626 + - 18627 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11839 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 78.5,25.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 7 + - 18626 + - 18627 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11840 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 82.5,24.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11841 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 65.5,29.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 4 + - 8 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11842 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 70.5,24.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 18626 + - 18627 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11843 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 70.5,18.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 8 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11844 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 71.5,14.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 8 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11845 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 68.5,10.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 9 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11846 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 66.5,3.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 9 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11847 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 74.5,0.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 9 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11848 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 67.5,56.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 3 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11849 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 60.5,57.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 3 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11850 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 59.5,60.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 3 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11851 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 74.5,60.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 3 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11852 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -14.5,0.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 51 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11853 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -16.5,-5.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 51 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11854 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 5.5,34.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 67 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11855 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -38.5,27.5 + parent: 2 + - uid: 11856 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -25.5,19.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 44 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11857 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -21.5,19.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 44 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11858 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 35.5,-12.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 83 + - 8517 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11859 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 29.5,-12.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 83 + - 8517 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 19347 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 47.5,4.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 62 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 19348 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 47.5,1.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 62 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 19349 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 47.5,-1.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 62 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 19350 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 55.5,-1.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 62 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 19351 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 55.5,1.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 62 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 19352 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 55.5,4.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 62 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 19353 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 52.5,3.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 62 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 19354 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 52.5,-7.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 62 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 19382 + components: + - type: Transform + pos: -33.5,68.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 19588 + - 8512 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 19401 + components: + - type: Transform + pos: -32.5,75.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 19589 + - 19586 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 19402 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -21.5,73.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 19587 + - 19590 + - type: AtmosPipeColor + color: '#FF0000FF' +- proto: GasVolumePump + entities: + - uid: 9059 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -19.5,40.5 + parent: 2 + - type: AtmosPipeColor + color: '#BFA200FF' + - uid: 9247 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -24.5,40.5 + parent: 2 + - type: AtmosPipeColor + color: '#BFA200FF' + - uid: 11497 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -16.5,35.5 + parent: 2 + - type: AtmosPipeColor + color: '#BFA200FF' + - uid: 11498 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -17.5,28.5 + parent: 2 + - type: AtmosPipeColor + color: '#17D8D2FF' + - uid: 11503 + components: + - type: Transform + pos: -20.5,28.5 + parent: 2 + - type: AtmosPipeColor + color: '#17D8D2FF' + - uid: 11506 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -16.5,33.5 + parent: 2 + - type: AtmosPipeColor + color: '#17D8D2FF' +- proto: Gateway + entities: + - uid: 11860 + components: + - type: Transform + pos: 34.5,54.5 + parent: 2 +- proto: GeigerCounterWallMount + entities: + - uid: 8529 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 32.5,9.5 + parent: 2 + - uid: 11861 + components: + - type: Transform + pos: -17.5,35.5 + parent: 2 +- proto: GeneratorBasic15kW + entities: + - uid: 11862 + components: + - type: Transform + pos: 37.5,-9.5 + parent: 2 + - uid: 11863 + components: + - type: Transform + pos: 36.5,-9.5 + parent: 2 + - uid: 11864 + components: + - type: Transform + pos: 37.5,-13.5 + parent: 2 + - uid: 11865 + components: + - type: Transform + pos: 36.5,-13.5 + parent: 2 +- proto: GeneratorRTG + entities: + - uid: 11866 + components: + - type: Transform + pos: 37.5,-11.5 + parent: 2 + - uid: 11867 + components: + - type: Transform + pos: 36.5,-11.5 + parent: 2 +- proto: Girder + entities: + - uid: 11868 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 18.5,7.5 + parent: 2 + - uid: 11869 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 26.5,64.5 + parent: 2 +- proto: GlimmerProber + entities: + - uid: 11870 + components: + - type: Transform + pos: 25.5,1.5 + parent: 2 +- proto: GravityGenerator + entities: + - uid: 11871 + components: + - type: Transform + pos: -20.5,45.5 + parent: 2 +- proto: GrenadeFlashBang + entities: + - uid: 11872 + components: + - type: Transform + pos: -17.658485,67.52475 + parent: 2 + - uid: 11873 + components: + - type: Transform + pos: -17.497086,67.48891 + parent: 2 + - uid: 11874 + components: + - type: Transform + pos: -17.443285,67.50683 + parent: 2 + - uid: 11875 + components: + - type: Transform + pos: -17.281885,67.50683 + parent: 2 + - uid: 11876 + components: + - type: Transform + pos: -17.192219,67.50683 + parent: 2 +- proto: Grille + entities: + - uid: 908 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 67.5,29.5 + parent: 2 + - uid: 5994 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -34.5,77.5 + parent: 2 + - uid: 6000 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -34.5,76.5 + parent: 2 + - uid: 6001 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -35.5,76.5 + parent: 2 + - uid: 6016 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -35.5,75.5 + parent: 2 + - uid: 6047 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -33.5,78.5 + parent: 2 + - uid: 6048 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -32.5,78.5 + parent: 2 + - uid: 6049 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -31.5,78.5 + parent: 2 + - uid: 6050 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -29.5,78.5 + parent: 2 + - uid: 6051 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -29.5,77.5 + parent: 2 + - uid: 6052 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -28.5,77.5 + parent: 2 + - uid: 6193 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -33.5,77.5 + parent: 2 + - uid: 6655 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -30.5,78.5 + parent: 2 + - uid: 9299 + components: + - type: Transform + pos: 53.5,7.5 + parent: 2 + - uid: 9950 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 26.5,1.5 + parent: 2 + - uid: 11877 + components: + - type: Transform + pos: 6.5,34.5 + parent: 2 + - uid: 11878 + components: + - type: Transform + pos: 17.5,33.5 + parent: 2 + - uid: 11879 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 2.5,27.5 + parent: 2 + - uid: 11880 + components: + - type: Transform + pos: 6.5,31.5 + parent: 2 + - uid: 11881 + components: + - type: Transform + pos: 2.5,34.5 + parent: 2 + - uid: 11882 + components: + - type: Transform + pos: 2.5,33.5 + parent: 2 + - uid: 11883 + components: + - type: Transform + pos: 2.5,32.5 + parent: 2 + - uid: 11884 + components: + - type: Transform + pos: -5.5,18.5 + parent: 2 + - uid: 11885 + components: + - type: Transform + pos: 14.5,33.5 + parent: 2 + - uid: 11886 + components: + - type: Transform + pos: 6.5,35.5 + parent: 2 + - uid: 11887 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -28.5,22.5 + parent: 2 + - uid: 11888 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -23.5,17.5 + parent: 2 + - uid: 11889 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -32.5,22.5 + parent: 2 + - uid: 11890 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -12.5,31.5 + parent: 2 + - uid: 11891 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -27.5,22.5 + parent: 2 + - uid: 11892 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -26.5,22.5 + parent: 2 + - uid: 11893 + components: + - type: Transform + pos: -12.5,-0.5 + parent: 2 + - uid: 11894 + components: + - type: Transform + pos: -36.5,11.5 + parent: 2 + - uid: 11895 + components: + - type: Transform + pos: -36.5,9.5 + parent: 2 + - uid: 11896 + components: + - type: Transform + pos: -36.5,21.5 + parent: 2 + - uid: 11897 + components: + - type: Transform + pos: 34.5,51.5 + parent: 2 + - uid: 11898 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -27.5,4.5 + parent: 2 + - uid: 11899 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -29.5,4.5 + parent: 2 + - uid: 11900 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -37.5,27.5 + parent: 2 + - uid: 11901 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -37.5,26.5 + parent: 2 + - uid: 11902 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -37.5,25.5 + parent: 2 + - uid: 11903 + components: + - type: Transform + pos: 36.5,51.5 + parent: 2 + - uid: 11904 + components: + - type: Transform + pos: -36.5,13.5 + parent: 2 + - uid: 11905 + components: + - type: Transform + pos: -36.5,7.5 + parent: 2 + - uid: 11906 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -36.5,19.5 + parent: 2 + - uid: 11907 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -33.5,4.5 + parent: 2 + - uid: 11908 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -31.5,4.5 + parent: 2 + - uid: 11909 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -36.5,15.5 + parent: 2 + - uid: 11910 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -36.5,17.5 + parent: 2 + - uid: 11911 + components: + - type: Transform + pos: -12.5,0.5 + parent: 2 + - uid: 11912 + components: + - type: Transform + pos: -12.5,1.5 + parent: 2 + - uid: 11913 + components: + - type: Transform + pos: -12.5,-0.5 + parent: 2 + - uid: 11914 + components: + - type: Transform + pos: -12.5,-0.5 + parent: 2 + - uid: 11915 + components: + - type: Transform + pos: -20.5,47.5 + parent: 2 + - uid: 11916 + components: + - type: Transform + pos: 34.5,50.5 + parent: 2 + - uid: 11917 + components: + - type: Transform + pos: 0.5,2.5 + parent: 2 + - uid: 11918 + components: + - type: Transform + pos: 0.5,0.5 + parent: 2 + - uid: 11919 + components: + - type: Transform + pos: -2.5,0.5 + parent: 2 + - uid: 11920 + components: + - type: Transform + pos: -2.5,1.5 + parent: 2 + - uid: 11921 + components: + - type: Transform + pos: -2.5,2.5 + parent: 2 + - uid: 11922 + components: + - type: Transform + pos: -3.5,2.5 + parent: 2 + - uid: 11923 + components: + - type: Transform + pos: 3.5,0.5 + parent: 2 + - uid: 11924 + components: + - type: Transform + pos: 3.5,1.5 + parent: 2 + - uid: 11925 + components: + - type: Transform + pos: 3.5,2.5 + parent: 2 + - uid: 11926 + components: + - type: Transform + pos: 4.5,2.5 + parent: 2 + - uid: 11927 + components: + - type: Transform + pos: -11.5,3.5 + parent: 2 + - uid: 11928 + components: + - type: Transform + pos: -10.5,3.5 + parent: 2 + - uid: 11929 + components: + - type: Transform + pos: -9.5,3.5 + parent: 2 + - uid: 11930 + components: + - type: Transform + pos: 5.5,15.5 + parent: 2 + - uid: 11931 + components: + - type: Transform + pos: 6.5,14.5 + parent: 2 + - uid: 11932 + components: + - type: Transform + pos: 8.5,14.5 + parent: 2 + - uid: 11933 + components: + - type: Transform + pos: 10.5,14.5 + parent: 2 + - uid: 11934 + components: + - type: Transform + pos: 12.5,14.5 + parent: 2 + - uid: 11935 + components: + - type: Transform + pos: 5.5,12.5 + parent: 2 + - uid: 11936 + components: + - type: Transform + pos: 9.5,13.5 + parent: 2 + - uid: 11937 + components: + - type: Transform + pos: -7.5,13.5 + parent: 2 + - uid: 11938 + components: + - type: Transform + pos: -7.5,12.5 + parent: 2 + - uid: 11939 + components: + - type: Transform + pos: -6.5,12.5 + parent: 2 + - uid: 11940 + components: + - type: Transform + pos: -5.5,12.5 + parent: 2 + - uid: 11941 + components: + - type: Transform + pos: -3.5,12.5 + parent: 2 + - uid: 11942 + components: + - type: Transform + pos: 2.5,17.5 + parent: 2 + - uid: 11943 + components: + - type: Transform + pos: 2.5,15.5 + parent: 2 + - uid: 11944 + components: + - type: Transform + pos: 2.5,14.5 + parent: 2 + - uid: 11945 + components: + - type: Transform + pos: 0.5,13.5 + parent: 2 + - uid: 11946 + components: + - type: Transform + pos: -0.5,13.5 + parent: 2 + - uid: 11947 + components: + - type: Transform + pos: 3.5,18.5 + parent: 2 + - uid: 11948 + components: + - type: Transform + pos: 6.5,18.5 + parent: 2 + - uid: 11949 + components: + - type: Transform + pos: 9.5,18.5 + parent: 2 + - uid: 11950 + components: + - type: Transform + pos: 12.5,18.5 + parent: 2 + - uid: 11951 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 12.5,23.5 + parent: 2 + - uid: 11952 + components: + - type: Transform + pos: -1.5,25.5 + parent: 2 + - uid: 11953 + components: + - type: Transform + pos: -4.5,22.5 + parent: 2 + - uid: 11954 + components: + - type: Transform + pos: 8.5,26.5 + parent: 2 + - uid: 11955 + components: + - type: Transform + pos: 8.5,27.5 + parent: 2 + - uid: 11956 + components: + - type: Transform + pos: 9.5,27.5 + parent: 2 + - uid: 11957 + components: + - type: Transform + pos: 9.5,29.5 + parent: 2 + - uid: 11958 + components: + - type: Transform + pos: 9.5,30.5 + parent: 2 + - uid: 11959 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 24.5,24.5 + parent: 2 + - uid: 11960 + components: + - type: Transform + pos: 10.5,29.5 + parent: 2 + - uid: 11961 + components: + - type: Transform + pos: 11.5,29.5 + parent: 2 + - uid: 11962 + components: + - type: Transform + pos: -6.5,21.5 + parent: 2 + - uid: 11963 + components: + - type: Transform + pos: 17.5,23.5 + parent: 2 + - uid: 11964 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 21.5,29.5 + parent: 2 + - uid: 11965 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 23.5,29.5 + parent: 2 + - uid: 11966 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 28.5,22.5 + parent: 2 + - uid: 11967 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 30.5,27.5 + parent: 2 + - uid: 11968 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 30.5,29.5 + parent: 2 + - uid: 11969 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 24.5,31.5 + parent: 2 + - uid: 11970 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 24.5,34.5 + parent: 2 + - uid: 11971 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 20.5,30.5 + parent: 2 + - uid: 11972 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 20.5,31.5 + parent: 2 + - uid: 11973 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 20.5,34.5 + parent: 2 + - uid: 11974 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 20.5,35.5 + parent: 2 + - uid: 11975 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 19.5,36.5 + parent: 2 + - uid: 11976 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 21.5,37.5 + parent: 2 + - uid: 11977 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 21.5,38.5 + parent: 2 + - uid: 11978 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 15.5,39.5 + parent: 2 + - uid: 11979 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 15.5,33.5 + parent: 2 + - uid: 11980 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 12.5,36.5 + parent: 2 + - uid: 11981 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 7.5,36.5 + parent: 2 + - uid: 11982 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 11.5,42.5 + parent: 2 + - uid: 11983 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 12.5,42.5 + parent: 2 + - uid: 11984 + components: + - type: Transform + pos: 8.5,42.5 + parent: 2 + - uid: 11985 + components: + - type: Transform + pos: 2.5,38.5 + parent: 2 + - uid: 11986 + components: + - type: Transform + pos: 2.5,40.5 + parent: 2 + - uid: 11988 + components: + - type: Transform + pos: -6.5,24.5 + parent: 2 + - uid: 11989 + components: + - type: Transform + pos: -13.5,20.5 + parent: 2 + - uid: 11990 + components: + - type: Transform + pos: -13.5,18.5 + parent: 2 + - uid: 11991 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -36.5,16.5 + parent: 2 + - uid: 11992 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -36.5,20.5 + parent: 2 + - uid: 11993 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -36.5,12.5 + parent: 2 + - uid: 11994 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -24.5,6.5 + parent: 2 + - uid: 11995 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -20.5,6.5 + parent: 2 + - uid: 11996 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -21.5,5.5 + parent: 2 + - uid: 11997 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -21.5,4.5 + parent: 2 + - uid: 11998 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -23.5,5.5 + parent: 2 + - uid: 11999 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -23.5,4.5 + parent: 2 + - uid: 12000 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -23.5,19.5 + parent: 2 + - uid: 12001 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -20.5,17.5 + parent: 2 + - uid: 12002 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -20.5,19.5 + parent: 2 + - uid: 12003 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -16.5,15.5 + parent: 2 + - uid: 12004 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -21.5,12.5 + parent: 2 + - uid: 12005 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -21.5,11.5 + parent: 2 + - uid: 12006 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -32.5,4.5 + parent: 2 + - uid: 12007 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -28.5,4.5 + parent: 2 + - uid: 12008 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -36.5,8.5 + parent: 2 + - uid: 12009 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -4.5,28.5 + parent: 2 + - uid: 12010 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -7.5,34.5 + parent: 2 + - uid: 12011 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -1.5,34.5 + parent: 2 + - uid: 12012 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -1.5,36.5 + parent: 2 + - uid: 12013 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -2.5,32.5 + parent: 2 + - uid: 12014 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -6.5,31.5 + parent: 2 + - uid: 12015 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -6.5,29.5 + parent: 2 + - uid: 12016 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -12.5,27.5 + parent: 2 + - uid: 12017 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -12.5,28.5 + parent: 2 + - uid: 12018 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -12.5,29.5 + parent: 2 + - uid: 12019 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -12.5,33.5 + parent: 2 + - uid: 12020 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -12.5,35.5 + parent: 2 + - uid: 12021 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -12.5,37.5 + parent: 2 + - uid: 12022 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -16.5,42.5 + parent: 2 + - uid: 12023 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -13.5,42.5 + parent: 2 + - uid: 12024 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -17.5,48.5 + parent: 2 + - uid: 12025 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -28.5,44.5 + parent: 2 + - uid: 12026 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -25.5,47.5 + parent: 2 + - uid: 12027 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -35.5,31.5 + parent: 2 + - uid: 12028 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -34.5,31.5 + parent: 2 + - uid: 12029 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -33.5,31.5 + parent: 2 + - uid: 12030 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -28.5,29.5 + parent: 2 + - uid: 12031 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -27.5,33.5 + parent: 2 + - uid: 12032 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -12.5,39.5 + parent: 2 + - uid: 12033 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -12.5,40.5 + parent: 2 + - uid: 12034 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -12.5,41.5 + parent: 2 + - uid: 12035 + components: + - type: Transform + pos: -18.5,50.5 + parent: 2 + - uid: 12036 + components: + - type: Transform + pos: -19.5,50.5 + parent: 2 + - uid: 12037 + components: + - type: Transform + pos: -13.5,50.5 + parent: 2 + - uid: 12038 + components: + - type: Transform + pos: -16.5,54.5 + parent: 2 + - uid: 12039 + components: + - type: Transform + pos: -16.5,55.5 + parent: 2 + - uid: 12040 + components: + - type: Transform + pos: -20.5,56.5 + parent: 2 + - uid: 12041 + components: + - type: Transform + pos: -14.5,53.5 + parent: 2 + - uid: 12042 + components: + - type: Transform + pos: -9.5,50.5 + parent: 2 + - uid: 12043 + components: + - type: Transform + pos: -8.5,50.5 + parent: 2 + - uid: 12044 + components: + - type: Transform + pos: -7.5,50.5 + parent: 2 + - uid: 12045 + components: + - type: Transform + pos: -5.5,50.5 + parent: 2 + - uid: 12046 + components: + - type: Transform + pos: -4.5,50.5 + parent: 2 + - uid: 12047 + components: + - type: Transform + pos: -3.5,50.5 + parent: 2 + - uid: 12048 + components: + - type: Transform + pos: -1.5,50.5 + parent: 2 + - uid: 12049 + components: + - type: Transform + pos: -0.5,50.5 + parent: 2 + - uid: 12050 + components: + - type: Transform + pos: 0.5,50.5 + parent: 2 + - uid: 12051 + components: + - type: Transform + pos: 0.5,53.5 + parent: 2 + - uid: 12052 + components: + - type: Transform + pos: -1.5,53.5 + parent: 2 + - uid: 12053 + components: + - type: Transform + pos: -3.5,53.5 + parent: 2 + - uid: 12054 + components: + - type: Transform + pos: -5.5,53.5 + parent: 2 + - uid: 12055 + components: + - type: Transform + pos: -7.5,53.5 + parent: 2 + - uid: 12056 + components: + - type: Transform + pos: -9.5,53.5 + parent: 2 + - uid: 12057 + components: + - type: Transform + pos: -24.5,50.5 + parent: 2 + - uid: 12058 + components: + - type: Transform + pos: -23.5,50.5 + parent: 2 + - uid: 12059 + components: + - type: Transform + pos: -22.5,50.5 + parent: 2 + - uid: 12060 + components: + - type: Transform + pos: -21.5,47.5 + parent: 2 + - uid: 12061 + components: + - type: Transform + pos: -19.5,47.5 + parent: 2 + - uid: 12062 + components: + - type: Transform + pos: -24.5,56.5 + parent: 2 + - uid: 12063 + components: + - type: Transform + pos: -22.5,56.5 + parent: 2 + - uid: 12064 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -30.5,51.5 + parent: 2 + - uid: 12065 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -30.5,53.5 + parent: 2 + - uid: 12066 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -33.5,52.5 + parent: 2 + - uid: 12067 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -35.5,55.5 + parent: 2 + - uid: 12068 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -39.5,58.5 + parent: 2 + - uid: 12069 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -37.5,58.5 + parent: 2 + - uid: 12077 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -36.5,67.5 + parent: 2 + - uid: 12078 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -36.5,68.5 + parent: 2 + - uid: 12080 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -24.5,72.5 + parent: 2 + - uid: 12081 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -23.5,72.5 + parent: 2 + - uid: 12082 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -22.5,72.5 + parent: 2 + - uid: 12084 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -11.5,69.5 + parent: 2 + - uid: 12086 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -11.5,71.5 + parent: 2 + - uid: 12087 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -9.5,71.5 + parent: 2 + - uid: 12088 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -7.5,71.5 + parent: 2 + - uid: 12089 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -5.5,71.5 + parent: 2 + - uid: 12091 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -5.5,69.5 + parent: 2 + - uid: 12092 + components: + - type: Transform + pos: 4.5,79.5 + parent: 2 + - uid: 12093 + components: + - type: Transform + pos: 2.5,79.5 + parent: 2 + - uid: 12094 + components: + - type: Transform + pos: 3.5,79.5 + parent: 2 + - uid: 12095 + components: + - type: Transform + pos: 1.5,79.5 + parent: 2 + - uid: 12096 + components: + - type: Transform + pos: 8.5,80.5 + parent: 2 + - uid: 12097 + components: + - type: Transform + pos: 7.5,80.5 + parent: 2 + - uid: 12098 + components: + - type: Transform + pos: 9.5,80.5 + parent: 2 + - uid: 12099 + components: + - type: Transform + pos: -2.5,74.5 + parent: 2 + - uid: 12100 + components: + - type: Transform + pos: -2.5,75.5 + parent: 2 + - uid: 12101 + components: + - type: Transform + pos: -2.5,73.5 + parent: 2 + - uid: 12102 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -24.5,65.5 + parent: 2 + - uid: 12103 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -22.5,65.5 + parent: 2 + - uid: 12104 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -24.5,59.5 + parent: 2 + - uid: 12105 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -22.5,59.5 + parent: 2 + - uid: 12106 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -19.5,65.5 + parent: 2 + - uid: 12107 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -18.5,65.5 + parent: 2 + - uid: 12108 + components: + - type: Transform + pos: -14.5,63.5 + parent: 2 + - uid: 12109 + components: + - type: Transform + pos: -13.5,60.5 + parent: 2 + - uid: 12110 + components: + - type: Transform + pos: -13.5,61.5 + parent: 2 + - uid: 12111 + components: + - type: Transform + pos: -16.5,59.5 + parent: 2 + - uid: 12112 + components: + - type: Transform + pos: -14.5,59.5 + parent: 2 + - uid: 12113 + components: + - type: Transform + pos: -18.5,59.5 + parent: 2 + - uid: 12114 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 0.5,61.5 + parent: 2 + - uid: 12115 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 3.5,57.5 + parent: 2 + - uid: 12116 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 3.5,59.5 + parent: 2 + - uid: 12117 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -1.5,57.5 + parent: 2 + - uid: 12118 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 16.5,75.5 + parent: 2 + - uid: 12119 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 15.5,75.5 + parent: 2 + - uid: 12120 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 15.5,76.5 + parent: 2 + - uid: 12121 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 15.5,78.5 + parent: 2 + - uid: 12122 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 17.5,72.5 + parent: 2 + - uid: 12123 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 17.5,73.5 + parent: 2 + - uid: 12124 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 7.5,55.5 + parent: 2 + - uid: 12125 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 7.5,56.5 + parent: 2 + - uid: 12126 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 22.5,18.5 + parent: 2 + - uid: 12127 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 24.5,18.5 + parent: 2 + - uid: 12128 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 26.5,18.5 + parent: 2 + - uid: 12129 + components: + - type: Transform + pos: 6.5,1.5 + parent: 2 + - uid: 12130 + components: + - type: Transform + pos: 11.5,4.5 + parent: 2 + - uid: 12131 + components: + - type: Transform + pos: 9.5,6.5 + parent: 2 + - uid: 12132 + components: + - type: Transform + pos: 8.5,2.5 + parent: 2 + - uid: 12133 + components: + - type: Transform + pos: 15.5,0.5 + parent: 2 + - uid: 12134 + components: + - type: Transform + pos: 18.5,3.5 + parent: 2 + - uid: 12135 + components: + - type: Transform + pos: 20.5,3.5 + parent: 2 + - uid: 12137 + components: + - type: Transform + pos: 29.5,-1.5 + parent: 2 + - uid: 12138 + components: + - type: Transform + pos: 30.5,-1.5 + parent: 2 + - uid: 12139 + components: + - type: Transform + pos: 34.5,-1.5 + parent: 2 + - uid: 12140 + components: + - type: Transform + pos: 34.5,-0.5 + parent: 2 + - uid: 12141 + components: + - type: Transform + pos: 35.5,-2.5 + parent: 2 + - uid: 12142 + components: + - type: Transform + pos: 36.5,-2.5 + parent: 2 + - uid: 12143 + components: + - type: Transform + pos: 37.5,-2.5 + parent: 2 + - uid: 12144 + components: + - type: Transform + pos: 38.5,3.5 + parent: 2 + - uid: 12145 + components: + - type: Transform + pos: 39.5,3.5 + parent: 2 + - uid: 12146 + components: + - type: Transform + pos: 41.5,-0.5 + parent: 2 + - uid: 12147 + components: + - type: Transform + pos: 42.5,-0.5 + parent: 2 + - uid: 12148 + components: + - type: Transform + pos: 42.5,-1.5 + parent: 2 + - uid: 12149 + components: + - type: Transform + pos: 42.5,-2.5 + parent: 2 + - uid: 12150 + components: + - type: Transform + pos: 38.5,14.5 + parent: 2 + - uid: 12151 + components: + - type: Transform + pos: 40.5,14.5 + parent: 2 + - uid: 12152 + components: + - type: Transform + pos: 40.5,18.5 + parent: 2 + - uid: 12153 + components: + - type: Transform + pos: 42.5,18.5 + parent: 2 + - uid: 12154 + components: + - type: Transform + pos: 45.5,15.5 + parent: 2 + - uid: 12155 + components: + - type: Transform + pos: 46.5,15.5 + parent: 2 + - uid: 12156 + components: + - type: Transform + pos: 47.5,15.5 + parent: 2 + - uid: 12157 + components: + - type: Transform + pos: 47.5,14.5 + parent: 2 + - uid: 12158 + components: + - type: Transform + pos: 47.5,13.5 + parent: 2 + - uid: 12159 + components: + - type: Transform + pos: 50.5,14.5 + parent: 2 + - uid: 12160 + components: + - type: Transform + pos: 50.5,18.5 + parent: 2 + - uid: 12161 + components: + - type: Transform + pos: 39.5,24.5 + parent: 2 + - uid: 12162 + components: + - type: Transform + pos: 40.5,24.5 + parent: 2 + - uid: 12163 + components: + - type: Transform + pos: 41.5,24.5 + parent: 2 + - uid: 12164 + components: + - type: Transform + pos: 36.5,27.5 + parent: 2 + - uid: 12165 + components: + - type: Transform + pos: 36.5,29.5 + parent: 2 + - uid: 12166 + components: + - type: Transform + pos: 40.5,26.5 + parent: 2 + - uid: 12167 + components: + - type: Transform + pos: 43.5,28.5 + parent: 2 + - uid: 12168 + components: + - type: Transform + pos: 44.5,32.5 + parent: 2 + - uid: 12169 + components: + - type: Transform + pos: 51.5,24.5 + parent: 2 + - uid: 12170 + components: + - type: Transform + pos: 51.5,26.5 + parent: 2 + - uid: 12171 + components: + - type: Transform + pos: 50.5,23.5 + parent: 2 + - uid: 12172 + components: + - type: Transform + pos: 52.5,23.5 + parent: 2 + - uid: 12173 + components: + - type: Transform + pos: 54.5,23.5 + parent: 2 + - uid: 12174 + components: + - type: Transform + pos: 54.5,22.5 + parent: 2 + - uid: 12175 + components: + - type: Transform + pos: 56.5,23.5 + parent: 2 + - uid: 12176 + components: + - type: Transform + pos: 49.5,20.5 + parent: 2 + - uid: 12177 + components: + - type: Transform + pos: 52.5,19.5 + parent: 2 + - uid: 12178 + components: + - type: Transform + pos: 51.5,19.5 + parent: 2 + - uid: 12179 + components: + - type: Transform + pos: 54.5,20.5 + parent: 2 + - uid: 12180 + components: + - type: Transform + pos: 57.5,29.5 + parent: 2 + - uid: 12181 + components: + - type: Transform + pos: 60.5,32.5 + parent: 2 + - uid: 12182 + components: + - type: Transform + pos: 59.5,32.5 + parent: 2 + - uid: 12183 + components: + - type: Transform + pos: 61.5,32.5 + parent: 2 + - uid: 12184 + components: + - type: Transform + pos: 63.5,29.5 + parent: 2 + - uid: 12185 + components: + - type: Transform + pos: 56.5,6.5 + parent: 2 + - uid: 12187 + components: + - type: Transform + pos: 50.5,-5.5 + parent: 2 + - uid: 12188 + components: + - type: Transform + pos: 50.5,-4.5 + parent: 2 + - uid: 12189 + components: + - type: Transform + pos: 52.5,-5.5 + parent: 2 + - uid: 12190 + components: + - type: Transform + pos: 52.5,-4.5 + parent: 2 + - uid: 12191 + components: + - type: Transform + pos: 59.5,11.5 + parent: 2 + - uid: 12192 + components: + - type: Transform + pos: 60.5,11.5 + parent: 2 + - uid: 12193 + components: + - type: Transform + pos: 62.5,2.5 + parent: 2 + - uid: 12194 + components: + - type: Transform + pos: 62.5,3.5 + parent: 2 + - uid: 12195 + components: + - type: Transform + pos: 62.5,4.5 + parent: 2 + - uid: 12196 + components: + - type: Transform + pos: 64.5,-0.5 + parent: 2 + - uid: 12197 + components: + - type: Transform + pos: 65.5,-0.5 + parent: 2 + - uid: 12198 + components: + - type: Transform + pos: 66.5,-0.5 + parent: 2 + - uid: 12199 + components: + - type: Transform + pos: 69.5,1.5 + parent: 2 + - uid: 12200 + components: + - type: Transform + pos: 70.5,1.5 + parent: 2 + - uid: 12201 + components: + - type: Transform + pos: 71.5,1.5 + parent: 2 + - uid: 12202 + components: + - type: Transform + pos: 71.5,0.5 + parent: 2 + - uid: 12203 + components: + - type: Transform + pos: 71.5,-0.5 + parent: 2 + - uid: 12204 + components: + - type: Transform + pos: 72.5,-4.5 + parent: 2 + - uid: 12205 + components: + - type: Transform + pos: 12.5,50.5 + parent: 2 + - uid: 12206 + components: + - type: Transform + pos: 13.5,50.5 + parent: 2 + - uid: 12207 + components: + - type: Transform + pos: 14.5,56.5 + parent: 2 + - uid: 12208 + components: + - type: Transform + pos: 20.5,64.5 + parent: 2 + - uid: 12209 + components: + - type: Transform + pos: 17.5,50.5 + parent: 2 + - uid: 12210 + components: + - type: Transform + pos: 19.5,50.5 + parent: 2 + - uid: 12211 + components: + - type: Transform + pos: 21.5,50.5 + parent: 2 + - uid: 12212 + components: + - type: Transform + pos: 26.5,66.5 + parent: 2 + - uid: 12213 + components: + - type: Transform + pos: 29.5,59.5 + parent: 2 + - uid: 12214 + components: + - type: Transform + pos: 30.5,59.5 + parent: 2 + - uid: 12215 + components: + - type: Transform + pos: 31.5,59.5 + parent: 2 + - uid: 12216 + components: + - type: Transform + pos: 27.5,50.5 + parent: 2 + - uid: 12217 + components: + - type: Transform + pos: 28.5,50.5 + parent: 2 + - uid: 12218 + components: + - type: Transform + pos: 29.5,50.5 + parent: 2 + - uid: 12219 + components: + - type: Transform + pos: 29.5,51.5 + parent: 2 + - uid: 12220 + components: + - type: Transform + pos: 31.5,51.5 + parent: 2 + - uid: 12221 + components: + - type: Transform + pos: 31.5,50.5 + parent: 2 + - uid: 12222 + components: + - type: Transform + pos: 32.5,50.5 + parent: 2 + - uid: 12223 + components: + - type: Transform + pos: 33.5,50.5 + parent: 2 + - uid: 12224 + components: + - type: Transform + pos: 36.5,50.5 + parent: 2 + - uid: 12225 + components: + - type: Transform + pos: 37.5,50.5 + parent: 2 + - uid: 12226 + components: + - type: Transform + pos: 36.5,58.5 + parent: 2 + - uid: 12227 + components: + - type: Transform + pos: 35.5,58.5 + parent: 2 + - uid: 12228 + components: + - type: Transform + pos: 37.5,58.5 + parent: 2 + - uid: 12229 + components: + - type: Transform + pos: 35.5,65.5 + parent: 2 + - uid: 12230 + components: + - type: Transform + pos: 34.5,65.5 + parent: 2 + - uid: 12231 + components: + - type: Transform + pos: 34.5,66.5 + parent: 2 + - uid: 12232 + components: + - type: Transform + pos: 34.5,67.5 + parent: 2 + - uid: 12233 + components: + - type: Transform + pos: 31.5,65.5 + parent: 2 + - uid: 12234 + components: + - type: Transform + pos: 32.5,65.5 + parent: 2 + - uid: 12235 + components: + - type: Transform + pos: 32.5,67.5 + parent: 2 + - uid: 12236 + components: + - type: Transform + pos: 39.5,67.5 + parent: 2 + - uid: 12237 + components: + - type: Transform + pos: 46.5,64.5 + parent: 2 + - uid: 12238 + components: + - type: Transform + pos: 46.5,65.5 + parent: 2 + - uid: 12240 + components: + - type: Transform + pos: 55.5,59.5 + parent: 2 + - uid: 12241 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 69.5,63.5 + parent: 2 + - uid: 12242 + components: + - type: Transform + pos: 61.5,36.5 + parent: 2 + - uid: 12243 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 48.5,36.5 + parent: 2 + - uid: 12244 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 47.5,36.5 + parent: 2 + - uid: 12245 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 49.5,37.5 + parent: 2 + - uid: 12246 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 49.5,40.5 + parent: 2 + - uid: 12247 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 36.5,36.5 + parent: 2 + - uid: 12248 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 37.5,36.5 + parent: 2 + - uid: 12249 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 39.5,36.5 + parent: 2 + - uid: 12250 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 40.5,36.5 + parent: 2 + - uid: 12251 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 62.5,58.5 + parent: 2 + - uid: 12252 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 63.5,57.5 + parent: 2 + - uid: 12253 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 63.5,56.5 + parent: 2 + - uid: 12254 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 61.5,59.5 + parent: 2 + - uid: 12255 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 61.5,61.5 + parent: 2 + - uid: 12256 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 58.5,63.5 + parent: 2 + - uid: 12257 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 59.5,63.5 + parent: 2 + - uid: 12258 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 59.5,65.5 + parent: 2 + - uid: 12259 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 61.5,63.5 + parent: 2 + - uid: 12260 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 61.5,64.5 + parent: 2 + - uid: 12261 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 61.5,65.5 + parent: 2 + - uid: 12262 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 63.5,65.5 + parent: 2 + - uid: 12263 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 67.5,65.5 + parent: 2 + - uid: 12264 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 67.5,63.5 + parent: 2 + - uid: 12265 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 66.5,63.5 + parent: 2 + - uid: 12266 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 65.5,63.5 + parent: 2 + - uid: 12267 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 64.5,63.5 + parent: 2 + - uid: 12268 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 63.5,63.5 + parent: 2 + - uid: 12269 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 69.5,64.5 + parent: 2 + - uid: 12270 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 69.5,65.5 + parent: 2 + - uid: 12271 + components: + - type: Transform + pos: 81.5,63.5 + parent: 2 + - uid: 12272 + components: + - type: Transform + pos: 76.5,63.5 + parent: 2 + - uid: 12273 + components: + - type: Transform + pos: 77.5,63.5 + parent: 2 + - uid: 12274 + components: + - type: Transform + pos: 78.5,63.5 + parent: 2 + - uid: 12275 + components: + - type: Transform + pos: 80.5,55.5 + parent: 2 + - uid: 12276 + components: + - type: Transform + pos: 80.5,56.5 + parent: 2 + - uid: 12277 + components: + - type: Transform + pos: 80.5,57.5 + parent: 2 + - uid: 12278 + components: + - type: Transform + pos: 81.5,58.5 + parent: 2 + - uid: 12279 + components: + - type: Transform + pos: 81.5,53.5 + parent: 2 + - uid: 12280 + components: + - type: Transform + pos: 84.5,42.5 + parent: 2 + - uid: 12281 + components: + - type: Transform + pos: 69.5,46.5 + parent: 2 + - uid: 12282 + components: + - type: Transform + pos: 69.5,42.5 + parent: 2 + - uid: 12283 + components: + - type: Transform + pos: 72.5,42.5 + parent: 2 + - uid: 12284 + components: + - type: Transform + pos: 84.5,43.5 + parent: 2 + - uid: 12285 + components: + - type: Transform + pos: 84.5,44.5 + parent: 2 + - uid: 12286 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 84.5,29.5 + parent: 2 + - uid: 12287 + components: + - type: Transform + pos: 79.5,44.5 + parent: 2 + - uid: 12288 + components: + - type: Transform + pos: 79.5,42.5 + parent: 2 + - uid: 12289 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 73.5,38.5 + parent: 2 + - uid: 12290 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 73.5,39.5 + parent: 2 + - uid: 12291 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 74.5,33.5 + parent: 2 + - uid: 12292 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 74.5,35.5 + parent: 2 + - uid: 12293 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 78.5,33.5 + parent: 2 + - uid: 12294 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 78.5,35.5 + parent: 2 + - uid: 12295 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 80.5,28.5 + parent: 2 + - uid: 12296 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 82.5,28.5 + parent: 2 + - uid: 12297 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 85.5,29.5 + parent: 2 + - uid: 12298 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 86.5,29.5 + parent: 2 + - uid: 12299 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 88.5,37.5 + parent: 2 + - uid: 12300 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 88.5,36.5 + parent: 2 + - uid: 12301 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 88.5,35.5 + parent: 2 + - uid: 12302 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 88.5,34.5 + parent: 2 + - uid: 12303 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 88.5,33.5 + parent: 2 + - uid: 12304 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 88.5,32.5 + parent: 2 + - uid: 12305 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 88.5,31.5 + parent: 2 + - uid: 12306 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 84.5,39.5 + parent: 2 + - uid: 12307 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 85.5,39.5 + parent: 2 + - uid: 12308 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 86.5,39.5 + parent: 2 + - uid: 12309 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 84.5,22.5 + parent: 2 + - uid: 12310 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 84.5,23.5 + parent: 2 + - uid: 12311 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 84.5,24.5 + parent: 2 + - uid: 12312 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 84.5,25.5 + parent: 2 + - uid: 12313 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 77.5,23.5 + parent: 2 + - uid: 12314 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 77.5,15.5 + parent: 2 + - uid: 12315 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 77.5,17.5 + parent: 2 + - uid: 12316 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 75.5,8.5 + parent: 2 + - uid: 12317 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 76.5,8.5 + parent: 2 + - uid: 12318 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 77.5,8.5 + parent: 2 + - uid: 12319 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 77.5,1.5 + parent: 2 + - uid: 12320 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 77.5,2.5 + parent: 2 + - uid: 12321 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 77.5,3.5 + parent: 2 + - uid: 12322 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 77.5,4.5 + parent: 2 + - uid: 12323 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 77.5,5.5 + parent: 2 + - uid: 12324 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 77.5,6.5 + parent: 2 + - uid: 12325 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 75.5,1.5 + parent: 2 + - uid: 12326 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 75.5,-0.5 + parent: 2 + - uid: 12327 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 76.5,-0.5 + parent: 2 + - uid: 12328 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 77.5,-0.5 + parent: 2 + - uid: 12329 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 74.5,-4.5 + parent: 2 + - uid: 12330 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 74.5,-3.5 + parent: 2 + - uid: 12331 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 74.5,-2.5 + parent: 2 + - uid: 12332 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 68.5,2.5 + parent: 2 + - uid: 12333 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 63.5,7.5 + parent: 2 + - uid: 12334 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 64.5,7.5 + parent: 2 + - uid: 12335 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 64.5,7.5 + parent: 2 + - uid: 12336 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 66.5,7.5 + parent: 2 + - uid: 12337 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 67.5,7.5 + parent: 2 + - uid: 12338 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 69.5,5.5 + parent: 2 + - uid: 12339 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 70.5,5.5 + parent: 2 + - uid: 12340 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 71.5,5.5 + parent: 2 + - uid: 12341 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 71.5,6.5 + parent: 2 + - uid: 12342 + components: + - type: Transform + pos: 68.5,13.5 + parent: 2 + - uid: 12343 + components: + - type: Transform + pos: 68.5,14.5 + parent: 2 + - uid: 12344 + components: + - type: Transform + pos: 68.5,15.5 + parent: 2 + - uid: 12345 + components: + - type: Transform + pos: 71.5,12.5 + parent: 2 + - uid: 12346 + components: + - type: Transform + pos: 73.5,12.5 + parent: 2 + - uid: 12347 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 71.5,65.5 + parent: 2 + - uid: 12348 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -3.5,32.5 + parent: 2 + - uid: 12349 + components: + - type: Transform + pos: 5.5,17.5 + parent: 2 + - uid: 12350 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 54.5,17.5 + parent: 2 + - uid: 12351 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -27.5,37.5 + parent: 2 + - uid: 12352 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -27.5,38.5 + parent: 2 + - uid: 12353 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -27.5,39.5 + parent: 2 + - uid: 12354 + components: + - type: Transform + pos: 34.5,11.5 + parent: 2 + - uid: 12355 + components: + - type: Transform + pos: 34.5,9.5 + parent: 2 + - uid: 12356 + components: + - type: Transform + pos: -13.5,-6.5 + parent: 2 + - uid: 12357 + components: + - type: Transform + pos: -13.5,-5.5 + parent: 2 + - uid: 12358 + components: + - type: Transform + pos: -13.5,-4.5 + parent: 2 + - uid: 12359 + components: + - type: Transform + pos: -17.5,-2.5 + parent: 2 + - uid: 12360 + components: + - type: Transform + pos: 32.5,11.5 + parent: 2 + - uid: 12361 + components: + - type: Transform + pos: 32.5,9.5 + parent: 2 + - uid: 12362 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 21.5,22.5 + parent: 2 + - uid: 12363 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 22.5,22.5 + parent: 2 + - uid: 12364 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 9.5,36.5 + parent: 2 + - uid: 12365 + components: + - type: Transform + pos: 67.5,24.5 + parent: 2 + - uid: 12366 + components: + - type: Transform + pos: 67.5,25.5 + parent: 2 + - uid: 12367 + components: + - type: Transform + pos: 81.5,50.5 + parent: 2 + - uid: 12368 + components: + - type: Transform + pos: 81.5,49.5 + parent: 2 + - uid: 12369 + components: + - type: Transform + pos: 81.5,51.5 + parent: 2 + - uid: 12370 + components: + - type: Transform + pos: -32.5,32.5 + parent: 2 + - uid: 12371 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -11.5,24.5 + parent: 2 + - uid: 12372 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -11.5,23.5 + parent: 2 + - uid: 12373 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -15.5,21.5 + parent: 2 + - uid: 12374 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -14.5,21.5 + parent: 2 + - uid: 12375 + components: + - type: Transform + pos: -1.5,31.5 + parent: 2 + - uid: 12376 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 2.5,28.5 + parent: 2 + - uid: 12377 + components: + - type: Transform + pos: -1.5,29.5 + parent: 2 + - uid: 12378 + components: + - type: Transform + pos: -4.5,18.5 + parent: 2 + - uid: 12379 + components: + - type: Transform + pos: 16.5,33.5 + parent: 2 + - uid: 12380 + components: + - type: Transform + pos: 13.5,33.5 + parent: 2 + - uid: 12381 + components: + - type: Transform + pos: 13.5,32.5 + parent: 2 + - uid: 12382 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 30.5,-11.5 + parent: 2 + - uid: 12383 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 31.5,-11.5 + parent: 2 + - uid: 12384 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 27.5,-10.5 + parent: 2 + - uid: 12385 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 25.5,-10.5 + parent: 2 + - uid: 12386 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 24.5,-10.5 + parent: 2 + - uid: 12387 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 24.5,-11.5 + parent: 2 + - uid: 12388 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 24.5,-12.5 + parent: 2 + - uid: 12389 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 25.5,-12.5 + parent: 2 + - uid: 12390 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 27.5,-11.5 + parent: 2 + - uid: 12391 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 27.5,-12.5 + parent: 2 + - uid: 12542 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -22.5,75.5 + parent: 2 + - uid: 13129 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 67.5,30.5 + parent: 2 + - uid: 15067 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -24.5,75.5 + parent: 2 + - uid: 16526 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -27.5,76.5 + parent: 2 + - uid: 16847 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 57.5,59.5 + parent: 2 + - uid: 17249 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -28.5,76.5 + parent: 2 + - uid: 17823 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -27.5,75.5 + parent: 2 + - uid: 18640 + components: + - type: Transform + pos: -6.5,19.5 + parent: 2 + - uid: 18945 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -23.5,75.5 + parent: 2 +- proto: GrilleSpawner + entities: + - uid: 6002 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -33.5,80.5 + parent: 2 + - uid: 6061 + components: + - type: Transform + pos: 88.5,5.5 + parent: 2 + - uid: 6062 + components: + - type: Transform + pos: 88.5,6.5 + parent: 2 + - uid: 6073 + components: + - type: Transform + pos: 88.5,2.5 + parent: 2 + - uid: 8530 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -36.5,78.5 + parent: 2 + - uid: 8531 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -36.5,79.5 + parent: 2 + - uid: 8532 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -35.5,80.5 + parent: 2 + - uid: 8533 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -29.5,80.5 + parent: 2 + - uid: 8534 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -31.5,80.5 + parent: 2 + - uid: 12392 + components: + - type: Transform + pos: -31.5,-9.5 + parent: 2 + - uid: 12393 + components: + - type: Transform + pos: -30.5,-2.5 + parent: 2 + - uid: 12394 + components: + - type: Transform + pos: -30.5,-3.5 + parent: 2 + - uid: 12395 + components: + - type: Transform + pos: -30.5,-4.5 + parent: 2 + - uid: 12396 + components: + - type: Transform + pos: -30.5,-5.5 + parent: 2 + - uid: 12397 + components: + - type: Transform + pos: -30.5,-6.5 + parent: 2 + - uid: 12398 + components: + - type: Transform + pos: -30.5,-8.5 + parent: 2 + - uid: 12399 + components: + - type: Transform + pos: -31.5,-8.5 + parent: 2 + - uid: 12400 + components: + - type: Transform + pos: -31.5,-10.5 + parent: 2 + - uid: 12401 + components: + - type: Transform + pos: -31.5,-11.5 + parent: 2 + - uid: 12402 + components: + - type: Transform + pos: -20.5,-17.5 + parent: 2 + - uid: 12403 + components: + - type: Transform + pos: -32.5,-13.5 + parent: 2 + - uid: 12404 + components: + - type: Transform + pos: -32.5,-14.5 + parent: 2 + - uid: 12405 + components: + - type: Transform + pos: -32.5,-15.5 + parent: 2 + - uid: 12406 + components: + - type: Transform + pos: -32.5,-16.5 + parent: 2 + - uid: 12407 + components: + - type: Transform + pos: -32.5,-17.5 + parent: 2 + - uid: 12408 + components: + - type: Transform + pos: -30.5,-18.5 + parent: 2 + - uid: 12409 + components: + - type: Transform + pos: -29.5,-18.5 + parent: 2 + - uid: 12410 + components: + - type: Transform + pos: -28.5,-18.5 + parent: 2 + - uid: 12411 + components: + - type: Transform + pos: -20.5,-18.5 + parent: 2 + - uid: 12412 + components: + - type: Transform + pos: -31.5,-18.5 + parent: 2 + - uid: 12413 + components: + - type: Transform + pos: -25.5,-19.5 + parent: 2 + - uid: 12414 + components: + - type: Transform + pos: -25.5,-20.5 + parent: 2 + - uid: 12415 + components: + - type: Transform + pos: -24.5,-20.5 + parent: 2 + - uid: 12416 + components: + - type: Transform + pos: -22.5,-20.5 + parent: 2 + - uid: 12417 + components: + - type: Transform + pos: -21.5,-20.5 + parent: 2 + - uid: 12418 + components: + - type: Transform + pos: -21.5,-19.5 + parent: 2 + - uid: 12419 + components: + - type: Transform + pos: -23.5,-20.5 + parent: 2 + - uid: 12420 + components: + - type: Transform + pos: -32.5,-18.5 + parent: 2 + - uid: 12421 + components: + - type: Transform + pos: -20.5,-16.5 + parent: 2 + - uid: 12422 + components: + - type: Transform + pos: -20.5,-15.5 + parent: 2 + - uid: 12423 + components: + - type: Transform + pos: -20.5,-13.5 + parent: 2 + - uid: 12424 + components: + - type: Transform + pos: -19.5,-13.5 + parent: 2 + - uid: 12425 + components: + - type: Transform + pos: -19.5,-12.5 + parent: 2 + - uid: 12426 + components: + - type: Transform + pos: -19.5,-11.5 + parent: 2 + - uid: 12427 + components: + - type: Transform + pos: -19.5,-10.5 + parent: 2 + - uid: 12428 + components: + - type: Transform + pos: -19.5,-9.5 + parent: 2 + - uid: 12429 + components: + - type: Transform + pos: -19.5,-8.5 + parent: 2 + - uid: 12430 + components: + - type: Transform + pos: -19.5,-5.5 + parent: 2 + - uid: 12431 + components: + - type: Transform + pos: -19.5,-4.5 + parent: 2 + - uid: 12432 + components: + - type: Transform + pos: -19.5,-3.5 + parent: 2 + - uid: 12433 + components: + - type: Transform + pos: -19.5,-2.5 + parent: 2 + - uid: 12434 + components: + - type: Transform + pos: -19.5,-1.5 + parent: 2 + - uid: 12435 + components: + - type: Transform + pos: -19.5,-0.5 + parent: 2 + - uid: 12436 + components: + - type: Transform + pos: 49.5,-24.5 + parent: 2 + - uid: 12437 + components: + - type: Transform + pos: 49.5,-25.5 + parent: 2 + - uid: 12438 + components: + - type: Transform + pos: 49.5,-26.5 + parent: 2 + - uid: 12439 + components: + - type: Transform + pos: 50.5,-26.5 + parent: 2 + - uid: 12440 + components: + - type: Transform + pos: 51.5,-26.5 + parent: 2 + - uid: 12441 + components: + - type: Transform + pos: 52.5,-26.5 + parent: 2 + - uid: 12442 + components: + - type: Transform + pos: 53.5,-26.5 + parent: 2 + - uid: 12443 + components: + - type: Transform + pos: 53.5,-25.5 + parent: 2 + - uid: 12444 + components: + - type: Transform + pos: 53.5,-24.5 + parent: 2 + - uid: 12445 + components: + - type: Transform + pos: 54.5,-24.5 + parent: 2 + - uid: 12446 + components: + - type: Transform + pos: 46.5,-24.5 + parent: 2 + - uid: 12447 + components: + - type: Transform + pos: 45.5,-24.5 + parent: 2 + - uid: 12448 + components: + - type: Transform + pos: 44.5,-24.5 + parent: 2 + - uid: 12449 + components: + - type: Transform + pos: 43.5,-24.5 + parent: 2 + - uid: 12450 + components: + - type: Transform + pos: 43.5,-17.5 + parent: 2 + - uid: 12451 + components: + - type: Transform + pos: 43.5,-23.5 + parent: 2 + - uid: 12452 + components: + - type: Transform + pos: 43.5,-22.5 + parent: 2 + - uid: 12453 + components: + - type: Transform + pos: 43.5,-21.5 + parent: 2 + - uid: 12454 + components: + - type: Transform + pos: 43.5,-20.5 + parent: 2 + - uid: 12455 + components: + - type: Transform + pos: 43.5,-19.5 + parent: 2 + - uid: 12456 + components: + - type: Transform + pos: 43.5,-15.5 + parent: 2 + - uid: 12457 + components: + - type: Transform + pos: 43.5,-14.5 + parent: 2 + - uid: 12458 + components: + - type: Transform + pos: 43.5,-13.5 + parent: 2 + - uid: 12459 + components: + - type: Transform + pos: 43.5,-12.5 + parent: 2 + - uid: 12460 + components: + - type: Transform + pos: 43.5,-11.5 + parent: 2 + - uid: 12461 + components: + - type: Transform + pos: 59.5,-11.5 + parent: 2 + - uid: 12462 + components: + - type: Transform + pos: 59.5,-12.5 + parent: 2 + - uid: 12463 + components: + - type: Transform + pos: 59.5,-13.5 + parent: 2 + - uid: 12464 + components: + - type: Transform + pos: 59.5,-14.5 + parent: 2 + - uid: 12465 + components: + - type: Transform + pos: 59.5,-17.5 + parent: 2 + - uid: 12466 + components: + - type: Transform + pos: 59.5,-19.5 + parent: 2 + - uid: 12467 + components: + - type: Transform + pos: 59.5,-20.5 + parent: 2 + - uid: 12468 + components: + - type: Transform + pos: 59.5,-21.5 + parent: 2 + - uid: 12469 + components: + - type: Transform + pos: 59.5,-22.5 + parent: 2 + - uid: 12470 + components: + - type: Transform + pos: 59.5,-23.5 + parent: 2 + - uid: 12471 + components: + - type: Transform + pos: 59.5,-24.5 + parent: 2 + - uid: 12472 + components: + - type: Transform + pos: 58.5,-24.5 + parent: 2 + - uid: 12473 + components: + - type: Transform + pos: 57.5,-24.5 + parent: 2 + - uid: 12474 + components: + - type: Transform + pos: 30.5,81.5 + parent: 2 + - uid: 12475 + components: + - type: Transform + pos: 31.5,81.5 + parent: 2 + - uid: 12476 + components: + - type: Transform + pos: 31.5,82.5 + parent: 2 + - uid: 12477 + components: + - type: Transform + pos: 31.5,83.5 + parent: 2 + - uid: 12478 + components: + - type: Transform + pos: 32.5,83.5 + parent: 2 + - uid: 12479 + components: + - type: Transform + pos: 33.5,83.5 + parent: 2 + - uid: 12480 + components: + - type: Transform + pos: 34.5,83.5 + parent: 2 + - uid: 12481 + components: + - type: Transform + pos: 35.5,83.5 + parent: 2 + - uid: 12482 + components: + - type: Transform + pos: 35.5,82.5 + parent: 2 + - uid: 12483 + components: + - type: Transform + pos: 35.5,81.5 + parent: 2 + - uid: 12484 + components: + - type: Transform + pos: 41.5,80.5 + parent: 2 + - uid: 12485 + components: + - type: Transform + pos: 38.5,81.5 + parent: 2 + - uid: 12486 + components: + - type: Transform + pos: 39.5,81.5 + parent: 2 + - uid: 12487 + components: + - type: Transform + pos: 40.5,81.5 + parent: 2 + - uid: 12488 + components: + - type: Transform + pos: 41.5,81.5 + parent: 2 + - uid: 12489 + components: + - type: Transform + pos: 41.5,72.5 + parent: 2 + - uid: 12490 + components: + - type: Transform + pos: 41.5,79.5 + parent: 2 + - uid: 12491 + components: + - type: Transform + pos: 41.5,78.5 + parent: 2 + - uid: 12492 + components: + - type: Transform + pos: 41.5,77.5 + parent: 2 + - uid: 12493 + components: + - type: Transform + pos: 41.5,76.5 + parent: 2 + - uid: 12494 + components: + - type: Transform + pos: 41.5,74.5 + parent: 2 + - uid: 12495 + components: + - type: Transform + pos: 41.5,71.5 + parent: 2 + - uid: 12496 + components: + - type: Transform + pos: 41.5,70.5 + parent: 2 + - uid: 12497 + components: + - type: Transform + pos: 41.5,69.5 + parent: 2 + - uid: 12498 + components: + - type: Transform + pos: 25.5,72.5 + parent: 2 + - uid: 12499 + components: + - type: Transform + pos: 25.5,71.5 + parent: 2 + - uid: 12500 + components: + - type: Transform + pos: 25.5,70.5 + parent: 2 + - uid: 12501 + components: + - type: Transform + pos: 25.5,69.5 + parent: 2 + - uid: 12502 + components: + - type: Transform + pos: 25.5,74.5 + parent: 2 + - uid: 12503 + components: + - type: Transform + pos: 25.5,76.5 + parent: 2 + - uid: 12504 + components: + - type: Transform + pos: 25.5,77.5 + parent: 2 + - uid: 12505 + components: + - type: Transform + pos: 25.5,78.5 + parent: 2 + - uid: 12506 + components: + - type: Transform + pos: 25.5,79.5 + parent: 2 + - uid: 12507 + components: + - type: Transform + pos: 25.5,80.5 + parent: 2 + - uid: 12508 + components: + - type: Transform + pos: 25.5,81.5 + parent: 2 + - uid: 12509 + components: + - type: Transform + pos: 26.5,81.5 + parent: 2 + - uid: 12510 + components: + - type: Transform + pos: 27.5,81.5 + parent: 2 + - uid: 12511 + components: + - type: Transform + pos: 86.5,44.5 + parent: 2 + - uid: 12512 + components: + - type: Transform + pos: 87.5,41.5 + parent: 2 + - uid: 12513 + components: + - type: Transform + pos: 90.5,38.5 + parent: 2 + - uid: 12514 + components: + - type: Transform + pos: 90.5,37.5 + parent: 2 + - uid: 12515 + components: + - type: Transform + pos: 90.5,36.5 + parent: 2 + - uid: 12516 + components: + - type: Transform + pos: 90.5,35.5 + parent: 2 + - uid: 12517 + components: + - type: Transform + pos: 90.5,34.5 + parent: 2 + - uid: 12518 + components: + - type: Transform + pos: 90.5,33.5 + parent: 2 + - uid: 12519 + components: + - type: Transform + pos: 90.5,32.5 + parent: 2 + - uid: 12520 + components: + - type: Transform + pos: 90.5,31.5 + parent: 2 + - uid: 12521 + components: + - type: Transform + pos: 90.5,30.5 + parent: 2 + - uid: 12522 + components: + - type: Transform + pos: 87.5,27.5 + parent: 2 + - uid: 12523 + components: + - type: Transform + pos: 86.5,45.5 + parent: 2 + - uid: 12524 + components: + - type: Transform + pos: 86.5,43.5 + parent: 2 + - uid: 12525 + components: + - type: Transform + pos: 86.5,42.5 + parent: 2 + - uid: 12526 + components: + - type: Transform + pos: 86.5,26.5 + parent: 2 + - uid: 12527 + components: + - type: Transform + pos: 86.5,25.5 + parent: 2 + - uid: 12528 + components: + - type: Transform + pos: 86.5,24.5 + parent: 2 + - uid: 12529 + components: + - type: Transform + pos: 86.5,23.5 + parent: 2 + - uid: 12530 + components: + - type: Transform + pos: 86.5,22.5 + parent: 2 + - uid: 12532 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -14.5,74.5 + parent: 2 + - uid: 12533 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -15.5,74.5 + parent: 2 + - uid: 12534 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -16.5,74.5 + parent: 2 + - uid: 12535 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -17.5,74.5 + parent: 2 + - uid: 12536 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -18.5,74.5 + parent: 2 + - uid: 12537 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -19.5,74.5 + parent: 2 + - uid: 12540 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -21.5,76.5 + parent: 2 + - uid: 12547 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -13.5,74.5 + parent: 2 + - uid: 12550 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -13.5,76.5 + parent: 2 + - uid: 12551 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -14.5,76.5 + parent: 2 + - uid: 12552 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -15.5,76.5 + parent: 2 + - uid: 12553 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -16.5,76.5 + parent: 2 + - uid: 12554 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -17.5,76.5 + parent: 2 + - uid: 12555 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -18.5,76.5 + parent: 2 + - uid: 12556 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -19.5,76.5 + parent: 2 + - uid: 12557 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -20.5,76.5 + parent: 2 + - uid: 12558 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -38.5,69.5 + parent: 2 + - uid: 12562 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -21.5,80.5 + parent: 2 + - uid: 12565 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -26.5,78.5 + parent: 2 + - uid: 12566 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -25.5,78.5 + parent: 2 + - uid: 12567 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -23.5,79.5 + parent: 2 + - uid: 12568 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -19.5,81.5 + parent: 2 + - uid: 12569 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -17.5,81.5 + parent: 2 + - uid: 12571 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -15.5,80.5 + parent: 2 + - uid: 12572 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -13.5,79.5 + parent: 2 + - uid: 13839 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -37.5,77.5 + parent: 2 + - uid: 17450 + components: + - type: Transform + pos: 88.5,1.5 + parent: 2 + - uid: 17916 + components: + - type: Transform + pos: 83.5,-9.5 + parent: 2 + - uid: 17919 + components: + - type: Transform + pos: 84.5,-9.5 + parent: 2 + - uid: 17920 + components: + - type: Transform + pos: 86.5,-9.5 + parent: 2 + - uid: 17921 + components: + - type: Transform + pos: 77.5,-9.5 + parent: 2 + - uid: 17923 + components: + - type: Transform + pos: 88.5,13.5 + parent: 2 + - uid: 17924 + components: + - type: Transform + pos: 88.5,8.5 + parent: 2 + - uid: 17925 + components: + - type: Transform + pos: 80.5,13.5 + parent: 2 + - uid: 17926 + components: + - type: Transform + pos: 81.5,13.5 + parent: 2 + - uid: 17927 + components: + - type: Transform + pos: 88.5,7.5 + parent: 2 + - uid: 17928 + components: + - type: Transform + pos: 79.5,13.5 + parent: 2 + - uid: 17929 + components: + - type: Transform + pos: 85.5,13.5 + parent: 2 + - uid: 17930 + components: + - type: Transform + pos: 86.5,13.5 + parent: 2 + - uid: 17931 + components: + - type: Transform + pos: 88.5,-1.5 + parent: 2 + - uid: 17933 + components: + - type: Transform + pos: 88.5,-4.5 + parent: 2 + - uid: 17934 + components: + - type: Transform + pos: 88.5,-2.5 + parent: 2 + - uid: 17935 + components: + - type: Transform + pos: 88.5,-5.5 + parent: 2 + - uid: 17938 + components: + - type: Transform + pos: 88.5,4.5 + parent: 2 + - uid: 17940 + components: + - type: Transform + pos: 88.5,0.5 + parent: 2 + - uid: 17941 + components: + - type: Transform + pos: 88.5,10.5 + parent: 2 + - uid: 17943 + components: + - type: Transform + pos: 88.5,11.5 + parent: 2 + - uid: 17977 + components: + - type: Transform + pos: 88.5,9.5 + parent: 2 + - uid: 17978 + components: + - type: Transform + pos: 88.5,-0.5 + parent: 2 + - uid: 17982 + components: + - type: Transform + pos: 84.5,13.5 + parent: 2 + - uid: 17983 + components: + - type: Transform + pos: 82.5,13.5 + parent: 2 + - uid: 17984 + components: + - type: Transform + pos: 88.5,12.5 + parent: 2 + - uid: 17985 + components: + - type: Transform + pos: 88.5,-3.5 + parent: 2 + - uid: 17986 + components: + - type: Transform + pos: 88.5,3.5 + parent: 2 + - uid: 17992 + components: + - type: Transform + pos: 83.5,13.5 + parent: 2 + - uid: 18528 + components: + - type: Transform + pos: 80.5,-9.5 + parent: 2 + - uid: 18553 + components: + - type: Transform + pos: 79.5,-9.5 + parent: 2 + - uid: 18554 + components: + - type: Transform + pos: 78.5,-9.5 + parent: 2 + - uid: 18555 + components: + - type: Transform + pos: 82.5,-9.5 + parent: 2 + - uid: 18586 + components: + - type: Transform + pos: 85.5,-9.5 + parent: 2 + - uid: 19373 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -37.5,75.5 + parent: 2 + - uid: 19374 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -37.5,73.5 + parent: 2 + - uid: 19375 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -37.5,72.5 + parent: 2 + - uid: 19376 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -38.5,71.5 + parent: 2 +- proto: GunSafeDisabler + entities: + - uid: 12574 + components: + - type: Transform + pos: -19.5,60.5 + parent: 2 +- proto: GunSafePistolMk58 + entities: + - uid: 12575 + components: + - type: Transform + pos: 31.5,55.5 + parent: 2 +- proto: GunSafeShotgunKammerer + entities: + - uid: 12576 + components: + - type: Transform + pos: -16.5,70.5 + parent: 2 +- proto: GyroscopeMachineCircuitboard + entities: + - uid: 12577 + components: + - type: Transform + pos: -26.259409,43.23342 + parent: 2 +- proto: Handcuffs + entities: + - uid: 12578 + components: + - type: Transform + pos: -4.221366,15.508125 + parent: 2 + - uid: 12579 + components: + - type: Transform + pos: -4.427536,29.449837 + parent: 2 + - uid: 12580 + components: + - type: Transform + pos: -25.60279,61.44794 + parent: 2 + - uid: 12581 + components: + - type: Transform + pos: -13.513405,51.524147 + parent: 2 + - uid: 12582 + components: + - type: Transform + pos: 46.58424,14.506506 + parent: 2 + - uid: 12583 + components: + - type: Transform + pos: -26.431564,53.556343 + parent: 2 + - uid: 12584 + components: + - type: Transform + pos: 70.45517,13.657604 + parent: 2 + - uid: 12585 + components: + - type: Transform + pos: 3.4970489,27.484295 + parent: 2 +- proto: HandheldHealthAnalyzer + entities: + - uid: 12586 + components: + - type: Transform + pos: 55.46016,19.624624 + parent: 2 + - uid: 12587 + components: + - type: Transform + pos: -27.474733,50.52622 + parent: 2 + - uid: 12588 + components: + - type: Transform + pos: -5.4911914,57.57545 + parent: 2 + - uid: 12589 + components: + - type: Transform + pos: 26.474176,35.5409 + parent: 2 +- proto: HandheldStationMap + entities: + - uid: 12590 + components: + - type: Transform + pos: 31.512169,56.662724 + parent: 2 + - uid: 12591 + components: + - type: Transform + pos: 42.494133,28.545658 + parent: 2 +- proto: HandLabeler + entities: + - uid: 12592 + components: + - type: Transform + pos: 0.54611063,12.651349 + parent: 2 + - uid: 12593 + components: + - type: Transform + pos: 5.669695,37.47469 + parent: 2 + - uid: 12594 + components: + - type: Transform + pos: 78.72532,42.456882 + parent: 2 +- proto: HeadSkeleton + entities: + - uid: 12595 + components: + - type: Transform + pos: 28.59336,23.459768 + parent: 2 +- proto: HeatExchanger + entities: + - uid: 12596 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -20.5,40.5 + parent: 2 + - uid: 12597 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -21.5,40.5 + parent: 2 + - uid: 18235 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -22.5,40.5 + parent: 2 + - uid: 18238 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -23.5,40.5 + parent: 2 +- proto: HighSecCommandLocked + entities: + - uid: 12599 + components: + - type: Transform + pos: -31.5,29.5 + parent: 2 + - uid: 12600 + components: + - type: Transform + pos: -18.5,42.5 + parent: 2 + - uid: 12601 + components: + - type: Transform + pos: -6.5,44.5 + parent: 2 + - uid: 12602 + components: + - type: Transform + pos: 30.5,52.5 + parent: 2 + - uid: 12603 + components: + - type: Transform + pos: 30.5,50.5 + parent: 2 + - uid: 12604 + components: + - type: Transform + pos: 41.5,32.5 + parent: 2 + - uid: 12605 + components: + - type: Transform + pos: 41.5,30.5 + parent: 2 + - uid: 12606 + components: + - type: Transform + pos: -31.5,33.5 + parent: 2 + - uid: 12607 + components: + - type: Transform + pos: 30.5,-10.5 + parent: 2 + - uid: 12608 + components: + - type: Transform + pos: 30.5,-12.5 + parent: 2 + - uid: 12609 + components: + - type: Transform + pos: 33.5,-8.5 + parent: 2 +- proto: HospitalCurtains + entities: + - uid: 7436 + components: + - type: Transform + pos: 74.5,23.5 + parent: 2 +- proto: HospitalCurtainsOpen + entities: + - uid: 12610 + components: + - type: Transform + pos: 28.5,13.5 + parent: 2 + - uid: 12611 + components: + - type: Transform + pos: 28.5,16.5 + parent: 2 + - uid: 12612 + components: + - type: Transform + pos: 19.5,14.5 + parent: 2 + - uid: 12614 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 6.5,35.5 + parent: 2 + - uid: 12615 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 5.5,34.5 + parent: 2 + - uid: 12616 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 4.5,34.5 + parent: 2 + - uid: 12617 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 3.5,34.5 + parent: 2 + - uid: 12618 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 6.5,34.5 + parent: 2 + - uid: 12619 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 6.5,34.5 + parent: 2 +- proto: hydroponicsSoil + entities: + - uid: 12620 + components: + - type: Transform + pos: 8.5,76.5 + parent: 2 + - uid: 12621 + components: + - type: Transform + pos: 8.5,75.5 + parent: 2 + - uid: 12622 + components: + - type: Transform + pos: 8.5,74.5 + parent: 2 + - uid: 12623 + components: + - type: Transform + pos: 8.5,73.5 + parent: 2 +- proto: HydroponicsToolMiniHoe + entities: + - uid: 12627 + components: + - type: Transform + pos: -34.547028,74.51389 + parent: 2 +- proto: HydroponicsToolSpade + entities: + - uid: 7309 + components: + - type: Transform + pos: -34.471077,74.57086 + parent: 2 +- proto: hydroponicsTray + entities: + - uid: 5064 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -32.5,76.5 + parent: 2 + - uid: 5065 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -32.5,77.5 + parent: 2 + - uid: 5066 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -33.5,76.5 + parent: 2 + - uid: 12074 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -30.5,77.5 + parent: 2 + - uid: 12075 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -30.5,76.5 + parent: 2 + - uid: 12076 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -29.5,76.5 + parent: 2 + - uid: 12626 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 46.5,39.5 + parent: 2 + - uid: 12631 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 49.5,44.5 + parent: 2 + - uid: 12632 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 49.5,43.5 + parent: 2 + - uid: 12633 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 47.5,43.5 + parent: 2 + - uid: 12634 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 46.5,43.5 + parent: 2 + - uid: 12635 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 46.5,40.5 + parent: 2 + - uid: 12636 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 46.5,42.5 + parent: 2 + - uid: 12637 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 47.5,40.5 + parent: 2 + - uid: 12638 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 47.5,42.5 + parent: 2 + - uid: 12639 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 47.5,39.5 + parent: 2 +- proto: IDComputerCircuitboard + entities: + - uid: 12640 + components: + - type: Transform + pos: -8.467238,45.59177 + parent: 2 + - uid: 12641 + components: + - type: Transform + pos: 29.539917,54.538994 + parent: 2 +- proto: IngotGold + entities: + - uid: 12642 + components: + - type: Transform + pos: 31.374626,54.707325 + parent: 2 +- proto: IngotSilver + entities: + - uid: 12643 + components: + - type: Transform + pos: 31.711527,54.679268 + parent: 2 +- proto: IntercomAll + entities: + - uid: 12644 + components: + - type: Transform + pos: 39.5,30.5 + parent: 2 + - uid: 12645 + components: + - type: Transform + pos: 83.5,23.5 + parent: 2 + - uid: 12646 + components: + - type: Transform + pos: 25.5,-10.5 + parent: 2 + - uid: 12647 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 24.5,-11.5 + parent: 2 + - uid: 12648 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 25.5,-12.5 + parent: 2 + - uid: 12649 + components: + - type: Transform + pos: 34.5,-8.5 + parent: 2 + - uid: 12990 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 74.5,27.5 + parent: 2 +- proto: IntercomCommand + entities: + - uid: 12652 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 37.5,0.5 + parent: 2 +- proto: IntercomEngineering + entities: + - uid: 12653 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -1.5,32.5 + parent: 2 +- proto: IntercomMedical + entities: + - uid: 12654 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 14.5,46.5 + parent: 2 + - uid: 12655 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 24.5,34.5 + parent: 2 +- proto: IntercomScience + entities: + - uid: 12656 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 54.5,23.5 + parent: 2 + - uid: 12657 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 37.5,-0.5 + parent: 2 +- proto: IntercomSecurity + entities: + - uid: 12658 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -4.5,32.5 + parent: 2 + - uid: 12659 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 9.5,30.5 + parent: 2 + - uid: 12660 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 43.5,15.5 + parent: 2 + - uid: 12661 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 70.5,16.5 + parent: 2 + - uid: 12662 + components: + - type: Transform + pos: -10.5,50.5 + parent: 2 +- proto: IntercomService + entities: + - uid: 12651 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 73.5,39.5 + parent: 2 +- proto: IntercomSupply + entities: + - uid: 12663 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 9.5,14.5 + parent: 2 +- proto: JanitorialTrolley + entities: + - uid: 12664 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 39.5,54.5 + parent: 2 + - uid: 12665 + components: + - type: Transform + pos: 40.5,54.5 + parent: 2 +- proto: JanitorServiceLight + entities: + - uid: 12666 + components: + - type: Transform + pos: 39.5,49.5 + parent: 2 + - type: DeviceLinkSink + links: + - 14465 +- proto: JetpackMiniFilled + entities: + - uid: 12667 + components: + - type: Transform + pos: 74.401764,45.590862 + parent: 2 + - uid: 12668 + components: + - type: Transform + pos: 74.401764,45.590862 + parent: 2 + - uid: 12669 + components: + - type: Transform + pos: 74.373695,42.490692 + parent: 2 + - uid: 12670 + components: + - type: Transform + pos: 74.373695,42.490692 + parent: 2 +- proto: KitchenElectricGrill + entities: + - uid: 12671 + components: + - type: Transform + pos: 2.5,55.5 + parent: 2 +- proto: KitchenMicrowave + entities: + - uid: 12672 + components: + - type: Transform + pos: -25.5,60.5 + parent: 2 + - uid: 12673 + components: + - type: Transform + pos: 52.5,46.5 + parent: 2 + - uid: 12674 + components: + - type: Transform + pos: 3.5,41.5 + parent: 2 + - uid: 12675 + components: + - type: Transform + pos: 43.5,66.5 + parent: 2 + - uid: 19509 + components: + - type: Transform + pos: -30.5,73.5 + parent: 2 +- proto: KitchenReagentGrinder + entities: + - uid: 12676 + components: + - type: Transform + pos: 10.5,27.5 + parent: 2 + - uid: 12677 + components: + - type: Transform + pos: 44.5,45.5 + parent: 2 + - uid: 12678 + components: + - type: Transform + pos: 57.5,44.5 + parent: 2 + - uid: 12679 + components: + - type: Transform + pos: 59.5,44.5 + parent: 2 + - uid: 12680 + components: + - type: Transform + pos: 27.5,38.5 + parent: 2 + - uid: 19506 + components: + - type: Transform + pos: -30.5,74.5 + parent: 2 +- proto: KitchenSpike + entities: + - uid: 12681 + components: + - type: Transform + pos: 55.5,48.5 + parent: 2 +- proto: LampBanana + entities: + - uid: 12682 + components: + - type: Transform + pos: 40.256474,43.92007 + parent: 2 +- proto: LampGold + entities: + - uid: 478 + components: + - type: Transform + pos: 32.40501,5.974651 + parent: 2 + - uid: 12683 + components: + - type: Transform + pos: -20.685608,54.091194 + parent: 2 + - uid: 12684 + components: + - type: Transform + pos: -24.712593,53.125984 + parent: 2 + - uid: 12685 + components: + - type: Transform + pos: 19.448418,17.908178 + parent: 2 + - uid: 12686 + components: + - type: Transform + pos: 1.0715826,61.091324 + parent: 2 + - uid: 12687 + components: + - type: Transform + pos: 2.272709,52.035137 + parent: 2 + - uid: 12688 + components: + - type: Transform + pos: 6.245478,73.22133 + parent: 2 + - uid: 12689 + components: + - type: Transform + pos: 8.467784,60.831596 + parent: 2 + - uid: 12690 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 18.828588,60.09394 + parent: 2 + - uid: 12691 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 21.84656,52.121628 + parent: 2 + - uid: 12692 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 17.817795,52.205795 + parent: 2 + - uid: 12693 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 19.82771,55.964355 + parent: 2 + - uid: 12694 + components: + - type: Transform + pos: 31.234251,54.581074 + parent: 2 + - uid: 12695 + components: + - type: Transform + pos: 63.4618,15.331928 + parent: 2 +- proto: LampInterrogator + entities: + - uid: 12696 + components: + - type: Transform + pos: -8.448283,58.905025 + parent: 2 + - uid: 12697 + components: + - type: Transform + pos: -26.497074,54.5255 + parent: 2 +- proto: LargeBeaker + entities: + - uid: 12698 + components: + - type: Transform + pos: 37.367184,7.6123457 + parent: 2 + - uid: 12699 + components: + - type: Transform + pos: 47.95627,31.730053 + parent: 2 + - uid: 12700 + components: + - type: Transform + pos: 47.723133,31.550842 + parent: 2 + - uid: 19510 + components: + - type: Transform + pos: -31.75021,74.85023 + parent: 2 + - uid: 19511 + components: + - type: Transform + pos: -31.598312,74.717316 + parent: 2 +- proto: LightPostSmall + entities: + - uid: 18612 + components: + - type: Transform + pos: 70.5,-15.5 + parent: 2 + - uid: 18613 + components: + - type: Transform + pos: 76.5,-15.5 + parent: 2 + - uid: 18614 + components: + - type: Transform + pos: 76.5,-11.5 + parent: 2 + - uid: 18615 + components: + - type: Transform + pos: 70.5,-11.5 + parent: 2 + - uid: 18616 + components: + - type: Transform + pos: 70.5,-8.5 + parent: 2 + - uid: 18617 + components: + - type: Transform + pos: 76.5,-8.5 + parent: 2 +- proto: LockerAtmosphericsFilledHardsuit + entities: + - uid: 12702 + components: + - type: Transform + pos: -10.5,24.5 + parent: 2 + - uid: 12703 + components: + - type: Transform + pos: -10.5,23.5 + parent: 2 + - uid: 12704 + components: + - type: Transform + pos: -10.5,22.5 + parent: 2 +- proto: LockerBooze + entities: + - uid: 12705 + components: + - type: Transform + pos: 30.5,17.5 + parent: 2 + - uid: 12706 + components: + - type: Transform + pos: 30.5,14.5 + parent: 2 + - uid: 12707 + components: + - type: Transform + pos: 17.5,15.5 + parent: 2 + - uid: 12708 + components: + - type: Transform + pos: 58.5,25.5 + parent: 2 +- proto: LockerBoozeFilled + entities: + - uid: 12709 + components: + - type: Transform + pos: 62.5,44.5 + parent: 2 + - uid: 12710 + components: + - type: Transform + pos: 49.5,59.5 + parent: 2 +- proto: LockerBotanistFilled + entities: + - uid: 12711 + components: + - type: Transform + pos: 46.5,48.5 + parent: 2 + - uid: 12712 + components: + - type: Transform + pos: 46.5,47.5 + parent: 2 + - uid: 12713 + components: + - type: Transform + pos: 44.5,44.5 + parent: 2 +- proto: LockerBrigmedicFilledHardsuit + entities: + - uid: 12714 + components: + - type: Transform + pos: -3.5,57.5 + parent: 2 + - 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 +- proto: LockerCaptain + entities: + - uid: 12715 + components: + - type: Transform + pos: 78.5,28.5 + parent: 2 +- proto: LockerCaptainFilled + entities: + - uid: 12716 + components: + - type: Transform + pos: 78.5,26.5 + parent: 2 +- proto: LockerChemistryFilled + entities: + - uid: 12717 + components: + - type: Transform + pos: 8.5,23.5 + parent: 2 + - uid: 12718 + components: + - type: Transform + pos: 7.5,23.5 + parent: 2 +- proto: LockerChiefEngineerFilled + entities: + - uid: 12719 + components: + - type: Transform + pos: -2.5,26.5 + parent: 2 +- proto: LockerChiefMedicalOfficerFilled + entities: + - uid: 12720 + components: + - type: Transform + pos: 19.5,40.5 + parent: 2 +- proto: LockerClown + entities: + - uid: 742 + components: + - type: Transform + pos: 42.5,45.5 + parent: 2 + - 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: + - 751 + - 761 + - 762 + - 759 + - 756 + - 749 + - 753 + - 758 + - 763 + - 764 + - 765 + - 748 + - 750 + - 757 + - 755 + - 760 + - 743 + - 752 + - 746 + - 754 + - 745 + - 744 + - 767 + - 747 + - 766 + paper_label: !type:ContainerSlot + showEnts: False + occludes: True + ent: null +- proto: LockerDetectiveFilled + entities: + - uid: 12721 + components: + - type: Transform + pos: 2.5,60.5 + parent: 2 +- proto: LockerElectricalSuppliesFilled + entities: + - uid: 12722 + components: + - type: Transform + pos: -6.5,38.5 + parent: 2 + - uid: 12723 + components: + - type: Transform + pos: -6.5,38.5 + parent: 2 +- proto: LockerEngineerFilled + entities: + - uid: 12724 + components: + - type: Transform + pos: -8.5,32.5 + parent: 2 + - uid: 12725 + components: + - type: Transform + pos: -8.5,33.5 + parent: 2 + - uid: 12726 + components: + - type: Transform + pos: -8.5,35.5 + parent: 2 + - uid: 12727 + components: + - type: Transform + pos: -8.5,36.5 + parent: 2 +- proto: LockerEvidence + entities: + - uid: 12728 + components: + - type: Transform + pos: -7.5,54.5 + parent: 2 + - uid: 12729 + components: + - type: Transform + pos: -3.5,54.5 + parent: 2 + - uid: 12730 + components: + - type: Transform + pos: 0.5,54.5 + parent: 2 +- proto: LockerForensicMantisFilled + entities: + - uid: 829 + components: + - type: Transform + pos: 30.5,4.5 + parent: 2 +- proto: LockerFreezer + entities: + - uid: 12731 + components: + - type: Transform + pos: 52.5,48.5 + parent: 2 + - uid: 12732 + components: + - type: Transform + pos: 52.5,49.5 + parent: 2 + - uid: 12733 + components: + - type: Transform + pos: 57.5,43.5 + parent: 2 +- proto: LockerFreezerVaultFilled + entities: + - uid: 12734 + components: + - type: Transform + pos: 29.5,53.5 + parent: 2 +- proto: LockerHeadOfPersonnelFilled + entities: + - uid: 12735 + components: + - type: Transform + pos: 77.5,40.5 + parent: 2 +- proto: LockerHeadOfSecurityFilled + entities: + - uid: 12736 + components: + - type: Transform + pos: -20.5,55.5 + parent: 2 +- proto: LockerMedicalFilled + entities: + - uid: 12737 + components: + - type: Transform + pos: 7.5,41.5 + parent: 2 + - uid: 12738 + components: + - type: Transform + pos: 8.5,41.5 + parent: 2 + - uid: 12739 + components: + - type: Transform + pos: 9.5,37.5 + parent: 2 +- proto: LockerMedicineFilled + entities: + - uid: 12740 + components: + - type: Transform + pos: 10.5,30.5 + parent: 2 + - uid: 12741 + components: + - type: Transform + pos: 29.5,41.5 + parent: 2 + - uid: 12742 + components: + - type: Transform + pos: 29.5,43.5 + parent: 2 + - uid: 12743 + components: + - type: Transform + pos: 25.5,38.5 + parent: 2 + - uid: 12744 + components: + - type: Transform + pos: 14.5,39.5 + parent: 2 +- proto: LockerMime + entities: + - uid: 772 + components: + - type: Transform + pos: 40.5,42.5 + parent: 2 + - 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: + - 781 + - 773 + - 779 + - 774 + - 783 + - 787 + - 788 + - 776 + - 782 + - 789 + - 775 + - 790 + - 795 + - 777 + - 780 + - 784 + - 786 + - 785 + - 791 + - 792 + - 793 + - 794 + - 778 + paper_label: !type:ContainerSlot + showEnts: False + occludes: True + ent: null +- proto: LockerParamedicFilled + entities: + - uid: 12745 + components: + - type: Transform + pos: 8.5,45.5 + parent: 2 + - uid: 12746 + components: + - type: Transform + pos: 8.5,44.5 + parent: 2 +- proto: LockerQuarterMasterFilled + entities: + - uid: 12747 + components: + - type: Transform + pos: 1.5,17.5 + parent: 2 +- proto: LockerResearchDirectorFilled + entities: + - uid: 12748 + components: + - type: Transform + pos: 53.5,17.5 + parent: 2 +- proto: LockerSalvageSpecialistFilled + entities: + - uid: 12749 + components: + - type: Transform + pos: -11.5,4.5 + parent: 2 + - uid: 12750 + components: + - type: Transform + pos: -9.5,4.5 + parent: 2 + - uid: 12751 + components: + - type: Transform + pos: -10.5,4.5 + parent: 2 + - uid: 12752 + components: + - type: Transform + pos: -9.5,7.5 + parent: 2 +- proto: LockerScienceFilled + entities: + - uid: 12753 + components: + - type: Transform + pos: 44.5,20.5 + parent: 2 + - uid: 12754 + components: + - type: Transform + pos: 44.5,21.5 + parent: 2 + - uid: 12755 + components: + - type: Transform + pos: 48.5,13.5 + parent: 2 + - uid: 12756 + components: + - type: Transform + pos: 48.5,14.5 + parent: 2 + - uid: 12757 + components: + - type: Transform + pos: 48.5,15.5 + parent: 2 + - uid: 12758 + components: + - type: Transform + pos: 51.5,20.5 + parent: 2 + - uid: 12759 + components: + - type: Transform + pos: 46.5,29.5 + parent: 2 + - uid: 12760 + components: + - type: Transform + pos: 46.5,30.5 + parent: 2 +- proto: LockerSecurityFilled + entities: + - uid: 12761 + components: + - type: Transform + pos: -6.5,13.5 + parent: 2 + - uid: 12762 + components: + - type: Transform + pos: -4.5,31.5 + parent: 2 + - uid: 12763 + components: + - type: Transform + pos: -25.5,66.5 + parent: 2 + - uid: 12764 + components: + - type: Transform + pos: -25.5,67.5 + parent: 2 + - uid: 12765 + components: + - type: Transform + pos: -25.5,69.5 + parent: 2 + - uid: 12766 + components: + - type: Transform + pos: -25.5,70.5 + parent: 2 + - uid: 12767 + components: + - type: Transform + pos: 43.5,14.5 + parent: 2 + - uid: 12768 + components: + - type: Transform + pos: 6.5,26.5 + parent: 2 + - uid: 12769 + components: + - type: Transform + pos: 60.5,56.5 + parent: 2 + - uid: 12770 + components: + - type: Transform + pos: 69.5,15.5 + parent: 2 +- proto: LockerSteel + entities: + - uid: 883 + components: + - type: Transform + pos: 34.5,1.5 + parent: 2 + - 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: + - 892 + - 893 + - 894 + - 889 + - 890 + - 884 + - 891 + - 885 + - 886 + - 887 + - 888 + paper_label: !type:ContainerSlot + showEnts: False + occludes: True + ent: null +- proto: LockerSyndicatePersonal + entities: + - uid: 12771 + components: + - type: Transform + pos: -7.5,60.5 + parent: 2 +- proto: LockerWardenFilledHardsuit + entities: + - uid: 12772 + components: + - type: Transform + pos: -17.5,70.5 + parent: 2 +- proto: LockerWeldingSuppliesFilled + entities: + - uid: 12773 + components: + - type: Transform + pos: -7.5,38.5 + parent: 2 +- proto: LuxuryPen + entities: + - uid: 12774 + components: + - type: Transform + pos: -5.322667,25.958141 + parent: 2 + - uid: 12775 + components: + - type: Transform + pos: -19.621561,53.684982 + parent: 2 + - uid: 12776 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 17.986338,59.546852 + parent: 2 +- proto: MachineAnomalyGenerator + entities: + - uid: 19363 + components: + - type: Transform + pos: 51.5,0.5 + parent: 2 +- proto: MachineAnomalyVessel + entities: + - uid: 12778 + components: + - type: Transform + pos: 57.5,0.5 + parent: 2 + - uid: 12779 + components: + - type: Transform + pos: 57.5,3.5 + parent: 2 +- proto: MachineAPE + entities: + - uid: 12780 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 45.5,1.5 + parent: 2 + - uid: 12781 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 45.5,0.5 + parent: 2 +- proto: MachineArtifactAnalyzer + entities: + - uid: 12782 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 31.5,10.5 + parent: 2 + - type: DeviceLinkSink + links: + - 7153 +- proto: MachineCentrifuge + entities: + - uid: 12783 + components: + - type: Transform + pos: 10.5,28.5 + parent: 2 +- proto: MachineElectrolysisUnit + entities: + - uid: 12784 + components: + - type: Transform + pos: 11.5,24.5 + parent: 2 +- proto: MachineFrame + entities: + - uid: 12785 + components: + - type: Transform + pos: 34.5,14.5 + parent: 2 + - uid: 12787 + components: + - type: Transform + pos: 48.5,25.5 + parent: 2 + - uid: 12788 + components: + - type: Transform + pos: 49.5,54.5 + parent: 2 + - uid: 12789 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 58.5,24.5 + parent: 2 + - uid: 12790 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 60.5,26.5 + parent: 2 + - uid: 12791 + components: + - type: Transform + pos: 49.5,61.5 + parent: 2 + - uid: 12792 + components: + - type: Transform + pos: 48.5,61.5 + parent: 2 +- proto: MachineFrameDestroyed + entities: + - uid: 12793 + components: + - type: Transform + pos: 40.5,19.5 + parent: 2 + - uid: 12794 + components: + - type: Transform + pos: 43.5,19.5 + parent: 2 + - uid: 12795 + components: + - type: Transform + pos: 34.5,16.5 + parent: 2 + - uid: 12796 + components: + - type: Transform + pos: 34.5,13.5 + parent: 2 + - uid: 12797 + components: + - type: Transform + pos: 35.5,13.5 + parent: 2 + - uid: 12798 + components: + - type: Transform + pos: 57.5,-2.5 + parent: 2 + - uid: 12799 + components: + - type: Transform + pos: 50.5,20.5 + parent: 2 + - uid: 12800 + components: + - type: Transform + pos: 49.5,50.5 + parent: 2 + - uid: 12801 + components: + - type: Transform + pos: 50.5,54.5 + parent: 2 + - uid: 12804 + components: + - type: Transform + pos: 60.5,24.5 + parent: 2 +- proto: MagazinePistol + entities: + - uid: 12805 + components: + - type: Transform + pos: -16.705189,68.68963 + parent: 2 + - uid: 12806 + components: + - type: Transform + pos: -16.597588,68.5821 + parent: 2 + - uid: 12807 + components: + - type: Transform + pos: -16.525854,68.45665 + parent: 2 + - uid: 12808 + components: + - type: Transform + pos: -16.382387,68.761314 + parent: 2 + - uid: 12809 + components: + - type: Transform + pos: -16.274788,68.653786 + parent: 2 + - uid: 12810 + components: + - type: Transform + pos: -16.18512,68.49249 + parent: 2 +- proto: MagicDiceBag + entities: + - uid: 12811 + components: + - type: Transform + pos: 23.56858,13.563526 + parent: 2 +- proto: MailTeleporter + entities: + - uid: 12812 + components: + - type: Transform + pos: -7.5,8.5 + parent: 2 +- proto: MaintenanceFluffSpawner + entities: + - uid: 12813 + components: + - type: Transform + pos: 10.5,8.5 + parent: 2 + - uid: 12814 + components: + - type: Transform + pos: 25.5,5.5 + parent: 2 + - uid: 12815 + components: + - type: Transform + pos: 35.5,43.5 + parent: 2 + - uid: 12816 + components: + - type: Transform + pos: 35.5,43.5 + parent: 2 + - uid: 12817 + components: + - type: Transform + pos: 35.5,45.5 + parent: 2 + - uid: 12818 + components: + - type: Transform + pos: 76.5,19.5 + parent: 2 + - uid: 12819 + components: + - type: Transform + pos: 69.5,52.5 + parent: 2 + - uid: 12820 + components: + - type: Transform + pos: 52.5,9.5 + parent: 2 + - uid: 12821 + components: + - type: Transform + pos: 53.5,10.5 + parent: 2 + - uid: 12822 + components: + - type: Transform + pos: 44.5,9.5 + parent: 2 + - uid: 12823 + components: + - type: Transform + pos: 44.5,8.5 + parent: 2 + - uid: 12824 + components: + - type: Transform + pos: 14.5,8.5 + parent: 2 + - uid: 12825 + components: + - type: Transform + pos: -18.5,13.5 + parent: 2 + - uid: 12826 + components: + - type: Transform + pos: -18.5,13.5 + parent: 2 + - uid: 12827 + components: + - type: Transform + pos: 15.5,66.5 + parent: 2 + - uid: 12828 + components: + - type: Transform + pos: 23.5,63.5 + parent: 2 + - uid: 12829 + components: + - type: Transform + pos: 23.5,62.5 + parent: 2 + - uid: 12830 + components: + - type: Transform + pos: 29.5,65.5 + parent: 2 +- proto: MaintenancePlantSpawner + entities: + - uid: 12831 + components: + - type: Transform + pos: 22.5,5.5 + parent: 2 + - uid: 12832 + components: + - type: Transform + pos: 76.5,18.5 + parent: 2 + - uid: 12833 + components: + - type: Transform + pos: 55.5,9.5 + parent: 2 +- proto: MaintenanceToolSpawner + entities: + - uid: 12834 + components: + - type: Transform + pos: 45.5,59.5 + parent: 2 + - uid: 12835 + components: + - type: Transform + pos: 27.5,5.5 + parent: 2 + - uid: 12836 + components: + - type: Transform + pos: 36.5,43.5 + parent: 2 + - uid: 12837 + components: + - type: Transform + pos: 36.5,43.5 + parent: 2 + - uid: 12838 + components: + - type: Transform + pos: 36.5,43.5 + parent: 2 + - uid: 12839 + components: + - type: Transform + pos: 74.5,21.5 + parent: 2 + - uid: 12840 + components: + - type: Transform + pos: 70.5,48.5 + parent: 2 + - uid: 12841 + components: + - type: Transform + pos: 69.5,48.5 + parent: 2 + - uid: 12842 + components: + - type: Transform + pos: 53.5,9.5 + parent: 2 + - uid: 12843 + components: + - type: Transform + pos: 14.5,10.5 + parent: 2 + - uid: 12844 + components: + - type: Transform + pos: 14.5,11.5 + parent: 2 + - uid: 12845 + components: + - type: Transform + pos: -17.5,13.5 + parent: 2 + - uid: 12846 + components: + - type: Transform + pos: -17.5,13.5 + parent: 2 + - uid: 12847 + components: + - type: Transform + pos: 18.5,67.5 + parent: 2 + - uid: 12848 + components: + - type: Transform + pos: 15.5,69.5 + parent: 2 + - uid: 12849 + components: + - type: Transform + pos: 14.5,67.5 + parent: 2 + - uid: 12850 + components: + - type: Transform + pos: 26.5,63.5 + parent: 2 + - uid: 12851 + components: + - type: Transform + pos: 29.5,62.5 + parent: 2 + - uid: 12852 + components: + - type: Transform + pos: 28.5,66.5 + parent: 2 + - uid: 12853 + components: + - type: Transform + pos: 45.5,59.5 + parent: 2 + - uid: 12854 + components: + - type: Transform + pos: 44.5,59.5 + parent: 2 +- proto: MaintenanceWeaponSpawner + entities: + - uid: 12855 + components: + - type: Transform + pos: 15.5,2.5 + parent: 2 + - uid: 12856 + components: + - type: Transform + pos: 80.5,50.5 + parent: 2 + - uid: 12857 + components: + - type: Transform + pos: 20.5,66.5 + parent: 2 +- proto: MaterialCloth + entities: + - uid: 12858 + components: + - type: Transform + pos: 76.81112,37.45618 + parent: 2 +- proto: MaterialDurathread + entities: + - uid: 12859 + components: + - type: Transform + pos: 76.62224,37.823154 + parent: 2 + - type: Physics + angularDamping: 0 + linearDamping: 0 +- proto: MechEquipmentGrabber + entities: + - uid: 12860 + components: + - type: Transform + pos: -17.5,-0.5 + parent: 2 +- proto: MedicalBed + entities: + - uid: 12861 + components: + - type: Transform + pos: 5.5,35.5 + parent: 2 + - uid: 12862 + components: + - type: Transform + pos: 3.5,35.5 + parent: 2 + - uid: 12863 + components: + - type: Transform + pos: 4.5,35.5 + parent: 2 + - uid: 12864 + components: + - type: Transform + pos: -5.5,58.5 + parent: 2 + - uid: 12865 + components: + - type: Transform + pos: 29.5,40.5 + parent: 2 + - uid: 12866 + components: + - type: Transform + pos: 29.5,42.5 + parent: 2 +- proto: MedicalScanner + entities: + - uid: 12802 + components: + - type: Transform + pos: 28.5,29.5 + parent: 2 + - uid: 12803 + components: + - type: Transform + pos: 25.5,29.5 + parent: 2 + - uid: 12868 + components: + - type: Transform + pos: 21.5,28.5 + parent: 2 + - uid: 16226 + components: + - type: Transform + pos: -10.5,66.5 + parent: 2 +- proto: MedicalTechFab + entities: + - uid: 12869 + components: + - type: Transform + pos: 9.5,39.5 + parent: 2 +- proto: MedkitAdvancedFilled + entities: + - uid: 12870 + components: + - type: Transform + pos: 55.531895,19.585579 + parent: 2 + - uid: 12871 + components: + - type: Transform + pos: 6.360105,43.725613 + parent: 2 + - uid: 12872 + components: + - type: Transform + pos: 5.5,31.5 + parent: 2 + - uid: 12873 + components: + - type: Transform + pos: 14.5,32.5 + parent: 2 +- proto: MedkitBruteFilled + entities: + - uid: 12874 + components: + - type: Transform + pos: 6.372061,43.55835 + parent: 2 + - uid: 12875 + components: + - type: Transform + pos: 3.5,31.5 + parent: 2 + - uid: 12876 + components: + - type: Transform + pos: 15.5,32.5 + parent: 2 +- proto: MedkitBurnFilled + entities: + - uid: 12877 + components: + - type: Transform + pos: -7.476385,22.687494 + parent: 2 + - uid: 12878 + components: + - type: Transform + pos: 6.372061,43.41498 + parent: 2 + - uid: 12879 + components: + - type: Transform + pos: 16.5,32.5 + parent: 2 +- proto: MedkitCombatFilled + entities: + - uid: 12880 + components: + - type: Transform + pos: 17.5,32.5 + parent: 2 +- proto: MedkitFilled + entities: + - uid: 12881 + components: + - type: Transform + pos: 12.51605,12.854057 + parent: 2 + - uid: 12882 + components: + - type: Transform + pos: -25.49519,62.612812 + parent: 2 + - uid: 12883 + components: + - type: Transform + pos: 84.61076,33.65296 + parent: 2 + - uid: 12884 + components: + - type: Transform + pos: 14.5,32.5 + parent: 2 +- proto: MedkitOxygenFilled + entities: + - uid: 12885 + components: + - type: Transform + pos: 6.730728,43.73756 + parent: 2 + - uid: 12886 + components: + - type: Transform + pos: 28.530539,66.59765 + parent: 2 + - uid: 12887 + components: + - type: Transform + pos: 15.5,32.5 + parent: 2 +- proto: MedkitRadiationFilled + entities: + - uid: 12888 + components: + - type: Transform + pos: 16.5,32.5 + parent: 2 + - uid: 12889 + components: + - type: Transform + pos: 6.742684,43.55835 + parent: 2 +- proto: MedkitToxinFilled + entities: + - uid: 12890 + components: + - type: Transform + pos: 17.5,32.5 + parent: 2 + - uid: 12891 + components: + - type: Transform + pos: 6.742684,43.42693 + parent: 2 +- proto: MetempsychoticMachine + entities: + - uid: 6948 + components: + - type: Transform + pos: 23.5,28.5 + parent: 2 +- proto: Mirror + entities: + - uid: 12892 + components: + - type: Transform + pos: 2.5,69.5 + parent: 2 + - uid: 12893 + components: + - type: Transform + pos: 1.5,69.5 + parent: 2 + - uid: 12894 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 13.5,33.5 + parent: 2 +- proto: MMI + entities: + - uid: 12895 + components: + - type: Transform + pos: 40.588707,21.59096 + parent: 2 + - uid: 12896 + components: + - type: Transform + pos: 59.385284,15.698191 + parent: 2 +- proto: ModularGrenade + entities: + - uid: 12897 + components: + - type: Transform + pos: 44.348534,53.369633 + parent: 2 + - uid: 12898 + components: + - type: Transform + pos: 44.563732,53.501053 + parent: 2 + - uid: 12899 + components: + - type: Transform + pos: 44.68329,53.60858 + parent: 2 +- proto: MopItem + entities: + - uid: 12900 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 39.501328,54.524693 + parent: 2 + - uid: 12901 + components: + - type: Transform + pos: 40.45712,54.427982 + parent: 2 + - uid: 12902 + components: + - type: Transform + pos: 39.470783,52.54626 + parent: 2 +- proto: Morgue + entities: + - uid: 12903 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -5.5,60.5 + parent: 2 + - uid: 12904 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 15.5,63.5 + parent: 2 + - uid: 12905 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 18.5,42.5 + parent: 2 + - type: EntityStorage + air: + volume: 200 + immutable: False + temperature: 293.14673 + moles: + - 1.8856695 + - 7.0937095 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - uid: 12906 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 18.5,43.5 + parent: 2 + - uid: 12907 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 18.5,44.5 + parent: 2 + - uid: 12908 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 18.5,45.5 + parent: 2 + - uid: 12909 + components: + - type: Transform + pos: 16.5,45.5 + parent: 2 + - uid: 12910 + components: + - type: Transform + pos: 15.5,45.5 + parent: 2 +- proto: MouseTimedSpawner + entities: + - uid: 12911 + components: + - type: Transform + pos: -16.5,13.5 + parent: 2 + - uid: 12912 + components: + - type: Transform + pos: 14.5,13.5 + parent: 2 + - uid: 12913 + components: + - type: Transform + pos: 56.5,12.5 + parent: 2 + - uid: 12914 + components: + - type: Transform + pos: 78.5,50.5 + parent: 2 + - uid: 12915 + components: + - type: Transform + pos: 43.5,59.5 + parent: 2 +- proto: Multitool + entities: + - uid: 12916 + components: + - type: Transform + pos: -7.60857,24.471098 + parent: 2 + - uid: 12917 + components: + - type: Transform + pos: -11.444434,33.73631 + parent: 2 + - uid: 12918 + components: + - type: Transform + pos: 12.506436,13.570902 + parent: 2 + - uid: 12919 + components: + - type: Transform + pos: 36.416718,7.630267 + parent: 2 + - uid: 12920 + components: + - type: Transform + pos: 60.52384,28.581665 + parent: 2 + - uid: 12921 + components: + - type: Transform + pos: 84.7363,35.64221 + parent: 2 + - uid: 12922 + components: + - type: Transform + pos: 22.850292,23.553356 + parent: 2 +- proto: NitrogenCanister + entities: + - uid: 11482 + components: + - type: Transform + pos: -20.5,25.5 + parent: 2 + - uid: 12923 + components: + - type: Transform + pos: -14.5,-7.5 + parent: 2 + - uid: 12924 + components: + - type: Transform + pos: 32.5,16.5 + parent: 2 + - uid: 12925 + components: + - type: Transform + pos: 32.5,15.5 + parent: 2 + - uid: 12926 + components: + - type: Transform + pos: 74.5,59.5 + parent: 2 + - uid: 12927 + components: + - type: Transform + pos: -38.5,12.5 + parent: 2 + - uid: 14288 + components: + - type: Transform + pos: -20.5,23.5 + parent: 2 + - uid: 14289 + components: + - type: Transform + pos: -19.5,23.5 + parent: 2 + - uid: 18758 + components: + - type: Transform + pos: -16.5,31.5 + parent: 2 + - uid: 18759 + components: + - type: Transform + pos: -16.5,30.5 + parent: 2 +- proto: NitrousOxideCanister + entities: + - uid: 12928 + components: + - type: Transform + pos: 32.5,14.5 + parent: 2 + - uid: 14286 + components: + - type: Transform + pos: -20.5,22.5 + parent: 2 + - uid: 14287 + components: + - type: Transform + pos: -19.5,22.5 + parent: 2 +- proto: NitrousOxideTankFilled + entities: + - uid: 12929 + components: + - type: Transform + pos: 41.431168,21.58507 + parent: 2 + - uid: 12930 + components: + - type: Transform + pos: 58.536438,15.507032 + parent: 2 +- proto: NuclearBomb + entities: + - uid: 12931 + components: + - type: Transform + pos: 30.5,56.5 + parent: 2 +- proto: NukeDiskFake + entities: + - uid: 8352 + components: + - type: Transform + pos: 75.46282,31.57607 + parent: 2 +- proto: OperatingTable + entities: + - uid: 12932 + components: + - type: Transform + pos: 59.5,16.5 + parent: 2 + - uid: 12933 + components: + - type: Transform + pos: -29.5,54.5 + parent: 2 + - uid: 12934 + components: + - type: Transform + pos: -3.5,59.5 + parent: 2 + - uid: 12935 + components: + - type: Transform + pos: 11.5,40.5 + parent: 2 + - uid: 12936 + components: + - type: Transform + pos: 11.5,38.5 + parent: 2 +- proto: OracleSpawner + entities: + - uid: 19370 + components: + - type: Transform + pos: 54.5,25.5 + parent: 2 +- proto: OreBox + entities: + - uid: 12938 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 26.5,65.5 + parent: 2 + - uid: 12939 + components: + - type: Transform + pos: -17.5,2.5 + parent: 2 + - uid: 12940 + components: + - type: Transform + pos: -17.5,1.5 + parent: 2 +- proto: OreProcessor + entities: + - uid: 12941 + components: + - type: Transform + pos: -12.5,9.5 + parent: 2 +- proto: OxygenCanister + entities: + - uid: 12942 + components: + - type: Transform + pos: 37.5,23.5 + parent: 2 + - uid: 12943 + components: + - type: Transform + pos: -9.5,41.5 + parent: 2 + - uid: 12944 + components: + - type: Transform + pos: 18.5,5.5 + parent: 2 + - uid: 12945 + components: + - type: Transform + pos: 20.5,45.5 + parent: 2 + - uid: 12946 + components: + - type: Transform + pos: 21.5,43.5 + parent: 2 + - uid: 12947 + components: + - type: Transform + pos: -14.5,-6.5 + parent: 2 + - uid: 12948 + components: + - type: Transform + pos: 33.5,16.5 + parent: 2 + - uid: 12949 + components: + - type: Transform + pos: 33.5,15.5 + parent: 2 + - uid: 12950 + components: + - type: Transform + pos: 73.5,59.5 + parent: 2 + - uid: 12951 + components: + - type: Transform + pos: -38.5,16.5 + parent: 2 +- proto: PaintingSadClown + entities: + - uid: 12952 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 42.5,46.5 + parent: 2 +- proto: Paper + entities: + - uid: 12953 + components: + - type: Transform + pos: -31.493675,60.469395 + parent: 2 + - uid: 12954 + components: + - type: Transform + pos: -31.395414,60.525505 + parent: 2 + - uid: 12955 + components: + - type: Transform + pos: -27.436836,60.385227 + parent: 2 + - uid: 12956 + components: + - type: Transform + pos: -27.324537,60.455364 + parent: 2 + - uid: 12957 + components: + - type: Transform + pos: 9.6792,60.519764 + parent: 2 + - uid: 12958 + components: + - type: Transform + pos: 9.468637,60.435596 + parent: 2 +- proto: PaperBin10 + entities: + - uid: 12959 + components: + - type: Transform + pos: 6.5,73.5 + parent: 2 +- proto: PaperBin20 + entities: + - uid: 8115 + components: + - type: Transform + pos: 72.5,29.5 + parent: 2 + - uid: 12960 + components: + - type: Transform + pos: 6.5,12.5 + parent: 2 + - uid: 12961 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -1.5,15.5 + parent: 2 + - uid: 12962 + components: + - type: Transform + pos: -5.5,29.5 + parent: 2 + - uid: 12963 + components: + - type: Transform + pos: -20.5,53.5 + parent: 2 + - uid: 12964 + components: + - type: Transform + pos: -24.5,52.5 + parent: 2 + - uid: 12965 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -21.5,67.5 + parent: 2 + - uid: 12966 + components: + - type: Transform + pos: 1.5,60.5 + parent: 2 + - uid: 12967 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 18.5,59.5 + parent: 2 + - uid: 12968 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 19.5,55.5 + parent: 2 + - uid: 12969 + components: + - type: Transform + pos: 16.5,54.5 + parent: 2 + - uid: 12970 + components: + - type: Transform + pos: 27.5,35.5 + parent: 2 + - uid: 12971 + components: + - type: Transform + pos: 71.5,38.5 + parent: 2 + - uid: 12972 + components: + - type: Transform + pos: 68.5,40.5 + parent: 2 + - uid: 12973 + components: + - type: Transform + pos: 82.5,24.5 + parent: 2 +- proto: PaperOffice + entities: + - uid: 358 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 72.485115,28.520872 + parent: 2 + - uid: 481 + components: + - type: Transform + pos: 33.243618,5.674018 + parent: 2 + - uid: 484 + components: + - type: Transform + pos: 33.354378,5.6265497 + parent: 2 + - uid: 486 + components: + - type: Transform + pos: 33.401844,5.4841447 + parent: 2 + - uid: 487 + components: + - type: Transform + pos: 33.48096,5.5157905 + parent: 2 + - uid: 830 + components: + - type: Transform + pos: 33.306908,5.499967 + parent: 2 + - uid: 12975 + components: + - type: Transform + pos: 9.665319,12.67992 + parent: 2 + - uid: 12976 + components: + - type: Transform + pos: 9.647387,12.67992 + parent: 2 + - uid: 12977 + components: + - type: Transform + pos: 76.21128,37.417156 + parent: 2 + - uid: 12978 + components: + - type: Transform + pos: 76.21128,37.417156 + parent: 2 + - uid: 12979 + components: + - type: Transform + pos: 76.21128,37.417156 + parent: 2 + - uid: 12980 + components: + - type: Transform + pos: 76.21128,37.417156 + parent: 2 + - uid: 12981 + components: + - type: Transform + pos: 76.13859,37.692505 + parent: 2 + - uid: 12982 + components: + - type: Transform + pos: 76.064514,37.840652 + parent: 2 + - uid: 12983 + components: + - type: Transform + pos: 76.504326,37.581394 + parent: 2 + - uid: 12984 + components: + - type: Transform + pos: 76.49044,37.54899 + parent: 2 + - uid: 12985 + components: + - type: Transform + pos: 76.171,37.359173 + parent: 2 + - uid: 12986 + components: + - type: Transform + pos: 76.49044,37.562874 + parent: 2 + - uid: 12987 + components: + - type: Transform + pos: 76.45803,37.484173 + parent: 2 + - uid: 15284 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 72.406006,28.663277 + parent: 2 + - uid: 15387 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 72.45347,28.647455 + parent: 2 + - uid: 15412 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 72.45347,28.56834 + parent: 2 + - uid: 17952 + components: + - type: Transform + pos: 33.306908,5.4841447 + parent: 2 +- proto: PartRodMetal + entities: + - uid: 7299 + components: + - type: Transform + parent: 7298 + - type: Physics + angularDamping: 0 + linearDamping: 0 + canCollide: False + - type: InsideEntityStorage + - uid: 7300 + components: + - type: Transform + parent: 7298 + - type: Physics + angularDamping: 0 + linearDamping: 0 + canCollide: False + - type: InsideEntityStorage + - uid: 7301 + components: + - type: Transform + parent: 7298 + - type: Physics + angularDamping: 0 + linearDamping: 0 + canCollide: False + - type: InsideEntityStorage + - uid: 7302 + components: + - type: Transform + parent: 7298 + - type: Physics + angularDamping: 0 + linearDamping: 0 + canCollide: False + - type: InsideEntityStorage + - uid: 12992 + components: + - type: Transform + pos: -24.247482,43.434326 + parent: 2 + - uid: 12993 + components: + - type: Transform + pos: -24.233444,43.434326 + parent: 2 + - uid: 12994 + components: + - type: Transform + pos: -24.233444,43.434326 + parent: 2 + - uid: 12995 + components: + - type: Transform + pos: 50.564972,-1.2687263 + parent: 2 + - uid: 12996 + components: + - type: Transform + pos: 75.62877,62.543827 + parent: 2 + - uid: 12997 + components: + - type: Transform + pos: 75.62877,62.543827 + parent: 2 + - uid: 12998 + components: + - type: Transform + pos: 71.54807,42.607285 + parent: 2 + - uid: 12999 + components: + - type: Transform + pos: 29.53992,62.576374 + parent: 2 + - uid: 13000 + components: + - type: Transform + pos: -37.44304,34.71714 + parent: 2 + - uid: 13001 + components: + - type: Transform + pos: -14.5,-1.5 + parent: 2 +- proto: Pen + entities: + - uid: 892 + components: + - type: Transform + parent: 883 + - type: Physics + angularDamping: 0 + linearDamping: 0 + canCollide: False + - type: InsideEntityStorage + - uid: 13002 + components: + - type: Transform + pos: 1.4256108,15.600878 + parent: 2 + - uid: 13003 + components: + - type: Transform + pos: -1.5210662,15.664534 + parent: 2 + - uid: 13004 + components: + - type: Transform + pos: -5.521473,29.62905 + parent: 2 + - uid: 13005 + components: + - type: Transform + pos: -24.42566,52.50472 + parent: 2 + - uid: 13006 + components: + - type: Transform + pos: -21.50571,67.66511 + parent: 2 + - uid: 13007 + components: + - type: Transform + pos: -31.634052,60.792034 + parent: 2 + - uid: 13008 + components: + - type: Transform + pos: -27.577213,60.76398 + parent: 2 + - uid: 13009 + components: + - type: Transform + pos: 9.482676,60.730183 + parent: 2 + - uid: 13010 + components: + - type: Transform + pos: 19.420622,55.291016 + parent: 2 + - uid: 13011 + components: + - type: Transform + pos: 16.893871,54.56156 + parent: 2 + - uid: 13012 + components: + - type: Transform + pos: 22.547556,23.47561 + parent: 2 + - uid: 13013 + components: + - type: Transform + pos: 27.569103,35.5409 + parent: 2 + - uid: 13014 + components: + - type: Transform + pos: 18.38041,39.799717 + parent: 2 + - uid: 13015 + components: + - type: Transform + pos: 71.449234,38.55362 + parent: 2 + - uid: 13016 + components: + - type: Transform + pos: 71.63172,38.651814 + parent: 2 + - uid: 13017 + components: + - type: Transform + pos: 82.64236,24.572807 + parent: 2 +- proto: PenLightBase + entities: + - uid: 255 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 72.358536,28.425936 + parent: 2 + - uid: 476 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 33.797413,5.610727 + parent: 2 + - uid: 893 + components: + - type: Transform + parent: 883 + - type: Physics + angularDamping: 0 + linearDamping: 0 + canCollide: False + - type: InsideEntityStorage + - uid: 894 + components: + - type: Transform + parent: 883 + - type: Physics + angularDamping: 0 + linearDamping: 0 + canCollide: False + - type: InsideEntityStorage +- proto: PersonalAI + entities: + - uid: 13020 + components: + - type: Transform + pos: 53.373207,14.552109 + parent: 2 + - uid: 13021 + components: + - type: Transform + pos: 24.469769,12.325003 + parent: 2 +- proto: PianoInstrument + entities: + - uid: 13022 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 38.5,39.5 + parent: 2 +- proto: PinpointerNuclear + entities: + - uid: 13023 + components: + - type: Transform + pos: 29.502483,55.605114 + parent: 2 + - uid: 13024 + components: + - type: Transform + pos: 75.4804,31.589834 + parent: 2 +- proto: PlasmaCanister + entities: + - uid: 13025 + components: + - type: Transform + pos: 33.5,14.5 + parent: 2 + - uid: 13026 + components: + - type: Transform + pos: 32.5,13.5 + parent: 2 + - uid: 13027 + components: + - type: Transform + pos: 33.5,13.5 + parent: 2 + - uid: 13028 + components: + - type: Transform + pos: -28.5,2.5 + parent: 2 + - uid: 14283 + components: + - type: Transform + pos: -19.5,20.5 + parent: 2 +- proto: PlasticFlapsAirtightClear + entities: + - uid: 13029 + components: + - type: Transform + pos: 21.5,64.5 + parent: 2 + - uid: 13030 + components: + - type: Transform + pos: 21.5,67.5 + parent: 2 + - uid: 13031 + components: + - type: Transform + pos: 9.5,0.5 + parent: 2 + - uid: 13032 + components: + - type: Transform + pos: 2.5,2.5 + parent: 2 + - uid: 13033 + components: + - type: Transform + pos: 2.5,0.5 + parent: 2 + - uid: 13034 + components: + - type: Transform + pos: -1.5,2.5 + parent: 2 + - uid: 13035 + components: + - type: Transform + pos: -1.5,0.5 + parent: 2 + - uid: 13036 + components: + - type: Transform + pos: 33.5,-2.5 + parent: 2 +- proto: PlasticFlapsAirtightOpaque + entities: + - uid: 13037 + components: + - type: Transform + pos: -4.5,67.5 + parent: 2 + - uid: 13038 + components: + - type: Transform + pos: 22.5,44.5 + parent: 2 +- proto: PlushieTrystan + entities: + - uid: 8274 + components: + - type: Transform + pos: 74.87769,28.536694 + parent: 2 +- proto: PortableFlasher + entities: + - uid: 13039 + components: + - type: Transform + pos: -20.5,63.5 + parent: 2 + - uid: 13040 + components: + - type: Transform + pos: -20.5,64.5 + parent: 2 +- proto: PortableGeneratorJrPacman + entities: + - uid: 19604 + components: + - type: Transform + pos: 26.5,6.5 + parent: 2 + - uid: 19605 + components: + - type: Transform + pos: 13.5,5.5 + parent: 2 + - uid: 19606 + components: + - type: Transform + pos: -17.5,10.5 + parent: 2 + - uid: 19607 + components: + - type: Transform + pos: -21.5,25.5 + parent: 2 + - uid: 19608 + components: + - type: Transform + pos: -8.5,31.5 + parent: 2 + - uid: 19609 + components: + - type: Transform + pos: -10.5,44.5 + parent: 2 + - uid: 19610 + components: + - type: Transform + pos: -3.5,68.5 + parent: 2 + - uid: 19611 + components: + - type: Transform + pos: 43.5,60.5 + parent: 2 + - uid: 19612 + components: + - type: Transform + pos: 74.5,50.5 + parent: 2 + - uid: 19613 + components: + - type: Transform + pos: 75.5,19.5 + parent: 2 + - uid: 19614 + components: + - type: Transform + pos: 54.5,10.5 + parent: 2 + - uid: 19615 + components: + - type: Transform + pos: 37.5,21.5 + parent: 2 +- proto: PortableGeneratorPacman + entities: + - uid: 13041 + components: + - type: Transform + pos: -35.5,39.5 + parent: 2 +- proto: PortableGeneratorSuperPacman + entities: + - uid: 13042 + components: + - type: Transform + pos: -33.5,39.5 + parent: 2 +- proto: PortableScrubber + entities: + - uid: 13043 + components: + - type: Transform + pos: -15.5,18.5 + parent: 2 + - uid: 13044 + components: + - type: Transform + pos: -14.5,18.5 + parent: 2 + - uid: 18644 + components: + - type: Transform + pos: -5.5,19.5 + parent: 2 + - uid: 18645 + components: + - type: Transform + pos: -4.5,19.5 + parent: 2 +- proto: PosterContrabandBorgFancy + entities: + - uid: 13045 + components: + - type: Transform + pos: 22.5,-13.5 + parent: 2 +- proto: PosterContrabandBorgFancyv2 + entities: + - uid: 13046 + components: + - type: Transform + pos: 22.5,-9.5 + parent: 2 +- proto: PosterContrabandBountyHunters + entities: + - uid: 19515 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -36.5,66.5 + parent: 2 +- proto: PosterContrabandBustyBackdoorExoBabes6 + entities: + - uid: 19516 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -26.5,69.5 + parent: 2 +- proto: PosterContrabandClown + entities: + - uid: 13047 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 40.5,46.5 + parent: 2 +- proto: PosterContrabandCommunistState + entities: + - uid: 19475 + components: + - type: Transform + pos: -31.5,68.5 + parent: 2 + - uid: 19488 + components: + - type: Transform + pos: -31.5,67.5 + parent: 2 + - uid: 19489 + components: + - type: Transform + pos: -30.5,68.5 + parent: 2 + - uid: 19490 + components: + - type: Transform + pos: -30.5,67.5 + parent: 2 + - uid: 19517 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -36.5,70.5 + parent: 2 +- proto: PosterContrabandCybersun600 + entities: + - uid: 19518 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -26.5,75.5 + parent: 2 +- proto: PosterContrabandKosmicheskayaStantsiya + entities: + - uid: 19514 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -26.5,72.5 + parent: 2 +- proto: PosterLegitAnatomyPoster + entities: + - uid: 13048 + components: + - type: Transform + pos: 23.5,-8.5 + parent: 2 +- proto: PosterLegitBuild + entities: + - uid: 13049 + components: + - type: Transform + pos: 23.5,-14.5 + parent: 2 +- proto: PosterLegitHelpOthers + entities: + - uid: 13050 + components: + - type: Transform + pos: 25.5,-7.5 + parent: 2 +- proto: PosterLegitHereForYourSafety + entities: + - uid: 13051 + components: + - type: Transform + pos: 25.5,-15.5 + parent: 2 +- proto: PosterLegitIonRifle + entities: + - uid: 13052 + components: + - type: Transform + pos: 28.5,-15.5 + parent: 2 +- proto: PosterLegitJustAWeekAway + entities: + - uid: 13053 + components: + - type: Transform + pos: 28.5,-7.5 + parent: 2 + - uid: 19513 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -35.5,71.5 + parent: 2 +- proto: PosterLegitNanotrasenLogo + entities: + - uid: 17018 + components: + - type: Transform + pos: 84.5,34.5 + parent: 2 + - uid: 17019 + components: + - type: Transform + pos: 83.5,39.5 + parent: 2 + - uid: 17020 + components: + - type: Transform + pos: 83.5,29.5 + parent: 2 + - uid: 17915 + components: + - type: Transform + pos: 76.5,36.5 + parent: 2 + - uid: 17932 + components: + - type: Transform + pos: 76.5,32.5 + parent: 2 +- proto: PosterLegitNoERP + entities: + - uid: 13054 + components: + - type: Transform + pos: 30.5,-8.5 + parent: 2 +- proto: PosterLegitObey + entities: + - uid: 13055 + components: + - type: Transform + pos: 30.5,-14.5 + parent: 2 +- proto: PottedPlantRandom + entities: + - uid: 13056 + components: + - type: Transform + pos: 60.5,22.5 + parent: 2 + - uid: 13057 + components: + - type: Transform + pos: 54.5,24.5 + parent: 2 + - uid: 13058 + components: + - type: Transform + pos: 63.5,62.5 + parent: 2 + - uid: 13059 + components: + - type: Transform + pos: 65.5,62.5 + parent: 2 + - uid: 13060 + components: + - type: Transform + pos: 67.5,62.5 + parent: 2 + - uid: 13061 + components: + - type: Transform + pos: 76.5,4.5 + parent: 2 + - uid: 13062 + components: + - type: Transform + pos: 74.5,-1.5 + parent: 2 + - uid: 13063 + components: + - type: Transform + pos: 73.5,10.5 + parent: 2 +- proto: PottedPlantRandomPlastic + entities: + - uid: 13064 + components: + - type: Transform + pos: -12.5,20.5 + parent: 2 + - uid: 13065 + components: + - type: Transform + pos: 36.5,3.5 + parent: 2 + - uid: 13066 + components: + - type: Transform + pos: -27.5,63.5 + parent: 2 +- proto: PottedPlantRD + entities: + - uid: 13067 + components: + - type: Transform + pos: 51.5,18.5 + parent: 2 +- proto: PowerCellHighPrinted + entities: + - uid: 13068 + components: + - type: Transform + pos: -6.4236336,33.61549 + parent: 2 + - uid: 13069 + components: + - type: Transform + pos: -10.392436,45.573402 + parent: 2 + - uid: 13070 + components: + - type: Transform + pos: -5.401387,45.59849 + parent: 2 + - uid: 13071 + components: + - type: Transform + pos: -34.418022,30.601757 + parent: 2 + - uid: 13072 + components: + - type: Transform + pos: 56.582214,15.641888 + parent: 2 + - uid: 13073 + components: + - type: Transform + pos: 61.57205,28.535053 + parent: 2 + - uid: 13074 + components: + - type: Transform + pos: -37.38924,39.58497 + parent: 2 +- proto: PowerCellRecharger + entities: + - uid: 13075 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -6.5,33.5 + parent: 2 + - uid: 13076 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -10.5,45.5 + parent: 2 + - uid: 13077 + components: + - type: Transform + pos: -5.5,45.5 + parent: 2 + - uid: 13078 + components: + - type: Transform + pos: 1.5,12.5 + parent: 2 + - uid: 13079 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -34.5,30.5 + parent: 2 + - uid: 13080 + components: + - type: Transform + pos: 56.5,15.5 + parent: 2 + - uid: 13081 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 50.5,24.5 + parent: 2 + - uid: 13082 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 61.5,28.5 + parent: 2 + - uid: 13083 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 15.5,28.5 + parent: 2 + - uid: 13084 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 25.5,35.5 + parent: 2 + - uid: 13085 + components: + - type: Transform + pos: 74.5,62.5 + parent: 2 + - uid: 13086 + components: + - type: Transform + pos: 78.5,44.5 + parent: 2 + - uid: 13087 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 87.5,34.5 + parent: 2 + - uid: 13088 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -37.5,39.5 + parent: 2 + - uid: 13089 + components: + - type: Transform + pos: -5.5,4.5 + parent: 2 +- proto: PowerComputerCircuitboard + entities: + - uid: 13090 + components: + - type: Transform + pos: -8.449109,44.620697 + parent: 2 +- proto: Poweredlight + entities: + - uid: 732 + components: + - type: Transform + pos: 68.5,31.5 + parent: 2 + - uid: 7111 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 33.5,3.5 + parent: 2 + - uid: 8443 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 68.5,23.5 + parent: 2 + - uid: 12072 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -21.5,74.5 + parent: 2 + - uid: 12989 + components: + - type: Transform + pos: 74.5,25.5 + parent: 2 + - uid: 13019 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 64.5,31.5 + parent: 2 + - uid: 13091 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 5.5,31.5 + parent: 2 + - uid: 13092 + components: + - type: Transform + pos: 3.5,35.5 + parent: 2 + - uid: 13093 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -9.5,64.5 + parent: 2 + - uid: 13094 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -9.5,62.5 + parent: 2 + - uid: 13095 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -32.5,1.5 + parent: 2 + - uid: 13096 + components: + - type: Transform + pos: -34.5,30.5 + parent: 2 + - uid: 13097 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -28.5,1.5 + parent: 2 + - uid: 13098 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 42.5,16.5 + parent: 2 + - uid: 13099 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -13.5,34.5 + parent: 2 + - uid: 13100 + components: + - type: Transform + pos: -16.5,35.5 + parent: 2 + - uid: 13101 + components: + - type: Transform + pos: -19.5,41.5 + parent: 2 + - uid: 13102 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -26.5,34.5 + parent: 2 + - uid: 13103 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -19.5,25.5 + parent: 2 + - uid: 13104 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -15.5,22.5 + parent: 2 + - uid: 13105 + components: + - type: Transform + pos: -12.5,25.5 + parent: 2 + - uid: 13106 + components: + - type: Transform + pos: -12.5,25.5 + parent: 2 + - uid: 13107 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -26.5,27.5 + parent: 2 + - uid: 13108 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -16.5,33.5 + parent: 2 + - uid: 13109 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -16.5,37.5 + parent: 2 + - uid: 13110 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -22.5,31.5 + parent: 2 + - uid: 13111 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -26.5,41.5 + parent: 2 + - uid: 13112 + components: + - type: Transform + pos: -16.5,31.5 + parent: 2 + - uid: 13113 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -22.5,37.5 + parent: 2 + - uid: 13114 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -26.5,27.5 + parent: 2 + - uid: 13115 + components: + - type: Transform + pos: 34.5,55.5 + parent: 2 + - uid: 13117 + components: + - type: Transform + pos: -19.5,41.5 + parent: 2 + - uid: 13118 + components: + - type: Transform + pos: 24.5,21.5 + parent: 2 + - uid: 13119 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 12.5,11.5 + parent: 2 + - uid: 13120 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 62.5,62.5 + parent: 2 + - uid: 13121 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 74.5,59.5 + parent: 2 + - uid: 13122 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 64.5,22.5 + parent: 2 + - uid: 13123 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 60.5,62.5 + parent: 2 + - uid: 13124 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 63.5,1.5 + parent: 2 + - uid: 13125 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 67.5,6.5 + parent: 2 + - uid: 13126 + components: + - type: Transform + pos: 70.5,21.5 + parent: 2 + - uid: 13127 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 30.5,22.5 + parent: 2 + - uid: 13128 + components: + - type: Transform + pos: 21.5,15.5 + parent: 2 + - uid: 13131 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 69.5,4.5 + parent: 2 + - uid: 13132 + components: + - type: Transform + pos: 70.5,15.5 + parent: 2 + - uid: 13133 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 60.5,56.5 + parent: 2 + - uid: 13134 + components: + - type: Transform + pos: 50.5,27.5 + parent: 2 + - uid: 13135 + components: + - type: Transform + pos: 67.5,56.5 + parent: 2 + - uid: 13136 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 67.5,60.5 + parent: 2 + - uid: 13137 + components: + - type: Transform + pos: -5.5,21.5 + parent: 2 + - uid: 13138 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 71.5,57.5 + parent: 2 + - uid: 13139 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 87.5,31.5 + parent: 2 + - uid: 13140 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -34.5,7.5 + parent: 2 + - uid: 13141 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -33.5,10.5 + parent: 2 + - uid: 13142 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 41.5,13.5 + parent: 2 + - uid: 13143 + components: + - type: Transform + pos: -30.5,21.5 + parent: 2 + - uid: 13144 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -33.5,18.5 + parent: 2 + - uid: 13145 + components: + - type: Transform + pos: -25.5,19.5 + parent: 2 + - uid: 13146 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -26.5,7.5 + parent: 2 + - uid: 13147 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -24.5,14.5 + parent: 2 + - uid: 13148 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -30.5,23.5 + parent: 2 + - uid: 13149 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 51.5,13.5 + parent: 2 + - uid: 13150 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -30.5,28.5 + parent: 2 + - uid: 13151 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -38.5,25.5 + parent: 2 + - uid: 13152 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -24.5,25.5 + parent: 2 + - uid: 13153 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -24.5,23.5 + parent: 2 + - uid: 13154 + components: + - type: Transform + pos: -27.5,25.5 + parent: 2 + - uid: 13155 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -39.5,20.5 + parent: 2 + - uid: 13156 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -39.5,16.5 + parent: 2 + - uid: 13157 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -39.5,12.5 + parent: 2 + - uid: 13158 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -39.5,8.5 + parent: 2 + - uid: 13159 + components: + - type: Transform + pos: -21.5,3.5 + parent: 2 + - uid: 13160 + components: + - type: Transform + pos: -24.5,8.5 + parent: 2 + - uid: 13161 + components: + - type: Transform + pos: -20.5,9.5 + parent: 2 + - uid: 13162 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -18.5,4.5 + parent: 2 + - uid: 13163 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 50.5,21.5 + parent: 2 + - uid: 13164 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 41.5,7.5 + parent: 2 + - uid: 13165 + components: + - type: Transform + pos: 74.5,62.5 + parent: 2 + - uid: 13166 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -12.5,62.5 + parent: 2 + - uid: 13167 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -17.5,17.5 + parent: 2 + - uid: 13168 + components: + - type: Transform + pos: -19.5,23.5 + parent: 2 + - uid: 13169 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -10.5,21.5 + parent: 2 + - uid: 13170 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -5.5,23.5 + parent: 2 + - uid: 13171 + components: + - type: Transform + pos: -2.5,27.5 + parent: 2 + - uid: 13172 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -10.5,30.5 + parent: 2 + - uid: 13173 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -10.5,38.5 + parent: 2 + - uid: 13174 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -6.5,35.5 + parent: 2 + - uid: 13175 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -2.5,40.5 + parent: 2 + - uid: 13176 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -12.5,43.5 + parent: 2 + - uid: 13177 + components: + - type: Transform + pos: -24.5,46.5 + parent: 2 + - uid: 13178 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -20.5,43.5 + parent: 2 + - uid: 13179 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -14.5,64.5 + parent: 2 + - uid: 13180 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -23.5,51.5 + parent: 2 + - uid: 13181 + components: + - type: Transform + pos: -19.5,70.5 + parent: 2 + - uid: 13182 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -19.5,62.5 + parent: 2 + - uid: 13183 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -4.5,51.5 + parent: 2 + - uid: 13184 + components: + - type: Transform + pos: -6.5,56.5 + parent: 2 + - uid: 13185 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 0.5,55.5 + parent: 2 + - uid: 13186 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 3.5,43.5 + parent: 2 + - uid: 13187 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 6.5,54.5 + parent: 2 + - uid: 13188 + components: + - type: Transform + pos: 7.5,49.5 + parent: 2 + - uid: 13189 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -1.5,46.5 + parent: 2 + - uid: 13190 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 1.5,30.5 + parent: 2 + - uid: 13191 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 1.5,39.5 + parent: 2 + - uid: 13192 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 4.5,19.5 + parent: 2 + - uid: 13193 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 12.5,16.5 + parent: 2 + - uid: 13194 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -1.5,23.5 + parent: 2 + - uid: 13195 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -0.5,51.5 + parent: 2 + - uid: 13196 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 0.5,58.5 + parent: 2 + - uid: 13197 + components: + - type: Transform + pos: -4.5,60.5 + parent: 2 + - uid: 13198 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -20.5,53.5 + parent: 2 + - uid: 13199 + components: + - type: Transform + pos: -25.5,58.5 + parent: 2 + - uid: 13200 + components: + - type: Transform + pos: -13.5,58.5 + parent: 2 + - uid: 13201 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -8.5,51.5 + parent: 2 + - uid: 13202 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 6.5,13.5 + parent: 2 + - uid: 13203 + components: + - type: Transform + pos: -8.5,14.5 + parent: 2 + - uid: 13204 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -15.5,9.5 + parent: 2 + - uid: 13205 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -5.5,10.5 + parent: 2 + - uid: 13206 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -1.5,12.5 + parent: 2 + - uid: 13207 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -3.5,5.5 + parent: 2 + - uid: 13208 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -1.5,16.5 + parent: 2 + - uid: 13209 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -13.5,11.5 + parent: 2 + - uid: 13210 + components: + - type: Transform + pos: 4.5,17.5 + parent: 2 + - uid: 13211 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 4.5,5.5 + parent: 2 + - uid: 13212 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -16.5,49.5 + parent: 2 + - uid: 13213 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -9.5,47.5 + parent: 2 + - uid: 13214 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -15.5,52.5 + parent: 2 + - uid: 13215 + components: + - type: Transform + pos: -14.5,70.5 + parent: 2 + - uid: 13216 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 78.5,22.5 + parent: 2 + - uid: 13217 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 83.5,31.5 + parent: 2 + - uid: 13218 + components: + - type: Transform + pos: -29.5,61.5 + parent: 2 + - uid: 13219 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 80.5,21.5 + parent: 2 + - uid: 13220 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 74.5,27.5 + parent: 2 + - uid: 13221 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 76.5,26.5 + parent: 2 + - uid: 13223 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 82.5,27.5 + parent: 2 + - uid: 13224 + components: + - type: Transform + pos: 79.5,35.5 + parent: 2 + - uid: 13225 + components: + - type: Transform + pos: 76.5,35.5 + parent: 2 + - uid: 13226 + components: + - type: Transform + pos: 71.5,35.5 + parent: 2 + - uid: 13227 + components: + - type: Transform + pos: 69.5,40.5 + parent: 2 + - uid: 13228 + components: + - type: Transform + pos: 87.5,37.5 + parent: 2 + - uid: 13229 + components: + - type: Transform + pos: 76.5,40.5 + parent: 2 + - uid: 13230 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 64.5,52.5 + parent: 2 + - uid: 13231 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 64.5,58.5 + parent: 2 + - uid: 13234 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 8.5,60.5 + parent: 2 + - uid: 13235 + components: + - type: Transform + pos: 13.5,62.5 + parent: 2 + - uid: 13236 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 16.5,54.5 + parent: 2 + - uid: 13237 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 18.5,62.5 + parent: 2 + - uid: 13238 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 14.5,57.5 + parent: 2 + - uid: 13239 + components: + - type: Transform + pos: 82.5,40.5 + parent: 2 + - uid: 13240 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 8.5,54.5 + parent: 2 + - uid: 13241 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 6.5,65.5 + parent: 2 + - uid: 13242 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 14.5,55.5 + parent: 2 + - uid: 13243 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 14.5,51.5 + parent: 2 + - uid: 13244 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 25.5,54.5 + parent: 2 + - uid: 13245 + components: + - type: Transform + pos: 20.5,49.5 + parent: 2 + - uid: 13246 + components: + - type: Transform + pos: 14.5,49.5 + parent: 2 + - uid: 13247 + components: + - type: Transform + pos: 21.5,58.5 + parent: 2 + - uid: 13248 + components: + - type: Transform + pos: -33.5,61.5 + parent: 2 + - uid: 13249 + components: + - type: Transform + pos: -21.5,70.5 + parent: 2 + - uid: 13250 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -31.5,55.5 + parent: 2 + - uid: 13251 + components: + - type: Transform + pos: -29.5,55.5 + parent: 2 + - uid: 13252 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -25.5,68.5 + parent: 2 + - uid: 13253 + components: + - type: Transform + pos: -30.5,58.5 + parent: 2 + - uid: 13254 + components: + - type: Transform + pos: -0.5,64.5 + parent: 2 + - uid: 13255 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -7.5,63.5 + parent: 2 + - uid: 13256 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -7.5,68.5 + parent: 2 + - uid: 13258 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -25.5,60.5 + parent: 2 + - uid: 13259 + components: + - type: Transform + pos: 19.5,40.5 + parent: 2 + - uid: 13260 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 15.5,43.5 + parent: 2 + - uid: 13261 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 11.5,39.5 + parent: 2 + - uid: 13262 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -32.5,52.5 + parent: 2 + - uid: 13263 + components: + - type: Transform + pos: 7.5,41.5 + parent: 2 + - uid: 13264 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 10.5,44.5 + parent: 2 + - uid: 13265 + components: + - type: Transform + pos: 54.5,40.5 + parent: 2 + - uid: 13266 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 53.5,33.5 + parent: 2 + - uid: 13267 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 59.5,43.5 + parent: 2 + - uid: 13268 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 43.5,39.5 + parent: 2 + - uid: 13269 + components: + - type: Transform + pos: 37.5,30.5 + parent: 2 + - uid: 13270 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 40.5,31.5 + parent: 2 + - uid: 13271 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -35.5,60.5 + parent: 2 + - uid: 13272 + components: + - type: Transform + pos: 47.5,45.5 + parent: 2 + - uid: 13273 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 54.5,42.5 + parent: 2 + - uid: 13274 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 52.5,46.5 + parent: 2 + - uid: 13275 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 62.5,38.5 + parent: 2 + - uid: 13276 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 62.5,43.5 + parent: 2 + - uid: 13277 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 50.5,48.5 + parent: 2 + - uid: 13278 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 35.5,28.5 + parent: 2 + - uid: 13279 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 39.5,25.5 + parent: 2 + - uid: 13280 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 46.5,47.5 + parent: 2 + - uid: 13281 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 44.5,30.5 + parent: 2 + - uid: 13282 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 36.5,32.5 + parent: 2 + - uid: 13283 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 31.5,31.5 + parent: 2 + - uid: 13284 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 49.5,50.5 + parent: 2 + - uid: 13285 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 56.5,31.5 + parent: 2 + - uid: 13286 + components: + - type: Transform + pos: 52.5,50.5 + parent: 2 + - uid: 13287 + components: + - type: Transform + pos: 51.5,54.5 + parent: 2 + - uid: 13288 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 41.5,39.5 + parent: 2 + - uid: 13289 + components: + - type: Transform + pos: 36.5,41.5 + parent: 2 + - uid: 13290 + components: + - type: Transform + pos: 51.5,31.5 + parent: 2 + - uid: 13291 + components: + - type: Transform + pos: 42.5,35.5 + parent: 2 + - uid: 13292 + components: + - type: Transform + pos: 63.5,35.5 + parent: 2 + - uid: 13293 + components: + - type: Transform + pos: 47.5,31.5 + parent: 2 + - uid: 13294 + components: + - type: Transform + pos: 52.5,27.5 + parent: 2 + - uid: 13295 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 62.5,31.5 + parent: 2 + - uid: 13296 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 58.5,28.5 + parent: 2 + - uid: 13297 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 49.5,16.5 + parent: 2 + - uid: 13298 + components: + - type: Transform + pos: 53.5,18.5 + parent: 2 + - uid: 13299 + components: + - type: Transform + pos: 39.5,17.5 + parent: 2 + - uid: 13300 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 40.5,21.5 + parent: 2 + - uid: 13301 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 35.5,17.5 + parent: 2 + - uid: 13302 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 32.5,15.5 + parent: 2 + - uid: 13303 + components: + - type: Transform + pos: 78.5,45.5 + parent: 2 + - uid: 13304 + components: + - type: Transform + pos: 31.5,11.5 + parent: 2 + - uid: 13305 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 68.5,44.5 + parent: 2 + - uid: 13306 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 70.5,44.5 + parent: 2 + - uid: 13307 + components: + - type: Transform + pos: 37.5,11.5 + parent: 2 + - uid: 13308 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 73.5,44.5 + parent: 2 + - uid: 13309 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 64.5,40.5 + parent: 2 + - uid: 13310 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 57.5,15.5 + parent: 2 + - uid: 13311 + components: + - type: Transform + pos: 50.5,11.5 + parent: 2 + - uid: 13312 + components: + - type: Transform + pos: 47.5,7.5 + parent: 2 + - uid: 13313 + components: + - type: Transform + pos: 57.5,22.5 + parent: 2 + - uid: 13314 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 45.5,-2.5 + parent: 2 + - uid: 13315 + components: + - type: Transform + pos: 53.5,4.5 + parent: 2 + - uid: 13316 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 57.5,-2.5 + parent: 2 + - uid: 13317 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 51.5,-8.5 + parent: 2 + - uid: 13318 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 44.5,12.5 + parent: 2 + - uid: 13319 + components: + - type: Transform + pos: 28.5,3.5 + parent: 2 + - uid: 13320 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 37.5,-1.5 + parent: 2 + - uid: 13321 + components: + - type: Transform + pos: 26.5,-0.5 + parent: 2 + - uid: 13322 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 23.5,1.5 + parent: 2 + - uid: 13323 + components: + - type: Transform + pos: 34.5,1.5 + parent: 2 + - uid: 13324 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 44.5,20.5 + parent: 2 + - uid: 13325 + components: + - type: Transform + pos: 83.5,44.5 + parent: 2 + - uid: 13326 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 16.5,37.5 + parent: 2 + - uid: 13327 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 40.5,44.5 + parent: 2 + - uid: 13328 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 31.5,58.5 + parent: 2 + - uid: 13329 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 31.5,41.5 + parent: 2 + - uid: 13330 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 27.5,55.5 + parent: 2 + - uid: 13331 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 30.5,46.5 + parent: 2 + - uid: 13332 + components: + - type: Transform + pos: 17.5,59.5 + parent: 2 + - uid: 13333 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 14.5,26.5 + parent: 2 + - uid: 13334 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 27.5,31.5 + parent: 2 + - uid: 13335 + components: + - type: Transform + pos: 29.5,29.5 + parent: 2 + - uid: 13336 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 9.5,23.5 + parent: 2 + - uid: 13337 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 27.5,38.5 + parent: 2 + - uid: 13338 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 25.5,26.5 + parent: 2 + - uid: 13339 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 19.5,28.5 + parent: 2 + - uid: 13340 + components: + - type: Transform + pos: 17.5,22.5 + parent: 2 + - uid: 13341 + components: + - type: Transform + pos: 22.5,28.5 + parent: 2 + - uid: 13342 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 22.5,36.5 + parent: 2 + - uid: 13343 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 6.5,26.5 + parent: 2 + - uid: 13344 + components: + - type: Transform + pos: -11.5,7.5 + parent: 2 + - uid: 13345 + components: + - type: Transform + pos: 14.5,32.5 + parent: 2 + - uid: 13346 + components: + - type: Transform + pos: 27.5,45.5 + parent: 2 + - uid: 13347 + components: + - type: Transform + pos: 23.5,45.5 + parent: 2 + - uid: 13348 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 38.5,44.5 + parent: 2 + - uid: 13349 + components: + - type: Transform + pos: 30.5,56.5 + parent: 2 + - uid: 13350 + components: + - type: Transform + pos: 32.5,51.5 + parent: 2 + - uid: 13351 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 39.5,47.5 + parent: 2 + - uid: 13352 + components: + - type: Transform + pos: 83.5,37.5 + parent: 2 + - uid: 13353 + components: + - type: Transform + pos: 68.5,11.5 + parent: 2 + - uid: 13354 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 73.5,13.5 + parent: 2 + - uid: 13355 + components: + - type: Transform + pos: 78.5,31.5 + parent: 2 + - uid: 13356 + components: + - type: Transform + pos: 76.5,5.5 + parent: 2 + - uid: 13357 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 72.5,-1.5 + parent: 2 + - uid: 13358 + components: + - type: Transform + pos: 73.5,31.5 + parent: 2 + - uid: 13359 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 23.5,8.5 + parent: 2 + - uid: 13360 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 17.5,15.5 + parent: 2 + - uid: 13361 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 19.5,17.5 + parent: 2 + - uid: 13362 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 30.5,17.5 + parent: 2 + - uid: 13363 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 30.5,14.5 + parent: 2 + - uid: 13364 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 16.5,17.5 + parent: 2 + - uid: 13365 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 45.5,3.5 + parent: 2 + - uid: 13366 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 57.5,3.5 + parent: 2 + - uid: 13367 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 72.5,23.5 + parent: 2 + - uid: 13368 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 46.5,21.5 + parent: 2 + - uid: 13369 + components: + - type: Transform + pos: -35.5,64.5 + parent: 2 + - uid: 13370 + components: + - type: Transform + pos: 58.5,-5.5 + parent: 2 + - uid: 13371 + components: + - type: Transform + pos: 51.5,-10.5 + parent: 2 + - uid: 13372 + components: + - type: Transform + pos: 58.5,8.5 + parent: 2 + - uid: 13373 + components: + - type: Transform + pos: 44.5,-5.5 + parent: 2 + - uid: 13374 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 32.5,18.5 + parent: 2 + - uid: 13375 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 20.5,23.5 + parent: 2 + - uid: 13376 + components: + - type: Transform + pos: 27.5,36.5 + parent: 2 + - uid: 13377 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 20.5,43.5 + parent: 2 + - uid: 13378 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 44.5,54.5 + parent: 2 + - uid: 13379 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 39.5,51.5 + parent: 2 + - uid: 13380 + components: + - type: Transform + pos: 63.5,16.5 + parent: 2 + - uid: 13381 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 62.5,10.5 + parent: 2 + - uid: 13382 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -30.5,34.5 + parent: 2 + - uid: 13383 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -37.5,34.5 + parent: 2 + - uid: 13384 + components: + - type: Transform + pos: -30.5,39.5 + parent: 2 + - uid: 13385 + components: + - type: Transform + pos: -37.5,39.5 + parent: 2 + - uid: 13386 + components: + - type: Transform + pos: -13.5,3.5 + parent: 2 + - uid: 13387 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -17.5,-1.5 + parent: 2 + - uid: 13388 + components: + - type: Transform + pos: -7.5,8.5 + parent: 2 + - uid: 13389 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -5.5,3.5 + parent: 2 + - uid: 13390 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 17.5,34.5 + parent: 2 + - uid: 13391 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -3.5,13.5 + parent: 2 + - uid: 13392 + components: + - type: Transform + pos: -6.5,17.5 + parent: 2 + - uid: 13393 + components: + - type: Transform + pos: -6.5,17.5 + parent: 2 + - uid: 13394 + components: + - type: Transform + pos: 5.5,35.5 + parent: 2 + - uid: 13395 + components: + - type: Transform + pos: 4.5,29.5 + parent: 2 + - uid: 13396 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -2.5,29.5 + parent: 2 + - uid: 13397 + components: + - type: Transform + pos: -4.5,31.5 + parent: 2 + - uid: 13398 + components: + - type: Transform + pos: -2.5,36.5 + parent: 2 + - uid: 13399 + components: + - type: Transform + pos: -7.5,41.5 + parent: 2 + - uid: 13400 + components: + - type: Transform + pos: -16.5,45.5 + parent: 2 + - uid: 13401 + components: + - type: Transform + pos: 55.5,7.5 + parent: 2 + - uid: 13402 + components: + - type: Transform + pos: 10.5,35.5 + parent: 2 + - uid: 13403 + components: + - type: Transform + pos: 4.5,35.5 + parent: 2 + - uid: 13404 + components: + - type: Transform + pos: 24.5,-8.5 + parent: 2 + - uid: 13405 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 24.5,-14.5 + parent: 2 + - uid: 13406 + components: + - type: Transform + pos: 29.5,-8.5 + parent: 2 + - uid: 13407 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 29.5,-14.5 + parent: 2 + - uid: 13408 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 23.5,-11.5 + parent: 2 + - uid: 13409 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 32.5,-9.5 + parent: 2 + - uid: 13410 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 32.5,-13.5 + parent: 2 + - uid: 13411 + components: + - type: Transform + pos: 37.5,-9.5 + parent: 2 + - uid: 13412 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 37.5,-13.5 + parent: 2 + - uid: 13413 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 32.5,-6.5 + parent: 2 + - uid: 13414 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 40.5,-8.5 + parent: 2 + - uid: 13415 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 40.5,-14.5 + parent: 2 + - uid: 13416 + components: + - type: Transform + pos: 38.5,-16.5 + parent: 2 + - uid: 13417 + components: + - type: Transform + pos: 32.5,-16.5 + parent: 2 + - uid: 13418 + components: + - type: Transform + pos: 22.5,-17.5 + parent: 2 + - uid: 13419 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 20.5,-15.5 + parent: 2 + - uid: 13420 + components: + - type: Transform + pos: 31.5,-17.5 + parent: 2 + - uid: 13421 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 20.5,-7.5 + parent: 2 + - uid: 13422 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 22.5,-5.5 + parent: 2 + - uid: 13423 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 31.5,-5.5 + parent: 2 + - uid: 13424 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 38.5,-6.5 + parent: 2 + - uid: 13433 + components: + - type: Transform + pos: 33.5,5.5 + parent: 2 + - uid: 13501 + components: + - type: Transform + pos: -35.5,70.5 + parent: 2 + - uid: 13983 + components: + - type: Transform + pos: -26.5,74.5 + parent: 2 + - uid: 13985 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -34.5,74.5 + parent: 2 + - uid: 16225 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -11.5,67.5 + parent: 2 + - uid: 17135 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -27.5,70.5 + parent: 2 + - uid: 19466 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -33.5,65.5 + parent: 2 + - uid: 19471 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -27.5,65.5 + parent: 2 + - uid: 19536 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -31.5,79.5 + parent: 2 +- proto: PoweredSmallLight + entities: + - uid: 12085 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -36.5,74.5 + parent: 2 + - uid: 13425 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 20.5,62.5 + parent: 2 + - uid: 13426 + components: + - type: Transform + pos: 11.5,8.5 + parent: 2 + - uid: 13427 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -37.5,54.5 + parent: 2 + - uid: 13430 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -8.5,70.5 + parent: 2 + - uid: 13431 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -3.5,70.5 + parent: 2 + - uid: 13432 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -38.5,29.5 + parent: 2 + - uid: 13434 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -41.5,24.5 + parent: 2 + - uid: 13435 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -41.5,28.5 + parent: 2 + - uid: 13436 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -8.5,16.5 + parent: 2 + - uid: 13437 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -22.5,13.5 + parent: 2 + - uid: 13438 + components: + - type: Transform + pos: 8.5,5.5 + parent: 2 + - uid: 13439 + components: + - type: Transform + pos: 13.5,-0.5 + parent: 2 + - uid: 13440 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -31.5,30.5 + parent: 2 + - uid: 13441 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -1.5,1.5 + parent: 2 + - uid: 13442 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 2.5,1.5 + parent: 2 + - uid: 13443 + components: + - type: Transform + pos: 7.5,0.5 + parent: 2 + - uid: 13444 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 14.5,3.5 + parent: 2 + - uid: 13445 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -28.5,32.5 + parent: 2 + - uid: 13446 + components: + - type: Transform + pos: -21.5,49.5 + parent: 2 + - uid: 13447 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -28.5,39.5 + parent: 2 + - uid: 13448 + components: + - type: Transform + pos: -29.5,44.5 + parent: 2 + - uid: 13449 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -28.5,48.5 + parent: 2 + - uid: 13450 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -8.5,44.5 + parent: 2 + - uid: 13451 + components: + - type: Transform + pos: -4.5,45.5 + parent: 2 + - uid: 13452 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -2.5,42.5 + parent: 2 + - uid: 13453 + components: + - type: Transform + pos: -3.5,68.5 + parent: 2 + - uid: 13454 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -0.5,66.5 + parent: 2 + - uid: 13455 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -0.5,68.5 + parent: 2 + - uid: 13456 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 2.5,53.5 + parent: 2 + - uid: 13457 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 23.5,63.5 + parent: 2 + - uid: 13458 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 22.5,66.5 + parent: 2 + - uid: 13459 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 16.5,70.5 + parent: 2 + - uid: 13460 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 14.5,77.5 + parent: 2 + - uid: 13461 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -1.5,72.5 + parent: 2 + - uid: 13462 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 0.5,76.5 + parent: 2 + - uid: 13463 + components: + - type: Transform + pos: 8.5,79.5 + parent: 2 + - uid: 13464 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 12.5,75.5 + parent: 2 + - uid: 13465 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 9.5,70.5 + parent: 2 + - uid: 13466 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 3.5,70.5 + parent: 2 + - uid: 13467 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 11.5,67.5 + parent: 2 + - uid: 13468 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -28.5,46.5 + parent: 2 + - uid: 13469 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -38.5,56.5 + parent: 2 + - uid: 13470 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -41.5,57.5 + parent: 2 + - uid: 13471 + components: + - type: Transform + pos: -36.5,52.5 + parent: 2 + - uid: 13472 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -39.5,54.5 + parent: 2 + - uid: 13473 + components: + - type: Transform + pos: -19.5,15.5 + parent: 2 + - uid: 13474 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -7.5,59.5 + parent: 2 + - uid: 13475 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 1.5,67.5 + parent: 2 + - uid: 13476 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 8.5,66.5 + parent: 2 + - uid: 13477 + components: + - type: Transform + pos: 6.5,78.5 + parent: 2 + - uid: 13479 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 76.5,10.5 + parent: 2 + - uid: 13480 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 41.5,1.5 + parent: 2 + - uid: 13481 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 76.5,13.5 + parent: 2 + - uid: 13482 + components: + - type: Transform + pos: 75.5,20.5 + parent: 2 + - uid: 13483 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 81.5,19.5 + parent: 2 + - uid: 13484 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 83.5,46.5 + parent: 2 + - uid: 13485 + components: + - type: Transform + pos: 81.5,47.5 + parent: 2 + - uid: 13486 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 75.5,48.5 + parent: 2 + - uid: 13487 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 69.5,48.5 + parent: 2 + - uid: 13488 + components: + - type: Transform + pos: 69.5,52.5 + parent: 2 + - uid: 13489 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 74.5,52.5 + parent: 2 + - uid: 13490 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 78.5,50.5 + parent: 2 + - uid: 13491 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 77.5,55.5 + parent: 2 + - uid: 13492 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 73.5,57.5 + parent: 2 + - uid: 13493 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 62.5,22.5 + parent: 2 + - uid: 13494 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 58.5,25.5 + parent: 2 + - uid: 13495 + components: + - type: Transform + pos: 66.5,-1.5 + parent: 2 + - uid: 13496 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 78.5,13.5 + parent: 2 + - uid: 13497 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 73.5,-3.5 + parent: 2 + - uid: 13498 + components: + - type: Transform + pos: 61.5,18.5 + parent: 2 + - uid: 13499 + components: + - type: Transform + pos: 54.5,11.5 + parent: 2 + - uid: 13500 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 57.5,10.5 + parent: 2 + - uid: 13502 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 41.5,4.5 + parent: 2 + - uid: 13503 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 32.5,7.5 + parent: 2 + - uid: 13504 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 28.5,5.5 + parent: 2 + - uid: 13505 + components: + - type: Transform + pos: 19.5,6.5 + parent: 2 + - uid: 13506 + components: + - type: Transform + pos: 18.5,12.5 + parent: 2 + - uid: 13507 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 18.5,9.5 + parent: 2 + - uid: 13508 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 14.5,10.5 + parent: 2 + - uid: 13509 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 12.5,1.5 + parent: 2 + - uid: 13510 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -18.5,6.5 + parent: 2 + - uid: 13511 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -15.5,13.5 + parent: 2 + - uid: 13512 + components: + - type: Transform + pos: -1.5,77.5 + parent: 2 + - uid: 13513 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 8.5,63.5 + parent: 2 + - uid: 13514 + components: + - type: Transform + pos: 16.5,67.5 + parent: 2 + - uid: 13515 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 31.5,64.5 + parent: 2 + - uid: 13516 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 35.5,63.5 + parent: 2 + - uid: 13517 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 34.5,68.5 + parent: 2 + - uid: 13518 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 33.5,60.5 + parent: 2 + - uid: 13519 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 26.5,64.5 + parent: 2 + - uid: 13520 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 25.5,67.5 + parent: 2 + - uid: 13521 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 37.5,62.5 + parent: 2 + - uid: 13522 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 39.5,60.5 + parent: 2 + - uid: 13523 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 37.5,65.5 + parent: 2 + - uid: 13524 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 41.5,65.5 + parent: 2 + - uid: 13525 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 41.5,60.5 + parent: 2 + - uid: 13526 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 43.5,63.5 + parent: 2 + - uid: 13527 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 45.5,59.5 + parent: 2 + - uid: 13528 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 43.5,66.5 + parent: 2 + - uid: 13529 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 45.5,56.5 + parent: 2 + - uid: 13530 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 46.5,50.5 + parent: 2 + - uid: 13531 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 44.5,47.5 + parent: 2 + - uid: 13532 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 52.5,59.5 + parent: 2 + - uid: 13533 + components: + - type: Transform + pos: 52.5,57.5 + parent: 2 + - uid: 13534 + components: + - type: Transform + pos: 48.5,61.5 + parent: 2 + - uid: 13535 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 57.5,58.5 + parent: 2 + - uid: 13536 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 56.5,53.5 + parent: 2 + - uid: 13537 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 60.5,54.5 + parent: 2 + - uid: 13538 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 60.5,50.5 + parent: 2 + - uid: 13539 + components: + - type: Transform + pos: 58.5,50.5 + parent: 2 + - uid: 13540 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 62.5,46.5 + parent: 2 + - uid: 13541 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 20.5,60.5 + parent: 2 + - uid: 13542 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 44.5,23.5 + parent: 2 + - uid: 13543 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 38.5,22.5 + parent: 2 + - uid: 13544 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 35.5,19.5 + parent: 2 + - uid: 13545 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 5.5,23.5 + parent: 2 + - uid: 13546 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -17.5,-7.5 + parent: 2 + - uid: 13547 + components: + - type: Transform + pos: -13.5,-9.5 + parent: 2 + - uid: 13548 + components: + - type: Transform + pos: -14.5,-3.5 + parent: 2 + - uid: 13549 + components: + - type: Transform + pos: -18.5,-9.5 + parent: 2 + - uid: 13550 + components: + - type: Transform + pos: -12.5,-3.5 + parent: 2 + - uid: 13551 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -9.5,2.5 + parent: 2 + - uid: 13990 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -25.5,76.5 + parent: 2 + - uid: 14354 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -26.5,77.5 + parent: 2 + - uid: 17337 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -37.5,70.5 + parent: 2 + - uid: 19372 + components: + - type: Transform + pos: 44.5,10.5 + parent: 2 +- proto: Protolathe + entities: + - uid: 13553 + components: + - type: Transform + pos: -6.5,35.5 + parent: 2 + - uid: 13554 + components: + - type: Transform + pos: -1.5,12.5 + parent: 2 + - uid: 13555 + components: + - type: Transform + pos: -21.5,61.5 + parent: 2 + - uid: 13556 + components: + - type: Transform + pos: 57.5,15.5 + parent: 2 + - uid: 13557 + components: + - type: Transform + pos: 46.5,26.5 + parent: 2 +- proto: ProtolatheMachineCircuitboard + entities: + - uid: 13558 + components: + - type: Transform + pos: 49.466015,54.52799 + parent: 2 +- proto: ProximitySensor + entities: + - uid: 13559 + components: + - type: Transform + pos: 41.78739,8.348118 + parent: 2 + - uid: 13560 + components: + - type: Transform + pos: 41.608055,8.294355 + parent: 2 + - uid: 13561 + components: + - type: Transform + pos: 41.428722,8.366039 + parent: 2 + - uid: 13562 + components: + - type: Transform + pos: 41.41079,8.150986 + parent: 2 + - uid: 13563 + components: + - type: Transform + pos: 41.751526,8.150986 + parent: 2 +- proto: Puddle + entities: + - uid: 13564 + components: + - type: Transform + pos: 15.5,1.5 + parent: 2 + - uid: 13565 + components: + - type: Transform + pos: 14.5,2.5 + parent: 2 + - uid: 13566 + components: + - type: Transform + pos: 16.5,2.5 + parent: 2 +- proto: PuddleWatermelon + entities: + - uid: 13567 + components: + - type: Transform + pos: 62.5,51.5 + parent: 2 + - uid: 13568 + components: + - type: Transform + pos: 62.5,52.5 + parent: 2 + - uid: 13569 + components: + - type: Transform + pos: 61.5,51.5 + parent: 2 + - uid: 13570 + components: + - type: Transform + pos: 62.5,54.5 + parent: 2 + - uid: 13571 + components: + - type: Transform + pos: 60.5,50.5 + parent: 2 +- proto: Rack + entities: + - uid: 13572 + components: + - type: Transform + pos: 19.5,30.5 + parent: 2 + - uid: 13573 + components: + - type: Transform + pos: 15.5,32.5 + parent: 2 + - uid: 13574 + components: + - type: Transform + pos: 16.5,32.5 + parent: 2 + - uid: 13575 + components: + - type: Transform + pos: 17.5,32.5 + parent: 2 + - uid: 13576 + components: + - type: Transform + pos: -10.5,21.5 + parent: 2 + - uid: 13577 + components: + - type: Transform + pos: -11.5,18.5 + parent: 2 + - uid: 13578 + components: + - type: Transform + pos: -7.5,29.5 + parent: 2 + - uid: 13579 + components: + - type: Transform + pos: -5.5,40.5 + parent: 2 + - uid: 13580 + components: + - type: Transform + pos: -8.5,43.5 + parent: 2 + - uid: 13581 + components: + - type: Transform + pos: -8.5,44.5 + parent: 2 + - uid: 13582 + components: + - type: Transform + pos: -8.5,45.5 + parent: 2 + - uid: 13583 + components: + - type: Transform + pos: -5.5,43.5 + parent: 2 + - uid: 13584 + components: + - type: Transform + pos: -5.5,42.5 + parent: 2 + - uid: 13585 + components: + - type: Transform + pos: -4.5,42.5 + parent: 2 + - uid: 13586 + components: + - type: Transform + pos: -3.5,42.5 + parent: 2 + - uid: 13587 + components: + - type: Transform + pos: -2.5,42.5 + parent: 2 + - uid: 13588 + components: + - type: Transform + pos: -3.5,45.5 + parent: 2 + - uid: 13589 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -15.5,70.5 + parent: 2 + - uid: 13590 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -14.5,67.5 + parent: 2 + - uid: 13591 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -19.5,69.5 + parent: 2 + - uid: 13592 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -17.5,68.5 + parent: 2 + - uid: 13593 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -16.5,68.5 + parent: 2 + - uid: 13594 + components: + - type: Transform + pos: -18.5,70.5 + parent: 2 + - uid: 13595 + components: + - type: Transform + pos: -19.5,64.5 + parent: 2 + - uid: 13596 + components: + - type: Transform + pos: 10.5,8.5 + parent: 2 + - uid: 13597 + components: + - type: Transform + pos: 27.5,3.5 + parent: 2 + - uid: 13599 + components: + - type: Transform + pos: 59.5,28.5 + parent: 2 + - uid: 13600 + components: + - type: Transform + pos: 60.5,28.5 + parent: 2 + - uid: 13601 + components: + - type: Transform + pos: 27.5,5.5 + parent: 2 + - uid: 13602 + components: + - type: Transform + pos: 29.5,54.5 + parent: 2 + - uid: 13603 + components: + - type: Transform + pos: 29.5,55.5 + parent: 2 + - uid: 13604 + components: + - type: Transform + pos: 44.5,54.5 + parent: 2 + - uid: 13605 + components: + - type: Transform + pos: 44.5,53.5 + parent: 2 + - uid: 13606 + components: + - type: Transform + pos: 35.5,45.5 + parent: 2 + - uid: 13607 + components: + - type: Transform + pos: 44.5,59.5 + parent: 2 + - uid: 13608 + components: + - type: Transform + pos: 45.5,59.5 + parent: 2 + - uid: 13609 + components: + - type: Transform + pos: 75.5,62.5 + parent: 2 + - uid: 13610 + components: + - type: Transform + pos: 74.5,45.5 + parent: 2 + - uid: 13611 + components: + - type: Transform + pos: 74.5,42.5 + parent: 2 + - uid: 13612 + components: + - type: Transform + pos: 78.5,42.5 + parent: 2 + - uid: 13613 + components: + - type: Transform + pos: 74.5,21.5 + parent: 2 + - uid: 13614 + components: + - type: Transform + pos: 69.5,48.5 + parent: 2 + - uid: 13615 + components: + - type: Transform + pos: 70.5,48.5 + parent: 2 + - uid: 13616 + components: + - type: Transform + pos: 69.5,52.5 + parent: 2 + - uid: 13617 + components: + - type: Transform + pos: 70.5,52.5 + parent: 2 + - uid: 13618 + components: + - type: Transform + pos: 68.5,52.5 + parent: 2 + - uid: 13619 + components: + - type: Transform + pos: 68.5,48.5 + parent: 2 + - uid: 13620 + components: + - type: Transform + pos: 68.5,50.5 + parent: 2 + - uid: 13621 + components: + - type: Transform + pos: -18.5,13.5 + parent: 2 + - uid: 13622 + components: + - type: Transform + pos: -17.5,13.5 + parent: 2 + - uid: 13623 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 18.5,67.5 + parent: 2 + - uid: 13624 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 15.5,69.5 + parent: 2 + - uid: 13625 + components: + - type: Transform + pos: 29.5,62.5 + parent: 2 + - uid: 13626 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 28.5,66.5 + parent: 2 + - uid: 13627 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 23.5,63.5 + parent: 2 + - uid: 13628 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 23.5,62.5 + parent: 2 + - uid: 13629 + components: + - type: Transform + pos: 39.5,66.5 + parent: 2 + - uid: 13630 + components: + - type: Transform + pos: -17.5,-3.5 + parent: 2 + - uid: 13631 + components: + - type: Transform + pos: -17.5,-0.5 + parent: 2 + - uid: 13632 + components: + - type: Transform + pos: 14.5,32.5 + parent: 2 +- proto: RadiationCollector + entities: + - uid: 13633 + components: + - type: Transform + pos: -22.5,35.5 + parent: 2 + - uid: 13634 + components: + - type: Transform + pos: -22.5,33.5 + parent: 2 + - uid: 13635 + components: + - type: Transform + pos: -20.5,32.5 + parent: 2 + - uid: 13636 + components: + - type: Transform + pos: -20.5,31.5 + parent: 2 + - uid: 13637 + components: + - type: Transform + pos: -18.5,32.5 + parent: 2 + - uid: 13638 + components: + - type: Transform + pos: -21.5,35.5 + parent: 2 + - uid: 13639 + components: + - type: Transform + pos: -21.5,33.5 + parent: 2 + - uid: 13640 + components: + - type: Transform + pos: -18.5,36.5 + parent: 2 + - uid: 13641 + components: + - type: Transform + pos: -20.5,36.5 + parent: 2 + - uid: 13642 + components: + - type: Transform + pos: -20.5,37.5 + parent: 2 + - uid: 13643 + components: + - type: Transform + pos: -18.5,37.5 + parent: 2 + - uid: 13644 + components: + - type: Transform + pos: -18.5,31.5 + parent: 2 +- proto: Railing + entities: + - uid: 13646 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 11.5,72.5 + parent: 2 + - uid: 13647 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 11.5,73.5 + parent: 2 + - uid: 13648 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 11.5,74.5 + parent: 2 + - uid: 13649 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 11.5,75.5 + parent: 2 + - uid: 13650 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 82.5,32.5 + parent: 2 + - uid: 13651 + components: + - type: Transform + pos: 82.5,36.5 + parent: 2 + - uid: 13652 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 83.5,32.5 + parent: 2 + - uid: 13653 + components: + - type: Transform + pos: 83.5,36.5 + parent: 2 + - uid: 13654 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 84.5,33.5 + parent: 2 + - uid: 13655 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 84.5,34.5 + parent: 2 + - uid: 13656 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 84.5,35.5 + parent: 2 + - uid: 13657 + components: + - type: Transform + pos: 71.5,11.5 + parent: 2 + - uid: 13658 + components: + - type: Transform + pos: 72.5,11.5 + parent: 2 + - uid: 13659 + components: + - type: Transform + pos: 73.5,11.5 + parent: 2 + - uid: 13660 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 74.5,10.5 + parent: 2 + - uid: 13661 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 58.5,15.5 + parent: 2 + - uid: 13662 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 59.5,17.5 + parent: 2 + - uid: 13663 + components: + - type: Transform + pos: 72.5,61.5 + parent: 2 + - uid: 13664 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 72.5,59.5 + parent: 2 + - uid: 13666 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 9.5,63.5 + parent: 2 + - uid: 13667 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 60.5,48.5 + parent: 2 + - uid: 13668 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 32.5,60.5 + parent: 2 + - uid: 13669 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 34.5,60.5 + parent: 2 + - uid: 13670 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 55.5,58.5 + parent: 2 + - uid: 13671 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -12.5,-10.5 + parent: 2 + - uid: 13672 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -12.5,-11.5 + parent: 2 + - uid: 13673 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -12.5,-12.5 + parent: 2 + - uid: 13674 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -18.5,-9.5 + parent: 2 + - uid: 13675 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -18.5,-10.5 + parent: 2 + - uid: 13676 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -18.5,-11.5 + parent: 2 + - uid: 13677 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -18.5,-12.5 + parent: 2 +- proto: RailingCornerSmall + entities: + - uid: 9248 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -19.5,41.5 + parent: 2 + - uid: 9362 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -24.5,41.5 + parent: 2 + - uid: 11168 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -24.5,39.5 + parent: 2 + - uid: 11710 + components: + - type: Transform + pos: -19.5,39.5 + parent: 2 + - uid: 13683 + components: + - type: Transform + pos: 84.5,32.5 + parent: 2 + - uid: 13684 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 84.5,36.5 + parent: 2 + - uid: 13685 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 74.5,11.5 + parent: 2 +- proto: RandomArtifactSpawner + entities: + - uid: 13686 + components: + - type: Transform + pos: 40.5,10.5 + parent: 2 + - uid: 13687 + components: + - type: Transform + pos: 31.5,10.5 + parent: 2 +- proto: RandomBoard + entities: + - uid: 13688 + components: + - type: Transform + pos: -2.5,42.5 + parent: 2 + - uid: 13689 + components: + - type: Transform + pos: -2.5,42.5 + parent: 2 + - uid: 13690 + components: + - type: Transform + pos: -3.5,42.5 + parent: 2 + - uid: 13691 + components: + - type: Transform + pos: -3.5,42.5 + parent: 2 + - uid: 13692 + components: + - type: Transform + pos: -4.5,42.5 + parent: 2 + - uid: 13693 + components: + - type: Transform + pos: -4.5,42.5 + parent: 2 + - uid: 13694 + components: + - type: Transform + pos: -5.5,42.5 + parent: 2 + - uid: 13695 + components: + - type: Transform + pos: -5.5,42.5 + parent: 2 + - uid: 13696 + components: + - type: Transform + pos: -5.5,43.5 + parent: 2 + - uid: 13697 + components: + - type: Transform + pos: -5.5,43.5 + parent: 2 + - uid: 13698 + components: + - type: Transform + pos: -3.5,45.5 + parent: 2 + - uid: 13699 + components: + - type: Transform + pos: -3.5,45.5 + parent: 2 + - uid: 13700 + components: + - type: Transform + pos: 37.5,30.5 + parent: 2 + - uid: 13701 + components: + - type: Transform + pos: 38.5,30.5 + parent: 2 + - uid: 13702 + components: + - type: Transform + pos: 37.5,30.5 + parent: 2 + - uid: 13703 + components: + - type: Transform + pos: 38.5,30.5 + parent: 2 + - uid: 13704 + components: + - type: Transform + pos: 42.5,28.5 + parent: 2 + - uid: 13705 + components: + - type: Transform + pos: 42.5,28.5 + parent: 2 + - uid: 13706 + components: + - type: Transform + pos: 38.5,30.5 + parent: 2 + - uid: 13707 + components: + - type: Transform + pos: 37.5,30.5 + parent: 2 + - uid: 13708 + components: + - type: Transform + pos: 42.5,28.5 + parent: 2 +- proto: RandomDrinkBottle + entities: + - uid: 19529 + components: + - type: Transform + pos: -23.5,73.5 + parent: 2 + - uid: 19530 + components: + - type: Transform + pos: -23.5,73.5 + parent: 2 +- proto: RandomDrinkGlass + entities: + - uid: 13709 + components: + - type: Transform + pos: 63.5,14.5 + parent: 2 + - uid: 13710 + components: + - type: Transform + pos: 63.5,15.5 + parent: 2 + - uid: 19531 + components: + - type: Transform + pos: -23.5,73.5 + parent: 2 + - uid: 19532 + components: + - type: Transform + pos: -23.5,73.5 + parent: 2 +- proto: RandomFoodBakedSingle + entities: + - uid: 19525 + components: + - type: Transform + pos: -24.5,73.5 + parent: 2 + - uid: 19526 + components: + - type: Transform + pos: -24.5,73.5 + parent: 2 +- proto: RandomFoodBakedWhole + entities: + - uid: 13711 + components: + - type: Transform + pos: 54.5,37.5 + parent: 2 +- proto: RandomFoodMeal + entities: + - uid: 13712 + components: + - type: Transform + pos: 53.5,37.5 + parent: 2 + - uid: 13713 + components: + - type: Transform + pos: 63.5,15.5 + parent: 2 + - uid: 13714 + components: + - type: Transform + pos: 63.5,14.5 + parent: 2 + - uid: 13715 + components: + - type: Transform + pos: 60.5,54.5 + parent: 2 + - uid: 13716 + components: + - type: Transform + pos: 62.5,50.5 + parent: 2 + - uid: 13717 + components: + - type: Transform + pos: 62.5,50.5 + parent: 2 + - uid: 19528 + components: + - type: Transform + pos: -24.5,73.5 + parent: 2 +- proto: RandomFoodSingle + entities: + - uid: 19527 + components: + - type: Transform + pos: -24.5,73.5 + parent: 2 +- proto: RandomPosterContraband + entities: + - uid: 18943 + components: + - type: Transform + pos: 17.5,-0.5 + parent: 2 + - uid: 19051 + components: + - type: Transform + pos: -34.5,65.5 + parent: 2 + - uid: 19052 + components: + - type: Transform + pos: -36.5,60.5 + parent: 2 + - uid: 19054 + components: + - type: Transform + pos: -26.5,65.5 + parent: 2 + - uid: 19055 + components: + - type: Transform + pos: -30.5,62.5 + parent: 2 + - uid: 19094 + components: + - type: Transform + pos: -14.5,-8.5 + parent: 2 + - uid: 19095 + components: + - type: Transform + pos: -17.5,-8.5 + parent: 2 + - uid: 19170 + components: + - type: Transform + pos: 80.5,48.5 + parent: 2 + - uid: 19171 + components: + - type: Transform + pos: 77.5,50.5 + parent: 2 + - uid: 19172 + components: + - type: Transform + pos: 78.5,52.5 + parent: 2 + - uid: 19173 + components: + - type: Transform + pos: 77.5,54.5 + parent: 2 + - uid: 19174 + components: + - type: Transform + pos: 76.5,57.5 + parent: 2 + - uid: 19175 + components: + - type: Transform + pos: 79.5,54.5 + parent: 2 + - uid: 19176 + components: + - type: Transform + pos: 73.5,55.5 + parent: 2 + - uid: 19177 + components: + - type: Transform + pos: 74.5,51.5 + parent: 2 + - uid: 19178 + components: + - type: Transform + pos: 76.5,51.5 + parent: 2 + - uid: 19179 + components: + - type: Transform + pos: 76.5,48.5 + parent: 2 + - uid: 19180 + components: + - type: Transform + pos: 71.5,49.5 + parent: 2 + - uid: 19181 + components: + - type: Transform + pos: 71.5,52.5 + parent: 2 + - uid: 19182 + components: + - type: Transform + pos: 62.5,49.5 + parent: 2 + - uid: 19183 + components: + - type: Transform + pos: 59.5,50.5 + parent: 2 + - uid: 19184 + components: + - type: Transform + pos: 59.5,54.5 + parent: 2 + - uid: 19185 + components: + - type: Transform + pos: 54.5,55.5 + parent: 2 + - uid: 19186 + components: + - type: Transform + pos: 49.5,58.5 + parent: 2 + - uid: 19187 + components: + - type: Transform + pos: 46.5,60.5 + parent: 2 + - uid: 19188 + components: + - type: Transform + pos: 49.5,62.5 + parent: 2 + - uid: 19189 + components: + - type: Transform + pos: 46.5,63.5 + parent: 2 + - uid: 19190 + components: + - type: Transform + pos: 45.5,67.5 + parent: 2 + - uid: 19191 + components: + - type: Transform + pos: 40.5,67.5 + parent: 2 + - uid: 19192 + components: + - type: Transform + pos: 41.5,63.5 + parent: 2 + - uid: 19193 + components: + - type: Transform + pos: 37.5,63.5 + parent: 2 + - uid: 19194 + components: + - type: Transform + pos: 36.5,66.5 + parent: 2 + - uid: 19195 + components: + - type: Transform + pos: 38.5,67.5 + parent: 2 + - uid: 19196 + components: + - type: Transform + pos: 40.5,61.5 + parent: 2 + - uid: 19197 + components: + - type: Transform + pos: 40.5,59.5 + parent: 2 + - uid: 19198 + components: + - type: Transform + pos: 42.5,57.5 + parent: 2 + - uid: 19199 + components: + - type: Transform + pos: 45.5,61.5 + parent: 2 + - uid: 19200 + components: + - type: Transform + pos: 37.5,61.5 + parent: 2 + - uid: 19201 + components: + - type: Transform + pos: 29.5,61.5 + parent: 2 + - uid: 19202 + components: + - type: Transform + pos: 25.5,62.5 + parent: 2 + - uid: 19203 + components: + - type: Transform + pos: 25.5,65.5 + parent: 2 + - uid: 19204 + components: + - type: Transform + pos: 27.5,66.5 + parent: 2 + - uid: 19205 + components: + - type: Transform + pos: 30.5,65.5 + parent: 2 + - uid: 19206 + components: + - type: Transform + pos: 24.5,66.5 + parent: 2 + - uid: 19207 + components: + - type: Transform + pos: 20.5,67.5 + parent: 2 + - uid: 19208 + components: + - type: Transform + pos: 15.5,67.5 + parent: 2 + - uid: 19209 + components: + - type: Transform + pos: 15.5,70.5 + parent: 2 + - uid: 19210 + components: + - type: Transform + pos: 15.5,72.5 + parent: 2 + - uid: 19211 + components: + - type: Transform + pos: 17.5,70.5 + parent: 2 + - uid: 19212 + components: + - type: Transform + pos: 19.5,66.5 + parent: 2 + - uid: 19213 + components: + - type: Transform + pos: 17.5,74.5 + parent: 2 + - uid: 19214 + components: + - type: Transform + pos: 12.5,65.5 + parent: 2 + - uid: 19215 + components: + - type: Transform + pos: -14.5,15.5 + parent: 2 + - uid: 19216 + components: + - type: Transform + pos: -16.5,14.5 + parent: 2 + - uid: 19217 + components: + - type: Transform + pos: -21.5,13.5 + parent: 2 + - uid: 19218 + components: + - type: Transform + pos: -17.5,9.5 + parent: 2 + - uid: 19219 + components: + - type: Transform + pos: -17.5,14.5 + parent: 2 + - uid: 19220 + components: + - type: Transform + pos: -16.5,10.5 + parent: 2 + - uid: 19221 + components: + - type: Transform + pos: -19.5,10.5 + parent: 2 + - uid: 19222 + components: + - type: Transform + pos: -18.5,5.5 + parent: 2 + - uid: 19223 + components: + - type: Transform + pos: 11.5,5.5 + parent: 2 + - uid: 19224 + components: + - type: Transform + pos: 11.5,3.5 + parent: 2 + - uid: 19225 + components: + - type: Transform + pos: 13.5,1.5 + parent: 2 + - uid: 19226 + components: + - type: Transform + pos: 14.5,4.5 + parent: 2 + - uid: 19227 + components: + - type: Transform + pos: 17.5,1.5 + parent: 2 + - uid: 19228 + components: + - type: Transform + pos: 17.5,5.5 + parent: 2 + - uid: 19229 + components: + - type: Transform + pos: 17.5,7.5 + parent: 2 + - uid: 19230 + components: + - type: Transform + pos: 14.5,9.5 + parent: 2 + - uid: 19231 + components: + - type: Transform + pos: 17.5,11.5 + parent: 2 + - uid: 19232 + components: + - type: Transform + pos: 16.5,13.5 + parent: 2 + - uid: 19233 + components: + - type: Transform + pos: 23.5,4.5 + parent: 2 + - uid: 19234 + components: + - type: Transform + pos: 10.5,0.5 + parent: 2 + - uid: 19235 + components: + - type: Transform + pos: 14.5,-1.5 + parent: 2 + - uid: 19236 + components: + - type: Transform + pos: 25.5,4.5 + parent: 2 + - uid: 19237 + components: + - type: Transform + pos: 44.5,5.5 + parent: 2 + - uid: 19238 + components: + - type: Transform + pos: 46.5,8.5 + parent: 2 + - uid: 19239 + components: + - type: Transform + pos: 56.5,11.5 + parent: 2 + - uid: 19240 + components: + - type: Transform + pos: 56.5,9.5 + parent: 2 + - uid: 19241 + components: + - type: Transform + pos: 61.5,12.5 + parent: 2 + - uid: 19242 + components: + - type: Transform + pos: 77.5,19.5 + parent: 2 + - uid: 19243 + components: + - type: Transform + pos: 78.5,18.5 + parent: 2 + - uid: 19244 + components: + - type: Transform + pos: 80.5,18.5 + parent: 2 + - uid: 19245 + components: + - type: Transform + pos: 75.5,21.5 + parent: 2 + - uid: 19246 + components: + - type: Transform + pos: 76.5,14.5 + parent: 2 + - uid: 19247 + components: + - type: Transform + pos: 77.5,13.5 + parent: 2 + - uid: 19248 + components: + - type: Transform + pos: 82.5,14.5 + parent: 2 + - uid: 19249 + components: + - type: Transform + pos: 54.5,64.5 + parent: 2 + - uid: 19250 + components: + - type: Transform + pos: 18.5,79.5 + parent: 2 + - uid: 19251 + components: + - type: Transform + pos: -40.5,62.5 + parent: 2 + - uid: 19252 + components: + - type: Transform + pos: -40.5,10.5 + parent: 2 + - uid: 19253 + components: + - type: Transform + pos: -40.5,14.5 + parent: 2 + - uid: 19254 + components: + - type: Transform + pos: -40.5,18.5 + parent: 2 + - uid: 19255 + components: + - type: Transform + pos: -30.5,0.5 + parent: 2 + - uid: 19256 + components: + - type: Transform + pos: -18.5,-13.5 + parent: 2 + - uid: 19257 + components: + - type: Transform + pos: -12.5,-13.5 + parent: 2 + - uid: 19258 + components: + - type: Transform + pos: -12.5,-9.5 + parent: 2 + - uid: 19259 + components: + - type: Transform + pos: 21.5,-1.5 + parent: 2 + - uid: 19260 + components: + - type: Transform + pos: 21.5,1.5 + parent: 2 + - uid: 19261 + components: + - type: Transform + pos: 61.5,-4.5 + parent: 2 + - uid: 19262 + components: + - type: Transform + pos: 39.5,-2.5 + parent: 2 + - uid: 19533 + components: + - type: Transform + pos: -35.5,73.5 + parent: 2 + - uid: 19534 + components: + - type: Transform + pos: -28.5,80.5 + parent: 2 + - uid: 19535 + components: + - type: Transform + pos: -34.5,80.5 + parent: 2 +- proto: RandomPosterLegit + entities: + - uid: 12545 + components: + - type: Transform + pos: -21.5,72.5 + parent: 2 + - uid: 12546 + components: + - type: Transform + pos: -20.5,73.5 + parent: 2 + - uid: 12548 + components: + - type: Transform + pos: -12.5,71.5 + parent: 2 + - uid: 12560 + components: + - type: Transform + pos: -19.5,71.5 + parent: 2 + - uid: 13718 + components: + - type: Transform + pos: 32.5,-8.5 + parent: 2 + - uid: 13719 + components: + - type: Transform + pos: 32.5,-14.5 + parent: 2 + - uid: 13720 + components: + - type: Transform + pos: 37.5,-14.5 + parent: 2 + - uid: 13721 + components: + - type: Transform + pos: 37.5,-8.5 + parent: 2 + - uid: 13722 + components: + - type: Transform + pos: 38.5,-11.5 + parent: 2 + - uid: 14530 + components: + - type: Transform + pos: -12.5,68.5 + parent: 2 + - uid: 18949 + components: + - type: Transform + pos: 32.5,0.5 + parent: 2 + - uid: 18950 + components: + - type: Transform + pos: 37.5,1.5 + parent: 2 + - uid: 18951 + components: + - type: Transform + pos: 29.5,3.5 + parent: 2 + - uid: 18952 + components: + - type: Transform + pos: 27.5,0.5 + parent: 2 + - uid: 18953 + components: + - type: Transform + pos: 22.5,2.5 + parent: 2 + - uid: 18954 + components: + - type: Transform + pos: 23.5,-1.5 + parent: 2 + - uid: 18955 + components: + - type: Transform + pos: 34.5,6.5 + parent: 2 + - uid: 18956 + components: + - type: Transform + pos: 37.5,6.5 + parent: 2 + - uid: 18957 + components: + - type: Transform + pos: 41.5,6.5 + parent: 2 + - uid: 18958 + components: + - type: Transform + pos: 42.5,9.5 + parent: 2 + - uid: 18959 + components: + - type: Transform + pos: 42.5,13.5 + parent: 2 + - uid: 18960 + components: + - type: Transform + pos: 41.5,14.5 + parent: 2 + - uid: 18961 + components: + - type: Transform + pos: 37.5,14.5 + parent: 2 + - uid: 18962 + components: + - type: Transform + pos: 33.5,17.5 + parent: 2 + - uid: 18963 + components: + - type: Transform + pos: 31.5,17.5 + parent: 2 + - uid: 18964 + components: + - type: Transform + pos: 28.5,18.5 + parent: 2 + - uid: 18965 + components: + - type: Transform + pos: 31.5,12.5 + parent: 2 + - uid: 18966 + components: + - type: Transform + pos: 27.5,8.5 + parent: 2 + - uid: 18967 + components: + - type: Transform + pos: 20.5,13.5 + parent: 2 + - uid: 18968 + components: + - type: Transform + pos: 21.5,18.5 + parent: 2 + - uid: 18969 + components: + - type: Transform + pos: 45.5,19.5 + parent: 2 + - uid: 18970 + components: + - type: Transform + pos: 50.5,16.5 + parent: 2 + - uid: 18971 + components: + - type: Transform + pos: 54.5,13.5 + parent: 2 + - uid: 18972 + components: + - type: Transform + pos: 53.5,19.5 + parent: 2 + - uid: 18973 + components: + - type: Transform + pos: 51.5,23.5 + parent: 2 + - uid: 18974 + components: + - type: Transform + pos: 46.5,23.5 + parent: 2 + - uid: 18975 + components: + - type: Transform + pos: 45.5,28.5 + parent: 2 + - uid: 18976 + components: + - type: Transform + pos: 50.5,28.5 + parent: 2 + - uid: 18977 + components: + - type: Transform + pos: 45.5,31.5 + parent: 2 + - uid: 18978 + components: + - type: Transform + pos: 57.5,24.5 + parent: 2 + - uid: 18979 + components: + - type: Transform + pos: 60.5,18.5 + parent: 2 + - uid: 18980 + components: + - type: Transform + pos: 58.5,14.5 + parent: 2 + - uid: 18981 + components: + - type: Transform + pos: 52.5,32.5 + parent: 2 + - uid: 18982 + components: + - type: Transform + pos: 51.5,41.5 + parent: 2 + - uid: 18983 + components: + - type: Transform + pos: 62.5,32.5 + parent: 2 + - uid: 18984 + components: + - type: Transform + pos: 60.5,41.5 + parent: 2 + - uid: 18985 + components: + - type: Transform + pos: 58.5,43.5 + parent: 2 + - uid: 18986 + components: + - type: Transform + pos: 52.5,47.5 + parent: 2 + - uid: 18987 + components: + - type: Transform + pos: 57.5,47.5 + parent: 2 + - uid: 18988 + components: + - type: Transform + pos: 49.5,46.5 + parent: 2 + - uid: 18989 + components: + - type: Transform + pos: 45.5,48.5 + parent: 2 + - uid: 18990 + components: + - type: Transform + pos: 43.5,44.5 + parent: 2 + - uid: 18991 + components: + - type: Transform + pos: 42.5,39.5 + parent: 2 + - uid: 18992 + components: + - type: Transform + pos: 43.5,36.5 + parent: 2 + - uid: 18993 + components: + - type: Transform + pos: 35.5,36.5 + parent: 2 + - uid: 18994 + components: + - type: Transform + pos: 34.5,42.5 + parent: 2 + - uid: 18995 + components: + - type: Transform + pos: 39.5,46.5 + parent: 2 + - uid: 18996 + components: + - type: Transform + pos: 38.5,51.5 + parent: 2 + - uid: 18997 + components: + - type: Transform + pos: 41.5,55.5 + parent: 2 + - uid: 18998 + components: + - type: Transform + pos: 44.5,52.5 + parent: 2 + - uid: 18999 + components: + - type: Transform + pos: 32.5,52.5 + parent: 2 + - uid: 19000 + components: + - type: Transform + pos: 28.5,54.5 + parent: 2 + - uid: 19001 + components: + - type: Transform + pos: 30.5,57.5 + parent: 2 + - uid: 19002 + components: + - type: Transform + pos: 36.5,53.5 + parent: 2 + - uid: 19003 + components: + - type: Transform + pos: 29.5,46.5 + parent: 2 + - uid: 19004 + components: + - type: Transform + pos: 25.5,42.5 + parent: 2 + - uid: 19005 + components: + - type: Transform + pos: 25.5,37.5 + parent: 2 + - uid: 19006 + components: + - type: Transform + pos: 29.5,30.5 + parent: 2 + - uid: 19007 + components: + - type: Transform + pos: 24.5,29.5 + parent: 2 + - uid: 19008 + components: + - type: Transform + pos: 20.5,22.5 + parent: 2 + - uid: 19009 + components: + - type: Transform + pos: 25.5,22.5 + parent: 2 + - uid: 19010 + components: + - type: Transform + pos: 30.5,25.5 + parent: 2 + - uid: 19011 + components: + - type: Transform + pos: 9.5,22.5 + parent: 2 + - uid: 19012 + components: + - type: Transform + pos: 7.5,25.5 + parent: 2 + - uid: 19013 + components: + - type: Transform + pos: 4.5,26.5 + parent: 2 + - uid: 19014 + components: + - type: Transform + pos: 3.5,30.5 + parent: 2 + - uid: 19015 + components: + - type: Transform + pos: 6.5,36.5 + parent: 2 + - uid: 19016 + components: + - type: Transform + pos: 2.5,41.5 + parent: 2 + - uid: 19017 + components: + - type: Transform + pos: 9.5,44.5 + parent: 2 + - uid: 19018 + components: + - type: Transform + pos: 10.5,38.5 + parent: 2 + - uid: 19019 + components: + - type: Transform + pos: 19.5,43.5 + parent: 2 + - uid: 19020 + components: + - type: Transform + pos: 15.5,50.5 + parent: 2 + - uid: 19021 + components: + - type: Transform + pos: 26.5,51.5 + parent: 2 + - uid: 19022 + components: + - type: Transform + pos: 26.5,56.5 + parent: 2 + - uid: 19023 + components: + - type: Transform + pos: 22.5,59.5 + parent: 2 + - uid: 19024 + components: + - type: Transform + pos: 15.5,55.5 + parent: 2 + - uid: 19025 + components: + - type: Transform + pos: 8.5,58.5 + parent: 2 + - uid: 19026 + components: + - type: Transform + pos: 3.5,56.5 + parent: 2 + - uid: 19027 + components: + - type: Transform + pos: 12.5,62.5 + parent: 2 + - uid: 19028 + components: + - type: Transform + pos: 15.5,64.5 + parent: 2 + - uid: 19029 + components: + - type: Transform + pos: 19.5,60.5 + parent: 2 + - uid: 19030 + components: + - type: Transform + pos: 10.5,65.5 + parent: 2 + - uid: 19031 + components: + - type: Transform + pos: 3.5,68.5 + parent: 2 + - uid: 19032 + components: + - type: Transform + pos: 2.5,65.5 + parent: 2 + - uid: 19033 + components: + - type: Transform + pos: 0.5,67.5 + parent: 2 + - uid: 19034 + components: + - type: Transform + pos: -2.5,65.5 + parent: 2 + - uid: 19035 + components: + - type: Transform + pos: -2.5,61.5 + parent: 2 + - uid: 19036 + components: + - type: Transform + pos: -8.5,62.5 + parent: 2 + - uid: 19037 + components: + - type: Transform + pos: -10.5,65.5 + parent: 2 + - uid: 19038 + components: + - type: Transform + pos: -13.5,66.5 + parent: 2 + - uid: 19039 + components: + - type: Transform + pos: -15.5,71.5 + parent: 2 + - uid: 19040 + components: + - type: Transform + pos: -20.5,68.5 + parent: 2 + - uid: 19041 + components: + - type: Transform + pos: -15.5,65.5 + parent: 2 + - uid: 19042 + components: + - type: Transform + pos: -20.5,65.5 + parent: 2 + - uid: 19043 + components: + - type: Transform + pos: -20.5,61.5 + parent: 2 + - uid: 19044 + components: + - type: Transform + pos: -20.5,59.5 + parent: 2 + - uid: 19045 + components: + - type: Transform + pos: -21.5,55.5 + parent: 2 + - uid: 19046 + components: + - type: Transform + pos: -21.5,51.5 + parent: 2 + - uid: 19047 + components: + - type: Transform + pos: -25.5,53.5 + parent: 2 + - uid: 19048 + components: + - type: Transform + pos: -10.5,52.5 + parent: 2 + - uid: 19049 + components: + - type: Transform + pos: -26.5,59.5 + parent: 2 + - uid: 19056 + components: + - type: Transform + pos: -36.5,55.5 + parent: 2 + - uid: 19057 + components: + - type: Transform + pos: -32.5,54.5 + parent: 2 + - uid: 19058 + components: + - type: Transform + pos: -25.5,54.5 + parent: 2 + - uid: 19059 + components: + - type: Transform + pos: -25.5,49.5 + parent: 2 + - uid: 19060 + components: + - type: Transform + pos: -23.5,44.5 + parent: 2 + - uid: 19061 + components: + - type: Transform + pos: -17.5,46.5 + parent: 2 + - uid: 19062 + components: + - type: Transform + pos: -11.5,42.5 + parent: 2 + - uid: 19063 + components: + - type: Transform + pos: -2.5,41.5 + parent: 2 + - uid: 19064 + components: + - type: Transform + pos: -2.5,45.5 + parent: 2 + - uid: 19065 + components: + - type: Transform + pos: -1.5,38.5 + parent: 2 + - uid: 19066 + components: + - type: Transform + pos: -1.5,26.5 + parent: 2 + - uid: 19067 + components: + - type: Transform + pos: -7.5,36.5 + parent: 2 + - uid: 19068 + components: + - type: Transform + pos: -15.5,32.5 + parent: 2 + - uid: 19069 + components: + - type: Transform + pos: -10.5,26.5 + parent: 2 + - uid: 19070 + components: + - type: Transform + pos: -5.5,22.5 + parent: 2 + - uid: 19071 + components: + - type: Transform + pos: -8.5,18.5 + parent: 2 + - uid: 19072 + components: + - type: Transform + pos: -10.5,17.5 + parent: 2 + - uid: 19073 + components: + - type: Transform + pos: -20.5,16.5 + parent: 2 + - uid: 19074 + components: + - type: Transform + pos: -23.5,20.5 + parent: 2 + - uid: 19075 + components: + - type: Transform + pos: -34.5,14.5 + parent: 2 + - uid: 19076 + components: + - type: Transform + pos: -34.5,6.5 + parent: 2 + - uid: 19077 + components: + - type: Transform + pos: -25.5,8.5 + parent: 2 + - uid: 19078 + components: + - type: Transform + pos: -25.5,20.5 + parent: 2 + - uid: 19079 + components: + - type: Transform + pos: -34.5,23.5 + parent: 2 + - uid: 19080 + components: + - type: Transform + pos: -28.5,26.5 + parent: 2 + - uid: 19081 + components: + - type: Transform + pos: -32.5,30.5 + parent: 2 + - uid: 19082 + components: + - type: Transform + pos: -37.5,29.5 + parent: 2 + - uid: 19083 + components: + - type: Transform + pos: -34.5,33.5 + parent: 2 + - uid: 19084 + components: + - type: Transform + pos: -38.5,36.5 + parent: 2 + - uid: 19085 + components: + - type: Transform + pos: -34.5,40.5 + parent: 2 + - uid: 19086 + components: + - type: Transform + pos: -29.5,38.5 + parent: 2 + - uid: 19087 + components: + - type: Transform + pos: -27.5,34.5 + parent: 2 + - uid: 19088 + components: + - type: Transform + pos: -22.5,32.5 + parent: 2 + - uid: 19089 + components: + - type: Transform + pos: -23.5,42.5 + parent: 2 + - uid: 19090 + components: + - type: Transform + pos: -13.5,26.5 + parent: 2 + - uid: 19091 + components: + - type: Transform + pos: -7.5,14.5 + parent: 2 + - uid: 19092 + components: + - type: Transform + pos: -13.5,10.5 + parent: 2 + - uid: 19093 + components: + - type: Transform + pos: -5.5,9.5 + parent: 2 + - uid: 19096 + components: + - type: Transform + pos: -14.5,-2.5 + parent: 2 + - uid: 19097 + components: + - type: Transform + pos: -12.5,-1.5 + parent: 2 + - uid: 19098 + components: + - type: Transform + pos: -17.5,3.5 + parent: 2 + - uid: 19099 + components: + - type: Transform + pos: -8.5,5.5 + parent: 2 + - uid: 19100 + components: + - type: Transform + pos: -4.5,3.5 + parent: 2 + - uid: 19101 + components: + - type: Transform + pos: -8.5,9.5 + parent: 2 + - uid: 19102 + components: + - type: Transform + pos: 1.5,13.5 + parent: 2 + - uid: 19103 + components: + - type: Transform + pos: 5.5,9.5 + parent: 2 + - uid: 19104 + components: + - type: Transform + pos: 5.5,3.5 + parent: 2 + - uid: 19105 + components: + - type: Transform + pos: 0.5,1.5 + parent: 2 + - uid: 19106 + components: + - type: Transform + pos: -2.5,14.5 + parent: 2 + - uid: 19107 + components: + - type: Transform + pos: 2.5,18.5 + parent: 2 + - uid: 19108 + components: + - type: Transform + pos: 5.5,14.5 + parent: 2 + - uid: 19109 + components: + - type: Transform + pos: 11.5,9.5 + parent: 2 + - uid: 19110 + components: + - type: Transform + pos: 8.5,8.5 + parent: 2 + - uid: 19111 + components: + - type: Transform + pos: 13.5,17.5 + parent: 2 + - uid: 19112 + components: + - type: Transform + pos: 16.5,16.5 + parent: 2 + - uid: 19113 + components: + - type: Transform + pos: 47.5,9.5 + parent: 2 + - uid: 19114 + components: + - type: Transform + pos: 58.5,-3.5 + parent: 2 + - uid: 19115 + components: + - type: Transform + pos: 58.5,3.5 + parent: 2 + - uid: 19116 + components: + - type: Transform + pos: 44.5,3.5 + parent: 2 + - uid: 19117 + components: + - type: Transform + pos: 48.5,-4.5 + parent: 2 + - uid: 19118 + components: + - type: Transform + pos: 52.5,-9.5 + parent: 2 + - uid: 19119 + components: + - type: Transform + pos: 54.5,-7.5 + parent: 2 + - uid: 19120 + components: + - type: Transform + pos: 48.5,-7.5 + parent: 2 + - uid: 19121 + components: + - type: Transform + pos: 68.5,6.5 + parent: 2 + - uid: 19122 + components: + - type: Transform + pos: 71.5,8.5 + parent: 2 + - uid: 19123 + components: + - type: Transform + pos: 75.5,9.5 + parent: 2 + - uid: 19124 + components: + - type: Transform + pos: 75.5,-1.5 + parent: 2 + - uid: 19125 + components: + - type: Transform + pos: 68.5,1.5 + parent: 2 + - uid: 19126 + components: + - type: Transform + pos: 63.5,0.5 + parent: 2 + - uid: 19127 + components: + - type: Transform + pos: 62.5,7.5 + parent: 2 + - uid: 19128 + components: + - type: Transform + pos: 61.5,10.5 + parent: 2 + - uid: 19129 + components: + - type: Transform + pos: 69.5,12.5 + parent: 2 + - uid: 19130 + components: + - type: Transform + pos: 62.5,14.5 + parent: 2 + - uid: 19131 + components: + - type: Transform + pos: 63.5,20.5 + parent: 2 + - uid: 19132 + components: + - type: Transform + pos: 73.5,20.5 + parent: 2 + - uid: 19133 + components: + - type: Transform + pos: 63.5,25.5 + parent: 2 + - uid: 19134 + components: + - type: Transform + pos: 73.5,26.5 + parent: 2 + - uid: 19135 + components: + - type: Transform + pos: 73.5,23.5 + parent: 2 + - uid: 19136 + components: + - type: Transform + pos: 69.5,22.5 + parent: 2 + - uid: 19137 + components: + - type: Transform + pos: 67.5,31.5 + parent: 2 + - uid: 19138 + components: + - type: Transform + pos: 71.5,32.5 + parent: 2 + - uid: 19139 + components: + - type: Transform + pos: 78.5,32.5 + parent: 2 + - uid: 19140 + components: + - type: Transform + pos: 79.5,27.5 + parent: 2 + - uid: 19141 + components: + - type: Transform + pos: 79.5,22.5 + parent: 2 + - uid: 19142 + components: + - type: Transform + pos: 83.5,20.5 + parent: 2 + - uid: 19143 + components: + - type: Transform + pos: 84.5,21.5 + parent: 2 + - uid: 19144 + components: + - type: Transform + pos: 79.5,37.5 + parent: 2 + - uid: 19145 + components: + - type: Transform + pos: 83.5,40.5 + parent: 2 + - uid: 19146 + components: + - type: Transform + pos: 79.5,40.5 + parent: 2 + - uid: 19147 + components: + - type: Transform + pos: 76.5,41.5 + parent: 2 + - uid: 19148 + components: + - type: Transform + pos: 74.5,36.5 + parent: 2 + - uid: 19149 + components: + - type: Transform + pos: 73.5,37.5 + parent: 2 + - uid: 19150 + components: + - type: Transform + pos: 70.5,41.5 + parent: 2 + - uid: 19151 + components: + - type: Transform + pos: 67.5,41.5 + parent: 2 + - uid: 19152 + components: + - type: Transform + pos: 63.5,39.5 + parent: 2 + - uid: 19153 + components: + - type: Transform + pos: 63.5,44.5 + parent: 2 + - uid: 19154 + components: + - type: Transform + pos: 67.5,48.5 + parent: 2 + - uid: 19155 + components: + - type: Transform + pos: 67.5,53.5 + parent: 2 + - uid: 19156 + components: + - type: Transform + pos: 63.5,51.5 + parent: 2 + - uid: 19157 + components: + - type: Transform + pos: 62.5,55.5 + parent: 2 + - uid: 19158 + components: + - type: Transform + pos: 61.5,58.5 + parent: 2 + - uid: 19159 + components: + - type: Transform + pos: 58.5,60.5 + parent: 2 + - uid: 19160 + components: + - type: Transform + pos: 61.5,62.5 + parent: 2 + - uid: 19161 + components: + - type: Transform + pos: 71.5,58.5 + parent: 2 + - uid: 19162 + components: + - type: Transform + pos: 71.5,62.5 + parent: 2 + - uid: 19163 + components: + - type: Transform + pos: 73.5,63.5 + parent: 2 + - uid: 19164 + components: + - type: Transform + pos: 78.5,58.5 + parent: 2 + - uid: 19165 + components: + - type: Transform + pos: 80.5,63.5 + parent: 2 + - uid: 19166 + components: + - type: Transform + pos: 76.5,46.5 + parent: 2 + - uid: 19167 + components: + - type: Transform + pos: 71.5,47.5 + parent: 2 + - uid: 19168 + components: + - type: Transform + pos: 80.5,45.5 + parent: 2 + - uid: 19169 + components: + - type: Transform + pos: 83.5,41.5 + parent: 2 +- proto: RandomSoap + entities: + - uid: 13723 + components: + - type: Transform + pos: -35.5,64.5 + parent: 2 + - uid: 13724 + components: + - type: Transform + pos: 11.5,68.5 + parent: 2 +- proto: RandomSpawner + entities: + - uid: 13725 + components: + - type: Transform + pos: 28.5,63.5 + parent: 2 +- proto: RandomSpawner100 + entities: + - uid: 13726 + components: + - type: Transform + pos: 9.5,3.5 + parent: 2 + - uid: 13727 + components: + - type: Transform + pos: 9.5,4.5 + parent: 2 + - uid: 13728 + components: + - type: Transform + pos: 7.5,3.5 + parent: 2 + - uid: 13729 + components: + - type: Transform + pos: 6.5,5.5 + parent: 2 + - uid: 13730 + components: + - type: Transform + pos: 10.5,5.5 + parent: 2 + - uid: 13731 + components: + - type: Transform + pos: 8.5,5.5 + parent: 2 + - uid: 13732 + components: + - type: Transform + pos: 7.5,5.5 + parent: 2 + - uid: 13733 + components: + - type: Transform + pos: 10.5,2.5 + parent: 2 + - uid: 13734 + components: + - type: Transform + pos: 12.5,5.5 + parent: 2 + - uid: 13735 + components: + - type: Transform + pos: 15.5,8.5 + parent: 2 + - uid: 13736 + components: + - type: Transform + pos: 15.5,3.5 + parent: 2 +- proto: RandomVending + entities: + - uid: 13737 + components: + - type: Transform + pos: 12.5,17.5 + parent: 2 + - uid: 13738 + components: + - type: Transform + pos: 2.5,53.5 + parent: 2 + - uid: 13739 + components: + - type: Transform + pos: 10.5,78.5 + parent: 2 + - uid: 13740 + components: + - type: Transform + pos: -1.5,75.5 + parent: 2 + - uid: 13741 + components: + - type: Transform + pos: 38.5,45.5 + parent: 2 + - uid: 13742 + components: + - type: Transform + pos: 37.5,41.5 + parent: 2 + - uid: 13743 + components: + - type: Transform + pos: 35.5,41.5 + parent: 2 + - uid: 13744 + components: + - type: Transform + pos: 10.5,45.5 + parent: 2 + - uid: 13745 + components: + - type: Transform + pos: 80.5,21.5 + parent: 2 + - uid: 13746 + components: + - type: Transform + pos: 68.5,8.5 + parent: 2 + - uid: 13747 + components: + - type: Transform + pos: 62.5,8.5 + parent: 2 + - uid: 13748 + components: + - type: Transform + pos: 76.5,5.5 + parent: 2 + - uid: 13749 + components: + - type: Transform + pos: 72.5,21.5 + parent: 2 + - uid: 13750 + components: + - type: Transform + pos: 16.5,17.5 + parent: 2 +- proto: RandomVendingDrinks + entities: + - uid: 13751 + components: + - type: Transform + pos: -7.5,64.5 + parent: 2 + - uid: 13752 + components: + - type: Transform + pos: -30.5,63.5 + parent: 2 + - uid: 13753 + components: + - type: Transform + pos: 3.5,53.5 + parent: 2 + - uid: 13754 + components: + - type: Transform + pos: 36.5,32.5 + parent: 2 + - uid: 13755 + components: + - type: Transform + pos: 28.5,36.5 + parent: 2 + - uid: 13756 + components: + - type: Transform + pos: 3.5,39.5 + parent: 2 + - uid: 13757 + components: + - type: Transform + pos: 10.5,44.5 + parent: 2 + - uid: 13759 + components: + - type: Transform + pos: 63.5,8.5 + parent: 2 + - uid: 13760 + components: + - type: Transform + pos: 71.5,4.5 + parent: 2 + - uid: 13761 + components: + - type: Transform + pos: 2.5,46.5 + parent: 2 + - uid: 13762 + components: + - type: Transform + pos: -16.5,49.5 + parent: 2 + - uid: 13763 + components: + - type: Transform + pos: -1.5,23.5 + parent: 2 + - uid: 13764 + components: + - type: Transform + pos: 21.5,14.5 + parent: 2 + - uid: 13765 + components: + - type: Transform + pos: 42.5,49.5 + parent: 2 + - uid: 13766 + components: + - type: Transform + pos: -7.5,6.5 + parent: 2 + - uid: 17000 + components: + - type: Transform + pos: 68.5,23.5 + parent: 2 + - uid: 19494 + components: + - type: Transform + pos: -21.5,74.5 + parent: 2 +- proto: RandomVendingSnacks + entities: + - uid: 7198 + components: + - type: Transform + pos: 69.5,23.5 + parent: 2 + - uid: 13767 + components: + - type: Transform + pos: 6.5,17.5 + parent: 2 + - uid: 13768 + components: + - type: Transform + pos: -7.5,63.5 + parent: 2 + - uid: 13769 + components: + - type: Transform + pos: -29.5,63.5 + parent: 2 + - uid: 13770 + components: + - type: Transform + pos: 37.5,32.5 + parent: 2 + - uid: 13771 + components: + - type: Transform + pos: 29.5,36.5 + parent: 2 + - uid: 13772 + components: + - type: Transform + pos: 10.5,43.5 + parent: 2 + - uid: 13773 + components: + - type: Transform + pos: 67.5,8.5 + parent: 2 + - uid: 13774 + components: + - type: Transform + pos: 42.5,47.5 + parent: 2 + - uid: 13775 + components: + - type: Transform + pos: 2.5,45.5 + parent: 2 + - uid: 13776 + components: + - type: Transform + pos: -16.5,47.5 + parent: 2 + - uid: 13777 + components: + - type: Transform + pos: -1.5,22.5 + parent: 2 + - uid: 13778 + components: + - type: Transform + pos: 17.5,17.5 + parent: 2 + - uid: 13779 + components: + - type: Transform + pos: 21.5,13.5 + parent: 2 + - uid: 13780 + components: + - type: Transform + pos: -6.5,8.5 + parent: 2 + - uid: 19495 + components: + - type: Transform + pos: -21.5,73.5 + parent: 2 +- proto: Recycler + entities: + - uid: 13781 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 9.5,5.5 + parent: 2 + - type: DeviceLinkSink + links: + - 14459 +- proto: ReinforcedPlasmaWindow + entities: + - uid: 13782 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -28.5,22.5 + parent: 2 + - uid: 13783 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -26.5,22.5 + parent: 2 + - uid: 13784 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -27.5,22.5 + parent: 2 + - uid: 13785 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -12.5,31.5 + parent: 2 + - uid: 13786 + components: + - type: Transform + pos: -12.5,27.5 + parent: 2 + - uid: 13787 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -36.5,21.5 + parent: 2 + - uid: 13788 + components: + - type: Transform + pos: -36.5,11.5 + parent: 2 + - uid: 13789 + components: + - type: Transform + pos: -36.5,7.5 + parent: 2 + - uid: 13790 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -27.5,4.5 + parent: 2 + - uid: 13791 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -29.5,4.5 + parent: 2 + - uid: 13792 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -37.5,25.5 + parent: 2 + - uid: 13793 + components: + - type: Transform + pos: -20.5,47.5 + parent: 2 + - uid: 13794 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -36.5,17.5 + parent: 2 + - uid: 13795 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -36.5,15.5 + parent: 2 + - uid: 13796 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -31.5,4.5 + parent: 2 + - uid: 13797 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -33.5,4.5 + parent: 2 + - uid: 13798 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -36.5,20.5 + parent: 2 + - uid: 13799 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -36.5,19.5 + parent: 2 + - uid: 13800 + components: + - type: Transform + pos: -36.5,9.5 + parent: 2 + - uid: 13801 + components: + - type: Transform + pos: -36.5,13.5 + parent: 2 + - uid: 13802 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -37.5,26.5 + parent: 2 + - uid: 13803 + components: + - type: Transform + pos: -12.5,29.5 + parent: 2 + - uid: 13804 + components: + - type: Transform + pos: -12.5,28.5 + parent: 2 + - uid: 13805 + components: + - type: Transform + pos: -12.5,35.5 + parent: 2 + - uid: 13806 + components: + - type: Transform + pos: -12.5,33.5 + parent: 2 + - uid: 13807 + components: + - type: Transform + pos: -12.5,37.5 + parent: 2 + - uid: 13808 + components: + - type: Transform + pos: -12.5,39.5 + parent: 2 + - uid: 13809 + components: + - type: Transform + pos: -12.5,40.5 + parent: 2 + - uid: 13810 + components: + - type: Transform + pos: -12.5,41.5 + parent: 2 + - uid: 13811 + components: + - type: Transform + pos: -19.5,47.5 + parent: 2 + - uid: 13812 + components: + - type: Transform + pos: -13.5,42.5 + parent: 2 + - uid: 13813 + components: + - type: Transform + pos: -16.5,42.5 + parent: 2 + - uid: 13814 + components: + - type: Transform + pos: -21.5,47.5 + parent: 2 + - uid: 13815 + components: + - type: Transform + pos: -28.5,29.5 + parent: 2 + - uid: 13816 + components: + - type: Transform + pos: -27.5,33.5 + parent: 2 + - uid: 13817 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -37.5,27.5 + parent: 2 + - uid: 13818 + components: + - type: Transform + pos: 32.5,11.5 + parent: 2 + - uid: 13819 + components: + - type: Transform + pos: 32.5,9.5 + parent: 2 + - uid: 13820 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -36.5,16.5 + parent: 2 + - uid: 13821 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -36.5,12.5 + parent: 2 + - uid: 13822 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -36.5,8.5 + parent: 2 + - uid: 13823 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -32.5,4.5 + parent: 2 + - uid: 13824 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -28.5,4.5 + parent: 2 + - uid: 13825 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 77.5,23.5 + parent: 2 + - uid: 13826 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -27.5,39.5 + parent: 2 + - uid: 13827 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -27.5,38.5 + parent: 2 + - uid: 13828 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -27.5,37.5 + parent: 2 + - uid: 13829 + components: + - type: Transform + pos: 34.5,9.5 + parent: 2 + - uid: 13830 + components: + - type: Transform + pos: 34.5,11.5 + parent: 2 +- proto: ReinforcedWindow + entities: + - uid: 5069 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -30.5,78.5 + parent: 2 + - uid: 5758 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -24.5,75.5 + parent: 2 + - uid: 5997 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -29.5,78.5 + parent: 2 + - uid: 5998 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -29.5,77.5 + parent: 2 + - uid: 5999 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -28.5,77.5 + parent: 2 + - uid: 6014 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -27.5,75.5 + parent: 2 + - uid: 6015 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -27.5,76.5 + parent: 2 + - uid: 9909 + components: + - type: Transform + pos: 53.5,7.5 + parent: 2 + - uid: 11677 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 26.5,1.5 + parent: 2 + - uid: 12541 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -23.5,75.5 + parent: 2 + - uid: 12561 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -35.5,75.5 + parent: 2 + - uid: 12563 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -35.5,76.5 + parent: 2 + - uid: 12564 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -34.5,77.5 + parent: 2 + - uid: 12570 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -34.5,76.5 + parent: 2 + - uid: 13552 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -28.5,76.5 + parent: 2 + - uid: 13831 + components: + - type: Transform + pos: 6.5,34.5 + parent: 2 + - uid: 13832 + components: + - type: Transform + pos: 6.5,31.5 + parent: 2 + - uid: 13833 + components: + - type: Transform + pos: 2.5,32.5 + parent: 2 + - uid: 13834 + components: + - type: Transform + pos: -4.5,18.5 + parent: 2 + - uid: 13835 + components: + - type: Transform + pos: 6.5,35.5 + parent: 2 + - uid: 13836 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -23.5,17.5 + parent: 2 + - uid: 13837 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -32.5,22.5 + parent: 2 + - uid: 13838 + components: + - type: Transform + pos: -12.5,1.5 + parent: 2 + - uid: 13840 + components: + - type: Transform + pos: -12.5,0.5 + parent: 2 + - uid: 13841 + components: + - type: Transform + pos: 34.5,51.5 + parent: 2 + - uid: 13842 + components: + - type: Transform + pos: 36.5,51.5 + parent: 2 + - uid: 13843 + components: + - type: Transform + pos: -12.5,-0.5 + parent: 2 + - uid: 13844 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 9.5,36.5 + parent: 2 + - uid: 13845 + components: + - type: Transform + pos: -13.5,-4.5 + parent: 2 + - uid: 13846 + components: + - type: Transform + pos: -13.5,-5.5 + parent: 2 + - uid: 13847 + components: + - type: Transform + pos: -13.5,-6.5 + parent: 2 + - uid: 13848 + components: + - type: Transform + pos: -3.5,53.5 + parent: 2 + - uid: 13849 + components: + - type: Transform + pos: 0.5,0.5 + parent: 2 + - uid: 13850 + components: + - type: Transform + pos: 0.5,2.5 + parent: 2 + - uid: 13851 + components: + - type: Transform + pos: -2.5,0.5 + parent: 2 + - uid: 13852 + components: + - type: Transform + pos: -2.5,1.5 + parent: 2 + - uid: 13853 + components: + - type: Transform + pos: -2.5,2.5 + parent: 2 + - uid: 13854 + components: + - type: Transform + pos: -3.5,2.5 + parent: 2 + - uid: 13855 + components: + - type: Transform + pos: 3.5,0.5 + parent: 2 + - uid: 13856 + components: + - type: Transform + pos: 3.5,1.5 + parent: 2 + - uid: 13857 + components: + - type: Transform + pos: 3.5,2.5 + parent: 2 + - uid: 13858 + components: + - type: Transform + pos: 4.5,2.5 + parent: 2 + - uid: 13859 + components: + - type: Transform + pos: -9.5,3.5 + parent: 2 + - uid: 13860 + components: + - type: Transform + pos: -10.5,3.5 + parent: 2 + - uid: 13861 + components: + - type: Transform + pos: -11.5,3.5 + parent: 2 + - uid: 13862 + components: + - type: Transform + pos: 6.5,14.5 + parent: 2 + - uid: 13863 + components: + - type: Transform + pos: 5.5,15.5 + parent: 2 + - uid: 13864 + components: + - type: Transform + pos: 8.5,14.5 + parent: 2 + - uid: 13865 + components: + - type: Transform + pos: 10.5,14.5 + parent: 2 + - uid: 13866 + components: + - type: Transform + pos: 12.5,14.5 + parent: 2 + - uid: 13867 + components: + - type: Transform + pos: -7.5,13.5 + parent: 2 + - uid: 13868 + components: + - type: Transform + pos: -7.5,12.5 + parent: 2 + - uid: 13869 + components: + - type: Transform + pos: -6.5,12.5 + parent: 2 + - uid: 13870 + components: + - type: Transform + pos: -5.5,12.5 + parent: 2 + - uid: 13871 + components: + - type: Transform + pos: -3.5,12.5 + parent: 2 + - uid: 13872 + components: + - type: Transform + pos: -0.5,13.5 + parent: 2 + - uid: 13873 + components: + - type: Transform + pos: 0.5,13.5 + parent: 2 + - uid: 13874 + components: + - type: Transform + pos: 2.5,14.5 + parent: 2 + - uid: 13875 + components: + - type: Transform + pos: 2.5,17.5 + parent: 2 + - uid: 13876 + components: + - type: Transform + pos: 2.5,15.5 + parent: 2 + - uid: 13877 + components: + - type: Transform + pos: 3.5,18.5 + parent: 2 + - uid: 13878 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 12.5,23.5 + parent: 2 + - uid: 13879 + components: + - type: Transform + pos: -1.5,25.5 + parent: 2 + - uid: 13880 + components: + - type: Transform + pos: -4.5,22.5 + parent: 2 + - uid: 13881 + components: + - type: Transform + pos: 8.5,26.5 + parent: 2 + - uid: 13882 + components: + - type: Transform + pos: 8.5,27.5 + parent: 2 + - uid: 13883 + components: + - type: Transform + pos: 9.5,27.5 + parent: 2 + - uid: 13884 + components: + - type: Transform + pos: 9.5,30.5 + parent: 2 + - uid: 13885 + components: + - type: Transform + pos: 9.5,29.5 + parent: 2 + - uid: 13886 + components: + - type: Transform + pos: 10.5,29.5 + parent: 2 + - uid: 13887 + components: + - type: Transform + pos: 11.5,29.5 + parent: 2 + - uid: 13888 + components: + - type: Transform + pos: -6.5,24.5 + parent: 2 + - uid: 13889 + components: + - type: Transform + pos: -6.5,21.5 + parent: 2 + - uid: 13890 + components: + - type: Transform + pos: 17.5,23.5 + parent: 2 + - uid: 13891 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 24.5,24.5 + parent: 2 + - uid: 13892 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 21.5,29.5 + parent: 2 + - uid: 13893 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 23.5,29.5 + parent: 2 + - uid: 13894 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 28.5,22.5 + parent: 2 + - uid: 13895 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 30.5,27.5 + parent: 2 + - uid: 13896 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 30.5,29.5 + parent: 2 + - uid: 13897 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 24.5,31.5 + parent: 2 + - uid: 13898 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 24.5,34.5 + parent: 2 + - uid: 13899 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 20.5,30.5 + parent: 2 + - uid: 13900 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 20.5,31.5 + parent: 2 + - uid: 13901 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 20.5,35.5 + parent: 2 + - uid: 13902 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 20.5,34.5 + parent: 2 + - uid: 13903 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 19.5,36.5 + parent: 2 + - uid: 13904 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 21.5,37.5 + parent: 2 + - uid: 13905 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 21.5,38.5 + parent: 2 + - uid: 13906 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 12.5,36.5 + parent: 2 + - uid: 13907 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 7.5,36.5 + parent: 2 + - uid: 13908 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 15.5,39.5 + parent: 2 + - uid: 13909 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 12.5,42.5 + parent: 2 + - uid: 13910 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 11.5,42.5 + parent: 2 + - uid: 13911 + components: + - type: Transform + pos: 8.5,42.5 + parent: 2 + - uid: 13912 + components: + - type: Transform + pos: 2.5,40.5 + parent: 2 + - uid: 13913 + components: + - type: Transform + pos: 2.5,38.5 + parent: 2 + - uid: 13915 + components: + - type: Transform + pos: -13.5,20.5 + parent: 2 + - uid: 13916 + components: + - type: Transform + pos: -13.5,18.5 + parent: 2 + - uid: 13917 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -24.5,6.5 + parent: 2 + - uid: 13918 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -23.5,5.5 + parent: 2 + - uid: 13919 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -23.5,4.5 + parent: 2 + - uid: 13920 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -21.5,4.5 + parent: 2 + - uid: 13921 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -21.5,5.5 + parent: 2 + - uid: 13922 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -20.5,6.5 + parent: 2 + - uid: 13923 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -23.5,19.5 + parent: 2 + - uid: 13924 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -20.5,17.5 + parent: 2 + - uid: 13925 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -20.5,19.5 + parent: 2 + - uid: 13926 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -4.5,28.5 + parent: 2 + - uid: 13927 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -6.5,29.5 + parent: 2 + - uid: 13928 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -6.5,31.5 + parent: 2 + - uid: 13929 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -2.5,32.5 + parent: 2 + - uid: 13930 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -7.5,34.5 + parent: 2 + - uid: 13931 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -1.5,36.5 + parent: 2 + - uid: 13932 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -1.5,34.5 + parent: 2 + - uid: 13933 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -17.5,48.5 + parent: 2 + - uid: 13934 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -28.5,44.5 + parent: 2 + - uid: 13935 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -25.5,47.5 + parent: 2 + - uid: 13936 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -35.5,31.5 + parent: 2 + - uid: 13937 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -34.5,31.5 + parent: 2 + - uid: 13938 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -33.5,31.5 + parent: 2 + - uid: 13939 + components: + - type: Transform + pos: -19.5,50.5 + parent: 2 + - uid: 13940 + components: + - type: Transform + pos: -18.5,50.5 + parent: 2 + - uid: 13941 + components: + - type: Transform + pos: -13.5,50.5 + parent: 2 + - uid: 13942 + components: + - type: Transform + pos: -16.5,54.5 + parent: 2 + - uid: 13943 + components: + - type: Transform + pos: -16.5,55.5 + parent: 2 + - uid: 13944 + components: + - type: Transform + pos: -20.5,56.5 + parent: 2 + - uid: 13945 + components: + - type: Transform + pos: -14.5,53.5 + parent: 2 + - uid: 13946 + components: + - type: Transform + pos: -9.5,50.5 + parent: 2 + - uid: 13947 + components: + - type: Transform + pos: -8.5,50.5 + parent: 2 + - uid: 13948 + components: + - type: Transform + pos: -7.5,50.5 + parent: 2 + - uid: 13949 + components: + - type: Transform + pos: -5.5,50.5 + parent: 2 + - uid: 13950 + components: + - type: Transform + pos: -4.5,50.5 + parent: 2 + - uid: 13951 + components: + - type: Transform + pos: -3.5,50.5 + parent: 2 + - uid: 13952 + components: + - type: Transform + pos: -1.5,50.5 + parent: 2 + - uid: 13953 + components: + - type: Transform + pos: -0.5,50.5 + parent: 2 + - uid: 13954 + components: + - type: Transform + pos: 0.5,50.5 + parent: 2 + - uid: 13955 + components: + - type: Transform + pos: -9.5,53.5 + parent: 2 + - uid: 13956 + components: + - type: Transform + pos: -7.5,53.5 + parent: 2 + - uid: 13957 + components: + - type: Transform + pos: -5.5,53.5 + parent: 2 + - uid: 13958 + components: + - type: Transform + pos: -1.5,53.5 + parent: 2 + - uid: 13959 + components: + - type: Transform + pos: 0.5,53.5 + parent: 2 + - uid: 13960 + components: + - type: Transform + pos: -22.5,50.5 + parent: 2 + - uid: 13961 + components: + - type: Transform + pos: -23.5,50.5 + parent: 2 + - uid: 13962 + components: + - type: Transform + pos: -24.5,50.5 + parent: 2 + - uid: 13963 + components: + - type: Transform + pos: -22.5,56.5 + parent: 2 + - uid: 13964 + components: + - type: Transform + pos: -24.5,56.5 + parent: 2 + - uid: 13965 + components: + - type: Transform + pos: -30.5,51.5 + parent: 2 + - uid: 13966 + components: + - type: Transform + pos: -30.5,53.5 + parent: 2 + - uid: 13967 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -33.5,52.5 + parent: 2 + - uid: 13968 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -35.5,55.5 + parent: 2 + - uid: 13969 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -37.5,58.5 + parent: 2 + - uid: 13970 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -39.5,58.5 + parent: 2 + - uid: 13978 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -36.5,68.5 + parent: 2 + - uid: 13979 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -36.5,67.5 + parent: 2 + - uid: 13980 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -24.5,72.5 + parent: 2 + - uid: 13981 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -23.5,72.5 + parent: 2 + - uid: 13982 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -22.5,72.5 + parent: 2 + - uid: 13984 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -11.5,69.5 + parent: 2 + - uid: 13986 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -11.5,71.5 + parent: 2 + - uid: 13987 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -9.5,71.5 + parent: 2 + - uid: 13988 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -7.5,71.5 + parent: 2 + - uid: 13989 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -5.5,71.5 + parent: 2 + - uid: 13991 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -5.5,69.5 + parent: 2 + - uid: 13992 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 15.5,76.5 + parent: 2 + - uid: 13993 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 15.5,75.5 + parent: 2 + - uid: 13994 + components: + - type: Transform + pos: 4.5,79.5 + parent: 2 + - uid: 13995 + components: + - type: Transform + pos: 2.5,79.5 + parent: 2 + - uid: 13996 + components: + - type: Transform + pos: 8.5,80.5 + parent: 2 + - uid: 13997 + components: + - type: Transform + pos: 1.5,79.5 + parent: 2 + - uid: 13998 + components: + - type: Transform + pos: 3.5,79.5 + parent: 2 + - uid: 13999 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 16.5,75.5 + parent: 2 + - uid: 14000 + components: + - type: Transform + pos: 7.5,80.5 + parent: 2 + - uid: 14001 + components: + - type: Transform + pos: 9.5,80.5 + parent: 2 + - uid: 14002 + components: + - type: Transform + pos: -2.5,75.5 + parent: 2 + - uid: 14003 + components: + - type: Transform + pos: -2.5,74.5 + parent: 2 + - uid: 14004 + components: + - type: Transform + pos: -2.5,73.5 + parent: 2 + - uid: 14005 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -24.5,65.5 + parent: 2 + - uid: 14006 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -22.5,65.5 + parent: 2 + - uid: 14007 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -22.5,59.5 + parent: 2 + - uid: 14008 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -19.5,65.5 + parent: 2 + - uid: 14009 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -18.5,65.5 + parent: 2 + - uid: 14010 + components: + - type: Transform + pos: -24.5,59.5 + parent: 2 + - uid: 14011 + components: + - type: Transform + pos: -14.5,63.5 + parent: 2 + - uid: 14012 + components: + - type: Transform + pos: -13.5,61.5 + parent: 2 + - uid: 14013 + components: + - type: Transform + pos: -13.5,60.5 + parent: 2 + - uid: 14014 + components: + - type: Transform + pos: -14.5,59.5 + parent: 2 + - uid: 14015 + components: + - type: Transform + pos: -16.5,59.5 + parent: 2 + - uid: 14016 + components: + - type: Transform + pos: -18.5,59.5 + parent: 2 + - uid: 14017 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 0.5,61.5 + parent: 2 + - uid: 14018 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 3.5,59.5 + parent: 2 + - uid: 14019 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 3.5,57.5 + parent: 2 + - uid: 14020 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -1.5,57.5 + parent: 2 + - uid: 14021 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 15.5,78.5 + parent: 2 + - uid: 14022 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 17.5,73.5 + parent: 2 + - uid: 14023 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 17.5,72.5 + parent: 2 + - uid: 14024 + components: + - type: Transform + pos: 6.5,1.5 + parent: 2 + - uid: 14025 + components: + - type: Transform + pos: 11.5,4.5 + parent: 2 + - uid: 14026 + components: + - type: Transform + pos: 9.5,6.5 + parent: 2 + - uid: 14027 + components: + - type: Transform + pos: 8.5,2.5 + parent: 2 + - uid: 14028 + components: + - type: Transform + pos: 15.5,0.5 + parent: 2 + - uid: 14029 + components: + - type: Transform + pos: 18.5,3.5 + parent: 2 + - uid: 14030 + components: + - type: Transform + pos: 20.5,3.5 + parent: 2 + - uid: 14032 + components: + - type: Transform + pos: 29.5,-1.5 + parent: 2 + - uid: 14033 + components: + - type: Transform + pos: 30.5,-1.5 + parent: 2 + - uid: 14034 + components: + - type: Transform + pos: 35.5,-2.5 + parent: 2 + - uid: 14035 + components: + - type: Transform + pos: 36.5,-2.5 + parent: 2 + - uid: 14036 + components: + - type: Transform + pos: 37.5,-2.5 + parent: 2 + - uid: 14037 + components: + - type: Transform + pos: 38.5,3.5 + parent: 2 + - uid: 14038 + components: + - type: Transform + pos: 39.5,3.5 + parent: 2 + - uid: 14039 + components: + - type: Transform + pos: 41.5,-0.5 + parent: 2 + - uid: 14040 + components: + - type: Transform + pos: 42.5,-0.5 + parent: 2 + - uid: 14041 + components: + - type: Transform + pos: 42.5,-2.5 + parent: 2 + - uid: 14042 + components: + - type: Transform + pos: 42.5,-1.5 + parent: 2 + - uid: 14043 + components: + - type: Transform + pos: 40.5,14.5 + parent: 2 + - uid: 14044 + components: + - type: Transform + pos: 38.5,14.5 + parent: 2 + - uid: 14045 + components: + - type: Transform + pos: 40.5,18.5 + parent: 2 + - uid: 14046 + components: + - type: Transform + pos: 42.5,18.5 + parent: 2 + - uid: 14047 + components: + - type: Transform + pos: 45.5,15.5 + parent: 2 + - uid: 14048 + components: + - type: Transform + pos: 46.5,15.5 + parent: 2 + - uid: 14049 + components: + - type: Transform + pos: 47.5,14.5 + parent: 2 + - uid: 14050 + components: + - type: Transform + pos: 47.5,13.5 + parent: 2 + - uid: 14051 + components: + - type: Transform + pos: 47.5,15.5 + parent: 2 + - uid: 14052 + components: + - type: Transform + pos: 50.5,14.5 + parent: 2 + - uid: 14053 + components: + - type: Transform + pos: 50.5,18.5 + parent: 2 + - uid: 14054 + components: + - type: Transform + pos: 41.5,24.5 + parent: 2 + - uid: 14055 + components: + - type: Transform + pos: 39.5,24.5 + parent: 2 + - uid: 14056 + components: + - type: Transform + pos: 40.5,24.5 + parent: 2 + - uid: 14057 + components: + - type: Transform + pos: 70.5,1.5 + parent: 2 + - uid: 14058 + components: + - type: Transform + pos: 36.5,29.5 + parent: 2 + - uid: 14059 + components: + - type: Transform + pos: 36.5,27.5 + parent: 2 + - uid: 14060 + components: + - type: Transform + pos: 40.5,26.5 + parent: 2 + - uid: 14061 + components: + - type: Transform + pos: 43.5,28.5 + parent: 2 + - uid: 14062 + components: + - type: Transform + pos: 44.5,32.5 + parent: 2 + - uid: 14063 + components: + - type: Transform + pos: 51.5,24.5 + parent: 2 + - uid: 14064 + components: + - type: Transform + pos: 51.5,26.5 + parent: 2 + - uid: 14065 + components: + - type: Transform + pos: 50.5,23.5 + parent: 2 + - uid: 14066 + components: + - type: Transform + pos: 52.5,23.5 + parent: 2 + - uid: 14067 + components: + - type: Transform + pos: 54.5,23.5 + parent: 2 + - uid: 14068 + components: + - type: Transform + pos: 54.5,22.5 + parent: 2 + - uid: 14069 + components: + - type: Transform + pos: 56.5,23.5 + parent: 2 + - uid: 14070 + components: + - type: Transform + pos: 49.5,20.5 + parent: 2 + - uid: 14071 + components: + - type: Transform + pos: 51.5,19.5 + parent: 2 + - uid: 14072 + components: + - type: Transform + pos: 52.5,19.5 + parent: 2 + - uid: 14073 + components: + - type: Transform + pos: 54.5,20.5 + parent: 2 + - uid: 14074 + components: + - type: Transform + pos: 56.5,6.5 + parent: 2 + - uid: 14076 + components: + - type: Transform + pos: 50.5,-5.5 + parent: 2 + - uid: 14077 + components: + - type: Transform + pos: 50.5,-4.5 + parent: 2 + - uid: 14078 + components: + - type: Transform + pos: 52.5,-5.5 + parent: 2 + - uid: 14079 + components: + - type: Transform + pos: 52.5,-4.5 + parent: 2 + - uid: 14080 + components: + - type: Transform + pos: 59.5,11.5 + parent: 2 + - uid: 14081 + components: + - type: Transform + pos: 60.5,11.5 + parent: 2 + - uid: 14082 + components: + - type: Transform + pos: 62.5,2.5 + parent: 2 + - uid: 14083 + components: + - type: Transform + pos: 62.5,3.5 + parent: 2 + - uid: 14084 + components: + - type: Transform + pos: 62.5,4.5 + parent: 2 + - uid: 14085 + components: + - type: Transform + pos: 64.5,-0.5 + parent: 2 + - uid: 14086 + components: + - type: Transform + pos: 65.5,-0.5 + parent: 2 + - uid: 14087 + components: + - type: Transform + pos: 66.5,-0.5 + parent: 2 + - uid: 14088 + components: + - type: Transform + pos: 69.5,1.5 + parent: 2 + - uid: 14089 + components: + - type: Transform + pos: 71.5,1.5 + parent: 2 + - uid: 14090 + components: + - type: Transform + pos: 71.5,0.5 + parent: 2 + - uid: 14091 + components: + - type: Transform + pos: 71.5,-0.5 + parent: 2 + - uid: 14092 + components: + - type: Transform + pos: 72.5,-4.5 + parent: 2 + - uid: 14093 + components: + - type: Transform + pos: 20.5,64.5 + parent: 2 + - uid: 14094 + components: + - type: Transform + pos: 26.5,66.5 + parent: 2 + - uid: 14095 + components: + - type: Transform + pos: 29.5,59.5 + parent: 2 + - uid: 14096 + components: + - type: Transform + pos: 30.5,59.5 + parent: 2 + - uid: 14097 + components: + - type: Transform + pos: 31.5,59.5 + parent: 2 + - uid: 14098 + components: + - type: Transform + pos: 29.5,51.5 + parent: 2 + - uid: 14099 + components: + - type: Transform + pos: 29.5,50.5 + parent: 2 + - uid: 14100 + components: + - type: Transform + pos: 28.5,50.5 + parent: 2 + - uid: 14101 + components: + - type: Transform + pos: 27.5,50.5 + parent: 2 + - uid: 14102 + components: + - type: Transform + pos: 31.5,51.5 + parent: 2 + - uid: 14103 + components: + - type: Transform + pos: 31.5,50.5 + parent: 2 + - uid: 14104 + components: + - type: Transform + pos: 32.5,50.5 + parent: 2 + - uid: 14105 + components: + - type: Transform + pos: 33.5,50.5 + parent: 2 + - uid: 14106 + components: + - type: Transform + pos: 36.5,50.5 + parent: 2 + - uid: 14107 + components: + - type: Transform + pos: 37.5,50.5 + parent: 2 + - uid: 14108 + components: + - type: Transform + pos: 35.5,58.5 + parent: 2 + - uid: 14109 + components: + - type: Transform + pos: 36.5,58.5 + parent: 2 + - uid: 14110 + components: + - type: Transform + pos: 37.5,58.5 + parent: 2 + - uid: 14111 + components: + - type: Transform + pos: 35.5,65.5 + parent: 2 + - uid: 14112 + components: + - type: Transform + pos: 34.5,65.5 + parent: 2 + - uid: 14113 + components: + - type: Transform + pos: 34.5,66.5 + parent: 2 + - uid: 14114 + components: + - type: Transform + pos: 34.5,67.5 + parent: 2 + - uid: 14115 + components: + - type: Transform + pos: 31.5,65.5 + parent: 2 + - uid: 14116 + components: + - type: Transform + pos: 32.5,65.5 + parent: 2 + - uid: 14117 + components: + - type: Transform + pos: 32.5,67.5 + parent: 2 + - uid: 14118 + components: + - type: Transform + pos: 39.5,67.5 + parent: 2 + - uid: 14119 + components: + - type: Transform + pos: 46.5,64.5 + parent: 2 + - uid: 14120 + components: + - type: Transform + pos: 46.5,65.5 + parent: 2 + - uid: 14122 + components: + - type: Transform + pos: 55.5,59.5 + parent: 2 + - uid: 14123 + components: + - type: Transform + pos: 61.5,36.5 + parent: 2 + - uid: 14124 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 48.5,36.5 + parent: 2 + - uid: 14125 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 47.5,36.5 + parent: 2 + - uid: 14126 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 49.5,37.5 + parent: 2 + - uid: 14127 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 49.5,40.5 + parent: 2 + - uid: 14128 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 63.5,56.5 + parent: 2 + - uid: 14129 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 63.5,57.5 + parent: 2 + - uid: 14130 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 62.5,58.5 + parent: 2 + - uid: 14131 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 61.5,59.5 + parent: 2 + - uid: 14132 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 61.5,61.5 + parent: 2 + - uid: 14133 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 58.5,63.5 + parent: 2 + - uid: 14134 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 59.5,63.5 + parent: 2 + - uid: 14135 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 59.5,65.5 + parent: 2 + - uid: 14136 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 61.5,63.5 + parent: 2 + - uid: 14137 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 61.5,64.5 + parent: 2 + - uid: 14138 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 61.5,65.5 + parent: 2 + - uid: 14139 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 63.5,65.5 + parent: 2 + - uid: 14140 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 63.5,63.5 + parent: 2 + - uid: 14141 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 64.5,63.5 + parent: 2 + - uid: 14142 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 65.5,63.5 + parent: 2 + - uid: 14143 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 66.5,63.5 + parent: 2 + - uid: 14144 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 67.5,63.5 + parent: 2 + - uid: 14145 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 67.5,65.5 + parent: 2 + - uid: 14146 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 69.5,63.5 + parent: 2 + - uid: 14147 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 69.5,64.5 + parent: 2 + - uid: 14148 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 69.5,65.5 + parent: 2 + - uid: 14149 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 71.5,65.5 + parent: 2 + - uid: 14150 + components: + - type: Transform + pos: 76.5,63.5 + parent: 2 + - uid: 14151 + components: + - type: Transform + pos: 77.5,63.5 + parent: 2 + - uid: 14152 + components: + - type: Transform + pos: 78.5,63.5 + parent: 2 + - uid: 14153 + components: + - type: Transform + pos: 81.5,63.5 + parent: 2 + - uid: 14154 + components: + - type: Transform + pos: 80.5,57.5 + parent: 2 + - uid: 14155 + components: + - type: Transform + pos: 81.5,58.5 + parent: 2 + - uid: 14156 + components: + - type: Transform + pos: 80.5,56.5 + parent: 2 + - uid: 14157 + components: + - type: Transform + pos: 80.5,55.5 + parent: 2 + - uid: 14158 + components: + - type: Transform + pos: 81.5,53.5 + parent: 2 + - uid: 14159 + components: + - type: Transform + pos: 69.5,46.5 + parent: 2 + - uid: 14160 + components: + - type: Transform + pos: 69.5,42.5 + parent: 2 + - uid: 14161 + components: + - type: Transform + pos: 72.5,42.5 + parent: 2 + - uid: 14162 + components: + - type: Transform + pos: 84.5,44.5 + parent: 2 + - uid: 14163 + components: + - type: Transform + pos: 84.5,43.5 + parent: 2 + - uid: 14164 + components: + - type: Transform + pos: 84.5,42.5 + parent: 2 + - uid: 14165 + components: + - type: Transform + pos: 79.5,44.5 + parent: 2 + - uid: 14166 + components: + - type: Transform + pos: 79.5,42.5 + parent: 2 + - uid: 14167 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 73.5,38.5 + parent: 2 + - uid: 14168 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 73.5,39.5 + parent: 2 + - uid: 14169 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 74.5,35.5 + parent: 2 + - uid: 14170 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 74.5,33.5 + parent: 2 + - uid: 14171 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 78.5,33.5 + parent: 2 + - uid: 14172 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 78.5,35.5 + parent: 2 + - uid: 14173 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 80.5,28.5 + parent: 2 + - uid: 14174 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 82.5,28.5 + parent: 2 + - uid: 14175 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 84.5,29.5 + parent: 2 + - uid: 14176 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 85.5,29.5 + parent: 2 + - uid: 14177 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 86.5,29.5 + parent: 2 + - uid: 14178 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 88.5,31.5 + parent: 2 + - uid: 14179 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 88.5,32.5 + parent: 2 + - uid: 14180 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 88.5,33.5 + parent: 2 + - uid: 14181 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 88.5,34.5 + parent: 2 + - uid: 14182 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 88.5,35.5 + parent: 2 + - uid: 14183 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 88.5,36.5 + parent: 2 + - uid: 14184 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 88.5,37.5 + parent: 2 + - uid: 14185 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 84.5,25.5 + parent: 2 + - uid: 14186 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 84.5,39.5 + parent: 2 + - uid: 14187 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 85.5,39.5 + parent: 2 + - uid: 14188 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 86.5,39.5 + parent: 2 + - uid: 14189 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 84.5,24.5 + parent: 2 + - uid: 14190 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 84.5,23.5 + parent: 2 + - uid: 14191 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 84.5,22.5 + parent: 2 + - uid: 14192 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 77.5,17.5 + parent: 2 + - uid: 14193 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 77.5,15.5 + parent: 2 + - uid: 14194 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 75.5,8.5 + parent: 2 + - uid: 14195 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 76.5,8.5 + parent: 2 + - uid: 14196 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 77.5,8.5 + parent: 2 + - uid: 14197 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 77.5,6.5 + parent: 2 + - uid: 14198 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 77.5,5.5 + parent: 2 + - uid: 14199 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 77.5,4.5 + parent: 2 + - uid: 14200 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 77.5,3.5 + parent: 2 + - uid: 14201 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 77.5,2.5 + parent: 2 + - uid: 14202 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 77.5,1.5 + parent: 2 + - uid: 14203 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 75.5,1.5 + parent: 2 + - uid: 14204 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 75.5,-0.5 + parent: 2 + - uid: 14205 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 74.5,-4.5 + parent: 2 + - uid: 14206 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 77.5,-0.5 + parent: 2 + - uid: 14207 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 76.5,-0.5 + parent: 2 + - uid: 14208 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 74.5,-3.5 + parent: 2 + - uid: 14209 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 74.5,-2.5 + parent: 2 + - uid: 14210 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 68.5,2.5 + parent: 2 + - uid: 14211 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 63.5,7.5 + parent: 2 + - uid: 14212 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 64.5,7.5 + parent: 2 + - uid: 14213 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 66.5,7.5 + parent: 2 + - uid: 14214 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 67.5,7.5 + parent: 2 + - uid: 14215 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 69.5,5.5 + parent: 2 + - uid: 14216 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 70.5,5.5 + parent: 2 + - uid: 14217 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 71.5,5.5 + parent: 2 + - uid: 14218 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 71.5,6.5 + parent: 2 + - uid: 14219 + components: + - type: Transform + pos: 68.5,13.5 + parent: 2 + - uid: 14220 + components: + - type: Transform + pos: 68.5,14.5 + parent: 2 + - uid: 14221 + components: + - type: Transform + pos: 68.5,15.5 + parent: 2 + - uid: 14222 + components: + - type: Transform + pos: 73.5,12.5 + parent: 2 + - uid: 14223 + components: + - type: Transform + pos: 71.5,12.5 + parent: 2 + - uid: 14224 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -3.5,32.5 + parent: 2 + - uid: 14225 + components: + - type: Transform + pos: 5.5,17.5 + parent: 2 + - uid: 14226 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 54.5,17.5 + parent: 2 + - uid: 14227 + components: + - type: Transform + pos: 34.5,50.5 + parent: 2 + - uid: 14228 + components: + - type: Transform + pos: 67.5,24.5 + parent: 2 + - uid: 14229 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 22.5,22.5 + parent: 2 + - uid: 14230 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 21.5,22.5 + parent: 2 + - uid: 14231 + components: + - type: Transform + pos: 81.5,51.5 + parent: 2 + - uid: 14232 + components: + - type: Transform + pos: 81.5,50.5 + parent: 2 + - uid: 14233 + components: + - type: Transform + pos: 81.5,49.5 + parent: 2 + - uid: 14234 + components: + - type: Transform + pos: 67.5,25.5 + parent: 2 + - uid: 14235 + components: + - type: Transform + pos: -32.5,32.5 + parent: 2 + - uid: 14236 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -15.5,21.5 + parent: 2 + - uid: 14237 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -11.5,24.5 + parent: 2 + - uid: 14238 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -11.5,23.5 + parent: 2 + - uid: 14239 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -14.5,21.5 + parent: 2 + - uid: 14240 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 2.5,28.5 + parent: 2 + - uid: 14241 + components: + - type: Transform + pos: -1.5,31.5 + parent: 2 + - uid: 14242 + components: + - type: Transform + pos: -1.5,29.5 + parent: 2 + - uid: 14243 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 2.5,27.5 + parent: 2 + - uid: 14244 + components: + - type: Transform + pos: -5.5,18.5 + parent: 2 + - uid: 14245 + components: + - type: Transform + pos: 2.5,34.5 + parent: 2 + - uid: 14246 + components: + - type: Transform + pos: 2.5,33.5 + parent: 2 + - uid: 14247 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 31.5,-11.5 + parent: 2 + - uid: 14248 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 30.5,-11.5 + parent: 2 + - uid: 14249 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 24.5,-11.5 + parent: 2 + - uid: 14250 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 24.5,-10.5 + parent: 2 + - uid: 14251 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 25.5,-10.5 + parent: 2 + - uid: 14252 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 25.5,-12.5 + parent: 2 + - uid: 14253 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 27.5,-10.5 + parent: 2 + - uid: 14254 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 27.5,-11.5 + parent: 2 + - uid: 14255 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 27.5,-12.5 + parent: 2 + - uid: 14256 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 24.5,-12.5 + parent: 2 + - uid: 15257 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 67.5,30.5 + parent: 2 + - uid: 15283 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 67.5,29.5 + parent: 2 + - uid: 15524 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -31.5,78.5 + parent: 2 + - uid: 17821 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -33.5,77.5 + parent: 2 + - uid: 17825 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -32.5,78.5 + parent: 2 + - uid: 17833 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 57.5,59.5 + parent: 2 + - uid: 17871 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -33.5,78.5 + parent: 2 + - uid: 18641 + components: + - type: Transform + pos: -6.5,19.5 + parent: 2 + - uid: 18944 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -22.5,75.5 + parent: 2 +- proto: RemoteSignaller + entities: + - uid: 14257 + components: + - type: Transform + pos: 41.68052,9.226255 + parent: 2 + - uid: 14258 + components: + - type: Transform + pos: 41.537052,9.226255 + parent: 2 + - uid: 14259 + components: + - type: Transform + pos: 41.35772,9.226255 + parent: 2 + - uid: 14260 + components: + - type: Transform + pos: 41.698452,8.921595 + parent: 2 + - uid: 14261 + components: + - type: Transform + pos: 41.465317,8.921595 + parent: 2 + - uid: 14262 + components: + - type: Transform + pos: 84.48523,35.66013 + parent: 2 +- proto: ResearchAndDevelopmentServer + entities: + - uid: 14263 + components: + - type: Transform + pos: 23.5,2.5 + parent: 2 +- proto: RevolverCapGun + entities: + - uid: 14265 + components: + - type: Transform + pos: 40.122246,38.6715 + parent: 2 +- proto: Rickenbacker4003Instrument + entities: + - uid: 19498 + components: + - type: Transform + pos: -31.48632,67.62706 + parent: 2 +- proto: RiotBulletShield + entities: + - uid: 14266 + components: + - type: Transform + pos: -19.35863,70.86299 + parent: 2 + - uid: 14267 + components: + - type: Transform + pos: -19.663498,70.88091 + parent: 2 + - uid: 14268 + components: + - type: Transform + pos: -19.19723,70.86299 + parent: 2 +- proto: RiotLaserShield + entities: + - uid: 14269 + components: + - type: Transform + pos: -19.717297,70.71962 + parent: 2 + - uid: 14270 + components: + - type: Transform + pos: -19.430363,70.71962 + parent: 2 + - uid: 14271 + components: + - type: Transform + pos: -19.107563,70.71962 + parent: 2 +- proto: RollerBedSpawnFolded + entities: + - uid: 14272 + components: + - type: Transform + pos: 7.360282,37.81381 + parent: 2 + - uid: 14273 + components: + - type: Transform + pos: 7.7667723,37.766018 + parent: 2 + - uid: 14274 + components: + - type: Transform + pos: 7.695039,37.443436 + parent: 2 +- proto: RubberStampApproved + entities: + - uid: 14275 + components: + - type: Transform + pos: 9.306652,12.787447 + parent: 2 + - uid: 14276 + components: + - type: Transform + pos: -19.227026,53.804455 + parent: 2 + - uid: 14277 + components: + - type: Transform + pos: -24.586525,55.52049 + parent: 2 + - uid: 14278 + components: + - type: Transform + pos: 19.013535,54.77198 + parent: 2 +- proto: RubberStampDenied + entities: + - uid: 14279 + components: + - type: Transform + pos: 9.270785,12.67992 + parent: 2 + - uid: 14280 + components: + - type: Transform + pos: -19.29876,53.613297 + parent: 2 + - uid: 14281 + components: + - type: Transform + pos: -24.443058,55.46075 + parent: 2 + - uid: 14282 + components: + - type: Transform + pos: 18.901236,54.687813 + parent: 2 +- proto: SalvageCanisterSpawner + entities: + - uid: 14290 + components: + - type: Transform + pos: 41.5,13.5 + parent: 2 + - uid: 14291 + components: + - type: Transform + pos: 41.5,12.5 + parent: 2 + - uid: 14292 + components: + - type: Transform + pos: 76.5,49.5 + parent: 2 + - uid: 14293 + components: + - type: Transform + pos: 76.5,50.5 + parent: 2 + - uid: 14294 + components: + - type: Transform + pos: 73.5,56.5 + parent: 2 + - uid: 14295 + components: + - type: Transform + pos: 73.5,57.5 + parent: 2 + - uid: 14296 + components: + - type: Transform + pos: 74.5,56.5 + parent: 2 + - uid: 14297 + components: + - type: Transform + pos: 44.5,6.5 + parent: 2 + - uid: 14298 + components: + - type: Transform + pos: 45.5,6.5 + parent: 2 + - uid: 14299 + components: + - type: Transform + pos: 45.5,7.5 + parent: 2 + - uid: 14300 + components: + - type: Transform + pos: 17.5,8.5 + parent: 2 + - uid: 14301 + components: + - type: Transform + pos: 17.5,9.5 + parent: 2 + - uid: 14302 + components: + - type: Transform + pos: 16.5,5.5 + parent: 2 + - uid: 14303 + components: + - type: Transform + pos: 11.5,63.5 + parent: 2 + - uid: 14304 + components: + - type: Transform + pos: 10.5,63.5 + parent: 2 + - uid: 14305 + components: + - type: Transform + pos: 9.5,63.5 + parent: 2 + - uid: 14306 + components: + - type: Transform + pos: 62.5,48.5 + parent: 2 + - uid: 14307 + components: + - type: Transform + pos: 61.5,48.5 + parent: 2 + - uid: 14308 + components: + - type: Transform + pos: 60.5,48.5 + parent: 2 + - uid: 14309 + components: + - type: Transform + pos: 32.5,60.5 + parent: 2 + - uid: 14310 + components: + - type: Transform + pos: 33.5,60.5 + parent: 2 + - uid: 14311 + components: + - type: Transform + pos: 34.5,60.5 + parent: 2 +- proto: SalvageLootSpawner + entities: + - uid: 14315 + components: + - type: Transform + pos: -13.5,-1.5 + parent: 2 + - uid: 14316 + components: + - type: Transform + pos: -13.5,-1.5 + parent: 2 +- proto: SalvageMagnet + entities: + - uid: 14317 + components: + - type: Transform + pos: -14.5,-9.5 + parent: 2 +- proto: SalvageMaterialCrateSpawner + entities: + - uid: 14318 + components: + - type: Transform + pos: -14.5,-3.5 + parent: 2 +- proto: Screen + entities: + - uid: 14319 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 67.5,57.5 + parent: 2 + - uid: 14320 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 63.5,63.5 + parent: 2 + - uid: 14321 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 67.5,63.5 + parent: 2 + - uid: 14322 + components: + - type: Transform + pos: 54.5,41.5 + parent: 2 + - uid: 14323 + components: + - type: Transform + pos: 71.5,36.5 + parent: 2 + - uid: 14324 + components: + - type: Transform + pos: 53.5,28.5 + parent: 2 + - uid: 14325 + components: + - type: Transform + pos: 30.5,32.5 + parent: 2 + - uid: 14326 + components: + - type: Transform + pos: 27.5,18.5 + parent: 2 + - uid: 14327 + components: + - type: Transform + pos: 13.5,15.5 + parent: 2 + - uid: 14328 + components: + - type: Transform + pos: -3.5,37.5 + parent: 2 + - uid: 14329 + components: + - type: Transform + pos: -2.5,57.5 + parent: 2 + - uid: 14330 + components: + - type: Transform + pos: -26.5,66.5 + parent: 2 + - uid: 14331 + components: + - type: Transform + pos: 67.5,59.5 + parent: 2 + - uid: 14332 + components: + - type: Transform + pos: 67.5,47.5 + parent: 2 + - uid: 14333 + components: + - type: Transform + pos: 87.5,38.5 + parent: 2 + - uid: 14334 + components: + - type: Transform + pos: 87.5,38.5 + parent: 2 + - uid: 14335 + components: + - type: Transform + pos: 87.5,30.5 + parent: 2 + - uid: 14336 + components: + - type: Transform + pos: -2.5,22.5 + parent: 2 + - uid: 14337 + components: + - type: Transform + pos: 3.5,22.5 + parent: 2 + - uid: 14338 + components: + - type: Transform + pos: 15.5,23.5 + parent: 2 + - uid: 14339 + components: + - type: Transform + pos: 13.5,18.5 + parent: 2 + - uid: 14340 + components: + - type: Transform + pos: 1.5,50.5 + parent: 2 + - uid: 14341 + components: + - type: Transform + pos: 3.5,54.5 + parent: 2 + - uid: 14342 + components: + - type: Transform + pos: 5.5,46.5 + parent: 2 + - uid: 14343 + components: + - type: Transform + pos: -12.5,46.5 + parent: 2 + - uid: 14344 + components: + - type: Transform + pos: -10.5,53.5 + parent: 2 + - uid: 14345 + components: + - type: Transform + pos: 3.5,61.5 + parent: 2 + - uid: 14346 + components: + - type: Transform + pos: 7.5,65.5 + parent: 2 + - uid: 14347 + components: + - type: Transform + pos: -0.5,76.5 + parent: 2 + - uid: 14348 + components: + - type: Transform + pos: 12.5,76.5 + parent: 2 + - uid: 14349 + components: + - type: Transform + pos: -8.5,63.5 + parent: 2 +- proto: Screwdriver + entities: + - uid: 14350 + components: + - type: Transform + pos: 36.470516,7.5765038 + parent: 2 + - uid: 14351 + components: + - type: Transform + pos: 51.508472,54.549034 + parent: 2 +- proto: SecurityTechFab + entities: + - uid: 14352 + components: + - type: Transform + pos: -14.5,69.5 + parent: 2 +- proto: SecurityTechFabCircuitboard + entities: + - uid: 14353 + components: + - type: Transform + pos: 29.380825,54.641865 + parent: 2 +- proto: SeedExtractor + entities: + - uid: 13232 + components: + - type: Transform + pos: -34.5,75.5 + parent: 2 + - uid: 14355 + components: + - type: Transform + pos: 10.5,73.5 + parent: 2 + - uid: 14356 + components: + - type: Transform + pos: 44.5,43.5 + parent: 2 +- proto: ShardGlass + entities: + - uid: 14357 + components: + - type: Transform + pos: 61.59341,51.289673 + parent: 2 + - uid: 14358 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 61.736877,51.450962 + parent: 2 + - uid: 14359 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 60.714676,50.895405 + parent: 2 + - uid: 14360 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 62.79495,53.673183 + parent: 2 + - uid: 14361 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 61.180943,53.529816 + parent: 2 +- proto: ShardGlassReinforced + entities: + - uid: 14362 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 62.79495,54.8739 + parent: 2 +- proto: SheetGlass + entities: + - uid: 14363 + components: + - type: Transform + pos: -2.4447641,36.554058 + parent: 2 + - uid: 14364 + components: + - type: Transform + pos: -2.4447641,36.554058 + parent: 2 + - uid: 14365 + components: + - type: Transform + pos: 50.558296,-1.3179386 + parent: 2 + - uid: 14366 + components: + - type: Transform + pos: 59.482616,22.567444 + parent: 2 + - uid: 14367 + components: + - type: Transform + pos: 46.523014,24.546581 + parent: 2 + - uid: 14368 + components: + - type: Transform + pos: 46.523014,24.546581 + parent: 2 + - uid: 14369 + components: + - type: Transform + pos: 46.611263,31.55423 + parent: 2 + - uid: 14370 + components: + - type: Transform + pos: 71.534035,46.549133 + parent: 2 + - uid: 14371 + components: + - type: Transform + pos: 71.534035,46.549133 + parent: 2 + - uid: 14372 + components: + - type: Transform + pos: 71.52,42.63534 + parent: 2 + - uid: 14373 + components: + - type: Transform + pos: 71.52,42.63534 + parent: 2 + - uid: 14374 + components: + - type: Transform + pos: -37.44304,34.681297 + parent: 2 + - uid: 14375 + components: + - type: Transform + pos: -14.5,-1.5 + parent: 2 + - uid: 14376 + components: + - type: Transform + pos: 0.5,12.5 + parent: 2 +- proto: SheetPlasma + entities: + - uid: 14377 + components: + - type: Transform + pos: 52.55033,-1.3658054 + parent: 2 + - uid: 14378 + components: + - type: Transform + pos: -35.4883,39.519226 + parent: 2 +- proto: SheetPlasma1 + entities: + - uid: 14379 + components: + - type: Transform + pos: 27.473671,38.56969 + parent: 2 + - uid: 14380 + components: + - type: Transform + pos: 27.473671,38.56969 + parent: 2 + - uid: 14381 + components: + - type: Transform + pos: 27.473671,38.56969 + parent: 2 +- proto: SheetPlasteel + entities: + - uid: 14382 + components: + - type: Transform + pos: -24.48612,43.60266 + parent: 2 + - uid: 14383 + components: + - type: Transform + pos: 71.52,46.535103 + parent: 2 + - uid: 14384 + components: + - type: Transform + pos: 71.52,46.535103 + parent: 2 + - uid: 14385 + components: + - type: Transform + pos: -37.44304,34.663376 + parent: 2 + - uid: 14386 + components: + - type: Transform + pos: -14.5,-1.5 + parent: 2 +- proto: SheetPlastic + entities: + - uid: 14387 + components: + - type: Transform + pos: -2.4642558,36.554058 + parent: 2 + - uid: 14388 + components: + - type: Transform + pos: -2.4642558,36.554058 + parent: 2 + - uid: 14389 + components: + - type: Transform + pos: -2.4642558,36.554058 + parent: 2 + - uid: 14390 + components: + - type: Transform + pos: -18.479893,70.5512 + parent: 2 + - uid: 14391 + components: + - type: Transform + pos: -18.479893,70.5512 + parent: 2 + - uid: 14392 + components: + - type: Transform + pos: 59.482616,22.555496 + parent: 2 + - uid: 14393 + components: + - type: Transform + pos: 46.523014,24.546581 + parent: 2 + - uid: 14394 + components: + - type: Transform + pos: 46.523014,24.546581 + parent: 2 + - uid: 14395 + components: + - type: Transform + pos: -14.5,-1.5 + parent: 2 + - uid: 14396 + components: + - type: Transform + pos: 0.5,12.5 + parent: 2 +- proto: SheetSteel + entities: + - uid: 7303 + components: + - type: Transform + parent: 7298 + - type: Physics + angularDamping: 0 + linearDamping: 0 + canCollide: False + - type: InsideEntityStorage + - uid: 7304 + components: + - type: Transform + parent: 7298 + - type: Physics + angularDamping: 0 + linearDamping: 0 + canCollide: False + - type: InsideEntityStorage + - uid: 7305 + components: + - type: Transform + parent: 7298 + - type: Physics + angularDamping: 0 + linearDamping: 0 + canCollide: False + - type: InsideEntityStorage + - uid: 7306 + components: + - type: Transform + parent: 7298 + - type: Physics + angularDamping: 0 + linearDamping: 0 + canCollide: False + - type: InsideEntityStorage + - uid: 7307 + components: + - type: Transform + parent: 7298 + - type: Physics + angularDamping: 0 + linearDamping: 0 + canCollide: False + - type: InsideEntityStorage + - uid: 7308 + components: + - type: Transform + parent: 7298 + - type: Physics + angularDamping: 0 + linearDamping: 0 + canCollide: False + - type: InsideEntityStorage + - uid: 14397 + components: + - type: Transform + pos: -2.4588013,36.554058 + parent: 2 + - uid: 14398 + components: + - type: Transform + pos: -2.4588013,36.554058 + parent: 2 + - uid: 14399 + components: + - type: Transform + pos: -24.500158,43.616688 + parent: 2 + - uid: 14400 + components: + - type: Transform + pos: -18.479893,70.5512 + parent: 2 + - uid: 14401 + components: + - type: Transform + pos: -18.479893,70.5512 + parent: 2 + - uid: 14402 + components: + - type: Transform + pos: 59.494576,22.567444 + parent: 2 + - uid: 14403 + components: + - type: Transform + pos: 46.523014,24.546581 + parent: 2 + - uid: 14404 + components: + - type: Transform + pos: 46.523014,24.546581 + parent: 2 + - uid: 14405 + components: + - type: Transform + pos: 75.574974,62.543827 + parent: 2 + - uid: 14406 + components: + - type: Transform + pos: 75.574974,62.543827 + parent: 2 + - uid: 14407 + components: + - type: Transform + pos: 71.52,46.56316 + parent: 2 + - uid: 14408 + components: + - type: Transform + pos: 71.52,46.56316 + parent: 2 + - uid: 14409 + components: + - type: Transform + pos: -37.460976,34.663376 + parent: 2 + - uid: 14410 + components: + - type: Transform + pos: -14.5,-1.5 + parent: 2 + - uid: 14411 + components: + - type: Transform + pos: 0.5,12.5 + parent: 2 +- proto: SheetSteel1 + entities: + - uid: 14412 + components: + - type: Transform + pos: 38.58337,64.99815 + parent: 2 + - uid: 14413 + components: + - type: Transform + pos: 40.502243,66.01966 + parent: 2 + - uid: 14414 + components: + - type: Transform + pos: 40.717445,64.71142 + parent: 2 + - uid: 14415 + components: + - type: Transform + pos: 50.79256,50.235447 + parent: 2 + - uid: 14416 + components: + - type: Transform + pos: 50.308266,50.656284 + parent: 2 + - uid: 14417 + components: + - type: Transform + pos: 50.581997,54.570072 + parent: 2 + - uid: 14418 + components: + - type: Transform + pos: 29.45112,65.44453 + parent: 2 + - uid: 14419 + components: + - type: Transform + pos: 40.520176,66.396 + parent: 2 + - uid: 14420 + components: + - type: Transform + pos: 40.825043,65.82253 + parent: 2 + - uid: 14421 + components: + - type: Transform + pos: 38.83444,65.51787 + parent: 2 + - uid: 14422 + components: + - type: Transform + pos: 38.467144,65.58418 + parent: 2 +- proto: SheetUranium + entities: + - uid: 14423 + components: + - type: Transform + pos: -33.46183,39.4628 + parent: 2 +- proto: ShowcaseRobot + entities: + - uid: 14424 + components: + - type: Transform + pos: 28.5,-10.5 + parent: 2 + - uid: 14425 + components: + - type: Transform + pos: 28.5,-12.5 + parent: 2 +- proto: ShowcaseRobotMarauder + entities: + - uid: 14426 + components: + - type: Transform + pos: 28.5,-11.5 + parent: 2 +- proto: Shower + entities: + - uid: 7170 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 74.5,24.5 + parent: 2 + - type: Fixtures + fixtures: {} +- proto: ShuttersNormal + entities: + - uid: 14427 + components: + - type: Transform + pos: -10.5,64.5 + parent: 2 + - type: DeviceLinkSink + links: + - 14458 + - uid: 14428 + components: + - type: Transform + pos: -10.5,62.5 + parent: 2 + - type: DeviceLinkSink + links: + - 14458 + - uid: 14429 + components: + - type: Transform + pos: 34.5,43.5 + parent: 2 + - type: DeviceLinkSink + links: + - 14466 + - uid: 14430 + components: + - type: Transform + pos: 34.5,44.5 + parent: 2 + - type: DeviceLinkSink + links: + - 14466 + - uid: 14431 + components: + - type: Transform + pos: 34.5,45.5 + parent: 2 + - type: DeviceLinkSink + links: + - 14466 + - uid: 14432 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 69.5,43.5 + parent: 2 + - type: DeviceLinkSink + links: + - 14471 + - uid: 14433 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 72.5,43.5 + parent: 2 + - type: DeviceLinkSink + links: + - 14472 +- proto: ShuttersNormalOpen + entities: + - uid: 14434 + components: + - type: Transform + pos: 55.5,41.5 + parent: 2 + - type: DeviceLinkSink + links: + - 14463 + - uid: 14435 + components: + - type: Transform + pos: 56.5,41.5 + parent: 2 + - type: DeviceLinkSink + links: + - 14463 + - uid: 14436 + components: + - type: Transform + pos: 57.5,41.5 + parent: 2 + - type: DeviceLinkSink + links: + - 14463 + - uid: 14437 + components: + - type: Transform + pos: 59.5,39.5 + parent: 2 + - type: DeviceLinkSink + links: + - 14464 + - uid: 14438 + components: + - type: Transform + pos: 59.5,38.5 + parent: 2 + - type: DeviceLinkSink + links: + - 14464 + - uid: 14439 + components: + - type: Transform + pos: 59.5,37.5 + parent: 2 + - type: DeviceLinkSink + links: + - 14464 + - uid: 14440 + components: + - type: Transform + pos: 30.5,-10.5 + parent: 2 + - type: DeviceLinkSink + links: + - 14476 + - uid: 14441 + components: + - type: Transform + pos: 30.5,-12.5 + parent: 2 + - type: DeviceLinkSink + links: + - 14477 +- proto: ShuttersRadiation + entities: + - uid: 14442 + components: + - type: Transform + pos: -20.5,30.5 + parent: 2 + - type: DeviceLinkSink + links: + - 14473 + - uid: 14443 + components: + - type: Transform + pos: -19.5,30.5 + parent: 2 + - type: DeviceLinkSink + links: + - 14473 + - uid: 14444 + components: + - type: Transform + pos: -18.5,30.5 + parent: 2 + - type: DeviceLinkSink + links: + - 14473 + - uid: 14445 + components: + - type: Transform + pos: -20.5,38.5 + parent: 2 + - type: DeviceLinkSink + links: + - 14474 + - uid: 14446 + components: + - type: Transform + pos: -19.5,38.5 + parent: 2 + - type: DeviceLinkSink + links: + - 14474 + - uid: 14447 + components: + - type: Transform + pos: -18.5,38.5 + parent: 2 + - type: DeviceLinkSink + links: + - 14474 + - uid: 14448 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -23.5,35.5 + parent: 2 + - type: DeviceLinkSink + links: + - 14475 + - uid: 14449 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -23.5,34.5 + parent: 2 + - type: DeviceLinkSink + links: + - 14475 + - uid: 14450 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -23.5,33.5 + parent: 2 + - type: DeviceLinkSink + links: + - 14475 +- proto: ShuttersWindow + entities: + - uid: 14451 + components: + - type: Transform + pos: -13.5,64.5 + parent: 2 + - type: DeviceLinkSink + links: + - 14458 +- proto: ShuttleConsoleCircuitboard + entities: + - uid: 14452 + components: + - type: Transform + pos: -26.731066,43.39053 + parent: 2 +- proto: SignAi + entities: + - uid: 14453 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 36.5,2.5 + parent: 2 + - uid: 14454 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 34.5,-7.5 + parent: 2 + - uid: 14455 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 32.5,-7.5 + parent: 2 + - uid: 18898 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 42.5,30.5 + parent: 2 + - uid: 18899 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 40.5,30.5 + parent: 2 + - uid: 18900 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 43.5,32.5 + parent: 2 + - uid: 18901 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 39.5,32.5 + parent: 2 +- proto: SignalButton + entities: + - uid: 14456 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 3.5,2.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 810: + - Pressed: Toggle + 809: + - Pressed: Toggle + - uid: 14457 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -36.5,24.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 812: + - Pressed: Toggle + 813: + - Pressed: Toggle + 814: + - Pressed: Toggle + - uid: 14458 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -13.5,65.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 14451: + - Pressed: Toggle + 14427: + - Pressed: Toggle + 14428: + - Pressed: Toggle + - uid: 14459 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 8.5,3.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 811: + - Pressed: Toggle + 13781: + - Pressed: Off + - uid: 14460 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -2.5,2.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 808: + - Pressed: Toggle + 806: + - Pressed: Toggle + - uid: 14461 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 33.5,1.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 807: + - Pressed: Toggle + - uid: 14462 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 22.5,63.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 815: + - Pressed: Toggle + 816: + - Pressed: Toggle + - uid: 14463 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 58.5,42.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 14434: + - Pressed: Toggle + 14435: + - Pressed: Toggle + 14436: + - Pressed: Toggle + - uid: 14464 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 63.5,40.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 14439: + - Pressed: Toggle + 14438: + - Pressed: Toggle + 14437: + - Pressed: Toggle + - uid: 14465 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 39.5,50.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 12666: + - Pressed: Toggle + - uid: 14466 + components: + - type: Transform + pos: 35.5,46.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 14429: + - Pressed: Toggle + 14430: + - Pressed: Toggle + 14431: + - Pressed: Toggle + - uid: 14467 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 15.5,26.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 827: + - Pressed: Toggle + 826: + - Pressed: Toggle + 824: + - Pressed: Toggle + 825: + - Pressed: Toggle + - uid: 14468 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 3.5,45.5 + parent: 2 + - uid: 14469 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 3.5,45.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 828: + - Pressed: Toggle + - uid: 14470 + components: + - type: Transform + pos: 79.5,63.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 817: + - Pressed: Toggle + 818: + - Pressed: Toggle + 819: + - Pressed: Toggle + 820: + - Pressed: Toggle + - uid: 14471 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 69.5,44.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 14432: + - Pressed: Toggle + - uid: 14472 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 72.5,44.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 14433: + - Pressed: Toggle + - uid: 14473 + components: + - type: Transform + pos: -21.5,30.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 14442: + - Pressed: Toggle + 14443: + - Pressed: Toggle + 14444: + - Pressed: Toggle + - uid: 14474 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -21.5,38.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 14446: + - Pressed: Toggle + 14447: + - Pressed: Toggle + 14445: + - Pressed: Toggle + - uid: 14475 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -23.5,36.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 14450: + - Pressed: Toggle + 14449: + - Pressed: Toggle + 14448: + - Pressed: Toggle + - uid: 14476 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 30.5,-9.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 14440: + - Pressed: Toggle + - uid: 14477 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 30.5,-13.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 14441: + - Pressed: Toggle +- proto: SignalButtonExt3 + entities: + - uid: 14478 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 34.5,9.5 + parent: 2 +- proto: SignalTrigger + entities: + - uid: 14479 + components: + - type: Transform + pos: 41.447384,9.674284 + parent: 2 + - uid: 14480 + components: + - type: Transform + pos: 41.75225,9.602598 + parent: 2 + - uid: 14481 + components: + - type: Transform + pos: 41.465317,9.495071 + parent: 2 + - uid: 14482 + components: + - type: Transform + pos: 41.734318,9.45923 + parent: 2 +- proto: SignAnomaly + entities: + - uid: 14483 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 40.5,14.5 + parent: 2 + - uid: 18668 + components: + - type: Transform + pos: 38.5,14.5 + parent: 2 +- proto: SignAnomaly2 + entities: + - uid: 14484 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 48.5,12.5 + parent: 2 + - uid: 18665 + components: + - type: Transform + pos: 50.5,12.5 + parent: 2 +- proto: SignArmory + entities: + - uid: 14485 + components: + - type: Transform + pos: -18.5,59.5 + parent: 2 + - uid: 14486 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 38.5,63.5 + parent: 2 +- proto: SignAtmos + entities: + - uid: 15902 + components: + - type: Transform + pos: -6.5,21.5 + parent: 2 + - uid: 18647 + components: + - type: Transform + pos: -6.5,19.5 + parent: 2 +- proto: SignBar + entities: + - uid: 18907 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 61.5,36.5 + parent: 2 +- proto: SignBridge + entities: + - uid: 14487 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 73.5,36.5 + parent: 2 + - uid: 14488 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 73.5,32.5 + parent: 2 +- proto: SignCanisters + entities: + - uid: 18669 + components: + - type: Transform + pos: 37.5,17.5 + parent: 2 +- proto: SignCargo + entities: + - uid: 18649 + components: + - type: Transform + pos: 6.5,18.5 + parent: 2 + - uid: 18650 + components: + - type: Transform + pos: 12.5,18.5 + parent: 2 + - uid: 18651 + components: + - type: Transform + pos: 9.5,18.5 + parent: 2 +- proto: SignCargoDock + entities: + - uid: 14489 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 0.5,0.5 + parent: 2 + - uid: 18648 + components: + - type: Transform + pos: 0.5,2.5 + parent: 2 +- proto: SignChapel + entities: + - uid: 11530 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 8.5,50.5 + parent: 2 + - uid: 18762 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 7.5,54.5 + parent: 2 + - uid: 18767 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 15.5,54.5 + parent: 2 + - uid: 18768 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 11.5,58.5 + parent: 2 + - uid: 18769 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 9.5,58.5 + parent: 2 +- proto: SignChem + entities: + - uid: 18678 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 12.5,23.5 + parent: 2 + - uid: 18679 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 15.5,24.5 + parent: 2 + - uid: 18680 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 11.5,29.5 + parent: 2 + - uid: 18681 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 14.5,29.5 + parent: 2 +- proto: SignCloning + entities: + - uid: 18531 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 19.5,26.5 + parent: 2 + - uid: 18532 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 24.5,26.5 + parent: 2 + - uid: 18692 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 22.5,29.5 + parent: 2 +- proto: SignConference + entities: + - uid: 18846 + components: + - type: Transform + pos: 80.5,28.5 + parent: 2 + - uid: 18847 + components: + - type: Transform + pos: 82.5,28.5 + parent: 2 +- proto: SignDirectionalBar + entities: + - uid: 14490 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 11.457057,22.331598 + parent: 2 + - uid: 14491 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 57.564537,32.726562 + parent: 2 +- proto: SignDirectionalBridge + entities: + - uid: 14492 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 11.457057,22.52292 + parent: 2 + - uid: 14493 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 57.564537,32.55164 + parent: 2 + - uid: 14494 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 67.48477,32.84307 + parent: 2 +- proto: SignDirectionalBrig + entities: + - uid: 14495 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 0.51402026,18.637814 + parent: 2 + - uid: 14496 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 11.457057,22.741573 + parent: 2 +- proto: SignDirectionalChapel + entities: + - uid: 14497 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 0.5135876,18.439032 + parent: 2 + - uid: 14498 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 30.465134,45.907642 + parent: 2 + - uid: 14499 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 57.564537,32.365784 + parent: 2 +- proto: SignDirectionalCryo + entities: + - uid: 14500 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 57.564537,32.179924 + parent: 2 +- proto: SignDirectionalDorms + entities: + - uid: 6527 + components: + - type: Transform + pos: 24.5,18.5 + parent: 2 + - uid: 18895 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 18.5,18.5 + parent: 2 + - uid: 18896 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 34.5,21.5 + parent: 2 +- proto: SignDirectionalEng + entities: + - uid: 14501 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 29.435198,22.689903 + parent: 2 + - uid: 14502 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 11.466514,22.140951 + parent: 2 + - uid: 14503 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 0.51146495,18.835775 + parent: 2 + - uid: 14504 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 2.5333846,35.45002 + parent: 2 + - uid: 14505 + components: + - type: Transform + pos: 3.5816317,46.86425 + parent: 2 +- proto: SignDirectionalEvac + entities: + - uid: 14506 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 29.435198,22.500294 + parent: 2 + - uid: 14507 + components: + - type: Transform + pos: 30.47425,45.13257 + parent: 2 + - uid: 14508 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 34.529842,32.866547 + parent: 2 + - uid: 14509 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 11.438016,22.933979 + parent: 2 + - uid: 14510 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 1.2359343,18.556217 + parent: 2 + - uid: 14511 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 4.3095527,46.878128 + parent: 2 + - uid: 14512 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 57.551632,32.928596 + parent: 2 + - uid: 14513 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 63.5,32.5 + parent: 2 + - uid: 14514 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 63.5,12.5 + parent: 2 +- proto: SignDirectionalFood + entities: + - uid: 14515 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 34.540035,32.274406 + parent: 2 + - uid: 18904 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 52.5,41.5 + parent: 2 + - uid: 18905 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 62.5,36.5 + parent: 2 + - uid: 18906 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 48.5,32.5 + parent: 2 +- proto: SignDirectionalHop + entities: + - uid: 14516 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 34.535477,32.47484 + parent: 2 +- proto: SignDirectionalHydro + entities: + - uid: 14517 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 34.530006,32.672523 + parent: 2 + - uid: 14518 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 57.5536,31.778934 + parent: 2 +- proto: SignDirectionalLibrary + entities: + - uid: 14519 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 30.471582,45.722916 + parent: 2 +- proto: SignDirectionalLogistics + entities: + - uid: 14520 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 0.5143475,18.266033 + parent: 2 +- proto: SignDirectionalMed + entities: + - uid: 14521 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 3.5874171,46.685577 + parent: 2 +- proto: SignDirectionalSalvage + entities: + - uid: 18654 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -2.5,12.5 + parent: 2 +- proto: SignDirectionalSci + entities: + - uid: 14522 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 34.540035,32.073975 + parent: 2 + - uid: 14523 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 29.435198,22.322355 + parent: 2 + - uid: 14524 + components: + - type: Transform + pos: 57.5536,31.983139 + parent: 2 +- proto: SignDirectionalSec + entities: + - uid: 14525 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 3.5994487,46.4866 + parent: 2 + - uid: 14526 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 30.471582,45.522484 + parent: 2 +- proto: SignDirectionalSupply + entities: + - uid: 14527 + components: + - type: Transform + pos: 3.6103878,46.27888 + parent: 2 + - uid: 14528 + components: + - type: Transform + pos: 30.47067,45.322826 + parent: 2 +- proto: SignDisposalSpace + entities: + - uid: 18675 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 8.5,6.5 + parent: 2 + - uid: 18676 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 10.5,1.5 + parent: 2 + - uid: 18677 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 11.5,6.5 + parent: 2 +- proto: SignDrones + entities: + - uid: 14529 + components: + - type: Transform + pos: 36.5,51.5 + parent: 2 +- proto: SignElectricalMed + entities: + - uid: 14532 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -13.5,75.5 + parent: 2 + - uid: 14533 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -13.5,73.5 + parent: 2 +- proto: SignEngineering + entities: + - uid: 18657 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -1.5,36.5 + parent: 2 + - uid: 18658 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -1.5,34.5 + parent: 2 +- proto: SignEscapePods + entities: + - uid: 14535 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 13.5,73.5 + parent: 2 + - uid: 15734 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 32.5,6.5 + parent: 2 + - uid: 18910 + components: + - type: Transform + pos: 16.5,9.5 + parent: 2 + - uid: 18911 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 21.5,5.5 + parent: 2 + - uid: 18912 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 10.5,6.5 + parent: 2 + - uid: 18913 + components: + - type: Transform + pos: 18.5,3.5 + parent: 2 + - uid: 18914 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -36.5,56.5 + parent: 2 + - uid: 18915 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -39.5,58.5 + parent: 2 + - uid: 18917 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 15.5,76.5 + parent: 2 + - uid: 18918 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 73.5,19.5 + parent: 2 + - uid: 18919 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 81.5,18.5 + parent: 2 + - uid: 18920 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 77.5,17.5 + parent: 2 + - uid: 18937 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 57.5,59.5 + parent: 2 + - uid: 18938 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 55.5,55.5 + parent: 2 + - uid: 18939 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 46.5,57.5 + parent: 2 + - uid: 18940 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 58.5,47.5 + parent: 2 + - uid: 18941 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 38.5,58.5 + parent: 2 + - uid: 18942 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 63.5,48.5 + parent: 2 +- proto: SignEVA + entities: + - uid: 18663 + components: + - type: Transform + pos: 68.5,47.5 + parent: 2 + - uid: 18664 + components: + - type: Transform + pos: 68.5,41.5 + parent: 2 +- proto: SignGravity + entities: + - uid: 12624 + components: + - type: Transform + pos: -17.5,42.5 + parent: 2 + - uid: 12625 + components: + - type: Transform + pos: -22.5,47.5 + parent: 2 + - uid: 19050 + components: + - type: Transform + pos: -19.5,42.5 + parent: 2 + - uid: 19053 + components: + - type: Transform + pos: -18.5,47.5 + parent: 2 +- proto: SignHydro2 + entities: + - uid: 18897 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 46.5,36.5 + parent: 2 + - uid: 18902 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 44.5,36.5 + parent: 2 + - uid: 18903 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 49.5,40.5 + parent: 2 +- proto: SignJanitor + entities: + - uid: 14536 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 41.5,50.5 + parent: 2 +- proto: SignLibrary + entities: + - uid: 18763 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 15.5,51.5 + parent: 2 + - uid: 18764 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 22.5,50.5 + parent: 2 + - uid: 18765 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 26.5,50.5 + parent: 2 + - uid: 18766 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 18.5,57.5 + parent: 2 +- proto: SignMail + entities: + - uid: 14537 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -4.5,5.5 + parent: 2 + - uid: 14538 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -4.5,9.5 + parent: 2 +- proto: SignMedical + entities: + - uid: 14539 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 29.5,64.5 + parent: 2 + - uid: 18682 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 30.5,31.5 + parent: 2 + - uid: 18683 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 30.5,37.5 + parent: 2 + - uid: 18684 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 24.5,31.5 + parent: 2 + - uid: 18685 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 20.5,34.5 + parent: 2 + - uid: 18686 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 20.5,31.5 + parent: 2 + - uid: 18687 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 14.5,33.5 + parent: 2 + - uid: 18688 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 9.5,36.5 + parent: 2 + - uid: 18689 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 7.5,36.5 + parent: 2 + - uid: 18690 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 6.5,31.5 + parent: 2 + - uid: 18691 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 6.5,34.5 + parent: 2 +- proto: SignMorgue + entities: + - uid: 18693 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 14.5,45.5 + parent: 2 + - uid: 18694 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 16.5,40.5 + parent: 2 +- proto: SignNosmoking + entities: + - uid: 18695 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 28.5,37.5 + parent: 2 + - uid: 18696 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 28.5,30.5 + parent: 2 + - uid: 18697 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 21.5,36.5 + parent: 2 + - uid: 18698 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 20.5,29.5 + parent: 2 + - uid: 18699 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 7.5,30.5 + parent: 2 + - uid: 18700 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 4.5,30.5 + parent: 2 + - uid: 18701 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 14.5,28.5 + parent: 2 + - uid: 18702 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 11.5,23.5 + parent: 2 + - uid: 18703 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 19.5,23.5 + parent: 2 + - uid: 18704 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 24.5,28.5 + parent: 2 + - uid: 18705 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 30.5,26.5 + parent: 2 + - uid: 18706 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 15.5,37.5 + parent: 2 + - uid: 18707 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 10.5,41.5 + parent: 2 + - uid: 18708 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 10.5,37.5 + parent: 2 + - uid: 18709 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 4.5,42.5 + parent: 2 + - uid: 18710 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 9.5,43.5 + parent: 2 + - uid: 18711 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 16.5,46.5 + parent: 2 + - uid: 18712 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 18.5,41.5 + parent: 2 + - uid: 18713 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 10.5,46.5 + parent: 2 + - uid: 18714 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -7.5,26.5 + parent: 2 + - uid: 18715 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -7.5,18.5 + parent: 2 + - uid: 18716 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -6.5,22.5 + parent: 2 + - uid: 18717 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -12.5,21.5 + parent: 2 + - uid: 18718 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -12.5,17.5 + parent: 2 + - uid: 18719 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -16.5,17.5 + parent: 2 +- proto: SignPlaque + entities: + - uid: 14540 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 28.5,55.5 + parent: 2 +- proto: SignPrison + entities: + - uid: 14541 + components: + - type: Transform + pos: -33.5,59.5 + parent: 2 + - uid: 14542 + components: + - type: Transform + pos: -27.5,59.5 + parent: 2 +- proto: SignRND + entities: + - uid: 14543 + components: + - type: Transform + pos: 51.5,26.5 + parent: 2 + - uid: 18667 + components: + - type: Transform + pos: 51.5,24.5 + parent: 2 +- proto: SignRobo + entities: + - uid: 14544 + components: + - type: Transform + pos: 56.5,23.5 + parent: 2 +- proto: SignSalvage + entities: + - uid: 18652 + components: + - type: Transform + pos: -9.5,8.5 + parent: 2 + - uid: 18653 + components: + - type: Transform + pos: -12.5,10.5 + parent: 2 +- proto: SignScience + entities: + - uid: 18666 + components: + - type: Transform + pos: 53.5,32.5 + parent: 2 +- proto: SignSec + entities: + - uid: 18655 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -5.5,12.5 + parent: 2 + - uid: 18656 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -3.5,12.5 + parent: 2 + - uid: 18659 + components: + - type: Transform + pos: -13.5,50.5 + parent: 2 + - uid: 18661 + components: + - type: Transform + pos: -16.5,50.5 + parent: 2 + - uid: 18662 + components: + - type: Transform + pos: -6.5,50.5 + parent: 2 +- proto: SignShipDock + entities: + - uid: 18839 + components: + - type: Transform + pos: 63.5,54.5 + parent: 2 + - uid: 18840 + components: + - type: Transform + pos: 67.5,54.5 + parent: 2 + - uid: 18841 + components: + - type: Transform + pos: 63.5,65.5 + parent: 2 + - uid: 18842 + components: + - type: Transform + pos: 67.5,65.5 + parent: 2 + - uid: 18843 + components: + - type: Transform + pos: 71.5,65.5 + parent: 2 + - uid: 18844 + components: + - type: Transform + pos: 59.5,65.5 + parent: 2 + - uid: 18845 + components: + - type: Transform + pos: 65.5,63.5 + parent: 2 + - uid: 18922 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 75.5,-0.5 + parent: 2 + - uid: 18923 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 75.5,8.5 + parent: 2 + - uid: 18924 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 77.5,8.5 + parent: 2 + - uid: 18925 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 77.5,-0.5 + parent: 2 +- proto: SignSmoking + entities: + - uid: 18720 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -18.5,24.5 + parent: 2 + - uid: 18721 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -18.5,16.5 + parent: 2 + - uid: 18722 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -23.5,19.5 + parent: 2 + - uid: 18723 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -23.5,17.5 + parent: 2 + - uid: 18724 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -30.5,6.5 + parent: 2 + - uid: 18725 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -34.5,10.5 + parent: 2 + - uid: 18726 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -34.5,18.5 + parent: 2 + - uid: 18727 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -33.5,22.5 + parent: 2 + - uid: 18728 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -32.5,29.5 + parent: 2 + - uid: 18729 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -36.5,31.5 + parent: 2 + - uid: 18730 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -25.5,26.5 + parent: 2 + - uid: 18731 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -16.5,26.5 + parent: 2 + - uid: 18732 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -24.5,42.5 + parent: 2 + - uid: 18733 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -12.5,34.5 + parent: 2 + - uid: 18734 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -11.5,38.5 + parent: 2 +- proto: SignSomethingOld + entities: + - uid: 14545 + components: + - type: Transform + pos: 53.5,5.5 + parent: 2 +- proto: SignSomethingOld2 + entities: + - uid: 14546 + components: + - type: Transform + pos: 48.5,5.5 + parent: 2 +- proto: SignSpace + entities: + - uid: 18908 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 58.5,11.5 + parent: 2 + - uid: 18909 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 41.5,3.5 + parent: 2 + - uid: 18916 + components: + - type: Transform + pos: -38.5,55.5 + parent: 2 + - uid: 18921 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 72.5,-2.5 + parent: 2 +- proto: SignTelecomms + entities: + - uid: 14547 + components: + - type: Transform + pos: 34.5,51.5 + parent: 2 + - uid: 14548 + components: + - type: Transform + pos: 30.5,2.5 + parent: 2 + - uid: 14549 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -30.5,29.5 + parent: 2 +- proto: SignVirology + entities: + - uid: 18774 + components: + - type: Transform + pos: 22.5,42.5 + parent: 2 + - uid: 18775 + components: + - type: Transform + pos: 24.5,41.5 + parent: 2 + - uid: 18776 + components: + - type: Transform + pos: 25.5,43.5 + parent: 2 + - uid: 18777 + components: + - type: Transform + pos: 25.5,45.5 + parent: 2 +- proto: Sink + entities: + - uid: 14550 + components: + - type: Transform + pos: 50.5,31.5 + parent: 2 + - uid: 14551 + components: + - type: Transform + pos: 52.5,31.5 + parent: 2 +- proto: SinkWide + entities: + - uid: 14553 + components: + - type: Transform + pos: 60.5,40.5 + parent: 2 + - uid: 14554 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -35.5,61.5 + parent: 2 + - uid: 14555 + components: + - type: Transform + pos: 1.5,68.5 + parent: 2 + - uid: 14556 + components: + - type: Transform + pos: 2.5,68.5 + parent: 2 + - uid: 14557 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 57.5,45.5 + parent: 2 + - uid: 14558 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 12.5,33.5 + parent: 2 + - uid: 14559 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 26.5,43.5 + parent: 2 + - uid: 14862 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 74.5,25.5 + parent: 2 +- proto: SmartFridge + entities: + - uid: 14560 + components: + - type: Transform + pos: 51.5,44.5 + parent: 2 + - uid: 14561 + components: + - type: Transform + pos: 14.5,23.5 + parent: 2 + - uid: 14562 + components: + - type: Transform + pos: 13.5,29.5 + parent: 2 + - uid: 14563 + components: + - type: Transform + pos: 14.5,36.5 + parent: 2 + - uid: 14564 + components: + - type: Transform + pos: 29.5,44.5 + parent: 2 +- proto: SMESBasic + entities: + - uid: 14565 + components: + - type: Transform + pos: -14.5,45.5 + parent: 2 + - uid: 14566 + components: + - type: Transform + pos: -13.5,45.5 + parent: 2 + - uid: 14567 + components: + - type: Transform + pos: -12.5,45.5 + parent: 2 + - uid: 14568 + components: + - type: Transform + pos: 31.5,63.5 + parent: 2 + - uid: 14569 + components: + - type: Transform + pos: -20.5,8.5 + parent: 2 + - uid: 14570 + components: + - type: Transform + pos: 41.5,0.5 + parent: 2 + - uid: 14571 + components: + - type: Transform + pos: 31.5,-0.5 + parent: 2 + - uid: 14572 + components: + - type: Transform + pos: -30.5,36.5 + parent: 2 + - uid: 14573 + components: + - type: Transform + pos: 23.5,-11.5 + parent: 2 +- proto: SMESMachineCircuitboard + entities: + - uid: 14574 + components: + - type: Transform + pos: -26.888287,43.704742 + parent: 2 + - uid: 14575 + components: + - type: Transform + pos: -26.888287,43.704742 + parent: 2 +- proto: SoapNT + entities: + - uid: 14576 + components: + - type: Transform + pos: 74.49696,24.50985 + parent: 2 +- proto: soda_dispenser + entities: + - uid: 14577 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 62.5,38.5 + parent: 2 + - uid: 14578 + components: + - type: Transform + pos: 58.5,26.5 + parent: 2 +- proto: SolarControlComputerCircuitboard + entities: + - uid: 14579 + components: + - type: Transform + pos: -8.388496,44.46719 + parent: 2 +- proto: SolarPanel + entities: + - uid: 14580 + components: + - type: Transform + pos: -29.5,-10.5 + parent: 2 + - uid: 14581 + components: + - type: Transform + pos: -28.5,-10.5 + parent: 2 + - uid: 14582 + components: + - type: Transform + pos: -27.5,-10.5 + parent: 2 + - uid: 14583 + components: + - type: Transform + pos: -26.5,-10.5 + parent: 2 + - uid: 14584 + components: + - type: Transform + pos: -25.5,-10.5 + parent: 2 + - uid: 14585 + components: + - type: Transform + pos: 45.5,-20.5 + parent: 2 + - uid: 14586 + components: + - type: Transform + pos: 46.5,-20.5 + parent: 2 + - uid: 14587 + components: + - type: Transform + pos: 47.5,-20.5 + parent: 2 + - uid: 14588 + components: + - type: Transform + pos: 48.5,-20.5 + parent: 2 + - uid: 14589 + components: + - type: Transform + pos: 49.5,-20.5 + parent: 2 + - uid: 14590 + components: + - type: Transform + pos: 49.5,-22.5 + parent: 2 + - uid: 14591 + components: + - type: Transform + pos: 48.5,-22.5 + parent: 2 + - uid: 14592 + components: + - type: Transform + pos: 47.5,-22.5 + parent: 2 + - uid: 14593 + components: + - type: Transform + pos: 46.5,-22.5 + parent: 2 + - uid: 14594 + components: + - type: Transform + pos: 45.5,-22.5 + parent: 2 + - uid: 14595 + components: + - type: Transform + pos: 53.5,-22.5 + parent: 2 + - uid: 14596 + components: + - type: Transform + pos: 54.5,-22.5 + parent: 2 + - uid: 14597 + components: + - type: Transform + pos: 55.5,-22.5 + parent: 2 + - uid: 14598 + components: + - type: Transform + pos: 56.5,-22.5 + parent: 2 + - uid: 14599 + components: + - type: Transform + pos: 57.5,-22.5 + parent: 2 + - uid: 14600 + components: + - type: Transform + pos: 57.5,-20.5 + parent: 2 + - uid: 14601 + components: + - type: Transform + pos: 56.5,-20.5 + parent: 2 + - uid: 14602 + components: + - type: Transform + pos: 55.5,-20.5 + parent: 2 + - uid: 14603 + components: + - type: Transform + pos: 54.5,-20.5 + parent: 2 + - uid: 14604 + components: + - type: Transform + pos: 53.5,-20.5 + parent: 2 + - uid: 14605 + components: + - type: Transform + pos: 57.5,-18.5 + parent: 2 + - uid: 14606 + components: + - type: Transform + pos: 56.5,-18.5 + parent: 2 + - uid: 14607 + components: + - type: Transform + pos: 55.5,-18.5 + parent: 2 + - uid: 14608 + components: + - type: Transform + pos: 54.5,-18.5 + parent: 2 + - uid: 14609 + components: + - type: Transform + pos: 53.5,-18.5 + parent: 2 + - uid: 14610 + components: + - type: Transform + pos: 57.5,-14.5 + parent: 2 + - uid: 14611 + components: + - type: Transform + pos: 57.5,-16.5 + parent: 2 + - uid: 14612 + components: + - type: Transform + pos: 56.5,-16.5 + parent: 2 + - uid: 14613 + components: + - type: Transform + pos: 55.5,-16.5 + parent: 2 + - uid: 14614 + components: + - type: Transform + pos: 54.5,-16.5 + parent: 2 + - uid: 14615 + components: + - type: Transform + pos: 53.5,-16.5 + parent: 2 + - uid: 14616 + components: + - type: Transform + pos: 56.5,-14.5 + parent: 2 + - uid: 14617 + components: + - type: Transform + pos: 55.5,-14.5 + parent: 2 + - uid: 14618 + components: + - type: Transform + pos: 54.5,-14.5 + parent: 2 + - uid: 14619 + components: + - type: Transform + pos: 53.5,-14.5 + parent: 2 + - uid: 14620 + components: + - type: Transform + pos: 57.5,-12.5 + parent: 2 + - uid: 14621 + components: + - type: Transform + pos: 56.5,-12.5 + parent: 2 + - uid: 14622 + components: + - type: Transform + pos: 55.5,-12.5 + parent: 2 + - uid: 14623 + components: + - type: Transform + pos: 54.5,-12.5 + parent: 2 + - uid: 14624 + components: + - type: Transform + pos: 53.5,-12.5 + parent: 2 + - uid: 14625 + components: + - type: Transform + pos: 49.5,-12.5 + parent: 2 + - uid: 14626 + components: + - type: Transform + pos: 48.5,-12.5 + parent: 2 + - uid: 14627 + components: + - type: Transform + pos: 47.5,-12.5 + parent: 2 + - uid: 14628 + components: + - type: Transform + pos: 46.5,-12.5 + parent: 2 + - uid: 14629 + components: + - type: Transform + pos: 45.5,-12.5 + parent: 2 + - uid: 14630 + components: + - type: Transform + pos: 45.5,-14.5 + parent: 2 + - uid: 14631 + components: + - type: Transform + pos: 46.5,-14.5 + parent: 2 + - uid: 14632 + components: + - type: Transform + pos: 47.5,-14.5 + parent: 2 + - uid: 14633 + components: + - type: Transform + pos: 48.5,-14.5 + parent: 2 + - uid: 14634 + components: + - type: Transform + pos: 49.5,-14.5 + parent: 2 + - uid: 14635 + components: + - type: Transform + pos: 49.5,-16.5 + parent: 2 + - uid: 14636 + components: + - type: Transform + pos: 48.5,-16.5 + parent: 2 + - uid: 14637 + components: + - type: Transform + pos: 47.5,-16.5 + parent: 2 + - uid: 14638 + components: + - type: Transform + pos: 46.5,-16.5 + parent: 2 + - uid: 14639 + components: + - type: Transform + pos: 45.5,-16.5 + parent: 2 + - uid: 14640 + components: + - type: Transform + pos: 45.5,-18.5 + parent: 2 + - uid: 14641 + components: + - type: Transform + pos: 46.5,-18.5 + parent: 2 + - uid: 14642 + components: + - type: Transform + pos: 47.5,-18.5 + parent: 2 + - uid: 14643 + components: + - type: Transform + pos: 48.5,-18.5 + parent: 2 + - uid: 14644 + components: + - type: Transform + pos: 49.5,-18.5 + parent: 2 + - uid: 14645 + components: + - type: Transform + pos: -28.5,-2.5 + parent: 2 + - uid: 14646 + components: + - type: Transform + pos: -27.5,-2.5 + parent: 2 + - uid: 14647 + components: + - type: Transform + pos: -26.5,-2.5 + parent: 2 + - uid: 14648 + components: + - type: Transform + pos: -25.5,-2.5 + parent: 2 + - uid: 14649 + components: + - type: Transform + pos: -24.5,-2.5 + parent: 2 + - uid: 14650 + components: + - type: Transform + pos: -24.5,-4.5 + parent: 2 + - uid: 14651 + components: + - type: Transform + pos: -25.5,-4.5 + parent: 2 + - uid: 14652 + components: + - type: Transform + pos: -26.5,-4.5 + parent: 2 + - uid: 14653 + components: + - type: Transform + pos: -27.5,-4.5 + parent: 2 + - uid: 14654 + components: + - type: Transform + pos: -28.5,-4.5 + parent: 2 + - uid: 14655 + components: + - type: Transform + pos: -28.5,-6.5 + parent: 2 + - uid: 14656 + components: + - type: Transform + pos: -27.5,-6.5 + parent: 2 + - uid: 14657 + components: + - type: Transform + pos: -26.5,-6.5 + parent: 2 + - uid: 14658 + components: + - type: Transform + pos: -25.5,-6.5 + parent: 2 + - uid: 14659 + components: + - type: Transform + pos: -24.5,-6.5 + parent: 2 + - uid: 14660 + components: + - type: Transform + pos: -24.5,-8.5 + parent: 2 + - uid: 14661 + components: + - type: Transform + pos: -25.5,-8.5 + parent: 2 + - uid: 14662 + components: + - type: Transform + pos: -26.5,-8.5 + parent: 2 + - uid: 14663 + components: + - type: Transform + pos: -27.5,-8.5 + parent: 2 + - uid: 14664 + components: + - type: Transform + pos: -28.5,-8.5 + parent: 2 + - uid: 14665 + components: + - type: Transform + pos: -29.5,-12.5 + parent: 2 + - uid: 14666 + components: + - type: Transform + pos: -28.5,-12.5 + parent: 2 + - uid: 14667 + components: + - type: Transform + pos: -27.5,-12.5 + parent: 2 + - uid: 14668 + components: + - type: Transform + pos: -26.5,-12.5 + parent: 2 + - uid: 14669 + components: + - type: Transform + pos: -25.5,-12.5 + parent: 2 + - uid: 14670 + components: + - type: Transform + pos: -30.5,-16.5 + parent: 2 + - uid: 14671 + components: + - type: Transform + pos: -29.5,-16.5 + parent: 2 + - uid: 14672 + components: + - type: Transform + pos: -28.5,-16.5 + parent: 2 + - uid: 14673 + components: + - type: Transform + pos: -27.5,-16.5 + parent: 2 + - uid: 14674 + components: + - type: Transform + pos: -26.5,-16.5 + parent: 2 + - uid: 14675 + components: + - type: Transform + pos: 35.5,79.5 + parent: 2 + - uid: 14676 + components: + - type: Transform + pos: 36.5,79.5 + parent: 2 + - uid: 14677 + components: + - type: Transform + pos: 37.5,79.5 + parent: 2 + - uid: 14678 + components: + - type: Transform + pos: 38.5,79.5 + parent: 2 + - uid: 14679 + components: + - type: Transform + pos: 39.5,79.5 + parent: 2 + - uid: 14680 + components: + - type: Transform + pos: 39.5,77.5 + parent: 2 + - uid: 14681 + components: + - type: Transform + pos: 38.5,77.5 + parent: 2 + - uid: 14682 + components: + - type: Transform + pos: 37.5,77.5 + parent: 2 + - uid: 14683 + components: + - type: Transform + pos: 36.5,77.5 + parent: 2 + - uid: 14684 + components: + - type: Transform + pos: 35.5,77.5 + parent: 2 + - uid: 14685 + components: + - type: Transform + pos: 39.5,75.5 + parent: 2 + - uid: 14686 + components: + - type: Transform + pos: 38.5,75.5 + parent: 2 + - uid: 14687 + components: + - type: Transform + pos: 37.5,75.5 + parent: 2 + - uid: 14688 + components: + - type: Transform + pos: 36.5,75.5 + parent: 2 + - uid: 14689 + components: + - type: Transform + pos: 35.5,75.5 + parent: 2 + - uid: 14690 + components: + - type: Transform + pos: 39.5,73.5 + parent: 2 + - uid: 14691 + components: + - type: Transform + pos: 38.5,73.5 + parent: 2 + - uid: 14692 + components: + - type: Transform + pos: 37.5,73.5 + parent: 2 + - uid: 14693 + components: + - type: Transform + pos: 36.5,73.5 + parent: 2 + - uid: 14694 + components: + - type: Transform + pos: 35.5,73.5 + parent: 2 + - uid: 14695 + components: + - type: Transform + pos: 39.5,71.5 + parent: 2 + - uid: 14696 + components: + - type: Transform + pos: 38.5,71.5 + parent: 2 + - uid: 14697 + components: + - type: Transform + pos: 37.5,71.5 + parent: 2 + - uid: 14698 + components: + - type: Transform + pos: 36.5,71.5 + parent: 2 + - uid: 14699 + components: + - type: Transform + pos: 35.5,71.5 + parent: 2 + - uid: 14700 + components: + - type: Transform + pos: 39.5,69.5 + parent: 2 + - uid: 14701 + components: + - type: Transform + pos: 38.5,69.5 + parent: 2 + - uid: 14702 + components: + - type: Transform + pos: 37.5,69.5 + parent: 2 + - uid: 14703 + components: + - type: Transform + pos: 36.5,69.5 + parent: 2 + - uid: 14704 + components: + - type: Transform + pos: 35.5,69.5 + parent: 2 + - uid: 14705 + components: + - type: Transform + pos: 31.5,69.5 + parent: 2 + - uid: 14706 + components: + - type: Transform + pos: 30.5,69.5 + parent: 2 + - uid: 14707 + components: + - type: Transform + pos: 29.5,69.5 + parent: 2 + - uid: 14708 + components: + - type: Transform + pos: 28.5,69.5 + parent: 2 + - uid: 14709 + components: + - type: Transform + pos: 27.5,69.5 + parent: 2 + - uid: 14710 + components: + - type: Transform + pos: 27.5,71.5 + parent: 2 + - uid: 14711 + components: + - type: Transform + pos: 28.5,71.5 + parent: 2 + - uid: 14712 + components: + - type: Transform + pos: 29.5,71.5 + parent: 2 + - uid: 14713 + components: + - type: Transform + pos: 30.5,71.5 + parent: 2 + - uid: 14714 + components: + - type: Transform + pos: 31.5,71.5 + parent: 2 + - uid: 14715 + components: + - type: Transform + pos: 31.5,73.5 + parent: 2 + - uid: 14716 + components: + - type: Transform + pos: 30.5,73.5 + parent: 2 + - uid: 14717 + components: + - type: Transform + pos: 29.5,73.5 + parent: 2 + - uid: 14718 + components: + - type: Transform + pos: 28.5,73.5 + parent: 2 + - uid: 14719 + components: + - type: Transform + pos: 27.5,73.5 + parent: 2 + - uid: 14720 + components: + - type: Transform + pos: 27.5,75.5 + parent: 2 + - uid: 14721 + components: + - type: Transform + pos: 28.5,75.5 + parent: 2 + - uid: 14722 + components: + - type: Transform + pos: 29.5,75.5 + parent: 2 + - uid: 14723 + components: + - type: Transform + pos: 30.5,75.5 + parent: 2 + - uid: 14724 + components: + - type: Transform + pos: 31.5,75.5 + parent: 2 + - uid: 14725 + components: + - type: Transform + pos: 31.5,77.5 + parent: 2 + - uid: 14726 + components: + - type: Transform + pos: 30.5,77.5 + parent: 2 + - uid: 14727 + components: + - type: Transform + pos: 29.5,77.5 + parent: 2 + - uid: 14728 + components: + - type: Transform + pos: 28.5,77.5 + parent: 2 + - uid: 14729 + components: + - type: Transform + pos: 27.5,77.5 + parent: 2 + - uid: 14730 + components: + - type: Transform + pos: 27.5,79.5 + parent: 2 + - uid: 14731 + components: + - type: Transform + pos: 28.5,79.5 + parent: 2 + - uid: 14732 + components: + - type: Transform + pos: 29.5,79.5 + parent: 2 + - uid: 14733 + components: + - type: Transform + pos: 30.5,79.5 + parent: 2 + - uid: 14734 + components: + - type: Transform + pos: 31.5,79.5 + parent: 2 + - uid: 14735 + components: + - type: Transform + pos: -30.5,-14.5 + parent: 2 + - uid: 14736 + components: + - type: Transform + pos: -29.5,-14.5 + parent: 2 + - uid: 14737 + components: + - type: Transform + pos: -28.5,-14.5 + parent: 2 + - uid: 14738 + components: + - type: Transform + pos: -27.5,-14.5 + parent: 2 + - uid: 14739 + components: + - type: Transform + pos: -26.5,-14.5 + parent: 2 +- proto: SolarTracker + entities: + - uid: 14740 + components: + - type: Transform + pos: -23.5,-18.5 + parent: 2 + - uid: 14741 + components: + - type: Transform + pos: 51.5,-24.5 + parent: 2 + - uid: 14742 + components: + - type: Transform + pos: 33.5,81.5 + parent: 2 +- proto: SophicScribeSpawner + entities: + - uid: 12937 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 10.5,52.5 + parent: 2 +- proto: SpaceCash100 + entities: + - uid: 14744 + components: + - type: Transform + pos: 59.519974,44.266804 + parent: 2 +- proto: SpareIdCabinetFilled + entities: + - uid: 3237 + components: + - type: Transform + pos: 83.5,27.5 + parent: 2 +- proto: SpawnMechRipley + entities: + - uid: 14745 + components: + - type: Transform + pos: -17.5,0.5 + parent: 2 +- proto: SpawnMobAdultSlimesBlue + entities: + - uid: 14746 + components: + - type: Transform + pos: 51.5,-0.5 + parent: 2 + - uid: 14747 + components: + - type: Transform + pos: 56.5,-2.5 + parent: 2 +- proto: SpawnMobAdultSlimesGreen + entities: + - uid: 14748 + components: + - type: Transform + pos: 46.5,3.5 + parent: 2 +- proto: SpawnMobAdultSlimesYellow + entities: + - uid: 14749 + components: + - type: Transform + pos: 46.5,-2.5 + parent: 2 +- proto: SpawnMobAlexander + entities: + - uid: 14750 + components: + - type: Transform + pos: 53.5,43.5 + parent: 2 +- proto: SpawnMobArcticFoxSiobhan + entities: + - uid: 19367 + components: + - type: Transform + pos: 0.5,15.5 + parent: 2 +- proto: SpawnMobButterfly + entities: + - uid: 14751 + components: + - type: Transform + pos: 8.5,72.5 + parent: 2 + - uid: 14752 + components: + - type: Transform + pos: 9.5,73.5 + parent: 2 + - uid: 14753 + components: + - type: Transform + pos: 6.5,77.5 + parent: 2 +- proto: SpawnMobCat + entities: + - uid: 14755 + components: + - type: Transform + pos: 5.5,75.5 + parent: 2 +- proto: SpawnMobCatException + entities: + - uid: 19365 + components: + - type: Transform + pos: -8.5,20.5 + parent: 2 +- proto: SpawnMobCatFloppa + entities: + - uid: 14754 + components: + - type: Transform + pos: 20.5,38.5 + parent: 2 +- proto: SpawnMobCatSpace + entities: + - uid: 19368 + components: + - type: Transform + pos: -12.5,7.5 + parent: 2 +- proto: SpawnMobCleanBot + entities: + - uid: 14756 + components: + - type: Transform + pos: 6.5,39.5 + parent: 2 +- proto: SpawnMobCorgi + entities: + - uid: 14757 + components: + - type: Transform + pos: 78.5,39.5 + parent: 2 +- proto: SpawnMobCrabAtmos + entities: + - uid: 18752 + components: + - type: Transform + pos: -1.5,59.5 + parent: 2 +- proto: SpawnMobFerret + entities: + - uid: 12559 + components: + - type: Transform + pos: -3.5,23.5 + parent: 2 +- proto: SpawnMobFoxRenault + entities: + - uid: 13222 + components: + - type: Transform + pos: 74.5,28.5 + parent: 2 +- proto: SpawnMobFrog + entities: + - uid: 14760 + components: + - type: Transform + pos: -0.5,71.5 + parent: 2 +- proto: SpawnMobGoat + entities: + - uid: 14761 + components: + - type: Transform + pos: 54.5,49.5 + parent: 2 +- proto: SpawnMobMonkey + entities: + - uid: 14763 + components: + - type: Transform + pos: 29.5,24.5 + parent: 2 + - uid: 14764 + components: + - type: Transform + pos: 29.5,39.5 + parent: 2 + - uid: 14765 + components: + - type: Transform + pos: 28.5,38.5 + parent: 2 +- proto: SpawnMobMonkeyPunpun + entities: + - uid: 14766 + components: + - type: Transform + pos: 61.5,39.5 + parent: 2 +- proto: SpawnMobSecDogLaika + entities: + - uid: 14762 + components: + - type: Transform + pos: -14.5,61.5 + parent: 2 +- proto: SpawnMobShiva + entities: + - uid: 14767 + components: + - type: Transform + pos: -17.5,52.5 + parent: 2 +- proto: SpawnMobSmile + entities: + - uid: 14768 + components: + - type: Transform + pos: 52.5,13.5 + parent: 2 +- proto: SpawnMobWalter + entities: + - uid: 14769 + components: + - type: Transform + pos: 3.5,75.5 + parent: 2 + - uid: 14770 + components: + - type: Transform + pos: 13.5,26.5 + parent: 2 +- proto: SpawnPointAtmos + entities: + - uid: 14771 + components: + - type: Transform + pos: -7.5,20.5 + parent: 2 + - uid: 14772 + components: + - type: Transform + pos: -9.5,24.5 + parent: 2 + - uid: 14773 + components: + - type: Transform + pos: -9.5,23.5 + parent: 2 + - uid: 14774 + components: + - type: Transform + pos: -9.5,22.5 + parent: 2 +- proto: SpawnPointBartender + entities: + - uid: 14775 + components: + - type: Transform + pos: 61.5,43.5 + parent: 2 +- proto: SpawnPointBorg + entities: + - uid: 14776 + components: + - type: Transform + pos: 57.5,20.5 + parent: 2 + - uid: 14777 + components: + - type: Transform + pos: 57.5,19.5 + parent: 2 +- proto: SpawnPointBotanist + entities: + - uid: 14778 + components: + - type: Transform + pos: 47.5,48.5 + parent: 2 + - uid: 14779 + components: + - type: Transform + pos: 47.5,47.5 + parent: 2 + - uid: 14780 + components: + - type: Transform + pos: 45.5,44.5 + parent: 2 +- proto: SpawnPointBrigmedic + entities: + - uid: 15171 + components: + - type: Transform + pos: -4.5,59.5 + parent: 2 +- proto: SpawnPointCaptain + entities: + - uid: 14782 + components: + - type: Transform + pos: 77.5,25.5 + parent: 2 +- proto: SpawnPointCargoTechnician + entities: + - uid: 14783 + components: + - type: Transform + pos: 7.5,11.5 + parent: 2 + - uid: 14784 + components: + - type: Transform + pos: 11.5,11.5 + parent: 2 + - uid: 14785 + components: + - type: Transform + pos: -0.5,11.5 + parent: 2 + - uid: 14786 + components: + - type: Transform + pos: -10.5,12.5 + parent: 2 +- proto: SpawnPointChaplain + entities: + - uid: 14787 + components: + - type: Transform + pos: 9.5,61.5 + parent: 2 +- proto: SpawnPointChef + entities: + - uid: 14788 + components: + - type: Transform + pos: 55.5,45.5 + parent: 2 + - uid: 14789 + components: + - type: Transform + pos: 56.5,42.5 + parent: 2 +- proto: SpawnPointChemist + entities: + - uid: 14790 + components: + - type: Transform + pos: 7.5,24.5 + parent: 2 + - uid: 14791 + components: + - type: Transform + pos: 8.5,24.5 + parent: 2 +- proto: SpawnPointChiefEngineer + entities: + - uid: 14792 + components: + - type: Transform + pos: -3.5,26.5 + parent: 2 +- proto: SpawnPointChiefMedicalOfficer + entities: + - uid: 14793 + components: + - type: Transform + pos: 19.5,39.5 + parent: 2 +- proto: SpawnPointClown + entities: + - uid: 14794 + components: + - type: Transform + pos: 41.5,45.5 + parent: 2 +- proto: SpawnPointDetective + entities: + - uid: 14795 + components: + - type: Transform + pos: 1.5,59.5 + parent: 2 +- proto: SpawnPointForensicMantis + entities: + - uid: 483 + components: + - type: Transform + pos: 33.5,4.5 + parent: 2 +- proto: SpawnPointHeadOfPersonnel + entities: + - uid: 14796 + components: + - type: Transform + pos: 76.5,39.5 + parent: 2 +- proto: SpawnPointHeadOfSecurity + entities: + - uid: 14797 + components: + - type: Transform + pos: -18.5,53.5 + parent: 2 +- proto: SpawnPointJanitor + entities: + - uid: 14798 + components: + - type: Transform + pos: 41.5,52.5 + parent: 2 + - uid: 14799 + components: + - type: Transform + pos: 40.5,52.5 + parent: 2 +- proto: SpawnPointLatejoin + entities: + - uid: 14800 + components: + - type: Transform + pos: 65.5,60.5 + parent: 2 + - uid: 14801 + components: + - type: Transform + pos: 66.5,60.5 + parent: 2 + - uid: 14802 + components: + - type: Transform + pos: 67.5,60.5 + parent: 2 +- proto: SpawnPointLawyer + entities: + - uid: 14803 + components: + - type: Transform + pos: -23.5,53.5 + parent: 2 +- proto: SpawnPointLibrarian + entities: + - uid: 14804 + components: + - type: Transform + pos: 17.5,58.5 + parent: 2 +- proto: SpawnPointMailCarrier + entities: + - uid: 14805 + components: + - type: Transform + pos: -6.5,6.5 + parent: 2 +- proto: SpawnPointMedicalBorg + entities: + - uid: 19602 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 59.5,20.5 + parent: 2 + - uid: 19603 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 59.5,19.5 + parent: 2 +- proto: SpawnPointMedicalDoctor + entities: + - uid: 14806 + components: + - type: Transform + pos: 8.5,40.5 + parent: 2 + - uid: 14807 + components: + - type: Transform + pos: 7.5,40.5 + parent: 2 + - uid: 14808 + components: + - type: Transform + pos: 7.5,40.5 + parent: 2 +- proto: SpawnPointMedicalIntern + entities: + - uid: 14809 + components: + - type: Transform + pos: 8.5,37.5 + parent: 2 + - uid: 14810 + components: + - type: Transform + pos: 8.5,37.5 + parent: 2 + - uid: 14811 + components: + - type: Transform + pos: 26.5,36.5 + parent: 2 +- proto: SpawnPointMime + entities: + - uid: 14812 + components: + - type: Transform + pos: 41.5,42.5 + parent: 2 +- proto: SpawnPointMusician + entities: + - uid: 14813 + components: + - type: Transform + pos: 39.5,40.5 + parent: 2 +- proto: SpawnPointParamedic + entities: + - uid: 14814 + components: + - type: Transform + pos: 7.5,45.5 + parent: 2 + - uid: 14815 + components: + - type: Transform + pos: 7.5,44.5 + parent: 2 +- proto: SpawnPointPassenger + entities: + - uid: 14816 + components: + - type: Transform + pos: 68.5,38.5 + parent: 2 + - uid: 14817 + components: + - type: Transform + pos: 66.5,59.5 + parent: 2 + - uid: 14818 + components: + - type: Transform + pos: 69.5,54.5 + parent: 2 + - uid: 14819 + components: + - type: Transform + pos: 71.5,57.5 + parent: 2 +- proto: SpawnPointPrisoner + entities: + - uid: 14820 + components: + - type: Transform + pos: -33.5,61.5 + parent: 2 + - uid: 14821 + components: + - type: Transform + pos: -29.5,61.5 + parent: 2 + - uid: 19484 + components: + - type: Transform + pos: -32.5,67.5 + parent: 2 + - uid: 19491 + components: + - type: Transform + pos: -35.5,61.5 + parent: 2 + - uid: 19492 + components: + - type: Transform + pos: -31.5,76.5 + parent: 2 + - uid: 19572 + components: + - type: Transform + pos: -23.5,74.5 + parent: 2 +- proto: SpawnPointPrisonGuard + entities: + - uid: 14822 + components: + - type: Transform + pos: -22.5,67.5 + parent: 2 + - uid: 14823 + components: + - type: Transform + pos: -22.5,66.5 + parent: 2 + - uid: 14824 + components: + - type: Transform + pos: -22.5,66.5 + parent: 2 +- proto: SpawnPointQuartermaster + entities: + - uid: 14825 + components: + - type: Transform + pos: 0.5,16.5 + parent: 2 +- proto: SpawnPointResearchAssistant + entities: + - uid: 14826 + components: + - type: Transform + pos: 47.5,26.5 + parent: 2 + - uid: 14827 + components: + - type: Transform + pos: 47.5,29.5 + parent: 2 + - uid: 14828 + components: + - type: Transform + pos: 51.5,21.5 + parent: 2 +- proto: SpawnPointResearchDirector + entities: + - uid: 14829 + components: + - type: Transform + pos: 52.5,15.5 + parent: 2 +- proto: SpawnPointRoboticist + entities: + - uid: 19263 + components: + - type: Transform + pos: 58.5,20.5 + parent: 2 + - uid: 19264 + components: + - type: Transform + pos: 58.5,16.5 + parent: 2 + - uid: 19265 + components: + - type: Transform + pos: 55.5,22.5 + parent: 2 +- proto: SpawnPointSalvageSpecialist + entities: + - uid: 14830 + components: + - type: Transform + pos: -11.5,5.5 + parent: 2 + - uid: 14831 + components: + - type: Transform + pos: -10.5,5.5 + parent: 2 + - uid: 14832 + components: + - type: Transform + pos: -9.5,5.5 + parent: 2 + - uid: 14833 + components: + - type: Transform + pos: -10.5,5.5 + parent: 2 +- proto: SpawnPointScientist + entities: + - uid: 14834 + components: + - type: Transform + pos: 49.5,13.5 + parent: 2 + - uid: 14835 + components: + - type: Transform + pos: 49.5,14.5 + parent: 2 + - uid: 14836 + components: + - type: Transform + pos: 49.5,15.5 + parent: 2 + - uid: 14837 + components: + - type: Transform + pos: 47.5,30.5 + parent: 2 + - uid: 14838 + components: + - type: Transform + pos: 43.5,21.5 + parent: 2 + - uid: 14839 + components: + - type: Transform + pos: 43.5,20.5 + parent: 2 +- proto: SpawnPointSecurityCadet + entities: + - uid: 14840 + components: + - type: Transform + pos: -14.5,51.5 + parent: 2 + - uid: 14841 + components: + - type: Transform + pos: -24.5,63.5 + parent: 2 + - uid: 14842 + components: + - type: Transform + pos: -15.5,51.5 + parent: 2 +- proto: SpawnPointSecurityOfficer + entities: + - uid: 14843 + components: + - type: Transform + pos: -24.5,66.5 + parent: 2 + - uid: 14844 + components: + - type: Transform + pos: -24.5,67.5 + parent: 2 + - uid: 14845 + components: + - type: Transform + pos: -24.5,69.5 + parent: 2 + - uid: 14846 + components: + - type: Transform + pos: -24.5,70.5 + parent: 2 + - uid: 14847 + components: + - type: Transform + pos: -24.5,64.5 + parent: 2 +- proto: SpawnPointServiceWorker + entities: + - uid: 14848 + components: + - type: Transform + pos: 53.5,38.5 + parent: 2 + - uid: 14849 + components: + - type: Transform + pos: 54.5,38.5 + parent: 2 +- proto: SpawnPointStationEngineer + entities: + - uid: 14850 + components: + - type: Transform + pos: -9.5,32.5 + parent: 2 + - uid: 14851 + components: + - type: Transform + pos: -9.5,33.5 + parent: 2 + - uid: 14852 + components: + - type: Transform + pos: -9.5,35.5 + parent: 2 + - uid: 14853 + components: + - type: Transform + pos: -9.5,36.5 + parent: 2 + - uid: 14854 + components: + - type: Transform + pos: -9.5,36.5 + parent: 2 +- proto: SpawnPointTechnicalAssistant + entities: + - uid: 14855 + components: + - type: Transform + pos: -2.5,35.5 + parent: 2 + - uid: 14856 + components: + - type: Transform + pos: -5.5,35.5 + parent: 2 + - uid: 14857 + components: + - type: Transform + pos: -5.5,39.5 + parent: 2 +- proto: SpawnPointWarden + entities: + - uid: 14858 + components: + - type: Transform + pos: -17.5,63.5 + parent: 2 +- proto: SprayBottleSpaceCleaner + entities: + - uid: 14859 + components: + - type: Transform + pos: -28.724072,50.52622 + parent: 2 + - uid: 14860 + components: + - type: Transform + pos: -5.701754,57.603504 + parent: 2 + - uid: 14861 + components: + - type: Transform + pos: 44.805016,53.27405 + parent: 2 +- proto: StairDark + entities: + - uid: 14864 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 83.5,36.5 + parent: 2 + - uid: 14865 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 83.5,37.5 + parent: 2 + - uid: 14866 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 83.5,31.5 + parent: 2 + - uid: 14867 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 83.5,32.5 + parent: 2 +- proto: Stairs + entities: + - uid: 14868 + components: + - type: Transform + pos: 4.5,69.5 + parent: 2 + - uid: 14869 + components: + - type: Transform + pos: 5.5,69.5 + parent: 2 + - uid: 14870 + components: + - type: Transform + pos: 6.5,69.5 + parent: 2 + - uid: 14871 + components: + - type: Transform + pos: 11.5,72.5 + parent: 2 + - uid: 14872 + components: + - type: Transform + pos: 12.5,72.5 + parent: 2 +- proto: StairStage + entities: + - uid: 14873 + components: + - type: Transform + pos: 64.5,12.5 + parent: 2 + - uid: 14874 + components: + - type: Transform + pos: 65.5,12.5 + parent: 2 + - uid: 14875 + components: + - type: Transform + pos: 66.5,12.5 + parent: 2 + - uid: 14876 + components: + - type: Transform + pos: 74.5,10.5 + parent: 2 + - uid: 14877 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 71.5,11.5 + parent: 2 + - uid: 14878 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 72.5,60.5 + parent: 2 +- proto: StasisBed + entities: + - uid: 14879 + components: + - type: Transform + pos: 19.5,29.5 + parent: 2 + - uid: 14880 + components: + - type: Transform + pos: 19.5,31.5 + parent: 2 + - uid: 14881 + components: + - type: Transform + pos: -5.5,59.5 + parent: 2 +- proto: StationMap + entities: + - uid: 12974 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 67.5,28.5 + parent: 2 + - uid: 14882 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -7.5,37.5 + parent: 2 + - uid: 14883 + components: + - type: Transform + pos: 49.5,37.5 + parent: 2 + - uid: 14884 + components: + - type: Transform + pos: 17.5,46.5 + parent: 2 + - uid: 14885 + components: + - type: Transform + pos: -25.5,59.5 + parent: 2 + - uid: 14886 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 58.5,32.5 + parent: 2 + - uid: 14887 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 34.5,37.5 + parent: 2 + - uid: 14888 + components: + - type: Transform + pos: 19.5,22.5 + parent: 2 + - uid: 14889 + components: + - type: Transform + pos: 9.5,68.5 + parent: 2 + - uid: 14890 + components: + - type: Transform + pos: 11.5,77.5 + parent: 2 + - uid: 14891 + components: + - type: Transform + pos: -10.5,57.5 + parent: 2 + - uid: 14892 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -9.5,18.5 + parent: 2 + - uid: 14893 + components: + - type: Transform + pos: -4.5,8.5 + parent: 2 + - uid: 14894 + components: + - type: Transform + pos: 13.5,10.5 + parent: 2 + - uid: 14895 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 3.5,55.5 + parent: 2 + - uid: 14897 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 68.5,4.5 + parent: 2 + - uid: 14898 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 2.5,30.5 + parent: 2 + - uid: 14899 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 2.5,30.5 + parent: 2 + - uid: 14900 + components: + - type: Transform + pos: 36.5,46.5 + parent: 2 +- proto: SteelBench + entities: + - uid: 14901 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 8.5,54.5 + parent: 2 + - uid: 14902 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 9.5,54.5 + parent: 2 + - uid: 14903 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 11.5,54.5 + parent: 2 + - uid: 14904 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 12.5,54.5 + parent: 2 + - uid: 14905 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 11.5,51.5 + parent: 2 + - uid: 14906 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 12.5,51.5 + parent: 2 +- proto: StoolBar + entities: + - uid: 14907 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 57.5,40.5 + parent: 2 + - uid: 14908 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 56.5,40.5 + parent: 2 + - uid: 14909 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 55.5,40.5 + parent: 2 + - uid: 14910 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 58.5,38.5 + parent: 2 + - uid: 14911 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 58.5,39.5 + parent: 2 +- proto: StorageCanister + entities: + - uid: 11500 + components: + - type: Transform + pos: -17.5,25.5 + parent: 2 + - uid: 14912 + components: + - type: Transform + pos: -17.5,21.5 + parent: 2 + - uid: 14913 + components: + - type: Transform + pos: -17.5,22.5 + parent: 2 + - uid: 14914 + components: + - type: Transform + pos: -17.5,23.5 + parent: 2 + - uid: 14915 + components: + - type: Transform + pos: -17.5,20.5 + parent: 2 + - uid: 14916 + components: + - type: Transform + pos: 9.5,38.5 + parent: 2 + - uid: 18760 + components: + - type: Transform + pos: -16.5,37.5 + parent: 2 + - uid: 18761 + components: + - type: Transform + pos: -16.5,38.5 + parent: 2 +- proto: SubstationBasic + entities: + - uid: 14917 + components: + - type: MetaData + name: South Solar 1 + - type: Transform + pos: -20.5,9.5 + parent: 2 + - uid: 14918 + components: + - type: MetaData + name: Engineering Substation + - type: Transform + pos: -16.5,43.5 + parent: 2 + - uid: 14919 + components: + - type: MetaData + name: Atmos Substation + - type: Transform + pos: -24.5,22.5 + parent: 2 + - uid: 14920 + components: + - type: MetaData + name: Logistics Substation + - type: Transform + pos: -18.5,4.5 + parent: 2 + - uid: 14921 + components: + - type: MetaData + name: Security Substation + - type: Transform + pos: -2.5,68.5 + parent: 2 + - uid: 14922 + components: + - type: MetaData + name: Bridge Substation + - type: Transform + pos: 83.5,46.5 + parent: 2 + - uid: 14923 + components: + - type: MetaData + name: Arrivals Substation + - type: Transform + pos: 76.5,13.5 + parent: 2 + - uid: 14924 + components: + - type: MetaData + name: North Solar + - type: Transform + pos: 35.5,63.5 + parent: 2 + - uid: 14925 + components: + - type: MetaData + name: Service Substation + - type: Transform + pos: 52.5,59.5 + parent: 2 + - uid: 14926 + components: + - type: MetaData + name: South Solar 2 + - type: Transform + pos: 41.5,2.5 + parent: 2 + - uid: 14927 + components: + - type: MetaData + name: MedBay Substation + - type: Transform + pos: 20.5,43.5 + parent: 2 + - uid: 14928 + components: + - type: MetaData + name: Epistemics Substation + - type: Transform + pos: 18.5,12.5 + parent: 2 + - uid: 14929 + components: + - type: MetaData + name: R&D Servers + - type: Transform + pos: 30.5,-0.5 + parent: 2 + - uid: 14930 + components: + - type: MetaData + name: TeleComunicações + - type: Transform + pos: -30.5,37.5 + parent: 2 + - uid: 14931 + components: + - type: MetaData + name: AI Core + - type: Transform + pos: 23.5,-10.5 + parent: 2 + - uid: 14932 + components: + - type: MetaData + name: AI Core + - type: Transform + pos: 23.5,-12.5 + parent: 2 +- proto: SubstationMachineCircuitboard + entities: + - uid: 14933 + components: + - type: Transform + pos: -26.371708,43.614967 + parent: 2 +- proto: SuitStorageAtmos + entities: + - uid: 14934 + components: + - type: Transform + pos: -35.5,30.5 + parent: 2 + - uid: 14935 + components: + - type: Transform + pos: -10.5,25.5 + parent: 2 +- proto: SuitStorageCaptain + entities: + - uid: 14936 + components: + - type: Transform + pos: 77.5,31.5 + parent: 2 +- proto: SuitStorageCE + entities: + - uid: 14937 + components: + - type: Transform + pos: -2.5,27.5 + parent: 2 +- proto: SuitStorageCMO + entities: + - uid: 14938 + components: + - type: Transform + pos: 20.5,40.5 + parent: 2 +- proto: SuitStorageEngi + entities: + - uid: 14939 + components: + - type: Transform + pos: -2.5,39.5 + parent: 2 + - uid: 14940 + components: + - type: Transform + pos: -2.5,40.5 + parent: 2 + - uid: 14941 + components: + - type: Transform + pos: -8.5,41.5 + parent: 2 + - uid: 14942 + components: + - type: Transform + pos: -7.5,41.5 + parent: 2 +- proto: SuitStorageEVA + entities: + - uid: 14943 + components: + - type: Transform + pos: 3.5,43.5 + parent: 2 + - uid: 14944 + components: + - type: Transform + pos: 75.5,45.5 + parent: 2 + - uid: 14945 + components: + - type: Transform + pos: 76.5,45.5 + parent: 2 + - uid: 14946 + components: + - type: Transform + pos: 75.5,42.5 + parent: 2 + - uid: 14947 + components: + - type: Transform + pos: 76.5,42.5 + parent: 2 +- proto: SuitStorageHOS + entities: + - uid: 14948 + components: + - type: Transform + pos: -20.5,54.5 + parent: 2 +- proto: SuitStorageRD + entities: + - uid: 14949 + components: + - type: Transform + pos: 53.5,18.5 + parent: 2 +- proto: SuitStorageSalv + entities: + - uid: 14950 + components: + - type: Transform + pos: -17.5,-6.5 + parent: 2 + - uid: 14951 + components: + - type: Transform + pos: -17.5,-5.5 + parent: 2 + - uid: 14952 + components: + - type: Transform + pos: -17.5,-4.5 + parent: 2 + - uid: 14953 + components: + - type: Transform + pos: -17.5,-4.5 + parent: 2 + - uid: 14954 + components: + - type: Transform + pos: -17.5,-4.5 + parent: 2 +- proto: SuitStorageSec + entities: + - uid: 14955 + components: + - type: Transform + pos: -19.5,66.5 + parent: 2 + - uid: 14956 + components: + - type: Transform + pos: -14.5,68.5 + parent: 2 + - uid: 14957 + components: + - type: Transform + pos: -9.5,64.5 + parent: 2 + - uid: 14958 + components: + - type: Transform + pos: -9.5,62.5 + parent: 2 +- proto: Supermatter + entities: + - uid: 14959 + components: + - type: Transform + pos: -19.5,34.5 + parent: 2 +- proto: SurveillanceCameraCommand + entities: + - uid: 14960 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 80.5,32.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraCommand + nameSet: True + id: Ponte + - uid: 14961 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -20.5,46.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraCommand + nameSet: True + id: Gravity + - uid: 14962 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -5.5,26.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraCommand + nameSet: True + id: CE + - uid: 14963 + components: + - type: Transform + pos: -18.5,51.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraCommand + nameSet: True + id: HOS + - uid: 14964 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -1.5,16.5 + parent: 2 + - type: SurveillanceCamera + id: LO + - uid: 14965 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 24.5,2.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraCommand + nameSet: True + id: R&D Server + - uid: 14966 + components: + - type: Transform + pos: 29.5,-0.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraCommand + nameSet: True + id: Research Server Room + - uid: 14967 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 53.5,16.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraCommand + id: RD + - type: ActiveUserInterface + - uid: 14968 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 30.5,56.5 + parent: 2 + - type: SurveillanceCamera + id: Vault + - uid: 14969 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 18.5,39.5 + parent: 2 + - type: SurveillanceCamera + id: CMO + - uid: 14970 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 76.5,45.5 + parent: 2 + - type: SurveillanceCamera + id: EVA Storage + - uid: 14971 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 76.5,40.5 + parent: 2 + - type: SurveillanceCamera + id: HOP + - uid: 14972 + components: + - type: Transform + pos: 67.5,33.5 + parent: 2 + - type: SurveillanceCamera + id: Front Desk + - uid: 14973 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 76.5,31.5 + parent: 2 + - type: SurveillanceCamera + id: Captain + - uid: 14974 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 78.5,25.5 + parent: 2 + - type: SurveillanceCamera + id: Captain Bedroom + - uid: 14976 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -37.5,36.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraCommand + nameSet: True + id: Telecomms + - uid: 14977 + components: + - type: Transform + pos: 35.5,-1.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraCommand + nameSet: True + id: Station AI monitoring + - uid: 14978 + components: + - type: Transform + pos: 27.5,-5.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraCommand + nameSet: True + id: IA Core North Exterior 1 + - uid: 14979 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 20.5,-11.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraCommand + nameSet: True + id: Western exterior of the IA core + - uid: 14980 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 36.5,-16.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraCommand + nameSet: True + id: IA Core South Exterior 2 + - uid: 14981 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 27.5,-17.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraCommand + nameSet: True + id: IA Core South Exterior 1 + - uid: 14982 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 40.5,-11.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraCommand + nameSet: True + id: Eastern exterior of the IA core + - uid: 14983 + components: + - type: Transform + pos: 36.5,-6.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraCommand + nameSet: True + id: IA Core North Exterior 2 + - uid: 14984 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 37.5,-11.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraCommand + nameSet: True + id: AI Maintenance + - uid: 14985 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 23.5,-11.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraCommand + nameSet: True + id: AI Core + - uid: 18571 + components: + - type: Transform + pos: 69.5,23.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraCommand + nameSet: True + id: Captain Front Desk +- proto: SurveillanceCameraEngineering + entities: + - uid: 14986 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -32.5,28.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraEngineering + nameSet: True + id: Combustion Chamber + - uid: 14987 + components: + - type: Transform + pos: -7.5,38.5 + parent: 2 + - type: SurveillanceCamera + id: SMES Room Entrance + - uid: 14988 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -33.5,21.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraEngineering + nameSet: True + id: Atmos North + - uid: 14989 + components: + - type: Transform + pos: -30.5,7.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraEngineering + nameSet: True + id: Atmos South + - uid: 14990 + components: + - type: Transform + pos: -16.5,18.5 + parent: 2 + - type: SurveillanceCamera + id: Atmos Corridor + - uid: 14991 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -8.5,25.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraEngineering + nameSet: True + id: Atmos Reception + - uid: 14992 + components: + - type: Transform + pos: -10.5,27.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraEngineering + nameSet: True + id: Atmosphere Entry + - uid: 14993 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -13.5,45.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraEngineering + nameSet: True + id: SMES Room + - uid: 14994 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -26.5,45.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraEngineering + nameSet: True + id: Ship Workshop + - uid: 14995 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -6.5,35.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraEngineering + nameSet: True + id: Front desk + - uid: 14996 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -20.5,41.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraEngineering + nameSet: True + id: North Super-Matter Reactor + - uid: 14997 + components: + - type: Transform + pos: -20.5,25.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraEngineering + nameSet: True + id: South Super-Matter Reactor + - uid: 14998 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -26.5,35.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraEngineering + nameSet: True + id: West Super-Matter Reactor + - uid: 14999 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -13.5,34.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraEngineering + nameSet: True + id: East Super-Matter Reactor + - uid: 15000 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -13.5,25.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraEngineering + nameSet: True + id: AME Generator +- proto: SurveillanceCameraGeneral + entities: + - uid: 15001 + components: + - type: Transform + pos: 19.5,47.5 + parent: 2 + - type: SurveillanceCamera + id: Medbay North Corridor + - uid: 15002 + components: + - type: Transform + pos: 0.5,19.5 + parent: 2 + - type: SurveillanceCamera + id: Cargo and engineering corridor + - uid: 15003 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 1.5,49.5 + parent: 2 + - type: SurveillanceCamera + id: Sec Corridor, Medbay and Engineering + - uid: 15004 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 6.5,59.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraGeneral + nameSet: True + id: Entrance to the detective's room + - uid: 15005 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -7.5,63.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraGeneral + id: North security entrance + - type: ActiveUserInterface + - uid: 15006 + components: + - type: Transform + pos: 3.5,70.5 + parent: 2 + - type: SurveillanceCamera + id: South Park + - uid: 15007 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 9.5,79.5 + parent: 2 + - type: SurveillanceCamera + id: North Park + - uid: 15008 + components: + - type: Transform + pos: 9.5,15.5 + parent: 2 + - type: SurveillanceCamera + id: Logistics Front desk + - uid: 15009 + components: + - type: Transform + pos: 24.5,9.5 + parent: 2 + - type: SurveillanceCamera + id: Dorms + - uid: 15010 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 33.5,21.5 + parent: 2 + - type: SurveillanceCamera + id: South Medbay Corridor + - uid: 15011 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 31.5,36.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraGeneral + nameSet: True + id: Medbay entrance + - uid: 15012 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 32.5,49.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraGeneral + nameSet: True + id: Vault Corridor + - uid: 15013 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 46.5,35.5 + parent: 2 + - type: SurveillanceCamera + id: Botany reception + - uid: 15014 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 54.5,40.5 + parent: 2 + - type: SurveillanceCamera + id: Bar + - uid: 15015 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 64.5,44.5 + parent: 2 + - type: SurveillanceCamera + id: Entrance of the E.V.A. + - uid: 15016 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 64.5,58.5 + parent: 2 + - type: SurveillanceCamera + id: Evac + - uid: 15017 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 64.5,25.5 + parent: 2 + - type: SurveillanceCamera + id: Cap Reception Entrance + - uid: 15018 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 76.5,3.5 + parent: 2 + - type: SurveillanceCamera + id: Arrivals + - uid: 15019 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 72.5,61.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraGeneral + nameSet: True + id: Pod port +- proto: SurveillanceCameraMedical + entities: + - uid: 15020 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 14.5,41.5 + parent: 2 + - type: SurveillanceCamera + id: Operating room + - uid: 15021 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 29.5,36.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraMedical + nameSet: True + id: Front desk + - uid: 15022 + components: + - type: Transform + pos: 9.5,31.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraMedical + nameSet: True + id: West Infirmary + - uid: 15023 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 18.5,45.5 + parent: 2 + - type: SurveillanceCamera + id: Morgue + - uid: 15024 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 8.5,45.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraMedical + nameSet: True + id: Paramedic's room + - uid: 15025 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 9.5,41.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraMedical + nameSet: True + id: Cafeteria + - uid: 15026 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 23.5,30.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraMedical + nameSet: True + id: Reception corridor + - uid: 15027 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 16.5,27.5 + parent: 2 + - type: SurveillanceCamera + id: medbay entrance + - uid: 15028 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 19.5,35.5 + parent: 2 + - type: SurveillanceCamera + id: East Infirmary + - uid: 15029 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 9.5,26.5 + parent: 2 + - type: SurveillanceCamera + id: Chemical Laboratory + - uid: 15030 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 24.5,45.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraMedical + nameSet: True + id: Virology Entry + - uid: 15031 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 27.5,45.5 + parent: 2 + - type: SurveillanceCamera + id: Virology + - uid: 15032 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 27.5,29.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraMedical + id: Genecist Area + - type: ActiveUserInterface + - uid: 15033 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 22.5,28.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraMedical + id: Cloning Room + - type: ActiveUserInterface +- proto: SurveillanceCameraRouterCommand + entities: + - uid: 15034 + components: + - type: Transform + pos: -36.5,35.5 + parent: 2 +- proto: SurveillanceCameraRouterEngineering + entities: + - uid: 15035 + components: + - type: Transform + pos: -32.5,38.5 + parent: 2 +- proto: SurveillanceCameraRouterGeneral + entities: + - uid: 15036 + components: + - type: Transform + pos: -30.5,35.5 + parent: 2 +- proto: SurveillanceCameraRouterMedical + entities: + - uid: 15037 + components: + - type: Transform + pos: -36.5,38.5 + parent: 2 +- proto: SurveillanceCameraRouterScience + entities: + - uid: 15038 + components: + - type: Transform + pos: -34.5,35.5 + parent: 2 +- proto: SurveillanceCameraRouterSecurity + entities: + - uid: 15039 + components: + - type: Transform + pos: -34.5,38.5 + parent: 2 +- proto: SurveillanceCameraRouterService + entities: + - uid: 15040 + components: + - type: Transform + pos: -30.5,38.5 + parent: 2 +- proto: SurveillanceCameraRouterSupply + entities: + - uid: 15041 + components: + - type: Transform + pos: -32.5,35.5 + parent: 2 +- proto: SurveillanceCameraScience + entities: + - uid: 15042 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 46.5,31.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraScience + nameSet: True + id: Research Room + - uid: 15043 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 57.5,0.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraScience + nameSet: True + id: Xenobiology + - uid: 15044 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 56.5,24.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraScience + nameSet: True + id: Front Desk + - uid: 15045 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 40.5,10.5 + parent: 2 + - type: SurveillanceCamera + id: Xenoarchaeology Room + - uid: 15046 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 44.5,17.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraScience + nameSet: True + id: Research Room Corridor + - uid: 15047 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 48.5,11.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraScience + nameSet: True + id: Entrance to the Anomaly room + - uid: 15048 + components: + - type: Transform + pos: 57.5,15.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraScience + nameSet: True + id: Robotics +- proto: SurveillanceCameraSecurity + entities: + - uid: 7187 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -11.5,67.5 + parent: 2 + - uid: 15049 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -6.5,15.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraSecurity + nameSet: True + id: Cargo Checkpoint + - uid: 15050 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -26.5,55.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraSecurity + nameSet: True + id: interrogation room + - uid: 15051 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -21.5,70.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraSecurity + nameSet: True + id: Lockers + - uid: 15052 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -14.5,70.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraSecurity + nameSet: True + id: Armory + - uid: 15053 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -14.5,52.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraSecurity + nameSet: True + id: South entrance reception + - uid: 15054 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 70.5,15.5 + parent: 2 + - type: SurveillanceCamera + id: Cryosleep Checkpoint + - uid: 15055 + components: + - type: Transform + pos: 61.5,56.5 + parent: 2 + - type: SurveillanceCamera + id: Evac Checkpoint + - uid: 15056 + components: + - type: Transform + pos: 44.5,12.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraSecurity + nameSet: True + id: Epistemics Checkpoint + - uid: 15057 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -4.5,31.5 + parent: 2 + - type: SurveillanceCamera + id: Eng Checkpoint + - uid: 15058 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -10.5,56.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraSecurity + nameSet: True + id: Brig + - uid: 15059 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -1.5,59.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraSecurity + nameSet: True + id: Detective's room + - uid: 15060 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -8.5,60.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraSecurity + nameSet: True + id: Investigation room + - uid: 15061 + components: + - type: Transform + pos: -23.5,51.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraSecurity + nameSet: True + id: Lawyer's room + - uid: 15062 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -35.5,58.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraSecurity + id: Perma Corridor + - type: ActiveUserInterface + - uid: 15063 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -20.5,58.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraSecurity + id: Security Corridor + - type: ActiveUserInterface + - uid: 15064 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -25.5,62.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraSecurity + id: Rest area + - type: ActiveUserInterface + - uid: 15066 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -12.5,63.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraSecurity + nameSet: True + id: Equipment delivery + - uid: 15068 + components: + - type: Transform + pos: 6.5,26.5 + parent: 2 + - type: SurveillanceCamera + id: Medbay Checkpoint + - uid: 15069 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -5.5,59.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraSecurity + nameSet: True + id: BrigMed + - uid: 17922 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -33.5,60.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraSecurity + nameSet: True + id: Prisioner Bedroom 1 + - uid: 17993 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -33.5,65.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraSecurity + nameSet: True + id: Perma + - uid: 17994 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -31.5,77.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraSecurity + nameSet: True + id: Perma Botany + - uid: 17996 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -21.5,74.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraSecurity + nameSet: True + id: Perma Vending Machines + - uid: 18581 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -29.5,60.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraSecurity + nameSet: True + id: Prisioner Bedroom 2 +- proto: SurveillanceCameraService + entities: + - uid: 15070 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 6.5,4.5 + parent: 2 + - type: SurveillanceCamera + id: Disposals + - uid: 15071 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 62.5,38.5 + parent: 2 + - type: SurveillanceCamera + id: Bar Counter + - uid: 15072 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 60.5,31.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraService + nameSet: True + id: Tool Room + - uid: 15073 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 59.5,43.5 + parent: 2 + - type: SurveillanceCamera + id: Bartender + - uid: 15074 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 43.5,37.5 + parent: 2 + - type: SurveillanceCamera + id: Hydroponics + - uid: 15075 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 50.5,48.5 + parent: 2 + - type: SurveillanceCamera + id: Botanica Cabinets + - uid: 15076 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 54.5,51.5 + parent: 2 + - type: SurveillanceCamera + id: Freezer + - uid: 15077 + components: + - type: Transform + pos: 54.5,42.5 + parent: 2 + - type: SurveillanceCamera + id: Kitchen + - uid: 15078 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 41.5,37.5 + parent: 2 + - type: SurveillanceCamera + id: Theater + - uid: 15079 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 42.5,44.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraService + nameSet: True + id: clown room + - uid: 15080 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 38.5,44.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraService + id: fun room + - uid: 15081 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 39.5,54.5 + parent: 2 + - type: SurveillanceCamera + id: Janitor's room + - uid: 15082 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 12.5,61.5 + parent: 2 + - type: SurveillanceCamera + id: Priest's Room + - uid: 15083 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 17.5,63.5 + parent: 2 + - type: SurveillanceCamera + id: Crematorium + - uid: 15084 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 8.5,54.5 + parent: 2 + - type: SurveillanceCamera + id: Chapel + - uid: 15085 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 19.5,56.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraService + nameSet: True + id: Library +- proto: SurveillanceCameraSupply + entities: + - uid: 15086 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -10.5,14.5 + parent: 2 + - type: SurveillanceCamera + id: Salvage Stock + - uid: 15087 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -15.5,6.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraSupply + id: Salvage + - type: ActiveUserInterface + - uid: 15088 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -6.5,8.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraSupply + nameSet: True + id: Mail + - uid: 15089 + components: + - type: Transform + pos: 0.5,3.5 + parent: 2 + - type: SurveillanceCamera + id: Cargo warehouse + - uid: 15090 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -16.5,2.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraSupply + nameSet: True + id: Asalvage warehouse + - uid: 15091 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -17.5,-9.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraSupply + nameSet: True + id: Exterior of the salvage +- proto: Syringe + entities: + - uid: 15092 + components: + - type: Transform + pos: 37.385117,7.5585823 + parent: 2 + - uid: 15093 + components: + - type: Transform + pos: -27.432621,50.59636 + parent: 2 + - uid: 15094 + components: + - type: Transform + pos: 14.550299,38.625336 + parent: 2 +- proto: SyringeCryostasis + entities: + - uid: 15095 + components: + - type: Transform + pos: 19.5,30.5 + parent: 2 +- proto: Table + entities: + - uid: 713 + components: + - type: Transform + pos: -34.5,74.5 + parent: 2 + - uid: 15096 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 3.5,27.5 + parent: 2 + - uid: 15097 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 3.5,31.5 + parent: 2 + - uid: 15098 + components: + - type: Transform + pos: -24.5,43.5 + parent: 2 + - uid: 15099 + components: + - type: Transform + pos: -24.5,43.5 + parent: 2 + - uid: 15100 + components: + - type: Transform + pos: -5.5,3.5 + parent: 2 + - uid: 15101 + components: + - type: Transform + pos: -5.5,4.5 + parent: 2 + - uid: 15102 + components: + - type: Transform + pos: -26.5,43.5 + parent: 2 + - uid: 15103 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 76.5,37.5 + parent: 2 + - uid: 15104 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 12.5,12.5 + parent: 2 + - uid: 15105 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 12.5,13.5 + parent: 2 + - uid: 15106 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 9.5,12.5 + parent: 2 + - uid: 15107 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 6.5,12.5 + parent: 2 + - uid: 15108 + components: + - type: Transform + pos: -4.5,15.5 + parent: 2 + - uid: 15109 + components: + - type: Transform + pos: -3.5,15.5 + parent: 2 + - uid: 15110 + components: + - type: Transform + pos: -7.5,24.5 + parent: 2 + - uid: 15111 + components: + - type: Transform + pos: -7.5,23.5 + parent: 2 + - uid: 15112 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -7.5,28.5 + parent: 2 + - uid: 15113 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -6.5,33.5 + parent: 2 + - uid: 15114 + components: + - type: Transform + pos: -2.5,36.5 + parent: 2 + - uid: 15115 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -11.5,33.5 + parent: 2 + - uid: 15116 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -11.5,34.5 + parent: 2 + - uid: 15117 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -11.5,35.5 + parent: 2 + - uid: 15118 + components: + - type: Transform + pos: -4.5,40.5 + parent: 2 + - uid: 15119 + components: + - type: Transform + pos: -10.5,45.5 + parent: 2 + - uid: 15120 + components: + - type: Transform + pos: -4.5,45.5 + parent: 2 + - uid: 15121 + components: + - type: Transform + pos: -5.5,45.5 + parent: 2 + - uid: 15122 + components: + - type: Transform + pos: 0.5,12.5 + parent: 2 + - uid: 15123 + components: + - type: Transform + pos: 1.5,12.5 + parent: 2 + - uid: 15124 + components: + - type: Transform + pos: 1.5,14.5 + parent: 2 + - uid: 15125 + components: + - type: Transform + pos: 1.5,15.5 + parent: 2 + - uid: 15126 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -1.5,15.5 + parent: 2 + - uid: 15127 + components: + - type: Transform + pos: -5.5,29.5 + parent: 2 + - uid: 15128 + components: + - type: Transform + pos: -4.5,29.5 + parent: 2 + - uid: 15129 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -19.5,70.5 + parent: 2 + - uid: 15130 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -17.5,67.5 + parent: 2 + - uid: 15131 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -14.5,70.5 + parent: 2 + - uid: 15132 + components: + - type: Transform + pos: -16.5,60.5 + parent: 2 + - uid: 15133 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -16.5,62.5 + parent: 2 + - uid: 15134 + components: + - type: Transform + pos: -21.5,60.5 + parent: 2 + - uid: 15135 + components: + - type: Transform + pos: -25.5,62.5 + parent: 2 + - uid: 15136 + components: + - type: Transform + pos: -25.5,61.5 + parent: 2 + - uid: 15137 + components: + - type: Transform + pos: -25.5,60.5 + parent: 2 + - uid: 15138 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -21.5,67.5 + parent: 2 + - uid: 15139 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -21.5,66.5 + parent: 2 + - uid: 15140 + components: + - type: Transform + pos: -8.5,58.5 + parent: 2 + - uid: 15143 + components: + - type: Transform + pos: 40.5,21.5 + parent: 2 + - uid: 15144 + components: + - type: Transform + pos: 41.5,21.5 + parent: 2 + - uid: 15145 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 46.5,12.5 + parent: 2 + - uid: 15146 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 46.5,13.5 + parent: 2 + - uid: 15147 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 46.5,14.5 + parent: 2 + - uid: 15148 + components: + - type: Transform + pos: 53.5,14.5 + parent: 2 + - uid: 15149 + components: + - type: Transform + pos: 51.5,14.5 + parent: 2 + - uid: 15150 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 55.5,17.5 + parent: 2 + - uid: 15151 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 55.5,18.5 + parent: 2 + - uid: 15152 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 55.5,19.5 + parent: 2 + - uid: 15153 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 58.5,15.5 + parent: 2 + - uid: 15154 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 59.5,15.5 + parent: 2 + - uid: 15155 + components: + - type: Transform + pos: 59.5,22.5 + parent: 2 + - uid: 15156 + components: + - type: Transform + pos: 56.5,15.5 + parent: 2 + - uid: 15157 + components: + - type: Transform + pos: 46.5,24.5 + parent: 2 + - uid: 15158 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 50.5,24.5 + parent: 2 + - uid: 15159 + components: + - type: Transform + pos: 50.5,27.5 + parent: 2 + - uid: 15160 + components: + - type: Transform + pos: 46.5,27.5 + parent: 2 + - uid: 15161 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 61.5,31.5 + parent: 2 + - uid: 15162 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 60.5,31.5 + parent: 2 + - uid: 15163 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 61.5,28.5 + parent: 2 + - uid: 15164 + components: + - type: Transform + pos: 58.5,28.5 + parent: 2 + - uid: 15165 + components: + - type: Transform + pos: -26.5,55.5 + parent: 2 + - uid: 15166 + components: + - type: Transform + pos: -26.5,54.5 + parent: 2 + - uid: 15167 + components: + - type: Transform + pos: -26.5,53.5 + parent: 2 + - uid: 15168 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -31.5,60.5 + parent: 2 + - uid: 15169 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -27.5,60.5 + parent: 2 + - uid: 15170 + components: + - type: Transform + pos: -31.5,63.5 + parent: 2 + - uid: 15172 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -5.5,57.5 + parent: 2 + - uid: 15173 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 43.5,40.5 + parent: 2 + - uid: 15174 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 43.5,39.5 + parent: 2 + - uid: 15175 + components: + - type: Transform + pos: 54.5,43.5 + parent: 2 + - uid: 15176 + components: + - type: Transform + pos: 55.5,43.5 + parent: 2 + - uid: 15177 + components: + - type: Transform + pos: 55.5,44.5 + parent: 2 + - uid: 15178 + components: + - type: Transform + pos: 54.5,44.5 + parent: 2 + - uid: 15179 + components: + - type: Transform + pos: 57.5,44.5 + parent: 2 + - uid: 15180 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 53.5,37.5 + parent: 2 + - uid: 15181 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 54.5,37.5 + parent: 2 + - uid: 15182 + components: + - type: Transform + pos: 62.5,38.5 + parent: 2 + - uid: 15183 + components: + - type: Transform + pos: 62.5,37.5 + parent: 2 + - uid: 15184 + components: + - type: Transform + pos: 51.5,54.5 + parent: 2 + - uid: 15185 + components: + - type: Transform + pos: 5.5,27.5 + parent: 2 + - uid: 15186 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 25.5,41.5 + parent: 2 + - uid: 15187 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 27.5,38.5 + parent: 2 + - uid: 15188 + components: + - type: Transform + pos: 17.5,41.5 + parent: 2 + - uid: 15189 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 6.5,43.5 + parent: 2 + - uid: 15190 + components: + - type: Transform + pos: 5.5,37.5 + parent: 2 + - uid: 15191 + components: + - type: Transform + pos: 3.5,38.5 + parent: 2 + - uid: 15192 + components: + - type: Transform + pos: 3.5,40.5 + parent: 2 + - uid: 15193 + components: + - type: Transform + pos: 3.5,41.5 + parent: 2 + - uid: 15194 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 11.5,39.5 + parent: 2 + - uid: 15195 + components: + - type: Transform + pos: 14.5,38.5 + parent: 2 + - uid: 15196 + components: + - type: Transform + pos: 73.5,62.5 + parent: 2 + - uid: 15197 + components: + - type: Transform + pos: 74.5,62.5 + parent: 2 + - uid: 15198 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 71.5,46.5 + parent: 2 + - uid: 15199 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 71.5,42.5 + parent: 2 + - uid: 15200 + components: + - type: Transform + pos: 78.5,44.5 + parent: 2 + - uid: 15201 + components: + - type: Transform + pos: 71.5,38.5 + parent: 2 + - uid: 15202 + components: + - type: Transform + pos: 68.5,40.5 + parent: 2 + - uid: 15203 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 76.5,38.5 + parent: 2 + - uid: 15204 + components: + - type: Transform + pos: 67.5,1.5 + parent: 2 + - uid: 15205 + components: + - type: Transform + pos: 70.5,13.5 + parent: 2 + - uid: 15206 + components: + - type: Transform + pos: 70.5,21.5 + parent: 2 + - uid: 15207 + components: + - type: Transform + pos: 43.5,66.5 + parent: 2 + - uid: 15208 + components: + - type: Transform + pos: 44.5,66.5 + parent: 2 + - uid: 15209 + components: + - type: Transform + pos: 45.5,65.5 + parent: 2 + - uid: 15210 + components: + - type: Transform + pos: 45.5,64.5 + parent: 2 + - uid: 15211 + components: + - type: Transform + pos: -13.5,-1.5 + parent: 2 + - uid: 15212 + components: + - type: Transform + pos: -14.5,-1.5 + parent: 2 + - uid: 15213 + components: + - type: Transform + pos: -6.5,3.5 + parent: 2 + - uid: 15214 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 5.5,31.5 + parent: 2 + - uid: 19504 + components: + - type: Transform + pos: -31.5,74.5 + parent: 2 + - uid: 19505 + components: + - type: Transform + pos: -30.5,74.5 + parent: 2 + - uid: 19507 + components: + - type: Transform + pos: -31.5,73.5 + parent: 2 + - uid: 19508 + components: + - type: Transform + pos: -30.5,73.5 + parent: 2 + - uid: 19519 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -24.5,73.5 + parent: 2 + - uid: 19520 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -23.5,73.5 + parent: 2 +- proto: TableCarpet + entities: + - uid: 5988 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 72.5,28.5 + parent: 2 + - uid: 12988 + components: + - type: Transform + pos: 76.5,28.5 + parent: 2 + - uid: 14975 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 72.5,29.5 + parent: 2 + - uid: 15215 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 73.5,27.5 + parent: 2 + - uid: 15216 + components: + - type: Transform + pos: -20.5,53.5 + parent: 2 + - uid: 15217 + components: + - type: Transform + pos: -19.5,53.5 + parent: 2 + - uid: 15218 + components: + - type: Transform + pos: -17.5,53.5 + parent: 2 + - uid: 15219 + components: + - type: Transform + pos: -17.5,54.5 + parent: 2 + - uid: 15220 + components: + - type: Transform + pos: -17.5,55.5 + parent: 2 + - uid: 15221 + components: + - type: Transform + pos: -24.5,55.5 + parent: 2 + - uid: 15222 + components: + - type: Transform + pos: -24.5,54.5 + parent: 2 + - uid: 15223 + components: + - type: Transform + pos: -24.5,52.5 + parent: 2 + - uid: 15224 + components: + - type: Transform + pos: -24.5,51.5 + parent: 2 + - uid: 15225 + components: + - type: Transform + pos: -22.5,52.5 + parent: 2 + - uid: 15226 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 59.5,43.5 + parent: 2 + - uid: 15227 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 59.5,44.5 + parent: 2 + - uid: 15228 + components: + - type: Transform + pos: 40.5,43.5 + parent: 2 + - uid: 15229 + components: + - type: Transform + pos: 40.5,45.5 + parent: 2 + - uid: 15230 + components: + - type: Transform + pos: 35.5,43.5 + parent: 2 + - uid: 15231 + components: + - type: Transform + pos: 36.5,43.5 + parent: 2 + - uid: 15232 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 41.5,39.5 + parent: 2 + - uid: 15233 + components: + - type: Transform + pos: 39.5,38.5 + parent: 2 + - uid: 15234 + components: + - type: Transform + pos: 40.5,38.5 + parent: 2 + - uid: 15235 + components: + - type: Transform + pos: 36.5,37.5 + parent: 2 + - uid: 15236 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 75.5,31.5 + parent: 2 + - uid: 15238 + components: + - type: Transform + pos: 74.5,27.5 + parent: 2 + - uid: 15239 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 78.5,24.5 + parent: 2 + - uid: 15240 + components: + - type: Transform + pos: 83.5,23.5 + parent: 2 + - uid: 15241 + components: + - type: Transform + pos: 82.5,24.5 + parent: 2 + - uid: 15242 + components: + - type: Transform + pos: 82.5,23.5 + parent: 2 + - uid: 15243 + components: + - type: Transform + pos: 83.5,24.5 + parent: 2 + - uid: 15244 + components: + - type: Transform + pos: 63.5,14.5 + parent: 2 + - uid: 15245 + components: + - type: Transform + pos: 63.5,15.5 + parent: 2 + - uid: 15246 + components: + - type: Transform + pos: 80.5,50.5 + parent: 2 + - uid: 15247 + components: + - type: Transform + pos: 62.5,50.5 + parent: 2 + - uid: 15248 + components: + - type: Transform + pos: 60.5,54.5 + parent: 2 + - uid: 16996 + components: + - type: Transform + pos: 72.5,30.5 + parent: 2 +- proto: TableCounterWood + entities: + - uid: 15249 + components: + - type: Transform + pos: 59.5,39.5 + parent: 2 + - uid: 15250 + components: + - type: Transform + pos: 59.5,38.5 + parent: 2 +- proto: TableGlass + entities: + - uid: 15331 + components: + - type: Transform + pos: 84.5,34.5 + parent: 2 + - uid: 19476 + components: + - type: Transform + pos: -30.5,68.5 + parent: 2 + - uid: 19477 + components: + - type: Transform + pos: -31.5,67.5 + parent: 2 + - uid: 19478 + components: + - type: Transform + pos: -31.5,68.5 + parent: 2 + - uid: 19487 + components: + - type: Transform + pos: -30.5,67.5 + parent: 2 +- proto: TablePlasmaGlass + entities: + - uid: 15252 + components: + - type: Transform + pos: 52.5,-0.5 + parent: 2 + - uid: 15253 + components: + - type: Transform + pos: 52.5,-1.5 + parent: 2 + - uid: 15254 + components: + - type: Transform + pos: 50.5,-0.5 + parent: 2 + - uid: 15255 + components: + - type: Transform + pos: 50.5,-1.5 + parent: 2 + - uid: 15258 + components: + - type: Transform + pos: 46.5,31.5 + parent: 2 + - uid: 15259 + components: + - type: Transform + pos: 47.5,31.5 + parent: 2 + - uid: 15260 + components: + - type: Transform + pos: 48.5,31.5 + parent: 2 + - uid: 15261 + components: + - type: Transform + pos: -28.5,50.5 + parent: 2 + - uid: 15262 + components: + - type: Transform + pos: -27.5,50.5 + parent: 2 + - uid: 15263 + components: + - type: Transform + pos: 31.5,56.5 + parent: 2 + - uid: 15264 + components: + - type: Transform + pos: 31.5,53.5 + parent: 2 + - uid: 15265 + components: + - type: Transform + pos: 31.5,54.5 + parent: 2 + - uid: 15266 + components: + - type: Transform + pos: 10.5,27.5 + parent: 2 + - uid: 15267 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 44.5,45.5 + parent: 2 + - uid: 15268 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 45.5,45.5 + parent: 2 + - uid: 15269 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 46.5,45.5 + parent: 2 + - uid: 15270 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 52.5,46.5 + parent: 2 + - uid: 15271 + components: + - type: Transform + pos: 27.5,29.5 + parent: 2 + - uid: 15272 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 23.5,23.5 + parent: 2 + - uid: 15273 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 22.5,23.5 + parent: 2 + - uid: 15274 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 22.5,23.5 + parent: 2 + - uid: 15275 + components: + - type: Transform + pos: 20.5,26.5 + parent: 2 + - uid: 15276 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 11.5,24.5 + parent: 2 + - uid: 15277 + components: + - type: Transform + pos: 10.5,28.5 + parent: 2 + - uid: 15278 + components: + - type: Transform + pos: 13.5,28.5 + parent: 2 + - uid: 15279 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 15.5,28.5 + parent: 2 + - uid: 15280 + components: + - type: Transform + pos: 27.5,31.5 + parent: 2 + - uid: 15281 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 16.5,39.5 + parent: 2 + - uid: 15282 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 18.5,39.5 + parent: 2 + - uid: 15285 + components: + - type: Transform + pos: -37.5,34.5 + parent: 2 + - uid: 15286 + components: + - type: Transform + pos: -37.5,39.5 + parent: 2 +- proto: TableReinforced + entities: + - uid: 15287 + components: + - type: Transform + pos: -34.5,30.5 + parent: 2 + - uid: 15288 + components: + - type: Transform + pos: -4.5,6.5 + parent: 2 + - uid: 15289 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 7.5,46.5 + parent: 2 + - uid: 15290 + components: + - type: Transform + pos: -7.5,22.5 + parent: 2 + - uid: 15291 + components: + - type: Transform + pos: -6.5,20.5 + parent: 2 + - uid: 15292 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -5.5,25.5 + parent: 2 + - uid: 15293 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -5.5,26.5 + parent: 2 + - uid: 15294 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -1.5,35.5 + parent: 2 + - uid: 15295 + components: + - type: Transform + pos: 7.5,14.5 + parent: 2 + - uid: 15296 + components: + - type: Transform + pos: 11.5,14.5 + parent: 2 + - uid: 15297 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -13.5,64.5 + parent: 2 + - uid: 15298 + components: + - type: Transform + pos: -15.5,59.5 + parent: 2 + - uid: 15299 + components: + - type: Transform + pos: -13.5,51.5 + parent: 2 + - uid: 15300 + components: + - type: Transform + pos: -13.5,52.5 + parent: 2 + - uid: 15301 + components: + - type: Transform + pos: -14.5,50.5 + parent: 2 + - uid: 15302 + components: + - type: Transform + pos: -15.5,50.5 + parent: 2 + - uid: 15303 + components: + - type: Transform + pos: 36.5,7.5 + parent: 2 + - uid: 15304 + components: + - type: Transform + pos: 37.5,7.5 + parent: 2 + - uid: 15305 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 41.5,9.5 + parent: 2 + - uid: 15306 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 41.5,8.5 + parent: 2 + - uid: 15307 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 41.5,7.5 + parent: 2 + - uid: 15308 + components: + - type: Transform + pos: 55.5,23.5 + parent: 2 + - uid: 15309 + components: + - type: Transform + pos: 51.5,25.5 + parent: 2 + - uid: 15310 + components: + - type: Transform + pos: 49.5,38.5 + parent: 2 + - uid: 15311 + components: + - type: Transform + pos: 49.5,39.5 + parent: 2 + - uid: 15312 + components: + - type: Transform + pos: 45.5,36.5 + parent: 2 + - uid: 15313 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 51.5,43.5 + parent: 2 + - uid: 15314 + components: + - type: Transform + pos: 55.5,41.5 + parent: 2 + - uid: 15315 + components: + - type: Transform + pos: 56.5,41.5 + parent: 2 + - uid: 15316 + components: + - type: Transform + pos: 57.5,41.5 + parent: 2 + - uid: 15317 + components: + - type: Transform + pos: 42.5,28.5 + parent: 2 + - uid: 15318 + components: + - type: Transform + pos: 38.5,30.5 + parent: 2 + - uid: 15319 + components: + - type: Transform + pos: 37.5,30.5 + parent: 2 + - uid: 15320 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 30.5,28.5 + parent: 2 + - uid: 15321 + components: + - type: Transform + pos: 13.5,23.5 + parent: 2 + - uid: 15322 + components: + - type: Transform + pos: 12.5,29.5 + parent: 2 + - uid: 15323 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 25.5,35.5 + parent: 2 + - uid: 15324 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 26.5,35.5 + parent: 2 + - uid: 15325 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 27.5,35.5 + parent: 2 + - uid: 15326 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 27.5,36.5 + parent: 2 + - uid: 15327 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 73.5,40.5 + parent: 2 + - uid: 15328 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 82.5,35.5 + parent: 2 + - uid: 15329 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 82.5,33.5 + parent: 2 + - uid: 15330 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 84.5,33.5 + parent: 2 + - uid: 15332 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 84.5,35.5 + parent: 2 + - uid: 15333 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 87.5,34.5 + parent: 2 + - uid: 15334 + components: + - type: Transform + pos: 72.5,12.5 + parent: 2 +- proto: TableReinforcedGlass + entities: + - uid: 15335 + components: + - type: Transform + pos: 36.5,11.5 + parent: 2 +- proto: TableWood + entities: + - uid: 488 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 34.5,5.5 + parent: 2 + - uid: 7284 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 33.5,5.5 + parent: 2 + - uid: 15142 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 32.5,5.5 + parent: 2 + - uid: 15336 + components: + - type: Transform + pos: 30.5,16.5 + parent: 2 + - uid: 15337 + components: + - type: Transform + pos: 30.5,13.5 + parent: 2 + - uid: 15338 + components: + - type: Transform + pos: 17.5,14.5 + parent: 2 + - uid: 15339 + components: + - type: Transform + pos: 19.5,17.5 + parent: 2 + - uid: 15340 + components: + - type: Transform + pos: 23.5,13.5 + parent: 2 + - uid: 15341 + components: + - type: Transform + pos: 23.5,12.5 + parent: 2 + - uid: 15342 + components: + - type: Transform + pos: 23.5,11.5 + parent: 2 + - uid: 15343 + components: + - type: Transform + pos: 24.5,13.5 + parent: 2 + - uid: 15344 + components: + - type: Transform + pos: 24.5,12.5 + parent: 2 + - uid: 15345 + components: + - type: Transform + pos: 24.5,11.5 + parent: 2 + - uid: 15346 + components: + - type: Transform + pos: 1.5,60.5 + parent: 2 + - uid: 15347 + components: + - type: Transform + pos: 0.5,60.5 + parent: 2 + - uid: 15348 + components: + - type: Transform + pos: 0.5,59.5 + parent: 2 + - uid: 15349 + components: + - type: Transform + pos: 2.5,51.5 + parent: 2 + - uid: 15350 + components: + - type: Transform + pos: 6.5,72.5 + parent: 2 + - uid: 15351 + components: + - type: Transform + pos: 6.5,73.5 + parent: 2 + - uid: 15352 + components: + - type: Transform + pos: 8.5,79.5 + parent: 2 + - uid: 15353 + components: + - type: Transform + pos: 8.5,60.5 + parent: 2 + - uid: 15354 + components: + - type: Transform + pos: 9.5,60.5 + parent: 2 + - uid: 15355 + components: + - type: Transform + pos: 10.5,60.5 + parent: 2 + - uid: 15356 + components: + - type: Transform + pos: 14.5,59.5 + parent: 2 + - uid: 15357 + components: + - type: Transform + pos: 13.5,62.5 + parent: 2 + - uid: 15358 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 13.5,51.5 + parent: 2 + - uid: 15359 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 17.5,59.5 + parent: 2 + - uid: 15360 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 18.5,59.5 + parent: 2 + - uid: 15361 + components: + - type: Transform + pos: 17.5,51.5 + parent: 2 + - uid: 15362 + components: + - type: Transform + pos: 21.5,51.5 + parent: 2 + - uid: 15363 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 16.5,54.5 + parent: 2 + - uid: 15364 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 17.5,54.5 + parent: 2 + - uid: 15365 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 18.5,54.5 + parent: 2 + - uid: 15366 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 19.5,54.5 + parent: 2 + - uid: 15367 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 19.5,55.5 + parent: 2 + - uid: 15368 + components: + - type: Transform + pos: 16.5,56.5 + parent: 2 + - uid: 15369 + components: + - type: Transform + pos: 20.5,58.5 + parent: 2 + - uid: 15370 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 26.5,63.5 + parent: 2 +- proto: TelecomServer + entities: + - uid: 8385 + components: + - type: Transform + pos: -32.5,34.5 + parent: 2 + - type: ContainerContainer + containers: + key_slots: !type:Container + showEnts: False + occludes: True + ents: + - 8386 + machine_board: !type:Container + showEnts: False + occludes: True + ents: [] + machine_parts: !type:Container + showEnts: False + occludes: True + ents: [] + - uid: 8387 + components: + - type: Transform + pos: -36.5,34.5 + parent: 2 + - type: ContainerContainer + containers: + key_slots: !type:Container + showEnts: False + occludes: True + ents: + - 8388 + machine_board: !type:Container + showEnts: False + occludes: True + ents: [] + machine_parts: !type:Container + showEnts: False + occludes: True + ents: [] + - uid: 8389 + components: + - type: Transform + pos: -30.5,34.5 + parent: 2 + - type: ContainerContainer + containers: + key_slots: !type:Container + showEnts: False + occludes: True + ents: + - 8390 + machine_board: !type:Container + showEnts: False + occludes: True + ents: [] + machine_parts: !type:Container + showEnts: False + occludes: True + ents: [] + - uid: 8391 + components: + - type: Transform + pos: -32.5,39.5 + parent: 2 + - type: ContainerContainer + containers: + key_slots: !type:Container + showEnts: False + occludes: True + ents: + - 8392 + machine_board: !type:Container + showEnts: False + occludes: True + ents: [] + machine_parts: !type:Container + showEnts: False + occludes: True + ents: [] + - uid: 8393 + components: + - type: Transform + pos: -36.5,39.5 + parent: 2 + - type: ContainerContainer + containers: + key_slots: !type:Container + showEnts: False + occludes: True + ents: + - 8394 + machine_board: !type:Container + showEnts: False + occludes: True + ents: [] + machine_parts: !type:Container + showEnts: False + occludes: True + ents: [] + - uid: 8395 + components: + - type: Transform + pos: -34.5,34.5 + parent: 2 + - type: ContainerContainer + containers: + key_slots: !type:Container + showEnts: False + occludes: True + ents: + - 8396 + machine_board: !type:Container + showEnts: False + occludes: True + ents: [] + machine_parts: !type:Container + showEnts: False + occludes: True + ents: [] + - uid: 8397 + components: + - type: Transform + pos: -34.5,39.5 + parent: 2 + - type: ContainerContainer + containers: + key_slots: !type:Container + showEnts: False + occludes: True + ents: + - 8398 + machine_board: !type:Container + showEnts: False + occludes: True + ents: [] + machine_parts: !type:Container + showEnts: False + occludes: True + ents: [] + - uid: 8399 + components: + - type: Transform + pos: -30.5,39.5 + parent: 2 + - type: ContainerContainer + containers: + key_slots: !type:Container + showEnts: False + occludes: True + ents: + - 8400 + machine_board: !type:Container + showEnts: False + occludes: True + ents: [] + machine_parts: !type:Container + showEnts: False + occludes: True + ents: [] + - uid: 15371 + components: + - type: Transform + pos: 25.5,2.5 + parent: 2 +- proto: TelecomServerCircuitboard + entities: + - uid: 15372 + components: + - type: Transform + pos: 29.652218,54.62316 + parent: 2 +- proto: TelescopicShield + entities: + - uid: 15373 + components: + - type: Transform + pos: -19.484163,70.37912 + parent: 2 +- proto: TeslaGroundingRod + entities: + - uid: 15374 + components: + - type: Transform + pos: -20.5,33.5 + parent: 2 + - uid: 15375 + components: + - type: Transform + pos: -18.5,35.5 + parent: 2 +- proto: ThrusterMachineCircuitboard + entities: + - uid: 15376 + components: + - type: Transform + pos: -26.281868,43.435417 + parent: 2 +- proto: ThrusterUnanchored + entities: + - uid: 15377 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -24.5,45.5 + parent: 2 + - uid: 15378 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -24.5,46.5 + parent: 2 +- proto: TimerTrigger + entities: + - uid: 15379 + components: + - type: Transform + pos: 41.394043,7.857434 + parent: 2 + - uid: 15380 + components: + - type: Transform + pos: 41.57338,7.857434 + parent: 2 + - uid: 15381 + components: + - type: Transform + pos: 41.752712,7.8753543 + parent: 2 + - uid: 15382 + components: + - type: Transform + pos: 41.411976,7.678222 + parent: 2 + - uid: 15383 + components: + - type: Transform + pos: 41.73478,7.6961427 + parent: 2 +- proto: TintedWindow + entities: + - uid: 15384 + components: + - type: Transform + pos: 14.5,56.5 + parent: 2 +- proto: ToiletEmpty + entities: + - uid: 7127 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 74.5,23.5 + parent: 2 + - uid: 15385 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -35.5,60.5 + parent: 2 + - uid: 15386 + components: + - type: Transform + pos: -0.5,68.5 + parent: 2 +- proto: ToolboxArtisticFilled + entities: + - uid: 15388 + components: + - type: Transform + pos: 23.496847,11.574278 + parent: 2 + - uid: 15389 + components: + - type: Transform + pos: 6.4786124,72.54033 + parent: 2 + - uid: 15390 + components: + - type: Transform + pos: 20.446404,58.720234 + parent: 2 + - uid: 15391 + components: + - type: Transform + pos: 20.671005,58.46773 + parent: 2 +- proto: ToolboxElectricalFilled + entities: + - uid: 15392 + components: + - type: Transform + pos: -19.511765,64.77958 + parent: 2 + - uid: 15393 + components: + - type: Transform + pos: 55.585693,18.510311 + parent: 2 + - uid: 15394 + components: + - type: Transform + pos: 61.460552,31.474577 + parent: 2 + - uid: 15395 + components: + - type: Transform + pos: 61.504906,31.743872 + parent: 2 +- proto: ToolboxEmergency + entities: + - uid: 15396 + components: + - type: Transform + pos: -19.511765,64.70789 + parent: 2 +- proto: ToolboxEmergencyFilled + entities: + - uid: 15397 + components: + - type: Transform + pos: 67.398415,1.5101199 + parent: 2 + - uid: 15398 + components: + - type: Transform + pos: 67.59568,1.707253 + parent: 2 +- proto: ToolboxGoldFilled + entities: + - uid: 15399 + components: + - type: Transform + pos: 31.472889,53.963844 + parent: 2 +- proto: ToolboxMechanical + entities: + - uid: 15400 + components: + - type: Transform + pos: -19.475897,64.58244 + parent: 2 +- proto: ToolboxMechanicalFilled + entities: + - uid: 15401 + components: + - type: Transform + pos: 55.40636,18.295258 + parent: 2 + - uid: 15402 + components: + - type: Transform + pos: 50.61312,27.773558 + parent: 2 + - uid: 15403 + components: + - type: Transform + pos: 50.45172,27.576424 + parent: 2 + - uid: 15404 + components: + - type: Transform + pos: 58.658024,28.801037 + parent: 2 + - uid: 15405 + components: + - type: Transform + pos: 58.514557,28.65767 + parent: 2 + - uid: 15406 + components: + - type: Transform + pos: 58.37109,28.460535 + parent: 2 + - uid: 15407 + components: + - type: Transform + pos: 73.46528,62.57881 + parent: 2 + - uid: 15408 + components: + - type: Transform + pos: 71.47788,42.5652 + parent: 2 + - uid: 15409 + components: + - type: Transform + pos: 84.53903,33.43942 + parent: 2 +- proto: ToyAi + entities: + - uid: 15410 + components: + - type: Transform + pos: 25.489372,-11.360584 + parent: 2 +- proto: ToyFigurineClown + entities: + - uid: 767 + components: + - type: Transform + parent: 742 + - type: Physics + angularDamping: 0 + linearDamping: 0 + canCollide: False + - type: InsideEntityStorage +- proto: ToyRubberDuck + entities: + - uid: 15411 + components: + - type: Transform + pos: 0.96490765,73.09096 + parent: 2 +- proto: TrashBananaPeelExplosive + entities: + - uid: 15413 + components: + - type: Transform + pos: 28.482716,61.52888 + parent: 2 +- proto: TwoWayLever + entities: + - uid: 15414 + components: + - type: Transform + pos: 8.5,4.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 7265: + - Left: Forward + - Right: Reverse + - Middle: Off + 7266: + - Left: Forward + - Right: Reverse + - Middle: Off + 7267: + - Left: Forward + - Right: Reverse + - Middle: Off + 7273: + - Left: Forward + - Right: Reverse + - Middle: Off + 7272: + - Left: Forward + - Right: Reverse + - Middle: Off + 7271: + - Left: Forward + - Right: Reverse + - Middle: Off + 7270: + - Left: Forward + - Right: Reverse + - Middle: Off + 7269: + - Left: Forward + - Right: Reverse + - Middle: Off + 7268: + - Left: Forward + - Right: Reverse + - Middle: Off + 7274: + - Left: Forward + - Right: Reverse + - Middle: Off + - uid: 15415 + components: + - type: Transform + pos: 1.5,4.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 7264: + - Left: Forward + - Right: Reverse + - Middle: Off + 7263: + - Left: Forward + - Right: Reverse + - Middle: Off + 7262: + - Left: Forward + - Right: Reverse + - Middle: Off + 7261: + - Left: Forward + - Right: Reverse + - Middle: Off + 7254: + - Left: Forward + - Right: Reverse + - Middle: Off + 7255: + - Left: Forward + - Right: Reverse + - Middle: Off + 7256: + - Left: Forward + - Right: Reverse + - Middle: Off + - uid: 15416 + components: + - type: Transform + pos: -0.5,4.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 7253: + - Left: Forward + - Right: Reverse + - Middle: Off + 7252: + - Left: Forward + - Right: Reverse + - Middle: Off + 7251: + - Left: Forward + - Right: Reverse + - Middle: Off + 7257: + - Left: Forward + - Right: Reverse + - Middle: Off + 7258: + - Left: Forward + - Right: Reverse + - Middle: Off + 7259: + - Left: Forward + - Right: Reverse + - Middle: Off + 7260: + - Left: Forward + - Right: Reverse + - Middle: Off +- proto: UniformPrinter + entities: + - uid: 15417 + components: + - type: Transform + pos: 78.5,40.5 + parent: 2 +- proto: Vaccinator + entities: + - uid: 15418 + components: + - type: Transform + pos: 27.5,45.5 + parent: 2 +- proto: VendingBarDrobe + entities: + - uid: 15419 + components: + - type: Transform + pos: 62.5,42.5 + parent: 2 +- proto: VendingMachineBooze + entities: + - uid: 14863 + components: + - type: Transform + pos: 75.5,27.5 + parent: 2 + - uid: 15420 + components: + - type: Transform + pos: 47.5,59.5 + parent: 2 + - uid: 15421 + components: + - type: Transform + pos: 62.5,41.5 + parent: 2 +- proto: VendingMachineCargoDrobe + entities: + - uid: 15422 + components: + - type: Transform + pos: -0.5,12.5 + parent: 2 +- proto: VendingMachineCart + entities: + - uid: 15423 + components: + - type: Transform + pos: 74.5,38.5 + parent: 2 +- proto: VendingMachineChapel + entities: + - uid: 15424 + components: + - type: Transform + pos: 8.5,61.5 + parent: 2 +- proto: VendingMachineChefDrobe + entities: + - uid: 15425 + components: + - type: Transform + pos: 53.5,51.5 + parent: 2 +- proto: VendingMachineChefvend + entities: + - uid: 15426 + components: + - type: Transform + pos: 57.5,46.5 + parent: 2 +- proto: VendingMachineChemDrobe + entities: + - uid: 15427 + components: + - type: Transform + pos: 10.5,23.5 + parent: 2 +- proto: VendingMachineChemicals + entities: + - uid: 15428 + components: + - type: Transform + pos: 14.5,26.5 + parent: 2 +- proto: VendingMachineCigs + entities: + - uid: 15429 + components: + - type: Transform + pos: 35.5,32.5 + parent: 2 + - uid: 15430 + components: + - type: Transform + pos: 68.5,21.5 + parent: 2 + - uid: 19497 + components: + - type: Transform + pos: -27.5,69.5 + parent: 2 +- proto: VendingMachineClothing + entities: + - uid: 15431 + components: + - type: Transform + pos: 20.5,12.5 + parent: 2 +- proto: VendingMachineCoffee + entities: + - uid: 15432 + components: + - type: Transform + pos: 30.5,5.5 + parent: 2 + - uid: 15433 + components: + - type: Transform + pos: 25.5,51.5 + parent: 2 + - uid: 17007 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 72.5,26.5 + parent: 2 +- proto: VendingMachineCourierDrobe + entities: + - uid: 15434 + components: + - type: Transform + pos: -5.5,8.5 + parent: 2 +- proto: VendingMachineCuraDrobe + entities: + - uid: 15435 + components: + - type: Transform + pos: 16.5,58.5 + parent: 2 +- proto: VendingMachineDetDrobe + entities: + - uid: 15436 + components: + - type: Transform + pos: 1.5,57.5 + parent: 2 +- proto: VendingMachineDinnerware + entities: + - uid: 15437 + components: + - type: Transform + pos: 56.5,46.5 + parent: 2 +- proto: VendingMachineDonut + entities: + - uid: 15438 + components: + - type: Transform + pos: -6.5,17.5 + parent: 2 +- proto: VendingMachineEngiDrobe + entities: + - uid: 15439 + components: + - type: Transform + pos: -11.5,41.5 + parent: 2 +- proto: VendingMachineEngivend + entities: + - uid: 15440 + components: + - type: Transform + pos: -11.5,40.5 + parent: 2 + - uid: 15441 + components: + - type: Transform + pos: 32.5,-9.5 + parent: 2 +- proto: VendingMachineGames + entities: + - uid: 15442 + components: + - type: Transform + pos: 19.5,51.5 + parent: 2 + - uid: 15443 + components: + - type: Transform + pos: 38.5,44.5 + parent: 2 + - uid: 15444 + components: + - type: Transform + pos: 36.5,41.5 + parent: 2 +- proto: VendingMachineGeneDrobe + entities: + - uid: 15445 + components: + - type: Transform + pos: 25.5,23.5 + parent: 2 +- proto: VendingMachineHydrobe + entities: + - uid: 15446 + components: + - type: Transform + pos: 50.5,48.5 + parent: 2 +- proto: VendingMachineJaniDrobe + entities: + - uid: 15447 + components: + - type: Transform + pos: 39.5,51.5 + parent: 2 +- proto: VendingMachineLawDrobe + entities: + - uid: 15448 + components: + - type: Transform + pos: -24.5,53.5 + parent: 2 +- proto: VendingMachineMedical + entities: + - uid: 15449 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 4.5,31.5 + parent: 2 + - uid: 15450 + components: + - type: Transform + pos: -3.5,60.5 + parent: 2 + - uid: 15451 + components: + - type: Transform + pos: 3.5,37.5 + parent: 2 + - uid: 15452 + components: + - type: Transform + pos: 32.5,-11.5 + parent: 2 +- proto: VendingMachineMediDrobe + entities: + - uid: 15453 + components: + - type: Transform + pos: 6.5,41.5 + parent: 2 +- proto: VendingMachineNutri + entities: + - uid: 15454 + components: + - type: Transform + pos: 10.5,74.5 + parent: 2 + - uid: 15455 + components: + - type: Transform + pos: 43.5,37.5 + parent: 2 +- proto: VendingMachineRestockBooze + entities: + - uid: 15456 + components: + - type: Transform + pos: 61.56243,44.527573 + parent: 2 + - uid: 15457 + components: + - type: Transform + pos: 47.757805,60.169292 + parent: 2 +- proto: VendingMachineRestockMedical + entities: + - uid: 15458 + components: + - type: Transform + pos: 5.2875233,37.73525 + parent: 2 + - type: Physics + angularDamping: 0 + linearDamping: 0 +- proto: VendingMachineRoboDrobe + entities: + - uid: 15459 + components: + - type: Transform + pos: 60.5,20.5 + parent: 2 +- proto: VendingMachineRobotics + entities: + - uid: 15460 + components: + - type: Transform + pos: 59.5,18.5 + parent: 2 + - uid: 15461 + components: + - type: Transform + pos: 52.5,27.5 + parent: 2 + - uid: 15462 + components: + - type: Transform + pos: 33.5,-13.5 + parent: 2 +- proto: VendingMachineSalvage + entities: + - uid: 15463 + components: + - type: Transform + pos: -15.5,9.5 + parent: 2 +- proto: VendingMachineSciDrobe + entities: + - uid: 15464 + components: + - type: Transform + pos: 46.5,22.5 + parent: 2 +- proto: VendingMachineSec + entities: + - uid: 15465 + components: + - type: Transform + pos: -25.5,68.5 + parent: 2 + - uid: 15466 + components: + - type: Transform + pos: -21.5,69.5 + parent: 2 + - uid: 15467 + components: + - type: Transform + pos: 35.5,-13.5 + parent: 2 +- proto: VendingMachineSecDrobe + entities: + - uid: 15468 + components: + - type: Transform + pos: -3.5,31.5 + parent: 2 + - uid: 15469 + components: + - type: Transform + pos: -6.5,15.5 + parent: 2 + - uid: 15470 + components: + - type: Transform + pos: -6.5,15.5 + parent: 2 + - uid: 15471 + components: + - type: Transform + pos: -21.5,70.5 + parent: 2 + - uid: 15472 + components: + - type: Transform + pos: 43.5,13.5 + parent: 2 + - uid: 15473 + components: + - type: Transform + pos: 7.5,26.5 + parent: 2 + - uid: 15474 + components: + - type: Transform + pos: 62.5,56.5 + parent: 2 + - uid: 15475 + components: + - type: Transform + pos: 69.5,13.5 + parent: 2 +- proto: VendingMachineSeeds + entities: + - uid: 15476 + components: + - type: Transform + pos: 43.5,38.5 + parent: 2 +- proto: VendingMachineSeedsUnlocked + entities: + - uid: 13974 + components: + - type: Transform + pos: -31.5,77.5 + parent: 2 + - uid: 15477 + components: + - type: Transform + pos: 10.5,75.5 + parent: 2 +- proto: VendingMachineSyndieDrobe + entities: + - uid: 12786 + components: + - type: Transform + pos: 39.5,65.5 + parent: 2 +- proto: VendingMachineTankDispenserEngineering + entities: + - uid: 15478 + components: + - type: Transform + pos: -13.5,28.5 + parent: 2 + - uid: 15479 + components: + - type: Transform + pos: 41.5,11.5 + parent: 2 + - uid: 15480 + components: + - type: Transform + pos: -13.5,27.5 + parent: 2 +- proto: VendingMachineTankDispenserEVA + entities: + - uid: 15481 + components: + - type: Transform + pos: -12.5,18.5 + parent: 2 + - uid: 15482 + components: + - type: Transform + pos: -21.5,68.5 + parent: 2 + - uid: 15483 + components: + - type: Transform + pos: 70.5,46.5 + parent: 2 + - uid: 15484 + components: + - type: Transform + pos: -5.5,38.5 + parent: 2 + - uid: 15485 + components: + - type: Transform + pos: -17.5,-7.5 + parent: 2 +- proto: VendingMachineTheater + entities: + - uid: 15486 + components: + - type: Transform + pos: 38.5,43.5 + parent: 2 +- proto: VendingMachineVendomat + entities: + - uid: 15487 + components: + - type: Transform + pos: 41.5,15.5 + parent: 2 + - uid: 15488 + components: + - type: Transform + pos: 34.5,-13.5 + parent: 2 +- proto: VendingMachineWallMedical + entities: + - uid: 15489 + components: + - type: Transform + pos: 27.5,36.5 + parent: 2 +- proto: VendingMachineWinter + entities: + - uid: 15490 + components: + - type: Transform + pos: 22.5,8.5 + parent: 2 +- proto: VendingMachineYouTool + entities: + - uid: 15491 + components: + - type: Transform + pos: 62.5,31.5 + parent: 2 + - uid: 15492 + components: + - type: Transform + pos: -11.5,39.5 + parent: 2 + - uid: 15493 + components: + - type: Transform + pos: 32.5,-13.5 + parent: 2 +- proto: WallmountTelescreen + entities: + - uid: 15494 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 73.5,27.5 + parent: 2 + - uid: 15495 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 46.5,13.5 + parent: 2 + - uid: 15496 + components: + - type: Transform + pos: 0.5,60.5 + parent: 2 + - uid: 15497 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 27.5,-10.5 + parent: 2 + - uid: 15498 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 27.5,-12.5 + parent: 2 + - uid: 15499 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 36.5,-2.5 + parent: 2 +- proto: WallmountTelevision + entities: + - uid: 15500 + components: + - type: Transform + pos: 36.5,42.5 + parent: 2 + - uid: 15501 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 63.5,38.5 + parent: 2 +- proto: WallmountTelevisionFrame + entities: + - uid: 5811 + components: + - type: Transform + pos: 69.5,32.5 + parent: 2 +- proto: WallPlastitanium + entities: + - uid: 15502 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -40.5,62.5 + parent: 2 + - uid: 15503 + components: + - type: Transform + pos: 18.5,79.5 + parent: 2 + - uid: 15504 + components: + - type: Transform + pos: 17.5,-0.5 + parent: 2 + - uid: 17015 + components: + - type: Transform + pos: 82.5,14.5 + parent: 2 + - uid: 18936 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 54.5,64.5 + parent: 2 +- proto: WallReinforced + entities: + - uid: 511 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -12.5,66.5 + parent: 2 + - uid: 882 + components: + - type: Transform + pos: 67.5,31.5 + parent: 2 + - uid: 1595 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -13.5,68.5 + parent: 2 + - uid: 1822 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -36.5,70.5 + parent: 2 + - uid: 1823 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -36.5,69.5 + parent: 2 + - uid: 5082 + components: + - type: Transform + pos: -12.5,69.5 + parent: 2 + - uid: 5206 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -12.5,68.5 + parent: 2 + - uid: 5750 + components: + - type: Transform + pos: -17.5,72.5 + parent: 2 + - uid: 5751 + components: + - type: Transform + pos: -18.5,72.5 + parent: 2 + - uid: 5752 + components: + - type: Transform + pos: -19.5,72.5 + parent: 2 + - uid: 5753 + components: + - type: Transform + pos: -16.5,72.5 + parent: 2 + - uid: 5754 + components: + - type: Transform + pos: -15.5,72.5 + parent: 2 + - uid: 5755 + components: + - type: Transform + pos: -14.5,72.5 + parent: 2 + - uid: 5756 + components: + - type: Transform + pos: -13.5,72.5 + parent: 2 + - uid: 5759 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -20.5,74.5 + parent: 2 + - uid: 6053 + components: + - type: Transform + pos: -4.5,71.5 + parent: 2 + - uid: 6054 + components: + - type: Transform + pos: -4.5,70.5 + parent: 2 + - uid: 6056 + components: + - type: Transform + pos: -12.5,71.5 + parent: 2 + - uid: 6192 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -35.5,73.5 + parent: 2 + - uid: 6331 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -35.5,72.5 + parent: 2 + - uid: 6461 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -35.5,71.5 + parent: 2 + - uid: 7241 + components: + - type: Transform + pos: 73.5,25.5 + parent: 2 + - uid: 8113 + components: + - type: Transform + pos: 73.5,23.5 + parent: 2 + - uid: 11667 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 48.5,5.5 + parent: 2 + - uid: 12239 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 54.5,59.5 + parent: 2 + - uid: 12539 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -25.5,75.5 + parent: 2 + - uid: 12543 + components: + - type: Transform + pos: -20.5,72.5 + parent: 2 + - uid: 12544 + components: + - type: Transform + pos: -12.5,70.5 + parent: 2 + - uid: 13478 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -21.5,75.5 + parent: 2 + - uid: 13679 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 54.5,63.5 + parent: 2 + - uid: 13681 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 54.5,60.5 + parent: 2 + - uid: 14314 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 54.5,62.5 + parent: 2 + - uid: 14534 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 32.5,6.5 + parent: 2 + - uid: 14552 + components: + - type: Transform + pos: 73.5,24.5 + parent: 2 + - uid: 15505 + components: + - type: Transform + pos: 81.5,14.5 + parent: 2 + - uid: 15506 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 3.5,26.5 + parent: 2 + - uid: 15507 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 3.5,30.5 + parent: 2 + - uid: 15508 + components: + - type: Transform + pos: 4.5,36.5 + parent: 2 + - uid: 15509 + components: + - type: Transform + pos: -7.5,17.5 + parent: 2 + - uid: 15510 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 23.5,-6.5 + parent: 2 + - uid: 15511 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 24.5,-6.5 + parent: 2 + - uid: 15512 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 22.5,-6.5 + parent: 2 + - uid: 15513 + components: + - type: Transform + pos: -32.5,0.5 + parent: 2 + - uid: 15514 + components: + - type: Transform + pos: -31.5,0.5 + parent: 2 + - uid: 15515 + components: + - type: Transform + pos: -33.5,0.5 + parent: 2 + - uid: 15516 + components: + - type: Transform + pos: -27.5,0.5 + parent: 2 + - uid: 15517 + components: + - type: Transform + pos: -29.5,0.5 + parent: 2 + - uid: 15518 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -30.5,22.5 + parent: 2 + - uid: 15519 + components: + - type: Transform + pos: -24.5,42.5 + parent: 2 + - uid: 15520 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -29.5,21.5 + parent: 2 + - uid: 15521 + components: + - type: Transform + pos: -28.5,0.5 + parent: 2 + - uid: 15522 + components: + - type: Transform + pos: -26.5,42.5 + parent: 2 + - uid: 15523 + components: + - type: Transform + pos: -30.5,0.5 + parent: 2 + - uid: 15525 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -19.5,75.5 + parent: 2 + - uid: 15526 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -18.5,75.5 + parent: 2 + - uid: 15527 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -17.5,75.5 + parent: 2 + - uid: 15528 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -16.5,75.5 + parent: 2 + - uid: 15529 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -15.5,75.5 + parent: 2 + - uid: 15530 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -14.5,75.5 + parent: 2 + - uid: 15531 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -13.5,75.5 + parent: 2 + - uid: 15532 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -13.5,73.5 + parent: 2 + - uid: 15533 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -20.5,75.5 + parent: 2 + - uid: 15534 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -20.5,73.5 + parent: 2 + - uid: 15535 + components: + - type: Transform + pos: -17.5,33.5 + parent: 2 + - uid: 15536 + components: + - type: Transform + pos: -14.5,-8.5 + parent: 2 + - uid: 15537 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -40.5,6.5 + parent: 2 + - uid: 15538 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -40.5,14.5 + parent: 2 + - uid: 15539 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -36.5,14.5 + parent: 2 + - uid: 15540 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -38.5,14.5 + parent: 2 + - uid: 15541 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -40.5,9.5 + parent: 2 + - uid: 15542 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -40.5,13.5 + parent: 2 + - uid: 15543 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -38.5,6.5 + parent: 2 + - uid: 15544 + components: + - type: Transform + pos: 34.5,56.5 + parent: 2 + - uid: 15545 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -36.5,6.5 + parent: 2 + - uid: 15546 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -37.5,6.5 + parent: 2 + - uid: 15547 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -36.5,10.5 + parent: 2 + - uid: 15548 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -38.5,10.5 + parent: 2 + - uid: 15549 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -38.5,18.5 + parent: 2 + - uid: 15550 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -39.5,6.5 + parent: 2 + - uid: 15551 + components: + - type: Transform + pos: 33.5,52.5 + parent: 2 + - uid: 15552 + components: + - type: Transform + pos: 36.5,53.5 + parent: 2 + - uid: 15553 + components: + - type: Transform + pos: 36.5,56.5 + parent: 2 + - uid: 15554 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -40.5,18.5 + parent: 2 + - uid: 15555 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -37.5,22.5 + parent: 2 + - uid: 15556 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -36.5,22.5 + parent: 2 + - uid: 15557 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -38.5,22.5 + parent: 2 + - uid: 15558 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -34.5,4.5 + parent: 2 + - uid: 15559 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -34.5,2.5 + parent: 2 + - uid: 15560 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -34.5,3.5 + parent: 2 + - uid: 15561 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -34.5,0.5 + parent: 2 + - uid: 15562 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -30.5,4.5 + parent: 2 + - uid: 15563 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -26.5,0.5 + parent: 2 + - uid: 15564 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -26.5,4.5 + parent: 2 + - uid: 15565 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -26.5,1.5 + parent: 2 + - uid: 15566 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -26.5,2.5 + parent: 2 + - uid: 15567 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -30.5,2.5 + parent: 2 + - uid: 15568 + components: + - type: Transform + pos: -16.5,32.5 + parent: 2 + - uid: 15569 + components: + - type: Transform + pos: -21.5,32.5 + parent: 2 + - uid: 15570 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -37.5,31.5 + parent: 2 + - uid: 15571 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -39.5,29.5 + parent: 2 + - uid: 15572 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -38.5,28.5 + parent: 2 + - uid: 15573 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -23.5,36.5 + parent: 2 + - uid: 15574 + components: + - type: Transform + pos: -21.5,37.5 + parent: 2 + - uid: 15575 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -22.5,36.5 + parent: 2 + - uid: 15576 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -25.5,20.5 + parent: 2 + - uid: 15577 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -25.5,21.5 + parent: 2 + - uid: 15578 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -23.5,32.5 + parent: 2 + - uid: 15579 + components: + - type: Transform + pos: -13.5,26.5 + parent: 2 + - uid: 15580 + components: + - type: Transform + pos: -17.5,32.5 + parent: 2 + - uid: 15581 + components: + - type: Transform + pos: -21.5,30.5 + parent: 2 + - uid: 15582 + components: + - type: Transform + pos: -17.5,31.5 + parent: 2 + - uid: 15583 + components: + - type: Transform + pos: -17.5,30.5 + parent: 2 + - uid: 15584 + components: + - type: Transform + pos: -17.5,36.5 + parent: 2 + - uid: 15585 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -15.5,42.5 + parent: 2 + - uid: 15586 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -22.5,32.5 + parent: 2 + - uid: 15587 + components: + - type: Transform + pos: -17.5,38.5 + parent: 2 + - uid: 15588 + components: + - type: Transform + pos: -17.5,35.5 + parent: 2 + - uid: 15589 + components: + - type: Transform + pos: -12.5,-1.5 + parent: 2 + - uid: 15590 + components: + - type: Transform + pos: -13.5,-3.5 + parent: 2 + - uid: 15591 + components: + - type: Transform + pos: -12.5,2.5 + parent: 2 + - uid: 15592 + components: + - type: Transform + pos: -12.5,-2.5 + parent: 2 + - uid: 15593 + components: + - type: Transform + pos: -13.5,-2.5 + parent: 2 + - uid: 15594 + components: + - type: Transform + pos: -16.5,36.5 + parent: 2 + - uid: 15595 + components: + - type: Transform + pos: 36.5,54.5 + parent: 2 + - uid: 15596 + components: + - type: Transform + pos: 36.5,55.5 + parent: 2 + - uid: 15597 + components: + - type: Transform + pos: 34.5,52.5 + parent: 2 + - uid: 15598 + components: + - type: Transform + pos: 36.5,52.5 + parent: 2 + - uid: 15599 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -40.5,20.5 + parent: 2 + - uid: 15600 + components: + - type: Transform + pos: 35.5,56.5 + parent: 2 + - uid: 15601 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -40.5,22.5 + parent: 2 + - uid: 15602 + components: + - type: Transform + pos: 33.5,56.5 + parent: 2 + - uid: 15603 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -39.5,22.5 + parent: 2 + - uid: 15604 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -40.5,11.5 + parent: 2 + - uid: 15605 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -40.5,12.5 + parent: 2 + - uid: 15606 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -39.5,14.5 + parent: 2 + - uid: 15607 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -36.5,18.5 + parent: 2 + - uid: 15608 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -37.5,18.5 + parent: 2 + - uid: 15609 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -37.5,14.5 + parent: 2 + - uid: 15610 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -40.5,8.5 + parent: 2 + - uid: 15611 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -40.5,7.5 + parent: 2 + - uid: 15612 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -40.5,15.5 + parent: 2 + - uid: 15613 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -40.5,16.5 + parent: 2 + - uid: 15614 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -39.5,10.5 + parent: 2 + - uid: 15615 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -40.5,10.5 + parent: 2 + - uid: 15616 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -37.5,10.5 + parent: 2 + - uid: 15617 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -26.5,3.5 + parent: 2 + - uid: 15618 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -34.5,1.5 + parent: 2 + - uid: 15619 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -30.5,1.5 + parent: 2 + - uid: 15620 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -30.5,3.5 + parent: 2 + - uid: 15621 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -40.5,17.5 + parent: 2 + - uid: 15622 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -40.5,19.5 + parent: 2 + - uid: 15623 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -39.5,18.5 + parent: 2 + - uid: 15624 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -40.5,21.5 + parent: 2 + - uid: 15625 + components: + - type: Transform + pos: 55.5,-4.5 + parent: 2 + - uid: 15626 + components: + - type: Transform + pos: 54.5,-4.5 + parent: 2 + - uid: 15627 + components: + - type: Transform + pos: 54.5,-5.5 + parent: 2 + - uid: 15628 + components: + - type: Transform + pos: 53.5,-5.5 + parent: 2 + - uid: 15629 + components: + - type: Transform + pos: -21.5,36.5 + parent: 2 + - uid: 15630 + components: + - type: Transform + pos: -13.5,-7.5 + parent: 2 + - uid: 15631 + components: + - type: Transform + pos: -15.5,32.5 + parent: 2 + - uid: 15632 + components: + - type: Transform + pos: -15.5,33.5 + parent: 2 + - uid: 15633 + components: + - type: Transform + pos: -15.5,35.5 + parent: 2 + - uid: 15634 + components: + - type: Transform + pos: -21.5,38.5 + parent: 2 + - uid: 15635 + components: + - type: Transform + pos: -15.5,36.5 + parent: 2 + - uid: 15636 + components: + - type: Transform + pos: -17.5,37.5 + parent: 2 + - uid: 15637 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -25.5,22.5 + parent: 2 + - uid: 15638 + components: + - type: Transform + pos: -21.5,31.5 + parent: 2 + - uid: 15639 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -38.5,31.5 + parent: 2 + - uid: 15640 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -39.5,31.5 + parent: 2 + - uid: 15641 + components: + - type: Transform + pos: -13.5,-8.5 + parent: 2 + - uid: 15642 + components: + - type: Transform + pos: -17.5,-8.5 + parent: 2 + - uid: 15643 + components: + - type: Transform + pos: -18.5,-8.5 + parent: 2 + - uid: 15644 + components: + - type: Transform + pos: -18.5,-7.5 + parent: 2 + - uid: 15645 + components: + - type: Transform + pos: -18.5,-5.5 + parent: 2 + - uid: 15646 + components: + - type: Transform + pos: -18.5,-6.5 + parent: 2 + - uid: 15647 + components: + - type: Transform + pos: -18.5,-4.5 + parent: 2 + - uid: 15648 + components: + - type: Transform + pos: -18.5,-3.5 + parent: 2 + - uid: 15649 + components: + - type: Transform + pos: -18.5,-2.5 + parent: 2 + - uid: 15650 + components: + - type: Transform + pos: -18.5,-1.5 + parent: 2 + - uid: 15651 + components: + - type: Transform + pos: -18.5,-0.5 + parent: 2 + - uid: 15652 + components: + - type: Transform + pos: -18.5,0.5 + parent: 2 + - uid: 15653 + components: + - type: Transform + pos: -18.5,1.5 + parent: 2 + - uid: 15654 + components: + - type: Transform + pos: -18.5,2.5 + parent: 2 + - uid: 15655 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 6.5,23.5 + parent: 2 + - uid: 15656 + components: + - type: Transform + pos: -12.5,3.5 + parent: 2 + - uid: 15657 + components: + - type: Transform + pos: -8.5,3.5 + parent: 2 + - uid: 15658 + components: + - type: Transform + pos: -8.5,2.5 + parent: 2 + - uid: 15659 + components: + - type: Transform + pos: -7.5,2.5 + parent: 2 + - uid: 15660 + components: + - type: Transform + pos: -6.5,2.5 + parent: 2 + - uid: 15661 + components: + - type: Transform + pos: -5.5,2.5 + parent: 2 + - uid: 15662 + components: + - type: Transform + pos: -4.5,2.5 + parent: 2 + - uid: 15663 + components: + - type: Transform + pos: -14.5,11.5 + parent: 2 + - uid: 15664 + components: + - type: Transform + pos: -16.5,3.5 + parent: 2 + - uid: 15665 + components: + - type: Transform + pos: -16.5,4.5 + parent: 2 + - uid: 15666 + components: + - type: Transform + pos: -16.5,5.5 + parent: 2 + - uid: 15667 + components: + - type: Transform + pos: -16.5,6.5 + parent: 2 + - uid: 15668 + components: + - type: Transform + pos: -16.5,7.5 + parent: 2 + - uid: 15669 + components: + - type: Transform + pos: -16.5,9.5 + parent: 2 + - uid: 15670 + components: + - type: Transform + pos: -16.5,10.5 + parent: 2 + - uid: 15671 + components: + - type: Transform + pos: -15.5,10.5 + parent: 2 + - uid: 15672 + components: + - type: Transform + pos: -14.5,10.5 + parent: 2 + - uid: 15673 + components: + - type: Transform + pos: -19.5,9.5 + parent: 2 + - uid: 15674 + components: + - type: Transform + pos: -19.5,8.5 + parent: 2 + - uid: 15675 + components: + - type: Transform + pos: -19.5,6.5 + parent: 2 + - uid: 15676 + components: + - type: Transform + pos: -19.5,7.5 + parent: 2 + - uid: 15677 + components: + - type: Transform + pos: -19.5,4.5 + parent: 2 + - uid: 15678 + components: + - type: Transform + pos: -19.5,3.5 + parent: 2 + - uid: 15679 + components: + - type: Transform + pos: -19.5,5.5 + parent: 2 + - uid: 15680 + components: + - type: Transform + pos: -18.5,3.5 + parent: 2 + - uid: 15681 + components: + - type: Transform + pos: -17.5,3.5 + parent: 2 + - uid: 15682 + components: + - type: Transform + pos: -14.5,13.5 + parent: 2 + - uid: 15683 + components: + - type: Transform + pos: 5.5,1.5 + parent: 2 + - uid: 15684 + components: + - type: Transform + pos: 5.5,2.5 + parent: 2 + - uid: 15685 + components: + - type: Transform + pos: 5.5,3.5 + parent: 2 + - uid: 15686 + components: + - type: Transform + pos: 5.5,4.5 + parent: 2 + - uid: 15687 + components: + - type: Transform + pos: 5.5,5.5 + parent: 2 + - uid: 15688 + components: + - type: Transform + pos: 5.5,6.5 + parent: 2 + - uid: 15689 + components: + - type: Transform + pos: 5.5,7.5 + parent: 2 + - uid: 15690 + components: + - type: Transform + pos: 5.5,8.5 + parent: 2 + - uid: 15691 + components: + - type: Transform + pos: 6.5,8.5 + parent: 2 + - uid: 15692 + components: + - type: Transform + pos: 13.5,9.5 + parent: 2 + - uid: 15693 + components: + - type: Transform + pos: 8.5,8.5 + parent: 2 + - uid: 15694 + components: + - type: Transform + pos: 9.5,8.5 + parent: 2 + - uid: 15695 + components: + - type: Transform + pos: 10.5,9.5 + parent: 2 + - uid: 15696 + components: + - type: Transform + pos: 9.5,9.5 + parent: 2 + - uid: 15697 + components: + - type: Transform + pos: 11.5,9.5 + parent: 2 + - uid: 15698 + components: + - type: Transform + pos: 12.5,9.5 + parent: 2 + - uid: 15699 + components: + - type: Transform + pos: 13.5,10.5 + parent: 2 + - uid: 15700 + components: + - type: Transform + pos: 13.5,12.5 + parent: 2 + - uid: 15701 + components: + - type: Transform + pos: 13.5,13.5 + parent: 2 + - uid: 15702 + components: + - type: Transform + pos: 13.5,14.5 + parent: 2 + - uid: 15703 + components: + - type: Transform + pos: 13.5,11.5 + parent: 2 + - uid: 15704 + components: + - type: Transform + pos: 9.5,14.5 + parent: 2 + - uid: 15705 + components: + - type: Transform + pos: 5.5,13.5 + parent: 2 + - uid: 15706 + components: + - type: Transform + pos: 5.5,14.5 + parent: 2 + - uid: 15707 + components: + - type: Transform + pos: 4.5,18.5 + parent: 2 + - uid: 15708 + components: + - type: Transform + pos: -7.5,15.5 + parent: 2 + - uid: 15709 + components: + - type: Transform + pos: -7.5,14.5 + parent: 2 + - uid: 15710 + components: + - type: Transform + pos: -2.5,13.5 + parent: 2 + - uid: 15711 + components: + - type: Transform + pos: -2.5,14.5 + parent: 2 + - uid: 15712 + components: + - type: Transform + pos: -2.5,16.5 + parent: 2 + - uid: 15713 + components: + - type: Transform + pos: -2.5,15.5 + parent: 2 + - uid: 15714 + components: + - type: Transform + pos: 5.5,18.5 + parent: 2 + - uid: 15715 + components: + - type: Transform + pos: -2.5,17.5 + parent: 2 + - uid: 15716 + components: + - type: Transform + pos: -2.5,18.5 + parent: 2 + - uid: 15717 + components: + - type: Transform + pos: -1.5,18.5 + parent: 2 + - uid: 15718 + components: + - type: Transform + pos: -0.5,18.5 + parent: 2 + - uid: 15719 + components: + - type: Transform + pos: 0.5,18.5 + parent: 2 + - uid: 15720 + components: + - type: Transform + pos: 1.5,18.5 + parent: 2 + - uid: 15721 + components: + - type: Transform + pos: 2.5,18.5 + parent: 2 + - uid: 15722 + components: + - type: Transform + pos: -14.5,14.5 + parent: 2 + - uid: 15723 + components: + - type: Transform + pos: -14.5,15.5 + parent: 2 + - uid: 15724 + components: + - type: Transform + pos: -13.5,15.5 + parent: 2 + - uid: 15725 + components: + - type: Transform + pos: -11.5,15.5 + parent: 2 + - uid: 15726 + components: + - type: Transform + pos: -12.5,15.5 + parent: 2 + - uid: 15727 + components: + - type: Transform + pos: -10.5,15.5 + parent: 2 + - uid: 15728 + components: + - type: Transform + pos: -8.5,15.5 + parent: 2 + - uid: 15729 + components: + - type: Transform + pos: -9.5,15.5 + parent: 2 + - uid: 15730 + components: + - type: Transform + pos: 29.5,5.5 + parent: 2 + - uid: 15731 + components: + - type: Transform + pos: 29.5,6.5 + parent: 2 + - uid: 15732 + components: + - type: Transform + pos: 33.5,7.5 + parent: 2 + - uid: 15733 + components: + - type: Transform + pos: 33.5,6.5 + parent: 2 + - uid: 15735 + components: + - type: Transform + pos: 30.5,6.5 + parent: 2 + - uid: 15736 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 8.5,22.5 + parent: 2 + - uid: 15737 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 9.5,22.5 + parent: 2 + - uid: 15738 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 10.5,22.5 + parent: 2 + - uid: 15739 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 11.5,22.5 + parent: 2 + - uid: 15740 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 11.5,23.5 + parent: 2 + - uid: 15741 + components: + - type: Transform + pos: -6.5,22.5 + parent: 2 + - uid: 15742 + components: + - type: Transform + pos: -8.5,26.5 + parent: 2 + - uid: 15743 + components: + - type: Transform + pos: -2.5,22.5 + parent: 2 + - uid: 15744 + components: + - type: Transform + pos: -3.5,22.5 + parent: 2 + - uid: 15745 + components: + - type: Transform + pos: -2.5,23.5 + parent: 2 + - uid: 15746 + components: + - type: Transform + pos: -2.5,24.5 + parent: 2 + - uid: 15747 + components: + - type: Transform + pos: -1.5,24.5 + parent: 2 + - uid: 15748 + components: + - type: Transform + pos: 5.5,25.5 + parent: 2 + - uid: 15749 + components: + - type: Transform + pos: 6.5,25.5 + parent: 2 + - uid: 15750 + components: + - type: Transform + pos: 8.5,25.5 + parent: 2 + - uid: 15751 + components: + - type: Transform + pos: 7.5,25.5 + parent: 2 + - uid: 15752 + components: + - type: Transform + pos: 5.5,26.5 + parent: 2 + - uid: 15753 + components: + - type: Transform + pos: 4.5,26.5 + parent: 2 + - uid: 15754 + components: + - type: Transform + pos: 4.5,30.5 + parent: 2 + - uid: 15755 + components: + - type: Transform + pos: 5.5,30.5 + parent: 2 + - uid: 15756 + components: + - type: Transform + pos: 6.5,30.5 + parent: 2 + - uid: 15757 + components: + - type: Transform + pos: 7.5,30.5 + parent: 2 + - uid: 15758 + components: + - type: Transform + pos: 9.5,28.5 + parent: 2 + - uid: 15759 + components: + - type: Transform + pos: 15.5,23.5 + parent: 2 + - uid: 15760 + components: + - type: Transform + pos: 6.5,36.5 + parent: 2 + - uid: 15761 + components: + - type: Transform + pos: 5.5,36.5 + parent: 2 + - uid: 15762 + components: + - type: Transform + pos: 15.5,24.5 + parent: 2 + - uid: 15763 + components: + - type: Transform + pos: 3.5,36.5 + parent: 2 + - uid: 15764 + components: + - type: Transform + pos: 2.5,36.5 + parent: 2 + - uid: 15765 + components: + - type: Transform + pos: 15.5,26.5 + parent: 2 + - uid: 15766 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 15.5,27.5 + parent: 2 + - uid: 15767 + components: + - type: Transform + pos: 14.5,27.5 + parent: 2 + - uid: 15768 + components: + - type: Transform + pos: 14.5,28.5 + parent: 2 + - uid: 15769 + components: + - type: Transform + pos: 14.5,29.5 + parent: 2 + - uid: 15770 + components: + - type: Transform + pos: 19.5,23.5 + parent: 2 + - uid: 15771 + components: + - type: Transform + pos: 19.5,22.5 + parent: 2 + - uid: 15772 + components: + - type: Transform + pos: 19.5,24.5 + parent: 2 + - uid: 15773 + components: + - type: Transform + pos: 19.5,26.5 + parent: 2 + - uid: 15774 + components: + - type: Transform + pos: 19.5,27.5 + parent: 2 + - uid: 15775 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 20.5,22.5 + parent: 2 + - uid: 15776 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 23.5,22.5 + parent: 2 + - uid: 15777 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 24.5,22.5 + parent: 2 + - uid: 15778 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 24.5,23.5 + parent: 2 + - uid: 15779 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 25.5,22.5 + parent: 2 + - uid: 15780 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 24.5,26.5 + parent: 2 + - uid: 15781 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 24.5,27.5 + parent: 2 + - uid: 15782 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 24.5,28.5 + parent: 2 + - uid: 15783 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 24.5,29.5 + parent: 2 + - uid: 15784 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 20.5,27.5 + parent: 2 + - uid: 15785 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 20.5,28.5 + parent: 2 + - uid: 15786 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 20.5,29.5 + parent: 2 + - uid: 15787 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 22.5,29.5 + parent: 2 + - uid: 15788 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 27.5,22.5 + parent: 2 + - uid: 15789 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 29.5,22.5 + parent: 2 + - uid: 15790 + components: + - type: Transform + pos: 15.5,46.5 + parent: 2 + - uid: 15791 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 29.5,23.5 + parent: 2 + - uid: 15792 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 30.5,23.5 + parent: 2 + - uid: 15793 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 30.5,24.5 + parent: 2 + - uid: 15794 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 30.5,25.5 + parent: 2 + - uid: 15795 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 30.5,26.5 + parent: 2 + - uid: 15796 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 24.5,30.5 + parent: 2 + - uid: 15797 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 25.5,30.5 + parent: 2 + - uid: 15798 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 26.5,30.5 + parent: 2 + - uid: 15799 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 27.5,30.5 + parent: 2 + - uid: 15800 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 28.5,30.5 + parent: 2 + - uid: 15801 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 29.5,30.5 + parent: 2 + - uid: 15802 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 30.5,30.5 + parent: 2 + - uid: 15803 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 27.5,37.5 + parent: 2 + - uid: 15804 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 29.5,37.5 + parent: 2 + - uid: 15805 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 26.5,37.5 + parent: 2 + - uid: 15806 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 24.5,35.5 + parent: 2 + - uid: 15807 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 28.5,37.5 + parent: 2 + - uid: 15808 + components: + - type: Transform + pos: -6.5,25.5 + parent: 2 + - uid: 15809 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 20.5,36.5 + parent: 2 + - uid: 15810 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 21.5,36.5 + parent: 2 + - uid: 15811 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 17.5,36.5 + parent: 2 + - uid: 15812 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 21.5,39.5 + parent: 2 + - uid: 15813 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 21.5,40.5 + parent: 2 + - uid: 15814 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 20.5,41.5 + parent: 2 + - uid: 15815 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 21.5,41.5 + parent: 2 + - uid: 15816 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 19.5,41.5 + parent: 2 + - uid: 15817 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 15.5,38.5 + parent: 2 + - uid: 15818 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 15.5,36.5 + parent: 2 + - uid: 15819 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 16.5,36.5 + parent: 2 + - uid: 15820 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 15.5,37.5 + parent: 2 + - uid: 15821 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 15.5,40.5 + parent: 2 + - uid: 15822 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 18.5,40.5 + parent: 2 + - uid: 15823 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 16.5,40.5 + parent: 2 + - uid: 15824 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 17.5,40.5 + parent: 2 + - uid: 15825 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 18.5,41.5 + parent: 2 + - uid: 15826 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 10.5,37.5 + parent: 2 + - uid: 15827 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 10.5,36.5 + parent: 2 + - uid: 15828 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 11.5,36.5 + parent: 2 + - uid: 15829 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 15.5,42.5 + parent: 2 + - uid: 15830 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 14.5,42.5 + parent: 2 + - uid: 15831 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 10.5,42.5 + parent: 2 + - uid: 15832 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 10.5,41.5 + parent: 2 + - uid: 15833 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 10.5,40.5 + parent: 2 + - uid: 15834 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 10.5,39.5 + parent: 2 + - uid: 15835 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 10.5,38.5 + parent: 2 + - uid: 15836 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 9.5,42.5 + parent: 2 + - uid: 15837 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 9.5,43.5 + parent: 2 + - uid: 15838 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 9.5,44.5 + parent: 2 + - uid: 15839 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 9.5,45.5 + parent: 2 + - uid: 15840 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 9.5,46.5 + parent: 2 + - uid: 15841 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 10.5,46.5 + parent: 2 + - uid: 15842 + components: + - type: Transform + pos: 14.5,43.5 + parent: 2 + - uid: 15843 + components: + - type: Transform + pos: 14.5,45.5 + parent: 2 + - uid: 15844 + components: + - type: Transform + pos: 14.5,46.5 + parent: 2 + - uid: 15845 + components: + - type: Transform + pos: 16.5,46.5 + parent: 2 + - uid: 15846 + components: + - type: Transform + pos: 17.5,46.5 + parent: 2 + - uid: 15847 + components: + - type: Transform + pos: 18.5,46.5 + parent: 2 + - uid: 15848 + components: + - type: Transform + pos: 19.5,46.5 + parent: 2 + - uid: 15849 + components: + - type: Transform + pos: 19.5,45.5 + parent: 2 + - uid: 15850 + components: + - type: Transform + pos: 19.5,44.5 + parent: 2 + - uid: 15851 + components: + - type: Transform + pos: 19.5,43.5 + parent: 2 + - uid: 15852 + components: + - type: Transform + pos: 19.5,42.5 + parent: 2 + - uid: 15853 + components: + - type: Transform + pos: 7.5,42.5 + parent: 2 + - uid: 15854 + components: + - type: Transform + pos: 6.5,42.5 + parent: 2 + - uid: 15855 + components: + - type: Transform + pos: 4.5,42.5 + parent: 2 + - uid: 15856 + components: + - type: Transform + pos: 3.5,42.5 + parent: 2 + - uid: 15857 + components: + - type: Transform + pos: 2.5,42.5 + parent: 2 + - uid: 15858 + components: + - type: Transform + pos: 2.5,41.5 + parent: 2 + - uid: 15859 + components: + - type: Transform + pos: 2.5,39.5 + parent: 2 + - uid: 15860 + components: + - type: Transform + pos: 2.5,37.5 + parent: 2 + - uid: 15861 + components: + - type: Transform + pos: 2.5,43.5 + parent: 2 + - uid: 15862 + components: + - type: Transform + pos: 2.5,44.5 + parent: 2 + - uid: 15863 + components: + - type: Transform + pos: 3.5,44.5 + parent: 2 + - uid: 15864 + components: + - type: Transform + pos: 3.5,45.5 + parent: 2 + - uid: 15865 + components: + - type: Transform + pos: 3.5,46.5 + parent: 2 + - uid: 15866 + components: + - type: Transform + pos: 4.5,46.5 + parent: 2 + - uid: 15867 + components: + - type: Transform + pos: 5.5,46.5 + parent: 2 + - uid: 15868 + components: + - type: Transform + pos: 8.5,46.5 + parent: 2 + - uid: 15869 + components: + - type: Transform + pos: 20.5,46.5 + parent: 2 + - uid: 15870 + components: + - type: Transform + pos: 20.5,42.5 + parent: 2 + - uid: 15871 + components: + - type: Transform + pos: 21.5,42.5 + parent: 2 + - uid: 15872 + components: + - type: Transform + pos: 22.5,42.5 + parent: 2 + - uid: 15873 + components: + - type: Transform + pos: 22.5,45.5 + parent: 2 + - uid: 15874 + components: + - type: Transform + pos: 22.5,43.5 + parent: 2 + - uid: 15875 + components: + - type: Transform + pos: 22.5,46.5 + parent: 2 + - uid: 15876 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 24.5,42.5 + parent: 2 + - uid: 15877 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 24.5,41.5 + parent: 2 + - uid: 15878 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 24.5,40.5 + parent: 2 + - uid: 15879 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 24.5,39.5 + parent: 2 + - uid: 15880 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 24.5,38.5 + parent: 2 + - uid: 15881 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 24.5,37.5 + parent: 2 + - uid: 15882 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 23.5,46.5 + parent: 2 + - uid: 15883 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 24.5,46.5 + parent: 2 + - uid: 15884 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 25.5,46.5 + parent: 2 + - uid: 15885 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 25.5,45.5 + parent: 2 + - uid: 15886 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 25.5,42.5 + parent: 2 + - uid: 15887 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 25.5,43.5 + parent: 2 + - uid: 15888 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 26.5,46.5 + parent: 2 + - uid: 15889 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 27.5,46.5 + parent: 2 + - uid: 15890 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 28.5,46.5 + parent: 2 + - uid: 15891 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 29.5,46.5 + parent: 2 + - uid: 15892 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 29.5,45.5 + parent: 2 + - uid: 15893 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 30.5,45.5 + parent: 2 + - uid: 15894 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 30.5,38.5 + parent: 2 + - uid: 15895 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 30.5,39.5 + parent: 2 + - uid: 15896 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 30.5,40.5 + parent: 2 + - uid: 15897 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 30.5,41.5 + parent: 2 + - uid: 15898 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 30.5,42.5 + parent: 2 + - uid: 15899 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 30.5,43.5 + parent: 2 + - uid: 15900 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 30.5,44.5 + parent: 2 + - uid: 15901 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 30.5,37.5 + parent: 2 + - uid: 15903 + components: + - type: Transform + pos: -12.5,26.5 + parent: 2 + - uid: 15904 + components: + - type: Transform + pos: -6.5,26.5 + parent: 2 + - uid: 15905 + components: + - type: Transform + pos: -6.5,18.5 + parent: 2 + - uid: 15906 + components: + - type: Transform + pos: -11.5,21.5 + parent: 2 + - uid: 15907 + components: + - type: Transform + pos: -11.5,22.5 + parent: 2 + - uid: 15908 + components: + - type: Transform + pos: -12.5,21.5 + parent: 2 + - uid: 15909 + components: + - type: Transform + pos: -13.5,21.5 + parent: 2 + - uid: 15910 + components: + - type: Transform + pos: -11.5,25.5 + parent: 2 + - uid: 15911 + components: + - type: Transform + pos: -10.5,26.5 + parent: 2 + - uid: 15912 + components: + - type: Transform + pos: -6.5,23.5 + parent: 2 + - uid: 15913 + components: + - type: Transform + pos: -11.5,26.5 + parent: 2 + - uid: 15914 + components: + - type: Transform + pos: -7.5,26.5 + parent: 2 + - uid: 15915 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 25.5,37.5 + parent: 2 + - uid: 15916 + components: + - type: Transform + pos: -16.5,21.5 + parent: 2 + - uid: 15917 + components: + - type: Transform + pos: -16.5,22.5 + parent: 2 + - uid: 15918 + components: + - type: Transform + pos: -16.5,23.5 + parent: 2 + - uid: 15919 + components: + - type: Transform + pos: -16.5,24.5 + parent: 2 + - uid: 15920 + components: + - type: Transform + pos: -16.5,25.5 + parent: 2 + - uid: 15921 + components: + - type: Transform + pos: -16.5,26.5 + parent: 2 + - uid: 15922 + components: + - type: Transform + pos: -13.5,17.5 + parent: 2 + - uid: 15923 + components: + - type: Transform + pos: -12.5,17.5 + parent: 2 + - uid: 15924 + components: + - type: Transform + pos: -11.5,17.5 + parent: 2 + - uid: 15925 + components: + - type: Transform + pos: -10.5,17.5 + parent: 2 + - uid: 15926 + components: + - type: Transform + pos: -9.5,18.5 + parent: 2 + - uid: 15927 + components: + - type: Transform + pos: -10.5,18.5 + parent: 2 + - uid: 15928 + components: + - type: Transform + pos: -8.5,18.5 + parent: 2 + - uid: 15929 + components: + - type: Transform + pos: -7.5,18.5 + parent: 2 + - uid: 15930 + components: + - type: Transform + pos: -17.5,24.5 + parent: 2 + - uid: 15931 + components: + - type: Transform + pos: -18.5,24.5 + parent: 2 + - uid: 15932 + components: + - type: Transform + pos: -19.5,24.5 + parent: 2 + - uid: 15933 + components: + - type: Transform + pos: -20.5,24.5 + parent: 2 + - uid: 15934 + components: + - type: Transform + pos: -21.5,24.5 + parent: 2 + - uid: 15935 + components: + - type: Transform + pos: -22.5,24.5 + parent: 2 + - uid: 15936 + components: + - type: Transform + pos: -21.5,23.5 + parent: 2 + - uid: 15937 + components: + - type: Transform + pos: -21.5,22.5 + parent: 2 + - uid: 15938 + components: + - type: Transform + pos: -21.5,21.5 + parent: 2 + - uid: 15939 + components: + - type: Transform + pos: -21.5,20.5 + parent: 2 + - uid: 15940 + components: + - type: Transform + pos: -20.5,20.5 + parent: 2 + - uid: 15941 + components: + - type: Transform + pos: -23.5,20.5 + parent: 2 + - uid: 15942 + components: + - type: Transform + pos: -23.5,21.5 + parent: 2 + - uid: 15943 + components: + - type: Transform + pos: -25.5,23.5 + parent: 2 + - uid: 15944 + components: + - type: Transform + pos: -25.5,24.5 + parent: 2 + - uid: 15945 + components: + - type: Transform + pos: -24.5,24.5 + parent: 2 + - uid: 15946 + components: + - type: Transform + pos: -25.5,25.5 + parent: 2 + - uid: 15947 + components: + - type: Transform + pos: -25.5,26.5 + parent: 2 + - uid: 15948 + components: + - type: Transform + pos: -29.5,22.5 + parent: 2 + - uid: 15949 + components: + - type: Transform + pos: -26.5,26.5 + parent: 2 + - uid: 15950 + components: + - type: Transform + pos: -29.5,23.5 + parent: 2 + - uid: 15951 + components: + - type: Transform + pos: -29.5,24.5 + parent: 2 + - uid: 15952 + components: + - type: Transform + pos: -29.5,25.5 + parent: 2 + - uid: 15953 + components: + - type: Transform + pos: -29.5,26.5 + parent: 2 + - uid: 15954 + components: + - type: Transform + pos: -28.5,26.5 + parent: 2 + - uid: 15955 + components: + - type: Transform + pos: -27.5,26.5 + parent: 2 + - uid: 15956 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -29.5,28.5 + parent: 2 + - uid: 15957 + components: + - type: Transform + pos: -29.5,20.5 + parent: 2 + - uid: 15958 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -33.5,22.5 + parent: 2 + - uid: 15959 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -34.5,22.5 + parent: 2 + - uid: 15960 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -34.5,23.5 + parent: 2 + - uid: 15961 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -34.5,24.5 + parent: 2 + - uid: 15962 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -35.5,24.5 + parent: 2 + - uid: 15963 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -36.5,24.5 + parent: 2 + - uid: 15964 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -37.5,24.5 + parent: 2 + - uid: 15965 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -38.5,24.5 + parent: 2 + - uid: 15966 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -39.5,24.5 + parent: 2 + - uid: 15967 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -37.5,28.5 + parent: 2 + - uid: 15968 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -39.5,28.5 + parent: 2 + - uid: 15969 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -40.5,24.5 + parent: 2 + - uid: 15970 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -40.5,28.5 + parent: 2 + - uid: 15971 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -17.5,47.5 + parent: 2 + - uid: 15972 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -34.5,6.5 + parent: 2 + - uid: 15973 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -34.5,10.5 + parent: 2 + - uid: 15974 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -34.5,14.5 + parent: 2 + - uid: 15975 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -34.5,18.5 + parent: 2 + - uid: 15976 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -30.5,6.5 + parent: 2 + - uid: 15977 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -26.5,6.5 + parent: 2 + - uid: 15978 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -25.5,6.5 + parent: 2 + - uid: 15979 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -23.5,6.5 + parent: 2 + - uid: 15980 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -21.5,6.5 + parent: 2 + - uid: 15981 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -25.5,7.5 + parent: 2 + - uid: 15982 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -25.5,8.5 + parent: 2 + - uid: 15983 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -25.5,9.5 + parent: 2 + - uid: 15984 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -24.5,9.5 + parent: 2 + - uid: 15985 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -23.5,9.5 + parent: 2 + - uid: 15986 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -23.5,10.5 + parent: 2 + - uid: 15987 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -19.5,10.5 + parent: 2 + - uid: 15988 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -23.5,12.5 + parent: 2 + - uid: 15989 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -23.5,13.5 + parent: 2 + - uid: 15990 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -23.5,14.5 + parent: 2 + - uid: 15991 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -23.5,15.5 + parent: 2 + - uid: 15992 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -23.5,16.5 + parent: 2 + - uid: 15993 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -21.5,16.5 + parent: 2 + - uid: 15994 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -20.5,16.5 + parent: 2 + - uid: 15995 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -19.5,16.5 + parent: 2 + - uid: 15996 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -18.5,16.5 + parent: 2 + - uid: 15997 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -17.5,16.5 + parent: 2 + - uid: 15998 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -16.5,16.5 + parent: 2 + - uid: 15999 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -16.5,17.5 + parent: 2 + - uid: 16000 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -15.5,17.5 + parent: 2 + - uid: 16001 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -14.5,17.5 + parent: 2 + - uid: 16002 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -1.5,26.5 + parent: 2 + - uid: 16003 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -1.5,27.5 + parent: 2 + - uid: 16004 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -1.5,28.5 + parent: 2 + - uid: 16005 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -2.5,28.5 + parent: 2 + - uid: 16006 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -6.5,28.5 + parent: 2 + - uid: 16007 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -5.5,28.5 + parent: 2 + - uid: 16008 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -3.5,28.5 + parent: 2 + - uid: 16009 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -4.5,32.5 + parent: 2 + - uid: 16010 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -6.5,32.5 + parent: 2 + - uid: 16011 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -1.5,32.5 + parent: 2 + - uid: 16012 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -7.5,32.5 + parent: 2 + - uid: 16013 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -7.5,33.5 + parent: 2 + - uid: 16014 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -7.5,35.5 + parent: 2 + - uid: 16015 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -7.5,36.5 + parent: 2 + - uid: 16016 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -7.5,37.5 + parent: 2 + - uid: 16017 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -6.5,37.5 + parent: 2 + - uid: 16018 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -5.5,37.5 + parent: 2 + - uid: 16019 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -3.5,37.5 + parent: 2 + - uid: 16020 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -2.5,37.5 + parent: 2 + - uid: 16021 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -1.5,37.5 + parent: 2 + - uid: 16022 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -12.5,30.5 + parent: 2 + - uid: 16023 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -11.5,30.5 + parent: 2 + - uid: 16024 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -12.5,34.5 + parent: 2 + - uid: 16025 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -12.5,38.5 + parent: 2 + - uid: 16026 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -11.5,38.5 + parent: 2 + - uid: 16027 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -18.5,47.5 + parent: 2 + - uid: 16028 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -11.5,42.5 + parent: 2 + - uid: 16029 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -12.5,42.5 + parent: 2 + - uid: 16030 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -17.5,42.5 + parent: 2 + - uid: 16031 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -17.5,43.5 + parent: 2 + - uid: 16032 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -17.5,44.5 + parent: 2 + - uid: 16033 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -17.5,45.5 + parent: 2 + - uid: 16034 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -17.5,46.5 + parent: 2 + - uid: 16035 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -16.5,46.5 + parent: 2 + - uid: 16036 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -15.5,46.5 + parent: 2 + - uid: 16037 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -14.5,46.5 + parent: 2 + - uid: 16038 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -13.5,46.5 + parent: 2 + - uid: 16039 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -12.5,46.5 + parent: 2 + - uid: 16040 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -11.5,46.5 + parent: 2 + - uid: 16041 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -9.5,42.5 + parent: 2 + - uid: 16042 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -9.5,43.5 + parent: 2 + - uid: 16043 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -9.5,44.5 + parent: 2 + - uid: 16044 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -9.5,45.5 + parent: 2 + - uid: 16045 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -9.5,46.5 + parent: 2 + - uid: 16046 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -10.5,46.5 + parent: 2 + - uid: 16047 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -8.5,46.5 + parent: 2 + - uid: 16048 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -7.5,46.5 + parent: 2 + - uid: 16049 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -6.5,46.5 + parent: 2 + - uid: 16050 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -8.5,42.5 + parent: 2 + - uid: 16051 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -7.5,42.5 + parent: 2 + - uid: 16052 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -6.5,42.5 + parent: 2 + - uid: 16053 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -6.5,43.5 + parent: 2 + - uid: 16054 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -6.5,45.5 + parent: 2 + - uid: 16055 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -6.5,41.5 + parent: 2 + - uid: 16056 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -1.5,38.5 + parent: 2 + - uid: 16057 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -1.5,39.5 + parent: 2 + - uid: 16058 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -1.5,40.5 + parent: 2 + - uid: 16059 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -1.5,41.5 + parent: 2 + - uid: 16060 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -2.5,41.5 + parent: 2 + - uid: 16061 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -3.5,41.5 + parent: 2 + - uid: 16062 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -4.5,41.5 + parent: 2 + - uid: 16063 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -5.5,41.5 + parent: 2 + - uid: 16064 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -1.5,42.5 + parent: 2 + - uid: 16065 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -1.5,44.5 + parent: 2 + - uid: 16066 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -2.5,44.5 + parent: 2 + - uid: 16067 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -2.5,45.5 + parent: 2 + - uid: 16068 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -2.5,46.5 + parent: 2 + - uid: 16069 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -3.5,46.5 + parent: 2 + - uid: 16070 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -4.5,46.5 + parent: 2 + - uid: 16071 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -5.5,46.5 + parent: 2 + - uid: 16072 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -17.5,49.5 + parent: 2 + - uid: 16073 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -22.5,47.5 + parent: 2 + - uid: 16074 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -23.5,47.5 + parent: 2 + - uid: 16075 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -24.5,47.5 + parent: 2 + - uid: 16076 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -23.5,46.5 + parent: 2 + - uid: 16077 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -23.5,45.5 + parent: 2 + - uid: 16078 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -23.5,44.5 + parent: 2 + - uid: 16079 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -23.5,43.5 + parent: 2 + - uid: 16080 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -23.5,42.5 + parent: 2 + - uid: 16081 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -21.5,42.5 + parent: 2 + - uid: 16082 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -22.5,42.5 + parent: 2 + - uid: 16083 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -19.5,42.5 + parent: 2 + - uid: 16084 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -20.5,42.5 + parent: 2 + - uid: 16085 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -27.5,43.5 + parent: 2 + - uid: 16086 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -28.5,43.5 + parent: 2 + - uid: 16087 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -28.5,45.5 + parent: 2 + - uid: 16088 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -27.5,45.5 + parent: 2 + - uid: 16089 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -29.5,45.5 + parent: 2 + - uid: 16090 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -26.5,47.5 + parent: 2 + - uid: 16091 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -27.5,47.5 + parent: 2 + - uid: 16092 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -28.5,47.5 + parent: 2 + - uid: 16093 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -29.5,47.5 + parent: 2 + - uid: 16094 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -37.5,29.5 + parent: 2 + - uid: 16095 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -36.5,31.5 + parent: 2 + - uid: 16096 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -32.5,31.5 + parent: 2 + - uid: 16097 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -32.5,30.5 + parent: 2 + - uid: 16098 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -32.5,29.5 + parent: 2 + - uid: 16099 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -30.5,31.5 + parent: 2 + - uid: 16100 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -30.5,30.5 + parent: 2 + - uid: 16101 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -30.5,29.5 + parent: 2 + - uid: 16102 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -29.5,29.5 + parent: 2 + - uid: 16103 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -27.5,29.5 + parent: 2 + - uid: 16104 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -27.5,30.5 + parent: 2 + - uid: 16105 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -27.5,31.5 + parent: 2 + - uid: 16106 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -27.5,32.5 + parent: 2 + - uid: 16107 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -27.5,35.5 + parent: 2 + - uid: 16108 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -27.5,34.5 + parent: 2 + - uid: 16109 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -27.5,36.5 + parent: 2 + - uid: 16110 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -27.5,40.5 + parent: 2 + - uid: 16111 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -27.5,41.5 + parent: 2 + - uid: 16112 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -27.5,42.5 + parent: 2 + - uid: 16113 + components: + - type: Transform + pos: -21.5,50.5 + parent: 2 + - uid: 16114 + components: + - type: Transform + pos: -20.5,50.5 + parent: 2 + - uid: 16115 + components: + - type: Transform + pos: -16.5,52.5 + parent: 2 + - uid: 16116 + components: + - type: Transform + pos: -16.5,51.5 + parent: 2 + - uid: 16117 + components: + - type: Transform + pos: -16.5,53.5 + parent: 2 + - uid: 16118 + components: + - type: Transform + pos: -16.5,50.5 + parent: 2 + - uid: 16119 + components: + - type: Transform + pos: -17.5,50.5 + parent: 2 + - uid: 16120 + components: + - type: Transform + pos: -21.5,51.5 + parent: 2 + - uid: 16121 + components: + - type: Transform + pos: -21.5,52.5 + parent: 2 + - uid: 16122 + components: + - type: Transform + pos: -21.5,53.5 + parent: 2 + - uid: 16123 + components: + - type: Transform + pos: -21.5,54.5 + parent: 2 + - uid: 16124 + components: + - type: Transform + pos: -21.5,55.5 + parent: 2 + - uid: 16125 + components: + - type: Transform + pos: -21.5,56.5 + parent: 2 + - uid: 16126 + components: + - type: Transform + pos: -16.5,56.5 + parent: 2 + - uid: 16127 + components: + - type: Transform + pos: -17.5,56.5 + parent: 2 + - uid: 16128 + components: + - type: Transform + pos: -19.5,56.5 + parent: 2 + - uid: 16129 + components: + - type: Transform + pos: -13.5,53.5 + parent: 2 + - uid: 16130 + components: + - type: Transform + pos: -10.5,50.5 + parent: 2 + - uid: 16131 + components: + - type: Transform + pos: -10.5,51.5 + parent: 2 + - uid: 16132 + components: + - type: Transform + pos: -10.5,52.5 + parent: 2 + - uid: 16133 + components: + - type: Transform + pos: -10.5,53.5 + parent: 2 + - uid: 16134 + components: + - type: Transform + pos: -6.5,50.5 + parent: 2 + - uid: 16135 + components: + - type: Transform + pos: -6.5,51.5 + parent: 2 + - uid: 16136 + components: + - type: Transform + pos: -6.5,53.5 + parent: 2 + - uid: 16137 + components: + - type: Transform + pos: -6.5,52.5 + parent: 2 + - uid: 16138 + components: + - type: Transform + pos: -2.5,50.5 + parent: 2 + - uid: 16139 + components: + - type: Transform + pos: -2.5,51.5 + parent: 2 + - uid: 16140 + components: + - type: Transform + pos: -2.5,52.5 + parent: 2 + - uid: 16141 + components: + - type: Transform + pos: -2.5,53.5 + parent: 2 + - uid: 16142 + components: + - type: Transform + pos: 1.5,50.5 + parent: 2 + - uid: 16143 + components: + - type: Transform + pos: 1.5,51.5 + parent: 2 + - uid: 16144 + components: + - type: Transform + pos: 1.5,53.5 + parent: 2 + - uid: 16145 + components: + - type: Transform + pos: 1.5,52.5 + parent: 2 + - uid: 16146 + components: + - type: Transform + pos: -25.5,50.5 + parent: 2 + - uid: 16147 + components: + - type: Transform + pos: -25.5,51.5 + parent: 2 + - uid: 16148 + components: + - type: Transform + pos: -25.5,52.5 + parent: 2 + - uid: 16149 + components: + - type: Transform + pos: -25.5,53.5 + parent: 2 + - uid: 16150 + components: + - type: Transform + pos: -25.5,54.5 + parent: 2 + - uid: 16151 + components: + - type: Transform + pos: -25.5,55.5 + parent: 2 + - uid: 16152 + components: + - type: Transform + pos: -25.5,56.5 + parent: 2 + - uid: 16153 + components: + - type: Transform + pos: -25.5,49.5 + parent: 2 + - uid: 16154 + components: + - type: Transform + pos: -26.5,49.5 + parent: 2 + - uid: 16155 + components: + - type: Transform + pos: -28.5,49.5 + parent: 2 + - uid: 16156 + components: + - type: Transform + pos: -27.5,49.5 + parent: 2 + - uid: 16157 + components: + - type: Transform + pos: -29.5,49.5 + parent: 2 + - uid: 16158 + components: + - type: Transform + pos: -29.5,50.5 + parent: 2 + - uid: 16159 + components: + - type: Transform + pos: -30.5,50.5 + parent: 2 + - uid: 16160 + components: + - type: Transform + pos: -31.5,50.5 + parent: 2 + - uid: 16161 + components: + - type: Transform + pos: -32.5,50.5 + parent: 2 + - uid: 16162 + components: + - type: Transform + pos: -33.5,50.5 + parent: 2 + - uid: 16163 + components: + - type: Transform + pos: -33.5,51.5 + parent: 2 + - uid: 16164 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -33.5,53.5 + parent: 2 + - uid: 16165 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -33.5,54.5 + parent: 2 + - uid: 16166 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -32.5,54.5 + parent: 2 + - uid: 16167 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -30.5,54.5 + parent: 2 + - uid: 16168 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -31.5,54.5 + parent: 2 + - uid: 16169 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -30.5,55.5 + parent: 2 + - uid: 16170 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -30.5,56.5 + parent: 2 + - uid: 16171 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -29.5,56.5 + parent: 2 + - uid: 16172 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -28.5,56.5 + parent: 2 + - uid: 16173 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -26.5,56.5 + parent: 2 + - uid: 16174 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -34.5,54.5 + parent: 2 + - uid: 16175 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -34.5,55.5 + parent: 2 + - uid: 16176 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -36.5,55.5 + parent: 2 + - uid: 16177 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -36.5,56.5 + parent: 2 + - uid: 16178 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -36.5,54.5 + parent: 2 + - uid: 16179 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -36.5,53.5 + parent: 2 + - uid: 16180 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -38.5,53.5 + parent: 2 + - uid: 16181 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -38.5,54.5 + parent: 2 + - uid: 16182 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -38.5,55.5 + parent: 2 + - uid: 16183 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -39.5,55.5 + parent: 2 + - uid: 16184 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -40.5,55.5 + parent: 2 + - uid: 16185 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -40.5,56.5 + parent: 2 + - uid: 16186 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -40.5,57.5 + parent: 2 + - uid: 16187 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -40.5,58.5 + parent: 2 + - uid: 16188 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -40.5,59.5 + parent: 2 + - uid: 16189 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -36.5,58.5 + parent: 2 + - uid: 16190 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -40.5,60.5 + parent: 2 + - uid: 16191 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -40.5,61.5 + parent: 2 + - uid: 16192 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -36.5,59.5 + parent: 2 + - uid: 16193 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -35.5,59.5 + parent: 2 + - uid: 16194 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -34.5,59.5 + parent: 2 + - uid: 16195 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -33.5,59.5 + parent: 2 + - uid: 16196 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -31.5,59.5 + parent: 2 + - uid: 16197 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -30.5,59.5 + parent: 2 + - uid: 16198 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -29.5,59.5 + parent: 2 + - uid: 16199 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -30.5,60.5 + parent: 2 + - uid: 16200 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -30.5,62.5 + parent: 2 + - uid: 16201 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -30.5,61.5 + parent: 2 + - uid: 16202 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -31.5,62.5 + parent: 2 + - uid: 16203 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -34.5,60.5 + parent: 2 + - uid: 16204 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -34.5,61.5 + parent: 2 + - uid: 16205 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -34.5,62.5 + parent: 2 + - uid: 16206 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -33.5,62.5 + parent: 2 + - uid: 16207 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -36.5,60.5 + parent: 2 + - uid: 16208 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -36.5,61.5 + parent: 2 + - uid: 16209 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -36.5,62.5 + parent: 2 + - uid: 16210 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -36.5,63.5 + parent: 2 + - uid: 16211 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -27.5,59.5 + parent: 2 + - uid: 16212 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -26.5,59.5 + parent: 2 + - uid: 16213 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -26.5,60.5 + parent: 2 + - uid: 16214 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -26.5,61.5 + parent: 2 + - uid: 16215 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -26.5,62.5 + parent: 2 + - uid: 16216 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -27.5,62.5 + parent: 2 + - uid: 16217 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -29.5,62.5 + parent: 2 + - uid: 16218 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -26.5,63.5 + parent: 2 + - uid: 16219 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -26.5,64.5 + parent: 2 + - uid: 16220 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -26.5,65.5 + parent: 2 + - uid: 16221 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -26.5,66.5 + parent: 2 + - uid: 16222 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -26.5,67.5 + parent: 2 + - uid: 16223 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -26.5,68.5 + parent: 2 + - uid: 16224 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -26.5,69.5 + parent: 2 + - uid: 16227 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -36.5,66.5 + parent: 2 + - uid: 16228 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -36.5,65.5 + parent: 2 + - uid: 16229 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -36.5,64.5 + parent: 2 + - uid: 16230 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -25.5,72.5 + parent: 2 + - uid: 16231 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -20.5,71.5 + parent: 2 + - uid: 16232 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -26.5,70.5 + parent: 2 + - uid: 16233 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -26.5,71.5 + parent: 2 + - uid: 16234 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -26.5,72.5 + parent: 2 + - uid: 16235 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -21.5,72.5 + parent: 2 + - uid: 16236 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -21.5,71.5 + parent: 2 + - uid: 16237 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -19.5,71.5 + parent: 2 + - uid: 16238 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -18.5,71.5 + parent: 2 + - uid: 16239 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -17.5,71.5 + parent: 2 + - uid: 16240 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -16.5,71.5 + parent: 2 + - uid: 16241 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -15.5,71.5 + parent: 2 + - uid: 16242 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -14.5,71.5 + parent: 2 + - uid: 16243 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -13.5,71.5 + parent: 2 + - uid: 16244 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -13.5,70.5 + parent: 2 + - uid: 16245 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -13.5,69.5 + parent: 2 + - uid: 16246 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -9.5,70.5 + parent: 2 + - uid: 16247 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -9.5,69.5 + parent: 2 + - uid: 16248 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -8.5,69.5 + parent: 2 + - uid: 16249 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -7.5,69.5 + parent: 2 + - uid: 16250 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -7.5,70.5 + parent: 2 + - uid: 16251 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -2.5,70.5 + parent: 2 + - uid: 16252 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -4.5,69.5 + parent: 2 + - uid: 16253 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -3.5,69.5 + parent: 2 + - uid: 16254 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -2.5,69.5 + parent: 2 + - uid: 16255 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -2.5,71.5 + parent: 2 + - uid: 16256 + components: + - type: Transform + pos: 11.5,79.5 + parent: 2 + - uid: 16257 + components: + - type: Transform + pos: 11.5,76.5 + parent: 2 + - uid: 16258 + components: + - type: Transform + pos: 11.5,78.5 + parent: 2 + - uid: 16259 + components: + - type: Transform + pos: 15.5,79.5 + parent: 2 + - uid: 16260 + components: + - type: Transform + pos: 12.5,76.5 + parent: 2 + - uid: 16261 + components: + - type: Transform + pos: 13.5,77.5 + parent: 2 + - uid: 16262 + components: + - type: Transform + pos: 14.5,79.5 + parent: 2 + - uid: 16263 + components: + - type: Transform + pos: 17.5,79.5 + parent: 2 + - uid: 16264 + components: + - type: Transform + pos: 11.5,77.5 + parent: 2 + - uid: 16265 + components: + - type: Transform + pos: 13.5,76.5 + parent: 2 + - uid: 16266 + components: + - type: Transform + pos: 13.5,79.5 + parent: 2 + - uid: 16267 + components: + - type: Transform + pos: 16.5,79.5 + parent: 2 + - uid: 16268 + components: + - type: Transform + pos: 13.5,78.5 + parent: 2 + - uid: 16269 + components: + - type: Transform + pos: 0.5,79.5 + parent: 2 + - uid: 16270 + components: + - type: Transform + pos: 6.5,79.5 + parent: 2 + - uid: 16271 + components: + - type: Transform + pos: 6.5,80.5 + parent: 2 + - uid: 16272 + components: + - type: Transform + pos: 10.5,80.5 + parent: 2 + - uid: 16273 + components: + - type: Transform + pos: 10.5,79.5 + parent: 2 + - uid: 16274 + components: + - type: Transform + pos: -1.5,76.5 + parent: 2 + - uid: 16275 + components: + - type: Transform + pos: -2.5,76.5 + parent: 2 + - uid: 16276 + components: + - type: Transform + pos: -2.5,72.5 + parent: 2 + - uid: 16277 + components: + - type: Transform + pos: 5.5,79.5 + parent: 2 + - uid: 16278 + components: + - type: Transform + pos: -0.5,76.5 + parent: 2 + - uid: 16279 + components: + - type: Transform + pos: -1.5,78.5 + parent: 2 + - uid: 16280 + components: + - type: Transform + pos: -0.5,78.5 + parent: 2 + - uid: 16281 + components: + - type: Transform + pos: -0.5,79.5 + parent: 2 + - uid: 16282 + components: + - type: Transform + pos: -2.5,78.5 + parent: 2 + - uid: 16283 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -20.5,70.5 + parent: 2 + - uid: 16284 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -20.5,69.5 + parent: 2 + - uid: 16285 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -20.5,68.5 + parent: 2 + - uid: 16286 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -20.5,67.5 + parent: 2 + - uid: 16287 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -20.5,66.5 + parent: 2 + - uid: 16288 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -20.5,65.5 + parent: 2 + - uid: 16289 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -25.5,65.5 + parent: 2 + - uid: 16290 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -21.5,65.5 + parent: 2 + - uid: 16291 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -25.5,59.5 + parent: 2 + - uid: 16292 + components: + - type: Transform + pos: -15.5,63.5 + parent: 2 + - uid: 16293 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -21.5,64.5 + parent: 2 + - uid: 16294 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -21.5,63.5 + parent: 2 + - uid: 16295 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -21.5,62.5 + parent: 2 + - uid: 16296 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -20.5,62.5 + parent: 2 + - uid: 16297 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -20.5,61.5 + parent: 2 + - uid: 16298 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -20.5,60.5 + parent: 2 + - uid: 16299 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -20.5,59.5 + parent: 2 + - uid: 16300 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -21.5,59.5 + parent: 2 + - uid: 16301 + components: + - type: Transform + pos: -15.5,65.5 + parent: 2 + - uid: 16302 + components: + - type: Transform + pos: -15.5,64.5 + parent: 2 + - uid: 16303 + components: + - type: Transform + pos: -13.5,63.5 + parent: 2 + - uid: 16304 + components: + - type: Transform + pos: -12.5,65.5 + parent: 2 + - uid: 16305 + components: + - type: Transform + pos: -13.5,66.5 + parent: 2 + - uid: 16306 + components: + - type: Transform + pos: -13.5,65.5 + parent: 2 + - uid: 16308 + components: + - type: Transform + pos: -13.5,67.5 + parent: 2 + - uid: 16309 + components: + - type: Transform + pos: -13.5,62.5 + parent: 2 + - uid: 16310 + components: + - type: Transform + pos: -13.5,59.5 + parent: 2 + - uid: 16311 + components: + - type: Transform + pos: -19.5,59.5 + parent: 2 + - uid: 16312 + components: + - type: Transform + pos: -10.5,65.5 + parent: 2 + - uid: 16313 + components: + - type: Transform + pos: -9.5,65.5 + parent: 2 + - uid: 16314 + components: + - type: Transform + pos: -8.5,65.5 + parent: 2 + - uid: 16315 + components: + - type: Transform + pos: -8.5,66.5 + parent: 2 + - uid: 16316 + components: + - type: Transform + pos: -8.5,68.5 + parent: 2 + - uid: 16317 + components: + - type: Transform + pos: -8.5,64.5 + parent: 2 + - uid: 16318 + components: + - type: Transform + pos: -8.5,63.5 + parent: 2 + - uid: 16319 + components: + - type: Transform + pos: -9.5,63.5 + parent: 2 + - uid: 16320 + components: + - type: Transform + pos: -10.5,63.5 + parent: 2 + - uid: 16321 + components: + - type: Transform + pos: -8.5,62.5 + parent: 2 + - uid: 16322 + components: + - type: Transform + pos: -8.5,61.5 + parent: 2 + - uid: 16323 + components: + - type: Transform + pos: -10.5,61.5 + parent: 2 + - uid: 16324 + components: + - type: Transform + pos: -9.5,61.5 + parent: 2 + - uid: 16325 + components: + - type: Transform + pos: -10.5,60.5 + parent: 2 + - uid: 16326 + components: + - type: Transform + pos: -10.5,58.5 + parent: 2 + - uid: 16327 + components: + - type: Transform + pos: -10.5,57.5 + parent: 2 + - uid: 16328 + components: + - type: Transform + pos: -9.5,57.5 + parent: 2 + - uid: 16329 + components: + - type: Transform + pos: -8.5,57.5 + parent: 2 + - uid: 16330 + components: + - type: Transform + pos: -7.5,57.5 + parent: 2 + - uid: 16331 + components: + - type: Transform + pos: -6.5,57.5 + parent: 2 + - uid: 16332 + components: + - type: Transform + pos: -6.5,58.5 + parent: 2 + - uid: 16333 + components: + - type: Transform + pos: -6.5,59.5 + parent: 2 + - uid: 16334 + components: + - type: Transform + pos: -6.5,60.5 + parent: 2 + - uid: 16335 + components: + - type: Transform + pos: -6.5,61.5 + parent: 2 + - uid: 16336 + components: + - type: Transform + pos: -7.5,61.5 + parent: 2 + - uid: 16337 + components: + - type: Transform + pos: -5.5,61.5 + parent: 2 + - uid: 16338 + components: + - type: Transform + pos: -4.5,61.5 + parent: 2 + - uid: 16339 + components: + - type: Transform + pos: -3.5,61.5 + parent: 2 + - uid: 16340 + components: + - type: Transform + pos: -2.5,61.5 + parent: 2 + - uid: 16341 + components: + - type: Transform + pos: -2.5,60.5 + parent: 2 + - uid: 16342 + components: + - type: Transform + pos: -2.5,59.5 + parent: 2 + - uid: 16343 + components: + - type: Transform + pos: -2.5,58.5 + parent: 2 + - uid: 16344 + components: + - type: Transform + pos: -2.5,57.5 + parent: 2 + - uid: 16345 + components: + - type: Transform + pos: -7.5,65.5 + parent: 2 + - uid: 16346 + components: + - type: Transform + pos: -4.5,65.5 + parent: 2 + - uid: 16347 + components: + - type: Transform + pos: -4.5,66.5 + parent: 2 + - uid: 16348 + components: + - type: Transform + pos: -4.5,68.5 + parent: 2 + - uid: 16349 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -2.5,65.5 + parent: 2 + - uid: 16350 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -1.5,65.5 + parent: 2 + - uid: 16351 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -1.5,66.5 + parent: 2 + - uid: 16352 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -1.5,67.5 + parent: 2 + - uid: 16353 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -1.5,68.5 + parent: 2 + - uid: 16354 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -1.5,69.5 + parent: 2 + - uid: 16355 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -0.5,61.5 + parent: 2 + - uid: 16356 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -1.5,61.5 + parent: 2 + - uid: 16357 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 1.5,61.5 + parent: 2 + - uid: 16358 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 2.5,61.5 + parent: 2 + - uid: 16359 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 3.5,61.5 + parent: 2 + - uid: 16360 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 3.5,60.5 + parent: 2 + - uid: 16361 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 3.5,56.5 + parent: 2 + - uid: 16362 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 2.5,56.5 + parent: 2 + - uid: 16363 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 1.5,56.5 + parent: 2 + - uid: 16364 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 0.5,56.5 + parent: 2 + - uid: 16365 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 0.5,57.5 + parent: 2 + - uid: 16366 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 1.5,55.5 + parent: 2 + - uid: 16367 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 1.5,54.5 + parent: 2 + - uid: 16368 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 2.5,54.5 + parent: 2 + - uid: 16369 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 3.5,55.5 + parent: 2 + - uid: 16370 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 3.5,54.5 + parent: 2 + - uid: 16371 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 17.5,75.5 + parent: 2 + - uid: 16372 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 18.5,75.5 + parent: 2 + - uid: 16373 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 17.5,74.5 + parent: 2 + - uid: 16374 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 28.5,12.5 + parent: 2 + - uid: 16375 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 27.5,8.5 + parent: 2 + - uid: 16376 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 27.5,9.5 + parent: 2 + - uid: 16377 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 27.5,10.5 + parent: 2 + - uid: 16378 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 27.5,11.5 + parent: 2 + - uid: 16379 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 27.5,12.5 + parent: 2 + - uid: 16380 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 28.5,8.5 + parent: 2 + - uid: 16381 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 29.5,12.5 + parent: 2 + - uid: 16382 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 29.5,8.5 + parent: 2 + - uid: 16383 + components: + - type: Transform + pos: 30.5,12.5 + parent: 2 + - uid: 16384 + components: + - type: Transform + pos: 31.5,12.5 + parent: 2 + - uid: 16385 + components: + - type: Transform + pos: 31.5,13.5 + parent: 2 + - uid: 16386 + components: + - type: Transform + pos: 31.5,14.5 + parent: 2 + - uid: 16387 + components: + - type: Transform + pos: 31.5,16.5 + parent: 2 + - uid: 16388 + components: + - type: Transform + pos: 31.5,15.5 + parent: 2 + - uid: 16389 + components: + - type: Transform + pos: 31.5,17.5 + parent: 2 + - uid: 16390 + components: + - type: Transform + pos: 32.5,17.5 + parent: 2 + - uid: 16391 + components: + - type: Transform + pos: 33.5,17.5 + parent: 2 + - uid: 16392 + components: + - type: Transform + pos: 34.5,17.5 + parent: 2 + - uid: 16393 + components: + - type: Transform + pos: 34.5,18.5 + parent: 2 + - uid: 16394 + components: + - type: Transform + pos: 34.5,-2.5 + parent: 2 + - uid: 16395 + components: + - type: Transform + pos: 7.5,1.5 + parent: 2 + - uid: 16396 + components: + - type: Transform + pos: 8.5,1.5 + parent: 2 + - uid: 16397 + components: + - type: Transform + pos: 8.5,0.5 + parent: 2 + - uid: 16398 + components: + - type: Transform + pos: 10.5,0.5 + parent: 2 + - uid: 16399 + components: + - type: Transform + pos: 11.5,0.5 + parent: 2 + - uid: 16400 + components: + - type: Transform + pos: 13.5,0.5 + parent: 2 + - uid: 16401 + components: + - type: Transform + pos: 14.5,0.5 + parent: 2 + - uid: 16402 + components: + - type: Transform + pos: 16.5,0.5 + parent: 2 + - uid: 16403 + components: + - type: Transform + pos: 17.5,0.5 + parent: 2 + - uid: 16404 + components: + - type: Transform + pos: 27.5,-1.5 + parent: 2 + - uid: 16405 + components: + - type: Transform + pos: 21.5,3.5 + parent: 2 + - uid: 16406 + components: + - type: Transform + pos: 22.5,3.5 + parent: 2 + - uid: 16407 + components: + - type: Transform + pos: 22.5,4.5 + parent: 2 + - uid: 16408 + components: + - type: Transform + pos: 21.5,2.5 + parent: 2 + - uid: 16409 + components: + - type: Transform + pos: 21.5,1.5 + parent: 2 + - uid: 16410 + components: + - type: Transform + pos: 21.5,0.5 + parent: 2 + - uid: 16411 + components: + - type: Transform + pos: 21.5,-0.5 + parent: 2 + - uid: 16412 + components: + - type: Transform + pos: 21.5,-1.5 + parent: 2 + - uid: 16413 + components: + - type: Transform + pos: 22.5,-1.5 + parent: 2 + - uid: 16414 + components: + - type: Transform + pos: 22.5,-2.5 + parent: 2 + - uid: 16415 + components: + - type: Transform + pos: 23.5,-2.5 + parent: 2 + - uid: 16416 + components: + - type: Transform + pos: 23.5,-1.5 + parent: 2 + - uid: 16417 + components: + - type: Transform + pos: 22.5,-0.5 + parent: 2 + - uid: 16418 + components: + - type: Transform + pos: 22.5,0.5 + parent: 2 + - uid: 16419 + components: + - type: Transform + pos: 22.5,1.5 + parent: 2 + - uid: 16420 + components: + - type: Transform + pos: 22.5,2.5 + parent: 2 + - uid: 16421 + components: + - type: Transform + pos: 23.5,3.5 + parent: 2 + - uid: 16422 + components: + - type: Transform + pos: 23.5,4.5 + parent: 2 + - uid: 16423 + components: + - type: Transform + pos: 24.5,-2.5 + parent: 2 + - uid: 16424 + components: + - type: Transform + pos: 25.5,-2.5 + parent: 2 + - uid: 16425 + components: + - type: Transform + pos: 26.5,-2.5 + parent: 2 + - uid: 16426 + components: + - type: Transform + pos: 24.5,-1.5 + parent: 2 + - uid: 16427 + components: + - type: Transform + pos: 25.5,-1.5 + parent: 2 + - uid: 16428 + components: + - type: Transform + pos: 26.5,-1.5 + parent: 2 + - uid: 16429 + components: + - type: Transform + pos: 28.5,-1.5 + parent: 2 + - uid: 16430 + components: + - type: Transform + pos: 24.5,4.5 + parent: 2 + - uid: 16431 + components: + - type: Transform + pos: 25.5,4.5 + parent: 2 + - uid: 16432 + components: + - type: Transform + pos: 26.5,4.5 + parent: 2 + - uid: 16433 + components: + - type: Transform + pos: 27.5,4.5 + parent: 2 + - uid: 16434 + components: + - type: Transform + pos: 28.5,4.5 + parent: 2 + - uid: 16435 + components: + - type: Transform + pos: 29.5,4.5 + parent: 2 + - uid: 16436 + components: + - type: Transform + pos: 26.5,3.5 + parent: 2 + - uid: 16437 + components: + - type: Transform + pos: 25.5,3.5 + parent: 2 + - uid: 16438 + components: + - type: Transform + pos: 24.5,3.5 + parent: 2 + - uid: 16439 + components: + - type: Transform + pos: 29.5,3.5 + parent: 2 + - uid: 16440 + components: + - type: Transform + pos: 26.5,2.5 + parent: 2 + - uid: 16441 + components: + - type: Transform + pos: 25.5,0.5 + parent: 2 + - uid: 16442 + components: + - type: Transform + pos: 26.5,0.5 + parent: 2 + - uid: 16443 + components: + - type: Transform + pos: 27.5,0.5 + parent: 2 + - uid: 16444 + components: + - type: Transform + pos: 31.5,-1.5 + parent: 2 + - uid: 16445 + components: + - type: Transform + pos: 32.5,-1.5 + parent: 2 + - uid: 16446 + components: + - type: Transform + pos: 32.5,-2.5 + parent: 2 + - uid: 16447 + components: + - type: Transform + pos: 38.5,-2.5 + parent: 2 + - uid: 16448 + components: + - type: Transform + pos: 32.5,-0.5 + parent: 2 + - uid: 16449 + components: + - type: Transform + pos: 32.5,0.5 + parent: 2 + - uid: 16450 + components: + - type: Transform + pos: 32.5,1.5 + parent: 2 + - uid: 16451 + components: + - type: Transform + pos: 32.5,2.5 + parent: 2 + - uid: 16452 + components: + - type: Transform + pos: 29.5,2.5 + parent: 2 + - uid: 16453 + components: + - type: Transform + pos: 30.5,2.5 + parent: 2 + - uid: 16454 + components: + - type: Transform + pos: 39.5,-2.5 + parent: 2 + - uid: 16455 + components: + - type: Transform + pos: 39.5,-3.5 + parent: 2 + - uid: 16456 + components: + - type: Transform + pos: 38.5,-1.5 + parent: 2 + - uid: 16457 + components: + - type: Transform + pos: 38.5,-0.5 + parent: 2 + - uid: 16458 + components: + - type: Transform + pos: 37.5,-0.5 + parent: 2 + - uid: 16459 + components: + - type: Transform + pos: 37.5,0.5 + parent: 2 + - uid: 16460 + components: + - type: Transform + pos: 37.5,1.5 + parent: 2 + - uid: 16461 + components: + - type: Transform + pos: 37.5,2.5 + parent: 2 + - uid: 16462 + components: + - type: Transform + pos: 36.5,2.5 + parent: 2 + - uid: 16463 + components: + - type: Transform + pos: 37.5,3.5 + parent: 2 + - uid: 16464 + components: + - type: Transform + pos: 40.5,-0.5 + parent: 2 + - uid: 16465 + components: + - type: Transform + pos: 40.5,0.5 + parent: 2 + - uid: 16466 + components: + - type: Transform + pos: 40.5,1.5 + parent: 2 + - uid: 16467 + components: + - type: Transform + pos: 40.5,2.5 + parent: 2 + - uid: 16468 + components: + - type: Transform + pos: 40.5,3.5 + parent: 2 + - uid: 16469 + components: + - type: Transform + pos: 33.5,8.5 + parent: 2 + - uid: 16470 + components: + - type: Transform + pos: 32.5,8.5 + parent: 2 + - uid: 16471 + components: + - type: Transform + pos: 30.5,8.5 + parent: 2 + - uid: 16472 + components: + - type: Transform + pos: 31.5,8.5 + parent: 2 + - uid: 16473 + components: + - type: Transform + pos: 41.5,6.5 + parent: 2 + - uid: 16474 + components: + - type: Transform + pos: 32.5,12.5 + parent: 2 + - uid: 16475 + components: + - type: Transform + pos: 34.5,6.5 + parent: 2 + - uid: 16476 + components: + - type: Transform + pos: 34.5,8.5 + parent: 2 + - uid: 16477 + components: + - type: Transform + pos: 34.5,12.5 + parent: 2 + - uid: 16478 + components: + - type: Transform + pos: 33.5,12.5 + parent: 2 + - uid: 16479 + components: + - type: Transform + pos: 37.5,6.5 + parent: 2 + - uid: 16480 + components: + - type: Transform + pos: 36.5,6.5 + parent: 2 + - uid: 16481 + components: + - type: Transform + pos: 37.5,5.5 + parent: 2 + - uid: 16482 + components: + - type: Transform + pos: 38.5,5.5 + parent: 2 + - uid: 16483 + components: + - type: Transform + pos: 39.5,5.5 + parent: 2 + - uid: 16484 + components: + - type: Transform + pos: 40.5,5.5 + parent: 2 + - uid: 16485 + components: + - type: Transform + pos: 41.5,5.5 + parent: 2 + - uid: 16486 + components: + - type: Transform + pos: 35.5,12.5 + parent: 2 + - uid: 16487 + components: + - type: Transform + pos: 36.5,12.5 + parent: 2 + - uid: 16488 + components: + - type: Transform + pos: 37.5,12.5 + parent: 2 + - uid: 16489 + components: + - type: Transform + pos: 37.5,13.5 + parent: 2 + - uid: 16490 + components: + - type: Transform + pos: 37.5,14.5 + parent: 2 + - uid: 16491 + components: + - type: Transform + pos: 37.5,15.5 + parent: 2 + - uid: 16492 + components: + - type: Transform + pos: 35.5,18.5 + parent: 2 + - uid: 16493 + components: + - type: Transform + pos: 36.5,18.5 + parent: 2 + - uid: 16494 + components: + - type: Transform + pos: 37.5,18.5 + parent: 2 + - uid: 16495 + components: + - type: Transform + pos: 37.5,17.5 + parent: 2 + - uid: 16496 + components: + - type: Transform + pos: 34.5,22.5 + parent: 2 + - uid: 16497 + components: + - type: Transform + pos: 35.5,22.5 + parent: 2 + - uid: 16498 + components: + - type: Transform + pos: 36.5,22.5 + parent: 2 + - uid: 16499 + components: + - type: Transform + pos: 35.5,31.5 + parent: 2 + - uid: 16500 + components: + - type: Transform + pos: 41.5,3.5 + parent: 2 + - uid: 16501 + components: + - type: Transform + pos: 44.5,-2.5 + parent: 2 + - uid: 16502 + components: + - type: Transform + pos: 44.5,-1.5 + parent: 2 + - uid: 16503 + components: + - type: Transform + pos: 44.5,-0.5 + parent: 2 + - uid: 16504 + components: + - type: Transform + pos: 43.5,3.5 + parent: 2 + - uid: 16505 + components: + - type: Transform + pos: 44.5,3.5 + parent: 2 + - uid: 16506 + components: + - type: Transform + pos: 44.5,2.5 + parent: 2 + - uid: 16507 + components: + - type: Transform + pos: 44.5,1.5 + parent: 2 + - uid: 16508 + components: + - type: Transform + pos: 44.5,0.5 + parent: 2 + - uid: 16509 + components: + - type: Transform + pos: 42.5,6.5 + parent: 2 + - uid: 16510 + components: + - type: Transform + pos: 44.5,4.5 + parent: 2 + - uid: 16511 + components: + - type: Transform + pos: 44.5,5.5 + parent: 2 + - uid: 16512 + components: + - type: Transform + pos: 45.5,5.5 + parent: 2 + - uid: 16513 + components: + - type: Transform + pos: 46.5,5.5 + parent: 2 + - uid: 16514 + components: + - type: Transform + pos: 46.5,6.5 + parent: 2 + - uid: 16515 + components: + - type: Transform + pos: 46.5,7.5 + parent: 2 + - uid: 16516 + components: + - type: Transform + pos: 46.5,8.5 + parent: 2 + - uid: 16517 + components: + - type: Transform + pos: 47.5,8.5 + parent: 2 + - uid: 16518 + components: + - type: Transform + pos: 47.5,9.5 + parent: 2 + - uid: 16519 + components: + - type: Transform + pos: 47.5,11.5 + parent: 2 + - uid: 16520 + components: + - type: Transform + pos: 45.5,11.5 + parent: 2 + - uid: 16521 + components: + - type: Transform + pos: 42.5,7.5 + parent: 2 + - uid: 16522 + components: + - type: Transform + pos: 42.5,8.5 + parent: 2 + - uid: 16523 + components: + - type: Transform + pos: 42.5,9.5 + parent: 2 + - uid: 16524 + components: + - type: Transform + pos: 42.5,10.5 + parent: 2 + - uid: 16525 + components: + - type: Transform + pos: 42.5,11.5 + parent: 2 + - uid: 16527 + components: + - type: Transform + pos: 44.5,11.5 + parent: 2 + - uid: 16528 + components: + - type: Transform + pos: 46.5,11.5 + parent: 2 + - uid: 16529 + components: + - type: Transform + pos: 41.5,10.5 + parent: 2 + - uid: 16530 + components: + - type: Transform + pos: 42.5,12.5 + parent: 2 + - uid: 16531 + components: + - type: Transform + pos: 42.5,13.5 + parent: 2 + - uid: 16532 + components: + - type: Transform + pos: 42.5,14.5 + parent: 2 + - uid: 16533 + components: + - type: Transform + pos: 41.5,14.5 + parent: 2 + - uid: 16534 + components: + - type: Transform + pos: 39.5,18.5 + parent: 2 + - uid: 16535 + components: + - type: Transform + pos: 39.5,19.5 + parent: 2 + - uid: 16536 + components: + - type: Transform + pos: 39.5,20.5 + parent: 2 + - uid: 16537 + components: + - type: Transform + pos: 39.5,21.5 + parent: 2 + - uid: 16538 + components: + - type: Transform + pos: 39.5,22.5 + parent: 2 + - uid: 16539 + components: + - type: Transform + pos: 40.5,22.5 + parent: 2 + - uid: 16540 + components: + - type: Transform + pos: 41.5,22.5 + parent: 2 + - uid: 16541 + components: + - type: Transform + pos: 42.5,22.5 + parent: 2 + - uid: 16542 + components: + - type: Transform + pos: 44.5,22.5 + parent: 2 + - uid: 16543 + components: + - type: Transform + pos: 45.5,22.5 + parent: 2 + - uid: 16544 + components: + - type: Transform + pos: 45.5,20.5 + parent: 2 + - uid: 16545 + components: + - type: Transform + pos: 45.5,19.5 + parent: 2 + - uid: 16546 + components: + - type: Transform + pos: 44.5,19.5 + parent: 2 + - uid: 16547 + components: + - type: Transform + pos: 43.5,18.5 + parent: 2 + - uid: 16548 + components: + - type: Transform + pos: 44.5,18.5 + parent: 2 + - uid: 16549 + components: + - type: Transform + pos: 42.5,15.5 + parent: 2 + - uid: 16550 + components: + - type: Transform + pos: 43.5,15.5 + parent: 2 + - uid: 16551 + components: + - type: Transform + pos: 47.5,12.5 + parent: 2 + - uid: 16552 + components: + - type: Transform + pos: 48.5,12.5 + parent: 2 + - uid: 16553 + components: + - type: Transform + pos: 50.5,12.5 + parent: 2 + - uid: 16554 + components: + - type: Transform + pos: 50.5,13.5 + parent: 2 + - uid: 16555 + components: + - type: Transform + pos: 50.5,15.5 + parent: 2 + - uid: 16556 + components: + - type: Transform + pos: 50.5,16.5 + parent: 2 + - uid: 16557 + components: + - type: Transform + pos: 50.5,19.5 + parent: 2 + - uid: 16558 + components: + - type: Transform + pos: 49.5,19.5 + parent: 2 + - uid: 16559 + components: + - type: Transform + pos: 46.5,19.5 + parent: 2 + - uid: 16560 + components: + - type: Transform + pos: 45.5,23.5 + parent: 2 + - uid: 16561 + components: + - type: Transform + pos: 46.5,23.5 + parent: 2 + - uid: 16562 + components: + - type: Transform + pos: 45.5,24.5 + parent: 2 + - uid: 16563 + components: + - type: Transform + pos: 44.5,24.5 + parent: 2 + - uid: 16564 + components: + - type: Transform + pos: 43.5,24.5 + parent: 2 + - uid: 16565 + components: + - type: Transform + pos: 42.5,24.5 + parent: 2 + - uid: 16566 + components: + - type: Transform + pos: 38.5,24.5 + parent: 2 + - uid: 16567 + components: + - type: Transform + pos: 37.5,24.5 + parent: 2 + - uid: 16568 + components: + - type: Transform + pos: 36.5,24.5 + parent: 2 + - uid: 16569 + components: + - type: Transform + pos: 36.5,23.5 + parent: 2 + - uid: 16570 + components: + - type: Transform + pos: 34.5,23.5 + parent: 2 + - uid: 16571 + components: + - type: Transform + pos: 34.5,24.5 + parent: 2 + - uid: 16572 + components: + - type: Transform + pos: 34.5,25.5 + parent: 2 + - uid: 16573 + components: + - type: Transform + pos: 34.5,26.5 + parent: 2 + - uid: 16574 + components: + - type: Transform + pos: 34.5,27.5 + parent: 2 + - uid: 16575 + components: + - type: Transform + pos: 34.5,28.5 + parent: 2 + - uid: 16576 + components: + - type: Transform + pos: 34.5,29.5 + parent: 2 + - uid: 16577 + components: + - type: Transform + pos: 34.5,30.5 + parent: 2 + - uid: 16578 + components: + - type: Transform + pos: 34.5,31.5 + parent: 2 + - uid: 16579 + components: + - type: Transform + pos: 34.5,32.5 + parent: 2 + - uid: 16580 + components: + - type: Transform + pos: 36.5,31.5 + parent: 2 + - uid: 16581 + components: + - type: Transform + pos: 37.5,31.5 + parent: 2 + - uid: 16582 + components: + - type: Transform + pos: 38.5,31.5 + parent: 2 + - uid: 16583 + components: + - type: Transform + pos: 38.5,32.5 + parent: 2 + - uid: 16584 + components: + - type: Transform + pos: 36.5,30.5 + parent: 2 + - uid: 16585 + components: + - type: Transform + pos: 36.5,28.5 + parent: 2 + - uid: 16586 + components: + - type: Transform + pos: 36.5,26.5 + parent: 2 + - uid: 16587 + components: + - type: Transform + pos: 37.5,26.5 + parent: 2 + - uid: 16588 + components: + - type: Transform + pos: 38.5,26.5 + parent: 2 + - uid: 16589 + components: + - type: Transform + pos: 39.5,26.5 + parent: 2 + - uid: 16590 + components: + - type: Transform + pos: 41.5,26.5 + parent: 2 + - uid: 16591 + components: + - type: Transform + pos: 42.5,26.5 + parent: 2 + - uid: 16592 + components: + - type: Transform + pos: 43.5,26.5 + parent: 2 + - uid: 16593 + components: + - type: Transform + pos: 43.5,27.5 + parent: 2 + - uid: 16594 + components: + - type: Transform + pos: 43.5,29.5 + parent: 2 + - uid: 16595 + components: + - type: Transform + pos: 43.5,30.5 + parent: 2 + - uid: 16596 + components: + - type: Transform + pos: 42.5,30.5 + parent: 2 + - uid: 16597 + components: + - type: Transform + pos: 43.5,31.5 + parent: 2 + - uid: 16598 + components: + - type: Transform + pos: 43.5,32.5 + parent: 2 + - uid: 16599 + components: + - type: Transform + pos: 42.5,32.5 + parent: 2 + - uid: 16600 + components: + - type: Transform + pos: 40.5,30.5 + parent: 2 + - uid: 16601 + components: + - type: Transform + pos: 39.5,30.5 + parent: 2 + - uid: 16602 + components: + - type: Transform + pos: 39.5,31.5 + parent: 2 + - uid: 16603 + components: + - type: Transform + pos: 39.5,32.5 + parent: 2 + - uid: 16604 + components: + - type: Transform + pos: 40.5,32.5 + parent: 2 + - uid: 16605 + components: + - type: Transform + pos: 45.5,25.5 + parent: 2 + - uid: 16606 + components: + - type: Transform + pos: 45.5,26.5 + parent: 2 + - uid: 16607 + components: + - type: Transform + pos: 45.5,27.5 + parent: 2 + - uid: 16608 + components: + - type: Transform + pos: 45.5,28.5 + parent: 2 + - uid: 16609 + components: + - type: Transform + pos: 45.5,29.5 + parent: 2 + - uid: 16610 + components: + - type: Transform + pos: 45.5,30.5 + parent: 2 + - uid: 16611 + components: + - type: Transform + pos: 45.5,31.5 + parent: 2 + - uid: 16612 + components: + - type: Transform + pos: 45.5,32.5 + parent: 2 + - uid: 16613 + components: + - type: Transform + pos: 46.5,32.5 + parent: 2 + - uid: 16614 + components: + - type: Transform + pos: 47.5,32.5 + parent: 2 + - uid: 16615 + components: + - type: Transform + pos: 48.5,32.5 + parent: 2 + - uid: 16616 + components: + - type: Transform + pos: 49.5,29.5 + parent: 2 + - uid: 16617 + components: + - type: Transform + pos: 49.5,32.5 + parent: 2 + - uid: 16618 + components: + - type: Transform + pos: 49.5,31.5 + parent: 2 + - uid: 16619 + components: + - type: Transform + pos: 49.5,28.5 + parent: 2 + - uid: 16620 + components: + - type: Transform + pos: 51.5,28.5 + parent: 2 + - uid: 16621 + components: + - type: Transform + pos: 50.5,28.5 + parent: 2 + - uid: 16622 + components: + - type: Transform + pos: 50.5,32.5 + parent: 2 + - uid: 16623 + components: + - type: Transform + pos: 51.5,32.5 + parent: 2 + - uid: 16624 + components: + - type: Transform + pos: 52.5,32.5 + parent: 2 + - uid: 16625 + components: + - type: Transform + pos: 53.5,32.5 + parent: 2 + - uid: 16626 + components: + - type: Transform + pos: 53.5,31.5 + parent: 2 + - uid: 16627 + components: + - type: Transform + pos: 53.5,29.5 + parent: 2 + - uid: 16628 + components: + - type: Transform + pos: 53.5,28.5 + parent: 2 + - uid: 16629 + components: + - type: Transform + pos: 52.5,28.5 + parent: 2 + - uid: 16630 + components: + - type: Transform + pos: 51.5,27.5 + parent: 2 + - uid: 16631 + components: + - type: Transform + pos: 51.5,23.5 + parent: 2 + - uid: 16632 + components: + - type: Transform + pos: 49.5,23.5 + parent: 2 + - uid: 16633 + components: + - type: Transform + pos: 49.5,21.5 + parent: 2 + - uid: 16634 + components: + - type: Transform + pos: 53.5,19.5 + parent: 2 + - uid: 16635 + components: + - type: Transform + pos: 56.5,9.5 + parent: 2 + - uid: 16636 + components: + - type: Transform + pos: 57.5,23.5 + parent: 2 + - uid: 16637 + components: + - type: Transform + pos: 58.5,23.5 + parent: 2 + - uid: 16638 + components: + - type: Transform + pos: 59.5,23.5 + parent: 2 + - uid: 16639 + components: + - type: Transform + pos: 60.5,23.5 + parent: 2 + - uid: 16640 + components: + - type: Transform + pos: 57.5,24.5 + parent: 2 + - uid: 16641 + components: + - type: Transform + pos: 57.5,25.5 + parent: 2 + - uid: 16642 + components: + - type: Transform + pos: 57.5,26.5 + parent: 2 + - uid: 16643 + components: + - type: Transform + pos: 57.5,27.5 + parent: 2 + - uid: 16644 + components: + - type: Transform + pos: 61.5,23.5 + parent: 2 + - uid: 16645 + components: + - type: Transform + pos: 61.5,22.5 + parent: 2 + - uid: 16646 + components: + - type: Transform + pos: 61.5,20.5 + parent: 2 + - uid: 16647 + components: + - type: Transform + pos: 61.5,19.5 + parent: 2 + - uid: 16648 + components: + - type: Transform + pos: 60.5,19.5 + parent: 2 + - uid: 16649 + components: + - type: Transform + pos: 60.5,18.5 + parent: 2 + - uid: 16650 + components: + - type: Transform + pos: 60.5,17.5 + parent: 2 + - uid: 16651 + components: + - type: Transform + pos: 60.5,16.5 + parent: 2 + - uid: 16652 + components: + - type: Transform + pos: 60.5,15.5 + parent: 2 + - uid: 16653 + components: + - type: Transform + pos: 60.5,14.5 + parent: 2 + - uid: 16654 + components: + - type: Transform + pos: 59.5,14.5 + parent: 2 + - uid: 16655 + components: + - type: Transform + pos: 51.5,12.5 + parent: 2 + - uid: 16656 + components: + - type: Transform + pos: 52.5,12.5 + parent: 2 + - uid: 16657 + components: + - type: Transform + pos: 53.5,12.5 + parent: 2 + - uid: 16658 + components: + - type: Transform + pos: 54.5,12.5 + parent: 2 + - uid: 16659 + components: + - type: Transform + pos: 56.5,11.5 + parent: 2 + - uid: 16660 + components: + - type: Transform + pos: 56.5,10.5 + parent: 2 + - uid: 16661 + components: + - type: Transform + pos: 54.5,14.5 + parent: 2 + - uid: 16662 + components: + - type: Transform + pos: 54.5,13.5 + parent: 2 + - uid: 16663 + components: + - type: Transform + pos: 55.5,14.5 + parent: 2 + - uid: 16664 + components: + - type: Transform + pos: 56.5,14.5 + parent: 2 + - uid: 16665 + components: + - type: Transform + pos: 58.5,14.5 + parent: 2 + - uid: 16666 + components: + - type: Transform + pos: 57.5,14.5 + parent: 2 + - uid: 16667 + components: + - type: Transform + pos: 48.5,8.5 + parent: 2 + - uid: 16668 + components: + - type: Transform + pos: 51.5,8.5 + parent: 2 + - uid: 16669 + components: + - type: Transform + pos: 50.5,8.5 + parent: 2 + - uid: 16670 + components: + - type: Transform + pos: 51.5,9.5 + parent: 2 + - uid: 16671 + components: + - type: Transform + pos: 51.5,11.5 + parent: 2 + - uid: 16672 + components: + - type: Transform + pos: 52.5,8.5 + parent: 2 + - uid: 16673 + components: + - type: Transform + pos: 53.5,8.5 + parent: 2 + - uid: 16674 + components: + - type: Transform + pos: 54.5,8.5 + parent: 2 + - uid: 16675 + components: + - type: Transform + pos: 55.5,8.5 + parent: 2 + - uid: 16676 + components: + - type: Transform + pos: 56.5,8.5 + parent: 2 + - uid: 16677 + components: + - type: Transform + pos: 56.5,7.5 + parent: 2 + - uid: 16678 + components: + - type: Transform + pos: 53.5,5.5 + parent: 2 + - uid: 16679 + components: + - type: Transform + pos: 54.5,5.5 + parent: 2 + - uid: 16680 + components: + - type: Transform + pos: 55.5,5.5 + parent: 2 + - uid: 16681 + components: + - type: Transform + pos: 56.5,5.5 + parent: 2 + - uid: 16682 + components: + - type: Transform + pos: 57.5,5.5 + parent: 2 + - uid: 16683 + components: + - type: Transform + pos: 58.5,5.5 + parent: 2 + - uid: 16684 + components: + - type: Transform + pos: 58.5,4.5 + parent: 2 + - uid: 16685 + components: + - type: Transform + pos: 58.5,3.5 + parent: 2 + - uid: 16686 + components: + - type: Transform + pos: 58.5,2.5 + parent: 2 + - uid: 16687 + components: + - type: Transform + pos: 58.5,1.5 + parent: 2 + - uid: 16688 + components: + - type: Transform + pos: 58.5,0.5 + parent: 2 + - uid: 16689 + components: + - type: Transform + pos: 58.5,-0.5 + parent: 2 + - uid: 16690 + components: + - type: Transform + pos: 58.5,-1.5 + parent: 2 + - uid: 16691 + components: + - type: Transform + pos: 58.5,-2.5 + parent: 2 + - uid: 16692 + components: + - type: Transform + pos: 58.5,-4.5 + parent: 2 + - uid: 16693 + components: + - type: Transform + pos: 58.5,-3.5 + parent: 2 + - uid: 16694 + components: + - type: Transform + pos: 44.5,-3.5 + parent: 2 + - uid: 16695 + components: + - type: Transform + pos: 44.5,-4.5 + parent: 2 + - uid: 16696 + components: + - type: Transform + pos: 45.5,-4.5 + parent: 2 + - uid: 16697 + components: + - type: Transform + pos: 46.5,-4.5 + parent: 2 + - uid: 16698 + components: + - type: Transform + pos: 47.5,-4.5 + parent: 2 + - uid: 16699 + components: + - type: Transform + pos: 48.5,-4.5 + parent: 2 + - uid: 16700 + components: + - type: Transform + pos: 57.5,-4.5 + parent: 2 + - uid: 16701 + components: + - type: Transform + pos: 56.5,-4.5 + parent: 2 + - uid: 16702 + components: + - type: Transform + pos: 48.5,-5.5 + parent: 2 + - uid: 16703 + components: + - type: Transform + pos: 48.5,-6.5 + parent: 2 + - uid: 16704 + components: + - type: Transform + pos: 48.5,-7.5 + parent: 2 + - uid: 16705 + components: + - type: Transform + pos: 48.5,-8.5 + parent: 2 + - uid: 16706 + components: + - type: Transform + pos: 48.5,-9.5 + parent: 2 + - uid: 16707 + components: + - type: Transform + pos: 54.5,-6.5 + parent: 2 + - uid: 16708 + components: + - type: Transform + pos: 54.5,-7.5 + parent: 2 + - uid: 16709 + components: + - type: Transform + pos: 54.5,-8.5 + parent: 2 + - uid: 16710 + components: + - type: Transform + pos: 54.5,-9.5 + parent: 2 + - uid: 16711 + components: + - type: Transform + pos: 49.5,-5.5 + parent: 2 + - uid: 16712 + components: + - type: Transform + pos: 49.5,-9.5 + parent: 2 + - uid: 16713 + components: + - type: Transform + pos: 50.5,-9.5 + parent: 2 + - uid: 16714 + components: + - type: Transform + pos: 51.5,-9.5 + parent: 2 + - uid: 16715 + components: + - type: Transform + pos: 52.5,-9.5 + parent: 2 + - uid: 16716 + components: + - type: Transform + pos: 53.5,-9.5 + parent: 2 + - uid: 16717 + components: + - type: Transform + pos: 47.5,5.5 + parent: 2 + - uid: 16719 + components: + - type: Transform + pos: 58.5,9.5 + parent: 2 + - uid: 16720 + components: + - type: Transform + pos: 58.5,10.5 + parent: 2 + - uid: 16721 + components: + - type: Transform + pos: 58.5,11.5 + parent: 2 + - uid: 16722 + components: + - type: Transform + pos: 61.5,7.5 + parent: 2 + - uid: 16723 + components: + - type: Transform + pos: 61.5,8.5 + parent: 2 + - uid: 16724 + components: + - type: Transform + pos: 61.5,9.5 + parent: 2 + - uid: 16725 + components: + - type: Transform + pos: 61.5,10.5 + parent: 2 + - uid: 16726 + components: + - type: Transform + pos: 61.5,11.5 + parent: 2 + - uid: 16727 + components: + - type: Transform + pos: 63.5,-0.5 + parent: 2 + - uid: 16728 + components: + - type: Transform + pos: 63.5,0.5 + parent: 2 + - uid: 16729 + components: + - type: Transform + pos: 62.5,0.5 + parent: 2 + - uid: 16730 + components: + - type: Transform + pos: 62.5,1.5 + parent: 2 + - uid: 16731 + components: + - type: Transform + pos: 62.5,5.5 + parent: 2 + - uid: 16732 + components: + - type: Transform + pos: 62.5,6.5 + parent: 2 + - uid: 16733 + components: + - type: Transform + pos: 62.5,7.5 + parent: 2 + - uid: 16734 + components: + - type: Transform + pos: 67.5,-0.5 + parent: 2 + - uid: 16735 + components: + - type: Transform + pos: 67.5,0.5 + parent: 2 + - uid: 16736 + components: + - type: Transform + pos: 68.5,0.5 + parent: 2 + - uid: 16737 + components: + - type: Transform + pos: 71.5,-1.5 + parent: 2 + - uid: 16738 + components: + - type: Transform + pos: 71.5,-2.5 + parent: 2 + - uid: 16739 + components: + - type: Transform + pos: 72.5,-2.5 + parent: 2 + - uid: 16740 + components: + - type: Transform + pos: 72.5,-3.5 + parent: 2 + - uid: 16741 + components: + - type: Transform + pos: 20.5,67.5 + parent: 2 + - uid: 16742 + components: + - type: Transform + pos: 19.5,67.5 + parent: 2 + - uid: 16743 + components: + - type: Transform + pos: 19.5,68.5 + parent: 2 + - uid: 16744 + components: + - type: Transform + pos: 19.5,69.5 + parent: 2 + - uid: 16745 + components: + - type: Transform + pos: 19.5,70.5 + parent: 2 + - uid: 16746 + components: + - type: Transform + pos: 18.5,70.5 + parent: 2 + - uid: 16747 + components: + - type: Transform + pos: 17.5,71.5 + parent: 2 + - uid: 16748 + components: + - type: Transform + pos: 17.5,70.5 + parent: 2 + - uid: 16749 + components: + - type: Transform + pos: 22.5,67.5 + parent: 2 + - uid: 16750 + components: + - type: Transform + pos: 23.5,67.5 + parent: 2 + - uid: 16751 + components: + - type: Transform + pos: 23.5,66.5 + parent: 2 + - uid: 16752 + components: + - type: Transform + pos: 24.5,66.5 + parent: 2 + - uid: 16753 + components: + - type: Transform + pos: 26.5,50.5 + parent: 2 + - uid: 16754 + components: + - type: Transform + pos: 26.5,51.5 + parent: 2 + - uid: 16755 + components: + - type: Transform + pos: 26.5,52.5 + parent: 2 + - uid: 16756 + components: + - type: Transform + pos: 26.5,53.5 + parent: 2 + - uid: 16757 + components: + - type: Transform + pos: 26.5,54.5 + parent: 2 + - uid: 16758 + components: + - type: Transform + pos: 26.5,55.5 + parent: 2 + - uid: 16759 + components: + - type: Transform + pos: 26.5,56.5 + parent: 2 + - uid: 16760 + components: + - type: Transform + pos: 26.5,57.5 + parent: 2 + - uid: 16761 + components: + - type: Transform + pos: 26.5,58.5 + parent: 2 + - uid: 16762 + components: + - type: Transform + pos: 27.5,59.5 + parent: 2 + - uid: 16763 + components: + - type: Transform + pos: 26.5,59.5 + parent: 2 + - uid: 16764 + components: + - type: Transform + pos: 28.5,59.5 + parent: 2 + - uid: 16765 + components: + - type: Transform + pos: 25.5,66.5 + parent: 2 + - uid: 16766 + components: + - type: Transform + pos: 30.5,62.5 + parent: 2 + - uid: 16767 + components: + - type: Transform + pos: 30.5,63.5 + parent: 2 + - uid: 16768 + components: + - type: Transform + pos: 30.5,64.5 + parent: 2 + - uid: 16769 + components: + - type: Transform + pos: 30.5,65.5 + parent: 2 + - uid: 16770 + components: + - type: Transform + pos: 30.5,66.5 + parent: 2 + - uid: 16771 + components: + - type: Transform + pos: 30.5,67.5 + parent: 2 + - uid: 16772 + components: + - type: Transform + pos: 29.5,67.5 + parent: 2 + - uid: 16773 + components: + - type: Transform + pos: 28.5,67.5 + parent: 2 + - uid: 16774 + components: + - type: Transform + pos: 27.5,67.5 + parent: 2 + - uid: 16775 + components: + - type: Transform + pos: 27.5,66.5 + parent: 2 + - uid: 16776 + components: + - type: Transform + pos: 31.5,52.5 + parent: 2 + - uid: 16777 + components: + - type: Transform + pos: 32.5,52.5 + parent: 2 + - uid: 16778 + components: + - type: Transform + pos: 29.5,52.5 + parent: 2 + - uid: 16779 + components: + - type: Transform + pos: 28.5,52.5 + parent: 2 + - uid: 16780 + components: + - type: Transform + pos: 28.5,53.5 + parent: 2 + - uid: 16781 + components: + - type: Transform + pos: 28.5,54.5 + parent: 2 + - uid: 16782 + components: + - type: Transform + pos: 28.5,55.5 + parent: 2 + - uid: 16783 + components: + - type: Transform + pos: 28.5,56.5 + parent: 2 + - uid: 16784 + components: + - type: Transform + pos: 28.5,57.5 + parent: 2 + - uid: 16785 + components: + - type: Transform + pos: 29.5,57.5 + parent: 2 + - uid: 16786 + components: + - type: Transform + pos: 30.5,57.5 + parent: 2 + - uid: 16787 + components: + - type: Transform + pos: 31.5,57.5 + parent: 2 + - uid: 16788 + components: + - type: Transform + pos: 32.5,57.5 + parent: 2 + - uid: 16789 + components: + - type: Transform + pos: 32.5,59.5 + parent: 2 + - uid: 16790 + components: + - type: Transform + pos: 32.5,56.5 + parent: 2 + - uid: 16791 + components: + - type: Transform + pos: 32.5,53.5 + parent: 2 + - uid: 16792 + components: + - type: Transform + pos: 32.5,54.5 + parent: 2 + - uid: 16793 + components: + - type: Transform + pos: 32.5,55.5 + parent: 2 + - uid: 16794 + components: + - type: Transform + pos: 33.5,59.5 + parent: 2 + - uid: 16795 + components: + - type: Transform + pos: 34.5,59.5 + parent: 2 + - uid: 16796 + components: + - type: Transform + pos: 34.5,58.5 + parent: 2 + - uid: 16797 + components: + - type: Transform + pos: 31.5,62.5 + parent: 2 + - uid: 16798 + components: + - type: Transform + pos: 32.5,62.5 + parent: 2 + - uid: 16799 + components: + - type: Transform + pos: 34.5,62.5 + parent: 2 + - uid: 16800 + components: + - type: Transform + pos: 36.5,62.5 + parent: 2 + - uid: 16801 + components: + - type: Transform + pos: 36.5,64.5 + parent: 2 + - uid: 16802 + components: + - type: Transform + pos: 36.5,63.5 + parent: 2 + - uid: 16803 + components: + - type: Transform + pos: 36.5,65.5 + parent: 2 + - uid: 16804 + components: + - type: Transform + pos: 32.5,66.5 + parent: 2 + - uid: 16805 + components: + - type: Transform + pos: 38.5,50.5 + parent: 2 + - uid: 16806 + components: + - type: Transform + pos: 38.5,51.5 + parent: 2 + - uid: 16807 + components: + - type: Transform + pos: 38.5,52.5 + parent: 2 + - uid: 16808 + components: + - type: Transform + pos: 38.5,53.5 + parent: 2 + - uid: 16809 + components: + - type: Transform + pos: 38.5,54.5 + parent: 2 + - uid: 16810 + components: + - type: Transform + pos: 38.5,55.5 + parent: 2 + - uid: 16811 + components: + - type: Transform + pos: 38.5,56.5 + parent: 2 + - uid: 16812 + components: + - type: Transform + pos: 38.5,57.5 + parent: 2 + - uid: 16813 + components: + - type: Transform + pos: 38.5,58.5 + parent: 2 + - uid: 16814 + components: + - type: Transform + pos: 40.5,67.5 + parent: 2 + - uid: 16815 + components: + - type: Transform + pos: 36.5,66.5 + parent: 2 + - uid: 16816 + components: + - type: Transform + pos: 36.5,67.5 + parent: 2 + - uid: 16817 + components: + - type: Transform + pos: 37.5,67.5 + parent: 2 + - uid: 16818 + components: + - type: Transform + pos: 38.5,67.5 + parent: 2 + - uid: 16819 + components: + - type: Transform + pos: 41.5,67.5 + parent: 2 + - uid: 16820 + components: + - type: Transform + pos: 42.5,67.5 + parent: 2 + - uid: 16821 + components: + - type: Transform + pos: 42.5,66.5 + parent: 2 + - uid: 16822 + components: + - type: Transform + pos: 47.5,62.5 + parent: 2 + - uid: 16823 + components: + - type: Transform + pos: 37.5,63.5 + parent: 2 + - uid: 16824 + components: + - type: Transform + pos: 38.5,63.5 + parent: 2 + - uid: 16825 + components: + - type: Transform + pos: 40.5,63.5 + parent: 2 + - uid: 16826 + components: + - type: Transform + pos: 41.5,63.5 + parent: 2 + - uid: 16827 + components: + - type: Transform + pos: 42.5,63.5 + parent: 2 + - uid: 16828 + components: + - type: Transform + pos: 42.5,64.5 + parent: 2 + - uid: 16829 + components: + - type: Transform + pos: 42.5,65.5 + parent: 2 + - uid: 16830 + components: + - type: Transform + pos: 43.5,67.5 + parent: 2 + - uid: 16831 + components: + - type: Transform + pos: 44.5,67.5 + parent: 2 + - uid: 16832 + components: + - type: Transform + pos: 45.5,67.5 + parent: 2 + - uid: 16833 + components: + - type: Transform + pos: 46.5,67.5 + parent: 2 + - uid: 16834 + components: + - type: Transform + pos: 46.5,62.5 + parent: 2 + - uid: 16835 + components: + - type: Transform + pos: 46.5,63.5 + parent: 2 + - uid: 16836 + components: + - type: Transform + pos: 46.5,66.5 + parent: 2 + - uid: 16837 + components: + - type: Transform + pos: 48.5,62.5 + parent: 2 + - uid: 16838 + components: + - type: Transform + pos: 49.5,62.5 + parent: 2 + - uid: 16839 + components: + - type: Transform + pos: 50.5,62.5 + parent: 2 + - uid: 16840 + components: + - type: Transform + pos: 50.5,61.5 + parent: 2 + - uid: 16841 + components: + - type: Transform + pos: 50.5,60.5 + parent: 2 + - uid: 16842 + components: + - type: Transform + pos: 51.5,60.5 + parent: 2 + - uid: 16843 + components: + - type: Transform + pos: 52.5,60.5 + parent: 2 + - uid: 16844 + components: + - type: Transform + pos: 53.5,60.5 + parent: 2 + - uid: 16845 + components: + - type: Transform + pos: 53.5,59.5 + parent: 2 + - uid: 16846 + components: + - type: Transform + pos: 53.5,58.5 + parent: 2 + - uid: 16849 + components: + - type: Transform + pos: 58.5,59.5 + parent: 2 + - uid: 16850 + components: + - type: Transform + pos: 58.5,58.5 + parent: 2 + - uid: 16851 + components: + - type: Transform + pos: 58.5,56.5 + parent: 2 + - uid: 16852 + components: + - type: Transform + pos: 58.5,55.5 + parent: 2 + - uid: 16853 + components: + - type: Transform + pos: 59.5,55.5 + parent: 2 + - uid: 16854 + components: + - type: Transform + pos: 60.5,55.5 + parent: 2 + - uid: 16855 + components: + - type: Transform + pos: 61.5,55.5 + parent: 2 + - uid: 16856 + components: + - type: Transform + pos: 62.5,55.5 + parent: 2 + - uid: 16857 + components: + - type: Transform + pos: 63.5,55.5 + parent: 2 + - uid: 16858 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 63.5,58.5 + parent: 2 + - uid: 16859 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 61.5,58.5 + parent: 2 + - uid: 16860 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 59.5,58.5 + parent: 2 + - uid: 16861 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 61.5,62.5 + parent: 2 + - uid: 16862 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 58.5,60.5 + parent: 2 + - uid: 16863 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 58.5,61.5 + parent: 2 + - uid: 16864 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 58.5,62.5 + parent: 2 + - uid: 16865 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 59.5,64.5 + parent: 2 + - uid: 16866 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 63.5,64.5 + parent: 2 + - uid: 16867 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 67.5,64.5 + parent: 2 + - uid: 16868 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 71.5,64.5 + parent: 2 + - uid: 16869 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 71.5,63.5 + parent: 2 + - uid: 16870 + components: + - type: Transform + pos: 72.5,63.5 + parent: 2 + - uid: 16871 + components: + - type: Transform + pos: 73.5,63.5 + parent: 2 + - uid: 16872 + components: + - type: Transform + pos: 74.5,63.5 + parent: 2 + - uid: 16873 + components: + - type: Transform + pos: 75.5,63.5 + parent: 2 + - uid: 16874 + components: + - type: Transform + pos: 79.5,63.5 + parent: 2 + - uid: 16875 + components: + - type: Transform + pos: 80.5,63.5 + parent: 2 + - uid: 16876 + components: + - type: Transform + pos: 76.5,58.5 + parent: 2 + - uid: 16877 + components: + - type: Transform + pos: 77.5,58.5 + parent: 2 + - uid: 16878 + components: + - type: Transform + pos: 78.5,58.5 + parent: 2 + - uid: 16879 + components: + - type: Transform + pos: 79.5,58.5 + parent: 2 + - uid: 16880 + components: + - type: Transform + pos: 80.5,58.5 + parent: 2 + - uid: 16881 + components: + - type: Transform + pos: 74.5,58.5 + parent: 2 + - uid: 16882 + components: + - type: Transform + pos: 73.5,58.5 + parent: 2 + - uid: 16883 + components: + - type: Transform + pos: 72.5,58.5 + parent: 2 + - uid: 16884 + components: + - type: Transform + pos: 71.5,58.5 + parent: 2 + - uid: 16885 + components: + - type: Transform + pos: 71.5,59.5 + parent: 2 + - uid: 16886 + components: + - type: Transform + pos: 71.5,61.5 + parent: 2 + - uid: 16887 + components: + - type: Transform + pos: 71.5,62.5 + parent: 2 + - uid: 16888 + components: + - type: Transform + pos: 81.5,54.5 + parent: 2 + - uid: 16889 + components: + - type: Transform + pos: 80.5,54.5 + parent: 2 + - uid: 16890 + components: + - type: Transform + pos: 81.5,52.5 + parent: 2 + - uid: 16891 + components: + - type: Transform + pos: 81.5,48.5 + parent: 2 + - uid: 16892 + components: + - type: Transform + pos: 82.5,48.5 + parent: 2 + - uid: 16893 + components: + - type: Transform + pos: 83.5,48.5 + parent: 2 + - uid: 16894 + components: + - type: Transform + pos: 83.5,47.5 + parent: 2 + - uid: 16895 + components: + - type: Transform + pos: 84.5,47.5 + parent: 2 + - uid: 16896 + components: + - type: Transform + pos: 84.5,46.5 + parent: 2 + - uid: 16897 + components: + - type: Transform + pos: 84.5,45.5 + parent: 2 + - uid: 16898 + components: + - type: Transform + pos: 83.5,45.5 + parent: 2 + - uid: 16899 + components: + - type: Transform + pos: 82.5,45.5 + parent: 2 + - uid: 16900 + components: + - type: Transform + pos: 80.5,45.5 + parent: 2 + - uid: 16901 + components: + - type: Transform + pos: 79.5,45.5 + parent: 2 + - uid: 16902 + components: + - type: Transform + pos: 79.5,46.5 + parent: 2 + - uid: 16903 + components: + - type: Transform + pos: 78.5,46.5 + parent: 2 + - uid: 16904 + components: + - type: Transform + pos: 77.5,46.5 + parent: 2 + - uid: 16905 + components: + - type: Transform + pos: 76.5,46.5 + parent: 2 + - uid: 16906 + components: + - type: Transform + pos: 75.5,46.5 + parent: 2 + - uid: 16907 + components: + - type: Transform + pos: 74.5,46.5 + parent: 2 + - uid: 16908 + components: + - type: Transform + pos: 73.5,46.5 + parent: 2 + - uid: 16909 + components: + - type: Transform + pos: 72.5,46.5 + parent: 2 + - uid: 16910 + components: + - type: Transform + pos: 72.5,47.5 + parent: 2 + - uid: 16911 + components: + - type: Transform + pos: 71.5,47.5 + parent: 2 + - uid: 16912 + components: + - type: Transform + pos: 70.5,47.5 + parent: 2 + - uid: 16913 + components: + - type: Transform + pos: 69.5,47.5 + parent: 2 + - uid: 16914 + components: + - type: Transform + pos: 69.5,44.5 + parent: 2 + - uid: 16915 + components: + - type: Transform + pos: 69.5,41.5 + parent: 2 + - uid: 16916 + components: + - type: Transform + pos: 70.5,41.5 + parent: 2 + - uid: 16917 + components: + - type: Transform + pos: 71.5,41.5 + parent: 2 + - uid: 16918 + components: + - type: Transform + pos: 72.5,41.5 + parent: 2 + - uid: 16919 + components: + - type: Transform + pos: 72.5,44.5 + parent: 2 + - uid: 16920 + components: + - type: Transform + pos: 79.5,41.5 + parent: 2 + - uid: 16921 + components: + - type: Transform + pos: 80.5,41.5 + parent: 2 + - uid: 16922 + components: + - type: Transform + pos: 79.5,40.5 + parent: 2 + - uid: 16923 + components: + - type: Transform + pos: 82.5,41.5 + parent: 2 + - uid: 16924 + components: + - type: Transform + pos: 83.5,41.5 + parent: 2 + - uid: 16925 + components: + - type: Transform + pos: 84.5,41.5 + parent: 2 + - uid: 16926 + components: + - type: Transform + pos: 83.5,40.5 + parent: 2 + - uid: 16927 + components: + - type: Transform + pos: 83.5,39.5 + parent: 2 + - uid: 16928 + components: + - type: Transform + pos: 83.5,38.5 + parent: 2 + - uid: 16929 + components: + - type: Transform + pos: 73.5,41.5 + parent: 2 + - uid: 16930 + components: + - type: Transform + pos: 74.5,41.5 + parent: 2 + - uid: 16931 + components: + - type: Transform + pos: 75.5,41.5 + parent: 2 + - uid: 16932 + components: + - type: Transform + pos: 76.5,41.5 + parent: 2 + - uid: 16933 + components: + - type: Transform + pos: 77.5,41.5 + parent: 2 + - uid: 16934 + components: + - type: Transform + pos: 78.5,41.5 + parent: 2 + - uid: 16935 + components: + - type: Transform + pos: 68.5,41.5 + parent: 2 + - uid: 16936 + components: + - type: Transform + pos: 67.5,41.5 + parent: 2 + - uid: 16937 + components: + - type: Transform + pos: 67.5,40.5 + parent: 2 + - uid: 16938 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 73.5,36.5 + parent: 2 + - uid: 16939 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 73.5,37.5 + parent: 2 + - uid: 16940 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 74.5,36.5 + parent: 2 + - uid: 16941 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 75.5,36.5 + parent: 2 + - uid: 16942 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 76.5,36.5 + parent: 2 + - uid: 16943 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 77.5,36.5 + parent: 2 + - uid: 16944 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 78.5,36.5 + parent: 2 + - uid: 16945 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 78.5,32.5 + parent: 2 + - uid: 16946 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 77.5,32.5 + parent: 2 + - uid: 16947 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 76.5,32.5 + parent: 2 + - uid: 16948 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 75.5,32.5 + parent: 2 + - uid: 16949 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 74.5,32.5 + parent: 2 + - uid: 16950 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 79.5,36.5 + parent: 2 + - uid: 16951 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 79.5,37.5 + parent: 2 + - uid: 16952 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 79.5,39.5 + parent: 2 + - uid: 16953 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 79.5,32.5 + parent: 2 + - uid: 16954 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 79.5,31.5 + parent: 2 + - uid: 16955 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 79.5,29.5 + parent: 2 + - uid: 16956 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 79.5,28.5 + parent: 2 + - uid: 16957 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 83.5,28.5 + parent: 2 + - uid: 16958 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 83.5,29.5 + parent: 2 + - uid: 16959 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 83.5,30.5 + parent: 2 + - uid: 16960 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 87.5,29.5 + parent: 2 + - uid: 16961 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 87.5,30.5 + parent: 2 + - uid: 16962 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 88.5,30.5 + parent: 2 + - uid: 16963 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 87.5,38.5 + parent: 2 + - uid: 16964 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 88.5,38.5 + parent: 2 + - uid: 16965 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 87.5,39.5 + parent: 2 + - uid: 16966 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 83.5,27.5 + parent: 2 + - uid: 16967 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 84.5,27.5 + parent: 2 + - uid: 16968 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 84.5,26.5 + parent: 2 + - uid: 16969 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 75.5,9.5 + parent: 2 + - uid: 16970 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 84.5,21.5 + parent: 2 + - uid: 16971 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 84.5,20.5 + parent: 2 + - uid: 16972 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 83.5,20.5 + parent: 2 + - uid: 16973 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 82.5,20.5 + parent: 2 + - uid: 16974 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 80.5,20.5 + parent: 2 + - uid: 16975 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 79.5,20.5 + parent: 2 + - uid: 16976 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 79.5,21.5 + parent: 2 + - uid: 16977 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 79.5,22.5 + parent: 2 + - uid: 16978 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 79.5,23.5 + parent: 2 + - uid: 16979 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 79.5,24.5 + parent: 2 + - uid: 16980 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 79.5,25.5 + parent: 2 + - uid: 16981 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 79.5,26.5 + parent: 2 + - uid: 16982 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 79.5,27.5 + parent: 2 + - uid: 16983 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 78.5,21.5 + parent: 2 + - uid: 16984 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 77.5,21.5 + parent: 2 + - uid: 16985 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 76.5,21.5 + parent: 2 + - uid: 16986 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 75.5,21.5 + parent: 2 + - uid: 16987 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 75.5,22.5 + parent: 2 + - uid: 16988 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 75.5,23.5 + parent: 2 + - uid: 16989 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 76.5,23.5 + parent: 2 + - uid: 16990 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 78.5,23.5 + parent: 2 + - uid: 16991 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 74.5,22.5 + parent: 2 + - uid: 16992 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 75.5,24.5 + parent: 2 + - uid: 16993 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 75.5,26.5 + parent: 2 + - uid: 16994 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 74.5,26.5 + parent: 2 + - uid: 16995 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 73.5,26.5 + parent: 2 + - uid: 16999 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 73.5,22.5 + parent: 2 + - uid: 17001 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 76.5,27.5 + parent: 2 + - uid: 17002 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 78.5,27.5 + parent: 2 + - uid: 17008 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 73.5,32.5 + parent: 2 + - uid: 17009 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 72.5,32.5 + parent: 2 + - uid: 17010 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 67.5,32.5 + parent: 2 + - uid: 17011 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 68.5,32.5 + parent: 2 + - uid: 17012 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 69.5,32.5 + parent: 2 + - uid: 17013 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 70.5,32.5 + parent: 2 + - uid: 17014 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 71.5,32.5 + parent: 2 + - uid: 17017 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 67.5,28.5 + parent: 2 + - uid: 17021 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 67.5,22.5 + parent: 2 + - uid: 17022 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 68.5,22.5 + parent: 2 + - uid: 17023 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 69.5,22.5 + parent: 2 + - uid: 17024 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 70.5,22.5 + parent: 2 + - uid: 17025 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 71.5,22.5 + parent: 2 + - uid: 17026 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 72.5,22.5 + parent: 2 + - uid: 17027 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 82.5,19.5 + parent: 2 + - uid: 17028 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 82.5,18.5 + parent: 2 + - uid: 17029 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 77.5,19.5 + parent: 2 + - uid: 17030 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 77.5,18.5 + parent: 2 + - uid: 17031 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 78.5,18.5 + parent: 2 + - uid: 17032 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 79.5,18.5 + parent: 2 + - uid: 17033 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 80.5,18.5 + parent: 2 + - uid: 17034 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 81.5,18.5 + parent: 2 + - uid: 17035 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 77.5,14.5 + parent: 2 + - uid: 17036 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 78.5,14.5 + parent: 2 + - uid: 17037 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 79.5,14.5 + parent: 2 + - uid: 17038 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 80.5,14.5 + parent: 2 + - uid: 17039 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 77.5,13.5 + parent: 2 + - uid: 17040 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 77.5,12.5 + parent: 2 + - uid: 17041 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 76.5,12.5 + parent: 2 + - uid: 17042 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 75.5,12.5 + parent: 2 + - uid: 17043 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 75.5,11.5 + parent: 2 + - uid: 17044 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 75.5,10.5 + parent: 2 + - uid: 17045 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 75.5,6.5 + parent: 2 + - uid: 17046 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 76.5,6.5 + parent: 2 + - uid: 17047 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 76.5,1.5 + parent: 2 + - uid: 17048 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 75.5,-2.5 + parent: 2 + - uid: 17049 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 75.5,-1.5 + parent: 2 + - uid: 17050 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 68.5,1.5 + parent: 2 + - uid: 17051 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 68.5,4.5 + parent: 2 + - uid: 17052 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 68.5,5.5 + parent: 2 + - uid: 17053 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 68.5,6.5 + parent: 2 + - uid: 17054 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 68.5,7.5 + parent: 2 + - uid: 17055 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 69.5,7.5 + parent: 2 + - uid: 17056 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 69.5,8.5 + parent: 2 + - uid: 17057 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 70.5,8.5 + parent: 2 + - uid: 17058 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 71.5,8.5 + parent: 2 + - uid: 17059 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 71.5,7.5 + parent: 2 + - uid: 17060 + components: + - type: Transform + pos: 68.5,12.5 + parent: 2 + - uid: 17061 + components: + - type: Transform + pos: 69.5,12.5 + parent: 2 + - uid: 17062 + components: + - type: Transform + pos: 70.5,12.5 + parent: 2 + - uid: 17063 + components: + - type: Transform + pos: 68.5,16.5 + parent: 2 + - uid: 17064 + components: + - type: Transform + pos: 69.5,16.5 + parent: 2 + - uid: 17065 + components: + - type: Transform + pos: 70.5,16.5 + parent: 2 + - uid: 17066 + components: + - type: Transform + pos: 72.5,16.5 + parent: 2 + - uid: 17067 + components: + - type: Transform + pos: 73.5,16.5 + parent: 2 + - uid: 17068 + components: + - type: Transform + pos: 74.5,16.5 + parent: 2 + - uid: 17069 + components: + - type: Transform + pos: 74.5,14.5 + parent: 2 + - uid: 17070 + components: + - type: Transform + pos: 74.5,13.5 + parent: 2 + - uid: 17071 + components: + - type: Transform + pos: 74.5,12.5 + parent: 2 + - uid: 17072 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 45.5,21.5 + parent: 2 + - uid: 17073 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -2.5,12.5 + parent: 2 + - uid: 17074 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 19.5,12.5 + parent: 2 + - uid: 17075 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 19.5,11.5 + parent: 2 + - uid: 17076 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 19.5,13.5 + parent: 2 + - uid: 17077 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 18.5,13.5 + parent: 2 + - uid: 17078 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 17.5,13.5 + parent: 2 + - uid: 17079 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 50.5,59.5 + parent: 2 + - uid: 17080 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 50.5,58.5 + parent: 2 + - uid: 17081 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -18.5,5.5 + parent: 2 + - uid: 17082 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 17.5,11.5 + parent: 2 + - uid: 17083 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 17.5,12.5 + parent: 2 + - uid: 17084 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 76.5,14.5 + parent: 2 + - uid: 17085 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 82.5,47.5 + parent: 2 + - uid: 17086 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 52.5,58.5 + parent: 2 + - uid: 17087 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -21.5,10.5 + parent: 2 + - uid: 17088 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -20.5,10.5 + parent: 2 + - uid: 17089 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 54.5,19.5 + parent: 2 + - uid: 17090 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 54.5,18.5 + parent: 2 + - uid: 17091 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 54.5,16.5 + parent: 2 + - uid: 17092 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 54.5,15.5 + parent: 2 + - uid: 17093 + components: + - type: Transform + pos: -5.5,65.5 + parent: 2 + - uid: 17094 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 35.5,62.5 + parent: 2 + - uid: 17095 + components: + - type: Transform + pos: 67.5,23.5 + parent: 2 + - uid: 17096 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -34.5,33.5 + parent: 2 + - uid: 17097 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -33.5,33.5 + parent: 2 + - uid: 17098 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -35.5,33.5 + parent: 2 + - uid: 17099 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -30.5,33.5 + parent: 2 + - uid: 17100 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -29.5,33.5 + parent: 2 + - uid: 17101 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -29.5,34.5 + parent: 2 + - uid: 17102 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -29.5,40.5 + parent: 2 + - uid: 17103 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -29.5,39.5 + parent: 2 + - uid: 17104 + components: + - type: Transform + pos: 67.5,26.5 + parent: 2 + - uid: 17105 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -30.5,32.5 + parent: 2 + - uid: 17106 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -34.5,40.5 + parent: 2 + - uid: 17107 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -32.5,33.5 + parent: 2 + - uid: 17108 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -33.5,40.5 + parent: 2 + - uid: 17109 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -32.5,40.5 + parent: 2 + - uid: 17110 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -35.5,40.5 + parent: 2 + - uid: 17111 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -31.5,40.5 + parent: 2 + - uid: 17112 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -30.5,40.5 + parent: 2 + - uid: 17113 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -29.5,38.5 + parent: 2 + - uid: 17114 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -29.5,35.5 + parent: 2 + - uid: 17115 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -29.5,37.5 + parent: 2 + - uid: 17116 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -29.5,36.5 + parent: 2 + - uid: 17117 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -36.5,40.5 + parent: 2 + - uid: 17118 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -37.5,40.5 + parent: 2 + - uid: 17119 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -38.5,40.5 + parent: 2 + - uid: 17120 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -38.5,39.5 + parent: 2 + - uid: 17121 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -38.5,38.5 + parent: 2 + - uid: 17122 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -38.5,36.5 + parent: 2 + - uid: 17123 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -38.5,37.5 + parent: 2 + - uid: 17124 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -38.5,35.5 + parent: 2 + - uid: 17125 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -38.5,34.5 + parent: 2 + - uid: 17126 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -38.5,33.5 + parent: 2 + - uid: 17127 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -36.5,33.5 + parent: 2 + - uid: 17128 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -37.5,33.5 + parent: 2 + - uid: 17129 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -16.5,73.5 + parent: 2 + - uid: 17130 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -18.5,73.5 + parent: 2 + - uid: 17131 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -17.5,73.5 + parent: 2 + - uid: 17132 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -19.5,73.5 + parent: 2 + - uid: 17133 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -14.5,73.5 + parent: 2 + - uid: 17134 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -15.5,73.5 + parent: 2 + - uid: 17136 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -12.5,-9.5 + parent: 2 + - uid: 17137 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -18.5,-13.5 + parent: 2 + - uid: 17138 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -12.5,-13.5 + parent: 2 + - uid: 17139 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 2.5,26.5 + parent: 2 + - uid: 17140 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 2.5,30.5 + parent: 2 + - uid: 17141 + components: + - type: Transform + pos: 2.5,31.5 + parent: 2 + - uid: 17142 + components: + - type: Transform + pos: 2.5,35.5 + parent: 2 + - uid: 17143 + components: + - type: Transform + pos: -24.5,21.5 + parent: 2 + - uid: 17144 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 25.5,-6.5 + parent: 2 + - uid: 17145 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 26.5,-6.5 + parent: 2 + - uid: 17146 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 27.5,-6.5 + parent: 2 + - uid: 17147 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 28.5,-6.5 + parent: 2 + - uid: 17148 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 29.5,-6.5 + parent: 2 + - uid: 17149 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 30.5,-6.5 + parent: 2 + - uid: 17150 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 31.5,-6.5 + parent: 2 + - uid: 17151 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 22.5,-7.5 + parent: 2 + - uid: 17152 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 21.5,-7.5 + parent: 2 + - uid: 17153 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 21.5,-8.5 + parent: 2 + - uid: 17154 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 21.5,-9.5 + parent: 2 + - uid: 17155 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 21.5,-10.5 + parent: 2 + - uid: 17156 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 21.5,-11.5 + parent: 2 + - uid: 17157 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 21.5,-12.5 + parent: 2 + - uid: 17158 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 21.5,-13.5 + parent: 2 + - uid: 17159 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 21.5,-14.5 + parent: 2 + - uid: 17160 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 30.5,-8.5 + parent: 2 + - uid: 17161 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 21.5,-15.5 + parent: 2 + - uid: 17162 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 22.5,-15.5 + parent: 2 + - uid: 17163 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 22.5,-16.5 + parent: 2 + - uid: 17164 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 23.5,-16.5 + parent: 2 + - uid: 17165 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 24.5,-16.5 + parent: 2 + - uid: 17166 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 25.5,-16.5 + parent: 2 + - uid: 17167 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 26.5,-16.5 + parent: 2 + - uid: 17168 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 27.5,-16.5 + parent: 2 + - uid: 17169 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 28.5,-16.5 + parent: 2 + - uid: 17170 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 29.5,-16.5 + parent: 2 + - uid: 17171 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 30.5,-16.5 + parent: 2 + - uid: 17172 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 31.5,-16.5 + parent: 2 + - uid: 17173 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 30.5,-15.5 + parent: 2 + - uid: 17174 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 31.5,-15.5 + parent: 2 + - uid: 17175 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 29.5,-15.5 + parent: 2 + - uid: 17176 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 28.5,-15.5 + parent: 2 + - uid: 17177 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 27.5,-15.5 + parent: 2 + - uid: 17178 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 26.5,-15.5 + parent: 2 + - uid: 17179 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 25.5,-15.5 + parent: 2 + - uid: 17180 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 24.5,-15.5 + parent: 2 + - uid: 17181 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 23.5,-15.5 + parent: 2 + - uid: 17182 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 23.5,-14.5 + parent: 2 + - uid: 17183 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 22.5,-14.5 + parent: 2 + - uid: 17184 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 22.5,-13.5 + parent: 2 + - uid: 17185 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 22.5,-12.5 + parent: 2 + - uid: 17186 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 22.5,-11.5 + parent: 2 + - uid: 17187 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 22.5,-10.5 + parent: 2 + - uid: 17188 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 22.5,-9.5 + parent: 2 + - uid: 17189 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 22.5,-8.5 + parent: 2 + - uid: 17190 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 23.5,-8.5 + parent: 2 + - uid: 17191 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 23.5,-7.5 + parent: 2 + - uid: 17192 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 24.5,-7.5 + parent: 2 + - uid: 17193 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 25.5,-7.5 + parent: 2 + - uid: 17194 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 26.5,-7.5 + parent: 2 + - uid: 17195 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 27.5,-7.5 + parent: 2 + - uid: 17196 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 28.5,-7.5 + parent: 2 + - uid: 17197 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 29.5,-7.5 + parent: 2 + - uid: 17198 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 30.5,-7.5 + parent: 2 + - uid: 17199 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 31.5,-7.5 + parent: 2 + - uid: 17200 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 30.5,-9.5 + parent: 2 + - uid: 17201 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 31.5,-8.5 + parent: 2 + - uid: 17202 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 31.5,-9.5 + parent: 2 + - uid: 17203 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 30.5,-14.5 + parent: 2 + - uid: 17204 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 31.5,-14.5 + parent: 2 + - uid: 17205 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 30.5,-13.5 + parent: 2 + - uid: 17206 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 31.5,-13.5 + parent: 2 + - uid: 17207 + components: + - type: Transform + pos: 32.5,-15.5 + parent: 2 + - uid: 17208 + components: + - type: Transform + pos: 32.5,-14.5 + parent: 2 + - uid: 17209 + components: + - type: Transform + pos: 33.5,-15.5 + parent: 2 + - uid: 17210 + components: + - type: Transform + pos: 33.5,-14.5 + parent: 2 + - uid: 17211 + components: + - type: Transform + pos: 34.5,-15.5 + parent: 2 + - uid: 17212 + components: + - type: Transform + pos: 34.5,-14.5 + parent: 2 + - uid: 17213 + components: + - type: Transform + pos: 35.5,-15.5 + parent: 2 + - uid: 17214 + components: + - type: Transform + pos: 35.5,-14.5 + parent: 2 + - uid: 17215 + components: + - type: Transform + pos: 36.5,-15.5 + parent: 2 + - uid: 17216 + components: + - type: Transform + pos: 36.5,-14.5 + parent: 2 + - uid: 17217 + components: + - type: Transform + pos: 37.5,-15.5 + parent: 2 + - uid: 17218 + components: + - type: Transform + pos: 37.5,-14.5 + parent: 2 + - uid: 17219 + components: + - type: Transform + pos: 38.5,-15.5 + parent: 2 + - uid: 17220 + components: + - type: Transform + pos: 38.5,-14.5 + parent: 2 + - uid: 17221 + components: + - type: Transform + pos: 39.5,-14.5 + parent: 2 + - uid: 17222 + components: + - type: Transform + pos: 39.5,-13.5 + parent: 2 + - uid: 17223 + components: + - type: Transform + pos: 39.5,-12.5 + parent: 2 + - uid: 17224 + components: + - type: Transform + pos: 39.5,-11.5 + parent: 2 + - uid: 17225 + components: + - type: Transform + pos: 39.5,-10.5 + parent: 2 + - uid: 17226 + components: + - type: Transform + pos: 39.5,-9.5 + parent: 2 + - uid: 17227 + components: + - type: Transform + pos: 39.5,-8.5 + parent: 2 + - uid: 17228 + components: + - type: Transform + pos: 38.5,-13.5 + parent: 2 + - uid: 17229 + components: + - type: Transform + pos: 38.5,-12.5 + parent: 2 + - uid: 17230 + components: + - type: Transform + pos: 38.5,-11.5 + parent: 2 + - uid: 17231 + components: + - type: Transform + pos: 38.5,-10.5 + parent: 2 + - uid: 17232 + components: + - type: Transform + pos: 38.5,-9.5 + parent: 2 + - uid: 17233 + components: + - type: Transform + pos: 38.5,-8.5 + parent: 2 + - uid: 17234 + components: + - type: Transform + pos: 32.5,-7.5 + parent: 2 + - uid: 17235 + components: + - type: Transform + pos: 32.5,-8.5 + parent: 2 + - uid: 17236 + components: + - type: Transform + pos: 34.5,-7.5 + parent: 2 + - uid: 17237 + components: + - type: Transform + pos: 34.5,-8.5 + parent: 2 + - uid: 17238 + components: + - type: Transform + pos: 35.5,-7.5 + parent: 2 + - uid: 17239 + components: + - type: Transform + pos: 35.5,-8.5 + parent: 2 + - uid: 17240 + components: + - type: Transform + pos: 36.5,-7.5 + parent: 2 + - uid: 17241 + components: + - type: Transform + pos: 36.5,-8.5 + parent: 2 + - uid: 17242 + components: + - type: Transform + pos: 37.5,-7.5 + parent: 2 + - uid: 17243 + components: + - type: Transform + pos: 37.5,-8.5 + parent: 2 + - uid: 17244 + components: + - type: Transform + pos: 38.5,-7.5 + parent: 2 + - uid: 17247 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -12.5,67.5 + parent: 2 + - uid: 17340 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -36.5,71.5 + parent: 2 + - uid: 17820 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -35.5,74.5 + parent: 2 + - uid: 17870 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -26.5,75.5 + parent: 2 + - uid: 18248 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 54.5,61.5 + parent: 2 + - uid: 18646 + components: + - type: Transform + pos: -5.5,22.5 + parent: 2 +- proto: WallSolid + entities: + - uid: 6325 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 79.5,48.5 + parent: 2 + - uid: 8535 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -28.5,80.5 + parent: 2 + - uid: 8536 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -30.5,80.5 + parent: 2 + - uid: 8537 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -32.5,80.5 + parent: 2 + - uid: 8538 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -34.5,80.5 + parent: 2 + - uid: 9120 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -36.5,80.5 + parent: 2 + - uid: 9532 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -37.5,78.5 + parent: 2 + - uid: 12573 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -38.5,72.5 + parent: 2 + - uid: 13972 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -37.5,74.5 + parent: 2 + - uid: 13973 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -37.5,76.5 + parent: 2 + - uid: 17245 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -38.5,70.5 + parent: 2 + - uid: 17250 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -38.5,68.5 + parent: 2 + - uid: 17251 + components: + - type: Transform + pos: -35.5,65.5 + parent: 2 + - uid: 17252 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 55.5,47.5 + parent: 2 + - uid: 17253 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 58.5,-9.5 + parent: 2 + - uid: 17254 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 58.5,-7.5 + parent: 2 + - uid: 17255 + components: + - type: Transform + pos: -14.5,-2.5 + parent: 2 + - uid: 17256 + components: + - type: Transform + pos: -34.5,65.5 + parent: 2 + - uid: 17257 + components: + - type: Transform + pos: 0.5,1.5 + parent: 2 + - uid: 17258 + components: + - type: Transform + pos: -12.5,4.5 + parent: 2 + - uid: 17259 + components: + - type: Transform + pos: -13.5,4.5 + parent: 2 + - uid: 17260 + components: + - type: Transform + pos: -15.5,4.5 + parent: 2 + - uid: 17261 + components: + - type: Transform + pos: -8.5,4.5 + parent: 2 + - uid: 17262 + components: + - type: Transform + pos: -8.5,5.5 + parent: 2 + - uid: 17263 + components: + - type: Transform + pos: -8.5,6.5 + parent: 2 + - uid: 17264 + components: + - type: Transform + pos: -8.5,7.5 + parent: 2 + - uid: 17265 + components: + - type: Transform + pos: -8.5,8.5 + parent: 2 + - uid: 17266 + components: + - type: Transform + pos: -9.5,8.5 + parent: 2 + - uid: 17267 + components: + - type: Transform + pos: -8.5,9.5 + parent: 2 + - uid: 17268 + components: + - type: Transform + pos: -7.5,9.5 + parent: 2 + - uid: 17269 + components: + - type: Transform + pos: -6.5,9.5 + parent: 2 + - uid: 17270 + components: + - type: Transform + pos: -5.5,9.5 + parent: 2 + - uid: 17271 + components: + - type: Transform + pos: -4.5,9.5 + parent: 2 + - uid: 17272 + components: + - type: Transform + pos: -4.5,8.5 + parent: 2 + - uid: 17273 + components: + - type: Transform + pos: -4.5,5.5 + parent: 2 + - uid: 17274 + components: + - type: Transform + pos: -4.5,4.5 + parent: 2 + - uid: 17275 + components: + - type: Transform + pos: -4.5,3.5 + parent: 2 + - uid: 17276 + components: + - type: Transform + pos: -11.5,8.5 + parent: 2 + - uid: 17277 + components: + - type: Transform + pos: -12.5,8.5 + parent: 2 + - uid: 17278 + components: + - type: Transform + pos: -13.5,10.5 + parent: 2 + - uid: 17279 + components: + - type: Transform + pos: -12.5,10.5 + parent: 2 + - uid: 17280 + components: + - type: Transform + pos: -17.5,9.5 + parent: 2 + - uid: 17281 + components: + - type: Transform + pos: 5.5,9.5 + parent: 2 + - uid: 17282 + components: + - type: Transform + pos: -1.5,13.5 + parent: 2 + - uid: 17283 + components: + - type: Transform + pos: 1.5,13.5 + parent: 2 + - uid: 17284 + components: + - type: Transform + pos: 2.5,13.5 + parent: 2 + - uid: 17285 + components: + - type: Transform + pos: 13.5,15.5 + parent: 2 + - uid: 17286 + components: + - type: Transform + pos: 13.5,16.5 + parent: 2 + - uid: 17287 + components: + - type: Transform + pos: 13.5,17.5 + parent: 2 + - uid: 17288 + components: + - type: Transform + pos: 13.5,18.5 + parent: 2 + - uid: 17289 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 4.5,22.5 + parent: 2 + - uid: 17290 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 3.5,22.5 + parent: 2 + - uid: 17291 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 3.5,23.5 + parent: 2 + - uid: 17292 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 3.5,24.5 + parent: 2 + - uid: 17293 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 2.5,24.5 + parent: 2 + - uid: 17294 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 7.5,22.5 + parent: 2 + - uid: 17295 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 5.5,22.5 + parent: 2 + - uid: 17296 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 6.5,22.5 + parent: 2 + - uid: 17297 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 30.5,31.5 + parent: 2 + - uid: 17298 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 30.5,32.5 + parent: 2 + - uid: 17299 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 30.5,36.5 + parent: 2 + - uid: 17300 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -36.5,-1.5 + parent: 2 + - uid: 17301 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -42.5,22.5 + parent: 2 + - uid: 17302 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -42.5,19.5 + parent: 2 + - uid: 17303 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -42.5,20.5 + parent: 2 + - uid: 17304 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -42.5,18.5 + parent: 2 + - uid: 17305 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -42.5,16.5 + parent: 2 + - uid: 17306 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -42.5,15.5 + parent: 2 + - uid: 17307 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -42.5,14.5 + parent: 2 + - uid: 17308 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -42.5,13.5 + parent: 2 + - uid: 17309 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -42.5,12.5 + parent: 2 + - uid: 17310 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -42.5,10.5 + parent: 2 + - uid: 17311 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -42.5,9.5 + parent: 2 + - uid: 17312 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -42.5,8.5 + parent: 2 + - uid: 17313 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -42.5,5.5 + parent: 2 + - uid: 17314 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -42.5,4.5 + parent: 2 + - uid: 17315 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -41.5,4.5 + parent: 2 + - uid: 17316 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -40.5,4.5 + parent: 2 + - uid: 17317 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -39.5,4.5 + parent: 2 + - uid: 17318 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -37.5,4.5 + parent: 2 + - uid: 17319 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -36.5,4.5 + parent: 2 + - uid: 17320 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -36.5,3.5 + parent: 2 + - uid: 17321 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -36.5,-0.5 + parent: 2 + - uid: 17322 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -36.5,0.5 + parent: 2 + - uid: 17323 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -36.5,1.5 + parent: 2 + - uid: 17324 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -34.5,-1.5 + parent: 2 + - uid: 17325 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -33.5,-1.5 + parent: 2 + - uid: 17326 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -32.5,-1.5 + parent: 2 + - uid: 17327 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -31.5,-1.5 + parent: 2 + - uid: 17328 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -16.5,14.5 + parent: 2 + - uid: 17329 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -17.5,14.5 + parent: 2 + - uid: 17330 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -21.5,13.5 + parent: 2 + - uid: 17331 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -22.5,46.5 + parent: 2 + - uid: 17332 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -18.5,46.5 + parent: 2 + - uid: 17333 + components: + - type: Transform + pos: 34.5,19.5 + parent: 2 + - uid: 17334 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -29.5,41.5 + parent: 2 + - uid: 17335 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -44.5,53.5 + parent: 2 + - uid: 17336 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -42.5,51.5 + parent: 2 + - uid: 17338 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -43.5,55.5 + parent: 2 + - uid: 17339 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -42.5,57.5 + parent: 2 + - uid: 17341 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 13.5,75.5 + parent: 2 + - uid: 17342 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -0.5,67.5 + parent: 2 + - uid: 17343 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 0.5,67.5 + parent: 2 + - uid: 17344 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -0.5,65.5 + parent: 2 + - uid: 17345 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 0.5,65.5 + parent: 2 + - uid: 17346 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 2.5,65.5 + parent: 2 + - uid: 17347 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 1.5,65.5 + parent: 2 + - uid: 17348 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 2.5,69.5 + parent: 2 + - uid: 17349 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 1.5,69.5 + parent: 2 + - uid: 17350 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 0.5,69.5 + parent: 2 + - uid: 17351 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -0.5,69.5 + parent: 2 + - uid: 17352 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 3.5,65.5 + parent: 2 + - uid: 17353 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 3.5,66.5 + parent: 2 + - uid: 17354 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 3.5,68.5 + parent: 2 + - uid: 17355 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 3.5,69.5 + parent: 2 + - uid: 17356 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 13.5,73.5 + parent: 2 + - uid: 17357 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 13.5,72.5 + parent: 2 + - uid: 17358 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 9.5,69.5 + parent: 2 + - uid: 17359 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 10.5,69.5 + parent: 2 + - uid: 17360 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 11.5,69.5 + parent: 2 + - uid: 17361 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 12.5,69.5 + parent: 2 + - uid: 17362 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 13.5,69.5 + parent: 2 + - uid: 17363 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 13.5,70.5 + parent: 2 + - uid: 17364 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 13.5,71.5 + parent: 2 + - uid: 17365 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 9.5,68.5 + parent: 2 + - uid: 17366 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 9.5,66.5 + parent: 2 + - uid: 17367 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 9.5,65.5 + parent: 2 + - uid: 17368 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 10.5,65.5 + parent: 2 + - uid: 17369 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 11.5,65.5 + parent: 2 + - uid: 17370 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 12.5,65.5 + parent: 2 + - uid: 17371 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 12.5,66.5 + parent: 2 + - uid: 17372 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 12.5,67.5 + parent: 2 + - uid: 17373 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 12.5,68.5 + parent: 2 + - uid: 17374 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 8.5,65.5 + parent: 2 + - uid: 17375 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 7.5,65.5 + parent: 2 + - uid: 17376 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 7.5,63.5 + parent: 2 + - uid: 17377 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 7.5,62.5 + parent: 2 + - uid: 17378 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 7.5,57.5 + parent: 2 + - uid: 17379 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 7.5,58.5 + parent: 2 + - uid: 17380 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 7.5,59.5 + parent: 2 + - uid: 17381 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 7.5,60.5 + parent: 2 + - uid: 17382 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 7.5,61.5 + parent: 2 + - uid: 17383 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 7.5,54.5 + parent: 2 + - uid: 17384 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 7.5,51.5 + parent: 2 + - uid: 17385 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 7.5,50.5 + parent: 2 + - uid: 17386 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 8.5,50.5 + parent: 2 + - uid: 17387 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 14.5,16.5 + parent: 2 + - uid: 17388 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 16.5,16.5 + parent: 2 + - uid: 17389 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 17.5,16.5 + parent: 2 + - uid: 17390 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 18.5,16.5 + parent: 2 + - uid: 17391 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 18.5,17.5 + parent: 2 + - uid: 17392 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 18.5,18.5 + parent: 2 + - uid: 17393 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 14.5,9.5 + parent: 2 + - uid: 17394 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 16.5,9.5 + parent: 2 + - uid: 17395 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 16.5,8.5 + parent: 2 + - uid: 17396 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 16.5,7.5 + parent: 2 + - uid: 17397 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 17.5,7.5 + parent: 2 + - uid: 17398 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 16.5,13.5 + parent: 2 + - uid: 17399 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 16.5,14.5 + parent: 2 + - uid: 17400 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 16.5,15.5 + parent: 2 + - uid: 17401 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 19.5,16.5 + parent: 2 + - uid: 17402 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 20.5,16.5 + parent: 2 + - uid: 17403 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 21.5,16.5 + parent: 2 + - uid: 17404 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 19.5,18.5 + parent: 2 + - uid: 17405 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 20.5,18.5 + parent: 2 + - uid: 17406 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 21.5,18.5 + parent: 2 + - uid: 17407 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 27.5,18.5 + parent: 2 + - uid: 17408 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 27.5,16.5 + parent: 2 + - uid: 17409 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 27.5,15.5 + parent: 2 + - uid: 17410 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 20.5,7.5 + parent: 2 + - uid: 17411 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 21.5,7.5 + parent: 2 + - uid: 17412 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 22.5,7.5 + parent: 2 + - uid: 17413 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 23.5,7.5 + parent: 2 + - uid: 17414 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 24.5,7.5 + parent: 2 + - uid: 17415 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 24.5,8.5 + parent: 2 + - uid: 17416 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 26.5,8.5 + parent: 2 + - uid: 17417 + components: + - type: Transform + pos: 30.5,15.5 + parent: 2 + - uid: 17418 + components: + - type: Transform + pos: 27.5,13.5 + parent: 2 + - uid: 17419 + components: + - type: Transform + pos: 28.5,15.5 + parent: 2 + - uid: 17420 + components: + - type: Transform + pos: 29.5,15.5 + parent: 2 + - uid: 17421 + components: + - type: Transform + pos: 31.5,18.5 + parent: 2 + - uid: 17422 + components: + - type: Transform + pos: 30.5,18.5 + parent: 2 + - uid: 17423 + components: + - type: Transform + pos: 29.5,18.5 + parent: 2 + - uid: 17424 + components: + - type: Transform + pos: 28.5,18.5 + parent: 2 + - uid: 17425 + components: + - type: Transform + pos: 11.5,1.5 + parent: 2 + - uid: 17426 + components: + - type: Transform + pos: 10.5,1.5 + parent: 2 + - uid: 17427 + components: + - type: Transform + pos: 11.5,2.5 + parent: 2 + - uid: 17428 + components: + - type: Transform + pos: 11.5,3.5 + parent: 2 + - uid: 17429 + components: + - type: Transform + pos: 11.5,5.5 + parent: 2 + - uid: 17430 + components: + - type: Transform + pos: 11.5,6.5 + parent: 2 + - uid: 17431 + components: + - type: Transform + pos: 10.5,6.5 + parent: 2 + - uid: 17432 + components: + - type: Transform + pos: 8.5,6.5 + parent: 2 + - uid: 17433 + components: + - type: Transform + pos: 7.5,6.5 + parent: 2 + - uid: 17434 + components: + - type: Transform + pos: 8.5,3.5 + parent: 2 + - uid: 17435 + components: + - type: Transform + pos: 13.5,1.5 + parent: 2 + - uid: 17436 + components: + - type: Transform + pos: 13.5,2.5 + parent: 2 + - uid: 17437 + components: + - type: Transform + pos: 13.5,3.5 + parent: 2 + - uid: 17438 + components: + - type: Transform + pos: 13.5,4.5 + parent: 2 + - uid: 17439 + components: + - type: Transform + pos: 14.5,4.5 + parent: 2 + - uid: 17440 + components: + - type: Transform + pos: 16.5,4.5 + parent: 2 + - uid: 17441 + components: + - type: Transform + pos: 17.5,4.5 + parent: 2 + - uid: 17442 + components: + - type: Transform + pos: 17.5,3.5 + parent: 2 + - uid: 17443 + components: + - type: Transform + pos: 17.5,2.5 + parent: 2 + - uid: 17444 + components: + - type: Transform + pos: 17.5,1.5 + parent: 2 + - uid: 17445 + components: + - type: Transform + pos: 8.5,-2.5 + parent: 2 + - uid: 17446 + components: + - type: Transform + pos: 10.5,-2.5 + parent: 2 + - uid: 17447 + components: + - type: Transform + pos: 13.5,-2.5 + parent: 2 + - uid: 17448 + components: + - type: Transform + pos: 14.5,-2.5 + parent: 2 + - uid: 17449 + components: + - type: Transform + pos: 14.5,-1.5 + parent: 2 + - uid: 17451 + components: + - type: Transform + pos: 21.5,5.5 + parent: 2 + - uid: 17452 + components: + - type: Transform + pos: 21.5,4.5 + parent: 2 + - uid: 17453 + components: + - type: Transform + pos: 30.5,-3.5 + parent: 2 + - uid: 17454 + components: + - type: Transform + pos: 28.5,-3.5 + parent: 2 + - uid: 17455 + components: + - type: Transform + pos: 33.5,1.5 + parent: 2 + - uid: 17456 + components: + - type: Transform + pos: 33.5,2.5 + parent: 2 + - uid: 17457 + components: + - type: Transform + pos: 34.5,2.5 + parent: 2 + - uid: 17458 + components: + - type: Transform + pos: 34.5,21.5 + parent: 2 + - uid: 17459 + components: + - type: Transform + pos: 58.5,27.5 + parent: 2 + - uid: 17460 + components: + - type: Transform + pos: 57.5,28.5 + parent: 2 + - uid: 17461 + components: + - type: Transform + pos: 57.5,31.5 + parent: 2 + - uid: 17462 + components: + - type: Transform + pos: 57.5,32.5 + parent: 2 + - uid: 17463 + components: + - type: Transform + pos: 58.5,32.5 + parent: 2 + - uid: 17464 + components: + - type: Transform + pos: 62.5,32.5 + parent: 2 + - uid: 17465 + components: + - type: Transform + pos: 63.5,32.5 + parent: 2 + - uid: 17466 + components: + - type: Transform + pos: 63.5,31.5 + parent: 2 + - uid: 17467 + components: + - type: Transform + pos: 59.5,27.5 + parent: 2 + - uid: 17468 + components: + - type: Transform + pos: 60.5,27.5 + parent: 2 + - uid: 17469 + components: + - type: Transform + pos: 63.5,28.5 + parent: 2 + - uid: 17470 + components: + - type: Transform + pos: 61.5,27.5 + parent: 2 + - uid: 17471 + components: + - type: Transform + pos: 63.5,27.5 + parent: 2 + - uid: 17472 + components: + - type: Transform + pos: 61.5,24.5 + parent: 2 + - uid: 17473 + components: + - type: Transform + pos: 61.5,26.5 + parent: 2 + - uid: 17474 + components: + - type: Transform + pos: 61.5,-3.5 + parent: 2 + - uid: 17475 + components: + - type: Transform + pos: 63.5,-3.5 + parent: 2 + - uid: 17476 + components: + - type: Transform + pos: 65.5,-3.5 + parent: 2 + - uid: 17477 + components: + - type: Transform + pos: 68.5,-3.5 + parent: 2 + - uid: 17478 + components: + - type: Transform + pos: 69.5,-3.5 + parent: 2 + - uid: 17479 + components: + - type: Transform + pos: 41.5,-5.5 + parent: 2 + - uid: 17480 + components: + - type: Transform + pos: 41.5,-6.5 + parent: 2 + - uid: 17481 + components: + - type: Transform + pos: 42.5,-6.5 + parent: 2 + - uid: 17482 + components: + - type: Transform + pos: 43.5,-6.5 + parent: 2 + - uid: 17483 + components: + - type: Transform + pos: 43.5,-7.5 + parent: 2 + - uid: 17484 + components: + - type: Transform + pos: 43.5,-9.5 + parent: 2 + - uid: 17485 + components: + - type: Transform + pos: 46.5,-9.5 + parent: 2 + - uid: 17486 + components: + - type: Transform + pos: 46.5,-10.5 + parent: 2 + - uid: 17487 + components: + - type: Transform + pos: 56.5,-10.5 + parent: 2 + - uid: 17488 + components: + - type: Transform + pos: 56.5,-9.5 + parent: 2 + - uid: 17489 + components: + - type: Transform + pos: 56.5,-8.5 + parent: 2 + - uid: 17490 + components: + - type: Transform + pos: 60.5,-5.5 + parent: 2 + - uid: 17491 + components: + - type: Transform + pos: 60.5,-7.5 + parent: 2 + - uid: 17492 + components: + - type: Transform + pos: 11.5,50.5 + parent: 2 + - uid: 17493 + components: + - type: Transform + pos: 14.5,50.5 + parent: 2 + - uid: 17494 + components: + - type: Transform + pos: 15.5,50.5 + parent: 2 + - uid: 17495 + components: + - type: Transform + pos: 15.5,51.5 + parent: 2 + - uid: 17496 + components: + - type: Transform + pos: 16.5,50.5 + parent: 2 + - uid: 17497 + components: + - type: Transform + pos: 15.5,54.5 + parent: 2 + - uid: 17498 + components: + - type: Transform + pos: 14.5,54.5 + parent: 2 + - uid: 17499 + components: + - type: Transform + pos: 13.5,54.5 + parent: 2 + - uid: 17500 + components: + - type: Transform + pos: 15.5,55.5 + parent: 2 + - uid: 17501 + components: + - type: Transform + pos: 15.5,56.5 + parent: 2 + - uid: 17502 + components: + - type: Transform + pos: 13.5,56.5 + parent: 2 + - uid: 17503 + components: + - type: Transform + pos: 15.5,57.5 + parent: 2 + - uid: 17504 + components: + - type: Transform + pos: 15.5,58.5 + parent: 2 + - uid: 17505 + components: + - type: Transform + pos: 14.5,58.5 + parent: 2 + - uid: 17506 + components: + - type: Transform + pos: 13.5,58.5 + parent: 2 + - uid: 17507 + components: + - type: Transform + pos: 12.5,58.5 + parent: 2 + - uid: 17508 + components: + - type: Transform + pos: 11.5,58.5 + parent: 2 + - uid: 17509 + components: + - type: Transform + pos: 9.5,58.5 + parent: 2 + - uid: 17510 + components: + - type: Transform + pos: 8.5,58.5 + parent: 2 + - uid: 17511 + components: + - type: Transform + pos: 15.5,59.5 + parent: 2 + - uid: 17512 + components: + - type: Transform + pos: 15.5,60.5 + parent: 2 + - uid: 17513 + components: + - type: Transform + pos: 14.5,60.5 + parent: 2 + - uid: 17514 + components: + - type: Transform + pos: 14.5,62.5 + parent: 2 + - uid: 17515 + components: + - type: Transform + pos: 14.5,63.5 + parent: 2 + - uid: 17516 + components: + - type: Transform + pos: 13.5,63.5 + parent: 2 + - uid: 17517 + components: + - type: Transform + pos: 12.5,63.5 + parent: 2 + - uid: 17518 + components: + - type: Transform + pos: 12.5,62.5 + parent: 2 + - uid: 17519 + components: + - type: Transform + pos: 11.5,62.5 + parent: 2 + - uid: 17520 + components: + - type: Transform + pos: 10.5,62.5 + parent: 2 + - uid: 17521 + components: + - type: Transform + pos: 9.5,62.5 + parent: 2 + - uid: 17522 + components: + - type: Transform + pos: 8.5,62.5 + parent: 2 + - uid: 17523 + components: + - type: Transform + pos: 14.5,64.5 + parent: 2 + - uid: 17524 + components: + - type: Transform + pos: 15.5,64.5 + parent: 2 + - uid: 17525 + components: + - type: Transform + pos: 17.5,64.5 + parent: 2 + - uid: 17526 + components: + - type: Transform + pos: 18.5,64.5 + parent: 2 + - uid: 17527 + components: + - type: Transform + pos: 19.5,64.5 + parent: 2 + - uid: 17528 + components: + - type: Transform + pos: 16.5,60.5 + parent: 2 + - uid: 17529 + components: + - type: Transform + pos: 17.5,60.5 + parent: 2 + - uid: 17530 + components: + - type: Transform + pos: 18.5,60.5 + parent: 2 + - uid: 17531 + components: + - type: Transform + pos: 19.5,60.5 + parent: 2 + - uid: 17532 + components: + - type: Transform + pos: 19.5,61.5 + parent: 2 + - uid: 17533 + components: + - type: Transform + pos: 19.5,62.5 + parent: 2 + - uid: 17534 + components: + - type: Transform + pos: 21.5,61.5 + parent: 2 + - uid: 17535 + components: + - type: Transform + pos: 22.5,61.5 + parent: 2 + - uid: 17536 + components: + - type: Transform + pos: 22.5,62.5 + parent: 2 + - uid: 17537 + components: + - type: Transform + pos: 22.5,63.5 + parent: 2 + - uid: 17538 + components: + - type: Transform + pos: 22.5,64.5 + parent: 2 + - uid: 17539 + components: + - type: Transform + pos: 23.5,64.5 + parent: 2 + - uid: 17540 + components: + - type: Transform + pos: 19.5,66.5 + parent: 2 + - uid: 17541 + components: + - type: Transform + pos: 15.5,72.5 + parent: 2 + - uid: 17542 + components: + - type: Transform + pos: 15.5,71.5 + parent: 2 + - uid: 17543 + components: + - type: Transform + pos: 15.5,70.5 + parent: 2 + - uid: 17544 + components: + - type: Transform + pos: 15.5,67.5 + parent: 2 + - uid: 17545 + components: + - type: Transform + pos: 15.5,68.5 + parent: 2 + - uid: 17546 + components: + - type: Transform + pos: 16.5,68.5 + parent: 2 + - uid: 17547 + components: + - type: Transform + pos: 16.5,57.5 + parent: 2 + - uid: 17548 + components: + - type: Transform + pos: 18.5,57.5 + parent: 2 + - uid: 17549 + components: + - type: Transform + pos: 19.5,57.5 + parent: 2 + - uid: 17550 + components: + - type: Transform + pos: 19.5,58.5 + parent: 2 + - uid: 17551 + components: + - type: Transform + pos: 19.5,59.5 + parent: 2 + - uid: 17552 + components: + - type: Transform + pos: 20.5,59.5 + parent: 2 + - uid: 17553 + components: + - type: Transform + pos: 21.5,59.5 + parent: 2 + - uid: 17554 + components: + - type: Transform + pos: 22.5,59.5 + parent: 2 + - uid: 17555 + components: + - type: Transform + pos: 23.5,59.5 + parent: 2 + - uid: 17556 + components: + - type: Transform + pos: 23.5,58.5 + parent: 2 + - uid: 17557 + components: + - type: Transform + pos: 25.5,58.5 + parent: 2 + - uid: 17558 + components: + - type: Transform + pos: 18.5,50.5 + parent: 2 + - uid: 17559 + components: + - type: Transform + pos: 20.5,50.5 + parent: 2 + - uid: 17560 + components: + - type: Transform + pos: 22.5,50.5 + parent: 2 + - uid: 17561 + components: + - type: Transform + pos: 25.5,50.5 + parent: 2 + - uid: 17562 + components: + - type: Transform + pos: 25.5,65.5 + parent: 2 + - uid: 17563 + components: + - type: Transform + pos: 25.5,64.5 + parent: 2 + - uid: 17564 + components: + - type: Transform + pos: 25.5,61.5 + parent: 2 + - uid: 17565 + components: + - type: Transform + pos: 25.5,62.5 + parent: 2 + - uid: 17566 + components: + - type: Transform + pos: 25.5,63.5 + parent: 2 + - uid: 17567 + components: + - type: Transform + pos: 26.5,61.5 + parent: 2 + - uid: 17568 + components: + - type: Transform + pos: 29.5,61.5 + parent: 2 + - uid: 17569 + components: + - type: Transform + pos: 30.5,61.5 + parent: 2 + - uid: 17570 + components: + - type: Transform + pos: 35.5,36.5 + parent: 2 + - uid: 17571 + components: + - type: Transform + pos: 34.5,36.5 + parent: 2 + - uid: 17572 + components: + - type: Transform + pos: 34.5,37.5 + parent: 2 + - uid: 17573 + components: + - type: Transform + pos: 34.5,40.5 + parent: 2 + - uid: 17574 + components: + - type: Transform + pos: 34.5,41.5 + parent: 2 + - uid: 17575 + components: + - type: Transform + pos: 34.5,42.5 + parent: 2 + - uid: 17576 + components: + - type: Transform + pos: 34.5,46.5 + parent: 2 + - uid: 17577 + components: + - type: Transform + pos: 35.5,46.5 + parent: 2 + - uid: 17578 + components: + - type: Transform + pos: 38.5,46.5 + parent: 2 + - uid: 17579 + components: + - type: Transform + pos: 39.5,46.5 + parent: 2 + - uid: 17580 + components: + - type: Transform + pos: 40.5,46.5 + parent: 2 + - uid: 17581 + components: + - type: Transform + pos: 39.5,45.5 + parent: 2 + - uid: 17582 + components: + - type: Transform + pos: 39.5,50.5 + parent: 2 + - uid: 17583 + components: + - type: Transform + pos: 41.5,50.5 + parent: 2 + - uid: 17584 + components: + - type: Transform + pos: 42.5,50.5 + parent: 2 + - uid: 17585 + components: + - type: Transform + pos: 43.5,50.5 + parent: 2 + - uid: 17586 + components: + - type: Transform + pos: 43.5,51.5 + parent: 2 + - uid: 17587 + components: + - type: Transform + pos: 43.5,52.5 + parent: 2 + - uid: 17588 + components: + - type: Transform + pos: 44.5,52.5 + parent: 2 + - uid: 17589 + components: + - type: Transform + pos: 45.5,52.5 + parent: 2 + - uid: 17590 + components: + - type: Transform + pos: 45.5,53.5 + parent: 2 + - uid: 17591 + components: + - type: Transform + pos: 45.5,54.5 + parent: 2 + - uid: 17592 + components: + - type: Transform + pos: 45.5,55.5 + parent: 2 + - uid: 17593 + components: + - type: Transform + pos: 43.5,55.5 + parent: 2 + - uid: 17594 + components: + - type: Transform + pos: 44.5,55.5 + parent: 2 + - uid: 17595 + components: + - type: Transform + pos: 41.5,55.5 + parent: 2 + - uid: 17596 + components: + - type: Transform + pos: 40.5,55.5 + parent: 2 + - uid: 17597 + components: + - type: Transform + pos: 39.5,55.5 + parent: 2 + - uid: 17598 + components: + - type: Transform + pos: 43.5,49.5 + parent: 2 + - uid: 17599 + components: + - type: Transform + pos: 43.5,47.5 + parent: 2 + - uid: 17600 + components: + - type: Transform + pos: 43.5,46.5 + parent: 2 + - uid: 17601 + components: + - type: Transform + pos: 42.5,46.5 + parent: 2 + - uid: 17602 + components: + - type: Transform + pos: 43.5,45.5 + parent: 2 + - uid: 17603 + components: + - type: Transform + pos: 44.5,46.5 + parent: 2 + - uid: 17604 + components: + - type: Transform + pos: 45.5,46.5 + parent: 2 + - uid: 17605 + components: + - type: Transform + pos: 45.5,47.5 + parent: 2 + - uid: 17606 + components: + - type: Transform + pos: 45.5,48.5 + parent: 2 + - uid: 17607 + components: + - type: Transform + pos: 45.5,49.5 + parent: 2 + - uid: 17608 + components: + - type: Transform + pos: 48.5,50.5 + parent: 2 + - uid: 17609 + components: + - type: Transform + pos: 46.5,49.5 + parent: 2 + - uid: 17610 + components: + - type: Transform + pos: 48.5,49.5 + parent: 2 + - uid: 17611 + components: + - type: Transform + pos: 48.5,51.5 + parent: 2 + - uid: 17612 + components: + - type: Transform + pos: 48.5,53.5 + parent: 2 + - uid: 17613 + components: + - type: Transform + pos: 48.5,54.5 + parent: 2 + - uid: 17614 + components: + - type: Transform + pos: 48.5,55.5 + parent: 2 + - uid: 17615 + components: + - type: Transform + pos: 49.5,55.5 + parent: 2 + - uid: 17616 + components: + - type: Transform + pos: 50.5,55.5 + parent: 2 + - uid: 17617 + components: + - type: Transform + pos: 52.5,55.5 + parent: 2 + - uid: 17618 + components: + - type: Transform + pos: 51.5,55.5 + parent: 2 + - uid: 17619 + components: + - type: Transform + pos: 52.5,54.5 + parent: 2 + - uid: 17620 + components: + - type: Transform + pos: 52.5,52.5 + parent: 2 + - uid: 17621 + components: + - type: Transform + pos: 52.5,51.5 + parent: 2 + - uid: 17622 + components: + - type: Transform + pos: 51.5,51.5 + parent: 2 + - uid: 17623 + components: + - type: Transform + pos: 51.5,50.5 + parent: 2 + - uid: 17624 + components: + - type: Transform + pos: 51.5,49.5 + parent: 2 + - uid: 17625 + components: + - type: Transform + pos: 50.5,49.5 + parent: 2 + - uid: 17626 + components: + - type: Transform + pos: 49.5,49.5 + parent: 2 + - uid: 17627 + components: + - type: Transform + pos: 36.5,61.5 + parent: 2 + - uid: 17628 + components: + - type: Transform + pos: 37.5,61.5 + parent: 2 + - uid: 17629 + components: + - type: Transform + pos: 40.5,61.5 + parent: 2 + - uid: 17630 + components: + - type: Transform + pos: 40.5,60.5 + parent: 2 + - uid: 17631 + components: + - type: Transform + pos: 40.5,59.5 + parent: 2 + - uid: 17632 + components: + - type: Transform + pos: 42.5,61.5 + parent: 2 + - uid: 17633 + components: + - type: Transform + pos: 43.5,61.5 + parent: 2 + - uid: 17634 + components: + - type: Transform + pos: 44.5,61.5 + parent: 2 + - uid: 17635 + components: + - type: Transform + pos: 45.5,61.5 + parent: 2 + - uid: 17636 + components: + - type: Transform + pos: 46.5,61.5 + parent: 2 + - uid: 17637 + components: + - type: Transform + pos: 46.5,60.5 + parent: 2 + - uid: 17638 + components: + - type: Transform + pos: 46.5,59.5 + parent: 2 + - uid: 17639 + components: + - type: Transform + pos: 46.5,58.5 + parent: 2 + - uid: 17640 + components: + - type: Transform + pos: 47.5,58.5 + parent: 2 + - uid: 17641 + components: + - type: Transform + pos: 49.5,58.5 + parent: 2 + - uid: 17642 + components: + - type: Transform + pos: 42.5,57.5 + parent: 2 + - uid: 17643 + components: + - type: Transform + pos: 43.5,57.5 + parent: 2 + - uid: 17644 + components: + - type: Transform + pos: 44.5,57.5 + parent: 2 + - uid: 17645 + components: + - type: Transform + pos: 45.5,57.5 + parent: 2 + - uid: 17646 + components: + - type: Transform + pos: 46.5,57.5 + parent: 2 + - uid: 17647 + components: + - type: Transform + pos: 58.5,51.5 + parent: 2 + - uid: 17648 + components: + - type: Transform + pos: 57.5,55.5 + parent: 2 + - uid: 17649 + components: + - type: Transform + pos: 55.5,55.5 + parent: 2 + - uid: 17650 + components: + - type: Transform + pos: 54.5,56.5 + parent: 2 + - uid: 17651 + components: + - type: Transform + pos: 54.5,55.5 + parent: 2 + - uid: 17652 + components: + - type: Transform + pos: 46.5,46.5 + parent: 2 + - uid: 17653 + components: + - type: Transform + pos: 47.5,46.5 + parent: 2 + - uid: 17654 + components: + - type: Transform + pos: 49.5,46.5 + parent: 2 + - uid: 17655 + components: + - type: Transform + pos: 50.5,46.5 + parent: 2 + - uid: 17656 + components: + - type: Transform + pos: 51.5,46.5 + parent: 2 + - uid: 17657 + components: + - type: Transform + pos: 51.5,47.5 + parent: 2 + - uid: 17658 + components: + - type: Transform + pos: 51.5,48.5 + parent: 2 + - uid: 17659 + components: + - type: Transform + pos: 52.5,47.5 + parent: 2 + - uid: 17660 + components: + - type: Transform + pos: 53.5,47.5 + parent: 2 + - uid: 17661 + components: + - type: Transform + pos: 56.5,47.5 + parent: 2 + - uid: 17662 + components: + - type: Transform + pos: 56.5,48.5 + parent: 2 + - uid: 17663 + components: + - type: Transform + pos: 56.5,50.5 + parent: 2 + - uid: 17664 + components: + - type: Transform + pos: 56.5,51.5 + parent: 2 + - uid: 17665 + components: + - type: Transform + pos: 56.5,52.5 + parent: 2 + - uid: 17666 + components: + - type: Transform + pos: 55.5,52.5 + parent: 2 + - uid: 17667 + components: + - type: Transform + pos: 54.5,52.5 + parent: 2 + - uid: 17668 + components: + - type: Transform + pos: 53.5,52.5 + parent: 2 + - uid: 17669 + components: + - type: Transform + pos: 59.5,51.5 + parent: 2 + - uid: 17670 + components: + - type: Transform + pos: 59.5,50.5 + parent: 2 + - uid: 17671 + components: + - type: Transform + pos: 59.5,53.5 + parent: 2 + - uid: 17672 + components: + - type: Transform + pos: 59.5,54.5 + parent: 2 + - uid: 17673 + components: + - type: Transform + pos: 63.5,54.5 + parent: 2 + - uid: 17674 + components: + - type: Transform + pos: 63.5,53.5 + parent: 2 + - uid: 17675 + components: + - type: Transform + pos: 63.5,51.5 + parent: 2 + - uid: 17676 + components: + - type: Transform + pos: 63.5,52.5 + parent: 2 + - uid: 17677 + components: + - type: Transform + pos: 63.5,50.5 + parent: 2 + - uid: 17678 + components: + - type: Transform + pos: 60.5,49.5 + parent: 2 + - uid: 17679 + components: + - type: Transform + pos: 61.5,49.5 + parent: 2 + - uid: 17680 + components: + - type: Transform + pos: 62.5,49.5 + parent: 2 + - uid: 17681 + components: + - type: Transform + pos: 59.5,49.5 + parent: 2 + - uid: 17682 + components: + - type: Transform + pos: 63.5,49.5 + parent: 2 + - uid: 17683 + components: + - type: Transform + pos: 63.5,48.5 + parent: 2 + - uid: 17684 + components: + - type: Transform + pos: 63.5,46.5 + parent: 2 + - uid: 17685 + components: + - type: Transform + pos: 63.5,45.5 + parent: 2 + - uid: 17686 + components: + - type: Transform + pos: 61.5,45.5 + parent: 2 + - uid: 17687 + components: + - type: Transform + pos: 62.5,45.5 + parent: 2 + - uid: 17688 + components: + - type: Transform + pos: 59.5,45.5 + parent: 2 + - uid: 17689 + components: + - type: Transform + pos: 58.5,45.5 + parent: 2 + - uid: 17690 + components: + - type: Transform + pos: 58.5,46.5 + parent: 2 + - uid: 17691 + components: + - type: Transform + pos: 57.5,47.5 + parent: 2 + - uid: 17692 + components: + - type: Transform + pos: 58.5,47.5 + parent: 2 + - uid: 17693 + components: + - type: Transform + pos: 51.5,42.5 + parent: 2 + - uid: 17694 + components: + - type: Transform + pos: 51.5,41.5 + parent: 2 + - uid: 17695 + components: + - type: Transform + pos: 52.5,41.5 + parent: 2 + - uid: 17696 + components: + - type: Transform + pos: 54.5,41.5 + parent: 2 + - uid: 17697 + components: + - type: Transform + pos: 58.5,44.5 + parent: 2 + - uid: 17698 + components: + - type: Transform + pos: 58.5,43.5 + parent: 2 + - uid: 17699 + components: + - type: Transform + pos: 58.5,42.5 + parent: 2 + - uid: 17700 + components: + - type: Transform + pos: 58.5,41.5 + parent: 2 + - uid: 17701 + components: + - type: Transform + pos: 59.5,41.5 + parent: 2 + - uid: 17702 + components: + - type: Transform + pos: 60.5,41.5 + parent: 2 + - uid: 17703 + components: + - type: Transform + pos: 63.5,41.5 + parent: 2 + - uid: 17704 + components: + - type: Transform + pos: 63.5,42.5 + parent: 2 + - uid: 17705 + components: + - type: Transform + pos: 63.5,44.5 + parent: 2 + - uid: 17706 + components: + - type: Transform + pos: 63.5,43.5 + parent: 2 + - uid: 17707 + components: + - type: Transform + pos: 59.5,40.5 + parent: 2 + - uid: 17708 + components: + - type: Transform + pos: 58.5,36.5 + parent: 2 + - uid: 17709 + components: + - type: Transform + pos: 59.5,36.5 + parent: 2 + - uid: 17710 + components: + - type: Transform + pos: 60.5,36.5 + parent: 2 + - uid: 17711 + components: + - type: Transform + pos: 63.5,36.5 + parent: 2 + - uid: 17712 + components: + - type: Transform + pos: 62.5,36.5 + parent: 2 + - uid: 17713 + components: + - type: Transform + pos: 63.5,37.5 + parent: 2 + - uid: 17714 + components: + - type: Transform + pos: 63.5,38.5 + parent: 2 + - uid: 17715 + components: + - type: Transform + pos: 63.5,40.5 + parent: 2 + - uid: 17716 + components: + - type: Transform + pos: 63.5,39.5 + parent: 2 + - uid: 17717 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 49.5,36.5 + parent: 2 + - uid: 17718 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 49.5,41.5 + parent: 2 + - uid: 17719 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 46.5,36.5 + parent: 2 + - uid: 17720 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 44.5,36.5 + parent: 2 + - uid: 17721 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 43.5,36.5 + parent: 2 + - uid: 17722 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 42.5,37.5 + parent: 2 + - uid: 17723 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 42.5,36.5 + parent: 2 + - uid: 17724 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 42.5,38.5 + parent: 2 + - uid: 17725 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 42.5,39.5 + parent: 2 + - uid: 17726 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 42.5,40.5 + parent: 2 + - uid: 17727 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 42.5,41.5 + parent: 2 + - uid: 17728 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 43.5,41.5 + parent: 2 + - uid: 17729 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 43.5,42.5 + parent: 2 + - uid: 17730 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 43.5,43.5 + parent: 2 + - uid: 17731 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 43.5,44.5 + parent: 2 + - uid: 17732 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 41.5,36.5 + parent: 2 + - uid: 17733 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 38.5,36.5 + parent: 2 + - uid: 17734 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 35.5,42.5 + parent: 2 + - uid: 17735 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 36.5,42.5 + parent: 2 + - uid: 17736 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 37.5,42.5 + parent: 2 + - uid: 17737 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 38.5,42.5 + parent: 2 + - uid: 17738 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 38.5,41.5 + parent: 2 + - uid: 17739 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 39.5,42.5 + parent: 2 + - uid: 17740 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 39.5,41.5 + parent: 2 + - uid: 17741 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 39.5,43.5 + parent: 2 + - uid: 17742 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 39.5,44.5 + parent: 2 + - uid: 17743 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 40.5,41.5 + parent: 2 + - uid: 17744 + components: + - type: Transform + pos: 79.5,54.5 + parent: 2 + - uid: 17745 + components: + - type: Transform + pos: 77.5,54.5 + parent: 2 + - uid: 17746 + components: + - type: Transform + pos: 76.5,54.5 + parent: 2 + - uid: 17747 + components: + - type: Transform + pos: 76.5,55.5 + parent: 2 + - uid: 17748 + components: + - type: Transform + pos: 76.5,57.5 + parent: 2 + - uid: 17749 + components: + - type: Transform + pos: 74.5,55.5 + parent: 2 + - uid: 17750 + components: + - type: Transform + pos: 73.5,55.5 + parent: 2 + - uid: 17751 + components: + - type: Transform + pos: 72.5,55.5 + parent: 2 + - uid: 17752 + components: + - type: Transform + pos: 72.5,56.5 + parent: 2 + - uid: 17753 + components: + - type: Transform + pos: 72.5,57.5 + parent: 2 + - uid: 17754 + components: + - type: Transform + pos: 80.5,52.5 + parent: 2 + - uid: 17755 + components: + - type: Transform + pos: 80.5,48.5 + parent: 2 + - uid: 17756 + components: + - type: Transform + pos: 78.5,52.5 + parent: 2 + - uid: 17757 + components: + - type: Transform + pos: 77.5,52.5 + parent: 2 + - uid: 17758 + components: + - type: Transform + pos: 77.5,51.5 + parent: 2 + - uid: 17759 + components: + - type: Transform + pos: 76.5,51.5 + parent: 2 + - uid: 17760 + components: + - type: Transform + pos: 77.5,50.5 + parent: 2 + - uid: 17761 + components: + - type: Transform + pos: 77.5,49.5 + parent: 2 + - uid: 17762 + components: + - type: Transform + pos: 77.5,48.5 + parent: 2 + - uid: 17763 + components: + - type: Transform + pos: 76.5,48.5 + parent: 2 + - uid: 17764 + components: + - type: Transform + pos: 78.5,48.5 + parent: 2 + - uid: 17765 + components: + - type: Transform + pos: 68.5,47.5 + parent: 2 + - uid: 17766 + components: + - type: Transform + pos: 67.5,47.5 + parent: 2 + - uid: 17767 + components: + - type: Transform + pos: 67.5,48.5 + parent: 2 + - uid: 17768 + components: + - type: Transform + pos: 67.5,49.5 + parent: 2 + - uid: 17769 + components: + - type: Transform + pos: 67.5,50.5 + parent: 2 + - uid: 17770 + components: + - type: Transform + pos: 67.5,51.5 + parent: 2 + - uid: 17771 + components: + - type: Transform + pos: 67.5,52.5 + parent: 2 + - uid: 17772 + components: + - type: Transform + pos: 67.5,53.5 + parent: 2 + - uid: 17773 + components: + - type: Transform + pos: 67.5,54.5 + parent: 2 + - uid: 17774 + components: + - type: Transform + pos: 68.5,53.5 + parent: 2 + - uid: 17775 + components: + - type: Transform + pos: 69.5,53.5 + parent: 2 + - uid: 17776 + components: + - type: Transform + pos: 70.5,53.5 + parent: 2 + - uid: 17777 + components: + - type: Transform + pos: 71.5,48.5 + parent: 2 + - uid: 17778 + components: + - type: Transform + pos: 71.5,49.5 + parent: 2 + - uid: 17779 + components: + - type: Transform + pos: 71.5,51.5 + parent: 2 + - uid: 17780 + components: + - type: Transform + pos: 71.5,52.5 + parent: 2 + - uid: 17781 + components: + - type: Transform + pos: 71.5,53.5 + parent: 2 + - uid: 17782 + components: + - type: Transform + pos: 72.5,53.5 + parent: 2 + - uid: 17783 + components: + - type: Transform + pos: 74.5,51.5 + parent: 2 + - uid: 17784 + components: + - type: Transform + pos: 73.5,51.5 + parent: 2 + - uid: 17785 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 71.5,36.5 + parent: 2 + - uid: 17786 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 72.5,36.5 + parent: 2 + - uid: 17787 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 61.5,12.5 + parent: 2 + - uid: 17788 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 62.5,12.5 + parent: 2 + - uid: 17789 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 63.5,12.5 + parent: 2 + - uid: 17790 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 62.5,13.5 + parent: 2 + - uid: 17791 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 62.5,14.5 + parent: 2 + - uid: 17792 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 62.5,15.5 + parent: 2 + - uid: 17793 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 62.5,16.5 + parent: 2 + - uid: 17794 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 62.5,17.5 + parent: 2 + - uid: 17795 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 63.5,17.5 + parent: 2 + - uid: 17796 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 63.5,19.5 + parent: 2 + - uid: 17797 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 63.5,26.5 + parent: 2 + - uid: 17798 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 63.5,25.5 + parent: 2 + - uid: 17799 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 63.5,24.5 + parent: 2 + - uid: 17800 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 63.5,23.5 + parent: 2 + - uid: 17801 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 63.5,22.5 + parent: 2 + - uid: 17802 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 63.5,21.5 + parent: 2 + - uid: 17803 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 63.5,20.5 + parent: 2 + - uid: 17804 + components: + - type: Transform + pos: 67.5,12.5 + parent: 2 + - uid: 17805 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 73.5,17.5 + parent: 2 + - uid: 17806 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 73.5,19.5 + parent: 2 + - uid: 17807 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 73.5,20.5 + parent: 2 + - uid: 17808 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 73.5,21.5 + parent: 2 + - uid: 17809 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 67.5,57.5 + parent: 2 + - uid: 17810 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 67.5,59.5 + parent: 2 + - uid: 17811 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 20.5,13.5 + parent: 2 + - uid: 17812 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 20.5,14.5 + parent: 2 + - uid: 17813 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 61.5,-4.5 + parent: 2 + - uid: 17814 + components: + - type: Transform + pos: 19.5,10.5 + parent: 2 + - uid: 17815 + components: + - type: Transform + pos: 19.5,9.5 + parent: 2 + - uid: 17816 + components: + - type: Transform + pos: 19.5,8.5 + parent: 2 + - uid: 17817 + components: + - type: Transform + pos: 19.5,7.5 + parent: 2 + - uid: 17818 + components: + - type: Transform + pos: 17.5,5.5 + parent: 2 + - uid: 17819 + components: + - type: Transform + pos: 36.5,46.5 + parent: 2 + - uid: 17822 + components: + - type: Transform + pos: 86.5,41.5 + parent: 2 + - uid: 17824 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 2.5,81.5 + parent: 2 + - uid: 17826 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 3.5,81.5 + parent: 2 + - uid: 17827 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 7.5,82.5 + parent: 2 + - uid: 17828 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 8.5,82.5 + parent: 2 + - uid: 17829 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 52.5,64.5 + parent: 2 + - uid: 17830 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 11.5,82.5 + parent: 2 + - uid: 17831 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 12.5,81.5 + parent: 2 + - uid: 17832 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 29.5,64.5 + parent: 2 + - uid: 17835 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 51.5,64.5 + parent: 2 + - uid: 17836 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 47.5,69.5 + parent: 2 + - uid: 17837 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 48.5,69.5 + parent: 2 + - uid: 17838 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 48.5,68.5 + parent: 2 + - uid: 17839 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 74.5,65.5 + parent: 2 + - uid: 17840 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 76.5,65.5 + parent: 2 + - uid: 17841 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 78.5,65.5 + parent: 2 + - uid: 17842 + components: + - type: Transform + pos: 88.5,41.5 + parent: 2 + - uid: 17843 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -40.5,32.5 + parent: 2 + - uid: 17844 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -40.5,34.5 + parent: 2 + - uid: 17845 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -41.5,36.5 + parent: 2 + - uid: 17846 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -42.5,38.5 + parent: 2 + - uid: 17847 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -41.5,40.5 + parent: 2 + - uid: 17848 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -40.5,41.5 + parent: 2 + - uid: 17849 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -39.5,42.5 + parent: 2 + - uid: 17850 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -37.5,42.5 + parent: 2 + - uid: 17851 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -35.5,42.5 + parent: 2 + - uid: 17852 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -33.5,42.5 + parent: 2 + - uid: 17853 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -32.5,42.5 + parent: 2 + - uid: 17854 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -30.5,42.5 + parent: 2 + - uid: 17855 + components: + - type: Transform + pos: 89.5,40.5 + parent: 2 + - uid: 17856 + components: + - type: Transform + pos: 90.5,39.5 + parent: 2 + - uid: 17857 + components: + - type: Transform + pos: 88.5,27.5 + parent: 2 + - uid: 17858 + components: + - type: Transform + pos: 89.5,28.5 + parent: 2 + - uid: 17859 + components: + - type: Transform + pos: 90.5,29.5 + parent: 2 + - uid: 17860 + components: + - type: Transform + pos: 86.5,27.5 + parent: 2 + - uid: 17861 + components: + - type: Transform + pos: 86.5,46.5 + parent: 2 + - uid: 17862 + components: + - type: Transform + pos: 86.5,21.5 + parent: 2 + - uid: 17863 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -26.5,76.5 + parent: 2 + - uid: 17864 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -24.5,79.5 + parent: 2 + - uid: 17865 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -22.5,80.5 + parent: 2 + - uid: 17866 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -20.5,81.5 + parent: 2 + - uid: 17867 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -18.5,81.5 + parent: 2 + - uid: 17868 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -16.5,81.5 + parent: 2 + - uid: 17869 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -14.5,80.5 + parent: 2 + - uid: 17872 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 23.5,-21.5 + parent: 2 + - uid: 17873 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 15.5,-6.5 + parent: 2 + - uid: 17874 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 16.5,-8.5 + parent: 2 + - uid: 17875 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 17.5,-10.5 + parent: 2 + - uid: 17876 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 17.5,-12.5 + parent: 2 + - uid: 17877 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 16.5,-14.5 + parent: 2 + - uid: 17878 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 15.5,-16.5 + parent: 2 + - uid: 17879 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 16.5,-18.5 + parent: 2 + - uid: 17880 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 17.5,-19.5 + parent: 2 + - uid: 17881 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 18.5,-20.5 + parent: 2 + - uid: 17882 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 21.5,-22.5 + parent: 2 + - uid: 17883 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 25.5,-20.5 + parent: 2 + - uid: 17884 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 28.5,-20.5 + parent: 2 + - uid: 17885 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 30.5,-21.5 + parent: 2 + - uid: 17886 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 32.5,-22.5 + parent: 2 + - uid: 17887 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 34.5,-21.5 + parent: 2 + - uid: 17888 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 36.5,-20.5 + parent: 2 + - uid: 17889 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 38.5,-19.5 + parent: 2 + - uid: 17890 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 40.5,-19.5 + parent: 2 + - uid: 17891 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 41.5,-20.5 + parent: 2 + - uid: 17892 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 26.5,-3.5 + parent: 2 + - uid: 17893 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 24.5,-3.5 + parent: 2 + - uid: 17894 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 22.5,-3.5 + parent: 2 + - uid: 17907 + components: + - type: Transform + pos: 87.5,-5.5 + parent: 2 + - uid: 17908 + components: + - type: Transform + pos: 87.5,-4.5 + parent: 2 + - uid: 17909 + components: + - type: Transform + pos: 87.5,-3.5 + parent: 2 + - uid: 17910 + components: + - type: Transform + pos: 87.5,2.5 + parent: 2 + - uid: 17911 + components: + - type: Transform + pos: 87.5,-0.5 + parent: 2 + - uid: 17912 + components: + - type: Transform + pos: 87.5,4.5 + parent: 2 + - uid: 17913 + components: + - type: Transform + pos: 87.5,8.5 + parent: 2 + - uid: 17914 + components: + - type: Transform + pos: 87.5,13.5 + parent: 2 + - uid: 17917 + components: + - type: Transform + pos: 85.5,-8.5 + parent: 2 + - uid: 17918 + components: + - type: Transform + pos: 86.5,-8.5 + parent: 2 + - uid: 17936 + components: + - type: Transform + pos: 80.5,-8.5 + parent: 2 + - uid: 17937 + components: + - type: Transform + pos: 78.5,-8.5 + parent: 2 + - uid: 17939 + components: + - type: Transform + pos: 77.5,-8.5 + parent: 2 + - uid: 17944 + components: + - type: Transform + pos: 82.5,-8.5 + parent: 2 + - uid: 17979 + components: + - type: Transform + pos: 85.5,14.5 + parent: 2 + - uid: 17981 + components: + - type: Transform + pos: 87.5,11.5 + parent: 2 + - uid: 17987 + components: + - type: Transform + pos: 81.5,-8.5 + parent: 2 + - uid: 17988 + components: + - type: Transform + pos: 87.5,12.5 + parent: 2 + - uid: 17989 + components: + - type: Transform + pos: 84.5,-8.5 + parent: 2 + - uid: 17990 + components: + - type: Transform + pos: 87.5,3.5 + parent: 2 + - uid: 17991 + components: + - type: Transform + pos: 84.5,14.5 + parent: 2 + - uid: 17995 + components: + - type: Transform + pos: 87.5,-1.5 + parent: 2 + - uid: 17997 + components: + - type: Transform + pos: 87.5,7.5 + parent: 2 + - uid: 17998 + components: + - type: Transform + pos: 86.5,14.5 + parent: 2 + - uid: 18556 + components: + - type: Transform + pos: 91.5,14.5 + parent: 2 + - uid: 18557 + components: + - type: Transform + pos: 91.5,12.5 + parent: 2 + - uid: 18558 + components: + - type: Transform + pos: 90.5,10.5 + parent: 2 + - uid: 18559 + components: + - type: Transform + pos: 90.5,8.5 + parent: 2 + - uid: 18560 + components: + - type: Transform + pos: 89.5,6.5 + parent: 2 + - uid: 18561 + components: + - type: Transform + pos: 89.5,5.5 + parent: 2 + - uid: 18562 + components: + - type: Transform + pos: 89.5,2.5 + parent: 2 + - uid: 18563 + components: + - type: Transform + pos: 89.5,1.5 + parent: 2 + - uid: 18564 + components: + - type: Transform + pos: 90.5,-0.5 + parent: 2 + - uid: 18565 + components: + - type: Transform + pos: 90.5,-2.5 + parent: 2 + - uid: 18566 + components: + - type: Transform + pos: 91.5,-4.5 + parent: 2 + - uid: 18567 + components: + - type: Transform + pos: 91.5,-6.5 + parent: 2 + - uid: 18568 + components: + - type: Transform + pos: 77.5,-10.5 + parent: 2 + - uid: 18569 + components: + - type: Transform + pos: 79.5,-10.5 + parent: 2 + - uid: 18570 + components: + - type: Transform + pos: 81.5,-9.5 + parent: 2 + - uid: 18572 + components: + - type: Transform + pos: 85.5,-10.5 + parent: 2 + - uid: 18573 + components: + - type: Transform + pos: 87.5,-10.5 + parent: 2 + - uid: 18576 + components: + - type: Transform + pos: 89.5,-7.5 + parent: 2 + - uid: 18577 + components: + - type: Transform + pos: 88.5,-8.5 + parent: 2 + - uid: 18629 + components: + - type: Transform + pos: 88.5,17.5 + parent: 2 + - uid: 18630 + components: + - type: Transform + pos: 88.5,15.5 + parent: 2 + - uid: 18631 + components: + - type: Transform + pos: 88.5,21.5 + parent: 2 + - uid: 18632 + components: + - type: Transform + pos: 88.5,19.5 + parent: 2 +- proto: WardrobeBlackFilled + entities: + - uid: 17895 + components: + - type: Transform + pos: 26.5,10.5 + parent: 2 +- proto: WardrobeBlueFilled + entities: + - uid: 17896 + components: + - type: Transform + pos: 26.5,11.5 + parent: 2 +- proto: WardrobeCargoFilled + entities: + - uid: 17897 + components: + - type: Transform + pos: 11.5,10.5 + parent: 2 + - uid: 17898 + components: + - type: Transform + pos: 10.5,10.5 + parent: 2 + - uid: 17899 + components: + - type: Transform + pos: 9.5,10.5 + parent: 2 +- proto: WardrobeGeneticsFilled + entities: + - uid: 17900 + components: + - type: Transform + pos: 29.5,26.5 + parent: 2 +- proto: WardrobePrisonFilled + entities: + - uid: 17901 + components: + - type: Transform + pos: -9.5,51.5 + parent: 2 + - uid: 17902 + components: + - type: Transform + pos: -5.5,51.5 + parent: 2 + - uid: 17903 + components: + - type: Transform + pos: -1.5,51.5 + parent: 2 +- proto: WardrobeVirologyFilled + entities: + - uid: 17904 + components: + - type: Transform + pos: 20.5,11.5 + parent: 2 +- proto: WardrobeWhiteFilled + entities: + - uid: 17905 + components: + - type: Transform + pos: 26.5,12.5 + parent: 2 +- proto: WardrobeYellowFilled + entities: + - uid: 17906 + components: + - type: Transform + pos: 26.5,9.5 + parent: 2 +- proto: WarpPoint + entities: + - uid: 17942 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -0.5,16.5 + parent: 2 + - type: WarpPoint + location: QM +- proto: WarpPointBombing + entities: + - uid: 17945 + components: + - type: Transform + pos: 0.5,7.5 + parent: 2 + - type: WarpPoint + location: Cargo Bay + - uid: 17946 + components: + - type: Transform + pos: 1.5,16.5 + parent: 2 + - type: WarpPoint + location: QM office + - uid: 17947 + components: + - type: Transform + pos: 9.5,15.5 + parent: 2 + - type: WarpPoint + location: Logistics + - uid: 17948 + components: + - type: Transform + pos: 12.5,27.5 + parent: 2 + - type: WarpPoint + location: Chem + - uid: 17949 + components: + - type: Transform + pos: 20.5,39.5 + parent: 2 + - type: WarpPoint + location: CMO office + - uid: 17950 + components: + - type: Transform + pos: 27.5,34.5 + parent: 2 + - type: WarpPoint + location: MedBay + - uid: 17951 + components: + - type: Transform + pos: -9.5,34.5 + parent: 2 + - type: WarpPoint + location: Eng lockers + - uid: 17953 + components: + - type: Transform + pos: -29.5,14.5 + parent: 2 + - type: WarpPoint + location: Atmos + - uid: 17954 + components: + - type: Transform + pos: -19.5,28.5 + parent: 2 + - type: WarpPoint + location: SuperMatter + - uid: 17955 + components: + - type: Transform + pos: -21.5,43.5 + parent: 2 + - type: WarpPoint + location: Gravity generator + - uid: 17956 + components: + - type: Transform + pos: -11.5,44.5 + parent: 2 + - type: WarpPoint + location: SMES + - uid: 17957 + components: + - type: Transform + pos: -12.5,56.5 + parent: 2 + - type: WarpPoint + location: Brig + - uid: 17958 + components: + - type: Transform + pos: -4.5,57.5 + parent: 2 + - type: WarpPoint + location: BrigMed + - uid: 17959 + components: + - type: Transform + pos: -16.5,69.5 + parent: 2 + - type: WarpPoint + location: Armory + - uid: 17960 + components: + - type: Transform + pos: -17.5,61.5 + parent: 2 + - type: WarpPoint + location: Warden + - uid: 17961 + components: + - type: Transform + pos: -23.5,67.5 + parent: 2 + - type: WarpPoint + location: Sec lockers + - uid: 17962 + components: + - type: Transform + pos: -30.5,66.5 + parent: 2 + - type: WarpPoint + location: Perma + - uid: 17963 + components: + - type: Transform + pos: -33.5,37.5 + parent: 2 + - type: WarpPoint + location: TeleComms + - uid: 17964 + components: + - type: Transform + pos: 2.5,75.5 + parent: 2 + - type: WarpPoint + location: North Park + - uid: 17965 + components: + - type: Transform + pos: 11.5,54.5 + parent: 2 + - type: WarpPoint + location: Chapel + - uid: 17966 + components: + - type: Transform + pos: 18.5,53.5 + parent: 2 + - type: WarpPoint + location: Library + - uid: 17967 + components: + - type: Transform + pos: 30.5,54.5 + parent: 2 + - type: WarpPoint + location: Vault + - uid: 17968 + components: + - type: Transform + pos: 34.5,53.5 + parent: 2 + - type: WarpPoint + location: GateWay + - uid: 17969 + components: + - type: Transform + pos: 55.5,37.5 + parent: 2 + - type: WarpPoint + location: Cafeteria + - uid: 17970 + components: + - type: Transform + pos: 75.5,43.5 + parent: 2 + - type: WarpPoint + location: EVA + - uid: 17971 + components: + - type: Transform + pos: 85.5,33.5 + parent: 2 + - type: WarpPoint + location: Bridge + - uid: 17972 + components: + - type: Transform + pos: 76.5,30.5 + parent: 2 + - type: WarpPoint + location: Cap office + - uid: 17973 + components: + - type: Transform + pos: 73.5,3.5 + parent: 2 + - type: WarpPoint + location: Arrivals + - uid: 17974 + components: + - type: Transform + pos: 51.5,-2.5 + parent: 2 + - type: WarpPoint + location: Anomaly/Slime Farm + - uid: 17975 + components: + - type: Transform + pos: 52.5,16.5 + parent: 2 + - type: WarpPoint + location: RD office + - uid: 17976 + components: + - type: Transform + pos: 54.5,26.5 + parent: 2 + - type: WarpPoint + location: Epistemics +- proto: WarpPointCryo + entities: + - uid: 17980 + components: + - type: Transform + pos: 10.5,35.5 + parent: 2 +- proto: WaterCooler + entities: + - uid: 8321 + components: + - type: Transform + pos: 70.5,23.5 + parent: 2 + - uid: 17999 + components: + - type: Transform + pos: 30.5,3.5 + parent: 2 + - uid: 18000 + components: + - type: Transform + pos: 45.5,62.5 + parent: 2 +- proto: WaterTankFull + entities: + - uid: 18001 + components: + - type: Transform + pos: 5.5,23.5 + parent: 2 + - uid: 18002 + components: + - type: Transform + pos: 36.5,21.5 + parent: 2 + - uid: 18003 + components: + - type: Transform + pos: -8.5,34.5 + parent: 2 + - uid: 18004 + components: + - type: Transform + pos: -6.5,40.5 + parent: 2 + - uid: 18005 + components: + - type: Transform + pos: 18.5,4.5 + parent: 2 + - uid: 18006 + components: + - type: Transform + pos: 58.5,31.5 + parent: 2 + - uid: 18007 + components: + - type: Transform + pos: 72.5,62.5 + parent: 2 + - uid: 18008 + components: + - type: Transform + pos: 29.5,66.5 + parent: 2 + - uid: 18009 + components: + - type: Transform + pos: 45.5,58.5 + parent: 2 + - uid: 18010 + components: + - type: Transform + pos: 44.5,58.5 + parent: 2 + - uid: 18011 + components: + - type: Transform + pos: 52.5,57.5 + parent: 2 + - uid: 18012 + components: + - type: Transform + pos: 46.5,50.5 + parent: 2 +- proto: WaterTankHighCapacity + entities: + - uid: 18013 + components: + - type: Transform + pos: 48.5,37.5 + parent: 2 + - uid: 18014 + components: + - type: Transform + pos: 47.5,37.5 + parent: 2 + - uid: 18015 + components: + - type: Transform + pos: 39.5,52.5 + parent: 2 + - uid: 18756 + components: + - type: Transform + pos: -24.5,16.5 + parent: 2 +- proto: WaterVaporCanister + entities: + - uid: 18016 + components: + - type: Transform + pos: 35.5,17.5 + parent: 2 + - uid: 18017 + components: + - type: Transform + pos: 36.5,17.5 + parent: 2 +- proto: WeaponCapacitorRecharger + entities: + - uid: 18018 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 3.5,27.5 + parent: 2 + - uid: 18020 + components: + - type: Transform + pos: -3.5,15.5 + parent: 2 + - uid: 18021 + components: + - type: Transform + pos: -4.5,29.5 + parent: 2 + - uid: 18022 + components: + - type: Transform + pos: -16.5,60.5 + parent: 2 + - uid: 18023 + components: + - type: Transform + pos: -25.5,61.5 + parent: 2 + - uid: 18024 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 46.5,14.5 + parent: 2 + - uid: 18025 + components: + - type: Transform + pos: 82.5,33.5 + parent: 2 + - uid: 18026 + components: + - type: Transform + pos: 70.5,13.5 + parent: 2 +- proto: WeaponLaserCarbine + entities: + - uid: 18027 + components: + - type: Transform + pos: -19.609697,69.7698 + parent: 2 + - uid: 18028 + components: + - type: Transform + pos: -19.268963,69.644356 + parent: 2 + - uid: 18029 + components: + - type: Transform + pos: -19.645565,69.518906 + parent: 2 + - uid: 18030 + components: + - type: Transform + pos: -19.268963,69.393456 + parent: 2 +- proto: WeaponPistolMk58 + entities: + - uid: 18031 + components: + - type: Transform + pos: -17.601858,68.653786 + parent: 2 + - uid: 18032 + components: + - type: Transform + pos: -17.494259,68.56418 + parent: 2 + - uid: 18033 + components: + - type: Transform + pos: -17.35079,68.42081 + parent: 2 +- proto: WeaponRifleLecter + entities: + - uid: 18034 + components: + - type: Transform + pos: -15.664352,70.734 + parent: 2 + - uid: 18035 + components: + - type: Transform + pos: -15.485018,70.60855 + parent: 2 + - uid: 18036 + components: + - type: Transform + pos: -15.664352,70.411415 + parent: 2 + - uid: 18037 + components: + - type: Transform + pos: -15.405928,70.28039 + parent: 2 +- proto: WeaponSubMachineGunDrozd + entities: + - uid: 18038 + components: + - type: Transform + pos: -14.389482,67.54267 + parent: 2 + - uid: 18039 + components: + - type: Transform + pos: -14.28188,67.363464 + parent: 2 + - uid: 18040 + components: + - type: Transform + pos: -14.5329485,67.76181 + parent: 2 +- proto: WeaponTurretSyndicateBroken + entities: + - uid: 18041 + components: + - type: Transform + pos: 37.5,28.5 + parent: 2 + - uid: 18042 + components: + - type: Transform + pos: 42.5,29.5 + parent: 2 + - uid: 18043 + components: + - type: Transform + pos: 42.5,27.5 + parent: 2 + - uid: 18044 + components: + - type: Transform + pos: 24.5,-8.5 + parent: 2 + - uid: 18045 + components: + - type: Transform + pos: 29.5,-8.5 + parent: 2 + - uid: 18046 + components: + - type: Transform + pos: 29.5,-14.5 + parent: 2 + - uid: 18047 + components: + - type: Transform + pos: 24.5,-14.5 + parent: 2 +- proto: WelderIndustrialAdvanced + entities: + - uid: 18048 + components: + - type: Transform + pos: -7.250613,24.386929 + parent: 2 +- proto: WeldingFuelTankFull + entities: + - uid: 18049 + components: + - type: Transform + pos: 4.5,23.5 + parent: 2 + - uid: 18050 + components: + - type: Transform + pos: -7.5,31.5 + parent: 2 + - uid: 18051 + components: + - type: Transform + pos: 59.5,31.5 + parent: 2 + - uid: 18052 + components: + - type: Transform + pos: 28.5,5.5 + parent: 2 + - uid: 18053 + components: + - type: Transform + pos: 72.5,59.5 + parent: 2 + - uid: 18054 + components: + - type: Transform + pos: 70.5,42.5 + parent: 2 + - uid: 18055 + components: + - type: Transform + pos: 75.5,18.5 + parent: 2 + - uid: 18056 + components: + - type: Transform + pos: 12.5,8.5 + parent: 2 + - uid: 18057 + components: + - type: Transform + pos: 13.5,8.5 + parent: 2 + - uid: 18058 + components: + - type: Transform + pos: 26.5,5.5 + parent: 2 + - uid: 18059 + components: + - type: Transform + pos: 54.5,9.5 + parent: 2 + - uid: 18060 + components: + - type: Transform + pos: 80.5,46.5 + parent: 2 + - uid: 18061 + components: + - type: Transform + pos: 73.5,50.5 + parent: 2 + - uid: 18062 + components: + - type: Transform + pos: 79.5,55.5 + parent: 2 + - uid: 18063 + components: + - type: Transform + pos: 50.5,57.5 + parent: 2 + - uid: 18064 + components: + - type: Transform + pos: 49.5,57.5 + parent: 2 + - uid: 18065 + components: + - type: Transform + pos: 45.5,60.5 + parent: 2 + - uid: 18066 + components: + - type: Transform + pos: 44.5,60.5 + parent: 2 + - uid: 18067 + components: + - type: Transform + pos: 45.5,50.5 + parent: 2 + - uid: 18068 + components: + - type: Transform + pos: 37.5,60.5 + parent: 2 + - uid: 18069 + components: + - type: Transform + pos: 22.5,66.5 + parent: 2 + - uid: 18070 + components: + - type: Transform + pos: 1.5,78.5 + parent: 2 + - uid: 18071 + components: + - type: Transform + pos: 35.5,21.5 + parent: 2 +- proto: Windoor + entities: + - uid: 18072 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -4.5,6.5 + parent: 2 + - uid: 18073 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -6.5,20.5 + parent: 2 + - uid: 18074 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 11.5,14.5 + parent: 2 + - uid: 18075 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 7.5,14.5 + parent: 2 + - uid: 18076 + components: + - type: Transform + pos: -15.5,59.5 + parent: 2 + - uid: 18077 + components: + - type: Transform + pos: -15.5,50.5 + parent: 2 + - uid: 18078 + components: + - type: Transform + pos: -14.5,50.5 + parent: 2 + - uid: 18079 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -13.5,51.5 + parent: 2 + - uid: 18080 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -13.5,52.5 + parent: 2 + - uid: 18081 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 7.5,5.5 + parent: 2 + - uid: 18082 + components: + - type: Transform + pos: 8.5,5.5 + parent: 2 + - uid: 18083 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 51.5,25.5 + parent: 2 + - uid: 18084 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 55.5,23.5 + parent: 2 + - uid: 18085 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 49.5,39.5 + parent: 2 + - uid: 18086 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 49.5,38.5 + parent: 2 + - uid: 18087 + components: + - type: Transform + pos: 45.5,36.5 + parent: 2 + - uid: 18088 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 71.5,37.5 + parent: 2 + - uid: 18089 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 71.5,40.5 + parent: 2 + - uid: 18090 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 73.5,40.5 + parent: 2 + - uid: 18091 + components: + - type: Transform + pos: 72.5,12.5 + parent: 2 +- proto: WindoorHydroponicsLocked + entities: + - uid: 18092 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 49.5,39.5 + parent: 2 + - uid: 18093 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 49.5,38.5 + parent: 2 + - uid: 18094 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 45.5,36.5 + parent: 2 +- proto: WindoorKitchenHydroponicsLocked + entities: + - uid: 18095 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 51.5,43.5 + parent: 2 + - uid: 18096 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 51.5,43.5 + parent: 2 +- proto: WindoorSecure + entities: + - uid: 18097 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -34.5,63.5 + parent: 2 +- proto: WindoorSecureArmoryLocked + entities: + - uid: 18098 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -17.5,65.5 + parent: 2 + - uid: 18099 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -16.5,65.5 + parent: 2 + - uid: 18100 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -16.5,65.5 + parent: 2 + - uid: 18101 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -14.5,65.5 + parent: 2 + - uid: 18102 + components: + - type: Transform + pos: -17.5,65.5 + parent: 2 + - uid: 18103 + components: + - type: Transform + pos: -16.5,65.5 + parent: 2 + - uid: 18104 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -13.5,64.5 + parent: 2 + - uid: 18105 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -14.5,68.5 + parent: 2 + - uid: 18106 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -14.5,67.5 + parent: 2 + - uid: 18107 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -19.5,68.5 + parent: 2 + - uid: 18108 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -19.5,67.5 + parent: 2 + - uid: 18109 + components: + - type: Transform + pos: -17.5,70.5 + parent: 2 + - uid: 18110 + components: + - type: Transform + pos: -16.5,70.5 + parent: 2 + - uid: 18111 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -19.5,66.5 + parent: 2 + - type: DeviceLinkSource + lastSignals: + DoorStatus: True + - type: Door + secondsUntilStateChange: -79958.195 + state: Opening + - uid: 18112 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -15.5,59.5 + parent: 2 +- proto: WindoorSecureAtmosphericsLocked + entities: + - uid: 18113 + components: + - type: Transform + pos: -18.5,20.5 + parent: 2 + - uid: 18114 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -6.5,20.5 + parent: 2 + - uid: 18115 + components: + - type: Transform + pos: 20.5,45.5 + parent: 2 +- proto: WindoorSecureCargoLocked + entities: + - uid: 18116 + components: + - type: Transform + pos: 7.5,14.5 + parent: 2 + - uid: 18117 + components: + - type: Transform + pos: 11.5,14.5 + parent: 2 + - uid: 18118 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -12.5,9.5 + parent: 2 +- proto: WindoorSecureChapelLocked + entities: + - uid: 18119 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 21.5,63.5 + parent: 2 +- proto: WindoorSecureChemistryLocked + entities: + - uid: 18120 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 13.5,23.5 + parent: 2 + - uid: 18121 + components: + - type: Transform + pos: 12.5,29.5 + parent: 2 +- proto: WindoorSecureCommandLocked + entities: + - uid: 257 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 72.5,29.5 + parent: 2 + - uid: 5987 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 72.5,31.5 + parent: 2 + - uid: 14896 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 72.5,28.5 + parent: 2 + - uid: 17016 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 40.5,-11.5 + parent: 2 + - uid: 18122 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 34.5,0.5 + parent: 2 + - uid: 18123 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 32.5,-5.5 + parent: 2 + - uid: 18124 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 31.5,-5.5 + parent: 2 + - uid: 18125 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 35.5,-6.5 + parent: 2 + - uid: 18126 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 34.5,-6.5 + parent: 2 + - uid: 18127 + components: + - type: Transform + pos: 40.5,-11.5 + parent: 2 + - uid: 18129 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 35.5,-16.5 + parent: 2 + - uid: 18130 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 34.5,-16.5 + parent: 2 + - uid: 18131 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 32.5,-17.5 + parent: 2 + - uid: 18132 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 31.5,-17.5 + parent: 2 + - uid: 18133 + components: + - type: Transform + pos: 20.5,-11.5 + parent: 2 + - uid: 18134 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 20.5,-11.5 + parent: 2 +- proto: WindoorSecureEngineeringLocked + entities: + - uid: 18135 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -1.5,35.5 + parent: 2 + - uid: 18136 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 22.5,44.5 + parent: 2 +- proto: WindoorSecureHeadOfPersonnelLocked + entities: + - uid: 18137 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 73.5,40.5 + parent: 2 +- proto: WindoorSecureMailLocked + entities: + - uid: 18138 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -4.5,6.5 + parent: 2 +- proto: WindoorSecureMedicalLocked + entities: + - uid: 18139 + components: + - type: Transform + pos: 15.5,32.5 + parent: 2 + - uid: 18140 + components: + - type: Transform + pos: 16.5,32.5 + parent: 2 + - uid: 18141 + components: + - type: Transform + pos: -4.5,57.5 + parent: 2 + - uid: 18143 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 28.5,39.5 + parent: 2 + - uid: 18144 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 28.5,40.5 + parent: 2 + - uid: 18145 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 28.5,42.5 + parent: 2 + - uid: 18146 + components: + - type: Transform + pos: 7.5,46.5 + parent: 2 +- proto: WindoorSecureSalvageLocked + entities: + - uid: 18147 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -12.5,9.5 + parent: 2 +- proto: WindoorSecureScienceLocked + entities: + - uid: 18148 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 48.5,0.5 + parent: 2 + - uid: 18149 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 48.5,3.5 + parent: 2 + - uid: 18150 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 48.5,-2.5 + parent: 2 + - uid: 18151 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 54.5,-2.5 + parent: 2 + - uid: 18152 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 54.5,0.5 + parent: 2 + - uid: 18153 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 54.5,3.5 + parent: 2 + - uid: 18154 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 51.5,-4.5 + parent: 2 + - uid: 18155 + components: + - type: Transform + pos: 51.5,-5.5 + parent: 2 + - uid: 18156 + components: + - type: Transform + pos: 55.5,23.5 + parent: 2 + - uid: 18157 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 51.5,25.5 + parent: 2 + - uid: 18158 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 30.5,28.5 + parent: 2 + - uid: 18159 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 28.5,25.5 + parent: 2 + - uid: 18673 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 53.5,6.5 + parent: 2 + - type: DeviceLinkSink + invokeCounter: 1 + links: + - 18674 + - type: DeviceLinkSource + linkedPorts: + 18674: + - DoorStatus: DoorBolt + - uid: 18674 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 53.5,6.5 + parent: 2 + - type: DeviceLinkSink + invokeCounter: 1 + links: + - 18673 + - type: DeviceLinkSource + linkedPorts: + 18673: + - DoorStatus: DoorBolt + - uid: 19278 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 48.5,3.5 + parent: 2 + - uid: 19279 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 48.5,0.5 + parent: 2 + - uid: 19280 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 48.5,-2.5 + parent: 2 + - uid: 19281 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 54.5,-2.5 + parent: 2 + - uid: 19282 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 54.5,0.5 + parent: 2 + - uid: 19283 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 54.5,3.5 + parent: 2 +- proto: WindoorSecureSecurityLawyerLocked + entities: + - uid: 18160 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 37.5,29.5 + parent: 2 + - uid: 18161 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 37.5,27.5 + parent: 2 + - uid: 18162 + components: + - type: Transform + pos: 38.5,30.5 + parent: 2 +- proto: WindoorSecureSecurityLocked + entities: + - uid: 18163 + components: + - type: Transform + pos: -8.5,53.5 + parent: 2 + - uid: 18164 + components: + - type: Transform + pos: -4.5,53.5 + parent: 2 + - uid: 18165 + components: + - type: Transform + pos: -0.5,53.5 + parent: 2 + - uid: 18166 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -30.5,52.5 + parent: 2 + - uid: 18167 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -5.5,67.5 + parent: 2 + - uid: 18168 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -13.5,52.5 + parent: 2 + - uid: 18169 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -13.5,51.5 + parent: 2 + - uid: 18170 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -14.5,50.5 + parent: 2 + - uid: 18171 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -15.5,50.5 + parent: 2 + - uid: 18172 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 72.5,12.5 + parent: 2 +- proto: WindoorServiceLocked + entities: + - uid: 18173 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 19.5,56.5 + parent: 2 +- proto: WindoorTheatreLocked + entities: + - uid: 18174 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 38.5,40.5 + parent: 2 +- proto: Window + entities: + - uid: 18175 + components: + - type: Transform + pos: 14.5,33.5 + parent: 2 + - uid: 18176 + components: + - type: Transform + pos: 16.5,33.5 + parent: 2 + - uid: 18177 + components: + - type: Transform + pos: 17.5,33.5 + parent: 2 + - uid: 18178 + components: + - type: Transform + pos: 13.5,32.5 + parent: 2 + - uid: 18179 + components: + - type: Transform + pos: 13.5,33.5 + parent: 2 + - uid: 18180 + components: + - type: Transform + pos: -17.5,-2.5 + parent: 2 + - uid: 18181 + components: + - type: Transform + pos: 5.5,12.5 + parent: 2 + - uid: 18182 + components: + - type: Transform + pos: 9.5,13.5 + parent: 2 + - uid: 18183 + components: + - type: Transform + pos: 6.5,18.5 + parent: 2 + - uid: 18184 + components: + - type: Transform + pos: 9.5,18.5 + parent: 2 + - uid: 18185 + components: + - type: Transform + pos: 12.5,18.5 + parent: 2 + - uid: 18186 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 15.5,33.5 + parent: 2 + - uid: 18187 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 7.5,56.5 + parent: 2 + - uid: 18188 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 7.5,55.5 + parent: 2 + - uid: 18189 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 22.5,18.5 + parent: 2 + - uid: 18190 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 24.5,18.5 + parent: 2 + - uid: 18191 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 26.5,18.5 + parent: 2 + - uid: 18192 + components: + - type: Transform + pos: 34.5,-1.5 + parent: 2 + - uid: 18193 + components: + - type: Transform + pos: 34.5,-0.5 + parent: 2 + - uid: 18194 + components: + - type: Transform + pos: 57.5,29.5 + parent: 2 + - uid: 18195 + components: + - type: Transform + pos: 59.5,32.5 + parent: 2 + - uid: 18196 + components: + - type: Transform + pos: 60.5,32.5 + parent: 2 + - uid: 18197 + components: + - type: Transform + pos: 61.5,32.5 + parent: 2 + - uid: 18198 + components: + - type: Transform + pos: 63.5,29.5 + parent: 2 + - uid: 18199 + components: + - type: Transform + pos: 12.5,50.5 + parent: 2 + - uid: 18200 + components: + - type: Transform + pos: 13.5,50.5 + parent: 2 + - uid: 18201 + components: + - type: Transform + pos: 17.5,50.5 + parent: 2 + - uid: 18202 + components: + - type: Transform + pos: 19.5,50.5 + parent: 2 + - uid: 18203 + components: + - type: Transform + pos: 21.5,50.5 + parent: 2 + - uid: 18204 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 40.5,36.5 + parent: 2 + - uid: 18205 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 39.5,36.5 + parent: 2 + - uid: 18206 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 37.5,36.5 + parent: 2 + - uid: 18207 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 36.5,36.5 + parent: 2 +- proto: WindowDirectional + entities: + - uid: 18208 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 7.5,69.5 + parent: 2 + - uid: 18209 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 7.5,69.5 + parent: 2 + - uid: 18210 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 8.5,69.5 + parent: 2 + - uid: 18211 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 7.5,66.5 + parent: 2 + - uid: 18212 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 67.5,58.5 + parent: 2 + - uid: 18213 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 67.5,58.5 + parent: 2 +- proto: WindowFrostedDirectional + entities: + - uid: 18214 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 5.5,35.5 + parent: 2 + - uid: 18215 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 36.5,11.5 + parent: 2 +- proto: WindowReinforcedDirectional + entities: + - uid: 7315 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 20.5,23.5 + parent: 2 + - uid: 8117 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 72.5,27.5 + parent: 2 + - uid: 8288 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -35.5,69.5 + parent: 2 + - uid: 8528 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -34.5,69.5 + parent: 2 + - uid: 9222 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -24.5,40.5 + parent: 2 + - uid: 9305 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -19.5,40.5 + parent: 2 + - uid: 11158 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -20.5,40.5 + parent: 2 + - uid: 12598 + components: + - type: Transform + pos: -21.5,41.5 + parent: 2 + - uid: 13678 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -23.5,40.5 + parent: 2 + - uid: 13680 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -22.5,40.5 + parent: 2 + - uid: 14758 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -24.5,16.5 + parent: 2 + - uid: 15237 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 72.5,30.5 + parent: 2 + - uid: 17834 + components: + - type: Transform + pos: -22.5,41.5 + parent: 2 + - uid: 18142 + components: + - type: Transform + pos: -5.5,57.5 + parent: 2 + - uid: 18216 + components: + - type: Transform + pos: 33.5,-4.5 + parent: 2 + - uid: 18217 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 17.5,32.5 + parent: 2 + - uid: 18218 + components: + - type: Transform + pos: 14.5,32.5 + parent: 2 + - uid: 18219 + components: + - type: Transform + pos: -18.5,36.5 + parent: 2 + - uid: 18220 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -21.5,35.5 + parent: 2 + - uid: 18221 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -21.5,34.5 + parent: 2 + - uid: 18222 + components: + - type: Transform + pos: -20.5,36.5 + parent: 2 + - uid: 18223 + components: + - type: Transform + pos: -19.5,36.5 + parent: 2 + - uid: 18224 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -21.5,33.5 + parent: 2 + - uid: 18225 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -19.5,32.5 + parent: 2 + - uid: 18226 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -18.5,32.5 + parent: 2 + - uid: 18227 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -20.5,32.5 + parent: 2 + - uid: 18228 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -27.5,5.5 + parent: 2 + - uid: 18229 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -21.5,39.5 + parent: 2 + - uid: 18230 + components: + - type: Transform + pos: -22.5,40.5 + parent: 2 + - uid: 18231 + components: + - type: Transform + pos: 47.5,-0.5 + parent: 2 + - uid: 18232 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -22.5,39.5 + parent: 2 + - uid: 18233 + components: + - type: Transform + pos: -21.5,40.5 + parent: 2 + - uid: 18234 + components: + - type: Transform + pos: -23.5,41.5 + parent: 2 + - uid: 18236 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -20.5,39.5 + parent: 2 + - uid: 18237 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -23.5,39.5 + parent: 2 + - uid: 18239 + components: + - type: Transform + pos: -20.5,40.5 + parent: 2 + - uid: 18240 + components: + - type: Transform + pos: -23.5,40.5 + parent: 2 + - uid: 18241 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 48.5,1.5 + parent: 2 + - uid: 18242 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 48.5,2.5 + parent: 2 + - uid: 18243 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 48.5,-0.5 + parent: 2 + - uid: 18244 + components: + - type: Transform + pos: 47.5,2.5 + parent: 2 + - uid: 18245 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -21.5,40.5 + parent: 2 + - uid: 18246 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -20.5,40.5 + parent: 2 + - uid: 18247 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -23.5,40.5 + parent: 2 + - uid: 18249 + components: + - type: Transform + pos: -20.5,41.5 + parent: 2 + - uid: 18250 + components: + - type: Transform + pos: -26.5,21.5 + parent: 2 + - uid: 18251 + components: + - type: Transform + pos: -27.5,21.5 + parent: 2 + - uid: 18252 + components: + - type: Transform + pos: -28.5,21.5 + parent: 2 + - uid: 18253 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -28.5,20.5 + parent: 2 + - uid: 18254 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -27.5,20.5 + parent: 2 + - uid: 18255 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -26.5,20.5 + parent: 2 + - uid: 18256 + components: + - type: Transform + pos: -33.5,6.5 + parent: 2 + - uid: 18257 + components: + - type: Transform + pos: -32.5,6.5 + parent: 2 + - uid: 18258 + components: + - type: Transform + pos: -31.5,6.5 + parent: 2 + - uid: 18259 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -34.5,7.5 + parent: 2 + - uid: 18260 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -34.5,8.5 + parent: 2 + - uid: 18261 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -34.5,9.5 + parent: 2 + - uid: 18262 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -34.5,11.5 + parent: 2 + - uid: 18263 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -34.5,12.5 + parent: 2 + - uid: 18264 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -34.5,13.5 + parent: 2 + - uid: 18265 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -34.5,15.5 + parent: 2 + - uid: 18266 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -34.5,16.5 + parent: 2 + - uid: 18267 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -34.5,17.5 + parent: 2 + - uid: 18268 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -34.5,19.5 + parent: 2 + - uid: 18269 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -34.5,20.5 + parent: 2 + - uid: 18270 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -34.5,21.5 + parent: 2 + - uid: 18271 + components: + - type: Transform + pos: -29.5,6.5 + parent: 2 + - uid: 18272 + components: + - type: Transform + pos: -28.5,6.5 + parent: 2 + - uid: 18273 + components: + - type: Transform + pos: -27.5,6.5 + parent: 2 + - uid: 18274 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -28.5,5.5 + parent: 2 + - uid: 18275 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -29.5,5.5 + parent: 2 + - uid: 18276 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -31.5,5.5 + parent: 2 + - uid: 18277 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -32.5,5.5 + parent: 2 + - uid: 18278 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -33.5,5.5 + parent: 2 + - uid: 18279 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -35.5,7.5 + parent: 2 + - uid: 18280 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -35.5,8.5 + parent: 2 + - uid: 18281 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -35.5,9.5 + parent: 2 + - uid: 18282 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -35.5,11.5 + parent: 2 + - uid: 18283 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -35.5,12.5 + parent: 2 + - uid: 18284 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -35.5,13.5 + parent: 2 + - uid: 18285 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -35.5,15.5 + parent: 2 + - uid: 18286 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -35.5,16.5 + parent: 2 + - uid: 18287 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -35.5,17.5 + parent: 2 + - uid: 18288 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -35.5,19.5 + parent: 2 + - uid: 18289 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -35.5,20.5 + parent: 2 + - uid: 18290 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -35.5,21.5 + parent: 2 + - uid: 18291 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -17.5,20.5 + parent: 2 + - uid: 18292 + components: + - type: Transform + pos: -17.5,20.5 + parent: 2 + - uid: 18293 + components: + - type: Transform + pos: -3.5,57.5 + parent: 2 + - uid: 18294 + components: + - type: Transform + pos: -19.5,20.5 + parent: 2 + - uid: 18295 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 48.5,4.5 + parent: 2 + - uid: 18296 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 48.5,-1.5 + parent: 2 + - uid: 18297 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 48.5,-3.5 + parent: 2 + - uid: 18298 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 54.5,-3.5 + parent: 2 + - uid: 18299 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 54.5,-1.5 + parent: 2 + - uid: 18300 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 54.5,-0.5 + parent: 2 + - uid: 18301 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 54.5,1.5 + parent: 2 + - uid: 18302 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 54.5,2.5 + parent: 2 + - uid: 18303 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 54.5,4.5 + parent: 2 + - uid: 18304 + components: + - type: Transform + pos: 46.5,2.5 + parent: 2 + - uid: 18305 + components: + - type: Transform + pos: 45.5,2.5 + parent: 2 + - uid: 18306 + components: + - type: Transform + pos: 46.5,-0.5 + parent: 2 + - uid: 18307 + components: + - type: Transform + pos: 45.5,-0.5 + parent: 2 + - uid: 18308 + components: + - type: Transform + pos: 55.5,-0.5 + parent: 2 + - uid: 18309 + components: + - type: Transform + pos: 56.5,-0.5 + parent: 2 + - uid: 18310 + components: + - type: Transform + pos: 57.5,-0.5 + parent: 2 + - uid: 18311 + components: + - type: Transform + pos: 55.5,2.5 + parent: 2 + - uid: 18312 + components: + - type: Transform + pos: 56.5,2.5 + parent: 2 + - uid: 18313 + components: + - type: Transform + pos: 57.5,2.5 + parent: 2 + - uid: 18314 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 53.5,36.5 + parent: 2 + - uid: 18315 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 53.5,36.5 + parent: 2 + - uid: 18316 + components: + - type: Transform + pos: 53.5,36.5 + parent: 2 + - uid: 18317 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 54.5,36.5 + parent: 2 + - uid: 18318 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 54.5,36.5 + parent: 2 + - uid: 18319 + components: + - type: Transform + pos: 54.5,36.5 + parent: 2 + - uid: 18320 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 67.5,38.5 + parent: 2 + - uid: 18321 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 67.5,38.5 + parent: 2 + - uid: 18322 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 68.5,36.5 + parent: 2 + - uid: 18323 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 67.5,39.5 + parent: 2 + - uid: 18324 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 67.5,36.5 + parent: 2 + - uid: 18325 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 67.5,37.5 + parent: 2 + - uid: 18326 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 67.5,37.5 + parent: 2 + - uid: 18327 + components: + - type: Transform + pos: 68.5,36.5 + parent: 2 + - uid: 18328 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 68.5,36.5 + parent: 2 + - uid: 18329 + components: + - type: Transform + pos: 67.5,36.5 + parent: 2 + - uid: 18330 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 67.5,39.5 + parent: 2 + - uid: 18331 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 71.5,39.5 + parent: 2 + - uid: 18332 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 71.5,39.5 + parent: 2 + - uid: 18333 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 71.5,38.5 + parent: 2 + - uid: 18334 + components: + - type: Transform + pos: 71.5,38.5 + parent: 2 + - uid: 18335 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 71.5,38.5 + parent: 2 + - uid: 18336 + components: + - type: Transform + pos: -10.5,21.5 + parent: 2 + - uid: 18337 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -19.5,68.5 + parent: 2 + - uid: 18338 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -17.5,70.5 + parent: 2 + - uid: 18339 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -16.5,70.5 + parent: 2 + - uid: 18340 + components: + - type: Transform + pos: -14.5,67.5 + parent: 2 + - uid: 18341 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -14.5,68.5 + parent: 2 + - uid: 18342 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 7.5,5.5 + parent: 2 + - uid: 18343 + components: + - type: Transform + pos: 7.5,5.5 + parent: 2 + - uid: 18344 + components: + - type: Transform + pos: 9.5,5.5 + parent: 2 + - uid: 18345 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 10.5,4.5 + parent: 2 + - uid: 18346 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 10.5,3.5 + parent: 2 + - uid: 18347 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 9.5,2.5 + parent: 2 + - uid: 18348 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -34.5,64.5 + parent: 2 + - uid: 18349 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 21.5,62.5 + parent: 2 + - uid: 18350 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 47.5,37.5 + parent: 2 + - uid: 18351 + components: + - type: Transform + pos: 38.5,39.5 + parent: 2 + - uid: 18352 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 38.5,39.5 + parent: 2 + - uid: 18353 + components: + - type: Transform + pos: 39.5,39.5 + parent: 2 + - uid: 18354 + components: + - type: Transform + pos: 40.5,39.5 + parent: 2 + - uid: 18355 + components: + - type: Transform + pos: 41.5,39.5 + parent: 2 + - uid: 18356 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 37.5,29.5 + parent: 2 + - uid: 18357 + components: + - type: Transform + pos: 37.5,29.5 + parent: 2 + - uid: 18358 + components: + - type: Transform + pos: 37.5,27.5 + parent: 2 + - uid: 18359 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 37.5,27.5 + parent: 2 + - uid: 18360 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 37.5,27.5 + parent: 2 + - uid: 18361 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 37.5,29.5 + parent: 2 + - uid: 18362 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 27.5,23.5 + parent: 2 + - uid: 18363 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 27.5,24.5 + parent: 2 + - uid: 18364 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 27.5,25.5 + parent: 2 + - uid: 18365 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 29.5,25.5 + parent: 2 + - uid: 18366 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 27.5,25.5 + parent: 2 + - uid: 18367 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 22.5,23.5 + parent: 2 + - uid: 18368 + components: + - type: Transform + pos: 17.5,32.5 + parent: 2 + - uid: 18369 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 28.5,38.5 + parent: 2 + - uid: 18370 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 28.5,39.5 + parent: 2 + - uid: 18371 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 29.5,39.5 + parent: 2 + - uid: 18372 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 28.5,41.5 + parent: 2 + - uid: 18373 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 28.5,41.5 + parent: 2 + - uid: 18374 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 29.5,41.5 + parent: 2 + - uid: 18375 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 28.5,43.5 + parent: 2 + - uid: 18376 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 28.5,43.5 + parent: 2 + - uid: 18377 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 29.5,43.5 + parent: 2 + - uid: 18378 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 20.5,45.5 + parent: 2 + - uid: 18379 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 32.5,18.5 + parent: 2 + - uid: 18380 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 33.5,18.5 + parent: 2 + - uid: 18381 + components: + - type: Transform + pos: 32.5,-4.5 + parent: 2 + - uid: 18382 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 30.5,-5.5 + parent: 2 + - uid: 18383 + components: + - type: Transform + pos: 34.5,-4.5 + parent: 2 + - uid: 18384 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 35.5,-5.5 + parent: 2 + - uid: 18385 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 29.5,-5.5 + parent: 2 + - uid: 18386 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 31.5,-5.5 + parent: 2 + - uid: 18387 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 32.5,-5.5 + parent: 2 + - uid: 18388 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 33.5,-5.5 + parent: 2 + - uid: 18389 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 34.5,-5.5 + parent: 2 + - uid: 18390 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 34.5,-5.5 + parent: 2 + - uid: 18391 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 28.5,-5.5 + parent: 2 + - uid: 18392 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 27.5,-5.5 + parent: 2 + - uid: 18393 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 26.5,-5.5 + parent: 2 + - uid: 18394 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 25.5,-5.5 + parent: 2 + - uid: 18395 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 24.5,-5.5 + parent: 2 + - uid: 18396 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 23.5,-5.5 + parent: 2 + - uid: 18397 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 22.5,-5.5 + parent: 2 + - uid: 18398 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 21.5,-5.5 + parent: 2 + - uid: 18399 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 21.5,-5.5 + parent: 2 + - uid: 18400 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 21.5,-17.5 + parent: 2 + - uid: 18401 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 20.5,-6.5 + parent: 2 + - uid: 18402 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 20.5,-6.5 + parent: 2 + - uid: 18403 + components: + - type: Transform + pos: 20.5,-16.5 + parent: 2 + - uid: 18404 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 20.5,-7.5 + parent: 2 + - uid: 18405 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 20.5,-8.5 + parent: 2 + - uid: 18406 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 20.5,-9.5 + parent: 2 + - uid: 18407 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 20.5,-10.5 + parent: 2 + - uid: 18408 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 20.5,-11.5 + parent: 2 + - uid: 18409 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 20.5,-12.5 + parent: 2 + - uid: 18410 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 20.5,-13.5 + parent: 2 + - uid: 18411 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 20.5,-14.5 + parent: 2 + - uid: 18412 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 20.5,-15.5 + parent: 2 + - uid: 18413 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 20.5,-16.5 + parent: 2 + - uid: 18414 + components: + - type: Transform + pos: 21.5,-17.5 + parent: 2 + - uid: 18415 + components: + - type: Transform + pos: 22.5,-17.5 + parent: 2 + - uid: 18416 + components: + - type: Transform + pos: 23.5,-17.5 + parent: 2 + - uid: 18417 + components: + - type: Transform + pos: 24.5,-17.5 + parent: 2 + - uid: 18418 + components: + - type: Transform + pos: 25.5,-17.5 + parent: 2 + - uid: 18419 + components: + - type: Transform + pos: 26.5,-17.5 + parent: 2 + - uid: 18420 + components: + - type: Transform + pos: 27.5,-17.5 + parent: 2 + - uid: 18421 + components: + - type: Transform + pos: 28.5,-17.5 + parent: 2 + - uid: 18422 + components: + - type: Transform + pos: 29.5,-17.5 + parent: 2 + - uid: 18423 + components: + - type: Transform + pos: 30.5,-17.5 + parent: 2 + - uid: 18424 + components: + - type: Transform + pos: 31.5,-17.5 + parent: 2 + - uid: 18425 + components: + - type: Transform + pos: 32.5,-17.5 + parent: 2 + - uid: 18426 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 32.5,-17.5 + parent: 2 + - uid: 18427 + components: + - type: Transform + pos: 33.5,-16.5 + parent: 2 + - uid: 18428 + components: + - type: Transform + pos: 34.5,-16.5 + parent: 2 + - uid: 18429 + components: + - type: Transform + pos: 35.5,-16.5 + parent: 2 + - uid: 18430 + components: + - type: Transform + pos: 36.5,-16.5 + parent: 2 + - uid: 18431 + components: + - type: Transform + pos: 37.5,-16.5 + parent: 2 + - uid: 18432 + components: + - type: Transform + pos: 38.5,-16.5 + parent: 2 + - uid: 18433 + components: + - type: Transform + pos: 39.5,-16.5 + parent: 2 + - uid: 18434 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 39.5,-16.5 + parent: 2 + - uid: 18435 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 35.5,-6.5 + parent: 2 + - uid: 18436 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 36.5,-6.5 + parent: 2 + - uid: 18437 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 37.5,-6.5 + parent: 2 + - uid: 18438 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 38.5,-6.5 + parent: 2 + - uid: 18439 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 39.5,-6.5 + parent: 2 + - uid: 18440 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 39.5,-6.5 + parent: 2 + - uid: 18441 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 40.5,-7.5 + parent: 2 + - uid: 18442 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 40.5,-7.5 + parent: 2 + - uid: 18443 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 40.5,-8.5 + parent: 2 + - uid: 18444 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 40.5,-9.5 + parent: 2 + - uid: 18445 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 40.5,-10.5 + parent: 2 + - uid: 18446 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 40.5,-11.5 + parent: 2 + - uid: 18447 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 40.5,-12.5 + parent: 2 + - uid: 18448 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 40.5,-13.5 + parent: 2 + - uid: 18449 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 40.5,-14.5 + parent: 2 + - uid: 18450 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 40.5,-15.5 + parent: 2 + - uid: 18451 + components: + - type: Transform + pos: 40.5,-15.5 + parent: 2 + - uid: 18452 + components: + - type: Transform + pos: 35.5,-5.5 + parent: 2 + - uid: 18453 + components: + - type: Transform + pos: 36.5,-5.5 + parent: 2 + - uid: 18454 + components: + - type: Transform + pos: 37.5,-5.5 + parent: 2 + - uid: 18455 + components: + - type: Transform + pos: 38.5,-5.5 + parent: 2 + - uid: 18456 + components: + - type: Transform + pos: 39.5,-5.5 + parent: 2 + - uid: 18457 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 40.5,-6.5 + parent: 2 + - uid: 18458 + components: + - type: Transform + pos: 40.5,-6.5 + parent: 2 + - uid: 18459 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 41.5,-7.5 + parent: 2 + - uid: 18460 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 41.5,-8.5 + parent: 2 + - uid: 18461 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 41.5,-9.5 + parent: 2 + - uid: 18462 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 41.5,-10.5 + parent: 2 + - uid: 18463 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 41.5,-11.5 + parent: 2 + - uid: 18464 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 41.5,-12.5 + parent: 2 + - uid: 18465 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 41.5,-13.5 + parent: 2 + - uid: 18466 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 41.5,-14.5 + parent: 2 + - uid: 18467 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 41.5,-15.5 + parent: 2 + - uid: 18468 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 40.5,-16.5 + parent: 2 + - uid: 18469 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 40.5,-16.5 + parent: 2 + - uid: 18470 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 39.5,-17.5 + parent: 2 + - uid: 18471 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 38.5,-17.5 + parent: 2 + - uid: 18472 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 37.5,-17.5 + parent: 2 + - uid: 18473 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 36.5,-17.5 + parent: 2 + - uid: 18474 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 35.5,-17.5 + parent: 2 + - uid: 18475 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 34.5,-17.5 + parent: 2 + - uid: 18476 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 33.5,-17.5 + parent: 2 + - uid: 18477 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 33.5,-17.5 + parent: 2 + - uid: 18478 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 32.5,-18.5 + parent: 2 + - uid: 18479 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 31.5,-18.5 + parent: 2 + - uid: 18480 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 30.5,-18.5 + parent: 2 + - uid: 18481 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 29.5,-18.5 + parent: 2 + - uid: 18482 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 28.5,-18.5 + parent: 2 + - uid: 18483 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 27.5,-18.5 + parent: 2 + - uid: 18484 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 26.5,-18.5 + parent: 2 + - uid: 18485 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 25.5,-18.5 + parent: 2 + - uid: 18486 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 24.5,-18.5 + parent: 2 + - uid: 18487 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 23.5,-18.5 + parent: 2 + - uid: 18488 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 22.5,-18.5 + parent: 2 + - uid: 18489 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 21.5,-18.5 + parent: 2 + - uid: 18490 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 20.5,-17.5 + parent: 2 + - uid: 18491 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 20.5,-17.5 + parent: 2 + - uid: 18492 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 19.5,-16.5 + parent: 2 + - uid: 18493 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 19.5,-15.5 + parent: 2 + - uid: 18494 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 19.5,-14.5 + parent: 2 + - uid: 18495 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 19.5,-13.5 + parent: 2 + - uid: 18496 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 19.5,-12.5 + parent: 2 + - uid: 18497 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 19.5,-11.5 + parent: 2 + - uid: 18498 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 19.5,-10.5 + parent: 2 + - uid: 18499 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 19.5,-9.5 + parent: 2 + - uid: 18500 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 19.5,-8.5 + parent: 2 + - uid: 18501 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 19.5,-7.5 + parent: 2 + - uid: 18502 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 19.5,-6.5 + parent: 2 + - uid: 18503 + components: + - type: Transform + pos: 20.5,-5.5 + parent: 2 + - uid: 18504 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 20.5,-5.5 + parent: 2 + - uid: 18505 + components: + - type: Transform + pos: 21.5,-4.5 + parent: 2 + - uid: 18506 + components: + - type: Transform + pos: 22.5,-4.5 + parent: 2 + - uid: 18507 + components: + - type: Transform + pos: 23.5,-4.5 + parent: 2 + - uid: 18508 + components: + - type: Transform + pos: 24.5,-4.5 + parent: 2 + - uid: 18509 + components: + - type: Transform + pos: 25.5,-4.5 + parent: 2 + - uid: 18510 + components: + - type: Transform + pos: 26.5,-4.5 + parent: 2 + - uid: 18511 + components: + - type: Transform + pos: 27.5,-4.5 + parent: 2 + - uid: 18512 + components: + - type: Transform + pos: 28.5,-4.5 + parent: 2 + - uid: 18513 + components: + - type: Transform + pos: 29.5,-4.5 + parent: 2 + - uid: 18514 + components: + - type: Transform + pos: 30.5,-4.5 + parent: 2 + - uid: 18515 + components: + - type: Transform + pos: 31.5,-4.5 + parent: 2 + - uid: 18753 + components: + - type: Transform + pos: -24.5,14.5 + parent: 2 + - uid: 19266 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 54.5,2.5 + parent: 2 + - uid: 19267 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 54.5,-0.5 + parent: 2 + - uid: 19268 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 54.5,-3.5 + parent: 2 + - uid: 19269 + components: + - type: Transform + pos: 54.5,-1.5 + parent: 2 + - uid: 19270 + components: + - type: Transform + pos: 54.5,1.5 + parent: 2 + - uid: 19271 + components: + - type: Transform + pos: 54.5,4.5 + parent: 2 + - uid: 19272 + components: + - type: Transform + pos: 48.5,4.5 + parent: 2 + - uid: 19273 + components: + - type: Transform + pos: 48.5,1.5 + parent: 2 + - uid: 19274 + components: + - type: Transform + pos: 48.5,-1.5 + parent: 2 + - uid: 19275 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 48.5,-3.5 + parent: 2 + - uid: 19276 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 48.5,-0.5 + parent: 2 + - uid: 19277 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 48.5,2.5 + parent: 2 + - uid: 19473 + components: + - type: Transform + pos: -35.5,66.5 + parent: 2 + - uid: 19474 + components: + - type: Transform + pos: -34.5,66.5 + parent: 2 +- proto: WindowTintedDirectional + entities: + - uid: 18516 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 4.5,35.5 + parent: 2 + - uid: 18517 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 3.5,35.5 + parent: 2 + - uid: 18518 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 3.5,34.5 + parent: 2 + - uid: 18519 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 4.5,34.5 + parent: 2 + - uid: 18520 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 5.5,34.5 + parent: 2 +- proto: WoodDoor + entities: + - uid: 18521 + components: + - type: Transform + pos: 13.5,55.5 + parent: 2 + - uid: 18522 + components: + - type: Transform + pos: 13.5,57.5 + parent: 2 +- proto: WoodenBench + entities: + - uid: 18523 + components: + - type: Transform + pos: 67.5,21.5 + parent: 2 + - uid: 18524 + components: + - type: Transform + pos: 69.5,21.5 + parent: 2 +- proto: Wrench + entities: + - uid: 18525 + components: + - type: Transform + pos: 27.530495,3.5236495 + parent: 2 + - uid: 18526 + components: + - type: Transform + pos: 36.452583,7.5585823 + parent: 2 + - uid: 18527 + components: + - type: Transform + pos: 51.508472,54.48591 + parent: 2 +... diff --git a/Resources/Maps/glacier.yml b/Resources/Maps/glacier.yml index 2cba2930f0..d9e4276b4d 100644 --- a/Resources/Maps/glacier.yml +++ b/Resources/Maps/glacier.yml @@ -52876,8 +52876,6 @@ entities: - HamtrLLeg - HamtrRLeg - VimHarness - - ClothingOuterHardsuitJuggernautReverseEngineered - - ClothingOuterHardsuitSyndieReverseEngineered - JetpackBlue - JetpackMini - proto: ExtinguisherCabinetFilled @@ -109951,16 +109949,6 @@ entities: - type: Transform pos: -15.497394,9.727219 parent: 2 -- proto: WeaponPulsePistol - entities: - - uid: 16290 - components: - - type: MetaData - desc: A state of the art energy pistol bought by the HoS for a year's worth of pay. - name: head of security's prized pulse pistol - - type: Transform - pos: -12.584102,35.560688 - parent: 2 - proto: WeaponTurretSyndicateBroken entities: - uid: 16291 diff --git a/Resources/Maps/hive.yml b/Resources/Maps/hive.yml index a732c83a53..7b63c12d28 100644 --- a/Resources/Maps/hive.yml +++ b/Resources/Maps/hive.yml @@ -171025,17 +171025,6 @@ entities: - type: Transform pos: 82.52527,10.611163 parent: 1 -- proto: WeaponShotgunBulldog - entities: - - uid: 22088 - components: - - type: MetaData - desc: NanoTrasen's attempt at recreating the Syndicate's infamous bulldog, an automatic drum-fed shotgun. The design was rejected for full distribution because it was "More of a rip-off then a remake." Uses .50 shotgun shells. - name: HoS's Prototype Pitbull - - type: Transform - rot: 3.141592653589793 rad - pos: 78.53835,14.484081 - parent: 1 - proto: WeaponTurretSyndicateBroken entities: - uid: 9783 diff --git a/Resources/Maps/radstation.yml b/Resources/Maps/radstation.yml new file mode 100644 index 0000000000..198d27abbc --- /dev/null +++ b/Resources/Maps/radstation.yml @@ -0,0 +1,159523 @@ +meta: + format: 6 + postmapinit: false +tilemap: + 0: Space + 3: FloorAstroGrass + 13: FloorBasalt + 15: FloorBlueCircuit + 17: FloorBrokenWood + 27: FloorDark + 28: FloorDarkDiagonal + 36: FloorDarkPlastic + 38: FloorDirt + 42: FloorFreezer + 2: FloorGlass + 48: FloorGrassLight + 52: FloorGreenCircuit + 60: FloorLino + 1: FloorRGlass + 72: FloorReinforced + 74: FloorRockVault + 75: FloorShowroom + 80: FloorShuttleWhite + 84: FloorSteel + 85: FloorSteelCheckerDark + 92: FloorSteelMono + 96: FloorTechMaint + 97: FloorTechMaint2 + 100: FloorWhite + 109: FloorWhitePlastic + 110: FloorWood + 112: Lattice + 113: Plating +entities: +- proto: "" + entities: + - uid: 1 + components: + - type: MetaData + name: map 190 + - type: Transform + - type: Map + mapPaused: True + - type: PhysicsMap + - type: GridTree + - type: MovedGrids + - type: Broadphase + - type: OccluderTree + - type: LoadedMap + - type: Parallax + parallax: KettleStation + - uid: 2 + components: + - type: MetaData + name: NT-LMSS-T14 "Radstation" + - type: Transform + pos: -0.53153133,-0.45798445 + parent: 1 + - type: MapGrid + chunks: + 0,0: + ind: 0,0 + tiles: AQAAAAAAAQAAAAAAAQAAAAAAYAAAAAAAVAAAAAACVAAAAAAAVAAAAAAAVAAAAAADVAAAAAADVAAAAAADVAAAAAADVAAAAAACVAAAAAABVAAAAAACVAAAAAABVAAAAAACAQAAAAAAAQAAAAAAAQAAAAAAYAAAAAAAVAAAAAABVAAAAAABVAAAAAADVAAAAAAAVAAAAAADVAAAAAADVAAAAAADVAAAAAADVAAAAAACVAAAAAACVAAAAAAAVAAAAAABAQAAAAAAAQAAAAAAAQAAAAAAYAAAAAAAVAAAAAACVAAAAAABVAAAAAACVAAAAAABVAAAAAABVAAAAAAAVAAAAAACVAAAAAABVAAAAAADVAAAAAAAcQAAAAAAVAAAAAABYAAAAAAAYAAAAAAAYAAAAAAAVAAAAAABVAAAAAABVAAAAAACMAAAAAACMAAAAAACMAAAAAADMAAAAAADVAAAAAADVAAAAAABcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAADVAAAAAABVAAAAAABVAAAAAADVAAAAAABVAAAAAADMAAAAAACMAAAAAAAMAAAAAADVAAAAAAAVAAAAAADVAAAAAABcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAACVAAAAAAAVAAAAAACcQAAAAAAcQAAAAAAMAAAAAADMAAAAAACMAAAAAABVAAAAAACVAAAAAADVAAAAAAAVAAAAAADcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAADVAAAAAACVAAAAAACMAAAAAABMAAAAAAAMAAAAAACMAAAAAACMAAAAAADVAAAAAABVAAAAAACVAAAAAACcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAABVAAAAAADVAAAAAADVAAAAAAAMAAAAAAAMAAAAAACMAAAAAADMAAAAAAAVAAAAAAAVAAAAAABVAAAAAADcQAAAAAAcQAAAAAAJgAAAAAAcQAAAAAAcQAAAAAAVAAAAAACVAAAAAABVAAAAAADVAAAAAACMAAAAAABMAAAAAADVAAAAAACVAAAAAACVAAAAAAAVAAAAAADVAAAAAADcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAACVAAAAAABVAAAAAAAVAAAAAABMAAAAAABVAAAAAAAVAAAAAACVAAAAAABVAAAAAAAVAAAAAADVAAAAAACcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAVAAAAAACVAAAAAAAVAAAAAADVAAAAAACVAAAAAABVAAAAAADVAAAAAADcQAAAAAAVAAAAAABcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAACVAAAAAACVAAAAAACVAAAAAACVAAAAAACVAAAAAAAVAAAAAACcQAAAAAAcQAAAAAAVAAAAAAAVAAAAAADVAAAAAADcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAVAAAAAAAVAAAAAADVAAAAAADcQAAAAAAcQAAAAAAGwAAAAACcQAAAAAAVAAAAAAAVAAAAAADVAAAAAABVAAAAAADcQAAAAAAVAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAACVAAAAAABVAAAAAABcQAAAAAAGwAAAAABGwAAAAABcQAAAAAAVAAAAAABVAAAAAACVAAAAAABVAAAAAADcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAGwAAAAAAVAAAAAADVAAAAAABcQAAAAAAcQAAAAAAGwAAAAACGwAAAAACcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAADVAAAAAADVAAAAAACcQAAAAAAcQAAAAAAcQAAAAAAGwAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAcQAAAAAAGwAAAAAAGwAAAAACGwAAAAAAGwAAAAACcQAAAAAAVAAAAAAAVAAAAAACcQAAAAAAVAAAAAACcQAAAAAAcQAAAAAAcQAAAAAA + version: 6 + 0,-1: + ind: 0,-1 + tiles: VAAAAAAAVAAAAAADVAAAAAABcQAAAAAAcQAAAAAAVAAAAAACcQAAAAAAVAAAAAABcQAAAAAAVAAAAAABcQAAAAAAcQAAAAAAVAAAAAABVAAAAAADVAAAAAAAVAAAAAACVAAAAAACVAAAAAADVAAAAAABcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAACcQAAAAAAVAAAAAADVAAAAAACVAAAAAADVAAAAAACVAAAAAABVAAAAAACVAAAAAADcQAAAAAAVAAAAAAAcQAAAAAAVAAAAAAAcQAAAAAAVAAAAAACcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAADVAAAAAADVAAAAAABVAAAAAABVAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAcQAAAAAAVAAAAAAAVAAAAAACcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAADcQAAAAAAcQAAAAAAVAAAAAABVAAAAAAAVAAAAAACcQAAAAAAcQAAAAAAVAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAGwAAAAACGwAAAAADGwAAAAAAVAAAAAABVAAAAAAAVAAAAAABcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAACcQAAAAAAcQAAAAAAcQAAAAAAGwAAAAABGwAAAAAAGwAAAAABVAAAAAACVAAAAAABVAAAAAAAVAAAAAABVAAAAAABVAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAGwAAAAABGwAAAAABGwAAAAADVAAAAAACVAAAAAABVAAAAAADVAAAAAADVAAAAAABVAAAAAAAVAAAAAADcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAVAAAAAABVAAAAAADVAAAAAACMAAAAAAAVAAAAAAAVAAAAAABVAAAAAADVAAAAAABVAAAAAABVAAAAAABcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAACVAAAAAACVAAAAAADMAAAAAABMAAAAAADVAAAAAABVAAAAAAAVAAAAAADVAAAAAADVAAAAAADcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAACVAAAAAABVAAAAAABMAAAAAADMAAAAAADMAAAAAADMAAAAAADVAAAAAACVAAAAAACVAAAAAACcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAADVAAAAAADVAAAAAABMAAAAAADMAAAAAAAMAAAAAACMAAAAAABMAAAAAAAVAAAAAAAVAAAAAABVAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAVAAAAAABVAAAAAABVAAAAAAAVAAAAAABMAAAAAABMAAAAAACMAAAAAADVAAAAAABVAAAAAAAVAAAAAADVAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAABVAAAAAAAVAAAAAAAVAAAAAABVAAAAAAAVAAAAAACMAAAAAADMAAAAAADMAAAAAACVAAAAAADVAAAAAABVAAAAAADcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAVAAAAAAAVAAAAAABVAAAAAADMAAAAAAAMAAAAAAAMAAAAAACMAAAAAABVAAAAAACVAAAAAADcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAYAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAACVAAAAAACVAAAAAADVAAAAAABVAAAAAABVAAAAAACVAAAAAABcQAAAAAAVAAAAAAA + version: 6 + -1,-1: + ind: -1,-1 + tiles: VAAAAAABVAAAAAAAcQAAAAAAVAAAAAAAcQAAAAAAVAAAAAABcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAACcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAGwAAAAADGwAAAAAAGwAAAAACcQAAAAAAVAAAAAAAVAAAAAACVAAAAAACcQAAAAAAVAAAAAADcQAAAAAAVAAAAAADcQAAAAAAcQAAAAAAVAAAAAADcQAAAAAAcQAAAAAAGwAAAAABGwAAAAAAGwAAAAAAGwAAAAACVAAAAAACVAAAAAACVAAAAAACcQAAAAAAVAAAAAABcQAAAAAAVAAAAAADVAAAAAADcQAAAAAAcQAAAAAAVAAAAAAAcQAAAAAAGwAAAAADGwAAAAAAGwAAAAAAcQAAAAAAcQAAAAAAVAAAAAACVAAAAAABcQAAAAAAcQAAAAAAVAAAAAADcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAADVAAAAAACVAAAAAADcQAAAAAAVAAAAAADcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAADVAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAACVAAAAAABcQAAAAAAcQAAAAAAVAAAAAABVAAAAAAAcQAAAAAAVAAAAAACcQAAAAAAcQAAAAAAVAAAAAADcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAADcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAABVAAAAAADVAAAAAACVAAAAAACVAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAACcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAABVAAAAAACVAAAAAAAVAAAAAACVAAAAAABcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAADVAAAAAABVAAAAAADVAAAAAAAVAAAAAAAVAAAAAADMAAAAAACVAAAAAABbgAAAAABEQAAAAAAbgAAAAABbgAAAAAAEQAAAAABbgAAAAABbgAAAAAAcQAAAAAAVAAAAAADVAAAAAADVAAAAAADVAAAAAABVAAAAAACMAAAAAAAMAAAAAABVAAAAAADbgAAAAACbgAAAAACbgAAAAACEQAAAAAAbgAAAAABbgAAAAADcQAAAAAAcQAAAAAAVAAAAAADVAAAAAAAVAAAAAADMAAAAAACMAAAAAACMAAAAAACMAAAAAACVAAAAAAAEQAAAAAAbgAAAAABbgAAAAABbgAAAAABbgAAAAACcQAAAAAAcQAAAAAAVAAAAAAAVAAAAAADVAAAAAACMAAAAAAAMAAAAAABMAAAAAADMAAAAAACMAAAAAABVAAAAAAAbgAAAAADEQAAAAABbgAAAAADEQAAAAAFEQAAAAAEcQAAAAAAVAAAAAABVAAAAAAAVAAAAAAAVAAAAAADMAAAAAADMAAAAAAAMAAAAAAAVAAAAAACVAAAAAACVAAAAAAAbgAAAAABbgAAAAABbgAAAAABbgAAAAADEQAAAAADcQAAAAAAVAAAAAABVAAAAAABVAAAAAABMAAAAAABMAAAAAADMAAAAAACVAAAAAADVAAAAAAAVAAAAAAAVAAAAAABVAAAAAACcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAABVAAAAAABMAAAAAABMAAAAAADMAAAAAABMAAAAAADVAAAAAABVAAAAAADVAAAAAABYAAAAAAAVAAAAAADVAAAAAACVAAAAAAAcQAAAAAAVAAAAAADVAAAAAABVAAAAAACVAAAAAAAVAAAAAADVAAAAAACVAAAAAAAVAAAAAABVAAAAAADVAAAAAADYAAAAAAAAQAAAAAA + version: 6 + -1,0: + ind: -1,0 + tiles: VAAAAAADVAAAAAADVAAAAAAAVAAAAAAAVAAAAAADVAAAAAADVAAAAAACVAAAAAACVAAAAAABVAAAAAAAVAAAAAABVAAAAAADVAAAAAABVAAAAAACYAAAAAAAAQAAAAAAVAAAAAACVAAAAAADVAAAAAADVAAAAAAAVAAAAAADVAAAAAABVAAAAAABVAAAAAACVAAAAAAAVAAAAAACVAAAAAAAVAAAAAADVAAAAAACVAAAAAACYAAAAAAAAQAAAAAAVAAAAAAAVAAAAAADVAAAAAAAcQAAAAAAVAAAAAAAVAAAAAACVAAAAAACVAAAAAACVAAAAAADVAAAAAAAVAAAAAABVAAAAAACVAAAAAADVAAAAAAAYAAAAAAAAQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAADVAAAAAABMAAAAAADMAAAAAADMAAAAAAAMAAAAAACVAAAAAABVAAAAAABVAAAAAAAYAAAAAAAVAAAAAADGwAAAAADGwAAAAAAGwAAAAADGwAAAAACGwAAAAABVAAAAAADVAAAAAABVAAAAAACMAAAAAADMAAAAAACMAAAAAADVAAAAAAAVAAAAAABVAAAAAAAVAAAAAABVAAAAAAAcQAAAAAAGwAAAAACGwAAAAABGwAAAAACGwAAAAABVAAAAAABVAAAAAACVAAAAAABVAAAAAACMAAAAAABMAAAAAADMAAAAAACcQAAAAAAcQAAAAAAVAAAAAACVAAAAAACcQAAAAAAGwAAAAACGwAAAAAAGwAAAAACcQAAAAAAcQAAAAAAVAAAAAABVAAAAAADVAAAAAABMAAAAAAAMAAAAAACMAAAAAADMAAAAAACMAAAAAADVAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAVAAAAAADVAAAAAADMAAAAAADMAAAAAABMAAAAAABMAAAAAABVAAAAAADcQAAAAAAcQAAAAAAbgAAAAAAbgAAAAACbgAAAAAAbgAAAAADbgAAAAAAbgAAAAACVAAAAAACVAAAAAAAVAAAAAADVAAAAAACVAAAAAADMAAAAAABMAAAAAAAVAAAAAADbgAAAAABcQAAAAAAbgAAAAABbgAAAAACbgAAAAADbgAAAAAAbgAAAAACcQAAAAAAVAAAAAABVAAAAAADVAAAAAACVAAAAAAAVAAAAAACVAAAAAAAMAAAAAADVAAAAAADbgAAAAADcQAAAAAAbgAAAAAAbgAAAAACbgAAAAACbgAAAAABbgAAAAACcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAVAAAAAABVAAAAAABVAAAAAADVAAAAAAAbgAAAAADbgAAAAACbgAAAAACbgAAAAAAbgAAAAABbgAAAAACbgAAAAABcQAAAAAAPAAAAAAAPAAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAVAAAAAADVAAAAAACVAAAAAACbgAAAAACcQAAAAAAbgAAAAAAbgAAAAAAbgAAAAACbgAAAAACbgAAAAACcQAAAAAAPAAAAAAAPAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAbgAAAAABcQAAAAAAVAAAAAABcQAAAAAAcQAAAAAAbgAAAAAAbgAAAAACbgAAAAABbgAAAAACbgAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAbgAAAAABbgAAAAABbgAAAAACcQAAAAAAVAAAAAABcQAAAAAAVAAAAAABbgAAAAACbgAAAAACbgAAAAAAbgAAAAACbgAAAAACVAAAAAACcQAAAAAAbgAAAAACbgAAAAACbgAAAAADbgAAAAAAbgAAAAADcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAADbgAAAAACbgAAAAADbgAAAAACbgAAAAABbgAAAAAAVAAAAAADbgAAAAABbgAAAAAAbgAAAAABbgAAAAAAbgAAAAABbgAAAAACcQAAAAAAVAAAAAAB + version: 6 + -2,0: + ind: -2,0 + tiles: VAAAAAADVAAAAAAAVAAAAAACVAAAAAABVAAAAAABVAAAAAAAVAAAAAAAVAAAAAADVAAAAAAAVAAAAAABVAAAAAAAVAAAAAABVAAAAAADVAAAAAABVAAAAAAAVAAAAAABVAAAAAAAVAAAAAACVAAAAAACVAAAAAAAVAAAAAACVAAAAAABVAAAAAAAVAAAAAADVAAAAAACVAAAAAAAVAAAAAADVAAAAAADVAAAAAACVAAAAAAAVAAAAAAAVAAAAAABVAAAAAAAVAAAAAACVAAAAAAAVAAAAAABVAAAAAABVAAAAAADVAAAAAACVAAAAAABVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAACVAAAAAADVAAAAAABVAAAAAABVAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAABVAAAAAADVAAAAAABVAAAAAABcQAAAAAAVAAAAAABVAAAAAABVAAAAAABcQAAAAAAVAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAABcQAAAAAAcQAAAAAAVAAAAAABVAAAAAAAVAAAAAABVAAAAAACcQAAAAAAVAAAAAABVAAAAAAAVAAAAAACcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAVAAAAAACGwAAAAABGwAAAAAAVAAAAAADcQAAAAAAVAAAAAABVAAAAAACVAAAAAADcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAABcQAAAAAAVAAAAAAAcQAAAAAAcQAAAAAAVAAAAAACGwAAAAADGwAAAAADVAAAAAAAVAAAAAAAVAAAAAADVAAAAAADVAAAAAADcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAADcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAABGwAAAAAAGwAAAAACGwAAAAABcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAABcQAAAAAAVAAAAAACcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAADcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAcQAAAAAAVAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAbgAAAAABbgAAAAABVAAAAAADcQAAAAAAVAAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAVAAAAAADcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAbgAAAAACbgAAAAABVAAAAAACVAAAAAACcQAAAAAAcQAAAAAAVAAAAAAAcQAAAAAAVAAAAAABcQAAAAAAcQAAAAAAVAAAAAADcQAAAAAAcQAAAAAAVAAAAAADcQAAAAAAbgAAAAACbgAAAAACVAAAAAABVAAAAAABcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAACcQAAAAAAbgAAAAAAbgAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAGwAAAAADcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAABcQAAAAAAcQAAAAAAVAAAAAAAVAAAAAACVAAAAAAAVAAAAAABGwAAAAADcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAJgAAAAAAVAAAAAACcQAAAAAAVAAAAAAAVAAAAAABcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAA + version: 6 + -2,-1: + ind: -2,-1 + tiles: cQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAACcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAABcQAAAAAAGwAAAAAAGwAAAAABGwAAAAAAGwAAAAABGwAAAAABcQAAAAAAcQAAAAAAVAAAAAADJgAAAAAAcQAAAAAAVAAAAAACcQAAAAAAVAAAAAABcQAAAAAAcQAAAAAAGwAAAAADGwAAAAAAGwAAAAABGwAAAAABGwAAAAAAGwAAAAACcQAAAAAAVAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAACcQAAAAAAVAAAAAADcQAAAAAAGwAAAAADGwAAAAAAGwAAAAADYAAAAAAAYAAAAAAAYAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAABcQAAAAAAVAAAAAADcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAGwAAAAABGwAAAAADGwAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAcQAAAAAAcQAAAAAAVAAAAAACVAAAAAADVAAAAAAAVAAAAAAAcQAAAAAAcQAAAAAAGwAAAAADGwAAAAABYAAAAAAAYAAAAAAAYAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAVAAAAAABcQAAAAAAVAAAAAADVAAAAAABcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAcQAAAAAAVAAAAAADcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAABcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAGwAAAAACGwAAAAADGwAAAAABVAAAAAACVAAAAAACVAAAAAAAVAAAAAABGwAAAAACGwAAAAADcQAAAAAAcQAAAAAAVAAAAAAAcQAAAAAAEQAAAAAFbgAAAAACcQAAAAAAGwAAAAACVAAAAAACVAAAAAADVAAAAAACVAAAAAABVAAAAAABVAAAAAABcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAbgAAAAADEQAAAAADcQAAAAAAGwAAAAABVAAAAAABVAAAAAADVAAAAAACVAAAAAAAVAAAAAADVAAAAAACVAAAAAACVAAAAAAAVAAAAAACcQAAAAAAVAAAAAACcQAAAAAAbgAAAAABbgAAAAABcQAAAAAAGwAAAAADVAAAAAAAVAAAAAAAVAAAAAABVAAAAAADVAAAAAADVAAAAAACVAAAAAADcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAEQAAAAABbgAAAAAAcQAAAAAAGwAAAAACVAAAAAADGwAAAAADGwAAAAAAGwAAAAADGwAAAAACGwAAAAADGwAAAAABcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAADcQAAAAAAbgAAAAABEQAAAAADcQAAAAAAcQAAAAAAVAAAAAACcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAABVAAAAAAAVAAAAAADVAAAAAAAVAAAAAAAVAAAAAADVAAAAAADVAAAAAADVAAAAAACVAAAAAABVAAAAAABVAAAAAABVAAAAAADVAAAAAABVAAAAAADVAAAAAAC + version: 6 + -1,1: + ind: -1,1 + tiles: cQAAAAAAVAAAAAACbgAAAAABbgAAAAADbgAAAAABbgAAAAABbgAAAAADVAAAAAADcQAAAAAAbgAAAAADbgAAAAADbgAAAAAAbgAAAAADbgAAAAACcQAAAAAAVAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAADcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAACVAAAAAAAVAAAAAACVAAAAAADVAAAAAABVAAAAAADVAAAAAAAVAAAAAABVAAAAAACVAAAAAADVAAAAAABVAAAAAADVAAAAAACVAAAAAABVAAAAAADcQAAAAAAVAAAAAAAVAAAAAADVAAAAAABVAAAAAADVAAAAAACVAAAAAADVAAAAAACVAAAAAACVAAAAAACVAAAAAACVAAAAAACVAAAAAADVAAAAAACVAAAAAADVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAACVAAAAAADVAAAAAADVAAAAAADVAAAAAABVAAAAAAAVAAAAAAAVAAAAAADVAAAAAACVAAAAAABVAAAAAAAVAAAAAAAVAAAAAABcQAAAAAAVAAAAAAAcQAAAAAAVAAAAAABcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAVAAAAAADVAAAAAADcQAAAAAAGwAAAAADGwAAAAADcQAAAAAAGwAAAAAAGwAAAAAAGwAAAAACGwAAAAACGwAAAAADcQAAAAAAGwAAAAAAGwAAAAACcQAAAAAAVAAAAAADVAAAAAACVAAAAAACcQAAAAAAGwAAAAADGwAAAAAAcQAAAAAAGwAAAAACGwAAAAAAGwAAAAACGwAAAAABGwAAAAAAcQAAAAAAGwAAAAABGwAAAAADcQAAAAAAVAAAAAADcQAAAAAAVAAAAAADcQAAAAAAGwAAAAADGwAAAAADcQAAAAAAGwAAAAAAGwAAAAABGwAAAAADGwAAAAADGwAAAAACcQAAAAAAGwAAAAACGwAAAAADcQAAAAAAVAAAAAADVAAAAAACVAAAAAACcQAAAAAAcQAAAAAAYAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAYAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAYAAAAAAAcQAAAAAAVAAAAAADVAAAAAAAVAAAAAADGwAAAAADGwAAAAACGwAAAAAAGwAAAAAAGwAAAAACGwAAAAAAGwAAAAACGwAAAAADGwAAAAACGwAAAAADGwAAAAABGwAAAAACcQAAAAAAVAAAAAADVAAAAAACVAAAAAABVAAAAAAAVAAAAAADVAAAAAACVAAAAAADVAAAAAAAVAAAAAABVAAAAAAAVAAAAAABVAAAAAADVAAAAAACVAAAAAADVAAAAAADcQAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAACVAAAAAACVAAAAAADVAAAAAABVAAAAAABVAAAAAADVAAAAAACVAAAAAACVAAAAAACVAAAAAAAVAAAAAADVAAAAAADcQAAAAAAVAAAAAABVAAAAAABVAAAAAAAVAAAAAABVAAAAAACVAAAAAACVAAAAAAAVAAAAAACVAAAAAABVAAAAAABVAAAAAABVAAAAAACVAAAAAAAVAAAAAADVAAAAAACcQAAAAAAVAAAAAAAVAAAAAACcQAAAAAAcQAAAAAAVAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAABVAAAAAADVAAAAAADVAAAAAABVAAAAAAAcQAAAAAAVAAAAAABVAAAAAACVAAAAAAAcQAAAAAAVAAAAAACVAAAAAACVAAAAAACVAAAAAADVAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAACVAAAAAAAVAAAAAACcQAAAAAAVAAAAAAC + version: 6 + 0,1: + ind: 0,1 + tiles: VAAAAAACVAAAAAABVAAAAAADcQAAAAAAGwAAAAACGwAAAAACGwAAAAADGwAAAAADcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAGwAAAAAAVAAAAAAAVAAAAAADVAAAAAADcQAAAAAAGwAAAAABGwAAAAAAGwAAAAACGwAAAAACcQAAAAAAGwAAAAADGwAAAAAAcQAAAAAAVAAAAAABcQAAAAAAcQAAAAAAGwAAAAADVAAAAAACVAAAAAACVAAAAAACGwAAAAAAGwAAAAADGwAAAAADGwAAAAAAGwAAAAADGwAAAAABGwAAAAACGwAAAAABcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAGwAAAAABVAAAAAAAVAAAAAABVAAAAAACcQAAAAAAGwAAAAADGwAAAAACGwAAAAABGwAAAAADcQAAAAAAGwAAAAADGwAAAAACcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAADVAAAAAACVAAAAAADcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAACcQAAAAAAcQAAAAAAVQAAAAAAVAAAAAABVAAAAAADVAAAAAACcQAAAAAAcQAAAAAAVAAAAAADVAAAAAAAcQAAAAAAVAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVQAAAAAAVAAAAAADVAAAAAAAVAAAAAACcQAAAAAAVAAAAAACcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAABcQAAAAAAVAAAAAABcQAAAAAAcQAAAAAAJAAAAAAAVAAAAAACVAAAAAABVAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAACcQAAAAAAcQAAAAAAJAAAAAAAVAAAAAADVAAAAAAAVAAAAAADcQAAAAAAGwAAAAAAGwAAAAAAGwAAAAABGwAAAAABGwAAAAAAcQAAAAAAEQAAAAAFbgAAAAACbgAAAAAAbgAAAAABcQAAAAAAcQAAAAAAVAAAAAAAVAAAAAACVAAAAAADcQAAAAAAGwAAAAADJAAAAAAAJAAAAAAAJAAAAAACGwAAAAADcQAAAAAAEQAAAAAGbgAAAAADEQAAAAAEbgAAAAADbgAAAAAAcQAAAAAAVAAAAAACVAAAAAACVAAAAAAAGwAAAAADGwAAAAAAJAAAAAABJAAAAAACJAAAAAADGwAAAAABcQAAAAAAbgAAAAAAbgAAAAACEQAAAAABbgAAAAACEQAAAAADcQAAAAAAVAAAAAACVAAAAAADVAAAAAAAcQAAAAAAGwAAAAADGwAAAAADGwAAAAADGwAAAAAAGwAAAAABcQAAAAAAbgAAAAABEQAAAAABbgAAAAACbgAAAAADbgAAAAAAcQAAAAAAVAAAAAAAVAAAAAABVAAAAAABcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAVAAAAAABVAAAAAADYQAAAAAAYQAAAAAAYQAAAAAAYQAAAAAAYQAAAAAAYQAAAAAAcQAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAVAAAAAACVAAAAAACVAAAAAABcQAAAAAAYQAAAAAAYQAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAcQAAAAAAcAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVAAAAAABVAAAAAACVAAAAAACcQAAAAAAYQAAAAAAYQAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAcQAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAA + version: 6 + 1,-1: + ind: 1,-1 + tiles: VAAAAAADVAAAAAAAVAAAAAADVAAAAAABVAAAAAABcQAAAAAAcQAAAAAAVAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAADVAAAAAAAVAAAAAABVAAAAAADVAAAAAAAVAAAAAAAVAAAAAADVAAAAAACVAAAAAACcQAAAAAAVAAAAAACcQAAAAAAVAAAAAABVAAAAAAAcQAAAAAAcQAAAAAAVAAAAAABVAAAAAAAVAAAAAADVAAAAAAAVAAAAAACVAAAAAAAVAAAAAABVAAAAAABVAAAAAADcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAACcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAACcQAAAAAAcQAAAAAAVAAAAAADcQAAAAAAcQAAAAAAVAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAGwAAAAABGwAAAAABGwAAAAABGwAAAAAAGwAAAAADcQAAAAAAVAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAABcQAAAAAAcQAAAAAAVAAAAAABcQAAAAAAcQAAAAAAGwAAAAACGwAAAAACGwAAAAADGwAAAAABGwAAAAABcQAAAAAAVAAAAAACcQAAAAAAVAAAAAACcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAGwAAAAADGwAAAAACGwAAAAAAGwAAAAABGwAAAAACcQAAAAAAVAAAAAACcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAACcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAGwAAAAADGwAAAAADGwAAAAAAGwAAAAABGwAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAACVAAAAAABcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAACVAAAAAADcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAACcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAADcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAJgAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAABcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAGwAAAAABGwAAAAAAGwAAAAACGwAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAGwAAAAABGwAAAAABGwAAAAAAGwAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAVAAAAAAAcQAAAAAAVAAAAAACcQAAAAAAcQAAAAAAGwAAAAAAGwAAAAADGwAAAAAAGwAAAAACcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAGwAAAAACcQAAAAAAGwAAAAACcQAAAAAAcQAAAAAAVAAAAAADVAAAAAACVAAAAAAAVAAAAAACVAAAAAADVAAAAAABVAAAAAACVAAAAAADVAAAAAADVAAAAAAAVAAAAAACVAAAAAAAVAAAAAACVAAAAAAAVAAAAAABVAAAAAAD + version: 6 + 1,0: + ind: 1,0 + tiles: VAAAAAACVAAAAAADVAAAAAABVAAAAAACVAAAAAAAVAAAAAACVAAAAAAAVAAAAAABVAAAAAACVAAAAAACVAAAAAADVAAAAAACVAAAAAAAVAAAAAACVAAAAAACVAAAAAAAVAAAAAADVAAAAAACVAAAAAADVAAAAAACVAAAAAAAVAAAAAADVAAAAAACVAAAAAABVAAAAAADVAAAAAABVAAAAAAAVAAAAAADVAAAAAADVAAAAAADVAAAAAABVAAAAAABVAAAAAABVAAAAAACVAAAAAABVAAAAAABVAAAAAABVAAAAAADVAAAAAACVAAAAAABVAAAAAADVAAAAAAAVAAAAAAAVAAAAAADVAAAAAAAVAAAAAADVAAAAAADVAAAAAACcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAVAAAAAACVAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAABVAAAAAAAVAAAAAABVAAAAAACVAAAAAADVAAAAAABVAAAAAADVAAAAAADVAAAAAABcQAAAAAAVAAAAAACVAAAAAABVAAAAAABcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAACVAAAAAACVAAAAAABVAAAAAABVAAAAAABVAAAAAACVAAAAAADVAAAAAACVAAAAAACVAAAAAAAVAAAAAADVAAAAAADVAAAAAABVAAAAAAAVAAAAAACVAAAAAAAVAAAAAABVAAAAAACVAAAAAADVAAAAAAAVAAAAAABVAAAAAADVAAAAAAAVAAAAAADVAAAAAABVAAAAAABVAAAAAAAVAAAAAABVAAAAAACVAAAAAACVAAAAAADVAAAAAABVAAAAAABVAAAAAADVAAAAAADVAAAAAADVAAAAAAAVAAAAAACVAAAAAADVAAAAAACVAAAAAABVAAAAAACVAAAAAABVAAAAAAAVAAAAAADVAAAAAACVAAAAAADVAAAAAADVAAAAAACVAAAAAABVAAAAAADVAAAAAACVAAAAAAAVAAAAAABVAAAAAADVAAAAAAAVAAAAAAAVAAAAAACVAAAAAAAVAAAAAADVAAAAAAAVAAAAAABVAAAAAADVAAAAAADVAAAAAACVAAAAAAAVAAAAAADVAAAAAACGwAAAAADGwAAAAACGwAAAAACGwAAAAACGwAAAAADVAAAAAACVAAAAAABVAAAAAADVAAAAAAAbgAAAAABVAAAAAAAVAAAAAABVAAAAAABVAAAAAADVAAAAAABVAAAAAACGwAAAAABZAAAAAAAZAAAAAADZAAAAAACGwAAAAAAVAAAAAACVAAAAAADVAAAAAADVAAAAAACbgAAAAADVAAAAAAAVAAAAAABVAAAAAABVAAAAAAAVAAAAAACVAAAAAABGwAAAAACZAAAAAAAZAAAAAABZAAAAAAAGwAAAAACVAAAAAAAVAAAAAADVAAAAAABVAAAAAACbgAAAAABGwAAAAAAGwAAAAACGwAAAAADGwAAAAACGwAAAAADGwAAAAABcQAAAAAAZAAAAAADZAAAAAADZAAAAAAAcQAAAAAAcQAAAAAAVAAAAAACVAAAAAAAVAAAAAACcQAAAAAAGwAAAAACGwAAAAAAGwAAAAABGwAAAAABGwAAAAACGwAAAAAAZAAAAAACZAAAAAACZAAAAAACZAAAAAABZAAAAAADcQAAAAAAVAAAAAACVAAAAAADVAAAAAAAcQAAAAAAGwAAAAAAGwAAAAABGwAAAAADGwAAAAACGwAAAAADGwAAAAADZAAAAAACZAAAAAACZAAAAAADZAAAAAADZAAAAAAAZAAAAAABVAAAAAACVAAAAAABVAAAAAACVAAAAAACGwAAAAACcQAAAAAAcQAAAAAAZAAAAAACZAAAAAACZAAAAAACZAAAAAACZAAAAAABZAAAAAAAZAAAAAAAZAAAAAADcQAAAAAAVAAAAAADVAAAAAABVAAAAAACVAAAAAAB + version: 6 + 0,-2: + ind: 0,-2 + tiles: VAAAAAADVAAAAAABVAAAAAAAcQAAAAAAVAAAAAACVAAAAAACVAAAAAAAVAAAAAADVAAAAAACVAAAAAADVAAAAAADVAAAAAABVAAAAAADVAAAAAACVAAAAAAAcQAAAAAAVAAAAAADVAAAAAABVAAAAAACcQAAAAAAVAAAAAAAVAAAAAAAVAAAAAACVAAAAAADVAAAAAADVAAAAAADVAAAAAACVAAAAAACVAAAAAABVAAAAAAAVAAAAAABcQAAAAAAVAAAAAAAVAAAAAABVAAAAAABcQAAAAAAVAAAAAABVAAAAAAAVAAAAAADVAAAAAAAVAAAAAABVAAAAAABVAAAAAACcQAAAAAAVAAAAAABVAAAAAAAVAAAAAACcQAAAAAAVAAAAAACVAAAAAADVAAAAAADcQAAAAAAcQAAAAAAVAAAAAAAVAAAAAADVAAAAAACcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAABVAAAAAABVAAAAAADVAAAAAACVAAAAAABVAAAAAADVAAAAAABcQAAAAAAVAAAAAACVAAAAAACVAAAAAADVAAAAAABVAAAAAADVAAAAAAAVAAAAAABcQAAAAAAVAAAAAAAVAAAAAADVAAAAAABVAAAAAADVAAAAAADVAAAAAADVAAAAAAAcQAAAAAAVAAAAAAAVAAAAAACVAAAAAACVAAAAAABVAAAAAADVAAAAAAAVAAAAAAAcQAAAAAAVAAAAAACVAAAAAADMAAAAAADSgAAAAAAVAAAAAAAVAAAAAACVAAAAAAAVAAAAAABVAAAAAACVAAAAAAAVAAAAAACVAAAAAABVAAAAAADVAAAAAAAVAAAAAADVAAAAAACVAAAAAADVAAAAAACMAAAAAACSgAAAAAAVAAAAAAAVAAAAAADVAAAAAACVAAAAAACVAAAAAABVAAAAAACVAAAAAADVAAAAAACVAAAAAACVAAAAAAAVAAAAAACVAAAAAADVAAAAAAAVAAAAAADVAAAAAABVAAAAAACVAAAAAAAVAAAAAAAVAAAAAADVAAAAAABVAAAAAADVAAAAAAAVAAAAAAAVAAAAAABVAAAAAADVAAAAAAAVAAAAAABVAAAAAAAVAAAAAADVAAAAAAAVAAAAAABVAAAAAAAVAAAAAABVAAAAAAAVAAAAAABcQAAAAAAVAAAAAABVAAAAAAAVAAAAAAAVAAAAAADVAAAAAACVAAAAAACVAAAAAADcQAAAAAAVAAAAAAAVAAAAAADVAAAAAADVAAAAAAAVAAAAAAAVAAAAAABVAAAAAACcQAAAAAAVAAAAAACVAAAAAABVAAAAAABVAAAAAADVAAAAAADVAAAAAAAVAAAAAABcQAAAAAAVAAAAAACVAAAAAACVAAAAAADcQAAAAAAVAAAAAAAVAAAAAADVAAAAAABcQAAAAAAcQAAAAAAVAAAAAAAcQAAAAAAcQAAAAAAVAAAAAACVAAAAAAAcQAAAAAAcQAAAAAAVAAAAAABVAAAAAAAVAAAAAAAcQAAAAAAVAAAAAADVAAAAAACVAAAAAADcQAAAAAAVAAAAAABVAAAAAADVAAAAAADVAAAAAAAVAAAAAAAVAAAAAADVAAAAAADcQAAAAAAVAAAAAAAVAAAAAACVAAAAAADcQAAAAAAVAAAAAAAVAAAAAADVAAAAAADcQAAAAAAVAAAAAADVAAAAAADVAAAAAADcQAAAAAAVAAAAAACVAAAAAADVAAAAAABVAAAAAADVAAAAAADVAAAAAAAVAAAAAAAcQAAAAAAVAAAAAACVAAAAAAAVAAAAAABcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAABcQAAAAAAcQAAAAAAVAAAAAABVAAAAAADVAAAAAACcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAVAAAAAADVAAAAAADVAAAAAAD + version: 6 + -1,-2: + ind: -1,-2 + tiles: cQAAAAAAcAAAAAAAcQAAAAAASAAAAAAASAAAAAAASAAAAAAAcQAAAAAASgAAAAAAVAAAAAACSgAAAAAASgAAAAAASgAAAAAASgAAAAAASgAAAAAASgAAAAAAVAAAAAACcQAAAAAAcAAAAAAAcQAAAAAASAAAAAAASAAAAAAASAAAAAAAcQAAAAAASgAAAAAAVAAAAAAASgAAAAAASgAAAAAASgAAAAAASgAAAAAASgAAAAAAcQAAAAAAVAAAAAADcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAABVAAAAAAAVAAAAAACVAAAAAADVAAAAAAAVAAAAAADVAAAAAACVAAAAAACVAAAAAADVAAAAAACVAAAAAABVAAAAAADcQAAAAAAVAAAAAACVAAAAAADcQAAAAAAVAAAAAACVAAAAAADVAAAAAADVAAAAAACVAAAAAADVAAAAAAAVAAAAAACVAAAAAAAVAAAAAABVAAAAAACVAAAAAAAVAAAAAACVAAAAAABVAAAAAAAVAAAAAABVAAAAAAAVAAAAAAAVAAAAAACVAAAAAAAVAAAAAACVAAAAAADVAAAAAACVAAAAAADVAAAAAABVAAAAAADVAAAAAABVAAAAAADVAAAAAADcQAAAAAAVAAAAAAASgAAAAAAcQAAAAAAVAAAAAABcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAACcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAADVAAAAAABVAAAAAADcQAAAAAAVAAAAAABVAAAAAABVAAAAAAAVAAAAAADVAAAAAADcQAAAAAASgAAAAAASgAAAAAASgAAAAAASgAAAAAASgAAAAAAcQAAAAAAVAAAAAADVAAAAAABVAAAAAACcQAAAAAAVAAAAAACVAAAAAADVAAAAAAAVAAAAAACVAAAAAACcQAAAAAASgAAAAAAGwAAAAABGwAAAAADGwAAAAACGwAAAAADGwAAAAACVAAAAAABVAAAAAAAVAAAAAACcQAAAAAAVAAAAAAAVAAAAAABVAAAAAAAVAAAAAABVAAAAAABcQAAAAAASgAAAAAAGwAAAAABGwAAAAADGwAAAAAAGwAAAAACGwAAAAAAVAAAAAABcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAACVAAAAAACVAAAAAAAVAAAAAADVAAAAAADcQAAAAAASgAAAAAAGwAAAAABGwAAAAADGwAAAAABGwAAAAACGwAAAAADVAAAAAAAVAAAAAABVAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAASgAAAAAASgAAAAAASgAAAAAASgAAAAAASgAAAAAAcQAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAcQAAAAAAJgAAAAAAcQAAAAAAcQAAAAAAVAAAAAADcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAACcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAADcQAAAAAAcQAAAAAAVAAAAAACcQAAAAAAcQAAAAAAVAAAAAABcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAABcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAcQAAAAAAVAAAAAABcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAADcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAAC + version: 6 + -2,-2: + ind: -2,-2 + tiles: VAAAAAADVAAAAAAAVAAAAAADVAAAAAADVAAAAAABVAAAAAAAVAAAAAABVAAAAAABcQAAAAAAVAAAAAADVAAAAAABVAAAAAACcQAAAAAASAAAAAAASAAAAAAASAAAAAAAVAAAAAABVAAAAAACVAAAAAACVAAAAAACVAAAAAACVAAAAAABVAAAAAADVAAAAAACcQAAAAAAVAAAAAAAVAAAAAADVAAAAAABcQAAAAAASAAAAAAASAAAAAAASAAAAAAAVAAAAAADVAAAAAADVAAAAAAAVAAAAAAAVAAAAAACVAAAAAACVAAAAAAAVAAAAAACcQAAAAAAcQAAAAAAVAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAcQAAAAAAcQAAAAAAVAAAAAABVAAAAAABVAAAAAABVAAAAAACVAAAAAACVAAAAAADVAAAAAAAVAAAAAACVAAAAAAAVAAAAAADVAAAAAADcQAAAAAAVAAAAAAAVAAAAAAASgAAAAAAcQAAAAAAVAAAAAADVAAAAAABVAAAAAABVAAAAAAAVAAAAAACVAAAAAADVAAAAAAAVAAAAAABVAAAAAABVAAAAAABVAAAAAACcQAAAAAAVAAAAAADVAAAAAADVAAAAAABcQAAAAAAVAAAAAADVAAAAAABVAAAAAABVAAAAAACVAAAAAADVAAAAAADVAAAAAAAVAAAAAABVAAAAAADVAAAAAACVAAAAAADcQAAAAAAcQAAAAAAVAAAAAACcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAADcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAACVAAAAAADAwAAAAAAVAAAAAACAwAAAAAAcQAAAAAAVAAAAAABVAAAAAAAGwAAAAADGwAAAAAAGwAAAAACGwAAAAACGwAAAAACGwAAAAABcQAAAAAAVAAAAAADVAAAAAACAwAAAAAAAwAAAAAAVAAAAAACAwAAAAAAcQAAAAAAVAAAAAADVAAAAAACGwAAAAAAVAAAAAABGwAAAAABVAAAAAABGwAAAAABGwAAAAABcQAAAAAAVAAAAAAAVAAAAAABVAAAAAACAwAAAAAAAwAAAAAAVAAAAAABVAAAAAAAVAAAAAADVAAAAAAAGwAAAAAAGwAAAAACGwAAAAACGwAAAAAAGwAAAAADGwAAAAAAcQAAAAAAVAAAAAAAVAAAAAACAwAAAAAAAwAAAAAAVAAAAAAAAwAAAAAAVAAAAAABVAAAAAABVAAAAAAAGwAAAAADVAAAAAAAGwAAAAAAVAAAAAABGwAAAAACGwAAAAACcQAAAAAAcQAAAAAAVAAAAAABAwAAAAAAAwAAAAAAVAAAAAACVAAAAAADcQAAAAAAVAAAAAAAVAAAAAADGwAAAAAAGwAAAAAAGwAAAAACGwAAAAABGwAAAAAAGwAAAAAAcQAAAAAAVAAAAAAAVAAAAAABcQAAAAAAGwAAAAAAGwAAAAADcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAACVAAAAAABVAAAAAABVAAAAAAAVAAAAAABcQAAAAAAcQAAAAAAVAAAAAACVAAAAAAAcQAAAAAAGwAAAAAAGwAAAAACNAAAAAAANAAAAAAANAAAAAAAcQAAAAAAVAAAAAACGwAAAAACGwAAAAAAVAAAAAABZAAAAAABZAAAAAABcQAAAAAAcQAAAAAAcQAAAAAAGwAAAAAAGwAAAAACGwAAAAABGwAAAAABGwAAAAACGwAAAAAAVAAAAAABVAAAAAAAVAAAAAAAVAAAAAACVAAAAAACZAAAAAACZAAAAAADZAAAAAABcQAAAAAAcQAAAAAAcQAAAAAADwAAAAAADwAAAAAADwAAAAAADwAAAAAADwAAAAAAcQAAAAAAGwAAAAACGwAAAAABGwAAAAACGwAAAAAAVAAAAAADZAAAAAABZAAAAAABcQAAAAAAVAAAAAAC + version: 6 + -3,-1: + ind: -3,-1 + tiles: cQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAADVAAAAAADVAAAAAADcQAAAAAAVAAAAAADVAAAAAACVAAAAAABcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAVAAAAAABVAAAAAADAAAAAAAAAAAAAAAAcQAAAAAAVAAAAAACVAAAAAACVAAAAAABcQAAAAAAVAAAAAAAVAAAAAACVAAAAAAAVAAAAAADVAAAAAADcQAAAAAAVAAAAAABVAAAAAADVAAAAAACAAAAAAAAAAAAAAAAcQAAAAAAGwAAAAADGwAAAAABGwAAAAACcQAAAAAAGwAAAAADGwAAAAADGwAAAAAAVAAAAAADVAAAAAABcQAAAAAAVAAAAAACVAAAAAABVAAAAAABAAAAAAAAAAAAAAAAGwAAAAADGwAAAAADGwAAAAAAGwAAAAADGwAAAAACGwAAAAABGwAAAAABGwAAAAABVAAAAAABVAAAAAADcQAAAAAAVAAAAAADVAAAAAAAVAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAGwAAAAAAGwAAAAADGwAAAAADVAAAAAADVAAAAAABcQAAAAAAVAAAAAAAVAAAAAADVAAAAAABAAAAAAAAAAAAAAAAcQAAAAAAVAAAAAACVAAAAAACVAAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAGwAAAAABVAAAAAAAVAAAAAACcQAAAAAAVAAAAAACVAAAAAABVAAAAAADAAAAAAAAAAAAAAAAcQAAAAAAGwAAAAABGwAAAAABGwAAAAACGwAAAAABGwAAAAABGwAAAAACGwAAAAAAVAAAAAACVAAAAAAAVAAAAAAAVAAAAAABVAAAAAACVAAAAAACAAAAAAAAAAAAAAAAcQAAAAAAVAAAAAACVAAAAAADVAAAAAACcQAAAAAAGwAAAAABGwAAAAACGwAAAAACVAAAAAAAVAAAAAACcQAAAAAAVAAAAAACVAAAAAACVAAAAAABAAAAAAAAAAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAGwAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAADVAAAAAACVAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAGwAAAAADGwAAAAABGwAAAAACGwAAAAABYQAAAAAAVAAAAAADVAAAAAACVAAAAAACGwAAAAAAcQAAAAAAVAAAAAACVAAAAAACVAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAGwAAAAABcQAAAAAAVAAAAAAAVAAAAAABVAAAAAAAVAAAAAABVAAAAAAAVAAAAAABGwAAAAAAcQAAAAAAVAAAAAAAVAAAAAABVAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAGwAAAAACcQAAAAAAVAAAAAABVAAAAAACVAAAAAAAVAAAAAAAVAAAAAACVAAAAAACGwAAAAADcQAAAAAAVAAAAAACVAAAAAADVAAAAAABAAAAAAAAAAAAAAAAGwAAAAACGwAAAAACcQAAAAAAVAAAAAACVAAAAAADVAAAAAABVAAAAAABVAAAAAADVAAAAAAAGwAAAAADcQAAAAAAVAAAAAACVAAAAAACVAAAAAAAAAAAAAAAAAAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAVAAAAAACVAAAAAABVAAAAAAAVAAAAAADVAAAAAADVAAAAAADGwAAAAAAcQAAAAAAVAAAAAABVAAAAAACVAAAAAACAAAAAAAAAAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAABVAAAAAABVAAAAAAAVAAAAAADVAAAAAACVAAAAAAAGwAAAAAAcQAAAAAAVAAAAAABVAAAAAADVAAAAAAC + version: 6 + -3,0: + ind: -3,0 + tiles: AAAAAAAAAAAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAVAAAAAABVAAAAAABVAAAAAADVAAAAAACVAAAAAAAVAAAAAACGwAAAAAAcQAAAAAAVAAAAAABVAAAAAADVAAAAAACAAAAAAAAAAAAAAAAGwAAAAADGwAAAAAAcQAAAAAAVAAAAAABVAAAAAADVAAAAAAAVAAAAAACVAAAAAABVAAAAAACGwAAAAAAcQAAAAAAVAAAAAABVAAAAAACVAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAGwAAAAADcQAAAAAAVAAAAAABVAAAAAABVAAAAAACVAAAAAADVAAAAAACVAAAAAADGwAAAAABcQAAAAAAVAAAAAABVAAAAAACVAAAAAADAAAAAAAAAAAAAAAAcQAAAAAAGwAAAAADcQAAAAAAVAAAAAABVAAAAAADVAAAAAADVAAAAAABVAAAAAACVAAAAAACGwAAAAABcQAAAAAAVAAAAAACVAAAAAAAVAAAAAADAAAAAAAAAAAAAAAAcQAAAAAAGwAAAAACGwAAAAADGwAAAAABGwAAAAAAYQAAAAAAVAAAAAAAVAAAAAADVAAAAAACVAAAAAADcQAAAAAAVAAAAAABVAAAAAACVAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAGwAAAAACcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAABcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAABVAAAAAAAVAAAAAACAAAAAAAAAAAAAAAAcQAAAAAAJAAAAAAAVAAAAAADVAAAAAADVAAAAAACVAAAAAAAVAAAAAADVAAAAAABVAAAAAABVAAAAAADVAAAAAABVAAAAAADVAAAAAAAVAAAAAACAAAAAAAAAAAAAAAAcQAAAAAAJAAAAAADVAAAAAABVAAAAAABbQAAAAABbQAAAAAAbQAAAAACbQAAAAACVAAAAAADVAAAAAAAVAAAAAACVAAAAAACVAAAAAACVAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAJAAAAAACJAAAAAAAVAAAAAAAbQAAAAADVAAAAAAAVAAAAAADbQAAAAAAVAAAAAADVAAAAAABVAAAAAABVAAAAAADVAAAAAADVAAAAAACAAAAAAAAAAAAAAAAcQAAAAAAJAAAAAADJAAAAAAAVAAAAAAAbQAAAAAAbQAAAAACbQAAAAABbQAAAAABVAAAAAAAVAAAAAAAVAAAAAABVAAAAAADVAAAAAAAVAAAAAADcAAAAAAAcAAAAAAAcQAAAAAAJAAAAAABJAAAAAABVAAAAAADVAAAAAABVAAAAAABVAAAAAABVAAAAAABVAAAAAACVAAAAAABVAAAAAACVAAAAAACVAAAAAACVAAAAAADcAAAAAAAcAAAAAAAcQAAAAAAJAAAAAAAJAAAAAACVAAAAAACVAAAAAADVAAAAAADVAAAAAACVAAAAAACVAAAAAAAcQAAAAAAGwAAAAACVAAAAAABVAAAAAABVAAAAAAAcAAAAAAAcAAAAAAAcQAAAAAAJAAAAAACJAAAAAABJAAAAAADJAAAAAACJAAAAAABJAAAAAAAJAAAAAABJAAAAAACJAAAAAADGwAAAAAAVAAAAAADVAAAAAACVAAAAAABcAAAAAAAAAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAACcQAAAAAAcAAAAAAAAAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAGwAAAAADSAAAAAAASAAAAAAASAAAAAAAcAAAAAAAAAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAGwAAAAADSAAAAAAANAAAAAAASAAAAAAA + version: 6 + -3,1: + ind: -3,1 + tiles: cAAAAAAAcAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAGwAAAAADSAAAAAAASAAAAAAASAAAAAAAcAAAAAAAcAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAGwAAAAAANAAAAAAANAAAAAAANAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcQAAAAAAcQAAAAAAGwAAAAABGwAAAAAAGwAAAAADGwAAAAADGwAAAAADGwAAAAAAGwAAAAABGwAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAGwAAAAADGwAAAAABGwAAAAAAGwAAAAADGwAAAAABGwAAAAACGwAAAAADGwAAAAADcQAAAAAAcQAAAAAAVAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAGwAAAAAAGwAAAAACGwAAAAACGwAAAAABGwAAAAABGwAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGwAAAAACGwAAAAABGwAAAAACGwAAAAACGwAAAAABGwAAAAAAGwAAAAAAGwAAAAABGwAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAGwAAAAABGwAAAAACGwAAAAABcQAAAAAAGwAAAAAAGwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAVAAAAAABVAAAAAACVAAAAAACVAAAAAABcQAAAAAAGwAAAAABGwAAAAABGwAAAAADGwAAAAACGwAAAAADGwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAVAAAAAACVAAAAAACVAAAAAABVAAAAAADcQAAAAAAGwAAAAADGwAAAAADGwAAAAADcQAAAAAAGwAAAAAAGwAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGwAAAAAAGwAAAAACGwAAAAADGwAAAAADGwAAAAADGwAAAAABGwAAAAACGwAAAAACGwAAAAACcQAAAAAAGwAAAAAAGwAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAGwAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAGwAAAAABGwAAAAABGwAAAAACGwAAAAABcQAAAAAAGwAAAAACGwAAAAACGwAAAAADcQAAAAAAVAAAAAACVAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAGwAAAAACGwAAAAAAGwAAAAABGwAAAAACGwAAAAAAGwAAAAABGwAAAAACGwAAAAADGwAAAAABVAAAAAACVAAAAAAAcAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcQAAAAAAGwAAAAACGwAAAAACGwAAAAACGwAAAAACcQAAAAAAGwAAAAABGwAAAAAAGwAAAAACcQAAAAAAVAAAAAABVAAAAAABcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcQAAAAAAGwAAAAACSgAAAAAASgAAAAAASgAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAA + version: 6 + -2,1: + ind: -2,1 + tiles: GwAAAAADcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAABcQAAAAAAVAAAAAABcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAcQAAAAAAVAAAAAACGwAAAAADcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAABcQAAAAAAcQAAAAAAcQAAAAAAbgAAAAABbgAAAAACbgAAAAACbgAAAAADcQAAAAAAVAAAAAADVAAAAAAAcQAAAAAAVAAAAAADcQAAAAAAVAAAAAAAcQAAAAAAVAAAAAADcQAAAAAAVAAAAAADcQAAAAAAbgAAAAABbgAAAAADbgAAAAACbgAAAAADVAAAAAAAVAAAAAADcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAcQAAAAAAVAAAAAAAcQAAAAAAVAAAAAADcQAAAAAAcQAAAAAAbgAAAAACbgAAAAACbgAAAAAAbgAAAAACcQAAAAAAVAAAAAACcQAAAAAAcQAAAAAAVAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAABcQAAAAAAcQAAAAAAcQAAAAAAbgAAAAACbgAAAAACbgAAAAAAbgAAAAABcQAAAAAAVAAAAAABcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAACcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAbgAAAAAAbgAAAAACbgAAAAADbgAAAAADcQAAAAAAVAAAAAAAGwAAAAABGwAAAAADGwAAAAACcQAAAAAAcQAAAAAAcQAAAAAAGwAAAAAAGwAAAAADGwAAAAADcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAACGwAAAAACGwAAAAACGwAAAAAAcQAAAAAAVAAAAAABcQAAAAAAGwAAAAABGwAAAAAAGwAAAAABcQAAAAAAGwAAAAABGwAAAAABGwAAAAABGwAAAAADcQAAAAAAVAAAAAADGwAAAAABGwAAAAAAGwAAAAABcQAAAAAAVAAAAAACcQAAAAAAGwAAAAABGwAAAAACGwAAAAAAcQAAAAAAGwAAAAAAGwAAAAACGwAAAAABGwAAAAABcQAAAAAAVAAAAAAAGwAAAAACGwAAAAACGwAAAAACcQAAAAAAVAAAAAADcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAACcQAAAAAAcQAAAAAAGwAAAAACGwAAAAADcQAAAAAAcQAAAAAAVAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAGwAAAAABVAAAAAACVAAAAAADVAAAAAACVAAAAAAAVAAAAAACVAAAAAABVAAAAAACVAAAAAADVAAAAAABVAAAAAABVAAAAAADVAAAAAABVAAAAAADVAAAAAADVAAAAAAAVAAAAAADVAAAAAACVAAAAAACVAAAAAACVAAAAAADVAAAAAACVAAAAAAAVAAAAAADVAAAAAADVAAAAAADVAAAAAABVAAAAAACVAAAAAAAVAAAAAADVAAAAAADVAAAAAACVAAAAAADVAAAAAABVAAAAAADVAAAAAACVAAAAAADVAAAAAAAVAAAAAABVAAAAAACVAAAAAADVAAAAAABVAAAAAACVAAAAAAAVAAAAAAAVAAAAAADVAAAAAABVAAAAAACVAAAAAADVAAAAAADVAAAAAABVAAAAAACcQAAAAAAcQAAAAAAGwAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAVAAAAAADVAAAAAACcQAAAAAAGwAAAAABGwAAAAABcQAAAAAAVAAAAAACVAAAAAAD + version: 6 + -3,-2: + ind: -3,-2 + tiles: GwAAAAADGwAAAAACGwAAAAACGwAAAAADGwAAAAABGwAAAAAAGwAAAAABcQAAAAAAVAAAAAACcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAABVAAAAAACVAAAAAADVAAAAAACGwAAAAACGwAAAAABGwAAAAACGwAAAAAAGwAAAAADGwAAAAABGwAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAACVAAAAAAAVAAAAAACVAAAAAADVAAAAAABGwAAAAADGwAAAAABGwAAAAADGwAAAAAAGwAAAAAAGwAAAAACGwAAAAACcQAAAAAAVAAAAAACcQAAAAAAcQAAAAAAVAAAAAABVAAAAAAAVAAAAAAAVAAAAAADVAAAAAADcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAABcQAAAAAAVAAAAAAAVAAAAAAAVAAAAAABVAAAAAADVAAAAAADcQAAAAAAcQAAAAAAVAAAAAACcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAcQAAAAAAVAAAAAABcQAAAAAAVAAAAAADVAAAAAAAVAAAAAAAVAAAAAACVAAAAAABcQAAAAAAcQAAAAAAVAAAAAABcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAABcQAAAAAAVAAAAAACcQAAAAAAcQAAAAAAVAAAAAADVAAAAAADVAAAAAADVAAAAAAAVAAAAAAAcQAAAAAAVAAAAAABcQAAAAAAVAAAAAACcQAAAAAAcQAAAAAAVAAAAAACVAAAAAADVAAAAAACVAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAADVAAAAAACVAAAAAADcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAABcQAAAAAAAwAAAAAAVAAAAAACAwAAAAAAVAAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAcQAAAAAAVAAAAAADVAAAAAABVAAAAAABcQAAAAAAVAAAAAAAAwAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAcQAAAAAAVAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAABVAAAAAACcQAAAAAAcQAAAAAAAwAAAAAAVAAAAAAAAwAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAAwAAAAAAVAAAAAADAwAAAAAAcQAAAAAAVAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAVAAAAAAAcQAAAAAAVAAAAAACVAAAAAACVAAAAAAAcQAAAAAAVAAAAAADAwAAAAAAVAAAAAADcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAVAAAAAAAcQAAAAAAVAAAAAAAVAAAAAAAVAAAAAACVAAAAAACVAAAAAAAVAAAAAABAwAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAVAAAAAAAcQAAAAAAVAAAAAABVAAAAAACVAAAAAAAVAAAAAAAcQAAAAAAVAAAAAACVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAVAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAABVAAAAAABVAAAAAAAcQAAAAAAVAAAAAABVAAAAAABVAAAAAADcQAAAAAAVAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAcQAAAAAAcQAAAAAAVAAAAAADVAAAAAAAVAAAAAABcQAAAAAAVAAAAAACVAAAAAACVAAAAAAB + version: 6 + -4,-2: + ind: -4,-2 + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAcQAAAAAA + version: 6 + -4,-1: + ind: -4,-1 + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + version: 6 + -3,-3: + ind: -3,-3 + tiles: AAAAAAAAAAAAAAAAcAAAAAAAcQAAAAAASAAAAAAASAAAAAAASAAAAAAAcQAAAAAASAAAAAAAcQAAAAAAGwAAAAABGwAAAAAAGwAAAAAAGwAAAAACGwAAAAACGwAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcQAAAAAASAAAAAAASAAAAAAASAAAAAAASAAAAAAASAAAAAAASAAAAAAAGwAAAAAAGwAAAAAAGwAAAAADGwAAAAACGwAAAAADGwAAAAADAAAAAAAAAAAAAAAAcAAAAAAAcQAAAAAASAAAAAAASAAAAAAASAAAAAAAcQAAAAAASAAAAAAAcQAAAAAAGwAAAAABGwAAAAADGwAAAAAAGwAAAAABGwAAAAABGwAAAAACAAAAAAAAAAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAGwAAAAABcQAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAGwAAAAADGwAAAAADGwAAAAACGwAAAAACGwAAAAADGwAAAAAAGwAAAAABGwAAAAABVAAAAAABVAAAAAAAVAAAAAADAAAAAAAAAAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAGwAAAAADGwAAAAABGwAAAAACGwAAAAADGwAAAAAAGwAAAAACGwAAAAACGwAAAAACVAAAAAADVAAAAAABVAAAAAACAAAAAAAAAAAAAAAAcQAAAAAAGwAAAAACGwAAAAABGwAAAAAAGwAAAAABGwAAAAACGwAAAAABGwAAAAADGwAAAAABGwAAAAAAcQAAAAAAVAAAAAACVAAAAAABVAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAGwAAAAACGwAAAAABGwAAAAABGwAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAACVAAAAAAAVAAAAAABAAAAAAAAAAAAAAAAcQAAAAAAGwAAAAACGwAAAAAAGwAAAAADGwAAAAABcQAAAAAAGwAAAAABGwAAAAABGwAAAAABcQAAAAAAVAAAAAABVAAAAAACVAAAAAABVAAAAAADAAAAAAAAAAAAAAAAcQAAAAAAGwAAAAACGwAAAAAAGwAAAAAAGwAAAAAAcQAAAAAAGwAAAAACGwAAAAADGwAAAAAAcQAAAAAAVAAAAAADVAAAAAACVAAAAAADVAAAAAABAAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAGwAAAAAAGwAAAAABcQAAAAAAcQAAAAAAGwAAAAABGwAAAAAAGwAAAAAAcQAAAAAAVAAAAAABVAAAAAABVAAAAAADVAAAAAABAAAAAAAAcQAAAAAAGwAAAAAAGwAAAAADGwAAAAAAGwAAAAACGwAAAAAAGwAAAAADGwAAAAACGwAAAAABGwAAAAABcQAAAAAAVAAAAAACVAAAAAACVAAAAAADVAAAAAACcQAAAAAAcQAAAAAAGwAAAAABGwAAAAADGwAAAAADGwAAAAACGwAAAAACGwAAAAADGwAAAAACGwAAAAABGwAAAAAAcQAAAAAAcQAAAAAAVAAAAAADVAAAAAAAVAAAAAADcQAAAAAAcQAAAAAAGwAAAAACGwAAAAAAGwAAAAACGwAAAAADGwAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAADVAAAAAACVAAAAAAAcQAAAAAAcQAAAAAAGwAAAAACGwAAAAABGwAAAAAAGwAAAAACGwAAAAABcQAAAAAAVAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAADVAAAAAACVAAAAAABVAAAAAACGwAAAAABGwAAAAAAGwAAAAABGwAAAAAAGwAAAAABGwAAAAADGwAAAAADcQAAAAAAVAAAAAADVAAAAAABcQAAAAAAcQAAAAAAVAAAAAAAVAAAAAACVAAAAAACVAAAAAAB + version: 6 + -2,-3: + ind: -2,-3 + tiles: GwAAAAADGwAAAAAAGwAAAAADGwAAAAABGwAAAAABGwAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAcQAAAAAAcQAAAAAAVAAAAAABVAAAAAACcQAAAAAASAAAAAAASAAAAAAAGwAAAAADGwAAAAABcQAAAAAAGwAAAAAAGwAAAAAAGwAAAAABYAAAAAAAYAAAAAAAYAAAAAAAcQAAAAAAcQAAAAAAVAAAAAACVAAAAAAAcQAAAAAASAAAAAAASAAAAAAAGwAAAAABcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAADVAAAAAADcQAAAAAASAAAAAAASAAAAAAAcQAAAAAAcQAAAAAAJgAAAAAAVAAAAAABcQAAAAAAVAAAAAACcQAAAAAAVAAAAAACVAAAAAABcQAAAAAAcQAAAAAAVAAAAAAAcQAAAAAAcQAAAAAASAAAAAAASAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAASAAAAAAASAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAVAAAAAAAVAAAAAACcQAAAAAASAAAAAAASAAAAAAAcQAAAAAAVAAAAAABVAAAAAAAVAAAAAACVAAAAAABcQAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcQAAAAAAVAAAAAACVAAAAAACVAAAAAAAcQAAAAAASAAAAAAASAAAAAAAVAAAAAAAVAAAAAABVAAAAAACVAAAAAADVAAAAAADcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAASAAAAAAASAAAAAAAVAAAAAADVAAAAAABVAAAAAAAVAAAAAABVAAAAAAAcQAAAAAADwAAAAAADwAAAAAADwAAAAAAcQAAAAAAcQAAAAAAVAAAAAADcQAAAAAAcQAAAAAASAAAAAAASAAAAAAAVAAAAAAAVAAAAAADVAAAAAACVAAAAAAAVAAAAAACcQAAAAAADwAAAAAADwAAAAAADwAAAAAAcQAAAAAAVAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAASAAAAAAASAAAAAAAVAAAAAAAVAAAAAADVAAAAAACVAAAAAAAVAAAAAABcQAAAAAADwAAAAAADwAAAAAADwAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAASAAAAAAASAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAADwAAAAAADwAAAAAADwAAAAAAcQAAAAAAVAAAAAADVAAAAAADVAAAAAACcQAAAAAASAAAAAAASAAAAAAAcQAAAAAAVAAAAAACVAAAAAABVAAAAAACVAAAAAADcQAAAAAADwAAAAAADwAAAAAADwAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAACcQAAAAAASAAAAAAASAAAAAAAcQAAAAAAVAAAAAADVAAAAAABVAAAAAACVAAAAAAAcQAAAAAAGwAAAAABGwAAAAADcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAACcQAAAAAAcQAAAAAAcQAAAAAAGwAAAAADGwAAAAABcQAAAAAAVAAAAAACVAAAAAABVAAAAAADcQAAAAAASAAAAAAASAAAAAAASAAAAAAAVAAAAAACVAAAAAACVAAAAAADVAAAAAACVAAAAAACcQAAAAAAcQAAAAAAGwAAAAACcQAAAAAAVAAAAAAAVAAAAAADVAAAAAABVAAAAAADSAAAAAAASAAAAAAASAAAAAAA + version: 6 + -1,-3: + ind: -1,-3 + tiles: SAAAAAAAcQAAAAAAYAAAAAAAVAAAAAABVAAAAAACSgAAAAAAcQAAAAAADwAAAAAADwAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAGwAAAAADGwAAAAADGwAAAAABSAAAAAAAcQAAAAAAYAAAAAAAVAAAAAACVAAAAAACcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAADVAAAAAADVAAAAAADSAAAAAAASAAAAAAAYAAAAAAAVAAAAAADVAAAAAABcQAAAAAAcQAAAAAASAAAAAAASAAAAAAASAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAADVAAAAAADVAAAAAACSAAAAAAAcQAAAAAAYAAAAAAAVAAAAAABVAAAAAACSgAAAAAAcQAAAAAASAAAAAAASAAAAAAASAAAAAAAcQAAAAAAVAAAAAABVAAAAAACVAAAAAAAGwAAAAACGwAAAAAASAAAAAAAcQAAAAAAYAAAAAAAVAAAAAAAVAAAAAAASgAAAAAAcQAAAAAASAAAAAAASAAAAAAASAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAADSAAAAAAASAAAAAAAYAAAAAAAVAAAAAACVAAAAAACSgAAAAAASAAAAAAASAAAAAAASAAAAAAASAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAcQAAAAAAVAAAAAABSAAAAAAAcQAAAAAAYAAAAAAAVAAAAAADVAAAAAABSgAAAAAAcQAAAAAASAAAAAAASAAAAAAASAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAABSAAAAAAAcQAAAAAAYAAAAAAAVAAAAAADVAAAAAAASgAAAAAAcQAAAAAASAAAAAAASAAAAAAASAAAAAAAcQAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAcQAAAAAAVAAAAAACSAAAAAAASAAAAAAAYAAAAAAAVAAAAAADVAAAAAADcQAAAAAAcQAAAAAASAAAAAAASAAAAAAASAAAAAAAcQAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAcQAAAAAAVAAAAAACSAAAAAAAcQAAAAAAYAAAAAAAVAAAAAACVAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAGwAAAAABcQAAAAAAcQAAAAAAVAAAAAAASAAAAAAAcQAAAAAAYAAAAAAAVAAAAAAAVAAAAAAAVAAAAAADVAAAAAABVAAAAAAAVAAAAAADVAAAAAACcQAAAAAAGwAAAAABGwAAAAADGwAAAAAAcQAAAAAAVAAAAAADSAAAAAAASAAAAAAAYAAAAAAAVAAAAAACVAAAAAABVAAAAAABVAAAAAADVAAAAAACVAAAAAACVAAAAAADcQAAAAAAGwAAAAABGwAAAAADGwAAAAAAGwAAAAADVAAAAAAASAAAAAAAcQAAAAAAYAAAAAAAVAAAAAAAVAAAAAABVAAAAAACVAAAAAADVAAAAAABVAAAAAACVAAAAAAAcQAAAAAAGwAAAAACGwAAAAABGwAAAAAAcQAAAAAAVAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAcQAAAAAAcQAAAAAAVAAAAAADcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAADcQAAAAAAcAAAAAAAcQAAAAAAcQAAAAAASAAAAAAAcQAAAAAAcQAAAAAASgAAAAAAVAAAAAAASgAAAAAASgAAAAAASgAAAAAASgAAAAAASgAAAAAAcQAAAAAAVAAAAAAAcQAAAAAAcAAAAAAAcQAAAAAASAAAAAAASAAAAAAASAAAAAAAcQAAAAAASgAAAAAAVAAAAAACSgAAAAAASgAAAAAASgAAAAAASgAAAAAASgAAAAAAcQAAAAAAVAAAAAAA + version: 6 + -1,-4: + ind: -1,-4 + tiles: cAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcQAAAAAAVAAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAGwAAAAADGwAAAAABGwAAAAAAGwAAAAADcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAABcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAABVAAAAAADVAAAAAAAVAAAAAACcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAACVAAAAAABVAAAAAAAVAAAAAAAVAAAAAADVAAAAAAAVAAAAAADVAAAAAACVAAAAAADVAAAAAACVAAAAAACVAAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAcQAAAAAAVAAAAAADYAAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAVAAAAAAAVAAAAAACYAAAAAAAYAAAAAAAYAAAAAAAVAAAAAACVAAAAAAAcQAAAAAAVAAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAGwAAAAABGwAAAAAAGwAAAAACGwAAAAADGwAAAAAAGwAAAAADGwAAAAACcQAAAAAAVAAAAAAAVAAAAAACVAAAAAADVAAAAAABVAAAAAADVAAAAAADVAAAAAABVAAAAAACcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAcQAAAAAAcQAAAAAAVAAAAAADVAAAAAABcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAADcQAAAAAAcQAAAAAAJgAAAAAAVAAAAAADcQAAAAAAVAAAAAABcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAACVAAAAAAAVAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAADcQAAAAAAcQAAAAAAVAAAAAABVAAAAAADcQAAAAAAVAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAABcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAACcQAAAAAAVAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAASAAAAAAAcQAAAAAAYAAAAAAAVAAAAAABVAAAAAAASgAAAAAAcQAAAAAADwAAAAAADwAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAASAAAAAAASAAAAAAAYAAAAAAAVAAAAAABVAAAAAACSgAAAAAASgAAAAAADwAAAAAADwAAAAAAcQAAAAAAcQAAAAAAVAAAAAABcQAAAAAAGwAAAAACGwAAAAACGwAAAAAA + version: 6 + -2,-4: + ind: -2,-4 + tiles: bgAAAAADEQAAAAAGEQAAAAABbgAAAAACEQAAAAAAZAAAAAAAcQAAAAAAZAAAAAAAZAAAAAACcQAAAAAAcQAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAcQAAAAAAbgAAAAADbgAAAAACcQAAAAAAbgAAAAABEQAAAAABZAAAAAAAZAAAAAADJgAAAAAAcQAAAAAAZAAAAAAAcQAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAcQAAAAAAEQAAAAABbgAAAAACbgAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAEQAAAAAAbgAAAAAAbgAAAAABcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAbgAAAAADEQAAAAAEcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAbgAAAAADEQAAAAAEcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAbgAAAAADEQAAAAAEcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAADVAAAAAAAcQAAAAAAVAAAAAAAVAAAAAADcQAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAVAAAAAACcQAAAAAAVAAAAAAAVAAAAAABcQAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAcQAAAAAAVAAAAAACVAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAGwAAAAACcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAADVAAAAAAAcQAAAAAAVAAAAAABcQAAAAAAVAAAAAABcQAAAAAAVAAAAAABVAAAAAADcQAAAAAAcQAAAAAAVAAAAAACGwAAAAACcQAAAAAAVAAAAAABcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAACcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAGwAAAAADcQAAAAAAVAAAAAACcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAGwAAAAACcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAADVAAAAAABcQAAAAAASAAAAAAASAAAAAAAGwAAAAADGwAAAAADcQAAAAAAGwAAAAAAGwAAAAABGwAAAAABYAAAAAAAYAAAAAAAYAAAAAAAcQAAAAAAcQAAAAAAVAAAAAABVAAAAAACcQAAAAAASAAAAAAASAAAAAAA + version: 6 + -4,-3: + ind: -4,-3 + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAA + version: 6 + -3,-4: + ind: -3,-4 + tiles: cAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcQAAAAAAEQAAAAACEQAAAAACbgAAAAACbgAAAAAAbgAAAAACAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcQAAAAAAbgAAAAADbgAAAAABEQAAAAACcQAAAAAAEQAAAAAEcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAEQAAAAACAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcQAAAAAAEQAAAAAAbgAAAAAAbgAAAAAAcQAAAAAAbgAAAAACcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcQAAAAAAbgAAAAAAEQAAAAAAEQAAAAAAbgAAAAAAbgAAAAABcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcQAAAAAAEQAAAAAAbgAAAAAAEQAAAAAAcQAAAAAAVAAAAAADcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAcQAAAAAAGwAAAAADGwAAAAADGwAAAAABGwAAAAABGwAAAAACGwAAAAACGwAAAAAAGwAAAAABcAAAAAAAcAAAAAAAcAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAYAAAAAAAcQAAAAAAGwAAAAADGwAAAAABGwAAAAAAGwAAAAAAGwAAAAADGwAAAAABGwAAAAACGwAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcQAAAAAAGwAAAAABGwAAAAABGwAAAAABGwAAAAADGwAAAAADGwAAAAAAGwAAAAACGwAAAAADGwAAAAACGwAAAAADGwAAAAAAGwAAAAACcAAAAAAAcAAAAAAAcAAAAAAAcQAAAAAAGwAAAAADGwAAAAAAGwAAAAABcQAAAAAAGwAAAAADGwAAAAACGwAAAAABGwAAAAADGwAAAAAAGwAAAAAAGwAAAAAAGwAAAAACAAAAAAAAAAAAAAAAcAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAGwAAAAABGwAAAAAAGwAAAAACGwAAAAABGwAAAAAAGwAAAAAC + version: 6 + -4,-4: + ind: -4,-4 + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + version: 6 + -5,-4: + ind: -5,-4 + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcQAAAAAAcQAAAAAAcAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcQAAAAAAcQAAAAAAcAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + version: 6 + -6,-4: + ind: -6,-4 + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAcAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAcAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAcAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAcAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAcAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAcAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAA + version: 6 + -6,-3: + ind: -6,-3 + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + version: 6 + -5,-3: + ind: -5,-3 + tiles: AAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + version: 6 + -4,-5: + ind: -4,-5 + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAA + version: 6 + -3,-5: + ind: -3,-5 + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcQAAAAAAPAAAAAAAPAAAAAAAPAAAAAAAcQAAAAAAbgAAAAAC + version: 6 + -2,-5: + ind: -2,-5 + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAZAAAAAAAZAAAAAABcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcQAAAAAAcQAAAAAAVAAAAAADcQAAAAAAcQAAAAAAZAAAAAABZAAAAAABcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcQAAAAAAVAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAZAAAAAACZAAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAACcQAAAAAAZAAAAAABcQAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAEQAAAAABEQAAAAAGbgAAAAADbgAAAAACbgAAAAADcQAAAAAAZAAAAAAAZAAAAAABcQAAAAAAZAAAAAABcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAA + version: 6 + 2,-1: + ind: 2,-1 + tiles: VAAAAAACVAAAAAAAVAAAAAABcQAAAAAAVAAAAAAAVAAAAAADVAAAAAADcQAAAAAAVAAAAAACVAAAAAACcQAAAAAAVAAAAAACVAAAAAADcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAABVAAAAAAAVAAAAAAAcQAAAAAAVAAAAAADVAAAAAAAVAAAAAADcQAAAAAAVAAAAAADVAAAAAADcQAAAAAAVAAAAAABVAAAAAADVAAAAAADVAAAAAADVAAAAAACcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAADcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAABcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAADVAAAAAADVAAAAAACVAAAAAAAVAAAAAABVAAAAAAAVAAAAAABVAAAAAAAVAAAAAADVAAAAAAAVAAAAAADVAAAAAABVAAAAAAAVAAAAAACVAAAAAAAVAAAAAABVAAAAAACVAAAAAABVAAAAAABVAAAAAADVAAAAAAAVAAAAAACVAAAAAADVAAAAAADVAAAAAABVAAAAAADVAAAAAADVAAAAAABVAAAAAADcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAVAAAAAABVAAAAAABVAAAAAABVAAAAAACVAAAAAADVAAAAAACVAAAAAAAVAAAAAABVAAAAAAAVAAAAAABVAAAAAADVAAAAAABcQAAAAAAcAAAAAAAAAAAAAAAVAAAAAADVAAAAAAAMAAAAAABVAAAAAACVAAAAAADVAAAAAAAVAAAAAADVAAAAAACVAAAAAACMAAAAAADVAAAAAABVAAAAAABVAAAAAAAcQAAAAAAcAAAAAAAAAAAAAAAVAAAAAAAVAAAAAACMAAAAAAAMAAAAAAAcQAAAAAAMAAAAAABMAAAAAAAcQAAAAAAMAAAAAADMAAAAAABVAAAAAABVAAAAAADVAAAAAACcQAAAAAAcAAAAAAAAAAAAAAAVAAAAAADVAAAAAACMAAAAAACMAAAAAABcQAAAAAAMAAAAAACMAAAAAAAcQAAAAAAMAAAAAAAMAAAAAADVAAAAAADVAAAAAAAVAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAACVAAAAAABMAAAAAABVAAAAAAAVAAAAAACVAAAAAABVAAAAAACVAAAAAABVAAAAAABMAAAAAACVAAAAAAAVAAAAAABVAAAAAACVAAAAAAAVAAAAAABVAAAAAACVAAAAAAAVAAAAAAAVAAAAAADVAAAAAABVAAAAAAAVAAAAAABVAAAAAADVAAAAAABVAAAAAABVAAAAAADVAAAAAAAVAAAAAAAVAAAAAADcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAVAAAAAABVAAAAAABVAAAAAABVAAAAAABVAAAAAAAVAAAAAAAVAAAAAABVAAAAAAAVAAAAAADVAAAAAACVAAAAAABVAAAAAACVAAAAAABVAAAAAADVAAAAAABMAAAAAAAVAAAAAAAVAAAAAACVAAAAAACVAAAAAADbgAAAAABbgAAAAAAbgAAAAADbgAAAAADVAAAAAADVAAAAAABVAAAAAACVAAAAAACcQAAAAAAcQAAAAAAcQAAAAAAMAAAAAADVAAAAAAAVAAAAAACVAAAAAADVAAAAAABbgAAAAACbgAAAAABbgAAAAADbgAAAAADcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAcQAAAAAAVAAAAAADVAAAAAADcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAbgAAAAADEQAAAAABEQAAAAABcQAAAAAAAAAAAAAAAAAAAAAAVAAAAAAAVAAAAAABVAAAAAACVAAAAAACVAAAAAACcQAAAAAAEQAAAAABEQAAAAAFEQAAAAAFbgAAAAABEQAAAAACbgAAAAAAEQAAAAACcQAAAAAAAAAAAAAAAAAAAAAA + version: 6 + 2,0: + ind: 2,0 + tiles: VAAAAAADVAAAAAABVAAAAAACVAAAAAAAVAAAAAABcQAAAAAAbgAAAAADbgAAAAABbgAAAAADcQAAAAAAbgAAAAAAEQAAAAADEQAAAAACcQAAAAAAAAAAAAAAAAAAAAAAVAAAAAACVAAAAAADVAAAAAACVAAAAAABVAAAAAABcQAAAAAAbgAAAAADEQAAAAAFbgAAAAABcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAVAAAAAABVAAAAAADVAAAAAADVAAAAAABVAAAAAABcQAAAAAAbgAAAAAAbgAAAAAAbgAAAAACbgAAAAABbgAAAAAAbgAAAAABcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAbgAAAAADbgAAAAADbgAAAAABbgAAAAAAbgAAAAAAbgAAAAADcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVAAAAAABVAAAAAABVAAAAAADVAAAAAAAcQAAAAAAEQAAAAAFbgAAAAACAgAAAAAAbgAAAAABbgAAAAADbgAAAAAAbgAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVAAAAAACVAAAAAABVAAAAAABVAAAAAAAcQAAAAAAbgAAAAABAgAAAAAAAgAAAAAAbgAAAAAAbgAAAAACbgAAAAABbgAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVAAAAAACVAAAAAACVAAAAAADVAAAAAABcQAAAAAAbgAAAAAAbgAAAAACbgAAAAADbgAAAAADbgAAAAACbgAAAAABbgAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVAAAAAACVAAAAAAAVAAAAAADVAAAAAAAbgAAAAAAbgAAAAADbgAAAAADbgAAAAAAbgAAAAAAbgAAAAACbgAAAAACbgAAAAAAcQAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAVAAAAAAAVAAAAAABVAAAAAADVAAAAAADcQAAAAAAbgAAAAACbgAAAAAAbgAAAAADbgAAAAABbgAAAAABbgAAAAABbgAAAAAAcQAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAbgAAAAAAbgAAAAAAbgAAAAADbgAAAAABcQAAAAAAbgAAAAADbgAAAAADbgAAAAADbgAAAAABbgAAAAACbgAAAAAAbgAAAAABcQAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAbgAAAAABbgAAAAAAbgAAAAACbgAAAAABcQAAAAAAbgAAAAADbgAAAAABbgAAAAAAbgAAAAAAbgAAAAAAbgAAAAABcQAAAAAAcQAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAbgAAAAACbgAAAAABbgAAAAACbgAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAbgAAAAABcQAAAAAAcQAAAAAAcQAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAABVAAAAAADcQAAAAAAbgAAAAAAbgAAAAABbgAAAAAAbgAAAAACcQAAAAAAcAAAAAAAcAAAAAAAcAAAAAAASgAAAAAASgAAAAAASgAAAAAASgAAAAAASgAAAAAAVAAAAAAAVAAAAAABcQAAAAAAbgAAAAAAbgAAAAABbgAAAAACbgAAAAACcQAAAAAAcAAAAAAAAAAAAAAAcAAAAAAAVAAAAAABVAAAAAADVAAAAAABVAAAAAACVAAAAAADVAAAAAACSgAAAAAAcQAAAAAAbgAAAAAAbgAAAAABbgAAAAADbgAAAAAAcQAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAVAAAAAABVAAAAAACSgAAAAAASgAAAAAAVAAAAAADVAAAAAACSgAAAAAAcQAAAAAAbgAAAAADbgAAAAAAbgAAAAADbgAAAAAAcQAAAAAAcAAAAAAAcAAAAAAAcAAAAAAA + version: 6 + 1,-2: + ind: 1,-2 + tiles: SgAAAAAAbQAAAAAAbQAAAAABbQAAAAAAbQAAAAAAbQAAAAABGwAAAAABGwAAAAAAcQAAAAAAVAAAAAABVAAAAAACVAAAAAABVAAAAAAAcQAAAAAAVAAAAAACVAAAAAADSgAAAAAAbQAAAAAAbQAAAAAAbQAAAAADbQAAAAAAbQAAAAABcQAAAAAAGwAAAAACcQAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAACVAAAAAAAVAAAAAADVAAAAAACcQAAAAAAbQAAAAACbQAAAAABbQAAAAACcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAABVAAAAAABVAAAAAABVAAAAAAAcQAAAAAAVAAAAAACVAAAAAADVAAAAAACVAAAAAAAVAAAAAACVAAAAAADVAAAAAACVAAAAAABVAAAAAAAVAAAAAACcQAAAAAAVAAAAAACVAAAAAADVAAAAAACVAAAAAACcQAAAAAAVAAAAAAAVAAAAAAAVAAAAAADVAAAAAAAVAAAAAADVAAAAAADVAAAAAAAVAAAAAAAVAAAAAADVAAAAAABcQAAAAAAVAAAAAAAVAAAAAACVAAAAAAAVAAAAAACcQAAAAAAVAAAAAABVAAAAAABSgAAAAAASgAAAAAASgAAAAAASgAAAAAAcQAAAAAAVAAAAAACVAAAAAACVAAAAAACcQAAAAAAcQAAAAAAVAAAAAABVAAAAAADcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAASgAAAAAASgAAAAAASgAAAAAASgAAAAAASgAAAAAAVAAAAAAAVAAAAAADVAAAAAAAVAAAAAAAVAAAAAABVAAAAAADVAAAAAABVAAAAAABVAAAAAACVAAAAAAAVAAAAAADVAAAAAAAVAAAAAABVAAAAAAAVAAAAAAAVAAAAAACVAAAAAABVAAAAAAAVAAAAAACVAAAAAACVAAAAAAAVAAAAAABVAAAAAADVAAAAAABVAAAAAACVAAAAAAAVAAAAAABVAAAAAABVAAAAAAAVAAAAAADVAAAAAABVAAAAAAAVAAAAAAAVAAAAAACVAAAAAADVAAAAAACVAAAAAAAVAAAAAAAVAAAAAACVAAAAAACVAAAAAAAVAAAAAACVAAAAAADVAAAAAABVAAAAAACVAAAAAABVAAAAAABVAAAAAAAVAAAAAACVAAAAAADVAAAAAABcQAAAAAAVAAAAAACcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAVAAAAAAAcQAAAAAAcQAAAAAAVAAAAAACcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAVAAAAAACcQAAAAAAVAAAAAADVAAAAAABVAAAAAACVAAAAAABVAAAAAACVAAAAAABVAAAAAAAVAAAAAADVAAAAAACcQAAAAAAVAAAAAACVAAAAAACVAAAAAACVAAAAAABVAAAAAABcQAAAAAAVAAAAAABVAAAAAABVAAAAAABVAAAAAABVAAAAAADVAAAAAACVAAAAAAAVAAAAAAAVAAAAAABcQAAAAAAVAAAAAABVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAACcQAAAAAAVAAAAAADVAAAAAABVAAAAAADVAAAAAAAVAAAAAADVAAAAAACVAAAAAADVAAAAAADVAAAAAAAcQAAAAAAVAAAAAABVAAAAAADVAAAAAABVAAAAAADVAAAAAABcQAAAAAAVAAAAAACVAAAAAADVAAAAAAAVAAAAAACcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAACVAAAAAAAVAAAAAADVAAAAAABVAAAAAABcQAAAAAAVAAAAAABVAAAAAAAVAAAAAADVAAAAAACVAAAAAAAVAAAAAAAVAAAAAADVAAAAAADVAAAAAADcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAACVAAAAAACVAAAAAACVAAAAAAB + version: 6 + 1,1: + ind: 1,1 + tiles: GwAAAAABGwAAAAAAcQAAAAAAZAAAAAAAZAAAAAADZAAAAAABZAAAAAADZAAAAAACZAAAAAACZAAAAAACZAAAAAABcQAAAAAAVAAAAAABVAAAAAACVAAAAAABVAAAAAAAGwAAAAABGwAAAAADcQAAAAAAZAAAAAADZAAAAAAAZAAAAAACZAAAAAACZAAAAAADZAAAAAACZAAAAAABZAAAAAAAcQAAAAAAVAAAAAADVAAAAAAAVAAAAAAAcQAAAAAAGwAAAAACGwAAAAAAcQAAAAAAZAAAAAABZAAAAAABZAAAAAABZAAAAAADZAAAAAABZAAAAAADZAAAAAAAZAAAAAABcQAAAAAAVAAAAAABVAAAAAABVAAAAAACcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAZAAAAAACZAAAAAADZAAAAAACZAAAAAABZAAAAAACZAAAAAABcQAAAAAAVAAAAAACVAAAAAABVAAAAAADcQAAAAAAVQAAAAAAVQAAAAAAVQAAAAAAVQAAAAAAcQAAAAAAcQAAAAAAKgAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAABVAAAAAABVAAAAAAAcQAAAAAAVQAAAAAAVQAAAAAAVQAAAAAAVQAAAAAAcQAAAAAAKgAAAAAAKgAAAAAAKgAAAAAAKgAAAAAAKgAAAAAAKgAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAcQAAAAAAcQAAAAAAVQAAAAAAVQAAAAAAVQAAAAAAVQAAAAAAcQAAAAAAKgAAAAAAKgAAAAAAKgAAAAAAKgAAAAAAKgAAAAAAKgAAAAAAcQAAAAAAVAAAAAAAVAAAAAACVAAAAAACcQAAAAAAVQAAAAAAVQAAAAAAVQAAAAAAVQAAAAAAcQAAAAAAKgAAAAAAKgAAAAAAKgAAAAAAKgAAAAAAKgAAAAAAKgAAAAAAcQAAAAAAVAAAAAADVAAAAAACVAAAAAACVAAAAAADcQAAAAAAVAAAAAABcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAABVAAAAAADVAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAABVAAAAAACVAAAAAADVAAAAAADcQAAAAAAVAAAAAADVAAAAAACVAAAAAADcQAAAAAAcQAAAAAAVAAAAAABVAAAAAAAVAAAAAABcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAVAAAAAADVAAAAAADVAAAAAABcQAAAAAAVAAAAAABVAAAAAADVAAAAAADVAAAAAABcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAACVAAAAAADVAAAAAABVAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAVAAAAAABVAAAAAACVAAAAAAAcQAAAAAAGwAAAAADGwAAAAAAGwAAAAADGwAAAAACGwAAAAABGwAAAAAAGwAAAAAAGwAAAAABVAAAAAADcQAAAAAAVAAAAAACVAAAAAACVAAAAAADVAAAAAADVAAAAAACcQAAAAAAGwAAAAADGwAAAAABGwAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAVAAAAAAAcQAAAAAAVAAAAAADVAAAAAADVAAAAAAAVAAAAAAAVAAAAAAAcQAAAAAAGwAAAAACGwAAAAABGwAAAAABGwAAAAADGwAAAAADGwAAAAAAGwAAAAACGwAAAAADGwAAAAACVAAAAAAAVAAAAAABVAAAAAABVAAAAAACVAAAAAADcQAAAAAA + version: 6 + 2,1: + ind: 2,1 + tiles: VAAAAAAAVAAAAAAASgAAAAAASgAAAAAAVAAAAAACVAAAAAAASgAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAVAAAAAAAVAAAAAADSgAAAAAASgAAAAAAVAAAAAACVAAAAAADSgAAAAAAcQAAAAAASgAAAAAASgAAAAAASgAAAAAASgAAAAAAcQAAAAAAcAAAAAAAcAAAAAAAcAAAAAAASgAAAAAAVAAAAAABVAAAAAACVAAAAAACVAAAAAAAVAAAAAADVAAAAAACVAAAAAADSgAAAAAASgAAAAAASgAAAAAASgAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASgAAAAAAVAAAAAAASgAAAAAASgAAAAAASgAAAAAAVAAAAAABSgAAAAAAcQAAAAAASgAAAAAASgAAAAAASgAAAAAASgAAAAAAcQAAAAAAcAAAAAAAAAAAAAAAAAAAAAAASgAAAAAAVAAAAAAASgAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAUAAAAAAAKgAAAAAAKgAAAAAAUAAAAAAAUAAAAAAAcQAAAAAAcQAAAAAAVAAAAAABcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAADVAAAAAADVAAAAAAAcQAAAAAAUAAAAAAAKgAAAAAAKgAAAAAAUAAAAAAAUAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAACVAAAAAABVAAAAAADcQAAAAAAKgAAAAAAKgAAAAAAKgAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAABVAAAAAAAVAAAAAAAcQAAAAAAUAAAAAAAUAAAAAAAKgAAAAAAUAAAAAAAUAAAAAAAcQAAAAAAVAAAAAACcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAABcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAVAAAAAABVAAAAAABVAAAAAAAVAAAAAACVAAAAAACVAAAAAACVAAAAAAAVAAAAAACcQAAAAAAGwAAAAACGwAAAAABGwAAAAADcQAAAAAAAAAAAAAAAAAAAAAAVAAAAAABVAAAAAADVAAAAAABVAAAAAADVAAAAAACVAAAAAACVAAAAAACVAAAAAABVAAAAAAAVAAAAAACVAAAAAADVAAAAAAAVAAAAAACcQAAAAAAAAAAAAAAAAAAAAAAGwAAAAAAGwAAAAADGwAAAAADGwAAAAAAGwAAAAACGwAAAAABGwAAAAADGwAAAAADVAAAAAADVAAAAAABVAAAAAABVAAAAAACVAAAAAADcQAAAAAAAAAAAAAAAAAAAAAAVAAAAAADVAAAAAADVAAAAAADVAAAAAADVAAAAAABVAAAAAADVAAAAAAAVAAAAAACVAAAAAACVAAAAAAAVAAAAAACVAAAAAADVAAAAAADcQAAAAAAAAAAAAAAAAAAAAAAVAAAAAABVAAAAAABVAAAAAAAVAAAAAABVAAAAAAAVAAAAAACVAAAAAAAVAAAAAACVAAAAAACcQAAAAAAVAAAAAADVAAAAAADVAAAAAABcQAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAVAAAAAACVAAAAAABcQAAAAAAcQAAAAAAcQAAAAAA + version: 6 + 3,1: + ind: 3,1 + tiles: cAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAcQAAAAAAcQAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAcQAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcQAAAAAAcQAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAA + version: 6 + 3,0: + ind: 3,0 + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAA + version: 6 + 4,1: + ind: 4,1 + tiles: cAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + version: 6 + 4,0: + ind: 4,0 + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + version: 6 + 3,2: + ind: 3,2 + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + version: 6 + 1,2: + ind: 1,2 + tiles: cQAAAAAAGwAAAAADGwAAAAABGwAAAAABGwAAAAABGwAAAAAAGwAAAAAAGwAAAAAAGwAAAAADVAAAAAADcQAAAAAAVAAAAAADVAAAAAAAVAAAAAADVAAAAAADcQAAAAAAcQAAAAAAGwAAAAAAGwAAAAACGwAAAAABGwAAAAAAGwAAAAADGwAAAAADGwAAAAABGwAAAAABVAAAAAABcQAAAAAAVAAAAAABVAAAAAAAVAAAAAACVAAAAAABcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAGwAAAAACGwAAAAAAGwAAAAACcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAACVAAAAAABVAAAAAAAcQAAAAAAcQAAAAAAGwAAAAACGwAAAAABGwAAAAAAGwAAAAAAGwAAAAABcQAAAAAAbgAAAAADbgAAAAADPAAAAAAAPAAAAAAAcQAAAAAAVAAAAAACVAAAAAAAVAAAAAACVAAAAAADcQAAAAAAcQAAAAAAcQAAAAAAGwAAAAABGwAAAAADGwAAAAAAcQAAAAAAbgAAAAABbgAAAAAAbgAAAAACbgAAAAACVAAAAAAAVAAAAAACVAAAAAACVAAAAAACcQAAAAAAcQAAAAAAGwAAAAABcQAAAAAAGwAAAAABGwAAAAACGwAAAAACcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAADVAAAAAADVAAAAAADcQAAAAAAGwAAAAACGwAAAAAAcQAAAAAAGwAAAAACGwAAAAABGwAAAAADcQAAAAAAbgAAAAADbgAAAAACbgAAAAADbgAAAAADcQAAAAAAVAAAAAAAVAAAAAABVAAAAAABVAAAAAACGwAAAAAAGwAAAAADGwAAAAACGwAAAAABGwAAAAAAGwAAAAAAcQAAAAAAbgAAAAADbgAAAAADbgAAAAAAbgAAAAAAVAAAAAABVAAAAAABVAAAAAABVAAAAAACcQAAAAAAGwAAAAADGwAAAAADcQAAAAAAGwAAAAABGwAAAAAAGwAAAAABcQAAAAAAbgAAAAAAbgAAAAADPAAAAAAAPAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAGwAAAAADcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAGwAAAAABGwAAAAAAGwAAAAACGwAAAAAAGwAAAAABGwAAAAADGwAAAAADcQAAAAAAcAAAAAAAcAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAGwAAAAAAGwAAAAAAGwAAAAADGwAAAAACGwAAAAACGwAAAAADGwAAAAACGwAAAAADcQAAAAAAcAAAAAAAcAAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAcQAAAAAAGwAAAAAAGwAAAAADGwAAAAABGwAAAAAAGwAAAAADGwAAAAABGwAAAAACcQAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAcQAAAAAAGwAAAAAAGwAAAAAAGwAAAAADGwAAAAACGwAAAAAAcQAAAAAAcQAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAcAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAA + version: 6 + 0,2: + ind: 0,2 + tiles: VAAAAAAAVAAAAAADVAAAAAAAcQAAAAAAYQAAAAAAYQAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAcQAAAAAAcAAAAAAAAAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAVAAAAAADVAAAAAADcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcAAAAAAAAAAAAAAAcQAAAAAAPAAAAAAAcQAAAAAADQAAAAAAVAAAAAACVAAAAAADVAAAAAADGwAAAAACGwAAAAABGwAAAAADGwAAAAABGwAAAAACDwAAAAAAcQAAAAAAcAAAAAAAcAAAAAAAcQAAAAAAPAAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAVAAAAAADVAAAAAADcQAAAAAADwAAAAAADwAAAAAADwAAAAAAGwAAAAABDwAAAAAAcQAAAAAAAAAAAAAAcAAAAAAAcQAAAAAAPAAAAAAAPAAAAAAAPAAAAAAAVAAAAAACVAAAAAABVAAAAAADcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAASAAAAAAAcQAAAAAAcQAAAAAAcAAAAAAAcAAAAAAAcQAAAAAAPAAAAAAAPAAAAAAAPAAAAAAAVAAAAAABVAAAAAAAVAAAAAADcQAAAAAANAAAAAAASAAAAAAASAAAAAAASAAAAAAANAAAAAAAcQAAAAAAAAAAAAAAcAAAAAAAcQAAAAAAcQAAAAAAGwAAAAACcQAAAAAAVAAAAAADVAAAAAADVAAAAAADcQAAAAAANAAAAAAANAAAAAAASAAAAAAANAAAAAAANAAAAAAAcQAAAAAAAAAAAAAAcAAAAAAAcQAAAAAAYAAAAAAAGwAAAAABGwAAAAACVAAAAAADVAAAAAABVAAAAAACcQAAAAAANAAAAAAANAAAAAAASAAAAAAANAAAAAAANAAAAAAAcQAAAAAAcAAAAAAAcAAAAAAAcQAAAAAAYAAAAAAAGwAAAAACGwAAAAADVAAAAAABVAAAAAABVAAAAAABcQAAAAAASAAAAAAASAAAAAAASAAAAAAASAAAAAAASAAAAAAAcQAAAAAAAAAAAAAAcAAAAAAAcQAAAAAAYAAAAAAAGwAAAAACGwAAAAACVAAAAAADVAAAAAADVAAAAAABcQAAAAAANAAAAAAANAAAAAAASAAAAAAANAAAAAAANAAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAGwAAAAACVAAAAAAAVAAAAAADVAAAAAAAcQAAAAAANAAAAAAANAAAAAAASAAAAAAANAAAAAAANAAAAAAAcQAAAAAAcAAAAAAAAAAAAAAAcQAAAAAAbgAAAAACbgAAAAABbgAAAAADVAAAAAAAVAAAAAACVAAAAAADcQAAAAAASAAAAAAASAAAAAAASAAAAAAASAAAAAAASAAAAAAAcQAAAAAAcAAAAAAAAAAAAAAAcQAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAVAAAAAADVAAAAAACVAAAAAABcQAAAAAADwAAAAAADwAAAAAADwAAAAAADwAAAAAADwAAAAAAcQAAAAAAcAAAAAAAcAAAAAAAcQAAAAAAbgAAAAADbgAAAAAAbgAAAAADVAAAAAABVAAAAAABVAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAADVAAAAAABVAAAAAADVAAAAAACVAAAAAADcQAAAAAAbgAAAAAAbgAAAAADbgAAAAACbgAAAAADcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcAAAAAAAVAAAAAACVAAAAAAAVAAAAAABMAAAAAABVAAAAAABVAAAAAADbgAAAAAAbgAAAAADbgAAAAAAbgAAAAADcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcAAAAAAA + version: 6 + 2,2: + ind: 2,2 + tiles: SAAAAAAASAAAAAAASAAAAAAASAAAAAAASAAAAAAASAAAAAAASAAAAAAASAAAAAAASAAAAAAAcQAAAAAAVAAAAAACVAAAAAABVAAAAAADVAAAAAADVAAAAAADVAAAAAACSAAAAAAASAAAAAAASAAAAAAASAAAAAAASAAAAAAASAAAAAAASAAAAAAASAAAAAAASAAAAAAAcQAAAAAAVAAAAAABVAAAAAACVAAAAAACcQAAAAAAcQAAAAAAcQAAAAAASAAAAAAASAAAAAAASAAAAAAASAAAAAAASAAAAAAASAAAAAAASAAAAAAASAAAAAAASAAAAAAAcQAAAAAAVAAAAAABVAAAAAAAVAAAAAAAcQAAAAAAAAAAAAAAAAAAAAAASAAAAAAASAAAAAAASAAAAAAASAAAAAAASAAAAAAASAAAAAAASAAAAAAASAAAAAAASAAAAAAAcQAAAAAAVAAAAAACVAAAAAAAVAAAAAADcQAAAAAAAAAAAAAAAAAAAAAASAAAAAAASAAAAAAASAAAAAAASAAAAAAASAAAAAAASAAAAAAASAAAAAAASAAAAAAASAAAAAAAcQAAAAAAVAAAAAADVAAAAAAAVAAAAAAAcQAAAAAAAAAAAAAAAAAAAAAASAAAAAAASAAAAAAASAAAAAAASAAAAAAASAAAAAAASAAAAAAASAAAAAAASAAAAAAASAAAAAAAcQAAAAAAVAAAAAABVAAAAAACVAAAAAAAcQAAAAAAAAAAAAAAAAAAAAAASAAAAAAASAAAAAAASAAAAAAASAAAAAAASAAAAAAASAAAAAAASAAAAAAASAAAAAAASAAAAAAAcQAAAAAAVAAAAAACVAAAAAAAVAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAASAAAAAAASAAAAAAASAAAAAAASAAAAAAASAAAAAAASAAAAAAASAAAAAAASAAAAAAASAAAAAAAcQAAAAAAVAAAAAABVAAAAAACVAAAAAADVAAAAAABVAAAAAACVAAAAAAASAAAAAAASAAAAAAASAAAAAAASAAAAAAASAAAAAAASAAAAAAASAAAAAAASAAAAAAASAAAAAAAcQAAAAAAVAAAAAADVAAAAAADVAAAAAACcQAAAAAAcQAAAAAAcQAAAAAASAAAAAAASAAAAAAASAAAAAAASAAAAAAASAAAAAAASAAAAAAASAAAAAAASAAAAAAASAAAAAAAcQAAAAAAVAAAAAAAVAAAAAAAVAAAAAACcQAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAVAAAAAADVAAAAAABcQAAAAAAcAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcQAAAAAAVAAAAAAAVAAAAAACVAAAAAACcQAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcQAAAAAAVAAAAAADVAAAAAADVAAAAAACcQAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcQAAAAAAVAAAAAADVAAAAAABVAAAAAABcQAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcQAAAAAAVAAAAAACVAAAAAABVAAAAAADcQAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcAAAAAAAcAAAAAAA + version: 6 + 2,3: + ind: 2,3 + tiles: cAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + version: 6 + 1,3: + ind: 1,3 + tiles: cAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + version: 6 + 0,3: + ind: 0,3 + tiles: VAAAAAADVAAAAAADVAAAAAACMAAAAAACVAAAAAABcQAAAAAAbgAAAAACbgAAAAACbgAAAAACbgAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcAAAAAAAVAAAAAABVAAAAAABVAAAAAAAMAAAAAADVAAAAAACcQAAAAAAbgAAAAADbgAAAAADbgAAAAABbgAAAAABcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcAAAAAAAVAAAAAABVAAAAAACVAAAAAACVAAAAAACVAAAAAADcQAAAAAAbgAAAAABbgAAAAAAbgAAAAACbgAAAAADcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcAAAAAAAVAAAAAABVAAAAAACVAAAAAADcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAGwAAAAACcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcAAAAAAAVAAAAAACVAAAAAACVAAAAAACGwAAAAABGwAAAAADGwAAAAAAGwAAAAAAGwAAAAABGwAAAAADGwAAAAADGwAAAAACcQAAAAAAcQAAAAAAcQAAAAAAcAAAAAAAcAAAAAAAVAAAAAAAVAAAAAABVAAAAAABcQAAAAAAGwAAAAACGwAAAAADGwAAAAABGwAAAAADGwAAAAADGwAAAAADGwAAAAABcQAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAcQAAAAAAGwAAAAAAGwAAAAAAGwAAAAADGwAAAAADGwAAAAAAGwAAAAADGwAAAAABcQAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAVAAAAAADVAAAAAABVAAAAAACcQAAAAAAGwAAAAABGwAAAAAAGwAAAAACGwAAAAAAGwAAAAACGwAAAAAAGwAAAAAAcQAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAVAAAAAACVAAAAAAAVAAAAAAAcQAAAAAAGwAAAAAAGwAAAAABGwAAAAAAGwAAAAABGwAAAAADGwAAAAACcQAAAAAAcQAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcQAAAAAAcQAAAAAAVAAAAAABcQAAAAAAcQAAAAAAGwAAAAADcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAVAAAAAABVAAAAAABVAAAAAAAVAAAAAADVAAAAAAAVAAAAAACVAAAAAABVAAAAAACcQAAAAAAcQAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAVAAAAAADVAAAAAACVAAAAAADVAAAAAACVAAAAAADVAAAAAABVAAAAAACVAAAAAAAcQAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAVAAAAAAAVAAAAAAAVAAAAAADVAAAAAAAVAAAAAABVAAAAAAAVAAAAAACVAAAAAABcQAAAAAAcQAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAVAAAAAABVAAAAAAAVAAAAAAAVAAAAAADVAAAAAABVAAAAAAAVAAAAAADcQAAAAAAcQAAAAAAcQAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAACcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcAAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcAAAAAAAcQAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + version: 6 + 2,-2: + ind: 2,-2 + tiles: VAAAAAACcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAADVAAAAAACVAAAAAAAVAAAAAADVAAAAAAAVAAAAAACVAAAAAABVAAAAAACGwAAAAAAGwAAAAABVAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAASgAAAAAASgAAAAAAVAAAAAACSgAAAAAASgAAAAAAcQAAAAAASgAAAAAAVAAAAAABGwAAAAABGwAAAAAAVAAAAAABcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAASgAAAAAASgAAAAAAVAAAAAABSgAAAAAASgAAAAAAcQAAAAAASgAAAAAAVAAAAAABSgAAAAAASgAAAAAAVAAAAAABcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAcQAAAAAASgAAAAAASgAAAAAAVAAAAAABSgAAAAAASgAAAAAAcQAAAAAASgAAAAAASgAAAAAASgAAAAAASgAAAAAAVAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAADcQAAAAAASgAAAAAASgAAAAAAVAAAAAADSgAAAAAASgAAAAAAcQAAAAAASgAAAAAASgAAAAAASgAAAAAASgAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAASgAAAAAAVAAAAAACcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAACVAAAAAABVAAAAAAAVAAAAAACVAAAAAADVAAAAAABVAAAAAAAVAAAAAABVAAAAAAAVAAAAAAAcQAAAAAAbgAAAAABbgAAAAABbgAAAAAAbgAAAAACcQAAAAAAVAAAAAADVAAAAAADVAAAAAACVAAAAAADVAAAAAACVAAAAAABVAAAAAAAVAAAAAADVAAAAAACVAAAAAAAVAAAAAAAbgAAAAACbgAAAAABbgAAAAABbgAAAAACcQAAAAAAVAAAAAAAVAAAAAABVAAAAAADVAAAAAAAVAAAAAABVAAAAAAAVAAAAAADVAAAAAABVAAAAAACVAAAAAAAcQAAAAAAbgAAAAACbgAAAAADbgAAAAABbgAAAAABcQAAAAAAVAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAABVAAAAAAAVAAAAAADVAAAAAADVAAAAAAAVAAAAAAAcQAAAAAAbgAAAAAAbgAAAAABbgAAAAACbgAAAAAAcQAAAAAAVAAAAAADVAAAAAADVAAAAAACcQAAAAAAVAAAAAACVAAAAAADVAAAAAACVAAAAAADVAAAAAAAVAAAAAABcQAAAAAAbgAAAAAAbgAAAAACbgAAAAADbgAAAAABcQAAAAAAVAAAAAADVAAAAAACVAAAAAACcQAAAAAAVAAAAAADVAAAAAABVAAAAAABGwAAAAADGwAAAAADGwAAAAADcQAAAAAAbgAAAAAAbgAAAAACbgAAAAADbgAAAAAAcQAAAAAAVAAAAAADVAAAAAACVAAAAAAAcQAAAAAAVAAAAAAAVAAAAAACVAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAADVAAAAAAAVAAAAAABcQAAAAAAVAAAAAADVAAAAAADVAAAAAADcQAAAAAAVAAAAAADVAAAAAACcQAAAAAAVAAAAAABVAAAAAACVAAAAAACVAAAAAACcQAAAAAAVAAAAAACVAAAAAADVAAAAAADcQAAAAAAVAAAAAABVAAAAAADVAAAAAADcQAAAAAAVAAAAAADVAAAAAACcQAAAAAAVAAAAAAAVAAAAAADVAAAAAADVAAAAAADcQAAAAAAVAAAAAABVAAAAAADVAAAAAABcQAAAAAAVAAAAAAAVAAAAAACVAAAAAAAVAAAAAABVAAAAAAAVAAAAAABcQAAAAAAVAAAAAACVAAAAAAAVAAAAAADVAAAAAAAcQAAAAAA + version: 6 + -1,2: + ind: -1,2 + tiles: VAAAAAACVAAAAAACVAAAAAACVAAAAAADVAAAAAADVAAAAAADVAAAAAADVAAAAAABVAAAAAABVAAAAAABGwAAAAACVAAAAAACcQAAAAAAVAAAAAACcQAAAAAAVAAAAAAAVAAAAAACVAAAAAAAcQAAAAAAVAAAAAADVAAAAAABVAAAAAABVAAAAAAAVAAAAAADVAAAAAAAVAAAAAAAGwAAAAABVAAAAAAAVAAAAAADVAAAAAAAcQAAAAAAVAAAAAADVAAAAAAAVAAAAAACcQAAAAAAVAAAAAACVAAAAAACVAAAAAABVAAAAAADVAAAAAADVAAAAAAAVAAAAAABGwAAAAADVAAAAAABVAAAAAABVAAAAAADcQAAAAAAVAAAAAABVAAAAAADVAAAAAACcQAAAAAAVAAAAAADVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAACcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAADcQAAAAAAVAAAAAADcQAAAAAAVAAAAAAAVAAAAAACVAAAAAABcQAAAAAAVAAAAAACVAAAAAAAcQAAAAAAVAAAAAAAcQAAAAAAcQAAAAAAVAAAAAABVAAAAAAAVAAAAAAAVAAAAAACVAAAAAACcQAAAAAAVAAAAAADcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAADcQAAAAAAcQAAAAAAVAAAAAACVAAAAAAAcQAAAAAAVAAAAAADVAAAAAADVAAAAAADVAAAAAADVAAAAAAAVAAAAAACVAAAAAAAVAAAAAADVAAAAAACVAAAAAADVAAAAAABGwAAAAADcQAAAAAAVAAAAAACVAAAAAAAcQAAAAAAVAAAAAACGwAAAAACGwAAAAACGwAAAAADVAAAAAADVAAAAAABVAAAAAACVAAAAAADVAAAAAABVAAAAAADVAAAAAACGwAAAAADcQAAAAAAVAAAAAABVAAAAAABcQAAAAAAVAAAAAACGwAAAAACGwAAAAAAGwAAAAACVAAAAAABcQAAAAAAVAAAAAABVAAAAAACVAAAAAADVAAAAAADVAAAAAADGwAAAAADcQAAAAAAVAAAAAACcQAAAAAAcQAAAAAAVAAAAAABVAAAAAAAVAAAAAADVAAAAAABVAAAAAAAcQAAAAAAVAAAAAADcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAGwAAAAABGwAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAADcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAGwAAAAAAGwAAAAADcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAGwAAAAADGwAAAAADGwAAAAACGwAAAAADGwAAAAABcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAVAAAAAABJgAAAAAAcQAAAAAAVAAAAAADcAAAAAAAcAAAAAAAcAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcQAAAAAAVAAAAAACcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAcQAAAAAAcQAAAAAAVAAAAAACcAAAAAAAcAAAAAAAcAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAADcAAAAAAAcAAAAAAAcAAAAAAAcQAAAAAAVAAAAAACcQAAAAAAcQAAAAAAbgAAAAABbgAAAAABbgAAAAAAbgAAAAABcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAAA + version: 6 + -2,2: + ind: -2,2 + tiles: cQAAAAAAVAAAAAACVAAAAAADVAAAAAAAVAAAAAACZAAAAAADcQAAAAAAVAAAAAADVAAAAAADVAAAAAABcQAAAAAAGwAAAAABGwAAAAABVAAAAAADVAAAAAACVAAAAAABcQAAAAAAZAAAAAADZAAAAAAAZAAAAAACZAAAAAABZAAAAAADcQAAAAAAVAAAAAACVAAAAAABVAAAAAADcQAAAAAAGwAAAAACGwAAAAABcQAAAAAAVAAAAAABVAAAAAACcQAAAAAAZAAAAAACZAAAAAABZAAAAAACZAAAAAAAZAAAAAADcQAAAAAAVAAAAAABVAAAAAACVAAAAAABcQAAAAAAGwAAAAADGwAAAAAAcQAAAAAAVAAAAAADVAAAAAADcQAAAAAAZAAAAAAAZAAAAAACZAAAAAABZAAAAAACZAAAAAABVAAAAAACVAAAAAACVAAAAAABVAAAAAABcQAAAAAAGwAAAAABGwAAAAAAcQAAAAAAVAAAAAAAVAAAAAADcQAAAAAAVAAAAAABVAAAAAADVAAAAAAAVAAAAAAAVAAAAAAAcQAAAAAAVAAAAAABVAAAAAABVAAAAAAAcQAAAAAAGwAAAAABGwAAAAADcQAAAAAAVAAAAAAAVAAAAAADcQAAAAAAZAAAAAAAZAAAAAAAGwAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAADcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAACcQAAAAAAZAAAAAADZAAAAAAAGwAAAAAAcQAAAAAASgAAAAAAGwAAAAABGwAAAAAAGwAAAAABGwAAAAAAGwAAAAADSgAAAAAAcQAAAAAAGwAAAAADVAAAAAAAVAAAAAAAcQAAAAAAZAAAAAADZAAAAAACGwAAAAABcQAAAAAASgAAAAAAGwAAAAABGwAAAAADGwAAAAACGwAAAAADGwAAAAABSgAAAAAAcQAAAAAAGwAAAAADVAAAAAAAVAAAAAADcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAASgAAAAAAGwAAAAABGwAAAAACGwAAAAACGwAAAAAAGwAAAAABSgAAAAAAcQAAAAAAGwAAAAADVAAAAAADVAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAGwAAAAADGwAAAAABGwAAAAAAGwAAAAABGwAAAAABcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAGwAAAAADcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAGwAAAAADGwAAAAAAGwAAAAAAGwAAAAABGwAAAAABGwAAAAAAcQAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAGwAAAAABGwAAAAABGwAAAAAAGwAAAAACGwAAAAABGwAAAAABcQAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAGwAAAAADGwAAAAADGwAAAAADGwAAAAABGwAAAAACcQAAAAAAcQAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAA + version: 6 + -3,2: + ind: -3,2 + tiles: cAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcQAAAAAAGwAAAAABSgAAAAAASgAAAAAASgAAAAAASgAAAAAASgAAAAAAGwAAAAACYAAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcQAAAAAAGwAAAAADSgAAAAAASgAAAAAASgAAAAAASgAAAAAASgAAAAAAGwAAAAADcQAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcQAAAAAAGwAAAAADSgAAAAAASgAAAAAASgAAAAAASgAAAAAASgAAAAAAGwAAAAACcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcQAAAAAAGwAAAAABSgAAAAAASgAAAAAASgAAAAAASgAAAAAASgAAAAAAGwAAAAABYAAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcQAAAAAAGwAAAAAASgAAAAAASgAAAAAASgAAAAAASgAAAAAASgAAAAAAGwAAAAADcQAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcQAAAAAAGwAAAAAAGwAAAAADGwAAAAACGwAAAAAAGwAAAAABGwAAAAACGwAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAGwAAAAADGwAAAAACYAAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcQAAAAAAGwAAAAADGwAAAAABcQAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + version: 6 + -1,3: + ind: -1,3 + tiles: cAAAAAAAcAAAAAAAcAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAbgAAAAACbgAAAAABbgAAAAADbgAAAAADcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAACcAAAAAAAcAAAAAAAcAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAbgAAAAADbgAAAAABbgAAAAABbgAAAAADcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcQAAAAAAZAAAAAADZAAAAAADbgAAAAAAbgAAAAACbgAAAAACbgAAAAACcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcQAAAAAAZAAAAAAAZAAAAAADcQAAAAAAcQAAAAAAbgAAAAADcQAAAAAAcQAAAAAAbgAAAAACbgAAAAAAbgAAAAAAcQAAAAAAVAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcQAAAAAAcQAAAAAAZAAAAAADcQAAAAAAbgAAAAAAbgAAAAACbgAAAAADbgAAAAADbgAAAAABbgAAAAACbgAAAAADcQAAAAAAVAAAAAABcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAbgAAAAADbgAAAAAAbgAAAAAAbgAAAAAAbgAAAAADbgAAAAABbgAAAAACcQAAAAAAVAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAcQAAAAAAbgAAAAABbgAAAAAAbgAAAAACbgAAAAABbgAAAAAAbgAAAAACbgAAAAABcQAAAAAAVAAAAAADcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcQAAAAAAbgAAAAABbgAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAbgAAAAACbgAAAAABcQAAAAAAVAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcQAAAAAAbgAAAAAAbgAAAAAAGwAAAAAAGwAAAAADGwAAAAACbgAAAAABbgAAAAACcQAAAAAAVAAAAAACAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAGwAAAAAAcQAAAAAAcQAAAAAAVAAAAAABcQAAAAAAcQAAAAAAVAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcQAAAAAAcQAAAAAAVAAAAAADVAAAAAACVAAAAAAAVAAAAAABVAAAAAADVAAAAAACAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAVAAAAAADVAAAAAAAVAAAAAAAVAAAAAACVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcQAAAAAAcQAAAAAAVAAAAAADVAAAAAADVAAAAAABVAAAAAADVAAAAAABVAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAABVAAAAAABVAAAAAADVAAAAAAAVAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAcQAAAAAAcAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAABVAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcQAAAAAAcAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAA + version: 6 + -4,0: + ind: -4,0 + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAA + version: 6 + -4,1: + ind: -4,1 + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAA + version: 6 + -4,2: + ind: -4,2 + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + version: 6 + -5,1: + ind: -5,1 + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAA + version: 6 + -2,3: + ind: -2,3 + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + version: 6 + -1,4: + ind: -1,4 + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAAAAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAAAAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcQAAAAAAcAAAAAAAcAAAAAAAcQAAAAAAcAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAAAAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAcAAAAAAAcQAAAAAAAAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAcAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAGwAAAAAAGwAAAAAAGwAAAAADcQAAAAAADwAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcQAAAAAAcQAAAAAAGwAAAAADGwAAAAAAGwAAAAADGwAAAAABGwAAAAABGwAAAAACAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcQAAAAAAGwAAAAABGwAAAAABGwAAAAAAGwAAAAADGwAAAAADcQAAAAAAGwAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcQAAAAAAGwAAAAACGwAAAAABGwAAAAABGwAAAAACDwAAAAAAcQAAAAAADwAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAGwAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAcAAAAAAAcQAAAAAAGwAAAAAAGwAAAAABGwAAAAABDwAAAAAAcQAAAAAASAAAAAAAcQAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcQAAAAAAGwAAAAADGwAAAAABGwAAAAAADwAAAAAAcQAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAGwAAAAADcQAAAAAADwAAAAAAcQAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAGwAAAAADGwAAAAADcQAAAAAADwAAAAAAcQAAAAAASAAAAAAASAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAGwAAAAACGwAAAAABGwAAAAACDwAAAAAAcQAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcQAAAAAAGwAAAAACGwAAAAACGwAAAAAADwAAAAAAcQAAAAAAcAAAAAAAAAAAAAAA + version: 6 + 0,4: + ind: 0,4 + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAAAAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAAAAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcAAAAAAAcQAAAAAAcAAAAAAAcAAAAAAAcQAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAAAAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAADwAAAAAADwAAAAAADwAAAAAADwAAAAAAcQAAAAAAGwAAAAABGwAAAAABGwAAAAADcQAAAAAAcQAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAGwAAAAABDwAAAAAAGwAAAAADGwAAAAADGwAAAAABGwAAAAACGwAAAAAAGwAAAAABGwAAAAADcQAAAAAAcQAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAGwAAAAADDwAAAAAAGwAAAAAAGwAAAAAAcQAAAAAAGwAAAAAAGwAAAAABGwAAAAABGwAAAAABGwAAAAABcQAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAADwAAAAAADwAAAAAADwAAAAAADwAAAAAAcQAAAAAADwAAAAAAGwAAAAADGwAAAAABGwAAAAAAGwAAAAAAcQAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAGwAAAAADcQAAAAAAcQAAAAAAcQAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAASAAAAAAASAAAAAAASAAAAAAAcQAAAAAASAAAAAAAcQAAAAAADwAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAASAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcQAAAAAADwAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAASAAAAAAASAAAAAAASAAAAAAAAAAAAAAAcAAAAAAAcQAAAAAADwAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAASAAAAAAASAAAAAAASAAAAAAASAAAAAAASAAAAAAAcQAAAAAADwAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAASAAAAAAASAAAAAAASAAAAAAAAAAAAAAAcAAAAAAAcQAAAAAADwAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAASAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcQAAAAAADwAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAA + version: 6 + 0,5: + ind: 0,5 + tiles: cAAAAAAASAAAAAAAcAAAAAAAcQAAAAAASAAAAAAAcQAAAAAADwAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcQAAAAAASAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAADwAAAAAADwAAAAAADwAAAAAADwAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAGwAAAAAAGwAAAAACGwAAAAACGwAAAAABcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAGwAAAAABGwAAAAADGwAAAAABGwAAAAACcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAGwAAAAADGwAAAAAAGwAAAAABGwAAAAABcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + version: 6 + -1,5: + ind: -1,5 + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcQAAAAAAGwAAAAABGwAAAAADGwAAAAACDwAAAAAAcQAAAAAASAAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAGwAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcQAAAAAAGwAAAAACGwAAAAADGwAAAAACGwAAAAADGwAAAAABcQAAAAAADwAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcQAAAAAAGwAAAAABGwAAAAADGwAAAAADGwAAAAABGwAAAAADcQAAAAAAGwAAAAADAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcQAAAAAAcQAAAAAAGwAAAAADGwAAAAABGwAAAAADGwAAAAADGwAAAAADGwAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcQAAAAAAcQAAAAAADwAAAAAAGwAAAAAAGwAAAAACcQAAAAAAGwAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + version: 6 + 1,4: + ind: 1,4 + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + version: 6 + 1,5: + ind: 1,5 + tiles: cAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + version: 6 + 2,-3: + ind: 2,-3 + tiles: VAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAVAAAAAAAcQAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAVAAAAAAAVAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAcAAAAAAAVAAAAAAAcQAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAASAAAAAAAcQAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAcAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAcQAAAAAASAAAAAAAcQAAAAAASAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAAAAAAAAAcAAAAAAAVAAAAAAAcQAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAASAAAAAAASAAAAAAASAAAAAAASAAAAAAASAAAAAAASAAAAAAASAAAAAAAAAAAAAAAcAAAAAAAVAAAAAAAcQAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAcQAAAAAASAAAAAAAcQAAAAAASAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcAAAAAAAcAAAAAAAVAAAAAAAcQAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAZAAAAAAAcQAAAAAAcQAAAAAAZAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAZAAAAAAAcQAAAAAAcQAAAAAAZAAAAAAAcQAAAAAAZAAAAAAAcQAAAAAAcQAAAAAAZAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAZAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAZAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAZAAAAAAAcQAAAAAAZAAAAAAAcQAAAAAAZAAAAAAAZAAAAAAAcQAAAAAAZAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAZAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAVAAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAcQAAAAAAcQAAAAAAZAAAAAAAcQAAAAAAcQAAAAAAZAAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAZAAAAAAAcQAAAAAAcQAAAAAAZAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAASgAAAAAASgAAAAAASgAAAAAASgAAAAAASgAAAAAAcQAAAAAASgAAAAAASgAAAAAASgAAAAAASgAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAASgAAAAAASgAAAAAASgAAAAAASgAAAAAASgAAAAAAcQAAAAAASgAAAAAASgAAAAAASgAAAAAASgAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAADcQAAAAAAcQAAAAAASgAAAAAASgAAAAAASgAAAAAASgAAAAAASgAAAAAAcQAAAAAASgAAAAAASgAAAAAAGwAAAAABGwAAAAAC + version: 6 + 3,-3: + ind: 3,-3 + tiles: cAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + version: 6 + 3,-2: + ind: 3,-2 + tiles: cQAAAAAAcAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + version: 6 + 1,-3: + ind: 1,-3 + tiles: cQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAcQAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAcQAAAAAAGwAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAJgAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAJgAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAACcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAABcQAAAAAAcQAAAAAAVAAAAAACcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAACcQAAAAAAVAAAAAABVAAAAAADcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAASgAAAAAAbQAAAAADbQAAAAAAbQAAAAAAbQAAAAACbQAAAAAAGwAAAAAAGwAAAAADcQAAAAAAVAAAAAADVAAAAAADVAAAAAAAVAAAAAADcQAAAAAAcQAAAAAAcQAAAAAA + version: 6 + 0,-3: + ind: 0,-3 + tiles: GwAAAAACcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAADVAAAAAABVAAAAAADVAAAAAAAVAAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAcQAAAAAAVAAAAAAAVAAAAAABVAAAAAADVAAAAAAAVAAAAAADVAAAAAADVAAAAAACVAAAAAABVAAAAAACcQAAAAAAVAAAAAAAYAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAABVAAAAAACVAAAAAAAVAAAAAACVAAAAAAAVAAAAAACVAAAAAACVAAAAAABGwAAAAACcQAAAAAAVAAAAAAAYAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAGwAAAAABGwAAAAACGwAAAAAAGwAAAAABGwAAAAACVAAAAAABVAAAAAAAGwAAAAABGwAAAAAAcQAAAAAAVAAAAAAAYAAAAAAAcQAAAAAAHAAAAAAAcQAAAAAAcQAAAAAAVAAAAAADcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAADVAAAAAADcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAYAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAABVAAAAAADVAAAAAADcQAAAAAAVAAAAAABVAAAAAABVAAAAAADVAAAAAAAVAAAAAADcQAAAAAAVAAAAAAAYAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAACVAAAAAAAVAAAAAADVAAAAAADVAAAAAADVAAAAAABVAAAAAAAVAAAAAACVAAAAAAAVAAAAAABVAAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAcQAAAAAAVAAAAAACVAAAAAADVAAAAAADVAAAAAAAVAAAAAADVAAAAAACVAAAAAABVAAAAAACVAAAAAAAVAAAAAADVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAADVAAAAAAAVAAAAAAAcQAAAAAAVAAAAAADVAAAAAAAVAAAAAABVAAAAAABVAAAAAABcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAADVAAAAAABVAAAAAADcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAVAAAAAACVAAAAAAAcQAAAAAAVAAAAAAAJgAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAVAAAAAADVAAAAAABcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAVAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAADVAAAAAADcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAVAAAAAACVAAAAAABcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAACVAAAAAAAVAAAAAABVAAAAAACVAAAAAACVAAAAAAAVAAAAAAAVAAAAAABcQAAAAAAVAAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAABVAAAAAACVAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAACVAAAAAADVAAAAAADcQAAAAAAVAAAAAACVAAAAAAAVAAAAAAAVAAAAAACVAAAAAADVAAAAAABVAAAAAAAcQAAAAAAVAAAAAAAVAAAAAAAVAAAAAACcQAAAAAA + version: 6 + 0,-4: + ind: 0,-4 + tiles: YAAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAcQAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAVAAAAAAAcQAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAGwAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAcQAAAAAAcQAAAAAAGwAAAAABcQAAAAAAGwAAAAADVAAAAAADVAAAAAABcQAAAAAASwAAAAAAGwAAAAADSwAAAAAAcQAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAcQAAAAAAGwAAAAADcQAAAAAAGwAAAAAAVAAAAAADVAAAAAACcQAAAAAASwAAAAAAGwAAAAADSwAAAAAAcQAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAcQAAAAAAGwAAAAABcQAAAAAAGwAAAAABVAAAAAAAVAAAAAAAcQAAAAAASwAAAAAAGwAAAAACSwAAAAAAcQAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAcQAAAAAAVAAAAAAAVAAAAAACVAAAAAACVAAAAAAAVAAAAAABcQAAAAAAcQAAAAAAGwAAAAAAcQAAAAAAcQAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAcQAAAAAAVAAAAAACcQAAAAAAGwAAAAACVAAAAAADVAAAAAABcQAAAAAAVAAAAAAAVAAAAAACVAAAAAABcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAcQAAAAAAGwAAAAACVAAAAAABVAAAAAADVAAAAAAAVAAAAAABVAAAAAABVAAAAAAAcQAAAAAAGwAAAAABGwAAAAABGwAAAAABGwAAAAABGwAAAAACcQAAAAAAcQAAAAAAcQAAAAAAGwAAAAACVAAAAAADVAAAAAACcQAAAAAAVAAAAAACVAAAAAADVAAAAAAAcQAAAAAAGwAAAAAAGwAAAAACGwAAAAAAGwAAAAADGwAAAAABcQAAAAAAcQAAAAAAcQAAAAAAGwAAAAAAVAAAAAADVAAAAAADVAAAAAADVAAAAAACVAAAAAABVAAAAAACcQAAAAAAGwAAAAAAGwAAAAADGwAAAAADGwAAAAADGwAAAAAAcQAAAAAAVAAAAAACcQAAAAAAGwAAAAAAGwAAAAAAGwAAAAADcQAAAAAAVAAAAAADVAAAAAABVAAAAAACVAAAAAADGwAAAAABGwAAAAADGwAAAAABGwAAAAACGwAAAAABcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAACVAAAAAACVAAAAAABcQAAAAAAGwAAAAABGwAAAAAAGwAAAAACGwAAAAABGwAAAAABcQAAAAAAVAAAAAABcQAAAAAAGwAAAAABGwAAAAADGwAAAAACVAAAAAAAVAAAAAABVAAAAAACVAAAAAABcQAAAAAAGwAAAAAAGwAAAAACGwAAAAAAGwAAAAAAGwAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAGwAAAAACGwAAAAACGwAAAAABVAAAAAACVAAAAAADVAAAAAACVAAAAAADcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAGwAAAAABcQAAAAAAGwAAAAACGwAAAAADGwAAAAADcQAAAAAAVAAAAAABVAAAAAAAVAAAAAAAcQAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAcQAAAAAA + version: 6 + 0,-5: + ind: 0,-5 + tiles: cAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAcQAAAAAAcQAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAVAAAAAAAcQAAAAAAcAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAcQAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAASAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAcQAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAASAAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAVAAAAAAAcQAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAVAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAASAAAAAAASAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAcQAAAAAAYAAAAAAAYQAAAAAAYQAAAAAAYQAAAAAAYAAAAAAAcQAAAAAASAAAAAAASAAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAcQAAAAAAYAAAAAAAYQAAAAAAYQAAAAAAYQAAAAAAYAAAAAAAcQAAAAAASAAAAAAASAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAcQAAAAAAYAAAAAAAYQAAAAAAYQAAAAAAYQAAAAAAYAAAAAAAcQAAAAAASAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAYAAAAAAAYAAAAAAAVAAAAAAAcQAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAcQAAAAAASAAAAAAASAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAYAAAAAAAYAAAAAAAVAAAAAAAcQAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAcQAAAAAASAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAYAAAAAAAYAAAAAAAVAAAAAAAcQAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAYAAAAAAAYAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAcQAAAAAA + version: 6 + -1,-5: + ind: -1,-5 + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcQAAAAAAVAAAAAAAVAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAcAAAAAAAcQAAAAAAVAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcQAAAAAAVAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcQAAAAAAVAAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcQAAAAAAVAAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcQAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAASAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcQAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAYAAAAAAASAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcQAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAASAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcQAAAAAAVAAAAAAAYAAAAAAAYAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcQAAAAAAVAAAAAAAYAAAAAAAYAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAASAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcQAAAAAAVAAAAAAAYAAAAAAAYAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcQAAAAAAVAAAAAAAYAAAAAAAYAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAA + version: 6 + 1,-4: + ind: 1,-4 + tiles: SAAAAAAASAAAAAAASAAAAAAAcQAAAAAAcAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAASAAAAAAASAAAAAAASAAAAAAAcQAAAAAAcAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAASAAAAAAASAAAAAAASAAAAAAAcQAAAAAAcAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAASAAAAAAASAAAAAAASAAAAAAAcQAAAAAAcAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAASAAAAAAASAAAAAAASAAAAAAAcQAAAAAAcAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAASAAAAAAASAAAAAAASAAAAAAAcQAAAAAAcAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAASAAAAAAASAAAAAAASAAAAAAAcQAAAAAAcAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAASAAAAAAASAAAAAAASAAAAAAAcQAAAAAAcAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAASAAAAAAASAAAAAAASAAAAAAAcQAAAAAAcAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAYAAAAAAAYAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAYAAAAAAAYAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAA + version: 6 + 2,-4: + ind: 2,-4 + tiles: cQAAAAAAcQAAAAAAcAAAAAAAcQAAAAAASAAAAAAASAAAAAAASAAAAAAAcQAAAAAAcAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcQAAAAAAcQAAAAAAcAAAAAAAcQAAAAAASAAAAAAASAAAAAAASAAAAAAAcQAAAAAAcAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcQAAAAAAcQAAAAAAcAAAAAAAcQAAAAAASAAAAAAASAAAAAAASAAAAAAAcQAAAAAAcAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcQAAAAAAcQAAAAAAcAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcQAAAAAAcQAAAAAAcAAAAAAAcQAAAAAASAAAAAAASAAAAAAASAAAAAAAcQAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcQAAAAAAcQAAAAAAcAAAAAAAcQAAAAAASAAAAAAASAAAAAAASAAAAAAAcQAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcQAAAAAAcQAAAAAAcAAAAAAAcQAAAAAASAAAAAAASAAAAAAASAAAAAAAcQAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcQAAAAAAcQAAAAAAcAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcQAAAAAAcQAAAAAAcAAAAAAAcQAAAAAASAAAAAAASAAAAAAASAAAAAAAcQAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcQAAAAAAcQAAAAAAcAAAAAAAcQAAAAAASAAAAAAASAAAAAAASAAAAAAAcQAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcQAAAAAAcQAAAAAAcAAAAAAAcQAAAAAASAAAAAAASAAAAAAASAAAAAAAcQAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcQAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAcQAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcQAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAcQAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAVAAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAcQAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAVAAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAcQAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAA + version: 6 + 1,-5: + ind: 1,-5 + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcQAAAAAAcQAAAAAASAAAAAAAcQAAAAAAcQAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcQAAAAAASAAAAAAASAAAAAAASAAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcQAAAAAASAAAAAAASAAAAAAASAAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcQAAAAAASAAAAAAASAAAAAAASAAAAAAAcQAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAA + version: 6 + 2,-5: + ind: 2,-5 + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAcQAAAAAAcQAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcQAAAAAAcQAAAAAAcAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAA + version: 6 + 3,-4: + ind: 3,-4 + tiles: cAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + version: 6 + 3,-5: + ind: 3,-5 + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + version: 6 + -1,-6: + ind: -1,-6 + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAA + version: 6 + 0,-6: + ind: 0,-6 + tiles: cAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + version: 6 + 0,-7: + ind: 0,-7 + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + version: 6 + -1,-7: + ind: -1,-7 + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAA + 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: + - node: + color: '#EFB34196' + id: 1 + decals: + 4101: -9,24 + - node: + color: '#EFB341FF' + id: 1 + decals: + 1353: -46,-27 + 5399: 44,-34 + - node: + color: '#EFB34196' + id: 2 + decals: + 4102: -9,23 + - node: + color: '#EFB341FF' + id: 2 + decals: + 1388: -39,-33 + 5400: 45,-34 + - node: + color: '#EFB34196' + id: 3 + decals: + 4103: -9,22 + 7217: -21,-46 + - node: + color: '#EFB341FF' + id: 3 + decals: + 5401: 46,-34 + - node: + color: '#EFB341FF' + id: 4 + decals: + 5402: 47,-34 + - node: + angle: -1.5707963267948966 rad + color: '#FFFFFFFF' + id: Arrows + decals: + 7534: -5,-69 + 7535: -6,-69 + 7546: 2,-63 + 7547: 3,-63 + - node: + color: '#FFFFFFFF' + id: Arrows + decals: + 7537: -5,-72 + 7538: -5,-73 + 7545: 1,-63 + - node: + angle: 1.5707963267948966 rad + color: '#FFFFFFFF' + id: Arrows + decals: + 7536: -6,-71 + 7544: 8,-75 + - node: + angle: 3.141592653589793 rad + color: '#FFFFFFFF' + id: Arrows + decals: + 5036: 1,52 + 5037: 0,52 + 7539: 5,-73 + 7540: 5,-72 + 7541: 5,-71 + 7542: 5,-70 + 7543: 5,-69 + - node: + color: '#FFFFFFFF' + id: Basalt1 + decals: + 347: -5,-2 + 6062: 3,47 + - node: + color: '#FFFFFFFF' + id: Basalt2 + decals: + 346: -7,-3 + 360: 6,-2 + 362: 6,-4 + 3696: 35,-8 + 3697: 40,-8 + 3702: 32,-4 + - node: + color: '#FFFFFFFF' + id: Basalt3 + decals: + 345: -5,-4 + 373: -8,3 + 374: -6,3 + 375: -5,6 + 376: -3,7 + 3701: 32,-4 + 6052: 14,-27 + - node: + color: '#FFFFFFFF' + id: Basalt4 + decals: + 359: 5,-6 + 3695: 37,-8 + 6060: 3,48 + - node: + color: '#FFFFFFFF' + id: Basalt5 + decals: + 361: 4,-6 + 377: -5,5 + 378: -5,6 + 379: -2,8 + 380: 8,3 + 381: 6,4 + 382: 4,7 + 383: 4,8 + 3693: 41,-9 + 3694: 34,-10 + 6053: 14,-26 + 6061: 3,49 + - node: + color: '#FFFFFFFF' + id: Basalt6 + decals: + 348: -3,-7 + - node: + color: '#FFFFFFFF' + id: Basalt7 + decals: + 349: -5,-6 + 357: 8,-3 + 358: 5,-6 + 384: 8,3 + 385: 6,5 + 386: 3,7 + 387: -3,7 + 388: -5,6 + 389: -7,3 + - node: + angle: -1.5707963267948966 rad + color: '#FFFFFFFF' + id: Bot + decals: + 3148: 32,14 + 3149: 32,13 + 3150: 37,13 + 3151: 38,13 + 3152: 38,19 + 3153: 36,19 + 3154: 35,19 + 3155: 34,19 + 3156: 34,20 + - node: + color: '#FFFFFFFF' + id: Bot + decals: + 314: 9,9 + 315: 6,8 + 316: 5,8 + 317: -8,9 + 318: -5,8 + 319: -4,8 + 320: -8,-8 + 321: -7,-5 + 322: -7,-4 + 323: -5,-7 + 324: -4,-7 + 325: 9,-8 + 326: 6,-7 + 327: 5,-7 + 328: 8,-5 + 329: 8,-4 + 367: -4,-3 + 368: -4,-2 + 369: 5,-3 + 370: -4,4 + 371: 5,4 + 372: 5,3 + 471: -10,-7 + 472: -11,-6 + 473: -12,-3 + 474: -13,-3 + 489: -16,9 + 490: -17,9 + 491: -18,9 + 500: -6,16 + 501: -7,16 + 502: -3,16 + 503: -4,16 + 504: -5,16 + 505: 9,19 + 531: 9,17 + 532: 6,19 + 533: 5,19 + 534: 4,19 + 551: 10,11 + 900: -31,4 + 1080: -44,8 + 1081: -44,9 + 1082: -44,10 + 1083: -44,11 + 1153: -42,-4 + 1154: -42,-3 + 1155: -41,-3 + 1156: -41,-4 + 1157: -40,-4 + 1158: -40,-3 + 1159: -39,-3 + 1160: -39,-4 + 1161: -42,1 + 1162: -42,2 + 1163: -41,2 + 1164: -41,1 + 1165: -40,1 + 1166: -40,2 + 1167: -39,2 + 1168: -39,1 + 1179: -43,-1 + 1210: -38,-8 + 1211: -43,-14 + 1212: -45,-14 + 1290: -37,-21 + 1291: -39,-21 + 1292: -37,-16 + 1293: -37,-17 + 1294: -37,-18 + 1418: -29,-21 + 1433: -37,-29 + 1434: -37,-27 + 1539: -31,-36 + 1540: -28,-36 + 1541: -28,-35 + 1542: -36,-39 + 1543: -36,-40 + 1554: -31,-40 + 1555: -31,-39 + 1556: -31,-38 + 1566: -31,-42 + 1567: -30,-42 + 1568: -29,-42 + 1569: -28,-42 + 1649: -26,-34 + 1673: -24,-22 + 1674: -24,-24 + 1675: -22,-24 + 1676: -22,-22 + 1677: -25,-25 + 1678: -21,-19 + 1806: -21,-31 + 1807: -21,-32 + 1808: -21,-34 + 1809: -23,-34 + 1810: -23,-33 + 1876: -9,-33 + 1877: -9,-32 + 1878: -9,-31 + 1879: -3,-34 + 1880: -4,-34 + 1881: -3,-31 + 1882: -4,-31 + 1883: -5,-31 + 1980: -14,-50 + 1981: -14,-47 + 1982: -14,-44 + 1983: -14,-41 + 1984: -14,-38 + 1985: -13,-35 + 1986: -12,-50 + 2090: -9,-22 + 2091: -37,-42 + 2122: -42,-39 + 2260: -35,-46 + 2261: -33,-46 + 2262: -32,-46 + 2263: -40,-53 + 2264: -40,-52 + 2670: -36,6 + 2671: -33,8 + 2767: 28,-5 + 2768: 27,-5 + 2769: 27,-5 + 2770: 28,-3 + 2771: 30,-3 + 3025: 21,12 + 3026: 32,11 + 3027: 15,16 + 3028: 19,17 + 3029: 19,18 + 3030: 21,19 + 3031: 23,19 + 3032: 24,19 + 3033: 24,17 + 3034: 21,21 + 3035: 24,23 + 3036: 25,23 + 3037: 26,23 + 3038: 26,21 + 3039: 25,21 + 3040: 22,23 + 3188: 40,17 + 3189: 41,17 + 3190: 42,17 + 3191: 43,17 + 3215: 43,9 + 3230: 37,24 + 3231: 36,24 + 3232: 36,22 + 3233: 36,21 + 3661: 27,29 + 3662: 27,33 + 3663: 30,39 + 3664: 31,30 + 3665: 32,30 + 3666: 33,30 + 3667: 35,30 + 3668: 36,30 + 3669: 37,30 + 3670: 39,30 + 3671: 31,26 + 3672: 32,26 + 3673: 33,26 + 3674: 35,26 + 3675: 36,26 + 3676: 37,26 + 3677: 42,39 + 3678: 42,43 + 3679: 42,44 + 3680: 42,45 + 3844: 32,-13 + 3845: 33,-13 + 3846: 34,-13 + 3847: 35,-13 + 3848: 39,-13 + 3849: 40,-13 + 3850: 41,-13 + 3851: 42,-13 + 3852: 43,-13 + 3853: 44,-12 + 3854: 41,-4 + 3855: 42,-4 + 3856: 43,-4 + 3857: 44,-5 + 3908: 46,-17 + 3909: 45,-17 + 3910: 45,-19 + 3911: 46,-19 + 4072: -3,18 + 4096: -13,24 + 4097: -10,24 + 4098: -10,23 + 4099: -10,22 + 4100: -4,24 + 4254: -12,34 + 4255: -11,34 + 4256: -11,35 + 4257: -12,35 + 4258: -12,36 + 4259: -9,34 + 4260: -8,34 + 4261: -8,32 + 4262: -10,31 + 4263: -11,31 + 4264: -12,31 + 4290: -17,31 + 4291: -18,31 + 4292: -18,33 + 4293: -18,34 + 4294: -18,35 + 4295: -18,36 + 4296: -15,36 + 4297: -15,33 + 4300: -17,40 + 4301: -16,40 + 4302: -15,40 + 4303: -14,40 + 4304: -13,40 + 4305: -14,38 + 4306: -15,38 + 4307: -16,38 + 4327: -21,31 + 4328: -21,33 + 4329: -21,34 + 4330: -21,35 + 4331: -21,36 + 4350: -21,40 + 4351: -21,39 + 4352: -21,38 + 4353: -27,40 + 4354: -27,39 + 4355: -27,38 + 4371: -27,36 + 4372: -28,36 + 4373: -29,38 + 4405: -43,28 + 4406: -42,28 + 4407: -41,28 + 4408: -40,28 + 4409: -41,30 + 4410: -42,30 + 4411: -43,30 + 4412: -37,39 + 4463: -36,19 + 4464: -36,20 + 4465: -36,21 + 4466: -36,22 + 4558: -27,30 + 4590: -3,40 + 4594: -3,28 + 4595: -6,30 + 4596: -7,30 + 4647: 7,30 + 4648: 8,31 + 4649: 7,32 + 4650: 6,31 + 4791: 13,50 + 4792: 13,49 + 4793: 8,56 + 4794: 7,56 + 4795: 4,56 + 4796: 4,55 + 4835: 4,46 + 4836: 4,48 + 4837: 4,49 + 4838: 4,50 + 5007: -3,58 + 5008: -6,58 + 5009: -6,59 + 5010: -6,60 + 5011: 7,58 + 5012: 7,59 + 5013: 7,60 + 5014: 3,61 + 5015: 3,60 + 5016: -2,61 + 5017: -2,60 + 5018: -3,61 + 5019: 4,61 + 5020: 1,62 + 5021: -1,62 + 5022: 0,62 + 5023: 2,62 + 5135: 6,69 + 5136: -5,69 + 5137: -5,61 + 5138: 6,61 + 5187: 12,-15 + 5188: 12,-16 + 5189: 12,-17 + 5190: 15,-14 + 5191: 17,-14 + 5199: 20,-19 + 5200: 20,-20 + 5201: 20,-21 + 5202: 17,-21 + 5250: 26,-22 + 5251: 26,-21 + 5252: 22,-20 + 5253: 25,-18 + 5254: 26,-18 + 5337: 34,-22 + 5382: 38,-33 + 5383: 42,-33 + 5384: 42,-35 + 5385: 41,-31 + 5386: 41,-28 + 5391: 39,-27 + 5469: 28,-28 + 5470: 28,-29 + 5471: 28,-30 + 5472: 25,-31 + 5473: 25,-30 + 5474: 25,-28 + 5475: 30,-28 + 5476: 31,-28 + 5477: 32,-28 + 5478: 32,-32 + 5479: 30,-30 + 5500: 10,-33 + 5501: 8,-33 + 5502: 7,-33 + 5503: 9,-33 + 5504: 10,-30 + 5505: 9,-30 + 5506: 8,-30 + 5507: 4,-30 + 5508: 4,-31 + 5509: 4,-32 + 5593: 10,-28 + 5903: 11,-31 + 5907: 41,-21 + 5908: 40,-21 + 5909: 39,-21 + 5910: 15,-23 + 5911: 16,-23 + 5912: 20,-23 + 5913: 21,-23 + 5914: 22,-23 + 5915: 23,-23 + 6186: -2,-45 + 6187: 8,-46 + 6231: 2,-49 + 6232: 3,-49 + 6233: 4,-49 + 6315: 4,-57 + 6316: 4,-58 + 6317: 4,-59 + 6318: 4,-60 + 6319: 4,-61 + 6320: 2,-57 + 6321: 2,-56 + 6322: 2,-55 + 6449: -16,-62 + 6450: -19,-60 + 6524: 4,25 + 6532: 11,-66 + 6533: 12,-66 + 6534: 13,-66 + 6550: 10,-63 + 6581: -4,-67 + 6582: -3,-67 + 6583: 3,-67 + 6584: 4,-67 + 6585: 0,-70 + 6586: -5,-63 + 6587: -4,-65 + 6588: 5,-65 + 6589: 3,-75 + 6590: 3,-76 + 6591: -8,-71 + 6592: -8,-69 + 6593: -5,-71 + 6707: 7,-77 + 6708: -7,-77 + 6841: 16,-50 + 6842: 16,-51 + 6843: 16,-52 + 6844: 17,-52 + 6845: 17,-51 + 6846: 17,-50 + 6847: 18,-50 + 6848: 18,-51 + 6849: 18,-52 + 6850: 19,-52 + 6851: 19,-51 + 6852: 19,-50 + 6884: 28,-60 + 6885: 27,-60 + 6886: 27,-59 + 6887: 27,-58 + 6888: 28,-58 + 6889: 30,-58 + 6890: 30,-59 + 6891: 30,-60 + 7023: 22,-49 + 7024: 21,-49 + 7025: 20,-49 + 7045: 35,-52 + 7046: 36,-52 + 7047: 37,-52 + 7048: 38,-52 + 7049: 38,-51 + 7050: 38,-50 + 7051: 38,-49 + 7052: 36,-49 + 7053: 37,-49 + 7054: 35,-49 + 7055: 35,-50 + 7056: 35,-51 + 7057: 36,-51 + 7058: 37,-51 + 7059: 37,-50 + 7060: 36,-50 + 7061: 34,-42 + 7062: 35,-42 + 7063: 37,-43 + 7064: 38,-43 + 7065: 38,-45 + 7069: 34,-44 + 7092: 22,-40 + 7093: 26,-40 + 7094: 27,-40 + 7095: 28,-40 + 7129: 14,-44 + 7130: 14,-46 + 7170: 10,-49 + 7171: 11,-49 + 7172: 12,-49 + 7173: 13,-49 + 7174: 14,-49 + 7313: 15,23 + 7314: 15,22 + 7315: 24,-59 + 7342: 8,-55 + 7343: 41,-15 + 7470: -7,-59 + 7471: -7,-58 + 7472: -7,-57 + 7473: -6,-57 + 7474: -6,-58 + 7475: -6,-59 + 7476: -5,-59 + 7477: -5,-58 + 7478: -5,-57 + 7479: -4,-57 + 7480: -4,-58 + 7481: -4,-59 + 7482: -3,-59 + 7483: -3,-58 + 7484: -3,-57 + 7485: -2,-57 + 7486: -2,-58 + 7487: -2,-59 + 7488: -1,-59 + 7489: -1,-58 + 7490: -1,-57 + 7549: 6,56 + - node: + angle: 1.5707963267948966 rad + color: '#FFFFFFFF' + id: Bot + decals: + 2134: -48,-30 + - node: + angle: 3.141592653589793 rad + color: '#FFFFFFFF' + id: Bot + decals: + 5145: 14,-9 + 5146: 14,-10 + 5147: 14,-11 + 5148: 17,-9 + 5149: 17,-10 + 5150: 17,-11 + 5151: 19,-9 + 5152: 19,-10 + 5153: 19,-11 + - node: + color: '#D4D4D4D9' + id: BotGreyscale + decals: + 4403: -41,31 + 4404: -42,31 + - node: + color: '#FFFFFFFF' + id: BotLeft + decals: + 4643: 8,32 + 4645: 6,30 + - node: + angle: 1.5707963267948966 rad + color: '#FFFFFFFF' + id: BotLeft + decals: + 4644: 6,32 + 4646: 8,30 + - node: + color: '#DE3A3AFF' + id: Box + decals: + 2279: -25,-48 + - node: + color: '#EFB34196' + id: Box + decals: + 7218: -21,-46 + - node: + color: '#EFB341FF' + id: Box + decals: + 1352: -46,-27 + 1387: -39,-33 + - node: + color: '#FFFFFFFF' + id: Box + decals: + 1180: -40,-1 + 1875: -4,-33 + 5255: 30,-23 + 5256: 32,-23 + 5387: 38,-28 + 5388: 38,-29 + 5389: 38,-30 + 5390: 38,-31 + 5594: 6,-28 + 5595: 8,-22 + 5897: 32,-23 + 5898: 30,-23 + - node: + color: '#DE3A3AFF' + id: BoxGreyscale + decals: + 4332: -21,32 + - node: + color: '#FFFFFFFF' + id: BoxGreyscale + decals: + 4482: -31,26 + 5192: 16,-15 + - node: + color: '#FFFFFFFF' + id: BrickTileDarkCornerNe + decals: + 3407: 23,30 + 3417: 19,34 + - node: + color: '#FFFFFFFF' + id: BrickTileDarkCornerNw + decals: + 3402: 25,30 + 3410: 21,30 + 3415: 21,36 + 3423: 17,33 + - node: + color: '#FFFFFFFF' + id: BrickTileDarkCornerSe + decals: + 3408: 23,32 + 3422: 19,29 + 4761: -5,56 + - node: + color: '#FFFFFFFF' + id: BrickTileDarkCornerSw + decals: + 3401: 25,32 + 3409: 21,32 + 3424: 17,29 + 4760: -7,56 + 6512: 6,25 + - node: + color: '#FFFFFFFF' + id: BrickTileDarkEndE + decals: + 3416: 19,36 + - node: + color: '#FFFFFFFF' + id: BrickTileDarkLineE + decals: + 3405: 23,33 + 3406: 23,29 + 3418: 19,33 + 3419: 19,32 + 3420: 19,31 + 3421: 19,30 + - node: + color: '#FFFFFFFF' + id: BrickTileDarkLineN + decals: + 2481: -35,-65 + 2482: -36,-65 + 2483: -37,-65 + 3429: 22,30 + - node: + color: '#FFFFFFFF' + id: BrickTileDarkLineS + decals: + 3425: 18,29 + 3430: 22,32 + 4762: -6,56 + 6507: 8,25 + 6509: 7,25 + - node: + color: '#FFFFFFFF' + id: BrickTileDarkLineW + decals: + 3403: 25,29 + 3404: 25,33 + 3411: 21,29 + 3412: 21,33 + 3413: 21,34 + 3414: 21,35 + 3426: 17,30 + 3427: 17,31 + 3428: 17,32 + 4759: -7,57 + 6514: 6,26 + 6515: 6,27 + - node: + color: '#FFFFFFFF' + id: Bushf1 + decals: + 330: -3,-7 + 331: -3,-6 + 332: -5,-6 + 333: -4,-4 + 334: -6,-4 + 335: -6,-3 + 336: -7,-3 + 337: -8,-2 + 338: -5,-2 + 350: 4,-7 + 351: 4,-5 + 352: 6,-5 + 353: 6,-4 + 354: 6,-3 + 355: 7,-2 + 356: 9,-2 + 390: -7,3 + 391: -6,3 + 392: -6,5 + 393: -5,5 + 394: -4,7 + 395: -2,8 + 396: 4,6 + 397: 3,8 + 398: 5,6 + 399: 6,4 + 400: 7,3 + 401: 9,3 + 402: 7,4 + 3681: 34,-10 + 3682: 35,-8 + 3683: 37,-9 + 3684: 40,-9 + 3685: 41,-8 + 6048: 14,-26 + 6054: 3,49 + - node: + color: '#FFFFFFFF' + id: Bushf2 + decals: + 411: -2,7 + 412: -2,9 + 413: -3,6 + 414: -4,6 + 415: -5,7 + 422: 5,5 + 3699: 32,-3 + 6049: 14,-27 + 6056: 3,47 + - node: + color: '#FFFFFFFF' + id: Bushf3 + decals: + 339: -6,-2 + 340: -6,-5 + 416: -5,3 + 417: -5,4 + 418: -7,4 + 419: 5,7 + 420: 6,7 + 421: 8,4 + 3686: 41,-10 + 3687: 40,-8 + 3688: 34,-8 + 3698: 32,-4 + 6055: 3,48 + - node: + color: '#FFFFFFFF' + id: Bushl1 + decals: + 366: 5,-5 + - node: + color: '#FFFFFFFF' + id: Bushl2 + decals: + 3689: 34,-9 + - node: + color: '#FFFFFFFF' + id: Bushl4 + decals: + 410: -2,6 + 3690: 41,-9 + - node: + angle: -3.141592653589793 rad + color: '#FFFFFFFF' + id: Caution + decals: + 4155: -3,26 + 4156: -3,26 + 4157: -4,26 + 4158: -6,26 + 4159: -7,26 + 4160: -9,26 + 4161: -10,26 + 4162: -12,26 + 4163: -13,26 + 4164: -13,26 + 4165: -21,26 + 4166: -21,26 + 4167: -20,26 + - node: + angle: -1.5707963267948966 rad + color: '#FFFFFFFF' + id: Caution + decals: + 5392: 46,-32 + 5393: 46,-32 + 5394: 46,-32 + 5395: 46,-32 + 5396: 46,-32 + 5397: 46,-32 + 7076: 38,-47 + - node: + color: '#FFFFFFFF' + id: Caution + decals: + 5030: 2,53 + 5031: -1,53 + 6577: 4,-71 + 6578: -4,-71 + - node: + angle: 1.5707963267948966 rad + color: '#FFFFFFFF' + id: Caution + decals: + 2129: -43,-44 + - node: + angle: 3.141592653589793 rad + color: '#FFFFFFFF' + id: Caution + decals: + 5032: 2,58 + 5033: -1,58 + 6579: 4,-69 + 6580: -4,-69 + - node: + color: '#52B4E996' + id: CheckerNESW + decals: + 3236: 37,21 + 3237: 38,21 + 3238: 38,22 + 3239: 37,22 + 3240: 37,23 + 3241: 38,23 + 3242: 36,23 + 3243: 38,24 + 5228: 25,-22 + 5229: 26,-22 + 5230: 26,-21 + 5231: 25,-21 + 5232: 24,-21 + 5233: 23,-21 + 5234: 22,-21 + 5235: 22,-20 + 5236: 23,-20 + 5237: 24,-20 + 5238: 25,-20 + 5239: 26,-20 + 5240: 26,-19 + 5241: 25,-19 + 5242: 24,-19 + 5243: 23,-19 + 5244: 22,-19 + 5245: 22,-18 + 5246: 23,-18 + 5247: 24,-18 + 5248: 25,-18 + 5249: 26,-18 + - node: + color: '#6C6C6C92' + id: CheckerNESW + decals: + 2484: -26,-65 + 2485: -25,-65 + 2486: -25,-64 + 2487: -24,-64 + 2488: -23,-65 + 2489: -23,-63 + 2490: -26,-63 + 2491: -27,-63 + 2492: -27,-64 + - node: + color: '#DE3A3A96' + id: CheckerNESW + decals: + 904: -20,12 + 2888: 15,6 + 2889: 15,7 + 2890: 15,8 + 2891: 15,9 + 2892: 15,10 + 2893: 15,11 + 2894: 16,11 + 2895: 17,11 + 2896: 18,11 + 2897: 19,11 + 2898: 20,11 + 2899: 21,11 + 2900: 21,10 + 2901: 21,9 + 2902: 22,8 + 2903: 23,8 + 2904: 24,8 + 2905: 25,8 + 2906: 26,8 + 2907: 27,9 + 2908: 27,10 + 2909: 27,11 + - node: + color: '#EFB34196' + id: CheckerNESW + decals: + 527: 4,19 + - node: + color: '#52B4E996' + id: CheckerNWSE + decals: + 2813: 26,-14 + - node: + color: '#6C6C6C93' + id: CheckerNWSE + decals: + 2940: 23,10 + 2941: 24,10 + 2942: 25,10 + 2943: 25,11 + 2944: 24,11 + 2945: 23,11 + 2946: 23,12 + 2947: 24,12 + 2948: 25,12 + 2949: 22,13 + 2950: 22,14 + 2951: 23,14 + 2952: 23,13 + 2953: 24,13 + 2954: 24,14 + 2955: 25,13 + 2956: 26,13 + 2957: 26,14 + 2958: 25,14 + 2959: 27,14 + 2960: 26,15 + 2961: 25,15 + 2962: 24,15 + 2963: 23,15 + 2964: 21,15 + 2965: 20,15 + - node: + color: '#79150096' + id: CheckerNWSE + decals: + 2910: 16,12 + 2911: 17,12 + 2912: 18,12 + 2913: 19,12 + 2914: 20,12 + 2915: 21,12 + 2916: 21,13 + 2917: 20,13 + 2918: 19,13 + 2919: 18,13 + 2920: 17,13 + 2921: 16,13 + 2922: 15,13 + 2923: 15,14 + 2924: 16,14 + 2925: 17,14 + 2926: 18,14 + 2927: 19,14 + 2928: 20,14 + 2929: 21,14 + 2930: 16,15 + 2931: 16,16 + 2932: 15,16 + 2933: 15,17 + 2934: 16,17 + 2935: 17,17 + 2936: 17,16 + 2937: 17,18 + 2938: 16,18 + 2939: 15,18 + - node: + color: '#EFB34196' + id: CheckerNWSE + decals: + 2528: -12,-54 + 6261: -1,-54 + - node: + color: '#F9801D87' + id: CheckerNWSE + decals: + 7452: 5,-30 + 7453: 5,-31 + 7454: 5,-32 + 7455: 6,-32 + 7456: 6,-31 + 7457: 6,-30 + 7458: 6,-29 + 7459: 5,-29 + 7460: 7,-31 + 7461: 7,-32 + 7462: 8,-32 + 7463: 8,-31 + 7464: 9,-31 + 7465: 9,-32 + 7466: 10,-32 + 7467: 10,-31 + 7468: 11,-31 + 7469: 11,-32 + - node: + color: '#DE3A3A96' + id: Delivery + decals: + 1216: -44,-8 + 1217: -45,-8 + - node: + color: '#FF0000FF' + id: Delivery + decals: + 7492: -4,-60 + 7493: -4,-60 + 7494: -4,-60 + 7495: -4,-60 + 7496: -4,-60 + - node: + angle: -1.5707963267948966 rad + color: '#FFFFFFFF' + id: Delivery + decals: + 3157: 37,19 + - node: + color: '#FFFFFFFF' + id: Delivery + decals: + 498: -9,15 + 499: -15,15 + 856: -24,-7 + 1018: -34,3 + 1075: -38,11 + 1076: -39,11 + 1077: -40,11 + 1078: -41,11 + 1079: -42,11 + 1169: -40,-6 + 1213: -41,-14 + 1214: -40,-14 + 1215: -39,-14 + 1238: -35,-15 + 1239: -34,-15 + 1240: -33,-15 + 1254: -32,15 + 1255: -36,15 + 1256: -35,17 + 1257: -33,17 + 1435: -36,-34 + 1510: -31,-28 + 1511: -31,-27 + 1544: -36,-38 + 1557: -30,-40 + 1558: -29,-40 + 1559: -28,-40 + 1560: -28,-39 + 1561: -29,-39 + 1562: -30,-39 + 1563: -30,-38 + 1564: -29,-38 + 1565: -28,-38 + 1648: -26,-35 + 1819: -20,-33 + 1978: -11,-40 + 1979: -11,-46 + 2088: -3,-29 + 2089: -4,-29 + 2275: -42,-52 + 2594: -3,-41 + 2595: -3,-40 + 2596: -5,-40 + 2597: -5,-41 + 2598: -5,-38 + 2599: -5,-37 + 2600: -5,-36 + 2601: -4,-36 + 2602: -3,-36 + 2603: -3,-38 + 2672: -33,3 + 2673: -35,3 + 2674: -36,8 + 2675: -36,9 + 2676: -36,10 + 2772: 29,-2 + 3192: 43,19 + 3234: 40,21 + 3235: 40,22 + 3858: 44,-4 + 3859: 44,-6 + 3860: 44,-7 + 3861: 44,-8 + 3862: 44,-9 + 3863: 44,-10 + 3864: 44,-11 + 3865: 44,-13 + 4093: -8,25 + 4094: -3,25 + 4095: -12,25 + 4299: -13,38 + 4337: -12,43 + 4338: -10,41 + 4339: -10,42 + 4340: -10,37 + 4341: -10,38 + 4374: -27,32 + 4460: -43,22 + 4461: -43,26 + 4462: -40,26 + 4559: -28,27 + 4591: -4,37 + 4592: -5,37 + 4593: -6,37 + 4651: 7,31 + 4788: 11,48 + 4789: 12,49 + 4790: 12,50 + 4834: 4,47 + 4875: 1,53 + 4876: 0,53 + 5119: -7,76 + 5596: 7,-28 + 5597: 7,-22 + 5617: 12,-33 + 5618: 19,-27 + 5619: 19,-26 + 5620: 17,-26 + 5621: 17,-27 + 5622: 15,-27 + 5623: 15,-26 + 6234: 5,-50 + 6235: 0,-44 + 6236: -1,-44 + 6446: -18,-62 + 6447: -20,-63 + 6448: -20,-58 + 6535: 14,-66 + 6536: 10,-66 + 6594: -7,-71 + 6595: -7,-69 + 6596: -5,-70 + 6597: -3,-74 + 6598: -1,-74 + 6599: 1,-74 + 6600: 3,-74 + 6601: -3,-76 + 6602: -2,-77 + 6603: -1,-77 + 6604: 1,-77 + 6605: 2,-77 + 6606: 4,-76 + 6607: 0,-65 + 6608: -4,-66 + 6609: -3,-66 + 6610: 3,-66 + 6611: 4,-66 + 6612: -1,-67 + 6613: 1,-67 + 6614: -5,-64 + 6615: -3,-65 + 6870: 23,-64 + 6871: 23,-63 + 6872: 23,-62 + 6873: 27,-61 + 6874: 31,-62 + 6875: 28,-59 + 6876: 30,-56 + 6877: 24,-53 + 6878: 24,-52 + 6879: 24,-51 + 6880: 26,-53 + 6881: 23,-58 + 6882: 20,-51 + 6883: 20,-52 + 7016: 22,-60 + 7017: 28,-65 + 7018: 32,-64 + 7019: 32,-62 + 7020: 32,-60 + 7021: 32,-58 + 7022: 32,-56 + 7041: 34,-49 + 7042: 34,-50 + 7043: 34,-51 + 7044: 34,-52 + 7066: 38,-46 + 7067: 36,-46 + 7068: 35,-47 + 7077: 16,-39 + 7131: 13,-43 + 7132: 13,-47 + 7316: 26,-57 + 7317: 28,-56 + 7318: 28,-62 + 7319: 29,-62 + 7320: 22,-57 + 7321: 26,-65 + 7325: 30,-55 + 7327: 28,-53 + 7328: 31,-54 + 7330: 30,-61 + 7331: 25,-61 + 7336: 31,-58 + 7337: 24,-64 + 7338: 32,-54 + 7491: -4,-60 + 7497: -6,-59 + 7498: -6,-58 + 7499: -6,-57 + 7500: -5,-57 + 7501: -5,-58 + 7502: -5,-59 + 7503: -4,-59 + 7504: -4,-58 + 7505: -4,-57 + 7506: -3,-57 + 7507: -3,-58 + 7508: -3,-59 + 7509: -2,-59 + 7510: -2,-58 + 7511: -2,-57 + 7525: 32,24 + 7526: 34,24 + 7527: 34,22 + 7528: 32,22 + - node: + angle: 1.5707963267948966 rad + color: '#FFFFFFFF' + id: Delivery + decals: + 2130: -45,-44 + 2132: -48,-35 + - node: + angle: 3.141592653589793 rad + color: '#FFFFFFFF' + id: Delivery + decals: + 4561: -33,26 + - node: + color: '#EFB341FF' + id: DeliveryGreyscale + decals: + 6303: 6,-61 + 6304: 7,-61 + 6305: 8,-61 + - node: + color: '#52B4E996' + id: DiagonalOverlay + decals: + 6834: 12,-43 + 6835: 12,-44 + 6836: 13,-44 + 6837: 14,-43 + 7127: 14,-44 + 7128: 13,-43 + - node: + color: '#DE3A3A96' + id: DiagonalOverlay + decals: + 6838: 12,-47 + 6839: 12,-46 + 6840: 14,-47 + 7124: 13,-47 + 7125: 13,-46 + 7126: 14,-46 + - node: + color: '#FFFFFFFF' + id: Dirt + decals: + 7377: -42,-23 + 7378: -44,-24 + 7379: -48,-17 + 7380: -48,-20 + 7381: -45,-22 + 7382: -45,-19 + 7383: -46,-18 + 7384: -42,-16 + 7385: -41,-18 + 7386: -48,-22 + 7387: -49,-20 + 7388: -49,-17 + 7389: -47,-24 + 7438: -41,-21 + 7439: -42,-20 + 7440: -43,-18 + 7441: -44,-18 + 7442: -42,-17 + 7443: -47,-18 + 7444: -49,-16 + 7445: -49,-22 + 7446: -49,-23 + 7447: -47,-23 + 7448: -47,-23 + 7449: -45,-24 + 7450: -45,-23 + 7451: -41,-24 + - node: + color: '#A4610696' + id: DirtHeavy + decals: + 620: -14,-11 + 621: -13,-11 + 622: -14,-10 + 623: -13,-10 + 624: -12,-11 + 625: -12,-11 + 626: -13,-9 + 627: -12,-10 + 628: -11,-11 + 629: -10,-11 + 630: -11,-9 + 631: -11,-9 + 632: -11,-11 + 633: -12,-11 + 634: -13,-11 + 635: -14,-9 + 636: -13,-10 + 637: -11,-9 + 638: -11,-9 + 639: -14,-10 + 640: -11,-10 + 641: -11,-10 + 642: -10,-10 + - node: + color: '#FFFFFFFF' + id: DirtHeavy + decals: + 423: -4,3 + 424: -1,-5 + 425: -1,-5 + 426: -1,-6 + 427: -1,-8 + 428: -1,-8 + 429: -1,-7 + 430: 2,-8 + 431: 2,-7 + 432: 2,-8 + 433: 2,-8 + 434: 2,-8 + 435: 2,-6 + 436: 2,-5 + 437: 2,-5 + 438: 2,-5 + 439: 8,9 + 440: 8,9 + 441: 8,9 + 442: 8,9 + 443: 7,-8 + 444: 7,-8 + 445: 7,-8 + 446: 7,-8 + 447: -14,5 + 448: -14,5 + 449: -13,5 + 450: -13,4 + 451: -12,5 + 452: -12,6 + 453: -12,6 + 558: 9,-10 + 559: 9,-10 + 560: 9,-11 + 561: 9,-11 + 562: 9,-11 + 563: 9,-11 + 564: 8,-11 + 565: 8,-11 + 566: 8,-11 + 567: 15,-5 + 568: 15,-5 + 569: 15,-5 + 570: 14,-5 + 571: 14,-5 + 572: 14,-4 + 573: 11,-7 + 574: 11,-7 + 575: 12,-7 + 576: 12,-7 + 577: 15,-7 + 578: 15,-7 + 579: 16,-7 + 580: 15,-7 + 581: 13,-7 + 582: 16,-5 + 583: 16,-5 + 584: 16,-4 + 585: 16,-4 + 593: 8,-13 + 594: 9,-16 + 595: 5,-16 + 596: 5,-16 + 597: 6,-16 + 598: 6,-16 + 599: 6,-17 + 600: 8,-16 + 601: 8,-16 + 605: -7,-11 + 606: -7,-11 + 607: -8,-11 + 608: -8,-11 + 609: -8,-10 + 610: -8,-10 + 611: -6,-14 + 612: -6,-14 + 613: -6,-14 + 614: -8,-13 + 615: -8,-13 + 645: -4,-19 + 646: -4,-19 + 647: -5,-17 + 648: -5,-17 + 649: -6,-18 + 650: -7,-19 + 651: -7,-19 + 652: -6,-17 + 653: -5,-17 + 654: -4,-19 + 655: -3,-19 + 656: -3,-18 + 657: -3,-17 + 660: -10,-20 + 661: -11,-20 + 662: -11,-19 + 663: -10,-19 + 664: -10,-19 + 665: -9,-20 + 666: -9,-20 + 667: -11,-19 + 668: -11,-19 + 675: -13,-18 + 676: -14,-18 + 677: -15,-18 + 678: -16,-18 + 679: -17,-18 + 680: -17,-17 + 681: -17,-17 + 682: -16,-16 + 683: -15,-17 + 684: -14,-17 + 685: -14,-16 + 686: -13,-16 + 687: -15,-16 + 688: -15,-16 + 689: -17,-16 + 690: -17,-16 + 691: -17,-16 + 692: -17,-16 + 701: -9,-17 + 702: -10,-17 + 703: -10,-17 + 704: -11,-17 + 705: -11,-16 + 706: -11,-16 + 707: -11,-15 + 708: -11,-14 + 709: -11,-14 + 710: -12,-13 + 711: -13,-13 + 712: -14,-13 + 713: -15,-13 + 714: -15,-13 + 715: -15,-13 + 716: -15,-14 + 717: -15,-14 + 718: -14,-14 + 719: -12,-14 + 720: -12,-14 + 721: -16,-13 + 725: -16,-12 + 726: -16,-12 + 727: -16,-11 + 728: -16,-10 + 729: -16,-9 + 730: -17,-9 + 731: -17,-9 + 738: -19,-15 + 739: -19,-14 + 740: -20,-14 + 741: -21,-14 + 742: -21,-15 + 743: -21,-13 + 744: -21,-13 + 745: -19,-13 + 746: -18,-13 + 747: -18,-14 + 748: -18,-13 + 749: -18,-12 + 750: -19,-13 + 751: -20,-13 + 752: -20,-12 + 753: -21,-12 + 754: -21,-12 + 755: -21,-12 + 756: -20,-12 + 761: -23,-15 + 762: -23,-14 + 763: -24,-14 + 764: -25,-14 + 765: -25,-15 + 766: -25,-13 + 767: -23,-13 + 768: -25,-12 + 769: -25,-13 + 770: -24,-12 + 771: -23,-12 + 774: -25,-10 + 775: -25,-9 + 776: -25,-9 + 777: -25,-9 + 778: -26,-9 + 779: -25,-9 + 780: -24,-9 + 781: -24,-9 + 782: -23,-10 + 783: -22,-10 + 784: -22,-9 + 785: -21,-9 + 786: -20,-10 + 787: -19,-10 + 788: -19,-9 + 789: -18,-9 + 790: -18,-9 + 791: -20,-9 + 792: -20,-9 + 793: -19,-10 + 794: -18,-9 + 795: -18,-9 + 796: -21,-9 + 797: -21,-9 + 798: -21,-8 + 799: -21,-8 + 800: -21,-8 + 801: -20,-8 + 810: -21,-8 + 811: -20,-8 + 812: -20,-7 + 813: -20,-7 + 814: -21,-7 + 815: -21,-7 + 816: -20,-6 + 817: -20,-6 + 818: -20,-5 + 819: -21,-5 + 820: -21,-5 + 821: -22,-5 + 822: -22,-5 + 823: -22,-4 + 824: -21,-4 + 825: -21,-4 + 826: -20,-4 + 827: -20,-3 + 828: -21,-3 + 829: -22,-3 + 830: -22,-3 + 910: -21,4 + 911: -21,4 + 912: -22,4 + 913: -22,4 + 914: -22,5 + 915: -21,5 + 916: -20,5 + 917: -21,6 + 918: -21,6 + 919: -21,7 + 920: -20,7 + 921: -20,8 + 922: -21,8 + 923: -22,8 + 924: -22,9 + 925: -22,9 + 926: -23,9 + 927: -23,9 + 928: -24,9 + 929: -24,10 + 930: -24,10 + 931: -24,11 + 932: -23,11 + 933: -23,12 + 934: -21,11 + 935: -21,11 + 936: -21,11 + 937: -21,12 + 938: -22,12 + 939: -23,12 + 940: -24,12 + 941: -22,11 + 942: -20,11 + 943: -20,10 + 944: -21,10 + 945: -21,9 + 946: -21,9 + 947: -20,10 + 948: -21,12 + 949: -21,12 + 950: -20,12 + 951: -22,12 + 952: -23,12 + 953: -24,11 + 954: -24,12 + 955: -24,12 + 956: -23,11 + 957: -23,11 + 969: -31,10 + 970: -31,11 + 971: -31,11 + 972: -31,12 + 973: -30,12 + 974: -30,10 + 975: -29,11 + 976: -29,12 + 977: -29,12 + 978: -29,13 + 979: -28,13 + 980: -27,11 + 981: -27,10 + 982: -27,10 + 983: -28,12 + 984: -28,13 + 985: -27,13 + 986: -26,12 + 987: -26,10 + 988: -26,10 + 989: -26,9 + 990: -26,11 + 991: -27,13 + 992: -28,12 + 993: -29,10 + 994: -30,11 + 995: -30,12 + 996: -29,13 + 997: -27,12 + 998: -27,13 + 999: -27,12 + 1000: -26,11 + 1001: -26,10 + 1002: -26,9 + 1301: -39,-25 + 1302: -38,-25 + 1303: -37,-25 + 1304: -37,-24 + 1305: -38,-24 + 1306: -39,-24 + 1307: -39,-23 + 1308: -38,-23 + 1309: -37,-24 + 1310: -37,-24 + 1311: -39,-23 + 1312: -38,-23 + 1313: -38,-23 + 1314: -37,-23 + 1315: -38,-23 + 1316: -39,-24 + 1317: -38,-24 + 1318: -37,-24 + 1319: -37,-23 + 1320: -37,-23 + 1322: -43,-28 + 1323: -43,-27 + 1324: -43,-27 + 1325: -42,-26 + 1326: -42,-27 + 1327: -41,-27 + 1328: -41,-27 + 1329: -42,-27 + 1330: -41,-26 + 1331: -41,-27 + 1332: -40,-28 + 1333: -39,-27 + 1334: -39,-26 + 1335: -40,-26 + 1336: -40,-27 + 1337: -40,-28 + 1338: -40,-28 + 1339: -39,-27 + 1340: -39,-26 + 1341: -40,-27 + 1342: -41,-28 + 1343: -41,-28 + 1344: -41,-27 + 1345: -41,-27 + 1346: -41,-26 + 1347: -42,-26 + 1348: -42,-27 + 1354: -47,-28 + 1355: -46,-28 + 1356: -46,-27 + 1357: -46,-27 + 1358: -47,-26 + 1359: -46,-26 + 1360: -45,-26 + 1361: -45,-27 + 1362: -45,-27 + 1363: -46,-28 + 1364: -47,-27 + 1365: -47,-26 + 1366: -46,-27 + 1367: -46,-27 + 1368: -44,-27 + 1369: -44,-27 + 1370: -44,-27 + 1371: -44,-27 + 1377: -40,-29 + 1378: -39,-29 + 1379: -39,-29 + 1380: -39,-29 + 1381: -40,-29 + 1394: -39,-34 + 1395: -38,-34 + 1396: -38,-33 + 1397: -38,-33 + 1398: -38,-34 + 1399: -39,-34 + 1400: -39,-34 + 1401: -39,-34 + 1402: -40,-34 + 1403: -40,-33 + 1404: -40,-33 + 1405: -40,-33 + 1406: -40,-32 + 1407: -39,-32 + 1408: -39,-31 + 1409: -39,-31 + 1410: -40,-31 + 1411: -39,-30 + 1412: -39,-30 + 1413: -39,-29 + 1414: -40,-30 + 1415: -40,-31 + 1416: -40,-32 + 1417: -40,-32 + 1512: -36,-32 + 1513: -36,-31 + 1514: -36,-29 + 1515: -36,-27 + 1516: -34,-27 + 1517: -33,-27 + 1518: -33,-28 + 1519: -33,-29 + 1520: -35,-27 + 1521: -36,-28 + 1522: -37,-30 + 1523: -37,-28 + 1524: -36,-27 + 1525: -34,-31 + 1526: -34,-32 + 1527: -35,-32 + 1528: -33,-32 + 1529: -33,-30 + 1530: -35,-33 + 1531: -34,-35 + 1532: -35,-34 + 1533: -35,-34 + 1534: -35,-34 + 1535: -34,-31 + 1536: -36,-31 + 1537: -36,-29 + 1538: -36,-30 + 1608: -34,-37 + 1609: -34,-38 + 1610: -34,-40 + 1611: -33,-42 + 1612: -34,-44 + 1613: -35,-44 + 1614: -35,-41 + 1615: -31,-41 + 1616: -30,-42 + 1617: -29,-41 + 1618: -31,-39 + 1619: -30,-38 + 1620: -28,-39 + 1621: -29,-41 + 1622: -29,-39 + 1683: -27,-24 + 1684: -26,-23 + 1685: -25,-22 + 1686: -23,-24 + 1687: -22,-24 + 1688: -22,-22 + 1689: -23,-21 + 1690: -23,-20 + 1691: -23,-18 + 1692: -22,-19 + 1693: -24,-19 + 1694: -23,-18 + 1695: -19,-18 + 1696: -20,-18 + 1697: -21,-18 + 1698: -20,-18 + 1699: -21,-17 + 1700: -21,-17 + 1701: -25,-18 + 1702: -25,-22 + 1703: -27,-22 + 1704: -26,-24 + 1705: -27,-24 + 1706: -24,-25 + 1707: -21,-24 + 1708: -21,-20 + 1709: -23,-24 + 1710: -23,-21 + 1711: -25,-24 + 1712: -22,-22 + 1713: -22,-22 + 1714: -24,-24 + 1837: -13,-29 + 1838: -13,-29 + 1839: -12,-25 + 1840: -10,-22 + 1841: -10,-24 + 1842: -12,-23 + 1843: -11,-22 + 1844: -11,-23 + 1845: -11,-24 + 1987: -7,-38 + 1988: -8,-38 + 1989: -10,-38 + 1990: -11,-37 + 1991: -10,-37 + 1992: -9,-36 + 1993: -8,-36 + 1994: -10,-36 + 1995: -11,-36 + 1996: -12,-37 + 1997: -13,-38 + 1998: -13,-39 + 1999: -12,-40 + 2000: -12,-41 + 2001: -13,-42 + 2002: -13,-42 + 2003: -12,-40 + 2004: -12,-41 + 2005: -13,-42 + 2006: -12,-44 + 2007: -12,-45 + 2008: -12,-47 + 2009: -13,-48 + 2010: -12,-50 + 2011: -11,-50 + 2012: -12,-49 + 2013: -11,-48 + 2014: -12,-48 + 2015: -13,-49 + 2016: -13,-49 + 2017: -12,-48 + 2018: -12,-45 + 2019: -12,-44 + 2020: -13,-45 + 2021: -13,-43 + 2022: -13,-42 + 2023: -13,-40 + 2024: -12,-39 + 2025: -12,-39 + 2026: -11,-41 + 2027: -11,-43 + 2028: -11,-45 + 2029: -11,-45 + 2030: -11,-43 + 2031: -11,-42 + 2032: -14,-43 + 2033: -14,-46 + 2034: -14,-40 + 2035: -13,-37 + 2036: -13,-36 + 2037: -14,-37 + 2038: -12,-36 + 2039: -8,-38 + 2040: -7,-37 + 2041: -7,-36 + 2042: -8,-34 + 2043: -8,-32 + 2044: -8,-31 + 2045: -8,-31 + 2046: -7,-31 + 2047: -7,-32 + 2048: -6,-34 + 2049: -5,-32 + 2050: -5,-31 + 2051: -4,-32 + 2052: -4,-33 + 2053: -3,-34 + 2054: -3,-33 + 2055: -4,-31 + 2056: -5,-32 + 2057: -7,-34 + 2058: -14,-49 + 2059: -14,-49 + 2060: -13,-50 + 2061: -13,-51 + 2162: -40,-40 + 2163: -39,-40 + 2164: -38,-39 + 2165: -39,-39 + 2166: -40,-39 + 2167: -40,-38 + 2168: -39,-38 + 2169: -39,-37 + 2170: -40,-37 + 2171: -40,-37 + 2172: -41,-36 + 2173: -41,-37 + 2174: -39,-37 + 2175: -38,-38 + 2176: -38,-38 + 2177: -39,-37 + 2178: -41,-36 + 2179: -40,-38 + 2180: -39,-39 + 2181: -38,-38 + 2182: -39,-37 + 2183: -40,-37 + 2184: -39,-38 + 2185: -38,-38 + 2186: -40,-37 + 2280: -29,-49 + 2281: -29,-48 + 2282: -28,-47 + 2283: -27,-48 + 2284: -25,-48 + 2285: -26,-47 + 2286: -27,-47 + 2287: -26,-48 + 2288: -24,-48 + 2289: -32,-46 + 2290: -36,-46 + 2291: -37,-46 + 2292: -38,-46 + 2293: -37,-48 + 2294: -34,-48 + 2295: -33,-49 + 2296: -35,-49 + 2297: -36,-47 + 2298: -37,-49 + 2299: -35,-50 + 2300: -33,-48 + 2301: -33,-48 + 2302: -33,-51 + 2303: -35,-52 + 2304: -38,-51 + 2305: -39,-51 + 2306: -39,-53 + 2307: -37,-52 + 2308: -35,-52 + 2309: -37,-52 + 2310: -39,-50 + 2311: -37,-49 + 2312: -36,-52 + 2313: -35,-51 + 2314: -34,-51 + 2315: -42,-50 + 2316: -43,-50 + 2317: -43,-51 + 2318: -41,-51 + 2319: -41,-51 + 2369: -20,-50 + 2370: -21,-50 + 2371: -22,-50 + 2372: -22,-50 + 2373: -22,-49 + 2374: -21,-49 + 2375: -20,-49 + 2376: -20,-49 + 2377: -21,-49 + 2378: -22,-48 + 2379: -22,-48 + 2380: -21,-48 + 2381: -20,-47 + 2382: -21,-47 + 2383: -22,-46 + 2384: -21,-46 + 2385: -20,-45 + 2386: -22,-44 + 2387: -23,-44 + 2388: -23,-44 + 2389: -25,-45 + 2390: -25,-45 + 2391: -26,-44 + 2392: -28,-44 + 2393: -28,-44 + 2394: -28,-45 + 2395: -29,-45 + 2396: -30,-45 + 2397: -30,-44 + 2398: -31,-44 + 2399: -31,-44 + 2400: -29,-44 + 2401: -26,-44 + 2402: -25,-44 + 2403: -20,-40 + 2404: -21,-40 + 2405: -21,-40 + 2406: -22,-40 + 2407: -22,-39 + 2408: -21,-38 + 2409: -20,-37 + 2410: -21,-37 + 2411: -22,-37 + 2412: -21,-36 + 2413: -21,-36 + 2414: -20,-36 + 2415: -21,-37 + 2416: -21,-38 + 2417: -21,-39 + 2418: -21,-39 + 2419: -21,-39 + 2420: -21,-37 + 2421: -21,-37 + 2425: -20,-54 + 2426: -21,-54 + 2427: -21,-53 + 2428: -21,-53 + 2429: -21,-53 + 2430: -23,-53 + 2431: -23,-52 + 2432: -23,-52 + 2433: -23,-51 + 2434: -22,-51 + 2435: -21,-51 + 2436: -20,-52 + 2437: -20,-51 + 2438: -20,-52 + 2439: -22,-53 + 2443: -26,-53 + 2444: -28,-53 + 2445: -29,-53 + 2446: -30,-52 + 2447: -30,-52 + 2448: -30,-51 + 2449: -28,-52 + 2450: -26,-51 + 2451: -26,-51 + 2452: -26,-52 + 2453: -25,-52 + 2454: -27,-53 + 2455: -25,-53 + 2456: -25,-53 + 2457: -30,-51 + 2458: -30,-53 + 2459: -28,-51 + 2466: -27,-57 + 2467: -27,-56 + 2468: -26,-55 + 2469: -26,-55 + 2470: -26,-57 + 2471: -24,-56 + 2472: -24,-55 + 2473: -24,-55 + 2474: -23,-56 + 2475: -23,-57 + 2476: -23,-55 + 2477: -27,-55 + 2478: -26,-57 + 2479: -27,-56 + 2480: -23,-55 + 2493: -29,-55 + 2494: -29,-56 + 2495: -31,-56 + 2496: -32,-56 + 2497: -31,-55 + 2498: -28,-61 + 2499: -28,-60 + 2500: -27,-60 + 2501: -26,-60 + 2502: -25,-60 + 2503: -25,-58 + 2504: -24,-59 + 2505: -24,-60 + 2506: -24,-60 + 2507: -23,-60 + 2508: -24,-59 + 2509: -25,-60 + 2510: -24,-61 + 2511: -26,-63 + 2512: -27,-63 + 2513: -27,-65 + 2514: -25,-65 + 2515: -24,-65 + 2516: -25,-63 + 2517: -25,-63 + 2518: -24,-64 + 2519: -26,-65 + 2520: -27,-61 + 2521: -27,-61 + 2522: -29,-59 + 2523: -29,-58 + 2524: -29,-57 + 2530: -18,-54 + 2531: -18,-54 + 2532: -18,-53 + 2533: -18,-53 + 2534: -17,-53 + 2535: -16,-54 + 2536: -16,-54 + 2537: -15,-53 + 2538: -14,-52 + 2539: -12,-53 + 2540: -11,-53 + 2541: -11,-52 + 2542: -11,-52 + 2543: -15,-52 + 2544: -10,-54 + 2545: -13,-54 + 2546: -15,-54 + 2547: -16,-54 + 2548: -14,-52 + 2549: -11,-52 + 2550: -10,-53 + 2551: -17,-53 + 2552: -16,-52 + 2553: -13,-54 + 2554: -15,-54 + 2555: -13,-53 + 2556: -11,-52 + 2561: -8,-54 + 2562: -7,-54 + 2563: -8,-53 + 2564: -8,-52 + 2565: -7,-52 + 2566: -7,-54 + 2567: -6,-54 + 2568: -6,-53 + 2569: -7,-53 + 2570: -6,-52 + 2571: -6,-52 + 2572: -6,-51 + 2573: -6,-49 + 2574: -5,-49 + 2575: -6,-49 + 2576: -6,-50 + 2577: -6,-51 + 2578: -7,-53 + 2580: -5,-48 + 2581: -5,-47 + 2582: -5,-46 + 2583: -5,-46 + 2584: -5,-45 + 2585: -5,-45 + 2586: -5,-43 + 2587: -5,-44 + 2588: -4,-43 + 2589: -4,-45 + 2590: -3,-43 + 2591: -4,-43 + 2592: -5,-43 + 2593: -3,-43 + 2727: 18,-3 + 2728: 18,-3 + 2729: 19,-3 + 2730: 19,-4 + 2731: 19,-5 + 2732: 19,-7 + 2733: 19,-7 + 2734: 20,-7 + 2735: 21,-7 + 2736: 21,-6 + 2737: 21,-5 + 2738: 21,-4 + 2739: 21,-4 + 2740: 22,-3 + 2741: 22,-4 + 2742: 22,-6 + 2743: 23,-6 + 2744: 24,-6 + 2745: 24,-5 + 2746: 25,-4 + 2747: 25,-3 + 2748: 25,-3 + 2749: 25,-5 + 2750: 23,-7 + 2751: 24,-3 + 2752: 24,-3 + 2753: 21,-3 + 2754: 22,-3 + 2755: 18,-5 + 2778: 23,-13 + 2779: 22,-13 + 2780: 22,-12 + 2781: 22,-11 + 2782: 22,-9 + 2783: 22,-9 + 2784: 23,-10 + 2785: 24,-11 + 2786: 24,-11 + 2787: 22,-10 + 2788: 22,-13 + 2789: 22,-12 + 2790: 22,-11 + 2791: 23,-11 + 2792: 24,-9 + 2793: 26,-10 + 2794: 26,-9 + 2795: 27,-9 + 2796: 26,-8 + 2797: 28,-8 + 2798: 29,-9 + 2799: 29,-8 + 2800: 30,-7 + 2801: 28,-7 + 2802: 28,-7 + 2803: 30,-9 + 2804: 30,-7 + 2815: 22,-16 + 2816: 22,-15 + 2817: 23,-16 + 2818: 23,-16 + 2819: 24,-15 + 2820: 25,-16 + 2821: 25,-16 + 2822: 26,-15 + 2823: 26,-14 + 2824: 25,-14 + 2825: 26,-12 + 2826: 26,-14 + 2827: 25,-14 + 2828: 25,-13 + 2829: 25,-13 + 2830: 25,-13 + 2831: 24,-15 + 3045: 24,6 + 3046: 23,6 + 3047: 15,6 + 3048: 15,6 + 3049: 18,8 + 3050: 18,7 + 3051: 17,7 + 3052: 20,11 + 3053: 20,6 + 3054: 24,8 + 3055: 26,6 + 3056: 28,8 + 3057: 28,6 + 3058: 29,5 + 3059: 29,4 + 3060: 31,7 + 3061: 34,7 + 3062: 35,5 + 3063: 33,7 + 3064: 29,8 + 3065: 29,10 + 3066: 28,9 + 3067: 30,10 + 3068: 30,8 + 3069: 26,8 + 3070: 20,11 + 3071: 17,11 + 3072: 15,11 + 3073: 17,8 + 3074: 17,7 + 3075: 21,7 + 3076: 23,10 + 3077: 23,10 + 3078: 25,11 + 3079: 24,13 + 3080: 23,13 + 3081: 24,14 + 3082: 26,14 + 3083: 26,13 + 3084: 23,15 + 3085: 24,15 + 3086: 26,15 + 3087: 26,16 + 3088: 23,16 + 3089: 22,16 + 3090: 20,16 + 3091: 19,16 + 3092: 20,18 + 3093: 21,18 + 3094: 21,18 + 3095: 23,19 + 3096: 25,18 + 3097: 25,16 + 3098: 26,18 + 3099: 24,18 + 3100: 22,17 + 3101: 22,20 + 3102: 26,18 + 3103: 22,18 + 3104: 20,16 + 3105: 19,16 + 3106: 27,16 + 3218: 43,21 + 3219: 43,21 + 3220: 44,21 + 3221: 42,23 + 3222: 42,23 + 3223: 42,24 + 3224: 42,24 + 3225: 43,24 + 3226: 43,23 + 3227: 43,22 + 3228: 42,22 + 3229: 42,21 + 3244: 10,21 + 3245: 10,22 + 3246: 8,22 + 3247: 8,22 + 3248: 8,21 + 3249: 7,21 + 3250: 5,21 + 3251: 4,21 + 3252: 5,22 + 3253: 5,22 + 3254: 6,22 + 3255: 6,21 + 3256: 10,22 + 3262: 12,23 + 3263: 12,22 + 3264: 12,22 + 3265: 13,22 + 3266: 12,20 + 3267: 12,20 + 3268: 12,17 + 3269: 12,19 + 3270: 12,19 + 3271: 13,22 + 3272: 13,22 + 3273: 13,19 + 3274: 13,17 + 3275: 13,16 + 3276: 13,14 + 3277: 13,12 + 3278: 13,11 + 3279: 12,12 + 3280: 12,14 + 3281: 12,15 + 3282: 12,14 + 3283: 12,13 + 3284: 13,9 + 3285: 13,8 + 3286: 12,8 + 3287: 12,8 + 3288: 11,8 + 3289: 11,9 + 3290: 12,9 + 3291: 13,8 + 3292: 13,7 + 3293: 13,6 + 3294: 13,5 + 3295: 13,4 + 3296: 14,4 + 3297: 15,4 + 3298: 12,12 + 3299: 12,15 + 3300: 17,23 + 3301: 17,22 + 3302: 16,21 + 3303: 16,20 + 3304: 17,20 + 3305: 19,21 + 3306: 18,22 + 3307: 17,23 + 3308: 16,22 + 3309: 15,21 + 3317: 16,25 + 3318: 16,27 + 3319: 17,27 + 3320: 18,27 + 3321: 18,26 + 3322: 18,25 + 3323: 20,25 + 3324: 20,25 + 3325: 21,25 + 3326: 19,27 + 3327: 23,25 + 3328: 24,25 + 3329: 25,25 + 3330: 25,27 + 3331: 23,27 + 3332: 21,27 + 3333: 21,27 + 3334: 21,27 + 3335: 21,27 + 3336: 21,27 + 3337: 21,27 + 3338: 25,26 + 3339: 26,25 + 3340: 26,25 + 3341: 24,25 + 3342: 20,25 + 3343: 20,27 + 3344: 18,27 + 3345: 18,27 + 3346: 20,26 + 3347: 21,25 + 3348: 20,25 + 3924: -23,14 + 3925: -23,15 + 3926: -22,15 + 3927: -22,16 + 3928: -19,15 + 3929: -20,15 + 3930: -19,14 + 3931: -18,14 + 3932: -17,15 + 3933: -17,16 + 3934: -19,16 + 3935: -19,14 + 3936: -19,14 + 3937: -20,14 + 3938: -21,14 + 3939: -22,14 + 3940: -21,16 + 3941: -18,16 + 3942: -17,15 + 3943: -21,16 + 3944: -22,16 + 3945: -21,17 + 3946: -21,17 + 3947: -23,15 + 3948: -23,16 + 3949: -17,14 + 3950: -22,14 + 3951: -17,16 + 3960: -25,15 + 3961: -26,15 + 3962: -25,16 + 3963: -25,16 + 3964: -25,17 + 3965: -25,18 + 3966: -26,18 + 3967: -26,18 + 3968: -26,20 + 3969: -28,19 + 3970: -28,19 + 3971: -30,19 + 3972: -29,20 + 3973: -30,21 + 3974: -28,21 + 3975: -27,21 + 3976: -27,20 + 3977: -28,21 + 3978: -28,20 + 3979: -26,21 + 3980: -25,20 + 3981: -24,20 + 3982: -24,19 + 3983: -24,19 + 3984: -26,19 + 3985: -28,23 + 3986: -28,24 + 3987: -28,24 + 3988: -28,26 + 3989: -28,26 + 3990: -28,25 + 3991: -28,26 + 3992: -28,25 + 3993: -26,16 + 3994: -25,15 + 3996: -32,19 + 3997: -33,19 + 3998: -34,19 + 3999: -33,20 + 4000: -34,21 + 4001: -34,20 + 4002: -32,21 + 4003: -32,20 + 4004: -28,15 + 4005: -29,15 + 4006: -30,16 + 4007: -29,17 + 4008: -29,16 + 4009: -29,16 + 4010: -28,17 + 4011: -28,17 + 4012: -30,15 + 4013: -29,17 + 4014: -29,17 + 4113: -13,22 + 4114: -12,22 + 4115: -12,24 + 4116: -10,22 + 4117: -9,24 + 4118: -7,24 + 4119: -8,22 + 4120: -7,22 + 4121: -9,23 + 4122: -4,22 + 4123: -3,23 + 4124: -4,24 + 4125: -3,25 + 4724: -7,42 + 4725: -5,42 + 4726: -4,42 + 4727: -5,43 + 4728: -7,43 + 4729: -6,44 + 4730: -4,44 + 4731: -4,45 + 4732: -5,43 + 4733: -6,43 + 4734: -6,44 + 4735: -6,45 + 4736: -5,44 + 4737: -4,46 + 4738: -4,47 + 4739: -3,47 + 4740: -3,48 + 4741: -4,48 + 4742: -4,47 + 4743: -4,45 + 4744: -6,45 + 4745: -3,44 + 4746: -8,45 + 4747: -9,45 + 4748: -11,45 + 4749: -12,45 + 4750: -12,46 + 4751: -12,47 + 4752: -12,48 + 4753: -11,46 + 4754: -12,47 + 4755: -12,47 + 4756: -7,45 + 4757: -7,43 + 4758: -4,43 + 5408: 36,-28 + 5409: 36,-28 + 5410: 36,-29 + 5411: 35,-33 + 5412: 35,-33 + 5413: 36,-34 + 5414: 36,-35 + 5415: 35,-35 + 5416: 34,-35 + 5417: 34,-33 + 5418: 34,-32 + 5419: 34,-31 + 5420: 34,-29 + 5421: 34,-28 + 5422: 34,-30 + 5423: 35,-32 + 5424: 36,-31 + 5425: 34,-33 + 5426: 35,-35 + 5427: 36,-33 + 5428: 34,-28 + 5429: 36,-31 + 5430: 35,-32 + 5431: 35,-29 + 5480: 19,-30 + 5481: 17,-30 + 5944: 13,-38 + 5945: 12,-37 + 5946: 11,-37 + 5947: 11,-36 + 5948: 13,-36 + 5949: 13,-36 + 5950: 14,-36 + 5951: 12,-36 + 5952: 11,-37 + 5953: 15,-36 + 5954: 16,-37 + 5955: 13,-37 + 5956: 14,-38 + 5957: 13,-39 + 5958: 11,-39 + 5959: 10,-39 + 5960: 11,-38 + 5961: 12,-38 + 5962: 10,-37 + 5963: 10,-35 + 5964: 12,-35 + 5965: 14,-35 + 5966: 15,-35 + 5967: 16,-36 + 5968: 15,-37 + 5969: 10,-39 + 5970: 10,-38 + 5978: 18,-35 + 5979: 19,-35 + 5980: 20,-35 + 5981: 21,-35 + 5982: 22,-35 + 5983: 23,-35 + 5984: 23,-36 + 5985: 24,-37 + 5986: 25,-36 + 5987: 26,-35 + 5988: 25,-35 + 5989: 26,-36 + 5990: 25,-37 + 5991: 23,-37 + 5992: 22,-38 + 5993: 23,-38 + 5994: 25,-38 + 5995: 27,-38 + 5996: 27,-36 + 5997: 27,-35 + 5998: 21,-37 + 5999: 20,-37 + 6000: 20,-38 + 6001: 18,-38 + 6002: 18,-38 + 6003: 18,-37 + 6004: 22,-37 + 6005: 24,-37 + 6006: 23,-36 + 6007: 24,-35 + 6008: 26,-35 + 6009: 26,-36 + 6010: 26,-38 + 6011: 26,-37 + 6012: 28,-38 + 6013: 29,-37 + 6014: 29,-37 + 6015: 29,-38 + 6016: 30,-37 + 6017: 30,-35 + 6018: 29,-35 + 6019: 31,-35 + 6020: 30,-34 + 6021: 31,-34 + 6022: 31,-35 + 6023: 32,-35 + 6024: 32,-34 + 6025: 30,-34 + 6026: 30,-38 + 6031: 36,-40 + 6032: 36,-39 + 6033: 35,-38 + 6034: 33,-37 + 6035: 35,-37 + 6036: 32,-37 + 6037: 32,-39 + 6038: 32,-40 + 6039: 34,-40 + 6040: 34,-39 + 6041: 33,-38 + 6042: 34,-37 + 6043: 35,-40 + 6044: 35,-39 + 6045: 36,-37 + 6046: 36,-37 + 6047: 33,-39 + 6262: -4,-54 + 6263: -4,-54 + 6264: -3,-53 + 6265: -1,-54 + 6266: -1,-54 + 6267: 0,-54 + 6268: 0,-53 + 6269: -1,-52 + 6270: 0,-51 + 6271: -1,-51 + 6272: -2,-52 + 6273: -3,-52 + 6274: -3,-51 + 6275: -4,-51 + 6276: -4,-52 + 6277: -4,-53 + 6278: -1,-53 + 6279: -1,-52 + 6280: -1,-53 + 6281: -3,-54 + 6282: -3,-53 + 6283: -3,-54 + 6284: -1,-53 + 6285: 0,-52 + 6286: -4,-51 + 6287: -2,-54 + 6288: 0,-53 + 6289: -1,-51 + 6290: -4,-52 + 6291: 0,-52 + 6292: -1,-53 + 6293: -3,-53 + 6294: -2,-53 + 6295: -2,-53 + 6296: 0,-52 + 6333: 3,-53 + 6334: 2,-54 + 6335: 4,-55 + 6336: 3,-56 + 6337: 3,-57 + 6338: 3,-58 + 6339: 3,-60 + 6340: 2,-61 + 6341: 4,-61 + 6342: 4,-59 + 6343: 2,-59 + 6344: 2,-58 + 6345: 4,-57 + 6346: 3,-54 + 6347: 5,-56 + 6348: 1,-58 + 6349: 3,-62 + 6350: 3,-61 + 6395: -8,-60 + 6396: -8,-60 + 6397: -7,-61 + 6398: -5,-61 + 6399: -2,-61 + 6400: -4,-61 + 6401: 0,-61 + 6402: 0,-60 + 6403: 0,-58 + 6404: -4,-56 + 6405: -6,-56 + 6406: -7,-56 + 6407: -8,-57 + 6408: -2,-56 + 6451: -15,-57 + 6452: -16,-57 + 6453: -15,-57 + 6454: -11,-57 + 6455: -11,-57 + 6456: -13,-61 + 6457: -15,-61 + 6458: -16,-61 + 6459: -15,-60 + 6460: -13,-60 + 6461: -14,-60 + 6462: -16,-61 + 6463: -21,-64 + 6464: -21,-63 + 6465: -19,-63 + 6466: -18,-63 + 6467: -19,-62 + 6468: -21,-62 + 6469: -19,-60 + 6470: -21,-60 + 6471: -20,-59 + 6472: -19,-59 + 6473: -19,-57 + 6474: -21,-59 + 6475: -21,-56 + 6476: -19,-56 + 6477: -18,-58 + 6478: -16,-59 + 6479: -15,-58 + 6480: -15,-59 + 6481: -13,-57 + 6482: -12,-58 + 6483: -11,-60 + 6484: -10,-59 + 6485: -9,-59 + 6486: -14,-59 + 6487: -11,-58 + 6488: -8,-59 + 6489: -6,-58 + 6490: -6,-59 + 6491: -4,-58 + 6492: -3,-59 + 6493: -1,-60 + 6494: -1,-57 + 6495: -6,-57 + 6496: -7,-58 + 6497: -7,-60 + 6498: -2,-60 + 6499: -2,-58 + 6710: -7,-76 + 6711: -8,-76 + 6712: -7,-75 + 6713: -6,-74 + 6714: -8,-73 + 6715: -6,-72 + 6716: -5,-71 + 6717: -7,-71 + 6718: -8,-72 + 6719: -7,-72 + 6720: -8,-69 + 6721: -7,-68 + 6722: -6,-70 + 6723: -7,-71 + 6724: -7,-68 + 6725: -8,-65 + 6726: -6,-64 + 6727: -6,-66 + 6728: -6,-68 + 6729: -6,-68 + 6730: -5,-64 + 6731: -5,-64 + 6732: -5,-65 + 6733: -3,-63 + 6734: -3,-64 + 6735: -4,-65 + 6736: -1,-64 + 6737: -1,-63 + 6738: -4,-65 + 6739: -3,-67 + 6740: -3,-66 + 6741: -2,-63 + 6742: -1,-63 + 6743: -1,-65 + 6744: 2,-64 + 6745: 0,-63 + 6746: 0,-64 + 6747: 4,-64 + 6748: 5,-64 + 6749: 5,-67 + 6750: 4,-66 + 6751: 4,-66 + 6752: 3,-64 + 6753: 5,-63 + 6754: 7,-64 + 6755: 7,-66 + 6756: 6,-68 + 6757: 8,-69 + 6758: 6,-67 + 6759: 7,-65 + 6760: 8,-64 + 6761: 8,-65 + 6762: 8,-67 + 6763: 8,-69 + 6764: 6,-69 + 6765: 6,-69 + 6766: 6,-71 + 6767: 9,-71 + 6768: 7,-70 + 6769: 6,-72 + 6770: 7,-72 + 6771: 8,-73 + 6772: 7,-74 + 6773: 5,-72 + 6774: 6,-74 + 6775: 7,-75 + 6776: 5,-77 + 6777: 5,-74 + 6778: 5,-73 + 6779: 5,-75 + 6780: 4,-76 + 6781: 3,-73 + 6782: 3,-73 + 6783: 3,-76 + 6784: 2,-76 + 6785: 2,-75 + 6786: -1,-74 + 6787: 0,-76 + 6788: 1,-77 + 6789: -2,-76 + 6790: -1,-73 + 6791: -2,-75 + 6792: -2,-77 + 6793: -3,-76 + 6794: -3,-74 + 6795: -5,-75 + 6796: -6,-76 + 6797: -6,-74 + 6798: -4,-75 + 6799: -2,-77 + 6800: -3,-73 + 6801: -3,-76 + 6802: 1,-74 + 6803: 0,-73 + 6804: 2,-76 + 6805: 4,-74 + 6806: 5,-73 + 6807: 8,-72 + 6808: 10,-71 + 6809: 10,-69 + 6810: 11,-69 + 6811: 13,-71 + 6812: 12,-69 + 6813: 13,-69 + 6814: 14,-67 + 6815: 12,-65 + 6816: 10,-65 + 6817: 11,-64 + 6818: 13,-65 + 6819: 14,-64 + 6820: 12,-63 + 6821: 9,-64 + 6822: 12,-62 + 6823: 11,-61 + 6824: 13,-60 + 6825: 13,-61 + 6826: 13,-58 + 6827: 11,-58 + 6828: 10,-60 + 6829: 13,-61 + 6830: 13,-61 + 6831: 11,-59 + 6832: 12,-58 + 6833: 13,-59 + 7224: 8,-38 + 7225: 8,-38 + 7226: 8,-35 + 7227: 7,-35 + 7228: 6,-35 + 7229: 4,-35 + 7230: 4,-35 + 7231: 4,-38 + 7232: 6,-37 + 7233: 7,-37 + 7234: 6,-38 + 7235: 4,-37 + 7236: 6,-35 + 7250: 38,-41 + 7251: 38,-41 + 7252: 38,-39 + 7253: 38,-38 + 7254: 39,-37 + 7255: 39,-37 + 7256: 39,-39 + 7257: 40,-40 + 7258: 40,-40 + 7259: 41,-40 + 7260: 41,-38 + 7261: 42,-37 + 7262: 43,-39 + 7263: 43,-40 + 7264: 44,-40 + 7265: 45,-39 + 7266: 45,-38 + 7267: 45,-38 + 7268: 46,-40 + 7269: 46,-41 + 7270: 47,-41 + 7271: 47,-38 + 7272: 46,-37 + 7273: 43,-37 + 7274: 43,-38 + 7275: 42,-38 + 7276: 41,-41 + 7277: 40,-39 + 7278: 39,-40 + 7279: 39,-40 + 7280: 38,-37 + 7281: 40,-39 + 7282: 45,-41 + 7283: 46,-41 + 7284: 47,-39 + 7285: 44,-41 + 7286: 42,-41 + 7287: 44,-39 + 7288: 42,-38 + 7289: 42,-38 + 7290: 38,-37 + 7291: 29,-12 + 7292: 28,-13 + 7293: 28,-13 + 7294: 28,-12 + 7295: 28,-11 + 7296: 30,-11 + 7297: 30,-12 + 7298: 29,-13 + 7304: 6,-14 + 7305: 5,-14 + 7306: 4,-14 + 7307: 4,-13 + 7308: 6,-12 + 7309: 6,-13 + 7310: 6,-14 + 7311: 4,-12 + 7312: 4,-13 + 7352: -48,-16 + 7353: -48,-17 + 7354: -48,-19 + 7355: -49,-20 + 7356: -46,-24 + 7357: -45,-22 + 7358: -43,-21 + 7359: -43,-23 + 7360: -42,-23 + 7361: -41,-23 + 7362: -44,-16 + 7363: -45,-17 + 7364: -46,-18 + 7365: -46,-20 + 7366: -47,-22 + 7367: -47,-22 + 7368: -44,-21 + 7369: -42,-18 + 7370: -45,-17 + 7371: -46,-17 + 7372: -45,-17 + 7373: -46,-18 + 7374: -45,-21 + 7375: -42,-22 + 7376: -41,-23 + 7413: -49,-21 + 7414: -49,-22 + 7415: -49,-23 + 7416: -48,-24 + 7417: -47,-23 + 7418: -47,-21 + 7419: -47,-18 + 7420: -48,-19 + 7421: -48,-18 + 7422: -48,-16 + 7423: -48,-16 + 7424: -49,-16 + 7425: -43,-16 + 7426: -41,-17 + 7427: -43,-18 + 7428: -44,-18 + 7429: -42,-20 + 7430: -40,-21 + 7431: -42,-19 + 7432: -43,-18 + 7433: -41,-21 + 7434: -41,-24 + 7435: -45,-24 + 7436: -45,-23 + 7437: -41,-20 + - node: + cleanable: True + color: '#FFFFFFFF' + id: DirtHeavy + decals: + 7344: 43.129646,-38.225346 + 7345: 43,-38 + - node: + color: '#FFFFFFFF' + id: DirtHeavyMonotile + decals: + 1389: -39,-33 + 1390: -39,-33 + 1391: -39,-33 + 1392: -39,-33 + 1393: -39,-33 + - node: + cleanable: True + color: '#FFFFFFFF' + id: DirtHeavyMonotile + decals: + 7349: 47,-37 + 7350: 47,-37 + - node: + color: '#FFFFFFFF' + id: DirtLight + decals: + 1826: -19,-34 + 1827: -19,-34 + 1828: -19,-34 + 1829: -18,-33 + 1830: -18,-32 + 1831: -18,-31 + 1832: -19,-31 + 1833: -17,-34 + 1834: -17,-33 + 1835: -17,-32 + 1836: -17,-31 + 1900: -17,-50 + 1901: -18,-50 + 1902: -18,-48 + 1903: -17,-48 + 1904: -17,-49 + 1905: -17,-46 + 1906: -18,-46 + 1907: -17,-45 + 1908: -16,-47 + 1909: -17,-46 + 1910: -17,-44 + 1911: -18,-43 + 1912: -17,-43 + 1913: -16,-43 + 1914: -16,-42 + 1915: -17,-40 + 1916: -18,-39 + 1917: -16,-40 + 1918: -16,-41 + 1919: -18,-37 + 1920: -17,-36 + 1921: -17,-37 + 1922: -17,-38 + 1923: -17,-36 + 1924: -17,-38 + 1925: -13,-33 + 1926: -13,-32 + 1927: -12,-32 + 1928: -12,-33 + 1929: -11,-31 + 1930: -13,-33 + 1931: -8,-40 + 1932: -9,-41 + 1933: -8,-43 + 1934: -8,-44 + 1935: -8,-45 + 1936: -9,-46 + 1937: -9,-44 + 1938: -8,-43 + 1939: -7,-41 + 1940: -7,-40 + 1941: -8,-42 + 1942: -9,-46 + 1943: -8,-45 + 1944: -8,-42 + 1945: -8,-43 + 1946: -8,-44 + 1947: -8,-42 + 1948: -7,-41 + 1949: -7,-44 + 1950: -7,-44 + 1951: -8,-44 + 1952: -7,-43 + 1953: -9,-43 + 1954: -7,-44 + 2320: -44,-48 + 2321: -44,-47 + 2322: -43,-46 + 2323: -43,-47 + 2324: -42,-48 + 2325: -42,-46 + 2326: -43,-47 + 2327: -43,-48 + 2328: -42,-46 + 2329: -40,-46 + 2330: -40,-47 + 2331: -44,-53 + 2332: -44,-53 + 2333: -44,-53 + 2334: -42,-53 + - node: + cleanable: True + color: '#FFFFFFFF' + id: DirtLight + decals: + 7346: 44,-37 + 7347: 40,-37 + - node: + cleanable: True + color: '#FFFFFFFF' + id: DirtMedium + decals: + 7348: 41,-37 + - node: + color: '#FFFFFFFF' + id: Flowersbr2 + decals: + 6050: 14,-26 + - node: + color: '#FFFFFFFF' + id: Flowersbr3 + decals: + 6051: 14,-27 + - node: + color: '#FFFFFFFF' + id: Flowerspv1 + decals: + 6059: 3,47 + - node: + color: '#FFFFFFFF' + id: Flowerspv2 + decals: + 6058: 3,48 + - node: + color: '#FFFFFFFF' + id: Flowerspv3 + decals: + 6057: 3,49 + - node: + color: '#FFFFFFFF' + id: Flowersy1 + decals: + 342: -5,-3 + 363: 5,-4 + 403: 3,6 + 404: -8,3 + 3691: 40,-9 + 3692: 34,-8 + 3700: 32,-3 + - node: + color: '#FFFFFFFF' + id: Flowersy2 + decals: + 341: -5,-6 + 405: -3,8 + - node: + color: '#FFFFFFFF' + id: Flowersy3 + decals: + 344: -3,-5 + 365: 6,-6 + 408: 3,9 + 409: -4,5 + - node: + color: '#FFFFFFFF' + id: Flowersy4 + decals: + 343: -7,-2 + 364: 9,-2 + 406: 7,6 + 407: 6,3 + - node: + color: '#222222E5' + id: FullTileOverlayGreyscale + decals: + 116: -1,-5 + 117: -1,-6 + 118: -1,-7 + 119: -1,-8 + 120: -1,-9 + 121: 2,-5 + 122: 2,-6 + 123: 2,-7 + 124: 2,-8 + 125: 2,-9 + 126: 3,-9 + 127: 4,-9 + 128: 5,-9 + 129: -2,-9 + 130: -3,-9 + 131: -4,-9 + 132: 4,-8 + 133: 5,-8 + 134: 6,-8 + 135: 5,-7 + 136: 6,-7 + 137: 7,-7 + 138: 8,-7 + 139: 7,-6 + 140: 8,-6 + 141: 8,-5 + 142: 8,-4 + 143: 6,-1 + 144: 7,-1 + 145: 8,-1 + 146: 9,-1 + 147: 10,-1 + 148: 10,-2 + 149: 10,-3 + 150: 10,-4 + 151: 9,-4 + 152: 9,-3 + 153: 9,-5 + 154: -3,-8 + 155: -4,-8 + 156: -5,-8 + 157: -4,-7 + 158: -5,-7 + 159: -6,-7 + 160: -7,-7 + 161: -6,-6 + 162: -7,-6 + 163: -7,-5 + 164: -7,-4 + 165: -8,-5 + 166: -8,-4 + 167: -8,-3 + 168: -9,-4 + 169: -9,-3 + 170: -9,-2 + 171: -9,-1 + 172: -8,-1 + 173: -7,-1 + 174: -6,-1 + 175: -5,-1 + 176: -9,2 + 177: -8,2 + 178: -7,2 + 179: -6,2 + 180: -5,2 + 181: 6,2 + 182: 7,2 + 183: 8,2 + 184: 9,2 + 185: 10,2 + 186: 10,3 + 187: 10,4 + 188: 10,5 + 189: 9,4 + 190: 9,5 + 191: 9,6 + 192: 8,5 + 193: 8,6 + 194: 8,7 + 195: 8,8 + 196: 7,7 + 197: 7,8 + 198: 6,8 + 199: 5,8 + 200: 6,9 + 201: 5,9 + 202: 4,9 + 203: 5,10 + 204: 4,10 + 205: 3,10 + 206: 2,10 + 207: 2,9 + 208: 2,8 + 209: 2,7 + 210: 2,6 + 211: -1,6 + 212: -1,7 + 213: -1,8 + 214: -1,9 + 215: -1,10 + 216: -2,10 + 217: -3,10 + 218: -4,10 + 219: -3,9 + 220: -4,9 + 221: -5,9 + 222: -5,8 + 223: -4,8 + 224: -6,8 + 225: -7,8 + 226: -7,7 + 227: -6,7 + 228: -7,6 + 229: -7,5 + 230: -8,5 + 231: -8,4 + 232: -9,5 + 233: -9,4 + 234: -9,3 + 255: -4,4 + 256: 5,4 + 257: 5,-3 + 258: 4,-4 + 259: -3,-4 + 260: -4,-3 + 454: -8,6 + 3740: 36,-3 + 3741: 36,-4 + 3742: 33,-3 + 3743: 33,-4 + 3744: 41,-4 + 3745: 42,-4 + 3746: 43,-4 + 3747: 44,-4 + 3748: 44,-5 + 3749: 44,-6 + 3750: 44,-7 + 3751: 44,-8 + 3752: 44,-9 + 3753: 44,-10 + 3754: 44,-11 + 3755: 44,-12 + 3756: 44,-13 + 3757: 43,-13 + 3758: 42,-13 + 3759: 41,-13 + 3760: 40,-13 + 3761: 39,-13 + 3762: 35,-13 + 3763: 34,-13 + 3764: 33,-13 + 3765: 32,-13 + 3768: 45,-13 + 3769: 45,-7 + 3770: 45,-5 + 4843: 0,49 + 4844: 1,49 + 4845: 0,50 + 4846: 1,50 + 4847: 1,51 + 4848: 0,51 + 4849: 0,52 + 4850: 1,52 + 4851: 1,53 + 4852: 0,53 + 4853: 2,53 + 4854: 2,52 + 4855: 2,51 + 4856: -1,53 + 4857: -1,52 + 4858: -1,51 + 4863: 2,54 + 4864: 2,55 + 4865: 1,55 + 4866: 0,55 + 4867: -1,55 + 4868: -1,54 + 4869: -1,57 + 4870: -1,56 + 4871: 0,56 + 4872: 1,56 + 4873: 2,56 + 4874: 2,57 + 4879: -1,58 + 4880: -1,59 + 4881: -1,60 + 4882: -1,61 + 4883: -1,62 + 4884: 0,62 + 4885: 1,62 + 4886: 2,62 + 4887: 2,61 + 4888: 2,60 + 4889: 2,59 + 4890: 2,58 + 4891: 1,58 + 4892: 0,58 + 4893: 0,59 + 4894: 0,60 + 4895: 0,61 + 4896: 1,61 + 4897: 1,60 + 4898: 1,59 + 4899: -2,60 + 4900: -2,59 + 4901: -2,61 + 4902: -2,62 + 4903: 3,62 + 4904: 3,61 + 4905: 3,60 + 4906: 3,59 + 4907: 4,60 + 4908: 4,61 + 4909: -3,61 + 4910: -3,60 + 4911: -4,61 + 4912: 5,61 + 4913: 6,61 + 4914: 6,60 + 4915: 6,59 + 4916: 6,58 + 4917: -5,61 + 4918: -5,60 + 4919: -6,60 + 4920: -6,59 + 4921: -6,58 + 4922: -5,58 + 4923: -5,59 + 4924: -5,62 + 4925: 6,62 + 4993: 7,58 + 4994: 7,59 + 4995: 7,60 + - node: + color: '#222222E6' + id: FullTileOverlayGreyscale + decals: + 0: -2,-2 + 1: -2,3 + 2: 3,3 + 3: 3,-2 + 4: 0,-3 + 5: 1,-3 + 6: 4,0 + 7: 4,1 + 8: 1,4 + 9: 0,4 + 10: -3,1 + 11: -3,0 + - node: + color: '#334E6DC8' + id: FullTileOverlayGreyscale + decals: + 492: -9,14 + 493: -9,15 + 494: -9,16 + 4630: 1,26 + 4805: 1,46 + 4806: 2,46 + 4807: 3,46 + 4808: 4,46 + 4809: 4,47 + 4810: 4,48 + 4811: 4,49 + 4812: 4,50 + 4813: 3,50 + 4814: 5,47 + 4934: 0,59 + 4935: 1,59 + 4936: -1,53 + 4937: -1,52 + 4938: 0,52 + 4939: 1,52 + 4940: 2,52 + 4941: 2,53 + 4951: 2,50 + 4952: 2,54 + 4953: -1,54 + 4954: -1,55 + 4955: -1,56 + 4956: -1,57 + 4957: 2,57 + 4958: 2,56 + 4959: 2,55 + 4960: -1,58 + 4961: -1,59 + 4962: 2,58 + 4963: 2,59 + 4964: -2,59 + 4965: 3,59 + 4966: -2,60 + 4967: -3,60 + 4968: 3,60 + 4969: 4,60 + 4970: -3,61 + 4971: -4,61 + 4972: 4,61 + 4973: 5,61 + 5050: 3,70 + 5051: 2,70 + 5052: 0,70 + 5053: -1,70 + 5054: -2,70 + 5055: 4,70 + 5056: -3,70 + 5057: -4,70 + 5058: -5,70 + 5059: -6,70 + 5060: -3,69 + 5061: -4,69 + 5062: -5,69 + 5063: 5,70 + 5064: 5,69 + 5065: 6,69 + 5066: 6,70 + 5067: 7,69 + 5068: 7,70 + 5069: 8,70 + 5076: -5,71 + 5077: 7,71 + 5078: 7,72 + 5079: -5,72 + 5099: 3,85 + 5100: 2,85 + 5101: 1,85 + 5102: 0,85 + 5103: -1,85 + 5106: -2,84 + 5107: -3,84 + 5108: -4,84 + 5109: -5,84 + 5110: -5,83 + 5111: -5,82 + 5112: -5,81 + 5113: -5,80 + 5114: -5,79 + 5115: -5,78 + 5116: -5,75 + 5117: -5,74 + 5118: -5,73 + 6502: 3,26 + 6508: 4,26 + 6510: 4,27 + 6511: 4,25 + 6513: 4,24 + - node: + color: '#50BCB193' + id: FullTileOverlayGreyscale + decals: + 3353: 29,17 + 3354: 29,18 + 3355: 29,19 + 3356: 29,20 + 3357: 29,21 + 3358: 29,22 + 3359: 29,23 + 3360: 30,23 + 3361: 32,23 + 3362: 32,23 + 3363: 33,23 + 3364: 34,23 + 3365: 29,24 + 3366: 29,25 + 3367: 29,26 + 3368: 29,27 + 3369: 29,28 + 3370: 30,28 + 3371: 31,28 + 3391: 40,28 + 3392: 38,27 + 3393: 38,26 + 3394: 38,25 + 3395: 41,28 + 3396: 42,28 + 3397: 43,28 + 3398: 43,27 + 3399: 43,29 + 3400: 43,30 + 3445: 43,31 + 3446: 43,32 + 3447: 44,32 + 3448: 45,32 + 3449: 43,33 + 3450: 43,34 + 3451: 43,35 + 3452: 42,35 + 3453: 41,35 + 3454: 43,36 + 3455: 43,37 + 3456: 43,38 + 3457: 42,38 + 3458: 41,38 + 3459: 43,39 + 3460: 44,39 + 3461: 45,39 + 3462: 29,29 + 3463: 29,30 + 3464: 29,31 + 3465: 28,31 + 3466: 27,31 + 3467: 26,31 + 3468: 29,32 + 3469: 29,33 + 3470: 29,34 + 3471: 29,35 + 3472: 30,35 + 3473: 31,35 + 3474: 29,36 + 3475: 29,37 + 3476: 29,38 + 3477: 30,38 + 3478: 31,38 + 3479: 29,39 + - node: + color: '#52B4E996' + id: FullTileOverlayGreyscale + decals: + 555: 9,-11 + 586: 5,-16 + 587: 9,-13 + 2777: 24,-11 + 5205: 18,-22 + 5468: 31,-30 + 5566: 3,-25 + 5567: 4,-25 + 5568: 5,-25 + 5569: 6,-25 + 5570: 7,-25 + 5571: 8,-25 + 5572: 9,-25 + 5573: 10,-25 + 5574: 11,-25 + 5575: 10,-28 + 5576: 4,-28 + 5577: 4,-22 + 5578: 10,-22 + 5778: 12,-25 + 5779: 13,-25 + 5780: 13,-24 + 5781: 13,-23 + 5782: 13,-22 + 5783: 13,-21 + 5784: 13,-20 + 5785: 13,-19 + 5786: 13,-18 + 5787: 13,-17 + 5788: 13,-16 + 5789: 13,-15 + 5790: 13,-14 + 5791: 13,-13 + 5792: 14,-25 + 5793: 15,-25 + 5794: 16,-25 + 5795: 17,-25 + 5796: 18,-25 + 5797: 19,-25 + 5798: 20,-25 + 5799: 21,-25 + 5800: 21,-26 + 5801: 21,-27 + 5802: 21,-28 + 5803: 20,-28 + 5804: 19,-28 + 5805: 18,-28 + 5806: 17,-28 + 5807: 16,-28 + 5808: 15,-28 + 5809: 14,-28 + 5810: 13,-28 + 5811: 13,-27 + 5812: 13,-26 + 5813: 18,-24 + 5814: 18,-23 + 5815: 13,-29 + 5816: 13,-30 + 5817: 13,-31 + 5822: 25,-24 + 5823: 31,-24 + 5853: 37,-24 + 5854: 37,-23 + 5855: 37,-22 + 5856: 37,-21 + 5857: 37,-20 + 5858: 37,-19 + 5859: 37,-18 + 5860: 37,-17 + 5861: 37,-16 + 5862: 37,-15 + 5863: 37,-14 + 5864: 38,-17 + 5865: 39,-17 + 5902: 31,-23 + 5939: 25,-23 + 5975: 25,-35 + 6075: 1,-25 + 6076: 2,-25 + 7219: 4,-38 + 7220: 7,-35 + 7237: 38,-37 + 7238: 45,-40 + 7239: 42,-39 + 7300: 4,-14 + - node: + color: '#9FED5815' + id: FullTileOverlayGreyscale + decals: + 3184: 40,19 + 3185: 41,19 + 3186: 42,19 + 3187: 43,19 + - node: + color: '#9FED5896' + id: FullTileOverlayGreyscale + decals: + 2879: 29,1 + 2880: 29,2 + 2881: 29,3 + 2983: 29,4 + 2984: 29,5 + 2985: 29,6 + 2986: 29,7 + 2987: 29,8 + 3011: 28,7 + 3013: 36,7 + 3014: 34,7 + 3015: 33,7 + 3016: 32,7 + 3017: 31,7 + 3018: 30,7 + 3107: 28,14 + 3108: 29,14 + 3112: 30,16 + 3113: 31,16 + 3118: 33,14 + 3119: 33,15 + 3120: 33,16 + 3121: 33,17 + 3122: 33,18 + 3123: 33,19 + 3124: 33,20 + 3125: 36,18 + 3126: 36,17 + 3127: 36,16 + 3128: 36,15 + 3129: 36,14 + 3139: 37,13 + 3140: 38,13 + 3141: 38,12 + 3142: 37,12 + 3143: 37,19 + 3144: 38,18 + 3145: 39,18 + 3182: 31,14 + 3183: 31,15 + 3310: 19,27 + 4996: 7,58 + 4997: 7,59 + 4998: 7,60 + 5362: 40,-27 + 5363: 40,-28 + 5364: 40,-29 + 5365: 40,-30 + 5366: 40,-31 + 5367: 40,-32 + 5368: 39,-32 + 5369: 38,-32 + 5370: 41,-32 + 5371: 42,-32 + 5372: 43,-32 + 5373: 44,-32 + 5374: 45,-32 + 5375: 45,-31 + 5376: 45,-30 + 5893: 40,-26 + - node: + color: '#A4610696' + id: FullTileOverlayGreyscale + decals: + 602: -8,-10 + 603: -8,-11 + 604: -7,-11 + 616: -12,-11 + 617: -13,-11 + 618: -14,-10 + 619: -11,-9 + 643: -4,-19 + 644: -5,-17 + 658: -11,-19 + 659: -10,-20 + 669: -14,-18 + 670: -13,-16 + 671: -15,-16 + 672: -16,-16 + 673: -17,-16 + 674: -17,-17 + 693: -14,-13 + 694: -15,-13 + 695: -15,-14 + 696: -12,-14 + 697: -11,-13 + 698: -11,-16 + 699: -11,-17 + 700: -9,-17 + 722: -16,-9 + 723: -17,-9 + 724: -16,-12 + 732: -20,-14 + 733: -21,-15 + 734: -18,-12 + 735: -19,-12 + 736: -20,-12 + 737: -21,-12 + 757: -24,-15 + 758: -25,-14 + 759: -23,-13 + 760: -24,-12 + 772: -22,-10 + 773: -23,-10 + 802: -20,-10 + 803: -19,-10 + 804: -19,-9 + 805: -22,-5 + 806: -20,-5 + 807: -20,-3 + 808: -20,-7 + 809: -20,-8 + 835: -29,-6 + 836: -28,-6 + 837: -27,-6 + 838: -26,-6 + 839: -26,-5 + 840: -27,-5 + 841: -28,-5 + 842: -29,-5 + 871: -30,0 + 872: -30,-1 + 873: -30,-2 + 886: -32,6 + 887: -31,9 + 958: -32,10 + 959: -26,9 + 960: -26,10 + 961: -27,10 + 962: -26,11 + 963: -28,11 + 964: -30,10 + 965: -31,11 + 966: -31,12 + 967: -27,13 + 1003: -34,1 + 1004: -34,2 + 1005: -34,3 + 1006: -34,4 + 1007: -34,5 + 1008: -34,7 + 1009: -34,9 + 1010: -34,10 + 1011: -34,11 + 1012: -34,12 + 1013: -34,13 + 1014: -33,6 + 1015: -32,6 + 1016: -35,7 + 1017: -33,10 + 1024: -36,7 + 1025: -37,6 + 1026: -37,7 + 1027: -37,8 + 1028: -37,9 + 1029: -37,10 + 1030: -38,11 + 1031: -38,10 + 1032: -38,9 + 1033: -38,8 + 1034: -38,7 + 1035: -38,6 + 1036: -39,5 + 1037: -39,6 + 1038: -40,6 + 1039: -41,6 + 1040: -42,6 + 1041: -43,6 + 1042: -44,6 + 1043: -44,7 + 1044: -43,7 + 1045: -43,8 + 1046: -43,9 + 1047: -43,10 + 1048: -43,11 + 1049: -42,11 + 1050: -42,10 + 1051: -41,10 + 1052: -41,11 + 1053: -40,11 + 1054: -40,10 + 1055: -39,10 + 1056: -39,11 + 1061: -39,7 + 1062: -40,7 + 1063: -41,7 + 1064: -42,7 + 1065: -42,8 + 1066: -42,9 + 1067: -41,9 + 1068: -40,9 + 1069: -39,9 + 1070: -39,8 + 1071: -40,8 + 1072: -41,8 + 1095: -38,-6 + 1096: -39,-6 + 1097: -40,-6 + 1098: -38,-5 + 1099: -39,-5 + 1100: -40,-5 + 1101: -41,-5 + 1102: -42,-5 + 1103: -43,-5 + 1104: -43,-4 + 1105: -43,-3 + 1106: -43,-2 + 1107: -42,-2 + 1108: -41,-2 + 1109: -40,-2 + 1110: -39,-2 + 1111: -38,-2 + 1112: -38,-3 + 1113: -38,-4 + 1114: -38,-1 + 1115: -38,0 + 1116: -39,0 + 1117: -40,0 + 1118: -41,0 + 1119: -42,0 + 1120: -43,0 + 1121: -43,1 + 1122: -43,2 + 1123: -43,3 + 1124: -42,3 + 1125: -41,3 + 1126: -40,3 + 1127: -39,3 + 1128: -38,3 + 1129: -38,2 + 1130: -38,1 + 1131: -40,4 + 1132: -39,4 + 1133: -38,4 + 1134: -37,4 + 2679: -34,8 + 2680: -34,6 + 7398: -42,-21 + 7399: -41,-20 + 7403: -47,-17 + 7412: -47,-21 + - node: + color: '#D381C996' + id: FullTileOverlayGreyscale + decals: + 1221: -34,0 + 1222: -34,-1 + 1223: -34,-2 + 1224: -34,-3 + 1225: -34,-4 + 1226: -34,-5 + 1227: -34,-6 + 1228: -34,-7 + 1229: -34,-8 + 1230: -34,-9 + 1231: -34,-10 + 1232: -34,-11 + 1233: -34,-12 + 1234: -34,-13 + 1235: -34,-14 + 1236: -34,-15 + 1277: -34,-16 + 1278: -34,-17 + 1286: -34,-18 + 1297: -38,-24 + 1298: -37,-24 + 1351: -47,-26 + 1383: -40,-33 + 1384: -39,-33 + 1386: -40,-30 + 1491: -30,-26 + 1492: -30,-27 + 1493: -30,-28 + 1494: -30,-29 + 1495: -30,-30 + 1496: -30,-31 + 1497: -30,-32 + 1498: -31,-32 + 1499: -32,-32 + 1500: -33,-32 + 1501: -34,-32 + 1502: -34,-33 + 1503: -34,-34 + 1504: -34,-35 + 1505: -29,-31 + 1506: -28,-31 + 1597: -34,-36 + 1598: -34,-37 + 1599: -34,-38 + 1600: -34,-39 + 1601: -34,-40 + 1602: -34,-41 + 1603: -34,-42 + 1604: -34,-43 + 1641: -27,-31 + 1642: -26,-31 + 1643: -26,-30 + 1644: -26,-29 + 1645: -26,-28 + 1646: -25,-28 + 1652: -28,-23 + 1653: -23,-26 + 1774: -24,-28 + 1775: -23,-28 + 1776: -23,-27 + 1777: -22,-28 + 1778: -22,-29 + 1779: -21,-28 + 1780: -20,-28 + 1781: -19,-28 + 1782: -18,-28 + 1783: -17,-28 + 1784: -17,-27 + 1785: -17,-26 + 1786: -16,-28 + 1787: -15,-28 + 1788: -14,-28 + 1789: -13,-28 + 1790: -12,-28 + 1791: -11,-28 + 1792: -10,-28 + 1793: -9,-28 + 1794: -11,-27 + 1795: -11,-26 + 1796: -11,-25 + 1797: -11,-24 + 1798: -11,-23 + 2078: -8,-28 + 2079: -7,-28 + 2080: -6,-28 + 2081: -5,-28 + 2082: -4,-28 + 2083: -3,-28 + 2084: -2,-28 + 2085: -8,-29 + 2086: -8,-30 + 2106: -42,-43 + 2107: -43,-43 + 2356: -24,-45 + 2361: -21,-47 + 2367: -21,-50 + 2460: -26,-55 + 2461: -26,-56 + 2462: -23,-57 + - node: + color: '#D4D4D428' + id: FullTileOverlayGreyscale + decals: + 1218: -40,-11 + 1219: -40,-12 + 1220: -40,-10 + 2117: -43,-41 + 2118: -43,-40 + 2119: -39,-42 + 2120: -38,-42 + 2121: -38,-42 + 2123: -45,-39 + 2124: -45,-40 + 2125: -45,-41 + 2144: -43,-31 + 2145: -43,-30 + 2146: -44,-30 + 2147: -44,-31 + 2148: -45,-31 + 2149: -45,-30 + 2150: -44,-32 + 2191: -37,-48 + 2192: -37,-47 + 2207: -34,-45 + 2208: -34,-46 + 2209: -34,-47 + 2210: -34,-48 + 2211: -34,-49 + 2212: -35,-49 + 2213: -35,-48 + 2215: -33,-48 + 2216: -32,-48 + 2219: -34,-50 + 2220: -34,-51 + 2221: -35,-51 + 2222: -35,-50 + 2223: -36,-50 + 2224: -37,-50 + 2225: -38,-50 + 2226: -39,-50 + 2227: -40,-50 + 2228: -40,-51 + 2229: -40,-52 + 2230: -40,-53 + 2265: -41,-51 + 2266: -42,-51 + 2267: -43,-51 + 2268: -43,-50 + 2269: -42,-50 + 3703: 37,-14 + 3704: 37,-13 + 3705: 37,-12 + 4326: -20,30 + 7339: -45,-42 + 7340: -40,-42 + 7341: -41,-42 + - node: + angle: 1.5707963267948966 rad + color: '#D4D4D428' + id: FullTileOverlayGreyscale + decals: + 2135: -45,-37 + 2136: -45,-36 + 2137: -45,-35 + - node: + color: '#DE3A3A96' + id: FullTileOverlayGreyscale + decals: + 495: -15,14 + 496: -15,15 + 497: -15,16 + 3890: 44,-14 + 3891: 45,-15 + 3892: 46,-15 + 3893: 47,-15 + 3917: -18,14 + 3920: -19,16 + 3921: -22,15 + 3952: -28,22 + 4015: -1,19 + 4016: 0,19 + 4026: -2,19 + 4027: -3,19 + 4028: -4,19 + 4029: -5,19 + 4030: -6,19 + 4031: -7,19 + 4032: -8,19 + 4033: -9,19 + 4034: -10,19 + 4035: -11,19 + 4036: -12,19 + 4037: -13,19 + 4038: -14,19 + 4039: -15,19 + 4040: -16,19 + 4041: -16,20 + 4085: -22,25 + 4086: -22,24 + 4087: -21,24 + 4088: -21,25 + 4089: -20,25 + 4090: -20,24 + 4091: -19,24 + 4092: -19,25 + 4132: -15,21 + 4133: -17,21 + 4134: -17,24 + 4135: -15,24 + 4136: -16,25 + 4137: -16,26 + 4177: -16,27 + 4178: -16,28 + 4179: -17,28 + 4180: -16,29 + 4181: -15,28 + 4182: -14,28 + 4183: -13,28 + 4184: -12,28 + 4185: -11,28 + 4186: -10,28 + 4187: -9,28 + 4188: -8,28 + 4189: -7,28 + 4190: -6,28 + 4191: -5,28 + 4192: -4,28 + 4193: -4,29 + 4194: -13,29 + 4195: -7,30 + 4196: -6,30 + 4197: -4,30 + 4227: -4,31 + 4228: -13,30 + 4229: -12,36 + 4230: -12,35 + 4231: -12,34 + 4232: -11,34 + 4233: -11,35 + 4234: -10,36 + 4235: -13,36 + 4236: -13,37 + 4265: -16,30 + 4266: -16,31 + 4267: -16,32 + 4268: -17,32 + 4269: -17,33 + 4270: -16,33 + 4271: -16,34 + 4272: -17,34 + 4273: -17,35 + 4274: -16,35 + 4322: -20,35 + 4323: -20,34 + 4324: -20,33 + 4325: -20,32 + 4333: -10,37 + 4334: -10,38 + 4335: -10,39 + 4336: -10,40 + 4375: -32,26 + 4376: -31,26 + 4377: -30,26 + 4378: -30,25 + 4379: -32,25 + 4380: -31,25 + 4419: -42,22 + 4420: -41,22 + 4421: -40,22 + 4422: -40,21 + 4423: -40,20 + 4424: -41,20 + 4425: -42,20 + 4426: -43,20 + 4427: -39,20 + 4428: -38,20 + 4429: -37,20 + 4430: -38,19 + 4431: -37,21 + 4432: -37,22 + 4433: -37,23 + 4434: -37,24 + 4435: -37,25 + 4436: -37,26 + 4437: -37,27 + 4471: -37,28 + 4472: -37,29 + 4473: -38,29 + 4474: -39,29 + 4475: -36,29 + 4476: -35,29 + 4483: -24,37 + 4484: -24,36 + 4485: -24,35 + 4486: -24,34 + 4487: -24,33 + 4488: -24,32 + 4489: -24,31 + 4490: -24,30 + 4491: -24,29 + 4492: -25,29 + 4493: -26,29 + 4494: -27,29 + 4495: -28,29 + 4496: -29,29 + 4497: -30,29 + 4498: -31,29 + 4499: -32,29 + 4500: -33,29 + 4501: -34,29 + 4502: -25,35 + 4503: -26,35 + 4504: -24,28 + 4505: -24,27 + 4506: -24,26 + 4507: -23,28 + 4508: -22,28 + 4509: -21,28 + 4510: -20,28 + 4511: -19,28 + 4512: -18,28 + 4566: -3,35 + 4567: -5,35 + 4568: -5,32 + 4569: -3,32 + 4570: -2,37 + 4571: -2,38 + 4597: -1,37 + 4598: -1,38 + 4599: 0,38 + 4600: 0,37 + 4990: -6,58 + 4991: -6,59 + 4992: -6,60 + - node: + color: '#EFB34195' + id: FullTileOverlayGreyscale + decals: + 6297: 8,-59 + 6298: 8,-60 + 6299: 8,-61 + 6300: 6,-59 + 6301: 6,-60 + 6302: 6,-61 + - node: + color: '#EFB34196' + id: FullTileOverlayGreyscale + decals: + 2529: -11,-53 + 2558: -5,-49 + 4926: -2,62 + 4927: -1,62 + 4928: 0,62 + 4929: 1,62 + 4930: 2,62 + 4931: 3,62 + 6221: 6,-47 + 6238: 7,-48 + 6239: 7,-49 + 6240: 7,-50 + 6241: 7,-51 + 6242: 7,-52 + 6243: 8,-48 + 6244: 6,-51 + 6245: 5,-51 + 6246: 7,-53 + 6247: 8,-53 + 6248: 7,-54 + 6249: 7,-55 + 6250: 7,-56 + 6251: 7,-57 + 6252: 6,-56 + 6253: 9,-48 + 6254: 9,-53 + 6255: -4,-53 + 6256: -1,-52 + 6527: 14,-67 + 6528: 13,-67 + 6529: 12,-67 + 6530: 11,-67 + 6531: 10,-67 + 6551: 6,-68 + 6552: 6,-67 + 6553: 6,-66 + 6554: 6,-65 + 6555: 6,-64 + 6556: 5,-64 + 6557: 4,-64 + 6558: 3,-64 + 6559: 2,-64 + 6560: 1,-64 + 6561: 0,-64 + 6562: -1,-64 + 6563: -2,-64 + 6564: -3,-64 + 6565: -4,-64 + 6566: -5,-64 + 6567: -6,-64 + 6568: -6,-65 + 6569: -6,-66 + 6570: -6,-67 + 6571: -6,-68 + 6572: -6,-72 + 6573: -6,-73 + 6574: 6,-72 + 6575: 6,-73 + 6857: 20,-52 + 6858: 20,-51 + 6859: 21,-51 + 6860: 21,-52 + 6861: 29,-53 + 6862: 29,-52 + 6863: 30,-52 + 6864: 30,-53 + 6865: 25,-63 + 6866: 26,-63 + 6867: 27,-63 + 6868: 28,-63 + 6869: 29,-63 + 7096: 10,-48 + - node: + color: '#FF924493' + id: FullTileOverlayGreyscale + decals: + 5339: 30,-20 + - node: + color: '#FFFFFFFF' + id: FullTileOverlayGreyscale + decals: + 1270: -34,-16 + 1271: -34,-17 + 1284: -34,-18 + 1285: -33,-18 + 1440: -30,-27 + 1441: -30,-26 + 1442: -30,-28 + 1443: -30,-29 + 1444: -30,-30 + 1445: -30,-31 + 1446: -30,-32 + 1447: -31,-32 + 1448: -32,-32 + 1449: -33,-32 + 1450: -34,-32 + 1451: -35,-32 + 1452: -36,-32 + 1453: -36,-31 + 1454: -35,-31 + 1455: -34,-31 + 1456: -33,-31 + 1457: -32,-31 + 1458: -31,-31 + 1459: -36,-30 + 1460: -36,-29 + 1461: -36,-28 + 1462: -34,-33 + 1463: -34,-34 + 1464: -34,-35 + 1465: -29,-32 + 1466: -29,-31 + 1467: -28,-31 + 1570: -34,-36 + 1571: -34,-37 + 1572: -34,-38 + 1573: -34,-39 + 1574: -34,-40 + 1575: -34,-41 + 1576: -34,-42 + 1577: -34,-43 + 1578: -35,-43 + 1579: -35,-44 + 1580: -34,-44 + 1623: -27,-31 + 1624: -26,-31 + 1625: -26,-30 + 1626: -26,-29 + 1627: -26,-28 + 1628: -25,-28 + 1650: -28,-23 + 1651: -23,-26 + 1715: -23,-28 + 1716: -23,-27 + 1717: -22,-28 + 1718: -21,-28 + 1719: -20,-28 + 1720: -19,-28 + 1721: -18,-28 + 1722: -17,-28 + 1723: -17,-27 + 1724: -17,-26 + 1725: -22,-29 + 1726: -16,-28 + 1727: -15,-28 + 1728: -14,-28 + 1729: -13,-28 + 1730: -12,-28 + 1731: -11,-28 + 1732: -11,-27 + 1733: -11,-26 + 1734: -11,-25 + 1735: -11,-24 + 1736: -11,-23 + 1737: -11,-22 + 1738: -10,-28 + 1739: -9,-28 + 1744: -24,-28 + 1799: -22,-30 + 1800: -22,-31 + 1801: -22,-32 + 1802: -22,-33 + 1803: -22,-34 + 1804: -21,-33 + 1805: -21,-34 + 1867: -8,-28 + 1868: -8,-29 + 1869: -8,-30 + 1870: -8,-31 + 1871: -8,-32 + 1872: -8,-33 + 1873: -8,-34 + 1874: -8,-35 + 1884: -8,-36 + 1885: -8,-37 + 1886: -9,-37 + 1887: -9,-36 + 1888: -10,-36 + 1889: -10,-37 + 1890: -11,-37 + 1891: -11,-36 + 1892: -12,-36 + 1893: -12,-37 + 1894: -13,-37 + 1895: -13,-36 + 1896: -13,-38 + 1897: -12,-38 + 1898: -12,-39 + 1899: -13,-39 + 1956: -13,-50 + 1957: -12,-50 + 1958: -12,-49 + 1959: -13,-49 + 1960: -13,-48 + 1961: -12,-48 + 1962: -12,-47 + 1963: -13,-47 + 1964: -13,-46 + 1965: -12,-46 + 1966: -12,-45 + 1967: -13,-45 + 1968: -13,-44 + 1969: -12,-44 + 1970: -12,-43 + 1971: -13,-43 + 1972: -13,-42 + 1973: -12,-42 + 1974: -12,-41 + 1975: -13,-41 + 1976: -13,-40 + 1977: -12,-40 + 2062: -7,-28 + 2063: -6,-28 + 2064: -5,-28 + 2065: -4,-28 + 2066: -3,-28 + 2067: -2,-28 + 5154: 13,-13 + 5155: 13,-14 + 5156: 13,-15 + 5157: 13,-16 + 5158: 13,-17 + 5159: 15,-15 + 5160: 16,-15 + 5161: 17,-15 + 5162: 17,-16 + 5163: 16,-16 + 5164: 15,-16 + 5193: 17,-20 + 5194: 18,-20 + 5195: 19,-20 + 5196: 19,-21 + 5197: 18,-21 + 5198: 17,-21 + 5206: 25,-22 + 5207: 26,-22 + 5208: 26,-21 + 5209: 25,-21 + 5210: 24,-21 + 5211: 23,-21 + 5212: 22,-21 + 5213: 22,-20 + 5214: 23,-20 + 5215: 24,-20 + 5216: 25,-20 + 5217: 26,-20 + 5218: 26,-19 + 5219: 25,-19 + 5220: 24,-19 + 5221: 23,-19 + 5222: 22,-19 + 5223: 22,-18 + 5224: 23,-18 + 5225: 24,-18 + 5226: 25,-18 + 5227: 26,-18 + 5257: 28,-16 + 5258: 28,-17 + 5259: 28,-18 + 5260: 28,-19 + 5261: 28,-20 + 5262: 28,-21 + 5263: 30,-22 + 5264: 31,-22 + 5265: 31,-22 + 5266: 32,-22 + 5267: 33,-22 + 5268: 34,-21 + 5269: 33,-21 + 5270: 32,-21 + 5271: 31,-21 + 5272: 30,-21 + 5273: 29,-21 + 5274: 29,-20 + 5275: 30,-20 + 5276: 31,-20 + 5277: 32,-20 + 5278: 33,-20 + 5279: 34,-20 + 5280: 34,-19 + 5281: 33,-19 + 5282: 32,-19 + 5283: 31,-19 + 5284: 30,-19 + 5285: 29,-19 + 5286: 29,-18 + 5287: 30,-18 + 5288: 31,-18 + 5289: 32,-18 + 5290: 33,-18 + 5291: 34,-18 + 5292: 34,-17 + 5293: 33,-17 + 5294: 32,-17 + 5295: 31,-17 + 5296: 30,-17 + 5297: 29,-17 + 5298: 29,-16 + 5299: 30,-16 + 5300: 31,-16 + 5301: 32,-16 + 5302: 33,-16 + 5303: 34,-16 + 5311: 34,-22 + 5315: 29,-22 + 5316: 28,-22 + 5432: 26,-27 + 5433: 27,-27 + 5434: 26,-28 + 5435: 27,-28 + 5436: 27,-29 + 5437: 27,-30 + 5438: 26,-30 + 5439: 26,-29 + 5440: 26,-31 + 5441: 26,-32 + 5442: 27,-32 + 5443: 27,-31 + 5444: 25,-29 + 5445: 31,-31 + 5446: 31,-30 + 5447: 31,-29 + 5448: 32,-29 + 5482: 5,-29 + 5483: 6,-29 + 5484: 6,-30 + 5485: 5,-30 + 5486: 5,-31 + 5487: 6,-31 + 5488: 6,-32 + 5489: 5,-32 + 5490: 7,-32 + 5491: 7,-31 + 5492: 8,-31 + 5493: 8,-32 + 5494: 9,-32 + 5495: 9,-31 + 5496: 10,-31 + 5497: 10,-32 + 5498: 11,-32 + 5499: 11,-31 + 5516: 8,-21 + 5517: 9,-21 + 5518: 8,-20 + 5519: 8,-19 + 5520: 9,-19 + 5521: 10,-20 + 5522: 10,-19 + 5523: 11,-19 + 5528: 9,-20 + 5531: 3,-26 + 5532: 3,-25 + 5533: 3,-24 + 5534: 4,-24 + 5535: 4,-25 + 5536: 4,-26 + 5537: 5,-25 + 5538: 6,-25 + 5539: 7,-25 + 5540: 8,-25 + 5541: 9,-25 + 5542: 10,-25 + 5543: 10,-26 + 5544: 10,-24 + 5545: 10,-23 + 5546: 9,-23 + 5547: 8,-23 + 5548: 7,-23 + 5549: 6,-23 + 5550: 5,-23 + 5551: 4,-23 + 5552: 4,-22 + 5553: 10,-22 + 5554: 10,-27 + 5555: 10,-28 + 5556: 9,-27 + 5557: 8,-27 + 5558: 7,-27 + 5559: 6,-27 + 5560: 5,-27 + 5561: 4,-27 + 5562: 4,-28 + 5563: 11,-26 + 5564: 11,-25 + 5565: 11,-24 + 5625: 13,-18 + 5626: 13,-19 + 5627: 13,-20 + 5628: 13,-21 + 5629: 13,-22 + 5630: 13,-23 + 5631: 13,-24 + 5632: 13,-25 + 5633: 13,-26 + 5634: 13,-27 + 5635: 13,-28 + 5636: 13,-29 + 5637: 13,-30 + 5638: 13,-31 + 5639: 12,-31 + 5640: 12,-25 + 5641: 14,-20 + 5642: 14,-21 + 5643: 14,-25 + 5644: 15,-25 + 5645: 16,-25 + 5646: 17,-25 + 5647: 18,-25 + 5648: 19,-25 + 5649: 20,-25 + 5650: 14,-28 + 5651: 15,-28 + 5652: 16,-28 + 5653: 18,-28 + 5654: 17,-28 + 5655: 19,-28 + 5656: 20,-28 + 5657: 18,-23 + 5658: 18,-24 + 5659: 21,-28 + 5660: 21,-27 + 5661: 21,-26 + 5662: 21,-25 + 5663: 22,-28 + 5664: 22,-27 + 5665: 22,-26 + 5666: 34,-25 + 5667: 35,-25 + 5668: 25,-24 + 5671: 31,-24 + 5672: 36,-25 + 5673: 37,-25 + 5674: 38,-25 + 5675: 39,-25 + 5676: 40,-25 + 5677: 40,-26 + 5678: 41,-25 + 5679: 42,-25 + 5680: 37,-24 + 5681: 37,-23 + 5682: 37,-22 + 5683: 37,-21 + 5684: 37,-20 + 5685: 37,-19 + 5686: 37,-18 + 5687: 37,-17 + 5688: 37,-16 + 5689: 37,-15 + 5690: 37,-14 + 5691: 38,-17 + 5692: 39,-17 + 5818: 12,-32 + 5819: 13,-32 + 5826: 22,-25 + 5827: 23,-25 + 5828: 24,-25 + 5829: 25,-25 + 5830: 26,-25 + 5831: 27,-25 + 5832: 28,-25 + 5833: 29,-25 + 5834: 30,-25 + 5835: 31,-25 + 5836: 32,-25 + 5837: 33,-25 + 5901: 31,-23 + 5938: 25,-23 + - node: + color: '#222222E5' + id: HalfTileOverlayGreyscale + decals: + 284: -7,-8 + 285: -6,-8 + 286: -5,-9 + 287: -3,-10 + 288: -2,-10 + 289: 3,-10 + 290: 4,-10 + 291: 6,-9 + 292: 7,-8 + 293: 8,-8 + 3779: 34,-11 + 3780: 35,-11 + 3781: 36,-11 + 3782: 37,-11 + 3783: 38,-11 + 3784: 39,-11 + 3785: 40,-11 + 3786: 41,-11 + 3835: 42,-5 + 3836: 41,-5 + 3837: 40,-5 + 3838: 39,-5 + 3839: 38,-5 + 3840: 37,-5 + 3841: 36,-5 + 3842: 33,-5 + - node: + color: '#334E6DC8' + id: HalfTileOverlayGreyscale + decals: + 5104: 3,84 + 5105: -1,84 + 6500: 2,26 + 6516: 5,27 + 6517: 6,27 + 6518: 7,27 + 6519: 8,27 + - node: + color: '#50BCB193' + id: HalfTileOverlayGreyscale + decals: + 3382: 39,27 + 3383: 37,27 + 3384: 36,27 + 3385: 35,27 + 3386: 34,27 + 3387: 33,27 + 3388: 32,27 + - node: + color: '#52B4E996' + id: HalfTileOverlayGreyscale + decals: + 5466: 31,-31 + 5530: 9,-19 + 5586: 10,-23 + 5587: 9,-23 + 5588: 8,-23 + 5589: 7,-23 + 5590: 5,-23 + 5591: 4,-23 + 5592: 6,-23 + 5840: 22,-25 + 5841: 23,-25 + 5842: 24,-25 + 5843: 25,-25 + 5844: 28,-25 + 5845: 29,-25 + 5846: 30,-25 + 5847: 31,-25 + 5848: 32,-25 + 5849: 33,-25 + 5850: 34,-25 + 5851: 35,-25 + 5852: 36,-25 + 5866: 38,-25 + 5867: 39,-25 + 5868: 40,-25 + 5869: 41,-25 + 5870: 42,-25 + 5873: 37,-25 + 7301: 5,-12 + - node: + color: '#9FED5896' + id: HalfTileOverlayGreyscale + decals: + 2989: 27,6 + 2990: 26,6 + 2991: 25,6 + 2992: 24,6 + 2993: 23,6 + 2994: 22,6 + 2995: 21,6 + 2996: 20,6 + 2997: 19,6 + 2998: 18,6 + 2999: 17,6 + 3130: 35,18 + 3131: 34,18 + - node: + color: '#A4610696' + id: HalfTileOverlayGreyscale + decals: + 7396: -43,-18 + - node: + color: '#D381C996' + id: HalfTileOverlayGreyscale + decals: + 98: -4,0 + 99: -5,0 + 100: -6,0 + 101: -7,0 + 102: -8,0 + 103: -9,0 + 104: -10,0 + 105: -11,0 + 106: -12,0 + 482: -13,0 + 483: -14,0 + 484: -15,0 + 485: -16,0 + 486: -17,0 + 487: -18,0 + 488: -19,0 + 546: 8,13 + 874: -20,0 + 875: -21,0 + 876: -22,0 + 877: -23,0 + 878: -24,0 + 879: -25,0 + 880: -26,0 + 881: -27,0 + 882: -28,0 + 883: -29,0 + 884: -31,0 + 885: -32,0 + 1237: -33,0 + 1605: -34,-44 + 1606: -35,-44 + 2092: -36,-44 + 2093: -37,-44 + 2094: -38,-44 + 2095: -39,-44 + 2096: -40,-44 + 2097: -41,-44 + 2098: -42,-44 + 2099: -43,-44 + - node: + color: '#D4D4D428' + id: HalfTileOverlayGreyscale + decals: + 459: -12,2 + 460: -14,2 + 461: -18,2 + 462: -19,2 + 2151: -43,-32 + 2152: -45,-32 + 2197: -37,-49 + 2608: -20,2 + 2609: -21,2 + 2610: -22,2 + 2611: -23,2 + 2612: -24,2 + 2613: -25,2 + 2614: -26,2 + 2615: -27,2 + 2616: -28,2 + 2617: -29,2 + 2618: -30,2 + 2619: -31,2 + 2620: -32,2 + 2711: 13,2 + 2712: 15,2 + 2713: 16,2 + 2714: 17,2 + 3497: 27,2 + 3498: 26,2 + 3499: 25,2 + 3500: 24,2 + 3501: 23,2 + 3502: 22,2 + 3503: 21,2 + 3504: 20,2 + 3505: 19,2 + 3506: 18,2 + 3516: 31,2 + 3517: 32,2 + 3518: 33,2 + 3519: 34,2 + 3520: 35,2 + 3530: 35,8 + 3531: 34,8 + 3532: 33,8 + 3533: 32,8 + 3534: 31,8 + 3540: 17,10 + 3541: 18,10 + 3542: 19,10 + 3587: 27,33 + 3603: 31,30 + 3604: 32,30 + 3605: 33,30 + 3606: 34,30 + 3607: 35,30 + 3608: 36,30 + 3609: 37,30 + 3610: 38,30 + 3611: 39,30 + 3726: 34,-6 + 3727: 35,-6 + 3728: 36,-6 + 3729: 37,-6 + 3730: 38,-6 + 3731: 39,-6 + 3732: 40,-6 + 3733: 41,-6 + 4042: -3,20 + 4043: -4,20 + 4044: -5,20 + 4045: -6,20 + 4046: -7,20 + 4047: -8,20 + 4048: -9,20 + 4049: -10,20 + 4050: -11,20 + 4051: -12,20 + 4052: -13,20 + 4053: -14,20 + 4175: -25,25 + 4176: -26,25 + 4217: -6,29 + 4218: -7,29 + 4219: -8,29 + 4220: -9,29 + 4221: -10,29 + 4222: -11,29 + 4279: -17,36 + 4280: -16,36 + 4316: -20,36 + 4392: -39,37 + 4393: -40,37 + 4394: -41,37 + 4395: -42,37 + 4479: -38,30 + 4480: -37,30 + 4481: -36,30 + 4513: -34,30 + 4514: -33,30 + 4515: -32,30 + 4516: -31,30 + 4517: -30,30 + 4518: -29,30 + 4519: -28,30 + 4520: -27,30 + 4521: -26,30 + 4536: -22,29 + 4537: -21,29 + 4538: -20,29 + 4539: -19,29 + 4540: -18,29 + 6174: 8,-40 + 6175: 7,-40 + 6176: 6,-40 + 6177: 5,-40 + 6178: 4,-40 + 6386: -1,-56 + 6387: -2,-56 + 6388: -3,-56 + 6389: -4,-56 + 6390: -5,-56 + 6391: -6,-56 + 6392: -7,-56 + 6934: 29,-64 + 6935: 28,-64 + 6936: 27,-64 + 6937: 26,-64 + 6938: 25,-64 + 6945: 30,-54 + 6946: 29,-54 + 6971: 23,-50 + 6972: 24,-50 + 6973: 25,-50 + 6974: 26,-50 + 6975: 27,-50 + 6976: 28,-50 + 6977: 29,-50 + 6978: 30,-50 + 6979: 31,-50 + 7187: 11,-41 + 7188: 12,-41 + 7189: 14,-41 + 7190: 13,-41 + 7191: 15,-41 + 7192: 16,-41 + 7193: 17,-41 + 7194: 18,-41 + 7195: 19,-41 + 7196: 20,-41 + 7197: 21,-41 + 7198: 22,-41 + 7199: 23,-41 + 7200: 24,-41 + 7201: 25,-41 + 7202: 26,-41 + 7203: 27,-41 + 7204: 28,-41 + 7205: 29,-41 + 7209: 31,-42 + - node: + color: '#D4D4D496' + id: HalfTileOverlayGreyscale + decals: + 5403: 36,-29 + - node: + color: '#DE3A3A96' + id: HalfTileOverlayGreyscale + decals: + 2763: 29,-3 + 2764: 28,-3 + 3907: 45,-17 + 4131: -16,23 + 4245: -8,34 + 4247: -10,35 + 4573: -4,34 + 4574: -4,40 + 4575: -5,40 + 4576: -6,40 + 5515: 5,-19 + 6229: 3,-49 + - node: + color: '#EFB34196' + id: HalfTileOverlayGreyscale + decals: + 6154: 1,-42 + 6155: 2,-42 + 6164: 9,-42 + 6165: 8,-42 + 6166: 7,-42 + 6167: 4,-42 + 6215: 0,-47 + 6216: 1,-47 + 6217: 2,-47 + 6218: 3,-47 + 6219: 4,-47 + 6220: 5,-47 + - node: + color: '#FFFFFFFF' + id: HalfTileOverlayGreyscale + decals: + 71: 5,0 + 72: 6,0 + 73: 7,0 + 74: 8,0 + 75: 9,0 + 76: 10,0 + 77: 11,0 + 78: 12,0 + 79: 13,0 + 833: -28,-6 + 834: -27,-6 + 1283: -33,-24 + 1484: -32,-33 + 1485: -31,-33 + 1486: -30,-33 + 1487: -29,-33 + 1633: -26,-32 + 1634: -27,-32 + 1647: -24,-29 + 1764: -20,-29 + 1765: -19,-29 + 1766: -18,-29 + 1767: -17,-29 + 1768: -16,-29 + 1769: -15,-29 + 1770: -14,-29 + 1771: -13,-29 + 1772: -12,-29 + 1773: -11,-29 + 2069: -10,-29 + 2070: -6,-29 + 2075: -4,-29 + 2076: -3,-29 + 2832: 14,0 + 2833: 15,0 + 2834: 16,0 + 2835: 17,0 + 2836: 18,0 + 2837: 19,0 + 2838: 20,0 + 2839: 21,0 + 2840: 22,0 + 2841: 23,0 + 2842: 24,0 + 2843: 25,0 + 2844: 26,0 + 2845: 27,0 + 2846: 28,0 + 2847: 29,0 + 2848: 30,0 + 2849: 31,0 + 2850: 32,0 + 2851: 33,0 + 2968: 23,9 + 2969: 24,9 + 2970: 25,9 + 5170: 15,-17 + 5171: 16,-17 + 5172: 17,-17 + 5173: 19,-16 + 5709: 15,-29 + 5710: 16,-29 + 5711: 17,-29 + 5712: 18,-29 + 5713: 19,-29 + 5714: 20,-29 + 5715: 21,-29 + 5716: 22,-29 + 5720: 24,-26 + 5721: 25,-26 + 5724: 28,-26 + 5725: 29,-26 + 5726: 30,-26 + 5727: 31,-26 + 5728: 32,-26 + 5729: 33,-26 + 5730: 34,-26 + 5731: 35,-26 + 5732: 36,-26 + 5733: 37,-26 + 5874: 38,-26 + - node: + color: '#222222E5' + id: HalfTileOverlayGreyscale180 + decals: + 235: -3,11 + 236: -2,11 + 237: 3,11 + 238: 4,11 + 239: -5,10 + 240: 6,10 + 241: -6,9 + 242: -7,9 + 269: 3,-4 + 270: -2,-4 + 304: 8,9 + 305: 7,9 + 3787: 41,-6 + 3788: 40,-6 + 3789: 39,-6 + 3790: 38,-6 + 3791: 37,-6 + 3792: 36,-6 + 3793: 35,-6 + 3794: 34,-6 + 3818: 33,-12 + 3819: 34,-12 + 3820: 35,-12 + 3823: 39,-12 + 3824: 40,-12 + 3825: 41,-12 + 3826: 42,-12 + - node: + color: '#334E6DC8' + id: HalfTileOverlayGreyscale180 + decals: + 5070: 6,71 + 5071: 8,71 + 5072: 9,71 + 5073: -4,71 + 5074: -6,71 + 5075: -7,71 + 6501: 2,26 + 6520: 5,24 + 6521: 6,24 + 6522: 7,24 + 6523: 8,24 + - node: + color: '#50BCB193' + id: HalfTileOverlayGreyscale180 + decals: + 3374: 32,29 + 3375: 33,29 + 3376: 34,29 + 3377: 35,29 + 3378: 36,29 + 3379: 37,29 + 3380: 38,29 + 3381: 39,29 + - node: + color: '#52B4E996' + id: HalfTileOverlayGreyscale180 + decals: + 5467: 31,-29 + 5529: 9,-20 + 5579: 10,-27 + 5580: 9,-27 + 5581: 8,-27 + 5582: 7,-27 + 5583: 6,-27 + 5584: 5,-27 + 5585: 4,-27 + 5871: 42,-25 + 5872: 41,-25 + 5942: 13,-36 + 5974: 24,-37 + 7221: 8,-38 + 7246: 43,-38 + 7247: 42,-38 + - node: + color: '#9FED5896' + id: HalfTileOverlayGreyscale180 + decals: + 62: 5,1 + 63: 6,1 + 64: 7,1 + 65: 8,1 + 66: 9,1 + 67: 10,1 + 68: 11,1 + 69: 12,1 + 70: 13,1 + 2864: 14,1 + 2865: 15,1 + 2866: 16,1 + 2867: 17,1 + 2868: 18,1 + 2869: 19,1 + 2870: 20,1 + 2871: 21,1 + 2872: 22,1 + 2873: 23,1 + 2874: 24,1 + 2875: 25,1 + 2876: 26,1 + 2877: 27,1 + 2878: 28,1 + 3000: 17,7 + 3001: 18,7 + 3002: 19,7 + 3003: 20,7 + 3004: 21,7 + 3005: 22,7 + 3006: 23,7 + 3007: 24,7 + 3008: 25,7 + 3009: 26,7 + 3010: 27,7 + 3132: 35,14 + 3133: 34,14 + 5877: 22,-25 + 5878: 23,-25 + 5879: 24,-25 + 5880: 25,-25 + 5881: 28,-25 + 5882: 29,-25 + 5883: 30,-25 + 5884: 31,-25 + 5885: 32,-25 + 5886: 33,-25 + 5887: 34,-25 + 5888: 35,-25 + 5889: 36,-25 + 5890: 37,-25 + 5891: 38,-25 + 5892: 39,-25 + 5894: 40,-25 + - node: + color: '#A4610696' + id: HalfTileOverlayGreyscale180 + decals: + 107: -4,1 + 108: -5,1 + 109: -6,1 + 110: -7,1 + 111: -8,1 + 112: -9,1 + 113: -10,1 + 114: -11,1 + 115: -12,1 + 475: -13,1 + 476: -14,1 + 477: -15,1 + 478: -16,1 + 479: -17,1 + 480: -18,1 + 481: -19,1 + 858: -20,1 + 859: -21,1 + 860: -22,1 + 861: -23,1 + 862: -24,1 + 863: -25,1 + 864: -26,1 + 865: -27,1 + 866: -28,1 + 867: -29,1 + 868: -30,1 + 869: -31,1 + 870: -32,1 + 892: -30,4 + 893: -29,4 + 1178: -33,1 + 1188: -43,-13 + 1189: -44,-13 + 1190: -45,-13 + - node: + color: '#D381C996' + id: HalfTileOverlayGreyscale180 + decals: + 545: 9,11 + 1607: -35,-43 + 2100: -37,-43 + 2101: -36,-43 + 2102: -38,-43 + 2103: -39,-43 + 2104: -40,-43 + 2105: -41,-43 + 2108: -43,-42 + 2423: -21,-53 + 2465: -27,-57 + - node: + color: '#D4D4D428' + id: HalfTileOverlayGreyscale180 + decals: + 463: -12,-1 + 464: -14,-1 + 465: -18,-1 + 466: -19,-1 + 2126: -43,-39 + 2198: -37,-46 + 2214: -35,-47 + 2217: -33,-47 + 2218: -32,-47 + 2604: -23,-1 + 2605: -24,-1 + 2606: -25,-1 + 2607: -26,-1 + 2634: -36,6 + 2663: -32,-1 + 2666: -27,-1 + 2667: -28,-1 + 2707: 13,-1 + 2708: 15,-1 + 2709: 16,-1 + 2710: 17,-1 + 3480: 18,-1 + 3481: 19,-1 + 3482: 20,-1 + 3483: 21,-1 + 3484: 22,-1 + 3485: 23,-1 + 3486: 24,-1 + 3487: 25,-1 + 3488: 26,-1 + 3489: 27,-1 + 3490: 28,-1 + 3491: 29,-1 + 3492: 30,-1 + 3493: 31,-1 + 3494: 32,-1 + 3495: 33,-1 + 3526: 32,6 + 3527: 33,6 + 3528: 34,6 + 3529: 35,6 + 3586: 27,29 + 3649: 41,27 + 3654: 36,26 + 3655: 35,26 + 3656: 34,26 + 3657: 33,26 + 3658: 32,26 + 3659: 31,26 + 3706: 37,-11 + 3707: 38,-11 + 3708: 39,-11 + 3709: 40,-11 + 3710: 41,-11 + 3711: 36,-11 + 3712: 35,-11 + 3713: 34,-11 + 4058: -16,18 + 4059: -15,18 + 4060: -14,18 + 4061: -13,18 + 4062: -12,18 + 4063: -11,18 + 4064: -10,18 + 4065: -9,18 + 4066: -8,18 + 4067: -7,18 + 4068: -6,18 + 4069: -5,18 + 4070: -4,18 + 4071: -3,18 + 4173: -25,23 + 4174: -26,23 + 4200: -14,27 + 4201: -13,27 + 4202: -12,27 + 4203: -11,27 + 4204: -10,27 + 4205: -9,27 + 4206: -8,27 + 4207: -7,27 + 4208: -6,27 + 4209: -5,27 + 4210: -4,27 + 4285: -17,31 + 4317: -20,31 + 4447: -39,19 + 4448: -40,19 + 4449: -41,19 + 4450: -42,19 + 4451: -43,19 + 4541: -18,27 + 4542: -19,27 + 4543: -20,27 + 4544: -21,27 + 4545: -22,27 + 4549: -26,28 + 4550: -27,28 + 4551: -28,28 + 4552: -29,28 + 4553: -30,28 + 4554: -31,28 + 4555: -32,28 + 4556: -33,28 + 4557: -34,28 + 6136: 0,-43 + 6137: 1,-43 + 6138: 2,-43 + 6179: 4,-43 + 6180: 7,-43 + 6181: 8,-43 + 6376: -7,-61 + 6377: -6,-61 + 6378: -5,-61 + 6379: -4,-61 + 6380: -3,-61 + 6381: -2,-61 + 6382: -1,-61 + 6927: 25,-62 + 6928: 26,-62 + 6929: 27,-62 + 6930: 28,-62 + 6931: 29,-62 + 6943: 29,-51 + 6944: 30,-51 + 6955: 16,-49 + 6956: 17,-49 + 6957: 18,-49 + 6958: 19,-49 + 6959: 20,-49 + 6960: 21,-49 + 6961: 22,-49 + 6962: 23,-49 + 6963: 24,-49 + 6964: 25,-49 + 6965: 26,-49 + 6966: 27,-49 + 6967: 28,-49 + 6968: 29,-49 + 6969: 30,-49 + 6970: 31,-49 + 6996: 31,-65 + 6997: 30,-65 + 6998: 29,-65 + 6999: 28,-65 + 7000: 27,-65 + 7001: 26,-65 + 7002: 25,-65 + 7003: 24,-65 + 7004: 23,-65 + - node: + color: '#DE3A3A96' + id: HalfTileOverlayGreyscale180 + decals: + 2761: 29,-5 + 2762: 28,-5 + 3900: 44,-19 + 3901: 45,-19 + 4130: -16,22 + 4250: -10,31 + 4251: -11,31 + 4252: -12,31 + 4253: -8,32 + 4572: -4,33 + 4580: -6,36 + 4581: -5,36 + 4582: -4,36 + 5514: 5,-20 + 6227: 3,-51 + - node: + color: '#EFB34196' + id: HalfTileOverlayGreyscale180 + decals: + 6156: 2,-41 + 6157: 8,-41 + 6158: 7,-41 + 6159: 6,-41 + 6160: 5,-41 + 6161: 4,-41 + 6162: 3,-41 + 6163: 9,-41 + 6206: 4,-46 + 6207: 3,-46 + 6208: 2,-46 + 6209: 1,-46 + 6210: 0,-46 + 6211: -1,-46 + - node: + color: '#FF924493' + id: HalfTileOverlayGreyscale180 + decals: + 5341: 30,-19 + - node: + color: '#FFFFFFFF' + id: HalfTileOverlayGreyscale180 + decals: + 831: -28,-5 + 832: -27,-5 + 1475: -32,-30 + 1476: -28,-30 + 1477: -34,-27 + 1478: -35,-27 + 1479: -36,-27 + 1639: -26,-27 + 1640: -25,-27 + 1745: -21,-27 + 1746: -20,-27 + 1747: -19,-27 + 1748: -15,-27 + 1749: -14,-27 + 1750: -13,-27 + 1755: -9,-27 + 2071: -6,-27 + 2072: -7,-27 + 2073: -8,-27 + 2859: 34,1 + 2860: 33,1 + 2861: 32,1 + 2862: 31,1 + 2863: 30,1 + 5169: 16,-14 + 5174: 19,-15 + 5738: 39,-24 + 5739: 40,-24 + 5740: 41,-24 + 5747: 20,-24 + 5748: 21,-24 + 5749: 22,-24 + 5750: 23,-24 + 5751: 28,-24 + 5752: 29,-24 + 5753: 33,-24 + 5754: 34,-24 + 5755: 35,-24 + 5756: 16,-24 + 5757: 15,-24 + 5900: 27,-24 + - node: + color: '#222222E5' + id: HalfTileOverlayGreyscale270 + decals: + 254: -4,3 + 271: -4,-2 + 294: 9,-7 + 295: 9,-6 + 296: 10,-5 + 297: 11,-3 + 298: 11,-2 + 299: 11,3 + 300: 11,4 + 301: 10,6 + 302: 9,7 + 303: 9,8 + 3766: 36,-13 + 3775: 42,-7 + 3776: 42,-8 + 3777: 42,-9 + 3778: 42,-10 + 3811: 32,-6 + 3812: 32,-7 + 3813: 32,-8 + 3814: 32,-9 + 3815: 32,-10 + 3816: 32,-11 + 4842: 1,48 + 4982: 5,60 + - node: + color: '#334E6DC8' + id: HalfTileOverlayGreyscale270 + decals: + 44: 1,5 + 45: 1,6 + 46: 1,7 + 47: 1,8 + 48: 1,9 + 49: 1,10 + 50: 1,11 + 51: 1,12 + 52: 1,13 + 4618: 1,14 + 4619: 1,15 + 4620: 1,16 + 4621: 1,17 + 4622: 1,18 + 4623: 1,19 + 4624: 1,20 + 4625: 1,21 + 4626: 1,22 + 4627: 1,23 + 4628: 1,24 + 4629: 1,25 + 4631: 1,27 + 4632: 1,28 + 4633: 1,29 + 4634: 1,30 + 4635: 1,31 + 4636: 1,32 + 4637: 1,33 + 4638: 1,34 + 4639: 1,35 + 4640: 1,36 + 4641: 1,37 + 4642: 1,38 + 4815: 1,45 + 4816: 1,44 + 4817: 1,43 + 4818: 1,42 + 4819: 1,41 + 4820: 1,40 + 4821: 1,39 + 4822: 1,47 + 4946: 1,51 + 4947: 1,50 + 4948: 1,49 + 4949: 1,48 + 4988: 5,60 + - node: + color: '#50BCB193' + id: HalfTileOverlayGreyscale270 + decals: + 3041: 29,9 + 3042: 29,10 + 3043: 29,11 + 3044: 29,12 + 3350: 29,13 + 3351: 29,15 + 3352: 29,16 + - node: + color: '#52B4E996' + id: HalfTileOverlayGreyscale270 + decals: + 80: 1,-4 + 81: 1,-5 + 82: 1,-6 + 83: 1,-7 + 84: 1,-8 + 85: 1,-9 + 86: 1,-10 + 87: 1,-11 + 88: 1,-12 + 588: 8,-14 + 2775: 22,-11 + 2776: 22,-10 + 5454: 27,-27 + 5455: 27,-28 + 5456: 27,-29 + 5457: 27,-30 + 5458: 27,-31 + 5824: 27,-26 + 5838: 27,-25 + 5940: 11,-36 + 5941: 14,-36 + 6063: 1,-13 + 6064: 1,-14 + 6065: 1,-15 + 6066: 1,-16 + 6067: 1,-17 + 6068: 1,-18 + 6069: 1,-19 + 6070: 1,-20 + 6071: 1,-21 + 6072: 1,-22 + 6073: 1,-23 + 6074: 1,-24 + 7223: 4,-35 + 7245: 39,-40 + 7248: 41,-38 + - node: + color: '#9FED5896' + id: HalfTileOverlayGreyscale270 + decals: + 3114: 32,16 + 3115: 32,17 + 3116: 32,15 + - node: + color: '#A4610696' + id: HalfTileOverlayGreyscale270 + decals: + 888: -31,8 + 889: -31,7 + 890: -31,6 + 891: -31,5 + 1181: -38,-8 + 1182: -38,-9 + 1183: -38,-10 + 1184: -38,-11 + 1185: -38,-12 + 1186: -38,-13 + 1187: -38,-14 + 7397: -43,-19 + - node: + color: '#D381C996' + id: HalfTileOverlayGreyscale270 + decals: + 547: 9,14 + 1299: -39,-23 + 1321: -40,-26 + 2111: -44,-41 + 2112: -44,-40 + 2113: -44,-39 + 2359: -22,-39 + 2360: -21,-42 + 2362: -21,-48 + - node: + color: '#D4D4D428' + id: HalfTileOverlayGreyscale270 + decals: + 1250: -32,14 + 1251: -32,15 + 1252: -32,16 + 1253: -32,17 + 2138: -44,-37 + 2139: -44,-36 + 2199: -36,-47 + 2200: -36,-48 + 2247: -32,-50 + 2248: -32,-51 + 2252: -32,-52 + 2624: -36,9 + 2625: -35,11 + 2626: -35,12 + 2635: -35,5 + 2636: -35,4 + 2637: -35,3 + 2638: -35,2 + 2639: -35,1 + 2640: -35,0 + 2641: -35,-1 + 2642: -35,-2 + 2643: -35,-3 + 2644: -35,-4 + 2645: -35,-5 + 2646: -35,-6 + 2647: -35,-7 + 2648: -35,-8 + 2649: -35,-9 + 2650: -35,-10 + 2651: -35,-11 + 2652: -35,-12 + 2653: -35,-13 + 2654: -35,-14 + 2682: -1,-12 + 2683: -1,-14 + 2684: -1,-15 + 2685: -1,-16 + 2686: -1,-17 + 2687: -1,-18 + 2688: -1,-19 + 2689: -1,-20 + 2694: -1,-26 + 2715: -1,13 + 2716: -1,15 + 2717: -1,16 + 2718: -1,17 + 3260: 12,20 + 3261: 12,23 + 3316: 23,25 + 3511: 28,3 + 3512: 28,4 + 3535: 16,6 + 3536: 16,7 + 3537: 16,8 + 3538: 16,9 + 3549: 28,9 + 3550: 28,10 + 3551: 28,11 + 3552: 28,12 + 3564: 28,16 + 3565: 28,17 + 3566: 28,18 + 3567: 28,20 + 3578: 28,22 + 3579: 28,23 + 3580: 28,24 + 3581: 28,25 + 3582: 28,26 + 3583: 28,27 + 3584: 28,28 + 3589: 28,34 + 3590: 28,35 + 3591: 28,36 + 3592: 28,37 + 3593: 28,38 + 3594: 28,39 + 3615: 42,30 + 3616: 42,31 + 3617: 42,32 + 3618: 42,33 + 3623: 42,40 + 3624: 42,41 + 3625: 42,42 + 3626: 42,43 + 3627: 42,44 + 3628: 42,45 + 3629: 42,46 + 3716: 33,-10 + 3717: 33,-9 + 3718: 33,-8 + 3719: 33,-7 + 3734: 35,-3 + 3735: 35,-4 + 3736: 35,-5 + 4055: -17,20 + 4056: -17,19 + 4138: -17,25 + 4139: -17,26 + 4215: -5,30 + 4286: -18,32 + 4287: -18,33 + 4288: -18,34 + 4289: -18,35 + 4318: -21,32 + 4319: -21,33 + 4320: -21,34 + 4321: -21,35 + 4390: -38,38 + 4397: -43,36 + 4398: -43,35 + 4399: -43,34 + 4400: -43,33 + 4401: -43,32 + 4402: -43,31 + 4452: -38,26 + 4453: -38,25 + 4454: -38,24 + 4455: -38,23 + 4456: -38,22 + 4525: -25,33 + 4526: -25,32 + 4527: -25,31 + 4547: -25,27 + 4701: -1,21 + 4702: -1,22 + 4703: -1,23 + 4704: -1,24 + 4705: -1,25 + 4706: -1,26 + 4707: -1,27 + 4708: -1,28 + 4709: -1,29 + 4710: -1,30 + 4711: -1,31 + 4712: -1,32 + 4713: -1,33 + 4714: -1,34 + 4715: -1,35 + 4718: -1,40 + 4719: -1,41 + 4825: -1,42 + 4826: -1,43 + 4827: -1,44 + 4828: -1,45 + 4829: -1,46 + 4830: -1,47 + 5352: 40,-18 + 5353: 40,-17 + 5354: 40,-16 + 6121: -1,-30 + 6122: -1,-31 + 6123: -1,-32 + 6124: -1,-33 + 6125: -1,-34 + 6126: -1,-35 + 6127: -1,-36 + 6128: -1,-37 + 6129: -1,-38 + 6130: -1,-38 + 6131: -1,-39 + 6132: -1,-40 + 6133: -1,-41 + 6134: -1,-42 + 6182: -3,-47 + 6183: -3,-46 + 6374: -8,-60 + 6394: -8,-57 + 6526: 28,19 + 6933: 30,-63 + 6947: 31,-53 + 6948: 31,-52 + 7006: 22,-64 + 7007: 22,-63 + 7008: 22,-62 + 7009: 22,-61 + 7010: 22,-60 + 7011: 22,-59 + 7012: 22,-58 + 7013: 22,-57 + 7014: 22,-56 + 7015: 22,-55 + 7180: 10,-47 + 7181: 10,-46 + 7182: 10,-45 + 7183: 10,-44 + 7184: 10,-43 + 7185: 10,-42 + - node: + color: '#DE3A3A96' + id: HalfTileOverlayGreyscale270 + decals: + 2765: 27,-4 + 3902: 43,-16 + 3903: 43,-17 + 3904: 43,-18 + 4237: -13,35 + 4238: -13,34 + 4239: -13,33 + 4240: -13,32 + 4577: -7,39 + 4578: -7,38 + 4579: -7,37 + 5003: -5,58 + 5004: -5,59 + 5005: -5,60 + 5006: -5,61 + 6228: 2,-50 + - node: + color: '#EFB34196' + id: HalfTileOverlayGreyscale270 + decals: + 6099: 1,-26 + 6100: 1,-27 + 6101: 1,-28 + 6102: 1,-29 + 6103: 1,-30 + 6104: 1,-31 + 6105: 1,-32 + 6106: 1,-33 + 6107: 1,-34 + 6139: 1,-35 + 6140: 1,-36 + 6141: 1,-37 + 6142: 1,-38 + 6143: 1,-39 + 6144: 1,-40 + 6170: 6,-43 + 6171: 6,-44 + 6203: 6,-45 + 6306: 2,-58 + - node: + color: '#FF924493' + id: HalfTileOverlayGreyscale270 + decals: + 5340: 31,-20 + - node: + color: '#FFFFFFFF' + id: HalfTileOverlayGreyscale270 + decals: + 1273: -33,-16 + 1482: -33,-34 + 1483: -33,-35 + 1488: -33,-29 + 1489: -33,-28 + 1587: -33,-36 + 1588: -33,-37 + 1589: -33,-38 + 1590: -33,-39 + 1591: -33,-40 + 1592: -33,-41 + 1593: -33,-42 + 1594: -33,-43 + 1595: -33,-44 + 1631: -25,-30 + 1632: -25,-31 + 1756: -10,-25 + 1757: -10,-24 + 1758: -10,-23 + 1759: -10,-22 + 2855: 35,-2 + 2856: 35,-1 + 2857: 35,0 + 2971: 26,10 + 2972: 26,11 + 5165: 14,-15 + 5166: 14,-16 + 5452: 32,-30 + 5453: 32,-31 + 5669: 27,-26 + 5705: 14,-32 + 5706: 14,-31 + 5707: 14,-30 + 5717: 23,-28 + 5718: 23,-27 + 5722: 26,-26 + 5759: 14,-23 + 5760: 14,-22 + 5761: 38,-23 + 5762: 38,-22 + 5763: 38,-21 + 5764: 38,-20 + 5765: 38,-19 + 5768: 38,-15 + 5820: 19,-23 + - node: + color: '#222222E5' + id: HalfTileOverlayGreyscale90 + decals: + 243: -10,3 + 244: -10,4 + 247: -8,7 + 248: -8,8 + 272: 5,-2 + 273: 5,3 + 279: -10,-2 + 280: -10,-3 + 281: -9,-5 + 282: -8,-6 + 283: -8,-7 + 455: -9,6 + 3767: 38,-13 + 3771: 33,-10 + 3772: 33,-9 + 3773: 33,-8 + 3774: 33,-7 + 3828: 43,-11 + 3829: 43,-10 + 3830: 43,-9 + 3831: 43,-8 + 3832: 43,-7 + 3833: 43,-6 + 4841: 0,48 + 4983: -4,60 + - node: + color: '#334E6DC8' + id: HalfTileOverlayGreyscale90 + decals: + 4721: -12,47 + 4722: -6,44 + 4797: 0,39 + 4798: 0,40 + 4799: 0,41 + 4800: 0,42 + 4801: 0,43 + 4802: 0,44 + 4803: 0,45 + 4804: 0,46 + 4823: 0,47 + 4942: 0,51 + 4943: 0,50 + 4944: 0,49 + 4945: 0,48 + 4950: 1,50 + 4989: -4,60 + - node: + color: '#52B4E996' + id: HalfTileOverlayGreyscale90 + decals: + 590: 9,-16 + 2725: 21,-3 + 2812: 26,-12 + 5459: 26,-27 + 5460: 26,-28 + 5461: 26,-29 + 5462: 26,-30 + 5463: 26,-31 + 5825: 26,-26 + 5839: 26,-25 + - node: + color: '#9FED5896' + id: HalfTileOverlayGreyscale90 + decals: + 3021: 29,9 + 3022: 29,10 + 3023: 29,11 + 3024: 29,12 + 3109: 29,13 + 3110: 29,15 + 3111: 29,16 + 3136: 37,17 + 3137: 37,16 + 3138: 37,15 + 3312: 18,25 + 4999: 6,58 + 5000: 6,59 + 5001: 6,60 + 5002: 6,61 + 5407: 35,-33 + - node: + color: '#A4610696' + id: HalfTileOverlayGreyscale90 + decals: + 894: -28,7 + 901: -28,5 + 902: -28,6 + 7400: -41,-21 + - node: + color: '#D381C996' + id: HalfTileOverlayGreyscale90 + decals: + 548: 10,14 + 549: 10,13 + 550: 10,12 + 1349: -46,-28 + 2114: -42,-41 + 2115: -42,-40 + 2116: -42,-39 + 2366: -20,-50 + 2424: -20,-53 + 2442: -28,-53 + - node: + color: '#D4D4D428' + id: HalfTileOverlayGreyscale90 + decals: + 1246: -36,14 + 1247: -36,15 + 1248: -36,16 + 1249: -36,17 + 2140: -46,-37 + 2141: -46,-36 + 2201: -38,-48 + 2202: -38,-47 + 2249: -33,-52 + 2250: -33,-51 + 2251: -33,-50 + 2621: -33,3 + 2622: -33,4 + 2623: -33,8 + 2655: -33,-7 + 2656: -33,-6 + 2657: -33,-5 + 2658: -33,-4 + 2659: -33,-3 + 2660: -33,-2 + 2696: 2,-23 + 2697: 2,-22 + 2698: 2,-21 + 2699: 2,-20 + 2700: 2,-19 + 2701: 2,-18 + 2702: 2,-17 + 2703: 2,-16 + 2704: 2,-15 + 2705: 2,-14 + 2706: 2,-12 + 2720: 2,15 + 2721: 2,16 + 2722: 2,13 + 3513: 30,4 + 3514: 30,3 + 3522: 36,1 + 3523: 36,0 + 3524: 36,-1 + 3544: 20,9 + 3553: 30,12 + 3554: 30,11 + 3555: 30,10 + 3556: 30,9 + 3559: 30,13 + 3560: 30,14 + 3568: 30,20 + 3574: 30,18 + 3577: 30,25 + 3599: 30,33 + 3600: 30,32 + 3601: 30,31 + 3630: 44,46 + 3631: 44,45 + 3632: 44,44 + 3633: 44,43 + 3634: 44,42 + 3635: 44,41 + 3638: 44,37 + 3639: 44,36 + 3640: 44,35 + 3641: 44,34 + 3644: 44,30 + 3645: 44,29 + 3646: 44,28 + 3647: 44,27 + 3720: 42,-10 + 3721: 42,-9 + 3722: 42,-8 + 3723: 42,-7 + 3737: 34,-3 + 3738: 34,-4 + 3739: 34,-5 + 4024: 2,20 + 4140: -15,25 + 4141: -15,26 + 4172: -24,24 + 4212: -3,28 + 4213: -3,29 + 4214: -3,30 + 4281: -15,35 + 4282: -15,34 + 4283: -15,33 + 4284: -15,32 + 4381: -37,32 + 4382: -37,33 + 4383: -37,34 + 4384: -37,35 + 4385: -37,36 + 4386: -37,37 + 4387: -37,38 + 4438: -36,26 + 4439: -36,25 + 4440: -36,24 + 4441: -36,23 + 4442: -36,22 + 4443: -36,21 + 4444: -36,20 + 4459: -39,22 + 4528: -23,36 + 4529: -23,35 + 4530: -23,34 + 4531: -23,33 + 4532: -23,32 + 4533: -23,31 + 4534: -23,30 + 4682: 2,21 + 4683: 2,22 + 4684: 2,23 + 4685: 2,29 + 4686: 2,30 + 4687: 2,31 + 4688: 2,32 + 4689: 2,33 + 4690: 2,34 + 4691: 2,35 + 4692: 2,36 + 4693: 2,37 + 4694: 2,38 + 4695: 2,39 + 4696: 2,40 + 4697: 2,41 + 4698: 2,42 + 4699: 2,43 + 4700: 2,44 + 5355: 41,-16 + 5356: 41,-17 + 5357: 41,-18 + 6109: 2,-28 + 6110: 2,-29 + 6111: 2,-30 + 6112: 2,-31 + 6113: 2,-32 + 6114: 2,-33 + 6115: 2,-34 + 6116: 2,-35 + 6117: 2,-36 + 6118: 2,-37 + 6119: 2,-38 + 6120: 2,-39 + 6383: 0,-58 + 6384: 0,-57 + 6503: 2,28 + 6505: 2,24 + 6525: 30,19 + 6940: 24,-63 + 6949: 28,-52 + 6950: 28,-53 + 6982: 32,-51 + 6983: 32,-52 + 6984: 32,-53 + 6985: 32,-54 + 6986: 32,-64 + 6987: 32,-63 + 6988: 32,-62 + 6989: 32,-61 + 6990: 32,-60 + 6991: 32,-59 + 6992: 32,-58 + 6993: 32,-57 + 6994: 32,-56 + 7210: 32,-43 + 7211: 32,-44 + 7212: 32,-45 + 7213: 32,-48 + 7214: 32,-47 + 7215: 32,-46 + - node: + color: '#D4D4D496' + id: HalfTileOverlayGreyscale90 + decals: + 2723: 19,-5 + 2724: 24,-3 + 2814: 25,-15 + - node: + color: '#DE3A3A96' + id: HalfTileOverlayGreyscale90 + decals: + 53: 0,5 + 54: 0,6 + 55: 0,7 + 56: 0,8 + 57: 0,10 + 58: 0,9 + 59: 0,11 + 60: 0,12 + 61: 0,13 + 903: -22,4 + 909: -20,11 + 2766: 30,-4 + 3905: 44,-16 + 3906: 46,-18 + 4017: 0,18 + 4018: 0,17 + 4019: 0,16 + 4020: 0,15 + 4021: 0,14 + 4583: -3,37 + 4584: -3,38 + 4585: -3,39 + 4601: 0,36 + 4602: 0,35 + 4603: 0,34 + 4604: 0,33 + 4605: 0,32 + 4606: 0,31 + 4607: 0,30 + 4608: 0,29 + 4609: 0,28 + 4610: 0,27 + 4611: 0,26 + 4612: 0,25 + 4613: 0,24 + 4614: 0,23 + 4615: 0,22 + 4616: 0,21 + 4617: 0,20 + 6230: 4,-50 + - node: + color: '#EFB34196' + id: HalfTileOverlayGreyscale90 + decals: + 89: 0,-4 + 90: 0,-5 + 91: 0,-6 + 92: 0,-7 + 93: 0,-8 + 94: 0,-9 + 95: 0,-10 + 96: 0,-11 + 97: 0,-12 + 6077: 0,-14 + 6078: 0,-15 + 6079: 0,-16 + 6080: 0,-17 + 6081: 0,-13 + 6082: 0,-18 + 6083: 0,-19 + 6084: 0,-20 + 6085: 0,-21 + 6086: 0,-22 + 6087: 0,-23 + 6088: 0,-24 + 6089: 0,-25 + 6090: 0,-26 + 6091: 0,-27 + 6092: 0,-28 + 6093: 0,-29 + 6094: 0,-30 + 6095: 0,-31 + 6096: 0,-32 + 6097: 0,-33 + 6098: 0,-34 + 6146: 0,-35 + 6147: 0,-36 + 6148: 0,-37 + 6149: 0,-38 + 6150: 0,-39 + 6151: 0,-40 + 6152: 0,-41 + 6172: 5,-43 + 6173: 5,-44 + 6202: 5,-45 + 6213: -2,-47 + 6307: 4,-54 + 6308: 4,-55 + 6309: 4,-56 + 6310: 4,-57 + 6311: 4,-58 + 6312: 4,-59 + 6313: 4,-60 + 6314: 4,-61 + - node: + color: '#FFFFFFFF' + id: HalfTileOverlayGreyscale90 + decals: + 1274: -35,-16 + 1275: -35,-17 + 1276: -35,-18 + 1480: -35,-34 + 1481: -35,-35 + 1490: -35,-33 + 1507: -31,-27 + 1508: -31,-28 + 1581: -35,-36 + 1582: -35,-37 + 1583: -35,-38 + 1584: -35,-39 + 1585: -35,-40 + 1586: -35,-41 + 1629: -27,-29 + 1630: -27,-28 + 1760: -12,-22 + 1761: -12,-23 + 1762: -12,-24 + 1763: -12,-25 + 2853: 34,-1 + 2854: 34,-2 + 2966: 22,11 + 2967: 22,10 + 5449: 30,-31 + 5450: 30,-30 + 5451: 30,-29 + 5670: 26,-26 + 5695: 12,-20 + 5696: 12,-21 + 5697: 12,-22 + 5698: 12,-23 + 5701: 12,-27 + 5702: 12,-28 + 5703: 12,-29 + 5704: 12,-30 + 5723: 27,-26 + 5769: 36,-15 + 5770: 36,-16 + 5771: 36,-17 + 5772: 36,-18 + 5773: 36,-19 + 5774: 36,-20 + 5775: 36,-21 + 5776: 36,-22 + 5777: 36,-23 + 5821: 17,-23 + - node: + angle: -1.5707963267948966 rad + color: '#FFFFFFFF' + id: LoadingArea + decals: + 1073: -44,6 + 1074: -44,7 + 1177: -43,0 + 2677: -35,11 + 2678: -35,12 + 3147: 32,15 + 3573: 28,16 + 4343: -10,43 + 4833: 3,46 + 5599: 8,-28 + - node: + color: '#FFFFFFFF' + id: LoadingArea + decals: + 968: -26,10 + 4152: -8,26 + 7078: 16,-40 + - node: + angle: 1.5707963267948966 rad + color: '#FFFFFFFF' + id: LoadingArea + decals: + 1175: -43,-2 + 1176: -38,-1 + 1654: -22,-20 + 3146: 33,20 + 4832: 3,50 + 5598: 6,-22 + - node: + angle: 3.141592653589793 rad + color: '#FFFFFFFF' + id: LoadingArea + decals: + 1436: -36,-33 + 4298: -17,36 + 4342: -10,39 + 4560: -28,28 + 7026: 19,-49 + 7027: 18,-49 + 7028: 17,-49 + 7029: 16,-49 + - node: + angle: -1.5707963267948966 rad + color: '#FFFFFFFF' + id: LoadingAreaGreyscale + decals: + 7030: 21,-52 + 7031: 21,-51 + - node: + color: '#222222E5' + id: QuarterTileOverlayGreyscale + decals: + 251: -3,4 + 252: -4,2 + 253: -1,5 + 277: 11,2 + 308: 5,-10 + 309: -1,-10 + 312: 11,-4 + 3796: 42,-11 + 3805: 40,-7 + 4840: 0,48 + 4862: 2,49 + 4984: 4,59 + - node: + color: '#222222E6' + id: QuarterTileOverlayGreyscale + decals: + 26: 4,-2 + 27: 3,-3 + - node: + color: '#334E6DC8' + id: QuarterTileOverlayGreyscale + decals: + 4977: 1,58 + 4987: 4,59 + - node: + color: '#50BCB193' + id: QuarterTileOverlayGreyscale + decals: + 3389: 40,27 + - node: + color: '#52B4E996' + id: QuarterTileOverlayGreyscale + decals: + 5465: 27,-32 + 5875: 26,-25 + 5943: 12,-37 + 5972: 23,-36 + 7242: 40,-39 + 7243: 46,-37 + 7244: 45,-38 + 7303: 6,-14 + - node: + color: '#6C6C6C93' + id: QuarterTileOverlayGreyscale + decals: + 2977: 23,9 + 2978: 24,9 + 2979: 25,9 + 2980: 26,9 + 2981: 26,10 + 2982: 26,11 + - node: + color: '#818181FF' + id: QuarterTileOverlayGreyscale + decals: + 1058: -42,9 + - node: + color: '#A4610696' + id: QuarterTileOverlayGreyscale + decals: + 7393: -47,-23 + 7404: -48,-18 + 7405: -49,-24 + 7406: -48,-24 + - node: + color: '#D381C996' + id: QuarterTileOverlayGreyscale + decals: + 544: 9,13 + 1296: -37,-25 + 1300: -38,-23 + 1376: -39,-29 + 1385: -40,-32 + 2363: -20,-46 + 2364: -20,-48 + - node: + color: '#D4D4D428' + id: QuarterTileOverlayGreyscale + decals: + 468: -17,2 + 2204: -36,-49 + 2243: -32,-53 + 2259: -34,-53 + 2627: -35,10 + 2629: -36,8 + 2690: -1,-21 + 2691: -1,-27 + 3496: 28,2 + 3548: 28,8 + 3563: 28,15 + 3588: 28,33 + 3614: 42,29 + 3621: 42,36 + 3622: 42,39 + 4025: -1,20 + 4216: -5,29 + 4225: -14,29 + 4226: -17,29 + 4391: -38,37 + 4457: -38,21 + 4522: -25,30 + 4523: -25,36 + 4717: -1,39 + 6942: 30,-64 + 6951: 31,-54 + - node: + color: '#DE3A3A96' + id: QuarterTileOverlayGreyscale + decals: + 3919: -17,16 + 3922: -23,14 + 3956: -30,21 + 3958: -26,18 + - node: + color: '#FFFFFFFF' + id: QuarterTileOverlayGreyscale + decals: + 1473: -28,-33 + 1635: -25,-32 + 2973: 26,9 + 5167: 14,-17 + 5175: 20,-16 + - node: + color: '#222222E5' + id: QuarterTileOverlayGreyscale180 + decals: + 246: -10,5 + 249: -4,11 + 263: 2,-4 + 264: 5,-1 + 265: 4,-3 + 275: -10,-1 + 278: 2,11 + 3795: 33,-6 + 3799: 35,-10 + 3822: 38,-12 + - node: + color: '#222222E6' + id: QuarterTileOverlayGreyscale180 + decals: + 22: -3,3 + 23: -2,4 + - node: + color: '#334E6DC8' + id: QuarterTileOverlayGreyscale180 + decals: + 4720: -12,45 + 4974: 3,61 + 4979: 0,60 + 4980: 2,60 + - node: + color: '#50BCB193' + id: QuarterTileOverlayGreyscale180 + decals: + 3373: 31,29 + - node: + color: '#52B4E996' + id: QuarterTileOverlayGreyscale180 + decals: + 2726: 23,-7 + 2756: 18,-7 + 2810: 24,-15 + 5971: 23,-35 + 5973: 23,-36 + 6028: 36,-39 + 7240: 47,-41 + 7241: 40,-39 + 7302: 6,-14 + - node: + color: '#6C6C6C93' + id: QuarterTileOverlayGreyscale180 + decals: + 2975: 22,11 + 2976: 22,10 + - node: + color: '#818181FF' + id: QuarterTileOverlayGreyscale180 + decals: + 1057: -39,7 + - node: + color: '#9FED5896' + id: QuarterTileOverlayGreyscale180 + decals: + 553: 12,12 + 3012: 28,8 + 3217: 43,21 + 3259: 12,20 + 3313: 19,25 + 3314: 23,25 + 5406: 36,-29 + 5896: 27,-25 + - node: + color: '#A4610696' + id: QuarterTileOverlayGreyscale180 + decals: + 7391: -49,-16 + 7392: -47,-23 + 7401: -43,-16 + 7407: -49,-23 + 7409: -45,-23 + 7410: -45,-20 + - node: + color: '#D381C996' + id: QuarterTileOverlayGreyscale180 + decals: + 1350: -46,-27 + 2440: -30,-52 + 2441: -27,-53 + - node: + color: '#D4D4D428' + id: QuarterTileOverlayGreyscale180 + decals: + 469: -15,-1 + 556: 9,-10 + 557: 9,-10 + 2142: -46,-35 + 2205: -38,-46 + 2245: -33,-49 + 2257: -35,-52 + 2630: -33,5 + 2632: -33,9 + 2661: -33,-1 + 2662: -33,-1 + 2665: -29,-1 + 2669: -20,-1 + 2719: 2,17 + 3509: 30,5 + 3525: 31,6 + 3561: 30,15 + 3575: 30,22 + 3597: 30,37 + 3598: 30,34 + 3637: 44,38 + 3643: 44,31 + 3650: 40,27 + 3652: 39,26 + 3660: 30,26 + 4199: -15,27 + 4446: -37,19 + 4477: -36,28 + 4546: -23,27 + 4824: 2,45 + 6108: 2,-27 + 6506: 2,25 + 6932: 24,-62 + 6953: 28,-51 + - node: + color: '#D4D4D496' + id: QuarterTileOverlayGreyscale180 + decals: + 592: 8,-13 + - node: + color: '#DE3A3A96' + id: QuarterTileOverlayGreyscale180 + decals: + 4249: -9,32 + - node: + color: '#EFB34196' + id: QuarterTileOverlayGreyscale180 + decals: + 2525: -17,-53 + 6212: -2,-46 + 6260: 0,-53 + - node: + color: '#FF924493' + id: QuarterTileOverlayGreyscale180 + decals: + 5312: 32,-22 + 5313: 33,-22 + - node: + color: '#FFFFFFFF' + id: QuarterTileOverlayGreyscale180 + decals: + 1636: -27,-27 + 5178: 18,-15 + 5693: 12,-19 + - node: + color: '#222222E5' + id: QuarterTileOverlayGreyscale270 + decals: + 250: -1,11 + 261: -1,-4 + 262: -4,-1 + 266: -3,-3 + 276: 11,-1 + 306: 11,5 + 313: 5,11 + 3797: 42,-6 + 3800: 40,-10 + 3821: 36,-12 + - node: + color: '#222222E6' + id: QuarterTileOverlayGreyscale270 + decals: + 24: 3,4 + 25: 4,3 + - node: + color: '#334E6DC8' + id: QuarterTileOverlayGreyscale270 + decals: + 4975: -2,61 + 4978: 1,60 + 4981: -1,60 + - node: + color: '#50BCB193' + id: QuarterTileOverlayGreyscale270 + decals: + 3390: 40,29 + - node: + color: '#52B4E996' + id: QuarterTileOverlayGreyscale270 + decals: + 589: 8,-13 + 2774: 22,-12 + 2811: 25,-15 + 5976: 26,-35 + - node: + color: '#818181FF' + id: QuarterTileOverlayGreyscale270 + decals: + 1060: -42,7 + - node: + color: '#9FED5896' + id: QuarterTileOverlayGreyscale270 + decals: + 3020: 30,8 + 5895: 26,-25 + - node: + color: '#A4610696' + id: QuarterTileOverlayGreyscale270 + decals: + 7408: -45,-24 + - node: + color: '#D381C996' + id: QuarterTileOverlayGreyscale270 + decals: + 2358: -27,-45 + 2463: -27,-56 + 2464: -24,-56 + - node: + color: '#D4D4D428' + id: QuarterTileOverlayGreyscale270 + decals: + 470: -17,-1 + 2143: -44,-35 + 2203: -36,-46 + 2246: -32,-49 + 2258: -34,-52 + 2664: -31,-1 + 2668: -22,-1 + 2681: -35,6 + 2692: -1,-29 + 2693: -1,-25 + 3510: 28,5 + 3558: 28,13 + 3585: 28,29 + 3619: 42,34 + 3620: 42,37 + 3648: 42,27 + 3653: 37,26 + 4022: -1,18 + 4198: -17,27 + 4478: -38,28 + 4524: -25,34 + 4548: -25,28 + 4716: -1,36 + 6941: 30,-62 + 6952: 31,-51 + - node: + color: '#D4D4D496' + id: QuarterTileOverlayGreyscale270 + decals: + 5404: 35,-33 + - node: + color: '#EFB34196' + id: QuarterTileOverlayGreyscale270 + decals: + 513: 5,13 + 514: 5,14 + 515: 5,15 + 516: 5,16 + 517: 5,17 + 518: 5,18 + 519: 4,18 + 528: 9,18 + 529: 9,17 + 530: 10,17 + 2559: -7,-53 + - node: + color: '#FF924493' + id: QuarterTileOverlayGreyscale270 + decals: + 5314: 30,-22 + 5317: 29,-22 + 5318: 28,-22 + 5319: 28,-21 + 5320: 28,-20 + 5321: 28,-19 + 5322: 28,-18 + 5323: 28,-17 + 5324: 28,-16 + 5343: 31,-19 + 5345: 32,-18 + 5347: 33,-17 + - node: + color: '#FFFFFFFF' + id: QuarterTileOverlayGreyscale270 + decals: + 1474: -33,-27 + 2858: 35,1 + 5168: 14,-14 + 5177: 20,-15 + 5694: 14,-19 + - node: + color: '#222222E5' + id: QuarterTileOverlayGreyscale90 + decals: + 245: -10,2 + 267: 4,4 + 268: 5,2 + 274: 2,5 + 307: 2,-10 + 310: -4,-10 + 311: -10,-4 + 3798: 33,-11 + 3806: 35,-7 + 4839: 1,48 + 4861: -1,49 + 4985: -3,59 + - node: + color: '#222222E6' + id: QuarterTileOverlayGreyscale90 + decals: + 20: -2,-3 + 21: -3,-2 + - node: + color: '#334E6DC8' + id: QuarterTileOverlayGreyscale90 + decals: + 4976: 0,58 + 4986: -3,59 + - node: + color: '#50BCB193' + id: QuarterTileOverlayGreyscale90 + decals: + 3372: 31,27 + - node: + color: '#52B4E996' + id: QuarterTileOverlayGreyscale90 + decals: + 554: 9,-10 + 5464: 26,-32 + 5876: 27,-25 + 5977: 26,-35 + 6030: 35,-38 + 7222: 6,-37 + 7249: 41,-41 + 7299: 6,-13 + - node: + color: '#818181FF' + id: QuarterTileOverlayGreyscale90 + decals: + 1059: -39,9 + - node: + color: '#A4610696' + id: QuarterTileOverlayGreyscale90 + decals: + 7411: -41,-24 + - node: + color: '#D381C996' + id: QuarterTileOverlayGreyscale90 + decals: + 1295: -39,-24 + 1382: -40,-34 + 2365: -21,-49 + 2422: -21,-51 + - node: + color: '#D4D4D428' + id: QuarterTileOverlayGreyscale90 + decals: + 467: -15,2 + 2206: -38,-49 + 2244: -33,-53 + 2256: -35,-53 + 2631: -33,7 + 2633: -33,2 + 2695: 2,-24 + 3515: 30,2 + 3545: 20,8 + 3557: 30,8 + 3562: 30,17 + 3576: 30,24 + 3595: 30,39 + 3596: 30,36 + 3602: 30,30 + 3613: 40,29 + 3636: 44,40 + 3642: 44,33 + 4023: 2,19 + 4054: -15,20 + 4223: -12,29 + 4224: -15,29 + 4458: -39,21 + 4535: -23,29 + 4831: 2,47 + 6184: 7,-46 + 6185: 8,-47 + 6504: 2,27 + 6939: 24,-64 + 6954: 28,-54 + 7208: 30,-42 + - node: + color: '#DE3A3A96' + id: QuarterTileOverlayGreyscale90 + decals: + 905: -20,6 + 3899: 44,-17 + 3916: -19,14 + 3953: -28,25 + 3954: -27,20 + 4248: -9,34 + - node: + color: '#EFB34196' + id: QuarterTileOverlayGreyscale90 + decals: + 520: 7,15 + 521: 7,16 + 522: 7,17 + 523: 7,18 + 524: 6,18 + 525: 6,19 + 526: 5,19 + 2579: -5,-45 + 6153: 0,-42 + 6237: 6,-48 + - node: + color: '#FF924493' + id: QuarterTileOverlayGreyscale90 + decals: + 5325: 28,-16 + 5326: 29,-16 + 5327: 30,-16 + 5328: 31,-16 + 5329: 32,-16 + 5330: 33,-16 + 5331: 34,-16 + 5332: 34,-17 + 5333: 34,-18 + 5334: 34,-19 + 5335: 34,-20 + 5336: 34,-21 + 5338: 30,-21 + 5342: 29,-20 + 5344: 31,-19 + 5346: 32,-18 + - node: + color: '#FFFFFFFF' + id: QuarterTileOverlayGreyscale90 + decals: + 2974: 22,9 + 5176: 18,-16 + - node: + color: '#FFFFFFFF' + id: Remains + decals: + 1955: -8,-43 + - node: + angle: -1.5707963267948966 rad + color: '#FFFFFFFF' + id: StandClear + decals: + 3349: 30,16 + - node: + color: '#FFFFFFFF' + id: StandClear + decals: + 535: 4,18 + 536: 8,18 + 537: 5,13 + 3866: 41,-13 + 3887: 46,-13 + 3888: 46,-7 + 3889: 46,-5 + 3914: 46,-15 + 6537: 11,-66 + 6538: 12,-66 + 6539: 13,-66 + 6576: 4,-70 + 6709: -4,-70 + - node: + angle: 1.5707963267948966 rad + color: '#FFFFFFFF' + id: StandClear + decals: + 3441: 46,32 + 3442: 46,39 + 3867: 44,-12 + 3868: 44,-5 + - node: + color: '#222222E5' + id: ThreeQuarterTileOverlayGreyscale + decals: + 3809: 39,-7 + 3810: 38,-7 + 3843: 32,-5 + 4860: 2,50 + - node: + color: '#222222E6' + id: ThreeQuarterTileOverlayGreyscale + decals: + 13: 2,-3 + 19: 4,-1 + - node: + color: '#52B4E996' + id: ThreeQuarterTileOverlayGreyscale + decals: + 5524: 8,-19 + - node: + color: '#9FED5896' + id: ThreeQuarterTileOverlayGreyscale + decals: + 3019: 30,6 + 3257: 12,17 + - node: + color: '#A4610696' + id: ThreeQuarterTileOverlayGreyscale + decals: + 7402: -47,-18 + - node: + color: '#D381C996' + id: ThreeQuarterTileOverlayGreyscale + decals: + 542: 9,15 + 543: 7,13 + - node: + color: '#D4D4D428' + id: ThreeQuarterTileOverlayGreyscale + decals: + 2628: -36,10 + 3539: 16,10 + 3547: 27,8 + 3725: 33,-6 + 4278: -18,36 + 4315: -21,36 + 4388: -38,39 + 4396: -43,37 + 5349: 40,-15 + 6393: -8,-56 + 7186: 10,-41 + - node: + color: '#DE3A3A96' + id: ThreeQuarterTileOverlayGreyscale + decals: + 907: -22,8 + 2758: 27,-3 + 3897: 43,-15 + 3923: -23,16 + 3955: -28,19 + 4127: -17,23 + 4564: -5,34 + 4587: -7,40 + 5511: 4,-19 + 6226: 2,-49 + - node: + color: '#EFB34196' + id: ThreeQuarterTileOverlayGreyscale + decals: + 4933: 3,61 + 6169: 6,-42 + 6214: -1,-47 + 6259: -4,-51 + - node: + color: '#FFFFFFFF' + id: ThreeQuarterTileOverlayGreyscale + decals: + 1470: -28,-32 + 1471: -33,-33 + 1638: -25,-29 + 1741: -21,-29 + 2074: -7,-29 + 5708: 14,-29 + 5719: 23,-26 + 5734: 41,-26 + 5766: 38,-18 + - node: + color: '#222222E5' + id: ThreeQuarterTileOverlayGreyscale180 + decals: + 3801: 36,-10 + 3802: 37,-10 + 3827: 43,-12 + - node: + color: '#222222E6' + id: ThreeQuarterTileOverlayGreyscale180 + decals: + 17: -3,2 + 18: -1,4 + - node: + color: '#334E6DC8' + id: ThreeQuarterTileOverlayGreyscale180 + decals: + 4723: -4,43 + - node: + color: '#52B4E996' + id: ThreeQuarterTileOverlayGreyscale180 + decals: + 2809: 22,-15 + 5526: 10,-20 + 6027: 36,-40 + - node: + color: '#9FED5896' + id: ThreeQuarterTileOverlayGreyscale180 + decals: + 3134: 37,14 + 3315: 21,25 + 5405: 36,-28 + - node: + color: '#A4610696' + id: ThreeQuarterTileOverlayGreyscale180 + decals: + 896: -28,4 + 7390: -42,-17 + - node: + color: '#D381C996' + id: ThreeQuarterTileOverlayGreyscale180 + decals: + 540: 10,11 + 2110: -42,-42 + 2357: -29,-45 + - node: + color: '#D4D4D428' + id: ThreeQuarterTileOverlayGreyscale180 + decals: + 3508: 31,5 + 3651: 40,26 + 3715: 42,-11 + 4171: -24,23 + 4211: -3,27 + 4276: -15,31 + 4445: -36,19 + 5350: 41,-19 + 6980: 32,-49 + 6995: 32,-65 + - node: + color: '#D4D4D496' + id: ThreeQuarterTileOverlayGreyscale180 + decals: + 591: 7,-16 + - node: + color: '#DE3A3A96' + id: ThreeQuarterTileOverlayGreyscale180 + decals: + 906: -20,7 + 2760: 30,-5 + 3896: 46,-19 + 3918: -17,14 + 3957: -25,20 + 4128: -15,22 + 4242: -9,31 + 4243: -7,32 + 4563: -3,33 + 4588: -3,36 + 5512: 6,-20 + 6224: 4,-51 + - node: + color: '#EFB34196' + id: ThreeQuarterTileOverlayGreyscale180 + decals: + 2526: -16,-54 + 2527: -13,-53 + 2560: -7,-54 + 6205: 5,-46 + 6257: -3,-54 + - node: + color: '#FFFFFFFF' + id: ThreeQuarterTileOverlayGreyscale180 + decals: + 1468: -31,-30 + 1596: -35,-42 + 1637: -27,-30 + 1742: -24,-27 + 1753: -12,-27 + 1754: -18,-27 + 2077: -4,-27 + 5699: 12,-24 + 5736: 36,-24 + 5744: 17,-24 + 5745: 24,-24 + 5746: 30,-24 + - node: + color: '#222222E5' + id: ThreeQuarterTileOverlayGreyscale270 + decals: + 3803: 39,-10 + 3804: 38,-10 + 3817: 32,-12 + - node: + color: '#222222E6' + id: ThreeQuarterTileOverlayGreyscale270 + decals: + 15: 4,2 + 16: 2,4 + - node: + color: '#52B4E996' + id: ThreeQuarterTileOverlayGreyscale270 + decals: + 5527: 8,-20 + - node: + color: '#9FED5896' + id: ThreeQuarterTileOverlayGreyscale270 + decals: + 3117: 32,14 + - node: + color: '#A4610696' + id: ThreeQuarterTileOverlayGreyscale270 + decals: + 895: -31,4 + - node: + color: '#D381C996' + id: ThreeQuarterTileOverlayGreyscale270 + decals: + 538: 8,11 + 539: 7,12 + 2109: -44,-42 + 2355: -25,-45 + - node: + color: '#D4D4D428' + id: ThreeQuarterTileOverlayGreyscale270 + decals: + 3507: 27,5 + 3714: 33,-11 + 4057: -17,18 + 4275: -18,31 + 4314: -21,31 + 5351: 40,-19 + 6135: -1,-43 + 6375: -8,-61 + 7005: 22,-65 + - node: + color: '#DE3A3A96' + id: ThreeQuarterTileOverlayGreyscale270 + decals: + 908: -24,12 + 2757: 27,-5 + 3898: 43,-19 + 3915: -20,14 + 3959: -25,16 + 4129: -17,22 + 4241: -13,31 + 4562: -5,33 + 4586: -7,36 + 5513: 4,-20 + 6223: 2,-51 + - node: + color: '#EFB34196' + id: ThreeQuarterTileOverlayGreyscale270 + decals: + 2557: -6,-51 + 6145: 1,-41 + 6204: 6,-46 + 6222: 7,-47 + 6258: -1,-53 + - node: + color: '#FFFFFFFF' + id: ThreeQuarterTileOverlayGreyscale270 + decals: + 1272: -33,-17 + 1469: -29,-30 + 1472: -33,-30 + 1509: -29,-27 + 1743: -22,-27 + 1751: -16,-27 + 1752: -10,-27 + 5737: 38,-24 + 5741: 32,-24 + 5742: 26,-24 + 5743: 19,-24 + 5758: 14,-24 + 5767: 38,-16 + - node: + color: '#222222E5' + id: ThreeQuarterTileOverlayGreyscale90 + decals: + 3807: 36,-7 + 3808: 37,-7 + 3834: 43,-5 + 4859: -1,50 + - node: + color: '#222222E6' + id: ThreeQuarterTileOverlayGreyscale90 + decals: + 12: -3,-1 + 14: -1,-3 + - node: + color: '#52B4E996' + id: ThreeQuarterTileOverlayGreyscale90 + decals: + 2773: 22,-13 + 5525: 10,-19 + 6029: 32,-37 + - node: + color: '#9FED5896' + id: ThreeQuarterTileOverlayGreyscale90 + decals: + 552: 12,15 + 2988: 28,6 + 3135: 37,18 + 3216: 42,23 + 3258: 12,22 + 3311: 18,27 + - node: + color: '#A4610696' + id: ThreeQuarterTileOverlayGreyscale90 + decals: + 7394: -49,-21 + 7395: -49,-22 + - node: + color: '#D381C996' + id: ThreeQuarterTileOverlayGreyscale90 + decals: + 541: 10,15 + 2368: -20,-49 + - node: + color: '#D4D4D428' + id: ThreeQuarterTileOverlayGreyscale90 + decals: + 3521: 36,2 + 3543: 20,10 + 3546: 21,8 + 3612: 40,30 + 3724: 42,-6 + 4170: -24,25 + 4277: -15,36 + 4389: -37,39 + 5348: 41,-15 + 6385: 0,-56 + 6981: 32,-50 + 7206: 30,-41 + 7207: 32,-42 + - node: + color: '#DE3A3A96' + id: ThreeQuarterTileOverlayGreyscale90 + decals: + 2759: 30,-3 + 3894: 44,-15 + 3895: 46,-17 + 3995: -33,20 + 4126: -15,23 + 4244: -7,34 + 4246: -9,35 + 4565: -3,34 + 4589: -3,40 + 5510: 6,-19 + 6225: 4,-49 + - node: + color: '#EFB34196' + id: ThreeQuarterTileOverlayGreyscale90 + decals: + 4932: -2,61 + 6168: 5,-42 + - node: + color: '#FFFFFFFF' + id: ThreeQuarterTileOverlayGreyscale90 + decals: + 1740: -23,-29 + 2068: -9,-29 + 2852: 34,0 + 5700: 12,-26 + 5735: 39,-26 + - node: + color: '#FFFFFFFF' + id: WarnBox + decals: + 1084: -37,8 + 1085: -37,9 + 1086: -37,10 + 1139: -37,-2 + 1424: -33,-26 + 1425: -34,-26 + 1426: -35,-26 + 4142: -14,26 + 4143: -11,26 + 4144: -5,26 + 4877: 1,53 + 4878: 0,53 + 5203: 18,-19 + 5204: 17,-19 + 5398: 47,-32 + 5624: 20,-26 + 5899: 23,-29 + 5904: 11,-31 + - node: + angle: 1.5707963267948966 rad + color: '#FFFFFFFF' + id: WarnBox + decals: + 2131: -45,-44 + 2133: -48,-35 + - node: + color: '#FFFFFFFF' + id: WarnCornerNE + decals: + 506: 4,17 + 855: -29,-7 + 1261: -33,16 + 1428: -34,-28 + 1437: -36,-33 + 1659: -21,-21 + 2187: -36,-46 + 2232: -34,-52 + 2236: -32,-49 + 2342: -80,-51 + 2343: -79,-52 + 3161: 35,17 + 3169: 36,13 + 3193: 40,17 + 3438: 44,26 + 4356: -28,32 + 4413: -40,30 + 4663: 5,39 + 4666: 8,39 + 4667: 8,42 + 4668: 5,42 + 5603: 9,-28 + 6197: 0,-48 + 6331: 2,-59 + 6367: -1,-57 + 6644: 8,-69 + 6651: -5,-69 + 6666: -1,-73 + 6674: -1,-74 + 6701: 7,-74 + 6894: 27,-51 + 7073: 36,-47 + 7120: 31,-43 + 7121: 29,-42 + 7134: 14,-43 + 7326: 30,-55 + 7519: -1,-57 + - node: + color: '#FFFFFFFF' + id: WarnCornerNW + decals: + 1191: -45,-10 + 1260: -35,16 + 1427: -35,-28 + 1660: -25,-21 + 2231: -35,-52 + 2237: -33,-49 + 2340: -82,-51 + 2341: -83,-52 + 3160: 34,17 + 3164: 38,17 + 3168: 32,13 + 3437: 42,26 + 4664: 7,39 + 4665: 4,39 + 4669: 4,42 + 4670: 7,42 + 5378: 46,-31 + 5604: 5,-28 + 6196: -3,-48 + 6368: -7,-57 + 6371: 0,-59 + 6429: -16,-58 + 6641: 5,-69 + 6650: -8,-69 + 6667: 1,-73 + 6675: 1,-74 + 6681: -7,-74 + 6893: 20,-51 + 6911: 24,-55 + 7142: 12,-43 + 7154: 11,-42 + 7518: -7,-57 + - node: + color: '#FFFFFFFF' + id: WarnCornerSE + decals: + 1094: -44,8 + 1200: -39,-13 + 1259: -33,14 + 1429: -34,-30 + 1658: -21,-25 + 2193: -36,-49 + 2238: -32,-53 + 2253: -34,-53 + 2254: -34,-53 + 2338: -80,-55 + 2339: -79,-54 + 3159: 35,15 + 3173: 32,18 + 3178: 36,19 + 4654: 6,35 + 4662: 5,38 + 4673: 8,41 + 4674: 5,41 + 5049: 5,72 + 5606: 9,-22 + 6190: 4,-45 + 6195: 0,-49 + 6323: 2,-57 + 6330: 2,-61 + 6366: -1,-60 + 6643: 8,-71 + 6652: -5,-71 + 6697: 6,-77 + 6700: 7,-75 + 6908: 27,-54 + 7090: 29,-40 + 7091: 21,-40 + 7115: 31,-48 + 7145: 14,-47 + 7335: 30,-61 + - node: + color: '#FFFFFFFF' + id: WarnCornerSW + decals: + 511: 7,19 + 899: -30,8 + 1258: -35,14 + 1430: -35,-30 + 1657: -25,-25 + 1811: -21,-32 + 2239: -33,-53 + 2255: -35,-53 + 2336: -82,-55 + 2337: -83,-54 + 3158: 34,15 + 3165: 38,14 + 3176: 34,19 + 3180: 38,19 + 4367: -28,36 + 4661: 7,38 + 4671: 4,41 + 4672: 7,41 + 5048: -3,72 + 5377: 46,-33 + 5605: 5,-22 + 6188: -2,-45 + 6189: 2,-45 + 6194: -3,-49 + 6365: -7,-60 + 6412: -16,-59 + 6431: -16,-56 + 6642: 5,-71 + 6653: -8,-71 + 6682: -7,-75 + 6685: -6,-77 + 6892: 20,-52 + 6904: 22,-54 + 6916: 24,-61 + 7079: 17,-40 + 7133: 12,-47 + 7155: 11,-48 + - node: + color: '#FFFFFFFF' + id: WarnCornerSmallNE + decals: + 854: -31,-7 + 1245: -33,-15 + 1289: -32,-21 + 1420: -36,-27 + 1546: -33,-42 + 1858: -7,-25 + 2347: -79,-53 + 2348: -80,-52 + 6424: -12,-58 + 6661: -5,-73 + 7032: 32,-53 + 7123: 29,-43 + - node: + color: '#FFFFFFFF' + id: WarnCornerSmallNW + decals: + 1152: -40,3 + 1197: -42,-9 + 1419: -29,-21 + 1865: -1,-25 + 2349: -82,-52 + 6369: -7,-58 + 6427: -14,-58 + 6640: 5,-70 + 6671: 5,-73 + 7524: -7,-58 + - node: + color: '#FFFFFFFF' + id: WarnCornerSmallSE + decals: + 1090: -44,12 + 1244: -33,-11 + 1545: -33,-37 + 1857: -7,-21 + 2159: -42,-35 + 2345: -80,-54 + 2346: -79,-53 + 4659: 4,38 + 6329: 2,-53 + 6420: -10,-59 + 6619: -5,-65 + 6699: 6,-75 + 7216: 32,-48 + - node: + color: '#FFFFFFFF' + id: WarnCornerSmallSW + decals: + 1174: -40,-5 + 1866: -1,-21 + 2128: -43,-43 + 2344: -82,-54 + 4660: 8,38 + 6370: -7,-59 + 6416: -12,-59 + 6629: 5,-65 + 6639: 5,-70 + 6683: -6,-75 + 6902: 22,-52 + 7523: -7,-59 + - node: + color: '#FFFFFFFF' + id: WarnEndE + decals: + 1656: -23,-19 + 2335: -77,-53 + 5906: 6,-29 + 6853: 22,-50 + 7531: -2,-70 + - node: + color: '#FFFFFFFF' + id: WarnEndN + decals: + 1136: -37,-3 + 1140: -37,3 + 5120: -5,77 + - node: + color: '#FFFFFFFF' + id: WarnEndS + decals: + 1135: -37,-5 + 1141: -37,-1 + 2087: -3,-27 + 4657: 4,37 + 4658: 8,37 + 5121: -5,76 + - node: + color: '#FFFFFFFF' + id: WarnEndW + decals: + 1439: -29,-28 + 1655: -24,-19 + 2270: -44,-53 + 5905: 5,-29 + 6854: 20,-50 + - node: + color: '#FFFFFFFF' + id: WarnFull + decals: + 1019: -32,11 + 1020: -32,12 + 1206: -39,-7 + 1279: -32,-14 + 1280: -32,-13 + 1281: -31,-20 + 1282: -30,-20 + 1375: -50,-27 + 1551: -32,-40 + 1552: -32,-39 + 1553: -32,-38 + 1859: -2,-23 + 1860: -2,-22 + 1861: -2,-24 + 2160: -41,-37 + 2161: -41,-36 + 7033: 33,-49 + 7034: 33,-50 + 7035: 33,-51 + 7036: 33,-52 + - node: + color: '#FFFFFFFF' + id: WarnLineE + decals: + 32: -3,-1 + 33: -3,0 + 34: -3,1 + 35: -3,2 + 507: 4,16 + 508: 4,15 + 509: 4,14 + 510: 4,13 + 850: -31,-6 + 851: -31,-5 + 852: -31,-4 + 853: -31,-3 + 1021: -33,10 + 1022: -33,11 + 1023: -33,12 + 1091: -44,11 + 1092: -44,10 + 1093: -44,9 + 1137: -37,-4 + 1145: -37,2 + 1146: -37,1 + 1147: -37,0 + 1201: -39,-12 + 1202: -39,-11 + 1203: -39,-10 + 1204: -39,-9 + 1205: -39,-8 + 1241: -33,-14 + 1242: -33,-13 + 1243: -33,-12 + 1263: -33,15 + 1269: -35,15 + 1431: -34,-29 + 1438: -36,-34 + 1547: -33,-41 + 1548: -33,-40 + 1549: -33,-39 + 1550: -33,-38 + 1661: -21,-22 + 1662: -21,-23 + 1663: -21,-24 + 1813: -23,-34 + 1814: -23,-32 + 1815: -23,-33 + 1816: -23,-31 + 1817: -21,-34 + 1818: -21,-33 + 1820: -20,-33 + 1850: -7,-24 + 1851: -7,-23 + 1852: -7,-22 + 2153: -43,-30 + 2154: -43,-31 + 2157: -42,-37 + 2158: -42,-36 + 2188: -36,-47 + 2194: -36,-48 + 2240: -32,-52 + 2241: -32,-51 + 2242: -32,-50 + 2276: -27,-49 + 2277: -27,-48 + 2278: -27,-47 + 3162: 35,16 + 3174: 32,19 + 3175: 32,20 + 3181: 30,16 + 3439: 46,32 + 3444: 46,39 + 3569: 30,15 + 3570: 30,14 + 3571: 30,17 + 3572: 30,13 + 4311: -13,38 + 4312: -13,39 + 4313: -13,40 + 4414: -40,29 + 4415: -40,28 + 4675: 8,38 + 4784: 13,46 + 4785: 13,47 + 4786: 11,46 + 4787: 11,47 + 5087: 6,80 + 5088: 6,79 + 5089: 6,78 + 5090: 6,77 + 5091: 6,76 + 5092: 6,75 + 5093: 6,74 + 5129: -5,74 + 5130: -5,75 + 5131: -5,78 + 5132: -5,79 + 5133: -5,80 + 5134: -8,79 + 5179: 14,-17 + 5180: 14,-16 + 5181: 14,-15 + 5182: 14,-14 + 5610: 11,-24 + 5611: 11,-25 + 5612: 11,-25 + 5613: 11,-26 + 6324: 2,-56 + 6325: 2,-55 + 6326: 2,-54 + 6332: 2,-60 + 6357: -1,-59 + 6358: -1,-58 + 6421: -10,-60 + 6425: -12,-57 + 6616: -5,-68 + 6617: -5,-67 + 6618: -5,-66 + 6649: 8,-70 + 6658: -5,-70 + 6660: -5,-72 + 6698: 6,-76 + 6909: 27,-53 + 6910: 27,-52 + 6919: 30,-60 + 6920: 30,-59 + 6921: 30,-58 + 6922: 30,-57 + 6923: 30,-56 + 7037: 32,-49 + 7038: 32,-50 + 7039: 32,-51 + 7040: 32,-52 + 7116: 31,-47 + 7117: 31,-46 + 7118: 31,-45 + 7119: 31,-44 + 7156: 14,-46 + 7157: 14,-45 + 7159: 14,-44 + 7520: -1,-58 + 7521: -1,-59 + - node: + color: '#FFFFFFFF' + id: WarnLineGreyscaleE + decals: + 4347: -27,40 + 4348: -27,39 + 4349: -27,38 + - node: + color: '#FFFFFFFF' + id: WarnLineGreyscaleW + decals: + 4344: -21,38 + 4345: -21,39 + 4346: -21,40 + - node: + color: '#FFFFFFFF' + id: WarnLineN + decals: + 36: 2,4 + 37: 1,4 + 38: 0,4 + 39: -1,4 + 512: 10,19 + 897: -28,8 + 898: -29,8 + 1087: -41,12 + 1088: -42,12 + 1089: -43,12 + 1171: -41,-5 + 1172: -42,-5 + 1173: -43,-5 + 1198: -41,-13 + 1199: -40,-13 + 1207: -43,-13 + 1208: -44,-13 + 1209: -45,-13 + 1262: -34,14 + 1268: -34,16 + 1664: -22,-25 + 1665: -23,-25 + 1666: -24,-25 + 1679: -22,-17 + 1680: -23,-17 + 1681: -24,-17 + 1682: -25,-17 + 1853: -6,-21 + 1854: -5,-21 + 1855: -4,-21 + 1856: -3,-21 + 2195: -37,-49 + 2196: -38,-49 + 2271: -43,-53 + 2272: -42,-53 + 2351: -81,-55 + 2354: -78,-53 + 3177: 35,19 + 3869: 40,-10 + 3870: 39,-10 + 3871: 38,-10 + 3872: 37,-10 + 3873: 36,-10 + 3874: 35,-10 + 3884: 46,-13 + 3885: 46,-7 + 3886: 46,-5 + 3913: 46,-15 + 4104: -13,22 + 4105: -12,22 + 4106: -10,22 + 4107: -9,22 + 4108: -8,22 + 4109: -7,22 + 4110: -6,22 + 4111: -4,22 + 4112: -3,22 + 4363: -31,36 + 4364: -30,36 + 4365: -29,36 + 4366: -27,36 + 4467: -40,24 + 4468: -41,24 + 4469: -42,24 + 4470: -43,24 + 4655: 5,35 + 4656: 4,35 + 4677: 4,44 + 4678: 5,44 + 4679: 6,44 + 4680: 7,44 + 4681: 8,44 + 5026: 2,52 + 5027: 1,52 + 5028: 0,52 + 5029: -1,52 + 5034: 2,58 + 5035: -1,58 + 5038: 3,72 + 5039: 2,72 + 5040: 1,72 + 5041: 0,72 + 5042: -1,72 + 5304: 34,-15 + 5305: 33,-15 + 5306: 32,-15 + 5307: 31,-15 + 5308: 30,-15 + 5309: 29,-15 + 5310: 28,-15 + 5381: 47,-33 + 5607: 8,-22 + 5608: 7,-22 + 5609: 6,-22 + 6191: 3,-45 + 6192: 0,-45 + 6193: -1,-45 + 6198: -1,-49 + 6199: -2,-49 + 6327: 4,-53 + 6328: 3,-53 + 6351: -8,-59 + 6352: -6,-60 + 6353: -5,-60 + 6354: -4,-60 + 6355: -3,-60 + 6356: -2,-60 + 6413: -15,-59 + 6414: -14,-59 + 6415: -13,-59 + 6418: -9,-59 + 6432: -15,-56 + 6433: -14,-56 + 6434: -13,-56 + 6435: -12,-56 + 6436: -11,-56 + 6437: -10,-56 + 6438: -21,-60 + 6439: -20,-60 + 6440: -19,-60 + 6441: -18,-60 + 6540: 14,-67 + 6541: 13,-67 + 6542: 12,-67 + 6543: 11,-67 + 6544: 10,-67 + 6620: -4,-65 + 6621: -3,-65 + 6622: -2,-65 + 6623: -1,-65 + 6624: 0,-65 + 6625: 1,-65 + 6626: 2,-65 + 6627: 3,-65 + 6628: 4,-65 + 6636: 4,-70 + 6637: 3,-70 + 6638: 2,-70 + 6647: 6,-71 + 6648: 7,-71 + 6654: -7,-71 + 6655: -6,-71 + 6673: 0,-74 + 6686: -5,-77 + 6687: -4,-77 + 6688: -3,-77 + 6689: -2,-77 + 6690: -1,-77 + 6691: 0,-77 + 6692: 1,-77 + 6693: 2,-77 + 6694: 3,-77 + 6695: 4,-77 + 6696: 5,-77 + 6855: 21,-50 + 6901: 21,-52 + 6905: 23,-54 + 6906: 25,-54 + 6907: 26,-54 + 6917: 27,-61 + 6918: 29,-61 + 7070: 34,-42 + 7071: 35,-42 + 7072: 36,-42 + 7080: 18,-40 + 7081: 19,-40 + 7082: 20,-40 + 7083: 22,-40 + 7084: 23,-40 + 7085: 24,-40 + 7086: 25,-40 + 7087: 26,-40 + 7088: 27,-40 + 7089: 28,-40 + 7097: 12,-48 + 7098: 14,-48 + 7099: 15,-48 + 7100: 16,-48 + 7101: 17,-48 + 7102: 18,-48 + 7103: 19,-48 + 7104: 20,-48 + 7105: 21,-48 + 7106: 22,-48 + 7107: 23,-48 + 7108: 24,-48 + 7109: 25,-48 + 7110: 26,-48 + 7111: 27,-48 + 7112: 28,-48 + 7113: 29,-48 + 7114: 30,-48 + 7158: 13,-48 + 7168: 13,-47 + 7329: 24,-54 + 7332: 25,-61 + 7333: 26,-61 + 7334: 28,-61 + 7522: -4,-60 + 7532: -3,-70 + 7533: -4,-70 + - node: + color: '#FFFFFFFF' + id: WarnLineS + decals: + 40: 4,2 + 41: 4,1 + 42: 4,0 + 43: 4,-1 + 456: -10,4 + 457: -10,5 + 857: -24,-7 + 1138: -37,-4 + 1142: -37,0 + 1143: -37,1 + 1144: -37,2 + 1148: -40,4 + 1170: -40,-6 + 1265: -35,15 + 1266: -33,15 + 1372: -49,-28 + 1373: -49,-27 + 1374: -49,-26 + 1432: -35,-29 + 1667: -25,-24 + 1668: -25,-23 + 1669: -25,-22 + 1812: -21,-31 + 1821: -20,-33 + 1822: -19,-34 + 1823: -19,-33 + 1824: -19,-32 + 1825: -19,-31 + 1862: -1,-22 + 1863: -1,-23 + 1864: -1,-24 + 2127: -43,-44 + 2155: -45,-30 + 2156: -45,-31 + 2233: -33,-52 + 2234: -33,-51 + 2235: -33,-50 + 2352: -83,-53 + 3163: 34,16 + 3166: 38,15 + 3167: 38,16 + 3179: 34,20 + 3440: 46,32 + 3443: 46,39 + 4308: -18,38 + 4309: -18,39 + 4310: -18,40 + 4368: -29,37 + 4369: -29,38 + 4370: -29,39 + 4652: 8,35 + 4653: 8,34 + 4676: 4,38 + 4782: 13,46 + 4783: 13,47 + 5080: 7,74 + 5081: 7,75 + 5082: 7,76 + 5083: 7,77 + 5084: 7,78 + 5085: 7,79 + 5086: 7,80 + 5122: -4,74 + 5123: -4,75 + 5124: -4,76 + 5125: -4,78 + 5126: -4,79 + 5127: -4,80 + 5128: -4,77 + 5183: 18,-17 + 5184: 18,-16 + 5185: 18,-15 + 5186: 18,-14 + 5379: 46,-32 + 5614: 11,-26 + 5615: 11,-25 + 5616: 11,-24 + 6372: 0,-60 + 6373: 0,-61 + 6409: -16,-62 + 6410: -16,-61 + 6411: -16,-60 + 6417: -12,-60 + 6426: -14,-57 + 6430: -16,-57 + 6630: 5,-66 + 6631: 5,-67 + 6632: 5,-68 + 6659: -8,-70 + 6672: 5,-72 + 6684: -6,-76 + 6903: 22,-53 + 6912: 24,-56 + 6913: 24,-57 + 6914: 24,-58 + 6915: 24,-60 + 7160: 11,-47 + 7161: 11,-46 + 7162: 11,-45 + 7163: 11,-44 + 7164: 11,-43 + 7165: 12,-44 + 7166: 12,-45 + 7167: 12,-46 + 7322: 24,-59 + 7548: 5,-70 + - node: + color: '#FFFFFFFF' + id: WarnLineW + decals: + 28: -1,-3 + 29: 0,-3 + 30: 1,-3 + 31: 2,-3 + 843: -29,-4 + 844: -28,-4 + 845: -27,-4 + 846: -26,-4 + 847: -25,-4 + 848: -24,-4 + 849: -30,-7 + 1149: -41,3 + 1150: -42,3 + 1151: -43,3 + 1192: -44,-10 + 1193: -43,-10 + 1194: -45,-9 + 1195: -44,-9 + 1196: -43,-9 + 1264: -34,16 + 1267: -34,14 + 1287: -31,-21 + 1288: -30,-21 + 1421: -35,-27 + 1422: -34,-27 + 1423: -33,-27 + 1670: -24,-21 + 1671: -23,-21 + 1672: -22,-21 + 1846: -3,-25 + 1847: -4,-25 + 1848: -5,-25 + 1849: -6,-25 + 2189: -37,-46 + 2190: -38,-46 + 2273: -43,-53 + 2274: -42,-53 + 2350: -81,-51 + 2353: -78,-53 + 3170: 35,13 + 3171: 34,13 + 3172: 33,13 + 3433: 28,41 + 3434: 29,41 + 3435: 30,41 + 3436: 43,26 + 3875: 35,-7 + 3876: 36,-7 + 3877: 37,-7 + 3878: 38,-7 + 3879: 39,-7 + 3880: 40,-7 + 3881: 46,-5 + 3882: 46,-7 + 3883: 46,-13 + 3912: 46,-15 + 4073: -3,20 + 4074: -4,20 + 4075: -5,20 + 4076: -6,20 + 4077: -7,20 + 4078: -8,20 + 4079: -9,20 + 4080: -10,20 + 4081: -11,20 + 4082: -12,20 + 4083: -13,20 + 4084: -14,20 + 4145: -13,26 + 4146: -12,26 + 4147: -10,26 + 4148: -9,26 + 4149: -6,26 + 4150: -4,26 + 4151: -3,26 + 4153: -8,26 + 4154: -7,26 + 4168: -20,26 + 4169: -21,26 + 4357: -29,32 + 4358: -30,32 + 4359: -31,32 + 4360: -31,36 + 4361: -30,36 + 4362: -29,36 + 4416: -41,30 + 4417: -42,30 + 4418: -43,30 + 5024: -1,53 + 5025: 2,53 + 5043: -1,69 + 5044: 0,69 + 5045: 1,69 + 5046: 2,69 + 5047: 3,69 + 5094: -1,82 + 5095: 0,82 + 5096: 1,82 + 5097: 2,82 + 5098: 3,82 + 5380: 47,-31 + 5600: 6,-28 + 5601: 7,-28 + 5602: 8,-28 + 6200: -2,-48 + 6201: -1,-48 + 6359: -2,-57 + 6360: -3,-57 + 6361: -4,-57 + 6362: -5,-57 + 6363: -6,-57 + 6364: -8,-58 + 6419: -9,-58 + 6422: -10,-58 + 6423: -11,-58 + 6428: -15,-58 + 6442: -18,-62 + 6443: -19,-62 + 6444: -20,-62 + 6445: -21,-62 + 6545: 14,-66 + 6546: 13,-66 + 6547: 12,-66 + 6548: 11,-66 + 6549: 10,-66 + 6633: 4,-70 + 6634: 3,-70 + 6635: 2,-70 + 6645: 7,-69 + 6646: 6,-69 + 6656: -6,-69 + 6657: -7,-69 + 6662: -4,-73 + 6663: -3,-73 + 6664: -2,-73 + 6665: 0,-73 + 6668: 2,-73 + 6669: 3,-73 + 6670: 4,-73 + 6676: -2,-74 + 6677: -3,-74 + 6678: -4,-74 + 6679: -5,-74 + 6680: -6,-74 + 6702: 6,-74 + 6703: 5,-74 + 6704: 4,-74 + 6705: 3,-74 + 6706: 2,-74 + 6856: 21,-50 + 6895: 21,-51 + 6896: 22,-51 + 6897: 24,-51 + 6898: 23,-51 + 6899: 25,-51 + 6900: 26,-51 + 6924: 27,-55 + 6925: 26,-55 + 6926: 25,-55 + 7074: 35,-47 + 7075: 34,-47 + 7122: 30,-43 + 7135: 28,-42 + 7136: 27,-42 + 7137: 26,-42 + 7138: 25,-42 + 7139: 24,-42 + 7140: 23,-42 + 7141: 22,-42 + 7143: 20,-42 + 7144: 21,-42 + 7146: 19,-42 + 7147: 18,-42 + 7148: 17,-42 + 7149: 16,-42 + 7150: 15,-42 + 7151: 14,-42 + 7152: 13,-42 + 7153: 12,-42 + 7169: 13,-43 + 7175: 14,-49 + 7176: 13,-49 + 7177: 12,-49 + 7178: 12,-49 + 7179: 10,-49 + 7323: 28,-55 + 7324: 29,-55 + 7512: -7,-57 + 7513: -6,-57 + 7514: -5,-57 + 7515: -4,-57 + 7516: -3,-57 + 7517: -2,-57 + 7529: -4,-70 + 7530: -3,-70 + - node: + color: '#FFFFFFFF' + id: WoodTrimThinCornerNe + decals: + 3196: 39,5 + 3199: 38,4 + 3200: 37,5 + - node: + color: '#FFFFFFFF' + id: WoodTrimThinCornerNw + decals: + 3206: 41,5 + 3431: 25,35 + - node: + color: '#FFFFFFFF' + id: WoodTrimThinCornerSw + decals: + 2885: 33,9 + - node: + color: '#FFFFFFFF' + id: WoodTrimThinEndS + decals: + 2884: 31,9 + 3195: 39,4 + - node: + color: '#FFFFFFFF' + id: WoodTrimThinEndW + decals: + 3194: 38,5 + - node: + color: '#FFFFFFFF' + id: WoodTrimThinInnerNe + decals: + 3201: 37,4 + 3202: 38,2 + 4781: 6,46 + - node: + color: '#FFFFFFFF' + id: WoodTrimThinInnerNw + decals: + 3205: 41,2 + 3207: 43,5 + 4780: 9,46 + - node: + color: '#FFFFFFFF' + id: WoodTrimThinInnerSw + decals: + 3197: 39,5 + - node: + color: '#FFFFFFFF' + id: WoodTrimThinLineE + decals: + 3198: 38,3 + 4776: 6,47 + 4777: 6,48 + 4778: 6,49 + 4779: 6,50 + - node: + color: '#FFFFFFFF' + id: WoodTrimThinLineN + decals: + 3203: 39,2 + 3204: 40,2 + 3208: 42,5 + 3432: 26,35 + 4774: 8,46 + 4775: 7,46 + - node: + color: '#FFFFFFFF' + id: WoodTrimThinLineS + decals: + 2886: 34,9 + 2887: 35,9 + 4763: -3,54 + 4764: -4,54 + 4765: -5,54 + 4766: -6,54 + 4767: -7,54 + 4768: -8,54 + 4769: -9,54 + 5358: 44,-22 + 5359: 43.996502,-21.948832 + 5360: 43.996502,-21.99856 + 5361: 43.996502,-21.973696 + - node: + color: '#FFFFFFFF' + id: WoodTrimThinLineW + decals: + 2882: 31,11 + 2883: 31,10 + 3209: 41,3 + 3210: 41,4 + 3211: 43,6 + 3212: 43,7 + 3213: 43,8 + 3214: 43,9 + 4770: 9,50 + 4771: 9,49 + 4772: 9,48 + 4773: 9,47 + - node: + cleanable: True + color: '#FFFFFFFF' + id: clown + decals: + 7351: 4.776539,-35.340748 + - node: + cleanable: True + angle: 3.141592653589793 rad + color: '#FF00005A' + id: footprint + decals: + 5139: 12.790892,-10.743357 + - node: + cleanable: True + angle: -3.141592653589793 rad + color: '#FF0000C7' + id: footprint + decals: + 5927: 36.792473,-23.683962 + 5928: 37.137463,-23.28303 + 5929: 36.792473,-22.95669 + 5930: 37.146786,-22.70494 + 5931: 36.78315,-22.359953 + 5932: 37.165436,-22.07091 + 5933: 36.820446,-21.753893 + - node: + cleanable: True + angle: -1.5707963267948966 rad + color: '#FF0000C7' + id: footprint + decals: + 5916: 11.844839,-26.264587 + 5917: 11.6490345,-25.956896 + 5923: 3.9564643,-24.88426 + 5924: 4.4226646,-25.247896 + 5925: 4.8702173,-24.88426 + 5926: 5.205881,-25.25722 + - node: + cleanable: True + angle: 3.141592653589793 rad + color: '#FF0000C7' + id: footprint + decals: + 5918: 12.857773,-20.710676 + 5919: 13.156141,-21.074314 + 5920: 12.8204775,-21.465921 + 5921: 13.128169,-21.801586 + 5922: 12.8204775,-22.239815 + - node: + cleanable: True + angle: 3.141592653589793 rad + color: '#FF0000FF' + id: footprint + decals: + 5142: 12.800216,-9.782984 + 5143: 13.201148,-10.081352 + 5144: 12.800216,-10.333101 + - node: + color: '#FFFFFFFF' + id: rune1 + decals: + 458: -16,6 + 2805: 28,-7 + - node: + color: '#FFFFFFFF' + id: rune2 + decals: + 2806: 29,-7 + - node: + color: '#FFFFFFFF' + id: rune3 + decals: + 2807: 28,-8 + - node: + color: '#FFFFFFFF' + id: rune4 + decals: + 2808: 29,-8 + - node: + cleanable: True + angle: -4.71238898038469 rad + color: '#FF0000C7' + id: thinline + decals: + 5936: 9.984598,-26.331085 + - node: + cleanable: True + angle: -3.141592653589793 rad + color: '#FF0000C7' + id: thinline + decals: + 5934: 37.17476,-21.101212 + 5935: 36.811123,-21.063915 + - node: + cleanable: True + angle: -1.5707963267948966 rad + color: '#FF0000C7' + id: thinline + decals: + 5937: 10.031219,-25.930153 + - node: + cleanable: True + color: '#FF0000FF' + id: thinline + decals: + 5141: 13.210472,-9.009092 + - node: + cleanable: True + angle: 3.141592653589793 rad + color: '#FF0000FF' + id: thinline + decals: + 5140: 12.781568,-8.962471 + - type: GridAtmosphere + version: 2 + data: + tiles: + 0,0: + 0: 65535 + 0,-1: + 0: 65535 + -1,0: + 0: 65535 + 0,1: + 0: 65407 + -1,1: + 0: 65439 + 0,2: + 0: 65535 + -1,2: + 0: 65535 + 0,3: + 0: 29559 + -1,3: + 0: 46010 + 0,4: + 0: 32631 + 1,0: + 0: 65535 + 1,1: + 0: 65519 + 1,2: + 0: 14335 + 1,3: + 0: 62394 + 1,-1: + 0: 65535 + 1,4: + 0: 65535 + 2,0: + 0: 65535 + 2,1: + 0: 14335 + 2,2: + 0: 29119 + 2,3: + 0: 28279 + 2,-1: + 0: 65535 + 3,0: + 0: 35839 + 3,1: + 0: 47790 + 3,2: + 0: 64187 + 3,3: + 0: 15283 + 3,-1: + 0: 45166 + 3,4: + 0: 15354 + 4,0: + 0: 4095 + 4,1: + 0: 65485 + 4,2: + 0: 65535 + 4,3: + 0: 8191 + 0,-4: + 0: 14199 + 0,-5: + 0: 63351 + -1,-4: + 0: 15352 + 0,-3: + 0: 65399 + -1,-3: + 0: 65419 + 0,-2: + 0: 65535 + -1,-2: + 0: 65535 + -1,-1: + 0: 65535 + 1,-4: + 0: 30511 + 1,-3: + 0: 29447 + 1,-2: + 0: 65535 + 1,-5: + 0: 61567 + 2,-4: + 0: 63351 + 2,-3: + 0: 39928 + 2,-2: + 0: 29691 + 2,-5: + 0: 28919 + 3,-4: + 0: 12031 + 3,-3: + 0: 61182 + 3,-2: + 0: 24818 + 3,-5: + 0: 62071 + 4,-4: + 0: 12287 + 4,-3: + 0: 65535 + 4,-2: + 0: 56788 + 4,-1: + 0: 61919 + -4,-4: + 0: 65421 + -4,-5: + 0: 64907 + -5,-4: + 0: 63288 + -4,-3: + 0: 57297 + -5,-3: + 0: 65335 + -4,-2: + 0: 65520 + -5,-2: + 0: 56785 + -4,-1: + 0: 29183 + -5,-1: + 0: 61661 + -4,0: + 0: 6143 + -3,-4: + 0: 48034 + -3,-3: + 0: 32625 + -3,-2: + 0: 37745 + -3,-1: + 0: 64733 + -3,-5: + 0: 62702 + -3,0: + 0: 53247 + -2,-4: + 0: 49072 + -2,-3: + 0: 41785 + -2,-2: + 0: 65535 + -2,-1: + 0: 65535 + -2,-5: + 0: 65248 + -2,0: + 0: 65535 + -1,-5: + 0: 49080 + -5,0: + 0: 4095 + -4,1: + 0: 7647 + -5,1: + 0: 57309 + -4,2: + 0: 64988 + -5,2: + 0: 56785 + -4,3: + 0: 61133 + -5,3: + 0: 65293 + -4,4: + 0: 65294 + -3,1: + 0: 2525 + -3,2: + 0: 30591 + -3,3: + 0: 65399 + -3,4: + 0: 65359 + -2,1: + 0: 65535 + -2,2: + 0: 14591 + -2,3: + 0: 65155 + -2,4: + 0: 65294 + -1,4: + 0: 64395 + -8,0: + 0: 4095 + -8,-1: + 0: 62702 + -9,0: + 0: 61166 + -8,1: + 0: 61422 + -9,1: + 0: 65518 + -8,2: + 0: 61230 + -9,2: + 0: 65535 + -8,3: + 1: 4352 + 0: 49358 + -9,3: + 0: 61199 + 1: 4096 + -8,4: + 0: 53469 + -7,0: + 0: 4095 + -7,1: + 0: 64989 + -7,2: + 0: 63297 + -7,3: + 0: 53367 + -7,-1: + 0: 61695 + -7,4: + 0: 64735 + -6,0: + 0: 36863 + -6,1: + 0: 64989 + -6,2: + 0: 65532 + -6,3: + 0: 61071 + -6,-1: + 0: 63741 + -6,4: + 0: 56719 + -5,4: + 0: 64399 + -9,-4: + 0: 61166 + -8,-4: + 0: 61152 + -8,-3: + 0: 61679 + -9,-3: + 0: 65262 + -9,-2: + 0: 61166 + -8,-2: + 0: 61152 + -9,-1: + 0: 61166 + -8,-5: + 0: 61408 + -7,-4: + 0: 48048 + -7,-3: + 0: 63547 + -7,-2: + 0: 65521 + -7,-5: + 0: 49080 + -6,-4: + 0: 49080 + -6,-3: + 0: 65435 + -6,-2: + 0: 63672 + -6,-5: + 0: 65535 + -5,-5: + 0: 47900 + -4,5: + 0: 47919 + -5,5: + 0: 35771 + -4,6: + 0: 65338 + -5,6: + 0: 63931 + -4,7: + 0: 47615 + -5,7: + 0: 53759 + -4,8: + 0: 48063 + -3,5: + 0: 56591 + -3,6: + 0: 65309 + -3,7: + 0: 61695 + -3,8: + 0: 65535 + -2,5: + 0: 30479 + -2,6: + 0: 65303 + -2,7: + 0: 36607 + -2,8: + 0: 36863 + -1,5: + 0: 48011 + -1,6: + 0: 48043 + -1,7: + 0: 48059 + -1,8: + 0: 43962 + 0,5: + 0: 30711 + 0,6: + 0: 32631 + 0,7: + 0: 30583 + 0,8: + 0: 30583 + 1,5: + 0: 36848 + 1,6: + 0: 32767 + 1: 32768 + 1,7: + 0: 65520 + 1,8: + 0: 65295 + 2,4: + 0: 28512 + 2,5: + 0: 1776 + 2,6: + 0: 56797 + 2,7: + 0: 4368 + 2: 50368 + 2,8: + 0: 4353 + 2: 35908 + 3,5: + 0: 48059 + 3,6: + 0: 32627 + 3,7: + 2: 61936 + 4,4: + 0: 3003 + 4,5: + 0: 65535 + 4,6: + 0: 65522 + 4,-5: + 0: 61695 + 5,-4: + 0: 51679 + 5,-3: + 0: 56797 + 5,-2: + 0: 61428 + 5,-1: + 0: 63727 + 5,-5: + 0: 39133 + 1: 1024 + 5,0: + 0: 4095 + 6,-4: + 0: 26239 + 6,-3: + 0: 62748 + 6,-2: + 0: 45980 + 6,-1: + 0: 63679 + 6,0: + 0: 4095 + 7,-4: + 0: 28927 + 7,-3: + 0: 28799 + 7,-2: + 0: 28799 + 7,-1: + 0: 62071 + 7,-5: + 0: 65535 + 7,0: + 0: 32767 + 8,-4: + 0: 61559 + 8,-3: + 0: 65535 + 8,-2: + 0: 65535 + 8,-1: + 0: 64767 + 5,1: + 0: 65535 + 5,2: + 0: 65535 + 5,3: + 0: 36859 + 5,4: + 0: 61439 + 6,1: + 0: 65527 + 6,2: + 0: 65535 + 6,3: + 0: 3955 + 6,4: + 0: 30583 + 7,1: + 0: 65527 + 7,2: + 0: 65535 + 7,3: + 0: 65399 + 7,4: + 0: 30591 + 8,0: + 0: 4095 + 8,1: + 0: 65535 + 8,2: + 0: 65535 + 8,3: + 0: 65520 + 0,-8: + 0: 30583 + 0,-9: + 0: 30591 + -1,-8: + 0: 47295 + 0,-7: + 0: 65399 + -1,-7: + 0: 47295 + 0,-6: + 0: 30591 + -1,-6: + 0: 48063 + 1,-8: + 0: 61439 + 1,-7: + 0: 65535 + 1,-6: + 0: 12287 + 1,-9: + 0: 62207 + 2,-8: + 0: 2047 + 2,-7: + 0: 65399 + 2,-6: + 0: 14207 + 2,-9: + 0: 28895 + 3,-8: + 0: 63351 + 3,-7: + 0: 65535 + 3,-6: + 0: 30719 + 3,-9: + 0: 29183 + 4,-8: + 0: 65279 + 4,-7: + 0: 65535 + 4,-6: + 0: 62719 + -4,-8: + 2: 34 + 0: 61576 + -5,-8: + 0: 61678 + -4,-7: + 0: 45311 + -5,-7: + 0: 55551 + -4,-6: + 0: 14523 + -5,-6: + 0: 55773 + -4,-9: + 2: 8704 + 0: 32909 + -3,-8: + 0: 61627 + -3,-7: + 0: 62207 + -3,-6: + 0: 4095 + -3,-9: + 0: 47423 + -2,-8: + 0: 29183 + -2,-7: + 0: 57471 + -2,-9: + 0: 65371 + -2,-6: + 0: 61166 + -1,-9: + 0: 48011 + -8,-8: + 0: 20479 + -8,-9: + 0: 62702 + -9,-8: + 0: 65535 + -8,-7: + 0: 62702 + -9,-7: + 0: 61183 + -8,-6: + 0: 65535 + -9,-6: + 0: 61182 + -9,-5: + 0: 61167 + -7,-8: + 0: 61439 + -7,-6: + 0: 61438 + -7,-9: + 0: 40157 + -7,-7: + 0: 57582 + -6,-8: + 0: 62702 + -6,-7: + 0: 62207 + -6,-6: + 0: 65535 + -6,-9: + 0: 61005 + -5,-9: + 0: 65037 + -12,-4: + 0: 34831 + -12,-5: + 0: 65535 + -13,-4: + 0: 8 + -12,-3: + 0: 34828 + -12,-2: + 0: 34824 + -12,-1: + 0: 3208 + -12,0: + 0: 34956 + -11,-4: + 0: 47887 + -11,-3: + 0: 65423 + -11,-2: + 0: 61195 + -11,-1: + 0: 61422 + -11,-5: + 0: 65535 + -11,0: + 0: 61167 + -10,-4: + 0: 65358 + -10,-3: + 0: 65535 + -10,-2: + 0: 65343 + -10,-1: + 0: 65535 + -10,0: + 0: 65535 + -10,-5: + 0: 61182 + -12,2: + 2: 13056 + 0: 34952 + -13,2: + 2: 65392 + -12,3: + 2: 4371 + 0: 34824 + -13,3: + 2: 52991 + -12,4: + 2: 16435 + 0: 2184 + -12,1: + 0: 34952 + -11,1: + 0: 65295 + -11,2: + 0: 65535 + -11,3: + 0: 32655 + -11,4: + 0: 57599 + -10,1: + 0: 65327 + -10,2: + 0: 32767 + -10,3: + 0: 26127 + -10,4: + 0: 61542 + -9,4: + 0: 53471 + 3: 32 + -13,4: + 2: 252 + -12,7: + 2: 64768 + -13,7: + 2: 60416 + -12,8: + 2: 65535 + -11,5: + 0: 3982 + -11,6: + 0: 4078 + -11,7: + 0: 61166 + -11,8: + 0: 61166 + -10,5: + 0: 53247 + -10,6: + 0: 36829 + -10,7: + 0: 7677 + -10,8: + 0: 65535 + -9,5: + 0: 53725 + -9,6: + 0: 3551 + -9,7: + 0: 3581 + -9,8: + 0: 61679 + -8,5: + 0: 28895 + -8,6: + 0: 1911 + -8,7: + 0: 4095 + -8,8: + 0: 61166 + -7,5: + 0: 53759 + -7,6: + 0: 53725 + -7,7: + 0: 36863 + -7,8: + 0: 64443 + -6,5: + 0: 7389 + -6,6: + 0: 63965 + -6,7: + 0: 46079 + -6,8: + 0: 48059 + -5,8: + 0: 56799 + -12,-8: + 0: 4095 + -12,-9: + 0: 64764 + -12,-7: + 0: 3838 + -13,-7: + 0: 2248 + -12,-6: + 0: 65535 + -13,-6: + 0: 34952 + -13,-5: + 0: 34952 + -11,-8: + 0: 2039 + -11,-7: + 0: 3838 + -11,-6: + 0: 65535 + -11,-9: + 0: 30583 + -10,-8: + 0: 48051 + -10,-7: + 0: 58299 + -10,-9: + 0: 65319 + -10,-6: + 0: 58606 + -9,-9: + 0: 65518 + -13,-9: + 0: 128 + -12,-10: + 0: 49288 + -12,-12: + 2: 1092 + -12,-13: + 2: 18295 + -12,-11: + 0: 34828 + -11,-12: + 0: 2039 + -11,-11: + 0: 32751 + -11,-10: + 0: 29559 + -10,-12: + 0: 3581 + -10,-11: + 0: 4095 + -10,-10: + 0: 32631 + -10,-13: + 0: 53247 + -9,-12: + 0: 20479 + -9,-11: + 0: 61183 + -9,-10: + 0: 65535 + -9,-13: + 0: 65535 + -8,-12: + 0: 49599 + -8,-11: + 0: 65039 + -8,-13: + 0: 45533 + -8,-10: + 0: 3822 + -7,-12: + 0: 61695 + -7,-11: + 0: 4367 + 2: 3072 + -7,-10: + 0: 52701 + -7,-13: + 0: 61695 + -6,-12: + 0: 64733 + -6,-11: + 0: 36047 + 2: 256 + -6,-10: + 0: 56797 + -6,-13: + 0: 56574 + -5,-12: + 0: 56797 + -5,-11: + 0: 52701 + -5,-10: + 0: 56797 + -5,-13: + 0: 56607 + -4,-12: + 0: 57309 + -4,-11: + 0: 56829 + -4,-10: + 0: 64991 + -4,-13: + 0: 64911 + -3,-12: + 0: 47899 + -3,-11: + 0: 48123 + -3,-10: + 0: 65307 + -3,-13: + 0: 64263 + -2,-12: + 0: 48009 + -2,-11: + 0: 46011 + -2,-10: + 0: 47883 + -2,-13: + 0: 54607 + -1,-12: + 0: 65278 + -1,-11: + 0: 47352 + -1,-10: + 0: 64395 + -1,-13: + 0: 57535 + 0,-12: + 0: 65521 + 0,-11: + 0: 65393 + 0,-10: + 0: 30583 + -4,-16: + 2: 15 + 0: 65280 + -4,-17: + 2: 65535 + -5,-16: + 0: 65399 + -4,-15: + 0: 65535 + -5,-15: + 0: 65535 + -4,-14: + 0: 65311 + -5,-14: + 0: 56591 + -3,-16: + 2: 7 + 0: 9760 + -3,-15: + 0: 32759 + -3,-14: + 0: 63239 + -3,-17: + 2: 30583 + -2,-16: + 0: 61695 + -2,-15: + 0: 65535 + -2,-14: + 0: 30543 + -2,-17: + 0: 65535 + -1,-16: + 0: 61951 + -1,-15: + 0: 65535 + -1,-14: + 0: 47887 + -1,-17: + 0: 62384 + 0,-16: + 0: 55551 + 0,-15: + 0: 57309 + 0,-14: + 0: 56781 + 0,-13: + 0: 56529 + -8,-16: + 0: 30719 + -8,-17: + 0: 61440 + 2: 119 + -9,-16: + 0: 47295 + -8,-15: + 0: 35827 + -9,-15: + 0: 28863 + -8,-14: + 0: 55551 + -9,-14: + 0: 61567 + -7,-16: + 0: 48639 + -7,-15: + 0: 24767 + -7,-14: + 0: 62062 + -7,-17: + 0: 61559 + -6,-16: + 0: 47547 + -6,-15: + 0: 47291 + -6,-14: + 0: 59451 + -6,-17: + 0: 12339 + -12,-16: + 2: 12071 + -12,-17: + 2: 30579 + -13,-16: + 2: 12071 + -12,-15: + 2: 30583 + -12,-14: + 2: 2035 + -13,-14: + 2: 20351 + -13,-13: + 2: 2287 + -11,-16: + 2: 44975 + -11,-14: + 2: 255 + 0: 28672 + -11,-13: + 0: 2036 + -11,-17: + 2: 63351 + -11,-15: + 2: 65535 + -10,-16: + 2: 13107 + 0: 32904 + -10,-15: + 2: 29491 + 0: 136 + -10,-14: + 2: 17 + 0: 61664 + -10,-17: + 2: 13039 + 0: 32768 + -9,-17: + 0: 45056 + 2: 255 + -16,-14: + 2: 3840 + -17,-14: + 2: 36744 + -16,-13: + 2: 15 + -17,-13: + 2: 2191 + -15,-14: + 2: 7936 + -15,-13: + 2: 15 + -15,-16: + 2: 2048 + -14,-16: + 2: 12071 + -14,-14: + 2: 12194 + -14,-13: + 2: 559 + -14,-17: + 2: 30671 + -14,-15: + 2: 1911 + -13,-17: + 2: 30526 + -13,-15: + 2: 1911 + -20,-15: + 2: 48240 + -21,-15: + 2: 59896 + -20,-14: + 0: 62224 + 2: 132 + -21,-14: + 0: 61120 + 2: 1 + -20,-13: + 0: 19 + 2: 46208 + -21,-13: + 0: 206 + 2: 57600 + -19,-15: + 2: 4096 + -20,-12: + 2: 124 + -19,-13: + 2: 4910 + -19,-14: + 2: 11811 + -18,-14: + 2: 20292 + -18,-13: + 2: 1103 + -17,-15: + 2: 32768 + -22,-14: + 2: 64166 + -22,-13: + 2: 50858 + -22,-15: + 2: 51200 + -22,-12: + 2: 8 + -21,-12: + 2: 2297 + -14,-18: + 2: 32768 + -13,-18: + 2: 63616 + -12,-18: + 2: 32720 + -11,-18: + 2: 60400 + -10,-18: + 2: 65535 + -9,-18: + 2: 65529 + -8,-18: + 2: 32767 + -8,-19: + 2: 61440 + -7,-19: + 2: 65024 + -7,-18: + 2: 1023 + -6,-19: + 2: 4096 + -6,-18: + 2: 49 + 0: 12288 + -5,-18: + 2: 34952 + -4,-18: + 2: 65535 + -5,-17: + 2: 2184 + 8,-5: + 0: 30583 + 9,-4: + 0: 62071 + 9,-3: + 0: 28671 + 9,-2: + 0: 65526 + 9,-1: + 0: 53503 + 9,-5: + 0: 63351 + 9,0: + 0: 52701 + 10,-4: + 0: 61627 + 10,-3: + 0: 65535 + 10,-2: + 0: 65535 + 10,-1: + 0: 56351 + 10,-5: + 0: 48048 + 10,0: + 0: 65309 + 11,-4: + 0: 61937 + 11,-3: + 0: 4369 + 2: 17472 + 11,-2: + 0: 61937 + 11,-1: + 0: 4353 + 11,-5: + 0: 30576 + 11,0: + 0: 1 + 8,4: + 0: 65535 + 9,1: + 0: 65262 + 9,3: + 0: 30582 + 9,2: + 0: 3822 + 9,4: + 0: 32631 + 10,1: + 0: 65535 + 10,2: + 0: 10239 + 10,3: + 0: 32639 + 1: 32896 + 11,1: + 2: 8192 + 11,2: + 2: 61158 + 11,3: + 2: 61102 + 11,4: + 2: 8430 + 12,2: + 2: 65520 + 12,3: + 2: 65531 + 4,-9: + 0: 61681 + 5,-8: + 0: 61695 + 5,-7: + 0: 65519 + 5,-6: + 0: 53503 + 5,-9: + 0: 62716 + 6,-7: + 0: 65486 + 6,-6: + 0: 30255 + 6,-5: + 0: 1655 + 4: 256 + 6,-8: + 0: 61166 + 6,-9: + 0: 59647 + 7,-8: + 0: 56829 + 7,-7: + 0: 65293 + 7,-6: + 0: 65487 + 7,-9: + 0: 7396 + 8,-8: + 0: 56797 + 8,-7: + 0: 65421 + 8,-6: + 0: 30495 + 4,7: + 0: 61152 + 4,8: + 0: 43246 + 5,6: + 0: 65530 + 5,7: + 0: 65520 + 5,5: + 5: 61152 + 0: 4 + 5,8: + 0: 46079 + 6,5: + 5: 30576 + 6,6: + 0: 32624 + 6,7: + 0: 64432 + 6,8: + 0: 28859 + 7,5: + 0: 63271 + 7,6: + 0: 65399 + 7,7: + 0: 32767 + 7,8: + 0: 63351 + 8,5: + 0: 30471 + 8,6: + 0: 65287 + 8,7: + 0: 4095 + 8,8: + 0: 65535 + 9,5: + 0: 32752 + 9,6: + 0: 65359 + 9,7: + 0: 4095 + 9,8: + 0: 65535 + 10,4: + 0: 65520 + 10,5: + 0: 52692 + 10,6: + 0: 64909 + 10,7: + 0: 52735 + 10,8: + 0: 64989 + 11,5: + 0: 62544 + 11,6: + 0: 4358 + 11,7: + 0: 4369 + 11,8: + 0: 4383 + 12,4: + 2: 61183 + 12,5: + 0: 12288 + 2: 52462 + 12,6: + 2: 4 + 13,4: + 2: 3311 + 13,5: + 2: 65280 + 13,3: + 2: 65519 + 13,6: + 2: 12 + 14,4: + 2: 32759 + 14,5: + 2: 63351 + 14,6: + 2: 26231 + 14,3: + 2: 65535 + 14,7: + 2: 58982 + 14,8: + 2: 61166 + 15,4: + 2: 30576 + 15,5: + 2: 62071 + 15,7: + 2: 65399 + 15,6: + 2: 30578 + 15,8: + 2: 14207 + 16,5: + 2: 62071 + 16,7: + 2: 65479 + 13,2: + 2: 28928 + 15,3: + 2: 65329 + 16,3: + 2: 61696 + 16,4: + 2: 30479 + 16,6: + 2: 30578 + 17,4: + 2: 28927 + 17,5: + 2: 62071 + 17,7: + 2: 4092 + 17,3: + 2: 4096 + 17,6: + 2: 30578 + 18,4: + 2: 28784 + 18,5: + 2: 62071 + 18,7: + 2: 371 + 18,6: + 2: 30578 + 12,11: + 2: 65527 + 11,11: + 2: 52428 + 0: 273 + 13,11: + 2: 8176 + 14,11: + 2: 311 + 14,9: + 2: 61166 + 14,10: + 2: 26222 + 15,9: + 2: 4915 + 15,10: + 2: 1 + 3,8: + 0: 57504 + 3,9: + 0: 61006 + 4,9: + 0: 64424 + 4,10: + 0: 65035 + 3,10: + 0: 61070 + 4,11: + 0: 206 + 2: 20736 + 3,11: + 0: 29198 + 2: 34816 + 4,12: + 2: 57343 + 5,9: + 0: 47931 + 5,10: + 0: 65291 + 5,11: + 0: 383 + 2: 49152 + 5,12: + 2: 61166 + 6,9: + 0: 63247 + 6,10: + 0: 7 + 2: 26112 + 6,11: + 2: 65254 + 6,12: + 2: 8127 + 7,9: + 0: 32631 + 7,10: + 0: 626 + 7,11: + 2: 63488 + 7,12: + 2: 4095 + 8,9: + 0: 65535 + 8,10: + 0: 255 + 2: 61440 + 8,11: + 2: 65535 + 0,9: + 0: 30583 + -1,9: + 0: 49147 + 0,10: + 0: 30583 + -1,10: + 0: 49035 + 0,11: + 0: 65399 + -1,11: + 0: 47547 + 0,12: + 0: 32767 + 1,9: + 0: 65528 + 1,10: + 0: 65535 + 1,11: + 0: 64783 + 1,12: + 0: 8669 + 6: 1024 + 1: 2048 + 2,9: + 0: 4368 + 2: 51340 + 2,10: + 0: 4369 + 2: 17416 + 2,11: + 0: 47873 + 2: 12 + 2,12: + 0: 7163 + 3,12: + 2: 34952 + 0: 4912 + 8,12: + 2: 127 + 9,9: + 0: 65535 + 9,10: + 0: 255 + 2: 61440 + 9,11: + 2: 65534 + 9,12: + 2: 15 + 10,9: + 0: 57309 + 10,10: + 0: 52445 + 2: 4096 + 10,11: + 2: 4369 + 0: 36044 + 10,12: + 0: 140 + 11,9: + 0: 61713 + 11,10: + 0: 4369 + 2: 50176 + 11,12: + 0: 1 + 4,13: + 2: 13095 + 3,13: + 2: 65532 + 4,14: + 2: 19 + 3,14: + 2: 65535 + 5,13: + 2: 14 + -1,12: + 0: 47291 + 0,13: + 0: 29823 + -1,13: + 0: 48059 + 0,14: + 0: 65351 + -1,14: + 0: 65435 + 0,15: + 0: 4095 + -1,15: + 0: 3327 + 2: 4096 + 1,13: + 0: 65535 + 1,14: + 0: 65327 + 1,15: + 0: 1151 + 2: 57344 + 1,16: + 2: 24405 + 2,13: + 0: 30583 + 2,14: + 0: 3 + 2: 59520 + 2,15: + 2: 29614 + 2,16: + 2: 45038 + 3,15: + 2: 4983 + 3,16: + 2: 26483 + 8,-9: + 0: 52692 + 9,-8: + 0: 56799 + 9,-7: + 0: 65421 + 9,-6: + 0: 65535 + 9,-9: + 0: 56784 + 10,-8: + 0: 30591 + 10,-7: + 0: 64279 + 10,-6: + 0: 48059 + 10,-9: + 0: 30576 + 11,-8: + 0: 65535 + 11,-7: + 0: 30479 + 11,-6: + 0: 30583 + 11,-9: + 0: 65520 + 12,-7: + 2: 4974 + -4,9: + 0: 65291 + -5,9: + 0: 60941 + -4,10: + 0: 32783 + 2: 28672 + -5,10: + 0: 14 + 2: 61440 + -4,11: + 2: 30583 + -5,11: + 2: 65527 + -4,12: + 2: 30583 + -3,9: + 0: 56773 + -3,10: + 0: 64709 + -3,11: + 0: 46064 + -3,12: + 0: 16267 + -2,11: + 0: 28926 + -2,9: + 0: 61166 + -2,10: + 0: 61070 + -2,12: + 0: 37751 + -8,9: + 0: 61166 + -9,9: + 0: 61198 + -8,10: + 0: 1252 + -9,10: + 2: 65520 + -8,11: + 2: 272 + -9,11: + 2: 3327 + -7,9: + 0: 60939 + -7,10: + 0: 57550 + -7,11: + 0: 238 + 2: 61440 + -7,12: + 2: 15 + -6,9: + 0: 65307 + -6,10: + 0: 29055 + -6,11: + 0: 7 + 7: 16 + 4: 32 + 2: 63488 + -6,12: + 2: 7 + -5,12: + 2: 36047 + -13,8: + 2: 65535 + -12,9: + 2: 65535 + -13,9: + 2: 61166 + -12,10: + 2: 65535 + -13,10: + 2: 3212 + -12,11: + 2: 207 + -11,9: + 2: 61440 + 0: 238 + -11,10: + 2: 65535 + -11,11: + 2: 223 + -10,9: + 0: 52479 + 2: 4096 + -10,10: + 2: 65521 + -10,11: + 2: 31 + -4,13: + 2: 65527 + -5,13: + 2: 136 + -4,14: + 2: 52430 + -3,13: + 2: 12544 + 0: 34954 + -3,14: + 2: 65331 + 0: 8 + -3,15: + 2: 17919 + -2,13: + 0: 65535 + -2,14: + 0: 52271 + 2: 4096 + -2,15: + 2: 62225 + 0: 2188 + -2,16: + 2: 40857 + -1,16: + 2: 12066 + -15,2: + 2: 34816 + -14,2: + 2: 65520 + -14,3: + 2: 206 + -16,6: + 2: 30496 + -16,7: + 2: 65303 + -17,7: + 2: 36849 + -15,7: + 2: 63351 + -15,6: + 2: 28928 + -15,8: + 2: 1791 + -14,7: + 2: 63474 + -14,8: + 2: 57343 + -14,6: + 2: 8192 + -14,9: + 2: 8 + -19,5: + 2: 32768 + -18,5: + 2: 62071 + -18,4: + 2: 28672 + -18,6: + 2: 30578 + -18,7: + 2: 3326 + -17,5: + 2: 62071 + -17,4: + 2: 28672 + -17,6: + 2: 30578 + -4,18: + 2: 10444 + -4,19: + 2: 11950 + -4,17: + 2: 19584 + -3,17: + 2: 61371 + -3,18: + 2: 60380 + -3,19: + 2: 58163 + 0: 192 + -3,16: + 2: 61096 + -3,20: + 2: 56543 + -2,17: + 2: 17 + 0: 60552 + -2,19: + 0: 61182 + -2,18: + 0: 60942 + -2,20: + 0: 60942 + -1,17: + 0: 48048 + -1,18: + 0: 5387 + 2: 16384 + -1,19: + 0: 4561 + 2: 17412 + -1,20: + 0: 47877 + 0,16: + 2: 3840 + 0,17: + 0: 65520 + 0,18: + 0: 9999 + 0,19: + 0: 10231 + 0,20: + 0: 65282 + 2: 5 + 1,18: + 0: 52494 + 2: 4096 + 1,19: + 0: 52444 + 2: 4353 + 1,17: + 0: 61156 + 1,20: + 0: 60941 + 2,17: + 0: 12544 + 2: 35014 + 2,18: + 0: 13059 + 2: 34952 + 2,19: + 0: 13107 + 2: 34952 + 2,20: + 0: 13059 + 2: 34952 + 3,17: + 2: 65524 + 3,18: + 2: 65165 + 3,19: + 2: 61286 + 4,18: + 2: 13072 + 4,19: + 2: 13090 + 3,20: + 2: 30680 + 0,21: + 0: 255 + 2: 61440 + -1,21: + 0: 187 + 2: 61440 + 0,22: + 2: 36744 + -1,22: + 2: 65211 + 1,21: + 2: 61440 + 0: 238 + 1,22: + 2: 31726 + 1,23: + 2: 15 + 2,21: + 0: 1 + 2: 63176 + 2,22: + 2: 925 + 3,21: + 2: 13911 + 3,22: + 2: 49 + 4,20: + 2: 1 + -4,20: + 2: 52416 + -4,21: + 2: 4 + -3,21: + 2: 51711 + -3,22: + 2: 236 + -2,21: + 2: 62224 + 0: 140 + -2,22: + 2: 3789 + -2,23: + 2: 8 + -1,23: + 2: 7 + 8,-12: + 0: 64977 + 8,-13: + 0: 56799 + 7,-12: + 0: 65535 + 8,-11: + 0: 3549 + 7,-11: + 0: 32767 + 8,-10: + 0: 65535 + 7,-10: + 0: 32583 + 9,-12: + 0: 30704 + 9,-11: + 0: 49535 + 9,-10: + 0: 30205 + 9,-13: + 0: 30583 + 10,-12: + 0: 4144 + 2: 204 + 8: 16384 + 10,-11: + 0: 61457 + 8: 78 + 10,-10: + 0: 47615 + 10,-13: + 2: 65343 + 11,-12: + 2: 35775 + 11,-11: + 8: 1 + 0: 61440 + 2: 200 + 11,-10: + 0: 54783 + 11,-13: + 2: 57321 + 12,-12: + 2: 65527 + 12,-11: + 2: 26225 + 12,-13: + 2: 14335 + 12,-10: + 2: 61166 + 12,-9: + 2: 61158 + 12,-8: + 2: 61162 + 13,-8: + 2: 4369 + 4,-12: + 0: 65535 + 4,-13: + 0: 65535 + 3,-12: + 0: 65535 + 4,-11: + 0: 65535 + 3,-11: + 0: 65535 + 4,-10: + 0: 56607 + 3,-10: + 0: 63346 + 5,-12: + 0: 65535 + 5,-11: + 0: 65535 + 5,-10: + 0: 56591 + 5,-13: + 0: 65535 + 6,-12: + 0: 65535 + 6,-11: + 0: 65535 + 6,-10: + 0: 65295 + 6,-13: + 0: 65535 + 7,-13: + 0: 65535 + 1,-12: + 0: 65532 + 1,-11: + 0: 65526 + 1,-10: + 0: 65295 + 1,-13: + 0: 57340 + 2,-12: + 0: 56799 + 2,-11: + 0: 65500 + 2,-10: + 0: 56769 + 2,-13: + 0: 53725 + 3,-13: + 0: 28791 + 0,-17: + 0: 63921 + 1,-16: + 0: 55551 + 1,-15: + 0: 55773 + 1,-14: + 0: 57311 + 1,-17: + 0: 65534 + 2,-16: + 0: 53471 + 2,-15: + 0: 7389 + 2,-14: + 0: 64989 + 2,-17: + 0: 64989 + 3,-16: + 0: 28791 + 3,-15: + 0: 1911 + 3,-14: + 0: 30583 + 3,-17: + 0: 30583 + 4,-16: + 9: 1911 + 4,-15: + 10: 1911 + 4,-14: + 8: 1911 + 0,-20: + 2: 255 + 0: 61440 + 0,-21: + 2: 65535 + -1,-20: + 2: 255 + 0: 61440 + 0,-19: + 0: 65535 + -1,-19: + 0: 65535 + 0,-18: + 0: 65520 + -1,-18: + 0: 65520 + 1,-20: + 2: 255 + 0: 61440 + 1,-19: + 0: 65535 + 1,-18: + 0: 65534 + 1,-21: + 2: 63248 + 2,-20: + 2: 52983 + 2,-19: + 0: 4369 + 2: 17604 + 2,-18: + 0: 56785 + 2,-21: + 2: 4096 + 3,-20: + 2: 4096 + 3,-19: + 2: 25139 + 3,-18: + 0: 30576 + -4,-19: + 2: 61132 + -4,-20: + 2: 32768 + -3,-20: + 2: 32766 + -3,-19: + 2: 17495 + -3,-18: + 2: 30583 + -2,-20: + 2: 255 + 0: 57344 + -2,-19: + 0: 65535 + -2,-18: + 0: 65535 + -2,-21: + 2: 65152 + -1,-21: + 2: 65535 + 5,-16: + 2: 4369 + 0: 52428 + 5,-15: + 2: 4369 + 0: 52428 + 5,-14: + 2: 273 + 0: 52428 + 5,-17: + 2: 4369 + 0: 50244 + 6,-16: + 0: 65535 + 6,-15: + 0: 32767 + 6,-14: + 0: 65535 + 6,-17: + 0: 61440 + 2: 241 + 7,-16: + 0: 65535 + 7,-15: + 0: 65535 + 7,-14: + 0: 65535 + 7,-17: + 0: 61440 + 2: 252 + 8,-16: + 0: 4369 + 2: 17476 + 8,-15: + 0: 4369 + 2: 17476 + 8,-14: + 0: 4369 + 2: 1092 + 8,-17: + 0: 4096 + 2: 19711 + 9,-16: + 8: 1911 + 9,-15: + 11: 1911 + 9,-14: + 8: 1911 + 10,-16: + 2: 64989 + 10,-15: + 2: 49087 + 10,-14: + 2: 65535 + 10,-17: + 2: 65535 + 11,-16: + 2: 56797 + 11,-15: + 2: 36749 + 11,-14: + 2: 56797 + 11,-17: + 2: 65395 + 12,-16: + 2: 56735 + 12,-15: + 2: 36749 + 12,-14: + 2: 7645 + 4,-18: + 2: 34816 + 5,-18: + 2: 65518 + 4,-17: + 2: 2184 + 5,-19: + 2: 60544 + 6,-19: + 2: 65534 + 6,-18: + 2: 4369 + 8: 52416 + 7,-19: + 2: 65527 + 7,-18: + 8: 4368 + 2: 16392 + 8,-19: + 2: 61696 + 8,-18: + 2: 65279 + 9,-18: + 2: 65328 + 9,-17: + 2: 4095 + 10,-18: + 2: 4352 + 12,-17: + 2: 61696 + 13,-16: + 2: 56831 + 13,-15: + 2: 36749 + 13,-14: + 2: 64989 + 13,-13: + 2: 31 + 13,-17: + 2: 4096 + 14,-16: + 2: 4353 + 14,-15: + 2: 769 + 14,-14: + 2: 273 + 14,-13: + 2: 1 + -1,-22: + 2: 61132 + -1,-23: + 2: 51336 + -1,-24: + 2: 32768 + 0,-24: + 2: 13107 + 0,-23: + 2: 30515 + 0,-22: + 2: 65527 + 0,-25: + 2: 4096 + -1,-25: + 2: 35840 + 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.14975 + moles: + - 20.078888 + - 75.53487 + - 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 + - volume: 2500 + temperature: 293.14975 + moles: + - 21.824879 + - 82.10312 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - volume: 2500 + temperature: 293.15 + moles: + - 21.6852 + - 81.57766 + - 0 + - 0 + - 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 + temperature: 293.15 + moles: + - 23.57087 + - 88.67137 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - volume: 2500 + temperature: 293.15 + moles: + - 21.813705 + - 82.06108 + - 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 + - 6666.982 + - 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 + - 0 + - 0 + - 6666.982 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + chunkSize: 4 + - type: GasTileOverlay + - type: RadiationGridResistance + - type: BecomesStation + id: RadStation +- proto: AcousticGuitarInstrument + entities: + - uid: 3 + components: + - type: Transform + pos: 37.525913,4.7083726 + parent: 2 +- proto: AirAlarm + entities: + - uid: 4 + components: + - type: Transform + pos: -9.5,6.5 + parent: 2 + - type: DeviceList + devices: + - 11152 + - 11153 + - 11154 + - 11155 + - 11268 + - 11267 + - 11156 + - 11157 + - 11375 + - 11374 + - 11373 + - 11372 + - 14694 + - 14866 + - 14693 + - 14891 + - 524 + - uid: 5 + components: + - type: Transform + pos: -16.5,8.5 + parent: 2 + - uid: 6 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -18.5,-4.5 + parent: 2 + - uid: 7 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -18.5,-4.5 + parent: 2 + - uid: 8 + components: + - type: Transform + pos: -17.5,13.5 + parent: 2 + - type: DeviceList + devices: + - 14931 + - 14775 + - 11377 + - 601 + - uid: 9 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -8.5,11.5 + parent: 2 + - type: DeviceList + devices: + - 11377 + - 11372 + - 11234 + - 11376 + - 14736 + - 14929 + - 14932 + - 14776 + - 600 + - uid: 10 + components: + - type: Transform + pos: -4.5,17.5 + parent: 2 + - type: DeviceList + devices: + - 11373 + - 11234 + - 14774 + - 14930 + - 599 + - uid: 11 + components: + - type: Transform + pos: 4.5,20.5 + parent: 2 + - type: DeviceList + devices: + - 11378 + - 11379 + - 11374 + - 14714 + - 14928 + - 11101 + - 563 + - uid: 12 + components: + - type: Transform + pos: 10.5,20.5 + parent: 2 + - uid: 13 + components: + - type: Transform + pos: 7.5,14.5 + parent: 2 + - type: DeviceList + devices: + - 11375 + - 11090 + - 14890 + - 14735 + - 562 + - uid: 14 + components: + - type: Transform + pos: -6.5,-11.5 + parent: 2 + - uid: 15 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -26.5,-7.5 + parent: 2 + - type: DeviceList + devices: + - 11371 + - 11138 + - 14893 + - 14692 + - 522 + - uid: 16 + components: + - type: Transform + pos: -25.5,3.5 + parent: 2 + - type: DeviceList + devices: + - 11371 + - 11148 + - 11149 + - 11150 + - 11151 + - 11153 + - 11152 + - 14691 + - 14892 + - 523 + - uid: 17 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -26.5,5.5 + parent: 2 + - type: DeviceList + devices: + - 11364 + - 11362 + - 11365 + - 14894 + - 14698 + - 519 + - uid: 18 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -22.5,5.5 + parent: 2 + - type: DeviceList + devices: + - 11364 + - 11099 + - 521 + - uid: 19 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -35.5,2.5 + parent: 2 + - type: DeviceList + devices: + - 11366 + - 11368 + - 11369 + - 14687 + - 14828 + - 516 + - uid: 20 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -45.5,6.5 + parent: 2 + - type: DeviceList + devices: + - 11357 + - 11358 + - 11359 + - 11360 + - 11366 + - 11367 + - 14688 + - 14898 + - 517 + - uid: 21 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -35.5,-5.5 + parent: 2 + - type: DeviceList + devices: + - 11163 + - 11161 + - 11162 + - 11160 + - 11159 + - 11158 + - 11151 + - 11150 + - 11149 + - 11148 + - 11356 + - 11355 + - 14684 + - 14900 + - 514 + - uid: 22 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -38.5,-14.5 + parent: 2 + - type: DeviceList + devices: + - 11370 + - 11356 + - 11368 + - 11369 + - 14827 + - 14686 + - 515 + - uid: 23 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -25.5,-12.5 + parent: 2 + - type: DeviceList + devices: + - 11355 + - 14906 + - 14761 + - 513 + - uid: 24 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -36.5,16.5 + parent: 2 + - type: DeviceList + devices: + - 11363 + - 14897 + - 14690 + - 520 + - uid: 25 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -45.5,15.5 + parent: 2 + - uid: 26 + components: + - type: Transform + pos: -26.5,-15.5 + parent: 2 + - type: DeviceList + devices: + - 11341 + - 11340 + - 14757 + - 14905 + - 504 + - uid: 27 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -35.5,-18.5 + parent: 2 + - type: DeviceList + devices: + - 11353 + - 11370 + - 11136 + - 14685 + - 14899 + - 512 + - uid: 28 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -35.5,-17.5 + parent: 2 + - type: DeviceList + devices: + - 11163 + - 11162 + - 11161 + - 11341 + - 11353 + - 11170 + - 11339 + - 11167 + - 11168 + - 11169 + - 11354 + - 14683 + - 14901 + - 511 + - uid: 29 + components: + - type: Transform + pos: -36.5,-25.5 + parent: 2 + - type: DeviceList + devices: + - 11169 + - 11168 + - 11167 + - 11338 + - 11164 + - 11165 + - 11166 + - 11337 + - 11336 + - 11335 + - 11334 + - 11333 + - 11173 + - 11172 + - 11171 + - 11121 + - 14919 + - 14766 + - 14759 + - 14903 + - 500 + - uid: 30 + components: + - type: Transform + pos: -4.5,-29.5 + parent: 2 + - type: DeviceList + devices: + - 11175 + - 11330 + - 11174 + - 14663 + - 14910 + - 497 + - uid: 31 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -36.5,-38.5 + parent: 2 + - type: DeviceList + devices: + - 11164 + - 11165 + - 11166 + - 11344 + - 11345 + - 11346 + - 11343 + - 11342 + - 11120 + - 14769 + - 14922 + - 507 + - uid: 32 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -26.5,-39.5 + parent: 2 + - type: DeviceList + devices: + - 11342 + - 14768 + - 14921 + - 506 + - uid: 33 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -26.5,-39.5 + parent: 2 + - uid: 34 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -26.5,-25.5 + parent: 2 + - type: DeviceList + devices: + - 11340 + - 11170 + - 11339 + - 11334 + - 14758 + - 14902 + - 503 + - uid: 35 + components: + - type: Transform + pos: -25.5,-25.5 + parent: 2 + - type: DeviceList + devices: + - 11169 + - 11168 + - 11167 + - 11338 + - 11164 + - 11165 + - 11166 + - 11337 + - 11336 + - 11335 + - 11334 + - 11333 + - 11173 + - 11172 + - 11171 + - 11121 + - 14919 + - 14766 + - 14759 + - 14903 + - 500 + - uid: 36 + components: + - type: Transform + pos: -14.5,-21.5 + parent: 2 + - type: DeviceList + devices: + - 11333 + - 11352 + - 14762 + - 14907 + - 14763 + - 14908 + - 501 + - 502 + - uid: 37 + components: + - type: Transform + pos: -9.5,-20.5 + parent: 2 + - type: DeviceList + devices: + - 11173 + - 11172 + - 11171 + - 11330 + - 11332 + - 14909 + - 14664 + - 499 + - 11426 + - 604 + - uid: 38 + components: + - type: Transform + pos: -7.5,-25.5 + parent: 2 + - type: DeviceList + devices: + - 11173 + - 11172 + - 11171 + - 11330 + - 11332 + - 14909 + - 14664 + - 499 + - uid: 39 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -20.5,-34.5 + parent: 2 + - type: DeviceList + devices: + - 11335 + - 11135 + - 14904 + - 14760 + - 505 + - uid: 40 + components: + - type: Transform + pos: -4.5,-19.5 + parent: 2 + - type: DeviceList + devices: + - 14752 + - 14844 + - 11307 + - 496 + - uid: 41 + components: + - type: Transform + pos: -3.5,-34.5 + parent: 2 + - uid: 42 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -8.5,-38.5 + parent: 2 + - type: DeviceList + devices: + - 11175 + - 11330 + - 11174 + - 14663 + - 14910 + - 14666 + - 14911 + - 14665 + - 14912 + - 14667 + - 14914 + - 14669 + - 14915 + - 14668 + - 14916 + - 14976 + - 14814 + - 498 + - uid: 43 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -9.5,-44.5 + parent: 2 + - type: DeviceList + devices: + - 11176 + - 11177 + - 11179 + - 11180 + - 11181 + - 11178 + - 14666 + - 14911 + - 14665 + - 14912 + - 14667 + - 14914 + - 14669 + - 14915 + - 14668 + - 14916 + - 498 + - uid: 44 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -11.5,-50.5 + parent: 2 + - type: DeviceList + devices: + - 11179 + - 11180 + - 11176 + - 11177 + - 11181 + - 11178 + - 11228 + - 11122 + - 14666 + - 14911 + - 14665 + - 14912 + - 14667 + - 14914 + - 14669 + - 14915 + - 14668 + - 14916 + - 498 + - uid: 45 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -41.5,-44.5 + parent: 2 + - type: DeviceList + devices: + - 11348 + - 11347 + - 11344 + - 11345 + - 14770 + - 14924 + - 508 + - uid: 46 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -40.5,-32.5 + parent: 2 + - type: DeviceList + devices: + - 11347 + - 11348 + - 11118 + - 14923 + - 14771 + - 509 + - uid: 47 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -38.5,-48.5 + parent: 2 + - type: DeviceList + devices: + - 11351 + - 11350 + - 11346 + - 11349 + - 14926 + - 14773 + - 510 + - 14925 + - 14772 + - uid: 48 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -38.5,-48.5 + parent: 2 + - uid: 49 + components: + - type: Transform + pos: -13.5,-54.5 + parent: 2 + - type: DeviceList + devices: + - 11231 + - 11230 + - 11134 + - 14838 + - 14679 + - 490 + - uid: 50 + components: + - type: Transform + pos: 17.5,3.5 + parent: 2 + - type: DeviceList + devices: + - 11182 + - 11183 + - 11184 + - 11185 + - 11266 + - 11267 + - 11268 + - 11265 + - 11264 + - 14715 + - 14865 + - 543 + - uid: 51 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 20.5,3.5 + parent: 2 + - type: DeviceList + devices: + - 11197 + - 11196 + - 11195 + - 11192 + - 11193 + - 11194 + - 11186 + - 11187 + - 11188 + - 11189 + - 11190 + - 11191 + - 11184 + - 11183 + - 11182 + - 11262 + - 14871 + - 14732 + - 14716 + - 14867 + - 544 + - uid: 52 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 29.5,-5.5 + parent: 2 + - type: DeviceList + devices: + - 11126 + - 11266 + - 11185 + - 14864 + - 14754 + - 542 + - uid: 53 + components: + - type: Transform + pos: 30.5,-13.5 + parent: 2 + - type: DeviceList + devices: + - 11097 + - 11276 + - 11275 + - 11274 + - 14674 + - 14855 + - 534 + - uid: 54 + components: + - type: Transform + pos: 22.5,-16.5 + parent: 2 + - type: DeviceList + devices: + - 11277 + - 11095 + - 14853 + - 14741 + - 535 + - uid: 55 + components: + - type: Transform + pos: 26.5,20.5 + parent: 2 + - type: DeviceList + devices: + - 11243 + - 11240 + - 11239 + - 11238 + - 11237 + - 11236 + - 11235 + - 11242 + - 14717 + - 14873 + - 14872 + - 14697 + - 14868 + - 14733 + - 547 + - uid: 56 + components: + - type: Transform + pos: 24.5,24.5 + parent: 2 + - type: DeviceList + devices: + - 11091 + - 11243 + - 14874 + - 14718 + - 548 + - uid: 57 + components: + - type: Transform + pos: 15.5,19.5 + parent: 2 + - uid: 58 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 14.5,9.5 + parent: 2 + - type: DeviceList + devices: + - 11197 + - 11196 + - 11195 + - 11192 + - 11193 + - 11194 + - 11186 + - 11187 + - 11188 + - 11189 + - 11190 + - 11191 + - 11184 + - 11183 + - 11182 + - 11262 + - 14871 + - 14732 + - 14716 + - 14867 + - 544 + - uid: 59 + components: + - type: Transform + pos: 36.5,20.5 + parent: 2 + - type: DeviceList + devices: + - 11248 + - 11245 + - 11247 + - 11246 + - 14876 + - 14750 + - 550 + - uid: 60 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 38.5,20.5 + parent: 2 + - type: DeviceList + devices: + - 11145 + - 14878 + - 14710 + - 552 + - uid: 61 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 39.5,15.5 + parent: 2 + - type: DeviceList + devices: + - 11263 + - 14731 + - 14870 + - 546 + - uid: 62 + components: + - type: Transform + pos: 41.5,20.5 + parent: 2 + - type: DeviceList + devices: + - 11248 + - 11144 + - 14877 + - 14651 + - 551 + - uid: 63 + components: + - type: Transform + pos: 38.5,11.5 + parent: 2 + - type: DeviceList + devices: + - 14869 + - 14812 + - 11262 + - 545 + - uid: 64 + components: + - type: Transform + pos: 40.5,-1.5 + parent: 2 + - type: DeviceList + devices: + - 11147 + - 11264 + - 11265 + - 11269 + - 14862 + - 14753 + - 14863 + - 14734 + - 541 + - uid: 65 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 46.5,20.5 + parent: 2 + - uid: 66 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 17.5,28.5 + parent: 2 + - type: DeviceList + devices: + - 11258 + - 11256 + - 11257 + - 11250 + - 14885 + - 14720 + - 556 + - uid: 67 + components: + - type: Transform + pos: 37.5,31.5 + parent: 2 + - type: DeviceList + devices: + - 11198 + - 11199 + - 11200 + - 11201 + - 11202 + - 11203 + - 11250 + - 11249 + - 11244 + - 11145 + - 14725 + - 14927 + - 14728 + - 14879 + - 553 + - uid: 68 + components: + - type: Transform + pos: 17.5,41.5 + parent: 2 + - type: DeviceList + devices: + - 11259 + - 11260 + - 11256 + - 14886 + - 14755 + - 557 + - uid: 69 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 16.5,35.5 + parent: 2 + - type: DeviceList + devices: + - 14756 + - 14889 + - 558 + - uid: 70 + components: + - type: Transform + pos: 13.5,45.5 + parent: 2 + - type: DeviceList + devices: + - 11261 + - 11259 + - 14887 + - 14724 + - 559 + - uid: 71 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 24.5,43.5 + parent: 2 + - type: DeviceList + devices: + - 11261 + - 11257 + - 14721 + - 14888 + - 560 + - uid: 72 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 31.5,39.5 + parent: 2 + - type: DeviceList + devices: + - 11198 + - 11199 + - 11200 + - 11201 + - 11202 + - 11203 + - 11250 + - 11249 + - 11244 + - 11145 + - 14725 + - 14927 + - 14728 + - 14879 + - 555 + - uid: 73 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 45.5,40.5 + parent: 2 + - type: DeviceList + devices: + - 11206 + - 11205 + - 11204 + - 11252 + - 11251 + - 14880 + - 14730 + - 554 + - uid: 74 + components: + - type: Transform + pos: 46.5,-19.5 + parent: 2 + - type: DeviceList + devices: + - 14744 + - 14860 + - 11271 + - 537 + - uid: 75 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 42.5,-17.5 + parent: 2 + - type: DeviceList + devices: + - 11270 + - 14811 + - 14974 + - 536 + - uid: 76 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 42.5,-15.5 + parent: 2 + - type: DeviceList + devices: + - 11269 + - 14743 + - 14973 + - 540 + - uid: 77 + components: + - type: Transform + pos: -18.5,23.5 + parent: 2 + - type: DeviceList + devices: + - 11380 + - 11141 + - 14934 + - 14696 + - 593 + - uid: 78 + components: + - type: Transform + pos: -8.5,30.5 + parent: 2 + - type: DeviceList + devices: + - 11388 + - 11387 + - 11208 + - 11209 + - 11210 + - 11385 + - 11386 + - 11383 + - 11384 + - 11211 + - 11212 + - 11213 + - 14938 + - 14935 + - 14777 + - 14778 + - 14936 + - 14937 + - 14779 + - 581 + - uid: 79 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -13.5,33.5 + parent: 2 + - type: DeviceList + devices: + - 11386 + - 11389 + - 11390 + - 14781 + - 14941 + - 582 + - uid: 80 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -18.5,34.5 + parent: 2 + - type: DeviceList + devices: + - 11392 + - 11391 + - 11385 + - 11389 + - 14699 + - 14939 + - 584 + - uid: 81 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -24.5,22.5 + parent: 2 + - type: DeviceList + devices: + - 591 + - 14794 + - 14956 + - 11401 + - uid: 82 + components: + - type: Transform + pos: -16.5,41.5 + parent: 2 + - type: DeviceList + devices: + - 11392 + - 14780 + - 14940 + - 583 + - uid: 83 + components: + - type: Transform + pos: -35.5,31.5 + parent: 2 + - type: DeviceList + devices: + - 11404 + - 11403 + - 11402 + - 14788 + - 14948 + - 595 + - uid: 84 + components: + - type: Transform + pos: -21.5,42.5 + parent: 2 + - type: DeviceList + devices: + - 11398 + - 11399 + - 14703 + - 14945 + - 588 + - uid: 85 + components: + - type: Transform + pos: -25.5,46.5 + parent: 2 + - type: DeviceList + devices: + - 11399 + - 14829 + - 14785 + - 589 + - uid: 86 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -31.5,35.5 + parent: 2 + - type: DeviceList + devices: + - 11400 + - 14944 + - 14784 + - 587 + - uid: 87 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -34.5,26.5 + parent: 2 + - type: DeviceList + devices: + - 11408 + - 14953 + - 14702 + - 590 + - uid: 88 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -34.5,23.5 + parent: 2 + - type: DeviceList + devices: + - 11403 + - 11408 + - 11409 + - 14701 + - 14954 + - 596 + - uid: 89 + components: + - type: Transform + pos: -39.5,27.5 + parent: 2 + - type: DeviceList + devices: + - 11409 + - 14952 + - 14792 + - 597 + - uid: 90 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -41.5,27.5 + parent: 2 + - type: DeviceList + devices: + - 11407 + - 11406 + - 11405 + - 11404 + - 14704 + - 14830 + - 14949 + - 14789 + - 14950 + - 14790 + - 14951 + - 14791 + - 594 + - uid: 91 + components: + - type: Transform + pos: -38.5,23.5 + parent: 2 + - type: DeviceList + devices: + - 14793 + - 14955 + - 598 + - uid: 92 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -21.5,34.5 + parent: 2 + - type: DeviceList + devices: + - 11393 + - 11391 + - 14943 + - 14783 + - 585 + - uid: 93 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -5.5,35.5 + parent: 2 + - type: DeviceList + devices: + - 11215 + - 11214 + - 11397 + - 11396 + - 11142 + - 14705 + - 14957 + - 580 + - uid: 94 + components: + - type: Transform + pos: -32.5,31.5 + parent: 2 + - type: DeviceList + devices: + - 11402 + - 11401 + - 11395 + - 11394 + - 11211 + - 11212 + - 11213 + - 11393 + - 11400 + - 11398 + - 14947 + - 14700 + - 586 + - uid: 95 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 3.5,32.5 + parent: 2 + - type: DeviceList + devices: + - 11411 + - 14795 + - 14958 + - 565 + - uid: 96 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 8.5,33.5 + parent: 2 + - type: DeviceList + devices: + - 11412 + - 11413 + - 14833 + - 14711 + - 566 + - uid: 97 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 3.5,43.5 + parent: 2 + - type: DeviceList + devices: + - 11413 + - 14796 + - 14959 + - 567 + - uid: 98 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 3.5,44.5 + parent: 2 + - type: DeviceList + devices: + - 11223 + - 11222 + - 11221 + - 11220 + - 11414 + - 11415 + - 11416 + - 11417 + - 14960 + - 14708 + - 602 + - uid: 99 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -7.5,46.5 + parent: 2 + - type: DeviceList + devices: + - 11425 + - 11424 + - 14652 + - 14832 + - 571 + - uid: 100 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -4.5,50.5 + parent: 2 + - type: DeviceList + devices: + - 11424 + - 11423 + - 14963 + - 14709 + - 570 + - uid: 101 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 10.5,47.5 + parent: 2 + - type: DeviceList + devices: + - 11414 + - 11420 + - 11419 + - 14815 + - 14712 + - 484 + - uid: 102 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 3.5,56.5 + parent: 2 + - type: DeviceList + devices: + - 11415 + - 11420 + - 11418 + - 14653 + - 14961 + - 568 + - uid: 103 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 3.5,57.5 + parent: 2 + - type: DeviceList + devices: + - 11423 + - 11422 + - 11421 + - 11418 + - 14962 + - 14797 + - 569 + - uid: 104 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 2.5,68.5 + parent: 2 + - type: DeviceList + devices: + - 572 + - uid: 105 + components: + - type: Transform + pos: -2.5,73.5 + parent: 2 + - type: DeviceList + devices: + - 573 + - 14964 + - 14800 + - uid: 106 + components: + - type: Transform + pos: 9.5,81.5 + parent: 2 + - type: DeviceList + devices: + - 575 + - 14967 + - 14801 + - uid: 107 + components: + - type: Transform + pos: 7.5,86.5 + parent: 2 + - type: DeviceList + devices: + - 576 + - 14968 + - 14802 + - uid: 108 + components: + - type: Transform + pos: -4.5,86.5 + parent: 2 + - type: DeviceList + devices: + - 578 + - 14804 + - 14970 + - uid: 109 + components: + - type: Transform + pos: -6.5,81.5 + parent: 2 + - type: DeviceList + devices: + - 579 + - 14805 + - 14971 + - uid: 110 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 12.5,-9.5 + parent: 2 + - type: DeviceList + devices: + - 11096 + - 11098 + - 11124 + - 11296 + - 11297 + - 14749 + - 14849 + - 530 + - uid: 111 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 11.5,-15.5 + parent: 2 + - type: DeviceList + devices: + - 11297 + - 11296 + - 11295 + - 11129 + - 14681 + - 14848 + - 529 + - uid: 112 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 15.5,-19.5 + parent: 2 + - type: DeviceList + devices: + - 11280 + - 11281 + - 11282 + - 11285 + - 11286 + - 11287 + - 11295 + - 11294 + - 11292 + - 11291 + - 11290 + - 11289 + - 11288 + - 11293 + - 14847 + - 14671 + - 14852 + - 14739 + - 527 + - uid: 113 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 21.5,-19.5 + parent: 2 + - type: DeviceList + devices: + - 11293 + - 14850 + - 14740 + - uid: 114 + components: + - type: Transform + pos: 40.5,-19.5 + parent: 2 + - type: DeviceList + devices: + - 11147 + - 11270 + - 11282 + - 11281 + - 11280 + - 11279 + - 11278 + - 11277 + - 11276 + - 11275 + - 11274 + - 11272 + - 11273 + - 11271 + - 14854 + - 14673 + - 14742 + - 14857 + - 533 + - uid: 115 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 43.5,-32.5 + parent: 2 + - type: DeviceList + devices: + - 11283 + - 14859 + - 14682 + - 539 + - uid: 116 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 37.5,-29.5 + parent: 2 + - type: DeviceList + devices: + - 11272 + - 11273 + - 11283 + - 11125 + - 14858 + - 14675 + - 538 + - uid: 117 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 24.5,-32.5 + parent: 2 + - type: DeviceList + devices: + - 11279 + - 11278 + - 11284 + - 11128 + - 14861 + - 14748 + - 531 + - uid: 118 + components: + - type: Transform + pos: 30.5,-26.5 + parent: 2 + - type: DeviceList + devices: + - 14747 + - 14856 + - 11284 + - 532 + - uid: 119 + components: + - type: Transform + pos: 22.5,-29.5 + parent: 2 + - type: DeviceList + devices: + - 11285 + - 11286 + - 11287 + - 14745 + - 14851 + - 528 + - uid: 120 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 6.5,-33.5 + parent: 2 + - type: DeviceList + devices: + - 11288 + - 11289 + - 11306 + - 11305 + - 11304 + - 11123 + - 14846 + - 14738 + - 526 + - uid: 121 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 3.5,-26.5 + parent: 2 + - type: DeviceList + devices: + - 11300 + - 11299 + - 11298 + - 11292 + - 11291 + - 11290 + - 11303 + - 11302 + - 11301 + - 11304 + - 11305 + - 11306 + - 14845 + - 14670 + - 525 + - uid: 122 + components: + - type: Transform + pos: 14.5,-39.5 + parent: 2 + - type: DeviceList + devices: + - 11314 + - 11315 + - 11318 + - 11324 + - 11323 + - 11131 + - 11130 + - 14662 + - 14824 + - 14659 + - 14823 + - 485 + - uid: 123 + components: + - type: Transform + pos: 34.5,-40.5 + parent: 2 + - type: DeviceList + devices: + - 11323 + - 11227 + - 14658 + - 14822 + - 494 + - uid: 124 + components: + - type: Transform + pos: 8.5,-38.5 + parent: 2 + - type: DeviceList + devices: + - 11310 + - 11311 + - 11315 + - 11314 + - 11313 + - 11312 + - 14810 + - 14972 + - 486 + - uid: 125 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -0.5,-49.5 + parent: 2 + - type: DeviceList + devices: + - 11225 + - 11224 + - 11312 + - 11313 + - 11318 + - 11317 + - 11316 + - 11320 + - 11321 + - 11319 + - 11322 + - 11132 + - 14677 + - 14835 + - 14836 + - 14806 + - 487 + - uid: 126 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 9.5,-54.5 + parent: 2 + - type: DeviceList + devices: + - 11319 + - 14746 + - 14825 + - 493 + - uid: 127 + components: + - type: Transform + pos: 6.5,28.5 + parent: 2 + - type: DeviceList + devices: + - 14834 + - 14713 + - 11410 + - 11143 + - 564 + - uid: 128 + components: + - type: Transform + pos: -1.5,-54.5 + parent: 2 + - type: DeviceList + devices: + - 11230 + - 11231 + - 11327 + - 11325 + - 11133 + - 14837 + - 14678 + - 489 + - uid: 129 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 5.5,-58.5 + parent: 2 + - type: DeviceList + devices: + - 11326 + - 11325 + - 11321 + - 11320 + - 14807 + - 14826 + - 488 + - uid: 130 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 15.5,-66.5 + parent: 2 + - type: DeviceList + devices: + - 11232 + - 11233 + - 14680 + - 14841 + - 492 + - uid: 131 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -1.5,-66.5 + parent: 2 + - uid: 132 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -8.5,-64.5 + parent: 2 + - type: DeviceList + devices: + - 11327 + - 11328 + - 11326 + - 11329 + - 11233 + - 11232 + - 14839 + - 14840 + - 14809 + - 14808 + - 491 + - uid: 133 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 25.5,-65.5 + parent: 2 + - type: DeviceList + devices: + - 11314 + - 11315 + - 11318 + - 11324 + - 11323 + - 11131 + - 11130 + - 14662 + - 14824 + - 14659 + - 14823 + - 485 + - uid: 134 + components: + - type: Transform + pos: 36.5,-47.5 + parent: 2 + - uid: 135 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -15.5,17.5 + parent: 2 + - type: DeviceList + devices: + - 11380 + - 11381 + - 11382 + - 11376 + - 11207 + - 11140 + - 14933 + - 14695 + - 592 + - uid: 136 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -1.5,-39.5 + parent: 2 + - type: DeviceList + devices: + - 11156 + - 11157 + - 11300 + - 11299 + - 11298 + - 11307 + - 11308 + - 11175 + - 11224 + - 11225 + - 11310 + - 11311 + - 11309 + - 14661 + - 14842 + - 14843 + - 14676 + - 495 + - uid: 137 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 14.5,21.5 + parent: 2 + - type: DeviceList + devices: + - 11104 + - 14975 + - 14813 + - 561 + - uid: 138 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 31.5,20.5 + parent: 2 + - type: DeviceList + devices: + - 11195 + - 11196 + - 11197 + - 11245 + - 11229 + - 11242 + - 11244 + - 11247 + - 11246 + - 14719 + - 14875 + - 549 + - uid: 139 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -31.5,4.5 + parent: 2 + - type: DeviceList + devices: + - 11158 + - 11159 + - 11160 + - 11363 + - 11361 + - 11360 + - 11359 + - 11358 + - 11357 + - 11362 + - 14689 + - 14896 + - 518 + - uid: 140 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -1.5,24.5 + parent: 2 + - type: DeviceList + devices: + - 11154 + - 11155 + - 11207 + - 11378 + - 11410 + - 11216 + - 11217 + - 11218 + - 11219 + - 11411 + - 14707 + - 14831 + - 14787 + - 14946 + - 603 + - uid: 141 + components: + - type: Transform + pos: 6.5,73.5 + parent: 2 + - type: DeviceList + devices: + - 574 + - 14966 + - 14798 + - uid: 142 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 4.5,83.5 + parent: 2 + - type: DeviceList + devices: + - 577 + - 14803 + - 14969 +- proto: AirCanister + entities: + - uid: 143 + components: + - type: Transform + pos: 28.5,-28.5 + parent: 2 + - uid: 144 + components: + - type: Transform + pos: -21.5,12.5 + parent: 2 +- proto: Airlock + entities: + - uid: 146 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 14.5,11.5 + parent: 2 + - uid: 147 + components: + - type: Transform + pos: 38.5,25.5 + parent: 2 + - uid: 148 + components: + - type: Transform + pos: 39.5,24.5 + parent: 2 + - uid: 149 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 27.5,36.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18281 + - uid: 150 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 27.5,39.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18280 +- proto: AirlockArmoryGlassLocked + entities: + - uid: 151 + components: + - type: Transform + pos: -15.5,30.5 + parent: 2 + - uid: 152 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -18.5,32.5 + parent: 2 +- proto: AirlockAtmosphericsGlassLocked + entities: + - uid: 153 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 9.5,-40.5 + parent: 2 + - uid: 155 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 9.5,-47.5 + parent: 2 + - uid: 156 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 41.5,-43.5 + parent: 2 + - type: DeviceLinkSink + links: + - 157 + - type: DeviceLinkSource + linkedPorts: + 157: + - DoorStatus: DoorBolt + - uid: 157 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 39.5,-43.5 + parent: 2 + - type: DeviceLinkSink + links: + - 156 + - type: DeviceLinkSource + linkedPorts: + 156: + - DoorStatus: DoorBolt + - uid: 22690 + components: + - type: Transform + pos: 9.5,-41.5 + parent: 2 +- proto: AirlockAtmosphericsLocked + entities: + - uid: 158 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 33.5,-44.5 + parent: 2 + - uid: 159 + components: + - type: Transform + pos: 33.5,-51.5 + parent: 2 +- proto: AirlockBarLocked + entities: + - uid: 160 + components: + - type: Transform + pos: 16.5,15.5 + parent: 2 +- proto: AirlockCaptainGlassLocked + entities: + - uid: 161 + components: + - type: Transform + pos: -3.5,57.5 + parent: 2 +- proto: AirlockCaptainLocked + entities: + - uid: 162 + components: + - type: Transform + pos: -9.5,50.5 + parent: 2 + - uid: 163 + components: + - type: Transform + pos: -7.5,51.5 + parent: 2 +- proto: AirlockCargoGlassLocked + entities: + - uid: 164 + components: + - type: Transform + pos: -36.5,7.5 + parent: 2 + - uid: 165 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -38.5,5.5 + parent: 2 +- proto: AirlockCargoLocked + entities: + - uid: 166 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -31.5,10.5 + parent: 2 +- proto: AirlockChapelLocked + entities: + - uid: 167 + components: + - type: Transform + pos: 18.5,39.5 + parent: 2 + - uid: 168 + components: + - type: Transform + pos: 14.5,37.5 + parent: 2 + - uid: 169 + components: + - type: Transform + pos: 15.5,41.5 + parent: 2 + - uid: 170 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 16.5,43.5 + parent: 2 +- proto: AirlockChemistryLocked + entities: + - uid: 171 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 31.5,-22.5 + parent: 2 + - uid: 172 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 11.5,-31.5 + parent: 2 +- proto: AirlockChiefEngineerLocked + entities: + - uid: 173 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 9.5,-52.5 + parent: 2 +- proto: AirlockChiefJusticeLocked + entities: + - uid: 145 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -14.5,11.5 + parent: 2 +- proto: AirlockChiefMedicalOfficerLocked + entities: + - uid: 174 + components: + - type: Transform + pos: 23.5,-16.5 + parent: 2 + - uid: 175 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 25.5,-22.5 + parent: 2 +- proto: AirlockCommandGlassLocked + entities: + - uid: 176 + components: + - type: Transform + pos: 7.5,36.5 + parent: 2 + - uid: 177 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 2.5,54.5 + parent: 2 + - uid: 178 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 2.5,57.5 + parent: 2 + - uid: 179 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -0.5,57.5 + parent: 2 + - uid: 180 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -0.5,54.5 + parent: 2 +- proto: AirlockCommandLocked + entities: + - uid: 181 + components: + - type: Transform + pos: -31.5,-11.5 + parent: 2 + - uid: 182 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -1.5,-23.5 + parent: 2 + - uid: 183 + components: + - type: Transform + pos: 3.5,26.5 + parent: 2 + - uid: 184 + components: + - type: Transform + pos: 3.5,52.5 + parent: 2 + - uid: 185 + components: + - type: Transform + pos: 5.5,57.5 + parent: 2 +- proto: AirlockCorpsmanGlassLocked + entities: + - uid: 186 + components: + - type: Transform + pos: -25.5,35.5 + parent: 2 +- proto: AirlockDetectiveLocked + entities: + - uid: 187 + components: + - type: Transform + pos: -17.5,19.5 + parent: 2 +- proto: AirlockEngineeringGlassLocked + entities: + - uid: 188 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 8.5,18.5 + parent: 2 + - uid: 190 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 3.5,-40.5 + parent: 2 + - uid: 191 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 5.5,-43.5 + parent: 2 + - uid: 192 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 6.5,-43.5 + parent: 2 + - uid: 193 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 5.5,-55.5 + parent: 2 + - uid: 194 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -1.5,-36.5 + parent: 2 + - uid: 195 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 1.5,-57.5 + parent: 2 + - uid: 196 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 3.5,-61.5 + parent: 2 + - uid: 197 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 0.5,-65.5 + parent: 2 + - uid: 198 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 0.5,-67.5 + parent: 2 + - uid: 22679 + components: + - type: Transform + pos: 3.5,-41.5 + parent: 2 +- proto: AirlockEngineeringLocked + entities: + - uid: 199 + components: + - type: Transform + pos: 15.5,-3.5 + parent: 2 + - uid: 200 + components: + - type: Transform + pos: -32.5,-55.5 + parent: 2 + - uid: 201 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -15.5,-54.5 + parent: 2 + - uid: 202 + components: + - type: Transform + pos: -5.5,-54.5 + parent: 2 + - uid: 203 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 44.5,23.5 + parent: 2 + - uid: 204 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -26.5,16.5 + parent: 2 + - uid: 205 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 7.5,-57.5 + parent: 2 + - uid: 206 + components: + - type: Transform + pos: 11.5,21.5 + parent: 2 + - uid: 207 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -3.5,46.5 + parent: 2 + - uid: 208 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 7.5,-61.5 + parent: 2 + - uid: 209 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -3.5,-61.5 + parent: 2 + - uid: 210 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -1.5,-51.5 + parent: 2 + - uid: 211 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -24.5,-55.5 + parent: 2 + - uid: 212 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -14.5,-16.5 + parent: 2 + - uid: 213 + components: + - type: Transform + pos: 8.5,21.5 + parent: 2 +- proto: AirlockExternalAtmosphericsLocked + entities: + - uid: 214 + components: + - type: Transform + pos: -7.5,77.5 + parent: 2 + - type: DeviceLinkSink + links: + - 215 + - type: DeviceLinkSource + linkedPorts: + 215: + - DoorStatus: DoorBolt + - uid: 215 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -9.5,77.5 + parent: 2 + - type: DeviceLinkSink + links: + - 214 + - type: DeviceLinkSource + linkedPorts: + 214: + - DoorStatus: DoorBolt + - uid: 216 + components: + - type: Transform + pos: 22.5,-65.5 + parent: 2 + - type: DeviceLinkSink + links: + - 217 + - type: DeviceLinkSource + linkedPorts: + 217: + - DoorStatus: DoorBolt + - uid: 217 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 22.5,-67.5 + parent: 2 + - type: DeviceLinkSink + links: + - 216 + - type: DeviceLinkSource + linkedPorts: + 216: + - DoorStatus: DoorBolt + - uid: 218 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 39.5,-46.5 + parent: 2 + - type: DeviceLinkSink + links: + - 219 + - type: DeviceLinkSource + linkedPorts: + 219: + - DoorStatus: DoorBolt + - uid: 219 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 41.5,-46.5 + parent: 2 + - type: DeviceLinkSink + links: + - 218 + - type: DeviceLinkSource + linkedPorts: + 218: + - DoorStatus: DoorBolt +- proto: AirlockExternalEngineeringLocked + entities: + - uid: 220 + components: + - type: Transform + pos: -36.5,-54.5 + parent: 2 + - uid: 221 + components: + - type: Transform + pos: -38.5,-54.5 + parent: 2 + - uid: 222 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 12.5,47.5 + parent: 2 + - type: DeviceLinkSink + links: + - 223 + - type: DeviceLinkSource + linkedPorts: + 223: + - DoorStatus: DoorBolt + - uid: 223 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 14.5,47.5 + parent: 2 + - type: DeviceLinkSink + links: + - 222 + - type: DeviceLinkSource + linkedPorts: + 222: + - DoorStatus: DoorBolt + - uid: 224 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -10.5,-60.5 + parent: 2 + - uid: 225 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -10.5,-62.5 + parent: 2 +- proto: AirlockExternalGlass + entities: + - uid: 226 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 29.5,40.5 + parent: 2 + - uid: 227 + components: + - type: Transform + pos: 45.5,39.5 + parent: 2 + - uid: 228 + components: + - type: Transform + pos: 45.5,32.5 + parent: 2 + - uid: 229 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 45.5,-12.5 + parent: 2 + - uid: 230 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 45.5,-6.5 + parent: 2 + - uid: 231 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 45.5,-4.5 + parent: 2 + - uid: 232 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 45.5,-14.5 + parent: 2 +- proto: AirlockExternalGlassCargoLocked + entities: + - uid: 233 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -43.5,-1.5 + parent: 2 + - uid: 234 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -43.5,0.5 + parent: 2 + - uid: 235 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -41.5,-11.5 + parent: 2 + - type: DeviceLinkSink + links: + - 236 + - type: DeviceLinkSource + linkedPorts: + 236: + - DoorStatus: DoorBolt + - uid: 236 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -45.5,-11.5 + parent: 2 + - type: DeviceLinkSink + links: + - 235 + - type: DeviceLinkSource + linkedPorts: + 235: + - DoorStatus: DoorBolt + - uid: 237 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -39.5,-18.5 + parent: 2 +- proto: AirlockExternalGlassEngineeringLocked + entities: + - uid: 238 + components: + - type: Transform + pos: 47.5,23.5 + parent: 2 + - uid: 239 + components: + - type: Transform + pos: 49.5,23.5 + parent: 2 + - uid: 240 + components: + - type: Transform + pos: 43.5,47.5 + parent: 2 + - uid: 241 + components: + - type: Transform + pos: 43.5,49.5 + parent: 2 +- proto: AirlockExternalGlassLocked + entities: + - uid: 242 + components: + - type: Transform + pos: -10.5,43.5 + parent: 2 + - uid: 243 + components: + - type: Transform + pos: -12.5,43.5 + parent: 2 + - uid: 244 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -29.5,40.5 + parent: 2 + - uid: 245 + components: + - type: Transform + pos: -41.5,22.5 + parent: 2 + - uid: 246 + components: + - type: Transform + pos: -45.5,-43.5 + parent: 2 + - uid: 247 + components: + - type: Transform + pos: -43.5,-43.5 + parent: 2 + - uid: 248 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -46.5,-34.5 + parent: 2 + - type: DeviceLinkSink + links: + - 249 + - type: DeviceLinkSource + linkedPorts: + 249: + - DoorStatus: DoorBolt + - uid: 249 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -48.5,-34.5 + parent: 2 + - type: DeviceLinkSink + links: + - 248 + - type: DeviceLinkSource + linkedPorts: + 248: + - DoorStatus: DoorBolt +- proto: AirlockExternalGlassShuttleArrivals + entities: + - uid: 250 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 47.5,32.5 + parent: 2 + - uid: 251 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 47.5,39.5 + parent: 2 +- proto: AirlockExternalGlassShuttleEmergencyLocked + entities: + - uid: 252 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 47.5,-12.5 + parent: 2 + - uid: 253 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 47.5,-4.5 + parent: 2 + - uid: 254 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 47.5,-6.5 + parent: 2 + - uid: 255 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 47.5,-14.5 + parent: 2 +- proto: AirlockExternalGlassShuttleEscape + entities: + - uid: 256 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -49.5,-26.5 + parent: 2 + - uid: 257 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 29.5,42.5 + parent: 2 + - uid: 258 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -29.5,42.5 + parent: 2 +- proto: AirlockExternalGlassShuttleLocked + entities: + - uid: 259 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -45.5,0.5 + parent: 2 + - uid: 260 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -45.5,-1.5 + parent: 2 + - uid: 261 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -43.5,26.5 + parent: 2 + - uid: 262 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -43.5,22.5 + parent: 2 +- proto: AirlockExternalLocked + entities: + - uid: 263 + components: + - type: Transform + pos: -47.5,-26.5 + parent: 2 +- proto: AirlockFreezerLocked + entities: + - uid: 264 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 22.5,20.5 + parent: 2 +- proto: AirlockGlass + entities: + - uid: 265 + components: + - type: Transform + pos: 3.5,18.5 + parent: 2 + - uid: 266 + components: + - type: Transform + pos: 5.5,12.5 + parent: 2 + - uid: 267 + components: + - type: Transform + pos: -8.5,8.5 + parent: 2 + - uid: 269 + components: + - type: Transform + pos: -12.5,1.5 + parent: 2 + - uid: 270 + components: + - type: Transform + pos: 0.5,14.5 + parent: 2 + - uid: 273 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 0.5,-12.5 + parent: 2 + - uid: 274 + components: + - type: Transform + pos: 35.5,-1.5 + parent: 2 + - uid: 275 + components: + - type: Transform + pos: 34.5,-1.5 + parent: 2 + - uid: 277 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 29.5,21.5 + parent: 2 + - uid: 278 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 31.5,23.5 + parent: 2 + - uid: 279 + components: + - type: Transform + pos: 26.5,31.5 + parent: 2 + - uid: 280 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 31.5,35.5 + parent: 2 + - uid: 281 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 31.5,38.5 + parent: 2 + - uid: 282 + components: + - type: Transform + pos: 41.5,35.5 + parent: 2 + - uid: 283 + components: + - type: Transform + pos: 41.5,38.5 + parent: 2 + - uid: 284 + components: + - type: Transform + pos: -35.5,32.5 + parent: 2 + - uid: 285 + components: + - type: Transform + pos: -35.5,35.5 + parent: 2 + - uid: 286 + components: + - type: Transform + pos: -35.5,38.5 + parent: 2 + - uid: 287 + components: + - type: Transform + pos: 13.5,23.5 + parent: 2 + - uid: 289 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 14.5,0.5 + parent: 2 + - uid: 15015 + components: + - type: Transform + pos: -12.5,0.5 + parent: 2 + - uid: 17624 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 1.5,14.5 + parent: 2 + - uid: 19025 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 14.5,1.5 + parent: 2 + - uid: 19804 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 1.5,-12.5 + parent: 2 +- proto: AirlockHeadOfPersonnelGlassLocked + entities: + - uid: 290 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 10.5,49.5 + parent: 2 +- proto: AirlockHeadOfPersonnelLocked + entities: + - uid: 291 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 8.5,51.5 + parent: 2 +- proto: AirlockHeadOfSecurityGlassLocked + entities: + - uid: 292 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -23.5,37.5 + parent: 2 +- proto: AirlockHeadOfSecurityLocked + entities: + - uid: 293 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -23.5,42.5 + parent: 2 +- proto: AirlockHydroGlassLocked + entities: + - uid: 294 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 31.5,16.5 + parent: 2 +- proto: AirlockHydroponicsLocked + entities: + - uid: 295 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 39.5,18.5 + parent: 2 +- proto: AirlockJanitorLocked + entities: + - uid: 297 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 11.5,14.5 + parent: 2 + - uid: 16319 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 8.5,10.5 + parent: 2 +- proto: AirlockJusticeLocked + entities: + - uid: 476 + components: + - type: Transform + pos: -2.5,12.5 + parent: 2 + - uid: 477 + components: + - type: Transform + pos: -7.5,15.5 + parent: 2 + - uid: 478 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -9.5,17.5 + parent: 2 +- proto: AirlockKitchenGlassLocked + entities: + - uid: 298 + components: + - type: Transform + pos: 27.5,14.5 + parent: 2 +- proto: AirlockKitchenLocked + entities: + - uid: 299 + components: + - type: Transform + pos: 23.5,15.5 + parent: 2 +- proto: AirlockMailGlassLocked + entities: + - uid: 300 + components: + - type: Transform + pos: -29.5,-1.5 + parent: 2 +- proto: AirlockMailLocked + entities: + - uid: 301 + components: + - type: Transform + pos: -22.5,-4.5 + parent: 2 + - uid: 302 + components: + - type: Transform + pos: -27.5,-7.5 + parent: 2 +- proto: AirlockMaintAtmoLocked + entities: + - uid: 303 + components: + - type: Transform + pos: 13.5,-39.5 + parent: 2 + - uid: 304 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 30.5,-38.5 + parent: 2 +- proto: AirlockMaintBarLocked + entities: + - uid: 305 + components: + - type: Transform + pos: 14.5,17.5 + parent: 2 +- proto: AirlockMaintCargoLocked + entities: + - uid: 306 + components: + - type: Transform + pos: -24.5,11.5 + parent: 2 + - uid: 307 + components: + - type: Transform + pos: -40.5,13.5 + parent: 2 +- proto: AirlockMaintChemLocked + entities: + - uid: 308 + components: + - type: Transform + pos: 27.5,-15.5 + parent: 2 + - uid: 309 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 5.5,-33.5 + parent: 2 +- proto: AirlockMaintCommandLocked + entities: + - uid: 310 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 7.5,23.5 + parent: 2 +- proto: AirlockMaintDetectiveLocked + entities: + - uid: 311 + components: + - type: Transform + pos: -20.5,17.5 + parent: 2 +- proto: AirlockMaintEngiLocked + entities: + - uid: 312 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 11.5,18.5 + parent: 2 + - uid: 313 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -3.5,-46.5 + parent: 2 +- proto: AirlockMaintGlass + entities: + - uid: 268 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 36.5,7.5 + parent: 2 +- proto: AirlockMaintHydroLocked + entities: + - uid: 314 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 42.5,20.5 + parent: 2 +- proto: AirlockMaintKitchenLocked + entities: + - uid: 315 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 23.5,24.5 + parent: 2 +- proto: AirlockMaintLocked + entities: + - uid: 316 + components: + - type: Transform + pos: -6.5,-8.5 + parent: 2 + - uid: 317 + components: + - type: Transform + pos: 8.5,-8.5 + parent: 2 + - uid: 318 + components: + - type: Transform + pos: 10.5,-6.5 + parent: 2 + - uid: 319 + components: + - type: Transform + pos: 10.5,8.5 + parent: 2 + - uid: 320 + components: + - type: Transform + pos: -15.5,3.5 + parent: 2 + - uid: 321 + components: + - type: Transform + pos: -18.5,6.5 + parent: 2 + - uid: 322 + components: + - type: Transform + pos: -15.5,-1.5 + parent: 2 + - uid: 323 + components: + - type: Transform + pos: -11.5,-7.5 + parent: 2 + - uid: 324 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -1.5,-17.5 + parent: 2 + - uid: 325 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 15.5,3.5 + parent: 2 + - uid: 326 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 16.5,-1.5 + parent: 2 + - uid: 327 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 15.5,5.5 + parent: 2 + - uid: 328 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 13.5,10.5 + parent: 2 + - uid: 329 + components: + - type: Transform + pos: 16.5,-5.5 + parent: 2 + - uid: 330 + components: + - type: Transform + pos: 17.5,-3.5 + parent: 2 + - uid: 331 + components: + - type: Transform + pos: 11.5,-7.5 + parent: 2 + - uid: 332 + components: + - type: Transform + pos: 10.5,-10.5 + parent: 2 + - uid: 333 + components: + - type: Transform + pos: 5.5,-14.5 + parent: 2 + - uid: 334 + components: + - type: Transform + pos: 3.5,-16.5 + parent: 2 + - uid: 335 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -1.5,-14.5 + parent: 2 + - uid: 336 + components: + - type: Transform + pos: -8.5,-9.5 + parent: 2 + - uid: 337 + components: + - type: Transform + pos: -7.5,-11.5 + parent: 2 + - uid: 338 + components: + - type: Transform + pos: -11.5,-11.5 + parent: 2 + - uid: 339 + components: + - type: Transform + pos: -14.5,-9.5 + parent: 2 + - uid: 340 + components: + - type: Transform + pos: -7.5,-16.5 + parent: 2 + - uid: 341 + components: + - type: Transform + pos: -9.5,-17.5 + parent: 2 + - uid: 342 + components: + - type: Transform + pos: -11.5,-16.5 + parent: 2 + - uid: 343 + components: + - type: Transform + pos: -21.5,-13.5 + parent: 2 + - uid: 344 + components: + - type: Transform + pos: -23.5,-10.5 + parent: 2 + - uid: 345 + components: + - type: Transform + pos: -20.5,-1.5 + parent: 2 + - uid: 346 + components: + - type: Transform + pos: -31.5,-8.5 + parent: 2 + - uid: 347 + components: + - type: Transform + pos: -20.5,3.5 + parent: 2 + - uid: 348 + components: + - type: Transform + pos: -20.5,13.5 + parent: 2 + - uid: 349 + components: + - type: Transform + pos: -35.5,-22.5 + parent: 2 + - uid: 350 + components: + - type: Transform + pos: -43.5,-26.5 + parent: 2 + - uid: 351 + components: + - type: Transform + pos: -20.5,-40.5 + parent: 2 + - uid: 352 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -23.5,-50.5 + parent: 2 + - uid: 353 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -18.5,-51.5 + parent: 2 + - uid: 354 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -28.5,-53.5 + parent: 2 + - uid: 355 + components: + - type: Transform + pos: -28.5,-56.5 + parent: 2 + - uid: 356 + components: + - type: Transform + pos: -33.5,-59.5 + parent: 2 + - uid: 357 + components: + - type: Transform + pos: -29.5,-58.5 + parent: 2 + - uid: 358 + components: + - type: Transform + pos: -25.5,-59.5 + parent: 2 + - uid: 359 + components: + - type: Transform + pos: -27.5,-61.5 + parent: 2 + - uid: 360 + components: + - type: Transform + pos: -33.5,-63.5 + parent: 2 + - uid: 361 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -23.5,-61.5 + parent: 2 + - uid: 362 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -8.5,-52.5 + parent: 2 + - uid: 363 + components: + - type: Transform + pos: -4.5,-51.5 + parent: 2 + - uid: 364 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -4.5,-47.5 + parent: 2 + - uid: 365 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -1.5,-42.5 + parent: 2 + - uid: 366 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 23.5,-1.5 + parent: 2 + - uid: 367 + components: + - type: Transform + pos: 22.5,-7.5 + parent: 2 + - uid: 368 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 25.5,-8.5 + parent: 2 + - uid: 369 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 23.5,-13.5 + parent: 2 + - uid: 370 + components: + - type: Transform + pos: 31.5,-7.5 + parent: 2 + - uid: 371 + components: + - type: Transform + pos: 27.5,-11.5 + parent: 2 + - uid: 372 + components: + - type: Transform + pos: 31.5,-11.5 + parent: 2 + - uid: 373 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 43.5,25.5 + parent: 2 + - uid: 374 + components: + - type: Transform + pos: 3.5,21.5 + parent: 2 + - uid: 375 + components: + - type: Transform + pos: 15.5,26.5 + parent: 2 + - uid: 376 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 27.5,26.5 + parent: 2 + - uid: 377 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -23.5,16.5 + parent: 2 + - uid: 378 + components: + - type: Transform + pos: -30.5,20.5 + parent: 2 + - uid: 379 + components: + - type: Transform + pos: -4.5,41.5 + parent: 2 + - uid: 380 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -1.5,42.5 + parent: 2 + - uid: 381 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -7.5,45.5 + parent: 2 + - uid: 382 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 34.5,-35.5 + parent: 2 + - type: Door + secondsUntilStateChange: -52177.2 + state: Opening + - uid: 383 + components: + - type: Transform + pos: 3.5,-35.5 + parent: 2 + - uid: 384 + components: + - type: Transform + pos: 9.5,-35.5 + parent: 2 + - uid: 385 + components: + - type: Transform + pos: 17.5,-34.5 + parent: 2 + - uid: 386 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 31.5,-37.5 + parent: 2 + - uid: 387 + components: + - type: Transform + pos: 37.5,-38.5 + parent: 2 + - uid: 388 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -26.5,-53.5 + parent: 2 + - uid: 389 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -12.5,-14.5 + parent: 2 + - uid: 390 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -12.5,-18.5 + parent: 2 + - uid: 391 + components: + - type: Transform + pos: -16.5,-12.5 + parent: 2 +- proto: AirlockMaintMedLocked + entities: + - uid: 392 + components: + - type: Transform + pos: 21.5,-15.5 + parent: 2 + - uid: 393 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 37.5,-31.5 + parent: 2 + - uid: 394 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 35.5,-26.5 + parent: 2 + - uid: 395 + components: + - type: Transform + pos: 27.5,-33.5 + parent: 2 +- proto: AirlockMaintRnDLocked + entities: + - uid: 396 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -38.5,-34.5 + parent: 2 + - uid: 397 + components: + - type: Transform + pos: -36.5,-32.5 + parent: 2 + - uid: 398 + components: + - type: Transform + pos: -31.5,-43.5 + parent: 2 + - uid: 399 + components: + - type: Transform + pos: -21.5,-34.5 + parent: 2 + - uid: 400 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -12.5,-50.5 + parent: 2 + - uid: 401 + components: + - type: Transform + pos: -40.5,-30.5 + parent: 2 +- proto: AirlockMaintRnDMedLocked + entities: + - uid: 402 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 22.5,-33.5 + parent: 2 +- proto: AirlockMaintSalvageLocked + entities: + - uid: 403 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -37.5,-21.5 + parent: 2 +- proto: AirlockMaintSecLocked + entities: + - uid: 404 + components: + - type: Transform + pos: 26.5,-3.5 + parent: 2 + - uid: 405 + components: + - type: Transform + pos: -16.5,17.5 + parent: 2 +- proto: AirlockMantisGlassLocked + entities: + - uid: 406 + components: + - type: Transform + pos: -10.5,-25.5 + parent: 2 +- proto: AirlockMedicalGlassLocked + entities: + - uid: 407 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 37.5,-13.5 + parent: 2 + - uid: 408 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 18.5,-21.5 + parent: 2 + - uid: 409 + components: + - type: Transform + pos: 39.5,-16.5 + parent: 2 + - uid: 410 + components: + - type: Transform + pos: 29.5,-30.5 + parent: 2 + - uid: 411 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 11.5,-18.5 + parent: 2 + - uid: 412 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 11.5,-23.5 + parent: 2 + - uid: 413 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 11.5,-24.5 + parent: 2 + - uid: 22685 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 11.5,-25.5 + parent: 2 +- proto: AirlockMedicalLocked + entities: + - uid: 415 + components: + - type: Transform + pos: 13.5,-7.5 + parent: 2 + - uid: 416 + components: + - type: Transform + pos: 12.5,-10.5 + parent: 2 + - uid: 417 + components: + - type: Transform + pos: 18.5,-7.5 + parent: 2 + - uid: 418 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 13.5,-12.5 + parent: 2 + - uid: 419 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 13.5,-17.5 + parent: 2 + - uid: 420 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 42.5,-24.5 + parent: 2 +- proto: AirlockMedicalScienceLocked + entities: + - uid: 421 + components: + - type: Transform + pos: 18.5,-29.5 + parent: 2 +- proto: AirlockQuartermasterLocked + entities: + - uid: 422 + components: + - type: Transform + pos: -31.5,6.5 + parent: 2 + - uid: 423 + components: + - type: Transform + pos: -26.5,7.5 + parent: 2 + - uid: 424 + components: + - type: Transform + pos: -30.5,9.5 + parent: 2 + - uid: 425 + components: + - type: Transform + pos: -22.5,7.5 + parent: 2 +- proto: AirlockResearchDirectorLocked + entities: + - uid: 426 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -24.5,-32.5 + parent: 2 + - uid: 427 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -16.5,-25.5 + parent: 2 + - uid: 428 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -16.5,-21.5 + parent: 2 +- proto: AirlockSalvageLocked + entities: + - uid: 429 + components: + - type: Transform + pos: -38.5,-6.5 + parent: 2 + - uid: 430 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -35.5,-8.5 + parent: 2 + - uid: 431 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -37.5,-14.5 + parent: 2 + - uid: 432 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -35.5,-19.5 + parent: 2 +- proto: AirlockScienceGlassLocked + entities: + - uid: 433 + components: + - type: Transform + pos: -22.5,-25.5 + parent: 2 + - uid: 434 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -38.5,-46.5 + parent: 2 + - uid: 435 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -40.5,-46.5 + parent: 2 + - uid: 436 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -40.5,-50.5 + parent: 2 + - uid: 437 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -7.5,-29.5 + parent: 2 + - uid: 438 + components: + - type: Transform + pos: -27.5,-22.5 + parent: 2 +- proto: AirlockScienceLocked + entities: + - uid: 439 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -31.5,-17.5 + parent: 2 + - uid: 440 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -25.5,-17.5 + parent: 2 + - uid: 441 + components: + - type: Transform + pos: -29.5,-25.5 + parent: 2 + - uid: 442 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -29.5,-28.5 + parent: 2 + - uid: 443 + components: + - type: Transform + pos: -33.5,-44.5 + parent: 2 + - uid: 444 + components: + - type: Transform + pos: -35.5,-43.5 + parent: 2 + - uid: 445 + components: + - type: Transform + pos: -35.5,-42.5 + parent: 2 + - uid: 446 + components: + - type: Transform + pos: -31.5,-40.5 + parent: 2 + - uid: 447 + components: + - type: Transform + pos: -21.5,-29.5 + parent: 2 + - uid: 448 + components: + - type: Transform + pos: -4.5,-27.5 + parent: 2 + - uid: 449 + components: + - type: Transform + pos: -1.5,-27.5 + parent: 2 + - uid: 450 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -9.5,-48.5 + parent: 2 + - uid: 451 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -36.5,-37.5 + parent: 2 + - uid: 452 + components: + - type: Transform + pos: -43.5,-37.5 + parent: 2 + - uid: 453 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -42.5,-37.5 + parent: 2 +- proto: AirlockSecurityGlassLocked + entities: + - uid: 454 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -38.5,26.5 + parent: 2 + - uid: 455 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -29.5,-33.5 + parent: 2 + - uid: 456 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 27.5,-1.5 + parent: 2 + - uid: 457 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 44.5,-13.5 + parent: 2 + - uid: 458 + components: + - type: Transform + pos: -12.5,30.5 + parent: 2 + - uid: 459 + components: + - type: Transform + pos: -9.5,36.5 + parent: 2 + - uid: 460 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -9.5,40.5 + parent: 2 + - uid: 461 + components: + - type: Transform + pos: -34.5,24.5 + parent: 2 + - uid: 462 + components: + - type: Transform + pos: -38.5,29.5 + parent: 2 + - uid: 463 + components: + - type: Transform + pos: -36.5,27.5 + parent: 2 + - uid: 464 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -34.5,29.5 + parent: 2 + - uid: 465 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 5.5,-20.5 + parent: 2 + - uid: 466 + components: + - type: Transform + pos: 5.5,-50.5 + parent: 2 + - uid: 467 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -19.5,30.5 + parent: 2 +- proto: AirlockSecurityLawyerGlassLocked + entities: + - uid: 468 + components: + - type: Transform + pos: -14.5,21.5 + parent: 2 + - uid: 469 + components: + - type: Transform + pos: -16.5,21.5 + parent: 2 + - uid: 470 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -16.5,24.5 + parent: 2 + - uid: 471 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -14.5,24.5 + parent: 2 + - uid: 472 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -4.5,32.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18259 + - uid: 473 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -2.5,32.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18259 + - uid: 474 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -2.5,35.5 + parent: 2 + - uid: 475 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -4.5,35.5 + parent: 2 +- proto: AirlockSecurityLocked + entities: + - uid: 479 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -23.5,26.5 + parent: 2 +- proto: AirlockServiceLocked + entities: + - uid: 480 + components: + - type: Transform + pos: 17.5,24.5 + parent: 2 +- proto: AirlockTheatreLocked + entities: + - uid: 481 + components: + - type: Transform + pos: 41.5,11.5 + parent: 2 +- proto: AirlockVirologyGlassLocked + entities: + - uid: 482 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 40.5,-26.5 + parent: 2 + - uid: 483 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 43.5,-31.5 + parent: 2 +- proto: AirSensor + entities: + - uid: 484 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 8.5,49.5 + parent: 2 + - uid: 485 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 21.5,-44.5 + parent: 2 + - uid: 486 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 6.5,-41.5 + parent: 2 + - uid: 487 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 6.5,-45.5 + parent: 2 + - uid: 488 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 3.5,-56.5 + parent: 2 + - uid: 489 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -3.5,-55.5 + parent: 2 + - uid: 490 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -12.5,-56.5 + parent: 2 + - uid: 491 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 0.5,-63.5 + parent: 2 + - uid: 492 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 12.5,-62.5 + parent: 2 + - uid: 493 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 12.5,-53.5 + parent: 2 + - uid: 494 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 35.5,-44.5 + parent: 2 + - uid: 495 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 0.5,-29.5 + parent: 2 + - uid: 496 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -4.5,-22.5 + parent: 2 + - uid: 497 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -4.5,-32.5 + parent: 2 + - uid: 498 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -12.5,-41.5 + parent: 2 + - uid: 499 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -8.5,-27.5 + parent: 2 + - uid: 500 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -20.5,-27.5 + parent: 2 + - uid: 501 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -16.5,-23.5 + parent: 2 + - uid: 502 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -15.5,-20.5 + parent: 2 + - uid: 503 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -22.5,-22.5 + parent: 2 + - uid: 504 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -28.5,-17.5 + parent: 2 + - uid: 505 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -21.5,-33.5 + parent: 2 + - uid: 506 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -27.5,-40.5 + parent: 2 + - uid: 507 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -33.5,-38.5 + parent: 2 + - uid: 508 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -42.5,-41.5 + parent: 2 + - uid: 509 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -43.5,-34.5 + parent: 2 + - uid: 510 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -35.5,-49.5 + parent: 2 + - uid: 511 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -32.5,-22.5 + parent: 2 + - uid: 512 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -37.5,-18.5 + parent: 2 + - uid: 513 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -29.5,-13.5 + parent: 2 + - uid: 514 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -33.5,-7.5 + parent: 2 + - uid: 515 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -39.5,-10.5 + parent: 2 + - uid: 516 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -38.5,-0.5 + parent: 2 + - uid: 517 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -38.5,9.5 + parent: 2 + - uid: 518 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -33.5,7.5 + parent: 2 + - uid: 519 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -27.5,4.5 + parent: 2 + - uid: 520 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -33.5,15.5 + parent: 2 + - uid: 521 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -24.5,7.5 + parent: 2 + - uid: 522 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -27.5,-5.5 + parent: 2 + - uid: 523 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -20.5,1.5 + parent: 2 + - uid: 524 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 0.5,0.5 + parent: 2 + - uid: 525 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 7.5,-24.5 + parent: 2 + - uid: 526 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 8.5,-30.5 + parent: 2 + - uid: 527 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 13.5,-24.5 + parent: 2 + - uid: 528 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 18.5,-31.5 + parent: 2 + - uid: 529 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 15.5,-16.5 + parent: 2 + - uid: 530 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 17.5,-8.5 + parent: 2 + - uid: 531 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 27.5,-29.5 + parent: 2 + - uid: 532 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 31.5,-30.5 + parent: 2 + - uid: 533 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 30.5,-24.5 + parent: 2 + - uid: 534 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 31.5,-18.5 + parent: 2 + - uid: 535 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 24.5,-18.5 + parent: 2 + - uid: 536 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 41.5,-16.5 + parent: 2 + - uid: 537 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 45.5,-22.5 + parent: 2 + - uid: 538 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 40.5,-29.5 + parent: 2 + - uid: 539 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 46.5,-31.5 + parent: 2 + - uid: 540 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 44.5,-18.5 + parent: 2 + - uid: 541 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 33.5,-5.5 + parent: 2 + - uid: 542 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 27.5,-3.5 + parent: 2 + - uid: 543 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 24.5,1.5 + parent: 2 + - uid: 544 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 25.5,7.5 + parent: 2 + - uid: 545 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 40.5,6.5 + parent: 2 + - uid: 546 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 41.5,14.5 + parent: 2 + - uid: 547 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 20.5,18.5 + parent: 2 + - uid: 548 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 23.5,22.5 + parent: 2 + - uid: 549 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 29.5,16.5 + parent: 2 + - uid: 550 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 36.5,16.5 + parent: 2 + - uid: 551 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 43.5,18.5 + parent: 2 + - uid: 552 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 37.5,23.5 + parent: 2 + - uid: 553 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 35.5,28.5 + parent: 2 + - uid: 554 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 43.5,40.5 + parent: 2 + - uid: 555 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 36.5,37.5 + parent: 2 + - uid: 556 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 20.5,31.5 + parent: 2 + - uid: 557 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 15.5,38.5 + parent: 2 + - uid: 558 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 14.5,35.5 + parent: 2 + - uid: 559 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 13.5,43.5 + parent: 2 + - uid: 560 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 20.5,45.5 + parent: 2 + - uid: 561 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 16.5,22.5 + parent: 2 + - uid: 562 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 9.5,12.5 + parent: 2 + - uid: 563 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 6.5,15.5 + parent: 2 + - uid: 564 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 5.5,24.5 + parent: 2 + - uid: 565 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 5.5,31.5 + parent: 2 + - uid: 566 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 5.5,34.5 + parent: 2 + - uid: 567 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 6.5,40.5 + parent: 2 + - uid: 568 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 6.5,54.5 + parent: 2 + - uid: 569 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 1.5,59.5 + parent: 2 + - uid: 570 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -6.5,55.5 + parent: 2 + - uid: 571 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -6.5,49.5 + parent: 2 + - uid: 572 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 1.5,70.5 + parent: 2 + - uid: 573 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -3.5,70.5 + parent: 2 + - uid: 574 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 7.5,70.5 + parent: 2 + - uid: 575 + components: + - type: Transform + pos: 7.5,77.5 + parent: 2 + - uid: 576 + components: + - type: Transform + pos: 6.5,83.5 + parent: 2 + - uid: 577 + components: + - type: Transform + pos: 1.5,83.5 + parent: 2 + - uid: 578 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -4.5,83.5 + parent: 2 + - uid: 579 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -5.5,76.5 + parent: 2 + - uid: 580 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -4.5,38.5 + parent: 2 + - uid: 581 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -8.5,28.5 + parent: 2 + - uid: 582 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -10.5,33.5 + parent: 2 + - uid: 583 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -13.5,39.5 + parent: 2 + - uid: 584 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -15.5,34.5 + parent: 2 + - uid: 585 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -19.5,35.5 + parent: 2 + - uid: 586 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -29.5,29.5 + parent: 2 + - uid: 587 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -28.5,34.5 + parent: 2 + - uid: 588 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -23.5,38.5 + parent: 2 + - uid: 589 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -22.5,44.5 + parent: 2 + - uid: 590 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -30.5,24.5 + parent: 2 + - uid: 591 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -23.5,24.5 + parent: 2 + - uid: 592 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -9.5,19.5 + parent: 2 + - uid: 593 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -19.5,21.5 + parent: 2 + - uid: 594 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -39.5,34.5 + parent: 2 + - uid: 595 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -36.5,29.5 + parent: 2 + - uid: 596 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -36.5,21.5 + parent: 2 + - uid: 597 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -40.5,24.5 + parent: 2 + - uid: 598 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -40.5,20.5 + parent: 2 + - uid: 599 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -4.5,15.5 + parent: 2 + - uid: 600 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -11.5,13.5 + parent: 2 + - uid: 601 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -16.5,11.5 + parent: 2 + - uid: 602 + components: + - type: Transform + pos: 0.5,46.5 + parent: 2 + - uid: 603 + components: + - type: Transform + pos: 1.5,29.5 + parent: 2 + - uid: 604 + components: + - type: Transform + pos: -10.5,-23.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 37 +- proto: AltarSpawner + entities: + - uid: 605 + components: + - type: Transform + pos: 19.5,31.5 + parent: 2 +- proto: AmeController + entities: + - uid: 23870 + components: + - type: Transform + pos: -3.5,-59.5 + parent: 2 +- proto: AmeJar + entities: + - uid: 607 + components: + - type: Transform + pos: -6.5,-60.5 + parent: 2 + - uid: 608 + components: + - type: Transform + pos: -6.3261127,-60.425095 + parent: 2 + - uid: 609 + components: + - type: Transform + pos: -6.5988398,-60.404114 + parent: 2 +- proto: AmeShielding + entities: + - uid: 606 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -5.5,-57.5 + parent: 2 + - uid: 610 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -5.5,-56.5 + parent: 2 + - uid: 23096 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -5.5,-58.5 + parent: 2 + - uid: 23097 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -4.5,-56.5 + parent: 2 + - uid: 23098 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -4.5,-57.5 + parent: 2 + - uid: 23099 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -4.5,-58.5 + parent: 2 + - uid: 23100 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -3.5,-56.5 + parent: 2 + - uid: 23101 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -3.5,-57.5 + parent: 2 + - uid: 23102 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -3.5,-58.5 + parent: 2 + - uid: 23103 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -2.5,-56.5 + parent: 2 + - uid: 23104 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -2.5,-57.5 + parent: 2 + - uid: 23105 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -2.5,-58.5 + parent: 2 + - uid: 23106 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -1.5,-56.5 + parent: 2 + - uid: 23862 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -1.5,-58.5 + parent: 2 + - uid: 23869 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -1.5,-57.5 + parent: 2 +- proto: AnalysisComputerCircuitboard + entities: + - uid: 617 + components: + - type: Transform + pos: -4.5775924,-35.57102 + parent: 2 +- proto: AnomalyLocatorEmpty + entities: + - uid: 618 + components: + - type: Transform + pos: -47.466526,-31.3424 + parent: 2 +- proto: AnomalyVesselCircuitboard + entities: + - uid: 619 + components: + - type: Transform + pos: -4.40976,-35.375214 + parent: 2 +- proto: APCBasic + entities: + - uid: 620 + components: + - type: Transform + pos: 6.5,11.5 + parent: 2 + - uid: 621 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 44.5,5.5 + parent: 2 + - uid: 622 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 25.5,-1.5 + parent: 2 + - uid: 623 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -33.5,-60.5 + parent: 2 + - uid: 624 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -1.5,41.5 + parent: 2 + - uid: 625 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 5.5,-52.5 + parent: 2 + - uid: 626 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 33.5,-46.5 + parent: 2 + - uid: 627 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -8.5,-72.5 + parent: 2 + - uid: 628 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -21.5,-60.5 + parent: 2 + - uid: 629 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 24.5,-21.5 + parent: 2 + - uid: 630 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 25.5,-33.5 + parent: 2 + - uid: 631 + components: + - type: Transform + pos: 9.5,-17.5 + parent: 2 + - uid: 632 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 3.5,-30.5 + parent: 2 + - uid: 633 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 41.5,-35.5 + parent: 2 + - uid: 634 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 16.5,-17.5 + parent: 2 + - uid: 635 + components: + - type: Transform + pos: -15.5,-18.5 + parent: 2 + - uid: 636 + components: + - type: Transform + pos: -25.5,8.5 + parent: 2 + - uid: 637 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -24.5,10.5 + parent: 2 + - uid: 638 + components: + - type: Transform + pos: -42.5,-6.5 + parent: 2 + - uid: 639 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -25.5,-18.5 + parent: 2 + - uid: 640 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -26.5,-36.5 + parent: 2 + - uid: 641 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -40.5,-37.5 + parent: 2 + - uid: 642 + components: + - type: Transform + pos: -39.5,-24.5 + parent: 2 + - uid: 643 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -40.5,-49.5 + parent: 2 + - uid: 644 + components: + - type: Transform + pos: -22.5,-42.5 + parent: 2 + - uid: 645 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -23.5,-5.5 + parent: 2 + - uid: 646 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 9.5,-50.5 + parent: 2 + - uid: 647 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -1.5,-29.5 + parent: 2 + - uid: 648 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 17.5,5.5 + parent: 2 + - uid: 649 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 27.5,23.5 + parent: 2 + - uid: 650 + components: + - type: Transform + pos: -9.5,-34.5 + parent: 2 + - uid: 651 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -8.5,10.5 + parent: 2 + - uid: 652 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 4.5,-10.5 + parent: 2 + - uid: 653 + components: + - type: Transform + pos: -4.5,-38.5 + parent: 2 + - uid: 654 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 9.5,-62.5 + parent: 2 + - uid: 655 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -7.5,44.5 + parent: 2 + - uid: 656 + components: + - type: Transform + pos: 9.5,57.5 + parent: 2 + - uid: 657 + components: + - type: Transform + pos: 9.5,51.5 + parent: 2 + - uid: 658 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -9.5,51.5 + parent: 2 + - uid: 659 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 27.5,34.5 + parent: 2 + - uid: 660 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 9.5,29.5 + parent: 2 + - uid: 661 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 9.5,43.5 + parent: 2 + - uid: 662 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -36.5,15.5 + parent: 2 + - uid: 663 + components: + - type: Transform + pos: -43.5,18.5 + parent: 2 + - uid: 664 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -3.5,73.5 + parent: 2 + - uid: 665 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -26.5,18.5 + parent: 2 + - uid: 666 + components: + - type: Transform + pos: -25.5,31.5 + parent: 2 + - uid: 667 + components: + - type: Transform + pos: -20.5,23.5 + parent: 2 + - uid: 668 + components: + - type: Transform + pos: -19.5,37.5 + parent: 2 + - uid: 669 + components: + - type: Transform + pos: -30.5,40.5 + parent: 2 + - uid: 670 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -20.5,41.5 + parent: 2 + - uid: 671 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -36.5,18.5 + parent: 2 + - uid: 672 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 41.5,26.5 + parent: 2 + - uid: 673 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 18.5,37.5 + parent: 2 + - uid: 674 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 12.5,16.5 + parent: 2 + - uid: 675 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 31.5,-5.5 + parent: 2 + - uid: 676 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -35.5,5.5 + parent: 2 + - uid: 677 + components: + - type: Transform + pos: -31.5,-19.5 + parent: 2 + - uid: 678 + components: + - type: Transform + pos: -18.5,3.5 + parent: 2 + - uid: 679 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -14.5,-11.5 + parent: 2 + - uid: 680 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -27.5,-27.5 + parent: 2 +- proto: APCConstructed + entities: + - uid: 681 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 36.5,12.5 + parent: 2 +- proto: APCHighCapacity + entities: + - uid: 682 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -40.5,5.5 + parent: 2 + - uid: 683 + components: + - type: Transform + pos: 16.5,-21.5 + parent: 2 +- proto: AppraisalTool + entities: + - uid: 684 + components: + - type: Transform + pos: -30.721203,-6.017397 + parent: 2 + - uid: 685 + components: + - type: Transform + pos: -30.469452,-5.975439 + parent: 2 + - uid: 686 + components: + - type: Transform + pos: -39.443012,8.461224 + parent: 2 +- proto: Ash + entities: + - uid: 687 + components: + - type: Transform + pos: -14.458229,4.527739 + parent: 2 + - uid: 688 + components: + - type: Transform + pos: -15.442975,-4.3446994 + parent: 2 + - uid: 689 + components: + - type: Transform + pos: 23.497353,-9.44327 + parent: 2 +- proto: AtmosDeviceFanTiny + entities: + - uid: 690 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -45.5,-1.5 + parent: 2 + - uid: 691 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -45.5,0.5 + parent: 2 + - uid: 692 + components: + - type: Transform + pos: -49.5,-26.5 + parent: 2 + - uid: 693 + components: + - type: Transform + pos: 43.5,48.5 + parent: 2 + - uid: 694 + components: + - type: Transform + pos: 46.5,32.5 + parent: 2 + - uid: 695 + components: + - type: Transform + pos: 46.5,39.5 + parent: 2 + - uid: 696 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 46.5,-12.5 + parent: 2 + - uid: 697 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 46.5,-6.5 + parent: 2 + - uid: 698 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 46.5,-4.5 + parent: 2 + - uid: 699 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 46.5,-14.5 + parent: 2 + - uid: 700 + components: + - type: Transform + pos: -11.5,43.5 + parent: 2 + - uid: 701 + components: + - type: Transform + pos: -43.5,22.5 + parent: 2 + - uid: 702 + components: + - type: Transform + pos: -43.5,26.5 + parent: 2 + - uid: 703 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -8.5,77.5 + parent: 2 + - uid: 704 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 0.5,77.5 + parent: 2 + - uid: 705 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 1.5,78.5 + parent: 2 + - uid: 706 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 2.5,77.5 + parent: 2 + - uid: 707 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 1.5,76.5 + parent: 2 + - uid: 708 + components: + - type: Transform + pos: 40.5,-43.5 + parent: 2 + - uid: 709 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -10.5,-61.5 + parent: 2 + - uid: 710 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 1.5,81.5 + parent: 2 + - uid: 711 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -30.5,24.5 + parent: 2 + - uid: 712 + components: + - type: Transform + pos: -39.5,-18.5 + parent: 2 +- proto: AtmosFixBlockerMarker + entities: + - uid: 713 + components: + - type: Transform + pos: 36.5,-53.5 + parent: 2 + - uid: 714 + components: + - type: Transform + pos: 36.5,-54.5 + parent: 2 + - uid: 715 + components: + - type: Transform + pos: 36.5,-55.5 + parent: 2 + - uid: 716 + components: + - type: Transform + pos: 37.5,-53.5 + parent: 2 + - uid: 717 + components: + - type: Transform + pos: 37.5,-54.5 + parent: 2 + - uid: 718 + components: + - type: Transform + pos: 37.5,-55.5 + parent: 2 + - uid: 719 + components: + - type: Transform + pos: 38.5,-53.5 + parent: 2 + - uid: 720 + components: + - type: Transform + pos: 38.5,-54.5 + parent: 2 + - uid: 721 + components: + - type: Transform + pos: 38.5,-55.5 + parent: 2 + - uid: 722 + components: + - type: Transform + pos: 41.5,-43.5 + parent: 2 + - uid: 723 + components: + - type: Transform + pos: 42.5,-43.5 + parent: 2 + - uid: 724 + components: + - type: Transform + pos: 43.5,-43.5 + parent: 2 + - uid: 725 + components: + - type: Transform + pos: 44.5,-43.5 + parent: 2 + - uid: 726 + components: + - type: Transform + pos: 45.5,-43.5 + parent: 2 + - uid: 727 + components: + - type: Transform + pos: 42.5,-42.5 + parent: 2 + - uid: 728 + components: + - type: Transform + pos: 42.5,-44.5 + parent: 2 + - uid: 729 + components: + - type: Transform + pos: 42.5,-45.5 + parent: 2 + - uid: 730 + components: + - type: Transform + pos: 36.5,-61.5 + parent: 2 + - uid: 731 + components: + - type: Transform + pos: 36.5,-62.5 + parent: 2 + - uid: 732 + components: + - type: Transform + pos: 36.5,-63.5 + parent: 2 + - uid: 733 + components: + - type: Transform + pos: 37.5,-61.5 + parent: 2 + - uid: 734 + components: + - type: Transform + pos: 37.5,-62.5 + parent: 2 + - uid: 735 + components: + - type: Transform + pos: 37.5,-63.5 + parent: 2 + - uid: 736 + components: + - type: Transform + pos: 38.5,-61.5 + parent: 2 + - uid: 737 + components: + - type: Transform + pos: 38.5,-62.5 + parent: 2 + - uid: 738 + components: + - type: Transform + pos: 38.5,-63.5 + parent: 2 + - uid: 739 + components: + - type: Transform + pos: 26.5,-68.5 + parent: 2 + - uid: 740 + components: + - type: Transform + pos: 26.5,-69.5 + parent: 2 + - uid: 741 + components: + - type: Transform + pos: 26.5,-70.5 + parent: 2 + - uid: 742 + components: + - type: Transform + pos: 27.5,-68.5 + parent: 2 + - uid: 743 + components: + - type: Transform + pos: 27.5,-69.5 + parent: 2 + - uid: 744 + components: + - type: Transform + pos: 27.5,-70.5 + parent: 2 + - uid: 745 + components: + - type: Transform + pos: 28.5,-68.5 + parent: 2 + - uid: 746 + components: + - type: Transform + pos: 28.5,-69.5 + parent: 2 + - uid: 747 + components: + - type: Transform + pos: 28.5,-70.5 + parent: 2 + - uid: 748 + components: + - type: Transform + pos: 27.5,-71.5 + parent: 2 + - uid: 749 + components: + - type: Transform + pos: 18.5,-55.5 + parent: 2 + - uid: 750 + components: + - type: Transform + pos: 18.5,-54.5 + parent: 2 + - uid: 751 + components: + - type: Transform + pos: 18.5,-53.5 + parent: 2 + - uid: 752 + components: + - type: Transform + pos: 17.5,-55.5 + parent: 2 + - uid: 753 + components: + - type: Transform + pos: 17.5,-54.5 + parent: 2 + - uid: 754 + components: + - type: Transform + pos: 17.5,-53.5 + parent: 2 + - uid: 755 + components: + - type: Transform + pos: 16.5,-55.5 + parent: 2 + - uid: 756 + components: + - type: Transform + pos: 16.5,-54.5 + parent: 2 + - uid: 757 + components: + - type: Transform + pos: 16.5,-53.5 + parent: 2 +- proto: AtmosFixFreezerMarker + entities: + - uid: 758 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 21.5,23.5 + parent: 2 + - uid: 759 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 21.5,22.5 + parent: 2 + - uid: 760 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 21.5,21.5 + parent: 2 + - uid: 761 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 22.5,23.5 + parent: 2 + - uid: 762 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 22.5,22.5 + parent: 2 + - uid: 763 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 22.5,21.5 + parent: 2 + - uid: 764 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 23.5,23.5 + parent: 2 + - uid: 765 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 23.5,22.5 + parent: 2 + - uid: 766 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 23.5,21.5 + parent: 2 + - uid: 767 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 24.5,23.5 + parent: 2 + - uid: 768 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 24.5,22.5 + parent: 2 + - uid: 769 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 24.5,21.5 + parent: 2 + - uid: 770 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 25.5,23.5 + parent: 2 + - uid: 771 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 25.5,22.5 + parent: 2 + - uid: 772 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 25.5,21.5 + parent: 2 + - uid: 773 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 26.5,23.5 + parent: 2 + - uid: 774 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 26.5,22.5 + parent: 2 + - uid: 775 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 26.5,21.5 + parent: 2 +- proto: AtmosFixNitrogenMarker + entities: + - uid: 776 + components: + - type: Transform + pos: 18.5,-63.5 + parent: 2 + - uid: 777 + components: + - type: Transform + pos: 18.5,-62.5 + parent: 2 + - uid: 778 + components: + - type: Transform + pos: 18.5,-61.5 + parent: 2 + - uid: 779 + components: + - type: Transform + pos: 17.5,-63.5 + parent: 2 + - uid: 780 + components: + - type: Transform + pos: 17.5,-62.5 + parent: 2 + - uid: 781 + components: + - type: Transform + pos: 17.5,-61.5 + parent: 2 + - uid: 782 + components: + - type: Transform + pos: 16.5,-63.5 + parent: 2 + - uid: 783 + components: + - type: Transform + pos: 16.5,-62.5 + parent: 2 + - uid: 784 + components: + - type: Transform + pos: 16.5,-61.5 + parent: 2 +- proto: AtmosFixOxygenMarker + entities: + - uid: 785 + components: + - type: Transform + pos: 18.5,-59.5 + parent: 2 + - uid: 786 + components: + - type: Transform + pos: 18.5,-58.5 + parent: 2 + - uid: 787 + components: + - type: Transform + pos: 18.5,-57.5 + parent: 2 + - uid: 788 + components: + - type: Transform + pos: 17.5,-59.5 + parent: 2 + - uid: 789 + components: + - type: Transform + pos: 17.5,-58.5 + parent: 2 + - uid: 790 + components: + - type: Transform + pos: 17.5,-57.5 + parent: 2 + - uid: 791 + components: + - type: Transform + pos: 16.5,-59.5 + parent: 2 + - uid: 792 + components: + - type: Transform + pos: 16.5,-58.5 + parent: 2 + - uid: 793 + components: + - type: Transform + pos: 16.5,-57.5 + parent: 2 +- proto: AtmosFixPlasmaMarker + entities: + - uid: 794 + components: + - type: Transform + pos: 36.5,-57.5 + parent: 2 + - uid: 795 + components: + - type: Transform + pos: 36.5,-58.5 + parent: 2 + - uid: 796 + components: + - type: Transform + pos: 36.5,-59.5 + parent: 2 + - uid: 797 + components: + - type: Transform + pos: 37.5,-57.5 + parent: 2 + - uid: 798 + components: + - type: Transform + pos: 37.5,-58.5 + parent: 2 + - uid: 799 + components: + - type: Transform + pos: 37.5,-59.5 + parent: 2 + - uid: 800 + components: + - type: Transform + pos: 38.5,-57.5 + parent: 2 + - uid: 801 + components: + - type: Transform + pos: 38.5,-58.5 + parent: 2 + - uid: 802 + components: + - type: Transform + pos: 38.5,-59.5 + parent: 2 +- proto: Autolathe + entities: + - uid: 803 + components: + - type: Transform + pos: -36.5,10.5 + parent: 2 + - uid: 804 + components: + - type: Transform + pos: -32.5,-25.5 + parent: 2 + - uid: 805 + components: + - type: Transform + pos: -33.5,-29.5 + parent: 2 + - uid: 806 + components: + - type: Transform + pos: 0.5,-47.5 + parent: 2 +- proto: BalloonNT + entities: + - uid: 22318 + components: + - type: Transform + parent: 22310 + - type: Physics + angularDamping: 0 + linearDamping: 0 + canCollide: False + - type: InsideEntityStorage +- proto: BannerMedical + entities: + - uid: 807 + components: + - type: Transform + pos: 8.5,-12.5 + parent: 2 + - uid: 808 + components: + - type: Transform + pos: 14.5,-38.5 + parent: 2 +- proto: Barricade + entities: + - uid: 809 + components: + - type: Transform + pos: -18.5,-10.5 + parent: 2 + - uid: 810 + components: + - type: Transform + pos: -20.5,-10.5 + parent: 2 +- proto: BarricadeBlock + entities: + - uid: 812 + components: + - type: Transform + pos: -15.5,3.5 + parent: 2 + - uid: 813 + components: + - type: Transform + pos: -15.5,-1.5 + parent: 2 + - uid: 814 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -1.5,-14.5 + parent: 2 + - uid: 815 + components: + - type: Transform + pos: -9.5,-17.5 + parent: 2 + - uid: 816 + components: + - type: Transform + pos: -19.5,-10.5 + parent: 2 + - uid: 817 + components: + - type: Transform + pos: -23.5,-65.5 + parent: 2 + - uid: 822 + components: + - type: Transform + pos: 37.5,-38.5 + parent: 2 + - uid: 823 + components: + - type: Transform + pos: 5.5,-33.5 + parent: 2 + - uid: 824 + components: + - type: Transform + pos: 5.5,-14.5 + parent: 2 +- proto: BarricadeDirectional + entities: + - uid: 827 + components: + - type: Transform + pos: 34.5,-34.5 + parent: 2 +- proto: BarSign + entities: + - uid: 828 + components: + - type: Transform + pos: 18.5,15.5 + parent: 2 +- proto: BarSignMaidCafe + entities: + - uid: 829 + components: + - type: Transform + pos: -30.5,-56.5 + parent: 2 +- proto: BaseGasCondenser + entities: + - uid: 830 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 7.5,-32.5 + parent: 2 +- proto: Beaker + entities: + - uid: 831 + components: + - type: Transform + pos: -26.382198,-16.162254 + parent: 2 + - uid: 832 + components: + - type: Transform + pos: -26.55003,-16.267149 + parent: 2 + - uid: 833 + components: + - type: Transform + pos: 41.006527,-34.3272 + parent: 2 + - uid: 834 + components: + - type: Transform + pos: 41.090443,-34.233963 + parent: 2 + - uid: 835 + components: + - type: MetaData + name: leporazine beaker + - type: Transform + pos: 28.631546,-31.392082 + parent: 2 + - type: SolutionContainerManager + solutions: + beaker: + temperature: 293.15 + canMix: True + canReact: True + maxVol: 50 + name: null + reagents: + - data: null + ReagentId: Leporazine + Quantity: 50 + - uid: 836 + components: + - type: MetaData + name: leporazine beaker + - type: Transform + pos: 28.790054,-31.326815 + parent: 2 + - type: SolutionContainerManager + solutions: + beaker: + temperature: 293.15 + canMix: True + canReact: True + maxVol: 50 + name: null + reagents: + - data: null + ReagentId: Leporazine + Quantity: 50 + - uid: 838 + components: + - type: Transform + parent: 837 + - type: Physics + canCollide: False + - uid: 839 + components: + - type: Transform + pos: 36.666573,-36.28809 + parent: 2 + - type: SolutionContainerManager + solutions: + beaker: + temperature: 293.15 + canMix: True + canReact: True + maxVol: 50 + name: null + reagents: + - data: null + ReagentId: Tritium + Quantity: 1 +- proto: Bed + entities: + - uid: 840 + components: + - type: Transform + pos: -24.5,4.5 + parent: 2 + - uid: 841 + components: + - type: Transform + pos: -14.5,-20.5 + parent: 2 + - uid: 842 + components: + - type: Transform + pos: -25.5,-67.5 + parent: 2 + - uid: 843 + components: + - type: Transform + pos: -7.5,-49.5 + parent: 2 + - uid: 844 + components: + - type: Transform + pos: 43.5,14.5 + parent: 2 + - uid: 845 + components: + - type: Transform + pos: 43.5,12.5 + parent: 2 + - uid: 846 + components: + - type: Transform + pos: 41.5,15.5 + parent: 2 + - uid: 847 + components: + - type: Transform + pos: 15.5,44.5 + parent: 2 + - uid: 848 + components: + - type: Transform + pos: 26.5,35.5 + parent: 2 + - uid: 849 + components: + - type: Transform + pos: 26.5,40.5 + parent: 2 + - uid: 850 + components: + - type: Transform + pos: -11.5,22.5 + parent: 2 + - uid: 851 + components: + - type: Transform + pos: -5.5,22.5 + parent: 2 + - uid: 852 + components: + - type: Transform + pos: -5.5,23.5 + parent: 2 + - uid: 853 + components: + - type: Transform + pos: -5.5,24.5 + parent: 2 + - uid: 854 + components: + - type: Transform + pos: -2.5,22.5 + parent: 2 + - uid: 855 + components: + - type: Transform + pos: -21.5,44.5 + parent: 2 + - uid: 856 + components: + - type: Transform + pos: -32.5,33.5 + parent: 2 + - uid: 857 + components: + - type: Transform + pos: -32.5,36.5 + parent: 2 + - uid: 858 + components: + - type: Transform + pos: -32.5,39.5 + parent: 2 + - uid: 859 + components: + - type: Transform + pos: -5.5,48.5 + parent: 2 + - uid: 860 + components: + - type: Transform + pos: 8.5,27.5 + parent: 2 + - uid: 861 + components: + - type: Transform + pos: -0.5,-53.5 + parent: 2 + - uid: 862 + components: + - type: Transform + pos: -34.5,-58.5 + parent: 2 + - uid: 863 + components: + - type: Transform + pos: -34.5,-60.5 + parent: 2 +- proto: BedsheetBrown + entities: + - uid: 864 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -2.5,22.5 + parent: 2 + - uid: 865 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -5.5,22.5 + parent: 2 + - uid: 866 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -5.5,23.5 + parent: 2 + - uid: 867 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -5.5,24.5 + parent: 2 + - uid: 868 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -11.5,22.5 + parent: 2 + - uid: 869 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -32.5,33.5 + parent: 2 + - uid: 870 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -32.5,36.5 + parent: 2 + - uid: 871 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -32.5,39.5 + parent: 2 +- proto: BedsheetCaptain + entities: + - uid: 872 + components: + - type: Transform + pos: -5.5,48.5 + parent: 2 +- proto: BedsheetClown + entities: + - uid: 873 + components: + - type: Transform + pos: 43.5,12.5 + parent: 2 + - uid: 10533 + components: + - type: Transform + parent: 10524 + - type: Physics + angularDamping: 0 + linearDamping: 0 + canCollide: False + - type: InsideEntityStorage +- proto: BedsheetCosmos + entities: + - uid: 874 + components: + - type: Transform + pos: 41.5,15.5 + parent: 2 + - uid: 875 + components: + - type: Transform + pos: -34.5,-60.5 + parent: 2 +- proto: BedsheetCult + entities: + - uid: 876 + components: + - type: Transform + pos: 15.5,44.5 + parent: 2 + - uid: 877 + components: + - type: Transform + pos: -34.5,-58.5 + parent: 2 +- proto: BedsheetGreen + entities: + - uid: 878 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -7.5,-49.5 + parent: 2 +- proto: BedsheetHOS + entities: + - uid: 879 + components: + - type: Transform + pos: -21.5,44.5 + parent: 2 +- proto: BedsheetMedical + entities: + - uid: 880 + components: + - type: Transform + pos: 19.5,-26.5 + parent: 2 + - uid: 881 + components: + - type: Transform + pos: 19.5,-25.5 + parent: 2 + - uid: 882 + components: + - type: Transform + pos: 15.5,-25.5 + parent: 2 + - uid: 883 + components: + - type: Transform + pos: 15.5,-26.5 + parent: 2 + - uid: 884 + components: + - type: Transform + pos: 17.5,-25.5 + parent: 2 + - uid: 885 + components: + - type: Transform + pos: 17.5,-26.5 + parent: 2 +- proto: BedsheetMime + entities: + - uid: 886 + components: + - type: Transform + pos: 43.5,14.5 + parent: 2 + - uid: 10516 + components: + - type: Transform + parent: 10501 + - type: Physics + angularDamping: 0 + linearDamping: 0 + canCollide: False + - type: InsideEntityStorage +- proto: BedsheetNT + entities: + - uid: 887 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 8.5,27.5 + parent: 2 +- proto: BedsheetQM + entities: + - uid: 888 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -24.5,4.5 + parent: 2 +- proto: BedsheetRD + entities: + - uid: 889 + components: + - type: Transform + pos: -14.5,-20.5 + parent: 2 +- proto: BedsheetSpawner + entities: + - uid: 890 + components: + - type: Transform + pos: 26.5,35.5 + parent: 2 + - uid: 891 + components: + - type: Transform + pos: 26.5,40.5 + parent: 2 +- proto: BedsheetSyndie + entities: + - uid: 892 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -0.5,-53.5 + parent: 2 +- proto: BenchPewLeft + entities: + - uid: 893 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -13.5,8.5 + parent: 2 + - uid: 894 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -10.5,10.5 + parent: 2 + - uid: 895 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -13.5,9.5 + parent: 2 + - uid: 896 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -13.5,10.5 + parent: 2 + - uid: 897 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -10.5,12.5 + parent: 2 + - uid: 898 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -13.5,12.5 + parent: 2 + - uid: 899 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -10.5,9.5 + parent: 2 + - uid: 900 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 23.5,29.5 + parent: 2 + - uid: 901 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 22.5,29.5 + parent: 2 + - uid: 904 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 21.5,29.5 + parent: 2 + - uid: 907 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 22.5,42.5 + parent: 2 + - uid: 916 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 23.5,32.5 + parent: 2 + - uid: 917 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 21.5,32.5 + parent: 2 + - uid: 918 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 18.5,43.5 + parent: 2 + - uid: 921 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 22.5,32.5 + parent: 2 +- proto: BenchPewRight + entities: + - uid: 902 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 21.5,30.5 + parent: 2 + - uid: 903 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 18.5,42.5 + parent: 2 + - uid: 905 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 22.5,30.5 + parent: 2 + - uid: 906 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 23.5,30.5 + parent: 2 + - uid: 908 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -9.5,12.5 + parent: 2 + - uid: 909 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -12.5,12.5 + parent: 2 + - uid: 910 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -9.5,10.5 + parent: 2 + - uid: 911 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -9.5,9.5 + parent: 2 + - uid: 912 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -12.5,8.5 + parent: 2 + - uid: 913 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -12.5,10.5 + parent: 2 + - uid: 914 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -12.5,9.5 + parent: 2 + - uid: 915 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 21.5,33.5 + parent: 2 + - uid: 919 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 23.5,33.5 + parent: 2 + - uid: 920 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 22.5,33.5 + parent: 2 + - uid: 922 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 22.5,43.5 + parent: 2 +- proto: BenchSofaCorner + entities: + - uid: 923 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 10.5,27.5 + parent: 2 + - uid: 924 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 10.5,24.5 + parent: 2 +- proto: BenchSofaCorpLeft + entities: + - uid: 925 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 43.5,-25.5 + parent: 2 +- proto: BenchSofaCorpRight + entities: + - uid: 926 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 44.5,-25.5 + parent: 2 +- proto: BenchSofaLeft + entities: + - uid: 927 + components: + - type: Transform + pos: 11.5,27.5 + parent: 2 + - uid: 929 + components: + - type: Transform + pos: -16.5,12.5 + parent: 2 + - uid: 930 + components: + - type: Transform + pos: -27.5,6.5 + parent: 2 + - uid: 931 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -28.5,4.5 + parent: 2 + - uid: 932 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 32.5,5.5 + parent: 2 + - uid: 933 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 20.5,4.5 + parent: 2 + - uid: 934 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 18.5,5.5 + parent: 2 + - uid: 935 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 24.5,5.5 + parent: 2 + - uid: 936 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 35.5,4.5 + parent: 2 + - uid: 937 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 26.5,4.5 + parent: 2 + - uid: 938 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 37.5,-2.5 + parent: 2 + - uid: 939 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 40.5,-3.5 + parent: 2 + - uid: 940 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -4.5,53.5 + parent: 2 + - uid: 941 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -2.5,51.5 + parent: 2 +- proto: BenchSofaMiddle + entities: + - uid: 942 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 10.5,25.5 + parent: 2 + - uid: 943 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -2.5,52.5 + parent: 2 + - uid: 944 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -4.5,52.5 + parent: 2 + - uid: 945 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 10.5,26.5 + parent: 2 +- proto: BenchSofaRight + entities: + - uid: 946 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 11.5,24.5 + parent: 2 + - uid: 947 + components: + - type: Transform + pos: -17.5,12.5 + parent: 2 + - uid: 949 + components: + - type: Transform + pos: -28.5,6.5 + parent: 2 + - uid: 950 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -27.5,4.5 + parent: 2 + - uid: 951 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 24.5,4.5 + parent: 2 + - uid: 952 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 32.5,4.5 + parent: 2 + - uid: 953 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 18.5,4.5 + parent: 2 + - uid: 954 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 20.5,5.5 + parent: 2 + - uid: 955 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 26.5,5.5 + parent: 2 + - uid: 956 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 35.5,5.5 + parent: 2 + - uid: 957 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 37.5,-3.5 + parent: 2 + - uid: 958 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 40.5,-2.5 + parent: 2 + - uid: 959 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -4.5,51.5 + parent: 2 + - uid: 960 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -2.5,53.5 + parent: 2 +- proto: BenchSteelLeft + entities: + - uid: 961 + components: + - type: Transform + pos: 35.5,-9.5 + parent: 2 + - uid: 962 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 40.5,-6.5 + parent: 2 + - uid: 963 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -38.5,19.5 + parent: 2 + - uid: 964 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -3.5,39.5 + parent: 2 + - uid: 965 + components: + - type: Transform + pos: -5.5,38.5 + parent: 2 + - uid: 966 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 8.5,5.5 + parent: 2 + - uid: 967 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -6.5,6.5 + parent: 2 +- proto: BenchSteelMiddle + entities: + - uid: 968 + components: + - type: Transform + pos: 39.5,-9.5 + parent: 2 + - uid: 969 + components: + - type: Transform + pos: 38.5,-9.5 + parent: 2 + - uid: 970 + components: + - type: Transform + pos: 37.5,-9.5 + parent: 2 + - uid: 971 + components: + - type: Transform + pos: 36.5,-9.5 + parent: 2 + - uid: 972 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 39.5,-6.5 + parent: 2 + - uid: 973 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 38.5,-6.5 + parent: 2 + - uid: 974 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 37.5,-6.5 + parent: 2 + - uid: 975 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 36.5,-6.5 + parent: 2 + - uid: 976 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -39.5,19.5 + parent: 2 + - uid: 977 + components: + - type: Transform + pos: -4.5,38.5 + parent: 2 + - uid: 978 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -4.5,39.5 + parent: 2 +- proto: BenchSteelRight + entities: + - uid: 979 + components: + - type: Transform + pos: 40.5,-9.5 + parent: 2 + - uid: 980 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 35.5,-6.5 + parent: 2 + - uid: 981 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -40.5,19.5 + parent: 2 + - uid: 982 + components: + - type: Transform + pos: -3.5,38.5 + parent: 2 + - uid: 983 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -5.5,39.5 + parent: 2 + - uid: 984 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 8.5,6.5 + parent: 2 + - uid: 985 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -6.5,5.5 + parent: 2 +- proto: BenchSteelWhiteLeft + entities: + - uid: 986 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 6.5,-25.5 + parent: 2 + - uid: 987 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 9.5,-25.5 + parent: 2 + - uid: 988 + components: + - type: Transform + pos: 8.5,-23.5 + parent: 2 + - uid: 989 + components: + - type: Transform + pos: 5.5,-23.5 + parent: 2 +- proto: BenchSteelWhiteRight + entities: + - uid: 990 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 5.5,-25.5 + parent: 2 + - uid: 991 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 8.5,-25.5 + parent: 2 + - uid: 992 + components: + - type: Transform + pos: 6.5,-23.5 + parent: 2 + - uid: 993 + components: + - type: Transform + pos: 9.5,-23.5 + parent: 2 +- proto: BigBox + entities: + - uid: 994 + components: + - type: Transform + pos: -26.502766,12.471382 + parent: 2 + - uid: 995 + components: + - type: Transform + pos: 30.508911,-33.498234 + parent: 2 + - type: ContainerContainer + containers: + entity_storage: !type:Container + showEnts: False + occludes: True + ents: + - 997 + - 996 +- proto: Biofabricator + entities: + - uid: 8900 + components: + - type: Transform + pos: 19.5,-29.5 + parent: 2 +- proto: BlastDoor + entities: + - uid: 998 + components: + - type: Transform + pos: -45.5,-2.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18241 + - uid: 999 + components: + - type: Transform + pos: -45.5,1.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18242 + - uid: 1000 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -45.5,18.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18244 + - uid: 1001 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -15.5,-32.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18238 + - uid: 1002 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -15.5,-31.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18238 + - uid: 1003 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -1.5,-22.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18279 + - uid: 1004 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -1.5,-21.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18279 + - uid: 1005 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -44.5,-47.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18256 + - 18255 + - uid: 1006 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -44.5,-46.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18256 + - 18255 + - uid: 1007 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -44.5,-45.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18256 + - 18255 + - uid: 1008 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -44.5,-52.5 + parent: 2 + - uid: 1009 + components: + - type: Transform + pos: 20.5,47.5 + parent: 2 + - type: DeviceLinkSink + links: + - 19982 + - uid: 1010 + components: + - type: Transform + pos: 13.5,-61.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18290 + - 18270 + - uid: 1011 + components: + - type: Transform + pos: 12.5,-61.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18290 + - 18270 + - uid: 1012 + components: + - type: Transform + pos: 11.5,-61.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18290 + - 18270 + - uid: 1013 + components: + - type: Transform + pos: 42.5,-45.5 + parent: 2 + - uid: 1014 + components: + - type: Transform + pos: 45.5,-43.5 + parent: 2 + - uid: 1015 + components: + - type: Transform + pos: 27.5,-71.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18266 +- proto: BlastDoorOpen + entities: + - uid: 154 + components: + - type: Transform + pos: -2.5,-61.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18291 + - uid: 189 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 9.5,-74.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18291 + - uid: 272 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 2.5,-77.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18291 + - uid: 288 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -0.5,-77.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18291 + - uid: 414 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -8.5,-74.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18291 + - uid: 1016 + components: + - type: Transform + pos: -19.5,-32.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18331 + - 18267 + - uid: 1017 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -1.5,19.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18257 + - uid: 1018 + components: + - type: Transform + pos: -1.5,37.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18258 + - uid: 1019 + components: + - type: Transform + pos: -1.5,38.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18258 + - uid: 1020 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -4.5,62.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18283 + - uid: 1021 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 6.5,62.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18283 + - uid: 1022 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -4.5,68.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18286 + - uid: 1023 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 6.5,68.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18287 + - uid: 1024 + components: + - type: Transform + pos: 3.5,-23.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18261 + - uid: 1025 + components: + - type: Transform + pos: 3.5,-24.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18261 + - uid: 1026 + components: + - type: Transform + pos: 3.5,-25.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18261 + - uid: 1027 + components: + - type: Transform + pos: 11.5,-23.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18262 + - uid: 1028 + components: + - type: Transform + pos: 11.5,-24.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18262 + - uid: 1029 + components: + - type: Transform + pos: 11.5,-25.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18262 + - uid: 1030 + components: + - type: Transform + pos: 6.5,-60.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18291 + - uid: 1031 + components: + - type: Transform + pos: 7.5,-60.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18291 + - uid: 1032 + components: + - type: Transform + pos: 8.5,-60.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18291 + - uid: 21918 + components: + - type: Transform + pos: 9.5,-63.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18291 + - uid: 21925 + components: + - type: Transform + pos: 9.5,-64.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18291 + - uid: 21926 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -8.5,-68.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18291 + - uid: 21933 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -8.5,-69.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18291 + - uid: 21934 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -8.5,-70.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18291 + - uid: 21935 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -5.5,-77.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18291 + - uid: 21936 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -1.5,-77.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18291 + - uid: 21937 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 1.5,-77.5 + parent: 2 + - uid: 22464 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 6.5,-77.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18291 + - uid: 22486 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 5.5,-77.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18291 + - uid: 22487 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 9.5,-70.5 + parent: 2 + - uid: 22488 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 9.5,-69.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18291 + - uid: 22513 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 9.5,-68.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18291 + - uid: 22610 + components: + - type: Transform + pos: 4.5,-61.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18291 + - uid: 22611 + components: + - type: Transform + pos: 2.5,-61.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18291 + - uid: 22613 + components: + - type: Transform + pos: -4.5,-61.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18291 + - uid: 22640 + components: + - type: Transform + pos: -3.5,-61.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18291 + - uid: 22641 + components: + - type: Transform + pos: 3.5,-61.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18291 + - uid: 22845 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -4.5,-77.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18291 +- proto: Bloodpack + entities: + - uid: 1033 + components: + - type: Transform + pos: 25.355034,-13.543341 + parent: 2 + - uid: 1034 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 25.627491,-12.705351 + parent: 2 + - uid: 1035 + components: + - type: Transform + pos: 24.286171,-14.653675 + parent: 2 + - uid: 1036 + components: + - type: Transform + pos: -30.309258,37.72887 + parent: 2 + - uid: 1037 + components: + - type: Transform + pos: -30.632004,37.62142 + parent: 2 +- proto: BodyBag + entities: + - uid: 1038 + components: + - type: Transform + pos: -21.502857,-2.463719 + parent: 2 +- proto: Bonfire + entities: + - uid: 1040 + components: + - type: Transform + pos: -24.5,-14.5 + parent: 2 + - uid: 1041 + components: + - type: Transform + pos: -21.5,-38.5 + parent: 2 + - uid: 1042 + components: + - type: Transform + pos: 32.5,-33.5 + parent: 2 + - uid: 1043 + components: + - type: Transform + pos: -15.5,-15.5 + parent: 2 + - uid: 1044 + components: + - type: Transform + pos: -15.5,-15.5 + parent: 2 +- proto: BookAtmosAirAlarms + entities: + - uid: 1045 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -20.477695,-11.936964 + parent: 2 + - uid: 1046 + components: + - type: Transform + pos: 11.402032,-50.259182 + parent: 2 +- proto: BookAtmosDistro + entities: + - uid: 1047 + components: + - type: Transform + pos: 11.464191,-50.321342 + parent: 2 + - uid: 1048 + components: + - type: Transform + pos: 29.52829,-51.505558 + parent: 2 +- proto: BookAtmosVentsMore + entities: + - uid: 1049 + components: + - type: Transform + pos: 11.51392,-50.37729 + parent: 2 +- proto: BookAtmosWaste + entities: + - uid: 1050 + components: + - type: Transform + pos: 11.569863,-50.439445 + parent: 2 +- proto: BookBartendersManual + entities: + - uid: 1051 + components: + - type: Transform + pos: 17.490627,16.619688 + parent: 2 +- proto: BookBase + entities: + - uid: 1053 + components: + - type: MetaData + name: 'Sindicato: Uma ameaça?' + - type: Transform + parent: 1052 + - type: Paper + content: >2- + Antes de tudo, quero esclarecer algumas coisas. Recomendo não buscar mais informações sobre o Sindicato ou qualquer coisa relacionada a ele. Se fizer isso, enfrentará um grande perigo e pode muito bem acabar sendo morto. Estou fazendo isso na tentativa de informar o máximo de pessoas possível sobre o que a NanoTrasen esconde. Algumas informações são bastante incertas devido à grande censura que ocorre pela NanoTrasen, e não poderei responder algumas dúvidas que surgirão ao longo deste livro. Por fim, espero que tenha uma boa leitura. + + Ass. Olivia Hass + + + [color=red]Este livro teve a circulação proibida e qualquer exemplar dele deve ser queimado.[/color] + - type: Physics + canCollide: False + - uid: 1054 + components: + - type: MetaData + name: > + Catalogo de Entidades Hiper Desenvolvidas #1: A Marionete Suprema. + - type: Transform + parent: 1052 + - type: Paper + content: >- + Nas esferas do misticismo e das forças indomáveis, existe uma entidade de poder inigualável conhecida como o A Marionete Suprema. Apesar de seu nome, esse ser extraordinário está longe de ser uma marionete real; ele tem o tamanho de um humano médio, e sua aparência pode mudar de tempos em tempos. Ele incorpora uma misteriosa combinação de poder e consciência, exigindo um mestre para orientar suas ações. A natureza do Boneco está intrinsicamente ligada ao controle, sua existência depende de um mestre que pode aproveitar suas imensas capacidades. + + + A Marionete Suprema possui um arsenal de habilidades e capacidades extraordinárias, tornando-o uma força a ser reconhecida. Quando o mestre emite um comando, a Marionete o executa com uma eficiência, habilidade e sutileza inigualáveis. Seja uma infiltração delicada, uma manobra estratégica ou uma exibição de poder bruto, a Marionete realiza sua ordem dada impecavelmente, sem deixar margem para erro. + + + No entanto, a verdadeira arte da Marionete reside na teatralidade e intriga de seus comandos. O desempenho da Marionete está intrinsecamente ligado às habilidades criativas e teatrais de seu mestre. Quanto mais envolvente, cativante e dramático o cenário criado pelo mestre, mais pronunciada e extraordinária se torna a execução da Marionete. Um comando sem brilho teatral e mundano leva a resultados ineficientes ou falhas, enquanto uma ordem brilhantemente concebida e narrada desbloqueia todo o potencial das habilidades da Marionete. + + + Mas cuidado, pois a Marionete abriga uma inclinação secreta e traiçoeira. Se o mestre falhar repetidamente em cativar a Marionete com cenários fascinantes, a insatisfação penetra lentamente na consciência da entidade. À medida que a Marionete anseia por mais emoção e realização, o vínculo entre mestre e a Marionete começa a se fraturar. Gradualmente, o descontentamento da Marionete se transforma em uma animosidade perigosa, e com insatisfação suficiente, ela pode se voltar contra seu mestre com consequências letais. + + + Assim, a Marionete Suprema caminha numa corda bamba delicada entre lealdade e rebelião, tornando a relação entre mestre e entidade uma dança precária. O mestre deve se esforçar continuamente para cativar e fascinar a Marionete, garantindo sua devoção e lealdade inabaláveis. De forma relativamente simples, esta entidade vê-se a si mesma como personagem de uma obra de ficção, ao mesmo tempo que vê o seu mestre como o criador da obra. + + + Nas sombras do mistério e do poder oculto, a Marionete Suprema aguarda aqueles que ousam comandá-lo. Será você o escolhido para desbloquear seu potencial ilimitado, ou sucumbirá ao seu crescente descontentamento e enfrentará as consequências graves? A escolha reside em sua capacidade de domar o enigma da poderosa entidade que é a Marionete Suprema. + - type: Physics + canCollide: False + - uid: 1055 + components: + - type: MetaData + name: > + Catalogo de Magias Hiper Desenvolvidas #1: (Maldição) - Alegoria do Peso Perpétuo: + - type: Transform + parent: 1052 + - type: Paper + content: >- + A pessoa afetada por esta maldição se encontra aprisionada em um ciclo interminável de tarefas exaustivas, sendo compelida a cumpri-las sem descanso. Trata-se de uma maldição cruel que mergulha a vítima em um estado de fadiga extrema, permitindo-lhe descansar apenas quando seu corpo sucumbe ao desmaio. + + + Aqueles sob efeito da Alegoria do Peso Perpétuo vivenciam uma corrente interminável de tarefas, cujo número parece ser infinito. Essas tarefas podem variar em natureza, indo desde atividades físicas extenuantes até tarefas mentais exaustivas, sempre se adaptando às habilidades e destrezas individuais da vítima. A maldição não apenas exige que as tarefas sejam concluídas, mas também pressiona a pessoa afetada a executá-las com eficiência e perfeição, deixando pouco espaço para falhas. + + + Enquanto a Maldição do Peso Eterno é implacável em suas imposições de tarefas, ela concede à pessoa afetada um mínimo de livre-arbítrio. A vítima pode escolher a ordem em que realiza as tarefas e até mesmo o tipo de atividade que deseja empreender, dentro dos limites impostos pela maldição. Essa capacidade de escolha paradoxalmente intensifica o sofrimento da pessoa, pois ela deve decidir constantemente qual tarefa realizar, sabendo que nunca haverá um fim para essa demanda interminável. + - type: Physics + canCollide: False +- proto: BookChefGaming + entities: + - uid: 1056 + components: + - type: Transform + pos: 19.417454,16.533361 + parent: 2 +- proto: BookChemicalCompendium + entities: + - uid: 1057 + components: + - type: Transform + pos: 31.302227,-14.355734 + parent: 2 +- proto: BookEngineersHandbook + entities: + - uid: 1058 + components: + - type: Transform + pos: 1.3585267,-44.41457 + parent: 2 + - uid: 1059 + components: + - type: Transform + pos: 11.644189,-50.90064 + parent: 2 + - uid: 1060 + components: + - type: Transform + pos: 4.2590303,-52.247704 + parent: 2 +- proto: BookFeather + entities: + - uid: 1061 + components: + - type: Transform + pos: 20.433872,-13.290758 + parent: 2 +- proto: BookHowToSurvive + entities: + - uid: 1062 + components: + - type: Transform + pos: 11.4763565,-50.87966 + parent: 2 + - uid: 1063 + components: + - type: Transform + pos: 4.3615947,-52.322292 + parent: 2 +- proto: BookInspiration + entities: + - uid: 1064 + components: + - type: Transform + pos: -15.363409,-22.396322 + parent: 2 +- proto: BookMedicalOfficer + entities: + - uid: 1065 + components: + - type: Transform + pos: 38.57296,-33.29446 + parent: 2 + - uid: 1066 + components: + - type: Transform + pos: 28.406742,-32.13021 + parent: 2 +- proto: BookNames + entities: + - uid: 1067 + components: + - type: Transform + pos: -28.15681,5.660248 + parent: 2 +- proto: BookRandom + entities: + - uid: 1068 + components: + - type: Transform + pos: -23.689209,-16.391232 + parent: 2 + - uid: 1069 + components: + - type: Transform + pos: 17.506668,31.558624 + parent: 2 + - uid: 1070 + components: + - type: Transform + pos: 15.406973,36.540806 + parent: 2 + - uid: 1071 + components: + - type: Transform + pos: 15.560819,36.722622 + parent: 2 + - uid: 1072 + components: + - type: Transform + pos: 15.672707,36.59675 + parent: 2 + - uid: 1073 + components: + - type: Transform + pos: 46.595566,-25.394053 + parent: 2 + - uid: 1074 + components: + - type: Transform + pos: 46.217945,-25.289158 + parent: 2 + - uid: 1075 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 45.777386,-25.498947 + parent: 2 +- proto: BookRandomStory + entities: + - uid: 1076 + components: + - type: Transform + pos: 31.79174,-14.243845 + parent: 2 + - uid: 1077 + components: + - type: Transform + pos: -21.235794,22.614756 + parent: 2 +- proto: BooksBag + entities: + - uid: 1078 + components: + - type: Transform + pos: 45.48368,-25.268177 + parent: 2 +- proto: BookSecurity + entities: + - uid: 1079 + components: + - type: Transform + pos: -21.571457,22.677692 + parent: 2 +- proto: Bookshelf + entities: + - uid: 1052 + components: + - type: Transform + pos: 39.5,7.5 + parent: 2 + - type: ContainerContainer + containers: + storagebase: !type:Container + showEnts: False + occludes: True + ents: + - 1053 + - 1054 + - 1055 + - uid: 1080 + components: + - type: Transform + pos: -12.5,-6.5 + parent: 2 + - uid: 1081 + components: + - type: Transform + pos: -13.5,-6.5 + parent: 2 +- proto: BookshelfFilled + entities: + - uid: 1082 + components: + - type: Transform + pos: 37.5,10.5 + parent: 2 + - uid: 1083 + components: + - type: Transform + pos: 38.5,10.5 + parent: 2 + - uid: 1084 + components: + - type: Transform + pos: 39.5,10.5 + parent: 2 + - uid: 1085 + components: + - type: Transform + pos: 40.5,10.5 + parent: 2 + - uid: 1086 + components: + - type: Transform + pos: 42.5,10.5 + parent: 2 + - uid: 1087 + components: + - type: Transform + pos: 38.5,8.5 + parent: 2 + - uid: 1088 + components: + - type: Transform + pos: 39.5,8.5 + parent: 2 + - uid: 1089 + components: + - type: Transform + pos: 40.5,8.5 + parent: 2 + - uid: 1090 + components: + - type: Transform + pos: 41.5,8.5 + parent: 2 + - uid: 1091 + components: + - type: Transform + pos: 38.5,7.5 + parent: 2 + - uid: 1092 + components: + - type: Transform + pos: 38.5,8.5 + parent: 2 + - uid: 1093 + components: + - type: Transform + pos: 39.5,8.5 + parent: 2 + - uid: 1094 + components: + - type: Transform + pos: 41.5,7.5 + parent: 2 + - uid: 1095 + components: + - type: Transform + pos: 44.5,0.5 + parent: 2 + - uid: 1096 + components: + - type: Transform + pos: 46.5,-23.5 + parent: 2 + - uid: 1097 + components: + - type: Transform + pos: 31.5,-33.5 + parent: 2 + - uid: 23863 + components: + - type: Transform + pos: 40.5,7.5 + parent: 2 +- proto: BookTemple + entities: + - uid: 1098 + components: + - type: Transform + pos: -14.981125,-22.3497 + parent: 2 +- proto: BookWorld + entities: + - uid: 1099 + components: + - type: Transform + pos: -15.195577,-22.303082 + parent: 2 +- proto: BoozeDispenser + entities: + - uid: 1100 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -22.5,-63.5 + parent: 2 + - uid: 1101 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 15.5,13.5 + parent: 2 +- proto: BorgCharger + entities: + - uid: 1102 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -28.5,-6.5 + parent: 2 + - uid: 1103 + components: + - type: Transform + pos: -30.5,-16.5 + parent: 2 + - uid: 1104 + components: + - type: Transform + pos: -29.5,-16.5 + parent: 2 + - uid: 1105 + components: + - type: Transform + pos: 33.5,30.5 + parent: 2 + - uid: 1106 + components: + - type: Transform + pos: 32.5,30.5 + parent: 2 + - uid: 1107 + components: + - type: Transform + pos: 31.5,30.5 + parent: 2 + - type: EntityStorage + air: + volume: 200 + immutable: False + temperature: 75.31249 + moles: + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - uid: 1108 + components: + - type: Transform + pos: 5.5,85.5 + parent: 2 + - uid: 1109 + components: + - type: Transform + pos: 6.5,85.5 + parent: 2 + - uid: 1110 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -3.5,85.5 + parent: 2 + - uid: 1111 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 41.5,-14.5 + parent: 2 + - uid: 1112 + components: + - type: Transform + pos: 8.5,-54.5 + parent: 2 +- proto: BorgModuleClowning + entities: + - uid: 10539 + components: + - type: Transform + parent: 10524 + - type: Physics + angularDamping: 0 + linearDamping: 0 + canCollide: False + - type: InsideEntityStorage +- proto: BoxBeaker + entities: + - uid: 1113 + components: + - type: Transform + pos: -5.792077,-30.758797 + parent: 2 + - type: Physics + angularDamping: 0 + linearDamping: 0 + - uid: 1114 + components: + - type: Transform + pos: 42.640194,-28.411314 + parent: 2 + - uid: 1115 + components: + - type: Transform + pos: 23.328041,-30.442726 + parent: 2 + - uid: 1116 + components: + - type: Transform + pos: 7.35902,-29.546413 + parent: 2 +- proto: BoxBodyBag + entities: + - uid: 1117 + components: + - type: Transform + pos: -30.00586,32.802864 + parent: 2 + - uid: 1118 + components: + - type: Transform + pos: -36.16761,30.64786 + parent: 2 + - uid: 1119 + components: + - type: Transform + pos: 31.481876,-31.373457 + parent: 2 + - uid: 1120 + components: + - type: Transform + pos: 31.621738,-31.26157 + parent: 2 + - uid: 8670 + components: + - type: Transform + pos: 23.499565,-30.32426 + parent: 2 +- proto: BoxCardboard + entities: + - uid: 1122 + components: + - type: Transform + pos: -29.499535,-6.517551 + parent: 2 + - uid: 1123 + components: + - type: Transform + pos: -29.69534,-6.424311 + parent: 2 + - uid: 1124 + components: + - type: Transform + pos: -29.424942,-6.2751265 + parent: 2 + - uid: 1125 + components: + - type: Transform + pos: -29.434269,-6.442959 + parent: 2 + - uid: 1126 + components: + - type: Transform + pos: -29.266434,-6.4056625 + parent: 2 + - uid: 1127 + components: + - type: Transform + pos: -30.329372,-4.5781574 + parent: 2 + - uid: 1128 + components: + - type: Transform + pos: -30.58112,-4.373029 + parent: 2 + - uid: 1129 + components: + - type: Transform + pos: -30.273426,-4.1212807 + parent: 2 + - uid: 1130 + components: + - type: Transform + pos: -30.5345,-3.9348006 + parent: 2 + - uid: 1131 + components: + - type: Transform + pos: -30.5345,-3.9348006 + parent: 2 +- proto: BoxFlashbang + entities: + - uid: 1132 + components: + - type: Transform + pos: -14.382187,38.59988 + parent: 2 +- proto: BoxFolderBase + entities: + - uid: 1133 + components: + - type: Transform + pos: -17.356007,-22.297771 + parent: 2 +- proto: BoxFolderBlack + entities: + - uid: 1134 + components: + - type: Transform + pos: -13.3687105,-3.2197378 + parent: 2 + - uid: 1135 + components: + - type: Transform + pos: -6.455263,14.560249 + parent: 2 + - uid: 1136 + components: + - type: Transform + pos: 17.663635,21.630175 + parent: 2 + - uid: 1137 + components: + - type: Transform + pos: 17.84079,21.471666 + parent: 2 +- proto: BoxFolderBlue + entities: + - uid: 1138 + components: + - type: Transform + pos: -16.40982,-3.3916838 + parent: 2 + - uid: 1139 + components: + - type: Transform + pos: -10.009421,13.602484 + parent: 2 + - uid: 1140 + components: + - type: Transform + pos: -6.5298553,14.59133 + parent: 2 + - uid: 1141 + components: + - type: Transform + pos: -3.5946116,14.507507 + parent: 2 + - uid: 1142 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -8.434541,56.04708 + parent: 2 + - uid: 1143 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 7.378911,54.63809 + parent: 2 + - uid: 1144 + components: + - type: Transform + pos: -0.64332175,69.52475 + parent: 2 + - uid: 1145 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -0.34961545,69.510765 + parent: 2 + - uid: 1146 + components: + - type: Transform + pos: 22.959122,-20.45176 + parent: 2 + - uid: 1147 + components: + - type: Transform + pos: 6.4702945,25.629044 + parent: 2 +- proto: BoxFolderClipboard + entities: + - uid: 1148 + components: + - type: Transform + pos: -6.2439194,14.479441 + parent: 2 + - uid: 1149 + components: + - type: Transform + pos: -30.012356,-6.4895787 + parent: 2 + - uid: 1150 + components: + - type: Transform + pos: -28.672737,5.5670075 + parent: 2 + - uid: 1151 + components: + - type: Transform + pos: -40.533924,8.63838 + parent: 2 + - uid: 1152 + components: + - type: Transform + pos: -26.40318,-18.427988 + parent: 2 + - uid: 1153 + components: + - type: Transform + pos: -17.36533,-22.521547 + parent: 2 + - uid: 1154 + components: + - type: Transform + pos: 38.305824,1.6013311 + parent: 2 + - uid: 1155 + components: + - type: Transform + pos: -16.28135,31.641228 + parent: 2 + - uid: 1156 + components: + - type: Transform + pos: 6.356128,48.842865 + parent: 2 + - type: ContainerContainer + containers: + storagebase: !type:Container + showEnts: False + occludes: True + ents: + - 1157 + pen_slot: !type:ContainerSlot + showEnts: False + occludes: True + ent: null + - uid: 1158 + components: + - type: Transform + pos: 10.417078,53.39866 + parent: 2 + - uid: 1159 + components: + - type: Transform + pos: 0.55947524,69.608665 + parent: 2 + - uid: 1160 + components: + - type: Transform + pos: 26.006824,-19.379238 + parent: 2 + - uid: 1161 + components: + - type: Transform + pos: 46.479202,-20.39618 + parent: 2 + - uid: 1162 + components: + - type: Transform + pos: 40.167366,-34.29213 + parent: 2 + - uid: 1163 + components: + - type: Transform + pos: 11.340425,-50.905647 + parent: 2 + - uid: 1164 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 6.4912734,27.286385 + parent: 2 + - uid: 1165 + components: + - type: Transform + pos: 17.421211,21.490314 + parent: 2 +- proto: BoxFolderGrey + entities: + - uid: 1166 + components: + - type: Transform + pos: -26.529053,-18.511906 + parent: 2 +- proto: BoxFolderRed + entities: + - uid: 1167 + components: + - type: Transform + pos: -16.47144,-6.407802 + parent: 2 + - uid: 1168 + components: + - type: Transform + pos: -12.986888,13.602484 + parent: 2 + - uid: 1169 + components: + - type: Transform + pos: -6.3495913,14.554033 + parent: 2 + - uid: 1170 + components: + - type: Transform + pos: -3.4827232,14.544802 + parent: 2 + - uid: 1171 + components: + - type: Transform + pos: 43.74235,-17.425884 + parent: 2 + - uid: 1172 + components: + - type: Transform + pos: -24.97533,24.557632 + parent: 2 + - uid: 1173 + components: + - type: Transform + pos: -16.789017,31.681232 + parent: 2 + - uid: 1174 + components: + - type: Transform + pos: 6.55421,25.733936 + parent: 2 +- proto: BoxFolderWhite + entities: + - uid: 1175 + components: + - type: Transform + pos: -6.5135493,82.6491 + parent: 2 + - uid: 1176 + components: + - type: Transform + pos: 40.01818,-34.43199 + parent: 2 + - uid: 1177 + components: + - type: Transform + pos: 5.517516,-28.436022 + parent: 2 +- proto: BoxFolderYellow + entities: + - uid: 1178 + components: + - type: Transform + pos: -30.217484,-6.3683667 + parent: 2 + - uid: 1179 + components: + - type: Transform + pos: -28.442745,5.4675517 + parent: 2 + - uid: 1180 + components: + - type: Transform + pos: -40.59919,8.517168 + parent: 2 +- proto: BoxHandcuff + entities: + - uid: 1181 + components: + - type: Transform + pos: 30.040516,-4.3923454 + parent: 2 + - uid: 1182 + components: + - type: Transform + pos: -5.523954,34.568943 + parent: 2 + - uid: 1183 + components: + - type: Transform + pos: -14.621258,38.542572 + parent: 2 + - uid: 1184 + components: + - type: Transform + pos: -38.525764,22.535631 + parent: 2 +- proto: BoxLatexGloves + entities: + - uid: 811 + components: + - type: Transform + pos: 23.144512,-30.219042 + parent: 2 + - uid: 1185 + components: + - type: Transform + pos: 42.621548,-28.597794 + parent: 2 + - uid: 1187 + components: + - type: Transform + pos: 7.718395,-29.265163 + parent: 2 + - uid: 1188 + components: + - type: Transform + pos: 13.493209,-32.35294 + parent: 2 +- proto: BoxLethalshot + entities: + - uid: 1189 + components: + - type: Transform + pos: -15.491153,40.70749 + parent: 2 + - uid: 1190 + components: + - type: Transform + pos: -15.491153,40.63108 + parent: 2 +- proto: BoxLightMixed + entities: + - uid: 1191 + components: + - type: Transform + pos: 7.4954042,12.574865 + parent: 2 + - uid: 1192 + components: + - type: Transform + pos: 7.6818843,12.680538 + parent: 2 + - uid: 1193 + components: + - type: Transform + pos: 1.6941905,-44.41457 + parent: 2 + - uid: 1194 + components: + - type: Transform + pos: -14.615689,-55.254997 + parent: 2 +- proto: BoxMesonScanners + entities: + - uid: 1195 + components: + - type: Transform + pos: 14.606563,-52.36391 + parent: 2 +- proto: BoxMousetrap + entities: + - uid: 1196 + components: + - type: Transform + pos: 23.36734,17.657253 + parent: 2 +- proto: BoxPerformer + entities: + - uid: 1197 + components: + - type: Transform + pos: 13.706232,-4.671299 + parent: 2 + - uid: 1198 + components: + - type: Transform + pos: 10.4830065,-37.458145 + parent: 2 +- proto: BoxShotgunIncendiary + entities: + - uid: 1199 + components: + - type: Transform + pos: -15.491153,40.80937 + parent: 2 +- proto: BoxShotgunPractice + entities: + - uid: 1200 + components: + - type: Transform + pos: 15.49762,18.780527 + parent: 2 + - uid: 1201 + components: + - type: Transform + pos: 15.49762,18.591717 + parent: 2 +- proto: BoxShotgunSlug + entities: + - uid: 1202 + components: + - type: Transform + pos: -15.48257,40.505035 + parent: 2 +- proto: BoxSterileMask + entities: + - uid: 1203 + components: + - type: Transform + pos: 19.527786,-13.189604 + parent: 2 +- proto: BoxSyringe + entities: + - uid: 1204 + components: + - type: Transform + pos: -5.9625015,-30.436827 + parent: 2 + - type: Physics + angularDamping: 0 + linearDamping: 0 + - uid: 1205 + components: + - type: Transform + pos: 42.360474,-28.504555 + parent: 2 + - uid: 1206 + components: + - type: Transform + pos: 13.79031,-32.37395 + parent: 2 +- proto: BoxTrashbag + entities: + - uid: 1207 + components: + - type: Transform + pos: -44.630238,15.522076 + parent: 2 + - uid: 1208 + components: + - type: Transform + pos: -44.44376,15.447483 + parent: 2 + - uid: 1209 + components: + - type: Transform + pos: -36.880898,30.710796 + parent: 2 +- proto: BoxZiptie + entities: + - uid: 1210 + components: + - type: Transform + pos: -35.475304,30.64786 + parent: 2 +- proto: BriefcaseBrown + entities: + - uid: 1211 + components: + - type: Transform + pos: -17.415886,-4.235986 + parent: 2 + - uid: 1212 + components: + - type: Transform + pos: -17.533989,-4.428683 + parent: 2 + - uid: 1213 + components: + - type: Transform + pos: -6.4987755,14.467009 + parent: 2 +- proto: BrigTimer + entities: + - uid: 1214 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -13.5,25.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 23442: + - Start: Close + - Timer: AutoClose + - Timer: Open + - uid: 1215 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -10.5,25.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 23444: + - Start: Close + - Timer: AutoClose + - Timer: Open + 23445: + - Start: Close + - Timer: AutoClose + - Timer: Open + - uid: 1216 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -4.5,25.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 23443: + - Start: Close + - Timer: AutoClose + - Timer: Open +- proto: Bucket + entities: + - uid: 1217 + components: + - type: Transform + pos: 3.243042,-5.123019 + parent: 2 + - uid: 1218 + components: + - type: Transform + pos: 9.842099,11.265297 + parent: 2 + - uid: 1219 + components: + - type: Transform + pos: 12.984678,15.275642 + parent: 2 + - uid: 1220 + components: + - type: Transform + pos: -10.254242,-40.732853 + parent: 2 + - uid: 1221 + components: + - type: Transform + pos: -36.38079,-63.77137 + parent: 2 + - uid: 1222 + components: + - type: Transform + pos: -36.688175,-63.603775 + parent: 2 + - uid: 1223 + components: + - type: Transform + pos: -36.427364,-63.454796 + parent: 2 + - uid: 1224 + components: + - type: Transform + pos: -36.567085,-63.156845 + parent: 2 + - uid: 1225 + components: + - type: Transform + pos: 37.191753,19.169838 + parent: 2 + - uid: 1226 + components: + - type: Transform + pos: 31.548397,15.603403 + parent: 2 + - uid: 1227 + components: + - type: Transform + pos: 17.422337,27.723618 + parent: 2 + - uid: 1228 + components: + - type: Transform + pos: 17.611149,27.597744 + parent: 2 + - uid: 1229 + components: + - type: Transform + pos: -41.266426,30.587137 + parent: 2 + - uid: 1230 + components: + - type: Transform + pos: 34.599365,-27.40573 + parent: 2 +- proto: CableApcExtension + entities: + - uid: 1231 + components: + - type: Transform + pos: -20.5,-32.5 + parent: 2 + - uid: 1232 + components: + - type: Transform + pos: -16.5,5.5 + parent: 2 + - uid: 1233 + components: + - type: Transform + pos: 1.5,38.5 + parent: 2 + - uid: 1234 + components: + - type: Transform + pos: 12.5,-10.5 + parent: 2 + - uid: 1235 + components: + - type: Transform + pos: 6.5,-52.5 + parent: 2 + - uid: 1236 + components: + - type: Transform + pos: 43.5,-6.5 + parent: 2 + - uid: 1237 + components: + - type: Transform + pos: 1.5,54.5 + parent: 2 + - uid: 1238 + components: + - type: Transform + pos: 1.5,39.5 + parent: 2 + - uid: 1239 + components: + - type: Transform + pos: 24.5,-24.5 + parent: 2 + - uid: 1240 + components: + - type: Transform + pos: 4.5,-30.5 + parent: 2 + - uid: 1241 + components: + - type: Transform + pos: 22.5,-36.5 + parent: 2 + - uid: 1242 + components: + - type: Transform + pos: 22.5,-35.5 + parent: 2 + - uid: 1243 + components: + - type: Transform + pos: 22.5,-34.5 + parent: 2 + - uid: 1244 + components: + - type: Transform + pos: 21.5,-34.5 + parent: 2 + - uid: 1245 + components: + - type: Transform + pos: 20.5,-34.5 + parent: 2 + - uid: 1246 + components: + - type: Transform + pos: -4.5,-45.5 + parent: 2 + - uid: 1247 + components: + - type: Transform + pos: -4.5,-43.5 + parent: 2 + - uid: 1248 + components: + - type: Transform + pos: 1.5,40.5 + parent: 2 + - uid: 1249 + components: + - type: Transform + pos: 4.5,46.5 + parent: 2 + - uid: 1250 + components: + - type: Transform + pos: 31.5,-23.5 + parent: 2 + - uid: 1251 + components: + - type: Transform + pos: 5.5,-35.5 + parent: 2 + - uid: 1252 + components: + - type: Transform + pos: 13.5,-64.5 + parent: 2 + - uid: 1253 + components: + - type: Transform + pos: 12.5,-64.5 + parent: 2 + - uid: 1254 + components: + - type: Transform + pos: 15.5,42.5 + parent: 2 + - uid: 1255 + components: + - type: Transform + pos: 7.5,24.5 + parent: 2 + - uid: 1256 + components: + - type: Transform + pos: 2.5,50.5 + parent: 2 + - uid: 1257 + components: + - type: Transform + pos: -24.5,6.5 + parent: 2 + - uid: 1258 + components: + - type: Transform + pos: 32.5,-21.5 + parent: 2 + - uid: 1259 + components: + - type: Transform + pos: -29.5,-32.5 + parent: 2 + - uid: 1260 + components: + - type: Transform + pos: 16.5,-35.5 + parent: 2 + - uid: 1261 + components: + - type: Transform + pos: 33.5,-49.5 + parent: 2 + - uid: 1262 + components: + - type: Transform + pos: -0.5,41.5 + parent: 2 + - uid: 1263 + components: + - type: Transform + pos: 31.5,-21.5 + parent: 2 + - uid: 1264 + components: + - type: Transform + pos: 31.5,-22.5 + parent: 2 + - uid: 1265 + components: + - type: Transform + pos: 3.5,50.5 + parent: 2 + - uid: 1266 + components: + - type: Transform + pos: -5.5,-50.5 + parent: 2 + - uid: 1267 + components: + - type: Transform + pos: 27.5,-33.5 + parent: 2 + - uid: 1268 + components: + - type: Transform + pos: -24.5,5.5 + parent: 2 + - uid: 1269 + components: + - type: Transform + pos: 35.5,-30.5 + parent: 2 + - uid: 1270 + components: + - type: Transform + pos: -2.5,-51.5 + parent: 2 + - uid: 1271 + components: + - type: Transform + pos: 33.5,-44.5 + parent: 2 + - uid: 1272 + components: + - type: Transform + pos: -11.5,-51.5 + parent: 2 + - uid: 1273 + components: + - type: Transform + pos: -6.5,-52.5 + parent: 2 + - uid: 1274 + components: + - type: Transform + pos: 32.5,-44.5 + parent: 2 + - uid: 1275 + components: + - type: Transform + pos: 32.5,-45.5 + parent: 2 + - uid: 1276 + components: + - type: Transform + pos: 35.5,-31.5 + parent: 2 + - uid: 1277 + components: + - type: Transform + pos: 32.5,-46.5 + parent: 2 + - uid: 1278 + components: + - type: Transform + pos: 33.5,-46.5 + parent: 2 + - uid: 1279 + components: + - type: Transform + pos: 36.5,-31.5 + parent: 2 + - uid: 1280 + components: + - type: Transform + pos: -0.5,-29.5 + parent: 2 + - uid: 1281 + components: + - type: Transform + pos: 0.5,-28.5 + parent: 2 + - uid: 1282 + components: + - type: Transform + pos: -5.5,-49.5 + parent: 2 + - uid: 1283 + components: + - type: Transform + pos: 26.5,-37.5 + parent: 2 + - uid: 1284 + components: + - type: Transform + pos: 26.5,-33.5 + parent: 2 + - uid: 1285 + components: + - type: Transform + pos: 25.5,-33.5 + parent: 2 + - uid: 1286 + components: + - type: Transform + pos: 6.5,-35.5 + parent: 2 + - uid: 1287 + components: + - type: Transform + pos: 33.5,-37.5 + parent: 2 + - uid: 1288 + components: + - type: Transform + pos: 32.5,-37.5 + parent: 2 + - uid: 1289 + components: + - type: Transform + pos: 31.5,-37.5 + parent: 2 + - uid: 1290 + components: + - type: Transform + pos: -20.5,-44.5 + parent: 2 + - uid: 1291 + components: + - type: Transform + pos: 24.5,-49.5 + parent: 2 + - uid: 1292 + components: + - type: Transform + pos: 30.5,-49.5 + parent: 2 + - uid: 1293 + components: + - type: Transform + pos: 30.5,-50.5 + parent: 2 + - uid: 1294 + components: + - type: Transform + pos: 34.5,-37.5 + parent: 2 + - uid: 1295 + components: + - type: Transform + pos: 29.5,-37.5 + parent: 2 + - uid: 1296 + components: + - type: Transform + pos: 12.5,-36.5 + parent: 2 + - uid: 1297 + components: + - type: Transform + pos: 14.5,-34.5 + parent: 2 + - uid: 1298 + components: + - type: Transform + pos: 18.5,-34.5 + parent: 2 + - uid: 1299 + components: + - type: Transform + pos: 28.5,-37.5 + parent: 2 + - uid: 1300 + components: + - type: Transform + pos: 7.5,-35.5 + parent: 2 + - uid: 1301 + components: + - type: Transform + pos: 35.5,-29.5 + parent: 2 + - uid: 1302 + components: + - type: Transform + pos: 24.5,-50.5 + parent: 2 + - uid: 1303 + components: + - type: Transform + pos: 8.5,-35.5 + parent: 2 + - uid: 1304 + components: + - type: Transform + pos: 12.5,-35.5 + parent: 2 + - uid: 1305 + components: + - type: Transform + pos: 13.5,-34.5 + parent: 2 + - uid: 1306 + components: + - type: Transform + pos: 19.5,-34.5 + parent: 2 + - uid: 1307 + components: + - type: Transform + pos: 24.5,-68.5 + parent: 2 + - uid: 1308 + components: + - type: Transform + pos: 22.5,-66.5 + parent: 2 + - uid: 1309 + components: + - type: Transform + pos: 22.5,-67.5 + parent: 2 + - uid: 1310 + components: + - type: Transform + pos: 22.5,-68.5 + parent: 2 + - uid: 1311 + components: + - type: Transform + pos: 23.5,-68.5 + parent: 2 + - uid: 1312 + components: + - type: Transform + pos: 22.5,-65.5 + parent: 2 + - uid: 1313 + components: + - type: Transform + pos: 23.5,-62.5 + parent: 2 + - uid: 1314 + components: + - type: Transform + pos: 40.5,-57.5 + parent: 2 + - uid: 1315 + components: + - type: Transform + pos: 40.5,-56.5 + parent: 2 + - uid: 1316 + components: + - type: Transform + pos: 40.5,-55.5 + parent: 2 + - uid: 1317 + components: + - type: Transform + pos: 40.5,-54.5 + parent: 2 + - uid: 1318 + components: + - type: Transform + pos: 40.5,-53.5 + parent: 2 + - uid: 1319 + components: + - type: Transform + pos: 40.5,-52.5 + parent: 2 + - uid: 1320 + components: + - type: Transform + pos: 40.5,-51.5 + parent: 2 + - uid: 1321 + components: + - type: Transform + pos: 31.5,-60.5 + parent: 2 + - uid: 1322 + components: + - type: Transform + pos: 40.5,-50.5 + parent: 2 + - uid: 1323 + components: + - type: Transform + pos: 40.5,-49.5 + parent: 2 + - uid: 1324 + components: + - type: Transform + pos: 40.5,-48.5 + parent: 2 + - uid: 1325 + components: + - type: Transform + pos: 41.5,-48.5 + parent: 2 + - uid: 1326 + components: + - type: Transform + pos: 42.5,-48.5 + parent: 2 + - uid: 1327 + components: + - type: Transform + pos: 42.5,-47.5 + parent: 2 + - uid: 1328 + components: + - type: Transform + pos: 42.5,-46.5 + parent: 2 + - uid: 1329 + components: + - type: Transform + pos: 40.5,-46.5 + parent: 2 + - uid: 1330 + components: + - type: Transform + pos: 41.5,-46.5 + parent: 2 + - uid: 1331 + components: + - type: Transform + pos: 22.5,-63.5 + parent: 2 + - uid: 1332 + components: + - type: Transform + pos: 26.5,-72.5 + parent: 2 + - uid: 1333 + components: + - type: Transform + pos: 25.5,-66.5 + parent: 2 + - uid: 1334 + components: + - type: Transform + pos: 22.5,-62.5 + parent: 2 + - uid: 1335 + components: + - type: Transform + pos: 22.5,-64.5 + parent: 2 + - uid: 1336 + components: + - type: Transform + pos: 7.5,34.5 + parent: 2 + - uid: 1337 + components: + - type: Transform + pos: 14.5,-64.5 + parent: 2 + - uid: 1338 + components: + - type: Transform + pos: 24.5,-37.5 + parent: 2 + - uid: 1339 + components: + - type: Transform + pos: 22.5,-37.5 + parent: 2 + - uid: 1340 + components: + - type: Transform + pos: 23.5,-37.5 + parent: 2 + - uid: 1341 + components: + - type: Transform + pos: 25.5,-37.5 + parent: 2 + - uid: 1342 + components: + - type: Transform + pos: 30.5,-40.5 + parent: 2 + - uid: 1343 + components: + - type: Transform + pos: 27.5,-36.5 + parent: 2 + - uid: 1344 + components: + - type: Transform + pos: 27.5,-37.5 + parent: 2 + - uid: 1345 + components: + - type: Transform + pos: -1.5,-51.5 + parent: 2 + - uid: 1346 + components: + - type: Transform + pos: -5.5,-52.5 + parent: 2 + - uid: 1347 + components: + - type: Transform + pos: -10.5,-51.5 + parent: 2 + - uid: 1348 + components: + - type: Transform + pos: -13.5,-51.5 + parent: 2 + - uid: 1349 + components: + - type: Transform + pos: 5.5,-52.5 + parent: 2 + - uid: 1350 + components: + - type: Transform + pos: -5.5,-51.5 + parent: 2 + - uid: 1351 + components: + - type: Transform + pos: 27.5,-35.5 + parent: 2 + - uid: 1352 + components: + - type: Transform + pos: 27.5,-34.5 + parent: 2 + - uid: 1353 + components: + - type: Transform + pos: 24.5,-51.5 + parent: 2 + - uid: 1354 + components: + - type: Transform + pos: -34.5,-37.5 + parent: 2 + - uid: 1355 + components: + - type: Transform + pos: 36.5,-24.5 + parent: 2 + - uid: 1356 + components: + - type: Transform + pos: 25.5,-24.5 + parent: 2 + - uid: 1357 + components: + - type: Transform + pos: 23.5,-24.5 + parent: 2 + - uid: 1358 + components: + - type: Transform + pos: 3.5,-30.5 + parent: 2 + - uid: 1359 + components: + - type: Transform + pos: 16.5,-17.5 + parent: 2 + - uid: 1360 + components: + - type: Transform + pos: 16.5,-16.5 + parent: 2 + - uid: 1361 + components: + - type: Transform + pos: 16.5,-15.5 + parent: 2 + - uid: 1362 + components: + - type: Transform + pos: 15.5,-15.5 + parent: 2 + - uid: 1363 + components: + - type: Transform + pos: 14.5,-15.5 + parent: 2 + - uid: 1364 + components: + - type: Transform + pos: 13.5,-15.5 + parent: 2 + - uid: 1365 + components: + - type: Transform + pos: 13.5,-15.5 + parent: 2 + - uid: 1366 + components: + - type: Transform + pos: 17.5,-15.5 + parent: 2 + - uid: 1367 + components: + - type: Transform + pos: 18.5,-15.5 + parent: 2 + - uid: 1368 + components: + - type: Transform + pos: 19.5,-15.5 + parent: 2 + - uid: 1369 + components: + - type: Transform + pos: 19.5,-14.5 + parent: 2 + - uid: 1370 + components: + - type: Transform + pos: 16.5,-14.5 + parent: 2 + - uid: 1371 + components: + - type: Transform + pos: 13.5,-14.5 + parent: 2 + - uid: 1372 + components: + - type: Transform + pos: 13.5,-13.5 + parent: 2 + - uid: 1373 + components: + - type: Transform + pos: 13.5,-12.5 + parent: 2 + - uid: 1374 + components: + - type: Transform + pos: 13.5,-11.5 + parent: 2 + - uid: 1375 + components: + - type: Transform + pos: 13.5,-10.5 + parent: 2 + - uid: 1376 + components: + - type: Transform + pos: 13.5,-9.5 + parent: 2 + - uid: 1377 + components: + - type: Transform + pos: 14.5,-9.5 + parent: 2 + - uid: 1378 + components: + - type: Transform + pos: 15.5,-9.5 + parent: 2 + - uid: 1379 + components: + - type: Transform + pos: 16.5,-9.5 + parent: 2 + - uid: 1380 + components: + - type: Transform + pos: 17.5,-9.5 + parent: 2 + - uid: 1381 + components: + - type: Transform + pos: 18.5,-9.5 + parent: 2 + - uid: 1382 + components: + - type: Transform + pos: 19.5,-9.5 + parent: 2 + - uid: 1383 + components: + - type: Transform + pos: 16.5,-10.5 + parent: 2 + - uid: 1384 + components: + - type: Transform + pos: 16.5,-21.5 + parent: 2 + - uid: 1385 + components: + - type: Transform + pos: 16.5,-22.5 + parent: 2 + - uid: 1386 + components: + - type: Transform + pos: 16.5,-23.5 + parent: 2 + - uid: 1387 + components: + - type: Transform + pos: 17.5,-23.5 + parent: 2 + - uid: 1388 + components: + - type: Transform + pos: 18.5,-23.5 + parent: 2 + - uid: 1389 + components: + - type: Transform + pos: 18.5,-22.5 + parent: 2 + - uid: 1390 + components: + - type: Transform + pos: 18.5,-21.5 + parent: 2 + - uid: 1391 + components: + - type: Transform + pos: 18.5,-20.5 + parent: 2 + - uid: 1392 + components: + - type: Transform + pos: 18.5,-19.5 + parent: 2 + - uid: 1393 + components: + - type: Transform + pos: 17.5,-19.5 + parent: 2 + - uid: 1394 + components: + - type: Transform + pos: 19.5,-19.5 + parent: 2 + - uid: 1395 + components: + - type: Transform + pos: 15.5,-23.5 + parent: 2 + - uid: 1396 + components: + - type: Transform + pos: 15.5,-24.5 + parent: 2 + - uid: 1397 + components: + - type: Transform + pos: 15.5,-25.5 + parent: 2 + - uid: 1398 + components: + - type: Transform + pos: 15.5,-26.5 + parent: 2 + - uid: 1399 + components: + - type: Transform + pos: 15.5,-27.5 + parent: 2 + - uid: 1400 + components: + - type: Transform + pos: 19.5,-23.5 + parent: 2 + - uid: 1401 + components: + - type: Transform + pos: 19.5,-24.5 + parent: 2 + - uid: 1402 + components: + - type: Transform + pos: 19.5,-25.5 + parent: 2 + - uid: 1403 + components: + - type: Transform + pos: 19.5,-26.5 + parent: 2 + - uid: 1404 + components: + - type: Transform + pos: 19.5,-27.5 + parent: 2 + - uid: 1405 + components: + - type: Transform + pos: 18.5,-27.5 + parent: 2 + - uid: 1406 + components: + - type: Transform + pos: 18.5,-28.5 + parent: 2 + - uid: 1407 + components: + - type: Transform + pos: 18.5,-29.5 + parent: 2 + - uid: 1408 + components: + - type: Transform + pos: 18.5,-31.5 + parent: 2 + - uid: 1409 + components: + - type: Transform + pos: 17.5,-31.5 + parent: 2 + - uid: 1410 + components: + - type: Transform + pos: 19.5,-31.5 + parent: 2 + - uid: 1411 + components: + - type: Transform + pos: 20.5,-31.5 + parent: 2 + - uid: 1412 + components: + - type: Transform + pos: 21.5,-31.5 + parent: 2 + - uid: 1413 + components: + - type: Transform + pos: 22.5,-31.5 + parent: 2 + - uid: 1414 + components: + - type: Transform + pos: 20.5,-27.5 + parent: 2 + - uid: 1415 + components: + - type: Transform + pos: 21.5,-27.5 + parent: 2 + - uid: 1416 + components: + - type: Transform + pos: 22.5,-27.5 + parent: 2 + - uid: 1417 + components: + - type: Transform + pos: 14.5,-27.5 + parent: 2 + - uid: 1418 + components: + - type: Transform + pos: 13.5,-27.5 + parent: 2 + - uid: 1419 + components: + - type: Transform + pos: 13.5,-28.5 + parent: 2 + - uid: 1420 + components: + - type: Transform + pos: 13.5,-29.5 + parent: 2 + - uid: 1421 + components: + - type: Transform + pos: 13.5,-30.5 + parent: 2 + - uid: 1422 + components: + - type: Transform + pos: 13.5,-31.5 + parent: 2 + - uid: 1423 + components: + - type: Transform + pos: 13.5,-26.5 + parent: 2 + - uid: 1424 + components: + - type: Transform + pos: 12.5,-24.5 + parent: 2 + - uid: 1425 + components: + - type: Transform + pos: 13.5,-22.5 + parent: 2 + - uid: 1426 + components: + - type: Transform + pos: 4.5,-31.5 + parent: 2 + - uid: 1427 + components: + - type: Transform + pos: 11.5,-31.5 + parent: 2 + - uid: 1428 + components: + - type: Transform + pos: 10.5,-31.5 + parent: 2 + - uid: 1429 + components: + - type: Transform + pos: 9.5,-31.5 + parent: 2 + - uid: 1430 + components: + - type: Transform + pos: 8.5,-31.5 + parent: 2 + - uid: 1431 + components: + - type: Transform + pos: 7.5,-31.5 + parent: 2 + - uid: 1432 + components: + - type: Transform + pos: 6.5,-31.5 + parent: 2 + - uid: 1433 + components: + - type: Transform + pos: 5.5,-31.5 + parent: 2 + - uid: 1434 + components: + - type: Transform + pos: 6.5,-30.5 + parent: 2 + - uid: 1435 + components: + - type: Transform + pos: 9.5,-30.5 + parent: 2 + - uid: 1436 + components: + - type: Transform + pos: 24.5,-21.5 + parent: 2 + - uid: 1437 + components: + - type: Transform + pos: 24.5,-20.5 + parent: 2 + - uid: 1438 + components: + - type: Transform + pos: 24.5,-19.5 + parent: 2 + - uid: 1439 + components: + - type: Transform + pos: 24.5,-18.5 + parent: 2 + - uid: 1440 + components: + - type: Transform + pos: 23.5,-19.5 + parent: 2 + - uid: 1441 + components: + - type: Transform + pos: 25.5,-19.5 + parent: 2 + - uid: 1442 + components: + - type: Transform + pos: 24.5,-17.5 + parent: 2 + - uid: 1443 + components: + - type: Transform + pos: 25.5,-33.5 + parent: 2 + - uid: 1444 + components: + - type: Transform + pos: 25.5,-32.5 + parent: 2 + - uid: 1445 + components: + - type: Transform + pos: 25.5,-31.5 + parent: 2 + - uid: 1446 + components: + - type: Transform + pos: 25.5,-30.5 + parent: 2 + - uid: 1447 + components: + - type: Transform + pos: 26.5,-31.5 + parent: 2 + - uid: 1448 + components: + - type: Transform + pos: 27.5,-31.5 + parent: 2 + - uid: 1449 + components: + - type: Transform + pos: 25.5,-29.5 + parent: 2 + - uid: 1450 + components: + - type: Transform + pos: 25.5,-28.5 + parent: 2 + - uid: 1451 + components: + - type: Transform + pos: 26.5,-28.5 + parent: 2 + - uid: 1452 + components: + - type: Transform + pos: 27.5,-28.5 + parent: 2 + - uid: 1453 + components: + - type: Transform + pos: 27.5,-30.5 + parent: 2 + - uid: 1454 + components: + - type: Transform + pos: 28.5,-30.5 + parent: 2 + - uid: 1455 + components: + - type: Transform + pos: 29.5,-30.5 + parent: 2 + - uid: 1456 + components: + - type: Transform + pos: 30.5,-30.5 + parent: 2 + - uid: 1457 + components: + - type: Transform + pos: 31.5,-30.5 + parent: 2 + - uid: 1458 + components: + - type: Transform + pos: 31.5,-29.5 + parent: 2 + - uid: 1459 + components: + - type: Transform + pos: 31.5,-28.5 + parent: 2 + - uid: 1460 + components: + - type: Transform + pos: 35.5,-15.5 + parent: 2 + - uid: 1461 + components: + - type: Transform + pos: 34.5,-15.5 + parent: 2 + - uid: 1462 + components: + - type: Transform + pos: 33.5,-15.5 + parent: 2 + - uid: 1463 + components: + - type: Transform + pos: 32.5,-15.5 + parent: 2 + - uid: 1464 + components: + - type: Transform + pos: 31.5,-15.5 + parent: 2 + - uid: 1465 + components: + - type: Transform + pos: 30.5,-15.5 + parent: 2 + - uid: 1466 + components: + - type: Transform + pos: 29.5,-15.5 + parent: 2 + - uid: 1467 + components: + - type: Transform + pos: 29.5,-16.5 + parent: 2 + - uid: 1468 + components: + - type: Transform + pos: 29.5,-17.5 + parent: 2 + - uid: 1469 + components: + - type: Transform + pos: 29.5,-18.5 + parent: 2 + - uid: 1470 + components: + - type: Transform + pos: 29.5,-19.5 + parent: 2 + - uid: 1471 + components: + - type: Transform + pos: 29.5,-20.5 + parent: 2 + - uid: 1472 + components: + - type: Transform + pos: 33.5,-16.5 + parent: 2 + - uid: 1473 + components: + - type: Transform + pos: 33.5,-17.5 + parent: 2 + - uid: 1474 + components: + - type: Transform + pos: 33.5,-18.5 + parent: 2 + - uid: 1475 + components: + - type: Transform + pos: 33.5,-19.5 + parent: 2 + - uid: 1476 + components: + - type: Transform + pos: 33.5,-20.5 + parent: 2 + - uid: 1477 + components: + - type: Transform + pos: 33.5,-21.5 + parent: 2 + - uid: 1478 + components: + - type: Transform + pos: 29.5,-21.5 + parent: 2 + - uid: 1479 + components: + - type: Transform + pos: 27.5,-27.5 + parent: 2 + - uid: 1480 + components: + - type: Transform + pos: 27.5,-26.5 + parent: 2 + - uid: 1481 + components: + - type: Transform + pos: 26.5,-24.5 + parent: 2 + - uid: 1482 + components: + - type: Transform + pos: 27.5,-24.5 + parent: 2 + - uid: 1483 + components: + - type: Transform + pos: 28.5,-24.5 + parent: 2 + - uid: 1484 + components: + - type: Transform + pos: 29.5,-24.5 + parent: 2 + - uid: 1485 + components: + - type: Transform + pos: 30.5,-24.5 + parent: 2 + - uid: 1486 + components: + - type: Transform + pos: 31.5,-24.5 + parent: 2 + - uid: 1487 + components: + - type: Transform + pos: 32.5,-24.5 + parent: 2 + - uid: 1488 + components: + - type: Transform + pos: 33.5,-24.5 + parent: 2 + - uid: 1489 + components: + - type: Transform + pos: 34.5,-24.5 + parent: 2 + - uid: 1490 + components: + - type: Transform + pos: 35.5,-24.5 + parent: 2 + - uid: 1491 + components: + - type: Transform + pos: 41.5,-35.5 + parent: 2 + - uid: 1492 + components: + - type: Transform + pos: 41.5,-34.5 + parent: 2 + - uid: 1493 + components: + - type: Transform + pos: 41.5,-33.5 + parent: 2 + - uid: 1494 + components: + - type: Transform + pos: 40.5,-31.5 + parent: 2 + - uid: 1495 + components: + - type: Transform + pos: 40.5,-30.5 + parent: 2 + - uid: 1496 + components: + - type: Transform + pos: 40.5,-29.5 + parent: 2 + - uid: 1497 + components: + - type: Transform + pos: 40.5,-28.5 + parent: 2 + - uid: 1498 + components: + - type: Transform + pos: 40.5,-27.5 + parent: 2 + - uid: 1499 + components: + - type: Transform + pos: 41.5,-31.5 + parent: 2 + - uid: 1500 + components: + - type: Transform + pos: 42.5,-31.5 + parent: 2 + - uid: 1501 + components: + - type: Transform + pos: 43.5,-31.5 + parent: 2 + - uid: 1502 + components: + - type: Transform + pos: 44.5,-31.5 + parent: 2 + - uid: 1503 + components: + - type: Transform + pos: 45.5,-31.5 + parent: 2 + - uid: 1504 + components: + - type: Transform + pos: 45.5,-32.5 + parent: 2 + - uid: 1505 + components: + - type: Transform + pos: 45.5,-33.5 + parent: 2 + - uid: 1506 + components: + - type: Transform + pos: 45.5,-30.5 + parent: 2 + - uid: 1507 + components: + - type: Transform + pos: 45.5,-29.5 + parent: 2 + - uid: 1508 + components: + - type: Transform + pos: 45.5,-28.5 + parent: 2 + - uid: 1509 + components: + - type: Transform + pos: 45.5,-19.5 + parent: 2 + - uid: 1510 + components: + - type: Transform + pos: 45.5,-21.5 + parent: 2 + - uid: 1511 + components: + - type: Transform + pos: 44.5,-21.5 + parent: 2 + - uid: 1512 + components: + - type: Transform + pos: 44.5,-22.5 + parent: 2 + - uid: 1513 + components: + - type: Transform + pos: 44.5,-23.5 + parent: 2 + - uid: 1514 + components: + - type: Transform + pos: 44.5,-24.5 + parent: 2 + - uid: 1515 + components: + - type: Transform + pos: 43.5,-24.5 + parent: 2 + - uid: 1516 + components: + - type: Transform + pos: 42.5,-24.5 + parent: 2 + - uid: 1517 + components: + - type: Transform + pos: 41.5,-24.5 + parent: 2 + - uid: 1518 + components: + - type: Transform + pos: 40.5,-24.5 + parent: 2 + - uid: 1519 + components: + - type: Transform + pos: 39.5,-24.5 + parent: 2 + - uid: 1520 + components: + - type: Transform + pos: 38.5,-24.5 + parent: 2 + - uid: 1521 + components: + - type: Transform + pos: 37.5,-24.5 + parent: 2 + - uid: 1522 + components: + - type: Transform + pos: 37.5,-23.5 + parent: 2 + - uid: 1523 + components: + - type: Transform + pos: 37.5,-22.5 + parent: 2 + - uid: 1524 + components: + - type: Transform + pos: 37.5,-21.5 + parent: 2 + - uid: 1525 + components: + - type: Transform + pos: 37.5,-20.5 + parent: 2 + - uid: 1526 + components: + - type: Transform + pos: 37.5,-19.5 + parent: 2 + - uid: 1527 + components: + - type: Transform + pos: 37.5,-18.5 + parent: 2 + - uid: 1528 + components: + - type: Transform + pos: 37.5,-17.5 + parent: 2 + - uid: 1529 + components: + - type: Transform + pos: 37.5,-16.5 + parent: 2 + - uid: 1530 + components: + - type: Transform + pos: 37.5,-15.5 + parent: 2 + - uid: 1531 + components: + - type: Transform + pos: 40.5,-23.5 + parent: 2 + - uid: 1532 + components: + - type: Transform + pos: 40.5,-22.5 + parent: 2 + - uid: 1533 + components: + - type: Transform + pos: 40.5,-21.5 + parent: 2 + - uid: 1534 + components: + - type: Transform + pos: 38.5,-16.5 + parent: 2 + - uid: 1535 + components: + - type: Transform + pos: 39.5,-16.5 + parent: 2 + - uid: 1536 + components: + - type: Transform + pos: 40.5,-16.5 + parent: 2 + - uid: 1537 + components: + - type: Transform + pos: 40.5,-17.5 + parent: 2 + - uid: 1538 + components: + - type: Transform + pos: 40.5,-15.5 + parent: 2 + - uid: 1539 + components: + - type: Transform + pos: 9.5,-17.5 + parent: 2 + - uid: 1540 + components: + - type: Transform + pos: 9.5,-18.5 + parent: 2 + - uid: 1541 + components: + - type: Transform + pos: 9.5,-19.5 + parent: 2 + - uid: 1542 + components: + - type: Transform + pos: 8.5,-19.5 + parent: 2 + - uid: 1543 + components: + - type: Transform + pos: 7.5,-19.5 + parent: 2 + - uid: 1544 + components: + - type: Transform + pos: 6.5,-19.5 + parent: 2 + - uid: 1545 + components: + - type: Transform + pos: 5.5,-19.5 + parent: 2 + - uid: 1546 + components: + - type: Transform + pos: 5.5,-20.5 + parent: 2 + - uid: 1547 + components: + - type: Transform + pos: 5.5,-21.5 + parent: 2 + - uid: 1548 + components: + - type: Transform + pos: 5.5,-22.5 + parent: 2 + - uid: 1549 + components: + - type: Transform + pos: 5.5,-23.5 + parent: 2 + - uid: 1550 + components: + - type: Transform + pos: 5.5,-24.5 + parent: 2 + - uid: 1551 + components: + - type: Transform + pos: 6.5,-24.5 + parent: 2 + - uid: 1552 + components: + - type: Transform + pos: 7.5,-24.5 + parent: 2 + - uid: 1553 + components: + - type: Transform + pos: 8.5,-24.5 + parent: 2 + - uid: 1554 + components: + - type: Transform + pos: 9.5,-24.5 + parent: 2 + - uid: 1555 + components: + - type: Transform + pos: 7.5,-25.5 + parent: 2 + - uid: 1556 + components: + - type: Transform + pos: 7.5,-26.5 + parent: 2 + - uid: 1557 + components: + - type: Transform + pos: 7.5,-23.5 + parent: 2 + - uid: 1558 + components: + - type: Transform + pos: 7.5,-22.5 + parent: 2 + - uid: 1559 + components: + - type: Transform + pos: 4.5,-24.5 + parent: 2 + - uid: 1560 + components: + - type: Transform + pos: 4.5,-25.5 + parent: 2 + - uid: 1561 + components: + - type: Transform + pos: 10.5,-24.5 + parent: 2 + - uid: 1562 + components: + - type: Transform + pos: 10.5,-24.5 + parent: 2 + - uid: 1563 + components: + - type: Transform + pos: 10.5,-25.5 + parent: 2 + - uid: 1564 + components: + - type: Transform + pos: 10.5,-23.5 + parent: 2 + - uid: 1565 + components: + - type: Transform + pos: 10.5,-18.5 + parent: 2 + - uid: 1566 + components: + - type: Transform + pos: 11.5,-18.5 + parent: 2 + - uid: 1567 + components: + - type: Transform + pos: 12.5,-18.5 + parent: 2 + - uid: 1568 + components: + - type: Transform + pos: 13.5,-18.5 + parent: 2 + - uid: 1569 + components: + - type: Transform + pos: 13.5,-19.5 + parent: 2 + - uid: 1570 + components: + - type: Transform + pos: 13.5,-20.5 + parent: 2 + - uid: 1571 + components: + - type: Transform + pos: 13.5,-21.5 + parent: 2 + - uid: 1572 + components: + - type: Transform + pos: 22.5,-26.5 + parent: 2 + - uid: 1573 + components: + - type: Transform + pos: 22.5,-25.5 + parent: 2 + - uid: 1574 + components: + - type: Transform + pos: 22.5,-24.5 + parent: 2 + - uid: 1575 + components: + - type: Transform + pos: 22.5,-23.5 + parent: 2 + - uid: 1576 + components: + - type: Transform + pos: 16.5,-26.5 + parent: 2 + - uid: 1577 + components: + - type: Transform + pos: 13.5,-23.5 + parent: 2 + - uid: 1578 + components: + - type: Transform + pos: 13.5,-16.5 + parent: 2 + - uid: 1579 + components: + - type: Transform + pos: 13.5,-24.5 + parent: 2 + - uid: 1580 + components: + - type: Transform + pos: 11.5,-24.5 + parent: 2 + - uid: 1581 + components: + - type: Transform + pos: 18.5,-10.5 + parent: 2 + - uid: 1582 + components: + - type: Transform + pos: 18.5,-11.5 + parent: 2 + - uid: 1583 + components: + - type: Transform + pos: 7.5,-30.5 + parent: 2 + - uid: 1584 + components: + - type: Transform + pos: 7.5,-29.5 + parent: 2 + - uid: 1585 + components: + - type: Transform + pos: 7.5,-32.5 + parent: 2 + - uid: 1586 + components: + - type: Transform + pos: -25.5,8.5 + parent: 2 + - uid: 1587 + components: + - type: Transform + pos: -25.5,7.5 + parent: 2 + - uid: 1588 + components: + - type: Transform + pos: -24.5,7.5 + parent: 2 + - uid: 1589 + components: + - type: Transform + pos: -24.5,4.5 + parent: 2 + - uid: 1590 + components: + - type: Transform + pos: -25.5,7.5 + parent: 2 + - uid: 1591 + components: + - type: Transform + pos: -26.5,7.5 + parent: 2 + - uid: 1592 + components: + - type: Transform + pos: -27.5,7.5 + parent: 2 + - uid: 1593 + components: + - type: Transform + pos: -28.5,7.5 + parent: 2 + - uid: 1594 + components: + - type: Transform + pos: -29.5,7.5 + parent: 2 + - uid: 1595 + components: + - type: Transform + pos: -29.5,6.5 + parent: 2 + - uid: 1596 + components: + - type: Transform + pos: -29.5,5.5 + parent: 2 + - uid: 1597 + components: + - type: Transform + pos: -29.5,4.5 + parent: 2 + - uid: 1598 + components: + - type: Transform + pos: -30.5,7.5 + parent: 2 + - uid: 1599 + components: + - type: Transform + pos: -30.5,8.5 + parent: 2 + - uid: 1600 + components: + - type: Transform + pos: -24.5,10.5 + parent: 2 + - uid: 1601 + components: + - type: Transform + pos: -25.5,10.5 + parent: 2 + - uid: 1602 + components: + - type: Transform + pos: -26.5,10.5 + parent: 2 + - uid: 1603 + components: + - type: Transform + pos: -27.5,10.5 + parent: 2 + - uid: 1604 + components: + - type: Transform + pos: -28.5,10.5 + parent: 2 + - uid: 1605 + components: + - type: Transform + pos: -28.5,11.5 + parent: 2 + - uid: 1606 + components: + - type: Transform + pos: -28.5,12.5 + parent: 2 + - uid: 1607 + components: + - type: Transform + pos: -29.5,10.5 + parent: 2 + - uid: 1608 + components: + - type: Transform + pos: -30.5,10.5 + parent: 2 + - uid: 1609 + components: + - type: Transform + pos: -28.5,13.5 + parent: 2 + - uid: 1610 + components: + - type: Transform + pos: -26.5,11.5 + parent: 2 + - uid: 1611 + components: + - type: Transform + pos: -26.5,12.5 + parent: 2 + - uid: 1612 + components: + - type: Transform + pos: -26.5,13.5 + parent: 2 + - uid: 1613 + components: + - type: Transform + pos: -30.5,11.5 + parent: 2 + - uid: 1614 + components: + - type: Transform + pos: -30.5,12.5 + parent: 2 + - uid: 1615 + components: + - type: Transform + pos: -40.5,7.5 + parent: 2 + - uid: 1616 + components: + - type: Transform + pos: -41.5,-0.5 + parent: 2 + - uid: 1617 + components: + - type: Transform + pos: -40.5,5.5 + parent: 2 + - uid: 1618 + components: + - type: Transform + pos: -40.5,6.5 + parent: 2 + - uid: 1619 + components: + - type: Transform + pos: -40.5,8.5 + parent: 2 + - uid: 1620 + components: + - type: Transform + pos: -40.5,9.5 + parent: 2 + - uid: 1621 + components: + - type: Transform + pos: -40.5,10.5 + parent: 2 + - uid: 1622 + components: + - type: Transform + pos: -40.5,11.5 + parent: 2 + - uid: 1623 + components: + - type: Transform + pos: -42.5,9.5 + parent: 2 + - uid: 1624 + components: + - type: Transform + pos: -41.5,9.5 + parent: 2 + - uid: 1625 + components: + - type: Transform + pos: -40.5,9.5 + parent: 2 + - uid: 1626 + components: + - type: Transform + pos: -39.5,9.5 + parent: 2 + - uid: 1627 + components: + - type: Transform + pos: -38.5,9.5 + parent: 2 + - uid: 1628 + components: + - type: Transform + pos: -37.5,9.5 + parent: 2 + - uid: 1629 + components: + - type: Transform + pos: -39.5,6.5 + parent: 2 + - uid: 1630 + components: + - type: Transform + pos: -38.5,6.5 + parent: 2 + - uid: 1631 + components: + - type: Transform + pos: -37.5,3.5 + parent: 2 + - uid: 1632 + components: + - type: Transform + pos: -38.5,5.5 + parent: 2 + - uid: 1633 + components: + - type: Transform + pos: -38.5,4.5 + parent: 2 + - uid: 1634 + components: + - type: Transform + pos: -38.5,3.5 + parent: 2 + - uid: 1635 + components: + - type: Transform + pos: -38.5,2.5 + parent: 2 + - uid: 1636 + components: + - type: Transform + pos: -38.5,1.5 + parent: 2 + - uid: 1637 + components: + - type: Transform + pos: -38.5,0.5 + parent: 2 + - uid: 1638 + components: + - type: Transform + pos: -38.5,-0.5 + parent: 2 + - uid: 1639 + components: + - type: Transform + pos: -38.5,-1.5 + parent: 2 + - uid: 1640 + components: + - type: Transform + pos: -38.5,-2.5 + parent: 2 + - uid: 1641 + components: + - type: Transform + pos: -38.5,-3.5 + parent: 2 + - uid: 1642 + components: + - type: Transform + pos: -38.5,-4.5 + parent: 2 + - uid: 1643 + components: + - type: Transform + pos: -38.5,-5.5 + parent: 2 + - uid: 1644 + components: + - type: Transform + pos: -40.5,-0.5 + parent: 2 + - uid: 1645 + components: + - type: Transform + pos: -39.5,-0.5 + parent: 2 + - uid: 1646 + components: + - type: Transform + pos: -38.5,-0.5 + parent: 2 + - uid: 1647 + components: + - type: Transform + pos: -37.5,-0.5 + parent: 2 + - uid: 1648 + components: + - type: Transform + pos: -41.5,-3.5 + parent: 2 + - uid: 1649 + components: + - type: Transform + pos: -41.5,-2.5 + parent: 2 + - uid: 1650 + components: + - type: Transform + pos: -41.5,-1.5 + parent: 2 + - uid: 1651 + components: + - type: Transform + pos: -41.5,-0.5 + parent: 2 + - uid: 1652 + components: + - type: Transform + pos: -41.5,0.5 + parent: 2 + - uid: 1653 + components: + - type: Transform + pos: -41.5,1.5 + parent: 2 + - uid: 1654 + components: + - type: Transform + pos: -41.5,2.5 + parent: 2 + - uid: 1655 + components: + - type: Transform + pos: -43.5,9.5 + parent: 2 + - uid: 1656 + components: + - type: Transform + pos: -43.5,9.5 + parent: 2 + - uid: 1657 + components: + - type: Transform + pos: -43.5,10.5 + parent: 2 + - uid: 1658 + components: + - type: Transform + pos: -43.5,11.5 + parent: 2 + - uid: 1659 + components: + - type: Transform + pos: -37.5,10.5 + parent: 2 + - uid: 1660 + components: + - type: Transform + pos: -37.5,11.5 + parent: 2 + - uid: 1661 + components: + - type: Transform + pos: -42.5,9.5 + parent: 2 + - uid: 1662 + components: + - type: Transform + pos: -42.5,8.5 + parent: 2 + - uid: 1663 + components: + - type: Transform + pos: -42.5,7.5 + parent: 2 + - uid: 1664 + components: + - type: Transform + pos: -42.5,6.5 + parent: 2 + - uid: 1665 + components: + - type: Transform + pos: -43.5,6.5 + parent: 2 + - uid: 1666 + components: + - type: Transform + pos: -42.5,3.5 + parent: 2 + - uid: 1667 + components: + - type: Transform + pos: -42.5,2.5 + parent: 2 + - uid: 1668 + components: + - type: Transform + pos: -42.5,1.5 + parent: 2 + - uid: 1669 + components: + - type: Transform + pos: -42.5,0.5 + parent: 2 + - uid: 1670 + components: + - type: Transform + pos: -42.5,-3.5 + parent: 2 + - uid: 1671 + components: + - type: Transform + pos: -42.5,-4.5 + parent: 2 + - uid: 1672 + components: + - type: Transform + pos: -42.5,-1.5 + parent: 2 + - uid: 1673 + components: + - type: Transform + pos: -43.5,-1.5 + parent: 2 + - uid: 1674 + components: + - type: Transform + pos: -44.5,-1.5 + parent: 2 + - uid: 1675 + components: + - type: Transform + pos: -44.5,0.5 + parent: 2 + - uid: 1676 + components: + - type: Transform + pos: -43.5,0.5 + parent: 2 + - uid: 1677 + components: + - type: Transform + pos: -36.5,3.5 + parent: 2 + - uid: 1678 + components: + - type: Transform + pos: -37.5,-4.5 + parent: 2 + - uid: 1679 + components: + - type: Transform + pos: -36.5,-4.5 + parent: 2 + - uid: 1680 + components: + - type: Transform + pos: -37.5,-1.5 + parent: 2 + - uid: 1681 + components: + - type: Transform + pos: -41.5,-8.5 + parent: 2 + - uid: 1682 + components: + - type: Transform + pos: -38.5,-11.5 + parent: 2 + - uid: 1683 + components: + - type: Transform + pos: -42.5,-6.5 + parent: 2 + - uid: 1684 + components: + - type: Transform + pos: -42.5,-7.5 + parent: 2 + - uid: 1685 + components: + - type: Transform + pos: -42.5,-8.5 + parent: 2 + - uid: 1686 + components: + - type: Transform + pos: -43.5,-8.5 + parent: 2 + - uid: 1687 + components: + - type: Transform + pos: -44.5,-8.5 + parent: 2 + - uid: 1688 + components: + - type: Transform + pos: -40.5,-8.5 + parent: 2 + - uid: 1689 + components: + - type: Transform + pos: -39.5,-8.5 + parent: 2 + - uid: 1690 + components: + - type: Transform + pos: -38.5,-8.5 + parent: 2 + - uid: 1691 + components: + - type: Transform + pos: -37.5,-8.5 + parent: 2 + - uid: 1692 + components: + - type: Transform + pos: -36.5,-8.5 + parent: 2 + - uid: 1693 + components: + - type: Transform + pos: -38.5,-7.5 + parent: 2 + - uid: 1694 + components: + - type: Transform + pos: -37.5,-9.5 + parent: 2 + - uid: 1695 + components: + - type: Transform + pos: -37.5,-10.5 + parent: 2 + - uid: 1696 + components: + - type: Transform + pos: -37.5,-11.5 + parent: 2 + - uid: 1697 + components: + - type: Transform + pos: -37.5,-12.5 + parent: 2 + - uid: 1698 + components: + - type: Transform + pos: -37.5,-13.5 + parent: 2 + - uid: 1699 + components: + - type: Transform + pos: -37.5,-14.5 + parent: 2 + - uid: 1700 + components: + - type: Transform + pos: -37.5,-15.5 + parent: 2 + - uid: 1701 + components: + - type: Transform + pos: -37.5,-16.5 + parent: 2 + - uid: 1702 + components: + - type: Transform + pos: -37.5,-17.5 + parent: 2 + - uid: 1703 + components: + - type: Transform + pos: -37.5,-18.5 + parent: 2 + - uid: 1704 + components: + - type: Transform + pos: -37.5,-19.5 + parent: 2 + - uid: 1705 + components: + - type: Transform + pos: -37.5,-20.5 + parent: 2 + - uid: 1706 + components: + - type: Transform + pos: -39.5,-11.5 + parent: 2 + - uid: 1707 + components: + - type: Transform + pos: -40.5,-11.5 + parent: 2 + - uid: 1708 + components: + - type: Transform + pos: -41.5,-11.5 + parent: 2 + - uid: 1709 + components: + - type: Transform + pos: -42.5,-11.5 + parent: 2 + - uid: 1710 + components: + - type: Transform + pos: -43.5,-11.5 + parent: 2 + - uid: 1711 + components: + - type: Transform + pos: -44.5,-11.5 + parent: 2 + - uid: 1712 + components: + - type: Transform + pos: -43.5,-12.5 + parent: 2 + - uid: 1713 + components: + - type: Transform + pos: -43.5,-13.5 + parent: 2 + - uid: 1714 + components: + - type: Transform + pos: -45.5,-11.5 + parent: 2 + - uid: 1715 + components: + - type: Transform + pos: -38.5,-18.5 + parent: 2 + - uid: 1716 + components: + - type: Transform + pos: -39.5,-18.5 + parent: 2 + - uid: 1717 + components: + - type: Transform + pos: -40.5,-18.5 + parent: 2 + - uid: 1718 + components: + - type: Transform + pos: -41.5,-18.5 + parent: 2 + - uid: 1719 + components: + - type: Transform + pos: -42.5,-18.5 + parent: 2 + - uid: 1720 + components: + - type: Transform + pos: -43.5,-18.5 + parent: 2 + - uid: 1721 + components: + - type: Transform + pos: -44.5,-18.5 + parent: 2 + - uid: 1722 + components: + - type: Transform + pos: -45.5,-18.5 + parent: 2 + - uid: 1723 + components: + - type: Transform + pos: -46.5,-18.5 + parent: 2 + - uid: 1724 + components: + - type: Transform + pos: -44.5,-17.5 + parent: 2 + - uid: 1725 + components: + - type: Transform + pos: -44.5,-16.5 + parent: 2 + - uid: 1726 + components: + - type: Transform + pos: -44.5,-15.5 + parent: 2 + - uid: 1727 + components: + - type: Transform + pos: -44.5,-19.5 + parent: 2 + - uid: 1728 + components: + - type: Transform + pos: -44.5,-20.5 + parent: 2 + - uid: 1729 + components: + - type: Transform + pos: -44.5,-21.5 + parent: 2 + - uid: 1730 + components: + - type: Transform + pos: -44.5,-22.5 + parent: 2 + - uid: 1731 + components: + - type: Transform + pos: -44.5,-23.5 + parent: 2 + - uid: 1732 + components: + - type: Transform + pos: -47.5,-18.5 + parent: 2 + - uid: 1733 + components: + - type: Transform + pos: -48.5,-18.5 + parent: 2 + - uid: 1734 + components: + - type: Transform + pos: -48.5,-22.5 + parent: 2 + - uid: 1735 + components: + - type: Transform + pos: -48.5,-21.5 + parent: 2 + - uid: 1736 + components: + - type: Transform + pos: -48.5,-20.5 + parent: 2 + - uid: 1737 + components: + - type: Transform + pos: -48.5,-19.5 + parent: 2 + - uid: 1738 + components: + - type: Transform + pos: -48.5,-18.5 + parent: 2 + - uid: 1739 + components: + - type: Transform + pos: -48.5,-17.5 + parent: 2 + - uid: 1740 + components: + - type: Transform + pos: -48.5,-16.5 + parent: 2 + - uid: 1741 + components: + - type: Transform + pos: -32.5,-29.5 + parent: 2 + - uid: 1742 + components: + - type: Transform + pos: -23.5,29.5 + parent: 2 + - uid: 1743 + components: + - type: Transform + pos: -20.5,-22.5 + parent: 2 + - uid: 1744 + components: + - type: Transform + pos: -25.5,-18.5 + parent: 2 + - uid: 1745 + components: + - type: Transform + pos: -24.5,-18.5 + parent: 2 + - uid: 1746 + components: + - type: Transform + pos: -24.5,-17.5 + parent: 2 + - uid: 1747 + components: + - type: Transform + pos: -25.5,-17.5 + parent: 2 + - uid: 1748 + components: + - type: Transform + pos: -26.5,-17.5 + parent: 2 + - uid: 1749 + components: + - type: Transform + pos: -27.5,-17.5 + parent: 2 + - uid: 1750 + components: + - type: Transform + pos: -28.5,-17.5 + parent: 2 + - uid: 1751 + components: + - type: Transform + pos: -29.5,-17.5 + parent: 2 + - uid: 1752 + components: + - type: Transform + pos: -30.5,-17.5 + parent: 2 + - uid: 1753 + components: + - type: Transform + pos: -23.5,-17.5 + parent: 2 + - uid: 1754 + components: + - type: Transform + pos: -22.5,-17.5 + parent: 2 + - uid: 1755 + components: + - type: Transform + pos: -21.5,-17.5 + parent: 2 + - uid: 1756 + components: + - type: Transform + pos: -20.5,-17.5 + parent: 2 + - uid: 1757 + components: + - type: Transform + pos: -19.5,-17.5 + parent: 2 + - uid: 1758 + components: + - type: Transform + pos: -18.5,-17.5 + parent: 2 + - uid: 1759 + components: + - type: Transform + pos: -21.5,-18.5 + parent: 2 + - uid: 1760 + components: + - type: Transform + pos: -21.5,-19.5 + parent: 2 + - uid: 1761 + components: + - type: Transform + pos: -21.5,-20.5 + parent: 2 + - uid: 1762 + components: + - type: Transform + pos: -21.5,-21.5 + parent: 2 + - uid: 1763 + components: + - type: Transform + pos: -21.5,-22.5 + parent: 2 + - uid: 1764 + components: + - type: Transform + pos: -21.5,-23.5 + parent: 2 + - uid: 1765 + components: + - type: Transform + pos: -21.5,-24.5 + parent: 2 + - uid: 1766 + components: + - type: Transform + pos: -22.5,-22.5 + parent: 2 + - uid: 1767 + components: + - type: Transform + pos: -23.5,-22.5 + parent: 2 + - uid: 1768 + components: + - type: Transform + pos: -24.5,-22.5 + parent: 2 + - uid: 1769 + components: + - type: Transform + pos: -25.5,-22.5 + parent: 2 + - uid: 1770 + components: + - type: Transform + pos: -26.5,-22.5 + parent: 2 + - uid: 1771 + components: + - type: Transform + pos: -24.5,-23.5 + parent: 2 + - uid: 1772 + components: + - type: Transform + pos: -26.5,-21.5 + parent: 2 + - uid: 1773 + components: + - type: Transform + pos: -22.5,-24.5 + parent: 2 + - uid: 1774 + components: + - type: Transform + pos: -22.5,-25.5 + parent: 2 + - uid: 1775 + components: + - type: Transform + pos: -25.5,-28.5 + parent: 2 + - uid: 1776 + components: + - type: Transform + pos: -27.5,-27.5 + parent: 2 + - uid: 1777 + components: + - type: Transform + pos: -26.5,-27.5 + parent: 2 + - uid: 1778 + components: + - type: Transform + pos: -25.5,-27.5 + parent: 2 + - uid: 1779 + components: + - type: Transform + pos: -24.5,-27.5 + parent: 2 + - uid: 1780 + components: + - type: Transform + pos: -23.5,-27.5 + parent: 2 + - uid: 1781 + components: + - type: Transform + pos: -22.5,-27.5 + parent: 2 + - uid: 1782 + components: + - type: Transform + pos: -21.5,-27.5 + parent: 2 + - uid: 1783 + components: + - type: Transform + pos: -20.5,-27.5 + parent: 2 + - uid: 1784 + components: + - type: Transform + pos: -19.5,-27.5 + parent: 2 + - uid: 1785 + components: + - type: Transform + pos: -18.5,-27.5 + parent: 2 + - uid: 1786 + components: + - type: Transform + pos: -17.5,-27.5 + parent: 2 + - uid: 1787 + components: + - type: Transform + pos: -16.5,-27.5 + parent: 2 + - uid: 1788 + components: + - type: Transform + pos: -15.5,-27.5 + parent: 2 + - uid: 1789 + components: + - type: Transform + pos: -14.5,-27.5 + parent: 2 + - uid: 1790 + components: + - type: Transform + pos: -13.5,-27.5 + parent: 2 + - uid: 1791 + components: + - type: Transform + pos: -12.5,-27.5 + parent: 2 + - uid: 1792 + components: + - type: Transform + pos: -11.5,-27.5 + parent: 2 + - uid: 1793 + components: + - type: Transform + pos: -10.5,-27.5 + parent: 2 + - uid: 1794 + components: + - type: Transform + pos: -9.5,-27.5 + parent: 2 + - uid: 1795 + components: + - type: Transform + pos: -8.5,-27.5 + parent: 2 + - uid: 1796 + components: + - type: Transform + pos: -7.5,-27.5 + parent: 2 + - uid: 1797 + components: + - type: Transform + pos: -6.5,-27.5 + parent: 2 + - uid: 1798 + components: + - type: Transform + pos: -5.5,-27.5 + parent: 2 + - uid: 1799 + components: + - type: Transform + pos: -4.5,-27.5 + parent: 2 + - uid: 1800 + components: + - type: Transform + pos: -3.5,-27.5 + parent: 2 + - uid: 1801 + components: + - type: Transform + pos: -2.5,-27.5 + parent: 2 + - uid: 1802 + components: + - type: Transform + pos: -1.5,-27.5 + parent: 2 + - uid: 1803 + components: + - type: Transform + pos: -10.5,-26.5 + parent: 2 + - uid: 1804 + components: + - type: Transform + pos: -10.5,-25.5 + parent: 2 + - uid: 1805 + components: + - type: Transform + pos: -10.5,-24.5 + parent: 2 + - uid: 1806 + components: + - type: Transform + pos: -10.5,-23.5 + parent: 2 + - uid: 1807 + components: + - type: Transform + pos: -10.5,-22.5 + parent: 2 + - uid: 1808 + components: + - type: Transform + pos: -10.5,-21.5 + parent: 2 + - uid: 1809 + components: + - type: Transform + pos: -11.5,-22.5 + parent: 2 + - uid: 1810 + components: + - type: Transform + pos: -9.5,-22.5 + parent: 2 + - uid: 1811 + components: + - type: Transform + pos: -25.5,-29.5 + parent: 2 + - uid: 1812 + components: + - type: Transform + pos: -25.5,-30.5 + parent: 2 + - uid: 1813 + components: + - type: Transform + pos: -26.5,-30.5 + parent: 2 + - uid: 1814 + components: + - type: Transform + pos: -27.5,-30.5 + parent: 2 + - uid: 1815 + components: + - type: Transform + pos: -28.5,-30.5 + parent: 2 + - uid: 1816 + components: + - type: Transform + pos: -29.5,-30.5 + parent: 2 + - uid: 1817 + components: + - type: Transform + pos: -30.5,-30.5 + parent: 2 + - uid: 1818 + components: + - type: Transform + pos: -31.5,-30.5 + parent: 2 + - uid: 1819 + components: + - type: Transform + pos: -32.5,-30.5 + parent: 2 + - uid: 1820 + components: + - type: Transform + pos: -33.5,-30.5 + parent: 2 + - uid: 1821 + components: + - type: Transform + pos: -34.5,-30.5 + parent: 2 + - uid: 1822 + components: + - type: Transform + pos: -29.5,-29.5 + parent: 2 + - uid: 1823 + components: + - type: Transform + pos: -29.5,-28.5 + parent: 2 + - uid: 1824 + components: + - type: Transform + pos: -29.5,-27.5 + parent: 2 + - uid: 1825 + components: + - type: Transform + pos: -29.5,-26.5 + parent: 2 + - uid: 1826 + components: + - type: Transform + pos: -29.5,-25.5 + parent: 2 + - uid: 1827 + components: + - type: Transform + pos: -32.5,-28.5 + parent: 2 + - uid: 1828 + components: + - type: Transform + pos: -32.5,-27.5 + parent: 2 + - uid: 1829 + components: + - type: Transform + pos: -32.5,-26.5 + parent: 2 + - uid: 1830 + components: + - type: Transform + pos: -35.5,-30.5 + parent: 2 + - uid: 1831 + components: + - type: Transform + pos: -35.5,-29.5 + parent: 2 + - uid: 1832 + components: + - type: Transform + pos: -35.5,-28.5 + parent: 2 + - uid: 1833 + components: + - type: Transform + pos: -35.5,-27.5 + parent: 2 + - uid: 1834 + components: + - type: Transform + pos: -35.5,-26.5 + parent: 2 + - uid: 1835 + components: + - type: Transform + pos: -26.5,-36.5 + parent: 2 + - uid: 1836 + components: + - type: Transform + pos: -29.5,-31.5 + parent: 2 + - uid: 1837 + components: + - type: Transform + pos: -33.5,-31.5 + parent: 2 + - uid: 1838 + components: + - type: Transform + pos: -33.5,-32.5 + parent: 2 + - uid: 1839 + components: + - type: Transform + pos: -33.5,-33.5 + parent: 2 + - uid: 1840 + components: + - type: Transform + pos: -33.5,-44.5 + parent: 2 + - uid: 1841 + components: + - type: Transform + pos: -33.5,-36.5 + parent: 2 + - uid: 1842 + components: + - type: Transform + pos: -33.5,-37.5 + parent: 2 + - uid: 1843 + components: + - type: Transform + pos: -33.5,-38.5 + parent: 2 + - uid: 1844 + components: + - type: Transform + pos: -33.5,-39.5 + parent: 2 + - uid: 1845 + components: + - type: Transform + pos: -33.5,-40.5 + parent: 2 + - uid: 1846 + components: + - type: Transform + pos: -33.5,-41.5 + parent: 2 + - uid: 1847 + components: + - type: Transform + pos: -33.5,-42.5 + parent: 2 + - uid: 1848 + components: + - type: Transform + pos: -33.5,-43.5 + parent: 2 + - uid: 1849 + components: + - type: Transform + pos: -32.5,-40.5 + parent: 2 + - uid: 1850 + components: + - type: Transform + pos: -31.5,-40.5 + parent: 2 + - uid: 1851 + components: + - type: Transform + pos: -30.5,-40.5 + parent: 2 + - uid: 1852 + components: + - type: Transform + pos: -29.5,-40.5 + parent: 2 + - uid: 1853 + components: + - type: Transform + pos: -28.5,-40.5 + parent: 2 + - uid: 1854 + components: + - type: Transform + pos: -27.5,-40.5 + parent: 2 + - uid: 1855 + components: + - type: Transform + pos: -29.5,-33.5 + parent: 2 + - uid: 1856 + components: + - type: Transform + pos: -29.5,-34.5 + parent: 2 + - uid: 1857 + components: + - type: Transform + pos: -29.5,-35.5 + parent: 2 + - uid: 1858 + components: + - type: Transform + pos: -35.5,-37.5 + parent: 2 + - uid: 1859 + components: + - type: Transform + pos: -25.5,-36.5 + parent: 2 + - uid: 1860 + components: + - type: Transform + pos: -24.5,-36.5 + parent: 2 + - uid: 1861 + components: + - type: Transform + pos: -24.5,-39.5 + parent: 2 + - uid: 1862 + components: + - type: Transform + pos: -24.5,-38.5 + parent: 2 + - uid: 1863 + components: + - type: Transform + pos: -24.5,-37.5 + parent: 2 + - uid: 1864 + components: + - type: Transform + pos: -24.5,-36.5 + parent: 2 + - uid: 1865 + components: + - type: Transform + pos: -24.5,-35.5 + parent: 2 + - uid: 1866 + components: + - type: Transform + pos: -24.5,-34.5 + parent: 2 + - uid: 1867 + components: + - type: Transform + pos: -24.5,-33.5 + parent: 2 + - uid: 1868 + components: + - type: Transform + pos: -42.5,-37.5 + parent: 2 + - uid: 1869 + components: + - type: Transform + pos: -44.5,-34.5 + parent: 2 + - uid: 1870 + components: + - type: Transform + pos: -40.5,-37.5 + parent: 2 + - uid: 1871 + components: + - type: Transform + pos: -39.5,-37.5 + parent: 2 + - uid: 1872 + components: + - type: Transform + pos: -38.5,-37.5 + parent: 2 + - uid: 1873 + components: + - type: Transform + pos: -38.5,-39.5 + parent: 2 + - uid: 1874 + components: + - type: Transform + pos: -38.5,-38.5 + parent: 2 + - uid: 1875 + components: + - type: Transform + pos: -38.5,-37.5 + parent: 2 + - uid: 1876 + components: + - type: Transform + pos: -38.5,-36.5 + parent: 2 + - uid: 1877 + components: + - type: Transform + pos: -38.5,-35.5 + parent: 2 + - uid: 1878 + components: + - type: Transform + pos: -38.5,-37.5 + parent: 2 + - uid: 1879 + components: + - type: Transform + pos: -37.5,-37.5 + parent: 2 + - uid: 1880 + components: + - type: Transform + pos: -39.5,-35.5 + parent: 2 + - uid: 1881 + components: + - type: Transform + pos: -40.5,-35.5 + parent: 2 + - uid: 1882 + components: + - type: Transform + pos: -41.5,-35.5 + parent: 2 + - uid: 1883 + components: + - type: Transform + pos: -42.5,-35.5 + parent: 2 + - uid: 1884 + components: + - type: Transform + pos: -43.5,-35.5 + parent: 2 + - uid: 1885 + components: + - type: Transform + pos: -43.5,-34.5 + parent: 2 + - uid: 1886 + components: + - type: Transform + pos: -43.5,-33.5 + parent: 2 + - uid: 1887 + components: + - type: Transform + pos: -43.5,-32.5 + parent: 2 + - uid: 1888 + components: + - type: Transform + pos: -43.5,-31.5 + parent: 2 + - uid: 1889 + components: + - type: Transform + pos: -43.5,-30.5 + parent: 2 + - uid: 1890 + components: + - type: Transform + pos: -45.5,-34.5 + parent: 2 + - uid: 1891 + components: + - type: Transform + pos: -46.5,-34.5 + parent: 2 + - uid: 1892 + components: + - type: Transform + pos: -47.5,-34.5 + parent: 2 + - uid: 1893 + components: + - type: Transform + pos: -48.5,-34.5 + parent: 2 + - uid: 1894 + components: + - type: Transform + pos: -42.5,-32.5 + parent: 2 + - uid: 1895 + components: + - type: Transform + pos: -41.5,-32.5 + parent: 2 + - uid: 1896 + components: + - type: Transform + pos: -41.5,-31.5 + parent: 2 + - uid: 1897 + components: + - type: Transform + pos: -41.5,-30.5 + parent: 2 + - uid: 1898 + components: + - type: Transform + pos: -44.5,-31.5 + parent: 2 + - uid: 1899 + components: + - type: Transform + pos: -45.5,-31.5 + parent: 2 + - uid: 1900 + components: + - type: Transform + pos: -46.5,-31.5 + parent: 2 + - uid: 1901 + components: + - type: Transform + pos: -46.5,-30.5 + parent: 2 + - uid: 1902 + components: + - type: Transform + pos: -42.5,-36.5 + parent: 2 + - uid: 1903 + components: + - type: Transform + pos: -42.5,-38.5 + parent: 2 + - uid: 1904 + components: + - type: Transform + pos: -42.5,-39.5 + parent: 2 + - uid: 1905 + components: + - type: Transform + pos: -42.5,-40.5 + parent: 2 + - uid: 1906 + components: + - type: Transform + pos: -42.5,-41.5 + parent: 2 + - uid: 1907 + components: + - type: Transform + pos: -42.5,-42.5 + parent: 2 + - uid: 1908 + components: + - type: Transform + pos: -42.5,-43.5 + parent: 2 + - uid: 1909 + components: + - type: Transform + pos: -43.5,-43.5 + parent: 2 + - uid: 1910 + components: + - type: Transform + pos: -44.5,-43.5 + parent: 2 + - uid: 1911 + components: + - type: Transform + pos: -45.5,-43.5 + parent: 2 + - uid: 1912 + components: + - type: Transform + pos: -41.5,-42.5 + parent: 2 + - uid: 1913 + components: + - type: Transform + pos: -40.5,-42.5 + parent: 2 + - uid: 1914 + components: + - type: Transform + pos: -39.5,-42.5 + parent: 2 + - uid: 1915 + components: + - type: Transform + pos: -38.5,-42.5 + parent: 2 + - uid: 1916 + components: + - type: Transform + pos: -37.5,-42.5 + parent: 2 + - uid: 1917 + components: + - type: Transform + pos: -36.5,-42.5 + parent: 2 + - uid: 1918 + components: + - type: Transform + pos: -39.5,-24.5 + parent: 2 + - uid: 1919 + components: + - type: Transform + pos: -39.5,-25.5 + parent: 2 + - uid: 1920 + components: + - type: Transform + pos: -39.5,-26.5 + parent: 2 + - uid: 1921 + components: + - type: Transform + pos: -40.5,-26.5 + parent: 2 + - uid: 1922 + components: + - type: Transform + pos: -41.5,-26.5 + parent: 2 + - uid: 1923 + components: + - type: Transform + pos: -42.5,-26.5 + parent: 2 + - uid: 1924 + components: + - type: Transform + pos: -43.5,-26.5 + parent: 2 + - uid: 1925 + components: + - type: Transform + pos: -44.5,-26.5 + parent: 2 + - uid: 1926 + components: + - type: Transform + pos: -45.5,-26.5 + parent: 2 + - uid: 1927 + components: + - type: Transform + pos: -46.5,-26.5 + parent: 2 + - uid: 1928 + components: + - type: Transform + pos: -47.5,-26.5 + parent: 2 + - uid: 1929 + components: + - type: Transform + pos: -48.5,-26.5 + parent: 2 + - uid: 1930 + components: + - type: Transform + pos: -49.5,-26.5 + parent: 2 + - uid: 1931 + components: + - type: Transform + pos: -38.5,-26.5 + parent: 2 + - uid: 1932 + components: + - type: Transform + pos: -38.5,-27.5 + parent: 2 + - uid: 1933 + components: + - type: Transform + pos: -38.5,-28.5 + parent: 2 + - uid: 1934 + components: + - type: Transform + pos: -38.5,-29.5 + parent: 2 + - uid: 1935 + components: + - type: Transform + pos: -38.5,-30.5 + parent: 2 + - uid: 1936 + components: + - type: Transform + pos: -38.5,-31.5 + parent: 2 + - uid: 1937 + components: + - type: Transform + pos: -38.5,-32.5 + parent: 2 + - uid: 1938 + components: + - type: Transform + pos: -38.5,-33.5 + parent: 2 + - uid: 1939 + components: + - type: Transform + pos: -38.5,-24.5 + parent: 2 + - uid: 1940 + components: + - type: Transform + pos: -37.5,-24.5 + parent: 2 + - uid: 1941 + components: + - type: Transform + pos: -37.5,-23.5 + parent: 2 + - uid: 1942 + components: + - type: Transform + pos: -37.5,-22.5 + parent: 2 + - uid: 1943 + components: + - type: Transform + pos: -40.5,-49.5 + parent: 2 + - uid: 1944 + components: + - type: Transform + pos: -39.5,-49.5 + parent: 2 + - uid: 1945 + components: + - type: Transform + pos: -39.5,-50.5 + parent: 2 + - uid: 1946 + components: + - type: Transform + pos: -41.5,-49.5 + parent: 2 + - uid: 1947 + components: + - type: Transform + pos: -42.5,-49.5 + parent: 2 + - uid: 1948 + components: + - type: Transform + pos: -41.5,-50.5 + parent: 2 + - uid: 1949 + components: + - type: Transform + pos: -41.5,-51.5 + parent: 2 + - uid: 1950 + components: + - type: Transform + pos: -41.5,-52.5 + parent: 2 + - uid: 1951 + components: + - type: Transform + pos: -42.5,-52.5 + parent: 2 + - uid: 1952 + components: + - type: Transform + pos: -43.5,-52.5 + parent: 2 + - uid: 1953 + components: + - type: Transform + pos: -44.5,-52.5 + parent: 2 + - uid: 1954 + components: + - type: Transform + pos: -38.5,-49.5 + parent: 2 + - uid: 1955 + components: + - type: Transform + pos: -37.5,-49.5 + parent: 2 + - uid: 1956 + components: + - type: Transform + pos: -36.5,-49.5 + parent: 2 + - uid: 1957 + components: + - type: Transform + pos: -35.5,-49.5 + parent: 2 + - uid: 1958 + components: + - type: Transform + pos: -34.5,-49.5 + parent: 2 + - uid: 1959 + components: + - type: Transform + pos: -33.5,-49.5 + parent: 2 + - uid: 1960 + components: + - type: Transform + pos: -32.5,-49.5 + parent: 2 + - uid: 1961 + components: + - type: Transform + pos: -31.5,-49.5 + parent: 2 + - uid: 1962 + components: + - type: Transform + pos: -35.5,-50.5 + parent: 2 + - uid: 1963 + components: + - type: Transform + pos: -35.5,-51.5 + parent: 2 + - uid: 1964 + components: + - type: Transform + pos: -35.5,-52.5 + parent: 2 + - uid: 1965 + components: + - type: Transform + pos: -33.5,-48.5 + parent: 2 + - uid: 1966 + components: + - type: Transform + pos: -33.5,-47.5 + parent: 2 + - uid: 1967 + components: + - type: Transform + pos: -33.5,-46.5 + parent: 2 + - uid: 1968 + components: + - type: Transform + pos: -33.5,-45.5 + parent: 2 + - uid: 1969 + components: + - type: Transform + pos: -32.5,-47.5 + parent: 2 + - uid: 1970 + components: + - type: Transform + pos: -31.5,-47.5 + parent: 2 + - uid: 1971 + components: + - type: Transform + pos: -30.5,-47.5 + parent: 2 + - uid: 1972 + components: + - type: Transform + pos: -29.5,-47.5 + parent: 2 + - uid: 1973 + components: + - type: Transform + pos: -28.5,-47.5 + parent: 2 + - uid: 1974 + components: + - type: Transform + pos: -27.5,-47.5 + parent: 2 + - uid: 1975 + components: + - type: Transform + pos: -26.5,-47.5 + parent: 2 + - uid: 1976 + components: + - type: Transform + pos: -25.5,-47.5 + parent: 2 + - uid: 1977 + components: + - type: Transform + pos: -24.5,-47.5 + parent: 2 + - uid: 1978 + components: + - type: Transform + pos: -23.5,-47.5 + parent: 2 + - uid: 1979 + components: + - type: Transform + pos: -34.5,-46.5 + parent: 2 + - uid: 1980 + components: + - type: Transform + pos: -35.5,-46.5 + parent: 2 + - uid: 1981 + components: + - type: Transform + pos: -36.5,-46.5 + parent: 2 + - uid: 1982 + components: + - type: Transform + pos: -37.5,-46.5 + parent: 2 + - uid: 1983 + components: + - type: Transform + pos: -38.5,-46.5 + parent: 2 + - uid: 1984 + components: + - type: Transform + pos: -39.5,-46.5 + parent: 2 + - uid: 1985 + components: + - type: Transform + pos: -40.5,-46.5 + parent: 2 + - uid: 1986 + components: + - type: Transform + pos: -41.5,-46.5 + parent: 2 + - uid: 1987 + components: + - type: Transform + pos: -42.5,-46.5 + parent: 2 + - uid: 1988 + components: + - type: Transform + pos: -43.5,-46.5 + parent: 2 + - uid: 1989 + components: + - type: Transform + pos: -22.5,-42.5 + parent: 2 + - uid: 1990 + components: + - type: Transform + pos: -22.5,-43.5 + parent: 2 + - uid: 1991 + components: + - type: Transform + pos: -23.5,-43.5 + parent: 2 + - uid: 1992 + components: + - type: Transform + pos: -24.5,-43.5 + parent: 2 + - uid: 1993 + components: + - type: Transform + pos: -25.5,-43.5 + parent: 2 + - uid: 1994 + components: + - type: Transform + pos: -26.5,-43.5 + parent: 2 + - uid: 1995 + components: + - type: Transform + pos: -27.5,-43.5 + parent: 2 + - uid: 1996 + components: + - type: Transform + pos: -28.5,-43.5 + parent: 2 + - uid: 1997 + components: + - type: Transform + pos: -29.5,-43.5 + parent: 2 + - uid: 1998 + components: + - type: Transform + pos: -30.5,-43.5 + parent: 2 + - uid: 1999 + components: + - type: Transform + pos: -21.5,-43.5 + parent: 2 + - uid: 2000 + components: + - type: Transform + pos: -20.5,-43.5 + parent: 2 + - uid: 2001 + components: + - type: Transform + pos: -20.5,-42.5 + parent: 2 + - uid: 2002 + components: + - type: Transform + pos: -20.5,-41.5 + parent: 2 + - uid: 2003 + components: + - type: Transform + pos: -20.5,-40.5 + parent: 2 + - uid: 2004 + components: + - type: Transform + pos: -20.5,-39.5 + parent: 2 + - uid: 2005 + components: + - type: Transform + pos: -20.5,-38.5 + parent: 2 + - uid: 2006 + components: + - type: Transform + pos: -20.5,-37.5 + parent: 2 + - uid: 2007 + components: + - type: Transform + pos: -20.5,-36.5 + parent: 2 + - uid: 2008 + components: + - type: Transform + pos: -20.5,-35.5 + parent: 2 + - uid: 2009 + components: + - type: Transform + pos: -21.5,-28.5 + parent: 2 + - uid: 2010 + components: + - type: Transform + pos: -21.5,-29.5 + parent: 2 + - uid: 2011 + components: + - type: Transform + pos: -21.5,-30.5 + parent: 2 + - uid: 2012 + components: + - type: Transform + pos: -21.5,-31.5 + parent: 2 + - uid: 2013 + components: + - type: Transform + pos: -21.5,-32.5 + parent: 2 + - uid: 2014 + components: + - type: Transform + pos: -19.5,-32.5 + parent: 2 + - uid: 2015 + components: + - type: Transform + pos: -18.5,-32.5 + parent: 2 + - uid: 2016 + components: + - type: Transform + pos: -17.5,-32.5 + parent: 2 + - uid: 2017 + components: + - type: Transform + pos: -16.5,-32.5 + parent: 2 + - uid: 2018 + components: + - type: Transform + pos: -20.5,-45.5 + parent: 2 + - uid: 2019 + components: + - type: Transform + pos: -20.5,-46.5 + parent: 2 + - uid: 2020 + components: + - type: Transform + pos: -20.5,-47.5 + parent: 2 + - uid: 2021 + components: + - type: Transform + pos: -20.5,-48.5 + parent: 2 + - uid: 2022 + components: + - type: Transform + pos: -20.5,-49.5 + parent: 2 + - uid: 2023 + components: + - type: Transform + pos: -20.5,-50.5 + parent: 2 + - uid: 2024 + components: + - type: Transform + pos: -20.5,-51.5 + parent: 2 + - uid: 2025 + components: + - type: Transform + pos: -21.5,-50.5 + parent: 2 + - uid: 2026 + components: + - type: Transform + pos: -22.5,-50.5 + parent: 2 + - uid: 2027 + components: + - type: Transform + pos: -23.5,-50.5 + parent: 2 + - uid: 2028 + components: + - type: Transform + pos: -24.5,-50.5 + parent: 2 + - uid: 2029 + components: + - type: Transform + pos: -25.5,-50.5 + parent: 2 + - uid: 2030 + components: + - type: Transform + pos: -26.5,-50.5 + parent: 2 + - uid: 2031 + components: + - type: Transform + pos: -27.5,-50.5 + parent: 2 + - uid: 2032 + components: + - type: Transform + pos: -28.5,-50.5 + parent: 2 + - uid: 2033 + components: + - type: Transform + pos: -28.5,-51.5 + parent: 2 + - uid: 2034 + components: + - type: Transform + pos: -23.5,-5.5 + parent: 2 + - uid: 2035 + components: + - type: Transform + pos: -24.5,-5.5 + parent: 2 + - uid: 2036 + components: + - type: Transform + pos: -25.5,-5.5 + parent: 2 + - uid: 2037 + components: + - type: Transform + pos: -26.5,-5.5 + parent: 2 + - uid: 2038 + components: + - type: Transform + pos: -27.5,-5.5 + parent: 2 + - uid: 2039 + components: + - type: Transform + pos: -28.5,-5.5 + parent: 2 + - uid: 2040 + components: + - type: Transform + pos: -29.5,-5.5 + parent: 2 + - uid: 2041 + components: + - type: Transform + pos: -27.5,-4.5 + parent: 2 + - uid: 2042 + components: + - type: Transform + pos: -27.5,-3.5 + parent: 2 + - uid: 2043 + components: + - type: Transform + pos: -29.5,-4.5 + parent: 2 + - uid: 2044 + components: + - type: Transform + pos: -29.5,-3.5 + parent: 2 + - uid: 2045 + components: + - type: Transform + pos: -29.5,-2.5 + parent: 2 + - uid: 2046 + components: + - type: Transform + pos: -27.5,-6.5 + parent: 2 + - uid: 2047 + components: + - type: Transform + pos: -23.5,-4.5 + parent: 2 + - uid: 2048 + components: + - type: Transform + pos: -23.5,-3.5 + parent: 2 + - uid: 2049 + components: + - type: Transform + pos: -25.5,-4.5 + parent: 2 + - uid: 2050 + components: + - type: Transform + pos: -25.5,-3.5 + parent: 2 + - uid: 2051 + components: + - type: Transform + pos: -28.5,-52.5 + parent: 2 + - uid: 2052 + components: + - type: Transform + pos: -28.5,-53.5 + parent: 2 + - uid: 2053 + components: + - type: Transform + pos: -28.5,-54.5 + parent: 2 + - uid: 2054 + components: + - type: Transform + pos: -28.5,-55.5 + parent: 2 + - uid: 2055 + components: + - type: Transform + pos: -29.5,-55.5 + parent: 2 + - uid: 2056 + components: + - type: Transform + pos: -30.5,-55.5 + parent: 2 + - uid: 2057 + components: + - type: Transform + pos: -31.5,-55.5 + parent: 2 + - uid: 2058 + components: + - type: Transform + pos: -32.5,-55.5 + parent: 2 + - uid: 2059 + components: + - type: Transform + pos: -33.5,-55.5 + parent: 2 + - uid: 2060 + components: + - type: Transform + pos: -34.5,-55.5 + parent: 2 + - uid: 2061 + components: + - type: Transform + pos: -35.5,-55.5 + parent: 2 + - uid: 2062 + components: + - type: Transform + pos: -35.5,-54.5 + parent: 2 + - uid: 2063 + components: + - type: Transform + pos: -36.5,-54.5 + parent: 2 + - uid: 2064 + components: + - type: Transform + pos: -37.5,-54.5 + parent: 2 + - uid: 2065 + components: + - type: Transform + pos: -38.5,-54.5 + parent: 2 + - uid: 2066 + components: + - type: Transform + pos: -15.5,-18.5 + parent: 2 + - uid: 2067 + components: + - type: Transform + pos: -15.5,-19.5 + parent: 2 + - uid: 2068 + components: + - type: Transform + pos: -15.5,-20.5 + parent: 2 + - uid: 2069 + components: + - type: Transform + pos: -16.5,-20.5 + parent: 2 + - uid: 2070 + components: + - type: Transform + pos: -16.5,-21.5 + parent: 2 + - uid: 2071 + components: + - type: Transform + pos: -16.5,-22.5 + parent: 2 + - uid: 2072 + components: + - type: Transform + pos: -16.5,-23.5 + parent: 2 + - uid: 2073 + components: + - type: Transform + pos: -15.5,-23.5 + parent: 2 + - uid: 2074 + components: + - type: Transform + pos: -21.5,-60.5 + parent: 2 + - uid: 2075 + components: + - type: Transform + pos: -20.5,-60.5 + parent: 2 + - uid: 2076 + components: + - type: Transform + pos: -19.5,-60.5 + parent: 2 + - uid: 2077 + components: + - type: Transform + pos: -18.5,-60.5 + parent: 2 + - uid: 2078 + components: + - type: Transform + pos: -18.5,-61.5 + parent: 2 + - uid: 2079 + components: + - type: Transform + pos: -18.5,-62.5 + parent: 2 + - uid: 2080 + components: + - type: Transform + pos: -18.5,-59.5 + parent: 2 + - uid: 2081 + components: + - type: Transform + pos: -18.5,-58.5 + parent: 2 + - uid: 2082 + components: + - type: Transform + pos: -18.5,-57.5 + parent: 2 + - uid: 2083 + components: + - type: Transform + pos: -18.5,-56.5 + parent: 2 + - uid: 2084 + components: + - type: Transform + pos: -17.5,-58.5 + parent: 2 + - uid: 2085 + components: + - type: Transform + pos: -16.5,-58.5 + parent: 2 + - uid: 2086 + components: + - type: Transform + pos: -15.5,-58.5 + parent: 2 + - uid: 2087 + components: + - type: Transform + pos: -14.5,-58.5 + parent: 2 + - uid: 2088 + components: + - type: Transform + pos: -13.5,-58.5 + parent: 2 + - uid: 2089 + components: + - type: Transform + pos: -12.5,-58.5 + parent: 2 + - uid: 2090 + components: + - type: Transform + pos: -11.5,-58.5 + parent: 2 + - uid: 2091 + components: + - type: Transform + pos: -10.5,-58.5 + parent: 2 + - uid: 2092 + components: + - type: Transform + pos: -14.5,-57.5 + parent: 2 + - uid: 2093 + components: + - type: Transform + pos: -14.5,-56.5 + parent: 2 + - uid: 2094 + components: + - type: Transform + pos: -10.5,-57.5 + parent: 2 + - uid: 2095 + components: + - type: Transform + pos: -10.5,-56.5 + parent: 2 + - uid: 2096 + components: + - type: Transform + pos: -13.5,-59.5 + parent: 2 + - uid: 2097 + components: + - type: Transform + pos: -13.5,-60.5 + parent: 2 + - uid: 2098 + components: + - type: Transform + pos: -9.5,-58.5 + parent: 2 + - uid: 2099 + components: + - type: Transform + pos: -8.5,-58.5 + parent: 2 + - uid: 2100 + components: + - type: Transform + pos: -7.5,-58.5 + parent: 2 + - uid: 2101 + components: + - type: Transform + pos: -6.5,-58.5 + parent: 2 + - uid: 2102 + components: + - type: Transform + pos: -5.5,-58.5 + parent: 2 + - uid: 2103 + components: + - type: Transform + pos: -4.5,-58.5 + parent: 2 + - uid: 2104 + components: + - type: Transform + pos: -3.5,-58.5 + parent: 2 + - uid: 2105 + components: + - type: Transform + pos: -2.5,-58.5 + parent: 2 + - uid: 2106 + components: + - type: Transform + pos: -1.5,-58.5 + parent: 2 + - uid: 2107 + components: + - type: Transform + pos: -0.5,-58.5 + parent: 2 + - uid: 2108 + components: + - type: Transform + pos: -6.5,-57.5 + parent: 2 + - uid: 2109 + components: + - type: Transform + pos: -6.5,-56.5 + parent: 2 + - uid: 2110 + components: + - type: Transform + pos: -1.5,-57.5 + parent: 2 + - uid: 2111 + components: + - type: Transform + pos: -1.5,-56.5 + parent: 2 + - uid: 2112 + components: + - type: Transform + pos: -1.5,-59.5 + parent: 2 + - uid: 2113 + components: + - type: Transform + pos: -6.5,-59.5 + parent: 2 + - uid: 2114 + components: + - type: Transform + pos: -10.5,-59.5 + parent: 2 + - uid: 2115 + components: + - type: Transform + pos: -10.5,-60.5 + parent: 2 + - uid: 2116 + components: + - type: Transform + pos: -10.5,-61.5 + parent: 2 + - uid: 2117 + components: + - type: Transform + pos: -15.5,-56.5 + parent: 2 + - uid: 2118 + components: + - type: Transform + pos: -15.5,-54.5 + parent: 2 + - uid: 2119 + components: + - type: Transform + pos: -15.5,-53.5 + parent: 2 + - uid: 2120 + components: + - type: Transform + pos: -15.5,-52.5 + parent: 2 + - uid: 2121 + components: + - type: Transform + pos: -15.5,-51.5 + parent: 2 + - uid: 2122 + components: + - type: Transform + pos: -16.5,-51.5 + parent: 2 + - uid: 2123 + components: + - type: Transform + pos: -17.5,-51.5 + parent: 2 + - uid: 2124 + components: + - type: Transform + pos: -3.5,-51.5 + parent: 2 + - uid: 2125 + components: + - type: Transform + pos: -9.5,-51.5 + parent: 2 + - uid: 2126 + components: + - type: Transform + pos: -12.5,-51.5 + parent: 2 + - uid: 2127 + components: + - type: Transform + pos: -4.5,-44.5 + parent: 2 + - uid: 2128 + components: + - type: Transform + pos: -9.5,-52.5 + parent: 2 + - uid: 2129 + components: + - type: Transform + pos: -8.5,-52.5 + parent: 2 + - uid: 2130 + components: + - type: Transform + pos: -7.5,-52.5 + parent: 2 + - uid: 2131 + components: + - type: Transform + pos: 7.5,-52.5 + parent: 2 + - uid: 2132 + components: + - type: Transform + pos: 7.5,-53.5 + parent: 2 + - uid: 2133 + components: + - type: Transform + pos: 7.5,-54.5 + parent: 2 + - uid: 2134 + components: + - type: Transform + pos: 7.5,-55.5 + parent: 2 + - uid: 2135 + components: + - type: Transform + pos: 6.5,-55.5 + parent: 2 + - uid: 2136 + components: + - type: Transform + pos: 5.5,-55.5 + parent: 2 + - uid: 2137 + components: + - type: Transform + pos: 4.5,-55.5 + parent: 2 + - uid: 2138 + components: + - type: Transform + pos: 3.5,-55.5 + parent: 2 + - uid: 2139 + components: + - type: Transform + pos: 3.5,-54.5 + parent: 2 + - uid: 2140 + components: + - type: Transform + pos: 3.5,-53.5 + parent: 2 + - uid: 2141 + components: + - type: Transform + pos: 3.5,-56.5 + parent: 2 + - uid: 2142 + components: + - type: Transform + pos: 3.5,-57.5 + parent: 2 + - uid: 2143 + components: + - type: Transform + pos: 3.5,-58.5 + parent: 2 + - uid: 2144 + components: + - type: Transform + pos: 3.5,-59.5 + parent: 2 + - uid: 2145 + components: + - type: Transform + pos: 3.5,-60.5 + parent: 2 + - uid: 2146 + components: + - type: Transform + pos: 7.5,-56.5 + parent: 2 + - uid: 2147 + components: + - type: Transform + pos: 7.5,-57.5 + parent: 2 + - uid: 2148 + components: + - type: Transform + pos: 7.5,-58.5 + parent: 2 + - uid: 2149 + components: + - type: Transform + pos: 7.5,-59.5 + parent: 2 + - uid: 2150 + components: + - type: Transform + pos: 6.5,-50.5 + parent: 2 + - uid: 2151 + components: + - type: Transform + pos: 5.5,-50.5 + parent: 2 + - uid: 2152 + components: + - type: Transform + pos: 4.5,-50.5 + parent: 2 + - uid: 2153 + components: + - type: Transform + pos: 3.5,-50.5 + parent: 2 + - uid: 2154 + components: + - type: Transform + pos: 3.5,-49.5 + parent: 2 + - uid: 2155 + components: + - type: Transform + pos: 7.5,-51.5 + parent: 2 + - uid: 2156 + components: + - type: Transform + pos: 7.5,-49.5 + parent: 2 + - uid: 2157 + components: + - type: Transform + pos: 7.5,-48.5 + parent: 2 + - uid: 2158 + components: + - type: Transform + pos: 7.5,-47.5 + parent: 2 + - uid: 2159 + components: + - type: Transform + pos: 7.5,-46.5 + parent: 2 + - uid: 2160 + components: + - type: Transform + pos: 7.5,-50.5 + parent: 2 + - uid: 2161 + components: + - type: Transform + pos: 6.5,-46.5 + parent: 2 + - uid: 2162 + components: + - type: Transform + pos: 5.5,-46.5 + parent: 2 + - uid: 2163 + components: + - type: Transform + pos: 4.5,-46.5 + parent: 2 + - uid: 2164 + components: + - type: Transform + pos: 3.5,-46.5 + parent: 2 + - uid: 2165 + components: + - type: Transform + pos: 2.5,-46.5 + parent: 2 + - uid: 2166 + components: + - type: Transform + pos: 1.5,-46.5 + parent: 2 + - uid: 2167 + components: + - type: Transform + pos: 0.5,-46.5 + parent: 2 + - uid: 2168 + components: + - type: Transform + pos: -0.5,-46.5 + parent: 2 + - uid: 2169 + components: + - type: Transform + pos: -1.5,-46.5 + parent: 2 + - uid: 2170 + components: + - type: Transform + pos: -1.5,-47.5 + parent: 2 + - uid: 2171 + components: + - type: Transform + pos: 0.5,-45.5 + parent: 2 + - uid: 2172 + components: + - type: Transform + pos: 5.5,-45.5 + parent: 2 + - uid: 2173 + components: + - type: Transform + pos: 5.5,-44.5 + parent: 2 + - uid: 2174 + components: + - type: Transform + pos: 5.5,-43.5 + parent: 2 + - uid: 2175 + components: + - type: Transform + pos: 5.5,-42.5 + parent: 2 + - uid: 2176 + components: + - type: Transform + pos: 5.5,-41.5 + parent: 2 + - uid: 2177 + components: + - type: Transform + pos: 5.5,-40.5 + parent: 2 + - uid: 2178 + components: + - type: Transform + pos: 6.5,-41.5 + parent: 2 + - uid: 2179 + components: + - type: Transform + pos: 7.5,-41.5 + parent: 2 + - uid: 2180 + components: + - type: Transform + pos: 7.5,-40.5 + parent: 2 + - uid: 2181 + components: + - type: Transform + pos: 9.5,-50.5 + parent: 2 + - uid: 2182 + components: + - type: Transform + pos: 10.5,-50.5 + parent: 2 + - uid: 2183 + components: + - type: Transform + pos: 11.5,-50.5 + parent: 2 + - uid: 2184 + components: + - type: Transform + pos: 12.5,-50.5 + parent: 2 + - uid: 2185 + components: + - type: Transform + pos: 12.5,-51.5 + parent: 2 + - uid: 2186 + components: + - type: Transform + pos: 12.5,-52.5 + parent: 2 + - uid: 2187 + components: + - type: Transform + pos: 12.5,-53.5 + parent: 2 + - uid: 2188 + components: + - type: Transform + pos: 12.5,-54.5 + parent: 2 + - uid: 2189 + components: + - type: Transform + pos: 9.5,-35.5 + parent: 2 + - uid: 2190 + components: + - type: Transform + pos: 10.5,-35.5 + parent: 2 + - uid: 2191 + components: + - type: Transform + pos: 10.5,-34.5 + parent: 2 + - uid: 2192 + components: + - type: Transform + pos: 11.5,-34.5 + parent: 2 + - uid: 2193 + components: + - type: Transform + pos: 12.5,-34.5 + parent: 2 + - uid: 2194 + components: + - type: Transform + pos: 15.5,-34.5 + parent: 2 + - uid: 2195 + components: + - type: Transform + pos: 16.5,-34.5 + parent: 2 + - uid: 2196 + components: + - type: Transform + pos: 17.5,-34.5 + parent: 2 + - uid: 2197 + components: + - type: Transform + pos: -4.5,-51.5 + parent: 2 + - uid: 2198 + components: + - type: Transform + pos: 34.5,-44.5 + parent: 2 + - uid: 2199 + components: + - type: Transform + pos: 35.5,-44.5 + parent: 2 + - uid: 2200 + components: + - type: Transform + pos: 36.5,-44.5 + parent: 2 + - uid: 2201 + components: + - type: Transform + pos: 36.5,-45.5 + parent: 2 + - uid: 2202 + components: + - type: Transform + pos: 36.5,-43.5 + parent: 2 + - uid: 2203 + components: + - type: Transform + pos: 36.5,-42.5 + parent: 2 + - uid: 2204 + components: + - type: Transform + pos: 37.5,-43.5 + parent: 2 + - uid: 2205 + components: + - type: Transform + pos: 38.5,-43.5 + parent: 2 + - uid: 2206 + components: + - type: Transform + pos: 39.5,-43.5 + parent: 2 + - uid: 2207 + components: + - type: Transform + pos: 40.5,-43.5 + parent: 2 + - uid: 2208 + components: + - type: Transform + pos: 36.5,-46.5 + parent: 2 + - uid: 2209 + components: + - type: Transform + pos: 37.5,-46.5 + parent: 2 + - uid: 2210 + components: + - type: Transform + pos: 38.5,-46.5 + parent: 2 + - uid: 2211 + components: + - type: Transform + pos: 39.5,-46.5 + parent: 2 + - uid: 2212 + components: + - type: Transform + pos: 31.5,-44.5 + parent: 2 + - uid: 2213 + components: + - type: Transform + pos: 30.5,-44.5 + parent: 2 + - uid: 2214 + components: + - type: Transform + pos: 29.5,-44.5 + parent: 2 + - uid: 2215 + components: + - type: Transform + pos: 28.5,-44.5 + parent: 2 + - uid: 2216 + components: + - type: Transform + pos: 27.5,-44.5 + parent: 2 + - uid: 2217 + components: + - type: Transform + pos: 26.5,-44.5 + parent: 2 + - uid: 2218 + components: + - type: Transform + pos: 25.5,-44.5 + parent: 2 + - uid: 2219 + components: + - type: Transform + pos: 24.5,-44.5 + parent: 2 + - uid: 2220 + components: + - type: Transform + pos: 23.5,-44.5 + parent: 2 + - uid: 2221 + components: + - type: Transform + pos: 22.5,-44.5 + parent: 2 + - uid: 2222 + components: + - type: Transform + pos: 21.5,-44.5 + parent: 2 + - uid: 2223 + components: + - type: Transform + pos: 20.5,-44.5 + parent: 2 + - uid: 2224 + components: + - type: Transform + pos: 19.5,-44.5 + parent: 2 + - uid: 2225 + components: + - type: Transform + pos: 18.5,-44.5 + parent: 2 + - uid: 2226 + components: + - type: Transform + pos: 17.5,-44.5 + parent: 2 + - uid: 2227 + components: + - type: Transform + pos: 16.5,-44.5 + parent: 2 + - uid: 2228 + components: + - type: Transform + pos: 32.5,-47.5 + parent: 2 + - uid: 2229 + components: + - type: Transform + pos: 32.5,-48.5 + parent: 2 + - uid: 2230 + components: + - type: Transform + pos: 31.5,-48.5 + parent: 2 + - uid: 2231 + components: + - type: Transform + pos: 30.5,-48.5 + parent: 2 + - uid: 2232 + components: + - type: Transform + pos: 29.5,-48.5 + parent: 2 + - uid: 2233 + components: + - type: Transform + pos: 28.5,-48.5 + parent: 2 + - uid: 2234 + components: + - type: Transform + pos: 27.5,-48.5 + parent: 2 + - uid: 2235 + components: + - type: Transform + pos: 26.5,-48.5 + parent: 2 + - uid: 2236 + components: + - type: Transform + pos: 25.5,-48.5 + parent: 2 + - uid: 2237 + components: + - type: Transform + pos: 24.5,-48.5 + parent: 2 + - uid: 2238 + components: + - type: Transform + pos: 23.5,-48.5 + parent: 2 + - uid: 2239 + components: + - type: Transform + pos: 22.5,-48.5 + parent: 2 + - uid: 2240 + components: + - type: Transform + pos: 21.5,-48.5 + parent: 2 + - uid: 2241 + components: + - type: Transform + pos: 20.5,-48.5 + parent: 2 + - uid: 2242 + components: + - type: Transform + pos: 19.5,-48.5 + parent: 2 + - uid: 2243 + components: + - type: Transform + pos: 18.5,-48.5 + parent: 2 + - uid: 2244 + components: + - type: Transform + pos: 17.5,-48.5 + parent: 2 + - uid: 2245 + components: + - type: Transform + pos: 16.5,-48.5 + parent: 2 + - uid: 2246 + components: + - type: Transform + pos: 17.5,-49.5 + parent: 2 + - uid: 2247 + components: + - type: Transform + pos: 17.5,-49.5 + parent: 2 + - uid: 2248 + components: + - type: Transform + pos: 16.5,-47.5 + parent: 2 + - uid: 2249 + components: + - type: Transform + pos: 15.5,-47.5 + parent: 2 + - uid: 2250 + components: + - type: Transform + pos: 14.5,-47.5 + parent: 2 + - uid: 2251 + components: + - type: Transform + pos: 13.5,-47.5 + parent: 2 + - uid: 2252 + components: + - type: Transform + pos: 12.5,-47.5 + parent: 2 + - uid: 2253 + components: + - type: Transform + pos: 12.5,-46.5 + parent: 2 + - uid: 2254 + components: + - type: Transform + pos: 12.5,-45.5 + parent: 2 + - uid: 2255 + components: + - type: Transform + pos: 12.5,-44.5 + parent: 2 + - uid: 2256 + components: + - type: Transform + pos: 12.5,-43.5 + parent: 2 + - uid: 2257 + components: + - type: Transform + pos: 12.5,-42.5 + parent: 2 + - uid: 2258 + components: + - type: Transform + pos: 12.5,-41.5 + parent: 2 + - uid: 2259 + components: + - type: Transform + pos: 13.5,-41.5 + parent: 2 + - uid: 2260 + components: + - type: Transform + pos: 14.5,-41.5 + parent: 2 + - uid: 2261 + components: + - type: Transform + pos: 15.5,-41.5 + parent: 2 + - uid: 2262 + components: + - type: Transform + pos: 16.5,-41.5 + parent: 2 + - uid: 2263 + components: + - type: Transform + pos: 17.5,-41.5 + parent: 2 + - uid: 2264 + components: + - type: Transform + pos: 18.5,-41.5 + parent: 2 + - uid: 2265 + components: + - type: Transform + pos: 19.5,-41.5 + parent: 2 + - uid: 2266 + components: + - type: Transform + pos: 20.5,-41.5 + parent: 2 + - uid: 2267 + components: + - type: Transform + pos: 21.5,-41.5 + parent: 2 + - uid: 2268 + components: + - type: Transform + pos: 22.5,-41.5 + parent: 2 + - uid: 2269 + components: + - type: Transform + pos: 23.5,-41.5 + parent: 2 + - uid: 2270 + components: + - type: Transform + pos: 24.5,-41.5 + parent: 2 + - uid: 2271 + components: + - type: Transform + pos: 25.5,-41.5 + parent: 2 + - uid: 2272 + components: + - type: Transform + pos: 26.5,-41.5 + parent: 2 + - uid: 2273 + components: + - type: Transform + pos: 27.5,-41.5 + parent: 2 + - uid: 2274 + components: + - type: Transform + pos: 28.5,-41.5 + parent: 2 + - uid: 2275 + components: + - type: Transform + pos: 29.5,-41.5 + parent: 2 + - uid: 2276 + components: + - type: Transform + pos: 30.5,-41.5 + parent: 2 + - uid: 2277 + components: + - type: Transform + pos: 16.5,-40.5 + parent: 2 + - uid: 2278 + components: + - type: Transform + pos: 24.5,-52.5 + parent: 2 + - uid: 2279 + components: + - type: Transform + pos: 24.5,-53.5 + parent: 2 + - uid: 2280 + components: + - type: Transform + pos: 24.5,-54.5 + parent: 2 + - uid: 2281 + components: + - type: Transform + pos: 24.5,-55.5 + parent: 2 + - uid: 2282 + components: + - type: Transform + pos: 24.5,-56.5 + parent: 2 + - uid: 2283 + components: + - type: Transform + pos: 24.5,-57.5 + parent: 2 + - uid: 2284 + components: + - type: Transform + pos: 24.5,-58.5 + parent: 2 + - uid: 2285 + components: + - type: Transform + pos: 24.5,-59.5 + parent: 2 + - uid: 2286 + components: + - type: Transform + pos: 24.5,-60.5 + parent: 2 + - uid: 2287 + components: + - type: Transform + pos: 24.5,-61.5 + parent: 2 + - uid: 2288 + components: + - type: Transform + pos: 24.5,-62.5 + parent: 2 + - uid: 2289 + components: + - type: Transform + pos: 30.5,-51.5 + parent: 2 + - uid: 2290 + components: + - type: Transform + pos: 30.5,-52.5 + parent: 2 + - uid: 2291 + components: + - type: Transform + pos: 30.5,-53.5 + parent: 2 + - uid: 2292 + components: + - type: Transform + pos: 30.5,-54.5 + parent: 2 + - uid: 2293 + components: + - type: Transform + pos: 30.5,-55.5 + parent: 2 + - uid: 2294 + components: + - type: Transform + pos: 30.5,-56.5 + parent: 2 + - uid: 2295 + components: + - type: Transform + pos: 30.5,-57.5 + parent: 2 + - uid: 2296 + components: + - type: Transform + pos: 30.5,-58.5 + parent: 2 + - uid: 2297 + components: + - type: Transform + pos: 30.5,-59.5 + parent: 2 + - uid: 2298 + components: + - type: Transform + pos: 30.5,-60.5 + parent: 2 + - uid: 2299 + components: + - type: Transform + pos: 30.5,-61.5 + parent: 2 + - uid: 2300 + components: + - type: Transform + pos: 30.5,-62.5 + parent: 2 + - uid: 2301 + components: + - type: Transform + pos: 27.5,-49.5 + parent: 2 + - uid: 2302 + components: + - type: Transform + pos: 27.5,-50.5 + parent: 2 + - uid: 2303 + components: + - type: Transform + pos: 27.5,-51.5 + parent: 2 + - uid: 2304 + components: + - type: Transform + pos: 27.5,-52.5 + parent: 2 + - uid: 2305 + components: + - type: Transform + pos: 27.5,-53.5 + parent: 2 + - uid: 2306 + components: + - type: Transform + pos: 27.5,-54.5 + parent: 2 + - uid: 2307 + components: + - type: Transform + pos: 27.5,-55.5 + parent: 2 + - uid: 2308 + components: + - type: Transform + pos: 27.5,-56.5 + parent: 2 + - uid: 2309 + components: + - type: Transform + pos: 27.5,-57.5 + parent: 2 + - uid: 2310 + components: + - type: Transform + pos: 27.5,-58.5 + parent: 2 + - uid: 2311 + components: + - type: Transform + pos: 27.5,-59.5 + parent: 2 + - uid: 2312 + components: + - type: Transform + pos: 27.5,-60.5 + parent: 2 + - uid: 2313 + components: + - type: Transform + pos: 27.5,-61.5 + parent: 2 + - uid: 2314 + components: + - type: Transform + pos: 27.5,-62.5 + parent: 2 + - uid: 2315 + components: + - type: Transform + pos: 32.5,-49.5 + parent: 2 + - uid: 2316 + components: + - type: Transform + pos: 34.5,-49.5 + parent: 2 + - uid: 2317 + components: + - type: Transform + pos: 35.5,-49.5 + parent: 2 + - uid: 2318 + components: + - type: Transform + pos: 36.5,-49.5 + parent: 2 + - uid: 2319 + components: + - type: Transform + pos: 37.5,-49.5 + parent: 2 + - uid: 2320 + components: + - type: Transform + pos: 35.5,-37.5 + parent: 2 + - uid: 2321 + components: + - type: Transform + pos: 34.5,-36.5 + parent: 2 + - uid: 2322 + components: + - type: Transform + pos: 34.5,-35.5 + parent: 2 + - uid: 2323 + components: + - type: Transform + pos: 34.5,-34.5 + parent: 2 + - uid: 2324 + components: + - type: Transform + pos: 34.5,-33.5 + parent: 2 + - uid: 2325 + components: + - type: Transform + pos: 34.5,-32.5 + parent: 2 + - uid: 2326 + components: + - type: Transform + pos: 34.5,-31.5 + parent: 2 + - uid: 2327 + components: + - type: Transform + pos: 35.5,-28.5 + parent: 2 + - uid: 2328 + components: + - type: Transform + pos: -14.5,-51.5 + parent: 2 + - uid: 2329 + components: + - type: Transform + pos: -3.5,-42.5 + parent: 2 + - uid: 2330 + components: + - type: Transform + pos: -0.5,-51.5 + parent: 2 + - uid: 2331 + components: + - type: Transform + pos: -5.5,-48.5 + parent: 2 + - uid: 2332 + components: + - type: Transform + pos: -4.5,-42.5 + parent: 2 + - uid: 2333 + components: + - type: Transform + pos: -4.5,-46.5 + parent: 2 + - uid: 2334 + components: + - type: Transform + pos: -4.5,-47.5 + parent: 2 + - uid: 2335 + components: + - type: Transform + pos: -4.5,-48.5 + parent: 2 + - uid: 2336 + components: + - type: Transform + pos: -28.5,-56.5 + parent: 2 + - uid: 2337 + components: + - type: Transform + pos: -28.5,-58.5 + parent: 2 + - uid: 2338 + components: + - type: Transform + pos: -29.5,-58.5 + parent: 2 + - uid: 2339 + components: + - type: Transform + pos: -30.5,-58.5 + parent: 2 + - uid: 2340 + components: + - type: Transform + pos: -31.5,-58.5 + parent: 2 + - uid: 2341 + components: + - type: Transform + pos: -31.5,-59.5 + parent: 2 + - uid: 2342 + components: + - type: Transform + pos: -31.5,-60.5 + parent: 2 + - uid: 2343 + components: + - type: Transform + pos: -31.5,-61.5 + parent: 2 + - uid: 2344 + components: + - type: Transform + pos: -31.5,-62.5 + parent: 2 + - uid: 2345 + components: + - type: Transform + pos: -31.5,-63.5 + parent: 2 + - uid: 2346 + components: + - type: Transform + pos: -30.5,-63.5 + parent: 2 + - uid: 2347 + components: + - type: Transform + pos: -29.5,-63.5 + parent: 2 + - uid: 2348 + components: + - type: Transform + pos: -28.5,-63.5 + parent: 2 + - uid: 2349 + components: + - type: Transform + pos: -27.5,-63.5 + parent: 2 + - uid: 2350 + components: + - type: Transform + pos: -26.5,-63.5 + parent: 2 + - uid: 2351 + components: + - type: Transform + pos: -25.5,-63.5 + parent: 2 + - uid: 2352 + components: + - type: Transform + pos: -24.5,-63.5 + parent: 2 + - uid: 2353 + components: + - type: Transform + pos: -32.5,-63.5 + parent: 2 + - uid: 2354 + components: + - type: Transform + pos: -33.5,-63.5 + parent: 2 + - uid: 2355 + components: + - type: Transform + pos: -34.5,-63.5 + parent: 2 + - uid: 2356 + components: + - type: Transform + pos: -35.5,-63.5 + parent: 2 + - uid: 2357 + components: + - type: Transform + pos: -32.5,-59.5 + parent: 2 + - uid: 2358 + components: + - type: Transform + pos: -33.5,-59.5 + parent: 2 + - uid: 2359 + components: + - type: Transform + pos: -34.5,-59.5 + parent: 2 + - uid: 2360 + components: + - type: Transform + pos: -35.5,-59.5 + parent: 2 + - uid: 2361 + components: + - type: Transform + pos: -25.5,-64.5 + parent: 2 + - uid: 2362 + components: + - type: Transform + pos: -25.5,-65.5 + parent: 2 + - uid: 2363 + components: + - type: Transform + pos: -25.5,-66.5 + parent: 2 + - uid: 2364 + components: + - type: Transform + pos: -26.5,-66.5 + parent: 2 + - uid: 2365 + components: + - type: Transform + pos: -23.5,-63.5 + parent: 2 + - uid: 2366 + components: + - type: Transform + pos: -23.5,-64.5 + parent: 2 + - uid: 2367 + components: + - type: Transform + pos: -23.5,-65.5 + parent: 2 + - uid: 2368 + components: + - type: Transform + pos: -23.5,-66.5 + parent: 2 + - uid: 2369 + components: + - type: Transform + pos: -23.5,-67.5 + parent: 2 + - uid: 2370 + components: + - type: Transform + pos: -23.5,-62.5 + parent: 2 + - uid: 2371 + components: + - type: Transform + pos: -23.5,-61.5 + parent: 2 + - uid: 2372 + components: + - type: Transform + pos: -23.5,-60.5 + parent: 2 + - uid: 2373 + components: + - type: Transform + pos: -23.5,-59.5 + parent: 2 + - uid: 2374 + components: + - type: Transform + pos: -24.5,-59.5 + parent: 2 + - uid: 2375 + components: + - type: Transform + pos: -25.5,-59.5 + parent: 2 + - uid: 2376 + components: + - type: Transform + pos: -26.5,-59.5 + parent: 2 + - uid: 2377 + components: + - type: Transform + pos: 24.5,-67.5 + parent: 2 + - uid: 2378 + components: + - type: Transform + pos: 24.5,-66.5 + parent: 2 + - uid: 2379 + components: + - type: Transform + pos: 26.5,-66.5 + parent: 2 + - uid: 2380 + components: + - type: Transform + pos: 27.5,-66.5 + parent: 2 + - uid: 2381 + components: + - type: Transform + pos: 24.5,-69.5 + parent: 2 + - uid: 2382 + components: + - type: Transform + pos: 24.5,-70.5 + parent: 2 + - uid: 2383 + components: + - type: Transform + pos: 24.5,-71.5 + parent: 2 + - uid: 2384 + components: + - type: Transform + pos: 24.5,-72.5 + parent: 2 + - uid: 2385 + components: + - type: Transform + pos: 25.5,-72.5 + parent: 2 + - uid: 2386 + components: + - type: Transform + pos: 21.5,-68.5 + parent: 2 + - uid: 2387 + components: + - type: Transform + pos: 20.5,-68.5 + parent: 2 + - uid: 2388 + components: + - type: Transform + pos: 20.5,-67.5 + parent: 2 + - uid: 2389 + components: + - type: Transform + pos: 20.5,-66.5 + parent: 2 + - uid: 2390 + components: + - type: Transform + pos: 20.5,-65.5 + parent: 2 + - uid: 2391 + components: + - type: Transform + pos: 20.5,-64.5 + parent: 2 + - uid: 2392 + components: + - type: Transform + pos: 20.5,-63.5 + parent: 2 + - uid: 2393 + components: + - type: Transform + pos: 20.5,-62.5 + parent: 2 + - uid: 2394 + components: + - type: Transform + pos: 20.5,-61.5 + parent: 2 + - uid: 2395 + components: + - type: Transform + pos: 20.5,-60.5 + parent: 2 + - uid: 2396 + components: + - type: Transform + pos: 20.5,-59.5 + parent: 2 + - uid: 2397 + components: + - type: Transform + pos: 20.5,-58.5 + parent: 2 + - uid: 2398 + components: + - type: Transform + pos: 20.5,-57.5 + parent: 2 + - uid: 2399 + components: + - type: Transform + pos: 20.5,-56.5 + parent: 2 + - uid: 2400 + components: + - type: Transform + pos: 20.5,-55.5 + parent: 2 + - uid: 2401 + components: + - type: Transform + pos: 20.5,-54.5 + parent: 2 + - uid: 2402 + components: + - type: Transform + pos: 19.5,-54.5 + parent: 2 + - uid: 2403 + components: + - type: Transform + pos: 18.5,-54.5 + parent: 2 + - uid: 2404 + components: + - type: Transform + pos: 17.5,-54.5 + parent: 2 + - uid: 2405 + components: + - type: Transform + pos: 19.5,-58.5 + parent: 2 + - uid: 2406 + components: + - type: Transform + pos: 18.5,-58.5 + parent: 2 + - uid: 2407 + components: + - type: Transform + pos: 17.5,-58.5 + parent: 2 + - uid: 2408 + components: + - type: Transform + pos: 19.5,-62.5 + parent: 2 + - uid: 2409 + components: + - type: Transform + pos: 18.5,-62.5 + parent: 2 + - uid: 2410 + components: + - type: Transform + pos: 17.5,-62.5 + parent: 2 + - uid: 2411 + components: + - type: Transform + pos: 28.5,-66.5 + parent: 2 + - uid: 2412 + components: + - type: Transform + pos: 29.5,-66.5 + parent: 2 + - uid: 2413 + components: + - type: Transform + pos: 30.5,-66.5 + parent: 2 + - uid: 2414 + components: + - type: Transform + pos: 31.5,-66.5 + parent: 2 + - uid: 2415 + components: + - type: Transform + pos: 32.5,-66.5 + parent: 2 + - uid: 2416 + components: + - type: Transform + pos: 33.5,-66.5 + parent: 2 + - uid: 2417 + components: + - type: Transform + pos: 34.5,-66.5 + parent: 2 + - uid: 2418 + components: + - type: Transform + pos: 34.5,-65.5 + parent: 2 + - uid: 2419 + components: + - type: Transform + pos: 34.5,-64.5 + parent: 2 + - uid: 2420 + components: + - type: Transform + pos: 34.5,-63.5 + parent: 2 + - uid: 2421 + components: + - type: Transform + pos: 34.5,-62.5 + parent: 2 + - uid: 2422 + components: + - type: Transform + pos: 35.5,-62.5 + parent: 2 + - uid: 2423 + components: + - type: Transform + pos: 36.5,-62.5 + parent: 2 + - uid: 2424 + components: + - type: Transform + pos: 37.5,-62.5 + parent: 2 + - uid: 2425 + components: + - type: Transform + pos: 34.5,-61.5 + parent: 2 + - uid: 2426 + components: + - type: Transform + pos: 34.5,-60.5 + parent: 2 + - uid: 2427 + components: + - type: Transform + pos: 34.5,-59.5 + parent: 2 + - uid: 2428 + components: + - type: Transform + pos: 34.5,-58.5 + parent: 2 + - uid: 2429 + components: + - type: Transform + pos: 35.5,-58.5 + parent: 2 + - uid: 2430 + components: + - type: Transform + pos: 36.5,-58.5 + parent: 2 + - uid: 2431 + components: + - type: Transform + pos: 37.5,-58.5 + parent: 2 + - uid: 2432 + components: + - type: Transform + pos: 34.5,-57.5 + parent: 2 + - uid: 2433 + components: + - type: Transform + pos: 34.5,-56.5 + parent: 2 + - uid: 2434 + components: + - type: Transform + pos: 34.5,-55.5 + parent: 2 + - uid: 2435 + components: + - type: Transform + pos: 34.5,-54.5 + parent: 2 + - uid: 2436 + components: + - type: Transform + pos: 35.5,-54.5 + parent: 2 + - uid: 2437 + components: + - type: Transform + pos: 36.5,-54.5 + parent: 2 + - uid: 2438 + components: + - type: Transform + pos: 37.5,-54.5 + parent: 2 + - uid: 2439 + components: + - type: Transform + pos: 37.5,-31.5 + parent: 2 + - uid: 2440 + components: + - type: Transform + pos: 38.5,-31.5 + parent: 2 + - uid: 2441 + components: + - type: Transform + pos: 39.5,-31.5 + parent: 2 + - uid: 2442 + components: + - type: Transform + pos: 40.5,-31.5 + parent: 2 + - uid: 2443 + components: + - type: Transform + pos: 41.5,-31.5 + parent: 2 + - uid: 2444 + components: + - type: Transform + pos: 41.5,-32.5 + parent: 2 + - uid: 2445 + components: + - type: Transform + pos: 41.5,-33.5 + parent: 2 + - uid: 2446 + components: + - type: Transform + pos: 11.5,-10.5 + parent: 2 + - uid: 2447 + components: + - type: Transform + pos: 10.5,-10.5 + parent: 2 + - uid: 2448 + components: + - type: Transform + pos: 9.5,-10.5 + parent: 2 + - uid: 2449 + components: + - type: Transform + pos: 8.5,-10.5 + parent: 2 + - uid: 2450 + components: + - type: Transform + pos: 8.5,-9.5 + parent: 2 + - uid: 2451 + components: + - type: Transform + pos: 11.5,-11.5 + parent: 2 + - uid: 2452 + components: + - type: Transform + pos: 11.5,-12.5 + parent: 2 + - uid: 2453 + components: + - type: Transform + pos: 10.5,-12.5 + parent: 2 + - uid: 2454 + components: + - type: Transform + pos: 9.5,-12.5 + parent: 2 + - uid: 2455 + components: + - type: Transform + pos: 9.5,-13.5 + parent: 2 + - uid: 2456 + components: + - type: Transform + pos: 9.5,-14.5 + parent: 2 + - uid: 2457 + components: + - type: Transform + pos: 9.5,-15.5 + parent: 2 + - uid: 2458 + components: + - type: Transform + pos: 8.5,-15.5 + parent: 2 + - uid: 2459 + components: + - type: Transform + pos: 7.5,-15.5 + parent: 2 + - uid: 2460 + components: + - type: Transform + pos: 6.5,-15.5 + parent: 2 + - uid: 2461 + components: + - type: Transform + pos: 5.5,-15.5 + parent: 2 + - uid: 2462 + components: + - type: Transform + pos: 5.5,-16.5 + parent: 2 + - uid: 2463 + components: + - type: Transform + pos: 4.5,-16.5 + parent: 2 + - uid: 2464 + components: + - type: Transform + pos: 5.5,-14.5 + parent: 2 + - uid: 2465 + components: + - type: Transform + pos: 5.5,-13.5 + parent: 2 + - uid: 2466 + components: + - type: Transform + pos: 5.5,-12.5 + parent: 2 + - uid: 2467 + components: + - type: Transform + pos: 13.5,-8.5 + parent: 2 + - uid: 2468 + components: + - type: Transform + pos: 13.5,-7.5 + parent: 2 + - uid: 2469 + components: + - type: Transform + pos: 13.5,-6.5 + parent: 2 + - uid: 2470 + components: + - type: Transform + pos: 12.5,-6.5 + parent: 2 + - uid: 2471 + components: + - type: Transform + pos: 14.5,-6.5 + parent: 2 + - uid: 2472 + components: + - type: Transform + pos: 15.5,-6.5 + parent: 2 + - uid: 2473 + components: + - type: Transform + pos: 16.5,-6.5 + parent: 2 + - uid: 2474 + components: + - type: Transform + pos: 16.5,-5.5 + parent: 2 + - uid: 2475 + components: + - type: Transform + pos: 16.5,-4.5 + parent: 2 + - uid: 2476 + components: + - type: Transform + pos: 16.5,-3.5 + parent: 2 + - uid: 2477 + components: + - type: Transform + pos: 15.5,-3.5 + parent: 2 + - uid: 2478 + components: + - type: Transform + pos: 14.5,-3.5 + parent: 2 + - uid: 2479 + components: + - type: Transform + pos: 17.5,-3.5 + parent: 2 + - uid: 2480 + components: + - type: Transform + pos: 18.5,-3.5 + parent: 2 + - uid: 2481 + components: + - type: Transform + pos: 19.5,-3.5 + parent: 2 + - uid: 2482 + components: + - type: Transform + pos: 20.5,-3.5 + parent: 2 + - uid: 2483 + components: + - type: Transform + pos: 21.5,-3.5 + parent: 2 + - uid: 2484 + components: + - type: Transform + pos: 22.5,-3.5 + parent: 2 + - uid: 2485 + components: + - type: Transform + pos: 23.5,-3.5 + parent: 2 + - uid: 2486 + components: + - type: Transform + pos: 22.5,-4.5 + parent: 2 + - uid: 2487 + components: + - type: Transform + pos: 22.5,-5.5 + parent: 2 + - uid: 2488 + components: + - type: Transform + pos: 22.5,-6.5 + parent: 2 + - uid: 2489 + components: + - type: Transform + pos: 22.5,-7.5 + parent: 2 + - uid: 2490 + components: + - type: Transform + pos: 22.5,-8.5 + parent: 2 + - uid: 2491 + components: + - type: Transform + pos: 23.5,-8.5 + parent: 2 + - uid: 2492 + components: + - type: Transform + pos: 23.5,-9.5 + parent: 2 + - uid: 2493 + components: + - type: Transform + pos: 23.5,-10.5 + parent: 2 + - uid: 2494 + components: + - type: Transform + pos: 23.5,-11.5 + parent: 2 + - uid: 2495 + components: + - type: Transform + pos: 23.5,-12.5 + parent: 2 + - uid: 2496 + components: + - type: Transform + pos: 23.5,-13.5 + parent: 2 + - uid: 2497 + components: + - type: Transform + pos: 23.5,-14.5 + parent: 2 + - uid: 2498 + components: + - type: Transform + pos: 24.5,-14.5 + parent: 2 + - uid: 2499 + components: + - type: Transform + pos: 25.5,-14.5 + parent: 2 + - uid: 2500 + components: + - type: Transform + pos: 26.5,-14.5 + parent: 2 + - uid: 2501 + components: + - type: Transform + pos: 26.5,-13.5 + parent: 2 + - uid: 2502 + components: + - type: Transform + pos: 26.5,-12.5 + parent: 2 + - uid: 2503 + components: + - type: Transform + pos: 26.5,-11.5 + parent: 2 + - uid: 2504 + components: + - type: Transform + pos: 27.5,-11.5 + parent: 2 + - uid: 2505 + components: + - type: Transform + pos: 28.5,-11.5 + parent: 2 + - uid: 2506 + components: + - type: Transform + pos: 29.5,-11.5 + parent: 2 + - uid: 2507 + components: + - type: Transform + pos: 24.5,-8.5 + parent: 2 + - uid: 2508 + components: + - type: Transform + pos: 25.5,-8.5 + parent: 2 + - uid: 2509 + components: + - type: Transform + pos: 26.5,-8.5 + parent: 2 + - uid: 2510 + components: + - type: Transform + pos: 27.5,-8.5 + parent: 2 + - uid: 2511 + components: + - type: Transform + pos: 27.5,-7.5 + parent: 2 + - uid: 2512 + components: + - type: Transform + pos: 28.5,-7.5 + parent: 2 + - uid: 2513 + components: + - type: Transform + pos: 0.5,-29.5 + parent: 2 + - uid: 2514 + components: + - type: Transform + pos: 0.5,-30.5 + parent: 2 + - uid: 2515 + components: + - type: Transform + pos: 0.5,-31.5 + parent: 2 + - uid: 2516 + components: + - type: Transform + pos: 0.5,-32.5 + parent: 2 + - uid: 2517 + components: + - type: Transform + pos: 0.5,-33.5 + parent: 2 + - uid: 2518 + components: + - type: Transform + pos: 0.5,-34.5 + parent: 2 + - uid: 2519 + components: + - type: Transform + pos: 0.5,-35.5 + parent: 2 + - uid: 2520 + components: + - type: Transform + pos: 0.5,-36.5 + parent: 2 + - uid: 2521 + components: + - type: Transform + pos: 0.5,-37.5 + parent: 2 + - uid: 2522 + components: + - type: Transform + pos: 0.5,-38.5 + parent: 2 + - uid: 2523 + components: + - type: Transform + pos: 0.5,-39.5 + parent: 2 + - uid: 2524 + components: + - type: Transform + pos: 0.5,-40.5 + parent: 2 + - uid: 2525 + components: + - type: Transform + pos: 0.5,-41.5 + parent: 2 + - uid: 2526 + components: + - type: Transform + pos: 0.5,-27.5 + parent: 2 + - uid: 2527 + components: + - type: Transform + pos: 0.5,-26.5 + parent: 2 + - uid: 2528 + components: + - type: Transform + pos: 0.5,-25.5 + parent: 2 + - uid: 2529 + components: + - type: Transform + pos: 0.5,-24.5 + parent: 2 + - uid: 2530 + components: + - type: Transform + pos: 0.5,-23.5 + parent: 2 + - uid: 2531 + components: + - type: Transform + pos: 0.5,-22.5 + parent: 2 + - uid: 2532 + components: + - type: Transform + pos: 0.5,-21.5 + parent: 2 + - uid: 2533 + components: + - type: Transform + pos: 0.5,-20.5 + parent: 2 + - uid: 2534 + components: + - type: Transform + pos: 0.5,-19.5 + parent: 2 + - uid: 2535 + components: + - type: Transform + pos: 0.5,-18.5 + parent: 2 + - uid: 2536 + components: + - type: Transform + pos: 0.5,-17.5 + parent: 2 + - uid: 2537 + components: + - type: Transform + pos: 0.5,-16.5 + parent: 2 + - uid: 2538 + components: + - type: Transform + pos: 0.5,-15.5 + parent: 2 + - uid: 2539 + components: + - type: Transform + pos: 0.5,-14.5 + parent: 2 + - uid: 2540 + components: + - type: Transform + pos: 25.5,-1.5 + parent: 2 + - uid: 2541 + components: + - type: Transform + pos: 25.5,-0.5 + parent: 2 + - uid: 2542 + components: + - type: Transform + pos: 25.5,0.5 + parent: 2 + - uid: 2543 + components: + - type: Transform + pos: 24.5,0.5 + parent: 2 + - uid: 2544 + components: + - type: Transform + pos: 23.5,0.5 + parent: 2 + - uid: 2545 + components: + - type: Transform + pos: 22.5,0.5 + parent: 2 + - uid: 2546 + components: + - type: Transform + pos: 21.5,0.5 + parent: 2 + - uid: 2547 + components: + - type: Transform + pos: 20.5,0.5 + parent: 2 + - uid: 2548 + components: + - type: Transform + pos: 19.5,0.5 + parent: 2 + - uid: 2549 + components: + - type: Transform + pos: 18.5,0.5 + parent: 2 + - uid: 2550 + components: + - type: Transform + pos: 17.5,0.5 + parent: 2 + - uid: 2551 + components: + - type: Transform + pos: 26.5,0.5 + parent: 2 + - uid: 2552 + components: + - type: Transform + pos: 27.5,0.5 + parent: 2 + - uid: 2553 + components: + - type: Transform + pos: 28.5,0.5 + parent: 2 + - uid: 2554 + components: + - type: Transform + pos: 29.5,0.5 + parent: 2 + - uid: 2555 + components: + - type: Transform + pos: 30.5,0.5 + parent: 2 + - uid: 2556 + components: + - type: Transform + pos: 31.5,0.5 + parent: 2 + - uid: 2557 + components: + - type: Transform + pos: 32.5,0.5 + parent: 2 + - uid: 2558 + components: + - type: Transform + pos: 33.5,0.5 + parent: 2 + - uid: 2559 + components: + - type: Transform + pos: 34.5,0.5 + parent: 2 + - uid: 2560 + components: + - type: Transform + pos: 35.5,0.5 + parent: 2 + - uid: 2561 + components: + - type: Transform + pos: 17.5,5.5 + parent: 2 + - uid: 2562 + components: + - type: Transform + pos: 17.5,6.5 + parent: 2 + - uid: 2563 + components: + - type: Transform + pos: 17.5,7.5 + parent: 2 + - uid: 2564 + components: + - type: Transform + pos: 18.5,7.5 + parent: 2 + - uid: 2565 + components: + - type: Transform + pos: 19.5,7.5 + parent: 2 + - uid: 2566 + components: + - type: Transform + pos: 20.5,7.5 + parent: 2 + - uid: 2567 + components: + - type: Transform + pos: 21.5,7.5 + parent: 2 + - uid: 2568 + components: + - type: Transform + pos: 22.5,7.5 + parent: 2 + - uid: 2569 + components: + - type: Transform + pos: 23.5,7.5 + parent: 2 + - uid: 2570 + components: + - type: Transform + pos: 24.5,7.5 + parent: 2 + - uid: 2571 + components: + - type: Transform + pos: 25.5,7.5 + parent: 2 + - uid: 2572 + components: + - type: Transform + pos: 26.5,7.5 + parent: 2 + - uid: 2573 + components: + - type: Transform + pos: 27.5,7.5 + parent: 2 + - uid: 2574 + components: + - type: Transform + pos: 19.5,6.5 + parent: 2 + - uid: 2575 + components: + - type: Transform + pos: 22.5,6.5 + parent: 2 + - uid: 2576 + components: + - type: Transform + pos: 25.5,6.5 + parent: 2 + - uid: 2577 + components: + - type: Transform + pos: 16.5,7.5 + parent: 2 + - uid: 2578 + components: + - type: Transform + pos: 17.5,8.5 + parent: 2 + - uid: 2579 + components: + - type: Transform + pos: 17.5,9.5 + parent: 2 + - uid: 2580 + components: + - type: Transform + pos: 17.5,10.5 + parent: 2 + - uid: 2581 + components: + - type: Transform + pos: 17.5,11.5 + parent: 2 + - uid: 2582 + components: + - type: Transform + pos: 17.5,12.5 + parent: 2 + - uid: 2583 + components: + - type: Transform + pos: 17.5,13.5 + parent: 2 + - uid: 2584 + components: + - type: Transform + pos: 18.5,13.5 + parent: 2 + - uid: 2585 + components: + - type: Transform + pos: 19.5,13.5 + parent: 2 + - uid: 2586 + components: + - type: Transform + pos: 20.5,13.5 + parent: 2 + - uid: 2587 + components: + - type: Transform + pos: 21.5,13.5 + parent: 2 + - uid: 2588 + components: + - type: Transform + pos: 22.5,13.5 + parent: 2 + - uid: 2589 + components: + - type: Transform + pos: 23.5,13.5 + parent: 2 + - uid: 2590 + components: + - type: Transform + pos: 24.5,13.5 + parent: 2 + - uid: 2591 + components: + - type: Transform + pos: 25.5,13.5 + parent: 2 + - uid: 2592 + components: + - type: Transform + pos: 24.5,12.5 + parent: 2 + - uid: 2593 + components: + - type: Transform + pos: 24.5,11.5 + parent: 2 + - uid: 2594 + components: + - type: Transform + pos: 16.5,13.5 + parent: 2 + - uid: 2595 + components: + - type: Transform + pos: 16.5,14.5 + parent: 2 + - uid: 2596 + components: + - type: Transform + pos: 16.5,15.5 + parent: 2 + - uid: 2597 + components: + - type: Transform + pos: 16.5,16.5 + parent: 2 + - uid: 2598 + components: + - type: Transform + pos: 16.5,17.5 + parent: 2 + - uid: 2599 + components: + - type: Transform + pos: 23.5,14.5 + parent: 2 + - uid: 2600 + components: + - type: Transform + pos: 23.5,15.5 + parent: 2 + - uid: 2601 + components: + - type: Transform + pos: 23.5,16.5 + parent: 2 + - uid: 2602 + components: + - type: Transform + pos: 23.5,17.5 + parent: 2 + - uid: 2603 + components: + - type: Transform + pos: 22.5,17.5 + parent: 2 + - uid: 2604 + components: + - type: Transform + pos: 21.5,17.5 + parent: 2 + - uid: 2605 + components: + - type: Transform + pos: 24.5,17.5 + parent: 2 + - uid: 2606 + components: + - type: Transform + pos: 25.5,17.5 + parent: 2 + - uid: 2607 + components: + - type: Transform + pos: 22.5,18.5 + parent: 2 + - uid: 2608 + components: + - type: Transform + pos: 22.5,19.5 + parent: 2 + - uid: 2609 + components: + - type: Transform + pos: 22.5,20.5 + parent: 2 + - uid: 2610 + components: + - type: Transform + pos: 22.5,21.5 + parent: 2 + - uid: 2611 + components: + - type: Transform + pos: 22.5,22.5 + parent: 2 + - uid: 2612 + components: + - type: Transform + pos: 23.5,22.5 + parent: 2 + - uid: 2613 + components: + - type: Transform + pos: 24.5,22.5 + parent: 2 + - uid: 2614 + components: + - type: Transform + pos: 25.5,22.5 + parent: 2 + - uid: 2615 + components: + - type: Transform + pos: 28.5,7.5 + parent: 2 + - uid: 2616 + components: + - type: Transform + pos: 29.5,7.5 + parent: 2 + - uid: 2617 + components: + - type: Transform + pos: 30.5,7.5 + parent: 2 + - uid: 2618 + components: + - type: Transform + pos: 31.5,7.5 + parent: 2 + - uid: 2619 + components: + - type: Transform + pos: 32.5,7.5 + parent: 2 + - uid: 2620 + components: + - type: Transform + pos: 33.5,7.5 + parent: 2 + - uid: 2621 + components: + - type: Transform + pos: 34.5,7.5 + parent: 2 + - uid: 2622 + components: + - type: Transform + pos: 32.5,8.5 + parent: 2 + - uid: 2623 + components: + - type: Transform + pos: 32.5,9.5 + parent: 2 + - uid: 2624 + components: + - type: Transform + pos: 32.5,10.5 + parent: 2 + - uid: 2625 + components: + - type: Transform + pos: 33.5,10.5 + parent: 2 + - uid: 2626 + components: + - type: Transform + pos: 34.5,10.5 + parent: 2 + - uid: 2627 + components: + - type: Transform + pos: 29.5,8.5 + parent: 2 + - uid: 2628 + components: + - type: Transform + pos: 29.5,9.5 + parent: 2 + - uid: 2629 + components: + - type: Transform + pos: 29.5,10.5 + parent: 2 + - uid: 2630 + components: + - type: Transform + pos: 29.5,11.5 + parent: 2 + - uid: 2631 + components: + - type: Transform + pos: 29.5,12.5 + parent: 2 + - uid: 2632 + components: + - type: Transform + pos: 34.5,6.5 + parent: 2 + - uid: 2633 + components: + - type: Transform + pos: 34.5,5.5 + parent: 2 + - uid: 2634 + components: + - type: Transform + pos: 37.5,18.5 + parent: 2 + - uid: 2635 + components: + - type: Transform + pos: 36.5,12.5 + parent: 2 + - uid: 2636 + components: + - type: Transform + pos: 36.5,13.5 + parent: 2 + - uid: 2637 + components: + - type: Transform + pos: 36.5,14.5 + parent: 2 + - uid: 2638 + components: + - type: Transform + pos: 36.5,15.5 + parent: 2 + - uid: 2639 + components: + - type: Transform + pos: 36.5,16.5 + parent: 2 + - uid: 2640 + components: + - type: Transform + pos: 36.5,17.5 + parent: 2 + - uid: 2641 + components: + - type: Transform + pos: 36.5,18.5 + parent: 2 + - uid: 2642 + components: + - type: Transform + pos: 33.5,17.5 + parent: 2 + - uid: 2643 + components: + - type: Transform + pos: 28.5,23.5 + parent: 2 + - uid: 2644 + components: + - type: Transform + pos: 27.5,23.5 + parent: 2 + - uid: 2645 + components: + - type: Transform + pos: 35.5,17.5 + parent: 2 + - uid: 2646 + components: + - type: Transform + pos: 34.5,17.5 + parent: 2 + - uid: 2647 + components: + - type: Transform + pos: 29.5,14.5 + parent: 2 + - uid: 2648 + components: + - type: Transform + pos: 29.5,15.5 + parent: 2 + - uid: 2649 + components: + - type: Transform + pos: 29.5,16.5 + parent: 2 + - uid: 2650 + components: + - type: Transform + pos: 29.5,17.5 + parent: 2 + - uid: 2651 + components: + - type: Transform + pos: 29.5,18.5 + parent: 2 + - uid: 2652 + components: + - type: Transform + pos: 29.5,19.5 + parent: 2 + - uid: 2653 + components: + - type: Transform + pos: 29.5,20.5 + parent: 2 + - uid: 2654 + components: + - type: Transform + pos: 29.5,21.5 + parent: 2 + - uid: 2655 + components: + - type: Transform + pos: 29.5,22.5 + parent: 2 + - uid: 2656 + components: + - type: Transform + pos: 29.5,23.5 + parent: 2 + - uid: 2657 + components: + - type: Transform + pos: 29.5,24.5 + parent: 2 + - uid: 2658 + components: + - type: Transform + pos: 29.5,25.5 + parent: 2 + - uid: 2659 + components: + - type: Transform + pos: 30.5,23.5 + parent: 2 + - uid: 2660 + components: + - type: Transform + pos: 31.5,23.5 + parent: 2 + - uid: 2661 + components: + - type: Transform + pos: 33.5,23.5 + parent: 2 + - uid: 2662 + components: + - type: Transform + pos: 32.5,23.5 + parent: 2 + - uid: 2663 + components: + - type: Transform + pos: 33.5,18.5 + parent: 2 + - uid: 2664 + components: + - type: Transform + pos: 38.5,18.5 + parent: 2 + - uid: 2665 + components: + - type: Transform + pos: 39.5,18.5 + parent: 2 + - uid: 2666 + components: + - type: Transform + pos: 40.5,18.5 + parent: 2 + - uid: 2667 + components: + - type: Transform + pos: 41.5,18.5 + parent: 2 + - uid: 2668 + components: + - type: Transform + pos: 42.5,18.5 + parent: 2 + - uid: 2669 + components: + - type: Transform + pos: -12.5,9.5 + parent: 2 + - uid: 2670 + components: + - type: Transform + pos: -8.5,9.5 + parent: 2 + - uid: 2671 + components: + - type: Transform + pos: -2.5,28.5 + parent: 2 + - uid: 2672 + components: + - type: Transform + pos: 6.5,11.5 + parent: 2 + - uid: 2673 + components: + - type: Transform + pos: 6.5,10.5 + parent: 2 + - uid: 2674 + components: + - type: Transform + pos: 5.5,10.5 + parent: 2 + - uid: 2675 + components: + - type: Transform + pos: 4.5,10.5 + parent: 2 + - uid: 2676 + components: + - type: Transform + pos: 3.5,10.5 + parent: 2 + - uid: 2677 + components: + - type: Transform + pos: 2.5,10.5 + parent: 2 + - uid: 2678 + components: + - type: Transform + pos: 1.5,10.5 + parent: 2 + - uid: 2679 + components: + - type: Transform + pos: 0.5,10.5 + parent: 2 + - uid: 2680 + components: + - type: Transform + pos: -0.5,10.5 + parent: 2 + - uid: 2681 + components: + - type: Transform + pos: -1.5,10.5 + parent: 2 + - uid: 2682 + components: + - type: Transform + pos: -2.5,10.5 + parent: 2 + - uid: 2683 + components: + - type: Transform + pos: -3.5,10.5 + parent: 2 + - uid: 2684 + components: + - type: Transform + pos: -3.5,9.5 + parent: 2 + - uid: 2685 + components: + - type: Transform + pos: -4.5,9.5 + parent: 2 + - uid: 2686 + components: + - type: Transform + pos: -5.5,9.5 + parent: 2 + - uid: 2687 + components: + - type: Transform + pos: -6.5,9.5 + parent: 2 + - uid: 2688 + components: + - type: Transform + pos: -6.5,8.5 + parent: 2 + - uid: 2689 + components: + - type: Transform + pos: -6.5,7.5 + parent: 2 + - uid: 2690 + components: + - type: Transform + pos: -7.5,7.5 + parent: 2 + - uid: 2691 + components: + - type: Transform + pos: -7.5,6.5 + parent: 2 + - uid: 2692 + components: + - type: Transform + pos: -7.5,5.5 + parent: 2 + - uid: 2693 + components: + - type: Transform + pos: -8.5,5.5 + parent: 2 + - uid: 2694 + components: + - type: Transform + pos: -8.5,4.5 + parent: 2 + - uid: 2695 + components: + - type: Transform + pos: -8.5,3.5 + parent: 2 + - uid: 2696 + components: + - type: Transform + pos: -8.5,2.5 + parent: 2 + - uid: 2697 + components: + - type: Transform + pos: 6.5,9.5 + parent: 2 + - uid: 2698 + components: + - type: Transform + pos: 7.5,9.5 + parent: 2 + - uid: 2699 + components: + - type: Transform + pos: 8.5,9.5 + parent: 2 + - uid: 2700 + components: + - type: Transform + pos: 8.5,8.5 + parent: 2 + - uid: 2701 + components: + - type: Transform + pos: 8.5,7.5 + parent: 2 + - uid: 2702 + components: + - type: Transform + pos: 9.5,7.5 + parent: 2 + - uid: 2703 + components: + - type: Transform + pos: 9.5,6.5 + parent: 2 + - uid: 2704 + components: + - type: Transform + pos: 9.5,5.5 + parent: 2 + - uid: 2705 + components: + - type: Transform + pos: 10.5,5.5 + parent: 2 + - uid: 2706 + components: + - type: Transform + pos: 10.5,4.5 + parent: 2 + - uid: 2707 + components: + - type: Transform + pos: 10.5,3.5 + parent: 2 + - uid: 2708 + components: + - type: Transform + pos: 10.5,2.5 + parent: 2 + - uid: 2709 + components: + - type: Transform + pos: 4.5,-10.5 + parent: 2 + - uid: 2710 + components: + - type: Transform + pos: 4.5,-9.5 + parent: 2 + - uid: 2711 + components: + - type: Transform + pos: 4.5,-8.5 + parent: 2 + - uid: 2712 + components: + - type: Transform + pos: 5.5,-8.5 + parent: 2 + - uid: 2713 + components: + - type: Transform + pos: 5.5,-7.5 + parent: 2 + - uid: 2714 + components: + - type: Transform + pos: 6.5,-7.5 + parent: 2 + - uid: 2715 + components: + - type: Transform + pos: 7.5,-7.5 + parent: 2 + - uid: 2716 + components: + - type: Transform + pos: 7.5,-6.5 + parent: 2 + - uid: 2717 + components: + - type: Transform + pos: 8.5,-6.5 + parent: 2 + - uid: 2718 + components: + - type: Transform + pos: 8.5,-5.5 + parent: 2 + - uid: 2719 + components: + - type: Transform + pos: 8.5,-4.5 + parent: 2 + - uid: 2720 + components: + - type: Transform + pos: 9.5,-4.5 + parent: 2 + - uid: 2721 + components: + - type: Transform + pos: 9.5,-3.5 + parent: 2 + - uid: 2722 + components: + - type: Transform + pos: 10.5,-3.5 + parent: 2 + - uid: 2723 + components: + - type: Transform + pos: 10.5,-2.5 + parent: 2 + - uid: 2724 + components: + - type: Transform + pos: 10.5,-1.5 + parent: 2 + - uid: 2725 + components: + - type: Transform + pos: 10.5,-0.5 + parent: 2 + - uid: 2726 + components: + - type: Transform + pos: 3.5,-8.5 + parent: 2 + - uid: 2727 + components: + - type: Transform + pos: 2.5,-8.5 + parent: 2 + - uid: 2728 + components: + - type: Transform + pos: 1.5,-8.5 + parent: 2 + - uid: 2729 + components: + - type: Transform + pos: 0.5,-8.5 + parent: 2 + - uid: 2730 + components: + - type: Transform + pos: -0.5,-8.5 + parent: 2 + - uid: 2731 + components: + - type: Transform + pos: -1.5,-8.5 + parent: 2 + - uid: 2732 + components: + - type: Transform + pos: -2.5,-8.5 + parent: 2 + - uid: 2733 + components: + - type: Transform + pos: -3.5,-8.5 + parent: 2 + - uid: 2734 + components: + - type: Transform + pos: -3.5,-7.5 + parent: 2 + - uid: 2735 + components: + - type: Transform + pos: -4.5,-7.5 + parent: 2 + - uid: 2736 + components: + - type: Transform + pos: -5.5,-7.5 + parent: 2 + - uid: 2737 + components: + - type: Transform + pos: -5.5,-6.5 + parent: 2 + - uid: 2738 + components: + - type: Transform + pos: -6.5,-6.5 + parent: 2 + - uid: 2739 + components: + - type: Transform + pos: -6.5,-5.5 + parent: 2 + - uid: 2740 + components: + - type: Transform + pos: -6.5,-4.5 + parent: 2 + - uid: 2741 + components: + - type: Transform + pos: -7.5,-4.5 + parent: 2 + - uid: 2742 + components: + - type: Transform + pos: -7.5,-3.5 + parent: 2 + - uid: 2743 + components: + - type: Transform + pos: -8.5,-3.5 + parent: 2 + - uid: 2744 + components: + - type: Transform + pos: -8.5,-2.5 + parent: 2 + - uid: 2745 + components: + - type: Transform + pos: -8.5,-1.5 + parent: 2 + - uid: 2746 + components: + - type: Transform + pos: -8.5,-0.5 + parent: 2 + - uid: 2747 + components: + - type: Transform + pos: 1.5,-7.5 + parent: 2 + - uid: 2748 + components: + - type: Transform + pos: 1.5,-6.5 + parent: 2 + - uid: 2749 + components: + - type: Transform + pos: 1.5,-5.5 + parent: 2 + - uid: 2750 + components: + - type: Transform + pos: 1.5,-4.5 + parent: 2 + - uid: 2751 + components: + - type: Transform + pos: 1.5,-3.5 + parent: 2 + - uid: 2752 + components: + - type: Transform + pos: 2.5,-3.5 + parent: 2 + - uid: 2753 + components: + - type: Transform + pos: 3.5,-3.5 + parent: 2 + - uid: 2754 + components: + - type: Transform + pos: 4.5,-3.5 + parent: 2 + - uid: 2755 + components: + - type: Transform + pos: 4.5,-2.5 + parent: 2 + - uid: 2756 + components: + - type: Transform + pos: 5.5,-2.5 + parent: 2 + - uid: 2757 + components: + - type: Transform + pos: 5.5,-1.5 + parent: 2 + - uid: 2758 + components: + - type: Transform + pos: 5.5,-0.5 + parent: 2 + - uid: 2759 + components: + - type: Transform + pos: 0.5,-3.5 + parent: 2 + - uid: 2760 + components: + - type: Transform + pos: -0.5,-3.5 + parent: 2 + - uid: 2761 + components: + - type: Transform + pos: -1.5,-3.5 + parent: 2 + - uid: 2762 + components: + - type: Transform + pos: -2.5,-3.5 + parent: 2 + - uid: 2763 + components: + - type: Transform + pos: -2.5,-2.5 + parent: 2 + - uid: 2764 + components: + - type: Transform + pos: -3.5,-2.5 + parent: 2 + - uid: 2765 + components: + - type: Transform + pos: -3.5,-1.5 + parent: 2 + - uid: 2766 + components: + - type: Transform + pos: -3.5,-0.5 + parent: 2 + - uid: 2767 + components: + - type: Transform + pos: 0.5,9.5 + parent: 2 + - uid: 2768 + components: + - type: Transform + pos: 0.5,8.5 + parent: 2 + - uid: 2769 + components: + - type: Transform + pos: 0.5,7.5 + parent: 2 + - uid: 2770 + components: + - type: Transform + pos: 0.5,6.5 + parent: 2 + - uid: 2771 + components: + - type: Transform + pos: 0.5,5.5 + parent: 2 + - uid: 2772 + components: + - type: Transform + pos: 0.5,4.5 + parent: 2 + - uid: 2773 + components: + - type: Transform + pos: -0.5,4.5 + parent: 2 + - uid: 2774 + components: + - type: Transform + pos: -1.5,4.5 + parent: 2 + - uid: 2775 + components: + - type: Transform + pos: -2.5,4.5 + parent: 2 + - uid: 2776 + components: + - type: Transform + pos: -3.5,4.5 + parent: 2 + - uid: 2777 + components: + - type: Transform + pos: -3.5,3.5 + parent: 2 + - uid: 2778 + components: + - type: Transform + pos: -3.5,2.5 + parent: 2 + - uid: 2779 + components: + - type: Transform + pos: 1.5,4.5 + parent: 2 + - uid: 2780 + components: + - type: Transform + pos: 2.5,4.5 + parent: 2 + - uid: 2781 + components: + - type: Transform + pos: 3.5,4.5 + parent: 2 + - uid: 2782 + components: + - type: Transform + pos: 4.5,4.5 + parent: 2 + - uid: 2783 + components: + - type: Transform + pos: 5.5,4.5 + parent: 2 + - uid: 2784 + components: + - type: Transform + pos: 5.5,3.5 + parent: 2 + - uid: 2785 + components: + - type: Transform + pos: 5.5,2.5 + parent: 2 + - uid: 2786 + components: + - type: Transform + pos: -1.5,-29.5 + parent: 2 + - uid: 2787 + components: + - type: Transform + pos: -9.5,-34.5 + parent: 2 + - uid: 2788 + components: + - type: Transform + pos: -9.5,-35.5 + parent: 2 + - uid: 2789 + components: + - type: Transform + pos: -9.5,-36.5 + parent: 2 + - uid: 2790 + components: + - type: Transform + pos: -10.5,-36.5 + parent: 2 + - uid: 2791 + components: + - type: Transform + pos: -11.5,-36.5 + parent: 2 + - uid: 2792 + components: + - type: Transform + pos: -11.5,-37.5 + parent: 2 + - uid: 2793 + components: + - type: Transform + pos: -11.5,-38.5 + parent: 2 + - uid: 2794 + components: + - type: Transform + pos: -11.5,-39.5 + parent: 2 + - uid: 2795 + components: + - type: Transform + pos: -11.5,-40.5 + parent: 2 + - uid: 2796 + components: + - type: Transform + pos: -11.5,-41.5 + parent: 2 + - uid: 2797 + components: + - type: Transform + pos: -11.5,-42.5 + parent: 2 + - uid: 2798 + components: + - type: Transform + pos: -11.5,-43.5 + parent: 2 + - uid: 2799 + components: + - type: Transform + pos: -11.5,-44.5 + parent: 2 + - uid: 2800 + components: + - type: Transform + pos: -11.5,-45.5 + parent: 2 + - uid: 2801 + components: + - type: Transform + pos: -11.5,-46.5 + parent: 2 + - uid: 2802 + components: + - type: Transform + pos: -11.5,-47.5 + parent: 2 + - uid: 2803 + components: + - type: Transform + pos: -11.5,-48.5 + parent: 2 + - uid: 2804 + components: + - type: Transform + pos: -17.5,-48.5 + parent: 2 + - uid: 2805 + components: + - type: Transform + pos: -16.5,-48.5 + parent: 2 + - uid: 2806 + components: + - type: Transform + pos: -15.5,-48.5 + parent: 2 + - uid: 2807 + components: + - type: Transform + pos: -14.5,-48.5 + parent: 2 + - uid: 2808 + components: + - type: Transform + pos: -13.5,-48.5 + parent: 2 + - uid: 2809 + components: + - type: Transform + pos: -12.5,-48.5 + parent: 2 + - uid: 2810 + components: + - type: Transform + pos: -11.5,-48.5 + parent: 2 + - uid: 2811 + components: + - type: Transform + pos: -10.5,-48.5 + parent: 2 + - uid: 2812 + components: + - type: Transform + pos: -9.5,-48.5 + parent: 2 + - uid: 2813 + components: + - type: Transform + pos: -8.5,-48.5 + parent: 2 + - uid: 2814 + components: + - type: Transform + pos: -7.5,-48.5 + parent: 2 + - uid: 2815 + components: + - type: Transform + pos: -17.5,-45.5 + parent: 2 + - uid: 2816 + components: + - type: Transform + pos: -16.5,-45.5 + parent: 2 + - uid: 2817 + components: + - type: Transform + pos: -15.5,-45.5 + parent: 2 + - uid: 2818 + components: + - type: Transform + pos: -14.5,-45.5 + parent: 2 + - uid: 2819 + components: + - type: Transform + pos: -13.5,-45.5 + parent: 2 + - uid: 2820 + components: + - type: Transform + pos: -12.5,-45.5 + parent: 2 + - uid: 2821 + components: + - type: Transform + pos: -11.5,-45.5 + parent: 2 + - uid: 2822 + components: + - type: Transform + pos: -16.5,-42.5 + parent: 2 + - uid: 2823 + components: + - type: Transform + pos: -15.5,-42.5 + parent: 2 + - uid: 2824 + components: + - type: Transform + pos: -14.5,-42.5 + parent: 2 + - uid: 2825 + components: + - type: Transform + pos: -13.5,-42.5 + parent: 2 + - uid: 2826 + components: + - type: Transform + pos: -12.5,-42.5 + parent: 2 + - uid: 2827 + components: + - type: Transform + pos: -11.5,-42.5 + parent: 2 + - uid: 2828 + components: + - type: Transform + pos: -10.5,-42.5 + parent: 2 + - uid: 2829 + components: + - type: Transform + pos: -9.5,-42.5 + parent: 2 + - uid: 2830 + components: + - type: Transform + pos: -8.5,-42.5 + parent: 2 + - uid: 2831 + components: + - type: Transform + pos: -7.5,-42.5 + parent: 2 + - uid: 2832 + components: + - type: Transform + pos: -6.5,-42.5 + parent: 2 + - uid: 2833 + components: + - type: Transform + pos: -17.5,-42.5 + parent: 2 + - uid: 2834 + components: + - type: Transform + pos: -17.5,-39.5 + parent: 2 + - uid: 2835 + components: + - type: Transform + pos: -16.5,-39.5 + parent: 2 + - uid: 2836 + components: + - type: Transform + pos: -15.5,-39.5 + parent: 2 + - uid: 2837 + components: + - type: Transform + pos: -14.5,-39.5 + parent: 2 + - uid: 2838 + components: + - type: Transform + pos: -13.5,-39.5 + parent: 2 + - uid: 2839 + components: + - type: Transform + pos: -12.5,-39.5 + parent: 2 + - uid: 2840 + components: + - type: Transform + pos: -11.5,-39.5 + parent: 2 + - uid: 2841 + components: + - type: Transform + pos: -17.5,-36.5 + parent: 2 + - uid: 2842 + components: + - type: Transform + pos: -16.5,-36.5 + parent: 2 + - uid: 2843 + components: + - type: Transform + pos: -15.5,-36.5 + parent: 2 + - uid: 2844 + components: + - type: Transform + pos: -14.5,-36.5 + parent: 2 + - uid: 2845 + components: + - type: Transform + pos: -13.5,-36.5 + parent: 2 + - uid: 2846 + components: + - type: Transform + pos: -12.5,-36.5 + parent: 2 + - uid: 2847 + components: + - type: Transform + pos: -11.5,-36.5 + parent: 2 + - uid: 2848 + components: + - type: Transform + pos: -10.5,-36.5 + parent: 2 + - uid: 2849 + components: + - type: Transform + pos: -9.5,-36.5 + parent: 2 + - uid: 2850 + components: + - type: Transform + pos: -8.5,-36.5 + parent: 2 + - uid: 2851 + components: + - type: Transform + pos: -7.5,-36.5 + parent: 2 + - uid: 2852 + components: + - type: Transform + pos: -11.5,-36.5 + parent: 2 + - uid: 2853 + components: + - type: Transform + pos: -11.5,-35.5 + parent: 2 + - uid: 2854 + components: + - type: Transform + pos: -11.5,-34.5 + parent: 2 + - uid: 2855 + components: + - type: Transform + pos: -11.5,-33.5 + parent: 2 + - uid: 2856 + components: + - type: Transform + pos: -11.5,-32.5 + parent: 2 + - uid: 2857 + components: + - type: Transform + pos: -11.5,-31.5 + parent: 2 + - uid: 2858 + components: + - type: Transform + pos: -11.5,-30.5 + parent: 2 + - uid: 2859 + components: + - type: Transform + pos: -7.5,-33.5 + parent: 2 + - uid: 2860 + components: + - type: Transform + pos: -7.5,-34.5 + parent: 2 + - uid: 2861 + components: + - type: Transform + pos: -7.5,-35.5 + parent: 2 + - uid: 2862 + components: + - type: Transform + pos: -7.5,-32.5 + parent: 2 + - uid: 2863 + components: + - type: Transform + pos: -6.5,-32.5 + parent: 2 + - uid: 2864 + components: + - type: Transform + pos: -5.5,-32.5 + parent: 2 + - uid: 2865 + components: + - type: Transform + pos: -4.5,-32.5 + parent: 2 + - uid: 2866 + components: + - type: Transform + pos: -3.5,-32.5 + parent: 2 + - uid: 2867 + components: + - type: Transform + pos: -3.5,-31.5 + parent: 2 + - uid: 2868 + components: + - type: Transform + pos: -7.5,-31.5 + parent: 2 + - uid: 2869 + components: + - type: Transform + pos: -7.5,-30.5 + parent: 2 + - uid: 2870 + components: + - type: Transform + pos: -3.5,-30.5 + parent: 2 + - uid: 2871 + components: + - type: Transform + pos: -2.5,-32.5 + parent: 2 + - uid: 2872 + components: + - type: Transform + pos: -3.5,-33.5 + parent: 2 + - uid: 2873 + components: + - type: Transform + pos: -4.5,-38.5 + parent: 2 + - uid: 2874 + components: + - type: Transform + pos: -3.5,-38.5 + parent: 2 + - uid: 2875 + components: + - type: Transform + pos: -3.5,-40.5 + parent: 2 + - uid: 2876 + components: + - type: Transform + pos: -3.5,-39.5 + parent: 2 + - uid: 2877 + components: + - type: Transform + pos: -3.5,-38.5 + parent: 2 + - uid: 2878 + components: + - type: Transform + pos: -3.5,-37.5 + parent: 2 + - uid: 2879 + components: + - type: Transform + pos: -3.5,-36.5 + parent: 2 + - uid: 2880 + components: + - type: Transform + pos: -2.5,-36.5 + parent: 2 + - uid: 2881 + components: + - type: Transform + pos: 9.5,-62.5 + parent: 2 + - uid: 2882 + components: + - type: Transform + pos: 9.5,-63.5 + parent: 2 + - uid: 2883 + components: + - type: Transform + pos: 10.5,-63.5 + parent: 2 + - uid: 2884 + components: + - type: Transform + pos: 11.5,-63.5 + parent: 2 + - uid: 2885 + components: + - type: Transform + pos: 12.5,-63.5 + parent: 2 + - uid: 2886 + components: + - type: Transform + pos: 12.5,-62.5 + parent: 2 + - uid: 2887 + components: + - type: Transform + pos: 12.5,-61.5 + parent: 2 + - uid: 2888 + components: + - type: Transform + pos: 12.5,-60.5 + parent: 2 + - uid: 2889 + components: + - type: Transform + pos: 12.5,-59.5 + parent: 2 + - uid: 2890 + components: + - type: Transform + pos: 12.5,-58.5 + parent: 2 + - uid: 2891 + components: + - type: Transform + pos: 12.5,-57.5 + parent: 2 + - uid: 2892 + components: + - type: Transform + pos: 8.5,-63.5 + parent: 2 + - uid: 2893 + components: + - type: Transform + pos: 7.5,-63.5 + parent: 2 + - uid: 2894 + components: + - type: Transform + pos: 6.5,-63.5 + parent: 2 + - uid: 2895 + components: + - type: Transform + pos: 5.5,-63.5 + parent: 2 + - uid: 2896 + components: + - type: Transform + pos: 4.5,-63.5 + parent: 2 + - uid: 2897 + components: + - type: Transform + pos: 3.5,-63.5 + parent: 2 + - uid: 2898 + components: + - type: Transform + pos: 2.5,-63.5 + parent: 2 + - uid: 2899 + components: + - type: Transform + pos: 1.5,-63.5 + parent: 2 + - uid: 2900 + components: + - type: Transform + pos: 0.5,-63.5 + parent: 2 + - uid: 2901 + components: + - type: Transform + pos: -0.5,-63.5 + parent: 2 + - uid: 2902 + components: + - type: Transform + pos: -1.5,-63.5 + parent: 2 + - uid: 2903 + components: + - type: Transform + pos: -2.5,-63.5 + parent: 2 + - uid: 2904 + components: + - type: Transform + pos: -3.5,-63.5 + parent: 2 + - uid: 2905 + components: + - type: Transform + pos: -4.5,-63.5 + parent: 2 + - uid: 2906 + components: + - type: Transform + pos: -5.5,-63.5 + parent: 2 + - uid: 2907 + components: + - type: Transform + pos: -6.5,-63.5 + parent: 2 + - uid: 2908 + components: + - type: Transform + pos: -6.5,-64.5 + parent: 2 + - uid: 2909 + components: + - type: Transform + pos: -6.5,-65.5 + parent: 2 + - uid: 2910 + components: + - type: Transform + pos: -6.5,-66.5 + parent: 2 + - uid: 2911 + components: + - type: Transform + pos: -6.5,-67.5 + parent: 2 + - uid: 2912 + components: + - type: Transform + pos: -6.5,-68.5 + parent: 2 + - uid: 2913 + components: + - type: Transform + pos: -6.5,-69.5 + parent: 2 + - uid: 2914 + components: + - type: Transform + pos: -6.5,-70.5 + parent: 2 + - uid: 2915 + components: + - type: Transform + pos: -6.5,-71.5 + parent: 2 + - uid: 2916 + components: + - type: Transform + pos: -6.5,-72.5 + parent: 2 + - uid: 2917 + components: + - type: Transform + pos: -6.5,-73.5 + parent: 2 + - uid: 2918 + components: + - type: Transform + pos: -6.5,-74.5 + parent: 2 + - uid: 2919 + components: + - type: Transform + pos: -6.5,-75.5 + parent: 2 + - uid: 2920 + components: + - type: Transform + pos: -5.5,-75.5 + parent: 2 + - uid: 2921 + components: + - type: Transform + pos: -4.5,-75.5 + parent: 2 + - uid: 2922 + components: + - type: Transform + pos: -3.5,-75.5 + parent: 2 + - uid: 2923 + components: + - type: Transform + pos: -2.5,-75.5 + parent: 2 + - uid: 2924 + components: + - type: Transform + pos: -1.5,-75.5 + parent: 2 + - uid: 2925 + components: + - type: Transform + pos: -0.5,-75.5 + parent: 2 + - uid: 2926 + components: + - type: Transform + pos: 0.5,-75.5 + parent: 2 + - uid: 2927 + components: + - type: Transform + pos: 1.5,-75.5 + parent: 2 + - uid: 2928 + components: + - type: Transform + pos: 2.5,-75.5 + parent: 2 + - uid: 2929 + components: + - type: Transform + pos: 3.5,-75.5 + parent: 2 + - uid: 2930 + components: + - type: Transform + pos: 4.5,-75.5 + parent: 2 + - uid: 2931 + components: + - type: Transform + pos: 5.5,-75.5 + parent: 2 + - uid: 2932 + components: + - type: Transform + pos: 6.5,-75.5 + parent: 2 + - uid: 2933 + components: + - type: Transform + pos: 7.5,-75.5 + parent: 2 + - uid: 2934 + components: + - type: Transform + pos: 7.5,-75.5 + parent: 2 + - uid: 2935 + components: + - type: Transform + pos: 7.5,-74.5 + parent: 2 + - uid: 2936 + components: + - type: Transform + pos: 7.5,-73.5 + parent: 2 + - uid: 2937 + components: + - type: Transform + pos: 7.5,-72.5 + parent: 2 + - uid: 2938 + components: + - type: Transform + pos: 7.5,-71.5 + parent: 2 + - uid: 2939 + components: + - type: Transform + pos: 7.5,-70.5 + parent: 2 + - uid: 2940 + components: + - type: Transform + pos: 7.5,-69.5 + parent: 2 + - uid: 2941 + components: + - type: Transform + pos: 7.5,-68.5 + parent: 2 + - uid: 2942 + components: + - type: Transform + pos: 7.5,-67.5 + parent: 2 + - uid: 2943 + components: + - type: Transform + pos: 7.5,-66.5 + parent: 2 + - uid: 2944 + components: + - type: Transform + pos: 7.5,-65.5 + parent: 2 + - uid: 2945 + components: + - type: Transform + pos: 7.5,-64.5 + parent: 2 + - uid: 2946 + components: + - type: Transform + pos: 0.5,-69.5 + parent: 2 + - uid: 2947 + components: + - type: Transform + pos: 0.5,-68.5 + parent: 2 + - uid: 2948 + components: + - type: Transform + pos: 0.5,-67.5 + parent: 2 + - uid: 2949 + components: + - type: Transform + pos: 0.5,-66.5 + parent: 2 + - uid: 2950 + components: + - type: Transform + pos: 0.5,-65.5 + parent: 2 + - uid: 2951 + components: + - type: Transform + pos: -5.5,-69.5 + parent: 2 + - uid: 2952 + components: + - type: Transform + pos: -4.5,-69.5 + parent: 2 + - uid: 2953 + components: + - type: Transform + pos: -3.5,-69.5 + parent: 2 + - uid: 2954 + components: + - type: Transform + pos: -2.5,-69.5 + parent: 2 + - uid: 2955 + components: + - type: Transform + pos: -1.5,-69.5 + parent: 2 + - uid: 2956 + components: + - type: Transform + pos: 2.5,-69.5 + parent: 2 + - uid: 2957 + components: + - type: Transform + pos: 3.5,-69.5 + parent: 2 + - uid: 2958 + components: + - type: Transform + pos: 4.5,-69.5 + parent: 2 + - uid: 2959 + components: + - type: Transform + pos: 5.5,-69.5 + parent: 2 + - uid: 2960 + components: + - type: Transform + pos: 6.5,-69.5 + parent: 2 + - uid: 2961 + components: + - type: Transform + pos: 7.5,-69.5 + parent: 2 + - uid: 2962 + components: + - type: Transform + pos: 12.5,-65.5 + parent: 2 + - uid: 2963 + components: + - type: Transform + pos: 12.5,-66.5 + parent: 2 + - uid: 2964 + components: + - type: Transform + pos: 12.5,-67.5 + parent: 2 + - uid: 2965 + components: + - type: Transform + pos: 12.5,-68.5 + parent: 2 + - uid: 2966 + components: + - type: Transform + pos: 12.5,-69.5 + parent: 2 + - uid: 2967 + components: + - type: Transform + pos: 12.5,-70.5 + parent: 2 + - uid: 2968 + components: + - type: Transform + pos: 10.5,-69.5 + parent: 2 + - uid: 2969 + components: + - type: Transform + pos: 11.5,-69.5 + parent: 2 + - uid: 2970 + components: + - type: Transform + pos: 12.5,-69.5 + parent: 2 + - uid: 2971 + components: + - type: Transform + pos: 13.5,-69.5 + parent: 2 + - uid: 2972 + components: + - type: Transform + pos: 14.5,-69.5 + parent: 2 + - uid: 2973 + components: + - type: Transform + pos: -7.5,44.5 + parent: 2 + - uid: 2974 + components: + - type: Transform + pos: -6.5,44.5 + parent: 2 + - uid: 2975 + components: + - type: Transform + pos: -5.5,44.5 + parent: 2 + - uid: 2976 + components: + - type: Transform + pos: -4.5,44.5 + parent: 2 + - uid: 2977 + components: + - type: Transform + pos: -3.5,44.5 + parent: 2 + - uid: 2978 + components: + - type: Transform + pos: -3.5,45.5 + parent: 2 + - uid: 2979 + components: + - type: Transform + pos: -3.5,46.5 + parent: 2 + - uid: 2980 + components: + - type: Transform + pos: -3.5,47.5 + parent: 2 + - uid: 2981 + components: + - type: Transform + pos: -3.5,48.5 + parent: 2 + - uid: 2982 + components: + - type: Transform + pos: -3.5,43.5 + parent: 2 + - uid: 2983 + components: + - type: Transform + pos: -3.5,42.5 + parent: 2 + - uid: 2984 + components: + - type: Transform + pos: -7.5,45.5 + parent: 2 + - uid: 2985 + components: + - type: Transform + pos: -8.5,45.5 + parent: 2 + - uid: 2986 + components: + - type: Transform + pos: -9.5,45.5 + parent: 2 + - uid: 2987 + components: + - type: Transform + pos: -10.5,45.5 + parent: 2 + - uid: 2988 + components: + - type: Transform + pos: -10.5,46.5 + parent: 2 + - uid: 2989 + components: + - type: Transform + pos: -10.5,47.5 + parent: 2 + - uid: 2990 + components: + - type: Transform + pos: -10.5,48.5 + parent: 2 + - uid: 2991 + components: + - type: Transform + pos: 9.5,57.5 + parent: 2 + - uid: 2992 + components: + - type: Transform + pos: 9.5,56.5 + parent: 2 + - uid: 2993 + components: + - type: Transform + pos: 9.5,55.5 + parent: 2 + - uid: 2994 + components: + - type: Transform + pos: 9.5,55.5 + parent: 2 + - uid: 2995 + components: + - type: Transform + pos: 9.5,54.5 + parent: 2 + - uid: 2996 + components: + - type: Transform + pos: 10.5,54.5 + parent: 2 + - uid: 2997 + components: + - type: Transform + pos: 9.5,54.5 + parent: 2 + - uid: 2998 + components: + - type: Transform + pos: 8.5,54.5 + parent: 2 + - uid: 2999 + components: + - type: Transform + pos: 7.5,54.5 + parent: 2 + - uid: 3000 + components: + - type: Transform + pos: 6.5,54.5 + parent: 2 + - uid: 3001 + components: + - type: Transform + pos: 5.5,54.5 + parent: 2 + - uid: 3002 + components: + - type: Transform + pos: 4.5,54.5 + parent: 2 + - uid: 3003 + components: + - type: Transform + pos: 5.5,53.5 + parent: 2 + - uid: 3004 + components: + - type: Transform + pos: 5.5,52.5 + parent: 2 + - uid: 3005 + components: + - type: Transform + pos: 5.5,59.5 + parent: 2 + - uid: 3006 + components: + - type: Transform + pos: 8.5,53.5 + parent: 2 + - uid: 3007 + components: + - type: Transform + pos: 8.5,52.5 + parent: 2 + - uid: 3008 + components: + - type: Transform + pos: 5.5,55.5 + parent: 2 + - uid: 3009 + components: + - type: Transform + pos: 5.5,56.5 + parent: 2 + - uid: 3010 + components: + - type: Transform + pos: 5.5,58.5 + parent: 2 + - uid: 3011 + components: + - type: Transform + pos: 5.5,60.5 + parent: 2 + - uid: 3012 + components: + - type: Transform + pos: 4.5,59.5 + parent: 2 + - uid: 3013 + components: + - type: Transform + pos: 3.5,59.5 + parent: 2 + - uid: 3014 + components: + - type: Transform + pos: 5.5,57.5 + parent: 2 + - uid: 3015 + components: + - type: Transform + pos: 1.5,59.5 + parent: 2 + - uid: 3016 + components: + - type: Transform + pos: 2.5,59.5 + parent: 2 + - uid: 3017 + components: + - type: Transform + pos: 0.5,59.5 + parent: 2 + - uid: 3018 + components: + - type: Transform + pos: -0.5,59.5 + parent: 2 + - uid: 3019 + components: + - type: Transform + pos: -1.5,59.5 + parent: 2 + - uid: 3020 + components: + - type: Transform + pos: -2.5,59.5 + parent: 2 + - uid: 3021 + components: + - type: Transform + pos: -3.5,59.5 + parent: 2 + - uid: 3022 + components: + - type: Transform + pos: -3.5,58.5 + parent: 2 + - uid: 3023 + components: + - type: Transform + pos: -3.5,60.5 + parent: 2 + - uid: 3024 + components: + - type: Transform + pos: -3.5,61.5 + parent: 2 + - uid: 3025 + components: + - type: Transform + pos: -4.5,59.5 + parent: 2 + - uid: 3026 + components: + - type: Transform + pos: 0.5,60.5 + parent: 2 + - uid: 3027 + components: + - type: Transform + pos: 1.5,61.5 + parent: 2 + - uid: 3028 + components: + - type: Transform + pos: 2.5,58.5 + parent: 2 + - uid: 3029 + components: + - type: Transform + pos: 2.5,57.5 + parent: 2 + - uid: 3030 + components: + - type: Transform + pos: 2.5,56.5 + parent: 2 + - uid: 3031 + components: + - type: Transform + pos: 2.5,55.5 + parent: 2 + - uid: 3032 + components: + - type: Transform + pos: 2.5,54.5 + parent: 2 + - uid: 3033 + components: + - type: Transform + pos: -0.5,57.5 + parent: 2 + - uid: 3034 + components: + - type: Transform + pos: -0.5,56.5 + parent: 2 + - uid: 3035 + components: + - type: Transform + pos: -0.5,55.5 + parent: 2 + - uid: 3036 + components: + - type: Transform + pos: -0.5,54.5 + parent: 2 + - uid: 3037 + components: + - type: Transform + pos: -0.5,58.5 + parent: 2 + - uid: 3038 + components: + - type: Transform + pos: 2.5,58.5 + parent: 2 + - uid: 3039 + components: + - type: Transform + pos: 6.5,59.5 + parent: 2 + - uid: 3040 + components: + - type: Transform + pos: 9.5,51.5 + parent: 2 + - uid: 3041 + components: + - type: Transform + pos: 9.5,50.5 + parent: 2 + - uid: 3042 + components: + - type: Transform + pos: 9.5,49.5 + parent: 2 + - uid: 3043 + components: + - type: Transform + pos: 9.5,49.5 + parent: 2 + - uid: 3044 + components: + - type: Transform + pos: 10.5,49.5 + parent: 2 + - uid: 3045 + components: + - type: Transform + pos: 11.5,49.5 + parent: 2 + - uid: 3046 + components: + - type: Transform + pos: 12.5,49.5 + parent: 2 + - uid: 3047 + components: + - type: Transform + pos: 12.5,50.5 + parent: 2 + - uid: 3048 + components: + - type: Transform + pos: 11.5,48.5 + parent: 2 + - uid: 3049 + components: + - type: Transform + pos: 11.5,47.5 + parent: 2 + - uid: 3050 + components: + - type: Transform + pos: 12.5,47.5 + parent: 2 + - uid: 3051 + components: + - type: Transform + pos: 13.5,47.5 + parent: 2 + - uid: 3052 + components: + - type: Transform + pos: 14.5,47.5 + parent: 2 + - uid: 3053 + components: + - type: Transform + pos: 8.5,49.5 + parent: 2 + - uid: 3054 + components: + - type: Transform + pos: 7.5,49.5 + parent: 2 + - uid: 3055 + components: + - type: Transform + pos: 8.5,48.5 + parent: 2 + - uid: 3056 + components: + - type: Transform + pos: 8.5,47.5 + parent: 2 + - uid: 3057 + components: + - type: Transform + pos: 7.5,47.5 + parent: 2 + - uid: 3058 + components: + - type: Transform + pos: 6.5,47.5 + parent: 2 + - uid: 3059 + components: + - type: Transform + pos: -9.5,51.5 + parent: 2 + - uid: 3060 + components: + - type: Transform + pos: -10.5,51.5 + parent: 2 + - uid: 3061 + components: + - type: Transform + pos: -10.5,50.5 + parent: 2 + - uid: 3062 + components: + - type: Transform + pos: -10.5,50.5 + parent: 2 + - uid: 3063 + components: + - type: Transform + pos: -9.5,50.5 + parent: 2 + - uid: 3064 + components: + - type: Transform + pos: -8.5,50.5 + parent: 2 + - uid: 3065 + components: + - type: Transform + pos: -7.5,50.5 + parent: 2 + - uid: 3066 + components: + - type: Transform + pos: -6.5,50.5 + parent: 2 + - uid: 3067 + components: + - type: Transform + pos: -6.5,49.5 + parent: 2 + - uid: 3068 + components: + - type: Transform + pos: -6.5,48.5 + parent: 2 + - uid: 3069 + components: + - type: Transform + pos: -6.5,47.5 + parent: 2 + - uid: 3070 + components: + - type: Transform + pos: -7.5,48.5 + parent: 2 + - uid: 3071 + components: + - type: Transform + pos: -7.5,51.5 + parent: 2 + - uid: 3072 + components: + - type: Transform + pos: -7.5,50.5 + parent: 2 + - uid: 3073 + components: + - type: Transform + pos: -7.5,52.5 + parent: 2 + - uid: 3074 + components: + - type: Transform + pos: -8.5,52.5 + parent: 2 + - uid: 3075 + components: + - type: Transform + pos: -6.5,52.5 + parent: 2 + - uid: 3076 + components: + - type: Transform + pos: -5.5,52.5 + parent: 2 + - uid: 3077 + components: + - type: Transform + pos: -6.5,53.5 + parent: 2 + - uid: 3078 + components: + - type: Transform + pos: -6.5,54.5 + parent: 2 + - uid: 3079 + components: + - type: Transform + pos: -6.5,55.5 + parent: 2 + - uid: 3080 + components: + - type: Transform + pos: -8.5,55.5 + parent: 2 + - uid: 3081 + components: + - type: Transform + pos: -7.5,55.5 + parent: 2 + - uid: 3082 + components: + - type: Transform + pos: -6.5,55.5 + parent: 2 + - uid: 3083 + components: + - type: Transform + pos: -5.5,55.5 + parent: 2 + - uid: 3084 + components: + - type: Transform + pos: -4.5,55.5 + parent: 2 + - uid: 3085 + components: + - type: Transform + pos: -3.5,55.5 + parent: 2 + - uid: 3086 + components: + - type: Transform + pos: -2.5,55.5 + parent: 2 + - uid: 3087 + components: + - type: Transform + pos: -3.5,54.5 + parent: 2 + - uid: 3088 + components: + - type: Transform + pos: -3.5,53.5 + parent: 2 + - uid: 3089 + components: + - type: Transform + pos: -3.5,52.5 + parent: 2 + - uid: 3090 + components: + - type: Transform + pos: -3.5,51.5 + parent: 2 + - uid: 3091 + components: + - type: Transform + pos: 2.5,46.5 + parent: 2 + - uid: 3092 + components: + - type: Transform + pos: 1.5,52.5 + parent: 2 + - uid: 3093 + components: + - type: Transform + pos: 1.5,51.5 + parent: 2 + - uid: 3094 + components: + - type: Transform + pos: 1.5,50.5 + parent: 2 + - uid: 3095 + components: + - type: Transform + pos: 1.5,49.5 + parent: 2 + - uid: 3096 + components: + - type: Transform + pos: 1.5,48.5 + parent: 2 + - uid: 3097 + components: + - type: Transform + pos: 1.5,47.5 + parent: 2 + - uid: 3098 + components: + - type: Transform + pos: 1.5,46.5 + parent: 2 + - uid: 3099 + components: + - type: Transform + pos: 1.5,45.5 + parent: 2 + - uid: 3100 + components: + - type: Transform + pos: 1.5,44.5 + parent: 2 + - uid: 3101 + components: + - type: Transform + pos: 1.5,42.5 + parent: 2 + - uid: 3102 + components: + - type: Transform + pos: 1.5,43.5 + parent: 2 + - uid: 3103 + components: + - type: Transform + pos: 1.5,41.5 + parent: 2 + - uid: 3104 + components: + - type: Transform + pos: 0.5,41.5 + parent: 2 + - uid: 3105 + components: + - type: Transform + pos: -1.5,41.5 + parent: 2 + - uid: 3106 + components: + - type: Transform + pos: 4.5,50.5 + parent: 2 + - uid: 3107 + components: + - type: Transform + pos: 1.5,41.5 + parent: 2 + - uid: 3108 + components: + - type: Transform + pos: 0.5,54.5 + parent: 2 + - uid: 3109 + components: + - type: Transform + pos: 29.5,40.5 + parent: 2 + - uid: 3110 + components: + - type: Transform + pos: 28.5,36.5 + parent: 2 + - uid: 3111 + components: + - type: Transform + pos: 29.5,36.5 + parent: 2 + - uid: 3112 + components: + - type: Transform + pos: 29.5,34.5 + parent: 2 + - uid: 3113 + components: + - type: Transform + pos: -0.5,54.5 + parent: 2 + - uid: 3114 + components: + - type: Transform + pos: 5.5,25.5 + parent: 2 + - uid: 3115 + components: + - type: Transform + pos: 4.5,26.5 + parent: 2 + - uid: 3116 + components: + - type: Transform + pos: 6.5,26.5 + parent: 2 + - uid: 3117 + components: + - type: Transform + pos: -35.5,5.5 + parent: 2 + - uid: 3118 + components: + - type: Transform + pos: 3.5,46.5 + parent: 2 + - uid: 3119 + components: + - type: Transform + pos: 5.5,24.5 + parent: 2 + - uid: 3120 + components: + - type: Transform + pos: 9.5,29.5 + parent: 2 + - uid: 3121 + components: + - type: Transform + pos: 8.5,29.5 + parent: 2 + - uid: 3122 + components: + - type: Transform + pos: 7.5,29.5 + parent: 2 + - uid: 3123 + components: + - type: Transform + pos: 6.5,29.5 + parent: 2 + - uid: 3124 + components: + - type: Transform + pos: 6.5,30.5 + parent: 2 + - uid: 3125 + components: + - type: Transform + pos: 4.5,29.5 + parent: 2 + - uid: 3126 + components: + - type: Transform + pos: 4.5,30.5 + parent: 2 + - uid: 3127 + components: + - type: Transform + pos: 4.5,31.5 + parent: 2 + - uid: 3128 + components: + - type: Transform + pos: 6.5,31.5 + parent: 2 + - uid: 3129 + components: + - type: Transform + pos: 5.5,30.5 + parent: 2 + - uid: 3130 + components: + - type: Transform + pos: 4.5,32.5 + parent: 2 + - uid: 3131 + components: + - type: Transform + pos: 6.5,31.5 + parent: 2 + - uid: 3132 + components: + - type: Transform + pos: 6.5,32.5 + parent: 2 + - uid: 3133 + components: + - type: Transform + pos: 7.5,32.5 + parent: 2 + - uid: 3134 + components: + - type: Transform + pos: 9.5,43.5 + parent: 2 + - uid: 3135 + components: + - type: Transform + pos: 8.5,43.5 + parent: 2 + - uid: 3136 + components: + - type: Transform + pos: 7.5,43.5 + parent: 2 + - uid: 3137 + components: + - type: Transform + pos: 6.5,43.5 + parent: 2 + - uid: 3138 + components: + - type: Transform + pos: 5.5,43.5 + parent: 2 + - uid: 3139 + components: + - type: Transform + pos: 4.5,43.5 + parent: 2 + - uid: 3140 + components: + - type: Transform + pos: 6.5,43.5 + parent: 2 + - uid: 3141 + components: + - type: Transform + pos: 6.5,42.5 + parent: 2 + - uid: 3142 + components: + - type: Transform + pos: 6.5,41.5 + parent: 2 + - uid: 3143 + components: + - type: Transform + pos: 6.5,40.5 + parent: 2 + - uid: 3144 + components: + - type: Transform + pos: 6.5,39.5 + parent: 2 + - uid: 3145 + components: + - type: Transform + pos: 6.5,38.5 + parent: 2 + - uid: 3146 + components: + - type: Transform + pos: 6.5,37.5 + parent: 2 + - uid: 3147 + components: + - type: Transform + pos: 7.5,37.5 + parent: 2 + - uid: 3148 + components: + - type: Transform + pos: 7.5,36.5 + parent: 2 + - uid: 3149 + components: + - type: Transform + pos: 7.5,35.5 + parent: 2 + - uid: 3150 + components: + - type: Transform + pos: 6.5,34.5 + parent: 2 + - uid: 3151 + components: + - type: Transform + pos: 5.5,34.5 + parent: 2 + - uid: 3152 + components: + - type: Transform + pos: -34.5,15.5 + parent: 2 + - uid: 3153 + components: + - type: Transform + pos: -30.5,15.5 + parent: 2 + - uid: 3154 + components: + - type: Transform + pos: -32.5,15.5 + parent: 2 + - uid: 3155 + components: + - type: Transform + pos: -32.5,16.5 + parent: 2 + - uid: 3156 + components: + - type: Transform + pos: -33.5,16.5 + parent: 2 + - uid: 3157 + components: + - type: Transform + pos: -34.5,16.5 + parent: 2 + - uid: 3158 + components: + - type: Transform + pos: -34.5,14.5 + parent: 2 + - uid: 3159 + components: + - type: Transform + pos: -33.5,14.5 + parent: 2 + - uid: 3160 + components: + - type: Transform + pos: -32.5,14.5 + parent: 2 + - uid: 3161 + components: + - type: Transform + pos: -35.5,15.5 + parent: 2 + - uid: 3162 + components: + - type: Transform + pos: -36.5,15.5 + parent: 2 + - uid: 3163 + components: + - type: Transform + pos: -43.5,18.5 + parent: 2 + - uid: 3164 + components: + - type: Transform + pos: -43.5,17.5 + parent: 2 + - uid: 3165 + components: + - type: Transform + pos: -42.5,17.5 + parent: 2 + - uid: 3166 + components: + - type: Transform + pos: -41.5,17.5 + parent: 2 + - uid: 3167 + components: + - type: Transform + pos: -40.5,17.5 + parent: 2 + - uid: 3168 + components: + - type: Transform + pos: -44.5,17.5 + parent: 2 + - uid: 3169 + components: + - type: Transform + pos: -42.5,16.5 + parent: 2 + - uid: 3170 + components: + - type: Transform + pos: -42.5,15.5 + parent: 2 + - uid: 3171 + components: + - type: Transform + pos: -42.5,14.5 + parent: 2 + - uid: 3172 + components: + - type: Transform + pos: -44.5,14.5 + parent: 2 + - uid: 3173 + components: + - type: Transform + pos: -43.5,14.5 + parent: 2 + - uid: 3174 + components: + - type: Transform + pos: -42.5,14.5 + parent: 2 + - uid: 3175 + components: + - type: Transform + pos: -41.5,14.5 + parent: 2 + - uid: 3176 + components: + - type: Transform + pos: -40.5,14.5 + parent: 2 + - uid: 3177 + components: + - type: Transform + pos: -5.5,83.5 + parent: 2 + - uid: 3178 + components: + - type: Transform + pos: -4.5,75.5 + parent: 2 + - uid: 3179 + components: + - type: Transform + pos: -4.5,73.5 + parent: 2 + - uid: 3180 + components: + - type: Transform + pos: -4.5,74.5 + parent: 2 + - uid: 3181 + components: + - type: Transform + pos: -4.5,75.5 + parent: 2 + - uid: 3182 + components: + - type: Transform + pos: -4.5,76.5 + parent: 2 + - uid: 3183 + components: + - type: Transform + pos: -4.5,77.5 + parent: 2 + - uid: 3184 + components: + - type: Transform + pos: -4.5,78.5 + parent: 2 + - uid: 3185 + components: + - type: Transform + pos: -4.5,79.5 + parent: 2 + - uid: 3186 + components: + - type: Transform + pos: -4.5,80.5 + parent: 2 + - uid: 3187 + components: + - type: Transform + pos: -4.5,81.5 + parent: 2 + - uid: 3188 + components: + - type: Transform + pos: -4.5,77.5 + parent: 2 + - uid: 3189 + components: + - type: Transform + pos: -5.5,77.5 + parent: 2 + - uid: 3190 + components: + - type: Transform + pos: -6.5,77.5 + parent: 2 + - uid: 3191 + components: + - type: Transform + pos: -7.5,77.5 + parent: 2 + - uid: 3192 + components: + - type: Transform + pos: -8.5,77.5 + parent: 2 + - uid: 3193 + components: + - type: Transform + pos: -9.5,77.5 + parent: 2 + - uid: 3194 + components: + - type: Transform + pos: -10.5,77.5 + parent: 2 + - uid: 3195 + components: + - type: Transform + pos: -11.5,77.5 + parent: 2 + - uid: 3196 + components: + - type: Transform + pos: -4.5,73.5 + parent: 2 + - uid: 3197 + components: + - type: Transform + pos: -4.5,72.5 + parent: 2 + - uid: 3198 + components: + - type: Transform + pos: -4.5,71.5 + parent: 2 + - uid: 3199 + components: + - type: Transform + pos: -4.5,70.5 + parent: 2 + - uid: 3200 + components: + - type: Transform + pos: -4.5,70.5 + parent: 2 + - uid: 3201 + components: + - type: Transform + pos: -3.5,70.5 + parent: 2 + - uid: 3202 + components: + - type: Transform + pos: -2.5,70.5 + parent: 2 + - uid: 3203 + components: + - type: Transform + pos: -1.5,70.5 + parent: 2 + - uid: 3204 + components: + - type: Transform + pos: -0.5,70.5 + parent: 2 + - uid: 3205 + components: + - type: Transform + pos: 0.5,70.5 + parent: 2 + - uid: 3206 + components: + - type: Transform + pos: 1.5,70.5 + parent: 2 + - uid: 3207 + components: + - type: Transform + pos: 2.5,70.5 + parent: 2 + - uid: 3208 + components: + - type: Transform + pos: 3.5,70.5 + parent: 2 + - uid: 3209 + components: + - type: Transform + pos: 4.5,70.5 + parent: 2 + - uid: 3210 + components: + - type: Transform + pos: 5.5,70.5 + parent: 2 + - uid: 3211 + components: + - type: Transform + pos: 6.5,70.5 + parent: 2 + - uid: 3212 + components: + - type: Transform + pos: 7.5,70.5 + parent: 2 + - uid: 3213 + components: + - type: Transform + pos: -5.5,71.5 + parent: 2 + - uid: 3214 + components: + - type: Transform + pos: -6.5,71.5 + parent: 2 + - uid: 3215 + components: + - type: Transform + pos: 1.5,71.5 + parent: 2 + - uid: 3216 + components: + - type: Transform + pos: 7.5,71.5 + parent: 2 + - uid: 3217 + components: + - type: Transform + pos: 7.5,72.5 + parent: 2 + - uid: 3218 + components: + - type: Transform + pos: 6.5,72.5 + parent: 2 + - uid: 3219 + components: + - type: Transform + pos: 8.5,72.5 + parent: 2 + - uid: 3220 + components: + - type: Transform + pos: 7.5,73.5 + parent: 2 + - uid: 3221 + components: + - type: Transform + pos: 7.5,74.5 + parent: 2 + - uid: 3222 + components: + - type: Transform + pos: 7.5,75.5 + parent: 2 + - uid: 3223 + components: + - type: Transform + pos: 7.5,76.5 + parent: 2 + - uid: 3224 + components: + - type: Transform + pos: 7.5,77.5 + parent: 2 + - uid: 3225 + components: + - type: Transform + pos: 7.5,78.5 + parent: 2 + - uid: 3226 + components: + - type: Transform + pos: 7.5,79.5 + parent: 2 + - uid: 3227 + components: + - type: Transform + pos: 7.5,80.5 + parent: 2 + - uid: 3228 + components: + - type: Transform + pos: 7.5,82.5 + parent: 2 + - uid: 3229 + components: + - type: Transform + pos: 7.5,83.5 + parent: 2 + - uid: 3230 + components: + - type: Transform + pos: 7.5,84.5 + parent: 2 + - uid: 3231 + components: + - type: Transform + pos: 7.5,84.5 + parent: 2 + - uid: 3232 + components: + - type: Transform + pos: 6.5,84.5 + parent: 2 + - uid: 3233 + components: + - type: Transform + pos: 5.5,84.5 + parent: 2 + - uid: 3234 + components: + - type: Transform + pos: 4.5,84.5 + parent: 2 + - uid: 3235 + components: + - type: Transform + pos: 3.5,84.5 + parent: 2 + - uid: 3236 + components: + - type: Transform + pos: 2.5,84.5 + parent: 2 + - uid: 3237 + components: + - type: Transform + pos: 1.5,84.5 + parent: 2 + - uid: 3238 + components: + - type: Transform + pos: 0.5,84.5 + parent: 2 + - uid: 3239 + components: + - type: Transform + pos: -0.5,84.5 + parent: 2 + - uid: 3240 + components: + - type: Transform + pos: -1.5,84.5 + parent: 2 + - uid: 3241 + components: + - type: Transform + pos: -2.5,84.5 + parent: 2 + - uid: 3242 + components: + - type: Transform + pos: -3.5,84.5 + parent: 2 + - uid: 3243 + components: + - type: Transform + pos: -4.5,84.5 + parent: 2 + - uid: 3244 + components: + - type: Transform + pos: 1.5,84.5 + parent: 2 + - uid: 3245 + components: + - type: Transform + pos: 1.5,83.5 + parent: 2 + - uid: 3246 + components: + - type: Transform + pos: 1.5,82.5 + parent: 2 + - uid: 3247 + components: + - type: Transform + pos: 1.5,81.5 + parent: 2 + - uid: 3248 + components: + - type: Transform + pos: 1.5,80.5 + parent: 2 + - uid: 3249 + components: + - type: Transform + pos: 1.5,79.5 + parent: 2 + - uid: 3250 + components: + - type: Transform + pos: 1.5,78.5 + parent: 2 + - uid: 3251 + components: + - type: Transform + pos: 1.5,77.5 + parent: 2 + - uid: 3252 + components: + - type: Transform + pos: 1.5,76.5 + parent: 2 + - uid: 3253 + components: + - type: Transform + pos: -1.5,77.5 + parent: 2 + - uid: 3254 + components: + - type: Transform + pos: -0.5,77.5 + parent: 2 + - uid: 3255 + components: + - type: Transform + pos: 0.5,77.5 + parent: 2 + - uid: 3256 + components: + - type: Transform + pos: 1.5,77.5 + parent: 2 + - uid: 3257 + components: + - type: Transform + pos: 2.5,77.5 + parent: 2 + - uid: 3258 + components: + - type: Transform + pos: 3.5,77.5 + parent: 2 + - uid: 3259 + components: + - type: Transform + pos: 4.5,77.5 + parent: 2 + - uid: 3260 + components: + - type: Transform + pos: 4.5,74.5 + parent: 2 + - uid: 3261 + components: + - type: Transform + pos: 4.5,75.5 + parent: 2 + - uid: 3262 + components: + - type: Transform + pos: 4.5,76.5 + parent: 2 + - uid: 3263 + components: + - type: Transform + pos: 4.5,77.5 + parent: 2 + - uid: 3264 + components: + - type: Transform + pos: 4.5,78.5 + parent: 2 + - uid: 3265 + components: + - type: Transform + pos: 4.5,79.5 + parent: 2 + - uid: 3266 + components: + - type: Transform + pos: 4.5,80.5 + parent: 2 + - uid: 3267 + components: + - type: Transform + pos: -1.5,80.5 + parent: 2 + - uid: 3268 + components: + - type: Transform + pos: -1.5,79.5 + parent: 2 + - uid: 3269 + components: + - type: Transform + pos: -1.5,78.5 + parent: 2 + - uid: 3270 + components: + - type: Transform + pos: -1.5,77.5 + parent: 2 + - uid: 3271 + components: + - type: Transform + pos: -1.5,76.5 + parent: 2 + - uid: 3272 + components: + - type: Transform + pos: -1.5,75.5 + parent: 2 + - uid: 3273 + components: + - type: Transform + pos: -1.5,74.5 + parent: 2 + - uid: 3274 + components: + - type: Transform + pos: -3.5,73.5 + parent: 2 + - uid: 3275 + components: + - type: Transform + pos: -1.5,80.5 + parent: 2 + - uid: 3276 + components: + - type: Transform + pos: -1.5,74.5 + parent: 2 + - uid: 3277 + components: + - type: Transform + pos: 4.5,74.5 + parent: 2 + - uid: 3278 + components: + - type: Transform + pos: 4.5,80.5 + parent: 2 + - uid: 3279 + components: + - type: Transform + pos: 1.5,75.5 + parent: 2 + - uid: 3280 + components: + - type: Transform + pos: 1.5,74.5 + parent: 2 + - uid: 3281 + components: + - type: Transform + pos: 0.5,73.5 + parent: 2 + - uid: 3282 + components: + - type: Transform + pos: 1.5,73.5 + parent: 2 + - uid: 3283 + components: + - type: Transform + pos: 2.5,73.5 + parent: 2 + - uid: 3284 + components: + - type: Transform + pos: 2.5,80.5 + parent: 2 + - uid: 3285 + components: + - type: Transform + pos: 2.5,81.5 + parent: 2 + - uid: 3286 + components: + - type: Transform + pos: 0.5,80.5 + parent: 2 + - uid: 3287 + components: + - type: Transform + pos: 0.5,81.5 + parent: 2 + - uid: 3288 + components: + - type: Transform + pos: -4.5,83.5 + parent: 2 + - uid: 3289 + components: + - type: Transform + pos: -4.5,82.5 + parent: 2 + - uid: 3290 + components: + - type: Transform + pos: -4.5,81.5 + parent: 2 + - uid: 3291 + components: + - type: Transform + pos: 1.5,85.5 + parent: 2 + - uid: 3292 + components: + - type: Transform + pos: 1.5,86.5 + parent: 2 + - uid: 3293 + components: + - type: Transform + pos: -0.5,86.5 + parent: 2 + - uid: 3294 + components: + - type: Transform + pos: 0.5,86.5 + parent: 2 + - uid: 3295 + components: + - type: Transform + pos: 1.5,86.5 + parent: 2 + - uid: 3296 + components: + - type: Transform + pos: 2.5,86.5 + parent: 2 + - uid: 3297 + components: + - type: Transform + pos: 3.5,86.5 + parent: 2 + - uid: 3298 + components: + - type: Transform + pos: -3.5,69.5 + parent: 2 + - uid: 3299 + components: + - type: Transform + pos: -3.5,68.5 + parent: 2 + - uid: 3300 + components: + - type: Transform + pos: -2.5,68.5 + parent: 2 + - uid: 3301 + components: + - type: Transform + pos: 5.5,69.5 + parent: 2 + - uid: 3302 + components: + - type: Transform + pos: 5.5,68.5 + parent: 2 + - uid: 3303 + components: + - type: Transform + pos: -26.5,18.5 + parent: 2 + - uid: 3304 + components: + - type: Transform + pos: -25.5,18.5 + parent: 2 + - uid: 3305 + components: + - type: Transform + pos: -24.5,18.5 + parent: 2 + - uid: 3306 + components: + - type: Transform + pos: -24.5,17.5 + parent: 2 + - uid: 3307 + components: + - type: Transform + pos: -24.5,16.5 + parent: 2 + - uid: 3308 + components: + - type: Transform + pos: -24.5,16.5 + parent: 2 + - uid: 3309 + components: + - type: Transform + pos: -25.5,16.5 + parent: 2 + - uid: 3310 + components: + - type: Transform + pos: -26.5,16.5 + parent: 2 + - uid: 3311 + components: + - type: Transform + pos: -27.5,16.5 + parent: 2 + - uid: 3312 + components: + - type: Transform + pos: -28.5,16.5 + parent: 2 + - uid: 3313 + components: + - type: Transform + pos: -23.5,16.5 + parent: 2 + - uid: 3314 + components: + - type: Transform + pos: -22.5,16.5 + parent: 2 + - uid: 3315 + components: + - type: Transform + pos: -22.5,15.5 + parent: 2 + - uid: 3316 + components: + - type: Transform + pos: -21.5,15.5 + parent: 2 + - uid: 3317 + components: + - type: Transform + pos: -20.5,15.5 + parent: 2 + - uid: 3318 + components: + - type: Transform + pos: -19.5,15.5 + parent: 2 + - uid: 3319 + components: + - type: Transform + pos: -18.5,15.5 + parent: 2 + - uid: 3320 + components: + - type: Transform + pos: -17.5,15.5 + parent: 2 + - uid: 3321 + components: + - type: Transform + pos: -16.5,15.5 + parent: 2 + - uid: 3322 + components: + - type: Transform + pos: -20.5,14.5 + parent: 2 + - uid: 3323 + components: + - type: Transform + pos: -24.5,19.5 + parent: 2 + - uid: 3324 + components: + - type: Transform + pos: -24.5,20.5 + parent: 2 + - uid: 3325 + components: + - type: Transform + pos: -24.5,20.5 + parent: 2 + - uid: 3326 + components: + - type: Transform + pos: -25.5,20.5 + parent: 2 + - uid: 3327 + components: + - type: Transform + pos: -26.5,20.5 + parent: 2 + - uid: 3328 + components: + - type: Transform + pos: -27.5,20.5 + parent: 2 + - uid: 3329 + components: + - type: Transform + pos: -28.5,20.5 + parent: 2 + - uid: 3330 + components: + - type: Transform + pos: -29.5,20.5 + parent: 2 + - uid: 3331 + components: + - type: Transform + pos: -30.5,20.5 + parent: 2 + - uid: 3332 + components: + - type: Transform + pos: -31.5,20.5 + parent: 2 + - uid: 3333 + components: + - type: Transform + pos: -32.5,20.5 + parent: 2 + - uid: 3334 + components: + - type: Transform + pos: -33.5,20.5 + parent: 2 + - uid: 3335 + components: + - type: Transform + pos: -26.5,29.5 + parent: 2 + - uid: 3336 + components: + - type: Transform + pos: -27.5,20.5 + parent: 2 + - uid: 3337 + components: + - type: Transform + pos: -27.5,21.5 + parent: 2 + - uid: 3338 + components: + - type: Transform + pos: -27.5,22.5 + parent: 2 + - uid: 3339 + components: + - type: Transform + pos: -27.5,23.5 + parent: 2 + - uid: 3340 + components: + - type: Transform + pos: -27.5,24.5 + parent: 2 + - uid: 3341 + components: + - type: Transform + pos: -27.5,25.5 + parent: 2 + - uid: 3342 + components: + - type: Transform + pos: -27.5,26.5 + parent: 2 + - uid: 3343 + components: + - type: Transform + pos: -27.5,27.5 + parent: 2 + - uid: 3344 + components: + - type: Transform + pos: -25.5,31.5 + parent: 2 + - uid: 3345 + components: + - type: Transform + pos: -25.5,30.5 + parent: 2 + - uid: 3346 + components: + - type: Transform + pos: -25.5,29.5 + parent: 2 + - uid: 3347 + components: + - type: Transform + pos: -26.5,29.5 + parent: 2 + - uid: 3348 + components: + - type: Transform + pos: -25.5,29.5 + parent: 2 + - uid: 3349 + components: + - type: Transform + pos: -24.5,29.5 + parent: 2 + - uid: 3350 + components: + - type: Transform + pos: -23.5,29.5 + parent: 2 + - uid: 3351 + components: + - type: Transform + pos: -27.5,29.5 + parent: 2 + - uid: 3352 + components: + - type: Transform + pos: -33.5,29.5 + parent: 2 + - uid: 3353 + components: + - type: Transform + pos: -32.5,29.5 + parent: 2 + - uid: 3354 + components: + - type: Transform + pos: -31.5,29.5 + parent: 2 + - uid: 3355 + components: + - type: Transform + pos: -30.5,29.5 + parent: 2 + - uid: 3356 + components: + - type: Transform + pos: -29.5,29.5 + parent: 2 + - uid: 3357 + components: + - type: Transform + pos: -28.5,29.5 + parent: 2 + - uid: 3358 + components: + - type: Transform + pos: -14.5,27.5 + parent: 2 + - uid: 3359 + components: + - type: Transform + pos: -23.5,28.5 + parent: 2 + - uid: 3360 + components: + - type: Transform + pos: -22.5,28.5 + parent: 2 + - uid: 3361 + components: + - type: Transform + pos: -21.5,28.5 + parent: 2 + - uid: 3362 + components: + - type: Transform + pos: -20.5,28.5 + parent: 2 + - uid: 3363 + components: + - type: Transform + pos: -19.5,28.5 + parent: 2 + - uid: 3364 + components: + - type: Transform + pos: -18.5,28.5 + parent: 2 + - uid: 3365 + components: + - type: Transform + pos: -17.5,28.5 + parent: 2 + - uid: 3366 + components: + - type: Transform + pos: -16.5,28.5 + parent: 2 + - uid: 3367 + components: + - type: Transform + pos: -15.5,28.5 + parent: 2 + - uid: 3368 + components: + - type: Transform + pos: -14.5,28.5 + parent: 2 + - uid: 3369 + components: + - type: Transform + pos: -13.5,28.5 + parent: 2 + - uid: 3370 + components: + - type: Transform + pos: -12.5,28.5 + parent: 2 + - uid: 3371 + components: + - type: Transform + pos: -11.5,28.5 + parent: 2 + - uid: 3372 + components: + - type: Transform + pos: -10.5,28.5 + parent: 2 + - uid: 3373 + components: + - type: Transform + pos: -9.5,28.5 + parent: 2 + - uid: 3374 + components: + - type: Transform + pos: -8.5,28.5 + parent: 2 + - uid: 3375 + components: + - type: Transform + pos: -7.5,28.5 + parent: 2 + - uid: 3376 + components: + - type: Transform + pos: -6.5,28.5 + parent: 2 + - uid: 3377 + components: + - type: Transform + pos: -5.5,28.5 + parent: 2 + - uid: 3378 + components: + - type: Transform + pos: -4.5,28.5 + parent: 2 + - uid: 3379 + components: + - type: Transform + pos: -3.5,28.5 + parent: 2 + - uid: 3380 + components: + - type: Transform + pos: -14.5,26.5 + parent: 2 + - uid: 3381 + components: + - type: Transform + pos: -14.5,25.5 + parent: 2 + - uid: 3382 + components: + - type: Transform + pos: -14.5,24.5 + parent: 2 + - uid: 3383 + components: + - type: Transform + pos: -14.5,23.5 + parent: 2 + - uid: 3384 + components: + - type: Transform + pos: -14.5,22.5 + parent: 2 + - uid: 3385 + components: + - type: Transform + pos: -14.5,21.5 + parent: 2 + - uid: 3386 + components: + - type: Transform + pos: -14.5,20.5 + parent: 2 + - uid: 3387 + components: + - type: Transform + pos: -14.5,19.5 + parent: 2 + - uid: 3388 + components: + - type: Transform + pos: -13.5,19.5 + parent: 2 + - uid: 3389 + components: + - type: Transform + pos: -12.5,19.5 + parent: 2 + - uid: 3390 + components: + - type: Transform + pos: -11.5,19.5 + parent: 2 + - uid: 3391 + components: + - type: Transform + pos: -10.5,19.5 + parent: 2 + - uid: 3392 + components: + - type: Transform + pos: -9.5,19.5 + parent: 2 + - uid: 3393 + components: + - type: Transform + pos: -8.5,19.5 + parent: 2 + - uid: 3394 + components: + - type: Transform + pos: -7.5,19.5 + parent: 2 + - uid: 3395 + components: + - type: Transform + pos: -6.5,19.5 + parent: 2 + - uid: 3396 + components: + - type: Transform + pos: -5.5,19.5 + parent: 2 + - uid: 3397 + components: + - type: Transform + pos: -4.5,19.5 + parent: 2 + - uid: 3398 + components: + - type: Transform + pos: -3.5,19.5 + parent: 2 + - uid: 3399 + components: + - type: Transform + pos: -2.5,19.5 + parent: 2 + - uid: 3400 + components: + - type: Transform + pos: -1.5,19.5 + parent: 2 + - uid: 3401 + components: + - type: Transform + pos: -3.5,20.5 + parent: 2 + - uid: 3402 + components: + - type: Transform + pos: -11.5,20.5 + parent: 2 + - uid: 3403 + components: + - type: Transform + pos: -11.5,21.5 + parent: 2 + - uid: 3404 + components: + - type: Transform + pos: -12.5,21.5 + parent: 2 + - uid: 3405 + components: + - type: Transform + pos: -8.5,20.5 + parent: 2 + - uid: 3406 + components: + - type: Transform + pos: -8.5,21.5 + parent: 2 + - uid: 3407 + components: + - type: Transform + pos: -9.5,21.5 + parent: 2 + - uid: 3408 + components: + - type: Transform + pos: -6.5,20.5 + parent: 2 + - uid: 3409 + components: + - type: Transform + pos: -6.5,21.5 + parent: 2 + - uid: 3410 + components: + - type: Transform + pos: -5.5,21.5 + parent: 2 + - uid: 3411 + components: + - type: Transform + pos: -3.5,21.5 + parent: 2 + - uid: 3412 + components: + - type: Transform + pos: -2.5,21.5 + parent: 2 + - uid: 3413 + components: + - type: Transform + pos: -3.5,21.5 + parent: 2 + - uid: 3414 + components: + - type: Transform + pos: -2.5,21.5 + parent: 2 + - uid: 3415 + components: + - type: Transform + pos: -20.5,22.5 + parent: 2 + - uid: 3416 + components: + - type: Transform + pos: -20.5,23.5 + parent: 2 + - uid: 3417 + components: + - type: Transform + pos: -20.5,21.5 + parent: 2 + - uid: 3418 + components: + - type: Transform + pos: -20.5,20.5 + parent: 2 + - uid: 3419 + components: + - type: Transform + pos: -20.5,19.5 + parent: 2 + - uid: 3420 + components: + - type: Transform + pos: -20.5,18.5 + parent: 2 + - uid: 3421 + components: + - type: Transform + pos: -19.5,19.5 + parent: 2 + - uid: 3422 + components: + - type: Transform + pos: -18.5,19.5 + parent: 2 + - uid: 3423 + components: + - type: Transform + pos: -19.5,22.5 + parent: 2 + - uid: 3424 + components: + - type: Transform + pos: -18.5,22.5 + parent: 2 + - uid: 3425 + components: + - type: Transform + pos: -23.5,30.5 + parent: 2 + - uid: 3426 + components: + - type: Transform + pos: -23.5,31.5 + parent: 2 + - uid: 3427 + components: + - type: Transform + pos: -23.5,32.5 + parent: 2 + - uid: 3428 + components: + - type: Transform + pos: -23.5,33.5 + parent: 2 + - uid: 3429 + components: + - type: Transform + pos: -23.5,34.5 + parent: 2 + - uid: 3430 + components: + - type: Transform + pos: -23.5,35.5 + parent: 2 + - uid: 3431 + components: + - type: Transform + pos: -23.5,36.5 + parent: 2 + - uid: 3432 + components: + - type: Transform + pos: -16.5,10.5 + parent: 2 + - uid: 3433 + components: + - type: Transform + pos: -20.5,27.5 + parent: 2 + - uid: 3434 + components: + - type: Transform + pos: -20.5,26.5 + parent: 2 + - uid: 3435 + components: + - type: Transform + pos: -20.5,25.5 + parent: 2 + - uid: 3436 + components: + - type: Transform + pos: -19.5,25.5 + parent: 2 + - uid: 3437 + components: + - type: Transform + pos: -18.5,25.5 + parent: 2 + - uid: 3438 + components: + - type: Transform + pos: -21.5,25.5 + parent: 2 + - uid: 3439 + components: + - type: Transform + pos: -11.5,27.5 + parent: 2 + - uid: 3440 + components: + - type: Transform + pos: -11.5,26.5 + parent: 2 + - uid: 3441 + components: + - type: Transform + pos: -11.5,25.5 + parent: 2 + - uid: 3442 + components: + - type: Transform + pos: -11.5,24.5 + parent: 2 + - uid: 3443 + components: + - type: Transform + pos: -11.5,23.5 + parent: 2 + - uid: 3444 + components: + - type: Transform + pos: -2.5,29.5 + parent: 2 + - uid: 3445 + components: + - type: Transform + pos: -12.5,23.5 + parent: 2 + - uid: 3446 + components: + - type: Transform + pos: -7.5,27.5 + parent: 2 + - uid: 3447 + components: + - type: Transform + pos: -7.5,26.5 + parent: 2 + - uid: 3448 + components: + - type: Transform + pos: -7.5,25.5 + parent: 2 + - uid: 3449 + components: + - type: Transform + pos: -7.5,24.5 + parent: 2 + - uid: 3450 + components: + - type: Transform + pos: -7.5,23.5 + parent: 2 + - uid: 3451 + components: + - type: Transform + pos: -7.5,22.5 + parent: 2 + - uid: 3452 + components: + - type: Transform + pos: -9.5,23.5 + parent: 2 + - uid: 3453 + components: + - type: Transform + pos: -8.5,23.5 + parent: 2 + - uid: 3454 + components: + - type: Transform + pos: -7.5,23.5 + parent: 2 + - uid: 3455 + components: + - type: Transform + pos: -6.5,23.5 + parent: 2 + - uid: 3456 + components: + - type: Transform + pos: -5.5,23.5 + parent: 2 + - uid: 3457 + components: + - type: Transform + pos: -2.5,28.5 + parent: 2 + - uid: 3458 + components: + - type: Transform + pos: -2.5,27.5 + parent: 2 + - uid: 3459 + components: + - type: Transform + pos: -2.5,26.5 + parent: 2 + - uid: 3460 + components: + - type: Transform + pos: -2.5,25.5 + parent: 2 + - uid: 3461 + components: + - type: Transform + pos: -2.5,24.5 + parent: 2 + - uid: 3462 + components: + - type: Transform + pos: -2.5,23.5 + parent: 2 + - uid: 3463 + components: + - type: Transform + pos: -3.5,23.5 + parent: 2 + - uid: 3464 + components: + - type: Transform + pos: -2.5,30.5 + parent: 2 + - uid: 3465 + components: + - type: Transform + pos: -2.5,31.5 + parent: 2 + - uid: 3466 + components: + - type: Transform + pos: -2.5,32.5 + parent: 2 + - uid: 3467 + components: + - type: Transform + pos: -2.5,33.5 + parent: 2 + - uid: 3468 + components: + - type: Transform + pos: -2.5,34.5 + parent: 2 + - uid: 3469 + components: + - type: Transform + pos: -2.5,35.5 + parent: 2 + - uid: 3470 + components: + - type: Transform + pos: -2.5,36.5 + parent: 2 + - uid: 3471 + components: + - type: Transform + pos: -2.5,37.5 + parent: 2 + - uid: 3472 + components: + - type: Transform + pos: -2.5,38.5 + parent: 2 + - uid: 3473 + components: + - type: Transform + pos: -2.5,39.5 + parent: 2 + - uid: 3474 + components: + - type: Transform + pos: -3.5,39.5 + parent: 2 + - uid: 3475 + components: + - type: Transform + pos: -4.5,39.5 + parent: 2 + - uid: 3476 + components: + - type: Transform + pos: -5.5,39.5 + parent: 2 + - uid: 3477 + components: + - type: Transform + pos: -6.5,39.5 + parent: 2 + - uid: 3478 + components: + - type: Transform + pos: -6.5,38.5 + parent: 2 + - uid: 3479 + components: + - type: Transform + pos: -7.5,38.5 + parent: 2 + - uid: 3480 + components: + - type: Transform + pos: -6.5,37.5 + parent: 2 + - uid: 3481 + components: + - type: Transform + pos: -5.5,37.5 + parent: 2 + - uid: 3482 + components: + - type: Transform + pos: -4.5,37.5 + parent: 2 + - uid: 3483 + components: + - type: Transform + pos: -3.5,37.5 + parent: 2 + - uid: 3484 + components: + - type: Transform + pos: -2.5,37.5 + parent: 2 + - uid: 3485 + components: + - type: Transform + pos: -19.5,37.5 + parent: 2 + - uid: 3486 + components: + - type: Transform + pos: -19.5,36.5 + parent: 2 + - uid: 3487 + components: + - type: Transform + pos: -19.5,35.5 + parent: 2 + - uid: 3488 + components: + - type: Transform + pos: -19.5,34.5 + parent: 2 + - uid: 3489 + components: + - type: Transform + pos: -19.5,33.5 + parent: 2 + - uid: 3490 + components: + - type: Transform + pos: -19.5,32.5 + parent: 2 + - uid: 3491 + components: + - type: Transform + pos: -19.5,31.5 + parent: 2 + - uid: 3492 + components: + - type: Transform + pos: -19.5,30.5 + parent: 2 + - uid: 3493 + components: + - type: Transform + pos: -18.5,32.5 + parent: 2 + - uid: 3494 + components: + - type: Transform + pos: -17.5,32.5 + parent: 2 + - uid: 3495 + components: + - type: Transform + pos: -15.5,32.5 + parent: 2 + - uid: 3496 + components: + - type: Transform + pos: -16.5,32.5 + parent: 2 + - uid: 3497 + components: + - type: Transform + pos: -16.5,33.5 + parent: 2 + - uid: 3498 + components: + - type: Transform + pos: -16.5,34.5 + parent: 2 + - uid: 3499 + components: + - type: Transform + pos: -16.5,35.5 + parent: 2 + - uid: 3500 + components: + - type: Transform + pos: -16.5,36.5 + parent: 2 + - uid: 3501 + components: + - type: Transform + pos: -16.5,37.5 + parent: 2 + - uid: 3502 + components: + - type: Transform + pos: -16.5,38.5 + parent: 2 + - uid: 3503 + components: + - type: Transform + pos: -16.5,39.5 + parent: 2 + - uid: 3504 + components: + - type: Transform + pos: -18.5,39.5 + parent: 2 + - uid: 3505 + components: + - type: Transform + pos: -17.5,39.5 + parent: 2 + - uid: 3506 + components: + - type: Transform + pos: -16.5,39.5 + parent: 2 + - uid: 3507 + components: + - type: Transform + pos: -15.5,39.5 + parent: 2 + - uid: 3508 + components: + - type: Transform + pos: -14.5,39.5 + parent: 2 + - uid: 3509 + components: + - type: Transform + pos: -13.5,39.5 + parent: 2 + - uid: 3510 + components: + - type: Transform + pos: -12.5,39.5 + parent: 2 + - uid: 3511 + components: + - type: Transform + pos: -11.5,39.5 + parent: 2 + - uid: 3512 + components: + - type: Transform + pos: -14.5,32.5 + parent: 2 + - uid: 3513 + components: + - type: Transform + pos: -13.5,32.5 + parent: 2 + - uid: 3514 + components: + - type: Transform + pos: -12.5,32.5 + parent: 2 + - uid: 3515 + components: + - type: Transform + pos: -11.5,32.5 + parent: 2 + - uid: 3516 + components: + - type: Transform + pos: -10.5,32.5 + parent: 2 + - uid: 3517 + components: + - type: Transform + pos: -9.5,32.5 + parent: 2 + - uid: 3518 + components: + - type: Transform + pos: -9.5,33.5 + parent: 2 + - uid: 3519 + components: + - type: Transform + pos: -8.5,33.5 + parent: 2 + - uid: 3520 + components: + - type: Transform + pos: -7.5,33.5 + parent: 2 + - uid: 3521 + components: + - type: Transform + pos: -6.5,33.5 + parent: 2 + - uid: 3522 + components: + - type: Transform + pos: -12.5,31.5 + parent: 2 + - uid: 3523 + components: + - type: Transform + pos: -12.5,31.5 + parent: 2 + - uid: 3524 + components: + - type: Transform + pos: -12.5,32.5 + parent: 2 + - uid: 3525 + components: + - type: Transform + pos: -12.5,33.5 + parent: 2 + - uid: 3526 + components: + - type: Transform + pos: -12.5,34.5 + parent: 2 + - uid: 3527 + components: + - type: Transform + pos: -12.5,35.5 + parent: 2 + - uid: 3528 + components: + - type: Transform + pos: -12.5,36.5 + parent: 2 + - uid: 3529 + components: + - type: Transform + pos: -9.5,32.5 + parent: 2 + - uid: 3530 + components: + - type: Transform + pos: -9.5,33.5 + parent: 2 + - uid: 3531 + components: + - type: Transform + pos: -9.5,34.5 + parent: 2 + - uid: 3532 + components: + - type: Transform + pos: -9.5,35.5 + parent: 2 + - uid: 3533 + components: + - type: Transform + pos: -9.5,36.5 + parent: 2 + - uid: 3534 + components: + - type: Transform + pos: -9.5,37.5 + parent: 2 + - uid: 3535 + components: + - type: Transform + pos: -9.5,38.5 + parent: 2 + - uid: 3536 + components: + - type: Transform + pos: -9.5,39.5 + parent: 2 + - uid: 3537 + components: + - type: Transform + pos: -9.5,40.5 + parent: 2 + - uid: 3538 + components: + - type: Transform + pos: -9.5,41.5 + parent: 2 + - uid: 3539 + components: + - type: Transform + pos: -9.5,42.5 + parent: 2 + - uid: 3540 + components: + - type: Transform + pos: -9.5,42.5 + parent: 2 + - uid: 3541 + components: + - type: Transform + pos: -9.5,43.5 + parent: 2 + - uid: 3542 + components: + - type: Transform + pos: -9.5,43.5 + parent: 2 + - uid: 3543 + components: + - type: Transform + pos: -10.5,43.5 + parent: 2 + - uid: 3544 + components: + - type: Transform + pos: -11.5,43.5 + parent: 2 + - uid: 3545 + components: + - type: Transform + pos: -12.5,43.5 + parent: 2 + - uid: 3546 + components: + - type: Transform + pos: -13.5,43.5 + parent: 2 + - uid: 3547 + components: + - type: Transform + pos: -30.5,40.5 + parent: 2 + - uid: 3548 + components: + - type: Transform + pos: -30.5,39.5 + parent: 2 + - uid: 3549 + components: + - type: Transform + pos: -30.5,38.5 + parent: 2 + - uid: 3550 + components: + - type: Transform + pos: -30.5,37.5 + parent: 2 + - uid: 3551 + components: + - type: Transform + pos: -30.5,41.5 + parent: 2 + - uid: 3552 + components: + - type: Transform + pos: -29.5,41.5 + parent: 2 + - uid: 3553 + components: + - type: Transform + pos: -29.5,38.5 + parent: 2 + - uid: 3554 + components: + - type: Transform + pos: -30.5,36.5 + parent: 2 + - uid: 3555 + components: + - type: Transform + pos: -30.5,35.5 + parent: 2 + - uid: 3556 + components: + - type: Transform + pos: -30.5,34.5 + parent: 2 + - uid: 3557 + components: + - type: Transform + pos: -29.5,34.5 + parent: 2 + - uid: 3558 + components: + - type: Transform + pos: -28.5,34.5 + parent: 2 + - uid: 3559 + components: + - type: Transform + pos: -27.5,34.5 + parent: 2 + - uid: 3560 + components: + - type: Transform + pos: -26.5,34.5 + parent: 2 + - uid: 3561 + components: + - type: Transform + pos: -29.5,33.5 + parent: 2 + - uid: 3562 + components: + - type: Transform + pos: -25.5,34.5 + parent: 2 + - uid: 3563 + components: + - type: Transform + pos: -27.5,35.5 + parent: 2 + - uid: 3564 + components: + - type: Transform + pos: -27.5,36.5 + parent: 2 + - uid: 3565 + components: + - type: Transform + pos: -26.5,36.5 + parent: 2 + - uid: 3566 + components: + - type: Transform + pos: -25.5,36.5 + parent: 2 + - uid: 3567 + components: + - type: Transform + pos: -10.5,11.5 + parent: 2 + - uid: 3568 + components: + - type: Transform + pos: -9.5,11.5 + parent: 2 + - uid: 3569 + components: + - type: Transform + pos: -21.5,41.5 + parent: 2 + - uid: 3570 + components: + - type: Transform + pos: -20.5,41.5 + parent: 2 + - uid: 3571 + components: + - type: Transform + pos: -22.5,41.5 + parent: 2 + - uid: 3572 + components: + - type: Transform + pos: -23.5,41.5 + parent: 2 + - uid: 3573 + components: + - type: Transform + pos: -24.5,41.5 + parent: 2 + - uid: 3574 + components: + - type: Transform + pos: -25.5,41.5 + parent: 2 + - uid: 3575 + components: + - type: Transform + pos: -36.5,25.5 + parent: 2 + - uid: 3576 + components: + - type: Transform + pos: -25.5,40.5 + parent: 2 + - uid: 3577 + components: + - type: Transform + pos: -25.5,39.5 + parent: 2 + - uid: 3578 + components: + - type: Transform + pos: -25.5,38.5 + parent: 2 + - uid: 3579 + components: + - type: Transform + pos: -25.5,38.5 + parent: 2 + - uid: 3580 + components: + - type: Transform + pos: -21.5,40.5 + parent: 2 + - uid: 3581 + components: + - type: Transform + pos: -21.5,39.5 + parent: 2 + - uid: 3582 + components: + - type: Transform + pos: -21.5,38.5 + parent: 2 + - uid: 3583 + components: + - type: Transform + pos: -23.5,38.5 + parent: 2 + - uid: 3584 + components: + - type: Transform + pos: -23.5,39.5 + parent: 2 + - uid: 3585 + components: + - type: Transform + pos: -23.5,40.5 + parent: 2 + - uid: 3586 + components: + - type: Transform + pos: -8.5,10.5 + parent: 2 + - uid: 3587 + components: + - type: Transform + pos: -23.5,42.5 + parent: 2 + - uid: 3588 + components: + - type: Transform + pos: -23.5,43.5 + parent: 2 + - uid: 3589 + components: + - type: Transform + pos: -26.5,44.5 + parent: 2 + - uid: 3590 + components: + - type: Transform + pos: -25.5,44.5 + parent: 2 + - uid: 3591 + components: + - type: Transform + pos: -24.5,44.5 + parent: 2 + - uid: 3592 + components: + - type: Transform + pos: -23.5,44.5 + parent: 2 + - uid: 3593 + components: + - type: Transform + pos: -22.5,44.5 + parent: 2 + - uid: 3594 + components: + - type: Transform + pos: -21.5,44.5 + parent: 2 + - uid: 3595 + components: + - type: Transform + pos: -20.5,44.5 + parent: 2 + - uid: 3596 + components: + - type: Transform + pos: -20.5,43.5 + parent: 2 + - uid: 3597 + components: + - type: Transform + pos: -20.5,45.5 + parent: 2 + - uid: 3598 + components: + - type: Transform + pos: -21.5,45.5 + parent: 2 + - uid: 3599 + components: + - type: Transform + pos: -21.5,46.5 + parent: 2 + - uid: 3600 + components: + - type: Transform + pos: -21.5,46.5 + parent: 2 + - uid: 3601 + components: + - type: Transform + pos: -22.5,46.5 + parent: 2 + - uid: 3602 + components: + - type: Transform + pos: -23.5,46.5 + parent: 2 + - uid: 3603 + components: + - type: Transform + pos: -24.5,46.5 + parent: 2 + - uid: 3604 + components: + - type: Transform + pos: -36.5,18.5 + parent: 2 + - uid: 3605 + components: + - type: Transform + pos: -36.5,19.5 + parent: 2 + - uid: 3606 + components: + - type: Transform + pos: -36.5,20.5 + parent: 2 + - uid: 3607 + components: + - type: Transform + pos: -36.5,21.5 + parent: 2 + - uid: 3608 + components: + - type: Transform + pos: -36.5,22.5 + parent: 2 + - uid: 3609 + components: + - type: Transform + pos: -36.5,23.5 + parent: 2 + - uid: 3610 + components: + - type: Transform + pos: -36.5,24.5 + parent: 2 + - uid: 3611 + components: + - type: Transform + pos: -35.5,24.5 + parent: 2 + - uid: 3612 + components: + - type: Transform + pos: -34.5,24.5 + parent: 2 + - uid: 3613 + components: + - type: Transform + pos: -33.5,24.5 + parent: 2 + - uid: 3614 + components: + - type: Transform + pos: -32.5,24.5 + parent: 2 + - uid: 3615 + components: + - type: Transform + pos: -31.5,24.5 + parent: 2 + - uid: 3616 + components: + - type: Transform + pos: -30.5,24.5 + parent: 2 + - uid: 3617 + components: + - type: Transform + pos: -29.5,24.5 + parent: 2 + - uid: 3618 + components: + - type: Transform + pos: -30.5,25.5 + parent: 2 + - uid: 3619 + components: + - type: Transform + pos: -36.5,20.5 + parent: 2 + - uid: 3620 + components: + - type: Transform + pos: -37.5,20.5 + parent: 2 + - uid: 3621 + components: + - type: Transform + pos: -38.5,20.5 + parent: 2 + - uid: 3622 + components: + - type: Transform + pos: -39.5,20.5 + parent: 2 + - uid: 3623 + components: + - type: Transform + pos: -40.5,20.5 + parent: 2 + - uid: 3624 + components: + - type: Transform + pos: -41.5,20.5 + parent: 2 + - uid: 3625 + components: + - type: Transform + pos: -42.5,20.5 + parent: 2 + - uid: 3626 + components: + - type: Transform + pos: -43.5,20.5 + parent: 2 + - uid: 3627 + components: + - type: Transform + pos: -39.5,21.5 + parent: 2 + - uid: 3628 + components: + - type: Transform + pos: -39.5,22.5 + parent: 2 + - uid: 3629 + components: + - type: Transform + pos: -40.5,22.5 + parent: 2 + - uid: 3630 + components: + - type: Transform + pos: -41.5,22.5 + parent: 2 + - uid: 3631 + components: + - type: Transform + pos: -42.5,22.5 + parent: 2 + - uid: 3632 + components: + - type: Transform + pos: -36.5,26.5 + parent: 2 + - uid: 3633 + components: + - type: Transform + pos: -36.5,27.5 + parent: 2 + - uid: 3634 + components: + - type: Transform + pos: -36.5,28.5 + parent: 2 + - uid: 3635 + components: + - type: Transform + pos: -36.5,29.5 + parent: 2 + - uid: 3636 + components: + - type: Transform + pos: -36.5,26.5 + parent: 2 + - uid: 3637 + components: + - type: Transform + pos: -37.5,26.5 + parent: 2 + - uid: 3638 + components: + - type: Transform + pos: -38.5,26.5 + parent: 2 + - uid: 3639 + components: + - type: Transform + pos: -39.5,26.5 + parent: 2 + - uid: 3640 + components: + - type: Transform + pos: -40.5,26.5 + parent: 2 + - uid: 3641 + components: + - type: Transform + pos: -41.5,26.5 + parent: 2 + - uid: 3642 + components: + - type: Transform + pos: -42.5,26.5 + parent: 2 + - uid: 3643 + components: + - type: Transform + pos: -40.5,25.5 + parent: 2 + - uid: 3644 + components: + - type: Transform + pos: -40.5,24.5 + parent: 2 + - uid: 3645 + components: + - type: Transform + pos: -40.5,23.5 + parent: 2 + - uid: 3646 + components: + - type: Transform + pos: -40.5,25.5 + parent: 2 + - uid: 3647 + components: + - type: Transform + pos: -37.5,29.5 + parent: 2 + - uid: 3648 + components: + - type: Transform + pos: -38.5,29.5 + parent: 2 + - uid: 3649 + components: + - type: Transform + pos: -39.5,29.5 + parent: 2 + - uid: 3650 + components: + - type: Transform + pos: -40.5,29.5 + parent: 2 + - uid: 3651 + components: + - type: Transform + pos: -41.5,29.5 + parent: 2 + - uid: 3652 + components: + - type: Transform + pos: -42.5,29.5 + parent: 2 + - uid: 3653 + components: + - type: Transform + pos: -39.5,30.5 + parent: 2 + - uid: 3654 + components: + - type: Transform + pos: -39.5,31.5 + parent: 2 + - uid: 3655 + components: + - type: Transform + pos: -39.5,32.5 + parent: 2 + - uid: 3656 + components: + - type: Transform + pos: -39.5,33.5 + parent: 2 + - uid: 3657 + components: + - type: Transform + pos: -39.5,34.5 + parent: 2 + - uid: 3658 + components: + - type: Transform + pos: -39.5,35.5 + parent: 2 + - uid: 3659 + components: + - type: Transform + pos: -39.5,36.5 + parent: 2 + - uid: 3660 + components: + - type: Transform + pos: -42.5,35.5 + parent: 2 + - uid: 3661 + components: + - type: Transform + pos: -41.5,35.5 + parent: 2 + - uid: 3662 + components: + - type: Transform + pos: -40.5,35.5 + parent: 2 + - uid: 3663 + components: + - type: Transform + pos: -39.5,35.5 + parent: 2 + - uid: 3664 + components: + - type: Transform + pos: -38.5,35.5 + parent: 2 + - uid: 3665 + components: + - type: Transform + pos: -37.5,35.5 + parent: 2 + - uid: 3666 + components: + - type: Transform + pos: -36.5,35.5 + parent: 2 + - uid: 3667 + components: + - type: Transform + pos: -35.5,35.5 + parent: 2 + - uid: 3668 + components: + - type: Transform + pos: -34.5,35.5 + parent: 2 + - uid: 3669 + components: + - type: Transform + pos: -33.5,35.5 + parent: 2 + - uid: 3670 + components: + - type: Transform + pos: -32.5,35.5 + parent: 2 + - uid: 3671 + components: + - type: Transform + pos: -42.5,32.5 + parent: 2 + - uid: 3672 + components: + - type: Transform + pos: -41.5,32.5 + parent: 2 + - uid: 3673 + components: + - type: Transform + pos: -40.5,32.5 + parent: 2 + - uid: 3674 + components: + - type: Transform + pos: -39.5,32.5 + parent: 2 + - uid: 3675 + components: + - type: Transform + pos: -38.5,32.5 + parent: 2 + - uid: 3676 + components: + - type: Transform + pos: -37.5,32.5 + parent: 2 + - uid: 3677 + components: + - type: Transform + pos: -36.5,32.5 + parent: 2 + - uid: 3678 + components: + - type: Transform + pos: -35.5,32.5 + parent: 2 + - uid: 3679 + components: + - type: Transform + pos: -34.5,32.5 + parent: 2 + - uid: 3680 + components: + - type: Transform + pos: -33.5,32.5 + parent: 2 + - uid: 3681 + components: + - type: Transform + pos: -32.5,32.5 + parent: 2 + - uid: 3682 + components: + - type: Transform + pos: -42.5,36.5 + parent: 2 + - uid: 3683 + components: + - type: Transform + pos: -36.5,36.5 + parent: 2 + - uid: 3684 + components: + - type: Transform + pos: -36.5,37.5 + parent: 2 + - uid: 3685 + components: + - type: Transform + pos: -36.5,38.5 + parent: 2 + - uid: 3686 + components: + - type: Transform + pos: -36.5,38.5 + parent: 2 + - uid: 3687 + components: + - type: Transform + pos: -35.5,38.5 + parent: 2 + - uid: 3688 + components: + - type: Transform + pos: -34.5,38.5 + parent: 2 + - uid: 3689 + components: + - type: Transform + pos: -33.5,38.5 + parent: 2 + - uid: 3690 + components: + - type: Transform + pos: -32.5,38.5 + parent: 2 + - uid: 3691 + components: + - type: Transform + pos: -23.5,27.5 + parent: 2 + - uid: 3692 + components: + - type: Transform + pos: -23.5,26.5 + parent: 2 + - uid: 3693 + components: + - type: Transform + pos: -9.5,10.5 + parent: 2 + - uid: 3694 + components: + - type: Transform + pos: -10.5,10.5 + parent: 2 + - uid: 3695 + components: + - type: Transform + pos: -11.5,10.5 + parent: 2 + - uid: 3696 + components: + - type: Transform + pos: -11.5,9.5 + parent: 2 + - uid: 3697 + components: + - type: Transform + pos: -11.5,8.5 + parent: 2 + - uid: 3698 + components: + - type: Transform + pos: -10.5,8.5 + parent: 2 + - uid: 3699 + components: + - type: Transform + pos: -9.5,8.5 + parent: 2 + - uid: 3700 + components: + - type: Transform + pos: -8.5,8.5 + parent: 2 + - uid: 3701 + components: + - type: Transform + pos: -13.5,9.5 + parent: 2 + - uid: 3702 + components: + - type: Transform + pos: -11.5,11.5 + parent: 2 + - uid: 3703 + components: + - type: Transform + pos: -12.5,11.5 + parent: 2 + - uid: 3704 + components: + - type: Transform + pos: -13.5,11.5 + parent: 2 + - uid: 3705 + components: + - type: Transform + pos: -14.5,11.5 + parent: 2 + - uid: 3706 + components: + - type: Transform + pos: -15.5,11.5 + parent: 2 + - uid: 3707 + components: + - type: Transform + pos: -16.5,11.5 + parent: 2 + - uid: 3708 + components: + - type: Transform + pos: -17.5,11.5 + parent: 2 + - uid: 3709 + components: + - type: Transform + pos: -11.5,11.5 + parent: 2 + - uid: 3710 + components: + - type: Transform + pos: -11.5,12.5 + parent: 2 + - uid: 3711 + components: + - type: Transform + pos: -11.5,13.5 + parent: 2 + - uid: 3712 + components: + - type: Transform + pos: -11.5,14.5 + parent: 2 + - uid: 3713 + components: + - type: Transform + pos: -11.5,15.5 + parent: 2 + - uid: 3714 + components: + - type: Transform + pos: -14.5,15.5 + parent: 2 + - uid: 3715 + components: + - type: Transform + pos: -13.5,15.5 + parent: 2 + - uid: 3716 + components: + - type: Transform + pos: -12.5,15.5 + parent: 2 + - uid: 3717 + components: + - type: Transform + pos: -11.5,15.5 + parent: 2 + - uid: 3718 + components: + - type: Transform + pos: -10.5,15.5 + parent: 2 + - uid: 3719 + components: + - type: Transform + pos: -9.5,15.5 + parent: 2 + - uid: 3720 + components: + - type: Transform + pos: -8.5,15.5 + parent: 2 + - uid: 3721 + components: + - type: Transform + pos: -7.5,15.5 + parent: 2 + - uid: 3722 + components: + - type: Transform + pos: -6.5,15.5 + parent: 2 + - uid: 3723 + components: + - type: Transform + pos: -5.5,15.5 + parent: 2 + - uid: 3724 + components: + - type: Transform + pos: -4.5,15.5 + parent: 2 + - uid: 3725 + components: + - type: Transform + pos: -3.5,15.5 + parent: 2 + - uid: 3726 + components: + - type: Transform + pos: -2.5,15.5 + parent: 2 + - uid: 3727 + components: + - type: Transform + pos: -4.5,14.5 + parent: 2 + - uid: 3728 + components: + - type: Transform + pos: -4.5,13.5 + parent: 2 + - uid: 3729 + components: + - type: Transform + pos: -3.5,13.5 + parent: 2 + - uid: 3730 + components: + - type: Transform + pos: -2.5,13.5 + parent: 2 + - uid: 3731 + components: + - type: Transform + pos: -4.5,14.5 + parent: 2 + - uid: 3732 + components: + - type: Transform + pos: -20.5,13.5 + parent: 2 + - uid: 3733 + components: + - type: Transform + pos: -20.5,12.5 + parent: 2 + - uid: 3734 + components: + - type: Transform + pos: -20.5,11.5 + parent: 2 + - uid: 3735 + components: + - type: Transform + pos: -20.5,10.5 + parent: 2 + - uid: 3736 + components: + - type: Transform + pos: -20.5,9.5 + parent: 2 + - uid: 3737 + components: + - type: Transform + pos: -20.5,8.5 + parent: 2 + - uid: 3738 + components: + - type: Transform + pos: -20.5,7.5 + parent: 2 + - uid: 3739 + components: + - type: Transform + pos: -20.5,6.5 + parent: 2 + - uid: 3740 + components: + - type: Transform + pos: -20.5,5.5 + parent: 2 + - uid: 3741 + components: + - type: Transform + pos: -19.5,6.5 + parent: 2 + - uid: 3742 + components: + - type: Transform + pos: -18.5,6.5 + parent: 2 + - uid: 3743 + components: + - type: Transform + pos: -17.5,6.5 + parent: 2 + - uid: 3744 + components: + - type: Transform + pos: -16.5,6.5 + parent: 2 + - uid: 3745 + components: + - type: Transform + pos: -21.5,11.5 + parent: 2 + - uid: 3746 + components: + - type: Transform + pos: -22.5,11.5 + parent: 2 + - uid: 3747 + components: + - type: Transform + pos: 35.5,-38.5 + parent: 2 + - uid: 3748 + components: + - type: Transform + pos: 38.5,-38.5 + parent: 2 + - uid: 3749 + components: + - type: Transform + pos: 39.5,-38.5 + parent: 2 + - uid: 3750 + components: + - type: Transform + pos: 40.5,-38.5 + parent: 2 + - uid: 3751 + components: + - type: Transform + pos: 41.5,-38.5 + parent: 2 + - uid: 3752 + components: + - type: Transform + pos: 42.5,-38.5 + parent: 2 + - uid: 3753 + components: + - type: Transform + pos: 43.5,-38.5 + parent: 2 + - uid: 3754 + components: + - type: Transform + pos: 44.5,-38.5 + parent: 2 + - uid: 3755 + components: + - type: Transform + pos: 45.5,-38.5 + parent: 2 + - uid: 3756 + components: + - type: Transform + pos: 46.5,-38.5 + parent: 2 + - uid: 3757 + components: + - type: Transform + pos: 40.5,-39.5 + parent: 2 + - uid: 3758 + components: + - type: Transform + pos: 46.5,-39.5 + parent: 2 + - uid: 3759 + components: + - type: Transform + pos: 46.5,-37.5 + parent: 2 + - uid: 3760 + components: + - type: Transform + pos: 39.5,-37.5 + parent: 2 + - uid: 3761 + components: + - type: Transform + pos: 44.5,5.5 + parent: 2 + - uid: 3762 + components: + - type: Transform + pos: 43.5,5.5 + parent: 2 + - uid: 3763 + components: + - type: Transform + pos: 42.5,5.5 + parent: 2 + - uid: 3764 + components: + - type: Transform + pos: 41.5,5.5 + parent: 2 + - uid: 3765 + components: + - type: Transform + pos: 40.5,5.5 + parent: 2 + - uid: 3766 + components: + - type: Transform + pos: 39.5,5.5 + parent: 2 + - uid: 3767 + components: + - type: Transform + pos: 38.5,5.5 + parent: 2 + - uid: 3768 + components: + - type: Transform + pos: 37.5,5.5 + parent: 2 + - uid: 3769 + components: + - type: Transform + pos: 39.5,-0.5 + parent: 2 + - uid: 3770 + components: + - type: Transform + pos: 39.5,0.5 + parent: 2 + - uid: 3771 + components: + - type: Transform + pos: 39.5,1.5 + parent: 2 + - uid: 3772 + components: + - type: Transform + pos: 39.5,2.5 + parent: 2 + - uid: 3773 + components: + - type: Transform + pos: 39.5,3.5 + parent: 2 + - uid: 3774 + components: + - type: Transform + pos: 39.5,4.5 + parent: 2 + - uid: 3775 + components: + - type: Transform + pos: 39.5,5.5 + parent: 2 + - uid: 3776 + components: + - type: Transform + pos: 40.5,-0.5 + parent: 2 + - uid: 3777 + components: + - type: Transform + pos: 41.5,-0.5 + parent: 2 + - uid: 3778 + components: + - type: Transform + pos: 42.5,-0.5 + parent: 2 + - uid: 3779 + components: + - type: Transform + pos: 43.5,-0.5 + parent: 2 + - uid: 3780 + components: + - type: Transform + pos: 44.5,-0.5 + parent: 2 + - uid: 3781 + components: + - type: Transform + pos: 40.5,-0.5 + parent: 2 + - uid: 3782 + components: + - type: Transform + pos: 41.5,-0.5 + parent: 2 + - uid: 3783 + components: + - type: Transform + pos: 42.5,-0.5 + parent: 2 + - uid: 3784 + components: + - type: Transform + pos: 43.5,-0.5 + parent: 2 + - uid: 3785 + components: + - type: Transform + pos: 44.5,-0.5 + parent: 2 + - uid: 3786 + components: + - type: Transform + pos: 42.5,6.5 + parent: 2 + - uid: 3787 + components: + - type: Transform + pos: 42.5,7.5 + parent: 2 + - uid: 3788 + components: + - type: Transform + pos: 42.5,8.5 + parent: 2 + - uid: 3789 + components: + - type: Transform + pos: 42.5,9.5 + parent: 2 + - uid: 3790 + components: + - type: Transform + pos: 41.5,9.5 + parent: 2 + - uid: 3791 + components: + - type: Transform + pos: 41.5,10.5 + parent: 2 + - uid: 3792 + components: + - type: Transform + pos: 41.5,11.5 + parent: 2 + - uid: 3793 + components: + - type: Transform + pos: 41.5,12.5 + parent: 2 + - uid: 3794 + components: + - type: Transform + pos: 41.5,13.5 + parent: 2 + - uid: 3795 + components: + - type: Transform + pos: 41.5,14.5 + parent: 2 + - uid: 3796 + components: + - type: Transform + pos: 42.5,13.5 + parent: 2 + - uid: 3797 + components: + - type: Transform + pos: 40.5,9.5 + parent: 2 + - uid: 3798 + components: + - type: Transform + pos: 39.5,9.5 + parent: 2 + - uid: 3799 + components: + - type: Transform + pos: 38.5,9.5 + parent: 2 + - uid: 3800 + components: + - type: Transform + pos: 37.5,9.5 + parent: 2 + - uid: 3801 + components: + - type: Transform + pos: 37.5,6.5 + parent: 2 + - uid: 3802 + components: + - type: Transform + pos: 37.5,15.5 + parent: 2 + - uid: 3803 + components: + - type: Transform + pos: 38.5,15.5 + parent: 2 + - uid: 3804 + components: + - type: Transform + pos: 41.5,26.5 + parent: 2 + - uid: 3805 + components: + - type: Transform + pos: 41.5,27.5 + parent: 2 + - uid: 3806 + components: + - type: Transform + pos: 41.5,28.5 + parent: 2 + - uid: 3807 + components: + - type: Transform + pos: 41.5,28.5 + parent: 2 + - uid: 3808 + components: + - type: Transform + pos: 40.5,28.5 + parent: 2 + - uid: 3809 + components: + - type: Transform + pos: 39.5,28.5 + parent: 2 + - uid: 3810 + components: + - type: Transform + pos: 38.5,28.5 + parent: 2 + - uid: 3811 + components: + - type: Transform + pos: 37.5,28.5 + parent: 2 + - uid: 3812 + components: + - type: Transform + pos: 36.5,28.5 + parent: 2 + - uid: 3813 + components: + - type: Transform + pos: 35.5,28.5 + parent: 2 + - uid: 3814 + components: + - type: Transform + pos: 34.5,28.5 + parent: 2 + - uid: 3815 + components: + - type: Transform + pos: 33.5,28.5 + parent: 2 + - uid: 3816 + components: + - type: Transform + pos: 32.5,28.5 + parent: 2 + - uid: 3817 + components: + - type: Transform + pos: 31.5,28.5 + parent: 2 + - uid: 3818 + components: + - type: Transform + pos: 30.5,28.5 + parent: 2 + - uid: 3819 + components: + - type: Transform + pos: 29.5,28.5 + parent: 2 + - uid: 3820 + components: + - type: Transform + pos: 29.5,27.5 + parent: 2 + - uid: 3821 + components: + - type: Transform + pos: 38.5,27.5 + parent: 2 + - uid: 3822 + components: + - type: Transform + pos: 38.5,26.5 + parent: 2 + - uid: 3823 + components: + - type: Transform + pos: 38.5,25.5 + parent: 2 + - uid: 3824 + components: + - type: Transform + pos: 38.5,24.5 + parent: 2 + - uid: 3825 + components: + - type: Transform + pos: 38.5,23.5 + parent: 2 + - uid: 3826 + components: + - type: Transform + pos: 38.5,22.5 + parent: 2 + - uid: 3827 + components: + - type: Transform + pos: 38.5,21.5 + parent: 2 + - uid: 3828 + components: + - type: Transform + pos: 37.5,22.5 + parent: 2 + - uid: 3829 + components: + - type: Transform + pos: 42.5,28.5 + parent: 2 + - uid: 3830 + components: + - type: Transform + pos: 43.5,28.5 + parent: 2 + - uid: 3831 + components: + - type: Transform + pos: 43.5,28.5 + parent: 2 + - uid: 3832 + components: + - type: Transform + pos: 43.5,29.5 + parent: 2 + - uid: 3833 + components: + - type: Transform + pos: 43.5,30.5 + parent: 2 + - uid: 3834 + components: + - type: Transform + pos: 43.5,31.5 + parent: 2 + - uid: 3835 + components: + - type: Transform + pos: 43.5,32.5 + parent: 2 + - uid: 3836 + components: + - type: Transform + pos: 43.5,33.5 + parent: 2 + - uid: 3837 + components: + - type: Transform + pos: 43.5,34.5 + parent: 2 + - uid: 3838 + components: + - type: Transform + pos: 43.5,35.5 + parent: 2 + - uid: 3839 + components: + - type: Transform + pos: 43.5,36.5 + parent: 2 + - uid: 3840 + components: + - type: Transform + pos: 43.5,37.5 + parent: 2 + - uid: 3841 + components: + - type: Transform + pos: 43.5,38.5 + parent: 2 + - uid: 3842 + components: + - type: Transform + pos: 43.5,39.5 + parent: 2 + - uid: 3843 + components: + - type: Transform + pos: 43.5,40.5 + parent: 2 + - uid: 3844 + components: + - type: Transform + pos: 43.5,41.5 + parent: 2 + - uid: 3845 + components: + - type: Transform + pos: 43.5,42.5 + parent: 2 + - uid: 3846 + components: + - type: Transform + pos: 43.5,43.5 + parent: 2 + - uid: 3847 + components: + - type: Transform + pos: 43.5,44.5 + parent: 2 + - uid: 3848 + components: + - type: Transform + pos: 43.5,45.5 + parent: 2 + - uid: 3849 + components: + - type: Transform + pos: 43.5,46.5 + parent: 2 + - uid: 3850 + components: + - type: Transform + pos: 43.5,47.5 + parent: 2 + - uid: 3851 + components: + - type: Transform + pos: 43.5,48.5 + parent: 2 + - uid: 3852 + components: + - type: Transform + pos: 42.5,35.5 + parent: 2 + - uid: 3853 + components: + - type: Transform + pos: 41.5,35.5 + parent: 2 + - uid: 3854 + components: + - type: Transform + pos: 40.5,35.5 + parent: 2 + - uid: 3855 + components: + - type: Transform + pos: 39.5,35.5 + parent: 2 + - uid: 3856 + components: + - type: Transform + pos: 38.5,35.5 + parent: 2 + - uid: 3857 + components: + - type: Transform + pos: 37.5,35.5 + parent: 2 + - uid: 3858 + components: + - type: Transform + pos: 36.5,35.5 + parent: 2 + - uid: 3859 + components: + - type: Transform + pos: 35.5,35.5 + parent: 2 + - uid: 3860 + components: + - type: Transform + pos: 34.5,35.5 + parent: 2 + - uid: 3861 + components: + - type: Transform + pos: 33.5,35.5 + parent: 2 + - uid: 3862 + components: + - type: Transform + pos: 32.5,35.5 + parent: 2 + - uid: 3863 + components: + - type: Transform + pos: 33.5,32.5 + parent: 2 + - uid: 3864 + components: + - type: Transform + pos: 33.5,33.5 + parent: 2 + - uid: 3865 + components: + - type: Transform + pos: 33.5,34.5 + parent: 2 + - uid: 3866 + components: + - type: Transform + pos: 33.5,35.5 + parent: 2 + - uid: 3867 + components: + - type: Transform + pos: 33.5,36.5 + parent: 2 + - uid: 3868 + components: + - type: Transform + pos: 33.5,37.5 + parent: 2 + - uid: 3869 + components: + - type: Transform + pos: 33.5,38.5 + parent: 2 + - uid: 3870 + components: + - type: Transform + pos: 33.5,39.5 + parent: 2 + - uid: 3871 + components: + - type: Transform + pos: 33.5,40.5 + parent: 2 + - uid: 3872 + components: + - type: Transform + pos: 33.5,41.5 + parent: 2 + - uid: 3873 + components: + - type: Transform + pos: 38.5,32.5 + parent: 2 + - uid: 3874 + components: + - type: Transform + pos: 38.5,33.5 + parent: 2 + - uid: 3875 + components: + - type: Transform + pos: 38.5,34.5 + parent: 2 + - uid: 3876 + components: + - type: Transform + pos: 38.5,35.5 + parent: 2 + - uid: 3877 + components: + - type: Transform + pos: 38.5,36.5 + parent: 2 + - uid: 3878 + components: + - type: Transform + pos: 38.5,37.5 + parent: 2 + - uid: 3879 + components: + - type: Transform + pos: 38.5,38.5 + parent: 2 + - uid: 3880 + components: + - type: Transform + pos: 38.5,39.5 + parent: 2 + - uid: 3881 + components: + - type: Transform + pos: 38.5,40.5 + parent: 2 + - uid: 3882 + components: + - type: Transform + pos: 38.5,41.5 + parent: 2 + - uid: 3883 + components: + - type: Transform + pos: 18.5,37.5 + parent: 2 + - uid: 3884 + components: + - type: Transform + pos: 19.5,37.5 + parent: 2 + - uid: 3885 + components: + - type: Transform + pos: 29.5,34.5 + parent: 2 + - uid: 3886 + components: + - type: Transform + pos: 27.5,34.5 + parent: 2 + - uid: 3887 + components: + - type: Transform + pos: 20.5,36.5 + parent: 2 + - uid: 3888 + components: + - type: Transform + pos: 20.5,34.5 + parent: 2 + - uid: 3889 + components: + - type: Transform + pos: 20.5,33.5 + parent: 2 + - uid: 3890 + components: + - type: Transform + pos: 20.5,32.5 + parent: 2 + - uid: 3891 + components: + - type: Transform + pos: 20.5,31.5 + parent: 2 + - uid: 3892 + components: + - type: Transform + pos: 20.5,30.5 + parent: 2 + - uid: 3893 + components: + - type: Transform + pos: 20.5,29.5 + parent: 2 + - uid: 3894 + components: + - type: Transform + pos: 17.5,31.5 + parent: 2 + - uid: 3895 + components: + - type: Transform + pos: 18.5,31.5 + parent: 2 + - uid: 3896 + components: + - type: Transform + pos: 19.5,31.5 + parent: 2 + - uid: 3897 + components: + - type: Transform + pos: 29.5,36.5 + parent: 2 + - uid: 3898 + components: + - type: Transform + pos: 21.5,31.5 + parent: 2 + - uid: 3899 + components: + - type: Transform + pos: 22.5,31.5 + parent: 2 + - uid: 3900 + components: + - type: Transform + pos: 23.5,31.5 + parent: 2 + - uid: 3901 + components: + - type: Transform + pos: 24.5,31.5 + parent: 2 + - uid: 3902 + components: + - type: Transform + pos: 25.5,31.5 + parent: 2 + - uid: 3903 + components: + - type: Transform + pos: 24.5,29.5 + parent: 2 + - uid: 3904 + components: + - type: Transform + pos: 24.5,30.5 + parent: 2 + - uid: 3905 + components: + - type: Transform + pos: 24.5,31.5 + parent: 2 + - uid: 3906 + components: + - type: Transform + pos: 24.5,32.5 + parent: 2 + - uid: 3907 + components: + - type: Transform + pos: 24.5,33.5 + parent: 2 + - uid: 3908 + components: + - type: Transform + pos: 20.5,35.5 + parent: 2 + - uid: 3909 + components: + - type: Transform + pos: 19.5,35.5 + parent: 2 + - uid: 3910 + components: + - type: Transform + pos: 18.5,35.5 + parent: 2 + - uid: 3911 + components: + - type: Transform + pos: 17.5,35.5 + parent: 2 + - uid: 3912 + components: + - type: Transform + pos: 20.5,37.5 + parent: 2 + - uid: 3913 + components: + - type: Transform + pos: 20.5,38.5 + parent: 2 + - uid: 3914 + components: + - type: Transform + pos: 20.5,39.5 + parent: 2 + - uid: 3915 + components: + - type: Transform + pos: 19.5,39.5 + parent: 2 + - uid: 3916 + components: + - type: Transform + pos: 18.5,39.5 + parent: 2 + - uid: 3917 + components: + - type: Transform + pos: 17.5,39.5 + parent: 2 + - uid: 3918 + components: + - type: Transform + pos: 16.5,39.5 + parent: 2 + - uid: 3919 + components: + - type: Transform + pos: 17.5,38.5 + parent: 2 + - uid: 3920 + components: + - type: Transform + pos: 15.5,39.5 + parent: 2 + - uid: 3921 + components: + - type: Transform + pos: 14.5,39.5 + parent: 2 + - uid: 3922 + components: + - type: Transform + pos: 15.5,39.5 + parent: 2 + - uid: 3923 + components: + - type: Transform + pos: 14.5,38.5 + parent: 2 + - uid: 3924 + components: + - type: Transform + pos: 14.5,37.5 + parent: 2 + - uid: 3925 + components: + - type: Transform + pos: 14.5,36.5 + parent: 2 + - uid: 3926 + components: + - type: Transform + pos: 14.5,35.5 + parent: 2 + - uid: 3927 + components: + - type: Transform + pos: 15.5,40.5 + parent: 2 + - uid: 3928 + components: + - type: Transform + pos: 15.5,41.5 + parent: 2 + - uid: 3929 + components: + - type: Transform + pos: 15.5,43.5 + parent: 2 + - uid: 3930 + components: + - type: Transform + pos: 14.5,43.5 + parent: 2 + - uid: 3931 + components: + - type: Transform + pos: 13.5,43.5 + parent: 2 + - uid: 3932 + components: + - type: Transform + pos: 16.5,43.5 + parent: 2 + - uid: 3933 + components: + - type: Transform + pos: 17.5,43.5 + parent: 2 + - uid: 3934 + components: + - type: Transform + pos: 18.5,43.5 + parent: 2 + - uid: 3935 + components: + - type: Transform + pos: 19.5,43.5 + parent: 2 + - uid: 3936 + components: + - type: Transform + pos: 21.5,43.5 + parent: 2 + - uid: 3937 + components: + - type: Transform + pos: 22.5,43.5 + parent: 2 + - uid: 3938 + components: + - type: Transform + pos: 23.5,43.5 + parent: 2 + - uid: 3939 + components: + - type: Transform + pos: 20.5,42.5 + parent: 2 + - uid: 3940 + components: + - type: Transform + pos: 20.5,43.5 + parent: 2 + - uid: 3941 + components: + - type: Transform + pos: 20.5,44.5 + parent: 2 + - uid: 3942 + components: + - type: Transform + pos: 20.5,45.5 + parent: 2 + - uid: 3943 + components: + - type: Transform + pos: 20.5,46.5 + parent: 2 + - uid: 3944 + components: + - type: Transform + pos: 12.5,16.5 + parent: 2 + - uid: 3945 + components: + - type: Transform + pos: 13.5,16.5 + parent: 2 + - uid: 3946 + components: + - type: Transform + pos: 13.5,4.5 + parent: 2 + - uid: 3947 + components: + - type: Transform + pos: 13.5,5.5 + parent: 2 + - uid: 3948 + components: + - type: Transform + pos: 13.5,6.5 + parent: 2 + - uid: 3949 + components: + - type: Transform + pos: 13.5,7.5 + parent: 2 + - uid: 3950 + components: + - type: Transform + pos: 13.5,8.5 + parent: 2 + - uid: 3951 + components: + - type: Transform + pos: 13.5,9.5 + parent: 2 + - uid: 3952 + components: + - type: Transform + pos: 13.5,10.5 + parent: 2 + - uid: 3953 + components: + - type: Transform + pos: 13.5,11.5 + parent: 2 + - uid: 3954 + components: + - type: Transform + pos: 13.5,12.5 + parent: 2 + - uid: 3955 + components: + - type: Transform + pos: 13.5,13.5 + parent: 2 + - uid: 3956 + components: + - type: Transform + pos: 13.5,14.5 + parent: 2 + - uid: 3957 + components: + - type: Transform + pos: 13.5,15.5 + parent: 2 + - uid: 3958 + components: + - type: Transform + pos: 13.5,16.5 + parent: 2 + - uid: 3959 + components: + - type: Transform + pos: 13.5,17.5 + parent: 2 + - uid: 3960 + components: + - type: Transform + pos: 13.5,18.5 + parent: 2 + - uid: 3961 + components: + - type: Transform + pos: 13.5,19.5 + parent: 2 + - uid: 3962 + components: + - type: Transform + pos: 13.5,20.5 + parent: 2 + - uid: 3963 + components: + - type: Transform + pos: 13.5,21.5 + parent: 2 + - uid: 3964 + components: + - type: Transform + pos: 13.5,22.5 + parent: 2 + - uid: 3965 + components: + - type: Transform + pos: 13.5,23.5 + parent: 2 + - uid: 3966 + components: + - type: Transform + pos: 13.5,24.5 + parent: 2 + - uid: 3967 + components: + - type: Transform + pos: 13.5,25.5 + parent: 2 + - uid: 3968 + components: + - type: Transform + pos: 13.5,26.5 + parent: 2 + - uid: 3969 + components: + - type: Transform + pos: 10.5,26.5 + parent: 2 + - uid: 3970 + components: + - type: Transform + pos: 11.5,26.5 + parent: 2 + - uid: 3971 + components: + - type: Transform + pos: 12.5,26.5 + parent: 2 + - uid: 3972 + components: + - type: Transform + pos: 13.5,26.5 + parent: 2 + - uid: 3973 + components: + - type: Transform + pos: 14.5,26.5 + parent: 2 + - uid: 3974 + components: + - type: Transform + pos: 15.5,26.5 + parent: 2 + - uid: 3975 + components: + - type: Transform + pos: 16.5,26.5 + parent: 2 + - uid: 3976 + components: + - type: Transform + pos: 17.5,26.5 + parent: 2 + - uid: 3977 + components: + - type: Transform + pos: 18.5,26.5 + parent: 2 + - uid: 3978 + components: + - type: Transform + pos: 19.5,26.5 + parent: 2 + - uid: 3979 + components: + - type: Transform + pos: 20.5,26.5 + parent: 2 + - uid: 3980 + components: + - type: Transform + pos: 21.5,26.5 + parent: 2 + - uid: 3981 + components: + - type: Transform + pos: 22.5,26.5 + parent: 2 + - uid: 3982 + components: + - type: Transform + pos: 23.5,26.5 + parent: 2 + - uid: 3983 + components: + - type: Transform + pos: 24.5,26.5 + parent: 2 + - uid: 3984 + components: + - type: Transform + pos: 25.5,26.5 + parent: 2 + - uid: 3985 + components: + - type: Transform + pos: 26.5,26.5 + parent: 2 + - uid: 3986 + components: + - type: Transform + pos: 27.5,26.5 + parent: 2 + - uid: 3987 + components: + - type: Transform + pos: 17.5,26.5 + parent: 2 + - uid: 3988 + components: + - type: Transform + pos: 17.5,25.5 + parent: 2 + - uid: 3989 + components: + - type: Transform + pos: 17.5,24.5 + parent: 2 + - uid: 3990 + components: + - type: Transform + pos: 17.5,23.5 + parent: 2 + - uid: 3991 + components: + - type: Transform + pos: 17.5,22.5 + parent: 2 + - uid: 3992 + components: + - type: Transform + pos: 16.5,22.5 + parent: 2 + - uid: 3993 + components: + - type: Transform + pos: 16.5,21.5 + parent: 2 + - uid: 3994 + components: + - type: Transform + pos: 16.5,20.5 + parent: 2 + - uid: 3995 + components: + - type: Transform + pos: 16.5,20.5 + parent: 2 + - uid: 3996 + components: + - type: Transform + pos: 17.5,20.5 + parent: 2 + - uid: 3997 + components: + - type: Transform + pos: 18.5,20.5 + parent: 2 + - uid: 3998 + components: + - type: Transform + pos: 19.5,20.5 + parent: 2 + - uid: 3999 + components: + - type: Transform + pos: 13.5,21.5 + parent: 2 + - uid: 4000 + components: + - type: Transform + pos: 12.5,21.5 + parent: 2 + - uid: 4001 + components: + - type: Transform + pos: 11.5,21.5 + parent: 2 + - uid: 4002 + components: + - type: Transform + pos: 10.5,21.5 + parent: 2 + - uid: 4003 + components: + - type: Transform + pos: 9.5,21.5 + parent: 2 + - uid: 4004 + components: + - type: Transform + pos: 8.5,21.5 + parent: 2 + - uid: 4005 + components: + - type: Transform + pos: 7.5,21.5 + parent: 2 + - uid: 4006 + components: + - type: Transform + pos: 6.5,21.5 + parent: 2 + - uid: 4007 + components: + - type: Transform + pos: 5.5,21.5 + parent: 2 + - uid: 4008 + components: + - type: Transform + pos: 4.5,21.5 + parent: 2 + - uid: 4009 + components: + - type: Transform + pos: 7.5,22.5 + parent: 2 + - uid: 4010 + components: + - type: Transform + pos: 13.5,18.5 + parent: 2 + - uid: 4011 + components: + - type: Transform + pos: 12.5,18.5 + parent: 2 + - uid: 4012 + components: + - type: Transform + pos: 11.5,18.5 + parent: 2 + - uid: 4013 + components: + - type: Transform + pos: 10.5,18.5 + parent: 2 + - uid: 4014 + components: + - type: Transform + pos: 9.5,18.5 + parent: 2 + - uid: 4015 + components: + - type: Transform + pos: 8.5,18.5 + parent: 2 + - uid: 4016 + components: + - type: Transform + pos: 7.5,18.5 + parent: 2 + - uid: 4017 + components: + - type: Transform + pos: 6.5,18.5 + parent: 2 + - uid: 4018 + components: + - type: Transform + pos: 5.5,18.5 + parent: 2 + - uid: 4019 + components: + - type: Transform + pos: 4.5,18.5 + parent: 2 + - uid: 4020 + components: + - type: Transform + pos: 5.5,12.5 + parent: 2 + - uid: 4021 + components: + - type: Transform + pos: 5.5,13.5 + parent: 2 + - uid: 4022 + components: + - type: Transform + pos: 5.5,14.5 + parent: 2 + - uid: 4023 + components: + - type: Transform + pos: 5.5,15.5 + parent: 2 + - uid: 4024 + components: + - type: Transform + pos: 5.5,16.5 + parent: 2 + - uid: 4025 + components: + - type: Transform + pos: 5.5,17.5 + parent: 2 + - uid: 4026 + components: + - type: Transform + pos: 5.5,18.5 + parent: 2 + - uid: 4027 + components: + - type: Transform + pos: 10.5,17.5 + parent: 2 + - uid: 4028 + components: + - type: Transform + pos: 8.5,10.5 + parent: 2 + - uid: 4029 + components: + - type: Transform + pos: 8.5,11.5 + parent: 2 + - uid: 4030 + components: + - type: Transform + pos: 8.5,12.5 + parent: 2 + - uid: 4031 + components: + - type: Transform + pos: 8.5,13.5 + parent: 2 + - uid: 4032 + components: + - type: Transform + pos: 9.5,13.5 + parent: 2 + - uid: 4033 + components: + - type: Transform + pos: 9.5,14.5 + parent: 2 + - uid: 4034 + components: + - type: Transform + pos: 10.5,14.5 + parent: 2 + - uid: 4035 + components: + - type: Transform + pos: 12.5,8.5 + parent: 2 + - uid: 4036 + components: + - type: Transform + pos: 11.5,8.5 + parent: 2 + - uid: 4037 + components: + - type: Transform + pos: 14.5,4.5 + parent: 2 + - uid: 4038 + components: + - type: Transform + pos: 15.5,4.5 + parent: 2 + - uid: 4039 + components: + - type: Transform + pos: 16.5,4.5 + parent: 2 + - uid: 4040 + components: + - type: Transform + pos: 27.5,-0.5 + parent: 2 + - uid: 4041 + components: + - type: Transform + pos: 27.5,-1.5 + parent: 2 + - uid: 4042 + components: + - type: Transform + pos: 27.5,-2.5 + parent: 2 + - uid: 4043 + components: + - type: Transform + pos: 27.5,-3.5 + parent: 2 + - uid: 4044 + components: + - type: Transform + pos: 28.5,-3.5 + parent: 2 + - uid: 4045 + components: + - type: Transform + pos: 29.5,-3.5 + parent: 2 + - uid: 4046 + components: + - type: Transform + pos: 29.5,6.5 + parent: 2 + - uid: 4047 + components: + - type: Transform + pos: 29.5,5.5 + parent: 2 + - uid: 4048 + components: + - type: Transform + pos: 29.5,4.5 + parent: 2 + - uid: 4049 + components: + - type: Transform + pos: 29.5,3.5 + parent: 2 + - uid: 4050 + components: + - type: Transform + pos: 43.5,27.5 + parent: 2 + - uid: 4051 + components: + - type: Transform + pos: 43.5,26.5 + parent: 2 + - uid: 4052 + components: + - type: Transform + pos: 43.5,25.5 + parent: 2 + - uid: 4053 + components: + - type: Transform + pos: 43.5,24.5 + parent: 2 + - uid: 4054 + components: + - type: Transform + pos: 43.5,23.5 + parent: 2 + - uid: 4055 + components: + - type: Transform + pos: 42.5,23.5 + parent: 2 + - uid: 4056 + components: + - type: Transform + pos: 43.5,23.5 + parent: 2 + - uid: 4057 + components: + - type: Transform + pos: 44.5,23.5 + parent: 2 + - uid: 4058 + components: + - type: Transform + pos: 45.5,23.5 + parent: 2 + - uid: 4059 + components: + - type: Transform + pos: 46.5,23.5 + parent: 2 + - uid: 4060 + components: + - type: Transform + pos: 47.5,23.5 + parent: 2 + - uid: 4061 + components: + - type: Transform + pos: 48.5,23.5 + parent: 2 + - uid: 4062 + components: + - type: Transform + pos: 43.5,22.5 + parent: 2 + - uid: 4063 + components: + - type: Transform + pos: 43.5,21.5 + parent: 2 + - uid: 4064 + components: + - type: Transform + pos: 29.5,35.5 + parent: 2 + - uid: 4065 + components: + - type: Transform + pos: 29.5,34.5 + parent: 2 + - uid: 4066 + components: + - type: Transform + pos: 28.5,34.5 + parent: 2 + - uid: 4067 + components: + - type: Transform + pos: 29.5,37.5 + parent: 2 + - uid: 4068 + components: + - type: Transform + pos: 29.5,38.5 + parent: 2 + - uid: 4069 + components: + - type: Transform + pos: 29.5,39.5 + parent: 2 + - uid: 4070 + components: + - type: Transform + pos: 29.5,39.5 + parent: 2 + - uid: 4071 + components: + - type: Transform + pos: 28.5,39.5 + parent: 2 + - uid: 4072 + components: + - type: Transform + pos: 27.5,39.5 + parent: 2 + - uid: 4073 + components: + - type: Transform + pos: 26.5,39.5 + parent: 2 + - uid: 4074 + components: + - type: Transform + pos: 25.5,39.5 + parent: 2 + - uid: 4075 + components: + - type: Transform + pos: 24.5,39.5 + parent: 2 + - uid: 4076 + components: + - type: Transform + pos: 23.5,39.5 + parent: 2 + - uid: 4077 + components: + - type: Transform + pos: 29.5,41.5 + parent: 2 + - uid: 4078 + components: + - type: Transform + pos: 27.5,36.5 + parent: 2 + - uid: 4079 + components: + - type: Transform + pos: 26.5,36.5 + parent: 2 + - uid: 4080 + components: + - type: Transform + pos: 25.5,36.5 + parent: 2 + - uid: 4081 + components: + - type: Transform + pos: 24.5,36.5 + parent: 2 + - uid: 4082 + components: + - type: Transform + pos: 23.5,36.5 + parent: 2 + - uid: 4083 + components: + - type: Transform + pos: 29.5,33.5 + parent: 2 + - uid: 4084 + components: + - type: Transform + pos: 29.5,32.5 + parent: 2 + - uid: 4085 + components: + - type: Transform + pos: 29.5,31.5 + parent: 2 + - uid: 4086 + components: + - type: Transform + pos: 29.5,30.5 + parent: 2 + - uid: 4087 + components: + - type: Transform + pos: 28.5,31.5 + parent: 2 + - uid: 4088 + components: + - type: Transform + pos: 27.5,31.5 + parent: 2 + - uid: 4089 + components: + - type: Transform + pos: 30.5,31.5 + parent: 2 + - uid: 4090 + components: + - type: Transform + pos: 31.5,-5.5 + parent: 2 + - uid: 4091 + components: + - type: Transform + pos: 32.5,-5.5 + parent: 2 + - uid: 4092 + components: + - type: Transform + pos: 33.5,-5.5 + parent: 2 + - uid: 4093 + components: + - type: Transform + pos: 34.5,-5.5 + parent: 2 + - uid: 4094 + components: + - type: Transform + pos: 35.5,-5.5 + parent: 2 + - uid: 4095 + components: + - type: Transform + pos: 35.5,-2.5 + parent: 2 + - uid: 4096 + components: + - type: Transform + pos: 35.5,-3.5 + parent: 2 + - uid: 4097 + components: + - type: Transform + pos: 35.5,-4.5 + parent: 2 + - uid: 4098 + components: + - type: Transform + pos: 35.5,-5.5 + parent: 2 + - uid: 4099 + components: + - type: Transform + pos: -0.5,-23.5 + parent: 2 + - uid: 4100 + components: + - type: Transform + pos: -1.5,-23.5 + parent: 2 + - uid: 4101 + components: + - type: Transform + pos: -2.5,-23.5 + parent: 2 + - uid: 4102 + components: + - type: Transform + pos: -3.5,-23.5 + parent: 2 + - uid: 4103 + components: + - type: Transform + pos: -4.5,-23.5 + parent: 2 + - uid: 4104 + components: + - type: Transform + pos: -5.5,-23.5 + parent: 2 + - uid: 4105 + components: + - type: Transform + pos: -4.5,-22.5 + parent: 2 + - uid: 4106 + components: + - type: Transform + pos: -4.5,-21.5 + parent: 2 + - uid: 4107 + components: + - type: Transform + pos: -3.5,-21.5 + parent: 2 + - uid: 4108 + components: + - type: Transform + pos: -2.5,-74.5 + parent: 2 + - uid: 4109 + components: + - type: Transform + pos: -2.5,-73.5 + parent: 2 + - uid: 4110 + components: + - type: Transform + pos: 3.5,-74.5 + parent: 2 + - uid: 4111 + components: + - type: Transform + pos: 3.5,-73.5 + parent: 2 + - uid: 4112 + components: + - type: Transform + pos: 0.5,-74.5 + parent: 2 + - uid: 4113 + components: + - type: Transform + pos: 0.5,-73.5 + parent: 2 + - uid: 4114 + components: + - type: Transform + pos: 35.5,-5.5 + parent: 2 + - uid: 4115 + components: + - type: Transform + pos: 36.5,-5.5 + parent: 2 + - uid: 4116 + components: + - type: Transform + pos: 37.5,-5.5 + parent: 2 + - uid: 4117 + components: + - type: Transform + pos: 38.5,-5.5 + parent: 2 + - uid: 4118 + components: + - type: Transform + pos: 39.5,-5.5 + parent: 2 + - uid: 4119 + components: + - type: Transform + pos: 40.5,-5.5 + parent: 2 + - uid: 4120 + components: + - type: Transform + pos: 41.5,-5.5 + parent: 2 + - uid: 4121 + components: + - type: Transform + pos: 42.5,-5.5 + parent: 2 + - uid: 4122 + components: + - type: Transform + pos: 43.5,-5.5 + parent: 2 + - uid: 4123 + components: + - type: Transform + pos: 39.5,-5.5 + parent: 2 + - uid: 4124 + components: + - type: Transform + pos: 39.5,-4.5 + parent: 2 + - uid: 4125 + components: + - type: Transform + pos: 39.5,-3.5 + parent: 2 + - uid: 4126 + components: + - type: Transform + pos: 39.5,-2.5 + parent: 2 + - uid: 4127 + components: + - type: Transform + pos: 43.5,-4.5 + parent: 2 + - uid: 4128 + components: + - type: Transform + pos: 43.5,-4.5 + parent: 2 + - uid: 4129 + components: + - type: Transform + pos: 44.5,-4.5 + parent: 2 + - uid: 4130 + components: + - type: Transform + pos: 45.5,-4.5 + parent: 2 + - uid: 4131 + components: + - type: Transform + pos: 46.5,-4.5 + parent: 2 + - uid: 4132 + components: + - type: Transform + pos: 47.5,-4.5 + parent: 2 + - uid: 4133 + components: + - type: Transform + pos: 43.5,-6.5 + parent: 2 + - uid: 4134 + components: + - type: Transform + pos: 43.5,-6.5 + parent: 2 + - uid: 4135 + components: + - type: Transform + pos: 44.5,-6.5 + parent: 2 + - uid: 4136 + components: + - type: Transform + pos: 45.5,-6.5 + parent: 2 + - uid: 4137 + components: + - type: Transform + pos: 46.5,-6.5 + parent: 2 + - uid: 4138 + components: + - type: Transform + pos: 47.5,-6.5 + parent: 2 + - uid: 4139 + components: + - type: Transform + pos: 12.5,-37.5 + parent: 2 + - uid: 4140 + components: + - type: Transform + pos: 43.5,-7.5 + parent: 2 + - uid: 4141 + components: + - type: Transform + pos: 43.5,-8.5 + parent: 2 + - uid: 4142 + components: + - type: Transform + pos: 43.5,-9.5 + parent: 2 + - uid: 4143 + components: + - type: Transform + pos: 43.5,-10.5 + parent: 2 + - uid: 4144 + components: + - type: Transform + pos: 43.5,-11.5 + parent: 2 + - uid: 4145 + components: + - type: Transform + pos: 43.5,-12.5 + parent: 2 + - uid: 4146 + components: + - type: Transform + pos: 43.5,-12.5 + parent: 2 + - uid: 4147 + components: + - type: Transform + pos: 44.5,-12.5 + parent: 2 + - uid: 4148 + components: + - type: Transform + pos: 45.5,-12.5 + parent: 2 + - uid: 4149 + components: + - type: Transform + pos: 46.5,-12.5 + parent: 2 + - uid: 4150 + components: + - type: Transform + pos: 47.5,-12.5 + parent: 2 + - uid: 4151 + components: + - type: Transform + pos: 44.5,-12.5 + parent: 2 + - uid: 4152 + components: + - type: Transform + pos: 44.5,-13.5 + parent: 2 + - uid: 4153 + components: + - type: Transform + pos: 44.5,-14.5 + parent: 2 + - uid: 4154 + components: + - type: Transform + pos: 44.5,-15.5 + parent: 2 + - uid: 4155 + components: + - type: Transform + pos: 44.5,-16.5 + parent: 2 + - uid: 4156 + components: + - type: Transform + pos: 44.5,-17.5 + parent: 2 + - uid: 4157 + components: + - type: Transform + pos: 44.5,-18.5 + parent: 2 + - uid: 4158 + components: + - type: Transform + pos: 43.5,-17.5 + parent: 2 + - uid: 4159 + components: + - type: Transform + pos: 44.5,-17.5 + parent: 2 + - uid: 4160 + components: + - type: Transform + pos: 45.5,-17.5 + parent: 2 + - uid: 4161 + components: + - type: Transform + pos: 46.5,-17.5 + parent: 2 + - uid: 4162 + components: + - type: Transform + pos: 43.5,-14.5 + parent: 2 + - uid: 4163 + components: + - type: Transform + pos: 44.5,-14.5 + parent: 2 + - uid: 4164 + components: + - type: Transform + pos: 45.5,-14.5 + parent: 2 + - uid: 4165 + components: + - type: Transform + pos: 46.5,-14.5 + parent: 2 + - uid: 4166 + components: + - type: Transform + pos: 47.5,-14.5 + parent: 2 + - uid: 4167 + components: + - type: Transform + pos: -16.5,4.5 + parent: 2 + - uid: 4168 + components: + - type: Transform + pos: -15.5,4.5 + parent: 2 + - uid: 4169 + components: + - type: Transform + pos: 31.5,-11.5 + parent: 2 + - uid: 4170 + components: + - type: Transform + pos: -14.5,4.5 + parent: 2 + - uid: 4171 + components: + - type: Transform + pos: -12.5,5.5 + parent: 2 + - uid: 4172 + components: + - type: Transform + pos: -13.5,4.5 + parent: 2 + - uid: 4173 + components: + - type: Transform + pos: 32.5,-11.5 + parent: 2 + - uid: 4174 + components: + - type: Transform + pos: -12.5,4.5 + parent: 2 + - uid: 4175 + components: + - type: Transform + pos: 33.5,-11.5 + parent: 2 + - uid: 4176 + components: + - type: Transform + pos: 34.5,-11.5 + parent: 2 + - uid: 4177 + components: + - type: Transform + pos: 35.5,-11.5 + parent: 2 + - uid: 4178 + components: + - type: Transform + pos: 36.5,-11.5 + parent: 2 + - uid: 4179 + components: + - type: Transform + pos: 37.5,-11.5 + parent: 2 + - uid: 4180 + components: + - type: Transform + pos: 38.5,-11.5 + parent: 2 + - uid: 4181 + components: + - type: Transform + pos: 39.5,-11.5 + parent: 2 + - uid: 4182 + components: + - type: Transform + pos: 40.5,-11.5 + parent: 2 + - uid: 4183 + components: + - type: Transform + pos: 41.5,-11.5 + parent: 2 + - uid: 4184 + components: + - type: Transform + pos: 42.5,-11.5 + parent: 2 + - uid: 4185 + components: + - type: Transform + pos: 43.5,-11.5 + parent: 2 + - uid: 4186 + components: + - type: Transform + pos: 32.5,-11.5 + parent: 2 + - uid: 4187 + components: + - type: Transform + pos: 32.5,-10.5 + parent: 2 + - uid: 4188 + components: + - type: Transform + pos: 32.5,-9.5 + parent: 2 + - uid: 4189 + components: + - type: Transform + pos: 32.5,-8.5 + parent: 2 + - uid: 4190 + components: + - type: Transform + pos: 32.5,-7.5 + parent: 2 + - uid: 4191 + components: + - type: Transform + pos: 32.5,-6.5 + parent: 2 + - uid: 4192 + components: + - type: Transform + pos: 32.5,-5.5 + parent: 2 + - uid: 4193 + components: + - type: Transform + pos: 32.5,-7.5 + parent: 2 + - uid: 4194 + components: + - type: Transform + pos: 31.5,-7.5 + parent: 2 + - uid: 4195 + components: + - type: Transform + pos: 30.5,-7.5 + parent: 2 + - uid: 4196 + components: + - type: Transform + pos: 33.5,-8.5 + parent: 2 + - uid: 4197 + components: + - type: Transform + pos: 37.5,-12.5 + parent: 2 + - uid: 4198 + components: + - type: Transform + pos: 38.5,-10.5 + parent: 2 + - uid: 4199 + components: + - type: Transform + pos: 38.5,-10.5 + parent: 2 + - uid: 4200 + components: + - type: Transform + pos: 38.5,-9.5 + parent: 2 + - uid: 4201 + components: + - type: Transform + pos: 42.5,-8.5 + parent: 2 + - uid: 4202 + components: + - type: Transform + pos: 37.5,-6.5 + parent: 2 + - uid: 4203 + components: + - type: Transform + pos: -34.5,5.5 + parent: 2 + - uid: 4204 + components: + - type: Transform + pos: -33.5,5.5 + parent: 2 + - uid: 4205 + components: + - type: Transform + pos: -33.5,2.5 + parent: 2 + - uid: 4206 + components: + - type: Transform + pos: -33.5,3.5 + parent: 2 + - uid: 4207 + components: + - type: Transform + pos: -33.5,4.5 + parent: 2 + - uid: 4208 + components: + - type: Transform + pos: -33.5,5.5 + parent: 2 + - uid: 4209 + components: + - type: Transform + pos: -33.5,6.5 + parent: 2 + - uid: 4210 + components: + - type: Transform + pos: -33.5,7.5 + parent: 2 + - uid: 4211 + components: + - type: Transform + pos: -33.5,8.5 + parent: 2 + - uid: 4212 + components: + - type: Transform + pos: -33.5,9.5 + parent: 2 + - uid: 4213 + components: + - type: Transform + pos: -33.5,10.5 + parent: 2 + - uid: 4214 + components: + - type: Transform + pos: -33.5,11.5 + parent: 2 + - uid: 4215 + components: + - type: Transform + pos: -33.5,12.5 + parent: 2 + - uid: 4216 + components: + - type: Transform + pos: -34.5,11.5 + parent: 2 + - uid: 4217 + components: + - type: Transform + pos: -32.5,11.5 + parent: 2 + - uid: 4218 + components: + - type: Transform + pos: -34.5,7.5 + parent: 2 + - uid: 4219 + components: + - type: Transform + pos: -35.5,7.5 + parent: 2 + - uid: 4220 + components: + - type: Transform + pos: -32.5,7.5 + parent: 2 + - uid: 4221 + components: + - type: Transform + pos: -33.5,1.5 + parent: 2 + - uid: 4222 + components: + - type: Transform + pos: -33.5,0.5 + parent: 2 + - uid: 4223 + components: + - type: Transform + pos: -32.5,1.5 + parent: 2 + - uid: 4224 + components: + - type: Transform + pos: -31.5,1.5 + parent: 2 + - uid: 4225 + components: + - type: Transform + pos: -30.5,1.5 + parent: 2 + - uid: 4226 + components: + - type: Transform + pos: -29.5,1.5 + parent: 2 + - uid: 4227 + components: + - type: Transform + pos: -28.5,1.5 + parent: 2 + - uid: 4228 + components: + - type: Transform + pos: -17.5,1.5 + parent: 2 + - uid: 4229 + components: + - type: Transform + pos: -33.5,-0.5 + parent: 2 + - uid: 4230 + components: + - type: Transform + pos: -33.5,-1.5 + parent: 2 + - uid: 4231 + components: + - type: Transform + pos: -33.5,-2.5 + parent: 2 + - uid: 4232 + components: + - type: Transform + pos: -33.5,-3.5 + parent: 2 + - uid: 4233 + components: + - type: Transform + pos: -33.5,-4.5 + parent: 2 + - uid: 4234 + components: + - type: Transform + pos: -33.5,-5.5 + parent: 2 + - uid: 4235 + components: + - type: Transform + pos: -33.5,-6.5 + parent: 2 + - uid: 4236 + components: + - type: Transform + pos: -33.5,-8.5 + parent: 2 + - uid: 4237 + components: + - type: Transform + pos: 1.5,46.5 + parent: 2 + - uid: 4238 + components: + - type: Transform + pos: -31.5,-19.5 + parent: 2 + - uid: 4239 + components: + - type: Transform + pos: -31.5,-20.5 + parent: 2 + - uid: 4240 + components: + - type: Transform + pos: -31.5,-21.5 + parent: 2 + - uid: 4241 + components: + - type: Transform + pos: -31.5,-22.5 + parent: 2 + - uid: 4242 + components: + - type: Transform + pos: -29.5,-22.5 + parent: 2 + - uid: 4243 + components: + - type: Transform + pos: -30.5,-22.5 + parent: 2 + - uid: 4244 + components: + - type: Transform + pos: -31.5,-22.5 + parent: 2 + - uid: 4245 + components: + - type: Transform + pos: -29.5,-22.5 + parent: 2 + - uid: 4246 + components: + - type: Transform + pos: -29.5,-23.5 + parent: 2 + - uid: 4247 + components: + - type: Transform + pos: -32.5,-22.5 + parent: 2 + - uid: 4248 + components: + - type: Transform + pos: -33.5,-22.5 + parent: 2 + - uid: 4249 + components: + - type: Transform + pos: -34.5,-22.5 + parent: 2 + - uid: 4250 + components: + - type: Transform + pos: -33.5,-23.5 + parent: 2 + - uid: 4251 + components: + - type: Transform + pos: -33.5,-24.5 + parent: 2 + - uid: 4252 + components: + - type: Transform + pos: -33.5,-21.5 + parent: 2 + - uid: 4253 + components: + - type: Transform + pos: -33.5,-20.5 + parent: 2 + - uid: 4254 + components: + - type: Transform + pos: -33.5,-19.5 + parent: 2 + - uid: 4255 + components: + - type: Transform + pos: -33.5,-18.5 + parent: 2 + - uid: 4256 + components: + - type: Transform + pos: -33.5,-17.5 + parent: 2 + - uid: 4257 + components: + - type: Transform + pos: -33.5,-16.5 + parent: 2 + - uid: 4258 + components: + - type: Transform + pos: -33.5,-15.5 + parent: 2 + - uid: 4259 + components: + - type: Transform + pos: -33.5,-14.5 + parent: 2 + - uid: 4260 + components: + - type: Transform + pos: -33.5,-13.5 + parent: 2 + - uid: 4261 + components: + - type: Transform + pos: -33.5,-12.5 + parent: 2 + - uid: 4262 + components: + - type: Transform + pos: -33.5,-11.5 + parent: 2 + - uid: 4263 + components: + - type: Transform + pos: -33.5,-10.5 + parent: 2 + - uid: 4264 + components: + - type: Transform + pos: -33.5,-9.5 + parent: 2 + - uid: 4265 + components: + - type: Transform + pos: -33.5,-8.5 + parent: 2 + - uid: 4266 + components: + - type: Transform + pos: -32.5,-11.5 + parent: 2 + - uid: 4267 + components: + - type: Transform + pos: -31.5,-11.5 + parent: 2 + - uid: 4268 + components: + - type: Transform + pos: -30.5,-11.5 + parent: 2 + - uid: 4269 + components: + - type: Transform + pos: -29.5,-11.5 + parent: 2 + - uid: 4270 + components: + - type: Transform + pos: -28.5,-11.5 + parent: 2 + - uid: 4271 + components: + - type: Transform + pos: -28.5,-12.5 + parent: 2 + - uid: 4272 + components: + - type: Transform + pos: -28.5,-13.5 + parent: 2 + - uid: 4273 + components: + - type: Transform + pos: -18.5,3.5 + parent: 2 + - uid: 4274 + components: + - type: Transform + pos: -18.5,2.5 + parent: 2 + - uid: 4275 + components: + - type: Transform + pos: -18.5,1.5 + parent: 2 + - uid: 4276 + components: + - type: Transform + pos: -18.5,1.5 + parent: 2 + - uid: 4277 + components: + - type: Transform + pos: -18.5,1.5 + parent: 2 + - uid: 4278 + components: + - type: Transform + pos: -19.5,1.5 + parent: 2 + - uid: 4279 + components: + - type: Transform + pos: -20.5,1.5 + parent: 2 + - uid: 4280 + components: + - type: Transform + pos: -21.5,1.5 + parent: 2 + - uid: 4281 + components: + - type: Transform + pos: -22.5,1.5 + parent: 2 + - uid: 4282 + components: + - type: Transform + pos: -23.5,1.5 + parent: 2 + - uid: 4283 + components: + - type: Transform + pos: -24.5,1.5 + parent: 2 + - uid: 4284 + components: + - type: Transform + pos: -25.5,1.5 + parent: 2 + - uid: 4285 + components: + - type: Transform + pos: -26.5,1.5 + parent: 2 + - uid: 4286 + components: + - type: Transform + pos: -16.5,1.5 + parent: 2 + - uid: 4287 + components: + - type: Transform + pos: -15.5,1.5 + parent: 2 + - uid: 4288 + components: + - type: Transform + pos: -14.5,1.5 + parent: 2 + - uid: 4289 + components: + - type: Transform + pos: -13.5,1.5 + parent: 2 + - uid: 4290 + components: + - type: Transform + pos: -12.5,1.5 + parent: 2 + - uid: 4291 + components: + - type: Transform + pos: -11.5,1.5 + parent: 2 + - uid: 4292 + components: + - type: Transform + pos: -10.5,1.5 + parent: 2 + - uid: 4293 + components: + - type: Transform + pos: -9.5,1.5 + parent: 2 + - uid: 4294 + components: + - type: Transform + pos: -20.5,1.5 + parent: 2 + - uid: 4295 + components: + - type: Transform + pos: -20.5,-0.5 + parent: 2 + - uid: 4296 + components: + - type: Transform + pos: -20.5,2.5 + parent: 2 + - uid: 4297 + components: + - type: Transform + pos: -14.5,-11.5 + parent: 2 + - uid: 4298 + components: + - type: Transform + pos: -15.5,-11.5 + parent: 2 + - uid: 4299 + components: + - type: Transform + pos: -15.5,-11.5 + parent: 2 + - uid: 4300 + components: + - type: Transform + pos: -15.5,-10.5 + parent: 2 + - uid: 4301 + components: + - type: Transform + pos: -15.5,-9.5 + parent: 2 + - uid: 4302 + components: + - type: Transform + pos: -15.5,-9.5 + parent: 2 + - uid: 4303 + components: + - type: Transform + pos: -16.5,-9.5 + parent: 2 + - uid: 4304 + components: + - type: Transform + pos: -17.5,-9.5 + parent: 2 + - uid: 4305 + components: + - type: Transform + pos: -18.5,-9.5 + parent: 2 + - uid: 4306 + components: + - type: Transform + pos: -19.5,-9.5 + parent: 2 + - uid: 4307 + components: + - type: Transform + pos: -20.5,-9.5 + parent: 2 + - uid: 4308 + components: + - type: Transform + pos: -20.5,-9.5 + parent: 2 + - uid: 4309 + components: + - type: Transform + pos: -20.5,-8.5 + parent: 2 + - uid: 4310 + components: + - type: Transform + pos: -20.5,-7.5 + parent: 2 + - uid: 4311 + components: + - type: Transform + pos: -20.5,-6.5 + parent: 2 + - uid: 4312 + components: + - type: Transform + pos: -20.5,-5.5 + parent: 2 + - uid: 4313 + components: + - type: Transform + pos: -20.5,-4.5 + parent: 2 + - uid: 4314 + components: + - type: Transform + pos: -20.5,-3.5 + parent: 2 + - uid: 4315 + components: + - type: Transform + pos: -20.5,-2.5 + parent: 2 + - uid: 4316 + components: + - type: Transform + pos: -20.5,-8.5 + parent: 2 + - uid: 4317 + components: + - type: Transform + pos: -21.5,-8.5 + parent: 2 + - uid: 4318 + components: + - type: Transform + pos: -22.5,-8.5 + parent: 2 + - uid: 4319 + components: + - type: Transform + pos: -23.5,-8.5 + parent: 2 + - uid: 4320 + components: + - type: Transform + pos: -24.5,-8.5 + parent: 2 + - uid: 4321 + components: + - type: Transform + pos: -25.5,-8.5 + parent: 2 + - uid: 4322 + components: + - type: Transform + pos: -26.5,-8.5 + parent: 2 + - uid: 4323 + components: + - type: Transform + pos: -27.5,-8.5 + parent: 2 + - uid: 4324 + components: + - type: Transform + pos: -28.5,-8.5 + parent: 2 + - uid: 4325 + components: + - type: Transform + pos: -29.5,-8.5 + parent: 2 + - uid: 4326 + components: + - type: Transform + pos: -30.5,-8.5 + parent: 2 + - uid: 4327 + components: + - type: Transform + pos: -31.5,-8.5 + parent: 2 + - uid: 4328 + components: + - type: Transform + pos: -23.5,-8.5 + parent: 2 + - uid: 4329 + components: + - type: Transform + pos: -23.5,-9.5 + parent: 2 + - uid: 4330 + components: + - type: Transform + pos: -23.5,-10.5 + parent: 2 + - uid: 4331 + components: + - type: Transform + pos: -23.5,-11.5 + parent: 2 + - uid: 4332 + components: + - type: Transform + pos: -23.5,-12.5 + parent: 2 + - uid: 4333 + components: + - type: Transform + pos: -23.5,-13.5 + parent: 2 + - uid: 4334 + components: + - type: Transform + pos: -23.5,-14.5 + parent: 2 + - uid: 4335 + components: + - type: Transform + pos: -22.5,-13.5 + parent: 2 + - uid: 4336 + components: + - type: Transform + pos: -21.5,-13.5 + parent: 2 + - uid: 4337 + components: + - type: Transform + pos: -20.5,-13.5 + parent: 2 + - uid: 4338 + components: + - type: Transform + pos: -19.5,-13.5 + parent: 2 + - uid: 4339 + components: + - type: Transform + pos: -18.5,-13.5 + parent: 2 + - uid: 4340 + components: + - type: Transform + pos: -14.5,-9.5 + parent: 2 + - uid: 4341 + components: + - type: Transform + pos: -13.5,-9.5 + parent: 2 + - uid: 4342 + components: + - type: Transform + pos: -12.5,-9.5 + parent: 2 + - uid: 4343 + components: + - type: Transform + pos: -11.5,-9.5 + parent: 2 + - uid: 4344 + components: + - type: Transform + pos: -10.5,-9.5 + parent: 2 + - uid: 4345 + components: + - type: Transform + pos: -9.5,-9.5 + parent: 2 + - uid: 4346 + components: + - type: Transform + pos: -8.5,-9.5 + parent: 2 + - uid: 4347 + components: + - type: Transform + pos: -7.5,-9.5 + parent: 2 + - uid: 4348 + components: + - type: Transform + pos: -18.5,-12.5 + parent: 2 + - uid: 4349 + components: + - type: Transform + pos: -18.5,-11.5 + parent: 2 + - uid: 4350 + components: + - type: Transform + pos: -11.5,-6.5 + parent: 2 + - uid: 4351 + components: + - type: Transform + pos: -11.5,-5.5 + parent: 2 + - uid: 4352 + components: + - type: Transform + pos: -11.5,-4.5 + parent: 2 + - uid: 4353 + components: + - type: Transform + pos: -12.5,-4.5 + parent: 2 + - uid: 4354 + components: + - type: Transform + pos: -13.5,-4.5 + parent: 2 + - uid: 4355 + components: + - type: Transform + pos: -14.5,-4.5 + parent: 2 + - uid: 4356 + components: + - type: Transform + pos: -15.5,-4.5 + parent: 2 + - uid: 4357 + components: + - type: Transform + pos: -16.5,-4.5 + parent: 2 + - uid: 4358 + components: + - type: Transform + pos: -15.5,-3.5 + parent: 2 + - uid: 4359 + components: + - type: Transform + pos: -15.5,-5.5 + parent: 2 + - uid: 4360 + components: + - type: Transform + pos: -11.5,-7.5 + parent: 2 + - uid: 4361 + components: + - type: Transform + pos: -15.5,-12.5 + parent: 2 + - uid: 4362 + components: + - type: Transform + pos: -15.5,-13.5 + parent: 2 + - uid: 4363 + components: + - type: Transform + pos: -14.5,-13.5 + parent: 2 + - uid: 4364 + components: + - type: Transform + pos: -13.5,-13.5 + parent: 2 + - uid: 4365 + components: + - type: Transform + pos: -11.5,-13.5 + parent: 2 + - uid: 4366 + components: + - type: Transform + pos: -12.5,-13.5 + parent: 2 + - uid: 4367 + components: + - type: Transform + pos: -7.5,-10.5 + parent: 2 + - uid: 4368 + components: + - type: Transform + pos: -7.5,-11.5 + parent: 2 + - uid: 4369 + components: + - type: Transform + pos: -7.5,-12.5 + parent: 2 + - uid: 4370 + components: + - type: Transform + pos: -7.5,-13.5 + parent: 2 + - uid: 4371 + components: + - type: Transform + pos: -2.5,-9.5 + parent: 2 + - uid: 4372 + components: + - type: Transform + pos: -2.5,-10.5 + parent: 2 + - uid: 4373 + components: + - type: Transform + pos: -2.5,-11.5 + parent: 2 + - uid: 4374 + components: + - type: Transform + pos: -2.5,-12.5 + parent: 2 + - uid: 4375 + components: + - type: Transform + pos: -2.5,-13.5 + parent: 2 + - uid: 4376 + components: + - type: Transform + pos: -2.5,-14.5 + parent: 2 + - uid: 4377 + components: + - type: Transform + pos: -3.5,-13.5 + parent: 2 + - uid: 4378 + components: + - type: Transform + pos: -4.5,-13.5 + parent: 2 + - uid: 4379 + components: + - type: Transform + pos: -12.5,-14.5 + parent: 2 + - uid: 4380 + components: + - type: Transform + pos: -6.5,-13.5 + parent: 2 + - uid: 4381 + components: + - type: Transform + pos: -12.5,-15.5 + parent: 2 + - uid: 4382 + components: + - type: Transform + pos: -12.5,-16.5 + parent: 2 + - uid: 4383 + components: + - type: Transform + pos: -12.5,-17.5 + parent: 2 + - uid: 4384 + components: + - type: Transform + pos: -13.5,-16.5 + parent: 2 + - uid: 4385 + components: + - type: Transform + pos: -14.5,-16.5 + parent: 2 + - uid: 4386 + components: + - type: Transform + pos: -15.5,-16.5 + parent: 2 + - uid: 4387 + components: + - type: Transform + pos: -11.5,-16.5 + parent: 2 + - uid: 4388 + components: + - type: Transform + pos: -10.5,-16.5 + parent: 2 + - uid: 4389 + components: + - type: Transform + pos: -9.5,-16.5 + parent: 2 + - uid: 4390 + components: + - type: Transform + pos: -8.5,-16.5 + parent: 2 + - uid: 4391 + components: + - type: Transform + pos: -7.5,-16.5 + parent: 2 + - uid: 4392 + components: + - type: Transform + pos: -6.5,-16.5 + parent: 2 + - uid: 4393 + components: + - type: Transform + pos: -5.5,-16.5 + parent: 2 + - uid: 4394 + components: + - type: Transform + pos: -4.5,-16.5 + parent: 2 + - uid: 4395 + components: + - type: Transform + pos: -4.5,-17.5 + parent: 2 + - uid: 4396 + components: + - type: Transform + pos: -3.5,-17.5 + parent: 2 + - uid: 4397 + components: + - type: Transform + pos: -9.5,-17.5 + parent: 2 + - uid: 4398 + components: + - type: Transform + pos: -9.5,-18.5 + parent: 2 + - uid: 4399 + components: + - type: Transform + pos: 1.5,37.5 + parent: 2 + - uid: 4400 + components: + - type: Transform + pos: 1.5,36.5 + parent: 2 + - uid: 4401 + components: + - type: Transform + pos: 1.5,35.5 + parent: 2 + - uid: 4402 + components: + - type: Transform + pos: 1.5,34.5 + parent: 2 + - uid: 4403 + components: + - type: Transform + pos: 1.5,33.5 + parent: 2 + - uid: 4404 + components: + - type: Transform + pos: 1.5,32.5 + parent: 2 + - uid: 4405 + components: + - type: Transform + pos: -0.5,38.5 + parent: 2 + - uid: 4406 + components: + - type: Transform + pos: 0.5,38.5 + parent: 2 + - uid: 4407 + components: + - type: Transform + pos: 1.5,38.5 + parent: 2 + - uid: 4408 + components: + - type: Transform + pos: 1.5,31.5 + parent: 2 + - uid: 4409 + components: + - type: Transform + pos: 1.5,30.5 + parent: 2 + - uid: 4410 + components: + - type: Transform + pos: 0.5,29.5 + parent: 2 + - uid: 4411 + components: + - type: Transform + pos: -0.5,29.5 + parent: 2 + - uid: 4412 + components: + - type: Transform + pos: 1.5,29.5 + parent: 2 + - uid: 4413 + components: + - type: Transform + pos: 1.5,29.5 + parent: 2 + - uid: 4414 + components: + - type: Transform + pos: 1.5,26.5 + parent: 2 + - uid: 4415 + components: + - type: Transform + pos: 1.5,26.5 + parent: 2 + - uid: 4416 + components: + - type: Transform + pos: 1.5,26.5 + parent: 2 + - uid: 4417 + components: + - type: Transform + pos: 2.5,26.5 + parent: 2 + - uid: 4418 + components: + - type: Transform + pos: 3.5,26.5 + parent: 2 + - uid: 4419 + components: + - type: Transform + pos: 4.5,26.5 + parent: 2 + - uid: 4420 + components: + - type: Transform + pos: 5.5,26.5 + parent: 2 + - uid: 4421 + components: + - type: Transform + pos: 7.5,26.5 + parent: 2 + - uid: 4422 + components: + - type: Transform + pos: 8.5,26.5 + parent: 2 + - uid: 4423 + components: + - type: Transform + pos: 6.5,24.5 + parent: 2 + - uid: 4424 + components: + - type: Transform + pos: 1.5,26.5 + parent: 2 + - uid: 4425 + components: + - type: Transform + pos: 1.5,27.5 + parent: 2 + - uid: 4426 + components: + - type: Transform + pos: 1.5,28.5 + parent: 2 + - uid: 4427 + components: + - type: Transform + pos: 1.5,29.5 + parent: 2 + - uid: 4428 + components: + - type: Transform + pos: 1.5,30.5 + parent: 2 + - uid: 4429 + components: + - type: Transform + pos: 5.5,47.5 + parent: 2 + - uid: 4430 + components: + - type: Transform + pos: 5.5,48.5 + parent: 2 + - uid: 4431 + components: + - type: Transform + pos: 0.5,57.5 + parent: 2 + - uid: 4432 + components: + - type: Transform + pos: 1.5,57.5 + parent: 2 + - uid: 4433 + components: + - type: Transform + pos: 5.5,62.5 + parent: 2 + - uid: 4434 + components: + - type: Transform + pos: 5.5,61.5 + parent: 2 + - uid: 4435 + components: + - type: Transform + pos: 6.5,62.5 + parent: 2 + - uid: 4436 + components: + - type: Transform + pos: 7.5,62.5 + parent: 2 + - uid: 4437 + components: + - type: Transform + pos: 7.5,61.5 + parent: 2 + - uid: 4438 + components: + - type: Transform + pos: 8.5,61.5 + parent: 2 + - uid: 4439 + components: + - type: Transform + pos: 8.5,60.5 + parent: 2 + - uid: 4440 + components: + - type: Transform + pos: 5.5,62.5 + parent: 2 + - uid: 4441 + components: + - type: Transform + pos: 4.5,62.5 + parent: 2 + - uid: 4442 + components: + - type: Transform + pos: 4.5,63.5 + parent: 2 + - uid: 4443 + components: + - type: Transform + pos: 4.5,63.5 + parent: 2 + - uid: 4444 + components: + - type: Transform + pos: 3.5,63.5 + parent: 2 + - uid: 4445 + components: + - type: Transform + pos: 2.5,63.5 + parent: 2 + - uid: 4446 + components: + - type: Transform + pos: 1.5,63.5 + parent: 2 + - uid: 4447 + components: + - type: Transform + pos: 0.5,63.5 + parent: 2 + - uid: 4448 + components: + - type: Transform + pos: -0.5,63.5 + parent: 2 + - uid: 4449 + components: + - type: Transform + pos: -1.5,63.5 + parent: 2 + - uid: 4450 + components: + - type: Transform + pos: -2.5,63.5 + parent: 2 + - uid: 4451 + components: + - type: Transform + pos: -2.5,62.5 + parent: 2 + - uid: 4452 + components: + - type: Transform + pos: -3.5,62.5 + parent: 2 + - uid: 4453 + components: + - type: Transform + pos: -4.5,62.5 + parent: 2 + - uid: 4454 + components: + - type: Transform + pos: -4.5,62.5 + parent: 2 + - uid: 4455 + components: + - type: Transform + pos: -5.5,62.5 + parent: 2 + - uid: 4456 + components: + - type: Transform + pos: -5.5,61.5 + parent: 2 + - uid: 4457 + components: + - type: Transform + pos: -6.5,61.5 + parent: 2 + - uid: 4458 + components: + - type: Transform + pos: -6.5,60.5 + parent: 2 + - uid: 4459 + components: + - type: Transform + pos: -6.5,61.5 + parent: 2 + - uid: 4460 + components: + - type: Transform + pos: -5.5,61.5 + parent: 2 + - uid: 4461 + components: + - type: Transform + pos: -5.5,62.5 + parent: 2 + - uid: 4462 + components: + - type: Transform + pos: -6.5,60.5 + parent: 2 + - uid: 4463 + components: + - type: Transform + pos: -3.5,62.5 + parent: 2 + - uid: 4464 + components: + - type: Transform + pos: -2.5,62.5 + parent: 2 + - uid: 4465 + components: + - type: Transform + pos: 6.5,57.5 + parent: 2 + - uid: 4466 + components: + - type: Transform + pos: 6.5,57.5 + parent: 2 + - uid: 4467 + components: + - type: Transform + pos: 6.5,57.5 + parent: 2 + - uid: 4468 + components: + - type: Transform + pos: 7.5,52.5 + parent: 2 + - uid: 4469 + components: + - type: Transform + pos: 7.5,51.5 + parent: 2 + - uid: 4470 + components: + - type: Transform + pos: 11.5,53.5 + parent: 2 + - uid: 4471 + components: + - type: Transform + pos: 11.5,54.5 + parent: 2 + - uid: 4472 + components: + - type: Transform + pos: 11.5,55.5 + parent: 2 + - uid: 4473 + components: + - type: Transform + pos: -2.5,55.5 + parent: 2 + - uid: 4474 + components: + - type: Transform + pos: -2.5,56.5 + parent: 2 + - uid: 4475 + components: + - type: Transform + pos: -2.5,57.5 + parent: 2 + - uid: 4476 + components: + - type: Transform + pos: -4.5,55.5 + parent: 2 + - uid: 4477 + components: + - type: Transform + pos: -4.5,56.5 + parent: 2 + - uid: 4478 + components: + - type: Transform + pos: -4.5,57.5 + parent: 2 + - uid: 4479 + components: + - type: Transform + pos: -9.5,55.5 + parent: 2 + - uid: 4480 + components: + - type: Transform + pos: -8.5,55.5 + parent: 2 + - uid: 4481 + components: + - type: Transform + pos: -11.5,50.5 + parent: 2 + - uid: 4482 + components: + - type: Transform + pos: -12.5,50.5 + parent: 2 + - uid: 4483 + components: + - type: Transform + pos: -12.5,51.5 + parent: 2 + - uid: 4484 + components: + - type: Transform + pos: -12.5,51.5 + parent: 2 + - uid: 4485 + components: + - type: Transform + pos: -12.5,50.5 + parent: 2 + - uid: 4486 + components: + - type: Transform + pos: -43.5,32.5 + parent: 2 + - uid: 4487 + components: + - type: Transform + pos: -43.5,33.5 + parent: 2 + - uid: 4488 + components: + - type: Transform + pos: -43.5,34.5 + parent: 2 + - uid: 4489 + components: + - type: Transform + pos: -42.5,32.5 + parent: 2 + - uid: 4490 + components: + - type: Transform + pos: -43.5,32.5 + parent: 2 + - uid: 4491 + components: + - type: Transform + pos: -43.5,33.5 + parent: 2 + - uid: 4492 + components: + - type: Transform + pos: -43.5,34.5 + parent: 2 + - uid: 4493 + components: + - type: Transform + pos: -39.5,37.5 + parent: 2 + - uid: 4494 + components: + - type: Transform + pos: -40.5,37.5 + parent: 2 + - uid: 4495 + components: + - type: Transform + pos: -40.5,38.5 + parent: 2 + - uid: 4496 + components: + - type: Transform + pos: -41.5,38.5 + parent: 2 + - uid: 4497 + components: + - type: Transform + pos: -36.5,39.5 + parent: 2 + - uid: 4498 + components: + - type: Transform + pos: -37.5,39.5 + parent: 2 + - uid: 4499 + components: + - type: Transform + pos: -38.5,39.5 + parent: 2 + - uid: 4500 + components: + - type: Transform + pos: 1.5,26.5 + parent: 2 + - uid: 4501 + components: + - type: Transform + pos: 1.5,25.5 + parent: 2 + - uid: 4502 + components: + - type: Transform + pos: 1.5,24.5 + parent: 2 + - uid: 4503 + components: + - type: Transform + pos: 1.5,23.5 + parent: 2 + - uid: 4504 + components: + - type: Transform + pos: 1.5,22.5 + parent: 2 + - uid: 4505 + components: + - type: Transform + pos: 1.5,21.5 + parent: 2 + - uid: 4506 + components: + - type: Transform + pos: 0.5,21.5 + parent: 2 + - uid: 4507 + components: + - type: Transform + pos: -0.5,21.5 + parent: 2 + - uid: 4508 + components: + - type: Transform + pos: 2.5,21.5 + parent: 2 + - uid: 4509 + components: + - type: Transform + pos: 1.5,21.5 + parent: 2 + - uid: 4510 + components: + - type: Transform + pos: 1.5,20.5 + parent: 2 + - uid: 4511 + components: + - type: Transform + pos: 1.5,19.5 + parent: 2 + - uid: 4512 + components: + - type: Transform + pos: 1.5,18.5 + parent: 2 + - uid: 4513 + components: + - type: Transform + pos: 1.5,17.5 + parent: 2 + - uid: 4514 + components: + - type: Transform + pos: 1.5,16.5 + parent: 2 + - uid: 4515 + components: + - type: Transform + pos: 1.5,15.5 + parent: 2 + - uid: 4516 + components: + - type: Transform + pos: 1.5,11.5 + parent: 2 + - uid: 4517 + components: + - type: Transform + pos: 1.5,12.5 + parent: 2 + - uid: 4518 + components: + - type: Transform + pos: 1.5,13.5 + parent: 2 + - uid: 4519 + components: + - type: Transform + pos: 0.5,-9.5 + parent: 2 + - uid: 4520 + components: + - type: Transform + pos: 0.5,-10.5 + parent: 2 + - uid: 4521 + components: + - type: Transform + pos: 0.5,-11.5 + parent: 2 + - uid: 4522 + components: + - type: Transform + pos: 44.5,32.5 + parent: 2 + - uid: 4523 + components: + - type: Transform + pos: 45.5,32.5 + parent: 2 + - uid: 4524 + components: + - type: Transform + pos: 44.5,39.5 + parent: 2 + - uid: 4525 + components: + - type: Transform + pos: 45.5,39.5 + parent: 2 + - uid: 4526 + components: + - type: Transform + pos: 46.5,32.5 + parent: 2 + - uid: 4527 + components: + - type: Transform + pos: 46.5,39.5 + parent: 2 + - uid: 4528 + components: + - type: Transform + pos: -15.5,-55.5 + parent: 2 + - uid: 4529 + components: + - type: Transform + pos: 16.5,0.5 + parent: 2 + - uid: 4530 + components: + - type: Transform + pos: 15.5,0.5 + parent: 2 + - uid: 4531 + components: + - type: Transform + pos: 46.5,24.5 + parent: 2 + - uid: 4532 + components: + - type: Transform + pos: 0.5,61.5 + parent: 2 + - uid: 4533 + components: + - type: Transform + pos: -26.5,-51.5 + parent: 2 + - uid: 4534 + components: + - type: Transform + pos: -26.5,-52.5 + parent: 2 + - uid: 4535 + components: + - type: Transform + pos: -26.5,-54.5 + parent: 2 + - uid: 4536 + components: + - type: Transform + pos: -26.5,-53.5 + parent: 2 + - uid: 4537 + components: + - type: Transform + pos: -26.5,-55.5 + parent: 2 + - uid: 4538 + components: + - type: Transform + pos: -25.5,-55.5 + parent: 2 + - uid: 4539 + components: + - type: Transform + pos: -24.5,-55.5 + parent: 2 + - uid: 4540 + components: + - type: Transform + pos: -23.5,-55.5 + parent: 2 + - uid: 24022 + components: + - type: Transform + pos: 0.5,-64.5 + parent: 2 +- proto: CableApcStack + entities: + - uid: 4541 + components: + - type: Transform + pos: 4.5463753,15.41609 + parent: 2 + - uid: 4542 + components: + - type: Transform + pos: 23.490421,35.74485 + parent: 2 + - uid: 4543 + components: + - type: Transform + pos: -6.541481,75.627754 + parent: 2 + - uid: 4544 + components: + - type: Transform + pos: 14.475429,-51.410145 + parent: 2 + - uid: 4545 + components: + - type: Transform + pos: -14.377928,-61.538338 + parent: 2 + - uid: 4546 + components: + - type: Transform + pos: -41.494724,-33.60173 + parent: 2 + - uid: 4547 + components: + - type: Transform + pos: -3.426261,49.710426 + parent: 2 +- proto: CableApcStack1 + entities: + - uid: 4548 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 43.411194,-37.462727 + parent: 2 + - uid: 4550 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -28.48098,-57.535282 + parent: 2 + - uid: 4551 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 43.36432,-37.4471 + parent: 2 + - uid: 4552 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 43.379944,-37.47835 + parent: 2 + - uid: 4553 + components: + - type: Transform + pos: 36.47409,-38.541065 + parent: 2 + - uid: 4554 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -11.491627,-8.459211 + parent: 2 +- proto: CableApcStack10 + entities: + - uid: 4555 + components: + - type: Transform + pos: -36.41552,-29.740711 + parent: 2 +- proto: CableApcStackLingering10 + entities: + - uid: 4556 + components: + - type: Transform + pos: -11.538536,-53.24475 + parent: 2 +- proto: Cablecuffs + entities: + - uid: 4557 + components: + - type: Transform + pos: -6.5800214,12.394133 + parent: 2 + - uid: 4558 + components: + - type: Transform + pos: -6.3842173,12.52467 + parent: 2 + - uid: 4559 + components: + - type: Transform + pos: -6.169765,12.683176 + parent: 2 +- proto: CableHV + entities: + - uid: 4563 + components: + - type: Transform + pos: -43.5,-55.5 + parent: 2 + - uid: 4564 + components: + - type: Transform + pos: -43.5,-56.5 + parent: 2 + - uid: 4565 + components: + - type: Transform + pos: -43.5,-57.5 + parent: 2 + - uid: 4566 + components: + - type: Transform + pos: -43.5,-58.5 + parent: 2 + - uid: 4567 + components: + - type: Transform + pos: -43.5,-59.5 + parent: 2 + - uid: 4568 + components: + - type: Transform + pos: -42.5,-55.5 + parent: 2 + - uid: 4569 + components: + - type: Transform + pos: -42.5,-56.5 + parent: 2 + - uid: 4570 + components: + - type: Transform + pos: -42.5,-57.5 + parent: 2 + - uid: 4571 + components: + - type: Transform + pos: -42.5,-58.5 + parent: 2 + - uid: 4572 + components: + - type: Transform + pos: -42.5,-59.5 + parent: 2 + - uid: 4573 + components: + - type: Transform + pos: -41.5,-55.5 + parent: 2 + - uid: 4574 + components: + - type: Transform + pos: -41.5,-56.5 + parent: 2 + - uid: 4575 + components: + - type: Transform + pos: -41.5,-57.5 + parent: 2 + - uid: 4576 + components: + - type: Transform + pos: -41.5,-58.5 + parent: 2 + - uid: 4577 + components: + - type: Transform + pos: -41.5,-59.5 + parent: 2 + - uid: 4578 + components: + - type: Transform + pos: -47.5,-56.5 + parent: 2 + - uid: 4579 + components: + - type: Transform + pos: -47.5,-57.5 + parent: 2 + - uid: 4580 + components: + - type: Transform + pos: -47.5,-58.5 + parent: 2 + - uid: 4581 + components: + - type: Transform + pos: -47.5,-59.5 + parent: 2 + - uid: 4582 + components: + - type: Transform + pos: -46.5,-56.5 + parent: 2 + - uid: 4583 + components: + - type: Transform + pos: -46.5,-57.5 + parent: 2 + - uid: 4584 + components: + - type: Transform + pos: -46.5,-58.5 + parent: 2 + - uid: 4585 + components: + - type: Transform + pos: -46.5,-59.5 + parent: 2 + - uid: 4586 + components: + - type: Transform + pos: -45.5,-56.5 + parent: 2 + - uid: 4587 + components: + - type: Transform + pos: -45.5,-57.5 + parent: 2 + - uid: 4588 + components: + - type: Transform + pos: -45.5,-58.5 + parent: 2 + - uid: 4589 + components: + - type: Transform + pos: -45.5,-59.5 + parent: 2 + - uid: 4590 + components: + - type: Transform + pos: -51.5,-57.5 + parent: 2 + - uid: 4591 + components: + - type: Transform + pos: -51.5,-58.5 + parent: 2 + - uid: 4592 + components: + - type: Transform + pos: -51.5,-59.5 + parent: 2 + - uid: 4593 + components: + - type: Transform + pos: -50.5,-57.5 + parent: 2 + - uid: 4594 + components: + - type: Transform + pos: -50.5,-58.5 + parent: 2 + - uid: 4595 + components: + - type: Transform + pos: -50.5,-59.5 + parent: 2 + - uid: 4596 + components: + - type: Transform + pos: -49.5,-57.5 + parent: 2 + - uid: 4597 + components: + - type: Transform + pos: -49.5,-58.5 + parent: 2 + - uid: 4598 + components: + - type: Transform + pos: -49.5,-59.5 + parent: 2 + - uid: 4599 + components: + - type: Transform + pos: -55.5,-57.5 + parent: 2 + - uid: 4600 + components: + - type: Transform + pos: -55.5,-58.5 + parent: 2 + - uid: 4601 + components: + - type: Transform + pos: -55.5,-59.5 + parent: 2 + - uid: 4602 + components: + - type: Transform + pos: -54.5,-57.5 + parent: 2 + - uid: 4603 + components: + - type: Transform + pos: -54.5,-58.5 + parent: 2 + - uid: 4604 + components: + - type: Transform + pos: -54.5,-59.5 + parent: 2 + - uid: 4605 + components: + - type: Transform + pos: -53.5,-57.5 + parent: 2 + - uid: 4606 + components: + - type: Transform + pos: -53.5,-58.5 + parent: 2 + - uid: 4607 + components: + - type: Transform + pos: -53.5,-59.5 + parent: 2 + - uid: 4608 + components: + - type: Transform + pos: -40.5,-61.5 + parent: 2 + - uid: 4609 + components: + - type: Transform + pos: -55.5,-63.5 + parent: 2 + - uid: 4610 + components: + - type: Transform + pos: -55.5,-64.5 + parent: 2 + - uid: 4611 + components: + - type: Transform + pos: -55.5,-65.5 + parent: 2 + - uid: 4612 + components: + - type: Transform + pos: -54.5,-63.5 + parent: 2 + - uid: 4613 + components: + - type: Transform + pos: -54.5,-64.5 + parent: 2 + - uid: 4614 + components: + - type: Transform + pos: -54.5,-65.5 + parent: 2 + - uid: 4615 + components: + - type: Transform + pos: -53.5,-63.5 + parent: 2 + - uid: 4616 + components: + - type: Transform + pos: -53.5,-64.5 + parent: 2 + - uid: 4617 + components: + - type: Transform + pos: -53.5,-65.5 + parent: 2 + - uid: 4618 + components: + - type: Transform + pos: -51.5,-63.5 + parent: 2 + - uid: 4619 + components: + - type: Transform + pos: -51.5,-64.5 + parent: 2 + - uid: 4620 + components: + - type: Transform + pos: -51.5,-65.5 + parent: 2 + - uid: 4621 + components: + - type: Transform + pos: -50.5,-63.5 + parent: 2 + - uid: 4622 + components: + - type: Transform + pos: -50.5,-64.5 + parent: 2 + - uid: 4623 + components: + - type: Transform + pos: -50.5,-65.5 + parent: 2 + - uid: 4624 + components: + - type: Transform + pos: -49.5,-63.5 + parent: 2 + - uid: 4625 + components: + - type: Transform + pos: -49.5,-64.5 + parent: 2 + - uid: 4626 + components: + - type: Transform + pos: -49.5,-65.5 + parent: 2 + - uid: 4627 + components: + - type: Transform + pos: -47.5,-63.5 + parent: 2 + - uid: 4628 + components: + - type: Transform + pos: -47.5,-64.5 + parent: 2 + - uid: 4629 + components: + - type: Transform + pos: -47.5,-65.5 + parent: 2 + - uid: 4630 + components: + - type: Transform + pos: -47.5,-66.5 + parent: 2 + - uid: 4631 + components: + - type: Transform + pos: -46.5,-63.5 + parent: 2 + - uid: 4632 + components: + - type: Transform + pos: -46.5,-64.5 + parent: 2 + - uid: 4633 + components: + - type: Transform + pos: -46.5,-65.5 + parent: 2 + - uid: 4634 + components: + - type: Transform + pos: -46.5,-66.5 + parent: 2 + - uid: 4635 + components: + - type: Transform + pos: -45.5,-63.5 + parent: 2 + - uid: 4636 + components: + - type: Transform + pos: -45.5,-64.5 + parent: 2 + - uid: 4637 + components: + - type: Transform + pos: -45.5,-65.5 + parent: 2 + - uid: 4638 + components: + - type: Transform + pos: -45.5,-66.5 + parent: 2 + - uid: 4639 + components: + - type: Transform + pos: -43.5,-63.5 + parent: 2 + - uid: 4640 + components: + - type: Transform + pos: -43.5,-64.5 + parent: 2 + - uid: 4641 + components: + - type: Transform + pos: -43.5,-65.5 + parent: 2 + - uid: 4642 + components: + - type: Transform + pos: -43.5,-66.5 + parent: 2 + - uid: 4643 + components: + - type: Transform + pos: -43.5,-67.5 + parent: 2 + - uid: 4644 + components: + - type: Transform + pos: -42.5,-63.5 + parent: 2 + - uid: 4645 + components: + - type: Transform + pos: -42.5,-64.5 + parent: 2 + - uid: 4646 + components: + - type: Transform + pos: -42.5,-65.5 + parent: 2 + - uid: 4647 + components: + - type: Transform + pos: -42.5,-66.5 + parent: 2 + - uid: 4648 + components: + - type: Transform + pos: -42.5,-67.5 + parent: 2 + - uid: 4649 + components: + - type: Transform + pos: -41.5,-63.5 + parent: 2 + - uid: 4650 + components: + - type: Transform + pos: -41.5,-64.5 + parent: 2 + - uid: 4651 + components: + - type: Transform + pos: -41.5,-65.5 + parent: 2 + - uid: 4652 + components: + - type: Transform + pos: -41.5,-66.5 + parent: 2 + - uid: 4653 + components: + - type: Transform + pos: -41.5,-67.5 + parent: 2 + - uid: 4654 + components: + - type: Transform + pos: -42.5,-62.5 + parent: 2 + - uid: 4655 + components: + - type: Transform + pos: -46.5,-62.5 + parent: 2 + - uid: 4656 + components: + - type: Transform + pos: -50.5,-62.5 + parent: 2 + - uid: 4657 + components: + - type: Transform + pos: -54.5,-62.5 + parent: 2 + - uid: 4658 + components: + - type: Transform + pos: -54.5,-60.5 + parent: 2 + - uid: 4659 + components: + - type: Transform + pos: -50.5,-60.5 + parent: 2 + - uid: 4660 + components: + - type: Transform + pos: -46.5,-60.5 + parent: 2 + - uid: 4661 + components: + - type: Transform + pos: -42.5,-60.5 + parent: 2 + - uid: 4662 + components: + - type: Transform + pos: -35.5,-54.5 + parent: 2 + - uid: 4663 + components: + - type: Transform + pos: -36.5,-54.5 + parent: 2 + - uid: 4664 + components: + - type: Transform + pos: -37.5,-54.5 + parent: 2 + - uid: 4665 + components: + - type: Transform + pos: -38.5,-54.5 + parent: 2 + - uid: 4666 + components: + - type: Transform + pos: -39.5,-54.5 + parent: 2 + - uid: 4667 + components: + - type: Transform + pos: -39.5,-55.5 + parent: 2 + - uid: 4668 + components: + - type: Transform + pos: -39.5,-56.5 + parent: 2 + - uid: 4669 + components: + - type: Transform + pos: -39.5,-57.5 + parent: 2 + - uid: 4670 + components: + - type: Transform + pos: -39.5,-58.5 + parent: 2 + - uid: 4671 + components: + - type: Transform + pos: -39.5,-59.5 + parent: 2 + - uid: 4672 + components: + - type: Transform + pos: -39.5,-60.5 + parent: 2 + - uid: 4673 + components: + - type: Transform + pos: -39.5,-61.5 + parent: 2 + - uid: 4674 + components: + - type: Transform + pos: -41.5,-61.5 + parent: 2 + - uid: 4675 + components: + - type: Transform + pos: -43.5,-61.5 + parent: 2 + - uid: 4676 + components: + - type: Transform + pos: -44.5,-61.5 + parent: 2 + - uid: 4677 + components: + - type: Transform + pos: -45.5,-61.5 + parent: 2 + - uid: 4678 + components: + - type: Transform + pos: -47.5,-61.5 + parent: 2 + - uid: 4679 + components: + - type: Transform + pos: -48.5,-61.5 + parent: 2 + - uid: 4680 + components: + - type: Transform + pos: -49.5,-61.5 + parent: 2 + - uid: 4681 + components: + - type: Transform + pos: -51.5,-61.5 + parent: 2 + - uid: 4682 + components: + - type: Transform + pos: -52.5,-61.5 + parent: 2 + - uid: 4683 + components: + - type: Transform + pos: -53.5,-61.5 + parent: 2 + - uid: 4684 + components: + - type: Transform + pos: -54.5,-61.5 + parent: 2 + - uid: 4685 + components: + - type: Transform + pos: -55.5,-61.5 + parent: 2 + - uid: 4686 + components: + - type: Transform + pos: -56.5,-61.5 + parent: 2 + - uid: 4687 + components: + - type: Transform + pos: 73.5,27.5 + parent: 2 + - uid: 4688 + components: + - type: Transform + pos: 47.5,22.5 + parent: 2 + - uid: 4689 + components: + - type: Transform + pos: 47.5,23.5 + parent: 2 + - uid: 4690 + components: + - type: Transform + pos: 48.5,23.5 + parent: 2 + - uid: 4691 + components: + - type: Transform + pos: 49.5,23.5 + parent: 2 + - uid: 4692 + components: + - type: Transform + pos: 50.5,23.5 + parent: 2 + - uid: 4693 + components: + - type: Transform + pos: 51.5,23.5 + parent: 2 + - uid: 4694 + components: + - type: Transform + pos: 52.5,23.5 + parent: 2 + - uid: 4695 + components: + - type: Transform + pos: 53.5,23.5 + parent: 2 + - uid: 4696 + components: + - type: Transform + pos: 54.5,23.5 + parent: 2 + - uid: 4697 + components: + - type: Transform + pos: 55.5,23.5 + parent: 2 + - uid: 4698 + components: + - type: Transform + pos: 56.5,23.5 + parent: 2 + - uid: 4699 + components: + - type: Transform + pos: 57.5,23.5 + parent: 2 + - uid: 4700 + components: + - type: Transform + pos: 58.5,23.5 + parent: 2 + - uid: 4701 + components: + - type: Transform + pos: 59.5,23.5 + parent: 2 + - uid: 4702 + components: + - type: Transform + pos: 60.5,23.5 + parent: 2 + - uid: 4703 + components: + - type: Transform + pos: 62.5,23.5 + parent: 2 + - uid: 4704 + components: + - type: Transform + pos: 63.5,23.5 + parent: 2 + - uid: 4705 + components: + - type: Transform + pos: 64.5,23.5 + parent: 2 + - uid: 4706 + components: + - type: Transform + pos: 66.5,23.5 + parent: 2 + - uid: 4707 + components: + - type: Transform + pos: 67.5,23.5 + parent: 2 + - uid: 4708 + components: + - type: Transform + pos: 68.5,23.5 + parent: 2 + - uid: 4709 + components: + - type: Transform + pos: 69.5,23.5 + parent: 2 + - uid: 4710 + components: + - type: Transform + pos: 70.5,23.5 + parent: 2 + - uid: 4711 + components: + - type: Transform + pos: 72.5,23.5 + parent: 2 + - uid: 4712 + components: + - type: Transform + pos: 73.5,23.5 + parent: 2 + - uid: 4713 + components: + - type: Transform + pos: 74.5,23.5 + parent: 2 + - uid: 4714 + components: + - type: Transform + pos: 75.5,23.5 + parent: 2 + - uid: 4715 + components: + - type: Transform + pos: 73.5,26.5 + parent: 2 + - uid: 4716 + components: + - type: Transform + pos: 73.5,25.5 + parent: 2 + - uid: 4717 + components: + - type: Transform + pos: 73.5,24.5 + parent: 2 + - uid: 4718 + components: + - type: Transform + pos: 73.5,19.5 + parent: 2 + - uid: 4719 + components: + - type: Transform + pos: 73.5,20.5 + parent: 2 + - uid: 4720 + components: + - type: Transform + pos: 73.5,21.5 + parent: 2 + - uid: 4721 + components: + - type: Transform + pos: 73.5,22.5 + parent: 2 + - uid: 4722 + components: + - type: Transform + pos: 69.5,22.5 + parent: 2 + - uid: 4723 + components: + - type: Transform + pos: 69.5,21.5 + parent: 2 + - uid: 4724 + components: + - type: Transform + pos: 69.5,20.5 + parent: 2 + - uid: 4725 + components: + - type: Transform + pos: 69.5,19.5 + parent: 2 + - uid: 4726 + components: + - type: Transform + pos: 65.5,28.5 + parent: 2 + - uid: 4727 + components: + - type: Transform + pos: 65.5,27.5 + parent: 2 + - uid: 4728 + components: + - type: Transform + pos: 65.5,26.5 + parent: 2 + - uid: 4729 + components: + - type: Transform + pos: 65.5,25.5 + parent: 2 + - uid: 4730 + components: + - type: Transform + pos: 65.5,24.5 + parent: 2 + - uid: 4731 + components: + - type: Transform + pos: 65.5,21.5 + parent: 2 + - uid: 4732 + components: + - type: Transform + pos: 65.5,20.5 + parent: 2 + - uid: 4733 + components: + - type: Transform + pos: 65.5,19.5 + parent: 2 + - uid: 4734 + components: + - type: Transform + pos: 65.5,18.5 + parent: 2 + - uid: 4735 + components: + - type: Transform + pos: 65.5,22.5 + parent: 2 + - uid: 4736 + components: + - type: Transform + pos: 57.5,24.5 + parent: 2 + - uid: 4737 + components: + - type: Transform + pos: 61.5,17.5 + parent: 2 + - uid: 4738 + components: + - type: Transform + pos: 61.5,18.5 + parent: 2 + - uid: 4739 + components: + - type: Transform + pos: 61.5,19.5 + parent: 2 + - uid: 4740 + components: + - type: Transform + pos: 61.5,20.5 + parent: 2 + - uid: 4741 + components: + - type: Transform + pos: 61.5,21.5 + parent: 2 + - uid: 4742 + components: + - type: Transform + pos: 61.5,22.5 + parent: 2 + - uid: 4743 + components: + - type: Transform + pos: 61.5,24.5 + parent: 2 + - uid: 4744 + components: + - type: Transform + pos: 61.5,25.5 + parent: 2 + - uid: 4745 + components: + - type: Transform + pos: 61.5,26.5 + parent: 2 + - uid: 4746 + components: + - type: Transform + pos: 61.5,27.5 + parent: 2 + - uid: 4747 + components: + - type: Transform + pos: 61.5,28.5 + parent: 2 + - uid: 4748 + components: + - type: Transform + pos: 61.5,29.5 + parent: 2 + - uid: 4749 + components: + - type: Transform + pos: 57.5,25.5 + parent: 2 + - uid: 4750 + components: + - type: Transform + pos: 57.5,26.5 + parent: 2 + - uid: 4751 + components: + - type: Transform + pos: 57.5,27.5 + parent: 2 + - uid: 4752 + components: + - type: Transform + pos: 57.5,28.5 + parent: 2 + - uid: 4753 + components: + - type: Transform + pos: 57.5,29.5 + parent: 2 + - uid: 4754 + components: + - type: Transform + pos: 57.5,31.5 + parent: 2 + - uid: 4755 + components: + - type: Transform + pos: 57.5,32.5 + parent: 2 + - uid: 4756 + components: + - type: Transform + pos: 57.5,22.5 + parent: 2 + - uid: 4757 + components: + - type: Transform + pos: 57.5,21.5 + parent: 2 + - uid: 4758 + components: + - type: Transform + pos: 57.5,20.5 + parent: 2 + - uid: 4759 + components: + - type: Transform + pos: 57.5,19.5 + parent: 2 + - uid: 4760 + components: + - type: Transform + pos: 57.5,18.5 + parent: 2 + - uid: 4761 + components: + - type: Transform + pos: -54.5,32.5 + parent: 2 + - uid: 4762 + components: + - type: Transform + pos: -54.5,31.5 + parent: 2 + - uid: 4763 + components: + - type: Transform + pos: -54.5,30.5 + parent: 2 + - uid: 4764 + components: + - type: Transform + pos: -54.5,28.5 + parent: 2 + - uid: 4765 + components: + - type: Transform + pos: -53.5,29.5 + parent: 2 + - uid: 4766 + components: + - type: Transform + pos: -52.5,29.5 + parent: 2 + - uid: 4767 + components: + - type: Transform + pos: -58.5,29.5 + parent: 2 + - uid: 4768 + components: + - type: Transform + pos: -58.5,28.5 + parent: 2 + - uid: 4769 + components: + - type: Transform + pos: -59.5,29.5 + parent: 2 + - uid: 4770 + components: + - type: Transform + pos: -57.5,29.5 + parent: 2 + - uid: 4771 + components: + - type: Transform + pos: -57.5,28.5 + parent: 2 + - uid: 4772 + components: + - type: Transform + pos: -59.5,28.5 + parent: 2 + - uid: 4773 + components: + - type: Transform + pos: -62.5,28.5 + parent: 2 + - uid: 4774 + components: + - type: Transform + pos: -62.5,27.5 + parent: 2 + - uid: 4775 + components: + - type: Transform + pos: -62.5,26.5 + parent: 2 + - uid: 4776 + components: + - type: Transform + pos: -63.5,26.5 + parent: 2 + - uid: 4777 + components: + - type: Transform + pos: -63.5,27.5 + parent: 2 + - uid: 4778 + components: + - type: Transform + pos: -63.5,28.5 + parent: 2 + - uid: 4779 + components: + - type: Transform + pos: -61.5,28.5 + parent: 2 + - uid: 4780 + components: + - type: Transform + pos: -61.5,27.5 + parent: 2 + - uid: 4781 + components: + - type: Transform + pos: -67.5,27.5 + parent: 2 + - uid: 4782 + components: + - type: Transform + pos: -67.5,26.5 + parent: 2 + - uid: 4783 + components: + - type: Transform + pos: -67.5,25.5 + parent: 2 + - uid: 4784 + components: + - type: Transform + pos: -66.5,27.5 + parent: 2 + - uid: 4785 + components: + - type: Transform + pos: -66.5,26.5 + parent: 2 + - uid: 4786 + components: + - type: Transform + pos: -66.5,25.5 + parent: 2 + - uid: 4787 + components: + - type: Transform + pos: -65.5,27.5 + parent: 2 + - uid: 4788 + components: + - type: Transform + pos: -65.5,26.5 + parent: 2 + - uid: 4789 + components: + - type: Transform + pos: -65.5,25.5 + parent: 2 + - uid: 4790 + components: + - type: Transform + pos: -65.5,23.5 + parent: 2 + - uid: 4791 + components: + - type: Transform + pos: -66.5,23.5 + parent: 2 + - uid: 4792 + components: + - type: Transform + pos: -72.5,23.5 + parent: 2 + - uid: 4793 + components: + - type: Transform + pos: -71.5,23.5 + parent: 2 + - uid: 4794 + components: + - type: Transform + pos: -70.5,23.5 + parent: 2 + - uid: 4795 + components: + - type: Transform + pos: -69.5,23.5 + parent: 2 + - uid: 4796 + components: + - type: Transform + pos: -71.5,25.5 + parent: 2 + - uid: 4797 + components: + - type: Transform + pos: -71.5,26.5 + parent: 2 + - uid: 4798 + components: + - type: Transform + pos: -71.5,27.5 + parent: 2 + - uid: 4799 + components: + - type: Transform + pos: -70.5,25.5 + parent: 2 + - uid: 4800 + components: + - type: Transform + pos: -70.5,26.5 + parent: 2 + - uid: 4801 + components: + - type: Transform + pos: -70.5,27.5 + parent: 2 + - uid: 4802 + components: + - type: Transform + pos: -69.5,25.5 + parent: 2 + - uid: 4803 + components: + - type: Transform + pos: -69.5,26.5 + parent: 2 + - uid: 4804 + components: + - type: Transform + pos: -69.5,27.5 + parent: 2 + - uid: 4805 + components: + - type: Transform + pos: -70.5,21.5 + parent: 2 + - uid: 4806 + components: + - type: Transform + pos: -71.5,19.5 + parent: 2 + - uid: 4807 + components: + - type: Transform + pos: -70.5,19.5 + parent: 2 + - uid: 4808 + components: + - type: Transform + pos: -66.5,21.5 + parent: 2 + - uid: 4809 + components: + - type: Transform + pos: -69.5,21.5 + parent: 2 + - uid: 4810 + components: + - type: Transform + pos: -67.5,19.5 + parent: 2 + - uid: 4811 + components: + - type: Transform + pos: -67.5,20.5 + parent: 2 + - uid: 4812 + components: + - type: Transform + pos: -71.5,20.5 + parent: 2 + - uid: 4813 + components: + - type: Transform + pos: -71.5,21.5 + parent: 2 + - uid: 4814 + components: + - type: Transform + pos: -69.5,19.5 + parent: 2 + - uid: 4815 + components: + - type: Transform + pos: -69.5,20.5 + parent: 2 + - uid: 4816 + components: + - type: Transform + pos: -70.5,20.5 + parent: 2 + - uid: 4817 + components: + - type: Transform + pos: -66.5,19.5 + parent: 2 + - uid: 4818 + components: + - type: Transform + pos: -66.5,20.5 + parent: 2 + - uid: 4819 + components: + - type: Transform + pos: -67.5,21.5 + parent: 2 + - uid: 4820 + components: + - type: Transform + pos: -65.5,21.5 + parent: 2 + - uid: 4821 + components: + - type: Transform + pos: -65.5,20.5 + parent: 2 + - uid: 4822 + components: + - type: Transform + pos: -65.5,19.5 + parent: 2 + - uid: 4823 + components: + - type: Transform + pos: 2.5,-35.5 + parent: 2 + - uid: 4824 + components: + - type: Transform + pos: 5.5,34.5 + parent: 2 + - uid: 4825 + components: + - type: Transform + pos: 6.5,34.5 + parent: 2 + - uid: 4826 + components: + - type: Transform + pos: -2.5,-48.5 + parent: 2 + - uid: 4827 + components: + - type: Transform + pos: 60.5,19.5 + parent: 2 + - uid: 4828 + components: + - type: Transform + pos: 60.5,18.5 + parent: 2 + - uid: 4829 + components: + - type: Transform + pos: 60.5,21.5 + parent: 2 + - uid: 4830 + components: + - type: Transform + pos: 60.5,17.5 + parent: 2 + - uid: 4831 + components: + - type: Transform + pos: 62.5,17.5 + parent: 2 + - uid: 4832 + components: + - type: Transform + pos: -35.5,-55.5 + parent: 2 + - uid: 4833 + components: + - type: Transform + pos: 5.5,32.5 + parent: 2 + - uid: 4834 + components: + - type: Transform + pos: -20.5,-55.5 + parent: 2 + - uid: 4835 + components: + - type: Transform + pos: -3.5,-59.5 + parent: 2 + - uid: 4836 + components: + - type: Transform + pos: 7.5,34.5 + parent: 2 + - uid: 4837 + components: + - type: Transform + pos: -16.5,-55.5 + parent: 2 + - uid: 4838 + components: + - type: Transform + pos: -20.5,-57.5 + parent: 2 + - uid: 4839 + components: + - type: Transform + pos: 47.5,-62.5 + parent: 2 + - uid: 4840 + components: + - type: Transform + pos: 43.5,-58.5 + parent: 2 + - uid: 4841 + components: + - type: Transform + pos: 43.5,-51.5 + parent: 2 + - uid: 4842 + components: + - type: Transform + pos: 43.5,-52.5 + parent: 2 + - uid: 4843 + components: + - type: Transform + pos: 43.5,-53.5 + parent: 2 + - uid: 4844 + components: + - type: Transform + pos: 43.5,-54.5 + parent: 2 + - uid: 4845 + components: + - type: Transform + pos: 43.5,-55.5 + parent: 2 + - uid: 4846 + components: + - type: Transform + pos: 43.5,-56.5 + parent: 2 + - uid: 4847 + components: + - type: Transform + pos: 43.5,-59.5 + parent: 2 + - uid: 4848 + components: + - type: Transform + pos: 43.5,-60.5 + parent: 2 + - uid: 4849 + components: + - type: Transform + pos: 43.5,-61.5 + parent: 2 + - uid: 4850 + components: + - type: Transform + pos: 43.5,-62.5 + parent: 2 + - uid: 4851 + components: + - type: Transform + pos: 43.5,-63.5 + parent: 2 + - uid: 4852 + components: + - type: Transform + pos: 47.5,-61.5 + parent: 2 + - uid: 4853 + components: + - type: Transform + pos: 47.5,-60.5 + parent: 2 + - uid: 4854 + components: + - type: Transform + pos: 47.5,-59.5 + parent: 2 + - uid: 4855 + components: + - type: Transform + pos: 47.5,-58.5 + parent: 2 + - uid: 4856 + components: + - type: Transform + pos: 47.5,-56.5 + parent: 2 + - uid: 4857 + components: + - type: Transform + pos: 47.5,-55.5 + parent: 2 + - uid: 4858 + components: + - type: Transform + pos: 47.5,-54.5 + parent: 2 + - uid: 4859 + components: + - type: Transform + pos: 47.5,-53.5 + parent: 2 + - uid: 4860 + components: + - type: Transform + pos: 47.5,-52.5 + parent: 2 + - uid: 4861 + components: + - type: Transform + pos: 51.5,-53.5 + parent: 2 + - uid: 4862 + components: + - type: Transform + pos: 51.5,-54.5 + parent: 2 + - uid: 4863 + components: + - type: Transform + pos: 51.5,-55.5 + parent: 2 + - uid: 4864 + components: + - type: Transform + pos: 51.5,-56.5 + parent: 2 + - uid: 4865 + components: + - type: Transform + pos: 51.5,-58.5 + parent: 2 + - uid: 4866 + components: + - type: Transform + pos: 51.5,-59.5 + parent: 2 + - uid: 4867 + components: + - type: Transform + pos: 51.5,-60.5 + parent: 2 + - uid: 4868 + components: + - type: Transform + pos: 51.5,-61.5 + parent: 2 + - uid: 4869 + components: + - type: Transform + pos: 55.5,-61.5 + parent: 2 + - uid: 4870 + components: + - type: Transform + pos: 55.5,-60.5 + parent: 2 + - uid: 4871 + components: + - type: Transform + pos: 55.5,-59.5 + parent: 2 + - uid: 4872 + components: + - type: Transform + pos: 55.5,-58.5 + parent: 2 + - uid: 4873 + components: + - type: Transform + pos: 55.5,-56.5 + parent: 2 + - uid: 4874 + components: + - type: Transform + pos: 55.5,-55.5 + parent: 2 + - uid: 4875 + components: + - type: Transform + pos: 55.5,-54.5 + parent: 2 + - uid: 4876 + components: + - type: Transform + pos: 55.5,-53.5 + parent: 2 + - uid: 4877 + components: + - type: Transform + pos: 57.5,-57.5 + parent: 2 + - uid: 4878 + components: + - type: Transform + pos: 42.5,-57.5 + parent: 2 + - uid: 4879 + components: + - type: Transform + pos: 41.5,-57.5 + parent: 2 + - uid: 4880 + components: + - type: Transform + pos: 40.5,-57.5 + parent: 2 + - uid: 4881 + components: + - type: Transform + pos: 40.5,-58.5 + parent: 2 + - uid: 4882 + components: + - type: Transform + pos: 40.5,-59.5 + parent: 2 + - uid: 4883 + components: + - type: Transform + pos: 40.5,-56.5 + parent: 2 + - uid: 4884 + components: + - type: Transform + pos: 40.5,-55.5 + parent: 2 + - uid: 4885 + components: + - type: Transform + pos: 40.5,-54.5 + parent: 2 + - uid: 4886 + components: + - type: Transform + pos: 40.5,-53.5 + parent: 2 + - uid: 4887 + components: + - type: Transform + pos: 40.5,-52.5 + parent: 2 + - uid: 4888 + components: + - type: Transform + pos: 40.5,-51.5 + parent: 2 + - uid: 4889 + components: + - type: Transform + pos: 40.5,-50.5 + parent: 2 + - uid: 4890 + components: + - type: Transform + pos: 40.5,-49.5 + parent: 2 + - uid: 4891 + components: + - type: Transform + pos: 40.5,-48.5 + parent: 2 + - uid: 4892 + components: + - type: Transform + pos: 41.5,-48.5 + parent: 2 + - uid: 4893 + components: + - type: Transform + pos: 42.5,-48.5 + parent: 2 + - uid: 4894 + components: + - type: Transform + pos: 42.5,-47.5 + parent: 2 + - uid: 4895 + components: + - type: Transform + pos: 42.5,-46.5 + parent: 2 + - uid: 4896 + components: + - type: Transform + pos: 54.5,-59.5 + parent: 2 + - uid: 4897 + components: + - type: Transform + pos: 42.5,-59.5 + parent: 2 + - uid: 4898 + components: + - type: Transform + pos: 42.5,-60.5 + parent: 2 + - uid: 4899 + components: + - type: Transform + pos: 42.5,-61.5 + parent: 2 + - uid: 4900 + components: + - type: Transform + pos: 42.5,-62.5 + parent: 2 + - uid: 4901 + components: + - type: Transform + pos: 42.5,-63.5 + parent: 2 + - uid: 4902 + components: + - type: Transform + pos: 44.5,-63.5 + parent: 2 + - uid: 4903 + components: + - type: Transform + pos: 44.5,-62.5 + parent: 2 + - uid: 4904 + components: + - type: Transform + pos: 44.5,-61.5 + parent: 2 + - uid: 4905 + components: + - type: Transform + pos: 44.5,-60.5 + parent: 2 + - uid: 4906 + components: + - type: Transform + pos: 44.5,-59.5 + parent: 2 + - uid: 4907 + components: + - type: Transform + pos: 46.5,-59.5 + parent: 2 + - uid: 4908 + components: + - type: Transform + pos: 46.5,-60.5 + parent: 2 + - uid: 4909 + components: + - type: Transform + pos: 46.5,-61.5 + parent: 2 + - uid: 4910 + components: + - type: Transform + pos: 46.5,-62.5 + parent: 2 + - uid: 4911 + components: + - type: Transform + pos: 48.5,-62.5 + parent: 2 + - uid: 4912 + components: + - type: Transform + pos: 48.5,-61.5 + parent: 2 + - uid: 4913 + components: + - type: Transform + pos: 48.5,-60.5 + parent: 2 + - uid: 4914 + components: + - type: Transform + pos: 48.5,-59.5 + parent: 2 + - uid: 4915 + components: + - type: Transform + pos: 42.5,-51.5 + parent: 2 + - uid: 4916 + components: + - type: Transform + pos: 42.5,-52.5 + parent: 2 + - uid: 4917 + components: + - type: Transform + pos: 42.5,-53.5 + parent: 2 + - uid: 4918 + components: + - type: Transform + pos: 42.5,-54.5 + parent: 2 + - uid: 4919 + components: + - type: Transform + pos: 42.5,-55.5 + parent: 2 + - uid: 4920 + components: + - type: Transform + pos: 44.5,-55.5 + parent: 2 + - uid: 4921 + components: + - type: Transform + pos: 44.5,-54.5 + parent: 2 + - uid: 4922 + components: + - type: Transform + pos: 44.5,-53.5 + parent: 2 + - uid: 4923 + components: + - type: Transform + pos: 44.5,-52.5 + parent: 2 + - uid: 4924 + components: + - type: Transform + pos: 44.5,-51.5 + parent: 2 + - uid: 4925 + components: + - type: Transform + pos: 46.5,-52.5 + parent: 2 + - uid: 4926 + components: + - type: Transform + pos: 46.5,-53.5 + parent: 2 + - uid: 4927 + components: + - type: Transform + pos: 46.5,-54.5 + parent: 2 + - uid: 4928 + components: + - type: Transform + pos: 46.5,-55.5 + parent: 2 + - uid: 4929 + components: + - type: Transform + pos: 48.5,-55.5 + parent: 2 + - uid: 4930 + components: + - type: Transform + pos: 48.5,-54.5 + parent: 2 + - uid: 4931 + components: + - type: Transform + pos: 48.5,-53.5 + parent: 2 + - uid: 4932 + components: + - type: Transform + pos: 48.5,-52.5 + parent: 2 + - uid: 4933 + components: + - type: Transform + pos: 50.5,-53.5 + parent: 2 + - uid: 4934 + components: + - type: Transform + pos: 50.5,-54.5 + parent: 2 + - uid: 4935 + components: + - type: Transform + pos: 50.5,-55.5 + parent: 2 + - uid: 4936 + components: + - type: Transform + pos: 52.5,-53.5 + parent: 2 + - uid: 4937 + components: + - type: Transform + pos: 52.5,-54.5 + parent: 2 + - uid: 4938 + components: + - type: Transform + pos: 52.5,-55.5 + parent: 2 + - uid: 4939 + components: + - type: Transform + pos: 54.5,-53.5 + parent: 2 + - uid: 4940 + components: + - type: Transform + pos: 54.5,-54.5 + parent: 2 + - uid: 4941 + components: + - type: Transform + pos: 54.5,-55.5 + parent: 2 + - uid: 4942 + components: + - type: Transform + pos: 56.5,-53.5 + parent: 2 + - uid: 4943 + components: + - type: Transform + pos: 56.5,-54.5 + parent: 2 + - uid: 4944 + components: + - type: Transform + pos: 56.5,-55.5 + parent: 2 + - uid: 4945 + components: + - type: Transform + pos: 56.5,-59.5 + parent: 2 + - uid: 4946 + components: + - type: Transform + pos: 56.5,-60.5 + parent: 2 + - uid: 4947 + components: + - type: Transform + pos: 56.5,-61.5 + parent: 2 + - uid: 4948 + components: + - type: Transform + pos: 54.5,-60.5 + parent: 2 + - uid: 4949 + components: + - type: Transform + pos: 54.5,-61.5 + parent: 2 + - uid: 4950 + components: + - type: Transform + pos: 52.5,-59.5 + parent: 2 + - uid: 4951 + components: + - type: Transform + pos: 52.5,-60.5 + parent: 2 + - uid: 4952 + components: + - type: Transform + pos: 52.5,-61.5 + parent: 2 + - uid: 4953 + components: + - type: Transform + pos: 50.5,-59.5 + parent: 2 + - uid: 4954 + components: + - type: Transform + pos: 50.5,-60.5 + parent: 2 + - uid: 4955 + components: + - type: Transform + pos: 50.5,-61.5 + parent: 2 + - uid: 4956 + components: + - type: Transform + pos: -20.5,-58.5 + parent: 2 + - uid: 4957 + components: + - type: Transform + pos: -20.5,-56.5 + parent: 2 + - uid: 4958 + components: + - type: Transform + pos: -12.5,-58.5 + parent: 2 + - uid: 4959 + components: + - type: Transform + pos: -11.5,-58.5 + parent: 2 + - uid: 4960 + components: + - type: Transform + pos: -10.5,-58.5 + parent: 2 + - uid: 4961 + components: + - type: Transform + pos: -9.5,-58.5 + parent: 2 + - uid: 4962 + components: + - type: Transform + pos: -8.5,-58.5 + parent: 2 + - uid: 4963 + components: + - type: Transform + pos: -7.5,-58.5 + parent: 2 + - uid: 4964 + components: + - type: Transform + pos: -7.5,-59.5 + parent: 2 + - uid: 4965 + components: + - type: Transform + pos: -4.5,-56.5 + parent: 2 + - uid: 4966 + components: + - type: Transform + pos: -4.5,-57.5 + parent: 2 + - uid: 4967 + components: + - type: Transform + pos: -4.5,-58.5 + parent: 2 + - uid: 4968 + components: + - type: Transform + pos: 8.5,-47.5 + parent: 2 + - uid: 4969 + components: + - type: Transform + pos: 11.5,-46.5 + parent: 2 + - uid: 4970 + components: + - type: Transform + pos: 11.5,-45.5 + parent: 2 + - uid: 4971 + components: + - type: Transform + pos: 11.5,-44.5 + parent: 2 + - uid: 4972 + components: + - type: Transform + pos: -15.5,-52.5 + parent: 2 + - uid: 4973 + components: + - type: Transform + pos: -14.5,-52.5 + parent: 2 + - uid: 4974 + components: + - type: Transform + pos: -13.5,-52.5 + parent: 2 + - uid: 4975 + components: + - type: Transform + pos: -12.5,-52.5 + parent: 2 + - uid: 4976 + components: + - type: Transform + pos: -11.5,-52.5 + parent: 2 + - uid: 4977 + components: + - type: Transform + pos: -10.5,-52.5 + parent: 2 + - uid: 4978 + components: + - type: Transform + pos: -9.5,-52.5 + parent: 2 + - uid: 4979 + components: + - type: Transform + pos: -8.5,-52.5 + parent: 2 + - uid: 4980 + components: + - type: Transform + pos: -7.5,-52.5 + parent: 2 + - uid: 4981 + components: + - type: Transform + pos: -6.5,-52.5 + parent: 2 + - uid: 4982 + components: + - type: Transform + pos: -5.5,-52.5 + parent: 2 + - uid: 4983 + components: + - type: Transform + pos: -5.5,-51.5 + parent: 2 + - uid: 4984 + components: + - type: Transform + pos: -4.5,-51.5 + parent: 2 + - uid: 4985 + components: + - type: Transform + pos: -3.5,-51.5 + parent: 2 + - uid: 4986 + components: + - type: Transform + pos: -2.5,-51.5 + parent: 2 + - uid: 4987 + components: + - type: Transform + pos: -1.5,-51.5 + parent: 2 + - uid: 4988 + components: + - type: Transform + pos: -0.5,-51.5 + parent: 2 + - uid: 4989 + components: + - type: Transform + pos: 0.5,-51.5 + parent: 2 + - uid: 4990 + components: + - type: Transform + pos: 0.5,-52.5 + parent: 2 + - uid: 4991 + components: + - type: Transform + pos: 0.5,-53.5 + parent: 2 + - uid: 4992 + components: + - type: Transform + pos: -34.5,-54.5 + parent: 2 + - uid: 4993 + components: + - type: Transform + pos: -32.5,-55.5 + parent: 2 + - uid: 4994 + components: + - type: Transform + pos: -31.5,-55.5 + parent: 2 + - uid: 4995 + components: + - type: Transform + pos: -30.5,-55.5 + parent: 2 + - uid: 4996 + components: + - type: Transform + pos: -29.5,-55.5 + parent: 2 + - uid: 4997 + components: + - type: Transform + pos: -28.5,-55.5 + parent: 2 + - uid: 4998 + components: + - type: Transform + pos: -28.5,-54.5 + parent: 2 + - uid: 4999 + components: + - type: Transform + pos: -28.5,-53.5 + parent: 2 + - uid: 5000 + components: + - type: Transform + pos: -28.5,-52.5 + parent: 2 + - uid: 5001 + components: + - type: Transform + pos: -28.5,-51.5 + parent: 2 + - uid: 5002 + components: + - type: Transform + pos: -28.5,-50.5 + parent: 2 + - uid: 5003 + components: + - type: Transform + pos: -27.5,-50.5 + parent: 2 + - uid: 5004 + components: + - type: Transform + pos: -26.5,-50.5 + parent: 2 + - uid: 5005 + components: + - type: Transform + pos: -25.5,-50.5 + parent: 2 + - uid: 5006 + components: + - type: Transform + pos: -24.5,-50.5 + parent: 2 + - uid: 5007 + components: + - type: Transform + pos: -23.5,-50.5 + parent: 2 + - uid: 5008 + components: + - type: Transform + pos: -22.5,-50.5 + parent: 2 + - uid: 5009 + components: + - type: Transform + pos: -21.5,-50.5 + parent: 2 + - uid: 5010 + components: + - type: Transform + pos: -21.5,-51.5 + parent: 2 + - uid: 5011 + components: + - type: Transform + pos: -20.5,-51.5 + parent: 2 + - uid: 5012 + components: + - type: Transform + pos: -19.5,-51.5 + parent: 2 + - uid: 5013 + components: + - type: Transform + pos: -18.5,-51.5 + parent: 2 + - uid: 5014 + components: + - type: Transform + pos: -17.5,-51.5 + parent: 2 + - uid: 5015 + components: + - type: Transform + pos: -16.5,-51.5 + parent: 2 + - uid: 5016 + components: + - type: Transform + pos: -15.5,-51.5 + parent: 2 + - uid: 5017 + components: + - type: Transform + pos: -26.5,-51.5 + parent: 2 + - uid: 5018 + components: + - type: Transform + pos: -26.5,-52.5 + parent: 2 + - uid: 5019 + components: + - type: Transform + pos: -26.5,-53.5 + parent: 2 + - uid: 5020 + components: + - type: Transform + pos: -26.5,-54.5 + parent: 2 + - uid: 5021 + components: + - type: Transform + pos: -26.5,-55.5 + parent: 2 + - uid: 5022 + components: + - type: Transform + pos: -25.5,-55.5 + parent: 2 + - uid: 5023 + components: + - type: Transform + pos: -24.5,-55.5 + parent: 2 + - uid: 5024 + components: + - type: Transform + pos: -23.5,-55.5 + parent: 2 + - uid: 5025 + components: + - type: Transform + pos: -22.5,-55.5 + parent: 2 + - uid: 5026 + components: + - type: Transform + pos: -22.5,-54.5 + parent: 2 + - uid: 5027 + components: + - type: Transform + pos: -4.5,-43.5 + parent: 2 + - uid: 5028 + components: + - type: Transform + pos: 13.5,-44.5 + parent: 2 + - uid: 5029 + components: + - type: Transform + pos: 12.5,-44.5 + parent: 2 + - uid: 5030 + components: + - type: Transform + pos: -21.5,-49.5 + parent: 2 + - uid: 5031 + components: + - type: Transform + pos: -21.5,-48.5 + parent: 2 + - uid: 5032 + components: + - type: Transform + pos: -21.5,-47.5 + parent: 2 + - uid: 5033 + components: + - type: Transform + pos: -21.5,-46.5 + parent: 2 + - uid: 5034 + components: + - type: Transform + pos: -21.5,-45.5 + parent: 2 + - uid: 5035 + components: + - type: Transform + pos: -21.5,-44.5 + parent: 2 + - uid: 5036 + components: + - type: Transform + pos: -21.5,-43.5 + parent: 2 + - uid: 5037 + components: + - type: Transform + pos: -22.5,-26.5 + parent: 2 + - uid: 5038 + components: + - type: Transform + pos: -21.5,-34.5 + parent: 2 + - uid: 5039 + components: + - type: Transform + pos: -20.5,-43.5 + parent: 2 + - uid: 5040 + components: + - type: Transform + pos: -20.5,-42.5 + parent: 2 + - uid: 5041 + components: + - type: Transform + pos: -20.5,-41.5 + parent: 2 + - uid: 5042 + components: + - type: Transform + pos: -20.5,-40.5 + parent: 2 + - uid: 5043 + components: + - type: Transform + pos: -20.5,-39.5 + parent: 2 + - uid: 5044 + components: + - type: Transform + pos: -20.5,-38.5 + parent: 2 + - uid: 5045 + components: + - type: Transform + pos: -20.5,-37.5 + parent: 2 + - uid: 5046 + components: + - type: Transform + pos: -20.5,-36.5 + parent: 2 + - uid: 5047 + components: + - type: Transform + pos: -20.5,-35.5 + parent: 2 + - uid: 5048 + components: + - type: Transform + pos: -21.5,-35.5 + parent: 2 + - uid: 5049 + components: + - type: Transform + pos: -21.5,-33.5 + parent: 2 + - uid: 5050 + components: + - type: Transform + pos: -21.5,-32.5 + parent: 2 + - uid: 5051 + components: + - type: Transform + pos: -21.5,-31.5 + parent: 2 + - uid: 5052 + components: + - type: Transform + pos: -21.5,-30.5 + parent: 2 + - uid: 5053 + components: + - type: Transform + pos: -21.5,-29.5 + parent: 2 + - uid: 5054 + components: + - type: Transform + pos: -21.5,-28.5 + parent: 2 + - uid: 5055 + components: + - type: Transform + pos: -21.5,-27.5 + parent: 2 + - uid: 5056 + components: + - type: Transform + pos: -22.5,-27.5 + parent: 2 + - uid: 5057 + components: + - type: Transform + pos: -22.5,-25.5 + parent: 2 + - uid: 5058 + components: + - type: Transform + pos: -22.5,-24.5 + parent: 2 + - uid: 5059 + components: + - type: Transform + pos: -22.5,-23.5 + parent: 2 + - uid: 5060 + components: + - type: Transform + pos: -22.5,-22.5 + parent: 2 + - uid: 5061 + components: + - type: Transform + pos: -22.5,-21.5 + parent: 2 + - uid: 5062 + components: + - type: Transform + pos: -22.5,-20.5 + parent: 2 + - uid: 5063 + components: + - type: Transform + pos: -22.5,-19.5 + parent: 2 + - uid: 5064 + components: + - type: Transform + pos: -22.5,-18.5 + parent: 2 + - uid: 5065 + components: + - type: Transform + pos: -22.5,-17.5 + parent: 2 + - uid: 5066 + components: + - type: Transform + pos: -21.5,-17.5 + parent: 2 + - uid: 5067 + components: + - type: Transform + pos: -20.5,-17.5 + parent: 2 + - uid: 5068 + components: + - type: Transform + pos: -29.5,15.5 + parent: 2 + - uid: 5069 + components: + - type: Transform + pos: -20.5,-16.5 + parent: 2 + - uid: 5070 + components: + - type: Transform + pos: -20.5,-15.5 + parent: 2 + - uid: 5071 + components: + - type: Transform + pos: -20.5,-14.5 + parent: 2 + - uid: 5072 + components: + - type: Transform + pos: -20.5,-13.5 + parent: 2 + - uid: 5073 + components: + - type: Transform + pos: -19.5,-13.5 + parent: 2 + - uid: 5074 + components: + - type: Transform + pos: -19.5,-12.5 + parent: 2 + - uid: 5075 + components: + - type: Transform + pos: -18.5,-12.5 + parent: 2 + - uid: 5076 + components: + - type: Transform + pos: -17.5,-12.5 + parent: 2 + - uid: 5077 + components: + - type: Transform + pos: -16.5,-12.5 + parent: 2 + - uid: 5078 + components: + - type: Transform + pos: -15.5,-12.5 + parent: 2 + - uid: 5079 + components: + - type: Transform + pos: -15.5,-13.5 + parent: 2 + - uid: 5080 + components: + - type: Transform + pos: -14.5,-13.5 + parent: 2 + - uid: 5081 + components: + - type: Transform + pos: -13.5,-13.5 + parent: 2 + - uid: 5082 + components: + - type: Transform + pos: -12.5,-13.5 + parent: 2 + - uid: 5083 + components: + - type: Transform + pos: -12.5,-14.5 + parent: 2 + - uid: 5084 + components: + - type: Transform + pos: -12.5,-15.5 + parent: 2 + - uid: 5085 + components: + - type: Transform + pos: -12.5,-16.5 + parent: 2 + - uid: 5086 + components: + - type: Transform + pos: -13.5,-16.5 + parent: 2 + - uid: 5087 + components: + - type: Transform + pos: -14.5,-16.5 + parent: 2 + - uid: 5088 + components: + - type: Transform + pos: -15.5,-16.5 + parent: 2 + - uid: 5089 + components: + - type: Transform + pos: -16.5,-16.5 + parent: 2 + - uid: 5090 + components: + - type: Transform + pos: -16.5,-15.5 + parent: 2 + - uid: 5091 + components: + - type: Transform + pos: 16.5,-4.5 + parent: 2 + - uid: 5092 + components: + - type: Transform + pos: -15.5,-11.5 + parent: 2 + - uid: 5093 + components: + - type: Transform + pos: -15.5,-10.5 + parent: 2 + - uid: 5094 + components: + - type: Transform + pos: -15.5,-9.5 + parent: 2 + - uid: 5095 + components: + - type: Transform + pos: -15.5,-8.5 + parent: 2 + - uid: 5096 + components: + - type: Transform + pos: -16.5,-8.5 + parent: 2 + - uid: 5097 + components: + - type: Transform + pos: -17.5,-8.5 + parent: 2 + - uid: 5098 + components: + - type: Transform + pos: -18.5,-8.5 + parent: 2 + - uid: 5099 + components: + - type: Transform + pos: -19.5,-8.5 + parent: 2 + - uid: 5100 + components: + - type: Transform + pos: -20.5,-8.5 + parent: 2 + - uid: 5101 + components: + - type: Transform + pos: 14.5,-3.5 + parent: 2 + - uid: 5102 + components: + - type: Transform + pos: 15.5,-3.5 + parent: 2 + - uid: 5103 + components: + - type: Transform + pos: 13.5,-2.5 + parent: 2 + - uid: 5104 + components: + - type: Transform + pos: 13.5,-3.5 + parent: 2 + - uid: 5105 + components: + - type: Transform + pos: 16.5,-3.5 + parent: 2 + - uid: 5106 + components: + - type: Transform + pos: 16.5,-5.5 + parent: 2 + - uid: 5107 + components: + - type: Transform + pos: 16.5,-6.5 + parent: 2 + - uid: 5108 + components: + - type: Transform + pos: 15.5,-6.5 + parent: 2 + - uid: 5109 + components: + - type: Transform + pos: 14.5,-6.5 + parent: 2 + - uid: 5110 + components: + - type: Transform + pos: 13.5,-6.5 + parent: 2 + - uid: 5111 + components: + - type: Transform + pos: 12.5,-6.5 + parent: 2 + - uid: 5112 + components: + - type: Transform + pos: 11.5,-6.5 + parent: 2 + - uid: 5113 + components: + - type: Transform + pos: 11.5,-7.5 + parent: 2 + - uid: 5114 + components: + - type: Transform + pos: 11.5,-8.5 + parent: 2 + - uid: 5115 + components: + - type: Transform + pos: 11.5,-9.5 + parent: 2 + - uid: 5116 + components: + - type: Transform + pos: 11.5,-10.5 + parent: 2 + - uid: 5117 + components: + - type: Transform + pos: 11.5,-11.5 + parent: 2 + - uid: 5118 + components: + - type: Transform + pos: 11.5,-12.5 + parent: 2 + - uid: 5119 + components: + - type: Transform + pos: 10.5,-12.5 + parent: 2 + - uid: 5120 + components: + - type: Transform + pos: 9.5,-12.5 + parent: 2 + - uid: 5121 + components: + - type: Transform + pos: 9.5,-13.5 + parent: 2 + - uid: 5122 + components: + - type: Transform + pos: 9.5,-14.5 + parent: 2 + - uid: 5123 + components: + - type: Transform + pos: 9.5,-15.5 + parent: 2 + - uid: 5124 + components: + - type: Transform + pos: 9.5,-16.5 + parent: 2 + - uid: 5125 + components: + - type: Transform + pos: 8.5,-16.5 + parent: 2 + - uid: 5126 + components: + - type: Transform + pos: 7.5,-16.5 + parent: 2 + - uid: 5127 + components: + - type: Transform + pos: 6.5,-16.5 + parent: 2 + - uid: 5128 + components: + - type: Transform + pos: 5.5,-16.5 + parent: 2 + - uid: 5129 + components: + - type: Transform + pos: 4.5,-16.5 + parent: 2 + - uid: 5130 + components: + - type: Transform + pos: 3.5,-16.5 + parent: 2 + - uid: 5131 + components: + - type: Transform + pos: 2.5,-16.5 + parent: 2 + - uid: 5132 + components: + - type: Transform + pos: 1.5,-16.5 + parent: 2 + - uid: 5133 + components: + - type: Transform + pos: 1.5,-17.5 + parent: 2 + - uid: 5134 + components: + - type: Transform + pos: 1.5,-18.5 + parent: 2 + - uid: 5135 + components: + - type: Transform + pos: 1.5,-19.5 + parent: 2 + - uid: 5136 + components: + - type: Transform + pos: 1.5,-20.5 + parent: 2 + - uid: 5137 + components: + - type: Transform + pos: 1.5,-21.5 + parent: 2 + - uid: 5138 + components: + - type: Transform + pos: 1.5,-22.5 + parent: 2 + - uid: 5139 + components: + - type: Transform + pos: 1.5,-23.5 + parent: 2 + - uid: 5140 + components: + - type: Transform + pos: 1.5,-24.5 + parent: 2 + - uid: 5141 + components: + - type: Transform + pos: 1.5,-25.5 + parent: 2 + - uid: 5142 + components: + - type: Transform + pos: 1.5,-26.5 + parent: 2 + - uid: 5143 + components: + - type: Transform + pos: 1.5,-27.5 + parent: 2 + - uid: 5144 + components: + - type: Transform + pos: 1.5,-28.5 + parent: 2 + - uid: 5145 + components: + - type: Transform + pos: 1.5,-29.5 + parent: 2 + - uid: 5146 + components: + - type: Transform + pos: 1.5,-30.5 + parent: 2 + - uid: 5147 + components: + - type: Transform + pos: 1.5,-31.5 + parent: 2 + - uid: 5148 + components: + - type: Transform + pos: 1.5,-32.5 + parent: 2 + - uid: 5149 + components: + - type: Transform + pos: 1.5,-33.5 + parent: 2 + - uid: 5150 + components: + - type: Transform + pos: 1.5,-34.5 + parent: 2 + - uid: 5151 + components: + - type: Transform + pos: 1.5,-35.5 + parent: 2 + - uid: 5152 + components: + - type: Transform + pos: 1.5,-36.5 + parent: 2 + - uid: 5153 + components: + - type: Transform + pos: 1.5,-37.5 + parent: 2 + - uid: 5154 + components: + - type: Transform + pos: 1.5,-38.5 + parent: 2 + - uid: 5155 + components: + - type: Transform + pos: 1.5,-39.5 + parent: 2 + - uid: 5156 + components: + - type: Transform + pos: 1.5,-40.5 + parent: 2 + - uid: 5157 + components: + - type: Transform + pos: 1.5,-41.5 + parent: 2 + - uid: 5158 + components: + - type: Transform + pos: 1.5,-42.5 + parent: 2 + - uid: 5159 + components: + - type: Transform + pos: 0.5,-42.5 + parent: 2 + - uid: 5160 + components: + - type: Transform + pos: -0.5,-42.5 + parent: 2 + - uid: 5161 + components: + - type: Transform + pos: -1.5,-42.5 + parent: 2 + - uid: 5162 + components: + - type: Transform + pos: -2.5,-42.5 + parent: 2 + - uid: 5163 + components: + - type: Transform + pos: -3.5,-42.5 + parent: 2 + - uid: 5164 + components: + - type: Transform + pos: -4.5,-42.5 + parent: 2 + - uid: 5165 + components: + - type: Transform + pos: -4.5,-44.5 + parent: 2 + - uid: 5166 + components: + - type: Transform + pos: -4.5,-45.5 + parent: 2 + - uid: 5167 + components: + - type: Transform + pos: -4.5,-46.5 + parent: 2 + - uid: 5168 + components: + - type: Transform + pos: -4.5,-47.5 + parent: 2 + - uid: 5169 + components: + - type: Transform + pos: -4.5,-48.5 + parent: 2 + - uid: 5170 + components: + - type: Transform + pos: -5.5,-48.5 + parent: 2 + - uid: 5171 + components: + - type: Transform + pos: -5.5,-49.5 + parent: 2 + - uid: 5172 + components: + - type: Transform + pos: -5.5,-50.5 + parent: 2 + - uid: 5173 + components: + - type: Transform + pos: 11.5,-47.5 + parent: 2 + - uid: 5174 + components: + - type: Transform + pos: 10.5,-47.5 + parent: 2 + - uid: 5175 + components: + - type: Transform + pos: 43.5,23.5 + parent: 2 + - uid: 5176 + components: + - type: Transform + pos: 43.5,24.5 + parent: 2 + - uid: 5177 + components: + - type: Transform + pos: 43.5,25.5 + parent: 2 + - uid: 5178 + components: + - type: Transform + pos: 43.5,26.5 + parent: 2 + - uid: 5179 + components: + - type: Transform + pos: 43.5,27.5 + parent: 2 + - uid: 5180 + components: + - type: Transform + pos: 42.5,27.5 + parent: 2 + - uid: 5181 + components: + - type: Transform + pos: 41.5,27.5 + parent: 2 + - uid: 5182 + components: + - type: Transform + pos: 40.5,27.5 + parent: 2 + - uid: 5183 + components: + - type: Transform + pos: 39.5,27.5 + parent: 2 + - uid: 5184 + components: + - type: Transform + pos: 38.5,27.5 + parent: 2 + - uid: 5185 + components: + - type: Transform + pos: 37.5,27.5 + parent: 2 + - uid: 5186 + components: + - type: Transform + pos: 36.5,27.5 + parent: 2 + - uid: 5187 + components: + - type: Transform + pos: 35.5,27.5 + parent: 2 + - uid: 5188 + components: + - type: Transform + pos: 34.5,27.5 + parent: 2 + - uid: 5189 + components: + - type: Transform + pos: 33.5,27.5 + parent: 2 + - uid: 5190 + components: + - type: Transform + pos: 32.5,27.5 + parent: 2 + - uid: 5191 + components: + - type: Transform + pos: 31.5,27.5 + parent: 2 + - uid: 5192 + components: + - type: Transform + pos: 30.5,27.5 + parent: 2 + - uid: 5193 + components: + - type: Transform + pos: 9.5,-47.5 + parent: 2 + - uid: 5194 + components: + - type: Transform + pos: 9.5,22.5 + parent: 2 + - uid: 5195 + components: + - type: Transform + pos: 7.5,-47.5 + parent: 2 + - uid: 5196 + components: + - type: Transform + pos: 12.5,21.5 + parent: 2 + - uid: 5197 + components: + - type: Transform + pos: 36.5,-44.5 + parent: 2 + - uid: 5198 + components: + - type: Transform + pos: -2.5,-46.5 + parent: 2 + - uid: 5199 + components: + - type: Transform + pos: -3.5,-46.5 + parent: 2 + - uid: 5200 + components: + - type: Transform + pos: 9.5,21.5 + parent: 2 + - uid: 5201 + components: + - type: Transform + pos: 10.5,21.5 + parent: 2 + - uid: 5202 + components: + - type: Transform + pos: 11.5,21.5 + parent: 2 + - uid: 5203 + components: + - type: Transform + pos: 13.5,21.5 + parent: 2 + - uid: 5204 + components: + - type: Transform + pos: 13.5,20.5 + parent: 2 + - uid: 5205 + components: + - type: Transform + pos: 13.5,19.5 + parent: 2 + - uid: 5206 + components: + - type: Transform + pos: 13.5,18.5 + parent: 2 + - uid: 5207 + components: + - type: Transform + pos: 13.5,17.5 + parent: 2 + - uid: 5208 + components: + - type: Transform + pos: 13.5,16.5 + parent: 2 + - uid: 5209 + components: + - type: Transform + pos: 13.5,15.5 + parent: 2 + - uid: 5210 + components: + - type: Transform + pos: 13.5,14.5 + parent: 2 + - uid: 5211 + components: + - type: Transform + pos: 13.5,13.5 + parent: 2 + - uid: 5212 + components: + - type: Transform + pos: 13.5,12.5 + parent: 2 + - uid: 5213 + components: + - type: Transform + pos: 13.5,11.5 + parent: 2 + - uid: 5214 + components: + - type: Transform + pos: 13.5,10.5 + parent: 2 + - uid: 5215 + components: + - type: Transform + pos: 13.5,9.5 + parent: 2 + - uid: 5216 + components: + - type: Transform + pos: 13.5,8.5 + parent: 2 + - uid: 5217 + components: + - type: Transform + pos: 13.5,7.5 + parent: 2 + - uid: 5218 + components: + - type: Transform + pos: 13.5,6.5 + parent: 2 + - uid: 5219 + components: + - type: Transform + pos: 13.5,5.5 + parent: 2 + - uid: 5220 + components: + - type: Transform + pos: 13.5,4.5 + parent: 2 + - uid: 5221 + components: + - type: Transform + pos: 14.5,4.5 + parent: 2 + - uid: 5222 + components: + - type: Transform + pos: 15.5,4.5 + parent: 2 + - uid: 5223 + components: + - type: Transform + pos: 15.5,3.5 + parent: 2 + - uid: 5224 + components: + - type: Transform + pos: 15.5,2.5 + parent: 2 + - uid: 5225 + components: + - type: Transform + pos: 15.5,1.5 + parent: 2 + - uid: 5226 + components: + - type: Transform + pos: 15.5,0.5 + parent: 2 + - uid: 5227 + components: + - type: Transform + pos: 16.5,0.5 + parent: 2 + - uid: 5228 + components: + - type: Transform + pos: 16.5,-0.5 + parent: 2 + - uid: 5229 + components: + - type: Transform + pos: 16.5,-1.5 + parent: 2 + - uid: 5230 + components: + - type: Transform + pos: 16.5,-2.5 + parent: 2 + - uid: 5231 + components: + - type: Transform + pos: 13.5,22.5 + parent: 2 + - uid: 5232 + components: + - type: Transform + pos: 13.5,23.5 + parent: 2 + - uid: 5233 + components: + - type: Transform + pos: 13.5,24.5 + parent: 2 + - uid: 5234 + components: + - type: Transform + pos: 13.5,25.5 + parent: 2 + - uid: 5235 + components: + - type: Transform + pos: 13.5,26.5 + parent: 2 + - uid: 5236 + components: + - type: Transform + pos: 14.5,26.5 + parent: 2 + - uid: 5237 + components: + - type: Transform + pos: 15.5,26.5 + parent: 2 + - uid: 5238 + components: + - type: Transform + pos: 16.5,26.5 + parent: 2 + - uid: 5239 + components: + - type: Transform + pos: 17.5,26.5 + parent: 2 + - uid: 5240 + components: + - type: Transform + pos: 18.5,26.5 + parent: 2 + - uid: 5241 + components: + - type: Transform + pos: 19.5,26.5 + parent: 2 + - uid: 5242 + components: + - type: Transform + pos: 20.5,26.5 + parent: 2 + - uid: 5243 + components: + - type: Transform + pos: 21.5,26.5 + parent: 2 + - uid: 5244 + components: + - type: Transform + pos: 22.5,26.5 + parent: 2 + - uid: 5245 + components: + - type: Transform + pos: 23.5,26.5 + parent: 2 + - uid: 5246 + components: + - type: Transform + pos: 24.5,26.5 + parent: 2 + - uid: 5247 + components: + - type: Transform + pos: 25.5,26.5 + parent: 2 + - uid: 5248 + components: + - type: Transform + pos: 26.5,26.5 + parent: 2 + - uid: 5249 + components: + - type: Transform + pos: 27.5,26.5 + parent: 2 + - uid: 5250 + components: + - type: Transform + pos: 28.5,26.5 + parent: 2 + - uid: 5251 + components: + - type: Transform + pos: 29.5,26.5 + parent: 2 + - uid: 5252 + components: + - type: Transform + pos: 30.5,26.5 + parent: 2 + - uid: 5253 + components: + - type: Transform + pos: -2.5,49.5 + parent: 2 + - uid: 5254 + components: + - type: Transform + pos: -2.5,48.5 + parent: 2 + - uid: 5255 + components: + - type: Transform + pos: -3.5,48.5 + parent: 2 + - uid: 5256 + components: + - type: Transform + pos: -3.5,47.5 + parent: 2 + - uid: 5257 + components: + - type: Transform + pos: -3.5,46.5 + parent: 2 + - uid: 5258 + components: + - type: Transform + pos: -3.5,45.5 + parent: 2 + - uid: 5259 + components: + - type: Transform + pos: -3.5,44.5 + parent: 2 + - uid: 5260 + components: + - type: Transform + pos: -3.5,43.5 + parent: 2 + - uid: 5261 + components: + - type: Transform + pos: -3.5,42.5 + parent: 2 + - uid: 5262 + components: + - type: Transform + pos: -2.5,42.5 + parent: 2 + - uid: 5263 + components: + - type: Transform + pos: -1.5,42.5 + parent: 2 + - uid: 5264 + components: + - type: Transform + pos: -0.5,42.5 + parent: 2 + - uid: 5265 + components: + - type: Transform + pos: 0.5,42.5 + parent: 2 + - uid: 5266 + components: + - type: Transform + pos: 4.5,31.5 + parent: 2 + - uid: 5267 + components: + - type: Transform + pos: 0.5,41.5 + parent: 2 + - uid: 5268 + components: + - type: Transform + pos: 0.5,40.5 + parent: 2 + - uid: 5269 + components: + - type: Transform + pos: 0.5,39.5 + parent: 2 + - uid: 5270 + components: + - type: Transform + pos: 0.5,38.5 + parent: 2 + - uid: 5271 + components: + - type: Transform + pos: 0.5,37.5 + parent: 2 + - uid: 5272 + components: + - type: Transform + pos: 0.5,36.5 + parent: 2 + - uid: 5273 + components: + - type: Transform + pos: 0.5,35.5 + parent: 2 + - uid: 5274 + components: + - type: Transform + pos: 0.5,34.5 + parent: 2 + - uid: 5275 + components: + - type: Transform + pos: 4.5,34.5 + parent: 2 + - uid: 5276 + components: + - type: Transform + pos: 3.5,34.5 + parent: 2 + - uid: 5277 + components: + - type: Transform + pos: 2.5,34.5 + parent: 2 + - uid: 5278 + components: + - type: Transform + pos: 1.5,34.5 + parent: 2 + - uid: 5279 + components: + - type: Transform + pos: 4.5,30.5 + parent: 2 + - uid: 5280 + components: + - type: Transform + pos: 4.5,29.5 + parent: 2 + - uid: 5281 + components: + - type: Transform + pos: 3.5,29.5 + parent: 2 + - uid: 5282 + components: + - type: Transform + pos: 2.5,29.5 + parent: 2 + - uid: 5283 + components: + - type: Transform + pos: 1.5,29.5 + parent: 2 + - uid: 5284 + components: + - type: Transform + pos: 0.5,33.5 + parent: 2 + - uid: 5285 + components: + - type: Transform + pos: 0.5,32.5 + parent: 2 + - uid: 5286 + components: + - type: Transform + pos: 0.5,31.5 + parent: 2 + - uid: 5287 + components: + - type: Transform + pos: 0.5,30.5 + parent: 2 + - uid: 5288 + components: + - type: Transform + pos: 0.5,29.5 + parent: 2 + - uid: 5289 + components: + - type: Transform + pos: 0.5,28.5 + parent: 2 + - uid: 5290 + components: + - type: Transform + pos: 0.5,27.5 + parent: 2 + - uid: 5291 + components: + - type: Transform + pos: 0.5,26.5 + parent: 2 + - uid: 5292 + components: + - type: Transform + pos: 0.5,25.5 + parent: 2 + - uid: 5293 + components: + - type: Transform + pos: 0.5,24.5 + parent: 2 + - uid: 5294 + components: + - type: Transform + pos: 0.5,23.5 + parent: 2 + - uid: 5295 + components: + - type: Transform + pos: 0.5,22.5 + parent: 2 + - uid: 5296 + components: + - type: Transform + pos: 0.5,21.5 + parent: 2 + - uid: 5297 + components: + - type: Transform + pos: 1.5,21.5 + parent: 2 + - uid: 5298 + components: + - type: Transform + pos: 2.5,21.5 + parent: 2 + - uid: 5299 + components: + - type: Transform + pos: 3.5,21.5 + parent: 2 + - uid: 5300 + components: + - type: Transform + pos: 4.5,21.5 + parent: 2 + - uid: 5301 + components: + - type: Transform + pos: 5.5,21.5 + parent: 2 + - uid: 5302 + components: + - type: Transform + pos: 6.5,21.5 + parent: 2 + - uid: 5303 + components: + - type: Transform + pos: 7.5,21.5 + parent: 2 + - uid: 5304 + components: + - type: Transform + pos: 8.5,21.5 + parent: 2 + - uid: 5305 + components: + - type: Transform + pos: -28.5,15.5 + parent: 2 + - uid: 5306 + components: + - type: Transform + pos: -27.5,15.5 + parent: 2 + - uid: 5307 + components: + - type: Transform + pos: -27.5,16.5 + parent: 2 + - uid: 5308 + components: + - type: Transform + pos: -26.5,16.5 + parent: 2 + - uid: 5309 + components: + - type: Transform + pos: -25.5,16.5 + parent: 2 + - uid: 5310 + components: + - type: Transform + pos: -24.5,16.5 + parent: 2 + - uid: 5311 + components: + - type: Transform + pos: -23.5,16.5 + parent: 2 + - uid: 5312 + components: + - type: Transform + pos: -22.5,16.5 + parent: 2 + - uid: 5313 + components: + - type: Transform + pos: -21.5,16.5 + parent: 2 + - uid: 5314 + components: + - type: Transform + pos: -20.5,16.5 + parent: 2 + - uid: 5315 + components: + - type: Transform + pos: -20.5,15.5 + parent: 2 + - uid: 5316 + components: + - type: Transform + pos: -20.5,14.5 + parent: 2 + - uid: 5317 + components: + - type: Transform + pos: -20.5,13.5 + parent: 2 + - uid: 5318 + components: + - type: Transform + pos: -20.5,12.5 + parent: 2 + - uid: 5319 + components: + - type: Transform + pos: -20.5,11.5 + parent: 2 + - uid: 5320 + components: + - type: Transform + pos: -20.5,10.5 + parent: 2 + - uid: 5321 + components: + - type: Transform + pos: -20.5,9.5 + parent: 2 + - uid: 5322 + components: + - type: Transform + pos: -20.5,8.5 + parent: 2 + - uid: 5323 + components: + - type: Transform + pos: -20.5,7.5 + parent: 2 + - uid: 5324 + components: + - type: Transform + pos: -20.5,6.5 + parent: 2 + - uid: 5325 + components: + - type: Transform + pos: -20.5,5.5 + parent: 2 + - uid: 5326 + components: + - type: Transform + pos: -20.5,4.5 + parent: 2 + - uid: 5327 + components: + - type: Transform + pos: -20.5,3.5 + parent: 2 + - uid: 5328 + components: + - type: Transform + pos: -20.5,2.5 + parent: 2 + - uid: 5329 + components: + - type: Transform + pos: -20.5,1.5 + parent: 2 + - uid: 5330 + components: + - type: Transform + pos: -20.5,0.5 + parent: 2 + - uid: 5331 + components: + - type: Transform + pos: -20.5,-0.5 + parent: 2 + - uid: 5332 + components: + - type: Transform + pos: -20.5,-1.5 + parent: 2 + - uid: 5333 + components: + - type: Transform + pos: -20.5,-2.5 + parent: 2 + - uid: 5334 + components: + - type: Transform + pos: -20.5,-3.5 + parent: 2 + - uid: 5335 + components: + - type: Transform + pos: -20.5,-4.5 + parent: 2 + - uid: 5336 + components: + - type: Transform + pos: -20.5,-5.5 + parent: 2 + - uid: 5337 + components: + - type: Transform + pos: -20.5,-6.5 + parent: 2 + - uid: 5338 + components: + - type: Transform + pos: -20.5,-7.5 + parent: 2 + - uid: 5339 + components: + - type: Transform + pos: -5.5,-56.5 + parent: 2 + - uid: 5340 + components: + - type: Transform + pos: -6.5,-16.5 + parent: 2 + - uid: 5341 + components: + - type: Transform + pos: -5.5,-57.5 + parent: 2 + - uid: 5342 + components: + - type: Transform + pos: -5.5,-58.5 + parent: 2 + - uid: 5343 + components: + - type: Transform + pos: 0.5,-59.5 + parent: 2 + - uid: 5344 + components: + - type: Transform + pos: 0.5,-58.5 + parent: 2 + - uid: 5345 + components: + - type: Transform + pos: 0.5,-57.5 + parent: 2 + - uid: 5346 + components: + - type: Transform + pos: 1.5,-57.5 + parent: 2 + - uid: 5347 + components: + - type: Transform + pos: 2.5,-57.5 + parent: 2 + - uid: 5348 + components: + - type: Transform + pos: 3.5,-57.5 + parent: 2 + - uid: 5349 + components: + - type: Transform + pos: 3.5,-56.5 + parent: 2 + - uid: 5350 + components: + - type: Transform + pos: 3.5,-55.5 + parent: 2 + - uid: 5351 + components: + - type: Transform + pos: 4.5,-55.5 + parent: 2 + - uid: 5352 + components: + - type: Transform + pos: 5.5,-55.5 + parent: 2 + - uid: 5353 + components: + - type: Transform + pos: 6.5,-55.5 + parent: 2 + - uid: 5354 + components: + - type: Transform + pos: 7.5,-55.5 + parent: 2 + - uid: 5355 + components: + - type: Transform + pos: 7.5,-54.5 + parent: 2 + - uid: 5356 + components: + - type: Transform + pos: 7.5,-53.5 + parent: 2 + - uid: 5357 + components: + - type: Transform + pos: 7.5,-52.5 + parent: 2 + - uid: 5358 + components: + - type: Transform + pos: 7.5,-51.5 + parent: 2 + - uid: 5359 + components: + - type: Transform + pos: 7.5,-50.5 + parent: 2 + - uid: 5360 + components: + - type: Transform + pos: 7.5,-49.5 + parent: 2 + - uid: 5361 + components: + - type: Transform + pos: 7.5,-48.5 + parent: 2 + - uid: 5362 + components: + - type: Transform + pos: 0.5,-17.5 + parent: 2 + - uid: 5363 + components: + - type: Transform + pos: -0.5,-17.5 + parent: 2 + - uid: 5364 + components: + - type: Transform + pos: -1.5,-17.5 + parent: 2 + - uid: 5365 + components: + - type: Transform + pos: -2.5,-17.5 + parent: 2 + - uid: 5366 + components: + - type: Transform + pos: -3.5,-17.5 + parent: 2 + - uid: 5367 + components: + - type: Transform + pos: -4.5,-17.5 + parent: 2 + - uid: 5368 + components: + - type: Transform + pos: -5.5,-17.5 + parent: 2 + - uid: 5369 + components: + - type: Transform + pos: -6.5,-17.5 + parent: 2 + - uid: 5370 + components: + - type: Transform + pos: -7.5,-16.5 + parent: 2 + - uid: 5371 + components: + - type: Transform + pos: -8.5,-16.5 + parent: 2 + - uid: 5372 + components: + - type: Transform + pos: -9.5,-16.5 + parent: 2 + - uid: 5373 + components: + - type: Transform + pos: -10.5,-16.5 + parent: 2 + - uid: 5374 + components: + - type: Transform + pos: -11.5,-16.5 + parent: 2 + - uid: 5375 + components: + - type: Transform + pos: 0.5,20.5 + parent: 2 + - uid: 5376 + components: + - type: Transform + pos: 0.5,19.5 + parent: 2 + - uid: 5377 + components: + - type: Transform + pos: -0.5,19.5 + parent: 2 + - uid: 5378 + components: + - type: Transform + pos: -1.5,19.5 + parent: 2 + - uid: 5379 + components: + - type: Transform + pos: -2.5,19.5 + parent: 2 + - uid: 5380 + components: + - type: Transform + pos: -3.5,19.5 + parent: 2 + - uid: 5381 + components: + - type: Transform + pos: -4.5,19.5 + parent: 2 + - uid: 5382 + components: + - type: Transform + pos: -5.5,19.5 + parent: 2 + - uid: 5383 + components: + - type: Transform + pos: -6.5,19.5 + parent: 2 + - uid: 5384 + components: + - type: Transform + pos: -7.5,19.5 + parent: 2 + - uid: 5385 + components: + - type: Transform + pos: -8.5,19.5 + parent: 2 + - uid: 5386 + components: + - type: Transform + pos: -9.5,19.5 + parent: 2 + - uid: 5387 + components: + - type: Transform + pos: -10.5,19.5 + parent: 2 + - uid: 5388 + components: + - type: Transform + pos: -11.5,19.5 + parent: 2 + - uid: 5389 + components: + - type: Transform + pos: -12.5,19.5 + parent: 2 + - uid: 5390 + components: + - type: Transform + pos: -13.5,19.5 + parent: 2 + - uid: 5391 + components: + - type: Transform + pos: -14.5,19.5 + parent: 2 + - uid: 5392 + components: + - type: Transform + pos: -15.5,19.5 + parent: 2 + - uid: 5393 + components: + - type: Transform + pos: -16.5,19.5 + parent: 2 + - uid: 5394 + components: + - type: Transform + pos: -16.5,18.5 + parent: 2 + - uid: 5395 + components: + - type: Transform + pos: -16.5,17.5 + parent: 2 + - uid: 5396 + components: + - type: Transform + pos: -16.5,16.5 + parent: 2 + - uid: 5397 + components: + - type: Transform + pos: -16.5,15.5 + parent: 2 + - uid: 5398 + components: + - type: Transform + pos: -17.5,15.5 + parent: 2 + - uid: 5399 + components: + - type: Transform + pos: -18.5,15.5 + parent: 2 + - uid: 5400 + components: + - type: Transform + pos: -19.5,15.5 + parent: 2 + - uid: 5401 + components: + - type: Transform + pos: 17.5,0.5 + parent: 2 + - uid: 5402 + components: + - type: Transform + pos: 18.5,0.5 + parent: 2 + - uid: 5403 + components: + - type: Transform + pos: 19.5,0.5 + parent: 2 + - uid: 5404 + components: + - type: Transform + pos: 20.5,0.5 + parent: 2 + - uid: 5405 + components: + - type: Transform + pos: 21.5,0.5 + parent: 2 + - uid: 5406 + components: + - type: Transform + pos: 22.5,0.5 + parent: 2 + - uid: 5407 + components: + - type: Transform + pos: 23.5,0.5 + parent: 2 + - uid: 5408 + components: + - type: Transform + pos: 24.5,0.5 + parent: 2 + - uid: 5409 + components: + - type: Transform + pos: 25.5,0.5 + parent: 2 + - uid: 5410 + components: + - type: Transform + pos: 26.5,0.5 + parent: 2 + - uid: 5411 + components: + - type: Transform + pos: 27.5,0.5 + parent: 2 + - uid: 5412 + components: + - type: Transform + pos: 28.5,0.5 + parent: 2 + - uid: 5413 + components: + - type: Transform + pos: 29.5,0.5 + parent: 2 + - uid: 5414 + components: + - type: Transform + pos: 29.5,1.5 + parent: 2 + - uid: 5415 + components: + - type: Transform + pos: 29.5,2.5 + parent: 2 + - uid: 5416 + components: + - type: Transform + pos: 29.5,3.5 + parent: 2 + - uid: 5417 + components: + - type: Transform + pos: 29.5,4.5 + parent: 2 + - uid: 5418 + components: + - type: Transform + pos: 29.5,5.5 + parent: 2 + - uid: 5419 + components: + - type: Transform + pos: 29.5,6.5 + parent: 2 + - uid: 5420 + components: + - type: Transform + pos: 29.5,7.5 + parent: 2 + - uid: 5421 + components: + - type: Transform + pos: 29.5,8.5 + parent: 2 + - uid: 5422 + components: + - type: Transform + pos: 29.5,9.5 + parent: 2 + - uid: 5423 + components: + - type: Transform + pos: 29.5,10.5 + parent: 2 + - uid: 5424 + components: + - type: Transform + pos: 29.5,11.5 + parent: 2 + - uid: 5425 + components: + - type: Transform + pos: 29.5,12.5 + parent: 2 + - uid: 5426 + components: + - type: Transform + pos: 29.5,13.5 + parent: 2 + - uid: 5427 + components: + - type: Transform + pos: 29.5,14.5 + parent: 2 + - uid: 5428 + components: + - type: Transform + pos: 29.5,15.5 + parent: 2 + - uid: 5429 + components: + - type: Transform + pos: 29.5,16.5 + parent: 2 + - uid: 5430 + components: + - type: Transform + pos: 30.5,16.5 + parent: 2 + - uid: 5431 + components: + - type: Transform + pos: 31.5,16.5 + parent: 2 + - uid: 5432 + components: + - type: Transform + pos: 32.5,16.5 + parent: 2 + - uid: 5433 + components: + - type: Transform + pos: 33.5,16.5 + parent: 2 + - uid: 5434 + components: + - type: Transform + pos: 34.5,16.5 + parent: 2 + - uid: 5435 + components: + - type: Transform + pos: 35.5,16.5 + parent: 2 + - uid: 5436 + components: + - type: Transform + pos: 36.5,16.5 + parent: 2 + - uid: 5437 + components: + - type: Transform + pos: 37.5,16.5 + parent: 2 + - uid: 5438 + components: + - type: Transform + pos: 37.5,17.5 + parent: 2 + - uid: 5439 + components: + - type: Transform + pos: 37.5,18.5 + parent: 2 + - uid: 5440 + components: + - type: Transform + pos: 38.5,18.5 + parent: 2 + - uid: 5441 + components: + - type: Transform + pos: 39.5,18.5 + parent: 2 + - uid: 5442 + components: + - type: Transform + pos: 40.5,18.5 + parent: 2 + - uid: 5443 + components: + - type: Transform + pos: 41.5,18.5 + parent: 2 + - uid: 5444 + components: + - type: Transform + pos: 42.5,18.5 + parent: 2 + - uid: 5445 + components: + - type: Transform + pos: 42.5,19.5 + parent: 2 + - uid: 5446 + components: + - type: Transform + pos: 42.5,20.5 + parent: 2 + - uid: 5447 + components: + - type: Transform + pos: 42.5,21.5 + parent: 2 + - uid: 5448 + components: + - type: Transform + pos: 42.5,22.5 + parent: 2 + - uid: 5449 + components: + - type: Transform + pos: 43.5,22.5 + parent: 2 + - uid: 5450 + components: + - type: Transform + pos: 30.5,-45.5 + parent: 2 + - uid: 5451 + components: + - type: Transform + pos: 30.5,-44.5 + parent: 2 + - uid: 5452 + components: + - type: Transform + pos: 30.5,-43.5 + parent: 2 + - uid: 5453 + components: + - type: Transform + pos: 30.5,-42.5 + parent: 2 + - uid: 5454 + components: + - type: Transform + pos: 30.5,-41.5 + parent: 2 + - uid: 5455 + components: + - type: Transform + pos: 30.5,-40.5 + parent: 2 + - uid: 5456 + components: + - type: Transform + pos: 29.5,-40.5 + parent: 2 + - uid: 5457 + components: + - type: Transform + pos: 35.5,-44.5 + parent: 2 + - uid: 5458 + components: + - type: Transform + pos: 35.5,-27.5 + parent: 2 + - uid: 5459 + components: + - type: Transform + pos: 9.5,-35.5 + parent: 2 + - uid: 5460 + components: + - type: Transform + pos: 10.5,-35.5 + parent: 2 + - uid: 5461 + components: + - type: Transform + pos: 10.5,-34.5 + parent: 2 + - uid: 5462 + components: + - type: Transform + pos: -19.5,-56.5 + parent: 2 + - uid: 5463 + components: + - type: Transform + pos: -19.5,-57.5 + parent: 2 + - uid: 5464 + components: + - type: Transform + pos: -19.5,-58.5 + parent: 2 + - uid: 5465 + components: + - type: Transform + pos: -18.5,-56.5 + parent: 2 + - uid: 5466 + components: + - type: Transform + pos: 22.5,-3.5 + parent: 2 + - uid: 5467 + components: + - type: Transform + pos: 23.5,-3.5 + parent: 2 + - uid: 5468 + components: + - type: Transform + pos: 23.5,-2.5 + parent: 2 + - uid: 5469 + components: + - type: Transform + pos: 23.5,-1.5 + parent: 2 + - uid: 5470 + components: + - type: Transform + pos: 23.5,-0.5 + parent: 2 + - uid: 5471 + components: + - type: Transform + pos: 17.5,-3.5 + parent: 2 + - uid: 5472 + components: + - type: Transform + pos: 18.5,-3.5 + parent: 2 + - uid: 5473 + components: + - type: Transform + pos: 19.5,-3.5 + parent: 2 + - uid: 5474 + components: + - type: Transform + pos: 20.5,-3.5 + parent: 2 + - uid: 5475 + components: + - type: Transform + pos: 21.5,-3.5 + parent: 2 + - uid: 5476 + components: + - type: Transform + pos: -14.5,-9.5 + parent: 2 + - uid: 5477 + components: + - type: Transform + pos: -13.5,-9.5 + parent: 2 + - uid: 5478 + components: + - type: Transform + pos: -12.5,-9.5 + parent: 2 + - uid: 5479 + components: + - type: Transform + pos: -11.5,-9.5 + parent: 2 + - uid: 5480 + components: + - type: Transform + pos: -11.5,-10.5 + parent: 2 + - uid: 5481 + components: + - type: Transform + pos: -11.5,-11.5 + parent: 2 + - uid: 5482 + components: + - type: Transform + pos: -11.5,-12.5 + parent: 2 + - uid: 5483 + components: + - type: Transform + pos: -11.5,-13.5 + parent: 2 + - uid: 5484 + components: + - type: Transform + pos: -21.5,-8.5 + parent: 2 + - uid: 5485 + components: + - type: Transform + pos: -22.5,-8.5 + parent: 2 + - uid: 5486 + components: + - type: Transform + pos: -23.5,-8.5 + parent: 2 + - uid: 5487 + components: + - type: Transform + pos: -24.5,-8.5 + parent: 2 + - uid: 5488 + components: + - type: Transform + pos: -25.5,-8.5 + parent: 2 + - uid: 5489 + components: + - type: Transform + pos: -26.5,-8.5 + parent: 2 + - uid: 5490 + components: + - type: Transform + pos: -27.5,-8.5 + parent: 2 + - uid: 5491 + components: + - type: Transform + pos: -28.5,-8.5 + parent: 2 + - uid: 5492 + components: + - type: Transform + pos: -29.5,-8.5 + parent: 2 + - uid: 5493 + components: + - type: Transform + pos: -30.5,-8.5 + parent: 2 + - uid: 5494 + components: + - type: Transform + pos: -31.5,-8.5 + parent: 2 + - uid: 5495 + components: + - type: Transform + pos: -32.5,-8.5 + parent: 2 + - uid: 5496 + components: + - type: Transform + pos: -33.5,-8.5 + parent: 2 + - uid: 5497 + components: + - type: Transform + pos: -34.5,-8.5 + parent: 2 + - uid: 5498 + components: + - type: Transform + pos: -35.5,-8.5 + parent: 2 + - uid: 5499 + components: + - type: Transform + pos: -36.5,-8.5 + parent: 2 + - uid: 5500 + components: + - type: Transform + pos: -37.5,-8.5 + parent: 2 + - uid: 5501 + components: + - type: Transform + pos: -37.5,-9.5 + parent: 2 + - uid: 5502 + components: + - type: Transform + pos: -37.5,-10.5 + parent: 2 + - uid: 5503 + components: + - type: Transform + pos: -37.5,-11.5 + parent: 2 + - uid: 5504 + components: + - type: Transform + pos: -37.5,-12.5 + parent: 2 + - uid: 5505 + components: + - type: Transform + pos: -37.5,-13.5 + parent: 2 + - uid: 5506 + components: + - type: Transform + pos: -37.5,-14.5 + parent: 2 + - uid: 5507 + components: + - type: Transform + pos: -37.5,-15.5 + parent: 2 + - uid: 5508 + components: + - type: Transform + pos: -37.5,-16.5 + parent: 2 + - uid: 5509 + components: + - type: Transform + pos: -37.5,-17.5 + parent: 2 + - uid: 5510 + components: + - type: Transform + pos: -37.5,-18.5 + parent: 2 + - uid: 5511 + components: + - type: Transform + pos: -37.5,-19.5 + parent: 2 + - uid: 5512 + components: + - type: Transform + pos: -37.5,-20.5 + parent: 2 + - uid: 5513 + components: + - type: Transform + pos: -37.5,-21.5 + parent: 2 + - uid: 5514 + components: + - type: Transform + pos: -37.5,-22.5 + parent: 2 + - uid: 5515 + components: + - type: Transform + pos: -37.5,-23.5 + parent: 2 + - uid: 5516 + components: + - type: Transform + pos: -37.5,-24.5 + parent: 2 + - uid: 5517 + components: + - type: Transform + pos: -38.5,-24.5 + parent: 2 + - uid: 5518 + components: + - type: Transform + pos: -38.5,-25.5 + parent: 2 + - uid: 5519 + components: + - type: Transform + pos: -38.5,-26.5 + parent: 2 + - uid: 5520 + components: + - type: Transform + pos: -38.5,-27.5 + parent: 2 + - uid: 5521 + components: + - type: Transform + pos: -38.5,-28.5 + parent: 2 + - uid: 5522 + components: + - type: Transform + pos: -38.5,-29.5 + parent: 2 + - uid: 5523 + components: + - type: Transform + pos: -38.5,-30.5 + parent: 2 + - uid: 5524 + components: + - type: Transform + pos: -38.5,-31.5 + parent: 2 + - uid: 5525 + components: + - type: Transform + pos: -38.5,-32.5 + parent: 2 + - uid: 5526 + components: + - type: Transform + pos: -38.5,-33.5 + parent: 2 + - uid: 5527 + components: + - type: Transform + pos: -38.5,-34.5 + parent: 2 + - uid: 5528 + components: + - type: Transform + pos: -38.5,-35.5 + parent: 2 + - uid: 5529 + components: + - type: Transform + pos: -38.5,-36.5 + parent: 2 + - uid: 5530 + components: + - type: Transform + pos: -38.5,-37.5 + parent: 2 + - uid: 5531 + components: + - type: Transform + pos: -37.5,-37.5 + parent: 2 + - uid: 5532 + components: + - type: Transform + pos: -36.5,-37.5 + parent: 2 + - uid: 5533 + components: + - type: Transform + pos: -35.5,-37.5 + parent: 2 + - uid: 5534 + components: + - type: Transform + pos: -34.5,-37.5 + parent: 2 + - uid: 5535 + components: + - type: Transform + pos: -33.5,-37.5 + parent: 2 + - uid: 5536 + components: + - type: Transform + pos: -33.5,-38.5 + parent: 2 + - uid: 5537 + components: + - type: Transform + pos: -33.5,-39.5 + parent: 2 + - uid: 5538 + components: + - type: Transform + pos: -33.5,-40.5 + parent: 2 + - uid: 5539 + components: + - type: Transform + pos: -33.5,-41.5 + parent: 2 + - uid: 5540 + components: + - type: Transform + pos: -33.5,-42.5 + parent: 2 + - uid: 5541 + components: + - type: Transform + pos: -33.5,-43.5 + parent: 2 + - uid: 5542 + components: + - type: Transform + pos: -32.5,-43.5 + parent: 2 + - uid: 5543 + components: + - type: Transform + pos: -31.5,-43.5 + parent: 2 + - uid: 5544 + components: + - type: Transform + pos: -30.5,-43.5 + parent: 2 + - uid: 5545 + components: + - type: Transform + pos: -29.5,-43.5 + parent: 2 + - uid: 5546 + components: + - type: Transform + pos: -28.5,-43.5 + parent: 2 + - uid: 5547 + components: + - type: Transform + pos: -27.5,-43.5 + parent: 2 + - uid: 5548 + components: + - type: Transform + pos: -26.5,-43.5 + parent: 2 + - uid: 5549 + components: + - type: Transform + pos: -25.5,-43.5 + parent: 2 + - uid: 5550 + components: + - type: Transform + pos: -24.5,-43.5 + parent: 2 + - uid: 5551 + components: + - type: Transform + pos: -23.5,-43.5 + parent: 2 + - uid: 5552 + components: + - type: Transform + pos: -22.5,-43.5 + parent: 2 + - uid: 5553 + components: + - type: Transform + pos: -24.5,17.5 + parent: 2 + - uid: 5554 + components: + - type: Transform + pos: -24.5,18.5 + parent: 2 + - uid: 5555 + components: + - type: Transform + pos: -24.5,19.5 + parent: 2 + - uid: 5556 + components: + - type: Transform + pos: -24.5,20.5 + parent: 2 + - uid: 5557 + components: + - type: Transform + pos: -25.5,20.5 + parent: 2 + - uid: 5558 + components: + - type: Transform + pos: -26.5,20.5 + parent: 2 + - uid: 5559 + components: + - type: Transform + pos: -27.5,20.5 + parent: 2 + - uid: 5560 + components: + - type: Transform + pos: -27.5,21.5 + parent: 2 + - uid: 5561 + components: + - type: Transform + pos: -27.5,22.5 + parent: 2 + - uid: 5562 + components: + - type: Transform + pos: -27.5,23.5 + parent: 2 + - uid: 5563 + components: + - type: Transform + pos: -27.5,24.5 + parent: 2 + - uid: 5564 + components: + - type: Transform + pos: -27.5,25.5 + parent: 2 + - uid: 5565 + components: + - type: Transform + pos: -27.5,26.5 + parent: 2 + - uid: 5566 + components: + - type: Transform + pos: -27.5,27.5 + parent: 2 + - uid: 5567 + components: + - type: Transform + pos: -27.5,28.5 + parent: 2 + - uid: 5568 + components: + - type: Transform + pos: -27.5,29.5 + parent: 2 + - uid: 5569 + components: + - type: Transform + pos: -26.5,29.5 + parent: 2 + - uid: 5570 + components: + - type: Transform + pos: -25.5,29.5 + parent: 2 + - uid: 5571 + components: + - type: Transform + pos: -24.5,29.5 + parent: 2 + - uid: 5572 + components: + - type: Transform + pos: -23.5,29.5 + parent: 2 + - uid: 5573 + components: + - type: Transform + pos: -23.5,28.5 + parent: 2 + - uid: 5574 + components: + - type: Transform + pos: -22.5,28.5 + parent: 2 + - uid: 5575 + components: + - type: Transform + pos: -21.5,28.5 + parent: 2 + - uid: 5576 + components: + - type: Transform + pos: -20.5,28.5 + parent: 2 + - uid: 5577 + components: + - type: Transform + pos: -19.5,28.5 + parent: 2 + - uid: 5578 + components: + - type: Transform + pos: -18.5,28.5 + parent: 2 + - uid: 5579 + components: + - type: Transform + pos: -17.5,28.5 + parent: 2 + - uid: 5580 + components: + - type: Transform + pos: -16.5,28.5 + parent: 2 + - uid: 5581 + components: + - type: Transform + pos: -15.5,28.5 + parent: 2 + - uid: 5582 + components: + - type: Transform + pos: -15.5,27.5 + parent: 2 + - uid: 5583 + components: + - type: Transform + pos: -15.5,26.5 + parent: 2 + - uid: 5584 + components: + - type: Transform + pos: -15.5,25.5 + parent: 2 + - uid: 5585 + components: + - type: Transform + pos: -15.5,24.5 + parent: 2 + - uid: 5586 + components: + - type: Transform + pos: -15.5,23.5 + parent: 2 + - uid: 5587 + components: + - type: Transform + pos: -15.5,22.5 + parent: 2 + - uid: 5588 + components: + - type: Transform + pos: -15.5,21.5 + parent: 2 + - uid: 5589 + components: + - type: Transform + pos: -15.5,20.5 + parent: 2 + - uid: 5590 + components: + - type: Transform + pos: 0.5,18.5 + parent: 2 + - uid: 5591 + components: + - type: Transform + pos: 0.5,17.5 + parent: 2 + - uid: 5592 + components: + - type: Transform + pos: 0.5,16.5 + parent: 2 + - uid: 5593 + components: + - type: Transform + pos: 0.5,15.5 + parent: 2 + - uid: 5594 + components: + - type: Transform + pos: 0.5,14.5 + parent: 2 + - uid: 5595 + components: + - type: Transform + pos: 0.5,13.5 + parent: 2 + - uid: 5596 + components: + - type: Transform + pos: 0.5,12.5 + parent: 2 + - uid: 5597 + components: + - type: Transform + pos: 0.5,11.5 + parent: 2 + - uid: 5598 + components: + - type: Transform + pos: 0.5,10.5 + parent: 2 + - uid: 5599 + components: + - type: Transform + pos: 0.5,9.5 + parent: 2 + - uid: 5600 + components: + - type: Transform + pos: 0.5,8.5 + parent: 2 + - uid: 5601 + components: + - type: Transform + pos: 0.5,7.5 + parent: 2 + - uid: 5602 + components: + - type: Transform + pos: 0.5,6.5 + parent: 2 + - uid: 5603 + components: + - type: Transform + pos: 0.5,5.5 + parent: 2 + - uid: 5604 + components: + - type: Transform + pos: 0.5,4.5 + parent: 2 + - uid: 5605 + components: + - type: Transform + pos: 0.5,3.5 + parent: 2 + - uid: 5606 + components: + - type: Transform + pos: 0.5,2.5 + parent: 2 + - uid: 5607 + components: + - type: Transform + pos: 0.5,1.5 + parent: 2 + - uid: 5608 + components: + - type: Transform + pos: 0.5,0.5 + parent: 2 + - uid: 5609 + components: + - type: Transform + pos: 0.5,-0.5 + parent: 2 + - uid: 5610 + components: + - type: Transform + pos: 0.5,-1.5 + parent: 2 + - uid: 5611 + components: + - type: Transform + pos: 0.5,-2.5 + parent: 2 + - uid: 5612 + components: + - type: Transform + pos: 0.5,-3.5 + parent: 2 + - uid: 5613 + components: + - type: Transform + pos: 0.5,-4.5 + parent: 2 + - uid: 5614 + components: + - type: Transform + pos: 0.5,-5.5 + parent: 2 + - uid: 5615 + components: + - type: Transform + pos: 0.5,-6.5 + parent: 2 + - uid: 5616 + components: + - type: Transform + pos: 0.5,-7.5 + parent: 2 + - uid: 5617 + components: + - type: Transform + pos: 0.5,-8.5 + parent: 2 + - uid: 5618 + components: + - type: Transform + pos: 0.5,-9.5 + parent: 2 + - uid: 5619 + components: + - type: Transform + pos: 0.5,-10.5 + parent: 2 + - uid: 5620 + components: + - type: Transform + pos: 0.5,-11.5 + parent: 2 + - uid: 5621 + components: + - type: Transform + pos: 0.5,-12.5 + parent: 2 + - uid: 5622 + components: + - type: Transform + pos: 0.5,-13.5 + parent: 2 + - uid: 5623 + components: + - type: Transform + pos: 0.5,-14.5 + parent: 2 + - uid: 5624 + components: + - type: Transform + pos: 0.5,-15.5 + parent: 2 + - uid: 5625 + components: + - type: Transform + pos: 1.5,-15.5 + parent: 2 + - uid: 5626 + components: + - type: Transform + pos: -0.5,0.5 + parent: 2 + - uid: 5627 + components: + - type: Transform + pos: -1.5,0.5 + parent: 2 + - uid: 5628 + components: + - type: Transform + pos: -2.5,0.5 + parent: 2 + - uid: 5629 + components: + - type: Transform + pos: -3.5,0.5 + parent: 2 + - uid: 5630 + components: + - type: Transform + pos: -4.5,0.5 + parent: 2 + - uid: 5631 + components: + - type: Transform + pos: -5.5,0.5 + parent: 2 + - uid: 5632 + components: + - type: Transform + pos: -6.5,0.5 + parent: 2 + - uid: 5633 + components: + - type: Transform + pos: -7.5,0.5 + parent: 2 + - uid: 5634 + components: + - type: Transform + pos: -8.5,0.5 + parent: 2 + - uid: 5635 + components: + - type: Transform + pos: -9.5,0.5 + parent: 2 + - uid: 5636 + components: + - type: Transform + pos: -10.5,0.5 + parent: 2 + - uid: 5637 + components: + - type: Transform + pos: -11.5,0.5 + parent: 2 + - uid: 5638 + components: + - type: Transform + pos: -12.5,0.5 + parent: 2 + - uid: 5639 + components: + - type: Transform + pos: -13.5,0.5 + parent: 2 + - uid: 5640 + components: + - type: Transform + pos: -14.5,0.5 + parent: 2 + - uid: 5641 + components: + - type: Transform + pos: -15.5,0.5 + parent: 2 + - uid: 5642 + components: + - type: Transform + pos: -16.5,0.5 + parent: 2 + - uid: 5643 + components: + - type: Transform + pos: -17.5,0.5 + parent: 2 + - uid: 5644 + components: + - type: Transform + pos: -18.5,0.5 + parent: 2 + - uid: 5645 + components: + - type: Transform + pos: -19.5,0.5 + parent: 2 + - uid: 5646 + components: + - type: Transform + pos: 1.5,1.5 + parent: 2 + - uid: 5647 + components: + - type: Transform + pos: 2.5,1.5 + parent: 2 + - uid: 5648 + components: + - type: Transform + pos: 3.5,1.5 + parent: 2 + - uid: 5649 + components: + - type: Transform + pos: 4.5,1.5 + parent: 2 + - uid: 5650 + components: + - type: Transform + pos: 5.5,1.5 + parent: 2 + - uid: 5651 + components: + - type: Transform + pos: 6.5,1.5 + parent: 2 + - uid: 5652 + components: + - type: Transform + pos: 7.5,1.5 + parent: 2 + - uid: 5653 + components: + - type: Transform + pos: 8.5,1.5 + parent: 2 + - uid: 5654 + components: + - type: Transform + pos: 9.5,1.5 + parent: 2 + - uid: 5655 + components: + - type: Transform + pos: 10.5,1.5 + parent: 2 + - uid: 5656 + components: + - type: Transform + pos: 11.5,1.5 + parent: 2 + - uid: 5657 + components: + - type: Transform + pos: 12.5,1.5 + parent: 2 + - uid: 5658 + components: + - type: Transform + pos: 13.5,1.5 + parent: 2 + - uid: 5659 + components: + - type: Transform + pos: 14.5,1.5 + parent: 2 + - uid: 5660 + components: + - type: Transform + pos: -1.5,37.5 + parent: 2 + - uid: 5661 + components: + - type: Transform + pos: -0.5,37.5 + parent: 2 + - uid: 5662 + components: + - type: Transform + pos: -2.5,37.5 + parent: 2 + - uid: 5663 + components: + - type: Transform + pos: -3.5,37.5 + parent: 2 + - uid: 5664 + components: + - type: Transform + pos: -3.5,36.5 + parent: 2 + - uid: 5665 + components: + - type: Transform + pos: -3.5,35.5 + parent: 2 + - uid: 5666 + components: + - type: Transform + pos: -3.5,34.5 + parent: 2 + - uid: 5667 + components: + - type: Transform + pos: -3.5,33.5 + parent: 2 + - uid: 5668 + components: + - type: Transform + pos: -3.5,32.5 + parent: 2 + - uid: 5669 + components: + - type: Transform + pos: -3.5,31.5 + parent: 2 + - uid: 5670 + components: + - type: Transform + pos: -3.5,30.5 + parent: 2 + - uid: 5671 + components: + - type: Transform + pos: -3.5,29.5 + parent: 2 + - uid: 5672 + components: + - type: Transform + pos: -3.5,28.5 + parent: 2 + - uid: 5673 + components: + - type: Transform + pos: -4.5,28.5 + parent: 2 + - uid: 5674 + components: + - type: Transform + pos: -5.5,28.5 + parent: 2 + - uid: 5675 + components: + - type: Transform + pos: -6.5,28.5 + parent: 2 + - uid: 5676 + components: + - type: Transform + pos: -7.5,28.5 + parent: 2 + - uid: 5677 + components: + - type: Transform + pos: -8.5,28.5 + parent: 2 + - uid: 5678 + components: + - type: Transform + pos: -9.5,28.5 + parent: 2 + - uid: 5679 + components: + - type: Transform + pos: -10.5,28.5 + parent: 2 + - uid: 5680 + components: + - type: Transform + pos: -11.5,28.5 + parent: 2 + - uid: 5681 + components: + - type: Transform + pos: -12.5,28.5 + parent: 2 + - uid: 5682 + components: + - type: Transform + pos: -13.5,28.5 + parent: 2 + - uid: 5683 + components: + - type: Transform + pos: -14.5,28.5 + parent: 2 + - uid: 5684 + components: + - type: Transform + pos: -4.5,77.5 + parent: 2 + - uid: 5685 + components: + - type: Transform + pos: -3.5,76.5 + parent: 2 + - uid: 5686 + components: + - type: Transform + pos: -5.5,76.5 + parent: 2 + - uid: 5687 + components: + - type: Transform + pos: -6.5,76.5 + parent: 2 + - uid: 5688 + components: + - type: Transform + pos: -4.5,75.5 + parent: 2 + - uid: 5689 + components: + - type: Transform + pos: -4.5,74.5 + parent: 2 + - uid: 5690 + components: + - type: Transform + pos: -4.5,73.5 + parent: 2 + - uid: 5691 + components: + - type: Transform + pos: -4.5,72.5 + parent: 2 + - uid: 5692 + components: + - type: Transform + pos: -4.5,71.5 + parent: 2 + - uid: 5693 + components: + - type: Transform + pos: -4.5,70.5 + parent: 2 + - uid: 5694 + components: + - type: Transform + pos: -4.5,69.5 + parent: 2 + - uid: 5695 + components: + - type: Transform + pos: -4.5,68.5 + parent: 2 + - uid: 5696 + components: + - type: Transform + pos: -4.5,62.5 + parent: 2 + - uid: 5697 + components: + - type: Transform + pos: -4.5,61.5 + parent: 2 + - uid: 5698 + components: + - type: Transform + pos: -4.5,60.5 + parent: 2 + - uid: 5699 + components: + - type: Transform + pos: -4.5,59.5 + parent: 2 + - uid: 5700 + components: + - type: Transform + pos: -3.5,59.5 + parent: 2 + - uid: 5701 + components: + - type: Transform + pos: -2.5,59.5 + parent: 2 + - uid: 5702 + components: + - type: Transform + pos: -1.5,59.5 + parent: 2 + - uid: 5703 + components: + - type: Transform + pos: -0.5,59.5 + parent: 2 + - uid: 5704 + components: + - type: Transform + pos: -0.5,58.5 + parent: 2 + - uid: 5705 + components: + - type: Transform + pos: -0.5,57.5 + parent: 2 + - uid: 5706 + components: + - type: Transform + pos: -0.5,56.5 + parent: 2 + - uid: 5707 + components: + - type: Transform + pos: -0.5,55.5 + parent: 2 + - uid: 5708 + components: + - type: Transform + pos: -0.5,54.5 + parent: 2 + - uid: 5709 + components: + - type: Transform + pos: -0.5,53.5 + parent: 2 + - uid: 5710 + components: + - type: Transform + pos: -0.5,52.5 + parent: 2 + - uid: 5711 + components: + - type: Transform + pos: -0.5,51.5 + parent: 2 + - uid: 5712 + components: + - type: Transform + pos: -0.5,50.5 + parent: 2 + - uid: 5713 + components: + - type: Transform + pos: -0.5,49.5 + parent: 2 + - uid: 5714 + components: + - type: Transform + pos: -0.5,48.5 + parent: 2 + - uid: 5715 + components: + - type: Transform + pos: -0.5,47.5 + parent: 2 + - uid: 5716 + components: + - type: Transform + pos: -0.5,46.5 + parent: 2 + - uid: 5717 + components: + - type: Transform + pos: -0.5,45.5 + parent: 2 + - uid: 5718 + components: + - type: Transform + pos: -0.5,44.5 + parent: 2 + - uid: 5719 + components: + - type: Transform + pos: -0.5,43.5 + parent: 2 + - uid: 5720 + components: + - type: Transform + pos: -3.5,70.5 + parent: 2 + - uid: 5721 + components: + - type: Transform + pos: -2.5,70.5 + parent: 2 + - uid: 5722 + components: + - type: Transform + pos: -1.5,70.5 + parent: 2 + - uid: 5723 + components: + - type: Transform + pos: -0.5,70.5 + parent: 2 + - uid: 5724 + components: + - type: Transform + pos: 0.5,70.5 + parent: 2 + - uid: 5725 + components: + - type: Transform + pos: 1.5,70.5 + parent: 2 + - uid: 5726 + components: + - type: Transform + pos: 2.5,70.5 + parent: 2 + - uid: 5727 + components: + - type: Transform + pos: 3.5,70.5 + parent: 2 + - uid: 5728 + components: + - type: Transform + pos: 4.5,70.5 + parent: 2 + - uid: 5729 + components: + - type: Transform + pos: 5.5,70.5 + parent: 2 + - uid: 5730 + components: + - type: Transform + pos: 6.5,70.5 + parent: 2 + - uid: 5731 + components: + - type: Transform + pos: 6.5,69.5 + parent: 2 + - uid: 5732 + components: + - type: Transform + pos: 6.5,68.5 + parent: 2 + - uid: 5733 + components: + - type: Transform + pos: 6.5,62.5 + parent: 2 + - uid: 5734 + components: + - type: Transform + pos: 6.5,61.5 + parent: 2 + - uid: 5735 + components: + - type: Transform + pos: 6.5,60.5 + parent: 2 + - uid: 5736 + components: + - type: Transform + pos: 6.5,59.5 + parent: 2 + - uid: 5737 + components: + - type: Transform + pos: 5.5,59.5 + parent: 2 + - uid: 5738 + components: + - type: Transform + pos: 4.5,59.5 + parent: 2 + - uid: 5739 + components: + - type: Transform + pos: 3.5,59.5 + parent: 2 + - uid: 5740 + components: + - type: Transform + pos: 2.5,59.5 + parent: 2 + - uid: 5741 + components: + - type: Transform + pos: 1.5,59.5 + parent: 2 + - uid: 5742 + components: + - type: Transform + pos: 0.5,59.5 + parent: 2 + - uid: 5743 + components: + - type: Transform + pos: 2.5,58.5 + parent: 2 + - uid: 5744 + components: + - type: Transform + pos: 2.5,57.5 + parent: 2 + - uid: 5745 + components: + - type: Transform + pos: 2.5,56.5 + parent: 2 + - uid: 5746 + components: + - type: Transform + pos: 2.5,55.5 + parent: 2 + - uid: 5747 + components: + - type: Transform + pos: 2.5,54.5 + parent: 2 + - uid: 5748 + components: + - type: Transform + pos: 2.5,53.5 + parent: 2 + - uid: 5749 + components: + - type: Transform + pos: 2.5,52.5 + parent: 2 + - uid: 5750 + components: + - type: Transform + pos: 2.5,51.5 + parent: 2 + - uid: 5751 + components: + - type: Transform + pos: 2.5,50.5 + parent: 2 + - uid: 5752 + components: + - type: Transform + pos: 2.5,49.5 + parent: 2 + - uid: 5753 + components: + - type: Transform + pos: 2.5,48.5 + parent: 2 + - uid: 5754 + components: + - type: Transform + pos: 2.5,47.5 + parent: 2 + - uid: 5755 + components: + - type: Transform + pos: 2.5,46.5 + parent: 2 + - uid: 5756 + components: + - type: Transform + pos: 2.5,45.5 + parent: 2 + - uid: 5757 + components: + - type: Transform + pos: 2.5,44.5 + parent: 2 + - uid: 5758 + components: + - type: Transform + pos: 2.5,43.5 + parent: 2 + - uid: 5759 + components: + - type: Transform + pos: 2.5,42.5 + parent: 2 + - uid: 5760 + components: + - type: Transform + pos: 1.5,42.5 + parent: 2 + - uid: 5761 + components: + - type: Transform + pos: -4.5,79.5 + parent: 2 + - uid: 5762 + components: + - type: Transform + pos: -4.5,80.5 + parent: 2 + - uid: 5763 + components: + - type: Transform + pos: -4.5,81.5 + parent: 2 + - uid: 5764 + components: + - type: Transform + pos: -4.5,82.5 + parent: 2 + - uid: 5765 + components: + - type: Transform + pos: -4.5,83.5 + parent: 2 + - uid: 5766 + components: + - type: Transform + pos: -4.5,84.5 + parent: 2 + - uid: 5767 + components: + - type: Transform + pos: -3.5,84.5 + parent: 2 + - uid: 5768 + components: + - type: Transform + pos: -2.5,84.5 + parent: 2 + - uid: 5769 + components: + - type: Transform + pos: -1.5,84.5 + parent: 2 + - uid: 5770 + components: + - type: Transform + pos: -0.5,84.5 + parent: 2 + - uid: 5771 + components: + - type: Transform + pos: 0.5,84.5 + parent: 2 + - uid: 5772 + components: + - type: Transform + pos: 1.5,84.5 + parent: 2 + - uid: 5773 + components: + - type: Transform + pos: 2.5,84.5 + parent: 2 + - uid: 5774 + components: + - type: Transform + pos: 3.5,84.5 + parent: 2 + - uid: 5775 + components: + - type: Transform + pos: 4.5,84.5 + parent: 2 + - uid: 5776 + components: + - type: Transform + pos: 5.5,84.5 + parent: 2 + - uid: 5777 + components: + - type: Transform + pos: 6.5,84.5 + parent: 2 + - uid: 5778 + components: + - type: Transform + pos: 7.5,84.5 + parent: 2 + - uid: 5779 + components: + - type: Transform + pos: 7.5,83.5 + parent: 2 + - uid: 5780 + components: + - type: Transform + pos: 7.5,82.5 + parent: 2 + - uid: 5781 + components: + - type: Transform + pos: 7.5,81.5 + parent: 2 + - uid: 5782 + components: + - type: Transform + pos: 7.5,80.5 + parent: 2 + - uid: 5783 + components: + - type: Transform + pos: 7.5,79.5 + parent: 2 + - uid: 5784 + components: + - type: Transform + pos: 7.5,78.5 + parent: 2 + - uid: 5785 + components: + - type: Transform + pos: 7.5,77.5 + parent: 2 + - uid: 5786 + components: + - type: Transform + pos: 7.5,76.5 + parent: 2 + - uid: 5787 + components: + - type: Transform + pos: 7.5,75.5 + parent: 2 + - uid: 5788 + components: + - type: Transform + pos: 7.5,74.5 + parent: 2 + - uid: 5789 + components: + - type: Transform + pos: 7.5,73.5 + parent: 2 + - uid: 5790 + components: + - type: Transform + pos: 7.5,72.5 + parent: 2 + - uid: 5791 + components: + - type: Transform + pos: 7.5,71.5 + parent: 2 + - uid: 5792 + components: + - type: Transform + pos: 7.5,70.5 + parent: 2 + - uid: 5793 + components: + - type: Transform + pos: -0.5,60.5 + parent: 2 + - uid: 5794 + components: + - type: Transform + pos: -0.5,61.5 + parent: 2 + - uid: 5795 + components: + - type: Transform + pos: -1.5,61.5 + parent: 2 + - uid: 5796 + components: + - type: Transform + pos: -2.5,-47.5 + parent: 2 + - uid: 5797 + components: + - type: Transform + pos: 8.5,-52.5 + parent: 2 + - uid: 5798 + components: + - type: Transform + pos: 9.5,-52.5 + parent: 2 + - uid: 5799 + components: + - type: Transform + pos: 10.5,-52.5 + parent: 2 + - uid: 5800 + components: + - type: Transform + pos: 11.5,-52.5 + parent: 2 + - uid: 5801 + components: + - type: Transform + pos: 11.5,-53.5 + parent: 2 + - uid: 5803 + components: + - type: Transform + pos: 6.5,29.5 + parent: 2 + - uid: 5804 + components: + - type: Transform + pos: 7.5,29.5 + parent: 2 + - uid: 5805 + components: + - type: Transform + pos: 7.5,30.5 + parent: 2 + - uid: 5806 + components: + - type: Transform + pos: 7.5,31.5 + parent: 2 + - uid: 5807 + components: + - type: Transform + pos: 6.5,31.5 + parent: 2 + - uid: 5808 + components: + - type: Transform + pos: 8.5,31.5 + parent: 2 + - uid: 5809 + components: + - type: Transform + pos: 7.5,32.5 + parent: 2 + - uid: 5810 + components: + - type: Transform + pos: 8.5,30.5 + parent: 2 + - uid: 5811 + components: + - type: Transform + pos: 6.5,30.5 + parent: 2 + - uid: 5812 + components: + - type: Transform + pos: 6.5,32.5 + parent: 2 + - uid: 5813 + components: + - type: Transform + pos: 8.5,32.5 + parent: 2 + - uid: 5814 + components: + - type: Transform + pos: 8.5,29.5 + parent: 2 + - uid: 5815 + components: + - type: Transform + pos: -5.5,77.5 + parent: 2 + - uid: 5816 + components: + - type: Transform + pos: -34.5,-56.5 + parent: 2 + - uid: 5817 + components: + - type: Transform + pos: -33.5,-56.5 + parent: 2 + - uid: 5818 + components: + - type: Transform + pos: -35.5,-56.5 + parent: 2 + - uid: 5819 + components: + - type: Transform + pos: 8.5,-35.5 + parent: 2 + - uid: 5820 + components: + - type: Transform + pos: 7.5,-35.5 + parent: 2 + - uid: 5821 + components: + - type: Transform + pos: 3.5,-35.5 + parent: 2 + - uid: 5822 + components: + - type: Transform + pos: 30.5,-46.5 + parent: 2 + - uid: 5823 + components: + - type: Transform + pos: 32.5,-47.5 + parent: 2 + - uid: 5824 + components: + - type: Transform + pos: 31.5,-46.5 + parent: 2 + - uid: 5825 + components: + - type: Transform + pos: 32.5,-49.5 + parent: 2 + - uid: 5826 + components: + - type: Transform + pos: 37.5,-45.5 + parent: 2 + - uid: 5827 + components: + - type: Transform + pos: 37.5,-46.5 + parent: 2 + - uid: 5828 + components: + - type: Transform + pos: 38.5,-46.5 + parent: 2 + - uid: 5829 + components: + - type: Transform + pos: 39.5,-46.5 + parent: 2 + - uid: 5830 + components: + - type: Transform + pos: 40.5,-46.5 + parent: 2 + - uid: 5831 + components: + - type: Transform + pos: 41.5,-46.5 + parent: 2 + - uid: 5832 + components: + - type: Transform + pos: 5.5,-35.5 + parent: 2 + - uid: 5833 + components: + - type: Transform + pos: -17.5,-56.5 + parent: 2 + - uid: 5834 + components: + - type: Transform + pos: 4.5,-35.5 + parent: 2 + - uid: 5835 + components: + - type: Transform + pos: -19.5,-55.5 + parent: 2 + - uid: 5836 + components: + - type: Transform + pos: -18.5,-55.5 + parent: 2 + - uid: 5837 + components: + - type: Transform + pos: -17.5,-55.5 + parent: 2 + - uid: 5838 + components: + - type: Transform + pos: -15.5,-55.5 + parent: 2 + - uid: 5839 + components: + - type: Transform + pos: -14.5,-58.5 + parent: 2 + - uid: 5840 + components: + - type: Transform + pos: -13.5,-58.5 + parent: 2 + - uid: 5841 + components: + - type: Transform + pos: -15.5,-58.5 + parent: 2 + - uid: 5842 + components: + - type: Transform + pos: -18.5,-58.5 + parent: 2 + - uid: 5843 + components: + - type: Transform + pos: -17.5,-58.5 + parent: 2 + - uid: 5844 + components: + - type: Transform + pos: -16.5,-58.5 + parent: 2 + - uid: 5845 + components: + - type: Transform + pos: 6.5,-35.5 + parent: 2 + - uid: 5846 + components: + - type: Transform + pos: -15.5,-54.5 + parent: 2 + - uid: 5847 + components: + - type: Transform + pos: -15.5,-53.5 + parent: 2 + - uid: 5848 + components: + - type: Transform + pos: 45.5,23.5 + parent: 2 + - uid: 5849 + components: + - type: Transform + pos: 46.5,22.5 + parent: 2 + - uid: 5850 + components: + - type: Transform + pos: -4.5,77.5 + parent: 2 + - uid: 5851 + components: + - type: Transform + pos: 4.5,32.5 + parent: 2 + - uid: 5852 + components: + - type: Transform + pos: 8.5,34.5 + parent: 2 + - uid: 5853 + components: + - type: Transform + pos: 8.5,35.5 + parent: 2 + - uid: 5854 + components: + - type: Transform + pos: -3.5,76.5 + parent: 2 + - uid: 5855 + components: + - type: Transform + pos: -3.5,77.5 + parent: 2 + - uid: 5856 + components: + - type: Transform + pos: -3.5,75.5 + parent: 2 + - uid: 5857 + components: + - type: Transform + pos: -4.5,78.5 + parent: 2 + - uid: 5858 + components: + - type: Transform + pos: 60.5,20.5 + parent: 2 + - uid: 5859 + components: + - type: Transform + pos: 62.5,18.5 + parent: 2 + - uid: 5860 + components: + - type: Transform + pos: 62.5,19.5 + parent: 2 + - uid: 5861 + components: + - type: Transform + pos: 62.5,20.5 + parent: 2 + - uid: 5862 + components: + - type: Transform + pos: 62.5,21.5 + parent: 2 + - uid: 5863 + components: + - type: Transform + pos: 64.5,21.5 + parent: 2 + - uid: 5864 + components: + - type: Transform + pos: 64.5,20.5 + parent: 2 + - uid: 5865 + components: + - type: Transform + pos: 64.5,19.5 + parent: 2 + - uid: 5866 + components: + - type: Transform + pos: 64.5,18.5 + parent: 2 + - uid: 5867 + components: + - type: Transform + pos: 66.5,18.5 + parent: 2 + - uid: 5868 + components: + - type: Transform + pos: 66.5,19.5 + parent: 2 + - uid: 5869 + components: + - type: Transform + pos: 66.5,20.5 + parent: 2 + - uid: 5870 + components: + - type: Transform + pos: 66.5,21.5 + parent: 2 + - uid: 5871 + components: + - type: Transform + pos: 68.5,21.5 + parent: 2 + - uid: 5872 + components: + - type: Transform + pos: 68.5,20.5 + parent: 2 + - uid: 5873 + components: + - type: Transform + pos: 68.5,19.5 + parent: 2 + - uid: 5874 + components: + - type: Transform + pos: 70.5,19.5 + parent: 2 + - uid: 5875 + components: + - type: Transform + pos: 70.5,20.5 + parent: 2 + - uid: 5876 + components: + - type: Transform + pos: 70.5,21.5 + parent: 2 + - uid: 5877 + components: + - type: Transform + pos: 72.5,21.5 + parent: 2 + - uid: 5878 + components: + - type: Transform + pos: 72.5,20.5 + parent: 2 + - uid: 5879 + components: + - type: Transform + pos: 72.5,19.5 + parent: 2 + - uid: 5880 + components: + - type: Transform + pos: 74.5,19.5 + parent: 2 + - uid: 5881 + components: + - type: Transform + pos: 74.5,20.5 + parent: 2 + - uid: 5882 + components: + - type: Transform + pos: 74.5,21.5 + parent: 2 + - uid: 5883 + components: + - type: Transform + pos: 70.5,25.5 + parent: 2 + - uid: 5884 + components: + - type: Transform + pos: 74.5,25.5 + parent: 2 + - uid: 5885 + components: + - type: Transform + pos: 74.5,26.5 + parent: 2 + - uid: 5886 + components: + - type: Transform + pos: 74.5,27.5 + parent: 2 + - uid: 5887 + components: + - type: Transform + pos: 72.5,27.5 + parent: 2 + - uid: 5888 + components: + - type: Transform + pos: 72.5,26.5 + parent: 2 + - uid: 5889 + components: + - type: Transform + pos: 72.5,25.5 + parent: 2 + - uid: 5890 + components: + - type: Transform + pos: 70.5,26.5 + parent: 2 + - uid: 5891 + components: + - type: Transform + pos: 70.5,27.5 + parent: 2 + - uid: 5892 + components: + - type: Transform + pos: 68.5,27.5 + parent: 2 + - uid: 5893 + components: + - type: Transform + pos: 68.5,26.5 + parent: 2 + - uid: 5894 + components: + - type: Transform + pos: 68.5,25.5 + parent: 2 + - uid: 5895 + components: + - type: Transform + pos: 66.5,25.5 + parent: 2 + - uid: 5896 + components: + - type: Transform + pos: 66.5,26.5 + parent: 2 + - uid: 5897 + components: + - type: Transform + pos: 66.5,27.5 + parent: 2 + - uid: 5898 + components: + - type: Transform + pos: 66.5,28.5 + parent: 2 + - uid: 5899 + components: + - type: Transform + pos: 64.5,28.5 + parent: 2 + - uid: 5900 + components: + - type: Transform + pos: 64.5,27.5 + parent: 2 + - uid: 5901 + components: + - type: Transform + pos: 64.5,26.5 + parent: 2 + - uid: 5902 + components: + - type: Transform + pos: 64.5,25.5 + parent: 2 + - uid: 5903 + components: + - type: Transform + pos: 62.5,25.5 + parent: 2 + - uid: 5904 + components: + - type: Transform + pos: 62.5,26.5 + parent: 2 + - uid: 5905 + components: + - type: Transform + pos: 62.5,27.5 + parent: 2 + - uid: 5906 + components: + - type: Transform + pos: 62.5,28.5 + parent: 2 + - uid: 5907 + components: + - type: Transform + pos: 62.5,29.5 + parent: 2 + - uid: 5908 + components: + - type: Transform + pos: 60.5,29.5 + parent: 2 + - uid: 5909 + components: + - type: Transform + pos: 60.5,28.5 + parent: 2 + - uid: 5910 + components: + - type: Transform + pos: 60.5,27.5 + parent: 2 + - uid: 5911 + components: + - type: Transform + pos: 60.5,26.5 + parent: 2 + - uid: 5912 + components: + - type: Transform + pos: 60.5,25.5 + parent: 2 + - uid: 5913 + components: + - type: Transform + pos: -33.5,-54.5 + parent: 2 + - uid: 5914 + components: + - type: Transform + pos: 10.5,-53.5 + parent: 2 + - uid: 5915 + components: + - type: Transform + pos: 45.5,22.5 + parent: 2 + - uid: 5916 + components: + - type: Transform + pos: -7.5,-60.5 + parent: 2 + - uid: 5917 + components: + - type: Transform + pos: -6.5,-60.5 + parent: 2 + - uid: 5918 + components: + - type: Transform + pos: -5.5,-60.5 + parent: 2 + - uid: 5919 + components: + - type: Transform + pos: -4.5,-60.5 + parent: 2 + - uid: 5920 + components: + - type: Transform + pos: -3.5,-60.5 + parent: 2 + - uid: 5921 + components: + - type: Transform + pos: -2.5,-60.5 + parent: 2 + - uid: 5922 + components: + - type: Transform + pos: -1.5,-60.5 + parent: 2 + - uid: 5923 + components: + - type: Transform + pos: -0.5,-60.5 + parent: 2 + - uid: 5924 + components: + - type: Transform + pos: 0.5,-60.5 + parent: 2 + - uid: 5925 + components: + - type: Transform + pos: -3.5,-58.5 + parent: 2 + - uid: 5926 + components: + - type: Transform + pos: -3.5,-57.5 + parent: 2 + - uid: 5927 + components: + - type: Transform + pos: -3.5,-56.5 + parent: 2 + - uid: 5928 + components: + - type: Transform + pos: -2.5,-58.5 + parent: 2 + - uid: 5929 + components: + - type: Transform + pos: -2.5,-57.5 + parent: 2 + - uid: 5930 + components: + - type: Transform + pos: -2.5,-56.5 + parent: 2 + - uid: 5931 + components: + - type: Transform + pos: -1.5,-58.5 + parent: 2 + - uid: 5932 + components: + - type: Transform + pos: -1.5,-57.5 + parent: 2 + - uid: 5933 + components: + - type: Transform + pos: -1.5,-56.5 + parent: 2 + - uid: 5934 + components: + - type: Transform + pos: -0.5,-58.5 + parent: 2 + - uid: 5935 + components: + - type: Transform + pos: -0.5,-57.5 + parent: 2 + - uid: 5936 + components: + - type: Transform + pos: -0.5,-56.5 + parent: 2 + - uid: 5937 + components: + - type: Transform + pos: -6.5,-58.5 + parent: 2 + - uid: 5938 + components: + - type: Transform + pos: -6.5,-57.5 + parent: 2 + - uid: 5939 + components: + - type: Transform + pos: -6.5,-56.5 + parent: 2 + - uid: 5940 + components: + - type: Transform + pos: 34.5,-46.5 + parent: 2 + - uid: 5941 + components: + - type: Transform + pos: 32.5,-46.5 + parent: 2 + - uid: 5942 + components: + - type: Transform + pos: 34.5,-45.5 + parent: 2 + - uid: 5943 + components: + - type: Transform + pos: 36.5,-45.5 + parent: 2 + - uid: 5944 + components: + - type: Transform + pos: 33.5,-49.5 + parent: 2 + - uid: 5945 + components: + - type: Transform + pos: 34.5,-49.5 + parent: 2 + - uid: 5946 + components: + - type: Transform + pos: 35.5,-49.5 + parent: 2 + - uid: 5947 + components: + - type: Transform + pos: 35.5,-47.5 + parent: 2 + - uid: 5948 + components: + - type: Transform + pos: 35.5,-48.5 + parent: 2 + - uid: 5949 + components: + - type: Transform + pos: 35.5,-46.5 + parent: 2 + - uid: 5950 + components: + - type: Transform + pos: 32.5,-48.5 + parent: 2 + - uid: 5951 + components: + - type: Transform + pos: -17.5,-54.5 + parent: 2 + - uid: 5952 + components: + - type: Transform + pos: -18.5,-54.5 + parent: 2 + - uid: 5953 + components: + - type: Transform + pos: -19.5,-54.5 + parent: 2 + - uid: 5954 + components: + - type: Transform + pos: 28.5,-40.5 + parent: 2 + - uid: 5955 + components: + - type: Transform + pos: 27.5,-40.5 + parent: 2 + - uid: 5956 + components: + - type: Transform + pos: 26.5,-40.5 + parent: 2 + - uid: 5957 + components: + - type: Transform + pos: 25.5,-40.5 + parent: 2 + - uid: 5958 + components: + - type: Transform + pos: 24.5,-40.5 + parent: 2 + - uid: 5959 + components: + - type: Transform + pos: 23.5,-40.5 + parent: 2 + - uid: 5960 + components: + - type: Transform + pos: 22.5,-40.5 + parent: 2 + - uid: 5961 + components: + - type: Transform + pos: 21.5,-40.5 + parent: 2 + - uid: 5962 + components: + - type: Transform + pos: 20.5,-40.5 + parent: 2 + - uid: 5963 + components: + - type: Transform + pos: 19.5,-40.5 + parent: 2 + - uid: 5964 + components: + - type: Transform + pos: 18.5,-40.5 + parent: 2 + - uid: 5965 + components: + - type: Transform + pos: 17.5,-40.5 + parent: 2 + - uid: 5966 + components: + - type: Transform + pos: 16.5,-40.5 + parent: 2 + - uid: 5967 + components: + - type: Transform + pos: 15.5,-40.5 + parent: 2 + - uid: 5968 + components: + - type: Transform + pos: 14.5,-40.5 + parent: 2 + - uid: 5969 + components: + - type: Transform + pos: 13.5,-40.5 + parent: 2 + - uid: 5970 + components: + - type: Transform + pos: 12.5,-40.5 + parent: 2 + - uid: 5971 + components: + - type: Transform + pos: 11.5,-40.5 + parent: 2 + - uid: 5972 + components: + - type: Transform + pos: 10.5,-40.5 + parent: 2 + - uid: 5973 + components: + - type: Transform + pos: 9.5,-40.5 + parent: 2 + - uid: 5974 + components: + - type: Transform + pos: 8.5,-40.5 + parent: 2 + - uid: 5975 + components: + - type: Transform + pos: 7.5,-40.5 + parent: 2 + - uid: 5976 + components: + - type: Transform + pos: 6.5,-40.5 + parent: 2 + - uid: 5977 + components: + - type: Transform + pos: 4.5,-40.5 + parent: 2 + - uid: 5978 + components: + - type: Transform + pos: 5.5,-40.5 + parent: 2 + - uid: 5979 + components: + - type: Transform + pos: 6.5,-43.5 + parent: 2 + - uid: 5980 + components: + - type: Transform + pos: 6.5,-44.5 + parent: 2 + - uid: 5981 + components: + - type: Transform + pos: 6.5,-45.5 + parent: 2 + - uid: 5982 + components: + - type: Transform + pos: 6.5,-46.5 + parent: 2 + - uid: 5983 + components: + - type: Transform + pos: 7.5,-46.5 + parent: 2 + - uid: 5984 + components: + - type: Transform + pos: 34.5,-44.5 + parent: 2 + - uid: 5985 + components: + - type: Transform + pos: 3.5,-40.5 + parent: 2 + - uid: 5986 + components: + - type: Transform + pos: 2.5,-40.5 + parent: 2 + - uid: 5987 + components: + - type: Transform + pos: 44.5,25.5 + parent: 2 + - uid: 5988 + components: + - type: Transform + pos: 45.5,25.5 + parent: 2 + - uid: 5989 + components: + - type: Transform + pos: 45.5,24.5 + parent: 2 + - uid: 5990 + components: + - type: Transform + pos: 46.5,21.5 + parent: 2 + - uid: 5991 + components: + - type: Transform + pos: -32.5,-56.5 + parent: 2 + - uid: 5992 + components: + - type: Transform + pos: -1.5,-69.5 + parent: 2 + - uid: 5993 + components: + - type: Transform + pos: -1.5,-70.5 + parent: 2 + - uid: 5994 + components: + - type: Transform + pos: 2.5,-68.5 + parent: 2 + - uid: 5995 + components: + - type: Transform + pos: 2.5,-70.5 + parent: 2 + - uid: 5996 + components: + - type: Transform + pos: 2.5,-69.5 + parent: 2 + - uid: 5997 + components: + - type: Transform + pos: -2.5,-68.5 + parent: 2 + - uid: 5998 + components: + - type: Transform + pos: -5.5,-66.5 + parent: 2 + - uid: 5999 + components: + - type: Transform + pos: -5.5,-65.5 + parent: 2 + - uid: 6000 + components: + - type: Transform + pos: -1.5,-68.5 + parent: 2 + - uid: 6001 + components: + - type: Transform + pos: -4.5,-69.5 + parent: 2 + - uid: 6002 + components: + - type: Transform + pos: -5.5,-67.5 + parent: 2 + - uid: 6003 + components: + - type: Transform + pos: 3.5,-68.5 + parent: 2 + - uid: 6004 + components: + - type: Transform + pos: 3.5,-69.5 + parent: 2 + - uid: 6005 + components: + - type: Transform + pos: 3.5,-70.5 + parent: 2 + - uid: 6006 + components: + - type: Transform + pos: -2.5,-69.5 + parent: 2 + - uid: 6007 + components: + - type: Transform + pos: -3.5,-69.5 + parent: 2 + - uid: 6008 + components: + - type: Transform + pos: -5.5,-69.5 + parent: 2 + - uid: 6009 + components: + - type: Transform + pos: -2.5,-70.5 + parent: 2 + - uid: 6010 + components: + - type: Transform + pos: -5.5,-68.5 + parent: 2 + - uid: 6011 + components: + - type: Transform + pos: -5.5,-64.5 + parent: 2 + - uid: 6012 + components: + - type: Transform + pos: -5.5,-63.5 + parent: 2 + - uid: 6013 + components: + - type: Transform + pos: -5.5,-62.5 + parent: 2 + - uid: 6014 + components: + - type: Transform + pos: -4.5,-62.5 + parent: 2 + - uid: 6015 + components: + - type: Transform + pos: -3.5,-62.5 + parent: 2 + - uid: 6016 + components: + - type: Transform + pos: -3.5,-61.5 + parent: 2 + - uid: 6017 + components: + - type: Transform + pos: -2.5,-62.5 + parent: 2 + - uid: 6018 + components: + - type: Transform + pos: -1.5,-62.5 + parent: 2 + - uid: 6019 + components: + - type: Transform + pos: -0.5,-62.5 + parent: 2 + - uid: 6020 + components: + - type: Transform + pos: 0.5,-62.5 + parent: 2 + - uid: 6021 + components: + - type: Transform + pos: 1.5,-62.5 + parent: 2 + - uid: 6022 + components: + - type: Transform + pos: 2.5,-62.5 + parent: 2 + - uid: 6023 + components: + - type: Transform + pos: 3.5,-62.5 + parent: 2 + - uid: 6024 + components: + - type: Transform + pos: 4.5,-62.5 + parent: 2 + - uid: 6025 + components: + - type: Transform + pos: 5.5,-62.5 + parent: 2 + - uid: 6026 + components: + - type: Transform + pos: 6.5,-62.5 + parent: 2 + - uid: 6027 + components: + - type: Transform + pos: 7.5,-62.5 + parent: 2 + - uid: 6028 + components: + - type: Transform + pos: 7.5,-63.5 + parent: 2 + - uid: 6029 + components: + - type: Transform + pos: 7.5,-64.5 + parent: 2 + - uid: 6030 + components: + - type: Transform + pos: 7.5,-65.5 + parent: 2 + - uid: 6031 + components: + - type: Transform + pos: 7.5,-66.5 + parent: 2 + - uid: 6032 + components: + - type: Transform + pos: 7.5,-67.5 + parent: 2 + - uid: 6033 + components: + - type: Transform + pos: 7.5,-68.5 + parent: 2 + - uid: 6034 + components: + - type: Transform + pos: 7.5,-69.5 + parent: 2 + - uid: 6035 + components: + - type: Transform + pos: 6.5,-69.5 + parent: 2 + - uid: 6036 + components: + - type: Transform + pos: 5.5,-69.5 + parent: 2 + - uid: 6037 + components: + - type: Transform + pos: 4.5,-69.5 + parent: 2 + - uid: 23837 + components: + - type: Transform + pos: 1.5,85.5 + parent: 2 + - uid: 23838 + components: + - type: Transform + pos: 1.5,86.5 + parent: 2 + - uid: 23839 + components: + - type: Transform + pos: 0.5,86.5 + parent: 2 + - uid: 23840 + components: + - type: Transform + pos: -0.5,86.5 + parent: 2 + - uid: 23841 + components: + - type: Transform + pos: 2.5,86.5 + parent: 2 + - uid: 23842 + components: + - type: Transform + pos: 3.5,86.5 + parent: 2 + - uid: 23843 + components: + - type: Transform + pos: -3.5,69.5 + parent: 2 + - uid: 23844 + components: + - type: Transform + pos: -3.5,68.5 + parent: 2 + - uid: 23845 + components: + - type: Transform + pos: -2.5,68.5 + parent: 2 + - uid: 23846 + components: + - type: Transform + pos: 5.5,69.5 + parent: 2 + - uid: 23847 + components: + - type: Transform + pos: 5.5,68.5 + parent: 2 + - uid: 23848 + components: + - type: Transform + pos: 1.5,71.5 + parent: 2 + - uid: 23849 + components: + - type: Transform + pos: 1.5,72.5 + parent: 2 + - uid: 23850 + components: + - type: Transform + pos: 1.5,73.5 + parent: 2 + - uid: 23851 + components: + - type: Transform + pos: 2.5,73.5 + parent: 2 + - uid: 23852 + components: + - type: Transform + pos: 0.5,73.5 + parent: 2 + - uid: 23853 + components: + - type: Transform + pos: 0.5,83.5 + parent: 2 + - uid: 23854 + components: + - type: Transform + pos: 0.5,82.5 + parent: 2 + - uid: 23855 + components: + - type: Transform + pos: 0.5,81.5 + parent: 2 + - uid: 23856 + components: + - type: Transform + pos: 2.5,83.5 + parent: 2 + - uid: 23857 + components: + - type: Transform + pos: 2.5,82.5 + parent: 2 + - uid: 23858 + components: + - type: Transform + pos: 2.5,81.5 + parent: 2 +- proto: CableHVStack + entities: + - uid: 6038 + components: + - type: Transform + pos: -42.541927,-61.48547 + parent: 2 + - uid: 6039 + components: + - type: Transform + pos: 61.45578,23.48829 + parent: 2 + - uid: 6040 + components: + - type: Transform + pos: 14.413268,-51.292038 + parent: 2 + - uid: 6041 + components: + - type: Transform + pos: -14.307997,-55.534718 + parent: 2 + - uid: 6042 + components: + - type: Transform + pos: 22.526024,-45.412346 + parent: 2 + - uid: 6043 + components: + - type: Transform + pos: 43.45204,-57.567394 + parent: 2 + - uid: 6044 + components: + - type: Transform + pos: -3.6150723,49.794346 + parent: 2 +- proto: CableHVStack1 + entities: + - uid: 6045 + components: + - type: Transform + pos: 65.39983,23.446333 + parent: 2 + - uid: 6046 + components: + - type: Transform + pos: 65.50473,23.530249 + parent: 2 + - uid: 6047 + components: + - type: Transform + pos: 71.420815,23.593185 + parent: 2 + - uid: 6048 + components: + - type: Transform + pos: 71.65159,23.404375 + parent: 2 + - uid: 6049 + components: + - type: Transform + pos: 57.50612,30.521687 + parent: 2 + - uid: 6050 + components: + - type: Transform + pos: -50.5,17.5 + parent: 2 +- proto: CableHVStack10 + entities: + - uid: 6051 + components: + - type: Transform + pos: -36.429504,-29.852598 + parent: 2 + - uid: 6052 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -20.54089,-52.480007 + parent: 2 +- proto: CableMV + entities: + - uid: 6053 + components: + - type: Transform + pos: 2.5,56.5 + parent: 2 + - uid: 6054 + components: + - type: Transform + pos: -20.5,1.5 + parent: 2 + - uid: 6055 + components: + - type: Transform + pos: -22.5,-50.5 + parent: 2 + - uid: 6056 + components: + - type: Transform + pos: -24.5,-50.5 + parent: 2 + - uid: 6057 + components: + - type: Transform + pos: -25.5,-50.5 + parent: 2 + - uid: 6058 + components: + - type: Transform + pos: -26.5,-52.5 + parent: 2 + - uid: 6059 + components: + - type: Transform + pos: -26.5,-54.5 + parent: 2 + - uid: 6060 + components: + - type: Transform + pos: -25.5,-55.5 + parent: 2 + - uid: 6061 + components: + - type: Transform + pos: -23.5,-55.5 + parent: 2 + - uid: 6062 + components: + - type: Transform + pos: -22.5,-54.5 + parent: 2 + - uid: 6063 + components: + - type: Transform + pos: 5.5,31.5 + parent: 2 + - uid: 6064 + components: + - type: Transform + pos: 5.5,32.5 + parent: 2 + - uid: 6065 + components: + - type: Transform + pos: -2.5,-63.5 + parent: 2 + - uid: 6066 + components: + - type: Transform + pos: 9.5,-47.5 + parent: 2 + - uid: 6067 + components: + - type: Transform + pos: 8.5,-47.5 + parent: 2 + - uid: 6068 + components: + - type: Transform + pos: 0.5,-53.5 + parent: 2 + - uid: 6069 + components: + - type: Transform + pos: 0.5,-52.5 + parent: 2 + - uid: 6070 + components: + - type: Transform + pos: 0.5,-51.5 + parent: 2 + - uid: 6071 + components: + - type: Transform + pos: -0.5,-51.5 + parent: 2 + - uid: 6072 + components: + - type: Transform + pos: -1.5,-51.5 + parent: 2 + - uid: 6073 + components: + - type: Transform + pos: -2.5,-51.5 + parent: 2 + - uid: 6074 + components: + - type: Transform + pos: -3.5,-51.5 + parent: 2 + - uid: 6075 + components: + - type: Transform + pos: -4.5,-51.5 + parent: 2 + - uid: 6076 + components: + - type: Transform + pos: -5.5,-51.5 + parent: 2 + - uid: 6077 + components: + - type: Transform + pos: -5.5,-52.5 + parent: 2 + - uid: 6078 + components: + - type: Transform + pos: -5.5,-53.5 + parent: 2 + - uid: 6079 + components: + - type: Transform + pos: -5.5,-54.5 + parent: 2 + - uid: 6080 + components: + - type: Transform + pos: -5.5,-55.5 + parent: 2 + - uid: 6081 + components: + - type: Transform + pos: -5.5,-56.5 + parent: 2 + - uid: 6082 + components: + - type: Transform + pos: -5.5,-57.5 + parent: 2 + - uid: 6083 + components: + - type: Transform + pos: -5.5,-58.5 + parent: 2 + - uid: 6084 + components: + - type: Transform + pos: -5.5,-59.5 + parent: 2 + - uid: 6085 + components: + - type: Transform + pos: -5.5,-60.5 + parent: 2 + - uid: 6086 + components: + - type: Transform + pos: -4.5,-60.5 + parent: 2 + - uid: 6087 + components: + - type: Transform + pos: 10.5,-47.5 + parent: 2 + - uid: 6088 + components: + - type: Transform + pos: -3.5,-60.5 + parent: 2 + - uid: 6089 + components: + - type: Transform + pos: -2.5,-60.5 + parent: 2 + - uid: 6090 + components: + - type: Transform + pos: -1.5,-60.5 + parent: 2 + - uid: 6091 + components: + - type: Transform + pos: -0.5,-60.5 + parent: 2 + - uid: 6092 + components: + - type: Transform + pos: 0.5,-60.5 + parent: 2 + - uid: 6093 + components: + - type: Transform + pos: 0.5,-59.5 + parent: 2 + - uid: 6094 + components: + - type: Transform + pos: 0.5,-58.5 + parent: 2 + - uid: 6095 + components: + - type: Transform + pos: 0.5,-57.5 + parent: 2 + - uid: 6096 + components: + - type: Transform + pos: 1.5,-57.5 + parent: 2 + - uid: 6097 + components: + - type: Transform + pos: 2.5,-57.5 + parent: 2 + - uid: 6098 + components: + - type: Transform + pos: 3.5,-57.5 + parent: 2 + - uid: 6099 + components: + - type: Transform + pos: 3.5,-56.5 + parent: 2 + - uid: 6100 + components: + - type: Transform + pos: 3.5,-55.5 + parent: 2 + - uid: 6101 + components: + - type: Transform + pos: 4.5,-55.5 + parent: 2 + - uid: 6102 + components: + - type: Transform + pos: 5.5,-55.5 + parent: 2 + - uid: 6103 + components: + - type: Transform + pos: 6.5,-55.5 + parent: 2 + - uid: 6104 + components: + - type: Transform + pos: 7.5,-55.5 + parent: 2 + - uid: 6105 + components: + - type: Transform + pos: 7.5,-54.5 + parent: 2 + - uid: 6106 + components: + - type: Transform + pos: 7.5,-53.5 + parent: 2 + - uid: 6107 + components: + - type: Transform + pos: 7.5,-52.5 + parent: 2 + - uid: 6108 + components: + - type: Transform + pos: 6.5,-52.5 + parent: 2 + - uid: 6109 + components: + - type: Transform + pos: 5.5,-52.5 + parent: 2 + - uid: 6110 + components: + - type: Transform + pos: 7.5,-51.5 + parent: 2 + - uid: 6111 + components: + - type: Transform + pos: 7.5,-50.5 + parent: 2 + - uid: 6112 + components: + - type: Transform + pos: 7.5,-49.5 + parent: 2 + - uid: 6113 + components: + - type: Transform + pos: 7.5,-48.5 + parent: 2 + - uid: 6114 + components: + - type: Transform + pos: 7.5,-47.5 + parent: 2 + - uid: 6115 + components: + - type: Transform + pos: 10.5,-48.5 + parent: 2 + - uid: 6116 + components: + - type: Transform + pos: 11.5,-48.5 + parent: 2 + - uid: 6117 + components: + - type: Transform + pos: 12.5,-48.5 + parent: 2 + - uid: 6118 + components: + - type: Transform + pos: 13.5,-48.5 + parent: 2 + - uid: 6119 + components: + - type: Transform + pos: 14.5,-48.5 + parent: 2 + - uid: 6120 + components: + - type: Transform + pos: 15.5,-48.5 + parent: 2 + - uid: 6121 + components: + - type: Transform + pos: 16.5,-48.5 + parent: 2 + - uid: 6122 + components: + - type: Transform + pos: 17.5,-48.5 + parent: 2 + - uid: 6123 + components: + - type: Transform + pos: 18.5,-48.5 + parent: 2 + - uid: 6124 + components: + - type: Transform + pos: 19.5,-48.5 + parent: 2 + - uid: 6125 + components: + - type: Transform + pos: 20.5,-48.5 + parent: 2 + - uid: 6126 + components: + - type: Transform + pos: 21.5,-48.5 + parent: 2 + - uid: 6127 + components: + - type: Transform + pos: 22.5,-48.5 + parent: 2 + - uid: 6128 + components: + - type: Transform + pos: 23.5,-48.5 + parent: 2 + - uid: 6129 + components: + - type: Transform + pos: 24.5,-48.5 + parent: 2 + - uid: 6130 + components: + - type: Transform + pos: 25.5,-48.5 + parent: 2 + - uid: 6131 + components: + - type: Transform + pos: 26.5,-48.5 + parent: 2 + - uid: 6132 + components: + - type: Transform + pos: 27.5,-48.5 + parent: 2 + - uid: 6133 + components: + - type: Transform + pos: 28.5,-48.5 + parent: 2 + - uid: 6134 + components: + - type: Transform + pos: 29.5,-48.5 + parent: 2 + - uid: 6135 + components: + - type: Transform + pos: 30.5,-48.5 + parent: 2 + - uid: 6136 + components: + - type: Transform + pos: 31.5,-48.5 + parent: 2 + - uid: 6137 + components: + - type: Transform + pos: 32.5,-48.5 + parent: 2 + - uid: 6138 + components: + - type: Transform + pos: 32.5,-47.5 + parent: 2 + - uid: 6139 + components: + - type: Transform + pos: 32.5,-46.5 + parent: 2 + - uid: 6140 + components: + - type: Transform + pos: 33.5,-46.5 + parent: 2 + - uid: 6141 + components: + - type: Transform + pos: 14.5,-16.5 + parent: 2 + - uid: 6142 + components: + - type: Transform + pos: 5.5,-31.5 + parent: 2 + - uid: 6143 + components: + - type: Transform + pos: 13.5,-2.5 + parent: 2 + - uid: 6144 + components: + - type: Transform + pos: 13.5,-3.5 + parent: 2 + - uid: 6145 + components: + - type: Transform + pos: 14.5,-3.5 + parent: 2 + - uid: 6146 + components: + - type: Transform + pos: 15.5,-3.5 + parent: 2 + - uid: 6147 + components: + - type: Transform + pos: 16.5,-3.5 + parent: 2 + - uid: 6148 + components: + - type: Transform + pos: 16.5,-4.5 + parent: 2 + - uid: 6149 + components: + - type: Transform + pos: 16.5,-5.5 + parent: 2 + - uid: 6150 + components: + - type: Transform + pos: 16.5,-6.5 + parent: 2 + - uid: 6151 + components: + - type: Transform + pos: 15.5,-6.5 + parent: 2 + - uid: 6152 + components: + - type: Transform + pos: 14.5,-6.5 + parent: 2 + - uid: 6153 + components: + - type: Transform + pos: 13.5,-6.5 + parent: 2 + - uid: 6154 + components: + - type: Transform + pos: 13.5,-7.5 + parent: 2 + - uid: 6155 + components: + - type: Transform + pos: 13.5,-8.5 + parent: 2 + - uid: 6156 + components: + - type: Transform + pos: 13.5,-9.5 + parent: 2 + - uid: 6157 + components: + - type: Transform + pos: 13.5,-10.5 + parent: 2 + - uid: 6158 + components: + - type: Transform + pos: 13.5,-11.5 + parent: 2 + - uid: 6159 + components: + - type: Transform + pos: 13.5,-12.5 + parent: 2 + - uid: 6160 + components: + - type: Transform + pos: 13.5,-13.5 + parent: 2 + - uid: 6161 + components: + - type: Transform + pos: 13.5,-14.5 + parent: 2 + - uid: 6162 + components: + - type: Transform + pos: 13.5,-15.5 + parent: 2 + - uid: 6163 + components: + - type: Transform + pos: 13.5,-16.5 + parent: 2 + - uid: 6164 + components: + - type: Transform + pos: 13.5,-17.5 + parent: 2 + - uid: 6165 + components: + - type: Transform + pos: 13.5,-18.5 + parent: 2 + - uid: 6166 + components: + - type: Transform + pos: 13.5,-19.5 + parent: 2 + - uid: 6167 + components: + - type: Transform + pos: 13.5,-20.5 + parent: 2 + - uid: 6168 + components: + - type: Transform + pos: 13.5,-21.5 + parent: 2 + - uid: 6169 + components: + - type: Transform + pos: 13.5,-22.5 + parent: 2 + - uid: 6170 + components: + - type: Transform + pos: 13.5,-23.5 + parent: 2 + - uid: 6171 + components: + - type: Transform + pos: 14.5,-23.5 + parent: 2 + - uid: 6172 + components: + - type: Transform + pos: 15.5,-23.5 + parent: 2 + - uid: 6173 + components: + - type: Transform + pos: 16.5,-23.5 + parent: 2 + - uid: 6174 + components: + - type: Transform + pos: 16.5,-22.5 + parent: 2 + - uid: 6175 + components: + - type: Transform + pos: 16.5,-21.5 + parent: 2 + - uid: 6176 + components: + - type: Transform + pos: 16.5,-24.5 + parent: 2 + - uid: 6177 + components: + - type: Transform + pos: 17.5,-24.5 + parent: 2 + - uid: 6178 + components: + - type: Transform + pos: 18.5,-24.5 + parent: 2 + - uid: 6179 + components: + - type: Transform + pos: 19.5,-24.5 + parent: 2 + - uid: 6180 + components: + - type: Transform + pos: 20.5,-24.5 + parent: 2 + - uid: 6181 + components: + - type: Transform + pos: 21.5,-24.5 + parent: 2 + - uid: 6182 + components: + - type: Transform + pos: 22.5,-24.5 + parent: 2 + - uid: 6183 + components: + - type: Transform + pos: 23.5,-24.5 + parent: 2 + - uid: 6184 + components: + - type: Transform + pos: 24.5,-24.5 + parent: 2 + - uid: 6185 + components: + - type: Transform + pos: 25.5,-24.5 + parent: 2 + - uid: 6186 + components: + - type: Transform + pos: 25.5,-23.5 + parent: 2 + - uid: 6187 + components: + - type: Transform + pos: 25.5,-22.5 + parent: 2 + - uid: 6188 + components: + - type: Transform + pos: 25.5,-21.5 + parent: 2 + - uid: 6189 + components: + - type: Transform + pos: 24.5,-21.5 + parent: 2 + - uid: 6190 + components: + - type: Transform + pos: 4.5,-31.5 + parent: 2 + - uid: 6191 + components: + - type: Transform + pos: 13.5,-24.5 + parent: 2 + - uid: 6192 + components: + - type: Transform + pos: 6.5,-31.5 + parent: 2 + - uid: 6193 + components: + - type: Transform + pos: 15.5,-16.5 + parent: 2 + - uid: 6194 + components: + - type: Transform + pos: 16.5,-16.5 + parent: 2 + - uid: 6195 + components: + - type: Transform + pos: 16.5,-17.5 + parent: 2 + - uid: 6196 + components: + - type: Transform + pos: 26.5,-24.5 + parent: 2 + - uid: 6197 + components: + - type: Transform + pos: 27.5,-24.5 + parent: 2 + - uid: 6198 + components: + - type: Transform + pos: 28.5,-24.5 + parent: 2 + - uid: 6199 + components: + - type: Transform + pos: 29.5,-24.5 + parent: 2 + - uid: 6200 + components: + - type: Transform + pos: 30.5,-24.5 + parent: 2 + - uid: 6201 + components: + - type: Transform + pos: 31.5,-24.5 + parent: 2 + - uid: 6202 + components: + - type: Transform + pos: 8.5,-31.5 + parent: 2 + - uid: 6203 + components: + - type: Transform + pos: 7.5,-31.5 + parent: 2 + - uid: 6204 + components: + - type: Transform + pos: 9.5,-31.5 + parent: 2 + - uid: 6205 + components: + - type: Transform + pos: 10.5,-31.5 + parent: 2 + - uid: 6206 + components: + - type: Transform + pos: 11.5,-31.5 + parent: 2 + - uid: 6207 + components: + - type: Transform + pos: 12.5,-31.5 + parent: 2 + - uid: 6208 + components: + - type: Transform + pos: 13.5,-31.5 + parent: 2 + - uid: 6209 + components: + - type: Transform + pos: 13.5,-30.5 + parent: 2 + - uid: 6210 + components: + - type: Transform + pos: 13.5,-29.5 + parent: 2 + - uid: 6211 + components: + - type: Transform + pos: 13.5,-28.5 + parent: 2 + - uid: 6212 + components: + - type: Transform + pos: 13.5,-27.5 + parent: 2 + - uid: 6213 + components: + - type: Transform + pos: 13.5,-26.5 + parent: 2 + - uid: 6214 + components: + - type: Transform + pos: 13.5,-25.5 + parent: 2 + - uid: 6215 + components: + - type: Transform + pos: 26.5,-25.5 + parent: 2 + - uid: 6216 + components: + - type: Transform + pos: 26.5,-26.5 + parent: 2 + - uid: 6217 + components: + - type: Transform + pos: 26.5,-27.5 + parent: 2 + - uid: 6218 + components: + - type: Transform + pos: 26.5,-28.5 + parent: 2 + - uid: 6219 + components: + - type: Transform + pos: 26.5,-29.5 + parent: 2 + - uid: 6220 + components: + - type: Transform + pos: 26.5,-30.5 + parent: 2 + - uid: 6221 + components: + - type: Transform + pos: 26.5,-31.5 + parent: 2 + - uid: 6222 + components: + - type: Transform + pos: 26.5,-32.5 + parent: 2 + - uid: 6223 + components: + - type: Transform + pos: 25.5,-32.5 + parent: 2 + - uid: 6224 + components: + - type: Transform + pos: 25.5,-33.5 + parent: 2 + - uid: 6225 + components: + - type: Transform + pos: 32.5,-24.5 + parent: 2 + - uid: 6226 + components: + - type: Transform + pos: 33.5,-24.5 + parent: 2 + - uid: 6227 + components: + - type: Transform + pos: 34.5,-24.5 + parent: 2 + - uid: 6228 + components: + - type: Transform + pos: 35.5,-24.5 + parent: 2 + - uid: 6229 + components: + - type: Transform + pos: 36.5,-24.5 + parent: 2 + - uid: 6230 + components: + - type: Transform + pos: 37.5,-24.5 + parent: 2 + - uid: 6231 + components: + - type: Transform + pos: 38.5,-24.5 + parent: 2 + - uid: 6232 + components: + - type: Transform + pos: 39.5,-24.5 + parent: 2 + - uid: 6233 + components: + - type: Transform + pos: 40.5,-24.5 + parent: 2 + - uid: 6234 + components: + - type: Transform + pos: 40.5,-25.5 + parent: 2 + - uid: 6235 + components: + - type: Transform + pos: 40.5,-26.5 + parent: 2 + - uid: 6236 + components: + - type: Transform + pos: 40.5,-27.5 + parent: 2 + - uid: 6237 + components: + - type: Transform + pos: 40.5,-28.5 + parent: 2 + - uid: 6238 + components: + - type: Transform + pos: 40.5,-29.5 + parent: 2 + - uid: 6239 + components: + - type: Transform + pos: 40.5,-30.5 + parent: 2 + - uid: 6240 + components: + - type: Transform + pos: 40.5,-31.5 + parent: 2 + - uid: 6241 + components: + - type: Transform + pos: 40.5,-32.5 + parent: 2 + - uid: 6242 + components: + - type: Transform + pos: 40.5,-33.5 + parent: 2 + - uid: 6243 + components: + - type: Transform + pos: 40.5,-34.5 + parent: 2 + - uid: 6244 + components: + - type: Transform + pos: 41.5,-34.5 + parent: 2 + - uid: 6245 + components: + - type: Transform + pos: 41.5,-35.5 + parent: 2 + - uid: 6246 + components: + - type: Transform + pos: 4.5,-30.5 + parent: 2 + - uid: 6247 + components: + - type: Transform + pos: 45.5,-20.5 + parent: 2 + - uid: 6248 + components: + - type: Transform + pos: 45.5,-19.5 + parent: 2 + - uid: 6249 + components: + - type: Transform + pos: 12.5,-18.5 + parent: 2 + - uid: 6250 + components: + - type: Transform + pos: 11.5,-18.5 + parent: 2 + - uid: 6251 + components: + - type: Transform + pos: 10.5,-18.5 + parent: 2 + - uid: 6252 + components: + - type: Transform + pos: 9.5,-18.5 + parent: 2 + - uid: 6253 + components: + - type: Transform + pos: 9.5,-17.5 + parent: 2 + - uid: 6254 + components: + - type: Transform + pos: 24.5,-20.5 + parent: 2 + - uid: 6255 + components: + - type: Transform + pos: 24.5,-19.5 + parent: 2 + - uid: 6256 + components: + - type: Transform + pos: 24.5,-18.5 + parent: 2 + - uid: 6257 + components: + - type: Transform + pos: 24.5,-17.5 + parent: 2 + - uid: 6258 + components: + - type: Transform + pos: 23.5,-17.5 + parent: 2 + - uid: 6259 + components: + - type: Transform + pos: 23.5,-16.5 + parent: 2 + - uid: 6260 + components: + - type: Transform + pos: 23.5,-15.5 + parent: 2 + - uid: 6261 + components: + - type: Transform + pos: 23.5,-14.5 + parent: 2 + - uid: 6262 + components: + - type: Transform + pos: 23.5,-13.5 + parent: 2 + - uid: 6263 + components: + - type: Transform + pos: 23.5,-12.5 + parent: 2 + - uid: 6264 + components: + - type: Transform + pos: 23.5,-11.5 + parent: 2 + - uid: 6265 + components: + - type: Transform + pos: 23.5,-10.5 + parent: 2 + - uid: 6266 + components: + - type: Transform + pos: 23.5,-9.5 + parent: 2 + - uid: 6267 + components: + - type: Transform + pos: 23.5,-8.5 + parent: 2 + - uid: 6268 + components: + - type: Transform + pos: 22.5,-8.5 + parent: 2 + - uid: 6269 + components: + - type: Transform + pos: 22.5,-7.5 + parent: 2 + - uid: 6270 + components: + - type: Transform + pos: 22.5,-6.5 + parent: 2 + - uid: 6271 + components: + - type: Transform + pos: 21.5,-6.5 + parent: 2 + - uid: 6272 + components: + - type: Transform + pos: 20.5,-6.5 + parent: 2 + - uid: 6273 + components: + - type: Transform + pos: 19.5,-6.5 + parent: 2 + - uid: 6274 + components: + - type: Transform + pos: 18.5,-6.5 + parent: 2 + - uid: 6275 + components: + - type: Transform + pos: 18.5,-5.5 + parent: 2 + - uid: 6276 + components: + - type: Transform + pos: 18.5,-4.5 + parent: 2 + - uid: 6277 + components: + - type: Transform + pos: 18.5,-3.5 + parent: 2 + - uid: 6278 + components: + - type: Transform + pos: 17.5,-3.5 + parent: 2 + - uid: 6279 + components: + - type: Transform + pos: 13.5,20.5 + parent: 2 + - uid: 6280 + components: + - type: Transform + pos: 3.5,-30.5 + parent: 2 + - uid: 6281 + components: + - type: Transform + pos: -29.5,15.5 + parent: 2 + - uid: 6282 + components: + - type: Transform + pos: -28.5,15.5 + parent: 2 + - uid: 6283 + components: + - type: Transform + pos: -27.5,15.5 + parent: 2 + - uid: 6284 + components: + - type: Transform + pos: -27.5,16.5 + parent: 2 + - uid: 6285 + components: + - type: Transform + pos: -26.5,16.5 + parent: 2 + - uid: 6286 + components: + - type: Transform + pos: -25.5,16.5 + parent: 2 + - uid: 6287 + components: + - type: Transform + pos: -24.5,16.5 + parent: 2 + - uid: 6288 + components: + - type: Transform + pos: -3.5,75.5 + parent: 2 + - uid: 6289 + components: + - type: Transform + pos: -25.5,-8.5 + parent: 2 + - uid: 6290 + components: + - type: Transform + pos: -26.5,-8.5 + parent: 2 + - uid: 6291 + components: + - type: Transform + pos: -20.5,11.5 + parent: 2 + - uid: 6292 + components: + - type: Transform + pos: -20.5,10.5 + parent: 2 + - uid: 6293 + components: + - type: Transform + pos: -20.5,9.5 + parent: 2 + - uid: 6294 + components: + - type: Transform + pos: -20.5,8.5 + parent: 2 + - uid: 6295 + components: + - type: Transform + pos: -20.5,7.5 + parent: 2 + - uid: 6296 + components: + - type: Transform + pos: -21.5,7.5 + parent: 2 + - uid: 6297 + components: + - type: Transform + pos: -22.5,7.5 + parent: 2 + - uid: 6298 + components: + - type: Transform + pos: -23.5,7.5 + parent: 2 + - uid: 6299 + components: + - type: Transform + pos: -24.5,7.5 + parent: 2 + - uid: 6300 + components: + - type: Transform + pos: -25.5,7.5 + parent: 2 + - uid: 6301 + components: + - type: Transform + pos: -25.5,8.5 + parent: 2 + - uid: 6302 + components: + - type: Transform + pos: -21.5,11.5 + parent: 2 + - uid: 6303 + components: + - type: Transform + pos: -22.5,11.5 + parent: 2 + - uid: 6304 + components: + - type: Transform + pos: -23.5,11.5 + parent: 2 + - uid: 6305 + components: + - type: Transform + pos: -24.5,11.5 + parent: 2 + - uid: 6306 + components: + - type: Transform + pos: -24.5,10.5 + parent: 2 + - uid: 6307 + components: + - type: Transform + pos: -20.5,6.5 + parent: 2 + - uid: 6308 + components: + - type: Transform + pos: -20.5,5.5 + parent: 2 + - uid: 6309 + components: + - type: Transform + pos: -20.5,4.5 + parent: 2 + - uid: 6310 + components: + - type: Transform + pos: -20.5,3.5 + parent: 2 + - uid: 6311 + components: + - type: Transform + pos: -20.5,2.5 + parent: 2 + - uid: 6312 + components: + - type: Transform + pos: -20.5,1.5 + parent: 2 + - uid: 6313 + components: + - type: Transform + pos: -21.5,1.5 + parent: 2 + - uid: 6314 + components: + - type: Transform + pos: -22.5,1.5 + parent: 2 + - uid: 6315 + components: + - type: Transform + pos: -23.5,1.5 + parent: 2 + - uid: 6316 + components: + - type: Transform + pos: -24.5,1.5 + parent: 2 + - uid: 6317 + components: + - type: Transform + pos: -25.5,1.5 + parent: 2 + - uid: 6318 + components: + - type: Transform + pos: -26.5,1.5 + parent: 2 + - uid: 6319 + components: + - type: Transform + pos: -27.5,1.5 + parent: 2 + - uid: 6320 + components: + - type: Transform + pos: -28.5,1.5 + parent: 2 + - uid: 6321 + components: + - type: Transform + pos: -29.5,1.5 + parent: 2 + - uid: 6322 + components: + - type: Transform + pos: -30.5,1.5 + parent: 2 + - uid: 6323 + components: + - type: Transform + pos: -31.5,1.5 + parent: 2 + - uid: 6324 + components: + - type: Transform + pos: -32.5,1.5 + parent: 2 + - uid: 6325 + components: + - type: Transform + pos: -33.5,1.5 + parent: 2 + - uid: 6326 + components: + - type: Transform + pos: -33.5,2.5 + parent: 2 + - uid: 6327 + components: + - type: Transform + pos: -33.5,3.5 + parent: 2 + - uid: 6328 + components: + - type: Transform + pos: -33.5,4.5 + parent: 2 + - uid: 6329 + components: + - type: Transform + pos: -33.5,5.5 + parent: 2 + - uid: 6330 + components: + - type: Transform + pos: -33.5,6.5 + parent: 2 + - uid: 6331 + components: + - type: Transform + pos: -33.5,7.5 + parent: 2 + - uid: 6332 + components: + - type: Transform + pos: -34.5,7.5 + parent: 2 + - uid: 6333 + components: + - type: Transform + pos: -35.5,7.5 + parent: 2 + - uid: 6334 + components: + - type: Transform + pos: -36.5,7.5 + parent: 2 + - uid: 6335 + components: + - type: Transform + pos: -37.5,7.5 + parent: 2 + - uid: 6336 + components: + - type: Transform + pos: -38.5,7.5 + parent: 2 + - uid: 6337 + components: + - type: Transform + pos: -39.5,7.5 + parent: 2 + - uid: 6338 + components: + - type: Transform + pos: -40.5,7.5 + parent: 2 + - uid: 6339 + components: + - type: Transform + pos: -40.5,6.5 + parent: 2 + - uid: 6340 + components: + - type: Transform + pos: -40.5,5.5 + parent: 2 + - uid: 6341 + components: + - type: Transform + pos: -38.5,6.5 + parent: 2 + - uid: 6342 + components: + - type: Transform + pos: -38.5,5.5 + parent: 2 + - uid: 6343 + components: + - type: Transform + pos: -38.5,4.5 + parent: 2 + - uid: 6344 + components: + - type: Transform + pos: -38.5,3.5 + parent: 2 + - uid: 6345 + components: + - type: Transform + pos: -38.5,2.5 + parent: 2 + - uid: 6346 + components: + - type: Transform + pos: -38.5,1.5 + parent: 2 + - uid: 6347 + components: + - type: Transform + pos: -38.5,0.5 + parent: 2 + - uid: 6348 + components: + - type: Transform + pos: -38.5,-0.5 + parent: 2 + - uid: 6349 + components: + - type: Transform + pos: -38.5,-1.5 + parent: 2 + - uid: 6350 + components: + - type: Transform + pos: -38.5,-2.5 + parent: 2 + - uid: 6351 + components: + - type: Transform + pos: -38.5,-3.5 + parent: 2 + - uid: 6352 + components: + - type: Transform + pos: -38.5,-4.5 + parent: 2 + - uid: 6353 + components: + - type: Transform + pos: -38.5,-5.5 + parent: 2 + - uid: 6354 + components: + - type: Transform + pos: -38.5,-6.5 + parent: 2 + - uid: 6355 + components: + - type: Transform + pos: -38.5,-7.5 + parent: 2 + - uid: 6356 + components: + - type: Transform + pos: -38.5,-8.5 + parent: 2 + - uid: 6357 + components: + - type: Transform + pos: -39.5,-8.5 + parent: 2 + - uid: 6358 + components: + - type: Transform + pos: -40.5,-8.5 + parent: 2 + - uid: 6359 + components: + - type: Transform + pos: -41.5,-8.5 + parent: 2 + - uid: 6360 + components: + - type: Transform + pos: -42.5,-8.5 + parent: 2 + - uid: 6361 + components: + - type: Transform + pos: -42.5,-7.5 + parent: 2 + - uid: 6362 + components: + - type: Transform + pos: -42.5,-6.5 + parent: 2 + - uid: 6363 + components: + - type: Transform + pos: -21.5,-47.5 + parent: 2 + - uid: 6364 + components: + - type: Transform + pos: -16.5,-15.5 + parent: 2 + - uid: 6365 + components: + - type: Transform + pos: -16.5,-16.5 + parent: 2 + - uid: 6366 + components: + - type: Transform + pos: -15.5,-16.5 + parent: 2 + - uid: 6367 + components: + - type: Transform + pos: -14.5,-16.5 + parent: 2 + - uid: 6368 + components: + - type: Transform + pos: -13.5,-16.5 + parent: 2 + - uid: 6369 + components: + - type: Transform + pos: -12.5,-16.5 + parent: 2 + - uid: 6370 + components: + - type: Transform + pos: -12.5,-15.5 + parent: 2 + - uid: 6371 + components: + - type: Transform + pos: -12.5,-14.5 + parent: 2 + - uid: 6372 + components: + - type: Transform + pos: -12.5,-13.5 + parent: 2 + - uid: 6373 + components: + - type: Transform + pos: -13.5,-13.5 + parent: 2 + - uid: 6374 + components: + - type: Transform + pos: -14.5,-13.5 + parent: 2 + - uid: 6375 + components: + - type: Transform + pos: -15.5,-13.5 + parent: 2 + - uid: 6376 + components: + - type: Transform + pos: -15.5,-12.5 + parent: 2 + - uid: 6377 + components: + - type: Transform + pos: -27.5,-8.5 + parent: 2 + - uid: 6378 + components: + - type: Transform + pos: -23.5,16.5 + parent: 2 + - uid: 6379 + components: + - type: Transform + pos: -24.5,-43.5 + parent: 2 + - uid: 6380 + components: + - type: Transform + pos: -27.5,-43.5 + parent: 2 + - uid: 6381 + components: + - type: Transform + pos: -26.5,-43.5 + parent: 2 + - uid: 6382 + components: + - type: Transform + pos: -29.5,-43.5 + parent: 2 + - uid: 6383 + components: + - type: Transform + pos: -24.5,17.5 + parent: 2 + - uid: 6384 + components: + - type: Transform + pos: -24.5,18.5 + parent: 2 + - uid: 6385 + components: + - type: Transform + pos: -24.5,-18.5 + parent: 2 + - uid: 6386 + components: + - type: Transform + pos: -25.5,-18.5 + parent: 2 + - uid: 6387 + components: + - type: Transform + pos: -24.5,-19.5 + parent: 2 + - uid: 6388 + components: + - type: Transform + pos: -23.5,-19.5 + parent: 2 + - uid: 6389 + components: + - type: Transform + pos: -22.5,-19.5 + parent: 2 + - uid: 6390 + components: + - type: Transform + pos: -22.5,-20.5 + parent: 2 + - uid: 6391 + components: + - type: Transform + pos: -22.5,-21.5 + parent: 2 + - uid: 6392 + components: + - type: Transform + pos: -22.5,-22.5 + parent: 2 + - uid: 6393 + components: + - type: Transform + pos: -22.5,-23.5 + parent: 2 + - uid: 6394 + components: + - type: Transform + pos: -22.5,-24.5 + parent: 2 + - uid: 6395 + components: + - type: Transform + pos: -22.5,-25.5 + parent: 2 + - uid: 6396 + components: + - type: Transform + pos: -22.5,-26.5 + parent: 2 + - uid: 6397 + components: + - type: Transform + pos: -22.5,-27.5 + parent: 2 + - uid: 6398 + components: + - type: Transform + pos: -23.5,-27.5 + parent: 2 + - uid: 6399 + components: + - type: Transform + pos: -24.5,-27.5 + parent: 2 + - uid: 6400 + components: + - type: Transform + pos: -25.5,-27.5 + parent: 2 + - uid: 6401 + components: + - type: Transform + pos: -26.5,-27.5 + parent: 2 + - uid: 6402 + components: + - type: Transform + pos: -27.5,-27.5 + parent: 2 + - uid: 6403 + components: + - type: Transform + pos: -24.5,-28.5 + parent: 2 + - uid: 6404 + components: + - type: Transform + pos: -24.5,-29.5 + parent: 2 + - uid: 6405 + components: + - type: Transform + pos: -24.5,-30.5 + parent: 2 + - uid: 6406 + components: + - type: Transform + pos: -24.5,-31.5 + parent: 2 + - uid: 6407 + components: + - type: Transform + pos: -24.5,-32.5 + parent: 2 + - uid: 6408 + components: + - type: Transform + pos: -24.5,-33.5 + parent: 2 + - uid: 6409 + components: + - type: Transform + pos: -24.5,-34.5 + parent: 2 + - uid: 6410 + components: + - type: Transform + pos: -24.5,-35.5 + parent: 2 + - uid: 6411 + components: + - type: Transform + pos: -24.5,-36.5 + parent: 2 + - uid: 6412 + components: + - type: Transform + pos: -25.5,-36.5 + parent: 2 + - uid: 6413 + components: + - type: Transform + pos: -26.5,-36.5 + parent: 2 + - uid: 6414 + components: + - type: Transform + pos: -25.5,-31.5 + parent: 2 + - uid: 6415 + components: + - type: Transform + pos: -26.5,-31.5 + parent: 2 + - uid: 6416 + components: + - type: Transform + pos: -27.5,-31.5 + parent: 2 + - uid: 6417 + components: + - type: Transform + pos: -28.5,-31.5 + parent: 2 + - uid: 6418 + components: + - type: Transform + pos: -29.5,-31.5 + parent: 2 + - uid: 6419 + components: + - type: Transform + pos: -30.5,-31.5 + parent: 2 + - uid: 6420 + components: + - type: Transform + pos: -31.5,-31.5 + parent: 2 + - uid: 6421 + components: + - type: Transform + pos: -32.5,-31.5 + parent: 2 + - uid: 6422 + components: + - type: Transform + pos: -33.5,-31.5 + parent: 2 + - uid: 6423 + components: + - type: Transform + pos: -33.5,-32.5 + parent: 2 + - uid: 6424 + components: + - type: Transform + pos: -33.5,-33.5 + parent: 2 + - uid: 6425 + components: + - type: Transform + pos: -33.5,-34.5 + parent: 2 + - uid: 6426 + components: + - type: Transform + pos: -33.5,-35.5 + parent: 2 + - uid: 6427 + components: + - type: Transform + pos: -33.5,-36.5 + parent: 2 + - uid: 6428 + components: + - type: Transform + pos: -33.5,-37.5 + parent: 2 + - uid: 6429 + components: + - type: Transform + pos: -34.5,-37.5 + parent: 2 + - uid: 6430 + components: + - type: Transform + pos: -35.5,-37.5 + parent: 2 + - uid: 6431 + components: + - type: Transform + pos: -36.5,-37.5 + parent: 2 + - uid: 6432 + components: + - type: Transform + pos: -37.5,-37.5 + parent: 2 + - uid: 6433 + components: + - type: Transform + pos: -38.5,-37.5 + parent: 2 + - uid: 6434 + components: + - type: Transform + pos: -39.5,-37.5 + parent: 2 + - uid: 6435 + components: + - type: Transform + pos: -40.5,-37.5 + parent: 2 + - uid: 6436 + components: + - type: Transform + pos: -39.5,-26.5 + parent: 2 + - uid: 6437 + components: + - type: Transform + pos: -38.5,-36.5 + parent: 2 + - uid: 6438 + components: + - type: Transform + pos: -38.5,-35.5 + parent: 2 + - uid: 6439 + components: + - type: Transform + pos: -38.5,-34.5 + parent: 2 + - uid: 6440 + components: + - type: Transform + pos: -38.5,-33.5 + parent: 2 + - uid: 6441 + components: + - type: Transform + pos: -38.5,-32.5 + parent: 2 + - uid: 6442 + components: + - type: Transform + pos: -38.5,-31.5 + parent: 2 + - uid: 6443 + components: + - type: Transform + pos: -38.5,-30.5 + parent: 2 + - uid: 6444 + components: + - type: Transform + pos: -38.5,-29.5 + parent: 2 + - uid: 6445 + components: + - type: Transform + pos: -38.5,-28.5 + parent: 2 + - uid: 6446 + components: + - type: Transform + pos: -38.5,-27.5 + parent: 2 + - uid: 6447 + components: + - type: Transform + pos: -38.5,-26.5 + parent: 2 + - uid: 6448 + components: + - type: Transform + pos: -39.5,-25.5 + parent: 2 + - uid: 6449 + components: + - type: Transform + pos: -39.5,-24.5 + parent: 2 + - uid: 6450 + components: + - type: Transform + pos: -33.5,-38.5 + parent: 2 + - uid: 6451 + components: + - type: Transform + pos: -33.5,-39.5 + parent: 2 + - uid: 6452 + components: + - type: Transform + pos: -33.5,-39.5 + parent: 2 + - uid: 6453 + components: + - type: Transform + pos: -33.5,-40.5 + parent: 2 + - uid: 6454 + components: + - type: Transform + pos: -33.5,-41.5 + parent: 2 + - uid: 6455 + components: + - type: Transform + pos: -33.5,-42.5 + parent: 2 + - uid: 6456 + components: + - type: Transform + pos: -33.5,-43.5 + parent: 2 + - uid: 6457 + components: + - type: Transform + pos: -33.5,-44.5 + parent: 2 + - uid: 6458 + components: + - type: Transform + pos: -33.5,-45.5 + parent: 2 + - uid: 6459 + components: + - type: Transform + pos: -33.5,-46.5 + parent: 2 + - uid: 6460 + components: + - type: Transform + pos: -33.5,-47.5 + parent: 2 + - uid: 6461 + components: + - type: Transform + pos: -33.5,-48.5 + parent: 2 + - uid: 6462 + components: + - type: Transform + pos: -33.5,-49.5 + parent: 2 + - uid: 6463 + components: + - type: Transform + pos: -33.5,-49.5 + parent: 2 + - uid: 6464 + components: + - type: Transform + pos: -34.5,-49.5 + parent: 2 + - uid: 6465 + components: + - type: Transform + pos: -35.5,-49.5 + parent: 2 + - uid: 6466 + components: + - type: Transform + pos: -36.5,-49.5 + parent: 2 + - uid: 6467 + components: + - type: Transform + pos: -37.5,-49.5 + parent: 2 + - uid: 6468 + components: + - type: Transform + pos: -38.5,-49.5 + parent: 2 + - uid: 6469 + components: + - type: Transform + pos: -39.5,-49.5 + parent: 2 + - uid: 6470 + components: + - type: Transform + pos: -40.5,-49.5 + parent: 2 + - uid: 6471 + components: + - type: Transform + pos: -21.5,-48.5 + parent: 2 + - uid: 6472 + components: + - type: Transform + pos: -21.5,-49.5 + parent: 2 + - uid: 6473 + components: + - type: Transform + pos: -21.5,-50.5 + parent: 2 + - uid: 6474 + components: + - type: Transform + pos: -23.5,-50.5 + parent: 2 + - uid: 6475 + components: + - type: Transform + pos: -26.5,-50.5 + parent: 2 + - uid: 6476 + components: + - type: Transform + pos: -26.5,-51.5 + parent: 2 + - uid: 6477 + components: + - type: Transform + pos: -26.5,-53.5 + parent: 2 + - uid: 6478 + components: + - type: Transform + pos: -26.5,-55.5 + parent: 2 + - uid: 6479 + components: + - type: Transform + pos: -24.5,-55.5 + parent: 2 + - uid: 6480 + components: + - type: Transform + pos: -22.5,-55.5 + parent: 2 + - uid: 6481 + components: + - type: Transform + pos: -22.5,-43.5 + parent: 2 + - uid: 6482 + components: + - type: Transform + pos: -22.5,-42.5 + parent: 2 + - uid: 6483 + components: + - type: Transform + pos: -29.5,0.5 + parent: 2 + - uid: 6484 + components: + - type: Transform + pos: -29.5,-0.5 + parent: 2 + - uid: 6485 + components: + - type: Transform + pos: -29.5,-1.5 + parent: 2 + - uid: 6486 + components: + - type: Transform + pos: -29.5,-2.5 + parent: 2 + - uid: 6487 + components: + - type: Transform + pos: -29.5,-3.5 + parent: 2 + - uid: 6488 + components: + - type: Transform + pos: -29.5,-4.5 + parent: 2 + - uid: 6489 + components: + - type: Transform + pos: -29.5,-5.5 + parent: 2 + - uid: 6490 + components: + - type: Transform + pos: -28.5,-5.5 + parent: 2 + - uid: 6491 + components: + - type: Transform + pos: -27.5,-5.5 + parent: 2 + - uid: 6492 + components: + - type: Transform + pos: -26.5,-5.5 + parent: 2 + - uid: 6493 + components: + - type: Transform + pos: -25.5,-5.5 + parent: 2 + - uid: 6494 + components: + - type: Transform + pos: -24.5,-5.5 + parent: 2 + - uid: 6495 + components: + - type: Transform + pos: -23.5,-5.5 + parent: 2 + - uid: 6496 + components: + - type: Transform + pos: -21.5,-46.5 + parent: 2 + - uid: 6497 + components: + - type: Transform + pos: -21.5,-45.5 + parent: 2 + - uid: 6498 + components: + - type: Transform + pos: -21.5,-44.5 + parent: 2 + - uid: 6499 + components: + - type: Transform + pos: -21.5,-43.5 + parent: 2 + - uid: 6500 + components: + - type: Transform + pos: -27.5,-52.5 + parent: 2 + - uid: 6501 + components: + - type: Transform + pos: -28.5,-52.5 + parent: 2 + - uid: 6502 + components: + - type: Transform + pos: -28.5,-53.5 + parent: 2 + - uid: 6503 + components: + - type: Transform + pos: -28.5,-54.5 + parent: 2 + - uid: 6504 + components: + - type: Transform + pos: -28.5,-55.5 + parent: 2 + - uid: 6505 + components: + - type: Transform + pos: -28.5,-56.5 + parent: 2 + - uid: 6506 + components: + - type: Transform + pos: -28.5,-57.5 + parent: 2 + - uid: 6507 + components: + - type: Transform + pos: -28.5,-58.5 + parent: 2 + - uid: 6508 + components: + - type: Transform + pos: -21.5,-27.5 + parent: 2 + - uid: 6509 + components: + - type: Transform + pos: -20.5,-27.5 + parent: 2 + - uid: 6510 + components: + - type: Transform + pos: -19.5,-27.5 + parent: 2 + - uid: 6511 + components: + - type: Transform + pos: -18.5,-27.5 + parent: 2 + - uid: 6512 + components: + - type: Transform + pos: -17.5,-27.5 + parent: 2 + - uid: 6513 + components: + - type: Transform + pos: -16.5,-27.5 + parent: 2 + - uid: 6514 + components: + - type: Transform + pos: -16.5,-26.5 + parent: 2 + - uid: 6515 + components: + - type: Transform + pos: -16.5,-25.5 + parent: 2 + - uid: 6516 + components: + - type: Transform + pos: -16.5,-24.5 + parent: 2 + - uid: 6517 + components: + - type: Transform + pos: -16.5,-23.5 + parent: 2 + - uid: 6518 + components: + - type: Transform + pos: -16.5,-22.5 + parent: 2 + - uid: 6519 + components: + - type: Transform + pos: -16.5,-21.5 + parent: 2 + - uid: 6520 + components: + - type: Transform + pos: -16.5,-20.5 + parent: 2 + - uid: 6521 + components: + - type: Transform + pos: -16.5,-19.5 + parent: 2 + - uid: 6522 + components: + - type: Transform + pos: -15.5,-19.5 + parent: 2 + - uid: 6523 + components: + - type: Transform + pos: -15.5,-18.5 + parent: 2 + - uid: 6524 + components: + - type: Transform + pos: -6.5,-58.5 + parent: 2 + - uid: 6525 + components: + - type: Transform + pos: -7.5,-58.5 + parent: 2 + - uid: 6526 + components: + - type: Transform + pos: -8.5,-58.5 + parent: 2 + - uid: 6527 + components: + - type: Transform + pos: -9.5,-58.5 + parent: 2 + - uid: 6528 + components: + - type: Transform + pos: -10.5,-58.5 + parent: 2 + - uid: 6529 + components: + - type: Transform + pos: -11.5,-58.5 + parent: 2 + - uid: 6530 + components: + - type: Transform + pos: -12.5,-58.5 + parent: 2 + - uid: 6531 + components: + - type: Transform + pos: -13.5,-58.5 + parent: 2 + - uid: 6532 + components: + - type: Transform + pos: -14.5,-58.5 + parent: 2 + - uid: 6533 + components: + - type: Transform + pos: -15.5,-58.5 + parent: 2 + - uid: 6534 + components: + - type: Transform + pos: -16.5,-58.5 + parent: 2 + - uid: 6535 + components: + - type: Transform + pos: -17.5,-58.5 + parent: 2 + - uid: 6536 + components: + - type: Transform + pos: -18.5,-58.5 + parent: 2 + - uid: 6537 + components: + - type: Transform + pos: -18.5,-59.5 + parent: 2 + - uid: 6538 + components: + - type: Transform + pos: -18.5,-60.5 + parent: 2 + - uid: 6539 + components: + - type: Transform + pos: -19.5,-60.5 + parent: 2 + - uid: 6540 + components: + - type: Transform + pos: -20.5,-60.5 + parent: 2 + - uid: 6541 + components: + - type: Transform + pos: -21.5,-60.5 + parent: 2 + - uid: 6542 + components: + - type: Transform + pos: 8.5,-52.5 + parent: 2 + - uid: 6543 + components: + - type: Transform + pos: 9.5,-52.5 + parent: 2 + - uid: 6544 + components: + - type: Transform + pos: 10.5,-52.5 + parent: 2 + - uid: 6545 + components: + - type: Transform + pos: 10.5,-51.5 + parent: 2 + - uid: 6546 + components: + - type: Transform + pos: 10.5,-50.5 + parent: 2 + - uid: 6547 + components: + - type: Transform + pos: 9.5,-50.5 + parent: 2 + - uid: 6548 + components: + - type: Transform + pos: -1.5,-29.5 + parent: 2 + - uid: 6549 + components: + - type: Transform + pos: -0.5,-29.5 + parent: 2 + - uid: 6550 + components: + - type: Transform + pos: 0.5,-29.5 + parent: 2 + - uid: 6551 + components: + - type: Transform + pos: -5.5,-50.5 + parent: 2 + - uid: 6552 + components: + - type: Transform + pos: -5.5,-49.5 + parent: 2 + - uid: 6553 + components: + - type: Transform + pos: -5.5,-48.5 + parent: 2 + - uid: 6554 + components: + - type: Transform + pos: -4.5,-48.5 + parent: 2 + - uid: 6555 + components: + - type: Transform + pos: -4.5,-47.5 + parent: 2 + - uid: 6556 + components: + - type: Transform + pos: -4.5,-46.5 + parent: 2 + - uid: 6557 + components: + - type: Transform + pos: -4.5,-45.5 + parent: 2 + - uid: 6558 + components: + - type: Transform + pos: -4.5,-44.5 + parent: 2 + - uid: 6559 + components: + - type: Transform + pos: -4.5,-43.5 + parent: 2 + - uid: 6560 + components: + - type: Transform + pos: -4.5,-42.5 + parent: 2 + - uid: 6561 + components: + - type: Transform + pos: 0.5,-41.5 + parent: 2 + - uid: 6562 + components: + - type: Transform + pos: -3.5,-42.5 + parent: 2 + - uid: 6563 + components: + - type: Transform + pos: -2.5,-42.5 + parent: 2 + - uid: 6564 + components: + - type: Transform + pos: -1.5,-42.5 + parent: 2 + - uid: 6565 + components: + - type: Transform + pos: -0.5,-42.5 + parent: 2 + - uid: 6566 + components: + - type: Transform + pos: 0.5,-40.5 + parent: 2 + - uid: 6567 + components: + - type: Transform + pos: 0.5,-39.5 + parent: 2 + - uid: 6568 + components: + - type: Transform + pos: 0.5,-38.5 + parent: 2 + - uid: 6569 + components: + - type: Transform + pos: 0.5,-37.5 + parent: 2 + - uid: 6570 + components: + - type: Transform + pos: 0.5,-36.5 + parent: 2 + - uid: 6571 + components: + - type: Transform + pos: 0.5,-35.5 + parent: 2 + - uid: 6572 + components: + - type: Transform + pos: 0.5,-34.5 + parent: 2 + - uid: 6573 + components: + - type: Transform + pos: 0.5,-33.5 + parent: 2 + - uid: 6574 + components: + - type: Transform + pos: 0.5,-32.5 + parent: 2 + - uid: 6575 + components: + - type: Transform + pos: 0.5,-31.5 + parent: 2 + - uid: 6576 + components: + - type: Transform + pos: 0.5,-30.5 + parent: 2 + - uid: 6577 + components: + - type: Transform + pos: 0.5,-42.5 + parent: 2 + - uid: 6578 + components: + - type: Transform + pos: 9.5,22.5 + parent: 2 + - uid: 6579 + components: + - type: Transform + pos: 9.5,21.5 + parent: 2 + - uid: 6580 + components: + - type: Transform + pos: 10.5,21.5 + parent: 2 + - uid: 6581 + components: + - type: Transform + pos: 11.5,21.5 + parent: 2 + - uid: 6582 + components: + - type: Transform + pos: 12.5,21.5 + parent: 2 + - uid: 6583 + components: + - type: Transform + pos: 13.5,21.5 + parent: 2 + - uid: 6584 + components: + - type: Transform + pos: 13.5,19.5 + parent: 2 + - uid: 6585 + components: + - type: Transform + pos: 13.5,18.5 + parent: 2 + - uid: 6586 + components: + - type: Transform + pos: 13.5,17.5 + parent: 2 + - uid: 6587 + components: + - type: Transform + pos: 13.5,16.5 + parent: 2 + - uid: 6588 + components: + - type: Transform + pos: 13.5,15.5 + parent: 2 + - uid: 6589 + components: + - type: Transform + pos: 13.5,14.5 + parent: 2 + - uid: 6590 + components: + - type: Transform + pos: 13.5,13.5 + parent: 2 + - uid: 6591 + components: + - type: Transform + pos: 13.5,12.5 + parent: 2 + - uid: 6592 + components: + - type: Transform + pos: 13.5,11.5 + parent: 2 + - uid: 6593 + components: + - type: Transform + pos: 13.5,10.5 + parent: 2 + - uid: 6594 + components: + - type: Transform + pos: 13.5,9.5 + parent: 2 + - uid: 6595 + components: + - type: Transform + pos: 13.5,8.5 + parent: 2 + - uid: 6596 + components: + - type: Transform + pos: 13.5,7.5 + parent: 2 + - uid: 6597 + components: + - type: Transform + pos: 13.5,6.5 + parent: 2 + - uid: 6598 + components: + - type: Transform + pos: 13.5,5.5 + parent: 2 + - uid: 6599 + components: + - type: Transform + pos: 13.5,4.5 + parent: 2 + - uid: 6600 + components: + - type: Transform + pos: 14.5,4.5 + parent: 2 + - uid: 6601 + components: + - type: Transform + pos: 15.5,4.5 + parent: 2 + - uid: 6602 + components: + - type: Transform + pos: 15.5,3.5 + parent: 2 + - uid: 6603 + components: + - type: Transform + pos: 15.5,2.5 + parent: 2 + - uid: 6604 + components: + - type: Transform + pos: 15.5,1.5 + parent: 2 + - uid: 6605 + components: + - type: Transform + pos: 15.5,0.5 + parent: 2 + - uid: 6606 + components: + - type: Transform + pos: 16.5,0.5 + parent: 2 + - uid: 6607 + components: + - type: Transform + pos: 17.5,0.5 + parent: 2 + - uid: 6608 + components: + - type: Transform + pos: 18.5,0.5 + parent: 2 + - uid: 6609 + components: + - type: Transform + pos: 19.5,0.5 + parent: 2 + - uid: 6610 + components: + - type: Transform + pos: 20.5,0.5 + parent: 2 + - uid: 6611 + components: + - type: Transform + pos: 21.5,0.5 + parent: 2 + - uid: 6612 + components: + - type: Transform + pos: 22.5,0.5 + parent: 2 + - uid: 6613 + components: + - type: Transform + pos: 23.5,0.5 + parent: 2 + - uid: 6614 + components: + - type: Transform + pos: 24.5,0.5 + parent: 2 + - uid: 6615 + components: + - type: Transform + pos: 25.5,0.5 + parent: 2 + - uid: 6616 + components: + - type: Transform + pos: 25.5,-0.5 + parent: 2 + - uid: 6617 + components: + - type: Transform + pos: 25.5,-1.5 + parent: 2 + - uid: 6618 + components: + - type: Transform + pos: 14.5,11.5 + parent: 2 + - uid: 6619 + components: + - type: Transform + pos: 15.5,11.5 + parent: 2 + - uid: 6620 + components: + - type: Transform + pos: 16.5,11.5 + parent: 2 + - uid: 6621 + components: + - type: Transform + pos: 17.5,11.5 + parent: 2 + - uid: 6622 + components: + - type: Transform + pos: 17.5,10.5 + parent: 2 + - uid: 6623 + components: + - type: Transform + pos: 17.5,9.5 + parent: 2 + - uid: 6624 + components: + - type: Transform + pos: 17.5,8.5 + parent: 2 + - uid: 6625 + components: + - type: Transform + pos: 17.5,7.5 + parent: 2 + - uid: 6626 + components: + - type: Transform + pos: 17.5,6.5 + parent: 2 + - uid: 6627 + components: + - type: Transform + pos: 17.5,5.5 + parent: 2 + - uid: 6628 + components: + - type: Transform + pos: 44.5,5.5 + parent: 2 + - uid: 6629 + components: + - type: Transform + pos: 43.5,5.5 + parent: 2 + - uid: 6630 + components: + - type: Transform + pos: 42.5,5.5 + parent: 2 + - uid: 6631 + components: + - type: Transform + pos: 41.5,5.5 + parent: 2 + - uid: 6632 + components: + - type: Transform + pos: 40.5,5.5 + parent: 2 + - uid: 6633 + components: + - type: Transform + pos: 40.5,6.5 + parent: 2 + - uid: 6634 + components: + - type: Transform + pos: 39.5,6.5 + parent: 2 + - uid: 6635 + components: + - type: Transform + pos: 38.5,6.5 + parent: 2 + - uid: 6636 + components: + - type: Transform + pos: 37.5,6.5 + parent: 2 + - uid: 6637 + components: + - type: Transform + pos: 37.5,7.5 + parent: 2 + - uid: 6638 + components: + - type: Transform + pos: 36.5,7.5 + parent: 2 + - uid: 6639 + components: + - type: Transform + pos: 35.5,7.5 + parent: 2 + - uid: 6640 + components: + - type: Transform + pos: 34.5,7.5 + parent: 2 + - uid: 6641 + components: + - type: Transform + pos: 33.5,7.5 + parent: 2 + - uid: 6642 + components: + - type: Transform + pos: 32.5,7.5 + parent: 2 + - uid: 6643 + components: + - type: Transform + pos: 31.5,7.5 + parent: 2 + - uid: 6644 + components: + - type: Transform + pos: 30.5,7.5 + parent: 2 + - uid: 6645 + components: + - type: Transform + pos: 29.5,7.5 + parent: 2 + - uid: 6646 + components: + - type: Transform + pos: 28.5,7.5 + parent: 2 + - uid: 6647 + components: + - type: Transform + pos: 27.5,7.5 + parent: 2 + - uid: 6648 + components: + - type: Transform + pos: 26.5,7.5 + parent: 2 + - uid: 6649 + components: + - type: Transform + pos: 25.5,7.5 + parent: 2 + - uid: 6650 + components: + - type: Transform + pos: 24.5,7.5 + parent: 2 + - uid: 6651 + components: + - type: Transform + pos: 23.5,7.5 + parent: 2 + - uid: 6652 + components: + - type: Transform + pos: 22.5,7.5 + parent: 2 + - uid: 6653 + components: + - type: Transform + pos: 21.5,7.5 + parent: 2 + - uid: 6654 + components: + - type: Transform + pos: 20.5,7.5 + parent: 2 + - uid: 6655 + components: + - type: Transform + pos: 19.5,7.5 + parent: 2 + - uid: 6656 + components: + - type: Transform + pos: 18.5,7.5 + parent: 2 + - uid: 6657 + components: + - type: Transform + pos: 27.5,23.5 + parent: 2 + - uid: 6658 + components: + - type: Transform + pos: 13.5,25.5 + parent: 2 + - uid: 6659 + components: + - type: Transform + pos: 28.5,23.5 + parent: 2 + - uid: 6660 + components: + - type: Transform + pos: 29.5,23.5 + parent: 2 + - uid: 6661 + components: + - type: Transform + pos: 29.5,24.5 + parent: 2 + - uid: 6662 + components: + - type: Transform + pos: 29.5,25.5 + parent: 2 + - uid: 6663 + components: + - type: Transform + pos: 29.5,26.5 + parent: 2 + - uid: 6664 + components: + - type: Transform + pos: 28.5,26.5 + parent: 2 + - uid: 6665 + components: + - type: Transform + pos: 27.5,26.5 + parent: 2 + - uid: 6666 + components: + - type: Transform + pos: 26.5,26.5 + parent: 2 + - uid: 6667 + components: + - type: Transform + pos: 25.5,26.5 + parent: 2 + - uid: 6668 + components: + - type: Transform + pos: 24.5,26.5 + parent: 2 + - uid: 6669 + components: + - type: Transform + pos: 23.5,26.5 + parent: 2 + - uid: 6670 + components: + - type: Transform + pos: 22.5,26.5 + parent: 2 + - uid: 6671 + components: + - type: Transform + pos: 21.5,26.5 + parent: 2 + - uid: 6672 + components: + - type: Transform + pos: 20.5,26.5 + parent: 2 + - uid: 6673 + components: + - type: Transform + pos: 19.5,26.5 + parent: 2 + - uid: 6674 + components: + - type: Transform + pos: 18.5,26.5 + parent: 2 + - uid: 6675 + components: + - type: Transform + pos: 17.5,26.5 + parent: 2 + - uid: 6676 + components: + - type: Transform + pos: 16.5,26.5 + parent: 2 + - uid: 6677 + components: + - type: Transform + pos: 15.5,26.5 + parent: 2 + - uid: 6678 + components: + - type: Transform + pos: 14.5,26.5 + parent: 2 + - uid: 6679 + components: + - type: Transform + pos: 13.5,26.5 + parent: 2 + - uid: 6680 + components: + - type: Transform + pos: 13.5,24.5 + parent: 2 + - uid: 6681 + components: + - type: Transform + pos: 13.5,23.5 + parent: 2 + - uid: 6682 + components: + - type: Transform + pos: 13.5,22.5 + parent: 2 + - uid: 6683 + components: + - type: Transform + pos: 29.5,8.5 + parent: 2 + - uid: 6684 + components: + - type: Transform + pos: 29.5,9.5 + parent: 2 + - uid: 6685 + components: + - type: Transform + pos: 29.5,10.5 + parent: 2 + - uid: 6686 + components: + - type: Transform + pos: 29.5,11.5 + parent: 2 + - uid: 6687 + components: + - type: Transform + pos: 29.5,12.5 + parent: 2 + - uid: 6688 + components: + - type: Transform + pos: 29.5,13.5 + parent: 2 + - uid: 6689 + components: + - type: Transform + pos: 29.5,14.5 + parent: 2 + - uid: 6690 + components: + - type: Transform + pos: 29.5,15.5 + parent: 2 + - uid: 6691 + components: + - type: Transform + pos: 29.5,16.5 + parent: 2 + - uid: 6692 + components: + - type: Transform + pos: 30.5,16.5 + parent: 2 + - uid: 6693 + components: + - type: Transform + pos: 31.5,16.5 + parent: 2 + - uid: 6694 + components: + - type: Transform + pos: 32.5,16.5 + parent: 2 + - uid: 6695 + components: + - type: Transform + pos: 33.5,16.5 + parent: 2 + - uid: 6696 + components: + - type: Transform + pos: 29.5,21.5 + parent: 2 + - uid: 6697 + components: + - type: Transform + pos: 34.5,16.5 + parent: 2 + - uid: 6698 + components: + - type: Transform + pos: 35.5,16.5 + parent: 2 + - uid: 6699 + components: + - type: Transform + pos: 36.5,16.5 + parent: 2 + - uid: 6700 + components: + - type: Transform + pos: 36.5,15.5 + parent: 2 + - uid: 6701 + components: + - type: Transform + pos: 36.5,14.5 + parent: 2 + - uid: 6702 + components: + - type: Transform + pos: 36.5,13.5 + parent: 2 + - uid: 6703 + components: + - type: Transform + pos: 36.5,12.5 + parent: 2 + - uid: 6704 + components: + - type: Transform + pos: -24.5,19.5 + parent: 2 + - uid: 6705 + components: + - type: Transform + pos: -24.5,20.5 + parent: 2 + - uid: 6706 + components: + - type: Transform + pos: -25.5,20.5 + parent: 2 + - uid: 6707 + components: + - type: Transform + pos: -26.5,20.5 + parent: 2 + - uid: 6708 + components: + - type: Transform + pos: -27.5,20.5 + parent: 2 + - uid: 6709 + components: + - type: Transform + pos: -23.5,-43.5 + parent: 2 + - uid: 6710 + components: + - type: Transform + pos: -25.5,-43.5 + parent: 2 + - uid: 6711 + components: + - type: Transform + pos: -28.5,-43.5 + parent: 2 + - uid: 6712 + components: + - type: Transform + pos: -27.5,-6.5 + parent: 2 + - uid: 6713 + components: + - type: Transform + pos: -27.5,-7.5 + parent: 2 + - uid: 6714 + components: + - type: Transform + pos: -33.5,-60.5 + parent: 2 + - uid: 6715 + components: + - type: Transform + pos: -32.5,-60.5 + parent: 2 + - uid: 6716 + components: + - type: Transform + pos: -31.5,-60.5 + parent: 2 + - uid: 6717 + components: + - type: Transform + pos: -31.5,-59.5 + parent: 2 + - uid: 6718 + components: + - type: Transform + pos: 12.5,8.5 + parent: 2 + - uid: 6719 + components: + - type: Transform + pos: 11.5,8.5 + parent: 2 + - uid: 6720 + components: + - type: Transform + pos: 10.5,8.5 + parent: 2 + - uid: 6721 + components: + - type: Transform + pos: 9.5,8.5 + parent: 2 + - uid: 6722 + components: + - type: Transform + pos: 8.5,8.5 + parent: 2 + - uid: 6723 + components: + - type: Transform + pos: 7.5,8.5 + parent: 2 + - uid: 6724 + components: + - type: Transform + pos: 6.5,8.5 + parent: 2 + - uid: 6725 + components: + - type: Transform + pos: 6.5,9.5 + parent: 2 + - uid: 6726 + components: + - type: Transform + pos: 6.5,10.5 + parent: 2 + - uid: 6727 + components: + - type: Transform + pos: 6.5,11.5 + parent: 2 + - uid: 6728 + components: + - type: Transform + pos: 9.5,7.5 + parent: 2 + - uid: 6729 + components: + - type: Transform + pos: 9.5,6.5 + parent: 2 + - uid: 6730 + components: + - type: Transform + pos: 9.5,5.5 + parent: 2 + - uid: 6731 + components: + - type: Transform + pos: 9.5,4.5 + parent: 2 + - uid: 6732 + components: + - type: Transform + pos: 10.5,4.5 + parent: 2 + - uid: 6733 + components: + - type: Transform + pos: 10.5,3.5 + parent: 2 + - uid: 6734 + components: + - type: Transform + pos: 10.5,2.5 + parent: 2 + - uid: 6735 + components: + - type: Transform + pos: 10.5,1.5 + parent: 2 + - uid: 6736 + components: + - type: Transform + pos: 10.5,0.5 + parent: 2 + - uid: 6737 + components: + - type: Transform + pos: 10.5,-0.5 + parent: 2 + - uid: 6738 + components: + - type: Transform + pos: 10.5,-1.5 + parent: 2 + - uid: 6739 + components: + - type: Transform + pos: 10.5,-2.5 + parent: 2 + - uid: 6740 + components: + - type: Transform + pos: 9.5,-2.5 + parent: 2 + - uid: 6741 + components: + - type: Transform + pos: 9.5,-3.5 + parent: 2 + - uid: 6742 + components: + - type: Transform + pos: 8.5,-3.5 + parent: 2 + - uid: 6743 + components: + - type: Transform + pos: 8.5,-4.5 + parent: 2 + - uid: 6744 + components: + - type: Transform + pos: 8.5,-5.5 + parent: 2 + - uid: 6745 + components: + - type: Transform + pos: 7.5,-5.5 + parent: 2 + - uid: 6746 + components: + - type: Transform + pos: 7.5,-6.5 + parent: 2 + - uid: 6747 + components: + - type: Transform + pos: 6.5,-6.5 + parent: 2 + - uid: 6748 + components: + - type: Transform + pos: 5.5,-6.5 + parent: 2 + - uid: 6749 + components: + - type: Transform + pos: 5.5,-7.5 + parent: 2 + - uid: 6750 + components: + - type: Transform + pos: 4.5,-7.5 + parent: 2 + - uid: 6751 + components: + - type: Transform + pos: 4.5,-8.5 + parent: 2 + - uid: 6752 + components: + - type: Transform + pos: 4.5,-9.5 + parent: 2 + - uid: 6753 + components: + - type: Transform + pos: 4.5,-10.5 + parent: 2 + - uid: 6754 + components: + - type: Transform + pos: -13.5,-27.5 + parent: 2 + - uid: 6755 + components: + - type: Transform + pos: -15.5,-27.5 + parent: 2 + - uid: 6756 + components: + - type: Transform + pos: -14.5,-27.5 + parent: 2 + - uid: 6757 + components: + - type: Transform + pos: -12.5,-27.5 + parent: 2 + - uid: 6758 + components: + - type: Transform + pos: -11.5,-27.5 + parent: 2 + - uid: 6759 + components: + - type: Transform + pos: -10.5,-27.5 + parent: 2 + - uid: 6760 + components: + - type: Transform + pos: -9.5,-27.5 + parent: 2 + - uid: 6761 + components: + - type: Transform + pos: -8.5,-27.5 + parent: 2 + - uid: 6762 + components: + - type: Transform + pos: -7.5,-27.5 + parent: 2 + - uid: 6763 + components: + - type: Transform + pos: -7.5,-27.5 + parent: 2 + - uid: 6764 + components: + - type: Transform + pos: -7.5,-28.5 + parent: 2 + - uid: 6765 + components: + - type: Transform + pos: -7.5,-29.5 + parent: 2 + - uid: 6766 + components: + - type: Transform + pos: -7.5,-30.5 + parent: 2 + - uid: 6767 + components: + - type: Transform + pos: -7.5,-31.5 + parent: 2 + - uid: 6768 + components: + - type: Transform + pos: -7.5,-32.5 + parent: 2 + - uid: 6769 + components: + - type: Transform + pos: -7.5,-33.5 + parent: 2 + - uid: 6770 + components: + - type: Transform + pos: -7.5,-34.5 + parent: 2 + - uid: 6771 + components: + - type: Transform + pos: -7.5,-35.5 + parent: 2 + - uid: 6772 + components: + - type: Transform + pos: -8.5,-35.5 + parent: 2 + - uid: 6773 + components: + - type: Transform + pos: -9.5,-35.5 + parent: 2 + - uid: 6774 + components: + - type: Transform + pos: -9.5,-34.5 + parent: 2 + - uid: 6775 + components: + - type: Transform + pos: -9.5,-34.5 + parent: 2 + - uid: 6776 + components: + - type: Transform + pos: -0.5,-36.5 + parent: 2 + - uid: 6777 + components: + - type: Transform + pos: 3.5,52.5 + parent: 2 + - uid: 6778 + components: + - type: Transform + pos: -1.5,-36.5 + parent: 2 + - uid: 6779 + components: + - type: Transform + pos: -2.5,-36.5 + parent: 2 + - uid: 6780 + components: + - type: Transform + pos: -3.5,-36.5 + parent: 2 + - uid: 6781 + components: + - type: Transform + pos: -3.5,-37.5 + parent: 2 + - uid: 6782 + components: + - type: Transform + pos: -3.5,-38.5 + parent: 2 + - uid: 6783 + components: + - type: Transform + pos: -4.5,-38.5 + parent: 2 + - uid: 6784 + components: + - type: Transform + pos: -3.5,-61.5 + parent: 2 + - uid: 6785 + components: + - type: Transform + pos: -3.5,-62.5 + parent: 2 + - uid: 6786 + components: + - type: Transform + pos: -3.5,-63.5 + parent: 2 + - uid: 6787 + components: + - type: Transform + pos: -1.5,-63.5 + parent: 2 + - uid: 6788 + components: + - type: Transform + pos: -0.5,-63.5 + parent: 2 + - uid: 6789 + components: + - type: Transform + pos: 0.5,-63.5 + parent: 2 + - uid: 6790 + components: + - type: Transform + pos: 1.5,-63.5 + parent: 2 + - uid: 6791 + components: + - type: Transform + pos: 2.5,-63.5 + parent: 2 + - uid: 6792 + components: + - type: Transform + pos: 3.5,-63.5 + parent: 2 + - uid: 6793 + components: + - type: Transform + pos: 4.5,-63.5 + parent: 2 + - uid: 6794 + components: + - type: Transform + pos: 5.5,-63.5 + parent: 2 + - uid: 6795 + components: + - type: Transform + pos: 6.5,-63.5 + parent: 2 + - uid: 6796 + components: + - type: Transform + pos: 7.5,-63.5 + parent: 2 + - uid: 6797 + components: + - type: Transform + pos: 8.5,-63.5 + parent: 2 + - uid: 6798 + components: + - type: Transform + pos: 8.5,-62.5 + parent: 2 + - uid: 6799 + components: + - type: Transform + pos: 9.5,-62.5 + parent: 2 + - uid: 6800 + components: + - type: Transform + pos: -2.5,48.5 + parent: 2 + - uid: 6801 + components: + - type: Transform + pos: -3.5,48.5 + parent: 2 + - uid: 6802 + components: + - type: Transform + pos: -2.5,49.5 + parent: 2 + - uid: 6803 + components: + - type: Transform + pos: -3.5,47.5 + parent: 2 + - uid: 6804 + components: + - type: Transform + pos: -3.5,46.5 + parent: 2 + - uid: 6805 + components: + - type: Transform + pos: -3.5,45.5 + parent: 2 + - uid: 6806 + components: + - type: Transform + pos: -3.5,44.5 + parent: 2 + - uid: 6807 + components: + - type: Transform + pos: -3.5,43.5 + parent: 2 + - uid: 6808 + components: + - type: Transform + pos: -3.5,42.5 + parent: 2 + - uid: 6809 + components: + - type: Transform + pos: -4.5,42.5 + parent: 2 + - uid: 6810 + components: + - type: Transform + pos: -5.5,42.5 + parent: 2 + - uid: 6811 + components: + - type: Transform + pos: -6.5,42.5 + parent: 2 + - uid: 6812 + components: + - type: Transform + pos: -6.5,43.5 + parent: 2 + - uid: 6813 + components: + - type: Transform + pos: -6.5,44.5 + parent: 2 + - uid: 6814 + components: + - type: Transform + pos: -7.5,44.5 + parent: 2 + - uid: 6815 + components: + - type: Transform + pos: -1.5,42.5 + parent: 2 + - uid: 6816 + components: + - type: Transform + pos: -0.5,42.5 + parent: 2 + - uid: 6817 + components: + - type: Transform + pos: 0.5,42.5 + parent: 2 + - uid: 6818 + components: + - type: Transform + pos: 1.5,42.5 + parent: 2 + - uid: 6819 + components: + - type: Transform + pos: 1.5,43.5 + parent: 2 + - uid: 6820 + components: + - type: Transform + pos: 1.5,44.5 + parent: 2 + - uid: 6821 + components: + - type: Transform + pos: 1.5,45.5 + parent: 2 + - uid: 6822 + components: + - type: Transform + pos: 1.5,46.5 + parent: 2 + - uid: 6823 + components: + - type: Transform + pos: 1.5,47.5 + parent: 2 + - uid: 6824 + components: + - type: Transform + pos: 1.5,48.5 + parent: 2 + - uid: 6825 + components: + - type: Transform + pos: 1.5,49.5 + parent: 2 + - uid: 6826 + components: + - type: Transform + pos: 1.5,50.5 + parent: 2 + - uid: 6827 + components: + - type: Transform + pos: 1.5,51.5 + parent: 2 + - uid: 6828 + components: + - type: Transform + pos: 1.5,52.5 + parent: 2 + - uid: 6829 + components: + - type: Transform + pos: 2.5,52.5 + parent: 2 + - uid: 6830 + components: + - type: Transform + pos: 5.5,52.5 + parent: 2 + - uid: 6831 + components: + - type: Transform + pos: 4.5,52.5 + parent: 2 + - uid: 6832 + components: + - type: Transform + pos: 6.5,53.5 + parent: 2 + - uid: 6833 + components: + - type: Transform + pos: 6.5,52.5 + parent: 2 + - uid: 6834 + components: + - type: Transform + pos: 6.5,53.5 + parent: 2 + - uid: 6835 + components: + - type: Transform + pos: 6.5,54.5 + parent: 2 + - uid: 6836 + components: + - type: Transform + pos: 6.5,55.5 + parent: 2 + - uid: 6837 + components: + - type: Transform + pos: 7.5,55.5 + parent: 2 + - uid: 6838 + components: + - type: Transform + pos: 8.5,55.5 + parent: 2 + - uid: 6839 + components: + - type: Transform + pos: 9.5,55.5 + parent: 2 + - uid: 6840 + components: + - type: Transform + pos: 9.5,56.5 + parent: 2 + - uid: 6841 + components: + - type: Transform + pos: 9.5,57.5 + parent: 2 + - uid: 6842 + components: + - type: Transform + pos: 6.5,54.5 + parent: 2 + - uid: 6843 + components: + - type: Transform + pos: 6.5,55.5 + parent: 2 + - uid: 6844 + components: + - type: Transform + pos: 7.5,55.5 + parent: 2 + - uid: 6845 + components: + - type: Transform + pos: 8.5,55.5 + parent: 2 + - uid: 6846 + components: + - type: Transform + pos: 9.5,55.5 + parent: 2 + - uid: 6847 + components: + - type: Transform + pos: 9.5,56.5 + parent: 2 + - uid: 6848 + components: + - type: Transform + pos: 9.5,57.5 + parent: 2 + - uid: 6849 + components: + - type: Transform + pos: 7.5,52.5 + parent: 2 + - uid: 6850 + components: + - type: Transform + pos: 8.5,52.5 + parent: 2 + - uid: 6851 + components: + - type: Transform + pos: 8.5,51.5 + parent: 2 + - uid: 6852 + components: + - type: Transform + pos: 9.5,51.5 + parent: 2 + - uid: 6853 + components: + - type: Transform + pos: -6.5,44.5 + parent: 2 + - uid: 6854 + components: + - type: Transform + pos: 2.5,53.5 + parent: 2 + - uid: 6855 + components: + - type: Transform + pos: -10.5,50.5 + parent: 2 + - uid: 6856 + components: + - type: Transform + pos: -10.5,51.5 + parent: 2 + - uid: 6857 + components: + - type: Transform + pos: -9.5,51.5 + parent: 2 + - uid: 6858 + components: + - type: Transform + pos: 3.5,26.5 + parent: 2 + - uid: 6859 + components: + - type: Transform + pos: -1.5,41.5 + parent: 2 + - uid: 6860 + components: + - type: Transform + pos: 1.5,42.5 + parent: 2 + - uid: 6861 + components: + - type: Transform + pos: 5.5,30.5 + parent: 2 + - uid: 6862 + components: + - type: Transform + pos: 6.5,29.5 + parent: 2 + - uid: 6863 + components: + - type: Transform + pos: 6.5,30.5 + parent: 2 + - uid: 6864 + components: + - type: Transform + pos: 7.5,29.5 + parent: 2 + - uid: 6865 + components: + - type: Transform + pos: 8.5,29.5 + parent: 2 + - uid: 6866 + components: + - type: Transform + pos: 9.5,29.5 + parent: 2 + - uid: 6867 + components: + - type: Transform + pos: 5.5,30.5 + parent: 2 + - uid: 6868 + components: + - type: Transform + pos: 8.5,35.5 + parent: 2 + - uid: 6869 + components: + - type: Transform + pos: 7.5,35.5 + parent: 2 + - uid: 6870 + components: + - type: Transform + pos: 7.5,35.5 + parent: 2 + - uid: 6871 + components: + - type: Transform + pos: 7.5,36.5 + parent: 2 + - uid: 6872 + components: + - type: Transform + pos: 7.5,37.5 + parent: 2 + - uid: 6873 + components: + - type: Transform + pos: 6.5,37.5 + parent: 2 + - uid: 6874 + components: + - type: Transform + pos: 6.5,38.5 + parent: 2 + - uid: 6875 + components: + - type: Transform + pos: 6.5,39.5 + parent: 2 + - uid: 6876 + components: + - type: Transform + pos: 6.5,40.5 + parent: 2 + - uid: 6877 + components: + - type: Transform + pos: 6.5,41.5 + parent: 2 + - uid: 6878 + components: + - type: Transform + pos: 6.5,42.5 + parent: 2 + - uid: 6879 + components: + - type: Transform + pos: 6.5,43.5 + parent: 2 + - uid: 6880 + components: + - type: Transform + pos: 7.5,43.5 + parent: 2 + - uid: 6881 + components: + - type: Transform + pos: 8.5,43.5 + parent: 2 + - uid: 6882 + components: + - type: Transform + pos: 9.5,43.5 + parent: 2 + - uid: 6883 + components: + - type: Transform + pos: -33.5,15.5 + parent: 2 + - uid: 6884 + components: + - type: Transform + pos: -33.5,9.5 + parent: 2 + - uid: 6885 + components: + - type: Transform + pos: -33.5,8.5 + parent: 2 + - uid: 6886 + components: + - type: Transform + pos: -33.5,10.5 + parent: 2 + - uid: 6887 + components: + - type: Transform + pos: -33.5,11.5 + parent: 2 + - uid: 6888 + components: + - type: Transform + pos: -33.5,12.5 + parent: 2 + - uid: 6889 + components: + - type: Transform + pos: -33.5,13.5 + parent: 2 + - uid: 6890 + components: + - type: Transform + pos: -33.5,14.5 + parent: 2 + - uid: 6891 + components: + - type: Transform + pos: -34.5,15.5 + parent: 2 + - uid: 6892 + components: + - type: Transform + pos: -35.5,15.5 + parent: 2 + - uid: 6893 + components: + - type: Transform + pos: -24.5,-8.5 + parent: 2 + - uid: 6894 + components: + - type: Transform + pos: -30.5,15.5 + parent: 2 + - uid: 6895 + components: + - type: Transform + pos: -36.5,15.5 + parent: 2 + - uid: 6896 + components: + - type: Transform + pos: -40.5,9.5 + parent: 2 + - uid: 6897 + components: + - type: Transform + pos: -40.5,10.5 + parent: 2 + - uid: 6898 + components: + - type: Transform + pos: -40.5,8.5 + parent: 2 + - uid: 6899 + components: + - type: Transform + pos: -40.5,7.5 + parent: 2 + - uid: 6900 + components: + - type: Transform + pos: -40.5,11.5 + parent: 2 + - uid: 6901 + components: + - type: Transform + pos: -40.5,12.5 + parent: 2 + - uid: 6902 + components: + - type: Transform + pos: -40.5,13.5 + parent: 2 + - uid: 6903 + components: + - type: Transform + pos: -40.5,14.5 + parent: 2 + - uid: 6904 + components: + - type: Transform + pos: -40.5,13.5 + parent: 2 + - uid: 6905 + components: + - type: Transform + pos: -41.5,14.5 + parent: 2 + - uid: 6906 + components: + - type: Transform + pos: -42.5,14.5 + parent: 2 + - uid: 6907 + components: + - type: Transform + pos: -42.5,15.5 + parent: 2 + - uid: 6908 + components: + - type: Transform + pos: -42.5,16.5 + parent: 2 + - uid: 6909 + components: + - type: Transform + pos: -42.5,17.5 + parent: 2 + - uid: 6910 + components: + - type: Transform + pos: -43.5,17.5 + parent: 2 + - uid: 6911 + components: + - type: Transform + pos: -43.5,18.5 + parent: 2 + - uid: 6912 + components: + - type: Transform + pos: -3.5,76.5 + parent: 2 + - uid: 6913 + components: + - type: Transform + pos: -3.5,76.5 + parent: 2 + - uid: 6914 + components: + - type: Transform + pos: -3.5,75.5 + parent: 2 + - uid: 6915 + components: + - type: Transform + pos: -3.5,74.5 + parent: 2 + - uid: 6916 + components: + - type: Transform + pos: -3.5,73.5 + parent: 2 + - uid: 6917 + components: + - type: Transform + pos: -26.5,29.5 + parent: 2 + - uid: 6918 + components: + - type: Transform + pos: -23.5,-8.5 + parent: 2 + - uid: 6919 + components: + - type: Transform + pos: -22.5,-8.5 + parent: 2 + - uid: 6920 + components: + - type: Transform + pos: -21.5,-8.5 + parent: 2 + - uid: 6921 + components: + - type: Transform + pos: -20.5,-8.5 + parent: 2 + - uid: 6922 + components: + - type: Transform + pos: -19.5,-8.5 + parent: 2 + - uid: 6923 + components: + - type: Transform + pos: -18.5,-8.5 + parent: 2 + - uid: 6924 + components: + - type: Transform + pos: -17.5,-8.5 + parent: 2 + - uid: 6925 + components: + - type: Transform + pos: -16.5,-8.5 + parent: 2 + - uid: 6926 + components: + - type: Transform + pos: -15.5,-8.5 + parent: 2 + - uid: 6927 + components: + - type: Transform + pos: -15.5,-9.5 + parent: 2 + - uid: 6928 + components: + - type: Transform + pos: -15.5,-10.5 + parent: 2 + - uid: 6929 + components: + - type: Transform + pos: -15.5,-11.5 + parent: 2 + - uid: 6930 + components: + - type: Transform + pos: -30.5,-43.5 + parent: 2 + - uid: 6931 + components: + - type: Transform + pos: -31.5,-43.5 + parent: 2 + - uid: 6932 + components: + - type: Transform + pos: -32.5,-43.5 + parent: 2 + - uid: 6933 + components: + - type: Transform + pos: -24.5,18.5 + parent: 2 + - uid: 6934 + components: + - type: Transform + pos: -25.5,18.5 + parent: 2 + - uid: 6935 + components: + - type: Transform + pos: -26.5,18.5 + parent: 2 + - uid: 6936 + components: + - type: Transform + pos: -27.5,20.5 + parent: 2 + - uid: 6937 + components: + - type: Transform + pos: -27.5,21.5 + parent: 2 + - uid: 6938 + components: + - type: Transform + pos: -27.5,22.5 + parent: 2 + - uid: 6939 + components: + - type: Transform + pos: -27.5,23.5 + parent: 2 + - uid: 6940 + components: + - type: Transform + pos: -27.5,24.5 + parent: 2 + - uid: 6941 + components: + - type: Transform + pos: -27.5,25.5 + parent: 2 + - uid: 6942 + components: + - type: Transform + pos: -27.5,26.5 + parent: 2 + - uid: 6943 + components: + - type: Transform + pos: -27.5,27.5 + parent: 2 + - uid: 6944 + components: + - type: Transform + pos: -27.5,28.5 + parent: 2 + - uid: 6945 + components: + - type: Transform + pos: -27.5,29.5 + parent: 2 + - uid: 6946 + components: + - type: Transform + pos: -25.5,29.5 + parent: 2 + - uid: 6947 + components: + - type: Transform + pos: -25.5,31.5 + parent: 2 + - uid: 6948 + components: + - type: Transform + pos: -25.5,30.5 + parent: 2 + - uid: 6949 + components: + - type: Transform + pos: -25.5,31.5 + parent: 2 + - uid: 6950 + components: + - type: Transform + pos: -22.5,16.5 + parent: 2 + - uid: 6951 + components: + - type: Transform + pos: -22.5,15.5 + parent: 2 + - uid: 6952 + components: + - type: Transform + pos: -21.5,15.5 + parent: 2 + - uid: 6953 + components: + - type: Transform + pos: -20.5,15.5 + parent: 2 + - uid: 6954 + components: + - type: Transform + pos: -20.5,16.5 + parent: 2 + - uid: 6955 + components: + - type: Transform + pos: -20.5,17.5 + parent: 2 + - uid: 6956 + components: + - type: Transform + pos: -20.5,18.5 + parent: 2 + - uid: 6957 + components: + - type: Transform + pos: -20.5,16.5 + parent: 2 + - uid: 6958 + components: + - type: Transform + pos: -20.5,17.5 + parent: 2 + - uid: 6959 + components: + - type: Transform + pos: -20.5,18.5 + parent: 2 + - uid: 6960 + components: + - type: Transform + pos: -20.5,19.5 + parent: 2 + - uid: 6961 + components: + - type: Transform + pos: -20.5,20.5 + parent: 2 + - uid: 6962 + components: + - type: Transform + pos: -20.5,21.5 + parent: 2 + - uid: 6963 + components: + - type: Transform + pos: -20.5,22.5 + parent: 2 + - uid: 6964 + components: + - type: Transform + pos: -20.5,23.5 + parent: 2 + - uid: 6965 + components: + - type: Transform + pos: -24.5,29.5 + parent: 2 + - uid: 6966 + components: + - type: Transform + pos: -23.5,29.5 + parent: 2 + - uid: 6967 + components: + - type: Transform + pos: -23.5,28.5 + parent: 2 + - uid: 6968 + components: + - type: Transform + pos: -22.5,28.5 + parent: 2 + - uid: 6969 + components: + - type: Transform + pos: -21.5,28.5 + parent: 2 + - uid: 6970 + components: + - type: Transform + pos: -20.5,28.5 + parent: 2 + - uid: 6971 + components: + - type: Transform + pos: -19.5,28.5 + parent: 2 + - uid: 6972 + components: + - type: Transform + pos: -19.5,28.5 + parent: 2 + - uid: 6973 + components: + - type: Transform + pos: -19.5,29.5 + parent: 2 + - uid: 6974 + components: + - type: Transform + pos: -19.5,30.5 + parent: 2 + - uid: 6975 + components: + - type: Transform + pos: -19.5,31.5 + parent: 2 + - uid: 6976 + components: + - type: Transform + pos: -19.5,32.5 + parent: 2 + - uid: 6977 + components: + - type: Transform + pos: -19.5,33.5 + parent: 2 + - uid: 6978 + components: + - type: Transform + pos: -19.5,34.5 + parent: 2 + - uid: 6979 + components: + - type: Transform + pos: -19.5,35.5 + parent: 2 + - uid: 6980 + components: + - type: Transform + pos: -19.5,36.5 + parent: 2 + - uid: 6981 + components: + - type: Transform + pos: -19.5,37.5 + parent: 2 + - uid: 6982 + components: + - type: Transform + pos: -23.5,29.5 + parent: 2 + - uid: 6983 + components: + - type: Transform + pos: -23.5,30.5 + parent: 2 + - uid: 6984 + components: + - type: Transform + pos: -23.5,31.5 + parent: 2 + - uid: 6985 + components: + - type: Transform + pos: -23.5,32.5 + parent: 2 + - uid: 6986 + components: + - type: Transform + pos: -23.5,33.5 + parent: 2 + - uid: 6987 + components: + - type: Transform + pos: -23.5,34.5 + parent: 2 + - uid: 6988 + components: + - type: Transform + pos: -23.5,35.5 + parent: 2 + - uid: 6989 + components: + - type: Transform + pos: -24.5,35.5 + parent: 2 + - uid: 6990 + components: + - type: Transform + pos: -25.5,35.5 + parent: 2 + - uid: 6991 + components: + - type: Transform + pos: -26.5,35.5 + parent: 2 + - uid: 6992 + components: + - type: Transform + pos: -27.5,35.5 + parent: 2 + - uid: 6993 + components: + - type: Transform + pos: -28.5,35.5 + parent: 2 + - uid: 6994 + components: + - type: Transform + pos: -29.5,35.5 + parent: 2 + - uid: 6995 + components: + - type: Transform + pos: -30.5,35.5 + parent: 2 + - uid: 6996 + components: + - type: Transform + pos: -30.5,35.5 + parent: 2 + - uid: 6997 + components: + - type: Transform + pos: -30.5,36.5 + parent: 2 + - uid: 6998 + components: + - type: Transform + pos: -30.5,37.5 + parent: 2 + - uid: 6999 + components: + - type: Transform + pos: -30.5,38.5 + parent: 2 + - uid: 7000 + components: + - type: Transform + pos: -30.5,39.5 + parent: 2 + - uid: 7001 + components: + - type: Transform + pos: -30.5,40.5 + parent: 2 + - uid: 7002 + components: + - type: Transform + pos: -23.5,36.5 + parent: 2 + - uid: 7003 + components: + - type: Transform + pos: -23.5,37.5 + parent: 2 + - uid: 7004 + components: + - type: Transform + pos: -23.5,37.5 + parent: 2 + - uid: 7005 + components: + - type: Transform + pos: -23.5,36.5 + parent: 2 + - uid: 7006 + components: + - type: Transform + pos: -23.5,38.5 + parent: 2 + - uid: 7007 + components: + - type: Transform + pos: -22.5,38.5 + parent: 2 + - uid: 7008 + components: + - type: Transform + pos: -21.5,38.5 + parent: 2 + - uid: 7009 + components: + - type: Transform + pos: -21.5,39.5 + parent: 2 + - uid: 7010 + components: + - type: Transform + pos: -21.5,40.5 + parent: 2 + - uid: 7011 + components: + - type: Transform + pos: -21.5,41.5 + parent: 2 + - uid: 7012 + components: + - type: Transform + pos: -20.5,41.5 + parent: 2 + - uid: 7013 + components: + - type: Transform + pos: -28.5,29.5 + parent: 2 + - uid: 7014 + components: + - type: Transform + pos: -28.5,29.5 + parent: 2 + - uid: 7015 + components: + - type: Transform + pos: -29.5,29.5 + parent: 2 + - uid: 7016 + components: + - type: Transform + pos: -30.5,29.5 + parent: 2 + - uid: 7017 + components: + - type: Transform + pos: -31.5,29.5 + parent: 2 + - uid: 7018 + components: + - type: Transform + pos: -32.5,29.5 + parent: 2 + - uid: 7019 + components: + - type: Transform + pos: -33.5,29.5 + parent: 2 + - uid: 7020 + components: + - type: Transform + pos: -34.5,29.5 + parent: 2 + - uid: 7021 + components: + - type: Transform + pos: -35.5,29.5 + parent: 2 + - uid: 7022 + components: + - type: Transform + pos: -36.5,29.5 + parent: 2 + - uid: 7023 + components: + - type: Transform + pos: -36.5,29.5 + parent: 2 + - uid: 7024 + components: + - type: Transform + pos: -36.5,28.5 + parent: 2 + - uid: 7025 + components: + - type: Transform + pos: -36.5,27.5 + parent: 2 + - uid: 7026 + components: + - type: Transform + pos: -36.5,26.5 + parent: 2 + - uid: 7027 + components: + - type: Transform + pos: -36.5,25.5 + parent: 2 + - uid: 7028 + components: + - type: Transform + pos: -36.5,24.5 + parent: 2 + - uid: 7029 + components: + - type: Transform + pos: -36.5,23.5 + parent: 2 + - uid: 7030 + components: + - type: Transform + pos: -36.5,22.5 + parent: 2 + - uid: 7031 + components: + - type: Transform + pos: -36.5,21.5 + parent: 2 + - uid: 7032 + components: + - type: Transform + pos: -36.5,20.5 + parent: 2 + - uid: 7033 + components: + - type: Transform + pos: -36.5,19.5 + parent: 2 + - uid: 7034 + components: + - type: Transform + pos: -36.5,18.5 + parent: 2 + - uid: 7035 + components: + - type: Transform + pos: -20.5,19.5 + parent: 2 + - uid: 7036 + components: + - type: Transform + pos: -19.5,19.5 + parent: 2 + - uid: 7037 + components: + - type: Transform + pos: -18.5,19.5 + parent: 2 + - uid: 7038 + components: + - type: Transform + pos: -17.5,19.5 + parent: 2 + - uid: 7039 + components: + - type: Transform + pos: -16.5,19.5 + parent: 2 + - uid: 7040 + components: + - type: Transform + pos: -15.5,19.5 + parent: 2 + - uid: 7041 + components: + - type: Transform + pos: -14.5,19.5 + parent: 2 + - uid: 7042 + components: + - type: Transform + pos: -13.5,19.5 + parent: 2 + - uid: 7043 + components: + - type: Transform + pos: -12.5,19.5 + parent: 2 + - uid: 7044 + components: + - type: Transform + pos: -11.5,19.5 + parent: 2 + - uid: 7045 + components: + - type: Transform + pos: -10.5,19.5 + parent: 2 + - uid: 7046 + components: + - type: Transform + pos: -9.5,19.5 + parent: 2 + - uid: 7047 + components: + - type: Transform + pos: -9.5,18.5 + parent: 2 + - uid: 7048 + components: + - type: Transform + pos: -9.5,17.5 + parent: 2 + - uid: 7049 + components: + - type: Transform + pos: -9.5,15.5 + parent: 2 + - uid: 7050 + components: + - type: Transform + pos: -9.5,16.5 + parent: 2 + - uid: 7051 + components: + - type: Transform + pos: -9.5,17.5 + parent: 2 + - uid: 7052 + components: + - type: Transform + pos: -9.5,14.5 + parent: 2 + - uid: 7053 + components: + - type: Transform + pos: -10.5,14.5 + parent: 2 + - uid: 7054 + components: + - type: Transform + pos: -11.5,14.5 + parent: 2 + - uid: 7055 + components: + - type: Transform + pos: -11.5,13.5 + parent: 2 + - uid: 7056 + components: + - type: Transform + pos: -11.5,12.5 + parent: 2 + - uid: 7057 + components: + - type: Transform + pos: -11.5,11.5 + parent: 2 + - uid: 7058 + components: + - type: Transform + pos: -11.5,10.5 + parent: 2 + - uid: 7059 + components: + - type: Transform + pos: -11.5,10.5 + parent: 2 + - uid: 7060 + components: + - type: Transform + pos: -10.5,10.5 + parent: 2 + - uid: 7061 + components: + - type: Transform + pos: -9.5,10.5 + parent: 2 + - uid: 7062 + components: + - type: Transform + pos: -8.5,10.5 + parent: 2 + - uid: 7063 + components: + - type: Transform + pos: 29.5,27.5 + parent: 2 + - uid: 7064 + components: + - type: Transform + pos: 29.5,27.5 + parent: 2 + - uid: 7065 + components: + - type: Transform + pos: 30.5,27.5 + parent: 2 + - uid: 7066 + components: + - type: Transform + pos: 31.5,27.5 + parent: 2 + - uid: 7067 + components: + - type: Transform + pos: 32.5,27.5 + parent: 2 + - uid: 7068 + components: + - type: Transform + pos: 33.5,27.5 + parent: 2 + - uid: 7069 + components: + - type: Transform + pos: 34.5,27.5 + parent: 2 + - uid: 7070 + components: + - type: Transform + pos: 35.5,27.5 + parent: 2 + - uid: 7071 + components: + - type: Transform + pos: 36.5,27.5 + parent: 2 + - uid: 7072 + components: + - type: Transform + pos: 37.5,27.5 + parent: 2 + - uid: 7073 + components: + - type: Transform + pos: 38.5,27.5 + parent: 2 + - uid: 7074 + components: + - type: Transform + pos: 39.5,27.5 + parent: 2 + - uid: 7075 + components: + - type: Transform + pos: 40.5,27.5 + parent: 2 + - uid: 7076 + components: + - type: Transform + pos: 40.5,26.5 + parent: 2 + - uid: 7077 + components: + - type: Transform + pos: 41.5,26.5 + parent: 2 + - uid: 7078 + components: + - type: Transform + pos: 29.5,28.5 + parent: 2 + - uid: 7079 + components: + - type: Transform + pos: 29.5,27.5 + parent: 2 + - uid: 7080 + components: + - type: Transform + pos: 29.5,29.5 + parent: 2 + - uid: 7081 + components: + - type: Transform + pos: 29.5,30.5 + parent: 2 + - uid: 7082 + components: + - type: Transform + pos: 29.5,31.5 + parent: 2 + - uid: 7083 + components: + - type: Transform + pos: 29.5,31.5 + parent: 2 + - uid: 7084 + components: + - type: Transform + pos: 28.5,31.5 + parent: 2 + - uid: 7085 + components: + - type: Transform + pos: 27.5,31.5 + parent: 2 + - uid: 7086 + components: + - type: Transform + pos: 26.5,31.5 + parent: 2 + - uid: 7087 + components: + - type: Transform + pos: 25.5,31.5 + parent: 2 + - uid: 7088 + components: + - type: Transform + pos: 24.5,31.5 + parent: 2 + - uid: 7089 + components: + - type: Transform + pos: 23.5,31.5 + parent: 2 + - uid: 7090 + components: + - type: Transform + pos: 22.5,31.5 + parent: 2 + - uid: 7091 + components: + - type: Transform + pos: 21.5,31.5 + parent: 2 + - uid: 7092 + components: + - type: Transform + pos: 20.5,31.5 + parent: 2 + - uid: 7093 + components: + - type: Transform + pos: 20.5,31.5 + parent: 2 + - uid: 7094 + components: + - type: Transform + pos: 20.5,32.5 + parent: 2 + - uid: 7095 + components: + - type: Transform + pos: 20.5,33.5 + parent: 2 + - uid: 7096 + components: + - type: Transform + pos: 20.5,34.5 + parent: 2 + - uid: 7097 + components: + - type: Transform + pos: 20.5,35.5 + parent: 2 + - uid: 7098 + components: + - type: Transform + pos: 20.5,36.5 + parent: 2 + - uid: 7099 + components: + - type: Transform + pos: 20.5,37.5 + parent: 2 + - uid: 7100 + components: + - type: Transform + pos: 19.5,37.5 + parent: 2 + - uid: 7101 + components: + - type: Transform + pos: 18.5,37.5 + parent: 2 + - uid: 7102 + components: + - type: Transform + pos: 12.5,16.5 + parent: 2 + - uid: 7103 + components: + - type: Transform + pos: 29.5,32.5 + parent: 2 + - uid: 7104 + components: + - type: Transform + pos: 29.5,33.5 + parent: 2 + - uid: 7105 + components: + - type: Transform + pos: 29.5,34.5 + parent: 2 + - uid: 7106 + components: + - type: Transform + pos: 28.5,34.5 + parent: 2 + - uid: 7107 + components: + - type: Transform + pos: 28.5,34.5 + parent: 2 + - uid: 7108 + components: + - type: Transform + pos: 27.5,34.5 + parent: 2 + - uid: 7109 + components: + - type: Transform + pos: 25.5,0.5 + parent: 2 + - uid: 7110 + components: + - type: Transform + pos: 26.5,0.5 + parent: 2 + - uid: 7111 + components: + - type: Transform + pos: 27.5,0.5 + parent: 2 + - uid: 7112 + components: + - type: Transform + pos: 28.5,0.5 + parent: 2 + - uid: 7113 + components: + - type: Transform + pos: 29.5,0.5 + parent: 2 + - uid: 7114 + components: + - type: Transform + pos: 30.5,0.5 + parent: 2 + - uid: 7115 + components: + - type: Transform + pos: 31.5,0.5 + parent: 2 + - uid: 7116 + components: + - type: Transform + pos: 32.5,0.5 + parent: 2 + - uid: 7117 + components: + - type: Transform + pos: 33.5,0.5 + parent: 2 + - uid: 7118 + components: + - type: Transform + pos: 34.5,0.5 + parent: 2 + - uid: 7119 + components: + - type: Transform + pos: 34.5,0.5 + parent: 2 + - uid: 7120 + components: + - type: Transform + pos: 34.5,-0.5 + parent: 2 + - uid: 7121 + components: + - type: Transform + pos: 34.5,-1.5 + parent: 2 + - uid: 7122 + components: + - type: Transform + pos: 34.5,-2.5 + parent: 2 + - uid: 7123 + components: + - type: Transform + pos: 34.5,-3.5 + parent: 2 + - uid: 7124 + components: + - type: Transform + pos: 34.5,-4.5 + parent: 2 + - uid: 7125 + components: + - type: Transform + pos: 34.5,-5.5 + parent: 2 + - uid: 7126 + components: + - type: Transform + pos: 34.5,-5.5 + parent: 2 + - uid: 7127 + components: + - type: Transform + pos: 33.5,-5.5 + parent: 2 + - uid: 7128 + components: + - type: Transform + pos: 32.5,-5.5 + parent: 2 + - uid: 7129 + components: + - type: Transform + pos: 31.5,-5.5 + parent: 2 + - uid: 7130 + components: + - type: Transform + pos: -29.5,-31.5 + parent: 2 + - uid: 7131 + components: + - type: Transform + pos: -34.5,5.5 + parent: 2 + - uid: 7132 + components: + - type: Transform + pos: -35.5,5.5 + parent: 2 + - uid: 7133 + components: + - type: Transform + pos: -29.5,-30.5 + parent: 2 + - uid: 7134 + components: + - type: Transform + pos: -29.5,-29.5 + parent: 2 + - uid: 7135 + components: + - type: Transform + pos: -29.5,-28.5 + parent: 2 + - uid: 7136 + components: + - type: Transform + pos: -29.5,-27.5 + parent: 2 + - uid: 7137 + components: + - type: Transform + pos: -29.5,-26.5 + parent: 2 + - uid: 7138 + components: + - type: Transform + pos: -29.5,-25.5 + parent: 2 + - uid: 7139 + components: + - type: Transform + pos: -29.5,-24.5 + parent: 2 + - uid: 7140 + components: + - type: Transform + pos: -29.5,-23.5 + parent: 2 + - uid: 7141 + components: + - type: Transform + pos: -29.5,-22.5 + parent: 2 + - uid: 7142 + components: + - type: Transform + pos: -30.5,-22.5 + parent: 2 + - uid: 7143 + components: + - type: Transform + pos: -31.5,-22.5 + parent: 2 + - uid: 7144 + components: + - type: Transform + pos: -31.5,-22.5 + parent: 2 + - uid: 7145 + components: + - type: Transform + pos: -31.5,-21.5 + parent: 2 + - uid: 7146 + components: + - type: Transform + pos: -31.5,-20.5 + parent: 2 + - uid: 7147 + components: + - type: Transform + pos: -31.5,-19.5 + parent: 2 + - uid: 7148 + components: + - type: Transform + pos: -19.5,1.5 + parent: 2 + - uid: 7149 + components: + - type: Transform + pos: -18.5,1.5 + parent: 2 + - uid: 7150 + components: + - type: Transform + pos: -18.5,2.5 + parent: 2 + - uid: 7151 + components: + - type: Transform + pos: -18.5,3.5 + parent: 2 + - uid: 7152 + components: + - type: Transform + pos: -14.5,-11.5 + parent: 2 + - uid: 7153 + components: + - type: Transform + pos: -2.5,42.5 + parent: 2 + - uid: 7154 + components: + - type: Transform + pos: 2.5,54.5 + parent: 2 + - uid: 7155 + components: + - type: Transform + pos: 2.5,55.5 + parent: 2 + - uid: 7156 + components: + - type: Transform + pos: 0.5,59.5 + parent: 2 + - uid: 7157 + components: + - type: Transform + pos: -3.5,56.5 + parent: 2 + - uid: 7158 + components: + - type: Transform + pos: 2.5,57.5 + parent: 2 + - uid: 7159 + components: + - type: Transform + pos: 1.5,59.5 + parent: 2 + - uid: 7160 + components: + - type: Transform + pos: -0.5,59.5 + parent: 2 + - uid: 7161 + components: + - type: Transform + pos: 2.5,58.5 + parent: 2 + - uid: 7162 + components: + - type: Transform + pos: 2.5,59.5 + parent: 2 + - uid: 7163 + components: + - type: Transform + pos: -1.5,59.5 + parent: 2 + - uid: 7164 + components: + - type: Transform + pos: -2.5,59.5 + parent: 2 + - uid: 7165 + components: + - type: Transform + pos: -3.5,59.5 + parent: 2 + - uid: 7166 + components: + - type: Transform + pos: -3.5,55.5 + parent: 2 + - uid: 7167 + components: + - type: Transform + pos: -4.5,55.5 + parent: 2 + - uid: 7168 + components: + - type: Transform + pos: -3.5,58.5 + parent: 2 + - uid: 7169 + components: + - type: Transform + pos: -3.5,57.5 + parent: 2 + - uid: 7170 + components: + - type: Transform + pos: -5.5,55.5 + parent: 2 + - uid: 7171 + components: + - type: Transform + pos: -6.5,55.5 + parent: 2 + - uid: 7172 + components: + - type: Transform + pos: -6.5,54.5 + parent: 2 + - uid: 7173 + components: + - type: Transform + pos: -6.5,53.5 + parent: 2 + - uid: 7174 + components: + - type: Transform + pos: -6.5,52.5 + parent: 2 + - uid: 7175 + components: + - type: Transform + pos: -7.5,52.5 + parent: 2 + - uid: 7176 + components: + - type: Transform + pos: -7.5,51.5 + parent: 2 + - uid: 7177 + components: + - type: Transform + pos: -7.5,50.5 + parent: 2 + - uid: 7178 + components: + - type: Transform + pos: -8.5,50.5 + parent: 2 + - uid: 7179 + components: + - type: Transform + pos: -9.5,50.5 + parent: 2 + - uid: 7180 + components: + - type: Transform + pos: -5.5,-64.5 + parent: 2 + - uid: 7181 + components: + - type: Transform + pos: -5.5,-65.5 + parent: 2 + - uid: 7182 + components: + - type: Transform + pos: -4.5,-63.5 + parent: 2 + - uid: 7183 + components: + - type: Transform + pos: -5.5,-63.5 + parent: 2 + - uid: 7184 + components: + - type: Transform + pos: -5.5,-66.5 + parent: 2 + - uid: 7185 + components: + - type: Transform + pos: 7.5,-64.5 + parent: 2 + - uid: 7186 + components: + - type: Transform + pos: -4.5,-69.5 + parent: 2 + - uid: 7187 + components: + - type: Transform + pos: -3.5,-69.5 + parent: 2 + - uid: 7188 + components: + - type: Transform + pos: 7.5,-68.5 + parent: 2 + - uid: 7189 + components: + - type: Transform + pos: 7.5,-67.5 + parent: 2 + - uid: 7190 + components: + - type: Transform + pos: -5.5,-69.5 + parent: 2 + - uid: 7191 + components: + - type: Transform + pos: -5.5,-67.5 + parent: 2 + - uid: 7192 + components: + - type: Transform + pos: -5.5,-68.5 + parent: 2 + - uid: 7193 + components: + - type: Transform + pos: -2.5,-69.5 + parent: 2 + - uid: 7194 + components: + - type: Transform + pos: -1.5,-69.5 + parent: 2 + - uid: 7195 + components: + - type: Transform + pos: 2.5,-69.5 + parent: 2 + - uid: 7196 + components: + - type: Transform + pos: 3.5,-69.5 + parent: 2 + - uid: 7197 + components: + - type: Transform + pos: 5.5,-69.5 + parent: 2 + - uid: 7198 + components: + - type: Transform + pos: 7.5,-69.5 + parent: 2 + - uid: 7199 + components: + - type: Transform + pos: 7.5,-66.5 + parent: 2 + - uid: 7200 + components: + - type: Transform + pos: 6.5,-69.5 + parent: 2 + - uid: 7201 + components: + - type: Transform + pos: 4.5,-69.5 + parent: 2 + - uid: 7202 + components: + - type: Transform + pos: 7.5,-65.5 + parent: 2 +- proto: CableMVStack + entities: + - uid: 7203 + components: + - type: Transform + pos: 4.574347,15.341499 + parent: 2 + - uid: 7204 + components: + - type: Transform + pos: 14.444348,-51.3542 + parent: 2 + - uid: 7205 + components: + - type: Transform + pos: 22.505043,-45.34941 + parent: 2 + - uid: 7206 + components: + - type: Transform + pos: -3.5940933,49.542595 + parent: 2 +- proto: CableMVStack10 + entities: + - uid: 7207 + components: + - type: Transform + pos: -36.41552,-29.628822 + parent: 2 +- proto: CableTerminal + entities: + - uid: 7208 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 34.5,-46.5 + parent: 2 + - uid: 7209 + components: + - type: Transform + pos: -35.5,-55.5 + parent: 2 + - uid: 7210 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 4.5,31.5 + parent: 2 + - uid: 7211 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -4.5,77.5 + parent: 2 + - uid: 7212 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -19.5,-56.5 + parent: 2 + - uid: 7213 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 45.5,23.5 + parent: 2 + - uid: 7214 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -19.5,-56.5 + parent: 2 + - uid: 7215 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -18.5,-56.5 + parent: 2 + - uid: 7216 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -17.5,-56.5 + parent: 2 + - uid: 7217 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -19.5,-57.5 + parent: 2 + - uid: 7218 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -19.5,-58.5 + parent: 2 + - uid: 7219 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 7.5,34.5 + parent: 2 +- proto: CandleRedInfinite + entities: + - uid: 7220 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 18.5,45.5 + parent: 2 + - uid: 7221 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 22.5,45.5 + parent: 2 + - uid: 7222 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 17.5,33.5 + parent: 2 + - uid: 7223 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 19.5,32.5 + parent: 2 + - uid: 7224 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 17.5,29.5 + parent: 2 + - uid: 7225 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 19.5,30.5 + parent: 2 + - uid: 7226 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 21.5,35.5 + parent: 2 +- proto: CapacitorStockPart + entities: + - uid: 7227 + components: + - type: Transform + pos: 25.373764,-39.396965 + parent: 2 + - uid: 7228 + components: + - type: Transform + pos: 25.513626,-39.31305 + parent: 2 +- proto: CaptainIDCard + entities: + - uid: 7229 + components: + - type: Transform + pos: -3.5046058,53.08522 + parent: 2 +- proto: CarbonDioxideCanister + entities: + - uid: 7230 + components: + - type: Transform + pos: -27.5,-39.5 + parent: 2 + - uid: 7231 + components: + - type: Transform + pos: 19.5,-49.5 + parent: 2 + - uid: 7232 + components: + - type: Transform + pos: 19.5,-50.5 + parent: 2 + - uid: 7233 + components: + - type: Transform + pos: -27.5,-38.5 + parent: 2 +- proto: CargoBountyComputerCircuitboard + entities: + - uid: 7234 + components: + - type: Transform + pos: -3.444475,-35.393864 + parent: 2 +- proto: CargoRequestComputerCircuitboard + entities: + - uid: 7235 + components: + - type: Transform + pos: -3.5750108,-35.580345 + parent: 2 +- proto: Carpet + entities: + - uid: 7236 + components: + - type: Transform + pos: 32.5,4.5 + parent: 2 + - uid: 7237 + components: + - type: Transform + pos: -27.5,-67.5 + parent: 2 + - uid: 7238 + components: + - type: Transform + pos: -26.5,-67.5 + parent: 2 + - uid: 7239 + components: + - type: Transform + pos: -25.5,-66.5 + parent: 2 + - uid: 7240 + components: + - type: Transform + pos: 32.5,5.5 + parent: 2 + - uid: 7241 + components: + - type: Transform + pos: 33.5,4.5 + parent: 2 + - uid: 7242 + components: + - type: Transform + pos: 33.5,5.5 + parent: 2 + - uid: 7243 + components: + - type: Transform + pos: 34.5,4.5 + parent: 2 + - uid: 7244 + components: + - type: Transform + pos: 34.5,5.5 + parent: 2 + - uid: 7245 + components: + - type: Transform + pos: 35.5,4.5 + parent: 2 + - uid: 7246 + components: + - type: Transform + pos: 35.5,5.5 + parent: 2 + - uid: 7247 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 15.5,7.5 + parent: 2 + - uid: 7248 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 15.5,8.5 + parent: 2 + - uid: 7249 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 15.5,9.5 + parent: 2 + - uid: 7250 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 15.5,10.5 + parent: 2 + - uid: 7251 + components: + - type: Transform + pos: 41.5,12.5 + parent: 2 + - uid: 7252 + components: + - type: Transform + pos: 41.5,13.5 + parent: 2 + - uid: 7253 + components: + - type: Transform + pos: 41.5,14.5 + parent: 2 + - uid: 7254 + components: + - type: Transform + pos: 42.5,13.5 + parent: 2 + - uid: 7255 + components: + - type: Transform + pos: 42.5,14.5 + parent: 2 + - uid: 7256 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 36.5,7.5 + parent: 2 + - uid: 7257 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 37.5,7.5 + parent: 2 + - uid: 7258 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 37.5,6.5 + parent: 2 + - uid: 7259 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 38.5,6.5 + parent: 2 + - uid: 7260 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 39.5,6.5 + parent: 2 + - uid: 7261 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 40.5,6.5 + parent: 2 + - uid: 7262 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 41.5,6.5 + parent: 2 + - uid: 7263 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 42.5,6.5 + parent: 2 + - uid: 7264 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 42.5,7.5 + parent: 2 + - uid: 7265 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 41.5,9.5 + parent: 2 + - uid: 7266 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 40.5,9.5 + parent: 2 + - uid: 7267 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 39.5,9.5 + parent: 2 + - uid: 7268 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 38.5,9.5 + parent: 2 + - uid: 7269 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 37.5,9.5 + parent: 2 + - uid: 7270 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 37.5,8.5 + parent: 2 + - uid: 7271 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 40.5,5.5 + parent: 2 + - uid: 7272 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 40.5,3.5 + parent: 2 + - uid: 7273 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 39.5,3.5 + parent: 2 + - uid: 7274 + components: + - type: Transform + pos: -19.5,18.5 + parent: 2 + - uid: 7275 + components: + - type: Transform + pos: -19.5,19.5 + parent: 2 + - uid: 7276 + components: + - type: Transform + pos: -19.5,20.5 + parent: 2 + - uid: 7277 + components: + - type: Transform + pos: -19.5,21.5 + parent: 2 + - uid: 7278 + components: + - type: Transform + pos: -19.5,22.5 + parent: 2 + - uid: 7279 + components: + - type: Transform + pos: -20.5,18.5 + parent: 2 + - uid: 7280 + components: + - type: Transform + pos: -20.5,19.5 + parent: 2 + - uid: 7281 + components: + - type: Transform + pos: -20.5,20.5 + parent: 2 + - uid: 7282 + components: + - type: Transform + pos: -20.5,21.5 + parent: 2 + - uid: 7283 + components: + - type: Transform + pos: -20.5,22.5 + parent: 2 + - uid: 7284 + components: + - type: Transform + pos: -21.5,18.5 + parent: 2 + - uid: 7285 + components: + - type: Transform + pos: -21.5,19.5 + parent: 2 + - uid: 7286 + components: + - type: Transform + pos: -21.5,20.5 + parent: 2 + - uid: 7287 + components: + - type: Transform + pos: -21.5,21.5 + parent: 2 + - uid: 7288 + components: + - type: Transform + pos: -21.5,22.5 + parent: 2 + - uid: 7289 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -21.5,43.5 + parent: 2 + - uid: 7290 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -21.5,44.5 + parent: 2 + - uid: 7291 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -22.5,43.5 + parent: 2 + - uid: 7292 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -22.5,44.5 + parent: 2 + - uid: 7293 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -23.5,43.5 + parent: 2 + - uid: 7294 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -23.5,44.5 + parent: 2 + - uid: 7295 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -24.5,43.5 + parent: 2 + - uid: 7296 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -24.5,44.5 + parent: 2 + - uid: 7297 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -25.5,43.5 + parent: 2 + - uid: 7298 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -25.5,44.5 + parent: 2 + - uid: 7299 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -26.5,43.5 + parent: 2 + - uid: 7300 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -26.5,44.5 + parent: 2 + - uid: 7301 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -26.5,45.5 + parent: 2 + - uid: 7302 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -25.5,45.5 + parent: 2 + - uid: 7303 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -24.5,45.5 + parent: 2 + - uid: 7304 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -23.5,45.5 + parent: 2 + - uid: 7305 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -22.5,45.5 + parent: 2 + - uid: 7306 + components: + - type: Transform + pos: 40.5,4.5 + parent: 2 + - uid: 7307 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 42.5,12.5 + parent: 2 + - uid: 7308 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 42.5,8.5 + parent: 2 + - uid: 7309 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 42.5,9.5 + parent: 2 +- proto: CarpetBlack + entities: + - uid: 7310 + components: + - type: Transform + pos: -4.5,13.5 + parent: 2 + - uid: 7311 + components: + - type: Transform + pos: -4.5,14.5 + parent: 2 + - uid: 7312 + components: + - type: Transform + pos: -4.5,15.5 + parent: 2 + - uid: 7313 + components: + - type: Transform + pos: -4.5,16.5 + parent: 2 + - uid: 7314 + components: + - type: Transform + pos: -3.5,13.5 + parent: 2 + - uid: 7315 + components: + - type: Transform + pos: -3.5,14.5 + parent: 2 + - uid: 7316 + components: + - type: Transform + pos: -3.5,15.5 + parent: 2 + - uid: 7317 + components: + - type: Transform + pos: -3.5,16.5 + parent: 2 + - uid: 7318 + components: + - type: Transform + pos: -2.5,13.5 + parent: 2 + - uid: 7319 + components: + - type: Transform + pos: -2.5,14.5 + parent: 2 + - uid: 7320 + components: + - type: Transform + pos: -2.5,15.5 + parent: 2 + - uid: 7321 + components: + - type: Transform + pos: -2.5,16.5 + parent: 2 + - uid: 7322 + components: + - type: Transform + pos: -31.5,-61.5 + parent: 2 + - uid: 7323 + components: + - type: Transform + pos: -31.5,-60.5 + parent: 2 + - uid: 7324 + components: + - type: Transform + pos: -30.5,-61.5 + parent: 2 + - uid: 7325 + components: + - type: Transform + pos: -30.5,-60.5 + parent: 2 + - uid: 7326 + components: + - type: Transform + pos: -29.5,-61.5 + parent: 2 + - uid: 7327 + components: + - type: Transform + pos: -29.5,-60.5 + parent: 2 + - uid: 7328 + components: + - type: Transform + pos: -31.5,-62.5 + parent: 2 + - uid: 7329 + components: + - type: Transform + pos: -31.5,-63.5 + parent: 2 + - uid: 7330 + components: + - type: Transform + pos: -31.5,-64.5 + parent: 2 + - uid: 7331 + components: + - type: Transform + pos: -30.5,-62.5 + parent: 2 + - uid: 7332 + components: + - type: Transform + pos: -30.5,-63.5 + parent: 2 + - uid: 7333 + components: + - type: Transform + pos: -30.5,-64.5 + parent: 2 + - uid: 7334 + components: + - type: Transform + pos: -29.5,-64.5 + parent: 2 + - uid: 7335 + components: + - type: Transform + pos: -29.5,-63.5 + parent: 2 + - uid: 7336 + components: + - type: Transform + pos: -28.5,-64.5 + parent: 2 + - uid: 7337 + components: + - type: Transform + pos: -28.5,-63.5 + parent: 2 + - uid: 7338 + components: + - type: Transform + pos: -28.5,-62.5 + parent: 2 + - uid: 7339 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 38.5,-0.5 + parent: 2 + - uid: 7340 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 38.5,0.5 + parent: 2 + - uid: 7341 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 38.5,1.5 + parent: 2 + - uid: 7342 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 39.5,-0.5 + parent: 2 + - uid: 7343 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 39.5,0.5 + parent: 2 + - uid: 7344 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 39.5,1.5 + parent: 2 + - uid: 7345 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 40.5,-0.5 + parent: 2 + - uid: 7346 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 40.5,0.5 + parent: 2 + - uid: 7347 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 40.5,1.5 + parent: 2 + - uid: 7348 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 41.5,-0.5 + parent: 2 + - uid: 7349 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 42.5,-1.5 + parent: 2 + - uid: 7350 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 42.5,-0.5 + parent: 2 + - uid: 7351 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 42.5,0.5 + parent: 2 + - uid: 7352 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 43.5,-1.5 + parent: 2 + - uid: 7353 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 43.5,-0.5 + parent: 2 + - uid: 7354 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 43.5,0.5 + parent: 2 + - uid: 7355 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 44.5,-1.5 + parent: 2 + - uid: 7356 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 44.5,-0.5 + parent: 2 + - uid: 7357 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 44.5,0.5 + parent: 2 + - uid: 7358 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 44.5,0.5 + parent: 2 + - uid: 7359 + components: + - type: Transform + pos: -34.5,-60.5 + parent: 2 + - uid: 7360 + components: + - type: Transform + pos: -35.5,-59.5 + parent: 2 + - uid: 7361 + components: + - type: Transform + pos: -36.5,-60.5 + parent: 2 + - uid: 7362 + components: + - type: Transform + pos: -35.5,-58.5 + parent: 2 + - uid: 7363 + components: + - type: Transform + pos: -34.5,-58.5 + parent: 2 + - uid: 7364 + components: + - type: Transform + pos: -36.5,-59.5 + parent: 2 + - uid: 7365 + components: + - type: Transform + pos: -35.5,-60.5 + parent: 2 +- proto: CarpetBlue + entities: + - uid: 7366 + components: + - type: Transform + pos: 22.5,5.5 + parent: 2 + - uid: 7367 + components: + - type: Transform + pos: 22.5,4.5 + parent: 2 + - uid: 7368 + components: + - type: Transform + pos: 23.5,5.5 + parent: 2 + - uid: 7369 + components: + - type: Transform + pos: 23.5,4.5 + parent: 2 + - uid: 7370 + components: + - type: Transform + pos: 21.5,5.5 + parent: 2 + - uid: 7371 + components: + - type: Transform + pos: 21.5,4.5 + parent: 2 + - uid: 7372 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 17.5,8.5 + parent: 2 + - uid: 7373 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 17.5,9.5 + parent: 2 + - uid: 7374 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 18.5,8.5 + parent: 2 + - uid: 7375 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 18.5,9.5 + parent: 2 + - uid: 7376 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 19.5,8.5 + parent: 2 + - uid: 7377 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 19.5,9.5 + parent: 2 + - uid: 7378 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -25.5,38.5 + parent: 2 + - uid: 7379 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -25.5,39.5 + parent: 2 + - uid: 7380 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -25.5,40.5 + parent: 2 + - uid: 7381 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -25.5,41.5 + parent: 2 + - uid: 7382 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -24.5,38.5 + parent: 2 + - uid: 7383 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -24.5,39.5 + parent: 2 + - uid: 7384 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -24.5,40.5 + parent: 2 + - uid: 7385 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -24.5,41.5 + parent: 2 + - uid: 7386 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -23.5,39.5 + parent: 2 + - uid: 7387 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -23.5,40.5 + parent: 2 + - uid: 7388 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -22.5,38.5 + parent: 2 + - uid: 7389 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -22.5,39.5 + parent: 2 + - uid: 7390 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -22.5,40.5 + parent: 2 + - uid: 7391 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -22.5,41.5 + parent: 2 + - uid: 7392 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -21.5,38.5 + parent: 2 + - uid: 7393 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -21.5,39.5 + parent: 2 + - uid: 7394 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -21.5,40.5 + parent: 2 + - uid: 7395 + components: + - type: Transform + pos: -8.5,50.5 + parent: 2 + - uid: 7396 + components: + - type: Transform + pos: -8.5,49.5 + parent: 2 + - uid: 7397 + components: + - type: Transform + pos: -8.5,48.5 + parent: 2 + - uid: 7398 + components: + - type: Transform + pos: -8.5,47.5 + parent: 2 + - uid: 7399 + components: + - type: Transform + pos: -7.5,50.5 + parent: 2 + - uid: 7400 + components: + - type: Transform + pos: -7.5,49.5 + parent: 2 + - uid: 7401 + components: + - type: Transform + pos: -7.5,48.5 + parent: 2 + - uid: 7402 + components: + - type: Transform + pos: -7.5,47.5 + parent: 2 + - uid: 7403 + components: + - type: Transform + pos: -6.5,50.5 + parent: 2 + - uid: 7404 + components: + - type: Transform + pos: -6.5,49.5 + parent: 2 + - uid: 7405 + components: + - type: Transform + pos: -5.5,49.5 + parent: 2 + - uid: 7406 + components: + - type: Transform + pos: -5.5,48.5 + parent: 2 + - uid: 7407 + components: + - type: Transform + pos: -5.5,47.5 + parent: 2 + - uid: 7408 + components: + - type: Transform + pos: -9.5,50.5 + parent: 2 + - uid: 7409 + components: + - type: Transform + pos: -7.5,51.5 + parent: 2 + - uid: 7410 + components: + - type: Transform + pos: -8.5,52.5 + parent: 2 + - uid: 7411 + components: + - type: Transform + pos: -8.5,53.5 + parent: 2 + - uid: 7412 + components: + - type: Transform + pos: -7.5,52.5 + parent: 2 + - uid: 7413 + components: + - type: Transform + pos: -7.5,53.5 + parent: 2 + - uid: 7414 + components: + - type: Transform + pos: -6.5,52.5 + parent: 2 + - uid: 7415 + components: + - type: Transform + pos: -6.5,53.5 + parent: 2 + - uid: 7416 + components: + - type: Transform + pos: -5.5,52.5 + parent: 2 + - uid: 7417 + components: + - type: Transform + pos: -5.5,53.5 + parent: 2 + - uid: 7418 + components: + - type: Transform + pos: 6.5,55.5 + parent: 2 + - uid: 7419 + components: + - type: Transform + pos: 6.5,54.5 + parent: 2 + - uid: 7420 + components: + - type: Transform + pos: 6.5,53.5 + parent: 2 + - uid: 7421 + components: + - type: Transform + pos: 7.5,55.5 + parent: 2 + - uid: 7422 + components: + - type: Transform + pos: 7.5,54.5 + parent: 2 + - uid: 7423 + components: + - type: Transform + pos: 7.5,53.5 + parent: 2 + - uid: 7424 + components: + - type: Transform + pos: 8.5,55.5 + parent: 2 + - uid: 7425 + components: + - type: Transform + pos: 8.5,54.5 + parent: 2 + - uid: 7426 + components: + - type: Transform + pos: 8.5,53.5 + parent: 2 + - uid: 7427 + components: + - type: Transform + pos: 9.5,55.5 + parent: 2 + - uid: 7428 + components: + - type: Transform + pos: 9.5,54.5 + parent: 2 + - uid: 7429 + components: + - type: Transform + pos: 9.5,53.5 + parent: 2 + - uid: 7430 + components: + - type: Transform + pos: 10.5,55.5 + parent: 2 + - uid: 7431 + components: + - type: Transform + pos: 10.5,54.5 + parent: 2 + - uid: 7432 + components: + - type: Transform + pos: 10.5,53.5 + parent: 2 + - uid: 7433 + components: + - type: Transform + pos: 10.5,52.5 + parent: 2 + - uid: 7434 + components: + - type: Transform + pos: 9.5,52.5 + parent: 2 + - uid: 7435 + components: + - type: Transform + pos: 9.5,56.5 + parent: 2 + - uid: 7436 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 43.5,-25.5 + parent: 2 + - uid: 7437 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 43.5,-23.5 + parent: 2 + - uid: 7438 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 43.5,-22.5 + parent: 2 + - uid: 7439 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 44.5,-25.5 + parent: 2 + - uid: 7440 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 45.5,-25.5 + parent: 2 + - uid: 7441 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 45.5,-24.5 + parent: 2 + - uid: 7442 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 45.5,-23.5 + parent: 2 + - uid: 7443 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 45.5,-22.5 + parent: 2 + - uid: 7444 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 46.5,-25.5 + parent: 2 + - uid: 7445 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 46.5,-24.5 + parent: 2 + - uid: 7446 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 46.5,-23.5 + parent: 2 + - uid: 7447 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 46.5,-22.5 + parent: 2 + - uid: 7448 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 42.5,-24.5 + parent: 2 + - uid: 7449 + components: + - type: Transform + pos: -6.5,47.5 + parent: 2 + - uid: 7450 + components: + - type: Transform + pos: 43.5,-24.5 + parent: 2 + - uid: 7451 + components: + - type: Transform + pos: -6.5,48.5 + parent: 2 + - uid: 7452 + components: + - type: Transform + pos: 44.5,-23.5 + parent: 2 + - uid: 7453 + components: + - type: Transform + pos: 44.5,-22.5 + parent: 2 + - uid: 7454 + components: + - type: Transform + pos: 44.5,-24.5 + parent: 2 + - uid: 7455 + components: + - type: Transform + pos: -23.5,41.5 + parent: 2 + - uid: 7456 + components: + - type: Transform + pos: -21.5,41.5 + parent: 2 + - uid: 7457 + components: + - type: Transform + pos: -23.5,38.5 + parent: 2 +- proto: CarpetGreen + entities: + - uid: 7458 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -17.5,12.5 + parent: 2 + - uid: 7459 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -17.5,11.5 + parent: 2 + - uid: 7460 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -17.5,10.5 + parent: 2 + - uid: 7461 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -16.5,12.5 + parent: 2 + - uid: 7462 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -16.5,11.5 + parent: 2 + - uid: 7463 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -16.5,10.5 + parent: 2 + - uid: 7464 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -15.5,12.5 + parent: 2 + - uid: 7465 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -15.5,11.5 + parent: 2 + - uid: 7466 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -15.5,10.5 + parent: 2 + - uid: 7467 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -8.5,8.5 + parent: 2 + - uid: 7468 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -9.5,8.5 + parent: 2 + - uid: 7469 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -10.5,8.5 + parent: 2 + - uid: 7470 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -11.5,8.5 + parent: 2 + - uid: 7471 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -11.5,9.5 + parent: 2 + - uid: 7472 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -11.5,10.5 + parent: 2 + - uid: 7473 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -11.5,11.5 + parent: 2 + - uid: 7474 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -11.5,12.5 + parent: 2 + - uid: 7475 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -11.5,13.5 + parent: 2 + - uid: 7476 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -11.5,14.5 + parent: 2 + - uid: 7477 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -11.5,15.5 + parent: 2 + - uid: 7478 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -11.5,16.5 + parent: 2 + - uid: 7479 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -12.5,16.5 + parent: 2 + - uid: 7480 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -12.5,15.5 + parent: 2 + - uid: 7481 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -10.5,16.5 + parent: 2 + - uid: 7482 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -10.5,15.5 + parent: 2 + - uid: 7483 + components: + - type: Transform + pos: 18.5,5.5 + parent: 2 + - uid: 7484 + components: + - type: Transform + pos: 18.5,4.5 + parent: 2 + - uid: 7485 + components: + - type: Transform + pos: 19.5,5.5 + parent: 2 + - uid: 7486 + components: + - type: Transform + pos: 19.5,4.5 + parent: 2 + - uid: 7487 + components: + - type: Transform + pos: 20.5,5.5 + parent: 2 + - uid: 7488 + components: + - type: Transform + pos: 20.5,4.5 + parent: 2 + - uid: 7489 + components: + - type: Transform + pos: 24.5,4.5 + parent: 2 + - uid: 7490 + components: + - type: Transform + pos: 24.5,5.5 + parent: 2 + - uid: 7491 + components: + - type: Transform + pos: 25.5,4.5 + parent: 2 + - uid: 7492 + components: + - type: Transform + pos: 25.5,5.5 + parent: 2 + - uid: 7493 + components: + - type: Transform + pos: 26.5,4.5 + parent: 2 + - uid: 7494 + components: + - type: Transform + pos: 26.5,5.5 + parent: 2 + - uid: 7495 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 26.5,40.5 + parent: 2 + - uid: 7496 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 25.5,40.5 + parent: 2 + - uid: 7497 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 37.5,-3.5 + parent: 2 + - uid: 7498 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 37.5,-2.5 + parent: 2 + - uid: 7499 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 38.5,-3.5 + parent: 2 + - uid: 7500 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 38.5,-2.5 + parent: 2 + - uid: 7501 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 39.5,-3.5 + parent: 2 + - uid: 7502 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 39.5,-2.5 + parent: 2 + - uid: 7503 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 40.5,-3.5 + parent: 2 + - uid: 7504 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 40.5,-2.5 + parent: 2 + - uid: 7505 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 17.5,20.5 + parent: 2 + - uid: 7506 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 17.5,21.5 + parent: 2 + - uid: 7507 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 18.5,20.5 + parent: 2 + - uid: 7508 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 18.5,21.5 + parent: 2 + - uid: 7509 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 19.5,20.5 + parent: 2 + - uid: 7510 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 19.5,21.5 + parent: 2 +- proto: CarpetOrange + entities: + - uid: 7511 + components: + - type: Transform + pos: -25.5,7.5 + parent: 2 + - uid: 7512 + components: + - type: Transform + pos: -25.5,6.5 + parent: 2 + - uid: 7513 + components: + - type: Transform + pos: -25.5,5.5 + parent: 2 + - uid: 7514 + components: + - type: Transform + pos: -25.5,4.5 + parent: 2 + - uid: 7515 + components: + - type: Transform + pos: -24.5,7.5 + parent: 2 + - uid: 7516 + components: + - type: Transform + pos: -24.5,6.5 + parent: 2 + - uid: 7517 + components: + - type: Transform + pos: -24.5,5.5 + parent: 2 + - uid: 7518 + components: + - type: Transform + pos: -24.5,4.5 + parent: 2 + - uid: 7519 + components: + - type: Transform + pos: -23.5,7.5 + parent: 2 + - uid: 7520 + components: + - type: Transform + pos: -23.5,6.5 + parent: 2 + - uid: 7521 + components: + - type: Transform + pos: -23.5,5.5 + parent: 2 + - uid: 7522 + components: + - type: Transform + pos: -23.5,4.5 + parent: 2 + - uid: 7523 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -44.5,-36.5 + parent: 2 + - uid: 7524 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -44.5,-35.5 + parent: 2 +- proto: CarpetPink + entities: + - uid: 7525 + components: + - type: Transform + pos: 25.5,31.5 + parent: 2 + - uid: 7526 + components: + - type: Transform + pos: 24.5,29.5 + parent: 2 + - uid: 7527 + components: + - type: Transform + pos: 24.5,30.5 + parent: 2 + - uid: 7528 + components: + - type: Transform + pos: 24.5,31.5 + parent: 2 + - uid: 7529 + components: + - type: Transform + pos: 24.5,32.5 + parent: 2 + - uid: 7530 + components: + - type: Transform + pos: 24.5,33.5 + parent: 2 + - uid: 7531 + components: + - type: Transform + pos: 23.5,31.5 + parent: 2 + - uid: 7532 + components: + - type: Transform + pos: 22.5,31.5 + parent: 2 + - uid: 7533 + components: + - type: Transform + pos: 21.5,31.5 + parent: 2 + - uid: 7534 + components: + - type: Transform + pos: 20.5,29.5 + parent: 2 + - uid: 7535 + components: + - type: Transform + pos: 20.5,32.5 + parent: 2 + - uid: 7536 + components: + - type: Transform + pos: 20.5,33.5 + parent: 2 + - uid: 7537 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 20.5,34.5 + parent: 2 + - uid: 7538 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 19.5,35.5 + parent: 2 + - uid: 7539 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 20.5,36.5 + parent: 2 + - uid: 7540 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 19.5,37.5 + parent: 2 + - uid: 7541 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 21.5,37.5 + parent: 2 + - uid: 7542 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 18.5,35.5 + parent: 2 + - uid: 7543 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 17.5,35.5 + parent: 2 + - uid: 7544 + components: + - type: Transform + pos: 19.5,39.5 + parent: 2 + - uid: 7545 + components: + - type: Transform + pos: 19.5,40.5 + parent: 2 + - uid: 7546 + components: + - type: Transform + pos: 20.5,39.5 + parent: 2 + - uid: 7547 + components: + - type: Transform + pos: 20.5,40.5 + parent: 2 + - uid: 7548 + components: + - type: Transform + pos: 21.5,39.5 + parent: 2 + - uid: 7549 + components: + - type: Transform + pos: 21.5,40.5 + parent: 2 + - uid: 7550 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 20.5,41.5 + parent: 2 + - uid: 7551 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 18.5,42.5 + parent: 2 + - uid: 7552 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 19.5,42.5 + parent: 2 + - uid: 7553 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 20.5,42.5 + parent: 2 + - uid: 7554 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 21.5,42.5 + parent: 2 + - uid: 7555 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 22.5,42.5 + parent: 2 + - uid: 7556 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 18.5,43.5 + parent: 2 + - uid: 7557 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 19.5,43.5 + parent: 2 + - uid: 7558 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 20.5,43.5 + parent: 2 + - uid: 7559 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 21.5,43.5 + parent: 2 + - uid: 7560 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 22.5,43.5 + parent: 2 + - uid: 7561 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 19.5,44.5 + parent: 2 + - uid: 7562 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 20.5,44.5 + parent: 2 + - uid: 7563 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 21.5,44.5 + parent: 2 + - uid: 7564 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 20.5,45.5 + parent: 2 + - uid: 7565 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 20.5,35.5 + parent: 2 + - uid: 7566 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 20.5,37.5 + parent: 2 + - uid: 7567 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 20.5,30.5 + parent: 2 + - uid: 7568 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 20.5,31.5 + parent: 2 +- proto: CarpetPurple + entities: + - uid: 7569 + components: + - type: Transform + pos: -15.5,-22.5 + parent: 2 + - uid: 7570 + components: + - type: Transform + pos: -15.5,-23.5 + parent: 2 + - uid: 7571 + components: + - type: Transform + pos: -15.5,-24.5 + parent: 2 + - uid: 7572 + components: + - type: Transform + pos: -14.5,-22.5 + parent: 2 + - uid: 7573 + components: + - type: Transform + pos: -14.5,-23.5 + parent: 2 + - uid: 7574 + components: + - type: Transform + pos: -14.5,-24.5 + parent: 2 + - uid: 7575 + components: + - type: Transform + pos: -16.5,-21.5 + parent: 2 + - uid: 7576 + components: + - type: Transform + pos: -17.5,-20.5 + parent: 2 + - uid: 7577 + components: + - type: Transform + pos: -17.5,-19.5 + parent: 2 + - uid: 7578 + components: + - type: Transform + pos: -16.5,-20.5 + parent: 2 + - uid: 7579 + components: + - type: Transform + pos: -16.5,-19.5 + parent: 2 + - uid: 7580 + components: + - type: Transform + pos: -15.5,-20.5 + parent: 2 + - uid: 7581 + components: + - type: Transform + pos: -15.5,-19.5 + parent: 2 + - uid: 7582 + components: + - type: Transform + pos: -14.5,-20.5 + parent: 2 + - uid: 7583 + components: + - type: Transform + pos: -14.5,-19.5 + parent: 2 + - uid: 7584 + components: + - type: Transform + pos: -4.5,51.5 + parent: 2 + - uid: 7585 + components: + - type: Transform + pos: -4.5,52.5 + parent: 2 + - uid: 7586 + components: + - type: Transform + pos: -4.5,53.5 + parent: 2 + - uid: 7587 + components: + - type: Transform + pos: -3.5,51.5 + parent: 2 + - uid: 7588 + components: + - type: Transform + pos: -3.5,52.5 + parent: 2 + - uid: 7589 + components: + - type: Transform + pos: -3.5,53.5 + parent: 2 + - uid: 7590 + components: + - type: Transform + pos: -2.5,51.5 + parent: 2 + - uid: 7591 + components: + - type: Transform + pos: -2.5,52.5 + parent: 2 + - uid: 7592 + components: + - type: Transform + pos: -2.5,53.5 + parent: 2 + - uid: 7593 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 9.5,-52.5 + parent: 2 + - uid: 7594 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 10.5,-52.5 + parent: 2 + - uid: 7595 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 10.5,-51.5 + parent: 2 + - uid: 7596 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 10.5,-50.5 + parent: 2 + - uid: 7597 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 11.5,-52.5 + parent: 2 + - uid: 7598 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 11.5,-51.5 + parent: 2 + - uid: 7599 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 11.5,-50.5 + parent: 2 + - uid: 7600 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 12.5,-52.5 + parent: 2 + - uid: 7601 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 12.5,-51.5 + parent: 2 + - uid: 7602 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 12.5,-50.5 + parent: 2 + - uid: 7603 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 13.5,-52.5 + parent: 2 + - uid: 7604 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 13.5,-51.5 + parent: 2 + - uid: 7605 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 13.5,-50.5 + parent: 2 + - uid: 7606 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 14.5,-52.5 + parent: 2 + - uid: 7607 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 14.5,-51.5 + parent: 2 + - uid: 7608 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 14.5,-50.5 + parent: 2 +- proto: CarpetSBlue + entities: + - uid: 7609 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 7.5,47.5 + parent: 2 + - uid: 7610 + components: + - type: Transform + pos: 8.5,50.5 + parent: 2 + - uid: 7611 + components: + - type: Transform + pos: 8.5,49.5 + parent: 2 + - uid: 7612 + components: + - type: Transform + pos: 8.5,47.5 + parent: 2 + - uid: 7613 + components: + - type: Transform + pos: 8.5,48.5 + parent: 2 + - uid: 7614 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 6.5,26.5 + parent: 2 + - uid: 7615 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 6.5,25.5 + parent: 2 + - uid: 7616 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 7.5,25.5 + parent: 2 + - uid: 7617 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 7.5,26.5 + parent: 2 + - uid: 7618 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 7.5,49.5 + parent: 2 + - uid: 7619 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 7.5,50.5 + parent: 2 + - uid: 7620 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 7.5,48.5 + parent: 2 + - uid: 7621 + components: + - type: Transform + pos: 7.5,27.5 + parent: 2 + - uid: 7622 + components: + - type: Transform + pos: 8.5,26.5 + parent: 2 + - uid: 7623 + components: + - type: Transform + pos: 8.5,27.5 + parent: 2 + - uid: 7624 + components: + - type: Transform + pos: 8.5,25.5 + parent: 2 + - uid: 7625 + components: + - type: Transform + pos: 6.5,27.5 + parent: 2 +- proto: CartridgeMinigun + entities: + - uid: 7626 + components: + - type: Transform + pos: -16.772854,15.301035 + parent: 2 + - uid: 7627 + components: + - type: Transform + pos: -16.41621,15.930405 + parent: 2 + - uid: 7628 + components: + - type: Transform + pos: -27.655914,22.006664 + parent: 2 + - uid: 7629 + components: + - type: Transform + pos: -27.341228,22.426245 + parent: 2 + - uid: 7630 + components: + - type: Transform + pos: -24.425144,20.223448 + parent: 2 +- proto: Catwalk + entities: + - uid: 7631 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 22.5,-34.5 + parent: 2 + - uid: 7632 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 30.5,-37.5 + parent: 2 + - uid: 7633 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 29.5,-37.5 + parent: 2 + - uid: 7634 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 28.5,-37.5 + parent: 2 + - uid: 7635 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 27.5,-37.5 + parent: 2 + - uid: 7636 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 26.5,-37.5 + parent: 2 + - uid: 7637 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 25.5,-37.5 + parent: 2 + - uid: 7638 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 24.5,-37.5 + parent: 2 + - uid: 7639 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 23.5,-37.5 + parent: 2 + - uid: 7640 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 22.5,-37.5 + parent: 2 + - uid: 7641 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 22.5,-36.5 + parent: 2 + - uid: 7642 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 22.5,-35.5 + parent: 2 + - uid: 7643 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -8.5,45.5 + parent: 2 + - uid: 7644 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -6.5,45.5 + parent: 2 + - uid: 7645 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -6.5,44.5 + parent: 2 + - uid: 7646 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -9.5,45.5 + parent: 2 + - uid: 7647 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -10.5,46.5 + parent: 2 + - uid: 7648 + components: + - type: Transform + pos: 54.5,-57.5 + parent: 2 + - uid: 7649 + components: + - type: Transform + pos: 46.5,-57.5 + parent: 2 + - uid: 7650 + components: + - type: Transform + pos: 44.5,-57.5 + parent: 2 + - uid: 7651 + components: + - type: Transform + pos: 48.5,-57.5 + parent: 2 + - uid: 7652 + components: + - type: Transform + pos: 50.5,-57.5 + parent: 2 + - uid: 7653 + components: + - type: Transform + pos: 55.5,-57.5 + parent: 2 + - uid: 7654 + components: + - type: Transform + pos: 51.5,-57.5 + parent: 2 + - uid: 7655 + components: + - type: Transform + pos: 53.5,-57.5 + parent: 2 + - uid: 7656 + components: + - type: Transform + pos: 52.5,-57.5 + parent: 2 + - uid: 7657 + components: + - type: Transform + pos: -17.5,-12.5 + parent: 2 + - uid: 7658 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 13.5,10.5 + parent: 2 + - uid: 7659 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 13.5,9.5 + parent: 2 + - uid: 7660 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 13.5,8.5 + parent: 2 + - uid: 7661 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 13.5,7.5 + parent: 2 + - uid: 7662 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 13.5,6.5 + parent: 2 + - uid: 7663 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 13.5,5.5 + parent: 2 + - uid: 7664 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 13.5,4.5 + parent: 2 + - uid: 7665 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 14.5,4.5 + parent: 2 + - uid: 7666 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 15.5,4.5 + parent: 2 + - uid: 7667 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 16.5,4.5 + parent: 2 + - uid: 7668 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 15.5,3.5 + parent: 2 + - uid: 7669 + components: + - type: Transform + pos: 13.5,11.5 + parent: 2 + - uid: 7670 + components: + - type: Transform + pos: 13.5,12.5 + parent: 2 + - uid: 7671 + components: + - type: Transform + pos: 13.5,13.5 + parent: 2 + - uid: 7672 + components: + - type: Transform + pos: 13.5,14.5 + parent: 2 + - uid: 7673 + components: + - type: Transform + pos: 13.5,15.5 + parent: 2 + - uid: 7674 + components: + - type: Transform + pos: 13.5,16.5 + parent: 2 + - uid: 7675 + components: + - type: Transform + pos: 16.5,-1.5 + parent: 2 + - uid: 7676 + components: + - type: Transform + pos: 16.5,-2.5 + parent: 2 + - uid: 7677 + components: + - type: Transform + pos: 16.5,-3.5 + parent: 2 + - uid: 7678 + components: + - type: Transform + pos: 16.5,-4.5 + parent: 2 + - uid: 7679 + components: + - type: Transform + pos: 16.5,-5.5 + parent: 2 + - uid: 7680 + components: + - type: Transform + pos: 17.5,-3.5 + parent: 2 + - uid: 7681 + components: + - type: Transform + pos: 16.5,-6.5 + parent: 2 + - uid: 7682 + components: + - type: Transform + pos: 15.5,-6.5 + parent: 2 + - uid: 7683 + components: + - type: Transform + pos: 14.5,-6.5 + parent: 2 + - uid: 7684 + components: + - type: Transform + pos: 13.5,-6.5 + parent: 2 + - uid: 7685 + components: + - type: Transform + pos: 12.5,-6.5 + parent: 2 + - uid: 7686 + components: + - type: Transform + pos: 11.5,-6.5 + parent: 2 + - uid: 7687 + components: + - type: Transform + pos: 10.5,-6.5 + parent: 2 + - uid: 7688 + components: + - type: Transform + pos: 10.5,-6.5 + parent: 2 + - uid: 7689 + components: + - type: Transform + pos: -25.5,-8.5 + parent: 2 + - uid: 7690 + components: + - type: Transform + pos: -24.5,-8.5 + parent: 2 + - uid: 7691 + components: + - type: Transform + pos: -23.5,-8.5 + parent: 2 + - uid: 7692 + components: + - type: Transform + pos: -22.5,-8.5 + parent: 2 + - uid: 7693 + components: + - type: Transform + pos: -21.5,-8.5 + parent: 2 + - uid: 7694 + components: + - type: Transform + pos: -20.5,-8.5 + parent: 2 + - uid: 7695 + components: + - type: Transform + pos: -20.5,-7.5 + parent: 2 + - uid: 7696 + components: + - type: Transform + pos: -20.5,-6.5 + parent: 2 + - uid: 7697 + components: + - type: Transform + pos: -20.5,-5.5 + parent: 2 + - uid: 7698 + components: + - type: Transform + pos: -20.5,-4.5 + parent: 2 + - uid: 7699 + components: + - type: Transform + pos: -20.5,-3.5 + parent: 2 + - uid: 7700 + components: + - type: Transform + pos: -20.5,-2.5 + parent: 2 + - uid: 7701 + components: + - type: Transform + pos: -20.5,-1.5 + parent: 2 + - uid: 7702 + components: + - type: Transform + pos: -26.5,-8.5 + parent: 2 + - uid: 7703 + components: + - type: Transform + pos: -27.5,-8.5 + parent: 2 + - uid: 7704 + components: + - type: Transform + pos: -28.5,-8.5 + parent: 2 + - uid: 7705 + components: + - type: Transform + pos: -29.5,-8.5 + parent: 2 + - uid: 7706 + components: + - type: Transform + pos: -30.5,-8.5 + parent: 2 + - uid: 7707 + components: + - type: Transform + pos: -31.5,-8.5 + parent: 2 + - uid: 7708 + components: + - type: Transform + pos: -20.5,3.5 + parent: 2 + - uid: 7709 + components: + - type: Transform + pos: -20.5,4.5 + parent: 2 + - uid: 7710 + components: + - type: Transform + pos: -20.5,5.5 + parent: 2 + - uid: 7711 + components: + - type: Transform + pos: -20.5,6.5 + parent: 2 + - uid: 7712 + components: + - type: Transform + pos: -20.5,7.5 + parent: 2 + - uid: 7713 + components: + - type: Transform + pos: -20.5,8.5 + parent: 2 + - uid: 7714 + components: + - type: Transform + pos: -20.5,9.5 + parent: 2 + - uid: 7715 + components: + - type: Transform + pos: -20.5,10.5 + parent: 2 + - uid: 7716 + components: + - type: Transform + pos: -20.5,11.5 + parent: 2 + - uid: 7717 + components: + - type: Transform + pos: -20.5,12.5 + parent: 2 + - uid: 7718 + components: + - type: Transform + pos: -20.5,13.5 + parent: 2 + - uid: 7719 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -40.5,13.5 + parent: 2 + - uid: 7720 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -40.5,14.5 + parent: 2 + - uid: 7721 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -41.5,14.5 + parent: 2 + - uid: 7722 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -42.5,14.5 + parent: 2 + - uid: 7723 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -43.5,14.5 + parent: 2 + - uid: 7724 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -44.5,14.5 + parent: 2 + - uid: 7725 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -44.5,15.5 + parent: 2 + - uid: 7726 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -43.5,15.5 + parent: 2 + - uid: 7727 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -42.5,15.5 + parent: 2 + - uid: 7728 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -41.5,15.5 + parent: 2 + - uid: 7729 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -49.5,-53.5 + parent: 2 + - uid: 7730 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -49.5,-51.5 + parent: 2 + - uid: 7731 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -45.5,-50.5 + parent: 2 + - uid: 7732 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -54.5,-53.5 + parent: 2 + - uid: 7733 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -54.5,-51.5 + parent: 2 + - uid: 7734 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -54.5,-49.5 + parent: 2 + - uid: 7735 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -54.5,-55.5 + parent: 2 + - uid: 7736 + components: + - type: Transform + pos: -59.5,-53.5 + parent: 2 + - uid: 7737 + components: + - type: Transform + pos: -59.5,-51.5 + parent: 2 + - uid: 7738 + components: + - type: Transform + pos: -59.5,-51.5 + parent: 2 + - uid: 7739 + components: + - type: Transform + pos: -69.5,-53.5 + parent: 2 + - uid: 7740 + components: + - type: Transform + pos: -64.5,-51.5 + parent: 2 + - uid: 7741 + components: + - type: Transform + pos: -64.5,-53.5 + parent: 2 + - uid: 7742 + components: + - type: Transform + pos: -64.5,-56.5 + parent: 2 + - uid: 7743 + components: + - type: Transform + pos: -69.5,-51.5 + parent: 2 + - uid: 7744 + components: + - type: Transform + pos: -69.5,-49.5 + parent: 2 + - uid: 7745 + components: + - type: Transform + pos: -69.5,-55.5 + parent: 2 + - uid: 7746 + components: + - type: Transform + pos: -74.5,-53.5 + parent: 2 + - uid: 7747 + components: + - type: Transform + pos: -74.5,-51.5 + parent: 2 + - uid: 7748 + components: + - type: Transform + pos: -71.5,-51.5 + parent: 2 + - uid: 7749 + components: + - type: Transform + pos: -87.5,-52.5 + parent: 2 + - uid: 7750 + components: + - type: Transform + pos: -77.5,-49.5 + parent: 2 + - uid: 7751 + components: + - type: Transform + pos: -83.5,-49.5 + parent: 2 + - uid: 7752 + components: + - type: Transform + pos: -83.5,-55.5 + parent: 2 + - uid: 7753 + components: + - type: Transform + pos: -77.5,-55.5 + parent: 2 + - uid: 7754 + components: + - type: Transform + pos: -80.5,-59.5 + parent: 2 + - uid: 7755 + components: + - type: Transform + pos: -80.5,-45.5 + parent: 2 + - uid: 7756 + components: + - type: Transform + pos: -20.5,-38.5 + parent: 2 + - uid: 7757 + components: + - type: Transform + pos: -20.5,-37.5 + parent: 2 + - uid: 7758 + components: + - type: Transform + pos: -31.5,-43.5 + parent: 2 + - uid: 7759 + components: + - type: Transform + pos: -21.5,-43.5 + parent: 2 + - uid: 7760 + components: + - type: Transform + pos: -20.5,-43.5 + parent: 2 + - uid: 7761 + components: + - type: Transform + pos: -20.5,-42.5 + parent: 2 + - uid: 7762 + components: + - type: Transform + pos: -20.5,-41.5 + parent: 2 + - uid: 7763 + components: + - type: Transform + pos: -20.5,-40.5 + parent: 2 + - uid: 7764 + components: + - type: Transform + pos: -21.5,-44.5 + parent: 2 + - uid: 7765 + components: + - type: Transform + pos: -21.5,-45.5 + parent: 2 + - uid: 7766 + components: + - type: Transform + pos: -21.5,-46.5 + parent: 2 + - uid: 7767 + components: + - type: Transform + pos: -21.5,-47.5 + parent: 2 + - uid: 7768 + components: + - type: Transform + pos: -21.5,-48.5 + parent: 2 + - uid: 7769 + components: + - type: Transform + pos: -21.5,-49.5 + parent: 2 + - uid: 7770 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -39.5,-57.5 + parent: 2 + - uid: 7771 + components: + - type: Transform + pos: -21.5,-50.5 + parent: 2 + - uid: 7772 + components: + - type: Transform + pos: -21.5,-51.5 + parent: 2 + - uid: 7773 + components: + - type: Transform + pos: -20.5,-51.5 + parent: 2 + - uid: 7774 + components: + - type: Transform + pos: -19.5,-51.5 + parent: 2 + - uid: 7775 + components: + - type: Transform + pos: -18.5,-51.5 + parent: 2 + - uid: 7776 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -39.5,-54.5 + parent: 2 + - uid: 7777 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -39.5,-55.5 + parent: 2 + - uid: 7778 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -39.5,-56.5 + parent: 2 + - uid: 7779 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -38.5,-56.5 + parent: 2 + - uid: 7780 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -39.5,-58.5 + parent: 2 + - uid: 7781 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -39.5,-59.5 + parent: 2 + - uid: 7782 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -39.5,-60.5 + parent: 2 + - uid: 7783 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -39.5,-61.5 + parent: 2 + - uid: 7784 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -39.5,-62.5 + parent: 2 + - uid: 7785 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -39.5,-63.5 + parent: 2 + - uid: 7786 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -38.5,-57.5 + parent: 2 + - uid: 7787 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -38.5,-58.5 + parent: 2 + - uid: 7788 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -38.5,-59.5 + parent: 2 + - uid: 7789 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -38.5,-60.5 + parent: 2 + - uid: 7790 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -38.5,-61.5 + parent: 2 + - uid: 7791 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -38.5,-62.5 + parent: 2 + - uid: 7792 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -38.5,-63.5 + parent: 2 + - uid: 7793 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -40.5,-61.5 + parent: 2 + - uid: 7794 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -41.5,-61.5 + parent: 2 + - uid: 7795 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -42.5,-61.5 + parent: 2 + - uid: 7796 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -43.5,-61.5 + parent: 2 + - uid: 7797 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -44.5,-61.5 + parent: 2 + - uid: 7798 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -45.5,-61.5 + parent: 2 + - uid: 7799 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -46.5,-61.5 + parent: 2 + - uid: 7800 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -47.5,-61.5 + parent: 2 + - uid: 7801 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -48.5,-61.5 + parent: 2 + - uid: 7802 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -49.5,-61.5 + parent: 2 + - uid: 7803 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -50.5,-61.5 + parent: 2 + - uid: 7804 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -51.5,-61.5 + parent: 2 + - uid: 7805 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -52.5,-61.5 + parent: 2 + - uid: 7806 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -53.5,-61.5 + parent: 2 + - uid: 7807 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -54.5,-61.5 + parent: 2 + - uid: 7808 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -55.5,-61.5 + parent: 2 + - uid: 7809 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -56.5,-61.5 + parent: 2 + - uid: 7810 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -42.5,-60.5 + parent: 2 + - uid: 7811 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -42.5,-59.5 + parent: 2 + - uid: 7812 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -42.5,-58.5 + parent: 2 + - uid: 7813 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -42.5,-57.5 + parent: 2 + - uid: 7814 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -42.5,-56.5 + parent: 2 + - uid: 7815 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -42.5,-55.5 + parent: 2 + - uid: 7816 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -50.5,-62.5 + parent: 2 + - uid: 7817 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -42.5,-62.5 + parent: 2 + - uid: 7818 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -42.5,-63.5 + parent: 2 + - uid: 7819 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -42.5,-64.5 + parent: 2 + - uid: 7820 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -42.5,-65.5 + parent: 2 + - uid: 7821 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -42.5,-66.5 + parent: 2 + - uid: 7822 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -42.5,-67.5 + parent: 2 + - uid: 7823 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -46.5,-62.5 + parent: 2 + - uid: 7824 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -46.5,-63.5 + parent: 2 + - uid: 7825 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -46.5,-64.5 + parent: 2 + - uid: 7826 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -46.5,-65.5 + parent: 2 + - uid: 7827 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -46.5,-66.5 + parent: 2 + - uid: 7828 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -50.5,-63.5 + parent: 2 + - uid: 7829 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -50.5,-64.5 + parent: 2 + - uid: 7830 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -50.5,-65.5 + parent: 2 + - uid: 7831 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -54.5,-62.5 + parent: 2 + - uid: 7832 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -54.5,-63.5 + parent: 2 + - uid: 7833 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -54.5,-64.5 + parent: 2 + - uid: 7834 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -54.5,-65.5 + parent: 2 + - uid: 7835 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -54.5,-60.5 + parent: 2 + - uid: 7836 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -54.5,-59.5 + parent: 2 + - uid: 7837 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -54.5,-58.5 + parent: 2 + - uid: 7838 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -54.5,-57.5 + parent: 2 + - uid: 7839 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -50.5,-57.5 + parent: 2 + - uid: 7840 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -50.5,-58.5 + parent: 2 + - uid: 7841 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -50.5,-59.5 + parent: 2 + - uid: 7842 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -50.5,-60.5 + parent: 2 + - uid: 7843 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -46.5,-60.5 + parent: 2 + - uid: 7844 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -46.5,-59.5 + parent: 2 + - uid: 7845 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -46.5,-58.5 + parent: 2 + - uid: 7846 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -46.5,-57.5 + parent: 2 + - uid: 7847 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -46.5,-56.5 + parent: 2 + - uid: 7848 + components: + - type: Transform + pos: -48.5,15.5 + parent: 2 + - uid: 7849 + components: + - type: Transform + pos: -48.5,14.5 + parent: 2 + - uid: 7850 + components: + - type: Transform + pos: -48.5,13.5 + parent: 2 + - uid: 7851 + components: + - type: Transform + pos: -48.5,12.5 + parent: 2 + - uid: 7852 + components: + - type: Transform + pos: -46.5,11.5 + parent: 2 + - uid: 7853 + components: + - type: Transform + pos: -47.5,11.5 + parent: 2 + - uid: 7854 + components: + - type: Transform + pos: -48.5,11.5 + parent: 2 + - uid: 7855 + components: + - type: Transform + pos: -66.5,23.5 + parent: 2 + - uid: 7856 + components: + - type: Transform + pos: -67.5,23.5 + parent: 2 + - uid: 7857 + components: + - type: Transform + pos: -68.5,23.5 + parent: 2 + - uid: 7858 + components: + - type: Transform + pos: -69.5,23.5 + parent: 2 + - uid: 7859 + components: + - type: Transform + pos: -71.5,23.5 + parent: 2 + - uid: 7860 + components: + - type: Transform + pos: -70.5,23.5 + parent: 2 + - uid: 7861 + components: + - type: Transform + pos: -65.5,23.5 + parent: 2 + - uid: 7862 + components: + - type: Transform + pos: -47.5,17.5 + parent: 2 + - uid: 7863 + components: + - type: Transform + pos: -48.5,17.5 + parent: 2 + - uid: 7864 + components: + - type: Transform + pos: -49.5,17.5 + parent: 2 + - uid: 7865 + components: + - type: Transform + pos: -48.5,16.5 + parent: 2 + - uid: 7866 + components: + - type: Transform + pos: -72.5,23.5 + parent: 2 + - uid: 7867 + components: + - type: Transform + pos: -17.5,-51.5 + parent: 2 + - uid: 7868 + components: + - type: Transform + pos: -16.5,-51.5 + parent: 2 + - uid: 7869 + components: + - type: Transform + pos: -15.5,-51.5 + parent: 2 + - uid: 7870 + components: + - type: Transform + pos: -9.5,-52.5 + parent: 2 + - uid: 7871 + components: + - type: Transform + pos: -8.5,-52.5 + parent: 2 + - uid: 7872 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -7.5,-52.5 + parent: 2 + - uid: 7873 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -5.5,-52.5 + parent: 2 + - uid: 7874 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -5.5,-51.5 + parent: 2 + - uid: 7875 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -5.5,-48.5 + parent: 2 + - uid: 7876 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -5.5,-49.5 + parent: 2 + - uid: 7877 + components: + - type: Transform + pos: -4.5,-47.5 + parent: 2 + - uid: 7878 + components: + - type: Transform + pos: -4.5,-46.5 + parent: 2 + - uid: 7879 + components: + - type: Transform + pos: -4.5,-45.5 + parent: 2 + - uid: 7880 + components: + - type: Transform + pos: -3.5,-46.5 + parent: 2 + - uid: 7881 + components: + - type: Transform + pos: -4.5,-43.5 + parent: 2 + - uid: 7882 + components: + - type: Transform + pos: -4.5,-42.5 + parent: 2 + - uid: 7883 + components: + - type: Transform + pos: -3.5,-42.5 + parent: 2 + - uid: 7884 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 18.5,-3.5 + parent: 2 + - uid: 7885 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 19.5,-3.5 + parent: 2 + - uid: 7886 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 20.5,-3.5 + parent: 2 + - uid: 7887 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 21.5,-3.5 + parent: 2 + - uid: 7888 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 22.5,-3.5 + parent: 2 + - uid: 7889 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 23.5,-3.5 + parent: 2 + - uid: 7890 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 23.5,-2.5 + parent: 2 + - uid: 7891 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 23.5,-1.5 + parent: 2 + - uid: 7892 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 61.5,24.5 + parent: 2 + - uid: 7893 + components: + - type: Transform + pos: 42.5,20.5 + parent: 2 + - uid: 7894 + components: + - type: Transform + pos: 42.5,21.5 + parent: 2 + - uid: 7895 + components: + - type: Transform + pos: 42.5,22.5 + parent: 2 + - uid: 7896 + components: + - type: Transform + pos: 43.5,22.5 + parent: 2 + - uid: 7897 + components: + - type: Transform + pos: 43.5,23.5 + parent: 2 + - uid: 7898 + components: + - type: Transform + pos: 43.5,24.5 + parent: 2 + - uid: 7899 + components: + - type: Transform + pos: 43.5,25.5 + parent: 2 + - uid: 7900 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 45.5,16.5 + parent: 2 + - uid: 7901 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 46.5,16.5 + parent: 2 + - uid: 7902 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 47.5,16.5 + parent: 2 + - uid: 7903 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 48.5,16.5 + parent: 2 + - uid: 7904 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 49.5,16.5 + parent: 2 + - uid: 7905 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 50.5,16.5 + parent: 2 + - uid: 7906 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 50.5,17.5 + parent: 2 + - uid: 7907 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 50.5,18.5 + parent: 2 + - uid: 7908 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 50.5,19.5 + parent: 2 + - uid: 7909 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 50.5,20.5 + parent: 2 + - uid: 7910 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 50.5,21.5 + parent: 2 + - uid: 7911 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 50.5,22.5 + parent: 2 + - uid: 7912 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 50.5,23.5 + parent: 2 + - uid: 7913 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 51.5,23.5 + parent: 2 + - uid: 7914 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 52.5,23.5 + parent: 2 + - uid: 7915 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 53.5,23.5 + parent: 2 + - uid: 7916 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 54.5,23.5 + parent: 2 + - uid: 7917 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 55.5,23.5 + parent: 2 + - uid: 7918 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 56.5,23.5 + parent: 2 + - uid: 7919 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 57.5,23.5 + parent: 2 + - uid: 7920 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 58.5,23.5 + parent: 2 + - uid: 7921 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 59.5,23.5 + parent: 2 + - uid: 7922 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 60.5,23.5 + parent: 2 + - uid: 7923 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 62.5,23.5 + parent: 2 + - uid: 7924 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 63.5,23.5 + parent: 2 + - uid: 7925 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 61.5,22.5 + parent: 2 + - uid: 7926 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 61.5,21.5 + parent: 2 + - uid: 7927 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 61.5,20.5 + parent: 2 + - uid: 7928 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 61.5,19.5 + parent: 2 + - uid: 7929 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 61.5,18.5 + parent: 2 + - uid: 7930 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 61.5,17.5 + parent: 2 + - uid: 7931 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 61.5,25.5 + parent: 2 + - uid: 7932 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 61.5,26.5 + parent: 2 + - uid: 7933 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 61.5,27.5 + parent: 2 + - uid: 7934 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 61.5,28.5 + parent: 2 + - uid: 7935 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 61.5,29.5 + parent: 2 + - uid: 7936 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 57.5,24.5 + parent: 2 + - uid: 7937 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 57.5,22.5 + parent: 2 + - uid: 7938 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 57.5,21.5 + parent: 2 + - uid: 7939 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 57.5,20.5 + parent: 2 + - uid: 7940 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 57.5,19.5 + parent: 2 + - uid: 7941 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 57.5,18.5 + parent: 2 + - uid: 7942 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 57.5,17.5 + parent: 2 + - uid: 7943 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 64.5,23.5 + parent: 2 + - uid: 7944 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 66.5,23.5 + parent: 2 + - uid: 7945 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 67.5,23.5 + parent: 2 + - uid: 7946 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 68.5,23.5 + parent: 2 + - uid: 7947 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 69.5,23.5 + parent: 2 + - uid: 7948 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 65.5,24.5 + parent: 2 + - uid: 7949 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 65.5,25.5 + parent: 2 + - uid: 7950 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 65.5,26.5 + parent: 2 + - uid: 7951 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 65.5,27.5 + parent: 2 + - uid: 7952 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 65.5,28.5 + parent: 2 + - uid: 7953 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 65.5,22.5 + parent: 2 + - uid: 7954 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 65.5,21.5 + parent: 2 + - uid: 7955 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 65.5,20.5 + parent: 2 + - uid: 7956 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 65.5,19.5 + parent: 2 + - uid: 7957 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 65.5,18.5 + parent: 2 + - uid: 7958 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 69.5,22.5 + parent: 2 + - uid: 7959 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 69.5,21.5 + parent: 2 + - uid: 7960 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 69.5,20.5 + parent: 2 + - uid: 7961 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 69.5,19.5 + parent: 2 + - uid: 7962 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 69.5,24.5 + parent: 2 + - uid: 7963 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 69.5,25.5 + parent: 2 + - uid: 7964 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 69.5,26.5 + parent: 2 + - uid: 7965 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 69.5,27.5 + parent: 2 + - uid: 7966 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 70.5,23.5 + parent: 2 + - uid: 7967 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 72.5,23.5 + parent: 2 + - uid: 7968 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 73.5,23.5 + parent: 2 + - uid: 7969 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 74.5,23.5 + parent: 2 + - uid: 7970 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 75.5,23.5 + parent: 2 + - uid: 7971 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 73.5,24.5 + parent: 2 + - uid: 7972 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 73.5,25.5 + parent: 2 + - uid: 7973 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 73.5,26.5 + parent: 2 + - uid: 7974 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 73.5,27.5 + parent: 2 + - uid: 7975 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 73.5,22.5 + parent: 2 + - uid: 7976 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 73.5,21.5 + parent: 2 + - uid: 7977 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 73.5,20.5 + parent: 2 + - uid: 7978 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 73.5,19.5 + parent: 2 + - uid: 7979 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 57.5,25.5 + parent: 2 + - uid: 7980 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 57.5,26.5 + parent: 2 + - uid: 7981 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 57.5,27.5 + parent: 2 + - uid: 7982 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 57.5,28.5 + parent: 2 + - uid: 7983 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 57.5,29.5 + parent: 2 + - uid: 7984 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 57.5,30.5 + parent: 2 + - uid: 7985 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 57.5,31.5 + parent: 2 + - uid: 7986 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 57.5,32.5 + parent: 2 + - uid: 7987 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 61.5,23.5 + parent: 2 + - uid: 7988 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 65.5,23.5 + parent: 2 + - uid: 7989 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 71.5,23.5 + parent: 2 + - uid: 7990 + components: + - type: Transform + pos: 13.5,17.5 + parent: 2 + - uid: 7991 + components: + - type: Transform + pos: 13.5,18.5 + parent: 2 + - uid: 7992 + components: + - type: Transform + pos: 13.5,19.5 + parent: 2 + - uid: 7993 + components: + - type: Transform + pos: 13.5,20.5 + parent: 2 + - uid: 7994 + components: + - type: Transform + pos: 13.5,21.5 + parent: 2 + - uid: 7995 + components: + - type: Transform + pos: 13.5,22.5 + parent: 2 + - uid: 7996 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 15.5,26.5 + parent: 2 + - uid: 7997 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 16.5,26.5 + parent: 2 + - uid: 7998 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 17.5,26.5 + parent: 2 + - uid: 7999 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 18.5,26.5 + parent: 2 + - uid: 8000 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 19.5,26.5 + parent: 2 + - uid: 8001 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 20.5,26.5 + parent: 2 + - uid: 8002 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 21.5,26.5 + parent: 2 + - uid: 8003 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 22.5,26.5 + parent: 2 + - uid: 8004 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 23.5,26.5 + parent: 2 + - uid: 8005 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 24.5,26.5 + parent: 2 + - uid: 8006 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 25.5,26.5 + parent: 2 + - uid: 8007 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 26.5,26.5 + parent: 2 + - uid: 8008 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 27.5,26.5 + parent: 2 + - uid: 8009 + components: + - type: Transform + pos: 14.5,29.5 + parent: 2 + - uid: 8010 + components: + - type: Transform + pos: 12.5,31.5 + parent: 2 + - uid: 8011 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 23.5,47.5 + parent: 2 + - uid: 8012 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 25.5,49.5 + parent: 2 + - uid: 8013 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 21.5,50.5 + parent: 2 + - uid: 8014 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 19.5,50.5 + parent: 2 + - uid: 8015 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 16.5,46.5 + parent: 2 + - uid: 8016 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 15.5,46.5 + parent: 2 + - uid: 8017 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 15.5,47.5 + parent: 2 + - uid: 8018 + components: + - type: Transform + pos: -5.5,34.5 + parent: 2 + - uid: 8019 + components: + - type: Transform + pos: -5.5,33.5 + parent: 2 + - uid: 8020 + components: + - type: Transform + pos: -5.5,32.5 + parent: 2 + - uid: 8021 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -11.5,40.5 + parent: 2 + - uid: 8022 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -11.5,39.5 + parent: 2 + - uid: 8023 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -11.5,38.5 + parent: 2 + - uid: 8024 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -18.5,40.5 + parent: 2 + - uid: 8025 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -18.5,39.5 + parent: 2 + - uid: 8026 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -18.5,38.5 + parent: 2 + - uid: 8027 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -13.5,43.5 + parent: 2 + - uid: 8028 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 10.5,39.5 + parent: 2 + - uid: 8029 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 10.5,43.5 + parent: 2 + - uid: 8030 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 11.5,36.5 + parent: 2 + - uid: 8031 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 10.5,32.5 + parent: 2 + - uid: 8032 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 10.5,30.5 + parent: 2 + - uid: 8033 + components: + - type: Transform + pos: -1.5,42.5 + parent: 2 + - uid: 8034 + components: + - type: Transform + pos: -2.5,42.5 + parent: 2 + - uid: 8035 + components: + - type: Transform + pos: -3.5,42.5 + parent: 2 + - uid: 8036 + components: + - type: Transform + pos: -4.5,42.5 + parent: 2 + - uid: 8037 + components: + - type: Transform + pos: -5.5,42.5 + parent: 2 + - uid: 8038 + components: + - type: Transform + pos: -6.5,42.5 + parent: 2 + - uid: 8039 + components: + - type: Transform + pos: -6.5,43.5 + parent: 2 + - uid: 8040 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -7.5,45.5 + parent: 2 + - uid: 8041 + components: + - type: Transform + pos: -7.5,45.5 + parent: 2 + - uid: 8042 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -10.5,45.5 + parent: 2 + - uid: 8043 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -10.5,48.5 + parent: 2 + - uid: 8044 + components: + - type: Transform + pos: -46.5,17.5 + parent: 2 + - uid: 8045 + components: + - type: Transform + pos: -70.5,22.5 + parent: 2 + - uid: 8046 + components: + - type: Transform + pos: -66.5,24.5 + parent: 2 + - uid: 8047 + components: + - type: Transform + pos: -66.5,25.5 + parent: 2 + - uid: 8048 + components: + - type: Transform + pos: -66.5,26.5 + parent: 2 + - uid: 8049 + components: + - type: Transform + pos: -66.5,27.5 + parent: 2 + - uid: 8050 + components: + - type: Transform + pos: -70.5,24.5 + parent: 2 + - uid: 8051 + components: + - type: Transform + pos: -70.5,25.5 + parent: 2 + - uid: 8052 + components: + - type: Transform + pos: -70.5,26.5 + parent: 2 + - uid: 8053 + components: + - type: Transform + pos: -70.5,27.5 + parent: 2 + - uid: 8054 + components: + - type: Transform + pos: -62.5,28.5 + parent: 2 + - uid: 8055 + components: + - type: Transform + pos: -62.5,27.5 + parent: 2 + - uid: 8056 + components: + - type: Transform + pos: -62.5,26.5 + parent: 2 + - uid: 8057 + components: + - type: Transform + pos: -61.5,26.5 + parent: 2 + - uid: 8058 + components: + - type: Transform + pos: -59.5,26.5 + parent: 2 + - uid: 8059 + components: + - type: Transform + pos: -57.5,27.5 + parent: 2 + - uid: 8060 + components: + - type: Transform + pos: -58.5,28.5 + parent: 2 + - uid: 8061 + components: + - type: Transform + pos: -58.5,29.5 + parent: 2 + - uid: 8062 + components: + - type: Transform + pos: -54.5,28.5 + parent: 2 + - uid: 8063 + components: + - type: Transform + pos: -54.5,29.5 + parent: 2 + - uid: 8064 + components: + - type: Transform + pos: -53.5,29.5 + parent: 2 + - uid: 8065 + components: + - type: Transform + pos: -52.5,29.5 + parent: 2 + - uid: 8066 + components: + - type: Transform + pos: -54.5,30.5 + parent: 2 + - uid: 8067 + components: + - type: Transform + pos: -54.5,31.5 + parent: 2 + - uid: 8068 + components: + - type: Transform + pos: -54.5,32.5 + parent: 2 + - uid: 8069 + components: + - type: Transform + pos: -70.5,21.5 + parent: 2 + - uid: 8070 + components: + - type: Transform + pos: -70.5,20.5 + parent: 2 + - uid: 8071 + components: + - type: Transform + pos: -70.5,19.5 + parent: 2 + - uid: 8072 + components: + - type: Transform + pos: -66.5,21.5 + parent: 2 + - uid: 8073 + components: + - type: Transform + pos: -66.5,20.5 + parent: 2 + - uid: 8074 + components: + - type: Transform + pos: -66.5,19.5 + parent: 2 + - uid: 8075 + components: + - type: Transform + pos: -66.5,22.5 + parent: 2 + - uid: 8076 + components: + - type: Transform + pos: -65.5,21.5 + parent: 2 + - uid: 8077 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -44.5,39.5 + parent: 2 + - uid: 8078 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -47.5,40.5 + parent: 2 + - uid: 8079 + components: + - type: Transform + pos: 12.5,53.5 + parent: 2 + - uid: 8080 + components: + - type: Transform + pos: 12.5,54.5 + parent: 2 + - uid: 8081 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 7.5,73.5 + parent: 2 + - uid: 8082 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 7.5,74.5 + parent: 2 + - uid: 8083 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 7.5,75.5 + parent: 2 + - uid: 8084 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 7.5,76.5 + parent: 2 + - uid: 8085 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 7.5,77.5 + parent: 2 + - uid: 8086 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 7.5,78.5 + parent: 2 + - uid: 8087 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 7.5,79.5 + parent: 2 + - uid: 8088 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 7.5,80.5 + parent: 2 + - uid: 8089 + components: + - type: Transform + pos: 7.5,81.5 + parent: 2 + - uid: 8090 + components: + - type: Transform + pos: 7.5,82.5 + parent: 2 + - uid: 8091 + components: + - type: Transform + pos: 7.5,83.5 + parent: 2 + - uid: 8092 + components: + - type: Transform + pos: 7.5,84.5 + parent: 2 + - uid: 8093 + components: + - type: Transform + pos: 6.5,84.5 + parent: 2 + - uid: 8094 + components: + - type: Transform + pos: 5.5,84.5 + parent: 2 + - uid: 8095 + components: + - type: Transform + pos: 4.5,84.5 + parent: 2 + - uid: 8096 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -10.5,76.5 + parent: 2 + - uid: 8097 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -10.5,77.5 + parent: 2 + - uid: 8098 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -10.5,78.5 + parent: 2 + - uid: 8099 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -11.5,76.5 + parent: 2 + - uid: 8100 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -11.5,77.5 + parent: 2 + - uid: 8101 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -11.5,78.5 + parent: 2 + - uid: 8102 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 35.5,-26.5 + parent: 2 + - uid: 8103 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 35.5,-27.5 + parent: 2 + - uid: 8104 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 36.5,-31.5 + parent: 2 + - uid: 8105 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 37.5,-31.5 + parent: 2 + - uid: 8106 + components: + - type: Transform + pos: 9.5,-35.5 + parent: 2 + - uid: 8107 + components: + - type: Transform + pos: 10.5,-35.5 + parent: 2 + - uid: 8108 + components: + - type: Transform + pos: 10.5,-34.5 + parent: 2 + - uid: 8109 + components: + - type: Transform + pos: 11.5,-34.5 + parent: 2 + - uid: 8110 + components: + - type: Transform + pos: 12.5,-34.5 + parent: 2 + - uid: 8111 + components: + - type: Transform + pos: 13.5,-34.5 + parent: 2 + - uid: 8112 + components: + - type: Transform + pos: 14.5,-34.5 + parent: 2 + - uid: 8113 + components: + - type: Transform + pos: 15.5,-34.5 + parent: 2 + - uid: 8114 + components: + - type: Transform + pos: 16.5,-34.5 + parent: 2 + - uid: 8115 + components: + - type: Transform + pos: 17.5,-34.5 + parent: 2 + - uid: 8116 + components: + - type: Transform + pos: 18.5,-34.5 + parent: 2 + - uid: 8117 + components: + - type: Transform + pos: 19.5,-34.5 + parent: 2 + - uid: 8118 + components: + - type: Transform + pos: 20.5,-34.5 + parent: 2 + - uid: 8119 + components: + - type: Transform + pos: 21.5,-34.5 + parent: 2 + - uid: 8120 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 30.5,-38.5 + parent: 2 + - uid: 8121 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 31.5,-37.5 + parent: 2 + - uid: 8122 + components: + - type: Transform + pos: 27.5,-36.5 + parent: 2 + - uid: 8123 + components: + - type: Transform + pos: 27.5,-35.5 + parent: 2 + - uid: 8124 + components: + - type: Transform + pos: 27.5,-34.5 + parent: 2 + - uid: 8125 + components: + - type: Transform + pos: 27.5,-33.5 + parent: 2 + - uid: 8126 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -13.5,-51.5 + parent: 2 + - uid: 8127 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -13.5,-52.5 + parent: 2 + - uid: 8128 + components: + - type: Transform + pos: 46.5,-37.5 + parent: 2 + - uid: 8129 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -16.5,-65.5 + parent: 2 + - uid: 8130 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -16.5,-66.5 + parent: 2 + - uid: 8131 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -16.5,-67.5 + parent: 2 + - uid: 8132 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -16.5,-68.5 + parent: 2 + - uid: 8133 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -16.5,-69.5 + parent: 2 + - uid: 8134 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -16.5,-70.5 + parent: 2 + - uid: 8135 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -16.5,-71.5 + parent: 2 + - uid: 8136 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -15.5,-71.5 + parent: 2 + - uid: 8137 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -14.5,-71.5 + parent: 2 + - uid: 8138 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -13.5,-71.5 + parent: 2 + - uid: 8139 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -10.5,-71.5 + parent: 2 + - uid: 8140 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -9.5,-71.5 + parent: 2 + - uid: 8141 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -14.5,-63.5 + parent: 2 + - uid: 8142 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -15.5,-63.5 + parent: 2 + - uid: 8143 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -14.5,-70.5 + parent: 2 + - uid: 8144 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -15.5,-67.5 + parent: 2 + - uid: 8145 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -14.5,-65.5 + parent: 2 + - uid: 8146 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -14.5,-64.5 + parent: 2 + - uid: 8147 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -14.5,-66.5 + parent: 2 + - uid: 8148 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -14.5,-68.5 + parent: 2 + - uid: 8149 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -14.5,-69.5 + parent: 2 + - uid: 8150 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -14.5,-67.5 + parent: 2 + - uid: 8151 + components: + - type: Transform + pos: 20.5,-53.5 + parent: 2 + - uid: 8152 + components: + - type: Transform + pos: 20.5,-54.5 + parent: 2 + - uid: 8153 + components: + - type: Transform + pos: 20.5,-56.5 + parent: 2 + - uid: 8154 + components: + - type: Transform + pos: 20.5,-57.5 + parent: 2 + - uid: 8155 + components: + - type: Transform + pos: 20.5,-58.5 + parent: 2 + - uid: 8156 + components: + - type: Transform + pos: 20.5,-59.5 + parent: 2 + - uid: 8157 + components: + - type: Transform + pos: 20.5,-60.5 + parent: 2 + - uid: 8158 + components: + - type: Transform + pos: 20.5,-61.5 + parent: 2 + - uid: 8159 + components: + - type: Transform + pos: 20.5,-62.5 + parent: 2 + - uid: 8160 + components: + - type: Transform + pos: 20.5,-63.5 + parent: 2 + - uid: 8161 + components: + - type: Transform + pos: 20.5,-64.5 + parent: 2 + - uid: 8162 + components: + - type: Transform + pos: 20.5,-55.5 + parent: 2 + - uid: 8163 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 40.5,-46.5 + parent: 2 + - uid: 8164 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 20.5,-65.5 + parent: 2 + - uid: 8165 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 20.5,-66.5 + parent: 2 + - uid: 8166 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 20.5,-67.5 + parent: 2 + - uid: 8167 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 20.5,-68.5 + parent: 2 + - uid: 8168 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 21.5,-68.5 + parent: 2 + - uid: 8169 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 22.5,-68.5 + parent: 2 + - uid: 8170 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 23.5,-68.5 + parent: 2 + - uid: 8171 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 24.5,-68.5 + parent: 2 + - uid: 8172 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 24.5,-67.5 + parent: 2 + - uid: 8173 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 24.5,-66.5 + parent: 2 + - uid: 8174 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 25.5,-66.5 + parent: 2 + - uid: 8175 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 26.5,-66.5 + parent: 2 + - uid: 8176 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 27.5,-66.5 + parent: 2 + - uid: 8177 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 28.5,-66.5 + parent: 2 + - uid: 8178 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 29.5,-66.5 + parent: 2 + - uid: 8179 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 30.5,-66.5 + parent: 2 + - uid: 8180 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 31.5,-66.5 + parent: 2 + - uid: 8181 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 32.5,-66.5 + parent: 2 + - uid: 8182 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 33.5,-66.5 + parent: 2 + - uid: 8183 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 34.5,-66.5 + parent: 2 + - uid: 8184 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 34.5,-65.5 + parent: 2 + - uid: 8185 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 34.5,-64.5 + parent: 2 + - uid: 8186 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 34.5,-63.5 + parent: 2 + - uid: 8187 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 34.5,-62.5 + parent: 2 + - uid: 8188 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 34.5,-61.5 + parent: 2 + - uid: 8189 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 34.5,-60.5 + parent: 2 + - uid: 8190 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 34.5,-59.5 + parent: 2 + - uid: 8191 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 34.5,-58.5 + parent: 2 + - uid: 8192 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 34.5,-57.5 + parent: 2 + - uid: 8193 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 34.5,-56.5 + parent: 2 + - uid: 8194 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 34.5,-55.5 + parent: 2 + - uid: 8195 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 34.5,-54.5 + parent: 2 + - uid: 8196 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 34.5,-53.5 + parent: 2 + - uid: 8197 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 44.5,-45.5 + parent: 2 + - uid: 8198 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 44.5,-46.5 + parent: 2 + - uid: 8199 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 43.5,-46.5 + parent: 2 + - uid: 8200 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 42.5,-46.5 + parent: 2 + - uid: 8201 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 42.5,-47.5 + parent: 2 + - uid: 8202 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 42.5,-48.5 + parent: 2 + - uid: 8203 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 41.5,-48.5 + parent: 2 + - uid: 8204 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 40.5,-48.5 + parent: 2 + - uid: 8205 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 40.5,-49.5 + parent: 2 + - uid: 8206 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 40.5,-50.5 + parent: 2 + - uid: 8207 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 40.5,-51.5 + parent: 2 + - uid: 8208 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 40.5,-52.5 + parent: 2 + - uid: 8209 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 40.5,-53.5 + parent: 2 + - uid: 8210 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 40.5,-54.5 + parent: 2 + - uid: 8211 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 40.5,-55.5 + parent: 2 + - uid: 8212 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 40.5,-56.5 + parent: 2 + - uid: 8213 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 40.5,-57.5 + parent: 2 + - uid: 8214 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 40.5,-58.5 + parent: 2 + - uid: 8215 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 40.5,-59.5 + parent: 2 + - uid: 8216 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 51.5,-61.5 + parent: 2 + - uid: 8217 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 43.5,-66.5 + parent: 2 + - uid: 8218 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 44.5,-66.5 + parent: 2 + - uid: 8219 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 45.5,-66.5 + parent: 2 + - uid: 8220 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 43.5,-63.5 + parent: 2 + - uid: 8221 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 43.5,-62.5 + parent: 2 + - uid: 8222 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 43.5,-61.5 + parent: 2 + - uid: 8223 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 43.5,-60.5 + parent: 2 + - uid: 8224 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 43.5,-59.5 + parent: 2 + - uid: 8225 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 43.5,-58.5 + parent: 2 + - uid: 8226 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 43.5,-57.5 + parent: 2 + - uid: 8227 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 43.5,-56.5 + parent: 2 + - uid: 8228 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 43.5,-55.5 + parent: 2 + - uid: 8229 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 43.5,-54.5 + parent: 2 + - uid: 8230 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 43.5,-53.5 + parent: 2 + - uid: 8231 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 43.5,-52.5 + parent: 2 + - uid: 8232 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 43.5,-51.5 + parent: 2 + - uid: 8233 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 47.5,-52.5 + parent: 2 + - uid: 8234 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 47.5,-53.5 + parent: 2 + - uid: 8235 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 47.5,-54.5 + parent: 2 + - uid: 8236 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 47.5,-55.5 + parent: 2 + - uid: 8237 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 47.5,-56.5 + parent: 2 + - uid: 8238 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 47.5,-58.5 + parent: 2 + - uid: 8239 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 47.5,-59.5 + parent: 2 + - uid: 8240 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 47.5,-60.5 + parent: 2 + - uid: 8241 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 47.5,-61.5 + parent: 2 + - uid: 8242 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 47.5,-62.5 + parent: 2 + - uid: 8243 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 51.5,-60.5 + parent: 2 + - uid: 8244 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 51.5,-59.5 + parent: 2 + - uid: 8245 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 51.5,-58.5 + parent: 2 + - uid: 8246 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 51.5,-56.5 + parent: 2 + - uid: 8247 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 51.5,-55.5 + parent: 2 + - uid: 8248 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 51.5,-54.5 + parent: 2 + - uid: 8249 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 51.5,-53.5 + parent: 2 + - uid: 8250 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 55.5,-53.5 + parent: 2 + - uid: 8251 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 55.5,-54.5 + parent: 2 + - uid: 8252 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 55.5,-55.5 + parent: 2 + - uid: 8253 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 55.5,-56.5 + parent: 2 + - uid: 8254 + components: + - type: Transform + pos: 47.5,-57.5 + parent: 2 + - uid: 8255 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 55.5,-58.5 + parent: 2 + - uid: 8256 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 55.5,-59.5 + parent: 2 + - uid: 8257 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 55.5,-60.5 + parent: 2 + - uid: 8258 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 55.5,-61.5 + parent: 2 + - uid: 8259 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 41.5,-57.5 + parent: 2 + - uid: 8260 + components: + - type: Transform + pos: 45.5,-57.5 + parent: 2 + - uid: 8261 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 57.5,-57.5 + parent: 2 + - uid: 8262 + components: + - type: Transform + pos: 49.5,-57.5 + parent: 2 + - uid: 8263 + components: + - type: Transform + pos: 56.5,-57.5 + parent: 2 + - uid: 8264 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 42.5,-57.5 + parent: 2 + - uid: 8265 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -9.5,-72.5 + parent: 2 + - uid: 8266 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -9.5,-73.5 + parent: 2 + - uid: 8267 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -9.5,-74.5 + parent: 2 + - uid: 8268 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -9.5,-75.5 + parent: 2 + - uid: 8269 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -9.5,-76.5 + parent: 2 + - uid: 8270 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -12.5,-74.5 + parent: 2 + - uid: 8271 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 10.5,-72.5 + parent: 2 + - uid: 8272 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 10.5,-73.5 + parent: 2 + - uid: 8273 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 10.5,-74.5 + parent: 2 + - uid: 8274 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 10.5,-75.5 + parent: 2 + - uid: 8275 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 10.5,-76.5 + parent: 2 + - uid: 8276 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 13.5,-74.5 + parent: 2 + - uid: 8277 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 14.5,-72.5 + parent: 2 + - uid: 8278 + components: + - type: Transform + pos: 8.5,-35.5 + parent: 2 + - uid: 8279 + components: + - type: Transform + pos: 7.5,-35.5 + parent: 2 + - uid: 8280 + components: + - type: Transform + pos: 6.5,-35.5 + parent: 2 + - uid: 8281 + components: + - type: Transform + pos: 5.5,-35.5 + parent: 2 + - uid: 8282 + components: + - type: Transform + pos: 4.5,-35.5 + parent: 2 + - uid: 8283 + components: + - type: Transform + pos: 3.5,-35.5 + parent: 2 + - uid: 8284 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 35.5,-31.5 + parent: 2 + - uid: 8285 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 35.5,-30.5 + parent: 2 + - uid: 8286 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 35.5,-29.5 + parent: 2 + - uid: 8287 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 35.5,-28.5 + parent: 2 + - uid: 8288 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 24.5,-69.5 + parent: 2 + - uid: 8289 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 24.5,-70.5 + parent: 2 + - uid: 8290 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 24.5,-71.5 + parent: 2 + - uid: 8291 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 24.5,-72.5 + parent: 2 + - uid: 8292 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 25.5,-72.5 + parent: 2 + - uid: 8293 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 26.5,-72.5 + parent: 2 + - uid: 8294 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 27.5,-72.5 + parent: 2 + - uid: 8295 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -11.5,-51.5 + parent: 2 + - uid: 8296 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 34.5,-34.5 + parent: 2 + - uid: 8297 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 34.5,-33.5 + parent: 2 + - uid: 8298 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 34.5,-32.5 + parent: 2 + - uid: 8299 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 34.5,-31.5 + parent: 2 + - uid: 8300 + components: + - type: Transform + pos: -20.5,14.5 + parent: 2 + - uid: 8301 + components: + - type: Transform + pos: -20.5,15.5 + parent: 2 + - uid: 8302 + components: + - type: Transform + pos: -18.5,-12.5 + parent: 2 + - uid: 8303 + components: + - type: Transform + pos: -20.5,-13.5 + parent: 2 + - uid: 8304 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -22.5,-43.5 + parent: 2 + - uid: 8305 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -23.5,-43.5 + parent: 2 + - uid: 8306 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -24.5,-43.5 + parent: 2 + - uid: 8307 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -25.5,-43.5 + parent: 2 + - uid: 8308 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -26.5,-43.5 + parent: 2 + - uid: 8309 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -27.5,-43.5 + parent: 2 + - uid: 8310 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -28.5,-43.5 + parent: 2 + - uid: 8311 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -29.5,-43.5 + parent: 2 + - uid: 8312 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -30.5,-43.5 + parent: 2 + - uid: 8313 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -12.5,-51.5 + parent: 2 + - uid: 8314 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -9.5,-51.5 + parent: 2 + - uid: 8315 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -10.5,-51.5 + parent: 2 + - uid: 8316 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -1.5,-17.5 + parent: 2 + - uid: 8317 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -2.5,-17.5 + parent: 2 + - uid: 8318 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -3.5,-17.5 + parent: 2 + - uid: 8319 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -4.5,-17.5 + parent: 2 + - uid: 8320 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -5.5,-17.5 + parent: 2 + - uid: 8321 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -6.5,-17.5 + parent: 2 + - uid: 8322 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -6.5,-16.5 + parent: 2 + - uid: 8323 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -7.5,-16.5 + parent: 2 + - uid: 8324 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -9.5,-16.5 + parent: 2 + - uid: 8325 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -11.5,-16.5 + parent: 2 + - uid: 8326 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -12.5,-16.5 + parent: 2 + - uid: 8327 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -13.5,-16.5 + parent: 2 + - uid: 8328 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -12.5,-13.5 + parent: 2 + - uid: 8329 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -13.5,-13.5 + parent: 2 + - uid: 8330 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -15.5,-13.5 + parent: 2 + - uid: 8331 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -15.5,-12.5 + parent: 2 + - uid: 8332 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -15.5,-10.5 + parent: 2 + - uid: 8333 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -15.5,-9.5 + parent: 2 + - uid: 8334 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -12.5,-9.5 + parent: 2 + - uid: 8335 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -11.5,-9.5 + parent: 2 + - uid: 8336 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -11.5,-11.5 + parent: 2 + - uid: 8337 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -17.5,-8.5 + parent: 2 + - uid: 8338 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -19.5,-8.5 + parent: 2 + - uid: 8339 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -15.5,-16.5 + parent: 2 + - uid: 8340 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 3.5,-16.5 + parent: 2 + - uid: 8341 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 4.5,-16.5 + parent: 2 + - uid: 8342 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 5.5,-16.5 + parent: 2 + - uid: 8343 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 7.5,-16.5 + parent: 2 + - uid: 8344 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 8.5,-16.5 + parent: 2 + - uid: 8345 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 9.5,-16.5 + parent: 2 + - uid: 8346 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 9.5,-14.5 + parent: 2 + - uid: 8347 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 9.5,-13.5 + parent: 2 + - uid: 8348 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 10.5,-12.5 + parent: 2 + - uid: 8349 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 11.5,-12.5 + parent: 2 + - uid: 8350 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 11.5,-11.5 + parent: 2 + - uid: 8351 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 11.5,-10.5 + parent: 2 + - uid: 8352 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 11.5,-9.5 + parent: 2 + - uid: 8353 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 11.5,-8.5 + parent: 2 + - uid: 8354 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 11.5,-7.5 + parent: 2 + - uid: 8355 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 12.5,21.5 + parent: 2 + - uid: 8356 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 11.5,21.5 + parent: 2 + - uid: 8357 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 10.5,21.5 + parent: 2 + - uid: 8358 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 9.5,21.5 + parent: 2 + - uid: 8359 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 8.5,21.5 + parent: 2 + - uid: 8360 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 7.5,21.5 + parent: 2 + - uid: 8361 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 4.5,21.5 + parent: 2 + - uid: 8362 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 3.5,21.5 + parent: 2 + - uid: 8363 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 30.5,-38.5 + parent: 2 + - uid: 8364 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -14.5,-52.5 + parent: 2 + - uid: 8365 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -15.5,-52.5 + parent: 2 + - uid: 8366 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -15.5,-53.5 + parent: 2 + - uid: 8367 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -15.5,-54.5 + parent: 2 + - uid: 8368 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -22.5,-50.5 + parent: 2 + - uid: 8369 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -23.5,-50.5 + parent: 2 + - uid: 8370 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -24.5,-50.5 + parent: 2 + - uid: 8371 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -25.5,-50.5 + parent: 2 + - uid: 8372 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -26.5,-50.5 + parent: 2 + - uid: 8373 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -27.5,-50.5 + parent: 2 + - uid: 8374 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -28.5,-50.5 + parent: 2 + - uid: 8375 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -28.5,-51.5 + parent: 2 + - uid: 8376 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -28.5,-52.5 + parent: 2 + - uid: 8377 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -28.5,-53.5 + parent: 2 + - uid: 8378 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -28.5,-54.5 + parent: 2 + - uid: 8379 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -28.5,-55.5 + parent: 2 + - uid: 8380 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -29.5,-55.5 + parent: 2 + - uid: 8381 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -30.5,-55.5 + parent: 2 + - uid: 8382 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -31.5,-55.5 + parent: 2 + - uid: 8383 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -32.5,-55.5 + parent: 2 + - uid: 8384 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -26.5,-51.5 + parent: 2 + - uid: 8385 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -26.5,-53.5 + parent: 2 + - uid: 8386 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -26.5,-54.5 + parent: 2 + - uid: 8387 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -38.5,-33.5 + parent: 2 + - uid: 8388 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -38.5,-31.5 + parent: 2 + - uid: 8389 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -38.5,-30.5 + parent: 2 + - uid: 8390 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -38.5,-29.5 + parent: 2 + - uid: 8391 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -38.5,-26.5 + parent: 2 + - uid: 8392 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -38.5,-24.5 + parent: 2 + - uid: 8393 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -37.5,-24.5 + parent: 2 + - uid: 8394 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -20.5,16.5 + parent: 2 + - uid: 8395 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -21.5,16.5 + parent: 2 + - uid: 8396 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -19.5,15.5 + parent: 2 + - uid: 8397 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -18.5,15.5 + parent: 2 + - uid: 8398 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -17.5,15.5 + parent: 2 + - uid: 8399 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -16.5,15.5 + parent: 2 + - uid: 8400 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -25.5,16.5 + parent: 2 + - uid: 8401 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -26.5,16.5 + parent: 2 + - uid: 8402 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -24.5,18.5 + parent: 2 + - uid: 8403 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -24.5,19.5 + parent: 2 + - uid: 8404 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -25.5,20.5 + parent: 2 + - uid: 8405 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -27.5,20.5 + parent: 2 + - uid: 8406 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -27.5,21.5 + parent: 2 + - uid: 8407 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -27.5,23.5 + parent: 2 + - uid: 8408 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -3.5,44.5 + parent: 2 + - uid: 8409 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -3.5,46.5 + parent: 2 + - uid: 8410 + components: + - type: Transform + pos: -16.5,-12.5 + parent: 2 + - uid: 8411 + components: + - type: Transform + pos: -19.5,-12.5 + parent: 2 + - uid: 8412 + components: + - type: Transform + pos: 40.5,-37.5 + parent: 2 + - uid: 8413 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 34.5,-36.5 + parent: 2 + - uid: 8414 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 33.5,-37.5 + parent: 2 + - uid: 8415 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 32.5,-37.5 + parent: 2 + - uid: 8416 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 35.5,-38.5 + parent: 2 + - uid: 8417 + components: + - type: Transform + pos: 36.5,-36.5 + parent: 2 + - uid: 8418 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -10.5,47.5 + parent: 2 + - uid: 8419 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -10.5,-63.5 + parent: 2 + - uid: 8420 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -12.5,-64.5 + parent: 2 + - uid: 8421 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -12.5,-63.5 + parent: 2 + - uid: 8422 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -9.5,-65.5 + parent: 2 + - uid: 8423 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -11.5,-65.5 + parent: 2 + - uid: 8424 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -13.5,-65.5 + parent: 2 + - uid: 8425 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -13.5,-69.5 + parent: 2 + - uid: 8426 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -15.5,-69.5 + parent: 2 + - uid: 8427 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -12.5,-67.5 + parent: 2 + - uid: 8428 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -13.5,-67.5 + parent: 2 + - uid: 8429 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -12.5,-65.5 + parent: 2 + - uid: 8430 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -9.5,-63.5 + parent: 2 + - uid: 8431 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -11.5,-63.5 + parent: 2 + - uid: 8432 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -13.5,-63.5 + parent: 2 + - uid: 8433 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -9.5,-67.5 + parent: 2 + - uid: 8434 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -10.5,-67.5 + parent: 2 + - uid: 8435 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -10.5,-69.5 + parent: 2 + - uid: 8436 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -9.5,-69.5 + parent: 2 + - uid: 8437 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -10.5,-65.5 + parent: 2 + - uid: 8438 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -10.5,-66.5 + parent: 2 + - uid: 8439 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -12.5,-69.5 + parent: 2 + - uid: 8440 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -12.5,-66.5 + parent: 2 + - uid: 8441 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -15.5,-65.5 + parent: 2 + - uid: 8442 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -11.5,-69.5 + parent: 2 + - uid: 8443 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -10.5,-64.5 + parent: 2 + - uid: 8444 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -11.5,-67.5 + parent: 2 + - uid: 8445 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -12.5,-71.5 + parent: 2 + - uid: 8446 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -11.5,-71.5 + parent: 2 + - uid: 23980 + components: + - type: Transform + pos: -7.5,59.5 + parent: 2 + - uid: 23981 + components: + - type: Transform + pos: -7.5,60.5 + parent: 2 + - uid: 23982 + components: + - type: Transform + pos: -7.5,61.5 + parent: 2 + - uid: 23983 + components: + - type: Transform + pos: -7.5,62.5 + parent: 2 + - uid: 23984 + components: + - type: Transform + pos: -7.5,66.5 + parent: 2 + - uid: 23985 + components: + - type: Transform + pos: -7.5,67.5 + parent: 2 + - uid: 23986 + components: + - type: Transform + pos: -7.5,68.5 + parent: 2 + - uid: 23987 + components: + - type: Transform + pos: -7.5,69.5 + parent: 2 + - uid: 23988 + components: + - type: Transform + pos: -4.5,67.5 + parent: 2 + - uid: 23989 + components: + - type: Transform + pos: -4.5,66.5 + parent: 2 + - uid: 23990 + components: + - type: Transform + pos: -4.5,65.5 + parent: 2 + - uid: 23991 + components: + - type: Transform + pos: -4.5,64.5 + parent: 2 + - uid: 23992 + components: + - type: Transform + pos: -4.5,63.5 + parent: 2 + - uid: 23993 + components: + - type: Transform + pos: -4.5,62.5 + parent: 2 + - uid: 23994 + components: + - type: Transform + pos: -4.5,68.5 + parent: 2 + - uid: 23995 + components: + - type: Transform + pos: -2.5,67.5 + parent: 2 + - uid: 23996 + components: + - type: Transform + pos: -2.5,66.5 + parent: 2 + - uid: 23997 + components: + - type: Transform + pos: -2.5,65.5 + parent: 2 + - uid: 23998 + components: + - type: Transform + pos: -2.5,64.5 + parent: 2 + - uid: 23999 + components: + - type: Transform + pos: -1.5,66.5 + parent: 2 + - uid: 24000 + components: + - type: Transform + pos: -0.5,66.5 + parent: 2 + - uid: 24001 + components: + - type: Transform + pos: 0.5,66.5 + parent: 2 + - uid: 24002 + components: + - type: Transform + pos: 1.5,66.5 + parent: 2 + - uid: 24003 + components: + - type: Transform + pos: 2.5,66.5 + parent: 2 + - uid: 24004 + components: + - type: Transform + pos: 3.5,66.5 + parent: 2 + - uid: 24005 + components: + - type: Transform + pos: 4.5,67.5 + parent: 2 + - uid: 24006 + components: + - type: Transform + pos: 4.5,66.5 + parent: 2 + - uid: 24007 + components: + - type: Transform + pos: 4.5,65.5 + parent: 2 + - uid: 24008 + components: + - type: Transform + pos: 4.5,64.5 + parent: 2 + - uid: 24009 + components: + - type: Transform + pos: 6.5,62.5 + parent: 2 + - uid: 24010 + components: + - type: Transform + pos: 6.5,63.5 + parent: 2 + - uid: 24011 + components: + - type: Transform + pos: 6.5,64.5 + parent: 2 + - uid: 24012 + components: + - type: Transform + pos: 6.5,65.5 + parent: 2 + - uid: 24013 + components: + - type: Transform + pos: 6.5,66.5 + parent: 2 + - uid: 24014 + components: + - type: Transform + pos: 6.5,67.5 + parent: 2 + - uid: 24015 + components: + - type: Transform + pos: 6.5,68.5 + parent: 2 + - uid: 24016 + components: + - type: Transform + pos: 9.5,68.5 + parent: 2 + - uid: 24017 + components: + - type: Transform + pos: 9.5,67.5 + parent: 2 + - uid: 24018 + components: + - type: Transform + pos: 9.5,66.5 + parent: 2 + - uid: 24019 + components: + - type: Transform + pos: 9.5,62.5 + parent: 2 + - uid: 24020 + components: + - type: Transform + pos: 9.5,61.5 + parent: 2 + - uid: 24021 + components: + - type: Transform + pos: 9.5,60.5 + parent: 2 +- proto: CellRechargerCircuitboard + entities: + - uid: 8447 + components: + - type: Transform + pos: -23.339558,-16.29333 + parent: 2 +- proto: Chair + entities: + - uid: 8448 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -14.5,16.5 + parent: 2 + - uid: 8449 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -14.5,14.5 + parent: 2 + - uid: 8450 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -8.5,16.5 + parent: 2 + - uid: 8451 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -8.5,14.5 + parent: 2 + - uid: 8452 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -44.5,-8.5 + parent: 2 + - uid: 8453 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -28.5,-26.5 + parent: 2 + - uid: 8454 + components: + - type: Transform + pos: -28.5,-34.5 + parent: 2 + - uid: 8455 + components: + - type: Transform + pos: -3.5,-26.5 + parent: 2 + - uid: 8456 + components: + - type: Transform + pos: -37.5,-41.5 + parent: 2 + - uid: 8457 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -35.5,-52.5 + parent: 2 + - uid: 8458 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -35.5,-51.5 + parent: 2 + - uid: 8459 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -35.5,-50.5 + parent: 2 + - uid: 8460 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -38.5,-50.5 + parent: 2 + - uid: 8461 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -38.5,-51.5 + parent: 2 + - uid: 8462 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -38.5,-52.5 + parent: 2 + - uid: 8463 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 34.5,28.5 + parent: 2 + - uid: 8464 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 36.5,28.5 + parent: 2 + - uid: 8465 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 37.5,28.5 + parent: 2 + - uid: 8466 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 39.5,28.5 + parent: 2 + - uid: 8467 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 15.5,35.5 + parent: 2 + - uid: 8468 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 42.5,32.5 + parent: 2 + - uid: 8469 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 42.5,33.5 + parent: 2 + - uid: 8470 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 42.5,34.5 + parent: 2 + - uid: 8471 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 43.5,36.5 + parent: 2 + - uid: 8472 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 43.5,37.5 + parent: 2 + - uid: 8473 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 42.5,41.5 + parent: 2 + - uid: 8474 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 42.5,40.5 + parent: 2 + - uid: 8475 + components: + - type: Transform + pos: 41.5,-3.5 + parent: 2 + - uid: 8476 + components: + - type: Transform + pos: 42.5,-3.5 + parent: 2 + - uid: 8477 + components: + - type: Transform + pos: 43.5,-3.5 + parent: 2 + - uid: 8478 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 39.5,-12.5 + parent: 2 + - uid: 8479 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 40.5,-12.5 + parent: 2 + - uid: 8480 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 42.5,-12.5 + parent: 2 + - uid: 8481 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 43.5,-12.5 + parent: 2 + - uid: 8482 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 43.5,-15.5 + parent: 2 + - uid: 8483 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 43.5,-14.5 + parent: 2 + - uid: 8484 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -13.5,43.5 + parent: 2 + - uid: 8485 + components: + - type: Transform + pos: -30.5,26.5 + parent: 2 + - uid: 8486 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 11.5,50.5 + parent: 2 + - uid: 8487 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 15.5,-16.5 + parent: 2 + - uid: 8488 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 16.5,-16.5 + parent: 2 + - uid: 8489 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 17.5,-16.5 + parent: 2 + - uid: 8490 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 32.5,-30.5 + parent: 2 + - uid: 8491 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 41.5,-22.5 + parent: 2 + - uid: 8492 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 41.5,-21.5 + parent: 2 + - uid: 8493 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 39.5,-21.5 + parent: 2 + - uid: 8494 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 39.5,-22.5 + parent: 2 + - uid: 8495 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 11.5,-37.5 + parent: 2 + - uid: 8496 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -3.5,48.5 + parent: 2 + - uid: 8497 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -3.5,48.5 + parent: 2 + - uid: 8498 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 6.5,-58.5 + parent: 2 + - uid: 8499 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 6.5,-59.5 + parent: 2 + - uid: 8500 + components: + - type: Transform + pos: 19.5,22.5 + parent: 2 +- proto: ChairFolding + entities: + - uid: 8501 + components: + - type: Transform + pos: -39.5,-62.5 + parent: 2 + - uid: 8502 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -38.5,-63.5 + parent: 2 + - uid: 8503 + components: + - type: Transform + pos: 42.5,5.5 + parent: 2 + - uid: 8504 + components: + - type: Transform + pos: 43.5,-66.5 + parent: 2 + - uid: 8505 + components: + - type: Transform + pos: 45.5,-66.5 + parent: 2 +- proto: ChairOfficeDark + entities: + - uid: 8506 + components: + - type: Transform + pos: -16.5,-5.5 + parent: 2 + - uid: 8507 + components: + - type: Transform + pos: -16.5,-2.5 + parent: 2 + - uid: 8508 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -12.5,-3.5 + parent: 2 + - uid: 8509 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -2.5,13.5 + parent: 2 + - uid: 8510 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -3.5,13.5 + parent: 2 + - uid: 8511 + components: + - type: Transform + pos: -3.5,15.5 + parent: 2 + - uid: 8512 + components: + - type: Transform + pos: -2.5,15.5 + parent: 2 + - uid: 8513 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 13.5,-3.5 + parent: 2 + - uid: 8514 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -29.5,-35.5 + parent: 2 + - uid: 8515 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -42.5,-50.5 + parent: 2 + - uid: 8516 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -42.5,-49.5 + parent: 2 + - uid: 8517 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -26.5,-67.5 + parent: 2 + - uid: 8518 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 29.5,-2.5 + parent: 2 + - uid: 8519 + components: + - type: Transform + pos: 13.5,43.5 + parent: 2 + - uid: 8520 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 24.5,36.5 + parent: 2 + - uid: 8521 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 24.5,38.5 + parent: 2 + - uid: 8522 + components: + - type: Transform + pos: 46.5,-17.5 + parent: 2 + - uid: 8523 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -28.5,15.5 + parent: 2 + - uid: 8524 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -20.5,19.5 + parent: 2 + - uid: 8525 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -20.5,21.5 + parent: 2 + - uid: 8526 + components: + - type: Transform + pos: -25.5,25.5 + parent: 2 + - uid: 8527 + components: + - type: Transform + pos: -24.5,25.5 + parent: 2 + - uid: 8528 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -24.5,23.5 + parent: 2 + - uid: 8529 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -25.5,23.5 + parent: 2 + - uid: 8530 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -25.5,23.5 + parent: 2 + - uid: 8531 + components: + - type: Transform + pos: -16.5,34.5 + parent: 2 + - uid: 8532 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -15.5,35.5 + parent: 2 + - uid: 8533 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -25.5,44.5 + parent: 2 + - uid: 8534 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -8.5,52.5 + parent: 2 + - uid: 8535 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -8.5,52.5 + parent: 2 + - uid: 8536 + components: + - type: Transform + pos: 7.5,47.5 + parent: 2 + - uid: 8537 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 6.5,-19.5 + parent: 2 + - uid: 8538 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 4.5,-49.5 + parent: 2 + - uid: 8539 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 10.5,-54.5 + parent: 2 + - uid: 8540 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -42.5,-32.5 + parent: 2 + - uid: 8541 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -22.5,-55.5 + parent: 2 + - uid: 8542 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 19.5,20.5 + parent: 2 +- proto: ChairOfficeLight + entities: + - uid: 8543 + components: + - type: Transform + pos: -26.5,-17.5 + parent: 2 + - uid: 8544 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -35.5,-26.5 + parent: 2 + - uid: 8545 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -35.5,-28.5 + parent: 2 + - uid: 8546 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -24.5,-33.5 + parent: 2 + - uid: 8547 + components: + - type: Transform + pos: -25.5,-23.5 + parent: 2 + - uid: 8548 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -21.5,-17.5 + parent: 2 + - uid: 8549 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -21.5,-17.5 + parent: 2 + - uid: 8550 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -15.5,-20.5 + parent: 2 + - uid: 8551 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -15.5,-23.5 + parent: 2 + - uid: 8552 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -4.5,-31.5 + parent: 2 + - uid: 8553 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -2.5,-31.5 + parent: 2 + - uid: 8554 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -43.479202,-30.922709 + parent: 2 + - uid: 8555 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -45.5,-35.5 + parent: 2 + - uid: 8556 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -45.5,-36.5 + parent: 2 + - uid: 8557 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -43.5,-35.5 + parent: 2 + - uid: 8558 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -43.5,-36.5 + parent: 2 + - uid: 8559 + components: + - type: Transform + pos: -46.5,-31.5 + parent: 2 + - uid: 8560 + components: + - type: Transform + pos: 38.5,13.5 + parent: 2 + - uid: 8561 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 33.5,20.5 + parent: 2 + - uid: 8562 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -6.5,33.5 + parent: 2 + - uid: 8563 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 26.5,-18.5 + parent: 2 + - uid: 8564 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 46.5,-21.5 + parent: 2 + - uid: 8565 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 39.5,-33.5 + parent: 2 + - uid: 8566 + components: + - type: Transform + pos: 40.5,-33.5 + parent: 2 + - uid: 8567 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 31.5,-28.5 + parent: 2 + - uid: 8568 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 19.5,-32.5 + parent: 2 + - uid: 8569 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 21.5,-31.5 + parent: 2 + - uid: 8570 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 5.5,-30.5 + parent: 2 + - uid: 8571 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 9.5,-30.5 + parent: 2 + - uid: 8572 + components: + - type: Transform + pos: 8.5,-19.5 + parent: 2 + - uid: 8573 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 38.5,-37.5 + parent: 2 + - uid: 8574 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 46.5,-39.5 + parent: 2 + - uid: 8575 + components: + - type: Transform + pos: 43.5,-39.5 + parent: 2 +- proto: ChairPilotSeat + entities: + - uid: 8576 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 6.5,54.5 + parent: 2 + - uid: 8577 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 6.5,54.5 + parent: 2 + - uid: 8578 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 0.5,61.5 + parent: 2 + - uid: 8579 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 1.5,61.5 + parent: 2 + - uid: 8580 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -4.5,60.5 + parent: 2 + - uid: 8581 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -4.5,58.5 + parent: 2 + - uid: 8582 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 6.5,60.5 + parent: 2 + - uid: 8583 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 6.5,58.5 + parent: 2 + - uid: 8584 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -0.5,60.5 + parent: 2 + - uid: 8585 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 2.5,60.5 + parent: 2 +- proto: ChairWood + entities: + - uid: 8586 + components: + - type: Transform + pos: -11.5,16.5 + parent: 2 + - uid: 8587 + components: + - type: Transform + pos: -31.5,-59.5 + parent: 2 + - uid: 8588 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -32.5,-60.5 + parent: 2 + - uid: 8589 + components: + - type: Transform + pos: -30.5,-63.5 + parent: 2 + - uid: 8590 + components: + - type: Transform + pos: -29.5,-63.5 + parent: 2 + - uid: 8591 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -29.5,-61.5 + parent: 2 + - uid: 8592 + components: + - type: Transform + pos: 33.5,11.5 + parent: 2 + - uid: 8593 + components: + - type: Transform + pos: 34.5,11.5 + parent: 2 + - uid: 8594 + components: + - type: Transform + pos: 41.5,5.5 + parent: 2 + - uid: 8595 + components: + - type: Transform + pos: 43.5,5.5 + parent: 2 + - uid: 8596 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 41.5,2.5 + parent: 2 + - uid: 8597 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 43.5,2.5 + parent: 2 + - uid: 8598 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 18.5,31.5 + parent: 2 + - uid: 8599 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 17.5,35.5 + parent: 2 + - uid: 8600 + components: + - type: Transform + pos: 17.5,37.5 + parent: 2 + - uid: 8601 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -33.5,23.5 + parent: 2 + - uid: 8602 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -32.5,23.5 + parent: 2 + - uid: 8603 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -31.5,23.5 + parent: 2 + - uid: 8604 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -30.5,23.5 + parent: 2 +- proto: CheapLighter + entities: + - uid: 8605 + components: + - type: Transform + pos: 17.633575,12.68796 + parent: 2 +- proto: CheapRollerBed + entities: + - uid: 8606 + components: + - type: Transform + pos: 9.466855,-12.469458 + parent: 2 + - uid: 8607 + components: + - type: Transform + pos: -30.500156,33.499844 + parent: 2 + - uid: 8608 + components: + - type: Transform + pos: -30.515537,36.5163 + parent: 2 + - uid: 8609 + components: + - type: Transform + pos: -30.515537,36.78373 + parent: 2 + - uid: 8610 + components: + - type: Transform + pos: 14.49619,-8.461559 + parent: 2 +- proto: CheapRollerBedSpawnFolded + entities: + - uid: 8611 + components: + - type: Transform + pos: 23.488644,-36.37967 + parent: 2 +- proto: chem_master + entities: + - uid: 8612 + components: + - type: Transform + pos: -3.5,-30.5 + parent: 2 + - uid: 8613 + components: + - type: Transform + pos: 38.5,12.5 + parent: 2 + - uid: 8614 + components: + - type: Transform + pos: 38.5,-32.5 + parent: 2 + - uid: 8615 + components: + - type: Transform + pos: 9.5,-29.5 + parent: 2 + - type: ContainerContainer + containers: + beakerSlot: !type:ContainerSlot + showEnts: False + occludes: True + ent: 8616 + outputSlot: !type:ContainerSlot + showEnts: False + occludes: True + ent: null + machine_board: !type:Container + showEnts: False + occludes: True + ents: [] + machine_parts: !type:Container + showEnts: False + occludes: True + ents: [] + - uid: 8617 + components: + - type: Transform + pos: 4.5,-30.5 + parent: 2 + - type: ContainerContainer + containers: + beakerSlot: !type:ContainerSlot + showEnts: False + occludes: True + ent: 8618 + outputSlot: !type:ContainerSlot + showEnts: False + occludes: True + ent: null + machine_board: !type:Container + showEnts: False + occludes: True + ents: [] + machine_parts: !type:Container + showEnts: False + occludes: True + ents: [] +- proto: ChemDispenser + entities: + - uid: 8619 + components: + - type: Transform + pos: 8.5,-29.5 + parent: 2 + - uid: 8620 + components: + - type: Transform + pos: 4.5,-31.5 + parent: 2 +- proto: ChemDispenserMachineCircuitboard + entities: + - uid: 8621 + components: + - type: Transform + pos: -2.5,-39.5 + parent: 2 +- proto: ChemicalPayload + entities: + - uid: 8622 + components: + - type: Transform + pos: -41.36592,-32.47673 + parent: 2 + - uid: 8623 + components: + - type: Transform + pos: -41.475296,-32.47673 + parent: 2 +- proto: ChemistryEmptyBottle01 + entities: + - uid: 8624 + components: + - type: Transform + pos: 23.742168,39.82343 + parent: 2 + - uid: 8625 + components: + - type: Transform + pos: -29.545193,32.906143 + parent: 2 + - uid: 8626 + components: + - type: Transform + pos: -29.277431,32.79153 + parent: 2 + - uid: 8627 + components: + - type: Transform + pos: -42.82412,37.20674 + parent: 2 + - uid: 8629 + components: + - type: Transform + parent: 8628 + - type: Physics + canCollide: False + - type: InsideEntityStorage + - uid: 8630 + components: + - type: Transform + parent: 8628 + - type: Physics + canCollide: False + - type: InsideEntityStorage + - uid: 8631 + components: + - type: Transform + parent: 8628 + - type: Physics + canCollide: False + - type: InsideEntityStorage + - uid: 8632 + components: + - type: Transform + parent: 8628 + - type: Physics + canCollide: False + - type: InsideEntityStorage + - uid: 8633 + components: + - type: Transform + parent: 8628 + - type: Physics + canCollide: False + - type: InsideEntityStorage + - uid: 8636 + components: + - type: Transform + pos: 42.574924,-29.492899 + parent: 2 + - uid: 8637 + components: + - type: Transform + pos: 42.686813,-29.418306 + parent: 2 + - uid: 8638 + components: + - type: Transform + pos: 42.798702,-29.343716 + parent: 2 + - uid: 8639 + components: + - type: Transform + pos: 14.569506,-32.364628 + parent: 2 + - uid: 8640 + components: + - type: Transform + pos: 14.606801,-32.168823 + parent: 2 + - uid: 8641 + components: + - type: Transform + pos: 14.662745,-32.3553 + parent: 2 + - uid: 8642 + components: + - type: Transform + pos: 14.7839575,-32.23409 + parent: 2 + - uid: 8643 + components: + - type: Transform + pos: 14.550858,-32.224766 + parent: 2 + - uid: 8644 + components: + - type: Transform + pos: 12.6648245,-37.416187 + parent: 2 +- proto: ChemistryHotplate + entities: + - uid: 8645 + components: + - type: Transform + pos: 4.5,-29.5 + parent: 2 +- proto: ChemMasterMachineCircuitboard + entities: + - uid: 8646 + components: + - type: Transform + pos: -4.558944,-36.53567 + parent: 2 +- proto: ChessBoard + entities: + - uid: 8647 + components: + - type: Transform + pos: 43.486767,3.6246936 + parent: 2 +- proto: CigaretteSpent + entities: + - uid: 8648 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -13.678261,43.148743 + parent: 2 + - uid: 8649 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 30.306835,-34.981674 + parent: 2 + - uid: 8650 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 30.747395,-34.58307 + parent: 2 + - uid: 8651 + components: + - type: Transform + pos: 44.314438,-66.48335 + parent: 2 + - uid: 8652 + components: + - type: Transform + pos: 44.244576,-66.595085 + parent: 2 +- proto: CigarGold + entities: + - uid: 8653 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -3.6491256,53.60938 + parent: 2 + - uid: 8654 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -3.4952793,53.46952 + parent: 2 +- proto: CigarGoldCase + entities: + - uid: 8655 + components: + - type: Transform + pos: -35.437805,17.56227 + parent: 2 + - uid: 8656 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -2.462513,56.7324 + parent: 2 + - uid: 8657 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 10.502454,54.442284 + parent: 2 + - uid: 8658 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 10.577045,54.274452 + parent: 2 +- proto: CigCartonMixed + entities: + - uid: 8659 + components: + - type: Transform + pos: 41.593994,3.7179337 + parent: 2 +- proto: CigPackBlack + entities: + - uid: 8660 + components: + - type: Transform + pos: 44.314438,-66.32973 + parent: 2 +- proto: CigPackBlue + entities: + - uid: 8661 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -13.656745,43.72897 + parent: 2 +- proto: CigPackMixed + entities: + - uid: 8662 + components: + - type: Transform + pos: -38.638542,-16.615156 + parent: 2 +- proto: CigPackMixedMedical + entities: + - uid: 8663 + components: + - type: Transform + pos: -38.512794,-16.726889 + parent: 2 +- proto: CigPackMixedNasty + entities: + - uid: 8664 + components: + - type: Transform + pos: -38.69443,-16.83862 + parent: 2 +- proto: CircuitImprinter + entities: + - uid: 8665 + components: + - type: Transform + pos: -34.5,-29.5 + parent: 2 + - uid: 8666 + components: + - type: Transform + pos: -23.5,-18.5 + parent: 2 + - uid: 8667 + components: + - type: Transform + pos: 26.5,-39.5 + parent: 2 +- proto: CleanerDispenser + entities: + - uid: 8668 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 11.5,15.5 + parent: 2 + - uid: 8669 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 7.5,11.5 + parent: 2 +- proto: ClosetBluespaceUnstable + entities: + - uid: 8671 + components: + - type: Transform + pos: -35.5,-58.5 + parent: 2 +- proto: ClosetBombFilled + entities: + - uid: 8672 + components: + - type: Transform + pos: -22.5,-32.5 + parent: 2 + - uid: 8673 + components: + - type: Transform + pos: -31.5,-45.5 + parent: 2 + - uid: 8674 + components: + - type: Transform + pos: -32.5,-45.5 + parent: 2 + - uid: 8675 + components: + - type: Transform + pos: -10.5,31.5 + parent: 2 +- proto: ClosetChefFilled + entities: + - uid: 8676 + components: + - type: Transform + pos: -8.5,-12.5 + parent: 2 + - uid: 8677 + components: + - type: Transform + pos: 23.5,19.5 + parent: 2 +- proto: ClosetEmergencyFilledRandom + entities: + - uid: 8678 + components: + - type: Transform + pos: -4.5,-6.5 + parent: 2 + - uid: 8679 + components: + - type: Transform + pos: 6.5,-6.5 + parent: 2 + - uid: 8680 + components: + - type: Transform + pos: -3.5,8.5 + parent: 2 + - uid: 8681 + components: + - type: Transform + pos: 5.5,8.5 + parent: 2 + - uid: 8682 + components: + - type: Transform + pos: -12.5,-12.5 + parent: 2 + - uid: 8683 + components: + - type: Transform + pos: -19.5,5.5 + parent: 2 + - uid: 8684 + components: + - type: Transform + pos: -48.5,-25.5 + parent: 2 + - uid: 8685 + components: + - type: Transform + pos: -30.5,-27.5 + parent: 2 + - uid: 8686 + components: + - type: Transform + pos: -3.5,-28.5 + parent: 2 + - uid: 8687 + components: + - type: Transform + pos: 19.5,-2.5 + parent: 2 + - uid: 8688 + components: + - type: Transform + pos: 25.5,27.5 + parent: 2 + - uid: 8689 + components: + - type: Transform + pos: 44.5,26.5 + parent: 2 + - uid: 8690 + components: + - type: Transform + pos: 30.5,41.5 + parent: 2 + - uid: 8691 + components: + - type: Transform + pos: 44.5,48.5 + parent: 2 + - uid: 8692 + components: + - type: Transform + pos: 27.5,33.5 + parent: 2 + - uid: 8693 + components: + - type: Transform + pos: -33.5,21.5 + parent: 2 + - uid: 8694 + components: + - type: Transform + pos: -28.5,41.5 + parent: 2 + - uid: 8695 + components: + - type: Transform + pos: -39.5,24.5 + parent: 2 + - uid: 8696 + components: + - type: Transform + pos: -5.5,45.5 + parent: 2 + - uid: 8697 + components: + - type: Transform + pos: 3.5,58.5 + parent: 2 + - uid: 8698 + components: + - type: Transform + pos: 24.5,-36.5 + parent: 2 + - uid: 8699 + components: + - type: Transform + pos: -6.5,-18.5 + parent: 2 + - uid: 8700 + components: + - type: Transform + pos: -9.5,-61.5 + parent: 2 + - uid: 8701 + components: + - type: Transform + pos: -24.5,-52.5 + parent: 2 + - uid: 8702 + components: + - type: Transform + pos: 35.5,-36.5 + parent: 2 +- proto: ClosetFireFilled + entities: + - uid: 8703 + components: + - type: Transform + pos: -3.5,-6.5 + parent: 2 + - uid: 8704 + components: + - type: Transform + pos: 5.5,-6.5 + parent: 2 + - uid: 8705 + components: + - type: Transform + pos: -4.5,8.5 + parent: 2 + - uid: 8706 + components: + - type: Transform + pos: 6.5,8.5 + parent: 2 + - uid: 8707 + components: + - type: Transform + pos: -13.5,-12.5 + parent: 2 + - uid: 8708 + components: + - type: Transform + pos: -19.5,4.5 + parent: 2 + - 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 + - uid: 8709 + components: + - type: Transform + pos: -48.5,-27.5 + parent: 2 + - uid: 8710 + components: + - type: Transform + pos: -30.5,-26.5 + parent: 2 + - uid: 8711 + components: + - type: Transform + pos: -2.5,-28.5 + parent: 2 + - uid: 8712 + components: + - type: Transform + pos: -31.5,-57.5 + parent: 2 + - uid: 8713 + components: + - type: Transform + pos: 18.5,-2.5 + parent: 2 + - uid: 8714 + components: + - type: Transform + pos: 42.5,26.5 + parent: 2 + - uid: 8715 + components: + - type: Transform + pos: 28.5,41.5 + parent: 2 + - uid: 8716 + components: + - type: Transform + pos: 27.5,29.5 + parent: 2 + - uid: 8717 + components: + - type: Transform + pos: -31.5,21.5 + parent: 2 + - uid: 8718 + components: + - type: Transform + pos: -30.5,41.5 + parent: 2 + - uid: 8719 + components: + - type: Transform + pos: -4.5,45.5 + parent: 2 + - uid: 8720 + components: + - type: Transform + pos: -1.5,58.5 + parent: 2 + - uid: 8721 + components: + - type: Transform + pos: 25.5,-36.5 + parent: 2 + - uid: 8722 + components: + - type: Transform + pos: -25.5,-52.5 + parent: 2 +- proto: ClosetL3Filled + entities: + - uid: 8723 + components: + - type: Transform + pos: 34.5,-29.5 + parent: 2 +- proto: ClosetL3JanitorFilled + entities: + - uid: 8724 + components: + - type: Transform + pos: 10.5,12.5 + parent: 2 + - uid: 8725 + components: + - type: Transform + pos: 10.5,13.5 + parent: 2 +- proto: ClosetL3ScienceFilled + entities: + - uid: 8726 + components: + - type: Transform + pos: -8.5,-32.5 + parent: 2 + - uid: 8727 + components: + - type: Transform + pos: -8.5,-31.5 + parent: 2 +- proto: ClosetL3VirologyFilled + entities: + - uid: 8728 + components: + - type: Transform + pos: 38.5,-27.5 + parent: 2 + - uid: 8729 + components: + - type: Transform + pos: 38.5,-28.5 + parent: 2 +- proto: ClosetMaintenanceFilledRandom + entities: + - uid: 8731 + components: + - type: Transform + pos: 12.5,13.5 + parent: 2 + - uid: 8732 + components: + - type: Transform + pos: -17.5,7.5 + parent: 2 + - uid: 8733 + components: + - type: Transform + pos: 11.5,9.5 + parent: 2 + - uid: 8734 + components: + - type: Transform + pos: 16.5,4.5 + parent: 2 + - uid: 8735 + components: + - type: Transform + pos: 8.5,-14.5 + parent: 2 + - type: EntityStorage + air: + volume: 200 + immutable: False + temperature: 75.31249 + moles: + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - uid: 8736 + components: + - type: Transform + pos: -8.5,-18.5 + parent: 2 + - type: EntityStorage + air: + volume: 200 + immutable: False + temperature: 75.31249 + moles: + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - uid: 8737 + components: + - type: Transform + pos: -8.5,-19.5 + parent: 2 + - type: EntityStorage + air: + volume: 200 + immutable: False + temperature: 75.31249 + moles: + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - uid: 8738 + components: + - type: Transform + pos: -10.5,-18.5 + parent: 2 + - type: EntityStorage + air: + volume: 200 + immutable: False + temperature: 75.31249 + moles: + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - uid: 8739 + components: + - type: Transform + pos: -10.5,-19.5 + parent: 2 + - type: EntityStorage + air: + volume: 200 + immutable: False + temperature: 75.31249 + moles: + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - uid: 8740 + components: + - type: Transform + pos: -10.5,-12.5 + parent: 2 + - type: EntityStorage + air: + volume: 200 + immutable: False + temperature: 75.31249 + moles: + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - uid: 8741 + components: + - type: Transform + pos: -21.5,-3.5 + parent: 2 + - uid: 8742 + components: + - type: Transform + pos: -44.5,-27.5 + parent: 2 + - uid: 8743 + components: + - type: Transform + pos: -19.5,-39.5 + parent: 2 + - uid: 8744 + components: + - type: Transform + pos: -30.5,-57.5 + parent: 2 + - uid: 8745 + components: + - type: Transform + pos: -9.5,-53.5 + parent: 2 + - uid: 8746 + components: + - type: Transform + pos: 22.5,-12.5 + parent: 2 + - uid: 8748 + components: + - type: Transform + pos: -22.5,14.5 + parent: 2 + - type: EntityStorage + air: + volume: 200 + immutable: False + temperature: 75.31249 + moles: + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - uid: 8749 + components: + - type: Transform + pos: -24.5,21.5 + parent: 2 + - uid: 8750 + components: + - type: Transform + pos: -22.5,9.5 + parent: 2 + - uid: 8751 + components: + - type: Transform + pos: -5.5,-18.5 + parent: 2 + - uid: 8752 + components: + - type: Transform + pos: -26.5,-59.5 + parent: 2 + - uid: 8753 + components: + - type: Transform + pos: -13.5,-17.5 + parent: 2 + - uid: 8754 + components: + - type: Transform + pos: 25.5,-2.5 + parent: 2 + - uid: 8755 + components: + - type: Transform + pos: 29.5,-36.5 + parent: 2 + - uid: 8756 + components: + - type: Transform + pos: 36.5,-28.5 + parent: 2 + - uid: 8757 + components: + - type: Transform + pos: 4.5,-37.5 + parent: 2 + - uid: 8758 + components: + - type: Transform + pos: -21.5,-52.5 + parent: 2 +- proto: ClosetRadiationSuitFilled + entities: + - uid: 8759 + components: + - type: Transform + pos: -22.5,-33.5 + parent: 2 + - uid: 8760 + components: + - type: Transform + pos: 8.5,-58.5 + parent: 2 + - uid: 8761 + components: + - type: Transform + pos: 8.5,-59.5 + parent: 2 + - uid: 8762 + components: + - type: Transform + pos: 35.5,-41.5 + parent: 2 +- proto: ClosetToolFilled + entities: + - uid: 8763 + components: + - type: Transform + pos: -36.5,-15.5 + parent: 2 +- proto: ClothingBackpack + entities: + - uid: 8764 + components: + - type: Transform + pos: 32.52811,28.861206 + parent: 2 + - uid: 8765 + components: + - type: Transform + pos: 32.73324,28.730669 + parent: 2 + - uid: 8766 + components: + - type: Transform + pos: 33.37349,28.879854 + parent: 2 + - uid: 8767 + components: + - type: Transform + pos: 33.52889,28.693375 + parent: 2 +- proto: ClothingBackpackClown + entities: + - uid: 10530 + components: + - type: Transform + parent: 10524 + - type: Physics + angularDamping: 0 + linearDamping: 0 + canCollide: False + - type: InsideEntityStorage +- proto: ClothingBackpackDuffel + entities: + - uid: 8768 + components: + - type: Transform + pos: -42.56276,-9.286255 + parent: 2 +- proto: ClothingBackpackDuffelGenetics + entities: + - uid: 8769 + components: + - type: Transform + pos: 22.363007,-30.442726 + parent: 2 +- proto: ClothingBackpackDuffelMime + entities: + - uid: 10517 + components: + - type: Transform + parent: 10501 + - type: Physics + angularDamping: 0 + linearDamping: 0 + canCollide: False + - type: InsideEntityStorage +- proto: ClothingBackpackERTClown + entities: + - uid: 10531 + components: + - type: Transform + parent: 10524 + - type: Physics + angularDamping: 0 + linearDamping: 0 + canCollide: False + - type: InsideEntityStorage +- proto: ClothingBackpackMime + entities: + - uid: 10511 + components: + - type: Transform + parent: 10501 + - type: Physics + angularDamping: 0 + linearDamping: 0 + canCollide: False + - type: InsideEntityStorage +- proto: ClothingBackpackSatchelClown + entities: + - uid: 10545 + components: + - type: Transform + parent: 10524 + - type: Physics + angularDamping: 0 + linearDamping: 0 + canCollide: False + - type: InsideEntityStorage +- proto: ClothingBackpackSatchelMime + entities: + - uid: 10523 + components: + - type: Transform + parent: 10501 + - type: Physics + angularDamping: 0 + linearDamping: 0 + canCollide: False + - type: InsideEntityStorage +- proto: ClothingBackpackSatchelSalvage + entities: + - uid: 8771 + components: + - type: Transform + pos: -42.457863,-9.496044 + parent: 2 +- proto: ClothingBackpackSatchelScience + entities: + - uid: 8772 + components: + - type: Transform + pos: -44.545567,-39.341473 + parent: 2 + - uid: 8773 + components: + - type: Transform + pos: -19.541893,-45.404873 + parent: 2 +- proto: ClothingBeltJanitor + entities: + - uid: 8774 + components: + - type: Transform + pos: 14.117703,27.649174 + parent: 2 +- proto: ClothingBeltMedicalFilled + entities: + - uid: 8775 + components: + - type: Transform + pos: 14.2991085,-32.448544 + parent: 2 +- proto: ClothingBeltPlantFilled + entities: + - uid: 8776 + components: + - type: Transform + pos: 32.484955,20.663464 + parent: 2 + - uid: 8777 + components: + - type: Transform + pos: 12.586235,27.628193 + parent: 2 +- proto: ClothingBeltUtility + entities: + - uid: 8778 + components: + - type: Transform + pos: -23.3507,-14.700407 + parent: 2 + - uid: 8779 + components: + - type: Transform + pos: -30.458813,-64.428314 + parent: 2 +- proto: ClothingBeltUtilityEngineering + entities: + - uid: 8780 + components: + - type: Transform + pos: 7.463489,15.835896 + parent: 2 + - uid: 8781 + components: + - type: Transform + pos: -9.46034,-55.427685 + parent: 2 + - uid: 8782 + components: + - type: Transform + pos: 29.526173,-52.48198 + parent: 2 +- proto: ClothingBeltUtilityFilled + entities: + - uid: 8783 + components: + - type: Transform + pos: -43.508026,10.500816 + parent: 2 + - uid: 8784 + components: + - type: Transform + pos: -26.641651,-23.912199 + parent: 2 +- proto: ClothingEyesBlindfold + entities: + - uid: 8785 + components: + - type: Transform + pos: -33.593716,25.528635 + parent: 2 +- proto: ClothingEyesGlassesChemical + entities: + - uid: 8786 + components: + - type: Transform + pos: -33.313164,-28.14225 + parent: 2 + - uid: 8787 + components: + - type: Transform + pos: -36.31762,-30.160292 + parent: 2 + - uid: 8788 + components: + - type: Transform + pos: -22.546875,-31.553246 + parent: 2 +- proto: ClothingEyesGlassesMeson + entities: + - uid: 8789 + components: + - type: Transform + pos: 8.4551,74.56609 + parent: 2 + - uid: 8790 + components: + - type: Transform + pos: 9.471309,83.47607 + parent: 2 + - uid: 8791 + components: + - type: Transform + pos: -19.484676,-63.529808 + parent: 2 + - uid: 8792 + components: + - type: Transform + pos: -19.344814,-63.334003 + parent: 2 + - uid: 8793 + components: + - type: Transform + pos: -7.6099415,-63.431587 + parent: 2 +- proto: ClothingEyesGlassesSecurity + entities: + - uid: 8794 + components: + - type: Transform + pos: -19.431599,21.922447 + parent: 2 +- proto: ClothingEyesGlassesSunglasses + entities: + - uid: 8795 + components: + - type: Transform + pos: -26.440292,-23.687542 + parent: 2 + - uid: 8796 + components: + - type: Transform + pos: -19.507435,-22.557985 + parent: 2 + - uid: 8797 + components: + - type: Transform + pos: -14.529796,35.828796 + parent: 2 +- proto: ClothingEyesHudDiagnostic + entities: + - uid: 8798 + components: + - type: Transform + pos: -7.358194,-62.578438 + parent: 2 + - uid: 8800 + components: + - type: Transform + parent: 8799 + - type: Physics + canCollide: False + - type: InsideEntityStorage +- proto: ClothingHandsGlovesColorPurple + entities: + - uid: 8802 + components: + - type: Transform + pos: 22.533283,-11.475393 + parent: 2 +- proto: ClothingHandsGlovesColorYellow + entities: + - uid: 8803 + components: + - type: Transform + pos: -16.498177,-56.40037 + parent: 2 + - uid: 8804 + components: + - type: Transform + pos: -7.5400114,-62.39662 + parent: 2 + - uid: 8805 + components: + - type: Transform + pos: 26.474522,-62.485188 + parent: 2 + - uid: 8806 + components: + - type: Transform + pos: 29.515945,-62.382626 + parent: 2 +- proto: ClothingHandsGlovesFingerlessInsulated + entities: + - uid: 8807 + components: + - type: Transform + pos: -34.37776,-28.519873 + parent: 2 +- proto: ClothingHandsGlovesLatex + entities: + - uid: 8808 + components: + - type: Transform + pos: 18.452904,-16.508553 + parent: 2 + - uid: 8809 + components: + - type: Transform + pos: 38.50769,-33.975113 + parent: 2 +- proto: ClothingHandsTacticalMaidGloves + entities: + - uid: 8810 + components: + - type: Transform + pos: 11.494395,39.477314 + parent: 2 +- proto: ClothingHeadHatChef + entities: + - uid: 8816 + components: + - type: Transform + pos: -42.500126,31.703918 + parent: 2 +- proto: ClothingHeadHatCone + entities: + - uid: 8817 + components: + - type: Transform + pos: -8.705857,39.615715 + parent: 2 + - uid: 8818 + components: + - type: Transform + pos: -8.642105,39.768536 + parent: 2 + - uid: 8819 + components: + - type: Transform + pos: -8.457224,39.596615 + parent: 2 + - uid: 8820 + components: + - type: Transform + pos: -8.361595,39.647552 + parent: 2 + - uid: 8821 + components: + - type: Transform + pos: -8.457224,39.76217 + parent: 2 +- proto: ClothingHeadHatFezMantis + entities: + - uid: 8822 + components: + - type: Transform + pos: -11.279213,-24.423569 + parent: 2 +- proto: ClothingHeadHatHoodBioCmo + entities: + - uid: 8824 + components: + - type: Transform + parent: 8823 + - type: Physics + angularDamping: 0 + linearDamping: 0 + canCollide: False + - type: InsideEntityStorage +- proto: ClothingHeadHatHoodMoth + entities: + - uid: 8829 + components: + - type: Transform + pos: -7.6243105,12.440752 + parent: 2 +- proto: ClothingHeadHatMimesoft + entities: + - uid: 10520 + components: + - type: Transform + parent: 10501 + - type: Physics + angularDamping: 0 + linearDamping: 0 + canCollide: False + - type: InsideEntityStorage +- proto: ClothingHeadHatMimesoftFlipped + entities: + - uid: 10521 + components: + - type: Transform + parent: 10501 + - type: Physics + angularDamping: 0 + linearDamping: 0 + canCollide: False + - type: InsideEntityStorage +- proto: ClothingHeadHatTacticalMaidHeadband + entities: + - uid: 8830 + components: + - type: Transform + pos: 11.394939,39.75082 + parent: 2 +- proto: ClothingHeadHatWelding + entities: + - uid: 8831 + components: + - type: Transform + pos: 7.370249,19.791813 + parent: 2 + - uid: 8832 + components: + - type: Transform + pos: -26.594776,-23.365324 + parent: 2 + - uid: 8833 + components: + - type: Transform + pos: -6.4542637,79.61747 + parent: 2 + - uid: 8834 + components: + - type: Transform + pos: -6.4855375,74.62076 + parent: 2 + - uid: 8835 + components: + - type: Transform + pos: -16.508045,-56.474964 + parent: 2 +- proto: ClothingHeadHatWizard + entities: + - uid: 8836 + components: + - type: Transform + pos: 30.46769,-6.3655777 + parent: 2 +- proto: ClothingHeadHelmetRiot + entities: + - uid: 8837 + components: + - type: Transform + pos: -12.5835085,40.460464 + parent: 2 + - uid: 8838 + components: + - type: Transform + pos: -12.302999,40.58781 + parent: 2 +- proto: ClothingHeadHelmetSwatSyndicate + entities: + - uid: 8839 + components: + - type: Transform + pos: 14.508218,31.482315 + parent: 2 +- proto: ClothingHeadNurseHat + entities: + - uid: 8840 + components: + - type: Transform + pos: 26.467663,-34.491558 + parent: 2 +- proto: ClothingHeadsetCommand + entities: + - uid: 22313 + components: + - type: Transform + parent: 22310 + - type: Physics + angularDamping: 0 + linearDamping: 0 + canCollide: False + - type: InsideEntityStorage +- proto: ClothingMaskBat + entities: + - uid: 8841 + components: + - type: Transform + pos: -7.6243105,12.673853 + parent: 2 +- proto: ClothingMaskBear + entities: + - uid: 8842 + components: + - type: Transform + pos: -7.214054,12.692501 + parent: 2 +- proto: ClothingMaskClown + entities: + - uid: 8843 + components: + - type: Transform + pos: -7.307294,12.412781 + parent: 2 + - uid: 8844 + components: + - type: Transform + pos: -25.091064,-41.764637 + parent: 2 + - uid: 10532 + components: + - type: Transform + parent: 10524 + - type: Physics + angularDamping: 0 + linearDamping: 0 + canCollide: False + - type: InsideEntityStorage +- proto: ClothingMaskClownBanana + entities: + - uid: 10547 + components: + - type: Transform + parent: 10524 + - type: Physics + angularDamping: 0 + linearDamping: 0 + canCollide: False + - type: InsideEntityStorage +- proto: ClothingMaskGas + entities: + - uid: 8845 + components: + - type: Transform + pos: -7.4589415,-66.27429 + parent: 2 + - uid: 8846 + components: + - type: Transform + pos: 28.54625,-62.3733 + parent: 2 +- proto: ClothingMaskGasCentcom + entities: + - uid: 8847 + components: + - type: Transform + pos: -14.499043,-33.465836 + parent: 2 +- proto: ClothingMaskMime + entities: + - uid: 10514 + components: + - type: Transform + parent: 10501 + - type: Physics + angularDamping: 0 + linearDamping: 0 + canCollide: False + - type: InsideEntityStorage +- proto: ClothingMaskMuzzle + entities: + - uid: 8825 + components: + - type: Transform + parent: 8823 + - type: Physics + angularDamping: 0 + linearDamping: 0 + canCollide: False + - type: InsideEntityStorage + - uid: 8849 + components: + - type: Transform + parent: 8848 + - type: Physics + canCollide: False + - type: InsideEntityStorage + - uid: 8850 + components: + - type: Transform + parent: 8848 + - type: Physics + canCollide: False + - type: InsideEntityStorage + - uid: 8854 + components: + - type: Transform + pos: -33.599934,25.466475 + parent: 2 +- proto: ClothingMaskSadMime + entities: + - uid: 10509 + components: + - type: Transform + parent: 10501 + - type: Physics + angularDamping: 0 + linearDamping: 0 + canCollide: False + - type: InsideEntityStorage +- proto: ClothingMaskScaredMime + entities: + - uid: 10507 + components: + - type: Transform + parent: 10501 + - type: Physics + angularDamping: 0 + linearDamping: 0 + canCollide: False + - type: InsideEntityStorage +- proto: ClothingMaskSexyClown + entities: + - uid: 8855 + components: + - type: Transform + pos: -23.519207,-41.51324 + parent: 2 + - uid: 10526 + components: + - type: Transform + parent: 10524 + - type: Physics + angularDamping: 0 + linearDamping: 0 + canCollide: False + - type: InsideEntityStorage +- proto: ClothingMaskSexyMime + entities: + - uid: 10504 + components: + - type: Transform + parent: 10501 + - type: Physics + angularDamping: 0 + linearDamping: 0 + canCollide: False + - type: InsideEntityStorage +- proto: ClothingMaskSterile + entities: + - uid: 8856 + components: + - type: Transform + pos: 18.480877,-16.2941 + parent: 2 + - uid: 8857 + components: + - type: Transform + pos: 19.387924,-13.55324 + parent: 2 +- proto: ClothingNeckCloakBoat + entities: + - uid: 22317 + components: + - type: Transform + parent: 22310 + - type: Physics + angularDamping: 0 + linearDamping: 0 + canCollide: False + - type: InsideEntityStorage +- proto: ClothingNeckCloakNanotrasen + entities: + - uid: 22316 + components: + - type: Transform + parent: 22310 + - type: Physics + angularDamping: 0 + linearDamping: 0 + canCollide: False + - type: InsideEntityStorage +- proto: ClothingNeckCloakTrans + entities: + - uid: 8858 + components: + - type: Transform + pos: 36.63746,30.719614 + parent: 2 +- proto: ClothingNeckClownmedal + entities: + - uid: 10546 + components: + - type: Transform + parent: 10524 + - type: Physics + angularDamping: 0 + linearDamping: 0 + canCollide: False + - type: InsideEntityStorage +- proto: ClothingNeckMantleCMO + entities: + - uid: 8859 + components: + - type: Transform + pos: 25.406673,-19.374836 + parent: 2 +- proto: ClothingNeckMantleHOS + entities: + - uid: 8860 + components: + - type: Transform + pos: -24.003525,40.67299 + parent: 2 +- proto: ClothingNeckStethoscope + entities: + - uid: 8861 + components: + - type: Transform + pos: 20.564407,-13.356026 + parent: 2 + - uid: 8862 + components: + - type: Transform + pos: 14.597477,-32.364628 + parent: 2 +- proto: ClothingNeckTransPin + entities: + - uid: 8863 + components: + - type: Transform + pos: 36.29247,30.486513 + parent: 2 +- proto: ClothingOuterArmorBulletproof + entities: + - uid: 8864 + components: + - type: Transform + pos: -14.65951,40.596058 + parent: 2 + - uid: 8865 + components: + - type: Transform + pos: -14.477816,40.60561 + parent: 2 + - uid: 8866 + components: + - type: Transform + pos: -14.573443,40.69157 + parent: 2 +- proto: ClothingOuterArmorCult + entities: + - uid: 8867 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 15.477132,33.43828 + parent: 2 +- proto: ClothingOuterArmorReflective + entities: + - uid: 8868 + components: + - type: Transform + pos: -14.32481,40.60561 + parent: 2 +- proto: ClothingOuterArmorRiot + entities: + - uid: 8869 + components: + - type: Transform + pos: -12.436878,40.66422 + parent: 2 + - uid: 8870 + components: + - type: Transform + pos: -12.589884,40.575077 + parent: 2 +- proto: ClothingOuterBioCmo + entities: + - uid: 8826 + components: + - type: Transform + parent: 8823 + - type: Physics + angularDamping: 0 + linearDamping: 0 + canCollide: False + - type: InsideEntityStorage +- proto: ClothingOuterClownPriest + entities: + - uid: 10527 + components: + - type: Transform + parent: 10524 + - type: Physics + angularDamping: 0 + linearDamping: 0 + canCollide: False + - type: InsideEntityStorage +- proto: ClothingOuterCoatLabGene + entities: + - uid: 8871 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 22.656715,-30.35881 + parent: 2 +- proto: ClothingOuterCoatMantis + entities: + - uid: 8872 + components: + - type: Transform + pos: -11.324873,-24.533173 + parent: 2 +- proto: ClothingOuterCorporateJacket + entities: + - uid: 22319 + components: + - type: Transform + parent: 22310 + - type: Physics + angularDamping: 0 + linearDamping: 0 + canCollide: False + - type: InsideEntityStorage +- proto: ClothingOuterHardsuitClown + entities: + - uid: 10544 + components: + - type: Transform + parent: 10524 + - type: Physics + angularDamping: 0 + linearDamping: 0 + canCollide: False + - type: InsideEntityStorage +- proto: ClothingOuterHardsuitMime + entities: + - uid: 10513 + components: + - type: Transform + parent: 10501 + - type: Physics + angularDamping: 0 + linearDamping: 0 + canCollide: False + - type: InsideEntityStorage +- proto: ClothingOuterStraightjacket + entities: + - uid: 8827 + components: + - type: Transform + parent: 8823 + - type: Physics + angularDamping: 0 + linearDamping: 0 + canCollide: False + - type: InsideEntityStorage + - uid: 8851 + components: + - type: Transform + parent: 8848 + - type: Physics + canCollide: False + - type: InsideEntityStorage + - uid: 8852 + components: + - type: Transform + parent: 8848 + - type: Physics + canCollide: False + - type: InsideEntityStorage + - uid: 8873 + components: + - type: Transform + pos: -33.36994,25.62809 + parent: 2 +- proto: ClothingOuterSuitRad + entities: + - uid: 8874 + components: + - type: Transform + pos: -6.3512006,-62.312706 + parent: 2 +- proto: ClothingOuterVestHazard + entities: + - uid: 8875 + components: + - type: Transform + pos: 25.514149,-62.429245 + parent: 2 +- proto: ClothingOuterWinterClown + entities: + - uid: 10551 + components: + - type: Transform + parent: 10524 + - type: Physics + angularDamping: 0 + linearDamping: 0 + canCollide: False + - type: InsideEntityStorage +- proto: ClothingOuterWinterCoatMantis + entities: + - uid: 8876 + components: + - type: Transform + pos: -8.484784,-22.480118 + parent: 2 +- proto: ClothingOuterWinterMime + entities: + - uid: 10522 + components: + - type: Transform + parent: 10501 + - type: Physics + angularDamping: 0 + linearDamping: 0 + canCollide: False + - type: InsideEntityStorage +- proto: ClothingShoesBootsMag + entities: + - uid: 8877 + components: + - type: Transform + pos: -6.654292,-23.211048 + parent: 2 + - uid: 8878 + components: + - type: Transform + pos: -6.383896,-23.322937 + parent: 2 + - uid: 8879 + components: + - type: Transform + pos: -6.663616,-23.434824 + parent: 2 + - uid: 8880 + components: + - type: Transform + pos: -6.383896,-23.481445 + parent: 2 + - uid: 8881 + components: + - type: Transform + pos: 2.3849049,-59.000687 + parent: 2 + - uid: 8882 + components: + - type: Transform + pos: 2.5340893,-58.926094 + parent: 2 +- proto: ClothingShoesBootsWinterClown + entities: + - uid: 10542 + components: + - type: Transform + parent: 10524 + - type: Physics + angularDamping: 0 + linearDamping: 0 + canCollide: False + - type: InsideEntityStorage +- proto: ClothingShoesBootsWinterMime + entities: + - uid: 10510 + components: + - type: Transform + parent: 10501 + - type: Physics + angularDamping: 0 + linearDamping: 0 + canCollide: False + - type: InsideEntityStorage +- proto: ClothingShoesClown + entities: + - uid: 10528 + components: + - type: Transform + parent: 10524 + - type: Physics + angularDamping: 0 + linearDamping: 0 + canCollide: False + - type: InsideEntityStorage +- proto: ClothingShoesClownBanana + entities: + - uid: 10549 + components: + - type: Transform + parent: 10524 + - type: Physics + angularDamping: 0 + linearDamping: 0 + canCollide: False + - type: InsideEntityStorage +- proto: ClothingShoesClownLarge + entities: + - uid: 10536 + components: + - type: Transform + parent: 10524 + - type: Physics + angularDamping: 0 + linearDamping: 0 + canCollide: False + - type: InsideEntityStorage +- proto: ClothingUnderSocksCoder + entities: + - uid: 8884 + components: + - type: Transform + parent: 8883 + - type: Physics + angularDamping: 0 + linearDamping: 0 + canCollide: False + - type: InsideEntityStorage +- proto: ClothingUniformJumpskirtMime + entities: + - uid: 10506 + components: + - type: Transform + parent: 10501 + - type: Physics + angularDamping: 0 + linearDamping: 0 + canCollide: False + - type: InsideEntityStorage +- proto: ClothingUniformJumpskirtTacticalMaid + entities: + - uid: 8886 + components: + - type: Transform + pos: 11.488179,39.40894 + parent: 2 +- proto: ClothingUniformJumpsuitAncient + entities: + - uid: 8888 + components: + - type: Transform + parent: 8887 + - type: Physics + canCollide: False + - type: InsideEntityStorage +- proto: ClothingUniformJumpsuitCentcomAgent + entities: + - uid: 22312 + components: + - type: Transform + parent: 22310 + - type: Physics + angularDamping: 0 + linearDamping: 0 + canCollide: False + - type: InsideEntityStorage +- proto: ClothingUniformJumpsuitClown + entities: + - uid: 10525 + components: + - type: Transform + parent: 10524 + - type: Physics + angularDamping: 0 + linearDamping: 0 + canCollide: False + - type: InsideEntityStorage +- proto: ClothingUniformJumpsuitClownBanana + entities: + - uid: 10550 + components: + - type: Transform + parent: 10524 + - type: Physics + angularDamping: 0 + linearDamping: 0 + canCollide: False + - type: InsideEntityStorage +- proto: ClothingUniformJumpsuitMime + entities: + - uid: 10502 + components: + - type: Transform + parent: 10501 + - type: Physics + angularDamping: 0 + linearDamping: 0 + canCollide: False + - type: InsideEntityStorage +- proto: ClothingUniformJumpsuitNanotrasen + entities: + - uid: 22314 + components: + - type: Transform + parent: 22310 + - type: Physics + angularDamping: 0 + linearDamping: 0 + canCollide: False + - type: InsideEntityStorage +- proto: ClownRecorder + entities: + - uid: 8889 + components: + - type: Transform + pos: -21.480698,-41.466324 + parent: 2 + - uid: 10541 + components: + - type: Transform + parent: 10524 + - type: Physics + angularDamping: 0 + linearDamping: 0 + canCollide: False + - type: InsideEntityStorage +- proto: Cobweb1 + entities: + - uid: 8890 + components: + - type: Transform + pos: -13.5,6.5 + parent: 2 + - uid: 8891 + components: + - type: Transform + pos: -17.5,-2.5 + parent: 2 + - uid: 8892 + components: + - type: Transform + pos: -8.5,-12.5 + parent: 2 + - uid: 8893 + components: + - type: Transform + pos: -21.5,-41.5 + parent: 2 + - uid: 8894 + components: + - type: Transform + pos: 18.5,-2.5 + parent: 2 + - uid: 8895 + components: + - type: Transform + pos: 26.5,-7.5 + parent: 2 + - uid: 8896 + components: + - type: Transform + pos: 42.5,24.5 + parent: 2 + - uid: 8897 + components: + - type: Transform + pos: 10.5,27.5 + parent: 2 + - uid: 8898 + components: + - type: Transform + pos: 34.5,-27.5 + parent: 2 + - uid: 8901 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 18.5,-29.5 + parent: 2 + - uid: 8902 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 18.5,-29.5 + parent: 2 + - uid: 8903 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 22.5,-33.5 + parent: 2 + - uid: 8904 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 22.5,-33.5 + parent: 2 + - uid: 8908 + components: + - type: Transform + pos: 18.5,-36.5 + parent: 2 + - uid: 8909 + components: + - type: Transform + pos: 30.5,-33.5 + parent: 2 + - uid: 8910 + components: + - type: Transform + pos: 32.5,-36.5 + parent: 2 + - uid: 8911 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 47.5,-36.5 + parent: 2 + - uid: 8912 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 38.5,-36.5 + parent: 2 + - uid: 8913 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 41.5,-40.5 + parent: 2 + - uid: 8914 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 42.5,-39.5 + parent: 2 + - uid: 8915 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 8.5,-34.5 + parent: 2 +- proto: Cobweb2 + entities: + - uid: 8916 + components: + - type: Transform + pos: -10.5,-5.5 + parent: 2 + - uid: 8917 + components: + - type: Transform + pos: 9.5,-9.5 + parent: 2 + - uid: 8918 + components: + - type: Transform + pos: -17.5,-11.5 + parent: 2 + - uid: 8919 + components: + - type: Transform + pos: -6.5,-39.5 + parent: 2 + - uid: 8920 + components: + - type: Transform + pos: -19.5,-41.5 + parent: 2 + - uid: 8921 + components: + - type: Transform + pos: 30.5,-10.5 + parent: 2 + - uid: 8922 + components: + - type: Transform + pos: -2.5,45.5 + parent: 2 + - uid: 8923 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 22.5,-33.5 + parent: 2 + - uid: 8925 + components: + - type: Transform + pos: 47.5,-36.5 + parent: 2 + - uid: 8926 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 40.5,-36.5 + parent: 2 + - uid: 8927 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 44.5,-40.5 + parent: 2 + - uid: 8928 + components: + - type: Transform + pos: 36.5,-36.5 + parent: 2 +- proto: CockroachTimedSpawner + entities: + - uid: 8929 + components: + - type: Transform + pos: -40.5,-26.5 + parent: 2 +- proto: ComfyChair + entities: + - uid: 928 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -17.5,10.5 + parent: 2 + - uid: 8930 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -2.5,-3.5 + parent: 2 + - uid: 8931 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -1.5,-3.5 + parent: 2 + - uid: 8932 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 3.5,-3.5 + parent: 2 + - uid: 8933 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 4.5,-3.5 + parent: 2 + - uid: 8934 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 44.5,-0.5 + parent: 2 + - uid: 8935 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -18.5,22.5 + parent: 2 + - uid: 8936 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -18.5,21.5 + parent: 2 + - uid: 8937 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -18.5,20.5 + parent: 2 + - uid: 8938 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -24.5,39.5 + parent: 2 + - uid: 8939 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -23.5,39.5 + parent: 2 + - uid: 8940 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -22.5,39.5 + parent: 2 + - uid: 8941 + components: + - type: Transform + pos: -23.5,41.5 + parent: 2 + - uid: 8942 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -7.5,48.5 + parent: 2 + - uid: 8943 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -7.5,55.5 + parent: 2 + - uid: 8944 + components: + - type: Transform + pos: 7.5,55.5 + parent: 2 + - uid: 8945 + components: + - type: Transform + pos: 8.5,55.5 + parent: 2 + - uid: 8946 + components: + - type: Transform + pos: 9.5,55.5 + parent: 2 + - uid: 8947 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 9.5,53.5 + parent: 2 + - uid: 8948 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 8.5,53.5 + parent: 2 + - uid: 8949 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 7.5,53.5 + parent: 2 + - uid: 8950 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 2.5,85.5 + parent: 2 + - uid: 8951 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 0.5,85.5 + parent: 2 + - uid: 8952 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 46.5,-24.5 + parent: 2 + - uid: 8953 + components: + - type: Transform + pos: 7.5,-39.5 + parent: 2 + - uid: 8954 + components: + - type: Transform + pos: 8.5,-39.5 + parent: 2 + - uid: 8955 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 12.5,-50.5 + parent: 2 + - uid: 8956 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 12.5,-51.5 + parent: 2 + - uid: 8957 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 10.5,-50.5 + parent: 2 + - uid: 8958 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 7.5,26.5 + parent: 2 + - uid: 8959 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -11.5,-23.5 + parent: 2 +- proto: CommsComputerCircuitboard + entities: + - uid: 8960 + components: + - type: Transform + pos: -4.5,-39.5 + parent: 2 +- proto: ComputerAlert + entities: + - uid: 8961 + components: + - type: Transform + pos: 5.5,35.5 + parent: 2 + - uid: 8962 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 3.5,60.5 + parent: 2 + - uid: 8963 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 10.5,-55.5 + parent: 2 + - uid: 8964 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 27.5,-64.5 + parent: 2 + - uid: 8965 + components: + - type: Transform + pos: -13.5,-55.5 + parent: 2 + - uid: 8966 + components: + - type: Transform + pos: -11.5,-55.5 + parent: 2 + - uid: 8967 + components: + - type: Transform + pos: 19.5,-39.5 + parent: 2 + - uid: 8968 + components: + - type: Transform + pos: 20.5,-39.5 + parent: 2 + - uid: 8969 + components: + - type: Transform + pos: 21.5,-39.5 + parent: 2 + - uid: 8970 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 22.5,-54.5 + parent: 2 + - uid: 8971 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 22.5,-62.5 + parent: 2 + - uid: 8972 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 22.5,-58.5 + parent: 2 + - uid: 8973 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 32.5,-58.5 + parent: 2 + - uid: 8974 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 32.5,-62.5 + parent: 2 + - uid: 8975 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 38.5,-42.5 + parent: 2 + - uid: 8976 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 32.5,-53.5 + parent: 2 +- proto: ComputerAnalysisConsole + entities: + - uid: 8977 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -14.5,-24.5 + parent: 2 + - uid: 8978 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -20.5,-30.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 15928: + - ArtifactAnalyzerSender: ArtifactAnalyzerReceiver + - uid: 8979 + components: + - type: Transform + pos: -2.5,-30.5 + parent: 2 +- proto: computerBodyScanner + entities: + - uid: 821 + components: + - type: Transform + pos: 19.5,-30.5 + parent: 2 + - uid: 8980 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 43.5,-40.5 + parent: 2 +- proto: ComputerBroken + entities: + - uid: 8981 + components: + - type: Transform + pos: 38.5,-36.5 + parent: 2 +- proto: ComputerCargoBounty + entities: + - uid: 8982 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -36.5,-2.5 + parent: 2 + - uid: 8983 + components: + - type: Transform + pos: -27.5,8.5 + parent: 2 +- proto: ComputerCargoOrders + entities: + - uid: 8984 + components: + - type: Transform + pos: -2.5,61.5 + parent: 2 + - uid: 8985 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -36.5,-28.5 + parent: 2 + - uid: 8986 + components: + - type: Transform + pos: 18.5,-18.5 + parent: 2 + - uid: 8988 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -36.5,8.5 + parent: 2 + - uid: 8989 + components: + - type: Transform + pos: -28.5,8.5 + parent: 2 + - uid: 8990 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -36.5,9.5 + parent: 2 + - uid: 22689 + components: + - type: Transform + pos: -1.5,-44.5 + parent: 2 +- proto: ComputerCargoShuttle + entities: + - uid: 8991 + components: + - type: Transform + pos: -29.5,8.5 + parent: 2 +- proto: ComputerCloningConsole + entities: + - uid: 820 + components: + - type: Transform + pos: 20.5,-30.5 + parent: 2 + - uid: 8992 + components: + - type: Transform + pos: 31.5,-27.5 + parent: 2 +- proto: ComputerComms + entities: + - uid: 8993 + components: + - type: Transform + pos: -8.5,53.5 + parent: 2 + - uid: 8994 + components: + - type: Transform + pos: 0.5,62.5 + parent: 2 +- proto: ComputerCrewMonitoring + entities: + - uid: 8995 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -28.5,32.5 + parent: 2 + - uid: 8996 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 7.5,60.5 + parent: 2 + - uid: 8997 + components: + - type: Transform + pos: 25.5,-17.5 + parent: 2 + - uid: 8998 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 7.5,-19.5 + parent: 2 + - uid: 8999 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 20.5,-25.5 + parent: 2 + - uid: 9000 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 7.5,46.5 + parent: 2 +- proto: ComputerCriminalRecords + entities: + - uid: 9001 + components: + - type: Transform + pos: -3.5,16.5 + parent: 2 + - uid: 9002 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 28.5,-2.5 + parent: 2 + - uid: 9003 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 46.5,-18.5 + parent: 2 + - uid: 9004 + components: + - type: Transform + pos: -7.5,20.5 + parent: 2 + - uid: 9005 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -7.5,32.5 + parent: 2 + - uid: 9006 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -17.5,34.5 + parent: 2 + - uid: 9007 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -26.5,38.5 + parent: 2 + - uid: 9008 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -42.5,19.5 + parent: 2 + - uid: 9009 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -5.5,60.5 + parent: 2 + - uid: 9010 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 4.5,24.5 + parent: 2 +- proto: ComputerFrame + entities: + - uid: 9011 + components: + - type: Transform + pos: -12.5,-2.5 + parent: 2 + - uid: 9012 + components: + - type: Transform + pos: -11.5,-2.5 + parent: 2 + - uid: 9013 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -36.5,-20.5 + parent: 2 + - uid: 9014 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -22.5,-51.5 + parent: 2 + - uid: 9015 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -22.5,-51.5 + parent: 2 + - uid: 9016 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -27.5,-67.5 + parent: 2 + - uid: 9017 + components: + - type: Transform + pos: 43.5,0.5 + parent: 2 + - uid: 9018 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 38.5,0.5 + parent: 2 + - uid: 9019 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 42.5,37.5 + parent: 2 + - uid: 9020 + components: + - type: Transform + pos: 44.5,46.5 + parent: 2 + - uid: 9021 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 3.5,69.5 + parent: 2 + - uid: 9022 + components: + - type: Transform + pos: 1.5,72.5 + parent: 2 + - uid: 9023 + components: + - type: Transform + pos: -2.5,85.5 + parent: 2 + - uid: 9026 + components: + - type: Transform + pos: -12.5,-55.5 + parent: 2 + - uid: 9027 + components: + - type: Transform + pos: -23.5,-54.5 + parent: 2 +- proto: ComputerId + entities: + - uid: 9028 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -17.5,-23.5 + parent: 2 + - uid: 9029 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -23.5,6.5 + parent: 2 + - uid: 9030 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -26.5,40.5 + parent: 2 + - uid: 9031 + components: + - type: Transform + pos: -7.5,53.5 + parent: 2 + - uid: 9032 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 6.5,46.5 + parent: 2 + - uid: 9033 + components: + - type: Transform + pos: 1.5,62.5 + parent: 2 + - uid: 9034 + components: + - type: Transform + pos: 26.5,-17.5 + parent: 2 + - uid: 9035 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 11.5,-55.5 + parent: 2 +- proto: ComputerMassMedia + entities: + - uid: 9036 + components: + - type: Transform + pos: 19.5,21.5 + parent: 2 +- proto: ComputerMassMediaCircuitboard + entities: + - uid: 9037 + components: + - type: Transform + pos: -2.5972466,-35.5244 + parent: 2 +- proto: ComputerMedicalRecords + entities: + - uid: 9038 + components: + - type: Transform + pos: -18.5,-16.5 + parent: 2 + - uid: 9039 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -26.5,39.5 + parent: 2 + - uid: 9040 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -28.5,39.5 + parent: 2 + - uid: 9041 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -41.5,19.5 + parent: 2 + - uid: 9042 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 7.5,59.5 + parent: 2 + - uid: 9043 + components: + - type: Transform + pos: 15.5,-13.5 + parent: 2 +- proto: ComputerPalletConsole + entities: + - uid: 9044 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 7.5,58.5 + parent: 2 +- proto: ComputerPowerMonitoring + entities: + - uid: 9045 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -1.5,61.5 + parent: 2 + - uid: 9046 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -2.5,-47.5 + parent: 2 + - uid: 9047 + components: + - type: Transform + pos: 11.5,-53.5 + parent: 2 +- proto: ComputerRadar + entities: + - uid: 9048 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -38.5,-20.5 + parent: 2 + - uid: 9049 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -42.5,25.5 + parent: 2 + - uid: 9050 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 3.5,61.5 + parent: 2 + - uid: 9051 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -20.5,-63.5 + parent: 2 +- proto: ComputerResearchAndDevelopment + entities: + - uid: 9052 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -36.5,-26.5 + parent: 2 + - uid: 9053 + components: + - type: Transform + pos: -25.5,-33.5 + parent: 2 + - uid: 9054 + components: + - type: Transform + pos: -21.5,-16.5 + parent: 2 + - uid: 9055 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -14.5,-23.5 + parent: 2 + - uid: 9056 + components: + - type: Transform + pos: -4.5,-30.5 + parent: 2 +- proto: ComputerSalvageExpedition + entities: + - uid: 9057 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -23.5,5.5 + parent: 2 + - uid: 9058 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -42.5,-13.5 + parent: 2 + - uid: 9059 + components: + - type: Transform + pos: 4.5,61.5 + parent: 2 +- proto: ComputerShuttleCargo + entities: + - uid: 9060 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -42.5,-0.5 + parent: 2 +- proto: ComputerShuttleSalvage + entities: + - uid: 9061 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -44.5,-13.5 + parent: 2 +- proto: ComputerSolarControl + entities: + - uid: 9062 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -33.5,-54.5 + parent: 2 + - uid: 9063 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -33.5,-54.5 + parent: 2 + - uid: 9064 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -1.5,60.5 + parent: 2 + - uid: 9065 + components: + - type: Transform + pos: -54.5,32.5 + parent: 2 + - uid: 9066 + components: + - type: Transform + pos: 10.5,-53.5 + parent: 2 + - uid: 9067 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -2.5,-48.5 + parent: 2 + - uid: 9068 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -17.5,-63.5 + parent: 2 + - uid: 9069 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 40.5,-59.5 + parent: 2 + - uid: 9070 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 46.5,21.5 + parent: 2 +- proto: ComputerStationRecords + entities: + - uid: 9071 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 30.5,-3.5 + parent: 2 + - uid: 9072 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -21.5,20.5 + parent: 2 + - uid: 9073 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -17.5,35.5 + parent: 2 + - uid: 9074 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -20.5,39.5 + parent: 2 + - uid: 9075 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -5.5,59.5 + parent: 2 + - uid: 9076 + components: + - type: Transform + pos: 4.5,-48.5 + parent: 2 +- proto: ComputerSurveillanceCameraMonitor + entities: + - uid: 9077 + components: + - type: Transform + pos: 46.5,-16.5 + parent: 2 + - uid: 9078 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -21.5,21.5 + parent: 2 + - uid: 9079 + components: + - type: Transform + pos: -7.5,34.5 + parent: 2 + - uid: 9080 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -17.5,36.5 + parent: 2 + - uid: 9081 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -20.5,40.5 + parent: 2 + - uid: 9082 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -20.5,40.5 + parent: 2 + - uid: 9083 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -42.5,24.5 + parent: 2 + - uid: 9084 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -5.5,58.5 + parent: 2 + - uid: 9085 + components: + - type: Transform + pos: 6.5,-18.5 + parent: 2 + - uid: 9086 + components: + - type: Transform + pos: 3.5,-48.5 + parent: 2 + - uid: 9087 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 30.5,-2.5 + parent: 2 + - uid: 9088 + components: + - type: Transform + pos: 6.5,35.5 + parent: 2 + - uid: 9089 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -30.5,-35.5 + parent: 2 +- proto: ComputerTelevision + entities: + - uid: 9090 + components: + - type: Transform + pos: 11.5,25.5 + parent: 2 + - uid: 9091 + components: + - type: Transform + pos: -5.5,52.5 + parent: 2 + - uid: 9092 + components: + - type: Transform + pos: 15.5,9.5 + parent: 2 + - uid: 9093 + components: + - type: Transform + pos: -42.5,35.5 + parent: 2 +- proto: ContainmentFieldGenerator + entities: + - uid: 9094 + components: + - type: Transform + pos: 13.5,-58.5 + parent: 2 + - uid: 9095 + components: + - type: Transform + pos: 13.5,-59.5 + parent: 2 + - uid: 9096 + components: + - type: Transform + pos: 12.5,-58.5 + parent: 2 + - uid: 9097 + components: + - type: Transform + pos: 12.5,-59.5 + parent: 2 +- proto: ConveyorBelt + entities: + - uid: 9098 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -27.5,-2.5 + parent: 2 + - type: DeviceLinkSink + links: + - 19984 + - uid: 9099 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -28.5,-2.5 + parent: 2 + - type: DeviceLinkSink + links: + - 19984 + - uid: 9100 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -23.5,-2.5 + parent: 2 + - type: DeviceLinkSink + links: + - 19984 + - uid: 9101 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -24.5,-2.5 + parent: 2 + - type: DeviceLinkSink + links: + - 19984 + - uid: 9102 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -25.5,-2.5 + parent: 2 + - type: DeviceLinkSink + links: + - 19984 + - uid: 9103 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -35.5,11.5 + parent: 2 + - type: DeviceLinkSink + links: + - 19979 + - uid: 9104 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -35.5,12.5 + parent: 2 + - type: DeviceLinkSink + links: + - 19979 + - uid: 9105 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -36.5,12.5 + parent: 2 + - type: DeviceLinkSink + links: + - 19979 + - uid: 9106 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -37.5,12.5 + parent: 2 + - type: DeviceLinkSink + links: + - 19979 + - uid: 9107 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -38.5,12.5 + parent: 2 + - type: DeviceLinkSink + links: + - 19979 + - uid: 9108 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -39.5,12.5 + parent: 2 + - type: DeviceLinkSink + links: + - 19979 + - uid: 9109 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -40.5,12.5 + parent: 2 + - type: DeviceLinkSink + links: + - 19979 + - uid: 9110 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -41.5,12.5 + parent: 2 + - type: DeviceLinkSink + links: + - 19979 + - uid: 9111 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -42.5,12.5 + parent: 2 + - type: DeviceLinkSink + links: + - 19979 + - uid: 9112 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -43.5,12.5 + parent: 2 + - type: DeviceLinkSink + links: + - 19979 + - uid: 9113 + components: + - type: Transform + pos: -44.5,12.5 + parent: 2 + - type: DeviceLinkSink + links: + - 19979 + - uid: 9114 + components: + - type: Transform + pos: -44.5,11.5 + parent: 2 + - type: DeviceLinkSink + links: + - 19979 + - uid: 9115 + components: + - type: Transform + pos: -44.5,10.5 + parent: 2 + - type: DeviceLinkSink + links: + - 19979 + - uid: 9116 + components: + - type: Transform + pos: -44.5,9.5 + parent: 2 + - type: DeviceLinkSink + links: + - 19979 + - uid: 9117 + components: + - type: Transform + pos: -44.5,8.5 + parent: 2 + - type: DeviceLinkSink + links: + - 19979 + - uid: 9118 + components: + - type: Transform + pos: -44.5,7.5 + parent: 2 + - type: DeviceLinkSink + links: + - 19979 + - uid: 9119 + components: + - type: Transform + pos: -44.5,6.5 + parent: 2 + - type: DeviceLinkSink + links: + - 19979 + - uid: 9120 + components: + - type: Transform + pos: -44.5,5.5 + parent: 2 + - type: DeviceLinkSink + links: + - 19979 + - uid: 9121 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -45.5,-2.5 + parent: 2 + - type: DeviceLinkSink + links: + - 19977 + - uid: 9122 + components: + - type: Transform + pos: -44.5,-2.5 + parent: 2 + - type: DeviceLinkSink + links: + - 19977 + - uid: 9123 + components: + - type: Transform + pos: -44.5,-3.5 + parent: 2 + - type: DeviceLinkSink + links: + - 19977 + - uid: 9124 + components: + - type: Transform + pos: -44.5,-4.5 + parent: 2 + - type: DeviceLinkSink + links: + - 19977 + - uid: 9125 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -44.5,-5.5 + parent: 2 + - type: DeviceLinkSink + links: + - 19977 + - uid: 9126 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -43.5,-5.5 + parent: 2 + - type: DeviceLinkSink + links: + - 19977 + - uid: 9127 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -42.5,-5.5 + parent: 2 + - type: DeviceLinkSink + links: + - 19977 + - uid: 9128 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -41.5,-5.5 + parent: 2 + - type: DeviceLinkSink + links: + - 19977 + - uid: 9129 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -41.5,4.5 + parent: 2 + - type: DeviceLinkSink + links: + - 19978 + - uid: 9130 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -42.5,4.5 + parent: 2 + - type: DeviceLinkSink + links: + - 19978 + - uid: 9131 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -43.5,4.5 + parent: 2 + - type: DeviceLinkSink + links: + - 19978 + - uid: 9132 + components: + - type: Transform + pos: -44.5,4.5 + parent: 2 + - type: DeviceLinkSink + links: + - 19978 + - uid: 9133 + components: + - type: Transform + pos: -44.5,3.5 + parent: 2 + - type: DeviceLinkSink + links: + - 19978 + - uid: 9134 + components: + - type: Transform + pos: -44.5,2.5 + parent: 2 + - type: DeviceLinkSink + links: + - 19978 + - uid: 9135 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -44.5,1.5 + parent: 2 + - type: DeviceLinkSink + links: + - 19978 + - uid: 9136 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -45.5,1.5 + parent: 2 + - type: DeviceLinkSink + links: + - 19978 + - uid: 9137 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -38.5,14.5 + parent: 2 + - uid: 9138 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -37.5,14.5 + parent: 2 + - uid: 9139 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -37.5,15.5 + parent: 2 + - type: ApcPowerReceiver + needsPower: False + - uid: 9140 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -37.5,16.5 + parent: 2 + - uid: 9141 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -37.5,17.5 + parent: 2 + - uid: 9142 + components: + - type: Transform + pos: -38.5,17.5 + parent: 2 + - uid: 9143 + components: + - type: Transform + pos: -38.5,16.5 + parent: 2 + - uid: 9144 + components: + - type: Transform + pos: -38.5,15.5 + parent: 2 + - uid: 9145 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -44.5,16.5 + parent: 2 + - type: DeviceLinkSink + links: + - 19980 + - uid: 9146 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -43.5,16.5 + parent: 2 + - type: DeviceLinkSink + links: + - 19980 + - uid: 9147 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -42.5,16.5 + parent: 2 + - type: DeviceLinkSink + links: + - 19980 + - uid: 9148 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -41.5,16.5 + parent: 2 + - type: DeviceLinkSink + links: + - 19980 + - uid: 9149 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -40.5,16.5 + parent: 2 + - type: DeviceLinkSink + links: + - 19980 + - uid: 9150 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -40.5,17.5 + parent: 2 + - type: DeviceLinkSink + links: + - 19980 + - uid: 9151 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -41.5,17.5 + parent: 2 + - type: DeviceLinkSink + links: + - 19980 + - uid: 9152 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -42.5,17.5 + parent: 2 + - type: DeviceLinkSink + links: + - 19980 + - uid: 9153 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -43.5,17.5 + parent: 2 + - type: DeviceLinkSink + links: + - 19980 + - uid: 9154 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -44.5,17.5 + parent: 2 + - type: DeviceLinkSink + links: + - 19980 + - uid: 9155 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -44.5,18.5 + parent: 2 + - type: DeviceLinkSink + links: + - 19980 + - uid: 9156 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -45.5,18.5 + parent: 2 + - type: DeviceLinkSink + links: + - 19980 + - uid: 9157 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 20.5,47.5 + parent: 2 + - type: DeviceLinkSink + links: + - 19983 + - uid: 9158 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 20.5,46.5 + parent: 2 + - type: DeviceLinkSink + links: + - 19983 + - uid: 9159 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -26.5,-2.5 + parent: 2 + - type: DeviceLinkSink + links: + - 19984 +- proto: CrateArtifactContainer + entities: + - uid: 9160 + components: + - type: Transform + pos: -20.5,-31.5 + parent: 2 + - 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: + - 9161 + paper_label: !type:ContainerSlot + showEnts: False + occludes: True + ent: null +- proto: CrateChemistrySecure + entities: + - uid: 8628 + components: + - type: Transform + pos: 44.5,-30.5 + parent: 2 + - type: ContainerContainer + containers: + entity_storage: !type:Container + showEnts: False + occludes: True + ents: + - 8629 + - 8630 + - 8631 + - 8632 + - 8633 + - 8634 + - 8635 + paper_label: !type:ContainerSlot + showEnts: False + occludes: True + ent: null +- proto: CrateCoffin + entities: + - uid: 9162 + components: + - type: Transform + pos: 20.5,40.5 + parent: 2 + - uid: 9163 + components: + - type: Transform + pos: 13.5,40.5 + parent: 2 + - uid: 9164 + components: + - type: Transform + pos: 13.5,39.5 + parent: 2 + - uid: 9165 + components: + - type: Transform + pos: 13.5,38.5 + parent: 2 + - uid: 9166 + components: + - type: Transform + pos: 23.5,42.5 + parent: 2 + - uid: 9167 + components: + - type: Transform + pos: 23.5,43.5 + parent: 2 + - uid: 9168 + components: + - type: Transform + pos: 23.5,44.5 + parent: 2 +- proto: CrateCommandSecure + entities: + - uid: 9169 + components: + - type: Transform + pos: -29.5,-10.5 + parent: 2 + - uid: 9170 + components: + - type: Transform + pos: -34.5,17.5 + parent: 2 + - type: Lock + locked: False + - type: Fixtures + fixtures: + fix1: + shape: !type:PolygonShape + radius: 0.01 + vertices: + - -0.4,-0.4 + - 0.4,-0.4 + - 0.4,0.29 + - -0.4,0.29 + mask: + - Impassable + - LowImpassable + layer: + - BulletImpassable + - Opaque + density: 50 + hard: True + restitution: 0 + friction: 0.4 + - type: EntityStorage + open: True + removedMasks: 20 + - type: PlaceableSurface + isPlaceable: True +- proto: CrateEmergencyRadiation + entities: + - uid: 9174 + components: + - type: Transform + pos: -19.5,-46.5 + parent: 2 +- proto: CrateEngineeringCableBulk + entities: + - uid: 9175 + components: + - type: Transform + pos: 46.5,24.5 + parent: 2 + - uid: 9176 + components: + - type: Transform + pos: -34.5,-56.5 + parent: 2 + - uid: 9177 + components: + - type: Transform + pos: 10.5,-60.5 + parent: 2 + - uid: 9178 + components: + - type: Transform + pos: -2.5,47.5 + parent: 2 + - uid: 9179 + components: + - type: Transform + pos: -22.5,-56.5 + parent: 2 +- proto: CrateEngineeringCableLV + entities: + - uid: 9180 + components: + - type: Transform + pos: -29.5,17.5 + parent: 2 +- proto: CrateEvaKit + entities: + - uid: 611 + components: + - type: Transform + pos: 6.5,44.5 + parent: 2 + - uid: 9181 + components: + - type: Transform + pos: -35.5,15.5 + parent: 2 + - 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 +- proto: CrateFilledSpawner + entities: + - uid: 9183 + components: + - type: Transform + pos: -19.5,-2.5 + parent: 2 + - uid: 9184 + components: + - type: Transform + pos: -17.5,-11.5 + parent: 2 + - uid: 9185 + components: + - type: Transform + pos: -19.5,-3.5 + parent: 2 + - uid: 9186 + components: + - type: Transform + pos: -22.5,-9.5 + parent: 2 + - uid: 9187 + components: + - type: Transform + pos: -21.5,-9.5 + parent: 2 + - uid: 9188 + components: + - type: Transform + pos: -27.5,10.5 + parent: 2 + - uid: 9189 + components: + - type: Transform + pos: -30.5,11.5 + parent: 2 + - uid: 9190 + components: + - type: Transform + pos: -26.5,13.5 + parent: 2 + - uid: 9191 + components: + - type: Transform + pos: -28.5,13.5 + parent: 2 + - uid: 9192 + components: + - type: Transform + pos: -29.5,13.5 + parent: 2 + - uid: 9193 + components: + - type: Transform + pos: -35.5,12.5 + parent: 2 + - uid: 9194 + components: + - type: Transform + pos: -37.5,12.5 + parent: 2 + - uid: 9195 + components: + - type: Transform + pos: -38.5,12.5 + parent: 2 + - uid: 9196 + components: + - type: Transform + pos: -40.5,9.5 + parent: 2 + - uid: 9197 + components: + - type: Transform + pos: -41.5,7.5 + parent: 2 + - uid: 9198 + components: + - type: Transform + pos: -36.5,3.5 + parent: 2 + - uid: 9199 + components: + - type: Transform + pos: -36.5,2.5 + parent: 2 + - uid: 9200 + components: + - type: Transform + pos: -38.5,2.5 + parent: 2 + - uid: 9201 + components: + - type: Transform + pos: -39.5,2.5 + parent: 2 + - uid: 9202 + components: + - type: Transform + pos: -41.5,1.5 + parent: 2 + - uid: 9203 + components: + - type: Transform + pos: -38.5,1.5 + parent: 2 + - uid: 9204 + components: + - type: Transform + pos: -39.5,-3.5 + parent: 2 + - uid: 9205 + components: + - type: Transform + pos: -38.5,-3.5 + parent: 2 + - uid: 9206 + components: + - type: Transform + pos: -38.5,-2.5 + parent: 2 + - uid: 9207 + components: + - type: Transform + pos: -40.5,-3.5 + parent: 2 + - uid: 9208 + components: + - type: Transform + pos: -36.5,-4.5 + parent: 2 + - uid: 9209 + components: + - type: Transform + pos: -40.5,-2.5 + parent: 2 +- proto: CrateFoodBarSupply + entities: + - uid: 9210 + components: + - type: Transform + pos: 16.5,18.5 + parent: 2 +- proto: CrateFoodPizza + entities: + - uid: 9211 + components: + - type: Transform + pos: 21.5,21.5 + parent: 2 + - type: Fixtures + fixtures: + fix1: + shape: !type:PolygonShape + radius: 0.01 + vertices: + - -0.4,-0.4 + - 0.4,-0.4 + - 0.4,0.29 + - -0.4,0.29 + mask: + - Impassable + - LowImpassable + layer: + - BulletImpassable + - Opaque + density: 50 + hard: True + restitution: 0 + friction: 0.4 + - type: EntityStorage + open: True + removedMasks: 20 + - type: PlaceableSurface + isPlaceable: True +- proto: CrateFreezer + entities: + - uid: 9212 + components: + - type: Transform + pos: -26.5,11.5 + parent: 2 + - type: EntityStorage + air: + volume: 200 + immutable: False + temperature: 75.31249 + moles: + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 +- proto: CrateGenericSteel + entities: + - uid: 9214 + components: + - type: Transform + pos: -29.5,-4.5 + parent: 2 +- proto: CrateHydroponicsSeedsMedicinal + entities: + - uid: 9215 + components: + - type: Transform + pos: 36.5,19.5 + parent: 2 +- proto: CrateHydroponicsTools + entities: + - uid: 9216 + components: + - type: Transform + pos: 38.5,19.5 + parent: 2 +- proto: CrateMaterialCardboard + entities: + - uid: 9217 + components: + - type: Transform + pos: -30.5,-54.5 + parent: 2 +- proto: CrateMedicalScrubs + entities: + - uid: 9218 + components: + - type: Transform + pos: -28.5,11.5 + parent: 2 + - type: EntityStorage + air: + volume: 200 + immutable: False + temperature: 75.31249 + moles: + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - uid: 9219 + components: + - type: Transform + pos: 12.5,-16.5 + parent: 2 +- proto: CrateMedicalSecure + entities: + - uid: 8823 + components: + - type: Transform + pos: 22.5,-17.5 + parent: 2 + - 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: + - 8828 + - 8824 + - 8827 + - 8825 + - 8826 + paper_label: !type:ContainerSlot + showEnts: False + occludes: True + ent: null +- proto: CrateMedicalSupplies + entities: + - uid: 9220 + components: + - type: Transform + pos: 14.5,-13.5 + parent: 2 + - type: Fixtures + fixtures: + fix1: + shape: !type:PolygonShape + radius: 0.01 + vertices: + - -0.4,-0.4 + - 0.4,-0.4 + - 0.4,0.29 + - -0.4,0.29 + mask: + - Impassable + - LowImpassable + layer: + - BulletImpassable + - Opaque + density: 50 + hard: True + restitution: 0 + friction: 0.4 + - type: EntityStorage + open: True + removedMasks: 20 + - type: PlaceableSurface + isPlaceable: True +- proto: CrateMedicalSurgery + entities: + - uid: 9221 + components: + - type: Transform + pos: 12.5,-14.5 + parent: 2 + - uid: 9222 + components: + - type: Transform + pos: 4.5,-13.5 + parent: 2 + - uid: 9223 + components: + - type: Transform + pos: -16.5,-17.5 + parent: 2 +- proto: CrateNPCCow + entities: + - uid: 9224 + components: + - type: Transform + pos: 24.5,17.5 + parent: 2 +- proto: CrateNPCHamlet + entities: + - uid: 9225 + components: + - type: Transform + pos: 4.5,58.5 + parent: 2 +- proto: CrateServiceBooks + entities: + - uid: 9226 + components: + - type: Transform + pos: 38.5,-0.5 + parent: 2 + - type: EntityStorage + air: + volume: 200 + immutable: False + temperature: 75.31249 + moles: + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - uid: 9227 + components: + - type: Transform + pos: -41.5,37.5 + parent: 2 +- proto: CrateServiceCustomSmokable + entities: + - uid: 9228 + components: + - type: Transform + pos: -23.5,-68.5 + parent: 2 + - type: EntityStorage + air: + volume: 200 + immutable: False + temperature: 75.31249 + moles: + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 +- proto: CrateServiceJanitorialSupplies + entities: + - uid: 9229 + components: + - type: Transform + pos: -5.5,30.5 + parent: 2 +- proto: CrateServicePersonnel + entities: + - uid: 9230 + components: + - type: Transform + pos: -31.5,15.5 + parent: 2 + - 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 +- proto: CrateTrashCart + entities: + - uid: 9231 + components: + - type: Transform + pos: -40.5,-7.5 + parent: 2 + - uid: 9232 + components: + - type: Transform + pos: -24.5,-9.5 + parent: 2 + - uid: 9233 + components: + - type: Transform + pos: -11.5,46.5 + parent: 2 + - uid: 9234 + components: + - type: Transform + pos: 14.5,25.5 + parent: 2 + - uid: 9235 + components: + - type: Transform + pos: 27.5,-6.5 + parent: 2 + - uid: 9236 + components: + - type: Transform + pos: -19.5,-35.5 + parent: 2 + - uid: 9237 + components: + - type: Transform + pos: -45.5,-27.5 + parent: 2 +- proto: CrateTrashCartFilled + entities: + - uid: 9238 + components: + - type: Transform + pos: -43.5,15.5 + parent: 2 + - uid: 9239 + components: + - type: Transform + pos: -10.5,-53.5 + parent: 2 +- proto: CrateTrashCartJani + entities: + - uid: 9240 + components: + - type: Transform + pos: 12.5,12.5 + parent: 2 +- proto: CrayonBox + entities: + - uid: 9241 + components: + - type: Transform + pos: -34.673954,-62.17356 + parent: 2 + - uid: 9242 + components: + - type: Transform + pos: -34.48533,-62.32021 + parent: 2 + - uid: 9243 + components: + - type: Transform + pos: -34.317665,-62.529705 + parent: 2 + - uid: 9244 + components: + - type: Transform + pos: 19.53846,4.6073794 + parent: 2 + - uid: 9245 + components: + - type: Transform + pos: 40.346092,13.153667 + parent: 2 + - uid: 9246 + components: + - type: Transform + pos: 38.428013,4.4356456 + parent: 2 + - uid: 9247 + components: + - type: Transform + pos: 38.574867,4.603478 + parent: 2 +- proto: CrayonMime + entities: + - uid: 10515 + components: + - type: Transform + parent: 10501 + - type: Physics + angularDamping: 0 + linearDamping: 0 + canCollide: False + - type: InsideEntityStorage +- proto: Crematorium + entities: + - uid: 9248 + components: + - type: Transform + pos: 13.5,36.5 + parent: 2 +- proto: CrewMonitoringServer + entities: + - uid: 9249 + components: + - type: Transform + pos: -32.5,17.5 + parent: 2 + - type: SingletonDeviceNetServer + active: False + available: False +- proto: CriminalRecordsComputerCircuitboard + entities: + - uid: 9250 + components: + - type: Transform + pos: -23.487724,18.538704 + parent: 2 +- proto: Crowbar + entities: + - uid: 9251 + components: + - type: Transform + pos: -12.749992,6.618308 + parent: 2 + - uid: 9252 + components: + - type: Transform + pos: 4.602319,14.763411 + parent: 2 + - uid: 9253 + components: + - type: Transform + pos: -37.25477,-50.84965 + parent: 2 + - uid: 9254 + components: + - type: Transform + pos: 43.58695,-18.320988 + parent: 2 + - uid: 9255 + components: + - type: Transform + pos: -6.076641,80.40069 + parent: 2 + - uid: 9256 + components: + - type: Transform + pos: 28.705112,-32.456554 + parent: 2 + - uid: 9257 + components: + - type: Transform + pos: -7.427861,-66.10646 + parent: 2 +- proto: CrowbarRed + entities: + - uid: 9258 + components: + - type: Transform + pos: -22.532516,-13.756351 + parent: 2 +- proto: CryogenicSleepUnitSpawner + entities: + - uid: 9260 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 32.5,22.5 + parent: 2 + - uid: 9261 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 32.5,24.5 + parent: 2 +- proto: CryogenicSleepUnitSpawnerLateJoin + entities: + - uid: 9259 + components: + - type: Transform + pos: 34.5,22.5 + parent: 2 + - uid: 9262 + components: + - type: Transform + pos: 34.5,24.5 + parent: 2 +- proto: CryoPod + entities: + - uid: 9263 + components: + - type: Transform + pos: 25.5,-27.5 + parent: 2 + - uid: 9264 + components: + - type: Transform + pos: 25.5,-29.5 + parent: 2 +- proto: CryoPodMachineCircuitboard + entities: + - uid: 9265 + components: + - type: Transform + pos: -4.484352,-36.451756 + parent: 2 +- proto: CryoxadoneBeakerSmall + entities: + - uid: 9266 + components: + - type: Transform + pos: 28.510334,-31.289518 + parent: 2 + - uid: 9267 + components: + - type: Transform + pos: 28.715462,-31.186954 + parent: 2 +- proto: CultAltarSpawner + entities: + - uid: 9268 + components: + - type: Transform + pos: 13.5,33.5 + parent: 2 +- proto: DefaultStationBeaconAICore + entities: + - uid: 9269 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 1.5,77.5 + parent: 2 +- proto: DefaultStationBeaconAISatellite + entities: + - uid: 9270 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 1.5,71.5 + parent: 2 +- proto: DefaultStationBeaconAME + entities: + - uid: 9271 + components: + - type: Transform + pos: -3.5,-58.5 + parent: 2 +- proto: DefaultStationBeaconAnomalyGenerator + entities: + - uid: 9272 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -43.5,-33.5 + parent: 2 +- proto: DefaultStationBeaconArmory + entities: + - uid: 9273 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -14.5,39.5 + parent: 2 +- proto: DefaultStationBeaconArrivals + entities: + - uid: 9274 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 43.5,38.5 + parent: 2 +- proto: DefaultStationBeaconArtifactLab + entities: + - uid: 9275 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -21.5,-31.5 + parent: 2 + - uid: 9276 + components: + - type: Transform + pos: -35.5,-49.5 + parent: 2 + - type: NavMapBeacon + text: Toxins Lab +- proto: DefaultStationBeaconAtmospherics + entities: + - uid: 9277 + components: + - type: Transform + pos: 27.5,-58.5 + parent: 2 +- proto: DefaultStationBeaconBar + entities: + - uid: 9278 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 18.5,9.5 + parent: 2 +- proto: DefaultStationBeaconBotany + entities: + - uid: 9279 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 35.5,16.5 + parent: 2 +- proto: DefaultStationBeaconBridge + entities: + - uid: 9280 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 0.5,59.5 + parent: 2 +- proto: DefaultStationBeaconBrig + entities: + - uid: 9281 + components: + - type: Transform + pos: -7.5,28.5 + parent: 2 +- proto: DefaultStationBeaconCaptainsQuarters + entities: + - uid: 9282 + components: + - type: Transform + pos: -5.5,54.5 + parent: 2 +- proto: DefaultStationBeaconCargoBay + entities: + - uid: 9283 + components: + - type: Transform + pos: -39.5,-0.5 + parent: 2 +- proto: DefaultStationBeaconCargoReception + entities: + - uid: 9284 + components: + - type: Transform + pos: -39.5,8.5 + parent: 2 +- proto: DefaultStationBeaconCERoom + entities: + - uid: 9285 + components: + - type: Transform + pos: 13.5,-52.5 + parent: 2 +- proto: DefaultStationBeaconChapel + entities: + - uid: 9286 + components: + - type: Transform + pos: 20.5,31.5 + parent: 2 +- proto: DefaultStationBeaconChemistry + entities: + - uid: 9287 + components: + - type: Transform + pos: 7.5,-30.5 + parent: 2 +- proto: DefaultStationBeaconCMORoom + entities: + - uid: 9288 + components: + - type: Transform + pos: 24.5,-19.5 + parent: 2 +- proto: DefaultStationBeaconCommand + entities: + - uid: 9289 + components: + - type: Transform + pos: 8.5,54.5 + parent: 2 +- proto: DefaultStationBeaconCourtroom + entities: + - uid: 9290 + components: + - type: Transform + pos: -11.5,13.5 + parent: 2 +- proto: DefaultStationBeaconCryosleep + entities: + - uid: 9291 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 33.5,23.5 + parent: 2 +- proto: DefaultStationBeaconDetectiveRoom + entities: + - uid: 9292 + components: + - type: Transform + pos: -20.5,20.5 + parent: 2 +- proto: DefaultStationBeaconDisposals + entities: + - uid: 9293 + components: + - type: Transform + pos: -42.5,15.5 + parent: 2 +- proto: DefaultStationBeaconDorms + entities: + - uid: 9294 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 25.5,39.5 + parent: 2 + - uid: 9295 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 25.5,36.5 + parent: 2 +- proto: DefaultStationBeaconEngineering + entities: + - uid: 9296 + components: + - type: Transform + pos: 0.5,-41.5 + parent: 2 +- proto: DefaultStationBeaconEscapePod + entities: + - uid: 9297 + components: + - type: Transform + pos: 29.5,41.5 + parent: 2 +- proto: DefaultStationBeaconEvac + entities: + - uid: 9298 + components: + - type: Transform + pos: 37.5,-8.5 + parent: 2 +- proto: DefaultStationBeaconEVAStorage + entities: + - uid: 9299 + components: + - type: Transform + pos: -4.5,-22.5 + parent: 2 +- proto: DefaultStationBeaconGravGen + entities: + - uid: 9300 + components: + - type: Transform + pos: 6.5,31.5 + parent: 2 +- proto: DefaultStationBeaconHOPOffice + entities: + - uid: 9301 + components: + - type: Transform + pos: 7.5,48.5 + parent: 2 +- proto: DefaultStationBeaconHOSRoom + entities: + - uid: 9302 + components: + - type: Transform + pos: -23.5,44.5 + parent: 2 +- proto: DefaultStationBeaconJanitorsCloset + entities: + - uid: 9303 + components: + - type: Transform + pos: 9.5,13.5 + parent: 2 +- proto: DefaultStationBeaconKitchen + entities: + - uid: 9304 + components: + - type: Transform + pos: 23.5,17.5 + parent: 2 +- proto: DefaultStationBeaconLawOffice + entities: + - uid: 9305 + components: + - type: Transform + pos: -4.5,15.5 + parent: 2 +- proto: DefaultStationBeaconLibrary + entities: + - uid: 9306 + components: + - type: Transform + pos: 40.5,7.5 + parent: 2 +- proto: DefaultStationBeaconMantis + entities: + - uid: 9307 + components: + - type: Transform + pos: -10.5,-22.5 + parent: 2 +- proto: DefaultStationBeaconMedbay + entities: + - uid: 9308 + components: + - type: Transform + pos: 22.5,-24.5 + parent: 2 +- proto: DefaultStationBeaconMedical + entities: + - uid: 9309 + components: + - type: Transform + pos: 7.5,-24.5 + parent: 2 + - uid: 9310 + components: + - type: Transform + pos: 31.5,-29.5 + parent: 2 + - type: NavMapBeacon + text: Cloaning + - uid: 9311 + components: + - type: Transform + pos: 40.5,-29.5 + parent: 2 + - type: NavMapBeacon + text: Virology +- proto: DefaultStationBeaconMorgue + entities: + - uid: 9312 + components: + - type: Transform + pos: 18.5,-9.5 + parent: 2 +- proto: DefaultStationBeaconPermaBrig + entities: + - uid: 9313 + components: + - type: Transform + pos: -39.5,34.5 + parent: 2 +- proto: DefaultStationBeaconPowerBank + entities: + - uid: 9314 + components: + - type: Transform + pos: -18.5,-57.5 + parent: 2 +- proto: DefaultStationBeaconQMRoom + entities: + - uid: 9315 + components: + - type: Transform + pos: -29.5,6.5 + parent: 2 +- proto: DefaultStationBeaconRDRoom + entities: + - uid: 9316 + components: + - type: Transform + pos: -16.5,-23.5 + parent: 2 +- proto: DefaultStationBeaconRND + entities: + - uid: 9317 + components: + - type: Transform + pos: -34.5,-28.5 + parent: 2 +- proto: DefaultStationBeaconRobotics + entities: + - uid: 9318 + components: + - type: Transform + pos: -22.5,-21.5 + parent: 2 +- proto: DefaultStationBeaconSalvage + entities: + - uid: 9319 + components: + - type: Transform + pos: -39.5,-10.5 + parent: 2 +- proto: DefaultStationBeaconScience + entities: + - uid: 9320 + components: + - type: Transform + pos: -13.5,-27.5 + parent: 2 + - uid: 9321 + components: + - type: Transform + pos: -11.5,-42.5 + parent: 2 + - type: NavMapBeacon + text: Xenobiologia +- proto: DefaultStationBeaconSecurity + entities: + - uid: 9322 + components: + - type: Transform + pos: -15.5,28.5 + parent: 2 +- proto: DefaultStationBeaconSecurityCheckpoint + entities: + - uid: 9323 + components: + - type: Transform + pos: -29.5,-34.5 + parent: 2 + - uid: 9324 + components: + - type: Transform + pos: 3.5,-49.5 + parent: 2 + - uid: 9325 + components: + - type: Transform + pos: 5.5,-19.5 + parent: 2 + - uid: 9326 + components: + - type: Transform + pos: 44.5,-16.5 + parent: 2 +- proto: DefaultStationBeaconServerRoom + entities: + - uid: 9327 + components: + - type: Transform + pos: -24.5,-37.5 + parent: 2 +- proto: DefaultStationBeaconService + entities: + - uid: 9328 + components: + - type: Transform + pos: 24.5,7.5 + parent: 2 +- proto: DefaultStationBeaconSolars + entities: + - uid: 9329 + components: + - type: Transform + pos: 50.5,23.5 + parent: 2 + - uid: 9330 + components: + - type: Transform + pos: 40.5,-57.5 + parent: 2 + - uid: 9331 + components: + - type: Transform + pos: -38.5,-56.5 + parent: 2 +- proto: DefaultStationBeaconSupply + entities: + - uid: 9332 + components: + - type: Transform + pos: -33.5,1.5 + parent: 2 +- proto: DefaultStationBeaconSurgery + entities: + - uid: 9333 + components: + - type: Transform + pos: 18.5,-14.5 + parent: 2 +- proto: DefaultStationBeaconTechVault + entities: + - uid: 9334 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -3.5,-38.5 + parent: 2 +- proto: DefaultStationBeaconTEG + entities: + - uid: 9335 + components: + - type: Transform + pos: 15.5,-44.5 + parent: 2 +- proto: DefaultStationBeaconTelecoms + entities: + - uid: 9336 + components: + - type: Transform + pos: 6.5,40.5 + parent: 2 +- proto: DefaultStationBeaconTheater + entities: + - uid: 9337 + components: + - type: Transform + pos: 34.5,10.5 + parent: 2 +- proto: DefaultStationBeaconToolRoom + entities: + - uid: 9338 + components: + - type: Transform + pos: 5.5,16.5 + parent: 2 +- proto: DefaultStationBeaconVault + entities: + - uid: 9339 + components: + - type: Transform + pos: -33.5,16.5 + parent: 2 +- proto: DefaultStationBeaconWardensOffice + entities: + - uid: 9340 + components: + - type: Transform + pos: -15.5,34.5 + parent: 2 +- proto: DefibrillatorCabinetFilled + entities: + - uid: 9341 + components: + - type: Transform + pos: 20.5,-26.5 + parent: 2 + - uid: 9342 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 35.5,-21.5 + parent: 2 +- proto: DeployableBarrier + entities: + - uid: 9343 + components: + - type: Transform + pos: -21.5,16.5 + parent: 2 +- proto: DeskBell + entities: + - uid: 9344 + components: + - type: Transform + pos: -36.629433,6.548981 + parent: 2 + - uid: 9345 + components: + - type: Transform + pos: -33.687996,-25.481403 + parent: 2 + - uid: 9346 + components: + - type: Transform + pos: -27.754581,-21.629313 + parent: 2 + - uid: 9347 + components: + - type: Transform + pos: 25.481232,9.498274 + parent: 2 + - uid: 9348 + components: + - type: Transform + pos: 18.505909,12.557251 + parent: 2 + - uid: 9349 + components: + - type: Transform + pos: 31.51572,14.840651 + parent: 2 + - uid: 9350 + components: + - type: Transform + pos: -13.363976,32.79391 + parent: 2 + - uid: 9351 + components: + - type: Transform + pos: 5.647772,47.62751 + parent: 2 + - uid: 9352 + components: + - type: Transform + pos: 39.174866,-26.494263 + parent: 2 + - uid: 9353 + components: + - type: Transform + pos: 9.549082,-20.438734 + parent: 2 + - uid: 9354 + components: + - type: Transform + pos: 0.5337652,-43.377193 + parent: 2 + - uid: 9355 + components: + - type: Transform + pos: -6.2765236,36.841625 + parent: 2 +- proto: DiagnoserMachineCircuitboard + entities: + - uid: 8634 + components: + - type: Transform + parent: 8628 + - type: Physics + canCollide: False + - type: InsideEntityStorage +- proto: DiceBag + entities: + - uid: 9356 + components: + - type: Transform + pos: 18.400833,9.654333 + parent: 2 + - uid: 9357 + components: + - type: Transform + pos: -38.71317,34.88084 + parent: 2 + - uid: 9358 + components: + - type: Transform + pos: -38.50804,34.731655 + parent: 2 + - uid: 9359 + components: + - type: Transform + pos: -38.327778,34.588688 + parent: 2 +- proto: DiseaseDiagnoser + entities: + - uid: 9360 + components: + - type: Transform + pos: 47.5,-32.5 + parent: 2 +- proto: DisposalBend + entities: + - uid: 9361 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -10.5,45.5 + parent: 2 + - uid: 9362 + components: + - type: Transform + pos: 2.5,47.5 + parent: 2 + - uid: 9363 + components: + - type: Transform + pos: -25.5,10.5 + parent: 2 + - uid: 9364 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -35.5,10.5 + parent: 2 + - uid: 9365 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -40.5,6.5 + parent: 2 + - uid: 9366 + components: + - type: Transform + pos: -40.5,14.5 + parent: 2 + - uid: 9367 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -44.5,14.5 + parent: 2 + - uid: 9368 + components: + - type: Transform + pos: -30.5,6.5 + parent: 2 + - uid: 9369 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -27.5,-3.5 + parent: 2 + - uid: 9370 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -27.5,-2.5 + parent: 2 + - uid: 9371 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -29.5,-3.5 + parent: 2 + - uid: 9372 + components: + - type: Transform + pos: -29.5,-0.5 + parent: 2 + - uid: 9373 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -33.5,-0.5 + parent: 2 + - uid: 9374 + components: + - type: Transform + pos: -28.5,-29.5 + parent: 2 + - uid: 9375 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -29.5,-29.5 + parent: 2 + - uid: 9376 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -37.5,-22.5 + parent: 2 + - uid: 9377 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -38.5,-8.5 + parent: 2 + - uid: 9378 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -24.5,-18.5 + parent: 2 + - uid: 9379 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -24.5,-22.5 + parent: 2 + - uid: 9380 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -25.5,-27.5 + parent: 2 + - uid: 9381 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -21.5,-33.5 + parent: 2 + - uid: 9382 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -25.5,-30.5 + parent: 2 + - uid: 9383 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -14.5,-20.5 + parent: 2 + - uid: 9384 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -16.5,-20.5 + parent: 2 + - uid: 9385 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -10.5,-21.5 + parent: 2 + - uid: 9386 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -33.5,-52.5 + parent: 2 + - uid: 9387 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -33.5,-31.5 + parent: 2 + - uid: 9388 + components: + - type: Transform + pos: -45.5,-29.5 + parent: 2 + - uid: 9389 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -45.5,-36.5 + parent: 2 + - uid: 9390 + components: + - type: Transform + pos: -42.5,-36.5 + parent: 2 + - uid: 9391 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -41.5,-39.5 + parent: 2 + - uid: 9392 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -42.5,-43.5 + parent: 2 + - uid: 9393 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 10.5,-31.5 + parent: 2 + - uid: 9394 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 13.5,-31.5 + parent: 2 + - uid: 9395 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -0.5,-24.5 + parent: 2 + - uid: 9396 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 22.5,-32.5 + parent: 2 + - uid: 9397 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 22.5,-36.5 + parent: 2 + - uid: 9398 + components: + - type: Transform + pos: 25.5,-19.5 + parent: 2 + - uid: 9399 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 30.5,-30.5 + parent: 2 + - uid: 9400 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 31.5,-21.5 + parent: 2 + - uid: 9401 + components: + - type: Transform + pos: 40.5,-24.5 + parent: 2 + - uid: 9402 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 40.5,-32.5 + parent: 2 + - uid: 9403 + components: + - type: Transform + pos: 37.5,-12.5 + parent: 2 + - uid: 9404 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -6.5,-9.5 + parent: 2 + - uid: 9405 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -24.5,-9.5 + parent: 2 + - uid: 9406 + components: + - type: Transform + pos: -24.5,-8.5 + parent: 2 + - uid: 9407 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 4.5,-7.5 + parent: 2 + - uid: 9408 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 4.5,-8.5 + parent: 2 + - uid: 9409 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -4.5,-8.5 + parent: 2 + - uid: 9410 + components: + - type: Transform + pos: -4.5,-7.5 + parent: 2 + - uid: 9411 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 9.5,4.5 + parent: 2 + - uid: 9412 + components: + - type: Transform + pos: 10.5,4.5 + parent: 2 + - uid: 9413 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 10.5,-4.5 + parent: 2 + - uid: 9414 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 8.5,-4.5 + parent: 2 + - uid: 9415 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 5.5,8.5 + parent: 2 + - uid: 9416 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 5.5,17.5 + parent: 2 + - uid: 9417 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -2.5,10.5 + parent: 2 + - uid: 9418 + components: + - type: Transform + pos: 4.5,26.5 + parent: 2 + - uid: 9419 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 0.5,26.5 + parent: 2 + - uid: 9420 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -14.5,28.5 + parent: 2 + - uid: 9421 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -14.5,19.5 + parent: 2 + - uid: 9422 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -12.5,31.5 + parent: 2 + - uid: 9423 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -26.5,35.5 + parent: 2 + - uid: 9424 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -23.5,38.5 + parent: 2 + - uid: 9425 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -23.5,29.5 + parent: 2 + - uid: 9426 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -27.5,29.5 + parent: 2 + - uid: 9427 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -27.5,20.5 + parent: 2 + - uid: 9428 + components: + - type: Transform + pos: -24.5,20.5 + parent: 2 + - uid: 9429 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -24.5,16.5 + parent: 2 + - uid: 9430 + components: + - type: Transform + pos: -20.5,16.5 + parent: 2 + - uid: 9431 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -20.5,11.5 + parent: 2 + - uid: 9432 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -34.5,11.5 + parent: 2 + - uid: 9433 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -2.5,29.5 + parent: 2 + - uid: 9434 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -3.5,29.5 + parent: 2 + - uid: 9435 + components: + - type: Transform + pos: 9.5,47.5 + parent: 2 + - uid: 9436 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 0.5,42.5 + parent: 2 + - uid: 9437 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -4.5,39.5 + parent: 2 + - uid: 9438 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -7.5,53.5 + parent: 2 + - uid: 9439 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -7.5,50.5 + parent: 2 + - uid: 9440 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -10.5,50.5 + parent: 2 + - uid: 9441 + components: + - type: Transform + pos: -6.5,45.5 + parent: 2 + - uid: 9442 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -6.5,42.5 + parent: 2 + - uid: 9443 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -2.5,59.5 + parent: 2 + - uid: 9444 + components: + - type: Transform + pos: -0.5,59.5 + parent: 2 + - uid: 9445 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -0.5,47.5 + parent: 2 + - uid: 9446 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 8.5,55.5 + parent: 2 + - uid: 9447 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 4.5,55.5 + parent: 2 + - uid: 9448 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 4.5,52.5 + parent: 2 + - uid: 9449 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 17.5,39.5 + parent: 2 + - uid: 9450 + components: + - type: Transform + pos: 20.5,39.5 + parent: 2 + - uid: 9451 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 20.5,31.5 + parent: 2 + - uid: 9452 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 29.5,39.5 + parent: 2 + - uid: 9453 + components: + - type: Transform + pos: 43.5,39.5 + parent: 2 + - uid: 9454 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 43.5,38.5 + parent: 2 + - uid: 9455 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 39.5,29.5 + parent: 2 + - uid: 9456 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 20.5,10.5 + parent: 2 + - uid: 9457 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 20.5,18.5 + parent: 2 + - uid: 9458 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 22.5,18.5 + parent: 2 + - uid: 9459 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 22.5,23.5 + parent: 2 + - uid: 9460 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 23.5,23.5 + parent: 2 + - uid: 9461 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 13.5,26.5 + parent: 2 + - uid: 9462 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 13.5,21.5 + parent: 2 + - uid: 9463 + components: + - type: Transform + pos: 32.5,16.5 + parent: 2 + - uid: 9464 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 39.5,1.5 + parent: 2 + - uid: 9465 + components: + - type: Transform + pos: 39.5,7.5 + parent: 2 + - uid: 9466 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 29.5,-0.5 + parent: 2 + - uid: 9467 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 4.5,-55.5 + parent: 2 + - uid: 9468 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 10.5,-53.5 + parent: 2 + - uid: 9469 + components: + - type: Transform + pos: 10.5,-52.5 + parent: 2 + - uid: 9470 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 7.5,-55.5 + parent: 2 + - uid: 9471 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 6.5,-45.5 + parent: 2 + - uid: 9472 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 1.5,-40.5 + parent: 2 + - uid: 9473 + components: + - type: Transform + pos: 1.5,-27.5 + parent: 2 + - uid: 9474 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 30.5,-41.5 + parent: 2 + - uid: 9475 + components: + - type: Transform + pos: 30.5,-40.5 + parent: 2 + - uid: 9476 + components: + - type: Transform + pos: -15.5,-51.5 + parent: 2 + - uid: 9477 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -21.5,-51.5 + parent: 2 + - uid: 9478 + components: + - type: Transform + pos: -21.5,-43.5 + parent: 2 + - uid: 9479 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -32.5,-43.5 + parent: 2 + - uid: 9480 + components: + - type: Transform + pos: -32.5,-42.5 + parent: 2 + - uid: 9481 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 33.5,-37.5 + parent: 2 + - uid: 9482 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 34.5,-37.5 + parent: 2 + - uid: 9483 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 34.5,-34.5 + parent: 2 + - uid: 9484 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 4.5,46.5 + parent: 2 + - uid: 9485 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 4.5,47.5 + parent: 2 + - uid: 9486 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 2.5,46.5 + parent: 2 + - uid: 22681 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 8.5,11.5 + parent: 2 + - uid: 24253 + components: + - type: Transform + pos: 37.5,6.5 + parent: 2 +- proto: DisposalJunction + entities: + - uid: 9487 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -10.5,-27.5 + parent: 2 + - uid: 9488 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -33.5,-42.5 + parent: 2 + - uid: 9489 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -35.5,6.5 + parent: 2 + - uid: 9490 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -38.5,0.5 + parent: 2 + - uid: 9491 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -28.5,-30.5 + parent: 2 + - uid: 9492 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -38.5,-7.5 + parent: 2 + - uid: 9493 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -16.5,-27.5 + parent: 2 + - uid: 9494 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 29.5,7.5 + parent: 2 + - uid: 9495 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -0.5,-27.5 + parent: 2 + - uid: 9496 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 15.5,-24.5 + parent: 2 + - uid: 9497 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 25.5,-24.5 + parent: 2 + - uid: 9498 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 31.5,-24.5 + parent: 2 + - uid: 9499 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 39.5,-24.5 + parent: 2 + - uid: 9500 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 37.5,-24.5 + parent: 2 + - uid: 9501 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 8.5,-7.5 + parent: 2 + - uid: 9502 + components: + - type: Transform + pos: 0.5,-1.5 + parent: 2 + - uid: 9503 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 0.5,-8.5 + parent: 2 + - uid: 9504 + components: + - type: Transform + pos: 9.5,8.5 + parent: 2 + - uid: 9505 + components: + - type: Transform + pos: 0.5,10.5 + parent: 2 + - uid: 9506 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -2.5,19.5 + parent: 2 + - uid: 9507 + components: + - type: Transform + pos: 0.5,19.5 + parent: 2 + - uid: 9508 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -12.5,28.5 + parent: 2 + - uid: 9509 + components: + - type: Transform + pos: -23.5,35.5 + parent: 2 + - uid: 9510 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -34.5,10.5 + parent: 2 + - uid: 9511 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -3.5,28.5 + parent: 2 + - uid: 9512 + components: + - type: Transform + pos: -2.5,39.5 + parent: 2 + - uid: 9513 + components: + - type: Transform + pos: 29.5,31.5 + parent: 2 + - uid: 9514 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 20.5,12.5 + parent: 2 + - uid: 9515 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 29.5,16.5 + parent: 2 + - uid: 9516 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 32.5,7.5 + parent: 2 + - uid: 9517 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 7.5,-52.5 + parent: 2 +- proto: DisposalJunctionFlipped + entities: + - uid: 8987 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 8.5,8.5 + parent: 2 + - uid: 9518 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -37.5,-8.5 + parent: 2 + - uid: 9519 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -33.5,6.5 + parent: 2 + - uid: 9520 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -38.5,6.5 + parent: 2 + - uid: 9521 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -28.5,-31.5 + parent: 2 + - uid: 9522 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -29.5,-22.5 + parent: 2 + - uid: 9523 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -21.5,-27.5 + parent: 2 + - uid: 9524 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -33.5,-43.5 + parent: 2 + - uid: 9525 + components: + - type: Transform + pos: -42.5,-39.5 + parent: 2 + - uid: 9526 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 13.5,-24.5 + parent: 2 + - uid: 9527 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 26.5,-24.5 + parent: 2 + - uid: 9528 + components: + - type: Transform + pos: 0.5,3.5 + parent: 2 + - uid: 9529 + components: + - type: Transform + pos: 0.5,21.5 + parent: 2 + - uid: 9530 + components: + - type: Transform + pos: -0.5,52.5 + parent: 2 + - uid: 9531 + components: + - type: Transform + pos: 29.5,38.5 + parent: 2 + - uid: 9532 + components: + - type: Transform + pos: 29.5,29.5 + parent: 2 + - uid: 9533 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 21.5,18.5 + parent: 2 + - uid: 9534 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 23.5,26.5 + parent: 2 + - uid: 9535 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 7.5,-45.5 + parent: 2 + - uid: 9536 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 6.5,-40.5 + parent: 2 +- proto: DisposalPipe + entities: + - uid: 276 + components: + - type: Transform + pos: 8.5,10.5 + parent: 2 + - uid: 9537 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -14.5,-37.5 + parent: 2 + - uid: 9538 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -14.5,-40.5 + parent: 2 + - uid: 9539 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -14.5,-43.5 + parent: 2 + - uid: 9540 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -14.5,-46.5 + parent: 2 + - uid: 9541 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -14.5,-49.5 + parent: 2 + - uid: 9542 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -12.5,-33.5 + parent: 2 + - uid: 9543 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -4.5,62.5 + parent: 2 + - uid: 9544 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -4.5,63.5 + parent: 2 + - uid: 9545 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -4.5,64.5 + parent: 2 + - uid: 9546 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -4.5,65.5 + parent: 2 + - uid: 9547 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -4.5,66.5 + parent: 2 + - uid: 9548 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -4.5,67.5 + parent: 2 + - uid: 9549 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -4.5,68.5 + parent: 2 + - uid: 9550 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 6.5,62.5 + parent: 2 + - uid: 9551 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 6.5,63.5 + parent: 2 + - uid: 9552 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 6.5,64.5 + parent: 2 + - uid: 9553 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 6.5,65.5 + parent: 2 + - uid: 9554 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 6.5,66.5 + parent: 2 + - uid: 9555 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 6.5,67.5 + parent: 2 + - uid: 9556 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 6.5,68.5 + parent: 2 + - uid: 9557 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 48.5,-31.5 + parent: 2 + - uid: 9558 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 49.5,-31.5 + parent: 2 + - uid: 9559 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -26.5,10.5 + parent: 2 + - uid: 9560 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -27.5,10.5 + parent: 2 + - uid: 9561 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -28.5,10.5 + parent: 2 + - uid: 9562 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -29.5,10.5 + parent: 2 + - uid: 9563 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -30.5,10.5 + parent: 2 + - uid: 9564 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -31.5,10.5 + parent: 2 + - uid: 9565 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -32.5,10.5 + parent: 2 + - uid: 9566 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -33.5,10.5 + parent: 2 + - uid: 9567 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -36.5,6.5 + parent: 2 + - uid: 9568 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -35.5,9.5 + parent: 2 + - uid: 9569 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -35.5,8.5 + parent: 2 + - uid: 9570 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -35.5,7.5 + parent: 2 + - uid: 9571 + components: + - type: Transform + pos: -30.5,5.5 + parent: 2 + - uid: 9572 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -37.5,6.5 + parent: 2 + - uid: 9573 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -39.5,6.5 + parent: 2 + - uid: 9574 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -40.5,7.5 + parent: 2 + - uid: 9575 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -40.5,8.5 + parent: 2 + - uid: 9576 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -40.5,9.5 + parent: 2 + - uid: 9577 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -40.5,10.5 + parent: 2 + - uid: 9578 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -40.5,11.5 + parent: 2 + - uid: 9579 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -40.5,12.5 + parent: 2 + - uid: 9580 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -40.5,13.5 + parent: 2 + - uid: 9581 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -41.5,14.5 + parent: 2 + - uid: 9582 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -42.5,14.5 + parent: 2 + - uid: 9583 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -43.5,14.5 + parent: 2 + - uid: 9584 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -44.5,15.5 + parent: 2 + - uid: 9585 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -31.5,6.5 + parent: 2 + - uid: 9586 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -32.5,6.5 + parent: 2 + - uid: 9587 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -34.5,6.5 + parent: 2 + - uid: 9588 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -37.5,0.5 + parent: 2 + - uid: 9589 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -38.5,1.5 + parent: 2 + - uid: 9590 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -38.5,2.5 + parent: 2 + - uid: 9591 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -38.5,3.5 + parent: 2 + - uid: 9592 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -38.5,4.5 + parent: 2 + - uid: 9593 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -38.5,5.5 + parent: 2 + - uid: 9594 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -38.5,-6.5 + parent: 2 + - uid: 9595 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -38.5,-5.5 + parent: 2 + - uid: 9596 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -38.5,-4.5 + parent: 2 + - uid: 9597 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -38.5,-3.5 + parent: 2 + - uid: 9598 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -38.5,-2.5 + parent: 2 + - uid: 9599 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -38.5,-1.5 + parent: 2 + - uid: 9600 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -38.5,-0.5 + parent: 2 + - uid: 9601 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -24.5,-2.5 + parent: 2 + - uid: 9602 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -25.5,-2.5 + parent: 2 + - uid: 9603 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -26.5,-2.5 + parent: 2 + - uid: 9604 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -28.5,-3.5 + parent: 2 + - uid: 9605 + components: + - type: Transform + pos: -29.5,-2.5 + parent: 2 + - uid: 9606 + components: + - type: Transform + pos: -29.5,-1.5 + parent: 2 + - uid: 9607 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -30.5,-0.5 + parent: 2 + - uid: 9608 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -31.5,-0.5 + parent: 2 + - uid: 9609 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -32.5,-0.5 + parent: 2 + - uid: 9610 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -33.5,0.5 + parent: 2 + - uid: 9611 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -33.5,1.5 + parent: 2 + - uid: 9612 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -33.5,2.5 + parent: 2 + - uid: 9613 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -33.5,3.5 + parent: 2 + - uid: 9614 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -33.5,4.5 + parent: 2 + - uid: 9615 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -33.5,5.5 + parent: 2 + - uid: 9616 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -29.5,-28.5 + parent: 2 + - uid: 9617 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -29.5,-27.5 + parent: 2 + - uid: 9618 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -29.5,-26.5 + parent: 2 + - uid: 9619 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -29.5,-25.5 + parent: 2 + - uid: 9620 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -29.5,-24.5 + parent: 2 + - uid: 9621 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -29.5,-23.5 + parent: 2 + - uid: 9622 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -30.5,-22.5 + parent: 2 + - uid: 9623 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -31.5,-22.5 + parent: 2 + - uid: 9624 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -32.5,-22.5 + parent: 2 + - uid: 9625 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -33.5,-22.5 + parent: 2 + - uid: 9626 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -34.5,-22.5 + parent: 2 + - uid: 9627 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -35.5,-22.5 + parent: 2 + - uid: 9628 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -36.5,-22.5 + parent: 2 + - uid: 9629 + components: + - type: Transform + pos: -37.5,-21.5 + parent: 2 + - uid: 9630 + components: + - type: Transform + pos: -37.5,-20.5 + parent: 2 + - uid: 9631 + components: + - type: Transform + pos: -37.5,-19.5 + parent: 2 + - uid: 9632 + components: + - type: Transform + pos: -37.5,-18.5 + parent: 2 + - uid: 9633 + components: + - type: Transform + pos: -37.5,-17.5 + parent: 2 + - uid: 9634 + components: + - type: Transform + pos: -37.5,-16.5 + parent: 2 + - uid: 9635 + components: + - type: Transform + pos: -37.5,-15.5 + parent: 2 + - uid: 9636 + components: + - type: Transform + pos: -37.5,-14.5 + parent: 2 + - uid: 9637 + components: + - type: Transform + pos: -37.5,-13.5 + parent: 2 + - uid: 9638 + components: + - type: Transform + pos: -37.5,-12.5 + parent: 2 + - uid: 9639 + components: + - type: Transform + pos: -37.5,-11.5 + parent: 2 + - uid: 9640 + components: + - type: Transform + pos: -37.5,-10.5 + parent: 2 + - uid: 9641 + components: + - type: Transform + pos: -37.5,-9.5 + parent: 2 + - uid: 9642 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -21.5,-18.5 + parent: 2 + - uid: 9643 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -22.5,-18.5 + parent: 2 + - uid: 9644 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -23.5,-18.5 + parent: 2 + - uid: 9645 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -24.5,-19.5 + parent: 2 + - uid: 9646 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -24.5,-20.5 + parent: 2 + - uid: 9647 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -24.5,-21.5 + parent: 2 + - uid: 9648 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -25.5,-22.5 + parent: 2 + - uid: 9649 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -26.5,-22.5 + parent: 2 + - uid: 9650 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -27.5,-22.5 + parent: 2 + - uid: 9651 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -28.5,-22.5 + parent: 2 + - uid: 9652 + components: + - type: Transform + pos: -21.5,-32.5 + parent: 2 + - uid: 9653 + components: + - type: Transform + pos: -21.5,-31.5 + parent: 2 + - uid: 9654 + components: + - type: Transform + pos: -21.5,-30.5 + parent: 2 + - uid: 9655 + components: + - type: Transform + pos: -21.5,-29.5 + parent: 2 + - uid: 9656 + components: + - type: Transform + pos: -21.5,-28.5 + parent: 2 + - uid: 9657 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -22.5,-27.5 + parent: 2 + - uid: 9658 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -23.5,-27.5 + parent: 2 + - uid: 9659 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -24.5,-27.5 + parent: 2 + - uid: 9660 + components: + - type: Transform + pos: -25.5,-28.5 + parent: 2 + - uid: 9661 + components: + - type: Transform + pos: -25.5,-29.5 + parent: 2 + - uid: 9662 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -26.5,-30.5 + parent: 2 + - uid: 9663 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -27.5,-30.5 + parent: 2 + - uid: 9664 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -15.5,-20.5 + parent: 2 + - uid: 9665 + components: + - type: Transform + pos: -16.5,-21.5 + parent: 2 + - uid: 9666 + components: + - type: Transform + pos: -16.5,-22.5 + parent: 2 + - uid: 9667 + components: + - type: Transform + pos: -16.5,-23.5 + parent: 2 + - uid: 9668 + components: + - type: Transform + pos: -16.5,-24.5 + parent: 2 + - uid: 9669 + components: + - type: Transform + pos: -16.5,-25.5 + parent: 2 + - uid: 9670 + components: + - type: Transform + pos: -16.5,-26.5 + parent: 2 + - uid: 9671 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -17.5,-27.5 + parent: 2 + - uid: 9672 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -18.5,-27.5 + parent: 2 + - uid: 9673 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -19.5,-27.5 + parent: 2 + - uid: 9674 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -20.5,-27.5 + parent: 2 + - uid: 9675 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -9.5,-21.5 + parent: 2 + - uid: 9676 + components: + - type: Transform + pos: -10.5,-22.5 + parent: 2 + - uid: 9677 + components: + - type: Transform + pos: -10.5,-23.5 + parent: 2 + - uid: 9678 + components: + - type: Transform + pos: -10.5,-24.5 + parent: 2 + - uid: 9679 + components: + - type: Transform + pos: -10.5,-25.5 + parent: 2 + - uid: 9680 + components: + - type: Transform + pos: -10.5,-26.5 + parent: 2 + - uid: 9681 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -11.5,-27.5 + parent: 2 + - uid: 9682 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -12.5,-27.5 + parent: 2 + - uid: 9683 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -13.5,-27.5 + parent: 2 + - uid: 9684 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -14.5,-27.5 + parent: 2 + - uid: 9685 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -15.5,-27.5 + parent: 2 + - uid: 9686 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -38.5,-52.5 + parent: 2 + - uid: 9687 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -37.5,-52.5 + parent: 2 + - uid: 9688 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -36.5,-52.5 + parent: 2 + - uid: 9689 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -35.5,-52.5 + parent: 2 + - uid: 9690 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -34.5,-52.5 + parent: 2 + - uid: 9691 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -33.5,-51.5 + parent: 2 + - uid: 9692 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -33.5,-50.5 + parent: 2 + - uid: 9693 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -33.5,-49.5 + parent: 2 + - uid: 9694 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -33.5,-48.5 + parent: 2 + - uid: 9695 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -33.5,-47.5 + parent: 2 + - uid: 9696 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -33.5,-46.5 + parent: 2 + - uid: 9697 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -33.5,-45.5 + parent: 2 + - uid: 9698 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -33.5,-44.5 + parent: 2 + - uid: 9699 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -33.5,-41.5 + parent: 2 + - uid: 9700 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -33.5,-40.5 + parent: 2 + - uid: 9701 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -33.5,-39.5 + parent: 2 + - uid: 9702 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -33.5,-38.5 + parent: 2 + - uid: 9703 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -33.5,-37.5 + parent: 2 + - uid: 9704 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -33.5,-36.5 + parent: 2 + - uid: 9705 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -33.5,-35.5 + parent: 2 + - uid: 9706 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -33.5,-34.5 + parent: 2 + - uid: 9707 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -33.5,-33.5 + parent: 2 + - uid: 9708 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -33.5,-32.5 + parent: 2 + - uid: 9709 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -32.5,-31.5 + parent: 2 + - uid: 9710 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -31.5,-31.5 + parent: 2 + - uid: 9711 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -30.5,-31.5 + parent: 2 + - uid: 9712 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -29.5,-31.5 + parent: 2 + - uid: 9713 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -46.5,-29.5 + parent: 2 + - uid: 9714 + components: + - type: Transform + pos: -45.5,-30.5 + parent: 2 + - uid: 9715 + components: + - type: Transform + pos: -45.5,-31.5 + parent: 2 + - uid: 9716 + components: + - type: Transform + pos: -45.5,-32.5 + parent: 2 + - uid: 9717 + components: + - type: Transform + pos: -45.5,-33.5 + parent: 2 + - uid: 9718 + components: + - type: Transform + pos: -45.5,-34.5 + parent: 2 + - uid: 9719 + components: + - type: Transform + pos: -45.5,-35.5 + parent: 2 + - uid: 9720 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -44.5,-36.5 + parent: 2 + - uid: 9721 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -43.5,-36.5 + parent: 2 + - uid: 9722 + components: + - type: Transform + pos: -42.5,-37.5 + parent: 2 + - uid: 9723 + components: + - type: Transform + pos: -42.5,-38.5 + parent: 2 + - uid: 9724 + components: + - type: Transform + pos: -42.5,-40.5 + parent: 2 + - uid: 9725 + components: + - type: Transform + pos: -42.5,-41.5 + parent: 2 + - uid: 9726 + components: + - type: Transform + pos: -42.5,-42.5 + parent: 2 + - uid: 9727 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -41.5,-43.5 + parent: 2 + - uid: 9728 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -40.5,-43.5 + parent: 2 + - uid: 9729 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -39.5,-43.5 + parent: 2 + - uid: 9730 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -38.5,-43.5 + parent: 2 + - uid: 9731 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -37.5,-43.5 + parent: 2 + - uid: 9732 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -36.5,-43.5 + parent: 2 + - uid: 9733 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -35.5,-43.5 + parent: 2 + - uid: 9734 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -34.5,-43.5 + parent: 2 + - uid: 9735 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 11.5,-31.5 + parent: 2 + - uid: 9736 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 12.5,-31.5 + parent: 2 + - uid: 9737 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 13.5,-30.5 + parent: 2 + - uid: 9738 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 13.5,-29.5 + parent: 2 + - uid: 9739 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 13.5,-28.5 + parent: 2 + - uid: 9740 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 13.5,-27.5 + parent: 2 + - uid: 9741 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 13.5,-26.5 + parent: 2 + - uid: 9742 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 13.5,-25.5 + parent: 2 + - uid: 9743 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 12.5,-24.5 + parent: 2 + - uid: 9744 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 11.5,-24.5 + parent: 2 + - uid: 9745 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 10.5,-24.5 + parent: 2 + - uid: 9746 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 9.5,-24.5 + parent: 2 + - uid: 9747 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 8.5,-24.5 + parent: 2 + - uid: 9748 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 7.5,-24.5 + parent: 2 + - uid: 9749 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 6.5,-24.5 + parent: 2 + - uid: 9750 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 5.5,-24.5 + parent: 2 + - uid: 9751 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 4.5,-24.5 + parent: 2 + - uid: 9752 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 3.5,-24.5 + parent: 2 + - uid: 9753 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 2.5,-24.5 + parent: 2 + - uid: 9754 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 1.5,-24.5 + parent: 2 + - uid: 9755 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 0.5,-24.5 + parent: 2 + - uid: 9756 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -0.5,-25.5 + parent: 2 + - uid: 9757 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -0.5,-26.5 + parent: 2 + - uid: 9758 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -1.5,-27.5 + parent: 2 + - uid: 9759 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -2.5,-27.5 + parent: 2 + - uid: 9760 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -3.5,-27.5 + parent: 2 + - uid: 9761 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -4.5,-27.5 + parent: 2 + - uid: 9762 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -5.5,-27.5 + parent: 2 + - uid: 9763 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -6.5,-27.5 + parent: 2 + - uid: 9764 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -7.5,-27.5 + parent: 2 + - uid: 9765 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -8.5,-27.5 + parent: 2 + - uid: 9766 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -9.5,-27.5 + parent: 2 + - uid: 9767 + components: + - type: Transform + pos: 15.5,-23.5 + parent: 2 + - uid: 9768 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 14.5,-24.5 + parent: 2 + - uid: 9769 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 22.5,-33.5 + parent: 2 + - uid: 9770 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 22.5,-34.5 + parent: 2 + - uid: 9771 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 22.5,-35.5 + parent: 2 + - uid: 9772 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 21.5,-36.5 + parent: 2 + - uid: 9773 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 20.5,-36.5 + parent: 2 + - uid: 9774 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 23.5,-19.5 + parent: 2 + - uid: 9775 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 24.5,-19.5 + parent: 2 + - uid: 9776 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 25.5,-20.5 + parent: 2 + - uid: 9777 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 25.5,-21.5 + parent: 2 + - uid: 9778 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 25.5,-22.5 + parent: 2 + - uid: 9779 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 25.5,-23.5 + parent: 2 + - uid: 9780 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 24.5,-24.5 + parent: 2 + - uid: 9781 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 23.5,-24.5 + parent: 2 + - uid: 9782 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 22.5,-24.5 + parent: 2 + - uid: 9783 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 21.5,-24.5 + parent: 2 + - uid: 9784 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 20.5,-24.5 + parent: 2 + - uid: 9785 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 19.5,-24.5 + parent: 2 + - uid: 9786 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 18.5,-24.5 + parent: 2 + - uid: 9787 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 17.5,-24.5 + parent: 2 + - uid: 9788 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 16.5,-24.5 + parent: 2 + - uid: 9789 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 29.5,-30.5 + parent: 2 + - uid: 9790 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 28.5,-30.5 + parent: 2 + - uid: 9791 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 27.5,-30.5 + parent: 2 + - uid: 9792 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 26.5,-29.5 + parent: 2 + - uid: 9793 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 26.5,-28.5 + parent: 2 + - uid: 9794 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 26.5,-27.5 + parent: 2 + - uid: 9795 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 26.5,-26.5 + parent: 2 + - uid: 9796 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 26.5,-25.5 + parent: 2 + - uid: 9797 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 33.5,-21.5 + parent: 2 + - uid: 9798 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 32.5,-21.5 + parent: 2 + - uid: 9799 + components: + - type: Transform + pos: 31.5,-22.5 + parent: 2 + - uid: 9800 + components: + - type: Transform + pos: 31.5,-23.5 + parent: 2 + - uid: 9801 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 27.5,-24.5 + parent: 2 + - uid: 9802 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 28.5,-24.5 + parent: 2 + - uid: 9803 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 29.5,-24.5 + parent: 2 + - uid: 9804 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 30.5,-24.5 + parent: 2 + - uid: 9805 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 32.5,-24.5 + parent: 2 + - uid: 9806 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 33.5,-24.5 + parent: 2 + - uid: 9807 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 34.5,-24.5 + parent: 2 + - uid: 9808 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 35.5,-24.5 + parent: 2 + - uid: 9809 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 36.5,-24.5 + parent: 2 + - uid: 9810 + components: + - type: Transform + pos: 39.5,-21.5 + parent: 2 + - uid: 9811 + components: + - type: Transform + pos: 39.5,-22.5 + parent: 2 + - uid: 9812 + components: + - type: Transform + pos: 39.5,-23.5 + parent: 2 + - uid: 9813 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 38.5,-24.5 + parent: 2 + - uid: 9814 + components: + - type: Transform + pos: 40.5,-25.5 + parent: 2 + - uid: 9815 + components: + - type: Transform + pos: 40.5,-26.5 + parent: 2 + - uid: 9816 + components: + - type: Transform + pos: 40.5,-27.5 + parent: 2 + - uid: 9817 + components: + - type: Transform + pos: 40.5,-28.5 + parent: 2 + - uid: 9818 + components: + - type: Transform + pos: 40.5,-29.5 + parent: 2 + - uid: 9819 + components: + - type: Transform + pos: 40.5,-30.5 + parent: 2 + - uid: 9820 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 41.5,-32.5 + parent: 2 + - uid: 9821 + components: + - type: Transform + pos: 40.5,-31.5 + parent: 2 + - uid: 9822 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 36.5,-12.5 + parent: 2 + - uid: 9823 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 37.5,-13.5 + parent: 2 + - uid: 9824 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 37.5,-14.5 + parent: 2 + - uid: 9825 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 37.5,-15.5 + parent: 2 + - uid: 9826 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 37.5,-16.5 + parent: 2 + - uid: 9827 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 37.5,-17.5 + parent: 2 + - uid: 9828 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 37.5,-18.5 + parent: 2 + - uid: 9829 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 37.5,-19.5 + parent: 2 + - uid: 9830 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 37.5,-20.5 + parent: 2 + - uid: 9831 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 37.5,-21.5 + parent: 2 + - uid: 9832 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 37.5,-22.5 + parent: 2 + - uid: 9833 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 37.5,-23.5 + parent: 2 + - uid: 9834 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -6.5,-8.5 + parent: 2 + - uid: 9835 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -7.5,-9.5 + parent: 2 + - uid: 9836 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -8.5,-9.5 + parent: 2 + - uid: 9837 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -9.5,-9.5 + parent: 2 + - uid: 9838 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -10.5,-9.5 + parent: 2 + - uid: 9839 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -11.5,-9.5 + parent: 2 + - uid: 9840 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -12.5,-9.5 + parent: 2 + - uid: 9841 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -13.5,-9.5 + parent: 2 + - uid: 9842 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -14.5,-9.5 + parent: 2 + - uid: 9843 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -15.5,-9.5 + parent: 2 + - uid: 9844 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -16.5,-9.5 + parent: 2 + - uid: 9845 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -17.5,-9.5 + parent: 2 + - uid: 9846 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -18.5,-9.5 + parent: 2 + - uid: 9847 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -19.5,-9.5 + parent: 2 + - uid: 9848 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -20.5,-9.5 + parent: 2 + - uid: 9849 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -21.5,-9.5 + parent: 2 + - uid: 9850 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -22.5,-9.5 + parent: 2 + - uid: 9851 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -23.5,-9.5 + parent: 2 + - uid: 9852 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -25.5,-8.5 + parent: 2 + - uid: 9853 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -26.5,-8.5 + parent: 2 + - uid: 9854 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -27.5,-8.5 + parent: 2 + - uid: 9855 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -28.5,-8.5 + parent: 2 + - uid: 9856 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -29.5,-8.5 + parent: 2 + - uid: 9857 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -30.5,-8.5 + parent: 2 + - uid: 9858 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -31.5,-8.5 + parent: 2 + - uid: 9859 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -32.5,-8.5 + parent: 2 + - uid: 9860 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -33.5,-8.5 + parent: 2 + - uid: 9861 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -34.5,-8.5 + parent: 2 + - uid: 9862 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -35.5,-8.5 + parent: 2 + - uid: 9863 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -36.5,-8.5 + parent: 2 + - uid: 9864 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 7.5,-7.5 + parent: 2 + - uid: 9865 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 6.5,-7.5 + parent: 2 + - uid: 9866 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 5.5,-7.5 + parent: 2 + - uid: 9867 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 3.5,-8.5 + parent: 2 + - uid: 9868 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 2.5,-8.5 + parent: 2 + - uid: 9869 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 1.5,-8.5 + parent: 2 + - uid: 9870 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -0.5,-8.5 + parent: 2 + - uid: 9871 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -1.5,-8.5 + parent: 2 + - uid: 9872 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -2.5,-8.5 + parent: 2 + - uid: 9873 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -3.5,-8.5 + parent: 2 + - uid: 9874 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -5.5,-7.5 + parent: 2 + - uid: 9875 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -2.5,-1.5 + parent: 2 + - uid: 9876 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -1.5,-1.5 + parent: 2 + - uid: 9877 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -0.5,-1.5 + parent: 2 + - uid: 9878 + components: + - type: Transform + pos: 0.5,-2.5 + parent: 2 + - uid: 9879 + components: + - type: Transform + pos: 0.5,-3.5 + parent: 2 + - uid: 9880 + components: + - type: Transform + pos: 0.5,-4.5 + parent: 2 + - uid: 9881 + components: + - type: Transform + pos: 0.5,-5.5 + parent: 2 + - uid: 9882 + components: + - type: Transform + pos: 0.5,-6.5 + parent: 2 + - uid: 9883 + components: + - type: Transform + pos: 0.5,-7.5 + parent: 2 + - uid: 9884 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 4.5,3.5 + parent: 2 + - uid: 9885 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 3.5,3.5 + parent: 2 + - uid: 9886 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 2.5,3.5 + parent: 2 + - uid: 9887 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 1.5,3.5 + parent: 2 + - uid: 9888 + components: + - type: Transform + pos: 0.5,2.5 + parent: 2 + - uid: 9889 + components: + - type: Transform + pos: 0.5,1.5 + parent: 2 + - uid: 9890 + components: + - type: Transform + pos: 0.5,0.5 + parent: 2 + - uid: 9891 + components: + - type: Transform + pos: 0.5,-0.5 + parent: 2 + - uid: 9892 + components: + - type: Transform + pos: 9.5,7.5 + parent: 2 + - uid: 9893 + components: + - type: Transform + pos: 9.5,6.5 + parent: 2 + - uid: 9894 + components: + - type: Transform + pos: 9.5,5.5 + parent: 2 + - uid: 9895 + components: + - type: Transform + pos: 10.5,3.5 + parent: 2 + - uid: 9896 + components: + - type: Transform + pos: 10.5,2.5 + parent: 2 + - uid: 9897 + components: + - type: Transform + pos: 10.5,1.5 + parent: 2 + - uid: 9898 + components: + - type: Transform + pos: 10.5,0.5 + parent: 2 + - uid: 9899 + components: + - type: Transform + pos: 10.5,-0.5 + parent: 2 + - uid: 9900 + components: + - type: Transform + pos: 10.5,-1.5 + parent: 2 + - uid: 9901 + components: + - type: Transform + pos: 10.5,-2.5 + parent: 2 + - uid: 9902 + components: + - type: Transform + pos: 10.5,-3.5 + parent: 2 + - uid: 9903 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 9.5,-4.5 + parent: 2 + - uid: 9904 + components: + - type: Transform + pos: 8.5,-5.5 + parent: 2 + - uid: 9905 + components: + - type: Transform + pos: 8.5,-6.5 + parent: 2 + - uid: 9906 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 5.5,16.5 + parent: 2 + - uid: 9907 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 5.5,15.5 + parent: 2 + - uid: 9908 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 5.5,14.5 + parent: 2 + - uid: 9909 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 5.5,13.5 + parent: 2 + - uid: 9910 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 5.5,12.5 + parent: 2 + - uid: 9911 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 5.5,11.5 + parent: 2 + - uid: 9912 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 5.5,10.5 + parent: 2 + - uid: 9913 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 5.5,9.5 + parent: 2 + - uid: 9914 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 6.5,8.5 + parent: 2 + - uid: 9915 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 7.5,8.5 + parent: 2 + - uid: 9917 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 6.5,17.5 + parent: 2 + - uid: 9918 + components: + - type: Transform + pos: -2.5,15.5 + parent: 2 + - uid: 9919 + components: + - type: Transform + pos: -2.5,14.5 + parent: 2 + - uid: 9920 + components: + - type: Transform + pos: -2.5,13.5 + parent: 2 + - uid: 9921 + components: + - type: Transform + pos: -2.5,12.5 + parent: 2 + - uid: 9922 + components: + - type: Transform + pos: -2.5,11.5 + parent: 2 + - uid: 9923 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -1.5,10.5 + parent: 2 + - uid: 9924 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -0.5,10.5 + parent: 2 + - uid: 9925 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 0.5,9.5 + parent: 2 + - uid: 9926 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 0.5,8.5 + parent: 2 + - uid: 9927 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 0.5,7.5 + parent: 2 + - uid: 9928 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 0.5,6.5 + parent: 2 + - uid: 9929 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 0.5,5.5 + parent: 2 + - uid: 9930 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 0.5,4.5 + parent: 2 + - uid: 9931 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -1.5,19.5 + parent: 2 + - uid: 9932 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -0.5,19.5 + parent: 2 + - uid: 9933 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 0.5,18.5 + parent: 2 + - uid: 9934 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 0.5,17.5 + parent: 2 + - uid: 9935 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 0.5,16.5 + parent: 2 + - uid: 9936 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 0.5,15.5 + parent: 2 + - uid: 9937 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 0.5,14.5 + parent: 2 + - uid: 9938 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 0.5,13.5 + parent: 2 + - uid: 9939 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 0.5,12.5 + parent: 2 + - uid: 9940 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 0.5,11.5 + parent: 2 + - uid: 9941 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 3.5,26.5 + parent: 2 + - uid: 9942 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 2.5,26.5 + parent: 2 + - uid: 9943 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 1.5,26.5 + parent: 2 + - uid: 9944 + components: + - type: Transform + pos: 0.5,25.5 + parent: 2 + - uid: 9945 + components: + - type: Transform + pos: 0.5,24.5 + parent: 2 + - uid: 9946 + components: + - type: Transform + pos: 0.5,23.5 + parent: 2 + - uid: 9947 + components: + - type: Transform + pos: 0.5,22.5 + parent: 2 + - uid: 9948 + components: + - type: Transform + pos: 0.5,20.5 + parent: 2 + - uid: 9949 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -4.5,28.5 + parent: 2 + - uid: 9950 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -5.5,28.5 + parent: 2 + - uid: 9951 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -6.5,28.5 + parent: 2 + - uid: 9952 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -7.5,28.5 + parent: 2 + - uid: 9953 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -8.5,28.5 + parent: 2 + - uid: 9954 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -9.5,28.5 + parent: 2 + - uid: 9955 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -10.5,28.5 + parent: 2 + - uid: 9956 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -11.5,28.5 + parent: 2 + - uid: 9957 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -13.5,28.5 + parent: 2 + - uid: 9958 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -14.5,27.5 + parent: 2 + - uid: 9959 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -14.5,26.5 + parent: 2 + - uid: 9960 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -14.5,25.5 + parent: 2 + - uid: 9961 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -14.5,24.5 + parent: 2 + - uid: 9962 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -14.5,23.5 + parent: 2 + - uid: 9963 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -14.5,22.5 + parent: 2 + - uid: 9964 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -14.5,21.5 + parent: 2 + - uid: 9965 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -14.5,20.5 + parent: 2 + - uid: 9966 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -13.5,19.5 + parent: 2 + - uid: 9967 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -12.5,19.5 + parent: 2 + - uid: 9968 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -11.5,19.5 + parent: 2 + - uid: 9969 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -10.5,19.5 + parent: 2 + - uid: 9970 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -9.5,19.5 + parent: 2 + - uid: 9971 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -8.5,19.5 + parent: 2 + - uid: 9972 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -7.5,19.5 + parent: 2 + - uid: 9973 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -6.5,19.5 + parent: 2 + - uid: 9974 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -5.5,19.5 + parent: 2 + - uid: 9975 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -4.5,19.5 + parent: 2 + - uid: 9976 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -3.5,19.5 + parent: 2 + - uid: 9977 + components: + - type: Transform + pos: -12.5,30.5 + parent: 2 + - uid: 9978 + components: + - type: Transform + pos: -12.5,29.5 + parent: 2 + - uid: 9979 + components: + - type: Transform + pos: -26.5,33.5 + parent: 2 + - uid: 9980 + components: + - type: Transform + pos: -26.5,34.5 + parent: 2 + - uid: 9981 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -24.5,35.5 + parent: 2 + - uid: 9982 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -22.5,38.5 + parent: 2 + - uid: 9983 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -21.5,38.5 + parent: 2 + - uid: 9984 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -23.5,37.5 + parent: 2 + - uid: 9985 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -23.5,36.5 + parent: 2 + - uid: 9986 + components: + - type: Transform + pos: -23.5,34.5 + parent: 2 + - uid: 9987 + components: + - type: Transform + pos: -23.5,33.5 + parent: 2 + - uid: 9988 + components: + - type: Transform + pos: -23.5,32.5 + parent: 2 + - uid: 9989 + components: + - type: Transform + pos: -23.5,31.5 + parent: 2 + - uid: 9990 + components: + - type: Transform + pos: -23.5,30.5 + parent: 2 + - uid: 9991 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -26.5,29.5 + parent: 2 + - uid: 9992 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -25.5,29.5 + parent: 2 + - uid: 9993 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -24.5,29.5 + parent: 2 + - uid: 9994 + components: + - type: Transform + pos: -27.5,28.5 + parent: 2 + - uid: 9995 + components: + - type: Transform + pos: -27.5,27.5 + parent: 2 + - uid: 9996 + components: + - type: Transform + pos: -27.5,26.5 + parent: 2 + - uid: 9997 + components: + - type: Transform + pos: -27.5,25.5 + parent: 2 + - uid: 9998 + components: + - type: Transform + pos: -27.5,24.5 + parent: 2 + - uid: 9999 + components: + - type: Transform + pos: -27.5,23.5 + parent: 2 + - uid: 10000 + components: + - type: Transform + pos: -27.5,22.5 + parent: 2 + - uid: 10001 + components: + - type: Transform + pos: -27.5,21.5 + parent: 2 + - uid: 10002 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -24.5,17.5 + parent: 2 + - uid: 10003 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -24.5,18.5 + parent: 2 + - uid: 10004 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -24.5,19.5 + parent: 2 + - uid: 10005 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -25.5,20.5 + parent: 2 + - uid: 10006 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -26.5,20.5 + parent: 2 + - uid: 10007 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -23.5,16.5 + parent: 2 + - uid: 10008 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -22.5,16.5 + parent: 2 + - uid: 10009 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -21.5,16.5 + parent: 2 + - uid: 10010 + components: + - type: Transform + pos: -20.5,15.5 + parent: 2 + - uid: 10011 + components: + - type: Transform + pos: -20.5,14.5 + parent: 2 + - uid: 10012 + components: + - type: Transform + pos: -20.5,13.5 + parent: 2 + - uid: 10013 + components: + - type: Transform + pos: -20.5,12.5 + parent: 2 + - uid: 10014 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -21.5,11.5 + parent: 2 + - uid: 10015 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -22.5,11.5 + parent: 2 + - uid: 10016 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -23.5,11.5 + parent: 2 + - uid: 10017 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -24.5,11.5 + parent: 2 + - uid: 10018 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -25.5,11.5 + parent: 2 + - uid: 10019 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -26.5,11.5 + parent: 2 + - uid: 10020 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -27.5,11.5 + parent: 2 + - uid: 10021 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -28.5,11.5 + parent: 2 + - uid: 10022 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -29.5,11.5 + parent: 2 + - uid: 10023 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -30.5,11.5 + parent: 2 + - uid: 10024 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -31.5,11.5 + parent: 2 + - uid: 10025 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -32.5,11.5 + parent: 2 + - uid: 10026 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -33.5,11.5 + parent: 2 + - uid: 10027 + components: + - type: Transform + pos: -2.5,38.5 + parent: 2 + - uid: 10028 + components: + - type: Transform + pos: -2.5,37.5 + parent: 2 + - uid: 10029 + components: + - type: Transform + pos: -2.5,36.5 + parent: 2 + - uid: 10030 + components: + - type: Transform + pos: -2.5,35.5 + parent: 2 + - uid: 10031 + components: + - type: Transform + pos: -2.5,34.5 + parent: 2 + - uid: 10032 + components: + - type: Transform + pos: -2.5,33.5 + parent: 2 + - uid: 10033 + components: + - type: Transform + pos: -2.5,32.5 + parent: 2 + - uid: 10034 + components: + - type: Transform + pos: -2.5,31.5 + parent: 2 + - uid: 10035 + components: + - type: Transform + pos: -2.5,30.5 + parent: 2 + - uid: 10036 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 0.5,43.5 + parent: 2 + - uid: 10037 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 0.5,44.5 + parent: 2 + - uid: 10038 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 0.5,45.5 + parent: 2 + - uid: 10039 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 0.5,46.5 + parent: 2 + - uid: 10040 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 1.5,47.5 + parent: 2 + - uid: 10041 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 3.5,46.5 + parent: 2 + - uid: 10042 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 5.5,47.5 + parent: 2 + - uid: 10043 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 6.5,47.5 + parent: 2 + - uid: 10044 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 7.5,47.5 + parent: 2 + - uid: 10045 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 8.5,47.5 + parent: 2 + - uid: 10046 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -0.5,42.5 + parent: 2 + - uid: 10047 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -1.5,42.5 + parent: 2 + - uid: 10048 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -2.5,42.5 + parent: 2 + - uid: 10049 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -3.5,42.5 + parent: 2 + - uid: 10050 + components: + - type: Transform + pos: -4.5,41.5 + parent: 2 + - uid: 10051 + components: + - type: Transform + pos: -4.5,40.5 + parent: 2 + - uid: 10052 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -3.5,39.5 + parent: 2 + - uid: 10053 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -6.5,53.5 + parent: 2 + - uid: 10054 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -7.5,52.5 + parent: 2 + - uid: 10055 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -7.5,51.5 + parent: 2 + - uid: 10056 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -9.5,50.5 + parent: 2 + - uid: 10057 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -8.5,50.5 + parent: 2 + - uid: 10058 + components: + - type: Transform + pos: -10.5,49.5 + parent: 2 + - uid: 10059 + components: + - type: Transform + pos: -10.5,48.5 + parent: 2 + - uid: 10060 + components: + - type: Transform + pos: -10.5,47.5 + parent: 2 + - uid: 10061 + components: + - type: Transform + pos: -10.5,46.5 + parent: 2 + - uid: 10062 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -9.5,45.5 + parent: 2 + - uid: 10063 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -8.5,45.5 + parent: 2 + - uid: 10064 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -7.5,45.5 + parent: 2 + - uid: 10065 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -6.5,44.5 + parent: 2 + - uid: 10066 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -6.5,43.5 + parent: 2 + - uid: 10067 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -5.5,42.5 + parent: 2 + - uid: 10068 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -1.5,59.5 + parent: 2 + - uid: 10069 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -0.5,58.5 + parent: 2 + - uid: 10070 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -0.5,57.5 + parent: 2 + - uid: 10071 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -0.5,56.5 + parent: 2 + - uid: 10072 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -0.5,55.5 + parent: 2 + - uid: 10073 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -0.5,54.5 + parent: 2 + - uid: 10074 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -0.5,53.5 + parent: 2 + - uid: 10075 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -0.5,51.5 + parent: 2 + - uid: 10076 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -0.5,50.5 + parent: 2 + - uid: 10077 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -0.5,49.5 + parent: 2 + - uid: 10078 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -0.5,48.5 + parent: 2 + - uid: 10079 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 7.5,55.5 + parent: 2 + - uid: 10080 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 6.5,55.5 + parent: 2 + - uid: 10081 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 5.5,55.5 + parent: 2 + - uid: 10082 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 4.5,53.5 + parent: 2 + - uid: 10083 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 4.5,54.5 + parent: 2 + - uid: 10084 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 3.5,52.5 + parent: 2 + - uid: 10085 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 2.5,52.5 + parent: 2 + - uid: 10086 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 1.5,52.5 + parent: 2 + - uid: 10087 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 0.5,52.5 + parent: 2 + - uid: 10088 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 18.5,39.5 + parent: 2 + - uid: 10089 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 19.5,39.5 + parent: 2 + - uid: 10090 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 20.5,38.5 + parent: 2 + - uid: 10091 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 20.5,37.5 + parent: 2 + - uid: 10092 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 20.5,36.5 + parent: 2 + - uid: 10093 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 20.5,35.5 + parent: 2 + - uid: 10094 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 20.5,34.5 + parent: 2 + - uid: 10095 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 20.5,33.5 + parent: 2 + - uid: 10096 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 20.5,32.5 + parent: 2 + - uid: 10097 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 21.5,31.5 + parent: 2 + - uid: 10098 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 22.5,31.5 + parent: 2 + - uid: 10099 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 23.5,31.5 + parent: 2 + - uid: 10100 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 24.5,31.5 + parent: 2 + - uid: 10101 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 25.5,31.5 + parent: 2 + - uid: 10102 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 26.5,31.5 + parent: 2 + - uid: 10103 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 27.5,31.5 + parent: 2 + - uid: 10104 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 28.5,31.5 + parent: 2 + - uid: 10105 + components: + - type: Transform + pos: 29.5,37.5 + parent: 2 + - uid: 10106 + components: + - type: Transform + pos: 29.5,36.5 + parent: 2 + - uid: 10107 + components: + - type: Transform + pos: 29.5,35.5 + parent: 2 + - uid: 10108 + components: + - type: Transform + pos: 29.5,34.5 + parent: 2 + - uid: 10109 + components: + - type: Transform + pos: 29.5,33.5 + parent: 2 + - uid: 10110 + components: + - type: Transform + pos: 29.5,32.5 + parent: 2 + - uid: 10111 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 42.5,38.5 + parent: 2 + - uid: 10112 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 41.5,38.5 + parent: 2 + - uid: 10113 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 40.5,38.5 + parent: 2 + - uid: 10114 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 39.5,38.5 + parent: 2 + - uid: 10115 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 38.5,38.5 + parent: 2 + - uid: 10116 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 37.5,38.5 + parent: 2 + - uid: 10117 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 36.5,38.5 + parent: 2 + - uid: 10118 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 35.5,38.5 + parent: 2 + - uid: 10119 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 34.5,38.5 + parent: 2 + - uid: 10120 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 33.5,38.5 + parent: 2 + - uid: 10121 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 32.5,38.5 + parent: 2 + - uid: 10122 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 31.5,38.5 + parent: 2 + - uid: 10123 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 30.5,38.5 + parent: 2 + - uid: 10124 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 38.5,29.5 + parent: 2 + - uid: 10125 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 37.5,29.5 + parent: 2 + - uid: 10126 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 36.5,29.5 + parent: 2 + - uid: 10127 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 35.5,29.5 + parent: 2 + - uid: 10128 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 34.5,29.5 + parent: 2 + - uid: 10129 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 33.5,29.5 + parent: 2 + - uid: 10130 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 32.5,29.5 + parent: 2 + - uid: 10131 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 31.5,29.5 + parent: 2 + - uid: 10132 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 30.5,29.5 + parent: 2 + - uid: 10133 + components: + - type: Transform + pos: 29.5,30.5 + parent: 2 + - uid: 10134 + components: + - type: Transform + pos: 29.5,28.5 + parent: 2 + - uid: 10135 + components: + - type: Transform + pos: 29.5,27.5 + parent: 2 + - uid: 10136 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 28.5,26.5 + parent: 2 + - uid: 10137 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 27.5,26.5 + parent: 2 + - uid: 10138 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 26.5,26.5 + parent: 2 + - uid: 10139 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 25.5,26.5 + parent: 2 + - uid: 10140 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 24.5,26.5 + parent: 2 + - uid: 10141 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 16.5,10.5 + parent: 2 + - uid: 10142 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 17.5,10.5 + parent: 2 + - uid: 10143 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 18.5,10.5 + parent: 2 + - uid: 10144 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 19.5,10.5 + parent: 2 + - uid: 10145 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 20.5,11.5 + parent: 2 + - uid: 10146 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 20.5,13.5 + parent: 2 + - uid: 10147 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 20.5,14.5 + parent: 2 + - uid: 10148 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 20.5,15.5 + parent: 2 + - uid: 10149 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 20.5,16.5 + parent: 2 + - uid: 10150 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 20.5,17.5 + parent: 2 + - uid: 10151 + components: + - type: Transform + pos: 22.5,19.5 + parent: 2 + - uid: 10152 + components: + - type: Transform + pos: 22.5,20.5 + parent: 2 + - uid: 10153 + components: + - type: Transform + pos: 22.5,21.5 + parent: 2 + - uid: 10154 + components: + - type: Transform + pos: 22.5,22.5 + parent: 2 + - uid: 10155 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 23.5,24.5 + parent: 2 + - uid: 10156 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 23.5,25.5 + parent: 2 + - uid: 10157 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 22.5,26.5 + parent: 2 + - uid: 10158 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 21.5,26.5 + parent: 2 + - uid: 10159 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 20.5,26.5 + parent: 2 + - uid: 10160 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 19.5,26.5 + parent: 2 + - uid: 10161 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 18.5,26.5 + parent: 2 + - uid: 10162 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 17.5,26.5 + parent: 2 + - uid: 10163 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 16.5,26.5 + parent: 2 + - uid: 10164 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 15.5,26.5 + parent: 2 + - uid: 10165 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 14.5,26.5 + parent: 2 + - uid: 10166 + components: + - type: Transform + pos: 13.5,25.5 + parent: 2 + - uid: 10167 + components: + - type: Transform + pos: 13.5,24.5 + parent: 2 + - uid: 10168 + components: + - type: Transform + pos: 13.5,23.5 + parent: 2 + - uid: 10169 + components: + - type: Transform + pos: 13.5,22.5 + parent: 2 + - uid: 10170 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 12.5,21.5 + parent: 2 + - uid: 10171 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 11.5,21.5 + parent: 2 + - uid: 10172 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 10.5,21.5 + parent: 2 + - uid: 10173 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 9.5,21.5 + parent: 2 + - uid: 10174 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 8.5,21.5 + parent: 2 + - uid: 10175 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 7.5,21.5 + parent: 2 + - uid: 10176 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 6.5,21.5 + parent: 2 + - uid: 10177 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 5.5,21.5 + parent: 2 + - uid: 10178 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 4.5,21.5 + parent: 2 + - uid: 10179 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 3.5,21.5 + parent: 2 + - uid: 10180 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 2.5,21.5 + parent: 2 + - uid: 10181 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 1.5,21.5 + parent: 2 + - uid: 10182 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 32.5,14.5 + parent: 2 + - uid: 10183 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 32.5,15.5 + parent: 2 + - uid: 10184 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 31.5,16.5 + parent: 2 + - uid: 10185 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 30.5,16.5 + parent: 2 + - uid: 10186 + components: + - type: Transform + pos: 29.5,17.5 + parent: 2 + - uid: 10187 + components: + - type: Transform + pos: 29.5,18.5 + parent: 2 + - uid: 10188 + components: + - type: Transform + pos: 29.5,19.5 + parent: 2 + - uid: 10189 + components: + - type: Transform + pos: 29.5,20.5 + parent: 2 + - uid: 10190 + components: + - type: Transform + pos: 29.5,21.5 + parent: 2 + - uid: 10191 + components: + - type: Transform + pos: 29.5,22.5 + parent: 2 + - uid: 10192 + components: + - type: Transform + pos: 29.5,23.5 + parent: 2 + - uid: 10193 + components: + - type: Transform + pos: 29.5,24.5 + parent: 2 + - uid: 10194 + components: + - type: Transform + pos: 29.5,25.5 + parent: 2 + - uid: 10195 + components: + - type: Transform + pos: 39.5,2.5 + parent: 2 + - uid: 10196 + components: + - type: Transform + pos: 39.5,3.5 + parent: 2 + - uid: 10197 + components: + - type: Transform + pos: 39.5,4.5 + parent: 2 + - uid: 10198 + components: + - type: Transform + pos: 39.5,5.5 + parent: 2 + - uid: 10199 + components: + - type: Transform + pos: 39.5,6.5 + parent: 2 + - uid: 10200 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 38.5,7.5 + parent: 2 + - uid: 10201 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 37.5,7.5 + parent: 2 + - uid: 10202 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 36.5,7.5 + parent: 2 + - uid: 10203 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 35.5,7.5 + parent: 2 + - uid: 10204 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 34.5,7.5 + parent: 2 + - uid: 10205 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 33.5,7.5 + parent: 2 + - uid: 10206 + components: + - type: Transform + pos: 32.5,10.5 + parent: 2 + - uid: 10207 + components: + - type: Transform + pos: 32.5,9.5 + parent: 2 + - uid: 10208 + components: + - type: Transform + pos: 32.5,8.5 + parent: 2 + - uid: 10209 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 31.5,7.5 + parent: 2 + - uid: 10210 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 30.5,7.5 + parent: 2 + - uid: 10211 + components: + - type: Transform + pos: 29.5,8.5 + parent: 2 + - uid: 10212 + components: + - type: Transform + pos: 29.5,9.5 + parent: 2 + - uid: 10213 + components: + - type: Transform + pos: 29.5,10.5 + parent: 2 + - uid: 10214 + components: + - type: Transform + pos: 29.5,11.5 + parent: 2 + - uid: 10215 + components: + - type: Transform + pos: 29.5,12.5 + parent: 2 + - uid: 10216 + components: + - type: Transform + pos: 29.5,13.5 + parent: 2 + - uid: 10217 + components: + - type: Transform + pos: 29.5,14.5 + parent: 2 + - uid: 10218 + components: + - type: Transform + pos: 29.5,15.5 + parent: 2 + - uid: 10219 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 35.5,-0.5 + parent: 2 + - uid: 10220 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 34.5,-0.5 + parent: 2 + - uid: 10221 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 33.5,-0.5 + parent: 2 + - uid: 10222 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 32.5,-0.5 + parent: 2 + - uid: 10223 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 31.5,-0.5 + parent: 2 + - uid: 10224 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 30.5,-0.5 + parent: 2 + - uid: 10225 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 29.5,0.5 + parent: 2 + - uid: 10226 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 29.5,1.5 + parent: 2 + - uid: 10227 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 29.5,2.5 + parent: 2 + - uid: 10228 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 29.5,3.5 + parent: 2 + - uid: 10229 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 29.5,4.5 + parent: 2 + - uid: 10230 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 29.5,5.5 + parent: 2 + - uid: 10231 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 29.5,6.5 + parent: 2 + - uid: 10232 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 5.5,-55.5 + parent: 2 + - uid: 10233 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 6.5,-55.5 + parent: 2 + - uid: 10234 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 7.5,-54.5 + parent: 2 + - uid: 10235 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 7.5,-53.5 + parent: 2 + - uid: 10236 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 8.5,-52.5 + parent: 2 + - uid: 10237 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 9.5,-52.5 + parent: 2 + - uid: 10238 + components: + - type: Transform + pos: 7.5,-51.5 + parent: 2 + - uid: 10239 + components: + - type: Transform + pos: 7.5,-50.5 + parent: 2 + - uid: 10240 + components: + - type: Transform + pos: 7.5,-49.5 + parent: 2 + - uid: 10241 + components: + - type: Transform + pos: 7.5,-48.5 + parent: 2 + - uid: 10242 + components: + - type: Transform + pos: 7.5,-47.5 + parent: 2 + - uid: 10243 + components: + - type: Transform + pos: 7.5,-46.5 + parent: 2 + - uid: 10244 + components: + - type: Transform + pos: 6.5,-44.5 + parent: 2 + - uid: 10245 + components: + - type: Transform + pos: 6.5,-43.5 + parent: 2 + - uid: 10246 + components: + - type: Transform + pos: 6.5,-42.5 + parent: 2 + - uid: 10247 + components: + - type: Transform + pos: 6.5,-41.5 + parent: 2 + - uid: 10248 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 5.5,-40.5 + parent: 2 + - uid: 10249 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 4.5,-40.5 + parent: 2 + - uid: 10250 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 3.5,-40.5 + parent: 2 + - uid: 10251 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 2.5,-40.5 + parent: 2 + - uid: 10252 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 1.5,-39.5 + parent: 2 + - uid: 10253 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 1.5,-38.5 + parent: 2 + - uid: 10254 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 1.5,-37.5 + parent: 2 + - uid: 10255 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 1.5,-36.5 + parent: 2 + - uid: 10256 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 1.5,-35.5 + parent: 2 + - uid: 10257 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 1.5,-34.5 + parent: 2 + - uid: 10258 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 1.5,-33.5 + parent: 2 + - uid: 10259 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 1.5,-32.5 + parent: 2 + - uid: 10260 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 1.5,-31.5 + parent: 2 + - uid: 10261 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 1.5,-30.5 + parent: 2 + - uid: 10262 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 1.5,-29.5 + parent: 2 + - uid: 10263 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 1.5,-28.5 + parent: 2 + - uid: 10264 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 0.5,-27.5 + parent: 2 + - uid: 10265 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 31.5,-41.5 + parent: 2 + - uid: 10266 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 29.5,-40.5 + parent: 2 + - uid: 10267 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 28.5,-40.5 + parent: 2 + - uid: 10268 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 27.5,-40.5 + parent: 2 + - uid: 10269 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 26.5,-40.5 + parent: 2 + - uid: 10270 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 25.5,-40.5 + parent: 2 + - uid: 10271 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 24.5,-40.5 + parent: 2 + - uid: 10272 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 23.5,-40.5 + parent: 2 + - uid: 10273 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 22.5,-40.5 + parent: 2 + - uid: 10274 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 21.5,-40.5 + parent: 2 + - uid: 10275 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 20.5,-40.5 + parent: 2 + - uid: 10276 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 19.5,-40.5 + parent: 2 + - uid: 10277 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 18.5,-40.5 + parent: 2 + - uid: 10278 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 17.5,-40.5 + parent: 2 + - uid: 10279 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 16.5,-40.5 + parent: 2 + - uid: 10280 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 15.5,-40.5 + parent: 2 + - uid: 10281 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 14.5,-40.5 + parent: 2 + - uid: 10282 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 13.5,-40.5 + parent: 2 + - uid: 10283 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 12.5,-40.5 + parent: 2 + - uid: 10284 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 11.5,-40.5 + parent: 2 + - uid: 10285 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 10.5,-40.5 + parent: 2 + - uid: 10286 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 9.5,-40.5 + parent: 2 + - uid: 10287 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 8.5,-40.5 + parent: 2 + - uid: 10288 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 7.5,-40.5 + parent: 2 + - uid: 10289 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -15.5,-60.5 + parent: 2 + - uid: 10290 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -15.5,-59.5 + parent: 2 + - uid: 10291 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -15.5,-58.5 + parent: 2 + - uid: 10292 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -15.5,-57.5 + parent: 2 + - uid: 10293 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -15.5,-56.5 + parent: 2 + - uid: 10294 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -15.5,-55.5 + parent: 2 + - uid: 10295 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -15.5,-54.5 + parent: 2 + - uid: 10296 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -15.5,-53.5 + parent: 2 + - uid: 10297 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -15.5,-52.5 + parent: 2 + - uid: 10298 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -20.5,-51.5 + parent: 2 + - uid: 10299 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -19.5,-51.5 + parent: 2 + - uid: 10300 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -18.5,-51.5 + parent: 2 + - uid: 10301 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -17.5,-51.5 + parent: 2 + - uid: 10302 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -16.5,-51.5 + parent: 2 + - uid: 10303 + components: + - type: Transform + pos: -21.5,-50.5 + parent: 2 + - uid: 10304 + components: + - type: Transform + pos: -21.5,-49.5 + parent: 2 + - uid: 10305 + components: + - type: Transform + pos: -21.5,-48.5 + parent: 2 + - uid: 10306 + components: + - type: Transform + pos: -21.5,-47.5 + parent: 2 + - uid: 10307 + components: + - type: Transform + pos: -21.5,-46.5 + parent: 2 + - uid: 10308 + components: + - type: Transform + pos: -21.5,-45.5 + parent: 2 + - uid: 10309 + components: + - type: Transform + pos: -21.5,-44.5 + parent: 2 + - uid: 10310 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -22.5,-43.5 + parent: 2 + - uid: 10311 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -23.5,-43.5 + parent: 2 + - uid: 10312 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -24.5,-43.5 + parent: 2 + - uid: 10313 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -25.5,-43.5 + parent: 2 + - uid: 10314 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -26.5,-43.5 + parent: 2 + - uid: 10315 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -27.5,-43.5 + parent: 2 + - uid: 10316 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -28.5,-43.5 + parent: 2 + - uid: 10317 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -29.5,-43.5 + parent: 2 + - uid: 10318 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -30.5,-43.5 + parent: 2 + - uid: 10319 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -31.5,-43.5 + parent: 2 + - uid: 10320 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 34.5,-36.5 + parent: 2 + - uid: 10321 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 34.5,-35.5 + parent: 2 + - uid: 15038 + components: + - type: Transform + pos: 8.5,9.5 + parent: 2 + - uid: 15158 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 9.5,11.5 + parent: 2 + - uid: 15894 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 11.5,-53.5 + parent: 2 + - uid: 17534 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 12.5,-53.5 + parent: 2 + - uid: 23295 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 13.5,-53.5 + parent: 2 + - uid: 24233 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 17.5,14.5 + parent: 2 + - uid: 24252 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 36.5,6.5 + parent: 2 +- proto: DisposalPipeBroken + entities: + - uid: 10322 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 19.5,-36.5 + parent: 2 +- proto: DisposalTrunk + entities: + - uid: 10323 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -12.5,-34.5 + parent: 2 + - uid: 10324 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -13.5,-37.5 + parent: 2 + - uid: 10325 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -13.5,-40.5 + parent: 2 + - uid: 10326 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -13.5,-43.5 + parent: 2 + - uid: 10327 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -13.5,-46.5 + parent: 2 + - uid: 10328 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -13.5,-49.5 + parent: 2 + - uid: 10329 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -15.5,-49.5 + parent: 2 + - uid: 10330 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -15.5,-46.5 + parent: 2 + - uid: 10331 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -15.5,-43.5 + parent: 2 + - uid: 10332 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -15.5,-40.5 + parent: 2 + - uid: 10333 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -15.5,-37.5 + parent: 2 + - uid: 10334 + components: + - type: Transform + pos: -12.5,-32.5 + parent: 2 + - uid: 10335 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 6.5,61.5 + parent: 2 + - uid: 10336 + components: + - type: Transform + pos: 6.5,69.5 + parent: 2 + - uid: 10337 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -4.5,61.5 + parent: 2 + - uid: 10338 + components: + - type: Transform + pos: -4.5,69.5 + parent: 2 + - uid: 10339 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 47.5,-31.5 + parent: 2 + - uid: 10340 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -25.5,9.5 + parent: 2 + - uid: 10341 + components: + - type: Transform + pos: -44.5,16.5 + parent: 2 + - uid: 10342 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -30.5,4.5 + parent: 2 + - uid: 10343 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -36.5,0.5 + parent: 2 + - uid: 10344 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -37.5,-7.5 + parent: 2 + - uid: 10345 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -23.5,-2.5 + parent: 2 + - uid: 10346 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -28.5,-32.5 + parent: 2 + - uid: 10347 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -20.5,-18.5 + parent: 2 + - uid: 10348 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -20.5,-33.5 + parent: 2 + - uid: 10349 + components: + - type: Transform + pos: -14.5,-19.5 + parent: 2 + - uid: 10350 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -8.5,-21.5 + parent: 2 + - uid: 10351 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -39.5,-52.5 + parent: 2 + - uid: 10352 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -47.5,-29.5 + parent: 2 + - uid: 10353 + components: + - type: Transform + pos: -41.5,-38.5 + parent: 2 + - uid: 10354 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 10.5,-32.5 + parent: 2 + - uid: 10355 + components: + - type: Transform + pos: 15.5,-22.5 + parent: 2 + - uid: 10356 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 23.5,-32.5 + parent: 2 + - uid: 10357 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 22.5,-19.5 + parent: 2 + - uid: 10358 + components: + - type: Transform + pos: 30.5,-29.5 + parent: 2 + - uid: 10359 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 25.5,-30.5 + parent: 2 + - uid: 10360 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 34.5,-21.5 + parent: 2 + - uid: 10361 + components: + - type: Transform + pos: 39.5,-20.5 + parent: 2 + - uid: 10362 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 42.5,-32.5 + parent: 2 + - uid: 10363 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 35.5,-12.5 + parent: 2 + - uid: 10364 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -7.5,-7.5 + parent: 2 + - uid: 10365 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 9.5,-7.5 + parent: 2 + - uid: 10366 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -3.5,-1.5 + parent: 2 + - uid: 10367 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 5.5,3.5 + parent: 2 + - uid: 10368 + components: + - type: Transform + pos: 9.5,9.5 + parent: 2 + - uid: 10369 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 7.5,17.5 + parent: 2 + - uid: 10370 + components: + - type: Transform + pos: -2.5,16.5 + parent: 2 + - uid: 10371 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -2.5,18.5 + parent: 2 + - uid: 10372 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 4.5,25.5 + parent: 2 + - uid: 10373 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -2.5,28.5 + parent: 2 + - uid: 10374 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -11.5,31.5 + parent: 2 + - uid: 10375 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -20.5,38.5 + parent: 2 + - uid: 10376 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -26.5,32.5 + parent: 2 + - uid: 10377 + components: + - type: Transform + pos: -2.5,40.5 + parent: 2 + - uid: 10378 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 9.5,46.5 + parent: 2 + - uid: 10379 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -5.5,53.5 + parent: 2 + - uid: 10380 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -2.5,58.5 + parent: 2 + - uid: 10381 + components: + - type: Transform + pos: 8.5,56.5 + parent: 2 + - uid: 10382 + components: + - type: Transform + pos: 17.5,40.5 + parent: 2 + - uid: 10383 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 30.5,39.5 + parent: 2 + - uid: 10384 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 42.5,39.5 + parent: 2 + - uid: 10385 + components: + - type: Transform + pos: 39.5,30.5 + parent: 2 + - uid: 10386 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 15.5,10.5 + parent: 2 + - uid: 10387 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 21.5,12.5 + parent: 2 + - uid: 10388 + components: + - type: Transform + pos: 21.5,19.5 + parent: 2 + - uid: 10389 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 32.5,13.5 + parent: 2 + - uid: 10390 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 40.5,1.5 + parent: 2 + - uid: 10391 + components: + - type: Transform + pos: 32.5,11.5 + parent: 2 + - uid: 10392 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 36.5,-0.5 + parent: 2 + - uid: 10393 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 8.5,-45.5 + parent: 2 + - uid: 10394 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 14.5,-53.5 + parent: 2 + - uid: 10395 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 4.5,-56.5 + parent: 2 + - uid: 10396 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 32.5,-41.5 + parent: 2 + - uid: 10397 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -15.5,-61.5 + parent: 2 + - uid: 10398 + components: + - type: Transform + pos: 33.5,-36.5 + parent: 2 + - uid: 10399 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 35.5,-34.5 + parent: 2 + - uid: 22840 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 10.5,11.5 + parent: 2 +- proto: DisposalUnit + entities: + - uid: 10400 + components: + - type: Transform + pos: 32.5,-41.5 + parent: 2 + - uid: 10401 + components: + - type: Transform + pos: -7.5,-7.5 + parent: 2 + - uid: 10402 + components: + - type: Transform + pos: -3.5,-1.5 + parent: 2 + - uid: 10403 + components: + - type: Transform + pos: 5.5,3.5 + parent: 2 + - uid: 10404 + components: + - type: Transform + pos: 9.5,-7.5 + parent: 2 + - uid: 10405 + components: + - type: Transform + pos: -7.5,9.5 + parent: 2 + - uid: 10406 + components: + - type: Transform + pos: 9.5,9.5 + parent: 2 + - uid: 10407 + components: + - type: Transform + pos: -2.5,16.5 + parent: 2 + - uid: 10408 + components: + - type: Transform + pos: 7.5,17.5 + parent: 2 + - uid: 10409 + components: + - type: Transform + pos: 10.5,11.5 + parent: 2 + - uid: 10410 + components: + - type: Transform + pos: -23.5,-2.5 + parent: 2 + - uid: 10411 + components: + - type: Transform + pos: -30.5,4.5 + parent: 2 + - uid: 10412 + components: + - type: Transform + pos: -25.5,9.5 + parent: 2 + - uid: 10413 + components: + - type: Transform + pos: -32.5,8.5 + parent: 2 + - uid: 10414 + components: + - type: Transform + pos: -43.5,9.5 + parent: 2 + - uid: 10415 + components: + - type: Transform + pos: -36.5,0.5 + parent: 2 + - uid: 10416 + components: + - type: Transform + pos: -37.5,-7.5 + parent: 2 + - uid: 10417 + components: + - type: Transform + pos: -28.5,-20.5 + parent: 2 + - uid: 10418 + components: + - type: Transform + pos: -28.5,-32.5 + parent: 2 + - uid: 10419 + components: + - type: Transform + pos: -20.5,-18.5 + parent: 2 + - uid: 10420 + components: + - type: Transform + pos: -24.5,-24.5 + parent: 2 + - uid: 10421 + components: + - type: Transform + pos: -14.5,-19.5 + parent: 2 + - uid: 10422 + components: + - type: Transform + pos: -8.5,-21.5 + parent: 2 + - uid: 10423 + components: + - type: Transform + pos: -20.5,-33.5 + parent: 2 + - uid: 10424 + components: + - type: Transform + pos: -12.5,-34.5 + parent: 2 + - uid: 10425 + components: + - type: Transform + pos: -8.5,-30.5 + parent: 2 + - uid: 10426 + components: + - type: Transform + pos: -13.5,-37.5 + parent: 2 + - uid: 10427 + components: + - type: Transform + pos: -13.5,-40.5 + parent: 2 + - uid: 10428 + components: + - type: Transform + pos: -13.5,-43.5 + parent: 2 + - uid: 10429 + components: + - type: Transform + pos: -13.5,-49.5 + parent: 2 + - uid: 10430 + components: + - type: Transform + pos: -13.5,-46.5 + parent: 2 + - uid: 10431 + components: + - type: Transform + pos: -41.5,-38.5 + parent: 2 + - uid: 10432 + components: + - type: Transform + pos: -47.5,-29.5 + parent: 2 + - uid: 10433 + components: + - type: Transform + pos: -39.5,-52.5 + parent: 2 + - uid: 10434 + components: + - type: Transform + pos: 36.5,-0.5 + parent: 2 + - uid: 10435 + components: + - type: Transform + pos: 15.5,10.5 + parent: 2 + - uid: 10436 + components: + - type: Transform + pos: 21.5,12.5 + parent: 2 + - uid: 10437 + components: + - type: Transform + pos: 21.5,19.5 + parent: 2 + - uid: 10438 + components: + - type: Transform + pos: 32.5,11.5 + parent: 2 + - uid: 10439 + components: + - type: Transform + pos: 32.5,13.5 + parent: 2 + - uid: 10440 + components: + - type: Transform + pos: 40.5,1.5 + parent: 2 + - uid: 10441 + components: + - type: Transform + pos: 39.5,30.5 + parent: 2 + - uid: 10442 + components: + - type: Transform + pos: 17.5,40.5 + parent: 2 + - uid: 10443 + components: + - type: Transform + pos: 30.5,39.5 + parent: 2 + - uid: 10444 + components: + - type: Transform + pos: 42.5,39.5 + parent: 2 + - uid: 10445 + components: + - type: Transform + pos: 35.5,-12.5 + parent: 2 + - uid: 10446 + components: + - type: Transform + pos: -2.5,18.5 + parent: 2 + - uid: 10447 + components: + - type: Transform + pos: -2.5,28.5 + parent: 2 + - uid: 10448 + components: + - type: Transform + pos: -11.5,31.5 + parent: 2 + - uid: 10449 + components: + - type: Transform + pos: -20.5,38.5 + parent: 2 + - uid: 10450 + components: + - type: Transform + pos: -26.5,32.5 + parent: 2 + - uid: 10451 + components: + - type: Transform + pos: -26.5,30.5 + parent: 2 + - uid: 10452 + components: + - type: Transform + pos: -42.5,37.5 + parent: 2 + - uid: 10453 + components: + - type: Transform + pos: -2.5,40.5 + parent: 2 + - uid: 10454 + components: + - type: Transform + pos: -5.5,53.5 + parent: 2 + - uid: 10455 + components: + - type: Transform + pos: 9.5,46.5 + parent: 2 + - uid: 10456 + components: + - type: Transform + pos: 8.5,56.5 + parent: 2 + - uid: 10457 + components: + - type: Transform + pos: -4.5,61.5 + parent: 2 + - uid: 10458 + components: + - type: Transform + pos: 6.5,61.5 + parent: 2 + - uid: 10459 + components: + - type: Transform + pos: -2.5,58.5 + parent: 2 + - uid: 10460 + components: + - type: Transform + pos: 6.5,69.5 + parent: 2 + - uid: 10461 + components: + - type: Transform + pos: -4.5,69.5 + parent: 2 + - uid: 10462 + components: + - type: Transform + pos: 22.5,-19.5 + parent: 2 + - uid: 10463 + components: + - type: Transform + pos: 34.5,-21.5 + parent: 2 + - uid: 10464 + components: + - type: Transform + pos: 42.5,-32.5 + parent: 2 + - uid: 10465 + components: + - type: Transform + pos: 47.5,-31.5 + parent: 2 + - uid: 10466 + components: + - type: Transform + pos: 30.5,-29.5 + parent: 2 + - uid: 10467 + components: + - type: Transform + pos: 25.5,-30.5 + parent: 2 + - uid: 10468 + components: + - type: Transform + pos: 23.5,-32.5 + parent: 2 + - uid: 10469 + components: + - type: Transform + pos: 10.5,-32.5 + parent: 2 + - uid: 10470 + components: + - type: Transform + pos: 39.5,-20.5 + parent: 2 + - uid: 10471 + components: + - type: Transform + pos: 15.5,-22.5 + parent: 2 + - uid: 10472 + components: + - type: Transform + pos: 8.5,-45.5 + parent: 2 + - uid: 10473 + components: + - type: Transform + pos: 14.5,-53.5 + parent: 2 + - uid: 10474 + components: + - type: Transform + pos: 4.5,-56.5 + parent: 2 + - uid: 10475 + components: + - type: Transform + pos: -15.5,-61.5 + parent: 2 + - uid: 10476 + components: + - type: Transform + pos: 4.5,25.5 + parent: 2 + - uid: 10477 + components: + - type: Transform + pos: 19.5,23.5 + parent: 2 + - uid: 10478 + components: + - type: Transform + pos: 33.5,-36.5 + parent: 2 +- proto: DisposalYJunction + entities: + - uid: 10479 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 26.5,-30.5 + parent: 2 + - uid: 10480 + components: + - type: Transform + pos: -6.5,-7.5 + parent: 2 + - uid: 10481 + components: + - type: Transform + pos: -4.5,42.5 + parent: 2 + - uid: 10482 + components: + - type: Transform + pos: 0.5,47.5 + parent: 2 + - uid: 10483 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 29.5,26.5 + parent: 2 +- proto: DogBed + entities: + - uid: 10484 + components: + - type: Transform + pos: 44.5,-32.5 + parent: 2 + - uid: 10485 + components: + - type: Transform + pos: 43.5,-22.5 + parent: 2 + - uid: 10486 + components: + - type: Transform + pos: -30.5,5.5 + parent: 2 + - uid: 10487 + components: + - type: Transform + pos: -17.5,-24.5 + parent: 2 + - uid: 10488 + components: + - type: Transform + pos: -14.5,31.5 + parent: 2 + - uid: 10489 + components: + - type: Transform + pos: -21.5,43.5 + parent: 2 + - uid: 10490 + components: + - type: Transform + pos: -4.5,56.5 + parent: 2 + - uid: 10491 + components: + - type: Transform + pos: 9.5,47.5 + parent: 2 + - uid: 10492 + components: + - type: Transform + pos: 26.5,-21.5 + parent: 2 +- proto: DonkpocketBoxSpawner + entities: + - uid: 10493 + components: + - type: Transform + pos: -17.5,-13.5 + parent: 2 + - uid: 10494 + components: + - type: Transform + pos: -17.5,-13.5 + parent: 2 + - uid: 10495 + components: + - type: Transform + pos: 40.5,-18.5 + parent: 2 + - uid: 10496 + components: + - type: Transform + pos: 3.5,-52.5 + parent: 2 + - uid: 10497 + components: + - type: Transform + pos: -8.5,-23.5 + parent: 2 +- proto: DoorElectronics + entities: + - uid: 10498 + components: + - type: Transform + pos: -14.419886,-55.436817 + parent: 2 +- proto: DresserChiefEngineerFilled + entities: + - uid: 8812 + components: + - type: Transform + pos: 14.5,-50.5 + parent: 2 +- proto: DresserChiefMedicalOfficerFilled + entities: + - uid: 8814 + components: + - type: Transform + pos: 26.5,-20.5 + parent: 2 +- proto: DresserFilled + entities: + - uid: 10499 + components: + - type: Transform + pos: 40.5,15.5 + parent: 2 + - uid: 10500 + components: + - type: Transform + pos: -7.5,56.5 + parent: 2 +- proto: DresserHeadOfPersonnelFilled + entities: + - uid: 5802 + components: + - type: Transform + pos: 6.5,50.5 + parent: 2 +- proto: DresserHeadOfSecurityFilled + entities: + - uid: 8770 + components: + - type: Transform + pos: -22.5,45.5 + parent: 2 +- proto: DresserQuarterMasterFilled + entities: + - uid: 8811 + components: + - type: Transform + pos: -23.5,4.5 + parent: 2 +- proto: DresserResearchDirectorFilled + entities: + - uid: 10914 + components: + - type: Transform + pos: -16.5,-19.5 + parent: 2 +- proto: Drill + entities: + - uid: 10552 + components: + - type: Transform + pos: 19.632008,-16.266129 + parent: 2 +- proto: DrinkBeerBottleFull + entities: + - uid: 10553 + components: + - type: Transform + pos: -43.631714,-50.019222 + parent: 2 + - uid: 10554 + components: + - type: Transform + pos: -43.417263,-49.674236 + parent: 2 + - uid: 10555 + components: + - type: Transform + pos: 44.742184,-66.245926 + parent: 2 + - uid: 10556 + components: + - type: Transform + pos: 44.909847,-66.03643 + parent: 2 +- proto: DrinkBottleBeer + entities: + - uid: 10557 + components: + - type: Transform + pos: -23.917133,-14.595512 + parent: 2 + - uid: 10558 + components: + - type: Transform + pos: 11.279647,26.776213 + parent: 2 + - uid: 10559 + components: + - type: Transform + pos: 11.419507,26.953367 + parent: 2 + - uid: 10560 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 11.708551,26.51514 + parent: 2 +- proto: DrinkBottleWine + entities: + - uid: 10561 + components: + - type: Transform + pos: -44.7997,-36.270035 + parent: 2 +- proto: DrinkChampagneBottleFull + entities: + - uid: 10562 + components: + - type: Transform + pos: 23.63028,35.828766 + parent: 2 + - uid: 10563 + components: + - type: Transform + pos: 10.704861,54.94718 + parent: 2 +- proto: DrinkChangelingStingCan + entities: + - uid: 10564 + components: + - type: Transform + pos: -29.491821,-60.314552 + parent: 2 +- proto: DrinkClownBloodGlass + entities: + - uid: 10538 + components: + - type: Transform + parent: 10524 + - type: Physics + angularDamping: 0 + linearDamping: 0 + canCollide: False + - type: InsideEntityStorage +- proto: DrinkDeadRumGlass + entities: + - uid: 10565 + components: + - type: Transform + pos: -34.82376,39.766514 + parent: 2 +- proto: DrinkDrGibbCan + entities: + - uid: 10566 + components: + - type: Transform + pos: -27.281612,-66.12426 + parent: 2 +- proto: DrinkFourteenLokoCan + entities: + - uid: 10567 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -27.290928,-66.617744 + parent: 2 +- proto: DrinkGildlagerBottleFull + entities: + - uid: 10568 + components: + - type: Transform + pos: -35.58466,17.12171 + parent: 2 +- proto: DrinkGildlagerGlass + entities: + - uid: 10569 + components: + - type: Transform + pos: -35.689552,16.660172 + parent: 2 + - uid: 10570 + components: + - type: Transform + pos: -35.52172,16.765066 + parent: 2 + - uid: 10571 + components: + - type: Transform + pos: -35.395847,16.660172 + parent: 2 +- proto: DrinkGinBottleFull + entities: + - uid: 996 + components: + - type: Transform + parent: 995 + - type: Physics + canCollide: False + - type: InsideEntityStorage +- proto: DrinkGlass + entities: + - uid: 10572 + components: + - type: Transform + pos: 25.323677,5.74332 + parent: 2 + - uid: 10573 + components: + - type: Transform + pos: 16.337538,12.790525 + parent: 2 + - uid: 10575 + components: + - type: Transform + parent: 10574 + - type: Physics + canCollide: False + - uid: 10577 + components: + - type: Transform + parent: 10576 + - type: Physics + canCollide: False + - type: InsideEntityStorage + - uid: 10578 + components: + - type: Transform + parent: 10576 + - type: Physics + canCollide: False + - type: InsideEntityStorage +- proto: DrinkGoldenCup + entities: + - uid: 10581 + components: + - type: Transform + pos: -31.409832,17.016815 + parent: 2 +- proto: DrinkGrapeCan + entities: + - uid: 10582 + components: + - type: Transform + pos: -27.682144,-66.15219 + parent: 2 + - uid: 10583 + components: + - type: Transform + pos: 29.740402,-34.127605 + parent: 2 + - uid: 10584 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 44.86793,-66.77665 + parent: 2 +- proto: DrinkHosFlask + entities: + - uid: 10586 + components: + - type: Transform + pos: -22.406532,40.797153 + parent: 2 +- proto: DrinkIcedTeaCan + entities: + - uid: 10587 + components: + - type: Transform + pos: -27.738033,-66.45014 + parent: 2 +- proto: DrinkMilkCarton + entities: + - uid: 10588 + components: + - type: Transform + pos: 42.39777,-29.082644 + parent: 2 +- proto: DrinkMugBlue + entities: + - uid: 10589 + components: + - type: Transform + pos: 18.680553,8.524305 + parent: 2 +- proto: DrinkMugDog + entities: + - uid: 10590 + components: + - type: Transform + pos: -42.624443,34.60872 + parent: 2 + - uid: 10591 + components: + - type: Transform + pos: 18.667133,21.53536 + parent: 2 +- proto: DrinkMugRainbow + entities: + - uid: 10592 + components: + - type: Transform + pos: -14.723443,35.313038 + parent: 2 +- proto: DrinkPoisonWinebottleFull + entities: + - uid: 10593 + components: + - type: Transform + pos: -33.711823,26.7967 + parent: 2 +- proto: DrinkPoisonWineGlass + entities: + - uid: 10594 + components: + - type: Transform + pos: -33.33886,26.68481 + parent: 2 + - uid: 10595 + components: + - type: Transform + pos: -33.51291,26.572924 + parent: 2 +- proto: DrinkPwrGameCan + entities: + - uid: 10596 + components: + - type: Transform + pos: 14.313516,-2.105032 + parent: 2 + - uid: 10597 + components: + - type: Transform + pos: 14.43939,-2.35678 + parent: 2 + - uid: 10598 + components: + - type: Transform + pos: 14.2296,-2.377759 + parent: 2 + - uid: 10599 + components: + - type: Transform + pos: 14.733096,-2.084053 + parent: 2 + - uid: 10600 + components: + - type: Transform + pos: 14.712117,-2.35678 + parent: 2 + - uid: 10601 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 14.499057,-3.203574 + parent: 2 + - type: Openable + opened: True +- proto: DrinkShaker + entities: + - uid: 10602 + components: + - type: Transform + pos: 18.20451,14.569038 + parent: 2 + - uid: 10603 + components: + - type: Transform + pos: 18.225487,14.7998085 + parent: 2 + - uid: 10604 + components: + - type: Transform + pos: -2.7981777,55.697433 + parent: 2 +- proto: DrinkShotGlass + entities: + - uid: 10605 + components: + - type: Transform + pos: -44.215233,-36.548958 + parent: 2 + - uid: 10606 + components: + - type: Transform + pos: -44.215233,-36.29721 + parent: 2 +- proto: DrinkSodaWaterCan + entities: + - uid: 10607 + components: + - type: Transform + pos: -27.467907,-66.40359 + parent: 2 + - uid: 10608 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 30.369774,-34.568165 + parent: 2 +- proto: DrinkSoyMilkCarton + entities: + - uid: 10609 + components: + - type: Transform + pos: 42.63087,-28.998726 + parent: 2 +- proto: Dropper + entities: + - uid: 10610 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -36.219715,-27.447004 + parent: 2 + - uid: 10611 + components: + - type: Transform + pos: -5.5465403,-31.55518 + parent: 2 + - uid: 10612 + components: + - type: Transform + pos: 38.544987,-33.769985 + parent: 2 +- proto: EffectHearts + entities: + - uid: 10613 + components: + - type: Transform + pos: 5.3385115,24.668749 + parent: 2 +- proto: EmergencyLight + entities: + - uid: 10614 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -0.5,35.5 + parent: 2 + - uid: 10615 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 2.5,45.5 + parent: 2 + - uid: 10616 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 2.5,-58.5 + parent: 2 + - uid: 10617 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -0.5,53.5 + parent: 2 + - uid: 10618 + components: + - type: Transform + pos: 8.5,56.5 + parent: 2 + - uid: 10619 + components: + - type: Transform + pos: -6.5,40.5 + parent: 2 + - uid: 10620 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 4.5,41.5 + parent: 2 + - uid: 10621 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 8.5,26.5 + parent: 2 + - uid: 10622 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 4.5,31.5 + parent: 2 + - uid: 10623 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -8.5,43.5 + parent: 2 + - uid: 10624 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -12.5,36.5 + parent: 2 + - uid: 10625 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 2.5,24.5 + parent: 2 + - uid: 10626 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -0.5,15.5 + parent: 2 + - uid: 10627 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 6.5,-59.5 + parent: 2 + - uid: 10628 + components: + - type: Transform + pos: -7.5,9.5 + parent: 2 + - uid: 10629 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -18.5,40.5 + parent: 2 + - uid: 10630 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -14.5,34.5 + parent: 2 + - uid: 10631 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 9.5,-7.5 + parent: 2 + - uid: 10632 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 11.5,3.5 + parent: 2 + - uid: 10633 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -9.5,-1.5 + parent: 2 + - uid: 10634 + components: + - type: Transform + pos: -19.5,36.5 + parent: 2 + - uid: 10635 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -11.5,8.5 + parent: 2 + - uid: 10636 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -5.5,14.5 + parent: 2 + - uid: 10637 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 6.5,15.5 + parent: 2 + - uid: 10638 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 10.5,12.5 + parent: 2 + - uid: 10639 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 15.5,8.5 + parent: 2 + - uid: 10640 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 35.5,9.5 + parent: 2 + - uid: 10641 + components: + - type: Transform + pos: 23.5,19.5 + parent: 2 + - uid: 10642 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -20.5,39.5 + parent: 2 + - uid: 10643 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -26.5,45.5 + parent: 2 + - uid: 10644 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -30.5,33.5 + parent: 2 + - uid: 10645 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 10.5,-53.5 + parent: 2 + - uid: 10646 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 15.5,-0.5 + parent: 2 + - uid: 10647 + components: + - type: Transform + pos: 25.5,2.5 + parent: 2 + - uid: 10648 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 36.5,-0.5 + parent: 2 + - uid: 10649 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 28.5,-4.5 + parent: 2 + - uid: 10650 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 32.5,-8.5 + parent: 2 + - uid: 10651 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 44.5,-8.5 + parent: 2 + - uid: 10652 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 37.5,5.5 + parent: 2 + - uid: 10653 + components: + - type: Transform + pos: 41.5,15.5 + parent: 2 + - uid: 10654 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -42.5,33.5 + parent: 2 + - uid: 10655 + components: + - type: Transform + pos: 33.5,20.5 + parent: 2 + - uid: 10656 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 8.5,-49.5 + parent: 2 + - uid: 10657 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -42.5,28.5 + parent: 2 + - uid: 10658 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 30.5,18.5 + parent: 2 + - uid: 10659 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -39.5,24.5 + parent: 2 + - uid: 10660 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -35.5,23.5 + parent: 2 + - uid: 10661 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 36.5,26.5 + parent: 2 + - uid: 10662 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 28.5,37.5 + parent: 2 + - uid: 10663 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 44.5,40.5 + parent: 2 + - uid: 10664 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -29.5,25.5 + parent: 2 + - uid: 10665 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 20.5,29.5 + parent: 2 + - uid: 10666 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 23.5,43.5 + parent: 2 + - uid: 10667 + components: + - type: Transform + pos: -41.5,20.5 + parent: 2 + - uid: 10668 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 13.5,39.5 + parent: 2 + - uid: 10669 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 15.5,22.5 + parent: 2 + - uid: 10670 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 36.5,-15.5 + parent: 2 + - uid: 10671 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -2.5,-45.5 + parent: 2 + - uid: 10672 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 33.5,-25.5 + parent: 2 + - uid: 10673 + components: + - type: Transform + pos: 31.5,-14.5 + parent: 2 + - uid: 10674 + components: + - type: Transform + pos: 20.5,-22.5 + parent: 2 + - uid: 10675 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 12.5,-29.5 + parent: 2 + - uid: 10676 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -22.5,34.5 + parent: 2 + - uid: 10677 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 7.5,-32.5 + parent: 2 + - uid: 10678 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -30.5,28.5 + parent: 2 + - uid: 10679 + components: + - type: Transform + pos: 7.5,-21.5 + parent: 2 + - uid: 10680 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -7.5,-69.5 + parent: 2 + - uid: 10681 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 12.5,-15.5 + parent: 2 + - uid: 10682 + components: + - type: Transform + pos: -7.5,29.5 + parent: 2 + - uid: 10683 + components: + - type: Transform + pos: 16.5,-8.5 + parent: 2 + - uid: 10684 + components: + - type: Transform + pos: 24.5,-17.5 + parent: 2 + - uid: 10685 + components: + - type: Transform + pos: -3.5,-55.5 + parent: 2 + - uid: 10686 + components: + - type: Transform + pos: -7.5,20.5 + parent: 2 + - uid: 10687 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -0.5,-13.5 + parent: 2 + - uid: 10688 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -16.5,23.5 + parent: 2 + - uid: 10689 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 2.5,-27.5 + parent: 2 + - uid: 10690 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -0.5,-38.5 + parent: 2 + - uid: 10691 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -21.5,22.5 + parent: 2 + - uid: 10692 + components: + - type: Transform + pos: -20.5,29.5 + parent: 2 + - uid: 10693 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -20.5,-58.5 + parent: 2 + - uid: 10694 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 8.5,-69.5 + parent: 2 + - uid: 10695 + components: + - type: Transform + pos: 12.5,-57.5 + parent: 2 + - uid: 10696 + components: + - type: Transform + pos: 14.5,-40.5 + parent: 2 + - uid: 10697 + components: + - type: Transform + pos: 28.5,-39.5 + parent: 2 + - uid: 10698 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 27.5,-55.5 + parent: 2 + - uid: 10699 + components: + - type: Transform + pos: 27.5,-57.5 + parent: 2 + - uid: 10700 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 34.5,-43.5 + parent: 2 + - uid: 10701 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -10.5,-28.5 + parent: 2 + - uid: 10702 + components: + - type: Transform + pos: -20.5,-26.5 + parent: 2 + - uid: 10703 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -25.5,-31.5 + parent: 2 + - uid: 10704 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -36.5,-29.5 + parent: 2 + - uid: 10705 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -32.5,-42.5 + parent: 2 + - uid: 10706 + components: + - type: Transform + pos: -39.5,-41.5 + parent: 2 + - uid: 10707 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -41.5,-32.5 + parent: 2 + - uid: 10708 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -34.5,-52.5 + parent: 2 + - uid: 10709 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -22.5,-33.5 + parent: 2 + - uid: 10710 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -8.5,-32.5 + parent: 2 + - uid: 10711 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -6.5,-42.5 + parent: 2 + - uid: 10712 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -11.5,-49.5 + parent: 2 + - uid: 10713 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -17.5,-23.5 + parent: 2 + - uid: 10714 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -26.5,-12.5 + parent: 2 + - uid: 10715 + components: + - type: Transform + pos: -31.5,-20.5 + parent: 2 + - uid: 10716 + components: + - type: Transform + pos: -22.5,-16.5 + parent: 2 + - uid: 10717 + components: + - type: Transform + pos: -28.5,-16.5 + parent: 2 + - uid: 10718 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -34.5,-10.5 + parent: 2 + - uid: 10719 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -32.5,-1.5 + parent: 2 + - uid: 10720 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -26.5,-6.5 + parent: 2 + - uid: 10721 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -29.5,4.5 + parent: 2 + - uid: 10722 + components: + - type: Transform + pos: -28.5,13.5 + parent: 2 + - uid: 10723 + components: + - type: Transform + pos: -33.5,17.5 + parent: 2 + - uid: 10724 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -44.5,7.5 + parent: 2 + - uid: 10725 + components: + - type: Transform + pos: -42.5,17.5 + parent: 2 + - uid: 10726 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -42.5,-0.5 + parent: 2 + - uid: 10727 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -36.5,-10.5 + parent: 2 + - uid: 10728 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -45.5,-23.5 + parent: 2 + - uid: 10729 + components: + - type: Transform + pos: -43.5,-15.5 + parent: 2 + - uid: 10730 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -13.5,-0.5 + parent: 2 + - uid: 10731 + components: + - type: Transform + pos: -28.5,2.5 + parent: 2 +- proto: EmergencyRollerBedSpawnFolded + entities: + - uid: 10732 + components: + - type: Transform + pos: -38.484848,-16.936386 + parent: 2 + - uid: 10733 + components: + - type: Transform + pos: -38.303215,-16.698956 + parent: 2 +- proto: Emitter + entities: + - uid: 10734 + components: + - type: Transform + pos: 14.5,-58.5 + parent: 2 + - uid: 10735 + components: + - type: Transform + pos: 14.5,-57.5 + parent: 2 + - uid: 10736 + components: + - type: Transform + pos: 14.5,-59.5 + parent: 2 + - uid: 10737 + components: + - type: Transform + pos: 14.5,-60.5 + parent: 2 + - uid: 10738 + components: + - type: Transform + pos: 12.5,-67.5 + parent: 2 + - uid: 10739 + components: + - type: Transform + pos: 11.5,-67.5 + parent: 2 + - uid: 10740 + components: + - type: Transform + pos: 13.5,-67.5 + parent: 2 + - uid: 10741 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 2.5,-69.5 + parent: 2 + - uid: 10742 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -1.5,-69.5 + parent: 2 +- proto: EncryptionKeyCargo + entities: + - uid: 10744 + components: + - type: Transform + parent: 10743 + - type: Physics + canCollide: False + - uid: 10745 + components: + - type: Transform + pos: 4.3336377,44.696342 + parent: 2 +- proto: EncryptionKeyCommand + entities: + - uid: 10747 + components: + - type: Transform + parent: 10746 + - type: Physics + canCollide: False + - uid: 10748 + components: + - type: Transform + pos: 4.492146,44.761612 + parent: 2 +- proto: EncryptionKeyCommon + entities: + - uid: 10750 + components: + - type: Transform + parent: 10749 + - type: Physics + canCollide: False + - uid: 10751 + components: + - type: Transform + pos: 4.6226816,44.612427 + parent: 2 +- proto: EncryptionKeyEngineering + entities: + - uid: 10753 + components: + - type: Transform + parent: 10752 + - type: Physics + canCollide: False + - uid: 10754 + components: + - type: Transform + pos: 4.7718663,44.752285 + parent: 2 +- proto: EncryptionKeyJustice + entities: + - uid: 23866 + components: + - type: Transform + pos: 5.429473,44.565796 + parent: 2 +- proto: EncryptionKeyMedical + entities: + - uid: 10756 + components: + - type: Transform + parent: 10755 + - type: Physics + canCollide: False + - uid: 10757 + components: + - type: Transform + pos: 4.8930783,44.659046 + parent: 2 +- proto: EncryptionKeyMedicalScience + entities: + - uid: 10758 + components: + - type: Transform + pos: 5.648323,44.659046 + parent: 2 +- proto: EncryptionKeyScience + entities: + - uid: 10760 + components: + - type: Transform + parent: 10759 + - type: Physics + canCollide: False + - uid: 10761 + components: + - type: Transform + pos: 5.1355023,44.71499 + parent: 2 +- proto: EncryptionKeySecurity + entities: + - uid: 10763 + components: + - type: Transform + parent: 10762 + - type: Physics + canCollide: False + - uid: 10764 + components: + - type: Transform + pos: 5.1634746,44.62175 + parent: 2 +- proto: EncryptionKeyService + entities: + - uid: 10766 + components: + - type: Transform + parent: 10765 + - type: Physics + canCollide: False + - uid: 10767 + components: + - type: Transform + pos: 5.4711666,44.71499 + parent: 2 +- proto: ExosuitFabricator + entities: + - uid: 10768 + components: + - type: Transform + pos: -19.5,-23.5 + parent: 2 + - uid: 10769 + components: + - type: Transform + pos: -19.5,-21.5 + parent: 2 +- proto: ExplosivesSignMed + entities: + - uid: 10770 + components: + - type: Transform + pos: -15.5,-29.5 + parent: 2 +- proto: ExtendedEmergencyOxygenTankFilled + entities: + - uid: 10771 + components: + - type: Transform + pos: -7.645706,-64.09039 + parent: 2 + - uid: 10772 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -7.39085,-64.121475 + parent: 2 +- proto: ExtinguisherCabinet + entities: + - uid: 10773 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -22.5,-34.5 + parent: 2 + - uid: 10774 + components: + - type: Transform + pos: -2.5,-29.5 + parent: 2 + - uid: 10775 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -9.5,-38.5 + parent: 2 + - uid: 10776 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -13.5,-50.5 + parent: 2 + - uid: 10777 + components: + - type: Transform + pos: -18.5,-54.5 + parent: 2 + - uid: 10778 + components: + - type: Transform + pos: -11.5,-54.5 + parent: 2 + - uid: 10779 + components: + - type: Transform + pos: -1.5,-34.5 + parent: 2 +- proto: ExtinguisherCabinetFilled + entities: + - uid: 10780 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -10.5,-3.5 + parent: 2 + - uid: 10781 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -5.5,10.5 + parent: 2 + - uid: 10782 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 10.5,9.5 + parent: 2 + - uid: 10783 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 10.5,10.5 + parent: 2 + - uid: 10784 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 12.5,4.5 + parent: 2 + - uid: 10785 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 12.5,-3.5 + parent: 2 + - uid: 10786 + components: + - type: Transform + pos: -18.5,-2.5 + parent: 2 + - uid: 10787 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -8.5,13.5 + parent: 2 + - uid: 10788 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -8.5,17.5 + parent: 2 + - uid: 10789 + components: + - type: Transform + pos: -1.5,15.5 + parent: 2 + - uid: 10790 + components: + - type: Transform + pos: 3.5,20.5 + parent: 2 + - uid: 10791 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 3.5,14.5 + parent: 2 + - uid: 10792 + components: + - type: Transform + pos: -2.5,-15.5 + parent: 2 + - uid: 10793 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -23.5,-1.5 + parent: 2 + - uid: 10794 + components: + - type: Transform + pos: -24.5,3.5 + parent: 2 + - uid: 10795 + components: + - type: Transform + pos: -31.5,8.5 + parent: 2 + - uid: 10796 + components: + - type: Transform + pos: -28.5,14.5 + parent: 2 + - uid: 10797 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -45.5,7.5 + parent: 2 + - uid: 10798 + components: + - type: Transform + pos: -25.5,-14.5 + parent: 2 + - uid: 10799 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -30.5,-15.5 + parent: 2 + - uid: 10800 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -30.5,14.5 + parent: 2 + - uid: 10801 + components: + - type: Transform + pos: -40.5,18.5 + parent: 2 + - uid: 10802 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -35.5,-16.5 + parent: 2 + - uid: 10803 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -37.5,-27.5 + parent: 2 + - uid: 10804 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -36.5,-31.5 + parent: 2 + - uid: 10805 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -27.5,-26.5 + parent: 2 + - uid: 10806 + components: + - type: Transform + pos: -35.5,-41.5 + parent: 2 + - uid: 10807 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -24.5,-25.5 + parent: 2 + - uid: 10808 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -23.5,-15.5 + parent: 2 + - uid: 10809 + components: + - type: Transform + pos: -13.5,-22.5 + parent: 2 + - uid: 10810 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -17.5,-21.5 + parent: 2 + - uid: 10811 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -19.5,-29.5 + parent: 2 + - uid: 10812 + components: + - type: Transform + pos: -40.5,-44.5 + parent: 2 + - uid: 10813 + components: + - type: Transform + pos: -40.5,-34.5 + parent: 2 + - uid: 10814 + components: + - type: Transform + pos: -35.5,-53.5 + parent: 2 + - uid: 10815 + components: + - type: Transform + pos: 24.5,3.5 + parent: 2 + - uid: 10816 + components: + - type: Transform + pos: 24.5,-1.5 + parent: 2 + - uid: 10817 + components: + - type: Transform + pos: 35.5,3.5 + parent: 2 + - uid: 10818 + components: + - type: Transform + pos: 21.5,-16.5 + parent: 2 + - uid: 10819 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 15.5,12.5 + parent: 2 + - uid: 10820 + components: + - type: Transform + pos: 21.5,20.5 + parent: 2 + - uid: 10821 + components: + - type: Transform + pos: 27.5,18.5 + parent: 2 + - uid: 10822 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 31.5,19.5 + parent: 2 + - uid: 10823 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 18.5,28.5 + parent: 2 + - uid: 10824 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 18.5,38.5 + parent: 2 + - uid: 10825 + components: + - type: Transform + pos: 16.5,41.5 + parent: 2 + - uid: 10826 + components: + - type: Transform + pos: 31.5,36.5 + parent: 2 + - uid: 10827 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 34.5,-13.5 + parent: 2 + - uid: 10828 + components: + - type: Transform + pos: -19.5,23.5 + parent: 2 + - uid: 10829 + components: + - type: Transform + pos: -19.5,23.5 + parent: 2 + - uid: 10830 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -1.5,29.5 + parent: 2 + - uid: 10831 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -18.5,33.5 + parent: 2 + - uid: 10832 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -14.5,37.5 + parent: 2 + - uid: 10833 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -21.5,32.5 + parent: 2 + - uid: 10834 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -27.5,38.5 + parent: 2 + - uid: 10835 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -28.5,24.5 + parent: 2 + - uid: 10836 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -42.5,23.5 + parent: 2 + - uid: 10837 + components: + - type: Transform + pos: -30.5,31.5 + parent: 2 + - uid: 10838 + components: + - type: Transform + pos: -2.5,41.5 + parent: 2 + - uid: 10839 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -13.5,34.5 + parent: 2 + - uid: 10840 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 7.5,33.5 + parent: 2 + - uid: 10841 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 3.5,37.5 + parent: 2 + - uid: 10842 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 3.5,41.5 + parent: 2 + - uid: 10843 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -5.5,50.5 + parent: 2 + - uid: 10844 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -1.5,52.5 + parent: 2 + - uid: 10845 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -1.5,57.5 + parent: 2 + - uid: 10846 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 5.5,46.5 + parent: 2 + - uid: 10847 + components: + - type: Transform + pos: 10.5,48.5 + parent: 2 + - uid: 10848 + components: + - type: Transform + pos: 11.5,52.5 + parent: 2 + - uid: 10849 + components: + - type: Transform + pos: 9.5,70.5 + parent: 2 + - uid: 10850 + components: + - type: Transform + pos: -6.5,70.5 + parent: 2 + - uid: 10851 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 10.5,79.5 + parent: 2 + - uid: 10852 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -7.5,80.5 + parent: 2 + - uid: 10853 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 12.5,-13.5 + parent: 2 + - uid: 10854 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 11.5,-17.5 + parent: 2 + - uid: 10855 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 21.5,-20.5 + parent: 2 + - uid: 10856 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 35.5,-17.5 + parent: 2 + - uid: 10857 + components: + - type: Transform + pos: 48.5,-29.5 + parent: 2 + - uid: 10858 + components: + - type: Transform + pos: 48.5,-33.5 + parent: 2 + - uid: 10859 + components: + - type: Transform + pos: 40.5,-35.5 + parent: 2 + - uid: 10860 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 33.5,-31.5 + parent: 2 + - uid: 10861 + components: + - type: Transform + pos: 23.5,-29.5 + parent: 2 + - uid: 10862 + components: + - type: Transform + pos: 18.5,-33.5 + parent: 2 + - uid: 10863 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 9.5,-33.5 + parent: 2 + - uid: 10864 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 11.5,-28.5 + parent: 2 + - uid: 10865 + components: + - type: Transform + pos: 3.5,-18.5 + parent: 2 + - uid: 10866 + components: + - type: Transform + pos: 21.5,-38.5 + parent: 2 + - uid: 10867 + components: + - type: Transform + pos: 7.5,-38.5 + parent: 2 + - uid: 10868 + components: + - type: Transform + pos: -1.5,-43.5 + parent: 2 + - uid: 10869 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 1.5,-50.5 + parent: 2 + - uid: 10870 + components: + - type: Transform + pos: 14.5,-49.5 + parent: 2 + - uid: 10871 + components: + - type: Transform + pos: -4.5,-54.5 + parent: 2 + - uid: 10872 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 5.5,-60.5 + parent: 2 + - uid: 10873 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -0.5,-61.5 + parent: 2 + - uid: 10874 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -6.5,-61.5 + parent: 2 + - uid: 10875 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 15.5,-68.5 + parent: 2 + - uid: 10876 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -8.5,-73.5 + parent: 2 + - uid: 10877 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 33.5,-45.5 + parent: 2 + - uid: 10878 + components: + - type: Transform + pos: 35.5,-47.5 + parent: 2 + - uid: 10879 + components: + - type: Transform + pos: -35.5,-7.5 + parent: 2 +- proto: FaxMachineBase + entities: + - uid: 10880 + components: + - type: Transform + pos: 17.5,21.5 + parent: 2 + - type: FaxMachine + name: Reporter + - uid: 10881 + components: + - type: Transform + pos: 4.5,27.5 + parent: 2 + - type: FaxMachine + name: Blueshield + - uid: 10882 + components: + - type: Transform + pos: -5.5,14.5 + parent: 2 + - type: FaxMachine + name: Advocacia + - uid: 10883 + components: + - type: Transform + pos: -43.5,11.5 + parent: 2 + - type: FaxMachine + name: Carga + - uid: 10884 + components: + - type: Transform + pos: -27.5,-32.5 + parent: 2 + - type: FaxMachine + name: Ciência + - uid: 10885 + components: + - type: Transform + pos: -8.5,31.5 + parent: 2 + - type: FaxMachine + name: Segurança + - uid: 10886 + components: + - type: Transform + pos: -1.5,62.5 + parent: 2 + - type: FaxMachine + name: Ponte + - uid: 10887 + components: + - type: Transform + pos: 8.5,-44.5 + parent: 2 + - type: FaxMachine + name: Engenharia + - uid: 10888 + components: + - type: Transform + pos: 9.5,48.5 + parent: 2 + - type: FaxMachine + name: HoP + - uid: 10889 + components: + - type: Transform + pos: -30.5,-5.5 + parent: 2 + - type: FaxMachine + name: Correio + - uid: 10890 + components: + - type: Transform + pos: 35.5,11.5 + parent: 2 + - type: FaxMachine + name: Bar + - uid: 10891 + components: + - type: Transform + pos: 26.5,-19.5 + parent: 2 + - type: FaxMachine + name: Médico Chefe + - uid: 10892 + components: + - type: Transform + pos: 41.5,-25.5 + parent: 2 + - type: FaxMachine + name: Médica + - uid: 10893 + components: + - type: Transform + pos: 11.5,-51.5 + parent: 2 + - type: FaxMachine + name: Engenheiro Chefe + - uid: 10894 + components: + - type: Transform + pos: -15.5,-19.5 + parent: 2 + - type: FaxMachine + name: Diretor de Pesquisa + - uid: 10895 + components: + - type: Transform + pos: -25.5,6.5 + parent: 2 + - type: FaxMachine + name: Intendente de Carga + - uid: 10896 + components: + - type: Transform + pos: -26.5,44.5 + parent: 2 + - type: FaxMachine + name: Segurança Chefe + - uid: 10897 + components: + - type: Transform + pos: 42.5,0.5 + parent: 2 + - type: FaxMachine + name: Biblioteca +- proto: FaxMachineCaptain + entities: + - uid: 10898 + components: + - type: Transform + pos: -8.5,48.5 + parent: 2 + - type: FaxMachine + name: Capitão +- proto: filingCabinetDrawerRandom + entities: + - uid: 10899 + components: + - type: Transform + pos: -10.5,-5.5 + parent: 2 + - uid: 10901 + components: + - type: Transform + pos: -14.5,33.5 + parent: 2 +- proto: filingCabinetRandom + entities: + - uid: 10903 + components: + - type: Transform + pos: 5.5,27.5 + parent: 2 + - uid: 10904 + components: + - type: Transform + pos: -9.5,-6.5 + parent: 2 + - uid: 10905 + components: + - type: Transform + pos: -35.5,14.5 + parent: 2 + - uid: 10906 + components: + - type: Transform + pos: -21.5,19.5 + parent: 2 + - uid: 10907 + components: + - type: Transform + pos: -20.5,31.5 + parent: 2 + - uid: 10908 + components: + - type: Transform + pos: -8.702238,47.498413 + parent: 2 + - uid: 10909 + components: + - type: Transform + pos: -8.261679,47.498413 + parent: 2 + - uid: 10910 + components: + - type: Transform + pos: 9.766728,52.488533 + parent: 2 + - uid: 10911 + components: + - type: Transform + pos: 9.242252,52.488533 + parent: 2 + - uid: 10912 + components: + - type: Transform + pos: 44.5,-20.5 + parent: 2 +- proto: filingCabinetTallRandom + entities: + - uid: 10915 + components: + - type: Transform + pos: -25.775326,-20.530376 + parent: 2 + - uid: 10916 + components: + - type: Transform + pos: -25.271828,-20.530376 + parent: 2 +- proto: FireAlarm + entities: + - uid: 10917 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 31.5,-4.5 + parent: 2 + - type: DeviceList + devices: + - 11147 + - 11264 + - 11265 + - 11269 + - uid: 10918 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -10.5,-1.5 + parent: 2 + - type: DeviceList + devices: + - 11152 + - 11153 + - 11154 + - 11155 + - 11268 + - 11267 + - 11156 + - 11157 + - 11375 + - 11374 + - 11373 + - 11372 + - uid: 10919 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -10.5,3.5 + parent: 2 + - type: DeviceList + devices: + - 11152 + - 11153 + - 11154 + - 11155 + - 11268 + - 11267 + - 11156 + - 11157 + - 11375 + - 11374 + - 11373 + - 11372 + - uid: 10920 + components: + - type: Transform + pos: -1.5,12.5 + parent: 2 + - type: DeviceList + devices: + - 11152 + - 11153 + - 11154 + - 11155 + - 11268 + - 11267 + - 11156 + - 11157 + - 11375 + - 11374 + - 11373 + - 11372 + - uid: 10921 + components: + - type: Transform + pos: 3.5,12.5 + parent: 2 + - type: DeviceList + devices: + - 11152 + - 11153 + - 11154 + - 11155 + - 11268 + - 11267 + - 11156 + - 11157 + - 11375 + - 11374 + - 11373 + - 11372 + - uid: 10922 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 12.5,3.5 + parent: 2 + - type: DeviceList + devices: + - 11152 + - 11153 + - 11154 + - 11155 + - 11268 + - 11267 + - 11156 + - 11157 + - 11375 + - 11374 + - 11373 + - 11372 + - uid: 10923 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 12.5,-1.5 + parent: 2 + - type: DeviceList + devices: + - 11152 + - 11153 + - 11154 + - 11155 + - 11268 + - 11267 + - 11156 + - 11157 + - 11375 + - 11374 + - 11373 + - 11372 + - uid: 10924 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 3.5,-10.5 + parent: 2 + - type: DeviceList + devices: + - 11152 + - 11153 + - 11154 + - 11155 + - 11268 + - 11267 + - 11156 + - 11157 + - 11375 + - 11374 + - 11373 + - 11372 + - uid: 10925 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -1.5,-10.5 + parent: 2 + - type: DeviceList + devices: + - 11152 + - 11153 + - 11154 + - 11155 + - 11268 + - 11267 + - 11156 + - 11157 + - 11375 + - 11374 + - 11373 + - 11372 + - uid: 10926 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -14.5,13.5 + parent: 2 + - type: DeviceList + devices: + - 11377 + - 11372 + - 11234 + - 11376 + - uid: 10927 + components: + - type: Transform + pos: -15.5,13.5 + parent: 2 + - type: DeviceList + devices: + - 11377 + - uid: 10928 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -5.5,13.5 + parent: 2 + - type: DeviceList + devices: + - 11373 + - 11234 + - uid: 10929 + components: + - type: Transform + pos: 7.5,20.5 + parent: 2 + - type: DeviceList + devices: + - 11378 + - 11379 + - 11374 + - uid: 10930 + components: + - type: Transform + pos: 9.5,20.5 + parent: 2 + - type: DeviceList + devices: + - 11101 + - 11379 + - uid: 10931 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 6.5,12.5 + parent: 2 + - type: DeviceList + devices: + - 11375 + - 11090 + - uid: 10932 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -1.5,-13.5 + parent: 2 + - type: DeviceList + devices: + - 11156 + - 11157 + - 11300 + - 11299 + - 11298 + - 11307 + - 11308 + - 11175 + - 11224 + - 11225 + - 11310 + - 11311 + - 11309 + - uid: 10933 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -22.5,-3.5 + parent: 2 + - type: DeviceList + devices: + - 11371 + - 11138 + - uid: 10934 + components: + - type: Transform + pos: -29.5,3.5 + parent: 2 + - type: DeviceList + devices: + - 11371 + - 11148 + - 11149 + - 11150 + - 11151 + - 11153 + - 11152 + - uid: 10935 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -26.5,4.5 + parent: 2 + - type: DeviceList + devices: + - 11364 + - 11362 + - 11365 + - uid: 10936 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -35.5,4.5 + parent: 2 + - type: DeviceList + devices: + - 11158 + - 11159 + - 11160 + - 11363 + - 11361 + - 11360 + - 11359 + - 11358 + - 11357 + - 11362 + - uid: 10937 + components: + - type: Transform + pos: -38.5,13.5 + parent: 2 + - type: DeviceList + devices: + - 11357 + - 11358 + - 11359 + - 11360 + - 11366 + - 11367 + - uid: 10938 + components: + - type: Transform + pos: -36.5,5.5 + parent: 2 + - type: DeviceList + devices: + - 11366 + - 11368 + - 11369 + - uid: 10939 + components: + - type: Transform + pos: -36.5,-6.5 + parent: 2 + - type: DeviceList + devices: + - 11370 + - 11356 + - 11368 + - 11369 + - uid: 10940 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -25.5,-13.5 + parent: 2 + - type: DeviceList + devices: + - 11355 + - uid: 10941 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -35.5,-13.5 + parent: 2 + - type: DeviceList + devices: + - 11163 + - 11161 + - 11162 + - 11160 + - 11159 + - 11158 + - 11151 + - 11150 + - 11149 + - 11148 + - 11356 + - 11355 + - uid: 10942 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -31.5,13.5 + parent: 2 + - type: DeviceList + devices: + - 11363 + - uid: 10943 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -39.5,14.5 + parent: 2 + - type: DeviceList + devices: + - 11367 + - uid: 10944 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -31.5,-16.5 + parent: 2 + - type: DeviceList + devices: + - 11341 + - 11340 + - uid: 10945 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -35.5,-15.5 + parent: 2 + - type: DeviceList + devices: + - 11163 + - 11162 + - 11161 + - 11341 + - 11353 + - 11170 + - 11339 + - 11167 + - 11168 + - 11169 + - 11354 + - uid: 10946 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -35.5,-34.5 + parent: 2 + - type: DeviceList + devices: + - 11169 + - 11168 + - 11167 + - 11338 + - 11164 + - 11165 + - 11166 + - 11337 + - 11336 + - 11335 + - 11334 + - 11333 + - 11173 + - 11172 + - 11171 + - 11121 + - uid: 10947 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -31.5,-36.5 + parent: 2 + - type: DeviceList + devices: + - 11164 + - 11165 + - 11166 + - 11344 + - 11345 + - 11346 + - 11343 + - 11342 + - 11120 + - uid: 10948 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -31.5,-36.5 + parent: 2 + - uid: 10949 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -26.5,-35.5 + parent: 2 + - type: DeviceList + devices: + - 11337 + - uid: 10950 + components: + - type: Transform + pos: -36.5,-40.5 + parent: 2 + - type: DeviceList + devices: + - 11348 + - 11347 + - 11344 + - 11345 + - uid: 10951 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -25.5,-16.5 + parent: 2 + - type: DeviceList + devices: + - 11340 + - 11170 + - 11339 + - 11334 + - uid: 10952 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -20.5,-25.5 + parent: 2 + - type: DeviceList + devices: + - 11340 + - 11170 + - 11339 + - 11334 + - uid: 10953 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -7.5,-23.5 + parent: 2 + - type: DeviceList + devices: + - 11307 + - uid: 10954 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -23.5,-32.5 + parent: 2 + - type: DeviceList + devices: + - 11335 + - 11135 + - uid: 10955 + components: + - type: Transform + pos: -6.5,-25.5 + parent: 2 + - type: DeviceList + devices: + - 11173 + - 11172 + - 11171 + - 11330 + - 11332 + - uid: 10956 + components: + - type: Transform + pos: -5.5,-29.5 + parent: 2 + - type: DeviceList + devices: + - 11175 + - 11330 + - 11174 + - uid: 10957 + components: + - type: Transform + pos: -5.5,-29.5 + parent: 2 + - uid: 10958 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -10.5,-38.5 + parent: 2 + - type: DeviceList + devices: + - 11176 + - 11177 + - 11179 + - 11180 + - 11181 + - 11178 + - 14672 + - 14913 + - uid: 10959 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -10.5,-46.5 + parent: 2 + - type: DeviceList + devices: + - 11179 + - 11180 + - 11176 + - 11177 + - 11181 + - 11178 + - 11228 + - 11122 + - uid: 10960 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -41.5,-37.5 + parent: 2 + - type: DeviceList + devices: + - 11347 + - 11348 + - 11118 + - uid: 10961 + components: + - type: Transform + pos: -19.5,-54.5 + parent: 2 + - type: DeviceList + devices: + - 11231 + - 11230 + - 11134 + - uid: 10962 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -5.5,-35.5 + parent: 2 + - type: DeviceList + devices: + - 11309 + - 11331 + - uid: 10963 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 15.5,-1.5 + parent: 2 + - type: DeviceList + devices: + - 11182 + - 11183 + - 11184 + - 11185 + - 11266 + - 11267 + - 11268 + - 11265 + - 11264 + - uid: 10964 + components: + - type: Transform + pos: 27.5,3.5 + parent: 2 + - type: DeviceList + devices: + - 11182 + - 11183 + - 11184 + - 11185 + - 11266 + - 11267 + - 11268 + - 11265 + - 11264 + - uid: 10965 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 26.5,-2.5 + parent: 2 + - type: DeviceList + devices: + - 11126 + - 11266 + - 11185 + - uid: 10966 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 21.5,-14.5 + parent: 2 + - type: DeviceList + devices: + - 11297 + - 11296 + - 11295 + - 11129 + - uid: 10967 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 31.5,4.5 + parent: 2 + - type: DeviceList + devices: + - 11197 + - 11196 + - 11195 + - 11192 + - 11193 + - 11194 + - 11186 + - 11187 + - 11188 + - 11189 + - 11190 + - 11191 + - 11184 + - 11183 + - 11182 + - 11262 + - uid: 10968 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 26.5,12.5 + parent: 2 + - type: DeviceList + devices: + - 11194 + - 11193 + - 11192 + - 11229 + - 11235 + - 11236 + - 11237 + - 11238 + - uid: 10969 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 18.5,16.5 + parent: 2 + - type: DeviceList + devices: + - 11243 + - 11240 + - 11239 + - 11238 + - 11237 + - 11236 + - 11235 + - 11242 + - uid: 10970 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 27.5,20.5 + parent: 2 + - type: DeviceList + devices: + - 11195 + - 11196 + - 11197 + - 11245 + - 11229 + - 11242 + - 11244 + - 11247 + - 11246 + - uid: 10971 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 23.5,20.5 + parent: 2 + - type: DeviceList + devices: + - 11091 + - 11243 + - uid: 10972 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 14.5,16.5 + parent: 2 + - type: DeviceList + devices: + - 11102 + - uid: 10973 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 14.5,13.5 + parent: 2 + - type: DeviceList + devices: + - 11186 + - 11187 + - 11188 + - 11189 + - 11190 + - 11191 + - 11241 + - 11240 + - 11239 + - uid: 10974 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 36.5,9.5 + parent: 2 + - type: DeviceList + devices: + - 11197 + - 11196 + - 11195 + - 11192 + - 11193 + - 11194 + - 11186 + - 11187 + - 11188 + - 11189 + - 11190 + - 11191 + - 11094 + - 11184 + - 11183 + - 11182 + - 11262 + - 11093 + - uid: 10975 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 39.5,16.5 + parent: 2 + - type: DeviceList + devices: + - 11248 + - 11245 + - 11247 + - 11246 + - uid: 10976 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 39.5,19.5 + parent: 2 + - type: DeviceList + devices: + - 11144 + - 11248 + - uid: 10977 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 43.5,11.5 + parent: 2 + - type: DeviceList + devices: + - 11263 + - uid: 10978 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 43.5,11.5 + parent: 2 + - uid: 10979 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 39.5,23.5 + parent: 2 + - type: DeviceList + devices: + - 11145 + - uid: 10980 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 24.5,28.5 + parent: 2 + - type: DeviceList + devices: + - 11258 + - 11256 + - 11257 + - 11250 + - uid: 10981 + components: + - type: Transform + pos: 35.5,31.5 + parent: 2 + - type: DeviceList + devices: + - 11198 + - 11199 + - 11200 + - 11201 + - 11202 + - 11203 + - 11250 + - 11249 + - 11244 + - 11145 + - uid: 10982 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 15.5,37.5 + parent: 2 + - type: DeviceList + devices: + - 11259 + - 11260 + - 11256 + - uid: 10983 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 16.5,44.5 + parent: 2 + - type: DeviceList + devices: + - 11261 + - 11259 + - uid: 10984 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 16.5,42.5 + parent: 2 + - type: DeviceList + devices: + - 11261 + - 11257 + - uid: 10985 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 31.5,32.5 + parent: 2 + - type: DeviceList + devices: + - 11198 + - 11199 + - 11200 + - 11201 + - 11202 + - 11203 + - 11250 + - 11249 + - 11244 + - 11145 + - uid: 10986 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 27.5,37.5 + parent: 2 + - type: DeviceList + devices: + - 11203 + - 11202 + - 11201 + - 11253 + - 11254 + - 11255 + - uid: 10987 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 45.5,33.5 + parent: 2 + - type: DeviceList + devices: + - 11206 + - 11205 + - 11204 + - 11252 + - 11251 + - uid: 10988 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 42.5,-14.5 + parent: 2 + - type: DeviceList + devices: + - 11269 + - uid: 10989 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -17.5,21.5 + parent: 2 + - type: DeviceList + devices: + - 11380 + - 11141 + - uid: 10990 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -21.5,26.5 + parent: 2 + - type: DeviceList + devices: + - 11402 + - 11401 + - 11395 + - 11394 + - 11211 + - 11212 + - 11213 + - 11393 + - 11400 + - 11398 + - uid: 10991 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -17.5,26.5 + parent: 2 + - type: DeviceList + devices: + - 11388 + - 11387 + - 11208 + - 11209 + - 11210 + - 11385 + - 11386 + - 11383 + - 11384 + - 11211 + - 11212 + - 11213 + - uid: 10992 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -1.5,26.5 + parent: 2 + - type: DeviceList + devices: + - 11388 + - 11387 + - 11208 + - 11209 + - 11210 + - 11385 + - 11386 + - 11383 + - 11384 + - 11211 + - 11212 + - 11213 + - uid: 10993 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -10.5,30.5 + parent: 2 + - type: DeviceList + devices: + - 11386 + - 11389 + - 11390 + - uid: 10994 + components: + - type: Transform + pos: -15.5,41.5 + parent: 2 + - type: DeviceList + devices: + - 11392 + - uid: 10995 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -21.5,31.5 + parent: 2 + - type: DeviceList + devices: + - 11393 + - 11391 + - uid: 10996 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -21.5,36.5 + parent: 2 + - type: DeviceList + devices: + - 11402 + - 11401 + - 11395 + - 11394 + - 11211 + - 11212 + - 11213 + - 11393 + - 11400 + - 11398 + - uid: 10997 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -10.5,38.5 + parent: 2 + - type: DeviceList + devices: + - 11390 + - 11226 + - uid: 10998 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -21.5,37.5 + parent: 2 + - type: DeviceList + devices: + - 11398 + - 11399 + - uid: 10999 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -22.5,42.5 + parent: 2 + - type: DeviceList + devices: + - 11399 + - uid: 11000 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -31.5,39.5 + parent: 2 + - type: DeviceList + devices: + - 11400 + - uid: 11001 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -34.5,25.5 + parent: 2 + - type: DeviceList + devices: + - 11403 + - 11408 + - 11409 + - uid: 11002 + components: + - type: Transform + pos: -37.5,31.5 + parent: 2 + - type: DeviceList + devices: + - 11404 + - 11403 + - 11402 + - uid: 11003 + components: + - type: Transform + pos: -33.5,31.5 + parent: 2 + - type: DeviceList + devices: + - 11402 + - 11401 + - 11395 + - 11394 + - 11211 + - 11212 + - 11213 + - 11393 + - 11400 + - 11398 + - uid: 11004 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -38.5,25.5 + parent: 2 + - type: DeviceList + devices: + - 11409 + - uid: 11005 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -1.5,40.5 + parent: 2 + - type: DeviceList + devices: + - 11215 + - 11214 + - 11397 + - 11396 + - 11142 + - uid: 11006 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 3.5,30.5 + parent: 2 + - type: DeviceList + devices: + - 11411 + - uid: 11007 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 5.5,33.5 + parent: 2 + - type: DeviceList + devices: + - 11412 + - 11413 + - uid: 11008 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 3.5,40.5 + parent: 2 + - type: DeviceList + devices: + - 11216 + - 11217 + - 11218 + - 11219 + - 11412 + - 11214 + - 11215 + - 11223 + - 11222 + - 11221 + - 11220 + - uid: 11009 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 3.5,42.5 + parent: 2 + - type: DeviceList + devices: + - 11223 + - 11222 + - 11221 + - 11220 + - 11414 + - 11415 + - 11416 + - 11417 + - uid: 11010 + components: + - type: Transform + pos: -6.5,51.5 + parent: 2 + - type: DeviceList + devices: + - 11425 + - 11424 + - uid: 11011 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -5.5,51.5 + parent: 2 + - type: DeviceList + devices: + - 11424 + - 11423 + - uid: 11012 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -1.5,53.5 + parent: 2 + - type: DeviceList + devices: + - 11223 + - 11222 + - 11221 + - 11220 + - 11414 + - 11415 + - 11416 + - 11417 + - uid: 11013 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 10.5,46.5 + parent: 2 + - type: DeviceList + devices: + - 11414 + - 11420 + - 11419 + - uid: 11014 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 4.5,51.5 + parent: 2 + - type: DeviceList + devices: + - 11415 + - 11420 + - 11418 + - uid: 11015 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 4.5,57.5 + parent: 2 + - type: DeviceList + devices: + - 11423 + - 11422 + - 11421 + - 11418 + - uid: 11016 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 10.5,76.5 + parent: 2 + - uid: 11017 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 9.5,84.5 + parent: 2 + - uid: 11018 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -7.5,83.5 + parent: 2 + - uid: 11019 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -7.5,74.5 + parent: 2 + - uid: 11020 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 12.5,-11.5 + parent: 2 + - type: DeviceList + devices: + - 11096 + - 11098 + - 11124 + - 11296 + - 11297 + - uid: 11021 + components: + - type: Transform + pos: 19.5,-7.5 + parent: 2 + - type: DeviceList + devices: + - 11096 + - 11098 + - 11124 + - 11296 + - 11297 + - uid: 11022 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 11.5,-16.5 + parent: 2 + - type: DeviceList + devices: + - 11297 + - 11296 + - 11295 + - 11129 + - uid: 11023 + components: + - type: Transform + pos: 20.5,-17.5 + parent: 2 + - type: DeviceList + devices: + - 11293 + - uid: 11024 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 27.5,-20.5 + parent: 2 + - type: DeviceList + devices: + - 11277 + - 11095 + - uid: 11025 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 27.5,-17.5 + parent: 2 + - type: DeviceList + devices: + - 11097 + - 11276 + - 11275 + - 11274 + - uid: 11026 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 42.5,-18.5 + parent: 2 + - type: DeviceList + devices: + - 11270 + - uid: 11027 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 37.5,-27.5 + parent: 2 + - type: DeviceList + devices: + - 11272 + - 11273 + - 11283 + - 11125 + - uid: 11028 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 43.5,-33.5 + parent: 2 + - type: DeviceList + devices: + - 11272 + - 11273 + - 11283 + - 11125 + - uid: 11029 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 43.5,-30.5 + parent: 2 + - type: DeviceList + devices: + - 11283 + - uid: 11030 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 30.5,-32.5 + parent: 2 + - type: DeviceList + devices: + - 11284 + - uid: 11031 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 24.5,-28.5 + parent: 2 + - type: DeviceList + devices: + - 11279 + - 11278 + - 11284 + - 11128 + - uid: 11032 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 19.5,-33.5 + parent: 2 + - type: DeviceList + devices: + - 11285 + - 11286 + - 11287 + - uid: 11033 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 3.5,-29.5 + parent: 2 + - type: DeviceList + devices: + - 11156 + - 11157 + - 11300 + - 11299 + - 11298 + - 11307 + - 11308 + - 11175 + - 11224 + - 11225 + - 11310 + - 11311 + - 11309 + - uid: 11034 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 11.5,-20.5 + parent: 2 + - type: DeviceList + devices: + - 11280 + - 11281 + - 11282 + - 11285 + - 11286 + - 11287 + - 11295 + - 11294 + - 11292 + - 11291 + - 11290 + - 11289 + - 11288 + - 11293 + - uid: 11035 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 3.5,-22.5 + parent: 2 + - type: DeviceList + devices: + - 11300 + - 11299 + - 11298 + - 11292 + - 11291 + - 11290 + - 11303 + - 11302 + - 11301 + - 11304 + - 11305 + - 11306 + - uid: 11036 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 11.5,-22.5 + parent: 2 + - type: DeviceList + devices: + - 11300 + - 11299 + - 11298 + - 11292 + - 11291 + - 11290 + - 11303 + - 11302 + - 11301 + - 11304 + - 11305 + - 11306 + - uid: 11037 + components: + - type: Transform + pos: 10.5,-39.5 + parent: 2 + - type: DeviceList + devices: + - 11314 + - 11315 + - 11318 + - 11324 + - 11323 + - 11131 + - 11130 + - uid: 11038 + components: + - type: Transform + pos: 5.5,-38.5 + parent: 2 + - type: DeviceList + devices: + - 11310 + - 11311 + - 11315 + - 11314 + - 11313 + - 11312 + - uid: 11039 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 1.5,-47.5 + parent: 2 + - type: DeviceList + devices: + - 11225 + - 11224 + - 11312 + - 11313 + - 11318 + - 11317 + - 11316 + - 11320 + - 11321 + - 11319 + - 11322 + - 11132 + - uid: 11040 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 9.5,-56.5 + parent: 2 + - type: DeviceList + devices: + - 11225 + - 11224 + - 11312 + - 11313 + - 11318 + - 11317 + - 11316 + - 11320 + - 11321 + - 11319 + - 11322 + - 11132 + - uid: 11041 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 9.5,-49.5 + parent: 2 + - type: DeviceList + devices: + - 11225 + - 11224 + - 11312 + - 11313 + - 11318 + - 11317 + - 11316 + - 11320 + - 11321 + - 11319 + - 11322 + - 11132 + - uid: 11042 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 13.5,-56.5 + parent: 2 + - type: DeviceList + devices: + - 11319 + - uid: 11043 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 33.5,-43.5 + parent: 2 + - type: DeviceList + devices: + - 11323 + - 11227 + - uid: 11044 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 9.5,-66.5 + parent: 2 + - type: DeviceList + devices: + - 11327 + - 11328 + - 11326 + - 11329 + - 11233 + - 11232 + - uid: 11045 + components: + - type: Transform + pos: -3.5,-54.5 + parent: 2 + - type: DeviceList + devices: + - 11230 + - 11231 + - 11327 + - 11325 + - 11133 + - uid: 11046 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 1.5,-56.5 + parent: 2 + - type: DeviceList + devices: + - 11326 + - 11325 + - 11321 + - 11320 + - uid: 11047 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 1.5,-55.5 + parent: 2 + - type: DeviceList + devices: + - 11230 + - 11231 + - 11327 + - 11325 + - 11133 + - uid: 11048 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 9.5,-65.5 + parent: 2 + - type: DeviceList + devices: + - 11232 + - 11233 + - uid: 11049 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 4.5,-77.5 + parent: 2 + - type: DeviceList + devices: + - 11327 + - 11328 + - 11326 + - 11329 + - 11233 + - 11232 + - uid: 11050 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -3.5,-77.5 + parent: 2 + - type: DeviceList + devices: + - 11327 + - 11328 + - 11326 + - 11329 + - 11233 + - 11232 + - uid: 11051 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -8.5,-71.5 + parent: 2 + - type: DeviceList + devices: + - 11327 + - 11328 + - 11326 + - 11329 + - 11233 + - 11232 + - uid: 11052 + components: + - type: Transform + pos: 0.5,-61.5 + parent: 2 + - type: DeviceList + devices: + - 11327 + - 11328 + - 11326 + - 11329 + - 11233 + - 11232 + - uid: 11053 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 14.5,6.5 + parent: 2 + - type: DeviceList + devices: + - 11197 + - 11196 + - 11195 + - 11192 + - 11193 + - 11194 + - 11186 + - 11187 + - 11188 + - 11189 + - 11190 + - 11191 + - 11094 + - 11184 + - 11183 + - 11182 + - 11262 + - 11093 + - uid: 11054 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 41.5,-13.5 + parent: 2 + - type: DeviceList + devices: + - 11147 + - 11264 + - 11265 + - 11269 + - uid: 11055 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 35.5,-16.5 + parent: 2 + - type: DeviceList + devices: + - 11147 + - 11270 + - 11282 + - 11281 + - 11280 + - 11279 + - 11278 + - 11277 + - 11276 + - 11275 + - 11274 + - 11272 + - 11273 + - 11271 + - uid: 11056 + components: + - type: Transform + pos: 27.5,-22.5 + parent: 2 + - type: DeviceList + devices: + - 11147 + - 11270 + - 11282 + - 11281 + - 11280 + - 11279 + - 11278 + - 11277 + - 11276 + - 11275 + - 11274 + - 11272 + - 11273 + - 11271 + - uid: 11057 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 24.5,-27.5 + parent: 2 + - type: DeviceList + devices: + - 11280 + - 11281 + - 11282 + - 11285 + - 11286 + - 11287 + - 11295 + - 11294 + - 11292 + - 11291 + - 11290 + - 11289 + - 11288 + - 11293 + - uid: 11058 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 10.5,-33.5 + parent: 2 + - type: DeviceList + devices: + - 11288 + - 11289 + - 11306 + - 11305 + - 11304 + - 11123 + - uid: 11059 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -1.5,-41.5 + parent: 2 + - type: DeviceList + devices: + - 11156 + - 11157 + - 11300 + - 11299 + - 11298 + - 11307 + - 11308 + - 11175 + - 11224 + - 11225 + - 11310 + - 11311 + - 11309 + - uid: 11060 + components: + - type: Transform + pos: 24.5,-38.5 + parent: 2 + - type: DeviceList + devices: + - 11314 + - 11315 + - 11318 + - 11324 + - 11323 + - uid: 11061 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -8.5,-59.5 + parent: 2 + - type: DeviceList + devices: + - 11231 + - 11230 + - 11134 + - uid: 11062 + components: + - type: Transform + pos: -11.5,-20.5 + parent: 2 + - type: DeviceList + devices: + - 11173 + - 11172 + - 11171 + - 11330 + - 11332 + - uid: 11063 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -23.5,-29.5 + parent: 2 + - type: DeviceList + devices: + - 11169 + - 11168 + - 11167 + - 11338 + - 11164 + - 11165 + - 11166 + - 11337 + - 11336 + - 11335 + - 11334 + - 11333 + - 11173 + - 11172 + - 11171 + - 11121 + - uid: 11064 + components: + - type: Transform + pos: -36.5,-44.5 + parent: 2 + - type: DeviceList + devices: + - 11351 + - 11350 + - 11346 + - 11349 + - uid: 11065 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -38.5,-53.5 + parent: 2 + - type: DeviceList + devices: + - 11351 + - 11350 + - 11346 + - 11349 + - uid: 11066 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -18.5,-23.5 + parent: 2 + - type: DeviceList + devices: + - 11333 + - 11352 + - uid: 11067 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -35.5,-24.5 + parent: 2 + - uid: 11068 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -35.5,-24.5 + parent: 2 + - type: DeviceList + devices: + - 11163 + - 11162 + - 11161 + - 11341 + - 11353 + - 11170 + - 11339 + - 11167 + - 11168 + - 11169 + - 11354 + - uid: 11069 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -31.5,-1.5 + parent: 2 + - type: DeviceList + devices: + - 11163 + - 11161 + - 11162 + - 11160 + - 11159 + - 11158 + - 11151 + - 11150 + - 11149 + - 11148 + - 11356 + - 11355 + - uid: 11070 + components: + - type: Transform + pos: -24.5,8.5 + parent: 2 + - type: DeviceList + devices: + - 11364 + - 11099 + - uid: 11071 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -24.5,12.5 + parent: 2 + - type: DeviceList + devices: + - 11361 + - 11365 + - 11137 + - uid: 11072 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -35.5,-4.5 + parent: 2 + - type: DeviceList + devices: + - 11366 + - 11368 + - 11369 + - uid: 11073 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -36.5,-21.5 + parent: 2 + - type: DeviceList + devices: + - 11353 + - 11370 + - 11136 + - uid: 11074 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -14.5,-1.5 + parent: 2 + - type: DeviceList + devices: + - 11371 + - 11148 + - 11149 + - 11150 + - 11151 + - 11153 + - 11152 + - uid: 11075 + components: + - type: Transform + pos: -4.5,21.5 + parent: 2 + - type: DeviceList + devices: + - 11380 + - 11381 + - 11382 + - 11376 + - 11207 + - 11140 + - uid: 11076 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -13.5,35.5 + parent: 2 + - type: DeviceList + devices: + - 11392 + - 11391 + - 11385 + - 11389 + - uid: 11077 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -43.5,29.5 + parent: 2 + - type: DeviceList + devices: + - 11407 + - 11406 + - 11405 + - 11404 + - uid: 11078 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -23.5,22.5 + parent: 2 + - type: DeviceList + devices: + - 11401 + - uid: 11079 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -31.5,22.5 + parent: 2 + - type: DeviceList + devices: + - 11408 + - uid: 11080 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -1.5,16.5 + parent: 2 + - type: DeviceList + devices: + - 11154 + - 11155 + - 11207 + - 11378 + - 11410 + - 11216 + - 11217 + - 11218 + - 11219 + - 11411 + - uid: 11081 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -1.5,30.5 + parent: 2 + - type: DeviceList + devices: + - 11154 + - 11155 + - 11207 + - 11378 + - 11410 + - 11216 + - 11217 + - 11218 + - 11219 + - 11411 + - uid: 11082 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 9.5,24.5 + parent: 2 + - type: DeviceList + devices: + - 11410 + - 11143 + - uid: 11083 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 9.5,40.5 + parent: 2 + - type: DeviceList + devices: + - 11413 + - uid: 11084 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 14.5,20.5 + parent: 2 + - type: DeviceList + devices: + - 11104 +- proto: FireAxeCabinetFilled + entities: + - uid: 11085 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 3.5,55.5 + parent: 2 + - uid: 11086 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 27.5,-56.5 + parent: 2 +- proto: FireExtinguisher + entities: + - uid: 11087 + components: + - type: Transform + pos: -22.658726,-31.175625 + parent: 2 + - uid: 11088 + components: + - type: Transform + pos: 36.285145,-46.385895 + parent: 2 +- proto: Firelock + entities: + - uid: 11089 + components: + - type: Transform + pos: -19.5,-10.5 + parent: 2 + - uid: 11090 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 11.5,14.5 + parent: 2 + - uid: 11091 + components: + - type: Transform + pos: 23.5,24.5 + parent: 2 + - uid: 11092 + components: + - type: Transform + pos: 44.5,23.5 + parent: 2 + - uid: 11093 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 14.5,11.5 + parent: 2 + - uid: 11094 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 15.5,5.5 + parent: 2 + - uid: 11095 + components: + - type: Transform + pos: 23.5,-16.5 + parent: 2 + - uid: 11096 + components: + - type: Transform + pos: 18.5,-7.5 + parent: 2 + - uid: 11097 + components: + - type: Transform + pos: 27.5,-15.5 + parent: 2 + - uid: 11098 + components: + - type: Transform + pos: 13.5,-7.5 + parent: 2 + - uid: 11099 + components: + - type: Transform + pos: -22.5,7.5 + parent: 2 + - uid: 11100 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 13.5,16.5 + parent: 2 + - uid: 11101 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 11.5,18.5 + parent: 2 + - uid: 11102 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 14.5,17.5 + parent: 2 + - uid: 11103 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 15.5,26.5 + parent: 2 + - uid: 11104 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 17.5,24.5 + parent: 2 + - uid: 11105 + components: + - type: Transform + pos: -7.5,45.5 + parent: 2 + - uid: 11106 + components: + - type: Transform + pos: -3.5,46.5 + parent: 2 + - uid: 11107 + components: + - type: Transform + pos: -26.5,16.5 + parent: 2 + - uid: 11108 + components: + - type: Transform + pos: -27.5,22.5 + parent: 2 + - uid: 11109 + components: + - type: Transform + pos: -25.5,-8.5 + parent: 2 + - uid: 11110 + components: + - type: Transform + pos: -15.5,-11.5 + parent: 2 + - uid: 11111 + components: + - type: Transform + pos: -5.5,-50.5 + parent: 2 + - uid: 11112 + components: + - type: Transform + pos: 21.5,-34.5 + parent: 2 + - uid: 11113 + components: + - type: Transform + pos: 11.5,-11.5 + parent: 2 + - uid: 11114 + components: + - type: Transform + pos: 26.5,-13.5 + parent: 2 + - uid: 11115 + components: + - type: Transform + pos: 25.5,-13.5 + parent: 2 + - uid: 11116 + components: + - type: Transform + pos: -38.5,-28.5 + parent: 2 + - uid: 11117 + components: + - type: Transform + pos: -39.5,-28.5 + parent: 2 + - uid: 11118 + components: + - type: Transform + pos: -40.5,-30.5 + parent: 2 + - uid: 11119 + components: + - type: Transform + pos: -38.5,-34.5 + parent: 2 + - uid: 11120 + components: + - type: Transform + pos: -31.5,-43.5 + parent: 2 + - uid: 11121 + components: + - type: Transform + pos: -36.5,-32.5 + parent: 2 + - uid: 11122 + components: + - type: Transform + pos: -12.5,-50.5 + parent: 2 + - uid: 11123 + components: + - type: Transform + pos: 5.5,-33.5 + parent: 2 + - uid: 11124 + components: + - type: Transform + pos: 12.5,-10.5 + parent: 2 + - uid: 11125 + components: + - type: Transform + pos: 37.5,-31.5 + parent: 2 + - uid: 11126 + components: + - type: Transform + pos: 26.5,-3.5 + parent: 2 + - uid: 11127 + components: + - type: Transform + pos: 15.5,-3.5 + parent: 2 + - uid: 11128 + components: + - type: Transform + pos: 27.5,-33.5 + parent: 2 + - uid: 11129 + components: + - type: Transform + pos: 21.5,-15.5 + parent: 2 + - uid: 11130 + components: + - type: Transform + pos: 13.5,-39.5 + parent: 2 + - uid: 11131 + components: + - type: Transform + pos: 30.5,-38.5 + parent: 2 + - uid: 11132 + components: + - type: Transform + pos: -3.5,-46.5 + parent: 2 + - uid: 11133 + components: + - type: Transform + pos: -5.5,-54.5 + parent: 2 + - uid: 11134 + components: + - type: Transform + pos: -15.5,-54.5 + parent: 2 + - uid: 11135 + components: + - type: Transform + pos: -21.5,-34.5 + parent: 2 + - uid: 11136 + components: + - type: Transform + pos: -37.5,-21.5 + parent: 2 + - uid: 11137 + components: + - type: Transform + pos: -24.5,11.5 + parent: 2 + - uid: 11138 + components: + - type: Transform + pos: -22.5,-4.5 + parent: 2 + - uid: 11139 + components: + - type: Transform + pos: -11.5,-7.5 + parent: 2 + - uid: 11140 + components: + - type: Transform + pos: -16.5,17.5 + parent: 2 + - uid: 11141 + components: + - type: Transform + pos: -20.5,17.5 + parent: 2 + - uid: 11142 + components: + - type: Transform + pos: -4.5,41.5 + parent: 2 + - uid: 11143 + components: + - type: Transform + pos: 7.5,23.5 + parent: 2 + - uid: 11144 + components: + - type: Transform + pos: 42.5,20.5 + parent: 2 + - uid: 11145 + components: + - type: Transform + pos: 38.5,25.5 + parent: 2 +- proto: FirelockFrame + entities: + - uid: 11146 + components: + - type: Transform + pos: 32.5,-36.5 + parent: 2 +- proto: FirelockGlass + entities: + - uid: 11147 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 37.5,-13.5 + parent: 2 + - uid: 11148 + components: + - type: Transform + pos: -30.5,-0.5 + parent: 2 + - uid: 11149 + components: + - type: Transform + pos: -30.5,0.5 + parent: 2 + - uid: 11150 + components: + - type: Transform + pos: -30.5,1.5 + parent: 2 + - uid: 11151 + components: + - type: Transform + pos: -30.5,2.5 + parent: 2 + - uid: 11152 + components: + - type: Transform + pos: -12.5,0.5 + parent: 2 + - uid: 11153 + components: + - type: Transform + pos: -12.5,1.5 + parent: 2 + - uid: 11154 + components: + - type: Transform + pos: 0.5,14.5 + parent: 2 + - uid: 11155 + components: + - type: Transform + pos: 1.5,14.5 + parent: 2 + - uid: 11156 + components: + - type: Transform + pos: 1.5,-12.5 + parent: 2 + - uid: 11157 + components: + - type: Transform + pos: 0.5,-12.5 + parent: 2 + - uid: 11158 + components: + - type: Transform + pos: -32.5,3.5 + parent: 2 + - uid: 11159 + components: + - type: Transform + pos: -33.5,3.5 + parent: 2 + - uid: 11160 + components: + - type: Transform + pos: -34.5,3.5 + parent: 2 + - uid: 11161 + components: + - type: Transform + pos: -34.5,-14.5 + parent: 2 + - uid: 11162 + components: + - type: Transform + pos: -33.5,-14.5 + parent: 2 + - uid: 11163 + components: + - type: Transform + pos: -32.5,-14.5 + parent: 2 + - uid: 11164 + components: + - type: Transform + pos: -32.5,-35.5 + parent: 2 + - uid: 11165 + components: + - type: Transform + pos: -33.5,-35.5 + parent: 2 + - uid: 11166 + components: + - type: Transform + pos: -34.5,-35.5 + parent: 2 + - uid: 11167 + components: + - type: Transform + pos: -32.5,-25.5 + parent: 2 + - uid: 11168 + components: + - type: Transform + pos: -33.5,-25.5 + parent: 2 + - uid: 11169 + components: + - type: Transform + pos: -34.5,-25.5 + parent: 2 + - uid: 11170 + components: + - type: Transform + pos: -27.5,-21.5 + parent: 2 + - uid: 11171 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -13.5,-28.5 + parent: 2 + - uid: 11172 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -13.5,-27.5 + parent: 2 + - uid: 11173 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -13.5,-26.5 + parent: 2 + - uid: 11174 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -7.5,-34.5 + parent: 2 + - uid: 11175 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -1.5,-31.5 + parent: 2 + - uid: 11176 + components: + - type: Transform + pos: -11.5,-38.5 + parent: 2 + - uid: 11177 + components: + - type: Transform + pos: -12.5,-38.5 + parent: 2 + - uid: 11178 + components: + - type: Transform + pos: -13.5,-38.5 + parent: 2 + - uid: 11179 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -11.5,-46.5 + parent: 2 + - uid: 11180 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -12.5,-46.5 + parent: 2 + - uid: 11181 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -13.5,-46.5 + parent: 2 + - uid: 11182 + components: + - type: Transform + pos: 30.5,3.5 + parent: 2 + - uid: 11183 + components: + - type: Transform + pos: 29.5,3.5 + parent: 2 + - uid: 11184 + components: + - type: Transform + pos: 28.5,3.5 + parent: 2 + - uid: 11185 + components: + - type: Transform + pos: 29.5,-1.5 + parent: 2 + - uid: 11186 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 21.5,12.5 + parent: 2 + - uid: 11187 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 20.5,12.5 + parent: 2 + - uid: 11188 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 19.5,12.5 + parent: 2 + - uid: 11189 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 18.5,12.5 + parent: 2 + - uid: 11190 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 17.5,12.5 + parent: 2 + - uid: 11191 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 16.5,12.5 + parent: 2 + - uid: 11192 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 25.5,12.5 + parent: 2 + - uid: 11193 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 24.5,12.5 + parent: 2 + - uid: 11194 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 23.5,12.5 + parent: 2 + - uid: 11195 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 28.5,12.5 + parent: 2 + - uid: 11196 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 29.5,12.5 + parent: 2 + - uid: 11197 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 30.5,12.5 + parent: 2 + - uid: 11198 + components: + - type: Transform + pos: 41.5,29.5 + parent: 2 + - uid: 11199 + components: + - type: Transform + pos: 41.5,28.5 + parent: 2 + - uid: 11200 + components: + - type: Transform + pos: 41.5,27.5 + parent: 2 + - uid: 11201 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 30.5,34.5 + parent: 2 + - uid: 11202 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 29.5,34.5 + parent: 2 + - uid: 11203 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 28.5,34.5 + parent: 2 + - uid: 11204 + components: + - type: Transform + pos: 42.5,31.5 + parent: 2 + - uid: 11205 + components: + - type: Transform + pos: 43.5,31.5 + parent: 2 + - uid: 11206 + components: + - type: Transform + pos: 44.5,31.5 + parent: 2 + - uid: 11207 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -1.5,19.5 + parent: 2 + - uid: 11208 + components: + - type: Transform + pos: -2.5,25.5 + parent: 2 + - uid: 11209 + components: + - type: Transform + pos: -7.5,25.5 + parent: 2 + - uid: 11210 + components: + - type: Transform + pos: -11.5,25.5 + parent: 2 + - uid: 11211 + components: + - type: Transform + pos: -17.5,27.5 + parent: 2 + - uid: 11212 + components: + - type: Transform + pos: -17.5,28.5 + parent: 2 + - uid: 11213 + components: + - type: Transform + pos: -17.5,29.5 + parent: 2 + - uid: 11214 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -1.5,37.5 + parent: 2 + - uid: 11215 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -1.5,38.5 + parent: 2 + - uid: 11216 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 2.5,31.5 + parent: 2 + - uid: 11217 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 1.5,31.5 + parent: 2 + - uid: 11218 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 0.5,31.5 + parent: 2 + - uid: 11219 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -0.5,31.5 + parent: 2 + - uid: 11220 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -0.5,41.5 + parent: 2 + - uid: 11221 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 0.5,41.5 + parent: 2 + - uid: 11222 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 1.5,41.5 + parent: 2 + - uid: 11223 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 2.5,41.5 + parent: 2 + - uid: 11224 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 0.5,-43.5 + parent: 2 + - uid: 11225 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -0.5,-43.5 + parent: 2 + - uid: 11226 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -9.5,40.5 + parent: 2 + - uid: 11227 + components: + - type: Transform + pos: 39.5,-43.5 + parent: 2 + - uid: 11228 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -9.5,-48.5 + parent: 2 + - uid: 11229 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 27.5,14.5 + parent: 2 + - uid: 11230 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -8.5,-58.5 + parent: 2 + - uid: 11231 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -8.5,-57.5 + parent: 2 + - uid: 11232 + components: + - type: Transform + pos: 9.5,-64.5 + parent: 2 + - uid: 11233 + components: + - type: Transform + pos: 9.5,-63.5 + parent: 2 + - uid: 11234 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -7.5,15.5 + parent: 2 + - uid: 11235 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 26.5,15.5 + parent: 2 + - uid: 11236 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 25.5,15.5 + parent: 2 + - uid: 11237 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 24.5,15.5 + parent: 2 + - uid: 11238 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 23.5,15.5 + parent: 2 + - uid: 11239 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 21.5,15.5 + parent: 2 + - uid: 11240 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 20.5,15.5 + parent: 2 + - uid: 11241 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 16.5,15.5 + parent: 2 + - uid: 11242 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 27.5,16.5 + parent: 2 + - uid: 11243 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 22.5,20.5 + parent: 2 + - uid: 11244 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 29.5,21.5 + parent: 2 + - uid: 11245 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 31.5,16.5 + parent: 2 + - uid: 11246 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 31.5,14.5 + parent: 2 + - uid: 11247 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 31.5,15.5 + parent: 2 + - uid: 11248 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 39.5,18.5 + parent: 2 + - uid: 11249 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 31.5,23.5 + parent: 2 + - uid: 11250 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 26.5,31.5 + parent: 2 + - uid: 11251 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 41.5,35.5 + parent: 2 + - uid: 11252 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 41.5,38.5 + parent: 2 + - uid: 11253 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 31.5,35.5 + parent: 2 + - uid: 11254 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 31.5,38.5 + parent: 2 + - uid: 11255 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 27.5,39.5 + parent: 2 + - uid: 11256 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 18.5,39.5 + parent: 2 + - uid: 11257 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 20.5,41.5 + parent: 2 + - uid: 11258 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 18.5,35.5 + parent: 2 + - uid: 11259 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 15.5,41.5 + parent: 2 + - uid: 11260 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 14.5,37.5 + parent: 2 + - uid: 11261 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 16.5,43.5 + parent: 2 + - uid: 11262 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 36.5,7.5 + parent: 2 + - uid: 11263 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 41.5,11.5 + parent: 2 + - uid: 11264 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 35.5,-1.5 + parent: 2 + - uid: 11265 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 34.5,-1.5 + parent: 2 + - uid: 11266 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 27.5,-1.5 + parent: 2 + - uid: 11267 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 14.5,0.5 + parent: 2 + - uid: 11268 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 14.5,1.5 + parent: 2 + - uid: 11269 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 44.5,-13.5 + parent: 2 + - uid: 11270 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 39.5,-16.5 + parent: 2 + - uid: 11271 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 42.5,-24.5 + parent: 2 + - uid: 11272 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 40.5,-26.5 + parent: 2 + - uid: 11273 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 39.5,-26.5 + parent: 2 + - uid: 11274 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 32.5,-22.5 + parent: 2 + - uid: 11275 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 31.5,-22.5 + parent: 2 + - uid: 11276 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 30.5,-22.5 + parent: 2 + - uid: 11277 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 25.5,-22.5 + parent: 2 + - uid: 11278 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 27.5,-26.5 + parent: 2 + - uid: 11279 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 26.5,-26.5 + parent: 2 + - uid: 11280 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 24.5,-25.5 + parent: 2 + - uid: 11281 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 24.5,-24.5 + parent: 2 + - uid: 11282 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 24.5,-23.5 + parent: 2 + - uid: 11283 + components: + - type: Transform + pos: 43.5,-31.5 + parent: 2 + - uid: 11284 + components: + - type: Transform + pos: 29.5,-30.5 + parent: 2 + - uid: 11285 + components: + - type: Transform + pos: 19.5,-29.5 + parent: 2 + - uid: 11286 + components: + - type: Transform + pos: 18.5,-29.5 + parent: 2 + - uid: 11287 + components: + - type: Transform + pos: 17.5,-29.5 + parent: 2 + - uid: 11288 + components: + - type: Transform + pos: 11.5,-31.5 + parent: 2 + - uid: 11289 + components: + - type: Transform + pos: 11.5,-30.5 + parent: 2 + - uid: 11290 + components: + - type: Transform + pos: 11.5,-25.5 + parent: 2 + - uid: 11291 + components: + - type: Transform + pos: 11.5,-24.5 + parent: 2 + - uid: 11292 + components: + - type: Transform + pos: 11.5,-23.5 + parent: 2 + - uid: 11293 + components: + - type: Transform + pos: 18.5,-21.5 + parent: 2 + - uid: 11294 + components: + - type: Transform + pos: 11.5,-18.5 + parent: 2 + - uid: 11295 + components: + - type: Transform + pos: 13.5,-17.5 + parent: 2 + - uid: 11296 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 13.5,-12.5 + parent: 2 + - uid: 11297 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 17.5,-12.5 + parent: 2 + - uid: 11298 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 3.5,-25.5 + parent: 2 + - uid: 11299 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 3.5,-24.5 + parent: 2 + - uid: 11300 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 3.5,-23.5 + parent: 2 + - uid: 11301 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 5.5,-20.5 + parent: 2 + - uid: 11302 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 8.5,-20.5 + parent: 2 + - uid: 11303 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 9.5,-20.5 + parent: 2 + - uid: 11304 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 5.5,-28.5 + parent: 2 + - uid: 11305 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 6.5,-28.5 + parent: 2 + - uid: 11306 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 7.5,-28.5 + parent: 2 + - uid: 11307 + components: + - type: Transform + pos: -1.5,-23.5 + parent: 2 + - uid: 11308 + components: + - type: Transform + pos: -1.5,-27.5 + parent: 2 + - uid: 11309 + components: + - type: Transform + pos: -1.5,-36.5 + parent: 2 + - uid: 11310 + components: + - type: Transform + pos: 3.5,-40.5 + parent: 2 + - uid: 11311 + components: + - type: Transform + pos: 3.5,-41.5 + parent: 2 + - uid: 11312 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 5.5,-43.5 + parent: 2 + - uid: 11313 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 6.5,-43.5 + parent: 2 + - uid: 11314 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 9.5,-41.5 + parent: 2 + - uid: 11315 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 9.5,-40.5 + parent: 2 + - uid: 11316 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 5.5,-50.5 + parent: 2 + - uid: 11317 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 5.5,-49.5 + parent: 2 + - uid: 11318 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 9.5,-47.5 + parent: 2 + - uid: 11319 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 9.5,-52.5 + parent: 2 + - uid: 11320 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 5.5,-53.5 + parent: 2 + - uid: 11321 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 5.5,-55.5 + parent: 2 + - uid: 11322 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 7.5,-57.5 + parent: 2 + - uid: 11323 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 33.5,-44.5 + parent: 2 + - uid: 11324 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 33.5,-51.5 + parent: 2 + - uid: 11325 + components: + - type: Transform + pos: 1.5,-57.5 + parent: 2 + - uid: 11326 + components: + - type: Transform + pos: 3.5,-61.5 + parent: 2 + - uid: 11327 + components: + - type: Transform + pos: -3.5,-61.5 + parent: 2 + - uid: 11328 + components: + - type: Transform + pos: 0.5,-65.5 + parent: 2 + - uid: 11329 + components: + - type: Transform + pos: 7.5,-61.5 + parent: 2 + - uid: 11330 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -7.5,-29.5 + parent: 2 + - uid: 11331 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -3.5,-38.5 + parent: 2 + - uid: 11332 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -4.5,-27.5 + parent: 2 + - uid: 11333 + components: + - type: Transform + pos: -16.5,-25.5 + parent: 2 + - uid: 11334 + components: + - type: Transform + pos: -22.5,-25.5 + parent: 2 + - uid: 11335 + components: + - type: Transform + pos: -21.5,-29.5 + parent: 2 + - uid: 11336 + components: + - type: Transform + pos: -24.5,-32.5 + parent: 2 + - uid: 11337 + components: + - type: Transform + pos: -29.5,-33.5 + parent: 2 + - uid: 11338 + components: + - type: Transform + pos: -29.5,-28.5 + parent: 2 + - uid: 11339 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -27.5,-22.5 + parent: 2 + - uid: 11340 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -25.5,-17.5 + parent: 2 + - uid: 11341 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -31.5,-17.5 + parent: 2 + - uid: 11342 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -31.5,-40.5 + parent: 2 + - uid: 11343 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -36.5,-37.5 + parent: 2 + - uid: 11344 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -35.5,-42.5 + parent: 2 + - uid: 11345 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -35.5,-43.5 + parent: 2 + - uid: 11346 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -33.5,-44.5 + parent: 2 + - uid: 11347 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -42.5,-37.5 + parent: 2 + - uid: 11348 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -43.5,-37.5 + parent: 2 + - uid: 11349 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -29.5,-47.5 + parent: 2 + - uid: 11350 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -38.5,-46.5 + parent: 2 + - uid: 11351 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -40.5,-50.5 + parent: 2 + - uid: 11352 + components: + - type: Transform + pos: -16.5,-21.5 + parent: 2 + - uid: 11353 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -35.5,-19.5 + parent: 2 + - uid: 11354 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -29.5,-25.5 + parent: 2 + - uid: 11355 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -31.5,-11.5 + parent: 2 + - uid: 11356 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -35.5,-8.5 + parent: 2 + - uid: 11357 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -36.5,6.5 + parent: 2 + - uid: 11358 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -36.5,7.5 + parent: 2 + - uid: 11359 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -36.5,9.5 + parent: 2 + - uid: 11360 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -36.5,10.5 + parent: 2 + - uid: 11361 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -31.5,10.5 + parent: 2 + - uid: 11362 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -31.5,6.5 + parent: 2 + - uid: 11363 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -33.5,13.5 + parent: 2 + - uid: 11364 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -26.5,7.5 + parent: 2 + - uid: 11365 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -30.5,9.5 + parent: 2 + - uid: 11366 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -38.5,5.5 + parent: 2 + - uid: 11367 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -40.5,13.5 + parent: 2 + - uid: 11368 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -38.5,-6.5 + parent: 2 + - uid: 11369 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -39.5,-6.5 + parent: 2 + - uid: 11370 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -37.5,-14.5 + parent: 2 + - uid: 11371 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -29.5,-1.5 + parent: 2 + - uid: 11372 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -8.5,8.5 + parent: 2 + - uid: 11373 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -2.5,12.5 + parent: 2 + - uid: 11374 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 5.5,12.5 + parent: 2 + - uid: 11375 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 8.5,10.5 + parent: 2 + - uid: 11376 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -9.5,17.5 + parent: 2 + - uid: 11377 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -14.5,11.5 + parent: 2 + - uid: 11378 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 3.5,18.5 + parent: 2 + - uid: 11379 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 8.5,18.5 + parent: 2 + - uid: 11380 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -17.5,19.5 + parent: 2 + - uid: 11381 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -16.5,21.5 + parent: 2 + - uid: 11382 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -14.5,21.5 + parent: 2 + - uid: 11383 + components: + - type: Transform + pos: -14.5,24.5 + parent: 2 + - uid: 11384 + components: + - type: Transform + pos: -16.5,24.5 + parent: 2 + - uid: 11385 + components: + - type: Transform + pos: -15.5,30.5 + parent: 2 + - uid: 11386 + components: + - type: Transform + pos: -12.5,30.5 + parent: 2 + - uid: 11387 + components: + - type: Transform + pos: -4.5,32.5 + parent: 2 + - uid: 11388 + components: + - type: Transform + pos: -2.5,32.5 + parent: 2 + - uid: 11389 + components: + - type: Transform + pos: -13.5,32.5 + parent: 2 + - uid: 11390 + components: + - type: Transform + pos: -9.5,36.5 + parent: 2 + - uid: 11391 + components: + - type: Transform + pos: -18.5,32.5 + parent: 2 + - uid: 11392 + components: + - type: Transform + pos: -16.5,37.5 + parent: 2 + - uid: 11393 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -19.5,30.5 + parent: 2 + - uid: 11394 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -19.5,26.5 + parent: 2 + - uid: 11395 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -20.5,26.5 + parent: 2 + - uid: 11396 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -2.5,35.5 + parent: 2 + - uid: 11397 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -4.5,35.5 + parent: 2 + - uid: 11398 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -23.5,37.5 + parent: 2 + - uid: 11399 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -23.5,42.5 + parent: 2 + - uid: 11400 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -25.5,35.5 + parent: 2 + - uid: 11401 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -23.5,26.5 + parent: 2 + - uid: 11402 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -34.5,29.5 + parent: 2 + - uid: 11403 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -36.5,27.5 + parent: 2 + - uid: 11404 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -38.5,29.5 + parent: 2 + - uid: 11405 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -35.5,32.5 + parent: 2 + - uid: 11406 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -35.5,35.5 + parent: 2 + - uid: 11407 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -35.5,38.5 + parent: 2 + - uid: 11408 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -34.5,24.5 + parent: 2 + - uid: 11409 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -38.5,26.5 + parent: 2 + - uid: 11410 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 3.5,26.5 + parent: 2 + - uid: 11411 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 3.5,29.5 + parent: 2 + - uid: 11412 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 3.5,34.5 + parent: 2 + - uid: 11413 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 7.5,36.5 + parent: 2 + - uid: 11414 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 5.5,47.5 + parent: 2 + - uid: 11415 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 3.5,52.5 + parent: 2 + - uid: 11416 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 2.5,54.5 + parent: 2 + - uid: 11417 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -0.5,54.5 + parent: 2 + - uid: 11418 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 5.5,57.5 + parent: 2 + - uid: 11419 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 10.5,49.5 + parent: 2 + - uid: 11420 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 8.5,51.5 + parent: 2 + - uid: 11421 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 2.5,57.5 + parent: 2 + - uid: 11422 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -0.5,57.5 + parent: 2 + - uid: 11423 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -3.5,57.5 + parent: 2 + - uid: 11424 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -7.5,51.5 + parent: 2 + - uid: 11425 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -9.5,50.5 + parent: 2 + - uid: 11426 + components: + - type: Transform + pos: -10.5,-25.5 + parent: 2 + - type: DeviceNetwork + deviceLists: + - 37 +- proto: Fireplace + entities: + - uid: 11427 + components: + - type: Transform + pos: -5.5,56.5 + parent: 2 +- proto: Flash + entities: + - uid: 11428 + components: + - type: Transform + pos: -16.97403,11.588499 + parent: 2 + - uid: 11429 + components: + - type: Transform + pos: -19.61,-22.436773 + parent: 2 + - uid: 11430 + components: + - type: Transform + pos: -19.768509,-22.390152 + parent: 2 + - uid: 11431 + components: + - type: Transform + pos: -19.70324,-22.306236 + parent: 2 + - uid: 11432 + components: + - type: Transform + pos: -19.582027,-22.352856 + parent: 2 + - uid: 11433 + components: + - type: Transform + pos: -19.572704,-22.26894 + parent: 2 + - uid: 11434 + components: + - type: Transform + pos: -4.166085,-37.38082 + parent: 2 + - uid: 11435 + components: + - type: Transform + pos: 43.55587,-16.87266 + parent: 2 + - uid: 11436 + components: + - type: Transform + pos: 4.6424813,-18.514095 + parent: 2 +- proto: FlashlightSeclite + entities: + - uid: 11437 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -11.756112,-24.589926 + parent: 2 +- proto: Floodlight + entities: + - uid: 11438 + components: + - type: Transform + pos: -24.347862,15.685556 + parent: 2 + - uid: 11439 + components: + - type: Transform + pos: -25.648563,21.706535 + parent: 2 + - uid: 11440 + components: + - type: Transform + pos: -8.521772,38.478157 + parent: 2 +- proto: FloorDrain + entities: + - uid: 11441 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 32.5,-27.5 + parent: 2 + - type: Fixtures + fixtures: {} + - uid: 11442 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 19.5,-10.5 + parent: 2 + - type: Fixtures + fixtures: {} + - uid: 11443 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -28.5,-27.5 + parent: 2 + - type: Fixtures + fixtures: {} + - uid: 11444 + components: + - type: Transform + pos: -3.5,-32.5 + parent: 2 + - type: Fixtures + fixtures: {} + - uid: 11445 + components: + - type: Transform + pos: 22.5,21.5 + parent: 2 + - type: Fixtures + fixtures: {} + - uid: 11446 + components: + - type: Transform + pos: 22.5,17.5 + parent: 2 + - type: Fixtures + fixtures: {} + - uid: 11447 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -11.5,51.5 + parent: 2 + - type: Fixtures + fixtures: {} + - uid: 11448 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -11.5,51.5 + parent: 2 + - type: Fixtures + fixtures: {} + - uid: 11449 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 14.5,-10.5 + parent: 2 + - type: Fixtures + fixtures: {} + - uid: 11450 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 9.5,12.5 + parent: 2 + - type: Fixtures + fixtures: {} + - uid: 11451 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 31.5,-18.5 + parent: 2 + - type: Fixtures + fixtures: {} + - uid: 11452 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 8.5,-30.5 + parent: 2 + - type: Fixtures + fixtures: {} +- proto: FloraTree01 + entities: + - uid: 11453 + components: + - type: Transform + pos: -3.5,-5.5 + parent: 2 +- proto: FloraTree03 + entities: + - uid: 11454 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 6.5,5.5 + parent: 2 +- proto: FloraTreeLarge01 + entities: + - uid: 11455 + components: + - type: Transform + pos: 7.5,-3.5 + parent: 2 +- proto: FloraTreeLarge04 + entities: + - uid: 11456 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -5.5,4.5 + parent: 2 +- proto: FoamBlade + entities: + - uid: 11457 + components: + - type: Transform + pos: 38.44899,3.6804004 + parent: 2 +- proto: FoodApple + entities: + - uid: 11458 + components: + - type: Transform + pos: -35.58671,-62.39567 + parent: 2 +- proto: FoodBowlBig + entities: + - uid: 11459 + components: + - type: Transform + pos: -42.46283,33.323154 + parent: 2 +- proto: FoodBowlBigTrash + entities: + - uid: 11460 + components: + - type: Transform + pos: -27.877434,15.233183 + parent: 2 +- proto: FoodBoxDonkpocket + entities: + - uid: 11462 + components: + - type: Transform + pos: -43.297028,-9.454086 + parent: 2 +- proto: FoodBoxDonut + entities: + - uid: 11463 + components: + - type: Transform + pos: 24.600113,9.624147 + parent: 2 + - uid: 11464 + components: + - type: Transform + pos: 14.368227,42.899357 + parent: 2 + - uid: 11465 + components: + - type: Transform + pos: 6.649834,48.905804 + parent: 2 + - uid: 11466 + components: + - type: Transform + pos: 8.730892,54.729946 + parent: 2 + - uid: 11467 + components: + - type: Transform + pos: -3.4389992,52.02765 + parent: 2 +- proto: FoodBoxNugget + entities: + - uid: 11468 + components: + - type: Transform + pos: 26.666939,19.03567 + parent: 2 +- proto: FoodBoxPizzaFilled + entities: + - uid: 11469 + components: + - type: Transform + pos: -29.677326,-14.227869 + parent: 2 +- proto: FoodBreadMimanaSlice + entities: + - uid: 11470 + components: + - type: Transform + pos: -4.3876634,-14.44239 + parent: 2 +- proto: FoodBurgerCheese + entities: + - uid: 11471 + components: + - type: Transform + pos: 18.205593,21.53536 + parent: 2 +- proto: FoodBurgerClown + entities: + - uid: 10535 + components: + - type: Transform + parent: 10524 + - type: Physics + angularDamping: 0 + linearDamping: 0 + canCollide: False + - type: InsideEntityStorage +- proto: FoodBurgerEmpowered + entities: + - uid: 11472 + components: + - type: Transform + pos: -46.584095,-32.412216 + parent: 2 + - uid: 11473 + components: + - type: Transform + pos: -33.68074,26.112938 + parent: 2 +- proto: FoodBurgerMime + entities: + - uid: 10518 + components: + - type: Transform + parent: 10501 + - type: Physics + angularDamping: 0 + linearDamping: 0 + canCollide: False + - type: InsideEntityStorage +- proto: FoodBurgerRobot + entities: + - uid: 11474 + components: + - type: Transform + pos: -23.599743,-39.49461 + parent: 2 + - type: Physics + angularDamping: 0 + linearDamping: 0 +- proto: FoodBurgerSuper + entities: + - uid: 11475 + components: + - type: Transform + pos: -33.507736,17.583248 + parent: 2 +- proto: FoodCakeClown + entities: + - uid: 10548 + components: + - type: Transform + parent: 10524 + - type: Physics + angularDamping: 0 + linearDamping: 0 + canCollide: False + - type: InsideEntityStorage +- proto: FoodCakeClownSlice + entities: + - uid: 10537 + components: + - type: Transform + parent: 10524 + - type: Physics + angularDamping: 0 + linearDamping: 0 + canCollide: False + - type: InsideEntityStorage + - uid: 11476 + components: + - type: Transform + pos: -25.573101,-41.63894 + parent: 2 +- proto: FoodCarrot + entities: + - uid: 11477 + components: + - type: Transform + pos: -42.207973,34.83871 + parent: 2 +- proto: FoodCartCold + entities: + - uid: 11478 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 23.5,21.5 + parent: 2 +- proto: FoodCartHot + entities: + - uid: 11479 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 24.5,21.5 + parent: 2 + - uid: 11480 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 16.5,25.5 + parent: 2 +- proto: FoodCondimentBottleEnzyme + entities: + - uid: 11481 + components: + - type: Transform + pos: 22.885715,17.965763 + parent: 2 +- proto: FoodDonutChaos + entities: + - uid: 11482 + components: + - type: Transform + pos: -3.4952793,51.595394 + parent: 2 +- proto: FoodDough + entities: + - uid: 11483 + components: + - type: Transform + pos: 26.463253,17.454433 + parent: 2 + - uid: 11484 + components: + - type: Transform + pos: 26.589005,17.642982 + parent: 2 +- proto: FoodDoughFlat + entities: + - uid: 11485 + components: + - type: Transform + pos: 26.485119,18.308397 + parent: 2 +- proto: FoodFrozenSnowconeClown + entities: + - uid: 10540 + components: + - type: Transform + parent: 10524 + - type: Physics + angularDamping: 0 + linearDamping: 0 + canCollide: False + - type: InsideEntityStorage +- proto: FoodFrozenSnowconeMime + entities: + - uid: 10508 + components: + - type: Transform + parent: 10501 + - type: Physics + angularDamping: 0 + linearDamping: 0 + canCollide: False + - type: InsideEntityStorage +- proto: FoodMealNachos + entities: + - uid: 11486 + components: + - type: Transform + pos: -22.903801,40.606133 + parent: 2 +- proto: FoodMeatClown + entities: + - uid: 10529 + components: + - type: Transform + parent: 10524 + - type: Physics + angularDamping: 0 + linearDamping: 0 + canCollide: False + - type: InsideEntityStorage +- proto: FoodMeatGoliath + entities: + - uid: 11487 + components: + - type: Transform + pos: -4.485483,-11.321461 + parent: 2 + - type: CollisionWake + enabled: False +- proto: FoodPlate + entities: + - uid: 11488 + components: + - type: Transform + pos: -23.52546,-62.486492 + parent: 2 +- proto: FoodPlateSmallTrash + entities: + - uid: 11489 + components: + - type: Transform + pos: 19.489384,-36.50554 + parent: 2 +- proto: FoodPlateTrash + entities: + - uid: 11490 + components: + - type: Transform + pos: -19.53099,-36.465023 + parent: 2 +- proto: FoodPoppy + entities: + - uid: 11491 + components: + - type: Transform + pos: 17.5766,30.411772 + parent: 2 + - uid: 11492 + components: + - type: Transform + pos: 17.534641,32.775406 + parent: 2 +- proto: FoodShakerPepper + entities: + - uid: 11493 + components: + - type: Transform + pos: 19.499203,5.1753497 + parent: 2 + - uid: 11494 + components: + - type: Transform + pos: 25.507118,5.1008615 + parent: 2 + - uid: 11495 + components: + - type: Transform + pos: 23.285427,9.736036 + parent: 2 + - uid: 11496 + components: + - type: Transform + pos: 26.27533,18.909794 + parent: 2 +- proto: FoodShakerSalt + entities: + - uid: 11497 + components: + - type: Transform + pos: 19.499203,5.026374 + parent: 2 + - uid: 11498 + components: + - type: Transform + pos: 25.507118,4.961197 + parent: 2 + - uid: 11499 + components: + - type: Transform + pos: 23.467247,9.652121 + parent: 2 + - uid: 11500 + components: + - type: Transform + pos: 26.34526,18.727978 + parent: 2 +- proto: FoodSnackMREBrownieOpen + entities: + - uid: 11501 + components: + - type: Transform + pos: -8.392583,56.64848 + parent: 2 +- proto: FoodSoupClown + entities: + - uid: 10534 + components: + - type: Transform + parent: 10524 + - type: Physics + angularDamping: 0 + linearDamping: 0 + canCollide: False + - type: InsideEntityStorage +- proto: FoodTartGapple + entities: + - uid: 11502 + components: + - type: Transform + pos: -31.47277,16.555275 + parent: 2 +- proto: FoodTartMime + entities: + - uid: 10503 + components: + - type: Transform + parent: 10501 + - type: Physics + angularDamping: 0 + linearDamping: 0 + canCollide: False + - type: InsideEntityStorage +- proto: FoodTartMimeSlice + entities: + - uid: 10505 + components: + - type: Transform + parent: 10501 + - type: Physics + angularDamping: 0 + linearDamping: 0 + canCollide: False + - type: InsideEntityStorage +- proto: FoodTinPeachesMaint + entities: + - uid: 11503 + components: + - type: Transform + pos: -19.632843,-47.462822 + parent: 2 + - uid: 11504 + components: + - type: Transform + pos: -19.360119,-47.315968 + parent: 2 +- proto: FoodTinPeachesMaintTrash + entities: + - uid: 11505 + components: + - type: Transform + pos: -27.217201,17.785725 + parent: 2 + - uid: 11506 + components: + - type: Transform + pos: -27.364056,17.408104 + parent: 2 + - uid: 11507 + components: + - type: Transform + pos: -27.615803,17.743767 + parent: 2 +- proto: FoodTomato + entities: + - uid: 11508 + components: + - type: Transform + pos: 40.67086,-34.31078 + parent: 2 +- proto: Fork + entities: + - uid: 11509 + components: + - type: Transform + pos: 26.320393,9.959812 + parent: 2 +- proto: FuelDispenser + entities: + - uid: 11510 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -1.5,-49.5 + parent: 2 + - uid: 11511 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 5.5,-57.5 + parent: 2 + - uid: 11512 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -21.5,-61.5 + parent: 2 + - uid: 11513 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 15.5,-63.5 + parent: 2 + - uid: 11514 + components: + - type: Transform + pos: 31.5,-40.5 + parent: 2 + - uid: 11515 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 33.5,-64.5 + parent: 2 + - uid: 11516 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 10.5,16.5 + parent: 2 +- proto: GasAnalyzer + entities: + - uid: 11517 + components: + - type: Transform + pos: 2.3468375,-58.35682 + parent: 2 + - uid: 11518 + components: + - type: Transform + pos: -7.414138,-63.179836 + parent: 2 + - uid: 11519 + components: + - type: Transform + pos: 29.694004,-52.230232 + parent: 2 +- proto: GasCanisterBrokenBase + entities: + - uid: 11520 + components: + - type: Transform + pos: -13.5,-10.5 + parent: 2 + - uid: 11521 + components: + - type: Transform + pos: -22.5,-11.5 + parent: 2 + - uid: 11522 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -11.5,47.5 + parent: 2 + - uid: 11523 + components: + - type: Transform + pos: 43.5,21.5 + parent: 2 + - uid: 11524 + components: + - type: Transform + pos: 28.5,-12.5 + parent: 2 + - uid: 11525 + components: + - type: Transform + pos: -26.5,-60.5 + parent: 2 + - uid: 11526 + components: + - type: Transform + pos: -31.5,-54.5 + parent: 2 + - uid: 11527 + components: + - type: Transform + pos: 8.5,-34.5 + parent: 2 +- proto: GasFilter + entities: + - uid: 11528 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 1.5,-73.5 + parent: 2 + - uid: 11529 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -0.5,-73.5 + parent: 2 + - uid: 11530 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -2.5,-73.5 + parent: 2 + - uid: 11531 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 3.5,-73.5 + parent: 2 + - uid: 11532 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 32.5,-63.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11533 + components: + - type: Transform + pos: 23.5,-61.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11534 + components: + - type: Transform + pos: 23.5,-57.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11535 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 32.5,-55.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11536 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 32.5,-59.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11537 + components: + - type: Transform + pos: 38.5,-45.5 + parent: 2 +- proto: GasFilterFlipped + entities: + - uid: 11538 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -2.5,-64.5 + parent: 2 + - uid: 11539 + components: + - type: Transform + pos: 28.5,-59.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF00BFFF' + - uid: 11540 + components: + - type: Transform + pos: 28.5,-57.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF00BFFF' + - uid: 11541 + components: + - type: Transform + pos: 28.5,-58.5 + parent: 2 +- proto: GasMinerNitrogenStationLarge + entities: + - uid: 11542 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 17.5,-62.5 + parent: 2 +- proto: GasMinerNitrousOxide + entities: + - uid: 11543 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 37.5,-62.5 + parent: 2 +- proto: GasMinerOxygenStationLarge + entities: + - uid: 11544 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 17.5,-58.5 + parent: 2 +- proto: GasMinerWaterVapor + entities: + - uid: 11545 + components: + - type: Transform + pos: 37.5,-54.5 + parent: 2 +- proto: GasMixer + entities: + - uid: 11546 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 31.5,-61.5 + parent: 2 + - type: AtmosPipeColor + color: '#8800FFFF' + - uid: 11547 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 31.5,-57.5 + parent: 2 + - type: AtmosPipeColor + color: '#8800FFFF' +- proto: GasMixerFlipped + entities: + - uid: 11548 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -32.5,-49.5 + parent: 2 + - uid: 11549 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 31.5,-53.5 + parent: 2 + - type: AtmosPipeColor + color: '#8800FFFF' + - uid: 11550 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 24.5,-63.5 + parent: 2 + - type: AtmosPipeColor + color: '#8800FFFF' + - uid: 11551 + components: + - type: Transform + pos: 22.5,-59.5 + parent: 2 + - type: GasMixer + inletTwoConcentration: 0.22000003 + inletOneConcentration: 0.78 + - type: AtmosPipeColor + color: '#8800FFFF' +- proto: GasOutletInjector + entities: + - uid: 11552 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -7.5,-42.5 + parent: 2 + - uid: 11553 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -42.5,-47.5 + parent: 2 + - uid: 11554 + components: + - type: Transform + pos: -29.5,26.5 + parent: 2 + - uid: 11555 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 20.5,-56.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11556 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 36.5,-63.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11557 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 26.5,-68.5 + parent: 2 + - type: AtmosPipeColor + color: '#8800FFFF' + - uid: 11558 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 34.5,-54.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11559 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 18.5,-53.5 + parent: 2 + - uid: 11560 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 18.5,-57.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11561 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 18.5,-61.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11562 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 36.5,-59.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11563 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 36.5,-55.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11564 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 40.5,-48.5 + parent: 2 + - uid: 11565 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 42.5,-42.5 + parent: 2 + - uid: 11566 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 10.5,-74.5 + parent: 2 +- proto: GasPassiveVent + entities: + - uid: 612 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -0.5,-68.5 + parent: 2 + - uid: 613 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -0.5,-69.5 + parent: 2 + - uid: 614 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -0.5,-70.5 + parent: 2 + - uid: 11567 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 36.5,-57.5 + parent: 2 + - type: AtmosPipeColor + color: '#8800FFFF' + - uid: 11568 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 36.5,-61.5 + parent: 2 + - type: AtmosPipeColor + color: '#8800FFFF' + - uid: 11569 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 28.5,-68.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF00BFFF' + - uid: 11570 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 18.5,-63.5 + parent: 2 + - type: AtmosPipeColor + color: '#8800FFFF' + - uid: 11571 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 18.5,-59.5 + parent: 2 + - type: AtmosPipeColor + color: '#8800FFFF' + - uid: 11572 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 18.5,-55.5 + parent: 2 + - type: AtmosPipeColor + color: '#03E8FCFF' + - uid: 11573 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 36.5,-53.5 + parent: 2 + - type: AtmosPipeColor + color: '#9003FCFF' + - uid: 14655 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 1.5,-70.5 + parent: 2 + - uid: 14656 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 1.5,-69.5 + parent: 2 + - uid: 14657 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 1.5,-68.5 + parent: 2 +- proto: GasPipeBend + entities: + - uid: 11574 + components: + - type: Transform + pos: 44.5,-10.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11575 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 31.5,-45.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 11576 + components: + - type: Transform + pos: -6.5,-36.5 + parent: 2 + - uid: 11577 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 45.5,-25.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 11578 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -11.5,-41.5 + parent: 2 + - uid: 11579 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -8.5,-42.5 + parent: 2 + - uid: 11580 + components: + - type: Transform + pos: -8.5,-41.5 + parent: 2 + - uid: 11581 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 27.5,-29.5 + parent: 2 + - uid: 11582 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 27.5,-27.5 + parent: 2 + - uid: 11583 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 26.5,-30.5 + parent: 2 + - uid: 11584 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -6.5,-35.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 11585 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -10.5,-49.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11586 + components: + - type: Transform + pos: -24.5,-34.5 + parent: 2 + - uid: 11587 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -8.5,-36.5 + parent: 2 + - uid: 11588 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 34.5,-45.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 11589 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -3.5,-65.5 + parent: 2 + - type: AtmosPipeColor + color: '#FC1703FF' + - uid: 11590 + components: + - type: Transform + pos: 5.5,-64.5 + parent: 2 + - type: AtmosPipeColor + color: '#00FFFFFF' + - uid: 11591 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 5.5,-75.5 + parent: 2 + - type: AtmosPipeColor + color: '#00FFFFFF' + - uid: 11592 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -3.5,-74.5 + parent: 2 + - type: AtmosPipeColor + color: '#00FFFFFF' + - uid: 11593 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -3.5,-75.5 + parent: 2 + - type: AtmosPipeColor + color: '#00FFFFFF' + - uid: 11594 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 7.5,-74.5 + parent: 2 + - type: AtmosPipeColor + color: '#FC1703FF' + - uid: 11595 + components: + - type: Transform + pos: 7.5,-73.5 + parent: 2 + - type: AtmosPipeColor + color: '#FC1703FF' + - uid: 11596 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -4.5,-73.5 + parent: 2 + - type: AtmosPipeColor + color: '#FC6603FF' + - uid: 11597 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 1.5,-67.5 + parent: 2 + - uid: 11598 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -0.5,-67.5 + parent: 2 + - uid: 11599 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -1.5,-67.5 + parent: 2 + - uid: 11600 + components: + - type: Transform + pos: 2.5,-67.5 + parent: 2 + - uid: 11601 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 2.5,-70.5 + parent: 2 + - uid: 11602 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -1.5,-70.5 + parent: 2 + - uid: 11603 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -4.5,-62.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF8000FF' + - uid: 11604 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 3.5,-62.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF8000FF' + - uid: 11605 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 3.5,-55.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF8000FF' + - uid: 11606 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 7.5,-55.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF8000FF' + - uid: 11607 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 7.5,-48.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF8000FF' + - uid: 11608 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -13.5,-70.5 + parent: 2 + - uid: 11609 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -13.5,-68.5 + parent: 2 + - uid: 11610 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 20.5,-58.5 + parent: 2 + - type: AtmosPipeColor + color: '#00FFFFFF' + - uid: 11611 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 22.5,-52.5 + parent: 2 + - type: AtmosPipeColor + color: '#03E8FCFF' + - uid: 11612 + components: + - type: Transform + pos: 20.5,-53.5 + parent: 2 + - type: AtmosPipeColor + color: '#00FFFFFF' + - uid: 11613 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 29.5,-62.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF00BFFF' + - uid: 11614 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 32.5,-54.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11615 + components: + - type: Transform + pos: 29.5,-56.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF00BFFF' + - uid: 11616 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 23.5,-50.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11617 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 22.5,-55.5 + parent: 2 + - type: AtmosPipeColor + color: '#03E8FCFF' + - uid: 11618 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 20.5,-62.5 + parent: 2 + - type: AtmosPipeColor + color: '#8800FFFF' + - uid: 11619 + components: + - type: Transform + pos: 24.5,-62.5 + parent: 2 + - type: AtmosPipeColor + color: '#8800FFFF' + - uid: 11620 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 31.5,-63.5 + parent: 2 + - type: AtmosPipeColor + color: '#8800FFFF' + - uid: 11621 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 32.5,-64.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11622 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 23.5,-64.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11623 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 35.5,-45.5 + parent: 2 + - uid: 11624 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 38.5,-44.5 + parent: 2 + - uid: 11625 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 38.5,-48.5 + parent: 2 + - uid: 11626 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 37.5,-42.5 + parent: 2 + - type: AtmosPipeColor + color: '#323232FF' + - uid: 11627 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 37.5,-44.5 + parent: 2 + - type: AtmosPipeColor + color: '#323232FF' + - uid: 11628 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 32.5,-44.5 + parent: 2 + - type: AtmosPipeColor + color: '#323232FF' + - uid: 11629 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 32.5,-50.5 + parent: 2 + - type: AtmosPipeColor + color: '#323232FF' + - uid: 11630 + components: + - type: Transform + pos: 28.5,-48.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF8000FF' + - uid: 11631 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 25.5,-51.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11632 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 27.5,-52.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 11633 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 12.5,-42.5 + parent: 2 + - type: AtmosPipeColor + color: '#00FFFFFF' + - uid: 11634 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 12.5,-45.5 + parent: 2 + - type: AtmosPipeColor + color: '#FFA500FF' + - uid: 11635 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 12.5,-46.5 + parent: 2 + - type: AtmosPipeColor + color: '#FFA500FF' + - uid: 11636 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 12.5,-43.5 + parent: 2 + - type: AtmosPipeColor + color: '#00FFFFFF' + - uid: 11637 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -8.5,-37.5 + parent: 2 + - uid: 11638 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 31.5,-46.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 11639 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 34.5,-43.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 11640 + components: + - type: Transform + pos: 27.5,-41.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 11641 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 0.5,-41.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 11642 + components: + - type: Transform + pos: 25.5,-40.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11643 + components: + - type: Transform + pos: 25.5,-40.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11644 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -24.5,-28.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 11645 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -24.5,-31.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 11646 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -28.5,-31.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 11647 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -28.5,-32.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 11648 + components: + - type: Transform + pos: -41.5,-32.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 11649 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -41.5,-43.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 11650 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -11.5,-37.5 + parent: 2 + - uid: 11651 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -12.5,-47.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 11652 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 37.5,17.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 11653 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 38.5,-32.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 11654 + components: + - type: Transform + pos: 43.5,-4.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11655 + components: + - type: Transform + pos: 6.5,-46.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 11656 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 6.5,-54.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 11657 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 2.5,-54.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 11658 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 2.5,-56.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 11659 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -7.5,-56.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 11660 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -7.5,-57.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 11661 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 4.5,-57.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11662 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -4.5,-61.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 11663 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -5.5,-61.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 11664 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -5.5,-76.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 11665 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 6.5,-76.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 11666 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 6.5,-64.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 11667 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 8.5,-56.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11668 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 14.5,-11.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 11669 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 17.5,-11.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 11670 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -34.5,-23.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 11671 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -39.5,-7.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11672 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -40.5,-7.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11673 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -30.5,-5.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 11674 + components: + - type: Transform + pos: 10.5,4.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 11675 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -19.5,18.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 11676 + components: + - type: Transform + pos: -16.5,34.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 11677 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -17.5,34.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 11678 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -17.5,39.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 11679 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -24.5,27.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 11680 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -31.5,23.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 11681 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -41.5,28.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 11682 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -39.5,32.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11683 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -2.5,59.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 11684 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -2.5,54.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 11685 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -6.5,54.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 11686 + components: + - type: Transform + pos: 7.5,52.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 11687 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 4.5,52.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 11688 + components: + - type: Transform + pos: 5.5,17.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 11689 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 22.5,13.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 11690 + components: + - type: Transform + pos: 22.5,16.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 11691 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 42.5,6.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 11692 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 19.5,30.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 11693 + components: + - type: Transform + pos: 28.5,38.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 11694 + components: + - type: Transform + pos: 32.5,34.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 11695 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 44.5,27.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 11696 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 40.5,39.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 11697 + components: + - type: Transform + pos: 44.5,42.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 11698 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -29.5,6.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 11699 + components: + - type: Transform + pos: 20.5,13.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 11700 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 32.5,-11.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 11701 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 32.5,-4.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 11702 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 34.5,-4.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 11703 + components: + - type: Transform + pos: 34.5,1.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 11704 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 9.5,4.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 11705 + components: + - type: Transform + pos: 26.5,-18.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 11706 + components: + - type: Transform + pos: 43.5,-11.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 11707 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 43.5,-17.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 11708 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 9.5,-52.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 11709 + components: + - type: Transform + pos: 8.5,-45.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11710 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 9.5,-53.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 11711 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 30.5,-31.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 11712 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 32.5,14.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 11713 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 42.5,17.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 11714 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 37.5,15.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 11715 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -6.5,-57.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11716 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -6.5,-58.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11717 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -2.5,-63.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11718 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -6.5,-63.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11719 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -6.5,-72.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11720 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 7.5,-72.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11721 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 7.5,-63.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11722 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 1.5,-40.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11723 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 12.5,-14.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11724 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 13.5,-9.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11725 + components: + - type: Transform + pos: 25.5,-19.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11726 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 23.5,-19.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11727 + components: + - type: Transform + pos: 32.5,-27.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11728 + components: + - type: Transform + pos: 41.5,-29.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11729 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 41.5,-30.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11730 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 32.5,-30.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11731 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 35.5,-4.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11732 + components: + - type: Transform + pos: 35.5,0.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11733 + components: + - type: Transform + pos: 21.5,14.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11734 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 40.5,9.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11735 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 41.5,9.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11736 + components: + - type: Transform + pos: 26.5,17.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11737 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 33.5,16.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11738 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 33.5,17.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11739 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 36.5,17.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11740 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 36.5,18.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11741 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 42.5,41.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11742 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 39.5,38.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11743 + components: + - type: Transform + pos: 30.5,39.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11744 + components: + - type: Transform + pos: 33.5,35.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11745 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 21.5,32.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11746 + components: + - type: Transform + pos: 16.5,40.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11747 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 15.5,40.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11748 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 16.5,36.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11749 + components: + - type: Transform + pos: 12.5,3.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11750 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 11.5,3.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11751 + components: + - type: Transform + pos: 11.5,5.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11752 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 10.5,5.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11753 + components: + - type: Transform + pos: 10.5,6.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11754 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 8.5,6.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11755 + components: + - type: Transform + pos: -24.5,7.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11756 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -41.5,7.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11757 + components: + - type: Transform + pos: -38.5,-13.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11758 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -40.5,-13.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11759 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -38.5,-19.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11760 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -32.5,-21.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11761 + components: + - type: Transform + pos: -28.5,-21.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11762 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -26.5,-26.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11763 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -26.5,-29.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11764 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -22.5,-32.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 11765 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -20.5,-31.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11766 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -17.5,-19.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11767 + components: + - type: Transform + pos: -15.5,-20.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 11768 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -8.5,-34.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11769 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -9.5,-34.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11770 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -9.5,-36.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11771 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -16.5,-36.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11772 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -4.5,-36.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 11773 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -4.5,-40.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 11774 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -2.5,-39.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11775 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -34.5,-29.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11776 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -35.5,-32.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 11777 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -35.5,-28.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 11778 + components: + - type: Transform + pos: -29.5,-39.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 11779 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -43.5,-41.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11780 + components: + - type: Transform + pos: -26.5,-46.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11781 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -32.5,-48.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 11782 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -33.5,-48.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 11783 + components: + - type: Transform + pos: 6.5,18.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11784 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -9.5,13.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11785 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -10.5,15.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11786 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -11.5,10.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 11787 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -8.5,22.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 11788 + components: + - type: Transform + pos: -3.5,29.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11789 + components: + - type: Transform + pos: -14.5,34.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11790 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -15.5,38.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11791 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -14.5,38.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11792 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -11.5,32.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 11793 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -9.5,31.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11794 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -19.5,32.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 11795 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -20.5,34.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11796 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -20.5,31.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11797 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -22.5,29.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11798 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -28.5,34.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 11799 + components: + - type: Transform + pos: -22.5,44.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11800 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -39.5,30.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11801 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -36.5,38.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11802 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -41.5,36.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 11803 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -37.5,39.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 11804 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -36.5,25.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11805 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -41.5,26.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 11806 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -37.5,21.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11807 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -35.5,20.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 11808 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -23.5,24.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 11809 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 7.5,34.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 11810 + components: + - type: Transform + pos: 6.5,37.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11811 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 5.5,37.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11812 + components: + - type: Transform + pos: 3.5,52.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11813 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 3.5,51.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11814 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -3.5,56.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11815 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -7.5,56.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11816 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 6.5,59.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 11817 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -4.5,58.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11818 + components: + - type: Transform + pos: -4.5,71.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11819 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -5.5,71.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11820 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -3.5,71.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 11821 + components: + - type: Transform + pos: -3.5,72.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 11822 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -4.5,72.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 11823 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 5.5,72.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11824 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 8.5,72.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11825 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 6.5,73.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 11826 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 7.5,73.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 11827 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 5.5,82.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 11828 + components: + - type: Transform + pos: 5.5,83.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 11829 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 6.5,83.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11830 + components: + - type: Transform + pos: 6.5,84.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11831 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -3.5,84.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11832 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -3.5,83.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11833 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -2.5,83.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 11834 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -2.5,82.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 11835 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -4.5,82.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 11836 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -4.5,76.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 11837 + components: + - type: Transform + pos: -5.5,76.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11838 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 17.5,26.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11839 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 18.5,25.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 11840 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 13.5,-25.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 11841 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 13.5,-24.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 11842 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 25.5,-28.5 + parent: 2 + - uid: 11843 + components: + - type: Transform + pos: 15.5,-24.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 11844 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 15.5,-25.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 11845 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 25.5,-30.5 + parent: 2 +- proto: GasPipeFourway + entities: + - uid: 11846 + components: + - type: Transform + pos: 27.5,-28.5 + parent: 2 + - uid: 11847 + components: + - type: Transform + pos: 1.5,-64.5 + parent: 2 + - type: AtmosPipeColor + color: '#00FFFFFF' + - uid: 11848 + components: + - type: Transform + pos: 28.5,-53.5 + parent: 2 + - type: AtmosPipeColor + color: '#8800FFFF' + - uid: 11849 + components: + - type: Transform + pos: 23.5,-56.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11850 + components: + - type: Transform + pos: 28.5,-56.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF00BFFF' + - uid: 11851 + components: + - type: Transform + pos: -22.5,-28.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 11852 + components: + - type: Transform + pos: -12.5,-35.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 11853 + components: + - type: Transform + pos: -12.5,-44.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 11854 + components: + - type: Transform + pos: 5.5,-41.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 11855 + components: + - type: Transform + pos: 19.5,-25.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 11856 + components: + - type: Transform + pos: 38.5,-25.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 11857 + components: + - type: Transform + pos: 30.5,-25.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 11858 + components: + - type: Transform + pos: -4.5,-56.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 11859 + components: + - type: Transform + pos: -21.5,-26.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11860 + components: + - type: Transform + pos: -34.5,8.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 11861 + components: + - type: Transform + pos: 0.5,1.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 11862 + components: + - type: Transform + pos: 1.5,-37.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11863 + components: + - type: Transform + pos: -16.5,27.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 11864 + components: + - type: Transform + pos: -16.5,32.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 11865 + components: + - type: Transform + pos: -35.5,23.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 11866 + components: + - type: Transform + pos: 0.5,29.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 11867 + components: + - type: Transform + pos: 0.5,59.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 11868 + components: + - type: Transform + pos: 28.5,1.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 11869 + components: + - type: Transform + pos: 28.5,6.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 11870 + components: + - type: Transform + pos: 28.5,30.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 11871 + components: + - type: Transform + pos: 8.5,-51.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11872 + components: + - type: Transform + pos: -2.5,-57.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11873 + components: + - type: Transform + pos: 17.5,-23.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11874 + components: + - type: Transform + pos: 16.5,39.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11875 + components: + - type: Transform + pos: 1.5,0.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11876 + components: + - type: Transform + pos: -32.5,7.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11877 + components: + - type: Transform + pos: -10.5,-36.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11878 + components: + - type: Transform + pos: -14.5,29.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11879 + components: + - type: Transform + pos: -14.5,31.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11880 + components: + - type: Transform + pos: -4.5,70.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' +- proto: GasPipeStraight + entities: + - uid: 11881 + components: + - type: Transform + pos: -4.5,63.5 + parent: 2 + - uid: 11882 + components: + - type: Transform + pos: -10.5,-35.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11883 + components: + - type: Transform + pos: 44.5,-11.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11884 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 8.5,-53.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 11885 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -30.5,-26.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 11886 + components: + - type: Transform + pos: -6.5,-29.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 11887 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 39.5,17.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 11888 + components: + - type: Transform + pos: 8.5,49.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11889 + components: + - type: Transform + pos: 8.5,50.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11890 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 6.5,54.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 11891 + components: + - type: Transform + pos: -11.5,-40.5 + parent: 2 + - uid: 11892 + components: + - type: Transform + pos: -11.5,-39.5 + parent: 2 + - uid: 11893 + components: + - type: Transform + pos: -11.5,-38.5 + parent: 2 + - uid: 11894 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -9.5,-41.5 + parent: 2 + - uid: 11895 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -38.5,-47.5 + parent: 2 + - uid: 11896 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -38.5,-47.5 + parent: 2 + - uid: 11897 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -38.5,-45.5 + parent: 2 + - uid: 11898 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -40.5,-45.5 + parent: 2 + - uid: 11899 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -40.5,-47.5 + parent: 2 + - uid: 11900 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -41.5,-47.5 + parent: 2 + - uid: 11901 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -41.5,-45.5 + parent: 2 + - uid: 11902 + components: + - type: Transform + pos: -29.5,25.5 + parent: 2 + - uid: 11903 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -8.5,-35.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 11904 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -6.5,-34.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 11905 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -7.5,-35.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 11906 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 25.5,-47.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11907 + components: + - type: Transform + pos: 10.5,2.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 11908 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 7.5,37.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 11909 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 35.5,-10.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11910 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 42.5,-10.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11911 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -9.5,-37.5 + parent: 2 + - uid: 11912 + components: + - type: Transform + pos: -12.5,-40.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 11913 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 7.5,38.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 11914 + components: + - type: Transform + pos: 26.5,-59.5 + parent: 2 + - type: AtmosPipeColor + color: '#8800FFFF' + - uid: 11915 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -9.5,-35.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 11916 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 35.5,15.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 11917 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -1.5,-64.5 + parent: 2 + - type: AtmosPipeColor + color: '#20FC03FF' + - uid: 11918 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -3.5,-64.5 + parent: 2 + - type: AtmosPipeColor + color: '#20FC03FF' + - uid: 11919 + components: + - type: Transform + pos: -4.5,-65.5 + parent: 2 + - type: AtmosPipeColor + color: '#20FC03FF' + - uid: 11920 + components: + - type: Transform + pos: -4.5,-66.5 + parent: 2 + - type: AtmosPipeColor + color: '#20FC03FF' + - uid: 11921 + components: + - type: Transform + pos: -4.5,-67.5 + parent: 2 + - type: AtmosPipeColor + color: '#20FC03FF' + - uid: 11922 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -5.5,-68.5 + parent: 2 + - type: AtmosPipeColor + color: '#20FC03FF' + - uid: 11923 + components: + - type: Transform + pos: -0.5,-65.5 + parent: 2 + - uid: 11924 + components: + - type: Transform + pos: 1.5,-65.5 + parent: 2 + - type: AtmosPipeColor + color: '#00FFFFFF' + - uid: 11925 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 2.5,-64.5 + parent: 2 + - type: AtmosPipeColor + color: '#00FFFFFF' + - uid: 11926 + components: + - type: Transform + pos: 5.5,-65.5 + parent: 2 + - type: AtmosPipeColor + color: '#00FFFFFF' + - uid: 11927 + components: + - type: Transform + pos: 5.5,-66.5 + parent: 2 + - type: AtmosPipeColor + color: '#00FFFFFF' + - uid: 11928 + components: + - type: Transform + pos: 5.5,-67.5 + parent: 2 + - type: AtmosPipeColor + color: '#00FFFFFF' + - uid: 11929 + components: + - type: Transform + pos: 5.5,-68.5 + parent: 2 + - type: AtmosPipeColor + color: '#00FFFFFF' + - uid: 11930 + components: + - type: Transform + pos: 5.5,-69.5 + parent: 2 + - type: AtmosPipeColor + color: '#00FFFFFF' + - uid: 11931 + components: + - type: Transform + pos: 5.5,-70.5 + parent: 2 + - type: AtmosPipeColor + color: '#00FFFFFF' + - uid: 11932 + components: + - type: Transform + pos: 5.5,-71.5 + parent: 2 + - type: AtmosPipeColor + color: '#00FFFFFF' + - uid: 11933 + components: + - type: Transform + pos: 5.5,-72.5 + parent: 2 + - type: AtmosPipeColor + color: '#00FFFFFF' + - uid: 11934 + components: + - type: Transform + pos: 5.5,-73.5 + parent: 2 + - type: AtmosPipeColor + color: '#00FFFFFF' + - uid: 11935 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 4.5,-74.5 + parent: 2 + - type: AtmosPipeColor + color: '#00FFFFFF' + - uid: 11936 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 2.5,-74.5 + parent: 2 + - type: AtmosPipeColor + color: '#00FFFFFF' + - uid: 11937 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 0.5,-74.5 + parent: 2 + - type: AtmosPipeColor + color: '#00FFFFFF' + - uid: 11938 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -1.5,-74.5 + parent: 2 + - type: AtmosPipeColor + color: '#00FFFFFF' + - uid: 11939 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 9.5,-74.5 + parent: 2 + - type: AtmosPipeColor + color: '#FC1703FF' + - uid: 11940 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 8.5,-74.5 + parent: 2 + - type: AtmosPipeColor + color: '#FC1703FF' + - uid: 11941 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 6.5,-73.5 + parent: 2 + - type: AtmosPipeColor + color: '#FC1703FF' + - uid: 11942 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 5.5,-73.5 + parent: 2 + - type: AtmosPipeColor + color: '#FC1703FF' + - uid: 11943 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 4.5,-73.5 + parent: 2 + - type: AtmosPipeColor + color: '#FC1703FF' + - uid: 11944 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -3.5,-73.5 + parent: 2 + - type: AtmosPipeColor + color: '#FC6603FF' + - uid: 11945 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 2.5,-73.5 + parent: 2 + - type: AtmosPipeColor + color: '#FC1703FF' + - uid: 11946 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 0.5,-73.5 + parent: 2 + - type: AtmosPipeColor + color: '#FC1703FF' + - uid: 11947 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -1.5,-73.5 + parent: 2 + - type: AtmosPipeColor + color: '#FC1703FF' + - uid: 11948 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 0.5,-75.5 + parent: 2 + - type: AtmosPipeColor + color: '#00FFFFFF' + - uid: 11949 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 3.5,-75.5 + parent: 2 + - type: AtmosPipeColor + color: '#00FFFFFF' + - uid: 11950 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -4.5,-72.5 + parent: 2 + - type: AtmosPipeColor + color: '#FC6603FF' + - uid: 11951 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -4.5,-71.5 + parent: 2 + - type: AtmosPipeColor + color: '#FC6603FF' + - uid: 11952 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -5.5,-70.5 + parent: 2 + - type: AtmosPipeColor + color: '#FC6603FF' + - uid: 11953 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -7.5,-70.5 + parent: 2 + - uid: 11954 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -7.5,-68.5 + parent: 2 + - uid: 11955 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -8.5,-70.5 + parent: 2 + - uid: 11956 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -8.5,-68.5 + parent: 2 + - uid: 11957 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 25.5,-48.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11958 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -3.5,-62.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF8000FF' + - uid: 11959 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -2.5,-62.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF8000FF' + - uid: 11960 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -1.5,-62.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF8000FF' + - uid: 11961 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -0.5,-62.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF8000FF' + - uid: 11962 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 0.5,-62.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF8000FF' + - uid: 11963 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 2.5,-62.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF8000FF' + - uid: 11964 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 3.5,-61.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF8000FF' + - uid: 11965 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 3.5,-60.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF8000FF' + - uid: 11966 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 3.5,-59.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF8000FF' + - uid: 11967 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 3.5,-58.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF8000FF' + - uid: 11968 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 3.5,-57.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF8000FF' + - uid: 11969 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 3.5,-56.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF8000FF' + - uid: 11970 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 4.5,-55.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF8000FF' + - uid: 11971 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 5.5,-55.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF8000FF' + - uid: 11972 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 6.5,-55.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF8000FF' + - uid: 11973 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 7.5,-54.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF8000FF' + - uid: 11974 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 7.5,-53.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF8000FF' + - uid: 11975 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 7.5,-52.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF8000FF' + - uid: 11976 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 7.5,-51.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF8000FF' + - uid: 11977 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 7.5,-50.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF8000FF' + - uid: 11978 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 7.5,-49.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF8000FF' + - uid: 11979 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 8.5,-48.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF8000FF' + - uid: 11980 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -13.5,-69.5 + parent: 2 + - uid: 11981 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 35.5,-57.5 + parent: 2 + - type: AtmosPipeColor + color: '#8800FFFF' + - uid: 11982 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 34.5,-61.5 + parent: 2 + - type: AtmosPipeColor + color: '#8800FFFF' + - uid: 11983 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 33.5,-57.5 + parent: 2 + - type: AtmosPipeColor + color: '#8800FFFF' + - uid: 11984 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 35.5,-61.5 + parent: 2 + - type: AtmosPipeColor + color: '#8800FFFF' + - uid: 11985 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 34.5,-57.5 + parent: 2 + - type: AtmosPipeColor + color: '#8800FFFF' + - uid: 11986 + components: + - type: Transform + pos: 20.5,-55.5 + parent: 2 + - type: AtmosPipeColor + color: '#00FFFFFF' + - uid: 11987 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 9.5,-48.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF8000FF' + - uid: 11988 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 25.5,-56.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11989 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 24.5,-56.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11990 + components: + - type: Transform + pos: 23.5,-54.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11991 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 29.5,-53.5 + parent: 2 + - type: AtmosPipeColor + color: '#8800FFFF' + - uid: 11992 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 27.5,-53.5 + parent: 2 + - type: AtmosPipeColor + color: '#8800FFFF' + - uid: 11993 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 31.5,-54.5 + parent: 2 + - type: AtmosPipeColor + color: '#8800FFFF' + - uid: 11994 + components: + - type: Transform + pos: 32.5,-56.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11995 + components: + - type: Transform + pos: 28.5,-54.5 + parent: 2 + - type: AtmosPipeColor + color: '#8800FFFF' + - uid: 11996 + components: + - type: Transform + pos: 32.5,-58.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11997 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 33.5,-61.5 + parent: 2 + - type: AtmosPipeColor + color: '#8800FFFF' + - uid: 11998 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 34.5,-55.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11999 + components: + - type: Transform + pos: 26.5,-62.5 + parent: 2 + - type: AtmosPipeColor + color: '#8800FFFF' + - uid: 12000 + components: + - type: Transform + pos: 26.5,-63.5 + parent: 2 + - type: AtmosPipeColor + color: '#8800FFFF' + - uid: 12001 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 21.5,-56.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 12002 + components: + - type: Transform + pos: 23.5,-55.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 12003 + components: + - type: Transform + pos: 23.5,-52.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 12004 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 33.5,-53.5 + parent: 2 + - type: AtmosPipeColor + color: '#9003FCFF' + - uid: 12005 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 34.5,-53.5 + parent: 2 + - type: AtmosPipeColor + color: '#9003FCFF' + - uid: 12006 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 35.5,-53.5 + parent: 2 + - type: AtmosPipeColor + color: '#9003FCFF' + - uid: 12007 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 30.5,-53.5 + parent: 2 + - type: AtmosPipeColor + color: '#8800FFFF' + - uid: 12008 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 33.5,-54.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 12009 + components: + - type: Transform + pos: 26.5,-55.5 + parent: 2 + - type: AtmosPipeColor + color: '#8800FFFF' + - uid: 12010 + components: + - type: Transform + pos: 28.5,-63.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF00BFFF' + - uid: 12011 + components: + - type: Transform + pos: 23.5,-53.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 12012 + components: + - type: Transform + pos: 22.5,-54.5 + parent: 2 + - type: AtmosPipeColor + color: '#03E8FCFF' + - uid: 12013 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 28.5,-63.5 + parent: 2 + - type: AtmosPipeColor + color: '#8800FFFF' + - uid: 12014 + components: + - type: Transform + pos: 26.5,-54.5 + parent: 2 + - type: AtmosPipeColor + color: '#8800FFFF' + - uid: 12015 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 28.5,-50.5 + parent: 2 + - type: AtmosPipeColor + color: '#323232FF' + - uid: 12016 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 23.5,-52.5 + parent: 2 + - type: AtmosPipeColor + color: '#03E8FCFF' + - uid: 12017 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 22.5,-53.5 + parent: 2 + - type: AtmosPipeColor + color: '#03E8FCFF' + - uid: 12018 + components: + - type: Transform + pos: 26.5,-61.5 + parent: 2 + - type: AtmosPipeColor + color: '#8800FFFF' + - uid: 12019 + components: + - type: Transform + pos: 26.5,-58.5 + parent: 2 + - type: AtmosPipeColor + color: '#8800FFFF' + - uid: 12020 + components: + - type: Transform + pos: 26.5,-57.5 + parent: 2 + - type: AtmosPipeColor + color: '#8800FFFF' + - uid: 12021 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 21.5,-55.5 + parent: 2 + - type: AtmosPipeColor + color: '#03E8FCFF' + - uid: 12022 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 20.5,-54.5 + parent: 2 + - type: AtmosPipeColor + color: '#00FFFFFF' + - uid: 12023 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 20.5,-55.5 + parent: 2 + - type: AtmosPipeColor + color: '#03E8FCFF' + - uid: 12024 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 19.5,-53.5 + parent: 2 + - type: AtmosPipeColor + color: '#00FFFFFF' + - uid: 12025 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 19.5,-55.5 + parent: 2 + - type: AtmosPipeColor + color: '#03E8FCFF' + - uid: 12026 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 21.5,-58.5 + parent: 2 + - type: AtmosPipeColor + color: '#00FFFFFF' + - uid: 12027 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 23.5,-58.5 + parent: 2 + - type: AtmosPipeColor + color: '#00FFFFFF' + - uid: 12028 + components: + - type: Transform + pos: 26.5,-56.5 + parent: 2 + - type: AtmosPipeColor + color: '#8800FFFF' + - uid: 12029 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 20.5,-56.5 + parent: 2 + - type: AtmosPipeColor + color: '#00FFFFFF' + - uid: 12030 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 20.5,-57.5 + parent: 2 + - type: AtmosPipeColor + color: '#00FFFFFF' + - uid: 12031 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 25.5,-50.5 + parent: 2 + - type: AtmosPipeColor + color: '#323232FF' + - uid: 12032 + components: + - type: Transform + pos: 26.5,-51.5 + parent: 2 + - type: AtmosPipeColor + color: '#323232FF' + - uid: 12033 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 22.5,-62.5 + parent: 2 + - type: AtmosPipeColor + color: '#8800FFFF' + - uid: 12034 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 21.5,-62.5 + parent: 2 + - type: AtmosPipeColor + color: '#8800FFFF' + - uid: 12035 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 20.5,-60.5 + parent: 2 + - type: AtmosPipeColor + color: '#8800FFFF' + - uid: 12036 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 20.5,-61.5 + parent: 2 + - type: AtmosPipeColor + color: '#8800FFFF' + - uid: 12037 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 19.5,-59.5 + parent: 2 + - type: AtmosPipeColor + color: '#8800FFFF' + - uid: 12038 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 21.5,-59.5 + parent: 2 + - type: AtmosPipeColor + color: '#8800FFFF' + - uid: 12039 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 22.5,-62.5 + parent: 2 + - type: AtmosPipeColor + color: '#8800FFFF' + - uid: 12040 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 22.5,-61.5 + parent: 2 + - type: AtmosPipeColor + color: '#8800FFFF' + - uid: 12041 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 22.5,-60.5 + parent: 2 + - type: AtmosPipeColor + color: '#8800FFFF' + - uid: 12042 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 19.5,-63.5 + parent: 2 + - type: AtmosPipeColor + color: '#8800FFFF' + - uid: 12043 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 20.5,-63.5 + parent: 2 + - type: AtmosPipeColor + color: '#8800FFFF' + - uid: 12044 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 21.5,-63.5 + parent: 2 + - type: AtmosPipeColor + color: '#8800FFFF' + - uid: 12045 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 25.5,-63.5 + parent: 2 + - type: AtmosPipeColor + color: '#8800FFFF' + - uid: 12046 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 27.5,-63.5 + parent: 2 + - type: AtmosPipeColor + color: '#8800FFFF' + - uid: 12047 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 29.5,-63.5 + parent: 2 + - type: AtmosPipeColor + color: '#8800FFFF' + - uid: 12048 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 30.5,-63.5 + parent: 2 + - type: AtmosPipeColor + color: '#8800FFFF' + - uid: 12049 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 31.5,-62.5 + parent: 2 + - type: AtmosPipeColor + color: '#8800FFFF' + - uid: 12050 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 31.5,-60.5 + parent: 2 + - type: AtmosPipeColor + color: '#8800FFFF' + - uid: 12051 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 31.5,-59.5 + parent: 2 + - type: AtmosPipeColor + color: '#8800FFFF' + - uid: 12052 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 31.5,-58.5 + parent: 2 + - type: AtmosPipeColor + color: '#8800FFFF' + - uid: 12053 + components: + - type: Transform + pos: 26.5,-66.5 + parent: 2 + - type: AtmosPipeColor + color: '#8800FFFF' + - uid: 12054 + components: + - type: Transform + pos: 28.5,-67.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF00BFFF' + - uid: 12055 + components: + - type: Transform + pos: 26.5,-62.5 + parent: 2 + - type: AtmosPipeColor + color: '#8800FFFF' + - uid: 12056 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 31.5,-55.5 + parent: 2 + - type: AtmosPipeColor + color: '#8800FFFF' + - uid: 12057 + components: + - type: Transform + pos: 28.5,-66.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF00BFFF' + - uid: 12058 + components: + - type: Transform + pos: 28.5,-65.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF00BFFF' + - uid: 12059 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 27.5,-56.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF00BFFF' + - uid: 12060 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 33.5,-55.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 12061 + components: + - type: Transform + pos: 32.5,-57.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 12062 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 33.5,-54.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 12063 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 33.5,-55.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 12064 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 35.5,-55.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 12065 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 32.5,-62.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 12066 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 32.5,-61.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 12067 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 32.5,-60.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 12068 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 33.5,-59.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 12069 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 34.5,-59.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 12070 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 22.5,-61.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 12071 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 21.5,-61.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 12072 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 20.5,-61.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 12073 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 19.5,-61.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 12074 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 19.5,-57.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 12075 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 20.5,-57.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 12076 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 21.5,-57.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 12077 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 22.5,-57.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 12078 + components: + - type: Transform + pos: 23.5,-59.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 12079 + components: + - type: Transform + pos: 23.5,-60.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 12080 + components: + - type: Transform + pos: 23.5,-58.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 12081 + components: + - type: Transform + pos: 23.5,-63.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 12082 + components: + - type: Transform + pos: 23.5,-62.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 12083 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 25.5,-64.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 12084 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 24.5,-64.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 12085 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 26.5,-67.5 + parent: 2 + - type: AtmosPipeColor + color: '#8800FFFF' + - uid: 12086 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 26.5,-66.5 + parent: 2 + - type: AtmosPipeColor + color: '#8800FFFF' + - uid: 12087 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 26.5,-65.5 + parent: 2 + - type: AtmosPipeColor + color: '#8800FFFF' + - uid: 12088 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 27.5,-64.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 12089 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 28.5,-64.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 12090 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 29.5,-64.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 12091 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 30.5,-64.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 12092 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 31.5,-64.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 12093 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 35.5,-59.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 12094 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 35.5,-63.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 12095 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 34.5,-63.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 12096 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 33.5,-63.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 12097 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 25.5,-49.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 12098 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 41.5,-44.5 + parent: 2 + - uid: 12099 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 39.5,-44.5 + parent: 2 + - uid: 12100 + components: + - type: Transform + pos: 38.5,-46.5 + parent: 2 + - uid: 12101 + components: + - type: Transform + pos: 38.5,-47.5 + parent: 2 + - uid: 12102 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 39.5,-48.5 + parent: 2 + - uid: 12103 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 37.5,-45.5 + parent: 2 + - uid: 12104 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 39.5,-42.5 + parent: 2 + - type: AtmosPipeColor + color: '#323232FF' + - uid: 12105 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 38.5,-42.5 + parent: 2 + - type: AtmosPipeColor + color: '#323232FF' + - uid: 12106 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 26.5,-63.5 + parent: 2 + - type: AtmosPipeColor + color: '#8800FFFF' + - uid: 12107 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 26.5,-64.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 12108 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 27.5,-50.5 + parent: 2 + - type: AtmosPipeColor + color: '#323232FF' + - uid: 12109 + components: + - type: Transform + pos: -24.5,-35.5 + parent: 2 + - uid: 12110 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 29.5,-50.5 + parent: 2 + - type: AtmosPipeColor + color: '#323232FF' + - uid: 12111 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 30.5,-50.5 + parent: 2 + - type: AtmosPipeColor + color: '#323232FF' + - uid: 12112 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 31.5,-50.5 + parent: 2 + - type: AtmosPipeColor + color: '#323232FF' + - uid: 12113 + components: + - type: Transform + pos: 32.5,-49.5 + parent: 2 + - type: AtmosPipeColor + color: '#323232FF' + - uid: 12114 + components: + - type: Transform + pos: 32.5,-48.5 + parent: 2 + - type: AtmosPipeColor + color: '#323232FF' + - uid: 12115 + components: + - type: Transform + pos: 32.5,-47.5 + parent: 2 + - type: AtmosPipeColor + color: '#323232FF' + - uid: 12116 + components: + - type: Transform + pos: 32.5,-46.5 + parent: 2 + - type: AtmosPipeColor + color: '#323232FF' + - uid: 12117 + components: + - type: Transform + pos: 32.5,-45.5 + parent: 2 + - type: AtmosPipeColor + color: '#323232FF' + - uid: 12118 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 33.5,-44.5 + parent: 2 + - type: AtmosPipeColor + color: '#323232FF' + - uid: 12119 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 34.5,-44.5 + parent: 2 + - type: AtmosPipeColor + color: '#323232FF' + - uid: 12120 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 35.5,-44.5 + parent: 2 + - type: AtmosPipeColor + color: '#323232FF' + - uid: 12121 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 36.5,-44.5 + parent: 2 + - type: AtmosPipeColor + color: '#323232FF' + - uid: 12122 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 37.5,-43.5 + parent: 2 + - type: AtmosPipeColor + color: '#323232FF' + - uid: 12123 + components: + - type: Transform + pos: -24.5,-36.5 + parent: 2 + - uid: 12124 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 10.5,-48.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF8000FF' + - uid: 12125 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 11.5,-48.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF8000FF' + - uid: 12126 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 12.5,-48.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF8000FF' + - uid: 12127 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 13.5,-48.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF8000FF' + - uid: 12128 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 14.5,-48.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF8000FF' + - uid: 12129 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 15.5,-48.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF8000FF' + - uid: 12130 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 16.5,-48.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF8000FF' + - uid: 12131 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 17.5,-48.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF8000FF' + - uid: 12132 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 18.5,-48.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF8000FF' + - uid: 12133 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 19.5,-48.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF8000FF' + - uid: 12134 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 20.5,-48.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF8000FF' + - uid: 12135 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 21.5,-48.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF8000FF' + - uid: 12136 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 22.5,-48.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF8000FF' + - uid: 12137 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 23.5,-48.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF8000FF' + - uid: 12138 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 24.5,-48.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF8000FF' + - uid: 12139 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 25.5,-48.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF8000FF' + - uid: 12140 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 26.5,-48.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF8000FF' + - uid: 12141 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 27.5,-48.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF8000FF' + - uid: 12142 + components: + - type: Transform + pos: 28.5,-49.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF8000FF' + - uid: 12143 + components: + - type: Transform + pos: 28.5,-50.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF8000FF' + - uid: 12144 + components: + - type: Transform + pos: 28.5,-51.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF8000FF' + - uid: 12145 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 25.5,-50.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 12146 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 27.5,-51.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12147 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 27.5,-50.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12148 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 27.5,-49.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12149 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 27.5,-48.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12150 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 27.5,-47.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12151 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 25.5,-52.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12152 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 26.5,-52.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12153 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 41.5,-42.5 + parent: 2 + - uid: 12154 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 14.5,-42.5 + parent: 2 + - type: AtmosPipeColor + color: '#00FFFFFF' + - uid: 12155 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 14.5,-43.5 + parent: 2 + - type: AtmosPipeColor + color: '#00FFFFFF' + - uid: 12156 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 14.5,-45.5 + parent: 2 + - type: AtmosPipeColor + color: '#FFA500FF' + - uid: 12157 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 14.5,-46.5 + parent: 2 + - type: AtmosPipeColor + color: '#FFA500FF' + - uid: 12158 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 26.5,35.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12159 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 31.5,-25.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12160 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 3.5,-41.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12161 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 28.5,-46.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12162 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 29.5,-46.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12163 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 30.5,-46.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12164 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 32.5,-45.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12165 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 34.5,-44.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12166 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 33.5,-45.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12167 + components: + - type: Transform + pos: 27.5,-43.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12168 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 34.5,-41.5 + parent: 2 + - uid: 12169 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 25.5,-46.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 12170 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 4.5,-41.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12171 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 25.5,-44.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 12172 + components: + - type: Transform + pos: 27.5,-42.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12173 + components: + - type: Transform + pos: 25.5,-43.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 12174 + components: + - type: Transform + pos: 25.5,-43.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 12175 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 26.5,-41.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12176 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 25.5,-41.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12177 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 24.5,-41.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12178 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 23.5,-41.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12179 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 22.5,-41.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12180 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 21.5,-41.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12181 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 20.5,-41.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12182 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 19.5,-41.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12183 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 18.5,-41.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12184 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 17.5,-41.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12185 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 16.5,-41.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12186 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 15.5,-41.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12187 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 14.5,-41.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12188 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 13.5,-41.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12189 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 12.5,-41.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12190 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 10.5,-41.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12191 + components: + - type: Transform + pos: 25.5,-41.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 12192 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 8.5,-41.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12193 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 24.5,-40.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 12194 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 23.5,-40.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 12195 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 22.5,-40.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 12196 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 21.5,-40.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 12197 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 20.5,-40.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 12198 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 19.5,-40.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 12199 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 18.5,-40.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 12200 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 17.5,-40.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 12201 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 16.5,-40.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 12202 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 15.5,-40.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 12203 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 14.5,-40.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 12204 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 13.5,-40.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 12205 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 11.5,-40.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 12206 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 10.5,-40.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 12207 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 7.5,-41.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12208 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 9.5,-41.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12209 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 9.5,-40.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 12210 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 26.5,-42.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 12211 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 27.5,-42.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 12212 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 28.5,-42.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 12213 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 29.5,-42.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 12214 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 30.5,-42.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 12215 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 31.5,-42.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 12216 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 32.5,-42.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 12217 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 33.5,-42.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 12218 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 34.5,-42.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 12219 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 1.5,-56.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12220 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 27.5,-45.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12221 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 1.5,-41.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12222 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 1.5,-41.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12223 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 2.5,-41.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12224 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 2.5,-41.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12225 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 4.5,-41.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12226 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 4.5,-41.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12227 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 6.5,-41.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12228 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 6.5,-41.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12229 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 3.5,-41.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12230 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 0.5,-40.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12231 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 0.5,-39.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12232 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 0.5,-38.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12233 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 0.5,-37.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12234 + components: + - type: Transform + pos: 0.5,-34.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12235 + components: + - type: Transform + pos: 0.5,-33.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12236 + components: + - type: Transform + pos: 0.5,-32.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12237 + components: + - type: Transform + pos: 0.5,-31.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12238 + components: + - type: Transform + pos: 0.5,-30.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12239 + components: + - type: Transform + pos: 0.5,-29.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12240 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -0.5,-28.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12241 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -1.5,-28.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12242 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -2.5,-28.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12243 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -3.5,-28.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12244 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -4.5,-28.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12245 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -5.5,-28.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12246 + components: + - type: Transform + pos: -6.5,-30.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12247 + components: + - type: Transform + pos: -6.5,-31.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12248 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -8.5,-28.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12249 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -9.5,-28.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12250 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -7.5,-28.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12251 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -11.5,-28.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12252 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -12.5,-28.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12253 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -13.5,-28.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12254 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -14.5,-28.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12255 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -16.5,-28.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12256 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -17.5,-28.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12257 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -18.5,-28.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12258 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -19.5,-28.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12259 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -20.5,-28.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12260 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -21.5,-28.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12261 + components: + - type: Transform + pos: -24.5,-29.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12262 + components: + - type: Transform + pos: -24.5,-30.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12263 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -25.5,-31.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12264 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -26.5,-31.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12265 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -27.5,-31.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12266 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -29.5,-32.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12267 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -31.5,-32.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12268 + components: + - type: Transform + pos: -32.5,-33.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12269 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -32.5,-34.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12270 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -34.5,-30.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 12271 + components: + - type: Transform + pos: -32.5,-35.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12272 + components: + - type: Transform + pos: -32.5,-36.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12273 + components: + - type: Transform + pos: -32.5,-37.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12274 + components: + - type: Transform + pos: -32.5,-40.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12275 + components: + - type: Transform + pos: -32.5,-41.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12276 + components: + - type: Transform + pos: -32.5,-42.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12277 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -33.5,-43.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12278 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -35.5,-43.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12279 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -36.5,-43.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12280 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -37.5,-43.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12281 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -38.5,-43.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12282 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -39.5,-43.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12283 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -40.5,-43.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12284 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -42.5,-32.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12285 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -41.5,-34.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12286 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -41.5,-33.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12287 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -41.5,-35.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12288 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -41.5,-36.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12289 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -41.5,-37.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12290 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -43.5,-37.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 12291 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -41.5,-38.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12292 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -41.5,-39.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12293 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -41.5,-41.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12294 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -41.5,-42.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12295 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -34.5,-43.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12296 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 29.5,-31.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12297 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -32.5,-44.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12298 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -32.5,-45.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12299 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -32.5,-46.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12300 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -31.5,-47.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12301 + components: + - type: Transform + pos: -6.5,-33.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12302 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -10.5,-37.5 + parent: 2 + - uid: 12303 + components: + - type: Transform + pos: -12.5,-37.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12304 + components: + - type: Transform + pos: -12.5,-43.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12305 + components: + - type: Transform + pos: -12.5,-46.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12306 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -10.5,-35.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12307 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -11.5,-35.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12308 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -13.5,-35.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12309 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -14.5,-35.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12310 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -15.5,-35.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12311 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -15.5,-35.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12312 + components: + - type: Transform + pos: -12.5,-36.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12313 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -12.5,-45.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12314 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -12.5,-42.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12315 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -12.5,-39.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12316 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -15.5,-38.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12317 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -14.5,-38.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12318 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -13.5,-38.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12319 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -15.5,-41.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12320 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -13.5,-41.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12321 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -14.5,-41.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12322 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -15.5,-44.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12323 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -14.5,-44.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12324 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -13.5,-44.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12325 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -15.5,-47.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12326 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -14.5,-47.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12327 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -13.5,-47.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12328 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 30.5,-19.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12329 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 0.5,-27.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12330 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 0.5,-26.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12331 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 1.5,-25.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12332 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 2.5,-25.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12333 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 3.5,-25.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12334 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 4.5,-25.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12335 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 12.5,-25.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12336 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 11.5,-25.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12337 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 9.5,-25.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12338 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 7.5,-25.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12339 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 5.5,-25.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12340 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 14.5,-19.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12341 + components: + - type: Transform + pos: 30.5,-26.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12342 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 29.5,-25.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12343 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 28.5,-25.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12344 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 27.5,-25.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12345 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 8.5,-40.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 12346 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 24.5,-25.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12347 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 23.5,-25.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12348 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 21.5,-25.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12349 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 20.5,-25.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12350 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 18.5,-25.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12351 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 17.5,-25.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12352 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 16.5,-25.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12353 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 30.5,-20.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12354 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 30.5,-21.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12355 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 30.5,-22.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12356 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 30.5,-23.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12357 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 42.5,-10.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12358 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 42.5,-8.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12359 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 32.5,-25.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12360 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 33.5,-25.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12361 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 34.5,-25.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12362 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 35.5,-25.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12363 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 36.5,-25.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12364 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 37.5,-25.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12365 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 38.5,-26.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12366 + components: + - type: Transform + pos: 38.5,-24.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12367 + components: + - type: Transform + pos: 38.5,-22.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12368 + components: + - type: Transform + pos: 38.5,-21.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12369 + components: + - type: Transform + pos: 38.5,-20.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12370 + components: + - type: Transform + pos: 38.5,-18.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12371 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 38.5,-15.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 12372 + components: + - type: Transform + pos: 38.5,-16.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12373 + components: + - type: Transform + pos: 38.5,-15.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12374 + components: + - type: Transform + pos: 38.5,-14.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12375 + components: + - type: Transform + pos: 38.5,-13.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12376 + components: + - type: Transform + pos: 38.5,-12.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12377 + components: + - type: Transform + pos: 0.5,-24.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12378 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 38.5,-27.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12379 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 38.5,-28.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12380 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 38.5,-29.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12381 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 38.5,-30.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12382 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 38.5,-31.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12383 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 39.5,-32.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12384 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 42.5,-9.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12385 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 42.5,-7.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12386 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 42.5,-6.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12387 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 40.5,17.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12388 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 37.5,-11.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12389 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 36.5,-11.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12390 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 35.5,-11.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12391 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 0.5,-12.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12392 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 0.5,-11.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12393 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 4.5,-46.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12394 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 0.5,-9.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12395 + components: + - type: Transform + pos: 0.5,-20.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12396 + components: + - type: Transform + pos: 0.5,-21.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12397 + components: + - type: Transform + pos: 0.5,-22.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12398 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 0.5,-13.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12399 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 0.5,-10.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12400 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 0.5,-14.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12401 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 0.5,-15.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12402 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 0.5,-16.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12403 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 0.5,-17.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12404 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 0.5,-18.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12405 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 0.5,-0.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12406 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 0.5,-1.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12407 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 0.5,-2.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12408 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 0.5,-3.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12409 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 0.5,-4.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12410 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 0.5,-5.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12411 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 0.5,-6.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12412 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 0.5,-7.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12413 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 0.5,-8.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12414 + components: + - type: Transform + pos: 5.5,-43.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12415 + components: + - type: Transform + pos: 5.5,-44.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12416 + components: + - type: Transform + pos: 5.5,-42.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12417 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 3.5,-46.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12418 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 5.5,-45.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12419 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 2.5,-46.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12420 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 1.5,-46.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12421 + components: + - type: Transform + pos: 6.5,-48.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12422 + components: + - type: Transform + pos: 6.5,-47.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12423 + components: + - type: Transform + pos: 6.5,-49.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12424 + components: + - type: Transform + pos: 6.5,-51.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12425 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 5.5,-54.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12426 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 4.5,-54.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12427 + components: + - type: Transform + pos: 2.5,-55.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12428 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 1.5,-56.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12429 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 0.5,-56.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12430 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -0.5,-56.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12431 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -1.5,-56.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12432 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -2.5,-56.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12433 + components: + - type: Transform + pos: -21.5,-24.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 12434 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -5.5,-56.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12435 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -6.5,-56.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12436 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -8.5,-57.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12437 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -8.5,-57.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12438 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -9.5,-57.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12439 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -10.5,-57.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12440 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -11.5,-57.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12441 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 6.5,-56.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 12442 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 5.5,-56.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 12443 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 2.5,-57.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 12444 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 3.5,-57.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 12445 + components: + - type: Transform + pos: -4.5,-57.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12446 + components: + - type: Transform + pos: -3.5,-61.5 + parent: 2 + - uid: 12447 + components: + - type: Transform + pos: -4.5,-58.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12448 + components: + - type: Transform + pos: -4.5,-59.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12449 + components: + - type: Transform + pos: -4.5,-60.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12450 + components: + - type: Transform + pos: -5.5,-62.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12451 + components: + - type: Transform + pos: -5.5,-65.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12452 + components: + - type: Transform + pos: -5.5,-64.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12453 + components: + - type: Transform + pos: -5.5,-63.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12454 + components: + - type: Transform + pos: -5.5,-62.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12455 + components: + - type: Transform + pos: -5.5,-66.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12456 + components: + - type: Transform + pos: -5.5,-67.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12457 + components: + - type: Transform + pos: -5.5,-68.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12458 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -5.5,-70.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12459 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -5.5,-71.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12460 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -5.5,-72.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12461 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -5.5,-73.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12462 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -5.5,-74.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12463 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -5.5,-75.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12464 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -4.5,-76.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12465 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -3.5,-76.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12466 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -2.5,-76.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12467 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -1.5,-76.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12468 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -0.5,-76.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12469 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 0.5,-76.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12470 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 1.5,-76.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12471 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 2.5,-76.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12472 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 3.5,-76.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12473 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 4.5,-76.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12474 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 5.5,-76.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12475 + components: + - type: Transform + pos: 6.5,-75.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12476 + components: + - type: Transform + pos: 6.5,-65.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12477 + components: + - type: Transform + pos: 6.5,-71.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12478 + components: + - type: Transform + pos: 6.5,-72.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12479 + components: + - type: Transform + pos: 6.5,-73.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12480 + components: + - type: Transform + pos: 6.5,-74.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12481 + components: + - type: Transform + pos: 6.5,-70.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12482 + components: + - type: Transform + pos: 6.5,-66.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12483 + components: + - type: Transform + pos: 6.5,-67.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12484 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 6.5,-68.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12485 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 7.5,-64.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12486 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 8.5,-64.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12487 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 9.5,-64.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12488 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 10.5,-64.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12489 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 11.5,-64.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12490 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 7.5,-56.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 12491 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 14.5,-18.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12492 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 14.5,-17.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12493 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 14.5,-16.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12494 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 14.5,-20.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12495 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 14.5,-21.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12496 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 14.5,-22.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12497 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 14.5,-23.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12498 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 14.5,-12.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12499 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 14.5,-13.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12500 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 14.5,-14.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12501 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 15.5,-11.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12502 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 15.5,-11.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12503 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 16.5,-11.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12504 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 10.5,-25.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12505 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 44.5,-32.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12506 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 43.5,-32.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12507 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 42.5,-32.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12508 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 41.5,-32.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12509 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 45.5,-32.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12510 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -3.5,-56.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12511 + components: + - type: Transform + pos: -21.5,-23.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 12512 + components: + - type: Transform + pos: -23.5,-23.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12513 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -22.5,-26.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 12514 + components: + - type: Transform + pos: -23.5,-24.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12515 + components: + - type: Transform + pos: -23.5,-25.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12516 + components: + - type: Transform + pos: -23.5,-26.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12517 + components: + - type: Transform + pos: -23.5,-27.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12518 + components: + - type: Transform + pos: -21.5,-25.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 12519 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 1.5,59.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12520 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -30.5,-24.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12521 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -30.5,-25.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12522 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -25.5,-26.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 12523 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -24.5,-26.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 12524 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -23.5,-26.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 12525 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -31.5,-23.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12526 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -32.5,-23.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12527 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -33.5,-23.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12528 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -34.5,-11.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12529 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -34.5,-13.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12530 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -34.5,-14.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12531 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -34.5,-15.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12532 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -34.5,-16.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12533 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -34.5,-17.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12534 + components: + - type: Transform + pos: -34.5,-19.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12535 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -37.5,-14.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12536 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -34.5,-21.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12537 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -34.5,-22.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12538 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -34.5,-6.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12539 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -34.5,-7.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12540 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -34.5,-8.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12541 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -34.5,-9.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12542 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -34.5,-10.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12543 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -37.5,-12.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12544 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -36.5,8.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12545 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -34.5,-20.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12546 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -37.5,-13.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12547 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -36.5,-10.5 + parent: 2 + - type: AtmosPipeColor + color: '#031CFCFF' + - uid: 12548 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -36.5,-11.5 + parent: 2 + - type: AtmosPipeColor + color: '#031CFCFF' + - uid: 12549 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -36.5,-12.5 + parent: 2 + - type: AtmosPipeColor + color: '#031CFCFF' + - uid: 12550 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -36.5,-13.5 + parent: 2 + - type: AtmosPipeColor + color: '#031CFCFF' + - uid: 12551 + components: + - type: Transform + pos: -32.5,-0.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 12552 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -37.5,-16.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12553 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -37.5,-15.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12554 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -37.5,-8.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12555 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -37.5,-10.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12556 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -37.5,-9.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12557 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -37.5,2.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12558 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -37.5,-7.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12559 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -37.5,-6.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12560 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -37.5,1.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12561 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -37.5,-0.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12562 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -37.5,-1.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12563 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -37.5,-2.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12564 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -37.5,-3.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12565 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -37.5,-4.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12566 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -37.5,-5.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12567 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -37.5,7.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12568 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -37.5,6.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12569 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -37.5,5.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12570 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -37.5,4.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12571 + components: + - type: Transform + pos: -34.5,-2.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12572 + components: + - type: Transform + pos: -34.5,-3.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12573 + components: + - type: Transform + pos: -34.5,-4.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12574 + components: + - type: Transform + pos: -34.5,-1.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12575 + components: + - type: Transform + pos: -34.5,-1.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12576 + components: + - type: Transform + pos: -34.5,-0.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12577 + components: + - type: Transform + pos: -34.5,0.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12578 + components: + - type: Transform + pos: -34.5,2.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12579 + components: + - type: Transform + pos: -34.5,3.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12580 + components: + - type: Transform + pos: -34.5,4.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12581 + components: + - type: Transform + pos: -34.5,6.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12582 + components: + - type: Transform + pos: -34.5,7.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12583 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -34.5,9.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12584 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -35.5,8.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12585 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -34.5,14.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12586 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -34.5,10.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12587 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -34.5,11.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12588 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -34.5,12.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12589 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -34.5,13.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12590 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -34.5,13.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12591 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -33.5,1.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12592 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -23.5,1.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12593 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -24.5,1.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12594 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -25.5,1.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12595 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -26.5,1.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12596 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -27.5,1.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12597 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -28.5,1.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12598 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -29.5,1.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12599 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -31.5,1.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12600 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -32.5,1.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12601 + components: + - type: Transform + pos: 0.5,0.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12602 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -21.5,1.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12603 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -20.5,1.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12604 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -19.5,1.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12605 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -18.5,1.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12606 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -17.5,1.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12607 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -16.5,1.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12608 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -15.5,1.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12609 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -14.5,1.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12610 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -13.5,1.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12611 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -12.5,1.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12612 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -11.5,1.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12613 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -10.5,1.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12614 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -8.5,1.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12615 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -7.5,1.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12616 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -6.5,1.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12617 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -5.5,1.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12618 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -4.5,1.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12619 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -3.5,1.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12620 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -2.5,1.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12621 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -1.5,1.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12622 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -0.5,1.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12623 + components: + - type: Transform + pos: -30.5,-0.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12624 + components: + - type: Transform + pos: -30.5,0.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12625 + components: + - type: Transform + pos: -30.5,-1.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12626 + components: + - type: Transform + pos: -30.5,-2.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12627 + components: + - type: Transform + pos: -30.5,-3.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12628 + components: + - type: Transform + pos: -30.5,-4.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12629 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 8.5,1.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12630 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 7.5,1.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12631 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 6.5,1.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12632 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 5.5,1.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12633 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 4.5,1.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12634 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 3.5,1.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12635 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 2.5,1.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12636 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 1.5,1.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12637 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 1.5,1.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12638 + components: + - type: Transform + pos: 0.5,16.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12639 + components: + - type: Transform + pos: 0.5,14.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12640 + components: + - type: Transform + pos: 0.5,13.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12641 + components: + - type: Transform + pos: 0.5,12.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12642 + components: + - type: Transform + pos: 0.5,11.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12643 + components: + - type: Transform + pos: 0.5,10.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12644 + components: + - type: Transform + pos: 0.5,9.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12645 + components: + - type: Transform + pos: 0.5,8.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12646 + components: + - type: Transform + pos: 0.5,7.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12647 + components: + - type: Transform + pos: 0.5,6.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12648 + components: + - type: Transform + pos: 0.5,5.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12649 + components: + - type: Transform + pos: 0.5,4.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12650 + components: + - type: Transform + pos: 0.5,3.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12651 + components: + - type: Transform + pos: 0.5,2.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12652 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -9.5,18.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12653 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -8.5,18.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12654 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -7.5,18.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12655 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -6.5,18.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12656 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -5.5,18.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12657 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -4.5,18.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12658 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -3.5,18.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12659 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -2.5,18.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12660 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -1.5,18.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12661 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -0.5,18.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12662 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -15.5,18.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12663 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -14.5,18.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12664 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -13.5,18.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12665 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -11.5,18.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12666 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -10.5,18.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12667 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -17.5,18.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12668 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -18.5,18.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12669 + components: + - type: Transform + pos: -16.5,26.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12670 + components: + - type: Transform + pos: -16.5,25.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12671 + components: + - type: Transform + pos: -16.5,24.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12672 + components: + - type: Transform + pos: -16.5,23.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12673 + components: + - type: Transform + pos: -16.5,22.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12674 + components: + - type: Transform + pos: -16.5,21.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12675 + components: + - type: Transform + pos: -16.5,20.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12676 + components: + - type: Transform + pos: -16.5,19.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12677 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -30.5,5.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12678 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -31.5,5.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12679 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -32.5,5.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12680 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -33.5,5.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12681 + components: + - type: Transform + pos: 32.5,33.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12682 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -3.5,27.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12683 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -4.5,27.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12684 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -5.5,27.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12685 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -6.5,27.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12686 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -7.5,27.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12687 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -10.5,27.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12688 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -12.5,27.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12689 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -13.5,27.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12690 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -14.5,27.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12691 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -15.5,27.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12692 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -2.5,28.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12693 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -2.5,29.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12694 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -2.5,30.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12695 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -2.5,31.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12696 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -2.5,32.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12697 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -2.5,33.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12698 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -2.5,34.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12699 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -2.5,35.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12700 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -2.5,36.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12701 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -24.5,41.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12702 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -16.5,31.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12703 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -16.5,30.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12704 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -16.5,29.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12705 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -16.5,28.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12706 + components: + - type: Transform + pos: -24.5,43.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12707 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -17.5,35.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12708 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -17.5,36.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12709 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -17.5,37.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12710 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -17.5,38.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12711 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -17.5,27.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12712 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -22.5,27.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12713 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -21.5,27.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12714 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -20.5,27.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12715 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -18.5,27.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12716 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -26.5,28.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12717 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -25.5,28.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12718 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -27.5,28.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12719 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -28.5,28.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12720 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -29.5,28.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12721 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -31.5,28.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12722 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -32.5,28.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12723 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -33.5,28.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12724 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -34.5,28.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12725 + components: + - type: Transform + pos: -35.5,27.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12726 + components: + - type: Transform + pos: -35.5,25.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12727 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -35.5,24.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12728 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -34.5,23.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12729 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -33.5,23.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12730 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -32.5,23.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12731 + components: + - type: Transform + pos: 0.5,35.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12732 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -0.5,37.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12733 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -36.5,28.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12734 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -38.5,28.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12735 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -39.5,28.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12736 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -40.5,28.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12737 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -41.5,29.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12738 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -41.5,30.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12739 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -41.5,32.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12740 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -41.5,31.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12741 + components: + - type: Transform + pos: -39.5,31.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 12742 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -38.5,33.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 12743 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -37.5,32.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 12744 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -1.5,37.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12745 + components: + - type: Transform + pos: -24.5,29.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12746 + components: + - type: Transform + pos: -24.5,30.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12747 + components: + - type: Transform + pos: -24.5,31.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12748 + components: + - type: Transform + pos: -24.5,32.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12749 + components: + - type: Transform + pos: -24.5,33.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12750 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -25.5,34.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12751 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -26.5,34.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12752 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -27.5,34.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12753 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -24.5,35.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12754 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -24.5,36.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12755 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -24.5,37.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12756 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -24.5,38.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12757 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -24.5,38.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12758 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -24.5,37.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12759 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -24.5,40.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12760 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -24.5,38.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12761 + components: + - type: Transform + pos: 0.5,36.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12762 + components: + - type: Transform + pos: 0.5,24.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12763 + components: + - type: Transform + pos: 0.5,23.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12764 + components: + - type: Transform + pos: 0.5,22.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12765 + components: + - type: Transform + pos: 0.5,21.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12766 + components: + - type: Transform + pos: 0.5,20.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12767 + components: + - type: Transform + pos: 0.5,19.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12768 + components: + - type: Transform + pos: 0.5,33.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12769 + components: + - type: Transform + pos: 0.5,32.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12770 + components: + - type: Transform + pos: 0.5,31.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12771 + components: + - type: Transform + pos: 0.5,30.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12772 + components: + - type: Transform + pos: 0.5,28.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12773 + components: + - type: Transform + pos: 0.5,27.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12774 + components: + - type: Transform + pos: 0.5,26.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12775 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 0.5,39.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12776 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 0.5,38.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12777 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 0.5,58.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12778 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 0.5,57.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12779 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 0.5,56.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12780 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 0.5,55.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12781 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 0.5,54.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12782 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 0.5,52.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12783 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 0.5,51.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12784 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 0.5,50.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12785 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 0.5,49.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12786 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 0.5,48.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12787 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 0.5,47.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12788 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 0.5,45.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12789 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 0.5,44.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12790 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 0.5,43.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12791 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 0.5,42.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12792 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 0.5,41.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12793 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 0.5,40.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12794 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 0.5,58.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 12795 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -0.5,59.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12796 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -1.5,59.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12797 + components: + - type: Transform + pos: -2.5,58.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12798 + components: + - type: Transform + pos: -2.5,57.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12799 + components: + - type: Transform + pos: -2.5,56.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12800 + components: + - type: Transform + pos: -2.5,55.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12801 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -3.5,54.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12802 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -4.5,54.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12803 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -4.5,54.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12804 + components: + - type: Transform + pos: -6.5,53.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12805 + components: + - type: Transform + pos: -6.5,52.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12806 + components: + - type: Transform + pos: -6.5,51.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12807 + components: + - type: Transform + pos: -6.5,50.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12808 + components: + - type: Transform + pos: -6.5,49.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12809 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 2.5,59.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12810 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 3.5,59.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12811 + components: + - type: Transform + pos: 4.5,58.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12812 + components: + - type: Transform + pos: 4.5,57.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12813 + components: + - type: Transform + pos: 4.5,56.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12814 + components: + - type: Transform + pos: 4.5,55.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12815 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 7.5,51.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12816 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 1.5,34.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12817 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 2.5,34.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12818 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 1.5,31.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 12819 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 1.5,32.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 12820 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 1.5,33.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 12821 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 1.5,34.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 12822 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 2.5,35.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 12823 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 7.5,36.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12824 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 7.5,35.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12825 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 7.5,39.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12826 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 7.5,50.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12827 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 6.5,52.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12828 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 5.5,52.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12829 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 7.5,49.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12830 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 7.5,50.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12831 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 5.5,54.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12832 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 1.5,53.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12833 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 2.5,53.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12834 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 3.5,53.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12835 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 1.5,25.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12836 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 2.5,25.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12837 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 3.5,25.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12838 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 4.5,25.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12839 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 2.5,26.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 12840 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 3.5,26.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 12841 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 4.5,26.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 12842 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 27.5,1.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12843 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 1.5,17.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12844 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 2.5,17.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12845 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 3.5,17.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12846 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 4.5,17.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12847 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 26.5,1.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12848 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 25.5,1.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12849 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 24.5,1.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12850 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 23.5,1.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12851 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 21.5,1.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12852 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 20.5,1.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12853 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 19.5,1.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12854 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 18.5,1.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12855 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 17.5,1.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12856 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 16.5,1.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12857 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 15.5,1.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12858 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 14.5,1.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12859 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 13.5,1.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12860 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 12.5,1.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12861 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 28.5,2.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12862 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 28.5,3.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12863 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 28.5,4.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12864 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 28.5,5.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12865 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 25.5,6.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12866 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 27.5,6.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12867 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 26.5,6.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12868 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 24.5,6.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12869 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 22.5,6.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12870 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 23.5,6.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12871 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 21.5,6.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12872 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 19.5,6.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12873 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 18.5,6.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12874 + components: + - type: Transform + pos: 28.5,7.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12875 + components: + - type: Transform + pos: 28.5,8.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12876 + components: + - type: Transform + pos: 28.5,9.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12877 + components: + - type: Transform + pos: 28.5,11.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12878 + components: + - type: Transform + pos: 28.5,12.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12879 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 27.5,13.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12880 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 25.5,13.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12881 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 26.5,13.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12882 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 24.5,13.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12883 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 23.5,13.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12884 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 22.5,15.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12886 + components: + - type: Transform + pos: 21.5,17.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12887 + components: + - type: Transform + pos: 21.5,18.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12888 + components: + - type: Transform + pos: 21.5,19.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12889 + components: + - type: Transform + pos: 21.5,20.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12890 + components: + - type: Transform + pos: 21.5,21.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12891 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 29.5,6.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12892 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 30.5,6.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12893 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 31.5,6.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12894 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 32.5,6.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12895 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 33.5,6.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12896 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 34.5,6.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12897 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 35.5,6.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12898 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 36.5,6.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12899 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 37.5,6.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12900 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 38.5,6.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12901 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 39.5,6.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12902 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 40.5,6.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12903 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 41.5,6.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12904 + components: + - type: Transform + pos: 28.5,14.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12905 + components: + - type: Transform + pos: 28.5,16.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12906 + components: + - type: Transform + pos: 28.5,17.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12907 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 28.5,20.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12908 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 28.5,19.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12909 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 29.5,15.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12910 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 30.5,15.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12911 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 31.5,15.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12912 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 34.5,15.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12913 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 33.5,15.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12914 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 28.5,21.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12915 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 28.5,22.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12916 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 28.5,23.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12917 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 28.5,24.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12918 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 28.5,26.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12919 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 31.5,27.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12920 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 29.5,27.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12921 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 30.5,27.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12922 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 32.5,27.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12923 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 33.5,27.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12924 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 34.5,27.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12925 + components: + - type: Transform + pos: 28.5,28.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12926 + components: + - type: Transform + pos: 28.5,29.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12927 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 27.5,30.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12928 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 26.5,30.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12929 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 25.5,30.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12930 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 24.5,30.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12931 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 23.5,30.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12932 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 22.5,30.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12933 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 20.5,30.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12934 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 0.5,-57.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 12935 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 19.5,31.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12936 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 19.5,32.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12937 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 19.5,33.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12938 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 19.5,34.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12939 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 19.5,34.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12940 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 19.5,35.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12941 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 19.5,36.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12942 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 19.5,37.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12943 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 18.5,38.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12944 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 17.5,38.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12945 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 16.5,38.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12946 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 15.5,38.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12947 + components: + - type: Transform + pos: 19.5,39.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12948 + components: + - type: Transform + pos: 19.5,40.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12949 + components: + - type: Transform + pos: 19.5,41.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12950 + components: + - type: Transform + pos: 19.5,42.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12951 + components: + - type: Transform + pos: 19.5,43.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12952 + components: + - type: Transform + pos: 19.5,44.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12953 + components: + - type: Transform + pos: 28.5,31.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12954 + components: + - type: Transform + pos: 28.5,32.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12955 + components: + - type: Transform + pos: 28.5,33.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12956 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 30.5,34.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12957 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 31.5,34.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12958 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 29.5,34.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12959 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 27.5,35.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12960 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 27.5,36.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 12961 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 28.5,36.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12962 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 28.5,37.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12963 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 27.5,38.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12964 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 26.5,38.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12965 + components: + - type: Transform + pos: 14.5,39.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12966 + components: + - type: Transform + pos: 14.5,41.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12967 + components: + - type: Transform + pos: 14.5,42.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12968 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 35.5,27.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12969 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 37.5,27.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12970 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 38.5,27.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12971 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 39.5,27.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12972 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 41.5,27.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12973 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 42.5,27.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12974 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 43.5,27.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12975 + components: + - type: Transform + pos: 44.5,29.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12976 + components: + - type: Transform + pos: 44.5,29.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12977 + components: + - type: Transform + pos: 44.5,30.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12978 + components: + - type: Transform + pos: 44.5,31.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12979 + components: + - type: Transform + pos: 44.5,32.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12980 + components: + - type: Transform + pos: 44.5,33.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12981 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 44.5,36.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12982 + components: + - type: Transform + pos: 44.5,34.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12983 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 44.5,35.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12984 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 44.5,37.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12985 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 44.5,38.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12986 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 43.5,39.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12987 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 41.5,39.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12988 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 42.5,39.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12989 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 41.5,39.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12990 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 40.5,40.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12991 + components: + - type: Transform + pos: 44.5,40.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12992 + components: + - type: Transform + pos: 44.5,41.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12993 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 36.5,26.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12994 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 36.5,25.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12995 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 36.5,24.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12996 + components: + - type: Transform + pos: -24.5,42.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12997 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 37.5,16.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12998 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 42.5,10.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 12999 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 20.5,7.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 13000 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 20.5,8.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 13001 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 20.5,9.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 13002 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 20.5,10.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 13003 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 20.5,11.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 13004 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 20.5,11.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 13005 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 20.5,12.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 13006 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 33.5,15.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 13007 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 35.5,15.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 13008 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 43.5,-5.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13009 + components: + - type: Transform + pos: 32.5,-8.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 13010 + components: + - type: Transform + pos: 32.5,-9.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 13011 + components: + - type: Transform + pos: 32.5,-10.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 13012 + components: + - type: Transform + pos: 32.5,-7.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 13013 + components: + - type: Transform + pos: 32.5,-5.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 13014 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 33.5,-4.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 13015 + components: + - type: Transform + pos: 32.5,-6.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 13016 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 34.5,-2.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 13017 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 34.5,-3.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 13018 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 34.5,-1.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 13019 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 34.5,-0.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 13020 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 34.5,0.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 13021 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 33.5,1.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 13022 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 32.5,1.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 13023 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 31.5,1.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 13024 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 30.5,1.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 13025 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 29.5,1.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 13026 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 39.5,-11.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 13027 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 40.5,-11.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 13028 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 41.5,-11.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 13029 + components: + - type: Transform + pos: 30.5,1.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13030 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 9.5,6.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 13031 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 9.5,6.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 13032 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 9.5,5.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 13033 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 9.5,1.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 13034 + components: + - type: Transform + pos: 10.5,3.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 13035 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 9.5,7.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 13036 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 9.5,7.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 13037 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 9.5,8.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 13038 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 9.5,8.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 13039 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 9.5,9.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 13040 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 9.5,10.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 13041 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 9.5,10.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 13042 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 9.5,11.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 13043 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 9.5,12.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 13044 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 9.5,12.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 13045 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -12.5,17.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 13046 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -12.5,16.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 13047 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -12.5,15.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 13048 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -28.5,6.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 13049 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -27.5,6.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 13050 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -26.5,6.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 13051 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -25.5,6.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 13052 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 1.5,-57.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13053 + components: + - type: Transform + pos: 6.5,-26.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 13054 + components: + - type: Transform + pos: 6.5,-27.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 13055 + components: + - type: Transform + pos: 6.5,-28.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 13056 + components: + - type: Transform + pos: 6.5,-29.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 13057 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 19.5,-24.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 13058 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 19.5,-23.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 13059 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 19.5,-22.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 13060 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 19.5,-21.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 13061 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 19.5,-20.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 13062 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 26.5,-24.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 13063 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 26.5,-22.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 13064 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 26.5,-23.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 13065 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 26.5,-21.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 13066 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 26.5,-20.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 13067 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 26.5,-19.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 13068 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 38.5,-23.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 13069 + components: + - type: Transform + pos: 43.5,-12.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 13070 + components: + - type: Transform + pos: 43.5,-13.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 13071 + components: + - type: Transform + pos: 43.5,-14.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 13072 + components: + - type: Transform + pos: 43.5,-15.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 13073 + components: + - type: Transform + pos: 43.5,-16.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 13074 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 39.5,-25.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 13075 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 40.5,-25.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 13076 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 42.5,-25.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 13077 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 43.5,-25.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 13078 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 42.5,-25.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 13079 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 41.5,-25.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 13080 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 43.5,-25.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 13081 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 44.5,-25.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 13082 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 19.5,-26.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 13083 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 19.5,-27.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 13084 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 19.5,-28.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 13085 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 19.5,-29.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 13086 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 19.5,-30.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 13087 + components: + - type: Transform + pos: 25.5,-26.5 + parent: 2 + - uid: 13088 + components: + - type: Transform + pos: 6.5,-41.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13089 + components: + - type: Transform + pos: 6.5,-42.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13090 + components: + - type: Transform + pos: 6.5,-43.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13091 + components: + - type: Transform + pos: 6.5,-44.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13092 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 6.5,-52.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 13093 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 10.5,-51.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13094 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 9.5,-51.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13095 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 5.5,-45.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13096 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 4.5,-45.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13097 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 3.5,-45.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13098 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 2.5,-45.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13099 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 1.5,-45.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13100 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 11.5,-51.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13101 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 7.5,-45.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13102 + components: + - type: Transform + pos: 8.5,-46.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13103 + components: + - type: Transform + pos: 8.5,-47.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13104 + components: + - type: Transform + pos: 8.5,-48.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13105 + components: + - type: Transform + pos: 8.5,-49.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13106 + components: + - type: Transform + pos: 8.5,-50.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13107 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 10.5,-52.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 13108 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 11.5,-52.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 13109 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 25.5,-25.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 13110 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 7.5,-53.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 13111 + components: + - type: Transform + pos: 30.5,-27.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 13112 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 8.5,-52.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13113 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 8.5,-53.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13114 + components: + - type: Transform + pos: 30.5,-28.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 13115 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 8.5,-54.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13116 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 30.5,-30.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 13117 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 28.5,-31.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 13118 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 38.5,17.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 13119 + components: + - type: Transform + pos: 42.5,9.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 13120 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 34.5,15.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 13121 + components: + - type: Transform + pos: 42.5,12.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 13122 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 36.5,15.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 13123 + components: + - type: Transform + pos: 42.5,13.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 13124 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 34.5,14.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 13125 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 41.5,17.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 13126 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 33.5,14.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 13127 + components: + - type: Transform + pos: 42.5,8.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 13128 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -1.5,-57.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13129 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -0.5,-57.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13130 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -2.5,-56.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13131 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -3.5,-57.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13132 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -4.5,-57.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13133 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -5.5,-57.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13134 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -7.5,-58.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13135 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -8.5,-58.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13136 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -9.5,-58.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13137 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -10.5,-58.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13138 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -11.5,-58.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13139 + components: + - type: Transform + pos: -2.5,-58.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13140 + components: + - type: Transform + pos: -2.5,-59.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13141 + components: + - type: Transform + pos: -2.5,-60.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13142 + components: + - type: Transform + pos: -2.5,-61.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13143 + components: + - type: Transform + pos: -2.5,-62.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13144 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -3.5,-63.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13145 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -4.5,-63.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13146 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -5.5,-63.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13147 + components: + - type: Transform + pos: -6.5,-64.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13148 + components: + - type: Transform + pos: -6.5,-65.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13149 + components: + - type: Transform + pos: -6.5,-66.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13150 + components: + - type: Transform + pos: -6.5,-67.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13151 + components: + - type: Transform + pos: -6.5,-68.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13152 + components: + - type: Transform + pos: -6.5,-69.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13153 + components: + - type: Transform + pos: -6.5,-70.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13154 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -5.5,-72.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13155 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -4.5,-72.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13156 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -3.5,-72.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13157 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -2.5,-72.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13158 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -1.5,-72.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13159 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -0.5,-72.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13160 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 0.5,-72.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13161 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 1.5,-72.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13162 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 2.5,-72.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13163 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 3.5,-72.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13164 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 4.5,-72.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13165 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 5.5,-72.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13166 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 6.5,-72.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13167 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 7.5,-71.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13168 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 7.5,-70.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13169 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 7.5,-69.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13170 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 7.5,-68.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13171 + components: + - type: Transform + pos: 7.5,-66.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13172 + components: + - type: Transform + pos: 7.5,-65.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13173 + components: + - type: Transform + pos: 7.5,-64.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13174 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 8.5,-63.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13175 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 9.5,-63.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13176 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 10.5,-63.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13177 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 11.5,-63.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13178 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 8.5,-55.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13179 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 4.5,-55.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13180 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 5.5,-40.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13181 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 4.5,-40.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13182 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 3.5,-40.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13183 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 2.5,-40.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13184 + components: + - type: Transform + pos: 1.5,-34.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13185 + components: + - type: Transform + pos: 1.5,-33.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13186 + components: + - type: Transform + pos: 1.5,-32.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13187 + components: + - type: Transform + pos: 1.5,-31.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13188 + components: + - type: Transform + pos: 1.5,-30.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13189 + components: + - type: Transform + pos: 1.5,-29.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13190 + components: + - type: Transform + pos: 1.5,-28.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13191 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 1.5,-27.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13192 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 1.5,-25.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13193 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 1.5,-24.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13194 + components: + - type: Transform + pos: 1.5,-22.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13195 + components: + - type: Transform + pos: 1.5,-20.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13196 + components: + - type: Transform + pos: 1.5,-18.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13197 + components: + - type: Transform + pos: 1.5,-17.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13198 + components: + - type: Transform + pos: 1.5,-16.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13199 + components: + - type: Transform + pos: 1.5,-15.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13200 + components: + - type: Transform + pos: 1.5,-14.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13201 + components: + - type: Transform + pos: 1.5,-13.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13202 + components: + - type: Transform + pos: 1.5,-12.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13203 + components: + - type: Transform + pos: 1.5,-11.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13204 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 0.5,-21.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13205 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -0.5,-21.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13206 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -1.5,-21.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13207 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -2.5,-21.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13208 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -3.5,-21.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13209 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -0.5,-23.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 13210 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -1.5,-23.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 13211 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -2.5,-23.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 13212 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -3.5,-23.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 13213 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 0.5,-26.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13214 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -0.5,-26.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13215 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -1.5,-26.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13216 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -2.5,-26.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13217 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -3.5,-26.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13218 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -4.5,-26.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13219 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -5.5,-26.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13220 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 2.5,-23.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13221 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 3.5,-23.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13222 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 4.5,-23.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13223 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 5.5,-23.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13224 + components: + - type: Transform + pos: 7.5,-24.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13225 + components: + - type: Transform + pos: 7.5,-25.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13226 + components: + - type: Transform + pos: 7.5,-26.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13227 + components: + - type: Transform + pos: 7.5,-27.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13228 + components: + - type: Transform + pos: 7.5,-28.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13229 + components: + - type: Transform + pos: 7.5,-29.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13230 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 8.5,-23.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13231 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 9.5,-23.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13232 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 10.5,-23.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13233 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 11.5,-23.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13234 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 12.5,-21.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13235 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 12.5,-20.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13236 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 12.5,-19.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13237 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 12.5,-18.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13238 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 12.5,-17.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13239 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 12.5,-16.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13240 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 12.5,-15.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13241 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 14.5,-14.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13242 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 13.5,-13.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13243 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 13.5,-12.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13244 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 13.5,-11.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13245 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 13.5,-10.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13246 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 14.5,-9.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13247 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 15.5,-9.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13248 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 16.5,-9.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13249 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 13.5,-23.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13250 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 14.5,-23.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13251 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 15.5,-23.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13252 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 16.5,-23.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13253 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 18.5,-23.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13254 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 17.5,-22.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13255 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 17.5,-21.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13256 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 17.5,-20.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13257 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 19.5,-23.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13258 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 20.5,-23.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13259 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 17.5,-24.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13260 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 17.5,-25.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13261 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 17.5,-26.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13262 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 17.5,-27.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13263 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 17.5,-28.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13264 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 17.5,-29.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13265 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 17.5,-30.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13266 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 22.5,-23.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13267 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 23.5,-23.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13268 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 24.5,-23.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13269 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 25.5,-22.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13270 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 25.5,-21.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13271 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 25.5,-20.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13272 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 24.5,-19.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13273 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 26.5,-23.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13274 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 27.5,-23.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13275 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 29.5,-23.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13276 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 30.5,-23.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13277 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 32.5,-22.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13278 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 32.5,-21.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13279 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 32.5,-20.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13280 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 32.5,-19.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13281 + components: + - type: Transform + pos: 31.5,-24.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13282 + components: + - type: Transform + pos: 31.5,-25.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13283 + components: + - type: Transform + pos: 31.5,-26.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13284 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 33.5,-23.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13285 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 34.5,-23.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13286 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 35.5,-23.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13287 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 36.5,-22.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13288 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 36.5,-21.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13289 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 36.5,-20.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13290 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 36.5,-19.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13291 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 37.5,-23.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13292 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 38.5,-23.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13293 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 39.5,-23.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13294 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 40.5,-24.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13295 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 40.5,-25.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13296 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 40.5,-26.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13297 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 40.5,-27.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13298 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 40.5,-28.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13299 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 42.5,-30.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13300 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 43.5,-30.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13301 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 44.5,-30.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13302 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 45.5,-30.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13303 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 41.5,-23.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13304 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 42.5,-23.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13305 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 43.5,-23.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13306 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 44.5,-23.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13307 + components: + - type: Transform + pos: 36.5,-17.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13308 + components: + - type: Transform + pos: 32.5,-26.5 + parent: 2 + - type: AtmosPipeColor + color: '#FC1303FF' + - uid: 13309 + components: + - type: Transform + pos: 32.5,-28.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13310 + components: + - type: Transform + pos: 32.5,-29.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13311 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 31.5,-30.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13312 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 30.5,-30.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13313 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 29.5,-30.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13314 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 28.5,-30.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13315 + components: + - type: Transform + pos: 36.5,-16.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13316 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 37.5,-15.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13317 + components: + - type: Transform + pos: 36.5,-14.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13318 + components: + - type: Transform + pos: 36.5,-13.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13319 + components: + - type: Transform + pos: 36.5,-12.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13320 + components: + - type: Transform + pos: 36.5,-11.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13321 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 39.5,-10.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13322 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 40.5,-10.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13323 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 41.5,-10.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13324 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 34.5,-11.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 13325 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 38.5,-10.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13326 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 37.5,-10.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13327 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 43.5,-6.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13328 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 43.5,-7.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13329 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 43.5,-8.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13330 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 43.5,-9.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13331 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 42.5,-4.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13332 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 40.5,-4.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13333 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 39.5,-4.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13334 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 38.5,-4.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13335 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 37.5,-4.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13336 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 36.5,-4.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13337 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 35.5,-3.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13338 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 35.5,-2.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13339 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 35.5,-1.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13340 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 35.5,-0.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13341 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 34.5,0.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13342 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 33.5,0.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13343 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 32.5,0.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13344 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 31.5,0.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13345 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 28.5,0.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 13346 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 28.5,-0.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 13347 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 28.5,-1.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 13348 + components: + - type: Transform + pos: 29.5,-0.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13349 + components: + - type: Transform + pos: 29.5,-1.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13350 + components: + - type: Transform + pos: 29.5,-2.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13351 + components: + - type: Transform + pos: 28.5,-2.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 13352 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 28.5,0.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13353 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 27.5,0.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13354 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 26.5,0.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13355 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 25.5,0.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13356 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 24.5,0.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13357 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 23.5,0.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13358 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 21.5,0.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13359 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 20.5,0.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13360 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 19.5,0.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13361 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 18.5,0.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13362 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 17.5,0.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13363 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 16.5,0.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13364 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 15.5,0.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13365 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 14.5,0.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13366 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 13.5,0.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13367 + components: + - type: Transform + pos: 30.5,2.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13368 + components: + - type: Transform + pos: 30.5,3.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13369 + components: + - type: Transform + pos: 30.5,4.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13370 + components: + - type: Transform + pos: 30.5,5.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13371 + components: + - type: Transform + pos: 30.5,6.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13372 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 29.5,7.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13373 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 28.5,7.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13374 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 27.5,7.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13375 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 26.5,7.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13376 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 25.5,7.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13377 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 24.5,7.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13378 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 23.5,7.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13379 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 22.5,7.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13380 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 20.5,7.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13381 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 19.5,7.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13382 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 18.5,7.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13383 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 21.5,8.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13384 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 21.5,9.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13385 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 21.5,10.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13386 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 21.5,11.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13387 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 21.5,12.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13388 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 21.5,13.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13389 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 20.5,14.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13390 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 31.5,8.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13391 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 32.5,8.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13392 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 33.5,8.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13393 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 34.5,8.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13394 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 35.5,8.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13395 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 36.5,8.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13396 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 37.5,8.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13397 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 38.5,8.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13398 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 39.5,8.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13399 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 41.5,8.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13400 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 41.5,10.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13401 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 41.5,11.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13402 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 41.5,12.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13403 + components: + - type: Transform + pos: 42.5,11.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 13404 + components: + - type: Transform + pos: 30.5,10.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13405 + components: + - type: Transform + pos: 30.5,11.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13406 + components: + - type: Transform + pos: 30.5,12.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13407 + components: + - type: Transform + pos: 30.5,13.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13408 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 29.5,14.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13409 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 28.5,14.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13410 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 27.5,14.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13411 + components: + - type: Transform + pos: 26.5,15.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13412 + components: + - type: Transform + pos: 26.5,16.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13413 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 25.5,17.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13414 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 24.5,17.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13415 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 23.5,17.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13416 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 21.5,17.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13417 + components: + - type: Transform + pos: 22.5,18.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13418 + components: + - type: Transform + pos: 22.5,19.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13419 + components: + - type: Transform + pos: 22.5,20.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13420 + components: + - type: Transform + pos: 22.5,21.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13421 + components: + - type: Transform + pos: 30.5,15.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13422 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 31.5,16.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13423 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 32.5,16.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13424 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 34.5,17.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13425 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 37.5,18.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13426 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 38.5,18.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13427 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 39.5,18.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13428 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 40.5,18.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13429 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 30.5,18.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13430 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 30.5,19.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13431 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 30.5,20.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13432 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 30.5,21.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13433 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 30.5,22.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13434 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 30.5,23.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13435 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 30.5,24.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13436 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 30.5,25.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13437 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 30.5,27.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13438 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 30.5,28.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13439 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 31.5,29.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13440 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 32.5,29.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13441 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 33.5,29.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13442 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 34.5,29.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13443 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 35.5,29.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13444 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 36.5,29.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13445 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 37.5,29.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13446 + components: + - type: Transform + pos: 38.5,28.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13447 + components: + - type: Transform + pos: 38.5,27.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13448 + components: + - type: Transform + pos: 38.5,26.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13449 + components: + - type: Transform + pos: 38.5,25.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13450 + components: + - type: Transform + pos: 38.5,24.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13451 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 39.5,29.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13452 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 40.5,29.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13453 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 41.5,29.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13454 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 42.5,30.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13455 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 42.5,31.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13456 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 42.5,32.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13457 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 42.5,33.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13458 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 42.5,34.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13459 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 42.5,35.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13460 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 42.5,36.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13461 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 42.5,37.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13462 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 42.5,39.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13463 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 42.5,40.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13464 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 41.5,38.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13465 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 40.5,38.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13466 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 39.5,39.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13467 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 39.5,40.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13468 + components: + - type: Transform + pos: 30.5,30.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13469 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 30.5,33.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13470 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 30.5,34.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13471 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 29.5,36.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13472 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 28.5,36.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13473 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 27.5,36.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13474 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 26.5,36.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13475 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 30.5,37.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13476 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 30.5,38.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13477 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 29.5,39.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13478 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 28.5,39.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13479 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 27.5,39.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13480 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 26.5,39.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13481 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 31.5,35.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13482 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 32.5,35.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13483 + components: + - type: Transform + pos: 33.5,34.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13484 + components: + - type: Transform + pos: 33.5,33.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13485 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 29.5,32.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13486 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 28.5,32.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13487 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 27.5,32.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13488 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 26.5,32.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13489 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 25.5,32.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13490 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 24.5,32.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13491 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 23.5,32.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13492 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 21.5,33.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13493 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 21.5,34.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13494 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 21.5,35.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13495 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 21.5,36.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13496 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 21.5,37.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13497 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 21.5,38.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13498 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 20.5,39.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13499 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 19.5,39.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13500 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 18.5,39.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13501 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 17.5,39.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13502 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 15.5,41.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13503 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 15.5,42.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13504 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 21.5,40.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13505 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 21.5,41.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13506 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 21.5,42.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13507 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 21.5,43.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13508 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 21.5,44.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13509 + components: + - type: Transform + pos: 14.5,37.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 13510 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 16.5,38.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13511 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 16.5,37.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13512 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 12.5,1.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13513 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 12.5,2.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13514 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 11.5,4.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13515 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 9.5,6.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13516 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 8.5,7.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13517 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 8.5,8.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13518 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 8.5,9.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13519 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 8.5,10.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13520 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 8.5,11.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13521 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 8.5,12.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13522 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 10.5,0.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13523 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 9.5,0.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13524 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 8.5,0.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13525 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 7.5,0.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13526 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 6.5,0.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13527 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 5.5,0.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13528 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 4.5,0.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13529 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 3.5,0.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13530 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 2.5,0.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13531 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 1.5,-10.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13532 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 1.5,-9.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13533 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 1.5,-8.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13534 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 1.5,-7.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13535 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 1.5,-6.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13536 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 1.5,-5.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13537 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 1.5,-4.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13538 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 1.5,-3.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13539 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 1.5,-2.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13540 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 1.5,-1.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13541 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 1.5,-0.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13542 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 0.5,0.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13543 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -0.5,0.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13544 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -1.5,0.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13545 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -2.5,0.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13546 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -3.5,0.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13547 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -4.5,0.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13548 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -5.5,0.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13549 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -6.5,0.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13550 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -7.5,0.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13551 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -8.5,0.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13552 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -10.5,0.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13553 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -11.5,0.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13554 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -12.5,0.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13555 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -13.5,0.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13556 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -14.5,0.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13557 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -15.5,0.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13558 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -16.5,0.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13559 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -17.5,0.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13560 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -18.5,0.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13561 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -19.5,0.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13562 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -20.5,0.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13563 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -21.5,0.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13564 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -23.5,0.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13565 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -24.5,0.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13566 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -25.5,0.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13567 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -26.5,0.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13568 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -27.5,0.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13569 + components: + - type: Transform + pos: -28.5,-0.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13570 + components: + - type: Transform + pos: -28.5,-1.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13571 + components: + - type: Transform + pos: -28.5,-2.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13572 + components: + - type: Transform + pos: -28.5,-3.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13573 + components: + - type: Transform + pos: -28.5,-4.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13574 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -29.5,0.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13575 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -30.5,0.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13576 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -31.5,0.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13577 + components: + - type: Transform + pos: -32.5,1.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13578 + components: + - type: Transform + pos: -32.5,2.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13579 + components: + - type: Transform + pos: -32.5,3.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13580 + components: + - type: Transform + pos: -32.5,4.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13581 + components: + - type: Transform + pos: -32.5,5.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13582 + components: + - type: Transform + pos: -32.5,6.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13583 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -31.5,7.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13584 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -30.5,7.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13585 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -29.5,7.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13586 + components: + - type: Transform + pos: -28.5,6.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13587 + components: + - type: Transform + pos: -28.5,5.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13588 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -27.5,7.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13589 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -26.5,7.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13590 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -25.5,7.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13591 + components: + - type: Transform + pos: -24.5,6.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13592 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -32.5,8.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13593 + components: + - type: Transform + pos: -32.5,10.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13594 + components: + - type: Transform + pos: -32.5,11.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13595 + components: + - type: Transform + pos: -32.5,12.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13596 + components: + - type: Transform + pos: -32.5,13.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13597 + components: + - type: Transform + pos: -32.5,14.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13598 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -33.5,7.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13599 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -34.5,7.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13600 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -35.5,7.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13601 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -36.5,7.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13602 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -37.5,7.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13603 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -38.5,7.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13604 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -40.5,7.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13605 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -39.5,6.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13606 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -39.5,5.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13607 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -39.5,4.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13608 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -39.5,3.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13609 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -39.5,2.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13610 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -39.5,1.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13611 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -39.5,0.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13612 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -39.5,-0.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13613 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -39.5,-2.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13614 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -39.5,-3.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13615 + components: + - type: Transform + pos: -39.5,-4.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13616 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -40.5,-10.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13617 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -40.5,-11.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13618 + components: + - type: Transform + pos: -40.5,-12.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13619 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -39.5,-5.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13620 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -39.5,-6.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13621 + components: + - type: Transform + pos: -32.5,-2.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13622 + components: + - type: Transform + pos: -32.5,-1.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13623 + components: + - type: Transform + pos: -32.5,-3.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13624 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -37.5,3.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 13625 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -37.5,3.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 13626 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -40.5,-8.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13627 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -39.5,-13.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13628 + components: + - type: Transform + pos: -38.5,-14.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13629 + components: + - type: Transform + pos: -38.5,-15.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13630 + components: + - type: Transform + pos: -38.5,-16.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13631 + components: + - type: Transform + pos: -38.5,-17.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13632 + components: + - type: Transform + pos: -38.5,-18.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13633 + components: + - type: Transform + pos: -32.5,-4.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13634 + components: + - type: Transform + pos: -32.5,-5.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13635 + components: + - type: Transform + pos: -32.5,-7.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13636 + components: + - type: Transform + pos: -32.5,-8.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13637 + components: + - type: Transform + pos: -32.5,-9.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13638 + components: + - type: Transform + pos: -32.5,-10.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13639 + components: + - type: Transform + pos: -32.5,-12.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13640 + components: + - type: Transform + pos: -32.5,-13.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13641 + components: + - type: Transform + pos: -32.5,-14.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13642 + components: + - type: Transform + pos: -32.5,-15.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13643 + components: + - type: Transform + pos: -32.5,-17.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13644 + components: + - type: Transform + pos: -32.5,-18.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13645 + components: + - type: Transform + pos: -32.5,-19.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13646 + components: + - type: Transform + pos: -32.5,-20.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13647 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -30.5,-21.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13648 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -33.5,-18.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 13649 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -32.5,-18.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 13650 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -31.5,-18.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 13651 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -30.5,-18.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 13652 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -31.5,-16.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13653 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -30.5,-16.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13654 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -29.5,-16.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13655 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -28.5,-16.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13656 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -30.5,-27.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 13657 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -30.5,-28.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 13658 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -30.5,-29.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 13659 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -29.5,-21.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13660 + components: + - type: Transform + pos: -28.5,-22.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13661 + components: + - type: Transform + pos: -28.5,-23.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13662 + components: + - type: Transform + pos: -28.5,-24.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13663 + components: + - type: Transform + pos: -28.5,-25.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13664 + components: + - type: Transform + pos: -28.5,-26.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13665 + components: + - type: Transform + pos: -28.5,-27.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13666 + components: + - type: Transform + pos: -28.5,-28.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13667 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -27.5,-29.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13668 + components: + - type: Transform + pos: -26.5,-28.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13669 + components: + - type: Transform + pos: -26.5,-27.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13670 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -29.5,-29.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13671 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -30.5,-29.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13672 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -30.5,-30.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 13673 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -30.5,-31.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 13674 + components: + - type: Transform + pos: -22.5,-29.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 13675 + components: + - type: Transform + pos: -22.5,-30.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 13676 + components: + - type: Transform + pos: -22.5,-31.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 13677 + components: + - type: Transform + pos: -20.5,-27.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13678 + components: + - type: Transform + pos: -20.5,-28.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13679 + components: + - type: Transform + pos: -20.5,-29.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13680 + components: + - type: Transform + pos: -20.5,-30.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13681 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -33.5,-12.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 13682 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -32.5,-12.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 13683 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -31.5,-12.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 13684 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -30.5,-12.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 13685 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -31.5,-11.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13686 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -30.5,-11.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13687 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -19.5,-26.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13688 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -18.5,-26.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13689 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -15.5,-27.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 13690 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -15.5,-26.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 13691 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -15.5,-25.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 13692 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -17.5,-25.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13693 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -17.5,-24.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13694 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -17.5,-23.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13695 + components: + - type: Transform + pos: -17.5,-21.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13696 + components: + - type: Transform + pos: -17.5,-20.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13697 + components: + - type: Transform + pos: -15.5,-23.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 13698 + components: + - type: Transform + pos: -15.5,-22.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 13699 + components: + - type: Transform + pos: -15.5,-21.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 13700 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -16.5,-26.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13701 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -15.5,-26.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13702 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -14.5,-26.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13703 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -13.5,-26.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13704 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -12.5,-26.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13705 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -11.5,-26.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13706 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -10.5,-26.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13707 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -7.5,-26.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13708 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -6.5,-26.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13709 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -8.5,-27.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13710 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -8.5,-28.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13711 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -8.5,-29.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13712 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -8.5,-30.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13713 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -7.5,-31.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13714 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -6.5,-31.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13715 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -8.5,-32.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13716 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -8.5,-33.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13717 + components: + - type: Transform + pos: -9.5,-35.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13718 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -11.5,-36.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13719 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -12.5,-36.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13720 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -13.5,-36.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13721 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -14.5,-36.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13722 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -15.5,-36.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13723 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -10.5,-37.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13724 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -10.5,-38.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13725 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -10.5,-39.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13726 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -11.5,-40.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13727 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -12.5,-40.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13728 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -13.5,-40.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13729 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -14.5,-40.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13730 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -15.5,-40.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13731 + components: + - type: Transform + pos: -10.5,-41.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13732 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -11.5,-43.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13733 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -12.5,-43.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13734 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -13.5,-43.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13735 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -14.5,-43.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13736 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -15.5,-43.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13737 + components: + - type: Transform + pos: -10.5,-44.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13738 + components: + - type: Transform + pos: -10.5,-45.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13739 + components: + - type: Transform + pos: -10.5,-47.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13740 + components: + - type: Transform + pos: -10.5,-48.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13741 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -11.5,-49.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13742 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -12.5,-49.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13743 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -13.5,-49.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13744 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -14.5,-49.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13745 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -15.5,-49.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13746 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -11.5,-46.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13747 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -12.5,-46.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13748 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -13.5,-46.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13749 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -14.5,-46.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13750 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -15.5,-46.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13751 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 0.5,-37.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13752 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -0.5,-37.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13753 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -1.5,-37.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13754 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -0.5,-36.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 13755 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -1.5,-36.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 13756 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -2.5,-36.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 13757 + components: + - type: Transform + pos: -4.5,-37.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 13758 + components: + - type: Transform + pos: -4.5,-38.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 13759 + components: + - type: Transform + pos: -4.5,-39.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 13760 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -2.5,-38.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13761 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -31.5,-29.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13762 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -32.5,-29.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13763 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -33.5,-32.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 13764 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -34.5,-32.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 13765 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -35.5,-31.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 13766 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -35.5,-30.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 13767 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -35.5,-29.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 13768 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -34.5,-31.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13769 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -34.5,-32.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13770 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -34.5,-33.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13771 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -34.5,-34.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13772 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -34.5,-35.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13773 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -35.5,-36.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13774 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -36.5,-36.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13775 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -37.5,-36.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13776 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -34.5,-38.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 13777 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -35.5,-38.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 13778 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -36.5,-38.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 13779 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -37.5,-38.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 13780 + components: + - type: Transform + pos: -34.5,-37.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13781 + components: + - type: Transform + pos: -34.5,-38.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13782 + components: + - type: Transform + pos: -34.5,-39.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13783 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -32.5,-40.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13784 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -31.5,-40.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13785 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -30.5,-40.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13786 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -29.5,-40.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13787 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -31.5,-39.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 13788 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -30.5,-39.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 13789 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -43.5,-34.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13790 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -43.5,-35.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13791 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -43.5,-36.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13792 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -43.5,-37.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13793 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -43.5,-38.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13794 + components: + - type: Transform + pos: -43.5,-40.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13795 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -42.5,-41.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13796 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -41.5,-41.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13797 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -40.5,-41.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13798 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -39.5,-41.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13799 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -38.5,-41.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13800 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -37.5,-41.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13801 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -36.5,-41.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13802 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -35.5,-41.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13803 + components: + - type: Transform + pos: -34.5,-42.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13804 + components: + - type: Transform + pos: -34.5,-43.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13805 + components: + - type: Transform + pos: -34.5,-44.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13806 + components: + - type: Transform + pos: -34.5,-45.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13807 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -30.5,-47.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 13808 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -29.5,-47.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 13809 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -28.5,-47.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 13810 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -33.5,-46.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13811 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -32.5,-46.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13812 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -31.5,-46.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13813 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -30.5,-46.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13814 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -29.5,-46.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13815 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -28.5,-46.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13816 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -27.5,-46.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13817 + components: + - type: Transform + pos: -34.5,-47.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13818 + components: + - type: Transform + pos: -34.5,-48.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13819 + components: + - type: Transform + pos: 1.5,1.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13820 + components: + - type: Transform + pos: 1.5,2.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13821 + components: + - type: Transform + pos: 1.5,3.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13822 + components: + - type: Transform + pos: 1.5,4.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13823 + components: + - type: Transform + pos: 1.5,5.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13824 + components: + - type: Transform + pos: 1.5,6.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13825 + components: + - type: Transform + pos: 1.5,7.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13826 + components: + - type: Transform + pos: 1.5,8.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13827 + components: + - type: Transform + pos: 1.5,9.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13828 + components: + - type: Transform + pos: 1.5,10.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13829 + components: + - type: Transform + pos: 1.5,11.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13830 + components: + - type: Transform + pos: 1.5,12.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13831 + components: + - type: Transform + pos: 1.5,13.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13832 + components: + - type: Transform + pos: 1.5,14.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13833 + components: + - type: Transform + pos: 1.5,16.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13834 + components: + - type: Transform + pos: 1.5,17.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13835 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 1.5,19.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13836 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 2.5,18.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13837 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 3.5,18.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13838 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 4.5,18.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13839 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 5.5,18.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13840 + components: + - type: Transform + pos: 6.5,17.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13841 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 0.5,20.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13842 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -0.5,20.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13843 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -1.5,20.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13844 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -2.5,20.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13845 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -3.5,20.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13846 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -4.5,20.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13847 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -5.5,20.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13848 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -6.5,20.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13849 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -7.5,20.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13850 + components: + - type: Transform + pos: -9.5,19.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13851 + components: + - type: Transform + pos: -9.5,18.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13852 + components: + - type: Transform + pos: -9.5,17.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13853 + components: + - type: Transform + pos: -9.5,14.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13854 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -10.5,14.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 13855 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -9.5,14.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 13856 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -8.5,14.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 13857 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -7.5,14.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 13858 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -6.5,14.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 13859 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -5.5,14.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 13860 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -8.5,16.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13861 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -7.5,16.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13862 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -6.5,16.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13863 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -5.5,16.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13864 + components: + - type: Transform + pos: -10.5,14.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13865 + components: + - type: Transform + pos: -10.5,13.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13866 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -11.5,12.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13867 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -12.5,12.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13868 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -13.5,12.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13869 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -14.5,12.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13870 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -15.5,12.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13871 + components: + - type: Transform + pos: -11.5,13.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 13872 + components: + - type: Transform + pos: -11.5,12.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 13873 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -11.5,11.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 13874 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -13.5,10.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 13875 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -14.5,10.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 13876 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -15.5,10.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 13877 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -10.5,10.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13878 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -10.5,11.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13879 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -10.5,20.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13880 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -11.5,20.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13881 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -12.5,20.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13882 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -13.5,20.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13883 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -15.5,20.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13884 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -16.5,20.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13885 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -17.5,20.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13886 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -18.5,20.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13887 + components: + - type: Transform + pos: -14.5,21.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13888 + components: + - type: Transform + pos: -14.5,22.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13889 + components: + - type: Transform + pos: -14.5,23.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13890 + components: + - type: Transform + pos: -14.5,24.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13891 + components: + - type: Transform + pos: -14.5,25.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13892 + components: + - type: Transform + pos: -14.5,26.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13893 + components: + - type: Transform + pos: -14.5,27.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13894 + components: + - type: Transform + pos: -14.5,28.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13895 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -13.5,29.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13896 + components: + - type: Transform + pos: -12.5,28.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13897 + components: + - type: Transform + pos: -12.5,27.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13898 + components: + - type: Transform + pos: -12.5,26.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13899 + components: + - type: Transform + pos: -12.5,25.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13900 + components: + - type: Transform + pos: -12.5,24.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13901 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -11.5,26.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 13902 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -11.5,25.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 13903 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -11.5,24.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 13904 + components: + - type: Transform + pos: -8.5,26.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 13905 + components: + - type: Transform + pos: -8.5,25.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 13906 + components: + - type: Transform + pos: -8.5,24.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 13907 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -8.5,23.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 13908 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -11.5,29.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13909 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -9.5,29.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13910 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -8.5,29.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13911 + components: + - type: Transform + pos: -7.5,28.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13912 + components: + - type: Transform + pos: -7.5,27.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13913 + components: + - type: Transform + pos: -7.5,26.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13914 + components: + - type: Transform + pos: -7.5,25.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13915 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -6.5,29.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13916 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -5.5,29.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13917 + components: + - type: Transform + pos: -3.5,28.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13918 + components: + - type: Transform + pos: -3.5,27.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13919 + components: + - type: Transform + pos: -3.5,26.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13920 + components: + - type: Transform + pos: -3.5,25.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13921 + components: + - type: Transform + pos: -3.5,24.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13922 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -2.5,26.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 13923 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -2.5,25.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 13924 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -2.5,24.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 13925 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -16.5,39.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 13926 + components: + - type: Transform + pos: -14.5,30.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13927 + components: + - type: Transform + pos: -14.5,32.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13928 + components: + - type: Transform + pos: -14.5,33.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13929 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -15.5,35.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13930 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -15.5,36.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13931 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -15.5,37.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13932 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -15.5,32.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 13933 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -14.5,32.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 13934 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -13.5,32.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 13935 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -12.5,32.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 13936 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -13.5,31.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13937 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -12.5,31.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13938 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -11.5,31.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13939 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -10.5,31.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13940 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -9.5,32.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13941 + components: + - type: Transform + pos: -19.5,26.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 13942 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -20.5,26.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13943 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -20.5,27.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13944 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -17.5,32.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 13945 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -18.5,32.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 13946 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -20.5,32.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13947 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -20.5,33.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13948 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -19.5,31.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13949 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -18.5,31.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13950 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -17.5,31.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13951 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -16.5,31.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13952 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -15.5,31.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13953 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -15.5,29.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13954 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -16.5,29.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13955 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -17.5,29.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13956 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -18.5,29.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13957 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -19.5,29.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13958 + components: + - type: Transform + pos: -20.5,28.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13959 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -21.5,29.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13960 + components: + - type: Transform + pos: -22.5,31.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13961 + components: + - type: Transform + pos: -22.5,32.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13962 + components: + - type: Transform + pos: -22.5,33.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13963 + components: + - type: Transform + pos: -22.5,34.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13964 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -23.5,35.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13965 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -24.5,35.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13966 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -25.5,35.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13967 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -26.5,35.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13968 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -27.5,35.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13969 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -22.5,36.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13970 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -22.5,37.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13971 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -22.5,38.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13972 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -22.5,39.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13973 + components: + - type: Transform + pos: -22.5,41.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13974 + components: + - type: Transform + pos: -22.5,42.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13975 + components: + - type: Transform + pos: -22.5,43.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13976 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -23.5,30.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13977 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -24.5,30.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13978 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -26.5,30.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13979 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -27.5,30.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13980 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -29.5,30.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13981 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -30.5,30.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13982 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -31.5,30.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13983 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -32.5,30.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13984 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -33.5,30.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13985 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -34.5,30.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13986 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -37.5,30.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13987 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -38.5,30.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13988 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -35.5,32.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13989 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -34.5,32.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13990 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -36.5,33.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13991 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -36.5,34.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13992 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -34.5,35.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13993 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -35.5,35.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13994 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -36.5,36.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13995 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -36.5,37.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13996 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -34.5,38.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13997 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -35.5,38.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13998 + components: + - type: Transform + pos: -41.5,35.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 13999 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -40.5,36.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14000 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -39.5,36.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14001 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -38.5,36.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14002 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -37.5,37.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14003 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -37.5,38.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14004 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -36.5,39.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14005 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -35.5,39.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14006 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -34.5,39.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14007 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -36.5,36.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14008 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -35.5,36.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14009 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -34.5,36.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14010 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -40.5,33.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14011 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -39.5,33.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14012 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -38.5,33.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14013 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -37.5,33.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14014 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -36.5,33.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14015 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -35.5,33.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14016 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -34.5,33.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14017 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -36.5,29.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14018 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -36.5,28.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14019 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -36.5,27.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14020 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -36.5,26.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14021 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -36.5,26.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14022 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -37.5,26.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14023 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -38.5,26.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14024 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -39.5,26.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14025 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -40.5,26.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14026 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -38.5,25.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14027 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -39.5,25.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14028 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -35.5,24.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14029 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -34.5,24.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14030 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -33.5,24.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14031 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -36.5,24.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14032 + components: + - type: Transform + pos: -37.5,23.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14033 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -38.5,21.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14034 + components: + - type: Transform + pos: -35.5,22.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14035 + components: + - type: Transform + pos: -35.5,21.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14036 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -36.5,20.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14037 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -37.5,20.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14038 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -38.5,20.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14039 + components: + - type: Transform + pos: -23.5,26.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14040 + components: + - type: Transform + pos: -23.5,25.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14041 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -25.5,25.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14042 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -25.5,26.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14043 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -25.5,27.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14044 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -25.5,28.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14045 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -25.5,29.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14046 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -4.5,30.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14047 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -4.5,31.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14048 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -4.5,32.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14049 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -4.5,33.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14050 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -4.5,34.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14051 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -4.5,35.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14052 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -4.5,36.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14053 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -4.5,37.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14054 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -5.5,38.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14055 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -3.5,38.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14056 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -2.5,38.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14057 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -1.5,38.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14058 + components: + - type: Transform + pos: 1.5,21.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14059 + components: + - type: Transform + pos: 1.5,22.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14060 + components: + - type: Transform + pos: 1.5,23.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14061 + components: + - type: Transform + pos: 1.5,24.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14062 + components: + - type: Transform + pos: 1.5,25.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14063 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 1.5,29.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14064 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 2.5,29.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14065 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 3.5,29.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14066 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 4.5,29.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14067 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 4.5,30.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14068 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 3.5,30.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14069 + components: + - type: Transform + pos: 1.5,29.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14070 + components: + - type: Transform + pos: 1.5,28.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14071 + components: + - type: Transform + pos: 1.5,27.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14072 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 3.5,34.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14073 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 4.5,34.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14074 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 6.5,34.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14075 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 3.5,35.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14076 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 4.5,35.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14077 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 5.5,35.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14078 + components: + - type: Transform + pos: 6.5,36.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14079 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 5.5,38.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14080 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 5.5,39.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14081 + components: + - type: Transform + pos: 1.5,36.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14082 + components: + - type: Transform + pos: 1.5,37.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14083 + components: + - type: Transform + pos: 1.5,38.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14084 + components: + - type: Transform + pos: 1.5,39.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14085 + components: + - type: Transform + pos: 1.5,40.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14086 + components: + - type: Transform + pos: 1.5,41.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14087 + components: + - type: Transform + pos: 1.5,42.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14088 + components: + - type: Transform + pos: 1.5,43.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14089 + components: + - type: Transform + pos: 1.5,44.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14090 + components: + - type: Transform + pos: 1.5,45.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14091 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 1.5,47.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14092 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 1.5,48.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14093 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 1.5,49.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14094 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 1.5,50.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14095 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 1.5,51.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14096 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 2.5,52.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14097 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 4.5,51.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14098 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 5.5,51.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14099 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 6.5,51.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14100 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 7.5,51.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14101 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 8.5,52.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14102 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 8.5,53.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14103 + components: + - type: Transform + pos: 1.5,53.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14104 + components: + - type: Transform + pos: 1.5,54.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14105 + components: + - type: Transform + pos: 1.5,55.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14106 + components: + - type: Transform + pos: 1.5,56.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14107 + components: + - type: Transform + pos: 1.5,57.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14108 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 1.5,59.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14109 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -0.5,58.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14110 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -1.5,58.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14111 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -2.5,58.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14112 + components: + - type: Transform + pos: -3.5,57.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14113 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -5.5,56.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14114 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -6.5,56.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14115 + components: + - type: Transform + pos: -7.5,55.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14116 + components: + - type: Transform + pos: -7.5,54.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14117 + components: + - type: Transform + pos: -7.5,53.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14118 + components: + - type: Transform + pos: -7.5,52.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14119 + components: + - type: Transform + pos: -7.5,51.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14120 + components: + - type: Transform + pos: -7.5,50.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14121 + components: + - type: Transform + pos: -7.5,49.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14122 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 5.5,59.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14123 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 6.5,60.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14124 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 6.5,61.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14125 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 6.5,62.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14126 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 6.5,63.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14127 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 6.5,64.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14128 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 6.5,65.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14129 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 6.5,66.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14130 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 6.5,67.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14131 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 6.5,68.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14132 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 6.5,69.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14133 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -4.5,59.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14134 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -4.5,60.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14135 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -4.5,61.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14136 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -4.5,62.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14137 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -4.5,64.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14138 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -4.5,65.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14139 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -4.5,66.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14140 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -4.5,67.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14141 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -4.5,68.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14142 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -4.5,69.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14143 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -3.5,70.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14144 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -2.5,70.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14145 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -1.5,70.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14146 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -0.5,70.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14147 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 7.5,70.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14148 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 5.5,71.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14149 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 4.5,71.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14150 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 3.5,71.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14151 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 1.5,70.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14152 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 2.5,70.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14153 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 3.5,70.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14154 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 4.5,70.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14155 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 1.5,71.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14156 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 0.5,71.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14157 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -0.5,71.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14158 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -1.5,71.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14159 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -5.5,72.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14160 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -5.5,73.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14161 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -5.5,74.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14162 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -4.5,73.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14163 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -4.5,74.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14164 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 5.5,71.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14165 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 6.5,72.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14166 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 7.5,72.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14167 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 8.5,73.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14168 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 8.5,74.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14169 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 6.5,72.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14170 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 7.5,74.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14171 + components: + - type: Transform + pos: 8.5,75.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14172 + components: + - type: Transform + pos: 8.5,76.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14173 + components: + - type: Transform + pos: 7.5,75.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14174 + components: + - type: Transform + pos: 7.5,76.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14175 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 8.5,78.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14176 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 8.5,79.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14177 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 8.5,80.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14178 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 8.5,81.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14179 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 8.5,82.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14180 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 7.5,78.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14181 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 7.5,79.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14182 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 7.5,80.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14183 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 7.5,81.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14184 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 7.5,83.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14185 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 7.5,84.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14186 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 6.5,82.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14187 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 7.5,83.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14188 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 5.5,84.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14189 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 4.5,84.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14190 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 3.5,84.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14191 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 2.5,84.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14192 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 3.5,83.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14193 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 2.5,83.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14194 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 4.5,83.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14195 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 0.5,84.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14196 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -0.5,84.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14197 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -1.5,84.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14198 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -2.5,84.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14199 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -4.5,83.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14200 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -5.5,83.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14201 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 0.5,83.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14202 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -0.5,83.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14203 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -1.5,83.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14204 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -3.5,82.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14205 + components: + - type: Transform + pos: -4.5,83.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14206 + components: + - type: Transform + pos: -5.5,75.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14207 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -4.5,75.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14208 + components: + - type: Transform + pos: 44.5,-12.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14209 + components: + - type: Transform + pos: 44.5,-13.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14210 + components: + - type: Transform + pos: 44.5,-14.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14211 + components: + - type: Transform + pos: 44.5,-15.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14212 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 39.5,-15.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14213 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 40.5,-15.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14214 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 39.5,-17.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14215 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 40.5,-17.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14216 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 27.5,25.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14217 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 26.5,25.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14218 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 25.5,25.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14219 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 24.5,25.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14220 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 23.5,25.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14221 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 22.5,25.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14222 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 21.5,25.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14223 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 20.5,25.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14224 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 19.5,25.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14225 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 29.5,26.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14226 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 28.5,26.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14227 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 27.5,26.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14228 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 26.5,26.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14229 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 25.5,26.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14230 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 24.5,26.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14231 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 23.5,26.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14232 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 22.5,26.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14233 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 21.5,26.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14234 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 20.5,26.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14235 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 19.5,26.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14236 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 18.5,26.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14237 + components: + - type: Transform + pos: 17.5,25.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14238 + components: + - type: Transform + pos: 17.5,24.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14239 + components: + - type: Transform + pos: 17.5,23.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14240 + components: + - type: Transform + pos: 18.5,24.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14241 + components: + - type: Transform + pos: 18.5,23.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14242 + components: + - type: Transform + pos: -10.5,-34.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14243 + components: + - type: Transform + pos: -10.5,-33.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14244 + components: + - type: Transform + pos: -10.5,-32.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14245 + components: + - type: Transform + pos: -12.5,-34.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14246 + components: + - type: Transform + pos: -12.5,-33.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14247 + components: + - type: Transform + pos: -12.5,-32.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14248 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 26.5,-29.5 + parent: 2 +- proto: GasPipeTJunction + entities: + - uid: 14249 + components: + - type: Transform + pos: 26.5,-28.5 + parent: 2 + - uid: 14250 + components: + - type: Transform + pos: 32.5,15.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14251 + components: + - type: Transform + pos: -7.5,-36.5 + parent: 2 + - uid: 14252 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -31.5,-51.5 + parent: 2 + - uid: 14253 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -31.5,-51.5 + parent: 2 + - uid: 14254 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -36.5,-47.5 + parent: 2 + - uid: 14255 + components: + - type: Transform + pos: -36.5,-45.5 + parent: 2 + - uid: 14256 + components: + - type: Transform + pos: -36.5,-45.5 + parent: 2 + - uid: 14257 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -12.5,-41.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14258 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 27.5,-46.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14259 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 38.5,-17.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14260 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 36.5,-15.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14261 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -6.5,-32.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14262 + components: + - type: Transform + pos: -0.5,-64.5 + parent: 2 + - type: AtmosPipeColor + color: '#20FC03FF' + - uid: 14263 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -4.5,-64.5 + parent: 2 + - type: AtmosPipeColor + color: '#20FC03FF' + - uid: 14264 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -4.5,-68.5 + parent: 2 + - type: AtmosPipeColor + color: '#20FC03FF' + - uid: 14265 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -2.5,-65.5 + parent: 2 + - type: AtmosPipeColor + color: '#FC1703FF' + - uid: 14266 + components: + - type: Transform + pos: 3.5,-64.5 + parent: 2 + - type: AtmosPipeColor + color: '#00FFFFFF' + - uid: 14267 + components: + - type: Transform + pos: 4.5,-64.5 + parent: 2 + - type: AtmosPipeColor + color: '#00FFFFFF' + - uid: 14268 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 5.5,-74.5 + parent: 2 + - type: AtmosPipeColor + color: '#00FFFFFF' + - uid: 14269 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -2.5,-74.5 + parent: 2 + - type: AtmosPipeColor + color: '#00FFFFFF' + - uid: 14270 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -0.5,-74.5 + parent: 2 + - type: AtmosPipeColor + color: '#00FFFFFF' + - uid: 14271 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 3.5,-74.5 + parent: 2 + - type: AtmosPipeColor + color: '#00FFFFFF' + - uid: 14272 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 1.5,-74.5 + parent: 2 + - type: AtmosPipeColor + color: '#00FFFFFF' + - uid: 14273 + components: + - type: Transform + pos: -1.5,-75.5 + parent: 2 + - type: AtmosPipeColor + color: '#00FFFFFF' + - uid: 14274 + components: + - type: Transform + pos: -0.5,-75.5 + parent: 2 + - type: AtmosPipeColor + color: '#00FFFFFF' + - uid: 14275 + components: + - type: Transform + pos: 1.5,-75.5 + parent: 2 + - type: AtmosPipeColor + color: '#00FFFFFF' + - uid: 14276 + components: + - type: Transform + pos: 2.5,-75.5 + parent: 2 + - type: AtmosPipeColor + color: '#00FFFFFF' + - uid: 14277 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -4.5,-70.5 + parent: 2 + - type: AtmosPipeColor + color: '#FC6603FF' + - uid: 14278 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -1.5,-69.5 + parent: 2 + - uid: 14279 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -1.5,-68.5 + parent: 2 + - uid: 14280 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 2.5,-68.5 + parent: 2 + - uid: 14281 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 2.5,-69.5 + parent: 2 + - uid: 14282 + components: + - type: Transform + pos: 1.5,-62.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF8000FF' + - uid: 14283 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 29.5,-57.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF00BFFF' + - uid: 14284 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 29.5,-58.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF00BFFF' + - uid: 14285 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 28.5,-60.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF00BFFF' + - uid: 14286 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 26.5,-53.5 + parent: 2 + - type: AtmosPipeColor + color: '#8800FFFF' + - uid: 14287 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 28.5,-62.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF00BFFF' + - uid: 14288 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 31.5,-56.5 + parent: 2 + - type: AtmosPipeColor + color: '#8800FFFF' + - uid: 14289 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 23.5,-51.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14290 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 26.5,-60.5 + parent: 2 + - type: AtmosPipeColor + color: '#8800FFFF' + - uid: 14291 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 29.5,-60.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF00BFFF' + - uid: 14292 + components: + - type: Transform + pos: 22.5,-58.5 + parent: 2 + - type: AtmosPipeColor + color: '#00FFFFFF' + - uid: 14293 + components: + - type: Transform + pos: 20.5,-59.5 + parent: 2 + - type: AtmosPipeColor + color: '#8800FFFF' + - uid: 14294 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 22.5,-63.5 + parent: 2 + - type: AtmosPipeColor + color: '#8800FFFF' + - uid: 14295 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 29.5,-59.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF00BFFF' + - uid: 14296 + components: + - type: Transform + pos: 26.5,-50.5 + parent: 2 + - type: AtmosPipeColor + color: '#323232FF' + - uid: 14297 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 25.5,-42.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14298 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 11.5,-41.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14299 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 0.5,-35.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14300 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 27.5,-44.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14301 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 25.5,-45.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14302 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 27.5,-44.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14303 + components: + - type: Transform + pos: 12.5,-40.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14304 + components: + - type: Transform + pos: -6.5,-28.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14305 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -10.5,-28.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14306 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -15.5,-28.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14307 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -23.5,-28.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14308 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -30.5,-32.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14309 + components: + - type: Transform + pos: -32.5,-32.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14310 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -32.5,-38.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14311 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -32.5,-39.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14312 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -32.5,-43.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14313 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -41.5,-40.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14314 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -32.5,-47.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14315 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -12.5,-38.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14316 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 0.5,-28.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14317 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 0.5,-25.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14318 + components: + - type: Transform + pos: 6.5,-25.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14319 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 22.5,-25.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14320 + components: + - type: Transform + pos: 38.5,-11.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14321 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 8.5,-25.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14322 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 30.5,-24.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14323 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 38.5,-19.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14324 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 40.5,-32.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14325 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 0.5,-19.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14326 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 1.5,-21.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14327 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 5.5,-46.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14328 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 6.5,-50.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14329 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 6.5,-53.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14330 + components: + - type: Transform + pos: 3.5,-54.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14331 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 4.5,-56.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14332 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -5.5,-69.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14333 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 6.5,-69.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14334 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 14.5,-15.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14335 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -30.5,-23.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14336 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -32.5,-11.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14337 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -32.5,-16.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14338 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -34.5,-5.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14339 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -37.5,-11.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14340 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -37.5,0.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14341 + components: + - type: Transform + pos: -37.5,8.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14342 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -34.5,1.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14343 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -34.5,5.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14344 + components: + - type: Transform + pos: -30.5,1.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14345 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -22.5,1.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14346 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -9.5,1.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14347 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 1.5,-38.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14348 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 1.5,-36.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14349 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 1.5,-39.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14350 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 10.5,1.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14351 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 11.5,1.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14352 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 0.5,18.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14353 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 0.5,17.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14354 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 0.5,15.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14355 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -10.5,18.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14356 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -16.5,18.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14357 + components: + - type: Transform + pos: -12.5,18.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14358 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -29.5,5.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14359 + components: + - type: Transform + pos: -8.5,27.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14360 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -9.5,27.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14361 + components: + - type: Transform + pos: -11.5,27.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14362 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -2.5,27.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14363 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -16.5,33.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14364 + components: + - type: Transform + pos: -23.5,27.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14365 + components: + - type: Transform + pos: -19.5,27.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14366 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -24.5,28.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14367 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -30.5,28.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14368 + components: + - type: Transform + pos: -35.5,28.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14369 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -35.5,26.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14370 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -37.5,28.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14371 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -41.5,33.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14372 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -41.5,34.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14373 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -38.5,32.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14374 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -36.5,32.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14375 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -24.5,34.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14376 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -24.5,39.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14377 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 0.5,25.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14378 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -2.5,37.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14379 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 0.5,34.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14380 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 0.5,37.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14381 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 0.5,53.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14382 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 0.5,46.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14383 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -5.5,54.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14384 + components: + - type: Transform + pos: 4.5,59.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14385 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 4.5,54.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14386 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 1.5,35.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14387 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 4.5,53.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14388 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 8.5,51.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14389 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 22.5,1.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14390 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 20.5,6.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14391 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 28.5,10.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14392 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 28.5,13.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14393 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 22.5,14.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14394 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 21.5,16.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14395 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 28.5,15.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14396 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 28.5,18.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14397 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 28.5,25.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14398 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 28.5,27.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14399 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 21.5,30.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14400 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 19.5,38.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14401 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 28.5,34.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14402 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 28.5,35.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14403 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 14.5,38.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14404 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 14.5,40.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14405 + components: + - type: Transform + pos: 36.5,27.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14406 + components: + - type: Transform + pos: 40.5,27.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14407 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 44.5,28.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14408 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 44.5,39.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14409 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 42.5,7.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14410 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 42.5,-11.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14411 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -12.5,14.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14412 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 33.5,-11.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14413 + components: + - type: Transform + pos: 7.5,-40.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14414 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 26.5,-25.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14415 + components: + - type: Transform + pos: 6.5,-40.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14416 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 6.5,-45.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14417 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 30.5,-29.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14418 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -6.5,-71.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14419 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 7.5,-67.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14420 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 0.5,-36.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14421 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 1.5,-35.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14422 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 1.5,-26.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14423 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 1.5,-23.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14424 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 0.5,-23.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14425 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 1.5,-19.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14426 + components: + - type: Transform + pos: 6.5,-23.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14427 + components: + - type: Transform + pos: 7.5,-23.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14428 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 12.5,-23.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14429 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 12.5,-22.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14430 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 13.5,-14.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14431 + components: + - type: Transform + pos: 21.5,-23.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14432 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 25.5,-23.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14433 + components: + - type: Transform + pos: 28.5,-23.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14434 + components: + - type: Transform + pos: 31.5,-23.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14435 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 32.5,-23.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14436 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 36.5,-23.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14437 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 36.5,-18.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14438 + components: + - type: Transform + pos: 40.5,-23.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14439 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 40.5,-29.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14440 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 31.5,-27.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14441 + components: + - type: Transform + pos: 36.5,-10.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14442 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 43.5,-10.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14443 + components: + - type: Transform + pos: 41.5,-4.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14444 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 30.5,0.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14445 + components: + - type: Transform + pos: 29.5,0.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14446 + components: + - type: Transform + pos: 22.5,0.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14447 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 12.5,0.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14448 + components: + - type: Transform + pos: 11.5,0.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14449 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 30.5,7.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14450 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 21.5,7.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14451 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 30.5,8.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14452 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 40.5,8.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14453 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 30.5,9.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14454 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 30.5,14.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14455 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 26.5,14.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14456 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 22.5,17.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14457 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 30.5,16.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14458 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 30.5,17.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14459 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 35.5,17.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14460 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 30.5,26.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14461 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 30.5,29.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14462 + components: + - type: Transform + pos: 38.5,29.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14463 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 42.5,29.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14464 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 42.5,38.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14465 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 30.5,31.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14466 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 30.5,32.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14467 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 30.5,35.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14468 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 30.5,36.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14469 + components: + - type: Transform + pos: 22.5,32.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14470 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 21.5,39.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14471 + components: + - type: Transform + pos: -9.5,0.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14472 + components: + - type: Transform + pos: -22.5,0.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14473 + components: + - type: Transform + pos: -28.5,0.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14474 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -32.5,0.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14475 + components: + - type: Transform + pos: -28.5,7.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14476 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -32.5,9.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14477 + components: + - type: Transform + pos: -39.5,7.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14478 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -39.5,-1.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14479 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -40.5,-9.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14480 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -32.5,-6.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14481 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -34.5,-12.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14482 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -34.5,-18.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14483 + components: + - type: Transform + pos: -31.5,-21.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14484 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -29.5,-18.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14485 + components: + - type: Transform + pos: -27.5,-16.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14486 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -28.5,-29.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14487 + components: + - type: Transform + pos: -20.5,-26.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14488 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -17.5,-26.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14489 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -15.5,-24.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14490 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -17.5,-22.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14491 + components: + - type: Transform + pos: -9.5,-26.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14492 + components: + - type: Transform + pos: -8.5,-26.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14493 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -8.5,-31.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14494 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -10.5,-40.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14495 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -10.5,-42.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14496 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -10.5,-43.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14497 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -10.5,-46.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14498 + components: + - type: Transform + pos: -2.5,-37.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14499 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -3.5,-36.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14500 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -33.5,-29.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14501 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -34.5,-36.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14502 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -33.5,-38.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14503 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -34.5,-40.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14504 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -33.5,-40.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14505 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -34.5,-41.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14506 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -43.5,-39.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14507 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -34.5,-46.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14508 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 1.5,15.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14509 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 1.5,18.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14510 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 1.5,20.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14511 + components: + - type: Transform + pos: -8.5,20.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14512 + components: + - type: Transform + pos: -9.5,20.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14513 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -9.5,16.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14514 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -9.5,15.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14515 + components: + - type: Transform + pos: -11.5,14.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14516 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -10.5,12.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14517 + components: + - type: Transform + pos: -12.5,10.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14518 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -14.5,20.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14519 + components: + - type: Transform + pos: -12.5,29.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14520 + components: + - type: Transform + pos: -10.5,29.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14521 + components: + - type: Transform + pos: -7.5,29.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14522 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -4.5,29.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14523 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -15.5,34.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14524 + components: + - type: Transform + pos: -20.5,29.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14525 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -22.5,30.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14526 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -22.5,35.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14527 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -22.5,40.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14528 + components: + - type: Transform + pos: -25.5,30.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14529 + components: + - type: Transform + pos: -28.5,30.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14530 + components: + - type: Transform + pos: -35.5,30.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14531 + components: + - type: Transform + pos: -36.5,30.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14532 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -36.5,35.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14533 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -37.5,36.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14534 + components: + - type: Transform + pos: -37.5,25.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14535 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -37.5,24.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14536 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -37.5,22.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14537 + components: + - type: Transform + pos: -4.5,38.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14538 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 1.5,26.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14539 + components: + - type: Transform + pos: 2.5,30.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14540 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 1.5,30.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14541 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 5.5,34.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14542 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 6.5,35.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14543 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 1.5,46.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14544 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 1.5,52.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14545 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 1.5,58.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14546 + components: + - type: Transform + pos: -3.5,58.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14547 + components: + - type: Transform + pos: -4.5,56.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14548 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 0.5,70.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14549 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 6.5,70.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14550 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 6.5,71.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14551 + components: + - type: Transform + pos: 2.5,71.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14552 + components: + - type: Transform + pos: -2.5,71.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14553 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 5.5,70.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14554 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 8.5,77.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14555 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 7.5,77.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14556 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 7.5,82.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14557 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 8.5,83.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14558 + components: + - type: Transform + pos: 1.5,83.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14559 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 1.5,84.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14560 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 14.5,-24.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' +- proto: GasPort + entities: + - uid: 14561 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -7.5,-37.5 + parent: 2 + - uid: 14562 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -6.5,-37.5 + parent: 2 + - uid: 14563 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -31.5,-52.5 + parent: 2 + - uid: 14564 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -32.5,-51.5 + parent: 2 + - uid: 14565 + components: + - type: Transform + pos: -31.5,-50.5 + parent: 2 + - uid: 14566 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -32.5,-50.5 + parent: 2 + - uid: 14567 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -31.5,-49.5 + parent: 2 + - uid: 14568 + components: + - type: Transform + pos: -32.5,-48.5 + parent: 2 + - uid: 14569 + components: + - type: Transform + pos: -33.5,-51.5 + parent: 2 + - uid: 14570 + components: + - type: Transform + pos: -33.5,-51.5 + parent: 2 + - uid: 14571 + components: + - type: Transform + pos: -34.5,-51.5 + parent: 2 + - uid: 14572 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -35.5,-47.5 + parent: 2 + - uid: 14573 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -35.5,-45.5 + parent: 2 + - uid: 14574 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -29.5,23.5 + parent: 2 + - uid: 14575 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 28.5,-27.5 + parent: 2 + - uid: 14576 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 28.5,-28.5 + parent: 2 + - uid: 14577 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 2.5,-36.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14578 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 2.5,-37.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14579 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 2.5,-38.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14580 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 2.5,-39.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14581 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 2.5,-76.5 + parent: 2 + - uid: 14582 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -1.5,-76.5 + parent: 2 + - uid: 14583 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 4.5,-66.5 + parent: 2 + - uid: 14584 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 3.5,-66.5 + parent: 2 + - uid: 14585 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -2.5,-66.5 + parent: 2 + - type: AtmosPipeColor + color: '#FC1703FF' + - uid: 14586 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -3.5,-66.5 + parent: 2 + - type: AtmosPipeColor + color: '#FC1703FF' + - uid: 14587 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 30.5,-57.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF00BFFF' + - uid: 14588 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 27.5,-59.5 + parent: 2 + - uid: 14589 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 30.5,-59.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF00BFFF' + - uid: 14590 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 27.5,-58.5 + parent: 2 + - uid: 14591 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 30.5,-58.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF00BFFF' + - uid: 14592 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 24.5,-58.5 + parent: 2 + - uid: 14593 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 27.5,-57.5 + parent: 2 + - uid: 14594 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 35.5,-46.5 + parent: 2 + - uid: 14595 + components: + - type: Transform + pos: 7.5,-31.5 + parent: 2 +- proto: GasPressurePump + entities: + - uid: 14596 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -39.5,-47.5 + parent: 2 + - uid: 14597 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -39.5,-47.5 + parent: 2 + - uid: 14598 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -39.5,-45.5 + parent: 2 + - uid: 14599 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -39.5,-45.5 + parent: 2 + - uid: 14600 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -29.5,24.5 + parent: 2 + - uid: 14601 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 24.5,-51.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14602 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 4.5,-75.5 + parent: 2 + - type: AtmosPipeColor + color: '#00FFFFFF' + - uid: 14603 + components: + - type: Transform + pos: -4.5,-69.5 + parent: 2 + - uid: 14604 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -6.5,-70.5 + parent: 2 + - uid: 14605 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -6.5,-68.5 + parent: 2 + - uid: 14606 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -0.5,-66.5 + parent: 2 + - uid: 14607 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 3.5,-65.5 + parent: 2 + - uid: 14608 + components: + - type: Transform + pos: 1.5,-66.5 + parent: 2 + - uid: 14609 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 0.5,-64.5 + parent: 2 + - uid: 14610 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 4.5,-65.5 + parent: 2 + - uid: 14611 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 26.5,-52.5 + parent: 2 + - type: AtmosPipeColor + color: '#8800FFFF' + - uid: 14612 + components: + - type: Transform + pos: 26.5,-64.5 + parent: 2 + - type: AtmosPipeColor + color: '#8800FFFF' + - uid: 14613 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 28.5,-52.5 + parent: 2 + - type: AtmosPipeColor + color: '#8800FFFF' + - uid: 14614 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 26.5,-56.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF00BFFF' + - uid: 14615 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 28.5,-64.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF00BFFF' + - uid: 14616 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 28.5,-55.5 + parent: 2 + - type: AtmosPipeColor + color: '#8800FFFF' + - uid: 14617 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 40.5,-44.5 + parent: 2 + - uid: 14618 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 36.5,-45.5 + parent: 2 + - uid: 14619 + components: + - type: Transform + pos: -4.5,-63.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF8000FF' + - uid: 14620 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 24.5,-50.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14621 + components: + - type: Transform + pos: 1.5,-63.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF8000FF' + - uid: 14622 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 32.5,-57.5 + parent: 2 + - type: AtmosPipeColor + color: '#8800FFFF' + - uid: 14623 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 32.5,-61.5 + parent: 2 + - type: AtmosPipeColor + color: '#8800FFFF' + - uid: 14624 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 23.5,-62.5 + parent: 2 + - type: AtmosPipeColor + color: '#8800FFFF' + - uid: 14625 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 23.5,-63.5 + parent: 2 + - type: AtmosPipeColor + color: '#8800FFFF' + - uid: 14626 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 40.5,-42.5 + parent: 2 + - uid: 14627 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 32.5,-53.5 + parent: 2 + - type: AtmosPipeColor + color: '#9003FCFF' + - uid: 14628 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 24.5,-52.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' +- proto: GasThermoMachineFreezer + entities: + - uid: 14629 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -33.5,-52.5 + parent: 2 + - uid: 14630 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 28.5,-29.5 + parent: 2 + - uid: 14631 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 1.5,-76.5 + parent: 2 + - uid: 14632 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -0.5,-76.5 + parent: 2 + - uid: 14633 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 30.5,-54.5 + parent: 2 + - uid: 14634 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 27.5,-60.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF00BFFF' + - uid: 14635 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 25.5,-60.5 + parent: 2 + - type: AtmosPipeColor + color: '#8800FFFF' +- proto: GasThermoMachineFreezerEnabled + entities: + - uid: 14636 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -25.5,-34.5 + parent: 2 +- proto: GasThermoMachineHeater + entities: + - uid: 14637 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -34.5,-52.5 + parent: 2 + - uid: 14638 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 30.5,-55.5 + parent: 2 + - uid: 14639 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 32.5,-56.5 + parent: 2 + - type: AtmosPipeColor + color: '#8800FFFF' +- proto: GasThermoMachineHeaterEnabled + entities: + - uid: 14640 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 30.5,-60.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF00BFFF' +- proto: GasValve + entities: + - uid: 14641 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 13.5,-42.5 + parent: 2 + - type: GasValve + open: False + - uid: 14642 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 13.5,-46.5 + parent: 2 + - type: GasValve + open: False + - uid: 14643 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -10.5,-41.5 + parent: 2 + - uid: 14644 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -37.5,-45.5 + parent: 2 + - uid: 14645 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -37.5,-47.5 + parent: 2 + - uid: 14646 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -36.5,-46.5 + parent: 2 + - uid: 14647 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -2.5,-75.5 + parent: 2 + - type: AtmosPipeColor + color: '#00FFFFFF' + - uid: 14648 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 28.5,-61.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF00BFFF' + - uid: 14649 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 29.5,-61.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF00BFFF' + - uid: 14650 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 22.5,-56.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' +- proto: GasVentPump + entities: + - uid: 14651 + components: + - type: Transform + pos: 42.5,18.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14652 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -6.5,48.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14653 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 7.5,54.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14654 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -24.5,-37.5 + parent: 2 + - uid: 14658 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 35.5,-43.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14659 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 26.5,-44.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14660 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 26.5,-44.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14661 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -0.5,-35.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14662 + components: + - type: Transform + pos: 11.5,-40.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14663 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -5.5,-32.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14664 + components: + - type: Transform + pos: -10.5,-27.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14665 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -16.5,-38.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14666 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -16.5,-35.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14667 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -16.5,-41.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14668 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -16.5,-47.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14669 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -16.5,-44.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14670 + components: + - type: Transform + pos: 8.5,-24.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14671 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 13.5,-26.5 + parent: 2 + - type: AtmosPipeColor + color: '#031CFCFF' + - uid: 14672 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -11.5,-44.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14673 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 29.5,-24.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14674 + components: + - type: Transform + pos: 30.5,-18.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14675 + components: + - type: Transform + pos: 40.5,-31.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14676 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -0.5,-19.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14677 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 0.5,-46.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14678 + components: + - type: Transform + pos: -4.5,-55.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14679 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -12.5,-57.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14680 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 12.5,-64.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14681 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 15.5,-15.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14682 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 46.5,-32.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14683 + components: + - type: Transform + pos: -30.5,-22.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14684 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -33.5,-5.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14685 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -37.5,-17.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14686 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -38.5,-11.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14687 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -38.5,0.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14688 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -38.5,8.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14689 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -33.5,8.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14690 + components: + - type: Transform + pos: -34.5,15.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14691 + components: + - type: Transform + pos: -22.5,2.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14692 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -29.5,-5.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14693 + components: + - type: Transform + pos: -9.5,2.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14694 + components: + - type: Transform + pos: 11.5,2.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14695 + components: + - type: Transform + pos: -10.5,19.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14696 + components: + - type: Transform + pos: -19.5,19.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14697 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 23.5,14.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14698 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -29.5,4.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14699 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -15.5,33.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14700 + components: + - type: Transform + pos: -30.5,29.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14701 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -36.5,23.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14702 + components: + - type: Transform + pos: -31.5,24.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14703 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -23.5,39.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14704 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -40.5,34.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14705 + components: + - type: Transform + pos: -2.5,38.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14706 + components: + - type: Transform + pos: -9.5,28.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14707 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -0.5,29.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14708 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -0.5,46.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14709 + components: + - type: Transform + pos: -5.5,55.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14710 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 36.5,23.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14711 + components: + - type: Transform + pos: 5.5,35.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14712 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 7.5,48.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14713 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 5.5,25.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14714 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 5.5,16.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14715 + components: + - type: Transform + pos: 22.5,2.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14716 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 17.5,6.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14717 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 20.5,16.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14718 + components: + - type: Transform + pos: 21.5,22.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14719 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 29.5,18.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14720 + components: + - type: Transform + pos: 21.5,31.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14721 + components: + - type: Transform + pos: 19.5,45.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14722 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 25.5,35.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14723 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 25.5,38.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14724 + components: + - type: Transform + pos: 14.5,43.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14725 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 29.5,30.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14726 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 40.5,26.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14727 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 32.5,32.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14728 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 43.5,28.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14729 + components: + - type: Transform + pos: 40.5,41.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14730 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 43.5,42.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14731 + components: + - type: Transform + pos: 42.5,13.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14732 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 29.5,10.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14733 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 19.5,13.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14734 + components: + - type: Transform + pos: 42.5,-5.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14735 + components: + - type: Transform + pos: 9.5,13.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14736 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -12.5,13.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14737 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -24.5,6.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14738 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 6.5,-30.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14739 + components: + - type: Transform + pos: 22.5,-24.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14740 + components: + - type: Transform + pos: 19.5,-19.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14741 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 25.5,-18.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14742 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 37.5,-19.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14743 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 44.5,-17.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14744 + components: + - type: Transform + pos: 45.5,-24.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14745 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 19.5,-31.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14746 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 12.5,-52.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14747 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 31.5,-29.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14748 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 27.5,-31.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14749 + components: + - type: Transform + pos: 17.5,-10.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14750 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 35.5,14.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14751 + components: + - type: Transform + pos: 42.5,18.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14752 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -4.5,-23.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14753 + components: + - type: Transform + pos: 33.5,-10.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14754 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 28.5,-3.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14755 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 15.5,40.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14756 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 14.5,36.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14757 + components: + - type: Transform + pos: -29.5,-17.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14758 + components: + - type: Transform + pos: -23.5,-22.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14759 + components: + - type: Transform + pos: -22.5,-27.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14760 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -21.5,-32.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14761 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -29.5,-12.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14762 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -16.5,-24.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14763 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -16.5,-20.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14764 + components: + - type: Transform + pos: -3.5,-35.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14765 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -3.5,-40.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14766 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -34.5,-28.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14767 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -38.5,-38.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14768 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -29.5,-40.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14769 + components: + - type: Transform + pos: -33.5,-37.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14770 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -42.5,-40.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14771 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -43.5,-32.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14772 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -27.5,-47.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14773 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -33.5,-49.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14774 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -4.5,14.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14775 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -16.5,10.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14776 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -12.5,9.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14777 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -11.5,23.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14778 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -7.5,22.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14779 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -2.5,23.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14780 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -15.5,39.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14781 + components: + - type: Transform + pos: -11.5,33.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14782 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -19.5,25.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14783 + components: + - type: Transform + pos: -19.5,33.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14784 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -28.5,33.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14785 + components: + - type: Transform + pos: -24.5,44.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14786 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -0.5,15.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14787 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -0.5,15.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14788 + components: + - type: Transform + pos: -37.5,29.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14789 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -33.5,33.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14790 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -33.5,36.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14791 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -33.5,39.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14792 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -41.5,25.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14793 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -39.5,20.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14794 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -24.5,24.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14795 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 5.5,29.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14796 + components: + - type: Transform + pos: 7.5,40.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14797 + components: + - type: Transform + pos: 0.5,60.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14798 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 8.5,70.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14799 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 2.5,70.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14800 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -2.5,70.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14801 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 6.5,77.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14802 + components: + - type: Transform + pos: 7.5,85.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14803 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 1.5,82.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14804 + components: + - type: Transform + pos: -4.5,84.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14805 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -3.5,76.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14806 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 7.5,-50.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14807 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 3.5,-55.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14808 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 7.5,-69.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14809 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -6.5,-69.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14810 + components: + - type: Transform + pos: 5.5,-40.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14811 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 41.5,-17.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14812 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 43.5,7.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14813 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 18.5,22.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 14814 + components: + - type: Transform + pos: -12.5,-31.5 + parent: 2 + - type: AtmosPipeColor + color: '#0335FCFF' +- proto: GasVentScrubber + entities: + - uid: 14815 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 8.5,48.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14816 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -42.5,-45.5 + parent: 2 + - uid: 14820 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 42.5,-44.5 + parent: 2 + - uid: 14821 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 35.5,-42.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14822 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 35.5,-42.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14823 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 26.5,-45.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14824 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 12.5,-41.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14825 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 12.5,-51.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14826 + components: + - type: Transform + pos: 4.5,-54.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14827 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -39.5,-9.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14828 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -38.5,-1.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14829 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -23.5,44.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14830 + components: + - type: Transform + pos: -38.5,34.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14831 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 2.5,29.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14832 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -7.5,48.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14833 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 6.5,34.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14834 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 5.5,26.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14835 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 0.5,-45.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14836 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 7.5,-51.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14837 + components: + - type: Transform + pos: -2.5,-55.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14838 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -12.5,-58.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14839 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -5.5,-71.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14840 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 6.5,-67.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14841 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 12.5,-63.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14842 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 2.5,-35.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14843 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 2.5,-19.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14844 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -4.5,-21.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14845 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 6.5,-24.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14846 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 7.5,-30.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14847 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 13.5,-22.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14848 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 15.5,-14.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14849 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 17.5,-9.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14850 + components: + - type: Transform + pos: 17.5,-19.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14851 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 17.5,-31.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14852 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 21.5,-24.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14853 + components: + - type: Transform + pos: 23.5,-18.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14854 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 28.5,-24.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14855 + components: + - type: Transform + pos: 32.5,-18.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14856 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 31.5,-28.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14857 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 37.5,-18.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14858 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 40.5,-30.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14859 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 46.5,-30.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14860 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 45.5,-23.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14861 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 27.5,-30.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14862 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 34.5,-10.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14863 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 41.5,-5.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14864 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 29.5,-3.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14865 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 22.5,-0.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14866 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 11.5,-0.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14867 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 17.5,7.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14868 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 19.5,14.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14869 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 42.5,8.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14870 + components: + - type: Transform + pos: 41.5,13.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14871 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 29.5,9.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14872 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 25.5,14.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14873 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 20.5,17.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14874 + components: + - type: Transform + pos: 22.5,22.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14875 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 29.5,17.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14876 + components: + - type: Transform + pos: 35.5,18.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14877 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 41.5,18.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14878 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 38.5,23.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14879 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 43.5,29.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14880 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 43.5,41.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14881 + components: + - type: Transform + pos: 39.5,41.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14882 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 25.5,36.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14883 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 33.5,32.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14884 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 25.5,39.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14885 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 22.5,31.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14886 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 15.5,39.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14887 + components: + - type: Transform + pos: 15.5,43.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14888 + components: + - type: Transform + pos: 21.5,45.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14889 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 15.5,36.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14890 + components: + - type: Transform + pos: 8.5,13.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14891 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -9.5,-0.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14892 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -22.5,-0.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14893 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -28.5,-5.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14894 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -28.5,4.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14895 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -24.5,5.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14896 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -33.5,9.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14897 + components: + - type: Transform + pos: -32.5,15.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14898 + components: + - type: Transform + pos: -41.5,8.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14899 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -37.5,-19.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14900 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -33.5,-6.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14901 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -31.5,-22.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14902 + components: + - type: Transform + pos: -21.5,-22.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14903 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -21.5,-27.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14904 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -21.5,-31.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14905 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -27.5,-17.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14906 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -29.5,-11.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14907 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -16.5,-22.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14908 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -16.5,-19.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14909 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -9.5,-27.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14910 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -5.5,-31.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14911 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -16.5,-37.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14912 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -16.5,-40.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14913 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -11.5,-42.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14914 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -16.5,-43.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14915 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -16.5,-46.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14916 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -16.5,-49.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14917 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -3.5,-37.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14918 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -3.5,-39.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14919 + components: + - type: Transform + pos: -33.5,-28.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14920 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -38.5,-36.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14921 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -28.5,-40.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14922 + components: + - type: Transform + pos: -33.5,-39.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14923 + components: + - type: Transform + pos: -43.5,-33.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14924 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -42.5,-39.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14925 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -26.5,-47.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14926 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -34.5,-49.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14927 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 29.5,31.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14928 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 6.5,16.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14929 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -10.5,13.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14930 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -4.5,16.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14931 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -16.5,12.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14932 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -10.5,9.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14933 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -8.5,19.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14934 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -19.5,20.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14935 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -12.5,23.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14936 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -7.5,24.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14937 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -3.5,23.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14938 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -10.5,28.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14939 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -16.5,34.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14940 + components: + - type: Transform + pos: -14.5,39.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14941 + components: + - type: Transform + pos: -9.5,33.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14942 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -20.5,25.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14943 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -19.5,34.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14944 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -28.5,35.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14945 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -23.5,40.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14946 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 2.5,15.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14947 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -28.5,29.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14948 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -35.5,29.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14949 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -33.5,32.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14950 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -33.5,35.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14951 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -33.5,38.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14952 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -40.5,25.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14953 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -32.5,24.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14954 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -36.5,22.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14955 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -39.5,21.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14956 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -25.5,24.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14957 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -6.5,38.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14958 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 5.5,30.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14959 + components: + - type: Transform + pos: 5.5,40.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14960 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 2.5,46.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14961 + components: + - type: Transform + pos: 8.5,54.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14962 + components: + - type: Transform + pos: 1.5,60.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14963 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -4.5,55.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14964 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -5.5,70.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14965 + components: + - type: Transform + pos: 0.5,71.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14966 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 6.5,70.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14967 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 9.5,77.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14968 + components: + - type: Transform + pos: 8.5,84.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14969 + components: + - type: Transform + pos: 1.5,85.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14970 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -6.5,83.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14971 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -6.5,76.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14972 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 7.5,-41.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14973 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 44.5,-16.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14974 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 41.5,-15.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14975 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 17.5,22.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 14976 + components: + - type: Transform + pos: -10.5,-31.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' +- proto: Gateway + entities: + - uid: 14977 + components: + - type: Transform + pos: -27.5,-11.5 + parent: 2 +- proto: GeigerCounter + entities: + - uid: 14978 + components: + - type: Transform + pos: -7.492387,-64.15177 + parent: 2 +- proto: GeneratorBasic15kW + entities: + - uid: 14979 + components: + - type: Transform + pos: -6.5,76.5 + parent: 2 +- proto: Girder + entities: + - uid: 14980 + components: + - type: Transform + pos: -19.5,12.5 + parent: 2 + - uid: 14981 + components: + - type: Transform + anchored: False + pos: -50.549862,14.541412 + parent: 2 + - type: Physics + bodyType: Dynamic + - uid: 14982 + components: + - type: Transform + pos: 20.5,-5.5 + parent: 2 + - uid: 14983 + components: + - type: Transform + pos: 22.5,-10.5 + parent: 2 + - uid: 14984 + components: + - type: Transform + pos: -18.5,16.5 + parent: 2 + - uid: 14985 + components: + - type: Transform + pos: -54.5,12.5 + parent: 2 + - uid: 14986 + components: + - type: Transform + pos: -58.5,28.5 + parent: 2 + - uid: 14987 + components: + - type: Transform + pos: 36.5,-34.5 + parent: 2 + - uid: 14988 + components: + - type: Transform + pos: 37.5,-36.5 + parent: 2 + - uid: 14989 + components: + - type: Transform + pos: 44.5,-37.5 + parent: 2 +- proto: GlimmerProber + entities: + - uid: 14990 + components: + - type: Transform + pos: -24.5,-39.5 + parent: 2 +- proto: GravityGenerator + entities: + - uid: 14991 + components: + - type: Transform + pos: 7.5,31.5 + parent: 2 +- proto: Grille + entities: + - uid: 615 + components: + - type: Transform + pos: 15.5,-32.5 + parent: 2 + - uid: 616 + components: + - type: Transform + pos: 15.5,-31.5 + parent: 2 + - uid: 9182 + components: + - type: Transform + pos: 15.5,-30.5 + parent: 2 + - uid: 9213 + components: + - type: Transform + pos: -35.5,-0.5 + parent: 2 + - uid: 14992 + components: + - type: Transform + pos: 3.5,25.5 + parent: 2 + - uid: 14993 + components: + - type: Transform + pos: 3.5,27.5 + parent: 2 + - uid: 14994 + components: + - type: Transform + pos: -3.5,12.5 + parent: 2 + - uid: 14995 + components: + - type: Transform + pos: 4.5,12.5 + parent: 2 + - uid: 14996 + components: + - type: Transform + pos: -8.5,9.5 + parent: 2 + - uid: 14997 + components: + - type: Transform + pos: -12.5,2.5 + parent: 2 + - uid: 14998 + components: + - type: Transform + pos: -12.5,-0.5 + parent: 2 + - uid: 14999 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -12.5,17.5 + parent: 2 + - uid: 15000 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -11.5,17.5 + parent: 2 + - uid: 15001 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -10.5,17.5 + parent: 2 + - uid: 15002 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -14.5,12.5 + parent: 2 + - uid: 15003 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -14.5,10.5 + parent: 2 + - uid: 15004 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 3.5,17.5 + parent: 2 + - uid: 15005 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 3.5,16.5 + parent: 2 + - uid: 15006 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 3.5,19.5 + parent: 2 + - uid: 15007 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 8.5,19.5 + parent: 2 + - uid: 15008 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 8.5,17.5 + parent: 2 + - uid: 15009 + components: + - type: Transform + pos: -0.5,14.5 + parent: 2 + - uid: 15010 + components: + - type: Transform + pos: 2.5,14.5 + parent: 2 + - uid: 15011 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 14.5,2.5 + parent: 2 + - uid: 15012 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 14.5,-0.5 + parent: 2 + - uid: 15013 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 2.5,-12.5 + parent: 2 + - uid: 15014 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -0.5,-12.5 + parent: 2 + - uid: 15016 + components: + - type: Transform + pos: -25.5,-1.5 + parent: 2 + - uid: 15017 + components: + - type: Transform + pos: -26.5,-1.5 + parent: 2 + - uid: 15018 + components: + - type: Transform + pos: -27.5,-1.5 + parent: 2 + - uid: 15019 + components: + - type: Transform + pos: -31.5,-3.5 + parent: 2 + - uid: 15020 + components: + - type: Transform + pos: -31.5,-4.5 + parent: 2 + - uid: 15021 + components: + - type: Transform + pos: -31.5,-5.5 + parent: 2 + - uid: 15022 + components: + - type: Transform + pos: -31.5,5.5 + parent: 2 + - uid: 15023 + components: + - type: Transform + pos: -31.5,7.5 + parent: 2 + - uid: 15024 + components: + - type: Transform + pos: -26.5,6.5 + parent: 2 + - uid: 15025 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -37.5,5.5 + parent: 2 + - uid: 15026 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -39.5,5.5 + parent: 2 + - uid: 15027 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -44.5,13.5 + parent: 2 + - uid: 15028 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -43.5,13.5 + parent: 2 + - uid: 15029 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -42.5,13.5 + parent: 2 + - uid: 15030 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -41.5,13.5 + parent: 2 + - uid: 15031 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -45.5,11.5 + parent: 2 + - uid: 15032 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -45.5,10.5 + parent: 2 + - uid: 15033 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -45.5,9.5 + parent: 2 + - uid: 15034 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -45.5,8.5 + parent: 2 + - uid: 15035 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -36.5,11.5 + parent: 2 + - uid: 15036 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -35.5,1.5 + parent: 2 + - uid: 15037 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -35.5,0.5 + parent: 2 + - uid: 15039 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -35.5,-1.5 + parent: 2 + - uid: 15040 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -35.5,-2.5 + parent: 2 + - uid: 15041 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -35.5,-3.5 + parent: 2 + - uid: 15042 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -37.5,-6.5 + parent: 2 + - uid: 15043 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -45.5,-5.5 + parent: 2 + - uid: 15044 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -45.5,-4.5 + parent: 2 + - uid: 15045 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -45.5,-3.5 + parent: 2 + - uid: 15046 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -43.5,-4.5 + parent: 2 + - uid: 15047 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -43.5,-3.5 + parent: 2 + - uid: 15048 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -43.5,-2.5 + parent: 2 + - uid: 15049 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -45.5,4.5 + parent: 2 + - uid: 15050 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -45.5,3.5 + parent: 2 + - uid: 15051 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -45.5,2.5 + parent: 2 + - uid: 15052 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -43.5,3.5 + parent: 2 + - uid: 15053 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -43.5,2.5 + parent: 2 + - uid: 15054 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -43.5,1.5 + parent: 2 + - uid: 15055 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -45.5,-8.5 + parent: 2 + - uid: 15056 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -45.5,-9.5 + parent: 2 + - uid: 15057 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -45.5,-10.5 + parent: 2 + - uid: 15058 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -44.5,-10.5 + parent: 2 + - uid: 15059 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -43.5,-10.5 + parent: 2 + - uid: 15060 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -42.5,-10.5 + parent: 2 + - uid: 15061 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -41.5,-10.5 + parent: 2 + - uid: 15062 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -41.5,-12.5 + parent: 2 + - uid: 15063 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -45.5,-12.5 + parent: 2 + - uid: 15064 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -45.5,16.5 + parent: 2 + - uid: 15065 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -45.5,17.5 + parent: 2 + - uid: 15066 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -39.5,-17.5 + parent: 2 + - uid: 15067 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -39.5,-16.5 + parent: 2 + - uid: 15068 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -49.5,-23.5 + parent: 2 + - uid: 15069 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -49.5,-15.5 + parent: 2 + - uid: 15070 + components: + - type: Transform + pos: -27.5,-20.5 + parent: 2 + - uid: 15071 + components: + - type: Transform + pos: -27.5,-24.5 + parent: 2 + - uid: 15072 + components: + - type: Transform + pos: -27.5,-23.5 + parent: 2 + - uid: 15073 + components: + - type: Transform + pos: -30.5,-25.5 + parent: 2 + - uid: 15074 + components: + - type: Transform + pos: -28.5,-25.5 + parent: 2 + - uid: 15075 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -28.5,-28.5 + parent: 2 + - uid: 15076 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -30.5,-28.5 + parent: 2 + - uid: 15077 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -31.5,-35.5 + parent: 2 + - uid: 15078 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -31.5,-34.5 + parent: 2 + - uid: 15079 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -31.5,-33.5 + parent: 2 + - uid: 15080 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -30.5,-33.5 + parent: 2 + - uid: 15081 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -26.5,-34.5 + parent: 2 + - uid: 15082 + components: + - type: Transform + pos: -29.5,-36.5 + parent: 2 + - uid: 15083 + components: + - type: Transform + pos: -34.5,-44.5 + parent: 2 + - uid: 15084 + components: + - type: Transform + pos: -32.5,-44.5 + parent: 2 + - uid: 15085 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -23.5,-31.5 + parent: 2 + - uid: 15086 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -23.5,-30.5 + parent: 2 + - uid: 15087 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -17.5,-25.5 + parent: 2 + - uid: 15088 + components: + - type: Transform + pos: -23.5,-25.5 + parent: 2 + - uid: 15089 + components: + - type: Transform + pos: -21.5,-25.5 + parent: 2 + - uid: 15090 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -15.5,-25.5 + parent: 2 + - uid: 15091 + components: + - type: Transform + pos: -18.5,-29.5 + parent: 2 + - uid: 15092 + components: + - type: Transform + pos: -16.5,-29.5 + parent: 2 + - uid: 15093 + components: + - type: Transform + pos: -17.5,-29.5 + parent: 2 + - uid: 15094 + components: + - type: Transform + pos: -19.5,-31.5 + parent: 2 + - uid: 15095 + components: + - type: Transform + pos: -19.5,-30.5 + parent: 2 + - uid: 15096 + components: + - type: Transform + pos: -12.5,-33.5 + parent: 2 + - uid: 15097 + components: + - type: Transform + pos: -10.5,-33.5 + parent: 2 + - uid: 15098 + components: + - type: Transform + pos: -4.5,-26.5 + parent: 2 + - uid: 15099 + components: + - type: Transform + pos: -1.5,-26.5 + parent: 2 + - uid: 15100 + components: + - type: Transform + pos: -1.5,-28.5 + parent: 2 + - uid: 15101 + components: + - type: Transform + pos: -4.5,-28.5 + parent: 2 + - uid: 15102 + components: + - type: Transform + pos: -6.5,-29.5 + parent: 2 + - uid: 15103 + components: + - type: Transform + pos: -8.5,-29.5 + parent: 2 + - uid: 15104 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -1.5,-32.5 + parent: 2 + - uid: 15105 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -1.5,-33.5 + parent: 2 + - uid: 15106 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -8.5,-34.5 + parent: 2 + - uid: 15107 + components: + - type: Transform + pos: -14.5,-37.5 + parent: 2 + - uid: 15108 + components: + - type: Transform + pos: -14.5,-35.5 + parent: 2 + - uid: 15109 + components: + - type: Transform + pos: -14.5,-38.5 + parent: 2 + - uid: 15110 + components: + - type: Transform + pos: -14.5,-49.5 + parent: 2 + - uid: 15111 + components: + - type: Transform + pos: -14.5,-47.5 + parent: 2 + - uid: 15112 + components: + - type: Transform + pos: -14.5,-46.5 + parent: 2 + - uid: 15113 + components: + - type: Transform + pos: -14.5,-44.5 + parent: 2 + - uid: 15114 + components: + - type: Transform + pos: -14.5,-43.5 + parent: 2 + - uid: 15115 + components: + - type: Transform + pos: -14.5,-41.5 + parent: 2 + - uid: 15116 + components: + - type: Transform + pos: -14.5,-40.5 + parent: 2 + - uid: 15117 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -9.5,-49.5 + parent: 2 + - uid: 15118 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -9.5,-47.5 + parent: 2 + - uid: 15119 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -9.5,-43.5 + parent: 2 + - uid: 15120 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -9.5,-41.5 + parent: 2 + - uid: 15121 + components: + - type: Transform + pos: -44.5,-42.5 + parent: 2 + - uid: 15122 + components: + - type: Transform + pos: -45.5,-40.5 + parent: 2 + - uid: 15123 + components: + - type: Transform + pos: -45.5,-39.5 + parent: 2 + - uid: 15124 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -48.5,-30.5 + parent: 2 + - uid: 15125 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -48.5,-31.5 + parent: 2 + - uid: 15126 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -48.5,-32.5 + parent: 2 + - uid: 15127 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -47.5,-33.5 + parent: 2 + - uid: 15128 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -46.5,-36.5 + parent: 2 + - uid: 15129 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -29.5,-46.5 + parent: 2 + - uid: 15130 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -29.5,-48.5 + parent: 2 + - uid: 15131 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -39.5,-48.5 + parent: 2 + - uid: 15132 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -43.5,-51.5 + parent: 2 + - uid: 15133 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -42.5,-51.5 + parent: 2 + - uid: 15134 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -44.5,-50.5 + parent: 2 + - uid: 15135 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -44.5,-49.5 + parent: 2 + - uid: 15136 + components: + - type: Transform + pos: -37.5,-55.5 + parent: 2 + - uid: 15137 + components: + - type: Transform + pos: -37.5,-59.5 + parent: 2 + - uid: 15138 + components: + - type: Transform + pos: -32.5,-61.5 + parent: 2 + - uid: 15139 + components: + - type: Transform + pos: -35.5,-65.5 + parent: 2 + - uid: 15140 + components: + - type: Transform + pos: -37.5,-63.5 + parent: 2 + - uid: 15141 + components: + - type: Transform + pos: -31.5,-65.5 + parent: 2 + - uid: 15142 + components: + - type: Transform + pos: -30.5,-65.5 + parent: 2 + - uid: 15143 + components: + - type: Transform + pos: -29.5,-65.5 + parent: 2 + - uid: 15144 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -1.5,-37.5 + parent: 2 + - uid: 15145 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -1.5,-35.5 + parent: 2 + - uid: 15146 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 28.5,-1.5 + parent: 2 + - uid: 15147 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 36.5,-1.5 + parent: 2 + - uid: 15148 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 21.5,3.5 + parent: 2 + - uid: 15149 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 22.5,3.5 + parent: 2 + - uid: 15150 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 23.5,3.5 + parent: 2 + - uid: 15151 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 33.5,-1.5 + parent: 2 + - uid: 15152 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 30.5,-1.5 + parent: 2 + - uid: 15153 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 37.5,2.5 + parent: 2 + - uid: 15154 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 37.5,1.5 + parent: 2 + - uid: 15155 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 37.5,0.5 + parent: 2 + - uid: 15156 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 36.5,6.5 + parent: 2 + - uid: 15157 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 36.5,8.5 + parent: 2 + - uid: 15159 + components: + - type: Transform + pos: 34.5,12.5 + parent: 2 + - uid: 15160 + components: + - type: Transform + pos: 33.5,12.5 + parent: 2 + - uid: 15161 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 30.5,21.5 + parent: 2 + - uid: 15162 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 28.5,21.5 + parent: 2 + - uid: 15163 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 39.5,17.5 + parent: 2 + - uid: 15164 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 44.5,17.5 + parent: 2 + - uid: 15165 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 44.5,18.5 + parent: 2 + - uid: 15166 + components: + - type: Transform + pos: 44.5,13.5 + parent: 2 + - uid: 15167 + components: + - type: Transform + pos: 44.5,14.5 + parent: 2 + - uid: 15168 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 44.5,8.5 + parent: 2 + - uid: 15169 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 44.5,7.5 + parent: 2 + - uid: 15170 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 44.5,6.5 + parent: 2 + - uid: 15171 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 45.5,-0.5 + parent: 2 + - uid: 15172 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 58.5,17.5 + parent: 2 + - uid: 15173 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 59.5,17.5 + parent: 2 + - uid: 15174 + components: + - type: Transform + pos: 58.5,32.5 + parent: 2 + - uid: 15175 + components: + - type: Transform + pos: 59.5,32.5 + parent: 2 + - uid: 15176 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 31.5,22.5 + parent: 2 + - uid: 15177 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 31.5,24.5 + parent: 2 + - uid: 15178 + components: + - type: Transform + pos: 11.5,28.5 + parent: 2 + - uid: 15179 + components: + - type: Transform + pos: 12.5,28.5 + parent: 2 + - uid: 15180 + components: + - type: Transform + pos: 13.5,28.5 + parent: 2 + - uid: 15181 + components: + - type: Transform + pos: 14.5,28.5 + parent: 2 + - uid: 15182 + components: + - type: Transform + pos: 32.5,31.5 + parent: 2 + - uid: 15183 + components: + - type: Transform + pos: 34.5,31.5 + parent: 2 + - uid: 15184 + components: + - type: Transform + pos: 36.5,31.5 + parent: 2 + - uid: 15185 + components: + - type: Transform + pos: 38.5,31.5 + parent: 2 + - uid: 15186 + components: + - type: Transform + pos: 40.5,31.5 + parent: 2 + - uid: 15187 + components: + - type: Transform + pos: 26.5,30.5 + parent: 2 + - uid: 15188 + components: + - type: Transform + pos: 26.5,32.5 + parent: 2 + - uid: 15189 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 17.5,36.5 + parent: 2 + - uid: 15190 + components: + - type: Transform + pos: 12.5,35.5 + parent: 2 + - uid: 15191 + components: + - type: Transform + pos: 12.5,36.5 + parent: 2 + - uid: 15192 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 12.5,43.5 + parent: 2 + - uid: 15193 + components: + - type: Transform + pos: 21.5,47.5 + parent: 2 + - uid: 15194 + components: + - type: Transform + pos: 21.5,46.5 + parent: 2 + - uid: 15195 + components: + - type: Transform + pos: 19.5,47.5 + parent: 2 + - uid: 15196 + components: + - type: Transform + pos: 19.5,46.5 + parent: 2 + - uid: 15197 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 26.5,41.5 + parent: 2 + - uid: 15198 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 25.5,41.5 + parent: 2 + - uid: 15199 + components: + - type: Transform + pos: 41.5,32.5 + parent: 2 + - uid: 15200 + components: + - type: Transform + pos: 41.5,33.5 + parent: 2 + - uid: 15201 + components: + - type: Transform + pos: 41.5,34.5 + parent: 2 + - uid: 15202 + components: + - type: Transform + pos: 41.5,36.5 + parent: 2 + - uid: 15203 + components: + - type: Transform + pos: 41.5,37.5 + parent: 2 + - uid: 15204 + components: + - type: Transform + pos: 41.5,39.5 + parent: 2 + - uid: 15205 + components: + - type: Transform + pos: 41.5,40.5 + parent: 2 + - uid: 15206 + components: + - type: Transform + pos: 41.5,41.5 + parent: 2 + - uid: 15207 + components: + - type: Transform + pos: 41.5,42.5 + parent: 2 + - uid: 15208 + components: + - type: Transform + pos: 40.5,42.5 + parent: 2 + - uid: 15209 + components: + - type: Transform + pos: 39.5,42.5 + parent: 2 + - uid: 15210 + components: + - type: Transform + pos: 38.5,42.5 + parent: 2 + - uid: 15211 + components: + - type: Transform + pos: 37.5,42.5 + parent: 2 + - uid: 15212 + components: + - type: Transform + pos: 36.5,42.5 + parent: 2 + - uid: 15213 + components: + - type: Transform + pos: 35.5,42.5 + parent: 2 + - uid: 15214 + components: + - type: Transform + pos: 34.5,42.5 + parent: 2 + - uid: 15215 + components: + - type: Transform + pos: 33.5,42.5 + parent: 2 + - uid: 15216 + components: + - type: Transform + pos: 32.5,42.5 + parent: 2 + - uid: 15217 + components: + - type: Transform + pos: 45.5,45.5 + parent: 2 + - uid: 15218 + components: + - type: Transform + pos: 45.5,44.5 + parent: 2 + - uid: 15219 + components: + - type: Transform + pos: 45.5,43.5 + parent: 2 + - uid: 15220 + components: + - type: Transform + pos: 45.5,42.5 + parent: 2 + - uid: 15221 + components: + - type: Transform + pos: 45.5,36.5 + parent: 2 + - uid: 15222 + components: + - type: Transform + pos: 45.5,35.5 + parent: 2 + - uid: 15223 + components: + - type: Transform + pos: 45.5,34.5 + parent: 2 + - uid: 15224 + components: + - type: Transform + pos: 45.5,29.5 + parent: 2 + - uid: 15225 + components: + - type: Transform + pos: 45.5,28.5 + parent: 2 + - uid: 15226 + components: + - type: Transform + pos: 45.5,27.5 + parent: 2 + - uid: 15227 + components: + - type: Transform + pos: 44.5,47.5 + parent: 2 + - uid: 15228 + components: + - type: Transform + pos: 42.5,47.5 + parent: 2 + - uid: 15229 + components: + - type: Transform + pos: 44.5,49.5 + parent: 2 + - uid: 15230 + components: + - type: Transform + pos: 42.5,49.5 + parent: 2 + - uid: 15231 + components: + - type: Transform + pos: 45.5,37.5 + parent: 2 + - uid: 15232 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 29.5,47.5 + parent: 2 + - uid: 15233 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 51.5,46.5 + parent: 2 + - uid: 15234 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 38.5,-13.5 + parent: 2 + - uid: 15235 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 36.5,-13.5 + parent: 2 + - uid: 15236 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 43.5,-13.5 + parent: 2 + - uid: 15237 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 45.5,-11.5 + parent: 2 + - uid: 15238 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 45.5,-10.5 + parent: 2 + - uid: 15239 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 45.5,-8.5 + parent: 2 + - uid: 15240 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 45.5,-7.5 + parent: 2 + - uid: 15241 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 47.5,-13.5 + parent: 2 + - uid: 15242 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 47.5,-11.5 + parent: 2 + - uid: 15243 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 47.5,-7.5 + parent: 2 + - uid: 15244 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 46.5,-7.5 + parent: 2 + - uid: 15245 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 47.5,-5.5 + parent: 2 + - uid: 15246 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 47.5,-15.5 + parent: 2 + - uid: 15247 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 46.5,-15.5 + parent: 2 + - uid: 15248 + components: + - type: Transform + pos: -17.5,18.5 + parent: 2 + - uid: 15249 + components: + - type: Transform + pos: -17.5,20.5 + parent: 2 + - uid: 15250 + components: + - type: Transform + pos: -12.5,21.5 + parent: 2 + - uid: 15251 + components: + - type: Transform + pos: -11.5,21.5 + parent: 2 + - uid: 15252 + components: + - type: Transform + pos: -15.5,21.5 + parent: 2 + - uid: 15253 + components: + - type: Transform + pos: -9.5,21.5 + parent: 2 + - uid: 15254 + components: + - type: Transform + pos: -8.5,21.5 + parent: 2 + - uid: 15255 + components: + - type: Transform + pos: -6.5,21.5 + parent: 2 + - uid: 15256 + components: + - type: Transform + pos: -5.5,21.5 + parent: 2 + - uid: 15257 + components: + - type: Transform + pos: -3.5,21.5 + parent: 2 + - uid: 15258 + components: + - type: Transform + pos: -2.5,21.5 + parent: 2 + - uid: 15259 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -15.5,24.5 + parent: 2 + - uid: 15260 + components: + - type: Transform + pos: -17.5,25.5 + parent: 2 + - uid: 15261 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -5.5,25.5 + parent: 2 + - uid: 15262 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -6.5,25.5 + parent: 2 + - uid: 15263 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -8.5,25.5 + parent: 2 + - uid: 15264 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -9.5,25.5 + parent: 2 + - uid: 15265 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -12.5,25.5 + parent: 2 + - uid: 15266 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -3.5,25.5 + parent: 2 + - uid: 15267 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -25.5,26.5 + parent: 2 + - uid: 15268 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -24.5,26.5 + parent: 2 + - uid: 15269 + components: + - type: Transform + pos: -16.5,30.5 + parent: 2 + - uid: 15270 + components: + - type: Transform + pos: -14.5,30.5 + parent: 2 + - uid: 15271 + components: + - type: Transform + pos: -11.5,30.5 + parent: 2 + - uid: 15272 + components: + - type: Transform + pos: -13.5,31.5 + parent: 2 + - uid: 15273 + components: + - type: Transform + pos: -8.5,36.5 + parent: 2 + - uid: 15274 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -15.5,37.5 + parent: 2 + - uid: 15275 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -10.5,39.5 + parent: 2 + - uid: 15276 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -7.5,38.5 + parent: 2 + - uid: 15277 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -8.5,40.5 + parent: 2 + - uid: 15278 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -22.5,37.5 + parent: 2 + - uid: 15279 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -24.5,37.5 + parent: 2 + - uid: 15280 + components: + - type: Transform + pos: -24.5,46.5 + parent: 2 + - uid: 15281 + components: + - type: Transform + pos: -23.5,46.5 + parent: 2 + - uid: 15282 + components: + - type: Transform + pos: -22.5,46.5 + parent: 2 + - uid: 15283 + components: + - type: Transform + pos: -21.5,46.5 + parent: 2 + - uid: 15284 + components: + - type: Transform + pos: -21.5,45.5 + parent: 2 + - uid: 15285 + components: + - type: Transform + pos: -20.5,45.5 + parent: 2 + - uid: 15286 + components: + - type: Transform + pos: -20.5,44.5 + parent: 2 + - uid: 15287 + components: + - type: Transform + pos: -20.5,43.5 + parent: 2 + - uid: 15288 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -25.5,36.5 + parent: 2 + - uid: 15289 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -25.5,34.5 + parent: 2 + - uid: 15290 + components: + - type: Transform + pos: -35.5,33.5 + parent: 2 + - uid: 15291 + components: + - type: Transform + pos: -35.5,36.5 + parent: 2 + - uid: 15292 + components: + - type: Transform + pos: -35.5,39.5 + parent: 2 + - uid: 15293 + components: + - type: Transform + pos: -38.5,28.5 + parent: 2 + - uid: 15294 + components: + - type: Transform + pos: -38.5,30.5 + parent: 2 + - uid: 15295 + components: + - type: Transform + pos: -43.5,32.5 + parent: 2 + - uid: 15296 + components: + - type: Transform + pos: -43.5,33.5 + parent: 2 + - uid: 15297 + components: + - type: Transform + pos: -43.5,34.5 + parent: 2 + - uid: 15298 + components: + - type: Transform + pos: -41.5,38.5 + parent: 2 + - uid: 15299 + components: + - type: Transform + pos: -40.5,38.5 + parent: 2 + - uid: 15300 + components: + - type: Transform + pos: -38.5,39.5 + parent: 2 + - uid: 15301 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -37.5,27.5 + parent: 2 + - uid: 15302 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -35.5,27.5 + parent: 2 + - uid: 15303 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -40.5,23.5 + parent: 2 + - uid: 15304 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -34.5,28.5 + parent: 2 + - uid: 15305 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -34.5,30.5 + parent: 2 + - uid: 15306 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -3.5,32.5 + parent: 2 + - uid: 15307 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -3.5,35.5 + parent: 2 + - uid: 15308 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 7.5,45.5 + parent: 2 + - uid: 15309 + components: + - type: Transform + pos: 4.5,36.5 + parent: 2 + - uid: 15310 + components: + - type: Transform + pos: 5.5,36.5 + parent: 2 + - uid: 15311 + components: + - type: Transform + pos: 6.5,36.5 + parent: 2 + - uid: 15312 + components: + - type: Transform + pos: -12.5,47.5 + parent: 2 + - uid: 15313 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -12.5,50.5 + parent: 2 + - uid: 15314 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -12.5,51.5 + parent: 2 + - uid: 15315 + components: + - type: Transform + pos: -9.5,55.5 + parent: 2 + - uid: 15316 + components: + - type: Transform + pos: -4.5,57.5 + parent: 2 + - uid: 15317 + components: + - type: Transform + pos: -2.5,57.5 + parent: 2 + - uid: 15318 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 5.5,48.5 + parent: 2 + - uid: 15319 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 7.5,51.5 + parent: 2 + - uid: 15320 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 14.5,46.5 + parent: 2 + - uid: 15321 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 12.5,46.5 + parent: 2 + - uid: 15322 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 11.5,45.5 + parent: 2 + - uid: 15323 + components: + - type: Transform + pos: 3.5,53.5 + parent: 2 + - uid: 15324 + components: + - type: Transform + pos: 6.5,57.5 + parent: 2 + - uid: 15325 + components: + - type: Transform + pos: 11.5,55.5 + parent: 2 + - uid: 15326 + components: + - type: Transform + pos: 11.5,54.5 + parent: 2 + - uid: 15327 + components: + - type: Transform + pos: 11.5,53.5 + parent: 2 + - uid: 15328 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 1.5,54.5 + parent: 2 + - uid: 15329 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 0.5,54.5 + parent: 2 + - uid: 15330 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 1.5,57.5 + parent: 2 + - uid: 15331 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 0.5,57.5 + parent: 2 + - uid: 15332 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -6.5,60.5 + parent: 2 + - uid: 15333 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -6.5,61.5 + parent: 2 + - uid: 15334 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -5.5,61.5 + parent: 2 + - uid: 15335 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -5.5,62.5 + parent: 2 + - uid: 15336 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -3.5,62.5 + parent: 2 + - uid: 15337 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -2.5,62.5 + parent: 2 + - uid: 15338 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -2.5,63.5 + parent: 2 + - uid: 15339 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -1.5,63.5 + parent: 2 + - uid: 15340 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -0.5,63.5 + parent: 2 + - uid: 15341 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 0.5,63.5 + parent: 2 + - uid: 15342 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 1.5,63.5 + parent: 2 + - uid: 15343 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 2.5,63.5 + parent: 2 + - uid: 15344 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 3.5,63.5 + parent: 2 + - uid: 15345 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 4.5,63.5 + parent: 2 + - uid: 15346 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 4.5,62.5 + parent: 2 + - uid: 15347 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 5.5,62.5 + parent: 2 + - uid: 15348 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 7.5,62.5 + parent: 2 + - uid: 15349 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 7.5,61.5 + parent: 2 + - uid: 15350 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 8.5,61.5 + parent: 2 + - uid: 15351 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 8.5,60.5 + parent: 2 + - uid: 15352 + components: + - type: Transform + pos: -45.5,32.5 + parent: 2 + - uid: 15353 + components: + - type: Transform + pos: -45.5,35.5 + parent: 2 + - uid: 15354 + components: + - type: Transform + pos: -55.5,32.5 + parent: 2 + - uid: 15355 + components: + - type: Transform + pos: -56.5,32.5 + parent: 2 + - uid: 15356 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -45.5,40.5 + parent: 2 + - uid: 15357 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -35.5,42.5 + parent: 2 + - uid: 15358 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -32.5,46.5 + parent: 2 + - uid: 15359 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -33.5,46.5 + parent: 2 + - uid: 15360 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -26.5,48.5 + parent: 2 + - uid: 15361 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -25.5,48.5 + parent: 2 + - uid: 15362 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -24.5,48.5 + parent: 2 + - uid: 15363 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -23.5,48.5 + parent: 2 + - uid: 15364 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -22.5,48.5 + parent: 2 + - uid: 15365 + components: + - type: Transform + pos: 0.5,73.5 + parent: 2 + - uid: 15366 + components: + - type: Transform + pos: -3.5,68.5 + parent: 2 + - uid: 15367 + components: + - type: Transform + pos: -2.5,68.5 + parent: 2 + - uid: 15368 + components: + - type: Transform + pos: 5.5,68.5 + parent: 2 + - uid: 15369 + components: + - type: Transform + pos: 1.5,73.5 + parent: 2 + - uid: 15370 + components: + - type: Transform + pos: 2.5,73.5 + parent: 2 + - uid: 15371 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -0.5,86.5 + parent: 2 + - uid: 15372 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 0.5,86.5 + parent: 2 + - uid: 15373 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 1.5,86.5 + parent: 2 + - uid: 15374 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 2.5,86.5 + parent: 2 + - uid: 15375 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 3.5,86.5 + parent: 2 + - uid: 15376 + components: + - type: Transform + pos: 0.5,81.5 + parent: 2 + - uid: 15377 + components: + - type: Transform + pos: 2.5,81.5 + parent: 2 + - uid: 15378 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 14.5,-12.5 + parent: 2 + - uid: 15379 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 20.5,-12.5 + parent: 2 + - uid: 15380 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 19.5,-12.5 + parent: 2 + - uid: 15381 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 18.5,-12.5 + parent: 2 + - uid: 15382 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 14.5,-17.5 + parent: 2 + - uid: 15383 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 12.5,-17.5 + parent: 2 + - uid: 15384 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 17.5,-21.5 + parent: 2 + - uid: 15385 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 19.5,-21.5 + parent: 2 + - uid: 15386 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 23.5,-21.5 + parent: 2 + - uid: 15387 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 22.5,-21.5 + parent: 2 + - uid: 15388 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 34.5,-22.5 + parent: 2 + - uid: 15389 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 33.5,-22.5 + parent: 2 + - uid: 15390 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 29.5,-22.5 + parent: 2 + - uid: 15391 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 28.5,-22.5 + parent: 2 + - uid: 15392 + components: + - type: Transform + pos: 39.5,-17.5 + parent: 2 + - uid: 15393 + components: + - type: Transform + pos: 39.5,-15.5 + parent: 2 + - uid: 15394 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 42.5,-20.5 + parent: 2 + - uid: 15395 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 42.5,-21.5 + parent: 2 + - uid: 15396 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 42.5,-22.5 + parent: 2 + - uid: 15397 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 42.5,-23.5 + parent: 2 + - uid: 15398 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 42.5,-25.5 + parent: 2 + - uid: 15399 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 47.5,-24.5 + parent: 2 + - uid: 15400 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 47.5,-23.5 + parent: 2 + - uid: 15401 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 47.5,-22.5 + parent: 2 + - uid: 15402 + components: + - type: Transform + pos: 48.5,-30.5 + parent: 2 + - uid: 15403 + components: + - type: Transform + pos: 48.5,-32.5 + parent: 2 + - uid: 15404 + components: + - type: Transform + pos: 41.5,-26.5 + parent: 2 + - uid: 15405 + components: + - type: Transform + pos: 38.5,-26.5 + parent: 2 + - uid: 15406 + components: + - type: Transform + pos: 31.5,-26.5 + parent: 2 + - uid: 15407 + components: + - type: Transform + pos: 29.5,-27.5 + parent: 2 + - uid: 15408 + components: + - type: Transform + pos: 29.5,-28.5 + parent: 2 + - uid: 15409 + components: + - type: Transform + pos: 29.5,-29.5 + parent: 2 + - uid: 15410 + components: + - type: Transform + pos: 29.5,-31.5 + parent: 2 + - uid: 15411 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 4.5,-28.5 + parent: 2 + - uid: 15412 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 11.5,-32.5 + parent: 2 + - uid: 15413 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 10.5,-28.5 + parent: 2 + - uid: 15414 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 9.5,-28.5 + parent: 2 + - uid: 15415 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 8.5,-28.5 + parent: 2 + - uid: 15416 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 6.5,-20.5 + parent: 2 + - uid: 15417 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 4.5,-20.5 + parent: 2 + - uid: 15418 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 10.5,-20.5 + parent: 2 + - uid: 15419 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 11.5,-19.5 + parent: 2 + - uid: 15420 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 3.5,-39.5 + parent: 2 + - uid: 15421 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 3.5,-42.5 + parent: 2 + - uid: 15422 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 2.5,-43.5 + parent: 2 + - uid: 15423 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 1.5,-43.5 + parent: 2 + - uid: 15424 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 4.5,-43.5 + parent: 2 + - uid: 15425 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 7.5,-43.5 + parent: 2 + - uid: 15426 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 9.5,-42.5 + parent: 2 + - uid: 15427 + components: + - type: Transform + pos: 5.5,-48.5 + parent: 2 + - uid: 15428 + components: + - type: Transform + pos: 5.5,-47.5 + parent: 2 + - uid: 15429 + components: + - type: Transform + pos: 4.5,-47.5 + parent: 2 + - uid: 15430 + components: + - type: Transform + pos: 3.5,-47.5 + parent: 2 + - uid: 15431 + components: + - type: Transform + pos: 2.5,-47.5 + parent: 2 + - uid: 15432 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 9.5,-51.5 + parent: 2 + - uid: 15433 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 9.5,-48.5 + parent: 2 + - uid: 15434 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 9.5,-46.5 + parent: 2 + - uid: 15435 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 5.5,-54.5 + parent: 2 + - uid: 15436 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 5.5,-56.5 + parent: 2 + - uid: 15437 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 13.5,-49.5 + parent: 2 + - uid: 15438 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 12.5,-49.5 + parent: 2 + - uid: 15439 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 11.5,-49.5 + parent: 2 + - uid: 15440 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -39.5,-19.5 + parent: 2 + - uid: 15441 + components: + - type: Transform + pos: 12.5,23.5 + parent: 2 + - uid: 15442 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 33.5,-55.5 + parent: 2 + - uid: 15443 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 33.5,-54.5 + parent: 2 + - uid: 15444 + components: + - type: Transform + pos: 33.5,-53.5 + parent: 2 + - uid: 15445 + components: + - type: Transform + pos: -43.5,20.5 + parent: 2 + - uid: 15446 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 2.5,-61.5 + parent: 2 + - uid: 15447 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 4.5,-61.5 + parent: 2 + - uid: 15448 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -4.5,-61.5 + parent: 2 + - uid: 15449 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -2.5,-61.5 + parent: 2 + - uid: 15450 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -14.5,-62.5 + parent: 2 + - uid: 15451 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -13.5,-62.5 + parent: 2 + - uid: 15452 + components: + - type: Transform + pos: 9.5,-70.5 + parent: 2 + - uid: 15453 + components: + - type: Transform + pos: 9.5,-69.5 + parent: 2 + - uid: 15454 + components: + - type: Transform + pos: 9.5,-68.5 + parent: 2 + - uid: 15455 + components: + - type: Transform + pos: 11.5,-71.5 + parent: 2 + - uid: 15456 + components: + - type: Transform + pos: 12.5,-71.5 + parent: 2 + - uid: 15457 + components: + - type: Transform + pos: 13.5,-71.5 + parent: 2 + - uid: 15458 + components: + - type: Transform + pos: 15.5,-62.5 + parent: 2 + - uid: 15459 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -0.5,-71.5 + parent: 2 + - uid: 15460 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 0.5,-71.5 + parent: 2 + - uid: 15461 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 1.5,-71.5 + parent: 2 + - uid: 15462 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -8.5,-70.5 + parent: 2 + - uid: 15463 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -8.5,-69.5 + parent: 2 + - uid: 15464 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -8.5,-68.5 + parent: 2 + - uid: 15465 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -8.5,-74.5 + parent: 2 + - uid: 15466 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -5.5,-77.5 + parent: 2 + - uid: 15467 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -4.5,-77.5 + parent: 2 + - uid: 15468 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -1.5,-77.5 + parent: 2 + - uid: 15469 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -0.5,-77.5 + parent: 2 + - uid: 15470 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 1.5,-77.5 + parent: 2 + - uid: 15471 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 2.5,-77.5 + parent: 2 + - uid: 15472 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 5.5,-77.5 + parent: 2 + - uid: 15473 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 6.5,-77.5 + parent: 2 + - uid: 15474 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 9.5,-74.5 + parent: 2 + - uid: 15475 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 15.5,-48.5 + parent: 2 + - uid: 15476 + components: + - type: Transform + pos: 20.5,-52.5 + parent: 2 + - uid: 15477 + components: + - type: Transform + pos: 19.5,-54.5 + parent: 2 + - uid: 15478 + components: + - type: Transform + pos: 19.5,-58.5 + parent: 2 + - uid: 15479 + components: + - type: Transform + pos: 19.5,-62.5 + parent: 2 + - uid: 15480 + components: + - type: Transform + pos: 21.5,-64.5 + parent: 2 + - uid: 15481 + components: + - type: Transform + pos: 21.5,-52.5 + parent: 2 + - uid: 15482 + components: + - type: Transform + pos: 21.5,-53.5 + parent: 2 + - uid: 15483 + components: + - type: Transform + pos: 21.5,-54.5 + parent: 2 + - uid: 15484 + components: + - type: Transform + pos: 21.5,-55.5 + parent: 2 + - uid: 15485 + components: + - type: Transform + pos: 21.5,-57.5 + parent: 2 + - uid: 15486 + components: + - type: Transform + pos: 21.5,-58.5 + parent: 2 + - uid: 15487 + components: + - type: Transform + pos: 21.5,-59.5 + parent: 2 + - uid: 15488 + components: + - type: Transform + pos: 21.5,-61.5 + parent: 2 + - uid: 15489 + components: + - type: Transform + pos: 21.5,-62.5 + parent: 2 + - uid: 15490 + components: + - type: Transform + pos: 21.5,-63.5 + parent: 2 + - uid: 15491 + components: + - type: Transform + pos: 24.5,-65.5 + parent: 2 + - uid: 15492 + components: + - type: Transform + pos: 26.5,-65.5 + parent: 2 + - uid: 15493 + components: + - type: Transform + pos: 27.5,-65.5 + parent: 2 + - uid: 15494 + components: + - type: Transform + pos: 28.5,-65.5 + parent: 2 + - uid: 15495 + components: + - type: Transform + pos: 30.5,-65.5 + parent: 2 + - uid: 15496 + components: + - type: Transform + pos: 31.5,-65.5 + parent: 2 + - uid: 15497 + components: + - type: Transform + pos: 32.5,-65.5 + parent: 2 + - uid: 15498 + components: + - type: Transform + pos: 33.5,-63.5 + parent: 2 + - uid: 15499 + components: + - type: Transform + pos: 33.5,-62.5 + parent: 2 + - uid: 15500 + components: + - type: Transform + pos: 33.5,-61.5 + parent: 2 + - uid: 15501 + components: + - type: Transform + pos: 33.5,-59.5 + parent: 2 + - uid: 15502 + components: + - type: Transform + pos: 33.5,-58.5 + parent: 2 + - uid: 15503 + components: + - type: Transform + pos: 33.5,-57.5 + parent: 2 + - uid: 15504 + components: + - type: Transform + pos: 38.5,-47.5 + parent: 2 + - uid: 15505 + components: + - type: Transform + pos: 39.5,-44.5 + parent: 2 + - uid: 15506 + components: + - type: Transform + pos: 41.5,-44.5 + parent: 2 + - uid: 15507 + components: + - type: Transform + pos: 41.5,-42.5 + parent: 2 + - uid: 15508 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 39.5,-48.5 + parent: 2 + - uid: 15509 + components: + - type: Transform + pos: 27.5,-67.5 + parent: 2 + - uid: 15510 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 35.5,-54.5 + parent: 2 + - uid: 15511 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 35.5,-58.5 + parent: 2 + - uid: 15512 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 35.5,-62.5 + parent: 2 + - uid: 15513 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 48.5,-31.5 + parent: 2 + - uid: 15514 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -6.5,-34.5 + parent: 2 + - uid: 15515 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 8.5,36.5 + parent: 2 + - uid: 15516 + components: + - type: Transform + pos: -11.5,-25.5 + parent: 2 + - uid: 15517 + components: + - type: Transform + pos: -9.5,-25.5 + parent: 2 + - uid: 15518 + components: + - type: Transform + pos: -8.5,-25.5 + parent: 2 + - uid: 19032 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 27.5,13.5 + parent: 2 + - uid: 22837 + components: + - type: Transform + pos: -24.5,-1.5 + parent: 2 +- proto: GrilleBroken + entities: + - uid: 15519 + components: + - type: Transform + pos: -25.5,-44.5 + parent: 2 + - uid: 15520 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -16.5,7.5 + parent: 2 + - uid: 15521 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -21.5,8.5 + parent: 2 + - uid: 15522 + components: + - type: Transform + pos: -46.5,-27.5 + parent: 2 + - uid: 15523 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -29.5,-54.5 + parent: 2 + - uid: 15524 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -24.5,-58.5 + parent: 2 + - uid: 15525 + components: + - type: Transform + pos: 22.5,25.5 + parent: 2 + - uid: 15526 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -25.5,17.5 + parent: 2 + - uid: 15527 + components: + - type: Transform + pos: -24.5,-9.5 + parent: 2 + - uid: 15528 + components: + - type: Transform + pos: -21.5,11.5 + parent: 2 + - uid: 15529 + components: + - type: Transform + pos: -38.5,-33.5 + parent: 2 + - uid: 15530 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -31.5,-54.5 + parent: 2 + - uid: 15531 + components: + - type: Transform + pos: -26.5,-60.5 + parent: 2 + - uid: 15532 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -6.5,-51.5 + parent: 2 + - uid: 15533 + components: + - type: Transform + pos: -25.5,15.5 + parent: 2 + - uid: 15534 + components: + - type: Transform + pos: -29.5,-55.5 + parent: 2 + - uid: 15535 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 20.5,-3.5 + parent: 2 + - uid: 15536 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 22.5,27.5 + parent: 2 + - uid: 15537 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -24.5,17.5 + parent: 2 + - uid: 15538 + components: + - type: Transform + pos: -9.5,45.5 + parent: 2 + - uid: 15539 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -22.5,-60.5 + parent: 2 + - uid: 15540 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -22.5,-59.5 + parent: 2 + - uid: 15541 + components: + - type: Transform + pos: -24.5,-60.5 + parent: 2 + - uid: 15542 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -24.5,-60.5 + parent: 2 + - uid: 15543 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -25.5,-43.5 + parent: 2 +- proto: GunSafeDisabler + entities: + - uid: 15547 + components: + - type: Transform + pos: -13.5,38.5 + parent: 2 +- proto: GunSafeLaserCarbine + entities: + - uid: 15548 + components: + - type: Transform + pos: -15.5,38.5 + parent: 2 +- proto: GunSafePistolMk58 + entities: + - uid: 15549 + components: + - type: Transform + pos: -31.5,14.5 + parent: 2 + - 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 +- proto: Handcuffs + entities: + - uid: 15550 + components: + - type: Transform + pos: 43.518574,-16.785635 + parent: 2 + - uid: 15551 + components: + - type: Transform + pos: -8.463599,39.628452 + parent: 2 + - uid: 15552 + components: + - type: Transform + pos: 4.5119452,-19.054888 + parent: 2 + - uid: 15553 + components: + - type: Transform + pos: 4.5865374,-18.955433 + parent: 2 +- proto: HandheldGPSBasic + entities: + - uid: 15554 + components: + - type: Transform + pos: -44.50894,-35.43707 + parent: 2 +- proto: HandLabeler + entities: + - uid: 15555 + components: + - type: Transform + pos: 7.3101997,-29.177414 + parent: 2 + - uid: 15556 + components: + - type: Transform + pos: -20.372799,-11.412489 + parent: 2 + - uid: 15557 + components: + - type: Transform + pos: -30.58112,-6.4709306 + parent: 2 + - uid: 15558 + components: + - type: Transform + pos: -43.39614,10.873777 + parent: 2 + - uid: 15559 + components: + - type: Transform + pos: -36.55538,-30.565886 + parent: 2 + - uid: 15560 + components: + - type: Transform + pos: -44.475636,-38.837975 + parent: 2 + - uid: 15561 + components: + - type: Transform + pos: 19.690182,16.596298 + parent: 2 + - uid: 15562 + components: + - type: Transform + pos: 19.492775,-18.4637 + parent: 2 + - uid: 15563 + components: + - type: Transform + pos: 28.6381,-14.243845 + parent: 2 + - uid: 15564 + components: + - type: Transform + pos: 38.52634,-34.40402 + parent: 2 + - uid: 15565 + components: + - type: Transform + pos: 7.812145,-29.671413 + parent: 2 +- proto: HappyHonkMime + entities: + - uid: 10519 + components: + - type: Transform + parent: 10501 + - type: Physics + angularDamping: 0 + linearDamping: 0 + canCollide: False + - type: InsideEntityStorage +- proto: HeatExchanger + entities: + - uid: 15566 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -9.5,-68.5 + parent: 2 + - uid: 15567 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -10.5,-68.5 + parent: 2 + - uid: 15568 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -12.5,-68.5 + parent: 2 + - uid: 15569 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -11.5,-68.5 + parent: 2 + - uid: 15570 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -9.5,-70.5 + parent: 2 + - uid: 15571 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -10.5,-70.5 + parent: 2 + - uid: 15572 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -11.5,-70.5 + parent: 2 + - uid: 15573 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -12.5,-70.5 + parent: 2 +- proto: HighSecArmoryLocked + entities: + - uid: 15574 + components: + - type: Transform + pos: -16.5,37.5 + parent: 2 +- proto: HighSecCommandLocked + entities: + - uid: 15575 + components: + - type: Transform + pos: 7.5,73.5 + parent: 2 + - uid: 15576 + components: + - type: Transform + pos: -4.5,73.5 + parent: 2 + - uid: 15577 + components: + - type: Transform + pos: 7.5,81.5 + parent: 2 + - uid: 15578 + components: + - type: Transform + pos: 4.5,84.5 + parent: 2 + - uid: 15579 + components: + - type: Transform + pos: -1.5,84.5 + parent: 2 + - uid: 15580 + components: + - type: Transform + pos: -4.5,81.5 + parent: 2 + - uid: 15581 + components: + - type: Transform + pos: -33.5,13.5 + parent: 2 + - uid: 15582 + components: + - type: Transform + pos: -3.5,-38.5 + parent: 2 + - uid: 15583 + components: + - type: Transform + pos: 3.5,29.5 + parent: 2 + - uid: 15584 + components: + - type: Transform + pos: 3.5,34.5 + parent: 2 + - uid: 15585 + components: + - type: Transform + pos: -1.5,70.5 + parent: 2 + - uid: 15586 + components: + - type: Transform + pos: 4.5,70.5 + parent: 2 + - uid: 15587 + components: + - type: Transform + pos: 1.5,81.5 + parent: 2 +- proto: Holoprojector + entities: + - uid: 15588 + components: + - type: Transform + pos: 7.4954042,13.451323 + parent: 2 +- proto: HospitalCurtainsOpen + entities: + - uid: 15589 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -9.5,-49.5 + parent: 2 + - uid: 15590 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -9.5,-47.5 + parent: 2 + - uid: 15591 + components: + - type: Transform + pos: 39.5,22.5 + parent: 2 + - uid: 15592 + components: + - type: Transform + pos: 39.5,21.5 + parent: 2 + - uid: 15593 + components: + - type: Transform + pos: 40.5,31.5 + parent: 2 + - uid: 15594 + components: + - type: Transform + pos: 38.5,31.5 + parent: 2 + - uid: 15595 + components: + - type: Transform + pos: 36.5,31.5 + parent: 2 + - uid: 15596 + components: + - type: Transform + pos: 34.5,31.5 + parent: 2 + - uid: 15597 + components: + - type: Transform + pos: 32.5,31.5 + parent: 2 + - uid: 15598 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -30.5,36.5 + parent: 2 + - uid: 15599 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -29.5,36.5 + parent: 2 + - uid: 15600 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -28.5,36.5 + parent: 2 + - uid: 15601 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -34.5,24.5 + parent: 2 + - uid: 15602 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 27.5,-26.5 + parent: 2 + - uid: 15603 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 26.5,-26.5 + parent: 2 + - uid: 15604 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 30.5,-35.5 + parent: 2 + - uid: 15605 + components: + - type: Transform + pos: 8.5,27.5 + parent: 2 + - uid: 15606 + components: + - type: Transform + pos: -34.5,-58.5 + parent: 2 + - uid: 15607 + components: + - type: Transform + pos: -34.5,-60.5 + parent: 2 +- proto: hydroponicsSoil + entities: + - uid: 15608 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -1.5,-7.5 + parent: 2 + - uid: 15609 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -1.5,-6.5 + parent: 2 + - uid: 15610 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -1.5,-5.5 + parent: 2 + - uid: 15611 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 3.5,-5.5 + parent: 2 + - uid: 15612 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 3.5,-6.5 + parent: 2 + - uid: 15613 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 3.5,-7.5 + parent: 2 +- proto: HydroponicsToolMiniHoe + entities: + - uid: 15614 + components: + - type: Transform + pos: -41.665028,30.54518 + parent: 2 +- proto: HydroponicsToolSpade + entities: + - uid: 15615 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -41.62307,30.398327 + parent: 2 +- proto: hydroponicsTray + entities: + - uid: 15616 + components: + - type: Transform + pos: 33.5,13.5 + parent: 2 + - uid: 15617 + components: + - type: Transform + pos: 34.5,13.5 + parent: 2 + - uid: 15618 + components: + - type: Transform + pos: 35.5,13.5 + parent: 2 + - uid: 15619 + components: + - type: Transform + pos: 36.5,13.5 + parent: 2 + - uid: 15620 + components: + - type: Transform + pos: 38.5,14.5 + parent: 2 + - uid: 15621 + components: + - type: Transform + pos: 38.5,15.5 + parent: 2 + - uid: 15622 + components: + - type: Transform + pos: 38.5,16.5 + parent: 2 + - uid: 15623 + components: + - type: Transform + pos: 38.5,17.5 + parent: 2 + - uid: 15624 + components: + - type: Transform + pos: 35.5,17.5 + parent: 2 + - uid: 15625 + components: + - type: Transform + pos: 35.5,16.5 + parent: 2 + - uid: 15626 + components: + - type: Transform + pos: 35.5,15.5 + parent: 2 + - uid: 15627 + components: + - type: Transform + pos: 34.5,17.5 + parent: 2 + - uid: 15628 + components: + - type: Transform + pos: 34.5,16.5 + parent: 2 + - uid: 15629 + components: + - type: Transform + pos: 34.5,15.5 + parent: 2 + - uid: 15630 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 40.5,17.5 + parent: 2 + - uid: 15631 + components: + - type: Transform + pos: -41.5,28.5 + parent: 2 + - uid: 15632 + components: + - type: Transform + pos: -40.5,28.5 + parent: 2 + - uid: 15633 + components: + - type: Transform + pos: -39.5,28.5 + parent: 2 +- proto: HydroponicsTrayMachineCircuitboard + entities: + - uid: 15634 + components: + - type: Transform + pos: -2.4294145,-35.356567 + parent: 2 +- proto: IDComputerCircuitboard + entities: + - uid: 15635 + components: + - type: Transform + pos: -4.5,-40.5 + parent: 2 +- proto: Igniter + entities: + - uid: 15636 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 42.476173,-43.527416 + parent: 2 + - type: DeviceLinkSink + links: + - 18002 +- proto: IngotGold + entities: + - uid: 9171 + components: + - type: Transform + pos: -34.5,17.5 + parent: 2 +- proto: IngotSilver + entities: + - uid: 9172 + components: + - type: Transform + pos: -34.5,17.5 + parent: 2 +- proto: IntercomAll + entities: + - uid: 15637 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -9.5,47.5 + parent: 2 + - uid: 15638 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -9.5,52.5 + parent: 2 + - uid: 15639 + components: + - type: Transform + pos: 3.5,80.5 + parent: 2 + - uid: 15640 + components: + - type: Transform + pos: -0.5,80.5 + parent: 2 + - uid: 15641 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -0.5,74.5 + parent: 2 + - uid: 15642 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 3.5,74.5 + parent: 2 +- proto: IntercomAssesmbly + entities: + - uid: 15643 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 20.5,-33.5 + parent: 2 +- proto: IntercomCommand + entities: + - uid: 15644 + components: + - type: Transform + pos: 4.5,28.5 + parent: 2 + - uid: 15645 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -28.5,3.5 + parent: 2 + - uid: 15646 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -22.5,6.5 + parent: 2 + - uid: 15647 + components: + - type: Transform + pos: -27.5,14.5 + parent: 2 + - uid: 15648 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -35.5,3.5 + parent: 2 + - uid: 15649 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -41.5,5.5 + parent: 2 + - uid: 15650 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -43.5,-0.5 + parent: 2 + - uid: 15651 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -39.5,-14.5 + parent: 2 + - uid: 15652 + components: + - type: Transform + pos: -43.5,-6.5 + parent: 2 + - uid: 15653 + components: + - type: Transform + pos: -30.5,-9.5 + parent: 2 + - uid: 15654 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -30.5,16.5 + parent: 2 + - uid: 15655 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -38.5,-21.5 + parent: 2 + - uid: 15656 + components: + - type: Transform + pos: -16.5,-18.5 + parent: 2 + - uid: 15657 + components: + - type: Transform + pos: -5.5,-19.5 + parent: 2 + - uid: 15658 + components: + - type: Transform + pos: -2.5,-38.5 + parent: 2 + - uid: 15659 + components: + - type: Transform + pos: 24.5,-16.5 + parent: 2 + - uid: 15660 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -25.5,42.5 + parent: 2 + - uid: 15661 + components: + - type: Transform + pos: 4.5,33.5 + parent: 2 + - uid: 15662 + components: + - type: Transform + pos: 6.5,45.5 + parent: 2 + - uid: 15663 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -1.5,51.5 + parent: 2 + - uid: 15664 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -7.5,71.5 + parent: 2 + - uid: 15665 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 10.5,71.5 + parent: 2 + - uid: 15666 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 4.5,71.5 + parent: 2 + - uid: 15667 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 10.5,78.5 + parent: 2 + - uid: 15668 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 8.5,81.5 + parent: 2 + - uid: 15669 + components: + - type: Transform + pos: -6.5,84.5 + parent: 2 + - uid: 15670 + components: + - type: Transform + pos: 1.5,85.5 + parent: 2 + - uid: 15671 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -2.5,78.5 + parent: 2 + - uid: 15672 + components: + - type: Transform + pos: 10.5,-49.5 + parent: 2 +- proto: IntercomCommon + entities: + - uid: 15673 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -9.5,7.5 + parent: 2 + - uid: 15674 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -18.5,12.5 + parent: 2 + - uid: 15675 + components: + - type: Transform + pos: -22.5,3.5 + parent: 2 + - uid: 15676 + components: + - type: Transform + pos: -43.5,-14.5 + parent: 2 + - uid: 15677 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -39.5,18.5 + parent: 2 + - uid: 15678 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -45.5,14.5 + parent: 2 + - uid: 15679 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 21.5,-1.5 + parent: 2 + - uid: 15680 + components: + - type: Transform + pos: 31.5,3.5 + parent: 2 + - uid: 15681 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 44.5,3.5 + parent: 2 + - uid: 15682 + components: + - type: Transform + pos: 39.5,-1.5 + parent: 2 + - uid: 15683 + components: + - type: Transform + pos: 32.5,25.5 + parent: 2 + - uid: 15684 + components: + - type: Transform + pos: 17.5,34.5 + parent: 2 + - uid: 15685 + components: + - type: Transform + pos: 22.5,34.5 + parent: 2 + - uid: 15686 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 13.5,41.5 + parent: 2 + - uid: 15687 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 16.5,37.5 + parent: 2 + - uid: 15688 + components: + - type: Transform + pos: 21.5,41.5 + parent: 2 + - uid: 15689 + components: + - type: Transform + pos: 24.5,41.5 + parent: 2 + - uid: 15690 + components: + - type: Transform + pos: 24.5,37.5 + parent: 2 + - uid: 15691 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 40.5,-13.5 + parent: 2 + - uid: 15692 + components: + - type: Transform + pos: -18.5,26.5 + parent: 2 + - uid: 15693 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -10.5,23.5 + parent: 2 + - uid: 15694 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -4.5,23.5 + parent: 2 + - uid: 15695 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -1.5,23.5 + parent: 2 + - uid: 15696 + components: + - type: Transform + pos: -31.5,31.5 + parent: 2 + - uid: 15697 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -36.5,31.5 + parent: 2 + - uid: 15698 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -41.5,21.5 + parent: 2 + - uid: 15699 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -41.5,23.5 + parent: 2 + - uid: 15700 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 3.5,24.5 + parent: 2 + - uid: 15701 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 3.5,38.5 + parent: 2 + - uid: 15702 + components: + - type: Transform + pos: 39.5,-19.5 + parent: 2 + - uid: 15703 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 41.5,-19.5 + parent: 2 + - uid: 15704 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 41.5,-19.5 + parent: 2 + - uid: 15705 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 3.5,-20.5 + parent: 2 +- proto: IntercomEngineering + entities: + - uid: 15706 + components: + - type: Transform + pos: -2.5,-34.5 + parent: 2 + - uid: 15707 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -21.5,-58.5 + parent: 2 + - uid: 15708 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -21.5,-58.5 + parent: 2 + - uid: 15709 + components: + - type: Transform + pos: -12.5,-54.5 + parent: 2 + - uid: 15710 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -3.5,-45.5 + parent: 2 + - uid: 15711 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 17.5,-36.5 + parent: 2 + - uid: 15712 + components: + - type: Transform + pos: 22.5,-38.5 + parent: 2 + - uid: 15713 + components: + - type: Transform + pos: 6.5,-38.5 + parent: 2 + - uid: 15714 + components: + - type: Transform + pos: -2.5,-54.5 + parent: 2 + - uid: 15715 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 5.5,-59.5 + parent: 2 + - uid: 15716 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 1.5,-58.5 + parent: 2 + - uid: 15717 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 15.5,-64.5 + parent: 2 + - uid: 15718 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 2.5,-66.5 + parent: 2 + - uid: 15719 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -3.5,-67.5 + parent: 2 + - uid: 15720 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 4.5,-67.5 + parent: 2 + - uid: 15721 + components: + - type: Transform + pos: 2.5,-71.5 + parent: 2 + - uid: 15722 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -8.5,-65.5 + parent: 2 + - uid: 15723 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 21.5,-60.5 + parent: 2 + - uid: 15724 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 33.5,-60.5 + parent: 2 + - uid: 15725 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 33.5,-47.5 + parent: 2 + - uid: 15726 + components: + - type: Transform + pos: 34.5,-47.5 + parent: 2 +- proto: IntercomMedical + entities: + - uid: 15727 + components: + - type: Transform + pos: 32.5,-13.5 + parent: 2 + - uid: 15728 + components: + - type: Transform + pos: 14.5,-7.5 + parent: 2 + - uid: 15729 + components: + - type: Transform + pos: 16.5,-12.5 + parent: 2 + - uid: 15730 + components: + - type: Transform + pos: 19.5,-17.5 + parent: 2 + - uid: 15731 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 35.5,-19.5 + parent: 2 + - uid: 15732 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 39.5,-35.5 + parent: 2 + - uid: 15733 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 48.5,-28.5 + parent: 2 + - uid: 15734 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 32.5,-26.5 + parent: 2 + - uid: 15735 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 24.5,-31.5 + parent: 2 + - uid: 15736 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 33.5,-30.5 + parent: 2 + - uid: 15737 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 20.5,-29.5 + parent: 2 + - uid: 15738 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 3.5,-32.5 + parent: 2 + - uid: 15739 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 11.5,-29.5 + parent: 2 + - uid: 15740 + components: + - type: Transform + pos: 7.5,-20.5 + parent: 2 + - uid: 15741 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 11.5,-21.5 + parent: 2 + - uid: 15742 + components: + - type: Transform + pos: 11.5,-33.5 + parent: 2 +- proto: IntercomScience + entities: + - uid: 15743 + components: + - type: Transform + pos: -28.5,-15.5 + parent: 2 + - uid: 15744 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -31.5,-27.5 + parent: 2 + - uid: 15745 + components: + - type: Transform + pos: -22.5,-15.5 + parent: 2 + - uid: 15746 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -18.5,-22.5 + parent: 2 + - uid: 15747 + components: + - type: Transform + pos: -15.5,-21.5 + parent: 2 + - uid: 15748 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -13.5,-21.5 + parent: 2 + - uid: 15749 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -20.5,-29.5 + parent: 2 + - uid: 15750 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -23.5,-33.5 + parent: 2 + - uid: 15751 + components: + - type: Transform + pos: -3.5,-29.5 + parent: 2 + - uid: 15752 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -11.5,-29.5 + parent: 2 + - uid: 15753 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -17.5,-34.5 + parent: 2 + - uid: 15754 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -9.5,-39.5 + parent: 2 + - uid: 15755 + components: + - type: Transform + pos: -40.5,-40.5 + parent: 2 + - uid: 15756 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -46.5,-33.5 + parent: 2 + - uid: 15757 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -21.5,-14.5 + parent: 2 + - uid: 15758 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -37.5,-34.5 + parent: 2 +- proto: IntercomSecurity + entities: + - uid: 15759 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -4.5,12.5 + parent: 2 + - uid: 15760 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -11.5,15.5 + parent: 2 + - uid: 15761 + components: + - type: Transform + pos: -13.5,13.5 + parent: 2 + - uid: 15762 + components: + - type: Transform + pos: -9.5,13.5 + parent: 2 + - uid: 15763 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -35.5,18.5 + parent: 2 + - uid: 15764 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -27.5,-36.5 + parent: 2 + - uid: 15765 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 31.5,-3.5 + parent: 2 + - uid: 15766 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 45.5,-15.5 + parent: 2 + - uid: 15767 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -22.5,19.5 + parent: 2 + - uid: 15768 + components: + - type: Transform + pos: -7.5,30.5 + parent: 2 + - uid: 15769 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -9.5,30.5 + parent: 2 + - uid: 15770 + components: + - type: Transform + pos: -17.5,37.5 + parent: 2 + - uid: 15771 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -18.5,31.5 + parent: 2 + - uid: 15772 + components: + - type: Transform + pos: -13.5,41.5 + parent: 2 + - uid: 15773 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -21.5,33.5 + parent: 2 + - uid: 15774 + components: + - type: Transform + pos: -21.5,30.5 + parent: 2 + - uid: 15775 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -10.5,41.5 + parent: 2 + - uid: 15776 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -7.5,37.5 + parent: 2 + - uid: 15777 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -6.5,35.5 + parent: 2 + - uid: 15778 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 7.5,-18.5 + parent: 2 + - uid: 15779 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 1.5,-48.5 + parent: 2 +- proto: IntercomService + entities: + - uid: 15780 + components: + - type: Transform + pos: 9.5,16.5 + parent: 2 + - uid: 15781 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 18.5,17.5 + parent: 2 + - uid: 15782 + components: + - type: Transform + pos: 24.5,20.5 + parent: 2 + - uid: 15783 + components: + - type: Transform + pos: 25.5,24.5 + parent: 2 + - uid: 15784 + components: + - type: Transform + pos: 15.5,15.5 + parent: 2 + - uid: 15785 + components: + - type: Transform + pos: 35.5,20.5 + parent: 2 + - uid: 15786 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 44.5,19.5 + parent: 2 +- proto: IntercomSupply + entities: + - uid: 15787 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -28.5,-7.5 + parent: 2 +- proto: JanitorialTrolley + entities: + - uid: 15788 + components: + - type: Transform + pos: 9.5,11.5 + parent: 2 + - uid: 15789 + components: + - type: Transform + pos: 12.5,11.5 + parent: 2 +- proto: JetpackBlack + entities: + - uid: 15790 + components: + - type: Transform + pos: -4.621241,-24.60965 + parent: 2 + - uid: 15791 + components: + - type: Transform + pos: -4.3694925,-24.488438 + parent: 2 + - uid: 15792 + components: + - type: Transform + pos: -4.6025934,-24.395197 + parent: 2 + - uid: 15793 + components: + - type: Transform + pos: -4.434761,-24.572353 + parent: 2 +- proto: JetpackBlue + entities: + - uid: 15794 + components: + - type: Transform + pos: 2.30956,-59.56945 + parent: 2 + - uid: 15795 + components: + - type: Transform + pos: 2.524012,-59.40162 + parent: 2 +- proto: KitchenElectricGrill + entities: + - uid: 15796 + components: + - type: Transform + pos: -4.5,-11.5 + parent: 2 + - type: ItemPlacer + placedEntities: + - 11487 + - uid: 15797 + components: + - type: Transform + pos: 25.5,19.5 + parent: 2 +- proto: KitchenKnife + entities: + - uid: 15798 + components: + - type: Transform + pos: -26.501507,-63.49208 + parent: 2 +- proto: KitchenMicrowave + entities: + - uid: 15799 + components: + - type: Transform + pos: -44.5,-9.5 + parent: 2 + - uid: 15800 + components: + - type: Transform + pos: -26.5,-62.5 + parent: 2 + - uid: 15801 + components: + - type: Transform + pos: 21.5,17.5 + parent: 2 + - uid: 15802 + components: + - type: Transform + pos: 26.5,19.5 + parent: 2 + - uid: 15803 + components: + - type: Transform + pos: -40.5,34.5 + parent: 2 + - uid: 15804 + components: + - type: Transform + pos: 40.5,-14.5 + parent: 2 + - uid: 15805 + components: + - type: Transform + pos: 2.5,-52.5 + parent: 2 + - uid: 15806 + components: + - type: Transform + pos: -6.5,-31.5 + parent: 2 +- proto: KitchenReagentGrinder + entities: + - uid: 837 + components: + - type: Transform + pos: 6.5,-31.5 + parent: 2 + - type: ContainerContainer + containers: + beakerSlot: !type:ContainerSlot + showEnts: False + occludes: True + ent: 838 + inputContainer: !type:Container + showEnts: False + occludes: True + ents: [] + machine_board: !type:Container + showEnts: False + occludes: True + ents: [] + machine_parts: !type:Container + showEnts: False + occludes: True + ents: [] + - uid: 10574 + components: + - type: Transform + pos: -41.5,30.5 + parent: 2 + - type: ContainerContainer + containers: + beakerSlot: !type:ContainerSlot + showEnts: False + occludes: True + ent: 10575 + inputContainer: !type:Container + showEnts: False + occludes: True + ents: [] + machine_board: !type:Container + showEnts: False + occludes: True + ents: [] + machine_parts: !type:Container + showEnts: False + occludes: True + ents: [] + - uid: 15807 + components: + - type: Transform + pos: -5.5,-30.5 + parent: 2 + - uid: 15808 + components: + - type: Transform + pos: 18.5,14.5 + parent: 2 + - uid: 15809 + components: + - type: Transform + pos: 22.5,17.5 + parent: 2 + - uid: 15810 + components: + - type: Transform + pos: 37.5,12.5 + parent: 2 + - uid: 15811 + components: + - type: Transform + pos: -2.5,55.5 + parent: 2 + - uid: 15812 + components: + - type: Transform + pos: 39.5,-34.5 + parent: 2 + - type: ContainerContainer + containers: + beakerSlot: !type:ContainerSlot + showEnts: False + occludes: True + ent: 15813 + inputContainer: !type:Container + showEnts: False + occludes: True + ents: [] + machine_board: !type:Container + showEnts: False + occludes: True + ents: [] + machine_parts: !type:Container + showEnts: False + occludes: True + ents: [] +- proto: KitchenSpike + entities: + - uid: 15814 + components: + - type: Transform + pos: -2.5,-33.5 + parent: 2 + - uid: 15815 + components: + - type: Transform + pos: -3.5,-33.5 + parent: 2 + - uid: 15816 + components: + - type: Transform + pos: 26.5,21.5 + parent: 2 + - uid: 15817 + components: + - type: Transform + pos: 25.5,21.5 + parent: 2 +- proto: Lamp + entities: + - uid: 15818 + components: + - type: Transform + pos: -3.5759635,15.020327 + parent: 2 + - uid: 15819 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 14.522073,42.801456 + parent: 2 +- proto: LampGold + entities: + - uid: 15820 + components: + - type: Transform + pos: -13.598702,-2.129864 + parent: 2 + - uid: 15821 + components: + - type: Transform + pos: -17.597763,-5.2205453 + parent: 2 + - uid: 15822 + components: + - type: Transform + pos: -19.62041,22.866505 + parent: 2 + - uid: 15823 + components: + - type: Transform + pos: -26.568039,45.785202 + parent: 2 + - uid: 15824 + components: + - type: Transform + pos: -8.597343,50.015892 + parent: 2 + - uid: 15825 + components: + - type: Transform + pos: -8.644331,56.90023 + parent: 2 + - uid: 15826 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 29.40474,-34.169563 + parent: 2 +- proto: LampInterrogator + entities: + - uid: 15827 + components: + - type: Transform + pos: -25.43687,24.872316 + parent: 2 +- proto: LargeBeaker + entities: + - uid: 8616 + components: + - type: Transform + parent: 8615 + - type: Physics + canCollide: False + - uid: 8618 + components: + - type: Transform + parent: 8617 + - type: Physics + canCollide: False + - uid: 15813 + components: + - type: Transform + parent: 15812 + - type: Physics + canCollide: False + - uid: 15828 + components: + - type: Transform + pos: -26.885696,-16.267149 + parent: 2 + - uid: 15829 + components: + - type: Transform + pos: -36.443493,-30.048403 + parent: 2 + - uid: 15830 + components: + - type: Transform + pos: -36.779156,-27.544907 + parent: 2 + - uid: 15831 + components: + - type: Transform + pos: -36.79314,-27.223228 + parent: 2 + - uid: 15832 + components: + - type: Transform + pos: -5.3724923,-31.250595 + parent: 2 +- proto: LegionnaireBonfire + entities: + - uid: 15833 + components: + - type: Transform + pos: 0.5,-50.5 + parent: 2 +- proto: Lighter + entities: + - uid: 15834 + components: + - type: Transform + pos: 17.475067,12.604044 + parent: 2 + - uid: 15835 + components: + - type: Transform + pos: 10.483806,54.125267 + parent: 2 +- proto: LightReplacerEmpty + entities: + - uid: 15836 + components: + - type: Transform + pos: 1.4214635,-44.14184 + parent: 2 +- proto: LiquidOxygenCanister + entities: + - uid: 15839 + components: + - type: Transform + pos: -28.5,-39.5 + parent: 2 + - uid: 15840 + components: + - type: Transform + pos: -28.5,-38.5 + parent: 2 + - uid: 15841 + components: + - type: Transform + pos: -28.5,-37.5 + parent: 2 +- proto: LockerAtmosphericsFilled + entities: + - uid: 15842 + components: + - type: Transform + pos: 10.5,-48.5 + parent: 2 + - uid: 15843 + components: + - type: Transform + pos: 11.5,-48.5 + parent: 2 + - uid: 15844 + components: + - type: Transform + pos: 12.5,-48.5 + parent: 2 + - uid: 15845 + components: + - type: Transform + pos: 13.5,-48.5 + parent: 2 + - uid: 15846 + components: + - type: Transform + pos: 34.5,-41.5 + parent: 2 +- proto: LockerBooze + entities: + - uid: 8887 + components: + - type: Transform + pos: 24.5,35.5 + parent: 2 + - type: Lock + locked: False + - type: ContainerContainer + containers: + entity_storage: !type:Container + showEnts: False + occludes: True + ents: + - 8888 + paper_label: !type:ContainerSlot + showEnts: False + occludes: True + ent: null + - uid: 15847 + components: + - type: Transform + pos: -19.5,-43.5 + parent: 2 + - uid: 15848 + components: + - type: Transform + pos: 23.5,40.5 + parent: 2 + - type: Lock + locked: False + - type: ContainerContainer + containers: + entity_storage: !type:Container + showEnts: False + occludes: True + ents: + - 15849 + paper_label: !type:ContainerSlot + showEnts: False + occludes: True + ent: null +- proto: LockerBoozeFilled + entities: + - uid: 15850 + components: + - type: Transform + pos: 17.5,18.5 + parent: 2 +- proto: LockerBotanistFilled + entities: + - uid: 15851 + components: + - type: Transform + pos: 41.5,17.5 + parent: 2 + - uid: 15852 + components: + - type: Transform + pos: 42.5,17.5 + parent: 2 + - uid: 15853 + components: + - type: Transform + pos: 43.5,17.5 + parent: 2 +- proto: LockerBrigmedicFilledHardsuit + entities: + - uid: 15854 + components: + - type: Transform + pos: -27.5,36.5 + parent: 2 +- proto: LockerCaptainFilled + entities: + - uid: 15855 + components: + - type: Transform + pos: -5.5,49.5 + parent: 2 + - 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: + - 15856 + paper_label: !type:ContainerSlot + showEnts: False + occludes: True + ent: null +- proto: LockerChemistryFilled + entities: + - uid: 15857 + components: + - type: Transform + pos: 28.5,-21.5 + parent: 2 + - uid: 15858 + components: + - type: Transform + pos: 28.5,-20.5 + parent: 2 + - uid: 15859 + components: + - type: Transform + pos: 28.5,-19.5 + parent: 2 + - uid: 15860 + components: + - type: Transform + pos: 8.5,-32.5 + parent: 2 + - uid: 15861 + components: + - type: Transform + pos: 9.5,-32.5 + parent: 2 +- proto: LockerChiefEngineerFilled + entities: + - uid: 8799 + components: + - type: Transform + pos: 14.5,-55.5 + parent: 2 + - 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: + - 8801 + - 8800 + paper_label: !type:ContainerSlot + showEnts: False + occludes: True + ent: null +- proto: LockerChiefJusticeFilled + entities: + - uid: 20020 + components: + - type: Transform + pos: -15.5,9.5 + parent: 2 +- proto: LockerChiefMedicalOfficerFilled + entities: + - uid: 15862 + components: + - type: Transform + pos: 24.5,-17.5 + parent: 2 + - type: EntityStorage + air: + volume: 200 + immutable: False + temperature: 293.1496 + moles: + - 1.8856695 + - 7.0937095 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - type: ContainerContainer + containers: + entity_storage: !type:Container + showEnts: False + occludes: True + ents: + - 15863 + paper_label: !type:ContainerSlot + showEnts: False + occludes: True + ent: null +- proto: LockerClerkFilled + entities: + - uid: 271 + components: + - type: Transform + pos: -5.5,16.5 + parent: 2 +- proto: LockerClown + entities: + - uid: 10524 + components: + - type: Transform + pos: 43.5,13.5 + parent: 2 + - 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: + - 10525 + - 10526 + - 10527 + - 10528 + - 10529 + - 10530 + - 10531 + - 10532 + - 10533 + - 10534 + - 10535 + - 10536 + - 10537 + - 10538 + - 10539 + - 10540 + - 10541 + - 10542 + - 10543 + - 10544 + - 10545 + - 10546 + - 10547 + - 10548 + - 10549 + - 10550 + - 10551 + paper_label: !type:ContainerSlot + showEnts: False + occludes: True + ent: null +- proto: LockerDetectiveFilled + entities: + - uid: 15864 + components: + - type: Transform + pos: -18.5,18.5 + parent: 2 +- proto: LockerElectricalSuppliesFilled + entities: + - uid: 15865 + components: + - type: Transform + pos: 4.5,-57.5 + parent: 2 +- proto: LockerEngineerFilled + entities: + - uid: 15866 + components: + - type: Transform + pos: 4.5,-60.5 + parent: 2 + - uid: 15867 + components: + - type: Transform + pos: 4.5,-59.5 + parent: 2 + - uid: 15868 + components: + - type: Transform + pos: 4.5,-58.5 + parent: 2 +- proto: LockerEvidence + entities: + - uid: 15869 + components: + - type: Transform + pos: 28.5,-4.5 + parent: 2 + - uid: 15870 + components: + - type: Transform + pos: 45.5,-18.5 + parent: 2 + - uid: 15871 + components: + - type: Transform + pos: -16.5,40.5 + parent: 2 + - uid: 15872 + components: + - type: Transform + pos: -20.5,33.5 + parent: 2 + - uid: 15873 + components: + - type: Transform + pos: -20.5,34.5 + parent: 2 + - uid: 15874 + components: + - type: Transform + pos: -20.5,35.5 + parent: 2 + - uid: 15875 + components: + - type: Transform + pos: -20.5,36.5 + parent: 2 + - uid: 15876 + components: + - type: Transform + pos: -32.5,26.5 + parent: 2 + - type: ContainerContainer + containers: + entity_storage: !type:Container + showEnts: False + occludes: True + ents: + - 15877 + paper_label: !type:ContainerSlot + showEnts: False + occludes: True + ent: null + - uid: 15878 + components: + - type: Transform + pos: -35.5,22.5 + parent: 2 + - uid: 15879 + components: + - type: Transform + pos: -35.5,21.5 + parent: 2 + - uid: 15880 + components: + - type: Transform + pos: -35.5,20.5 + parent: 2 + - uid: 15881 + components: + - type: Transform + pos: -35.5,19.5 + parent: 2 + - uid: 15882 + components: + - type: Transform + pos: 5.5,-18.5 + parent: 2 + - uid: 15883 + components: + - type: Transform + pos: 2.5,-48.5 + parent: 2 + - uid: 15884 + components: + - type: Transform + pos: -27.5,-35.5 + parent: 2 +- proto: LockerForensicMantisFilled + entities: + - uid: 15885 + components: + - type: Transform + pos: -12.5,-21.5 + parent: 2 +- proto: LockerFreezer + entities: + - uid: 15886 + components: + - type: Transform + pos: -22.5,-67.5 + parent: 2 + - uid: 15887 + components: + - type: Transform + pos: -22.5,-68.5 + parent: 2 + - uid: 15888 + components: + - type: Transform + pos: 24.5,19.5 + parent: 2 + - uid: 15889 + components: + - type: Transform + pos: 26.5,23.5 + parent: 2 + - uid: 15890 + components: + - type: Transform + pos: 25.5,23.5 + parent: 2 + - uid: 15891 + components: + - type: Transform + pos: 24.5,23.5 + parent: 2 + - uid: 15892 + components: + - type: Transform + pos: 24.5,27.5 + parent: 2 +- proto: LockerFreezerBase + entities: + - uid: 10576 + components: + - type: Transform + pos: 4.5,-34.5 + parent: 2 + - 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: + - 10577 + - 10579 + - 10580 + - 10578 + paper_label: !type:ContainerSlot + showEnts: False + occludes: True + ent: null + - uid: 15893 + components: + - type: Transform + pos: -82.5,-52.5 + parent: 2 + - type: EntityStorage + air: + volume: 200 + immutable: False + temperature: 75.31249 + moles: + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 +- proto: LockerHeadOfPersonnelFilled + entities: + - uid: 8815 + components: + - type: Transform + pos: 7.4989414,50.50517 + parent: 2 + - 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: + - 10900 + - 10902 + - 15895 + paper_label: !type:ContainerSlot + showEnts: False + occludes: True + ent: null +- proto: LockerHeadOfSecurityFilled + entities: + - uid: 8883 + components: + - type: Transform + pos: -23.5,45.5 + parent: 2 + - type: EntityStorage + air: + volume: 200 + immutable: False + temperature: 293.1496 + moles: + - 1.8968438 + - 7.1357465 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - type: ContainerContainer + containers: + entity_storage: !type:Container + showEnts: False + occludes: True + ents: + - 8885 + - 8884 + paper_label: !type:ContainerSlot + showEnts: False + occludes: True + ent: null +- proto: LockerMedicalFilled + entities: + - uid: 15896 + components: + - type: Transform + pos: 20.5,-18.5 + parent: 2 + - uid: 15897 + components: + - type: Transform + pos: 20.5,-19.5 + parent: 2 + - uid: 15898 + components: + - type: Transform + pos: 20.5,-20.5 + parent: 2 +- proto: LockerMedicineFilled + entities: + - uid: 15899 + components: + - type: Transform + pos: -28.5,37.5 + parent: 2 + - type: Lock + locked: False + - uid: 15900 + components: + - type: Transform + pos: 20.5,-22.5 + parent: 2 + - uid: 15901 + components: + - type: Transform + pos: 21.5,-22.5 + parent: 2 + - uid: 15902 + components: + - type: Transform + pos: 22.5,-22.5 + parent: 2 + - uid: 15903 + components: + - type: Transform + pos: 23.5,-22.5 + parent: 2 +- proto: LockerMime + entities: + - uid: 10501 + components: + - type: Transform + pos: 43.5,15.5 + parent: 2 + - 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: + - 10502 + - 10503 + - 10504 + - 10505 + - 10506 + - 10507 + - 10508 + - 10509 + - 10510 + - 10511 + - 10512 + - 10513 + - 10514 + - 10515 + - 10516 + - 10517 + - 10518 + - 10519 + - 10520 + - 10521 + - 10522 + - 10523 + paper_label: !type:ContainerSlot + showEnts: False + occludes: True + ent: null +- proto: LockerParamedicFilled + entities: + - uid: 15904 + components: + - type: Transform + pos: 10.5,-19.5 + parent: 2 +- proto: LockerQuarterMasterFilled + entities: + - uid: 15905 + components: + - type: Transform + pos: -25.5,4.5 + parent: 2 + - 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: + - 15906 + paper_label: !type:ContainerSlot + showEnts: False + occludes: True + ent: null +- proto: LockerRepresentative + entities: + - uid: 22310 + components: + - type: Transform + pos: 7.5,27.5 + parent: 2 + - 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: + - 22311 + - 22312 + - 22313 + - 22314 + - 22316 + - 22317 + - 22318 + - 22319 + paper_label: !type:ContainerSlot + showEnts: False + occludes: True + ent: null +- proto: LockerResearchDirectorFilled + entities: + - uid: 15907 + components: + - type: Transform + pos: -17.5,-20.5 + parent: 2 + - 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: + - 15908 + paper_label: !type:ContainerSlot + showEnts: False + occludes: True + ent: null +- proto: LockerSalvageSpecialistFilled + entities: + - uid: 15909 + components: + - type: Transform + pos: -36.5,-10.5 + parent: 2 + - uid: 15910 + components: + - type: Transform + pos: -36.5,-11.5 + parent: 2 + - uid: 15911 + components: + - type: Transform + pos: -36.5,-12.5 + parent: 2 +- proto: LockerScienceFilled + entities: + - uid: 15912 + components: + - type: Transform + pos: -38.5,-41.5 + parent: 2 + - uid: 15913 + components: + - type: Transform + pos: -44.5,-40.5 + parent: 2 + - uid: 15914 + components: + - type: Transform + pos: -39.5,-41.5 + parent: 2 + - uid: 15915 + components: + - type: Transform + pos: -44.5,-41.5 + parent: 2 +- proto: LockerSecurityFilled + entities: + - uid: 15916 + components: + - type: Transform + pos: -11.5,35.5 + parent: 2 + - uid: 15917 + components: + - type: Transform + pos: -11.5,34.5 + parent: 2 + - uid: 15918 + components: + - type: Transform + pos: -10.5,34.5 + parent: 2 + - uid: 15919 + components: + - type: Transform + pos: -10.5,35.5 + parent: 2 + - uid: 15920 + components: + - type: Transform + pos: -11.5,36.5 + parent: 2 +- proto: LockerWardenFilled + entities: + - uid: 15921 + components: + - type: Transform + pos: -14.5,36.5 + parent: 2 +- proto: LockerWeldingSuppliesFilled + entities: + - uid: 15922 + components: + - type: Transform + pos: 14.5,-48.5 + parent: 2 +- proto: LunchboxCommandFilledRandom + entities: + - uid: 22311 + components: + - type: Transform + parent: 22310 + - type: Physics + angularDamping: 0 + linearDamping: 0 + canCollide: False + - type: InsideEntityStorage +- proto: MachineAnomalyGenerator + entities: + - uid: 15923 + components: + - type: Transform + pos: -43.5,-30.5 + parent: 2 +- proto: MachineAnomalyVessel + entities: + - uid: 15924 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -37.5,-39.5 + parent: 2 + - uid: 15925 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -37.5,-38.5 + parent: 2 +- proto: MachineAPE + entities: + - uid: 15926 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -39.5,-39.5 + parent: 2 + - uid: 15927 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -39.5,-38.5 + parent: 2 +- proto: MachineArtifactAnalyzer + entities: + - uid: 15928 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -17.5,-31.5 + parent: 2 + - type: DeviceLinkSink + links: + - 8978 +- proto: MachineCentrifuge + entities: + - uid: 15929 + components: + - type: Transform + pos: 10.5,-29.5 + parent: 2 +- proto: MachineElectrolysisUnit + entities: + - uid: 15930 + components: + - type: Transform + pos: 6.5,-32.5 + parent: 2 +- proto: MachineFrame + entities: + - uid: 15931 + components: + - type: Transform + pos: 45.5,-40.5 + parent: 2 + - uid: 15932 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 42.5,-40.5 + parent: 2 +- proto: MachineFrameDestroyed + entities: + - uid: 15934 + components: + - type: Transform + pos: 40.5,-40.5 + parent: 2 + - uid: 15935 + components: + - type: Transform + pos: 36.5,-39.5 + parent: 2 + - uid: 15936 + components: + - type: Transform + pos: 29.5,-10.5 + parent: 2 +- proto: MagazinePistol + entities: + - uid: 15937 + components: + - type: Transform + pos: 6.422253,27.666708 + parent: 2 + - type: Physics + angularDamping: 0 + linearDamping: 0 +- proto: MagazinePistolRubber + entities: + - uid: 15938 + components: + - type: Transform + pos: 6.4003363,27.67767 + parent: 2 + - type: Physics + angularDamping: 0 + linearDamping: 0 +- proto: MagazinePistolSubMachineGun + entities: + - uid: 15939 + components: + - type: Transform + pos: -13.498616,40.531715 + parent: 2 + - uid: 15940 + components: + - type: Transform + pos: -13.386728,40.587658 + parent: 2 + - uid: 15941 + components: + - type: Transform + pos: -13.46132,40.531715 + parent: 2 + - uid: 15942 + components: + - type: Transform + pos: -13.433348,40.578335 + parent: 2 + - uid: 15943 + components: + - type: Transform + pos: -13.36808,40.624954 + parent: 2 +- proto: MagazinePistolSubMachineGunRubber + entities: + - uid: 15944 + components: + - type: Transform + pos: -13.4147,40.578335 + parent: 2 + - uid: 15945 + components: + - type: Transform + pos: -13.4147,40.578335 + parent: 2 +- proto: MagazineRifle + entities: + - uid: 15946 + components: + - type: Transform + pos: -13.62267,40.460464 + parent: 2 + - uid: 15947 + components: + - type: Transform + pos: -13.291159,40.536873 + parent: 2 + - uid: 15948 + components: + - type: Transform + pos: -13.3485365,40.492302 + parent: 2 + - uid: 15949 + components: + - type: Transform + pos: -13.578044,40.54324 + parent: 2 + - uid: 15950 + components: + - type: Transform + pos: -13.507916,40.626015 + parent: 2 +- proto: MagazineRifleRubber + entities: + - uid: 15951 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -13.367661,40.766098 + parent: 2 + - uid: 15952 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -13.367661,40.66422 + parent: 2 +- proto: MailingUnit + entities: + - uid: 296 + components: + - type: Transform + pos: -24.5,-5.5 + parent: 2 + - uid: 15953 + components: + - type: Transform + pos: -36.5,-0.5 + parent: 2 + - type: MailingUnit + tag: Cargo + - uid: 15954 + components: + - type: Transform + pos: -6.5,30.5 + parent: 2 + - type: MailingUnit + tag: Segurança + - uid: 15955 + components: + - type: Transform + pos: -20.5,32.5 + parent: 2 + - uid: 16321 + components: + - type: Transform + pos: -2.5,-44.5 + parent: 2 + - type: MailingUnit + tag: Engenharia + - uid: 16325 + components: + - type: Transform + pos: 16.5,-38.5 + parent: 2 + - type: MailingUnit + tag: Atmosferica + - uid: 22642 + components: + - type: Transform + pos: 38.5,2.5 + parent: 2 + - uid: 22643 + components: + - type: Transform + pos: 32.5,17.5 + parent: 2 + - uid: 22671 + components: + - type: Transform + pos: 21.5,23.5 + parent: 2 + - uid: 22676 + components: + - type: Transform + pos: 17.5,17.5 + parent: 2 + - uid: 22677 + components: + - type: Transform + pos: 10.5,15.5 + parent: 2 + - uid: 22678 + components: + - type: Transform + pos: -35.5,-33.5 + parent: 2 + - uid: 24030 + components: + - type: Transform + pos: 12.5,-32.5 + parent: 2 + - type: MailingUnit + tag: Medicina +- proto: MailTeleporter + entities: + - uid: 15956 + components: + - type: Transform + pos: -22.5,-6.5 + parent: 2 +- proto: MaintenanceFluffSpawner + entities: + - uid: 15957 + components: + - type: Transform + pos: -23.5,-44.5 + parent: 2 + - uid: 15958 + components: + - type: Transform + pos: -19.5,-37.5 + parent: 2 + - uid: 15959 + components: + - type: Transform + pos: -41.5,-25.5 + parent: 2 + - uid: 15960 + components: + - type: Transform + pos: -29.5,21.5 + parent: 2 + - uid: 15961 + components: + - type: Transform + pos: -11.5,48.5 + parent: 2 + - uid: 15962 + components: + - type: Transform + pos: 16.5,27.5 + parent: 2 + - uid: 15963 + components: + - type: Transform + pos: 28.5,-10.5 + parent: 2 +- proto: MaintenancePlantSpawner + entities: + - uid: 15964 + components: + - type: Transform + pos: -12.5,-19.5 + parent: 2 + - uid: 15965 + components: + - type: Transform + pos: 12.5,7.5 + parent: 2 + - uid: 15966 + components: + - type: Transform + pos: 25.5,-5.5 + parent: 2 + - uid: 15967 + components: + - type: Transform + pos: -25.5,15.5 + parent: 2 + - uid: 15968 + components: + - type: Transform + pos: -2.5,43.5 + parent: 2 + - uid: 15969 + components: + - type: Transform + pos: 5.5,-37.5 + parent: 2 + - uid: 15970 + components: + - type: Transform + pos: -29.5,-44.5 + parent: 2 + - uid: 15971 + components: + - type: Transform + pos: -24.5,-62.5 + parent: 2 + - uid: 15972 + components: + - type: Transform + pos: -3.5,-53.5 + parent: 2 + - uid: 15973 + components: + - type: Transform + pos: -22.5,-14.5 + parent: 2 +- proto: MaintenanceToolSpawner + entities: + - uid: 15974 + components: + - type: Transform + pos: -19.5,-42.5 + parent: 2 + - uid: 15975 + components: + - type: Transform + pos: -38.5,-22.5 + parent: 2 + - uid: 15976 + components: + - type: Transform + pos: -14.5,-12.5 + parent: 2 + - uid: 15977 + components: + - type: Transform + pos: -18.5,14.5 + parent: 2 + - uid: 15978 + components: + - type: Transform + pos: 23.5,27.5 + parent: 2 + - uid: 15979 + components: + - type: Transform + pos: 20.5,27.5 + parent: 2 + - uid: 15980 + components: + - type: Transform + pos: 46.5,21.5 + parent: 2 + - uid: 15981 + components: + - type: Transform + pos: -22.5,-52.5 + parent: 2 + - uid: 15982 + components: + - type: Transform + pos: -26.5,-56.5 + parent: 2 + - uid: 15983 + components: + - type: Transform + pos: -25.5,-56.5 + parent: 2 + - uid: 15984 + components: + - type: Transform + pos: -6.5,-51.5 + parent: 2 + - uid: 15985 + components: + - type: Transform + pos: 6.5,-37.5 + parent: 2 + - uid: 15986 + components: + - type: Transform + pos: -2.5,-50.5 + parent: 2 +- proto: MaintenanceWeaponSpawner + entities: + - uid: 15987 + components: + - type: Transform + pos: -21.5,-42.5 + parent: 2 + - uid: 15988 + components: + - type: Transform + pos: -46.5,-25.5 + parent: 2 + - uid: 15989 + components: + - type: Transform + pos: -23.5,21.5 + parent: 2 + - uid: 15990 + components: + - type: Transform + pos: -29.5,-64.5 + parent: 2 + - uid: 15991 + components: + - type: Transform + pos: -7.5,-51.5 + parent: 2 + - uid: 15992 + components: + - type: Transform + pos: 7.5,-37.5 + parent: 2 +- proto: Matchbox + entities: + - uid: 15993 + components: + - type: Transform + pos: 18.550014,8.925238 + parent: 2 + - uid: 15994 + components: + - type: Transform + pos: 17.344532,12.520128 + parent: 2 + - uid: 15995 + components: + - type: Transform + pos: 25.54633,33.540943 + parent: 2 + - uid: 15996 + components: + - type: Transform + pos: -2.5324435,56.50862 + parent: 2 +- proto: MaterialBones1 + entities: + - uid: 15997 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -0.15635538,-50.569748 + parent: 2 + - uid: 15998 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 0.3093797,-51.854664 + parent: 2 + - uid: 15999 + components: + - type: Transform + pos: 0.7005973,-52.431946 + parent: 2 + - uid: 16000 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -0.547573,-52.338837 + parent: 2 + - uid: 16001 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 0.8123738,-51.14703 + parent: 2 +- proto: MaterialCardboard + entities: + - uid: 16002 + components: + - type: Transform + pos: 26.476929,25.55731 + parent: 2 +- proto: MaterialCardboard10 + entities: + - uid: 16003 + components: + - type: Transform + pos: -30.46923,-3.403332 + parent: 2 +- proto: MaterialCloth + entities: + - uid: 10902 + components: + - type: Transform + parent: 8815 + - type: Physics + angularDamping: 0 + linearDamping: 0 + canCollide: False + - type: InsideEntityStorage +- proto: MaterialDurathread + entities: + - uid: 10900 + components: + - type: Transform + parent: 8815 + - type: Physics + angularDamping: 0 + linearDamping: 0 + canCollide: False + - type: InsideEntityStorage +- proto: MaterialReclaimer + entities: + - uid: 16004 + components: + - type: Transform + pos: -44.5,14.5 + parent: 2 +- proto: MaterialWoodPlank1 + entities: + - uid: 16005 + components: + - type: Transform + pos: -13.5,6.5 + parent: 2 + - uid: 16006 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -32.5517,-58.470978 + parent: 2 + - uid: 16007 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -28.530666,-64.49116 + parent: 2 + - uid: 16008 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -26.522465,-64.39292 + parent: 2 + - uid: 16009 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -24.531445,-63.51303 + parent: 2 +- proto: MatterBinStockPart + entities: + - uid: 16010 + components: + - type: Transform + pos: 24.282856,-39.229134 + parent: 2 + - uid: 16011 + components: + - type: Transform + pos: 24.632507,-39.341022 + parent: 2 +- proto: Mattress + entities: + - uid: 16012 + components: + - type: Transform + pos: 6.5,-11.5 + parent: 2 + - uid: 16013 + components: + - type: Transform + pos: 14.5,-4.5 + parent: 2 + - uid: 16014 + components: + - type: Transform + pos: 32.5,-34.5 + parent: 2 + - uid: 16015 + components: + - type: Transform + pos: 41.5,-36.5 + parent: 2 + - uid: 16016 + components: + - type: Transform + pos: 47.5,-36.5 + parent: 2 +- proto: MedicalBed + entities: + - uid: 16017 + components: + - type: Transform + pos: 15.5,-25.5 + parent: 2 + - uid: 16018 + components: + - type: Transform + pos: 15.5,-26.5 + parent: 2 + - uid: 16019 + components: + - type: Transform + pos: 19.5,-26.5 + parent: 2 + - uid: 16020 + components: + - type: Transform + pos: 19.5,-25.5 + parent: 2 + - uid: 16021 + components: + - type: Transform + pos: 17.5,-26.5 + parent: 2 + - uid: 16022 + components: + - type: Transform + pos: 17.5,-25.5 + parent: 2 +- proto: MedicalScanner + entities: + - uid: 825 + components: + - type: Transform + pos: 21.5,-30.5 + parent: 2 + - uid: 16023 + components: + - type: Transform + pos: 30.5,-27.5 + parent: 2 +- proto: MedicalTechFab + entities: + - uid: 16024 + components: + - type: Transform + pos: 17.5,-18.5 + parent: 2 +- proto: MediumXenoArtifactItem + entities: + - uid: 9161 + components: + - type: Transform + parent: 9160 + - type: Artifact + isSuppressed: True + - type: Physics + angularDamping: 0 + linearDamping: 0 + canCollide: False + - type: InsideEntityStorage +- proto: MedkitAdvancedFilled + entities: + - uid: 16030 + components: + - type: Transform + pos: -14.453555,38.475426 + parent: 2 + - uid: 16031 + components: + - type: Transform + pos: -0.5451498,62.658527 + parent: 2 +- proto: MedkitBruteFilled + entities: + - uid: 16032 + components: + - type: Transform + pos: 16.380516,-20.358416 + parent: 2 + - uid: 16033 + components: + - type: Transform + pos: 16.380516,-20.240313 + parent: 2 +- proto: MedkitBurnFilled + entities: + - uid: 16034 + components: + - type: Transform + pos: 22.513134,-14.547533 + parent: 2 + - uid: 16035 + components: + - type: Transform + pos: 16.63013,-19.48196 + parent: 2 + - uid: 16036 + components: + - type: Transform + pos: 16.63013,-19.320343 + parent: 2 +- proto: MedkitCombatFilled + entities: + - uid: 16037 + components: + - type: Transform + pos: 4.469173,-21.368795 + parent: 2 +- proto: MedkitFilled + entities: + - uid: 826 + components: + - type: Transform + pos: -19.489769,-20.498121 + parent: 2 + - uid: 1039 + components: + - type: Transform + pos: -19.489769,-20.308727 + parent: 2 + - uid: 1121 + components: + - type: Transform + pos: -19.489769,-20.119333 + parent: 2 + - uid: 1186 + components: + - type: Transform + pos: -37.5,-35.5 + parent: 2 + - uid: 4549 + components: + - type: Transform + pos: -37.5,-35.5 + parent: 2 + - uid: 8853 + components: + - type: Transform + parent: 8848 + - type: Physics + canCollide: False + - type: InsideEntityStorage + - uid: 16038 + components: + - type: Transform + pos: 42.70952,36.55479 + parent: 2 + - uid: 16039 + components: + - type: Transform + pos: -30.527771,32.556423 + parent: 2 + - uid: 16040 + components: + - type: Transform + pos: -0.5241709,62.532654 + parent: 2 + - uid: 16041 + components: + - type: Transform + pos: 16.43153,-19.693304 + parent: 2 + - uid: 16042 + components: + - type: Transform + pos: 16.43153,-19.562767 + parent: 2 + - uid: 16043 + components: + - type: Transform + pos: 13.718545,-32.476097 + parent: 2 +- proto: MedkitOxygenFilled + entities: + - uid: 16044 + components: + - type: Transform + pos: 16.579979,-20.544226 + parent: 2 + - uid: 16045 + components: + - type: Transform + pos: 16.573212,-20.426792 + parent: 2 +- proto: MedkitRadiationFilled + entities: + - uid: 16046 + components: + - type: Transform + pos: 16.585644,-18.586855 + parent: 2 + - uid: 16047 + components: + - type: Transform + pos: 16.585644,-18.71739 + parent: 2 +- proto: MedkitToxinFilled + entities: + - uid: 4560 + components: + - type: Transform + pos: -43.5,-50.5 + parent: 2 + - uid: 16049 + components: + - type: Transform + pos: 16.417812,-18.331999 + parent: 2 + - uid: 16050 + components: + - type: Transform + pos: 16.417812,-18.450102 + parent: 2 +- proto: MegaSprayBottle + entities: + - uid: 16051 + components: + - type: Transform + pos: 32.662113,19.936192 + parent: 2 +- proto: MetempsychoticMachine + entities: + - uid: 819 + components: + - type: Transform + pos: 32.5,-27.5 + parent: 2 +- proto: MicroManipulatorStockPart + entities: + - uid: 16052 + components: + - type: Transform + pos: 23.52761,-39.38298 + parent: 2 + - uid: 16053 + components: + - type: Transform + pos: 23.625511,-39.49487 + parent: 2 +- proto: MicrowaveMachineCircuitboard + entities: + - uid: 16054 + components: + - type: Transform + pos: -6.4888306,-12.404985 + parent: 2 +- proto: MiningDrill + entities: + - uid: 16055 + components: + - type: Transform + pos: -42.473663,-9.2381115 + parent: 2 +- proto: Mirror + entities: + - uid: 16056 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 39.5,13.5 + parent: 2 + - uid: 16057 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 35.5,21.5 + parent: 2 + - uid: 16058 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 35.5,22.5 + parent: 2 + - uid: 16059 + components: + - type: Transform + pos: -10.5,53.5 + parent: 2 + - uid: 16060 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 33.5,-29.5 + parent: 2 +- proto: MMI + entities: + - uid: 16061 + components: + - type: Transform + pos: -19.531075,-16.07982 + parent: 2 + - uid: 16062 + components: + - type: Transform + pos: -19.447159,-16.233667 + parent: 2 +- proto: ModularGrenade + entities: + - uid: 16063 + components: + - type: Transform + pos: -41.45344,-32.7873 + parent: 2 + - uid: 16064 + components: + - type: Transform + pos: 7.25298,13.699963 + parent: 2 + - uid: 16065 + components: + - type: Transform + pos: 7.538916,13.339434 + parent: 2 + - uid: 16066 + components: + - type: Transform + pos: 7.7502604,13.4451065 + parent: 2 + - uid: 16067 + components: + - type: Transform + pos: -10.706679,-55.53336 + parent: 2 + - uid: 16068 + components: + - type: Transform + pos: -10.706679,-55.24742 + parent: 2 + - uid: 16069 + components: + - type: Transform + pos: -41.57844,-32.7873 + parent: 2 + - uid: 16070 + components: + - type: Transform + pos: -41.305004,-32.784176 + parent: 2 + - uid: 16071 + components: + - type: Transform + pos: 30.36745,-52.382015 + parent: 2 +- proto: MopBucket + entities: + - uid: 16076 + components: + - type: Transform + pos: -10.526969,-40.502083 + parent: 2 +- proto: MopBucketFull + entities: + - uid: 16077 + components: + - type: Transform + pos: 21.555202,27.513826 + parent: 2 +- proto: MopItem + entities: + - uid: 16078 + components: + - type: Transform + pos: 9.276443,11.439346 + parent: 2 + - uid: 16079 + components: + - type: Transform + pos: -10.547948,-40.502083 + parent: 2 +- proto: Morgue + entities: + - uid: 16080 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -19.5,-18.5 + parent: 2 + - uid: 16081 + components: + - type: Transform + pos: -36.5,39.5 + parent: 2 + - uid: 16082 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 15.5,-8.5 + parent: 2 + - uid: 16083 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 15.5,-9.5 + parent: 2 + - uid: 16084 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 15.5,-10.5 + parent: 2 + - uid: 16085 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 16.5,-8.5 + parent: 2 + - uid: 16086 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 16.5,-9.5 + parent: 2 + - uid: 16087 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 16.5,-10.5 + parent: 2 + - uid: 16088 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 20.5,-8.5 + parent: 2 + - uid: 16089 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 20.5,-9.5 + parent: 2 + - uid: 16090 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 20.5,-10.5 + parent: 2 +- proto: MouseTimedSpawner + entities: + - uid: 16091 + components: + - type: Transform + pos: -32.5,20.5 + parent: 2 +- proto: Multitool + entities: + - uid: 16092 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -22.343704,-13.085022 + parent: 2 + - uid: 16093 + components: + - type: Transform + pos: -43.685184,10.920397 + parent: 2 + - uid: 16094 + components: + - type: Transform + pos: -22.323101,-30.658142 + parent: 2 + - uid: 16095 + components: + - type: Transform + pos: -6.2626686,-21.5607 + parent: 2 + - uid: 16096 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -37.198826,-50.85587 + parent: 2 + - uid: 16097 + components: + - type: Transform + pos: -41.18152,-33.136368 + parent: 2 + - uid: 22329 + components: + - type: Transform + pos: 31.105812,-31.412148 + parent: 2 +- proto: NetworkConfigurator + entities: + - uid: 16098 + components: + - type: Transform + pos: 41.690483,19.640884 + parent: 2 +- proto: NitrogenCanister + entities: + - uid: 16099 + components: + - type: Transform + pos: -6.5,-37.5 + parent: 2 + - uid: 16100 + components: + - type: Transform + pos: -29.5,-39.5 + parent: 2 + - uid: 16101 + components: + - type: Transform + pos: -29.5,-38.5 + parent: 2 + - uid: 16102 + components: + - type: Transform + pos: -29.5,-37.5 + parent: 2 + - uid: 16103 + components: + - type: Transform + pos: 9.5,78.5 + parent: 2 + - uid: 16104 + components: + - type: Transform + pos: -23.5,12.5 + parent: 2 + - uid: 16105 + components: + - type: Transform + pos: -42.5,-25.5 + parent: 2 + - uid: 16106 + components: + - type: Transform + pos: -29.5,-50.5 + parent: 2 + - uid: 16107 + components: + - type: Transform + pos: 14.5,-37.5 + parent: 2 + - uid: 16108 + components: + - type: Transform + pos: 17.5,-49.5 + parent: 2 + - uid: 16109 + components: + - type: Transform + pos: 17.5,-50.5 + parent: 2 + - uid: 16110 + components: + - type: Transform + pos: 17.5,-51.5 + parent: 2 + - uid: 16111 + components: + - type: Transform + pos: 16.5,-62.5 + parent: 2 + - uid: 16112 + components: + - type: Transform + pos: -7.5,-53.5 + parent: 2 + - uid: 16113 + components: + - type: Transform + pos: -10.5,-8.5 + parent: 2 + - uid: 16114 + components: + - type: Transform + pos: 24.5,-6.5 + parent: 2 + - uid: 16115 + components: + - type: Transform + pos: -32.5,19.5 + parent: 2 + - uid: 16116 + components: + - type: Transform + pos: 30.5,-12.5 + parent: 2 + - uid: 22955 + components: + - type: Transform + pos: 3.5,-66.5 + parent: 2 + - uid: 22956 + components: + - type: Transform + pos: 4.5,-66.5 + parent: 2 +- proto: NitrousOxideCanister + entities: + - uid: 16117 + components: + - type: Transform + pos: -27.5,32.5 + parent: 2 + - uid: 16118 + components: + - type: Transform + pos: -29.5,23.5 + parent: 2 + - uid: 16119 + components: + - type: Transform + pos: 25.5,-31.5 + parent: 2 + - uid: 16120 + components: + - type: Transform + pos: 19.5,-51.5 + parent: 2 + - uid: 16121 + components: + - type: Transform + pos: 38.5,-62.5 + parent: 2 +- proto: NodeScanner + entities: + - uid: 16122 + components: + - type: Transform + pos: -44.384266,-35.857845 + parent: 2 + - uid: 16123 + components: + - type: Transform + pos: -44.617367,-36.035 + parent: 2 +- proto: NoticeBoard + entities: + - uid: 16124 + components: + - type: Transform + pos: 4.5,5.5 + parent: 2 + - uid: 16125 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 27.5,15.5 + parent: 2 +- proto: NuclearBomb + entities: + - uid: 16126 + components: + - type: Transform + pos: -33.5,15.5 + parent: 2 +- proto: OperatingTable + entities: + - uid: 16127 + components: + - type: Transform + pos: -18.5,-17.5 + parent: 2 + - uid: 16128 + components: + - type: Transform + pos: -28.5,38.5 + parent: 2 + - uid: 16129 + components: + - type: Transform + pos: 16.5,-13.5 + parent: 2 + - uid: 16130 + components: + - type: Transform + pos: -15.5,-17.5 + parent: 2 +- proto: OracleSpawner + entities: + - uid: 14817 + components: + - type: Transform + pos: -31.5,-23.5 + parent: 2 +- proto: OreProcessor + entities: + - uid: 16131 + components: + - type: Transform + pos: -39.5,-6.5 + parent: 2 +- proto: OxygenCanister + entities: + - uid: 16132 + components: + - type: Transform + pos: -43.5,-13.5 + parent: 2 + - uid: 16133 + components: + - type: Transform + pos: -4.5,-20.5 + parent: 2 + - uid: 16134 + components: + - type: Transform + pos: -7.5,-37.5 + parent: 2 + - uid: 16135 + components: + - type: Transform + pos: 9.5,77.5 + parent: 2 + - uid: 16136 + components: + - type: Transform + pos: 28.5,-27.5 + parent: 2 + - uid: 16137 + components: + - type: Transform + pos: -22.5,12.5 + parent: 2 + - uid: 16138 + components: + - type: Transform + pos: -6.5,-53.5 + parent: 2 + - uid: 16139 + components: + - type: Transform + pos: 16.5,-49.5 + parent: 2 + - uid: 16140 + components: + - type: Transform + pos: 16.5,-50.5 + parent: 2 + - uid: 16141 + components: + - type: Transform + pos: 16.5,-51.5 + parent: 2 + - uid: 16142 + components: + - type: Transform + pos: -29.5,-52.5 + parent: 2 + - uid: 16143 + components: + - type: Transform + pos: -9.5,-8.5 + parent: 2 + - uid: 16144 + components: + - type: Transform + pos: -40.5,-25.5 + parent: 2 + - uid: 16145 + components: + - type: Transform + pos: 23.5,-6.5 + parent: 2 + - uid: 16146 + components: + - type: Transform + pos: 14.5,-36.5 + parent: 2 + - uid: 16147 + components: + - type: Transform + pos: -31.5,19.5 + parent: 2 + - uid: 16148 + components: + - type: Transform + pos: 29.5,-12.5 + parent: 2 + - uid: 16149 + components: + - type: Transform + pos: 16.5,-58.5 + parent: 2 +- proto: PaperBin10 + entities: + - uid: 16150 + components: + - type: Transform + pos: -2.5,14.5 + parent: 2 + - uid: 16151 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -27.5,5.5 + parent: 2 + - uid: 16152 + components: + - type: Transform + pos: -39.974483,8.601084 + parent: 2 + - uid: 16153 + components: + - type: Transform + pos: -36.314747,6.548981 + parent: 2 + - uid: 16154 + components: + - type: Transform + pos: -33.320435,-25.397486 + parent: 2 + - uid: 16155 + components: + - type: Transform + pos: -36.5,-27.5 + parent: 2 + - uid: 16156 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -27.5,-21.5 + parent: 2 + - uid: 16157 + components: + - type: Transform + pos: -14.5,-22.5 + parent: 2 + - uid: 16158 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -34.5,-64.5 + parent: 2 + - uid: 16159 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 29.5,-4.5 + parent: 2 + - uid: 16160 + components: + - type: Transform + pos: 26.5,10.5 + parent: 2 + - uid: 16161 + components: + - type: Transform + pos: 40.5,13.5 + parent: 2 + - uid: 16162 + components: + - type: Transform + pos: 41.5,4.5 + parent: 2 + - uid: 16163 + components: + - type: Transform + pos: 25.5,29.5 + parent: 2 + - uid: 16164 + components: + - type: Transform + pos: 13.5,42.5 + parent: 2 + - uid: 16165 + components: + - type: Transform + pos: 43.5,-17.5 + parent: 2 + - uid: 16166 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -19.5,21.5 + parent: 2 + - uid: 16167 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -24.5,24.5 + parent: 2 + - uid: 16168 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -5.5,32.5 + parent: 2 + - uid: 16169 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -16.5,31.5 + parent: 2 + - uid: 16170 + components: + - type: Transform + pos: -24.5,40.5 + parent: 2 + - uid: 16171 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -37.5,30.5 + parent: 2 + - uid: 16172 + components: + - type: Transform + pos: -25.5,27.5 + parent: 2 + - uid: 16173 + components: + - type: Transform + pos: -8.5,55.5 + parent: 2 + - uid: 16174 + components: + - type: Transform + pos: 6.5,48.5 + parent: 2 + - uid: 16175 + components: + - type: Transform + pos: 10.5,52.5 + parent: 2 + - uid: 16176 + components: + - type: Transform + pos: -6.5,83.5 + parent: 2 + - uid: 16177 + components: + - type: Transform + pos: 22.5,-20.5 + parent: 2 + - uid: 16178 + components: + - type: Transform + pos: 45.5,-20.5 + parent: 2 + - uid: 16179 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 39.5,-26.5 + parent: 2 + - uid: 16180 + components: + - type: Transform + pos: 41.5,-34.5 + parent: 2 + - uid: 16181 + components: + - type: Transform + pos: 6.5,-28.5 + parent: 2 + - uid: 16182 + components: + - type: Transform + pos: 8.5,-20.5 + parent: 2 + - uid: 16183 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -0.5,-43.5 + parent: 2 + - uid: 16184 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 5.5,-49.5 + parent: 2 + - uid: 16185 + components: + - type: Transform + pos: 7.5,25.5 + parent: 2 + - uid: 16186 + components: + - type: Transform + pos: 36.5,-46.5 + parent: 2 +- proto: PaperCaptainsThoughts + entities: + - uid: 16187 + components: + - type: Transform + pos: -4.6271625,-37.31797 + parent: 2 + - uid: 16188 + components: + - type: Transform + pos: -8.264277,49.208706 + parent: 2 +- proto: PaperOffice + entities: + - uid: 1157 + components: + - type: MetaData + name: Formulário de Trabalho + - type: Transform + parent: 1156 + - type: Paper + content: >- + [color=#002159]█▀▀▀▀▀▀▀▀▀▀▀▀▀▀█▄ + + █   ▀██   █▄     █           █ + + █       ▀   █▀█▄█   ▄       █ [head=1]Nanotrasen[/head] + + █           █     ▀█   ██▄   █ + + ▀█▄▄▄▄▄▄▄▄▄▄▄▄▄▄█ [head=1]Technologies[/head][/color] + + + [color=#002159][head=1] FORMULÁRIO DE TRABALHO [/head] + + [/color] + + [head=2] Informações [/head] + + + Nome: + + Idade: + + Raça: + + Descrição: + + Habilidades: + + Afiliação com a Nanotrasen: + + + [color=#002159][head=2] Trabalho [/head][/color] + + + Trabalho atual: + + Trabalho que quer: + + Motivo: + + + [color=#002159][head=2] O que fazer [/head][/color] + + + [bullet/] Este papel [bold][color=#ff0000]DEVE[/color][/bold] ser entregue ao head do departamento em que a pessoa quer o emprego. + + + [bullet/] Se você (head do departamento) permite que esta pessoa trabalhe no seu departamento, carimbe este papel e entregue no meu escritório. + + + [bullet/] Se você não permite, me avise pelo rádio ou simplesmente não devolva o papel. + + + [bullet/] Não irei dar trabalho para pessoas sem este papel estar carimbado. + - type: Physics + canCollide: False + - uid: 16189 + components: + - type: Transform + pos: -12.441007,-24.24285 + parent: 2 + - uid: 16190 + components: + - type: Transform + pos: -12.35882,-24.27025 + parent: 2 + - uid: 16191 + components: + - type: Transform + pos: -10.318714,15.583685 + parent: 2 + - uid: 16192 + components: + - type: Transform + pos: -10.318714,15.583685 + parent: 2 + - uid: 16193 + components: + - type: Transform + pos: -2.969903,14.600746 + parent: 2 + - uid: 16194 + components: + - type: Transform + pos: -2.969903,14.600746 + parent: 2 + - uid: 16195 + components: + - type: Transform + pos: -2.969903,14.600746 + parent: 2 + - uid: 16196 + components: + - type: Transform + pos: 41.476032,19.53832 + parent: 2 + - uid: 16197 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 42.479774,3.5221295 + parent: 2 + - uid: 16198 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 42.628956,3.6899614 + parent: 2 + - uid: 16199 + components: + - type: Transform + pos: 42.73152,3.5501013 + parent: 2 + - uid: 16200 + components: + - type: Transform + pos: 35.40297,28.736885 + parent: 2 + - uid: 16201 + components: + - type: Transform + pos: 35.51486,28.54419 + parent: 2 + - uid: 16202 + components: + - type: Transform + pos: 35.63918,28.687159 + parent: 2 + - uid: 16203 + components: + - type: Transform + pos: 38.436382,28.556622 + parent: 2 + - uid: 16204 + components: + - type: Transform + pos: 38.622864,28.569054 + parent: 2 + - uid: 16205 + components: + - type: Transform + pos: 38.492325,28.705805 + parent: 2 + - uid: 16206 + components: + - type: Transform + pos: 42.363365,36.72612 + parent: 2 + - uid: 16207 + components: + - type: Transform + pos: 42.384346,36.621223 + parent: 2 + - uid: 16208 + components: + - type: Transform + pos: -5.5053062,33.51533 + parent: 2 + - uid: 16209 + components: + - type: Transform + pos: 5.291128,47.58555 + parent: 2 + - uid: 16210 + components: + - type: Transform + pos: 5.291128,47.58555 + parent: 2 + - uid: 16211 + components: + - type: Transform + pos: 5.291128,47.58555 + parent: 2 + - uid: 16212 + components: + - type: Transform + pos: 5.291128,47.58555 + parent: 2 + - uid: 16213 + components: + - type: Transform + pos: 5.291128,47.58555 + parent: 2 + - uid: 16214 + components: + - type: Transform + pos: 5.291128,47.58555 + parent: 2 + - uid: 16215 + components: + - type: Transform + pos: 5.291128,47.58555 + parent: 2 + - uid: 16216 + components: + - type: Transform + pos: 5.291128,47.58555 + parent: 2 + - uid: 16217 + components: + - type: Transform + pos: 5.291128,47.58555 + parent: 2 + - uid: 16218 + components: + - type: Transform + pos: 5.291128,47.58555 + parent: 2 + - uid: 16219 + components: + - type: Transform + pos: 5.291128,47.58555 + parent: 2 + - uid: 16220 + components: + - type: Transform + pos: 30.418941,-31.47602 + parent: 2 + - uid: 16221 + components: + - type: Transform + pos: 30.540154,-31.326838 + parent: 2 + - uid: 16222 + components: + - type: Transform + pos: 30.633392,-31.466698 + parent: 2 + - uid: 16223 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 32.36278,-34.646008 + parent: 2 + - uid: 16224 + components: + - type: Transform + pos: -30.233414,-5.0676875 + parent: 2 + - type: Paper + stampState: paper_stamp-centcom + stampedBy: + - stampedColor: '#006600FF' + stampedName: stamp-component-stamped-name-centcom + content: > + [color=#002159]█▀▀▀▀▀▀▀▀▀▀▀▀▀▀█▄ + + █   ▀██   █▄     █           █ + + █       ▀   █▀█▄█   ▄       █ [head=1]Nanotrasen[/head] + + █           █     ▀█   ██▄   █ + + ▀█▄▄▄▄▄▄▄▄▄▄▄▄▄▄█ [head=1]Technologies[/head][/color] + + + [bold]--------------------------------------------------------------------------[/bold] + + O sistema de correios da estação ainda não estão terminados e ficará pronto em tempo inderteminado. Para entregar coisas em deptos especificos, adicionamos aberturas na maints de cada depto para entrega. + - uid: 16225 + components: + - type: Transform + pos: -12.340555,-24.334187 + parent: 2 + - uid: 16226 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -12.587118,-24.39812 + parent: 2 +- proto: PartRodMetal + entities: + - uid: 16227 + components: + - type: Transform + pos: -36.48147,-18.219297 + parent: 2 + - uid: 16228 + components: + - type: Transform + pos: -6.4957685,-21.430162 + parent: 2 + - uid: 16229 + components: + - type: Transform + pos: 20.485275,25.562778 + parent: 2 + - uid: 16230 + components: + - type: Transform + pos: -14.573731,-61.28659 + parent: 2 + - uid: 16231 + components: + - type: Transform + pos: -10.409327,-55.51623 + parent: 2 + - uid: 16232 + components: + - type: Transform + pos: 22.526024,-45.307453 + parent: 2 +- proto: PartRodMetal1 + entities: + - uid: 16233 + components: + - type: Transform + pos: -61.468468,26.457985 + parent: 2 + - uid: 16234 + components: + - type: Transform + pos: -50.5,17.5 + parent: 2 + - uid: 16235 + components: + - type: Transform + pos: -64.5,23.5 + parent: 2 + - uid: 16236 + components: + - type: Transform + pos: -62.5,26.5 + parent: 2 + - uid: 16237 + components: + - type: Transform + pos: -62.5,25.5 + parent: 2 + - uid: 16238 + components: + - type: Transform + pos: -58.5,27.5 + parent: 2 + - uid: 16239 + components: + - type: Transform + pos: -54.5,27.5 + parent: 2 +- proto: Pen + entities: + - uid: 16240 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -16.62738,-3.3543878 + parent: 2 + - uid: 16241 + components: + - type: Transform + pos: -15.483094,-6.4231343 + parent: 2 + - uid: 16242 + components: + - type: Transform + pos: -36.29377,6.5070233 + parent: 2 + - uid: 16243 + components: + - type: Transform + pos: -33.320435,-25.397486 + parent: 2 + - uid: 16244 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -14.661369,-22.297771 + parent: 2 + - uid: 16245 + components: + - type: Transform + pos: 26.488224,10.505266 + parent: 2 + - uid: 16246 + components: + - type: Transform + pos: 40.527912,13.475346 + parent: 2 + - uid: 16247 + components: + - type: Transform + pos: 41.510075,4.5384464 + parent: 2 + - uid: 16248 + components: + - type: Transform + pos: 25.548351,29.502483 + parent: 2 + - uid: 16249 + components: + - type: Transform + pos: 13.501094,42.53572 + parent: 2 + - uid: 16250 + components: + - type: Transform + pos: 23.42049,39.683567 + parent: 2 + - uid: 16251 + components: + - type: Transform + pos: 43.51236,-17.488043 + parent: 2 + - uid: 16252 + components: + - type: Transform + pos: -19.515514,20.852518 + parent: 2 + - uid: 16253 + components: + - type: Transform + pos: -24.933372,24.515673 + parent: 2 + - uid: 16254 + components: + - type: Transform + pos: -5.5146303,32.48969 + parent: 2 + - uid: 16255 + components: + - type: Transform + pos: -16.509304,31.552294 + parent: 2 + - uid: 16256 + components: + - type: Transform + pos: -24.51992,40.548824 + parent: 2 + - uid: 16257 + components: + - type: Transform + pos: -37.48929,30.520847 + parent: 2 + - uid: 16258 + components: + - type: Transform + pos: -25.5015,27.489347 + parent: 2 + - uid: 16259 + components: + - type: Transform + pos: -8.495046,49.124786 + parent: 2 + - uid: 16260 + components: + - type: Transform + pos: 5.333086,47.648487 + parent: 2 + - uid: 16261 + components: + - type: Transform + pos: 10.521973,52.51754 + parent: 2 + - uid: 16262 + components: + - type: Transform + pos: -6.499563,83.488266 + parent: 2 + - uid: 16263 + components: + - type: Transform + pos: 22.931149,-20.437773 + parent: 2 + - uid: 16264 + components: + - type: Transform + pos: 45.47221,-20.459116 + parent: 2 + - uid: 16265 + components: + - type: Transform + pos: 39.510532,-26.473282 + parent: 2 + - uid: 16266 + components: + - type: Transform + pos: 41.500698,-34.448414 + parent: 2 + - uid: 16267 + components: + - type: Transform + pos: 30.931763,-31.420078 + parent: 2 + - uid: 16268 + components: + - type: Transform + pos: 6.4996448,-28.510612 + parent: 2 + - uid: 16269 + components: + - type: Transform + pos: 8.514117,-20.45272 + parent: 2 + - uid: 16270 + components: + - type: Transform + pos: -0.4732281,-43.503067 + parent: 2 + - uid: 16271 + components: + - type: Transform + pos: 5.504001,-49.484642 + parent: 2 + - uid: 16272 + components: + - type: Transform + pos: 11.37772,-51.005104 + parent: 2 + - uid: 16273 + components: + - type: Transform + pos: 7.162602,25.46121 + parent: 2 + - uid: 16274 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -12.075729,-24.407255 + parent: 2 +- proto: PenCap + entities: + - uid: 16275 + components: + - type: Transform + pos: -4.731953,-37.44367 + parent: 2 + - uid: 16276 + components: + - type: Transform + pos: -8.532443,55.627502 + parent: 2 +- proto: PenHop + entities: + - uid: 16277 + components: + - type: Transform + pos: 6.486932,48.61696 + parent: 2 +- proto: PersonalAI + entities: + - uid: 15849 + components: + - type: Transform + parent: 15848 + - type: Physics + canCollide: False + - type: InsideEntityStorage + - uid: 16278 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -17.470055,-3.3978996 + parent: 2 + - uid: 16279 + components: + - type: Transform + pos: -17.635727,-22.446955 + parent: 2 + - uid: 16280 + components: + - type: Transform + pos: -4.43854,-37.48557 + parent: 2 + - uid: 16281 + components: + - type: Transform + pos: 22.530182,10.4912815 + parent: 2 + - uid: 16282 + components: + - type: Transform + pos: 7.761195,54.535522 + parent: 2 + - uid: 16283 + components: + - type: Transform + pos: -5.4023366,74.6485 + parent: 2 +- proto: PetCarrier + entities: + - uid: 8801 + components: + - type: Transform + parent: 8799 + - type: Physics + canCollide: False + - type: InsideEntityStorage + - uid: 8885 + components: + - type: Transform + parent: 8883 + - type: Physics + angularDamping: 0 + linearDamping: 0 + canCollide: False + - type: InsideEntityStorage + - uid: 15856 + components: + - type: Transform + parent: 15855 + - type: Physics + canCollide: False + - type: InsideEntityStorage + - uid: 15863 + components: + - type: Transform + parent: 15862 + - type: Physics + angularDamping: 0 + linearDamping: 0 + canCollide: False + - type: InsideEntityStorage + - uid: 15895 + components: + - type: Transform + parent: 8815 + - type: Physics + angularDamping: 0 + linearDamping: 0 + fixedRotation: False + canCollide: False + - type: InsideEntityStorage + - uid: 15906 + components: + - type: Transform + parent: 15905 + - type: Physics + canCollide: False + - type: InsideEntityStorage + - uid: 15908 + components: + - type: Transform + parent: 15907 + - type: Physics + canCollide: False + - type: InsideEntityStorage +- proto: PhoneInstrument + entities: + - uid: 16284 + components: + - type: Transform + pos: -13.300335,-2.2604 + parent: 2 + - uid: 16285 + components: + - type: Transform + pos: -26.33136,45.398384 + parent: 2 + - uid: 16286 + components: + - type: Transform + pos: 8.98264,54.600792 + parent: 2 + - uid: 16287 + components: + - type: Transform + pos: 9.387393,82.53901 + parent: 2 +- proto: PianoInstrument + entities: + - uid: 16288 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 22.5,4.5 + parent: 2 +- proto: PillCanister + entities: + - uid: 8747 + components: + - type: Transform + parent: 8746 + - type: Physics + canCollide: False + - type: InsideEntityStorage + - uid: 16289 + components: + - type: Transform + pos: 34.350876,-34.67065 + parent: 2 + - uid: 16290 + components: + - type: Transform + pos: 36.3752,-29.338015 + parent: 2 + - uid: 16291 + components: + - type: Transform + pos: 36.61141,-29.543142 + parent: 2 + - uid: 16292 + components: + - type: Transform + pos: 28.24926,-31.429379 + parent: 2 + - uid: 16293 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 10.566922,-38.444157 + parent: 2 + - uid: 16294 + components: + - type: Transform + pos: 12.455034,-38.4022 + parent: 2 +- proto: PinpointerNuclear + entities: + - uid: 16295 + components: + - type: Transform + pos: -31.654495,17.071499 + parent: 2 +- proto: PlasmaCanister + entities: + - uid: 16296 + components: + - type: Transform + pos: 18.5,-51.5 + parent: 2 + - uid: 16297 + components: + - type: Transform + pos: 18.5,-50.5 + parent: 2 + - uid: 16298 + components: + - type: Transform + pos: 38.5,-58.5 + parent: 2 + - type: GasCanister + releaseValve: True + releasePressure: 1013.25 + - type: Lock + locked: False +- proto: PlasmaTankFilled + entities: + - uid: 16305 + components: + - type: Transform + pos: -7.4577236,-65.04376 + parent: 2 +- proto: PlasticFlapsAirtightClear + entities: + - uid: 16306 + components: + - type: Transform + pos: -45.5,1.5 + parent: 2 + - uid: 16307 + components: + - type: Transform + pos: -45.5,-2.5 + parent: 2 + - uid: 16308 + components: + - type: Transform + pos: -45.5,18.5 + parent: 2 + - uid: 16309 + components: + - type: Transform + pos: 20.5,47.5 + parent: 2 +- proto: PlasticFlapsClear + entities: + - uid: 16310 + components: + - type: Transform + pos: -43.5,4.5 + parent: 2 + - uid: 16311 + components: + - type: Transform + pos: -44.5,-2.5 + parent: 2 + - uid: 16312 + components: + - type: Transform + pos: -43.5,-5.5 + parent: 2 + - uid: 16313 + components: + - type: Transform + pos: -36.5,12.5 + parent: 2 + - uid: 16314 + components: + - type: Transform + pos: -42.5,12.5 + parent: 2 + - uid: 16315 + components: + - type: Transform + pos: -44.5,5.5 + parent: 2 + - uid: 16316 + components: + - type: Transform + pos: -40.5,16.5 + parent: 2 + - uid: 16317 + components: + - type: Transform + pos: -44.5,1.5 + parent: 2 +- proto: PlasticFlapsOpaque + entities: + - uid: 16318 + components: + - type: Transform + pos: -20.5,-15.5 + parent: 2 + - uid: 16323 + components: + - type: Transform + pos: -27.5,26.5 + parent: 2 +- proto: Plunger + entities: + - uid: 16326 + components: + - type: Transform + pos: 7.5468035,13.295443 + parent: 2 + - uid: 16327 + components: + - type: Transform + pos: 7.3603234,13.174231 + parent: 2 +- proto: PlushieCoffeeFox + entities: + - uid: 20026 + components: + - type: Transform + pos: -17.484127,12.425354 + parent: 2 +- proto: PlushieMoth + entities: + - uid: 16328 + components: + - type: Transform + pos: -23.665382,-13.840267 + parent: 2 + - uid: 16329 + components: + - type: Transform + pos: -38.5,14.5 + parent: 2 + - uid: 16330 + components: + - type: Transform + pos: -37.5,14.5 + parent: 2 + - uid: 16331 + components: + - type: Transform + pos: -37.5,15.5 + parent: 2 + - uid: 16332 + components: + - type: Transform + pos: -37.5,16.5 + parent: 2 + - uid: 16333 + components: + - type: Transform + pos: -37.5,17.5 + parent: 2 + - uid: 16334 + components: + - type: Transform + pos: -38.5,17.5 + parent: 2 + - uid: 16335 + components: + - type: Transform + pos: -38.5,16.5 + parent: 2 + - uid: 16336 + components: + - type: Transform + pos: -38.5,15.5 + parent: 2 + - uid: 16337 + components: + - type: Transform + pos: 43.132454,4.7062783 + parent: 2 +- proto: PlushieNuke + entities: + - uid: 16338 + components: + - type: Transform + pos: -33.4985,39.59751 + parent: 2 +- proto: PlushieRGBee + entities: + - uid: 16339 + components: + - type: Transform + pos: -25.558392,-67.50694 + parent: 2 +- proto: PlushieSlime + entities: + - uid: 16340 + components: + - type: Transform + pos: -33.4985,36.450657 + parent: 2 +- proto: PlushieSnake + entities: + - uid: 16341 + components: + - type: Transform + pos: -33.477524,33.4087 + parent: 2 +- proto: PlushieSpaceLizard + entities: + - uid: 16342 + components: + - type: Transform + pos: -45.54679,-18.494848 + parent: 2 +- proto: PlushieXeno + entities: + - uid: 16343 + components: + - type: Transform + pos: -1.5916812,-97.51262 + parent: 2 +- proto: PortableFlasher + entities: + - uid: 16344 + components: + - type: Transform + pos: -17.5,38.5 + parent: 2 +- proto: PortableGeneratorJrPacman + entities: + - uid: 16345 + components: + - type: Transform + pos: -2.5,-53.5 + parent: 2 + - uid: 16346 + components: + - type: Transform + pos: 23.5,-34.5 + parent: 2 + - uid: 16347 + components: + - type: Transform + pos: -25.5,-54.5 + parent: 2 + - uid: 16348 + components: + - type: Transform + pos: -21.5,-37.5 + parent: 2 + - uid: 16349 + components: + - type: Transform + pos: 10.5,-15.5 + parent: 2 + - uid: 16350 + components: + - type: Transform + pos: 42.5,23.5 + parent: 2 + - uid: 16351 + components: + - type: Transform + pos: 12.5,17.5 + parent: 2 + - uid: 16352 + components: + - type: Transform + pos: 36.5,-27.5 + parent: 2 + - uid: 16353 + components: + - type: Transform + pos: -17.5,4.5 + parent: 2 +- proto: PortableGeneratorPacman + entities: + - uid: 16354 + components: + - type: Transform + pos: 10.5,-58.5 + parent: 2 + - uid: 16355 + components: + - type: Transform + pos: -23.5,9.5 + parent: 2 + - uid: 16356 + components: + - type: Transform + pos: -28.5,-16.5 + parent: 2 + - uid: 16357 + components: + - type: Transform + pos: 8.5,44.5 + parent: 2 + - uid: 16358 + components: + - type: Transform + pos: 0.5,-58.5 + parent: 2 + - uid: 16359 + components: + - type: Transform + pos: -26.5,-66.5 + parent: 2 + - uid: 16360 + components: + - type: Transform + pos: 11.5,46.5 + parent: 2 +- proto: PortableGeneratorPacmanMachineCircuitboard + entities: + - uid: 16361 + components: + - type: Transform + pos: -2.5222745,-37.56796 + parent: 2 +- proto: PortableGeneratorSuperPacman + entities: + - uid: 16362 + components: + - type: Transform + pos: 10.5,-57.5 + parent: 2 +- proto: PortableGeneratorSuperPacmanMachineCircuitboard + entities: + - uid: 16363 + components: + - type: Transform + pos: -2.5,-40.5 + parent: 2 +- proto: PortableScrubber + entities: + - uid: 16364 + components: + - type: Transform + pos: -30.5,-41.5 + parent: 2 + - uid: 16365 + components: + - type: Transform + pos: -29.5,-41.5 + parent: 2 + - uid: 16366 + components: + - type: Transform + pos: -39.5,-51.5 + parent: 2 + - uid: 16367 + components: + - type: Transform + pos: 9.5,76.5 + parent: 2 + - uid: 16368 + components: + - type: Transform + pos: 2.5,-38.5 + parent: 2 + - uid: 16369 + components: + - type: Transform + pos: 2.5,-39.5 + parent: 2 + - uid: 16370 + components: + - type: Transform + pos: 36.5,-48.5 + parent: 2 + - uid: 16371 + components: + - type: Transform + pos: 7.5,-76.5 + parent: 2 + - uid: 16372 + components: + - type: Transform + pos: -6.5,-76.5 + parent: 2 + - uid: 16373 + components: + - type: Transform + pos: 35.5,-48.5 + parent: 2 + - uid: 16374 + components: + - type: Transform + pos: 37.5,-48.5 + parent: 2 + - uid: 16375 + components: + - type: Transform + pos: 38.5,-48.5 + parent: 2 +- proto: PosterContrabandClown + entities: + - uid: 16376 + components: + - type: Transform + pos: 39.5,14.5 + parent: 2 +- proto: PosterContrabandUnreadableAnnouncement + entities: + - uid: 16377 + components: + - type: Transform + pos: -1.5,5.5 + parent: 2 +- proto: PosterLegitCleanliness + entities: + - uid: 16378 + components: + - type: Transform + pos: 7.5,10.5 + parent: 2 + - uid: 16379 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 15.5,-21.5 + parent: 2 +- proto: PosterLegitMime + entities: + - uid: 818 + components: + - type: Transform + pos: 44.5,15.5 + parent: 2 +- proto: PosterLegitSafetyMothDelam + entities: + - uid: 16380 + components: + - type: Transform + pos: -39.5,16.5 + parent: 2 +- proto: PosterLegitSafetyMothEpi + entities: + - uid: 16381 + components: + - type: Transform + pos: -36.5,17.5 + parent: 2 + - uid: 16382 + components: + - type: Transform + pos: -38.5,18.5 + parent: 2 + - uid: 16383 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 19.5,19.5 + parent: 2 +- proto: PosterLegitSafetyMothHardhat + entities: + - uid: 16384 + components: + - type: Transform + pos: -36.5,14.5 + parent: 2 +- proto: PosterLegitSafetyMothMeth + entities: + - uid: 16385 + components: + - type: Transform + pos: -37.5,18.5 + parent: 2 +- proto: PottedPlant0 + entities: + - uid: 16386 + components: + - type: Transform + pos: -16.5,11.5 + parent: 2 +- proto: PottedPlant12 + entities: + - uid: 16387 + components: + - type: Transform + pos: -13.5,14.5 + parent: 2 +- proto: PottedPlantBioluminscent + entities: + - uid: 16388 + components: + - type: Transform + pos: -9.5,14.5 + parent: 2 +- proto: PottedPlantRandom + entities: + - uid: 16389 + components: + - type: Transform + pos: -23.5,-3.5 + parent: 2 + - uid: 16390 + components: + - type: Transform + pos: -29.5,4.5 + parent: 2 + - uid: 16391 + components: + - type: Transform + pos: -32.5,7.5 + parent: 2 + - uid: 16392 + components: + - type: Transform + pos: -36.5,4.5 + parent: 2 + - uid: 16393 + components: + - type: Transform + pos: -36.5,-5.5 + parent: 2 + - uid: 16394 + components: + - type: Transform + pos: -41.5,-29.5 + parent: 2 + - uid: 16395 + components: + - type: Transform + pos: -35.5,-36.5 + parent: 2 + - uid: 16396 + components: + - type: Transform + pos: -40.5,-41.5 + parent: 2 + - uid: 16397 + components: + - type: Transform + pos: -45.5,-29.5 + parent: 2 + - uid: 16398 + components: + - type: Transform + pos: -3.5,-40.5 + parent: 2 + - uid: 16399 + components: + - type: Transform + pos: 21.5,4.5 + parent: 2 + - uid: 16400 + components: + - type: Transform + pos: 31.5,11.5 + parent: 2 + - uid: 16401 + components: + - type: Transform + pos: 42.5,-1.5 + parent: 2 + - uid: 16402 + components: + - type: Transform + pos: 40.5,0.5 + parent: 2 + - uid: 16403 + components: + - type: Transform + pos: 34.5,26.5 + parent: 2 + - uid: 16404 + components: + - type: Transform + pos: 40.5,26.5 + parent: 2 + - uid: 16405 + components: + - type: Transform + pos: 34.5,30.5 + parent: 2 + - uid: 16406 + components: + - type: Transform + pos: 38.5,30.5 + parent: 2 + - uid: 16407 + components: + - type: Transform + pos: 40.5,30.5 + parent: 2 + - uid: 16408 + components: + - type: Transform + pos: 25.5,30.5 + parent: 2 + - uid: 16409 + components: + - type: Transform + pos: 25.5,32.5 + parent: 2 + - uid: 16410 + components: + - type: Transform + pos: 21.5,36.5 + parent: 2 + - uid: 16411 + components: + - type: Transform + pos: 19.5,36.5 + parent: 2 + - uid: 16412 + components: + - type: Transform + pos: 21.5,40.5 + parent: 2 + - uid: 16413 + components: + - type: Transform + pos: 19.5,40.5 + parent: 2 + - uid: 16414 + components: + - type: Transform + pos: 26.5,38.5 + parent: 2 + - uid: 16415 + components: + - type: Transform + pos: 25.5,35.5 + parent: 2 + - uid: 16416 + components: + - type: Transform + pos: 42.5,46.5 + parent: 2 + - uid: 16417 + components: + - type: Transform + pos: 41.5,-6.5 + parent: 2 + - uid: 16418 + components: + - type: Transform + pos: 34.5,-6.5 + parent: 2 + - uid: 16419 + components: + - type: Transform + pos: -2.5,29.5 + parent: 2 + - uid: 16420 + components: + - type: Transform + pos: -8.5,32.5 + parent: 2 + - uid: 16421 + components: + - type: Transform + pos: -30.5,30.5 + parent: 2 + - uid: 16422 + components: + - type: Transform + pos: -6.5,40.5 + parent: 2 + - uid: 16423 + components: + - type: Transform + pos: 4.5,54.5 + parent: 2 + - uid: 16424 + components: + - type: Transform + pos: -3.5,61.5 + parent: 2 + - uid: 16425 + components: + - type: Transform + pos: 46.5,-22.5 + parent: 2 + - uid: 16426 + components: + - type: Transform + pos: 41.5,-33.5 + parent: 2 + - uid: 16427 + components: + - type: Transform + pos: 44.5,-29.5 + parent: 2 + - uid: 16428 + components: + - type: Transform + pos: 5.5,-32.5 + parent: 2 + - uid: 16429 + components: + - type: Transform + pos: 8.5,-18.5 + parent: 2 + - uid: 16430 + components: + - type: Transform + pos: 10.5,-21.5 + parent: 2 + - uid: 16431 + components: + - type: Transform + pos: 10.5,-27.5 + parent: 2 + - uid: 16432 + components: + - type: Transform + pos: 4.5,-42.5 + parent: 2 + - uid: 16433 + components: + - type: Transform + pos: 4.5,-44.5 + parent: 2 + - uid: 16434 + components: + - type: Transform + pos: 6.5,-56.5 + parent: 2 + - uid: 16435 + components: + - type: Transform + pos: 8.5,-56.5 + parent: 2 + - uid: 16436 + components: + - type: Transform + pos: 0.5,-60.5 + parent: 2 + - uid: 16437 + components: + - type: Transform + pos: 0.5,-55.5 + parent: 2 + - uid: 16438 + components: + - type: Transform + pos: -7.5,-55.5 + parent: 2 + - uid: 16439 + components: + - type: Transform + pos: -7.5,-60.5 + parent: 2 + - uid: 16440 + components: + - type: Transform + pos: -16.5,-61.5 + parent: 2 + - uid: 16441 + components: + - type: Transform + pos: -16.5,-55.5 + parent: 2 + - uid: 16442 + components: + - type: Transform + pos: -7.5,-67.5 + parent: 2 + - uid: 16443 + components: + - type: Transform + pos: -7.5,-71.5 + parent: 2 + - uid: 16444 + components: + - type: Transform + pos: -7.5,-75.5 + parent: 2 + - uid: 16445 + components: + - type: Transform + pos: 8.5,-75.5 + parent: 2 + - uid: 16446 + components: + - type: Transform + pos: 8.5,-71.5 + parent: 2 + - uid: 16447 + components: + - type: Transform + pos: 8.5,-67.5 + parent: 2 + - uid: 16448 + components: + - type: Transform + pos: 8.5,-62.5 + parent: 2 + - uid: 16449 + components: + - type: Transform + pos: 32.5,-64.5 + parent: 2 + - uid: 16450 + components: + - type: Transform + pos: 41.5,-9.5 + parent: 2 + - uid: 16451 + components: + - type: Transform + pos: 34.5,-9.5 + parent: 2 +- proto: PottedPlantRandomPlastic + entities: + - uid: 16452 + components: + - type: Transform + pos: -32.5,-64.5 + parent: 2 +- proto: PottedPlantRD + entities: + - uid: 16453 + components: + - type: Transform + pos: -17.5,-2.5 + parent: 2 + - uid: 16454 + components: + - type: Transform + pos: -25.5,5.5 + parent: 2 + - uid: 16455 + components: + - type: Transform + pos: 17.5,-32.5 + parent: 2 +- proto: PowerCellHighPrinted + entities: + - uid: 16456 + components: + - type: Transform + pos: 12.613555,-55.42685 + parent: 2 +- proto: PowerCellMedium + entities: + - uid: 16457 + components: + - type: Transform + pos: 4.5929947,13.672501 + parent: 2 + - uid: 16458 + components: + - type: Transform + pos: 4.686235,13.476696 + parent: 2 + - uid: 16459 + components: + - type: Transform + pos: 40.631042,19.56979 + parent: 2 +- proto: PowerCellMediumPrinted + entities: + - uid: 16460 + components: + - type: Transform + pos: -33.412727,-28.394 + parent: 2 + - uid: 16461 + components: + - type: Transform + pos: 29.644543,-14.425663 + parent: 2 + - uid: 16462 + components: + - type: Transform + pos: -12.363941,-61.440437 + parent: 2 + - uid: 16463 + components: + - type: Transform + pos: -5.3861656,-62.43858 + parent: 2 + - uid: 16464 + components: + - type: Transform + pos: 22.630917,-43.39836 + parent: 2 +- proto: PowerCellRecharger + entities: + - uid: 16465 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -30.5,-14.5 + parent: 2 + - uid: 16466 + components: + - type: Transform + pos: -6.5,36.5 + parent: 2 + - uid: 16467 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 18.5,27.5 + parent: 2 + - uid: 16468 + components: + - type: Transform + pos: -3.5,52.5 + parent: 2 + - uid: 16469 + components: + - type: Transform + pos: 2.5,62.5 + parent: 2 + - uid: 16470 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 41.5,-18.5 + parent: 2 + - uid: 16471 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -1.5,-31.5 + parent: 2 + - uid: 16472 + components: + - type: Transform + pos: 4.5,17.5 + parent: 2 + - uid: 16473 + components: + - type: Transform + pos: 4.5,13.5 + parent: 2 + - uid: 16474 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -33.5,-28.5 + parent: 2 + - uid: 16475 + components: + - type: Transform + pos: -26.5,-20.5 + parent: 2 + - uid: 16476 + components: + - type: Transform + pos: -47.5,-31.5 + parent: 2 + - uid: 16477 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 40.5,19.5 + parent: 2 + - uid: 16478 + components: + - type: Transform + pos: 23.5,-20.5 + parent: 2 + - uid: 16479 + components: + - type: Transform + pos: 29.5,-14.5 + parent: 2 + - uid: 16480 + components: + - type: Transform + pos: 17.5,-29.5 + parent: 2 + - uid: 16481 + components: + - type: Transform + pos: 7.5,-44.5 + parent: 2 + - uid: 16482 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 12.5,-55.5 + parent: 2 + - uid: 16483 + components: + - type: Transform + pos: -12.5,-61.5 + parent: 2 + - uid: 16484 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -5.5,-62.5 + parent: 2 + - uid: 16485 + components: + - type: Transform + pos: 22.5,-43.5 + parent: 2 + - uid: 16486 + components: + - type: Transform + pos: 27.5,-62.5 + parent: 2 + - uid: 16487 + components: + - type: Transform + pos: 10.5,55.5 + parent: 2 + - uid: 16488 + components: + - type: Transform + pos: -28.5,30.5 + parent: 2 + - uid: 16489 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 7.5,-23.5 + parent: 2 + - uid: 16490 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 11.5,-30.5 + parent: 2 + - uid: 16491 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 32.5,-14.5 + parent: 2 + - uid: 16492 + components: + - type: Transform + pos: -2.5,20.5 + parent: 2 + - uid: 16493 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -35.5,23.5 + parent: 2 + - uid: 16494 + components: + - type: Transform + pos: -24.5,45.5 + parent: 2 + - uid: 16495 + components: + - type: Transform + pos: -17.5,31.5 + parent: 2 + - uid: 16496 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -32.5,9.5 + parent: 2 + - uid: 16497 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -42.5,-7.5 + parent: 2 + - uid: 16498 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 8.5,-42.5 + parent: 2 + - uid: 16499 + components: + - type: Transform + pos: 29.5,-1.5 + parent: 2 + - uid: 16500 + components: + - type: Transform + pos: 41.5,-12.5 + parent: 2 + - uid: 16501 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 15.5,7.5 + parent: 2 + - uid: 16502 + components: + - type: Transform + pos: -2.5,27.5 + parent: 2 +- proto: PowerCellSmall + entities: + - uid: 16503 + components: + - type: Transform + pos: 4.630291,17.663177 + parent: 2 + - uid: 16504 + components: + - type: Transform + pos: 4.4811068,17.476696 + parent: 2 + - uid: 16505 + components: + - type: Transform + pos: -26.386574,-20.414513 + parent: 2 +- proto: PowerComputerCircuitboard + entities: + - uid: 16506 + components: + - type: Transform + pos: 3.5384958,72.5737 + parent: 2 +- proto: Poweredlight + entities: + - uid: 16507 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 34.5,-42.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18433 + - uid: 16508 + components: + - type: Transform + pos: 6.5,27.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18342 + - uid: 16509 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 36.5,22.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18363 + - uid: 16510 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -7.5,7.5 + parent: 2 + - uid: 16511 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -0.5,12.5 + parent: 2 + - uid: 16512 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 2.5,12.5 + parent: 2 + - uid: 16513 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 9.5,7.5 + parent: 2 + - uid: 16514 + components: + - type: Transform + pos: 12.5,2.5 + parent: 2 + - uid: 16515 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 12.5,-0.5 + parent: 2 + - uid: 16516 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 9.5,-5.5 + parent: 2 + - uid: 16517 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -7.5,-5.5 + parent: 2 + - uid: 16518 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -0.5,-10.5 + parent: 2 + - uid: 16519 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 2.5,-10.5 + parent: 2 + - uid: 16520 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -10.5,-0.5 + parent: 2 + - uid: 16521 + components: + - type: Transform + pos: -10.5,2.5 + parent: 2 + - uid: 16522 + components: + - type: Transform + pos: 5.5,19.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18318 + - uid: 16523 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -17.5,11.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18315 + - uid: 16524 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -13.5,9.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18316 + - uid: 16525 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -9.5,10.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18316 + - uid: 16526 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -13.5,13.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18316 + - uid: 16527 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -9.5,13.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18316 + - uid: 16528 + components: + - type: Transform + pos: -14.5,16.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18316 + - uid: 16529 + components: + - type: Transform + pos: -8.5,16.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18316 + - uid: 16530 + components: + - type: Transform + pos: -4.5,16.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18317 + - uid: 16531 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 5.5,14.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18318 + - uid: 16532 + components: + - type: Transform + pos: 10.5,19.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18318 + - uid: 16533 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 7.5,16.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18318 + - uid: 16534 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 7.5,13.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18319 + - uid: 16535 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 10.5,13.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18319 + - uid: 16536 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -28.5,-6.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18314 + - uid: 16537 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -24.5,-5.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18314 + - uid: 16538 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -23.5,-0.5 + parent: 2 + - uid: 16539 + components: + - type: Transform + pos: -16.5,2.5 + parent: 2 + - uid: 16540 + components: + - type: Transform + pos: -29.5,2.5 + parent: 2 + - uid: 16541 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -23.5,6.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18313 + - uid: 16542 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -27.5,5.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18312 + - uid: 16543 + components: + - type: Transform + pos: -28.5,8.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18312 + - uid: 16544 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -41.5,6.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18322 + - uid: 16545 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -44.5,12.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18322 + - uid: 16546 + components: + - type: Transform + pos: -39.5,12.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18322 + - uid: 16547 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -32.5,8.5 + parent: 2 + - uid: 16548 + components: + - type: Transform + pos: -41.5,4.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18323 + - uid: 16549 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -42.5,-0.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18323 + - uid: 16550 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -41.5,-5.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18323 + - uid: 16551 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -36.5,-4.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18323 + - uid: 16552 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -36.5,2.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18323 + - uid: 16553 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -43.5,-13.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18321 + - uid: 16554 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -39.5,-13.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18321 + - uid: 16555 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -36.5,-9.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18321 + - uid: 16556 + components: + - type: Transform + pos: -43.5,-7.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18321 + - uid: 16557 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -27.5,-14.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18324 + - uid: 16558 + components: + - type: Transform + pos: -29.5,-10.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18324 + - uid: 16559 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -32.5,-10.5 + parent: 2 + - uid: 16560 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -34.5,-4.5 + parent: 2 + - uid: 16561 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -31.5,16.5 + parent: 2 + - uid: 16562 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -35.5,16.5 + parent: 2 + - uid: 16563 + components: + - type: Transform + pos: -42.5,17.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18325 + - uid: 16564 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -28.5,-18.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18326 + - uid: 16565 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -36.5,-18.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18327 + - uid: 16566 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -34.5,-21.5 + parent: 2 + - uid: 16567 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -31.5,-24.5 + parent: 2 + - uid: 16568 + components: + - type: Transform + pos: -28.5,-20.5 + parent: 2 + - uid: 16569 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -34.5,-15.5 + parent: 2 + - uid: 16570 + components: + - type: Transform + pos: -27.5,-29.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18341 + - uid: 16571 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -32.5,-28.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18341 + - uid: 16572 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -36.5,-28.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18341 + - uid: 16573 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -28.5,-35.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18328 + - uid: 16574 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -32.5,-36.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18329 + - uid: 16575 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -34.5,-40.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18329 + - uid: 16576 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -34.5,-40.5 + parent: 2 + - uid: 16577 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -32.5,-41.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18329 + - uid: 16578 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -27.5,-39.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18343 + - uid: 16579 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -26.5,-31.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18341 + - uid: 16580 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -23.5,-28.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18340 + - uid: 16581 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -24.5,-39.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18333 + - uid: 16582 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -25.5,-24.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18330 + - uid: 16583 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -20.5,-24.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18330 + - uid: 16584 + components: + - type: Transform + pos: -25.5,-20.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18330 + - uid: 16585 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -19.5,-22.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18330 + - uid: 16586 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -24.5,-18.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18330 + - uid: 16587 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -18.5,-17.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18330 + - uid: 16588 + components: + - type: Transform + pos: -15.5,-19.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18331 + - uid: 16589 + components: + - type: Transform + pos: -15.5,-22.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18331 + - uid: 16590 + components: + - type: Transform + pos: -10.5,-21.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18332 + - uid: 16591 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -17.5,-33.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18334 + - uid: 16592 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -22.5,-32.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18334 + - uid: 16593 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -4.5,-24.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18348 + - uid: 16594 + components: + - type: Transform + pos: -4.5,-20.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18348 + - uid: 16595 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -8.5,-31.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18336 + - 18335 + - uid: 16596 + components: + - type: Transform + pos: -3.5,-30.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18336 + - 18335 + - uid: 16597 + components: + - type: Transform + pos: -9.5,-35.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18335 + - uid: 16598 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -10.5,-37.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18335 + - uid: 16599 + components: + - type: Transform + pos: -10.5,-39.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18335 + - uid: 16600 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -10.5,-45.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18335 + - uid: 16601 + components: + - type: Transform + pos: -10.5,-47.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18335 + - uid: 16602 + components: + - type: Transform + pos: -18.5,-26.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18340 + - uid: 16603 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -12.5,-28.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18340 + - uid: 16604 + components: + - type: Transform + pos: -6.5,-26.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18340 + - uid: 16605 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -40.5,-43.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18349 + - uid: 16606 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -37.5,-43.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18349 + - uid: 16607 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -41.5,-39.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18349 + - uid: 16608 + components: + - type: Transform + pos: -42.5,-49.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18350 + - uid: 16609 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -37.5,-52.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18350 + - uid: 16610 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -31.5,-50.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18350 + - uid: 16611 + components: + - type: Transform + pos: -36.5,-45.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18350 + - uid: 16612 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -39.5,-37.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18345 + - uid: 16613 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -45.5,-33.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18345 + - uid: 16614 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -41.5,-33.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18345 + - uid: 16615 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -41.5,-33.5 + parent: 2 + - uid: 16616 + components: + - type: Transform + pos: -46.5,-29.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18345 + - uid: 16617 + components: + - type: Transform + pos: -46.5,-29.5 + parent: 2 + - uid: 16618 + components: + - type: Transform + pos: -43.5,-29.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18345 + - uid: 16619 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -44.5,-36.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18345 + - uid: 16620 + components: + - type: Transform + pos: -3.5,-35.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18337 + - uid: 16621 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 17.5,-0.5 + parent: 2 + - uid: 16622 + components: + - type: Transform + pos: 24.5,2.5 + parent: 2 + - uid: 16623 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 31.5,-0.5 + parent: 2 + - uid: 16624 + components: + - type: Transform + pos: 34.5,2.5 + parent: 2 + - uid: 16625 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 29.5,-4.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18339 + - 18338 + - uid: 16626 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 21.5,22.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18357 + - 18356 + - uid: 16627 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 26.5,22.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18357 + - 18356 + - uid: 16628 + components: + - type: Transform + pos: 24.5,19.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18355 + - uid: 16629 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 19.5,17.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18355 + - uid: 16630 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 22.5,16.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18355 + - uid: 16631 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 26.5,17.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18355 + - uid: 16632 + components: + - type: Transform + pos: 16.5,18.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18354 + - uid: 16633 + components: + - type: Transform + pos: 18.5,14.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18358 + - uid: 16634 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 23.5,12.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18358 + - uid: 16635 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 25.5,12.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18358 + - uid: 16636 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 15.5,7.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18359 + - uid: 16637 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 19.5,4.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18359 + - uid: 16638 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 22.5,4.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18359 + - uid: 16639 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 25.5,4.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18359 + - uid: 16640 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 34.5,4.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18359 + - uid: 16641 + components: + - type: Transform + pos: 32.5,11.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18359 + - uid: 16642 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 35.5,13.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18360 + - uid: 16643 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 32.5,18.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18360 + - uid: 16644 + components: + - type: Transform + pos: 35.5,19.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18360 + - uid: 16645 + components: + - type: Transform + pos: 41.5,19.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18361 + - uid: 16646 + components: + - type: Transform + pos: 42.5,15.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18362 + - uid: 16647 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 40.5,13.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18362 + - uid: 16648 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 34.5,23.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18364 + - uid: 16649 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 11.5,24.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18365 + - uid: 16650 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 22.5,29.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18366 + - uid: 16651 + components: + - type: Transform + pos: 22.5,33.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18366 + - uid: 16652 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 17.5,31.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18366 + - uid: 16653 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 21.5,38.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18366 + - uid: 16654 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 15.5,35.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18368 + - uid: 16655 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 16.5,38.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18367 + - uid: 16656 + components: + - type: Transform + pos: 16.5,40.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18367 + - uid: 16657 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 33.5,26.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18374 + - uid: 16658 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 39.5,26.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18374 + - uid: 16659 + components: + - type: Transform + pos: 39.5,30.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18374 + - uid: 16660 + components: + - type: Transform + pos: 33.5,30.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18374 + - uid: 16661 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 44.5,30.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18373 + - uid: 16662 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 44.5,38.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18373 + - uid: 16663 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 30.5,37.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18375 + - uid: 16664 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 30.5,32.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18375 + - uid: 16665 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 28.5,28.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18375 + - uid: 16666 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 28.5,18.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18359 + - uid: 16667 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 30.5,12.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18359 + - uid: 16668 + components: + - type: Transform + pos: 39.5,-2.5 + parent: 2 + - uid: 16669 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 41.5,-12.5 + parent: 2 + - uid: 16670 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 44.5,-9.5 + parent: 2 + - uid: 16671 + components: + - type: Transform + pos: 36.5,-9.5 + parent: 2 + - uid: 16672 + components: + - type: Transform + pos: 39.5,-9.5 + parent: 2 + - uid: 16673 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 39.5,-6.5 + parent: 2 + - uid: 16674 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 36.5,-6.5 + parent: 2 + - uid: 16675 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 34.5,-12.5 + parent: 2 + - uid: 16676 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 32.5,-9.5 + parent: 2 + - uid: 16677 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 32.5,-4.5 + parent: 2 + - uid: 16678 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 44.5,-5.5 + parent: 2 + - uid: 16679 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 43.5,-16.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18377 + - uid: 16680 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -3.5,18.5 + parent: 2 + - uid: 16681 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -7.5,18.5 + parent: 2 + - uid: 16682 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -13.5,18.5 + parent: 2 + - uid: 16683 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -18.5,21.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18378 + - uid: 16684 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -21.5,20.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18378 + - uid: 16685 + components: + - type: Transform + pos: -18.5,25.5 + parent: 2 + - uid: 16686 + components: + - type: Transform + pos: -21.5,25.5 + parent: 2 + - uid: 16687 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -7.5,22.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18380 + - uid: 16688 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -10.5,26.5 + parent: 2 + - uid: 16689 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -4.5,26.5 + parent: 2 + - uid: 16690 + components: + - type: Transform + pos: -13.5,29.5 + parent: 2 + - uid: 16691 + components: + - type: Transform + pos: -9.5,29.5 + parent: 2 + - uid: 16692 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -2.5,29.5 + parent: 2 + - uid: 16693 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -12.5,34.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18383 + - uid: 16694 + components: + - type: Transform + pos: -11.5,36.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18383 + - uid: 16695 + components: + - type: Transform + pos: -6.5,34.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18383 + - uid: 16696 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -17.5,34.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18384 + - uid: 16697 + components: + - type: Transform + pos: -17.5,40.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18385 + - uid: 16698 + components: + - type: Transform + pos: -12.5,40.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18385 + - uid: 16699 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -14.5,38.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18385 + - uid: 16700 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -20.5,34.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18386 + - uid: 16701 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -9.5,38.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18387 + - uid: 16702 + components: + - type: Transform + pos: -9.5,43.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18387 + - uid: 16703 + components: + - type: Transform + pos: -21.5,41.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18388 + - uid: 16704 + components: + - type: Transform + pos: -25.5,41.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18388 + - uid: 16705 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -26.5,44.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18389 + - uid: 16706 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -22.5,43.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18389 + - uid: 16707 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -28.5,32.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18390 + - uid: 16708 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -30.5,34.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18390 + - uid: 16709 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -30.5,39.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18390 + - uid: 16710 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -28.5,39.5 + parent: 2 + - uid: 16711 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -32.5,23.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18382 + - uid: 16712 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -30.5,23.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18382 + - uid: 16713 + components: + - type: Transform + pos: -32.5,26.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18382 + - uid: 16714 + components: + - type: Transform + pos: -30.5,26.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18382 + - uid: 16715 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -42.5,31.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18394 + - uid: 16716 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -39.5,31.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18394 + - uid: 16717 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -36.5,34.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18394 + - uid: 16718 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -36.5,37.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18394 + - uid: 16719 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -42.5,35.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18394 + - uid: 16720 + components: + - type: Transform + pos: -41.5,26.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18396 + - uid: 16721 + components: + - type: Transform + pos: -39.5,22.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18395 + - uid: 16722 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -41.5,19.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18395 + - uid: 16723 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -37.5,19.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18395 + - uid: 16724 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -35.5,22.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18395 + - uid: 16725 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -37.5,25.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18395 + - uid: 16726 + components: + - type: Transform + pos: -36.5,30.5 + parent: 2 + - uid: 16727 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -31.5,28.5 + parent: 2 + - uid: 16728 + components: + - type: Transform + pos: -27.5,30.5 + parent: 2 + - uid: 16729 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -22.5,27.5 + parent: 2 + - uid: 16730 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -24.5,33.5 + parent: 2 + - uid: 16731 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -22.5,33.5 + parent: 2 + - uid: 16732 + components: + - type: Transform + pos: -18.5,29.5 + parent: 2 + - uid: 16733 + components: + - type: Transform + pos: -5.5,40.5 + parent: 2 + - uid: 16734 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 6.5,34.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18398 + - uid: 16735 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 4.5,40.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18398 + - uid: 16736 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 8.5,40.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18398 + - uid: 16737 + components: + - type: Transform + pos: 6.5,44.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18398 + - uid: 16738 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -7.5,47.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18399 + - uid: 16739 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -3.5,51.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18400 + - uid: 16740 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -2.5,54.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18400 + - uid: 16741 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 8.5,46.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18401 + - uid: 16742 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 9.5,48.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18401 + - uid: 16743 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 6.5,49.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18401 + - uid: 16744 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 6.5,52.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18402 + - uid: 16745 + components: + - type: Transform + pos: 7.5,56.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18402 + - uid: 16746 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 4.5,49.5 + parent: 2 + - uid: 16747 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -0.5,49.5 + parent: 2 + - uid: 16748 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 2.5,43.5 + parent: 2 + - uid: 16749 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -0.5,40.5 + parent: 2 + - uid: 16750 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 2.5,36.5 + parent: 2 + - uid: 16751 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -0.5,32.5 + parent: 2 + - uid: 16752 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 2.5,28.5 + parent: 2 + - uid: 16753 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -0.5,22.5 + parent: 2 + - uid: 16754 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -0.5,16.5 + parent: 2 + - uid: 16755 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 2.5,51.5 + parent: 2 + - uid: 16756 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -1.5,58.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18403 + - uid: 16757 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 3.5,58.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18403 + - uid: 16758 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 7.5,59.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18403 + - uid: 16759 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -5.5,59.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18403 + - uid: 16760 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -5.5,70.5 + parent: 2 + - uid: 16761 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -2.5,71.5 + parent: 2 + - uid: 16762 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 8.5,70.5 + parent: 2 + - uid: 16763 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 5.5,71.5 + parent: 2 + - uid: 16764 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 1.5,69.5 + parent: 2 + - uid: 16765 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 6.5,77.5 + parent: 2 + - uid: 16766 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 8.5,74.5 + parent: 2 + - uid: 16767 + components: + - type: Transform + pos: 8.5,80.5 + parent: 2 + - uid: 16768 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 6.5,82.5 + parent: 2 + - uid: 16769 + components: + - type: Transform + pos: 6.5,85.5 + parent: 2 + - uid: 16770 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 3.5,82.5 + parent: 2 + - uid: 16771 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -0.5,82.5 + parent: 2 + - uid: 16772 + components: + - type: Transform + pos: 1.5,85.5 + parent: 2 + - uid: 16773 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -3.5,82.5 + parent: 2 + - uid: 16774 + components: + - type: Transform + pos: -3.5,85.5 + parent: 2 + - uid: 16775 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -3.5,77.5 + parent: 2 + - uid: 16776 + components: + - type: Transform + pos: -5.5,80.5 + parent: 2 + - uid: 16777 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -5.5,74.5 + parent: 2 + - uid: 16778 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 16.5,-11.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18404 + - uid: 16779 + components: + - type: Transform + pos: 16.5,-13.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18405 + - uid: 16780 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 18.5,-16.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18405 + - uid: 16781 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 20.5,-19.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18406 + - uid: 16782 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 16.5,-19.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18406 + - uid: 16783 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 24.5,-20.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18407 + - uid: 16784 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 22.5,-19.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18407 + - uid: 16785 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 26.5,-19.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18407 + - uid: 16786 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 28.5,-18.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18408 + - uid: 16787 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 34.5,-18.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18408 + - uid: 16788 + components: + - type: Transform + pos: 29.5,-14.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18408 + - uid: 16789 + components: + - type: Transform + pos: 33.5,-14.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18408 + - uid: 16790 + components: + - type: Transform + pos: 45.5,-20.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18410 + - uid: 16791 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 41.5,-16.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18409 + - uid: 16792 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 44.5,-25.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18410 + - uid: 16793 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 40.5,-34.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18412 + - 18411 + - uid: 16794 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 38.5,-32.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18412 + - 18411 + - uid: 16795 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 38.5,-29.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18412 + - 18411 + - uid: 16796 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 45.5,-34.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18412 + - 18411 + - uid: 16797 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 44.5,-32.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18412 + - 18411 + - uid: 16798 + components: + - type: Transform + pos: 46.5,-27.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18412 + - 18411 + - uid: 16799 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 25.5,-29.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18413 + - uid: 16800 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 26.5,-32.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18413 + - uid: 16801 + components: + - type: Transform + pos: 28.5,-27.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18413 + - uid: 16802 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 32.5,-29.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18413 + - uid: 16803 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 23.5,-31.5 + parent: 2 + - uid: 16804 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 4.5,-32.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18414 + - uid: 16805 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 10.5,-29.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18414 + - uid: 16806 + components: + - type: Transform + pos: 5.5,-18.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18415 + - uid: 16807 + components: + - type: Transform + pos: 9.5,-18.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18416 + - uid: 16808 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 4.5,-22.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18417 + - uid: 16809 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 4.5,-26.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18417 + - uid: 16810 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 10.5,-22.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18417 + - uid: 16811 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 10.5,-26.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18417 + - uid: 16812 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 12.5,-21.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18418 + - uid: 16813 + components: + - type: Transform + pos: 15.5,-22.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18418 + - uid: 16814 + components: + - type: Transform + pos: 21.5,-22.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18418 + - uid: 16815 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 15.5,-28.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18418 + - uid: 16816 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 21.5,-28.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18418 + - uid: 16817 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 13.5,-32.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18418 + - uid: 16818 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 12.5,-28.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18418 + - uid: 16819 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 25.5,-25.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18419 + - uid: 16820 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 28.5,-25.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18419 + - uid: 16821 + components: + - type: Transform + pos: 35.5,-23.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18419 + - uid: 16822 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 37.5,-25.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18419 + - uid: 16823 + components: + - type: Transform + pos: 40.5,-20.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18419 + - uid: 16824 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 36.5,-19.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18419 + - uid: 16825 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 2.5,-29.5 + parent: 2 + - uid: 16826 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -0.5,-25.5 + parent: 2 + - uid: 16827 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 2.5,-17.5 + parent: 2 + - uid: 16828 + components: + - type: Transform + pos: 6.5,-39.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18421 + - uid: 16829 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -0.5,-40.5 + parent: 2 + - uid: 16830 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -0.5,-34.5 + parent: 2 + - uid: 16831 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -1.5,-48.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18422 + - uid: 16832 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 1.5,-46.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18422 + - uid: 16833 + components: + - type: Transform + pos: 7.5,-44.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18422 + - uid: 16834 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 2.5,-49.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18424 + - uid: 16835 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 8.5,-50.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18422 + - uid: 16836 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 8.5,-55.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18422 + - uid: 16837 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 12.5,-55.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18423 + - uid: 16838 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 14.5,-52.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18423 + - uid: 16839 + components: + - type: Transform + pos: 14.5,44.5 + parent: 2 + - uid: 16840 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 42.5,44.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18373 + - uid: 16841 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 19.5,-26.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18418 + - uid: 16842 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 6.5,24.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18342 + - uid: 16843 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 8.5,-58.5 + parent: 2 + - uid: 16844 + components: + - type: Transform + pos: 3.5,-52.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18426 + - uid: 16845 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 4.5,-58.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18426 + - uid: 16846 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -6.5,-60.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18428 + - uid: 16847 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -0.5,-60.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18428 + - uid: 16848 + components: + - type: Transform + pos: -4.5,-55.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18428 + - uid: 16849 + components: + - type: Transform + pos: -2.5,-55.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18428 + - uid: 16850 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 0.5,-58.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18428 + - uid: 16851 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -17.5,-62.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18429 + - uid: 16852 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -20.5,-62.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18429 + - uid: 16853 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -20.5,-57.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18429 + - uid: 16854 + components: + - type: Transform + pos: -14.5,-55.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18429 + - uid: 16855 + components: + - type: Transform + pos: -10.5,-55.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18429 + - uid: 16856 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -11.5,-59.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18429 + - uid: 16857 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 10.5,-66.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18430 + - uid: 16858 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 14.5,-65.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18430 + - uid: 16859 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 14.5,-69.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18430 + - uid: 16860 + components: + - type: Transform + pos: 10.5,-62.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18430 + - uid: 16861 + components: + - type: Transform + pos: 14.5,-62.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18430 + - uid: 16862 + components: + - type: Transform + pos: -6.5,-62.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18427 + - uid: 16863 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -7.5,-65.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18427 + - uid: 16864 + components: + - type: Transform + pos: -0.5,-62.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18427 + - uid: 16865 + components: + - type: Transform + pos: 5.5,-62.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18427 + - uid: 16866 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 8.5,-66.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18427 + - uid: 16867 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 8.5,-73.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18427 + - uid: 16868 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -7.5,-73.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18427 + - uid: 16869 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -2.5,-76.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18427 + - uid: 16870 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 3.5,-76.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18427 + - uid: 16871 + components: + - type: Transform + pos: 23.5,-39.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18420 + - uid: 16872 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 10.5,-43.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18420 + - uid: 16873 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 10.5,-45.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18420 + - uid: 16874 + components: + - type: Transform + pos: 20.5,-39.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18420 + - uid: 16875 + components: + - type: Transform + pos: 27.5,-39.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18420 + - uid: 16876 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 12.5,-48.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18420 + - uid: 16877 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 22.5,-56.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18431 + - uid: 16878 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 26.5,-56.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18431 + - uid: 16879 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 32.5,-52.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18431 + - uid: 16880 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 28.5,-56.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18431 + - uid: 16881 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 22.5,-60.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18431 + - uid: 16882 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 32.5,-60.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18431 + - uid: 16883 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 25.5,-64.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18431 + - uid: 16884 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 29.5,-64.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18431 + - uid: 16885 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 17.5,-51.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18431 + - uid: 16886 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 32.5,-45.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18420 + - uid: 16887 + components: + - type: Transform + pos: 36.5,-48.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18425 + - uid: 16888 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 34.5,-45.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18433 + - uid: 16889 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 15.5,21.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18434 + - uid: 16890 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 19.5,22.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18434 + - uid: 16891 + components: + - type: Transform + pos: 46.5,-14.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18377 + - uid: 16892 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 46.5,-12.5 + parent: 2 + - uid: 16893 + components: + - type: Transform + pos: 46.5,-6.5 + parent: 2 + - uid: 16894 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 46.5,-4.5 + parent: 2 +- proto: PoweredlightEmpty + entities: + - uid: 16895 + components: + - type: Transform + pos: 16.5,-30.5 + parent: 2 + - uid: 16896 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 20.5,-32.5 + parent: 2 +- proto: PoweredlightLED + entities: + - uid: 16897 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 33.5,32.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18376 + - uid: 16898 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 39.5,32.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18376 + - uid: 16899 + components: + - type: Transform + pos: 33.5,41.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18376 + - uid: 16900 + components: + - type: Transform + pos: 39.5,41.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18376 + - uid: 16901 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 4.5,77.5 + parent: 2 + - uid: 16902 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -1.5,77.5 + parent: 2 +- proto: PoweredLightPostSmall + entities: + - uid: 16903 + components: + - type: Transform + pos: -0.5,6.5 + parent: 2 + - uid: 16904 + components: + - type: Transform + pos: 2.5,6.5 + parent: 2 + - uid: 16905 + components: + - type: Transform + pos: -0.5,-4.5 + parent: 2 + - uid: 16906 + components: + - type: Transform + pos: 2.5,-4.5 + parent: 2 + - uid: 16907 + components: + - type: Transform + pos: 7.5,7.5 + parent: 2 + - uid: 16908 + components: + - type: Transform + pos: -5.5,7.5 + parent: 2 + - uid: 16909 + components: + - type: Transform + pos: -5.5,-5.5 + parent: 2 + - uid: 16910 + components: + - type: Transform + pos: 7.5,-5.5 + parent: 2 + - uid: 16911 + components: + - type: Transform + pos: -54.5,-55.5 + parent: 2 + - uid: 16912 + components: + - type: Transform + pos: -54.5,-49.5 + parent: 2 + - uid: 16913 + components: + - type: Transform + pos: -64.5,-56.5 + parent: 2 + - uid: 16914 + components: + - type: Transform + pos: -69.5,-55.5 + parent: 2 + - uid: 16915 + components: + - type: Transform + pos: -69.5,-49.5 + parent: 2 + - uid: 16916 + components: + - type: Transform + pos: -71.5,-51.5 + parent: 2 + - uid: 16917 + components: + - type: Transform + pos: -74.5,-53.5 + parent: 2 + - uid: 16918 + components: + - type: Transform + pos: -74.5,-51.5 + parent: 2 + - uid: 16919 + components: + - type: Transform + pos: -80.5,-45.5 + parent: 2 + - uid: 16920 + components: + - type: Transform + pos: -80.5,-59.5 + parent: 2 + - uid: 16921 + components: + - type: Transform + pos: -87.5,-52.5 + parent: 2 + - uid: 16922 + components: + - type: Transform + pos: -16.5,-71.5 + parent: 2 + - uid: 16923 + components: + - type: Transform + pos: 22.5,-53.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18431 + - uid: 16924 + components: + - type: Transform + pos: 27.5,-50.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18431 + - uid: 16925 + components: + - type: Transform + pos: 27.5,-46.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18420 + - uid: 16926 + components: + - type: Transform + pos: 22.5,-42.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18420 + - uid: 16927 + components: + - type: Transform + pos: 27.5,-42.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18420 + - uid: 16928 + components: + - type: Transform + pos: 22.5,-46.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18420 + - uid: 16929 + components: + - type: Transform + pos: 16.5,-42.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18420 + - uid: 16930 + components: + - type: Transform + pos: 16.5,-46.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18420 + - uid: 16931 + components: + - type: Transform + pos: -12.5,-74.5 + parent: 2 + - uid: 16932 + components: + - type: Transform + pos: 13.5,-74.5 + parent: 2 + - uid: 16933 + components: + - type: Transform + pos: -9.5,-63.5 + parent: 2 +- proto: PoweredlightSodium + entities: + - uid: 16934 + components: + - type: Transform + pos: -44.5,-15.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18327 + - uid: 16935 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -44.5,-23.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18327 +- proto: PoweredSmallLight + entities: + - uid: 8813 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 43.5,2.5 + parent: 2 + - type: DeviceLinkSink + invokeCounter: 1 + links: + - 18346 + - uid: 10913 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 37.5,9.5 + parent: 2 + - type: DeviceLinkSink + invokeCounter: 1 + links: + - 18346 + - uid: 16936 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 22.5,-66.5 + parent: 2 + - uid: 16937 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -2.5,48.5 + parent: 2 + - uid: 16938 + components: + - type: Transform + pos: 43.5,0.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18347 + - uid: 16939 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 10.5,-58.5 + parent: 2 + - uid: 16940 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -13.5,5.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18344 + - uid: 16941 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -15.5,6.5 + parent: 2 + - uid: 16942 + components: + - type: Transform + pos: -23.5,-8.5 + parent: 2 + - uid: 16943 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 13.5,-3.5 + parent: 2 + - uid: 16944 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -4.5,-12.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18432 + - uid: 16945 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -19.5,7.5 + parent: 2 + - uid: 16946 + components: + - type: Transform + pos: -21.5,12.5 + parent: 2 + - uid: 16947 + components: + - type: Transform + pos: -27.5,13.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18320 + - uid: 16948 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -27.5,10.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18320 + - uid: 16949 + components: + - type: Transform + pos: -39.5,-25.5 + parent: 2 + - uid: 16950 + components: + - type: Transform + pos: -48.5,-25.5 + parent: 2 + - uid: 16951 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -48.5,-27.5 + parent: 2 + - uid: 16952 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -38.5,-31.5 + parent: 2 + - uid: 16953 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -38.5,-31.5 + parent: 2 + - uid: 16954 + components: + - type: Transform + pos: -11.5,-30.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18335 + - uid: 16955 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -17.5,-36.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18335 + - uid: 16956 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -17.5,-39.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18335 + - uid: 16957 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -17.5,-42.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18335 + - uid: 16958 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -17.5,-45.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18335 + - uid: 16959 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -17.5,-48.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18335 + - uid: 16960 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -6.5,-42.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18335 + - uid: 16961 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -7.5,-48.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18335 + - uid: 16962 + components: + - type: Transform + pos: -39.5,-45.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18350 + - uid: 16963 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -23.5,-47.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18350 + - uid: 16964 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -19.5,-43.5 + parent: 2 + - uid: 16965 + components: + - type: Transform + pos: -34.5,-54.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18351 + - uid: 16966 + components: + - type: Transform + pos: -36.5,-62.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18352 + - uid: 16967 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -32.5,-62.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18353 + - uid: 16968 + components: + - type: Transform + pos: -32.5,-58.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18353 + - uid: 16969 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -22.5,-63.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18353 + - uid: 16970 + components: + - type: Transform + pos: -26.5,-66.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18353 + - uid: 16971 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -23.5,-67.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18353 + - uid: 16972 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -17.5,-53.5 + parent: 2 + - uid: 16973 + components: + - type: Transform + pos: -11.5,-51.5 + parent: 2 + - uid: 16974 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -5.5,-52.5 + parent: 2 + - uid: 16975 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -3.5,-40.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18337 + - uid: 16976 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 25.5,-4.5 + parent: 2 + - uid: 16977 + components: + - type: Transform + pos: 24.5,-14.5 + parent: 2 + - uid: 16978 + components: + - type: Transform + pos: 46.5,24.5 + parent: 2 + - uid: 16979 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 48.5,23.5 + parent: 2 + - uid: 16980 + components: + - type: Transform + pos: 40.5,24.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18363 + - uid: 16981 + components: + - type: Transform + pos: 18.5,27.5 + parent: 2 + - uid: 16982 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 13.5,33.5 + parent: 2 + - uid: 16983 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 17.5,44.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18370 + - uid: 16984 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 23.5,44.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18370 + - uid: 16985 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 25.5,35.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18372 + - uid: 16986 + components: + - type: Transform + pos: 24.5,40.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18371 + - uid: 16987 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 28.5,41.5 + parent: 2 + - uid: 16988 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 30.5,41.5 + parent: 2 + - uid: 16989 + components: + - type: Transform + pos: 46.5,39.5 + parent: 2 + - uid: 16990 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 46.5,32.5 + parent: 2 + - uid: 16991 + components: + - type: Transform + pos: -21.5,16.5 + parent: 2 + - uid: 16992 + components: + - type: Transform + pos: -28.5,21.5 + parent: 2 + - uid: 16993 + components: + - type: Transform + pos: -28.5,17.5 + parent: 2 + - uid: 16994 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -14.5,23.5 + parent: 2 + - uid: 16995 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -12.5,23.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18379 + - uid: 16996 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -3.5,23.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18381 + - uid: 16997 + components: + - type: Transform + pos: -11.5,43.5 + parent: 2 + - uid: 16998 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -30.5,41.5 + parent: 2 + - uid: 16999 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -30.5,41.5 + parent: 2 + - uid: 17000 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -28.5,41.5 + parent: 2 + - uid: 17001 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -28.5,41.5 + parent: 2 + - uid: 17002 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -32.5,39.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18393 + - uid: 17003 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -32.5,36.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18392 + - uid: 17004 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -32.5,33.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18391 + - uid: 17005 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -2.5,33.5 + parent: 2 + - uid: 17006 + components: + - type: Transform + pos: -4.5,45.5 + parent: 2 + - uid: 17007 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 13.5,46.5 + parent: 2 + - uid: 17008 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -10.5,51.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18399 + - uid: 17009 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 13.5,49.5 + parent: 2 + - uid: 17010 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 15.5,48.5 + parent: 2 + - uid: 17011 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 2.5,32.5 + parent: 2 + - uid: 17012 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -6.5,75.5 + parent: 2 + - uid: 17013 + components: + - type: Transform + pos: 14.5,-8.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18404 + - uid: 17014 + components: + - type: Transform + pos: 19.5,-8.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18404 + - uid: 17015 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 39.5,-0.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18346 + - uid: 17016 + components: + - type: Transform + pos: 43.5,-36.5 + parent: 2 + - uid: 17017 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 43.5,9.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18346 + - uid: 17018 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 37.5,5.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18346 + - uid: 17019 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -10.5,-61.5 + parent: 2 + - uid: 17020 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 14.5,-58.5 + parent: 2 + - uid: 17021 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -0.5,-66.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18427 + - uid: 17022 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 1.5,-66.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18427 + - uid: 17023 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -2.5,-70.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18427 + - uid: 17024 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 3.5,-70.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18427 + - uid: 17025 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -0.5,-52.5 + parent: 2 + - uid: 17026 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -36.5,-60.5 + parent: 2 + - uid: 17027 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -22.5,-55.5 + parent: 2 + - uid: 17028 + components: + - type: Transform + pos: 10.5,22.5 + parent: 2 + - uid: 17029 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 16.5,-58.5 + parent: 2 + - uid: 17030 + components: + - type: Transform + pos: 17.5,-61.5 + parent: 2 + - uid: 17031 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 38.5,-62.5 + parent: 2 + - uid: 17032 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 38.5,-58.5 + parent: 2 + - uid: 17033 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 38.5,-54.5 + parent: 2 + - uid: 17034 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 16.5,-54.5 + parent: 2 + - uid: 17035 + components: + - type: Transform + pos: 26.5,-72.5 + parent: 2 + - uid: 17036 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 28.5,-66.5 + parent: 2 + - uid: 17037 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 34.5,-28.5 + parent: 2 + - uid: 17038 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 40.5,-57.5 + parent: 2 + - uid: 17039 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 40.5,-50.5 + parent: 2 + - uid: 17040 + components: + - type: Transform + pos: 43.5,-46.5 + parent: 2 + - uid: 17041 + components: + - type: Transform + pos: 40.5,-42.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18433 + - uid: 17042 + components: + - type: Transform + pos: 46.5,-36.5 + parent: 2 + - uid: 17043 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 39.5,-40.5 + parent: 2 + - uid: 17044 + components: + - type: Transform + pos: 35.5,-36.5 + parent: 2 + - uid: 17045 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -17.5,-4.5 + parent: 2 + - uid: 17046 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 28.5,-69.5 + parent: 2 + - uid: 17047 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 26.5,-69.5 + parent: 2 +- proto: PoweredSmallLightEmpty + entities: + - uid: 17048 + components: + - type: Transform + pos: 40.5,-36.5 + parent: 2 + - uid: 17049 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 6.5,-12.5 + parent: 2 + - uid: 17050 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 34.5,-33.5 + parent: 2 + - uid: 17051 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 36.5,-28.5 + parent: 2 + - uid: 17052 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 36.5,-33.5 + parent: 2 + - uid: 17053 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 46.5,-40.5 + parent: 2 + - uid: 17054 + components: + - type: Transform + pos: 33.5,-36.5 + parent: 2 + - uid: 17055 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 5.5,-37.5 + parent: 2 + - uid: 17056 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 7.5,-37.5 + parent: 2 +- proto: Protolathe + entities: + - uid: 17063 + components: + - type: Transform + pos: -36.5,-1.5 + parent: 2 + - uid: 17064 + components: + - type: Transform + pos: -33.5,-27.5 + parent: 2 + - uid: 17065 + components: + - type: Transform + pos: -22.5,-18.5 + parent: 2 + - uid: 17066 + components: + - type: Transform + pos: 0.5,-48.5 + parent: 2 + - uid: 17067 + components: + - type: Transform + pos: 27.5,-39.5 + parent: 2 +- proto: ProximitySensor + entities: + - uid: 17068 + components: + - type: Transform + pos: -19.348927,-22.464745 + parent: 2 + - uid: 17069 + components: + - type: Transform + pos: -19.199741,-22.4088 + parent: 2 + - uid: 17070 + components: + - type: Transform + pos: -36.75127,-52.490677 + parent: 2 + - uid: 17071 + components: + - type: Transform + pos: -36.608303,-52.34149 + parent: 2 + - uid: 17072 + components: + - type: Transform + pos: -36.3348,-52.509327 + parent: 2 + - uid: 17073 + components: + - type: Transform + pos: -36.32237,-52.105286 + parent: 2 +- proto: Rack + entities: + - uid: 17074 + components: + - type: Transform + pos: 10.5,-59.5 + parent: 2 + - uid: 17075 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 4.5,27.5 + parent: 2 + - uid: 17076 + components: + - type: Transform + pos: -26.5,-56.5 + parent: 2 + - uid: 17077 + components: + - type: Transform + pos: -17.5,-4.5 + parent: 2 + - uid: 17078 + components: + - type: Transform + pos: -7.5,12.5 + parent: 2 + - uid: 17079 + components: + - type: Transform + pos: -6.5,12.5 + parent: 2 + - uid: 17080 + components: + - type: Transform + pos: -6.5,14.5 + parent: 2 + - uid: 17081 + components: + - type: Transform + pos: 8.5,-10.5 + parent: 2 + - uid: 17082 + components: + - type: Transform + pos: -6.5,-10.5 + parent: 2 + - uid: 17083 + components: + - type: Transform + pos: -6.5,-14.5 + parent: 2 + - uid: 17084 + components: + - type: Transform + pos: -14.5,-12.5 + parent: 2 + - uid: 17085 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -25.5,13.5 + parent: 2 + - uid: 17086 + components: + - type: Transform + pos: -38.5,-19.5 + parent: 2 + - uid: 17087 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -38.5,-22.5 + parent: 2 + - uid: 17088 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -36.5,-24.5 + parent: 2 + - uid: 17089 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -41.5,-25.5 + parent: 2 + - uid: 17090 + components: + - type: Transform + pos: -46.5,-25.5 + parent: 2 + - uid: 17091 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -17.5,-22.5 + parent: 2 + - uid: 17092 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -6.5,-23.5 + parent: 2 + - uid: 17093 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -6.5,-21.5 + parent: 2 + - uid: 17094 + components: + - type: Transform + pos: -4.5,-24.5 + parent: 2 + - uid: 17095 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -37.5,-35.5 + parent: 2 + - uid: 17096 + components: + - type: Transform + pos: -19.5,-37.5 + parent: 2 + - uid: 17097 + components: + - type: Transform + pos: -23.5,-44.5 + parent: 2 + - uid: 17098 + components: + - type: Transform + pos: -19.5,-47.5 + parent: 2 + - uid: 17099 + components: + - type: Transform + pos: -29.5,-51.5 + parent: 2 + - uid: 17100 + components: + - type: Transform + pos: -29.5,-51.5 + parent: 2 + - uid: 17101 + components: + - type: Transform + pos: -34.5,-62.5 + parent: 2 + - uid: 17102 + components: + - type: Transform + pos: -36.5,-62.5 + parent: 2 + - uid: 17103 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -22.5,-66.5 + parent: 2 + - uid: 17104 + components: + - type: Transform + pos: -11.5,-53.5 + parent: 2 + - uid: 17105 + components: + - type: Transform + pos: -7.5,-51.5 + parent: 2 + - uid: 17106 + components: + - type: Transform + pos: -6.5,-51.5 + parent: 2 + - uid: 17107 + components: + - type: Transform + pos: -2.5,-40.5 + parent: 2 + - uid: 17108 + components: + - type: Transform + pos: -2.5,-39.5 + parent: 2 + - uid: 17109 + components: + - type: Transform + pos: -4.5,-39.5 + parent: 2 + - uid: 17110 + components: + - type: Transform + pos: -4.5,-40.5 + parent: 2 + - uid: 17111 + components: + - type: Transform + pos: -4.5,-37.5 + parent: 2 + - uid: 17112 + components: + - type: Transform + pos: -4.5,-36.5 + parent: 2 + - uid: 17113 + components: + - type: Transform + pos: -4.5,-35.5 + parent: 2 + - uid: 17114 + components: + - type: Transform + pos: 22.5,-11.5 + parent: 2 + - uid: 17115 + components: + - type: Transform + pos: 24.5,-10.5 + parent: 2 + - uid: 17116 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 19.5,16.5 + parent: 2 + - uid: 17117 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 16.5,27.5 + parent: 2 + - uid: 17118 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 17.5,27.5 + parent: 2 + - uid: 17119 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 20.5,25.5 + parent: 2 + - uid: 17120 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 20.5,27.5 + parent: 2 + - uid: 17121 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 26.5,25.5 + parent: 2 + - uid: 17122 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 23.5,27.5 + parent: 2 + - uid: 17123 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -18.5,14.5 + parent: 2 + - uid: 17124 + components: + - type: Transform + pos: -23.5,18.5 + parent: 2 + - uid: 17125 + components: + - type: Transform + pos: -23.5,21.5 + parent: 2 + - uid: 17126 + components: + - type: Transform + pos: -29.5,21.5 + parent: 2 + - uid: 17127 + components: + - type: Transform + pos: -14.5,40.5 + parent: 2 + - uid: 17128 + components: + - type: Transform + pos: -14.5,38.5 + parent: 2 + - uid: 17129 + components: + - type: Transform + pos: -13.5,40.5 + parent: 2 + - uid: 17130 + components: + - type: Transform + pos: -12.5,40.5 + parent: 2 + - uid: 17131 + components: + - type: Transform + pos: -15.5,40.5 + parent: 2 + - uid: 17132 + components: + - type: Transform + pos: -11.5,48.5 + parent: 2 + - uid: 17133 + components: + - type: Transform + pos: 8.5,84.5 + parent: 2 + - uid: 17134 + components: + - type: Transform + pos: 7.5,85.5 + parent: 2 + - uid: 17135 + components: + - type: Transform + pos: -6.5,75.5 + parent: 2 + - uid: 17136 + components: + - type: Transform + pos: 47.5,-29.5 + parent: 2 + - uid: 17137 + components: + - type: Transform + pos: 46.5,-29.5 + parent: 2 + - uid: 17138 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 34.5,-27.5 + parent: 2 + - uid: 17139 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 36.5,-29.5 + parent: 2 + - uid: 17140 + components: + - type: Transform + pos: 15.5,-36.5 + parent: 2 + - uid: 17141 + components: + - type: Transform + pos: 24.5,-34.5 + parent: 2 + - uid: 17142 + components: + - type: Transform + pos: 25.5,-34.5 + parent: 2 + - uid: 17143 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 14.5,-52.5 + parent: 2 + - uid: 17144 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 14.5,-51.5 + parent: 2 + - uid: 17145 + components: + - type: Transform + pos: -9.5,-55.5 + parent: 2 + - uid: 17146 + components: + - type: Transform + pos: -16.5,-56.5 + parent: 2 + - uid: 17147 + components: + - type: Transform + pos: 29.5,-39.5 + parent: 2 + - uid: 17148 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -25.5,-39.5 + parent: 2 + - uid: 17149 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -23.5,-39.5 + parent: 2 + - uid: 17150 + components: + - type: Transform + pos: -36.5,-58.5 + parent: 2 + - uid: 17151 + components: + - type: Transform + pos: -36.5,-60.5 + parent: 2 + - uid: 17152 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -3.5,-35.5 + parent: 2 + - uid: 17153 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -2.5,-35.5 + parent: 2 + - uid: 17154 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -2.5,-37.5 + parent: 2 + - uid: 17155 + components: + - type: Transform + pos: -25.5,-56.5 + parent: 2 + - uid: 17156 + components: + - type: Transform + pos: 6.5,-37.5 + parent: 2 + - uid: 17157 + components: + - type: Transform + pos: 7.5,-37.5 + parent: 2 + - uid: 17158 + components: + - type: Transform + pos: -2.5,-50.5 + parent: 2 + - uid: 17159 + components: + - type: Transform + pos: 36.5,-36.5 + parent: 2 + - uid: 17160 + components: + - type: Transform + pos: 28.5,-10.5 + parent: 2 + - uid: 17161 + components: + - type: Transform + pos: 7.5,-34.5 + parent: 2 + - uid: 17162 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -6.5,-60.5 + parent: 2 +- proto: RadiationCollectorNoTank + entities: + - uid: 17163 + components: + - type: Transform + pos: 3.5,-68.5 + parent: 2 + - uid: 17164 + components: + - type: Transform + pos: 3.5,-70.5 + parent: 2 + - uid: 17165 + components: + - type: Transform + pos: -2.5,-70.5 + parent: 2 + - uid: 17166 + components: + - type: Transform + pos: -2.5,-68.5 + parent: 2 + - uid: 17169 + components: + - type: Transform + pos: 2.5,-68.5 + parent: 2 + - uid: 17170 + components: + - type: Transform + pos: 2.5,-70.5 + parent: 2 + - uid: 17171 + components: + - type: Transform + pos: -1.5,-68.5 + parent: 2 + - uid: 17172 + components: + - type: Transform + pos: -1.5,-70.5 + parent: 2 +- proto: RadioHandheld + entities: + - uid: 17173 + components: + - type: Transform + pos: -36.28194,-18.423845 + parent: 2 + - uid: 17174 + components: + - type: Transform + pos: -36.36586,-18.283985 + parent: 2 + - uid: 17175 + components: + - type: Transform + pos: -30.711529,-34.43418 + parent: 2 + - uid: 17176 + components: + - type: Transform + pos: 29.705189,-4.5692544 + parent: 2 + - uid: 17177 + components: + - type: Transform + pos: 43.537224,-18.265045 + parent: 2 + - uid: 17178 + components: + - type: Transform + pos: -6.4682493,78.6944 + parent: 2 + - uid: 17179 + components: + - type: Transform + pos: 4.337897,-18.688145 + parent: 2 +- proto: Railing + entities: + - uid: 17180 + components: + - type: Transform + pos: -7.5,-0.5 + parent: 2 + - uid: 17181 + components: + - type: Transform + pos: -6.5,-0.5 + parent: 2 + - uid: 17182 + components: + - type: Transform + pos: -5.5,-0.5 + parent: 2 + - uid: 17183 + components: + - type: Transform + pos: -4.5,-0.5 + parent: 2 + - uid: 17184 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -3.5,-1.5 + parent: 2 + - uid: 17185 + components: + - type: Transform + pos: -1.5,-3.5 + parent: 2 + - uid: 17186 + components: + - type: Transform + pos: 3.5,-3.5 + parent: 2 + - uid: 17187 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 5.5,-1.5 + parent: 2 + - uid: 17188 + components: + - type: Transform + pos: 6.5,-0.5 + parent: 2 + - uid: 17189 + components: + - type: Transform + pos: 7.5,-0.5 + parent: 2 + - uid: 17190 + components: + - type: Transform + pos: 8.5,-0.5 + parent: 2 + - uid: 17191 + components: + - type: Transform + pos: 9.5,-0.5 + parent: 2 + - uid: 17192 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -7.5,2.5 + parent: 2 + - uid: 17193 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -6.5,2.5 + parent: 2 + - uid: 17194 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -5.5,2.5 + parent: 2 + - uid: 17195 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -4.5,2.5 + parent: 2 + - uid: 17196 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -3.5,3.5 + parent: 2 + - uid: 17197 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -0.5,6.5 + parent: 2 + - uid: 17198 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -0.5,7.5 + parent: 2 + - uid: 17199 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -0.5,8.5 + parent: 2 + - uid: 17200 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -0.5,9.5 + parent: 2 + - uid: 17201 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 2.5,9.5 + parent: 2 + - uid: 17202 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 2.5,8.5 + parent: 2 + - uid: 17203 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 2.5,7.5 + parent: 2 + - uid: 17204 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 2.5,6.5 + parent: 2 + - uid: 17205 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 5.5,3.5 + parent: 2 + - uid: 17206 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 6.5,2.5 + parent: 2 + - uid: 17207 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 7.5,2.5 + parent: 2 + - uid: 17208 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 8.5,2.5 + parent: 2 + - uid: 17209 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 9.5,2.5 + parent: 2 + - uid: 17210 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -42.5,11.5 + parent: 2 + - uid: 17211 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -43.5,10.5 + parent: 2 + - uid: 17212 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -43.5,9.5 + parent: 2 + - uid: 17213 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -43.5,8.5 + parent: 2 + - uid: 17214 + components: + - type: Transform + pos: -42.5,-4.5 + parent: 2 + - uid: 17215 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -42.5,3.5 + parent: 2 + - uid: 17216 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -29.5,-10.5 + parent: 2 + - uid: 17217 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -29.5,-11.5 + parent: 2 + - uid: 17218 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -29.5,-12.5 + parent: 2 + - uid: 17219 + components: + - type: Transform + pos: -38.5,-63.5 + parent: 2 + - uid: 17220 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -39.5,-62.5 + parent: 2 + - uid: 17221 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -39.5,-60.5 + parent: 2 + - uid: 17222 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -39.5,-59.5 + parent: 2 + - uid: 17223 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -39.5,-58.5 + parent: 2 + - uid: 17224 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -39.5,-57.5 + parent: 2 + - uid: 17225 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -39.5,-56.5 + parent: 2 + - uid: 17226 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -39.5,-55.5 + parent: 2 + - uid: 17227 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -39.5,-54.5 + parent: 2 + - uid: 17228 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -2.5,-40.5 + parent: 2 + - uid: 17229 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -2.5,-39.5 + parent: 2 + - uid: 17230 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -4.5,-39.5 + parent: 2 + - uid: 17231 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -4.5,-40.5 + parent: 2 + - uid: 17232 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 31.5,11.5 + parent: 2 + - uid: 17233 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 31.5,10.5 + parent: 2 + - uid: 17234 + components: + - type: Transform + pos: 33.5,9.5 + parent: 2 + - uid: 17235 + components: + - type: Transform + pos: 34.5,9.5 + parent: 2 + - uid: 17236 + components: + - type: Transform + pos: 35.5,9.5 + parent: 2 + - uid: 17237 + components: + - type: Transform + pos: 40.5,24.5 + parent: 2 + - uid: 17238 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -14.5,43.5 + parent: 2 + - uid: 17239 + components: + - type: Transform + pos: -13.5,44.5 + parent: 2 + - uid: 17240 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -16.5,-60.5 + parent: 2 + - uid: 17241 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -16.5,-61.5 + parent: 2 + - uid: 17242 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -16.5,-55.5 + parent: 2 + - uid: 17243 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -16.5,-65.5 + parent: 2 + - uid: 17244 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -16.5,-66.5 + parent: 2 + - uid: 17245 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -16.5,-67.5 + parent: 2 + - uid: 17246 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -16.5,-68.5 + parent: 2 + - uid: 17247 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -16.5,-69.5 + parent: 2 + - uid: 17248 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -16.5,-70.5 + parent: 2 + - uid: 17249 + components: + - type: Transform + pos: -15.5,-71.5 + parent: 2 + - uid: 17250 + components: + - type: Transform + pos: -14.5,-71.5 + parent: 2 + - uid: 17251 + components: + - type: Transform + pos: -13.5,-71.5 + parent: 2 + - uid: 17252 + components: + - type: Transform + pos: -12.5,-71.5 + parent: 2 + - uid: 17253 + components: + - type: Transform + pos: -11.5,-71.5 + parent: 2 + - uid: 17254 + components: + - type: Transform + pos: -10.5,-71.5 + parent: 2 + - uid: 17255 + components: + - type: Transform + pos: -9.5,-71.5 + parent: 2 + - uid: 17256 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 19.5,-65.5 + parent: 2 + - uid: 17257 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 19.5,-66.5 + parent: 2 + - uid: 17258 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 19.5,-67.5 + parent: 2 + - uid: 17259 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 19.5,-68.5 + parent: 2 + - uid: 17260 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 20.5,-69.5 + parent: 2 + - uid: 17261 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 21.5,-69.5 + parent: 2 + - uid: 17262 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 22.5,-69.5 + parent: 2 + - uid: 17263 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 30.5,-67.5 + parent: 2 + - uid: 17264 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 31.5,-67.5 + parent: 2 + - uid: 17265 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 32.5,-67.5 + parent: 2 + - uid: 17266 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 33.5,-67.5 + parent: 2 + - uid: 17267 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 34.5,-67.5 + parent: 2 + - uid: 17268 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 35.5,-66.5 + parent: 2 + - uid: 17269 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 40.5,-60.5 + parent: 2 + - uid: 17270 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 41.5,-59.5 + parent: 2 + - uid: 17271 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 41.5,-58.5 + parent: 2 + - uid: 17272 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 41.5,-56.5 + parent: 2 + - uid: 17273 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 41.5,-55.5 + parent: 2 + - uid: 17274 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 41.5,-54.5 + parent: 2 + - uid: 17275 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 41.5,-53.5 + parent: 2 + - uid: 17276 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 41.5,-52.5 + parent: 2 + - uid: 17277 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 41.5,-51.5 + parent: 2 + - uid: 17278 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 41.5,-50.5 + parent: 2 + - uid: 17279 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 45.5,-45.5 + parent: 2 + - uid: 17280 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 45.5,-46.5 + parent: 2 + - uid: 17281 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 43.5,-48.5 + parent: 2 + - uid: 17282 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 42.5,-49.5 + parent: 2 + - uid: 17283 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 44.5,-47.5 + parent: 2 + - uid: 17284 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 23.5,-72.5 + parent: 2 + - uid: 17285 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 23.5,-71.5 + parent: 2 + - uid: 17286 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 23.5,-70.5 + parent: 2 + - uid: 23107 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -30.5,-23.5 + parent: 2 + - uid: 23867 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -31.5,-24.5 + parent: 2 + - uid: 23868 + components: + - type: Transform + pos: -31.5,-22.5 + parent: 2 + - uid: 23878 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -30.5,-20.5 + parent: 2 + - uid: 23879 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -31.5,-21.5 + parent: 2 + - uid: 23880 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -32.5,-20.5 + parent: 2 +- proto: RailingCorner + entities: + - uid: 17287 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 3.5,3.5 + parent: 2 + - uid: 17288 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -1.5,-1.5 + parent: 2 + - uid: 17289 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 3.5,-1.5 + parent: 2 + - uid: 17290 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 3.5,-1.5 + parent: 2 + - uid: 17291 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 3.5,3.5 + parent: 2 + - uid: 17292 + components: + - type: Transform + pos: -1.5,3.5 + parent: 2 + - uid: 17293 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -3.5,-2.5 + parent: 2 + - uid: 17294 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -2.5,-3.5 + parent: 2 + - uid: 17295 + components: + - type: Transform + pos: 4.5,-3.5 + parent: 2 + - uid: 17296 + components: + - type: Transform + pos: 5.5,-2.5 + parent: 2 + - uid: 17297 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 5.5,4.5 + parent: 2 + - uid: 17298 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -3.5,4.5 + parent: 2 + - uid: 17299 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -43.5,11.5 + parent: 2 + - uid: 17300 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -39.5,-63.5 + parent: 2 + - uid: 17301 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 31.5,9.5 + parent: 2 + - uid: 17302 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -16.5,-59.5 + parent: 2 + - uid: 17303 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -16.5,-56.5 + parent: 2 + - uid: 17304 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -16.5,-71.5 + parent: 2 + - uid: 17305 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 41.5,-49.5 + parent: 2 + - uid: 17306 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 43.5,-47.5 + parent: 2 + - uid: 17307 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 23.5,-69.5 + parent: 2 +- proto: RailingCornerSmall + entities: + - uid: 17308 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -2.5,-1.5 + parent: 2 + - uid: 17309 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -2.5,-0.5 + parent: 2 + - uid: 17310 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -1.5,-0.5 + parent: 2 + - uid: 17311 + components: + - type: Transform + pos: -0.5,-2.5 + parent: 2 + - uid: 17312 + components: + - type: Transform + pos: -0.5,-2.5 + parent: 2 + - uid: 17313 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -1.5,-2.5 + parent: 2 + - uid: 17314 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -0.5,-1.5 + parent: 2 + - uid: 17315 + components: + - type: Transform + pos: 3.5,-2.5 + parent: 2 + - uid: 17316 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 2.5,-2.5 + parent: 2 + - uid: 17317 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 2.5,-2.5 + parent: 2 + - uid: 17318 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 2.5,-1.5 + parent: 2 + - uid: 17319 + components: + - type: Transform + pos: 4.5,-1.5 + parent: 2 + - uid: 17320 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 4.5,-0.5 + parent: 2 + - uid: 17321 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 4.5,-0.5 + parent: 2 + - uid: 17322 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 3.5,-0.5 + parent: 2 + - uid: 17323 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 4.5,3.5 + parent: 2 + - uid: 17324 + components: + - type: Transform + pos: 4.5,2.5 + parent: 2 + - uid: 17325 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 3.5,2.5 + parent: 2 + - uid: 17326 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 3.5,4.5 + parent: 2 + - uid: 17327 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 2.5,4.5 + parent: 2 + - uid: 17328 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 2.5,4.5 + parent: 2 + - uid: 17329 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 2.5,3.5 + parent: 2 + - uid: 17330 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 2.5,3.5 + parent: 2 + - uid: 17331 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -1.5,4.5 + parent: 2 + - uid: 17332 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -0.5,4.5 + parent: 2 + - uid: 17333 + components: + - type: Transform + pos: -0.5,3.5 + parent: 2 + - uid: 17334 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -2.5,3.5 + parent: 2 + - uid: 17335 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -2.5,3.5 + parent: 2 + - uid: 17336 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -2.5,2.5 + parent: 2 + - uid: 17337 + components: + - type: Transform + pos: -1.5,2.5 + parent: 2 + - uid: 17338 + components: + - type: Transform + pos: -1.5,2.5 + parent: 2 + - uid: 17339 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -8.5,-0.5 + parent: 2 + - uid: 17340 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -3.5,-0.5 + parent: 2 + - uid: 17341 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -2.5,-2.5 + parent: 2 + - uid: 17342 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -0.5,-3.5 + parent: 2 + - uid: 17343 + components: + - type: Transform + pos: -0.5,-4.5 + parent: 2 + - uid: 17344 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -0.5,-7.5 + parent: 2 + - uid: 17345 + components: + - type: Transform + pos: -0.5,-8.5 + parent: 2 + - uid: 17346 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -2.5,-8.5 + parent: 2 + - uid: 17347 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -3.5,-7.5 + parent: 2 + - uid: 17348 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -5.5,-6.5 + parent: 2 + - uid: 17349 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -6.5,-5.5 + parent: 2 + - uid: 17350 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -7.5,-3.5 + parent: 2 + - uid: 17351 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -8.5,-2.5 + parent: 2 + - uid: 17352 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 2.5,-8.5 + parent: 2 + - uid: 17353 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 2.5,-7.5 + parent: 2 + - uid: 17354 + components: + - type: Transform + pos: 4.5,-8.5 + parent: 2 + - uid: 17355 + components: + - type: Transform + pos: 5.5,-7.5 + parent: 2 + - uid: 17356 + components: + - type: Transform + pos: 7.5,-6.5 + parent: 2 + - uid: 17357 + components: + - type: Transform + pos: 8.5,-5.5 + parent: 2 + - uid: 17358 + components: + - type: Transform + pos: 9.5,-3.5 + parent: 2 + - uid: 17359 + components: + - type: Transform + pos: 10.5,-2.5 + parent: 2 + - uid: 17360 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 10.5,-0.5 + parent: 2 + - uid: 17361 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 5.5,-0.5 + parent: 2 + - uid: 17362 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 4.5,-2.5 + parent: 2 + - uid: 17363 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 2.5,-3.5 + parent: 2 + - uid: 17364 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 2.5,-4.5 + parent: 2 + - uid: 17365 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -8.5,2.5 + parent: 2 + - uid: 17366 + components: + - type: Transform + pos: -3.5,2.5 + parent: 2 + - uid: 17367 + components: + - type: Transform + pos: -2.5,4.5 + parent: 2 + - uid: 17368 + components: + - type: Transform + pos: -0.5,5.5 + parent: 2 + - uid: 17369 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -0.5,10.5 + parent: 2 + - uid: 17370 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 2.5,10.5 + parent: 2 + - uid: 17371 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 2.5,5.5 + parent: 2 + - uid: 17372 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 4.5,4.5 + parent: 2 + - uid: 17373 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 5.5,2.5 + parent: 2 + - uid: 17374 + components: + - type: Transform + pos: 10.5,2.5 + parent: 2 + - uid: 17375 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 10.5,4.5 + parent: 2 + - uid: 17376 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 9.5,5.5 + parent: 2 + - uid: 17377 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 8.5,7.5 + parent: 2 + - uid: 17378 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 7.5,8.5 + parent: 2 + - uid: 17379 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 5.5,9.5 + parent: 2 + - uid: 17380 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 4.5,10.5 + parent: 2 + - uid: 17381 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -2.5,10.5 + parent: 2 + - uid: 17382 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -3.5,9.5 + parent: 2 + - uid: 17383 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -5.5,8.5 + parent: 2 + - uid: 17384 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -6.5,7.5 + parent: 2 + - uid: 17385 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -7.5,5.5 + parent: 2 + - uid: 17386 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -8.5,4.5 + parent: 2 + - uid: 17387 + components: + - type: Transform + pos: -41.5,11.5 + parent: 2 + - uid: 17388 + components: + - type: Transform + pos: -43.5,7.5 + parent: 2 + - uid: 17389 + components: + - type: Transform + pos: -43.5,7.5 + parent: 2 + - uid: 17390 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -29.5,-13.5 + parent: 2 + - uid: 17391 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -14.5,44.5 + parent: 2 + - uid: 17392 + components: + - type: Transform + pos: -15.5,-59.5 + parent: 2 + - uid: 17393 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -15.5,-56.5 + parent: 2 + - uid: 17394 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 19.5,-69.5 + parent: 2 + - uid: 17395 + components: + - type: Transform + pos: 35.5,-67.5 + parent: 2 + - uid: 17396 + components: + - type: Transform + pos: 41.5,-60.5 + parent: 2 + - uid: 17397 + components: + - type: Transform + pos: 43.5,-49.5 + parent: 2 + - uid: 17398 + components: + - type: Transform + pos: 45.5,-47.5 + parent: 2 + - uid: 23871 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -32.5,-24.5 + parent: 2 + - uid: 23872 + components: + - type: Transform + pos: -30.5,-24.5 + parent: 2 + - uid: 23873 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -30.5,-22.5 + parent: 2 + - uid: 23874 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -32.5,-22.5 + parent: 2 + - uid: 23875 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -32.5,-19.5 + parent: 2 + - uid: 23876 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -32.5,-21.5 + parent: 2 + - uid: 23877 + components: + - type: Transform + pos: -30.5,-21.5 + parent: 2 +- proto: RandomArcade + entities: + - uid: 17399 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 15.5,8.5 + parent: 2 + - uid: 17400 + components: + - type: Transform + pos: -39.5,37.5 + parent: 2 +- proto: RandomArtifactSpawner + entities: + - uid: 17401 + components: + - type: Transform + pos: -11.5,-31.5 + parent: 2 + - uid: 17402 + components: + - type: Transform + pos: -17.5,-31.5 + parent: 2 +- proto: RandomInstruments + entities: + - uid: 17403 + components: + - type: Transform + pos: -22.5,-31.5 + parent: 2 + - uid: 17404 + components: + - type: Transform + pos: 40.5,14.5 + parent: 2 + - uid: 17405 + components: + - type: Transform + pos: 40.5,14.5 + parent: 2 + - uid: 17406 + components: + - type: Transform + pos: 40.5,14.5 + parent: 2 +- proto: RandomPainting + entities: + - uid: 17407 + components: + - type: Transform + pos: 15.5,45.5 + parent: 2 +- proto: RandomPosterAny + entities: + - uid: 17408 + components: + - type: Transform + pos: 39.5,-37.5 + parent: 2 +- proto: RandomPosterContraband + entities: + - uid: 17409 + components: + - type: Transform + pos: 42.5,11.5 + parent: 2 + - uid: 17410 + components: + - type: Transform + pos: 37.5,11.5 + parent: 2 + - uid: 17411 + components: + - type: Transform + pos: -31.5,33.5 + parent: 2 + - uid: 17412 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 9.5,26.5 + parent: 2 + - uid: 17413 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 6.5,23.5 + parent: 2 + - uid: 17415 + components: + - type: Transform + pos: 45.5,-36.5 + parent: 2 + - uid: 17416 + components: + - type: Transform + pos: 37.5,-35.5 + parent: 2 + - uid: 17417 + components: + - type: Transform + pos: 32.5,-35.5 + parent: 2 + - uid: 17418 + components: + - type: Transform + pos: 19.5,24.5 + parent: 2 + - uid: 17419 + components: + - type: Transform + pos: 21.5,-7.5 + parent: 2 + - uid: 17420 + components: + - type: Transform + pos: 13.5,-5.5 + parent: 2 + - uid: 17421 + components: + - type: Transform + pos: 6.5,-14.5 + parent: 2 + - uid: 17422 + components: + - type: Transform + pos: -7.5,-17.5 + parent: 2 + - uid: 17423 + components: + - type: Transform + pos: -14.5,-15.5 + parent: 2 + - uid: 17424 + components: + - type: Transform + pos: -12.5,-11.5 + parent: 2 + - uid: 17425 + components: + - type: Transform + pos: -25.5,-9.5 + parent: 2 + - uid: 17426 + components: + - type: Transform + pos: -16.5,-7.5 + parent: 2 + - uid: 17427 + components: + - type: Transform + pos: -16.5,-1.5 + parent: 2 + - uid: 17428 + components: + - type: Transform + pos: -45.5,-28.5 + parent: 2 + - uid: 17429 + components: + - type: Transform + pos: -40.5,-24.5 + parent: 2 + - uid: 17430 + components: + - type: Transform + pos: -37.5,-30.5 + parent: 2 + - uid: 17431 + components: + - type: Transform + pos: -28.5,-60.5 + parent: 2 + - uid: 17432 + components: + - type: Transform + pos: -32.5,-65.5 + parent: 2 + - uid: 17433 + components: + - type: Transform + pos: -23.5,-51.5 + parent: 2 + - uid: 17434 + components: + - type: Transform + pos: -8.5,-51.5 + parent: 2 + - uid: 17435 + components: + - type: Transform + pos: -22.5,-46.5 + parent: 2 + - uid: 17436 + components: + - type: Transform + pos: -5.5,-42.5 + parent: 2 + - uid: 17437 + components: + - type: Transform + pos: 15.5,-33.5 + parent: 2 + - uid: 17438 + components: + - type: Transform + pos: 21.5,-35.5 + parent: 2 + - uid: 17439 + components: + - type: Transform + pos: -14.5,6.5 + parent: 2 + - uid: 17440 + components: + - type: Transform + pos: -21.5,13.5 + parent: 2 + - uid: 17441 + components: + - type: Transform + pos: -26.5,17.5 + parent: 2 + - uid: 17442 + components: + - type: Transform + pos: -28.5,23.5 + parent: 2 + - uid: 17443 + components: + - type: Transform + pos: -22.5,20.5 + parent: 2 + - uid: 20564 + components: + - type: Transform + pos: 13.5,34.5 + parent: 2 +- proto: RandomPosterLegit + entities: + - uid: 15544 + components: + - type: Transform + pos: 21.5,-29.5 + parent: 2 + - uid: 17444 + components: + - type: Transform + pos: 17.5,-1.5 + parent: 2 + - uid: 17445 + components: + - type: Transform + pos: -4.5,11.5 + parent: 2 + - uid: 17446 + components: + - type: Transform + pos: -6.5,10.5 + parent: 2 + - uid: 17447 + components: + - type: Transform + pos: -8.5,7.5 + parent: 2 + - uid: 17448 + components: + - type: Transform + pos: 11.5,6.5 + parent: 2 + - uid: 17449 + components: + - type: Transform + pos: -14.5,9.5 + parent: 2 + - uid: 17450 + components: + - type: Transform + pos: -18.5,11.5 + parent: 2 + - uid: 17451 + components: + - type: Transform + pos: -18.5,10.5 + parent: 2 + - uid: 17452 + components: + - type: Transform + pos: -8.5,12.5 + parent: 2 + - uid: 17453 + components: + - type: Transform + pos: -14.5,-7.5 + parent: 2 + - uid: 17454 + components: + - type: Transform + pos: -22.5,-1.5 + parent: 2 + - uid: 17455 + components: + - type: Transform + pos: -17.5,3.5 + parent: 2 + - uid: 17456 + components: + - type: Transform + pos: -35.5,5.5 + parent: 2 + - uid: 17457 + components: + - type: Transform + pos: -35.5,-20.5 + parent: 2 + - uid: 17458 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 16.5,3.5 + parent: 2 + - uid: 17459 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 19.5,3.5 + parent: 2 + - uid: 17460 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 25.5,3.5 + parent: 2 + - uid: 17461 + components: + - type: Transform + pos: 31.5,-6.5 + parent: 2 + - uid: 17462 + components: + - type: Transform + pos: 34.5,3.5 + parent: 2 + - uid: 17463 + components: + - type: Transform + pos: 32.5,21.5 + parent: 2 + - uid: 17464 + components: + - type: Transform + pos: 39.5,12.5 + parent: 2 + - uid: 17465 + components: + - type: Transform + pos: 38.5,-1.5 + parent: 2 + - uid: 17466 + components: + - type: Transform + pos: 39.5,31.5 + parent: 2 + - uid: 17467 + components: + - type: Transform + pos: 31.5,37.5 + parent: 2 + - uid: 17468 + components: + - type: Transform + pos: 42.5,-16.5 + parent: 2 + - uid: 17469 + components: + - type: Transform + pos: -1.5,28.5 + parent: 2 + - uid: 17470 + components: + - type: Transform + pos: -31.5,37.5 + parent: 2 + - uid: 17471 + components: + - type: Transform + pos: -29.5,27.5 + parent: 2 + - uid: 17472 + components: + - type: Transform + pos: -32.5,27.5 + parent: 2 + - uid: 17473 + components: + - type: Transform + pos: -26.5,31.5 + parent: 2 + - uid: 17474 + components: + - type: Transform + pos: 3.5,39.5 + parent: 2 + - uid: 17475 + components: + - type: Transform + pos: 26.5,-22.5 + parent: 2 + - uid: 17476 + components: + - type: Transform + pos: 35.5,-18.5 + parent: 2 + - uid: 17477 + components: + - type: Transform + pos: 24.5,-30.5 + parent: 2 + - uid: 17478 + components: + - type: Transform + pos: 3.5,-30.5 + parent: 2 + - uid: 17479 + components: + - type: Transform + pos: 12.5,-39.5 + parent: 2 + - uid: 17480 + components: + - type: Transform + pos: 19.5,-38.5 + parent: 2 + - uid: 17481 + components: + - type: Transform + pos: 25.5,-38.5 + parent: 2 + - uid: 17482 + components: + - type: Transform + pos: -2.5,-49.5 + parent: 2 + - uid: 17483 + components: + - type: Transform + pos: 3.5,-51.5 + parent: 2 + - uid: 17484 + components: + - type: Transform + pos: 27.5,22.5 + parent: 2 + - uid: 17485 + components: + - type: Transform + pos: 48.5,-40.5 + parent: 2 +- proto: RandomSpawner + entities: + - uid: 17486 + components: + - type: Transform + pos: -44.5,16.5 + parent: 2 + - uid: 17487 + components: + - type: Transform + pos: -43.5,16.5 + parent: 2 + - uid: 17488 + components: + - type: Transform + pos: -42.5,16.5 + parent: 2 + - uid: 17489 + components: + - type: Transform + pos: -43.5,16.5 + parent: 2 + - uid: 17490 + components: + - type: Transform + pos: -44.5,16.5 + parent: 2 + - uid: 17491 + components: + - type: Transform + pos: -43.5,16.5 + parent: 2 + - uid: 17492 + components: + - type: Transform + pos: -42.5,16.5 + parent: 2 + - uid: 17493 + components: + - type: Transform + pos: -20.5,-44.5 + parent: 2 + - uid: 17494 + components: + - type: Transform + pos: -20.5,-47.5 + parent: 2 + - uid: 17495 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -26.5,-44.5 + parent: 2 + - uid: 17496 + components: + - type: Transform + pos: -27.5,-43.5 + parent: 2 + - uid: 17497 + components: + - type: Transform + pos: -29.5,-51.5 + parent: 2 + - uid: 17498 + components: + - type: Transform + pos: -13.5,-52.5 + parent: 2 + - uid: 17499 + components: + - type: Transform + pos: 24.5,25.5 + parent: 2 + - uid: 17500 + components: + - type: Transform + pos: -17.5,14.5 + parent: 2 + - uid: 17501 + components: + - type: Transform + pos: -17.5,16.5 + parent: 2 + - uid: 17502 + components: + - type: Transform + pos: -33.5,19.5 + parent: 2 + - uid: 17503 + components: + - type: Transform + pos: -28.5,17.5 + parent: 2 + - uid: 17504 + components: + - type: Transform + pos: -27.5,15.5 + parent: 2 + - uid: 17505 + components: + - type: Transform + pos: -29.5,16.5 + parent: 2 + - uid: 17506 + components: + - type: Transform + pos: 34.5,-28.5 + parent: 2 + - uid: 17507 + components: + - type: Transform + pos: 30.5,-36.5 + parent: 2 + - uid: 17508 + components: + - type: Transform + pos: 4.5,-36.5 + parent: 2 + - uid: 17509 + components: + - type: Transform + pos: 34.5,-36.5 + parent: 2 + - uid: 17510 + components: + - type: Transform + pos: 39.5,-39.5 + parent: 2 + - uid: 17511 + components: + - type: Transform + pos: 44.5,-40.5 + parent: 2 + - uid: 17512 + components: + - type: Transform + pos: 46.5,-38.5 + parent: 2 + - uid: 17513 + components: + - type: Transform + pos: 34.5,-39.5 + parent: 2 + - uid: 17514 + components: + - type: Transform + pos: 6.5,-34.5 + parent: 2 + - uid: 17515 + components: + - type: Transform + pos: 8.5,-37.5 + parent: 2 +- proto: RandomSpawner100 + entities: + - uid: 17516 + components: + - type: Transform + pos: -7.5,-10.5 + parent: 2 + - uid: 17517 + components: + - type: Transform + pos: -24.5,-13.5 + parent: 2 + - uid: 17518 + components: + - type: Transform + pos: -23.5,-14.5 + parent: 2 + - uid: 17519 + components: + - type: Transform + pos: 13.5,-4.5 + parent: 2 + - uid: 17520 + components: + - type: Transform + pos: 14.5,-4.5 + parent: 2 + - uid: 17521 + components: + - type: Transform + pos: 14.5,-3.5 + parent: 2 + - uid: 17522 + components: + - type: Transform + pos: -20.5,-35.5 + parent: 2 + - uid: 17523 + components: + - type: Transform + pos: 20.5,-37.5 + parent: 2 + - uid: 17524 + components: + - type: Transform + pos: 19.5,-37.5 + parent: 2 + - uid: 17525 + components: + - type: Transform + pos: 20.5,-36.5 + parent: 2 + - uid: 17526 + components: + - type: Transform + pos: 18.5,-36.5 + parent: 2 +- proto: RandomVendingDrinks + entities: + - uid: 17527 + components: + - type: Transform + pos: -3.5,-2.5 + parent: 2 + - uid: 17528 + components: + - type: Transform + pos: -35.5,-38.5 + parent: 2 + - uid: 17529 + components: + - type: Transform + pos: 33.5,-12.5 + parent: 2 + - uid: 17530 + components: + - type: Transform + pos: 4.5,-39.5 + parent: 2 + - uid: 17531 + components: + - type: Transform + pos: -8.5,-24.5 + parent: 2 +- proto: RandomVendingSnacks + entities: + - uid: 11461 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -17.5,9.5 + parent: 2 + - uid: 17532 + components: + - type: Transform + pos: -35.5,-39.5 + parent: 2 + - uid: 17533 + components: + - type: Transform + pos: -29.5,30.5 + parent: 2 + - uid: 17535 + components: + - type: Transform + pos: -6.5,71.5 + parent: 2 + - uid: 17536 + components: + - type: Transform + pos: 5.5,-39.5 + parent: 2 + - uid: 17537 + components: + - type: Transform + pos: 6.5,-39.5 + parent: 2 + - uid: 17538 + components: + - type: Transform + pos: 8.5,-55.5 + parent: 2 + - uid: 17539 + components: + - type: Transform + pos: -10.5,-21.5 + parent: 2 + - uid: 23860 + components: + - type: Transform + pos: 6.5,56.5 + parent: 2 +- proto: RCD + entities: + - uid: 17540 + components: + - type: Transform + pos: 14.512725,-51.577976 + parent: 2 +- proto: RCDAmmo + entities: + - uid: 17541 + components: + - type: Transform + pos: 14.276517,-52.592392 + parent: 2 + - uid: 17542 + components: + - type: Transform + pos: 14.276517,-52.45564 + parent: 2 + - uid: 17543 + components: + - type: Transform + pos: 14.276517,-52.306458 + parent: 2 +- proto: ReagentContainerFlourSmall + entities: + - uid: 17544 + components: + - type: Transform + pos: -42.587147,33.57065 + parent: 2 +- proto: Recycler + entities: + - uid: 17545 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -41.5,16.5 + parent: 2 + - type: DeviceLinkSink + links: + - 19980 +- proto: ReinforcedGirder + entities: + - uid: 17546 + components: + - type: Transform + anchored: False + pos: -45.5,19.5 + parent: 2 + - type: Physics + bodyType: Dynamic + - uid: 17547 + components: + - type: Transform + anchored: False + pos: -53.483994,13.556776 + parent: 2 + - type: Physics + bodyType: Dynamic + - uid: 17548 + components: + - type: Transform + pos: -58.5,31.5 + parent: 2 + - uid: 17549 + components: + - type: Transform + pos: -59.5,31.5 + parent: 2 + - uid: 17550 + components: + - type: Transform + pos: -60.5,31.5 + parent: 2 + - uid: 17551 + components: + - type: Transform + pos: -63.5,30.5 + parent: 2 +- proto: ReinforcedPlasmaWindow + entities: + - uid: 17552 + components: + - type: Transform + pos: -17.5,-29.5 + parent: 2 + - uid: 17553 + components: + - type: Transform + pos: -16.5,-29.5 + parent: 2 + - uid: 17554 + components: + - type: Transform + pos: -18.5,-29.5 + parent: 2 + - uid: 17555 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -39.5,-48.5 + parent: 2 + - uid: 17556 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -15.5,37.5 + parent: 2 + - uid: 17557 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -10.5,39.5 + parent: 2 + - uid: 17558 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 2.5,-61.5 + parent: 2 + - uid: 17559 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 4.5,-61.5 + parent: 2 + - uid: 17560 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -2.5,-61.5 + parent: 2 + - uid: 17561 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -4.5,-61.5 + parent: 2 + - uid: 17562 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -13.5,-62.5 + parent: 2 + - uid: 17563 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -14.5,-62.5 + parent: 2 + - uid: 17564 + components: + - type: Transform + pos: 9.5,-68.5 + parent: 2 + - uid: 17565 + components: + - type: Transform + pos: 9.5,-69.5 + parent: 2 + - uid: 17566 + components: + - type: Transform + pos: 9.5,-70.5 + parent: 2 + - uid: 17567 + components: + - type: Transform + pos: 11.5,-71.5 + parent: 2 + - uid: 17568 + components: + - type: Transform + pos: 12.5,-71.5 + parent: 2 + - uid: 17569 + components: + - type: Transform + pos: 13.5,-71.5 + parent: 2 + - uid: 17570 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -5.5,-77.5 + parent: 2 + - uid: 17571 + components: + - type: Transform + pos: 15.5,-62.5 + parent: 2 + - uid: 17572 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 1.5,-71.5 + parent: 2 + - uid: 17573 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 0.5,-71.5 + parent: 2 + - uid: 17574 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -0.5,-71.5 + parent: 2 + - uid: 17575 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 9.5,-74.5 + parent: 2 + - uid: 17576 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 6.5,-77.5 + parent: 2 + - uid: 17577 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 5.5,-77.5 + parent: 2 + - uid: 17578 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 2.5,-77.5 + parent: 2 + - uid: 17579 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 1.5,-77.5 + parent: 2 + - uid: 17580 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -0.5,-77.5 + parent: 2 + - uid: 17581 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -1.5,-77.5 + parent: 2 + - uid: 17582 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -4.5,-77.5 + parent: 2 + - uid: 17583 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -8.5,-74.5 + parent: 2 + - uid: 17584 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -8.5,-70.5 + parent: 2 + - uid: 17585 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -8.5,-69.5 + parent: 2 + - uid: 17586 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -8.5,-68.5 + parent: 2 + - uid: 17587 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 19.5,-58.5 + parent: 2 + - uid: 17588 + components: + - type: Transform + pos: 19.5,-62.5 + parent: 2 + - uid: 17589 + components: + - type: Transform + pos: 19.5,-54.5 + parent: 2 + - uid: 17590 + components: + - type: Transform + pos: 39.5,-44.5 + parent: 2 + - uid: 17591 + components: + - type: Transform + pos: 41.5,-44.5 + parent: 2 + - uid: 17592 + components: + - type: Transform + pos: 41.5,-42.5 + parent: 2 + - uid: 17593 + components: + - type: Transform + pos: 27.5,-67.5 + parent: 2 + - uid: 17594 + components: + - type: Transform + pos: 35.5,-58.5 + parent: 2 + - uid: 17595 + components: + - type: Transform + pos: 35.5,-54.5 + parent: 2 + - uid: 17596 + components: + - type: Transform + pos: 35.5,-62.5 + parent: 2 +- proto: ReinforcedWindow + entities: + - uid: 17597 + components: + - type: Transform + pos: -8.5,-25.5 + parent: 2 + - uid: 17598 + components: + - type: Transform + pos: -11.5,-25.5 + parent: 2 + - uid: 17599 + components: + - type: Transform + pos: 3.5,27.5 + parent: 2 + - uid: 17600 + components: + - type: Transform + pos: 3.5,25.5 + parent: 2 + - uid: 17601 + components: + - type: Transform + pos: -3.5,12.5 + parent: 2 + - uid: 17602 + components: + - type: Transform + pos: 4.5,12.5 + parent: 2 + - uid: 17603 + components: + - type: Transform + pos: -8.5,9.5 + parent: 2 + - uid: 17604 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -10.5,17.5 + parent: 2 + - uid: 17605 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -11.5,17.5 + parent: 2 + - uid: 17606 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -12.5,17.5 + parent: 2 + - uid: 17607 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 3.5,16.5 + parent: 2 + - uid: 17608 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 3.5,17.5 + parent: 2 + - uid: 17609 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 3.5,19.5 + parent: 2 + - uid: 17610 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 8.5,19.5 + parent: 2 + - uid: 17611 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 8.5,17.5 + parent: 2 + - uid: 17612 + components: + - type: Transform + pos: -26.5,6.5 + parent: 2 + - uid: 17613 + components: + - type: Transform + pos: -31.5,7.5 + parent: 2 + - uid: 17614 + components: + - type: Transform + pos: -31.5,5.5 + parent: 2 + - uid: 17615 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -45.5,8.5 + parent: 2 + - uid: 17616 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -45.5,9.5 + parent: 2 + - uid: 17617 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -45.5,10.5 + parent: 2 + - uid: 17618 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -45.5,11.5 + parent: 2 + - uid: 17619 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -39.5,5.5 + parent: 2 + - uid: 17620 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -37.5,5.5 + parent: 2 + - uid: 17621 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -36.5,11.5 + parent: 2 + - uid: 17622 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -35.5,1.5 + parent: 2 + - uid: 17623 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -35.5,0.5 + parent: 2 + - uid: 17625 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -35.5,-1.5 + parent: 2 + - uid: 17626 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -35.5,-2.5 + parent: 2 + - uid: 17627 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -35.5,-3.5 + parent: 2 + - uid: 17628 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -37.5,-6.5 + parent: 2 + - uid: 17629 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -43.5,-2.5 + parent: 2 + - uid: 17630 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -43.5,-3.5 + parent: 2 + - uid: 17631 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -43.5,-4.5 + parent: 2 + - uid: 17632 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -45.5,-3.5 + parent: 2 + - uid: 17633 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -45.5,-4.5 + parent: 2 + - uid: 17634 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -45.5,-5.5 + parent: 2 + - uid: 17635 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -43.5,3.5 + parent: 2 + - uid: 17636 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -43.5,2.5 + parent: 2 + - uid: 17637 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -43.5,1.5 + parent: 2 + - uid: 17638 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -45.5,4.5 + parent: 2 + - uid: 17639 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -45.5,3.5 + parent: 2 + - uid: 17640 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -45.5,2.5 + parent: 2 + - uid: 17641 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -45.5,-8.5 + parent: 2 + - uid: 17642 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -45.5,-9.5 + parent: 2 + - uid: 17643 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -45.5,-10.5 + parent: 2 + - uid: 17644 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -44.5,-10.5 + parent: 2 + - uid: 17645 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -43.5,-10.5 + parent: 2 + - uid: 17646 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -42.5,-10.5 + parent: 2 + - uid: 17647 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -41.5,-10.5 + parent: 2 + - uid: 17648 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -41.5,-12.5 + parent: 2 + - uid: 17649 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -45.5,-12.5 + parent: 2 + - uid: 17650 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -45.5,16.5 + parent: 2 + - uid: 17651 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -45.5,17.5 + parent: 2 + - uid: 17652 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -49.5,-15.5 + parent: 2 + - uid: 17653 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -49.5,-23.5 + parent: 2 + - uid: 17654 + components: + - type: Transform + pos: -27.5,-20.5 + parent: 2 + - uid: 17655 + components: + - type: Transform + pos: -27.5,-23.5 + parent: 2 + - uid: 17656 + components: + - type: Transform + pos: -27.5,-24.5 + parent: 2 + - uid: 17657 + components: + - type: Transform + pos: -28.5,-25.5 + parent: 2 + - uid: 17658 + components: + - type: Transform + pos: -30.5,-25.5 + parent: 2 + - uid: 17659 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -28.5,-28.5 + parent: 2 + - uid: 17660 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -30.5,-28.5 + parent: 2 + - uid: 17661 + components: + - type: Transform + pos: -29.5,-36.5 + parent: 2 + - uid: 17662 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -30.5,-33.5 + parent: 2 + - uid: 17663 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -31.5,-33.5 + parent: 2 + - uid: 17664 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -31.5,-34.5 + parent: 2 + - uid: 17665 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -31.5,-35.5 + parent: 2 + - uid: 17666 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -26.5,-34.5 + parent: 2 + - uid: 17667 + components: + - type: Transform + pos: -32.5,-44.5 + parent: 2 + - uid: 17668 + components: + - type: Transform + pos: -34.5,-44.5 + parent: 2 + - uid: 17669 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -23.5,-30.5 + parent: 2 + - uid: 17670 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -23.5,-31.5 + parent: 2 + - uid: 17671 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -17.5,-25.5 + parent: 2 + - uid: 17672 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -15.5,-25.5 + parent: 2 + - uid: 17673 + components: + - type: Transform + pos: -19.5,-30.5 + parent: 2 + - uid: 17674 + components: + - type: Transform + pos: -19.5,-31.5 + parent: 2 + - uid: 17675 + components: + - type: Transform + pos: -12.5,-33.5 + parent: 2 + - uid: 17676 + components: + - type: Transform + pos: -10.5,-33.5 + parent: 2 + - uid: 17677 + components: + - type: Transform + pos: -1.5,-28.5 + parent: 2 + - uid: 17678 + components: + - type: Transform + pos: -1.5,-26.5 + parent: 2 + - uid: 17679 + components: + - type: Transform + pos: -4.5,-26.5 + parent: 2 + - uid: 17680 + components: + - type: Transform + pos: -4.5,-28.5 + parent: 2 + - uid: 17681 + components: + - type: Transform + pos: -6.5,-29.5 + parent: 2 + - uid: 17682 + components: + - type: Transform + pos: -8.5,-29.5 + parent: 2 + - uid: 17683 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -1.5,-32.5 + parent: 2 + - uid: 17684 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -1.5,-33.5 + parent: 2 + - uid: 17685 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -8.5,-34.5 + parent: 2 + - uid: 17686 + components: + - type: Transform + pos: -14.5,-35.5 + parent: 2 + - uid: 17687 + components: + - type: Transform + pos: -14.5,-37.5 + parent: 2 + - uid: 17688 + components: + - type: Transform + pos: -14.5,-38.5 + parent: 2 + - uid: 17689 + components: + - type: Transform + pos: -14.5,-40.5 + parent: 2 + - uid: 17690 + components: + - type: Transform + pos: -14.5,-41.5 + parent: 2 + - uid: 17691 + components: + - type: Transform + pos: -14.5,-43.5 + parent: 2 + - uid: 17692 + components: + - type: Transform + pos: -14.5,-44.5 + parent: 2 + - uid: 17693 + components: + - type: Transform + pos: -14.5,-46.5 + parent: 2 + - uid: 17694 + components: + - type: Transform + pos: -14.5,-47.5 + parent: 2 + - uid: 17695 + components: + - type: Transform + pos: -14.5,-49.5 + parent: 2 + - uid: 17696 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -9.5,-47.5 + parent: 2 + - uid: 17697 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -9.5,-49.5 + parent: 2 + - uid: 17698 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -9.5,-41.5 + parent: 2 + - uid: 17699 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -9.5,-43.5 + parent: 2 + - uid: 17700 + components: + - type: Transform + pos: -44.5,-42.5 + parent: 2 + - uid: 17701 + components: + - type: Transform + pos: -45.5,-40.5 + parent: 2 + - uid: 17702 + components: + - type: Transform + pos: -45.5,-39.5 + parent: 2 + - uid: 17703 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -46.5,-36.5 + parent: 2 + - uid: 17704 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -47.5,-33.5 + parent: 2 + - uid: 17705 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -48.5,-32.5 + parent: 2 + - uid: 17706 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -48.5,-31.5 + parent: 2 + - uid: 17707 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -48.5,-30.5 + parent: 2 + - uid: 17708 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -44.5,-49.5 + parent: 2 + - uid: 17709 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -44.5,-50.5 + parent: 2 + - uid: 17710 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -43.5,-51.5 + parent: 2 + - uid: 17711 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -42.5,-51.5 + parent: 2 + - uid: 17712 + components: + - type: Transform + pos: -37.5,-55.5 + parent: 2 + - uid: 17713 + components: + - type: Transform + pos: -37.5,-59.5 + parent: 2 + - uid: 17714 + components: + - type: Transform + pos: -37.5,-63.5 + parent: 2 + - uid: 17715 + components: + - type: Transform + pos: -35.5,-65.5 + parent: 2 + - uid: 17716 + components: + - type: Transform + pos: -31.5,-65.5 + parent: 2 + - uid: 17717 + components: + - type: Transform + pos: -30.5,-65.5 + parent: 2 + - uid: 17718 + components: + - type: Transform + pos: -29.5,-65.5 + parent: 2 + - uid: 17719 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -1.5,-35.5 + parent: 2 + - uid: 17720 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -1.5,-37.5 + parent: 2 + - uid: 17721 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 30.5,-1.5 + parent: 2 + - uid: 17722 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 28.5,-1.5 + parent: 2 + - uid: 17723 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 44.5,17.5 + parent: 2 + - uid: 17724 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 44.5,18.5 + parent: 2 + - uid: 17725 + components: + - type: Transform + pos: 44.5,14.5 + parent: 2 + - uid: 17726 + components: + - type: Transform + pos: 44.5,13.5 + parent: 2 + - uid: 17727 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 45.5,-0.5 + parent: 2 + - uid: 17728 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 44.5,8.5 + parent: 2 + - uid: 17729 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 44.5,7.5 + parent: 2 + - uid: 17730 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 44.5,6.5 + parent: 2 + - uid: 17731 + components: + - type: Transform + pos: 14.5,28.5 + parent: 2 + - uid: 17732 + components: + - type: Transform + pos: 13.5,28.5 + parent: 2 + - uid: 17733 + components: + - type: Transform + pos: 12.5,28.5 + parent: 2 + - uid: 17734 + components: + - type: Transform + pos: 11.5,28.5 + parent: 2 + - uid: 17735 + components: + - type: Transform + pos: 40.5,31.5 + parent: 2 + - uid: 17736 + components: + - type: Transform + pos: 38.5,31.5 + parent: 2 + - uid: 17737 + components: + - type: Transform + pos: 36.5,31.5 + parent: 2 + - uid: 17738 + components: + - type: Transform + pos: 34.5,31.5 + parent: 2 + - uid: 17739 + components: + - type: Transform + pos: 32.5,31.5 + parent: 2 + - uid: 17740 + components: + - type: Transform + pos: 12.5,36.5 + parent: 2 + - uid: 17741 + components: + - type: Transform + pos: 12.5,35.5 + parent: 2 + - uid: 17742 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 12.5,43.5 + parent: 2 + - uid: 17743 + components: + - type: Transform + pos: 19.5,47.5 + parent: 2 + - uid: 17744 + components: + - type: Transform + pos: 19.5,46.5 + parent: 2 + - uid: 17745 + components: + - type: Transform + pos: 21.5,47.5 + parent: 2 + - uid: 17746 + components: + - type: Transform + pos: 21.5,46.5 + parent: 2 + - uid: 17747 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 26.5,41.5 + parent: 2 + - uid: 17748 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 25.5,41.5 + parent: 2 + - uid: 17749 + components: + - type: Transform + pos: 41.5,32.5 + parent: 2 + - uid: 17750 + components: + - type: Transform + pos: 41.5,33.5 + parent: 2 + - uid: 17751 + components: + - type: Transform + pos: 41.5,34.5 + parent: 2 + - uid: 17752 + components: + - type: Transform + pos: 41.5,36.5 + parent: 2 + - uid: 17753 + components: + - type: Transform + pos: 41.5,37.5 + parent: 2 + - uid: 17754 + components: + - type: Transform + pos: 41.5,39.5 + parent: 2 + - uid: 17755 + components: + - type: Transform + pos: 41.5,40.5 + parent: 2 + - uid: 17756 + components: + - type: Transform + pos: 41.5,41.5 + parent: 2 + - uid: 17757 + components: + - type: Transform + pos: 41.5,42.5 + parent: 2 + - uid: 17758 + components: + - type: Transform + pos: 40.5,42.5 + parent: 2 + - uid: 17759 + components: + - type: Transform + pos: 39.5,42.5 + parent: 2 + - uid: 17760 + components: + - type: Transform + pos: 38.5,42.5 + parent: 2 + - uid: 17761 + components: + - type: Transform + pos: 37.5,42.5 + parent: 2 + - uid: 17762 + components: + - type: Transform + pos: 36.5,42.5 + parent: 2 + - uid: 17763 + components: + - type: Transform + pos: 35.5,42.5 + parent: 2 + - uid: 17764 + components: + - type: Transform + pos: 34.5,42.5 + parent: 2 + - uid: 17765 + components: + - type: Transform + pos: 33.5,42.5 + parent: 2 + - uid: 17766 + components: + - type: Transform + pos: 32.5,42.5 + parent: 2 + - uid: 17767 + components: + - type: Transform + pos: 45.5,27.5 + parent: 2 + - uid: 17768 + components: + - type: Transform + pos: 45.5,28.5 + parent: 2 + - uid: 17769 + components: + - type: Transform + pos: 45.5,29.5 + parent: 2 + - uid: 17770 + components: + - type: Transform + pos: 45.5,34.5 + parent: 2 + - uid: 17771 + components: + - type: Transform + pos: 45.5,35.5 + parent: 2 + - uid: 17772 + components: + - type: Transform + pos: 45.5,36.5 + parent: 2 + - uid: 17773 + components: + - type: Transform + pos: 45.5,37.5 + parent: 2 + - uid: 17774 + components: + - type: Transform + pos: 45.5,42.5 + parent: 2 + - uid: 17775 + components: + - type: Transform + pos: 45.5,43.5 + parent: 2 + - uid: 17776 + components: + - type: Transform + pos: 45.5,44.5 + parent: 2 + - uid: 17777 + components: + - type: Transform + pos: 45.5,45.5 + parent: 2 + - uid: 17778 + components: + - type: Transform + pos: 42.5,47.5 + parent: 2 + - uid: 17779 + components: + - type: Transform + pos: 44.5,47.5 + parent: 2 + - uid: 17780 + components: + - type: Transform + pos: 42.5,49.5 + parent: 2 + - uid: 17781 + components: + - type: Transform + pos: 44.5,49.5 + parent: 2 + - uid: 17782 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 36.5,-13.5 + parent: 2 + - uid: 17783 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 38.5,-13.5 + parent: 2 + - uid: 17784 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 43.5,-13.5 + parent: 2 + - uid: 17785 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 45.5,-11.5 + parent: 2 + - uid: 17786 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 45.5,-10.5 + parent: 2 + - uid: 17787 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 45.5,-8.5 + parent: 2 + - uid: 17788 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 45.5,-7.5 + parent: 2 + - uid: 17789 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 47.5,-11.5 + parent: 2 + - uid: 17790 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 47.5,-5.5 + parent: 2 + - uid: 17791 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 47.5,-7.5 + parent: 2 + - uid: 17792 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 46.5,-7.5 + parent: 2 + - uid: 17793 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 47.5,-13.5 + parent: 2 + - uid: 17794 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 47.5,-15.5 + parent: 2 + - uid: 17795 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 46.5,-15.5 + parent: 2 + - uid: 17796 + components: + - type: Transform + pos: -17.5,18.5 + parent: 2 + - uid: 17797 + components: + - type: Transform + pos: -17.5,20.5 + parent: 2 + - uid: 17798 + components: + - type: Transform + pos: -2.5,21.5 + parent: 2 + - uid: 17799 + components: + - type: Transform + pos: -3.5,21.5 + parent: 2 + - uid: 17800 + components: + - type: Transform + pos: -5.5,21.5 + parent: 2 + - uid: 17801 + components: + - type: Transform + pos: -6.5,21.5 + parent: 2 + - uid: 17802 + components: + - type: Transform + pos: -8.5,21.5 + parent: 2 + - uid: 17803 + components: + - type: Transform + pos: -9.5,21.5 + parent: 2 + - uid: 17804 + components: + - type: Transform + pos: -11.5,21.5 + parent: 2 + - uid: 17805 + components: + - type: Transform + pos: -12.5,21.5 + parent: 2 + - uid: 17806 + components: + - type: Transform + pos: -15.5,21.5 + parent: 2 + - uid: 17807 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -15.5,24.5 + parent: 2 + - uid: 17808 + components: + - type: Transform + pos: -17.5,25.5 + parent: 2 + - uid: 17809 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -3.5,25.5 + parent: 2 + - uid: 17810 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -5.5,25.5 + parent: 2 + - uid: 17811 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -6.5,25.5 + parent: 2 + - uid: 17812 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -8.5,25.5 + parent: 2 + - uid: 17813 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -9.5,25.5 + parent: 2 + - uid: 17814 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -12.5,25.5 + parent: 2 + - uid: 17815 + components: + - type: Transform + pos: -14.5,30.5 + parent: 2 + - uid: 17816 + components: + - type: Transform + pos: -16.5,30.5 + parent: 2 + - uid: 17817 + components: + - type: Transform + pos: -11.5,30.5 + parent: 2 + - uid: 17818 + components: + - type: Transform + pos: -13.5,31.5 + parent: 2 + - uid: 17819 + components: + - type: Transform + pos: -8.5,36.5 + parent: 2 + - uid: 17820 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -8.5,40.5 + parent: 2 + - uid: 17821 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -7.5,38.5 + parent: 2 + - uid: 17822 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -22.5,37.5 + parent: 2 + - uid: 17823 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -24.5,37.5 + parent: 2 + - uid: 17824 + components: + - type: Transform + pos: -20.5,43.5 + parent: 2 + - uid: 17825 + components: + - type: Transform + pos: -20.5,44.5 + parent: 2 + - uid: 17826 + components: + - type: Transform + pos: -20.5,45.5 + parent: 2 + - uid: 17827 + components: + - type: Transform + pos: -21.5,45.5 + parent: 2 + - uid: 17828 + components: + - type: Transform + pos: -21.5,46.5 + parent: 2 + - uid: 17829 + components: + - type: Transform + pos: -22.5,46.5 + parent: 2 + - uid: 17830 + components: + - type: Transform + pos: -23.5,46.5 + parent: 2 + - uid: 17831 + components: + - type: Transform + pos: -24.5,46.5 + parent: 2 + - uid: 17832 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -25.5,36.5 + parent: 2 + - uid: 17833 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -25.5,34.5 + parent: 2 + - uid: 17834 + components: + - type: Transform + pos: -35.5,39.5 + parent: 2 + - uid: 17835 + components: + - type: Transform + pos: -35.5,36.5 + parent: 2 + - uid: 17836 + components: + - type: Transform + pos: -35.5,33.5 + parent: 2 + - uid: 17837 + components: + - type: Transform + pos: -38.5,39.5 + parent: 2 + - uid: 17838 + components: + - type: Transform + pos: -40.5,38.5 + parent: 2 + - uid: 17839 + components: + - type: Transform + pos: -41.5,38.5 + parent: 2 + - uid: 17840 + components: + - type: Transform + pos: -43.5,34.5 + parent: 2 + - uid: 17841 + components: + - type: Transform + pos: -43.5,33.5 + parent: 2 + - uid: 17842 + components: + - type: Transform + pos: -43.5,32.5 + parent: 2 + - uid: 17843 + components: + - type: Transform + pos: -38.5,30.5 + parent: 2 + - uid: 17844 + components: + - type: Transform + pos: -38.5,28.5 + parent: 2 + - uid: 17845 + components: + - type: Transform + pos: -37.5,27.5 + parent: 2 + - uid: 17846 + components: + - type: Transform + pos: -35.5,27.5 + parent: 2 + - uid: 17847 + components: + - type: Transform + pos: -40.5,23.5 + parent: 2 + - uid: 17848 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -34.5,28.5 + parent: 2 + - uid: 17849 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -34.5,30.5 + parent: 2 + - uid: 17850 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -3.5,35.5 + parent: 2 + - uid: 17851 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -3.5,32.5 + parent: 2 + - uid: 17852 + components: + - type: Transform + pos: 6.5,36.5 + parent: 2 + - uid: 17853 + components: + - type: Transform + pos: 5.5,36.5 + parent: 2 + - uid: 17854 + components: + - type: Transform + pos: 4.5,36.5 + parent: 2 + - uid: 17855 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 7.5,45.5 + parent: 2 + - uid: 17856 + components: + - type: Transform + pos: -12.5,47.5 + parent: 2 + - uid: 17857 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -12.5,50.5 + parent: 2 + - uid: 17858 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -12.5,51.5 + parent: 2 + - uid: 17859 + components: + - type: Transform + pos: -9.5,55.5 + parent: 2 + - uid: 17860 + components: + - type: Transform + pos: -4.5,57.5 + parent: 2 + - uid: 17861 + components: + - type: Transform + pos: -2.5,57.5 + parent: 2 + - uid: 17862 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 5.5,48.5 + parent: 2 + - uid: 17863 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 7.5,51.5 + parent: 2 + - uid: 17864 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 11.5,45.5 + parent: 2 + - uid: 17865 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 12.5,46.5 + parent: 2 + - uid: 17866 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 14.5,46.5 + parent: 2 + - uid: 17867 + components: + - type: Transform + pos: 11.5,55.5 + parent: 2 + - uid: 17868 + components: + - type: Transform + pos: 11.5,54.5 + parent: 2 + - uid: 17869 + components: + - type: Transform + pos: 11.5,53.5 + parent: 2 + - uid: 17870 + components: + - type: Transform + pos: 6.5,57.5 + parent: 2 + - uid: 17871 + components: + - type: Transform + pos: 3.5,53.5 + parent: 2 + - uid: 17872 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 0.5,57.5 + parent: 2 + - uid: 17873 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 1.5,57.5 + parent: 2 + - uid: 17874 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 1.5,54.5 + parent: 2 + - uid: 17875 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 0.5,54.5 + parent: 2 + - uid: 17876 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 8.5,60.5 + parent: 2 + - uid: 17877 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 8.5,61.5 + parent: 2 + - uid: 17878 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 7.5,61.5 + parent: 2 + - uid: 17879 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 7.5,62.5 + parent: 2 + - uid: 17880 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 5.5,62.5 + parent: 2 + - uid: 17881 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 4.5,62.5 + parent: 2 + - uid: 17882 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 4.5,63.5 + parent: 2 + - uid: 17883 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 3.5,63.5 + parent: 2 + - uid: 17884 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 2.5,63.5 + parent: 2 + - uid: 17885 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 1.5,63.5 + parent: 2 + - uid: 17886 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 0.5,63.5 + parent: 2 + - uid: 17887 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -0.5,63.5 + parent: 2 + - uid: 17888 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -1.5,63.5 + parent: 2 + - uid: 17889 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -2.5,63.5 + parent: 2 + - uid: 17890 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -2.5,62.5 + parent: 2 + - uid: 17891 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -3.5,62.5 + parent: 2 + - uid: 17892 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -5.5,62.5 + parent: 2 + - uid: 17893 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -5.5,61.5 + parent: 2 + - uid: 17894 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -6.5,61.5 + parent: 2 + - uid: 17895 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -6.5,60.5 + parent: 2 + - uid: 17896 + components: + - type: Transform + pos: -2.5,68.5 + parent: 2 + - uid: 17897 + components: + - type: Transform + pos: -3.5,68.5 + parent: 2 + - uid: 17898 + components: + - type: Transform + pos: 5.5,68.5 + parent: 2 + - uid: 17899 + components: + - type: Transform + pos: 2.5,73.5 + parent: 2 + - uid: 17900 + components: + - type: Transform + pos: 1.5,73.5 + parent: 2 + - uid: 17901 + components: + - type: Transform + pos: 0.5,73.5 + parent: 2 + - uid: 17902 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -0.5,86.5 + parent: 2 + - uid: 17903 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 0.5,86.5 + parent: 2 + - uid: 17904 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 1.5,86.5 + parent: 2 + - uid: 17905 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 2.5,86.5 + parent: 2 + - uid: 17906 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 3.5,86.5 + parent: 2 + - uid: 17907 + components: + - type: Transform + pos: 2.5,81.5 + parent: 2 + - uid: 17908 + components: + - type: Transform + pos: 0.5,81.5 + parent: 2 + - uid: 17909 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 20.5,-12.5 + parent: 2 + - uid: 17910 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 19.5,-12.5 + parent: 2 + - uid: 17911 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 18.5,-12.5 + parent: 2 + - uid: 17912 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 14.5,-12.5 + parent: 2 + - uid: 17913 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 12.5,-17.5 + parent: 2 + - uid: 17914 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 14.5,-17.5 + parent: 2 + - uid: 17915 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 17.5,-21.5 + parent: 2 + - uid: 17916 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 19.5,-21.5 + parent: 2 + - uid: 17917 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 22.5,-21.5 + parent: 2 + - uid: 17918 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 23.5,-21.5 + parent: 2 + - uid: 17919 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 28.5,-22.5 + parent: 2 + - uid: 17920 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 29.5,-22.5 + parent: 2 + - uid: 17921 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 34.5,-22.5 + parent: 2 + - uid: 17922 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 33.5,-22.5 + parent: 2 + - uid: 17923 + components: + - type: Transform + pos: 39.5,-15.5 + parent: 2 + - uid: 17924 + components: + - type: Transform + pos: 39.5,-17.5 + parent: 2 + - uid: 17925 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 47.5,-22.5 + parent: 2 + - uid: 17926 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 47.5,-23.5 + parent: 2 + - uid: 17927 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 47.5,-24.5 + parent: 2 + - uid: 17928 + components: + - type: Transform + pos: 48.5,-30.5 + parent: 2 + - uid: 17929 + components: + - type: Transform + pos: 48.5,-32.5 + parent: 2 + - uid: 17930 + components: + - type: Transform + pos: 41.5,-26.5 + parent: 2 + - uid: 17931 + components: + - type: Transform + pos: 38.5,-26.5 + parent: 2 + - uid: 17932 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 6.5,-20.5 + parent: 2 + - uid: 17933 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 4.5,-28.5 + parent: 2 + - uid: 17934 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 8.5,-28.5 + parent: 2 + - uid: 17935 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 9.5,-28.5 + parent: 2 + - uid: 17936 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 10.5,-28.5 + parent: 2 + - uid: 17937 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 11.5,-32.5 + parent: 2 + - uid: 17938 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 4.5,-20.5 + parent: 2 + - uid: 17939 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 10.5,-20.5 + parent: 2 + - uid: 17940 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 11.5,-19.5 + parent: 2 + - uid: 17941 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 3.5,-39.5 + parent: 2 + - uid: 17942 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 3.5,-42.5 + parent: 2 + - uid: 17943 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 2.5,-43.5 + parent: 2 + - uid: 17944 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 1.5,-43.5 + parent: 2 + - uid: 17945 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 4.5,-43.5 + parent: 2 + - uid: 17946 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 7.5,-43.5 + parent: 2 + - uid: 17947 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 9.5,-42.5 + parent: 2 + - uid: 17948 + components: + - type: Transform + pos: 2.5,-47.5 + parent: 2 + - uid: 17949 + components: + - type: Transform + pos: 3.5,-47.5 + parent: 2 + - uid: 17950 + components: + - type: Transform + pos: 4.5,-47.5 + parent: 2 + - uid: 17951 + components: + - type: Transform + pos: 5.5,-47.5 + parent: 2 + - uid: 17952 + components: + - type: Transform + pos: 5.5,-48.5 + parent: 2 + - uid: 17953 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 9.5,-46.5 + parent: 2 + - uid: 17954 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 9.5,-48.5 + parent: 2 + - uid: 17955 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 9.5,-51.5 + parent: 2 + - uid: 17956 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 5.5,-54.5 + parent: 2 + - uid: 17957 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 5.5,-56.5 + parent: 2 + - uid: 17958 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 11.5,-49.5 + parent: 2 + - uid: 17959 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 12.5,-49.5 + parent: 2 + - uid: 17960 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 13.5,-49.5 + parent: 2 + - uid: 17961 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 33.5,-54.5 + parent: 2 + - uid: 17962 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 33.5,-55.5 + parent: 2 + - uid: 17963 + components: + - type: Transform + pos: -43.5,20.5 + parent: 2 + - uid: 17964 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 15.5,-48.5 + parent: 2 + - uid: 17965 + components: + - type: Transform + pos: 20.5,-52.5 + parent: 2 + - uid: 17966 + components: + - type: Transform + pos: 21.5,-53.5 + parent: 2 + - uid: 17967 + components: + - type: Transform + pos: 21.5,-52.5 + parent: 2 + - uid: 17968 + components: + - type: Transform + pos: 21.5,-54.5 + parent: 2 + - uid: 17969 + components: + - type: Transform + pos: 21.5,-55.5 + parent: 2 + - uid: 17970 + components: + - type: Transform + pos: 21.5,-57.5 + parent: 2 + - uid: 17971 + components: + - type: Transform + pos: 21.5,-58.5 + parent: 2 + - uid: 17972 + components: + - type: Transform + pos: 21.5,-59.5 + parent: 2 + - uid: 17973 + components: + - type: Transform + pos: 21.5,-61.5 + parent: 2 + - uid: 17974 + components: + - type: Transform + pos: 21.5,-62.5 + parent: 2 + - uid: 17975 + components: + - type: Transform + pos: 21.5,-63.5 + parent: 2 + - uid: 17976 + components: + - type: Transform + pos: 21.5,-64.5 + parent: 2 + - uid: 17977 + components: + - type: Transform + pos: 24.5,-65.5 + parent: 2 + - uid: 17978 + components: + - type: Transform + pos: 26.5,-65.5 + parent: 2 + - uid: 17979 + components: + - type: Transform + pos: 27.5,-65.5 + parent: 2 + - uid: 17980 + components: + - type: Transform + pos: 28.5,-65.5 + parent: 2 + - uid: 17981 + components: + - type: Transform + pos: 30.5,-65.5 + parent: 2 + - uid: 17982 + components: + - type: Transform + pos: 31.5,-65.5 + parent: 2 + - uid: 17983 + components: + - type: Transform + pos: 32.5,-65.5 + parent: 2 + - uid: 17984 + components: + - type: Transform + pos: 33.5,-57.5 + parent: 2 + - uid: 17985 + components: + - type: Transform + pos: 33.5,-58.5 + parent: 2 + - uid: 17986 + components: + - type: Transform + pos: 33.5,-59.5 + parent: 2 + - uid: 17987 + components: + - type: Transform + pos: 33.5,-61.5 + parent: 2 + - uid: 17988 + components: + - type: Transform + pos: 33.5,-62.5 + parent: 2 + - uid: 17989 + components: + - type: Transform + pos: 33.5,-63.5 + parent: 2 + - uid: 17990 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 39.5,-48.5 + parent: 2 + - uid: 17991 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 38.5,-47.5 + parent: 2 + - uid: 17992 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 48.5,-31.5 + parent: 2 + - uid: 17993 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -6.5,-34.5 + parent: 2 + - uid: 17994 + components: + - type: Transform + pos: 33.5,-53.5 + parent: 2 + - uid: 17995 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 8.5,36.5 + parent: 2 + - uid: 17996 + components: + - type: Transform + pos: -9.5,-25.5 + parent: 2 + - uid: 22835 + components: + - type: Transform + pos: -35.5,-0.5 + parent: 2 +- proto: RemoteSignaller + entities: + - uid: 17997 + components: + - type: Transform + pos: -36.69524,-30.216236 + parent: 2 + - uid: 17998 + components: + - type: Transform + pos: -37.428818,-51.94367 + parent: 2 + - uid: 17999 + components: + - type: Transform + pos: -37.584217,-51.813133 + parent: 2 + - uid: 18000 + components: + - type: Transform + pos: -37.354225,-51.757187 + parent: 2 + - uid: 18001 + components: + - type: Transform + pos: -37.47233,-51.63287 + parent: 2 + - uid: 18002 + components: + - type: Transform + pos: 36.77558,-46.458874 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 15636: + - Pressed: Trigger +- proto: ResearchAndDevelopmentServer + entities: + - uid: 18003 + components: + - type: Transform + pos: -24.5,-37.5 + parent: 2 +- proto: ResearchDisk + entities: + - uid: 18004 + components: + - type: Transform + pos: -25.474854,-39.43875 + parent: 2 + - uid: 18005 + components: + - type: Transform + pos: -23.451546,-39.448074 + parent: 2 +- proto: RevolverCapGun + entities: + - uid: 18006 + components: + - type: Transform + pos: 38.38097,-7.897862 + parent: 2 +- proto: RiotShield + entities: + - uid: 18007 + components: + - type: Transform + pos: -12.615384,40.555973 + parent: 2 + - uid: 18008 + components: + - type: Transform + pos: -12.424128,40.64512 + parent: 2 +- proto: RitualDagger + entities: + - uid: 18009 + components: + - type: Transform + pos: 15.515292,33.45173 + parent: 2 +- proto: RollerBed + entities: + - uid: 18010 + components: + - type: Transform + pos: 44.5,-34.5 + parent: 2 + - uid: 18011 + components: + - type: Transform + pos: 45.5,-34.5 + parent: 2 + - uid: 18012 + components: + - type: Transform + pos: 46.5,-34.5 + parent: 2 + - uid: 18013 + components: + - type: Transform + pos: 47.5,-34.5 + parent: 2 + - uid: 18014 + components: + - type: Transform + pos: 22.5,-28.5 + parent: 2 + - uid: 18015 + components: + - type: Transform + pos: 21.5,-28.5 + parent: 2 + - uid: 18016 + components: + - type: Transform + pos: 20.5,-28.5 + parent: 2 +- proto: RollingPin + entities: + - uid: 18017 + components: + - type: Transform + pos: -42.493908,32.449837 + parent: 2 + - uid: 18018 + components: + - type: Transform + pos: 26.568108,18.219398 + parent: 2 +- proto: RubberStampApproved + entities: + - uid: 18019 + components: + - type: Transform + pos: -2.6808589,14.656691 + parent: 2 + - uid: 18020 + components: + - type: Transform + pos: -39.564224,8.768915 + parent: 2 + - uid: 18021 + components: + - type: Transform + pos: -23.592323,40.68254 + parent: 2 + - uid: 18022 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -12.577986,-23.429962 + parent: 2 +- proto: RubberStampCaptain + entities: + - uid: 18023 + components: + - type: Transform + pos: -8.266708,55.473656 + parent: 2 +- proto: RubberStampClown + entities: + - uid: 18024 + components: + - type: Transform + pos: 40.318123,12.6082115 + parent: 2 +- proto: RubberStampCMO + entities: + - uid: 18025 + components: + - type: Transform + pos: 25.30877,-19.556654 + parent: 2 +- proto: RubberStampDenied + entities: + - uid: 18026 + components: + - type: Transform + pos: -2.8113947,14.84317 + parent: 2 + - uid: 18027 + components: + - type: Transform + pos: -39.303154,8.852831 + parent: 2 + - uid: 18028 + components: + - type: Transform + pos: -23.401066,40.548824 + parent: 2 + - uid: 18029 + components: + - type: Transform + pos: -12.7514925,-23.34776 + parent: 2 +- proto: RubberStampQm + entities: + - uid: 18030 + components: + - type: Transform + pos: -27.790066,5.535928 + parent: 2 +- proto: SalvageCanisterSpawner + entities: + - uid: 18031 + components: + - type: Transform + pos: -36.5,-17.5 + parent: 2 + - uid: 18032 + components: + - type: Transform + pos: -36.5,-16.5 + parent: 2 + - uid: 18033 + components: + - type: Transform + pos: -28.5,-46.5 + parent: 2 + - uid: 18034 + components: + - type: Transform + pos: -21.5,-39.5 + parent: 2 + - uid: 18035 + components: + - type: Transform + pos: -19.5,-49.5 + parent: 2 + - uid: 18036 + components: + - type: Transform + pos: 44.5,21.5 + parent: 2 + - uid: 18037 + components: + - type: Transform + pos: 4.5,22.5 + parent: 2 + - uid: 18038 + components: + - type: Transform + pos: 25.5,25.5 + parent: 2 + - uid: 18039 + components: + - type: Transform + pos: -11.5,45.5 + parent: 2 + - uid: 18040 + components: + - type: Transform + pos: 9.5,75.5 + parent: 2 +- proto: SalvageMagnet + entities: + - uid: 18041 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -46.5,-19.5 + parent: 2 +- proto: SalvageMaterialCrateSpawner + entities: + - uid: 18042 + components: + - type: Transform + pos: -40.5,-5.5 + parent: 2 +- proto: Saw + entities: + - uid: 18043 + components: + - type: Transform + pos: 19.268372,-16.508553 + parent: 2 +- proto: SawElectric + entities: + - uid: 18044 + components: + - type: Transform + pos: 20.377926,-16.564495 + parent: 2 +- proto: Scalpel + entities: + - uid: 18045 + components: + - type: Transform + pos: 20.433872,-16.228832 + parent: 2 +- proto: ScalpelAdvanced + entities: + - uid: 18046 + components: + - type: Transform + pos: -33.46318,25.802137 + parent: 2 +- proto: ScalpelShiv + entities: + - uid: 18047 + components: + - type: Transform + pos: -3.5694814,-14.4214115 + parent: 2 +- proto: Screwdriver + entities: + - uid: 18048 + components: + - type: Transform + pos: 4.509079,15.69581 + parent: 2 + - uid: 18049 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -37.621513,-50.706684 + parent: 2 + - uid: 18050 + components: + - type: Transform + pos: -19.541893,-41.382526 + parent: 2 + - uid: 18051 + components: + - type: Transform + pos: 23.560352,36.23436 + parent: 2 + - uid: 18052 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -14.379181,34.68983 + parent: 2 + - uid: 18053 + components: + - type: Transform + pos: 4.5338135,44.37522 + parent: 2 + - uid: 18054 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -6.5661516,80.44264 + parent: 2 + - uid: 18055 + components: + - type: Transform + pos: 4.4835577,-18.278255 + parent: 2 + - uid: 18056 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -41.694046,-32.63298 + parent: 2 +- proto: SecurityTechFab + entities: + - uid: 18057 + components: + - type: Transform + pos: -11.5,38.5 + parent: 2 +- proto: SeedExtractor + entities: + - uid: 18058 + components: + - type: Transform + pos: -1.5,-4.5 + parent: 2 + - uid: 18059 + components: + - type: Transform + pos: 32.5,18.5 + parent: 2 + - uid: 18060 + components: + - type: Transform + pos: -42.5,30.5 + parent: 2 +- proto: SheetGlass + entities: + - uid: 18061 + components: + - type: Transform + pos: 7.527253,85.57397 + parent: 2 + - uid: 18062 + components: + - type: Transform + pos: -6.362105,74.75126 + parent: 2 + - uid: 18063 + components: + - type: Transform + pos: -25.313526,-24.474699 + parent: 2 + - uid: 18064 + components: + - type: Transform + pos: -36.37923,-29.59225 + parent: 2 +- proto: SheetGlass1 + entities: + - uid: 18065 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 43.30182,-37.681477 + parent: 2 +- proto: SheetGlass10 + entities: + - uid: 18066 + components: + - type: Transform + pos: 22.42968,-44.351597 + parent: 2 + - uid: 18067 + components: + - type: Transform + pos: 19.614388,-18.401928 + parent: 2 + - uid: 18068 + components: + - type: Transform + pos: 34.464607,-14.403328 + parent: 2 + - uid: 18069 + components: + - type: Transform + pos: -10.411487,-55.40177 + parent: 2 + - uid: 18070 + components: + - type: Transform + pos: 22.547783,-44.419975 + parent: 2 +- proto: SheetPaper + entities: + - uid: 18071 + components: + - type: Transform + pos: -36.676533,-64.364944 + parent: 2 + - uid: 18072 + components: + - type: Transform + pos: -36.3412,-64.2183 + parent: 2 +- proto: SheetPGlass1 + entities: + - uid: 18073 + components: + - type: Transform + pos: -22.560863,-30.476324 + parent: 2 + - uid: 18074 + components: + - type: Transform + pos: -22.574848,-30.44835 + parent: 2 + - uid: 18075 + components: + - type: Transform + pos: -22.574848,-30.44835 + parent: 2 + - uid: 18076 + components: + - type: Transform + pos: -22.574848,-30.44835 + parent: 2 + - uid: 18077 + components: + - type: Transform + pos: -22.574848,-30.44835 + parent: 2 +- proto: SheetPlasma + entities: + - uid: 18078 + components: + - type: Transform + pos: 10.434816,-59.358215 + parent: 2 + - uid: 18079 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -47.55043,-30.410664 + parent: 2 + - uid: 18080 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -47.36395,-30.606468 + parent: 2 + - uid: 18081 + components: + - type: Transform + pos: 7.5232,44.594135 + parent: 2 + - uid: 18082 + components: + - type: Transform + pos: -5.7939453,74.67647 + parent: 2 +- proto: SheetPlasma1 + entities: + - uid: 18083 + components: + - type: Transform + pos: -27.473106,-16.434982 + parent: 2 + - uid: 18084 + components: + - type: Transform + pos: -36.401535,-30.328123 + parent: 2 + - uid: 18085 + components: + - type: Transform + pos: -5.6273484,-30.952227 + parent: 2 + - uid: 18086 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 40.40979,-34.264156 + parent: 2 + - uid: 18087 + components: + - type: Transform + pos: -13.482822,-61.38449 + parent: 2 +- proto: SheetPlasteel1 + entities: + - uid: 18088 + components: + - type: Transform + pos: -45.546013,19.49592 + parent: 2 + - uid: 18089 + components: + - type: Transform + pos: -58.5,30.5 + parent: 2 + - uid: 18090 + components: + - type: Transform + pos: -59.5,31.5 + parent: 2 + - uid: 18091 + components: + - type: Transform + pos: -60.5,31.5 + parent: 2 + - uid: 18092 + components: + - type: Transform + pos: -63.5,29.5 + parent: 2 + - uid: 18093 + components: + - type: Transform + pos: -69.46847,19.457985 + parent: 2 +- proto: SheetPlasteel10 + entities: + - uid: 18094 + components: + - type: Transform + pos: 22.516705,-44.73699 + parent: 2 +- proto: SheetPlastic + entities: + - uid: 18095 + components: + - type: Transform + pos: -36.236694,-29.348978 + parent: 2 + - uid: 18096 + components: + - type: Transform + pos: -25.938526,-24.443449 + parent: 2 +- proto: SheetSteel + entities: + - uid: 18097 + components: + - type: Transform + pos: -26.563526,-24.443449 + parent: 2 + - uid: 18098 + components: + - type: Transform + pos: 22.53535,-44.065662 + parent: 2 + - uid: 18099 + components: + - type: Transform + pos: 22.53535,-44.065662 + parent: 2 + - uid: 18100 + components: + - type: Transform + pos: 22.53535,-44.065662 + parent: 2 + - uid: 18101 + components: + - type: Transform + pos: 8.5342455,84.55299 + parent: 2 + - uid: 18102 + components: + - type: Transform + pos: -36.692863,-29.365276 + parent: 2 +- proto: SheetSteel1 + entities: + - uid: 18103 + components: + - type: Transform + pos: -18.463707,-14.5383625 + parent: 2 + - uid: 18104 + components: + - type: Transform + pos: -62.5,30.5 + parent: 2 + - uid: 18105 + components: + - type: Transform + pos: 30.525955,-52.2981 + parent: 2 + - uid: 18106 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 39.309597,-39.80526 + parent: 2 + - uid: 18107 + components: + - type: Transform + pos: 44.5,-36.5 + parent: 2 +- proto: SheetSteel10 + entities: + - uid: 18108 + components: + - type: Transform + pos: 19.399937,-18.1968 + parent: 2 + - uid: 18109 + components: + - type: Transform + pos: 33.49695,-14.397692 + parent: 2 +- proto: SheetUranium + entities: + - uid: 18110 + components: + - type: Transform + pos: 10.6910715,-59.547028 + parent: 2 +- proto: ShellTranquilizer + entities: + - uid: 18111 + components: + - type: Transform + pos: -26.556175,-48.50991 + parent: 2 + - uid: 18112 + components: + - type: Transform + pos: -28.400486,-47.378624 + parent: 2 +- proto: ShowcaseRobot + entities: + - uid: 18113 + components: + - type: Transform + pos: -4.5,85.5 + parent: 2 + - uid: 18114 + components: + - type: Transform + pos: 1.5,69.5 + parent: 2 +- proto: ShowcaseRobotMarauder + entities: + - uid: 18115 + components: + - type: Transform + pos: -5.5,84.5 + parent: 2 +- proto: ShuttersNormal + entities: + - uid: 18116 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -10.5,4.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18239 + - uid: 18117 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -10.5,5.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18239 + - uid: 18118 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -3.5,-10.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18240 + - uid: 18119 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -2.5,-10.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18240 + - uid: 18120 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -31.5,11.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18243 + - uid: 18121 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -31.5,12.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18243 + - uid: 18122 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -31.5,-12.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18277 + - 18276 + - uid: 18123 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -31.5,-13.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18277 + - 18276 + - uid: 18124 + components: + - type: Transform + pos: -29.5,-19.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18278 + - uid: 18125 + components: + - type: Transform + pos: -30.5,-19.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18278 + - uid: 18126 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -40.5,-35.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18274 + - 18275 + - uid: 18127 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -40.5,-36.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18274 + - 18275 + - uid: 18128 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -31.5,-37.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18246 + - 18247 + - uid: 18129 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -31.5,-38.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18246 + - 18247 + - uid: 18130 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -31.5,-39.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18246 + - 18247 + - uid: 18131 + components: + - type: Transform + pos: 20.5,15.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18284 + - uid: 18132 + components: + - type: Transform + pos: 21.5,15.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18284 + - uid: 18133 + components: + - type: Transform + pos: 24.5,15.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18284 + - uid: 18134 + components: + - type: Transform + pos: 25.5,15.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18284 + - uid: 18135 + components: + - type: Transform + pos: 26.5,15.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18284 + - uid: 18136 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 27.5,16.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18284 + - uid: 18137 + components: + - type: Transform + pos: -12.5,37.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18260 + - 18311 + - uid: 18138 + components: + - type: Transform + pos: -15.5,37.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18260 + - 18311 + - uid: 18139 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -10.5,39.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18260 + - 18311 + - uid: 18140 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 33.5,-49.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18292 + - 18272 + - uid: 18141 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 33.5,-48.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18292 + - 18272 + - uid: 18142 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 33.5,-50.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18292 + - 18272 +- proto: ShuttersNormalOpen + entities: + - uid: 18143 + components: + - type: Transform + pos: 21.5,3.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18268 + - uid: 18144 + components: + - type: Transform + pos: 14.5,-17.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18269 + - uid: 18145 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 26.5,41.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18295 + - uid: 18146 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 3.5,25.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18263 + - uid: 18147 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 3.5,27.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18263 + - uid: 18148 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -10.5,17.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18309 + - uid: 18149 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -11.5,17.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18309 + - uid: 18150 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -12.5,17.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18309 + - uid: 18151 + components: + - type: Transform + pos: -3.5,12.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18308 + - uid: 18152 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -31.5,5.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18306 + - uid: 18153 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -26.5,6.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18307 + - uid: 18154 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -31.5,7.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18306 + - uid: 18155 + components: + - type: Transform + pos: -15.5,-25.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18304 + - uid: 18156 + components: + - type: Transform + pos: -17.5,-25.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18304 + - uid: 18157 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -37.5,-59.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18303 + - uid: 18158 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -37.5,-63.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18301 + - uid: 18159 + components: + - type: Transform + pos: -35.5,-65.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18301 + - uid: 18160 + components: + - type: Transform + pos: -31.5,-65.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18300 + - uid: 18161 + components: + - type: Transform + pos: -30.5,-65.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18300 + - uid: 18162 + components: + - type: Transform + pos: -29.5,-65.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18300 + - uid: 18163 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 37.5,2.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18296 + - uid: 18164 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 37.5,1.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18296 + - uid: 18165 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 37.5,0.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18296 + - uid: 18166 + components: + - type: Transform + pos: 33.5,12.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18297 + - uid: 18167 + components: + - type: Transform + pos: 34.5,12.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18297 + - uid: 18168 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 44.5,17.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18271 + - uid: 18169 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 39.5,17.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18271 + - uid: 18170 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 44.5,14.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18298 + - uid: 18171 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 44.5,13.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18298 + - uid: 18172 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 44.5,8.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18296 + - uid: 18173 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 44.5,7.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18296 + - uid: 18174 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 44.5,6.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18296 + - uid: 18175 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 45.5,-0.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18299 + - uid: 18176 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 25.5,41.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18295 + - uid: 18177 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 12.5,43.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18294 + - uid: 18178 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 12.5,35.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18293 + - uid: 18179 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 12.5,36.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18293 + - uid: 18180 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -17.5,20.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18273 + - uid: 18181 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -12.5,50.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18302 + - uid: 18182 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -12.5,51.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18302 + - uid: 18183 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 5.5,47.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18282 + - uid: 18184 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 5.5,48.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18282 + - uid: 18185 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 10.5,49.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18282 + - uid: 18186 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 7.5,51.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18282 + - uid: 18187 + components: + - type: Transform + pos: 7.5,45.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18282 + - uid: 18188 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 11.5,53.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18285 + - uid: 18189 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 11.5,54.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18285 + - uid: 18190 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 11.5,55.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18285 + - uid: 18191 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 42.5,-20.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18288 + - uid: 18192 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 42.5,-21.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18288 + - uid: 18193 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 42.5,-22.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18288 + - uid: 18194 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 42.5,-23.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18288 + - uid: 18195 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 42.5,-25.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18288 + - uid: 18196 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 6.5,-28.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18289 + - uid: 18197 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 5.5,-28.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18289 + - uid: 18198 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 11.5,-30.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18289 + - uid: 18199 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 7.5,-28.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18289 + - uid: 18200 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 4.5,-28.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18289 + - uid: 18201 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 8.5,-28.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18289 + - uid: 18202 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 9.5,-28.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18289 + - uid: 18203 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 10.5,-28.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18289 + - uid: 18204 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 11.5,-32.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18289 + - uid: 18205 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 9.5,-51.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18310 + - uid: 18206 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 13.5,-49.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18310 + - uid: 18207 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 12.5,-49.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18310 + - uid: 18208 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 11.5,-49.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18310 + - uid: 18209 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 44.5,18.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18271 + - uid: 18210 + components: + - type: Transform + pos: 22.5,-21.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18305 + - uid: 18211 + components: + - type: Transform + pos: 23.5,-21.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18305 + - uid: 18212 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -17.5,18.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18273 + - uid: 18213 + components: + - type: Transform + pos: 22.5,3.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18268 + - uid: 18214 + components: + - type: Transform + pos: 23.5,3.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18268 + - uid: 18215 + components: + - type: Transform + pos: 12.5,-17.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18269 +- proto: ShuttersRadiationOpen + entities: + - uid: 18216 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -3.5,-68.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18265 + - uid: 18217 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -3.5,-69.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18265 + - uid: 18218 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -3.5,-70.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18265 + - uid: 18219 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 4.5,-68.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18265 + - uid: 18220 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 4.5,-69.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18265 + - uid: 18221 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 4.5,-70.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18265 +- proto: ShuttersWindow + entities: + - uid: 18222 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -49.5,-22.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18245 + - uid: 18223 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -49.5,-21.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18245 + - uid: 18224 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -49.5,-20.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18245 + - uid: 18225 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -49.5,-19.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18245 + - uid: 18226 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -49.5,-18.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18245 + - uid: 18227 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -49.5,-17.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18245 + - uid: 18228 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -49.5,-16.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18245 +- proto: ShuttersWindowOpen + entities: + - uid: 18229 + components: + - type: Transform + pos: -11.5,-33.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18248 + - uid: 18230 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -14.5,-36.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18249 + - uid: 18231 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -14.5,-39.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18250 + - uid: 18232 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -14.5,-42.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18251 + - uid: 18233 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -14.5,-45.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18252 + - uid: 18234 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -14.5,-48.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18253 + - uid: 18235 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -9.5,-42.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18254 + - uid: 18236 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 3.5,46.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18282 + - uid: 18237 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 3.5,50.5 + parent: 2 + - type: DeviceLinkSink + links: + - 18282 +- proto: SignalButton + entities: + - uid: 18238 + components: + - type: MetaData + name: Espaçar + - type: Transform + rot: -1.5707963267948966 rad + pos: -19.502998,-33.73403 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 1001: + - Pressed: Toggle + 1002: + - Pressed: Toggle + - uid: 18239 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -10.5,6.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 18117: + - Pressed: Toggle + 18116: + - Pressed: Toggle + - uid: 18240 + components: + - type: Transform + pos: -4.5,-10.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 18118: + - Pressed: Toggle + 18119: + - Pressed: Toggle + - uid: 18241 + components: + - type: Transform + pos: -44.30047,-0.23135054 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 998: + - Pressed: Toggle + - uid: 18242 + components: + - type: Transform + pos: -44.824947,-0.23135054 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 999: + - Pressed: Toggle + - uid: 18243 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -31.5,9.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 18120: + - Pressed: Toggle + 18121: + - Pressed: Toggle + - uid: 18244 + components: + - type: Transform + pos: -40.389587,15.495882 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 1000: + - Pressed: Toggle + - uid: 18245 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -38.781517,-17.427288 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 18228: + - Pressed: Toggle + 18227: + - Pressed: Toggle + 18226: + - Pressed: Toggle + 18225: + - Pressed: Toggle + 18224: + - Pressed: Toggle + 18223: + - Pressed: Toggle + 18222: + - Pressed: Toggle + - uid: 18246 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -31.5,-41.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 18130: + - Pressed: Toggle + 18129: + - Pressed: Toggle + 18128: + - Pressed: Toggle + - uid: 18247 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -31.5,-41.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 18130: + - Pressed: Toggle + 18129: + - Pressed: Toggle + 18128: + - Pressed: Toggle + - uid: 18248 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -10.5,-34.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 18229: + - Pressed: Toggle + - uid: 18249 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -13.5,-35.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 18230: + - Pressed: Toggle + - uid: 18250 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -13.5,-38.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 18231: + - Pressed: Toggle + - uid: 18251 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -13.5,-41.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 18232: + - Pressed: Toggle + - uid: 18252 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -13.5,-44.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 18233: + - Pressed: Toggle + - uid: 18253 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -13.5,-47.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 18234: + - Pressed: Toggle + - uid: 18254 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -9.5,-40.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 18235: + - Pressed: Toggle + - uid: 18255 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -38.5,-45.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 1007: + - Pressed: Toggle + 1006: + - Pressed: Toggle + 1005: + - Pressed: Toggle + - uid: 18256 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -38.5,-45.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 1007: + - Pressed: Toggle + 1006: + - Pressed: Toggle + 1005: + - Pressed: Toggle + - uid: 18257 + components: + - type: MetaData + name: Entrada Sul + - type: Transform + rot: 3.141592653589793 rad + pos: -6.633511,34.39179 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 1017: + - Pressed: Toggle + - uid: 18258 + components: + - type: MetaData + name: Entrada Norte + - type: Transform + rot: 3.141592653589793 rad + pos: -6.3164945,34.39179 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 1018: + - Pressed: Toggle + 1019: + - Pressed: Toggle + - uid: 18259 + components: + - type: MetaData + name: Boltar Portas + - type: Transform + pos: -6.475003,34.690155 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 472: + - Pressed: DoorBolt + 473: + - Pressed: DoorBolt + - uid: 18260 + components: + - type: Transform + pos: -17.5,41.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 18138: + - Pressed: Toggle + 18137: + - Pressed: Toggle + 18139: + - Pressed: Toggle + - uid: 18261 + components: + - type: MetaData + name: Fechar entrada + - type: Transform + rot: -1.5707963267948966 rad + pos: 7.4996314,-18.34956 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 1024: + - Pressed: Toggle + 1025: + - Pressed: Toggle + 1026: + - Pressed: Toggle + - uid: 18262 + components: + - type: MetaData + name: Fechar med + - type: Transform + rot: -1.5707963267948966 rad + pos: 7.4996314,-18.62928 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 1027: + - Pressed: Toggle + 1028: + - Pressed: Toggle + 1029: + - Pressed: Toggle + - uid: 18263 + components: + - type: Transform + pos: 7.5,28.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 18147: + - Pressed: Toggle + 18146: + - Pressed: Toggle + - uid: 18264 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 39.5,-42.5 + parent: 2 + - uid: 18265 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 4.5,-67.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 18219: + - Pressed: Toggle + 18220: + - Pressed: Toggle + 18221: + - Pressed: Toggle + 18216: + - Pressed: Toggle + 18217: + - Pressed: Toggle + 18218: + - Pressed: Toggle + - uid: 18266 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 25.5,-65.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 1015: + - Pressed: Toggle + - uid: 18267 + components: + - type: MetaData + name: Porta + - type: Transform + rot: -1.5707963267948966 rad + pos: -19.493671,-33.286476 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 1016: + - Pressed: Toggle +- proto: SignalButtonDirectional + entities: + - uid: 18268 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 20.5,3.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 18143: + - Pressed: Toggle + 18213: + - Pressed: Toggle + 18214: + - Pressed: Toggle + - uid: 18269 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 15.5,-17.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 18215: + - Pressed: Toggle + 18144: + - Pressed: Toggle + - uid: 18270 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 10.5,-61.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 1012: + - Pressed: Toggle + 1011: + - Pressed: Toggle + 1010: + - Pressed: Toggle + - uid: 18271 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 40.5,16.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 18169: + - Pressed: Toggle + 18209: + - Pressed: Toggle + 18168: + - Pressed: Toggle + - uid: 18272 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 34.5,-52.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 18142: + - Pressed: Toggle + 18140: + - Pressed: Toggle + 18141: + - Pressed: Toggle + - uid: 18273 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -17.5,22.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 18212: + - Pressed: Toggle + 18180: + - Pressed: Toggle + - uid: 18274 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -40.5,-33.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 18126: + - Pressed: Toggle + 18127: + - Pressed: Toggle + - uid: 18275 + components: + - type: Transform + pos: -39.5,-34.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 18126: + - Pressed: Toggle + 18127: + - Pressed: Toggle + - uid: 18276 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -31.5,-10.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 18122: + - Pressed: Toggle + 18123: + - Pressed: Toggle + - uid: 18277 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -31.5,-10.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 18122: + - Pressed: Toggle + 18123: + - Pressed: Toggle + - uid: 18278 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -31.5,-18.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 18124: + - Pressed: Toggle + 18125: + - Pressed: Toggle + - uid: 18279 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -1.5,-24.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 1003: + - Pressed: Toggle + 1004: + - Pressed: Toggle + - uid: 18280 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 27.4963,38.694504 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 150: + - Pressed: DoorBolt + - uid: 18281 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 27.502518,35.30276 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 149: + - Pressed: DoorBolt + - uid: 18282 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 10.5,50.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 18186: + - Pressed: Toggle + 18185: + - Pressed: Toggle + 18184: + - Pressed: Toggle + 18183: + - Pressed: Toggle + 18187: + - Pressed: Toggle + 18237: + - Pressed: Toggle + 18236: + - Pressed: Toggle + - uid: 18283 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 3.5,57.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 1021: + - Pressed: Toggle + 1020: + - Pressed: Toggle + - uid: 18284 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 22.5,15.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 18132: + - Pressed: Toggle + 18131: + - Pressed: Toggle + 18133: + - Pressed: Toggle + 18134: + - Pressed: Toggle + 18135: + - Pressed: Toggle + 18136: + - Pressed: Toggle + - uid: 18285 + components: + - type: Transform + pos: 10.5,56.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 18190: + - Pressed: Toggle + 18189: + - Pressed: Toggle + 18188: + - Pressed: Toggle + - uid: 18286 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -5.5,69.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 1022: + - Pressed: Toggle + - uid: 18287 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 8.5,69.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 1023: + - Pressed: Toggle + - uid: 18288 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 47.502407,-21.314362 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 18191: + - Pressed: Toggle + 18192: + - Pressed: Toggle + 18193: + - Pressed: Toggle + 18194: + - Pressed: Toggle + 18195: + - Pressed: Toggle + - uid: 18289 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 3.5,-31.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 18197: + - Pressed: Toggle + 18196: + - Pressed: Toggle + 18199: + - Pressed: Toggle + 18200: + - Pressed: Toggle + 18201: + - Pressed: Toggle + 18202: + - Pressed: Toggle + 18203: + - Pressed: Toggle + 18198: + - Pressed: Toggle + 18204: + - Pressed: Toggle + - uid: 18290 + components: + - type: Transform + pos: 10.5,-61.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 1012: + - Pressed: Toggle + 1011: + - Pressed: Toggle + 1010: + - Pressed: Toggle + - uid: 18291 + components: + - type: MetaData + name: SuperMatter lockdown + - type: Transform + rot: 1.5707963267948966 rad + pos: 9.5,-54.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 1032: + - Pressed: Toggle + 1031: + - Pressed: Toggle + 1030: + - Pressed: Toggle + 22610: + - Pressed: Toggle + 22641: + - Pressed: Toggle + 22611: + - Pressed: Toggle + 22640: + - Pressed: Toggle + 154: + - Pressed: Toggle + 22613: + - Pressed: Toggle + 21926: + - Pressed: Toggle + 21933: + - Pressed: Toggle + 21934: + - Pressed: Toggle + 414: + - Pressed: Toggle + 21935: + - Pressed: Toggle + 22845: + - Pressed: Toggle + 21936: + - Pressed: Toggle + 288: + - Pressed: Toggle + 272: + - Pressed: Toggle + 22486: + - Pressed: Toggle + 22464: + - Pressed: Toggle + 189: + - Pressed: Toggle + 22488: + - Pressed: Toggle + 22513: + - Pressed: Toggle + 21918: + - Pressed: Toggle + 21925: + - Pressed: Toggle + - uid: 18292 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 33.5,-52.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 18142: + - Pressed: Toggle + 18140: + - Pressed: Toggle + 18141: + - Pressed: Toggle + - uid: 18293 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 15.5,34.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 18178: + - Pressed: Toggle + 18179: + - Pressed: Toggle + - uid: 18294 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 13.5,41.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 18177: + - Pressed: Toggle + - uid: 18295 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 27.5,40.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 18145: + - Pressed: Toggle + 18176: + - Pressed: Toggle + - uid: 18296 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 41.5,0.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 18165: + - Pressed: Toggle + 18164: + - Pressed: Toggle + 18163: + - Pressed: Toggle + 18174: + - Pressed: Toggle + 18173: + - Pressed: Toggle + 18172: + - Pressed: Toggle + - uid: 18297 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 35.5,12.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 18167: + - Pressed: Toggle + 18166: + - Pressed: Toggle + - uid: 18298 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 44.5,12.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 18171: + - Pressed: Toggle + 18170: + - Pressed: Toggle + - uid: 18299 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 42.5,-2.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 18175: + - Pressed: Toggle + - uid: 18300 + components: + - type: Transform + pos: -28.5,-61.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 18162: + - Pressed: Toggle + 18161: + - Pressed: Toggle + 18160: + - Pressed: Toggle + - uid: 18301 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -33.5,-64.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 18159: + - Pressed: Toggle + 18158: + - Pressed: Toggle + - uid: 18302 + components: + - type: Transform + pos: -11.5,52.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 18182: + - Pressed: Toggle + 18181: + - Pressed: Toggle + - uid: 18303 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -37.5,-60.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 18157: + - Pressed: Toggle + - uid: 18304 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -18.5,-24.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 18156: + - Pressed: Toggle + 18155: + - Pressed: Toggle + - uid: 18305 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 27.5,-21.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 18211: + - Pressed: Toggle + 18210: + - Pressed: Toggle + - uid: 18306 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -31.5,8.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 18154: + - Pressed: Toggle + 18152: + - Pressed: Toggle + - uid: 18307 + components: + - type: Transform + pos: -23.5,8.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 18153: + - Pressed: Toggle + - uid: 18308 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -1.5,15.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 18151: + - Pressed: Toggle + - uid: 18309 + components: + - type: Transform + pos: -13.5,17.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 18148: + - Pressed: Toggle + 18149: + - Pressed: Toggle + 18150: + - Pressed: Toggle + - uid: 18310 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 9.5,-53.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 18205: + - Pressed: Toggle + 18208: + - Pressed: Toggle + 18207: + - Pressed: Toggle + 18206: + - Pressed: Toggle + - uid: 18311 + components: + - type: MetaData + name: Abrir vault + - type: Transform + pos: -17.5,37.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 18138: + - Pressed: Toggle + 18137: + - Pressed: Toggle + 18139: + - Pressed: Toggle +- proto: SignalSwitch + entities: + - uid: 18312 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -26.554577,8.128508 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 16543: + - Status: Toggle + 16542: + - Status: Toggle + - uid: 18313 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -22.535362,6.516772 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 16541: + - Status: Toggle + - uid: 18314 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -31.5,-2.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 16536: + - Status: Toggle + 16537: + - Status: Toggle + - uid: 18315 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -18.5,12.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 16523: + - Status: Toggle + - uid: 18316 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -8.523469,13.046127 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 16525: + - Status: Toggle + 16524: + - Status: Toggle + 16526: + - Status: Toggle + 16529: + - Status: Toggle + 16528: + - Status: Toggle + 16527: + - Status: Toggle + - uid: 18317 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -4.5,12.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 16530: + - Status: Toggle + - uid: 18318 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 8.5,15.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 16531: + - Status: Toggle + 16522: + - Status: Toggle + 16533: + - Status: Toggle + 16532: + - Status: Toggle + - uid: 18319 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 8.5,14.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 16534: + - Status: Toggle + 16535: + - Status: Toggle + - uid: 18320 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -30.5,13.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 16947: + - Status: Toggle + 16948: + - Status: Toggle + - uid: 18321 + components: + - type: Transform + pos: -41.5,-7.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 16556: + - Status: Toggle + 16555: + - Status: Toggle + 16554: + - Status: Toggle + 16553: + - Status: Toggle + - uid: 18322 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -43.5,5.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 16544: + - Status: Toggle + 16546: + - Status: Toggle + 16545: + - Status: Toggle + - uid: 18323 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -35.5,3.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 16548: + - Status: Toggle + 16549: + - Status: Toggle + 16552: + - Status: Toggle + 16551: + - Status: Toggle + 16550: + - Status: Toggle + - uid: 18324 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -29.5,-15.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 16558: + - Status: Toggle + 16557: + - Status: Toggle + - uid: 18325 + components: + - type: Transform + pos: -40.63201,15.495882 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 16563: + - Status: Toggle + - uid: 18326 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -28.5,-19.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 16564: + - Status: Toggle + - uid: 18327 + components: + - type: Transform + pos: -36.5,-14.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 16565: + - Status: Toggle + 16934: + - Status: Toggle + 16935: + - Status: Toggle + - uid: 18328 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -30.5,-36.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 16573: + - Status: Toggle + - uid: 18329 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -35.5,-41.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 16575: + - Status: Toggle + 16577: + - Status: Toggle + 16574: + - Status: Toggle + - uid: 18330 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -25.5,-19.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 16586: + - Status: Toggle + 16587: + - Status: Toggle + 16584: + - Status: Toggle + 16582: + - Status: Toggle + 16585: + - Status: Toggle + 16583: + - Status: Toggle + - uid: 18331 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -13.5,-20.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 16589: + - Status: Toggle + 16588: + - Status: Toggle + 1016: + - Status: Toggle + - uid: 18332 + components: + - type: Transform + pos: -10.5,-20.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 16590: + - Status: Toggle + - uid: 18333 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -23.5,-34.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 16581: + - Status: Toggle + - uid: 18334 + components: + - type: Transform + pos: -22.5,-29.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 16592: + - Status: Toggle + 16591: + - Status: Toggle + - uid: 18335 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -4.5,-34.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 16598: + - Status: Toggle + 16597: + - Status: Toggle + 16596: + - Status: Toggle + 16595: + - Status: Toggle + 16954: + - Status: Toggle + 16955: + - Status: Toggle + 16956: + - Status: Toggle + 16957: + - Status: Toggle + 16958: + - Status: Toggle + 16959: + - Status: Toggle + 16960: + - Status: Toggle + 16961: + - Status: Toggle + 16601: + - Status: Toggle + 16600: + - Status: Toggle + 16599: + - Status: Toggle + - uid: 18336 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -4.5,-34.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 16596: + - Status: Toggle + 16595: + - Status: Toggle + - uid: 18337 + components: + - type: Transform + pos: -2.5,-34.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 16620: + - Status: Toggle + 16975: + - Status: Toggle + - uid: 18338 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 28.5,-5.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 16625: + - Status: Toggle + - uid: 18339 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 28.5,-5.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 16625: + - Status: Toggle + - uid: 18340 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -14.5,-29.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 16580: + - Status: Toggle + 16602: + - Status: Toggle + 16603: + - Status: Toggle + 16604: + - Status: Toggle + - uid: 18341 + components: + - type: Transform + pos: -27.5,-28.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 16570: + - Status: Toggle + 16579: + - Status: Toggle + 16571: + - Status: Toggle + 16572: + - Status: Toggle + - uid: 18342 + components: + - type: Transform + pos: 8.5,28.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 16508: + - Status: Toggle + 16842: + - Status: Toggle + - uid: 18343 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -26.5,-40.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 16578: + - Status: Toggle + - uid: 18344 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -12.5,3.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 16940: + - Status: Toggle + - uid: 18345 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -46.5,-33.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 16613: + - Status: Toggle + 16616: + - Status: Toggle + 16618: + - Status: Toggle + 16614: + - Status: Toggle + 16619: + - Status: Toggle + 16612: + - Status: Toggle +- proto: SignalSwitchDirectional + entities: + - uid: 18346 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 41.5,1.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 17015: + - Status: Toggle + 17018: + - Status: Toggle + 17017: + - Status: Toggle + 8813: + - Status: Toggle + 10913: + - Status: Toggle + - uid: 18347 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 43.5,-2.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 16938: + - Status: Toggle + - uid: 18348 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -1.4998345,-24.30895 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 16593: + - Status: Toggle + 16594: + - Status: Toggle + - uid: 18349 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -40.5,-39.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 16607: + - Status: Toggle + 16605: + - Status: Toggle + 16606: + - Status: Toggle + - uid: 18350 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -30.5,-49.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 16610: + - Status: Toggle + 16611: + - Status: Toggle + 16609: + - Status: Toggle + 16962: + - Status: Toggle + 16608: + - Status: Toggle + 16963: + - Status: Toggle + - uid: 18351 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -34.5,-57.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 16965: + - Status: Toggle + - uid: 18352 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -33.5,-62.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 16966: + - Status: Toggle + - uid: 18353 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -29.5,-59.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 16968: + - Status: Toggle + 16967: + - Status: Toggle + 16969: + - Status: Toggle + 16970: + - Status: Toggle + 16971: + - Status: Toggle + - uid: 18354 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 14.5,18.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 16632: + - Status: Toggle + - uid: 18355 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 27.5,17.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 16631: + - Status: Toggle + 16630: + - Status: Toggle + 16629: + - Status: Toggle + 16628: + - Status: Toggle + - uid: 18356 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 20.5,22.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 16626: + - Status: Toggle + 16627: + - Status: Toggle + - uid: 18357 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 20.5,22.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 16626: + - Status: Toggle + 16627: + - Status: Toggle + - uid: 18358 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 22.5,12.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 16634: + - Status: Toggle + 16635: + - Status: Toggle + 16633: + - Status: Toggle + - uid: 18359 + components: + - type: Transform + pos: 27.5,12.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 16636: + - Status: Toggle + 16637: + - Status: Toggle + 16638: + - Status: Toggle + 16639: + - Status: Toggle + 16640: + - Status: Toggle + 16641: + - Status: Toggle + 16667: + - Status: Toggle + 16666: + - Status: Toggle + - uid: 18360 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 31.5,18.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 16643: + - Status: Toggle + 16644: + - Status: Toggle + 16642: + - Status: Toggle + - uid: 18361 + components: + - type: Transform + pos: 40.5,20.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 16645: + - Status: Toggle + - uid: 18362 + components: + - type: Transform + pos: 41.5,16.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 16646: + - Status: Toggle + 16647: + - Status: Toggle + - uid: 18363 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 35.5,23.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 16980: + - Status: Toggle + 16509: + - Status: Toggle + - uid: 18364 + components: + - type: Transform + pos: 34.5,25.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 16648: + - Status: Toggle + - uid: 18365 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 14.5,24.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 16649: + - Status: Toggle + - uid: 18366 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 22.5,35.5 + parent: 2 + - type: SignalSwitch + state: True + - type: DeviceLinkSource + linkedPorts: + 16651: + - Status: Toggle + 16650: + - Status: Toggle + 16652: + - Status: Toggle + 16653: + - Status: Toggle + - uid: 18367 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 16.5,37.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 16655: + - Status: Toggle + 16656: + - Status: Toggle + - uid: 18368 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 14.5,34.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 16654: + - Status: Toggle + - uid: 18369 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 14.5,41.5 + parent: 2 + - uid: 18370 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 18.5,41.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 16983: + - Status: Toggle + 16984: + - Status: Toggle + - uid: 18371 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 27.5,38.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 16986: + - Status: Toggle + - uid: 18372 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 27.5,35.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 16985: + - Status: Toggle + - uid: 18373 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 45.5,41.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 16662: + - Status: Toggle + 16661: + - Status: Toggle + 16840: + - Status: Toggle + - uid: 18374 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 31.5,25.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 16657: + - Status: Toggle + 16660: + - Status: Toggle + 16659: + - Status: Toggle + 16658: + - Status: Toggle + - uid: 18375 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 27.5,28.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 16665: + - Status: Toggle + 16664: + - Status: Toggle + 16663: + - Status: Toggle + - uid: 18376 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 31.5,40.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 16899: + - Status: Toggle + 16900: + - Status: Toggle + 16898: + - Status: Toggle + 16897: + - Status: Toggle + - uid: 18377 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 45.5,-15.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 16679: + - Status: Toggle + 16891: + - Status: Toggle + - uid: 18378 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -21.5,17.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 16683: + - Status: Toggle + 16684: + - Status: Toggle + - uid: 18379 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -13.5,22.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 16995: + - Status: Toggle + - uid: 18380 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -7.5,21.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 16687: + - Status: Toggle + - uid: 18381 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -4.5,22.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 16996: + - Status: Toggle + - uid: 18382 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -33.5,22.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 16711: + - Status: Toggle + 16712: + - Status: Toggle + 16714: + - Status: Toggle + 16713: + - Status: Toggle + - uid: 18383 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -7.5,31.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 16693: + - Status: Toggle + 16694: + - Status: Toggle + 16695: + - Status: Toggle + - uid: 18384 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -17.5,30.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 16696: + - Status: Toggle + - uid: 18385 + components: + - type: Transform + pos: -16.5,41.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 16697: + - Status: Toggle + 16698: + - Status: Toggle + 16699: + - Status: Toggle + - uid: 18386 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -18.5,31.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 16700: + - Status: Toggle + - uid: 18387 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -10.5,37.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 16701: + - Status: Toggle + 16702: + - Status: Toggle + - uid: 18388 + components: + - type: Transform + pos: -24.5,42.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 16704: + - Status: Toggle + 16703: + - Status: Toggle + - uid: 18389 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -24.5,42.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 16706: + - Status: Toggle + 16705: + - Status: Toggle + - uid: 18390 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -31.5,34.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 16708: + - Status: Toggle + 16707: + - Status: Toggle + 16709: + - Status: Toggle + - uid: 18391 + components: + - type: Transform + pos: -32.5,34.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 17004: + - Status: Toggle + - uid: 18392 + components: + - type: Transform + pos: -32.5,37.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 17003: + - Status: Toggle + - uid: 18393 + components: + - type: Transform + pos: -32.5,40.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 17002: + - Status: Toggle + - uid: 18394 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -38.5,31.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 16716: + - Status: Toggle + 16715: + - Status: Toggle + 16719: + - Status: Toggle + 16717: + - Status: Toggle + 16718: + - Status: Toggle + - uid: 18395 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -34.5,23.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 16725: + - Status: Toggle + 16724: + - Status: Toggle + 16721: + - Status: Toggle + 16723: + - Status: Toggle + 16722: + - Status: Toggle + - uid: 18396 + components: + - type: Transform + pos: -42.5,27.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 16720: + - Status: Toggle + - uid: 18397 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 3.5,30.5 + parent: 2 + - uid: 18398 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 6.5,33.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 16734: + - Status: Toggle + 16736: + - Status: Toggle + 16735: + - Status: Toggle + 16737: + - Status: Toggle + - uid: 18399 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -5.5,50.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 16738: + - Status: Toggle + 17008: + - Status: Toggle + - uid: 18400 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -1.5,56.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 16740: + - Status: Toggle + 16739: + - Status: Toggle + - uid: 18401 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 5.5,49.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 16741: + - Status: Toggle + 16742: + - Status: Toggle + 16743: + - Status: Toggle + - uid: 18402 + components: + - type: Transform + pos: 7.5,57.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 16745: + - Status: Toggle + 16744: + - Status: Toggle + - uid: 18403 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 4.5,57.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 16757: + - Status: Toggle + 16758: + - Status: Toggle + 16756: + - Status: Toggle + 16759: + - Status: Toggle + - uid: 18404 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 12.5,-8.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 17013: + - Status: Toggle + 17014: + - Status: Toggle + 16778: + - Status: Toggle + - uid: 18405 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 12.5,-13.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 16779: + - Status: Toggle + 16780: + - Status: Toggle + - uid: 18406 + components: + - type: Transform + pos: 17.5,-17.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 16782: + - Status: Toggle + 16781: + - Status: Toggle + - uid: 18407 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 27.5,-18.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 16785: + - Status: Toggle + 16784: + - Status: Toggle + 16783: + - Status: Toggle + - uid: 18408 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 27.5,-16.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 16786: + - Status: Toggle + 16787: + - Status: Toggle + 16788: + - Status: Toggle + 16789: + - Status: Toggle + - uid: 18409 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 41.5,-19.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 16791: + - Status: Toggle + - uid: 18410 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 47.5,-21.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 16792: + - Status: Toggle + 16790: + - Status: Toggle + - uid: 18411 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 37.5,-28.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 16795: + - Status: Toggle + 16793: + - Status: Toggle + 16797: + - Status: Toggle + 16798: + - Status: Toggle + 16794: + - Status: Toggle + 16796: + - Status: Toggle + - uid: 18412 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 37.5,-28.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 16794: + - Status: Toggle + 16793: + - Status: Toggle + 16795: + - Status: Toggle + 16797: + - Status: Toggle + 16798: + - Status: Toggle + 16796: + - Status: Toggle + - uid: 18413 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 26.5,-33.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 16800: + - Status: Toggle + 16799: + - Status: Toggle + 16801: + - Status: Toggle + 16802: + - Status: Toggle + - uid: 18414 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 8.5,-33.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 16804: + - Status: Toggle + 16805: + - Status: Toggle + - uid: 18415 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 3.5,-19.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 16806: + - Status: Toggle + - uid: 18416 + components: + - type: Transform + pos: 8.5,-17.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 16807: + - Status: Toggle + - uid: 18417 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 11.5,-27.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 16811: + - Status: Toggle + 16809: + - Status: Toggle + 16810: + - Status: Toggle + 16808: + - Status: Toggle + - uid: 18418 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 11.5,-27.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 16818: + - Status: Toggle + 16815: + - Status: Toggle + 16817: + - Status: Toggle + 16816: + - Status: Toggle + 16814: + - Status: Toggle + 16813: + - Status: Toggle + 16812: + - Status: Toggle + 16841: + - Status: Toggle + - uid: 18419 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 33.5,-26.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 16820: + - Status: Toggle + 16819: + - Status: Toggle + 16822: + - Status: Toggle + 16821: + - Status: Toggle + 16823: + - Status: Toggle + 16824: + - Status: Toggle + - uid: 18420 + components: + - type: Transform + pos: 11.5,-39.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 16872: + - Status: Toggle + 16873: + - Status: Toggle + 16876: + - Status: Toggle + 16871: + - Status: Toggle + 16875: + - Status: Toggle + 16886: + - Status: Toggle + 16929: + - Status: Toggle + 16930: + - Status: Toggle + 16926: + - Status: Toggle + 16928: + - Status: Toggle + 16927: + - Status: Toggle + 16925: + - Status: Toggle + 16874: + - Status: Toggle + - uid: 18421 + components: + - type: Transform + pos: 6.5,-38.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 16828: + - Status: Toggle + - uid: 18422 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 5.5,-51.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 16835: + - Status: Toggle + 16836: + - Status: Toggle + 16833: + - Status: Toggle + 16832: + - Status: Toggle + 16831: + - Status: Toggle + - uid: 18423 + components: + - type: Transform + pos: 10.5,-49.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 16838: + - Status: Toggle + 16837: + - Status: Toggle + - uid: 18424 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 4.5,-51.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 16834: + - Status: Toggle + - uid: 18425 + components: + - type: Transform + pos: 34.5,-47.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 16887: + - Status: Toggle + - uid: 18426 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 1.5,-53.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 16844: + - Status: Toggle + 16845: + - Status: Toggle + - uid: 18427 + components: + - type: Transform + pos: -1.5,-61.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 16864: + - Status: Toggle + 16862: + - Status: Toggle + 16865: + - Status: Toggle + 16866: + - Status: Toggle + 16867: + - Status: Toggle + 16870: + - Status: Toggle + 16869: + - Status: Toggle + 16863: + - Status: Toggle + 16868: + - Status: Toggle + 17021: + - Status: Toggle + 17022: + - Status: Toggle + 17024: + - Status: Toggle + 17023: + - Status: Toggle + - uid: 18428 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -1.5,-61.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 16847: + - Status: Toggle + 16849: + - Status: Toggle + 16846: + - Status: Toggle + 16848: + - Status: Toggle + 16850: + - Status: Toggle + - uid: 18429 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -9.5,-60.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 16856: + - Status: Toggle + 16855: + - Status: Toggle + 16854: + - Status: Toggle + 16853: + - Status: Toggle + 16852: + - Status: Toggle + 16851: + - Status: Toggle + - uid: 18430 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 15.5,-66.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 16857: + - Status: Toggle + 16858: + - Status: Toggle + 16859: + - Status: Toggle + 16861: + - Status: Toggle + 16860: + - Status: Toggle + - uid: 18431 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 21.5,-56.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 16877: + - Status: Toggle + 16923: + - Status: Toggle + 16924: + - Status: Toggle + 16881: + - Status: Toggle + 16883: + - Status: Toggle + 16884: + - Status: Toggle + 16882: + - Status: Toggle + 16879: + - Status: Toggle + 16885: + - Status: Toggle + 16878: + - Status: Toggle + 16880: + - Status: Toggle + - uid: 18432 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -1.5,-12.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 16944: + - Status: Toggle + - uid: 18433 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 37.5,-47.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 16507: + - Status: Toggle + 16888: + - Status: Toggle + 17041: + - Status: Toggle + - uid: 18434 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 18.5,19.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 16890: + - Status: Toggle + 16889: + - Status: Toggle +- proto: SignalTrigger + entities: + - uid: 18435 + components: + - type: Transform + pos: -41.34336,-33.515427 + parent: 2 + - uid: 18436 + components: + - type: Transform + pos: -41.34336,-33.515427 + parent: 2 +- proto: SignAnomaly2 + entities: + - uid: 18437 + components: + - type: Transform + pos: -44.5,-37.5 + parent: 2 +- proto: SignAtmos + entities: + - uid: 18438 + components: + - type: Transform + pos: 9.5,-39.5 + parent: 2 + - uid: 18439 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 9.5,-43.5 + parent: 2 +- proto: SignBar + entities: + - uid: 18440 + components: + - type: Transform + pos: 13.5,3.5 + parent: 2 + - uid: 18441 + components: + - type: Transform + pos: 26.5,3.5 + parent: 2 +- proto: SignBio + entities: + - uid: 18442 + components: + - type: Transform + pos: 10.5,-5.5 + parent: 2 + - uid: 18443 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 36.5,-26.5 + parent: 2 + - uid: 18444 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 34.5,-26.5 + parent: 2 +- proto: SignCargo + entities: + - uid: 18445 + components: + - type: Transform + pos: -11.5,3.5 + parent: 2 + - uid: 18446 + components: + - type: Transform + pos: -31.5,3.5 + parent: 2 +- proto: SignChapel + entities: + - uid: 18447 + components: + - type: Transform + pos: 13.5,-1.5 + parent: 2 +- proto: SignChemistry1 + entities: + - uid: 18448 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 28.5,-35.5 + parent: 2 + - uid: 18449 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 17.5,-35.5 + parent: 2 +- proto: SignCloning + entities: + - uid: 18450 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 24.5,-26.5 + parent: 2 + - uid: 18451 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 29.5,-26.5 + parent: 2 +- proto: SignCryogenicsMed + entities: + - uid: 18452 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 31.5,22.5 + parent: 2 +- proto: SignDoors + entities: + - uid: 18453 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 45.5,-9.5 + parent: 2 +- proto: SignEngineering + entities: + - uid: 18454 + components: + - type: Transform + pos: -1.5,-11.5 + parent: 2 + - uid: 18455 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 3.5,-38.5 + parent: 2 + - uid: 18456 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 3.5,-43.5 + parent: 2 +- proto: SignEscapePods + entities: + - uid: 18457 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -47.5,-27.5 + parent: 2 + - uid: 18458 + components: + - type: Transform + pos: -35.5,-35.5 + parent: 2 + - uid: 18459 + components: + - type: Transform + pos: 31.5,31.5 + parent: 2 + - uid: 18460 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 28.5,40.5 + parent: 2 + - uid: 18461 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -27.5,37.5 + parent: 2 +- proto: SignFire + entities: + - uid: 18462 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -31.5,-53.5 + parent: 2 + - uid: 18463 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -16.5,-62.5 + parent: 2 +- proto: SignGravity + entities: + - uid: 18464 + components: + - type: Transform + pos: 3.5,31.5 + parent: 2 +- proto: SignHead + entities: + - uid: 18465 + components: + - type: Transform + pos: 3.5,13.5 + parent: 2 + - uid: 18466 + components: + - type: Transform + pos: 3.5,54.5 + parent: 2 + - uid: 18467 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -1.5,54.5 + parent: 2 + - uid: 18468 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 3.5,51.5 + parent: 2 + - uid: 18469 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 24.5,-22.5 + parent: 2 +- proto: SignHydro2 + entities: + - uid: 18470 + components: + - type: Transform + pos: 32.5,3.5 + parent: 2 + - uid: 18471 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 31.5,12.5 + parent: 2 + - uid: 18472 + components: + - type: Transform + pos: 31.5,17.5 + parent: 2 +- proto: SignJanitor + entities: + - uid: 18473 + components: + - type: Transform + pos: 9.5,10.5 + parent: 2 +- proto: SignKiddiePlaque + entities: + - uid: 18474 + components: + - type: Transform + pos: 3.5,5.5 + parent: 2 +- proto: SignMedical + entities: + - uid: 18475 + components: + - type: Transform + pos: 3.5,-11.5 + parent: 2 + - uid: 18476 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 39.5,-13.5 + parent: 2 + - uid: 18477 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 35.5,-13.5 + parent: 2 + - uid: 18478 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -25.5,37.5 + parent: 2 + - uid: 18479 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -25.5,33.5 + parent: 2 + - uid: 18480 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 3.5,-21.5 + parent: 2 + - uid: 18481 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 3.5,-27.5 + parent: 2 +- proto: SignNosmoking + entities: + - uid: 18482 + components: + - type: Transform + pos: -19.5,-25.5 + parent: 2 + - uid: 18483 + components: + - type: Transform + pos: -24.5,-67.5 + parent: 2 + - uid: 18484 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 32.5,12.5 + parent: 2 + - uid: 18485 + components: + - type: Transform + pos: 18.5,34.5 + parent: 2 + - uid: 18486 + components: + - type: Transform + pos: 15.5,-39.5 + parent: 2 + - uid: 18487 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -0.5,-54.5 + parent: 2 + - uid: 18488 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 5.5,-61.5 + parent: 2 + - uid: 18489 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -5.5,-61.5 + parent: 2 +- proto: SignRadiationMed + entities: + - uid: 18490 + components: + - type: Transform + pos: -39.5,15.5 + parent: 2 + - uid: 18491 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -21.5,-59.5 + parent: 2 + - uid: 18492 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -6.5,-54.5 + parent: 2 + - uid: 18493 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 6.5,-57.5 + parent: 2 + - uid: 18494 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 8.5,-57.5 + parent: 2 +- proto: SignRobo + entities: + - uid: 18495 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -27.5,-19.5 + parent: 2 +- proto: SignScience + entities: + - uid: 18496 + components: + - type: Transform + pos: -11.5,-1.5 + parent: 2 + - uid: 18497 + components: + - type: Transform + pos: -31.5,-14.5 + parent: 2 + - uid: 18498 + components: + - type: Transform + pos: -35.5,-14.5 + parent: 2 + - uid: 18499 + components: + - type: Transform + pos: -31.5,-25.5 + parent: 2 + - uid: 18500 + components: + - type: Transform + pos: -27.5,-25.5 + parent: 2 +- proto: SignSecurearea + entities: + - uid: 18501 + components: + - type: Transform + pos: 8.5,-61.5 + parent: 2 + - uid: 18502 + components: + - type: Transform + pos: 14.5,-61.5 + parent: 2 + - uid: 18503 + components: + - type: Transform + pos: 10.5,-7.5 + parent: 2 + - uid: 18504 + components: + - type: Transform + pos: -32.5,13.5 + parent: 2 + - uid: 18505 + components: + - type: Transform + pos: -34.5,18.5 + parent: 2 + - uid: 18506 + components: + - type: Transform + pos: -80.5,-55.5 + parent: 2 + - uid: 18507 + components: + - type: Transform + pos: -80.5,-49.5 + parent: 2 + - uid: 18508 + components: + - type: Transform + pos: -77.5,-54.5 + parent: 2 + - uid: 18509 + components: + - type: Transform + pos: -77.5,-50.5 + parent: 2 + - uid: 18510 + components: + - type: Transform + pos: -83.5,-50.5 + parent: 2 + - uid: 18511 + components: + - type: Transform + pos: -83.5,-54.5 + parent: 2 + - uid: 18512 + components: + - type: Transform + pos: -33.5,34.5 + parent: 2 + - uid: 18513 + components: + - type: Transform + pos: -33.5,37.5 + parent: 2 + - uid: 18514 + components: + - type: Transform + pos: -33.5,40.5 + parent: 2 + - uid: 18515 + components: + - type: Transform + pos: -9.5,46.5 + parent: 2 + - uid: 18516 + components: + - type: Transform + pos: -3.5,41.5 + parent: 2 + - uid: 18517 + components: + - type: Transform + pos: -1.5,43.5 + parent: 2 + - uid: 18518 + components: + - type: Transform + pos: 11.5,51.5 + parent: 2 + - uid: 18519 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -9.5,76.5 + parent: 2 + - uid: 18520 + components: + - type: Transform + pos: 6.5,-61.5 + parent: 2 + - uid: 18521 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 2.5,-65.5 + parent: 2 + - uid: 18522 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -1.5,-65.5 + parent: 2 + - uid: 18523 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -3.5,-71.5 + parent: 2 + - uid: 18524 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 4.5,-71.5 + parent: 2 +- proto: SignSecurity + entities: + - uid: 18525 + components: + - type: Transform + pos: -1.5,13.5 + parent: 2 + - uid: 18526 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -1.5,20.5 + parent: 2 + - uid: 18527 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -1.5,18.5 + parent: 2 + - uid: 18528 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -1.5,36.5 + parent: 2 + - uid: 18529 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -1.5,39.5 + parent: 2 +- proto: SignShock + entities: + - uid: 18530 + components: + - type: Transform + pos: -34.5,13.5 + parent: 2 + - uid: 18531 + components: + - type: Transform + pos: -32.5,18.5 + parent: 2 + - uid: 18532 + components: + - type: Transform + pos: -32.5,-54.5 + parent: 2 + - uid: 18533 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 3.5,35.5 + parent: 2 + - uid: 18534 + components: + - type: Transform + pos: 5.5,45.5 + parent: 2 +- proto: SignSmoking + entities: + - uid: 18535 + components: + - type: Transform + pos: -22.5,-65.5 + parent: 2 + - uid: 18536 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 20.5,-21.5 + parent: 2 + - uid: 18537 + components: + - type: Transform + pos: 0.5,-77.5 + parent: 2 + - uid: 18538 + components: + - type: Transform + pos: 37.5,-41.5 + parent: 2 +- proto: SignSomethingOld + entities: + - uid: 18539 + components: + - type: Transform + pos: 37.5,-39.5 + parent: 2 +- proto: SignSomethingOld2 + entities: + - uid: 18540 + components: + - type: Transform + pos: 35.5,-35.5 + parent: 2 +- proto: SignSpace + entities: + - uid: 18541 + components: + - type: Transform + pos: -39.5,-15.5 + parent: 2 + - uid: 18542 + components: + - type: Transform + pos: -36.5,-56.5 + parent: 2 + - uid: 18543 + components: + - type: Transform + pos: 18.5,46.5 + parent: 2 + - uid: 18544 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 45.5,-13.5 + parent: 2 + - uid: 18545 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 45.5,-5.5 + parent: 2 + - uid: 18546 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -11.5,-60.5 + parent: 2 +- proto: SignTelecomms + entities: + - uid: 18547 + components: + - type: Transform + pos: 3.5,36.5 + parent: 2 + - uid: 18548 + components: + - type: Transform + pos: -25.5,-32.5 + parent: 2 +- proto: SignVirology + entities: + - uid: 18549 + components: + - type: Transform + pos: 37.5,-32.5 + parent: 2 + - uid: 18550 + components: + - type: Transform + pos: 37.5,-26.5 + parent: 2 +- proto: SinkWide + entities: + - uid: 18552 + components: + - type: Transform + pos: 19.5,14.5 + parent: 2 + - uid: 18553 + components: + - type: Transform + pos: 8.5,13.5 + parent: 2 + - uid: 18554 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -8.5,-13.5 + parent: 2 + - uid: 18555 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -8.5,-13.5 + parent: 2 + - uid: 18556 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -28.5,-27.5 + parent: 2 + - uid: 18557 + components: + - type: Transform + pos: -2.5,-26.5 + parent: 2 + - uid: 18558 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -11.5,-49.5 + parent: 2 + - uid: 18559 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -6.5,-35.5 + parent: 2 + - uid: 18560 + components: + - type: Transform + pos: 20.5,18.5 + parent: 2 + - uid: 18561 + components: + - type: Transform + pos: 36.5,24.5 + parent: 2 + - uid: 18562 + components: + - type: Transform + pos: 37.5,24.5 + parent: 2 + - uid: 18563 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 36.5,21.5 + parent: 2 + - uid: 18564 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 36.5,22.5 + parent: 2 + - uid: 18565 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -30.5,38.5 + parent: 2 + - uid: 18566 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -32.5,32.5 + parent: 2 + - uid: 18567 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -32.5,35.5 + parent: 2 + - uid: 18568 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -32.5,38.5 + parent: 2 + - uid: 18569 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -42.5,36.5 + parent: 2 + - uid: 18570 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -42.5,29.5 + parent: 2 + - uid: 18571 + components: + - type: Transform + pos: -10.5,52.5 + parent: 2 + - uid: 18572 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 41.5,-15.5 + parent: 2 + - uid: 18573 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 32.5,-28.5 + parent: 2 + - uid: 18574 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 14.5,-20.5 + parent: 2 + - uid: 18575 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 14.5,-19.5 + parent: 2 + - uid: 18576 + components: + - type: Transform + pos: 16.5,-22.5 + parent: 2 + - uid: 18577 + components: + - type: Transform + pos: 21.5,-50.5 + parent: 2 + - uid: 18578 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 4.5,-12.5 + parent: 2 +- proto: SmallLight + entities: + - uid: 18579 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 24.5,-69.5 + parent: 2 + - uid: 18580 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 26.5,-66.5 + parent: 2 +- proto: SmartFridge + entities: + - uid: 9916 + components: + - type: Transform + pos: -34.5,-25.5 + parent: 2 + - uid: 12885 + components: + - type: Transform + pos: -32.5,-23.5 + parent: 2 + - uid: 18582 + components: + - type: Transform + pos: -20.5,-19.5 + parent: 2 + - uid: 18583 + components: + - type: Transform + pos: -5.5,-34.5 + parent: 2 + - uid: 18584 + components: + - type: Transform + pos: -25.5,-61.5 + parent: 2 + - uid: 18585 + components: + - type: Transform + pos: 27.5,16.5 + parent: 2 + - uid: 18586 + components: + - type: Transform + pos: 34.5,20.5 + parent: 2 + - uid: 18587 + components: + - type: Transform + pos: 17.5,-12.5 + parent: 2 + - uid: 18588 + components: + - type: Transform + pos: 42.5,-27.5 + parent: 2 + - uid: 18589 + components: + - type: Transform + pos: 42.5,-30.5 + parent: 2 + - uid: 18590 + components: + - type: Transform + pos: 7.5,-28.5 + parent: 2 + - uid: 18591 + components: + - type: Transform + pos: 5.5,-53.5 + parent: 2 + - uid: 18592 + components: + - type: Transform + pos: 47.5,-38.5 + parent: 2 +- proto: SMESBasic + entities: + - uid: 18593 + components: + - type: Transform + pos: 35.5,-46.5 + parent: 2 + - uid: 18594 + components: + - type: MetaData + name: SMES Solares Sudoeste + - type: Transform + pos: -35.5,-56.5 + parent: 2 + - uid: 18595 + components: + - type: MetaData + name: SMES Solares Nordeste + - type: Transform + pos: 45.5,24.5 + parent: 2 + - uid: 18596 + components: + - type: MetaData + name: SMES Gravidade + - type: Transform + pos: 4.5,32.5 + parent: 2 + - uid: 18597 + components: + - type: MetaData + name: SMES da I.A. + - type: Transform + pos: -3.5,77.5 + parent: 2 + - uid: 18598 + components: + - type: MetaData + name: SMES Telecomunicações + - type: Transform + pos: 8.5,34.5 + parent: 2 + - uid: 18599 + components: + - type: MetaData + name: SMES Banco + - type: Transform + pos: -19.5,-55.5 + parent: 2 + - uid: 18600 + components: + - type: MetaData + name: SMES Banco + - type: Transform + pos: -18.5,-55.5 + parent: 2 + - uid: 18601 + components: + - type: MetaData + name: SMES Banco + - type: Transform + pos: -17.5,-55.5 + parent: 2 + - uid: 18602 + components: + - type: MetaData + name: SMES Banco + - type: Transform + pos: -20.5,-58.5 + parent: 2 + - uid: 18603 + components: + - type: MetaData + name: SMES Banco + - type: Transform + pos: -20.5,-57.5 + parent: 2 + - uid: 18604 + components: + - type: MetaData + name: SMES Banco + - type: Transform + pos: -20.5,-56.5 + parent: 2 +- proto: SMESMachineCircuitboard + entities: + - uid: 18605 + components: + - type: Transform + pos: -2.410386,-37.406345 + parent: 2 +- proto: Soap + entities: + - uid: 18606 + components: + - type: Transform + pos: -12.5,6.5 + parent: 2 + - uid: 18607 + components: + - type: Transform + pos: 14.411409,27.48134 + parent: 2 +- proto: SoapNT + entities: + - uid: 18608 + components: + - type: Transform + pos: 40.506535,21.44361 + parent: 2 +- proto: soda_dispenser + entities: + - uid: 18609 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -22.5,-62.5 + parent: 2 + - uid: 18610 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 15.5,14.5 + parent: 2 +- proto: SolarAssembly + entities: + - uid: 18611 + components: + - type: Transform + pos: 11.5,-70.5 + parent: 2 + - uid: 18612 + components: + - type: Transform + pos: 12.5,-70.5 + parent: 2 + - uid: 18613 + components: + - type: Transform + pos: 13.5,-69.5 + parent: 2 + - uid: 18614 + components: + - type: Transform + pos: 11.5,-69.5 + parent: 2 +- proto: SolarControlComputerCircuitboard + entities: + - uid: 18615 + components: + - type: Transform + pos: -2.34201,-37.3504 + parent: 2 +- proto: SolarPanel + entities: + - uid: 18616 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -51.5,-63.5 + parent: 2 + - uid: 18617 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -55.5,-57.5 + parent: 2 + - uid: 18618 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -55.5,-58.5 + parent: 2 + - uid: 18619 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -55.5,-59.5 + parent: 2 + - uid: 18620 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -55.5,-63.5 + parent: 2 + - uid: 18621 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -55.5,-64.5 + parent: 2 + - uid: 18622 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -55.5,-65.5 + parent: 2 + - uid: 18623 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -53.5,-65.5 + parent: 2 + - uid: 18624 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -53.5,-64.5 + parent: 2 + - uid: 18625 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -53.5,-63.5 + parent: 2 + - uid: 18626 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -53.5,-59.5 + parent: 2 + - uid: 18627 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -53.5,-58.5 + parent: 2 + - uid: 18628 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -53.5,-57.5 + parent: 2 + - uid: 18629 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -51.5,-57.5 + parent: 2 + - uid: 18630 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -51.5,-58.5 + parent: 2 + - uid: 18631 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -51.5,-59.5 + parent: 2 + - uid: 18632 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -49.5,-57.5 + parent: 2 + - uid: 18633 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -49.5,-58.5 + parent: 2 + - uid: 18634 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -49.5,-59.5 + parent: 2 + - uid: 18635 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -51.5,-64.5 + parent: 2 + - uid: 18636 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -51.5,-65.5 + parent: 2 + - uid: 18637 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -49.5,-63.5 + parent: 2 + - uid: 18638 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -49.5,-64.5 + parent: 2 + - uid: 18639 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -49.5,-65.5 + parent: 2 + - uid: 18640 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -47.5,-63.5 + parent: 2 + - uid: 18641 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -47.5,-64.5 + parent: 2 + - uid: 18642 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -47.5,-65.5 + parent: 2 + - uid: 18643 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -47.5,-66.5 + parent: 2 + - uid: 18644 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -45.5,-63.5 + parent: 2 + - uid: 18645 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -45.5,-64.5 + parent: 2 + - uid: 18646 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -45.5,-65.5 + parent: 2 + - uid: 18647 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -45.5,-66.5 + parent: 2 + - uid: 18648 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -43.5,-63.5 + parent: 2 + - uid: 18649 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -43.5,-64.5 + parent: 2 + - uid: 18650 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -43.5,-65.5 + parent: 2 + - uid: 18651 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -43.5,-66.5 + parent: 2 + - uid: 18652 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -43.5,-67.5 + parent: 2 + - uid: 18653 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -41.5,-63.5 + parent: 2 + - uid: 18654 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -41.5,-64.5 + parent: 2 + - uid: 18655 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -41.5,-65.5 + parent: 2 + - uid: 18656 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -41.5,-66.5 + parent: 2 + - uid: 18657 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -41.5,-67.5 + parent: 2 + - uid: 18658 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -41.5,-59.5 + parent: 2 + - uid: 18659 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -41.5,-58.5 + parent: 2 + - uid: 18660 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -41.5,-57.5 + parent: 2 + - uid: 18661 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -41.5,-56.5 + parent: 2 + - uid: 18662 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -41.5,-55.5 + parent: 2 + - uid: 18663 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -43.5,-55.5 + parent: 2 + - uid: 18664 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -43.5,-56.5 + parent: 2 + - uid: 18665 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -43.5,-57.5 + parent: 2 + - uid: 18666 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -43.5,-58.5 + parent: 2 + - uid: 18667 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -43.5,-59.5 + parent: 2 + - uid: 18668 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -45.5,-59.5 + parent: 2 + - uid: 18669 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -45.5,-58.5 + parent: 2 + - uid: 18670 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -45.5,-57.5 + parent: 2 + - uid: 18671 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -45.5,-56.5 + parent: 2 + - uid: 18672 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -47.5,-56.5 + parent: 2 + - uid: 18673 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -47.5,-57.5 + parent: 2 + - uid: 18674 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -47.5,-58.5 + parent: 2 + - uid: 18675 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -47.5,-59.5 + parent: 2 + - uid: 18676 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 62.5,25.5 + parent: 2 + - uid: 18677 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 60.5,17.5 + parent: 2 + - uid: 18678 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 60.5,18.5 + parent: 2 + - uid: 18679 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 60.5,19.5 + parent: 2 + - uid: 18680 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 60.5,20.5 + parent: 2 + - uid: 18681 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 60.5,21.5 + parent: 2 + - uid: 18682 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 62.5,21.5 + parent: 2 + - uid: 18683 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 62.5,20.5 + parent: 2 + - uid: 18684 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 62.5,19.5 + parent: 2 + - uid: 18685 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 62.5,18.5 + parent: 2 + - uid: 18686 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 62.5,17.5 + parent: 2 + - uid: 18687 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 62.5,26.5 + parent: 2 + - uid: 18688 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 62.5,27.5 + parent: 2 + - uid: 18689 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 62.5,28.5 + parent: 2 + - uid: 18690 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 62.5,29.5 + parent: 2 + - uid: 18691 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 60.5,29.5 + parent: 2 + - uid: 18692 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 60.5,28.5 + parent: 2 + - uid: 18693 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 60.5,27.5 + parent: 2 + - uid: 18694 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 60.5,26.5 + parent: 2 + - uid: 18695 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 60.5,25.5 + parent: 2 + - uid: 18696 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 64.5,18.5 + parent: 2 + - uid: 18697 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 64.5,19.5 + parent: 2 + - uid: 18698 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 64.5,20.5 + parent: 2 + - uid: 18699 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 64.5,21.5 + parent: 2 + - uid: 18700 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 66.5,18.5 + parent: 2 + - uid: 18701 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 66.5,19.5 + parent: 2 + - uid: 18702 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 66.5,20.5 + parent: 2 + - uid: 18703 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 66.5,21.5 + parent: 2 + - uid: 18704 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 66.5,25.5 + parent: 2 + - uid: 18705 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 66.5,26.5 + parent: 2 + - uid: 18706 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 66.5,27.5 + parent: 2 + - uid: 18707 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 66.5,28.5 + parent: 2 + - uid: 18708 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 64.5,28.5 + parent: 2 + - uid: 18709 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 64.5,27.5 + parent: 2 + - uid: 18710 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 64.5,26.5 + parent: 2 + - uid: 18711 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 64.5,25.5 + parent: 2 + - uid: 18712 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 68.5,27.5 + parent: 2 + - uid: 18713 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 68.5,26.5 + parent: 2 + - uid: 18714 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 68.5,25.5 + parent: 2 + - uid: 18715 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 70.5,27.5 + parent: 2 + - uid: 18716 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 70.5,26.5 + parent: 2 + - uid: 18717 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 70.5,25.5 + parent: 2 + - uid: 18718 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 70.5,21.5 + parent: 2 + - uid: 18719 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 70.5,20.5 + parent: 2 + - uid: 18720 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 70.5,19.5 + parent: 2 + - uid: 18721 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 68.5,21.5 + parent: 2 + - uid: 18722 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 68.5,20.5 + parent: 2 + - uid: 18723 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 68.5,19.5 + parent: 2 + - uid: 18724 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 72.5,19.5 + parent: 2 + - uid: 18725 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 72.5,20.5 + parent: 2 + - uid: 18726 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 72.5,21.5 + parent: 2 + - uid: 18727 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 74.5,21.5 + parent: 2 + - uid: 18728 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 74.5,20.5 + parent: 2 + - uid: 18729 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 74.5,19.5 + parent: 2 + - uid: 18730 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 74.5,25.5 + parent: 2 + - uid: 18731 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 74.5,26.5 + parent: 2 + - uid: 18732 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 74.5,27.5 + parent: 2 + - uid: 18733 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 72.5,27.5 + parent: 2 + - uid: 18734 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 72.5,26.5 + parent: 2 + - uid: 18735 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 72.5,25.5 + parent: 2 + - uid: 18736 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -57.5,29.5 + parent: 2 + - uid: 18737 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -57.5,28.5 + parent: 2 + - uid: 18738 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -59.5,29.5 + parent: 2 + - uid: 18739 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -59.5,28.5 + parent: 2 + - uid: 18740 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -59.5,27.5 + parent: 2 + - uid: 18741 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -61.5,28.5 + parent: 2 + - uid: 18742 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -61.5,27.5 + parent: 2 + - uid: 18743 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -63.5,28.5 + parent: 2 + - uid: 18744 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -63.5,27.5 + parent: 2 + - uid: 18745 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -63.5,26.5 + parent: 2 + - uid: 18746 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -65.5,27.5 + parent: 2 + - uid: 18747 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -65.5,26.5 + parent: 2 + - uid: 18748 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -65.5,25.5 + parent: 2 + - uid: 18749 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -67.5,27.5 + parent: 2 + - uid: 18750 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -67.5,26.5 + parent: 2 + - uid: 18751 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -67.5,25.5 + parent: 2 + - uid: 18752 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -69.5,27.5 + parent: 2 + - uid: 18753 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -69.5,26.5 + parent: 2 + - uid: 18754 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -69.5,25.5 + parent: 2 + - uid: 18755 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -71.5,27.5 + parent: 2 + - uid: 18756 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -71.5,26.5 + parent: 2 + - uid: 18757 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -71.5,25.5 + parent: 2 + - uid: 18758 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -69.5,21.5 + parent: 2 + - uid: 18759 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -69.5,20.5 + parent: 2 + - uid: 18760 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -69.5,19.5 + parent: 2 + - uid: 18761 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -71.5,19.5 + parent: 2 + - uid: 18762 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -71.5,20.5 + parent: 2 + - uid: 18763 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -71.5,21.5 + parent: 2 + - uid: 18764 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -67.5,21.5 + parent: 2 + - uid: 18765 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -67.5,20.5 + parent: 2 + - uid: 18766 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -67.5,19.5 + parent: 2 + - uid: 18767 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -65.5,20.5 + parent: 2 + - uid: 18768 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -65.5,19.5 + parent: 2 + - uid: 18769 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 42.5,-63.5 + parent: 2 + - uid: 18770 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 42.5,-51.5 + parent: 2 + - uid: 18771 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 42.5,-52.5 + parent: 2 + - uid: 18772 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 42.5,-53.5 + parent: 2 + - uid: 18773 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 42.5,-54.5 + parent: 2 + - uid: 18774 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 42.5,-55.5 + parent: 2 + - uid: 18775 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 44.5,-51.5 + parent: 2 + - uid: 18776 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 44.5,-52.5 + parent: 2 + - uid: 18777 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 44.5,-53.5 + parent: 2 + - uid: 18778 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 44.5,-54.5 + parent: 2 + - uid: 18779 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 44.5,-55.5 + parent: 2 + - uid: 18780 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 42.5,-62.5 + parent: 2 + - uid: 18781 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 42.5,-61.5 + parent: 2 + - uid: 18782 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 42.5,-60.5 + parent: 2 + - uid: 18783 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 42.5,-59.5 + parent: 2 + - uid: 18784 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 44.5,-60.5 + parent: 2 + - uid: 18785 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 44.5,-61.5 + parent: 2 + - uid: 18786 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 44.5,-62.5 + parent: 2 + - uid: 18787 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 44.5,-63.5 + parent: 2 + - uid: 18788 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 48.5,-59.5 + parent: 2 + - uid: 18789 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 50.5,-55.5 + parent: 2 + - uid: 18790 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 50.5,-54.5 + parent: 2 + - uid: 18791 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 50.5,-53.5 + parent: 2 + - uid: 18792 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 46.5,-52.5 + parent: 2 + - uid: 18793 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 46.5,-53.5 + parent: 2 + - uid: 18794 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 46.5,-54.5 + parent: 2 + - uid: 18795 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 46.5,-55.5 + parent: 2 + - uid: 18796 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 48.5,-52.5 + parent: 2 + - uid: 18797 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 48.5,-53.5 + parent: 2 + - uid: 18798 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 48.5,-54.5 + parent: 2 + - uid: 18799 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 48.5,-55.5 + parent: 2 + - uid: 18800 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 52.5,-53.5 + parent: 2 + - uid: 18801 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 52.5,-54.5 + parent: 2 + - uid: 18802 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 52.5,-55.5 + parent: 2 + - uid: 18803 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 54.5,-53.5 + parent: 2 + - uid: 18804 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 54.5,-54.5 + parent: 2 + - uid: 18805 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 54.5,-55.5 + parent: 2 + - uid: 18806 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 56.5,-53.5 + parent: 2 + - uid: 18807 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 56.5,-54.5 + parent: 2 + - uid: 18808 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 56.5,-55.5 + parent: 2 + - uid: 18809 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 56.5,-59.5 + parent: 2 + - uid: 18810 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 56.5,-60.5 + parent: 2 + - uid: 18811 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 56.5,-61.5 + parent: 2 + - uid: 18812 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 52.5,-59.5 + parent: 2 + - uid: 18813 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 54.5,-59.5 + parent: 2 + - uid: 18814 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 54.5,-60.5 + parent: 2 + - uid: 18815 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 54.5,-61.5 + parent: 2 + - uid: 18816 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 50.5,-59.5 + parent: 2 + - uid: 18817 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 50.5,-60.5 + parent: 2 + - uid: 18818 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 50.5,-61.5 + parent: 2 + - uid: 18819 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 52.5,-60.5 + parent: 2 + - uid: 18820 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 52.5,-61.5 + parent: 2 + - uid: 18821 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 48.5,-60.5 + parent: 2 + - uid: 18822 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 48.5,-61.5 + parent: 2 + - uid: 18823 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 48.5,-62.5 + parent: 2 + - uid: 18824 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 46.5,-59.5 + parent: 2 + - uid: 18825 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 46.5,-60.5 + parent: 2 + - uid: 18826 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 46.5,-61.5 + parent: 2 + - uid: 18827 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 46.5,-62.5 + parent: 2 + - uid: 18828 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 44.5,-59.5 + parent: 2 +- proto: SolarPanelBroken + entities: + - uid: 18829 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -59.5,26.5 + parent: 2 + - uid: 18830 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -61.5,26.5 + parent: 2 + - uid: 18831 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -65.5,21.5 + parent: 2 +- proto: SolarTracker + entities: + - uid: 18832 + components: + - type: Transform + pos: -56.5,-61.5 + parent: 2 + - uid: 18833 + components: + - type: Transform + pos: 75.5,23.5 + parent: 2 + - uid: 18834 + components: + - type: Transform + pos: -72.5,23.5 + parent: 2 + - uid: 18835 + components: + - type: Transform + pos: 57.5,-57.5 + parent: 2 +- proto: SolidSecretDoor + entities: + - uid: 18836 + components: + - type: Transform + pos: 13.5,34.5 + parent: 2 + - uid: 18837 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -39.5,17.5 + parent: 2 + - uid: 18838 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 21.5,-36.5 + parent: 2 +- proto: SophicScribeSpawner + entities: + - uid: 15546 + components: + - type: Transform + pos: -31.5,-20.5 + parent: 2 +- proto: SpaceCash10 + entities: + - uid: 18839 + components: + - type: Transform + pos: 23.560352,36.7938 + parent: 2 +- proto: SpaceVillainArcadeComputerCircuitboard + entities: + - uid: 18840 + components: + - type: Transform + pos: -25.481606,13.547287 + parent: 2 +- proto: SpawnMobAlexander + entities: + - uid: 18841 + components: + - type: Transform + pos: 25.5,17.5 + parent: 2 +- proto: SpawnMobButterfly + entities: + - uid: 23881 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -32.5,-21.5 + parent: 2 + - uid: 23882 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -30.5,-22.5 + parent: 2 + - uid: 23883 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -28.5,-24.5 + parent: 2 + - uid: 23884 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -33.5,-23.5 + parent: 2 +- proto: SpawnMobCatException + entities: + - uid: 18842 + components: + - type: Transform + pos: 26.5,-21.5 + parent: 2 +- proto: SpawnMobCleanBot + entities: + - uid: 18843 + components: + - type: Transform + pos: 9.5,79.5 + parent: 2 + - uid: 18844 + components: + - type: Transform + pos: 17.5,-25.5 + parent: 2 +- proto: SpawnMobCorgi + entities: + - uid: 18845 + components: + - type: Transform + pos: 9.5,47.5 + parent: 2 +- proto: SpawnMobCrab + entities: + - uid: 18846 + components: + - type: Transform + pos: 27.5,-52.5 + parent: 2 +- proto: SpawnMobFrog + entities: + - uid: 18847 + components: + - type: Transform + pos: 36.5,14.5 + parent: 2 +- proto: SpawnMobMcGriff + entities: + - uid: 18848 + components: + - type: Transform + pos: -14.5,31.5 + parent: 2 +- proto: SpawnMobMedibot + entities: + - uid: 18849 + components: + - type: Transform + pos: 8.5,75.5 + parent: 2 + - uid: 18850 + components: + - type: Transform + pos: 7.5,-25.5 + parent: 2 +- proto: SpawnMobMonkey + entities: + - uid: 4561 + components: + - type: Transform + pos: 16.5,-30.5 + parent: 2 +- proto: SpawnMobMonkeyPunpun + entities: + - uid: 18851 + components: + - type: Transform + pos: 19.5,13.5 + parent: 2 +- proto: SpawnMobMouse + entities: + - uid: 18852 + components: + - type: Transform + pos: 37.5,-8.5 + parent: 2 +- proto: SpawnMobParrot + entities: + - uid: 18853 + components: + - type: Transform + pos: 13.5,-50.5 + parent: 2 +- proto: SpawnMobRaccoonMorticia + entities: + - uid: 18854 + components: + - type: Transform + pos: -30.5,5.5 + parent: 2 +- proto: SpawnMobShiva + entities: + - uid: 18855 + components: + - type: Transform + pos: -21.5,43.5 + parent: 2 +- proto: SpawnMobSlothPaperwork + entities: + - uid: 18856 + components: + - type: Transform + pos: -39.5,-0.5 + parent: 2 +- proto: SpawnMobSmile + entities: + - uid: 18857 + components: + - type: Transform + pos: -17.5,-24.5 + parent: 2 +- proto: SpawnPointAtmos + entities: + - uid: 18858 + components: + - type: Transform + pos: 10.5,-47.5 + parent: 2 + - uid: 18859 + components: + - type: Transform + pos: 11.5,-47.5 + parent: 2 + - uid: 18860 + components: + - type: Transform + pos: 12.5,-47.5 + parent: 2 + - uid: 18861 + components: + - type: Transform + pos: 13.5,-47.5 + parent: 2 +- proto: SpawnPointBartender + entities: + - uid: 18862 + components: + - type: Transform + pos: 16.5,17.5 + parent: 2 +- proto: SpawnPointBorg + entities: + - uid: 18863 + components: + - type: Transform + pos: -29.5,-17.5 + parent: 2 + - uid: 23861 + components: + - type: Transform + pos: -30.5,-17.5 + parent: 2 +- proto: SpawnPointBotanist + entities: + - uid: 18864 + components: + - type: Transform + pos: 41.5,18.5 + parent: 2 + - uid: 18865 + components: + - type: Transform + pos: 42.5,18.5 + parent: 2 + - uid: 18866 + components: + - type: Transform + pos: 43.5,18.5 + parent: 2 +- proto: SpawnPointBrigmedic + entities: + - uid: 18867 + components: + - type: Transform + pos: -28.5,34.5 + parent: 2 +- proto: SpawnPointCaptain + entities: + - uid: 18869 + components: + - type: Transform + pos: 6.5,54.5 + parent: 2 +- proto: SpawnPointCargoTechnician + entities: + - uid: 18870 + components: + - type: Transform + pos: -39.5,9.5 + parent: 2 + - uid: 18871 + components: + - type: Transform + pos: -41.5,8.5 + parent: 2 + - uid: 18872 + components: + - type: Transform + pos: -40.5,7.5 + parent: 2 + - uid: 18873 + components: + - type: Transform + pos: -39.5,7.5 + parent: 2 + - uid: 18874 + components: + - type: Transform + pos: -38.5,8.5 + parent: 2 +- proto: SpawnPointChaplain + entities: + - uid: 18875 + components: + - type: Transform + pos: 13.5,43.5 + parent: 2 +- proto: SpawnPointChef + entities: + - uid: 18876 + components: + - type: Transform + pos: 24.5,18.5 + parent: 2 + - uid: 18877 + components: + - type: Transform + pos: 22.5,18.5 + parent: 2 +- proto: SpawnPointChemist + entities: + - uid: 18878 + components: + - type: Transform + pos: 9.5,-31.5 + parent: 2 + - uid: 18879 + components: + - type: Transform + pos: 8.5,-31.5 + parent: 2 +- proto: SpawnPointChiefEngineer + entities: + - uid: 18880 + components: + - type: Transform + pos: 9.5,53.5 + parent: 2 +- proto: SpawnPointChiefJustice + entities: + - uid: 948 + components: + - type: Transform + pos: -17.5,10.5 + parent: 2 +- proto: SpawnPointChiefMedicalOfficer + entities: + - uid: 18881 + components: + - type: Transform + pos: 8.5,55.5 + parent: 2 +- proto: SpawnPointClerk + entities: + - uid: 21917 + components: + - type: Transform + pos: -5.5,15.5 + parent: 2 +- proto: SpawnPointClown + entities: + - uid: 18882 + components: + - type: Transform + pos: 43.5,12.5 + parent: 2 +- proto: SpawnPointDetective + entities: + - uid: 18883 + components: + - type: Transform + pos: -20.5,21.5 + parent: 2 +- proto: SpawnPointForensicMantis + entities: + - uid: 18884 + components: + - type: Transform + pos: -10.5,-22.5 + parent: 2 +- proto: SpawnPointHeadOfPersonnel + entities: + - uid: 18885 + components: + - type: Transform + pos: 7.5,55.5 + parent: 2 +- proto: SpawnPointHeadOfSecurity + entities: + - uid: 18886 + components: + - type: Transform + pos: 9.5,55.5 + parent: 2 +- proto: SpawnPointJanitor + entities: + - uid: 18887 + components: + - type: Transform + pos: 9.5,12.5 + parent: 2 + - uid: 18888 + components: + - type: Transform + pos: 8.5,12.5 + parent: 2 +- proto: SpawnPointLatejoin + entities: + - uid: 23885 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 42.5,33.5 + parent: 2 + - uid: 23886 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 43.5,36.5 + parent: 2 + - uid: 23887 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 43.5,37.5 + parent: 2 + - uid: 23888 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 42.5,40.5 + parent: 2 + - uid: 23889 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 37.5,28.5 + parent: 2 + - uid: 23890 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 31.5,28.5 + parent: 2 + - uid: 23891 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 35.5,27.5 + parent: 2 +- proto: SpawnPointLawyer + entities: + - uid: 18889 + components: + - type: Transform + pos: -2.5,15.5 + parent: 2 +- proto: SpawnPointLibrarian + entities: + - uid: 18891 + components: + - type: Transform + pos: 43.5,-0.5 + parent: 2 +- proto: SpawnPointMailCarrier + entities: + - uid: 18892 + components: + - type: Transform + pos: -27.5,-5.5 + parent: 2 + - uid: 18893 + components: + - type: Transform + pos: -26.5,-4.5 + parent: 2 +- proto: SpawnPointMedicalBorg + entities: + - uid: 18957 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 16.5,-25.5 + parent: 2 + - uid: 23859 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 18.5,-26.5 + parent: 2 +- proto: SpawnPointMedicalDoctor + entities: + - uid: 18894 + components: + - type: Transform + pos: 19.5,-20.5 + parent: 2 + - uid: 18895 + components: + - type: Transform + pos: 17.5,-19.5 + parent: 2 + - uid: 18896 + components: + - type: Transform + pos: 19.5,-19.5 + parent: 2 +- proto: SpawnPointMedicalIntern + entities: + - uid: 18897 + components: + - type: Transform + pos: 40.5,-17.5 + parent: 2 + - uid: 18898 + components: + - type: Transform + pos: 41.5,-17.5 + parent: 2 +- proto: SpawnPointMime + entities: + - uid: 18899 + components: + - type: Transform + pos: 43.5,14.5 + parent: 2 +- proto: SpawnPointMusician + entities: + - uid: 18900 + components: + - type: Transform + pos: 41.5,15.5 + parent: 2 +- proto: SpawnPointObserver + entities: + - uid: 18901 + components: + - type: Transform + pos: 0.5,0.5 + parent: 2 +- proto: SpawnPointParamedic + entities: + - uid: 18902 + components: + - type: Transform + pos: 8.5,-19.5 + parent: 2 +- proto: SpawnPointPassenger + entities: + - uid: 18903 + components: + - type: Transform + pos: 41.5,-3.5 + parent: 2 + - uid: 18904 + components: + - type: Transform + pos: 43.5,-3.5 + parent: 2 + - uid: 18905 + components: + - type: Transform + pos: 42.5,-3.5 + parent: 2 + - uid: 18906 + components: + - type: Transform + pos: 36.5,-6.5 + parent: 2 + - uid: 18907 + components: + - type: Transform + pos: 39.5,-6.5 + parent: 2 + - uid: 18908 + components: + - type: Transform + pos: 36.5,-9.5 + parent: 2 + - uid: 18909 + components: + - type: Transform + pos: 39.5,-9.5 + parent: 2 + - uid: 18910 + components: + - type: Transform + pos: 40.5,-9.5 + parent: 2 + - uid: 18911 + components: + - type: Transform + pos: 39.5,-12.5 + parent: 2 + - uid: 18912 + components: + - type: Transform + pos: 42.5,-12.5 + parent: 2 + - uid: 18913 + components: + - type: Transform + pos: 43.5,-12.5 + parent: 2 + - uid: 18914 + components: + - type: Transform + pos: 26.5,4.5 + parent: 2 + - uid: 18915 + components: + - type: Transform + pos: 20.5,5.5 + parent: 2 + - uid: 18916 + components: + - type: Transform + pos: 17.5,11.5 + parent: 2 + - uid: 18917 + components: + - type: Transform + pos: 19.5,8.5 + parent: 2 + - uid: 18918 + components: + - type: Transform + pos: 27.5,11.5 + parent: 2 + - uid: 18919 + components: + - type: Transform + pos: 27.5,9.5 + parent: 2 + - uid: 18920 + components: + - type: Transform + pos: 22.5,8.5 + parent: 2 + - uid: 18921 + components: + - type: Transform + pos: 40.5,24.5 + parent: 2 + - uid: 18922 + components: + - type: Transform + pos: 26.5,35.5 + parent: 2 + - uid: 18923 + components: + - type: Transform + pos: 26.5,40.5 + parent: 2 + - uid: 18924 + components: + - type: Transform + pos: 36.5,28.5 + parent: 2 + - uid: 18925 + components: + - type: Transform + pos: 34.5,28.5 + parent: 2 + - uid: 18926 + components: + - type: Transform + pos: 39.5,28.5 + parent: 2 + - uid: 18927 + components: + - type: Transform + pos: -13.5,8.5 + parent: 2 + - uid: 18928 + components: + - type: Transform + pos: -12.5,10.5 + parent: 2 + - uid: 18929 + components: + - type: Transform + pos: -10.5,9.5 + parent: 2 + - uid: 18930 + components: + - type: Transform + pos: 32.5,-34.5 + parent: 2 + - uid: 18931 + components: + - type: Transform + pos: -34.5,-58.5 + parent: 2 + - uid: 18932 + components: + - type: Transform + pos: -34.5,-60.5 + parent: 2 + - uid: 18933 + components: + - type: Transform + pos: -29.5,-63.5 + parent: 2 + - uid: 18934 + components: + - type: Transform + pos: -29.5,-63.5 + parent: 2 + - uid: 18935 + components: + - type: Transform + pos: 8.5,5.5 + parent: 2 + - uid: 18936 + components: + - type: Transform + pos: 8.5,5.5 + parent: 2 + - uid: 18937 + components: + - type: Transform + pos: 8.5,6.5 + parent: 2 + - uid: 18938 + components: + - type: Transform + pos: -6.5,5.5 + parent: 2 + - uid: 18939 + components: + - type: Transform + pos: -6.5,6.5 + parent: 2 + - uid: 18940 + components: + - type: Transform + pos: -4.5,39.5 + parent: 2 + - uid: 18941 + components: + - type: Transform + pos: -8.5,18.5 + parent: 2 + - uid: 18942 + components: + - type: Transform + pos: -6.5,18.5 + parent: 2 + - uid: 18943 + components: + - type: Transform + pos: 32.5,5.5 + parent: 2 + - uid: 18944 + components: + - type: Transform + pos: 35.5,4.5 + parent: 2 + - uid: 18945 + components: + - type: Transform + pos: 42.5,5.5 + parent: 2 + - uid: 18946 + components: + - type: Transform + pos: 37.5,-2.5 + parent: 2 + - uid: 18947 + components: + - type: Transform + pos: 36.5,22.5 + parent: 2 + - uid: 18948 + components: + - type: Transform + pos: 42.5,34.5 + parent: 2 + - uid: 18949 + components: + - type: Transform + pos: 42.5,32.5 + parent: 2 + - uid: 18950 + components: + - type: Transform + pos: 42.5,41.5 + parent: 2 + - uid: 18951 + components: + - type: Transform + pos: 21.5,32.5 + parent: 2 + - uid: 18952 + components: + - type: Transform + pos: 23.5,33.5 + parent: 2 + - uid: 18953 + components: + - type: Transform + pos: 22.5,29.5 + parent: 2 +- proto: SpawnPointPrisoner + entities: + - uid: 21916 + components: + - type: Transform + pos: -32.5,36.5 + parent: 2 + - uid: 23978 + components: + - type: Transform + pos: -40.5,33.5 + parent: 2 + - uid: 23979 + components: + - type: Transform + pos: -38.5,35.5 + parent: 2 +- proto: SpawnPointPrisonGuard + entities: + - uid: 23975 + components: + - type: Transform + pos: -36.5,29.5 + parent: 2 + - uid: 23976 + components: + - type: Transform + pos: -39.5,21.5 + parent: 2 + - uid: 23977 + components: + - type: Transform + pos: -7.5,28.5 + parent: 2 +- proto: SpawnPointProsecutor + entities: + - uid: 18890 + components: + - type: Transform + pos: -3.5,15.5 + parent: 2 +- proto: SpawnPointPsychologist + entities: + - uid: 18954 + components: + - type: Transform + pos: 44.5,-23.5 + parent: 2 +- proto: SpawnPointQuartermaster + entities: + - uid: 18955 + components: + - type: Transform + pos: 7.5,53.5 + parent: 2 +- proto: SpawnPointReporter + entities: + - uid: 18956 + components: + - type: Transform + pos: 18.5,20.5 + parent: 2 +- proto: SpawnPointResearchAssistant + entities: + - uid: 8899 + components: + - type: Transform + pos: -42.5,-50.5 + parent: 2 + - uid: 22320 + components: + - type: Transform + pos: -2.5,-31.5 + parent: 2 + - uid: 22321 + components: + - type: Transform + pos: -3.5,-26.5 + parent: 2 + - uid: 22322 + components: + - type: Transform + pos: -4.5,-31.5 + parent: 2 + - uid: 22323 + components: + - type: Transform + pos: -35.5,-28.5 + parent: 2 + - uid: 22324 + components: + - type: Transform + pos: -35.5,-26.5 + parent: 2 + - uid: 22325 + components: + - type: Transform + pos: -38.5,-52.5 + parent: 2 + - uid: 22326 + components: + - type: Transform + pos: -38.5,-50.5 + parent: 2 + - uid: 22327 + components: + - type: Transform + pos: -30.5,-47.5 + parent: 2 +- proto: SpawnPointResearchDirector + entities: + - uid: 18958 + components: + - type: Transform + pos: 8.5,53.5 + parent: 2 +- proto: SpawnPointRoboticist + entities: + - uid: 20567 + components: + - type: Transform + pos: -21.5,-17.5 + parent: 2 + - uid: 20711 + components: + - type: Transform + pos: -25.5,-23.5 + parent: 2 +- proto: SpawnPointSalvageSpecialist + entities: + - uid: 18959 + components: + - type: Transform + pos: -37.5,-12.5 + parent: 2 + - uid: 18960 + components: + - type: Transform + pos: -37.5,-11.5 + parent: 2 + - uid: 18961 + components: + - type: Transform + pos: -37.5,-10.5 + parent: 2 +- proto: SpawnPointScientist + entities: + - uid: 18962 + components: + - type: Transform + pos: -3.5,-31.5 + parent: 2 + - uid: 18963 + components: + - type: Transform + pos: -35.5,-51.5 + parent: 2 + - uid: 18964 + components: + - type: Transform + pos: -45.5,-36.5 + parent: 2 + - uid: 18965 + components: + - type: Transform + pos: -45.5,-35.5 + parent: 2 + - uid: 18966 + components: + - type: Transform + pos: -43.5,-35.5 + parent: 2 + - uid: 18967 + components: + - type: Transform + pos: -43.5,-36.5 + parent: 2 + - uid: 18968 + components: + - type: Transform + pos: -42.5,-32.5 + parent: 2 + - uid: 18969 + components: + - type: Transform + pos: -39.5,-42.5 + parent: 2 + - uid: 18970 + components: + - type: Transform + pos: -38.5,-42.5 + parent: 2 + - uid: 18971 + components: + - type: Transform + pos: -42.5,-49.5 + parent: 2 +- proto: SpawnPointSecurityCadet + entities: + - uid: 18972 + components: + - type: Transform + pos: -5.5,38.5 + parent: 2 + - uid: 18973 + components: + - type: Transform + pos: -4.5,38.5 + parent: 2 +- proto: SpawnPointSecurityOfficer + entities: + - uid: 18974 + components: + - type: Transform + pos: -9.5,34.5 + parent: 2 + - uid: 18975 + components: + - type: Transform + pos: -9.5,35.5 + parent: 2 + - uid: 18976 + components: + - type: Transform + pos: -12.5,36.5 + parent: 2 + - uid: 18977 + components: + - type: Transform + pos: -12.5,35.5 + parent: 2 + - uid: 18978 + components: + - type: Transform + pos: -12.5,34.5 + parent: 2 +- proto: SpawnPointServiceWorker + entities: + - uid: 18979 + components: + - type: Transform + pos: 33.5,11.5 + parent: 2 + - uid: 18980 + components: + - type: Transform + pos: 34.5,11.5 + parent: 2 +- proto: SpawnPointStationEngineer + entities: + - uid: 18981 + components: + - type: Transform + pos: 3.5,-60.5 + parent: 2 + - uid: 18982 + components: + - type: Transform + pos: 3.5,-59.5 + parent: 2 + - uid: 18983 + components: + - type: Transform + pos: 3.5,-58.5 + parent: 2 +- proto: SpawnPointTechnicalAssistant + entities: + - uid: 18984 + components: + - type: Transform + pos: 3.5,-53.5 + parent: 2 + - uid: 18985 + components: + - type: Transform + pos: 4.5,-53.5 + parent: 2 +- proto: SpawnPointWarden + entities: + - uid: 18986 + components: + - type: Transform + pos: -16.5,34.5 + parent: 2 +- proto: SpearBone + entities: + - uid: 18987 + components: + - type: Transform + pos: 15.473252,31.482315 + parent: 2 +- proto: SpiderWeb + entities: + - uid: 18988 + components: + - type: Transform + pos: 43.5,-37.5 + parent: 2 + - uid: 18989 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 43.5,-36.5 + parent: 2 + - uid: 18990 + components: + - type: Transform + pos: 18.5,-29.5 + parent: 2 + - uid: 18994 + components: + - type: Transform + pos: -23.5,-60.5 + parent: 2 + - uid: 18995 + components: + - type: Transform + pos: -22.5,-58.5 + parent: 2 + - uid: 18996 + components: + - type: Transform + pos: -23.5,-58.5 + parent: 2 + - uid: 18997 + components: + - type: Transform + pos: -24.5,-59.5 + parent: 2 + - uid: 18998 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 44.5,-36.5 + parent: 2 + - uid: 18999 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 47.5,-38.5 + parent: 2 + - uid: 19000 + components: + - type: Transform + pos: 42.5,-40.5 + parent: 2 + - uid: 19001 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 43.5,-40.5 + parent: 2 + - uid: 19002 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 43.5,-39.5 + parent: 2 + - uid: 19003 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 37.5,-36.5 + parent: 2 + - uid: 19004 + components: + - type: Transform + pos: 35.5,-39.5 + parent: 2 + - uid: 19005 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 36.5,-39.5 + parent: 2 + - uid: 19006 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 32.5,-36.5 + parent: 2 + - uid: 19007 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 35.5,-34.5 + parent: 2 + - uid: 19008 + components: + - type: Transform + pos: 34.5,-37.5 + parent: 2 + - uid: 19009 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 34.5,-36.5 + parent: 2 + - uid: 19010 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 4.5,-34.5 + parent: 2 + - uid: 19011 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 7.5,-34.5 + parent: 2 +- proto: SprayBottle + entities: + - uid: 19014 + components: + - type: Transform + pos: 15.496991,-36.53507 + parent: 2 +- proto: SprayBottleSpaceCleaner + entities: + - uid: 19015 + components: + - type: Transform + pos: 7.25298,12.605946 + parent: 2 +- proto: SprayBottleWater + entities: + - uid: 19016 + components: + - type: Transform + pos: 38.27459,-33.275814 + parent: 2 + - uid: 19017 + components: + - type: Transform + pos: 38.367832,-33.229195 + parent: 2 +- proto: SprayPainter + entities: + - uid: 19018 + components: + - type: Transform + pos: 4.397191,15.891615 + parent: 2 + - uid: 19019 + components: + - type: Transform + pos: -36.55078,-62.416622 + parent: 2 +- proto: Stairs + entities: + - uid: 18581 + components: + - type: Transform + pos: 1.5,-1.5 + parent: 2 + - uid: 19020 + components: + - type: Transform + pos: 19.5,38.5 + parent: 2 + - uid: 19021 + components: + - type: Transform + pos: 20.5,38.5 + parent: 2 + - uid: 19022 + components: + - type: Transform + pos: 21.5,38.5 + parent: 2 + - uid: 19023 + components: + - type: Transform + pos: -0.5,-1.5 + parent: 2 + - uid: 19024 + components: + - type: Transform + pos: 0.5,-1.5 + parent: 2 + - uid: 19026 + components: + - type: Transform + pos: 2.5,-1.5 + parent: 2 + - uid: 19027 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 3.5,-0.5 + parent: 2 + - uid: 19028 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 3.5,0.5 + parent: 2 + - uid: 19030 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 3.5,2.5 + parent: 2 + - uid: 19031 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -1.5,-0.5 + parent: 2 + - uid: 19033 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -1.5,1.5 + parent: 2 + - uid: 19034 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -1.5,2.5 + parent: 2 + - uid: 19035 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -0.5,3.5 + parent: 2 + - uid: 19036 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 0.5,3.5 + parent: 2 + - uid: 19037 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -1.5,0.5 + parent: 2 + - uid: 19038 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 2.5,3.5 + parent: 2 + - uid: 19039 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -16.5,-57.5 + parent: 2 + - uid: 19040 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -16.5,-58.5 + parent: 2 + - uid: 19041 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -20.5,-60.5 + parent: 2 + - uid: 19042 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -19.5,-60.5 + parent: 2 + - uid: 19043 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -18.5,-60.5 + parent: 2 + - uid: 19044 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -17.5,-60.5 + parent: 2 + - uid: 19720 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 1.5,3.5 + parent: 2 + - uid: 22841 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 3.5,1.5 + parent: 2 +- proto: StairStage + entities: + - uid: 19045 + components: + - type: Transform + pos: 32.5,9.5 + parent: 2 +- proto: StasisBed + entities: + - uid: 19046 + components: + - type: Transform + pos: -30.5,35.5 + parent: 2 + - uid: 19047 + components: + - type: Transform + pos: 25.5,-32.5 + parent: 2 + - uid: 19048 + components: + - type: Transform + pos: 23.5,-27.5 + parent: 2 +- proto: StationMap + entities: + - uid: 19049 + components: + - type: Transform + pos: -2.5,5.5 + parent: 2 + - uid: 19050 + components: + - type: Transform + pos: -27.5,3.5 + parent: 2 + - uid: 19051 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -27.5,-15.5 + parent: 2 + - uid: 19052 + components: + - type: Transform + pos: -3.5,-19.5 + parent: 2 + - uid: 19053 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 36.5,10.5 + parent: 2 + - uid: 19054 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 14.5,7.5 + parent: 2 + - uid: 19055 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 33.5,21.5 + parent: 2 + - uid: 19056 + components: + - type: Transform + pos: 33.5,31.5 + parent: 2 + - uid: 19057 + components: + - type: Transform + pos: 24.5,34.5 + parent: 2 + - uid: 19058 + components: + - type: Transform + pos: 30.5,40.5 + parent: 2 + - uid: 19059 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 47.5,-17.5 + parent: 2 + - uid: 19060 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -40.5,27.5 + parent: 2 + - uid: 19061 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 4.5,45.5 + parent: 2 + - uid: 19062 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 9.5,45.5 + parent: 2 + - uid: 19063 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -9.5,48.5 + parent: 2 + - uid: 19064 + components: + - type: Transform + pos: -8.5,57.5 + parent: 2 + - uid: 19065 + components: + - type: Transform + pos: 13.5,51.5 + parent: 2 + - uid: 19066 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 6.5,51.5 + parent: 2 + - uid: 19067 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 27.5,-19.5 + parent: 2 + - uid: 19068 + components: + - type: Transform + pos: 35.5,-22.5 + parent: 2 + - uid: 19069 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 45.5,38.5 + parent: 2 + - uid: 19070 + components: + - type: Transform + pos: 14.5,45.5 + parent: 2 + - uid: 19071 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -35.5,-23.5 + parent: 2 + - uid: 19072 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 3.5,-17.5 + parent: 2 + - uid: 19073 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -1.5,-40.5 + parent: 2 + - uid: 19074 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 22.5,-1.5 + parent: 2 + - uid: 19075 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 45.5,30.5 + parent: 2 + - uid: 19076 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 42.5,-13.5 + parent: 2 + - uid: 19077 + components: + - type: Transform + pos: 37.5,-1.5 + parent: 2 + - uid: 19078 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -1.5,21.5 + parent: 2 + - uid: 19079 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 3.5,39.5 + parent: 2 +- proto: StationRecordsComputerCircuitboard + entities: + - uid: 19080 + components: + - type: Transform + pos: -0.54542005,72.60167 + parent: 2 +- proto: SteelBench + entities: + - uid: 19081 + components: + - type: Transform + pos: -30.5,-10.5 + parent: 2 + - uid: 19082 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -28.5,-14.5 + parent: 2 + - uid: 19083 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -27.5,-14.5 + parent: 2 + - uid: 19084 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -26.5,-14.5 + parent: 2 + - uid: 19085 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -8.5,18.5 + parent: 2 + - uid: 19086 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -7.5,18.5 + parent: 2 + - uid: 19087 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -6.5,18.5 + parent: 2 + - uid: 19088 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -18.5,24.5 + parent: 2 + - uid: 19089 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -19.5,24.5 + parent: 2 + - uid: 19090 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -20.5,24.5 + parent: 2 + - uid: 19091 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -21.5,24.5 + parent: 2 + - uid: 19092 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -8.5,22.5 + parent: 2 + - uid: 19093 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -8.5,23.5 + parent: 2 + - uid: 19094 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -8.5,24.5 + parent: 2 + - uid: 19095 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -11.5,23.5 + parent: 2 + - uid: 19096 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -2.5,23.5 + parent: 2 +- proto: Stool + entities: + - uid: 19097 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -35.5,-64.5 + parent: 2 + - uid: 19098 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 23.5,4.5 + parent: 2 + - uid: 19099 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 17.5,8.5 + parent: 2 + - uid: 19100 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 17.5,9.5 + parent: 2 + - uid: 19101 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 19.5,9.5 + parent: 2 + - uid: 19102 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 19.5,8.5 + parent: 2 + - uid: 19103 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 39.5,0.5 + parent: 2 + - uid: 19104 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 43.5,-0.5 + parent: 2 + - uid: 19105 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 43.5,-0.5 + parent: 2 + - uid: 19106 + components: + - type: Transform + pos: -33.5,39.5 + parent: 2 + - uid: 19107 + components: + - type: Transform + pos: -33.5,36.5 + parent: 2 + - uid: 19108 + components: + - type: Transform + pos: -33.5,33.5 + parent: 2 + - uid: 19109 + components: + - type: Transform + pos: -38.5,35.5 + parent: 2 + - uid: 19110 + components: + - type: Transform + pos: -39.5,35.5 + parent: 2 + - uid: 19111 + components: + - type: Transform + pos: -40.5,35.5 + parent: 2 + - uid: 19112 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -40.5,33.5 + parent: 2 + - uid: 19113 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -39.5,33.5 + parent: 2 + - uid: 19114 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -38.5,33.5 + parent: 2 + - uid: 19115 + components: + - type: Transform + pos: 41.5,-17.5 + parent: 2 + - uid: 19116 + components: + - type: Transform + pos: 40.5,-17.5 + parent: 2 +- proto: StoolBar + entities: + - uid: 19117 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -27.5,-64.5 + parent: 2 + - uid: 19118 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -27.5,-63.5 + parent: 2 + - uid: 19119 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -27.5,-62.5 + parent: 2 + - uid: 19120 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 16.5,11.5 + parent: 2 + - uid: 19121 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 17.5,11.5 + parent: 2 + - uid: 19122 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 18.5,11.5 + parent: 2 + - uid: 19123 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 19.5,11.5 + parent: 2 + - uid: 19124 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 21.5,11.5 + parent: 2 + - uid: 19125 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 21.5,10.5 + parent: 2 + - uid: 19126 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 21.5,9.5 + parent: 2 + - uid: 19127 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 22.5,8.5 + parent: 2 + - uid: 19128 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 23.5,8.5 + parent: 2 + - uid: 19129 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 24.5,8.5 + parent: 2 + - uid: 19130 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 25.5,8.5 + parent: 2 + - uid: 19131 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 26.5,8.5 + parent: 2 + - uid: 19132 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 27.5,9.5 + parent: 2 + - uid: 19133 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 27.5,10.5 + parent: 2 + - uid: 19134 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 27.5,11.5 + parent: 2 + - uid: 19135 + components: + - type: Transform + pos: -14.5,-60.5 + parent: 2 + - uid: 19136 + components: + - type: Transform + pos: -13.5,-60.5 + parent: 2 + - uid: 19137 + components: + - type: Transform + pos: -12.5,-60.5 + parent: 2 +- proto: StorageCanister + entities: + - uid: 19138 + components: + - type: Transform + pos: 16.5,-54.5 + parent: 2 + - uid: 19139 + components: + - type: Transform + pos: -30.5,-37.5 + parent: 2 + - uid: 19140 + components: + - type: Transform + pos: -30.5,-38.5 + parent: 2 + - uid: 19141 + components: + - type: Transform + pos: -30.5,-39.5 + parent: 2 + - uid: 19142 + components: + - type: Transform + pos: 10.5,-62.5 + parent: 2 + - uid: 19143 + components: + - type: Transform + pos: 35.5,-51.5 + parent: 2 + - uid: 19144 + components: + - type: Transform + pos: 36.5,-51.5 + parent: 2 + - uid: 19145 + components: + - type: Transform + pos: 37.5,-51.5 + parent: 2 + - uid: 19146 + components: + - type: Transform + pos: 38.5,-51.5 + parent: 2 + - uid: 19147 + components: + - type: Transform + pos: 34.5,-43.5 + parent: 2 + - uid: 22957 + components: + - type: Transform + pos: -1.5,-76.5 + parent: 2 + - uid: 23088 + components: + - type: Transform + pos: 2.5,-76.5 + parent: 2 + - uid: 23089 + components: + - type: Transform + pos: -3.5,-66.5 + parent: 2 + - uid: 23095 + components: + - type: Transform + pos: -2.5,-66.5 + parent: 2 +- proto: SubstationBasic + entities: + - uid: 19148 + components: + - type: Transform + pos: -2.5,49.5 + parent: 2 + - uid: 19149 + components: + - type: MetaData + name: Substarion da Médica + - type: Transform + pos: 13.5,-2.5 + parent: 2 + - uid: 19150 + components: + - type: MetaData + name: Substation da Segurança + - type: Transform + pos: -29.5,15.5 + parent: 2 + - uid: 19151 + components: + - type: MetaData + name: Substation do Serviço + - type: Transform + pos: 9.5,22.5 + parent: 2 + - uid: 19152 + components: + - type: Transform + pos: 5.5,32.5 + parent: 2 + - uid: 19153 + components: + - type: Transform + pos: 8.5,35.5 + parent: 2 + - uid: 19154 + components: + - type: MetaData + name: Substation da Engenharia + - type: Transform + pos: 0.5,-53.5 + parent: 2 + - uid: 19155 + components: + - type: MetaData + name: Substation da Ciência + - type: Transform + pos: -22.5,-54.5 + parent: 2 + - uid: 19156 + components: + - type: MetaData + name: Substation da Carga + - type: Transform + pos: -16.5,-15.5 + parent: 2 + - uid: 19157 + components: + - type: MetaData + name: Substation da I.A. + - type: Transform + pos: -3.5,76.5 + parent: 2 +- proto: SuitStorageAtmos + entities: + - uid: 19158 + components: + - type: Transform + pos: 20.5,-51.5 + parent: 2 + - uid: 19159 + components: + - type: Transform + pos: 20.5,-50.5 + parent: 2 +- proto: SuitStorageCaptain + entities: + - uid: 19160 + components: + - type: Transform + pos: -5.5,47.5 + parent: 2 +- proto: SuitStorageCE + entities: + - uid: 19161 + components: + - type: Transform + pos: 14.5,-54.5 + parent: 2 +- proto: SuitStorageCMO + entities: + - uid: 19162 + components: + - type: Transform + pos: 22.5,-18.5 + parent: 2 +- proto: SuitStorageEngi + entities: + - uid: 19163 + components: + - type: Transform + pos: 2.5,-54.5 + parent: 2 + - uid: 19164 + components: + - type: Transform + pos: 2.5,-55.5 + parent: 2 + - uid: 19165 + components: + - type: Transform + pos: 2.5,-56.5 + parent: 2 +- proto: SuitStorageEVA + entities: + - uid: 19166 + components: + - type: Transform + pos: -43.5,-7.5 + parent: 2 + - uid: 19167 + components: + - type: Transform + pos: -44.5,-7.5 + parent: 2 + - uid: 19168 + components: + - type: Transform + pos: -6.5,-20.5 + parent: 2 + - uid: 19169 + components: + - type: Transform + pos: -5.5,-20.5 + parent: 2 + - uid: 19170 + components: + - type: Transform + pos: -3.5,-20.5 + parent: 2 + - uid: 19171 + components: + - type: Transform + pos: -2.5,-20.5 + parent: 2 + - uid: 19172 + components: + - type: Transform + pos: -2.5,-24.5 + parent: 2 + - uid: 19173 + components: + - type: Transform + pos: -3.5,-24.5 + parent: 2 + - uid: 19174 + components: + - type: Transform + pos: -5.5,-24.5 + parent: 2 + - uid: 19175 + components: + - type: Transform + pos: -6.5,-24.5 + parent: 2 + - uid: 19176 + components: + - type: Transform + pos: -8.5,42.5 + parent: 2 + - uid: 19177 + components: + - type: Transform + pos: -8.5,41.5 + parent: 2 + - uid: 19178 + components: + - type: Transform + pos: 13.5,50.5 + parent: 2 + - uid: 19179 + components: + - type: Transform + pos: 13.5,49.5 + parent: 2 +- proto: SuitStorageHOS + entities: + - uid: 19180 + components: + - type: Transform + pos: -25.5,45.5 + parent: 2 +- proto: SuitStorageRD + entities: + - uid: 19181 + components: + - type: Transform + pos: -17.5,-19.5 + parent: 2 +- proto: SuitStorageSalv + entities: + - uid: 19182 + components: + - type: Transform + pos: -40.5,-13.5 + parent: 2 + - uid: 19183 + components: + - type: Transform + pos: -39.5,-13.5 + parent: 2 + - uid: 19184 + components: + - type: Transform + pos: -38.5,-13.5 + parent: 2 +- proto: SuitStorageSec + entities: + - uid: 19185 + components: + - type: Transform + pos: -11.5,40.5 + parent: 2 + - uid: 19186 + components: + - type: Transform + pos: -11.5,39.5 + parent: 2 +- proto: SuitStorageWarden + entities: + - uid: 19187 + components: + - type: Transform + pos: -17.5,33.5 + parent: 2 +- proto: Supermatter + entities: + - uid: 19188 + components: + - type: Transform + pos: 0.5,-69.5 + parent: 2 +- proto: SurveillanceCameraCommand + entities: + - uid: 19189 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -26.5,-11.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraCommand + nameSet: True + id: Portal + - uid: 19190 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -35.5,15.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraCommand + nameSet: True + id: Vault + - uid: 19191 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -6.5,-22.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraCommand + nameSet: True + id: Emergency Equipment + - uid: 19192 + components: + - type: Transform + pos: -3.5,-40.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraCommand + nameSet: True + id: Expensive Plate Deposit + - uid: 19193 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 8.5,31.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraCommand + nameSet: True + id: Gravity + - uid: 19194 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 8.5,40.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraCommand + nameSet: True + id: Comms + - uid: 19195 + components: + - type: Transform + pos: -7.5,47.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraCommand + nameSet: True + id: Captain Bedroom + - uid: 19196 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -2.5,56.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraCommand + nameSet: True + id: Captain office + - uid: 19197 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 6.5,49.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraCommand + nameSet: True + id: Head of Personel + - uid: 19198 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 11.5,46.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraCommand + nameSet: True + id: HoP Expedition + - uid: 19199 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 4.5,54.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraCommand + nameSet: True + id: Bridge - Meeting Room + - uid: 19200 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -5.5,59.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraCommand + nameSet: True + id: Bridge - 2 + - uid: 19201 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 7.5,59.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraCommand + nameSet: True + id: Bridge - 1 + - uid: 19202 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 8.5,72.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraCommand + nameSet: True + id: A.I. Southeast + - uid: 19203 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -3.5,72.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraCommand + nameSet: True + id: I.A Southwest + - uid: 19204 + components: + - type: Transform + pos: 1.5,69.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraCommand + nameSet: True + id: A.I. South + - uid: 19205 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 6.5,77.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraCommand + nameSet: True + id: A.I. East + - uid: 19206 + components: + - type: Transform + pos: 5.5,82.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraCommand + nameSet: True + id: A.I. North East + - uid: 19207 + components: + - type: Transform + pos: -2.5,82.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraCommand + nameSet: True + id: A.I. Northwest + - uid: 19208 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -3.5,76.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraCommand + nameSet: True + id: A.I. West + - uid: 19209 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -10.5,76.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraCommand + nameSet: True + id: A.I. Exterior + - uid: 19211 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -0.5,55.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraCommand + nameSet: True + id: Bridge Entrance + - uid: 22328 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 8.5,26.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraCommand + nameSet: True + id: Representative Office +- proto: SurveillanceCameraEngineering + entities: + - uid: 19212 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 5.5,19.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraEngineering + nameSet: True + id: Auxiliary Engineering + - uid: 19213 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -4.5,-36.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraEngineering + nameSet: True + id: Common Plate Deposit + - uid: 19214 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 46.5,24.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraEngineering + nameSet: True + id: Northeast Solar + - uid: 19215 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 8.5,-50.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraEngineering + nameSet: True + id: Hallway + - uid: 19216 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 10.5,-53.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraEngineering + nameSet: True + id: Office of the Chief Engineer + - uid: 19217 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 8.5,-58.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraEngineering + nameSet: True + id: Decontamination + - uid: 19218 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -3.5,-55.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraEngineering + nameSet: True + id: AME + - uid: 19219 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -20.5,-59.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraEngineering + nameSet: True + id: SMES Bank + - uid: 19220 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 12.5,-57.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraEngineering + nameSet: True + id: Engineering Depot + - uid: 19221 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 14.5,-66.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraEngineering + nameSet: True + id: Emitters + - uid: 19222 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -9.5,-67.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraEngineering + nameSet: True + id: SM Cooling + - uid: 19223 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 0.5,-62.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraEngineering + nameSet: True + id: Supermatter North + - uid: 19224 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 0.5,-72.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraEngineering + nameSet: True + id: Supermatter South + - uid: 19225 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 38.5,-49.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraEngineering + nameSet: True + id: Tank Depot + - uid: 19226 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 10.5,-44.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraEngineering + nameSet: True + id: TEG + - uid: 19227 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 23.5,-39.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraEngineering + nameSet: True + id: TEG 2 + - uid: 19228 + components: + - type: Transform + pos: 19.5,-51.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraEngineering + nameSet: True + id: Atmos Canisters + - uid: 19229 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 6.5,-39.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraEngineering + nameSet: True + id: Prohibited + - uid: 19230 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -7.5,-69.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraEngineering + nameSet: True + id: Supermatter West + - uid: 19231 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 34.5,-43.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraEngineering + nameSet: True + id: TEG mixer + - uid: 19232 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 40.5,-57.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraEngineering + nameSet: True + id: Southeast Solar + - uid: 19233 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 27.5,-57.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraEngineering + nameSet: True + id: Atmospheric South + - uid: 19234 + components: + - type: Transform + pos: 27.5,-55.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraEngineering + nameSet: True + id: North Astmospheric + - uid: 19235 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 2.5,-58.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraEngineering + nameSet: True + id: Equipment Room + - uid: 19236 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -2.5,-45.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraEngineering + nameSet: True + id: Front desk + - uid: 19237 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 8.5,-69.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraEngineering + nameSet: True + id: East Supermatter +- proto: SurveillanceCameraGeneral + entities: + - uid: 19238 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -34.5,-9.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraGeneral + nameSet: True + id: Epis Corridor + - uid: 19239 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -9.5,-1.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraGeneral + nameSet: True + id: Midwest + - uid: 19240 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -9.5,3.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraGeneral + nameSet: True + id: West Corridor 2 + - uid: 19241 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 3.5,4.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraGeneral + nameSet: True + id: Station Center + - uid: 19242 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 3.5,11.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraGeneral + nameSet: True + id: North Center + - uid: 19243 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 11.5,-1.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraGeneral + nameSet: True + id: East Center + - uid: 19244 + components: + - type: Transform + pos: 3.5,-9.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraGeneral + nameSet: True + id: South Center + - uid: 19245 + components: + - type: Transform + pos: -19.5,-0.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraGeneral + nameSet: True + id: Cargo Corridor/Epis 2 + - uid: 19246 + components: + - type: Transform + pos: -31.5,-0.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraGeneral + nameSet: True + id: Cargo Corridor/Epis 1 + - uid: 19247 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 15.5,8.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraGeneral + nameSet: True + id: East Bar + - uid: 19248 + components: + - type: Transform + pos: 27.5,5.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraGeneral + nameSet: True + id: Downtown Bar + - uid: 19249 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 35.5,10.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraGeneral + nameSet: True + id: West Bar + - uid: 19250 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 43.5,0.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraGeneral + nameSet: True + id: Librarian's Room + - uid: 19251 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 30.5,-3.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraGeneral + nameSet: True + id: Security Point + - uid: 19252 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 38.5,3.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraGeneral + nameSet: True + id: Library + - uid: 19253 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 30.5,13.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraGeneral + nameSet: True + id: Service/Dorms Corridor + - uid: 19254 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 28.5,27.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraGeneral + nameSet: True + id: Dormitory Entrance + - uid: 19255 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 32.5,36.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraGeneral + nameSet: True + id: Hologram Room + - uid: 19256 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 30.5,39.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraGeneral + nameSet: True + id: Dorms + - uid: 19257 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 37.5,30.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraGeneral + nameSet: True + id: Central part of the Dormitory + - uid: 19258 + components: + - type: Transform + pos: 44.5,26.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraGeneral + nameSet: True + id: Arrivals Corridor 1 + - uid: 19259 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 44.5,37.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraGeneral + nameSet: True + id: Arrivals Corridor 2 + - uid: 19260 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 42.5,-3.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraGeneral + nameSet: True + id: North Evacuation + - uid: 19261 + components: + - type: Transform + pos: 35.5,-12.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraGeneral + nameSet: True + id: South Evacuation + - uid: 19262 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -0.5,18.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraGeneral + nameSet: True + id: Sec/Bridge Corridor 1 + - uid: 19263 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -0.5,30.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraGeneral + nameSet: True + id: Sec/Bridge Corridor 2 + - uid: 19264 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -0.5,43.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraGeneral + nameSet: True + id: Sec/Bridge Corridor 3 + - uid: 19265 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 32.5,2.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraGeneral + nameSet: True + id: Evacuation Entrance and Bar + - uid: 19266 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -0.5,-19.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraGeneral + nameSet: True + id: Eng/Med Corridor 1 + - uid: 19267 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -0.5,-34.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraGeneral + nameSet: True + id: Eng/Med Corridor 2 +- proto: SurveillanceCameraMedical + entities: + - uid: 19268 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 18.5,-18.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraMedical + nameSet: True + id: Equipment Area + - uid: 19269 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 15.5,-13.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraMedical + nameSet: True + id: Surgical Ward + - uid: 19270 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 16.5,-8.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraMedical + nameSet: True + id: Morgue + - uid: 19271 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 24.5,-17.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraMedical + nameSet: True + id: Office of the Chief Medical Officer + - uid: 19272 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 31.5,-14.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraMedical + nameSet: True + id: Experiment Workshop + - uid: 19273 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 41.5,-14.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraMedical + nameSet: True + id: Rest Area + - uid: 19274 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 38.5,-30.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraMedical + nameSet: True + id: Virology + - uid: 19275 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 44.5,-30.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraMedical + nameSet: True + id: Quarantine + - uid: 19276 + components: + - type: Transform + pos: 45.5,-25.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraMedical + nameSet: True + id: Psychologist's Office + - uid: 19277 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 25.5,-29.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraMedical + nameSet: True + id: Cryogenic + - uid: 19278 + components: + - type: Transform + pos: 19.5,-32.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraMedical + nameSet: True + id: Genetics + - uid: 19279 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 4.5,-30.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraMedical + nameSet: True + id: Chemical + - uid: 19280 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 5.5,-18.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraMedical + nameSet: True + id: Security Point + - uid: 19281 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 9.5,-18.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraMedical + nameSet: True + id: Front desk + - uid: 19282 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 36.5,-20.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraMedical + nameSet: True + id: Northeast Corridor + - uid: 19283 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 12.5,-26.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraMedical + nameSet: True + id: Treatment Area + - uid: 19284 + components: + - type: Transform + pos: 28.5,-25.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraMedical + nameSet: True + id: East Corridor +- proto: SurveillanceCameraRouterCommand + entities: + - uid: 19285 + components: + - type: Transform + pos: 4.5,39.5 + parent: 2 +- proto: SurveillanceCameraRouterEngineering + entities: + - uid: 19286 + components: + - type: Transform + pos: 8.5,41.5 + parent: 2 +- proto: SurveillanceCameraRouterGeneral + entities: + - uid: 19287 + components: + - type: Transform + pos: 8.5,38.5 + parent: 2 +- proto: SurveillanceCameraRouterMedical + entities: + - uid: 19288 + components: + - type: Transform + pos: 8.5,39.5 + parent: 2 +- proto: SurveillanceCameraRouterScience + entities: + - uid: 19289 + components: + - type: Transform + pos: 4.5,37.5 + parent: 2 +- proto: SurveillanceCameraRouterSecurity + entities: + - uid: 19290 + components: + - type: Transform + pos: 8.5,37.5 + parent: 2 +- proto: SurveillanceCameraRouterService + entities: + - uid: 19291 + components: + - type: Transform + pos: 4.5,38.5 + parent: 2 +- proto: SurveillanceCameraRouterSupply + entities: + - uid: 19292 + components: + - type: Transform + pos: 4.5,41.5 + parent: 2 +- proto: SurveillanceCameraScience + entities: + - uid: 19293 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -34.5,-23.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraScience + nameSet: True + id: Reception of Science + - uid: 19294 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -30.5,-18.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraScience + nameSet: True + id: Garage + - uid: 19295 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -27.5,-35.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraScience + nameSet: True + id: Security Point + - uid: 19296 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -34.5,-41.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraScience + nameSet: True + id: South Corridor + - uid: 19297 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -22.5,-16.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraScience + nameSet: True + id: Robotics 2 + - uid: 19298 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -17.5,-24.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraScience + nameSet: True + id: Director's Office + - uid: 19299 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -17.5,-20.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraScience + nameSet: True + id: Director's Room + - uid: 19300 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -28.5,-46.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraScience + nameSet: True + id: Target Shooting + - uid: 19301 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -31.5,-50.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraScience + nameSet: True + id: Toxins + - uid: 19302 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -41.5,-49.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraScience + nameSet: True + id: Launch + - uid: 19303 + components: + - type: Transform + pos: -41.5,-43.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraScience + nameSet: True + id: Dock + - uid: 19304 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -39.5,-37.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraScience + nameSet: True + id: Anomalous Deposit + - uid: 19305 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -41.5,-33.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraScience + nameSet: True + id: Anomalous Laboratory + - uid: 19306 + components: + - type: Transform + pos: -11.5,-49.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraScience + nameSet: True + id: South Experiment Cell + - uid: 19307 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -6.5,-42.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraScience + nameSet: True + id: Special Experiment Cell + - uid: 19308 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -9.5,-35.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraScience + nameSet: True + id: North Experiment Cells + - uid: 19309 + components: + - type: Transform + pos: -3.5,-33.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraScience + nameSet: True + id: Entrance to Xenobiology + - uid: 19310 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -9.5,-21.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraScience + nameSet: True + id: Rest Area + - uid: 19311 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -35.5,-31.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraScience + nameSet: True + id: Research Workshop + - uid: 19312 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -20.5,-30.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraScience + nameSet: True + id: Artifacts Laboratory + - uid: 19313 + components: + - type: Transform + pos: -15.5,-28.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraScience + nameSet: True + id: East Corridor + - uid: 19314 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -28.5,-37.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraScience + nameSet: True + id: Tank Depot + - uid: 19315 + components: + - type: Transform + pos: -24.5,-24.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraScience + nameSet: True + id: Robotics 1 +- proto: SurveillanceCameraSecurity + entities: + - uid: 19316 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -4.5,16.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraSecurity + nameSet: True + id: Advocacy + - uid: 19317 + components: + - type: Transform + pos: -31.5,23.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraSecurity + nameSet: True + id: Execution + - uid: 19318 + components: + - type: Transform + pos: 44.5,-18.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraSecurity + nameSet: True + id: Evacuation Sacurity Point + - uid: 19319 + components: + - type: Transform + pos: -8.5,18.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraSecurity + nameSet: True + id: South Corridor + - uid: 19320 + components: + - type: Transform + pos: -14.5,38.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraSecurity + nameSet: True + id: Armory + - uid: 19321 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -19.5,36.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraSecurity + nameSet: True + id: Evidence Cabinet + - uid: 19322 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -8.5,42.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraSecurity + nameSet: True + id: EVA + - uid: 19323 + components: + - type: Transform + pos: -22.5,38.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraSecurity + nameSet: True + id: HoS room 1 + - uid: 19324 + components: + - type: Transform + pos: -24.5,43.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraSecurity + nameSet: True + id: HoS Room + - uid: 19325 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -30.5,34.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraSecurity + nameSet: True + id: Brig Medical Wing + - uid: 19326 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -42.5,31.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraSecurity + nameSet: True + id: Perma 2 + - uid: 19327 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -36.5,39.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraSecurity + nameSet: True + id: Perma 1 + - uid: 19328 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -40.5,26.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraSecurity + nameSet: True + id: Expedition Control Brig + - uid: 19329 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -35.5,21.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraSecurity + nameSet: True + id: Transfer + - uid: 19330 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -28.5,30.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraSecurity + nameSet: True + id: Inner Corridor + - uid: 19331 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -22.5,31.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraSecurity + nameSet: True + id: Brig Corridor 2 + - uid: 19332 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -13.5,29.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraSecurity + nameSet: True + id: Brig Corridor 1 + - uid: 19333 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -4.5,31.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraSecurity + nameSet: True + id: Brig Entry + - uid: 19334 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -3.5,40.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraSecurity + nameSet: True + id: Front desk + - uid: 19335 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -17.5,33.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraSecurity + nameSet: True + id: Brig - Warden + - uid: 19336 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -23.5,24.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraSecurity + nameSet: True + id: Interrogation + - uid: 19337 + components: + - type: Transform + pos: -15.5,43.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraSecurity + nameSet: True + id: Exterior + - uid: 19338 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -9.5,11.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraSecurity + nameSet: True + id: Court + - uid: 19339 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -12.5,33.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraSecurity + nameSet: True + id: Brig Security + - uid: 19340 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -21.5,20.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraSecurity + nameSet: True + id: Detective's Office + - uid: 23865 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -16.5,12.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraSecurity + nameSet: True + id: Chief Justice room +- proto: SurveillanceCameraService + entities: + - uid: 19341 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 10.5,15.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraService + nameSet: True + id: Janitor + - uid: 19342 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 17.5,14.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraService + nameSet: True + id: Bar Counter + - uid: 19343 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 17.5,17.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraService + nameSet: True + id: Bartender's Room + - uid: 19344 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 26.5,18.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraService + nameSet: True + id: Kitchen + - uid: 19345 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 21.5,22.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraService + nameSet: True + id: Freezer + - uid: 19346 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 38.5,15.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraService + nameSet: True + id: Botany + - uid: 19347 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 40.5,19.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraService + nameSet: True + id: Botany Deposit + - uid: 19348 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 41.5,15.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraService + nameSet: True + id: Theater + - uid: 19349 + components: + - type: Transform + pos: 19.5,29.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraService + nameSet: True + id: Capela + - uid: 19350 + components: + - type: Transform + pos: 14.5,35.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraService + nameSet: True + id: Crematorium + - uid: 19351 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 21.5,37.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraService + nameSet: True + id: Chapel Corridor + - uid: 19352 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 17.5,38.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraService + nameSet: True + id: Chapel Deposit + - uid: 19353 + components: + - type: Transform + pos: 21.5,42.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraService + nameSet: True + id: Wake + - uid: 19354 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 15.5,44.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraService + nameSet: True + id: Priest's Room +- proto: SurveillanceCameraSupply + entities: + - uid: 19355 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -32.5,8.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraSupply + nameSet: True + id: Cargo Reception + - uid: 19356 + components: + - type: Transform + pos: -28.5,-6.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraSupply + nameSet: True + id: Mail + - uid: 19357 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -27.5,5.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraSupply + nameSet: True + id: Quartermaster's Office + - uid: 19358 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -24.5,7.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraSupply + nameSet: True + id: Quartermaster's Room + - uid: 19359 + components: + - type: Transform + pos: -28.5,10.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraSupply + nameSet: True + id: Deposit + - uid: 19360 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -44.5,7.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraSupply + nameSet: True + id: Front desk + - uid: 19361 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -42.5,-0.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraSupply + nameSet: True + id: Área principal + - uid: 19362 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -36.5,-10.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraSupply + nameSet: True + id: Miners + - uid: 19363 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -36.5,-17.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraSupply + nameSet: True + id: Magnet +- proto: SurveillanceCameraWirelessRouterBase + entities: + - uid: 19364 + components: + - type: Transform + pos: 7.5,38.5 + parent: 2 +- proto: SurveillanceCameraWirelessRouterEntertainment + entities: + - uid: 19365 + components: + - type: Transform + pos: 5.5,38.5 + parent: 2 +- proto: SurveillanceWirelessCameraAnchoredEntertainment + entities: + - uid: 19366 + components: + - type: Transform + pos: -12.5,16.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraEntertainment + nameSet: True + id: 24 Hour Court +- proto: SurveillanceWirelessCameraMovableConstructed + entities: + - uid: 19367 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 15.5,23.5 + parent: 2 + - uid: 19368 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 15.5,22.5 + parent: 2 +- proto: SynthesizerInstrument + entities: + - uid: 19369 + components: + - type: Transform + pos: 37.525913,5.4845967 + parent: 2 +- proto: Syringe + entities: + - uid: 19370 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 23.53238,38.676575 + parent: 2 + - uid: 19371 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 42.826675,-28.196861 + parent: 2 + - uid: 19372 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 40.363167,-34.497257 + parent: 2 + - uid: 19373 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 29.509636,-34.21152 + parent: 2 +- proto: Table + entities: + - uid: 19374 + components: + - type: Transform + pos: -2.5,27.5 + parent: 2 + - uid: 19375 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -32.5,9.5 + parent: 2 + - uid: 19376 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -3.5,49.5 + parent: 2 + - uid: 19377 + components: + - type: Transform + pos: -13.5,6.5 + parent: 2 + - uid: 19378 + components: + - type: Transform + pos: -12.5,6.5 + parent: 2 + - uid: 19379 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 4.5,17.5 + parent: 2 + - uid: 19380 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 4.5,16.5 + parent: 2 + - uid: 19381 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 4.5,15.5 + parent: 2 + - uid: 19382 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 4.5,14.5 + parent: 2 + - uid: 19383 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 4.5,13.5 + parent: 2 + - uid: 19384 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 7.5,15.5 + parent: 2 + - uid: 19385 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 7.5,16.5 + parent: 2 + - uid: 19386 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 10.5,19.5 + parent: 2 + - uid: 19387 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 7.5,19.5 + parent: 2 + - uid: 19388 + components: + - type: Transform + pos: 7.5,13.5 + parent: 2 + - uid: 19389 + components: + - type: Transform + pos: 7.5,12.5 + parent: 2 + - uid: 19390 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -6.5,-12.5 + parent: 2 + - uid: 19391 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -2.5,-10.5 + parent: 2 + - uid: 19392 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -3.5,-10.5 + parent: 2 + - uid: 19393 + components: + - type: Transform + pos: -17.5,-13.5 + parent: 2 + - uid: 19394 + components: + - type: Transform + pos: -20.5,-11.5 + parent: 2 + - uid: 19395 + components: + - type: Transform + pos: -20.5,-12.5 + parent: 2 + - uid: 19396 + components: + - type: Transform + pos: 14.5,-2.5 + parent: 2 + - uid: 19397 + components: + - type: Transform + pos: -40.5,8.5 + parent: 2 + - uid: 19398 + components: + - type: Transform + pos: -39.5,8.5 + parent: 2 + - uid: 19399 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -44.5,-9.5 + parent: 2 + - uid: 19400 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -43.5,-9.5 + parent: 2 + - uid: 19401 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -42.5,-9.5 + parent: 2 + - uid: 19402 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -42.5,-7.5 + parent: 2 + - uid: 19403 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -30.5,-14.5 + parent: 2 + - uid: 19404 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -29.5,-14.5 + parent: 2 + - uid: 19405 + components: + - type: Transform + pos: -27.5,-16.5 + parent: 2 + - uid: 19406 + components: + - type: Transform + pos: -26.5,-16.5 + parent: 2 + - uid: 19407 + components: + - type: Transform + pos: -26.5,-18.5 + parent: 2 + - uid: 19408 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -38.5,-15.5 + parent: 2 + - uid: 19409 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -38.5,-16.5 + parent: 2 + - uid: 19410 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -38.5,-17.5 + parent: 2 + - uid: 19411 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -36.5,-18.5 + parent: 2 + - uid: 19412 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -36.5,-27.5 + parent: 2 + - uid: 19413 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -34.5,-28.5 + parent: 2 + - uid: 19414 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -33.5,-28.5 + parent: 2 + - uid: 19415 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -30.5,-34.5 + parent: 2 + - uid: 19416 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -27.5,-32.5 + parent: 2 + - uid: 19417 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -44.5,-39.5 + parent: 2 + - uid: 19418 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -44.5,-38.5 + parent: 2 + - uid: 19419 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -44.5,-36.5 + parent: 2 + - uid: 19420 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -44.5,-35.5 + parent: 2 + - uid: 19421 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -37.5,-52.5 + parent: 2 + - uid: 19422 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -37.5,-51.5 + parent: 2 + - uid: 19423 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -37.5,-50.5 + parent: 2 + - uid: 19424 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -36.5,-52.5 + parent: 2 + - uid: 19425 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -36.5,-51.5 + parent: 2 + - uid: 19426 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -36.5,-50.5 + parent: 2 + - uid: 19427 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -30.5,-48.5 + parent: 2 + - uid: 19428 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -30.5,-46.5 + parent: 2 + - uid: 19429 + components: + - type: Transform + pos: -29.5,-47.5 + parent: 2 + - uid: 19430 + components: + - type: Transform + pos: -29.5,-47.5 + parent: 2 + - uid: 19431 + components: + - type: Transform + pos: -21.5,-42.5 + parent: 2 + - uid: 19432 + components: + - type: Transform + pos: -21.5,-41.5 + parent: 2 + - uid: 19433 + components: + - type: Transform + pos: -19.5,-41.5 + parent: 2 + - uid: 19434 + components: + - type: Transform + pos: -19.5,-42.5 + parent: 2 + - uid: 19435 + components: + - type: Transform + pos: -19.5,-45.5 + parent: 2 + - uid: 19436 + components: + - type: Transform + pos: -22.5,-52.5 + parent: 2 + - uid: 19437 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -39.5,-63.5 + parent: 2 + - uid: 19438 + components: + - type: Transform + pos: -35.5,-62.5 + parent: 2 + - uid: 19439 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -27.5,-66.5 + parent: 2 + - uid: 19440 + components: + - type: Transform + pos: 15.5,13.5 + parent: 2 + - uid: 19441 + components: + - type: Transform + pos: 15.5,14.5 + parent: 2 + - uid: 19442 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 18.5,14.5 + parent: 2 + - uid: 19443 + components: + - type: Transform + pos: 25.5,19.5 + parent: 2 + - uid: 19444 + components: + - type: Transform + pos: 26.5,19.5 + parent: 2 + - uid: 19445 + components: + - type: Transform + pos: 26.5,18.5 + parent: 2 + - uid: 19446 + components: + - type: Transform + pos: 26.5,17.5 + parent: 2 + - uid: 19447 + components: + - type: Transform + pos: 21.5,17.5 + parent: 2 + - uid: 19448 + components: + - type: Transform + pos: 22.5,17.5 + parent: 2 + - uid: 19449 + components: + - type: Transform + pos: 23.5,17.5 + parent: 2 + - uid: 19450 + components: + - type: Transform + pos: 32.5,20.5 + parent: 2 + - uid: 19451 + components: + - type: Transform + pos: 32.5,19.5 + parent: 2 + - uid: 19452 + components: + - type: Transform + pos: 37.5,12.5 + parent: 2 + - uid: 19453 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 40.5,19.5 + parent: 2 + - uid: 19454 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 41.5,19.5 + parent: 2 + - uid: 19455 + components: + - type: Transform + pos: 18.5,27.5 + parent: 2 + - uid: 19456 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 36.5,26.5 + parent: 2 + - uid: 19457 + components: + - type: Transform + pos: 36.5,30.5 + parent: 2 + - uid: 19458 + components: + - type: Transform + pos: 32.5,28.5 + parent: 2 + - uid: 19459 + components: + - type: Transform + pos: 33.5,28.5 + parent: 2 + - uid: 19460 + components: + - type: Transform + pos: 35.5,28.5 + parent: 2 + - uid: 19461 + components: + - type: Transform + pos: 38.5,28.5 + parent: 2 + - uid: 19462 + components: + - type: Transform + pos: -8.5,31.5 + parent: 2 + - uid: 19463 + components: + - type: Transform + pos: -8.5,35.5 + parent: 2 + - uid: 19464 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -14.5,35.5 + parent: 2 + - uid: 19465 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -14.5,34.5 + parent: 2 + - uid: 19466 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -16.5,31.5 + parent: 2 + - uid: 19467 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -17.5,31.5 + parent: 2 + - uid: 19468 + components: + - type: Transform + pos: -8.5,37.5 + parent: 2 + - uid: 19469 + components: + - type: Transform + pos: -8.5,39.5 + parent: 2 + - uid: 19470 + components: + - type: Transform + pos: -41.5,30.5 + parent: 2 + - uid: 19471 + components: + - type: Transform + pos: -40.5,34.5 + parent: 2 + - uid: 19472 + components: + - type: Transform + pos: -39.5,34.5 + parent: 2 + - uid: 19473 + components: + - type: Transform + pos: -38.5,34.5 + parent: 2 + - uid: 19474 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -38.5,22.5 + parent: 2 + - uid: 19475 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -38.5,21.5 + parent: 2 + - uid: 19476 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -37.5,30.5 + parent: 2 + - uid: 19477 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -36.5,30.5 + parent: 2 + - uid: 19478 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -35.5,30.5 + parent: 2 + - uid: 19479 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -6.5,36.5 + parent: 2 + - uid: 19480 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 6.5,48.5 + parent: 2 + - uid: 19481 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 29.5,-14.5 + parent: 2 + - uid: 19482 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 28.5,-14.5 + parent: 2 + - uid: 19483 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 33.5,-14.5 + parent: 2 + - uid: 19484 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 34.5,-14.5 + parent: 2 + - uid: 19485 + components: + - type: Transform + pos: 30.5,-22.5 + parent: 2 + - uid: 19486 + components: + - type: Transform + pos: 32.5,-22.5 + parent: 2 + - uid: 19487 + components: + - type: Transform + pos: 42.5,-28.5 + parent: 2 + - uid: 19488 + components: + - type: Transform + pos: 42.5,-29.5 + parent: 2 + - uid: 19489 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 38.5,-33.5 + parent: 2 + - uid: 19490 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 38.5,-34.5 + parent: 2 + - uid: 19491 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 39.5,-34.5 + parent: 2 + - uid: 19492 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 40.5,-34.5 + parent: 2 + - uid: 19493 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 41.5,-34.5 + parent: 2 + - uid: 19494 + components: + - type: Transform + pos: 30.5,-31.5 + parent: 2 + - uid: 19495 + components: + - type: Transform + pos: 31.5,-31.5 + parent: 2 + - uid: 19496 + components: + - type: Transform + pos: 23.5,-30.5 + parent: 2 + - uid: 19497 + components: + - type: Transform + pos: 22.5,-30.5 + parent: 2 + - uid: 19498 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 4.5,-29.5 + parent: 2 + - uid: 19499 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 10.5,-29.5 + parent: 2 + - uid: 19500 + components: + - type: Transform + pos: 8.5,-42.5 + parent: 2 + - uid: 19501 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 4.5,-52.5 + parent: 2 + - uid: 19502 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 3.5,-52.5 + parent: 2 + - uid: 19503 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 2.5,-52.5 + parent: 2 + - uid: 19504 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 2.5,-53.5 + parent: 2 + - uid: 19505 + components: + - type: Transform + pos: 23.5,-39.5 + parent: 2 + - uid: 19506 + components: + - type: Transform + pos: 24.5,-39.5 + parent: 2 + - uid: 19507 + components: + - type: Transform + pos: 25.5,-39.5 + parent: 2 + - uid: 19508 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 36.5,-46.5 + parent: 2 + - uid: 19509 + components: + - type: Transform + pos: 22.5,-43.5 + parent: 2 + - uid: 19510 + components: + - type: Transform + pos: 22.5,-44.5 + parent: 2 + - uid: 19511 + components: + - type: Transform + pos: 22.5,-45.5 + parent: 2 + - uid: 19512 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -10.5,5.5 + parent: 2 + - uid: 19513 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -10.5,4.5 + parent: 2 + - uid: 19514 + components: + - type: Transform + pos: 41.5,-25.5 + parent: 2 + - uid: 19515 + components: + - type: Transform + pos: 18.5,21.5 + parent: 2 + - uid: 19516 + components: + - type: Transform + pos: 17.5,21.5 + parent: 2 + - uid: 19517 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 46.5,-40.5 + parent: 2 + - uid: 19518 + components: + - type: Transform + pos: 33.5,-39.5 + parent: 2 + - uid: 19519 + components: + - type: Transform + pos: 32.5,-38.5 + parent: 2 + - uid: 19520 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 7.5,-23.5 + parent: 2 + - uid: 19521 + components: + - type: Transform + pos: -2.5,20.5 + parent: 2 + - uid: 19522 + components: + - type: Transform + pos: 41.5,-12.5 + parent: 2 + - uid: 19523 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 15.5,7.5 + parent: 2 + - uid: 19524 + components: + - type: Transform + pos: 9.5,48.5 + parent: 2 +- proto: TableCarpet + entities: + - uid: 19525 + components: + - type: Transform + pos: -12.5,-23.5 + parent: 2 + - uid: 19526 + components: + - type: Transform + pos: -8.5,-22.5 + parent: 2 + - uid: 19527 + components: + - type: Transform + pos: -8.5,-23.5 + parent: 2 + - uid: 19528 + components: + - type: Transform + pos: -12.5,-24.5 + parent: 2 + - uid: 19529 + components: + - type: Transform + pos: -11.5,-24.5 + parent: 2 + - uid: 19530 + components: + - type: Transform + pos: -31.5,-60.5 + parent: 2 + - uid: 19531 + components: + - type: Transform + pos: -29.5,-60.5 + parent: 2 + - uid: 19532 + components: + - type: Transform + pos: -29.5,-64.5 + parent: 2 + - uid: 19533 + components: + - type: Transform + pos: -30.5,-64.5 + parent: 2 +- proto: TableFrame + entities: + - uid: 19534 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -32.5,-58.5 + parent: 2 + - uid: 19535 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -26.5,-64.5 + parent: 2 + - uid: 19536 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -26.5,-63.5 + parent: 2 + - uid: 19537 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -26.5,-62.5 + parent: 2 + - uid: 19538 + components: + - type: Transform + pos: 10.5,-36.5 + parent: 2 + - uid: 19539 + components: + - type: Transform + pos: 10.5,-37.5 + parent: 2 + - uid: 19540 + components: + - type: Transform + pos: 10.5,-38.5 + parent: 2 + - uid: 19541 + components: + - type: Transform + pos: 12.5,-38.5 + parent: 2 + - uid: 19542 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 47.5,-39.5 + parent: 2 + - uid: 19543 + components: + - type: Transform + pos: 5.5,-11.5 + parent: 2 + - uid: 19544 + components: + - type: Transform + pos: 4.5,-11.5 + parent: 2 + - uid: 19545 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 38.5,-39.5 + parent: 2 + - uid: 19546 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 38.5,-40.5 + parent: 2 + - uid: 19547 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 39.5,-40.5 + parent: 2 + - uid: 19548 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 47.5,-40.5 + parent: 2 + - uid: 19549 + components: + - type: Transform + pos: 32.5,-39.5 + parent: 2 +- proto: TableGlass + entities: + - uid: 19550 + components: + - type: Transform + pos: 7.5,-29.5 + parent: 2 + - uid: 19551 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -29.5,32.5 + parent: 2 + - uid: 19552 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -30.5,32.5 + parent: 2 + - uid: 19553 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -30.5,37.5 + parent: 2 + - uid: 19554 + components: + - type: Transform + pos: 18.5,-13.5 + parent: 2 + - uid: 19555 + components: + - type: Transform + pos: 19.5,-13.5 + parent: 2 + - uid: 19556 + components: + - type: Transform + pos: 20.5,-13.5 + parent: 2 + - uid: 19557 + components: + - type: Transform + pos: 18.5,-16.5 + parent: 2 + - uid: 19558 + components: + - type: Transform + pos: 19.5,-16.5 + parent: 2 + - uid: 19559 + components: + - type: Transform + pos: 20.5,-16.5 + parent: 2 + - uid: 19560 + components: + - type: Transform + pos: 26.5,-19.5 + parent: 2 + - uid: 19561 + components: + - type: Transform + pos: 25.5,-19.5 + parent: 2 + - uid: 19562 + components: + - type: Transform + pos: 22.5,-20.5 + parent: 2 + - uid: 19563 + components: + - type: Transform + pos: 23.5,-20.5 + parent: 2 + - uid: 19564 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 30.5,-14.5 + parent: 2 + - uid: 19565 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 31.5,-14.5 + parent: 2 + - uid: 19566 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 32.5,-14.5 + parent: 2 + - uid: 19567 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 28.5,-32.5 + parent: 2 + - uid: 19568 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 28.5,-31.5 + parent: 2 + - uid: 19569 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 6.5,-32.5 + parent: 2 + - uid: 19570 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 6.5,-31.5 + parent: 2 + - uid: 19571 + components: + - type: Transform + pos: 4.5,-21.5 + parent: 2 + - uid: 19572 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 13.5,-32.5 + parent: 2 + - uid: 19573 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 14.5,-32.5 + parent: 2 + - uid: 19574 + components: + - type: Transform + pos: 12.5,-37.5 + parent: 2 +- proto: TablePlasmaGlass + entities: + - uid: 19575 + components: + - type: Transform + pos: 19.5,30.5 + parent: 2 + - uid: 19576 + components: + - type: Transform + pos: 19.5,32.5 + parent: 2 + - uid: 19577 + components: + - type: Transform + pos: 17.5,29.5 + parent: 2 + - uid: 19578 + components: + - type: Transform + pos: 17.5,30.5 + parent: 2 + - uid: 19579 + components: + - type: Transform + pos: 17.5,31.5 + parent: 2 + - uid: 19580 + components: + - type: Transform + pos: 17.5,32.5 + parent: 2 + - uid: 19581 + components: + - type: Transform + pos: 17.5,33.5 + parent: 2 + - uid: 19582 + components: + - type: Transform + pos: 15.5,36.5 + parent: 2 + - uid: 19583 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 18.5,45.5 + parent: 2 + - uid: 19584 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 22.5,45.5 + parent: 2 +- proto: TableReinforced + entities: + - uid: 19585 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 6.5,26.5 + parent: 2 + - uid: 19586 + components: + - type: Transform + pos: -15.5,-19.5 + parent: 2 + - uid: 19587 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -30.5,-3.5 + parent: 2 + - uid: 19588 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -30.5,-4.5 + parent: 2 + - uid: 19589 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -30.5,-5.5 + parent: 2 + - uid: 19590 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -30.5,-6.5 + parent: 2 + - uid: 19591 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -29.5,-6.5 + parent: 2 + - uid: 19592 + components: + - type: Transform + pos: -27.5,5.5 + parent: 2 + - uid: 19593 + components: + - type: Transform + pos: -28.5,5.5 + parent: 2 + - uid: 19594 + components: + - type: Transform + pos: -43.5,10.5 + parent: 2 + - uid: 19595 + components: + - type: Transform + pos: -43.5,11.5 + parent: 2 + - uid: 19596 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -36.5,6.5 + parent: 2 + - uid: 19597 + components: + - type: Transform + pos: -31.5,17.5 + parent: 2 + - uid: 19598 + components: + - type: Transform + pos: -31.5,16.5 + parent: 2 + - uid: 19599 + components: + - type: Transform + pos: -35.5,17.5 + parent: 2 + - uid: 19600 + components: + - type: Transform + pos: -35.5,16.5 + parent: 2 + - uid: 19601 + components: + - type: Transform + pos: -33.5,17.5 + parent: 2 + - uid: 19602 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -44.5,15.5 + parent: 2 + - uid: 19603 + components: + - type: Transform + pos: -33.5,-25.5 + parent: 2 + - uid: 19604 + components: + - type: Transform + pos: -27.5,-21.5 + parent: 2 + - uid: 19605 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -36.5,-30.5 + parent: 2 + - uid: 19606 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -36.5,-29.5 + parent: 2 + - uid: 19607 + components: + - type: Transform + pos: -19.5,-16.5 + parent: 2 + - uid: 19608 + components: + - type: Transform + pos: -23.5,-16.5 + parent: 2 + - uid: 19609 + components: + - type: Transform + pos: -26.5,-20.5 + parent: 2 + - uid: 19610 + components: + - type: Transform + pos: -26.5,-24.5 + parent: 2 + - uid: 19611 + components: + - type: Transform + pos: -25.5,-24.5 + parent: 2 + - uid: 19612 + components: + - type: Transform + pos: -26.5,-23.5 + parent: 2 + - uid: 19613 + components: + - type: Transform + pos: -19.5,-24.5 + parent: 2 + - uid: 19614 + components: + - type: Transform + pos: -19.5,-22.5 + parent: 2 + - uid: 19615 + components: + - type: Transform + pos: -19.5,-20.5 + parent: 2 + - uid: 19616 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -15.5,-22.5 + parent: 2 + - uid: 19617 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -14.5,-22.5 + parent: 2 + - uid: 19618 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -22.5,-30.5 + parent: 2 + - uid: 19619 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -22.5,-31.5 + parent: 2 + - uid: 19620 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -1.5,-31.5 + parent: 2 + - uid: 19621 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -10.5,-34.5 + parent: 2 + - uid: 19622 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -6.5,-30.5 + parent: 2 + - uid: 19623 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -6.5,-31.5 + parent: 2 + - uid: 19624 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -5.5,-30.5 + parent: 2 + - uid: 19625 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -5.5,-31.5 + parent: 2 + - uid: 19626 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -8.5,-33.5 + parent: 2 + - uid: 19627 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -13.5,-35.5 + parent: 2 + - uid: 19628 + components: + - type: Transform + pos: -13.5,-38.5 + parent: 2 + - uid: 19629 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -13.5,-41.5 + parent: 2 + - uid: 19630 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -13.5,-44.5 + parent: 2 + - uid: 19631 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -13.5,-47.5 + parent: 2 + - uid: 19632 + components: + - type: Transform + pos: -47.5,-31.5 + parent: 2 + - uid: 19633 + components: + - type: Transform + pos: -47.5,-30.5 + parent: 2 + - uid: 19634 + components: + - type: Transform + pos: -47.5,-32.5 + parent: 2 + - uid: 19635 + components: + - type: Transform + pos: -46.5,-32.5 + parent: 2 + - uid: 19636 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -43.5,-49.5 + parent: 2 + - uid: 19637 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -43.5,-50.5 + parent: 2 + - uid: 19638 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 29.5,-1.5 + parent: 2 + - uid: 19639 + components: + - type: Transform + pos: 29.5,-4.5 + parent: 2 + - uid: 19640 + components: + - type: Transform + pos: 30.5,-4.5 + parent: 2 + - uid: 19641 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 22.5,11.5 + parent: 2 + - uid: 19642 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 22.5,10.5 + parent: 2 + - uid: 19643 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 22.5,9.5 + parent: 2 + - uid: 19644 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 23.5,9.5 + parent: 2 + - uid: 19645 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 24.5,9.5 + parent: 2 + - uid: 19646 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 25.5,9.5 + parent: 2 + - uid: 19647 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 26.5,9.5 + parent: 2 + - uid: 19648 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 26.5,10.5 + parent: 2 + - uid: 19649 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 26.5,11.5 + parent: 2 + - uid: 19650 + components: + - type: Transform + pos: 20.5,15.5 + parent: 2 + - uid: 19651 + components: + - type: Transform + pos: 21.5,15.5 + parent: 2 + - uid: 19652 + components: + - type: Transform + pos: 24.5,15.5 + parent: 2 + - uid: 19653 + components: + - type: Transform + pos: 25.5,15.5 + parent: 2 + - uid: 19654 + components: + - type: Transform + pos: 26.5,15.5 + parent: 2 + - uid: 19655 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 17.5,12.5 + parent: 2 + - uid: 19656 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 18.5,12.5 + parent: 2 + - uid: 19657 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 19.5,12.5 + parent: 2 + - uid: 19658 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 16.5,12.5 + parent: 2 + - uid: 19659 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 31.5,14.5 + parent: 2 + - uid: 19660 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 31.5,15.5 + parent: 2 + - uid: 19661 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 42.5,36.5 + parent: 2 + - uid: 19662 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 43.5,-18.5 + parent: 2 + - uid: 19663 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 43.5,-17.5 + parent: 2 + - uid: 19664 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 43.5,-16.5 + parent: 2 + - uid: 19665 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -29.5,16.5 + parent: 2 + - uid: 19666 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -25.5,24.5 + parent: 2 + - uid: 19667 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -24.5,24.5 + parent: 2 + - uid: 19668 + components: + - type: Transform + pos: -13.5,32.5 + parent: 2 + - uid: 19669 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -5.5,34.5 + parent: 2 + - uid: 19670 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -5.5,33.5 + parent: 2 + - uid: 19671 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -6.5,32.5 + parent: 2 + - uid: 19672 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -6.5,34.5 + parent: 2 + - uid: 19673 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -5.5,32.5 + parent: 2 + - uid: 19674 + components: + - type: Transform + pos: -18.5,40.5 + parent: 2 + - uid: 19675 + components: + - type: Transform + pos: -18.5,39.5 + parent: 2 + - uid: 19676 + components: + - type: Transform + pos: -18.5,38.5 + parent: 2 + - uid: 19677 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -33.5,25.5 + parent: 2 + - uid: 19678 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -33.5,26.5 + parent: 2 + - uid: 19679 + components: + - type: Transform + pos: -42.5,31.5 + parent: 2 + - uid: 19680 + components: + - type: Transform + pos: -42.5,32.5 + parent: 2 + - uid: 19681 + components: + - type: Transform + pos: -42.5,33.5 + parent: 2 + - uid: 19682 + components: + - type: Transform + pos: -42.5,34.5 + parent: 2 + - uid: 19683 + components: + - type: Transform + pos: -37.5,39.5 + parent: 2 + - uid: 19684 + components: + - type: Transform + pos: -35.5,23.5 + parent: 2 + - uid: 19685 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 5.5,47.5 + parent: 2 + - uid: 19686 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -0.5,62.5 + parent: 2 + - uid: 19687 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -1.5,62.5 + parent: 2 + - uid: 19688 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 2.5,62.5 + parent: 2 + - uid: 19689 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 3.5,62.5 + parent: 2 + - uid: 19690 + components: + - type: Transform + pos: 2.5,69.5 + parent: 2 + - uid: 19691 + components: + - type: Transform + pos: 0.5,69.5 + parent: 2 + - uid: 19692 + components: + - type: Transform + pos: -0.5,69.5 + parent: 2 + - uid: 19693 + components: + - type: Transform + pos: -0.5,72.5 + parent: 2 + - uid: 19694 + components: + - type: Transform + pos: 3.5,72.5 + parent: 2 + - uid: 19695 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 8.5,74.5 + parent: 2 + - uid: 19696 + components: + - type: Transform + pos: 9.5,82.5 + parent: 2 + - uid: 19697 + components: + - type: Transform + pos: 9.5,83.5 + parent: 2 + - uid: 19698 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 1.5,85.5 + parent: 2 + - uid: 19699 + components: + - type: Transform + pos: -6.5,82.5 + parent: 2 + - uid: 19700 + components: + - type: Transform + pos: -6.5,83.5 + parent: 2 + - uid: 19701 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -5.5,80.5 + parent: 2 + - uid: 19702 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -6.5,80.5 + parent: 2 + - uid: 19703 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -6.5,79.5 + parent: 2 + - uid: 19704 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -6.5,78.5 + parent: 2 + - uid: 19705 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -6.5,74.5 + parent: 2 + - uid: 19706 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -5.5,74.5 + parent: 2 + - uid: 19707 + components: + - type: Transform + pos: 16.5,-20.5 + parent: 2 + - uid: 19708 + components: + - type: Transform + pos: 16.5,-19.5 + parent: 2 + - uid: 19709 + components: + - type: Transform + pos: 16.5,-18.5 + parent: 2 + - uid: 19710 + components: + - type: Transform + pos: 19.5,-18.5 + parent: 2 + - uid: 19711 + components: + - type: Transform + pos: 39.5,-26.5 + parent: 2 + - uid: 19712 + components: + - type: Transform + pos: 17.5,-29.5 + parent: 2 + - uid: 19713 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 6.5,-28.5 + parent: 2 + - uid: 19714 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 5.5,-28.5 + parent: 2 + - uid: 19715 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 11.5,-30.5 + parent: 2 + - uid: 19716 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 4.5,-19.5 + parent: 2 + - uid: 19717 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 4.5,-18.5 + parent: 2 + - uid: 19718 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 8.5,-20.5 + parent: 2 + - uid: 19719 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 9.5,-20.5 + parent: 2 + - uid: 19721 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -0.5,-43.5 + parent: 2 + - uid: 19722 + components: + - type: Transform + pos: 1.5,-44.5 + parent: 2 + - uid: 19723 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 8.5,-44.5 + parent: 2 + - uid: 19724 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 7.5,-44.5 + parent: 2 + - uid: 19725 + components: + - type: Transform + pos: 5.5,-49.5 + parent: 2 + - uid: 19726 + components: + - type: Transform + pos: 2.5,-50.5 + parent: 2 + - uid: 19727 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 11.5,-50.5 + parent: 2 + - uid: 19728 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 11.5,-51.5 + parent: 2 + - uid: 19729 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 12.5,-55.5 + parent: 2 + - uid: 19730 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 2.5,-59.5 + parent: 2 + - uid: 19731 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 2.5,-58.5 + parent: 2 + - uid: 19732 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -19.5,-63.5 + parent: 2 + - uid: 19733 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -18.5,-63.5 + parent: 2 + - uid: 19734 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -12.5,-61.5 + parent: 2 + - uid: 19735 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -13.5,-61.5 + parent: 2 + - uid: 19736 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -14.5,-61.5 + parent: 2 + - uid: 19737 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -14.5,-55.5 + parent: 2 + - uid: 19738 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -10.5,-55.5 + parent: 2 + - uid: 19739 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 6.5,25.5 + parent: 2 + - uid: 19740 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 7.5,25.5 + parent: 2 + - uid: 19741 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 6.5,27.5 + parent: 2 + - uid: 19742 + components: + - type: Transform + pos: -6.5,-62.5 + parent: 2 + - uid: 19743 + components: + - type: Transform + pos: -7.5,-62.5 + parent: 2 + - uid: 19744 + components: + - type: Transform + pos: -5.5,-62.5 + parent: 2 + - uid: 19745 + components: + - type: Transform + pos: -7.5,-63.5 + parent: 2 + - uid: 19746 + components: + - type: Transform + pos: -7.5,-64.5 + parent: 2 + - uid: 19747 + components: + - type: Transform + pos: -7.5,-65.5 + parent: 2 + - uid: 19748 + components: + - type: Transform + pos: -7.5,-66.5 + parent: 2 + - uid: 19749 + components: + - type: Transform + pos: 29.5,-52.5 + parent: 2 + - uid: 19750 + components: + - type: Transform + pos: 29.5,-51.5 + parent: 2 + - uid: 19751 + components: + - type: Transform + pos: 30.5,-52.5 + parent: 2 + - uid: 19752 + components: + - type: Transform + pos: 30.5,-51.5 + parent: 2 + - uid: 19753 + components: + - type: Transform + pos: 25.5,-62.5 + parent: 2 + - uid: 19754 + components: + - type: Transform + pos: 26.5,-62.5 + parent: 2 + - uid: 19755 + components: + - type: Transform + pos: 27.5,-62.5 + parent: 2 + - uid: 19756 + components: + - type: Transform + pos: 28.5,-62.5 + parent: 2 + - uid: 19757 + components: + - type: Transform + pos: 29.5,-62.5 + parent: 2 + - uid: 19758 + components: + - type: Transform + pos: -25.5,6.5 + parent: 2 + - uid: 21938 + components: + - type: Transform + pos: 0.5,-43.5 + parent: 2 +- proto: TableReinforcedGlass + entities: + - uid: 19759 + components: + - type: Transform + pos: -41.5,-33.5 + parent: 2 + - uid: 19760 + components: + - type: Transform + pos: -41.5,-32.5 + parent: 2 +- proto: TableStone + entities: + - uid: 19761 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -4.5,-14.5 + parent: 2 + - uid: 19762 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -3.5,-14.5 + parent: 2 + - uid: 19763 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -4.5,-11.5 + parent: 2 + - uid: 19764 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 4.5,44.5 + parent: 2 + - uid: 19765 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 5.5,44.5 + parent: 2 + - uid: 19766 + components: + - type: Transform + pos: 7.5,44.5 + parent: 2 +- proto: TableWood + entities: + - uid: 19767 + components: + - type: Transform + pos: -17.5,-5.5 + parent: 2 + - uid: 19768 + components: + - type: Transform + pos: -13.5,-2.5 + parent: 2 + - uid: 19769 + components: + - type: Transform + pos: -13.5,-3.5 + parent: 2 + - uid: 19770 + components: + - type: Transform + pos: -13.5,-4.5 + parent: 2 + - uid: 19771 + components: + - type: Transform + pos: -12.5,-4.5 + parent: 2 + - uid: 19772 + components: + - type: Transform + pos: -17.5,-2.5 + parent: 2 + - uid: 19773 + components: + - type: Transform + pos: -17.5,-3.5 + parent: 2 + - uid: 19774 + components: + - type: Transform + pos: -16.5,-3.5 + parent: 2 + - uid: 19775 + components: + - type: Transform + pos: -17.5,-6.5 + parent: 2 + - uid: 19776 + components: + - type: Transform + pos: -16.5,-6.5 + parent: 2 + - uid: 19777 + components: + - type: Transform + pos: -15.5,-6.5 + parent: 2 + - uid: 19778 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -13.5,13.5 + parent: 2 + - uid: 19779 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -12.5,13.5 + parent: 2 + - uid: 19780 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -10.5,13.5 + parent: 2 + - uid: 19781 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -9.5,13.5 + parent: 2 + - uid: 19782 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -12.5,15.5 + parent: 2 + - uid: 19783 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -11.5,15.5 + parent: 2 + - uid: 19784 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -10.5,15.5 + parent: 2 + - uid: 19785 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -17.5,11.5 + parent: 2 + - uid: 19786 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -16.5,11.5 + parent: 2 + - uid: 19787 + components: + - type: Transform + pos: -5.5,14.5 + parent: 2 + - uid: 19788 + components: + - type: Transform + pos: -2.5,14.5 + parent: 2 + - uid: 19789 + components: + - type: Transform + pos: -3.5,14.5 + parent: 2 + - uid: 19790 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -34.5,-64.5 + parent: 2 + - uid: 19791 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -36.5,-64.5 + parent: 2 + - uid: 19792 + components: + - type: Transform + pos: -22.5,-62.5 + parent: 2 + - uid: 19793 + components: + - type: Transform + pos: -22.5,-63.5 + parent: 2 + - uid: 19794 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 33.5,5.5 + parent: 2 + - uid: 19795 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 33.5,4.5 + parent: 2 + - uid: 19796 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 34.5,5.5 + parent: 2 + - uid: 19797 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 34.5,4.5 + parent: 2 + - uid: 19798 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 25.5,5.5 + parent: 2 + - uid: 19799 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 25.5,4.5 + parent: 2 + - uid: 19800 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 19.5,5.5 + parent: 2 + - uid: 19801 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 19.5,4.5 + parent: 2 + - uid: 19802 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 18.5,9.5 + parent: 2 + - uid: 19803 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 18.5,8.5 + parent: 2 + - uid: 19805 + components: + - type: Transform + pos: 15.5,18.5 + parent: 2 + - uid: 19806 + components: + - type: Transform + pos: 35.5,11.5 + parent: 2 + - uid: 19807 + components: + - type: Transform + pos: 40.5,12.5 + parent: 2 + - uid: 19808 + components: + - type: Transform + pos: 40.5,13.5 + parent: 2 + - uid: 19809 + components: + - type: Transform + pos: 40.5,14.5 + parent: 2 + - uid: 19810 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 37.5,5.5 + parent: 2 + - uid: 19811 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 37.5,4.5 + parent: 2 + - uid: 19812 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 38.5,4.5 + parent: 2 + - uid: 19813 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 38.5,3.5 + parent: 2 + - uid: 19814 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 38.5,1.5 + parent: 2 + - uid: 19815 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 42.5,0.5 + parent: 2 + - uid: 19816 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 43.5,3.5 + parent: 2 + - uid: 19817 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 43.5,4.5 + parent: 2 + - uid: 19818 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 42.5,3.5 + parent: 2 + - uid: 19819 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 42.5,4.5 + parent: 2 + - uid: 19820 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 41.5,4.5 + parent: 2 + - uid: 19821 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 41.5,3.5 + parent: 2 + - uid: 19822 + components: + - type: Transform + pos: 11.5,26.5 + parent: 2 + - uid: 19823 + components: + - type: Transform + pos: 14.5,27.5 + parent: 2 + - uid: 19824 + components: + - type: Transform + pos: 13.5,27.5 + parent: 2 + - uid: 19825 + components: + - type: Transform + pos: 12.5,27.5 + parent: 2 + - uid: 19826 + components: + - type: Transform + pos: 25.5,33.5 + parent: 2 + - uid: 19827 + components: + - type: Transform + pos: 25.5,29.5 + parent: 2 + - uid: 19828 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 21.5,34.5 + parent: 2 + - uid: 19829 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 21.5,35.5 + parent: 2 + - uid: 19830 + components: + - type: Transform + pos: 13.5,42.5 + parent: 2 + - uid: 19831 + components: + - type: Transform + pos: 14.5,42.5 + parent: 2 + - uid: 19832 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 23.5,35.5 + parent: 2 + - uid: 19833 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 23.5,36.5 + parent: 2 + - uid: 19834 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 23.5,38.5 + parent: 2 + - uid: 19835 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 23.5,39.5 + parent: 2 + - uid: 19836 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 38.5,-2.5 + parent: 2 + - uid: 19837 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 39.5,-2.5 + parent: 2 + - uid: 19838 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 39.5,-3.5 + parent: 2 + - uid: 19839 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 38.5,-3.5 + parent: 2 + - uid: 19840 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -21.5,22.5 + parent: 2 + - uid: 19841 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -20.5,22.5 + parent: 2 + - uid: 19842 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -19.5,22.5 + parent: 2 + - uid: 19843 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -19.5,21.5 + parent: 2 + - uid: 19844 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -19.5,20.5 + parent: 2 + - uid: 19845 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -24.5,40.5 + parent: 2 + - uid: 19846 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -23.5,40.5 + parent: 2 + - uid: 19847 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -22.5,40.5 + parent: 2 + - uid: 19848 + components: + - type: Transform + pos: -26.5,43.5 + parent: 2 + - uid: 19849 + components: + - type: Transform + pos: -26.5,44.5 + parent: 2 + - uid: 19850 + components: + - type: Transform + pos: -26.5,45.5 + parent: 2 + - uid: 19851 + components: + - type: Transform + pos: -28.5,30.5 + parent: 2 + - uid: 19852 + components: + - type: Transform + pos: -25.5,27.5 + parent: 2 + - uid: 19853 + components: + - type: Transform + pos: -8.5,48.5 + parent: 2 + - uid: 19854 + components: + - type: Transform + pos: -8.5,49.5 + parent: 2 + - uid: 19855 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -3.5,51.5 + parent: 2 + - uid: 19856 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -3.5,52.5 + parent: 2 + - uid: 19857 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -3.5,53.5 + parent: 2 + - uid: 19858 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -8.5,54.5 + parent: 2 + - uid: 19859 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -8.5,55.5 + parent: 2 + - uid: 19860 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -8.5,56.5 + parent: 2 + - uid: 19861 + components: + - type: Transform + pos: -2.5,56.5 + parent: 2 + - uid: 19862 + components: + - type: Transform + pos: -2.5,55.5 + parent: 2 + - uid: 19863 + components: + - type: Transform + pos: 10.5,52.5 + parent: 2 + - uid: 19864 + components: + - type: Transform + pos: 10.5,53.5 + parent: 2 + - uid: 19865 + components: + - type: Transform + pos: 10.5,54.5 + parent: 2 + - uid: 19866 + components: + - type: Transform + pos: 10.5,55.5 + parent: 2 + - uid: 19867 + components: + - type: Transform + pos: 9.5,54.5 + parent: 2 + - uid: 19868 + components: + - type: Transform + pos: 8.5,54.5 + parent: 2 + - uid: 19869 + components: + - type: Transform + pos: 7.5,54.5 + parent: 2 + - uid: 19870 + components: + - type: Transform + pos: 41.5,-18.5 + parent: 2 + - uid: 19871 + components: + - type: Transform + pos: 40.5,-18.5 + parent: 2 + - uid: 19872 + components: + - type: Transform + pos: 40.5,-14.5 + parent: 2 + - uid: 19873 + components: + - type: Transform + pos: 46.5,-20.5 + parent: 2 + - uid: 19874 + components: + - type: Transform + pos: 45.5,-20.5 + parent: 2 + - uid: 19875 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 46.5,-25.5 + parent: 2 + - uid: 19876 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 45.5,-25.5 + parent: 2 + - uid: 19877 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 29.5,-34.5 + parent: 2 + - uid: 19878 + components: + - type: Transform + pos: -24.5,45.5 + parent: 2 + - uid: 22838 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 17.5,16.5 + parent: 2 +- proto: TargetClown + entities: + - uid: 19879 + components: + - type: Transform + pos: -24.5,-47.5 + parent: 2 + - uid: 19880 + components: + - type: Transform + pos: -79.5,-52.5 + parent: 2 + - uid: 19881 + components: + - type: Transform + pos: -24.5,-41.5 + parent: 2 + - uid: 19882 + components: + - type: Transform + pos: -41.5,31.5 + parent: 2 +- proto: TargetHuman + entities: + - uid: 19883 + components: + - type: Transform + pos: -40.5,31.5 + parent: 2 +- proto: TargetStrange + entities: + - uid: 19884 + components: + - type: Transform + pos: -80.5,-54.5 + parent: 2 +- proto: TargetSyndicate + entities: + - uid: 19885 + components: + - type: Transform + pos: -80.5,-50.5 + parent: 2 +- proto: TechnologyDisk + entities: + - uid: 19886 + components: + - type: Transform + pos: -27.669891,-44.49347 + parent: 2 + - uid: 19887 + components: + - type: Transform + pos: -25.293148,-39.587933 + parent: 2 + - uid: 19888 + components: + - type: Transform + pos: -23.605503,-39.354836 + parent: 2 +- proto: TegCenter + entities: + - uid: 19889 + components: + - type: Transform + pos: 13.5,-44.5 + parent: 2 +- proto: TegCirculator + entities: + - uid: 19890 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 13.5,-45.5 + parent: 2 + - type: PointLight + color: '#FF3300FF' + - uid: 19891 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 13.5,-43.5 + parent: 2 + - type: PointLight + color: '#FF3300FF' +- proto: TelecomServer + entities: + - uid: 10743 + components: + - type: Transform + pos: 4.5,42.5 + parent: 2 + - type: ContainerContainer + containers: + key_slots: !type:Container + showEnts: False + occludes: True + ents: + - 10744 + machine_board: !type:Container + showEnts: False + occludes: True + ents: [] + machine_parts: !type:Container + showEnts: False + occludes: True + ents: [] + - uid: 10746 + components: + - type: Transform + pos: 5.5,42.5 + parent: 2 + - type: ContainerContainer + containers: + key_slots: !type:Container + showEnts: False + occludes: True + ents: + - 10747 + machine_board: !type:Container + showEnts: False + occludes: True + ents: [] + machine_parts: !type:Container + showEnts: False + occludes: True + ents: [] + - uid: 10749 + components: + - type: Transform + pos: 7.5,42.5 + parent: 2 + - type: ContainerContainer + containers: + key_slots: !type:Container + showEnts: False + occludes: True + ents: + - 10750 + machine_board: !type:Container + showEnts: False + occludes: True + ents: [] + machine_parts: !type:Container + showEnts: False + occludes: True + ents: [] + - uid: 10752 + components: + - type: Transform + pos: 7.5,41.5 + parent: 2 + - type: ContainerContainer + containers: + key_slots: !type:Container + showEnts: False + occludes: True + ents: + - 10753 + machine_board: !type:Container + showEnts: False + occludes: True + ents: [] + machine_parts: !type:Container + showEnts: False + occludes: True + ents: [] + - uid: 10755 + components: + - type: Transform + pos: 5.5,41.5 + parent: 2 + - type: ContainerContainer + containers: + key_slots: !type:Container + showEnts: False + occludes: True + ents: + - 10756 + machine_board: !type:Container + showEnts: False + occludes: True + ents: [] + machine_parts: !type:Container + showEnts: False + occludes: True + ents: [] + - uid: 10759 + components: + - type: Transform + pos: 7.5,39.5 + parent: 2 + - type: ContainerContainer + containers: + key_slots: !type:Container + showEnts: False + occludes: True + ents: + - 10760 + machine_board: !type:Container + showEnts: False + occludes: True + ents: [] + machine_parts: !type:Container + showEnts: False + occludes: True + ents: [] + - uid: 10762 + components: + - type: Transform + pos: 8.5,42.5 + parent: 2 + - type: ContainerContainer + containers: + key_slots: !type:Container + showEnts: False + occludes: True + ents: + - 10763 + machine_board: !type:Container + showEnts: False + occludes: True + ents: [] + machine_parts: !type:Container + showEnts: False + occludes: True + ents: [] + - uid: 10765 + components: + - type: Transform + pos: 5.5,39.5 + parent: 2 + - type: ContainerContainer + containers: + key_slots: !type:Container + showEnts: False + occludes: True + ents: + - 10766 + machine_board: !type:Container + showEnts: False + occludes: True + ents: [] + machine_parts: !type:Container + showEnts: False + occludes: True + ents: [] +- proto: TeslaCoil + entities: + - uid: 14818 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 13.5,-57.5 + parent: 2 + - uid: 15545 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 12.5,-57.5 + parent: 2 +- proto: TeslaGenerator + entities: + - uid: 14819 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 11.5,-57.5 + parent: 2 +- proto: TeslaGroundingRod + entities: + - uid: 24023 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -0.5,-70.5 + parent: 2 + - uid: 24024 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 1.5,-68.5 + parent: 2 +- proto: ThermomachineHeaterMachineCircuitBoard + entities: + - uid: 19892 + components: + - type: Transform + pos: 29.538464,-39.41129 + parent: 2 +- proto: TimerTrigger + entities: + - uid: 19893 + components: + - type: Transform + pos: -36.527496,-51.595573 + parent: 2 + - uid: 19894 + components: + - type: Transform + pos: -36.713974,-51.41531 + parent: 2 + - uid: 19895 + components: + - type: Transform + pos: -36.403175,-51.278557 + parent: 2 + - uid: 19896 + components: + - type: Transform + pos: -41.403442,-33.60449 + parent: 2 + - uid: 19897 + components: + - type: Transform + pos: -41.403442,-33.60449 + parent: 2 +- proto: TintedWindow + entities: + - uid: 19898 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -14.5,10.5 + parent: 2 + - uid: 19899 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -14.5,12.5 + parent: 2 + - uid: 19900 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 17.5,36.5 + parent: 2 + - uid: 19901 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -24.5,26.5 + parent: 2 + - uid: 19902 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -25.5,26.5 + parent: 2 +- proto: ToiletDirtyWater + entities: + - uid: 19903 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 40.5,24.5 + parent: 2 + - uid: 19904 + components: + - type: Transform + pos: -34.5,39.5 + parent: 2 + - uid: 19905 + components: + - type: Transform + pos: -34.5,36.5 + parent: 2 + - uid: 19906 + components: + - type: Transform + pos: -34.5,33.5 + parent: 2 +- proto: ToiletEmpty + entities: + - uid: 19907 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -11.5,50.5 + parent: 2 +- proto: ToolboxArtistic + entities: + - uid: 19908 + components: + - type: Transform + pos: -36.508865,-62.37472 + parent: 2 +- proto: ToolboxElectricalFilled + entities: + - uid: 19909 + components: + - type: Transform + pos: 10.568084,19.735395 + parent: 2 + - uid: 19910 + components: + - type: Transform + pos: 10.400251,19.525606 + parent: 2 + - uid: 19911 + components: + - type: Transform + pos: -19.435326,-24.469978 + parent: 2 + - uid: 19912 + components: + - type: Transform + pos: -6.5703607,-21.23436 + parent: 2 + - uid: 19913 + components: + - type: Transform + pos: -31.5038,-60.377403 + parent: 2 + - uid: 19914 + components: + - type: Transform + pos: -6.555467,75.76762 + parent: 2 +- proto: ToolboxEmergencyFilled + entities: + - uid: 997 + components: + - type: Transform + parent: 995 + - type: Physics + canCollide: False + - type: InsideEntityStorage + - uid: 19915 + components: + - type: Transform + pos: -43.44388,-9.244297 + parent: 2 + - uid: 19916 + components: + - type: Transform + pos: -38.526768,-16.238062 + parent: 2 + - uid: 19917 + components: + - type: Transform + pos: -38.442932,-16.377728 + parent: 2 + - uid: 19918 + components: + - type: Transform + pos: -34.545593,-28.449944 + parent: 2 + - uid: 19919 + components: + - type: Transform + pos: -47.381298,-32.202427 + parent: 2 + - uid: 19920 + components: + - type: Transform + pos: -8.457224,37.476273 + parent: 2 +- proto: ToolboxGoldFilled + entities: + - uid: 9173 + components: + - type: Transform + pos: -34.5,17.5 + parent: 2 +- proto: ToolboxMechanicalFilled + entities: + - uid: 15877 + components: + - type: Transform + parent: 15876 + - type: Physics + canCollide: False + - type: InsideEntityStorage + - uid: 19921 + components: + - type: Transform + pos: 4.453135,16.575903 + parent: 2 + - uid: 19922 + components: + - type: Transform + pos: 4.518403,16.762384 + parent: 2 + - uid: 19923 + components: + - type: Transform + pos: 4.4717827,16.976835 + parent: 2 + - uid: 19924 + components: + - type: Transform + pos: -38.540737,-19.57605 + parent: 2 + - uid: 19925 + components: + - type: Transform + pos: -38.456905,-19.478285 + parent: 2 + - uid: 19926 + components: + - type: Transform + pos: -38.6106,-19.338621 + parent: 2 + - uid: 19927 + components: + - type: Transform + pos: -36.50349,-24.459915 + parent: 2 + - uid: 19928 + components: + - type: Transform + pos: -34.461678,-28.226166 + parent: 2 + - uid: 19929 + components: + - type: Transform + pos: -19.56586,-24.227554 + parent: 2 + - uid: 19930 + components: + - type: Transform + pos: -6.5050926,-21.430162 + parent: 2 + - uid: 19931 + components: + - type: Transform + pos: -44.55955,-38.22259 + parent: 2 + - uid: 19932 + components: + - type: Transform + pos: -44.48962,-38.348465 + parent: 2 + - uid: 19933 + components: + - type: Transform + pos: -47.465214,-31.95068 + parent: 2 + - uid: 19934 + components: + - type: Transform + pos: -11.517578,-53.4752 + parent: 2 + - uid: 19935 + components: + - type: Transform + pos: 41.28955,19.715477 + parent: 2 + - uid: 19936 + components: + - type: Transform + pos: -14.486763,34.5394 + parent: 2 + - uid: 19937 + components: + - type: Transform + pos: -8.559227,37.743702 + parent: 2 + - uid: 19938 + components: + - type: Transform + pos: -6.429593,75.50188 + parent: 2 + - uid: 19939 + components: + - type: Transform + pos: 28.511677,-14.453636 + parent: 2 +- proto: ToyAi + entities: + - uid: 19940 + components: + - type: Transform + pos: 1.4992511,77.624275 + parent: 2 +- proto: ToyAmongPequeno + entities: + - uid: 19941 + components: + - type: Transform + pos: 12.5,30.5 + parent: 2 +- proto: ToyFigurineBartender + entities: + - uid: 19942 + components: + - type: Transform + pos: 19.382366,12.697111 + parent: 2 +- proto: ToyFigurineCaptain + entities: + - uid: 19943 + components: + - type: Transform + pos: -8.336638,55.082047 + parent: 2 +- proto: ToyFigurineChef + entities: + - uid: 19944 + components: + - type: Transform + pos: 23.744114,17.729523 + parent: 2 +- proto: ToyFigurineChiefEngineer + entities: + - uid: 19945 + components: + - type: Transform + pos: 11.694183,-50.93051 + parent: 2 +- proto: ToyFigurineChiefMedicalOfficer + entities: + - uid: 19946 + components: + - type: Transform + pos: 25.700378,-19.332878 + parent: 2 +- proto: ToyFigurineClown + entities: + - uid: 10543 + components: + - type: Transform + parent: 10524 + - type: Physics + angularDamping: 0 + linearDamping: 0 + canCollide: False + - type: InsideEntityStorage + - uid: 19947 + components: + - type: Transform + pos: 7.5,4.5 + parent: 2 + - uid: 19948 + components: + - type: Transform + pos: 40.7377,12.566254 + parent: 2 +- proto: ToyFigurineFootsoldier + entities: + - uid: 19949 + components: + - type: Transform + pos: -39.551273,34.797108 + parent: 2 +- proto: ToyFigurineHeadOfPersonnel + entities: + - uid: 19950 + components: + - type: Transform + pos: 6.654764,48.889687 + parent: 2 +- proto: ToyFigurineJanitor + entities: + - uid: 19951 + components: + - type: Transform + pos: 7.476756,13.849148 + parent: 2 +- proto: ToyFigurineLawyer + entities: + - uid: 19952 + components: + - type: Transform + pos: -3.016523,14.815199 + parent: 2 +- proto: ToyFigurineLibrarian + entities: + - uid: 19953 + components: + - type: Transform + pos: 42.899353,4.4172344 + parent: 2 +- proto: ToyFigurineMime + entities: + - uid: 10512 + components: + - type: Transform + parent: 10501 + - type: Physics + angularDamping: 0 + linearDamping: 0 + canCollide: False + - type: InsideEntityStorage + - uid: 19954 + components: + - type: Transform + pos: 8.5,3.5 + parent: 2 + - uid: 19955 + components: + - type: Transform + pos: 40.7377,13.181639 + parent: 2 +- proto: ToyFigurineMusician + entities: + - uid: 19956 + components: + - type: Transform + pos: 40.318123,14.048771 + parent: 2 +- proto: ToyFigurineNukie + entities: + - uid: 19957 + components: + - type: Transform + pos: -39.339928,34.69765 + parent: 2 +- proto: ToyFigurineNukieElite + entities: + - uid: 19958 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -0.40407538,-53.633064 + parent: 2 +- proto: ToyFigurineParamedic + entities: + - uid: 19959 + components: + - type: Transform + pos: 9.115516,-20.41076 + parent: 2 +- proto: ToyFigurineQuartermaster + entities: + - uid: 19960 + components: + - type: Transform + pos: -27.230625,5.716192 + parent: 2 +- proto: ToyFigurineQueen + entities: + - uid: 19961 + components: + - type: Transform + pos: 43.440147,4.333318 + parent: 2 +- proto: ToyFigurineResearchDirector + entities: + - uid: 19962 + components: + - type: Transform + pos: -15.687011,-22.381687 + parent: 2 +- proto: ToyFigurineSalvage + entities: + - uid: 19963 + components: + - type: Transform + pos: -43.548775,-9.3911495 + parent: 2 +- proto: ToyFigurineScientist + entities: + - uid: 19964 + components: + - type: Transform + pos: -27.35825,-21.383192 + parent: 2 +- proto: ToyFigurineSecurity + entities: + - uid: 19965 + components: + - type: Transform + pos: 3.8376749,62.768875 + parent: 2 +- proto: ToyFigurineWarden + entities: + - uid: 19966 + components: + - type: Transform + pos: 3.1570222,62.66631 + parent: 2 +- proto: ToyFigurineWizardFake + entities: + - uid: 19967 + components: + - type: Transform + pos: -26.585339,-67.36029 + parent: 2 + - uid: 19968 + components: + - type: Transform + pos: 30.784172,-6.8009963 + parent: 2 +- proto: ToyNuke + entities: + - uid: 19969 + components: + - type: Transform + pos: -80.53846,-52.465786 + parent: 2 +- proto: ToyRubberDuck + entities: + - uid: 19970 + components: + - type: Transform + pos: 40.674366,21.842209 + parent: 2 + - uid: 19971 + components: + - type: Transform + pos: -8.639301,49.365543 + parent: 2 +- proto: TrainingBomb + entities: + - uid: 19972 + components: + - type: Transform + pos: -17.5,40.5 + parent: 2 +- proto: TrashBananaPeel + entities: + - uid: 19973 + components: + - type: Transform + pos: 32.515907,9.50536 + parent: 2 + - uid: 19974 + components: + - type: Transform + pos: -27.531189,16.470947 + parent: 2 + - uid: 19975 + components: + - type: Transform + pos: 4.5,-35.5 + parent: 2 +- proto: TwoWayLever + entities: + - uid: 19976 + components: + - type: Transform + pos: -39.5,11.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 23355: + - Left: Open + - Right: Open + - Middle: Close + 23354: + - Left: Close + - Right: Close + - Middle: Open + - uid: 19977 + components: + - type: Transform + pos: -42.5,-4.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 9128: + - Left: Forward + - Right: Reverse + - Middle: Off + 9127: + - Left: Forward + - Right: Reverse + - Middle: Off + 9126: + - Left: Forward + - Right: Reverse + - Middle: Off + 9125: + - Left: Forward + - Right: Reverse + - Middle: Off + 9124: + - Left: Forward + - Right: Reverse + - Middle: Off + 9123: + - Left: Forward + - Right: Reverse + - Middle: Off + 9122: + - Left: Forward + - Right: Reverse + - Middle: Off + 9121: + - Left: Forward + - Right: Reverse + - Middle: Off + - uid: 19978 + components: + - type: Transform + pos: -42.5,3.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 9129: + - Left: Forward + - Right: Reverse + - Middle: Off + 9130: + - Left: Forward + - Right: Reverse + - Middle: Off + 9131: + - Left: Forward + - Right: Reverse + - Middle: Off + 9132: + - Left: Forward + - Right: Reverse + - Middle: Off + 9133: + - Left: Forward + - Right: Reverse + - Middle: Off + 9134: + - Left: Forward + - Right: Reverse + - Middle: Off + 9135: + - Left: Forward + - Right: Reverse + - Middle: Off + 9136: + - Left: Forward + - Right: Reverse + - Middle: Off + - uid: 19979 + components: + - type: Transform + pos: -42.5,11.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 9103: + - Left: Forward + - Right: Reverse + - Middle: Off + 9104: + - Left: Forward + - Right: Reverse + - Middle: Off + 9105: + - Left: Forward + - Right: Reverse + - Middle: Off + 9106: + - Left: Forward + - Right: Reverse + - Middle: Off + 9107: + - Left: Forward + - Right: Reverse + - Middle: Off + 9108: + - Left: Forward + - Right: Reverse + - Middle: Off + 9109: + - Left: Forward + - Right: Reverse + - Middle: Off + 9110: + - Left: Forward + - Right: Reverse + - Middle: Off + 9111: + - Left: Forward + - Right: Reverse + - Middle: Off + 9112: + - Left: Forward + - Right: Reverse + - Middle: Off + 9113: + - Left: Forward + - Right: Reverse + - Middle: Off + 9114: + - Left: Forward + - Right: Reverse + - Middle: Off + 9115: + - Left: Forward + - Right: Reverse + - Middle: Off + 9116: + - Left: Forward + - Right: Reverse + - Middle: Off + 9117: + - Left: Forward + - Right: Reverse + - Middle: Off + 9118: + - Left: Forward + - Right: Reverse + - Middle: Off + 9119: + - Left: Forward + - Right: Reverse + - Middle: Off + 9120: + - Left: Forward + - Right: Reverse + - Middle: Off + - uid: 19980 + components: + - type: Transform + pos: -42.5,15.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 9145: + - Left: Forward + - Right: Reverse + - Middle: Off + 9146: + - Left: Forward + - Right: Reverse + - Middle: Off + 9147: + - Left: Forward + - Right: Reverse + - Middle: Off + 9148: + - Left: Forward + - Right: Reverse + - Middle: Off + 9149: + - Left: Forward + - Right: Reverse + - Middle: Off + 9150: + - Left: Forward + - Right: Reverse + - Middle: Off + 9151: + - Left: Forward + - Right: Reverse + - Middle: Off + 9152: + - Left: Forward + - Right: Reverse + - Middle: Off + 9153: + - Left: Forward + - Right: Reverse + - Middle: Off + 9154: + - Left: Forward + - Right: Reverse + - Middle: Off + 9155: + - Left: Forward + - Right: Reverse + - Middle: Off + 9156: + - Left: Forward + - Right: Reverse + - Middle: Off + 17545: + - Left: Forward + - Right: Reverse + - Middle: Off + - uid: 19981 + components: + - type: Transform + pos: 0.98919,61.763584 + parent: 2 + - uid: 19982 + components: + - type: Transform + pos: 19.5,45.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 1009: + - Left: Open + - Right: Open + - Middle: Close + - uid: 19983 + components: + - type: Transform + pos: 21.5,45.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 9158: + - Left: Forward + - Right: Reverse + - Middle: Off + 9157: + - Left: Forward + - Right: Reverse + - Middle: Off + - uid: 19984 + components: + - type: Transform + pos: -25.5,-3.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 9099: + - Left: Forward + - Right: Reverse + - Middle: Off + 9098: + - Left: Forward + - Right: Reverse + - Middle: Off + 9159: + - Left: Forward + - Right: Reverse + - Middle: Off + 9102: + - Left: Forward + - Right: Reverse + - Middle: Off + 9101: + - Left: Forward + - Right: Reverse + - Middle: Off + 9100: + - Left: Forward + - Right: Reverse + - Middle: Off +- proto: UnfinishedMachineFrame + entities: + - uid: 19985 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 20.5,-11.5 + parent: 2 + - uid: 19986 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 4.5,35.5 + parent: 2 + - uid: 19987 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -15.5,7.5 + parent: 2 + - uid: 19988 + components: + - type: Transform + pos: -18.5,-14.5 + parent: 2 + - uid: 19989 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -34.5,-27.5 + parent: 2 + - uid: 19990 + components: + - type: Transform + pos: -21.5,-36.5 + parent: 2 + - uid: 19991 + components: + - type: Transform + pos: 19.5,27.5 + parent: 2 +- proto: UniformPrinter + entities: + - uid: 19993 + components: + - type: Transform + pos: 6.5,49.5 + parent: 2 +- proto: UniformScrubsColorGreen + entities: + - uid: 19994 + components: + - type: Transform + pos: 10.509234,-36.60511 + parent: 2 +- proto: UnstableMutagenChemistryBottle + entities: + - uid: 10579 + components: + - type: Transform + parent: 10576 + - type: Physics + canCollide: False + - type: InsideEntityStorage + - uid: 10580 + components: + - type: Transform + parent: 10576 + - type: Physics + canCollide: False + - type: InsideEntityStorage +- proto: Vaccinator + entities: + - uid: 19995 + components: + - type: Transform + pos: 47.5,-30.5 + parent: 2 +- proto: VaccinatorMachineCircuitboard + entities: + - uid: 8635 + components: + - type: Transform + parent: 8628 + - type: Physics + canCollide: False + - type: InsideEntityStorage +- proto: VariantCubeBox + entities: + - uid: 19996 + components: + - type: Transform + pos: -31.47277,17.56227 + parent: 2 + - uid: 19997 + components: + - type: Transform + pos: -22.64478,-30.965834 + parent: 2 + - uid: 19998 + components: + - type: Transform + pos: -6.5973415,-30.622778 + parent: 2 + - uid: 19999 + components: + - type: Transform + pos: -6.4108615,-30.287115 + parent: 2 + - uid: 20000 + components: + - type: Transform + pos: -6.2181654,-30.486027 + parent: 2 + - uid: 20001 + components: + - type: Transform + pos: 47.621708,-29.59404 + parent: 2 + - uid: 20002 + components: + - type: Transform + pos: 47.391716,-29.46972 + parent: 2 +- proto: VendingBarDrobe + entities: + - uid: 20004 + components: + - type: Transform + pos: 15.5,16.5 + parent: 2 +- proto: VendingMachineAtmosDrobe + entities: + - uid: 20005 + components: + - type: Transform + pos: 22.5,-39.5 + parent: 2 +- proto: VendingMachineBooze + entities: + - uid: 20006 + components: + - type: Transform + pos: -24.5,-61.5 + parent: 2 + - uid: 20007 + components: + - type: Transform + pos: 17.5,14.5 + parent: 2 + - uid: 20008 + components: + - type: Transform + pos: -19.5,18.5 + parent: 2 + - uid: 20009 + components: + - type: Transform + pos: -6.5,57.5 + parent: 2 + - uid: 20010 + components: + - type: Transform + pos: 5.5,51.5 + parent: 2 +- proto: VendingMachineCargoDrobe + entities: + - uid: 20011 + components: + - type: Transform + pos: -43.5,8.5 + parent: 2 +- proto: VendingMachineCart + entities: + - uid: 20012 + components: + - type: Transform + pos: 9.5,50.5 + parent: 2 +- proto: VendingMachineChapel + entities: + - uid: 20013 + components: + - type: Transform + pos: 13.5,44.5 + parent: 2 +- proto: VendingMachineChefDrobe + entities: + - uid: 20014 + components: + - type: Transform + pos: 22.5,23.5 + parent: 2 +- proto: VendingMachineChefvend + entities: + - uid: 20015 + components: + - type: Transform + pos: -8.5,-14.5 + parent: 2 + - uid: 20016 + components: + - type: Transform + pos: 19.5,17.5 + parent: 2 +- proto: VendingMachineChemDrobe + entities: + - uid: 20017 + components: + - type: Transform + pos: 28.5,-18.5 + parent: 2 +- proto: VendingMachineChemicals + entities: + - uid: 20018 + components: + - type: Transform + pos: 4.5,-32.5 + parent: 2 +- proto: VendingMachineCigs + entities: + - uid: 20019 + components: + - type: Transform + pos: 5.5,4.5 + parent: 2 + - uid: 20021 + components: + - type: Transform + pos: 27.5,5.5 + parent: 2 + - uid: 20022 + components: + - type: Transform + pos: 34.5,-12.5 + parent: 2 + - uid: 20023 + components: + - type: Transform + pos: 9.5,56.5 + parent: 2 +- proto: VendingMachineClothing + entities: + - uid: 20024 + components: + - type: Transform + pos: 35.5,26.5 + parent: 2 +- proto: VendingMachineCoffee + entities: + - uid: 20025 + components: + - type: Transform + pos: 8.5,-4.5 + parent: 2 + - uid: 20027 + components: + - type: Transform + pos: -27.5,30.5 + parent: 2 + - uid: 20028 + components: + - type: Transform + pos: 4.5,56.5 + parent: 2 + - uid: 20029 + components: + - type: Transform + pos: -6.5,72.5 + parent: 2 + - uid: 20030 + components: + - type: Transform + pos: 15.5,21.5 + parent: 2 + - uid: 20072 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -16.5,9.5 + parent: 2 +- proto: VendingMachineCola + entities: + - uid: 20031 + components: + - type: Transform + pos: -6.5,-4.5 + parent: 2 +- proto: VendingMachineCondiments + entities: + - uid: 20032 + components: + - type: Transform + pos: 22.5,11.5 + parent: 2 +- proto: VendingMachineCourierDrobe + entities: + - uid: 20033 + components: + - type: Transform + pos: -30.5,-2.5 + parent: 2 +- proto: VendingMachineCuraDrobe + entities: + - uid: 20034 + components: + - type: Transform + pos: 44.5,-1.5 + parent: 2 +- proto: VendingMachineDetDrobe + entities: + - uid: 20035 + components: + - type: Transform + pos: -21.5,18.5 + parent: 2 +- proto: VendingMachineDinnerware + entities: + - uid: 20036 + components: + - type: Transform + pos: -7.5,-14.5 + parent: 2 + - uid: 20037 + components: + - type: Transform + pos: 19.5,18.5 + parent: 2 +- proto: VendingMachineDonut + entities: + - uid: 20038 + components: + - type: Transform + pos: 15.5,20.5 + parent: 2 +- proto: VendingMachineEngiDrobe + entities: + - uid: 20039 + components: + - type: Transform + pos: -16.5,-59.5 + parent: 2 +- proto: VendingMachineEngivend + entities: + - uid: 20040 + components: + - type: Transform + pos: -16.5,-60.5 + parent: 2 + - uid: 20041 + components: + - type: Transform + pos: 2.5,-44.5 + parent: 2 + - uid: 20042 + components: + - type: Transform + pos: 10.5,17.5 + parent: 2 +- proto: VendingMachineGames + entities: + - uid: 20043 + components: + - type: Transform + pos: 43.5,9.5 + parent: 2 + - uid: 20044 + components: + - type: Transform + pos: -40.5,37.5 + parent: 2 +- proto: VendingMachineGeneDrobe + entities: + - uid: 20045 + components: + - type: Transform + pos: 23.5,-31.5 + parent: 2 +- proto: VendingMachineHydrobe + entities: + - uid: 20046 + components: + - type: Transform + pos: 43.5,19.5 + parent: 2 +- proto: VendingMachineJaniDrobe + entities: + - uid: 20047 + components: + - type: Transform + pos: 9.5,15.5 + parent: 2 +- proto: VendingMachineLawDrobe + entities: + - uid: 20048 + components: + - type: Transform + pos: -6.5,16.5 + parent: 2 +- proto: VendingMachineMedical + entities: + - uid: 20049 + components: + - type: Transform + pos: -26.5,36.5 + parent: 2 + - uid: 20050 + components: + - type: Transform + pos: 9.5,72.5 + parent: 2 + - uid: 20051 + components: + - type: Transform + pos: 12.5,-15.5 + parent: 2 + - uid: 20052 + components: + - type: Transform + pos: 42.5,-33.5 + parent: 2 + - uid: 20053 + components: + - type: Transform + pos: 23.5,-28.5 + parent: 2 + - uid: 20054 + components: + - type: Transform + pos: 41.5,-20.5 + parent: 2 +- proto: VendingMachineMediDrobe + entities: + - uid: 20055 + components: + - type: Transform + pos: 17.5,-20.5 + parent: 2 +- proto: VendingMachineNutri + entities: + - uid: 20056 + components: + - type: Transform + pos: 34.5,19.5 + parent: 2 +- proto: VendingMachineRestockSeeds + entities: + - uid: 20057 + components: + - type: Transform + pos: 32.46631,19.665796 + parent: 2 +- proto: VendingMachineRoboDrobe + entities: + - uid: 20058 + components: + - type: Transform + pos: -22.5,-16.5 + parent: 2 +- proto: VendingMachineSalvage + entities: + - uid: 20059 + components: + - type: Transform + pos: -36.5,-9.5 + parent: 2 +- proto: VendingMachineSciDrobe + entities: + - uid: 20060 + components: + - type: Transform + pos: -36.5,-41.5 + parent: 2 +- proto: VendingMachineSec + entities: + - uid: 20061 + components: + - type: Transform + pos: -9.5,31.5 + parent: 2 +- proto: VendingMachineSecDrobe + entities: + - uid: 20062 + components: + - type: Transform + pos: -27.5,-34.5 + parent: 2 + - uid: 20063 + components: + - type: Transform + pos: 27.5,-4.5 + parent: 2 + - uid: 20064 + components: + - type: Transform + pos: 45.5,-16.5 + parent: 2 + - uid: 20065 + components: + - type: Transform + pos: -8.5,34.5 + parent: 2 + - uid: 20066 + components: + - type: Transform + pos: 3.5,-50.5 + parent: 2 +- proto: VendingMachineSeeds + entities: + - uid: 20067 + components: + - type: Transform + pos: 35.5,19.5 + parent: 2 +- proto: VendingMachineSeedsUnlocked + entities: + - uid: 20068 + components: + - type: Transform + pos: 5.5,-2.5 + parent: 2 + - uid: 20069 + components: + - type: Transform + pos: -40.5,30.5 + parent: 2 +- proto: VendingMachineSnack + entities: + - uid: 20070 + components: + - type: Transform + pos: 32.5,-12.5 + parent: 2 +- proto: VendingMachineSnackBlue + entities: + - uid: 20071 + components: + - type: Transform + pos: 8.5,-3.5 + parent: 2 +- proto: VendingMachineSnackOrange + entities: + - uid: 20073 + components: + - type: Transform + pos: -6.5,-3.5 + parent: 2 + - uid: 20074 + components: + - type: Transform + pos: 40.5,-20.5 + parent: 2 +- proto: VendingMachineSustenance + entities: + - uid: 20075 + components: + - type: Transform + pos: -38.5,37.5 + parent: 2 +- proto: VendingMachineTankDispenserEngineering + entities: + - uid: 20076 + components: + - type: Transform + pos: 2.5,-60.5 + parent: 2 + - uid: 20077 + components: + - type: Transform + pos: 18.5,-39.5 + parent: 2 + - uid: 23864 + components: + - type: Transform + pos: -4.5,-62.5 + parent: 2 +- proto: VendingMachineTankDispenserEVA + entities: + - uid: 20078 + components: + - type: Transform + pos: -6.5,-22.5 + parent: 2 + - uid: 20079 + components: + - type: Transform + pos: -37.5,-36.5 + parent: 2 + - uid: 20080 + components: + - type: Transform + pos: -34.5,-45.5 + parent: 2 + - uid: 20081 + components: + - type: Transform + pos: -8.5,43.5 + parent: 2 + - uid: 20082 + components: + - type: Transform + pos: -39.5,25.5 + parent: 2 + - uid: 20083 + components: + - type: Transform + pos: 12.5,51.5 + parent: 2 + - uid: 20084 + components: + - type: Transform + pos: 9.5,74.5 + parent: 2 + - uid: 20085 + components: + - type: Transform + pos: 9.5,74.5 + parent: 2 +- proto: VendingMachineTheater + entities: + - uid: 20086 + components: + - type: Transform + pos: 42.5,15.5 + parent: 2 + - uid: 20087 + components: + - type: Transform + pos: 37.5,26.5 + parent: 2 +- proto: VendingMachineVendomat + entities: + - uid: 20088 + components: + - type: Transform + pos: 31.5,5.5 + parent: 2 + - uid: 20089 + components: + - type: Transform + pos: -3.5,4.5 + parent: 2 + - uid: 20090 + components: + - type: Transform + pos: 6.5,19.5 + parent: 2 +- proto: VendingMachineViroDrobe + entities: + - uid: 20091 + components: + - type: Transform + pos: 42.5,-34.5 + parent: 2 +- proto: VendingMachineWallMedical + entities: + - uid: 20092 + components: + - type: Transform + pos: 18.5,3.5 + parent: 2 + - uid: 20093 + components: + - type: Transform + pos: 31.5,-13.5 + parent: 2 + - uid: 20094 + components: + - type: Transform + pos: 44.5,-19.5 + parent: 2 + - uid: 20095 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 15.5,-20.5 + parent: 2 + - uid: 20096 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 28.5,-26.5 + parent: 2 + - uid: 20097 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 17.5,-33.5 + parent: 2 + - uid: 20098 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 7.5,-33.5 + parent: 2 +- proto: VendingMachineYouTool + entities: + - uid: 20099 + components: + - type: Transform + pos: 5.5,19.5 + parent: 2 + - uid: 20100 + components: + - type: Transform + pos: 9.5,71.5 + parent: 2 + - uid: 20101 + components: + - type: Transform + pos: 28.5,-39.5 + parent: 2 + - uid: 20102 + components: + - type: Transform + pos: 3.5,-44.5 + parent: 2 +- proto: WallmountTelescreen + entities: + - uid: 20103 + components: + - type: Transform + pos: -28.5,-33.5 + parent: 2 + - uid: 20104 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -24.5,26.5 + parent: 2 + - uid: 20105 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -18.5,36.5 + parent: 2 + - uid: 20106 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 6.5,26.5 + parent: 2 +- proto: WallmountTelevision + entities: + - uid: 20107 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 36.5,25.5 + parent: 2 + - uid: 20108 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 3.5,-14.5 + parent: 2 + - uid: 20109 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -35.5,-11.5 + parent: 2 + - uid: 20110 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 41.5,44.5 + parent: 2 + - uid: 20111 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 19.5,-1.5 + parent: 2 + - uid: 20112 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 31.5,-9.5 + parent: 2 + - uid: 20113 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -18.5,-1.5 + parent: 2 + - uid: 20114 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -1.5,33.5 + parent: 2 + - uid: 20115 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -1.5,49.5 + parent: 2 +- proto: WallPlastitanium + entities: + - uid: 20116 + components: + - type: Transform + pos: 27.5,43.5 + parent: 2 + - uid: 20117 + components: + - type: Transform + pos: 31.5,43.5 + parent: 2 + - uid: 20118 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -31.5,43.5 + parent: 2 +- proto: WallReinforced + entities: + - uid: 8905 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -22.5,-40.5 + parent: 2 + - uid: 8906 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -30.5,-50.5 + parent: 2 + - uid: 8907 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -27.5,-49.5 + parent: 2 + - uid: 8924 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -26.5,-49.5 + parent: 2 + - uid: 9024 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -24.5,-49.5 + parent: 2 + - uid: 9025 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -1.5,-19.5 + parent: 2 + - uid: 10585 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -2.5,-19.5 + parent: 2 + - uid: 15837 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -3.5,-19.5 + parent: 2 + - uid: 15838 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -4.5,-19.5 + parent: 2 + - uid: 15933 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -5.5,-19.5 + parent: 2 + - uid: 16025 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -6.5,-19.5 + parent: 2 + - uid: 16026 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -7.5,-19.5 + parent: 2 + - uid: 16027 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -7.5,-20.5 + parent: 2 + - uid: 16028 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -8.5,-20.5 + parent: 2 + - uid: 16029 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -9.5,-20.5 + parent: 2 + - uid: 16048 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -10.5,-20.5 + parent: 2 + - uid: 16072 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -17.5,-17.5 + parent: 2 + - uid: 16073 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -17.5,-16.5 + parent: 2 + - uid: 16074 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -17.5,-15.5 + parent: 2 + - uid: 16075 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -18.5,-15.5 + parent: 2 + - uid: 16324 + components: + - type: Transform + pos: 16.5,-37.5 + parent: 2 + - uid: 17057 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -19.5,-15.5 + parent: 2 + - uid: 17058 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -21.5,-15.5 + parent: 2 + - uid: 17059 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -22.5,-15.5 + parent: 2 + - uid: 17060 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -23.5,-15.5 + parent: 2 + - uid: 17061 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -24.5,-15.5 + parent: 2 + - uid: 17062 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -25.5,-15.5 + parent: 2 + - uid: 17167 + components: + - type: Transform + pos: 17.5,-7.5 + parent: 2 + - uid: 17168 + components: + - type: Transform + pos: 16.5,-7.5 + parent: 2 + - uid: 17414 + components: + - type: Transform + pos: 15.5,-7.5 + parent: 2 + - uid: 18551 + components: + - type: Transform + pos: 14.5,-7.5 + parent: 2 + - uid: 18868 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -31.5,-14.5 + parent: 2 + - uid: 18991 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -31.5,-15.5 + parent: 2 + - uid: 18992 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -30.5,-15.5 + parent: 2 + - uid: 18993 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -29.5,-15.5 + parent: 2 + - uid: 19012 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -28.5,-15.5 + parent: 2 + - uid: 19013 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -27.5,-15.5 + parent: 2 + - uid: 19210 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -26.5,-15.5 + parent: 2 + - uid: 19992 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -31.5,-16.5 + parent: 2 + - uid: 20003 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -31.5,-18.5 + parent: 2 + - uid: 20119 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -10.5,49.5 + parent: 2 + - uid: 20120 + components: + - type: Transform + pos: 39.5,-54.5 + parent: 2 + - uid: 20121 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 15.5,-60.5 + parent: 2 + - uid: 20122 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 15.5,-61.5 + parent: 2 + - uid: 20123 + components: + - type: Transform + pos: 5.5,23.5 + parent: 2 + - uid: 20124 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 9.5,25.5 + parent: 2 + - uid: 20125 + components: + - type: Transform + pos: -44.5,19.5 + parent: 2 + - uid: 20126 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 9.5,27.5 + parent: 2 + - uid: 20127 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 15.5,-59.5 + parent: 2 + - uid: 20128 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 15.5,-58.5 + parent: 2 + - uid: 20129 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 15.5,-57.5 + parent: 2 + - uid: 20130 + components: + - type: Transform + pos: -43.5,19.5 + parent: 2 + - uid: 20131 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -15.5,54.5 + parent: 2 + - uid: 20132 + components: + - type: Transform + pos: -11.5,-20.5 + parent: 2 + - uid: 20133 + components: + - type: Transform + pos: -11.5,-19.5 + parent: 2 + - uid: 20134 + components: + - type: Transform + pos: -13.5,-20.5 + parent: 2 + - uid: 20135 + components: + - type: Transform + pos: -13.5,-19.5 + parent: 2 + - uid: 20136 + components: + - type: Transform + pos: -13.5,-18.5 + parent: 2 + - uid: 20137 + components: + - type: Transform + pos: -12.5,-20.5 + parent: 2 + - uid: 20138 + components: + - type: Transform + pos: -14.5,-18.5 + parent: 2 + - uid: 20139 + components: + - type: Transform + pos: -15.5,-18.5 + parent: 2 + - uid: 20140 + components: + - type: Transform + pos: -16.5,-18.5 + parent: 2 + - uid: 20141 + components: + - type: Transform + pos: -17.5,-18.5 + parent: 2 + - uid: 20142 + components: + - type: Transform + pos: -23.5,3.5 + parent: 2 + - uid: 20143 + components: + - type: Transform + pos: -24.5,3.5 + parent: 2 + - uid: 20144 + components: + - type: Transform + pos: -22.5,3.5 + parent: 2 + - uid: 20145 + components: + - type: Transform + pos: -27.5,3.5 + parent: 2 + - uid: 20146 + components: + - type: Transform + pos: -28.5,3.5 + parent: 2 + - uid: 20147 + components: + - type: Transform + pos: -29.5,3.5 + parent: 2 + - uid: 20148 + components: + - type: Transform + pos: -30.5,3.5 + parent: 2 + - uid: 20149 + components: + - type: Transform + pos: -31.5,3.5 + parent: 2 + - uid: 20150 + components: + - type: Transform + pos: -25.5,3.5 + parent: 2 + - uid: 20151 + components: + - type: Transform + pos: -26.5,3.5 + parent: 2 + - uid: 20152 + components: + - type: Transform + pos: -31.5,4.5 + parent: 2 + - uid: 20153 + components: + - type: Transform + pos: -31.5,8.5 + parent: 2 + - uid: 20154 + components: + - type: Transform + pos: -31.5,9.5 + parent: 2 + - uid: 20155 + components: + - type: Transform + pos: -29.5,9.5 + parent: 2 + - uid: 20156 + components: + - type: Transform + pos: -28.5,9.5 + parent: 2 + - uid: 20157 + components: + - type: Transform + pos: -27.5,9.5 + parent: 2 + - uid: 20158 + components: + - type: Transform + pos: -26.5,8.5 + parent: 2 + - uid: 20159 + components: + - type: Transform + pos: -26.5,4.5 + parent: 2 + - uid: 20160 + components: + - type: Transform + pos: -26.5,5.5 + parent: 2 + - uid: 20161 + components: + - type: Transform + pos: -25.5,8.5 + parent: 2 + - uid: 20162 + components: + - type: Transform + pos: -24.5,8.5 + parent: 2 + - uid: 20163 + components: + - type: Transform + pos: -23.5,8.5 + parent: 2 + - uid: 20164 + components: + - type: Transform + pos: -22.5,6.5 + parent: 2 + - uid: 20165 + components: + - type: Transform + pos: -22.5,5.5 + parent: 2 + - uid: 20166 + components: + - type: Transform + pos: -22.5,4.5 + parent: 2 + - uid: 20167 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -31.5,13.5 + parent: 2 + - uid: 20168 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -30.5,13.5 + parent: 2 + - uid: 20169 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -30.5,14.5 + parent: 2 + - uid: 20170 + components: + - type: Transform + pos: -32.5,13.5 + parent: 2 + - uid: 20171 + components: + - type: Transform + pos: -34.5,13.5 + parent: 2 + - uid: 20172 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -35.5,13.5 + parent: 2 + - uid: 20173 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -36.5,13.5 + parent: 2 + - uid: 20174 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -37.5,13.5 + parent: 2 + - uid: 20175 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -38.5,13.5 + parent: 2 + - uid: 20176 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -39.5,13.5 + parent: 2 + - uid: 20177 + components: + - type: Transform + pos: -30.5,15.5 + parent: 2 + - uid: 20178 + components: + - type: Transform + pos: -30.5,16.5 + parent: 2 + - uid: 20179 + components: + - type: Transform + pos: -30.5,17.5 + parent: 2 + - uid: 20180 + components: + - type: Transform + pos: -30.5,18.5 + parent: 2 + - uid: 20181 + components: + - type: Transform + pos: -31.5,18.5 + parent: 2 + - uid: 20182 + components: + - type: Transform + pos: -32.5,18.5 + parent: 2 + - uid: 20183 + components: + - type: Transform + pos: -33.5,18.5 + parent: 2 + - uid: 20184 + components: + - type: Transform + pos: -34.5,18.5 + parent: 2 + - uid: 20185 + components: + - type: Transform + pos: -35.5,18.5 + parent: 2 + - uid: 20186 + components: + - type: Transform + pos: -36.5,18.5 + parent: 2 + - uid: 20187 + components: + - type: Transform + pos: -36.5,17.5 + parent: 2 + - uid: 20188 + components: + - type: Transform + pos: -36.5,16.5 + parent: 2 + - uid: 20189 + components: + - type: Transform + pos: -36.5,15.5 + parent: 2 + - uid: 20190 + components: + - type: Transform + pos: -36.5,14.5 + parent: 2 + - uid: 20191 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -37.5,18.5 + parent: 2 + - uid: 20192 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -38.5,18.5 + parent: 2 + - uid: 20193 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -39.5,18.5 + parent: 2 + - uid: 20194 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -39.5,16.5 + parent: 2 + - uid: 20195 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -39.5,15.5 + parent: 2 + - uid: 20196 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -39.5,14.5 + parent: 2 + - uid: 20197 + components: + - type: Transform + pos: -43.5,18.5 + parent: 2 + - uid: 20198 + components: + - type: Transform + pos: -42.5,18.5 + parent: 2 + - uid: 20199 + components: + - type: Transform + pos: -41.5,18.5 + parent: 2 + - uid: 20200 + components: + - type: Transform + pos: -40.5,18.5 + parent: 2 + - uid: 20201 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -31.5,-36.5 + parent: 2 + - uid: 20202 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -30.5,-36.5 + parent: 2 + - uid: 20203 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -28.5,-36.5 + parent: 2 + - uid: 20204 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -27.5,-36.5 + parent: 2 + - uid: 20205 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -26.5,-36.5 + parent: 2 + - uid: 20206 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -26.5,-35.5 + parent: 2 + - uid: 20207 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -26.5,-33.5 + parent: 2 + - uid: 20208 + components: + - type: Transform + pos: -35.5,-44.5 + parent: 2 + - uid: 20209 + components: + - type: Transform + pos: -26.5,-37.5 + parent: 2 + - uid: 20210 + components: + - type: Transform + pos: -26.5,-38.5 + parent: 2 + - uid: 20211 + components: + - type: Transform + pos: -26.5,-39.5 + parent: 2 + - uid: 20212 + components: + - type: Transform + pos: -26.5,-40.5 + parent: 2 + - uid: 20213 + components: + - type: Transform + pos: -26.5,-41.5 + parent: 2 + - uid: 20214 + components: + - type: Transform + pos: -28.5,-42.5 + parent: 2 + - uid: 20215 + components: + - type: Transform + pos: -29.5,-42.5 + parent: 2 + - uid: 20216 + components: + - type: Transform + pos: -30.5,-42.5 + parent: 2 + - uid: 20217 + components: + - type: Transform + pos: -31.5,-42.5 + parent: 2 + - uid: 20218 + components: + - type: Transform + pos: -31.5,-41.5 + parent: 2 + - uid: 20219 + components: + - type: Transform + pos: -31.5,-44.5 + parent: 2 + - uid: 20220 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -26.5,-32.5 + parent: 2 + - uid: 20221 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -25.5,-32.5 + parent: 2 + - uid: 20222 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -23.5,-32.5 + parent: 2 + - uid: 20223 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -23.5,-33.5 + parent: 2 + - uid: 20224 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -23.5,-34.5 + parent: 2 + - uid: 20225 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -22.5,-34.5 + parent: 2 + - uid: 20226 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -22.5,-35.5 + parent: 2 + - uid: 20227 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -22.5,-36.5 + parent: 2 + - uid: 20228 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -22.5,-37.5 + parent: 2 + - uid: 20229 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -22.5,-38.5 + parent: 2 + - uid: 20230 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -22.5,-39.5 + parent: 2 + - uid: 20231 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -31.5,-19.5 + parent: 2 + - uid: 20232 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -23.5,-40.5 + parent: 2 + - uid: 20233 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -24.5,-40.5 + parent: 2 + - uid: 20234 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -25.5,-40.5 + parent: 2 + - uid: 20235 + components: + - type: Transform + pos: -18.5,-25.5 + parent: 2 + - uid: 20236 + components: + - type: Transform + pos: -18.5,-24.5 + parent: 2 + - uid: 20237 + components: + - type: Transform + pos: -18.5,-23.5 + parent: 2 + - uid: 20238 + components: + - type: Transform + pos: -18.5,-22.5 + parent: 2 + - uid: 20239 + components: + - type: Transform + pos: -18.5,-21.5 + parent: 2 + - uid: 20240 + components: + - type: Transform + pos: -18.5,-20.5 + parent: 2 + - uid: 20241 + components: + - type: Transform + pos: -18.5,-19.5 + parent: 2 + - uid: 20242 + components: + - type: Transform + pos: -18.5,-18.5 + parent: 2 + - uid: 20243 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -13.5,-21.5 + parent: 2 + - uid: 20244 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -13.5,-22.5 + parent: 2 + - uid: 20245 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -13.5,-23.5 + parent: 2 + - uid: 20246 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -13.5,-24.5 + parent: 2 + - uid: 20247 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -13.5,-25.5 + parent: 2 + - uid: 20248 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -14.5,-25.5 + parent: 2 + - uid: 20249 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -51.5,-51.5 + parent: 2 + - uid: 20250 + components: + - type: Transform + pos: -19.5,-29.5 + parent: 2 + - uid: 20251 + components: + - type: Transform + pos: -14.5,-29.5 + parent: 2 + - uid: 20252 + components: + - type: Transform + pos: -13.5,-29.5 + parent: 2 + - uid: 20253 + components: + - type: Transform + pos: -12.5,-29.5 + parent: 2 + - uid: 20254 + components: + - type: Transform + pos: -11.5,-29.5 + parent: 2 + - uid: 20255 + components: + - type: Transform + pos: -10.5,-29.5 + parent: 2 + - uid: 20256 + components: + - type: Transform + pos: -9.5,-29.5 + parent: 2 + - uid: 20257 + components: + - type: Transform + pos: -15.5,-29.5 + parent: 2 + - uid: 20258 + components: + - type: Transform + pos: -20.5,-34.5 + parent: 2 + - uid: 20259 + components: + - type: Transform + pos: -19.5,-34.5 + parent: 2 + - uid: 20260 + components: + - type: Transform + pos: -19.5,-33.5 + parent: 2 + - uid: 20261 + components: + - type: Transform + pos: -15.5,-30.5 + parent: 2 + - uid: 20262 + components: + - type: Transform + pos: -15.5,-33.5 + parent: 2 + - uid: 20263 + components: + - type: Transform + pos: -18.5,-34.5 + parent: 2 + - uid: 20264 + components: + - type: Transform + pos: -17.5,-34.5 + parent: 2 + - uid: 20265 + components: + - type: Transform + pos: -16.5,-34.5 + parent: 2 + - uid: 20266 + components: + - type: Transform + pos: -15.5,-34.5 + parent: 2 + - uid: 20267 + components: + - type: Transform + pos: -13.5,-33.5 + parent: 2 + - uid: 20268 + components: + - type: Transform + pos: -13.5,-32.5 + parent: 2 + - uid: 20269 + components: + - type: Transform + pos: -13.5,-31.5 + parent: 2 + - uid: 20270 + components: + - type: Transform + pos: -13.5,-30.5 + parent: 2 + - uid: 20271 + components: + - type: Transform + pos: -13.5,-34.5 + parent: 2 + - uid: 20272 + components: + - type: Transform + pos: -14.5,-34.5 + parent: 2 + - uid: 20273 + components: + - type: Transform + pos: -1.5,-29.5 + parent: 2 + - uid: 20274 + components: + - type: Transform + pos: -2.5,-29.5 + parent: 2 + - uid: 20275 + components: + - type: Transform + pos: -3.5,-29.5 + parent: 2 + - uid: 20276 + components: + - type: Transform + pos: -4.5,-29.5 + parent: 2 + - uid: 20277 + components: + - type: Transform + pos: -5.5,-29.5 + parent: 2 + - uid: 20278 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -1.5,-30.5 + parent: 2 + - uid: 20279 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -4.5,-34.5 + parent: 2 + - uid: 20280 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -3.5,-34.5 + parent: 2 + - uid: 20281 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -2.5,-34.5 + parent: 2 + - uid: 20282 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -1.5,-34.5 + parent: 2 + - uid: 20283 + components: + - type: Transform + pos: -18.5,-35.5 + parent: 2 + - uid: 20284 + components: + - type: Transform + pos: -18.5,-36.5 + parent: 2 + - uid: 20285 + components: + - type: Transform + pos: -18.5,-37.5 + parent: 2 + - uid: 20286 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -5.5,-35.5 + parent: 2 + - uid: 20287 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -5.5,-36.5 + parent: 2 + - uid: 20288 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -5.5,-37.5 + parent: 2 + - uid: 20289 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -5.5,-38.5 + parent: 2 + - uid: 20290 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -6.5,-38.5 + parent: 2 + - uid: 20291 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -7.5,-38.5 + parent: 2 + - uid: 20292 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -8.5,-38.5 + parent: 2 + - uid: 20293 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -9.5,-38.5 + parent: 2 + - uid: 20294 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -10.5,-38.5 + parent: 2 + - uid: 20295 + components: + - type: Transform + pos: -18.5,-39.5 + parent: 2 + - uid: 20296 + components: + - type: Transform + pos: -18.5,-40.5 + parent: 2 + - uid: 20297 + components: + - type: Transform + pos: -18.5,-41.5 + parent: 2 + - uid: 20298 + components: + - type: Transform + pos: -18.5,-42.5 + parent: 2 + - uid: 20299 + components: + - type: Transform + pos: -18.5,-43.5 + parent: 2 + - uid: 20300 + components: + - type: Transform + pos: -18.5,-44.5 + parent: 2 + - uid: 20301 + components: + - type: Transform + pos: -18.5,-45.5 + parent: 2 + - uid: 20302 + components: + - type: Transform + pos: -18.5,-46.5 + parent: 2 + - uid: 20303 + components: + - type: Transform + pos: -18.5,-47.5 + parent: 2 + - uid: 20304 + components: + - type: Transform + pos: -18.5,-48.5 + parent: 2 + - uid: 20305 + components: + - type: Transform + pos: -18.5,-49.5 + parent: 2 + - uid: 20306 + components: + - type: Transform + pos: -17.5,-50.5 + parent: 2 + - uid: 20307 + components: + - type: Transform + pos: -16.5,-50.5 + parent: 2 + - uid: 20308 + components: + - type: Transform + pos: -15.5,-50.5 + parent: 2 + - uid: 20309 + components: + - type: Transform + pos: -14.5,-50.5 + parent: 2 + - uid: 20310 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -13.5,-50.5 + parent: 2 + - uid: 20311 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -11.5,-50.5 + parent: 2 + - uid: 20312 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -10.5,-50.5 + parent: 2 + - uid: 20313 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -10.5,-46.5 + parent: 2 + - uid: 20314 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -9.5,-50.5 + parent: 2 + - uid: 20315 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -8.5,-50.5 + parent: 2 + - uid: 20316 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -6.5,-48.5 + parent: 2 + - uid: 20317 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -6.5,-47.5 + parent: 2 + - uid: 20318 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -6.5,-46.5 + parent: 2 + - uid: 20319 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -7.5,-46.5 + parent: 2 + - uid: 20320 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -8.5,-46.5 + parent: 2 + - uid: 20321 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -9.5,-46.5 + parent: 2 + - uid: 20322 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -5.5,-46.5 + parent: 2 + - uid: 20323 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -5.5,-45.5 + parent: 2 + - uid: 20324 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -5.5,-44.5 + parent: 2 + - uid: 20325 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -5.5,-43.5 + parent: 2 + - uid: 20326 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -5.5,-42.5 + parent: 2 + - uid: 20327 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -5.5,-41.5 + parent: 2 + - uid: 20328 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -5.5,-40.5 + parent: 2 + - uid: 20329 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -5.5,-39.5 + parent: 2 + - uid: 20330 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -9.5,-45.5 + parent: 2 + - uid: 20331 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -9.5,-44.5 + parent: 2 + - uid: 20332 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -9.5,-39.5 + parent: 2 + - uid: 20333 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -9.5,-40.5 + parent: 2 + - uid: 20334 + components: + - type: Transform + pos: -36.5,-44.5 + parent: 2 + - uid: 20335 + components: + - type: Transform + pos: -37.5,-44.5 + parent: 2 + - uid: 20336 + components: + - type: Transform + pos: -38.5,-44.5 + parent: 2 + - uid: 20337 + components: + - type: Transform + pos: -39.5,-44.5 + parent: 2 + - uid: 20338 + components: + - type: Transform + pos: -40.5,-44.5 + parent: 2 + - uid: 20339 + components: + - type: Transform + pos: -41.5,-44.5 + parent: 2 + - uid: 20340 + components: + - type: Transform + pos: -42.5,-44.5 + parent: 2 + - uid: 20341 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -30.5,-44.5 + parent: 2 + - uid: 20342 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -30.5,-45.5 + parent: 2 + - uid: 20343 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -29.5,-45.5 + parent: 2 + - uid: 20344 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -29.5,-49.5 + parent: 2 + - uid: 20345 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -30.5,-49.5 + parent: 2 + - uid: 20346 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -28.5,-19.5 + parent: 2 + - uid: 20347 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -30.5,-52.5 + parent: 2 + - uid: 20348 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -32.5,-53.5 + parent: 2 + - uid: 20349 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -33.5,-53.5 + parent: 2 + - uid: 20350 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -34.5,-53.5 + parent: 2 + - uid: 20351 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -35.5,-53.5 + parent: 2 + - uid: 20352 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -36.5,-53.5 + parent: 2 + - uid: 20353 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -37.5,-53.5 + parent: 2 + - uid: 20354 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -38.5,-53.5 + parent: 2 + - uid: 20355 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -39.5,-53.5 + parent: 2 + - uid: 20356 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -40.5,-53.5 + parent: 2 + - uid: 20357 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -40.5,-52.5 + parent: 2 + - uid: 20358 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -40.5,-51.5 + parent: 2 + - uid: 20359 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -40.5,-49.5 + parent: 2 + - uid: 20360 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -40.5,-48.5 + parent: 2 + - uid: 20361 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -38.5,-48.5 + parent: 2 + - uid: 20362 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -38.5,-47.5 + parent: 2 + - uid: 20363 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -38.5,-45.5 + parent: 2 + - uid: 20364 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -41.5,-48.5 + parent: 2 + - uid: 20365 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -42.5,-48.5 + parent: 2 + - uid: 20366 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -43.5,-48.5 + parent: 2 + - uid: 20367 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -44.5,-48.5 + parent: 2 + - uid: 20368 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -40.5,-47.5 + parent: 2 + - uid: 20369 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -40.5,-45.5 + parent: 2 + - uid: 20370 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -41.5,-53.5 + parent: 2 + - uid: 20371 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -42.5,-53.5 + parent: 2 + - uid: 20372 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -43.5,-53.5 + parent: 2 + - uid: 20373 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -44.5,-53.5 + parent: 2 + - uid: 20374 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -27.5,-19.5 + parent: 2 + - uid: 20375 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -35.5,-25.5 + parent: 2 + - uid: 20376 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -40.5,-28.5 + parent: 2 + - uid: 20377 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -22.5,-49.5 + parent: 2 + - uid: 20378 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -22.5,-48.5 + parent: 2 + - uid: 20379 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -22.5,-45.5 + parent: 2 + - uid: 20380 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -25.5,-45.5 + parent: 2 + - uid: 20381 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -26.5,-45.5 + parent: 2 + - uid: 20382 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -27.5,-45.5 + parent: 2 + - uid: 20383 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -28.5,-45.5 + parent: 2 + - uid: 20384 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -52.5,-51.5 + parent: 2 + - uid: 20385 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -51.5,-53.5 + parent: 2 + - uid: 20386 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -52.5,-53.5 + parent: 2 + - uid: 20387 + components: + - type: Transform + pos: -75.5,-53.5 + parent: 2 + - uid: 20388 + components: + - type: Transform + pos: -76.5,-53.5 + parent: 2 + - uid: 20389 + components: + - type: Transform + pos: -77.5,-53.5 + parent: 2 + - uid: 20390 + components: + - type: Transform + pos: -75.5,-51.5 + parent: 2 + - uid: 20391 + components: + - type: Transform + pos: -76.5,-51.5 + parent: 2 + - uid: 20392 + components: + - type: Transform + pos: -77.5,-51.5 + parent: 2 + - uid: 20393 + components: + - type: Transform + pos: -83.5,-53.5 + parent: 2 + - uid: 20394 + components: + - type: Transform + pos: -83.5,-51.5 + parent: 2 + - uid: 20395 + components: + - type: Transform + pos: -83.5,-54.5 + parent: 2 + - uid: 20396 + components: + - type: Transform + pos: -82.5,-54.5 + parent: 2 + - uid: 20397 + components: + - type: Transform + pos: -77.5,-54.5 + parent: 2 + - uid: 20398 + components: + - type: Transform + pos: -78.5,-54.5 + parent: 2 + - uid: 20399 + components: + - type: Transform + pos: -77.5,-50.5 + parent: 2 + - uid: 20400 + components: + - type: Transform + pos: -78.5,-50.5 + parent: 2 + - uid: 20401 + components: + - type: Transform + pos: -83.5,-50.5 + parent: 2 + - uid: 20402 + components: + - type: Transform + pos: -82.5,-50.5 + parent: 2 + - uid: 20403 + components: + - type: Transform + pos: -82.5,-49.5 + parent: 2 + - uid: 20404 + components: + - type: Transform + pos: -81.5,-49.5 + parent: 2 + - uid: 20405 + components: + - type: Transform + pos: -80.5,-49.5 + parent: 2 + - uid: 20406 + components: + - type: Transform + pos: -79.5,-49.5 + parent: 2 + - uid: 20407 + components: + - type: Transform + pos: -78.5,-49.5 + parent: 2 + - uid: 20408 + components: + - type: Transform + pos: -78.5,-55.5 + parent: 2 + - uid: 20409 + components: + - type: Transform + pos: -79.5,-55.5 + parent: 2 + - uid: 20410 + components: + - type: Transform + pos: -80.5,-55.5 + parent: 2 + - uid: 20411 + components: + - type: Transform + pos: -81.5,-55.5 + parent: 2 + - uid: 20412 + components: + - type: Transform + pos: -82.5,-55.5 + parent: 2 + - uid: 20413 + components: + - type: Transform + pos: -83.5,-58.5 + parent: 2 + - uid: 20414 + components: + - type: Transform + pos: -84.5,-57.5 + parent: 2 + - uid: 20415 + components: + - type: Transform + pos: -85.5,-56.5 + parent: 2 + - uid: 20416 + components: + - type: Transform + pos: -86.5,-55.5 + parent: 2 + - uid: 20417 + components: + - type: Transform + pos: -77.5,-58.5 + parent: 2 + - uid: 20418 + components: + - type: Transform + pos: -76.5,-57.5 + parent: 2 + - uid: 20419 + components: + - type: Transform + pos: -75.5,-56.5 + parent: 2 + - uid: 20420 + components: + - type: Transform + pos: -74.5,-55.5 + parent: 2 + - uid: 20421 + components: + - type: Transform + pos: -74.5,-49.5 + parent: 2 + - uid: 20422 + components: + - type: Transform + pos: -75.5,-48.5 + parent: 2 + - uid: 20423 + components: + - type: Transform + pos: -76.5,-47.5 + parent: 2 + - uid: 20424 + components: + - type: Transform + pos: -77.5,-46.5 + parent: 2 + - uid: 20425 + components: + - type: Transform + pos: -83.5,-46.5 + parent: 2 + - uid: 20426 + components: + - type: Transform + pos: -84.5,-47.5 + parent: 2 + - uid: 20427 + components: + - type: Transform + pos: -85.5,-48.5 + parent: 2 + - uid: 20428 + components: + - type: Transform + pos: -86.5,-49.5 + parent: 2 + - uid: 20429 + components: + - type: Transform + pos: -21.5,-54.5 + parent: 2 + - uid: 20430 + components: + - type: Transform + pos: -20.5,-54.5 + parent: 2 + - uid: 20431 + components: + - type: Transform + pos: -19.5,-54.5 + parent: 2 + - uid: 20432 + components: + - type: Transform + pos: -18.5,-54.5 + parent: 2 + - uid: 20433 + components: + - type: Transform + pos: -21.5,-55.5 + parent: 2 + - uid: 20434 + components: + - type: Transform + pos: -21.5,-56.5 + parent: 2 + - uid: 20435 + components: + - type: Transform + pos: -21.5,-57.5 + parent: 2 + - uid: 20436 + components: + - type: Transform + pos: -55.5,-67.5 + parent: 2 + - uid: 20437 + components: + - type: Transform + pos: -54.5,-67.5 + parent: 2 + - uid: 20438 + components: + - type: Transform + pos: -53.5,-67.5 + parent: 2 + - uid: 20439 + components: + - type: Transform + pos: -52.5,-67.5 + parent: 2 + - uid: 20440 + components: + - type: Transform + pos: -50.5,-68.5 + parent: 2 + - uid: 20441 + components: + - type: Transform + pos: -49.5,-68.5 + parent: 2 + - uid: 20442 + components: + - type: Transform + pos: -48.5,-68.5 + parent: 2 + - uid: 20443 + components: + - type: Transform + pos: -47.5,-68.5 + parent: 2 + - uid: 20444 + components: + - type: Transform + pos: -47.5,-70.5 + parent: 2 + - uid: 20445 + components: + - type: Transform + pos: -48.5,-70.5 + parent: 2 + - uid: 20446 + components: + - type: Transform + pos: -45.5,-70.5 + parent: 2 + - uid: 20447 + components: + - type: Transform + pos: -44.5,-70.5 + parent: 2 + - uid: 20448 + components: + - type: Transform + pos: -43.5,-70.5 + parent: 2 + - uid: 20449 + components: + - type: Transform + pos: -42.5,-70.5 + parent: 2 + - uid: 20450 + components: + - type: Transform + pos: -41.5,-70.5 + parent: 2 + - uid: 20451 + components: + - type: Transform + pos: -40.5,-70.5 + parent: 2 + - uid: 20452 + components: + - type: Transform + pos: -39.5,-70.5 + parent: 2 + - uid: 20453 + components: + - type: Transform + pos: -38.5,-68.5 + parent: 2 + - uid: 20454 + components: + - type: Transform + pos: -37.5,-68.5 + parent: 2 + - uid: 20455 + components: + - type: Transform + pos: -36.5,-68.5 + parent: 2 + - uid: 20456 + components: + - type: Transform + pos: -35.5,-68.5 + parent: 2 + - uid: 20457 + components: + - type: Transform + pos: -34.5,-68.5 + parent: 2 + - uid: 20458 + components: + - type: Transform + pos: -33.5,-68.5 + parent: 2 + - uid: 20459 + components: + - type: Transform + pos: -34.5,-70.5 + parent: 2 + - uid: 20460 + components: + - type: Transform + pos: -35.5,-70.5 + parent: 2 + - uid: 20461 + components: + - type: Transform + pos: -36.5,-70.5 + parent: 2 + - uid: 20462 + components: + - type: Transform + pos: -32.5,-70.5 + parent: 2 + - uid: 20463 + components: + - type: Transform + pos: -31.5,-71.5 + parent: 2 + - uid: 20464 + components: + - type: Transform + pos: -30.5,-69.5 + parent: 2 + - uid: 20465 + components: + - type: Transform + pos: -30.5,-68.5 + parent: 2 + - uid: 20466 + components: + - type: Transform + pos: -29.5,-72.5 + parent: 2 + - uid: 20467 + components: + - type: Transform + pos: -28.5,-72.5 + parent: 2 + - uid: 20468 + components: + - type: Transform + pos: -27.5,-72.5 + parent: 2 + - uid: 20469 + components: + - type: Transform + pos: -26.5,-72.5 + parent: 2 + - uid: 20470 + components: + - type: Transform + pos: -26.5,-70.5 + parent: 2 + - uid: 20471 + components: + - type: Transform + pos: -24.5,-71.5 + parent: 2 + - uid: 20472 + components: + - type: Transform + pos: -23.5,-71.5 + parent: 2 + - uid: 20473 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -21.5,-60.5 + parent: 2 + - uid: 20474 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -21.5,-59.5 + parent: 2 + - uid: 20475 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -21.5,-58.5 + parent: 2 + - uid: 20476 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -21.5,-63.5 + parent: 2 + - uid: 20477 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -17.5,-54.5 + parent: 2 + - uid: 20478 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -16.5,-54.5 + parent: 2 + - uid: 20479 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -14.5,-54.5 + parent: 2 + - uid: 20480 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -13.5,-54.5 + parent: 2 + - uid: 20481 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -12.5,-54.5 + parent: 2 + - uid: 20482 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -11.5,-54.5 + parent: 2 + - uid: 20483 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -10.5,-54.5 + parent: 2 + - uid: 20484 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -9.5,-54.5 + parent: 2 + - uid: 20485 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -8.5,-54.5 + parent: 2 + - uid: 20486 + components: + - type: Transform + pos: -7.5,-54.5 + parent: 2 + - uid: 20487 + components: + - type: Transform + pos: -6.5,-54.5 + parent: 2 + - uid: 20488 + components: + - type: Transform + pos: -4.5,-54.5 + parent: 2 + - uid: 20489 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -5.5,-47.5 + parent: 2 + - uid: 20490 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -3.5,-49.5 + parent: 2 + - uid: 20491 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -3.5,-48.5 + parent: 2 + - uid: 20492 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -3.5,-47.5 + parent: 2 + - uid: 20493 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -4.5,-41.5 + parent: 2 + - uid: 20494 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -3.5,-41.5 + parent: 2 + - uid: 20495 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -2.5,-41.5 + parent: 2 + - uid: 20496 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -1.5,-41.5 + parent: 2 + - uid: 20497 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -1.5,-40.5 + parent: 2 + - uid: 20498 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -1.5,-39.5 + parent: 2 + - uid: 20499 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -1.5,-38.5 + parent: 2 + - uid: 20500 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -2.5,-38.5 + parent: 2 + - uid: 20501 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -4.5,-38.5 + parent: 2 + - uid: 20502 + components: + - type: Transform + pos: 21.5,-16.5 + parent: 2 + - uid: 20503 + components: + - type: Transform + pos: 22.5,-16.5 + parent: 2 + - uid: 20504 + components: + - type: Transform + pos: 24.5,-16.5 + parent: 2 + - uid: 20505 + components: + - type: Transform + pos: 25.5,-16.5 + parent: 2 + - uid: 20506 + components: + - type: Transform + pos: 26.5,-16.5 + parent: 2 + - uid: 20507 + components: + - type: Transform + pos: 27.5,-16.5 + parent: 2 + - uid: 20508 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 52.5,11.5 + parent: 2 + - uid: 20509 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 50.5,9.5 + parent: 2 + - uid: 20510 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 49.5,9.5 + parent: 2 + - uid: 20511 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 48.5,9.5 + parent: 2 + - uid: 20512 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 49.5,11.5 + parent: 2 + - uid: 20513 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 48.5,11.5 + parent: 2 + - uid: 20514 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 47.5,11.5 + parent: 2 + - uid: 20515 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 46.5,11.5 + parent: 2 + - uid: 20516 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 53.5,11.5 + parent: 2 + - uid: 20517 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 54.5,11.5 + parent: 2 + - uid: 20518 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 48.5,13.5 + parent: 2 + - uid: 20519 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 49.5,13.5 + parent: 2 + - uid: 20520 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 50.5,13.5 + parent: 2 + - uid: 20521 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 51.5,13.5 + parent: 2 + - uid: 20522 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 54.5,13.5 + parent: 2 + - uid: 20523 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 55.5,13.5 + parent: 2 + - uid: 20524 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 56.5,13.5 + parent: 2 + - uid: 20525 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 54.5,15.5 + parent: 2 + - uid: 20526 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 53.5,15.5 + parent: 2 + - uid: 20527 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 55.5,15.5 + parent: 2 + - uid: 20528 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 56.5,15.5 + parent: 2 + - uid: 20529 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 57.5,15.5 + parent: 2 + - uid: 20530 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 58.5,15.5 + parent: 2 + - uid: 20531 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 58.5,12.5 + parent: 2 + - uid: 20532 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 59.5,12.5 + parent: 2 + - uid: 20533 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 60.5,12.5 + parent: 2 + - uid: 20534 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 61.5,14.5 + parent: 2 + - uid: 20535 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 62.5,14.5 + parent: 2 + - uid: 20536 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 63.5,14.5 + parent: 2 + - uid: 20537 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 64.5,14.5 + parent: 2 + - uid: 20538 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 74.5,17.5 + parent: 2 + - uid: 20539 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 73.5,17.5 + parent: 2 + - uid: 20540 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 72.5,17.5 + parent: 2 + - uid: 20541 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 71.5,17.5 + parent: 2 + - uid: 20542 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 69.5,16.5 + parent: 2 + - uid: 20543 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 68.5,16.5 + parent: 2 + - uid: 20544 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 67.5,16.5 + parent: 2 + - uid: 20545 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 66.5,16.5 + parent: 2 + - uid: 20546 + components: + - type: Transform + pos: 64.5,31.5 + parent: 2 + - uid: 20547 + components: + - type: Transform + pos: 74.5,29.5 + parent: 2 + - uid: 20548 + components: + - type: Transform + pos: 73.5,29.5 + parent: 2 + - uid: 20549 + components: + - type: Transform + pos: 72.5,29.5 + parent: 2 + - uid: 20550 + components: + - type: Transform + pos: 71.5,29.5 + parent: 2 + - uid: 20551 + components: + - type: Transform + pos: 66.5,30.5 + parent: 2 + - uid: 20552 + components: + - type: Transform + pos: 67.5,30.5 + parent: 2 + - uid: 20553 + components: + - type: Transform + pos: 68.5,30.5 + parent: 2 + - uid: 20554 + components: + - type: Transform + pos: 69.5,30.5 + parent: 2 + - uid: 20555 + components: + - type: Transform + pos: 63.5,31.5 + parent: 2 + - uid: 20556 + components: + - type: Transform + pos: 62.5,31.5 + parent: 2 + - uid: 20557 + components: + - type: Transform + pos: 61.5,31.5 + parent: 2 + - uid: 20558 + components: + - type: Transform + pos: 3.5,22.5 + parent: 2 + - uid: 20559 + components: + - type: Transform + pos: 3.5,23.5 + parent: 2 + - uid: 20560 + components: + - type: Transform + pos: 4.5,23.5 + parent: 2 + - uid: 20561 + components: + - type: Transform + pos: 6.5,23.5 + parent: 2 + - uid: 20562 + components: + - type: Transform + pos: 11.5,22.5 + parent: 2 + - uid: 20563 + components: + - type: Transform + pos: 9.5,24.5 + parent: 2 + - uid: 20565 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 14.5,45.5 + parent: 2 + - uid: 20566 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 13.5,45.5 + parent: 2 + - uid: 20568 + components: + - type: Transform + pos: 47.5,46.5 + parent: 2 + - uid: 20569 + components: + - type: Transform + pos: 49.5,46.5 + parent: 2 + - uid: 20570 + components: + - type: Transform + pos: 50.5,46.5 + parent: 2 + - uid: 20571 + components: + - type: Transform + pos: 52.5,46.5 + parent: 2 + - uid: 20572 + components: + - type: Transform + pos: 53.5,46.5 + parent: 2 + - uid: 20573 + components: + - type: Transform + pos: 48.5,44.5 + parent: 2 + - uid: 20574 + components: + - type: Transform + pos: 49.5,44.5 + parent: 2 + - uid: 20575 + components: + - type: Transform + pos: 55.5,46.5 + parent: 2 + - uid: 20576 + components: + - type: Transform + pos: 56.5,46.5 + parent: 2 + - uid: 20577 + components: + - type: Transform + pos: 58.5,43.5 + parent: 2 + - uid: 20578 + components: + - type: Transform + pos: 58.5,42.5 + parent: 2 + - uid: 20579 + components: + - type: Transform + pos: 58.5,41.5 + parent: 2 + - uid: 20580 + components: + - type: Transform + pos: 58.5,40.5 + parent: 2 + - uid: 20581 + components: + - type: Transform + pos: 60.5,40.5 + parent: 2 + - uid: 20582 + components: + - type: Transform + pos: 60.5,39.5 + parent: 2 + - uid: 20583 + components: + - type: Transform + pos: 60.5,38.5 + parent: 2 + - uid: 20584 + components: + - type: Transform + pos: 60.5,37.5 + parent: 2 + - uid: 20585 + components: + - type: Transform + pos: 58.5,37.5 + parent: 2 + - uid: 20586 + components: + - type: Transform + pos: 58.5,36.5 + parent: 2 + - uid: 20587 + components: + - type: Transform + pos: 58.5,35.5 + parent: 2 + - uid: 20588 + components: + - type: Transform + pos: 58.5,34.5 + parent: 2 + - uid: 20589 + components: + - type: Transform + pos: 61.5,35.5 + parent: 2 + - uid: 20590 + components: + - type: Transform + pos: 61.5,34.5 + parent: 2 + - uid: 20591 + components: + - type: Transform + pos: 61.5,33.5 + parent: 2 + - uid: 20592 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 16.5,51.5 + parent: 2 + - uid: 20593 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 32.5,45.5 + parent: 2 + - uid: 20594 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 33.5,45.5 + parent: 2 + - uid: 20595 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 34.5,45.5 + parent: 2 + - uid: 20596 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 36.5,45.5 + parent: 2 + - uid: 20597 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 37.5,45.5 + parent: 2 + - uid: 20598 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 38.5,45.5 + parent: 2 + - uid: 20599 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 39.5,45.5 + parent: 2 + - uid: 20600 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 38.5,47.5 + parent: 2 + - uid: 20601 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 39.5,47.5 + parent: 2 + - uid: 20602 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 36.5,47.5 + parent: 2 + - uid: 20603 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 35.5,47.5 + parent: 2 + - uid: 20604 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 34.5,47.5 + parent: 2 + - uid: 20605 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 33.5,47.5 + parent: 2 + - uid: 20606 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 33.5,49.5 + parent: 2 + - uid: 20607 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 32.5,49.5 + parent: 2 + - uid: 20608 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 31.5,49.5 + parent: 2 + - uid: 20609 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 30.5,47.5 + parent: 2 + - uid: 20610 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 28.5,47.5 + parent: 2 + - uid: 20611 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 27.5,47.5 + parent: 2 + - uid: 20612 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 28.5,50.5 + parent: 2 + - uid: 20613 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 27.5,50.5 + parent: 2 + - uid: 20614 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 26.5,46.5 + parent: 2 + - uid: 20615 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 26.5,45.5 + parent: 2 + - uid: 20616 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 22.5,49.5 + parent: 2 + - uid: 20617 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 23.5,49.5 + parent: 2 + - uid: 20618 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 24.5,49.5 + parent: 2 + - uid: 20619 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 22.5,51.5 + parent: 2 + - uid: 20620 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 23.5,51.5 + parent: 2 + - uid: 20621 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 24.5,51.5 + parent: 2 + - uid: 20622 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 19.5,51.5 + parent: 2 + - uid: 20623 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 18.5,51.5 + parent: 2 + - uid: 20624 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 18.5,49.5 + parent: 2 + - uid: 20625 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 17.5,49.5 + parent: 2 + - uid: 20626 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 16.5,49.5 + parent: 2 + - uid: 20627 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 16.5,52.5 + parent: 2 + - uid: 20628 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 17.5,54.5 + parent: 2 + - uid: 20629 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 17.5,55.5 + parent: 2 + - uid: 20630 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 15.5,54.5 + parent: 2 + - uid: 20631 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 15.5,55.5 + parent: 2 + - uid: 20632 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 15.5,56.5 + parent: 2 + - uid: 20633 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 15.5,59.5 + parent: 2 + - uid: 20634 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 15.5,58.5 + parent: 2 + - uid: 20635 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 46.5,-13.5 + parent: 2 + - uid: 20636 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 42.5,-13.5 + parent: 2 + - uid: 20637 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 45.5,-13.5 + parent: 2 + - uid: 20638 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 42.5,-14.5 + parent: 2 + - uid: 20639 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 42.5,-15.5 + parent: 2 + - uid: 20640 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 42.5,-16.5 + parent: 2 + - uid: 20641 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 42.5,-17.5 + parent: 2 + - uid: 20642 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 42.5,-18.5 + parent: 2 + - uid: 20643 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 42.5,-19.5 + parent: 2 + - uid: 20644 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 43.5,-19.5 + parent: 2 + - uid: 20645 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 44.5,-19.5 + parent: 2 + - uid: 20646 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 45.5,-19.5 + parent: 2 + - uid: 20647 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 46.5,-19.5 + parent: 2 + - uid: 20648 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 47.5,-19.5 + parent: 2 + - uid: 20649 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 47.5,-18.5 + parent: 2 + - uid: 20650 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 47.5,-17.5 + parent: 2 + - uid: 20651 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 47.5,-16.5 + parent: 2 + - uid: 20652 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 45.5,-15.5 + parent: 2 + - uid: 20653 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -22.5,17.5 + parent: 2 + - uid: 20654 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -21.5,17.5 + parent: 2 + - uid: 20655 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -19.5,17.5 + parent: 2 + - uid: 20656 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -18.5,17.5 + parent: 2 + - uid: 20657 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -17.5,17.5 + parent: 2 + - uid: 20658 + components: + - type: Transform + pos: -22.5,18.5 + parent: 2 + - uid: 20659 + components: + - type: Transform + pos: -22.5,19.5 + parent: 2 + - uid: 20660 + components: + - type: Transform + pos: -22.5,20.5 + parent: 2 + - uid: 20661 + components: + - type: Transform + pos: -22.5,21.5 + parent: 2 + - uid: 20662 + components: + - type: Transform + pos: -22.5,22.5 + parent: 2 + - uid: 20663 + components: + - type: Transform + pos: -23.5,22.5 + parent: 2 + - uid: 20664 + components: + - type: Transform + pos: -24.5,22.5 + parent: 2 + - uid: 20665 + components: + - type: Transform + pos: -25.5,22.5 + parent: 2 + - uid: 20666 + components: + - type: Transform + pos: -26.5,22.5 + parent: 2 + - uid: 20667 + components: + - type: Transform + pos: -30.5,22.5 + parent: 2 + - uid: 20668 + components: + - type: Transform + pos: -29.5,22.5 + parent: 2 + - uid: 20669 + components: + - type: Transform + pos: -28.5,22.5 + parent: 2 + - uid: 20670 + components: + - type: Transform + pos: -28.5,23.5 + parent: 2 + - uid: 20671 + components: + - type: Transform + pos: -28.5,24.5 + parent: 2 + - uid: 20672 + components: + - type: Transform + pos: -28.5,25.5 + parent: 2 + - uid: 20673 + components: + - type: Transform + pos: -28.5,26.5 + parent: 2 + - uid: 20674 + components: + - type: Transform + pos: -28.5,27.5 + parent: 2 + - uid: 20675 + components: + - type: Transform + pos: -26.5,27.5 + parent: 2 + - uid: 20676 + components: + - type: Transform + pos: -26.5,26.5 + parent: 2 + - uid: 20677 + components: + - type: Transform + pos: -26.5,25.5 + parent: 2 + - uid: 20678 + components: + - type: Transform + pos: -26.5,24.5 + parent: 2 + - uid: 20679 + components: + - type: Transform + pos: -26.5,23.5 + parent: 2 + - uid: 20680 + components: + - type: Transform + pos: -31.5,22.5 + parent: 2 + - uid: 20681 + components: + - type: Transform + pos: -32.5,22.5 + parent: 2 + - uid: 20682 + components: + - type: Transform + pos: -33.5,22.5 + parent: 2 + - uid: 20683 + components: + - type: Transform + pos: -34.5,22.5 + parent: 2 + - uid: 20684 + components: + - type: Transform + pos: -34.5,21.5 + parent: 2 + - uid: 20685 + components: + - type: Transform + pos: -34.5,20.5 + parent: 2 + - uid: 20686 + components: + - type: Transform + pos: -34.5,19.5 + parent: 2 + - uid: 20687 + components: + - type: Transform + pos: -13.5,21.5 + parent: 2 + - uid: 20688 + components: + - type: Transform + pos: -1.5,18.5 + parent: 2 + - uid: 20689 + components: + - type: Transform + pos: -1.5,20.5 + parent: 2 + - uid: 20690 + components: + - type: Transform + pos: -10.5,21.5 + parent: 2 + - uid: 20691 + components: + - type: Transform + pos: -7.5,21.5 + parent: 2 + - uid: 20692 + components: + - type: Transform + pos: -4.5,21.5 + parent: 2 + - uid: 20693 + components: + - type: Transform + pos: -1.5,21.5 + parent: 2 + - uid: 20694 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -22.5,23.5 + parent: 2 + - uid: 20695 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -22.5,24.5 + parent: 2 + - uid: 20696 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -22.5,25.5 + parent: 2 + - uid: 20697 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -22.5,26.5 + parent: 2 + - uid: 20698 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -13.5,22.5 + parent: 2 + - uid: 20699 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -13.5,23.5 + parent: 2 + - uid: 20700 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -13.5,24.5 + parent: 2 + - uid: 20701 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -13.5,25.5 + parent: 2 + - uid: 20702 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -1.5,22.5 + parent: 2 + - uid: 20703 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -1.5,23.5 + parent: 2 + - uid: 20704 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -1.5,24.5 + parent: 2 + - uid: 20705 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -1.5,25.5 + parent: 2 + - uid: 20706 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -1.5,26.5 + parent: 2 + - uid: 20707 + components: + - type: Transform + pos: -13.5,30.5 + parent: 2 + - uid: 20708 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -1.5,27.5 + parent: 2 + - uid: 20709 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -1.5,28.5 + parent: 2 + - uid: 20710 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -1.5,29.5 + parent: 2 + - uid: 20712 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -13.5,35.5 + parent: 2 + - uid: 20713 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -7.5,36.5 + parent: 2 + - uid: 20714 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -13.5,36.5 + parent: 2 + - uid: 20715 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -13.5,33.5 + parent: 2 + - uid: 20716 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -13.5,34.5 + parent: 2 + - uid: 20717 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -13.5,37.5 + parent: 2 + - uid: 20718 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -10.5,37.5 + parent: 2 + - uid: 20719 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -10.5,36.5 + parent: 2 + - uid: 20720 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -11.5,37.5 + parent: 2 + - uid: 20721 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -1.5,36.5 + parent: 2 + - uid: 20722 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -1.5,34.5 + parent: 2 + - uid: 20723 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -1.5,31.5 + parent: 2 + - uid: 20724 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -1.5,32.5 + parent: 2 + - uid: 20725 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -1.5,35.5 + parent: 2 + - uid: 20726 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -1.5,33.5 + parent: 2 + - uid: 20727 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -6.5,35.5 + parent: 2 + - uid: 20728 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -5.5,35.5 + parent: 2 + - uid: 20729 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -7.5,35.5 + parent: 2 + - uid: 20730 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -14.5,37.5 + parent: 2 + - uid: 20731 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -17.5,37.5 + parent: 2 + - uid: 20732 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -17.5,30.5 + parent: 2 + - uid: 20733 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -18.5,31.5 + parent: 2 + - uid: 20734 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -18.5,33.5 + parent: 2 + - uid: 20735 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -18.5,34.5 + parent: 2 + - uid: 20736 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -18.5,35.5 + parent: 2 + - uid: 20737 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -18.5,36.5 + parent: 2 + - uid: 20738 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -18.5,37.5 + parent: 2 + - uid: 20739 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -19.5,37.5 + parent: 2 + - uid: 20740 + components: + - type: Transform + pos: -19.5,42.5 + parent: 2 + - uid: 20741 + components: + - type: Transform + pos: -19.5,40.5 + parent: 2 + - uid: 20742 + components: + - type: Transform + pos: -19.5,41.5 + parent: 2 + - uid: 20743 + components: + - type: Transform + pos: -19.5,38.5 + parent: 2 + - uid: 20744 + components: + - type: Transform + pos: -19.5,39.5 + parent: 2 + - uid: 20745 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -18.5,42.5 + parent: 2 + - uid: 20746 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -18.5,41.5 + parent: 2 + - uid: 20747 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -17.5,42.5 + parent: 2 + - uid: 20748 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -17.5,41.5 + parent: 2 + - uid: 20749 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -16.5,42.5 + parent: 2 + - uid: 20750 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -16.5,41.5 + parent: 2 + - uid: 20751 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -15.5,42.5 + parent: 2 + - uid: 20752 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -15.5,41.5 + parent: 2 + - uid: 20753 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -14.5,42.5 + parent: 2 + - uid: 20754 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -14.5,41.5 + parent: 2 + - uid: 20755 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -13.5,42.5 + parent: 2 + - uid: 20756 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -13.5,41.5 + parent: 2 + - uid: 20757 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -12.5,42.5 + parent: 2 + - uid: 20758 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -12.5,41.5 + parent: 2 + - uid: 20759 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -11.5,42.5 + parent: 2 + - uid: 20760 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -11.5,41.5 + parent: 2 + - uid: 20761 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -10.5,42.5 + parent: 2 + - uid: 20762 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -10.5,41.5 + parent: 2 + - uid: 20763 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -10.5,40.5 + parent: 2 + - uid: 20764 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -10.5,38.5 + parent: 2 + - uid: 20765 + components: + - type: Transform + pos: -20.5,37.5 + parent: 2 + - uid: 20766 + components: + - type: Transform + pos: -21.5,37.5 + parent: 2 + - uid: 20767 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -7.5,37.5 + parent: 2 + - uid: 20768 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -7.5,39.5 + parent: 2 + - uid: 20769 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -7.5,40.5 + parent: 2 + - uid: 20770 + components: + - type: Transform + pos: -7.5,41.5 + parent: 2 + - uid: 20771 + components: + - type: Transform + pos: -7.5,42.5 + parent: 2 + - uid: 20772 + components: + - type: Transform + pos: -7.5,43.5 + parent: 2 + - uid: 20773 + components: + - type: Transform + pos: -7.5,44.5 + parent: 2 + - uid: 20774 + components: + - type: Transform + pos: -8.5,44.5 + parent: 2 + - uid: 20775 + components: + - type: Transform + pos: -9.5,44.5 + parent: 2 + - uid: 20776 + components: + - type: Transform + pos: -10.5,44.5 + parent: 2 + - uid: 20777 + components: + - type: Transform + pos: -11.5,44.5 + parent: 2 + - uid: 20778 + components: + - type: Transform + pos: -12.5,44.5 + parent: 2 + - uid: 20779 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -20.5,41.5 + parent: 2 + - uid: 20780 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -20.5,42.5 + parent: 2 + - uid: 20781 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -27.5,37.5 + parent: 2 + - uid: 20782 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -26.5,37.5 + parent: 2 + - uid: 20783 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -25.5,37.5 + parent: 2 + - uid: 20784 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -27.5,38.5 + parent: 2 + - uid: 20785 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -27.5,39.5 + parent: 2 + - uid: 20786 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -27.5,40.5 + parent: 2 + - uid: 20787 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -27.5,41.5 + parent: 2 + - uid: 20788 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -26.5,41.5 + parent: 2 + - uid: 20789 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -26.5,42.5 + parent: 2 + - uid: 20790 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -25.5,42.5 + parent: 2 + - uid: 20791 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -24.5,42.5 + parent: 2 + - uid: 20792 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -21.5,42.5 + parent: 2 + - uid: 20793 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -22.5,42.5 + parent: 2 + - uid: 20794 + components: + - type: Transform + pos: -27.5,42.5 + parent: 2 + - uid: 20795 + components: + - type: Transform + pos: -27.5,43.5 + parent: 2 + - uid: 20796 + components: + - type: Transform + pos: -27.5,44.5 + parent: 2 + - uid: 20797 + components: + - type: Transform + pos: -27.5,45.5 + parent: 2 + - uid: 20798 + components: + - type: Transform + pos: -27.5,46.5 + parent: 2 + - uid: 20799 + components: + - type: Transform + pos: -26.5,46.5 + parent: 2 + - uid: 20800 + components: + - type: Transform + pos: -25.5,46.5 + parent: 2 + - uid: 20801 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -28.5,40.5 + parent: 2 + - uid: 20802 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -30.5,40.5 + parent: 2 + - uid: 20803 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -31.5,40.5 + parent: 2 + - uid: 20804 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -31.5,39.5 + parent: 2 + - uid: 20805 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -31.5,38.5 + parent: 2 + - uid: 20806 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -31.5,37.5 + parent: 2 + - uid: 20807 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -31.5,36.5 + parent: 2 + - uid: 20808 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -31.5,35.5 + parent: 2 + - uid: 20809 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -31.5,34.5 + parent: 2 + - uid: 20810 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -31.5,33.5 + parent: 2 + - uid: 20811 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -31.5,32.5 + parent: 2 + - uid: 20812 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -31.5,31.5 + parent: 2 + - uid: 20813 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -31.5,41.5 + parent: 2 + - uid: 20814 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -31.5,42.5 + parent: 2 + - uid: 20815 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -30.5,42.5 + parent: 2 + - uid: 20816 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -28.5,42.5 + parent: 2 + - uid: 20817 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -34.5,23.5 + parent: 2 + - uid: 20818 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -29.5,27.5 + parent: 2 + - uid: 20819 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -30.5,27.5 + parent: 2 + - uid: 20820 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -31.5,27.5 + parent: 2 + - uid: 20821 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -32.5,27.5 + parent: 2 + - uid: 20822 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -33.5,27.5 + parent: 2 + - uid: 20823 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -34.5,27.5 + parent: 2 + - uid: 20824 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -34.5,26.5 + parent: 2 + - uid: 20825 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -34.5,25.5 + parent: 2 + - uid: 20826 + components: + - type: Transform + pos: -32.5,40.5 + parent: 2 + - uid: 20827 + components: + - type: Transform + pos: -33.5,40.5 + parent: 2 + - uid: 20828 + components: + - type: Transform + pos: -34.5,40.5 + parent: 2 + - uid: 20829 + components: + - type: Transform + pos: -35.5,40.5 + parent: 2 + - uid: 20830 + components: + - type: Transform + pos: -32.5,31.5 + parent: 2 + - uid: 20831 + components: + - type: Transform + pos: -33.5,31.5 + parent: 2 + - uid: 20832 + components: + - type: Transform + pos: -34.5,31.5 + parent: 2 + - uid: 20833 + components: + - type: Transform + pos: -35.5,31.5 + parent: 2 + - uid: 20834 + components: + - type: Transform + pos: -36.5,31.5 + parent: 2 + - uid: 20835 + components: + - type: Transform + pos: -37.5,31.5 + parent: 2 + - uid: 20836 + components: + - type: Transform + pos: -38.5,31.5 + parent: 2 + - uid: 20837 + components: + - type: Transform + pos: -36.5,40.5 + parent: 2 + - uid: 20838 + components: + - type: Transform + pos: -37.5,40.5 + parent: 2 + - uid: 20839 + components: + - type: Transform + pos: -38.5,40.5 + parent: 2 + - uid: 20840 + components: + - type: Transform + pos: -38.5,38.5 + parent: 2 + - uid: 20841 + components: + - type: Transform + pos: -39.5,38.5 + parent: 2 + - uid: 20842 + components: + - type: Transform + pos: -42.5,38.5 + parent: 2 + - uid: 20843 + components: + - type: Transform + pos: -43.5,38.5 + parent: 2 + - uid: 20844 + components: + - type: Transform + pos: -43.5,37.5 + parent: 2 + - uid: 20845 + components: + - type: Transform + pos: -43.5,36.5 + parent: 2 + - uid: 20846 + components: + - type: Transform + pos: -43.5,35.5 + parent: 2 + - uid: 20847 + components: + - type: Transform + pos: -43.5,31.5 + parent: 2 + - uid: 20848 + components: + - type: Transform + pos: -43.5,30.5 + parent: 2 + - uid: 20849 + components: + - type: Transform + pos: -43.5,29.5 + parent: 2 + - uid: 20850 + components: + - type: Transform + pos: -43.5,28.5 + parent: 2 + - uid: 20851 + components: + - type: Transform + pos: -43.5,27.5 + parent: 2 + - uid: 20852 + components: + - type: Transform + pos: -42.5,27.5 + parent: 2 + - uid: 20853 + components: + - type: Transform + pos: -41.5,27.5 + parent: 2 + - uid: 20854 + components: + - type: Transform + pos: -40.5,27.5 + parent: 2 + - uid: 20855 + components: + - type: Transform + pos: -39.5,27.5 + parent: 2 + - uid: 20856 + components: + - type: Transform + pos: -38.5,27.5 + parent: 2 + - uid: 20857 + components: + - type: Transform + pos: -38.5,25.5 + parent: 2 + - uid: 20858 + components: + - type: Transform + pos: -38.5,24.5 + parent: 2 + - uid: 20859 + components: + - type: Transform + pos: -38.5,23.5 + parent: 2 + - uid: 20860 + components: + - type: Transform + pos: -39.5,23.5 + parent: 2 + - uid: 20861 + components: + - type: Transform + pos: -41.5,23.5 + parent: 2 + - uid: 20862 + components: + - type: Transform + pos: -42.5,23.5 + parent: 2 + - uid: 20863 + components: + - type: Transform + pos: -43.5,23.5 + parent: 2 + - uid: 20864 + components: + - type: Transform + pos: -43.5,24.5 + parent: 2 + - uid: 20865 + components: + - type: Transform + pos: -43.5,25.5 + parent: 2 + - uid: 20866 + components: + - type: Transform + pos: -42.5,21.5 + parent: 2 + - uid: 20867 + components: + - type: Transform + pos: -41.5,21.5 + parent: 2 + - uid: 20868 + components: + - type: Transform + pos: 8.5,28.5 + parent: 2 + - uid: 20869 + components: + - type: Transform + pos: 7.5,28.5 + parent: 2 + - uid: 20870 + components: + - type: Transform + pos: 6.5,28.5 + parent: 2 + - uid: 20871 + components: + - type: Transform + pos: 4.5,28.5 + parent: 2 + - uid: 20872 + components: + - type: Transform + pos: 3.5,28.5 + parent: 2 + - uid: 20873 + components: + - type: Transform + pos: 3.5,24.5 + parent: 2 + - uid: 20874 + components: + - type: Transform + pos: 9.5,29.5 + parent: 2 + - uid: 20875 + components: + - type: Transform + pos: 9.5,30.5 + parent: 2 + - uid: 20876 + components: + - type: Transform + pos: 9.5,31.5 + parent: 2 + - uid: 20877 + components: + - type: Transform + pos: 9.5,32.5 + parent: 2 + - uid: 20878 + components: + - type: Transform + pos: 9.5,33.5 + parent: 2 + - uid: 20879 + components: + - type: Transform + pos: 8.5,33.5 + parent: 2 + - uid: 20880 + components: + - type: Transform + pos: 7.5,33.5 + parent: 2 + - uid: 20881 + components: + - type: Transform + pos: 6.5,33.5 + parent: 2 + - uid: 20882 + components: + - type: Transform + pos: 5.5,33.5 + parent: 2 + - uid: 20883 + components: + - type: Transform + pos: 4.5,33.5 + parent: 2 + - uid: 20884 + components: + - type: Transform + pos: 3.5,33.5 + parent: 2 + - uid: 20885 + components: + - type: Transform + pos: 3.5,32.5 + parent: 2 + - uid: 20886 + components: + - type: Transform + pos: 3.5,31.5 + parent: 2 + - uid: 20887 + components: + - type: Transform + pos: 3.5,30.5 + parent: 2 + - uid: 20888 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 9.5,34.5 + parent: 2 + - uid: 20889 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 9.5,35.5 + parent: 2 + - uid: 20890 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 9.5,36.5 + parent: 2 + - uid: 20891 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 9.5,37.5 + parent: 2 + - uid: 20892 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 9.5,38.5 + parent: 2 + - uid: 20893 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 9.5,39.5 + parent: 2 + - uid: 20894 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 9.5,40.5 + parent: 2 + - uid: 20895 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 9.5,41.5 + parent: 2 + - uid: 20896 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 9.5,42.5 + parent: 2 + - uid: 20897 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 9.5,43.5 + parent: 2 + - uid: 20898 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 9.5,44.5 + parent: 2 + - uid: 20899 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 9.5,45.5 + parent: 2 + - uid: 20900 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 8.5,45.5 + parent: 2 + - uid: 20901 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 6.5,45.5 + parent: 2 + - uid: 20902 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 5.5,45.5 + parent: 2 + - uid: 20903 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 4.5,45.5 + parent: 2 + - uid: 20904 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 3.5,45.5 + parent: 2 + - uid: 20905 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 3.5,44.5 + parent: 2 + - uid: 20906 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 3.5,43.5 + parent: 2 + - uid: 20907 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 3.5,42.5 + parent: 2 + - uid: 20908 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 3.5,41.5 + parent: 2 + - uid: 20909 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 3.5,40.5 + parent: 2 + - uid: 20910 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 3.5,39.5 + parent: 2 + - uid: 20911 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 3.5,38.5 + parent: 2 + - uid: 20912 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 3.5,37.5 + parent: 2 + - uid: 20913 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 3.5,36.5 + parent: 2 + - uid: 20914 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 3.5,35.5 + parent: 2 + - uid: 20915 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -7.5,46.5 + parent: 2 + - uid: 20916 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -6.5,46.5 + parent: 2 + - uid: 20917 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -5.5,46.5 + parent: 2 + - uid: 20918 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -4.5,46.5 + parent: 2 + - uid: 20919 + components: + - type: Transform + pos: -4.5,47.5 + parent: 2 + - uid: 20920 + components: + - type: Transform + pos: -4.5,48.5 + parent: 2 + - uid: 20921 + components: + - type: Transform + pos: -4.5,49.5 + parent: 2 + - uid: 20922 + components: + - type: Transform + pos: -4.5,50.5 + parent: 2 + - uid: 20923 + components: + - type: Transform + pos: -3.5,50.5 + parent: 2 + - uid: 20924 + components: + - type: Transform + pos: -2.5,50.5 + parent: 2 + - uid: 20925 + components: + - type: Transform + pos: -1.5,50.5 + parent: 2 + - uid: 20926 + components: + - type: Transform + pos: -12.5,49.5 + parent: 2 + - uid: 20927 + components: + - type: Transform + pos: -11.5,49.5 + parent: 2 + - uid: 20928 + components: + - type: Transform + pos: -9.5,49.5 + parent: 2 + - uid: 20929 + components: + - type: Transform + pos: -9.5,48.5 + parent: 2 + - uid: 20930 + components: + - type: Transform + pos: -9.5,47.5 + parent: 2 + - uid: 20931 + components: + - type: Transform + pos: -9.5,46.5 + parent: 2 + - uid: 20932 + components: + - type: Transform + pos: -8.5,46.5 + parent: 2 + - uid: 20933 + components: + - type: Transform + pos: -9.5,51.5 + parent: 2 + - uid: 20934 + components: + - type: Transform + pos: -8.5,51.5 + parent: 2 + - uid: 20935 + components: + - type: Transform + pos: -5.5,50.5 + parent: 2 + - uid: 20936 + components: + - type: Transform + pos: -5.5,51.5 + parent: 2 + - uid: 20937 + components: + - type: Transform + pos: -6.5,51.5 + parent: 2 + - uid: 20938 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -12.5,52.5 + parent: 2 + - uid: 20939 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -11.5,52.5 + parent: 2 + - uid: 20940 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -9.5,52.5 + parent: 2 + - uid: 20941 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -9.5,53.5 + parent: 2 + - uid: 20942 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -10.5,53.5 + parent: 2 + - uid: 20943 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -11.5,53.5 + parent: 2 + - uid: 20944 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -9.5,54.5 + parent: 2 + - uid: 20945 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -9.5,56.5 + parent: 2 + - uid: 20946 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -9.5,57.5 + parent: 2 + - uid: 20947 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -8.5,57.5 + parent: 2 + - uid: 20948 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -7.5,57.5 + parent: 2 + - uid: 20949 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -1.5,51.5 + parent: 2 + - uid: 20950 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -1.5,52.5 + parent: 2 + - uid: 20951 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -1.5,53.5 + parent: 2 + - uid: 20952 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -1.5,54.5 + parent: 2 + - uid: 20953 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -1.5,55.5 + parent: 2 + - uid: 20954 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -1.5,56.5 + parent: 2 + - uid: 20955 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -1.5,57.5 + parent: 2 + - uid: 20956 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -5.5,57.5 + parent: 2 + - uid: 20957 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 10.5,45.5 + parent: 2 + - uid: 20958 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 10.5,46.5 + parent: 2 + - uid: 20959 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 10.5,47.5 + parent: 2 + - uid: 20960 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 10.5,48.5 + parent: 2 + - uid: 20961 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 10.5,50.5 + parent: 2 + - uid: 20962 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 10.5,51.5 + parent: 2 + - uid: 20963 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 9.5,51.5 + parent: 2 + - uid: 20964 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 6.5,51.5 + parent: 2 + - uid: 20965 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 5.5,50.5 + parent: 2 + - uid: 20966 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 5.5,46.5 + parent: 2 + - uid: 20967 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 5.5,49.5 + parent: 2 + - uid: 20968 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 11.5,51.5 + parent: 2 + - uid: 20969 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 11.5,52.5 + parent: 2 + - uid: 20970 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 12.5,52.5 + parent: 2 + - uid: 20971 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 13.5,52.5 + parent: 2 + - uid: 20972 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 13.5,51.5 + parent: 2 + - uid: 20973 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 14.5,51.5 + parent: 2 + - uid: 20974 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 14.5,50.5 + parent: 2 + - uid: 20975 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 14.5,49.5 + parent: 2 + - uid: 20976 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 14.5,48.5 + parent: 2 + - uid: 20977 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 13.5,48.5 + parent: 2 + - uid: 20978 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 12.5,48.5 + parent: 2 + - uid: 20979 + components: + - type: Transform + pos: 4.5,51.5 + parent: 2 + - uid: 20980 + components: + - type: Transform + pos: 3.5,51.5 + parent: 2 + - uid: 20981 + components: + - type: Transform + pos: 3.5,54.5 + parent: 2 + - uid: 20982 + components: + - type: Transform + pos: 3.5,55.5 + parent: 2 + - uid: 20983 + components: + - type: Transform + pos: 3.5,56.5 + parent: 2 + - uid: 20984 + components: + - type: Transform + pos: 3.5,57.5 + parent: 2 + - uid: 20985 + components: + - type: Transform + pos: 4.5,57.5 + parent: 2 + - uid: 20986 + components: + - type: Transform + pos: 7.5,57.5 + parent: 2 + - uid: 20987 + components: + - type: Transform + pos: 8.5,57.5 + parent: 2 + - uid: 20988 + components: + - type: Transform + pos: 9.5,57.5 + parent: 2 + - uid: 20989 + components: + - type: Transform + pos: 10.5,57.5 + parent: 2 + - uid: 20990 + components: + - type: Transform + pos: 10.5,56.5 + parent: 2 + - uid: 20991 + components: + - type: Transform + pos: 11.5,56.5 + parent: 2 + - uid: 20992 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 8.5,58.5 + parent: 2 + - uid: 20993 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -6.5,58.5 + parent: 2 + - uid: 20994 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 8.5,59.5 + parent: 2 + - uid: 20995 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -6.5,59.5 + parent: 2 + - uid: 20996 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -55.5,11.5 + parent: 2 + - uid: 20997 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -54.5,11.5 + parent: 2 + - uid: 20998 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -53.5,11.5 + parent: 2 + - uid: 20999 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -52.5,11.5 + parent: 2 + - uid: 21000 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -52.5,13.5 + parent: 2 + - uid: 21001 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -51.5,13.5 + parent: 2 + - uid: 21002 + components: + - type: Transform + pos: -45.5,31.5 + parent: 2 + - uid: 21003 + components: + - type: Transform + pos: -45.5,33.5 + parent: 2 + - uid: 21004 + components: + - type: Transform + pos: -45.5,34.5 + parent: 2 + - uid: 21005 + components: + - type: Transform + pos: -45.5,36.5 + parent: 2 + - uid: 21006 + components: + - type: Transform + pos: -47.5,32.5 + parent: 2 + - uid: 21007 + components: + - type: Transform + pos: -47.5,31.5 + parent: 2 + - uid: 21008 + components: + - type: Transform + pos: -47.5,30.5 + parent: 2 + - uid: 21009 + components: + - type: Transform + pos: -47.5,35.5 + parent: 2 + - uid: 21010 + components: + - type: Transform + pos: -47.5,36.5 + parent: 2 + - uid: 21011 + components: + - type: Transform + pos: -47.5,37.5 + parent: 2 + - uid: 21012 + components: + - type: Transform + pos: -47.5,38.5 + parent: 2 + - uid: 21013 + components: + - type: Transform + pos: -49.5,35.5 + parent: 2 + - uid: 21014 + components: + - type: Transform + pos: -49.5,34.5 + parent: 2 + - uid: 21015 + components: + - type: Transform + pos: -49.5,33.5 + parent: 2 + - uid: 21016 + components: + - type: Transform + pos: -49.5,32.5 + parent: 2 + - uid: 21017 + components: + - type: Transform + pos: -49.5,31.5 + parent: 2 + - uid: 21018 + components: + - type: Transform + pos: -50.5,37.5 + parent: 2 + - uid: 21019 + components: + - type: Transform + pos: -50.5,38.5 + parent: 2 + - uid: 21020 + components: + - type: Transform + pos: -51.5,34.5 + parent: 2 + - uid: 21021 + components: + - type: Transform + pos: -51.5,33.5 + parent: 2 + - uid: 21022 + components: + - type: Transform + pos: -51.5,32.5 + parent: 2 + - uid: 21023 + components: + - type: Transform + pos: -53.5,34.5 + parent: 2 + - uid: 21024 + components: + - type: Transform + pos: -54.5,34.5 + parent: 2 + - uid: 21025 + components: + - type: Transform + pos: -55.5,34.5 + parent: 2 + - uid: 21026 + components: + - type: Transform + pos: -58.5,33.5 + parent: 2 + - uid: 21027 + components: + - type: Transform + pos: -59.5,33.5 + parent: 2 + - uid: 21028 + components: + - type: Transform + pos: -61.5,31.5 + parent: 2 + - uid: 21029 + components: + - type: Transform + pos: -64.5,30.5 + parent: 2 + - uid: 21030 + components: + - type: Transform + pos: -65.5,30.5 + parent: 2 + - uid: 21031 + components: + - type: Transform + pos: -66.5,30.5 + parent: 2 + - uid: 21032 + components: + - type: Transform + pos: -71.5,29.5 + parent: 2 + - uid: 21033 + components: + - type: Transform + pos: -70.5,29.5 + parent: 2 + - uid: 21034 + components: + - type: Transform + pos: -69.5,29.5 + parent: 2 + - uid: 21035 + components: + - type: Transform + pos: -68.5,29.5 + parent: 2 + - uid: 21036 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -50.5,39.5 + parent: 2 + - uid: 21037 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -48.5,40.5 + parent: 2 + - uid: 21038 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -46.5,40.5 + parent: 2 + - uid: 21039 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -44.5,40.5 + parent: 2 + - uid: 21040 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -49.5,42.5 + parent: 2 + - uid: 21041 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -48.5,42.5 + parent: 2 + - uid: 21042 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -47.5,42.5 + parent: 2 + - uid: 21043 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -47.5,44.5 + parent: 2 + - uid: 21044 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -46.5,44.5 + parent: 2 + - uid: 21045 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -45.5,44.5 + parent: 2 + - uid: 21046 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -43.5,40.5 + parent: 2 + - uid: 21047 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -43.5,42.5 + parent: 2 + - uid: 21048 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -42.5,42.5 + parent: 2 + - uid: 21049 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -41.5,42.5 + parent: 2 + - uid: 21050 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -40.5,42.5 + parent: 2 + - uid: 21051 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -43.5,44.5 + parent: 2 + - uid: 21052 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -42.5,44.5 + parent: 2 + - uid: 21053 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -40.5,44.5 + parent: 2 + - uid: 21054 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -39.5,44.5 + parent: 2 + - uid: 21055 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -38.5,44.5 + parent: 2 + - uid: 21056 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -37.5,44.5 + parent: 2 + - uid: 21057 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -37.5,42.5 + parent: 2 + - uid: 21058 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -36.5,42.5 + parent: 2 + - uid: 21059 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -34.5,42.5 + parent: 2 + - uid: 21060 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -33.5,42.5 + parent: 2 + - uid: 21061 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -35.5,44.5 + parent: 2 + - uid: 21062 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -34.5,44.5 + parent: 2 + - uid: 21063 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -33.5,44.5 + parent: 2 + - uid: 21064 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -19.5,47.5 + parent: 2 + - uid: 21065 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -18.5,47.5 + parent: 2 + - uid: 21066 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -16.5,45.5 + parent: 2 + - uid: 21067 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -15.5,45.5 + parent: 2 + - uid: 21068 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -16.5,47.5 + parent: 2 + - uid: 21069 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -16.5,48.5 + parent: 2 + - uid: 21070 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -16.5,49.5 + parent: 2 + - uid: 21071 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -16.5,50.5 + parent: 2 + - uid: 21072 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -16.5,52.5 + parent: 2 + - uid: 21073 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -14.5,52.5 + parent: 2 + - uid: 21074 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -14.5,51.5 + parent: 2 + - uid: 21075 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -15.5,55.5 + parent: 2 + - uid: 21076 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -13.5,54.5 + parent: 2 + - uid: 21077 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -13.5,55.5 + parent: 2 + - uid: 21078 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -13.5,56.5 + parent: 2 + - uid: 21079 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -7.5,58.5 + parent: 2 + - uid: 21080 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -13.5,58.5 + parent: 2 + - uid: 21081 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -13.5,59.5 + parent: 2 + - uid: 21082 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -11.5,58.5 + parent: 2 + - uid: 21083 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -11.5,57.5 + parent: 2 + - uid: 21084 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -11.5,62.5 + parent: 2 + - uid: 21085 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -11.5,61.5 + parent: 2 + - uid: 21086 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -11.5,60.5 + parent: 2 + - uid: 21087 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -9.5,61.5 + parent: 2 + - uid: 21088 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -9.5,60.5 + parent: 2 + - uid: 21089 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -9.5,59.5 + parent: 2 + - uid: 21090 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -7.5,63.5 + parent: 2 + - uid: 21091 + components: + - type: Transform + pos: 9.5,58.5 + parent: 2 + - uid: 21092 + components: + - type: Transform + pos: 13.5,61.5 + parent: 2 + - uid: 21093 + components: + - type: Transform + pos: 13.5,60.5 + parent: 2 + - uid: 21094 + components: + - type: Transform + pos: 13.5,57.5 + parent: 2 + - uid: 21095 + components: + - type: Transform + pos: 13.5,58.5 + parent: 2 + - uid: 21096 + components: + - type: Transform + pos: 13.5,62.5 + parent: 2 + - uid: 21097 + components: + - type: Transform + pos: 11.5,60.5 + parent: 2 + - uid: 21098 + components: + - type: Transform + pos: 11.5,61.5 + parent: 2 + - uid: 21099 + components: + - type: Transform + pos: 9.5,63.5 + parent: 2 + - uid: 21100 + components: + - type: Transform + pos: 9.5,64.5 + parent: 2 + - uid: 21101 + components: + - type: Transform + pos: 9.5,65.5 + parent: 2 + - uid: 21102 + components: + - type: Transform + pos: -7.5,64.5 + parent: 2 + - uid: 21103 + components: + - type: Transform + pos: -7.5,65.5 + parent: 2 + - uid: 21104 + components: + - type: Transform + pos: -1.5,68.5 + parent: 2 + - uid: 21105 + components: + - type: Transform + pos: -0.5,68.5 + parent: 2 + - uid: 21106 + components: + - type: Transform + pos: 0.5,68.5 + parent: 2 + - uid: 21107 + components: + - type: Transform + pos: 1.5,68.5 + parent: 2 + - uid: 21108 + components: + - type: Transform + pos: 2.5,68.5 + parent: 2 + - uid: 21109 + components: + - type: Transform + pos: 3.5,68.5 + parent: 2 + - uid: 21110 + components: + - type: Transform + pos: 4.5,71.5 + parent: 2 + - uid: 21111 + components: + - type: Transform + pos: -5.5,68.5 + parent: 2 + - uid: 21112 + components: + - type: Transform + pos: -5.5,69.5 + parent: 2 + - uid: 21113 + components: + - type: Transform + pos: -6.5,69.5 + parent: 2 + - uid: 21114 + components: + - type: Transform + pos: -6.5,70.5 + parent: 2 + - uid: 21115 + components: + - type: Transform + pos: -7.5,70.5 + parent: 2 + - uid: 21116 + components: + - type: Transform + pos: -7.5,71.5 + parent: 2 + - uid: 21117 + components: + - type: Transform + pos: -7.5,72.5 + parent: 2 + - uid: 21118 + components: + - type: Transform + pos: 10.5,71.5 + parent: 2 + - uid: 21119 + components: + - type: Transform + pos: 10.5,70.5 + parent: 2 + - uid: 21120 + components: + - type: Transform + pos: 9.5,70.5 + parent: 2 + - uid: 21121 + components: + - type: Transform + pos: 9.5,69.5 + parent: 2 + - uid: 21122 + components: + - type: Transform + pos: 8.5,69.5 + parent: 2 + - uid: 21123 + components: + - type: Transform + pos: 8.5,68.5 + parent: 2 + - uid: 21124 + components: + - type: Transform + pos: 7.5,68.5 + parent: 2 + - uid: 21125 + components: + - type: Transform + pos: -7.5,73.5 + parent: 2 + - uid: 21126 + components: + - type: Transform + pos: -6.5,73.5 + parent: 2 + - uid: 21127 + components: + - type: Transform + pos: -5.5,73.5 + parent: 2 + - uid: 21128 + components: + - type: Transform + pos: -3.5,73.5 + parent: 2 + - uid: 21129 + components: + - type: Transform + pos: -2.5,73.5 + parent: 2 + - uid: 21130 + components: + - type: Transform + pos: -1.5,73.5 + parent: 2 + - uid: 21131 + components: + - type: Transform + pos: -1.5,69.5 + parent: 2 + - uid: 21132 + components: + - type: Transform + pos: -1.5,72.5 + parent: 2 + - uid: 21133 + components: + - type: Transform + pos: -1.5,71.5 + parent: 2 + - uid: 21134 + components: + - type: Transform + pos: -0.5,73.5 + parent: 2 + - uid: 21135 + components: + - type: Transform + pos: 3.5,73.5 + parent: 2 + - uid: 21136 + components: + - type: Transform + pos: 4.5,68.5 + parent: 2 + - uid: 21137 + components: + - type: Transform + pos: 4.5,69.5 + parent: 2 + - uid: 21138 + components: + - type: Transform + pos: 4.5,72.5 + parent: 2 + - uid: 21139 + components: + - type: Transform + pos: 4.5,73.5 + parent: 2 + - uid: 21140 + components: + - type: Transform + pos: 5.5,73.5 + parent: 2 + - uid: 21141 + components: + - type: Transform + pos: 9.5,73.5 + parent: 2 + - uid: 21142 + components: + - type: Transform + pos: 8.5,73.5 + parent: 2 + - uid: 21143 + components: + - type: Transform + pos: 10.5,72.5 + parent: 2 + - uid: 21144 + components: + - type: Transform + pos: 10.5,73.5 + parent: 2 + - uid: 21145 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 6.5,73.5 + parent: 2 + - uid: 21146 + components: + - type: Transform + pos: 5.5,74.5 + parent: 2 + - uid: 21147 + components: + - type: Transform + pos: 5.5,75.5 + parent: 2 + - uid: 21148 + components: + - type: Transform + pos: 5.5,76.5 + parent: 2 + - uid: 21149 + components: + - type: Transform + pos: 5.5,77.5 + parent: 2 + - uid: 21150 + components: + - type: Transform + pos: 5.5,78.5 + parent: 2 + - uid: 21151 + components: + - type: Transform + pos: 5.5,79.5 + parent: 2 + - uid: 21152 + components: + - type: Transform + pos: 5.5,80.5 + parent: 2 + - uid: 21153 + components: + - type: Transform + pos: 5.5,81.5 + parent: 2 + - uid: 21154 + components: + - type: Transform + pos: 6.5,81.5 + parent: 2 + - uid: 21155 + components: + - type: Transform + pos: 8.5,81.5 + parent: 2 + - uid: 21156 + components: + - type: Transform + pos: 9.5,81.5 + parent: 2 + - uid: 21157 + components: + - type: Transform + pos: 10.5,81.5 + parent: 2 + - uid: 21158 + components: + - type: Transform + pos: 10.5,80.5 + parent: 2 + - uid: 21159 + components: + - type: Transform + pos: 10.5,79.5 + parent: 2 + - uid: 21160 + components: + - type: Transform + pos: 10.5,78.5 + parent: 2 + - uid: 21161 + components: + - type: Transform + pos: 10.5,77.5 + parent: 2 + - uid: 21162 + components: + - type: Transform + pos: 10.5,76.5 + parent: 2 + - uid: 21163 + components: + - type: Transform + pos: 10.5,75.5 + parent: 2 + - uid: 21164 + components: + - type: Transform + pos: 10.5,74.5 + parent: 2 + - uid: 21165 + components: + - type: Transform + pos: 10.5,82.5 + parent: 2 + - uid: 21166 + components: + - type: Transform + pos: 10.5,83.5 + parent: 2 + - uid: 21167 + components: + - type: Transform + pos: 10.5,84.5 + parent: 2 + - uid: 21168 + components: + - type: Transform + pos: 9.5,84.5 + parent: 2 + - uid: 21169 + components: + - type: Transform + pos: 9.5,85.5 + parent: 2 + - uid: 21170 + components: + - type: Transform + pos: 8.5,85.5 + parent: 2 + - uid: 21171 + components: + - type: Transform + pos: 8.5,86.5 + parent: 2 + - uid: 21172 + components: + - type: Transform + pos: 7.5,86.5 + parent: 2 + - uid: 21173 + components: + - type: Transform + pos: 6.5,86.5 + parent: 2 + - uid: 21174 + components: + - type: Transform + pos: 5.5,86.5 + parent: 2 + - uid: 21175 + components: + - type: Transform + pos: 4.5,86.5 + parent: 2 + - uid: 21176 + components: + - type: Transform + pos: 4.5,85.5 + parent: 2 + - uid: 21177 + components: + - type: Transform + pos: 4.5,83.5 + parent: 2 + - uid: 21178 + components: + - type: Transform + pos: 4.5,82.5 + parent: 2 + - uid: 21179 + components: + - type: Transform + pos: 4.5,81.5 + parent: 2 + - uid: 21180 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 3.5,81.5 + parent: 2 + - uid: 21181 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -0.5,81.5 + parent: 2 + - uid: 21182 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -1.5,81.5 + parent: 2 + - uid: 21183 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -1.5,82.5 + parent: 2 + - uid: 21184 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -1.5,83.5 + parent: 2 + - uid: 21185 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -1.5,85.5 + parent: 2 + - uid: 21186 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -1.5,86.5 + parent: 2 + - uid: 21187 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -2.5,81.5 + parent: 2 + - uid: 21188 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -3.5,81.5 + parent: 2 + - uid: 21189 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -5.5,81.5 + parent: 2 + - uid: 21190 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -6.5,81.5 + parent: 2 + - uid: 21191 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -7.5,81.5 + parent: 2 + - uid: 21192 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -7.5,82.5 + parent: 2 + - uid: 21193 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -7.5,83.5 + parent: 2 + - uid: 21194 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -7.5,84.5 + parent: 2 + - uid: 21195 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -6.5,84.5 + parent: 2 + - uid: 21196 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -6.5,85.5 + parent: 2 + - uid: 21197 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -5.5,85.5 + parent: 2 + - uid: 21198 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -5.5,86.5 + parent: 2 + - uid: 21199 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -4.5,86.5 + parent: 2 + - uid: 21200 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -3.5,86.5 + parent: 2 + - uid: 21201 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -2.5,86.5 + parent: 2 + - uid: 21202 + components: + - type: Transform + pos: -2.5,80.5 + parent: 2 + - uid: 21203 + components: + - type: Transform + pos: -2.5,79.5 + parent: 2 + - uid: 21204 + components: + - type: Transform + pos: -2.5,78.5 + parent: 2 + - uid: 21205 + components: + - type: Transform + pos: -2.5,77.5 + parent: 2 + - uid: 21206 + components: + - type: Transform + pos: -2.5,76.5 + parent: 2 + - uid: 21207 + components: + - type: Transform + pos: -2.5,75.5 + parent: 2 + - uid: 21208 + components: + - type: Transform + pos: -2.5,74.5 + parent: 2 + - uid: 21209 + components: + - type: Transform + pos: -7.5,74.5 + parent: 2 + - uid: 21210 + components: + - type: Transform + pos: -7.5,75.5 + parent: 2 + - uid: 21211 + components: + - type: Transform + pos: -7.5,76.5 + parent: 2 + - uid: 21212 + components: + - type: Transform + pos: -7.5,80.5 + parent: 2 + - uid: 21213 + components: + - type: Transform + pos: -7.5,79.5 + parent: 2 + - uid: 21214 + components: + - type: Transform + pos: -7.5,78.5 + parent: 2 + - uid: 21215 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -8.5,78.5 + parent: 2 + - uid: 21216 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -9.5,78.5 + parent: 2 + - uid: 21217 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -9.5,76.5 + parent: 2 + - uid: 21218 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -8.5,76.5 + parent: 2 + - uid: 21219 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 15.5,72.5 + parent: 2 + - uid: 21220 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 13.5,64.5 + parent: 2 + - uid: 21221 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 13.5,65.5 + parent: 2 + - uid: 21222 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 11.5,65.5 + parent: 2 + - uid: 21223 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 11.5,66.5 + parent: 2 + - uid: 21224 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 11.5,67.5 + parent: 2 + - uid: 21225 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 14.5,67.5 + parent: 2 + - uid: 21226 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 14.5,68.5 + parent: 2 + - uid: 21227 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 14.5,69.5 + parent: 2 + - uid: 21228 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 14.5,70.5 + parent: 2 + - uid: 21229 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 12.5,69.5 + parent: 2 + - uid: 21230 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 12.5,70.5 + parent: 2 + - uid: 21231 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 12.5,71.5 + parent: 2 + - uid: 21232 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 12.5,72.5 + parent: 2 + - uid: 21233 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 15.5,73.5 + parent: 2 + - uid: 21234 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 15.5,74.5 + parent: 2 + - uid: 21235 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 15.5,75.5 + parent: 2 + - uid: 21236 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 4.5,90.5 + parent: 2 + - uid: 21237 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 17.5,74.5 + parent: 2 + - uid: 21238 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 17.5,75.5 + parent: 2 + - uid: 21239 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 17.5,76.5 + parent: 2 + - uid: 21240 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 17.5,77.5 + parent: 2 + - uid: 21241 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 17.5,78.5 + parent: 2 + - uid: 21242 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 17.5,79.5 + parent: 2 + - uid: 21243 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 13.5,74.5 + parent: 2 + - uid: 21244 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 13.5,75.5 + parent: 2 + - uid: 21245 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 13.5,76.5 + parent: 2 + - uid: 21246 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 13.5,77.5 + parent: 2 + - uid: 21247 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 13.5,78.5 + parent: 2 + - uid: 21248 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 13.5,79.5 + parent: 2 + - uid: 21249 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 15.5,78.5 + parent: 2 + - uid: 21250 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 15.5,79.5 + parent: 2 + - uid: 21251 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 15.5,80.5 + parent: 2 + - uid: 21252 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 15.5,81.5 + parent: 2 + - uid: 21253 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 12.5,81.5 + parent: 2 + - uid: 21254 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 12.5,82.5 + parent: 2 + - uid: 21255 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 12.5,83.5 + parent: 2 + - uid: 21256 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 12.5,84.5 + parent: 2 + - uid: 21257 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 12.5,85.5 + parent: 2 + - uid: 21258 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 14.5,83.5 + parent: 2 + - uid: 21259 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 14.5,84.5 + parent: 2 + - uid: 21260 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 14.5,85.5 + parent: 2 + - uid: 21261 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 14.5,86.5 + parent: 2 + - uid: 21262 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 12.5,87.5 + parent: 2 + - uid: 21263 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 11.5,87.5 + parent: 2 + - uid: 21264 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 10.5,87.5 + parent: 2 + - uid: 21265 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 11.5,89.5 + parent: 2 + - uid: 21266 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 12.5,89.5 + parent: 2 + - uid: 21267 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 13.5,89.5 + parent: 2 + - uid: 21268 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 8.5,88.5 + parent: 2 + - uid: 21269 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 7.5,88.5 + parent: 2 + - uid: 21270 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 6.5,88.5 + parent: 2 + - uid: 21271 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 5.5,88.5 + parent: 2 + - uid: 21272 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 7.5,90.5 + parent: 2 + - uid: 21273 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 8.5,90.5 + parent: 2 + - uid: 21274 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 9.5,90.5 + parent: 2 + - uid: 21275 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 7.5,92.5 + parent: 2 + - uid: 21276 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 6.5,92.5 + parent: 2 + - uid: 21277 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 5.5,92.5 + parent: 2 + - uid: 21278 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 4.5,92.5 + parent: 2 + - uid: 21279 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 3.5,90.5 + parent: 2 + - uid: 21280 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 2.5,90.5 + parent: 2 + - uid: 21281 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 1.5,90.5 + parent: 2 + - uid: 21282 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 0.5,90.5 + parent: 2 + - uid: 21283 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -0.5,90.5 + parent: 2 + - uid: 21284 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -1.5,90.5 + parent: 2 + - uid: 21285 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -9.5,87.5 + parent: 2 + - uid: 21286 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -1.5,92.5 + parent: 2 + - uid: 21287 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -2.5,92.5 + parent: 2 + - uid: 21288 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -3.5,92.5 + parent: 2 + - uid: 21289 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -4.5,92.5 + parent: 2 + - uid: 21290 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -2.5,88.5 + parent: 2 + - uid: 21291 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -3.5,88.5 + parent: 2 + - uid: 21292 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -4.5,88.5 + parent: 2 + - uid: 21293 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -5.5,88.5 + parent: 2 + - uid: 21294 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -4.5,90.5 + parent: 2 + - uid: 21295 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -5.5,90.5 + parent: 2 + - uid: 21296 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -6.5,90.5 + parent: 2 + - uid: 21297 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -8.5,87.5 + parent: 2 + - uid: 21298 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -7.5,87.5 + parent: 2 + - uid: 21299 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -8.5,89.5 + parent: 2 + - uid: 21300 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -9.5,89.5 + parent: 2 + - uid: 21301 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -10.5,89.5 + parent: 2 + - uid: 21302 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -11.5,74.5 + parent: 2 + - uid: 21303 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -9.5,85.5 + parent: 2 + - uid: 21304 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -9.5,84.5 + parent: 2 + - uid: 21305 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -9.5,83.5 + parent: 2 + - uid: 21306 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -9.5,82.5 + parent: 2 + - uid: 21307 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -9.5,81.5 + parent: 2 + - uid: 21308 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -9.5,80.5 + parent: 2 + - uid: 21309 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -11.5,86.5 + parent: 2 + - uid: 21310 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -11.5,85.5 + parent: 2 + - uid: 21311 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -11.5,84.5 + parent: 2 + - uid: 21312 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -11.5,83.5 + parent: 2 + - uid: 21313 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -13.5,84.5 + parent: 2 + - uid: 21314 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -13.5,83.5 + parent: 2 + - uid: 21315 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -13.5,82.5 + parent: 2 + - uid: 21316 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -13.5,81.5 + parent: 2 + - uid: 21317 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -11.5,81.5 + parent: 2 + - uid: 21318 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -11.5,80.5 + parent: 2 + - uid: 21319 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -12.5,78.5 + parent: 2 + - uid: 21320 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -12.5,77.5 + parent: 2 + - uid: 21321 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -12.5,76.5 + parent: 2 + - uid: 21322 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -14.5,79.5 + parent: 2 + - uid: 21323 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -14.5,78.5 + parent: 2 + - uid: 21324 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -14.5,77.5 + parent: 2 + - uid: 21325 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -14.5,76.5 + parent: 2 + - uid: 21326 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -14.5,75.5 + parent: 2 + - uid: 21327 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -11.5,73.5 + parent: 2 + - uid: 21328 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -9.5,73.5 + parent: 2 + - uid: 21329 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -9.5,72.5 + parent: 2 + - uid: 21330 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -9.5,71.5 + parent: 2 + - uid: 21331 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -9.5,70.5 + parent: 2 + - uid: 21332 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -13.5,73.5 + parent: 2 + - uid: 21333 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -13.5,72.5 + parent: 2 + - uid: 21334 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -13.5,71.5 + parent: 2 + - uid: 21335 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -13.5,70.5 + parent: 2 + - uid: 21336 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -11.5,70.5 + parent: 2 + - uid: 21337 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -11.5,69.5 + parent: 2 + - uid: 21338 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -11.5,68.5 + parent: 2 + - uid: 21339 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -8.5,68.5 + parent: 2 + - uid: 21340 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -8.5,67.5 + parent: 2 + - uid: 21341 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -10.5,66.5 + parent: 2 + - uid: 21342 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -10.5,65.5 + parent: 2 + - uid: 21343 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -0.5,74.5 + parent: 2 + - uid: 21344 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 3.5,74.5 + parent: 2 + - uid: 21345 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 3.5,80.5 + parent: 2 + - uid: 21346 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -0.5,80.5 + parent: 2 + - uid: 21347 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 21.5,-17.5 + parent: 2 + - uid: 21348 + components: + - type: Transform + pos: 21.5,-18.5 + parent: 2 + - uid: 21349 + components: + - type: Transform + pos: 21.5,-19.5 + parent: 2 + - uid: 21350 + components: + - type: Transform + pos: 21.5,-20.5 + parent: 2 + - uid: 21351 + components: + - type: Transform + pos: 21.5,-21.5 + parent: 2 + - uid: 21352 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 27.5,-17.5 + parent: 2 + - uid: 21353 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 27.5,-18.5 + parent: 2 + - uid: 21354 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 27.5,-19.5 + parent: 2 + - uid: 21355 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 27.5,-20.5 + parent: 2 + - uid: 21356 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 27.5,-21.5 + parent: 2 + - uid: 21357 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 27.5,-22.5 + parent: 2 + - uid: 21358 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 24.5,-22.5 + parent: 2 + - uid: 21359 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 24.5,-21.5 + parent: 2 + - uid: 21360 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 26.5,-22.5 + parent: 2 + - uid: 21361 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 47.5,-26.5 + parent: 2 + - uid: 21362 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 46.5,-26.5 + parent: 2 + - uid: 21363 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 45.5,-26.5 + parent: 2 + - uid: 21364 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 44.5,-26.5 + parent: 2 + - uid: 21365 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 43.5,-26.5 + parent: 2 + - uid: 21366 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 42.5,-26.5 + parent: 2 + - uid: 21367 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 48.5,-26.5 + parent: 2 + - uid: 21368 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 48.5,-27.5 + parent: 2 + - uid: 21369 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 48.5,-28.5 + parent: 2 + - uid: 21370 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 48.5,-29.5 + parent: 2 + - uid: 21371 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 48.5,-33.5 + parent: 2 + - uid: 21372 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 48.5,-34.5 + parent: 2 + - uid: 21373 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 48.5,-35.5 + parent: 2 + - uid: 21374 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 47.5,-35.5 + parent: 2 + - uid: 21375 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 46.5,-35.5 + parent: 2 + - uid: 21376 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 45.5,-35.5 + parent: 2 + - uid: 21377 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 44.5,-35.5 + parent: 2 + - uid: 21378 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 43.5,-35.5 + parent: 2 + - uid: 21379 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 42.5,-35.5 + parent: 2 + - uid: 21380 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 41.5,-35.5 + parent: 2 + - uid: 21381 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 40.5,-35.5 + parent: 2 + - uid: 21382 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 39.5,-35.5 + parent: 2 + - uid: 21383 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 38.5,-35.5 + parent: 2 + - uid: 21384 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 37.5,-35.5 + parent: 2 + - uid: 21385 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 37.5,-34.5 + parent: 2 + - uid: 21386 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 37.5,-33.5 + parent: 2 + - uid: 21387 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 37.5,-32.5 + parent: 2 + - uid: 21388 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 37.5,-30.5 + parent: 2 + - uid: 21389 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 37.5,-29.5 + parent: 2 + - uid: 21390 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 37.5,-28.5 + parent: 2 + - uid: 21391 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 37.5,-27.5 + parent: 2 + - uid: 21392 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 37.5,-26.5 + parent: 2 + - uid: 21393 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 43.5,-34.5 + parent: 2 + - uid: 21394 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 43.5,-33.5 + parent: 2 + - uid: 21395 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 43.5,-32.5 + parent: 2 + - uid: 21396 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 43.5,-30.5 + parent: 2 + - uid: 21397 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 43.5,-29.5 + parent: 2 + - uid: 21398 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 43.5,-28.5 + parent: 2 + - uid: 21399 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 43.5,-27.5 + parent: 2 + - uid: 21400 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 34.5,-26.5 + parent: 2 + - uid: 21401 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 36.5,-26.5 + parent: 2 + - uid: 21402 + components: + - type: Transform + pos: 3.5,-38.5 + parent: 2 + - uid: 21403 + components: + - type: Transform + pos: 4.5,-38.5 + parent: 2 + - uid: 21404 + components: + - type: Transform + pos: 5.5,-38.5 + parent: 2 + - uid: 21405 + components: + - type: Transform + pos: 6.5,-38.5 + parent: 2 + - uid: 21406 + components: + - type: Transform + pos: 7.5,-38.5 + parent: 2 + - uid: 21407 + components: + - type: Transform + pos: 8.5,-38.5 + parent: 2 + - uid: 21408 + components: + - type: Transform + pos: 9.5,-38.5 + parent: 2 + - uid: 21409 + components: + - type: Transform + pos: 9.5,-39.5 + parent: 2 + - uid: 21410 + components: + - type: Transform + pos: 10.5,-39.5 + parent: 2 + - uid: 21411 + components: + - type: Transform + pos: 11.5,-39.5 + parent: 2 + - uid: 21412 + components: + - type: Transform + pos: 12.5,-39.5 + parent: 2 + - uid: 21413 + components: + - type: Transform + pos: 14.5,-39.5 + parent: 2 + - uid: 21414 + components: + - type: Transform + pos: 15.5,-39.5 + parent: 2 + - uid: 21415 + components: + - type: Transform + pos: 15.5,-38.5 + parent: 2 + - uid: 21416 + components: + - type: Transform + pos: 15.5,-37.5 + parent: 2 + - uid: 21417 + components: + - type: Transform + pos: 17.5,-38.5 + parent: 2 + - uid: 21418 + components: + - type: Transform + pos: 17.5,-37.5 + parent: 2 + - uid: 21419 + components: + - type: Transform + pos: 18.5,-38.5 + parent: 2 + - uid: 21420 + components: + - type: Transform + pos: 19.5,-38.5 + parent: 2 + - uid: 21421 + components: + - type: Transform + pos: 20.5,-38.5 + parent: 2 + - uid: 21422 + components: + - type: Transform + pos: 21.5,-38.5 + parent: 2 + - uid: 21423 + components: + - type: Transform + pos: 22.5,-38.5 + parent: 2 + - uid: 21424 + components: + - type: Transform + pos: 23.5,-38.5 + parent: 2 + - uid: 21425 + components: + - type: Transform + pos: 24.5,-38.5 + parent: 2 + - uid: 21426 + components: + - type: Transform + pos: 25.5,-38.5 + parent: 2 + - uid: 21427 + components: + - type: Transform + pos: 26.5,-38.5 + parent: 2 + - uid: 21428 + components: + - type: Transform + pos: 27.5,-38.5 + parent: 2 + - uid: 21429 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 28.5,-38.5 + parent: 2 + - uid: 21430 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 29.5,-38.5 + parent: 2 + - uid: 21431 + components: + - type: Transform + pos: 31.5,-39.5 + parent: 2 + - uid: 21432 + components: + - type: Transform + pos: 31.5,-40.5 + parent: 2 + - uid: 21433 + components: + - type: Transform + pos: 32.5,-40.5 + parent: 2 + - uid: 21434 + components: + - type: Transform + pos: 33.5,-40.5 + parent: 2 + - uid: 21435 + components: + - type: Transform + pos: 34.5,-40.5 + parent: 2 + - uid: 21436 + components: + - type: Transform + pos: 35.5,-40.5 + parent: 2 + - uid: 21437 + components: + - type: Transform + pos: 36.5,-40.5 + parent: 2 + - uid: 21438 + components: + - type: Transform + pos: 37.5,-40.5 + parent: 2 + - uid: 21439 + components: + - type: Transform + pos: 37.5,-41.5 + parent: 2 + - uid: 21440 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 27.5,-56.5 + parent: 2 + - uid: 21441 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 3.5,-43.5 + parent: 2 + - uid: 21442 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 8.5,-43.5 + parent: 2 + - uid: 21443 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 9.5,-43.5 + parent: 2 + - uid: 21444 + components: + - type: Transform + pos: -2.5,-49.5 + parent: 2 + - uid: 21445 + components: + - type: Transform + pos: -1.5,-49.5 + parent: 2 + - uid: 21446 + components: + - type: Transform + pos: -0.5,-49.5 + parent: 2 + - uid: 21447 + components: + - type: Transform + pos: 0.5,-49.5 + parent: 2 + - uid: 21448 + components: + - type: Transform + pos: 1.5,-49.5 + parent: 2 + - uid: 21449 + components: + - type: Transform + pos: 1.5,-48.5 + parent: 2 + - uid: 21450 + components: + - type: Transform + pos: 1.5,-47.5 + parent: 2 + - uid: 21451 + components: + - type: Transform + pos: 1.5,-50.5 + parent: 2 + - uid: 21452 + components: + - type: Transform + pos: 1.5,-51.5 + parent: 2 + - uid: 21453 + components: + - type: Transform + pos: 2.5,-51.5 + parent: 2 + - uid: 21454 + components: + - type: Transform + pos: 3.5,-51.5 + parent: 2 + - uid: 21455 + components: + - type: Transform + pos: 4.5,-51.5 + parent: 2 + - uid: 21456 + components: + - type: Transform + pos: 5.5,-51.5 + parent: 2 + - uid: 21457 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 9.5,-49.5 + parent: 2 + - uid: 21458 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 9.5,-50.5 + parent: 2 + - uid: 21459 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 9.5,-53.5 + parent: 2 + - uid: 21460 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 9.5,-54.5 + parent: 2 + - uid: 21461 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 9.5,-55.5 + parent: 2 + - uid: 21462 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 9.5,-56.5 + parent: 2 + - uid: 21463 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 10.5,-56.5 + parent: 2 + - uid: 21464 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 11.5,-56.5 + parent: 2 + - uid: 21465 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 12.5,-56.5 + parent: 2 + - uid: 21466 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 13.5,-56.5 + parent: 2 + - uid: 21467 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 14.5,-56.5 + parent: 2 + - uid: 21468 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 15.5,-56.5 + parent: 2 + - uid: 21469 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 15.5,-55.5 + parent: 2 + - uid: 21470 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 15.5,-54.5 + parent: 2 + - uid: 21471 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 15.5,-53.5 + parent: 2 + - uid: 21472 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 15.5,-52.5 + parent: 2 + - uid: 21473 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 15.5,-51.5 + parent: 2 + - uid: 21474 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 15.5,-50.5 + parent: 2 + - uid: 21475 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 15.5,-49.5 + parent: 2 + - uid: 21476 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 14.5,-49.5 + parent: 2 + - uid: 21477 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 10.5,-49.5 + parent: 2 + - uid: 21478 + components: + - type: Transform + pos: 33.5,-60.5 + parent: 2 + - uid: 21479 + components: + - type: Transform + pos: -43.5,21.5 + parent: 2 + - uid: 21480 + components: + - type: Transform + pos: -3.5,-54.5 + parent: 2 + - uid: 21481 + components: + - type: Transform + pos: -2.5,-54.5 + parent: 2 + - uid: 21482 + components: + - type: Transform + pos: -1.5,-54.5 + parent: 2 + - uid: 21483 + components: + - type: Transform + pos: -0.5,-54.5 + parent: 2 + - uid: 21484 + components: + - type: Transform + pos: 0.5,-54.5 + parent: 2 + - uid: 21485 + components: + - type: Transform + pos: 1.5,-54.5 + parent: 2 + - uid: 21486 + components: + - type: Transform + pos: 1.5,-53.5 + parent: 2 + - uid: 21487 + components: + - type: Transform + pos: 1.5,-52.5 + parent: 2 + - uid: 21488 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 8.5,-61.5 + parent: 2 + - uid: 21489 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 6.5,-61.5 + parent: 2 + - uid: 21490 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 5.5,-61.5 + parent: 2 + - uid: 21491 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 9.5,26.5 + parent: 2 + - uid: 21492 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -8.5,-55.5 + parent: 2 + - uid: 21493 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -18.5,-64.5 + parent: 2 + - uid: 21494 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -19.5,-64.5 + parent: 2 + - uid: 21495 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -20.5,-64.5 + parent: 2 + - uid: 21496 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -12.5,-62.5 + parent: 2 + - uid: 21497 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -17.5,-64.5 + parent: 2 + - uid: 21498 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -16.5,-64.5 + parent: 2 + - uid: 21499 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -15.5,-62.5 + parent: 2 + - uid: 21500 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -16.5,-63.5 + parent: 2 + - uid: 21501 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -16.5,-62.5 + parent: 2 + - uid: 21502 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -11.5,-62.5 + parent: 2 + - uid: 21503 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -8.5,-62.5 + parent: 2 + - uid: 21504 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -9.5,-62.5 + parent: 2 + - uid: 21505 + components: + - type: Transform + pos: 15.5,-63.5 + parent: 2 + - uid: 21506 + components: + - type: Transform + pos: 15.5,-64.5 + parent: 2 + - uid: 21507 + components: + - type: Transform + pos: 15.5,-65.5 + parent: 2 + - uid: 21508 + components: + - type: Transform + pos: 15.5,-66.5 + parent: 2 + - uid: 21509 + components: + - type: Transform + pos: 15.5,-67.5 + parent: 2 + - uid: 21510 + components: + - type: Transform + pos: 15.5,-68.5 + parent: 2 + - uid: 21511 + components: + - type: Transform + pos: 15.5,-69.5 + parent: 2 + - uid: 21512 + components: + - type: Transform + pos: 15.5,-70.5 + parent: 2 + - uid: 21513 + components: + - type: Transform + pos: 15.5,-71.5 + parent: 2 + - uid: 21514 + components: + - type: Transform + pos: 14.5,-71.5 + parent: 2 + - uid: 21515 + components: + - type: Transform + pos: 10.5,-71.5 + parent: 2 + - uid: 21516 + components: + - type: Transform + pos: 9.5,-71.5 + parent: 2 + - uid: 21517 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -3.5,-67.5 + parent: 2 + - uid: 21518 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -2.5,-67.5 + parent: 2 + - uid: 21519 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -1.5,-67.5 + parent: 2 + - uid: 21520 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -0.5,-67.5 + parent: 2 + - uid: 21521 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 1.5,-67.5 + parent: 2 + - uid: 21522 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 2.5,-67.5 + parent: 2 + - uid: 21523 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 3.5,-67.5 + parent: 2 + - uid: 21524 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 4.5,-67.5 + parent: 2 + - uid: 21525 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 2.5,-66.5 + parent: 2 + - uid: 21526 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 2.5,-65.5 + parent: 2 + - uid: 21527 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 1.5,-65.5 + parent: 2 + - uid: 21528 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -0.5,-65.5 + parent: 2 + - uid: 21529 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -1.5,-65.5 + parent: 2 + - uid: 21530 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -1.5,-66.5 + parent: 2 + - uid: 21531 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -3.5,-71.5 + parent: 2 + - uid: 21532 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -2.5,-71.5 + parent: 2 + - uid: 21533 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -1.5,-71.5 + parent: 2 + - uid: 21534 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 2.5,-71.5 + parent: 2 + - uid: 21535 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 3.5,-71.5 + parent: 2 + - uid: 21536 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 4.5,-71.5 + parent: 2 + - uid: 21537 + components: + - type: Transform + pos: 16.5,-52.5 + parent: 2 + - uid: 21538 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -8.5,-63.5 + parent: 2 + - uid: 21539 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -8.5,-64.5 + parent: 2 + - uid: 21540 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -8.5,-65.5 + parent: 2 + - uid: 21541 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -8.5,-66.5 + parent: 2 + - uid: 21542 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -8.5,-67.5 + parent: 2 + - uid: 21543 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -8.5,-71.5 + parent: 2 + - uid: 21544 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -8.5,-72.5 + parent: 2 + - uid: 21545 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -8.5,-73.5 + parent: 2 + - uid: 21546 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -8.5,-75.5 + parent: 2 + - uid: 21547 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -8.5,-76.5 + parent: 2 + - uid: 21548 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -7.5,-76.5 + parent: 2 + - uid: 21549 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -7.5,-77.5 + parent: 2 + - uid: 21550 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -6.5,-77.5 + parent: 2 + - uid: 21551 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -3.5,-77.5 + parent: 2 + - uid: 21552 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -2.5,-77.5 + parent: 2 + - uid: 21553 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 0.5,-77.5 + parent: 2 + - uid: 21554 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 3.5,-77.5 + parent: 2 + - uid: 21555 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 4.5,-77.5 + parent: 2 + - uid: 21556 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 7.5,-77.5 + parent: 2 + - uid: 21557 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 8.5,-77.5 + parent: 2 + - uid: 21558 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 8.5,-76.5 + parent: 2 + - uid: 21559 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 9.5,-76.5 + parent: 2 + - uid: 21560 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 9.5,-75.5 + parent: 2 + - uid: 21561 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 9.5,-73.5 + parent: 2 + - uid: 21562 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 9.5,-72.5 + parent: 2 + - uid: 21563 + components: + - type: Transform + pos: 18.5,-52.5 + parent: 2 + - uid: 21564 + components: + - type: Transform + pos: 19.5,-52.5 + parent: 2 + - uid: 21565 + components: + - type: Transform + pos: 18.5,-64.5 + parent: 2 + - uid: 21566 + components: + - type: Transform + pos: 17.5,-64.5 + parent: 2 + - uid: 21567 + components: + - type: Transform + pos: 16.5,-64.5 + parent: 2 + - uid: 21568 + components: + - type: Transform + pos: 21.5,-65.5 + parent: 2 + - uid: 21569 + components: + - type: Transform + pos: 17.5,-52.5 + parent: 2 + - uid: 21570 + components: + - type: Transform + pos: 19.5,-64.5 + parent: 2 + - uid: 21571 + components: + - type: Transform + pos: 19.5,-60.5 + parent: 2 + - uid: 21572 + components: + - type: Transform + pos: 18.5,-60.5 + parent: 2 + - uid: 21573 + components: + - type: Transform + pos: 17.5,-60.5 + parent: 2 + - uid: 21574 + components: + - type: Transform + pos: 16.5,-60.5 + parent: 2 + - uid: 21575 + components: + - type: Transform + pos: 19.5,-56.5 + parent: 2 + - uid: 21576 + components: + - type: Transform + pos: 18.5,-56.5 + parent: 2 + - uid: 21577 + components: + - type: Transform + pos: 17.5,-56.5 + parent: 2 + - uid: 21578 + components: + - type: Transform + pos: 16.5,-56.5 + parent: 2 + - uid: 21579 + components: + - type: Transform + pos: 25.5,-65.5 + parent: 2 + - uid: 21580 + components: + - type: Transform + pos: 21.5,-60.5 + parent: 2 + - uid: 21581 + components: + - type: Transform + pos: 21.5,-56.5 + parent: 2 + - uid: 21582 + components: + - type: Transform + pos: 23.5,-65.5 + parent: 2 + - uid: 21583 + components: + - type: Transform + pos: 38.5,-41.5 + parent: 2 + - uid: 21584 + components: + - type: Transform + pos: 29.5,-65.5 + parent: 2 + - uid: 21585 + components: + - type: Transform + pos: 33.5,-65.5 + parent: 2 + - uid: 21586 + components: + - type: Transform + pos: 33.5,-64.5 + parent: 2 + - uid: 21587 + components: + - type: Transform + pos: 39.5,-41.5 + parent: 2 + - uid: 21588 + components: + - type: Transform + pos: 40.5,-41.5 + parent: 2 + - uid: 21589 + components: + - type: Transform + pos: 41.5,-41.5 + parent: 2 + - uid: 21590 + components: + - type: Transform + pos: 42.5,-41.5 + parent: 2 + - uid: 21591 + components: + - type: Transform + pos: 43.5,-41.5 + parent: 2 + - uid: 21592 + components: + - type: Transform + pos: 44.5,-41.5 + parent: 2 + - uid: 21593 + components: + - type: Transform + pos: 45.5,-41.5 + parent: 2 + - uid: 21594 + components: + - type: Transform + pos: 33.5,-56.5 + parent: 2 + - uid: 21595 + components: + - type: Transform + pos: 41.5,-45.5 + parent: 2 + - uid: 21596 + components: + - type: Transform + pos: 43.5,-45.5 + parent: 2 + - uid: 21597 + components: + - type: Transform + pos: 43.5,-44.5 + parent: 2 + - uid: 21598 + components: + - type: Transform + pos: 44.5,-44.5 + parent: 2 + - uid: 21599 + components: + - type: Transform + pos: 41.5,-47.5 + parent: 2 + - uid: 21600 + components: + - type: Transform + pos: 40.5,-47.5 + parent: 2 + - uid: 21601 + components: + - type: Transform + pos: 39.5,-47.5 + parent: 2 + - uid: 21602 + components: + - type: Transform + pos: 45.5,-44.5 + parent: 2 + - uid: 21603 + components: + - type: Transform + pos: 34.5,-52.5 + parent: 2 + - uid: 21604 + components: + - type: Transform + pos: 35.5,-52.5 + parent: 2 + - uid: 21605 + components: + - type: Transform + pos: 36.5,-52.5 + parent: 2 + - uid: 21606 + components: + - type: Transform + pos: 37.5,-52.5 + parent: 2 + - uid: 21607 + components: + - type: Transform + pos: 38.5,-52.5 + parent: 2 + - uid: 21608 + components: + - type: Transform + pos: 39.5,-52.5 + parent: 2 + - uid: 21609 + components: + - type: Transform + pos: 39.5,-49.5 + parent: 2 + - uid: 21610 + components: + - type: Transform + pos: 39.5,-50.5 + parent: 2 + - uid: 21611 + components: + - type: Transform + pos: 39.5,-51.5 + parent: 2 + - uid: 21612 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 33.5,-70.5 + parent: 2 + - uid: 21613 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 32.5,-70.5 + parent: 2 + - uid: 21614 + components: + - type: Transform + pos: 25.5,-67.5 + parent: 2 + - uid: 21615 + components: + - type: Transform + pos: 25.5,-68.5 + parent: 2 + - uid: 21616 + components: + - type: Transform + pos: 25.5,-69.5 + parent: 2 + - uid: 21617 + components: + - type: Transform + pos: 25.5,-70.5 + parent: 2 + - uid: 21618 + components: + - type: Transform + pos: 25.5,-71.5 + parent: 2 + - uid: 21619 + components: + - type: Transform + pos: 26.5,-71.5 + parent: 2 + - uid: 21620 + components: + - type: Transform + pos: 28.5,-71.5 + parent: 2 + - uid: 21621 + components: + - type: Transform + pos: 29.5,-71.5 + parent: 2 + - uid: 21622 + components: + - type: Transform + pos: 29.5,-70.5 + parent: 2 + - uid: 21623 + components: + - type: Transform + pos: 29.5,-69.5 + parent: 2 + - uid: 21624 + components: + - type: Transform + pos: 29.5,-68.5 + parent: 2 + - uid: 21625 + components: + - type: Transform + pos: 29.5,-67.5 + parent: 2 + - uid: 21626 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 19.5,-53.5 + parent: 2 + - uid: 21627 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 19.5,-55.5 + parent: 2 + - uid: 21628 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 19.5,-57.5 + parent: 2 + - uid: 21629 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 35.5,-64.5 + parent: 2 + - uid: 21630 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 36.5,-64.5 + parent: 2 + - uid: 21631 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 37.5,-64.5 + parent: 2 + - uid: 21632 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 38.5,-64.5 + parent: 2 + - uid: 21633 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 39.5,-64.5 + parent: 2 + - uid: 21634 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 39.5,-63.5 + parent: 2 + - uid: 21635 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 39.5,-62.5 + parent: 2 + - uid: 21636 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 39.5,-61.5 + parent: 2 + - uid: 21637 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 39.5,-60.5 + parent: 2 + - uid: 21638 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 38.5,-60.5 + parent: 2 + - uid: 21639 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 37.5,-60.5 + parent: 2 + - uid: 21640 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 36.5,-60.5 + parent: 2 + - uid: 21641 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 35.5,-60.5 + parent: 2 + - uid: 21642 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 39.5,-59.5 + parent: 2 + - uid: 21643 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 39.5,-58.5 + parent: 2 + - uid: 21644 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 39.5,-57.5 + parent: 2 + - uid: 21645 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 39.5,-56.5 + parent: 2 + - uid: 21646 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 38.5,-56.5 + parent: 2 + - uid: 21647 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 37.5,-56.5 + parent: 2 + - uid: 21648 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 36.5,-56.5 + parent: 2 + - uid: 21649 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 35.5,-56.5 + parent: 2 + - uid: 21650 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 39.5,-55.5 + parent: 2 + - uid: 21651 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 39.5,-53.5 + parent: 2 + - uid: 21652 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 19.5,-59.5 + parent: 2 + - uid: 21653 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 19.5,-61.5 + parent: 2 + - uid: 21654 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 19.5,-63.5 + parent: 2 + - uid: 21655 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 26.5,-67.5 + parent: 2 + - uid: 21656 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 28.5,-67.5 + parent: 2 + - uid: 21657 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 35.5,-63.5 + parent: 2 + - uid: 21658 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 35.5,-61.5 + parent: 2 + - uid: 21659 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 35.5,-59.5 + parent: 2 + - uid: 21660 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 35.5,-57.5 + parent: 2 + - uid: 21661 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 35.5,-55.5 + parent: 2 + - uid: 21662 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 35.5,-53.5 + parent: 2 + - uid: 21663 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 23.5,-73.5 + parent: 2 + - uid: 21664 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 24.5,-73.5 + parent: 2 + - uid: 21665 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 25.5,-73.5 + parent: 2 + - uid: 21666 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 21.5,-71.5 + parent: 2 + - uid: 21667 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 22.5,-71.5 + parent: 2 + - uid: 21668 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 25.5,-75.5 + parent: 2 + - uid: 21669 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 26.5,-75.5 + parent: 2 + - uid: 21670 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 27.5,-75.5 + parent: 2 + - uid: 21671 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 28.5,-75.5 + parent: 2 + - uid: 21672 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 29.5,-75.5 + parent: 2 + - uid: 21673 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 29.5,-73.5 + parent: 2 + - uid: 21674 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 30.5,-73.5 + parent: 2 + - uid: 21675 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 31.5,-73.5 + parent: 2 + - uid: 21676 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 33.5,-72.5 + parent: 2 + - uid: 21677 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 34.5,-72.5 + parent: 2 + - uid: 21678 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 35.5,-72.5 + parent: 2 + - uid: 21679 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 34.5,-70.5 + parent: 2 + - uid: 21680 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 35.5,-70.5 + parent: 2 + - uid: 21681 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 35.5,-65.5 + parent: 2 + - uid: 21682 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 23.5,-66.5 + parent: 2 + - uid: 21683 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 23.5,-67.5 + parent: 2 + - uid: 21684 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 21.5,-66.5 + parent: 2 + - uid: 21685 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 21.5,-67.5 + parent: 2 + - uid: 21686 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 42.5,-65.5 + parent: 2 + - uid: 21687 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 43.5,-65.5 + parent: 2 + - uid: 21688 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 44.5,-65.5 + parent: 2 + - uid: 21689 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 45.5,-65.5 + parent: 2 + - uid: 21690 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 46.5,-65.5 + parent: 2 + - uid: 21691 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 48.5,-64.5 + parent: 2 + - uid: 21692 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 49.5,-64.5 + parent: 2 + - uid: 21693 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 50.5,-64.5 + parent: 2 + - uid: 21694 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 51.5,-64.5 + parent: 2 + - uid: 21695 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 36.5,-67.5 + parent: 2 + - uid: 21696 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 53.5,-63.5 + parent: 2 + - uid: 21697 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 54.5,-63.5 + parent: 2 + - uid: 21698 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 55.5,-63.5 + parent: 2 + - uid: 21699 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 56.5,-63.5 + parent: 2 + - uid: 21700 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 37.5,-67.5 + parent: 2 + - uid: 21701 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 38.5,-67.5 + parent: 2 + - uid: 21702 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 39.5,-67.5 + parent: 2 + - uid: 21703 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 40.5,-67.5 + parent: 2 + - uid: 21704 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 38.5,-69.5 + parent: 2 + - uid: 21705 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 39.5,-69.5 + parent: 2 + - uid: 21706 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 40.5,-69.5 + parent: 2 + - uid: 21707 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 36.5,-70.5 + parent: 2 + - uid: 21708 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -1.5,-53.5 + parent: 2 + - uid: 21709 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -11.5,-76.5 + parent: 2 + - uid: 21710 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -1.5,-52.5 + parent: 2 + - uid: 21711 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -1.5,-50.5 + parent: 2 + - uid: 21712 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 49.5,-47.5 + parent: 2 + - uid: 21713 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 50.5,-27.5 + parent: 2 + - uid: 21714 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 50.5,-28.5 + parent: 2 + - uid: 21715 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 50.5,-29.5 + parent: 2 + - uid: 21716 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 52.5,-28.5 + parent: 2 + - uid: 21717 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 52.5,-29.5 + parent: 2 + - uid: 21718 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 52.5,-30.5 + parent: 2 + - uid: 21719 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 51.5,-32.5 + parent: 2 + - uid: 21720 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 51.5,-33.5 + parent: 2 + - uid: 21721 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 51.5,-34.5 + parent: 2 + - uid: 21722 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 51.5,-36.5 + parent: 2 + - uid: 21723 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 51.5,-37.5 + parent: 2 + - uid: 21724 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 51.5,-38.5 + parent: 2 + - uid: 21725 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 50.5,-40.5 + parent: 2 + - uid: 21726 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 50.5,-41.5 + parent: 2 + - uid: 21727 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 50.5,-42.5 + parent: 2 + - uid: 21728 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 47.5,-44.5 + parent: 2 + - uid: 21729 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 47.5,-45.5 + parent: 2 + - uid: 21730 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 47.5,-46.5 + parent: 2 + - uid: 21731 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 47.5,-47.5 + parent: 2 + - uid: 21732 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 47.5,-48.5 + parent: 2 + - uid: 21733 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 49.5,-46.5 + parent: 2 + - uid: 21734 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 49.5,-45.5 + parent: 2 + - uid: 21735 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 51.5,-44.5 + parent: 2 + - uid: 21736 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 51.5,-45.5 + parent: 2 + - uid: 21737 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 51.5,-46.5 + parent: 2 + - uid: 21738 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 48.5,-50.5 + parent: 2 + - uid: 21739 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 49.5,-50.5 + parent: 2 + - uid: 21740 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 50.5,-50.5 + parent: 2 + - uid: 21741 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 51.5,-50.5 + parent: 2 + - uid: 21742 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 53.5,-51.5 + parent: 2 + - uid: 21743 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 54.5,-51.5 + parent: 2 + - uid: 21744 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 55.5,-51.5 + parent: 2 + - uid: 21745 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 56.5,-51.5 + parent: 2 + - uid: 21746 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -11.5,-75.5 + parent: 2 + - uid: 21747 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -6.5,-79.5 + parent: 2 + - uid: 21748 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -10.5,-78.5 + parent: 2 + - uid: 21749 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -7.5,-79.5 + parent: 2 + - uid: 21750 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -10.5,-79.5 + parent: 2 + - uid: 21751 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -5.5,-79.5 + parent: 2 + - uid: 21752 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -4.5,-79.5 + parent: 2 + - uid: 21753 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -1.5,-79.5 + parent: 2 + - uid: 21754 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -0.5,-79.5 + parent: 2 + - uid: 21755 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 0.5,-79.5 + parent: 2 + - uid: 21756 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 1.5,-79.5 + parent: 2 + - uid: 21757 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 2.5,-79.5 + parent: 2 + - uid: 21758 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -5.5,-81.5 + parent: 2 + - uid: 21759 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -4.5,-81.5 + parent: 2 + - uid: 21760 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -3.5,-81.5 + parent: 2 + - uid: 21761 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -2.5,-81.5 + parent: 2 + - uid: 21762 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -1.5,-81.5 + parent: 2 + - uid: 21763 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 0.5,-81.5 + parent: 2 + - uid: 21764 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 0.5,-82.5 + parent: 2 + - uid: 21765 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 0.5,-83.5 + parent: 2 + - uid: 21766 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 0.5,-84.5 + parent: 2 + - uid: 21767 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -1.5,-84.5 + parent: 2 + - uid: 21768 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -1.5,-85.5 + parent: 2 + - uid: 21769 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -1.5,-86.5 + parent: 2 + - uid: 21770 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -1.5,-87.5 + parent: 2 + - uid: 21771 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 2.5,-84.5 + parent: 2 + - uid: 21772 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 2.5,-85.5 + parent: 2 + - uid: 21773 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 2.5,-86.5 + parent: 2 + - uid: 21774 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 2.5,-87.5 + parent: 2 + - uid: 21775 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 2.5,-81.5 + parent: 2 + - uid: 21776 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 3.5,-81.5 + parent: 2 + - uid: 21777 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 4.5,-81.5 + parent: 2 + - uid: 21778 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 5.5,-81.5 + parent: 2 + - uid: 21779 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 6.5,-81.5 + parent: 2 + - uid: 21780 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 12.5,-76.5 + parent: 2 + - uid: 21781 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 12.5,-75.5 + parent: 2 + - uid: 21782 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 10.5,-78.5 + parent: 2 + - uid: 21783 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 11.5,-78.5 + parent: 2 + - uid: 21784 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 8.5,-79.5 + parent: 2 + - uid: 21785 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 7.5,-79.5 + parent: 2 + - uid: 21786 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 6.5,-79.5 + parent: 2 + - uid: 21787 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 5.5,-79.5 + parent: 2 + - uid: 21788 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 0.5,-86.5 + parent: 2 + - uid: 21789 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 0.5,-87.5 + parent: 2 + - uid: 21790 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 0.5,-88.5 + parent: 2 + - uid: 21791 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 0.5,-89.5 + parent: 2 + - uid: 21792 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 0.5,-90.5 + parent: 2 + - uid: 21793 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 0.5,-91.5 + parent: 2 + - uid: 21794 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 5.5,28.5 + parent: 2 + - uid: 21886 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -18.5,8.5 + parent: 2 + - uid: 21887 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -17.5,8.5 + parent: 2 + - uid: 21888 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -16.5,8.5 + parent: 2 + - uid: 21889 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -15.5,8.5 + parent: 2 + - uid: 21890 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -14.5,8.5 + parent: 2 + - uid: 21903 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -14.5,9.5 + parent: 2 + - uid: 21904 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -18.5,9.5 + parent: 2 + - uid: 21905 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -18.5,10.5 + parent: 2 + - uid: 21906 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -18.5,11.5 + parent: 2 + - uid: 21907 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -18.5,12.5 + parent: 2 + - uid: 21908 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -18.5,13.5 + parent: 2 + - uid: 21909 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -17.5,13.5 + parent: 2 + - uid: 21910 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -16.5,13.5 + parent: 2 + - uid: 21911 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -15.5,13.5 + parent: 2 + - uid: 21912 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -14.5,13.5 + parent: 2 + - uid: 21996 + components: + - type: Transform + pos: 12.5,-7.5 + parent: 2 + - uid: 21997 + components: + - type: Transform + pos: 12.5,-8.5 + parent: 2 + - uid: 21998 + components: + - type: Transform + pos: 12.5,-9.5 + parent: 2 + - uid: 21999 + components: + - type: Transform + pos: 12.5,-11.5 + parent: 2 + - uid: 22000 + components: + - type: Transform + pos: 12.5,-12.5 + parent: 2 + - uid: 22007 + components: + - type: Transform + pos: 12.5,-13.5 + parent: 2 + - uid: 22008 + components: + - type: Transform + pos: 11.5,-13.5 + parent: 2 + - uid: 22009 + components: + - type: Transform + pos: 11.5,-14.5 + parent: 2 + - uid: 22010 + components: + - type: Transform + pos: 11.5,-15.5 + parent: 2 + - uid: 22011 + components: + - type: Transform + pos: 11.5,-16.5 + parent: 2 + - uid: 22012 + components: + - type: Transform + pos: 11.5,-17.5 + parent: 2 + - uid: 22013 + components: + - type: Transform + pos: 10.5,-17.5 + parent: 2 + - uid: 22014 + components: + - type: Transform + pos: 9.5,-17.5 + parent: 2 + - uid: 22015 + components: + - type: Transform + pos: 8.5,-17.5 + parent: 2 + - uid: 22016 + components: + - type: Transform + pos: 7.5,-17.5 + parent: 2 + - uid: 22017 + components: + - type: Transform + pos: 6.5,-17.5 + parent: 2 + - uid: 22018 + components: + - type: Transform + pos: 5.5,-17.5 + parent: 2 + - uid: 22019 + components: + - type: Transform + pos: 4.5,-17.5 + parent: 2 + - uid: 22020 + components: + - type: Transform + pos: 3.5,-17.5 + parent: 2 + - uid: 22030 + components: + - type: Transform + pos: 3.5,-18.5 + parent: 2 + - uid: 22031 + components: + - type: Transform + pos: 3.5,-19.5 + parent: 2 + - uid: 22032 + components: + - type: Transform + pos: 19.5,-7.5 + parent: 2 + - uid: 22033 + components: + - type: Transform + pos: 20.5,-7.5 + parent: 2 + - uid: 22039 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -41.5,-28.5 + parent: 2 + - uid: 22040 + components: + - type: Transform + pos: 21.5,-7.5 + parent: 2 + - uid: 22041 + components: + - type: Transform + pos: 21.5,-8.5 + parent: 2 + - uid: 22058 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -42.5,-28.5 + parent: 2 + - uid: 22059 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -43.5,-28.5 + parent: 2 + - uid: 22060 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -44.5,-28.5 + parent: 2 + - uid: 22061 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -45.5,-28.5 + parent: 2 + - uid: 22062 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -46.5,-28.5 + parent: 2 + - uid: 22063 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -47.5,-28.5 + parent: 2 + - uid: 22065 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -48.5,-28.5 + parent: 2 + - uid: 22066 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -36.5,-25.5 + parent: 2 + - uid: 22067 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -37.5,-25.5 + parent: 2 + - uid: 22068 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -37.5,-26.5 + parent: 2 + - uid: 22071 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -37.5,-27.5 + parent: 2 + - uid: 22072 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -37.5,-28.5 + parent: 2 + - uid: 22073 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -40.5,-29.5 + parent: 2 + - uid: 22078 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -40.5,-31.5 + parent: 2 + - uid: 22079 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -40.5,-32.5 + parent: 2 + - uid: 22080 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -40.5,-33.5 + parent: 2 + - uid: 22085 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -40.5,-34.5 + parent: 2 + - uid: 22086 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -39.5,-34.5 + parent: 2 + - uid: 22087 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -37.5,-29.5 + parent: 2 + - uid: 22088 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -37.5,-30.5 + parent: 2 + - uid: 22176 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -37.5,-31.5 + parent: 2 + - uid: 22177 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -36.5,-31.5 + parent: 2 + - uid: 22178 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -36.5,-34.5 + parent: 2 + - uid: 22179 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -31.5,-25.5 + parent: 2 + - uid: 22180 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -27.5,-25.5 + parent: 2 + - uid: 22181 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -36.5,-35.5 + parent: 2 + - uid: 22182 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -36.5,-36.5 + parent: 2 + - uid: 22187 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -36.5,-38.5 + parent: 2 + - uid: 22188 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -36.5,-39.5 + parent: 2 + - uid: 22189 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -36.5,-40.5 + parent: 2 + - uid: 22190 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -40.5,-37.5 + parent: 2 + - uid: 22191 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -40.5,-38.5 + parent: 2 + - uid: 22220 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -40.5,-39.5 + parent: 2 + - uid: 22227 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -40.5,-40.5 + parent: 2 + - uid: 22228 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -39.5,-40.5 + parent: 2 + - uid: 22229 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -38.5,-40.5 + parent: 2 + - uid: 22230 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -37.5,-40.5 + parent: 2 + - uid: 22231 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -7.5,-21.5 + parent: 2 + - uid: 22232 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -7.5,-22.5 + parent: 2 + - uid: 22233 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -7.5,-23.5 + parent: 2 + - uid: 22234 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -7.5,-24.5 + parent: 2 + - uid: 22235 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -7.5,-25.5 + parent: 2 + - uid: 22237 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -6.5,-25.5 + parent: 2 + - uid: 22238 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -5.5,-25.5 + parent: 2 + - uid: 22239 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -4.5,-25.5 + parent: 2 + - uid: 22240 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -3.5,-25.5 + parent: 2 + - uid: 22241 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -2.5,-25.5 + parent: 2 + - uid: 22242 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -1.5,-25.5 + parent: 2 + - uid: 22243 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -1.5,-24.5 + parent: 2 + - uid: 22244 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -1.5,-20.5 + parent: 2 + - uid: 22245 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -43.5,-44.5 + parent: 2 + - uid: 22246 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -44.5,-44.5 + parent: 2 + - uid: 22247 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -45.5,-44.5 + parent: 2 + - uid: 22249 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -43.5,-42.5 + parent: 2 + - uid: 22250 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -45.5,-42.5 + parent: 2 + - uid: 22251 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -44.5,-37.5 + parent: 2 + - uid: 22252 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -45.5,-37.5 + parent: 2 + - uid: 22253 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -45.5,-38.5 + parent: 2 + - uid: 22254 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -45.5,-41.5 + parent: 2 + - uid: 22255 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -46.5,-37.5 + parent: 2 + - uid: 22266 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -46.5,-33.5 + parent: 2 + - uid: 22267 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -46.5,-35.5 + parent: 2 + - uid: 22268 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -47.5,-35.5 + parent: 2 + - uid: 22269 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -48.5,-35.5 + parent: 2 + - uid: 22270 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -48.5,-33.5 + parent: 2 + - uid: 22273 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -48.5,-29.5 + parent: 2 + - uid: 22274 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -44.5,-51.5 + parent: 2 + - uid: 22275 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -25.5,-42.5 + parent: 2 + - uid: 22276 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -22.5,-41.5 + parent: 2 + - uid: 22277 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -36.5,-33.5 + parent: 2 + - uid: 22278 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -26.5,-42.5 + parent: 2 + - uid: 22279 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -27.5,-42.5 + parent: 2 + - uid: 22290 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -31.5,-53.5 + parent: 2 + - uid: 22291 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -30.5,-53.5 + parent: 2 + - uid: 22292 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -30.5,-51.5 + parent: 2 + - uid: 22293 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -28.5,-49.5 + parent: 2 + - uid: 22294 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -25.5,-49.5 + parent: 2 + - uid: 22297 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -23.5,-49.5 + parent: 2 + - uid: 22298 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -22.5,-47.5 + parent: 2 + - uid: 22299 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -22.5,-46.5 + parent: 2 + - uid: 22300 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -23.5,-45.5 + parent: 2 + - uid: 22301 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -24.5,-45.5 + parent: 2 + - uid: 22302 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -24.5,-42.5 + parent: 2 + - uid: 22303 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -23.5,-42.5 + parent: 2 + - uid: 22304 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -22.5,-42.5 + parent: 2 + - uid: 22403 + components: + - type: Transform + pos: 21.5,-9.5 + parent: 2 + - uid: 22404 + components: + - type: Transform + pos: 21.5,-10.5 + parent: 2 + - uid: 22405 + components: + - type: Transform + pos: 21.5,-11.5 + parent: 2 + - uid: 22424 + components: + - type: Transform + pos: 21.5,-12.5 + parent: 2 + - uid: 22425 + components: + - type: Transform + pos: 21.5,-13.5 + parent: 2 + - uid: 22426 + components: + - type: Transform + pos: 21.5,-14.5 + parent: 2 + - uid: 22427 + components: + - type: Transform + pos: 27.5,-14.5 + parent: 2 + - uid: 22428 + components: + - type: Transform + pos: 27.5,-13.5 + parent: 2 + - uid: 22429 + components: + - type: Transform + pos: 28.5,-13.5 + parent: 2 + - uid: 22446 + components: + - type: Transform + pos: 29.5,-13.5 + parent: 2 + - uid: 22447 + components: + - type: Transform + pos: 30.5,-13.5 + parent: 2 + - uid: 22448 + components: + - type: Transform + pos: 31.5,-13.5 + parent: 2 + - uid: 22451 + components: + - type: Transform + pos: 32.5,-13.5 + parent: 2 + - uid: 22452 + components: + - type: Transform + pos: 33.5,-13.5 + parent: 2 + - uid: 22453 + components: + - type: Transform + pos: 34.5,-13.5 + parent: 2 + - uid: 22454 + components: + - type: Transform + pos: 35.5,-13.5 + parent: 2 + - uid: 22682 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -1.5,30.5 + parent: 2 + - uid: 22759 + components: + - type: Transform + pos: 39.5,-13.5 + parent: 2 + - uid: 22760 + components: + - type: Transform + pos: 40.5,-13.5 + parent: 2 + - uid: 22761 + components: + - type: Transform + pos: 41.5,-13.5 + parent: 2 + - uid: 22762 + components: + - type: Transform + pos: 47.5,-20.5 + parent: 2 + - uid: 22763 + components: + - type: Transform + pos: 47.5,-21.5 + parent: 2 + - uid: 22764 + components: + - type: Transform + pos: 47.5,-25.5 + parent: 2 + - uid: 22765 + components: + - type: Transform + pos: 33.5,-32.5 + parent: 2 + - uid: 22784 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -17.5,21.5 + parent: 2 + - uid: 22846 + components: + - type: Transform + pos: 9.5,28.5 + parent: 2 + - uid: 22847 + components: + - type: Transform + pos: 12.5,45.5 + parent: 2 + - uid: 22848 + components: + - type: Transform + pos: -15.5,17.5 + parent: 2 + - uid: 22849 + components: + - type: Transform + pos: -14.5,17.5 + parent: 2 + - uid: 22881 + components: + - type: Transform + pos: 33.5,-31.5 + parent: 2 + - uid: 22882 + components: + - type: Transform + pos: 33.5,-30.5 + parent: 2 + - uid: 22883 + components: + - type: Transform + pos: 33.5,-29.5 + parent: 2 + - uid: 22887 + components: + - type: Transform + pos: 33.5,-28.5 + parent: 2 + - uid: 22888 + components: + - type: Transform + pos: 33.5,-27.5 + parent: 2 + - uid: 22889 + components: + - type: Transform + pos: 33.5,-26.5 + parent: 2 + - uid: 22890 + components: + - type: Transform + pos: 32.5,-32.5 + parent: 2 + - uid: 22891 + components: + - type: Transform + pos: 31.5,-32.5 + parent: 2 + - uid: 22892 + components: + - type: Transform + pos: 30.5,-32.5 + parent: 2 + - uid: 22893 + components: + - type: Transform + pos: 29.5,-32.5 + parent: 2 + - uid: 22894 + components: + - type: Transform + pos: 29.5,-33.5 + parent: 2 + - uid: 22895 + components: + - type: Transform + pos: 28.5,-33.5 + parent: 2 + - uid: 22896 + components: + - type: Transform + pos: 26.5,-33.5 + parent: 2 + - uid: 22897 + components: + - type: Transform + pos: 25.5,-33.5 + parent: 2 + - uid: 22898 + components: + - type: Transform + pos: 24.5,-33.5 + parent: 2 + - uid: 22899 + components: + - type: Transform + pos: 23.5,-33.5 + parent: 2 + - uid: 22900 + components: + - type: Transform + pos: 21.5,-33.5 + parent: 2 + - uid: 22901 + components: + - type: Transform + pos: 20.5,-33.5 + parent: 2 + - uid: 22902 + components: + - type: Transform + pos: 19.5,-33.5 + parent: 2 + - uid: 22919 + components: + - type: Transform + pos: 18.5,-33.5 + parent: 2 + - uid: 22920 + components: + - type: Transform + pos: 17.5,-33.5 + parent: 2 + - uid: 22921 + components: + - type: Transform + pos: 16.5,-33.5 + parent: 2 + - uid: 22922 + components: + - type: Transform + pos: 15.5,-33.5 + parent: 2 + - uid: 22923 + components: + - type: Transform + pos: 4.5,-33.5 + parent: 2 + - uid: 22924 + components: + - type: Transform + pos: 3.5,-33.5 + parent: 2 + - uid: 22925 + components: + - type: Transform + pos: 3.5,-32.5 + parent: 2 + - uid: 22926 + components: + - type: Transform + pos: 3.5,-31.5 + parent: 2 + - uid: 22929 + components: + - type: Transform + pos: 3.5,-30.5 + parent: 2 + - uid: 22930 + components: + - type: Transform + pos: 3.5,-29.5 + parent: 2 + - uid: 22931 + components: + - type: Transform + pos: 3.5,-28.5 + parent: 2 + - uid: 22932 + components: + - type: Transform + pos: 6.5,-33.5 + parent: 2 + - uid: 22933 + components: + - type: Transform + pos: 7.5,-33.5 + parent: 2 + - uid: 22934 + components: + - type: Transform + pos: 8.5,-33.5 + parent: 2 + - uid: 22935 + components: + - type: Transform + pos: 9.5,-33.5 + parent: 2 + - uid: 22936 + components: + - type: Transform + pos: 10.5,-33.5 + parent: 2 + - uid: 22937 + components: + - type: Transform + pos: 11.5,-33.5 + parent: 2 + - uid: 22938 + components: + - type: Transform + pos: 11.5,-28.5 + parent: 2 + - uid: 22939 + components: + - type: Transform + pos: 3.5,-20.5 + parent: 2 + - uid: 22940 + components: + - type: Transform + pos: 7.5,-20.5 + parent: 2 + - uid: 22941 + components: + - type: Transform + pos: 11.5,-20.5 + parent: 2 + - uid: 22942 + components: + - type: Transform + pos: 11.5,-21.5 + parent: 2 + - uid: 22944 + components: + - type: Transform + pos: 11.5,-22.5 + parent: 2 + - uid: 22946 + components: + - type: Transform + pos: 11.5,-26.5 + parent: 2 + - uid: 22947 + components: + - type: Transform + pos: 11.5,-27.5 + parent: 2 + - uid: 22952 + components: + - type: Transform + pos: 14.5,-33.5 + parent: 2 + - uid: 22953 + components: + - type: Transform + pos: 13.5,-33.5 + parent: 2 + - uid: 22954 + components: + - type: Transform + pos: 12.5,-33.5 + parent: 2 + - uid: 23467 + components: + - type: Transform + pos: -13.5,17.5 + parent: 2 + - uid: 23489 + components: + - type: Transform + pos: -7.5,17.5 + parent: 2 + - uid: 24027 + components: + - type: Transform + pos: -8.5,17.5 + parent: 2 + - uid: 24028 + components: + - type: Transform + pos: -1.5,17.5 + parent: 2 + - uid: 24029 + components: + - type: Transform + pos: -2.5,17.5 + parent: 2 + - uid: 24033 + components: + - type: Transform + pos: -3.5,17.5 + parent: 2 + - uid: 24034 + components: + - type: Transform + pos: -4.5,17.5 + parent: 2 + - uid: 24035 + components: + - type: Transform + pos: -5.5,17.5 + parent: 2 + - uid: 24036 + components: + - type: Transform + pos: -6.5,17.5 + parent: 2 + - uid: 24037 + components: + - type: Transform + pos: 10.5,28.5 + parent: 2 + - uid: 24038 + components: + - type: Transform + pos: 15.5,28.5 + parent: 2 + - uid: 24039 + components: + - type: Transform + pos: 16.5,28.5 + parent: 2 + - uid: 24040 + components: + - type: Transform + pos: 16.5,29.5 + parent: 2 + - uid: 24041 + components: + - type: Transform + pos: 16.5,30.5 + parent: 2 + - uid: 24042 + components: + - type: Transform + pos: 16.5,31.5 + parent: 2 + - uid: 24043 + components: + - type: Transform + pos: 16.5,32.5 + parent: 2 + - uid: 24044 + components: + - type: Transform + pos: 12.5,37.5 + parent: 2 + - uid: 24045 + components: + - type: Transform + pos: 12.5,41.5 + parent: 2 + - uid: 24046 + components: + - type: Transform + pos: 12.5,40.5 + parent: 2 + - uid: 24047 + components: + - type: Transform + pos: 12.5,39.5 + parent: 2 + - uid: 24048 + components: + - type: Transform + pos: 12.5,38.5 + parent: 2 + - uid: 24049 + components: + - type: Transform + pos: 12.5,34.5 + parent: 2 + - uid: 24050 + components: + - type: Transform + pos: 12.5,33.5 + parent: 2 + - uid: 24051 + components: + - type: Transform + pos: 12.5,32.5 + parent: 2 + - uid: 24052 + components: + - type: Transform + pos: 14.5,32.5 + parent: 2 + - uid: 24053 + components: + - type: Transform + pos: 14.5,33.5 + parent: 2 + - uid: 24054 + components: + - type: Transform + pos: 12.5,42.5 + parent: 2 + - uid: 24055 + components: + - type: Transform + pos: 12.5,44.5 + parent: 2 + - uid: 24056 + components: + - type: Transform + pos: -6.5,41.5 + parent: 2 + - uid: 24057 + components: + - type: Transform + pos: -5.5,41.5 + parent: 2 + - uid: 24058 + components: + - type: Transform + pos: -3.5,41.5 + parent: 2 + - uid: 24059 + components: + - type: Transform + pos: -2.5,41.5 + parent: 2 + - uid: 24060 + components: + - type: Transform + pos: -1.5,41.5 + parent: 2 + - uid: 24061 + components: + - type: Transform + pos: -1.5,40.5 + parent: 2 + - uid: 24062 + components: + - type: Transform + pos: -1.5,39.5 + parent: 2 + - uid: 24063 + components: + - type: Transform + pos: -1.5,46.5 + parent: 2 + - uid: 24064 + components: + - type: Transform + pos: -2.5,46.5 + parent: 2 + - uid: 24065 + components: + - type: Transform + pos: -1.5,47.5 + parent: 2 + - uid: 24066 + components: + - type: Transform + pos: -1.5,48.5 + parent: 2 + - uid: 24067 + components: + - type: Transform + pos: -1.5,49.5 + parent: 2 +- proto: WallRiveted + entities: + - uid: 21795 + components: + - type: Transform + pos: -83.5,-52.5 + parent: 2 +- proto: WallSolid + entities: + - uid: 16320 + components: + - type: Transform + pos: -3.5,-44.5 + parent: 2 + - uid: 16322 + components: + - type: Transform + pos: 21.5,24.5 + parent: 2 + - uid: 19029 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 22.5,15.5 + parent: 2 + - uid: 21796 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -24.5,-53.5 + parent: 2 + - uid: 21797 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 10.5,-61.5 + parent: 2 + - uid: 21798 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 14.5,-61.5 + parent: 2 + - uid: 21799 + components: + - type: Transform + pos: 48.5,-40.5 + parent: 2 + - uid: 21800 + components: + - type: Transform + pos: 33.5,-52.5 + parent: 2 + - uid: 21801 + components: + - type: Transform + pos: -1.5,12.5 + parent: 2 + - uid: 21802 + components: + - type: Transform + pos: -4.5,12.5 + parent: 2 + - uid: 21803 + components: + - type: Transform + pos: -4.5,11.5 + parent: 2 + - uid: 21804 + components: + - type: Transform + pos: -5.5,11.5 + parent: 2 + - uid: 21805 + components: + - type: Transform + pos: -5.5,10.5 + parent: 2 + - uid: 21806 + components: + - type: Transform + pos: -6.5,10.5 + parent: 2 + - uid: 21807 + components: + - type: Transform + pos: -7.5,10.5 + parent: 2 + - uid: 21808 + components: + - type: Transform + pos: -8.5,10.5 + parent: 2 + - uid: 21809 + components: + - type: Transform + pos: -8.5,7.5 + parent: 2 + - uid: 21810 + components: + - type: Transform + pos: -9.5,7.5 + parent: 2 + - uid: 21811 + components: + - type: Transform + pos: -9.5,6.5 + parent: 2 + - uid: 21812 + components: + - type: Transform + pos: -10.5,6.5 + parent: 2 + - uid: 21813 + components: + - type: Transform + pos: -10.5,3.5 + parent: 2 + - uid: 21814 + components: + - type: Transform + pos: -10.5,-1.5 + parent: 2 + - uid: 21815 + components: + - type: Transform + pos: -10.5,-2.5 + parent: 2 + - uid: 21816 + components: + - type: Transform + pos: -10.5,-3.5 + parent: 2 + - uid: 21817 + components: + - type: Transform + pos: -10.5,-4.5 + parent: 2 + - uid: 21818 + components: + - type: Transform + pos: -9.5,-4.5 + parent: 2 + - uid: 21819 + components: + - type: Transform + pos: -9.5,-5.5 + parent: 2 + - uid: 21820 + components: + - type: Transform + pos: -8.5,-5.5 + parent: 2 + - uid: 21821 + components: + - type: Transform + pos: -8.5,-6.5 + parent: 2 + - uid: 21822 + components: + - type: Transform + pos: -8.5,-7.5 + parent: 2 + - uid: 21823 + components: + - type: Transform + pos: -8.5,-8.5 + parent: 2 + - uid: 21824 + components: + - type: Transform + pos: -7.5,-8.5 + parent: 2 + - uid: 21825 + components: + - type: Transform + pos: -1.5,-10.5 + parent: 2 + - uid: 21826 + components: + - type: Transform + pos: -5.5,-8.5 + parent: 2 + - uid: 21827 + components: + - type: Transform + pos: -5.5,-9.5 + parent: 2 + - uid: 21828 + components: + - type: Transform + pos: -4.5,-9.5 + parent: 2 + - uid: 21829 + components: + - type: Transform + pos: -4.5,-10.5 + parent: 2 + - uid: 21830 + components: + - type: Transform + pos: 3.5,-10.5 + parent: 2 + - uid: 21831 + components: + - type: Transform + pos: 4.5,-10.5 + parent: 2 + - uid: 21832 + components: + - type: Transform + pos: 5.5,-10.5 + parent: 2 + - uid: 21833 + components: + - type: Transform + pos: 6.5,-10.5 + parent: 2 + - uid: 21834 + components: + - type: Transform + pos: 6.5,-9.5 + parent: 2 + - uid: 21835 + components: + - type: Transform + pos: 7.5,-9.5 + parent: 2 + - uid: 21836 + components: + - type: Transform + pos: 7.5,-8.5 + parent: 2 + - uid: 21837 + components: + - type: Transform + pos: 9.5,-8.5 + parent: 2 + - uid: 21838 + components: + - type: Transform + pos: 10.5,-8.5 + parent: 2 + - uid: 21839 + components: + - type: Transform + pos: 10.5,-7.5 + parent: 2 + - uid: 21840 + components: + - type: Transform + pos: 10.5,-5.5 + parent: 2 + - uid: 21841 + components: + - type: Transform + pos: 11.5,-5.5 + parent: 2 + - uid: 21842 + components: + - type: Transform + pos: 11.5,-4.5 + parent: 2 + - uid: 21843 + components: + - type: Transform + pos: 12.5,-4.5 + parent: 2 + - uid: 21844 + components: + - type: Transform + pos: 12.5,-3.5 + parent: 2 + - uid: 21845 + components: + - type: Transform + pos: 12.5,-2.5 + parent: 2 + - uid: 21846 + components: + - type: Transform + pos: 12.5,-1.5 + parent: 2 + - uid: 21847 + components: + - type: Transform + pos: 12.5,3.5 + parent: 2 + - uid: 21848 + components: + - type: Transform + pos: 12.5,4.5 + parent: 2 + - uid: 21849 + components: + - type: Transform + pos: 12.5,5.5 + parent: 2 + - uid: 21850 + components: + - type: Transform + pos: 12.5,6.5 + parent: 2 + - uid: 21851 + components: + - type: Transform + pos: 11.5,6.5 + parent: 2 + - uid: 21852 + components: + - type: Transform + pos: 11.5,7.5 + parent: 2 + - uid: 21853 + components: + - type: Transform + pos: 10.5,7.5 + parent: 2 + - uid: 21854 + components: + - type: Transform + pos: 10.5,9.5 + parent: 2 + - uid: 21855 + components: + - type: Transform + pos: 10.5,10.5 + parent: 2 + - uid: 21856 + components: + - type: Transform + pos: 9.5,10.5 + parent: 2 + - uid: 21857 + components: + - type: Transform + pos: 7.5,10.5 + parent: 2 + - uid: 21858 + components: + - type: Transform + pos: 7.5,11.5 + parent: 2 + - uid: 21859 + components: + - type: Transform + pos: 6.5,11.5 + parent: 2 + - uid: 21860 + components: + - type: Transform + pos: 6.5,12.5 + parent: 2 + - uid: 21861 + components: + - type: Transform + pos: 3.5,12.5 + parent: 2 + - uid: 21862 + components: + - type: Transform + pos: -1.5,-11.5 + parent: 2 + - uid: 21863 + components: + - type: Transform + pos: 3.5,-11.5 + parent: 2 + - uid: 21864 + components: + - type: Transform + pos: 13.5,-1.5 + parent: 2 + - uid: 21865 + components: + - type: Transform + pos: 13.5,3.5 + parent: 2 + - uid: 21866 + components: + - type: Transform + pos: 3.5,13.5 + parent: 2 + - uid: 21867 + components: + - type: Transform + pos: -1.5,13.5 + parent: 2 + - uid: 21868 + components: + - type: Transform + pos: -11.5,3.5 + parent: 2 + - uid: 21869 + components: + - type: Transform + pos: -11.5,-1.5 + parent: 2 + - uid: 21870 + components: + - type: Transform + pos: -12.5,3.5 + parent: 2 + - uid: 21871 + components: + - type: Transform + pos: -13.5,3.5 + parent: 2 + - uid: 21872 + components: + - type: Transform + pos: -14.5,3.5 + parent: 2 + - uid: 21873 + components: + - type: Transform + pos: -10.5,7.5 + parent: 2 + - uid: 21874 + components: + - type: Transform + pos: -11.5,7.5 + parent: 2 + - uid: 21875 + components: + - type: Transform + pos: -12.5,7.5 + parent: 2 + - uid: 21876 + components: + - type: Transform + pos: -13.5,7.5 + parent: 2 + - uid: 21877 + components: + - type: Transform + pos: -14.5,7.5 + parent: 2 + - uid: 21878 + components: + - type: Transform + pos: -14.5,6.5 + parent: 2 + - uid: 21879 + components: + - type: Transform + pos: -14.5,5.5 + parent: 2 + - uid: 21880 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -16.5,3.5 + parent: 2 + - uid: 21881 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -17.5,3.5 + parent: 2 + - uid: 21882 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -18.5,3.5 + parent: 2 + - uid: 21883 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -18.5,4.5 + parent: 2 + - uid: 21884 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -18.5,5.5 + parent: 2 + - uid: 21885 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -18.5,7.5 + parent: 2 + - uid: 21891 + components: + - type: Transform + pos: -12.5,-1.5 + parent: 2 + - uid: 21892 + components: + - type: Transform + pos: -13.5,-1.5 + parent: 2 + - uid: 21893 + components: + - type: Transform + pos: -14.5,-1.5 + parent: 2 + - uid: 21894 + components: + - type: Transform + pos: -16.5,-1.5 + parent: 2 + - uid: 21895 + components: + - type: Transform + pos: -17.5,-1.5 + parent: 2 + - uid: 21896 + components: + - type: Transform + pos: -18.5,-1.5 + parent: 2 + - uid: 21897 + components: + - type: Transform + pos: -18.5,-2.5 + parent: 2 + - uid: 21898 + components: + - type: Transform + pos: -18.5,-4.5 + parent: 2 + - uid: 21899 + components: + - type: Transform + pos: -18.5,-6.5 + parent: 2 + - uid: 21900 + components: + - type: Transform + pos: -15.5,-7.5 + parent: 2 + - uid: 21901 + components: + - type: Transform + pos: -14.5,-7.5 + parent: 2 + - uid: 21902 + components: + - type: Transform + pos: -13.5,-7.5 + parent: 2 + - uid: 21913 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -15.5,14.5 + parent: 2 + - uid: 21914 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -15.5,15.5 + parent: 2 + - uid: 21915 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -15.5,16.5 + parent: 2 + - uid: 21919 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -8.5,11.5 + parent: 2 + - uid: 21920 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -8.5,12.5 + parent: 2 + - uid: 21921 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -8.5,13.5 + parent: 2 + - uid: 21922 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -7.5,13.5 + parent: 2 + - uid: 21923 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -7.5,14.5 + parent: 2 + - uid: 21924 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -7.5,16.5 + parent: 2 + - uid: 21927 + components: + - type: Transform + pos: -6.5,13.5 + parent: 2 + - uid: 21928 + components: + - type: Transform + pos: -5.5,13.5 + parent: 2 + - uid: 21929 + components: + - type: Transform + pos: -5.5,12.5 + parent: 2 + - uid: 21930 + components: + - type: Transform + pos: -1.5,14.5 + parent: 2 + - uid: 21931 + components: + - type: Transform + pos: -1.5,15.5 + parent: 2 + - uid: 21932 + components: + - type: Transform + pos: -1.5,16.5 + parent: 2 + - uid: 21939 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 3.5,14.5 + parent: 2 + - uid: 21940 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 3.5,15.5 + parent: 2 + - uid: 21941 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 3.5,20.5 + parent: 2 + - uid: 21942 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 4.5,20.5 + parent: 2 + - uid: 21943 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 5.5,20.5 + parent: 2 + - uid: 21944 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 6.5,20.5 + parent: 2 + - uid: 21945 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 7.5,20.5 + parent: 2 + - uid: 21946 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 8.5,20.5 + parent: 2 + - uid: 21947 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 6.5,13.5 + parent: 2 + - uid: 21948 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 6.5,14.5 + parent: 2 + - uid: 21949 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 7.5,14.5 + parent: 2 + - uid: 21950 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 8.5,14.5 + parent: 2 + - uid: 21951 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 8.5,15.5 + parent: 2 + - uid: 21952 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 8.5,16.5 + parent: 2 + - uid: 21953 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 9.5,20.5 + parent: 2 + - uid: 21954 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 10.5,20.5 + parent: 2 + - uid: 21955 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 11.5,20.5 + parent: 2 + - uid: 21956 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 11.5,19.5 + parent: 2 + - uid: 21957 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 11.5,17.5 + parent: 2 + - uid: 21958 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 11.5,16.5 + parent: 2 + - uid: 21959 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 10.5,16.5 + parent: 2 + - uid: 21960 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 9.5,16.5 + parent: 2 + - uid: 21961 + components: + - type: Transform + pos: 11.5,10.5 + parent: 2 + - uid: 21962 + components: + - type: Transform + pos: 11.5,11.5 + parent: 2 + - uid: 21963 + components: + - type: Transform + pos: 11.5,15.5 + parent: 2 + - uid: 21964 + components: + - type: Transform + pos: 11.5,12.5 + parent: 2 + - uid: 21965 + components: + - type: Transform + pos: 11.5,13.5 + parent: 2 + - uid: 21966 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 14.5,3.5 + parent: 2 + - uid: 21967 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 16.5,3.5 + parent: 2 + - uid: 21968 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 17.5,3.5 + parent: 2 + - uid: 21969 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 14.5,-1.5 + parent: 2 + - uid: 21970 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 15.5,-1.5 + parent: 2 + - uid: 21971 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 17.5,-1.5 + parent: 2 + - uid: 21972 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 17.5,4.5 + parent: 2 + - uid: 21973 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 17.5,5.5 + parent: 2 + - uid: 21974 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 16.5,5.5 + parent: 2 + - uid: 21975 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 14.5,5.5 + parent: 2 + - uid: 21976 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 14.5,6.5 + parent: 2 + - uid: 21977 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 14.5,7.5 + parent: 2 + - uid: 21978 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 14.5,8.5 + parent: 2 + - uid: 21979 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 14.5,9.5 + parent: 2 + - uid: 21980 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 14.5,10.5 + parent: 2 + - uid: 21981 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 12.5,10.5 + parent: 2 + - uid: 21982 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 12.5,16.5 + parent: 2 + - uid: 21983 + components: + - type: Transform + pos: 14.5,12.5 + parent: 2 + - uid: 21984 + components: + - type: Transform + pos: 14.5,13.5 + parent: 2 + - uid: 21985 + components: + - type: Transform + pos: 14.5,14.5 + parent: 2 + - uid: 21986 + components: + - type: Transform + pos: 14.5,15.5 + parent: 2 + - uid: 21987 + components: + - type: Transform + pos: 14.5,16.5 + parent: 2 + - uid: 21988 + components: + - type: Transform + pos: 12.5,-5.5 + parent: 2 + - uid: 21989 + components: + - type: Transform + pos: 13.5,-5.5 + parent: 2 + - uid: 21990 + components: + - type: Transform + pos: 14.5,-5.5 + parent: 2 + - uid: 21991 + components: + - type: Transform + pos: 15.5,-5.5 + parent: 2 + - uid: 21992 + components: + - type: Transform + pos: 17.5,-2.5 + parent: 2 + - uid: 21993 + components: + - type: Transform + pos: 17.5,-4.5 + parent: 2 + - uid: 21994 + components: + - type: Transform + pos: 17.5,-5.5 + parent: 2 + - uid: 21995 + components: + - type: Transform + pos: 17.5,-6.5 + parent: 2 + - uid: 22001 + components: + - type: Transform + pos: 10.5,-9.5 + parent: 2 + - uid: 22002 + components: + - type: Transform + pos: 10.5,-11.5 + parent: 2 + - uid: 22003 + components: + - type: Transform + pos: 9.5,-11.5 + parent: 2 + - uid: 22004 + components: + - type: Transform + pos: 8.5,-11.5 + parent: 2 + - uid: 22005 + components: + - type: Transform + pos: 7.5,-11.5 + parent: 2 + - uid: 22006 + components: + - type: Transform + pos: 7.5,-10.5 + parent: 2 + - uid: 22021 + components: + - type: Transform + pos: 7.5,-12.5 + parent: 2 + - uid: 22022 + components: + - type: Transform + pos: 7.5,-13.5 + parent: 2 + - uid: 22023 + components: + - type: Transform + pos: 7.5,-14.5 + parent: 2 + - uid: 22024 + components: + - type: Transform + pos: 3.5,-12.5 + parent: 2 + - uid: 22025 + components: + - type: Transform + pos: 3.5,-13.5 + parent: 2 + - uid: 22026 + components: + - type: Transform + pos: 3.5,-14.5 + parent: 2 + - uid: 22027 + components: + - type: Transform + pos: 4.5,-14.5 + parent: 2 + - uid: 22028 + components: + - type: Transform + pos: 6.5,-14.5 + parent: 2 + - uid: 22029 + components: + - type: Transform + pos: 3.5,-15.5 + parent: 2 + - uid: 22034 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -1.5,-12.5 + parent: 2 + - uid: 22035 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -1.5,-13.5 + parent: 2 + - uid: 22036 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -1.5,-15.5 + parent: 2 + - uid: 22037 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -1.5,-16.5 + parent: 2 + - uid: 22038 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -1.5,-18.5 + parent: 2 + - uid: 22042 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -5.5,-10.5 + parent: 2 + - uid: 22043 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -5.5,-11.5 + parent: 2 + - uid: 22044 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -5.5,-12.5 + parent: 2 + - uid: 22045 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -5.5,-14.5 + parent: 2 + - uid: 22046 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -5.5,-15.5 + parent: 2 + - uid: 22047 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -4.5,-15.5 + parent: 2 + - uid: 22048 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -3.5,-15.5 + parent: 2 + - uid: 22049 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -2.5,-15.5 + parent: 2 + - uid: 22050 + components: + - type: Transform + pos: -8.5,-15.5 + parent: 2 + - uid: 22051 + components: + - type: Transform + pos: -9.5,-14.5 + parent: 2 + - uid: 22052 + components: + - type: Transform + pos: -9.5,-12.5 + parent: 2 + - uid: 22053 + components: + - type: Transform + pos: -6.5,-11.5 + parent: 2 + - uid: 22054 + components: + - type: Transform + pos: -8.5,-10.5 + parent: 2 + - uid: 22055 + components: + - type: Transform + pos: -10.5,-11.5 + parent: 2 + - uid: 22056 + components: + - type: Transform + pos: -13.5,-11.5 + parent: 2 + - uid: 22057 + components: + - type: Transform + pos: -14.5,-10.5 + parent: 2 + - uid: 22064 + components: + - type: Transform + pos: -7.5,-18.5 + parent: 2 + - uid: 22069 + components: + - type: Transform + pos: -11.5,-17.5 + parent: 2 + - uid: 22070 + components: + - type: Transform + pos: -8.5,-17.5 + parent: 2 + - uid: 22074 + components: + - type: Transform + pos: -16.5,-14.5 + parent: 2 + - uid: 22075 + components: + - type: Transform + pos: -15.5,-14.5 + parent: 2 + - uid: 22076 + components: + - type: Transform + pos: -11.5,-14.5 + parent: 2 + - uid: 22077 + components: + - type: Transform + pos: -16.5,-11.5 + parent: 2 + - uid: 22081 + components: + - type: Transform + pos: -21.5,-14.5 + parent: 2 + - uid: 22082 + components: + - type: Transform + pos: -21.5,-12.5 + parent: 2 + - uid: 22083 + components: + - type: Transform + pos: -21.5,-10.5 + parent: 2 + - uid: 22084 + components: + - type: Transform + pos: -17.5,-10.5 + parent: 2 + - uid: 22089 + components: + - type: Transform + pos: -25.5,-14.5 + parent: 2 + - uid: 22090 + components: + - type: Transform + pos: -25.5,-13.5 + parent: 2 + - uid: 22091 + components: + - type: Transform + pos: -25.5,-12.5 + parent: 2 + - uid: 22092 + components: + - type: Transform + pos: -25.5,-11.5 + parent: 2 + - uid: 22093 + components: + - type: Transform + pos: -25.5,-10.5 + parent: 2 + - uid: 22094 + components: + - type: Transform + pos: -24.5,-10.5 + parent: 2 + - uid: 22095 + components: + - type: Transform + pos: -25.5,-7.5 + parent: 2 + - uid: 22096 + components: + - type: Transform + pos: -23.5,-7.5 + parent: 2 + - uid: 22097 + components: + - type: Transform + pos: -21.5,-7.5 + parent: 2 + - uid: 22098 + components: + - type: Transform + pos: -22.5,-1.5 + parent: 2 + - uid: 22099 + components: + - type: Transform + pos: -19.5,-1.5 + parent: 2 + - uid: 22100 + components: + - type: Transform + pos: -27.5,-9.5 + parent: 2 + - uid: 22101 + components: + - type: Transform + pos: -28.5,-9.5 + parent: 2 + - uid: 22102 + components: + - type: Transform + pos: -29.5,-9.5 + parent: 2 + - uid: 22103 + components: + - type: Transform + pos: -30.5,-9.5 + parent: 2 + - uid: 22104 + components: + - type: Transform + pos: -31.5,-9.5 + parent: 2 + - uid: 22105 + components: + - type: Transform + pos: -26.5,-7.5 + parent: 2 + - uid: 22106 + components: + - type: Transform + pos: -28.5,-7.5 + parent: 2 + - uid: 22107 + components: + - type: Transform + pos: -30.5,-7.5 + parent: 2 + - uid: 22108 + components: + - type: Transform + pos: -31.5,-7.5 + parent: 2 + - uid: 22109 + components: + - type: Transform + pos: -31.5,-6.5 + parent: 2 + - uid: 22110 + components: + - type: Transform + pos: -31.5,-1.5 + parent: 2 + - uid: 22111 + components: + - type: Transform + pos: -31.5,-2.5 + parent: 2 + - uid: 22112 + components: + - type: Transform + pos: -30.5,-1.5 + parent: 2 + - uid: 22113 + components: + - type: Transform + pos: -28.5,-1.5 + parent: 2 + - uid: 22114 + components: + - type: Transform + pos: -23.5,-1.5 + parent: 2 + - uid: 22115 + components: + - type: Transform + pos: -23.5,-5.5 + parent: 2 + - uid: 22116 + components: + - type: Transform + pos: 15.5,-4.5 + parent: 2 + - uid: 22117 + components: + - type: Transform + pos: 15.5,-2.5 + parent: 2 + - uid: 22118 + components: + - type: Transform + pos: -19.5,3.5 + parent: 2 + - uid: 22119 + components: + - type: Transform + pos: -21.5,3.5 + parent: 2 + - uid: 22120 + components: + - type: Transform + pos: -24.5,9.5 + parent: 2 + - uid: 22121 + components: + - type: Transform + pos: -23.5,13.5 + parent: 2 + - uid: 22122 + components: + - type: Transform + pos: -22.5,13.5 + parent: 2 + - uid: 22123 + components: + - type: Transform + pos: -19.5,13.5 + parent: 2 + - uid: 22124 + components: + - type: Transform + pos: -21.5,13.5 + parent: 2 + - uid: 22125 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -29.5,14.5 + parent: 2 + - uid: 22126 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -27.5,14.5 + parent: 2 + - uid: 22127 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -24.5,14.5 + parent: 2 + - uid: 22128 + components: + - type: Transform + pos: -35.5,2.5 + parent: 2 + - uid: 22129 + components: + - type: Transform + pos: -35.5,3.5 + parent: 2 + - uid: 22130 + components: + - type: Transform + pos: -35.5,4.5 + parent: 2 + - uid: 22131 + components: + - type: Transform + pos: -35.5,5.5 + parent: 2 + - uid: 22132 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -36.5,5.5 + parent: 2 + - uid: 22133 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -40.5,5.5 + parent: 2 + - uid: 22134 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -41.5,5.5 + parent: 2 + - uid: 22135 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -42.5,5.5 + parent: 2 + - uid: 22136 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -43.5,5.5 + parent: 2 + - uid: 22137 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -45.5,5.5 + parent: 2 + - uid: 22138 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -45.5,6.5 + parent: 2 + - uid: 22139 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -45.5,7.5 + parent: 2 + - uid: 22140 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -45.5,12.5 + parent: 2 + - uid: 22141 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -45.5,13.5 + parent: 2 + - uid: 22142 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -35.5,-4.5 + parent: 2 + - uid: 22143 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -35.5,-5.5 + parent: 2 + - uid: 22144 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -35.5,-6.5 + parent: 2 + - uid: 22145 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -36.5,-6.5 + parent: 2 + - uid: 22146 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -40.5,-6.5 + parent: 2 + - uid: 22147 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -41.5,-6.5 + parent: 2 + - uid: 22148 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -42.5,-6.5 + parent: 2 + - uid: 22149 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -43.5,-6.5 + parent: 2 + - uid: 22150 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -44.5,-6.5 + parent: 2 + - uid: 22151 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -45.5,-6.5 + parent: 2 + - uid: 22152 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -43.5,-0.5 + parent: 2 + - uid: 22153 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -44.5,-0.5 + parent: 2 + - uid: 22154 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -45.5,-0.5 + parent: 2 + - uid: 22155 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -45.5,-7.5 + parent: 2 + - uid: 22156 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -41.5,-7.5 + parent: 2 + - uid: 22157 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -35.5,-7.5 + parent: 2 + - uid: 22158 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -35.5,-9.5 + parent: 2 + - uid: 22159 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -35.5,-10.5 + parent: 2 + - uid: 22160 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -35.5,-11.5 + parent: 2 + - uid: 22161 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -35.5,-12.5 + parent: 2 + - uid: 22162 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -35.5,-13.5 + parent: 2 + - uid: 22163 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -35.5,-14.5 + parent: 2 + - uid: 22164 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -36.5,-14.5 + parent: 2 + - uid: 22165 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -38.5,-14.5 + parent: 2 + - uid: 22166 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -39.5,-14.5 + parent: 2 + - uid: 22167 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -40.5,-14.5 + parent: 2 + - uid: 22168 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -41.5,-14.5 + parent: 2 + - uid: 22169 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -42.5,-14.5 + parent: 2 + - uid: 22170 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -43.5,-14.5 + parent: 2 + - uid: 22171 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -44.5,-14.5 + parent: 2 + - uid: 22172 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -45.5,-14.5 + parent: 2 + - uid: 22173 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -41.5,-13.5 + parent: 2 + - uid: 22174 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -45.5,-13.5 + parent: 2 + - uid: 22175 + components: + - type: Transform + pos: -31.5,-10.5 + parent: 2 + - uid: 22183 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -39.5,-15.5 + parent: 2 + - uid: 22184 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -45.5,14.5 + parent: 2 + - uid: 22185 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -45.5,15.5 + parent: 2 + - uid: 22186 + components: + - type: Transform + pos: -40.5,15.5 + parent: 2 + - uid: 22192 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -26.5,-19.5 + parent: 2 + - uid: 22193 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -25.5,-19.5 + parent: 2 + - uid: 22194 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -25.5,-18.5 + parent: 2 + - uid: 22195 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -25.5,-16.5 + parent: 2 + - uid: 22196 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -35.5,-15.5 + parent: 2 + - uid: 22197 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -35.5,-16.5 + parent: 2 + - uid: 22198 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -35.5,-17.5 + parent: 2 + - uid: 22199 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -35.5,-18.5 + parent: 2 + - uid: 22200 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -35.5,-20.5 + parent: 2 + - uid: 22201 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -35.5,-21.5 + parent: 2 + - uid: 22202 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -36.5,-21.5 + parent: 2 + - uid: 22203 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -38.5,-21.5 + parent: 2 + - uid: 22204 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -39.5,-21.5 + parent: 2 + - uid: 22205 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -39.5,-20.5 + parent: 2 + - uid: 22206 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -46.5,-14.5 + parent: 2 + - uid: 22207 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -47.5,-14.5 + parent: 2 + - uid: 22208 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -48.5,-14.5 + parent: 2 + - uid: 22209 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -49.5,-14.5 + parent: 2 + - uid: 22210 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -39.5,-22.5 + parent: 2 + - uid: 22211 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -39.5,-24.5 + parent: 2 + - uid: 22212 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -42.5,-24.5 + parent: 2 + - uid: 22213 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -44.5,-24.5 + parent: 2 + - uid: 22214 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -45.5,-24.5 + parent: 2 + - uid: 22215 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -46.5,-24.5 + parent: 2 + - uid: 22216 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -48.5,-24.5 + parent: 2 + - uid: 22217 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -49.5,-24.5 + parent: 2 + - uid: 22218 + components: + - type: Transform + pos: -35.5,-23.5 + parent: 2 + - uid: 22219 + components: + - type: Transform + pos: -35.5,-24.5 + parent: 2 + - uid: 22221 + components: + - type: Transform + pos: -43.5,-25.5 + parent: 2 + - uid: 22222 + components: + - type: Transform + pos: -43.5,-27.5 + parent: 2 + - uid: 22223 + components: + - type: Transform + pos: -47.5,-25.5 + parent: 2 + - uid: 22224 + components: + - type: Transform + pos: -47.5,-27.5 + parent: 2 + - uid: 22225 + components: + - type: Transform + pos: -49.5,-25.5 + parent: 2 + - uid: 22226 + components: + - type: Transform + pos: -49.5,-27.5 + parent: 2 + - uid: 22236 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -49.5,-28.5 + parent: 2 + - uid: 22248 + components: + - type: Transform + pos: -37.5,-34.5 + parent: 2 + - uid: 22256 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -31.5,-26.5 + parent: 2 + - uid: 22257 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -31.5,-27.5 + parent: 2 + - uid: 22258 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -31.5,-28.5 + parent: 2 + - uid: 22259 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -27.5,-26.5 + parent: 2 + - uid: 22260 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -27.5,-27.5 + parent: 2 + - uid: 22261 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -27.5,-28.5 + parent: 2 + - uid: 22262 + components: + - type: Transform + pos: -35.5,-34.5 + parent: 2 + - uid: 22263 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -28.5,-33.5 + parent: 2 + - uid: 22264 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -27.5,-33.5 + parent: 2 + - uid: 22265 + components: + - type: Transform + pos: -35.5,-35.5 + parent: 2 + - uid: 22271 + components: + - type: Transform + pos: -35.5,-40.5 + parent: 2 + - uid: 22272 + components: + - type: Transform + pos: -35.5,-41.5 + parent: 2 + - uid: 22280 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -23.5,-29.5 + parent: 2 + - uid: 22281 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -26.5,-25.5 + parent: 2 + - uid: 22282 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -25.5,-25.5 + parent: 2 + - uid: 22283 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -24.5,-25.5 + parent: 2 + - uid: 22284 + components: + - type: Transform + pos: -20.5,-25.5 + parent: 2 + - uid: 22285 + components: + - type: Transform + pos: -19.5,-25.5 + parent: 2 + - uid: 22286 + components: + - type: Transform + pos: -19.5,-19.5 + parent: 2 + - uid: 22287 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -14.5,-21.5 + parent: 2 + - uid: 22288 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -15.5,-21.5 + parent: 2 + - uid: 22289 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -17.5,-21.5 + parent: 2 + - uid: 22295 + components: + - type: Transform + pos: -22.5,-29.5 + parent: 2 + - uid: 22296 + components: + - type: Transform + pos: -20.5,-29.5 + parent: 2 + - uid: 22305 + components: + - type: Transform + pos: -9.5,-30.5 + parent: 2 + - uid: 22306 + components: + - type: Transform + pos: -9.5,-31.5 + parent: 2 + - uid: 22307 + components: + - type: Transform + pos: -9.5,-32.5 + parent: 2 + - uid: 22308 + components: + - type: Transform + pos: -9.5,-33.5 + parent: 2 + - uid: 22309 + components: + - type: Transform + pos: -9.5,-34.5 + parent: 2 + - uid: 22315 + components: + - type: Transform + pos: -41.5,-37.5 + parent: 2 + - uid: 22330 + components: + - type: Transform + pos: -21.5,-40.5 + parent: 2 + - uid: 22331 + components: + - type: Transform + pos: -23.5,-53.5 + parent: 2 + - uid: 22332 + components: + - type: Transform + pos: -22.5,-53.5 + parent: 2 + - uid: 22333 + components: + - type: Transform + pos: -22.5,-57.5 + parent: 2 + - uid: 22334 + components: + - type: Transform + pos: -24.5,-57.5 + parent: 2 + - uid: 22335 + components: + - type: Transform + pos: -27.5,-55.5 + parent: 2 + - uid: 22336 + components: + - type: Transform + pos: -32.5,-54.5 + parent: 2 + - uid: 22337 + components: + - type: Transform + pos: -32.5,-56.5 + parent: 2 + - uid: 22338 + components: + - type: Transform + pos: -31.5,-56.5 + parent: 2 + - uid: 22339 + components: + - type: Transform + pos: -29.5,-56.5 + parent: 2 + - uid: 22340 + components: + - type: Transform + pos: -33.5,-57.5 + parent: 2 + - uid: 22341 + components: + - type: Transform + pos: -36.5,-56.5 + parent: 2 + - uid: 22342 + components: + - type: Transform + pos: -36.5,-55.5 + parent: 2 + - uid: 22343 + components: + - type: Transform + pos: -38.5,-55.5 + parent: 2 + - uid: 22344 + components: + - type: Transform + pos: -37.5,-57.5 + parent: 2 + - uid: 22345 + components: + - type: Transform + pos: -37.5,-58.5 + parent: 2 + - uid: 22346 + components: + - type: Transform + pos: -37.5,-60.5 + parent: 2 + - uid: 22347 + components: + - type: Transform + pos: -36.5,-61.5 + parent: 2 + - uid: 22348 + components: + - type: Transform + pos: -34.5,-61.5 + parent: 2 + - uid: 22349 + components: + - type: Transform + pos: -25.5,-58.5 + parent: 2 + - uid: 22350 + components: + - type: Transform + pos: -26.5,-61.5 + parent: 2 + - uid: 22351 + components: + - type: Transform + pos: -28.5,-61.5 + parent: 2 + - uid: 22352 + components: + - type: Transform + pos: -33.5,-62.5 + parent: 2 + - uid: 22353 + components: + - type: Transform + pos: -37.5,-62.5 + parent: 2 + - uid: 22354 + components: + - type: Transform + pos: -37.5,-64.5 + parent: 2 + - uid: 22355 + components: + - type: Transform + pos: -34.5,-65.5 + parent: 2 + - uid: 22356 + components: + - type: Transform + pos: -32.5,-65.5 + parent: 2 + - uid: 22357 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -22.5,-61.5 + parent: 2 + - uid: 22358 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -22.5,-65.5 + parent: 2 + - uid: 22359 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -26.5,-65.5 + parent: 2 + - uid: 22360 + components: + - type: Transform + pos: -21.5,-66.5 + parent: 2 + - uid: 22361 + components: + - type: Transform + pos: -21.5,-68.5 + parent: 2 + - uid: 22362 + components: + - type: Transform + pos: -23.5,-69.5 + parent: 2 + - uid: 22363 + components: + - type: Transform + pos: -24.5,-67.5 + parent: 2 + - uid: 22364 + components: + - type: Transform + pos: -26.5,-68.5 + parent: 2 + - uid: 22365 + components: + - type: Transform + pos: -28.5,-68.5 + parent: 2 + - uid: 22366 + components: + - type: Transform + pos: -28.5,-67.5 + parent: 2 + - uid: 22367 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -8.5,-53.5 + parent: 2 + - uid: 22368 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -8.5,-51.5 + parent: 2 + - uid: 22369 + components: + - type: Transform + pos: -4.5,-53.5 + parent: 2 + - uid: 22370 + components: + - type: Transform + pos: -4.5,-52.5 + parent: 2 + - uid: 22371 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -4.5,-50.5 + parent: 2 + - uid: 22372 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -4.5,-49.5 + parent: 2 + - uid: 22373 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -3.5,-45.5 + parent: 2 + - uid: 22374 + components: + - type: Transform + pos: -3.5,-43.5 + parent: 2 + - uid: 22375 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -2.5,-43.5 + parent: 2 + - uid: 22376 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -1.5,-43.5 + parent: 2 + - uid: 22377 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 18.5,3.5 + parent: 2 + - uid: 22378 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 19.5,3.5 + parent: 2 + - uid: 22379 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 20.5,3.5 + parent: 2 + - uid: 22380 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 24.5,3.5 + parent: 2 + - uid: 22381 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 25.5,3.5 + parent: 2 + - uid: 22382 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 26.5,3.5 + parent: 2 + - uid: 22383 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 27.5,3.5 + parent: 2 + - uid: 22384 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 31.5,3.5 + parent: 2 + - uid: 22385 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 32.5,3.5 + parent: 2 + - uid: 22386 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 33.5,3.5 + parent: 2 + - uid: 22387 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 34.5,3.5 + parent: 2 + - uid: 22388 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 35.5,3.5 + parent: 2 + - uid: 22389 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 18.5,-1.5 + parent: 2 + - uid: 22390 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 19.5,-1.5 + parent: 2 + - uid: 22391 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 20.5,-1.5 + parent: 2 + - uid: 22392 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 21.5,-1.5 + parent: 2 + - uid: 22393 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 22.5,-1.5 + parent: 2 + - uid: 22394 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 24.5,-1.5 + parent: 2 + - uid: 22395 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 25.5,-1.5 + parent: 2 + - uid: 22396 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 26.5,-1.5 + parent: 2 + - uid: 22397 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 31.5,-1.5 + parent: 2 + - uid: 22398 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 32.5,-1.5 + parent: 2 + - uid: 22399 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 36.5,3.5 + parent: 2 + - uid: 22400 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 37.5,-1.5 + parent: 2 + - uid: 22401 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 37.5,-0.5 + parent: 2 + - uid: 22402 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 37.5,3.5 + parent: 2 + - uid: 22406 + components: + - type: Transform + pos: 23.5,-7.5 + parent: 2 + - uid: 22407 + components: + - type: Transform + pos: 24.5,-7.5 + parent: 2 + - uid: 22408 + components: + - type: Transform + pos: 25.5,-7.5 + parent: 2 + - uid: 22409 + components: + - type: Transform + pos: 25.5,-6.5 + parent: 2 + - uid: 22410 + components: + - type: Transform + pos: 26.5,-6.5 + parent: 2 + - uid: 22411 + components: + - type: Transform + pos: 26.5,-5.5 + parent: 2 + - uid: 22412 + components: + - type: Transform + pos: 26.5,-4.5 + parent: 2 + - uid: 22413 + components: + - type: Transform + pos: 26.5,-2.5 + parent: 2 + - uid: 22414 + components: + - type: Transform + pos: 20.5,-2.5 + parent: 2 + - uid: 22415 + components: + - type: Transform + pos: 20.5,-4.5 + parent: 2 + - uid: 22416 + components: + - type: Transform + pos: 27.5,-5.5 + parent: 2 + - uid: 22417 + components: + - type: Transform + pos: 28.5,-5.5 + parent: 2 + - uid: 22418 + components: + - type: Transform + pos: 29.5,-5.5 + parent: 2 + - uid: 22419 + components: + - type: Transform + pos: 30.5,-5.5 + parent: 2 + - uid: 22420 + components: + - type: Transform + pos: 31.5,-5.5 + parent: 2 + - uid: 22421 + components: + - type: Transform + pos: 31.5,-4.5 + parent: 2 + - uid: 22422 + components: + - type: Transform + pos: 31.5,-3.5 + parent: 2 + - uid: 22423 + components: + - type: Transform + pos: 31.5,-2.5 + parent: 2 + - uid: 22430 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 22.5,-13.5 + parent: 2 + - uid: 22431 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 24.5,-13.5 + parent: 2 + - uid: 22432 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 24.5,-12.5 + parent: 2 + - uid: 22433 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 24.5,-11.5 + parent: 2 + - uid: 22434 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 25.5,-11.5 + parent: 2 + - uid: 22435 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 25.5,-10.5 + parent: 2 + - uid: 22436 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 25.5,-9.5 + parent: 2 + - uid: 22437 + components: + - type: Transform + pos: 26.5,-10.5 + parent: 2 + - uid: 22438 + components: + - type: Transform + pos: 27.5,-10.5 + parent: 2 + - uid: 22439 + components: + - type: Transform + pos: 27.5,-9.5 + parent: 2 + - uid: 22440 + components: + - type: Transform + pos: 28.5,-9.5 + parent: 2 + - uid: 22441 + components: + - type: Transform + pos: 29.5,-9.5 + parent: 2 + - uid: 22442 + components: + - type: Transform + pos: 30.5,-9.5 + parent: 2 + - uid: 22443 + components: + - type: Transform + pos: 31.5,-9.5 + parent: 2 + - uid: 22444 + components: + - type: Transform + pos: 31.5,-8.5 + parent: 2 + - uid: 22445 + components: + - type: Transform + pos: 31.5,-6.5 + parent: 2 + - uid: 22449 + components: + - type: Transform + pos: 27.5,-12.5 + parent: 2 + - uid: 22450 + components: + - type: Transform + pos: 31.5,-10.5 + parent: 2 + - uid: 22455 + components: + - type: Transform + pos: 31.5,-12.5 + parent: 2 + - uid: 22456 + components: + - type: Transform + pos: 27.5,4.5 + parent: 2 + - uid: 22457 + components: + - type: Transform + pos: 31.5,4.5 + parent: 2 + - uid: 22458 + components: + - type: Transform + pos: 36.5,4.5 + parent: 2 + - uid: 22459 + components: + - type: Transform + pos: 22.5,12.5 + parent: 2 + - uid: 22460 + components: + - type: Transform + pos: 27.5,12.5 + parent: 2 + - uid: 22461 + components: + - type: Transform + pos: 26.5,12.5 + parent: 2 + - uid: 22462 + components: + - type: Transform + pos: 15.5,12.5 + parent: 2 + - uid: 22463 + components: + - type: Transform + pos: 15.5,15.5 + parent: 2 + - uid: 22465 + components: + - type: Transform + pos: 18.5,15.5 + parent: 2 + - uid: 22466 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 19.5,15.5 + parent: 2 + - uid: 22467 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 27.5,17.5 + parent: 2 + - uid: 22468 + components: + - type: Transform + pos: 27.5,15.5 + parent: 2 + - uid: 22469 + components: + - type: Transform + pos: 14.5,18.5 + parent: 2 + - uid: 22470 + components: + - type: Transform + pos: 15.5,19.5 + parent: 2 + - uid: 22471 + components: + - type: Transform + pos: 16.5,19.5 + parent: 2 + - uid: 22472 + components: + - type: Transform + pos: 17.5,19.5 + parent: 2 + - uid: 22473 + components: + - type: Transform + pos: 18.5,19.5 + parent: 2 + - uid: 22474 + components: + - type: Transform + pos: 18.5,18.5 + parent: 2 + - uid: 22475 + components: + - type: Transform + pos: 18.5,17.5 + parent: 2 + - uid: 22476 + components: + - type: Transform + pos: 18.5,16.5 + parent: 2 + - uid: 22477 + components: + - type: Transform + pos: 19.5,19.5 + parent: 2 + - uid: 22478 + components: + - type: Transform + pos: 20.5,19.5 + parent: 2 + - uid: 22479 + components: + - type: Transform + pos: 20.5,20.5 + parent: 2 + - uid: 22480 + components: + - type: Transform + pos: 21.5,20.5 + parent: 2 + - uid: 22481 + components: + - type: Transform + pos: 27.5,18.5 + parent: 2 + - uid: 22482 + components: + - type: Transform + pos: 27.5,19.5 + parent: 2 + - uid: 22483 + components: + - type: Transform + pos: 27.5,20.5 + parent: 2 + - uid: 22484 + components: + - type: Transform + pos: 26.5,20.5 + parent: 2 + - uid: 22485 + components: + - type: Transform + pos: 25.5,20.5 + parent: 2 + - uid: 22489 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 20.5,21.5 + parent: 2 + - uid: 22490 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 20.5,22.5 + parent: 2 + - uid: 22491 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 20.5,23.5 + parent: 2 + - uid: 22492 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 20.5,24.5 + parent: 2 + - uid: 22493 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 27.5,21.5 + parent: 2 + - uid: 22494 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 27.5,22.5 + parent: 2 + - uid: 22495 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 27.5,23.5 + parent: 2 + - uid: 22496 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 27.5,24.5 + parent: 2 + - uid: 22497 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 22.5,24.5 + parent: 2 + - uid: 22498 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 24.5,24.5 + parent: 2 + - uid: 22499 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 25.5,24.5 + parent: 2 + - uid: 22500 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 26.5,24.5 + parent: 2 + - uid: 22501 + components: + - type: Transform + pos: 32.5,12.5 + parent: 2 + - uid: 22502 + components: + - type: Transform + pos: 31.5,12.5 + parent: 2 + - uid: 22503 + components: + - type: Transform + pos: 35.5,12.5 + parent: 2 + - uid: 22504 + components: + - type: Transform + pos: 36.5,12.5 + parent: 2 + - uid: 22505 + components: + - type: Transform + pos: 36.5,11.5 + parent: 2 + - uid: 22506 + components: + - type: Transform + pos: 36.5,10.5 + parent: 2 + - uid: 22507 + components: + - type: Transform + pos: 36.5,9.5 + parent: 2 + - uid: 22508 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 31.5,13.5 + parent: 2 + - uid: 22509 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 31.5,21.5 + parent: 2 + - uid: 22510 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 31.5,20.5 + parent: 2 + - uid: 22511 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 31.5,19.5 + parent: 2 + - uid: 22512 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 31.5,18.5 + parent: 2 + - uid: 22514 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 32.5,21.5 + parent: 2 + - uid: 22515 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 33.5,21.5 + parent: 2 + - uid: 22516 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 34.5,21.5 + parent: 2 + - uid: 22517 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 35.5,21.5 + parent: 2 + - uid: 22518 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 35.5,20.5 + parent: 2 + - uid: 22519 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 36.5,20.5 + parent: 2 + - uid: 22520 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 37.5,20.5 + parent: 2 + - uid: 22521 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 38.5,20.5 + parent: 2 + - uid: 22522 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 39.5,20.5 + parent: 2 + - uid: 22523 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 39.5,19.5 + parent: 2 + - uid: 22524 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 39.5,16.5 + parent: 2 + - uid: 22525 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 39.5,15.5 + parent: 2 + - uid: 22526 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 39.5,14.5 + parent: 2 + - uid: 22527 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 39.5,13.5 + parent: 2 + - uid: 22528 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 39.5,12.5 + parent: 2 + - uid: 22529 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 39.5,11.5 + parent: 2 + - uid: 22530 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 38.5,11.5 + parent: 2 + - uid: 22531 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 37.5,11.5 + parent: 2 + - uid: 22532 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 40.5,20.5 + parent: 2 + - uid: 22533 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 41.5,20.5 + parent: 2 + - uid: 22534 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 43.5,20.5 + parent: 2 + - uid: 22535 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 44.5,20.5 + parent: 2 + - uid: 22536 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 44.5,19.5 + parent: 2 + - uid: 22537 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 40.5,16.5 + parent: 2 + - uid: 22538 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 41.5,16.5 + parent: 2 + - uid: 22539 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 42.5,16.5 + parent: 2 + - uid: 22540 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 43.5,16.5 + parent: 2 + - uid: 22541 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 44.5,16.5 + parent: 2 + - uid: 22542 + components: + - type: Transform + pos: 44.5,15.5 + parent: 2 + - uid: 22543 + components: + - type: Transform + pos: 44.5,12.5 + parent: 2 + - uid: 22544 + components: + - type: Transform + pos: 44.5,11.5 + parent: 2 + - uid: 22545 + components: + - type: Transform + pos: 43.5,11.5 + parent: 2 + - uid: 22546 + components: + - type: Transform + pos: 40.5,11.5 + parent: 2 + - uid: 22547 + components: + - type: Transform + pos: 38.5,-1.5 + parent: 2 + - uid: 22548 + components: + - type: Transform + pos: 39.5,-1.5 + parent: 2 + - uid: 22549 + components: + - type: Transform + pos: 40.5,-1.5 + parent: 2 + - uid: 22550 + components: + - type: Transform + pos: 41.5,-1.5 + parent: 2 + - uid: 22551 + components: + - type: Transform + pos: 41.5,-2.5 + parent: 2 + - uid: 22552 + components: + - type: Transform + pos: 42.5,-2.5 + parent: 2 + - uid: 22553 + components: + - type: Transform + pos: 43.5,-2.5 + parent: 2 + - uid: 22554 + components: + - type: Transform + pos: 44.5,-2.5 + parent: 2 + - uid: 22555 + components: + - type: Transform + pos: 45.5,-2.5 + parent: 2 + - uid: 22556 + components: + - type: Transform + pos: 45.5,-1.5 + parent: 2 + - uid: 22557 + components: + - type: Transform + pos: 45.5,0.5 + parent: 2 + - uid: 22558 + components: + - type: Transform + pos: 45.5,1.5 + parent: 2 + - uid: 22559 + components: + - type: Transform + pos: 44.5,1.5 + parent: 2 + - uid: 22560 + components: + - type: Transform + pos: 43.5,1.5 + parent: 2 + - uid: 22561 + components: + - type: Transform + pos: 42.5,1.5 + parent: 2 + - uid: 22562 + components: + - type: Transform + pos: 41.5,0.5 + parent: 2 + - uid: 22563 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 44.5,2.5 + parent: 2 + - uid: 22564 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 44.5,3.5 + parent: 2 + - uid: 22565 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 44.5,10.5 + parent: 2 + - uid: 22566 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 43.5,10.5 + parent: 2 + - uid: 22567 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 41.5,21.5 + parent: 2 + - uid: 22568 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 41.5,22.5 + parent: 2 + - uid: 22569 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 41.5,23.5 + parent: 2 + - uid: 22570 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 41.5,24.5 + parent: 2 + - uid: 22571 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 41.5,25.5 + parent: 2 + - uid: 22572 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 42.5,25.5 + parent: 2 + - uid: 22573 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 44.5,25.5 + parent: 2 + - uid: 22574 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 44.5,24.5 + parent: 2 + - uid: 22575 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 45.5,20.5 + parent: 2 + - uid: 22576 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 45.5,21.5 + parent: 2 + - uid: 22577 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 45.5,22.5 + parent: 2 + - uid: 22578 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 44.5,22.5 + parent: 2 + - uid: 22579 + components: + - type: Transform + pos: 45.5,25.5 + parent: 2 + - uid: 22580 + components: + - type: Transform + pos: 46.5,25.5 + parent: 2 + - uid: 22581 + components: + - type: Transform + pos: 47.5,25.5 + parent: 2 + - uid: 22582 + components: + - type: Transform + pos: 47.5,24.5 + parent: 2 + - uid: 22583 + components: + - type: Transform + pos: 48.5,24.5 + parent: 2 + - uid: 22584 + components: + - type: Transform + pos: 49.5,24.5 + parent: 2 + - uid: 22585 + components: + - type: Transform + pos: 49.5,22.5 + parent: 2 + - uid: 22586 + components: + - type: Transform + pos: 48.5,22.5 + parent: 2 + - uid: 22587 + components: + - type: Transform + pos: 47.5,22.5 + parent: 2 + - uid: 22588 + components: + - type: Transform + pos: 47.5,21.5 + parent: 2 + - uid: 22589 + components: + - type: Transform + pos: 47.5,20.5 + parent: 2 + - uid: 22590 + components: + - type: Transform + pos: 46.5,20.5 + parent: 2 + - uid: 22591 + components: + - type: Transform + pos: 35.5,22.5 + parent: 2 + - uid: 22592 + components: + - type: Transform + pos: 35.5,23.5 + parent: 2 + - uid: 22593 + components: + - type: Transform + pos: 35.5,24.5 + parent: 2 + - uid: 22594 + components: + - type: Transform + pos: 35.5,25.5 + parent: 2 + - uid: 22595 + components: + - type: Transform + pos: 36.5,25.5 + parent: 2 + - uid: 22596 + components: + - type: Transform + pos: 37.5,25.5 + parent: 2 + - uid: 22597 + components: + - type: Transform + pos: 39.5,25.5 + parent: 2 + - uid: 22598 + components: + - type: Transform + pos: 40.5,25.5 + parent: 2 + - uid: 22599 + components: + - type: Transform + pos: 40.5,23.5 + parent: 2 + - uid: 22600 + components: + - type: Transform + pos: 39.5,23.5 + parent: 2 + - uid: 22601 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 34.5,25.5 + parent: 2 + - uid: 22602 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 33.5,25.5 + parent: 2 + - uid: 22603 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 32.5,25.5 + parent: 2 + - uid: 22604 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 31.5,25.5 + parent: 2 + - uid: 22605 + components: + - type: Transform + pos: 18.5,24.5 + parent: 2 + - uid: 22606 + components: + - type: Transform + pos: 14.5,20.5 + parent: 2 + - uid: 22607 + components: + - type: Transform + pos: 14.5,23.5 + parent: 2 + - uid: 22608 + components: + - type: Transform + pos: 10.5,23.5 + parent: 2 + - uid: 22609 + components: + - type: Transform + pos: 11.5,23.5 + parent: 2 + - uid: 22612 + components: + - type: Transform + pos: 15.5,27.5 + parent: 2 + - uid: 22614 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 17.5,28.5 + parent: 2 + - uid: 22615 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 18.5,28.5 + parent: 2 + - uid: 22616 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 19.5,28.5 + parent: 2 + - uid: 22617 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 20.5,28.5 + parent: 2 + - uid: 22618 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 21.5,28.5 + parent: 2 + - uid: 22619 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 22.5,28.5 + parent: 2 + - uid: 22620 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 23.5,28.5 + parent: 2 + - uid: 22621 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 24.5,28.5 + parent: 2 + - uid: 22622 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 25.5,28.5 + parent: 2 + - uid: 22623 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 26.5,28.5 + parent: 2 + - uid: 22624 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 27.5,28.5 + parent: 2 + - uid: 22625 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 27.5,27.5 + parent: 2 + - uid: 22626 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 27.5,25.5 + parent: 2 + - uid: 22627 + components: + - type: Transform + pos: 41.5,26.5 + parent: 2 + - uid: 22628 + components: + - type: Transform + pos: 45.5,26.5 + parent: 2 + - uid: 22629 + components: + - type: Transform + pos: 41.5,30.5 + parent: 2 + - uid: 22630 + components: + - type: Transform + pos: 31.5,31.5 + parent: 2 + - uid: 22631 + components: + - type: Transform + pos: 33.5,31.5 + parent: 2 + - uid: 22632 + components: + - type: Transform + pos: 35.5,31.5 + parent: 2 + - uid: 22633 + components: + - type: Transform + pos: 37.5,31.5 + parent: 2 + - uid: 22634 + components: + - type: Transform + pos: 39.5,31.5 + parent: 2 + - uid: 22635 + components: + - type: Transform + pos: 41.5,31.5 + parent: 2 + - uid: 22636 + components: + - type: Transform + pos: 27.5,34.5 + parent: 2 + - uid: 22637 + components: + - type: Transform + pos: 26.5,34.5 + parent: 2 + - uid: 22638 + components: + - type: Transform + pos: 26.5,29.5 + parent: 2 + - uid: 22639 + components: + - type: Transform + pos: 26.5,33.5 + parent: 2 + - uid: 22644 + components: + - type: Transform + pos: 16.5,33.5 + parent: 2 + - uid: 22645 + components: + - type: Transform + pos: 16.5,34.5 + parent: 2 + - uid: 22646 + components: + - type: Transform + pos: 17.5,34.5 + parent: 2 + - uid: 22647 + components: + - type: Transform + pos: 18.5,34.5 + parent: 2 + - uid: 22648 + components: + - type: Transform + pos: 22.5,40.5 + parent: 2 + - uid: 22649 + components: + - type: Transform + pos: 25.5,34.5 + parent: 2 + - uid: 22650 + components: + - type: Transform + pos: 24.5,34.5 + parent: 2 + - uid: 22651 + components: + - type: Transform + pos: 23.5,34.5 + parent: 2 + - uid: 22652 + components: + - type: Transform + pos: 22.5,34.5 + parent: 2 + - uid: 22653 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 16.5,35.5 + parent: 2 + - uid: 22654 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 16.5,36.5 + parent: 2 + - uid: 22655 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 18.5,36.5 + parent: 2 + - uid: 22656 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 18.5,37.5 + parent: 2 + - uid: 22657 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 22.5,35.5 + parent: 2 + - uid: 22658 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 22.5,36.5 + parent: 2 + - uid: 22659 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 22.5,37.5 + parent: 2 + - uid: 22660 + components: + - type: Transform + pos: 22.5,38.5 + parent: 2 + - uid: 22661 + components: + - type: Transform + pos: 22.5,39.5 + parent: 2 + - uid: 22662 + components: + - type: Transform + pos: 22.5,41.5 + parent: 2 + - uid: 22663 + components: + - type: Transform + pos: 21.5,41.5 + parent: 2 + - uid: 22664 + components: + - type: Transform + pos: 19.5,41.5 + parent: 2 + - uid: 22665 + components: + - type: Transform + pos: 18.5,41.5 + parent: 2 + - uid: 22666 + components: + - type: Transform + pos: 18.5,38.5 + parent: 2 + - uid: 22667 + components: + - type: Transform + pos: 18.5,40.5 + parent: 2 + - uid: 22668 + components: + - type: Transform + pos: 16.5,37.5 + parent: 2 + - uid: 22669 + components: + - type: Transform + pos: 15.5,37.5 + parent: 2 + - uid: 22670 + components: + - type: Transform + pos: 13.5,37.5 + parent: 2 + - uid: 22672 + components: + - type: Transform + pos: 17.5,41.5 + parent: 2 + - uid: 22673 + components: + - type: Transform + pos: 16.5,41.5 + parent: 2 + - uid: 22674 + components: + - type: Transform + pos: 14.5,41.5 + parent: 2 + - uid: 22675 + components: + - type: Transform + pos: 13.5,41.5 + parent: 2 + - uid: 22683 + components: + - type: Transform + pos: 13.5,32.5 + parent: 2 + - uid: 22684 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 17.5,15.5 + parent: 2 + - uid: 22686 + components: + - type: Transform + pos: 14.5,34.5 + parent: 2 + - uid: 22687 + components: + - type: Transform + pos: 15.5,34.5 + parent: 2 + - uid: 22688 + components: + - type: Transform + pos: 15.5,32.5 + parent: 2 + - uid: 22691 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 16.5,42.5 + parent: 2 + - uid: 22692 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 16.5,44.5 + parent: 2 + - uid: 22693 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 16.5,45.5 + parent: 2 + - uid: 22694 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 15.5,45.5 + parent: 2 + - uid: 22695 + components: + - type: Transform + pos: 17.5,45.5 + parent: 2 + - uid: 22696 + components: + - type: Transform + pos: 24.5,42.5 + parent: 2 + - uid: 22697 + components: + - type: Transform + pos: 24.5,43.5 + parent: 2 + - uid: 22698 + components: + - type: Transform + pos: 24.5,44.5 + parent: 2 + - uid: 22699 + components: + - type: Transform + pos: 24.5,45.5 + parent: 2 + - uid: 22700 + components: + - type: Transform + pos: 24.5,41.5 + parent: 2 + - uid: 22701 + components: + - type: Transform + pos: 23.5,41.5 + parent: 2 + - uid: 22702 + components: + - type: Transform + pos: 23.5,45.5 + parent: 2 + - uid: 22703 + components: + - type: Transform + pos: 17.5,46.5 + parent: 2 + - uid: 22704 + components: + - type: Transform + pos: 18.5,46.5 + parent: 2 + - uid: 22705 + components: + - type: Transform + pos: 23.5,46.5 + parent: 2 + - uid: 22706 + components: + - type: Transform + pos: 22.5,46.5 + parent: 2 + - uid: 22707 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 27.5,35.5 + parent: 2 + - uid: 22708 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 27.5,37.5 + parent: 2 + - uid: 22709 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 26.5,37.5 + parent: 2 + - uid: 22710 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 25.5,37.5 + parent: 2 + - uid: 22711 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 24.5,37.5 + parent: 2 + - uid: 22712 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 23.5,37.5 + parent: 2 + - uid: 22713 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 27.5,38.5 + parent: 2 + - uid: 22714 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 27.5,40.5 + parent: 2 + - uid: 22715 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 27.5,41.5 + parent: 2 + - uid: 22716 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 28.5,40.5 + parent: 2 + - uid: 22717 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 30.5,40.5 + parent: 2 + - uid: 22718 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 31.5,40.5 + parent: 2 + - uid: 22719 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 31.5,39.5 + parent: 2 + - uid: 22720 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 31.5,37.5 + parent: 2 + - uid: 22721 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 31.5,36.5 + parent: 2 + - uid: 22722 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 31.5,32.5 + parent: 2 + - uid: 22723 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 31.5,33.5 + parent: 2 + - uid: 22724 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 31.5,34.5 + parent: 2 + - uid: 22725 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 27.5,42.5 + parent: 2 + - uid: 22726 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 28.5,42.5 + parent: 2 + - uid: 22727 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 31.5,41.5 + parent: 2 + - uid: 22728 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 31.5,42.5 + parent: 2 + - uid: 22729 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 30.5,42.5 + parent: 2 + - uid: 22730 + components: + - type: Transform + pos: 45.5,30.5 + parent: 2 + - uid: 22731 + components: + - type: Transform + pos: 45.5,31.5 + parent: 2 + - uid: 22732 + components: + - type: Transform + pos: 45.5,33.5 + parent: 2 + - uid: 22733 + components: + - type: Transform + pos: 45.5,40.5 + parent: 2 + - uid: 22734 + components: + - type: Transform + pos: 45.5,41.5 + parent: 2 + - uid: 22735 + components: + - type: Transform + pos: 47.5,38.5 + parent: 2 + - uid: 22736 + components: + - type: Transform + pos: 41.5,43.5 + parent: 2 + - uid: 22737 + components: + - type: Transform + pos: 41.5,44.5 + parent: 2 + - uid: 22738 + components: + - type: Transform + pos: 41.5,45.5 + parent: 2 + - uid: 22739 + components: + - type: Transform + pos: 41.5,46.5 + parent: 2 + - uid: 22740 + components: + - type: Transform + pos: 41.5,47.5 + parent: 2 + - uid: 22741 + components: + - type: Transform + pos: 45.5,46.5 + parent: 2 + - uid: 22742 + components: + - type: Transform + pos: 45.5,47.5 + parent: 2 + - uid: 22743 + components: + - type: Transform + pos: 41.5,48.5 + parent: 2 + - uid: 22744 + components: + - type: Transform + pos: 41.5,49.5 + parent: 2 + - uid: 22745 + components: + - type: Transform + pos: 45.5,48.5 + parent: 2 + - uid: 22746 + components: + - type: Transform + pos: 45.5,49.5 + parent: 2 + - uid: 22747 + components: + - type: Transform + pos: 46.5,31.5 + parent: 2 + - uid: 22748 + components: + - type: Transform + pos: 47.5,31.5 + parent: 2 + - uid: 22749 + components: + - type: Transform + pos: 47.5,33.5 + parent: 2 + - uid: 22750 + components: + - type: Transform + pos: 46.5,33.5 + parent: 2 + - uid: 22751 + components: + - type: Transform + pos: 47.5,40.5 + parent: 2 + - uid: 22752 + components: + - type: Transform + pos: 46.5,40.5 + parent: 2 + - uid: 22753 + components: + - type: Transform + pos: 45.5,38.5 + parent: 2 + - uid: 22754 + components: + - type: Transform + pos: 46.5,38.5 + parent: 2 + - uid: 22755 + components: + - type: Transform + pos: 36.5,-7.5 + parent: 2 + - uid: 22756 + components: + - type: Transform + pos: 36.5,-8.5 + parent: 2 + - uid: 22757 + components: + - type: Transform + pos: 39.5,-7.5 + parent: 2 + - uid: 22758 + components: + - type: Transform + pos: 39.5,-8.5 + parent: 2 + - uid: 22766 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 45.5,-9.5 + parent: 2 + - uid: 22767 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 45.5,-5.5 + parent: 2 + - uid: 22768 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 45.5,-3.5 + parent: 2 + - uid: 22769 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 46.5,-11.5 + parent: 2 + - uid: 22770 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 46.5,-5.5 + parent: 2 + - uid: 22771 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 46.5,-3.5 + parent: 2 + - uid: 22772 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 47.5,-3.5 + parent: 2 + - uid: 22773 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -23.5,14.5 + parent: 2 + - uid: 22774 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -23.5,15.5 + parent: 2 + - uid: 22775 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -23.5,17.5 + parent: 2 + - uid: 22776 + components: + - type: Transform + pos: -26.5,15.5 + parent: 2 + - uid: 22777 + components: + - type: Transform + pos: -26.5,17.5 + parent: 2 + - uid: 22778 + components: + - type: Transform + pos: -26.5,18.5 + parent: 2 + - uid: 22779 + components: + - type: Transform + pos: -27.5,18.5 + parent: 2 + - uid: 22780 + components: + - type: Transform + pos: -29.5,18.5 + parent: 2 + - uid: 22781 + components: + - type: Transform + pos: -30.5,19.5 + parent: 2 + - uid: 22782 + components: + - type: Transform + pos: -30.5,21.5 + parent: 2 + - uid: 22783 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -28.5,18.5 + parent: 2 + - uid: 22785 + components: + - type: Transform + pos: -18.5,23.5 + parent: 2 + - uid: 22786 + components: + - type: Transform + pos: -19.5,23.5 + parent: 2 + - uid: 22787 + components: + - type: Transform + pos: -20.5,23.5 + parent: 2 + - uid: 22788 + components: + - type: Transform + pos: -21.5,23.5 + parent: 2 + - uid: 22789 + components: + - type: Transform + pos: -17.5,23.5 + parent: 2 + - uid: 22790 + components: + - type: Transform + pos: -17.5,22.5 + parent: 2 + - uid: 22791 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -21.5,26.5 + parent: 2 + - uid: 22792 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -17.5,24.5 + parent: 2 + - uid: 22793 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -17.5,26.5 + parent: 2 + - uid: 22794 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -18.5,26.5 + parent: 2 + - uid: 22795 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -10.5,22.5 + parent: 2 + - uid: 22796 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -10.5,23.5 + parent: 2 + - uid: 22797 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -10.5,24.5 + parent: 2 + - uid: 22798 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -10.5,25.5 + parent: 2 + - uid: 22799 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -4.5,22.5 + parent: 2 + - uid: 22800 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -4.5,23.5 + parent: 2 + - uid: 22801 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -4.5,24.5 + parent: 2 + - uid: 22802 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -4.5,25.5 + parent: 2 + - uid: 22803 + components: + - type: Transform + pos: -10.5,30.5 + parent: 2 + - uid: 22804 + components: + - type: Transform + pos: -9.5,30.5 + parent: 2 + - uid: 22805 + components: + - type: Transform + pos: -8.5,30.5 + parent: 2 + - uid: 22806 + components: + - type: Transform + pos: -7.5,30.5 + parent: 2 + - uid: 22807 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -6.5,31.5 + parent: 2 + - uid: 22808 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -7.5,31.5 + parent: 2 + - uid: 22809 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -5.5,31.5 + parent: 2 + - uid: 22810 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -18.5,30.5 + parent: 2 + - uid: 22811 + components: + - type: Transform + pos: -20.5,30.5 + parent: 2 + - uid: 22812 + components: + - type: Transform + pos: -21.5,30.5 + parent: 2 + - uid: 22813 + components: + - type: Transform + pos: -21.5,31.5 + parent: 2 + - uid: 22814 + components: + - type: Transform + pos: -21.5,32.5 + parent: 2 + - uid: 22815 + components: + - type: Transform + pos: -21.5,33.5 + parent: 2 + - uid: 22816 + components: + - type: Transform + pos: -21.5,34.5 + parent: 2 + - uid: 22817 + components: + - type: Transform + pos: -21.5,35.5 + parent: 2 + - uid: 22818 + components: + - type: Transform + pos: -21.5,36.5 + parent: 2 + - uid: 22819 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -30.5,31.5 + parent: 2 + - uid: 22820 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -29.5,31.5 + parent: 2 + - uid: 22821 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -28.5,31.5 + parent: 2 + - uid: 22822 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -27.5,31.5 + parent: 2 + - uid: 22823 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -26.5,31.5 + parent: 2 + - uid: 22824 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -25.5,31.5 + parent: 2 + - uid: 22825 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -25.5,32.5 + parent: 2 + - uid: 22826 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -25.5,33.5 + parent: 2 + - uid: 22827 + components: + - type: Transform + pos: -32.5,34.5 + parent: 2 + - uid: 22828 + components: + - type: Transform + pos: -33.5,34.5 + parent: 2 + - uid: 22829 + components: + - type: Transform + pos: -34.5,34.5 + parent: 2 + - uid: 22830 + components: + - type: Transform + pos: -35.5,34.5 + parent: 2 + - uid: 22831 + components: + - type: Transform + pos: -32.5,37.5 + parent: 2 + - uid: 22832 + components: + - type: Transform + pos: -33.5,37.5 + parent: 2 + - uid: 22833 + components: + - type: Transform + pos: -34.5,37.5 + parent: 2 + - uid: 22834 + components: + - type: Transform + pos: -35.5,37.5 + parent: 2 + - uid: 22836 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 23.5,20.5 + parent: 2 + - uid: 22839 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 31.5,17.5 + parent: 2 + - uid: 22842 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -1.5,43.5 + parent: 2 + - uid: 22843 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -1.5,44.5 + parent: 2 + - uid: 22844 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -1.5,45.5 + parent: 2 + - uid: 22850 + components: + - type: Transform + pos: -12.5,45.5 + parent: 2 + - uid: 22851 + components: + - type: Transform + pos: -12.5,46.5 + parent: 2 + - uid: 22852 + components: + - type: Transform + pos: -12.5,48.5 + parent: 2 + - uid: 22853 + components: + - type: Transform + pos: 41.5,-19.5 + parent: 2 + - uid: 22854 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 15.5,-12.5 + parent: 2 + - uid: 22855 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 16.5,-12.5 + parent: 2 + - uid: 22856 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 20.5,-17.5 + parent: 2 + - uid: 22857 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 19.5,-17.5 + parent: 2 + - uid: 22858 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 18.5,-17.5 + parent: 2 + - uid: 22859 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 17.5,-17.5 + parent: 2 + - uid: 22860 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 16.5,-17.5 + parent: 2 + - uid: 22861 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 15.5,-17.5 + parent: 2 + - uid: 22862 + components: + - type: Transform + pos: 15.5,-18.5 + parent: 2 + - uid: 22863 + components: + - type: Transform + pos: 15.5,-19.5 + parent: 2 + - uid: 22864 + components: + - type: Transform + pos: 15.5,-20.5 + parent: 2 + - uid: 22865 + components: + - type: Transform + pos: 15.5,-21.5 + parent: 2 + - uid: 22866 + components: + - type: Transform + pos: 16.5,-21.5 + parent: 2 + - uid: 22867 + components: + - type: Transform + pos: 20.5,-21.5 + parent: 2 + - uid: 22868 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 35.5,-14.5 + parent: 2 + - uid: 22869 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 35.5,-15.5 + parent: 2 + - uid: 22870 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 35.5,-16.5 + parent: 2 + - uid: 22871 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 35.5,-17.5 + parent: 2 + - uid: 22872 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 35.5,-18.5 + parent: 2 + - uid: 22873 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 35.5,-19.5 + parent: 2 + - uid: 22874 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 35.5,-20.5 + parent: 2 + - uid: 22875 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 35.5,-21.5 + parent: 2 + - uid: 22876 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 35.5,-22.5 + parent: 2 + - uid: 22877 + components: + - type: Transform + pos: 40.5,-19.5 + parent: 2 + - uid: 22878 + components: + - type: Transform + pos: 39.5,-19.5 + parent: 2 + - uid: 22879 + components: + - type: Transform + pos: 39.5,-18.5 + parent: 2 + - uid: 22880 + components: + - type: Transform + pos: 39.5,-14.5 + parent: 2 + - uid: 22884 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 35.5,-35.5 + parent: 2 + - uid: 22885 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 33.5,-35.5 + parent: 2 + - uid: 22886 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 33.5,-34.5 + parent: 2 + - uid: 22903 + components: + - type: Transform + pos: 24.5,-32.5 + parent: 2 + - uid: 22904 + components: + - type: Transform + pos: 24.5,-31.5 + parent: 2 + - uid: 22905 + components: + - type: Transform + pos: 24.5,-30.5 + parent: 2 + - uid: 22906 + components: + - type: Transform + pos: 24.5,-29.5 + parent: 2 + - uid: 22907 + components: + - type: Transform + pos: 24.5,-28.5 + parent: 2 + - uid: 22908 + components: + - type: Transform + pos: 24.5,-27.5 + parent: 2 + - uid: 22909 + components: + - type: Transform + pos: 24.5,-26.5 + parent: 2 + - uid: 22910 + components: + - type: Transform + pos: 25.5,-26.5 + parent: 2 + - uid: 22911 + components: + - type: Transform + pos: 28.5,-26.5 + parent: 2 + - uid: 22912 + components: + - type: Transform + pos: 29.5,-26.5 + parent: 2 + - uid: 22913 + components: + - type: Transform + pos: 30.5,-26.5 + parent: 2 + - uid: 22914 + components: + - type: Transform + pos: 32.5,-26.5 + parent: 2 + - uid: 22915 + components: + - type: Transform + pos: 23.5,-29.5 + parent: 2 + - uid: 22916 + components: + - type: Transform + pos: 22.5,-29.5 + parent: 2 + - uid: 22917 + components: + - type: Transform + pos: 21.5,-29.5 + parent: 2 + - uid: 22918 + components: + - type: Transform + pos: 20.5,-29.5 + parent: 2 + - uid: 22927 + components: + - type: Transform + pos: 15.5,-29.5 + parent: 2 + - uid: 22928 + components: + - type: Transform + pos: 16.5,-29.5 + parent: 2 + - uid: 22943 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 11.5,-29.5 + parent: 2 + - uid: 22945 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 7.5,-18.5 + parent: 2 + - uid: 22948 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 3.5,-27.5 + parent: 2 + - uid: 22949 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 3.5,-26.5 + parent: 2 + - uid: 22950 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 3.5,-22.5 + parent: 2 + - uid: 22951 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 3.5,-21.5 + parent: 2 + - uid: 22958 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 20.5,-26.5 + parent: 2 + - uid: 22959 + components: + - type: Transform + pos: 3.5,-34.5 + parent: 2 + - uid: 22960 + components: + - type: Transform + pos: 3.5,-36.5 + parent: 2 + - uid: 22961 + components: + - type: Transform + pos: 3.5,-37.5 + parent: 2 + - uid: 22962 + components: + - type: Transform + pos: 9.5,-34.5 + parent: 2 + - uid: 22963 + components: + - type: Transform + pos: 18.5,-35.5 + parent: 2 + - uid: 22964 + components: + - type: Transform + pos: 20.5,-35.5 + parent: 2 + - uid: 22965 + components: + - type: Transform + pos: 21.5,-37.5 + parent: 2 + - uid: 22966 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 28.5,-35.5 + parent: 2 + - uid: 22967 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 32.5,-35.5 + parent: 2 + - uid: 22968 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 31.5,-36.5 + parent: 2 + - uid: 22969 + components: + - type: Transform + pos: 37.5,-39.5 + parent: 2 + - uid: 22970 + components: + - type: Transform + pos: 48.5,-41.5 + parent: 2 + - uid: 22971 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 9.5,-44.5 + parent: 2 + - uid: 22972 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 9.5,-45.5 + parent: 2 + - uid: 22973 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 5.5,-52.5 + parent: 2 + - uid: 22974 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 5.5,-57.5 + parent: 2 + - uid: 22975 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 6.5,-57.5 + parent: 2 + - uid: 22976 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 9.5,-57.5 + parent: 2 + - uid: 22977 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 8.5,-57.5 + parent: 2 + - uid: 22978 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 5.5,-58.5 + parent: 2 + - uid: 22979 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 5.5,-59.5 + parent: 2 + - uid: 22980 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 5.5,-60.5 + parent: 2 + - uid: 22981 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 9.5,-58.5 + parent: 2 + - uid: 22982 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 9.5,-59.5 + parent: 2 + - uid: 22983 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 9.5,-60.5 + parent: 2 + - uid: 22984 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 9.5,-61.5 + parent: 2 + - uid: 22985 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 1.5,-61.5 + parent: 2 + - uid: 22986 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 1.5,-60.5 + parent: 2 + - uid: 22987 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 1.5,-59.5 + parent: 2 + - uid: 22988 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 1.5,-58.5 + parent: 2 + - uid: 22989 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 1.5,-55.5 + parent: 2 + - uid: 22990 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 1.5,-56.5 + parent: 2 + - uid: 22991 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -8.5,-61.5 + parent: 2 + - uid: 22992 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -8.5,-60.5 + parent: 2 + - uid: 22993 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -8.5,-59.5 + parent: 2 + - uid: 22994 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -8.5,-56.5 + parent: 2 + - uid: 22995 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -7.5,-61.5 + parent: 2 + - uid: 22996 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -6.5,-61.5 + parent: 2 + - uid: 22997 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -5.5,-61.5 + parent: 2 + - uid: 22998 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 0.5,-61.5 + parent: 2 + - uid: 22999 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -0.5,-61.5 + parent: 2 + - uid: 23000 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -1.5,-61.5 + parent: 2 + - uid: 23001 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -11.5,-61.5 + parent: 2 + - uid: 23002 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -11.5,-60.5 + parent: 2 + - uid: 23003 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -9.5,-60.5 + parent: 2 + - uid: 23004 + components: + - type: Transform + pos: 9.5,-67.5 + parent: 2 + - uid: 23005 + components: + - type: Transform + pos: 9.5,-66.5 + parent: 2 + - uid: 23006 + components: + - type: Transform + pos: 9.5,-65.5 + parent: 2 + - uid: 23007 + components: + - type: Transform + pos: 9.5,-62.5 + parent: 2 + - uid: 23008 + components: + - type: Transform + pos: 33.5,-41.5 + parent: 2 + - uid: 23009 + components: + - type: Transform + pos: 33.5,-42.5 + parent: 2 + - uid: 23010 + components: + - type: Transform + pos: 33.5,-43.5 + parent: 2 + - uid: 23011 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -14.5,-17.5 + parent: 2 + - uid: 23012 + components: + - type: Transform + pos: 33.5,-47.5 + parent: 2 + - uid: 23013 + components: + - type: Transform + pos: 34.5,-47.5 + parent: 2 + - uid: 23014 + components: + - type: Transform + pos: 35.5,-47.5 + parent: 2 + - uid: 23015 + components: + - type: Transform + pos: 36.5,-47.5 + parent: 2 + - uid: 23016 + components: + - type: Transform + pos: 37.5,-47.5 + parent: 2 + - uid: 23017 + components: + - type: Transform + pos: 39.5,-45.5 + parent: 2 + - uid: 23018 + components: + - type: Transform + pos: 40.5,-45.5 + parent: 2 + - uid: 23019 + components: + - type: Transform + pos: 39.5,-42.5 + parent: 2 + - uid: 23020 + components: + - type: Transform + pos: 43.5,-42.5 + parent: 2 + - uid: 23021 + components: + - type: Transform + pos: 44.5,-42.5 + parent: 2 + - uid: 23022 + components: + - type: Transform + pos: 45.5,-42.5 + parent: 2 + - uid: 23023 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -24.5,-54.5 + parent: 2 + - uid: 23024 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 33.5,-46.5 + parent: 2 + - uid: 23025 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 33.5,-45.5 + parent: 2 + - uid: 23026 + components: + - type: Transform + pos: 8.5,22.5 + parent: 2 + - uid: 23027 + components: + - type: Transform + pos: 42.5,11.5 + parent: 2 + - uid: 23028 + components: + - type: Transform + pos: 45.5,-36.5 + parent: 2 + - uid: 23029 + components: + - type: Transform + pos: 48.5,-38.5 + parent: 2 + - uid: 23030 + components: + - type: Transform + pos: 47.5,-37.5 + parent: 2 + - uid: 23031 + components: + - type: Transform + pos: 47.5,-41.5 + parent: 2 + - uid: 23032 + components: + - type: Transform + pos: 41.5,-37.5 + parent: 2 + - uid: 23033 + components: + - type: Transform + pos: 42.5,-37.5 + parent: 2 + - uid: 23034 + components: + - type: Transform + pos: 39.5,-36.5 + parent: 2 + - uid: 23035 + components: + - type: Transform + pos: -12.5,-25.5 + parent: 2 + - uid: 24068 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 24.5,20.5 + parent: 2 +- proto: WallSolidRust + entities: + - uid: 23036 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -14.5,-14.5 + parent: 2 + - uid: 23037 + components: + - type: Transform + pos: 46.5,-41.5 + parent: 2 + - uid: 23038 + components: + - type: Transform + pos: -9.5,-7.5 + parent: 2 + - uid: 23039 + components: + - type: Transform + pos: -10.5,-7.5 + parent: 2 + - uid: 23040 + components: + - type: Transform + pos: -12.5,-7.5 + parent: 2 + - uid: 23041 + components: + - type: Transform + pos: -18.5,-7.5 + parent: 2 + - uid: 23042 + components: + - type: Transform + pos: -17.5,-7.5 + parent: 2 + - uid: 23043 + components: + - type: Transform + pos: -16.5,-7.5 + parent: 2 + - uid: 23044 + components: + - type: Transform + pos: -18.5,-5.5 + parent: 2 + - uid: 23045 + components: + - type: Transform + pos: -18.5,-3.5 + parent: 2 + - uid: 23046 + components: + - type: Transform + pos: -8.5,-11.5 + parent: 2 + - uid: 23047 + components: + - type: Transform + pos: -9.5,-11.5 + parent: 2 + - uid: 23048 + components: + - type: Transform + pos: -9.5,-13.5 + parent: 2 + - uid: 23049 + components: + - type: Transform + pos: -9.5,-15.5 + parent: 2 + - uid: 23050 + components: + - type: Transform + pos: -7.5,-15.5 + parent: 2 + - uid: 23051 + components: + - type: Transform + pos: -6.5,-15.5 + parent: 2 + - uid: 23052 + components: + - type: Transform + pos: -14.5,-8.5 + parent: 2 + - uid: 23053 + components: + - type: Transform + pos: -14.5,-11.5 + parent: 2 + - uid: 23054 + components: + - type: Transform + pos: -12.5,-11.5 + parent: 2 + - uid: 23055 + components: + - type: Transform + pos: -7.5,-17.5 + parent: 2 + - uid: 23056 + components: + - type: Transform + pos: -11.5,-18.5 + parent: 2 + - uid: 23057 + components: + - type: Transform + pos: -10.5,-17.5 + parent: 2 + - uid: 23058 + components: + - type: Transform + pos: -16.5,-13.5 + parent: 2 + - uid: 23059 + components: + - type: Transform + pos: -17.5,-14.5 + parent: 2 + - uid: 23060 + components: + - type: Transform + pos: -13.5,-14.5 + parent: 2 + - uid: 23061 + components: + - type: Transform + pos: -11.5,-15.5 + parent: 2 + - uid: 23062 + components: + - type: Transform + pos: -16.5,-10.5 + parent: 2 + - uid: 23063 + components: + - type: Transform + pos: -21.5,-11.5 + parent: 2 + - uid: 23064 + components: + - type: Transform + pos: -22.5,-10.5 + parent: 2 + - uid: 23065 + components: + - type: Transform + pos: -25.5,-9.5 + parent: 2 + - uid: 23066 + components: + - type: Transform + pos: -22.5,-7.5 + parent: 2 + - uid: 23067 + components: + - type: Transform + pos: -24.5,-7.5 + parent: 2 + - uid: 23068 + components: + - type: Transform + pos: -21.5,-6.5 + parent: 2 + - uid: 23069 + components: + - type: Transform + pos: -21.5,-5.5 + parent: 2 + - uid: 23070 + components: + - type: Transform + pos: -22.5,-5.5 + parent: 2 + - uid: 23071 + components: + - type: Transform + pos: -22.5,-3.5 + parent: 2 + - uid: 23072 + components: + - type: Transform + pos: -21.5,-1.5 + parent: 2 + - uid: 23073 + components: + - type: Transform + pos: -26.5,-9.5 + parent: 2 + - uid: 23074 + components: + - type: Transform + pos: -29.5,-7.5 + parent: 2 + - uid: 23075 + components: + - type: Transform + pos: -26.5,9.5 + parent: 2 + - uid: 23076 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -22.5,8.5 + parent: 2 + - uid: 23077 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -24.5,10.5 + parent: 2 + - uid: 23078 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -24.5,12.5 + parent: 2 + - uid: 23079 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -24.5,13.5 + parent: 2 + - uid: 23080 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -28.5,14.5 + parent: 2 + - uid: 23081 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -26.5,14.5 + parent: 2 + - uid: 23082 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -25.5,14.5 + parent: 2 + - uid: 23083 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -39.5,-23.5 + parent: 2 + - uid: 23084 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -40.5,-24.5 + parent: 2 + - uid: 23085 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -41.5,-24.5 + parent: 2 + - uid: 23086 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -43.5,-24.5 + parent: 2 + - uid: 23087 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -47.5,-24.5 + parent: 2 + - uid: 23090 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -18.5,-38.5 + parent: 2 + - uid: 23091 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -18.5,-50.5 + parent: 2 + - uid: 23092 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -7.5,-50.5 + parent: 2 + - uid: 23093 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -6.5,-50.5 + parent: 2 + - uid: 23094 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -6.5,-49.5 + parent: 2 + - uid: 23108 + components: + - type: Transform + pos: -19.5,-40.5 + parent: 2 + - uid: 23109 + components: + - type: Transform + pos: -23.5,-51.5 + parent: 2 + - uid: 23110 + components: + - type: Transform + pos: -23.5,-52.5 + parent: 2 + - uid: 23111 + components: + - type: Transform + pos: -21.5,-53.5 + parent: 2 + - uid: 23112 + components: + - type: Transform + pos: -18.5,-53.5 + parent: 2 + - uid: 23113 + components: + - type: Transform + pos: -18.5,-52.5 + parent: 2 + - uid: 23114 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -29.5,-53.5 + parent: 2 + - uid: 23115 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -27.5,-53.5 + parent: 2 + - uid: 23116 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -25.5,-53.5 + parent: 2 + - uid: 23117 + components: + - type: Transform + pos: -27.5,-54.5 + parent: 2 + - uid: 23118 + components: + - type: Transform + pos: -27.5,-56.5 + parent: 2 + - uid: 23119 + components: + - type: Transform + pos: -27.5,-57.5 + parent: 2 + - uid: 23120 + components: + - type: Transform + pos: -26.5,-57.5 + parent: 2 + - uid: 23121 + components: + - type: Transform + pos: -25.5,-57.5 + parent: 2 + - uid: 23122 + components: + - type: Transform + pos: -23.5,-57.5 + parent: 2 + - uid: 23123 + components: + - type: Transform + pos: -30.5,-56.5 + parent: 2 + - uid: 23124 + components: + - type: Transform + pos: -36.5,-57.5 + parent: 2 + - uid: 23125 + components: + - type: Transform + pos: -35.5,-57.5 + parent: 2 + - uid: 23126 + components: + - type: Transform + pos: -34.5,-57.5 + parent: 2 + - uid: 23127 + components: + - type: Transform + pos: -32.5,-57.5 + parent: 2 + - uid: 23128 + components: + - type: Transform + pos: -37.5,-61.5 + parent: 2 + - uid: 23129 + components: + - type: Transform + pos: -35.5,-61.5 + parent: 2 + - uid: 23130 + components: + - type: Transform + pos: -33.5,-61.5 + parent: 2 + - uid: 23131 + components: + - type: Transform + pos: -33.5,-60.5 + parent: 2 + - uid: 23132 + components: + - type: Transform + pos: -33.5,-58.5 + parent: 2 + - uid: 23133 + components: + - type: Transform + pos: -29.5,-57.5 + parent: 2 + - uid: 23134 + components: + - type: Transform + pos: -29.5,-59.5 + parent: 2 + - uid: 23135 + components: + - type: Transform + pos: -28.5,-59.5 + parent: 2 + - uid: 23136 + components: + - type: Transform + pos: -28.5,-60.5 + parent: 2 + - uid: 23137 + components: + - type: Transform + pos: -25.5,-60.5 + parent: 2 + - uid: 23138 + components: + - type: Transform + pos: -33.5,-65.5 + parent: 2 + - uid: 23139 + components: + - type: Transform + pos: -33.5,-64.5 + parent: 2 + - uid: 23140 + components: + - type: Transform + pos: -36.5,-65.5 + parent: 2 + - uid: 23141 + components: + - type: Transform + pos: -37.5,-65.5 + parent: 2 + - uid: 23142 + components: + - type: Transform + pos: -27.5,-65.5 + parent: 2 + - uid: 23143 + components: + - type: Transform + pos: -28.5,-65.5 + parent: 2 + - uid: 23144 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -21.5,-62.5 + parent: 2 + - uid: 23145 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -21.5,-64.5 + parent: 2 + - uid: 23146 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -21.5,-61.5 + parent: 2 + - uid: 23147 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -21.5,-65.5 + parent: 2 + - uid: 23148 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -24.5,-65.5 + parent: 2 + - uid: 23149 + components: + - type: Transform + pos: -28.5,-66.5 + parent: 2 + - uid: 23150 + components: + - type: Transform + pos: -27.5,-68.5 + parent: 2 + - uid: 23151 + components: + - type: Transform + pos: -25.5,-68.5 + parent: 2 + - uid: 23152 + components: + - type: Transform + pos: -24.5,-68.5 + parent: 2 + - uid: 23153 + components: + - type: Transform + pos: -24.5,-69.5 + parent: 2 + - uid: 23154 + components: + - type: Transform + pos: -22.5,-69.5 + parent: 2 + - uid: 23155 + components: + - type: Transform + pos: -21.5,-69.5 + parent: 2 + - uid: 23156 + components: + - type: Transform + pos: -21.5,-67.5 + parent: 2 + - uid: 23157 + components: + - type: Transform + pos: -24.5,-66.5 + parent: 2 + - uid: 23158 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 36.5,5.5 + parent: 2 + - uid: 23159 + components: + - type: Transform + pos: 14.5,19.5 + parent: 2 + - uid: 23160 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 41.5,1.5 + parent: 2 + - uid: 23161 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 44.5,4.5 + parent: 2 + - uid: 23162 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 44.5,5.5 + parent: 2 + - uid: 23163 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 44.5,9.5 + parent: 2 + - uid: 23164 + components: + - type: Transform + pos: 19.5,24.5 + parent: 2 + - uid: 23165 + components: + - type: Transform + pos: 14.5,21.5 + parent: 2 + - uid: 23166 + components: + - type: Transform + pos: 14.5,22.5 + parent: 2 + - uid: 23167 + components: + - type: Transform + pos: 14.5,24.5 + parent: 2 + - uid: 23168 + components: + - type: Transform + pos: 15.5,24.5 + parent: 2 + - uid: 23169 + components: + - type: Transform + pos: 16.5,24.5 + parent: 2 + - uid: 23170 + components: + - type: Transform + pos: 8.5,23.5 + parent: 2 + - uid: 23171 + components: + - type: Transform + pos: 9.5,23.5 + parent: 2 + - uid: 23172 + components: + - type: Transform + pos: 15.5,25.5 + parent: 2 + - uid: 23173 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 36.5,-35.5 + parent: 2 + - uid: 23174 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 33.5,-33.5 + parent: 2 + - uid: 23175 + components: + - type: Transform + pos: 9.5,-37.5 + parent: 2 + - uid: 23176 + components: + - type: Transform + pos: 9.5,-36.5 + parent: 2 + - uid: 23177 + components: + - type: Transform + pos: 17.5,-36.5 + parent: 2 + - uid: 23178 + components: + - type: Transform + pos: 17.5,-35.5 + parent: 2 + - uid: 23179 + components: + - type: Transform + pos: 19.5,-35.5 + parent: 2 + - uid: 23180 + components: + - type: Transform + pos: 21.5,-35.5 + parent: 2 + - uid: 23181 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 28.5,-34.5 + parent: 2 + - uid: 23182 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 29.5,-35.5 + parent: 2 + - uid: 23183 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 31.5,-35.5 + parent: 2 + - uid: 23184 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 31.5,-38.5 + parent: 2 + - uid: 23185 + components: + - type: Transform + pos: 37.5,-37.5 + parent: 2 + - uid: 23186 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -24.5,-56.5 + parent: 2 + - uid: 23187 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -14.5,-15.5 + parent: 2 + - uid: 23188 + components: + - type: Transform + pos: 45.5,-37.5 + parent: 2 + - uid: 23189 + components: + - type: Transform + pos: 48.5,-39.5 + parent: 2 + - uid: 23190 + components: + - type: Transform + pos: 48.5,-37.5 + parent: 2 + - uid: 23191 + components: + - type: Transform + pos: 42.5,-36.5 + parent: 2 + - uid: 23192 + components: + - type: Transform + pos: 48.5,-36.5 + parent: 2 + - uid: 23193 + components: + - type: Transform + pos: 39.5,-37.5 + parent: 2 + - uid: 23194 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -22.5,-2.5 + parent: 2 +- proto: WallWeaponCapacitorRecharger + entities: + - uid: 23195 + components: + - type: Transform + pos: -17.5,41.5 + parent: 2 + - uid: 23196 + components: + - type: Transform + pos: -1.5,71.5 + parent: 2 + - uid: 23197 + components: + - type: Transform + pos: -1.5,72.5 + parent: 2 + - uid: 23198 + components: + - type: Transform + pos: -1.5,69.5 + parent: 2 + - uid: 23199 + components: + - type: Transform + pos: 4.5,72.5 + parent: 2 + - uid: 23200 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -7.5,79.5 + parent: 2 + - uid: 23201 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -5.5,85.5 + parent: 2 + - uid: 23202 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -2.5,76.5 + parent: 2 + - uid: 23203 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 8.5,45.5 + parent: 2 +- proto: WallWood + entities: + - uid: 23204 + components: + - type: Transform + pos: -2.5,5.5 + parent: 2 + - uid: 23205 + components: + - type: Transform + pos: -1.5,5.5 + parent: 2 + - uid: 23206 + components: + - type: Transform + pos: 3.5,5.5 + parent: 2 + - uid: 23207 + components: + - type: Transform + pos: 4.5,5.5 + parent: 2 +- proto: WardrobeBlackFilled + entities: + - uid: 23208 + components: + - type: Transform + pos: 35.5,30.5 + parent: 2 + - uid: 23209 + components: + - type: Transform + pos: 42.5,45.5 + parent: 2 +- proto: WardrobeBlueFilled + entities: + - uid: 23210 + components: + - type: Transform + pos: 37.5,30.5 + parent: 2 +- proto: WardrobeChapelFilled + entities: + - uid: 23211 + components: + - type: Transform + pos: 14.5,40.5 + parent: 2 + - uid: 23212 + components: + - type: Transform + pos: 14.5,44.5 + parent: 2 + - uid: 23213 + components: + - type: Transform + pos: 17.5,42.5 + parent: 2 +- proto: WardrobeFormal + entities: + - uid: 23214 + components: + - type: Transform + pos: -35.5,-60.5 + parent: 2 + - uid: 23215 + components: + - type: Transform + pos: 18.5,23.5 + parent: 2 +- proto: WardrobeGeneticsFilled + entities: + - uid: 4562 + components: + - type: Transform + pos: 18.5,-32.5 + parent: 2 + - uid: 23216 + components: + - type: Transform + pos: 32.5,-31.5 + parent: 2 +- proto: WardrobeGreenFilled + entities: + - uid: 23217 + components: + - type: Transform + pos: 42.5,44.5 + parent: 2 +- proto: WardrobeGreyFilled + entities: + - uid: 23218 + components: + - type: Transform + pos: 33.5,26.5 + parent: 2 +- proto: WardrobeMedicalDoctorFilled + entities: + - uid: 8848 + components: + - type: Transform + pos: -30.5,39.5 + parent: 2 + - type: ContainerContainer + containers: + entity_storage: !type:Container + showEnts: False + occludes: True + ents: + - 8853 + - 8849 + - 8851 + - 8850 + - 8852 + paper_label: !type:ContainerSlot + showEnts: False + occludes: True + ent: null +- proto: WardrobeMixedFilled + entities: + - uid: 23219 + components: + - type: Transform + pos: 42.5,43.5 + parent: 2 +- proto: WardrobePinkFilled + entities: + - uid: 23220 + components: + - type: Transform + pos: 31.5,26.5 + parent: 2 +- proto: WardrobePrisonFilled + entities: + - uid: 23221 + components: + - type: Transform + pos: -12.5,24.5 + parent: 2 + - uid: 23222 + components: + - type: Transform + pos: -9.5,24.5 + parent: 2 + - uid: 23223 + components: + - type: Transform + pos: -9.5,23.5 + parent: 2 + - uid: 23224 + components: + - type: Transform + pos: -9.5,22.5 + parent: 2 + - uid: 23225 + components: + - type: Transform + pos: -3.5,24.5 + parent: 2 +- proto: WardrobeSalvageFilled + entities: + - uid: 23226 + components: + - type: Transform + pos: -36.5,-13.5 + parent: 2 +- proto: WardrobeVirologyFilled + entities: + - uid: 23227 + components: + - type: Transform + pos: 38.5,-29.5 + parent: 2 + - uid: 23228 + components: + - type: Transform + pos: 38.5,-30.5 + parent: 2 +- proto: WardrobeWhiteFilled + entities: + - uid: 23229 + components: + - type: Transform + pos: 32.5,26.5 + parent: 2 +- proto: WarningAir + entities: + - uid: 23230 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 19.5,-55.5 + parent: 2 +- proto: WarningN2 + entities: + - uid: 23231 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 19.5,-63.5 + parent: 2 +- proto: WarningN2O + entities: + - uid: 23232 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 35.5,-63.5 + parent: 2 +- proto: WarningO2 + entities: + - uid: 23233 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 19.5,-59.5 + parent: 2 +- proto: WarningPlasma + entities: + - uid: 23234 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 35.5,-59.5 + parent: 2 +- proto: WarningWaste + entities: + - uid: 23235 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 35.5,-55.5 + parent: 2 +- proto: WarpPoint + entities: + - uid: 23236 + components: + - type: Transform + pos: -80.5,-52.5 + parent: 2 + - type: WarpPoint + location: Lançador +- proto: WarpPointBombing + entities: + - uid: 23237 + components: + - type: Transform + pos: 20.5,31.5 + parent: 2 + - type: WarpPoint + location: Igreja +- proto: WaterCooler + entities: + - uid: 23238 + components: + - type: Transform + pos: 41.5,-16.5 + parent: 2 + - uid: 23239 + components: + - type: Transform + pos: 43.5,-20.5 + parent: 2 + - uid: 23240 + components: + - type: Transform + pos: 4.5,-27.5 + parent: 2 +- proto: WaterTankFull + entities: + - uid: 23241 + components: + - type: Transform + pos: 4.5,19.5 + parent: 2 + - uid: 23242 + components: + - type: Transform + pos: 3.5,-4.5 + parent: 2 + - uid: 23243 + components: + - type: Transform + pos: 9.5,19.5 + parent: 2 + - uid: 23244 + components: + - type: Transform + pos: 12.5,15.5 + parent: 2 + - uid: 23245 + components: + - type: Transform + pos: 10.5,-16.5 + parent: 2 + - uid: 23246 + components: + - type: Transform + pos: -21.5,4.5 + parent: 2 + - uid: 23247 + components: + - type: Transform + pos: -41.5,15.5 + parent: 2 + - uid: 23248 + components: + - type: Transform + pos: -41.5,-27.5 + parent: 2 + - uid: 23249 + components: + - type: Transform + pos: -10.5,-44.5 + parent: 2 + - uid: 23250 + components: + - type: Transform + pos: -24.5,-44.5 + parent: 2 + - uid: 23251 + components: + - type: Transform + pos: -19.5,-53.5 + parent: 2 + - uid: 23252 + components: + - type: Transform + pos: -12.5,-53.5 + parent: 2 + - uid: 23253 + components: + - type: Transform + pos: 22.5,-2.5 + parent: 2 + - uid: 23254 + components: + - type: Transform + pos: -32.5,21.5 + parent: 2 + - uid: 23255 + components: + - type: Transform + pos: -42.5,28.5 + parent: 2 + - uid: 23256 + components: + - type: Transform + pos: -2.5,45.5 + parent: 2 + - uid: 23257 + components: + - type: Transform + pos: 28.5,-36.5 + parent: 2 + - uid: 23258 + components: + - type: Transform + pos: 36.5,-41.5 + parent: 2 + - uid: 23259 + components: + - type: Transform + pos: 5.5,22.5 + parent: 2 + - uid: 23260 + components: + - type: Transform + pos: -12.5,-8.5 + parent: 2 + - uid: 23261 + components: + - type: Transform + pos: -2.5,-18.5 + parent: 2 +- proto: WaterTankHighCapacity + entities: + - uid: 23262 + components: + - type: Transform + pos: 37.5,19.5 + parent: 2 + - uid: 23263 + components: + - type: Transform + pos: 42.5,24.5 + parent: 2 + - uid: 23264 + components: + - type: Transform + pos: 26.5,27.5 + parent: 2 + - uid: 23265 + components: + - type: Transform + pos: 16.5,40.5 + parent: 2 + - uid: 23266 + components: + - type: Transform + pos: 17.5,-39.5 + parent: 2 + - uid: 23267 + components: + - type: Transform + pos: 29.5,-64.5 + parent: 2 +- proto: WaterVaporCanister + entities: + - uid: 23268 + components: + - type: Transform + pos: 38.5,-54.5 + parent: 2 + - uid: 23269 + components: + - type: Transform + pos: 18.5,-49.5 + parent: 2 + - uid: 23270 + components: + - type: Transform + pos: -27.5,-37.5 + parent: 2 +- proto: WeaponCapacitorRecharger + entities: + - uid: 23271 + components: + - type: Transform + pos: 30.5,-51.5 + parent: 2 + - uid: 23272 + components: + - type: Transform + pos: -10.5,15.5 + parent: 2 + - uid: 23273 + components: + - type: Transform + pos: -30.5,-34.5 + parent: 2 + - uid: 23274 + components: + - type: Transform + pos: -44.5,-36.5 + parent: 2 + - uid: 23275 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -30.5,-48.5 + parent: 2 + - uid: 23276 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 30.5,-4.5 + parent: 2 + - uid: 23277 + components: + - type: Transform + pos: 43.5,-16.5 + parent: 2 + - uid: 23278 + components: + - type: Transform + pos: -6.5,32.5 + parent: 2 + - uid: 23279 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -13.5,32.5 + parent: 2 + - uid: 23280 + components: + - type: Transform + pos: -8.5,35.5 + parent: 2 + - uid: 23281 + components: + - type: Transform + pos: -14.5,35.5 + parent: 2 + - uid: 23282 + components: + - type: Transform + pos: -26.5,43.5 + parent: 2 + - uid: 23283 + components: + - type: Transform + pos: -38.5,21.5 + parent: 2 + - uid: 23284 + components: + - type: Transform + pos: -8.5,54.5 + parent: 2 + - uid: 23285 + components: + - type: Transform + pos: 3.5,62.5 + parent: 2 + - uid: 23286 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 4.5,-19.5 + parent: 2 + - uid: 23287 + components: + - type: Transform + pos: 2.5,-50.5 + parent: 2 +- proto: WeaponCapacitorRechargerCircuitboard + entities: + - uid: 23288 + components: + - type: Transform + pos: -23.339558,-16.57305 + parent: 2 +- proto: WeaponCrusher + entities: + - uid: 23289 + components: + - type: Transform + pos: -38.34513,-15.679401 + parent: 2 +- proto: WeaponCrusherDagger + entities: + - uid: 23290 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -36.612595,-18.416832 + parent: 2 +- proto: WeaponCrusherGlaive + entities: + - uid: 23291 + components: + - type: Transform + pos: -38.401016,-15.497839 + parent: 2 +- proto: WeaponDisabler + entities: + - uid: 23292 + components: + - type: Transform + pos: -14.50828,35.01218 + parent: 2 +- proto: WeaponLaserCarbinePractice + entities: + - uid: 23293 + components: + - type: Transform + pos: -30.494923,-46.218987 + parent: 2 + - uid: 23294 + components: + - type: Transform + pos: -30.494923,-46.491714 + parent: 2 +- proto: WeaponPistolMk58 + entities: + - uid: 23296 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -18.636597,40.22487 + parent: 2 + - uid: 23297 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -18.477215,40.35222 + parent: 2 +- proto: WeaponRevolverDeckard + entities: + - uid: 23298 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -18.322659,40.44136 + parent: 2 +- proto: WeaponRifleLecter + entities: + - uid: 23299 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -18.715591,39.34965 + parent: 2 + - uid: 23300 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -18.562584,39.473816 + parent: 2 +- proto: WeaponShotgunEnforcer + entities: + - uid: 23301 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -18.466957,38.79569 + parent: 2 + - uid: 23302 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -18.30439,38.98671 + parent: 2 +- proto: WeaponShotgunImprovised + entities: + - uid: 23303 + components: + - type: Transform + pos: -7.4090977,11.732128 + parent: 2 +- proto: WeaponShotgunKammerer + entities: + - uid: 23304 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -18.734715,38.63332 + parent: 2 + - uid: 23305 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -18.591274,38.73838 + parent: 2 +- proto: WeaponSubMachineGunDrozd + entities: + - uid: 23306 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -18.438267,39.626633 + parent: 2 + - uid: 23307 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -18.294827,39.798553 + parent: 2 +- proto: WeaponTurretSyndicateBroken + entities: + - uid: 23308 + components: + - type: Transform + pos: -1.5,80.5 + parent: 2 + - uid: 23309 + components: + - type: Transform + pos: -1.5,74.5 + parent: 2 + - uid: 23310 + components: + - type: Transform + pos: 4.5,80.5 + parent: 2 + - uid: 23311 + components: + - type: Transform + pos: 4.5,74.5 + parent: 2 +- proto: WelderIndustrial + entities: + - uid: 23312 + components: + - type: Transform + pos: 7.649969,19.642628 + parent: 2 +- proto: WeldingFuelTankFull + entities: + - uid: 23313 + components: + - type: Transform + pos: 9.5,17.5 + parent: 2 + - uid: 23314 + components: + - type: Transform + pos: 12.5,9.5 + parent: 2 + - uid: 23315 + components: + - type: Transform + pos: 4.5,-15.5 + parent: 2 + - uid: 23316 + components: + - type: Transform + pos: -19.5,-4.5 + parent: 2 + - uid: 23317 + components: + - type: Transform + pos: -42.5,-27.5 + parent: 2 + - uid: 23318 + components: + - type: Transform + pos: -24.5,-16.5 + parent: 2 + - uid: 23319 + components: + - type: Transform + pos: -20.5,-53.5 + parent: 2 + - uid: 23320 + components: + - type: Transform + pos: -13.5,-53.5 + parent: 2 + - uid: 23321 + components: + - type: Transform + pos: 21.5,-2.5 + parent: 2 + - uid: 23322 + components: + - type: Transform + pos: 26.5,-9.5 + parent: 2 + - uid: 23323 + components: + - type: Transform + pos: 19.5,25.5 + parent: 2 + - uid: 23324 + components: + - type: Transform + pos: -23.5,19.5 + parent: 2 + - uid: 23325 + components: + - type: Transform + pos: 36.5,-33.5 + parent: 2 + - uid: 23326 + components: + - type: Transform + pos: 0.5,-59.5 + parent: 2 + - uid: 23327 + components: + - type: Transform + pos: 37.5,-46.5 + parent: 2 + - uid: 23328 + components: + - type: Transform + pos: 10.5,22.5 + parent: 2 + - uid: 23329 + components: + - type: Transform + pos: 6.5,22.5 + parent: 2 + - uid: 23330 + components: + - type: Transform + pos: -2.5,44.5 + parent: 2 + - uid: 23331 + components: + - type: Transform + pos: -13.5,-8.5 + parent: 2 + - uid: 23332 + components: + - type: Transform + pos: -3.5,-18.5 + parent: 2 +- proto: WeldingFuelTankHighCapacity + entities: + - uid: 23333 + components: + - type: Transform + pos: 9.5,80.5 + parent: 2 +- proto: Windoor + entities: + - uid: 23334 + components: + - type: Transform + pos: 40.5,-37.5 + parent: 2 + - uid: 23335 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 40.5,-37.5 + parent: 2 + - uid: 23336 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -5.5,-13.5 + parent: 2 + - uid: 23337 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -5.5,-13.5 + parent: 2 + - uid: 23338 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 39.5,1.5 + parent: 2 + - uid: 23339 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 5.5,47.5 + parent: 2 + - uid: 23340 + components: + - type: Transform + pos: 30.5,-22.5 + parent: 2 + - uid: 23341 + components: + - type: Transform + pos: 32.5,-22.5 + parent: 2 + - uid: 23342 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 39.5,-26.5 + parent: 2 + - uid: 23343 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 16.5,-31.5 + parent: 2 + - uid: 23344 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 17.5,-29.5 + parent: 2 + - uid: 23345 + components: + - type: Transform + pos: 46.5,-37.5 + parent: 2 + - uid: 23346 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 46.5,-37.5 + parent: 2 + - uid: 23347 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -14.5,4.5 + parent: 2 +- proto: WindoorBarKitchenLocked + entities: + - uid: 23348 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 22.5,13.5 + parent: 2 + - uid: 23349 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 22.5,14.5 + parent: 2 +- proto: WindoorBarLocked + entities: + - uid: 23350 + components: + - type: Transform + pos: 20.5,12.5 + parent: 2 +- proto: WindoorCargoLocked + entities: + - uid: 23351 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -36.5,6.5 + parent: 2 + - uid: 23352 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -36.5,9.5 + parent: 2 + - uid: 23353 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -36.5,10.5 + parent: 2 + - uid: 23354 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -36.5,12.5 + parent: 2 + - type: DeviceLinkSink + links: + - 19976 + - uid: 23355 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -41.5,12.5 + parent: 2 + - type: DeviceLinkSink + links: + - 19976 + - type: Door + secondsUntilStateChange: -188469.52 + state: Opening + - uid: 23356 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -39.5,-6.5 + parent: 2 +- proto: WindoorChapelLocked + entities: + - uid: 23357 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 13.5,39.5 + parent: 2 + - uid: 23358 + components: + - type: Transform + pos: 20.5,46.5 + parent: 2 +- proto: WindoorHydroponicsLocked + entities: + - uid: 23359 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 31.5,15.5 + parent: 2 + - uid: 23360 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 31.5,14.5 + parent: 2 +- proto: WindoorKitchenLocked + entities: + - uid: 23361 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 21.5,22.5 + parent: 2 + - uid: 23362 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 24.5,15.5 + parent: 2 + - uid: 23363 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 25.5,15.5 + parent: 2 + - uid: 23364 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 26.5,15.5 + parent: 2 + - uid: 23365 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 27.5,16.5 + parent: 2 + - uid: 23366 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 21.5,15.5 + parent: 2 + - uid: 23367 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 20.5,15.5 + parent: 2 +- proto: WindoorSecure + entities: + - uid: 23368 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -42.5,15.5 + parent: 2 +- proto: WindoorSecureArmoryLocked + entities: + - uid: 23369 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -13.5,32.5 + parent: 2 + - uid: 23370 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -18.5,38.5 + parent: 2 + - uid: 23371 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -18.5,39.5 + parent: 2 + - uid: 23372 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -18.5,40.5 + parent: 2 +- proto: WindoorSecureAtmosphericsLocked + entities: + - uid: 23373 + components: + - type: Transform + pos: 16.5,-38.5 + parent: 2 +- proto: WindoorSecureChemistryLocked + entities: + - uid: 23374 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 32.5,-22.5 + parent: 2 + - uid: 23375 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 30.5,-22.5 + parent: 2 + - uid: 23376 + components: + - type: Transform + pos: 6.5,-28.5 + parent: 2 + - uid: 23377 + components: + - type: Transform + pos: 5.5,-28.5 + parent: 2 + - uid: 23378 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 11.5,-30.5 + parent: 2 +- proto: WindoorSecureCommandLocked + entities: + - uid: 23379 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -24.5,-35.5 + parent: 2 + - uid: 23380 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -4.5,-24.5 + parent: 2 + - uid: 23381 + components: + - type: Transform + pos: -4.5,-20.5 + parent: 2 + - uid: 23382 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 5.5,29.5 + parent: 2 + - uid: 23383 + components: + - type: Transform + pos: 4.5,44.5 + parent: 2 + - uid: 23384 + components: + - type: Transform + pos: 5.5,44.5 + parent: 2 + - uid: 23385 + components: + - type: Transform + pos: 7.5,44.5 + parent: 2 + - uid: 23386 + components: + - type: Transform + pos: 8.5,44.5 + parent: 2 + - uid: 23387 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -6.5,53.5 + parent: 2 + - uid: 23388 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 2.5,69.5 + parent: 2 + - uid: 23389 + components: + - type: Transform + pos: 3.5,72.5 + parent: 2 + - uid: 23390 + components: + - type: Transform + pos: -0.5,72.5 + parent: 2 + - uid: 23391 + components: + - type: Transform + pos: -4.5,85.5 + parent: 2 + - uid: 23392 + components: + - type: Transform + pos: 8.5,25.5 + parent: 2 +- proto: WindoorSecureEngineeringLocked + entities: + - uid: 23393 + components: + - type: Transform + pos: -2.5,-44.5 + parent: 2 + - uid: 23394 + components: + - type: Transform + pos: -0.5,-43.5 + parent: 2 + - uid: 23395 + components: + - type: Transform + pos: 0.5,-43.5 + parent: 2 +- proto: WindoorSecureHeadOfPersonnelLocked + entities: + - uid: 23396 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 5.5,47.5 + parent: 2 +- proto: WindoorSecureJusticeLocked + entities: + - uid: 23436 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -8.5,15.5 + parent: 2 + - uid: 23437 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -11.5,10.5 + parent: 2 +- proto: WindoorSecureMedicalLocked + entities: + - uid: 23397 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 32.5,-28.5 + parent: 2 + - uid: 23398 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 16.5,-19.5 + parent: 2 + - uid: 23399 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 47.5,-34.5 + parent: 2 + - uid: 23400 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 46.5,-34.5 + parent: 2 + - uid: 23401 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 45.5,-34.5 + parent: 2 + - uid: 23402 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 44.5,-34.5 + parent: 2 + - uid: 23403 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 45.5,-29.5 + parent: 2 + - uid: 23404 + components: + - type: Transform + pos: 39.5,-26.5 + parent: 2 + - uid: 23405 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 9.5,-20.5 + parent: 2 + - uid: 23406 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 8.5,-20.5 + parent: 2 + - uid: 23407 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 12.5,-32.5 + parent: 2 +- proto: WindoorSecureSalvageLocked + entities: + - uid: 23408 + components: + - type: Transform + pos: -39.5,-6.5 + parent: 2 + - uid: 23409 + components: + - type: Transform + pos: -39.5,-6.5 + parent: 2 +- proto: WindoorSecureScienceLocked + entities: + - uid: 23410 + components: + - type: Transform + pos: -33.5,-25.5 + parent: 2 + - uid: 23411 + components: + - type: Transform + pos: -32.5,-25.5 + parent: 2 + - uid: 23412 + components: + - type: Transform + pos: -34.5,-25.5 + parent: 2 + - uid: 23413 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -35.5,-33.5 + parent: 2 + - uid: 23414 + components: + - type: Transform + pos: -20.5,-16.5 + parent: 2 + - uid: 23415 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -20.5,-17.5 + parent: 2 + - uid: 23416 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -27.5,-21.5 + parent: 2 + - uid: 23417 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -11.5,-33.5 + parent: 2 + - uid: 23418 + components: + - type: Transform + pos: -11.5,-34.5 + parent: 2 + - uid: 23419 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -1.5,-31.5 + parent: 2 + - uid: 23420 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -13.5,-36.5 + parent: 2 + - uid: 23421 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -14.5,-36.5 + parent: 2 + - uid: 23422 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -13.5,-39.5 + parent: 2 + - uid: 23423 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -13.5,-42.5 + parent: 2 + - uid: 23424 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -13.5,-45.5 + parent: 2 + - uid: 23425 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -13.5,-48.5 + parent: 2 + - uid: 23426 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -14.5,-48.5 + parent: 2 + - uid: 23427 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -14.5,-45.5 + parent: 2 + - uid: 23428 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -14.5,-42.5 + parent: 2 + - uid: 23429 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -14.5,-39.5 + parent: 2 + - uid: 23430 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -8.5,-42.5 + parent: 2 + - uid: 23431 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -9.5,-42.5 + parent: 2 + - uid: 23432 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -41.5,-51.5 + parent: 2 + - uid: 23433 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -42.5,-52.5 + parent: 2 + - uid: 23434 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -29.5,-47.5 + parent: 2 +- proto: WindoorSecureSecurityLawyerLocked + entities: + - uid: 23435 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -14.5,15.5 + parent: 2 +- proto: WindoorSecureSecurityLocked + entities: + - uid: 23438 + components: + - type: Transform + pos: 29.5,-1.5 + parent: 2 + - uid: 23439 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -27.5,27.5 + parent: 2 + - uid: 23440 + components: + - type: Transform + pos: -19.5,26.5 + parent: 2 + - uid: 23441 + components: + - type: Transform + pos: -20.5,26.5 + parent: 2 + - uid: 23442 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -11.5,25.5 + parent: 2 + - type: DeviceLinkSink + links: + - 1214 + - uid: 23443 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -2.5,25.5 + parent: 2 + - type: DeviceLinkSink + links: + - 1216 + - uid: 23444 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -7.5,25.5 + parent: 2 + - type: DeviceLinkSink + links: + - 1215 + - uid: 23445 + components: + - type: Transform + pos: -7.5,25.5 + parent: 2 + - type: DeviceLinkSink + links: + - 1215 + - uid: 23446 + components: + - type: Transform + pos: -6.5,30.5 + parent: 2 + - uid: 23447 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -13.5,32.5 + parent: 2 + - uid: 23448 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -7.5,33.5 + parent: 2 + - uid: 23449 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -5.5,33.5 + parent: 2 + - uid: 23450 + components: + - type: Transform + pos: -30.5,25.5 + parent: 2 + - uid: 23451 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -38.5,20.5 + parent: 2 + - uid: 23452 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 7.5,-19.5 + parent: 2 + - uid: 23453 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 5.5,-49.5 + parent: 2 +- proto: WindoorServiceLocked + entities: + - uid: 23454 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 17.5,20.5 + parent: 2 +- proto: Window + entities: + - uid: 8730 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 27.5,13.5 + parent: 2 + - uid: 22680 + components: + - type: Transform + pos: -24.5,-1.5 + parent: 2 + - uid: 23455 + components: + - type: Transform + pos: -12.5,2.5 + parent: 2 + - uid: 23456 + components: + - type: Transform + pos: -12.5,-0.5 + parent: 2 + - uid: 23457 + components: + - type: Transform + pos: -0.5,14.5 + parent: 2 + - uid: 23458 + components: + - type: Transform + pos: 2.5,14.5 + parent: 2 + - uid: 23459 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 14.5,2.5 + parent: 2 + - uid: 23460 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 14.5,-0.5 + parent: 2 + - uid: 23461 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -0.5,-12.5 + parent: 2 + - uid: 23462 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 2.5,-12.5 + parent: 2 + - uid: 23463 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -41.5,13.5 + parent: 2 + - uid: 23464 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -42.5,13.5 + parent: 2 + - uid: 23465 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -43.5,13.5 + parent: 2 + - uid: 23466 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -44.5,13.5 + parent: 2 + - uid: 23468 + components: + - type: Transform + pos: -25.5,-1.5 + parent: 2 + - uid: 23469 + components: + - type: Transform + pos: -26.5,-1.5 + parent: 2 + - uid: 23470 + components: + - type: Transform + pos: -27.5,-1.5 + parent: 2 + - uid: 23471 + components: + - type: Transform + pos: -31.5,-3.5 + parent: 2 + - uid: 23472 + components: + - type: Transform + pos: -31.5,-4.5 + parent: 2 + - uid: 23473 + components: + - type: Transform + pos: -31.5,-5.5 + parent: 2 + - uid: 23474 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -39.5,-16.5 + parent: 2 + - uid: 23475 + components: + - type: Transform + pos: -23.5,-25.5 + parent: 2 + - uid: 23476 + components: + - type: Transform + pos: -21.5,-25.5 + parent: 2 + - uid: 23477 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -29.5,-48.5 + parent: 2 + - uid: 23478 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -29.5,-46.5 + parent: 2 + - uid: 23479 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 33.5,-1.5 + parent: 2 + - uid: 23480 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 36.5,-1.5 + parent: 2 + - uid: 23481 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 37.5,0.5 + parent: 2 + - uid: 23482 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 37.5,1.5 + parent: 2 + - uid: 23483 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 37.5,2.5 + parent: 2 + - uid: 23484 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 23.5,3.5 + parent: 2 + - uid: 23485 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 22.5,3.5 + parent: 2 + - uid: 23486 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 21.5,3.5 + parent: 2 + - uid: 23487 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 36.5,6.5 + parent: 2 + - uid: 23488 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 36.5,8.5 + parent: 2 + - uid: 23490 + components: + - type: Transform + pos: 34.5,12.5 + parent: 2 + - uid: 23491 + components: + - type: Transform + pos: 33.5,12.5 + parent: 2 + - uid: 23492 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 30.5,21.5 + parent: 2 + - uid: 23493 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 28.5,21.5 + parent: 2 + - uid: 23494 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 39.5,17.5 + parent: 2 + - uid: 23495 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 31.5,22.5 + parent: 2 + - uid: 23496 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 31.5,24.5 + parent: 2 + - uid: 23497 + components: + - type: Transform + pos: 26.5,30.5 + parent: 2 + - uid: 23498 + components: + - type: Transform + pos: 26.5,32.5 + parent: 2 + - uid: 23499 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 42.5,-20.5 + parent: 2 + - uid: 23500 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 42.5,-21.5 + parent: 2 + - uid: 23501 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 42.5,-22.5 + parent: 2 + - uid: 23502 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 42.5,-23.5 + parent: 2 + - uid: 23503 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 42.5,-25.5 + parent: 2 + - uid: 23504 + components: + - type: Transform + pos: 31.5,-26.5 + parent: 2 + - uid: 23505 + components: + - type: Transform + pos: 29.5,-27.5 + parent: 2 + - uid: 23506 + components: + - type: Transform + pos: 29.5,-28.5 + parent: 2 + - uid: 23507 + components: + - type: Transform + pos: 29.5,-29.5 + parent: 2 + - uid: 23508 + components: + - type: Transform + pos: 29.5,-31.5 + parent: 2 + - uid: 23509 + components: + - type: Transform + pos: 15.5,-30.5 + parent: 2 + - uid: 23510 + components: + - type: Transform + pos: 15.5,-31.5 + parent: 2 + - uid: 23511 + components: + - type: Transform + pos: 15.5,-32.5 + parent: 2 + - uid: 23512 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -39.5,-17.5 + parent: 2 + - uid: 23513 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -39.5,-19.5 + parent: 2 +- proto: WindowDirectional + entities: + - uid: 23514 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 21.5,4.5 + parent: 2 + - uid: 23515 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 21.5,5.5 + parent: 2 + - uid: 23516 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 23.5,5.5 + parent: 2 + - uid: 23517 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 23.5,4.5 + parent: 2 + - uid: 23518 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 20.5,4.5 + parent: 2 + - uid: 23519 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 20.5,5.5 + parent: 2 + - uid: 23520 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 24.5,5.5 + parent: 2 + - uid: 23521 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 24.5,4.5 + parent: 2 + - uid: 23522 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 26.5,4.5 + parent: 2 + - uid: 23523 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 26.5,5.5 + parent: 2 + - uid: 23524 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 32.5,4.5 + parent: 2 + - uid: 23525 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 32.5,5.5 + parent: 2 + - uid: 23526 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 38.5,1.5 + parent: 2 + - uid: 23527 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 40.5,1.5 + parent: 2 + - uid: 23528 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 31.5,26.5 + parent: 2 + - uid: 23529 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 33.5,26.5 + parent: 2 + - uid: 23530 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 35.5,26.5 + parent: 2 + - uid: 23531 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 37.5,26.5 + parent: 2 + - uid: 23532 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 31.5,30.5 + parent: 2 + - uid: 23533 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 33.5,30.5 + parent: 2 + - uid: 23534 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 35.5,30.5 + parent: 2 + - uid: 23535 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 37.5,30.5 + parent: 2 + - uid: 23536 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 13.5,40.5 + parent: 2 + - uid: 23537 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 13.5,38.5 + parent: 2 + - uid: 23538 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -6.5,30.5 + parent: 2 + - uid: 23539 + components: + - type: Transform + pos: -30.5,37.5 + parent: 2 + - uid: 23540 + components: + - type: Transform + pos: -28.5,37.5 + parent: 2 + - uid: 23541 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -5.5,38.5 + parent: 2 + - uid: 23542 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -4.5,38.5 + parent: 2 + - uid: 23543 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -3.5,38.5 + parent: 2 + - uid: 23544 + components: + - type: Transform + pos: -3.5,39.5 + parent: 2 + - uid: 23545 + components: + - type: Transform + pos: -4.5,39.5 + parent: 2 + - uid: 23546 + components: + - type: Transform + pos: -5.5,39.5 + parent: 2 + - uid: 23547 + components: + - type: Transform + pos: 43.5,-21.5 + parent: 2 + - uid: 23548 + components: + - type: Transform + pos: 45.5,-21.5 + parent: 2 + - uid: 23549 + components: + - type: Transform + pos: 46.5,-21.5 + parent: 2 + - uid: 23550 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 45.5,-34.5 + parent: 2 + - uid: 23551 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 46.5,-34.5 + parent: 2 + - uid: 23552 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 47.5,-34.5 + parent: 2 + - uid: 23553 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 32.5,-27.5 + parent: 2 + - uid: 23554 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 16.5,-32.5 + parent: 2 + - uid: 23555 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 16.5,-30.5 + parent: 2 + - uid: 23556 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 6.5,-23.5 + parent: 2 + - uid: 23557 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 7.5,-23.5 + parent: 2 + - uid: 23558 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 8.5,-23.5 + parent: 2 + - uid: 23559 + components: + - type: Transform + pos: 8.5,-25.5 + parent: 2 + - uid: 23560 + components: + - type: Transform + pos: 7.5,-25.5 + parent: 2 + - uid: 23561 + components: + - type: Transform + pos: 6.5,-25.5 + parent: 2 + - uid: 23562 + components: + - type: Transform + pos: 5.5,-25.5 + parent: 2 + - uid: 23563 + components: + - type: Transform + pos: 9.5,-25.5 + parent: 2 + - uid: 23564 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 9.5,-23.5 + parent: 2 + - uid: 23565 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 5.5,-23.5 + parent: 2 + - uid: 23566 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 6.5,-27.5 + parent: 2 + - uid: 23567 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 7.5,-27.5 + parent: 2 + - uid: 23568 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 8.5,-27.5 + parent: 2 + - uid: 23569 + components: + - type: Transform + pos: 8.5,-21.5 + parent: 2 + - uid: 23570 + components: + - type: Transform + pos: 6.5,-21.5 + parent: 2 + - uid: 23571 + components: + - type: Transform + pos: 7.5,-21.5 + parent: 2 + - uid: 23572 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 39.5,-20.5 + parent: 2 + - uid: 23573 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 39.5,-21.5 + parent: 2 + - uid: 23574 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 39.5,-22.5 + parent: 2 + - uid: 23575 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 19.5,21.5 + parent: 2 + - uid: 23576 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 18.5,21.5 + parent: 2 + - uid: 23577 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 17.5,21.5 + parent: 2 + - uid: 23578 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 17.5,21.5 + parent: 2 +- proto: WindowFrostedDirectional + entities: + - uid: 23579 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -4.5,85.5 + parent: 2 + - uid: 23580 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -1.5,74.5 + parent: 2 + - uid: 23581 + components: + - type: Transform + pos: -1.5,80.5 + parent: 2 + - uid: 23582 + components: + - type: Transform + pos: 4.5,80.5 + parent: 2 + - uid: 23583 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 4.5,74.5 + parent: 2 +- proto: WindowReinforcedDirectional + entities: + - uid: 16299 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 1.5,-69.5 + parent: 2 + - uid: 16300 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 1.5,-68.5 + parent: 2 + - uid: 16301 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 1.5,-70.5 + parent: 2 + - uid: 16302 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -0.5,-70.5 + parent: 2 + - uid: 16303 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -0.5,-69.5 + parent: 2 + - uid: 16304 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -0.5,-68.5 + parent: 2 + - uid: 23584 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -8.5,-1.5 + parent: 2 + - uid: 23585 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -7.5,-2.5 + parent: 2 + - uid: 23586 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -7.5,-2.5 + parent: 2 + - uid: 23587 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -7.5,-2.5 + parent: 2 + - uid: 23588 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -6.5,-3.5 + parent: 2 + - uid: 23589 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -6.5,-3.5 + parent: 2 + - uid: 23590 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -6.5,-4.5 + parent: 2 + - uid: 23591 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -5.5,-5.5 + parent: 2 + - uid: 23592 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -5.5,-5.5 + parent: 2 + - uid: 23593 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -4.5,-6.5 + parent: 2 + - uid: 23594 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -3.5,-6.5 + parent: 2 + - uid: 23595 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -3.5,-6.5 + parent: 2 + - uid: 23596 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -2.5,-7.5 + parent: 2 + - uid: 23597 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -2.5,-7.5 + parent: 2 + - uid: 23598 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -1.5,-8.5 + parent: 2 + - uid: 23599 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 3.5,-8.5 + parent: 2 + - uid: 23600 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 4.5,-7.5 + parent: 2 + - uid: 23601 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 4.5,-7.5 + parent: 2 + - uid: 23602 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 5.5,-6.5 + parent: 2 + - uid: 23603 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 5.5,-6.5 + parent: 2 + - uid: 23604 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 6.5,-6.5 + parent: 2 + - uid: 23605 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 7.5,-5.5 + parent: 2 + - uid: 23606 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 7.5,-5.5 + parent: 2 + - uid: 23607 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 7.5,-5.5 + parent: 2 + - uid: 23608 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 8.5,-4.5 + parent: 2 + - uid: 23609 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 8.5,-3.5 + parent: 2 + - uid: 23610 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 8.5,-3.5 + parent: 2 + - uid: 23611 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 9.5,-2.5 + parent: 2 + - uid: 23612 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 9.5,-2.5 + parent: 2 + - uid: 23613 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 10.5,-1.5 + parent: 2 + - uid: 23614 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -8.5,3.5 + parent: 2 + - uid: 23615 + components: + - type: Transform + pos: -7.5,4.5 + parent: 2 + - uid: 23616 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -7.5,4.5 + parent: 2 + - uid: 23617 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -6.5,5.5 + parent: 2 + - uid: 23618 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -6.5,6.5 + parent: 2 + - uid: 23619 + components: + - type: Transform + pos: -6.5,5.5 + parent: 2 + - uid: 23620 + components: + - type: Transform + pos: -5.5,7.5 + parent: 2 + - uid: 23621 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -5.5,7.5 + parent: 2 + - uid: 23622 + components: + - type: Transform + pos: -4.5,8.5 + parent: 2 + - uid: 23623 + components: + - type: Transform + pos: -3.5,8.5 + parent: 2 + - uid: 23624 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -3.5,8.5 + parent: 2 + - uid: 23625 + components: + - type: Transform + pos: -2.5,9.5 + parent: 2 + - uid: 23626 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -2.5,9.5 + parent: 2 + - uid: 23627 + components: + - type: Transform + pos: -1.5,10.5 + parent: 2 + - uid: 23628 + components: + - type: Transform + pos: 3.5,10.5 + parent: 2 + - uid: 23629 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 4.5,9.5 + parent: 2 + - uid: 23630 + components: + - type: Transform + pos: 4.5,9.5 + parent: 2 + - uid: 23631 + components: + - type: Transform + pos: 5.5,8.5 + parent: 2 + - uid: 23632 + components: + - type: Transform + pos: 6.5,8.5 + parent: 2 + - uid: 23633 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 5.5,8.5 + parent: 2 + - uid: 23634 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 7.5,7.5 + parent: 2 + - uid: 23635 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 7.5,7.5 + parent: 2 + - uid: 23636 + components: + - type: Transform + pos: 7.5,7.5 + parent: 2 + - uid: 23637 + components: + - type: Transform + pos: 8.5,5.5 + parent: 2 + - uid: 23638 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 8.5,5.5 + parent: 2 + - uid: 23639 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 8.5,6.5 + parent: 2 + - uid: 23640 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 9.5,4.5 + parent: 2 + - uid: 23641 + components: + - type: Transform + pos: 9.5,4.5 + parent: 2 + - uid: 23642 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 10.5,3.5 + parent: 2 + - uid: 23643 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -14.5,14.5 + parent: 2 + - uid: 23644 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -14.5,14.5 + parent: 2 + - uid: 23645 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -14.5,16.5 + parent: 2 + - uid: 23646 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -8.5,16.5 + parent: 2 + - uid: 23647 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -8.5,14.5 + parent: 2 + - uid: 23648 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -13.5,10.5 + parent: 2 + - uid: 23649 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -12.5,10.5 + parent: 2 + - uid: 23650 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -10.5,10.5 + parent: 2 + - uid: 23651 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -9.5,10.5 + parent: 2 + - uid: 23652 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -28.5,-2.5 + parent: 2 + - uid: 23653 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -28.5,-2.5 + parent: 2 + - uid: 23654 + components: + - type: Transform + pos: -28.5,-2.5 + parent: 2 + - uid: 23655 + components: + - type: Transform + pos: -28.5,-2.5 + parent: 2 + - uid: 23656 + components: + - type: Transform + pos: -24.5,-2.5 + parent: 2 + - uid: 23657 + components: + - type: Transform + pos: -23.5,-2.5 + parent: 2 + - uid: 23658 + components: + - type: Transform + pos: -35.5,11.5 + parent: 2 + - uid: 23659 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -36.5,6.5 + parent: 2 + - uid: 23660 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -36.5,8.5 + parent: 2 + - uid: 23661 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -36.5,8.5 + parent: 2 + - uid: 23662 + components: + - type: Transform + pos: -36.5,8.5 + parent: 2 + - uid: 23663 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -44.5,15.5 + parent: 2 + - uid: 23664 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -43.5,15.5 + parent: 2 + - uid: 23665 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -41.5,15.5 + parent: 2 + - uid: 23666 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -32.5,-25.5 + parent: 2 + - uid: 23667 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -33.5,-25.5 + parent: 2 + - uid: 23668 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -25.5,-35.5 + parent: 2 + - uid: 23669 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -35.5,-33.5 + parent: 2 + - uid: 23670 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -23.5,-35.5 + parent: 2 + - uid: 23671 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -20.5,-16.5 + parent: 2 + - uid: 23672 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -20.5,-16.5 + parent: 2 + - uid: 23673 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -20.5,-18.5 + parent: 2 + - uid: 23674 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -4.5,-20.5 + parent: 2 + - uid: 23675 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -4.5,-20.5 + parent: 2 + - uid: 23676 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -4.5,-24.5 + parent: 2 + - uid: 23677 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -4.5,-24.5 + parent: 2 + - uid: 23678 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -10.5,-34.5 + parent: 2 + - uid: 23679 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -12.5,-34.5 + parent: 2 + - uid: 23680 + components: + - type: Transform + pos: -13.5,-35.5 + parent: 2 + - uid: 23681 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -13.5,-37.5 + parent: 2 + - uid: 23682 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -13.5,-37.5 + parent: 2 + - uid: 23683 + components: + - type: Transform + pos: -15.5,-37.5 + parent: 2 + - uid: 23684 + components: + - type: Transform + pos: -16.5,-37.5 + parent: 2 + - uid: 23685 + components: + - type: Transform + pos: -17.5,-37.5 + parent: 2 + - uid: 23686 + components: + - type: Transform + pos: -17.5,-40.5 + parent: 2 + - uid: 23687 + components: + - type: Transform + pos: -16.5,-40.5 + parent: 2 + - uid: 23688 + components: + - type: Transform + pos: -15.5,-40.5 + parent: 2 + - uid: 23689 + components: + - type: Transform + pos: -17.5,-43.5 + parent: 2 + - uid: 23690 + components: + - type: Transform + pos: -16.5,-43.5 + parent: 2 + - uid: 23691 + components: + - type: Transform + pos: -15.5,-43.5 + parent: 2 + - uid: 23692 + components: + - type: Transform + pos: -17.5,-46.5 + parent: 2 + - uid: 23693 + components: + - type: Transform + pos: -16.5,-46.5 + parent: 2 + - uid: 23694 + components: + - type: Transform + pos: -15.5,-46.5 + parent: 2 + - uid: 23695 + components: + - type: Transform + pos: -13.5,-38.5 + parent: 2 + - uid: 23696 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -13.5,-40.5 + parent: 2 + - uid: 23697 + components: + - type: Transform + pos: -13.5,-41.5 + parent: 2 + - uid: 23698 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -13.5,-43.5 + parent: 2 + - uid: 23699 + components: + - type: Transform + pos: -13.5,-44.5 + parent: 2 + - uid: 23700 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -13.5,-46.5 + parent: 2 + - uid: 23701 + components: + - type: Transform + pos: -13.5,-47.5 + parent: 2 + - uid: 23702 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -13.5,-49.5 + parent: 2 + - uid: 23703 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -8.5,-39.5 + parent: 2 + - uid: 23704 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -8.5,-40.5 + parent: 2 + - uid: 23705 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -8.5,-41.5 + parent: 2 + - uid: 23706 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -8.5,-43.5 + parent: 2 + - uid: 23707 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -8.5,-44.5 + parent: 2 + - uid: 23708 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -8.5,-45.5 + parent: 2 + - uid: 23709 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -44.5,-29.5 + parent: 2 + - uid: 23710 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -44.5,-30.5 + parent: 2 + - uid: 23711 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -42.5,-29.5 + parent: 2 + - uid: 23712 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -42.5,-30.5 + parent: 2 + - uid: 23713 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -34.5,-45.5 + parent: 2 + - uid: 23714 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -32.5,-45.5 + parent: 2 + - uid: 23715 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -32.5,-45.5 + parent: 2 + - uid: 23716 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 20.5,12.5 + parent: 2 + - uid: 23717 + components: + - type: Transform + pos: 21.5,12.5 + parent: 2 + - uid: 23718 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 21.5,23.5 + parent: 2 + - uid: 23719 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 34.5,-9.5 + parent: 2 + - uid: 23720 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 34.5,-8.5 + parent: 2 + - uid: 23721 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 34.5,-7.5 + parent: 2 + - uid: 23722 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 34.5,-6.5 + parent: 2 + - uid: 23723 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 34.5,-6.5 + parent: 2 + - uid: 23724 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 34.5,-6.5 + parent: 2 + - uid: 23725 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 35.5,-7.5 + parent: 2 + - uid: 23726 + components: + - type: Transform + pos: 35.5,-8.5 + parent: 2 + - uid: 23727 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 34.5,-9.5 + parent: 2 + - uid: 23728 + components: + - type: Transform + pos: 34.5,-9.5 + parent: 2 + - uid: 23729 + components: + - type: Transform + pos: 37.5,-8.5 + parent: 2 + - uid: 23730 + components: + - type: Transform + pos: 38.5,-8.5 + parent: 2 + - uid: 23731 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 37.5,-7.5 + parent: 2 + - uid: 23732 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 38.5,-7.5 + parent: 2 + - uid: 23733 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 40.5,-7.5 + parent: 2 + - uid: 23734 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 41.5,-6.5 + parent: 2 + - uid: 23735 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 41.5,-6.5 + parent: 2 + - uid: 23736 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 41.5,-6.5 + parent: 2 + - uid: 23737 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 41.5,-6.5 + parent: 2 + - uid: 23738 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 41.5,-7.5 + parent: 2 + - uid: 23739 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 41.5,-8.5 + parent: 2 + - uid: 23740 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 41.5,-9.5 + parent: 2 + - uid: 23741 + components: + - type: Transform + pos: 41.5,-9.5 + parent: 2 + - uid: 23742 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 41.5,-9.5 + parent: 2 + - uid: 23743 + components: + - type: Transform + pos: 40.5,-8.5 + parent: 2 + - uid: 23744 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 32.5,-2.5 + parent: 2 + - uid: 23745 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 32.5,-3.5 + parent: 2 + - uid: 23746 + components: + - type: Transform + pos: 32.5,-3.5 + parent: 2 + - uid: 23747 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 37.5,-2.5 + parent: 2 + - uid: 23748 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 37.5,-3.5 + parent: 2 + - uid: 23749 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 40.5,-3.5 + parent: 2 + - uid: 23750 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 40.5,-2.5 + parent: 2 + - uid: 23751 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -5.5,32.5 + parent: 2 + - uid: 23752 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -5.5,34.5 + parent: 2 + - uid: 23753 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -7.5,32.5 + parent: 2 + - uid: 23754 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -7.5,34.5 + parent: 2 + - uid: 23755 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -31.5,26.5 + parent: 2 + - uid: 23756 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -31.5,25.5 + parent: 2 + - uid: 23757 + components: + - type: Transform + pos: -31.5,25.5 + parent: 2 + - uid: 23758 + components: + - type: Transform + pos: -29.5,25.5 + parent: 2 + - uid: 23759 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -38.5,19.5 + parent: 2 + - uid: 23760 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -38.5,21.5 + parent: 2 + - uid: 23761 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -38.5,22.5 + parent: 2 + - uid: 23762 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 5.5,32.5 + parent: 2 + - uid: 23763 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 5.5,31.5 + parent: 2 + - uid: 23764 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 5.5,30.5 + parent: 2 + - uid: 23765 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 5.5,44.5 + parent: 2 + - uid: 23766 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 7.5,44.5 + parent: 2 + - uid: 23767 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -5.5,52.5 + parent: 2 + - uid: 23768 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -5.5,53.5 + parent: 2 + - uid: 23769 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -5.5,53.5 + parent: 2 + - uid: 23770 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -7.5,53.5 + parent: 2 + - uid: 23771 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -8.5,53.5 + parent: 2 + - uid: 23772 + components: + - type: Transform + pos: 3.5,47.5 + parent: 2 + - uid: 23773 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 3.5,49.5 + parent: 2 + - uid: 23774 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 3.5,49.5 + parent: 2 + - uid: 23775 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 3.5,48.5 + parent: 2 + - uid: 23776 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 3.5,47.5 + parent: 2 + - uid: 23777 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 3.5,47.5 + parent: 2 + - uid: 23778 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 3.5,48.5 + parent: 2 + - uid: 23779 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 3.5,49.5 + parent: 2 + - uid: 23780 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 1.5,56.5 + parent: 2 + - uid: 23781 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 1.5,55.5 + parent: 2 + - uid: 23782 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 0.5,56.5 + parent: 2 + - uid: 23783 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 0.5,55.5 + parent: 2 + - uid: 23784 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -4.5,62.5 + parent: 2 + - uid: 23785 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 6.5,62.5 + parent: 2 + - uid: 23786 + components: + - type: Transform + pos: 6.5,62.5 + parent: 2 + - uid: 23787 + components: + - type: Transform + pos: -4.5,62.5 + parent: 2 + - uid: 23788 + components: + - type: Transform + pos: -4.5,68.5 + parent: 2 + - uid: 23789 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -4.5,68.5 + parent: 2 + - uid: 23790 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 6.5,68.5 + parent: 2 + - uid: 23791 + components: + - type: Transform + pos: 6.5,68.5 + parent: 2 + - uid: 23792 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 2.5,69.5 + parent: 2 + - uid: 23793 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 2.5,69.5 + parent: 2 + - uid: 23794 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 3.5,72.5 + parent: 2 + - uid: 23795 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -0.5,72.5 + parent: 2 + - uid: 23796 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 16.5,-20.5 + parent: 2 + - uid: 23797 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 16.5,-18.5 + parent: 2 + - uid: 23798 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 19.5,-18.5 + parent: 2 + - uid: 23799 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 44.5,-29.5 + parent: 2 + - uid: 23800 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 46.5,-29.5 + parent: 2 + - uid: 23801 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 47.5,-29.5 + parent: 2 + - uid: 23802 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 14.5,-26.5 + parent: 2 + - uid: 23803 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 14.5,-25.5 + parent: 2 + - uid: 23804 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 14.5,-25.5 + parent: 2 + - uid: 23805 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 14.5,-25.5 + parent: 2 + - uid: 23806 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 14.5,-26.5 + parent: 2 + - uid: 23807 + components: + - type: Transform + pos: 14.5,-26.5 + parent: 2 + - uid: 23808 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 13.5,-32.5 + parent: 2 + - uid: 23809 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -1.5,-44.5 + parent: 2 + - uid: 23810 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 6.5,27.5 + parent: 2 + - uid: 23811 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 6.5,26.5 + parent: 2 + - uid: 23812 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 6.5,25.5 + parent: 2 + - uid: 23813 + components: + - type: Transform + pos: 6.5,25.5 + parent: 2 + - uid: 23814 + components: + - type: Transform + pos: 7.5,25.5 + parent: 2 + - uid: 23815 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 19.5,-50.5 + parent: 2 + - uid: 23816 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 19.5,-51.5 + parent: 2 + - uid: 23817 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 19.5,-49.5 + parent: 2 +- proto: Wirecutter + entities: + - uid: 23818 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -37.453682,-50.61966 + parent: 2 + - uid: 23819 + components: + - type: Transform + pos: 29.551594,-34.526207 + parent: 2 +- proto: WoodDoor + entities: + - uid: 23820 + components: + - type: Transform + pos: 20.5,41.5 + parent: 2 + - uid: 23821 + components: + - type: Transform + pos: 41.5,-0.5 + parent: 2 + - uid: 23822 + components: + - type: Transform + pos: 18.5,35.5 + parent: 2 + - uid: 23823 + components: + - type: Transform + pos: -23.5,-65.5 + parent: 2 + - uid: 23824 + components: + - type: Transform + pos: -25.5,-65.5 + parent: 2 +- proto: Wrench + entities: + - uid: 23825 + components: + - type: Transform + pos: 4.518403,14.99651 + parent: 2 + - uid: 23826 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 9.445876,-12.574354 + parent: 2 + - uid: 23827 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -37.36044,-50.650738 + parent: 2 + - uid: 23828 + components: + - type: Transform + pos: 24.5243,-10.427906 + parent: 2 + - uid: 23829 + components: + - type: Transform + pos: 43.49371,-18.25883 + parent: 2 + - uid: 23830 + components: + - type: Transform + pos: -5.615103,80.51257 + parent: 2 + - uid: 23831 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 28.5839,-32.279396 + parent: 2 + - uid: 23832 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -16.46088,-56.46564 + parent: 2 + - uid: 23833 + components: + - type: Transform + pos: -7.502454,-66.131325 + parent: 2 +- proto: Zipties + entities: + - uid: 8828 + components: + - type: Transform + parent: 8823 + - type: Physics + angularDamping: 0 + linearDamping: 0 + canCollide: False + - type: InsideEntityStorage + - uid: 23834 + components: + - type: Transform + pos: 46.49661,-29.494585 + parent: 2 + - uid: 23835 + components: + - type: Transform + pos: 46.390938,-29.618904 + parent: 2 + - uid: 23836 + components: + - type: Transform + pos: 46.602283,-29.364048 + parent: 2 +... diff --git a/Resources/Maps/saltern.yml b/Resources/Maps/saltern.yml index 33961b5acf..35a401a474 100644 --- a/Resources/Maps/saltern.yml +++ b/Resources/Maps/saltern.yml @@ -74072,13 +74072,6 @@ entities: - type: Transform pos: -13.373716,18.332554 parent: 31 -- proto: WeaponSubMachineGunWt550 - entities: - - uid: 1423 - components: - - type: Transform - pos: -8.457573,20.768534 - parent: 31 - proto: WeaponWaterBlaster entities: - uid: 8127 diff --git a/Resources/Maps/shoukou.yml b/Resources/Maps/shoukou.yml index afd78ab15e..6c47a6e31a 100644 --- a/Resources/Maps/shoukou.yml +++ b/Resources/Maps/shoukou.yml @@ -29615,13 +29615,6 @@ entities: - type: Transform pos: 37.28408,-33.635246 parent: 34 -- proto: ClothingBeltKatanaSheathFilled - entities: - - uid: 11721 - components: - - type: Transform - pos: 39.44033,-33.510246 - parent: 34 - proto: ClothingBeltMartialBlack entities: - uid: 143 diff --git a/Resources/Maps/submarine.yml b/Resources/Maps/submarine.yml index f517f5a5ab..cabb1ff29f 100644 --- a/Resources/Maps/submarine.yml +++ b/Resources/Maps/submarine.yml @@ -173681,7 +173681,6 @@ entities: occludes: True ents: - 22261 - - 22260 - 22262 - 22263 paper_label: !type:ContainerSlot @@ -241045,15 +241044,6 @@ entities: - type: Transform pos: -11.293884,37.834354 parent: 2 -- proto: WeaponSubMachineGunWt550 - entities: - - uid: 22260 - components: - - type: Transform - parent: 30282 - - type: Physics - canCollide: False - - type: InsideEntityStorage - proto: WeaponTurretHostile entities: - uid: 9161 diff --git a/Resources/Maps/tortuga.yml b/Resources/Maps/tortuga.yml index 399a06a400..cb638de033 100644 --- a/Resources/Maps/tortuga.yml +++ b/Resources/Maps/tortuga.yml @@ -153158,7 +153158,6 @@ entities: solutions: puddle: temperature: 293.15 - canMix: False canReact: True maxVol: 1000 name: null diff --git a/Resources/Migrations/frontierMigrations.yml b/Resources/Migrations/frontierMigrations.yml new file mode 100644 index 0000000000..e8d607494e --- /dev/null +++ b/Resources/Migrations/frontierMigrations.yml @@ -0,0 +1,2 @@ +# 2024-08-22 - Frontier Mail - Add more to these when they come up as mapped. Part of the Frontier Mail port, blame Tortuga. +MailPAI: MailNFPAI diff --git a/Resources/Migrations/migration.yml b/Resources/Migrations/migration.yml index 7f19699ad8..3ac6b353a9 100644 --- a/Resources/Migrations/migration.yml +++ b/Resources/Migrations/migration.yml @@ -126,28 +126,6 @@ DrinkGoldschlagerGlass: DrinkGildlagerGlass ClosetBase: ClosetSteelBase MonkeyCubeBox: VariantCubeBox -# 2024-01-08 -SalvagePartsT4Spawner: SalvageLootSpawner -SalvagePartsT3Spawner: SalvageLootSpawner -SalvagePartsT3T4Spawner: SalvageLootSpawner -SalvagePartsT2Spawner: SalvageLootSpawner -AdvancedCapacitorStockPart: CapacitorStockPart -SuperCapacitorStockPart: CapacitorStockPart -QuadraticCapacitorStockPart: CapacitorStockPart -NanoManipulatorStockPart: MicroManipulatorStockPart -PicoManipulatorStockPart: MicroManipulatorStockPart -FemtoManipulatorStockPart: MicroManipulatorStockPart -AdvancedMatterBinStockPart: MatterBinStockPart -SuperMatterBinStockPart: MatterBinStockPart -BluespaceMatterBinStockPart: MatterBinStockPart -AnsibleSubspaceStockPart: null -FilterSubspaceStockPart: null -AmplifierSubspaceStockPart: null -TreatmentSubspaceStockPart: null -AnalyzerSubspaceStockPart: null -CrystalSubspaceStockPart: null -TransmitterSubspaceStockPart: null - # 2024-01-10 ClothingHeadHatHoodRad: null @@ -182,7 +160,7 @@ ActionVehicleHorn: null CrateFunATV: null CrateFunSyndicateSegway: null MobTaxiBot: null -MobSupplyBot: null +# MobSupplyBot: null SpawnVehicleMotobike: null SpawnVehicleATV: null SpawnVehicleSecway: null @@ -234,6 +212,8 @@ AirlockShuttleEasyPryLocked: AirlockExternalShuttleLocked ClothingBackpackFilledDetective: ClothingBackpackSecurityFilledDetective ClothingBackpackDuffelFilledDetective: ClothingBackpackDuffelSecurityFilledDetective ClothingBackpackSatchelFilledDetective: ClothingBackpackSatchelSecurityFilledDetective +FoodChili: FoodChiliPepper +FoodChilly: FoodChillyPepper # 2024-03-16 ClothingHeadHatHairflower: FoodPoppy @@ -242,6 +222,8 @@ ClothingHeadHatHairflower: FoodPoppy RPED: null # 2024-03-30 +TraversalDistorterMachineCircuitboard: null +MachineTraversalDistorter: null # These are technically not equivalent, but it probably makes more sense to replace any existing SCAF stuff with SOME kind of armor, instead of just deleting it outright. ClothingHeadHelmetScaf: ClothingHeadHelmetBasic ClothingOuterArmorScaf: ClothingOuterArmorBasic @@ -254,3 +236,11 @@ BriefcaseSyndieBase: null # 2024-04-08 BodyBag_Container: BodyBag BodyBag_Folded: BodyBagFolded + +# 2024-04-26 +GlassBoxLaserBroken: GlassBoxBroken +ReinforcementRadioSyndicateMonkey: ReinforcementRadioSyndicateAncestor +ReinforcementRadioSyndicateMonkeyNukeops: ReinforcementRadioSyndicateAncestorNukeops + +# 2024-05-01 +DrinkBottleGoldschlager: DrinkBottleGildlager diff --git a/Resources/Prototypes/Accents/word_replacements.yml b/Resources/Prototypes/Accents/word_replacements.yml index a5269924f7..cb4cdf0683 100644 --- a/Resources/Prototypes/Accents/word_replacements.yml +++ b/Resources/Prototypes/Accents/word_replacements.yml @@ -425,3 +425,50 @@ chatsan-word-42: chatsan-replacement-42 chatsan-word-43: chatsan-replacement-43 chatsan-word-44: chatsan-replacement-44 + +- type: accent + id: liar + wordReplacements: + liar-word-1: liar-word-replacement-1 + liar-word-2: liar-word-replacement-2 + liar-word-3: liar-word-replacement-3 + liar-word-4: liar-word-replacement-4 + liar-word-5: liar-word-replacement-5 + liar-word-6: liar-word-replacement-6 + liar-word-7: liar-word-replacement-7 + liar-word-8: liar-word-replacement-8 + liar-word-9: liar-word-replacement-9 + liar-word-10: liar-word-replacement-10 + liar-word-11: liar-word-replacement-11 + liar-word-12: liar-word-replacement-12 + liar-word-13: liar-word-replacement-13 + liar-word-14: liar-word-replacement-14 + liar-word-15: liar-word-replacement-15 + liar-word-16: liar-word-replacement-16 + liar-word-17: liar-word-replacement-17 + liar-word-18: liar-word-replacement-18 + liar-word-19: liar-word-replacement-19 + liar-word-20: liar-word-replacement-20 + liar-word-21: liar-word-replacement-21 + liar-word-22: liar-word-replacement-22 + liar-word-23: liar-word-replacement-23 + liar-word-24: liar-word-replacement-24 + liar-word-25: liar-word-replacement-25 + liar-word-26: liar-word-replacement-26 + liar-word-27: liar-word-replacement-27 + liar-word-28: liar-word-replacement-28 + liar-word-29: liar-word-replacement-29 + liar-word-30: liar-word-replacement-30 + liar-word-31: liar-word-replacement-31 + liar-word-32: liar-word-replacement-32 + liar-word-33: liar-word-replacement-33 + liar-word-34: liar-word-replacement-34 + liar-word-34-2: liar-word-replacement-34 + liar-word-35: liar-word-replacement-35 + liar-word-36: liar-word-replacement-36 + liar-word-37: liar-word-replacement-37 + liar-word-38: liar-word-replacement-38 + liar-word-39: liar-word-replacement-39 + liar-word-40: liar-word-replacement-40 + liar-word-41: liar-word-replacement-41 + liar-word-42: liar-word-replacement-42 \ No newline at end of file diff --git a/Resources/Prototypes/Access/security.yml b/Resources/Prototypes/Access/security.yml index cfb6e60060..b64424d855 100644 --- a/Resources/Prototypes/Access/security.yml +++ b/Resources/Prototypes/Access/security.yml @@ -10,10 +10,9 @@ id: Armory name: id-card-access-level-armory -# Delta V: Removes Brig access because redundant -#- type: accessLevel -# id: Brig -# name: id-card-access-level-brig +- type: accessLevel + id: Brig + name: id-card-access-level-brig - type: accessLevel id: Detective @@ -25,14 +24,14 @@ - HeadOfSecurity - Security - Armory - #- Brig #Delta V removed + - Brig - Detective - Cryogenics - - Corpsman # DeltaV - add Corpsman access + - Corpsman - type: accessGroup id: Armory tags: - Security - Armory - # Brig #Delta V removed + - Brig diff --git a/Resources/Prototypes/Actions/polymorph.yml b/Resources/Prototypes/Actions/polymorph.yml index 7472fc0062..445dc8d9f5 100644 --- a/Resources/Prototypes/Actions/polymorph.yml +++ b/Resources/Prototypes/Actions/polymorph.yml @@ -14,3 +14,33 @@ - type: InstantAction event: !type:PolymorphActionEvent itemIconStyle: NoItem + +- type: entity + id: ActionPolymorphWizardSpider + name: Spider Polymorph + description: Polymorphs you into a Spider. + noSpawn: true + components: + - type: InstantAction + useDelay: 60 + event: !type:PolymorphActionEvent + protoId: WizardSpider + itemIconStyle: NoItem + icon: + sprite: Mobs/Animals/spider.rsi + state: tarantula + +- type: entity + id: ActionPolymorphWizardRod + name: Rod Form + description: CLANG! + noSpawn: true + components: + - type: InstantAction + useDelay: 60 + event: !type:PolymorphActionEvent + protoId: WizardRod + itemIconStyle: NoItem + icon: + sprite: Objects/Fun/immovable_rod.rsi + state: icon diff --git a/Resources/Prototypes/Actions/psionics.yml b/Resources/Prototypes/Actions/psionics.yml index 981d53884e..138823313a 100644 --- a/Resources/Prototypes/Actions/psionics.yml +++ b/Resources/Prototypes/Actions/psionics.yml @@ -146,3 +146,147 @@ icon: Interface/VerbIcons/psionic_invisibility_off.png event: !type:RemovePsionicInvisibilityOffPowerActionEvent +- type: entity + id: ActionHealingWord + name: action-name-healing-word + description: action-description-healing-word + noSpawn: true + components: + - type: EntityTargetAction + icon: { sprite : Interface/Actions/psionics.rsi, state: healing_word } + useDelay: 10 + checkCanAccess: false + range: 6 + itemIconStyle: BigAction + canTargetSelf: true + blacklist: + components: + - PsionicInsulation + - Mindbroken + event: !type:PsionicHealOtherPowerActionEvent + healingAmount: + groups: # These all get divided by the number of damage types in the group. So they're all -2.5. + Genetic: -2.5 + Toxin: -5 + Airloss: -5 + Brute: -7.5 + Burn: -10 + rotReduction: 10 + useDelay: 1 + doRevive: true + powerName: Healing Word + popupText: healing-word-begin + playSound: true + minGlimmer: 2 + maxGlimmer: 4 + glimmerSoundThreshold: 100 + glimmerPopupThreshold: 200 + glimmerDoAfterVisibilityThreshold: 70 + +- type: entity + id: ActionRevivify + name: action-name-revivify + description: action-description-revivify + noSpawn: true + components: + - type: EntityTargetAction + icon: { sprite : Interface/Actions/psionics.rsi, state: revivify } + useDelay: 120 + checkCanAccess: false + range: 2 + itemIconStyle: BigAction + canTargetSelf: false + blacklist: + components: + - PsionicInsulation + - Mindbroken + event: !type:PsionicHealOtherPowerActionEvent + healingAmount: + # These all get divided by the number of damage types in the group. So they're all -15 + # Additionally, they're multiplied by the caster's Amplification, which, + # assuming this is the only power they have, the multiplier is between 2.9-3.9 + groups: + Genetic: -15 + Toxin: -30 + Airloss: -60 # Except airloss, which heals 30 per type + Brute: -45 + Burn: -60 + rotReduction: 60 + doRevive: true + powerName: Revivify + popupText: revivify-begin + playSound: true + minGlimmer: 10 # These also get multiplied by caster stats. So, + maxGlimmer: 15 # keeping in mind the ~3.5x multiplier, this spikes glimmer by as much as 60 points. + glimmerSoundThreshold: 50 + glimmerPopupThreshold: 100 + glimmerDoAfterVisibilityThreshold: 35 + +- type: entity + id: ActionShadeskip + name: action-name-shadeskip + description: action-description-shadeskip + noSpawn: true + components: + - type: InstantAction + icon: { sprite : Interface/Actions/psionics.rsi, state: shadeskip } + useDelay: 45 + checkCanInteract: false + event: !type:AnomalyPowerActionEvent + settings: + powerName: "Shadeskip" + minGlimmer: 6 + maxGlimmer: 8 + glimmerSoundThreshold: 50 + doSupercritical: false + entitySpawnEntries: + - settings: + spawnOnPulse: true + spawnOnSuperCritical: true + minAmount: 5 + maxAmount: 8 + maxRange: 1.5 + spawns: + - ShadowKudzuWeak + - settings: + spawnOnPulse: true + spawnOnSuperCritical: true + minAmount: 1 + maxAmount: 1 + maxRange: 0.5 + spawns: + - EffectFlashShadeskip + +- type: entity + id: ActionTelekineticPulse + name: action-name-telekinetic-pulse + description: action-description-telekinetic-pulse + noSpawn: true + components: + - type: InstantAction + icon: { sprite : Interface/Actions/psionics.rsi, state: telekinetic_pulse } + useDelay: 45 + checkCanInteract: false + event: !type:AnomalyPowerActionEvent + settings: + powerName: "Telekinetic Pulse" + overchargeFeedback: "shadeskip-overcharge-feedback" # The text behind this is fine. + overchargeCooldown: 120 + overchargeRecoil: + groups: + Burn: -100 #This will be divided by the caster's Dampening. + minGlimmer: 6 + maxGlimmer: 8 + doSupercritical: false + entitySpawnEntries: + - settings: + spawnOnPulse: true + minAmount: 1 + maxAmount: 1 + maxRange: 0.5 + spawns: + - EffectFlashTelekineticPulse + gravity: + maxThrowRange: 3 + maxThrowStrength: 5 + spaceRange: 3 diff --git a/Resources/Prototypes/Actions/types.yml b/Resources/Prototypes/Actions/types.yml index 4f86447d3a..249cd83772 100644 --- a/Resources/Prototypes/Actions/types.yml +++ b/Resources/Prototypes/Actions/types.yml @@ -92,7 +92,6 @@ state: gib event: !type:ActivateImplantEvent - - type: entity id: ActionActivateFreedomImplant name: Break Free @@ -130,6 +129,7 @@ noSpawn: true components: - type: InstantAction + checkCanInteract: false charges: 3 useDelay: 5 itemIconStyle: BigAction @@ -171,6 +171,21 @@ state: icon event: !type:UseDnaScramblerImplantEvent +- type: entity + 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 + components: + - type: InstantAction + itemIconStyle: BigAction + useDelay: 10 # prevent spam + priority: -20 + icon: + sprite: Mobs/Aliens/slimes.rsi + state: blue_adult_slime + event: !type:MorphIntoGeras + - type: entity id: ActionToggleSuitPiece name: Toggle Suit Piece diff --git a/Resources/Prototypes/AlertLevels/alert_levels.yml b/Resources/Prototypes/AlertLevels/alert_levels.yml index 5a8cb2dd12..db15dc1388 100644 --- a/Resources/Prototypes/AlertLevels/alert_levels.yml +++ b/Resources/Prototypes/AlertLevels/alert_levels.yml @@ -5,18 +5,22 @@ green: announcement: alert-level-green-announcement color: Green + emergencyLightColor: LawnGreen sound: /Audio/Announcements/Alerts/code_green.ogg shuttleTime: 600 blue: announcement: alert-level-blue-announcement sound: /Audio/Announcements/Alerts/code_blue.ogg color: DodgerBlue + forceEnableEmergencyLights: true + emergencyLightColor: DodgerBlue shuttleTime: 600 violet: announcement: alert-level-violet-announcement sound: /Audio/Announcements/Alerts/code_violet.ogg color: Violet emergencyLightColor: Violet + forceEnableEmergencyLights: true shuttleTime: 600 white: announcement: alert-level-white-announcement @@ -29,11 +33,14 @@ sound: /Audio/Announcements/Alerts/code_yellow.ogg color: Yellow emergencyLightColor: Goldenrod + forceEnableEmergencyLights: true shuttleTime: 600 red: announcement: alert-level-red-announcement sound: /Audio/Announcements/Alerts/code_red.ogg color: Red + emergencyLightColor: Red + forceEnableEmergencyLights: true shuttleTime: 600 gamma: announcement: alert-level-gamma-announcement diff --git a/Resources/Prototypes/Alerts/alerts.yml b/Resources/Prototypes/Alerts/alerts.yml index 2315436e8b..6a05683ac1 100644 --- a/Resources/Prototypes/Alerts/alerts.yml +++ b/Resources/Prototypes/Alerts/alerts.yml @@ -27,6 +27,7 @@ - alertType: Pacified - alertType: Offer - alertType: RecentlyBlocked # WD EDIT + - alertType: Deflecting - type: entity id: AlertSpriteView @@ -616,3 +617,11 @@ state: mood_happiness_bad name: alerts-mood-dead-name description: alerts-mood-dead-desc + +- type: alert + id: Deflecting + icons: + - sprite: /Textures/Interface/Alerts/deflecting.rsi + state: deflecting0 + name: alerts-deflecting-name + description: alerts-deflecting-desc diff --git a/Resources/Prototypes/Anomaly/behaviours.yml b/Resources/Prototypes/Anomaly/behaviours.yml index aa9ad2f90d..e39933c365 100644 --- a/Resources/Prototypes/Anomaly/behaviours.yml +++ b/Resources/Prototypes/Anomaly/behaviours.yml @@ -58,14 +58,14 @@ id: DelayedForce earnPointModifier: 1.15 description: anomaly-behavior-delayed-force - pulseFrequencyModifier: 0.5 + pulseFrequencyModifier: 2 pulsePowerModifier: 2 - type: anomalyBehavior id: Rapid earnPointModifier: 1.15 description: anomaly-behavior-rapid - pulseFrequencyModifier: 2 + pulseFrequencyModifier: 0.5 pulsePowerModifier: 0.5 - type: anomalyBehavior @@ -84,6 +84,7 @@ description: anomaly-behavior-reflect components: - type: Reflect + innate: true reflectProb: 0.5 reflects: - Energy diff --git a/Resources/Prototypes/Body/Organs/Friendstomach.yml b/Resources/Prototypes/Body/Organs/Friendstomach.yml new file mode 100644 index 0000000000..a20bbbe75b --- /dev/null +++ b/Resources/Prototypes/Body/Organs/Friendstomach.yml @@ -0,0 +1,15 @@ +- type: entity + id: OrganFriendStomach + parent: OrganAnimalStomach + noSpawn: true + components: + - type: Stomach + - type: SolutionContainerManager + solutions: + stomach: + maxVol: 100 + food: + maxVol: 50 + reagents: + - ReagentId: UncookedAnimalProteins + Quantity: 5 diff --git a/Resources/Prototypes/Body/Organs/diona.yml b/Resources/Prototypes/Body/Organs/diona.yml index 69fc630b9e..a2133f7f90 100644 --- a/Resources/Prototypes/Body/Organs/diona.yml +++ b/Resources/Prototypes/Body/Organs/diona.yml @@ -27,11 +27,12 @@ - type: entity id: OrganDionaBrain - parent: [BaseDionaOrgan, OrganHumanBrain] + parent: OrganHumanBrain name: brain description: "The source of incredible, unending intelligence. Honk." components: - type: Sprite + sprite: Mobs/Species/Diona/organs.rsi state: brain - type: SolutionContainerManager solutions: @@ -102,7 +103,7 @@ layers: - state: lung-l - state: lung-r - - type: Lung + - type: Lung - type: Metabolizer removeEmpty: true solutionOnBody: false @@ -131,7 +132,7 @@ description: "The source of incredible, unending intelligence. Honk." components: - type: Brain - - type: Nymph # This will make the organs turn into a nymph when they're removed. + - type: Nymph # This will make the organs turn into a nymph when they're removed. entityPrototype: OrganDionaNymphBrain transferMind: true @@ -170,11 +171,11 @@ - type: entity id: OrganDionaNymphStomach - parent: MobDionaNymphAccent + parent: MobDionaNymphAccent noSpawn: true name: diona nymph suffix: Stomach - description: Contains the stomach of a formerly fully-formed Diona. It doesn't taste any better for it. + description: Contains the stomach of a formerly fully-formed Diona. It doesn't taste any better for it. components: - type: IsDeadIC - type: Body @@ -186,7 +187,7 @@ noSpawn: true name: diona nymph suffix: Lungs - description: Contains the lungs of a formerly fully-formed Diona. Breathtaking. + description: Contains the lungs of a formerly fully-formed Diona. Breathtaking. components: - type: IsDeadIC - type: Body diff --git a/Resources/Prototypes/Body/Organs/human.yml b/Resources/Prototypes/Body/Organs/human.yml index 69081020ce..e6a04d4a60 100644 --- a/Resources/Prototypes/Body/Organs/human.yml +++ b/Resources/Prototypes/Body/Organs/human.yml @@ -6,6 +6,13 @@ - type: Sprite sprite: Mobs/Species/Human/organs.rsi - type: Organ + +- type: entity + id: BaseHumanOrgan + parent: BaseHumanOrganUnGibbable + abstract: true + components: + - type: Gibbable - type: Food - type: Extractable grindableSolutionName: organ @@ -27,13 +34,6 @@ tags: - Meat -- type: entity - id: BaseHumanOrgan - parent: BaseHumanOrganUnGibbable - abstract: true - components: - - type: Gibbable - - type: entity id: OrganHumanBrain parent: BaseHumanOrganUnGibbable @@ -67,7 +67,7 @@ - type: FlavorProfile flavors: - people - + - type: entity id: OrganHumanEyes parent: BaseHumanOrgan diff --git a/Resources/Prototypes/Body/Organs/slime.yml b/Resources/Prototypes/Body/Organs/slime.yml index 3da76c5d4a..5b908e75f4 100644 --- a/Resources/Prototypes/Body/Organs/slime.yml +++ b/Resources/Prototypes/Body/Organs/slime.yml @@ -1,6 +1,6 @@ - type: entity id: SentientSlimeCore - parent: [BaseItem, OrganHumanBrain] + parent: OrganHumanBrain name: sentient slime core description: "The source of incredible, unending gooeyness." components: @@ -34,7 +34,7 @@ - ReagentId: Slime Quantity: 10 - + - type: entity id: OrganSlimeLungs parent: BaseHumanOrgan diff --git a/Resources/Prototypes/Body/Parts/terminator.yml b/Resources/Prototypes/Body/Parts/terminator.yml deleted file mode 100644 index 58530da959..0000000000 --- a/Resources/Prototypes/Body/Parts/terminator.yml +++ /dev/null @@ -1,158 +0,0 @@ -- type: entity - abstract: true - parent: BaseItem - id: PartTerminator - name: nt-800 body part - components: - - type: Sprite - sprite: Mobs/Species/Terminator/parts.rsi - - type: Icon - sprite: Mobs/Species/Terminator/parts.rsi - - type: Damageable - damageContainer: Inorganic - damageModifierSet: Cybernetic - - type: BodyPart - - type: ContainerContainer - containers: - bodypart: !type:Container - ents: [] - - type: Gibbable - - type: StaticPrice - price: 200 - -- type: entity - parent: PartTerminator - id: TorsoTerminator - name: nt-800 torso - components: - - type: Sprite - state: torso_m - - type: Icon - state: torso_m - - type: BodyPart - partType: Torso - -- type: entity - parent: PartTerminator - id: HeadTerminator - name: nt-800 skull - description: Its red eyes have powered down... for now. - components: - - type: Sprite - state: skull_icon - - type: Icon - state: skull_icon - - type: BodyPart - partType: Head - # killing a terminators worth big bucks - - type: StaticPrice - price: 2000 - - type: Tag - tags: - - Head - -- type: entity - parent: PartTerminator - id: LeftArmTerminator - name: left nt-800 arm - components: - - type: Sprite - state: l_arm - - type: Icon - state: l_arm - - type: BodyPart - partType: Arm - symmetry: Left - -- type: entity - parent: PartTerminator - id: RightArmTerminator - name: right nt-800 arm - components: - - type: Sprite - state: r_arm - - type: Icon - state: r_arm - - type: BodyPart - partType: Arm - symmetry: Right - -- type: entity - parent: PartTerminator - id: LeftHandTerminator - name: left nt-800 hand - components: - - type: Sprite - state: l_hand - - type: Icon - state: l_hand - - type: BodyPart - partType: Hand - symmetry: Left - -- type: entity - parent: PartTerminator - id: RightHandTerminator - name: right nt-800 hand - components: - - type: Sprite - state: r_hand - - type: Icon - state: r_hand - - type: BodyPart - partType: Hand - symmetry: Right - -- type: entity - parent: PartTerminator - id: LeftLegTerminator - name: left nt-800 leg - components: - - type: Sprite - state: l_leg - - type: Icon - state: l_leg - - type: BodyPart - partType: Leg - symmetry: Left - - type: MovementBodyPart - -- type: entity - parent: PartTerminator - id: RightLegTerminator - name: right nt-800 leg - components: - - type: Sprite - state: r_leg - - type: Icon - state: r_leg - - type: BodyPart - partType: Leg - symmetry: Right - - type: MovementBodyPart - -- type: entity - parent: PartTerminator - id: LeftFootTerminator - name: left nt-800 foot - components: - - type: Sprite - state: l_foot - - type: Icon - state: l_foot - - type: BodyPart - partType: Foot - symmetry: Left - -- type: entity - parent: PartTerminator - id: RightFootTerminator - name: right nt-800 foot - components: - - type: Sprite - state: r_foot - - type: Icon - state: r_foot - - type: BodyPart - partType: Foot - symmetry: Right diff --git a/Resources/Prototypes/Body/Parts/vox.yml b/Resources/Prototypes/Body/Parts/vox.yml index b163ed0864..9f89a0c583 100644 --- a/Resources/Prototypes/Body/Parts/vox.yml +++ b/Resources/Prototypes/Body/Parts/vox.yml @@ -33,10 +33,10 @@ components: - type: Sprite sprite: Mobs/Species/Vox/parts.rsi - state: "torso_m" + state: "torso" - type: Icon sprite: Mobs/Species/Vox/parts.rsi - state: "torso_m" + state: "torso" - type: BodyPart partType: Torso - type: Extractable @@ -54,10 +54,10 @@ components: - type: Sprite sprite: Mobs/Species/Vox/parts.rsi - state: "head_m" + state: "head" - type: Icon sprite: Mobs/Species/Vox/parts.rsi - state: "head_m" + state: "head" - type: BodyPart partType: Head vital: true diff --git a/Resources/Prototypes/Body/Prototypes/Friendshaped.yml b/Resources/Prototypes/Body/Prototypes/Friendshaped.yml new file mode 100644 index 0000000000..0ab85a0343 --- /dev/null +++ b/Resources/Prototypes/Body/Prototypes/Friendshaped.yml @@ -0,0 +1,24 @@ +- type: body + id: Friendshaped + name: "Friend-Shaped" + root: torso + slots: + torso: + part: TorsoAnimal + connections: + - hands + - legs + organs: + lungs: OrganAnimalLungs + stomach: OrganFriendStomach + liver: OrganAnimalLiver + heart: OrganAnimalHeart + kidneys: OrganAnimalKidneys + hands: + part: HandsAnimal + legs: + part: LegsAnimal + connections: + - feet + feet: + part: FeetAnimal diff --git a/Resources/Prototypes/Body/Prototypes/terminator.yml b/Resources/Prototypes/Body/Prototypes/terminator.yml deleted file mode 100644 index c271a89d86..0000000000 --- a/Resources/Prototypes/Body/Prototypes/terminator.yml +++ /dev/null @@ -1,85 +0,0 @@ -# not quite human... -- type: body - id: TerminatorFlesh - name: exterminator - root: torso - slots: - head: - part: HeadHuman - connections: - - torso - organs: - brain: MobTerminatorEndoskeleton - torso: - part: TorsoHuman - connections: - - left arm - - right arm - - left leg - - right leg - right arm: - part: RightArmHuman - connections: - - right hand - left arm: - part: LeftArmHuman - connections: - - left hand - right hand: - part: RightHandHuman - left hand: - part: LeftHandHuman - right leg: - part: RightLegHuman - connections: - - right foot - left leg: - part: LeftLegHuman - connections: - - left foot - right foot: - part: RightFootHuman - left foot: - part: LeftFootHuman - -# TODO: terminator body parts -- type: body - id: TerminatorEndoskeleton - name: terminatorEndoskeleton - root: torso - slots: - head: - part: HeadTerminator - connections: - - torso - torso: - part: TorsoTerminator - connections: - - left arm - - right arm - - left leg - - right leg - right arm: - part: RightArmTerminator - connections: - - right hand - left arm: - part: LeftArmTerminator - connections: - - left hand - right hand: - part: RightHandTerminator - left hand: - part: LeftHandTerminator - right leg: - part: RightLegTerminator - connections: - - right foot - left leg: - part: LeftLegTerminator - connections: - - left foot - right foot: - part: RightFootTerminator - left foot: - part: LeftFootTerminator diff --git a/Resources/Prototypes/Catalog/Cargo/cargo_engines.yml b/Resources/Prototypes/Catalog/Cargo/cargo_engines.yml index bd00b0c2d4..8d3bea5075 100644 --- a/Resources/Prototypes/Catalog/Cargo/cargo_engines.yml +++ b/Resources/Prototypes/Catalog/Cargo/cargo_engines.yml @@ -28,17 +28,17 @@ category: cargoproduct-category-name-engineering group: market -#- type: cargoProduct -# name: "emitter crate" -# id: EngineSingularityEmitter -# description: "Contains an emitter. Used only for dangerous applications." -# icon: -# sprite: Structures/Power/Generation/Singularity/emitter.rsi -# state: emitter2 -# product: CrateEngineeringSingularityEmitter -# cost: 3000 -# category: cargoproduct-category-name-engineering -# group: market +- type: cargoProduct + name: "emitter crate" + id: EngineSingularityEmitter + description: "Contains an emitter. Used only for dangerous applications." + icon: + sprite: Structures/Power/Generation/Singularity/emitter.rsi + state: emitter2 + product: CrateEngineeringSingularityEmitter + cost: 3000 + category: cargoproduct-category-name-engineering + group: market - type: cargoProduct id: EngineSingularityCollector diff --git a/Resources/Prototypes/Catalog/Cargo/cargo_hardsuits.yml b/Resources/Prototypes/Catalog/Cargo/cargo_hardsuits.yml new file mode 100644 index 0000000000..a2f8b035b0 --- /dev/null +++ b/Resources/Prototypes/Catalog/Cargo/cargo_hardsuits.yml @@ -0,0 +1,92 @@ +# Engineering +- type: cargoProduct + id: EngineeringFotiaHardsuit + icon: + sprite: Clothing/OuterClothing/Hardsuits/atmospherics.rsi + state: icon + product: CrateEngineeringFotiaHardsuit + cost: 2250 + category: cargoproduct-category-name-hardsuits + group: market + +- type: cargoProduct + id: EngineeringLampsiHardsuit + icon: + sprite: Clothing/OuterClothing/Hardsuits/engineering.rsi + state: icon + product: CrateEngineeringLampsiHardsuit + cost: 2250 + category: cargoproduct-category-name-hardsuits + group: market + +# Logistics +- type: cargoProduct + id: LogisticsKritiHardsuit + icon: + sprite: Clothing/OuterClothing/Hardsuits/spatio.rsi + state: icon + product: CrateLogisticsKritiHardsuit + cost: 1250 + category: cargoproduct-category-name-hardsuits + group: market + +- type: cargoProduct + id: LogisticsLavrionHardsuit + icon: + sprite: Clothing/OuterClothing/Hardsuits/salvage.rsi + state: icon + product: CrateLogisticsLavrionHardsuit + cost: 3500 + category: cargoproduct-category-name-hardsuits + group: market + +# Security +- type: cargoProduct + id: SecurityShanlinTacsuit + icon: + sprite: Nyanotrasen/Clothing/OuterClothing/ReverseEngineering/syndicate.rsi + state: icon + product: CrateSecurityShanlinTacsuit + cost: 17500 + category: cargoproduct-category-name-hardsuits + group: market + +- type: cargoProduct + id: SecurityGuanYuTacsuit + icon: + sprite: Nyanotrasen/Clothing/OuterClothing/ReverseEngineering/juggernaut.rsi + state: icon + product: CrateSecurityGuanYuTacsuit + cost: 30000 + category: cargoproduct-category-name-hardsuits + group: market + +- type: cargoProduct + id: SecurityBaghaturTacsuit + icon: + sprite: DeltaV/Clothing/OuterClothing/Hardsuits/Combat/standard.rsi + state: icon + product: CrateSecurityBaghaturTacsuit + cost: 5000 + category: cargoproduct-category-name-hardsuits + group: market + +- type: cargoProduct + id: SecuritySuldeTacsuit + icon: + sprite: DeltaV/Clothing/OuterClothing/Hardsuits/Combat/riot.rsi + state: icon + product: CrateSecuritySuldeTacsuit + cost: 7500 + category: cargoproduct-category-name-hardsuits + group: market + +- type: cargoProduct + id: SecurityTsagaanTacsuit + icon: + sprite: DeltaV/Clothing/OuterClothing/Hardsuits/Combat/medical.rsi + state: icon + product: CrateSecurityTsagaanTacsuit + cost: 5500 + category: cargoproduct-category-name-hardsuits + group: market diff --git a/Resources/Prototypes/Catalog/Cargo/cargo_security.yml b/Resources/Prototypes/Catalog/Cargo/cargo_security.yml index 2ad7628ddb..e22f9fd5e7 100644 --- a/Resources/Prototypes/Catalog/Cargo/cargo_security.yml +++ b/Resources/Prototypes/Catalog/Cargo/cargo_security.yml @@ -34,7 +34,7 @@ sprite: DeltaV/Clothing/OuterClothing/Armor/riot.rsi # DeltaV - resprite state: icon product: CrateSecurityRiot - cost: 5500 + cost: 7500 category: cargoproduct-category-name-security group: market diff --git a/Resources/Prototypes/Catalog/Fills/Crates/engines.yml b/Resources/Prototypes/Catalog/Fills/Crates/engines.yml index 9b47036b01..79698b550a 100644 --- a/Resources/Prototypes/Catalog/Fills/Crates/engines.yml +++ b/Resources/Prototypes/Catalog/Fills/Crates/engines.yml @@ -42,7 +42,7 @@ components: - type: StorageFill contents: - - id: Emitter # TODO change to flatpack + - id: EmitterFlatpack # TODO change to flatpack - type: entity id: CrateEngineeringSingularityCollector diff --git a/Resources/Prototypes/Catalog/Fills/Crates/hardsuits.yml b/Resources/Prototypes/Catalog/Fills/Crates/hardsuits.yml new file mode 100644 index 0000000000..9d6f46c499 --- /dev/null +++ b/Resources/Prototypes/Catalog/Fills/Crates/hardsuits.yml @@ -0,0 +1,92 @@ +# Engineering +- type: entity + id: CrateEngineeringFotiaHardsuit + parent: CrateEngineering + name: fotia hardsuit crate + description: Contains a single HpI-19t "Fotia" hardsuit. Requires Engineering access to open. + components: + - type: StorageFill + contents: + - id: ClothingOuterHardsuitAtmos + +- type: entity + id: CrateEngineeringLampsiHardsuit + parent: CrateEngineering + name: lampsi hardsuit crate + description: Contains a single HpI-19r "Lampsi" hardsuit. Requires Engineering access to open. + components: + - type: StorageFill + contents: + - id: ClothingOuterHardsuitAtmos + +# Logistics +- type: entity + id: CrateLogisticsKritiHardsuit + parent: CrateGenericSteel + name: kriti hardsuit crate + description: Contains a single HpI-20s "Kriti" hardsuit. + components: + - type: StorageFill + contents: + - id: ClothingOuterHardsuitSpatio + +- type: entity + id: CrateLogisticsLavrionHardsuit + parent: CrateGenericSteel + name: lavrion hardsuit crate + description: Contains a single HpI-20a "Lavrion" hardsuit. + components: + - type: StorageFill + contents: + - id: ClothingOuterHardsuitSalvage + +# Security +- type: entity + id: CrateSecurityShanlinTacsuit + parent: CrateSecgear + name: shanlin tacsuit crate + description: Contains a single CSA-51a "Shanlin" tacsuit. Requires Security access to open. + components: + - type: StorageFill + contents: + - id: ClothingOuterHardsuitSyndieReverseEngineered + +- type: entity + id: CrateSecurityGuanYuTacsuit + parent: CrateSecgear + name: guan-yu tacsuit crate + description: Contains a single CSA-80UA "Guan-Yu" tacsuit. Requires Security access to open. + components: + - type: StorageFill + contents: + - id: ClothingOuterHardsuitJuggernautReverseEngineered + +- type: entity + id: CrateSecurityBaghaturTacsuit + parent: CrateSecgear + name: baghatur tacsuit crate + description: Contains a single FPA-83s "Baghatur" tacsuit. Requires Security access to open. + components: + - type: StorageFill + contents: + - id: ClothingOuterHardsuitCombatStandard + +- type: entity + id: CrateSecuritySuldeTacsuit + parent: CrateSecgear + name: sulde tacsuit crate + description: Contains a single FPA-93 - "Sulde Mk.II" tacsuit. Requires Security access to open. + components: + - type: StorageFill + contents: + - id: ClothingOuterHardsuitCombatRiot + +- type: entity + id: CrateSecurityTsagaanTacsuit + parent: CrateSecgear + name: tsagaan tacsuit crate + description: Contains a single FPA-86 - "Tsagaan Mk.II" tacsuit. Requires Security access to open. + components: + - type: StorageFill + contents: + - id: ClothingOuterHardsuitCombatMedical diff --git a/Resources/Prototypes/Catalog/Fills/Crates/service.yml b/Resources/Prototypes/Catalog/Fills/Crates/service.yml index 141f98edab..35e66ac4d3 100644 --- a/Resources/Prototypes/Catalog/Fills/Crates/service.yml +++ b/Resources/Prototypes/Catalog/Fills/Crates/service.yml @@ -20,7 +20,7 @@ - id: Plunger amount: 2 - id: BoxCleanerGrenades - + - type: entity id: CrateServiceReplacementLights parent: CrateGenericSteel @@ -88,6 +88,10 @@ - id: ClothingNeckCloakVoid - id: RevolverCapGun - id: BarberScissors + - id: ClothingUniformJumpskirtOldDress + - id: BikeHorn + - id: ClownRecorder + - id: ClothingBeltSuspenders - type: entity id: CrateServiceCustomSmokable diff --git a/Resources/Prototypes/Catalog/Fills/Lockers/engineer.yml b/Resources/Prototypes/Catalog/Fills/Lockers/engineer.yml index e4d995e52e..b3efb6ec1d 100644 --- a/Resources/Prototypes/Catalog/Fills/Lockers/engineer.yml +++ b/Resources/Prototypes/Catalog/Fills/Lockers/engineer.yml @@ -65,13 +65,20 @@ components: - type: StorageFill contents: + - id: ClothingHeadHatWelding + - id: ClothingHeadHatWelding + - id: ClothingHeadHatWelding + prob: 0.5 + - id: Welder + - id: Welder - id: WelderMini + orGroup: thirdWelder - id: Welder - prob: 0.7 + prob: 0.33 + orGroup: thirdWelder - id: WelderIndustrial - prob: 0.5 - - id: ClothingHeadHatWelding - prob: 0.5 + prob: 0.33 + orGroup: thirdWelder - type: entity id: LockerAtmosphericsFilledHardsuit diff --git a/Resources/Prototypes/Catalog/Fills/Lockers/heads.yml b/Resources/Prototypes/Catalog/Fills/Lockers/heads.yml index 752591da37..5898468c34 100644 --- a/Resources/Prototypes/Catalog/Fills/Lockers/heads.yml +++ b/Resources/Prototypes/Catalog/Fills/Lockers/heads.yml @@ -15,6 +15,8 @@ prob: 0.50 - id: DoorRemoteCargo - id: RubberStampQm + - id: RubberStampDenied + - id: RubberStampApproved - id: ClothingHeadsetAltCargo - id: BoxEncryptionKeyCargo - id: SpaceCashLuckyBill # DeltaV - LO steal objective, see Resources/Prototypes/DeltaV/Entities/Objects/Misc/first_bill.yml @@ -132,6 +134,8 @@ - id: DoorRemoteService - id: ClothingNeckGoldmedal - id: RubberStampHop + - id: RubberStampDenied + - id: RubberStampApproved - id: BoxEncryptionKeyPassenger - id: BoxEncryptionKeyService - id: AccessConfigurator @@ -315,7 +319,6 @@ - id: HoloprojectorSecurity - id: BookSecretDocuments - id: BoxPDASecurity # Delta-V - - id: WeaponEnergyGunMultiphase # DeltaV - HoS Energy Gun - id: HoSIDCard # Delta-V - id: LunchboxCommandFilledRandom # Delta-V Lunchboxes! prob: 0.3 @@ -344,7 +347,6 @@ - id: HoloprojectorSecurity - id: BookSecretDocuments - id: BoxPDASecurity # Delta-V - - id: WeaponEnergyGunMultiphase # DeltaV - HoS Energy Gun - id: HoSIDCard # Delta-V - id: LunchboxCommandFilledRandom # Delta-V Lunchboxes! prob: 0.3 diff --git a/Resources/Prototypes/Catalog/Fills/Lockers/service.yml b/Resources/Prototypes/Catalog/Fills/Lockers/service.yml index b86fa2e1f5..83bbdb435f 100644 --- a/Resources/Prototypes/Catalog/Fills/Lockers/service.yml +++ b/Resources/Prototypes/Catalog/Fills/Lockers/service.yml @@ -5,8 +5,6 @@ components: - type: StorageFill contents: - - id: ClothingOuterArmorDuraVest # DeltaV - ClothingOuterArmorBasicSlim replaced in favour of stabproof vest - - id: WeaponShotgunDoubleBarreledRubber - id: DrinkShaker - id: ClothingEyesHudBeer - id: HandLabeler @@ -17,8 +15,6 @@ prob: 0.5 - id: DrinkBottleBeer prob: 0.5 - - id: BoxBeanbag - amount: 2 - id: RagItem amount: 2 - id: LunchboxServiceFilledRandom # Delta-V Lunchboxes! diff --git a/Resources/Prototypes/Catalog/Fills/Paper/manuals.yml b/Resources/Prototypes/Catalog/Fills/Paper/manuals.yml index e13070d1ba..4893fa2557 100644 --- a/Resources/Prototypes/Catalog/Fills/Paper/manuals.yml +++ b/Resources/Prototypes/Catalog/Fills/Paper/manuals.yml @@ -19,7 +19,7 @@ key: enum.PaperUiKey.Key - type: UserInterface interfaces: - - key: enum.PaperUiKey.Key - type: PaperBoundUserInterface + enum.PaperUiKey.Key: + type: PaperBoundUserInterface - type: Paper content: book-text-holoparasite-info diff --git a/Resources/Prototypes/Catalog/Jukebox/Standard.yml b/Resources/Prototypes/Catalog/Jukebox/Standard.yml index e9d86874c5..7440428bd4 100644 --- a/Resources/Prototypes/Catalog/Jukebox/Standard.yml +++ b/Resources/Prototypes/Catalog/Jukebox/Standard.yml @@ -33,3 +33,9 @@ name: Qwertyquerty - Starlight path: path: /Audio/Jukebox/starlight.ogg + +- type: jukebox + id: sunset + name: PigeonBeans - Sunset + path: + path: /Audio/Jukebox/sunset.ogg diff --git a/Resources/Prototypes/Catalog/ReagentDispensers/beverage.yml b/Resources/Prototypes/Catalog/ReagentDispensers/beverage.yml index 975541a502..4689e26f8e 100644 --- a/Resources/Prototypes/Catalog/ReagentDispensers/beverage.yml +++ b/Resources/Prototypes/Catalog/ReagentDispensers/beverage.yml @@ -6,6 +6,7 @@ - DrinkColaBottleFull - DrinkCreamCartonXL - DrinkDrGibbJug + - DrinkEnergyDrinkJug - DrinkGreenTeaJug - DrinkIceJug - DrinkJuiceLimeCartonXL diff --git a/Resources/Prototypes/Catalog/VendingMachines/Inventories/boozeomat.yml b/Resources/Prototypes/Catalog/VendingMachines/Inventories/boozeomat.yml index ac298b240a..1d86640d1c 100644 --- a/Resources/Prototypes/Catalog/VendingMachines/Inventories/boozeomat.yml +++ b/Resources/Prototypes/Catalog/VendingMachines/Inventories/boozeomat.yml @@ -7,6 +7,9 @@ DrinkVacuumFlask: 5 DrinkFlaskBar: 5 DrinkShaker: 5 + DrinkJigger: 5 + DrinkIceBucket: 2 + BarSpoon: 3 CustomDrinkJug: 2 #to allow for custom drinks in the soda/booze dispensers DrinkAbsintheBottleFull: 2 DrinkAleBottleFull: 5 @@ -15,6 +18,7 @@ DrinkCognacBottleFull: 4 DrinkCoconutWaterCarton: 3 DrinkColaBottleFull: 4 + DrinkEnergyDrinkCan: 8 DrinkMilkCarton: 2 DrinkCreamCarton: 5 DrinkGinBottleFull: 3 diff --git a/Resources/Prototypes/Catalog/VendingMachines/Inventories/chang.yml b/Resources/Prototypes/Catalog/VendingMachines/Inventories/chang.yml index 282f58535b..5befd85ca8 100644 --- a/Resources/Prototypes/Catalog/VendingMachines/Inventories/chang.yml +++ b/Resources/Prototypes/Catalog/VendingMachines/Inventories/chang.yml @@ -7,4 +7,5 @@ DrinkHellRamen: 3 FoodSnackChowMein: 3 FoodSnackDanDanNoodles: 3 + PairedChopsticks: 3 # rice? diff --git a/Resources/Prototypes/Catalog/VendingMachines/Inventories/curadrobe.yml b/Resources/Prototypes/Catalog/VendingMachines/Inventories/curadrobe.yml index aac1cbb3f4..fe332ea52d 100644 --- a/Resources/Prototypes/Catalog/VendingMachines/Inventories/curadrobe.yml +++ b/Resources/Prototypes/Catalog/VendingMachines/Inventories/curadrobe.yml @@ -4,6 +4,7 @@ BooksBag: 2 BriefcaseBrown: 2 HandLabeler: 2 + Cane: 3 ClothingEyesGlasses: 2 ClothingEyesGlassesJamjar: 2 ClothingNeckScarfStripedGreen: 2 diff --git a/Resources/Prototypes/Catalog/VendingMachines/Inventories/detdrobe.yml b/Resources/Prototypes/Catalog/VendingMachines/Inventories/detdrobe.yml index f45dd229a2..91e45c8391 100644 --- a/Resources/Prototypes/Catalog/VendingMachines/Inventories/detdrobe.yml +++ b/Resources/Prototypes/Catalog/VendingMachines/Inventories/detdrobe.yml @@ -4,7 +4,7 @@ ClothingUniformJumpsuitDetective: 2 ClothingUniformJumpskirtDetective: 2 ClothingShoesColorBrown: 2 - ClothingOuterCoatDetective: 2 + ClothingOuterCoatDetectiveLoadout: 2 ClothingHeadHatFedoraBrown: 2 ClothingUniformJumpsuitDetectiveGrey: 2 ClothingUniformJumpskirtDetectiveGrey: 2 diff --git a/Resources/Prototypes/Catalog/VendingMachines/Inventories/dinnerware.yml b/Resources/Prototypes/Catalog/VendingMachines/Inventories/dinnerware.yml index 0b9a73aa6e..ba270a9af8 100644 --- a/Resources/Prototypes/Catalog/VendingMachines/Inventories/dinnerware.yml +++ b/Resources/Prototypes/Catalog/VendingMachines/Inventories/dinnerware.yml @@ -6,6 +6,7 @@ RollingPin: 4 Spoon: 4 Fork: 4 + PairedChopsticks: 4 FoodBowlBig: 10 FoodPlate: 10 FoodPlateSmall: 10 diff --git a/Resources/Prototypes/Catalog/VendingMachines/Inventories/discount.yml b/Resources/Prototypes/Catalog/VendingMachines/Inventories/discount.yml index ddf7943217..fc8492dcf1 100644 --- a/Resources/Prototypes/Catalog/VendingMachines/Inventories/discount.yml +++ b/Resources/Prototypes/Catalog/VendingMachines/Inventories/discount.yml @@ -4,6 +4,7 @@ FoodSnackCheesie: 3 FoodSnackChips: 3 FoodSnackBoritos: 3 + DrinkEnergyDrinkCan: 4 FoodSnackPopcorn: 3 FoodSnackEnergy: 3 CigPackMixed: 2 diff --git a/Resources/Prototypes/Catalog/VendingMachines/Inventories/medical.yml b/Resources/Prototypes/Catalog/VendingMachines/Inventories/medical.yml index 6ac13d48d5..5f4600ed13 100644 --- a/Resources/Prototypes/Catalog/VendingMachines/Inventories/medical.yml +++ b/Resources/Prototypes/Catalog/VendingMachines/Inventories/medical.yml @@ -7,8 +7,7 @@ Bloodpack: 5 EpinephrineChemistryBottle: 3 Syringe: 5 - Portafib: 1 # DeltaV - Add Portafibs, see Prototypes/DeltaV/Entities/Objects/Devices/Medical/portafib.yml - ClothingEyesGlasses: 5 # SimpleStation14 NearsightedTrait + Portafib: 1 + ClothingEyesGlasses: 5 ClothingEyesHudMedical: 2 ClothingEyesEyepatchHudMedical: 2 - diff --git a/Resources/Prototypes/Catalog/VendingMachines/Inventories/sec.yml b/Resources/Prototypes/Catalog/VendingMachines/Inventories/sec.yml index 01b58ae40f..723f944222 100644 --- a/Resources/Prototypes/Catalog/VendingMachines/Inventories/sec.yml +++ b/Resources/Prototypes/Catalog/VendingMachines/Inventories/sec.yml @@ -19,11 +19,12 @@ RiotShield: 2 RiotLaserShield: 2 RiotBulletShield: 2 - ClothingHeadHelmetInsulated: 2 # Nyanotrasen - Insulative headgear - ClothingHeadCage: 2 # Nyanotrasen - Insulative headgear - ClothingOuterArmorPlateCarrier: 2 # DeltaV - moved body armour from SecDrobe to SecTech + RadioHandheldSecurity: 5 + ClothingHeadHelmetInsulated: 2 + ClothingHeadCage: 2 + ClothingOuterArmorPlateCarrier: 2 ClothingOuterArmorDuraVest: 2 - ClothingHeadHelmetBasic: 2 # DeltaV - added helmets to the SecTech. Another line of defense between the tide and your grey matter. + ClothingHeadHelmetBasic: 2 BreachingCharge: 8 # security officers need to follow a diet regimen! contrabandInventory: diff --git a/Resources/Prototypes/Catalog/spellbook_catalog.yml b/Resources/Prototypes/Catalog/spellbook_catalog.yml new file mode 100644 index 0000000000..38b95c3273 --- /dev/null +++ b/Resources/Prototypes/Catalog/spellbook_catalog.yml @@ -0,0 +1,140 @@ +# Offensive +- type: listing + id: SpellbookFireball + name: spellbook-fireball-name + description: spellbook-fireball-desc + productAction: ActionFireball + productUpgradeId: SpellbookFireballUpgrade + cost: + WizCoin: 2 + categories: + - SpellbookOffensive + conditions: + - !type:ListingLimitedStockCondition + stock: 1 + +- type: listing + id: SpellbookRodForm + name: spellbook-polymorph-rod-name + description: spellbook-polymorph-rod-desc + productAction: ActionPolymorphWizardRod + cost: + WizCoin: 3 + categories: + - SpellbookOffensive + conditions: + - !type:ListingLimitedStockCondition + stock: 1 + +# Defensive +- type: listing + id: SpellbookForceWall + name: spellbook-force-wall-name + description: spellbook-force-wall-desc + productAction: ActionForceWall + cost: + WizCoin: 3 + categories: + - SpellbookDefensive + +# Utility +- type: listing + id: SpellbookPolymorphSpider + name: spellbook-polymoprh-spider-name + description: spellbook-polymorph-spider-desc + productAction: ActionPolymorphWizardSpider + cost: + WizCoin: 2 + categories: + - SpellbookUtility + conditions: + - !type:ListingLimitedStockCondition + stock: 1 + +- type: listing + id: SpellbookBlink + name: spellbook-blink-name + description: spellbook-blink-desc + productAction: ActionBlink + cost: + WizCoin: 1 + categories: + - SpellbookUtility + conditions: + - !type:ListingLimitedStockCondition + stock: 1 + +- type: listing + id: SpellbookCharge + name: spellbook-charge-name + description: spellbook-charge-desc + productAction: ActionChargeSpell + cost: + WizCoin: 1 + categories: + - SpellbookUtility + conditions: + - !type:ListingLimitedStockCondition + stock: 1 + +# Equipment +- type: listing + id: SpellbookWandDoor + name: spellbook-wand-polymorph-door-name + description: spellbook-wand-polymorph-door-description + productEntity: WeaponWandPolymorphDoor + cost: + WizCoin: 3 + categories: + - SpellbookEquipment + conditions: + - !type:ListingLimitedStockCondition + stock: 1 + +- type: listing + id: SpellbookWandPolymorphCarp + name: spellbook-wand-polymorph-carp-name + description: spellbook-wand-polymorph-carp-description + productEntity: WeaponWandPolymorphCarp + cost: + WizCoin: 3 + categories: + - SpellbookEquipment + conditions: + - !type:ListingLimitedStockCondition + stock: 1 + +# Event +- type: listing + id: SpellbookEventSummonGhosts + name: spellbook-event-summon-ghosts-name + description: spellbook-event-summon-ghosts-description + productAction: ActionSummonGhosts + cost: + WizCoin: 0 + categories: + - SpellbookEvents + conditions: + - !type:ListingLimitedStockCondition + stock: 1 + +# Upgrades +- type: listing + id: SpellbookFireballUpgrade + productUpgradeId: SpellbookFireballUpgrade + name: spellbook-upgrade-fireball-name + description: spellbook-upgrade-fireball-description + icon: + sprite: Objects/Magic/magicactions.rsi + state: fireball + cost: + WizCoin: 2 + categories: + - SpellbookOffensive + conditions: + - !type:BuyBeforeCondition + whitelist: + - SpellbookFireball + # manual for now + - !type:ListingLimitedStockCondition + stock: 2 diff --git a/Resources/Prototypes/Catalog/thief_toolbox_sets.yml b/Resources/Prototypes/Catalog/thief_toolbox_sets.yml index c102190e81..4f0a02535a 100644 --- a/Resources/Prototypes/Catalog/thief_toolbox_sets.yml +++ b/Resources/Prototypes/Catalog/thief_toolbox_sets.yml @@ -14,6 +14,7 @@ - ClothingEyesChameleon - ClothingHeadsetChameleon - ClothingShoesChameleon + - ChameleonProjector - type: thiefBackpackSet id: ToolsSet diff --git a/Resources/Prototypes/Catalog/uplink_catalog.yml b/Resources/Prototypes/Catalog/uplink_catalog.yml index fc040e9e95..03e0743509 100644 --- a/Resources/Prototypes/Catalog/uplink_catalog.yml +++ b/Resources/Prototypes/Catalog/uplink_catalog.yml @@ -10,7 +10,7 @@ Telecrystal: 3 categories: - UplinkWeapons - saleLimit: 1 # WD EDIT + saleLimit: 1 - type: listing id: UplinkRevolverPython @@ -21,7 +21,7 @@ Telecrystal: 8 # Originally was 13 TC but was not used due to high cost categories: - UplinkWeapons - saleLimit: 1 # WD EDIT + saleLimit: 1 # Inbuilt suppressor so it's sneaky + more expensive. - type: listing @@ -33,7 +33,7 @@ Telecrystal: 4 categories: - UplinkWeapons - saleLimit: 1 # WD EDIT + saleLimit: 1 # Poor accuracy, slow to fire, cheap option - type: listing @@ -45,7 +45,7 @@ Telecrystal: 1 categories: - UplinkWeapons - saleLimit: 1 # WD EDIT + saleLimit: 1 - type: listing id: UplinkEsword @@ -57,7 +57,7 @@ Telecrystal: 8 categories: - UplinkWeapons - saleLimit: 2 # WD EDIT + saleLimit: 2 - type: listing id: UplinkEnergyDagger @@ -69,7 +69,7 @@ Telecrystal: 2 categories: - UplinkWeapons - saleLimit: 1 # WD EDIT + saleLimit: 1 - type: listing id: UplinkThrowingKnivesKit @@ -91,7 +91,7 @@ Telecrystal: 8 categories: - UplinkWeapons - saleLimit: 1 # WD EDIT + saleLimit: 1 - type: listing id: UplinkDisposableTurret @@ -107,7 +107,7 @@ blacklist: tags: - NukeOpsUplink - saleLimit: 2 # WD EDIT + saleLimit: 2 - type: listing id: BaseBallBatHomeRun @@ -120,7 +120,7 @@ Telecrystal: 16 categories: - UplinkWeapons - saleLimit: 1 # WD EDIT + saleLimit: 1 # Explosives @@ -223,7 +223,7 @@ whitelist: tags: - NukeOpsUplink - saleLimit: 1 # WD EDIT + saleLimit: 1 - type: listing id: UplinkC4Bundle @@ -234,7 +234,7 @@ Telecrystal: 12 #you're buying bulk so its a 25% discount categories: - UplinkExplosives - saleLimit: 1 # WD EDIT + saleLimit: 1 - type: listing id: UplinkEmpGrenade @@ -272,7 +272,7 @@ blacklist: tags: - NukeOpsUplink - saleLimit: 1 # WD EDIT + saleLimit: 1 - type: listing id: UplinkSyndicateBombNukie @@ -288,7 +288,7 @@ whitelist: tags: - NukeOpsUplink - saleLimit: 1 # WD EDIT + saleLimit: 1 - type: listing id: UplinkClusterGrenade @@ -393,21 +393,193 @@ #Utility -#- type: listing # -# id: UplinkHoloparaKit -# name: uplink-holopara-kit-name -# description: uplink-holopara-kit-desc -# icon: { sprite: /Textures/Objects/Misc/guardian_info.rsi, state: icon } -# productEntity: BoxHoloparasite -# cost: -# Telecrystal: 14 -# categories: -# - UplinkUtility -# conditions: -# - !type:StoreWhitelistCondition -# blacklist: -# tags: -# - NukeOpsUplink +- type: listing + id: UplinkZombieBundle + name: uplink-zombie-bundle-name + description: uplink-zombie-bundle-desc + icon: { sprite: /Textures/Structures/Wallmounts/signs.rsi, state: bio } + productEntity: ClothingBackpackDuffelZombieBundle + cost: + Telecrystal: 40 + categories: + - UplinkChemicals + conditions: + - !type:StoreWhitelistCondition + whitelist: + tags: + - NukeOpsUplink + - !type:BuyerWhitelistCondition + blacklist: + components: + - SurplusBundle + saleLimit: 1 + +- type: listing + id: UplinkNocturineChemistryBottle + name: uplink-nocturine-chemistry-bottle-name + description: uplink-nocturine-chemistry-bottle-desc + productEntity: NocturineChemistryBottle + cost: + Telecrystal: 6 + categories: + - UplinkChemicals + saleLimit: 1 + +- type: listing + id: UplinkCombatMedkit + name: uplink-combat-medkit-name + description: uplink-combat-medkit-desc + productEntity: MedkitCombatFilled + cost: + Telecrystal: 5 + categories: + - UplinkChemicals + saleLimit: 1 + +- type: listing + id: UplinkCombatMedipen + name: uplink-combat-medipen-name + description: uplink-combat-medipen-desc + productEntity: CombatMedipen + cost: + Telecrystal: 4 + categories: + - UplinkChemicals + saleLimit: 1 + +- type: listing + id: UplinkStimpack + name: uplink-stimpack-name + description: uplink-stimpack-desc + productEntity: Stimpack + cost: + Telecrystal: 4 + categories: + - UplinkChemicals + saleLimit: 1 + +- type: listing + id: UplinkStimkit + name: uplink-stimkit-name + description: uplink-stimkit-desc + productEntity: StimkitFilled + cost: + Telecrystal: 12 + categories: + - UplinkChemicals + saleLimit: 1 + +- type: listing + id: UplinkCigarettes + name: uplink-cigarettes-name + description: uplink-cigarettes-desc + productEntity: CigPackSyndicate + cost: + Telecrystal: 2 + categories: + - UplinkChemicals + +- type: listing + id: UplinkMedsBundle + name: uplink-meds-bundle-name + description: uplink-meds-bundle-desc + productEntity: ClothingBackpackDuffelSyndicateMedicalBundleFilled + cost: + Telecrystal: 20 + categories: + - UplinkChemicals + conditions: + - !type:StoreWhitelistCondition + whitelist: + tags: + - NukeOpsUplink + - !type:BuyerWhitelistCondition + blacklist: + components: + - SurplusBundle + saleLimit: 1 + +# Deception + +- type: listing + id: UplinkAgentIDCard + name: uplink-agent-id-card-name + description: uplink-agent-id-card-desc + productEntity: AgentIDCard + cost: + Telecrystal: 3 + categories: + - UplinkDeception + +- type: listing + id: UplinkStealthBox + name: uplink-stealth-box-name + description: uplink-stealth-box-desc + productEntity: StealthBox + cost: + Telecrystal: 5 + categories: + - UplinkDeception + +- type: listing + id: UplinkChameleonProjector + name: uplink-chameleon-projector-name + description: uplink-chameleon-projector-desc + productEntity: ChameleonProjector + cost: + Telecrystal: 7 + categories: + - UplinkDeception + +- type: listing + id: UplinkCyberpen + name: uplink-cyberpen-name + description: uplink-cyberpen-desc + productEntity: CyberPen + cost: + Telecrystal: 1 + categories: + - UplinkDeception + +- type: listing + id: UplinkDecoyDisk + name: uplink-decoy-disk-name + description: uplink-decoy-disk-desc + productEntity: NukeDiskFake + cost: + Telecrystal: 1 + categories: + - UplinkDeception + +- type: listing + id: UplinkUltrabrightLantern + name: uplink-ultrabright-lantern-name + description: uplink-ultrabright-lantern-desc + productEntity: LanternFlash + cost: + Telecrystal: 2 + categories: + - UplinkDeception + +- type: listing + id: UplinkBribe + name: uplink-bribe-name + description: uplink-bribe-desc + productEntity: BriefcaseSyndieLobbyingBundleFilled + cost: + Telecrystal: 4 + categories: + - UplinkDeception + +# - type: listing +# id: UplinkGigacancerScanner +# name: Ultragigacancer Health Analyzer +# description: Works like a normal health analyzer, other than giving everyone it scans ultragigacancer. +# productEntity: HandheldHealthAnalyzerGigacancer +# cost: +# Telecrystal: 5 +# categories: +# - UplinkDeception - type: listing id: UplinkHolster @@ -430,14 +602,15 @@ - UplinkUtility - type: listing - id: UplinkAgentIDCard - name: uplink-agent-id-card-name - description: uplink-agent-id-card-desc - productEntity: AgentIDCard + id: UplinkSyndicateMartyrModule + name: uplink-syndicate-martyr-module-name + description: uplink-syndicate-martyr-module-desc + productEntity: BorgModuleMartyr + icon: { sprite: /Textures/Objects/Specific/Robotics/borgmodule.rsi, state: syndicateborgbomb } cost: - Telecrystal: 3 + Telecrystal: 4 categories: - - UplinkUtility + - UplinkDisruption - type: listing id: UplinkJetpack @@ -464,7 +637,7 @@ blacklist: tags: - NukeOpsUplink - saleLimit: 1 # WD EDIT + saleLimit: 1 - type: listing id: UplinkReinforcementRadioSyndicateNukeops # Version for Nukeops that spawns an agent with the NukeOperative component. @@ -481,7 +654,7 @@ whitelist: tags: - NukeOpsUplink - saleLimit: 1 # WD EDIT + saleLimit: 1 - type: listing id: UplinkReinforcementRadioSyndicateCyborgAssault @@ -498,13 +671,13 @@ whitelist: tags: - NukeOpsUplink - saleLimit: 1 # WD EDIT + saleLimit: 1 - type: listing - id: UplinkReinforcementRadioSyndicateMonkey - name: uplink-reinforcement-radio-monkey-name - description: uplink-reinforcement-radio-monkey-desc - productEntity: ReinforcementRadioSyndicateMonkey + id: UplinkReinforcementRadioSyndicateAncestor + name: uplink-reinforcement-radio-ancestor-name + description: uplink-reinforcement-radio-ancestor-desc + productEntity: ReinforcementRadioSyndicateAncestor icon: { sprite: Objects/Devices/communication.rsi, state: radio } cost: Telecrystal: 8 @@ -517,10 +690,10 @@ - NukeOpsUplink - type: listing - id: UplinkReinforcementRadioSyndicateMonkeyNukeops # Version for Nukeops that spawns a syndicate monkey with the NukeOperative component. - name: uplink-reinforcement-radio-monkey-name - description: uplink-reinforcement-radio-monkey-desc - productEntity: ReinforcementRadioSyndicateMonkeyNukeops + id: UplinkReinforcementRadioSyndicateAncestorNukeops # Version for Nukeops that spawns a syndicate monkey with the NukeOperative component. + name: uplink-reinforcement-radio-ancestor-name + description: uplink-reinforcement-radio-ancestor-desc + productEntity: ReinforcementRadioSyndicateAncestorNukeops icon: { sprite: Objects/Devices/communication.rsi, state: radio } cost: Telecrystal: 6 @@ -531,17 +704,7 @@ whitelist: tags: - NukeOpsUplink - saleLimit: 1 # WD EDIT - -- type: listing - id: UplinkStealthBox - name: uplink-stealth-box-name - description: uplink-stealth-box-desc - productEntity: StealthBox - cost: - Telecrystal: 5 - categories: - - UplinkUtility + saleLimit: 1 - type: listing id: UplinkHeadsetEncryptionKey @@ -595,11 +758,6 @@ Telecrystal: 2 categories: - UplinkUtility - conditions: - - !type:StoreWhitelistCondition - whitelist: - tags: - - NukeOpsUplink - type: listing id: UplinkRadioJammer @@ -764,7 +922,7 @@ blacklist: tags: - NukeOpsUplink - saleBlacklist: true # WD EDIT + saleBlacklist: true - type: listing id: UplinkDeathRattle @@ -838,7 +996,7 @@ blacklist: components: - SurplusBundle - saleLimit: 1 # WD EDIT + saleLimit: 1 - type: listing id: UplinkChemistryKitBundle @@ -862,25 +1020,6 @@ categories: - UplinkBundles -- type: listing - id: UplinkMedsBundle - name: uplink-meds-bundle-name - description: uplink-meds-bundle-desc - productEntity: ClothingBackpackDuffelSyndicateMedicalBundleFilled - cost: - Telecrystal: 20 - categories: - - UplinkBundles - conditions: - - !type:StoreWhitelistCondition - whitelist: - tags: - - NukeOpsUplink - - !type:BuyerWhitelistCondition - blacklist: - components: - - SurplusBundle - saleLimit: 1 # WD EDIT - type: listing id: UplinkSniperBundle @@ -892,7 +1031,7 @@ Telecrystal: 20 # WD EDIT categories: - UplinkBundles - saleLimit: 1 # WD EDIT + saleLimit: 1 - type: listing id: UplinkC20RBundle @@ -904,7 +1043,7 @@ Telecrystal: 17 categories: - UplinkBundles - saleLimit: 1 # WD EDIT + saleLimit: 1 - type: listing id: UplinkBulldogBundle @@ -916,7 +1055,7 @@ Telecrystal: 20 categories: - UplinkBundles - saleLimit: 1 # WD EDIT + saleLimit: 1 - type: listing id: UplinkGrenadeLauncherBundle @@ -928,7 +1067,7 @@ Telecrystal: 25 categories: - UplinkBundles - saleLimit: 1 # WD EDIT + saleLimit: 1 - type: listing id: UplinkL6SawBundle @@ -940,28 +1079,7 @@ Telecrystal: 30 categories: - UplinkBundles - saleLimit: 1 # WD EDIT - -- type: listing - id: UplinkZombieBundle - name: uplink-zombie-bundle-name - description: uplink-zombie-bundle-desc - icon: { sprite: /Textures/Structures/Wallmounts/signs.rsi, state: bio } - productEntity: ClothingBackpackDuffelZombieBundle - cost: - Telecrystal: 40 - categories: - - UplinkBundles - conditions: - - !type:StoreWhitelistCondition - whitelist: - tags: - - NukeOpsUplink - - !type:BuyerWhitelistCondition - blacklist: - components: - - SurplusBundle - saleLimit: 1 # WD EDIT + saleLimit: 1 - type: listing id: UplinkSurplusBundle @@ -981,7 +1099,7 @@ blacklist: components: - SurplusBundle - saleBlacklist: true # WD EDIT + saleBlacklist: true - type: listing id: UplinkSuperSurplusBundle @@ -1001,7 +1119,7 @@ blacklist: components: - SurplusBundle - saleBlacklist: true # WD EDIT + saleBlacklist: true # Tools @@ -1140,7 +1258,7 @@ - !type:BuyerJobCondition whitelist: - Chaplain - saleLimit: 1 # WD EDIT + saleLimit: 1 - type: listing id: uplinkRevolverCapGunFake @@ -1156,7 +1274,7 @@ whitelist: - Mime - Clown - saleLimit: 1 # WD EDIT + saleLimit: 1 - type: listing id: uplinkBananaPeelExplosive @@ -1201,7 +1319,7 @@ - !type:BuyerJobCondition whitelist: - Clown - saleLimit: 1 # WD EDIT + saleLimit: 1 - type: listing id: uplinkHotPotato @@ -1271,6 +1389,24 @@ - ResearchDirector - Chef +- type: listing + id: UplinkCaneBlade + name: uplink-cane-blade-name + description: uplink-cane-blade-desc + icon: { sprite: Objects/Weapons/Melee/cane.rsi, state: cane} + productEntity: CaneSheathFilled + cost: + Telecrystal: 5 + categories: + - UplinkJob + conditions: + - !type:BuyerJobCondition + whitelist: + - Librarian + - !type:BuyerWhitelistCondition + blacklist: + components: + - SurplusBundle - type: listing id: UplinkSingarityBeacon name: uplink-singularity-beacon-name @@ -1365,7 +1501,7 @@ Telecrystal: 8 categories: - UplinkArmor - saleLimit: 1 # WD EDIT + saleLimit: 1 - type: listing id: UplinkHardsuitSyndieElite @@ -1377,7 +1513,7 @@ Telecrystal: 10 categories: - UplinkArmor - saleLimit: 1 # WD EDIT + saleLimit: 1 - type: listing id: UplinkClothingOuterHardsuitJuggernaut @@ -1389,40 +1525,10 @@ Telecrystal: 12 categories: - UplinkArmor - saleLimit: 1 # WD EDIT + saleLimit: 1 # Misc -- type: listing - id: UplinkCyberpen - name: uplink-cyberpen-name - description: uplink-cyberpen-desc - productEntity: CyberPen - cost: - Telecrystal: 1 - categories: - - UplinkMisc - -- type: listing - id: UplinkDecoyDisk - name: uplink-decoy-disk-name - description: uplink-decoy-disk-desc - productEntity: NukeDiskFake - cost: - Telecrystal: 1 - categories: - - UplinkMisc - -- type: listing - id: UplinkCigarettes - name: uplink-cigarettes-name - description: uplink-cigarettes-desc - productEntity: CigPackSyndicate - cost: - Telecrystal: 2 - categories: - - UplinkMisc - - type: listing id: UplinkClothingConductingGloves name: uplink-clothing-conducting-gloves-name @@ -1458,7 +1564,7 @@ whitelist: tags: - NukeOpsUplink - saleLimit: 1 # WD EDIT + saleLimit: 1 - type: listing id: UplinkSoapSyndie @@ -1480,16 +1586,6 @@ categories: - UplinkMisc -- type: listing - id: UplinkUltrabrightLantern - name: uplink-ultrabright-lantern-name - description: uplink-ultrabright-lantern-desc - productEntity: LanternFlash - cost: - Telecrystal: 2 - categories: - - UplinkMisc - # - type: listing # id: UplinkGigacancerScanner # name: Ultragigacancer Health Analyzer @@ -1500,67 +1596,6 @@ # categories: # - UplinkMisc -- type: listing - id: UplinkNocturineChemistryBottle - name: uplink-nocturine-chemistry-bottle-name - description: uplink-nocturine-chemistry-bottle-desc - productEntity: NocturineChemistryBottle - cost: - Telecrystal: 6 - categories: - - UplinkMisc - -- type: listing - id: UplinkCombatMedkit - name: uplink-combat-medkit-name - description: uplink-combat-medkit-desc - productEntity: MedkitCombatFilled - cost: - Telecrystal: 5 - categories: - - UplinkMisc - -- type: listing - id: UplinkCombatMedipen - name: uplink-combat-medipen-name - description: uplink-combat-medipen-desc - productEntity: CombatMedipen - cost: - Telecrystal: 4 - categories: - - UplinkMisc - -- type: listing - id: UplinkStimpack - name: uplink-stimpack-name - description: uplink-stimpack-desc - productEntity: Stimpack - cost: - Telecrystal: 4 - categories: - - UplinkMisc - -- type: listing - id: UplinkStimkit - name: uplink-stimkit-name - description: uplink-stimkit-desc - productEntity: StimkitFilled - cost: - Telecrystal: 12 - categories: - - UplinkMisc - saleLimit: 1 # WD EDIT - -- type: listing - id: UplinkBribe - name: uplink-bribe-name - description: uplink-bribe-desc - productEntity: BriefcaseSyndieLobbyingBundleFilled - cost: - Telecrystal: 4 - categories: - - UplinkMisc - - type: listing id: UplinkMobCatMicrobomb name: uplink-mobcat-microbomb-name @@ -1576,7 +1611,7 @@ whitelist: tags: - NukeOpsUplink - saleLimit: 1 # WD EDIT + saleLimit: 1 - type: listing id: UplinkBackpackSyndicate diff --git a/Resources/Prototypes/CharacterItemGroups/backpackGroups.yml b/Resources/Prototypes/CharacterItemGroups/backpackGroups.yml new file mode 100644 index 0000000000..c12db85146 --- /dev/null +++ b/Resources/Prototypes/CharacterItemGroups/backpackGroups.yml @@ -0,0 +1,11 @@ +- type: characterItemGroup + id: LoadoutBackpacks + items: + - type: loadout + id: LoadoutBackpack + - type: loadout + id: LoadoutBackpackDuffel + - type: loadout + id: LoadoutBackpackSatchel + - type: loadout + id: LoadoutBackpackClown diff --git a/Resources/Prototypes/CharacterItemGroups/cargoGroups.yml b/Resources/Prototypes/CharacterItemGroups/cargoGroups.yml new file mode 100644 index 0000000000..6b12652b33 --- /dev/null +++ b/Resources/Prototypes/CharacterItemGroups/cargoGroups.yml @@ -0,0 +1,19 @@ +- 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 new file mode 100644 index 0000000000..6db873cecf --- /dev/null +++ b/Resources/Prototypes/CharacterItemGroups/engineeringGroups.yml @@ -0,0 +1,39 @@ +- 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/languageGroups.yml b/Resources/Prototypes/CharacterItemGroups/languageGroups.yml new file mode 100644 index 0000000000..a884992a23 --- /dev/null +++ b/Resources/Prototypes/CharacterItemGroups/languageGroups.yml @@ -0,0 +1,35 @@ +- type: characterItemGroup + id: TraitsLanguagesBasic + maxItems: 1 + items: + - type: trait + id: SignLanguage + - type: trait + id: SolCommon + - type: trait + id: Tradeband + - type: trait + id: Freespeak + - type: trait + id: Elyran + - type: trait + id: ValyrianStandard + - type: trait + id: Azaziba + +- type: characterItemGroup + id: TraitsAccents + maxItems: 1 + items: + - type: trait + id: FrontalLisp + - type: trait + id: Stutter + - type: trait + id: PirateAccent + - type: trait + id: Accentless + - type: trait + id: Southern + - type: trait + id: ScottishAccent \ No newline at end of file diff --git a/Resources/Prototypes/CharacterItemGroups/medicalGroups.yml b/Resources/Prototypes/CharacterItemGroups/medicalGroups.yml new file mode 100644 index 0000000000..396f07290f --- /dev/null +++ b/Resources/Prototypes/CharacterItemGroups/medicalGroups.yml @@ -0,0 +1,101 @@ +- type: characterItemGroup + id: LoadoutUniformsMedical + items: + - type: loadout + 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: LoadoutMedicalUniformParamedicJumpsuit + - type: loadout + id: LoadoutMedicalUniformParamedicJumpskirt + - type: loadout + id: LoadoutMedicalUniformJumpskirtSenior + - type: loadout + id: LoadoutMedicalUniformJumpsuitSenior + - type: loadout + id: LoadoutMedicalUniformJumpsuitChemShirt + +- type: characterItemGroup + id: LoadoutOuterMedical + items: + - type: loadout + id: LoadoutMedicalOuterLabcoat + - type: loadout + id: LoadoutMedicalOuterCybersunWindbreaker + - type: loadout + id: LoadoutMedicalOuterLabcoatChem + - type: loadout + id: LoadoutMedicalOuterApronChemist + +- type: characterItemGroup + id: LoadoutGlovesMedical + items: + - type: loadout + id: LoadoutMedicalGlovesNitrile + - type: loadout + id: LoadoutMedicalHandsGlovesChemist + +- type: characterItemGroup + id: LoadoutNeckMedical + 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 + id: LoadoutMedicalHeadSurgcapPurple + - type: loadout + id: LoadoutMedicalHeadSurgcapGreen + - type: loadout + id: LoadoutMedicalHeadSurgcapCyan + - type: loadout + id: LoadoutMedicalHeadSurgcapBlack + - type: loadout + id: LoadoutMedicalHeadSurgcapPink + - type: loadout + id: LoadoutMedicalHeadSurgcapWhite + - type: loadout + id: LoadoutMedicalHeadSurgcapCybersun + +- type: characterItemGroup + id: LoadoutEyesMedical + items: + - type: loadout + id: LoadoutMedicalEyesHudMedical + - type: loadout + id: LoadoutMedicalEyesEyepatchHudMedical + - type: loadout + id: LoadoutMedicalEyesHudMedicalPrescription + - type: loadout + id: LoadoutMedicalEyesGlassesChemical + - type: loadout + id: LoadoutMedicalEyesGlassesChemist + +- type: characterItemGroup + id: LoadoutShoesMedical + items: + - type: loadout + id: LoadoutMedicalShoesEnclosedChem diff --git a/Resources/Prototypes/CharacterItemGroups/musicianInstrumentsGroups.yml b/Resources/Prototypes/CharacterItemGroups/musicianInstrumentsGroups.yml new file mode 100644 index 0000000000..ccad399e74 --- /dev/null +++ b/Resources/Prototypes/CharacterItemGroups/musicianInstrumentsGroups.yml @@ -0,0 +1,31 @@ +- type: characterItemGroup + id: LoadoutMusicianInstruments + maxItems: 3 + items: + - type: loadout + id: LoadoutItemSynthesizerInstrumentMusician + - type: loadout + id: LoadoutItemMicrophoneInstrumentMusician + - type: loadout + id: LoadoutItemKalimbaInstrumentMusician + - type: loadout + id: LoadoutItemTrumpetInstrumentMusician + - type: loadout + id: LoadoutItemElectricGuitarInstrumentMusician + - type: loadout + id: LoadoutItemBassGuitarInstrumentMusician + - type: loadout + id: LoadoutItemRockGuitarInstrumentMusician + - type: loadout + id: LoadoutItemAcousticGuitarInstrumentMusician + - type: loadout + id: LoadoutItemViolinInstrumentMusician + - type: loadout + id: LoadoutItemHarmonicaInstrumentMusician + - type: loadout + id: LoadoutItemAccordionInstrumentMusician + - type: loadout + id: LoadoutItemFluteInstrumentMusician + - type: loadout + id: LoadoutItemOcarinaInstrumentMusician + diff --git a/Resources/Prototypes/CharacterItemGroups/scienceGroups.yml b/Resources/Prototypes/CharacterItemGroups/scienceGroups.yml new file mode 100644 index 0000000000..e5e43760da --- /dev/null +++ b/Resources/Prototypes/CharacterItemGroups/scienceGroups.yml @@ -0,0 +1,103 @@ +- 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 diff --git a/Resources/Prototypes/CharacterItemGroups/securityGroups.yml b/Resources/Prototypes/CharacterItemGroups/securityGroups.yml new file mode 100644 index 0000000000..01a84566dd --- /dev/null +++ b/Resources/Prototypes/CharacterItemGroups/securityGroups.yml @@ -0,0 +1,215 @@ +- 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 + 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 + - type: loadout + id: LoadoutClothingHeadHelmetInsulated + +- type: characterItemGroup + id: LoadoutMaskSecurity + items: + - type: loadout + id: LoadoutSecurityMaskGasSwat + +- type: characterItemGroup + id: LoadoutBeltSecurity + 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 + maxItems: 5 + id: LoadoutEquipmentSecurity + items: + - type: loadout + id: LoadoutSecurityCombatKnife + - type: loadout + id: LoadoutSecurityFlash + - type: loadout + id: LoadoutMagazinePistol + - type: loadout + id: LoadoutMagazinePistolSpare + - type: loadout + id: LoadoutMagazinePistolRubber + - type: loadout + id: LoadoutMagazinePistolRubberSpare + - type: loadout + id: LoadoutSpeedLoaderMagnum + - type: loadout + id: LoadoutSpeedLoaderMagnumSpare + - type: loadout + id: LoadoutSpeedLoaderMagnumRubber + - type: loadout + id: LoadoutSpeedLoaderMagnumRubberSpare + +- type: characterItemGroup + maxItems: 1 + id: LoadoutWeaponSecurity + items: + - type: loadout + id: LoadoutSecurityDisabler + - type: loadout + id: LoadoutSecurityMk58 + - type: loadout + id: LoadoutSecurityMk58NonLethal + - type: loadout + id: LoadoutSecurityRevolver + - type: loadout + id: LoadoutSecurityRevolverNonLethal + - type: loadout + id: LoadoutSecurityRevolverDeckard + - type: loadout + id: LoadoutSecurityRevolverDeckardNonLethal + - type: loadout + id: LoadoutSecurityPistolN1984 + - type: loadout + id: LoadoutSecurityPistolN1984NonLethal + - type: loadout + id: LoadoutSecurityPistolViper + - type: loadout + id: LoadoutSecurityPistolViperNonLethal + - type: loadout + id: LoadoutSecurityEquipmentTruncheon + +- type: characterItemGroup + maxItems: 1 + id: LoadoutBackSecurity + items: + - type: loadout + id: LoadoutClothingBackSecurity + - type: loadout + id: LoadoutClothingBackSecuritySatchel + - type: loadout + id: LoadoutClothingBackSecurityDuffel + +- type: characterItemGroup + maxItems: 1 + id: LoadoutHoSWeapon + 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 \ No newline at end of file diff --git a/Resources/Prototypes/CharacterItemGroups/serviceGroups.yml b/Resources/Prototypes/CharacterItemGroups/serviceGroups.yml new file mode 100644 index 0000000000..01ec0aaeea --- /dev/null +++ b/Resources/Prototypes/CharacterItemGroups/serviceGroups.yml @@ -0,0 +1,100 @@ +- 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 + +# Bartender +- type: characterItemGroup + id: LoadoutBartenderOuterwear + items: + - type: loadout + id: LoadoutServiceBartenderArmorDuraVest + +- 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 diff --git a/Resources/Prototypes/Chemistry/metabolism_groups.yml b/Resources/Prototypes/Chemistry/metabolism_groups.yml index fc59edd81f..b2035671af 100644 --- a/Resources/Prototypes/Chemistry/metabolism_groups.yml +++ b/Resources/Prototypes/Chemistry/metabolism_groups.yml @@ -1,22 +1,29 @@ -# Default human metabolism groups. +# Default human metabolism groups. - type: metabolismGroup id: Poison + name: metabolism-group-poison - type: metabolismGroup id: Medicine + name: metabolism-group-medicine - type: metabolismGroup id: Narcotic + name: metabolism-group-narcotic - type: metabolismGroup id: Alcohol + name: metabolism-group-alcohol - type: metabolismGroup id: Food + name: metabolism-group-food - type: metabolismGroup id: Drink + name: metabolism-group-drink # Used for gases that have effects on being inhaled - type: metabolismGroup id: Gas + name: metabolism-group-gas diff --git a/Resources/Prototypes/Chemistry/metabolizer_types.yml b/Resources/Prototypes/Chemistry/metabolizer_types.yml index 316b8f02b5..b49fad6c27 100644 --- a/Resources/Prototypes/Chemistry/metabolizer_types.yml +++ b/Resources/Prototypes/Chemistry/metabolizer_types.yml @@ -3,52 +3,52 @@ - type: metabolizerType id: Animal - name: animal + name: metabolizer-type-animal - type: metabolizerType id: Bloodsucker - name: bloodsucker + name: metabolizer-type-bloodsucker - type: metabolizerType id: Dragon - name: dragon + name: metabolizer-type-dragon - type: metabolizerType id: Human - name: human + name: metabolizer-type-human - type: metabolizerType id: Slime - name: slime + name: metabolizer-type-slime - type: metabolizerType id: Vox - name: vox + name: metabolizer-type-vox - type: metabolizerType id: Rat - name: rat + name: metabolizer-type-rat - type: metabolizerType id: Plant - name: plant + name: metabolizer-type-plant - type: metabolizerType id: Dwarf - name: dwarf + name: metabolizer-type-dwarf - type: metabolizerType id: Moth - name: moth + name: metabolizer-type-moth - type: metabolizerType id: Arachnid - name: arachnid + name: metabolizer-type-arachnid - type: metabolizerType id: Vampiric - name: vampiric + name: metabolizer-type-vampiric - type: metabolizerType id: LiquorLifeline - name: liquorlifeline + name: metabolizer-type-liquorlifeline diff --git a/Resources/Prototypes/Damage/groups.yml b/Resources/Prototypes/Damage/groups.yml index 07bfe2edcd..71e4acdaea 100644 --- a/Resources/Prototypes/Damage/groups.yml +++ b/Resources/Prototypes/Damage/groups.yml @@ -1,5 +1,6 @@ - type: damageGroup id: Brute + name: damage-group-brute damageTypes: - Blunt - Slash @@ -7,6 +8,7 @@ - type: damageGroup id: Burn + name: damage-group-burn damageTypes: - Heat - Shock @@ -19,6 +21,7 @@ # bloodloss, not this whole group, unless you have a wonder drug that affects both. - type: damageGroup id: Airloss + name: damage-group-airloss damageTypes: - Asphyxiation - Bloodloss @@ -27,11 +30,13 @@ # Though there are probably some radioactive poisons. - type: damageGroup id: Toxin + name: damage-group-toxin damageTypes: - Poison - Radiation - type: damageGroup id: Genetic + name: damage-group-genetic damageTypes: - Cellular diff --git a/Resources/Prototypes/Damage/modifier_sets.yml b/Resources/Prototypes/Damage/modifier_sets.yml index 811d5a580c..39c956df62 100644 --- a/Resources/Prototypes/Damage/modifier_sets.yml +++ b/Resources/Prototypes/Damage/modifier_sets.yml @@ -198,12 +198,10 @@ - type: damageModifierSet id: Zombie #Blunt resistant and immune to biological threats, but can be hacked apart and burned coefficients: - Blunt: 0.7 - Slash: 1.1 - Piercing: 0.9 - Shock: 1.25 + Blunt: 0.6 + Piercing: 0.8 Cold: 0.3 - Heat: 1.5 + Heat: 1.25 Poison: 0.0 Radiation: 0.0 @@ -244,7 +242,7 @@ Piercing: 0.2 Shock: 0.0 Cold: 0.0 - Heat: -1 # heat damage cauterizes wounds, but will still hurt obviously. + Heat: -0.5 # heat damage cauterizes wounds, but will still hurt obviously. Poison: 0.0 Radiation: 0.0 Asphyxiation: 0.0 @@ -359,3 +357,10 @@ Slash: 0.6 Piercing: 0.6 Holy: 1.5 + +- type: damageModifierSet + id: DermalArmor + coefficients: + Blunt: 0.9 + Slash: 0.9 + Piercing: 0.9 diff --git a/Resources/Prototypes/Damage/types.yml b/Resources/Prototypes/Damage/types.yml index bacaf1f798..0107da2482 100644 --- a/Resources/Prototypes/Damage/types.yml +++ b/Resources/Prototypes/Damage/types.yml @@ -3,6 +3,7 @@ # Usually healed automatically if entity can breathe - type: damageType id: Asphyxiation + name: damage-type-asphyxiation armorCoefficientPrice: 5 armorFlatPrice: 50 @@ -11,57 +12,68 @@ # Represents there not enough blood to supply oxygen (or equivalent). - type: damageType id: Bloodloss + name: damage-type-bloodloss armorCoefficientPrice: 5 armorFlatPrice: 50 - type: damageType id: Blunt + name: damage-type-blunt armorCoefficientPrice: 2 armorFlatPrice: 10 - type: damageType id: Cellular + name: damage-type-cellular armorCoefficientPrice: 5 armorFlatPrice: 30 - type: damageType id: Caustic + name: damage-type-caustic armorCoefficientPrice: 5 armorFlatPrice: 30 - type: damageType id: Cold + name: damage-type-cold armorCoefficientPrice: 2.5 armorFlatPrice: 20 - type: damageType id: Heat + name: damage-type-heat armorCoefficientPrice: 2.5 armorFlatPrice: 20 - type: damageType id: Piercing + name: damage-type-piercing armorCoefficientPrice: 2 armorFlatPrice: 10 # Poison damage. Generally caused by various reagents being metabolised. - type: damageType id: Poison + name: damage-type-poison armorCoefficientPrice: 10 armorFlatPrice: 60 - type: damageType id: Radiation + name: damage-type-radiation armorCoefficientPrice: 2.5 armorFlatPrice: 16 - type: damageType id: Shock + name: damage-type-shock armorCoefficientPrice: 2.5 armorFlatPrice: 20 - type: damageType id: Slash + name: damage-type-slash armorCoefficientPrice: 2 armorFlatPrice: 10 @@ -69,5 +81,6 @@ # Exclusive for structures such as walls, airlocks and others. - type: damageType id: Structural + name: damage-type-structural armorCoefficientPrice: 1 armorFlatPrice: 1 diff --git a/Resources/Prototypes/Datasets/corporations.yml b/Resources/Prototypes/Datasets/corporations.yml new file mode 100644 index 0000000000..55b1d53d2f --- /dev/null +++ b/Resources/Prototypes/Datasets/corporations.yml @@ -0,0 +1,12 @@ +- type: dataset + id: TraitorCorporations + values: + - "CyberSun Industries" + - "Gorlex Marauders" + - "MI13" + - "Tiger Cooperative" + - "S.E.L.F." + - "Animal Rights Consortium" + - "Donk Corporation" + - "Waffle Corporation" + - "Interdyne Pharmaceutics" \ No newline at end of file diff --git a/Resources/Prototypes/Datasets/criminal_records.yml b/Resources/Prototypes/Datasets/criminal_records.yml index ee28309184..fe21757cd2 100644 --- a/Resources/Prototypes/Datasets/criminal_records.yml +++ b/Resources/Prototypes/Datasets/criminal_records.yml @@ -2,17 +2,23 @@ - type: dataset id: CriminalRecordsWantedReasonPlaceholders values: + - Ate a delicious valid salad - Ate their own shoes - Being a clown - Being a mime - Breathed the wrong way - Broke into evac - Did literally nothing + - Did their job - Didn't say hello to me - Drank one too many + - Had two toolboxes, that's too many - Lied on common radio - Looked at me funny + - Lubed up the entire way to evac + - Set AME up on time - Slipped the HoS - Stole the clown's mask - Told an unfunny joke - Wore a gasmask + - Wore boxing gloves diff --git a/Resources/Prototypes/DeltaV/Body/Organs/harpy.yml b/Resources/Prototypes/DeltaV/Body/Organs/harpy.yml index 2d47ecd352..adc626bc11 100644 --- a/Resources/Prototypes/DeltaV/Body/Organs/harpy.yml +++ b/Resources/Prototypes/DeltaV/Body/Organs/harpy.yml @@ -10,7 +10,7 @@ - state: lung-r - type: Lung - type: Metabolizer - updateFrequency: 2.0 + updateInterval: 2.0 removeEmpty: true solutionOnBody: false solution: "Lung" diff --git a/Resources/Prototypes/DeltaV/Catalog/Fills/Items/Belts/belts.yml b/Resources/Prototypes/DeltaV/Catalog/Fills/Items/Belts/belts.yml index ecffae4c36..2e9d2f7ff4 100644 --- a/Resources/Prototypes/DeltaV/Catalog/Fills/Items/Belts/belts.yml +++ b/Resources/Prototypes/DeltaV/Catalog/Fills/Items/Belts/belts.yml @@ -8,6 +8,16 @@ - id: Wakizashi - id: Katana +- type: entity + id: ClothingBeltKatanaSheathFilledHoS + parent: ClothingBeltKatanaSheathFilled + suffix: Filled + name: antique katana sheaths + description: An ornate belt, wrapped in gold filigree, with a ribbon made from a stasis-field preserved swatch of linen. The history of this sheath has been lost to time. + components: + - type: StealTarget + stealGroup: ClothingBeltKatanaSheathFilledHoS + - type: entity id: ClothingBeltCorpsmanWebbingFilled parent: ClothingBeltCorpsmanWebbing diff --git a/Resources/Prototypes/DeltaV/Catalog/Jukebox/Standard.yml b/Resources/Prototypes/DeltaV/Catalog/Jukebox/Standard.yml new file mode 100644 index 0000000000..aec4fc3503 --- /dev/null +++ b/Resources/Prototypes/DeltaV/Catalog/Jukebox/Standard.yml @@ -0,0 +1,104 @@ +# sorted alphabetically based on filenames in the folder Resources/Audio/DeltaV/Jukebox +# keep it ordered or I'll stab you + +- type: jukebox + id: ADiffReal + name: Andreas Viklund - A.D.R (Lagoona rmx) + path: + path: /Audio/DeltaV/Jukebox/a_different_reality_lagoona_remix.xm-MONO.ogg + +- type: jukebox + id: AggAss + name: melcom - Aggravated Assault + path: + path: /Audio/DeltaV/Jukebox/aggravated.it-MONO.ogg + +- type: jukebox + id: AutEqu + name: lemonade - Autumnal Equinox + path: + path: /Audio/DeltaV/Jukebox/autumnal_equinox.xm-MONO.ogg + +- type: jukebox + id: DosHighUmb + name: MASTER BOOT RECORD - DOS=HIGH, UMB + path: + path: /Audio/DeltaV/Jukebox/DOS=HIGH,_UMB.ogg + +- type: jukebox + id: DrozAlone + name: Drozerix - Alone + path: + path: /Audio/DeltaV/Jukebox/drozerix_-_alone.xm-MONO.ogg + +- type: jukebox + id: DrozLeisure + name: Drozerix - Leisurely Voice + path: + path: /Audio/DeltaV/Jukebox/drozerix_-_leisurely_voice.xm-MONO.ogg + +- type: jukebox + id: SunbeamEvery + name: Sunbeamstress - Every Light Is Blinking At Once + path: + path: /Audio/DeltaV/Jukebox/every_light_is_blinking_at_onceMONO.ogg + +- type: jukebox + id: KCHaxors + name: Karl Casey @ White Bat Audio - Hackers + path: + path: /Audio/DeltaV/Jukebox/hackers-MONO.ogg + +- type: jukebox + id: SunbeamLaser + name: Sunbeamstress - Lasers Rip Apart The Bulkhead + path: + path: /Audio/DeltaV/Jukebox/lasers_rip_apart_the_bulkheadMONO.ogg + +- type: jukebox + id: IanMarhaba + name: Ian Alex Mac. - Marhaba + path: + path: /Audio/DeltaV/Jukebox/marhaba-MONO.ogg + +- type: jukebox + id: PTMinute + name: Patricia Taxxon - Minute + path: + path: /Audio/DeltaV/Jukebox/Patricia_Taxxon_-_Minute_-_MONO.ogg + +- type: jukebox + id: SunbeamPhoron + name: Sunbeamstress - Phoron Will Make Us Rich + path: + path: /Audio/DeltaV/Jukebox/Phoron_Will_Make_Us_RichMONO2.ogg + +- type: jukebox + id: NymphsForest + name: Psirius - Nymphs of the Forest + path: + path: /Audio/DeltaV/Jukebox/psirius_-_nymphs_of_the_forest.mptm-MONO.ogg + +- type: jukebox + id: GhirScratch + name: ghirardelli7 - Scratch Post + path: + path: /Audio/DeltaV/Jukebox/Scratch_Post_-_OST_MONO.ogg + +- type: jukebox + id: JukeShiba + name: Dot Nigou - Shibamata + path: + path: /Audio/DeltaV/Jukebox/shibamata-MONO.ogg + +- type: jukebox + id: SpaceAsshowl + name: Chris Remo - Space Asshole + path: + path: /Audio/DeltaV/Jukebox/space_asshole-MONO.ogg + +- type: jukebox + id: AmieSuperpos + name: Amie Waters - Superposition + path: + path: /Audio/DeltaV/Jukebox/superposition-MONO.ogg diff --git a/Resources/Prototypes/DeltaV/Catalog/VendingMachines/Inventories/courierdrobe.yml b/Resources/Prototypes/DeltaV/Catalog/VendingMachines/Inventories/courierdrobe.yml index 88f691ba9b..778b372585 100644 --- a/Resources/Prototypes/DeltaV/Catalog/VendingMachines/Inventories/courierdrobe.yml +++ b/Resources/Prototypes/DeltaV/Catalog/VendingMachines/Inventories/courierdrobe.yml @@ -7,8 +7,10 @@ CourierBag: 2 ClothingHeadsetCargo: 2 ClothingOuterWinterCargo: 2 - ClothingUniformMailCarrier: 2 # Nyanotrasen - Mail Carrier old gear - ClothingUniformSkirtMailCarrier: 2 # Nyanotrasen - Mail Carrier old gear - ClothingHeadMailCarrier: 2 # Nyanotrasen - Mail Carrier old gear - MailBag: 2 # Nyanotrasen - Mail Carrier old gear - ClothingOuterWinterCoatMail: 2 # Nyanotrasen - Mail Carrier old gear + ClothingUniformMailCarrier: 2 + ClothingUniformSkirtMailCarrier: 2 + ClothingHeadMailCarrier: 2 + MailBag: 2 + ClothingOuterWinterCoatMail: 2 + WeaponMailLake: 2 + BoxMailCapsulePrimed: 4 diff --git a/Resources/Prototypes/DeltaV/Entities/Clothing/Eyes/hud.yml b/Resources/Prototypes/DeltaV/Entities/Clothing/Eyes/hud.yml index a959b64a38..1e8a64b0df 100644 --- a/Resources/Prototypes/DeltaV/Entities/Clothing/Eyes/hud.yml +++ b/Resources/Prototypes/DeltaV/Entities/Clothing/Eyes/hud.yml @@ -20,10 +20,9 @@ - type: Tag tags: - HudMedical - - GlassesNearsight - type: entity - parent: ClothingEyesBase + parent: [ ClothingEyesBase, ShowSecurityIcons ] id: ClothingEyesPrescriptionHudSecurity name: prescription security hud description: A poorly done and rushed mix between half of a pair of prescription glasses and a security HUD allowing you to see clearly out of one eye and inspect the employee's ID and warning status in the other! @@ -32,17 +31,15 @@ sprite: DeltaV/Clothing/Eyes/Hud/prescsechud.rsi - type: Clothing sprite: DeltaV/Clothing/Eyes/Hud/prescsechud.rsi - - type: ShowSecurityIcons - type: Construction graph: PrescriptionSecHud node: prescsechud - type: Tag tags: - HudSecurity - - GlassesNearsight - + - type: entity - parent: ClothingEyesBase + parent: [ ClothingEyesBase, ShowSecurityIcons ] id: ClothingEyesHudSyndicateMed name: syndicate medical visor description: An upgraded syndicate visor with automatic health readings, designed for better detection of humanoids and their subsequent elimination. @@ -52,7 +49,6 @@ - type: Clothing sprite: DeltaV/Clothing/Eyes/Hud/syndmed.rsi - type: ShowSyndicateIcons - - type: ShowSecurityIcons - type: ShowHealthBars damageContainers: - Biological diff --git a/Resources/Prototypes/DeltaV/Entities/Mobs/Customization/Markings/felinid.yml b/Resources/Prototypes/DeltaV/Entities/Mobs/Customization/Markings/felinid.yml index 795bcaacb0..34ccbf068a 100644 --- a/Resources/Prototypes/DeltaV/Entities/Mobs/Customization/Markings/felinid.yml +++ b/Resources/Prototypes/DeltaV/Entities/Mobs/Customization/Markings/felinid.yml @@ -2,7 +2,7 @@ id: FelinidFluffyTailRings bodyPart: Tail markingCategory: Tail - speciesRestriction: [Felinid] + speciesRestriction: [Felinid, Human] sprites: - sprite: DeltaV/Mobs/Customization/Felinid/felinid_tails.rsi state: Felinid_fluffy_tail_full @@ -13,7 +13,7 @@ id: FelinidFluffyTail bodyPart: Tail markingCategory: Tail - speciesRestriction: [Felinid] + speciesRestriction: [Felinid, Human] sprites: - sprite: DeltaV/Mobs/Customization/Felinid/felinid_tails.rsi state: Felinid_fluffy_tail_full @@ -22,7 +22,7 @@ id: FelinidAlternativeTail bodyPart: Tail markingCategory: Tail - speciesRestriction: [Felinid] + speciesRestriction: [Felinid, Human] sprites: - sprite: DeltaV/Mobs/Customization/Felinid/alternative_tail.rsi state: m_waggingtail_cat_FRONT diff --git a/Resources/Prototypes/DeltaV/Entities/Mobs/Customization/Markings/vulpkanin.yml b/Resources/Prototypes/DeltaV/Entities/Mobs/Customization/Markings/vulpkanin.yml index e91c276205..7b8fd987b5 100644 --- a/Resources/Prototypes/DeltaV/Entities/Mobs/Customization/Markings/vulpkanin.yml +++ b/Resources/Prototypes/DeltaV/Entities/Mobs/Customization/Markings/vulpkanin.yml @@ -5,7 +5,7 @@ id: VulpEar bodyPart: HeadTop markingCategory: HeadTop - speciesRestriction: [Vulpkanin] + speciesRestriction: [Vulpkanin, Human] sprites: - sprite: DeltaV/Mobs/Customization/Vulpkanin/ear_markings.rsi state: vulp @@ -16,7 +16,7 @@ id: VulpEarFade bodyPart: HeadTop markingCategory: HeadTop - speciesRestriction: [Vulpkanin] + speciesRestriction: [Vulpkanin, Human] sprites: - sprite: DeltaV/Mobs/Customization/Vulpkanin/ear_markings.rsi state: vulp @@ -27,7 +27,7 @@ id: VulpEarSharp bodyPart: HeadTop markingCategory: HeadTop - speciesRestriction: [Vulpkanin] + speciesRestriction: [Vulpkanin, Human] sprites: - sprite: DeltaV/Mobs/Customization/Vulpkanin/ear_markings.rsi state: vulp @@ -38,7 +38,7 @@ id: VulpEarJackal bodyPart: HeadTop markingCategory: HeadTop - speciesRestriction: [Vulpkanin] + speciesRestriction: [Vulpkanin, Human] sprites: - sprite: DeltaV/Mobs/Customization/Vulpkanin/ear_markings.rsi state: jackal @@ -49,7 +49,7 @@ id: VulpEarTerrier bodyPart: HeadTop markingCategory: HeadTop - speciesRestriction: [Vulpkanin] + speciesRestriction: [Vulpkanin, Human] sprites: - sprite: DeltaV/Mobs/Customization/Vulpkanin/ear_markings.rsi state: terrier @@ -60,7 +60,7 @@ id: VulpEarWolf bodyPart: HeadTop markingCategory: HeadTop - speciesRestriction: [Vulpkanin] + speciesRestriction: [Vulpkanin, Human] sprites: - sprite: DeltaV/Mobs/Customization/Vulpkanin/ear_markings.rsi state: wolf @@ -71,7 +71,7 @@ id: VulpEarFennec bodyPart: HeadTop markingCategory: HeadTop - speciesRestriction: [Vulpkanin] + speciesRestriction: [Vulpkanin, Human] sprites: - sprite: DeltaV/Mobs/Customization/Vulpkanin/ear_markings.rsi state: fennec @@ -82,7 +82,7 @@ id: VulpEarFox bodyPart: HeadTop markingCategory: HeadTop - speciesRestriction: [Vulpkanin] + speciesRestriction: [Vulpkanin, Human] sprites: - sprite: DeltaV/Mobs/Customization/Vulpkanin/ear_markings.rsi state: fox @@ -91,7 +91,7 @@ id: VulpEarOtie bodyPart: HeadTop markingCategory: HeadTop - speciesRestriction: [Vulpkanin] + speciesRestriction: [Vulpkanin, Human] sprites: - sprite: DeltaV/Mobs/Customization/Vulpkanin/ear_markings.rsi state: otie @@ -102,7 +102,7 @@ id: VulpEarTajaran bodyPart: HeadTop markingCategory: HeadTop - speciesRestriction: [Vulpkanin] + speciesRestriction: [Vulpkanin, Human] sprites: - sprite: DeltaV/Mobs/Customization/Vulpkanin/ear_markings.rsi state: msai @@ -113,7 +113,7 @@ id: VulpEarShock bodyPart: HeadTop markingCategory: HeadTop - speciesRestriction: [Vulpkanin] + speciesRestriction: [Vulpkanin, Human] sprites: - sprite: DeltaV/Mobs/Customization/Vulpkanin/ear_markings.rsi state: shock @@ -122,7 +122,7 @@ id: VulpEarCoyote bodyPart: HeadTop markingCategory: HeadTop - speciesRestriction: [Vulpkanin] + speciesRestriction: [Vulpkanin, Human] sprites: - sprite: DeltaV/Mobs/Customization/Vulpkanin/ear_markings.rsi state: coyote @@ -131,7 +131,7 @@ id: VulpEarDalmatian bodyPart: HeadTop markingCategory: HeadTop - speciesRestriction: [Vulpkanin] + speciesRestriction: [Vulpkanin, Human] sprites: - sprite: DeltaV/Mobs/Customization/Vulpkanin/ear_markings.rsi state: dalmatian @@ -272,7 +272,7 @@ id: VulpTail bodyPart: Tail markingCategory: Tail - speciesRestriction: [Vulpkanin] + speciesRestriction: [Vulpkanin, Human] sprites: - sprite: DeltaV/Mobs/Customization/Vulpkanin/tail_markings.rsi state: vulp @@ -294,7 +294,7 @@ id: VulpTailTip bodyPart: Tail markingCategory: Tail - speciesRestriction: [Vulpkanin] + speciesRestriction: [Vulpkanin, Human] sprites: - sprite: DeltaV/Mobs/Customization/Vulpkanin/tail_markings.rsi state: vulp @@ -316,7 +316,7 @@ id: VulpTailAlt bodyPart: Tail markingCategory: Tail - speciesRestriction: [Vulpkanin] + speciesRestriction: [Vulpkanin, Human] sprites: - sprite: DeltaV/Mobs/Customization/Vulpkanin/tail_markings.rsi state: vulp_alt @@ -327,7 +327,7 @@ id: VulpTailAltTip bodyPart: Tail markingCategory: Tail - speciesRestriction: [Vulpkanin] + speciesRestriction: [Vulpkanin, Human] sprites: - sprite: DeltaV/Mobs/Customization/Vulpkanin/tail_markings.rsi state: vulp_alt @@ -338,7 +338,7 @@ id: VulpTailLong bodyPart: Tail markingCategory: Tail - speciesRestriction: [Vulpkanin] + speciesRestriction: [Vulpkanin, Human] sprites: - sprite: DeltaV/Mobs/Customization/Vulpkanin/tail_markings.rsi state: long @@ -349,7 +349,7 @@ id: VulpTailFox bodyPart: Tail markingCategory: Tail - speciesRestriction: [Vulpkanin] + speciesRestriction: [Vulpkanin, Human] sprites: - sprite: DeltaV/Mobs/Customization/Vulpkanin/tail_markings.rsi state: fox @@ -371,7 +371,7 @@ id: VulpTailFoxTip bodyPart: Tail markingCategory: Tail - speciesRestriction: [Vulpkanin] + speciesRestriction: [Vulpkanin, Human] sprites: - sprite: DeltaV/Mobs/Customization/Vulpkanin/tail_markings.rsi state: fox @@ -393,7 +393,7 @@ id: VulpTailBushy bodyPart: Tail markingCategory: Tail - speciesRestriction: [Vulpkanin] + speciesRestriction: [Vulpkanin, Human] sprites: - sprite: DeltaV/Mobs/Customization/Vulpkanin/tail_markings.rsi state: bushfluff @@ -411,7 +411,7 @@ id: VulpTailCoyote bodyPart: Tail markingCategory: Tail - speciesRestriction: [Vulpkanin] + speciesRestriction: [Vulpkanin, Human] sprites: - sprite: DeltaV/Mobs/Customization/Vulpkanin/tail_markings.rsi state: coyote @@ -429,7 +429,7 @@ id: VulpTailCorgi bodyPart: Tail markingCategory: Tail - speciesRestriction: [Vulpkanin] + speciesRestriction: [Vulpkanin, Human] sprites: - sprite: DeltaV/Mobs/Customization/Vulpkanin/tail_markings.rsi state: corgi @@ -447,7 +447,7 @@ id: VulpTailHusky bodyPart: Tail markingCategory: Tail - speciesRestriction: [Vulpkanin] + speciesRestriction: [Vulpkanin, Human] sprites: - sprite: DeltaV/Mobs/Customization/Vulpkanin/tail_markings.rsi state: husky-inner @@ -458,7 +458,7 @@ id: VulpTailHuskyAlt bodyPart: Tail markingCategory: Tail - speciesRestriction: [Vulpkanin] + speciesRestriction: [Vulpkanin, Human] sprites: - sprite: DeltaV/Mobs/Customization/Vulpkanin/tail_markings.rsi state: husky @@ -467,7 +467,7 @@ id: VulpTailFox2 bodyPart: Tail markingCategory: Tail - speciesRestriction: [Vulpkanin] + speciesRestriction: [Vulpkanin, Human] sprites: - sprite: DeltaV/Mobs/Customization/Vulpkanin/tail_markings.rsi state: fox2 @@ -476,7 +476,7 @@ id: VulpTailFox3 bodyPart: Tail markingCategory: Tail - speciesRestriction: [Vulpkanin] + speciesRestriction: [Vulpkanin, Human] sprites: - sprite: DeltaV/Mobs/Customization/Vulpkanin/tail_markings.rsi state: fox3 @@ -487,7 +487,7 @@ id: VulpTailFennec bodyPart: Tail markingCategory: Tail - speciesRestriction: [Vulpkanin] + speciesRestriction: [Vulpkanin, Human] sprites: - sprite: DeltaV/Mobs/Customization/Vulpkanin/tail_markings.rsi state: fennec @@ -496,7 +496,7 @@ id: VulpTailOtie bodyPart: Tail markingCategory: Tail - speciesRestriction: [Vulpkanin] + speciesRestriction: [Vulpkanin, Human] sprites: - sprite: DeltaV/Mobs/Customization/Vulpkanin/tail_markings.rsi state: otie @@ -505,7 +505,7 @@ id: VulpTailFluffy bodyPart: Tail markingCategory: Tail - speciesRestriction: [Vulpkanin] + speciesRestriction: [Vulpkanin, Human] sprites: - sprite: DeltaV/Mobs/Customization/Vulpkanin/tail_markings.rsi state: fluffy @@ -514,7 +514,7 @@ id: VulpTailDalmatian bodyPart: Tail markingCategory: Tail - speciesRestriction: [Vulpkanin] + speciesRestriction: [Vulpkanin, Human] sprites: - sprite: DeltaV/Mobs/Customization/Vulpkanin/tail_markings.rsi state: dalmatian diff --git a/Resources/Prototypes/DeltaV/Entities/Mobs/NPCs/animals.yml b/Resources/Prototypes/DeltaV/Entities/Mobs/NPCs/animals.yml index dd59d74d3f..674c7f3f82 100644 --- a/Resources/Prototypes/DeltaV/Entities/Mobs/NPCs/animals.yml +++ b/Resources/Prototypes/DeltaV/Entities/Mobs/NPCs/animals.yml @@ -1,6 +1,6 @@ - type: entity name: arctic fox - parent: SimpleMobBase + parent: MobFox id: MobArcticFox description: Wears a regal coat of snowy elegance, belying its cold and resourceful nature. components: @@ -30,8 +30,8 @@ - type: Strippable - type: UserInterface interfaces: - - key: enum.StrippingUiKey.Key - type: StrippableBoundUserInterface + enum.StrippingUiKey.Key: + type: StrippableBoundUserInterface - type: DamageStateVisuals states: Alive: @@ -40,10 +40,6 @@ Base: arcticfox_crit Dead: Base: arcticfox_dead - - type: Butcherable - spawned: - - id: FoodMeat - amount: 3 - type: InteractionPopup successChance: 0.5 interactSuccessString: petting-success-soft-floofy @@ -56,25 +52,10 @@ coldDamage: types: Cold: 0.1 - - type: Grammar - attributes: - gender: epicene - - type: Bloodstream - bloodMaxVolume: 100 - - type: MobPrice - price: 400 - - type: Tag - tags: - - VimPilot - - type: LanguageKnowledge - speaks: - - Fox - understands: - - Fox - type: entity name: security dog - parent: SimpleMobBase + parent: MobCorgi # There isn't a base dog mob, surprisingly. id: MobSecDog description: Funnily enough, this pig is actually a dog. components: @@ -101,7 +82,6 @@ - type: HTN rootTask: task: SimpleHostileCompound - - type: Physics - type: Speech speechVerb: Canine speechSounds: Vulpkanin @@ -145,8 +125,8 @@ - type: Strippable - type: UserInterface interfaces: - - key: enum.StrippingUiKey.Key - type: StrippableBoundUserInterface + enum.StrippingUiKey.Key: + type: StrippableBoundUserInterface - type: DamageStateVisuals states: Alive: @@ -184,4 +164,4 @@ - Dog understands: - Dog - - GalacticCommon + - TauCetiBasic diff --git a/Resources/Prototypes/DeltaV/Entities/Mobs/NPCs/familiars.yml b/Resources/Prototypes/DeltaV/Entities/Mobs/NPCs/familiars.yml index 364907ff9c..1090927cf8 100644 --- a/Resources/Prototypes/DeltaV/Entities/Mobs/NPCs/familiars.yml +++ b/Resources/Prototypes/DeltaV/Entities/Mobs/NPCs/familiars.yml @@ -62,7 +62,7 @@ - type: Dispellable - type: Damageable damageContainer: CorporealSpirit - damageModifierSet: FireSpirit + damageModifierSet: CorporealSpirit - type: PassiveDamage # Slight passive regen. Assuming one damage type, comes out to about 4 damage a minute. allowedStates: - Alive @@ -111,9 +111,9 @@ - NanoTrasen - type: LanguageKnowledge speaks: - - GalacticCommon + - TauCetiBasic understands: - - GalacticCommon + - TauCetiBasic - type: GhostTakeoverAvailable - type: GhostRole makeSentient: true @@ -144,10 +144,6 @@ - type: Welder fuelReagent: Phlogiston tankSafe: true - litMeleeDamageBonus: - types: # When lit, negate standard melee damage and replace with heat - Heat: 10 - Blunt: -10 # welderOnSounds: # collection: WelderIfritHandOn # welderOffSounds: diff --git a/Resources/Prototypes/DeltaV/Entities/Mobs/NPCs/nukiemouse.yml b/Resources/Prototypes/DeltaV/Entities/Mobs/NPCs/nukiemouse.yml index 8968f0e77a..09cafa2957 100644 --- a/Resources/Prototypes/DeltaV/Entities/Mobs/NPCs/nukiemouse.yml +++ b/Resources/Prototypes/DeltaV/Entities/Mobs/NPCs/nukiemouse.yml @@ -67,8 +67,8 @@ - type: InventorySlots - type: UserInterface interfaces: - - key: enum.StrippingUiKey.Key - type: StrippableBoundUserInterface + enum.StrippingUiKey.Key: + type: StrippableBoundUserInterface - type: DamageStateVisuals states: Alive: @@ -101,7 +101,7 @@ - Mouse understands: - Mouse - - GalacticCommon + - TauCetiBasic - type: Tag tags: - VimPilot @@ -147,7 +147,7 @@ - type: Bloodstream bloodMaxVolume: 60 - type: CanEscapeInventory - BaseResistTime: 3 + baseResistTime: 3 - type: MobPrice price: 250 # Their suits, while tiny, go for quite a bit on the market - type: IntrinsicRadioReceiver diff --git a/Resources/Prototypes/DeltaV/Entities/Mobs/Species/vulpkanin.yml b/Resources/Prototypes/DeltaV/Entities/Mobs/Species/vulpkanin.yml index 07152d74ef..b3027839b1 100644 --- a/Resources/Prototypes/DeltaV/Entities/Mobs/Species/vulpkanin.yml +++ b/Resources/Prototypes/DeltaV/Entities/Mobs/Species/vulpkanin.yml @@ -106,10 +106,10 @@ - type: Wagging - type: LanguageKnowledge speaks: - - GalacticCommon + - TauCetiBasic - Canilunzt understands: - - GalacticCommon + - TauCetiBasic - Canilunzt - type: ConsumeDelayModifier foodDelayMultiplier: 0.5 diff --git a/Resources/Prototypes/DeltaV/Entities/Objects/Devices/cartridges.yml b/Resources/Prototypes/DeltaV/Entities/Objects/Devices/cartridges.yml index def215cee4..81e11d9d08 100644 --- a/Resources/Prototypes/DeltaV/Entities/Objects/Devices/cartridges.yml +++ b/Resources/Prototypes/DeltaV/Entities/Objects/Devices/cartridges.yml @@ -38,3 +38,24 @@ sprite: Objects/Weapons/Melee/stunbaton.rsi state: stunbaton_on - type: SecWatchCartridge + +- type: entity + parent: BaseItem + id: MailMetricsCartridge + name: mail metrics cartridge + description: A cartridge that tracks statistics related to mail deliveries. + components: + - type: Sprite + sprite: DeltaV/Objects/Devices/cartridge.rsi + state: cart-mail + - type: Icon + sprite: DeltaV/Objects/Devices/cartridge.rsi + state: cart-mail + - type: UIFragment + ui: !type:MailMetricUi + - type: MailMetricsCartridge + - type: Cartridge + programName: mail-metrics-program-name + icon: + sprite: Objects/Specific/Mail/mail.rsi + state: icon diff --git a/Resources/Prototypes/DeltaV/Entities/Objects/Misc/paperslips.yml b/Resources/Prototypes/DeltaV/Entities/Objects/Misc/paperslips.yml index 3c25380e65..4ab4e54863 100644 --- a/Resources/Prototypes/DeltaV/Entities/Objects/Misc/paperslips.yml +++ b/Resources/Prototypes/DeltaV/Entities/Objects/Misc/paperslips.yml @@ -125,10 +125,10 @@ - type: Paper - type: ActivatableUI key: enum.PaperUiKey.Key - closeOnHandDeselect: false + requireActiveHand: false - type: UserInterface interfaces: - - key: enum.PaperUiKey.Key + enum.PaperUiKey.Key: type: PaperBoundUserInterface - type: Item size: Tiny diff --git a/Resources/Prototypes/DeltaV/Entities/Objects/Specific/Mail/mail.yml b/Resources/Prototypes/DeltaV/Entities/Objects/Specific/Mail/mail.yml index 7de554f5ff..6f96930078 100644 --- a/Resources/Prototypes/DeltaV/Entities/Objects/Specific/Mail/mail.yml +++ b/Resources/Prototypes/DeltaV/Entities/Objects/Specific/Mail/mail.yml @@ -1,3 +1,4 @@ +# DeltaV Mail - type: entity noSpawn: true parent: BaseMail @@ -175,3 +176,1643 @@ - type: Mail contents: - id: FoodPiePumpkin + +- type: entity + noSpawn: true + parent: BaseMail + id: MailDVCosplayFakeWizard + suffix: cosplay-wizard, fake as fuck + components: + - type: Mail + contents: + - id: ClothingOuterWizardFake + - id: ClothingHeadHatWizardFake + - id: ClothingShoesWizardFake + - id: FoodBurgerSpell + orGroup: FakeWizard + prob: 0.3 + - id: FoodKebabSkewer + orGroup: FakeWizard + prob: 0.1 + +- type: entity + parent: BaseMail + id: MailDVScarves + suffix: scarves + components: + - type: Mail + contents: + - id: ClothingNeckScarfStripedRed + orGroup: Scarf + - id: ClothingNeckScarfStripedBlue + orGroup: Scarf + - id: ClothingNeckScarfStripedGreen + orGroup: Scarf + - id: ClothingNeckScarfStripedBlack + orGroup: Scarf + - id: ClothingNeckScarfStripedBrown + orGroup: Scarf + - id: ClothingNeckScarfStripedLightBlue + orGroup: Scarf + - id: ClothingNeckScarfStripedOrange + orGroup: Scarf + - id: ClothingNeckScarfStripedPurple + orGroup: Scarf + - id: ClothingNeckScarfStripedZebra + orGroup: Scarf + - id: ClothingNeckScarfStripedSyndieGreen + orGroup: Scarf + prob: 0.25 + - id: ClothingNeckScarfStripedSyndieRed + orGroup: Scarf + prob: 0.25 + - id: ClothingNeckScarfStripedCentcom + orGroup: Scarf + prob: 0.001 + +- type: entity + parent: BaseMailLarge + id: MailDVBoxes + suffix: boxes + components: + - type: Mail + contents: +# - id: BoxEnvelope # TODO: we do not have this on EE? +# orGroup: Box + - id: BoxCardboard + orGroup: Box + - id: BoxMRE + orGroup: Box + - id: BoxPerformer + orGroup: Box + - id: BoxFlare + orGroup: Box + - id: BoxDarts + orGroup: Box + - id: BoxMousetrap + orGroup: Box + + + +# Frontier Mail, including Extended Nyano Mail. (Pony Express?) +- type: entity + noSpawn: true + parent: BaseMail + id: MailNFAlcohol + suffix: alcohol, extended + components: + - type: Mail + isFragile: true + contents: + # 12.5 overall weight, 8% base chance + - id: DrinkAbsintheBottleFull + orGroup: Drink + - id: DrinkBlueCuracaoBottleFull + orGroup: Drink + - id: DrinkCoffeeLiqueurBottleFull + orGroup: Drink + - id: DrinkGinBottleFull + orGroup: Drink + - id: DrinkMelonLiquorBottleFull + orGroup: Drink + - id: DrinkRumBottleFull + orGroup: Drink + - id: DrinkTequilaBottleFull + orGroup: Drink + - id: DrinkVermouthBottleFull + orGroup: Drink + - id: DrinkVodkaBottleFull + orGroup: Drink + - id: DrinkWhiskeyBottleFull + orGroup: Drink + - id: DrinkWineBottleFull + orGroup: Drink + - id: DrinkChampagneBottleFull + orGroup: Drink + prob: 0.5 + - id: DrinkGildlagerBottleFull + orGroup: Drink + prob: 0.5 + - id: DrinkPatronBottleFull + orGroup: Drink + prob: 0.5 + - id: DrinkGlass + amount: 2 + +- type: entity + noSpawn: true + parent: BaseMailLarge + id: MailNFBible + suffix: bible, extended + components: + - type: Mail + contents: + - id: Bible + - id: ClothingHeadHatWitch1 #DeltaV - Compensates for items that don't exist here + - id: ClothingOuterCoatMNKBlackTopCoat #DeltaV - Compensates for items that don't exist here + +- type: entity + noSpawn: true + parent: BaseMail + id: MailNFBikeHorn + suffix: bike horn, random + components: + - type: Mail + contents: + - id: BikeHorn + orGroup: Horn + prob: 0.95 + - id: CluwneHorn + orGroup: Horn + prob: 0.05 + +- type: entity + noSpawn: true + parent: BaseMailLarge + id: MailNFBuildABuddy + suffix: Build-a-Buddy + components: + - type: Mail + isFragile: true + contents: +# - id: BoxBuildABuddyGoblin # DeltaV - Goblins Aren't Real +# orGroup: Box + - id: BoxBuildABuddyHuman + orGroup: Box + - id: BoxBuildABuddyReptilian + orGroup: Box + - id: BoxBuildABuddySlime + orGroup: Box + - id: BoxBuildABuddyVulpkanin + orGroup: Box + - id: DrinkSpaceGlue + - id: PaperMailNFBuildABuddy + +- type: entity + noSpawn: true + parent: BaseMailLarge + id: MailNFCake + suffix: cake, extended + components: + - type: Mail + isFragile: true + isPriority: true + contents: + # 14.8 total weight, ~6.8% base chance + - id: FoodCakeApple + orGroup: Cake + - id: FoodCakeBirthday + orGroup: Cake + - id: FoodCakeBlueberry + orGroup: Cake + - id: FoodCakeCarrot + orGroup: Cake + - id: FoodCakeCheese + orGroup: Cake + - id: FoodCakeChocolate + orGroup: Cake + - id: FoodCakeChristmas + orGroup: Cake + - id: FoodCakeClown + orGroup: Cake + - id: FoodCakeLemon + orGroup: Cake + - id: FoodCakeLime + orGroup: Cake + - id: FoodCakeOrange + orGroup: Cake + - id: FoodCakePumpkin + orGroup: Cake + - id: FoodCakeVanilla + orGroup: Cake + # Uncommon + - id: FoodMothMothmallow + orGroup: Cake + prob: 0.5 + - id: FoodCakeSlime + orGroup: Cake + prob: 0.5 + # Rare + - id: FoodCakeBrain + orGroup: Cake + prob: 0.25 + - id: FoodCakeLemoon + orGroup: Cake + prob: 0.25 + - id: FoodCakeSuppermatter + orGroup: Cake + prob: 0.25 + # Ultra rare + - id: FoodCakeSpaceman + orGroup: Cake + prob: 0.05 + - id: KnifePlastic + - id: ForkPlastic + amount: 2 + +- type: entity + noSpawn: true + parent: BaseMail + id: MailNFCosplayWizard + suffix: cosplay-wizard, extended + components: + - type: Mail + contents: + - id: ClothingOuterWizard + - id: ClothingHeadHatWizard + - id: ClothingShoesWizard + - id: PonderingOrb + orGroup: Staff + prob: 0.3 + - id: RGBStaff + orGroup: Staff + prob: 0.1 + +- type: entity + noSpawn: true + parent: BaseMail + id: MailNFCosplayMaid + suffix: cosplay-maid, extended + components: + - type: Mail + contents: + - id: UniformMaid + orGroup: Uniform + - id: ClothingUniformJumpskirtJanimaid + orGroup: Uniform + - id: ClothingUniformJumpskirtJanimaidmini + orGroup: Uniform + - id: MegaSprayBottle + - id: ClothingHandsGlovesColorWhite + +- type: entity + noSpawn: true + parent: BaseMail + id: MailNFCosplayNurse + suffix: cosplay-nurse, extended + components: + - type: Mail + contents: + - id: ClothingUniformJumpskirtNurse + - id: ClothingHeadNurseHat + - id: Syringe + +- type: entity + noSpawn: true + parent: BaseMail + id: MailNFCheese + suffix: cheese, extended + components: + - type: Mail + isFragile: true + isPriority: true + contents: + - id: FoodCheese + orGroup: Cheese + prob: 0.5 + - id: FoodChevre + orGroup: Cheese + prob: 0.5 + - id: KnifePlastic + +- type: entity + noSpawn: true + parent: BaseMail + id: MailNFCigarettes + suffix: cigs, random + components: + - type: Mail + contents: + - id: CigPackBlack + orGroup: Cigs + prob: 0.19 + - id: CigPackBlue + orGroup: Cigs + prob: 0.19 + - id: CigPackGreen + orGroup: Cigs + prob: 0.19 + - id: CigPackRed + orGroup: Cigs + prob: 0.19 + - id: CigPackMixed + orGroup: Cigs + prob: 0.09 # Pool shared with CigPackMixedMedical, CigPackMixedNasty + - id: CigPackMixedMedical + orGroup: Cigs + prob: 0.05 + - id: CigPackMixedNasty + orGroup: Cigs + prob: 0.05 + # Rare + - id: CigPackSyndicate + orGroup: Cigs + prob: 0.05 + - id: CheapLighter + +- type: entity + noSpawn: true + parent: BaseMail + id: MailNFEMP + suffix: emp + components: + - type: Mail + contents: + - id: DelayedEMP + - id: PaperMailNFEMPPreparedness + +- type: entity + noSpawn: true + parent: BaseMail + id: MailNFSmoke + suffix: smoke + components: + - type: Mail + contents: + - id: DelayedSmoke + +- type: entity + noSpawn: true + parent: BaseMail + id: MailNFGoldCigars + suffix: cigars, premium + components: + - type: Mail + contents: + - id: CigarGoldCase + orGroup: Cigars + - id: FlippoLighter + orGroup: Lighter + prob: 0.95 + +- type: entity + noSpawn: true + parent: BaseMail + id: MailNFCookies + suffix: cookies, random + components: + - type: Mail + isPriority: true + contents: + # Cookie 1 + - id: FoodBakedCookie + orGroup: Cookie1 + - id: FoodBakedCookieOatmeal + orGroup: Cookie1 + - id: FoodBakedCookieRaisin + orGroup: Cookie1 + - id: FoodBakedCookieSugar + orGroup: Cookie1 + # Cookie 2 + - id: FoodBakedCookie + orGroup: Cookie2 + - id: FoodBakedCookieOatmeal + orGroup: Cookie2 + - id: FoodBakedCookieRaisin + orGroup: Cookie2 + - id: FoodBakedCookieSugar + orGroup: Cookie2 + # Cookie 3 + - id: FoodBakedCookie + orGroup: Cookie3 + - id: FoodBakedCookieOatmeal + orGroup: Cookie3 + - id: FoodBakedCookieRaisin + orGroup: Cookie3 + - id: FoodBakedCookieSugar + orGroup: Cookie3 + # Cookie 4 + - id: FoodBakedCookie + orGroup: Cookie4 + - id: FoodBakedCookieOatmeal + orGroup: Cookie4 + - id: FoodBakedCookieRaisin + orGroup: Cookie4 + - id: FoodBakedCookieSugar + orGroup: Cookie4 + +- type: entity + noSpawn: true + parent: BaseMail + id: MailNFKnife + suffix: knife, extended + components: + - type: Mail + contents: + - id: KukriKnife + orGroup: Knife + - id: Machete # A little large for an envelope but "we'll live" + orGroup: Knife + - id: CombatKnife + orGroup: Knife + - id: SurvivalKnife + orGroup: Knife + +- type: entity + noSpawn: true + parent: BaseMailLarge + id: MailNFSword + suffix: sword + components: + - type: Mail + contents: + - id: KatanaDulled + orGroup: Sword + prob: 0.95 + - id: ClaymoreDulled + orGroup: Sword + prob: 0.95 + - id: FoamCutlass + orGroup: Sword + prob: 0.95 + - id: Katana + orGroup: Sword + prob: 0.5 + - id: Claymore + orGroup: Sword + prob: 0.5 +# - id: CaneSheathFilled # TODO: don't have this yet +# orGroup: Sword +# prob: 0.3 + - id: Cutlass + orGroup: Sword + prob: 0.1 + - id: Kanabou # ah yes, swords + orGroup: Sword + prob: 0.1 + - id: ClothingBeltSheathFilled # Little dangerous between the reflect and the damage + orGroup: Sword + prob: 0.001 + +- type: entity + noSpawn: true + parent: BaseMail + id: MailNFMuffins + suffix: muffins, random + components: + - type: Mail + isPriority: true + contents: + # Muffin 1 + - id: FoodBakedMuffinBerry + orGroup: Muffin1 + - id: FoodBakedMuffinCherry + orGroup: Muffin1 + - id: FoodBakedMuffinBluecherry + orGroup: Muffin1 + - id: FoodBakedMuffin + orGroup: Muffin1 + - id: FoodMothMoffin + orGroup: Muffin1 + prob: 0.5 + # Muffin 2 + - id: FoodBakedMuffinBerry + orGroup: Muffin2 + - id: FoodBakedMuffinCherry + orGroup: Muffin2 + - id: FoodBakedMuffinBluecherry + orGroup: Muffin2 + - id: FoodBakedMuffin + orGroup: Muffin2 + - id: FoodMothMoffin + orGroup: Muffin2 + prob: 0.5 + # Muffin 3 + - id: FoodBakedMuffinBerry + orGroup: Muffin3 + - id: FoodBakedMuffinCherry + orGroup: Muffin3 + - id: FoodBakedMuffinBluecherry + orGroup: Muffin3 + - id: FoodBakedMuffin + orGroup: Muffin3 + - id: FoodMothMoffin + orGroup: Muffin3 + prob: 0.5 + # Muffin 4 + - id: FoodBakedMuffinBerry + orGroup: Muffin4 + - id: FoodBakedMuffinCherry + orGroup: Muffin4 + - id: FoodBakedMuffinBluecherry + orGroup: Muffin4 + - id: FoodBakedMuffin + orGroup: Muffin4 + - id: FoodMothMoffin + orGroup: Muffin4 + prob: 0.5 + +- type: entity + noSpawn: true + parent: BaseMail + id: MailNFPAI + suffix: PAI, extended + components: + - type: Mail + contents: + - id: PersonalAI + orGroup: PAI + prob: 0.99 + # Ultra rare + - id: SyndicatePersonalAI + orGroup: PAI + prob: 0.01 + +- type: entity + noSpawn: true + parent: BaseMail + id: MailNFPlushie + suffix: plushie, extended + components: + - type: Mail + contents: + # These are all grouped up now to guarantee at least one item received. + # The downside is you're not going to get half a dozen plushies anymore. + - id: PlushieBee + orGroup: Plushie + - id: PlushieRGBee + prob: 0.5 + orGroup: Plushie + - id: PlushieNuke + orGroup: Plushie + - id: PlushieArachind #DeltaV - Adds MORE PLUSHIE + orGroup: Plushie + - id: PlushieAtmosian #DeltaV - Adds MORE PLUSHIE + orGroup: Plushie + - id: PlushieXeno #DeltaV - Adds MORE PLUSHIE + orGroup: Plushie + - id: PlushiePenguin #DeltaV - Adds MORE PLUSHIE + orGroup: Plushie + - id: PlushieGhost #DeltaV - Adds MORE PLUSHIE + orGroup: Plushie + - id: PlushieDiona #DeltaV - Adds MORE PLUSHIE + orGroup: Plushie + - id: ToyMouse #DeltaV - Adds MORE PLUSHIE + orGroup: Plushie + - id: PlushieRouny + orGroup: Plushie + - id: PlushieLizard + orGroup: Plushie + - id: PlushieSpaceLizard + orGroup: Plushie + - id: PlushieRatvar + orGroup: Plushie + - id: PlushieNar + orGroup: Plushie + - id: PlushieCarp + orGroup: Plushie + - id: PlushieHolocarp #DeltaV - Adds MORE PLUSHIE + orGroup: Plushie + - id: PlushieRainbowCarp #DeltaV - Adds MORE PLUSHIE + orGroup: Plushie + - id: PlushieSlime + orGroup: Plushie + - id: PlushieSnake + orGroup: Plushie + - id: PlushieMothRandom + orGroup: Plushie + - id: PlushieMoth + prob: 0.5 + orGroup: Plushie + - id: PlushieMothMusician + prob: 0.5 + orGroup: Plushie + - id: PlushieMothBartender + prob: 0.5 + orGroup: Plushie + +# Random snacks, replaces MailChocolate (lousy animal organs) +- type: entity + noSpawn: true + parent: BaseMail + id: MailNFSnacks + suffix: snacks, random + components: + - type: Mail + contents: + # Snack 1 + - id: FoodSnackChocolate + orGroup: Snack1 + - id: FoodSnackPopcorn + orGroup: Snack1 + - id: FoodSnackChips + orGroup: Snack1 + - id: FoodSnackBoritos + orGroup: Snack1 + - id: FoodSnackSus + orGroup: Snack1 + - id: FoodSnackPistachios + orGroup: Snack1 + - id: FoodSnackRaisins + orGroup: Snack1 + - id: FoodSnackCheesie + orGroup: Snack1 + - id: FoodSnackEnergy + orGroup: Snack1 + - id: FoodSnackCnDs + orGroup: Snack1 + - id: FoodSnackSemki + orGroup: Snack1 + - id: FoodSnackSyndi + orGroup: Snack1 + prob: 0.5 + # Snack 2 + - id: FoodSnackChocolate + orGroup: Snack2 + - id: FoodSnackPopcorn + orGroup: Snack2 + - id: FoodSnackChips + orGroup: Snack2 + - id: FoodSnackBoritos + orGroup: Snack2 + - id: FoodSnackSus + orGroup: Snack2 + - id: FoodSnackPistachios + orGroup: Snack2 + - id: FoodSnackRaisins + orGroup: Snack2 + - id: FoodSnackCheesie + orGroup: Snack2 + - id: FoodSnackEnergy + orGroup: Snack2 + - id: FoodSnackCnDs + orGroup: Snack2 + - id: FoodSnackSemki + orGroup: Snack2 + - id: FoodSnackSyndi + orGroup: Snack2 + prob: 0.5 + # Snack 3 + - id: FoodSnackChocolate + orGroup: Snack3 + - id: FoodSnackPopcorn + orGroup: Snack3 + - id: FoodSnackChips + orGroup: Snack3 + - id: FoodSnackBoritos + orGroup: Snack3 + - id: FoodSnackSus + orGroup: Snack3 + - id: FoodSnackPistachios + orGroup: Snack3 + - id: FoodSnackRaisins + orGroup: Snack3 + - id: FoodSnackCheesie + orGroup: Snack3 + - id: FoodSnackEnergy + orGroup: Snack3 + - id: FoodSnackCnDs + orGroup: Snack3 + - id: FoodSnackSemki + orGroup: Snack3 + - id: FoodSnackSyndi + orGroup: Snack3 + prob: 0.5 + # Snack 4 + - id: FoodSnackChocolate + orGroup: Snack4 + - id: FoodSnackPopcorn + orGroup: Snack4 + - id: FoodSnackChips + orGroup: Snack4 + - id: FoodSnackBoritos + orGroup: Snack4 + - id: FoodSnackSus + orGroup: Snack4 + - id: FoodSnackPistachios + orGroup: Snack4 + - id: FoodSnackRaisins + orGroup: Snack4 + - id: FoodSnackCheesie + orGroup: Snack4 + - id: FoodSnackEnergy + orGroup: Snack4 + - id: FoodSnackCnDs + orGroup: Snack4 + - id: FoodSnackSemki + orGroup: Snack4 + - id: FoodSnackSyndi + orGroup: Snack4 + prob: 0.5 + +- type: entity + noSpawn: true + parent: BaseMail + id: MailNFVagueThreat + suffix: vague-threat + components: + - type: Mail + contents: + - id: PaperMailNFVagueThreat1 + orGroup: Paper + - id: PaperMailNFVagueThreat2 + orGroup: Paper + - id: PaperMailNFVagueThreat3 + orGroup: Paper + - id: PaperMailNFVagueThreat4 + orGroup: Paper + - id: PaperMailNFVagueThreat5 + orGroup: Paper + - id: PaperMailNFVagueThreat6 + orGroup: Paper + - id: PaperMailNFVagueThreat7 + orGroup: Paper + - id: PaperMailNFVagueThreat8 + orGroup: Paper + - id: PaperMailNFVagueThreat9 + orGroup: Paper + - id: PaperMailNFVagueThreat10 + orGroup: Paper + - id: PaperMailNFVagueThreat11 + orGroup: Paper + - id: PaperMailNFVagueThreat12 + orGroup: Paper + - id: KitchenKnife + orGroup: ThreateningObject + - id: ButchCleaver + orGroup: ThreateningObject + - id: CombatKnife + orGroup: ThreateningObject + - id: SurvivalKnife + orGroup: ThreateningObject + - id: SoapHomemade + orGroup: ThreateningObject + - id: FoodMeat + orGroup: ThreateningObject + - id: OrganHumanHeart + orGroup: ThreateningObject + +- type: entity + noSpawn: true + parent: BaseMail + id: MailNFDonkPockets + suffix: donk pockets, random + components: + - type: Mail + contents: + - id: FoodBoxDonkpocket + orGroup: Donk + prob: 0.4 # Higher probability, useful for chefs. + - id: FoodBoxDonkpocketSpicy + orGroup: Donk + prob: 0.1 + - id: FoodBoxDonkpocketTeriyaki + orGroup: Donk + prob: 0.1 + - id: FoodBoxDonkpocketPizza + orGroup: Donk + prob: 0.1 + - id: FoodBoxDonkpocketStonk + orGroup: Donk + prob: 0.05 + - id: FoodBoxDonkpocketCarp + orGroup: Donk + prob: 0.05 + - id: FoodBoxDonkpocketBerry + orGroup: Donk + prob: 0.1 + - id: FoodBoxDonkpocketHonk + orGroup: Donk + prob: 0.05 + - id: FoodBoxDonkpocketDink + orGroup: Donk + prob: 0.05 # Bad luck. + +# Needs a buff? +- type: entity + noSpawn: true + parent: BaseMail + id: MailNFSodaPwrGame + suffix: Pwrgame + components: + - type: Mail + contents: + - id: DrinkPwrGameCan + amount: 3 + - id: PaperMailNFPwrGameAd + +# Needs a buff? +- type: entity + noSpawn: true + parent: BaseMail + id: MailNFSodaRedBool + suffix: Red Bool + components: + - type: Mail + contents: + - id: DrinkEnergyDrinkCan + amount: 3 + - id: PaperMailNFRedBoolAd + +# Needs a buff? +- type: entity + noSpawn: true + parent: BaseMail + id: MailNFSodaSpaceCola + suffix: Space Cola + components: + - type: Mail + contents: + - id: DrinkColaBottleFull + - id: PaperMailNFSpaceColaAd + +# Needs a buff? +- type: entity + noSpawn: true + parent: BaseMail + id: MailNFSodaSpaceMountainWind + suffix: Space Mountain Wind + components: + - type: Mail + contents: + - id: DrinkSpaceMountainWindBottleFull + - id: PaperMailNFSpaceMountainWindAd + +# Needs a buff? +- type: entity + noSpawn: true + parent: BaseMail + id: MailNFSodaSpaceUp + suffix: Space Up + components: + - type: Mail + contents: + - id: DrinkSpaceUpBottleFull + - id: PaperMailNFSpaceUpAd + +#TODO: we don't have rainbow joints or blunts (yet?). Uncomment when (if?) they are added. +- type: entity + noSpawn: true + parent: BaseMail + id: MailNFJoints + suffix: joints + components: + - type: Mail + contents: + # Smokeable 1 + - id: Joint + orGroup: Smokeable1 + prob: 0.35 +# - id: JointRainbow +# orGroup: Smokeable1 +# prob: 0.15 +# - id: Blunt +# orGroup: Smokeable1 +# prob: 0.35 +# - id: BluntRainbow +# orGroup: Smokeable1 +# prob: 0.15 + # Smokeable 2 + - id: Joint + orGroup: Smokeable2 + prob: 0.35 +# - id: JointRainbow +# orGroup: Smokeable2 +# prob: 0.15 +# - id: Blunt +# orGroup: Smokeable2 +# prob: 0.35 +# - id: BluntRainbow +# orGroup: Smokeable2 +# prob: 0.15 + # Smokeable 3 + - id: Joint + orGroup: Smokeable3 + prob: 0.35 +# - id: JointRainbow +# orGroup: Smokeable3 +# prob: 0.15 +# - id: Blunt +# orGroup: Smokeable3 +# prob: 0.35 +# - id: BluntRainbow +# orGroup: Smokeable3 +# prob: 0.15 + +# Catchalls for food that only exist in random spawners +# Mmm, mail food +# Needs a buff? +- type: entity + noSpawn: true + parent: BaseMail + id: MailNFUnusualFood + suffix: unusual food + components: + - type: Mail + isPriority: true + isFragile: true + contents: + - id: FoodMealNachos + orGroup: Food + - id: FoodMealNachosCheesy + orGroup: Food + - id: FoodMealNachosCuban + orGroup: Food + - id: FoodMealEggplantParm + orGroup: Food + - id: FoodMealPotatoYaki + orGroup: Food + - id: FoodMealCornedbeef + orGroup: Food + - id: FoodMealBearsteak + orGroup: Food + - id: FoodMealPigblanket + orGroup: Food + - id: FoodMealEggsbenedict + orGroup: Food + - id: FoodMealOmelette + orGroup: Food + - id: FoodMealFriedegg + orGroup: Food + - id: FoodMealMilkape + orGroup: Food + - id: FoodMealMemoryleek + orGroup: Food + - id: DisgustingSweptSoup + orGroup: Food + - id: FoodBreadVolcanic + orGroup: Food + - id: FoodBakedWaffleSoylent + orGroup: Food + - id: FoodBakedWaffleRoffle + orGroup: Food + - id: FoodPieCherry + orGroup: Food + - id: FoodPieFrosty + orGroup: Food + prob: 0.05 + - id: FoodMeatGoliathCooked + amount: 3 + orGroup: Food + - id: FoodMeatRounyCooked + amount: 3 + orGroup: Food + - id: FoodMeatLizardCooked + amount: 3 + orGroup: Food + - id: FoodMeatSpiderlegCooked + amount: 3 + orGroup: Food + - id: FoodMeatMeatballCooked + amount: 4 + orGroup: Food + +# Needs a buff? +- type: entity + noSpawn: true + parent: BaseMail + id: MailNFBakedGoods + suffix: baked goods + components: + - type: Mail + isPriority: true + isFragile: true + contents: + - id: FoodBakedBunHoney + amount: 2 + orGroup: Food + - id: FoodBakedBunHotX + amount: 2 + orGroup: Food + - id: FoodBakedBunMeat + amount: 2 + orGroup: Food + - id: FoodBakedPretzel + amount: 2 + orGroup: Food + - id: FoodBakedCannoli + amount: 2 + orGroup: Food + - id: FoodDonutPlain + amount: 2 + orGroup: Food + - id: FoodDonutJellyPlain + amount: 2 + orGroup: Food + - id: FoodDonutHomer + amount: 2 + orGroup: Food + - id: FoodDonutChaos + amount: 2 + orGroup: Food + - id: FoodDonutMeat + amount: 2 + orGroup: Food + - id: FoodDonutPink + amount: 2 + orGroup: Food + - id: FoodDonutSpaceman + amount: 2 + orGroup: Food + - id: FoodDonutApple + amount: 2 + orGroup: Food + - id: FoodDonutCaramel + amount: 2 + orGroup: Food + - id: FoodDonutChocolate + amount: 2 + orGroup: Food +# - id: FoodDonutBluePumpkin # Don't have that yet +# amount: 2 +# orGroup: Food + - id: FoodDonutBungo + amount: 2 + orGroup: Food + - id: FoodDonut + amount: 2 + orGroup: Food + - id: FoodDonutSweetpea + amount: 2 + orGroup: Food + - id: FoodDonutJellyHomer + amount: 2 + orGroup: Food + - id: FoodDonutJellyPink + amount: 2 + orGroup: Food + - id: FoodDonutJellySpaceman + amount: 2 + orGroup: Food + - id: FoodDonutJellyApple + amount: 2 + orGroup: Food + - id: FoodDonutJellyCaramel + amount: 2 + orGroup: Food + - id: FoodDonutJellyChocolate + amount: 2 + orGroup: Food +# - id: FoodDonutJellyBluePumpkin # Don't have that yet +# amount: 2 +# orGroup: Food + - id: FoodDonutJellyBungo + amount: 2 + orGroup: Food + - id: FoodDonutJelly + amount: 2 + orGroup: Food + - id: FoodDonutJellySweetpea + amount: 2 + orGroup: Food + - id: FoodDonutJellySlugcat + amount: 2 + orGroup: Food + - id: FoodFrozenSandwich # ah yes, baked goods + amount: 2 + orGroup: Food + - id: FoodFrozenFreezy + amount: 2 + orGroup: Food + - id: FoodFrozenSundae + amount: 2 + orGroup: Food + - id: FoodFrozenCornuto + amount: 2 + orGroup: Food + - id: FoodFrozenPopsicleOrange + amount: 2 + orGroup: Food + - id: FoodFrozenPopsicleBerry + amount: 2 + orGroup: Food + - id: FoodFrozenPopsicleJumbo + amount: 2 + orGroup: Food + - id: FoodFrozenSnowcone + amount: 2 + orGroup: Food + - id: FoodFrozenSnowconeBerry + amount: 2 + orGroup: Food + - id: FoodFrozenSnowconeFruit + amount: 2 + orGroup: Food + - id: FoodFrozenSnowconeClown + amount: 2 + orGroup: Food + - id: FoodFrozenSnowconeMime + amount: 2 + orGroup: Food + - id: FoodFrozenSnowconeRainbow + amount: 2 + orGroup: Food + - id: FoodFrozenSnowconeMime + amount: 2 + orGroup: Food + - id: FoodMealMint # unlucky + amount: 2 + orGroup: Food + +# Needs a buff? +- type: entity + noSpawn: true + parent: BaseMail + id: MailNFUnusualProduce + suffix: unusual produce + components: + - type: Mail + isPriority: true + isFragile: true + contents: + - id: FoodLaughinPeaPod + orGroup: Produce + amount: 5 + - id: FoodMimana + orGroup: Produce + amount: 5 + - id: FoodLemoon + orGroup: Produce + amount: 5 + - id: FoodBlueTomato + orGroup: Produce + amount: 5 + - id: FoodBloodTomato + orGroup: Produce + amount: 5 + - id: FoodKoibean + orGroup: Produce + amount: 5 +# EE does not have those yet. Uncomment if any of those get ported. +# - id: FoodGhostPepper #DeltaV +# orGroup: Produce +# amount: 5 +# - id: FoodCosmicRevenant #DeltaV +# orGroup: Produce +# amount: 5 +# - id: FoodCrystalThistle #DeltaV +# orGroup: Produce +# amount: 5 + - id: FoodLily + orGroup: Produce + amount: 5 + prob: 0.5 + - id: FoodAmbrosiaDeus + orGroup: Produce + amount: 5 + prob: 0.5 + - id: FoodSpacemansTrumpet + orGroup: Produce + amount: 5 + prob: 0.25 + +- type: entity + noSpawn: true + parent: BaseMail + id: MailNFSoaps + suffix: soap sampler + components: + - type: Mail + contents: + - id: BoxSoapsAssorted + - id: PaperMailNTSoapAd1 + orGroup: Ad + - id: PaperMailNTSoapAd2 + orGroup: Ad + +- type: entity + noSpawn: true + parent: BaseMail + id: MailNFSoapsOmega + suffix: soap sampler, omega + components: + - type: Mail + contents: + - id: BoxSoapsAssortedOmega + - id: PaperMailNTSoapAd1 + orGroup: Ad + - id: PaperMailNTSoapAd2 + orGroup: Ad + +# Could add spessman battle rules here +- type: entity + noSpawn: true + 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 + components: + - type: Mail + contents: + - id: MysteryFigureBox + - id: MysteryFigureBox + - id: MysteryFigureBox + +- type: entity + noSpawn: true + parent: BaseMail + id: MailNFPen + suffix: fancy pen + components: + - type: Mail + contents: + - id: LuxuryPen + orGroup: Pen + prob: 0.50 + # DeltaV: Commenting these two out because I dunno if crew should have nice things + # - id: PenHop + # orGroup: Pen + # prob: 0.25 + # - id: PenCap + # orGroup: Pen + # prob: 0.25 + # TODO: come up with a slightly less powerful version of these + # Ultra-rare + # - id: CyberPen + # orGroup: Pen + # prob: 0.005 + # - id: PenCentcom + # orGroup: Pen + # prob: 0.005 + - id: PaperMailNFPaperPusherAd + +- type: entity + noSpawn: true + parent: BaseMailLarge + id: MailNFThrongler + suffix: throngler + components: + - type: Mail + contents: + - id: ThronglerToy + +- type: entity + noSpawn: true + parent: BaseMail + id: MailNFInstrumentSmall + suffix: instrument, expanded + components: + - type: Mail + contents: + - id: TrumpetInstrument + orGroup: Instrument + - id: RecorderInstrument + orGroup: Instrument + - id: ClarinetInstrument + orGroup: Instrument + - id: FluteInstrument + orGroup: Instrument + - id: HarmonicaInstrument + orGroup: Instrument + - id: OcarinaInstrument + orGroup: Instrument + - id: PanFluteInstrument + orGroup: Instrument + - id: KalimbaInstrument + orGroup: Instrument + - id: WoodblockInstrument + orGroup: Instrument + - id: BikeHornInstrument + orGroup: Instrument + - id: MusicBoxInstrument + orGroup: Instrument + - id: MicrophoneInstrument + orGroup: Instrument + - id: MusicalLungInstrument + orGroup: Instrument + # Uncommon + - id: PhoneInstrument + orGroup: Instrument + prob: 0.1 + # Rare + - id: BananaPhoneInstrument + orGroup: Instrument + prob: 0.05 + # Ultra-rare + - id: PhoneInstrumentSyndicate + orGroup: Instrument + prob: 0.01 + +- type: entity + noSpawn: true + parent: BaseMail + id: MailNFUnusualClothing + suffix: unusual clothing + components: + - type: Mail + contents: + - id: ClothingKimonoPink + orGroup: Clothes + - id: ClothingKimonoBlue + orGroup: Clothes + - id: ClothingKimonoPurple + orGroup: Clothes + - id: ClothingKimonoSky + orGroup: Clothes + - id: ClothingKimonoGreen + orGroup: Clothes + - id: ClothingUniformMartialGi + orGroup: Clothes + - id: ClothingNeckBling + orGroup: Clothes + - id: ClothingShoesBling + orGroup: Clothes + - id: ClothingNeckCloakAdmin + orGroup: Clothes + - id: ClothingHeadHatFancyCrown + orGroup: Clothes + - id: ClothingHeadHatCake + orGroup: Clothes + - id: ClothingHeadHatCone + orGroup: Clothes + - id: ClothingMaskOniRed + orGroup: Clothes + - id: ClothingMaskOniBlue + orGroup: Clothes + - id: ClothingHeadHatRichard + orGroup: Clothes + - id: ClothingHeadHatAnimalHeadslime + orGroup: Clothes + - id: ClothingHeadHatDogEars + orGroup: Clothes + - id: ClothingHeadHatCatEars + orGroup: Clothes + - id: ClothingEyesGlassesOutlawGlasses + orGroup: Clothes + - id: ClothingUniformJumpsuitGalaxyBlue + orGroup: Clothes + prob: 0.25 + - id: ClothingUniformJumpsuitGalaxyRed + orGroup: Clothes + prob: 0.25 + +- type: entity + noSpawn: true + parent: BaseMail + id: MailNFCritter + suffix: critter + components: + - type: Mail + isFragile: true + contents: + # Bugs (weight: 2) + - id: MobCockroach + orGroup: Critter + prob: 0.36 + - id: MobSlug + orGroup: Critter + prob: 0.36 + - id: MobArgocyteSlurva # honorary bug? + orGroup: Critter + prob: 0.36 + - id: MobBee + orGroup: Critter + prob: 0.36 + - id: MobButterfly + orGroup: Critter + prob: 0.36 + # Uncommon + - id: MobMothroach + orGroup: Critter + prob: 0.2 + # Small reptiles (weight: 1) + - id: MobLizard + orGroup: Critter + prob: 0.34 + - id: MobSnake + orGroup: Critter + prob: 0.33 + - id: MobFrog + orGroup: Critter + prob: 0.33 + # Small mammals (weight: 1) + - id: MobMouse + orGroup: Critter + prob: 0.33 + - id: MobMouse1 + orGroup: Critter + prob: 0.33 + - id: MobMouse2 + orGroup: Critter + prob: 0.33 + - id: MobMouseCancer + orGroup: Critter + prob: 0.01 # Rare + +- type: entity + noSpawn: true + parent: BaseMail + id: MailNFTacticalMaid + suffix: tactical maid + components: + - type: Mail + contents: + - id: ClothingUniformJumpskirtTacticalMaid + - id: ClothingHeadHatTacticalMaidHeadband + - id: MegaSprayBottle + - id: ClothingHandsTacticalMaidGloves + +- type: entity + noSpawn: true + parent: BaseMailLarge + id: MailNFKendoKit + suffix: kendo kit + components: + - type: Mail + contents: # A lot of stuff here, seems spammy. + - id: ClothingUniformKendoHakama + amount: 2 + - id: ClothingOuterArmorKendoBogu + amount: 2 + - id: ClothingHeadHelmetKendoMen + amount: 2 + - id: Shinai + amount: 2 + +# Base Nyano Mail +- type: entity + noSpawn: true + parent: BaseMail + id: MailSake + suffix: osake + components: + - type: Mail + contents: + - id: DrinkSakeCup + amount: 2 + - id: DrinkTokkuri + +- type: entity + noSpawn: true + parent: BaseMail + id: MailBlockGameDIY + suffix: blockgamediy + components: + - type: Mail + contents: + - id: BlockGameArcadeComputerCircuitboard + +- type: entity + noSpawn: true + parent: BaseMail + id: MailCigars + suffix: Cigars + components: + - type: Mail + contents: + - id: CigarCase + - id: Lighter + +- type: entity + noSpawn: true + parent: BaseMail + id: MailCrayon + suffix: Crayon + components: + - type: Mail + contents: + - id: CrayonBox + +- type: entity + noSpawn: true + parent: BaseMail + id: MailCosplayArc + suffix: cosplay-arc + components: + - type: Mail + openSound: /Audio/Nyanotrasen/Voice/Felinid/cat_wilhelm.ogg + contents: + - id: ClothingCostumeArcDress + +- type: entity + noSpawn: true + parent: BaseMail + id: MailCosplayGeisha + suffix: cosplay-geisha + components: + - type: Mail + contents: + - id: UniformGeisha + - id: DrinkTeapot + - id: DrinkTeacup + amount: 3 + +- type: entity + noSpawn: true + parent: BaseMail + id: MailCosplaySchoolgirl + suffix: cosplay-schoolgirl + components: + - type: Mail + contents: + - id: UniformSchoolgirlBlack + orGroup: Color + - id: UniformSchoolgirlBlue + orGroup: Color + - id: UniformSchoolgirlCyan + orGroup: Color + - id: UniformSchoolgirlGreen + orGroup: Color + - id: UniformSchoolgirlOrange + orGroup: Color + - id: UniformSchoolgirlPink + orGroup: Color + - id: UniformSchoolgirlPurple + orGroup: Color + - id: UniformSchoolgirlRed + orGroup: Color + +- type: entity + noSpawn: true + parent: BaseMail + id: MailFlowers + suffix: flowers + components: + - type: Mail + contents: + # TODO actual flowers + - id: ClothingHeadHatFlowerWreath + orGroup: Flowers + - id: FoodPoppy + orGroup: Flowers + - id: FoodLily + +- type: entity + noSpawn: true + parent: BaseMail + id: MailSignallerKit + suffix: signallerkit + components: + - type: Mail + contents: + - id: Multitool + - id: RemoteSignaller + +- type: entity + noSpawn: true + parent: BaseMail + id: MailNoir + suffix: noir + components: + - type: Mail + contents: + - id: ClothingUniformJumpsuitDetectiveGrey + - id: ClothingUniformJumpskirtDetectiveGrey + - id: ClothingHeadHatBowlerHat + - id: ClothingOuterCoatGentle + +- type: entity + noSpawn: true + parent: BaseMail + id: MailRestraints + suffix: restraints + components: + - type: Mail + contents: + - id: Handcuffs + - id: ClothingMaskMuzzle + - id: ClothingEyesBlindfold + +- type: entity + noSpawn: true + parent: BaseMail + id: MailFishingCap + suffix: fishingcap + components: + - type: Mail + contents: + - id: ClothingHeadFishCap + +- type: entity + noSpawn: true + parent: BaseMail + id: MailFlashlight + suffix: Flashlight + components: + - type: Mail + contents: + - id: FlashlightLantern + +- type: entity + noSpawn: true + parent: BaseMail + id: MailSpaceVillainDIY + suffix: spacevilliandiy + components: + - type: Mail + contents: + - id: SpaceVillainArcadeComputerCircuitboard + +- type: entity + noSpawn: true + parent: BaseMail + id: MailSunglasses + suffix: Sunglasses + components: + - type: Mail + contents: + - id: ClothingEyesGlassesSunglasses + +- type: entity + noSpawn: true + parent: BaseMail + id: MailWinterCoat + suffix: wintercoat + components: + - type: Mail + contents: + - id: ClothingOuterWinterCoat + orGroup: Coat + - id: ClothingOuterWinterCoatLong + orGroup: Coat + - id: ClothingOuterWinterCoatPlaid + orGroup: Coat diff --git a/Resources/Prototypes/DeltaV/Entities/Objects/Specific/Mail/mail_civilian.yml b/Resources/Prototypes/DeltaV/Entities/Objects/Specific/Mail/mail_civilian.yml new file mode 100644 index 0000000000..19a1ee3c53 --- /dev/null +++ b/Resources/Prototypes/DeltaV/Entities/Objects/Specific/Mail/mail_civilian.yml @@ -0,0 +1,229 @@ +# Frontier Mail +- type: entity + noSpawn: true + parent: BaseMailLarge + id: MailNFInstrumentLarge + suffix: instrument, large + components: + - type: Mail + contents: + - id: TromboneInstrument + orGroup: Instrument + - id: FrenchHornInstrument + orGroup: Instrument + - id: SaxophoneInstrument + orGroup: Instrument + - id: EuphoniumInstrument + orGroup: Instrument + - id: AcousticGuitarInstrument + orGroup: Instrument + - id: ElectricGuitarInstrument + orGroup: Instrument + - id: BassGuitarInstrument + orGroup: Instrument + - id: RockGuitarInstrument + orGroup: Instrument + - id: BanjoInstrument + orGroup: Instrument + - id: ViolinInstrument + orGroup: Instrument + - id: CelloInstrument + orGroup: Instrument + - id: ViolaInstrument + orGroup: Instrument + - id: BagpipeInstrument # Fury. + orGroup: Instrument + - id: SynthesizerInstrument + orGroup: Instrument + - id: AccordionInstrument + orGroup: Instrument + - id: GlockenspielInstrument + orGroup: Instrument + - id: XylophoneInstrument + orGroup: Instrument + # Uncommon + - id: Rickenbacker4003Instrument + orGroup: Instrument + prob: 0.25 + # Rare + - id: Rickenbacker4001Instrument + orGroup: Instrument + prob: 0.1 + +# Base Nyano Mail + +- type: entity + noSpawn: true + parent: BaseMail + id: MailBotanistChemicalBottles + suffix: botanist chemicals + components: + - type: Mail + contents: + - id: RobustHarvestChemistryBottle + orGroup: Chemical + prob: 0.6 + - id: WeedSpray + orGroup: Chemical + prob: 0.4 + +- type: entity + noSpawn: true + parent: BaseMail + id: MailBotanistMutagen + suffix: mutagen + components: + - type: Mail + isFragile: true + isPriority: true + contents: + - id: UnstableMutagenChemistryBottle + +- type: entity + noSpawn: true + parent: BaseMail + id: MailBotanistSeeds + suffix: seeds + components: + - type: Mail + contents: + - id: AloeSeeds + orGroup: Seeds + - id: AmbrosiaVulgarisSeeds + orGroup: Seeds + - id: AppleSeeds + orGroup: Seeds + - id: BananaSeeds + orGroup: Seeds + - id: CarrotSeeds + orGroup: Seeds + - id: ChanterelleSeeds + orGroup: Seeds + - id: ChiliSeeds + orGroup: Seeds + - id: CornSeeds + orGroup: Seeds + - id: EggplantSeeds + orGroup: Seeds + - id: GalaxythistleSeeds + orGroup: Seeds + - id: LemonSeeds + orGroup: Seeds + - id: LingzhiSeeds + orGroup: Seeds + - id: OatSeeds + orGroup: Seeds + - id: OnionSeeds + orGroup: Seeds + - id: PoppySeeds + orGroup: Seeds + - id: PotatoSeeds + orGroup: Seeds + - id: SugarcaneSeeds + orGroup: Seeds + - id: TomatoSeeds + orGroup: Seeds + - id: TowercapSeeds + orGroup: Seeds + - id: WheatSeeds + orGroup: Seeds + +- type: entity + noSpawn: true + parent: BaseMail + id: MailClownGildedBikeHorn + suffix: honk + components: + - type: Mail + isFragile: true + contents: + - id: BikeHornInstrument + +- type: entity + noSpawn: true + parent: BaseMail + id: MailClownHonkSupplement + suffix: honk + components: + - type: Mail + isFragile: true + contents: + - id: BikeHorn + - id: FoodPieBananaCream + - id: FoodBanana + +- type: entity + noSpawn: true + parent: BaseMail + id: MailHoPBureaucracy + suffix: hop paper + components: + - type: Mail + contents: + - id: Paper + maxAmount: 3 + +- type: entity + noSpawn: true + parent: BaseMail + id: MailHoPSupplement + suffix: hop supplement + components: + - type: Mail + contents: + - id: ClearPDA + - id: ClothingHeadsetGrey + - id: Paper + +- type: entity + noSpawn: true + parent: BaseMail + id: MailMimeArtsCrafts + suffix: arts and crafts + components: + - type: Mail + contents: + - id: CrayonBox + - id: Paper + maxAmount: 3 + +- type: entity + noSpawn: true + parent: BaseMail + id: MailMimeBlankBook + suffix: blank book + components: + - type: Mail + contents: + - id: BookRandom + +- type: entity + noSpawn: true + parent: BaseMail + id: MailMimeBottleOfNothing + suffix: bottle of nothing + components: + - type: Mail + contents: + - id: DrinkBottleOfNothingFull + +- type: entity + noSpawn: true + parent: BaseMail + id: MailPassengerMoney + suffix: passenger money + components: + - type: Mail + contents: + - id: SpaceCash100 + orGroup: Cash + prob: 0.1 + maxAmount: 10 + - id: SpaceCash500 + orGroup: Cash + prob: 0.3 + maxAmount: 5 + - id: SpaceCash1000 + orGroup: Cash + prob: 0.6 + maxAmount: 3 diff --git a/Resources/Prototypes/DeltaV/Entities/Objects/Specific/Mail/mail_command.yml b/Resources/Prototypes/DeltaV/Entities/Objects/Specific/Mail/mail_command.yml new file mode 100644 index 0000000000..86dec46a65 --- /dev/null +++ b/Resources/Prototypes/DeltaV/Entities/Objects/Specific/Mail/mail_command.yml @@ -0,0 +1,35 @@ +# Base Nyano Mail +- type: entity + noSpawn: true + parent: BaseMail + id: MailCommandPinpointerNuclear + suffix: pinpointer mail ops + components: + - type: Mail + contents: + - id: PinpointerNuclear + +- type: entity + noSpawn: true + parent: BaseMail + id: MailStationRepNFNukeDisk + suffix: nuke disk + components: + - type: Mail + isFragile: true + contents: + - id: NukeDiskFake + - id: PaperMailNFAntivirus + +- type: entity + noSpawn: true + parent: BaseMail + id: MailCommandNFPipebombIntern + suffix: pipe and bomb + components: + - type: Mail + isFragile: true + contents: + - id: SmokingPipeFilledTobacco + - id: DrinkAtomicBombGlass + - id: PaperMailNFPipebombIntern diff --git a/Resources/Prototypes/DeltaV/Entities/Objects/Specific/Mail/mail_engineering.yml b/Resources/Prototypes/DeltaV/Entities/Objects/Specific/Mail/mail_engineering.yml new file mode 100644 index 0000000000..af70fc621c --- /dev/null +++ b/Resources/Prototypes/DeltaV/Entities/Objects/Specific/Mail/mail_engineering.yml @@ -0,0 +1,182 @@ +# Base Nyano Mail +- type: entity + noSpawn: true + parent: BaseMail + id: MailEngineeringCables + suffix: cables + components: + - type: Mail + contents: + - id: CableHVStack + orGroup: Cables + - id: CableMVStack + orGroup: Cables + - id: CableApcStack + orGroup: Cables + +- type: entity + noSpawn: true + parent: BaseMail + id: MailEngineeringKudzuDeterrent + suffix: antikudzu + components: + - type: Mail + contents: + - id: PlantBGoneSpray + +- type: entity + noSpawn: true + parent: BaseMail + id: MailEngineeringSheetGlass + suffix: sheetglass + components: + - type: Mail + contents: + - id: SheetGlass + +- type: entity + noSpawn: true + parent: BaseMail + id: MailEngineeringWelderReplacement + suffix: welder + components: + - type: Mail + contents: + - id: Welder + +# Frontier Mail + +- type: entity + noSpawn: true + parent: BaseMail + id: MailNFCircuitboardIndustrial + suffix: industrial circuitboard + components: + - type: Mail + contents: + - id: ThermomachineFreezerMachineCircuitBoard + orGroup: Board + prob: 0.5 + - id: ThermomachineHeaterMachineCircuitBoard + orGroup: Board + prob: 0.5 + - id: HellfireFreezerMachineCircuitBoard + orGroup: Board + prob: 0.25 + - id: HellfireHeaterMachineCircuitBoard + orGroup: Board + prob: 0.25 + - id: CryoPodMachineCircuitboard # Medical as well + orGroup: Board + prob: 0.5 + - id: ChemMasterMachineCircuitboard + orGroup: Board + prob: 0.5 + - id: ChemDispenserMachineCircuitboard + orGroup: Board + prob: 0.25 + - id: StasisBedMachineCircuitboard + orGroup: Board + prob: 0.25 + - id: BiomassReclaimerMachineCircuitboard + orGroup: Board + prob: 0.25 + - id: BiofabricatorMachineCircuitboard + orGroup: Board + prob: 0.25 + - id: TurboItemRechargerCircuitboard + orGroup: Board + prob: 0.5 + - id: AutolatheHyperConvectionMachineCircuitboard + orGroup: Board + prob: 0.25 + - id: ProtolatheHyperConvectionMachineCircuitboard + orGroup: Board + prob: 0.25 + - id: HotplateMachineCircuitboard + orGroup: Board + prob: 0.5 +# - id: CircuitImprinterHyperConvectionMachineCircuitboard +# orGroup: Board +# prob: 0.25 + - id: SheetifierMachineCircuitboard + orGroup: Board + prob: 0.25 + - id: RadarConsoleCircuitboard + orGroup: Board + prob: 0.25 + - id: OreProcessorIndustrialMachineCircuitboard + orGroup: Board + prob: 0.5 + - id: GasRecyclerMachineCircuitboard + orGroup: Board + prob: 0.1 + +- type: entity + noSpawn: true + parent: BaseMail + id: MailNFCircuitboardService + suffix: service circuitboard + components: + - type: Mail + contents: + - id: ComputerTelevisionCircuitboard + orGroup: Board + - id: ReagentGrinderMachineCircuitboard + orGroup: Board + - id: ReagentGrinderIndustrialMachineCircuitboard + orGroup: Board + prob: 0.5 + - id: SurveillanceWirelessCameraMovableCircuitboard + orGroup: Board + prob: 0.5 + - id: MicrowaveMachineCircuitboard + orGroup: Board + - id: ElectricGrillMachineCircuitboard + orGroup: Board + prob: 0.5 + - id: FatExtractorMachineCircuitboard + orGroup: Board + prob: 0.25 + - id: SeedExtractorMachineCircuitboard + orGroup: Board + prob: 0.5 + - id: BoozeDispenserMachineCircuitboard + orGroup: Board + - id: SodaDispenserMachineCircuitboard + orGroup: Board + - id: JukeboxCircuitBoard + orGroup: Board + - id: TelecomServerCircuitboard + orGroup: Board + prob: 0.25 + - id: ComputerMassMediaCircuitboard + orGroup: Board + prob: 0.1 + +- type: entity + noSpawn: true + parent: BaseMailLarge + id: MailNFPowerTool + suffix: power tool + components: + - type: Mail + contents: + - id: PaperMailNFPowerTool + orGroup: Paper + - id: JawsOfLife + orGroup: Gift + prob: 0.33 + - id: PowerDrill + orGroup: Gift + prob: 0.33 + - id: WelderIndustrial + orGroup: Gift + prob: 0.20 + # Rare + - id: WelderIndustrialAdvanced + orGroup: Gift + prob: 0.10 + - id: WelderExperimental + orGroup: Gift + prob: 0.04 diff --git a/Resources/Prototypes/DeltaV/Entities/Objects/Specific/Mail/mail_epistemology.yml b/Resources/Prototypes/DeltaV/Entities/Objects/Specific/Mail/mail_epistemology.yml new file mode 100644 index 0000000000..be6f9818e2 --- /dev/null +++ b/Resources/Prototypes/DeltaV/Entities/Objects/Specific/Mail/mail_epistemology.yml @@ -0,0 +1,48 @@ +- type: entity + noSpawn: true + parent: BaseMail + id: MailEpistemologyBluespace + suffix: bluespace + components: + - type: Mail + contents: + - id: MaterialBluespace1 + +- type: entity + noSpawn: true + parent: BaseMail + id: MailEpistemologyIngotGold + suffix: ingotgold + components: + - type: Mail + contents: + - id: IngotGold1 + maxAmount: 3 + +- type: entity + noSpawn: true + parent: BaseMail + id: MailEpistemologyResearchDisk + suffix: researchdisk + components: + - type: Mail + contents: + - id: ResearchDisk + orGroup: Disk + prob: 0.6 + - id: ResearchDisk5000 + orGroup: Disk + prob: 0.3 + - id: ResearchDisk10000 + orGroup: Disk + prob: 0.1 + +- type: entity + noSpawn: true + parent: BaseMail + id: MailEpistemologyTinfoilHat + suffix: tinfoilhat + components: + - type: Mail + contents: + - id: ClothingHeadTinfoil diff --git a/Resources/Prototypes/Nyanotrasen/Entities/Objects/Specific/Mail/mail_medical.yml b/Resources/Prototypes/DeltaV/Entities/Objects/Specific/Mail/mail_medical.yml similarity index 84% rename from Resources/Prototypes/Nyanotrasen/Entities/Objects/Specific/Mail/mail_medical.yml rename to Resources/Prototypes/DeltaV/Entities/Objects/Specific/Mail/mail_medical.yml index 4e797272e5..735f840a20 100644 --- a/Resources/Prototypes/Nyanotrasen/Entities/Objects/Specific/Mail/mail_medical.yml +++ b/Resources/Prototypes/DeltaV/Entities/Objects/Specific/Mail/mail_medical.yml @@ -1,3 +1,4 @@ +# Base Nyano Mail - type: entity noSpawn: true parent: BaseMail @@ -91,3 +92,19 @@ maxAmount: 2 - id: SyringeTranexamicAcid maxAmount: 2 + +# Frontier Mail +- type: entity + parent: BaseMailLarge + id: MailNFMedkit + suffix: medkit + components: + - type: Mail + contents: + - id: MedkitAdvancedFilled + orGroup: Medkit + prob: 0.75 + - id: MedkitCombatFilled + orGroup: Medkit + prob: 0.25 + diff --git a/Resources/Prototypes/DeltaV/Entities/Objects/Specific/Mail/mail_security.yml b/Resources/Prototypes/DeltaV/Entities/Objects/Specific/Mail/mail_security.yml new file mode 100644 index 0000000000..eed846a090 --- /dev/null +++ b/Resources/Prototypes/DeltaV/Entities/Objects/Specific/Mail/mail_security.yml @@ -0,0 +1,95 @@ +# Base Nyano Mail +- type: entity + noSpawn: true + parent: BaseMail + id: MailSecurityDonuts + suffix: donuts + components: + - type: Mail + contents: + - id: FoodBoxDonut + +- type: entity + noSpawn: true + parent: BaseMail + id: MailSecurityFlashlight + suffix: seclite + components: + - type: Mail + contents: + - id: FlashlightSeclite + +- type: entity + noSpawn: true + parent: BaseMail + id: MailSecurityNonlethalsKit + suffix: nonlethalskit + components: + - type: Mail + contents: + - id: Flash + maxAmount: 2 + - id: GrenadeFlashBang + maxAmount: 2 + - id: Handcuffs + maxAmount: 2 + +#- type: entity +# parent: BaseMail +# id: MailSecuritySpaceLaw +# suffix: spacelaw +# components: +# - type: Mail +# contents: +# - id: HyperlinkBookSpaceLaw +# Will we ever readd hyperlinks books? Who knows! + +- type: entity + noSpawn: true + parent: BaseMail + id: MailWardenCrowdControl + suffix: crowdcontrol + components: + - type: Mail + contents: + - id: BoxBeanbag + +- type: entity + noSpawn: true + parent: BaseMail + id: MailDetectiveForensicSupplement # Deltav - Detective is in charge of investigating crimes. + suffix: detectivesupplement # Deltav - Detective is in charge of investigating crimes. + components: + - type: Mail + contents: + - id: BoxForensicPad + +# Frontier Mail + +- type: entity + noSpawn: true + parent: BaseMailLarge + id: MailSecurityNFMusket + suffix: musket + components: + - type: Mail + contents: + - id: ClothingHeadHatPwig + - id: Musket + - id: CartridgeAntiMateriel + amount: 2 + - id: PaperMailNTMusket + +# Delta Mail + +- type: entity + noSpawn: true + parent: BaseMail + id: MailSecurityDVSpaceLaw + suffix: spacelaw, extended + components: + - type: Mail + contents: + - id: BookSecurity +# - id: BookSOP #This is where I'd put my Delta SOP book... IF I HAD ONE!!! + - id: PaperMailNFSpaceLaw # Uses the NF space law paper, which is edited to mention the Delta Sector 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 6a8114d884..df2ccf2a94 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 @@ -92,6 +92,3 @@ blockSlots: NONE #shouldn't be blocked by a mask - type: InjectableSolution solution: ammo - - type: GuideHelp - guides: - - Psionics diff --git a/Resources/Prototypes/DeltaV/Entities/Structures/Machines/syndicate_monitor_server.yml b/Resources/Prototypes/DeltaV/Entities/Structures/Machines/syndicate_monitor_server.yml index 10933d716e..02d3d69cc6 100644 --- a/Resources/Prototypes/DeltaV/Entities/Structures/Machines/syndicate_monitor_server.yml +++ b/Resources/Prototypes/DeltaV/Entities/Structures/Machines/syndicate_monitor_server.yml @@ -23,7 +23,6 @@ machine_parts: !type:Container - type: CrewMonitoringServer - type: SingletonDeviceNetServer - ServerType: CrewMonitoringServer - type: DeviceNetwork deviceNetId: Wireless transmitFrequencyId: CrewMonitor @@ -33,7 +32,6 @@ range: 10000 # Mega range for Listening Post - type: ApcPowerReceiver powerLoad: 200 - priority: Low - type: ExtensionCableReceiver - type: Destructible thresholds: diff --git a/Resources/Prototypes/DeltaV/GameRules/events.yml b/Resources/Prototypes/DeltaV/GameRules/events.yml index a3fb69cf73..84a39e4c04 100644 --- a/Resources/Prototypes/DeltaV/GameRules/events.yml +++ b/Resources/Prototypes/DeltaV/GameRules/events.yml @@ -62,7 +62,6 @@ noSpawn: true components: - type: StationEvent - id: VentCritters earliestStart: 15 minimumPlayers: 1 weight: 4 diff --git a/Resources/Prototypes/DeltaV/Mail/mailDeliveries.yml b/Resources/Prototypes/DeltaV/Mail/mailDeliveries.yml new file mode 100644 index 0000000000..c0d6df9ec2 --- /dev/null +++ b/Resources/Prototypes/DeltaV/Mail/mailDeliveries.yml @@ -0,0 +1,147 @@ +- type: mailDeliveryPool + id: RandomDeltaVMailDeliveryPool #This entire table is messy as fuck but the weights add up to 35. TODO: ORGANIZE THIS SHIT AAAA + everyone: + MailNFAlcohol: 1 + MailNFBakedGoods: 1 + MailNFBible: 1 + MailNFBikeHorn: 0.5 + MailBooksAll: 1 + MailBlockGameDIY: 0.5 + MailNFBuildABuddy: 0.3 + MailDVBoxes: 0.3 + MailCrayon: 1 + MailNFCake: 1 + MailNFCheese: 1 + MailNFCookies: 1.1 + MailNFCritter: 1 + #Cigarettes - Adds up to 1 in weight + MailNFCigarettes: 0.5 + MailCigars: 0.2 + MailNFJoints: 0.2 + MailNFGoldCigars: 0.1 + #Cosplay - Adds up to 3.4 in weight + MailCosplayArc: 0.5 + MailDVCosplayFakeWizard: 0.5 + MailNFCosplayWizard: 0.5 + MailNFCosplayMaid: 0.5 + MailCosplayGeisha: 0.5 + MailCosplaySchoolgirl: 0.5 + MailNFCosplayNurse: 0.4 + MailNFDonkPockets: 0.5 + MailNFEMP: 0.3 + MailNFFigurineBulk: 1 + MailFishingCap: 0.5 + MailFlashlight: 1 + MailFlowers: 1 + MailNFKendoKit: 0.3 + MailNFKnife: 0.7 + MailNFMuffins: 1 + MailNoir: 0.5 + MailNFPAI: 1.2 + MailNFPlushie: 1 + MailPumpkinPie: 0.3 + MailNFPen: 0.7 + MailRestraints: 0.8 + MailSake: 0.4 + MailDVScarves: 0.15 + MailNFSnacks: 1 + #Soda - Adds up to 1 in weight + MailNFSodaPwrGame: 0.2 + MailNFSodaRedBool: 0.2 + MailNFSodaSpaceCola: 0.2 + MailNFSodaSpaceMountainWind: 0.2 + MailNFSodaSpaceUp: 0.2 + #End Soda + MailNFSmoke: 0.4 + MailSpaceVillainDIY: 0.5 + MailSignallerKit: 0.5 + MailSunglasses: 1 + MailNFSoaps: 0.5 + MailNFSoapsOmega: 0.5 + MailNFSword: 0.5 + MailNFTacticalMaid: 0.5 + MailNFThrongler: 0.05 + MailNFUnusualClothing: 0.5 + MailNFUnusualFood: 1 + MailNFUnusualProduce: 1 + MailNFVagueThreat: 0.5 + # Mainly for Glacier + MailWinterCoat: 1.5 + + # Department and job-specific mail can have slightly higher weights, + # since they'll be merged with the everyone pool. + departments: + Medical: + MailMedicalBasicSupplies: 2 + MailMedicalChemistrySupplement: 2 + MailMedicalEmergencyPens: 3 + MailMedicalMedicinePills: 2 + MailMedicalSheetPlasma: 1 + # MailMedicalSpaceacillin: 1 + MailMedicalStabilizers: 2 + MailNFMedkit: 2 + Engineering: + MailAMEGuide: 1 + MailEngineeringCables: 2 + MailEngineeringKudzuDeterrent: 2 + MailEngineeringSheetGlass: 2 + MailEngineeringWelderReplacement: 2 + MailNFCircuitboardIndustrial: 2 + MailNFCircuitboardService: 1 + MailNFPowerTool: 1 + Security: + MailSecurityDonuts: 3 + MailSecurityFlashlight: 2 + MailSecurityNonlethalsKit: 2 + MailSecurityDVSpaceLaw: 1 + MailSecurityNFMusket: 1 + Epistemics: +# MailBooks: 1 + MailEpistemologyBluespace: 1 + MailEpistemologyIngotGold: 2 + MailEpistemologyResearchDisk: 1 + MailEpistemologyTinfoilHat: 1 + MailSignallerKit: 1 + # All heads of staff are in Command and not their departments, technically. + # So any items from the departments above that should also be sent to the + # respective department heads should be duplicated below. + Command: + MailCommandPinpointerNuclear: 0.5 + MailStationRepNFNukeDisk: 0.3 + MailCommandNFPipebombIntern: 0.1 + + jobs: + Botanist: + MailBotanistChemicalBottles: 2 + MailBotanistMutagen: 1.5 + MailBotanistSeeds: 1 + ChiefEngineer: + MailEngineeringKudzuDeterrent: 2 + ChiefMedicalOfficer: + MailMedicalEmergencyPens: 2 + MailMedicalMedicinePills: 3 + MailMedicalSheetPlasma: 2 + Clown: + MailClownGildedBikeHorn: 0.5 + MailClownHonkSupplement: 3 + Detective: # Deltav - Detective is in charge of investigating crimes. + MailDetectiveForensicSupplement: 2 # Deltav - Detective is in charge of investigating crimes. + HeadOfPersonnel: + MailHoPBureaucracy: 2 + MailHoPSupplement: 3 + HeadOfSecurity: + MailSecurityNonlethalsKit: 2 + Lawyer: + MailSecurityDVSpaceLaw: 2 + Mime: + MailMimeArtsCrafts: 3 + MailMimeBlankBook: 2 + MailMimeBottleOfNothing: 1 + ResearchDirector: # DeltaV - Epistemics Department replacing Science but keeping their IDs + MailEpistemologyIngotGold: 2 + Musician: + MailMusicianInstrumentSmall: 1 + Passenger: + MailPassengerMoney: 3 + Warden: + MailWardenCrowdControl: 2 diff --git a/Resources/Prototypes/DeltaV/Objectives/paradox_anomaly.yml b/Resources/Prototypes/DeltaV/Objectives/paradox_anomaly.yml index dd0b74c461..ec87795ab5 100644 --- a/Resources/Prototypes/DeltaV/Objectives/paradox_anomaly.yml +++ b/Resources/Prototypes/DeltaV/Objectives/paradox_anomaly.yml @@ -1,9 +1,9 @@ - type: entity abstract: true - parent: BaseTerminatorObjective # mrp terminator real id: BaseParadoxAnomalyObjective components: - type: Objective + difficulty: 1 issuer: self # not using base kill/keep alive objectives since these intentionally conflict with eachother @@ -19,7 +19,6 @@ state: icon - type: TargetObjective title: objective-paradox-anomaly-kill-title - - type: TerminatorTargetOverride - type: KillPersonCondition requireDead: true @@ -35,7 +34,6 @@ state: folder-white - type: TargetObjective title: objective-paradox-anomaly-friend-title - - type: TerminatorTargetOverride - type: KeepAliveCondition - type: entity diff --git a/Resources/Prototypes/DeltaV/Objectives/stealTargetGroups.yml b/Resources/Prototypes/DeltaV/Objectives/stealTargetGroups.yml index b311330873..1236decde9 100644 --- a/Resources/Prototypes/DeltaV/Objectives/stealTargetGroups.yml +++ b/Resources/Prototypes/DeltaV/Objectives/stealTargetGroups.yml @@ -19,6 +19,48 @@ sprite: DeltaV/Objects/Weapons/Guns/Battery/multiphase_energygun.rsi state: base +- type: stealTargetGroup + id: WeaponPulsePistolHoS + name: antique pulse pistol + sprite: + sprite: Objects/Weapons/Guns/Battery/pulse_pistol.rsi + state: base + +- type: stealTargetGroup + id: WeaponSubMachineGunWt550HoS + name: antique Wt550 + sprite: + sprite: Objects/Weapons/Guns/SMGs/wt550.rsi + state: base + +- type: stealTargetGroup + id: WeaponSubMachineGunC20rHoS + name: antique C20r + sprite: + sprite: Objects/Weapons/Guns/SMGs/c20r.rsi + state: base + +- type: stealTargetGroup + id: WeaponShotgunBulldogHoS + name: antique C20r + sprite: + sprite: Objects/Weapons/Guns/Shotguns/bulldog.rsi + state: base + +- type: stealTargetGroup + id: EnergySwordHoS + name: antique energy sword + sprite: + sprite: Objects/Weapons/Melee/e_sword.rsi + state: e_sword + +- type: stealTargetGroup + id: ClothingBeltKatanaSheathFilledHoS + name: antique katana sheaths + sprite: + sprite: Nyanotrasen/Clothing/Belt/katanasheath.rsi + state: sheath + - type: stealTargetGroup id: RubberStampNotary name: notary stamp diff --git a/Resources/Prototypes/DeltaV/Objectives/traitor.yml b/Resources/Prototypes/DeltaV/Objectives/traitor.yml index d27ec220fa..b753aaf165 100644 --- a/Resources/Prototypes/DeltaV/Objectives/traitor.yml +++ b/Resources/Prototypes/DeltaV/Objectives/traitor.yml @@ -33,6 +33,84 @@ stealGroup: WeaponEnergyGunMultiphase owner: job-name-hos +- type: entity # Head of Security steal objective. + noSpawn: true + parent: BaseTraitorStealObjective + id: HoSPulsePistolStealObjective + components: + - type: Objective + difficulty: 3 # HoS will mostly be using the gun to stop you from stealing it + - type: NotJobRequirement + job: HeadOfSecurity + - type: StealCondition + stealGroup: WeaponPulsePistolHoS + owner: job-name-hos + +- type: entity # Head of Security steal objective. + noSpawn: true + parent: BaseTraitorStealObjective + id: HoSWt550StealObjective + components: + - type: Objective + difficulty: 3 # HoS will mostly be using the gun to stop you from stealing it + - type: NotJobRequirement + job: HeadOfSecurity + - type: StealCondition + stealGroup: WeaponSubMachineGunWt550HoS + owner: job-name-hos + +- type: entity # Head of Security steal objective. + noSpawn: true + parent: BaseTraitorStealObjective + id: HoSC20rStealObjective + components: + - type: Objective + difficulty: 3 # HoS will mostly be using the gun to stop you from stealing it + - type: NotJobRequirement + job: HeadOfSecurity + - type: StealCondition + stealGroup: WeaponSubMachineGunC20rHoS + owner: job-name-hos + +- type: entity # Head of Security steal objective. + noSpawn: true + parent: BaseTraitorStealObjective + id: HoSBulldogStealObjective + components: + - type: Objective + difficulty: 3 # HoS will mostly be using the gun to stop you from stealing it + - type: NotJobRequirement + job: HeadOfSecurity + - type: StealCondition + stealGroup: WeaponShotgunBulldogHoS + owner: job-name-hos + +- type: entity # Head of Security steal objective. + noSpawn: true + parent: BaseTraitorStealObjective + id: HoSEnergySwordStealObjective + components: + - type: Objective + difficulty: 3 # HoS will mostly be using the gun to stop you from stealing it + - type: NotJobRequirement + job: HeadOfSecurity + - type: StealCondition + stealGroup: EnergySwordHoS + owner: job-name-hos + +- type: entity # Head of Security steal objective. + noSpawn: true + parent: BaseTraitorStealObjective + id: HoSKatanaSheathStealObjective + components: + - type: Objective + difficulty: 3 # HoS will mostly be using the gun to stop you from stealing it + - type: NotJobRequirement + job: HeadOfSecurity + - type: StealCondition + stealGroup: ClothingBeltKatanaSheathFilledHoS + owner: job-name-hos + - type: entity # Clerk steal objective. noSpawn: true parent: BaseTraitorStealObjective @@ -43,5 +121,3 @@ - type: StealCondition stealGroup: RubberStampNotary owner: job-name-clerk - - diff --git a/Resources/Prototypes/DeltaV/Reagents/Consumable/Drink/drinks.yml b/Resources/Prototypes/DeltaV/Reagents/Consumable/Drink/drinks.yml index c568c1bc75..7fdc51f1de 100644 --- a/Resources/Prototypes/DeltaV/Reagents/Consumable/Drink/drinks.yml +++ b/Resources/Prototypes/DeltaV/Reagents/Consumable/Drink/drinks.yml @@ -19,7 +19,7 @@ factor: 2 - !type:AdjustReagent reagent: Ethanol - amount: 0.3 + amount: 0.336 - !type:PopupMessage conditions: - !type:ReagentThreshold @@ -55,7 +55,7 @@ factor: 2 - !type:AdjustReagent reagent: Ethanol - amount: 0.20 + amount: 0.133 Poison: effects: - !type:HealthChange @@ -83,7 +83,7 @@ factor: 2 - !type:AdjustReagent reagent: Ethanol - amount: 0.15 + amount: 0.16 - type: reagent id: GreenGrass @@ -105,7 +105,7 @@ factor: 2 - !type:AdjustReagent reagent: Ethanol - amount: 0.05 + amount: 0.083 - type: reagent id: Daiquiri @@ -128,7 +128,7 @@ factor: 2 - !type:AdjustReagent reagent: Ethanol - amount: 0.25 + amount: 0.3 - type: reagent id: ArsonistsBrew @@ -151,7 +151,7 @@ factor: 2 - !type:AdjustReagent reagent: Ethanol - amount: 0.30 + amount: 0.08 Poison: effects: - !type:HealthChange @@ -179,6 +179,14 @@ metamorphicMaxFillLevels: 4 metamorphicFillBaseName: fill- metamorphicChangeColor: false + metabolisms: + Drink: + effects: + - !type:SatiateThirst + factor: 2 + - !type:AdjustReagent + reagent: Ethanol + amount: 0.015 - type: reagent id: Mothamphetamine @@ -201,7 +209,7 @@ factor: 2 - !type:AdjustReagent reagent: Ethanol - amount: 0.25 + amount: 0.126 Poison: effects: - !type:Jitter diff --git a/Resources/Prototypes/DeltaV/Recipes/Construction/clothing.yml b/Resources/Prototypes/DeltaV/Recipes/Construction/clothing.yml index 386a0211c0..601bcd540b 100644 --- a/Resources/Prototypes/DeltaV/Recipes/Construction/clothing.yml +++ b/Resources/Prototypes/DeltaV/Recipes/Construction/clothing.yml @@ -1,9 +1,9 @@ - type: construction name: prescription medhud - id: ClothingEyesPrescriptionMedHud + id: PrescriptionMedHud graph: PrescriptionMedHud startNode: start - targetNode: prescmedhud + targetNode: prescmedhud category: construction-category-clothing description: Prescription medhud, merged glasses and medhud together by sheer luck and cables with glue. icon: { sprite: DeltaV/Clothing/Eyes/Hud/prescmedhud.rsi, state: icon } @@ -11,10 +11,10 @@ - type: construction name: prescription sechud - id: ClothingEyesPrescriptionHudSecurity + id: PrescriptionHudSecurity graph: PrescriptionSecHud startNode: start - targetNode: prescsechud + targetNode: prescsechud category: construction-category-clothing description: Prescription sechud, merged glasses and sechud together by sheer luck and cables with glue. icon: { sprite: DeltaV/Clothing/Eyes/Hud/prescsechud.rsi, state: icon } diff --git a/Resources/Prototypes/DeltaV/Roles/Jobs/Security/brigmedic.yml b/Resources/Prototypes/DeltaV/Roles/Jobs/Security/brigmedic.yml index 681cb95be7..51eeb5e142 100644 --- a/Resources/Prototypes/DeltaV/Roles/Jobs/Security/brigmedic.yml +++ b/Resources/Prototypes/DeltaV/Roles/Jobs/Security/brigmedic.yml @@ -35,7 +35,7 @@ equipment: jumpsuit: ClothingUniformJumpsuitBrigmedic outerClothing: ClothingOuterArmorPlateCarrier - back: ClothingBackpackBrigmedicFilled + back: ClothingBackpackBrigmedicFilled shoes: ClothingShoesBootsCombatFilled gloves: ClothingHandsGlovesNitrile eyes: ClothingEyesHudMedical @@ -43,7 +43,6 @@ id: CorpsmanPDA ears: ClothingHeadsetBrigmedic belt: ClothingBeltCorpsmanWebbingFilled - pocket1: WeaponPistolMk58Nonlethal innerClothingSkirt: ClothingUniformJumpskirtBrigmedic satchel: ClothingBackpackSatchelBrigmedicFilled duffelbag: ClothingBackpackDuffelBrigmedicFilled diff --git a/Resources/Prototypes/DeltaV/Traits/neutral.yml b/Resources/Prototypes/DeltaV/Traits/neutral.yml index 6168d7045a..469fa5b34b 100644 --- a/Resources/Prototypes/DeltaV/Traits/neutral.yml +++ b/Resources/Prototypes/DeltaV/Traits/neutral.yml @@ -1,6 +1,9 @@ - type: trait id: ScottishAccent - category: Speech + category: TraitsSpeechAccents points: 0 + requirements: + - !type:CharacterItemGroupRequirement + group: TraitsAccents components: - type: ScottishAccent diff --git a/Resources/Prototypes/DeltaV/Voice/speech_emotes.yml b/Resources/Prototypes/DeltaV/Voice/speech_emotes.yml index 29f75d0d50..7f3eb0313a 100644 --- a/Resources/Prototypes/DeltaV/Voice/speech_emotes.yml +++ b/Resources/Prototypes/DeltaV/Voice/speech_emotes.yml @@ -1,5 +1,6 @@ - type: emote id: HarpyRing + name: chat-emote-name-harpyring category: Vocal chatMessages: [ rings ] chatTriggers: @@ -7,6 +8,7 @@ - type: emote id: HarpyPew + name: chat-emote-name-harpypew category: Vocal chatMessages: [ pews ] chatTriggers: @@ -15,6 +17,7 @@ - type: emote id: HarpyBang + name: chat-emote-name-harpybang category: Vocal chatMessages: [ bangs ] chatTriggers: @@ -22,6 +25,7 @@ - type: emote id: HarpyRev + name: chat-emote-name-harpyrev category: Vocal chatMessages: [ revs ] chatTriggers: @@ -29,6 +33,7 @@ - type: emote id: HarpyCaw + name: chat-emote-name-harpycaw category: Vocal chatMessages: [ caws ] chatTriggers: @@ -37,6 +42,7 @@ #Vulpkanin - type: emote id: Bark + name: chat-emote-name-vulpbark category: Vocal chatMessages: [ barks ] chatTriggers: @@ -44,6 +50,7 @@ - type: emote id: Snarl + name: chat-emote-name-vulpsnarl category: Vocal chatMessages: [ snarls ] chatTriggers: @@ -51,6 +58,7 @@ - type: emote id: Whine + name: chat-emote-name-vulpwhine category: Vocal chatMessages: [ whines ] chatTriggers: @@ -58,6 +66,7 @@ - type: emote id: Howl + name: chat-emote-name-vulphowl category: Vocal chatMessages: [ howls ] chatTriggers: diff --git a/Resources/Prototypes/Device/devicenet_frequencies.yml b/Resources/Prototypes/Device/devicenet_frequencies.yml index db48d117e0..ecdbb3bb4c 100644 --- a/Resources/Prototypes/Device/devicenet_frequencies.yml +++ b/Resources/Prototypes/Device/devicenet_frequencies.yml @@ -75,6 +75,17 @@ name: device-frequency-prototype-name-crew-monitor frequency: 1261 +# Cyborgs broadcast to consoles on this frequency +- type: deviceFrequency + id: RoboticsConsole + name: device-frequency-prototype-name-robotics-console + frequency: 1291 + +# Console sends commands to cyborgs on this frequency +- type: deviceFrequency + id: CyborgControl + name: device-frequency-prototype-name-cyborg-control + frequency: 1292 # This frequency will likely have a LARGE number of listening entities. Please don't broadcast on this frequency. - type: deviceFrequency diff --git a/Resources/Prototypes/DeviceLinking/source_ports.yml b/Resources/Prototypes/DeviceLinking/source_ports.yml index 18b9b831e6..1988f29e45 100644 --- a/Resources/Prototypes/DeviceLinking/source_ports.yml +++ b/Resources/Prototypes/DeviceLinking/source_ports.yml @@ -45,6 +45,11 @@ description: signal-port-description-doorstatus defaultLinks: [ DoorBolt ] +- type: sourcePort + id: DockStatus + name: signal-port-name-dockstatus + description: signal-port-description-dockstatus + - type: sourcePort id: OrderSender name: signal-port-name-order-sender diff --git a/Resources/Prototypes/Entities/Clothing/Back/backpacks.yml b/Resources/Prototypes/Entities/Clothing/Back/backpacks.yml index 710c8e533d..bcd4060544 100644 --- a/Resources/Prototypes/Entities/Clothing/Back/backpacks.yml +++ b/Resources/Prototypes/Entities/Clothing/Back/backpacks.yml @@ -23,8 +23,8 @@ ents: [] - type: UserInterface interfaces: - - key: enum.StorageUiKey.Key - type: StorageBoundUserInterface + enum.StorageUiKey.Key: + type: StorageBoundUserInterface # to prevent bag open/honk spam - type: UseDelay delay: 0.5 diff --git a/Resources/Prototypes/Entities/Clothing/Back/specific.yml b/Resources/Prototypes/Entities/Clothing/Back/specific.yml index 829d8b7bdf..493d7e47ed 100644 --- a/Resources/Prototypes/Entities/Clothing/Back/specific.yml +++ b/Resources/Prototypes/Entities/Clothing/Back/specific.yml @@ -14,9 +14,9 @@ default: ClothingBackpack - type: UserInterface interfaces: - - key: enum.StorageUiKey.Key + enum.StorageUiKey.Key: type: StorageBoundUserInterface - - key: enum.ChameleonUiKey.Key + enum.ChameleonUiKey.Key: type: ChameleonBoundUserInterface - type: entity @@ -51,8 +51,8 @@ canChangeTransferAmount: true - type: UserInterface interfaces: - - key: enum.TransferAmountUiKey.Key - type: TransferAmountBoundUserInterface + enum.TransferAmountUiKey.Key: + type: TransferAmountBoundUserInterface - type: DrawableSolution solution: tank - type: RefillableSolution diff --git a/Resources/Prototypes/Entities/Clothing/Belt/base_clothingbelt.yml b/Resources/Prototypes/Entities/Clothing/Belt/base_clothingbelt.yml index 62889d0aba..1d26d71660 100644 --- a/Resources/Prototypes/Entities/Clothing/Belt/base_clothingbelt.yml +++ b/Resources/Prototypes/Entities/Clothing/Belt/base_clothingbelt.yml @@ -45,8 +45,8 @@ ents: [] - type: UserInterface interfaces: - - key: enum.StorageUiKey.Key - type: StorageBoundUserInterface + enum.StorageUiKey.Key: + type: StorageBoundUserInterface - type: entity abstract: true diff --git a/Resources/Prototypes/Entities/Clothing/Belt/belts.yml b/Resources/Prototypes/Entities/Clothing/Belt/belts.yml index 359165cfc5..80d5cf5a15 100644 --- a/Resources/Prototypes/Entities/Clothing/Belt/belts.yml +++ b/Resources/Prototypes/Entities/Clothing/Belt/belts.yml @@ -31,6 +31,7 @@ - AppraisalTool - JawsOfLife - GPS + - WeldingMask components: - SprayPainter - NetworkConfigurator @@ -473,12 +474,19 @@ - MagazinePistol - MagazineMagnum - CombatKnife + - Truncheon components: - Stunbaton - FlashOnTrigger - SmokeOnTrigger - Flash - Handcuff + - BallisticAmmoProvider + - CartridgeAmmo + - DoorRemote + - Whistle + - HolosignProjector + - BalloonPopper - type: ItemMapper mapLayers: flashbang: @@ -600,7 +608,7 @@ - CartridgeAmmo - type: entity - parent: ClothingBeltStorageBase + parent: ClothingBeltSecurity id: ClothingBeltSecurityWebbing name: security webbing description: Unique and versatile chest rig, can hold security gear. @@ -623,11 +631,10 @@ - id: Stunbaton - id: Handcuffs - id: Handcuffs - - type: entity parent: ClothingBeltStorageBase id: ClothingBeltMercWebbing - name: mercenarie webbing + name: mercenary webbing description: Ideal for storing everything from ammo to weapons and combat essentials. components: - type: Sprite diff --git a/Resources/Prototypes/Entities/Clothing/Belt/quiver.yml b/Resources/Prototypes/Entities/Clothing/Belt/quiver.yml index 6cbf5a69ca..bb4e395c4f 100644 --- a/Resources/Prototypes/Entities/Clothing/Belt/quiver.yml +++ b/Resources/Prototypes/Entities/Clothing/Belt/quiver.yml @@ -18,7 +18,11 @@ whitelist: tags: - Arrow + - Plunger - type: Appearance - type: StorageContainerVisuals maxFillLevels: 3 fillBaseName: fill- + - type: Construction + graph: Quiver + node: Quiver diff --git a/Resources/Prototypes/Entities/Clothing/Ears/specific.yml b/Resources/Prototypes/Entities/Clothing/Ears/specific.yml index 093f5e645b..83612ac4b2 100644 --- a/Resources/Prototypes/Entities/Clothing/Ears/specific.yml +++ b/Resources/Prototypes/Entities/Clothing/Ears/specific.yml @@ -16,5 +16,5 @@ default: ClothingHeadsetGrey - type: UserInterface interfaces: - - key: enum.ChameleonUiKey.Key + enum.ChameleonUiKey.Key: type: ChameleonBoundUserInterface diff --git a/Resources/Prototypes/Entities/Clothing/Eyes/glasses.yml b/Resources/Prototypes/Entities/Clothing/Eyes/glasses.yml index 0f6c4acfcb..9e47a685f0 100644 --- a/Resources/Prototypes/Entities/Clothing/Eyes/glasses.yml +++ b/Resources/Prototypes/Entities/Clothing/Eyes/glasses.yml @@ -82,7 +82,6 @@ tags: - HamsterWearable - WhitelistChameleon - - GlassesNearsight # SimpleStation14 NearsightedTrait - type: entity parent: ClothingEyesBase @@ -156,7 +155,7 @@ protectionTime: 5 - type: entity - parent: ClothingEyesBase + parent: [ClothingEyesBase, ShowSecurityIcons] id: ClothingEyesGlassesSecurity name: security glasses description: Upgraded sunglasses that provide flash immunity and a security HUD. @@ -176,7 +175,6 @@ - type: GuideHelp guides: - Security - - type: ShowSecurityIcons - type: IdentityBlocker coverage: EYES diff --git a/Resources/Prototypes/Entities/Clothing/Eyes/hud.yml b/Resources/Prototypes/Entities/Clothing/Eyes/hud.yml index fabb7bc642..835c405e19 100644 --- a/Resources/Prototypes/Entities/Clothing/Eyes/hud.yml +++ b/Resources/Prototypes/Entities/Clothing/Eyes/hud.yml @@ -1,3 +1,13 @@ +- type: entity + id: ShowSecurityIcons + abstract: true + noSpawn: true + components: + - type: ShowJobIcons + - type: ShowMindShieldIcons + - type: ShowCriminalRecordIcons + + - type: entity parent: ClothingEyesBase id: ClothingEyesHudDiagnostic @@ -17,7 +27,7 @@ parent: ClothingEyesBase id: ClothingEyesHudMedical name: medical hud - description: A heads-up display that scans the humanoids in view and provides accurate data about their health status. + description: A heads-up display that scans the humanoids in view and provides accurate data about their health status. components: - type: Sprite sprite: Clothing/Eyes/Hud/med.rsi @@ -34,7 +44,7 @@ - HudMedical - type: entity - parent: ClothingEyesBase + parent: [ClothingEyesBase, ShowSecurityIcons] id: ClothingEyesHudSecurity name: security hud description: A heads-up display that scans the humanoids in view and provides accurate data about their ID status and security records. @@ -43,7 +53,6 @@ sprite: Clothing/Eyes/Hud/sec.rsi - type: Clothing sprite: Clothing/Eyes/Hud/sec.rsi - - type: ShowSecurityIcons - type: Tag tags: - HudSecurity @@ -138,7 +147,7 @@ - type: ShowThirstIcons - type: entity - parent: ClothingEyesBase + parent: [ClothingEyesBase, ShowSecurityIcons] id: ClothingEyesHudMedSec name: medsec hud description: An eye display that looks like a mixture of medical and security huds. @@ -150,13 +159,15 @@ - type: Construction graph: HudMedSec node: medsecHud - - type: ShowSecurityIcons - type: ShowHealthBars damageContainers: - Biological + - type: ShowHealthIcons + damageContainers: + - Biological - type: entity - parent: ClothingEyesBase + parent: [ClothingEyesBase, ShowSecurityIcons] id: ClothingEyesHudMultiversal name: multiversal hud description: Filler @@ -165,7 +176,6 @@ sprite: Clothing/Eyes/Hud/medsecengi.rsi - type: Clothing sprite: Clothing/Eyes/Hud/medsecengi.rsi - - type: ShowSecurityIcons - type: ShowHealthBars damageContainers: - Biological @@ -176,7 +186,7 @@ - type: ShowSyndicateIcons - type: entity - parent: ClothingEyesBase + parent: [ClothingEyesBase, ShowSecurityIcons] id: ClothingEyesHudOmni name: omni hud description: Filler @@ -185,7 +195,6 @@ sprite: Clothing/Eyes/Hud/omni.rsi - type: Clothing sprite: Clothing/Eyes/Hud/omni.rsi - - type: ShowSecurityIcons - type: ShowHealthBars damageContainers: - Biological @@ -198,7 +207,7 @@ - type: ShowSyndicateIcons - type: entity - parent: ClothingEyesBase + parent: [ClothingEyesBase, ShowSecurityIcons] id: ClothingEyesHudSyndicate name: syndicate visor description: The syndicate's professional head-up display, designed for better detection of humanoids and their subsequent elimination. @@ -208,14 +217,26 @@ - type: Clothing sprite: Clothing/Eyes/Hud/synd.rsi - type: ShowSyndicateIcons - - type: ShowSecurityIcons - type: entity - parent: ClothingEyesGlassesSunglasses + parent: [ClothingEyesBase, ShowSecurityIcons] + id: ClothingEyesHudSyndicateAgent + name: syndicate agent visor + description: The Syndicate Agent's professional heads-up display, designed for quick diagnosis of their team's status. + components: + - type: Sprite + sprite: Clothing/Eyes/Hud/syndagent.rsi + - type: Clothing + sprite: Clothing/Eyes/Hud/syndagent.rsi + - type: ShowSyndicateIcons + - type: ShowHealthBars + damageContainers: + - Biological + +- type: entity + parent: [ClothingEyesGlassesSunglasses, ShowSecurityIcons] id: ClothingEyesGlassesHiddenSecurity suffix: Syndicate - components: - - type: ShowSecurityIcons - type: entity parent: ClothingEyesHudMedical diff --git a/Resources/Prototypes/Entities/Clothing/Eyes/specific.yml b/Resources/Prototypes/Entities/Clothing/Eyes/specific.yml index c04f348287..fa87ed398e 100644 --- a/Resources/Prototypes/Entities/Clothing/Eyes/specific.yml +++ b/Resources/Prototypes/Entities/Clothing/Eyes/specific.yml @@ -16,6 +16,6 @@ default: ClothingEyesGlassesSunglasses - type: UserInterface interfaces: - - key: enum.ChameleonUiKey.Key + enum.ChameleonUiKey.Key: type: ChameleonBoundUserInterface diff --git a/Resources/Prototypes/Entities/Clothing/Hands/gloves.yml b/Resources/Prototypes/Entities/Clothing/Hands/gloves.yml index c1d7d9c0ee..057be93fc1 100644 --- a/Resources/Prototypes/Entities/Clothing/Hands/gloves.yml +++ b/Resources/Prototypes/Entities/Clothing/Hands/gloves.yml @@ -20,6 +20,7 @@ soundHit: collection: BoxingHit animation: WeaponArcFist + mustBeEquippedToUse: true - type: Fiber fiberMaterial: fibers-leather fiberColor: fibers-red @@ -90,6 +91,7 @@ types: Blunt: 8 bluntStaminaDamageFactor: 0.0 # so blunt doesn't deal stamina damage at all + mustBeEquippedToUse: true - type: entity parent: ClothingHandsBase @@ -239,6 +241,12 @@ name: combat gloves description: These tactical gloves are fireproof and shock resistant. components: + - type: Sprite + sprite: Clothing/Hands/Gloves/combat.rsi + - type: Clothing + sprite: Clothing/Hands/Gloves/combat.rsi + - type: GloveHeatResistance + heatResistance: 1400 - type: Insulated - type: Fiber fiberMaterial: fibers-insulative @@ -360,6 +368,7 @@ soundHit: collection: Punch animation: WeaponArcFist + mustBeEquippedToUse: true - type: Fiber fiberMaterial: fibers-leather fiberColor: fibers-blue @@ -367,12 +376,11 @@ - type: MeleeSpeech - type: ActivatableUI key: enum.MeleeSpeechUiKey.Key - closeOnHandDeselect: false - rightClickOnly: true + verbOnly: true - type: Actions - type: UserInterface interfaces: - - key: enum.MeleeSpeechUiKey.Key + enum.MeleeSpeechUiKey.Key: type: MeleeSpeechBoundUserInterface - type: StaticPrice price: 0 diff --git a/Resources/Prototypes/Entities/Clothing/Hands/specific.yml b/Resources/Prototypes/Entities/Clothing/Hands/specific.yml index 9a311d2bed..c58bbe2b69 100644 --- a/Resources/Prototypes/Entities/Clothing/Hands/specific.yml +++ b/Resources/Prototypes/Entities/Clothing/Hands/specific.yml @@ -19,9 +19,9 @@ - type: FingerprintMask - type: UserInterface interfaces: - - key: enum.ChameleonUiKey.Key + enum.ChameleonUiKey.Key: type: ChameleonBoundUserInterface - + - type: entity parent: ClothingHandsChameleon id: ClothingHandsChameleonThief diff --git a/Resources/Prototypes/Entities/Clothing/Head/base_clothinghead.yml b/Resources/Prototypes/Entities/Clothing/Head/base_clothinghead.yml index d13b284ff2..e19217686f 100644 --- a/Resources/Prototypes/Entities/Clothing/Head/base_clothinghead.yml +++ b/Resources/Prototypes/Entities/Clothing/Head/base_clothinghead.yml @@ -133,11 +133,13 @@ unequipSound: /Audio/Mecha/mechmove03.ogg - type: Tag tags: - - HidesHair - WhitelistChameleon - HelmetEVA - - HidesNose - type: IdentityBlocker + - type: HideLayerClothing + slots: + - Hair + - Snout - type: entity abstract: true @@ -161,6 +163,8 @@ lowPressureMultiplier: 1000 - type: TemperatureProtection coefficient: 0.1 + - type: FireProtection + reduction: 0.2 - type: Armor modifiers: coefficients: @@ -173,10 +177,12 @@ - type: IngestionBlocker - type: Tag tags: - - HidesHair - WhitelistChameleon - - HidesNose - type: IdentityBlocker + - type: HideLayerClothing + slots: + - Hair + - Snout - type: entity abstract: true @@ -248,6 +254,6 @@ - type: TemperatureProtection coefficient: 0.7 - type: GroupExamine - - type: Tag - tags: - - HidesHair + - type: HideLayerClothing + slots: + - Hair diff --git a/Resources/Prototypes/Entities/Clothing/Head/hardsuit-helmets.yml b/Resources/Prototypes/Entities/Clothing/Head/hardsuit-helmets.yml index 2f279e4786..59cb1b05dc 100644 --- a/Resources/Prototypes/Entities/Clothing/Head/hardsuit-helmets.yml +++ b/Resources/Prototypes/Entities/Clothing/Head/hardsuit-helmets.yml @@ -17,9 +17,9 @@ sprite: Clothing/Head/Hardsuits/basic.rsi - type: Clothing sprite: Clothing/Head/Hardsuits/basic.rsi - - type: Tag - tags: - - HidesNose + - type: HideLayerClothing + slots: + - Snout #Atmospherics Hardsuit - type: entity @@ -438,6 +438,8 @@ lowPressureMultiplier: 1000 - type: TemperatureProtection coefficient: 0.005 + - type: FireProtection + reduction: 0.2 - type: Armor modifiers: coefficients: diff --git a/Resources/Prototypes/Entities/Clothing/Head/hats.yml b/Resources/Prototypes/Entities/Clothing/Head/hats.yml index 838ac5c790..b70daeddf1 100644 --- a/Resources/Prototypes/Entities/Clothing/Head/hats.yml +++ b/Resources/Prototypes/Entities/Clothing/Head/hats.yml @@ -247,7 +247,7 @@ - 0,0,0,0 - type: UserInterface interfaces: - - key: enum.StorageUiKey.Key + enum.StorageUiKey.Key: type: StorageBoundUserInterface - type: ContainerContainer containers: @@ -384,12 +384,15 @@ sprite: Clothing/Head/Hats/plaguedoctor.rsi - type: Tag tags: - - HidesHair - WhitelistChameleon - ClothMade + - type: HideLayerClothing + slots: + - Hair + - Snout - type: entity - parent: ClothingHeadBase + parent: ClothingHeadHatWizardBase id: ClothingHeadHatRedwizard name: red wizard hat description: Strange-looking red hat-wear that most certainly belongs to a real magic user. @@ -509,7 +512,7 @@ - type: entity - parent: ClothingHeadBase + parent: ClothingHeadHatWizardBase id: ClothingHeadHatVioletwizard name: violet wizard hat description: "Strange-looking violet hat-wear that most certainly belongs to a real magic user." @@ -543,15 +546,18 @@ name: witch hat description: A witch hat. components: + - type: WizardClothes #Yes this will count - type: Sprite sprite: Clothing/Head/Hats/witch.rsi - type: Clothing sprite: Clothing/Head/Hats/witch.rsi - type: Tag tags: - - HidesHair - WhitelistChameleon - ClothMade + - type: HideLayerClothing + slots: + - Hair - type: entity parent: ClothingHeadBase @@ -565,7 +571,14 @@ sprite: Clothing/Head/Hats/wizard_fake.rsi - type: entity + abstract: true parent: ClothingHeadBase + id: ClothingHeadHatWizardBase + components: + - type: WizardClothes + +- type: entity + parent: ClothingHeadHatWizardBase id: ClothingHeadHatWizard name: wizard hat description: Strange-looking blue hat-wear that most certainly belongs to a powerful magic user. @@ -846,8 +859,8 @@ - 0,0,0,0 - type: UserInterface interfaces: - - key: enum.StorageUiKey.Key - type: StorageBoundUserInterface + enum.StorageUiKey.Key: + type: StorageBoundUserInterface - type: ContainerContainer containers: storagebase: !type:Container diff --git a/Resources/Prototypes/Entities/Clothing/Head/helmets.yml b/Resources/Prototypes/Entities/Clothing/Head/helmets.yml index dfe1273239..fdb909a8cc 100644 --- a/Resources/Prototypes/Entities/Clothing/Head/helmets.yml +++ b/Resources/Prototypes/Entities/Clothing/Head/helmets.yml @@ -110,6 +110,10 @@ Blunt: 0.95 Slash: 0.95 Piercing: 0.95 + - type: HideLayerClothing + slots: + - Hair + - Snout #Janitorial Bombsuit Helmet - type: entity @@ -157,10 +161,13 @@ sprite: Clothing/Head/Helmets/spaceninja.rsi - type: Tag tags: - - HidesHair - WhitelistChameleon - type: IngestionBlocker - type: IdentityBlocker + - type: HideLayerClothing + slots: + - Hair + - Snout #Templar Helmet - type: entity @@ -217,11 +224,16 @@ - type: IngestionBlocker - type: TemperatureProtection coefficient: 0.005 + - type: FireProtection + reduction: 0.15 # not fully sealed so less protection - type: IdentityBlocker - type: Tag tags: - - HidesHair - WhitelistChameleon + - type: HideLayerClothing + slots: + - Hair + - Snout #Atmos Fire Helmet - type: entity @@ -238,14 +250,19 @@ - type: IngestionBlocker - type: TemperatureProtection coefficient: 0.005 + - type: FireProtection + reduction: 0.2 - type: PressureProtection highPressureMultiplier: 0.25 lowPressureMultiplier: 1000 - type: IdentityBlocker - type: Tag tags: - - HidesHair - WhitelistChameleon + - type: HideLayerClothing + slots: + - Hair + - Snout #Chitinous Helmet - type: entity diff --git a/Resources/Prototypes/Entities/Clothing/Head/hoods.yml b/Resources/Prototypes/Entities/Clothing/Head/hoods.yml index 5d4bf93da0..6b955970fc 100644 --- a/Resources/Prototypes/Entities/Clothing/Head/hoods.yml +++ b/Resources/Prototypes/Entities/Clothing/Head/hoods.yml @@ -13,8 +13,11 @@ - type: IngestionBlocker - type: Tag tags: - - HidesHair - WhitelistChameleon + - type: HideLayerClothing + slots: + - Hair + - Snout - type: entity parent: ClothingHeadHatHoodBioGeneral @@ -94,9 +97,11 @@ sprite: Clothing/Head/Hoods/chaplain.rsi - type: Tag tags: - - HidesHair - HamsterWearable - WhitelistChameleon + - type: HideLayerClothing + slots: + - Hair - type: entity parent: ClothingHeadBase @@ -110,8 +115,10 @@ sprite: Clothing/Head/Hoods/cult.rsi - type: Tag tags: - - HidesHair - WhitelistChameleon + - type: HideLayerClothing + slots: + - Hair - type: entity parent: ClothingHeadBase @@ -125,9 +132,11 @@ sprite: Clothing/Head/Hoods/nun.rsi - type: Tag tags: - - HidesHair - HamsterWearable - WhitelistChameleon + - type: HideLayerClothing + slots: + - Hair - type: entity parent: ClothingHeadBase @@ -145,9 +154,10 @@ Heat: 0.95 Radiation: 0.65 - type: BreathMask - - type: Tag - tags: - - HidesHair + - type: HideLayerClothing + slots: + - Hair + - Snout - type: entity parent: ClothingHeadBase @@ -161,8 +171,10 @@ sprite: Clothing/Head/Hoods/goliathcloak.rsi - type: Tag tags: - - HidesHair - WhitelistChameleon + - type: HideLayerClothing + slots: + - Hair - type: entity parent: ClothingHeadBase @@ -175,9 +187,9 @@ sprite: Clothing/Head/Hoods/iansuit.rsi - type: Clothing sprite: Clothing/Head/Hoods/iansuit.rsi - - type: Tag - tags: - - HidesHair + - type: HideLayerClothing + slots: + - Hair - type: entity parent: ClothingHeadBase @@ -190,9 +202,9 @@ sprite: Clothing/Head/Hoods/carpsuit.rsi - type: Clothing sprite: Clothing/Head/Hoods/carpsuit.rsi - - type: Tag - tags: - - HidesHair + - type: HideLayerClothing + slots: + - Hair - type: entity parent: ClothingHeadBase @@ -207,8 +219,11 @@ - type: IdentityBlocker - type: Tag tags: - - HidesHair - WhitelistChameleon + - type: HideLayerClothing + slots: + - Hair + - Snout #Winter Coat Hoods - type: entity diff --git a/Resources/Prototypes/Entities/Clothing/Head/specific.yml b/Resources/Prototypes/Entities/Clothing/Head/specific.yml index 1dd36bff94..636f922d85 100644 --- a/Resources/Prototypes/Entities/Clothing/Head/specific.yml +++ b/Resources/Prototypes/Entities/Clothing/Head/specific.yml @@ -16,5 +16,5 @@ default: ClothingHeadHatBeret - type: UserInterface interfaces: - - key: enum.ChameleonUiKey.Key + enum.ChameleonUiKey.Key: type: ChameleonBoundUserInterface diff --git a/Resources/Prototypes/Entities/Clothing/Head/welding.yml b/Resources/Prototypes/Entities/Clothing/Head/welding.yml index 93d9b1e084..c0ae440a56 100644 --- a/Resources/Prototypes/Entities/Clothing/Head/welding.yml +++ b/Resources/Prototypes/Entities/Clothing/Head/welding.yml @@ -19,6 +19,10 @@ - type: Tag tags: - WhitelistChameleon + - WeldingMask + - type: HideLayerClothing + slots: + - Snout - type: entity parent: WeldingMaskBase @@ -34,6 +38,7 @@ tags: - HamsterWearable - WhitelistChameleon + - WeldingMask - type: entity parent: WeldingMaskBase diff --git a/Resources/Prototypes/Entities/Clothing/Masks/bandanas.yml b/Resources/Prototypes/Entities/Clothing/Masks/bandanas.yml index 246b47b800..f5ad2fb6c8 100644 --- a/Resources/Prototypes/Entities/Clothing/Masks/bandanas.yml +++ b/Resources/Prototypes/Entities/Clothing/Masks/bandanas.yml @@ -25,7 +25,10 @@ - type: Tag tags: - Bandana - - HidesNose + - type: HideLayerClothing + slots: + - Snout + hideOnToggle: true - type: entity parent: ClothingMaskBandanaBase diff --git a/Resources/Prototypes/Entities/Clothing/Masks/masks.yml b/Resources/Prototypes/Entities/Clothing/Masks/masks.yml index 65b7233158..0771784534 100644 --- a/Resources/Prototypes/Entities/Clothing/Masks/masks.yml +++ b/Resources/Prototypes/Entities/Clothing/Masks/masks.yml @@ -15,7 +15,10 @@ tags: - HamsterWearable - WhitelistChameleon - - HidesNose + - type: HideLayerClothing + slots: + - Snout + hideOnToggle: true - type: entity parent: ClothingMaskGas @@ -197,8 +200,10 @@ tags: - ClownMask - WhitelistChameleon - - HidesNose - - IPCMaskWearable # Estacao Pirata - IPCs + - IPCMaskWearable + - type: HideLayerClothing + slots: + - Snout - type: entity parent: ClothingMaskClownBase @@ -209,7 +214,9 @@ - ClownMask - HamsterWearable - WhitelistChameleon - - HidesNose + - type: HideLayerClothing + slots: + - Snout - type: entity parent: ClothingMaskClown @@ -238,8 +245,10 @@ - type: IdentityBlocker - type: Tag tags: - - HidesNose - - IPCMaskWearable # Estacao Pirata - IPCs + - IPCMaskWearable + - type: HideLayerClothing + slots: + - Snout - type: entity parent: ClothingMaskBase @@ -257,8 +266,10 @@ tags: - HamsterWearable - WhitelistChameleon - - HidesNose - - IPCMaskWearable # Estacao Pirata - IPCs + - IPCMaskWearable + - type: HideLayerClothing + slots: + - Snout - type: entity parent: ClothingMaskPullableBase @@ -272,9 +283,12 @@ sprite: Clothing/Mask/sterile.rsi - type: IngestionBlocker - type: Item - storedRotation: -90 + size: Tiny - type: IdentityBlocker coverage: MOUTH + - type: PhysicalComposition + materialComposition: + Plastic: 25 - type: entity parent: ClothingMaskBase @@ -309,9 +323,10 @@ - type: BreathMask - type: IngestionBlocker - type: IdentityBlocker - - type: Tag - tags: - - HidesNose + - type: HideLayerClothing + slots: + - Snout + hideOnToggle: true - type: entity parent: ClothingMaskClownBase @@ -341,8 +356,11 @@ - type: Tag tags: - WhitelistChameleon - - HidesHair - - HidesNose + - type: HideLayerClothing + slots: + - Hair + - Snout + hideOnToggle: true - type: entity parent: ClothingMaskGasExplorer @@ -368,8 +386,11 @@ - type: Tag tags: - WhitelistChameleon - - HidesHair - - HidesNose + - type: HideLayerClothing + slots: + - Hair + - Snout + hideOnToggle: true - type: entity parent: ClothingMaskGasERT @@ -405,7 +426,9 @@ - IPCMaskWearable # Estacao Pirata - IPCs - HamsterWearable - WhitelistChameleon - - HidesNose + - type: HideLayerClothing + slots: + - Snout - type: IdentityBlocker - type: entity @@ -422,8 +445,10 @@ - type: IdentityBlocker - type: Tag tags: - - HidesNose - - IPCMaskWearable # Estacao Pirata - IPCs + - IPCMaskWearable + - type: HideLayerClothing + slots: + - Snout - type: entity parent: ClothingMaskBase @@ -439,8 +464,10 @@ - type: IdentityBlocker - type: Tag tags: - - HidesNose - - IPCMaskWearable # Estacao Pirata - IPCs + - IPCMaskWearable + - type: HideLayerClothing + slots: + - Snout - type: entity parent: ClothingMaskBase @@ -456,8 +483,10 @@ - type: IdentityBlocker - type: Tag tags: - - HidesNose - - IPCMaskWearable # Estacao Pirata - IPCs + - IPCMaskWearable + - type: HideLayerClothing + slots: + - Snout - type: entity parent: ClothingMaskBase @@ -473,8 +502,10 @@ - type: IdentityBlocker - type: Tag tags: - - HidesNose - - IPCMaskWearable # Estacao Pirata - IPCs + - IPCMaskWearable + - type: HideLayerClothing + slots: + - Snout - type: entity parent: ClothingMaskBase @@ -490,8 +521,10 @@ - type: IdentityBlocker - type: Tag tags: - - HidesNose - - IPCMaskWearable # Estacao Pirata - IPCs + - IPCMaskWearable + - type: HideLayerClothing + slots: + - Snout - type: entity parent: ClothingMaskBase @@ -507,8 +540,10 @@ - type: IdentityBlocker - type: Tag tags: - - HidesNose - - IPCMaskWearable # Estacao Pirata - IPCs + - IPCMaskWearable + - type: HideLayerClothing + slots: + - Snout - type: entity parent: ClothingMaskBase diff --git a/Resources/Prototypes/Entities/Clothing/Masks/specific.yml b/Resources/Prototypes/Entities/Clothing/Masks/specific.yml index 3b71eb5603..4dd9a829ee 100644 --- a/Resources/Prototypes/Entities/Clothing/Masks/specific.yml +++ b/Resources/Prototypes/Entities/Clothing/Masks/specific.yml @@ -6,8 +6,7 @@ suffix: Chameleon components: - type: Tag - tags: # ignore "WhitelistChameleon" tag - - HidesNose + tags: [] # ignore "WhitelistChameleon" tag - type: Sprite sprite: Clothing/Mask/gas.rsi - type: Clothing @@ -19,8 +18,11 @@ - type: IdentityBlocker # need that for default ClothingMaskGas - type: UserInterface interfaces: - - key: enum.ChameleonUiKey.Key + enum.ChameleonUiKey.Key: type: ChameleonBoundUserInterface + - type: HideLayerClothing + slots: + - Snout - type: entity parent: ClothingMaskGasChameleon @@ -28,7 +30,38 @@ suffix: Voice Mask, Chameleon components: - type: VoiceMasker - default: ClothingMaskGas - type: Tag tags: - - IPCMaskWearable # Estacao Pirata - IPCs + - IPCMaskWearable + - type: HideLayerClothing + slots: + - Snout + +- type: entity + parent: ClothingMaskBase + id: ClothingMaskWeldingGas + name: welding gas mask + description: A gas mask with built in welding goggles and face shield. Looks like a skull, clearly designed by a nerd. + components: + - type: Sprite + sprite: Clothing/Mask/welding-gas.rsi + state: icon + - type: Clothing + sprite: Clothing/Mask/welding-gas.rsi + - type: BreathMask + - type: IngestionBlocker + - type: IdentityBlocker + - type: FlashImmunity + - type: EyeProtection + - type: PhysicalComposition + materialComposition: + Steel: 200 + Glass: 100 + - type: StaticPrice + price: 100 + - type: Tag + tags: + - WhitelistChameleon + - type: HideLayerClothing + slots: + - Snout diff --git a/Resources/Prototypes/Entities/Clothing/Neck/medals.yml b/Resources/Prototypes/Entities/Clothing/Neck/medals.yml index e76a4b3ee3..e633c6c52d 100644 --- a/Resources/Prototypes/Entities/Clothing/Neck/medals.yml +++ b/Resources/Prototypes/Entities/Clothing/Neck/medals.yml @@ -1,102 +1,126 @@ -- type: entity - parent: ClothingNeckBase - id: ClothingNeckMedalBase - abstract: true - name: medal - description: not given to anyone - components: - - type: Tag - tags: - - WhitelistChameleon - -- type: entity - parent: ClothingNeckMedalBase - id: ClothingNeckBronzeheart - name: bronzeheart medal - description: Given to crewmates for exemplary bravery in the face of danger. - components: - - type: Sprite - sprite: Clothing/Neck/Medals/bronzeheart.rsi - - type: Clothing - sprite: Clothing/Neck/Medals/bronzeheart.rsi - -- type: entity - parent: ClothingNeckMedalBase - id: ClothingNeckGoldmedal - name: gold medal of crewmanship - description: Given to crewmates who display excellent crewmanship. - components: - - type: Sprite - sprite: Clothing/Neck/Medals/gold.rsi - - type: Clothing - sprite: Clothing/Neck/Medals/gold.rsi - - type: StealTarget - stealGroup: ClothingNeckGoldmedal - -- type: entity - parent: ClothingNeckMedalBase - id: ClothingNeckCargomedal - name: logistics medal # DeltaV - Logistics Department replacing Cargo - description: Whether it's for superior accountancy, courageous salvage work, or just being a friendly technician - this medal is to be assigned only for the best work in the logistics department. # DeltaV - Logistics Department replacing Cargo. Updated description for flavour - components: - - type: Sprite - sprite: DeltaV/Clothing/Neck/Medals/cargomedal.rsi # DeltaV - resprite - - type: Clothing - sprite: DeltaV/Clothing/Neck/Medals/cargomedal.rsi # DeltaV - resprite - -- type: entity - parent: ClothingNeckMedalBase - id: ClothingNeckEngineermedal - name: engineer medal - description: Whether it's by keeping the crew breathing, meticulous rewiring and upgrading, or just having plenty of materials on-hand - this medal is to be assigned only for the best work in the engineering department. # DeltaV - Updated description for flavour - components: - - type: Sprite - sprite: DeltaV/Clothing/Neck/Medals/engineermedal.rsi # DeltaV - resprite - - type: Clothing - sprite: DeltaV/Clothing/Neck/Medals/engineermedal.rsi # DeltaV - resprite - -- type: entity - parent: ClothingNeckMedalBase - id: ClothingNeckMedicalmedal - name: medical medal - description: Whether it's being the first on the scene of an accident, the most caring bedside manner, or just making sure the patients don't go mad - this medal is to be assigned only for the best work in the medical department. # DeltaV - Updated description for flavour - components: - - type: Sprite - sprite: DeltaV/Clothing/Neck/Medals/medicalmedal.rsi # DeltaV - resprite - - type: Clothing - sprite: DeltaV/Clothing/Neck/Medals/medicalmedal.rsi # DeltaV - resprite - -- type: entity - parent: ClothingNeckMedalBase - id: ClothingNeckSciencemedal - name: epistemics medal # DeltaV - Epistemics Department replacing Science - description: Whether it's pushing the edges of modern science and technology, foraying into the vast expanses of the noosphere, or just fetching the coffee - this medal is to be assigned only for the best work in the epistemics department. # DeltaV - Epistemics Department replacing Science. Updated description for flavour - components: - - type: Sprite - sprite: DeltaV/Clothing/Neck/Medals/sciencemedal.rsi # DeltaV - resprite - - type: Clothing - sprite: DeltaV/Clothing/Neck/Medals/sciencemedal.rsi # DeltaV - resprite - -- type: entity - parent: ClothingNeckMedalBase - id: ClothingNeckSecuritymedal - name: security medal - description: Whether it's catching armed terrorists, guarding the crew from alien threats, or just having a conversation in the corridor - this medal is to be assigned only for the best work in the security department. # DeltaV - Updated description for flavour - components: - - type: Sprite - sprite: DeltaV/Clothing/Neck/Medals/securitymedal.rsi # DeltaV - resprite - - type: Clothing - sprite: DeltaV/Clothing/Neck/Medals/securitymedal.rsi # DeltaV - resprite - -- type: entity - parent: ClothingNeckMedalBase - id: ClothingNeckClownmedal - name: bravado medal # DeltaV - Updated title so it's not just a joke medal. - description: Given to crewmates who laugh in the face of death, lift their peers' spirits, and uplift themselves and their friends to success. # DeltaV - Updated description for flavour and to reflect title. - components: - - type: Sprite - sprite: DeltaV/Clothing/Neck/Medals/clownmedal.rsi # DeltaV - resprite - - type: Clothing - sprite: DeltaV/Clothing/Neck/Medals/clownmedal.rsi # DeltaV - resprite - - type: StealTarget - stealGroup: ClothingNeckClownmedal +- type: entity + parent: ClothingNeckBase + id: ClothingNeckMedalBase + abstract: true + name: medal + description: not given to anyone + components: + - type: Tag + tags: + - WhitelistChameleon + +- type: entity + parent: ClothingNeckMedalBase + id: ClothingNeckBronzeheart + name: bronzeheart medal + description: Given to crewmates for exemplary bravery in the face of danger. + components: + - type: Sprite + sprite: Clothing/Neck/Medals/bronzeheart.rsi + - type: Clothing + sprite: Clothing/Neck/Medals/bronzeheart.rsi + - type: Tag + tags: + - Medal + +- type: entity + parent: ClothingNeckMedalBase + id: ClothingNeckGoldmedal + name: gold medal of crewmanship + description: Given to crewmates who display excellent crewmanship. + components: + - type: Sprite + sprite: Clothing/Neck/Medals/gold.rsi + - type: Clothing + sprite: Clothing/Neck/Medals/gold.rsi + - type: StealTarget + stealGroup: ClothingNeckGoldmedal + - type: Tag + tags: + - Medal + +- type: entity + parent: ClothingNeckMedalBase + id: ClothingNeckCargomedal + name: logistics medal # DeltaV - Logistics Department replacing Cargo + description: Whether it's for superior accountancy, courageous salvage work, or just being a friendly technician - this medal is to be assigned only for the best work in the logistics department. # DeltaV - Logistics Department replacing Cargo. Updated description for flavour + components: + - type: Sprite + sprite: DeltaV/Clothing/Neck/Medals/cargomedal.rsi # DeltaV - resprite + - type: Clothing + sprite: DeltaV/Clothing/Neck/Medals/cargomedal.rsi + - type: Tag + tags: + - Medal + +- type: entity + parent: ClothingNeckMedalBase + id: ClothingNeckEngineermedal + name: engineer medal + description: Whether it's by keeping the crew breathing, meticulous rewiring and upgrading, or just having plenty of materials on-hand - this medal is to be assigned only for the best work in the engineering department. # DeltaV - Updated description for flavour + components: + - type: Sprite + sprite: DeltaV/Clothing/Neck/Medals/engineermedal.rsi # DeltaV - resprite + - type: Clothing + sprite: DeltaV/Clothing/Neck/Medals/engineermedal.rsi + - type: Tag + tags: + - Medal + +- type: entity + parent: ClothingNeckMedalBase + id: ClothingNeckMedicalmedal + name: medical medal + description: Whether it's being the first on the scene of an accident, the most caring bedside manner, or just making sure the patients don't go mad - this medal is to be assigned only for the best work in the medical department. # DeltaV - Updated description for flavour + components: + - type: Sprite + sprite: DeltaV/Clothing/Neck/Medals/medicalmedal.rsi + - type: Clothing + sprite: DeltaV/Clothing/Neck/Medals/medicalmedal.rsi + - type: Tag + tags: + - Medal + +- type: entity + parent: ClothingNeckMedalBase + id: ClothingNeckSciencemedal + name: epistemics medal # DeltaV - Epistemics Department replacing Science + description: Whether it's pushing the edges of modern science and technology, foraying into the vast expanses of the noosphere, or just fetching the coffee - this medal is to be assigned only for the best work in the epistemics department. # DeltaV - Epistemics Department replacing Science. Updated description for flavour + components: + - type: Sprite + sprite: DeltaV/Clothing/Neck/Medals/sciencemedal.rsi + - type: Clothing + sprite: DeltaV/Clothing/Neck/Medals/sciencemedal.rsi + - type: Tag + tags: + - Medal + +- type: entity + parent: ClothingNeckMedalBase + id: ClothingNeckSecuritymedal + name: security medal + description: Whether it's catching armed terrorists, guarding the crew from alien threats, or just having a conversation in the corridor - this medal is to be assigned only for the best work in the security department. # DeltaV - Updated description for flavour + components: + - type: Sprite + sprite: DeltaV/Clothing/Neck/Medals/securitymedal.rsi + - type: Clothing + sprite: DeltaV/Clothing/Neck/Medals/securitymedal.rsi + - type: Tag + tags: + - Medal + +- type: entity + parent: ClothingNeckMedalBase + id: ClothingNeckClownmedal + name: bravado medal # DeltaV - Updated title so it's not just a joke medal. + description: Given to crewmates who laugh in the face of death, lift their peers' spirits, and uplift themselves and their friends to success. # DeltaV - Updated description for flavour and to reflect title. + components: + - type: Sprite + sprite: DeltaV/Clothing/Neck/Medals/clownmedal.rsi # DeltaV - resprite + - type: Clothing + sprite: DeltaV/Clothing/Neck/Medals/clownmedal.rsi # DeltaV - resprite + - type: StealTarget + stealGroup: ClothingNeckClownmedal + - type: Tag + tags: + - Medal diff --git a/Resources/Prototypes/Entities/Clothing/Neck/specific.yml b/Resources/Prototypes/Entities/Clothing/Neck/specific.yml index 1f50dc1ef1..56fddceaad 100644 --- a/Resources/Prototypes/Entities/Clothing/Neck/specific.yml +++ b/Resources/Prototypes/Entities/Clothing/Neck/specific.yml @@ -16,5 +16,5 @@ default: ClothingNeckScarfStripedRed - type: UserInterface interfaces: - - key: enum.ChameleonUiKey.Key + enum.ChameleonUiKey.Key: type: ChameleonBoundUserInterface diff --git a/Resources/Prototypes/Entities/Clothing/OuterClothing/armor.yml b/Resources/Prototypes/Entities/Clothing/OuterClothing/armor.yml index 58a45be5b6..2ff2757089 100644 --- a/Resources/Prototypes/Entities/Clothing/OuterClothing/armor.yml +++ b/Resources/Prototypes/Entities/Clothing/OuterClothing/armor.yml @@ -2,7 +2,7 @@ # NOTE: Half of the kind of armor you're probably thinking of is in vests.yml. These should probably be merged some day. - type: entity - parent: ClothingOuterBaseMedium + parent: [ClothingOuterBaseMedium, AllowSuitStorageClothing] id: ClothingOuterArmorBasic name: armor vest description: A standard Type I armored vest that provides decent protection against most types of damage. @@ -35,7 +35,7 @@ sprite: Clothing/OuterClothing/Armor/security_slim.rsi - type: entity - parent: ClothingOuterBaseLarge + parent: [ClothingOuterBaseLarge, AllowSuitStorageClothing] id: ClothingOuterArmorRiot name: riot suit description: A suit of semi-flexible polycarbonate body armor with heavy padding to protect against melee attacks. Perfect for fighting delinquents around the station. @@ -95,6 +95,7 @@ Heat: 0.4 # this technically means it protects against fires pretty well? -heat is just for lasers and stuff, not atmos temperature - type: Reflect reflectProb: 1 + innate: true # armor grants a passive shield that does not require concentration to maintain reflects: - Energy @@ -118,7 +119,7 @@ - type: GroupExamine - type: entity - parent: ClothingOuterBaseLarge + parent: [ClothingOuterBaseLarge, AllowSuitStorageClothing] id: ClothingOuterArmorHeavy name: heavy armor suit description: A heavily armored suit that protects against excessive damage. @@ -137,6 +138,8 @@ Radiation: 0 Caustic: 0.75 - type: GroupExamine + - type: ClothingRequiredStepTriggerImmune + slots: WITHOUT_POCKET - type: Tag tags: - FullBodyOuter @@ -187,7 +190,7 @@ sprite: Clothing/OuterClothing/Armor/magusred.rsi - type: entity - parent: ClothingOuterBaseLarge + parent: [ClothingOuterBaseLarge, AllowSuitStorageClothing] id: ClothingOuterArmorCaptainCarapace name: "captain's carapace" description: "An armored chestpiece that provides protection whilst still offering maximum mobility and flexibility. Issued only to the station's finest." @@ -237,6 +240,8 @@ - type: ExplosionResistance damageCoefficient: 0.5 - type: GroupExamine + - type: ClothingRequiredStepTriggerImmune + slots: WITHOUT_POCKET - type: Tag tags: - FullBodyOuter @@ -266,6 +271,8 @@ - type: Construction graph: BoneArmor node: armor + - type: ClothingRequiredStepTriggerImmune + slots: WITHOUT_POCKET - type: entity parent: ClothingOuterBaseLarge @@ -285,3 +292,5 @@ Piercing: 0.6 Heat: 0.5 - type: GroupExamine + - type: ClothingRequiredStepTriggerImmune + slots: WITHOUT_POCKET diff --git a/Resources/Prototypes/Entities/Clothing/OuterClothing/base_clothingouter.yml b/Resources/Prototypes/Entities/Clothing/OuterClothing/base_clothingouter.yml index 0ef368e0bd..1caabcc355 100644 --- a/Resources/Prototypes/Entities/Clothing/OuterClothing/base_clothingouter.yml +++ b/Resources/Prototypes/Entities/Clothing/OuterClothing/base_clothingouter.yml @@ -41,8 +41,8 @@ ents: [] - type: UserInterface interfaces: - - key: enum.StorageUiKey.Key - type: StorageBoundUserInterface + enum.StorageUiKey.Key: + type: StorageBoundUserInterface - type: StaticPrice price: 70 @@ -104,7 +104,7 @@ - type: entity abstract: true - parent: [ClothingOuterBase, GeigerCounterClothing] + parent: [ClothingOuterBase, GeigerCounterClothing, AllowSuitStorageClothing] id: ClothingOuterHardsuitBase name: base hardsuit components: @@ -112,7 +112,9 @@ highPressureMultiplier: 0.3 lowPressureMultiplier: 1000 - type: TemperatureProtection - coefficient: 0.001 # yes it needs to be this low, fires are fucking deadly apparently!!!! + coefficient: 0.01 + - type: FireProtection + reduction: 0.75 # almost perfectly sealed, atmos firesuit is better - type: ClothingSpeedModifier walkModifier: 0.4 sprintModifier: 0.6 @@ -147,10 +149,12 @@ localSoundOnly: true - type: StaminaDamageResistance coefficient: 0.75 # 25% + - type: ClothingRequiredStepTriggerImmune + slots: WITHOUT_POCKET - type: entity abstract: true - parent: ClothingOuterBase + parent: [ClothingOuterBase, AllowSuitStorageClothing] id: ClothingOuterEVASuitBase name: base EVA Suit components: @@ -171,6 +175,8 @@ - type: Clothing equipDelay: 1.25 # Softsuits are easier to put on and off unequipDelay: 1 + - type: ClothingRequiredStepTriggerImmune + slots: WITHOUT_POCKET - type: entity parent: ClothingOuterBase @@ -193,4 +199,4 @@ id: ClothingOuterBaseMedium components: - type: Item - size: Huge + size: Huge \ No newline at end of file diff --git a/Resources/Prototypes/Entities/Clothing/OuterClothing/coats.yml b/Resources/Prototypes/Entities/Clothing/OuterClothing/coats.yml index a312af53c5..63785becfa 100644 --- a/Resources/Prototypes/Entities/Clothing/OuterClothing/coats.yml +++ b/Resources/Prototypes/Entities/Clothing/OuterClothing/coats.yml @@ -10,7 +10,7 @@ sprite: _White/Clothing/OuterClothing/Coats/bomber.rsi #WWDP edit - type: entity - parent: ClothingOuterStorageBase + parent: [ClothingOuterStorageBase, AllowSuitStorageClothing] id: ClothingOuterCoatDetective name: detective trenchcoat description: A rugged canvas trenchcoat, designed and created by TX Fabrication Corp. Wearing it makes you feel for the plight of the Tibetans. @@ -31,6 +31,15 @@ Piercing: 0.70 Heat: 0.80 +- type: entity + parent: ClothingOuterCoatDetective + id: ClothingOuterCoatDetectiveLoadout + components: + - type: StorageFill + contents: + - id: SmokingPipeFilledTobacco + - id: FlippoLighter #Not the steal objective, only difference from normal detective trenchcoat + - type: entity parent: ClothingOuterStorageBase id: ClothingOuterCoatGentle @@ -43,7 +52,38 @@ sprite: Clothing/OuterClothing/Coats/gentlecoat.rsi - type: entity - parent: ClothingOuterStorageBase + abstract: true + parent: AllowSuitStorageClothing + id: ClothingOuterArmorHoS + components: + - type: Armor + modifiers: + coefficients: + Blunt: 0.7 + Slash: 0.7 + Piercing: 0.7 + Heat: 0.7 + Caustic: 0.75 # not the full 90% from ss13 because of the head + - type: ExplosionResistance + damageCoefficient: 0.9 + +- type: entity + abstract: true + parent: AllowSuitStorageClothing + id: ClothingOuterArmorWarden + components: + - type: Armor + modifiers: + coefficients: + Blunt: 0.7 + Slash: 0.7 + Piercing: 0.7 + Heat: 0.7 + - type: ExplosionResistance + damageCoefficient: 0.9 + +- type: entity + parent: [ClothingOuterArmorHoS, ClothingOuterStorageBase] id: ClothingOuterCoatHoSTrench name: head of security's armored trenchcoat description: A greatcoat enhanced with a special alloy for some extra protection and style for those with a commanding presence. @@ -197,7 +237,7 @@ parent: ClothingOuterStorageFoldableBase id: ClothingOuterCoatLabCmo name: chief medical officer's lab coat - description: Bluer than the standard model. + description: Custom made blue lab coat for the Chief Medical Officer, offers improved protection against chemical spills and minor cuts components: - type: Sprite sprite: _White/Clothing/OuterClothing/Coats/labcoat_cmo.rsi #WWDP edit @@ -206,7 +246,9 @@ - type: Armor modifiers: coefficients: - Caustic: 0.75 + Slash: 0.95 + Heat: 0.95 + Caustic: 0.65 - type: entity parent: [ClothingOuterStorageFoldableBaseOpened, ClothingOuterCoatLabCmo] @@ -286,7 +328,7 @@ sprite: Clothing/OuterClothing/Coats/pirate.rsi - type: entity - parent: ClothingOuterStorageBase + parent: [ClothingOuterArmorWarden, ClothingOuterStorageBase] id: ClothingOuterCoatWarden name: warden's armored jacket description: A sturdy, utilitarian jacket designed to protect a warden from any brig-bound threats. diff --git a/Resources/Prototypes/Entities/Clothing/OuterClothing/hardsuits.yml b/Resources/Prototypes/Entities/Clothing/OuterClothing/hardsuits.yml index 8a82f67bcf..c042561f21 100644 --- a/Resources/Prototypes/Entities/Clothing/OuterClothing/hardsuits.yml +++ b/Resources/Prototypes/Entities/Clothing/OuterClothing/hardsuits.yml @@ -55,17 +55,12 @@ Heat: 0.2 Radiation: 0.5 Caustic: 0.5 - - type: ClothingSpeedModifier # White Dream: Make almost all hardsuits slow a bit less - walkModifier: 0.85 - sprintModifier: 0.85 + - type: ClothingSpeedModifier + walkModifier: 0.7 + sprintModifier: 0.7 - type: HeldSpeedModifier - type: ToggleableClothing clothingPrototype: ClothingHeadHelmetHardsuitAtmos - - type: ReverseEngineering # Nyano - difficulty: 5 - newItem: ClothingOuterHardsuitJuggernautReverseEngineered - recipes: - - ClothingOuterHardsuitJuggernautReverseEngineered #Engineering Hardsuit - type: entity @@ -438,7 +433,7 @@ parent: ClothingOuterHardsuitBase id: ClothingOuterHardsuitRd name: experimental research hardsuit - description: A special suit that protects against hazardous, low pressure environments. Has an additional layer of armor. Able to be compressed to small sizes. + description: A special suit that protects against hazardous, low pressure environments. Has an additional layer of armor. components: - type: Sprite sprite: _White/Clothing/OuterClothing/Hardsuits/rd.rsi #WWDP edit @@ -540,11 +535,6 @@ - type: HeldSpeedModifier - type: ToggleableClothing clothingPrototype: ClothingHeadHelmetHardsuitSyndie - - type: ReverseEngineering # Nyano - difficulty: 5 - newItem: ClothingOuterHardsuitSyndieReverseEngineered - recipes: - - ClothingOuterHardsuitSyndieReverseEngineered - type: Tag tags: - MonkeyWearable @@ -591,6 +581,8 @@ coefficient: 0.001 - type: ExplosionResistance damageCoefficient: 0.2 + - type: FireProtection + reduction: 0.8 # perfect protection like atmos firesuit for pyro tf2 ops - type: Armor modifiers: coefficients: diff --git a/Resources/Prototypes/Entities/Clothing/OuterClothing/misc.yml b/Resources/Prototypes/Entities/Clothing/OuterClothing/misc.yml index 4b2c3c9c3f..0b5e2c112b 100644 --- a/Resources/Prototypes/Entities/Clothing/OuterClothing/misc.yml +++ b/Resources/Prototypes/Entities/Clothing/OuterClothing/misc.yml @@ -166,9 +166,16 @@ - type: Clothing sprite: Clothing/OuterClothing/Misc/santa.rsi +- type: entity + abstract: true + parent: ClothingOuterBase + id: ClothingOuterWizardBase + components: + - type: WizardClothes + # Is this wizard wearing a fanny pack??? - type: entity - parent: ClothingOuterEVASuitBase # DeltaV - Make real wizard clothes space proof + parent: ClothingOuterWizardBase id: ClothingOuterWizardViolet name: violet wizard robes description: A bizarre gem-encrusted violet robe that radiates magical energies. @@ -179,7 +186,7 @@ sprite: Clothing/OuterClothing/Misc/violetwizard.rsi - type: entity - parent: ClothingOuterEVASuitBase # DeltaV - Make real wizard clothes space proof + parent: ClothingOuterWizardBase id: ClothingOuterWizard name: wizard robes description: A bizarre gem-encrusted blue robe that radiates magical energies. @@ -190,7 +197,7 @@ sprite: Clothing/OuterClothing/Misc/wizard.rsi - type: entity - parent: ClothingOuterEVASuitBase # DeltaV - Make real wizard clothes space proof + parent: ClothingOuterWizardBase id: ClothingOuterWizardRed name: red wizard robes description: Strange-looking, red, hat-wear that most certainly belongs to a real magic user. diff --git a/Resources/Prototypes/Entities/Clothing/OuterClothing/specific.yml b/Resources/Prototypes/Entities/Clothing/OuterClothing/specific.yml index 9be8c22a0a..c3d9bb1224 100644 --- a/Resources/Prototypes/Entities/Clothing/OuterClothing/specific.yml +++ b/Resources/Prototypes/Entities/Clothing/OuterClothing/specific.yml @@ -16,5 +16,5 @@ default: ClothingOuterVest - type: UserInterface interfaces: - - key: enum.ChameleonUiKey.Key + enum.ChameleonUiKey.Key: type: ChameleonBoundUserInterface diff --git a/Resources/Prototypes/Entities/Clothing/OuterClothing/suits.yml b/Resources/Prototypes/Entities/Clothing/OuterClothing/suits.yml index 517d4d3762..57836157a8 100644 --- a/Resources/Prototypes/Entities/Clothing/OuterClothing/suits.yml +++ b/Resources/Prototypes/Entities/Clothing/OuterClothing/suits.yml @@ -27,6 +27,8 @@ - WhitelistChameleon - FullBodyOuter - HidesHarpyWings + - type: ClothingRequiredStepTriggerImmune + slots: WITHOUT_POCKET - type: entity parent: ClothingOuterSuitBomb @@ -52,7 +54,7 @@ - FullBodyOuter - type: entity - parent: ClothingOuterBaseLarge + parent: [ClothingOuterBaseLarge, AllowSuitStorageClothing] id: ClothingOuterSuitFire name: fire suit description: A suit that helps protect against hazardous temperatures. @@ -65,24 +67,28 @@ highPressureMultiplier: 0.04 - type: TemperatureProtection coefficient: 0.005 + - type: FireProtection + reduction: 0.65 # doesnt have a full seal so not as good - type: Armor modifiers: coefficients: Slash: 0.9 - Heat: 0.3 - Cold: 0.2 + Heat: 0.8 + Cold: 0.8 - type: ClothingSpeedModifier walkModifier: 0.8 sprintModifier: 0.7 - type: HeldSpeedModifier - type: GroupExamine + - type: ClothingRequiredStepTriggerImmune + slots: WITHOUT_POCKET - type: Tag tags: - WhitelistChameleon - HidesHarpyWings - type: entity - parent: ClothingOuterBaseLarge + parent: [ClothingOuterBaseLarge, AllowSuitStorageClothing] id: ClothingOuterSuitAtmosFire name: atmos fire suit description: An expensive firesuit that protects against even the most deadly of station fires. Designed to protect even if the wearer is set aflame. @@ -96,17 +102,21 @@ lowPressureMultiplier: 1000 - type: TemperatureProtection coefficient: 0.001 + - type: FireProtection + reduction: 0.8 # atmos firesuit offers best protection, hardsuits are a little vulnerable - type: Armor modifiers: coefficients: Slash: 0.9 - Heat: 0.3 - Cold: 0.2 + Heat: 0.8 + Cold: 0.8 - type: ClothingSpeedModifier walkModifier: 0.8 sprintModifier: 0.8 - type: HeldSpeedModifier - type: GroupExamine + - type: ClothingRequiredStepTriggerImmune + slots: WITHOUT_POCKET - type: Tag tags: - FullBodyOuter @@ -114,7 +124,7 @@ - HidesHarpyWings - type: entity - parent: [ClothingOuterBaseLarge, GeigerCounterClothing] + parent: [ClothingOuterBaseLarge, GeigerCounterClothing, AllowSuitStorageClothing] id: ClothingOuterSuitRad name: radiation suit description: "A suit that protects against radiation. The label reads, 'Made with lead. Please do not consume insulation.'" @@ -135,6 +145,8 @@ - type: ContainerContainer containers: toggleable-clothing: !type:ContainerSlot {} + - type: ClothingRequiredStepTriggerImmune + slots: WITHOUT_POCKET - type: Tag tags: - FullBodyOuter @@ -142,7 +154,7 @@ - HidesHarpyWings - type: entity - parent: ClothingOuterBaseLarge + parent: [ClothingOuterBaseLarge, AllowSuitStorageClothing] id: ClothingOuterSuitSpaceNinja name: space ninja suit description: This black technologically advanced, cybernetically-enhanced suit provides many abilities like invisibility or teleportation. @@ -191,6 +203,8 @@ sprite: Clothing/OuterClothing/Suits/chicken.rsi - type: Clothing sprite: Clothing/OuterClothing/Suits/chicken.rsi + - type: ClothingRequiredStepTriggerImmune + slots: WITHOUT_POCKET - type: Tag tags: - FullBodyOuter @@ -219,6 +233,8 @@ - type: ContainerContainer containers: toggleable-clothing: !type:ContainerSlot {} + - type: ClothingRequiredStepTriggerImmune + slots: WITHOUT_POCKET - type: Tag tags: - FullBodyOuter @@ -243,6 +259,8 @@ - type: Construction graph: ClothingOuterSuitIan node: suit + - type: ClothingRequiredStepTriggerImmune + slots: WITHOUT_POCKET - type: entity parent: ClothingOuterBase diff --git a/Resources/Prototypes/Entities/Clothing/OuterClothing/vests.yml b/Resources/Prototypes/Entities/Clothing/OuterClothing/vests.yml index a92ea60b6e..b3614c6333 100644 --- a/Resources/Prototypes/Entities/Clothing/OuterClothing/vests.yml +++ b/Resources/Prototypes/Entities/Clothing/OuterClothing/vests.yml @@ -1,6 +1,6 @@ #Web vest - type: entity - parent: ClothingOuterStorageBase + parent: [ClothingOuterStorageBase, AllowSuitStorageClothing] id: ClothingOuterVestWeb name: web vest description: A synthetic armor vest. This one has added webbing and ballistic plates. @@ -21,7 +21,7 @@ #Mercenary web vest - type: entity - parent: ClothingOuterStorageBase #web vest so it should have some pockets for ammo + parent: ClothingOuterVestWeb #web vest so it should have some pockets for ammo id: ClothingOuterVestWebMerc name: merc web vest description: A high-quality armored vest made from a hard synthetic material. It's surprisingly flexible and light, despite formidable armor plating. diff --git a/Resources/Prototypes/Entities/Clothing/OuterClothing/wintercoats.yml b/Resources/Prototypes/Entities/Clothing/OuterClothing/wintercoats.yml index 39da045c7e..5e03a8a1d3 100644 --- a/Resources/Prototypes/Entities/Clothing/OuterClothing/wintercoats.yml +++ b/Resources/Prototypes/Entities/Clothing/OuterClothing/wintercoats.yml @@ -231,9 +231,23 @@ clothingPrototype: ClothingHeadHatHoodWinterHOP - type: entity - parent: ClothingOuterWinterCoatToggleable + parent: [ClothingOuterArmorHoS, ClothingOuterWinterCoatToggleable] id: ClothingOuterWinterHoS + name: head of security's armored winter coat + description: A sturdy, utilitarian winter coat designed to protect a head of security from any brig-bound threats and hypothermic events. + components: + - type: Sprite + sprite: Clothing/OuterClothing/WinterCoats/coathosarmored.rsi + - type: Clothing + sprite: Clothing/OuterClothing/WinterCoats/coathosarmored.rsi + - type: ToggleableClothing + clothingPrototype: ClothingHeadHatHoodWinterHOS + +- type: entity + parent: ClothingOuterWinterCoatToggleable + id: ClothingOuterWinterHoSUnarmored name: head of security's winter coat + description: A sturdy coat, a warm coat, but not an armored coat. components: - type: Sprite sprite: Clothing/OuterClothing/WinterCoats/coathos.rsi @@ -446,22 +460,28 @@ clothingPrototype: ClothingHeadHatHoodWinterSci - type: entity - parent: ClothingOuterWinterCoatToggleable + parent: [ClothingOuterArmorWarden, ClothingOuterWinterCoatToggleable] id: ClothingOuterWinterWarden name: warden's armored winter coat description: A sturdy, utilitarian winter coat designed to protect a warden from any brig-bound threats and hypothermic events. components: + - type: Sprite + sprite: Clothing/OuterClothing/WinterCoats/coatwardenarmored.rsi + - type: Clothing + sprite: Clothing/OuterClothing/WinterCoats/coatwardenarmored.rsi + - type: ToggleableClothing + clothingPrototype: ClothingHeadHatHoodWinterWarden + +- type: entity + parent: ClothingOuterWinterCoatToggleable + id: ClothingOuterWinterWardenUnarmored + name: warden's winter coat + description: A sturdy coat, a warm coat, but not an armored coat. + components: - type: Sprite sprite: Clothing/OuterClothing/WinterCoats/coatwarden.rsi - type: Clothing sprite: Clothing/OuterClothing/WinterCoats/coatwarden.rsi - - type: Armor - modifiers: - coefficients: - Blunt: 0.70 - Slash: 0.70 - Piercing: 0.8 #slightly less bulletproof then warden's normal coat - Heat: 0.70 - type: ToggleableClothing clothingPrototype: ClothingHeadHatHoodWinterWarden diff --git a/Resources/Prototypes/Entities/Clothing/Shoes/base_clothingshoes.yml b/Resources/Prototypes/Entities/Clothing/Shoes/base_clothingshoes.yml index 1119d5cda7..4e7c966a0d 100644 --- a/Resources/Prototypes/Entities/Clothing/Shoes/base_clothingshoes.yml +++ b/Resources/Prototypes/Entities/Clothing/Shoes/base_clothingshoes.yml @@ -23,6 +23,7 @@ tags: - ClothMade - WhitelistChameleon + - type: ClothingRequiredStepTriggerImmune - type: entity abstract: true @@ -58,4 +59,4 @@ description: Fluffy boots to help survive even the coldest of winters. components: - type: TemperatureProtection - coefficient: 0.2 + coefficient: 0.8 diff --git a/Resources/Prototypes/Entities/Clothing/Shoes/magboots.yml b/Resources/Prototypes/Entities/Clothing/Shoes/magboots.yml index 9cab7c3394..945ede7e54 100644 --- a/Resources/Prototypes/Entities/Clothing/Shoes/magboots.yml +++ b/Resources/Prototypes/Entities/Clothing/Shoes/magboots.yml @@ -28,6 +28,10 @@ - type: Tag tags: - WhitelistChameleon + - type: ReverseEngineering + difficulty: 2 + recipes: + - ClothingShoesBootsMag - type: entity parent: ClothingShoesBootsMag @@ -110,7 +114,7 @@ key: enum.SharedGasTankUiKey.Key - type: UserInterface interfaces: - - key: enum.SharedGasTankUiKey.Key + enum.SharedGasTankUiKey.Key: type: GasTankBoundUserInterface - type: Explosive explosionType: Default diff --git a/Resources/Prototypes/Entities/Clothing/Shoes/misc.yml b/Resources/Prototypes/Entities/Clothing/Shoes/misc.yml index d1f6e083f4..d5a695c7c0 100644 --- a/Resources/Prototypes/Entities/Clothing/Shoes/misc.yml +++ b/Resources/Prototypes/Entities/Clothing/Shoes/misc.yml @@ -47,6 +47,8 @@ collection: FootstepDuck params: variation: 0.07 + - type: WaddleWhenWorn + tumbleIntensity: 10 # smaller than clown shoes - type: Construction graph: ClothingShoeSlippersDuck node: shoes diff --git a/Resources/Prototypes/Entities/Clothing/Shoes/specific.yml b/Resources/Prototypes/Entities/Clothing/Shoes/specific.yml index ba862567cf..38a40f551b 100644 --- a/Resources/Prototypes/Entities/Clothing/Shoes/specific.yml +++ b/Resources/Prototypes/Entities/Clothing/Shoes/specific.yml @@ -185,7 +185,7 @@ default: ClothingShoesColorBlack - type: UserInterface interfaces: - - key: enum.ChameleonUiKey.Key + enum.ChameleonUiKey.Key: type: ChameleonBoundUserInterface - type: entity diff --git a/Resources/Prototypes/Entities/Clothing/Uniforms/jumpskirts.yml b/Resources/Prototypes/Entities/Clothing/Uniforms/jumpskirts.yml index e5f19a8a49..64a88054dd 100644 --- a/Resources/Prototypes/Entities/Clothing/Uniforms/jumpskirts.yml +++ b/Resources/Prototypes/Entities/Clothing/Uniforms/jumpskirts.yml @@ -48,7 +48,7 @@ parent: ClothingUniformSkirtBase id: ClothingUniformJumpskirtChiefEngineer name: chief engineer's jumpskirt - description: It's a high visibility jumpskirt given to those engineers insane enough to achieve the rank of Chief Engineer. It has minor radiation shielding. + description: It's a high visibility jumpskirt given to those engineers insane enough to achieve the rank of Chief Engineer. components: - type: Sprite sprite: _White/Clothing/Uniforms/Jumpskirt/ce.rsi #WWDP edit @@ -180,7 +180,7 @@ parent: ClothingUniformSkirtBase id: ClothingUniformJumpskirtHoS name: head of security's jumpskirt - description: A standard Station Security uniform, adorned with gold emblems and commander's epaulettes. # DeltaV - improved description + description: A standard Station Security uniform, adorned with gold emblems and commander's epaulettes. components: - type: Sprite sprite: _White/Clothing/Uniforms/Jumpskirt/hos.rsi #WWDP edit @@ -191,7 +191,7 @@ parent: ClothingUniformSkirtBase id: ClothingUniformJumpskirtHoSAlt name: head of security's turtleneck - description: It's a turtleneck worn by those strong and disciplined enough to achieve the position of Head of Security. Its sturdy fabric provides minor protection from slash and pierce damage. + description: It's a turtleneck worn by those strong and disciplined enough to achieve the position of Head of Security. components: - type: Sprite sprite: _White/Clothing/Uniforms/Jumpskirt/hos_alt.rsi #WWDP edit @@ -365,7 +365,7 @@ parent: ClothingUniformSkirtBase id: ClothingUniformJumpskirtScientist name: scientist jumpskirt - description: It's made of a special fiber that provides minor protection against explosives. It has markings that denote the wearer as a scientist. + description: It's made of a special fiber that increases perceived intelligence and decreases personal ethics. It has markings that denote the wearer as a scientist. components: - type: Sprite sprite: _White/Clothing/Uniforms/Jumpskirt/scientist.rsi #WWDP edit @@ -829,4 +829,13 @@ - state: equipped-INNERCLOTHING-shirt color: "#b30000" - +- type: entity + parent: ClothingUniformSkirtBase + id: ClothingUniformJumpskirtOldDress + name: old dress + description: A worn-looking dress from a very long time ago. + components: + - type: Sprite + sprite: Clothing/Uniforms/Jumpskirt/olddress.rsi + - type: Clothing + sprite: Clothing/Uniforms/Jumpskirt/olddress.rsi diff --git a/Resources/Prototypes/Entities/Clothing/Uniforms/jumpsuits.yml b/Resources/Prototypes/Entities/Clothing/Uniforms/jumpsuits.yml index 37f9c872a6..49ef1fbed5 100644 --- a/Resources/Prototypes/Entities/Clothing/Uniforms/jumpsuits.yml +++ b/Resources/Prototypes/Entities/Clothing/Uniforms/jumpsuits.yml @@ -83,7 +83,7 @@ parent: ClothingUniformBase id: ClothingUniformJumpsuitChiefEngineer name: chief engineer's jumpsuit - description: It's a high visibility jumpsuit given to those engineers insane enough to achieve the rank of Chief Engineer. It has minor radiation shielding. + description: It's a high visibility jumpsuit given to those engineers insane enough to achieve the rank of Chief Engineer. components: - type: Sprite sprite: _White/Clothing/Uniforms/Jumpsuit/ce.rsi #WWDP edit @@ -518,7 +518,7 @@ parent: ClothingUniformBase id: ClothingUniformJumpsuitScientist name: scientist jumpsuit - description: It's made of a special fiber that provides minor protection against explosives. It has markings that denote the wearer as a scientist. + description: It's made of a special fiber that increases perceived intelligence and decreases personal ethics. It has markings that denote the wearer as a scientist. components: - type: Sprite sprite: _White/Clothing/Uniforms/Jumpsuit/scientist.rsi #WWDP edit diff --git a/Resources/Prototypes/Entities/Clothing/Uniforms/specific.yml b/Resources/Prototypes/Entities/Clothing/Uniforms/specific.yml index ad02f4aa67..a2c903bac3 100644 --- a/Resources/Prototypes/Entities/Clothing/Uniforms/specific.yml +++ b/Resources/Prototypes/Entities/Clothing/Uniforms/specific.yml @@ -38,5 +38,5 @@ default: ClothingUniformJumpsuitColorBlack - type: UserInterface interfaces: - - key: enum.ChameleonUiKey.Key - type: ChameleonBoundUserInterface \ No newline at end of file + enum.ChameleonUiKey.Key: + type: ChameleonBoundUserInterface diff --git a/Resources/Prototypes/Entities/Clothing/base_clothing.yml b/Resources/Prototypes/Entities/Clothing/base_clothing.yml index 12d13f2f96..97811400a6 100644 --- a/Resources/Prototypes/Entities/Clothing/base_clothing.yml +++ b/Resources/Prototypes/Entities/Clothing/base_clothing.yml @@ -20,6 +20,12 @@ - type: Geiger attachedToSuit: true +- type: entity + abstract: true + id: AllowSuitStorageClothing + components: + - type: AllowSuitStorage + # for clothing that has a single item slot to insert and alt click out. # inheritors add a whitelisted slot named item - type: entity diff --git a/Resources/Prototypes/Entities/Debugging/tippy.yml b/Resources/Prototypes/Entities/Debugging/tippy.yml new file mode 100644 index 0000000000..292cbed0f1 --- /dev/null +++ b/Resources/Prototypes/Entities/Debugging/tippy.yml @@ -0,0 +1,30 @@ +- type: entity + id: Tippy + noSpawn: true + components: + - type: Sprite + netsync: false + noRot: false + scale: 4,4 + layers: + - sprite: Tips/tippy.rsi + state: left + map: [ "revealing" ] + - sprite: Tips/tippy.rsi + state: right + map: [ "hiding" ] + - sprite: Tips/tippy.rsi + state: down + visible: false + map: [ "speaking" ] + # footstep sounds wile waddling onto the screen. + - type: FootstepModifier + footstepSoundCollection: + collection: FootstepClown + # visuals for the speech bubble. + # only supports background image. + - type: PaperVisuals + backgroundImagePath: "/Textures/Interface/Paper/paper_background_default.svg.96dpi.png" + backgroundPatchMargin: 16.0, 16.0, 16.0, 16.0 + backgroundModulate: "#ffffcc" + fontAccentColor: "#000000" diff --git a/Resources/Prototypes/Entities/Effects/bluespace_flash.yml b/Resources/Prototypes/Entities/Effects/bluespace_flash.yml index 3421f0d9a6..a0b3f81abc 100644 --- a/Resources/Prototypes/Entities/Effects/bluespace_flash.yml +++ b/Resources/Prototypes/Entities/Effects/bluespace_flash.yml @@ -9,5 +9,33 @@ - type: TimedDespawn lifetime: 1 - type: EmitSoundOnSpawn - sound: + sound: + path: /Audio/Effects/Lightning/lightningbolt.ogg + +- type: entity + id: EffectFlashTelekineticPulse + noSpawn: true + components: + - type: PointLight + radius: 10 + energy: 3.5 + color: "#18abf5" + - type: TimedDespawn + lifetime: 1 + - type: EmitSoundOnSpawn + sound: + path: /Audio/Effects/Lightning/lightningbolt.ogg + +- type: entity + id: EffectFlashShadeskip + noSpawn: true + components: + - type: PointLight + radius: 5 + energy: 3.5 + color: "#7100bd" + - type: TimedDespawn + lifetime: 1 + - type: EmitSoundOnSpawn + sound: path: /Audio/Effects/Lightning/lightningbolt.ogg \ No newline at end of file diff --git a/Resources/Prototypes/Entities/Effects/chemistry_effects.yml b/Resources/Prototypes/Entities/Effects/chemistry_effects.yml index 29e77c5a29..469bab3278 100644 --- a/Resources/Prototypes/Entities/Effects/chemistry_effects.yml +++ b/Resources/Prototypes/Entities/Effects/chemistry_effects.yml @@ -77,7 +77,7 @@ animationState: foam-dissolve - type: Slippery - type: StepTrigger - triggerGroups: # WD EDIT + triggerGroups: types: - SlipTile # disabled until foam reagent duplication is fixed diff --git a/Resources/Prototypes/Entities/Effects/puddle.yml b/Resources/Prototypes/Entities/Effects/puddle.yml index d3156c50a3..6a29a8af45 100644 --- a/Resources/Prototypes/Entities/Effects/puddle.yml +++ b/Resources/Prototypes/Entities/Effects/puddle.yml @@ -142,8 +142,11 @@ mode: CardinalFlags - type: SolutionContainerManager solutions: - puddle: { maxVol: 1000 } + puddle: + maxVol: 1000 - type: Puddle + - type: MixableSolution + solution: puddle - type: Appearance - type: ActiveEdgeSpreader - type: EdgeSpreader diff --git a/Resources/Prototypes/Entities/Markers/Spawners/Random/Food_Drinks/drinks_glass.yml b/Resources/Prototypes/Entities/Markers/Spawners/Random/Food_Drinks/drinks_glass.yml index ff9e512432..f8fc2998d7 100644 --- a/Resources/Prototypes/Entities/Markers/Spawners/Random/Food_Drinks/drinks_glass.yml +++ b/Resources/Prototypes/Entities/Markers/Spawners/Random/Food_Drinks/drinks_glass.yml @@ -32,6 +32,7 @@ - DrinkBloodyMaryGlass - DrinkBooger - DrinkBraveBullGlass + - BudgetInsulsDrinkGlass - DrinkCarrotJuice - DrinkCoconutRum - DrinkChocolateGlass @@ -57,6 +58,7 @@ - DrinkIcedGreenTeaGlass - DrinkIcedBeerGlass - DrinkIceCreamGlass + - IrishBoolGlass - DrinkIrishCarBomb - DrinkIrishCoffeeGlass - DrinkLemonadeGlass @@ -78,6 +80,7 @@ - DrinkRewriter - DrinkRoyRogersGlass - DrinkRootBeerFloatGlass + - RubberneckGlass - DrinkRumGlass - DrinkSakeGlass - DrinkSbitenGlass @@ -91,12 +94,15 @@ - DrinkThreeMileIslandGlass - DrinkToxinsSpecialGlass - DrinkVodkaMartiniGlass + - DrinkVodkaRedBool - DrinkVodkaTonicGlass - DrinkWatermelonJuice + - DrinkWatermelonWakeup - DrinkWhiskeyColaGlass - DrinkWhiskeySodaGlass - DrinkWhiteRussianGlass - DrinkWineGlass + - XenoBasherGlass - DrinkShakeBlue - DrinkShakeWhite - DrinkTheMartinez diff --git a/Resources/Prototypes/Entities/Markers/Spawners/Random/Food_Drinks/food_produce.yml b/Resources/Prototypes/Entities/Markers/Spawners/Random/Food_Drinks/food_produce.yml index 6edf341e10..a889b939bd 100644 --- a/Resources/Prototypes/Entities/Markers/Spawners/Random/Food_Drinks/food_produce.yml +++ b/Resources/Prototypes/Entities/Markers/Spawners/Random/Food_Drinks/food_produce.yml @@ -33,8 +33,8 @@ - FoodOnion - FoodOnionRed - FoodMushroom - - FoodChili - - FoodChilly + - FoodChiliPepper + - FoodChillyPepper - FoodAloe - FoodPoppy - FoodLingzhi diff --git a/Resources/Prototypes/Entities/Markers/Spawners/Random/salvage.yml b/Resources/Prototypes/Entities/Markers/Spawners/Random/salvage.yml index 34bf32d8d7..4a611fe026 100644 --- a/Resources/Prototypes/Entities/Markers/Spawners/Random/salvage.yml +++ b/Resources/Prototypes/Entities/Markers/Spawners/Random/salvage.yml @@ -63,23 +63,78 @@ offset: 0.0 - type: entity - name: salvage loot spawner - id: SalvageLootSpawner + name: Salvage T2 Machine Parts Spawner + id: SalvagePartsT2Spawner parent: MarkerBase components: - type: Sprite layers: - state: red - - sprite: Objects/Weapons/Melee/crusher.rsi - state: icon + - sprite: Objects/Misc/stock_parts.rsi + state: advanced_matter_bin - type: RandomSpawner prototypes: - - WeaponCrusher - - WeaponCrusherDagger - - WeaponCrusherGlaive - - MiningDrill + - AdvancedCapacitorStockPart + - NanoManipulatorStockPart + - AdvancedMatterBinStockPart offset: 0.0 +- type: entity + parent: MarkerBase + id: SalvagePartsT3T4Spawner + name: tier 3/4 machine part + components: + - type: Sprite + layers: + - sprite: Objects/Misc/stock_parts.rsi + state: super_matter_bin + - type: RandomSpawner + rarePrototypes: + - BluespaceCapacitorStockPart + - BluespaceManipulatorStockPart + - BluespaceMatterBinStockPart + rareChance: 0.05 + prototypes: + - SuperCapacitorStockPart + - PicoManipulatorStockPart + - SuperMatterBinStockPart + chance: 0.95 + offset: 0.0 + +- type: entity + parent: MarkerBase + id: SalvagePartsT3Spawner + name: tier 3 machine part + suffix: Spawner + components: + - type: Sprite + layers: + - sprite: Objects/Misc/stock_parts.rsi + state: super_matter_bin + - type: RandomSpawner + prototypes: + - SuperCapacitorStockPart + - PicoManipulatorStockPart + - SuperMatterBinStockPart + offset: 0.0 + +- type: entity + parent: MarkerBase + id: SalvagePartsT4Spawner + name: tier 4 machine part + suffix: Spawner + components: + - type: Sprite + layers: + - sprite: Objects/Misc/stock_parts.rsi + state: bluespace_matter_bin + - type: RandomSpawner + prototypes: + - BluespaceCapacitorStockPart + - PicoManipulatorStockPart + - BluespaceMatterBinStockPart + offset: 0.0 + - type: entity name: Salvage Mob Spawner id: SalvageMobSpawner @@ -228,3 +283,28 @@ - MobFleshLoverSalvage chance: 1 offset: 0.2 + +- type: entity + name: Salvage Loot Spawner + id: SalvageLootSpawner + parent: MarkerBase + components: + - type: Sprite + layers: + - state: red + - sprite: Structures/Storage/Crates/generic.rsi + state: icon + - type: RandomSpawner + rarePrototypes: + - SalvagePartsT2Spawner + - SalvagePartsT3Spawner + - SalvagePartsT3T4Spawner + - SalvagePartsT4Spawner + rareChance: 0.4 + prototypes: + - CrateSalvageAssortedGoodies + - WeaponCrusher + - WeaponCrusherDagger + - WeaponCrusherGlaive + chance: 0.9 + offset: 0.2 diff --git a/Resources/Prototypes/Entities/Markers/Spawners/ghost_roles.yml b/Resources/Prototypes/Entities/Markers/Spawners/ghost_roles.yml index 0b09e0e4c9..4ade9a9fd4 100644 --- a/Resources/Prototypes/Entities/Markers/Spawners/ghost_roles.yml +++ b/Resources/Prototypes/Entities/Markers/Spawners/ghost_roles.yml @@ -8,6 +8,8 @@ name: ghost-role-information-rat-king-name description: ghost-role-information-rat-king-description rules: ghost-role-information-rat-king-rules + raffle: + settings: default - type: GhostRoleMobSpawner prototype: MobRatKing - type: Sprite @@ -27,6 +29,8 @@ name: ghost-role-information-remilia-name description: ghost-role-information-remilia-description rules: ghost-role-information-remilia-rules + raffle: + settings: short - type: GhostRoleMobSpawner prototype: MobBatRemilia - type: Sprite @@ -46,6 +50,8 @@ name: ghost-role-information-cerberus-name description: ghost-role-information-cerberus-description rules: ghost-role-information-cerberus-rules + raffle: + settings: default - type: GhostRoleMobSpawner prototype: MobCorgiCerberus - type: Sprite @@ -64,6 +70,8 @@ components: - type: GhostRole rules: ghost-role-information-nukeop-rules + raffle: + settings: default - type: GhostRoleMobSpawner prototype: MobHumanNukeOp - type: Sprite @@ -84,6 +92,8 @@ name: ghost-role-information-loneop-name description: ghost-role-information-loneop-description rules: ghost-role-information-loneop-rules + raffle: + settings: default requirements: - !type:CharacterOverallTimeRequirement min: 172800 # DeltaV - 48 hours @@ -109,6 +119,8 @@ name: ghost-role-information-space-dragon-name description: ghost-role-information-space-dragon-description rules: ghost-role-component-default-rules + raffle: + settings: default - type: GhostRoleMobSpawner prototype: MobDragon - type: Sprite @@ -127,6 +139,8 @@ name: ghost-role-information-space-ninja-name description: ghost-role-information-space-ninja-description rules: ghost-role-information-space-ninja-rules + raffle: + settings: default - type: GhostRoleMobSpawner prototype: MobHumanSpaceNinja - type: Sprite @@ -135,20 +149,3 @@ - state: green - sprite: Objects/Weapons/Melee/energykatana.rsi state: icon - -- type: entity - parent: MarkerBase - id: SpawnPointGhostTerminator - name: terminator spawn point - components: - - type: GhostRole - name: ghost-role-information-exterminator-name - description: ghost-role-information-exterminator-description - rules: ghost-role-information-exterminator-rules - - type: GhostRoleMobSpawner - prototype: MobHumanTerminator - - type: Sprite - layers: - - state: green - - sprite: Mobs/Species/Terminator/parts.rsi - state: full diff --git a/Resources/Prototypes/Entities/Markers/Spawners/mobs.yml b/Resources/Prototypes/Entities/Markers/Spawners/mobs.yml index a59c7d5951..a69c974a39 100644 --- a/Resources/Prototypes/Entities/Markers/Spawners/mobs.yml +++ b/Resources/Prototypes/Entities/Markers/Spawners/mobs.yml @@ -849,3 +849,17 @@ - type: ConditionalSpawner prototypes: - MobLuminousEntity + +- type: entity + name: clown spider spawner + id: SpawnClownSpider + parent: MarkerBase + components: + - type: Sprite + layers: + - state: green + - state: clown + sprite: Mobs/Animals/clownspider.rsi + - type: ConditionalSpawner + prototypes: + - MobClownSpider \ No newline at end of file diff --git a/Resources/Prototypes/Entities/Markers/environmental.yml b/Resources/Prototypes/Entities/Markers/environmental.yml new file mode 100644 index 0000000000..0642518356 --- /dev/null +++ b/Resources/Prototypes/Entities/Markers/environmental.yml @@ -0,0 +1,100 @@ +# Radiation +- type: entity + name: Marker Radiation + id: MarkerRadiation1 + parent: MarkerBase + suffix: intensity 1 + components: + - type: Sprite + layers: + - sprite: Markers/environment.rsi + state: base-green + shader: unshaded + - sprite: Markers/environment.rsi + shader: unshaded + state: rad + - type: RadiationSource + intensity: 1 + +- type: entity + parent: MarkerRadiation1 + id: MarkerRadiation2 + suffix: intensity 2 + components: + - type: RadiationSource + intensity: 2 + +- type: entity + parent: MarkerRadiation1 + id: MarkerRadiation3 + suffix: intensity 3 + components: + - type: RadiationSource + intensity: 3 + +- type: entity + parent: MarkerRadiation1 + id: MarkerRadiation4 + suffix: intensity 4 + components: + - type: RadiationSource + intensity: 4 + +- type: entity + parent: MarkerRadiation1 + id: MarkerRadiation5 + suffix: intensity 5 + components: + - type: RadiationSource + intensity: 5 + +- type: entity + parent: MarkerRadiation1 + id: MarkerRadiation10 + suffix: intensity 10 + components: + - type: RadiationSource + intensity: 10 + +# Invisible Walls +- type: entity + name: Marker Blocker + id: MarkerBlocker + parent: MarkerBase + suffix: invisible wall + components: + - type: Sprite + layers: + - sprite: Markers/environment.rsi + state: base-blue + shader: unshaded + - sprite: Markers/environment.rsi + shader: unshaded + state: wall + - type: PlacementReplacement + key: blocker + - type: Fixtures + fixtures: + fix1: + shape: + !type:PhysShapeAabb + bounds: "-0.5,-0.5,0.5,0.5" + mask: + - FullTileMask + layer: + - WallLayer + density: 1000 + - type: Physics + bodyType: Static + + +# Weather Blocker +- type: entity + name: Marker Weather Blocker + id: MarkerWeatherblocker + parent: MarkerBase + components: + - type: Sprite + sprite: Markers/environment.rsi + state: weather + - type: BlockWeather diff --git a/Resources/Prototypes/Entities/Mobs/Customization/Markings/human_hair.yml b/Resources/Prototypes/Entities/Mobs/Customization/Markings/human_hair.yml index 449f8aa2cd..aa983583c5 100644 --- a/Resources/Prototypes/Entities/Mobs/Customization/Markings/human_hair.yml +++ b/Resources/Prototypes/Entities/Mobs/Customization/Markings/human_hair.yml @@ -1160,6 +1160,13 @@ sprites: - sprite: Mobs/Customization/human_hair.rsi state: spiky2 +- type: marking + id: HumanHairSpookyLong + bodyPart: Hair + markingCategory: Hair + sprites: + - sprite: Mobs/Customization/human_hair.rsi + state: spookylong - type: marking id: HumanHairSwept bodyPart: Hair diff --git a/Resources/Prototypes/Entities/Mobs/Customization/Markings/kemonomimi_ears.yml b/Resources/Prototypes/Entities/Mobs/Customization/Markings/kemonomimi_ears.yml new file mode 100644 index 0000000000..66b4b5242c --- /dev/null +++ b/Resources/Prototypes/Entities/Mobs/Customization/Markings/kemonomimi_ears.yml @@ -0,0 +1,77 @@ +- type: marking + id: BullishHorns + bodyPart: HeadTop + markingCategory: HeadTop + speciesRestriction: [Human] + coloring: + default: + type: + !type:CategoryColoring + category: Hair + fallbackTypes: + - !type:SkinColoring + sprites: + - sprite: Mobs/Customization/kemonomimi-ears.rsi + state: bullishhorns + +- type: marking + id: BunnyEars + bodyPart: HeadTop + markingCategory: HeadTop + speciesRestriction: [Human] + coloring: + default: + type: + !type:CategoryColoring + category: Hair + fallbackTypes: + - !type:SkinColoring + layers: + bunnyearstone2: + type: + !type:SimpleColoring + color: "#FFFFFF" + sprites: + - sprite: Mobs/Customization/kemonomimi-ears.rsi + state: bunnyearstone1 + - sprite: Mobs/Customization/kemonomimi-ears.rsi + state: bunnyearstone2 + +- type: marking + id: FoxEars + bodyPart: HeadTop + markingCategory: HeadTop + speciesRestriction: [Human] + coloring: + default: + type: + !type:CategoryColoring + category: Hair + fallbackTypes: + - !type:SkinColoring + sprites: + - sprite: Mobs/Customization/kemonomimi-ears.rsi + state: foxears + +- type: marking + id: GoatHorns + bodyPart: HeadTop + markingCategory: HeadTop + speciesRestriction: [Human] + coloring: + default: + type: + !type:CategoryColoring + category: Hair + fallbackTypes: + - !type:SkinColoring + layers: + goathornstone22: + type: + !type:SimpleColoring + color: "#FFFFFF" + sprites: + - sprite: Mobs/Customization/kemonomimi-ears.rsi + state: goathornstone1 + - sprite: Mobs/Customization/kemonomimi-ears.rsi + state: goathornstone2 \ No newline at end of file diff --git a/Resources/Prototypes/Entities/Mobs/Customization/Markings/kemonomimi_tails.yml b/Resources/Prototypes/Entities/Mobs/Customization/Markings/kemonomimi_tails.yml new file mode 100644 index 0000000000..d45d366ec0 --- /dev/null +++ b/Resources/Prototypes/Entities/Mobs/Customization/Markings/kemonomimi_tails.yml @@ -0,0 +1,169 @@ +- type: marking + id: BunnyTail + bodyPart: Tail + markingCategory: Tail + speciesRestriction: [Human] + coloring: + default: + type: + !type:CategoryColoring + category: Hair + fallbackTypes: + - !type:CategoryColoring + category: FacialHair + - !type:SkinColoring + sprites: + - sprite: Mobs/Customization/kemonomimi-tails.rsi + state: bunnytail + +- type: marking + id: DobleFur + bodyPart: Tail + markingCategory: Tail + speciesRestriction: [Human] + coloring: + default: + type: + !type:CategoryColoring + category: Hair + fallbackTypes: + - !type:CategoryColoring + category: FacialHair + - !type:SkinColoring + sprites: + - sprite: Mobs/Customization/kemonomimi-tails.rsi + state: doblefurtailtone1 + - sprite: Mobs/Customization/kemonomimi-tails.rsi + state: doblefurtailtone2 + +- type: marking + id: FluffyTail + bodyPart: Tail + markingCategory: Tail + speciesRestriction: [Human] + coloring: + default: + type: + !type:CategoryColoring + category: Hair + fallbackTypes: + - !type:CategoryColoring + category: FacialHair + - !type:SkinColoring + sprites: + - sprite: Mobs/Customization/kemonomimi-tails.rsi + state: fluffytail + +- type: marking + id: FoxNineTails + bodyPart: Tail + markingCategory: Tail + speciesRestriction: [Human] + coloring: + default: + type: + !type:CategoryColoring + category: Hair + fallbackTypes: + - !type:CategoryColoring + category: FacialHair + - !type:SkinColoring + sprites: + - sprite: Mobs/Customization/kemonomimi-tails.rsi + state: foxninetailstone1 + - sprite: Mobs/Customization/kemonomimi-tails.rsi + state: foxninetailstone2 + +- type: marking + id: FoxThreeTails + bodyPart: Tail + markingCategory: Tail + speciesRestriction: [Human] + coloring: + default: + type: + !type:CategoryColoring + category: Hair + fallbackTypes: + - !type:CategoryColoring + category: FacialHair + - !type:SkinColoring + sprites: + - sprite: Mobs/Customization/kemonomimi-tails.rsi + state: foxthreetailstone1 + - sprite: Mobs/Customization/kemonomimi-tails.rsi + state: foxthreetailstone2 + +- type: marking + id: HorseTailCulty + bodyPart: Tail + markingCategory: Tail + speciesRestriction: [Human] + coloring: + default: + type: + !type:CategoryColoring + category: Hair + fallbackTypes: + - !type:CategoryColoring + category: FacialHair + - !type:SkinColoring + sprites: + - sprite: Mobs/Customization/kemonomimi-tails.rsi + state: horsetailculty + +- type: marking + id: HorseTailLong + bodyPart: Tail + markingCategory: Tail + speciesRestriction: [Human] + coloring: + default: + type: + !type:CategoryColoring + category: Hair + fallbackTypes: + - !type:CategoryColoring + category: FacialHair + - !type:SkinColoring + sprites: + - sprite: Mobs/Customization/kemonomimi-tails.rsi + state: horsetaillong + +- type: marking + id: SharkTail + bodyPart: Tail + markingCategory: Tail + speciesRestriction: [Human] + coloring: + default: + type: + !type:CategoryColoring + category: Hair + fallbackTypes: + - !type:CategoryColoring + category: FacialHair + - !type:SkinColoring + sprites: + - sprite: Mobs/Customization/kemonomimi-tails.rsi + state: sharktail + +- type: marking + id: TasselTail + bodyPart: Tail + markingCategory: Tail + speciesRestriction: [Human] + coloring: + default: + type: + !type:CategoryColoring + category: Hair + fallbackTypes: + - !type:CategoryColoring + category: FacialHair + - !type:SkinColoring + sprites: + - sprite: Mobs/Customization/kemonomimi-tails.rsi + state: tasseltailtone1 + - sprite: Mobs/Customization/kemonomimi-tails.rsi + state: tasseltailtone2 \ No newline at end of file diff --git a/Resources/Prototypes/Entities/Mobs/Customization/Markings/reptilian.yml b/Resources/Prototypes/Entities/Mobs/Customization/Markings/reptilian.yml index f5749121e2..cad3e77962 100644 --- a/Resources/Prototypes/Entities/Mobs/Customization/Markings/reptilian.yml +++ b/Resources/Prototypes/Entities/Mobs/Customization/Markings/reptilian.yml @@ -2,7 +2,7 @@ id: LizardFrillsAquatic bodyPart: HeadSide markingCategory: HeadSide - speciesRestriction: [Reptilian] + speciesRestriction: [Reptilian, Human] sprites: - sprite: Mobs/Customization/reptilian_parts.rsi state: frills_aquatic @@ -11,7 +11,7 @@ id: LizardFrillsShort bodyPart: HeadSide markingCategory: HeadSide - speciesRestriction: [Reptilian] + speciesRestriction: [Reptilian, Human] sprites: - sprite: Mobs/Customization/reptilian_parts.rsi state: frills_short @@ -20,7 +20,7 @@ id: LizardFrillsSimple bodyPart: HeadSide markingCategory: HeadSide - speciesRestriction: [Reptilian] + speciesRestriction: [Reptilian, Human] sprites: - sprite: Mobs/Customization/reptilian_parts.rsi state: frills_simple @@ -29,7 +29,7 @@ id: LizardFrillsDivinity bodyPart: HeadSide markingCategory: HeadSide - speciesRestriction: [Reptilian] + speciesRestriction: [Reptilian, Human] sprites: - sprite: Mobs/Customization/reptilian_parts.rsi state: frills_divinity @@ -38,7 +38,7 @@ id: LizardFrillsBig bodyPart: HeadSide markingCategory: HeadSide - speciesRestriction: [Reptilian] + speciesRestriction: [Reptilian, Human] sprites: - sprite: Mobs/Customization/reptilian_parts.rsi state: frills_big @@ -47,7 +47,7 @@ id: LizardFrillsAxolotl bodyPart: HeadSide markingCategory: HeadSide - speciesRestriction: [Reptilian] + speciesRestriction: [Reptilian, Human] sprites: - sprite: Mobs/Customization/reptilian_parts.rsi state: frills_axolotl @@ -56,18 +56,27 @@ id: LizardFrillsHood bodyPart: HeadSide markingCategory: HeadSide - speciesRestriction: [Reptilian] + speciesRestriction: [Reptilian, Human] sprites: - sprite: Mobs/Customization/reptilian_parts.rsi state: frills_hood_primary - sprite: Mobs/Customization/reptilian_parts.rsi state: frills_hood_secondary +- type: marking + id: LizardFrillsNeckfull + bodyPart: HeadSide + markingCategory: HeadSide + speciesRestriction: [Reptilian] + sprites: + - sprite: Mobs/Customization/reptilian_parts.rsi + state: frills_neckfull + - type: marking id: LizardHornsAngler bodyPart: HeadTop markingCategory: HeadTop - speciesRestriction: [Reptilian] + speciesRestriction: [Reptilian, Human] sprites: - sprite: Mobs/Customization/reptilian_parts.rsi state: horns_angler @@ -76,7 +85,7 @@ id: LizardHornsCurled bodyPart: HeadTop markingCategory: HeadTop - speciesRestriction: [Reptilian] + speciesRestriction: [Reptilian, Human] sprites: - sprite: Mobs/Customization/reptilian_parts.rsi state: horns_curled @@ -85,7 +94,7 @@ id: LizardHornsRam bodyPart: HeadTop markingCategory: HeadTop - speciesRestriction: [Reptilian] + speciesRestriction: [Reptilian, Human] sprites: - sprite: Mobs/Customization/reptilian_parts.rsi state: horns_ram @@ -94,7 +103,7 @@ id: LizardHornsShort bodyPart: HeadTop markingCategory: HeadTop - speciesRestriction: [Reptilian] + speciesRestriction: [Reptilian, Human] sprites: - sprite: Mobs/Customization/reptilian_parts.rsi state: horns_short @@ -103,7 +112,7 @@ id: LizardHornsSimple bodyPart: HeadTop markingCategory: HeadTop - speciesRestriction: [Reptilian] + speciesRestriction: [Reptilian, Human] sprites: - sprite: Mobs/Customization/reptilian_parts.rsi state: horns_simple @@ -112,7 +121,7 @@ id: LizardHornsDouble bodyPart: HeadTop markingCategory: HeadTop - speciesRestriction: [Reptilian] + speciesRestriction: [Reptilian, Human] sprites: - sprite: Mobs/Customization/reptilian_parts.rsi state: horns_double @@ -121,7 +130,7 @@ id: LizardTailSmooth bodyPart: Tail markingCategory: Tail - speciesRestriction: [Reptilian] + speciesRestriction: [Reptilian, Human] sprites: - sprite: Mobs/Customization/reptilian_parts.rsi state: tail_smooth_primary @@ -132,7 +141,7 @@ id: LizardTailLarge bodyPart: Tail markingCategory: Tail - speciesRestriction: [Reptilian] + speciesRestriction: [Reptilian, Human] sprites: - sprite: Mobs/Customization/reptilian_parts.rsi state: tail_large @@ -141,7 +150,7 @@ id: LizardTailSpikes bodyPart: Tail markingCategory: Tail - speciesRestriction: [Reptilian] + speciesRestriction: [Reptilian, Human] sprites: - sprite: Mobs/Customization/reptilian_parts.rsi state: tail_spikes @@ -150,7 +159,7 @@ id: LizardTailLTiger bodyPart: Tail markingCategory: Tail - speciesRestriction: [Reptilian] + speciesRestriction: [Reptilian, Human] sprites: - sprite: Mobs/Customization/reptilian_parts.rsi state: tail_ltiger @@ -159,7 +168,7 @@ id: LizardTailDTiger bodyPart: Tail markingCategory: Tail - speciesRestriction: [Reptilian] + speciesRestriction: [Reptilian, Human] sprites: - sprite: Mobs/Customization/reptilian_parts.rsi state: tail_dtiger @@ -184,6 +193,17 @@ - sprite: Mobs/Customization/reptilian_parts.rsi state: snout_sharp +- type: marking + id: LizardSnoutSplotch + bodyPart: Snout + markingCategory: Snout + speciesRestriction: [Reptilian] + sprites: + - sprite: Mobs/Customization/reptilian_parts.rsi + state: snout_splotch_primary + - sprite: Mobs/Customization/reptilian_parts.rsi + state: snout_splotch_secondary + - type: marking id: LizardChestTiger bodyPart: Chest @@ -242,7 +262,7 @@ id: LizardHornsArgali bodyPart: HeadTop markingCategory: HeadTop - speciesRestriction: [Reptilian] + speciesRestriction: [Reptilian, Human] sprites: - sprite: Mobs/Customization/reptilian_parts.rsi state: horns_argali @@ -251,7 +271,7 @@ id: LizardHornsAyrshire bodyPart: HeadTop markingCategory: HeadTop - speciesRestriction: [Reptilian] + speciesRestriction: [Reptilian, Human] sprites: - sprite: Mobs/Customization/reptilian_parts.rsi state: horns_ayrshire @@ -260,7 +280,7 @@ id: LizardHornsMyrsore bodyPart: HeadTop markingCategory: HeadTop - speciesRestriction: [Reptilian] + speciesRestriction: [Reptilian, Human] sprites: - sprite: Mobs/Customization/reptilian_parts.rsi state: horns_myrsore @@ -269,7 +289,7 @@ id: LizardHornsBighorn bodyPart: HeadTop markingCategory: HeadTop - speciesRestriction: [Reptilian] + speciesRestriction: [Reptilian, Human] sprites: - sprite: Mobs/Customization/reptilian_parts.rsi state: horns_bighorn @@ -278,7 +298,7 @@ id: LizardHornsKoboldEars bodyPart: HeadTop markingCategory: HeadTop - speciesRestriction: [Reptilian] + speciesRestriction: [Reptilian, Human] sprites: - sprite: Mobs/Customization/reptilian_parts.rsi state: horns_kobold_ears @@ -287,7 +307,7 @@ id: LizardHornsFloppyKoboldEars bodyPart: HeadSide markingCategory: HeadSide - speciesRestriction: [Reptilian] + speciesRestriction: [Reptilian, Human] sprites: - sprite: Mobs/Customization/reptilian_parts.rsi state: horns_floppy_kobold_ears diff --git a/Resources/Prototypes/Entities/Mobs/Customization/Markings/vox_facial_hair.yml b/Resources/Prototypes/Entities/Mobs/Customization/Markings/vox_facial_hair.yml index d4cc4b00e3..6ec5f8999a 100644 --- a/Resources/Prototypes/Entities/Mobs/Customization/Markings/vox_facial_hair.yml +++ b/Resources/Prototypes/Entities/Mobs/Customization/Markings/vox_facial_hair.yml @@ -1,40 +1,44 @@ - type: marking - id: VoxFacialHairColonel + id: VoxFacialHairBeard bodyPart: FacialHair markingCategory: FacialHair speciesRestriction: [Vox] sprites: - sprite: Mobs/Customization/vox_facial_hair.rsi - state: vox_colonel_s + state: beard_s + - type: marking - id: VoxFacialHairFu + id: VoxFacialHairColonel bodyPart: FacialHair markingCategory: FacialHair speciesRestriction: [Vox] sprites: - sprite: Mobs/Customization/vox_facial_hair.rsi - state: vox_fu_s + state: colonel_s + - type: marking - id: VoxFacialHairNeck + id: VoxFacialHairFu bodyPart: FacialHair markingCategory: FacialHair speciesRestriction: [Vox] sprites: - sprite: Mobs/Customization/vox_facial_hair.rsi - state: vox_neck_s + state: fu_s + - type: marking - id: VoxFacialHairBeard + id: VoxFacialHairMane bodyPart: FacialHair markingCategory: FacialHair speciesRestriction: [Vox] sprites: - sprite: Mobs/Customization/vox_facial_hair.rsi - state: vox_beard_s + state: mane_s + - type: marking - id: VoxFacialHairRuffBeard + id: VoxFacialHairNeck bodyPart: FacialHair markingCategory: FacialHair speciesRestriction: [Vox] sprites: - sprite: Mobs/Customization/vox_facial_hair.rsi - state: vox_ruff_beard_s + state: neck_s diff --git a/Resources/Prototypes/Entities/Mobs/Customization/Markings/vox_hair.yml b/Resources/Prototypes/Entities/Mobs/Customization/Markings/vox_hair.yml index 975de63204..9a847b40a9 100644 --- a/Resources/Prototypes/Entities/Mobs/Customization/Markings/vox_hair.yml +++ b/Resources/Prototypes/Entities/Mobs/Customization/Markings/vox_hair.yml @@ -1,91 +1,102 @@ - type: marking - id: VoxHairShortQuills + id: VoxHairAfro bodyPart: Hair markingCategory: Hair speciesRestriction: [Vox] sprites: - sprite: Mobs/Customization/vox_hair.rsi - state: vox_shortquills_s + state: afro_s + - type: marking - id: VoxHairKingly + id: VoxHairBraids bodyPart: Hair markingCategory: Hair speciesRestriction: [Vox] sprites: - sprite: Mobs/Customization/vox_hair.rsi - state: vox_kingly_s + state: braid_s + - type: marking - id: VoxHairAfro + id: VoxHairCrestedQuills bodyPart: Hair markingCategory: Hair speciesRestriction: [Vox] sprites: - sprite: Mobs/Customization/vox_hair.rsi - state: vox_afro_s + state: crestedquills_s + - type: marking - id: VoxHairMohawk + id: VoxHairEmperorQuills bodyPart: Hair markingCategory: Hair speciesRestriction: [Vox] sprites: - sprite: Mobs/Customization/vox_hair.rsi - state: vox_mohawk_s + state: emperorquills_s + - type: marking - id: VoxHairYasuhiro + id: VoxHairFlowing bodyPart: Hair markingCategory: Hair speciesRestriction: [Vox] sprites: - sprite: Mobs/Customization/vox_hair.rsi - state: vox_yasu_s + state: flowing_s + - type: marking - id: VoxHairHorns + id: VoxHairHawk bodyPart: Hair markingCategory: Hair speciesRestriction: [Vox] sprites: - sprite: Mobs/Customization/vox_hair.rsi - state: vox_horns_s + state: hawk_s + - type: marking - id: VoxHairNights + id: VoxHairHorns bodyPart: Hair markingCategory: Hair speciesRestriction: [Vox] sprites: - sprite: Mobs/Customization/vox_hair.rsi - state: vox_nights_s + state: horns_s + - type: marking - id: VoxHairSurf + id: VoxHairKeelQuills bodyPart: Hair markingCategory: Hair speciesRestriction: [Vox] sprites: - sprite: Mobs/Customization/vox_hair.rsi - state: vox_surf_s + state: keelquills_s + - type: marking - id: VoxHairCropped + id: VoxHairKeetQuills bodyPart: Hair markingCategory: Hair speciesRestriction: [Vox] sprites: - sprite: Mobs/Customization/vox_hair.rsi - state: vox_cropped_s + state: keetquills_s + - type: marking - id: VoxHairRuffhawk + id: VoxHairKingly bodyPart: Hair markingCategory: Hair speciesRestriction: [Vox] sprites: - sprite: Mobs/Customization/vox_hair.rsi - state: vox_ruff_hawk_s + state: kingly_s + - type: marking - id: VoxHairRows + id: VoxHairLongBraid bodyPart: Hair markingCategory: Hair speciesRestriction: [Vox] sprites: - sprite: Mobs/Customization/vox_hair.rsi - state: vox_rows_s + state: afro_s + - type: marking id: VoxHairMange bodyPart: Hair @@ -93,7 +104,26 @@ speciesRestriction: [Vox] sprites: - sprite: Mobs/Customization/vox_hair.rsi - state: vox_mange_s + state: mange_s + +- type: marking + id: VoxHairMohawk + bodyPart: Hair + markingCategory: Hair + speciesRestriction: [Vox] + sprites: + - sprite: Mobs/Customization/vox_hair.rsi + state: mohawk_s + +- type: marking + id: VoxHairNights + bodyPart: Hair + markingCategory: Hair + speciesRestriction: [Vox] + sprites: + - sprite: Mobs/Customization/vox_hair.rsi + state: nights_s + - type: marking id: VoxHairPony bodyPart: Hair @@ -101,4 +131,67 @@ speciesRestriction: [Vox] sprites: - sprite: Mobs/Customization/vox_hair.rsi - state: vox_pony_s + state: ponytail_s + +- type: marking + id: VoxHairRazorClipped + bodyPart: Hair + markingCategory: Hair + speciesRestriction: [Vox] + sprites: + - sprite: Mobs/Customization/vox_hair.rsi + state: razor_clipped_s + +- type: marking + id: VoxHairRazor + bodyPart: Hair + markingCategory: Hair + speciesRestriction: [Vox] + sprites: + - sprite: Mobs/Customization/vox_hair.rsi + state: razor_s + +- type: marking + id: VoxHairSortBraid + bodyPart: Hair + markingCategory: Hair + speciesRestriction: [Vox] + sprites: + - sprite: Mobs/Customization/vox_hair.rsi + state: short_braid_s + +- type: marking + id: VoxHairShortQuills + bodyPart: Hair + markingCategory: Hair + speciesRestriction: [Vox] + sprites: + - sprite: Mobs/Customization/vox_hair.rsi + state: shortquills_s + +- type: marking + id: VoxHairSurf + bodyPart: Hair + markingCategory: Hair + speciesRestriction: [Vox] + sprites: + - sprite: Mobs/Customization/vox_hair.rsi + state: surf_s + +- type: marking + id: VoxHairTielQuills + bodyPart: Hair + markingCategory: Hair + speciesRestriction: [Vox] + sprites: + - sprite: Mobs/Customization/vox_hair.rsi + state: tielquills_s + +- type: marking + id: VoxHairYasu + bodyPart: Hair + markingCategory: Hair + speciesRestriction: [Vox] + sprites: + - sprite: Mobs/Customization/vox_hair.rsi + state: yasu_s \ No newline at end of file diff --git a/Resources/Prototypes/Entities/Mobs/Customization/Markings/vox_parts.yml b/Resources/Prototypes/Entities/Mobs/Customization/Markings/vox_parts.yml new file mode 100644 index 0000000000..96acd06882 --- /dev/null +++ b/Resources/Prototypes/Entities/Mobs/Customization/Markings/vox_parts.yml @@ -0,0 +1,145 @@ +- type: marking + id: VoxBeak + bodyPart: Snout + markingCategory: Snout + forcedColoring: true + speciesRestriction: [Vox] + sprites: + - sprite: Mobs/Customization/vox_parts.rsi + state: beak + coloring: + default: + type: + !type:SimpleColoring + color: "#937e3d" + +- type: marking + id: VoxLArmScales + bodyPart: LArm + markingCategory: LeftArm + forcedColoring: true + speciesRestriction: [Vox] + sprites: + - sprite: Mobs/Customization/vox_parts.rsi + state: l_arm + coloring: + default: + type: + !type:SimpleColoring + color: "#937e3d" + +- type: marking + id: VoxLLegScales + bodyPart: LLeg + markingCategory: LeftLeg + forcedColoring: true + speciesRestriction: [Vox] + sprites: + - sprite: Mobs/Customization/vox_parts.rsi + state: l_leg + coloring: + default: + type: + !type:SimpleColoring + color: "#937e3d" + +- type: marking + id: VoxRArmScales + bodyPart: RArm + markingCategory: RightArm + forcedColoring: true + speciesRestriction: [Vox] + sprites: + - sprite: Mobs/Customization/vox_parts.rsi + state: r_arm + coloring: + default: + type: + !type:SimpleColoring + color: "#937e3d" + +- type: marking + id: VoxRLegScales + bodyPart: RLeg + markingCategory: RightLeg + forcedColoring: true + speciesRestriction: [Vox] + sprites: + - sprite: Mobs/Customization/vox_parts.rsi + state: r_leg + coloring: + default: + type: + !type:SimpleColoring + color: "#937e3d" + +- type: marking + id: VoxRHandScales + bodyPart: RHand + markingCategory: RightHand + forcedColoring: true + speciesRestriction: [Vox] + sprites: + - sprite: Mobs/Customization/vox_parts.rsi + state: r_hand + coloring: + default: + type: + !type:SimpleColoring + color: "#937e3d" + +- type: marking + id: VoxLHandScales + bodyPart: LHand + markingCategory: LeftHand + forcedColoring: true + speciesRestriction: [Vox] + sprites: + - sprite: Mobs/Customization/vox_parts.rsi + state: l_hand + coloring: + default: + type: + !type:SimpleColoring + color: "#937e3d" + +- type: marking + id: VoxLFootScales + bodyPart: LFoot + markingCategory: LeftFoot + forcedColoring: true + speciesRestriction: [Vox] + sprites: + - sprite: Mobs/Customization/vox_parts.rsi + state: l_foot + coloring: + default: + type: + !type:SimpleColoring + color: "#937e3d" + +- type: marking + id: VoxRFootScales + bodyPart: RFoot + markingCategory: RightFoot + forcedColoring: true + speciesRestriction: [Vox] + sprites: + - sprite: Mobs/Customization/vox_parts.rsi + state: r_foot + coloring: + default: + type: + !type:SimpleColoring + color: "#937e3d" + +- type: marking + id: VoxTail + bodyPart: Tail + markingCategory: Tail + speciesRestriction: [Vox] + forcedColoring: true + sprites: + - sprite: Mobs/Customization/vox_parts.rsi + # Ideally this should use the normal tail sprite and apply an actual mask over it, not just use a butchered sprite + state: tail_stenciled diff --git a/Resources/Prototypes/Entities/Mobs/Customization/Markings/vox_tattoos.yml b/Resources/Prototypes/Entities/Mobs/Customization/Markings/vox_tattoos.yml new file mode 100644 index 0000000000..a802d284f3 --- /dev/null +++ b/Resources/Prototypes/Entities/Mobs/Customization/Markings/vox_tattoos.yml @@ -0,0 +1,55 @@ +- type: marking + id: TattooVoxHeartLeftArm + bodyPart: LArm + markingCategory: LeftArm + speciesRestriction: [Vox] + coloring: + default: + type: + !type:TattooColoring + fallbackColor: "#666666" + sprites: + - sprite: Mobs/Customization/vox_tattoos.rsi + state: heart_l_arm + +- type: marking + id: TattooVoxHeartRightArm + bodyPart: RArm + markingCategory: RightArm + speciesRestriction: [Vox] + coloring: + default: + type: + !type:TattooColoring + fallbackColor: "#666666" + sprites: + - sprite: Mobs/Customization/vox_tattoos.rsi + state: heart_r_arm + +- type: marking + id: TattooVoxHiveChest + bodyPart: Chest + markingCategory: Chest + speciesRestriction: [Vox] + coloring: + default: + type: + !type:TattooColoring + fallbackColor: "#666666" + sprites: + - sprite: Mobs/Customization/vox_tattoos.rsi + state: hive_s + +- type: marking + id: TattooVoxNightlingChest + bodyPart: Chest + markingCategory: Chest + speciesRestriction: [Vox] + coloring: + default: + type: + !type:TattooColoring + fallbackColor: "#666666" + sprites: + - sprite: Mobs/Customization/vox_tattoos.rsi + state: nightling_s diff --git a/Resources/Prototypes/Entities/Mobs/Customization/cyberlimbs/hesphiastos.yml b/Resources/Prototypes/Entities/Mobs/Customization/cyberlimbs/hesphiastos.yml index 1c14d7df0c..e3bcd07f3a 100644 --- a/Resources/Prototypes/Entities/Mobs/Customization/cyberlimbs/hesphiastos.yml +++ b/Resources/Prototypes/Entities/Mobs/Customization/cyberlimbs/hesphiastos.yml @@ -95,7 +95,7 @@ - type: marking id: CyberLimbsMarkingHesphiastosRHand bodyPart: RHand - markingCategory: RightArm + markingCategory: RightHand speciesRestriction: [IPC, Moth, Dwarf, Human, Arachnid, Felinid, Oni, Vulpkanin, HumanoidFoxes, Reptilian] sprites: - sprite: Mobs/Customization/cyberlimbs/hesphiastos/hesphiastos_main.rsi @@ -107,7 +107,7 @@ - type: marking id: CyberLimbsMarkingHesphiastosRLeg bodyPart: RLeg - markingCategory: RightHand + markingCategory: RightLeg speciesRestriction: [IPC, Moth, Dwarf, Human, Arachnid, Felinid, Oni, Vulpkanin, HumanoidFoxes, Reptilian] sprites: - sprite: Mobs/Customization/cyberlimbs/hesphiastos/hesphiastos_main.rsi diff --git a/Resources/Prototypes/Entities/Mobs/Customization/cyberlimbs/xion.yml b/Resources/Prototypes/Entities/Mobs/Customization/cyberlimbs/xion.yml index b5254df5f5..84b630b788 100644 --- a/Resources/Prototypes/Entities/Mobs/Customization/cyberlimbs/xion.yml +++ b/Resources/Prototypes/Entities/Mobs/Customization/cyberlimbs/xion.yml @@ -68,7 +68,7 @@ - type: marking id: CyberLimbsMarkingXionLFoot bodyPart: LFoot - markingCategory: RightFoot + markingCategory: LeftFoot speciesRestriction: [IPC] sprites: - sprite: Mobs/Customization/cyberlimbs/xion/xion_main.rsi diff --git a/Resources/Prototypes/Entities/Mobs/Cyborgs/base_borg_chassis.yml b/Resources/Prototypes/Entities/Mobs/Cyborgs/base_borg_chassis.yml index 6340cb888b..7974b06870 100644 --- a/Resources/Prototypes/Entities/Mobs/Cyborgs/base_borg_chassis.yml +++ b/Resources/Prototypes/Entities/Mobs/Cyborgs/base_borg_chassis.yml @@ -63,12 +63,12 @@ locPrefix: silicon - type: UserInterface interfaces: - - key: enum.SiliconLawsUiKey.Key - type: SiliconLawBoundUserInterface - - key: enum.BorgUiKey.Key - type: BorgBoundUserInterface - - key: enum.StrippingUiKey.Key - type: StrippableBoundUserInterface + enum.SiliconLawsUiKey.Key: + type: SiliconLawBoundUserInterface + enum.BorgUiKey.Key: + type: BorgBoundUserInterface + enum.StrippingUiKey.Key: + type: StrippableBoundUserInterface - type: ActivatableUI key: enum.BorgUiKey.Key - type: SiliconLawBound @@ -129,11 +129,14 @@ proto: robot - type: Speech speechVerb: Robotic - speechSounds: Pai + speechSounds: Borg - type: Vocal sounds: Unsexed: UnisexSilicon - type: UnblockableSpeech + - type: FootstepModifier + footstepSoundCollection: + collection: FootstepBorg - type: Construction graph: Cyborg containers: @@ -205,29 +208,47 @@ - type: StandingState - type: Tag tags: - - ShoesRequiredStepTriggerImmune - DoorBumpOpener + - FootstepSound - CanPilot - type: Emoting - type: GuideHelp guides: - Cyborgs + - type: StepTriggerImmune - type: Eye visMask: - PsionicInvisibility - Normal - type: LanguageKnowledge speaks: - - GalacticCommon + - TauCetiBasic - RobotTalk understands: - - GalacticCommon + - TauCetiBasic - RobotTalk - type: PsionicInsulation +- type: entity + abstract: true + id: BaseBorgTransponder + components: + - type: BorgTransponder + - type: DeviceNetwork + deviceNetId: Wireless + receiveFrequencyId: CyborgControl + transmitFrequencyId: RoboticsConsole + # explosion does most of its damage in the center and less at the edges + - type: Explosive + explosionType: Minibomb + totalIntensity: 30 + intensitySlope: 20 + maxIntensity: 20 + canCreateVacuum: false # its for killing the borg not the station + - type: entity id: BaseBorgChassisNT - parent: BaseBorgChassis + parent: [BaseBorgChassis, BaseBorgTransponder] abstract: true components: - type: NpcFactionMember @@ -239,30 +260,36 @@ - AllAccessBorg - type: AccessReader access: [["Command"], ["Research"]] - - type: ShowSecurityIcons + - type: ShowJobIcons + - type: ShowMindShieldIcons - type: entity id: BaseBorgChassisSyndicate parent: BaseBorgChassis abstract: true components: - - type: NpcFactionMember - factions: - - Syndicate - - type: Access - tags: - - NuclearOperative - - SyndicateAgent - - type: AccessReader - access: [["SyndicateAgent"], ["NuclearOperative"]] - - type: SiliconLawProvider - laws: SyndicateStatic - - type: IntrinsicRadioTransmitter - channels: - - Binary - - Syndicate - - type: ActiveRadio - channels: - - Syndicate - - type: ShowSyndicateIcons - - type: MovementAlwaysTouching + - type: NpcFactionMember + factions: + - Syndicate + - type: Access + tags: + - NuclearOperative + - SyndicateAgent + - type: AccessReader + access: [["SyndicateAgent"], ["NuclearOperative"]] + - type: SiliconLawProvider + laws: SyndicateStatic + - type: IntrinsicRadioTransmitter + channels: + - Binary + - Syndicate + - type: ActiveRadio + channels: + - Syndicate + - type: ShowSyndicateIcons + - type: MovementAlwaysTouching + - type: Speech + speechSounds: SyndieBorg + - type: Vocal + sounds: + Unsexed: UnisexSiliconSyndicate diff --git a/Resources/Prototypes/Entities/Mobs/Cyborgs/borg_chassis.yml b/Resources/Prototypes/Entities/Mobs/Cyborgs/borg_chassis.yml index 5056fda4c0..e0dc4a0ad4 100644 --- a/Resources/Prototypes/Entities/Mobs/Cyborgs/borg_chassis.yml +++ b/Resources/Prototypes/Entities/Mobs/Cyborgs/borg_chassis.yml @@ -20,6 +20,11 @@ - BorgModuleGeneric hasMindState: robot_e noMindState: robot_e_r + - type: BorgTransponder + sprite: + sprite: Mobs/Silicon/chassis.rsi + state: robot + name: cyborg - type: Construction node: cyborg - type: Speech @@ -57,6 +62,11 @@ - BorgModuleCargo hasMindState: miner_e noMindState: miner_e_r + - type: BorgTransponder + sprite: + sprite: Mobs/Silicon/chassis.rsi + state: miner + name: salvage cyborg - type: Construction node: mining - type: IntrinsicRadioTransmitter @@ -100,6 +110,11 @@ - BorgModuleEngineering hasMindState: engineer_e noMindState: engineer_e_r + - type: BorgTransponder + sprite: + sprite: Mobs/Silicon/chassis.rsi + state: engineer + name: engineer cyborg - type: Construction node: engineer - type: IntrinsicRadioTransmitter @@ -153,6 +168,11 @@ - BorgModuleJanitor hasMindState: janitor_e noMindState: janitor_e_r + - type: BorgTransponder + sprite: + sprite: Mobs/Silicon/chassis.rsi + state: janitor + name: janitor cyborg - type: Construction node: janitor - type: IntrinsicRadioTransmitter @@ -206,6 +226,11 @@ - BorgModuleMedical hasMindState: medical_e noMindState: medical_e_r + - type: BorgTransponder + sprite: + sprite: Mobs/Silicon/chassis.rsi + state: medical + name: medical cyborg - type: Construction node: medical - type: IntrinsicRadioTransmitter @@ -224,11 +249,14 @@ access: [["Medical"], ["Command"], ["Research"]] - type: Inventory templateId: borgDutch + - type: FootstepModifier + footstepSoundCollection: + collection: FootstepHoverBorg - type: FabricateActions actions: - ActionFabricateLollipop - ActionFabricateGumball - - type: SiliconLawProvider # Delta-V - Adds custom lawset for Medical cyborg + - type: SiliconLawProvider laws: Medical - type: entity @@ -255,6 +283,11 @@ - BorgModuleService hasMindState: service_e noMindState: service_e_r + - type: BorgTransponder + sprite: + sprite: Mobs/Silicon/chassis.rsi + state: service + name: service cyborg - type: Construction node: service - type: IntrinsicRadioTransmitter diff --git a/Resources/Prototypes/Entities/Mobs/Debugging/debug_counter.yml b/Resources/Prototypes/Entities/Mobs/Debugging/debug_counter.yml new file mode 100644 index 0000000000..05707c7151 --- /dev/null +++ b/Resources/Prototypes/Entities/Mobs/Debugging/debug_counter.yml @@ -0,0 +1,53 @@ +- type: entity + parent: MobHuman + id: MobDebugCounter + name: debug counter + description: He can count + suffix: AI, DEBUG + components: + - type: HTN + rootTask: + task: DebugCounterCompound + blackboard: + MinimumIdleTime: !type:Single + 0.5 + MaximumIdleTime: !type:Single + 0.5 + Count: !type:Single + 0 + +- type: entity + parent: MobHuman + id: MobDebugRandomCounter + name: debug random counter + description: He can randomize + suffix: AI, DEBUG + components: + - type: HTN + rootTask: + task: DebugRandomCounterCompound + blackboard: + MinimumIdleTime: !type:Single + 1 + MaximumIdleTime: !type:Single + 1 + Count: !type:Single + 0 + +- type: entity + parent: MobHuman + id: MobDebugRandomLess + name: debug random less + description: He can lessing + suffix: AI, DEBUG + components: + - type: HTN + rootTask: + task: DebugRandomLessCompound + blackboard: + MinimumIdleTime: !type:Single + 1 + MaximumIdleTime: !type:Single + 1 + Count: !type:Single + 0 diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/Rslimes.yml b/Resources/Prototypes/Entities/Mobs/NPCs/Rslimes.yml new file mode 100644 index 0000000000..3512b51815 --- /dev/null +++ b/Resources/Prototypes/Entities/Mobs/NPCs/Rslimes.yml @@ -0,0 +1,287 @@ +- type: entity + id: ReagentSlimeIchor + parent: ReagentSlime + suffix: Ichor + components: + - type: Bloodstream + bloodReagent: Ichor + - type: PointLight + color: "#f4692e" + - type: Sprite + drawdepth: Mobs + sprite: Mobs/Aliens/elemental.rsi + layers: + - map: [ "enum.DamageStateVisualLayers.Base" ] + state: alive + color: "#f4692e" + +- type: entity + id: ReagentSlimeBleach + parent: ReagentSlime + suffix: Bleach + components: + - type: Bloodstream + bloodReagent: Bleach + - type: PointLight + color: "#a1000b" + - type: Sprite + drawdepth: Mobs + sprite: Mobs/Aliens/elemental.rsi + layers: + - map: [ "enum.DamageStateVisualLayers.Base" ] + state: alive + color: "#a1000b" + +- type: entity + id: ReagentSlimeSoap + parent: ReagentSlime + suffix: Soap + components: + - type: Bloodstream + bloodReagent: SoapReagent + - type: PointLight + color: "#c8dfc9" + - type: Sprite + drawdepth: Mobs + sprite: Mobs/Aliens/elemental.rsi + layers: + - map: [ "enum.DamageStateVisualLayers.Base" ] + state: alive + color: "#c8dfc9" + +- type: entity + id: ReagentSlimeSpacelube + parent: ReagentSlime + suffix: Spacelube + components: + - type: Bloodstream + bloodReagent: SpaceLube + - type: PointLight + color: "#77b58e" + - type: Sprite + drawdepth: Mobs + sprite: Mobs/Aliens/elemental.rsi + layers: + - map: [ "enum.DamageStateVisualLayers.Base" ] + state: alive + color: "#77b58e" + +- type: entity + id: ReagentSlimeBuzzachloricbees + parent: ReagentSlime + suffix: Buzzachloricbees + components: + - type: Bloodstream + bloodReagent: BuzzochloricBees + - type: PointLight + color: "#FFD35D" + - type: Sprite + drawdepth: Mobs + sprite: Mobs/Aliens/elemental.rsi + layers: + - map: [ "enum.DamageStateVisualLayers.Base" ] + state: alive + color: "#FFD35D" + +- type: entity + id: ReagentSlimeWehjuice + parent: ReagentSlime + suffix: Wehjuice + components: + - type: Bloodstream + bloodReagent: JuiceThatMakesYouWeh + - type: PointLight + color: "#59b23a" + - type: Sprite + drawdepth: Mobs + sprite: Mobs/Aliens/elemental.rsi + layers: + - map: [ "enum.DamageStateVisualLayers.Base" ] + state: alive + color: "#59b23a" + +- type: entity + id: ReagentCognizine + parent: ReagentSlime + suffix: Cognizine + components: + - type: Bloodstream + bloodReagent: Cognizine + - type: PointLight + color: "#b50ee8" + - type: Sprite + drawdepth: Mobs + sprite: Mobs/Aliens/elemental.rsi + layers: + - map: [ "enum.DamageStateVisualLayers.Base" ] + state: alive + color: "#b50ee8" + +- type: entity + id: ReagentSlimeNecrosol + parent: ReagentSlime + suffix: Necrosol + components: + - type: Bloodstream + bloodReagent: Necrosol + - type: PointLight + color: "#86a5bd" + - type: Sprite + drawdepth: Mobs + sprite: Mobs/Aliens/elemental.rsi + layers: + - map: [ "enum.DamageStateVisualLayers.Base" ] + state: alive + color: "#86a5bd" + +- type: entity + id: ReagentSlimeSpaceDrugs + parent: ReagentSlime + suffix: SpaceDrugs + components: + - type: Bloodstream + bloodReagent: SpaceDrugs + - type: PointLight + color: "#63806e" + - type: Sprite + drawdepth: Mobs + sprite: Mobs/Aliens/elemental.rsi + layers: + - map: [ "enum.DamageStateVisualLayers.Base" ] + state: alive + color: "#63806e" + +- type: entity + id: ReagentSlimeUnstableMutagen + parent: ReagentSlime + suffix: UnstableMutagen + components: + - type: Bloodstream + bloodReagent: UnstableMutagen + - type: PointLight + color: "#00ff5f" + - type: Sprite + drawdepth: Mobs + sprite: Mobs/Aliens/elemental.rsi + layers: + - map: [ "enum.DamageStateVisualLayers.Base" ] + state: alive + color: "#00ff5f" + +- type: entity + id: ReagentSlimeLead + parent: ReagentSlime + suffix: Lead + components: + - type: Bloodstream + bloodReagent: Lead + - type: PointLight + color: "#5C6274" + - type: Sprite + drawdepth: Mobs + sprite: Mobs/Aliens/elemental.rsi + layers: + - map: [ "enum.DamageStateVisualLayers.Base" ] + state: alive + color: "#5C6274" + +- type: entity + id: ReagentSlimechlorinetriflouride + parent: ReagentSlime + suffix: chlorinetriflouride + components: + - type: Bloodstream + bloodReagent: ChlorineTrifluoride + - type: PointLight + color: "#FFC8C8" + - type: Sprite + drawdepth: Mobs + sprite: Mobs/Aliens/elemental.rsi + layers: + - map: [ "enum.DamageStateVisualLayers.Base" ] + state: alive + color: "#FFC8C8" + +- type: entity + id: ReagentSlimePotassium + parent: ReagentSlime + suffix: Potassium + components: + - type: Bloodstream + bloodReagent: Potassium + - type: PointLight + color: "#c6c8cc" + - type: Sprite + drawdepth: Mobs + sprite: Mobs/Aliens/elemental.rsi + layers: + - map: [ "enum.DamageStateVisualLayers.Base" ] + state: alive + color: "#c6c8cc" + +- type: entity + id: reagentslimeVents + parent: BaseGameRule + noSpawn: true + components: + - type: StationEvent + startAnnouncement: true + earliestStart: 20 + reoccurrenceDelay: 12 + minimumPlayers: 30 + weight: 6 # Really weak compared to other critters + duration: 60 + - type: VentCrittersRule + entries: + - id: ReagentSlimeBeer + prob: 0.003 + - id: ReagentSlimePax + prob: 0.001 + - id: ReagentSlimeNocturine + prob: 0.001 + - id: ReagentSlimeTHC + prob: 0.002 + - id: ReagentSlimeBicaridine + prob: 0.002 + - id: ReagentSlimeToxin + prob: 0.002 + - id: ReagentSlimeNapalm + prob: 0.002 + - id: ReagentSlimeOmnizine + prob: 0.003 + - id: ReagentSlimeMuteToxin + prob: 0.002 + - id: ReagentSlimeNorepinephricAcid + prob: 0.002 + - id: ReagentSlimeEphedrine + prob: 0.002 + - id: ReagentSlimeRobustHarvest + prob: 0.003 + - id: ReagentSlimeIchor + prob: 0.002 + - id: ReagentSlimeBleach + prob: 0.002 + - id: ReagentSlimeSoap + prob: 0.002 + - id: ReagentSlimeSpacelube + prob: 0.002 + - id: ReagentSlimeBuzzachloricbees + prob: 0.002 + - id: ReagentSlimeWehjuice + prob: 0.003 + - id: ReagentCognizine + prob: 0.003 + - id: ReagentSlimeNecrosol + prob: 0.002 + - id: ReagentSlimeSpaceDrugs + prob: 0.003 + - id: ReagentSlimeUnstableMutagen + prob: 0.001 + - id: ReagentSlimeLead + prob: 0.001 + - id: ReagentSlimechlorinetriflouride + prob: 0.002 + - id: ReagentSlimePotassium + prob: 0.002 + - id: ReagentSlimeLotophagoiOil + prob: 0.001 diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml b/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml index eed2b8a58a..8dd348f47e 100644 --- a/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml +++ b/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml @@ -17,6 +17,7 @@ - type: Speech speechSounds: Squeak speechVerb: SmallMob + allowedEmotes: ['Squeak'] - type: Fixtures fixtures: fix1: @@ -66,6 +67,9 @@ tags: - VimPilot - type: RandomBark + barkType: mouse + minTime: 10 # Mice like to squeak, I think. You can always put your pet mouse to sleep if it gets annoying + maxTime: 160 - type: entity name: bee @@ -135,11 +139,7 @@ Quantity: 5 - type: ZombieImmune - type: RandomBark - barks: - - Bzzzzz - - Bzzz bzzz - - Bzzzzzzzzzzzz - - Bzz + barkType: bee barkMultiplier: 1.5 - type: entity @@ -254,6 +254,7 @@ factions: - Passive - type: RandomBark + barkType: chicken - type: entity parent: MobChicken @@ -457,7 +458,10 @@ - type: GhostTakeoverAvailable - type: Speech speechVerb: Moth - speechSounds: Chitter # Delta-V - Eep! + speechSounds: Chitter + allowedEmotes: ['Chitter', 'Squeak'] + - type: FaxableObject + insertingState: inserting_mothroach - type: MothAccent - type: Sprite sprite: Mobs/Animals/mothroach.rsi @@ -641,6 +645,7 @@ factions: - Passive - type: RandomBark + barkType: chicken # Duh barkMultiplier: 0.7 - type: entity @@ -821,13 +826,7 @@ guides: - Chef - type: RandomBark - barks: - - Mooooooo - - Moo - - Huff - - Mooooooooooo - - Moooooo - - Moooo + barkType: cow barkMultiplier: 3 @@ -867,6 +866,7 @@ - type: Speech speechVerb: Arachnid speechSounds: Arachnid + allowedEmotes: ['Click', 'Chitter'] - type: DamageStateVisuals states: Alive: @@ -901,11 +901,7 @@ - type: Body prototype: AnimalHemocyanin - type: RandomBark - barks: - - click clack - - clack - - clickity clack - - clack clack + barkType: crab - type: entity name: goat @@ -1143,8 +1139,8 @@ - id: FoodMeat - type: UserInterface interfaces: - - key: enum.StrippingUiKey.Key - type: StrippableBoundUserInterface + enum.StrippingUiKey.Key: + type: StrippableBoundUserInterface - type: DamageStateVisuals states: Alive: @@ -1216,6 +1212,8 @@ templateId: monkey speciesId: monkey - type: InventorySlots + - type: Deathgasp + prototype: MonkeyDeathgasp - type: Cuffable - type: RotationVisuals defaultRotation: 90 @@ -1235,8 +1233,8 @@ - type: Strippable - type: UserInterface interfaces: - - key: enum.StrippingUiKey.Key - type: StrippableBoundUserInterface + enum.StrippingUiKey.Key: + type: StrippableBoundUserInterface - type: Sprite drawdepth: Mobs layers: @@ -1370,7 +1368,7 @@ understands: - Monkey - Kobold - - GalacticCommon + - TauCetiBasic - type: NpcFactionMember factions: - Syndicate @@ -1379,6 +1377,8 @@ makeSentient: true name: ghost-role-information-monkey-name description: ghost-role-information-monkey-description + raffle: + settings: default - type: GhostTakeoverAvailable - type: Loadout prototypes: [SyndicateOperativeGearMonkey] @@ -1402,9 +1402,10 @@ - type: entity name: kobold - id: MobKobold + id: MobBaseKobold parent: MobBaseAncestor description: Cousins to the sentient race of lizard people, kobolds blend in with their natural habitat and are as nasty as monkeys; ready to pull out your hair and stab you to death. + abstract: true components: - type: NameIdentifier group: Kobold @@ -1420,9 +1421,9 @@ speechVerb: Reptilian - type: Vocal sounds: - Male: UnisexReptilian - Female: UnisexReptilian - Unsexed: UnisexReptilian + Male: MaleReptilian + Female: FemaleReptilian + Unsexed: MaleReptilian - type: TypingIndicator proto: lizard - type: InteractionPopup @@ -1502,15 +1503,6 @@ spawned: - id: FoodMeat amount: 2 - - type: Clumsy - clumsyDamage: - types: - Blunt: 2 - Piercing: 7 - groups: - Burn: 3 - clumsySound: - path: /Audio/Voice/Reptilian/reptilian_scream.ogg - type: AlwaysRevolutionaryConvertible - type: GhostTakeoverAvailable - type: SentienceTarget @@ -1522,6 +1514,56 @@ description: ghost-role-information-kobold-description - type: RandomBark barkMultiplier: 0.65 + barkType: kobold + +- type: entity + name: kobold + id: MobKobold + parent: MobBaseKobold + description: Cousins to the sentient race of lizard people, kobolds blend in with their natural habitat and are as nasty as monkeys; ready to pull out your hair and stab you to death. + components: + - type: Clumsy + clumsyDamage: + types: + Blunt: 2 + Piercing: 7 + groups: + Burn: 3 + clumsySound: + path: /Audio/Voice/Reptilian/reptilian_scream.ogg + +- type: entity + id: MobBaseSyndicateKobold + parent: MobBaseKobold + suffix: syndicate base + components: + - type: MobThresholds + thresholds: + 0: Alive + 75: Critical + 200: Dead + - type: NpcFactionMember + factions: + - Syndicate + - type: Loadout + prototypes: [SyndicateOperativeGearMonkey] + +- type: entity + id: MobKoboldSyndicateAgent + parent: MobBaseSyndicateKobold + suffix: syndicate agent + components: + # make the player a traitor once its taken + - type: AutoTraitor + giveUplink: false + giveObjectives: false + +- type: entity + id: MobKoboldSyndicateAgentNukeops # Reinforcement exclusive to nukeops uplink + parent: MobBaseSyndicateKobold + suffix: NukeOps + components: + - type: NukeOperative - type: entity name: guidebook monkey @@ -1550,6 +1592,7 @@ - type: Speech speechSounds: Squeak speechVerb: SmallMob + allowedEmotes: ['Squeak'] - type: Sprite drawdepth: SmallMobs sprite: Mobs/Animals/mouse.rsi @@ -1578,6 +1621,8 @@ rootTask: task: MouseCompound - type: Physics + - type: FaxableObject + insertingState: inserting_mouse - type: Fixtures fixtures: fix1: @@ -1686,13 +1731,14 @@ - type: PreventSpiller - type: RandomBark barkMultiplier: 0.3 + barkType: mouse - type: FireVisuals sprite: Mobs/Effects/onfire.rsi normalState: Mouse_burning - - type: StepTriggerImmune # WD EDIT START + - type: StepTriggerImmune whitelist: types: - - Landmine # END + - Landmine - type: entity parent: MobMouse @@ -1934,16 +1980,6 @@ - VimPilot - type: RandomBark barkMultiplier: 1.3 - barks: - - Croooaaaakkk - - Ribbit - - Ribbit - - Ribbit - - Crooaak - - Ribbit - - Ribbit - - Ribbit - - Bibbit # Would be cool to have some functionality for the parrot to be able to sit on stuff - type: entity @@ -2002,9 +2038,9 @@ bloodMaxVolume: 50 - type: LanguageKnowledge speaks: - - GalacticCommon + - TauCetiBasic understands: - - GalacticCommon + - TauCetiBasic - type: entity name: penguin @@ -2066,8 +2102,7 @@ types: Heat : 0.2 #per second, scales with temperature & other constants - type: RandomBark - barks: - - Wank + barkType: penguin barkMultiplier: 0.6 - type: entity @@ -2186,13 +2221,9 @@ damageContainer: Biological damageModifierSet: Scale - type: RandomBark - barkMultiplier: 1.5 - barks: - - Hsssssss - - Hss - - Hsssss - - Hisss - - Hshsss + minTime: 10 + maxTime: 50 # It's a sssnake... + barkType: hissing # Code unique spider prototypes or combine them all into one spider and get a # random sprite state when you spawn it. @@ -2246,6 +2277,7 @@ 0: Alive 90: Dead - type: MeleeWeapon + altDisarm: false angle: 0 animation: WeaponArcBite soundHit: @@ -2287,6 +2319,7 @@ - type: Speech speechVerb: Arachnid speechSounds: Arachnid + allowedEmotes: ['Click', 'Chitter'] - type: Vocal sounds: Male: UnisexArachnid @@ -2322,6 +2355,11 @@ Brute: -0.07 Burn: -0.07 - type: RandomBark + barkType: hissing + barkMultiplier: 0.3 + - type: BloodSucker + webRequired: true + - type: Cocooner - type: entity name: tarantula @@ -2341,7 +2379,9 @@ makeSentient: true name: ghost-role-information-giant-spider-name description: ghost-role-information-giant-spider-description - rules: deltav-ghost-role-information-softantag-rules #DeltaV + rules: deltav-ghost-role-information-softantag-rules + raffle: + settings: short - type: GhostTakeoverAvailable - type: entity @@ -2373,6 +2413,7 @@ - type: Spider webPrototype: SpiderWebClown - type: MeleeWeapon + altDisarm: false angle: 0 animation: WeaponArcBite soundHit: @@ -2389,6 +2430,18 @@ bloodMaxVolume: 150 bloodReagent: Laughter +- type: entity + name: wizard spider + parent: MobGiantSpider + id: MobGiantSpiderWizard + description: This spider looks a little magical + suffix: Wizard + components: + - type: Accentless + removes: + - type: ReplacementAccent + accent: xeno #let this wizard speak + - type: entity name: possum parent: SimpleMobBase @@ -2421,8 +2474,8 @@ - type: Strippable - type: UserInterface interfaces: - - key: enum.StrippingUiKey.Key - type: StrippableBoundUserInterface + enum.StrippingUiKey.Key: + type: StrippableBoundUserInterface - type: DamageStateVisuals states: Alive: @@ -2450,7 +2503,8 @@ - Hissing understands: - Hissing - + - type: RandomBark + barkType: possum - type: entity name: possum @@ -2503,8 +2557,8 @@ - type: Strippable - type: UserInterface interfaces: - - key: enum.StrippingUiKey.Key - type: StrippableBoundUserInterface + enum.StrippingUiKey.Key: + type: StrippableBoundUserInterface - type: DamageStateVisuals states: Alive: @@ -2533,6 +2587,8 @@ - Hissing understands: - Hissing + - type: RandomBark + barkType: raccoon - type: entity name: fox @@ -2573,8 +2629,8 @@ - type: Strippable - type: UserInterface interfaces: - - key: enum.StrippingUiKey.Key - type: StrippableBoundUserInterface + enum.StrippingUiKey.Key: + type: StrippableBoundUserInterface - type: DamageStateVisuals states: Alive: @@ -2591,7 +2647,7 @@ interactFailureString: petting-failure-generic interactSuccessSpawn: EffectHearts interactSuccessSound: - path: /Audio/Animals/fox_squeak.ogg + collection: Fox - type: Grammar attributes: gender: epicene @@ -2621,6 +2677,9 @@ - Fox understands: - Fox + - type: RandomBark + barkType: fox + barkMultiplier: 0.5 # Talkative <3 - type: entity name: corgi @@ -2656,8 +2715,8 @@ - type: Strippable - type: UserInterface interfaces: - - key: enum.StrippingUiKey.Key - type: StrippableBoundUserInterface + enum.StrippingUiKey.Key: + type: StrippableBoundUserInterface - type: DamageStateVisuals states: Alive: @@ -2690,6 +2749,7 @@ tags: - VimPilot - type: RandomBark + barkType: dog - type: entity name: corrupted corgi @@ -2811,8 +2871,8 @@ - type: Strippable - type: UserInterface interfaces: - - key: enum.StrippingUiKey.Key - type: StrippableBoundUserInterface + enum.StrippingUiKey.Key: + type: StrippableBoundUserInterface - type: DamageStateVisuals states: Alive: @@ -2839,6 +2899,11 @@ interactSuccessSound: path: /Audio/Animals/cat_meow.ogg - type: MeleeWeapon + altDisarm: false + angle: 0 + animation: WeaponArcBite + soundHit: + path: /Audio/Effects/bite.ogg damage: types: Piercing: 5 @@ -2851,6 +2916,7 @@ tags: - VimPilot - type: RandomBark + barkType: cat - type: entity name: calico cat @@ -2891,19 +2957,34 @@ allowMovement: true description: ghost-role-information-SyndiCat-description rules: ghost-role-information-SyndiCat-rules + raffle: + settings: default - type: GhostTakeoverAvailable - type: AutoImplant implants: - MicroBombImplant + - type: ExplosionResistance + damageCoefficient: 0.2 - type: NpcFactionMember factions: - Syndicate + - type: MeleeWeapon + altDisarm: false + angle: 0 + animation: WeaponArcBite + soundHit: + path: /Audio/Effects/bite.ogg + damage: + types: + Slash: 6 + Piercing: 6 + Structural: 15 - type: LanguageKnowledge speaks: - - Cat + - Cat understands: - Cat - - GalacticCommon + - TauCetiBasic - type: entity name: space cat @@ -2924,7 +3005,13 @@ - type: Temperature heatDamageThreshold: 423 coldDamageThreshold: 0 + - type: Tag + tags: + - DoorBumpOpener + - type: MovementAlwaysTouching - type: PressureImmunity + - type: StepTriggerImmune + - type: Insulated - type: InteractionPopup successChance: 0.7 interactSuccessString: petting-success-space-cat @@ -3045,8 +3132,8 @@ - type: Strippable - type: UserInterface interfaces: - - key: enum.StrippingUiKey.Key - type: StrippableBoundUserInterface + enum.StrippingUiKey.Key: + type: StrippableBoundUserInterface - type: DamageStateVisuals states: Alive: @@ -3070,10 +3157,6 @@ - type: Tag tags: - VimPilot - - type: RandomBark - barkMultiplier: 10 - barks: - - Sloth - type: LanguageKnowledge # WHAT DOES THE SLOTH SAY??????? speaks: - Hissing @@ -3112,8 +3195,8 @@ - type: Strippable - type: UserInterface interfaces: - - key: enum.StrippingUiKey.Key - type: StrippableBoundUserInterface + enum.StrippingUiKey.Key: + type: StrippableBoundUserInterface - type: DamageStateVisuals states: Alive: @@ -3160,6 +3243,7 @@ - type: Speech speechVerb: SmallMob speechSounds: Squeak + allowedEmotes: ['Squeak'] - type: Sprite drawdepth: SmallMobs sprite: Mobs/Animals/hamster.rsi @@ -3176,6 +3260,8 @@ - type: Item size: Tiny - type: Physics + - type: FaxableObject + insertingState: inserting_hamster - type: Fixtures fixtures: fix1: @@ -3210,8 +3296,8 @@ - type: Strippable - type: UserInterface interfaces: - - key: enum.StrippingUiKey.Key - type: StrippableBoundUserInterface + enum.StrippingUiKey.Key: + type: StrippableBoundUserInterface - type: DamageStateVisuals states: Alive: @@ -3286,6 +3372,7 @@ - type: NonSpreaderZombie - type: RandomBark barkMultiplier: 0.45 + barkType: mouse # duh - type: FireVisuals sprite: Mobs/Effects/onfire.rsi normalState: Mouse_burning @@ -3333,8 +3420,8 @@ - type: Strippable - type: UserInterface interfaces: - - key: enum.StrippingUiKey.Key - type: StrippableBoundUserInterface + enum.StrippingUiKey.Key: + type: StrippableBoundUserInterface - type: DamageStateVisuals states: Alive: @@ -3401,8 +3488,8 @@ bloodMaxVolume: 60 - type: UserInterface interfaces: - - key: enum.StrippingUiKey.Key - type: StrippableBoundUserInterface + enum.StrippingUiKey.Key: + type: StrippableBoundUserInterface - type: DamageStateVisuals states: Alive: @@ -3450,7 +3537,7 @@ speaks: - RootSpeak understands: - - GalacticCommon + - TauCetiBasic - RootSpeak - type: entity @@ -3460,4 +3547,4 @@ components: - type: ReplacementAccent accent: nymph - - type: RandomBark + - type: RandomBark # Using the default barks since they aren't going to talk anyway diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/behonker.yml b/Resources/Prototypes/Entities/Mobs/NPCs/behonker.yml index 8a10337c94..07ee6b1536 100644 --- a/Resources/Prototypes/Entities/Mobs/NPCs/behonker.yml +++ b/Resources/Prototypes/Entities/Mobs/NPCs/behonker.yml @@ -10,6 +10,8 @@ makeSentient: true name: ghost-role-information-behonker-name description: ghost-role-information-behonker-description + raffle: + settings: default - type: GhostTakeoverAvailable - type: HTN rootTask: @@ -76,8 +78,8 @@ - id: BikeHorn - type: UserInterface interfaces: - - key: enum.StrippingUiKey.Key - type: StrippableBoundUserInterface + enum.StrippingUiKey.Key: + type: StrippableBoundUserInterface - type: MobThresholds thresholds: 0: Alive diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/carp.yml b/Resources/Prototypes/Entities/Mobs/NPCs/carp.yml index 787f8ae542..2778bf1278 100644 --- a/Resources/Prototypes/Entities/Mobs/NPCs/carp.yml +++ b/Resources/Prototypes/Entities/Mobs/NPCs/carp.yml @@ -164,6 +164,8 @@ makeSentient: true name: ghost-role-information-sentient-carp-name description: ghost-role-information-sentient-carp-description + raffle: + settings: short - type: GhostTakeoverAvailable - type: HTN rootTask: diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/dogs.yml b/Resources/Prototypes/Entities/Mobs/NPCs/dogs.yml index 22da758372..a0c19569bb 100644 --- a/Resources/Prototypes/Entities/Mobs/NPCs/dogs.yml +++ b/Resources/Prototypes/Entities/Mobs/NPCs/dogs.yml @@ -43,8 +43,8 @@ - type: Strippable - type: UserInterface interfaces: - - key: enum.StrippingUiKey.Key - type: StrippableBoundUserInterface + enum.StrippingUiKey.Key: + type: StrippableBoundUserInterface - type: DamageStateVisuals states: Alive: @@ -65,7 +65,6 @@ interactFailureString: petting-failure-pibble interactSuccessSound: path: /Audio/Animals/small_dog_bark_happy.ogg - hostileOnFail: true - type: DogVision - type: NpcFactionMember factions: @@ -89,7 +88,7 @@ - Dog understands: - Dog - - GalacticCommon + - TauCetiBasic - type: entity parent: MobPibble diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/elemental.yml b/Resources/Prototypes/Entities/Mobs/NPCs/elemental.yml index 11c6f926ba..94ba7ec418 100644 --- a/Resources/Prototypes/Entities/Mobs/NPCs/elemental.yml +++ b/Resources/Prototypes/Entities/Mobs/NPCs/elemental.yml @@ -44,7 +44,6 @@ - type: Tag tags: - DoorBumpOpener - - ShoesRequiredStepTriggerImmune - type: MobState allowedStates: - Alive @@ -73,6 +72,8 @@ - type: InputMover - type: MobMover - type: ZombieImmune + - type: ClothingRequiredStepTriggerImmune + slots: All - type: entity abstract: true @@ -236,6 +237,8 @@ - type: GhostRole prob: 0 description: ghost-role-information-angry-slimes-description + raffle: + settings: short - type: NpcFactionMember factions: - SimpleHostile @@ -257,13 +260,13 @@ - type: MobThresholds thresholds: 0: Alive - 150: Dead + 50: Dead - type: SlowOnDamage speedModifierThresholds: - 50: 0.4 + 20: 0.4 - type: Bloodstream bloodReagent: Water - chemicalMaxVolume: 100 + chemicalMaxVolume: 50 - type: StatusEffects allowed: - SlowedDown @@ -274,10 +277,10 @@ animation: WeaponArcBite damage: types: - Slash: 8 + Slash: 3 - type: MeleeChemicalInjector solution: bloodstream - transferAmount: 5 + transferAmount: 2 - type: DamageStateVisuals rotate: true states: @@ -329,6 +332,19 @@ - ReagentSlimeNorepinephricAcid - ReagentSlimeEphedrine - ReagentSlimeRobustHarvest + - ReagentSlimeIchor + - ReagentSlimeBleach + - ReagentSlimeSoap + - ReagentSlimeSpacelube + - ReagentSlimeBuzzachloricbees + - ReagentSlimeWehjuice + - ReagentCognizine + - ReagentSlimeNecrosol + - ReagentSlimeSpaceDrugs + - ReagentSlimeUnstableMutagen + - ReagentSlimeLead + - ReagentSlimechlorinetriflouride + - ReagentSlimePotassium - ReagentSlimeLotophagoiOil chance: 1 @@ -560,4 +576,4 @@ color: "#3e901c" - type: GhostRole prob: 1 #it's significantly more psionic than the others - description: ghost-role-information-angry-slimes-description \ No newline at end of file + description: ghost-role-information-angry-slimes-description diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/hellspawn.yml b/Resources/Prototypes/Entities/Mobs/NPCs/hellspawn.yml index 5511c40baa..74658f0a2d 100644 --- a/Resources/Prototypes/Entities/Mobs/NPCs/hellspawn.yml +++ b/Resources/Prototypes/Entities/Mobs/NPCs/hellspawn.yml @@ -12,6 +12,8 @@ makeSentient: true name: ghost-role-information-hellspawn-name description: ghost-role-information-hellspawn-description + raffle: + settings: default - type: RotationVisuals defaultRotation: 90 horizontalRotation: 90 @@ -53,6 +55,7 @@ - type: Perishable - type: Reflect reflectProb: 0.7 + innate: true reflects: - Energy - type: Fixtures diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/mimic.yml b/Resources/Prototypes/Entities/Mobs/NPCs/mimic.yml index ce2ca9e731..c3a92d3ebc 100644 --- a/Resources/Prototypes/Entities/Mobs/NPCs/mimic.yml +++ b/Resources/Prototypes/Entities/Mobs/NPCs/mimic.yml @@ -1,3 +1,4 @@ +# TODO: Pending a rewrite of Mob Replacement System, this entire list should just be moved into a ComponentRegistry on the event. - type: entity name: Mimic id: MobMimic @@ -43,4 +44,3 @@ damage: types: Blunt: 20 - - type: PsionicInsulation diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/pets.yml b/Resources/Prototypes/Entities/Mobs/NPCs/pets.yml index 6eb43fb89a..420e7ed50d 100644 --- a/Resources/Prototypes/Entities/Mobs/NPCs/pets.yml +++ b/Resources/Prototypes/Entities/Mobs/NPCs/pets.yml @@ -40,7 +40,7 @@ speaks: - Dog understands: - - GalacticCommon + - TauCetiBasic - Dog - type: entity @@ -131,7 +131,7 @@ speaks: - Cat understands: - - GalacticCommon + - TauCetiBasic - Cat - type: entity @@ -155,7 +155,7 @@ speaks: - Cat understands: - - GalacticCommon + - TauCetiBasic - Cat - type: entity @@ -229,8 +229,8 @@ - type: Strippable - type: UserInterface interfaces: - - key: enum.StrippingUiKey.Key - type: StrippableBoundUserInterface + enum.StrippingUiKey.Key: + type: StrippableBoundUserInterface - type: DamageStateVisuals states: Alive: @@ -292,8 +292,8 @@ - type: Strippable - type: UserInterface interfaces: - - key: enum.StrippingUiKey.Key - type: StrippableBoundUserInterface + enum.StrippingUiKey.Key: + type: StrippableBoundUserInterface - type: DamageStateVisuals states: Alive: @@ -310,7 +310,7 @@ speaks: - Dog understands: - - GalacticCommon + - TauCetiBasic - Dog - type: InteractionPopup successChance: 0.5 @@ -330,6 +330,7 @@ - type: StealTarget stealGroup: AnimalMcGriff - type: RandomBark + barkType: dog barkMultiplier: 1.3 - type: entity @@ -397,8 +398,8 @@ - type: Strippable - type: UserInterface interfaces: - - key: enum.StrippingUiKey.Key - type: StrippableBoundUserInterface + enum.StrippingUiKey.Key: + type: StrippableBoundUserInterface - type: DamageStateVisuals states: Alive: @@ -415,7 +416,7 @@ speaks: - Dog understands: - - GalacticCommon + - TauCetiBasic - Dog - type: InteractionPopup successChance: 0.7 @@ -435,6 +436,7 @@ - type: StealTarget stealGroup: AnimalWalter - type: RandomBark + barkType: dog barkMultiplier: 1.1 - type: entity @@ -559,7 +561,7 @@ interactFailureString: petting-failure-generic interactSuccessSpawn: EffectHearts interactSuccessSound: - path: /Audio/Animals/fox_squeak.ogg + collection: Fox - type: Butcherable spawned: - id: FoodMeat @@ -580,7 +582,7 @@ speaks: - Fox understands: - - GalacticCommon + - TauCetiBasic - Fox - type: entity @@ -633,7 +635,7 @@ speaks: - Mouse understands: - - GalacticCommon + - TauCetiBasic - Mouse - type: entity @@ -795,6 +797,9 @@ types: Blunt: 1 Caustic: 1 + - type: MultiHandedItem + - type: Item + size: Huge - type: SentienceTarget flavorKind: station-event-random-sentience-flavor-slime - type: MobPrice @@ -811,7 +816,7 @@ speaks: - Bubblish understands: - - GalacticCommon + - TauCetiBasic - Bubblish - type: entity @@ -851,7 +856,7 @@ speaks: - Monkey understands: - - GalacticCommon + - TauCetiBasic - Monkey - Kobold @@ -885,5 +890,5 @@ speaks: - Crab understands: - - GalacticCommon + - TauCetiBasic - Crab diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/regalrat.yml b/Resources/Prototypes/Entities/Mobs/NPCs/regalrat.yml index cf563989bf..f6a42dfb76 100644 --- a/Resources/Prototypes/Entities/Mobs/NPCs/regalrat.yml +++ b/Resources/Prototypes/Entities/Mobs/NPCs/regalrat.yml @@ -90,6 +90,8 @@ name: ghost-role-information-rat-king-name description: ghost-role-information-rat-king-description rules: ghost-role-information-rat-king-rules + raffle: + settings: default - type: GhostTakeoverAvailable - type: Tag tags: @@ -120,10 +122,10 @@ gender: male - type: LanguageKnowledge speaks: - - GalacticCommon + - TauCetiBasic - Mouse understands: - - GalacticCommon + - TauCetiBasic - Mouse - type: entity @@ -301,7 +303,7 @@ speaks: - Mouse understands: - - GalacticCommon + - TauCetiBasic - Mouse - type: FireVisuals sprite: Mobs/Effects/onfire.rsi diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/revenant.yml b/Resources/Prototypes/Entities/Mobs/NPCs/revenant.yml index 47ce0f9d49..c16816b5e4 100644 --- a/Resources/Prototypes/Entities/Mobs/NPCs/revenant.yml +++ b/Resources/Prototypes/Entities/Mobs/NPCs/revenant.yml @@ -60,6 +60,8 @@ name: ghost-role-information-revenant-name description: ghost-role-information-revenant-description rules: ghost-role-information-revenant-rules + raffle: + settings: default - type: GhostTakeoverAvailable - type: Revenant malfunctionWhitelist: @@ -79,8 +81,8 @@ softness: 1 - type: UserInterface interfaces: - - key: enum.StoreUiKey.Key - type: StoreBoundUserInterface + enum.StoreUiKey.Key: + type: StoreBoundUserInterface - type: Visibility layer: 2 #ghost vis layer - type: Store diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/silicon.yml b/Resources/Prototypes/Entities/Mobs/NPCs/silicon.yml index 90d9a5e5c9..2fea60ea1e 100644 --- a/Resources/Prototypes/Entities/Mobs/NPCs/silicon.yml +++ b/Resources/Prototypes/Entities/Mobs/NPCs/silicon.yml @@ -61,11 +61,11 @@ group: GenericNumber - type: Repairable doAfterDelay: 8 + fuelCost: 15 - type: Pullable - type: Tag tags: - DoorBumpOpener - - ShoesRequiredStepTriggerImmune - type: MobState allowedStates: - Alive @@ -106,12 +106,13 @@ - type: TypingIndicator proto: robot - type: ZombieImmune + - type: StepTriggerImmune - type: LanguageKnowledge speaks: - - GalacticCommon + - TauCetiBasic - RobotTalk understands: - - GalacticCommon + - TauCetiBasic - RobotTalk - type: PsionicInsulation @@ -164,6 +165,8 @@ makeSentient: true name: ghost-role-information-honkbot-name description: ghost-role-information-honkbot-description + raffle: + settings: default - type: GhostTakeoverAvailable - type: InteractionPopup interactSuccessString: petting-success-honkbot @@ -189,6 +192,8 @@ makeSentient: true name: ghost-role-information-jonkbot-name description: ghost-role-information-jonkbot-description + raffle: + settings: default - type: InteractionPopup interactSuccessSound: path: /Audio/Items/brokenbikehorn.ogg @@ -310,8 +315,8 @@ - type: Strippable - type: UserInterface interfaces: - - key: enum.StrippingUiKey.Key - type: StrippableBoundUserInterface + enum.StrippingUiKey.Key: + type: StrippableBoundUserInterface - type: Sprite layers: - map: ["enum.DamageStateVisualLayers.Base"] @@ -325,9 +330,69 @@ makeSentient: true name: ghost-role-information-mimebot-name description: ghost-role-information-mimebot-description + raffle: + settings: default - type: GhostTakeoverAvailable - type: InteractionPopup interactSuccessString: petting-success-mimebot interactFailureString: petting-failure-mimebot - type: Inventory templateId: head + +- type: entity + parent: MobSiliconBase + id: MobSupplyBot + name: supplybot + description: Delivers cargo! + components: + - type: Sprite + sprite: Mobs/Silicon/Bots/supplybot.rsi + layers: + - state: supplybot + - type: GhostRole + makeSentient: true + name: ghost-role-information-supplybot-name + description: ghost-role-information-supplybot-description + raffle: + settings: default + - type: GhostTakeoverAvailable + - type: Construction + graph: SupplyBot + node: bot + - type: Access + tags: + - Cargo + - Maintenance + - Salvage + - type: Dumpable + - type: Storage + maxItemSize: Huge + grid: + - 0,0,9,3 + - type: UserInterface + interfaces: + enum.StorageUiKey.Key: + type: StorageBoundUserInterface + - type: ContainerContainer + containers: + storagebase: !type:Container + ents: [] + - type: UnpoweredFlashlight + - type: PointLight + enabled: false + radius: 3.5 + softness: 2 + mask: /Textures/Effects/LightMasks/cone.png + autoRot: true + - type: FootstepModifier + footstepSoundCollection: + collection: FootstepBorg + - type: Tag + tags: + - DoorBumpOpener + - FootstepSound + - type: ActiveRadio + channels: + - Binary + - Common + - Supply diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/slimes.yml b/Resources/Prototypes/Entities/Mobs/NPCs/slimes.yml index fbf133a0f1..74bba2dec8 100644 --- a/Resources/Prototypes/Entities/Mobs/NPCs/slimes.yml +++ b/Resources/Prototypes/Entities/Mobs/NPCs/slimes.yml @@ -1,16 +1,10 @@ - type: entity name: basic slime - id: MobAdultSlimes + id: BaseMobAdultSlimes parent: [ SimpleMobBase, MobCombat ] abstract: true description: It looks so much like jelly. I wonder what it tastes like? components: - - type: NpcFactionMember - factions: - - SimpleNeutral - - type: HTN - rootTask: - task: SimpleHostileCompound - type: Sprite drawdepth: Mobs sprite: Mobs/Aliens/slimes.rsi @@ -44,6 +38,7 @@ - type: Tag tags: - FootstepSound + - DoorBumpOpener - type: Butcherable butcheringType: Knife spawned: @@ -99,6 +94,7 @@ prototype: Slimes requiredLegs: 1 - type: MeleeWeapon + altDisarm: false soundHit: path: /Audio/Weapons/punch3.ogg angle: 0 @@ -112,6 +108,19 @@ successChance: 0.5 interactSuccessString: petting-success-slimes interactFailureString: petting-failure-generic + - type: Speech + speechVerb: Slime + speechSounds: Slime + - type: TypingIndicator + proto: slime + +- type: entity + name: basic slime + id: MobAdultSlimes + parent: BaseMobAdultSlimes + abstract: true + description: It looks so much like jelly. I wonder what it tastes like? + components: - type: LanguageKnowledge speaks: - Bubblish @@ -122,12 +131,54 @@ makeSentient: true name: ghost-role-information-slimes-name description: ghost-role-information-slimes-description - rules: deltav-ghost-role-information-softantag-rules #DeltaV + rules: deltav-ghost-role-information-softantag-rules - type: Speech speechVerb: Slime speechSounds: Slime + allowedEmotes: ['Squish'] - type: TypingIndicator proto: slime + - type: NpcFactionMember + factions: + - SimpleNeutral + - type: HTN + rootTask: + task: SimpleHostileCompound + +- type: entity + name: geras + description: A geras of a slime - the name is ironic, isn't it? + id: MobSlimesGeras + parent: BaseMobAdultSlimes + noSpawn: true + components: + # they portable... + - type: MovementSpeedModifier + baseWalkSpeed: 3 + baseSprintSpeed: 5 # +.5 from normal movement speed + - type: MobThresholds + thresholds: + 0: Alive + 80: Dead # weak af tho + - type: NpcFactionMember + factions: + - NanoTrasen + - type: MultiHandedItem + - type: Item + size: Huge + - type: Sprite + color: "#FFFFFF55" + - type: MeleeWeapon + attackRate: 2 + damage: + types: + Blunt: 4 + - type: DamageStateVisuals + states: + Alive: + Base: blue_adult_slime + Dead: + Base: blue_adult_slime_dead - type: entity name: blue slime @@ -150,8 +201,6 @@ - type: NpcFactionMember factions: - SimpleHostile -# - type: GhostRole #DeltaV - all slimes neutral when ghost role -# description: ghost-role-information-angry-slimes-description - type: entity name: green slime diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/space.yml b/Resources/Prototypes/Entities/Mobs/NPCs/space.yml index adf3af93ea..4ea766c314 100644 --- a/Resources/Prototypes/Entities/Mobs/NPCs/space.yml +++ b/Resources/Prototypes/Entities/Mobs/NPCs/space.yml @@ -174,8 +174,8 @@ - type: Strippable - type: UserInterface interfaces: - - key: enum.StrippingUiKey.Key - type: StrippableBoundUserInterface + enum.StrippingUiKey.Key: + type: StrippableBoundUserInterface - type: entity id: MobKangarooSpaceSalvage @@ -269,6 +269,7 @@ - type: Speech speechVerb: Arachnid speechSounds: Arachnid + allowedEmotes: ['Click', 'Chitter'] - type: Vocal sounds: Male: UnisexArachnid @@ -276,6 +277,9 @@ Unsexed: UnisexArachnid - type: TypingIndicator proto: spider + - type: BloodSucker + webRequired: true + - type: Cocooner - type: entity id: MobSpiderSpaceSalvage diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/xeno.yml b/Resources/Prototypes/Entities/Mobs/NPCs/xeno.yml index d618e40713..04b767b8ae 100644 --- a/Resources/Prototypes/Entities/Mobs/NPCs/xeno.yml +++ b/Resources/Prototypes/Entities/Mobs/NPCs/xeno.yml @@ -58,13 +58,18 @@ layer: - MobLayer - type: MobState - allowedStates: - - Alive - - Dead + - type: Deathgasp + - type: MobStateActions + actions: + Critical: + - ActionCritSuccumb + - ActionCritFakeDeath + - ActionCritLastWords - type: MobThresholds thresholds: 0: Alive - 50: Dead + 50: Critical + 100: Dead - type: SlowOnDamage speedModifierThresholds: 25: 0.5 @@ -92,19 +97,22 @@ Dead: Base: dead - type: Puller + needsHands: false - type: Butcherable butcheringType: Spike spawned: - id: FoodMeatXeno amount: 5 - #- type: GhostRole # Delta V - Moves ghost role from parent to child - # allowMovement: true # Delta V - Moves ghost role from parent to child - # allowSpeech: true # Delta V - Moves ghost role from parent to child - # makeSentient: true # Delta V - Moves ghost role from parent to child - # name: ghost-role-information-xeno-name # Delta V - Moves ghost role from parent to child - # description: ghost-role-information-xeno-description # Delta V - Moves ghost role from parent to child - # rules: ghost-role-information-xeno-rules # Delta V - Moves ghost role from parent to child - # - type: GhostTakeoverAvailable # Delta V - Moves ghost role from parent to child + - type: GhostRole + allowMovement: true + allowSpeech: true + makeSentient: true + name: ghost-role-information-xeno-name + description: ghost-role-information-xeno-description + rules: ghost-role-information-xeno-rules + raffle: + settings: default + - type: GhostTakeoverAvailable - type: TypingIndicator proto: alien - type: Temperature @@ -121,8 +129,11 @@ molsPerSecondPerUnitMass: 0.0005 - type: Speech speechVerb: LargeMob - - type: Psionic #Nyano - Summary: makes psionic by default. + - type: Psionic removable: false + - type: InnatePsionicPowers + powersToAdd: + - TelepathyPower - type: LanguageKnowledge speaks: - Xeno @@ -144,7 +155,8 @@ - type: MobThresholds thresholds: 0: Alive - 100: Dead + 100: Critical + 150: Dead - type: Stamina critThreshold: 300 - type: SlowOnDamage @@ -177,7 +189,8 @@ - type: MobThresholds thresholds: 0: Alive - 80: Dead + 80: Critical + 130: Dead - type: SlowOnDamage speedModifierThresholds: 40: 0.7 @@ -214,7 +227,8 @@ - type: MobThresholds thresholds: 0: Alive - 300: Dead + 300: Critical + 350: Dead - type: SlowOnDamage speedModifierThresholds: 150: 0.7 @@ -239,10 +253,10 @@ - CannotSuicide - type: LanguageKnowledge speaks: - - GalacticCommon + - TauCetiBasic - Xeno understands: - - GalacticCommon + - TauCetiBasic - Xeno - type: entity @@ -260,7 +274,8 @@ - type: MobThresholds thresholds: 0: Alive - 100: Dead + 100: Critical + 150: Dead - type: MovementSpeedModifier baseSprintSpeed: 4 - type: MeleeWeapon @@ -299,7 +314,7 @@ - type: MeleeWeapon damage: groups: - Brute: 5 + Brute: 10 - type: Fixtures fixtures: fix1: @@ -321,6 +336,7 @@ drawdepth: Mobs sprite: Mobs/Aliens/Xenos/rouny.rsi offset: 0,0.6 + scale: 0.7, 0.7 - type: Butcherable butcheringType: Spike spawned: diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/xenopet.yml b/Resources/Prototypes/Entities/Mobs/NPCs/xenopet.yml new file mode 100644 index 0000000000..23108e521b --- /dev/null +++ b/Resources/Prototypes/Entities/Mobs/NPCs/xenopet.yml @@ -0,0 +1,534 @@ +- type: entity + name: Neutral Rouny + id: MobXenoNeutralRouny + parent: MobXenoRounyNPC + description: They mostly come at night. Mostly. + components: + - type: NpcFactionMember + factions: + - Passive + - type: PointLight + radius: 2 + energy: 1 + color: "#B85E5E" + - type: MovementAlwaysTouching + - type: GhostRole + name: ghost-role-information-friendlyxeno-name + description: ghost-role-information-friendlyxeno-description + rules: ghost-role-information-friendlyxeno-rules + - type: GhostTakeoverAvailable + - type: LanguageKnowledge + speaks: + - Xeno + understands: + - Xeno + - TauCetiBasic + +- type: entity + name: Neutral Praetorian + id: MobXenoNeutralPraetorian + parent: MobXenoPraetorianNPC + description: They mostly come at night. Mostly. + components: + - type: NpcFactionMember + factions: + - Passive + - type: PointLight + radius: 2 + energy: 1 + color: "#62B85E" + - type: GhostRole + name: ghost-role-information-friendlyxeno-name + description: ghost-role-information-friendlyxeno-description + rules: ghost-role-information-friendlyxeno-rules + - type: GhostTakeoverAvailable + - type: LanguageKnowledge + speaks: + - Xeno + understands: + - Xeno + - TauCetiBasic + +- type: entity + name: Neutral Drone + id: MobXenoNeutralDrone + parent: MobXenoDroneNPC + description: They mostly come at night. Mostly. + components: + - type: NpcFactionMember + factions: + - Passive + - type: PointLight + radius: 2 + energy: 1 + color: "#8B5EB8" + - type: GhostRole + name: ghost-role-information-friendlyxeno-name + description: ghost-role-information-friendlyxeno-description + rules: ghost-role-information-friendlyxeno-rules + - type: GhostTakeoverAvailable + - type: LanguageKnowledge + speaks: + - Xeno + understands: + - Xeno + - TauCetiBasic + +- type: entity + name: Neutral Ravager + id: MobXenoNeutralRavager + parent: MobXenoRavagerNPC + description: They mostly come at night. Mostly. + components: + - type: NpcFactionMember + factions: + - Passive + - type: PointLight + radius: 2 + energy: 1 + color: "#E3954D" + - type: GhostRole + name: ghost-role-information-friendlyxeno-name + description: ghost-role-information-friendlyxeno-description + rules: ghost-role-information-friendlyxeno-rules + - type: GhostTakeoverAvailable + - type: LanguageKnowledge + speaks: + - Xeno + understands: + - Xeno + - TauCetiBasic + +- type: inventoryTemplate + id: friendxeno + slots: + - name: id + slotTexture: id + slotFlags: IDCARD + slotGroup: SecondHotbar + stripTime: 6 + uiWindowPos: 2,1 + strippingWindowPos: 2,4 + displayName: ID + - name: head + slotTexture: head + slotFlags: HEAD + uiWindowPos: 1,2 + strippingWindowPos: 0,0 + displayName: Head + - name: mask + slotTexture: mask + slotFlags: MASK + uiWindowPos: 0,1 + strippingWindowPos: 1,1 + displayName: Mask + +- type: entity + name: Friend-Shaped + parent: MobXenoNeutralRouny + id: MobXenoFriendShaped + description: A very clearly friend-shaped Xeno. + components: + - type: NpcFactionMember + factions: + - PetsNT + - type: Tool + speed: 3 + qualities: + - Prying + - type: Sprite + drawdepth: Mobs + sprite: Mobs/Aliens/Xenos/rouny.rsi + scale: 0.5, 0.5 + - type: GhostRole + - type: GhostTakeoverAvailable + - type: Inventory + templateId: friendxeno + - type: IdExaminable + - type: InventorySlots + - type: Stripping + - type: Strippable + - type: UserInterface + interfaces: + enum.StrippingUiKey.Key: + type: StrippableBoundUserInterface + - type: Grammar + attributes: + proper: true + gender: male + - type: Body + prototype: Friendshaped + requiredLegs: 1 # TODO: More than 1 leg + - type: InteractionPopup + successChance: 0.5 + interactSuccessString: petting-success-reptile + interactFailureString: petting-failure-generic + interactSuccessSpawn: EffectHearts + interactSuccessSound: + path: /Audio/Animals/lizard_happy.ogg + +- type: entity + name: Patriach + parent: MobXenoNeutralPraetorian + id: MobXenoPatriarch + description: A not entirely clearly friend-shaped Xeno. + components: + - type: NpcFactionMember + factions: + - PetsNT + - type: Tool + speed: 3 + qualities: + - Prying + - type: Sprite + drawdepth: Mobs + sprite: Mobs/Animals/patriarch.rsi + layers: + - map: ["enum.DamageStateVisualLayers.Base"] + state: patriarch + - type: DamageStateVisuals + states: + Alive: + Base: patriarch + Critical: + Base: patriarch_crit + Dead: + Base: patriarch_dead + - type: Inventory + templateId: friendxeno + - type: IdExaminable + - type: InventorySlots + - type: Strippable + - type: UserInterface + interfaces: + enum.StrippingUiKey.Key: + type: StrippableBoundUserInterface + - type: Grammar + attributes: + proper: true + gender: male + - type: InteractionPopup + successChance: 0.5 + interactSuccessString: petting-success-reptile + interactFailureString: petting-failure-generic + interactSuccessSpawn: EffectHearts + interactSuccessSound: + path: /Audio/Animals/lizard_happy.ogg + +- type: entity + name: FXES + parent: MobXenoNeutralDrone + id: MobXenoFXES + description: A very clearly friend-shaped Xeno. + components: + - type: NpcFactionMember + factions: + - PetsNT + - type: Tool + speed: 3 + qualities: + - Prying + - type: Inventory + templateId: friendxeno + - type: IdExaminable + - type: InventorySlots + - type: Strippable + - type: UserInterface + interfaces: + enum.StrippingUiKey.Key: + type: StrippableBoundUserInterface + - type: Grammar + attributes: + proper: true + gender: male + - type: InteractionPopup + successChance: 0.5 + interactSuccessString: petting-success-reptile + interactFailureString: petting-failure-generic + interactSuccessSpawn: EffectHearts + interactSuccessSound: + path: /Audio/Animals/lizard_happy.ogg + +- type: entity + name: Hell-Shaped + parent: MobXenoNeutralRavager + id: MobXenoHellShaped + description: A very clearly friend-shaped Xeno. + components: + - type: NpcFactionMember + factions: + - PetsNT + - type: Tool + speed: 3 + qualities: + - Prying + - type: Inventory + templateId: friendxeno + - type: IdExaminable + - type: InventorySlots + - type: Strippable + - type: UserInterface + interfaces: + enum.StrippingUiKey.Key: + type: StrippableBoundUserInterface + - type: Grammar + attributes: + proper: true + gender: male + - type: InteractionPopup + successChance: 0.5 + interactSuccessString: petting-success-reptile + interactFailureString: petting-failure-generic + interactSuccessSpawn: EffectHearts + interactSuccessSound: + path: /Audio/Animals/lizard_happy.ogg + +- type: entity + name: FXE Subject 7355 + parent: MobXenoNeutralRavager + id: MobXenoSubjectTess + description: An extremely oddly coloured xeno, with glowing stripes. An odd mutation. + components: + - type: NpcFactionMember + factions: + - PetsNT + - type: Tool + speed: 3 + qualities: + - Prying + - type: Sprite + drawdepth: Mobs + sprite: Mobs/Animals/subject7355.rsi + layers: + - map: ["enum.DamageStateVisualLayers.Base"] + state: subject7355 + - map: [ "enum.DamageStateVisualLayers.BaseUnshaded" ] + state: glow + shader: unshaded + - type: PointLight + radius: 2 + energy: 1 + color: "#639fff" + - type: DamageStateVisuals + states: + Alive: + Base: subject7355 + Critical: + Base: subject7355_crit + Dead: + Base: subject7355_dead + - type: Inventory + templateId: friendxeno + - type: IdExaminable + - type: InventorySlots + - type: Strippable + - type: UserInterface + interfaces: + enum.StrippingUiKey.Key: + type: StrippableBoundUserInterface + - type: Grammar + attributes: + proper: true + gender: male + - type: InteractionPopup + successChance: 0.5 + interactSuccessString: petting-success-reptile + interactFailureString: petting-failure-generic + interactSuccessSpawn: EffectHearts + interactSuccessSound: + path: /Audio/Animals/lizard_happy.ogg + +- type: entity + id: neutralXenoVents + parent: BaseGameRule + noSpawn: true + components: + - type: StationEvent + startAnnouncement: true + earliestStart: 20 + reoccurrenceDelay: 12 + minimumPlayers: 1 + weight: 6 # Really weak compared to other critters + duration: 60 + - type: VentCrittersRule + entries: + - id: MobXenoNeutralRouny + prob: 0.0075 + - id: MobXenoNeutralDrone + prob: 0.0075 + - id: MobXenoNeutralPraetorian + prob: 0.0075 + - id: MobXenoNeutralRavager + prob: 0.0075 + +- type: entity + id: ArgocyteVents + parent: BaseGameRule + noSpawn: true + components: + - type: StationEvent + startAnnouncement: true + earliestStart: 20 + reoccurrenceDelay: 12 + minimumPlayers: 30 + weight: 6 # Really weak compared to other critters + duration: 60 + - type: VentCrittersRule + entries: + - id: MobArgocyteSlurva + prob: 0.003 + - id: MobArgocyteBarrier + prob: 0.003 + - id: MobArgocyteSkitter + prob: 0.003 + - id: MobArgocyteSwiper + prob: 0.003 + - id: MobArgocyteMolder + prob: 0.003 + - id: MobArgocytePouncer + prob: 0.003 + - id: MobArgocyteGlider + prob: 0.003 + - id: MobArgocyteHarvester + prob: 0.003 + - id: MobArgocyteCrawler + prob: 0.003 + - id: MobArgocyteEnforcer + prob: 0.003 + - id: MobArgocyteFounder + prob: 0.003 + - id: MobArgocyteLeviathing + prob: 0.0001 + +- type: entity + id: MeatVents + parent: BaseGameRule + noSpawn: true + components: + - type: StationEvent + startAnnouncement: true + earliestStart: 20 + reoccurrenceDelay: 12 + minimumPlayers: 20 + weight: 6 # Really weak compared to other critters + duration: 60 + - type: VentCrittersRule + entries: + - id: MobFleshJared + prob: 0.005 + - id: MobFleshGolem + prob: 0.005 + - id: MobFleshClamp + prob: 0.005 + - id: MobFleshLover + prob: 0.005 + - id: MobAbomination + prob: 0.005 + +- type: entity + id: TickVents + parent: BaseGameRule + noSpawn: true + components: + - type: StationEvent + startAnnouncement: true + earliestStart: 20 + reoccurrenceDelay: 12 + minimumPlayers: 1 + weight: 6 # Really weak compared to other critters + duration: 60 + - type: VentCrittersRule + entries: + - id: MobTick + prob: 0.01 + +- type: entity + id: CarpVents + parent: BaseGameRule + noSpawn: true + components: + - type: StationEvent + startAnnouncement: true + earliestStart: 20 + reoccurrenceDelay: 12 + minimumPlayers: 20 + weight: 6 # Really weak compared to other critters + duration: 60 + - type: VentCrittersRule + entries: + - id: MobCarp + prob: 0.01 + - id: MobCarpMagic + prob: 0.01 + - id: MobCarpHolo + prob: 0.002 + - id: MobCarpRainbow + prob: 0.01 + - id: MobShark + prob: 0.002 + - id: MobCarpDragon + prob: 0.01 + +- type: entity + id: SpaceVents + parent: BaseGameRule + noSpawn: true + components: + - type: StationEvent + startAnnouncement: true + earliestStart: 20 + reoccurrenceDelay: 12 + minimumPlayers: 20 + weight: 6 # Really weak compared to other critters + duration: 60 + - type: VentCrittersRule + entries: + - id: MobBearSpace + prob: 0.01 + - id: MobKangarooSpace + prob: 0.01 + - id: MobSpiderSpace + prob: 0.01 + - id: MobCobraSpace + prob: 0.01 + +- type: entity + id: LightVents + parent: BaseGameRule + noSpawn: true + components: + - type: StationEvent + startAnnouncement: true + earliestStart: 20 + reoccurrenceDelay: 12 + minimumPlayers: 20 + weight: 6 # Really weak compared to other critters + duration: 60 + - type: VentCrittersRule + entries: + - id: MobLivingLight + prob: 0.01 + - id: MobLuminousPerson + prob: 0.01 + - id: MobLuminousObject + prob: 0.01 + - id: MobLuminousEntity + prob: 0.01 + +- type: entity + name: Friendly Xeno spawner + id: friendlyxenoSpawner + parent: MarkerBase + components: + - type: Sprite + layers: + - state: green + - sprite: Mobs/Aliens/Xenos/drone.rsi + state: sleeping + - type: RandomSpawner + prototypes: + - MobXenoNeutralRouny + - MobXenoNeutralPraetorian + - MobXenoNeutralDrone + - MobXenoNeutralRavager + chance: 1 diff --git a/Resources/Prototypes/Entities/Mobs/Player/admin_ghost.yml b/Resources/Prototypes/Entities/Mobs/Player/admin_ghost.yml index d9d150e1b8..7a21e81b46 100644 --- a/Resources/Prototypes/Entities/Mobs/Player/admin_ghost.yml +++ b/Resources/Prototypes/Entities/Mobs/Player/admin_ghost.yml @@ -28,6 +28,8 @@ - type: GhostHearing - type: Hands - type: Puller + pushAcceleration: 1000000 # Will still be capped in max speed + maxPushRange: 20 - type: CombatMode - type: Physics ignorePaused: true @@ -43,32 +45,32 @@ - CentralCommand - type: UserInterface interfaces: - - key: enum.SolarControlConsoleUiKey.Key + enum.SolarControlConsoleUiKey.Key: type: SolarControlConsoleBoundUserInterface - - key: enum.CommunicationsConsoleUiKey.Key + enum.CommunicationsConsoleUiKey.Key: type: CommunicationsConsoleBoundUserInterface - - key: enum.RadarConsoleUiKey.Key + enum.RadarConsoleUiKey.Key: type: RadarConsoleBoundUserInterface - - key: enum.CargoConsoleUiKey.Orders + enum.CargoConsoleUiKey.Orders: type: CargoOrderConsoleBoundUserInterface - - key: enum.CrewMonitoringUIKey.Key + enum.CrewMonitoringUIKey.Key: type: CrewMonitoringBoundUserInterface - - key: enum.GeneralStationRecordConsoleKey.Key - # who the fuck named this bruh + enum.GeneralStationRecordConsoleKey.Key: + # who the fuck named this bruh type: GeneralStationRecordConsoleBoundUserInterface - type: IntrinsicUI uis: - - key: enum.SolarControlConsoleUiKey.Key + enum.SolarControlConsoleUiKey.Key: toggleAction: ActionAGhostShowSolar - - key: enum.CommunicationsConsoleUiKey.Key + enum.CommunicationsConsoleUiKey.Key: toggleAction: ActionAGhostShowCommunications - - key: enum.RadarConsoleUiKey.Key + enum.RadarConsoleUiKey.Key: toggleAction: ActionAGhostShowRadar - - key: enum.CargoConsoleUiKey.Orders + enum.CargoConsoleUiKey.Orders: toggleAction: ActionAGhostShowCargo - - key: enum.CrewMonitoringUIKey.Key + enum.CrewMonitoringUIKey.Key: toggleAction: ActionAGhostShowCrewMonitoring - - key: enum.GeneralStationRecordConsoleKey.Key + enum.GeneralStationRecordConsoleKey.Key: toggleAction: ActionAGhostShowStationRecords - type: SolarControlConsole # look ma i AM the computer! - type: CommunicationsConsole diff --git a/Resources/Prototypes/Entities/Mobs/Player/dragon.yml b/Resources/Prototypes/Entities/Mobs/Player/dragon.yml index 0eda8ae9d7..cb9dc1c911 100644 --- a/Resources/Prototypes/Entities/Mobs/Player/dragon.yml +++ b/Resources/Prototypes/Entities/Mobs/Player/dragon.yml @@ -14,6 +14,8 @@ makeSentient: true name: ghost-role-information-space-dragon-name description: ghost-role-information-space-dragon-description + raffle: + settings: default - type: GhostTakeoverAvailable - type: HTN rootTask: @@ -89,6 +91,12 @@ speedModifierThresholds: 250: 0.7 400: 0.5 + # disable taking damage from fire, since its a fire breathing dragon + - type: Flammable + damage: + types: {} + - type: Temperature + heatDamageThreshold: 800 - type: Metabolizer solutionOnBody: false updateInterval: 0.25 @@ -139,10 +147,33 @@ spawnRiftAction: ActionSpawnRift - type: GenericAntag rule: Dragon + - type: ActionGun + action: ActionDragonsBreath + gunProto: DragonsBreathGun - type: GuideHelp guides: - MinorAntagonists +- type: entity + noSpawn: true + id: DragonsBreathGun + name: dragon's lung + description: For dragon's breathing + components: + - type: RechargeBasicEntityAmmo + rechargeCooldown: 5 + rechargeSound: + path: /Audio/Animals/space_dragon_roar.ogg + - type: BasicEntityAmmoProvider + proto: ProjectileDragonsBreath + capacity: 1 + count: 1 + - type: Gun + soundGunshot: + path: /Audio/Animals/space_dragon_roar.ogg + soundEmpty: null + projectileSpeed: 5 + - type: entity parent: BaseMobDragon id: MobDragonDungeon @@ -150,6 +181,8 @@ components: - type: GhostRole description: ghost-role-information-space-dragon-dungeon-description + raffle: + settings: default - type: SlowOnDamage speedModifierThresholds: 100: 0.7 @@ -179,6 +212,7 @@ state: icon event: !type:DragonSpawnRiftActionEvent useDelay: 1 + priority: 3 - type: entity id: ActionDevour @@ -190,3 +224,18 @@ icon: { sprite : Interface/Actions/devour.rsi, state: icon } iconOn: { sprite : Interface/Actions/devour.rsi, state: icon-on } event: !type:DevourActionEvent + priority: 1 + +- type: entity + noSpawn: true + id: ActionDragonsBreath + name: "[color=orange]Dragon's Breath[/color]" + description: Spew out flames at anyone foolish enough to attack you! + components: + - type: WorldTargetAction + # TODO: actual sprite + icon: { sprite : Objects/Weapons/Guns/Projectiles/magic.rsi, state: fireball } + event: !type:ActionGunShootEvent + priority: 2 + checkCanAccess: false + range: 0 diff --git a/Resources/Prototypes/Entities/Mobs/Player/familiars.yml b/Resources/Prototypes/Entities/Mobs/Player/familiars.yml index ab479e0332..87166f13a3 100644 --- a/Resources/Prototypes/Entities/Mobs/Player/familiars.yml +++ b/Resources/Prototypes/Entities/Mobs/Player/familiars.yml @@ -56,6 +56,8 @@ name: ghost-role-information-cerberus-name description: ghost-role-information-cerberus-description rules: ghost-role-information-cerberus-rules + raffle: + settings: default - type: GhostTakeoverAvailable - type: MeleeWeapon altDisarm: false diff --git a/Resources/Prototypes/Entities/Mobs/Player/guardian.yml b/Resources/Prototypes/Entities/Mobs/Player/guardian.yml index 03253a79b3..6d90ac3ffe 100644 --- a/Resources/Prototypes/Entities/Mobs/Player/guardian.yml +++ b/Resources/Prototypes/Entities/Mobs/Player/guardian.yml @@ -13,6 +13,8 @@ makeSentient: true name: ghost-role-information-guardian-name description: ghost-role-information-guardian-description + raffle: + settings: default - type: GhostTakeoverAvailable - type: Input context: "human" @@ -95,8 +97,8 @@ - type: MeleeSpeech - type: UserInterface interfaces: - - key: enum.MeleeSpeechUiKey.Key - type: MeleeSpeechBoundUserInterface + enum.MeleeSpeechUiKey.Key: + type: MeleeSpeechBoundUserInterface - type: Actions - type: Guardian - type: Tag @@ -116,6 +118,8 @@ makeSentient: true name: ghost-role-information-holoparasite-name description: ghost-role-information-holoparasite-description + raffle: + settings: default - type: GhostTakeoverAvailable - type: NameIdentifier group: Holoparasite @@ -146,6 +150,8 @@ makeSentient: true name: ghost-role-information-ifrit-name description: ghost-role-information-ifrit-description + raffle: + settings: default - type: GhostTakeoverAvailable - type: RandomSprite available: @@ -177,6 +183,8 @@ makeSentient: true name: ghost-role-information-holoclown-name description: ghost-role-information-holoclown-description + raffle: + settings: default - type: GhostTakeoverAvailable - type: NameIdentifier group: Holoparasite diff --git a/Resources/Prototypes/Entities/Mobs/Player/humanoid.yml b/Resources/Prototypes/Entities/Mobs/Player/humanoid.yml index 956e6f1260..e96633dde8 100644 --- a/Resources/Prototypes/Entities/Mobs/Player/humanoid.yml +++ b/Resources/Prototypes/Entities/Mobs/Player/humanoid.yml @@ -26,6 +26,8 @@ - type: GhostRole name: ghost-role-information-Death-Squad-name description: ghost-role-information-Death-Squad-description + raffle: + settings: short - type: GhostTakeoverAvailable - type: Loadout prototypes: [ DeathSquadGear ] @@ -62,6 +64,8 @@ - type: GhostRole name: ghost-role-information-ert-leader-name description: ghost-role-information-ert-leader-description + raffle: + settings: short - type: GhostTakeoverAvailable - type: Loadout prototypes: [ ERTLeaderGear ] @@ -92,6 +96,8 @@ - type: GhostRole name: ghost-role-information-ert-leader-name description: ghost-role-information-ert-leader-description + raffle: + settings: short - type: GhostTakeoverAvailable - type: Loadout prototypes: [ ERTLeaderGearEVA ] @@ -114,6 +120,8 @@ - type: GhostRole name: ghost-role-information-ert-leader-name description: ghost-role-information-ert-leader-description + raffle: + settings: short - type: GhostTakeoverAvailable - type: Loadout prototypes: [ ERTLeaderGearEVALecter ] @@ -145,6 +153,8 @@ - type: GhostRole name: ghost-role-information-ert-chaplain-name description: ghost-role-information-ert-chaplain-description + raffle: + settings: short - type: GhostTakeoverAvailable - type: RandomMetadata nameSegments: @@ -174,6 +184,8 @@ - type: GhostRole name: ghost-role-information-ert-chaplain-name description: ghost-role-information-ert-chaplain-description + raffle: + settings: short - type: GhostTakeoverAvailable - type: Loadout prototypes: [ ERTChaplainGearEVA ] @@ -205,6 +217,8 @@ - type: GhostRole name: ghost-role-information-ert-janitor-name description: ghost-role-information-ert-janitor-description + raffle: + settings: short - type: GhostTakeoverAvailable - type: RandomMetadata nameSegments: @@ -234,6 +248,8 @@ - type: GhostRole name: ghost-role-information-ert-janitor-name description: ghost-role-information-ert-janitor-description + raffle: + settings: short - type: GhostTakeoverAvailable - type: Loadout prototypes: [ ERTJanitorGearEVA ] @@ -265,6 +281,8 @@ - type: GhostRole name: ghost-role-information-ert-engineer-name description: ghost-role-information-ert-engineer-description + raffle: + settings: short - type: GhostTakeoverAvailable - type: RandomMetadata nameSegments: @@ -294,6 +312,8 @@ - type: GhostRole name: ghost-role-information-ert-engineer-name description: ghost-role-information-ert-engineer-description + raffle: + settings: short - type: GhostTakeoverAvailable - type: Loadout prototypes: [ ERTEngineerGearEVA ] @@ -325,6 +345,8 @@ - type: GhostRole name: ghost-role-information-ert-security-name description: ghost-role-information-ert-security-description + raffle: + settings: short - type: GhostTakeoverAvailable - type: RandomMetadata nameSegments: @@ -354,6 +376,8 @@ - type: GhostRole name: ghost-role-information-ert-security-name description: ghost-role-information-ert-security-description + raffle: + settings: short - type: GhostTakeoverAvailable - type: Loadout prototypes: [ ERTSecurityGearEVA ] @@ -375,6 +399,8 @@ - type: GhostRole name: ghost-role-information-ert-security-name description: ghost-role-information-ert-security-description + raffle: + settings: short - type: GhostTakeoverAvailable - type: Loadout prototypes: [ ERTSecurityGearEVALecter ] @@ -406,6 +432,8 @@ - type: GhostRole name: ghost-role-information-ert-medical-name description: ghost-role-information-ert-medical-description + raffle: + settings: short - type: GhostTakeoverAvailable - type: RandomMetadata nameSegments: @@ -435,6 +463,8 @@ - type: GhostRole name: ghost-role-information-ert-medical-name description: ghost-role-information-ert-medical-description + raffle: + settings: short - type: GhostTakeoverAvailable - type: Loadout prototypes: [ ERTMedicalGearEVA ] @@ -463,6 +493,8 @@ - type: GhostRole name: ghost-role-information-cburn-agent-name description: ghost-role-information-cburn-agent-description + raffle: + settings: short - type: GhostTakeoverAvailable - type: RandomMetadata nameSegments: @@ -489,6 +521,8 @@ - type: GhostRole name: ghost-role-information-centcom-official-name description: ghost-role-information-centcom-official-description + raffle: + settings: default - type: GhostTakeoverAvailable - type: Loadout prototypes: [ CentcomGear ] @@ -553,5 +587,311 @@ - type: GhostRole name: ghost-role-information-cluwne-name description: ghost-role-information-cluwne-description + raffle: + settings: default - type: GhostTakeoverAvailable - type: Cluwne + +## Lost Cargo technician + +- type: entity + name: lost cargo technician spawner + id: LostCargoTechnicianSpawner + parent: MarkerBase + components: + - type: Sprite + layers: + - state: red + - sprite: Objects/Tools/appraisal-tool.rsi + state: icon + - type: RandomSpawner + prototypes: + - RandomHumanoidLostCargoTechnician + chance: 1 + +- type: entity + id: RandomHumanoidLostCargoTechnician + name: lost cargo technician ghost role + components: + - type: Sprite + sprite: Objects/Tools/appraisal-tool.rsi + state: icon + - type: RandomHumanoidSpawner + settings: LostCargoTechnician + +- type: randomHumanoidSettings + id: LostCargoTechnician + randomizeName: false + components: + - type: GhostRole + name: ghost-role-information-lost-cargo-technical-name + description: ghost-role-information-lost-cargo-technical-description + rules: ghost-role-information-lost-cargo-technical-rules + raffle: + settings: short + - type: GhostTakeoverAvailable + - type: Loadout + prototypes: [ CargoTechGear ] + - type: RandomMetadata + nameSegments: + - names_first + - names_last + +# Clown troupe + +- type: entity + name: clown troupe spawner + id: ClownTroupeSpawner + parent: MarkerBase + components: + - type: Sprite + layers: + - state: red + - sprite: Objects/Fun/bikehorn.rsi + state: icon + - type: RandomSpawner + prototypes: + - RandomHumanoidClownTroupe + rarePrototypes: + - RandomHumanoidClownTroupeBanana + rareChance: 0.3 + +- type: entity + id: RandomHumanoidClownTroupe + name: clown troupe ghost role + components: + - type: Sprite + sprite: Objects/Tools/appraisal-tool.rsi + state: icon + - type: RandomHumanoidSpawner + settings: ClownTroupe + +- type: entity + id: RandomHumanoidClownTroupeBanana + name: banana clown troupe + parent: RandomHumanoidClownTroupe + components: + - type: RandomHumanoidSpawner + settings: ClownTroupeBanana + +- type: randomHumanoidSettings + id: ClownTroupe + randomizeName: false + components: + - type: GhostRole + name: ghost-role-information-clown-troupe-name + description: ghost-role-information-clown-troupe-description + rules: ghost-role-information-clown-troupe-rules + raffle: + settings: short + - type: GhostTakeoverAvailable + - type: Loadout + prototypes: [ ClownGear ] + - type: RandomMetadata + nameSegments: + - names_clown + +- type: randomHumanoidSettings + id: ClownTroupeBanana + randomizeName: false + components: + - type: GhostRole + name: ghost-role-information-clown-troupe-name + description: ghost-role-information-clown-troupe-description + rules: ghost-role-information-clown-troupe-rules + - type: GhostTakeoverAvailable + - type: Loadout + prototypes: [ BananaClown ] + - type: RandomMetadata + nameSegments: + - names_clown + +# Traveling exotic chef + +- type: entity + name: traveling chef spawner + id: TravelingChefSpawner + parent: MarkerBase + components: + - type: Sprite + layers: + - state: red + - sprite: Objects/Weapons/Melee/kitchen_knife.rsi + state: icon + - type: RandomSpawner + prototypes: + - RandomHumanoidTravelingChef + +- type: entity + id: RandomHumanoidTravelingChef + name: traveling chef ghost role + components: + - type: Sprite + sprite: Objects/Tools/appraisal-tool.rsi + state: icon + - type: RandomHumanoidSpawner + settings: TravelingChef + +- type: randomHumanoidSettings + id: TravelingChef + randomizeName: false + components: + - type: GhostRole + name: ghost-role-information-traveling-chef-name + description: ghost-role-information-traveling-chef-description + rules: ghost-role-information-traveling-chef-rules + raffle: + settings: short + - type: GhostTakeoverAvailable + - type: Loadout + prototypes: [ ChefGear ] + - type: RandomMetadata + nameSegments: + - names_first + - names_last + +# Disaster victim + +- type: entity + name: disaster victim spawner + id: DisasterVictimSpawner + parent: MarkerBase + components: + - type: Sprite + layers: + - state: red + - sprite: Clothing/OuterClothing/Hardsuits/basic.rsi + state: icon + - type: RandomSpawner + prototypes: + - RandomHumanoidDisasterVictimRD + - RandomHumanoidDisasterVictimCMO + - RandomHumanoidDisasterVictimCaptain + - MobSkeletonCloset + +- type: entity + id: RandomHumanoidDisasterVictimRD + name: disaster victim RD ghost role + components: + - type: Sprite + sprite: Clothing/OuterClothing/Hardsuits/basic.rsi + state: icon + - type: RandomHumanoidSpawner + settings: DisasterVictimResearchDirector + +- type: entity + id: RandomHumanoidDisasterVictimCMO + parent: RandomHumanoidDisasterVictimRD + name: disaster victim CMO ghost role + components: + - type: RandomHumanoidSpawner + settings: DisasterVictimCMO + +- type: entity + id: RandomHumanoidDisasterVictimCaptain + parent: RandomHumanoidDisasterVictimRD + name: disaster victim Captain ghost role + components: + - type: RandomHumanoidSpawner + settings: DisasterVictimCaptain + +- type: randomHumanoidSettings + id: DisasterVictimResearchDirector + randomizeName: false + components: + - type: GhostRole + name: ghost-role-information-disaster-victim-name + description: ghost-role-information-disaster-victim-description + rules: ghost-role-information-disaster-victim-rules + raffle: + settings: default + - type: GhostTakeoverAvailable + - type: Loadout + prototypes: [ ResearchDirectorGear ] + - type: RandomMetadata + nameSegments: + - names_first + - names_last + +- type: randomHumanoidSettings + id: DisasterVictimCMO + randomizeName: false + components: + - type: GhostRole + name: ghost-role-information-disaster-victim-name + description: ghost-role-information-disaster-victim-description + rules: ghost-role-information-disaster-victim-rules + raffle: + settings: default + - type: GhostTakeoverAvailable + - type: Loadout + prototypes: [ CMOGear ] + - type: RandomMetadata + nameSegments: + - names_first + - names_last + +- type: randomHumanoidSettings + id: DisasterVictimCaptain + randomizeName: false + components: + - type: GhostRole + name: ghost-role-information-disaster-victim-name + description: ghost-role-information-disaster-victim-description + rules: ghost-role-information-disaster-victim-rules + raffle: + settings: default + - type: GhostTakeoverAvailable + - type: Loadout + prototypes: [ CaptainGear ] + - type: RandomMetadata + nameSegments: + - names_first + - names_last + +# Syndie Disaster Victim + +- type: entity + name: syndie disaster victim spawner + id: SyndieDisasterVictimSpawner + parent: MarkerBase + components: + - type: Sprite + layers: + - state: red + - sprite: Structures/Decoration/banner.rsi + state: banner_syndicate + - type: RandomSpawner + prototypes: + - RandomHumanoidSyndieDisasterVictim + +- type: entity + id: RandomHumanoidSyndieDisasterVictim + name: syndie disaster victim ghost role + components: + - type: Sprite + sprite: Structures/Decoration/banner.rsi + state: banner_syndicate + - type: RandomHumanoidSpawner + settings: SyndieDisasterVictim + +- type: randomHumanoidSettings + id: SyndieDisasterVictim + randomizeName: false + components: + - type: NpcFactionMember + factions: + - Syndicate + - type: GhostRole + name: ghost-role-information-syndie-disaster-victim-name + description: ghost-role-information-syndie-disaster-victim-description + rules: ghost-role-information-syndie-disaster-victim-rules + raffle: + settings: short + - type: GhostTakeoverAvailable + - type: Loadout + prototypes: [ SyndicateOperativeGearCivilian ] + - type: RandomMetadata + nameSegments: + - names_first + - names_last diff --git a/Resources/Prototypes/Entities/Mobs/Player/ipc.yml b/Resources/Prototypes/Entities/Mobs/Player/ipc.yml index c69b40c1f8..85aec21ac6 100644 --- a/Resources/Prototypes/Entities/Mobs/Player/ipc.yml +++ b/Resources/Prototypes/Entities/Mobs/Player/ipc.yml @@ -28,11 +28,6 @@ # Por algum motivo esse componente é bem bugado, então o "LockTime" é quem diz o tempo de tudo enquanto o unlock só está servindo como um bool (???) lockTime: 5 unlockTime: 5 - - type: InteractionPopup - successChance: 1 - interactSuccessString: hugging-success-generic - interactSuccessSound: /Audio/Effects/thudswoosh.ogg - messagePerceivedByOthers: hugging-success-generic-others - type: NpcFactionMember factions: - NanoTrasen @@ -101,20 +96,32 @@ - type: CanHostGuardian - type: LanguageKnowledge speaks: - - GalacticCommon + - TauCetiBasic - RobotTalk understands: - - GalacticCommon + - TauCetiBasic - RobotTalk - type: WeldingHealable - type: PsionicInsulation - type: OfferItem - type: LayingDown - type: Carriable - - type: StepTriggerImmune #WD EDIT + - type: StepTriggerImmune whitelist: types: - Shard + - type: Fixtures + fixtures: # TODO: This needs a second fixture just for mob collisions. + fix1: + shape: + !type:PhysShapeCircle + radius: 0.35 + density: 185 + restitution: 0.0 + mask: + - MobMask + layer: + - MobLayer - type: entity save: false diff --git a/Resources/Prototypes/Entities/Mobs/Player/reptilian.yml b/Resources/Prototypes/Entities/Mobs/Player/reptilian.yml index b9f265e0bc..b332f573fb 100644 --- a/Resources/Prototypes/Entities/Mobs/Player/reptilian.yml +++ b/Resources/Prototypes/Entities/Mobs/Player/reptilian.yml @@ -1,6 +1,7 @@ - type: entity save: false - name: Urisst' Mzhand + name: Urist McScales + suffix: Urisst' Mzhand parent: BaseMobReptilian id: MobReptilian diff --git a/Resources/Prototypes/Entities/Mobs/Player/silicon_base.yml b/Resources/Prototypes/Entities/Mobs/Player/silicon_base.yml index 0b122df1c8..a3879c98ce 100644 --- a/Resources/Prototypes/Entities/Mobs/Player/silicon_base.yml +++ b/Resources/Prototypes/Entities/Mobs/Player/silicon_base.yml @@ -166,7 +166,6 @@ # damage: # types: # Blunt: 0.28 #per second, scales with pressure and other constants. - atmosTemperatureTransferEfficiency: 0.4 - type: Identity # soundHit: # path: /Audio/Effects/metalbreak.ogg @@ -202,11 +201,11 @@ - type: Strippable - type: UserInterface interfaces: - - key: enum.VoiceMaskUIKey.Key + enum.VoiceMaskUIKey.Key: type: VoiceMaskBoundUserInterface - - key: enum.HumanoidMarkingModifierKey.Key + enum.HumanoidMarkingModifierKey.Key: type: HumanoidMarkingModifierBoundUserInterface - - key: enum.StrippingUiKey.Key + enum.StrippingUiKey.Key: type: StrippableBoundUserInterface - type: Emoting - type: Grammar diff --git a/Resources/Prototypes/Entities/Mobs/Player/skeleton.yml b/Resources/Prototypes/Entities/Mobs/Player/skeleton.yml index 5c2a88c106..bb77cefad5 100644 --- a/Resources/Prototypes/Entities/Mobs/Player/skeleton.yml +++ b/Resources/Prototypes/Entities/Mobs/Player/skeleton.yml @@ -11,6 +11,8 @@ - type: GhostRole name: ghost-role-information-skeleton-pirate-name description: ghost-role-information-skeleton-pirate-description + raffle: + settings: default - type: GhostTakeoverAvailable - type: Loadout prototypes: [PirateGear] @@ -25,6 +27,8 @@ - type: GhostRole name: ghost-role-information-skeleton-biker-name description: ghost-role-information-skeleton-biker-description + raffle: + settings: default - type: GhostTakeoverAvailable - type: Loadout prototypes: [SkeletonBiker] @@ -38,6 +42,8 @@ - type: GhostRole name: ghost-role-information-closet-skeleton-name description: ghost-role-information-closet-skeleton-description + raffle: + settings: default - type: GhostTakeoverAvailable - type: Loadout prototypes: [LimitedPassengerGear] diff --git a/Resources/Prototypes/Entities/Mobs/Player/terminator.yml b/Resources/Prototypes/Entities/Mobs/Player/terminator.yml deleted file mode 100644 index 663838e01a..0000000000 --- a/Resources/Prototypes/Entities/Mobs/Player/terminator.yml +++ /dev/null @@ -1,203 +0,0 @@ -# stuff common to flesh and endoskeleton -- type: entity - abstract: true - id: MobTerminatorBase - components: - - type: ZombieImmune # yeah no - - type: FlashImmunity # no brain to brainwash, eyes are robotic - -- type: entity - parent: [MobHuman, MobTerminatorBase] - id: MobHumanTerminator - # uses random name generator dont worry - name: exterminator - components: - - type: Terminator - - type: GenericAntag - rule: Exterminator - # reduced barotrauma damage - - type: Barotrauma - damage: - types: - Blunt: 0.1 - # 4x stamina, faster recovery - - type: Stamina - decay: 6 - cooldown: 1 - critThreshold: 400 - # immune to space drugs, pax, temporary blindness - - type: StatusEffects - allowed: - - Stun - - KnockedDown - - SlowedDown - - Stutter - - Electrocution - - Drunk - - SlurredSpeech - - RatvarianLanguage - - PressureImmunity - - Muted - - ForcedSleep - - StaminaModifier - - type: MobState - allowedStates: - - Alive - - Dead - # endoskeleton need it - - type: TransferMindOnGib - - type: MobThresholds - thresholds: - 0: Alive - # used for health display its not possible to actually fall into crit - 200: Dead - # fire!!!! - - type: Flammable - damage: - types: - Heat: 6.0 - # slightly wider thresholds - - type: Temperature - heatDamageThreshold: 390 - coldDamageThreshold: 240 - # take terminator flesh damage - - type: Damageable - damageModifierSet: CyberneticFlesh - # only organ is an endoskeleton, which is transferred when flesh dies - - type: Body - prototype: TerminatorFlesh - # endoskeleton transformation when either you would get burned to crit or killed by any damage - # you will become an endoskeleton as your last chance to kill the target - - type: Destructible - thresholds: - # the burn trigger is first incase of a bombing or nuking, it might well do over 200 damage but 100 heat is more important - - trigger: - !type:DamageTypeTrigger - damageType: Heat - damage: 100 - behaviors: - - !type:PopupBehavior - popup: terminator-endoskeleton-burn-popup - popupType: LargeCaution - - !type:GibBehavior - - trigger: - !type:DamageTrigger - damage: 200 - behaviors: - - !type:PopupBehavior - popup: terminator-endoskeleton-gib-popup - popupType: LargeCaution - - !type:GibBehavior - # faster than humans when damaged - - type: SlowOnDamage - speedModifierThresholds: - 70: 0.8 - 90: 0.6 - # arnold is very strong - - type: MeleeWeapon - damage: - types: - Blunt: 10 - Structural: 10 - - type: RandomHumanoidAppearance - - type: Tag - tags: - - CanPilot - - FootstepSound - - DoorBumpOpener - - Unimplantable # no brain to mindshield, no organic body to implant into - -- type: entity - parent: - - BaseMob - - MobCombat - - MobDamageable - - MobSiliconBase - - MobTerminatorBase - id: MobTerminatorEndoskeleton - # you are now valid - name: nt-800 "exterminator" endoskeleton - description: The inner powerhouse of Susnet's infiltrator androids. Ridiculously hard alloy on the inside, unassuming flesh on the outside. - components: - - type: HumanoidAppearance - species: Terminator - - type: MovementSpeedModifier - baseWalkSpeed: 1.5 - baseSprintSpeed: 3.0 - - type: Sprite - sprite: Mobs/Species/Terminator/parts.rsi - - type: Fixtures - fixtures: - fix1: - shape: - !type:PhysShapeCircle - radius: 0.35 - # he heavy - density: 500 - mask: - - MobMask - layer: - - MobLayer - - type: MobThresholds - thresholds: - 0: Alive - # gibbed at 200 so cant go crit - 200: Dead - # incase some weird stuff happens and the crew adopts a terminator - - type: Repairable - doAfterDelay: 15 - allowSelfRepair: false - - type: Body - prototype: TerminatorEndoskeleton - # lets it sit in the terminator flesh's brain slot - - type: Organ - - type: Brain - - type: TypingIndicator - proto: robot # beep boop borp - - type: Speech - speechSounds: Pai - - type: Damageable - damageModifierSet: Cybernetic - - type: Destructible - thresholds: - - trigger: - !type:DamageTrigger - damage: 200 - behaviors: - - !type:PlaySoundBehavior - # endoSKELETON - sound: /Audio/Effects/bone_rattle.ogg - # a keepsake or a gift for cargo - - !type:SpawnEntitiesBehavior - spawn: - HeadTerminator: - min: 1 - max: 1 - - !type:DoActsBehavior - acts: [ "Destruction" ] - # for fire spreading around, the endoskeleton cannot burn - - type: Flammable - fireSpread: true - canResistFire: true - damage: - types: - Heat: 0 - # now his only weapon, but it is stronger - - type: MeleeWeapon - damage: - types: - Blunt: 15 - Structural: 5 - - type: Puller - needsHands: false - - type: Prying - pryPowered: true - force: true - - type: Tag - tags: - - DoorBumpOpener - - ShoesRequiredStepTriggerImmune - # let mind transfer on gib work - - MindTransferTarget - # its just metal so no implants - - Unimplantable diff --git a/Resources/Prototypes/Entities/Mobs/Player/vox.yml b/Resources/Prototypes/Entities/Mobs/Player/vox.yml index de1e3da2be..e7ad39d731 100644 --- a/Resources/Prototypes/Entities/Mobs/Player/vox.yml +++ b/Resources/Prototypes/Entities/Mobs/Player/vox.yml @@ -1,5 +1,5 @@ - type: entity save: false - name: Vox + name: Urist McVox parent: BaseMobVox - id: MobVox + id: MobVox \ No newline at end of file diff --git a/Resources/Prototypes/Entities/Mobs/Species/arachne.yml b/Resources/Prototypes/Entities/Mobs/Species/arachne.yml index 2f6437dc14..24ebafd91d 100644 --- a/Resources/Prototypes/Entities/Mobs/Species/arachne.yml +++ b/Resources/Prototypes/Entities/Mobs/Species/arachne.yml @@ -104,15 +104,15 @@ - type: Tag tags: - CanPilot - - ShoesRequiredStepTriggerImmune - DoorBumpOpener + - type: StepTriggerImmune - type: Bloodstream bloodReagent: DemonsBlood + bloodRegenerationThirst: 4 # 1 unit of demon's blood satiates 4 thirst - type: BloodSucker webRequired: true - - type: Arachne + - type: Cocooner - type: DamageVisuals - thresholds: [ 20, 40, 100 ] targetLayers: - "enum.HumanoidVisualLayers.Chest" - "enum.HumanoidVisualLayers.Head" diff --git a/Resources/Prototypes/Entities/Mobs/Species/arachnid.yml b/Resources/Prototypes/Entities/Mobs/Species/arachnid.yml index 90bc2a711a..b5c450ba1d 100644 --- a/Resources/Prototypes/Entities/Mobs/Species/arachnid.yml +++ b/Resources/Prototypes/Entities/Mobs/Species/arachnid.yml @@ -44,6 +44,9 @@ methods: [Touch] effects: - !type:WashCreamPieReaction + - type: BloodSucker + webRequired: true + - type: Cocooner # Damage (Self) - type: Bloodstream bloodReagent: CopperBlood @@ -64,6 +67,7 @@ - type: Speech speechVerb: Arachnid speechSounds: Arachnid + allowedEmotes: ['Click', 'Chitter'] - type: Vocal sounds: Male: UnisexArachnid diff --git a/Resources/Prototypes/Entities/Mobs/Species/base.yml b/Resources/Prototypes/Entities/Mobs/Species/base.yml index 33635eeec2..c0d23c489c 100644 --- a/Resources/Prototypes/Entities/Mobs/Species/base.yml +++ b/Resources/Prototypes/Entities/Mobs/Species/base.yml @@ -191,12 +191,15 @@ - type: Strippable - type: UserInterface interfaces: - - key: enum.VoiceMaskUIKey.Key + enum.VoiceMaskUIKey.Key: type: VoiceMaskBoundUserInterface - - key: enum.HumanoidMarkingModifierKey.Key + enum.HumanoidMarkingModifierKey.Key: type: HumanoidMarkingModifierBoundUserInterface - - key: enum.StrippingUiKey.Key + enum.StrippingUiKey.Key: type: StrippableBoundUserInterface + enum.InstrumentUiKey.Key: + type: InstrumentBoundUserInterface + requireInputValidation: false - type: Puller - type: Speech speechSounds: Alto @@ -218,9 +221,9 @@ - type: CanEscapeInventory # Carrying system from nyanotrasen. - type: LanguageKnowledge # This is here so even if species doesn't have a defined language, they at least speak GC speaks: - - GalacticCommon + - TauCetiBasic understands: - - GalacticCommon + - TauCetiBasic - type: Tag tags: - CanPilot @@ -381,5 +384,5 @@ requiredLegs: 2 - type: UserInterface interfaces: - - key: enum.HumanoidMarkingModifierKey.Key # sure, this can go here too + enum.HumanoidMarkingModifierKey.Key: # sure, this can go here too type: HumanoidMarkingModifierBoundUserInterface diff --git a/Resources/Prototypes/Entities/Mobs/Species/diona.yml b/Resources/Prototypes/Entities/Mobs/Species/diona.yml index 42383d9a42..113151ad08 100644 --- a/Resources/Prototypes/Entities/Mobs/Species/diona.yml +++ b/Resources/Prototypes/Entities/Mobs/Species/diona.yml @@ -33,6 +33,8 @@ amount: 5 - type: Bloodstream bloodReagent: Sap + bloodRegenerationHunger: 1 + bloodRegenerationThirst: 1 # 1 unit of sap satiates 1 hunger and thirst - type: Reactive groups: Flammable: [ Touch ] @@ -104,16 +106,20 @@ - Dead - type: LanguageKnowledge speaks: - - GalacticCommon + - TauCetiBasic - RootSpeak understands: - - GalacticCommon + - TauCetiBasic - RootSpeak - type: TraitSpeedModifier sprintModifier: 0.75 walkModifier: 0.75 - type: SpeedModifierImmunity - type: NoSlip + - type: StepTriggerImmune + whitelist: + types: + - Shard - type: entity parent: BaseSpeciesDummy diff --git a/Resources/Prototypes/Entities/Mobs/Species/dwarf.yml b/Resources/Prototypes/Entities/Mobs/Species/dwarf.yml index a48809f1a7..aff836bec4 100644 --- a/Resources/Prototypes/Entities/Mobs/Species/dwarf.yml +++ b/Resources/Prototypes/Entities/Mobs/Species/dwarf.yml @@ -50,12 +50,17 @@ accent: dwarf - type: Speech speechSounds: Bass + - type: HumanoidAppearance + species: Human + hideLayersOnEquip: + - Hair + - Snout - type: LanguageKnowledge speaks: - - GalacticCommon + - TauCetiBasic - SolCommon understands: - - GalacticCommon + - TauCetiBasic - SolCommon - type: LightweightDrunk boozeStrengthMultiplier: 0.5 diff --git a/Resources/Prototypes/Entities/Mobs/Species/harpy.yml b/Resources/Prototypes/Entities/Mobs/Species/harpy.yml index 4aa56231ce..ce87e10549 100644 --- a/Resources/Prototypes/Entities/Mobs/Species/harpy.yml +++ b/Resources/Prototypes/Entities/Mobs/Species/harpy.yml @@ -5,6 +5,10 @@ id: MobHarpyBase abstract: true components: + - type: Flight + isLayerAnimated: true + layer: "/Textures/Mobs/Customization/Harpy/harpy_wings.rsi" + animationKey: "Flap" - type: Singer proto: HarpySinger - type: Sprite @@ -110,16 +114,15 @@ - CanPilot - FootstepSound - DoorBumpOpener - - ShoesRequiredStepTriggerImmune - type: LanguageKnowledge speaks: - - GalacticCommon - - SolCommon + - TauCetiBasic + - ValyrianStandard understands: - - GalacticCommon - - SolCommon + - TauCetiBasic + - ValyrianStandard - type: StepTriggerImmune - whitelist: # WD EDIT + whitelist: types: - Shard - Landmine @@ -127,10 +130,9 @@ - type: entity save: false - name: Urist McHands + name: Urist McBirb parent: MobHumanDummy id: MobHarpyDummy - noSpawn: true description: A dummy Harpy meant to be used in character setup. components: - type: HumanoidAppearance @@ -179,6 +181,9 @@ - map: [ "enum.HumanoidVisualLayers.Hair" ] - map: [ "mask" ] - map: [ "head" ] + - map: [ "singingLayer" ] + sprite: Effects/harpysinger.rsi + state: singing_music_notes - type: entity id: ActionHarpyPlayMidi @@ -202,3 +207,15 @@ icon: DeltaV/Interface/Actions/harpy_syrinx.png itemIconStyle: BigAction event: !type:VoiceMaskSetNameEvent + +- type: entity + id: ActionToggleFlight + name: Fly + description: Make use of your wings to fly. Beat the flightless bird allegations. + noSpawn: true + components: + - type: InstantAction + checkCanInteract: false + icon: { sprite: Interface/Actions/flight.rsi, state: flight_off } + iconOn: { sprite : Interface/Actions/flight.rsi, state: flight_on } + event: !type:ToggleFlightEvent \ No newline at end of file diff --git a/Resources/Prototypes/Entities/Mobs/Species/human.yml b/Resources/Prototypes/Entities/Mobs/Species/human.yml index ac373725ce..013789cd2b 100644 --- a/Resources/Prototypes/Entities/Mobs/Species/human.yml +++ b/Resources/Prototypes/Entities/Mobs/Species/human.yml @@ -16,12 +16,17 @@ spawned: - id: FoodMeatHuman amount: 5 + - type: HumanoidAppearance + species: Human + hideLayersOnEquip: + - Hair + - Snout - type: LanguageKnowledge speaks: - - GalacticCommon + - TauCetiBasic - SolCommon understands: - - GalacticCommon + - TauCetiBasic - SolCommon - type: entity diff --git a/Resources/Prototypes/Entities/Mobs/Species/moth.yml b/Resources/Prototypes/Entities/Mobs/Species/moth.yml index 1c55dcf0df..fef380d1d5 100644 --- a/Resources/Prototypes/Entities/Mobs/Species/moth.yml +++ b/Resources/Prototypes/Entities/Mobs/Species/moth.yml @@ -23,12 +23,13 @@ accent: zombieMoth - type: Speech speechVerb: Moth + allowedEmotes: ['Chitter', 'Squeak'] - type: LanguageKnowledge speaks: - - GalacticCommon + - TauCetiBasic - Moffic understands: - - GalacticCommon + - TauCetiBasic - Moffic - type: TypingIndicator proto: moth diff --git a/Resources/Prototypes/Entities/Mobs/Species/reptilian.yml b/Resources/Prototypes/Entities/Mobs/Species/reptilian.yml index 35f9e9fa39..b27b4c6029 100644 --- a/Resources/Prototypes/Entities/Mobs/Species/reptilian.yml +++ b/Resources/Prototypes/Entities/Mobs/Species/reptilian.yml @@ -33,9 +33,9 @@ proto: lizard - type: Vocal sounds: - Male: UnisexReptilian - Female: UnisexReptilian - Unsexed: UnisexReptilian + Male: MaleReptilian + Female: FemaleReptilian + Unsexed: MaleReptilian - type: Damageable damageContainer: Biological damageModifierSet: Scale @@ -61,10 +61,10 @@ - type: Wagging - type: LanguageKnowledge speaks: - - GalacticCommon + - TauCetiBasic - Draconic understands: - - GalacticCommon + - TauCetiBasic - Draconic - type: entity diff --git a/Resources/Prototypes/Entities/Mobs/Species/slime.yml b/Resources/Prototypes/Entities/Mobs/Species/slime.yml index 0e05b0c827..1e2924ca82 100644 --- a/Resources/Prototypes/Entities/Mobs/Species/slime.yml +++ b/Resources/Prototypes/Entities/Mobs/Species/slime.yml @@ -13,11 +13,37 @@ - type: Body prototype: Slime requiredLegs: 2 + # they like eat it idk lol + - type: Storage + clickInsert: false + grid: + - 0,0,1,2 + maxItemSize: Large + storageInsertSound: + path: /Audio/Voice/Slime/slime_squish.ogg + - type: ContainerContainer + containers: + storagebase: !type:Container + ents: [] + - type: UserInterface + interfaces: + enum.StorageUiKey.Key: + type: StorageBoundUserInterface + enum.VoiceMaskUIKey.Key: + type: VoiceMaskBoundUserInterface + enum.HumanoidMarkingModifierKey.Key: + type: HumanoidMarkingModifierBoundUserInterface + enum.StrippingUiKey.Key: + type: StrippableBoundUserInterface + # to prevent bag open/honk spam + - type: UseDelay + delay: 0.5 - type: HumanoidAppearance species: SlimePerson - type: Speech speechVerb: Slime speechSounds: Slime + allowedEmotes: ['Squish'] - type: TypingIndicator proto: slime - type: Vocal @@ -28,6 +54,16 @@ - type: Damageable damageContainer: Biological damageModifierSet: Slime + - type: Geras + - type: PassiveDamage # Around 8 damage a minute healed + allowedStates: + - Alive + damageCap: 65 + damage: + types: + Heat: -0.14 + groups: + Brute: -0.14 - type: DamageVisuals damageOverlayGroups: Brute: @@ -35,6 +71,8 @@ color: "#2cf274" - type: Bloodstream bloodReagent: Slime # TODO Color slime blood based on their slime color or smth + bloodRegenerationHunger: 2 + bloodRegenerationThirst: 2 # 1 of slime satiates 2 hunger - type: Barotrauma damage: types: @@ -76,10 +114,10 @@ maxSaturation: 15 - type: LanguageKnowledge speaks: - - GalacticCommon + - TauCetiBasic - Bubblish understands: - - GalacticCommon + - TauCetiBasic - Bubblish - type: entity diff --git a/Resources/Prototypes/Entities/Mobs/Species/vox.yml b/Resources/Prototypes/Entities/Mobs/Species/vox.yml index a271e9d084..ec8035563b 100644 --- a/Resources/Prototypes/Entities/Mobs/Species/vox.yml +++ b/Resources/Prototypes/Entities/Mobs/Species/vox.yml @@ -16,6 +16,16 @@ #- type: VoxAccent # Not yet coded - type: Inventory speciesId: vox + displacements: + jumpsuit: + layer: + sprite: Mobs/Species/Vox/displacement.rsi + state: jumpsuit + copyToShaderParameters: + # Value required, provide a dummy. Gets overridden when applied. + layerKey: dummy + parameterTexture: displacementMap + parameterUV: displacementUV - type: Speech speechVerb: Vox speechSounds: Vox @@ -49,6 +59,49 @@ damage: types: Slash: 5 # Reduce? + - type: Sprite # Need to redefine the whole order to draw the tail over their gas tank + layers: + - map: [ "enum.HumanoidVisualLayers.Chest" ] + - map: [ "enum.HumanoidVisualLayers.Head" ] + - map: [ "enum.HumanoidVisualLayers.Snout" ] + - map: [ "enum.HumanoidVisualLayers.Eyes" ] + - map: [ "enum.HumanoidVisualLayers.RArm" ] + - map: [ "enum.HumanoidVisualLayers.LArm" ] + - map: [ "enum.HumanoidVisualLayers.RLeg" ] + - map: [ "enum.HumanoidVisualLayers.LLeg" ] + - map: [ "jumpsuit" ] + - map: [ "enum.HumanoidVisualLayers.LFoot" ] + - map: [ "enum.HumanoidVisualLayers.RFoot" ] + - map: [ "enum.HumanoidVisualLayers.LHand" ] + - map: [ "enum.HumanoidVisualLayers.RHand" ] + - map: [ "gloves" ] + - map: [ "shoes" ] + - map: [ "ears" ] + - map: [ "outerClothing" ] + - map: [ "eyes" ] + - map: [ "belt" ] + - map: [ "id" ] + - map: [ "neck" ] + - map: [ "back" ] + - map: [ "enum.HumanoidVisualLayers.FacialHair" ] + - map: [ "enum.HumanoidVisualLayers.Hair" ] + - map: [ "enum.HumanoidVisualLayers.HeadSide" ] + - map: [ "enum.HumanoidVisualLayers.HeadTop" ] + - map: [ "suitstorage" ] # This is not in the default order + - map: [ "enum.HumanoidVisualLayers.Tail" ] + - map: [ "mask" ] + - map: [ "head" ] + - map: [ "pocket1" ] + - map: [ "pocket2" ] + - map: [ "enum.HumanoidVisualLayers.Handcuffs" ] + color: "#ffffff" + sprite: Objects/Misc/handcuffs.rsi + state: body-overlay-2 + visible: false + - map: [ "clownedon" ] + sprite: "Effects/creampie.rsi" + state: "creampie_vox" # Not default + visible: false - type: entity parent: BaseSpeciesDummy diff --git a/Resources/Prototypes/Entities/Mobs/base.yml b/Resources/Prototypes/Entities/Mobs/base.yml index acc8726087..a815bc0d1a 100644 --- a/Resources/Prototypes/Entities/Mobs/base.yml +++ b/Resources/Prototypes/Entities/Mobs/base.yml @@ -198,7 +198,7 @@ canResistFire: true damage: #per second, scales with number of fire 'stacks' types: - Heat: 3 + Heat: 1.5 - type: FireVisuals sprite: Mobs/Effects/onfire.rsi normalState: Generic_mob_burning @@ -234,3 +234,5 @@ bloodlossHealDamage: types: Bloodloss: -1 + bloodRegenerationHunger: 1 + bloodRegenerationThirst: 1.5 # 1 unit of normal blood satiates 1t, 0.3t for vampires, 0.75h, and restores 0.25 blood for non-humans... diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks-cartons.yml b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks-cartons.yml index d694b153b1..a2e3f51944 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks-cartons.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks-cartons.yml @@ -15,6 +15,9 @@ solutions: drink: maxVol: 50 + - type: PressurizedSolution + solution: drink + - type: Shakeable - type: Sprite state: icon - type: Item diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks.yml b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks.yml index 545b3559f8..d16993e809 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks.yml @@ -10,6 +10,8 @@ solutions: drink: maxVol: 30 + - type: MixableSolution + solution: drink - type: SolutionTransfer canChangeTransferAmount: true - type: Drink @@ -32,8 +34,8 @@ solution: drink - type: UserInterface interfaces: - - key: enum.TransferAmountUiKey.Key - type: TransferAmountBoundUserInterface + enum.TransferAmountUiKey.Key: + type: TransferAmountBoundUserInterface - type: EmitSoundOnPickup sound: path: /Audio/SimpleStation14/Items/Handling/drinkglass_pickup.ogg @@ -49,6 +51,31 @@ path: /Audio/SimpleStation14/Items/Handling/drinkglass_drop.ogg params: volume: -2 + - type: Fixtures + fixtures: + fix1: + shape: + !type:PhysShapeAabb + bounds: "-0.25,-0.25,0.25,0.25" + density: 30 + mask: + - ItemMask + layer: + - BulletImpassable # Ever seen a John Woo movie? + - type: Destructible + thresholds: + - trigger: + !type:DamageTrigger + damage: 5 + behaviors: + - !type:PlaySoundBehavior + sound: + collection: MetalBreak + params: + volume: -6 + - !type:SpillBehavior { } + - !type:DoActsBehavior + acts: [ "Destruction" ] - type: entity parent: DrinkBase @@ -517,6 +544,22 @@ sprite: Objects/Consumable/Drinks/bravebullglass.rsi state: icon +- type: entity + parent: DrinkGlass + id: BudgetInsulsDrinkGlass + suffix: budget insuls + components: + - type: SolutionContainerManager + solutions: + drink: + maxVol: 30 + reagents: + - ReagentId: BudgetInsulsDrink + Quantity: 30 + - type: Icon + sprite: Objects/Consumable/Drinks/budgetinsulsdrink.rsi + state: icon + - type: entity parent: DrinkGlass id: DrinkCarrotJuice @@ -549,6 +592,22 @@ sprite: Objects/Consumable/Drinks/chocolateglass.rsi state: icon +- type: entity + parent: DrinkGlass + id: RubberneckGlass + suffix: rubberneck + components: + - type: SolutionContainerManager + solutions: + drink: + maxVol: 30 + reagents: + - ReagentId: Rubberneck + Quantity: 30 + - type: Icon + sprite: Objects/Consumable/Drinks/rubberneck.rsi + state: icon + - type: entity parent: DrinkGlass id: DrinkCoconutRum @@ -1075,6 +1134,22 @@ sprite: Objects/Consumable/Drinks/icecreamglass.rsi state: icon +- type: entity + parent: DrinkGlass + id: IrishBoolGlass + suffix: irish bool + components: + - type: SolutionContainerManager + solutions: + drink: + maxVol: 30 + reagents: + - ReagentId: IrishBool + Quantity: 30 + - type: Icon + sprite: Objects/Consumable/Drinks/beerglass.rsi + state: icon + - type: entity parent: DrinkGlass id: DrinkIrishCarBomb @@ -2069,6 +2144,22 @@ sprite: Objects/Consumable/Drinks/martiniglass.rsi state: icon +- type: entity + parent: DrinkGlass + id: DrinkVodkaRedBool + suffix: vodka red bool + components: + - type: SolutionContainerManager + solutions: + drink: + maxVol: 30 + reagents: + - ReagentId: VodkaRedBool + Quantity: 30 + - type: Icon + sprite: Objects/Consumable/Drinks/ginvodkaglass.rsi + state: icon + - type: entity parent: DrinkGlass id: DrinkVodkaTonicGlass @@ -2115,6 +2206,22 @@ - ReagentId: JuiceWatermelon Quantity: 30 +- type: entity + parent: DrinkGlass + id: DrinkWatermelonWakeup + suffix: watermelon wakeup + components: + - type: SolutionContainerManager + solutions: + drink: + maxVol: 30 + reagents: + - ReagentId: WatermelonWakeup + Quantity: 30 + - type: Icon + sprite: Objects/Consumable/Drinks/champagneglass.rsi + state: icon + - type: entity parent: DrinkGlass id: DrinkWhiskeyColaGlass @@ -2195,6 +2302,22 @@ sprite: Objects/Consumable/Drinks/wineglass.rsi state: icon +- type: entity + parent: DrinkGlass + id: XenoBasherGlass + suffix: xeno basher + components: + - type: SolutionContainerManager + solutions: + drink: + maxVol: 30 + reagents: + - ReagentId: XenoBasher + Quantity: 30 + - type: Icon + sprite: Objects/Consumable/Drinks/xenobasher.rsi + state: icon + # TODO: MOVE - type: entity diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_bottles.yml b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_bottles.yml index a6752286dd..7a4983b14d 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_bottles.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_bottles.yml @@ -31,6 +31,9 @@ !type:DamageTrigger damage: 5 behaviors: + - !type:PlaySoundBehavior + sound: + collection: GlassBreak - !type:SpillBehavior { } - !type:DoActsBehavior acts: [ "Destruction" ] @@ -39,6 +42,9 @@ - type: PhysicalComposition materialComposition: Plastic: 100 + - type: PressurizedSolution + solution: drink + - type: Shakeable - type: entity parent: DrinkBottlePlasticBaseFull @@ -368,6 +374,7 @@ - type: Tag tags: - Wine + - DrinkBottle - type: entity parent: [DrinkBottleVisualsAll, DrinkBottleGlassBaseFull] @@ -517,6 +524,7 @@ - type: Tag tags: - Wine + - DrinkBottle # Small Bottles @@ -542,6 +550,7 @@ - type: Tag tags: - Beer + - DrinkBottle - type: entity parent: [DrinkBottleVisualsAll, DrinkBottleGlassBaseFull] @@ -565,7 +574,7 @@ - type: Tag tags: - Beer - + - DrinkBottle - type: entity parent: [DrinkBottleVisualsAll, DrinkBottlePlasticBaseFull] diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_cans.yml b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_cans.yml index 9d4d8447d4..2549f2d1e8 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_cans.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_cans.yml @@ -6,7 +6,7 @@ components: - type: Drink - type: Openable - - type: PressurizedDrink + - type: Shakeable - type: SolutionContainerManager solutions: drink: @@ -14,13 +14,15 @@ - ReagentId: Cola Quantity: 30 maxVol: 30 + - type: MixableSolution + solution: drink - type: SolutionTransfer canChangeTransferAmount: true maxTransferAmount: 15 - type: UserInterface interfaces: - - key: enum.TransferAmountUiKey.Key - type: TransferAmountBoundUserInterface + enum.TransferAmountUiKey.Key: + type: TransferAmountBoundUserInterface - type: Sprite state: icon layers: @@ -34,6 +36,8 @@ solution: drink - type: DrainableSolution solution: drink + - type: PressurizedSolution + solution: drink - type: Appearance - type: GenericVisualizer visuals: diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_cups.yml b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_cups.yml index 9ad51490df..2d6e5f7e35 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_cups.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_cups.yml @@ -10,7 +10,8 @@ solutions: drink: maxVol: 20 - canMix: true + - type: MixableSolution + solution: drink - type: FitsInDispenser solution: drink - type: DrawableSolution @@ -24,8 +25,8 @@ maxTransferAmount: 10 - type: UserInterface interfaces: - - key: enum.TransferAmountUiKey.Key - type: TransferAmountBoundUserInterface + enum.TransferAmountUiKey.Key: + type: TransferAmountBoundUserInterface - type: Drink - type: Sprite state: icon diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_fun.yml b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_fun.yml index 2fd2331f91..ef6208b69d 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_fun.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_fun.yml @@ -146,6 +146,9 @@ - type: RandomFillSolution solution: drink weightedRandomId: RandomFillMopwata + - type: PressurizedSolution + solution: drink + - type: Shakeable - type: Appearance - type: GenericVisualizer visuals: diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_special.yml b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_special.yml index 9a523c997b..9c87995f5e 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_special.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_special.yml @@ -8,7 +8,10 @@ solutions: drink: maxVol: 100 + - type: MixableSolution + solution: drink - type: Drink + - type: Shakeable # Doesn't do anything, but I mean... - type: FitsInDispenser solution: drink - type: DrawableSolution @@ -26,8 +29,8 @@ state: icon - type: UserInterface interfaces: - - key: enum.TransferAmountUiKey.Key - type: TransferAmountBoundUserInterface + enum.TransferAmountUiKey.Key: + type: TransferAmountBoundUserInterface - type: PhysicalComposition materialComposition: Steel: 50 @@ -107,3 +110,63 @@ - type: Drink - type: Sprite sprite: Objects/Consumable/Drinks/jar_what.rsi + +- type: entity + id: BartenderMixer + abstract: true + components: + - type: DrainableSolution + solution: drink + - type: Drink + - type: DrawableSolution + solution: drink + - type: RefillableSolution + solution: drink + - type: SolutionTransfer + canChangeTransferAmount: true + - type: Spillable + solution: drink + - type: UserInterface + interfaces: + enum.TransferAmountUiKey.Key: + type: TransferAmountBoundUserInterface + +- type: entity + parent: [BaseItem, BartenderMixer] + id: DrinkJigger + name: jigger + description: Like a shaker, but smaller. Used to control the amount of ingredients. + components: + - type: SolutionContainerManager + solutions: + drink: + maxVol: 20 + - type: MixableSolution + solution: drink + - type: FitsInDispenser + solution: drink + - type: Sprite + sprite: Objects/Consumable/Drinks/jigger.rsi + state: icon + - type: PhysicalComposition + materialComposition: + Steel: 20 + +- type: entity + parent: [BaseItem, BartenderMixer] + id: DrinkIceBucket + name: ice bucket + description: A special bucket of refreshy ice. Prohibited use for challenge with the same name! + components: + - type: SolutionContainerManager + solutions: + drink: + reagents: + - ReagentId: Ice + Quantity: 200 + - type: Sprite + sprite: Objects/Consumable/Drinks/icebucket.rsi + state: icon + - type: PhysicalComposition + materialComposition: + Steel: 75 diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/trash_drinks.yml b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/trash_drinks.yml index 62823e4ce4..d737b57e15 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/trash_drinks.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/trash_drinks.yml @@ -26,6 +26,8 @@ damage: types: Blunt: 0 + - type: MixableSolution + solution: drink - type: Spillable solution: drink - type: FitsInDispenser @@ -38,8 +40,8 @@ solution: drink - type: UserInterface interfaces: - - key: enum.TransferAmountUiKey.Key - type: TransferAmountBoundUserInterface + enum.TransferAmountUiKey.Key: + type: TransferAmountBoundUserInterface - type: DamageOnLand damage: types: @@ -103,6 +105,8 @@ solutions: drink: maxVol: 50 + - type: MixableSolution + solution: drink - type: SolutionTransfer canChangeTransferAmount: true maxTransferAmount: 5 @@ -119,8 +123,8 @@ solution: drink - type: UserInterface interfaces: - - key: enum.TransferAmountUiKey.Key - type: TransferAmountBoundUserInterface + enum.TransferAmountUiKey.Key: + type: TransferAmountBoundUserInterface - type: Damageable damageContainer: Inorganic - type: Destructible @@ -215,12 +219,12 @@ - type: entity - name: goldschlager bottle + name: gildlager bottle parent: DrinkBottleBaseEmpty - id: DrinkBottleGoldschlager + id: DrinkBottleGildlager components: - type: Sprite - sprite: Objects/Consumable/TrashDrinks/goldschlagerbottle_empty.rsi + sprite: Objects/Consumable/TrashDrinks/gildlagerbottle_empty.rsi - type: entity diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Food/Baked/bread.yml b/Resources/Prototypes/Entities/Objects/Consumable/Food/Baked/bread.yml index 32a1815ac7..e40ac40a28 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/Food/Baked/bread.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/Food/Baked/bread.yml @@ -810,6 +810,8 @@ allowMovement: true description: ghost-role-information-BreadDog-description rules: ghost-role-information-BreadDog-rules + raffle: + settings: short - type: GhostTakeoverAvailable - type: BarkAccent - type: Speech @@ -827,6 +829,7 @@ - type: Puller needsHands: false - type: Examiner + - type: DoAfter - type: CombatMode - type: MeleeWeapon soundHit: diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Food/Baked/cake.yml b/Resources/Prototypes/Entities/Objects/Consumable/Food/Baked/cake.yml index 71b38959ce..c939dec52c 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/Food/Baked/cake.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/Food/Baked/cake.yml @@ -672,6 +672,8 @@ allowMovement: true description: ghost-role-information-Cak-description rules: ghost-role-information-Cak-rules + raffle: + settings: short - type: GhostTakeoverAvailable - type: OwOAccent - type: Speech @@ -689,6 +691,7 @@ - type: Puller needsHands: false - type: Examiner + - type: DoAfter - type: CombatMode - type: MeleeWeapon soundHit: diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Food/Containers/bowl.yml b/Resources/Prototypes/Entities/Objects/Consumable/Food/Containers/bowl.yml index 4595329635..40cb141af7 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/Food/Containers/bowl.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/Food/Containers/bowl.yml @@ -19,6 +19,8 @@ - map: ["enum.SolutionContainerLayers.Fill"] state: fill-1 visible: false + - type: MixableSolution + solution: food - type: DamageOnLand damage: types: @@ -35,8 +37,8 @@ canChangeTransferAmount: true - type: UserInterface interfaces: - - key: enum.TransferAmountUiKey.Key - type: TransferAmountBoundUserInterface + enum.TransferAmountUiKey.Key: + type: TransferAmountBoundUserInterface - type: Destructible thresholds: - trigger: diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Food/Containers/box.yml b/Resources/Prototypes/Entities/Objects/Consumable/Food/Containers/box.yml index 966ae86db1..aa9e70f3fa 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/Food/Containers/box.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/Food/Containers/box.yml @@ -567,7 +567,6 @@ - type: Tag tags: - Trash - - HappyHonk - MimeHappyHonk - type: Sprite sprite: Objects/Storage/Happyhonk/mime.rsi @@ -664,6 +663,10 @@ name: woeful cluwne meal description: Nothing good can come of this. components: + - type: Tag + tags: + - Trash + - CluwneHappyHonk - type: Sprite sprite: Objects/Storage/Happyhonk/cluwne.rsi state: box diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Food/Containers/plate.yml b/Resources/Prototypes/Entities/Objects/Consumable/Food/Containers/plate.yml index 63c47df67e..3bd66e8a48 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/Food/Containers/plate.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/Food/Containers/plate.yml @@ -54,6 +54,17 @@ materialComposition: Glass: 60 - type: SpaceGarbage + - type: Fixtures + fixtures: + fix1: + shape: + !type:PhysShapeAabb + bounds: "-0.25,-0.25,0.25,0.25" + density: 25 + mask: + - ItemMask + layer: + - BulletImpassable # Ever seen a John Woo movie? - type: entity name: broken plate diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Food/produce.yml b/Resources/Prototypes/Entities/Objects/Consumable/Food/produce.yml index 930d7fa64d..3bf253f773 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/Food/produce.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/Food/produce.yml @@ -1136,9 +1136,9 @@ Quantity: 1 - type: entity - name: chili + name: chili pepper parent: FoodProduceBase - id: FoodChili + id: FoodChiliPepper description: Spicy, best not touch your eyes. components: - type: FlavorProfile @@ -1166,7 +1166,7 @@ - type: entity name: chilly pepper parent: FoodProduceBase - id: FoodChilly + id: FoodChillyPepper description: Icy hot. components: - type: FlavorProfile @@ -1872,3 +1872,36 @@ tags: - ClothMade - CottonBoll + +- type: entity + name: pyrotton boll + description: This will probably set you on fire. + id: PyrottonBol + parent: FoodProduceBase + components: + - type: Sprite + sprite: Objects/Specific/Hydroponics/pyrotton.rsi + - type: FlavorProfile + flavors: + - pyrotton + - type: Food + requiresSpecialDigestion: true + - type: SolutionContainerManager + solutions: + food: + reagents: + - ReagentId: Fiber + Quantity: 5 + - ReagentId: Phlogiston + Quantity: 5 + - type: Log + spawnedPrototype: MaterialPyrotton1 + spawnCount: 2 + - type: Produce + seedId: pyrotton + - type: Tag + tags: + - ClothMade + - CottonBoll + - type: Extractable + grindableSolutionName: food diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Smokeables/Cigarettes/joints.yml b/Resources/Prototypes/Entities/Objects/Consumable/Smokeables/Cigarettes/joints.yml index e3ae06ec9f..9a0d96e89e 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/Smokeables/Cigarettes/joints.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/Smokeables/Cigarettes/joints.yml @@ -28,6 +28,34 @@ reagents: - ReagentId: THC Quantity: 20 + +- type: entity + id: JointRainbow + parent: Joint + name: joint + suffix: Rainbow + description: A roll of dried plant matter wrapped in thin paper. Seems to be colorful inside. + components: + - type: Construction + graph: smokeableJointRainbow + node: jointRainbow + - type: SolutionContainerManager + solutions: + smokable: + maxVol: 20 + reagents: + - ReagentId: SpaceDrugs + Quantity: 4 + - ReagentId: Lipolicide + Quantity: 4 + - ReagentId: MindbreakerToxin + Quantity: 2.66 + - ReagentId: Happiness + Quantity: 2.66 +# - ReagentId: ColorfulReagent +# Quantity: 1.33 + - ReagentId: Psicodine + Quantity: 0.8 - type: entity id: Blunt @@ -59,3 +87,31 @@ reagents: - ReagentId: THC Quantity: 20 + +- type: entity + id: BluntRainbow + parent: Blunt + name: blunt + suffix: Rainbow + description: A roll of dried plant matter wrapped in a dried tobacco leaf. Seems to be colorful inside. + components: + - type: Construction + graph: smokeableBluntRainbow + node: bluntRainbow + - type: SolutionContainerManager + solutions: + smokable: + maxVol: 20 + reagents: + - ReagentId: SpaceDrugs + Quantity: 4 + - ReagentId: Lipolicide + Quantity: 4 + - ReagentId: MindbreakerToxin + Quantity: 2.66 + - ReagentId: Happiness + Quantity: 2.66 +# - ReagentId: ColorfulReagent +# Quantity: 1.33 + - ReagentId: Psicodine + Quantity: 0.8 diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Smokeables/Pipes/pipe.yml b/Resources/Prototypes/Entities/Objects/Consumable/Smokeables/Pipes/pipe.yml index c3f13d80b7..79c568802c 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/Smokeables/Pipes/pipe.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/Smokeables/Pipes/pipe.yml @@ -63,3 +63,26 @@ path: /Audio/Weapons/Guns/Empty/empty.ogg ejectSound: path: /Audio/Weapons/Guns/Empty/empty.ogg + +- type: entity + id: SmokingPipeFilledCannabisRainbow + parent: SmokingPipe + name: pipe + suffix: Rainbow Cannabis + description: Just like grandpappy used to smoke. + components: + - type: ContainerContainer + containers: + bowl_slot: !type:ContainerSlot + - type: ItemSlots + - type: SmokingPipe + bowl_slot: + name: smoking-pipe-slot-component-slot-name-bowl + startingItem: GroundCannabisRainbow + whitelist: + tags: + - Smokable + insertSound: + path: /Audio/Weapons/Guns/Empty/empty.ogg + ejectSound: + path: /Audio/Weapons/Guns/Empty/empty.ogg diff --git a/Resources/Prototypes/Entities/Objects/Devices/Circuitboards/Machine/base_machineboard.yml b/Resources/Prototypes/Entities/Objects/Devices/Circuitboards/Machine/base_machineboard.yml index 164777284f..360fc5ffaa 100644 --- a/Resources/Prototypes/Entities/Objects/Devices/Circuitboards/Machine/base_machineboard.yml +++ b/Resources/Prototypes/Entities/Objects/Devices/Circuitboards/Machine/base_machineboard.yml @@ -15,7 +15,7 @@ price: 100 - type: PhysicalComposition materialComposition: - Glass: 400 + Glass: 230 chemicalComposition: Silicon: 20 diff --git a/Resources/Prototypes/Entities/Objects/Devices/Circuitboards/Machine/production.yml b/Resources/Prototypes/Entities/Objects/Devices/Circuitboards/Machine/production.yml index 62f3bbcb3f..a34af1c9d8 100644 --- a/Resources/Prototypes/Entities/Objects/Devices/Circuitboards/Machine/production.yml +++ b/Resources/Prototypes/Entities/Objects/Devices/Circuitboards/Machine/production.yml @@ -29,6 +29,10 @@ Amount: 1 DefaultPrototype: Igniter ExamineName: Igniter + - type: ReverseEngineering # Delta + difficulty: 2 + recipes: + - AutolatheHyperConvectionMachineCircuitboard - type: entity id: ProtolatheMachineCircuitboard @@ -66,6 +70,10 @@ Amount: 1 DefaultPrototype: Igniter ExamineName: Igniter + - type: ReverseEngineering # Delta + difficulty: 2 + recipes: + - ProtolatheHyperConvectionMachineCircuitboard - type: entity id: BiofabricatorMachineCircuitboard @@ -79,6 +87,10 @@ MatterBin: 4 materialRequirements: Glass: 1 + - type: ReverseEngineering # Delta + difficulty: 2 + recipes: + - BiofabricatorMachineCircuitboard - type: entity id: SecurityTechFabCircuitboard @@ -151,10 +163,28 @@ Amount: 2 DefaultPrototype: Beaker ExamineName: Glass Beaker - - type: ReverseEngineering # Nyano - difficulty: 3 - recipes: - - CircuitImprinterMachineCircuitboard + +- type: entity + parent: BaseMachineCircuitboard + id: CircuitImprinterHyperConvectionMachineCircuitboard + name: hyper convection circuit imprinter machine board + description: A machine printed circuit board for a hyper convection circuit imprinter. + components: + - type: Sprite + state: science + - type: MachineBoard + prototype: CircuitImprinterHyperConvection + requirements: + MatterBin: 2 + tagRequirements: + GlassBeaker: + Amount: 2 + DefaultPrototype: Beaker + ExamineName: Glass Beaker + Igniter: + Amount: 1 + DefaultPrototype: Igniter + ExamineName: Igniter - type: entity id: ExosuitFabricatorMachineCircuitboard @@ -171,7 +201,7 @@ materialRequirements: Glass: 5 - type: ReverseEngineering # Nyano - difficulty: 3 + difficulty: 2 recipes: - ExosuitFabricatorMachineCircuitboard - type: GuideHelp @@ -202,10 +232,6 @@ requirements: MatterBin: 1 Manipulator: 2 - - type: ReverseEngineering # Nyano - difficulty: 2 - recipes: - - UniformPrinterMachineCircuitboard - type: entity id: VaccinatorMachineCircuitboard @@ -277,27 +303,6 @@ recipes: - ArtifactAnalyzerMachineCircuitboard -- type: entity - id: TraversalDistorterMachineCircuitboard - parent: BaseMachineCircuitboard - name: traversal distorter machine board - description: A machine printed circuit board for a traversal distorter. - components: - - type: Sprite - state: science - - type: MachineBoard - prototype: MachineTraversalDistorter - requirements: - Manipulator: 1 - Capacitor: 2 - materialRequirements: - Steel: 5 - Cable: 1 - - type: ReverseEngineering # Nyano - difficulty: 2 - recipes: - - TraversalDistorterMachineCircuitboard - - type: entity id: ArtifactCrusherMachineCircuitboard parent: BaseMachineCircuitboard @@ -313,6 +318,10 @@ materialRequirements: Glass: 1 Steel: 5 + - type: ReverseEngineering # Delta + difficulty: 3 + recipes: + - ArtifactCrusherMachineCircuitboard - type: entity parent: BaseMachineCircuitboard @@ -350,6 +359,10 @@ Cable: 5 PlasmaGlass: 15 MetalRod: 4 + - type: ReverseEngineering # Nyano + difficulty: 2 + recipes: + - AnomalyVesselExperimentalCircuitboard - type: entity parent: BaseMachineCircuitboard @@ -367,6 +380,10 @@ materialRequirements: PlasmaGlass: 5 Cable: 5 + - type: ReverseEngineering # Delta + difficulty: 3 + recipes: + - AnomalySynchronizerCircuitboard - type: entity parent: BaseMachineCircuitboard @@ -451,6 +468,10 @@ deconstructionTarget: null graph: ThermomachineBoard node: hellfirefreezer + - type: ReverseEngineering # Delta + difficulty: 3 + recipes: + - HellfireFreezerMachineCircuitBoard - type: entity parent: BaseMachineCircuitboard @@ -596,6 +617,10 @@ materialRequirements: Steel: 1 Cable: 2 + - type: ReverseEngineering # Delta + difficulty: 3 + recipes: + - CrewMonitoringServerMachineCircuitboard - type: entity id: CryoPodMachineCircuitboard @@ -635,10 +660,6 @@ Amount: 2 DefaultPrototype: Beaker ExamineName: Glass Beaker - - type: ReverseEngineering # Nyano - difficulty: 2 - recipes: - - ChemMasterMachineCircuitboard - type: entity id: ChemDispenserMachineCircuitboard @@ -660,10 +681,6 @@ Amount: 2 DefaultPrototype: Beaker ExamineName: Glass Beaker - - type: ReverseEngineering # Nyano - difficulty: 2 - recipes: - - ChemDispenserMachineCircuitboard - type: entity id: BiomassReclaimerMachineCircuitboard @@ -750,9 +767,6 @@ PowerCell: 4 materialRequirements: CableHV: 10 - - type: ReverseEngineering # Nyano - recipes: - - SMESMachineCircuitboard - type: entity id: CellRechargerCircuitboard @@ -862,6 +876,10 @@ materialComposition: Steel: 30 Plastic: 30 + - type: ReverseEngineering # Delta + difficulty: 2 + recipes: + - TurboItemRechargerCircuitboard - type: entity id: SubstationMachineCircuitboard @@ -877,9 +895,6 @@ materialRequirements: CableMV: 5 CableHV: 5 - - type: ReverseEngineering # Nyano - recipes: - - SubstationMachineCircuitboard - type: PhysicalComposition materialComposition: Glass: 200 @@ -921,7 +936,7 @@ DefaultPrototype: SaxophoneInstrument ExamineName: Woodwind Instrument - type: ReverseEngineering # Nyano - difficulty: 3 + difficulty: 2 recipes: - DawInstrumentMachineCircuitboard @@ -938,10 +953,6 @@ Capacitor: 1 materialRequirements: CableHV: 5 - - type: ReverseEngineering # Nyano - difficulty: 2 - recipes: - - GeneratorPlasmaMachineCircuitboard - type: PhysicalComposition materialComposition: Glass: 200 @@ -949,6 +960,10 @@ Silicon: 20 - type: StaticPrice price: 40 + - type: ReverseEngineering # Nyano + difficulty: 2 + recipes: + - PortableGeneratorPacmanMachineCircuitboard - type: entity id: ThrusterMachineCircuitboard @@ -961,6 +976,10 @@ Capacitor: 4 materialRequirements: Steel: 5 + - type: ReverseEngineering # Delta + difficulty: 3 + recipes: + - ThrusterMachineCircuitboard - type: entity id: GyroscopeMachineCircuitboard @@ -974,6 +993,10 @@ Capacitor: 1 materialRequirements: Glass: 2 + - type: ReverseEngineering # Delta + difficulty: 3 + recipes: + - GyroscopeMachineCircuitboard - type: entity id: PortableGeneratorSuperPacmanMachineCircuitboard @@ -993,12 +1016,12 @@ Glass: 200 chemicalComposition: Silicon: 20 + - type: StaticPrice + price: 40 - type: ReverseEngineering # Nyano difficulty: 2 recipes: - PortableGeneratorSuperPacmanMachineCircuitboard - - type: StaticPrice - price: 40 - type: entity id: PortableGeneratorJrPacmanMachineCircuitboard @@ -1020,6 +1043,10 @@ Silicon: 20 - type: StaticPrice price: 40 + - type: ReverseEngineering # Nyano + difficulty: 2 + recipes: + - PortableGeneratorJrPacmanMachineCircuitboard - type: entity id: ReagentGrinderMachineCircuitboard @@ -1054,7 +1081,7 @@ Capacitor: 2 materialRequirements: Glass: 1 - - type: ReverseEngineering # Nyano + - type: ReverseEngineering # Delta difficulty: 2 recipes: - HotplateMachineCircuitboard @@ -1072,6 +1099,10 @@ materialRequirements: Glass: 2 Cable: 5 + - type: ReverseEngineering # Delta + difficulty: 2 + recipes: + - ElectricGrillMachineCircuitboard - type: entity id: StasisBedMachineCircuitboard @@ -1137,6 +1168,10 @@ materialRequirements: Steel: 5 Plastic: 5 + - type: ReverseEngineering # Delta + difficulty: 2 + recipes: + - MaterialReclaimerMachineCircuitboard - type: entity id: OreProcessorMachineCircuitboard @@ -1152,9 +1187,6 @@ Manipulator: 3 materialRequirements: Glass: 1 - - type: ReverseEngineering # Nyano - recipes: - - OreProcessorMachineCircuitboard - type: entity parent: BaseMachineCircuitboard @@ -1170,6 +1202,10 @@ Manipulator: 3 materialRequirements: Glass: 1 + - type: ReverseEngineering # Delta + difficulty: 2 + recipes: + - OreProcessorIndustrialMachineCircuitboard - type: entity id: SheetifierMachineCircuitboard @@ -1216,6 +1252,10 @@ Amount: 1 DefaultPrototype: ForkPlastic ExamineName: Utensil + - type: ReverseEngineering # Delta + difficulty: 2 + recipes: + - FatExtractorMachineCircuitboard - type: entity parent: BaseMachineCircuitboard @@ -1229,6 +1269,10 @@ MatterBin: 1 materialRequirements: Steel: 1 + - type: ReverseEngineering # Delta + difficulty: 2 + recipes: + - FlatpackerMachineCircuitboard - type: entity id: EmitterCircuitboard @@ -1348,9 +1392,6 @@ Amount: 1 DefaultPrototype: Beaker ExamineName: Glass Beaker - - type: ReverseEngineering # Nyano - recipes: - - BoozeDispenserMachineCircuitboard - type: entity id: CargoTelepadMachineCircuitboard @@ -1367,6 +1408,10 @@ materialRequirements: Steel: 5 Bluespace: 2 #DeltaV Bluespace Exists + - type: ReverseEngineering # Delta + difficulty: 3 + recipes: + - CargoTelepadMachineCircuitboard - type: entity id: SodaDispenserMachineCircuitboard @@ -1385,9 +1430,6 @@ Amount: 1 DefaultPrototype: Beaker ExamineName: Glass Beaker - - type: ReverseEngineering # Nyano - recipes: - - SodaDispenserMachineCircuitboard - type: entity id: TelecomServerCircuitboard @@ -1437,6 +1479,10 @@ Steel: 5 CableHV: 5 Uranium: 2 + - type: ReverseEngineering # Delta + difficulty: 3 + recipes: + - MiniGravityGeneratorCircuitboard - type: entity id: ShuttleGunSvalinnMachineGunCircuitboard @@ -1454,6 +1500,10 @@ materialRequirements: Steel: 5 CableHV: 5 + - type: ReverseEngineering # Delta + difficulty: 3 + recipes: + - ShuttleGunSvalinnMachineGunCircuitboard - type: entity id: ShuttleGunPerforatorCircuitboard @@ -1471,6 +1521,10 @@ materialRequirements: Steel: 10 CableHV: 5 + - type: ReverseEngineering # Delta + difficulty: 3 + recipes: + - ShuttleGunPerforatorCircuitboard - type: entity id: ShuttleGunFriendshipCircuitboard @@ -1488,6 +1542,10 @@ materialRequirements: Steel: 7 CableHV: 5 + - type: ReverseEngineering # Delta + difficulty: 3 + recipes: + - ShuttleGunFriendshipCircuitboard - type: entity id: ShuttleGunDusterCircuitboard @@ -1506,6 +1564,10 @@ Steel: 10 CableHV: 5 Uranium: 2 + - type: ReverseEngineering # Delta + difficulty: 4 + recipes: + - ShuttleGunDusterCircuitboard - type: entity id: ShuttleGunKineticCircuitboard @@ -1523,6 +1585,10 @@ materialRequirements: Steel: 5 CableHV: 2 + - type: ReverseEngineering # Delta + difficulty: 2 + recipes: + - ShuttleGunKineticCircuitboard - type: entity parent: BaseMachineCircuitboard @@ -1536,6 +1602,10 @@ Manipulator: 3 materialRequirements: Glass: 1 + - type: ReverseEngineering # Delta + difficulty: 2 + recipes: + - ReagentGrinderIndustrialMachineCircuitboard - type: entity parent: BaseMachineCircuitboard @@ -1550,3 +1620,28 @@ Steel: 2 Glass: 5 Cable: 2 + - type: ReverseEngineering # Delta + difficulty: 2 + recipes: + - JukeboxCircuitBoard + +- type: entity + id: TraversalDistorterMachineCircuitboard + parent: BaseMachineCircuitboard + name: traversal distorter machine board + description: A machine printed circuit board for a traversal distorter. + components: + - type: Sprite + state: science + - type: MachineBoard + prototype: MachineTraversalDistorter + requirements: + Manipulator: 1 + Capacitor: 2 + materialRequirements: + Steel: 5 + Cable: 1 + - type: ReverseEngineering # Nyano + difficulty: 2 + recipes: + - TraversalDistorterMachineCircuitboard diff --git a/Resources/Prototypes/Entities/Objects/Devices/Circuitboards/computer.yml b/Resources/Prototypes/Entities/Objects/Devices/Circuitboards/computer.yml index ffff8847ed..7681a459cb 100644 --- a/Resources/Prototypes/Entities/Objects/Devices/Circuitboards/computer.yml +++ b/Resources/Prototypes/Entities/Objects/Devices/Circuitboards/computer.yml @@ -14,15 +14,15 @@ price: 100 - type: PhysicalComposition materialComposition: - Glass: 400 + Glass: 230 chemicalComposition: Silicon: 20 - type: entity parent: BaseComputerCircuitboard id: AlertsComputerCircuitboard - name: alerts computer board - description: A computer printed circuit board for an alerts computer. + name: atmospheric alerts computer board + description: A computer printed circuit board for an atmospheric alerts computer. components: - type: ComputerBoard prototype: ComputerAlert @@ -122,6 +122,10 @@ prototype: ComputerSalvageExpedition - type: StealTarget stealGroup: SalvageExpeditionsComputerCircuitboard + - type: ReverseEngineering # Nyano + difficulty: 2 + recipes: + - SalvageExpeditionsComputerCircuitboard - type: entity parent: BaseComputerCircuitboard @@ -177,6 +181,10 @@ - type: Tag tags: - ComputerTelevisionCircuitboard + - type: ReverseEngineering # Nyano + difficulty: 2 + recipes: + - ComputerTelevisionCircuitboard - type: entity parent: BaseComputerCircuitboard @@ -286,6 +294,10 @@ components: - type: ComputerBoard prototype: ComputerRadar + - type: ReverseEngineering # Nyano + difficulty: 2 + recipes: + - RadarConsoleCircuitboard - type: entity parent: BaseComputerCircuitboard @@ -339,6 +351,10 @@ components: - type: ComputerBoard prototype: ComputerShuttle + - type: ReverseEngineering # Nyano + difficulty: 3 + recipes: + - ShuttleConsoleCircuitboard - type: entity parent: BaseComputerCircuitboard @@ -396,6 +412,10 @@ price: 150 - type: ComputerBoard prototype: ComputerMassMedia + - type: ReverseEngineering # Nyano + difficulty: 3 + recipes: + - ComputerMassMediaCircuitboard - type: entity parent: BaseComputerCircuitboard @@ -407,3 +427,14 @@ state: cpu_engineering - type: ComputerBoard prototype: ComputerSensorMonitoring + +- type: entity + parent: BaseComputerCircuitboard + id: RoboticsConsoleCircuitboard + name: robotics control console board + description: A computer printed circuit board for a robotics control console. + components: + - type: Sprite + state: cpu_science + - type: ComputerBoard + prototype: ComputerRoboticsControl diff --git a/Resources/Prototypes/Entities/Objects/Devices/Electronics/door.yml b/Resources/Prototypes/Entities/Objects/Devices/Electronics/door.yml index b761ef7996..4d7dfed334 100644 --- a/Resources/Prototypes/Entities/Objects/Devices/Electronics/door.yml +++ b/Resources/Prototypes/Entities/Objects/Devices/Electronics/door.yml @@ -19,10 +19,10 @@ - type: AccessReader - type: ActivatableUI key: enum.DoorElectronicsConfigurationUiKey.Key - allowedItems: + requiredItems: tags: - DoorElectronicsConfigurator - type: UserInterface interfaces: - - key: enum.DoorElectronicsConfigurationUiKey.Key - type: DoorElectronicsBoundUserInterface + enum.DoorElectronicsConfigurationUiKey.Key: + type: DoorElectronicsBoundUserInterface diff --git a/Resources/Prototypes/Entities/Objects/Devices/Electronics/door_access.yml b/Resources/Prototypes/Entities/Objects/Devices/Electronics/door_access.yml index ec8148f7d9..c8db255f7b 100644 --- a/Resources/Prototypes/Entities/Objects/Devices/Electronics/door_access.yml +++ b/Resources/Prototypes/Entities/Objects/Devices/Electronics/door_access.yml @@ -1,115 +1,117 @@ - +# Command - type: entity parent: DoorElectronics - id: DoorElectronicsService - suffix: Service, Locked + id: DoorElectronicsCaptain + suffix: Captain, Locked components: - type: AccessReader - access: [["Service"]] + access: [["Captain"]] - type: entity parent: DoorElectronics - id: DoorElectronicsTheatre - suffix: Theatre, Locked + id: DoorElectronicsHeadOfPersonnel + suffix: HeadOfPersonnel, Locked components: - type: AccessReader - access: [["Theatre"]] + access: [["HeadOfPersonnel"]] - type: entity parent: DoorElectronics - id: DoorElectronicsChapel - suffix: Chapel, Locked + id: DoorElectronicsCommand + suffix: Command, Locked components: - type: AccessReader - access: [["Chapel"]] + access: [["Command"]] +# Service - type: entity parent: DoorElectronics - id: DoorElectronicsJanitor - suffix: Janitor, Locked + id: DoorElectronicsBar + suffix: Bar, Locked components: - type: AccessReader - access: [["Janitor"]] + access: [["Bar"]] - type: entity parent: DoorElectronics - id: DoorElectronicsKitchen - suffix: Kitchen, Locked + id: DoorElectronicsBarKitchen + suffix: Bar, Locked components: - type: AccessReader - access: [["Kitchen"]] + access: [["Bar"], ["Kitchen"]] - type: entity parent: DoorElectronics - id: DoorElectronicsBar - suffix: Bar, Locked + id: DoorElectronicsHydroponics + suffix: Hydroponics, Locked components: - type: AccessReader - access: [["Bar"]] + access: [["Hydroponics"]] - type: entity parent: DoorElectronics - id: DoorElectronicsHydroponics - suffix: Hydroponics, Locked + id: DoorElectronicsChapel + suffix: Chapel, Locked components: - type: AccessReader - access: [["Hydroponics"]] + access: [["Chapel"]] - type: entity parent: DoorElectronics - id: DoorElectronicsLawyer - suffix: Lawyer, Locked + id: DoorElectronicsTheatre + suffix: Theatre, Locked components: - type: AccessReader - access: [["Lawyer"]] + access: [["Theatre"]] - type: entity parent: DoorElectronics - id: DoorElectronicsCaptain - suffix: Captain, Locked + id: DoorElectronicsKitchen + suffix: Kitchen, Locked components: - type: AccessReader - access: [["Captain"]] + access: [["Kitchen"]] - type: entity parent: DoorElectronics - id: DoorElectronicsExternal - suffix: External, Locked + id: DoorElectronicsKitchenHydroponics + suffix: Kitchen/Hydroponics, Locked components: - type: AccessReader - access: [["External"]] + access: [["Kitchen"], ["Hydroponics"]] - type: entity parent: DoorElectronics - id: DoorElectronicsCargo - suffix: Cargo, Locked + id: DoorElectronicsJanitor + suffix: Janitor, Locked components: - type: AccessReader - access: [["Cargo"]] + access: [["Janitor"]] - type: entity parent: DoorElectronics - id: DoorElectronicsEngineering - suffix: Engineering, Locked + id: DoorElectronicsLawyer + suffix: Lawyer, Locked components: - type: AccessReader - access: [["Engineering"]] + access: [["Lawyer"]] - type: entity parent: DoorElectronics - id: DoorElectronicsAtmospherics - suffix: Atmospherics, Locked + id: DoorElectronicsService + suffix: Service, Locked components: - type: AccessReader - access: [["Atmospherics"]] + access: [["Service"]] +# Cargo - type: entity parent: DoorElectronics - id: DoorElectronicsFreezer - suffix: Freezer, Locked + id: DoorElectronicsQuartermaster + suffix: Quartermaster, Locked components: - type: AccessReader - access: [["Kitchen"], ["Hydroponics"]] + access: [["Quartermaster"]] - type: entity parent: DoorElectronics @@ -121,68 +123,71 @@ - type: entity parent: DoorElectronics - id: DoorElectronicsMedical - suffix: Medical, Locked + id: DoorElectronicsCargo + suffix: Cargo, Locked components: - type: AccessReader - access: [["Medical"]] + access: [["Cargo"]] +# Engineering - type: entity parent: DoorElectronics - id: DoorElectronicsChemistry - suffix: Chemistry, Locked + id: DoorElectronicsChiefEngineer + suffix: ChiefEngineer, Locked components: - type: AccessReader - access: [["Chemistry"]] + access: [["ChiefEngineer"]] - type: entity parent: DoorElectronics - id: DoorElectronicsResearch - suffix: Research, Locked + id: DoorElectronicsAtmospherics + suffix: Atmospherics, Locked components: - type: AccessReader - access: [["Research"]] + access: [["Atmospherics"]] - type: entity parent: DoorElectronics - id: DoorElectronicsScience - suffix: Science, Locked + id: DoorElectronicsEngineering + suffix: Engineering, Locked components: - type: AccessReader - access: [["Research"], ["Medical"]] + access: [["Engineering"]] +# Science - type: entity parent: DoorElectronics - id: DoorElectronicsCommand - suffix: Command, Locked + id: DoorElectronicsMorgue + suffix: Morgue, Locked components: - type: AccessReader - access: [["Command"]] + access: [["Medical"], ["Detective"], ["Chapel"]] - type: entity parent: DoorElectronics - id: DoorElectronicsCentralCommand - suffix: CentralCommand, Locked + id: DoorElectronicsResearchDirector + suffix: ResearchDirector, Locked components: - type: AccessReader - access: [["CentralCommand"]] + access: [["ResearchDirector"]] - type: entity parent: DoorElectronics - id: DoorElectronicsChiefMedicalOfficer - suffix: ChiefMedicalOfficer, Locked + id: DoorElectronicsMedicalResearch + suffix: Medical/Science, Locked components: - type: AccessReader - access: [["ChiefMedicalOfficer"]] + access: [["Research"], ["Medical"]] - type: entity parent: DoorElectronics - id: DoorElectronicsChiefEngineer - suffix: ChiefEngineer, Locked + id: DoorElectronicsResearch + suffix: Research, Locked components: - type: AccessReader - access: [["ChiefEngineer"]] + access: [["Research"]] +# Security - type: entity parent: DoorElectronics id: DoorElectronicsHeadOfSecurity @@ -193,27 +198,19 @@ - type: entity parent: DoorElectronics - id: DoorElectronicsResearchDirector - suffix: ResearchDirector, Locked - components: - - type: AccessReader - access: [["ResearchDirector"]] - -- type: entity - parent: DoorElectronics - id: DoorElectronicsHeadOfPersonnel - suffix: HeadOfPersonnel, Locked + id: DoorElectronicsArmory + suffix: Armory, Locked components: - type: AccessReader - access: [["HeadOfPersonnel"]] + access: [["Armory"]] - type: entity parent: DoorElectronics - id: DoorElectronicsQuartermaster - suffix: Quartermaster, Locked + id: DoorElectronicsDetective + suffix: Detective, Locked components: - type: AccessReader - access: [["Quartermaster"]] + access: [["Detective"]] - type: entity parent: DoorElectronics @@ -233,43 +230,45 @@ - type: entity parent: DoorElectronics - id: DoorElectronicsDetective - suffix: Detective, Locked + id: DoorElectronicsBrig + suffix: Brig, Locked components: - type: AccessReader - access: [["Detective"]] + access: [["Brig"]] -#- type: entity -# parent: DoorElectronics -# id: DoorElectronicsBrig -# suffix: Brig, Locked -# components: -# - type: AccessReader -# access: [["Brig"]] +# Medical +- type: entity + parent: DoorElectronics + id: DoorElectronicsChiefMedicalOfficer + suffix: ChiefMedicalOfficer, Locked + components: + - type: AccessReader + access: [["ChiefMedicalOfficer"]] - type: entity parent: DoorElectronics - id: DoorElectronicsArmory - suffix: Armory, Locked + id: DoorElectronicsChemistry + suffix: Chemistry, Locked components: - type: AccessReader - access: [["Armory"]] + access: [["Chemistry"]] - type: entity parent: DoorElectronics - id: DoorElectronicsVault - suffix: Vault, Locked + id: DoorElectronicsMedical + suffix: Medical, Locked components: - type: AccessReader - access: [["Security"], ["Command"]] + access: [["Medical"]] +# Syndicate - type: entity parent: DoorElectronics - id: DoorElectronicsMaintenance - suffix: Maintenance, Locked + id: DoorElectronicsNukeop + suffix: Nukeop, Locked components: - type: AccessReader - access: [["Maintenance"]] + access: [["NuclearOperative"]] - type: entity parent: DoorElectronics @@ -279,21 +278,38 @@ - type: AccessReader access: [["SyndicateAgent"]] +# Misc - type: entity parent: DoorElectronics - id: DoorElectronicsNukeop - suffix: Nukeop, Locked + id: DoorElectronicsCentralCommand + suffix: CentralCommand, Locked components: - type: AccessReader - access: [["NuclearOperative"]] + access: [["CentralCommand"]] - type: entity parent: DoorElectronics - id: DoorElectronicsRnDMed - suffix: Medical/Science, Locked + id: DoorElectronicsExternal + suffix: External, Locked components: - type: AccessReader - access: [["Research"], ["Medical"]] + access: [["External"]] + +- type: entity + parent: DoorElectronics + id: DoorElectronicsMaintenance + suffix: Maintenance, Locked + components: + - type: AccessReader + access: [["Maintenance"]] + +- type: entity + parent: DoorElectronics + id: DoorElectronicsVault + suffix: Vault, Locked + components: + - type: AccessReader + access: [["Security"], ["Command"]] - type: entity parent: DoorElectronics @@ -400,3 +416,11 @@ components: - type: AccessReader access: [["Psychologist"]] + +- type: entity + parent: DoorElectronics + id: DoorElectronicsMail + suffix: Mail, Locked + components: + - type: AccessReader + access: [["Mail"]] diff --git a/Resources/Prototypes/Entities/Objects/Devices/Electronics/triggers.yml b/Resources/Prototypes/Entities/Objects/Devices/Electronics/triggers.yml index 43ed20c694..2cb9b5233d 100644 --- a/Resources/Prototypes/Entities/Objects/Devices/Electronics/triggers.yml +++ b/Resources/Prototypes/Entities/Objects/Devices/Electronics/triggers.yml @@ -18,6 +18,8 @@ state: timer - type: Item size: Small + - type: StaticPrice + price: 40 - type: PayloadTrigger components: - type: OnUseTimerTrigger @@ -28,8 +30,6 @@ path: /Audio/Machines/Nuke/general_beep.ogg params: volume: -2 - - type: StaticPrice - price: 40 - type: entity parent: TimerTrigger @@ -40,6 +40,11 @@ - type: Sprite sprite: Objects/Devices/signaltrigger.rsi state: signaltrigger + - type: StaticPrice + price: 40 + - type: Tag + tags: + - SignalTrigger - type: PayloadTrigger components: - type: TriggerOnSignal @@ -49,8 +54,6 @@ - type: WirelessNetworkConnection range: 200 - type: DeviceLinkSink - - type: StaticPrice - price: 40 - type: entity parent: BaseItem @@ -61,11 +64,11 @@ - type: Sprite sprite: Objects/Devices/voice.rsi state: voice - - type: PayloadTrigger - components: - - type: TriggerOnVoice - type: StaticPrice price: 40 - type: Tag tags: - VoiceTrigger + - type: PayloadTrigger + components: + - type: TriggerOnVoice diff --git a/Resources/Prototypes/Entities/Objects/Devices/Syndicate_Gadgets/reinforcement_teleporter.yml b/Resources/Prototypes/Entities/Objects/Devices/Syndicate_Gadgets/reinforcement_teleporter.yml index a8489866fc..660a8c9e60 100644 --- a/Resources/Prototypes/Entities/Objects/Devices/Syndicate_Gadgets/reinforcement_teleporter.yml +++ b/Resources/Prototypes/Entities/Objects/Devices/Syndicate_Gadgets/reinforcement_teleporter.yml @@ -12,6 +12,8 @@ name: ghost-role-information-syndicate-reinforcement-name description: ghost-role-information-syndicate-reinforcement-description rules: ghost-role-information-syndicate-reinforcement-rules + raffle: + settings: default - type: GhostRoleMobSpawner prototype: MobHumanSyndicateAgent - type: EmitSoundOnUse @@ -29,24 +31,28 @@ - type: entity parent: ReinforcementRadioSyndicate - id: ReinforcementRadioSyndicateMonkey - name: syndicate monkey reinforcement radio - description: Calls in a specially trained monkey to assist you. + id: ReinforcementRadioSyndicateAncestor + name: syndicate genetic ancestor reinforcement radio + description: Calls in a specially trained ancestor of your choosing to assist you. components: - type: GhostRole name: ghost-role-information-syndicate-monkey-reinforcement-name description: ghost-role-information-syndicate-monkey-reinforcement-description rules: ghost-role-information-syndicate-monkey-reinforcement-rules + raffle: + settings: default - type: GhostRoleMobSpawner prototype: MobMonkeySyndicateAgent + selectablePrototypes: ["SyndicateMonkey", "SyndicateKobold"] - type: entity - parent: ReinforcementRadioSyndicateMonkey - id: ReinforcementRadioSyndicateMonkeyNukeops # Reinforcement radio exclusive to nukeops uplink + parent: ReinforcementRadioSyndicateAncestor + id: ReinforcementRadioSyndicateAncestorNukeops # Reinforcement radio exclusive to nukeops uplink suffix: NukeOps components: - type: GhostRoleMobSpawner prototype: MobMonkeySyndicateAgentNukeops + selectablePrototypes: ["SyndicateMonkeyNukeops", "SyndicateKoboldNukeops"] - type: entity parent: ReinforcementRadioSyndicate @@ -59,5 +65,7 @@ name: Syndicate Assault Cyborg description: Nuclear operatives needs reinforcements. You, a cold silicon killing machine, will help them. rules: Normal syndicate antagonist rules apply. Work with whoever called you in, and don't harm them. + raffle: + settings: default - type: GhostRoleMobSpawner prototype: PlayerBorgSyndicateAssaultBattery diff --git a/Resources/Prototypes/Entities/Objects/Devices/Syndicate_Gadgets/war_declarator.yml b/Resources/Prototypes/Entities/Objects/Devices/Syndicate_Gadgets/war_declarator.yml index 08e96d1de2..78009f1042 100644 --- a/Resources/Prototypes/Entities/Objects/Devices/Syndicate_Gadgets/war_declarator.yml +++ b/Resources/Prototypes/Entities/Objects/Devices/Syndicate_Gadgets/war_declarator.yml @@ -14,11 +14,11 @@ - type: ActivatableUI inHandsOnly: true singleUser: true - closeOnHandDeselect: false + requireActiveHand: false key: enum.WarDeclaratorUiKey.Key - type: UserInterface interfaces: - - key: enum.WarDeclaratorUiKey.Key + enum.WarDeclaratorUiKey.Key: type: WarDeclaratorBoundUserInterface - type: WarDeclarator message: war-declarator-default-message diff --git a/Resources/Prototypes/Entities/Objects/Devices/chameleon_projector.yml b/Resources/Prototypes/Entities/Objects/Devices/chameleon_projector.yml new file mode 100644 index 0000000000..e021281021 --- /dev/null +++ b/Resources/Prototypes/Entities/Objects/Devices/chameleon_projector.yml @@ -0,0 +1,71 @@ +- type: entity + parent: BaseItem + id: ChameleonProjector + name: chameleon projector + description: Holoparasite technology used to create a hard-light replica of any object around you. Disguise is destroyed when picked up or deactivated. + components: + - type: Sprite + sprite: /Textures/Objects/Devices/chameleon_projector.rsi + state: icon + - type: ChameleonProjector + whitelist: + components: + - Anchorable + - Item + blacklist: + components: + - ChameleonDisguise # no becoming kleiner + - InsideEntityStorage # no clark kent going in phone booth and becoming superman + - MindContainer # no + - Pda # PDAs currently make you invisible /!\ + polymorph: + entity: ChameleonDisguise + +- type: entity + noSpawn: true + parent: BaseMob + id: ChameleonDisguise + name: Urist McKleiner + components: + # this and the name/desc get replaced, this is just placeholder incase something goes wrong + - type: Sprite + sprite: /Textures/Mobs/Species/Human/parts.rsi + state: full + # so people can attempt to pick it up + - type: Item + # so it can take damage + # projector system sets health to be proportional to mass + - type: Damageable + - type: MobState + - type: MobThresholds + thresholds: + 0: Alive + 1: Critical + 200: Dead + - type: MovementSpeedModifier + baseWalkSpeed: 1 # precise movement for the perfect spot + baseSprintSpeed: 5 # the jig is up + - type: ChameleonDisguise + +# actions +- type: entity + noSpawn: true + id: ActionDisguiseNoRot + name: Toggle Rotation + description: Use this to prevent your disguise from rotating, making it easier to hide in some scenarios. + components: + - type: InstantAction + icon: Interface/VerbIcons/refresh.svg.192dpi.png + event: !type:DisguiseToggleNoRotEvent + +- type: entity + noSpawn: true + id: ActionDisguiseAnchor + name: Toggle Anchored + description: For many objects you will want to be anchored to not be completely obvious. + components: + - type: InstantAction + icon: + sprite: Objects/Tools/wrench.rsi + state: icon + event: !type:DisguiseToggleAnchoredEvent diff --git a/Resources/Prototypes/Entities/Objects/Devices/flatpack.yml b/Resources/Prototypes/Entities/Objects/Devices/flatpack.yml index 5499348bd1..2aecd13288 100644 --- a/Resources/Prototypes/Entities/Objects/Devices/flatpack.yml +++ b/Resources/Prototypes/Entities/Objects/Devices/flatpack.yml @@ -110,6 +110,20 @@ - type: GuideHelp guides: [ Singularity, Power ] +- type: entity + parent: BaseFlatpack + id: EmitterFlatpack + name: emitter flatpack + description: A flatpack used for constructing an emitter. + components: + - type: Flatpack + entity: Emitter + - type: Sprite + layers: + - state: emitter + - type: GuideHelp + guides: [ Singularity, Power ] + - type: entity parent: BaseFlatpack id: TeslaGeneratorFlatpack diff --git a/Resources/Prototypes/Entities/Objects/Devices/forensic_scanner.yml b/Resources/Prototypes/Entities/Objects/Devices/forensic_scanner.yml index 7436ae7c98..170751766b 100644 --- a/Resources/Prototypes/Entities/Objects/Devices/forensic_scanner.yml +++ b/Resources/Prototypes/Entities/Objects/Devices/forensic_scanner.yml @@ -17,11 +17,11 @@ - type: ActivatableUI key: enum.ForensicScannerUiKey.Key inHandsOnly: true - closeOnHandDeselect: false + requireActiveHand: false - type: UserInterface interfaces: - - key: enum.ForensicScannerUiKey.Key - type: ForensicScannerBoundUserInterface + enum.ForensicScannerUiKey.Key: + type: ForensicScannerBoundUserInterface - type: ForensicScanner - type: GuideHelp guides: diff --git a/Resources/Prototypes/Entities/Objects/Devices/geiger.yml b/Resources/Prototypes/Entities/Objects/Devices/geiger.yml index de4178ce7f..f8ee24c5c6 100644 --- a/Resources/Prototypes/Entities/Objects/Devices/geiger.yml +++ b/Resources/Prototypes/Entities/Objects/Devices/geiger.yml @@ -31,4 +31,7 @@ Med: {state: geiger_on_med} High: {state: geiger_on_high} Extreme: {state: geiger_on_ext} + - type: PhysicalComposition + materialComposition: + Plastic: 100 diff --git a/Resources/Prototypes/Entities/Objects/Devices/hand_teleporter.yml b/Resources/Prototypes/Entities/Objects/Devices/hand_teleporter.yml index 2e6c2d8c27..deac20e05e 100644 --- a/Resources/Prototypes/Entities/Objects/Devices/hand_teleporter.yml +++ b/Resources/Prototypes/Entities/Objects/Devices/hand_teleporter.yml @@ -9,10 +9,6 @@ layers: - state: icon - type: HandTeleporter - - type: ReverseEngineering # Nyano - difficulty: 4 - recipes: - - HandTeleporter - type: Tag tags: - HighRiskItem diff --git a/Resources/Prototypes/Entities/Objects/Devices/holoprojectors.yml b/Resources/Prototypes/Entities/Objects/Devices/holoprojectors.yml index 5cbf64c560..b7ad8ddd6a 100644 --- a/Resources/Prototypes/Entities/Objects/Devices/holoprojectors.yml +++ b/Resources/Prototypes/Entities/Objects/Devices/holoprojectors.yml @@ -68,6 +68,7 @@ - type: StaticPrice price: 80 - type: ReverseEngineering # Nyano + difficulty: 3 recipes: - HolofanProjector @@ -98,6 +99,10 @@ - HolofanProjector - type: StaticPrice price: 130 + - type: ReverseEngineering # Nyano + difficulty: 3 + recipes: + - HoloprojectorField - type: entity parent: HoloprojectorField diff --git a/Resources/Prototypes/Entities/Objects/Devices/mousetrap.yml b/Resources/Prototypes/Entities/Objects/Devices/mousetrap.yml index 7e3d5c14ab..d20f3c2fb1 100644 --- a/Resources/Prototypes/Entities/Objects/Devices/mousetrap.yml +++ b/Resources/Prototypes/Entities/Objects/Devices/mousetrap.yml @@ -13,12 +13,12 @@ - type: StepTrigger intersectRatio: 0.2 requiredTriggeredSpeed: 0 - triggerGroups: # WD EDIT + triggerGroups: types: - Mousetrap - type: Mousetrap - type: TriggerOnStepTrigger - - type: ShoesRequiredStepTrigger + - type: ClothingRequiredStepTrigger - type: DamageUserOnTrigger damage: types: diff --git a/Resources/Prototypes/Entities/Objects/Devices/pda.yml b/Resources/Prototypes/Entities/Objects/Devices/pda.yml index 1768af15c2..ad8f3d5c71 100644 --- a/Resources/Prototypes/Entities/Objects/Devices/pda.yml +++ b/Resources/Prototypes/Entities/Objects/Devices/pda.yml @@ -86,19 +86,18 @@ - type: ActivatableUI key: enum.PdaUiKey.Key singleUser: true - closeOnHandDeselect: false - type: UserInterface interfaces: - - key: enum.PdaUiKey.Key - type: PdaBoundUserInterface - - key: enum.StoreUiKey.Key - type: StoreBoundUserInterface - - key: enum.RingerUiKey.Key - type: RingerBoundUserInterface - - key: enum.InstrumentUiKey.Key - type: InstrumentBoundUserInterface - - key: enum.HealthAnalyzerUiKey.Key - type: HealthAnalyzerBoundUserInterface + enum.PdaUiKey.Key: + type: PdaBoundUserInterface + enum.StoreUiKey.Key: + type: StoreBoundUserInterface + enum.RingerUiKey.Key: + type: RingerBoundUserInterface + enum.InstrumentUiKey.Key: + type: InstrumentBoundUserInterface + enum.HealthAnalyzerUiKey.Key: + type: HealthAnalyzerBoundUserInterface - type: Tag tags: - DoorBumpOpener @@ -272,7 +271,7 @@ paralyzeTime: 4 launchForwardsMultiplier: 1.5 - type: StepTrigger - triggerGroups: # WD EDIT + triggerGroups: types: - SlipEntity - type: CollisionWake @@ -358,6 +357,12 @@ accentVColor: "#a23e3e" - type: Icon state: pda-qm + - type: CartridgeLoader # Adds the MailMetrics courier tracker + preinstalled: + - CrewManifestCartridge + - NotekeeperCartridge + - NewsReaderCartridge + - MailMetricsCartridge - type: entity parent: BasePDA diff --git a/Resources/Prototypes/Entities/Objects/Devices/pinpointer.yml b/Resources/Prototypes/Entities/Objects/Devices/pinpointer.yml index f5e46bbf54..4d36af4459 100644 --- a/Resources/Prototypes/Entities/Objects/Devices/pinpointer.yml +++ b/Resources/Prototypes/Entities/Objects/Devices/pinpointer.yml @@ -57,6 +57,11 @@ - type: Sprite layers: - state: pinpointer-syndicate + map: ["enum.PinpointerLayers.Base"] + - state: pinonnull + map: ["enum.PinpointerLayers.Screen"] + shader: unshaded + visible: false - type: Icon state: pinpointer-syndicate - type: Pinpointer @@ -72,6 +77,11 @@ - type: Sprite layers: - state: pinpointer-way + map: ["enum.PinpointerLayers.Base"] + - state: pinonnull + map: ["enum.PinpointerLayers.Screen"] + shader: unshaded + visible: false - type: Icon state: pinpointer-way - type: Pinpointer @@ -88,8 +98,13 @@ - type: Sprite layers: - state: pinpointer-station + map: ["enum.PinpointerLayers.Base"] + - state: pinonnull + map: ["enum.PinpointerLayers.Screen"] + shader: unshaded + visible: false - type: Icon state: pinpointer-station - type: Pinpointer - component: BecomesStation + component: ResearchServer targetName: the station diff --git a/Resources/Prototypes/Entities/Objects/Devices/radio.yml b/Resources/Prototypes/Entities/Objects/Devices/radio.yml index 74c2865d07..43f84fe404 100644 --- a/Resources/Prototypes/Entities/Objects/Devices/radio.yml +++ b/Resources/Prototypes/Entities/Objects/Devices/radio.yml @@ -23,3 +23,20 @@ - type: Tag tags: - Radio + +- type: entity + name: security radio + description: A handy security radio. + parent: RadioHandheld + id: RadioHandheldSecurity + components: + - type: RadioMicrophone + broadcastChannel: Security + - type: RadioSpeaker + channels: + - Security + - type: Sprite + sprite: Objects/Devices/securityhandy.rsi + - type: Item + sprite: Objects/Devices/securityhandy.rsi + heldPrefix: walkietalkie \ No newline at end of file diff --git a/Resources/Prototypes/Entities/Objects/Devices/station_beacon.yml b/Resources/Prototypes/Entities/Objects/Devices/station_beacon.yml index bc9711e16f..7f36fd25b7 100644 --- a/Resources/Prototypes/Entities/Objects/Devices/station_beacon.yml +++ b/Resources/Prototypes/Entities/Objects/Devices/station_beacon.yml @@ -30,8 +30,8 @@ singleUser: true - type: UserInterface interfaces: - - key: enum.NavMapBeaconUiKey.Key - type: NavMapBeaconBoundUserInterface + enum.NavMapBeaconUiKey.Key: + type: NavMapBeaconBoundUserInterface - type: Item size: Small - type: SubFloorHide diff --git a/Resources/Prototypes/Entities/Objects/Devices/station_map.yml b/Resources/Prototypes/Entities/Objects/Devices/station_map.yml index c37d8935f3..0d2f890a1d 100644 --- a/Resources/Prototypes/Entities/Objects/Devices/station_map.yml +++ b/Resources/Prototypes/Entities/Objects/Devices/station_map.yml @@ -28,7 +28,7 @@ acts: [ "Destruction" ] - type: UserInterface interfaces: - - key: enum.StationMapUiKey.Key + enum.StationMapUiKey.Key: type: StationMapBoundUserInterface - type: entity diff --git a/Resources/Prototypes/Entities/Objects/Devices/swapper.yml b/Resources/Prototypes/Entities/Objects/Devices/swapper.yml index 8a743f4796..3ab014b28c 100644 --- a/Resources/Prototypes/Entities/Objects/Devices/swapper.yml +++ b/Resources/Prototypes/Entities/Objects/Devices/swapper.yml @@ -25,3 +25,7 @@ - type: Tag tags: - QuantumSpinInverter + - type: ReverseEngineering # Delta + difficulty: 4 + recipes: + - DeviceQuantumSpinInverter diff --git a/Resources/Prototypes/Entities/Objects/Devices/translator_implants.yml b/Resources/Prototypes/Entities/Objects/Devices/translator_implants.yml index da42b2774b..0e7fce9568 100644 --- a/Resources/Prototypes/Entities/Objects/Devices/translator_implants.yml +++ b/Resources/Prototypes/Entities/Objects/Devices/translator_implants.yml @@ -1,26 +1,26 @@ - type: entity parent: BaseSubdermalImplant - id: BasicGalacticCommonTranslatorImplant + id: BasicTauCetiBasicTranslatorImplant name: basic common translator implant description: Provides your illiterate friends the ability to understand the common galactic tongue. noSpawn: true components: - type: TranslatorImplant understood: - - GalacticCommon + - TauCetiBasic - type: entity parent: BaseSubdermalImplant - id: GalacticCommonTranslatorImplant + 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 components: - type: TranslatorImplant understood: - - GalacticCommon + - TauCetiBasic spoken: - - GalacticCommon + - TauCetiBasic - type: entity parent: BaseSubdermalImplant @@ -35,7 +35,7 @@ spoken: - Bubblish requires: - - GalacticCommon + - TauCetiBasic - type: entity parent: BaseSubdermalImplant @@ -50,7 +50,7 @@ spoken: - Nekomimetic requires: - - GalacticCommon + - TauCetiBasic - type: entity parent: BaseSubdermalImplant @@ -65,7 +65,7 @@ spoken: - Draconic requires: - - GalacticCommon + - TauCetiBasic - type: entity parent: BaseSubdermalImplant @@ -80,7 +80,7 @@ spoken: - Canilunzt requires: - - GalacticCommon + - TauCetiBasic - type: entity parent: BaseSubdermalImplant @@ -95,7 +95,7 @@ spoken: - SolCommon requires: - - GalacticCommon + - TauCetiBasic - type: entity parent: BaseSubdermalImplant @@ -110,7 +110,7 @@ spoken: - RootSpeak requires: - - GalacticCommon + - TauCetiBasic - type: entity parent: BaseSubdermalImplant @@ -125,4 +125,34 @@ spoken: - Moffic requires: - - GalacticCommon + - TauCetiBasic + +- type: entity + parent: BaseSubdermalImplant + id: ValyrianStandardTranslatorImplant + name: valyrian standard translator implant + description: An implant giving the ability to understand and speak Valyrian Standard. Chirp! + noSpawn: true + components: + - type: TranslatorImplant + understood: + - ValyrianStandard + spoken: + - ValyrianStandard + requires: + - TauCetiBasic + +- type: entity + parent: BaseSubdermalImplant + 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 + components: + - type: TranslatorImplant + understood: + - Azaziba + spoken: + - Azaziba + requires: + - Draconic diff --git a/Resources/Prototypes/Entities/Objects/Devices/translators.yml b/Resources/Prototypes/Entities/Objects/Devices/translators.yml index 9f678ea080..f3e669482e 100644 --- a/Resources/Prototypes/Entities/Objects/Devices/translators.yml +++ b/Resources/Prototypes/Entities/Objects/Devices/translators.yml @@ -65,13 +65,13 @@ components: - type: HandheldTranslator spoken: - - GalacticCommon + - TauCetiBasic - Canilunzt understood: - - GalacticCommon + - TauCetiBasic - Canilunzt requires: - - GalacticCommon + - TauCetiBasic - Canilunzt - type: entity @@ -82,13 +82,13 @@ components: - type: HandheldTranslator spoken: - - GalacticCommon + - TauCetiBasic - Bubblish understood: - - GalacticCommon + - TauCetiBasic - Bubblish requires: - - GalacticCommon + - TauCetiBasic - Bubblish - type: entity @@ -99,30 +99,30 @@ components: - type: HandheldTranslator spoken: - - GalacticCommon + - TauCetiBasic - Nekomimetic understood: - - GalacticCommon + - TauCetiBasic - Nekomimetic requires: - - GalacticCommon + - TauCetiBasic - Nekomimetic - type: entity id: DraconicTranslator parent: [ TranslatorPoweredBase ] - name: Draconic translator - description: Translates speech between Draconic and Galactic Common, making it easier to understand your local Uniathi. + name: Sinta'Unathi translator + description: Translates speech between Sinta'Unathi and Tau-Ceti Basic, making it easier to understand your local Unathi. components: - type: HandheldTranslator spoken: - - GalacticCommon + - TauCetiBasic - Draconic understood: - - GalacticCommon + - TauCetiBasic - Draconic requires: - - GalacticCommon + - TauCetiBasic - Draconic - type: entity @@ -133,13 +133,13 @@ components: - type: HandheldTranslator spoken: - - GalacticCommon + - TauCetiBasic - SolCommon understood: - - GalacticCommon + - TauCetiBasic - SolCommon requires: - - GalacticCommon + - TauCetiBasic - SolCommon - type: entity @@ -150,13 +150,13 @@ components: - type: HandheldTranslator spoken: - - GalacticCommon + - TauCetiBasic - RootSpeak understood: - - GalacticCommon + - TauCetiBasic - RootSpeak requires: - - GalacticCommon + - TauCetiBasic - RootSpeak - type: entity @@ -167,13 +167,13 @@ components: - type: HandheldTranslator spoken: - - GalacticCommon + - TauCetiBasic - Moffic understood: - - GalacticCommon + - TauCetiBasic - Moffic requires: - - GalacticCommon + - TauCetiBasic - Moffic - type: entity @@ -184,13 +184,13 @@ components: - type: HandheldTranslator spoken: - - GalacticCommon + - TauCetiBasic - Xeno understood: - - GalacticCommon + - TauCetiBasic - Xeno requires: - - GalacticCommon + - TauCetiBasic - type: entity id: AnimalTranslator @@ -215,5 +215,39 @@ - Kobold - Hissing requires: - - GalacticCommon + - TauCetiBasic setLanguageOnInteract: false + +- type: entity + id: ValyrianStandardTranslator + parent: [ TranslatorPoweredBase ] + name: Valyrian Standard translator + description: Translates speech between Valyrian Standard and Tau-Ceti Basic. For talking to Harpies! + components: + - type: HandheldTranslator + spoken: + - TauCetiBasic + - ValyrianStandard + understood: + - TauCetiBasic + - ValyrianStandard + requires: + - TauCetiBasic + - ValyrianStandard + +- type: entity + id: AzazibaTranslator + parent: [ TranslatorPoweredBase ] + name: Azaziba translator + description: Translates speech between Unathi and Azaziba. For Unathi to speak the Archaic form of their native tongue! # Intended for Admins Only, this item is for lore reasons not obtainable. + components: + - type: HandheldTranslator + spoken: + - Draconic + - Azaziba + understood: + - Draconic + - Azaziba + requires: + - Draconic + - Azaziba \ No newline at end of file diff --git a/Resources/Prototypes/Entities/Objects/Fun/Instruments/base_instruments.yml b/Resources/Prototypes/Entities/Objects/Fun/Instruments/base_instruments.yml index 09b41d6e5d..7d342eed82 100644 --- a/Resources/Prototypes/Entities/Objects/Fun/Instruments/base_instruments.yml +++ b/Resources/Prototypes/Entities/Objects/Fun/Instruments/base_instruments.yml @@ -13,8 +13,8 @@ key: enum.InstrumentUiKey.Key - type: UserInterface interfaces: - - key: enum.InstrumentUiKey.Key - type: InstrumentBoundUserInterface + enum.InstrumentUiKey.Key: + type: InstrumentBoundUserInterface - type: Item size: Normal - type: StaticPrice @@ -51,8 +51,8 @@ acts: ["Destruction"] - type: UserInterface interfaces: - - key: enum.InstrumentUiKey.Key - type: InstrumentBoundUserInterface + enum.InstrumentUiKey.Key: + type: InstrumentBoundUserInterface - type: Fixtures fixtures: fix1: diff --git a/Resources/Prototypes/Entities/Objects/Fun/candy_bucket.yml b/Resources/Prototypes/Entities/Objects/Fun/candy_bucket.yml index d8f11cdea2..63175dc89a 100644 --- a/Resources/Prototypes/Entities/Objects/Fun/candy_bucket.yml +++ b/Resources/Prototypes/Entities/Objects/Fun/candy_bucket.yml @@ -36,8 +36,8 @@ ents: [] - type: UserInterface interfaces: - - key: enum.StorageUiKey.Key - type: StorageBoundUserInterface + enum.StorageUiKey.Key: + type: StorageBoundUserInterface # to prevent bag open/honk spam - type: UseDelay delay: 0.5 diff --git a/Resources/Prototypes/Entities/Objects/Fun/crayons.yml b/Resources/Prototypes/Entities/Objects/Fun/crayons.yml index cb755b161a..4aab2efdb9 100644 --- a/Resources/Prototypes/Entities/Objects/Fun/crayons.yml +++ b/Resources/Prototypes/Entities/Objects/Fun/crayons.yml @@ -18,8 +18,8 @@ - type: SpaceGarbage - type: UserInterface interfaces: - - key: enum.CrayonUiKey.Key - type: CrayonBoundUserInterface + enum.CrayonUiKey.Key: + type: CrayonBoundUserInterface - type: Crayon capacity: 15 - type: Food diff --git a/Resources/Prototypes/Entities/Objects/Fun/dice.yml b/Resources/Prototypes/Entities/Objects/Fun/dice.yml index aba6ebcb4c..bca5ec7ab9 100644 --- a/Resources/Prototypes/Entities/Objects/Fun/dice.yml +++ b/Resources/Prototypes/Entities/Objects/Fun/dice.yml @@ -119,12 +119,12 @@ mask: - ItemMask - type: StepTrigger - triggerGroups: # WD EDIT + triggerGroups: types: - Shard intersectRatio: 0.2 - type: TriggerOnStepTrigger - - type: ShoesRequiredStepTrigger + - type: ClothingRequiredStepTrigger - type: Slippery slipSound: path: /Audio/Effects/glass_step.ogg diff --git a/Resources/Prototypes/Entities/Objects/Fun/immovable_rod.yml b/Resources/Prototypes/Entities/Objects/Fun/immovable_rod.yml index 7ff6c43e29..b5cebbdd09 100644 --- a/Resources/Prototypes/Entities/Objects/Fun/immovable_rod.yml +++ b/Resources/Prototypes/Entities/Objects/Fun/immovable_rod.yml @@ -35,6 +35,7 @@ - type: entity id: ImmovableRodDespawn + suffix: Despawn parent: ImmovableRod components: - type: TimedDespawn @@ -92,3 +93,6 @@ components: - type: ImmovableRod randomizeVelocity: false + damage: + types: + Blunt: 120 diff --git a/Resources/Prototypes/Entities/Objects/Fun/pai.yml b/Resources/Prototypes/Entities/Objects/Fun/pai.yml index 537562f461..1b9c5303c6 100644 --- a/Resources/Prototypes/Entities/Objects/Fun/pai.yml +++ b/Resources/Prototypes/Entities/Objects/Fun/pai.yml @@ -13,10 +13,12 @@ program: 2 - type: UserInterface interfaces: - - key: enum.InstrumentUiKey.Key - type: InstrumentBoundUserInterface - - key: enum.StationMapUiKey.Key - type: UntrackedStationMapBoundUserInterface + enum.InstrumentUiKey.Key: + type: InstrumentBoundUserInterface + requireInputValidation: false + enum.StationMapUiKey.Key: + type: UntrackedStationMapBoundUserInterface + requireInputValidation: false - type: Sprite sprite: Objects/Fun/pai.rsi layers: diff --git a/Resources/Prototypes/Entities/Objects/Fun/snap_pops.yml b/Resources/Prototypes/Entities/Objects/Fun/snap_pops.yml index a39c2f881a..88f0758874 100644 --- a/Resources/Prototypes/Entities/Objects/Fun/snap_pops.yml +++ b/Resources/Prototypes/Entities/Objects/Fun/snap_pops.yml @@ -33,15 +33,12 @@ maxIntensity: 0.01 intensitySlope: 1 totalIntensity: 0.01 - - type: Tag - tags: - - SnapPop - type: entity parent: BaseStorageItem id: SnapPopBox name: snap pop box - description: Contains twenty snap pops for a few minutes of popping fun! + description: Contains snap pops for a few minutes of popping fun! components: - type: Item size: Normal @@ -56,6 +53,6 @@ - type: StorageFill contents: - id: SnapPop - amount: 20 + amount: 5 - type: Dumpable diff --git a/Resources/Prototypes/Entities/Objects/Fun/whistles.yml b/Resources/Prototypes/Entities/Objects/Fun/whistles.yml index 10c41efc54..667d5da11c 100644 --- a/Resources/Prototypes/Entities/Objects/Fun/whistles.yml +++ b/Resources/Prototypes/Entities/Objects/Fun/whistles.yml @@ -6,8 +6,12 @@ description: Someone forgot to turn off kettle? components: - type: Item + sprite: Objects/Fun/whistles.rsi size: Tiny + - type: Sprite + sprite: Objects/Fun/whistles.rsi - type: Clothing + sprite: Objects/Fun/whistles.rsi quickEquip: false slots: neck - type: UseDelay @@ -16,7 +20,14 @@ sound: collection: BaseWhistle - type: Whistle - distance: 5 + distance: 3 + +- type: entity + parent: BaseWhistle + id: Whistle + components: + - type: Sprite + state: whistle - type: entity parent: BaseWhistle @@ -24,10 +35,11 @@ description: Sound of it make you feel fear. components: - type: Sprite - sprite: Objects/Fun/whistle.rsi - state: securityWhistle - - type: Item - sprite: Objects/Fun/whistle.rsi + state: sec + - type: Clothing + equippedPrefix: sec + - type: Whistle + distance: 5 - type: entity parent: BaseWhistle @@ -36,13 +48,9 @@ description: A whistle used by Syndicate commanders to draw attention. Avanti! components: - type: Sprite - sprite: Clothing/Neck/Misc/whistles.rsi - state: icon + state: trench - type: Clothing - sprite: Clothing/Neck/Misc/whistles.rsi - quickEquip: False - slots: - - neck + equippedPrefix: trench - type: EmitSoundOnUse sound: collection: TrenchWhistle diff --git a/Resources/Prototypes/Entities/Objects/Magic/books.yml b/Resources/Prototypes/Entities/Objects/Magic/books.yml index 6202767ff1..7697e46b32 100644 --- a/Resources/Prototypes/Entities/Objects/Magic/books.yml +++ b/Resources/Prototypes/Entities/Objects/Magic/books.yml @@ -9,7 +9,7 @@ layers: - state: paper_blood - state: cover_strong - color: "#645a5a" + color: "#645a5a" - state: decor_wingette_flat color: "#4d0303" - state: icon_pentagramm @@ -25,13 +25,58 @@ - type: EmitSoundOnLand sound: /Audio/SimpleStation14/Items/Handling/book_drop.ogg +# For the Wizard Antag +# Do not add discounts or price inflation +- type: entity + id: WizardsGrimoire + name: wizards grimoire + suffix: Wizard + parent: BaseItem + components: + - type: Sprite + sprite: Objects/Misc/books.rsi + layers: + - state: paper_blood + - state: cover_strong + color: "#645a5a" + - state: decor_wingette_flat + color: "#4d0303" + - state: icon_pentagramm + color: "#f7e19f" + - type: UserInterface + interfaces: + enum.StoreUiKey.Key: + type: StoreBoundUserInterface + - type: ActivatableUI + key: enum.StoreUiKey.Key + - type: Store + refundAllowed: true + ownerOnly: true # get your own tome! + preset: StorePresetSpellbook + balance: + WizCoin: 10 # prices are balanced around this 10 point maximum and how strong the spells are + +# Not meant for wizard antag but meant for spawning, so people can't abuse refund if they were given a tome +- type: entity + id: WizardsGrimoireNoRefund + name: wizards grimoire + suffix: Wizard, No Refund + parent: WizardsGrimoire + components: + - type: Store + refundAllowed: false + ownerOnly: true # get your own tome! + preset: StorePresetSpellbook + balance: + WizCoin: 10 # prices are balanced around this 10 point maximum and how strong the spells are + - type: entity id: SpawnSpellbook name: spawn spellbook parent: BaseSpellbook components: - type: Spellbook - spells: + spellActions: ActionSpawnMagicarpSpell: -1 - type: entity @@ -54,7 +99,7 @@ - state: detail_rivets color: gold - type: Spellbook - spells: + spellActions: ActionForceWall: -1 - type: entity @@ -75,7 +120,7 @@ - state: detail_rivets color: gold - type: Spellbook - spells: + spellActions: ActionBlink: -1 - type: entity @@ -98,7 +143,7 @@ color: red - state: overlay_blood - type: Spellbook - spells: + spellActions: ActionSmite: -1 - type: entity @@ -120,7 +165,7 @@ - state: detail_bookmark color: "#98c495" - type: Spellbook - spells: + spellActions: ActionKnock: -1 - type: entity @@ -144,7 +189,7 @@ - state: icon_magic_fireball shader: unshaded - type: Spellbook - spells: + spellActions: ActionFireball: -1 - type: entity @@ -159,7 +204,7 @@ layers: - state: spell_default - type: Spellbook - spells: + spellActions: ActionFlashRune: -1 ActionExplosionRune: -1 ActionIgniteRune: -1 diff --git a/Resources/Prototypes/Entities/Objects/Materials/Sheets/glass.yml b/Resources/Prototypes/Entities/Objects/Materials/Sheets/glass.yml index 91ba1abff9..95100b340b 100644 --- a/Resources/Prototypes/Entities/Objects/Materials/Sheets/glass.yml +++ b/Resources/Prototypes/Entities/Objects/Materials/Sheets/glass.yml @@ -93,13 +93,18 @@ Quantity: 10 - type: UserInterface interfaces: - - key: enum.ShortConstructionUiKey.Key - type: ShortConstructionMenuBUI + enum.ShortConstructionUiKey.Key: + type: ShortConstructionMenuBUI - type: ActivatableUI key: enum.ShortConstructionUiKey.Key - type: ShortConstruction - prototypes: - - Window + entries: + - prototype: Window + - prototype: WindowDirectional + - prototype: WindowDiagonal + - prototype: SheetRGlass + - prototype: SheetPGlass + - prototype: SheetUGlass - type: entity parent: SheetGlass @@ -188,13 +193,17 @@ acts: [ "Destruction" ] - type: UserInterface interfaces: - - key: enum.ShortConstructionUiKey.Key - type: ShortConstructionMenuBUI + enum.ShortConstructionUiKey.Key: + type: ShortConstructionMenuBUI - type: ActivatableUI key: enum.ShortConstructionUiKey.Key - type: ShortConstruction - prototypes: - - ReinforcedWindow + entries: + - prototype: SheetRPGlass1 + - prototype: SheetRUGlass1 + - prototype: ReinforcedWindow + - prototype: ReinforcedWindowDiagonal + - prototype: WindowReinforcedDirectional - type: entity parent: SheetRGlass @@ -272,6 +281,18 @@ max: 1 - !type:DoActsBehavior acts: [ "Destruction" ] + - type: UserInterface + interfaces: + enum.ShortConstructionUiKey.Key: + type: ShortConstructionMenuBUI + - type: ActivatableUI + key: enum.ShortConstructionUiKey.Key + - type: ShortConstruction + entries: + - prototype: SheetRPGlass0 + - prototype: PlasmaWindow + - prototype: PlasmaWindowDiagonal + - prototype: PlasmaWindowDirectional - type: entity parent: SheetPGlass @@ -338,6 +359,17 @@ - ReagentId: Carbon Quantity: 0.5 canReact: false + - type: UserInterface + interfaces: + enum.ShortConstructionUiKey.Key: + type: ShortConstructionMenuBUI + - type: ActivatableUI + key: enum.ShortConstructionUiKey.Key + - type: ShortConstruction + entries: + - prototype: ReinforcedPlasmaWindow + - prototype: ReinforcedPlasmaWindowDiagonal + - prototype: PlasmaReinforcedWindowDirectional - type: entity parent: SheetRPGlass @@ -413,6 +445,18 @@ - ReagentId: Uranium Quantity: 10 canReact: false + - type: UserInterface + interfaces: + enum.ShortConstructionUiKey.Key: + type: ShortConstructionMenuBUI + - type: ActivatableUI + key: enum.ShortConstructionUiKey.Key + - type: ShortConstruction + entries: + - prototype: SheetRUGlass0 + - prototype: UraniumWindow + - prototype: UraniumWindowDiagonal + - prototype: UraniumWindowDirectional - type: entity parent: SheetUGlass @@ -467,6 +511,17 @@ - ReagentId: Carbon Quantity: 0.5 canReact: false + - type: UserInterface + interfaces: + enum.ShortConstructionUiKey.Key: + type: ShortConstructionMenuBUI + - type: ActivatableUI + key: enum.ShortConstructionUiKey.Key + - type: ShortConstruction + entries: + - prototype: ReinforcedUraniumWindow + - prototype: ReinforcedUraniumWindowDiagonal + - prototype: UraniumReinforcedWindowDirectional - type: entity parent: SheetRUGlass diff --git a/Resources/Prototypes/Entities/Objects/Materials/Sheets/metal.yml b/Resources/Prototypes/Entities/Objects/Materials/Sheets/metal.yml index 83982474d2..040c6c81b1 100644 --- a/Resources/Prototypes/Entities/Objects/Materials/Sheets/metal.yml +++ b/Resources/Prototypes/Entities/Objects/Materials/Sheets/metal.yml @@ -71,17 +71,80 @@ Quantity: 1 - type: UserInterface interfaces: - - key: enum.ShortConstructionUiKey.Key - type: ShortConstructionMenuBUI + enum.ShortConstructionUiKey.Key: + type: ShortConstructionMenuBUI - type: ActivatableUI key: enum.ShortConstructionUiKey.Key - type: ShortConstruction - prototypes: - - Girder - - MetalRod - - TileSteel - - TileWhite - - TileDark + entries: + - prototype: Girder + - prototype: MetalRod + - category: + name: Tiles + icon: + sprite: Objects/Tiles/tile.rsi + state: steel + entries: + - prototype: TileSteel + - prototype: TileWhite + - prototype: TileDark + - category: + name: Electronics + icon: + sprite: Structures/Machines/computers.rsi + state: computer-datatheory + entries: + - prototype: MachineFrame + - prototype: Computer + - prototype: Windoor + - prototype: LightTubeFixture + - prototype: APC + - prototype: AirAlarmFixture + - prototype: AirSensor + - prototype: FireAlarm + - category: + name: Atmospherics + icon: + sprite: Structures/Piping/Atmospherics/vent.rsi + state: vent_out + entries: + - prototype: GasPort + - prototype: GasOutletInjector + - prototype: GasVentScrubber + - prototype: GasPassiveVent + - prototype: GasVentPump + - prototype: GasMixer + - prototype: GasFilter + - prototype: GasVolumePump + - prototype: GasPressurePump + - prototype: GasValve + - category: + name: Piping + icon: + sprite: Structures/Piping/Atmospherics/pipe.rsi + state: pipeFourway + entries: + - prototype: HeatExchanger + - prototype: GasPipeBend + - prototype: GasPipeFourway + - prototype: GasPipeHalf + - prototype: GasPipeStraight + - prototype: GasPipeTJunction + - category: + name: Disposals + icon: + sprite: Structures/Piping/disposal.rsi + state: disposal + entries: + - prototype: DisposalPipe + - prototype: DisposalBend + - prototype: DisposalJunction + - prototype: DisposalYJunction + - prototype: DisposalRouter + - prototype: DisposalTagger + - prototype: DisposalTrunk + - prototype: DisposalUnit + - prototype: CrateGenericSteel - type: entity parent: SheetSteel @@ -218,6 +281,15 @@ - ReagentId: Carbon Quantity: 1 canReact: false + - type: UserInterface + interfaces: + enum.ShortConstructionUiKey.Key: + type: ShortConstructionMenuBUI + - type: ActivatableUI + key: enum.ShortConstructionUiKey.Key + - type: ShortConstruction + entries: + - prototype: SecureWindoor - 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 dfb5133628..781f35417d 100644 --- a/Resources/Prototypes/Entities/Objects/Materials/Sheets/other.yml +++ b/Resources/Prototypes/Entities/Objects/Materials/Sheets/other.yml @@ -110,6 +110,17 @@ - type: Tag tags: - Sheet + - type: UserInterface + interfaces: + enum.ShortConstructionUiKey.Key: + type: ShortConstructionMenuBUI + - type: ActivatableUI + key: enum.ShortConstructionUiKey.Key + - type: ShortConstruction + entries: + - prototype: SheetPGlass + - prototype: SheetRPGlass + - prototype: SheetRPGlass1 - type: entity parent: SheetPlasma @@ -162,6 +173,15 @@ - ReagentId: Phosphorus Quantity: 5 canReact: false + - type: UserInterface + interfaces: + enum.ShortConstructionUiKey.Key: + type: ShortConstructionMenuBUI + - type: ActivatableUI + key: enum.ShortConstructionUiKey.Key + - type: ShortConstruction + entries: + - prototype: CratePlastic - type: entity parent: SheetPlastic @@ -224,6 +244,17 @@ - ReagentId: Radium Quantity: 2 canReact: false + - type: UserInterface + interfaces: + enum.ShortConstructionUiKey.Key: + type: ShortConstructionMenuBUI + - type: ActivatableUI + key: enum.ShortConstructionUiKey.Key + - type: ShortConstruction + entries: + - prototype: SheetUGlass + - prototype: SheetRUGlass + - prototype: SheetRUGlass1 - type: entity parent: SheetUranium diff --git a/Resources/Prototypes/Entities/Objects/Materials/bluespace.yml b/Resources/Prototypes/Entities/Objects/Materials/bluespace.yml index f93534ecd5..bc0ed8f03c 100644 --- a/Resources/Prototypes/Entities/Objects/Materials/bluespace.yml +++ b/Resources/Prototypes/Entities/Objects/Materials/bluespace.yml @@ -5,7 +5,7 @@ name: bluespace crystal components: - type: Sprite - sprite: Nyanotrasen/Objects/Materials/materials.rsi + sprite: Objects/Materials/materials.rsi layers: - state: bluespace_3 map: ["base"] @@ -54,3 +54,60 @@ components: - type: Stack count: 5 + +- type: entity + parent: MaterialBase + id: MaterialNormality + suffix: Full + name: normality crystal + components: + - type: Sprite + sprite: Objects/Materials/materials.rsi + layers: + - state: normality_3 + map: ["base"] + - type: Appearance + - type: Material + - type: PhysicalComposition + materialComposition: + Normality: 100 + - type: Tag + tags: + - NormalityCrystal + - RawMaterial + - type: Stack + stackType: Normality + baseLayer: base + layerStates: + - normality + - normality_2 + - normality_3 + count: 5 + - type: Item + size: Small + +- type: entity + parent: MaterialNormality + id: MaterialNormality1 + suffix: 1 + components: + - type: Sprite + state: normality + - type: Stack + count: 1 + +- type: entity + parent: MaterialNormality1 + id: MaterialNormality3 + suffix: 3 + components: + - type: Stack + count: 3 + +- type: entity + parent: MaterialNormality1 + id: MaterialNormality5 + suffix: 5 + components: + - type: Stack + count: 5 diff --git a/Resources/Prototypes/Entities/Objects/Materials/materials.yml b/Resources/Prototypes/Entities/Objects/Materials/materials.yml index e71a163b5d..c72e503b49 100644 --- a/Resources/Prototypes/Entities/Objects/Materials/materials.yml +++ b/Resources/Prototypes/Entities/Objects/Materials/materials.yml @@ -419,6 +419,58 @@ - type: Stack count: 1 +- type: entity + parent: MaterialBase + id: MaterialPyrotton + name: pyrotton + suffix: Full + components: + - type: Stack + stackType: Pyrotton + baseLayer: base + layerStates: + - pyrotton + - pyrotton_2 + - pyrotton_3 + - type: Sprite + state: pyrotton_3 + layers: + - state: pyrotton_3 + map: ["base"] + - type: Appearance + - type: Food + requiresSpecialDigestion: true + - type: SolutionContainerManager + solutions: + food: + maxVol: 10 + reagents: + - ReagentId: Fiber + Quantity: 5 + - ReagentId: Phlogiston + Quantity: 5 + - type: Extractable + juiceSolution: + reagents: + - ReagentId: Fiber + Quantity: 3 + - ReagentId: Phlogiston + Quantity: 3 + - type: Tag + tags: + - ClothMade + - RawMaterial + +- type: entity + parent: MaterialPyrotton + id: MaterialPyrotton1 + suffix: Single + components: + - type: Sprite + state: pyrotton + - type: Stack + count: 1 + - type: entity parent: MaterialBase id: MaterialBananium diff --git a/Resources/Prototypes/Entities/Objects/Materials/ore.yml b/Resources/Prototypes/Entities/Objects/Materials/ore.yml index bf7dbfad5a..521d3cf1ec 100644 --- a/Resources/Prototypes/Entities/Objects/Materials/ore.yml +++ b/Resources/Prototypes/Entities/Objects/Materials/ore.yml @@ -344,4 +344,52 @@ suffix: Single components: - type: Stack - count: 1 \ No newline at end of file + count: 1 + +- type: entity + parent: OreBase + id: BluespaceOre + name: bluespace ore + suffix: Full + components: + - type: Stack + stackType: BluespaceOre + - type: Sprite + state: bluespace + - type: Item + - type: Material + - type: PhysicalComposition + materialComposition: + RawBluespace: 100 + +- type: entity + parent: BluespaceOre + id: BluespaceOre1 + suffix: Single + components: + - type: Stack + count: 1 + +- type: entity + parent: OreBase + id: NormalityOre + name: normality ore + suffix: Full + components: + - type: Stack + stackType: NormalityOre + - type: Sprite + state: normality + - type: Item + - type: Material + - type: PhysicalComposition + materialComposition: + RawNormality: 100 + +- type: entity + parent: NormalityOre + id: NormalityOre1 + suffix: Single + components: + - type: Stack + count: 1 diff --git a/Resources/Prototypes/Entities/Objects/Materials/parts.yml b/Resources/Prototypes/Entities/Objects/Materials/parts.yml index db3d9d3541..aa6e44f71f 100644 --- a/Resources/Prototypes/Entities/Objects/Materials/parts.yml +++ b/Resources/Prototypes/Entities/Objects/Materials/parts.yml @@ -70,13 +70,35 @@ Quantity: 0.5 - type: UserInterface interfaces: - - key: enum.ShortConstructionUiKey.Key - type: ShortConstructionMenuBUI + enum.ShortConstructionUiKey.Key: + type: ShortConstructionMenuBUI - type: ActivatableUI key: enum.ShortConstructionUiKey.Key - type: ShortConstruction - prototypes: - - Grille + entries: + - prototype: Grille + - prototype: GrilleDiagonal + - category: + name: Railings + icon: + sprite: Structures/Walls/railing.rsi + state: side + entries: + - prototype: Railing + - prototype: RailingCorner + - prototype: RailingRound + - prototype: RailingCornerSmall + - category: + name: Glass + icon: + sprite: Objects/Materials/Sheets/glass.rsi + state: rglass_3 + entries: + - prototype: SheetRPGlass + - prototype: SheetRPGlass0 + - prototype: SheetRUGlass + - prototype: SheetRUGlass0 + - prototype: SheetRGlass # WD EDIT START - type: Tag tags: diff --git a/Resources/Prototypes/Entities/Objects/Materials/shards.yml b/Resources/Prototypes/Entities/Objects/Materials/shards.yml index 9e832cd473..5e0b8890cc 100644 --- a/Resources/Prototypes/Entities/Objects/Materials/shards.yml +++ b/Resources/Prototypes/Entities/Objects/Materials/shards.yml @@ -17,7 +17,7 @@ shard2: "" shard3: "" - type: MeleeWeapon - attackRate: 1.5 + attackRate: 1 damage: types: Slash: 3.5 @@ -64,11 +64,11 @@ - !type:DoActsBehavior acts: [ "Destruction" ] - type: StepTrigger - triggerGroups: # WD EDIT + triggerGroups: types: - Shard intersectRatio: 0.2 - - type: ShoesRequiredStepTrigger + - type: ClothingRequiredStepTrigger - type: Slippery slipSound: path: /Audio/Effects/glass_step.ogg @@ -96,7 +96,7 @@ - type: DamageUserOnTrigger damage: types: - Piercing: 5 + Piercing: 4.5 - type: Tag tags: - GlassShard @@ -121,6 +121,10 @@ components: - type: Sprite color: "#96cdef" + - type: MeleeWeapon + damage: + types: + Slash: 4.5 - type: WelderRefinable refineResult: - id: SheetGlass1 @@ -128,7 +132,7 @@ - type: DamageUserOnTrigger damage: types: - Piercing: 5 + Piercing: 5.5 - type: Tag tags: - ReinforcedGlassShard @@ -153,6 +157,10 @@ components: - type: Sprite color: "#FF72E7" + - type: MeleeWeapon + damage: + types: + Slash: 5.5 - type: WelderRefinable refineResult: - id: SheetGlass1 @@ -160,7 +168,7 @@ - type: DamageUserOnTrigger damage: types: - Piercing: 5 + Piercing: 6.5 - type: Tag tags: - PlasmaGlassShard @@ -187,6 +195,11 @@ components: - type: Sprite color: "#8eff7a" + - type: MeleeWeapon + damage: + types: + Slash: 4.5 + Radiation: 2 - type: WelderRefinable refineResult: - id: SheetGlass1 @@ -194,8 +207,8 @@ - type: DamageUserOnTrigger damage: types: - Piercing: 3 - Radiation: 2 + Piercing: 5 + Radiation: 2.5 - type: Tag tags: - UraniumGlassShard diff --git a/Resources/Prototypes/Entities/Objects/Misc/books.yml b/Resources/Prototypes/Entities/Objects/Misc/books.yml index 043ea4b0fe..fca4b5c59d 100644 --- a/Resources/Prototypes/Entities/Objects/Misc/books.yml +++ b/Resources/Prototypes/Entities/Objects/Misc/books.yml @@ -22,11 +22,10 @@ contentSize: 12000 - type: ActivatableUI key: enum.PaperUiKey.Key - closeOnHandDeselect: false - type: UserInterface interfaces: - - key: enum.PaperUiKey.Key - type: PaperBoundUserInterface + enum.PaperUiKey.Key: + type: PaperBoundUserInterface - type: Tag tags: - Book @@ -55,7 +54,7 @@ color: "#0a2a6b" - state: decor_wingette color: "#082561" - - state: icon_text + - state: icon_text color: gold - state: icon_planet color: "#42b6f5" @@ -367,7 +366,7 @@ description: Each book is unique! What is hidden in this one? components: - type: RandomMetadata - nameSegments: + nameSegments: - book_hint_appearance - book_type - type: RandomSprite @@ -416,7 +415,7 @@ icon_skull: "" icon_text: "" icon_text2: "" - icon_text3: "" + icon_text3: "" overlay: overlay_blood: "" overlay_dirt: Sixteen @@ -457,7 +456,7 @@ - book_story_element_trait - "." storySeparator: "" - + - type: entity parent: BookBase id: BookAtmosDistro @@ -536,4 +535,4 @@ - state: icon_corner color: gold - type: Paper - content: book-text-atmos-vents \ No newline at end of file + content: book-text-atmos-vents diff --git a/Resources/Prototypes/Entities/Objects/Misc/chopsticks.yml b/Resources/Prototypes/Entities/Objects/Misc/chopsticks.yml new file mode 100644 index 0000000000..ed49053f8a --- /dev/null +++ b/Resources/Prototypes/Entities/Objects/Misc/chopsticks.yml @@ -0,0 +1,30 @@ +- type: entity + parent: BaseItem + id: ChopSticks + name: chopsticks + description: A very traditional utensil. + components: + - type: Sprite + sprite: Objects/Misc/chopstick.rsi + state: icon + - type: Item + sprite: Objects/Misc/chopstick.rsi + size: Small + - type: Utensil + types: + - Fork + +- type: entity + parent: BaseItem + name: paired chopsticks + id: PairedChopsticks + description: You should probably seperate them. + components: + - type: SpawnItemsOnUse + items: + - id: ChopSticks + sound: + path: /Audio/Effects/chopstickbreak.ogg + - type: Sprite + sprite: Objects/Misc/chopstick.rsi + state: paired diff --git a/Resources/Prototypes/Entities/Objects/Misc/fire_extinguisher.yml b/Resources/Prototypes/Entities/Objects/Misc/fire_extinguisher.yml index 1eec04ece6..059e1d980c 100644 --- a/Resources/Prototypes/Entities/Objects/Misc/fire_extinguisher.yml +++ b/Resources/Prototypes/Entities/Objects/Misc/fire_extinguisher.yml @@ -59,6 +59,9 @@ enabled: True: { state: fire_extinguisher_closed } False: { state: fire_extinguisher_open } + - type: PhysicalComposition + materialComposition: + Steel: 100 - type: entity name: extinguisher spray diff --git a/Resources/Prototypes/Entities/Objects/Misc/fluff_lights.yml b/Resources/Prototypes/Entities/Objects/Misc/fluff_lights.yml index a42b2fa113..a02f94215b 100644 --- a/Resources/Prototypes/Entities/Objects/Misc/fluff_lights.yml +++ b/Resources/Prototypes/Entities/Objects/Misc/fluff_lights.yml @@ -212,6 +212,11 @@ enabled: false radius: 8 energy: 5 + - type: ItemSlots + slots: + cell_slot: + name: power-cell-slot-component-slot-name-default + startingItem: PowerCellMedium - type: Anchorable - type: Damageable damageContainer: Inorganic diff --git a/Resources/Prototypes/Entities/Objects/Misc/identification_cards.yml b/Resources/Prototypes/Entities/Objects/Misc/identification_cards.yml index 4af517bc52..0de971e001 100644 --- a/Resources/Prototypes/Entities/Objects/Misc/identification_cards.yml +++ b/Resources/Prototypes/Entities/Objects/Misc/identification_cards.yml @@ -902,9 +902,9 @@ default: PassengerIDCard - type: UserInterface interfaces: - - key: enum.AgentIDCardUiKey.Key + enum.AgentIDCardUiKey.Key: type: AgentIDCardBoundUserInterface - - key: enum.ChameleonUiKey.Key + enum.ChameleonUiKey.Key: type: ChameleonBoundUserInterface - type: entity diff --git a/Resources/Prototypes/Entities/Objects/Misc/land_mine.yml b/Resources/Prototypes/Entities/Objects/Misc/land_mine.yml index a6ff916089..97053660a1 100644 --- a/Resources/Prototypes/Entities/Objects/Misc/land_mine.yml +++ b/Resources/Prototypes/Entities/Objects/Misc/land_mine.yml @@ -40,7 +40,7 @@ params: maxDistance: 10 - type: StepTrigger - triggerGroups: # WD EDIT + triggerGroups: types: - Landmine requiredTriggeredSpeed: 0 diff --git a/Resources/Prototypes/Entities/Objects/Misc/machine_parts.yml b/Resources/Prototypes/Entities/Objects/Misc/machine_parts.yml index 341acb52f0..8538a4342d 100644 --- a/Resources/Prototypes/Entities/Objects/Misc/machine_parts.yml +++ b/Resources/Prototypes/Entities/Objects/Misc/machine_parts.yml @@ -16,6 +16,10 @@ sound: /Audio/SimpleStation14/Items/Handling/component_drop.ogg - type: EmitSoundOnLand sound: /Audio/SimpleStation14/Items/Handling/component_drop.ogg +# Rating 1 + - type: GuideHelp + guides: + - MachineUpgrading # Rating 1 @@ -69,3 +73,153 @@ - type: ReverseEngineering # Nyano recipes: - MatterBinStockPart + +# Rating 2 + +- type: entity + id: AdvancedCapacitorStockPart + name: advanced capacitor + parent: CapacitorStockPart + description: An advanced capacitor used in the construction of a variety of devices. + suffix: Rating 2 + components: + - type: Sprite + state: adv_capacitor + - type: MachinePart + rating: 2 + - type: ReverseEngineering # Nyano + difficulty: 2 + recipes: + - AdvancedCapacitorStockPart + +- type: entity + id: NanoManipulatorStockPart + name: advanced manipulator + parent: MicroManipulatorStockPart + description: An advanced manipulator used in the construction of a variety of devices. + suffix: Rating 2 + components: + - type: Sprite + state: nano_mani + - type: MachinePart + rating: 2 + - type: ReverseEngineering # Nyano + difficulty: 2 + recipes: + - NanoManipulatorStockPart + +- type: entity + id: AdvancedMatterBinStockPart + name: advanced matter bin + parent: MatterBinStockPart + description: An advanced matter bin used in the construction of a variety of devices. + suffix: Rating 2 + components: + - type: Sprite + state: advanced_matter_bin + - type: MachinePart + rating: 2 + - type: ReverseEngineering # Nyano + difficulty: 2 + recipes: + - AdvancedMatterBinStockPart + +# Rating 3 + +- type: entity + id: SuperCapacitorStockPart + name: super capacitor + parent: CapacitorStockPart + description: A super capacitor used in the construction of a variety of devices. + suffix: Rating 3 + components: + - type: Sprite + state: super_capacitor + - type: MachinePart + rating: 3 + - type: ReverseEngineering # Nyano + difficulty: 3 + recipes: + - SuperCapacitorStockPart + +- type: entity + id: PicoManipulatorStockPart + name: super manipulator + parent: MicroManipulatorStockPart + description: A super manipulator used in the construction of a variety of devices. + suffix: Rating 3 + components: + - type: Sprite + state: pico_mani + - type: MachinePart + rating: 3 + - type: ReverseEngineering # Nyano + difficulty: 3 + recipes: + - PicoManipulatorStockPart + +- type: entity + id: SuperMatterBinStockPart + name: super matter bin + parent: MatterBinStockPart + description: A super matter bin used in the construction of a variety of devices. + suffix: Rating 3 + components: + - type: Sprite + state: super_matter_bin + - type: MachinePart + rating: 3 + - type: ReverseEngineering # Nyano + difficulty: 3 + recipes: + - SuperMatterBinStockPart + +# Rating 4 + +- type: entity + id: BluespaceCapacitorStockPart + name: bluespace capacitor + parent: CapacitorStockPart + description: A bluespace capacitor used in the construction of a variety of devices. + suffix: Rating 4 + components: + - type: Sprite + state: quadratic_capacitor + - type: MachinePart + rating: 4 + - type: ReverseEngineering # Nyano + difficulty: 4 + recipes: + - BluespaceCapacitorStockPart + +- type: entity + id: BluespaceManipulatorStockPart + name: bluespace manipulator + parent: MicroManipulatorStockPart + description: A bluespace manipulator used in the construction of a variety of devices. + suffix: Rating 4 + components: + - type: Sprite + state: femto_mani + - type: MachinePart + rating: 4 + - type: ReverseEngineering # Nyano + difficulty: 4 + recipes: + - BluespaceManipulatorStockPart + +- type: entity + id: BluespaceMatterBinStockPart + name: bluespace matter bin + parent: MatterBinStockPart + description: A bluespace matter bin used in the construction of a variety of devices. + suffix: Rating 4 + components: + - type: Sprite + state: bluespace_matter_bin + - type: MachinePart + rating: 4 + - type: ReverseEngineering # Nyano + difficulty: 4 + recipes: + - BluespaceMatterBinStockPart diff --git a/Resources/Prototypes/Entities/Objects/Misc/mail_capsule.yml b/Resources/Prototypes/Entities/Objects/Misc/mail_capsule.yml new file mode 100644 index 0000000000..bd6c9057cd --- /dev/null +++ b/Resources/Prototypes/Entities/Objects/Misc/mail_capsule.yml @@ -0,0 +1,139 @@ +- type: entity + name: mail capsule + suffix: Primed + id: MailCapsulePrimed + parent: BaseItem + components: + - type: ThrowingAngle + angle: 180 + - type: EmbeddableProjectile + minimumSpeed: 1 + removalTime: 0.1 + - type: Tag + tags: + - MailCapsule + - Trash + - type: Sprite + sprite: Objects/Misc/mail_capsule.rsi + layers: + - state: icon-empty + - type: ItemSlots + slots: + mail_slot: + insertVerbText: Put in Mail + ejectVerbText: Take out Mail + name: Mail + startingItem: null + whitelist: + tags: + - Book + - Document + - Mail + components: + - Mail + - Paper + - HyperlinkBook + insertOnInteract: true + priority: 3 + food_slot: + insertVerbText: Put in Food + ejectVerbText: Take out Food + name: Food + startingItem: null + whitelist: + components: + - Food + insertOnInteract: true + priority: 2 + cash_slot: + insertVerbText: Put in Cash + ejectVerbText: Take out Cash + name: Cash + startingItem: null + whitelist: + components: + - Currency + insertOnInteract: true + priority: 1 + - type: ContainerContainer + containers: + storagebase: !type:Container + showEnts: False + occludes: true + ents: [] + mail_slot: !type:ContainerSlot + showEnts: False + occludes: true + ent: null + food_slot: !type:ContainerSlot + showEnts: False + occludes: true + ent: null + cash_slot: !type:ContainerSlot + showEnts: False + occludes: true + ent: null + - type: Appearance + - type: ItemMapper + mapLayers: + icon-food: + whitelist: + components: + - Food + icon-cash: + whitelist: + components: + - Currency + icon-mail: + whitelist: + tags: + - Book + - Document + - Mail + components: + - Mail + - Paper + - HyperlinkBook + sprite: Objects/Misc/mail_capsule.rsi + - type: Dumpable + - type: Damageable + damageContainer: Inorganic + - type: Destructible + thresholds: + - trigger: + !type:DamageTrigger + damage: 20 #excess damage avoids cost of spawning entities. + behaviors: + - !type:DoActsBehavior + acts: [ "Destruction" ] + - trigger: + !type:DamageTrigger + damage: 10 + behaviors: + - !type:PlaySoundBehavior + sound: + collection: GlassBreak + - !type:EmptyAllContainersBehaviour + - !type:DoActsBehavior + acts: [ "Destruction" ] + - type: DamageOnLand + damage: + types: + Blunt: 9.5 + +- type: entity + name: mail capsule box + parent: BoxCardboard + id: BoxMailCapsulePrimed + description: A box of primed mail capsules. + components: + - type: Storage + grid: + - 0,0,4,3 + - type: StorageFill + contents: + - id: MailCapsulePrimed + amount: 10 + - type: Sprite + layers: + - state: box diff --git a/Resources/Prototypes/Entities/Objects/Misc/medalcase.yml b/Resources/Prototypes/Entities/Objects/Misc/medalcase.yml index a421c1e9e9..35000b3fba 100644 --- a/Resources/Prototypes/Entities/Objects/Misc/medalcase.yml +++ b/Resources/Prototypes/Entities/Objects/Misc/medalcase.yml @@ -17,6 +17,9 @@ - type: Storage grid: - 0,0,7,1 + whitelist: + tags: + - Medal - type: StorageFill contents: - id: ClothingNeckGoldmedal diff --git a/Resources/Prototypes/Entities/Objects/Misc/paper.yml b/Resources/Prototypes/Entities/Objects/Misc/paper.yml index d1527ceff5..d3db29b420 100644 --- a/Resources/Prototypes/Entities/Objects/Misc/paper.yml +++ b/Resources/Prototypes/Entities/Objects/Misc/paper.yml @@ -18,12 +18,11 @@ - type: PaperLabelType - type: ActivatableUI key: enum.PaperUiKey.Key - closeOnHandDeselect: false requireHands: false - type: UserInterface interfaces: - - key: enum.PaperUiKey.Key - type: PaperBoundUserInterface + enum.PaperUiKey.Key: + type: PaperBoundUserInterface - type: Item size: Tiny - type: Tag @@ -32,6 +31,7 @@ - Trash - Paper - type: Appearance + - type: FaxableObject - type: PaperVisuals - type: Flammable fireSpread: true @@ -270,8 +270,8 @@ key: enum.PaperUiKey.Key - type: UserInterface interfaces: - - key: enum.PaperUiKey.Key - type: PaperBoundUserInterface + enum.PaperUiKey.Key: + type: PaperBoundUserInterface - type: entity parent: Paper @@ -714,10 +714,10 @@ key: enum.CargoConsoleUiKey.Orders - type: UserInterface interfaces: - - key: enum.CargoConsoleUiKey.Orders - type: CargoOrderConsoleBoundUserInterface - - key: enum.StorageUiKey.Key - type: StorageBoundUserInterface + enum.CargoConsoleUiKey.Orders: + type: CargoOrderConsoleBoundUserInterface + enum.StorageUiKey.Key: + type: StorageBoundUserInterface - type: MeleeWeapon wideAnimationRotation: 180 damage: diff --git a/Resources/Prototypes/Entities/Objects/Misc/pet_carrier.yml b/Resources/Prototypes/Entities/Objects/Misc/pet_carrier.yml index 84c9c7c752..b7f296cbac 100644 --- a/Resources/Prototypes/Entities/Objects/Misc/pet_carrier.yml +++ b/Resources/Prototypes/Entities/Objects/Misc/pet_carrier.yml @@ -30,7 +30,7 @@ radius: 0.45 density: 25 mask: - - SmallMobMask + - ItemMask layer: - MachineLayer - type: EntityStorage diff --git a/Resources/Prototypes/Entities/Objects/Misc/spider_web.yml b/Resources/Prototypes/Entities/Objects/Misc/spider_web.yml index bb284000a7..68ba94b578 100644 --- a/Resources/Prototypes/Entities/Objects/Misc/spider_web.yml +++ b/Resources/Prototypes/Entities/Objects/Misc/spider_web.yml @@ -76,6 +76,9 @@ ignoreWhitelist: components: - IgnoreSpiderWeb + - type: Tag + tags: + - ArachneWeb - type: entity id: SpiderWebClown diff --git a/Resources/Prototypes/Entities/Objects/Misc/subdermal_implants.yml b/Resources/Prototypes/Entities/Objects/Misc/subdermal_implants.yml index b6648b3bd4..b5e7d747c2 100644 --- a/Resources/Prototypes/Entities/Objects/Misc/subdermal_implants.yml +++ b/Resources/Prototypes/Entities/Objects/Misc/subdermal_implants.yml @@ -126,7 +126,7 @@ ents: [ ] - type: UserInterface interfaces: - - key: enum.StorageUiKey.Key + enum.StorageUiKey.Key: type: StorageBoundUserInterface - type: entity @@ -160,8 +160,8 @@ Telecrystal: 0 - type: UserInterface interfaces: - - key: enum.StoreUiKey.Key - type: StoreBoundUserInterface + enum.StoreUiKey.Key: + type: StoreBoundUserInterface - type: entity parent: BaseSubdermalImplant diff --git a/Resources/Prototypes/Entities/Objects/Misc/torch.yml b/Resources/Prototypes/Entities/Objects/Misc/torch.yml index 0efb753e0d..50e8f65890 100644 --- a/Resources/Prototypes/Entities/Objects/Misc/torch.yml +++ b/Resources/Prototypes/Entities/Objects/Misc/torch.yml @@ -25,6 +25,8 @@ color: "#FFFFFF" visible: false shader: unshaded + - map: [ enum.ExpendableLightVisualLayers.Overlay ] + state: torch_nocloth - type: Icon sprite: Objects/Misc/torch.rsi state: icon diff --git a/Resources/Prototypes/Entities/Objects/Misc/translator_implanters.yml b/Resources/Prototypes/Entities/Objects/Misc/translator_implanters.yml index 8b5b262ff8..53da8e72a5 100644 --- a/Resources/Prototypes/Entities/Objects/Misc/translator_implanters.yml +++ b/Resources/Prototypes/Entities/Objects/Misc/translator_implanters.yml @@ -10,7 +10,7 @@ name: basic common translator implanter components: - type: Implanter - implant: BasicGalacticCommonTranslatorImplant + implant: BasicTauCetiBasicTranslatorImplant - type: entity id: AdvancedGalaticCommonTranslatorImplanter @@ -18,7 +18,7 @@ name: advanced common translator implanter components: - type: Implanter - implant: GalacticCommonTranslatorImplant + implant: TauCetiBasicTranslatorImplant - type: entity id: BubblishTranslatorImplanter @@ -37,9 +37,9 @@ implant: NekomimeticTranslatorImplant - type: entity - id: DraconicTranslatorImplanter + id: DraconicTranslatorImplanter # Intended for Admins Only, this item is for lore reasons not obtainable. parent: [ BaseTranslatorImplanter ] - name: draconic translator implant + name: unathi translator implant components: - type: Implanter implant: DraconicTranslatorImplant @@ -75,3 +75,19 @@ components: - type: Implanter implant: MofficTranslatorImplant + +- type: entity + id: ValyrianStandardTranslatorImplanter + parent: [ BaseTranslatorImplanter ] + name: valyrian standard translator implant + components: + - type: Implanter + implant: ValyrianStandardTranslatorImplant + +- type: entity + id: AzazibaTranslatorImplanter + parent: [ BaseTranslatorImplanter ] + name: azaziba translator implant + components: + - type: Implanter + implant: AzazibaTranslatorImplant \ No newline at end of file diff --git a/Resources/Prototypes/Entities/Objects/Misc/utensils.yml b/Resources/Prototypes/Entities/Objects/Misc/utensils.yml index 4250669581..86667f094f 100644 --- a/Resources/Prototypes/Entities/Objects/Misc/utensils.yml +++ b/Resources/Prototypes/Entities/Objects/Misc/utensils.yml @@ -120,3 +120,28 @@ - Plastic - Trash - Knife + +- type: entity + parent: UtensilBase + id: BarSpoon + name: bar spoon + description: Your personal helper to mix drinks and changes lives. + components: + - type: Tag + tags: + - Metal + - type: Sprite + state: bar_spoon + - type: Item + heldPrefix: spoon + - type: Utensil + types: + - Spoon + - type: MeleeWeapon + wideAnimationRotation: 180 + attackRate: 2 + damage: + types: + Blunt: 2 + - type: Shovel + speedModifier: 0.05 # nah diff --git a/Resources/Prototypes/Entities/Objects/Power/portable_recharger.yml b/Resources/Prototypes/Entities/Objects/Power/portable_recharger.yml new file mode 100644 index 0000000000..e3213ac8c9 --- /dev/null +++ b/Resources/Prototypes/Entities/Objects/Power/portable_recharger.yml @@ -0,0 +1,38 @@ +- type: entity + parent: Clothing + id: PortableRecharger + name: portable recharger + description: High-tech recharger adapted for portability + components: + - type: Item + size: Huge + - type: Sprite + sprite: Objects/Power/portable_recharger.rsi + state: charging + - type: Clothing + equippedPrefix: charging + quickEquip: false + slots: + - back + - type: Charger + slotId: charger_slot + portable: true + - type: PowerChargerVisuals + - type: ApcPowerReceiver + needsPower: false + powerLoad: 0 + - type: StaticPrice + price: 500 + - type: Tag + tags: [] # ignore "WhitelistChameleon" tag + - type: ContainerContainer + containers: + charger_slot: !type:ContainerSlot + - type: ItemSlots + slots: + charger_slot: + ejectOnInteract: true + whitelist: + components: + - HitscanBatteryAmmoProvider + - ProjectileBatteryAmmoProvider diff --git a/Resources/Prototypes/Entities/Objects/Shields/shields.yml b/Resources/Prototypes/Entities/Objects/Shields/shields.yml index 3647bdf0db..34f517b1a7 100644 --- a/Resources/Prototypes/Entities/Objects/Shields/shields.yml +++ b/Resources/Prototypes/Entities/Objects/Shields/shields.yml @@ -314,7 +314,7 @@ name: mirror shield parent: BaseShield id: MirrorShield - description: Eerily glows red... you hear the geometer whispering + description: Glows an eerie red. You hear the Geometer whispering... components: - type: Sprite state: mirror-icon @@ -322,6 +322,7 @@ 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. @@ -409,6 +410,7 @@ - type: Reflect enabled: false reflectProb: 0.95 + innate: true reflects: - Energy - type: Blocking diff --git a/Resources/Prototypes/Entities/Objects/Specific/Cargo/cargo_pallet.yml b/Resources/Prototypes/Entities/Objects/Specific/Cargo/cargo_pallet.yml index c628d199a9..07bdee63cf 100644 --- a/Resources/Prototypes/Entities/Objects/Specific/Cargo/cargo_pallet.yml +++ b/Resources/Prototypes/Entities/Objects/Specific/Cargo/cargo_pallet.yml @@ -1,7 +1,7 @@ - type: entity id: CargoPallet name: cargo pallet - description: Designates valid items to sell to CentCom when a shuttle is recalled. + description: Common fixture of logistics and cargo. Subtle reminder where crates go during transport to avoid bruised shins. parent: BaseStructure components: - type: InteractionOutline @@ -58,17 +58,20 @@ - type: entity id: CargoPalletSell name: cargo selling pallet - description: Designates valid items to sell with a selling computer, or to CentCom when a shuttle is recalled. + description: Designates valid items to sell. parent: CargoPallet components: - type: CargoPallet palletType: sell - type: Sprite drawdepth: FloorTiles - layers: - - sprite: Structures/cargo_pallets.rsi - state: cargo_pallet_sell - + sprite: Structures/cargo_pallets.rsi + - type: Icon + sprite: Structures/cargo_pallets.rsi + state: cargo_pallet_sell + - type: IconSmooth + key: cargo_pallet_sell + base: cargo_pallet_sell_ - type: entity id: CargoPalletBuy @@ -80,7 +83,10 @@ palletType: buy - type: Sprite drawdepth: FloorTiles - layers: - - sprite: Structures/cargo_pallets.rsi - state: cargo_pallet_buy - + sprite: Structures/cargo_pallets.rsi + - type: Icon + sprite: Structures/cargo_pallets.rsi + state: cargo_pallet_buy + - type: IconSmooth + key: cargo_pallet_buy + base: cargo_pallet_buy_ diff --git a/Resources/Prototypes/Entities/Objects/Specific/Chapel/bibles.yml b/Resources/Prototypes/Entities/Objects/Specific/Chapel/bibles.yml index 78f04163bb..0c3945929b 100644 --- a/Resources/Prototypes/Entities/Objects/Specific/Chapel/bibles.yml +++ b/Resources/Prototypes/Entities/Objects/Specific/Chapel/bibles.yml @@ -40,8 +40,8 @@ - 0,0,0,1 - type: UserInterface interfaces: - - key: enum.StorageUiKey.Key - type: StorageBoundUserInterface + enum.StorageUiKey.Key: + type: StorageBoundUserInterface - type: MeleeWeapon # Nyanotrasen - Bibles do Holy damage damage: types: diff --git a/Resources/Prototypes/Entities/Objects/Specific/Chapel/urn.yml b/Resources/Prototypes/Entities/Objects/Specific/Chapel/urn.yml index c778860084..55a58ef18a 100644 --- a/Resources/Prototypes/Entities/Objects/Specific/Chapel/urn.yml +++ b/Resources/Prototypes/Entities/Objects/Specific/Chapel/urn.yml @@ -9,8 +9,8 @@ - 0,0,0,1 - type: UserInterface interfaces: - - key: enum.StorageUiKey.Key - type: StorageBoundUserInterface + enum.StorageUiKey.Key: + type: StorageBoundUserInterface - type: Sprite sprite: Objects/Specific/Chapel/chaplainurn.rsi state: icon diff --git a/Resources/Prototypes/Entities/Objects/Specific/Hydroponics/leaves.yml b/Resources/Prototypes/Entities/Objects/Specific/Hydroponics/leaves.yml index b847416211..c26ba925e0 100644 --- a/Resources/Prototypes/Entities/Objects/Specific/Hydroponics/leaves.yml +++ b/Resources/Prototypes/Entities/Objects/Specific/Hydroponics/leaves.yml @@ -65,7 +65,101 @@ - Smokable - type: Item size: Tiny + +- type: entity + name: rainbow cannabis leaves + parent: LeavesCannabis + id: LeavesCannabisRainbow + description: "Is it supposed to be glowing like that...?" + components: + - type: Sprite + sprite: Objects/Specific/Hydroponics/rainbow_cannabis.rsi + - type: Produce + seedId: rainbowCannabis + - type: PointLight + radius: 1.5 + energy: 2 + - type: RgbLightController + cycleRate: 0.6 + - type: SolutionContainerManager + solutions: + food: + reagents: + - ReagentId: SpaceDrugs + Quantity: 3 + - ReagentId: Lipolicide + Quantity: 3 + - ReagentId: MindbreakerToxin + Quantity: 2 + - ReagentId: Happiness + Quantity: 2 +# - ReagentId: ColorfulReagent +# Quantity: 1 + - ReagentId: Psicodine + Quantity: 0.6 +- type: entity + name: dried rainbow cannabis leaves + parent: LeavesCannabisDried + id: LeavesCannabisRainbowDried + description: "Dried rainbow cannabis leaves, ready to be ground." + components: + - type: Stack + stackType: LeavesCannabisRainbowDried + count: 1 + - type: SolutionContainerManager + solutions: + food: + maxVol: 8.5 #fuck you saveload test fail + reagents: + - ReagentId: SpaceDrugs + Quantity: 2.4 + - ReagentId: Lipolicide + Quantity: 2.4 + - ReagentId: MindbreakerToxin + Quantity: 1.6 + - ReagentId: Happiness + Quantity: 1.6 +# - ReagentId: ColorfulReagent +# Quantity: 0.8 + - ReagentId: Psicodine + Quantity: 0.48 + - type: Sprite + sprite: Objects/Specific/Hydroponics/rainbow_cannabis.rsi + state: dried + +- type: entity + name: ground rainbow cannabis + parent: GroundCannabis + id: GroundCannabisRainbow + description: "Ground rainbow cannabis, ready to take you on a trip." + components: + - type: Stack + stackType: GroundCannabisRainbow + count: 1 + - type: SolutionContainerManager + solutions: + food: + reagents: + - ReagentId: SpaceDrugs + Quantity: 4 + - ReagentId: Lipolicide + Quantity: 4 + - ReagentId: MindbreakerToxin + Quantity: 2.66 + - ReagentId: Happiness + Quantity: 2.66 +# - ReagentId: ColorfulReagent +# Quantity: 1.33 + - ReagentId: Psicodine + Quantity: 0.8 + - type: Sprite + sprite: Objects/Specific/Hydroponics/rainbow_cannabis.rsi + state: powderpile_rainbow + color: white + - type: Construction + graph: smokeableGroundCannabisRainbow + node: groundRainbow - type: entity name: tobacco leaves diff --git a/Resources/Prototypes/Entities/Objects/Specific/Hydroponics/seeds.yml b/Resources/Prototypes/Entities/Objects/Specific/Hydroponics/seeds.yml index 2b232d643d..92aa22a8ba 100644 --- a/Resources/Prototypes/Entities/Objects/Specific/Hydroponics/seeds.yml +++ b/Resources/Prototypes/Entities/Objects/Specific/Hydroponics/seeds.yml @@ -285,6 +285,17 @@ - type: Sprite sprite: Objects/Specific/Hydroponics/cannabis.rsi +- type: entity + parent: SeedBase + name: packet of rainbow cannabis seeds + description: "These seeds grow into rainbow weed. Groovy... and also highly addictive." + id: RainbowCannabisSeeds + components: + - type: Seed + seedId: rainbowCannabis + - type: Sprite + sprite: Objects/Specific/Hydroponics/rainbow_cannabis.rsi + - type: entity parent: SeedBase name: packet of nettle seeds @@ -571,3 +582,13 @@ seedId: cotton - type: Sprite sprite: Objects/Specific/Hydroponics/cotton.rsi + +- type: entity + parent: SeedBase + name: packet of pyrotton seeds + id: PyrottonSeeds + components: + - type: Seed + seedId: pyrotton + - type: Sprite + sprite: Objects/Specific/Hydroponics/pyrotton.rsi diff --git a/Resources/Prototypes/Entities/Objects/Specific/Janitorial/janitor.yml b/Resources/Prototypes/Entities/Objects/Specific/Janitorial/janitor.yml index 527625b6fd..fe38c45b43 100644 --- a/Resources/Prototypes/Entities/Objects/Specific/Janitorial/janitor.yml +++ b/Resources/Prototypes/Entities/Objects/Specific/Janitorial/janitor.yml @@ -36,6 +36,9 @@ maxVol: 100 - type: UseDelay delay: 1 + - type: PhysicalComposition + materialComposition: + Plastic: 50 - type: Tag tags: - Mop @@ -115,6 +118,9 @@ coefficients: Blunt: 0.95 Slash: 0.95 + - type: PhysicalComposition + materialComposition: + Plastic: 50 - type: Tag tags: - WetFloorSign diff --git a/Resources/Prototypes/Entities/Objects/Specific/Janitorial/soap.yml b/Resources/Prototypes/Entities/Objects/Specific/Janitorial/soap.yml index f816a37486..5fe88f8d0c 100644 --- a/Resources/Prototypes/Entities/Objects/Specific/Janitorial/soap.yml +++ b/Resources/Prototypes/Entities/Objects/Specific/Janitorial/soap.yml @@ -24,7 +24,7 @@ paralyzeTime: 2 launchForwardsMultiplier: 1.5 - type: StepTrigger - triggerGroups: # WD EDIT + triggerGroups: types: - SlipEntity intersectRatio: 0.2 @@ -160,7 +160,7 @@ paralyzeTime: 5 launchForwardsMultiplier: 2.5 - type: StepTrigger - triggerGroups: # WD EDIT + triggerGroups: types: - SlipEntity intersectRatio: 0.04 @@ -204,7 +204,7 @@ - type: Slippery paralyzeTime: 2 - type: StepTrigger - triggerGroups: # WD EDIT + triggerGroups: types: - SlipEntity - type: Item diff --git a/Resources/Prototypes/Entities/Objects/Specific/Janitorial/spray.yml b/Resources/Prototypes/Entities/Objects/Specific/Janitorial/spray.yml index 0e19c03dee..cddf7f6075 100644 --- a/Resources/Prototypes/Entities/Objects/Specific/Janitorial/spray.yml +++ b/Resources/Prototypes/Entities/Objects/Specific/Janitorial/spray.yml @@ -5,6 +5,12 @@ suffix: Empty description: A spray bottle with an unscrewable top. components: + - type: Drink + solution: spray + ignoreEmpty: true + useSound: + path: /Audio/Effects/spray3.ogg + transferAmount: 10 - type: Tag tags: - Spray @@ -24,6 +30,8 @@ solution: spray - type: SolutionTransfer canChangeTransferAmount: true + - type: SolutionItemStatus + solution: spray - type: UseDelay - type: Spray transferAmount: 10 diff --git a/Resources/Prototypes/Entities/Objects/Specific/Janitorial/trashbag.yml b/Resources/Prototypes/Entities/Objects/Specific/Janitorial/trashbag.yml index f802ae1c5c..9927d836ba 100644 --- a/Resources/Prototypes/Entities/Objects/Specific/Janitorial/trashbag.yml +++ b/Resources/Prototypes/Entities/Objects/Specific/Janitorial/trashbag.yml @@ -22,6 +22,8 @@ tags: - Cartridge - Trash + - type: UseDelay + delay: 0.5 - type: Tag tags: - TrashBag diff --git a/Resources/Prototypes/Entities/Objects/Specific/Kitchen/foodcarts.yml b/Resources/Prototypes/Entities/Objects/Specific/Kitchen/foodcarts.yml index 0894d6a754..ca74dca8a7 100644 --- a/Resources/Prototypes/Entities/Objects/Specific/Kitchen/foodcarts.yml +++ b/Resources/Prototypes/Entities/Objects/Specific/Kitchen/foodcarts.yml @@ -44,8 +44,8 @@ - type: Appearance - type: UserInterface interfaces: - - key: enum.StorageUiKey.Key - type: StorageBoundUserInterface + enum.StorageUiKey.Key: + type: StorageBoundUserInterface - type: Storage maxItemSize: Normal grid: diff --git a/Resources/Prototypes/Entities/Objects/Specific/Mail/Items/boxes.yml b/Resources/Prototypes/Entities/Objects/Specific/Mail/Items/boxes.yml new file mode 100644 index 0000000000..536736fc90 --- /dev/null +++ b/Resources/Prototypes/Entities/Objects/Specific/Mail/Items/boxes.yml @@ -0,0 +1,212 @@ +# Mail-only boxes. If/when something uses these outside of the mail, move the entry into Catalog/Fills. + +- type: entity + name: scented soap sampler pack + parent: BoxCardboard + id: BoxSoapsAssorted + description: A box of various scented soaps. Ooh, lavender. + components: + - type: StorageFill + contents: + - id: SoapNT + amount: 1 + - id: Soap + amount: 1 + - id: SoapHomemade + amount: 1 + - id: SoapDeluxe + amount: 1 + - type: Storage + maxItemSize: Normal + grid: + - 0,0,3,1 + whitelist: + tags: + - Soap + - type: Sprite + layers: + - state: box + +- type: entity + name: scented soap sampler pack + parent: BoxCardboard + id: BoxSoapsAssortedOmega + description: A box of various scented soaps. Ooh, bluespace. + components: + - type: StorageFill + contents: + - id: SoapNT + amount: 1 + - id: Soap + amount: 1 + - id: SoapOmega + amount: 1 + - id: SoapDeluxe + amount: 1 + - type: Storage + maxItemSize: Normal + grid: + - 0,0,3,1 + whitelist: + tags: + - Soap + - type: Sprite + layers: + - state: box + +- type: entity + name: Build-a-Buddy kit + suffix: Human + parent: BoxHug + id: BoxBuildABuddyHuman + description: "\"Henry the Human\" Build-a-Buddy kit. Some assembly required." + components: + - type: StorageFill + contents: + - id: HeadHuman + amount: 1 + - id: TorsoHuman + amount: 1 + - id: LeftArmHuman + amount: 1 + - id: RightArmHuman + amount: 1 + - id: LeftHandHuman + amount: 1 + - id: RightHandHuman + amount: 1 + - id: LeftLegHuman + amount: 1 + - id: RightLegHuman + amount: 1 + - id: LeftFootHuman + amount: 1 + - id: RightFootHuman + amount: 1 + - type: Storage + grid: + - 0,0,4,3 + whitelist: + components: + - BodyPart + +# DeltaV - Goblins Aren't Real +#- type: entity +# name: Build-a-Buddy kit +# suffix: Goblin +# parent: BoxBuildABuddyHuman +# id: BoxBuildABuddyGoblin +# description: "\"Greta the Goblin\" Build-a-Buddy kit. Some assembly required." +# components: +# - type: StorageFill +# contents: +# - id: HeadGoblin +# amount: 1 +# - id: TorsoGoblin +# amount: 1 +# - id: LeftArmGoblin +# amount: 1 +# - id: RightArmGoblin +# amount: 1 +# - id: LeftHandGoblin +# amount: 1 +# - id: RightHandGoblin +# amount: 1 +# - id: LeftLegGoblin +# amount: 1 +# - id: RightLegGoblin +# amount: 1 +# - id: LeftFootGoblin +# amount: 1 +# - id: RightFootGoblin +# amount: 1 + +- type: entity + name: Build-a-Buddy kit + suffix: Reptilian + parent: BoxBuildABuddyHuman + id: BoxBuildABuddyReptilian + description: "\"Randy the Reptilian\" Build-a-Buddy kit. Some assembly required." + components: + - type: StorageFill + contents: + - id: HeadReptilian + amount: 1 + - id: TorsoReptilian + amount: 1 + - id: LeftArmReptilian + amount: 1 + - id: RightArmReptilian + amount: 1 + - id: LeftHandReptilian + amount: 1 + - id: RightHandReptilian + amount: 1 + - id: LeftLegReptilian + amount: 1 + - id: RightLegReptilian + amount: 1 + - id: LeftFootReptilian + amount: 1 + - id: RightFootReptilian + amount: 1 + +- type: entity + name: Build-a-Buddy kit + suffix: Slime + parent: BoxBuildABuddyHuman + id: BoxBuildABuddySlime + description: "\"Steven the Slime\" Build-a-Buddy kit. Some assembly required." + components: + - type: StorageFill + contents: + - id: HeadSlime + amount: 1 + - id: TorsoSlime + amount: 1 + - id: LeftArmSlime + amount: 1 + - id: RightArmSlime + amount: 1 + - id: LeftHandSlime + amount: 1 + - id: RightHandSlime + amount: 1 + - id: LeftLegSlime + amount: 1 + - id: RightLegSlime + amount: 1 + - id: LeftFootSlime + amount: 1 + - id: RightFootSlime + amount: 1 + +- type: entity + name: Build-a-Buddy kit + suffix: Vulpkanin + parent: BoxBuildABuddyHuman + id: BoxBuildABuddyVulpkanin + description: "\"Valerie the Vulpkanin\" Build-a-Buddy kit. Some assembly required." + components: + - type: StorageFill + contents: + - id: HeadVulpkanin + amount: 1 + - id: TorsoVulpkanin + amount: 1 + - id: LeftArmVulpkanin + amount: 1 + - id: RightArmVulpkanin + amount: 1 + - id: LeftHandVulpkanin + amount: 1 + - id: RightHandVulpkanin + amount: 1 + - id: LeftLegVulpkanin + amount: 1 + - id: RightLegVulpkanin + amount: 1 + - id: LeftFootVulpkanin + amount: 1 + - id: RightFootVulpkanin + amount: 1 diff --git a/Resources/Prototypes/Entities/Objects/Specific/Mail/Items/misc.yml b/Resources/Prototypes/Entities/Objects/Specific/Mail/Items/misc.yml new file mode 100644 index 0000000000..6f1c86e00b --- /dev/null +++ b/Resources/Prototypes/Entities/Objects/Specific/Mail/Items/misc.yml @@ -0,0 +1,117 @@ +# Mail-only items. If/when these get used for anything else, please move them to another folder. +# Pranks: admin items or effects put into an envelope, released when opened or damaged. +- type: entity + id: DelayedSmoke + parent: BaseItem + noSpawn: true + name: delayed smoke + suffix: "(10s)" + components: + - type: Sprite #DeltaV: Apparently these want sprites, probably because they're baseitems + sprite: /Textures/Objects/Fun/goldbikehorn.rsi + visible: false + state: icon + - type: DelayedItem + item: AdminInstantEffectSmoke10 + +- type: entity + id: AdminInstantEffectEMP7 + noSpawn: true + suffix: EMP, 7 meters + parent: AdminInstantEffectBase + components: + - type: EmpOnTrigger + range: 7 + energyConsumption: 50000 + +- type: entity + id: DelayedEMP + parent: BaseItem + noSpawn: true + name: delayed EMP (7 meters) + components: + - type: Sprite #DeltaV: Apparently these want sprites, probably because they're baseitems + sprite: /Textures/Objects/Fun/goldbikehorn.rsi + visible: false + state: icon + - type: DelayedItem + item: AdminInstantEffectEMP7 + +# Miscellaneous Items + +- type: entity + id: SyringeCognizine + parent: Syringe + name: cognizine syringe + components: + - type: SolutionContainerManager + solutions: + drink: + maxVol: 15 + reagents: + - ReagentId: Cognizine + Quantity: 15 # Surely three friends is enough. + +- type: entity + id: SyringeOpporozidone + parent: Syringe + name: opporozidone syringe + components: + - type: SolutionContainerManager + solutions: + drink: + maxVol: 15 +# reagents: # TODO: we don't have that yet. Guess the people will receive an empty syringe instead. +# - ReagentId: Opporozidone +# Quantity: 15 + +- type: entity + id: NecrosolChemistryBottle + parent: BaseChemistryBottleFilled + name: necrosol bottle + components: + - type: SolutionContainerManager + solutions: + drink: + maxVol: 30 + reagents: + - ReagentId: Necrosol + Quantity: 30 + +# Premium Alcohol: wait, it's just marketing? +# TODO: different sprites would be nice. +- type: entity + id: DrinkPremiumVodkaBottleFull + parent: DrinkVodkaBottleFull + name: Moment of Clarity vodka bottle + description: When things get a bit hectic, all you need is a Moment of Clarity. + +- type: entity + id: DrinkPremiumGinBottleFull + parent: DrinkGinBottleFull + name: Harry's gin bottle + description: An interesting set of botanicals, for sure. Is that pumpkin? + +- type: entity + id: DrinkPremiumTequilaBottleFull + parent: DrinkTequilaBottleFull + name: Casa del Eorg tequila bottle + description: Save the best for last. Casa del Eorg, 100% agave. + +- type: entity + id: DrinkPremiumWhiskeyBottleFull + parent: DrinkWhiskeyBottleFull + name: Ol' Prowler 18 whiskey bottle + description: Surprisingly smooth, it has a nasty habit of sneaking up on you. + +- type: entity + id: DrinkPremiumRumBottleFull + parent: DrinkRumBottleFull + name: Redeemer's Bounty rum bottle + description: Well, you asked for it. Navy strength. + +- type: entity + id: DrinkPremiumAbsintheBottleFull + parent: DrinkAbsintheBottleFull + name: Bureaucracy's Kiss absinthe bottle + description: A refined taste that tends to linger. diff --git a/Resources/Prototypes/Entities/Objects/Specific/Mail/Items/paper.yml b/Resources/Prototypes/Entities/Objects/Specific/Mail/Items/paper.yml new file mode 100644 index 0000000000..b21ca40717 --- /dev/null +++ b/Resources/Prototypes/Entities/Objects/Specific/Mail/Items/paper.yml @@ -0,0 +1,483 @@ +# Papers (letters, ad copy) +# TODO: these should really be based on localization strings. +- type: entity + id: PaperMailNFPowerTool + name: Hazard Fraught advertisement + categories: [ HideSpawnMenu ] + suffix: "power tool ad, formatted" + parent: Paper + components: + - type: Paper + content: |2 + + [head=1]Hazard Fraught Tools[/head] + + [head=2]Discount Tools at Quality Prices![/head] + + [head=2]Fax us for a catalog at + [color=#990000]ERROR: UNEXPECTED EOF[/color][/head] + +- type: entity + id: PaperMailNFVagueThreat1 + categories: [ HideSpawnMenu ] + suffix: "vague mail threat 1, formatted" + parent: Paper + components: + - type: Paper + content: |2 + + [head=1]I know what you did.[/head] + + [head=3]You don't know what I'm going to do to you.[/head] + +- type: entity + id: PaperMailNFVagueThreat2 + categories: [ HideSpawnMenu ] + suffix: "vague mail threat 2, formatted" + parent: Paper + components: + - type: Paper + content: |2 + + [head=1]I'm coming for you.[/head] + +- type: entity + id: PaperMailNFVagueThreat3 + categories: [ HideSpawnMenu ] + suffix: "vague mail threat 3, formatted" + parent: Paper + components: + - type: Paper + content: |2 + + [head=1]You're next.[/head] + +- type: entity + id: PaperMailNFVagueThreat4 + categories: [ HideSpawnMenu ] + suffix: "vague mail threat 4, formatted" + parent: Paper + components: + - type: Paper + content: |2 + + [head=1]We see you.[/head] + +- type: entity + id: PaperMailNFVagueThreat5 + categories: [ HideSpawnMenu ] + suffix: "vague mail threat 5, formatted" + parent: Paper + components: + - type: Paper + content: |2 + + [head=2]I hope your affairs are in order.[/head] + +- type: entity + id: PaperMailNFVagueThreat6 + categories: [ HideSpawnMenu ] + suffix: "vague mail threat 6, formatted" + parent: Paper + components: + - type: Paper + content: |2 + + [head=1]It's only a matter of time.[/head] + + + [head=1]Enjoy it while it lasts.[/head] + +- type: entity + id: PaperMailNFVagueThreat7 + categories: [ HideSpawnMenu ] + suffix: "vague mail threat 7, formatted" + parent: Paper + components: + - type: Paper + content: |2 + + [head=2]Who should we mail your pieces to?[/head] + +- type: entity + id: PaperMailNFVagueThreat8 + categories: [ HideSpawnMenu ] + suffix: "vague mail threat 8, formatted" + parent: Paper + components: + - type: Paper + content: |2 + + [head=2]Would you prefer to die slowly or quickly? + [/head] + [head=1]Just kidding.[/head] + + [head=2]We don't care what you think.[/head] + +- type: entity + id: PaperMailNFVagueThreat9 + categories: [ HideSpawnMenu ] + suffix: "vague mail threat 9, formatted" + parent: Paper + components: + - type: Paper + content: |2 + + [head=3]I think your head would look nice on my mantel.[/head] + +- type: entity + id: PaperMailNFVagueThreat10 + categories: [ HideSpawnMenu ] + suffix: "vague mail threat 10, formatted" + parent: Paper + components: + - type: Paper + content: |2 + + [head=1]You should have paid up.[/head] + + + [head=1]It's too late now.[/head] + +- type: entity + id: PaperMailNFVagueThreat11 + categories: [ HideSpawnMenu ] + suffix: "vague mail threat 11, formatted" + parent: Paper + components: + - type: Paper + content: |2 + + [head=3]Your family will miss you, but don't worry.[/head] + + + [head=1]We'll take care of them too.[/head] + +- type: entity + id: PaperMailNFVagueThreat12 + categories: [ HideSpawnMenu ] + suffix: "vague mail threat 12, formatted" + parent: Paper + components: + - type: Paper + content: |2 + + [head=3]I have a bet that you're going to die today.[/head] + + + [head=1]I'm not afraid to cheat.[/head] + +- type: entity + id: PaperMailNFPwrGameAd + name: pwr game advertisement + categories: [ HideSpawnMenu ] + suffix: "pwr game ad" + parent: Paper + components: + - type: Paper + content: |2 + + [head=1]Drink Pwr Game![/head] + + [head=3]Proud sponsor of the NT Block Game Championship.[/head] + +- type: entity + id: PaperMailNFRedBoolAd + name: red bool advertisement + categories: [ HideSpawnMenu ] + suffix: "red bool ad" + parent: Paper + components: + - type: Paper + content: |2 + + [head=2]Try NEW Reformulated Red Bool![/head] + + [head=2]Over [color=#dd0000]1.5g[/color] of caffeine per can![/head] + + [head=2]Punch your heart into overdrive![/head] + +- type: entity + id: PaperMailNFSpaceColaAd + name: space cola advertisement + categories: [ HideSpawnMenu ] + suffix: "space cola ad" + parent: Paper + components: + - type: Paper + content: |2 + + [head=2]The classic taste you love, Space Cola.[/head] + + [head=2]Now certified lead-free.[/head] + +- type: entity + id: PaperMailNFSpaceMountainWindAd + name: space mountain wind advertisement + categories: [ HideSpawnMenu ] + suffix: "space mountain wind ad" + parent: Paper + components: + - type: Paper + content: |2 + + [head=3]When it's time to game, there's one choice:[/head] + + [head=1]Space Mountain Wind.[/head] + +- type: entity + id: PaperMailNFSpaceUpAd + name: space up advertisement + categories: [ HideSpawnMenu ] + suffix: "space up ad" + parent: Paper + components: + - type: Paper + content: |2 + + [head=3]The crisp, refreshing taste of lemon and lime.[/head] + + + [head=1]Space Up![/head] + + + [head=2]Ask your barkeep for a Sui Dream today![/head] + +- type: entity + id: PaperMailNTSoapAd1 + categories: [ HideSpawnMenu ] + suffix: "soap ad 1" + parent: Paper + components: + - type: Paper + stampedBy: + - stampedColor: '#333333FF' + stampedName: Christopher Cleanman +# stampType: Signature #DeltaV - Not compatible with our signatures code stuff apparently + content: |2 + [head=3]Hello Valued Customer,[/head] + You have been selected to receive a complimentary sampler of scented soaps that Nanotrasen has to offer. + + Why not enjoy a nice warm shower with our scented soaps? Tested and effective vs. vent crud and mold. + + We hope you enjoy. + + Sincerely, + Christopher Cleanman, Vice President, NT Habs - Toiletries Dept. + +- type: entity + id: PaperMailNTSoapAd2 + categories: [ HideSpawnMenu ] + suffix: "soap ad 2" #DeltaV - Edited to not be addressed to Frontier Citizens, localized + parent: Paper + components: + - type: Paper + content: |2 + [head=2]GREETINGS DELTA SECTOR CITIZEN[/head] + + OUR REPORTS INDICATE THAT: + 1. YOU HAVE FAILED YOUR QUARTERLY HYGIENE INSPECTION. + 2. THIS HAS REDUCED SECTOR EFFICIENCY BY [bold]0.02%[/bold]. + + ENCLOSED IS A SELECTION OF HYGIENE PRODUCTS SUITABLE FOR USE BY ORGANICS. WE HOPE THAT THIS SITUATION IS RESOLVED PROMPTLY. + + [italic]THIS IS AN AUTOMATED MESSAGE. DO NOT REPLY.[/italic] + +- type: entity + id: PaperMailNTConscript + categories: [ HideSpawnMenu ] + suffix: "conscript" + parent: Paper + components: + - type: Paper + content: |2 + + [head=1]NOT ONE STEP BACK.[/head] + + + [head=1]FOR THE FRONTIER.[/head] + +- type: entity + id: PaperMailNTMusket + categories: [ HideSpawnMenu ] + suffix: "musket" + parent: Paper + components: + - type: Paper + content: |2 + + [head=2]Use a musket for sector defense, + like the founding fathers intended.[/head] + +- type: entity + id: PaperMailNFPaperPusherAd + categories: [ HideSpawnMenu ] + suffix: "paper pusher" + parent: Paper + components: + - type: Paper + content: |2 + + [head=2]Here is a pen for any letters you write. + [/head] + [head=1]Keep it close, use it often.[/head] + + [head=2]May you write well, neatly, and with style.[/head] + + [head=3]Sincerely, + [italic]The Frontier Paper Pusher's Club[/italic][/head] + +- type: entity + id: PaperMailNFPetBedAssemblyManual + name: pet bed assembly manual + categories: [ HideSpawnMenu ] + suffix: "pet bed assembly manual" + parent: Paper + components: + - type: Paper + content: |2 + + [head=1]HÖGANÄS[/head] + + [italic](There is a black and white picture of a pet bed on the first page.)[/italic] + + [italic](On the next few pages, you see a list of materials and a happy stick figure assembling furniture.)[/italic] + + [italic](On the pages after that, you see a set of instructions to assemble a pet bed. You're sure you don't need them, how hard could it be?)[/italic] + +- type: entity + id: PaperMailNTBoxer + categories: [ HideSpawnMenu ] + suffix: "boxer" + parent: Paper + components: + - type: Paper + content: |2 + [head=2]You've gotta defend your belt, champ. + [/head] + [head=1]They're coming for you.[/head] + + [head=2]This should help. Knock 'em out.[/head] + +# Placeholder for an arm-on-use, flashbang fakeout pipebomb +- type: entity + id: PaperMailNFPipebombIntern + categories: [ HideSpawnMenu ] + suffix: "pipe bomb intern" + parent: Paper + components: + - type: Paper + stampedBy: + - stampedColor: '#333333FF' + stampedName: craig +# stampType: Signature #DeltaV - Not compatible with our signatures code stuff apparently + content: |2 + [bold]hey uh, they told me to send you a pipebomb i guess? + + this is all i could find around here, hope that works + + thanks[/bold] + +- type: entity + id: PaperMailNFAntivirus + name: Snortin Antivirus invoice + categories: [ HideSpawnMenu ] + suffix: "antivirus ad" + parent: Paper + components: + - type: Paper + content: |2 + + [head=1]Invoice[/head][head=3] + Snortin Antivirus Software[/head] + + [head=3]Order #41003 + [bold][bullet/][/bold] 1x Snortin Total-275 Antivirus Install Disk[/head] + + [head=3]Total: 947381 Spesos[/head] + + Thank you for making purchase from Snortin Antivirus Software. + We assuring you that our product is greatest. + Please sending payment at earliest convenience. + +- type: entity + id: PaperMailNFEMPPreparedness + categories: [ HideSpawnMenu ] + name: EMP preparedness response form + suffix: "emp preparedness" #DeltaV - Replaces mention of SR with HoS + parent: Paper + components: + - type: Paper + content: |2 + + [head=1]EMP Preparedness Response[/head] + + You have been selected to receive a NT EMP Preparedness kit as a test. Note that this is only a test. In a real emergency, follow the instructions of your vessel's command staff. + + As the recipient of this, please note [bold]any improvements[/bold] that could be made towards the EMP preparedness of the vessel you were aboard when opening and submit this form to your serving Captain or Head of Security. + + [bold]Date of test:[/bold] + [bold]Number of affected items:[/bold] + [bold]Perceived severity of incident:[/bold] + [bold]Suggested improvements:[/bold] + +- type: entity + id: PaperMailNFBuildABuddy + categories: [ HideSpawnMenu ] + name: Build-a-Buddy adoption letter + suffix: "build-a-buddy" #DeltaV- Body text changed, because Goblins Aren't Real + parent: Paper + components: + - type: Paper + stampState: paper_stamp-generic + stampedBy: + - stampedColor: '#FF6699FF' + stampedName: Chief Friendship Officer + - stampedColor: '#333333FF' + stampedName: Cuts-With-Scalpel +# stampType: Signature #DeltaV - Not compatible with our signatures code stuff apparently. + content: |2 + + [head=1]Note of Adoption[/head] + + You're now the proud owner of your very own Build-a-Buddy! + + We hope that your new friend can serve as a shoulder to lean on in the depths of space, and hopefully you won't be quite as lonely out there. Personally, I find putting them together to be rather therapeutic. + + [bold]Collect the whole set![/bold] + [bold][bullet/][/bold] Henry the Human + [bold][bullet/][/bold] Randy the Reptilian + [bold][bullet/][/bold] Steven the Slime + [bold][bullet/][/bold] Valerie the Vulpkanin + +- type: entity + id: PaperMailNFSpaceLaw + categories: [ HideSpawnMenu ] + suffix: "space-law" #DeltaV- edited contents to be from the Delta Sector instead of the Frontier + parent: Paper + components: + - type: Paper + stampState: paper_stamp-centcom + stampedBy: + - stampedColor: '#006600FF' + stampedName: Central Admiralty of the Delta Sector + content: |2 + + [head=1]Space Law is your shield.[/head] + + [head=2]With it, you guard the Delta Sector.[/head][head=3] + [/head] + [head=1]Memorize it. Grasp it firmly.[/head] + + [head=2]The SOP is your sword, don't get rusty.[/head] + + [head=2]Maintain your balance, and wield it well.[/head] + + + + + + + + + [head=3][italic]Internal Bureau of Propaganda[/italic][/head] diff --git a/Resources/Prototypes/Entities/Objects/Specific/Mail/base_mail_large.yml b/Resources/Prototypes/Entities/Objects/Specific/Mail/base_mail_large.yml new file mode 100644 index 0000000000..a5dcefacba --- /dev/null +++ b/Resources/Prototypes/Entities/Objects/Specific/Mail/base_mail_large.yml @@ -0,0 +1,79 @@ +# Large packages. +- type: entity + parent: BaseMail + abstract: true + id: BaseMailLarge + name: mail-large-item-name-unaddressed + components: + - type: Item + size: Ginormous + - type: Sprite + scale: 0.8, 0.8 + sprite: Objects/Specific/Mail/mail_large.rsi + layers: + - state: icon + map: ["enum.MailVisualLayers.Icon"] + - state: fragile + map: ["enum.MailVisualLayers.FragileStamp"] + visible: false + - map: ["enum.MailVisualLayers.JobStamp"] + scale: 0.8, 0.8 + offset: 0.235, -0.01 + - state: locked + map: ["enum.MailVisualLayers.Lock"] + - state: priority + map: ["enum.MailVisualLayers.PriorityTape"] + visible: false + shader: unshaded + - state: broken + map: ["enum.MailVisualLayers.Breakage"] + visible: false + - type: GenericVisualizer + visuals: + enum.MailVisuals.IsTrash: + enum.MailVisualLayers.Icon: + True: + state: trash + False: + state: icon + enum.MailVisuals.IsLocked: + enum.MailVisualLayers.Lock: + True: + visible: true + False: + visible: false + enum.MailVisuals.IsFragile: + enum.MailVisualLayers.FragileStamp: + True: + visible: true + False: + visible: false + enum.MailVisuals.IsPriority: + enum.MailVisualLayers.PriorityTape: + True: + visible: true + False: + visible: false + enum.MailVisuals.IsPriorityInactive: + enum.MailVisualLayers.PriorityTape: + True: + shader: shaded + state: priority_inactive + False: + shader: unshaded + state: priority + enum.MailVisuals.IsBroken: + enum.MailVisualLayers.Breakage: + True: + visible: true + False: + visible: false + - type: MultiHandedItem + - type: Mail + isLarge: true + +- type: entity + noSpawn: true + 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 6e5362d9bb..dab6f9f20f 100644 --- a/Resources/Prototypes/Entities/Objects/Specific/Mech/mechs.yml +++ b/Resources/Prototypes/Entities/Objects/Specific/Mech/mechs.yml @@ -39,8 +39,8 @@ doAfterDelay: 10 - type: UserInterface interfaces: - - key: enum.MechUiKey.Key - type: MechBoundUserInterface + enum.MechUiKey.Key: + type: MechBoundUserInterface - type: MeleeWeapon hidden: true attackRate: 0.75 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 e2e9328342..ab338b9da9 100644 --- a/Resources/Prototypes/Entities/Objects/Specific/Medical/handheld_crew_monitor.yml +++ b/Resources/Prototypes/Entities/Objects/Specific/Medical/handheld_crew_monitor.yml @@ -16,10 +16,9 @@ - type: ActivatableUIRequiresPowerCell - type: ActivatableUI key: enum.CrewMonitoringUIKey.Key - closeOnHandDeselect: false - type: UserInterface interfaces: - - key: enum.CrewMonitoringUIKey.Key + enum.CrewMonitoringUIKey.Key: type: CrewMonitoringBoundUserInterface - type: CrewMonitoringConsole - type: DeviceNetwork diff --git a/Resources/Prototypes/Entities/Objects/Specific/Medical/healthanalyzer.yml b/Resources/Prototypes/Entities/Objects/Specific/Medical/healthanalyzer.yml index 64bd04569b..c01aaa84a9 100644 --- a/Resources/Prototypes/Entities/Objects/Specific/Medical/healthanalyzer.yml +++ b/Resources/Prototypes/Entities/Objects/Specific/Medical/healthanalyzer.yml @@ -17,10 +17,9 @@ storedRotation: -90 - type: ActivatableUI key: enum.HealthAnalyzerUiKey.Key - closeOnHandDeselect: false - type: UserInterface interfaces: - - key: enum.HealthAnalyzerUiKey.Key + enum.HealthAnalyzerUiKey.Key: type: HealthAnalyzerBoundUserInterface - type: HealthAnalyzer scanningEndSound: diff --git a/Resources/Prototypes/Entities/Objects/Specific/Medical/medkits.yml b/Resources/Prototypes/Entities/Objects/Specific/Medical/medkits.yml index 62e5ab4476..46d1efa24e 100644 --- a/Resources/Prototypes/Entities/Objects/Specific/Medical/medkits.yml +++ b/Resources/Prototypes/Entities/Objects/Specific/Medical/medkits.yml @@ -15,6 +15,9 @@ size: Large sprite: Objects/Specific/Medical/firstaidkits.rsi heldPrefix: firstaid + - type: PhysicalComposition + materialComposition: + Plastic: 150 - type: Tag tags: - Medkit diff --git a/Resources/Prototypes/Entities/Objects/Specific/Research/anomaly.yml b/Resources/Prototypes/Entities/Objects/Specific/Research/anomaly.yml index 74199c9f65..113017cc84 100644 --- a/Resources/Prototypes/Entities/Objects/Specific/Research/anomaly.yml +++ b/Resources/Prototypes/Entities/Objects/Specific/Research/anomaly.yml @@ -9,11 +9,11 @@ state: icon - type: ActivatableUI key: enum.AnomalyScannerUiKey.Key - closeOnHandDeselect: false + requireActiveHand: false inHandsOnly: true - type: UserInterface interfaces: - - key: enum.AnomalyScannerUiKey.Key + enum.AnomalyScannerUiKey.Key: type: AnomalyScannerBoundUserInterface - type: AnomalyScanner - type: GuideHelp diff --git a/Resources/Prototypes/Entities/Objects/Specific/Research/rped.yml b/Resources/Prototypes/Entities/Objects/Specific/Research/rped.yml index 84a51b4f34..fca8c8ae85 100644 --- a/Resources/Prototypes/Entities/Objects/Specific/Research/rped.yml +++ b/Resources/Prototypes/Entities/Objects/Specific/Research/rped.yml @@ -10,6 +10,9 @@ - type: Item sprite: Objects/Specific/Research/rped.rsi size: Normal + - type: GuideHelp + guides: + - MachineUpgrading - type: PartExchanger - type: Storage grid: diff --git a/Resources/Prototypes/Entities/Objects/Specific/Robotics/borg_modules.yml b/Resources/Prototypes/Entities/Objects/Specific/Robotics/borg_modules.yml index a7cf7ad5c8..960e37a6cc 100644 --- a/Resources/Prototypes/Entities/Objects/Specific/Robotics/borg_modules.yml +++ b/Resources/Prototypes/Entities/Objects/Specific/Robotics/borg_modules.yml @@ -346,6 +346,7 @@ - HoloprojectorBorg - SprayBottleSpaceCleaner - Dropper + - TrashBag # medical modules - type: entity @@ -579,5 +580,19 @@ - state: icon-syndicate - type: ItemBorgModule items: - - WeaponLightMachineGunL6C - - PinpointerSyndicateNuclear + - WeaponLightMachineGunL6C + - PinpointerSyndicateNuclear + +- type: entity + id: BorgModuleMartyr + parent: [ BaseBorgModule, BaseProviderBorgModule ] + name: martyr cyborg module + description: "A module that comes with an explosive you probably don't want to handle yourself." + components: + - type: Sprite + layers: + - state: syndicateborgbomb + - state: icon-bomb + - type: ItemBorgModule + items: + - SelfDestructSeq diff --git a/Resources/Prototypes/Entities/Objects/Specific/Service/barber.yml b/Resources/Prototypes/Entities/Objects/Specific/Service/barber.yml index 4a16603541..451230bbf1 100644 --- a/Resources/Prototypes/Entities/Objects/Specific/Service/barber.yml +++ b/Resources/Prototypes/Entities/Objects/Specific/Service/barber.yml @@ -14,11 +14,12 @@ changeSlotTime: 20 - type: ActivatableUI key: enum.MagicMirrorUiKey.Key - closeOnHandDeselect: true + inHandsOnly: true + requireActiveHand: true - type: UserInterface interfaces: - - key: enum.MagicMirrorUiKey.Key - type: MagicMirrorBoundUserInterface + enum.MagicMirrorUiKey.Key: + type: MagicMirrorBoundUserInterface - type: MeleeWeapon wideAnimationRotation: -135 attackRate: 1 diff --git a/Resources/Prototypes/Entities/Objects/Specific/Xenoarchaeology/artifact_equipment.yml b/Resources/Prototypes/Entities/Objects/Specific/Xenoarchaeology/artifact_equipment.yml index c38868b399..e1716f0843 100644 --- a/Resources/Prototypes/Entities/Objects/Specific/Xenoarchaeology/artifact_equipment.yml +++ b/Resources/Prototypes/Entities/Objects/Specific/Xenoarchaeology/artifact_equipment.yml @@ -36,7 +36,7 @@ radius: 0.45 density: 50 mask: - - SmallMobMask #this is so they can go under plastic flaps + - CrateMask #this is so they can go under plastic flaps layer: - MachineLayer - type: Icon diff --git a/Resources/Prototypes/Entities/Objects/Specific/Xenoarchaeology/item_artifacts.yml b/Resources/Prototypes/Entities/Objects/Specific/Xenoarchaeology/item_artifacts.yml index cb6708431a..036b876a97 100644 --- a/Resources/Prototypes/Entities/Objects/Specific/Xenoarchaeology/item_artifacts.yml +++ b/Resources/Prototypes/Entities/Objects/Specific/Xenoarchaeology/item_artifacts.yml @@ -45,14 +45,14 @@ ano01_on: Rainbow - type: UserInterface #needs to be here for certain effects interfaces: - - key: enum.StorageUiKey.Key - type: StorageBoundUserInterface - - key: enum.TransferAmountUiKey.Key - type: TransferAmountBoundUserInterface - - key: enum.InstrumentUiKey.Key - type: InstrumentBoundUserInterface - - key: enum.IntercomUiKey.Key - type: IntercomBoundUserInterface + enum.StorageUiKey.Key: + type: StorageBoundUserInterface + enum.TransferAmountUiKey.Key: + type: TransferAmountBoundUserInterface + enum.InstrumentUiKey.Key: + type: InstrumentBoundUserInterface + enum.IntercomUiKey.Key: + type: IntercomBoundUserInterface - type: Appearance - type: Item size: Normal diff --git a/Resources/Prototypes/Entities/Objects/Specific/Xenoarchaeology/structure_artifacts.yml b/Resources/Prototypes/Entities/Objects/Specific/Xenoarchaeology/structure_artifacts.yml index f098894ff7..b53a617981 100644 --- a/Resources/Prototypes/Entities/Objects/Specific/Xenoarchaeology/structure_artifacts.yml +++ b/Resources/Prototypes/Entities/Objects/Specific/Xenoarchaeology/structure_artifacts.yml @@ -22,14 +22,14 @@ noRot: true - type: UserInterface #needs to be here for certain effects interfaces: - - key: enum.StorageUiKey.Key - type: StorageBoundUserInterface - - key: enum.TransferAmountUiKey.Key - type: TransferAmountBoundUserInterface - - key: enum.InstrumentUiKey.Key - type: InstrumentBoundUserInterface - - key: enum.IntercomUiKey.Key - type: IntercomBoundUserInterface + enum.StorageUiKey.Key: + type: StorageBoundUserInterface + enum.TransferAmountUiKey.Key: + type: TransferAmountBoundUserInterface + enum.InstrumentUiKey.Key: + type: InstrumentBoundUserInterface + enum.IntercomUiKey.Key: + type: IntercomBoundUserInterface - type: Reactive groups: Acidic: [Touch] diff --git a/Resources/Prototypes/Entities/Objects/Specific/atmos.yml b/Resources/Prototypes/Entities/Objects/Specific/atmos.yml index 0dc714aba0..c67e7ff8c3 100644 --- a/Resources/Prototypes/Entities/Objects/Specific/atmos.yml +++ b/Resources/Prototypes/Entities/Objects/Specific/atmos.yml @@ -13,12 +13,12 @@ - type: ActivatableUI inHandsOnly: true singleUser: true - closeOnHandDeselect: false + requireActiveHand: false key: enum.GasAnalyzerUiKey.Key - type: UserInterface interfaces: - - key: enum.GasAnalyzerUiKey.Key - type: GasAnalyzerBoundUserInterface + enum.GasAnalyzerUiKey.Key: + type: GasAnalyzerBoundUserInterface - type: Appearance - type: GenericVisualizer visuals: diff --git a/Resources/Prototypes/Entities/Objects/Specific/chemical-containers.yml b/Resources/Prototypes/Entities/Objects/Specific/chemical-containers.yml index 027ff206f8..4bd71f898d 100644 --- a/Resources/Prototypes/Entities/Objects/Specific/chemical-containers.yml +++ b/Resources/Prototypes/Entities/Objects/Specific/chemical-containers.yml @@ -8,7 +8,6 @@ solutions: beaker: maxVol: 200 - canMix: true - type: Sprite sprite: Objects/Specific/Chemistry/jug.rsi layers: @@ -19,6 +18,8 @@ - type: Item size: Normal sprite: Objects/Specific/Chemistry/jug.rsi + - type: MixableSolution + solution: beaker - type: RefillableSolution solution: beaker - type: DrainableSolution @@ -31,9 +32,11 @@ solution: beaker - type: SolutionTransfer canChangeTransferAmount: true + - type: SolutionItemStatus + solution: beaker - type: UserInterface interfaces: - - key: enum.TransferAmountUiKey.Key + enum.TransferAmountUiKey.Key: type: TransferAmountBoundUserInterface - type: Drink solution: beaker diff --git a/Resources/Prototypes/Entities/Objects/Specific/chemistry-bottles.yml b/Resources/Prototypes/Entities/Objects/Specific/chemistry-bottles.yml index 379c361be5..32d9a9a500 100644 --- a/Resources/Prototypes/Entities/Objects/Specific/chemistry-bottles.yml +++ b/Resources/Prototypes/Entities/Objects/Specific/chemistry-bottles.yml @@ -29,7 +29,8 @@ solutions: drink: # This solution name and target volume is hard-coded in ChemMasterComponent maxVol: 30 - canMix: true + - type: MixableSolution + solution: drink - type: RefillableSolution solution: drink - type: DrainableSolution @@ -41,10 +42,12 @@ - type: SolutionTransfer maxTransferAmount: 30 canChangeTransferAmount: true + - type: SolutionItemStatus + solution: drink - type: UserInterface interfaces: - - key: enum.TransferAmountUiKey.Key - type: TransferAmountBoundUserInterface + enum.TransferAmountUiKey.Key: + type: TransferAmountBoundUserInterface - type: Item size: Tiny sprite: Objects/Specific/Chemistry/beaker.rsi diff --git a/Resources/Prototypes/Entities/Objects/Specific/chemistry-vials.yml b/Resources/Prototypes/Entities/Objects/Specific/chemistry-vials.yml index 87c591015e..e9e4949a5b 100644 --- a/Resources/Prototypes/Entities/Objects/Specific/chemistry-vials.yml +++ b/Resources/Prototypes/Entities/Objects/Specific/chemistry-vials.yml @@ -35,7 +35,8 @@ solutions: beaker: maxVol: 30 - canMix: true + - type: MixableSolution + solution: beaker - type: RefillableSolution solution: beaker - type: DrainableSolution @@ -47,10 +48,12 @@ - type: SolutionTransfer maxTransferAmount: 30 canChangeTransferAmount: true + - type: SolutionItemStatus + solution: beaker - type: UserInterface interfaces: - - key: enum.TransferAmountUiKey.Key - type: TransferAmountBoundUserInterface + enum.TransferAmountUiKey.Key: + type: TransferAmountBoundUserInterface - type: Item size: Tiny sprite: Objects/Specific/Chemistry/vial.rsi diff --git a/Resources/Prototypes/Entities/Objects/Specific/chemistry.yml b/Resources/Prototypes/Entities/Objects/Specific/chemistry.yml index 98561b64c4..321de142e7 100644 --- a/Resources/Prototypes/Entities/Objects/Specific/chemistry.yml +++ b/Resources/Prototypes/Entities/Objects/Specific/chemistry.yml @@ -26,7 +26,8 @@ solutions: beaker: maxVol: 50 - canMix: true + - type: MixableSolution + solution: beaker - type: FitsInDispenser solution: beaker - type: RefillableSolution @@ -41,10 +42,12 @@ solution: beaker - type: SolutionTransfer canChangeTransferAmount: true + - type: SolutionItemStatus + solution: beaker - type: UserInterface interfaces: - - key: enum.TransferAmountUiKey.Key - type: TransferAmountBoundUserInterface + enum.TransferAmountUiKey.Key: + type: TransferAmountBoundUserInterface - type: Drink solution: beaker - type: Appearance @@ -119,7 +122,8 @@ solutions: beaker: maxVol: 50 - canMix: true + - type: MixableSolution + solution: beaker - type: FitsInDispenser solution: beaker - type: RefillableSolution @@ -134,10 +138,12 @@ solution: beaker - type: SolutionTransfer canChangeTransferAmount: true + - type: SolutionItemStatus + solution: beaker - type: UserInterface interfaces: - - key: enum.TransferAmountUiKey.Key - type: TransferAmountBoundUserInterface + enum.TransferAmountUiKey.Key: + type: TransferAmountBoundUserInterface - type: Drink solution: beaker - type: Appearance @@ -160,6 +166,9 @@ solution: beaker - type: StaticPrice price: 10 + - type: PhysicalComposition + materialComposition: + Glass: 50 - type: SolutionContainerVisuals maxFillLevels: 6 fillBaseName: beaker @@ -202,13 +211,15 @@ solutions: beaker: maxVol: 100 - canMix: true - type: Appearance - type: SolutionContainerVisuals maxFillLevels: 6 fillBaseName: beakerlarge inHandsMaxFillLevels: 4 inHandsFillBaseName: -fill- + - type: PhysicalComposition + materialComposition: + Glass: 100 - type: StaticPrice price: 20 @@ -229,6 +240,10 @@ beaker: maxVol: 60 canReact: false + - type: ReverseEngineering # Delta + difficulty: 3 + recipes: + - CryostasisBeaker - type: entity name: bluespace beaker @@ -246,7 +261,10 @@ solutions: beaker: maxVol: 1000 - canMix: true + - type: ReverseEngineering + difficulty: 4 + recipes: + - BluespaceBeaker - type: entity name: dropper @@ -276,8 +294,8 @@ solution: dropper - type: UserInterface interfaces: - - key: enum.TransferAmountUiKey.Key - type: TransferAmountBoundUserInterface + enum.TransferAmountUiKey.Key: + type: TransferAmountBoundUserInterface - type: Spillable solution: injector - type: Item @@ -403,6 +421,10 @@ tags: - Syringe - Trash + - type: ReverseEngineering # Delta + difficulty: 4 + recipes: + - SyringeBluespace - type: entity id: SyringeCryostasis @@ -434,7 +456,10 @@ tags: - Syringe - Trash - + - type: ReverseEngineering # Delta + difficulty: 3 + recipes: + - SyringeCryostasis - type: entity name: pill diff --git a/Resources/Prototypes/Entities/Objects/Specific/syndicate.yml b/Resources/Prototypes/Entities/Objects/Specific/syndicate.yml index 4ff48e9b43..ce7e2bdc8e 100644 --- a/Resources/Prototypes/Entities/Objects/Specific/syndicate.yml +++ b/Resources/Prototypes/Entities/Objects/Specific/syndicate.yml @@ -66,8 +66,8 @@ heldPrefix: radio - type: UserInterface interfaces: - - key: enum.StoreUiKey.Key - type: StoreBoundUserInterface + enum.StoreUiKey.Key: + type: StoreBoundUserInterface - type: ActivatableUI key: enum.StoreUiKey.Key - type: Store diff --git a/Resources/Prototypes/Entities/Objects/Tools/access_configurator.yml b/Resources/Prototypes/Entities/Objects/Tools/access_configurator.yml index 9504ec144a..9c8102979a 100644 --- a/Resources/Prototypes/Entities/Objects/Tools/access_configurator.yml +++ b/Resources/Prototypes/Entities/Objects/Tools/access_configurator.yml @@ -75,12 +75,12 @@ doAfter: 0.5 - type: UserInterface interfaces: - - key: enum.AccessOverriderUiKey.Key + enum.AccessOverriderUiKey.Key: type: AccessOverriderBoundUserInterface - type: ActivatableUI key: enum.AccessOverriderUiKey.Key requireHands: true - closeOnHandDeselect: false + requireActiveHand: false singleUser: true - type: ItemSlots - type: ContainerContainer diff --git a/Resources/Prototypes/Entities/Objects/Tools/appraisal.yml b/Resources/Prototypes/Entities/Objects/Tools/appraisal.yml index 4ec8d28857..3edf26ea78 100644 --- a/Resources/Prototypes/Entities/Objects/Tools/appraisal.yml +++ b/Resources/Prototypes/Entities/Objects/Tools/appraisal.yml @@ -17,6 +17,9 @@ quickEquip: false slots: - Belt + - type: PhysicalComposition + materialComposition: + Steel: 250 - type: Tag tags: - AppraisalTool diff --git a/Resources/Prototypes/Entities/Objects/Tools/bucket.yml b/Resources/Prototypes/Entities/Objects/Tools/bucket.yml index d430161a3c..6fddaef73f 100644 --- a/Resources/Prototypes/Entities/Objects/Tools/bucket.yml +++ b/Resources/Prototypes/Entities/Objects/Tools/bucket.yml @@ -26,6 +26,8 @@ solutions: bucket: maxVol: 250 + - type: MixableSolution + solution: bucket - type: SolutionTransfer transferAmount: 100 maxTransferAmount: 100 @@ -33,8 +35,8 @@ canChangeTransferAmount: true - type: UserInterface interfaces: - - key: enum.TransferAmountUiKey.Key - type: TransferAmountBoundUserInterface + enum.TransferAmountUiKey.Key: + type: TransferAmountBoundUserInterface - type: MeleeWeapon canBeBlocked: false # WD EDIT soundNoDamage: @@ -50,6 +52,8 @@ solution: bucket - type: DrainableSolution solution: bucket + - type: SolutionItemStatus + solution: bucket - type: Appearance - type: SolutionContainerVisuals maxFillLevels: 3 diff --git a/Resources/Prototypes/Entities/Objects/Tools/cable_coils.yml b/Resources/Prototypes/Entities/Objects/Tools/cable_coils.yml index 36a4c41163..f06539aa17 100644 --- a/Resources/Prototypes/Entities/Objects/Tools/cable_coils.yml +++ b/Resources/Prototypes/Entities/Objects/Tools/cable_coils.yml @@ -31,7 +31,7 @@ Steel: 15 #Same as Ointment but divided by 5 and 3 because StackPrice needs to be 1 - Estacao Pirata IPCs #1 Ointment = -50 damage of those types - #1 Cable ~= -50 (-49.8) damage of those types + #1 Cable ~= -50 (-49.8) damage of those types - type: Healing delay: 0.6 damageContainers: diff --git a/Resources/Prototypes/Entities/Objects/Tools/cowtools.yml b/Resources/Prototypes/Entities/Objects/Tools/cowtools.yml index 977a8a931b..87959ebef3 100644 --- a/Resources/Prototypes/Entities/Objects/Tools/cowtools.yml +++ b/Resources/Prototypes/Entities/Objects/Tools/cowtools.yml @@ -128,11 +128,6 @@ sprite: Objects/Tools/Cowtools/cowelder.rsi - type: Tool speed: 0.05 - - type: Welder - litMeleeDamageBonus: - types: # When lit, negate standard melee damage and replace with heat - Heat: 0.5 - Blunt: -5 - type: entity name: milkalyzer @@ -147,8 +142,8 @@ - type: GasAnalyzer - type: UserInterface interfaces: - - key: enum.GasAnalyzerUiKey.Key - type: GasAnalyzerBoundUserInterface + enum.GasAnalyzerUiKey.Key: + type: GasAnalyzerBoundUserInterface - type: Appearance - type: entity diff --git a/Resources/Prototypes/Entities/Objects/Tools/decoys.yml b/Resources/Prototypes/Entities/Objects/Tools/decoys.yml index 0074fe517d..d399b77d02 100644 --- a/Resources/Prototypes/Entities/Objects/Tools/decoys.yml +++ b/Resources/Prototypes/Entities/Objects/Tools/decoys.yml @@ -48,6 +48,15 @@ - type: ContainerContainer containers: cell_slot: !type:ContainerSlot + - type: HandheldLight + addPrefix: false + - type: PointLight # Just like the real thing... + autoRot: true + radius: 1.5 + energy: 2.3 + offset: 0, -1 + color: green + netsync: false - type: Tag tags: - Balloon @@ -59,8 +68,6 @@ name: operative balloon description: Upon closer inspection, this Syndicate operative is actually a balloon. components: - - type: HandheldLight - addPrefix: false - type: Sprite sprite: Objects/Tools/Decoys/operative_decoy.rsi layers: @@ -69,13 +76,6 @@ - state: folded map: ["foldedLayer"] visible: false - - type: PointLight # Just like the real thing... - autoRot: true - radius: 1.5 - energy: 2.3 - offset: 0, -1 - color: green - netsync: false - type: entity parent: BaseDecoy @@ -83,8 +83,6 @@ name: agent balloon description: Upon closer inspection, this Syndicate agent is actually a balloon. components: - - type: HandheldLight - addPrefix: false - type: Sprite sprite: Objects/Tools/Decoys/agent_decoy.rsi layers: @@ -93,12 +91,6 @@ - state: folded map: ["foldedLayer"] visible: false - - type: PointLight - radius: 1.5 - energy: 2.3 - offset: 0, -1 - color: green - netsync: false - type: entity parent: BaseDecoy @@ -106,8 +98,6 @@ name: elite operative balloon description: Upon closer inspection, this Syndicate elite operative is actually a balloon. components: - - type: HandheldLight - addPrefix: false - type: Sprite sprite: Objects/Tools/Decoys/elite_decoy.rsi layers: @@ -117,11 +107,7 @@ map: ["foldedLayer"] visible: false - type: PointLight - radius: 1.5 - energy: 2.3 - offset: 0, -1 color: red - netsync: false - type: entity parent: BaseDecoy @@ -129,8 +115,6 @@ name: juggernaut balloon description: Upon closer inspection, this Syndicate juggernaut is actually a balloon. components: - - type: HandheldLight - addPrefix: false - type: Sprite sprite: Objects/Tools/Decoys/juggernaut_decoy.rsi layers: @@ -139,11 +123,6 @@ - state: folded map: ["foldedLayer"] visible: false - - type: PointLight # Inbuilt flashlight, I guess? - radius: 1.5 - energy: 2.3 - offset: 0, -1 - netsync: false - type: entity parent: BaseDecoy @@ -151,8 +130,6 @@ name: commander balloon description: Upon closer inspection, this Syndicate commander is actually a balloon. components: - - type: HandheldLight - addPrefix: false - type: Sprite sprite: Objects/Tools/Decoys/commander_decoy.rsi layers: @@ -161,9 +138,3 @@ - state: folded map: ["foldedLayer"] visible: false - - type: PointLight - radius: 1.5 - energy: 2.3 - offset: 0, -1 - color: green - netsync: false diff --git a/Resources/Prototypes/Entities/Objects/Tools/flare.yml b/Resources/Prototypes/Entities/Objects/Tools/flare.yml index dbdb935b91..fdf5314863 100644 --- a/Resources/Prototypes/Entities/Objects/Tools/flare.yml +++ b/Resources/Prototypes/Entities/Objects/Tools/flare.yml @@ -20,7 +20,13 @@ fadeOutBehaviourID: fade_out litSound: path: /Audio/Items/Flare/flare_on.ogg - loopedSound: /Audio/Items/Flare/flare_burn.ogg + loopedSound: + path: /Audio/Items/Flare/flare_burn.ogg + params: + loop: true + volume: -10 + maxDistance: 5 + - type: Sprite sprite: Objects/Misc/flare.rsi layers: diff --git a/Resources/Prototypes/Entities/Objects/Tools/gas_tanks.yml b/Resources/Prototypes/Entities/Objects/Tools/gas_tanks.yml index abde29cb74..c2503de5c5 100644 --- a/Resources/Prototypes/Entities/Objects/Tools/gas_tanks.yml +++ b/Resources/Prototypes/Entities/Objects/Tools/gas_tanks.yml @@ -1,4 +1,4 @@ -- type: entity +- type: entity abstract: true parent: BaseItem id: GasTankBase @@ -19,8 +19,8 @@ key: enum.SharedGasTankUiKey.Key - type: UserInterface interfaces: - - key: enum.SharedGasTankUiKey.Key - type: GasTankBoundUserInterface + enum.SharedGasTankUiKey.Key: + type: GasTankBoundUserInterface - type: GasTank outputPressure: 21.3 air: @@ -243,3 +243,6 @@ outputPressure: 101.3 - type: Clothing sprite: Objects/Tanks/plasma.rsi + slots: + - Belt + - suitStorage diff --git a/Resources/Prototypes/Entities/Objects/Tools/gps.yml b/Resources/Prototypes/Entities/Objects/Tools/gps.yml index 8ae34573ff..becbb638f4 100644 --- a/Resources/Prototypes/Entities/Objects/Tools/gps.yml +++ b/Resources/Prototypes/Entities/Objects/Tools/gps.yml @@ -12,6 +12,10 @@ - type: Item sprite: Objects/Devices/gps.rsi - type: HandheldGPS + - type: PhysicalComposition + materialComposition: + Steel: 400 + Glass: 150 - type: Tag tags: - GPS diff --git a/Resources/Prototypes/Entities/Objects/Tools/hand_labeler.yml b/Resources/Prototypes/Entities/Objects/Tools/hand_labeler.yml index 7e88395336..c97caad00f 100644 --- a/Resources/Prototypes/Entities/Objects/Tools/hand_labeler.yml +++ b/Resources/Prototypes/Entities/Objects/Tools/hand_labeler.yml @@ -17,7 +17,7 @@ inHandsOnly: true - type: UserInterface interfaces: - - key: enum.HandLabelerUiKey.Key + enum.HandLabelerUiKey.Key: type: HandLabelerBoundUserInterface - type: HandLabeler whitelist: diff --git a/Resources/Prototypes/Entities/Objects/Tools/handheld_mass_scanner.yml b/Resources/Prototypes/Entities/Objects/Tools/handheld_mass_scanner.yml index 5647737219..38b1f7cda9 100644 --- a/Resources/Prototypes/Entities/Objects/Tools/handheld_mass_scanner.yml +++ b/Resources/Prototypes/Entities/Objects/Tools/handheld_mass_scanner.yml @@ -34,10 +34,14 @@ singleUser: true - type: UserInterface interfaces: - - key: enum.RadarConsoleUiKey.Key + enum.RadarConsoleUiKey.Key: type: RadarConsoleBoundUserInterface - type: StaticPrice price: 150 + - type: ReverseEngineering # Delta + difficulty: 3 + recipes: + - HandHeldMassScanner - type: entity id: HandHeldMassScannerEmpty @@ -69,4 +73,4 @@ name: power-cell-slot-component-slot-name-default startingItem: PowerCellMicroreactor disableEject: true - swap: false \ No newline at end of file + swap: false diff --git a/Resources/Prototypes/Entities/Objects/Tools/jammer.yml b/Resources/Prototypes/Entities/Objects/Tools/jammer.yml index beb3695627..b456a23f1f 100644 --- a/Resources/Prototypes/Entities/Objects/Tools/jammer.yml +++ b/Resources/Prototypes/Entities/Objects/Tools/jammer.yml @@ -6,8 +6,26 @@ components: - type: Sprite sprite: Objects/Devices/jammer.rsi - state: jammer + layers: + - state: jammer + - state: jammer_high_charge + map: ["enum.RadioJammerLayers.LED"] + shader: unshaded + visible: false - type: RadioJammer + settings: + - wattage: 1 + range: 2.5 + message: radio-jammer-component-set-message-low + name: radio-jammer-component-setting-low + - wattage: 2 + range: 6 + message: radio-jammer-component-set-message-medium + name: radio-jammer-component-setting-medium + - wattage: 12 + range: 12 + message: radio-jammer-component-set-message-high + name: radio-jammer-component-setting-high - type: PowerCellSlot cellSlotId: cell_slot - type: ContainerContainer @@ -18,3 +36,15 @@ cell_slot: name: power-cell-slot-component-slot-name-default startingItem: PowerCellMedium + - type: Appearance + - type: GenericVisualizer + visuals: + enum.RadioJammerVisuals.LEDOn: + RadioJammerLayers.LED: + True: { visible: True } + False: { visible: False } + enum.RadioJammerVisuals.ChargeLevel: + RadioJammerLayers.LED: + Low: {state: jammer_low_charge} + Medium: {state: jammer_medium_charge} + High: {state: jammer_high_charge} diff --git a/Resources/Prototypes/Entities/Objects/Tools/jaws_of_life.yml b/Resources/Prototypes/Entities/Objects/Tools/jaws_of_life.yml index 352288dcc0..65dbd912ea 100644 --- a/Resources/Prototypes/Entities/Objects/Tools/jaws_of_life.yml +++ b/Resources/Prototypes/Entities/Objects/Tools/jaws_of_life.yml @@ -56,6 +56,10 @@ angle: 20 soundHit: collection: MetalThud + - type: ReverseEngineering # Delta + difficulty: 3 + recipes: + - JawsOfLife - type: entity name: syndicate jaws of life diff --git a/Resources/Prototypes/Entities/Objects/Tools/jetpacks.yml b/Resources/Prototypes/Entities/Objects/Tools/jetpacks.yml index a4c103847f..bd05b8d0f3 100644 --- a/Resources/Prototypes/Entities/Objects/Tools/jetpacks.yml +++ b/Resources/Prototypes/Entities/Objects/Tools/jetpacks.yml @@ -40,7 +40,7 @@ size: Huge - type: UserInterface interfaces: - - key: enum.SharedGasTankUiKey.Key + enum.SharedGasTankUiKey.Key: type: GasTankBoundUserInterface - type: Clothing sprite: Objects/Tanks/Jetpacks/blue.rsi diff --git a/Resources/Prototypes/Entities/Objects/Tools/penlight.yml b/Resources/Prototypes/Entities/Objects/Tools/penlight.yml index 7f8a9b262c..a7fb3a3f1c 100644 --- a/Resources/Prototypes/Entities/Objects/Tools/penlight.yml +++ b/Resources/Prototypes/Entities/Objects/Tools/penlight.yml @@ -28,8 +28,8 @@ - type: Appearance - type: UserInterface interfaces: - - key: enum.PenLightUiKey.Key - type: PenLightBoundUserInterface + enum.PenLightUiKey.Key: + type: PenLightBoundUserInterface - type: ToggleableLightVisuals - type: ContainerContainer containers: diff --git a/Resources/Prototypes/Entities/Objects/Tools/spray_painter.yml b/Resources/Prototypes/Entities/Objects/Tools/spray_painter.yml index 903b8d3f90..ad31a6ec02 100644 --- a/Resources/Prototypes/Entities/Objects/Tools/spray_painter.yml +++ b/Resources/Prototypes/Entities/Objects/Tools/spray_painter.yml @@ -13,8 +13,8 @@ key: enum.SprayPainterUiKey.Key - type: UserInterface interfaces: - - key: enum.SprayPainterUiKey.Key - type: SprayPainterBoundUserInterface + enum.SprayPainterUiKey.Key: + type: SprayPainterBoundUserInterface - type: SprayPainter colorPalette: red: '#FF1212FF' diff --git a/Resources/Prototypes/Entities/Objects/Tools/t-ray.yml b/Resources/Prototypes/Entities/Objects/Tools/t-ray.yml index 02df0b69dc..f00e87203a 100644 --- a/Resources/Prototypes/Entities/Objects/Tools/t-ray.yml +++ b/Resources/Prototypes/Entities/Objects/Tools/t-ray.yml @@ -19,5 +19,9 @@ base: On: { state: tray-on } Off: { state: tray-off } + - type: PhysicalComposition + materialComposition: + Steel: 400 + Glass: 150 - type: StaticPrice price: 60 diff --git a/Resources/Prototypes/Entities/Objects/Tools/toolbox.yml b/Resources/Prototypes/Entities/Objects/Tools/toolbox.yml index 6702ae39d6..dd1e8fb593 100644 --- a/Resources/Prototypes/Entities/Objects/Tools/toolbox.yml +++ b/Resources/Prototypes/Entities/Objects/Tools/toolbox.yml @@ -181,5 +181,5 @@ key: enum.ThiefBackpackUIKey.Key - type: UserInterface interfaces: - - key: enum.ThiefBackpackUIKey.Key + enum.ThiefBackpackUIKey.Key: type: ThiefBackpackBoundUserInterface diff --git a/Resources/Prototypes/Entities/Objects/Tools/tools.yml b/Resources/Prototypes/Entities/Objects/Tools/tools.yml index 23d7db933b..1b8479ecd0 100644 --- a/Resources/Prototypes/Entities/Objects/Tools/tools.yml +++ b/Resources/Prototypes/Entities/Objects/Tools/tools.yml @@ -294,11 +294,11 @@ inHandsOnly: true - type: UserInterface interfaces: - - key: enum.NetworkConfiguratorUiKey.List + enum.NetworkConfiguratorUiKey.List: type: NetworkConfiguratorBoundUserInterface - - key: enum.NetworkConfiguratorUiKey.Configure + enum.NetworkConfiguratorUiKey.Configure: type: NetworkConfiguratorBoundUserInterface - - key: enum.NetworkConfiguratorUiKey.Link + enum.NetworkConfiguratorUiKey.Link: type: NetworkConfiguratorBoundUserInterface - type: Tag tags: @@ -350,11 +350,11 @@ - DoorElectronicsConfigurator - type: UserInterface interfaces: - - key: enum.NetworkConfiguratorUiKey.List + enum.NetworkConfiguratorUiKey.List: type: NetworkConfiguratorBoundUserInterface - - key: enum.NetworkConfiguratorUiKey.Configure + enum.NetworkConfiguratorUiKey.Configure: type: NetworkConfiguratorBoundUserInterface - - key: enum.NetworkConfiguratorUiKey.Link + enum.NetworkConfiguratorUiKey.Link: type: NetworkConfiguratorBoundUserInterface - type: StaticPrice price: 56 @@ -409,10 +409,6 @@ Plastic: 100 # - type: DynamicPrice # price: 100 - - type: ReverseEngineering # Nyano - difficulty: 2 - recipes: - - PowerDrill - type: StaticPrice price: 100 - type: MeleeWeapon @@ -429,6 +425,10 @@ angle: 20 soundHit: path: "/Audio/Items/drill_hit.ogg" + - type: ReverseEngineering # Nyano + difficulty: 2 + recipes: + - PowerDrill - type: entity id: RCD @@ -474,15 +474,19 @@ - type: PhysicalComposition materialComposition: Steel: 600 - Plastic: 100 + Plastic: 150 - type: StaticPrice price: 100 - type: UserInterface interfaces: - - key: enum.RcdUiKey.Key - type: RCDMenuBoundUserInterface + enum.RcdUiKey.Key: + type: RCDMenuBoundUserInterface - type: ActivatableUI key: enum.RcdUiKey.Key + - type: ReverseEngineering # Nyano + difficulty: 3 + recipes: + - RCD - type: entity id: RCDEmpty @@ -544,7 +548,7 @@ heldPrefix: ammo - type: PhysicalComposition materialComposition: - Steel: 100 + Steel: 300 Plastic: 100 - type: StaticPrice price: 60 diff --git a/Resources/Prototypes/Entities/Objects/Tools/welders.yml b/Resources/Prototypes/Entities/Objects/Tools/welders.yml index 0d0c79a081..34b249e903 100644 --- a/Resources/Prototypes/Entities/Objects/Tools/welders.yml +++ b/Resources/Prototypes/Entities/Objects/Tools/welders.yml @@ -109,7 +109,6 @@ - type: WeldingHealing # Same as Brutepack - Estacao Pirata IPCs damageContainers: - Silicon - fuelcost: 5 damage: types: Blunt: -15 diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Boxes/light_rifle.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Boxes/light_rifle.yml index 22eeeff859..edca311cb1 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Boxes/light_rifle.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Boxes/light_rifle.yml @@ -10,7 +10,7 @@ tags: - CartridgeLightRifle proto: CartridgeLightRifle - capacity: 50 + capacity: 60 - type: Item size: Small - type: ContainerContainer diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Boxes/magnum.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Boxes/magnum.yml index c304f0af11..3f71f93440 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Boxes/magnum.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Boxes/magnum.yml @@ -9,7 +9,7 @@ tags: - CartridgeMagnum proto: CartridgeMagnum - capacity: 60 + capacity: 12 - type: Item size: Small - type: ContainerContainer diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Boxes/rifle.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Boxes/rifle.yml index 8e6c79dfe5..03d6e33799 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Boxes/rifle.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Boxes/rifle.yml @@ -9,7 +9,7 @@ tags: - CartridgeRifle proto: CartridgeRifle - capacity: 60 + capacity: 50 - type: Item size: Small - type: ContainerContainer diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Boxes/shotgun.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Boxes/shotgun.yml index 831c3c3352..63ad52c032 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Boxes/shotgun.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Boxes/shotgun.yml @@ -21,7 +21,7 @@ whitelist: tags: - ShellShotgun - capacity: 12 + capacity: 16 # Shotgun Shells - type: entity @@ -89,6 +89,19 @@ - state: boxwide - state: shellincendiary +- type: entity + name: shotgun uranium cartridges dispenser + parent: AmmoProviderShotgunShell + id: BoxShotgunUranium + description: A dispenser box full of uranium cartridges, designed for riot shotguns. + components: + - type: BallisticAmmoProvider + proto: ShellShotgunUranium + - type: Sprite + layers: + - state: boxwide + - state: shelluranium + - type: entity name: shotgun practice cartridges dispenser parent: AmmoProviderShotgunShell @@ -113,4 +126,4 @@ - type: Sprite layers: - state: boxwide - - state: shellslug \ No newline at end of file + - state: shellslug diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Magazines/light_rifle.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Magazines/light_rifle.yml index d420a5c3d8..296af23af5 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Magazines/light_rifle.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Magazines/light_rifle.yml @@ -68,6 +68,19 @@ - state: mag-1 map: ["enum.GunVisualLayers.Mag"] +- type: entity + id: MagazineLightRifleEmpty + name: "magazine (.30 rifle any)" + suffix: empty + parent: MagazineLightRifle + components: + - type: BallisticAmmoProvider + proto: null + - type: Sprite + layers: + - state: base + map: ["enum.GunVisualLayers.Base"] + - type: entity id: MagazineLightRiflePractice name: "magazine (.30 rifle practice)" @@ -110,6 +123,14 @@ - state: mag-1 map: ["enum.GunVisualLayers.Mag"] +- type: entity + id: MagazineLightRifleIncendiary + name: "magazine (.30 rifle incendiary)" + parent: MagazineLightRifle + components: + - type: BallisticAmmoProvider + proto: CartridgeLightRifleIncendiary + - type: entity id: MagazineLightRifleMaxim name: "pan magazine (.30 rifle)" diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Magazines/magnum.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Magazines/magnum.yml index 6a1cc041de..fc506ec594 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Magazines/magnum.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Magazines/magnum.yml @@ -47,6 +47,19 @@ zeroVisible: false - type: Appearance +- type: entity + id: MagazineMagnumEmpty + name: pistol magazine (.45 magnum any) + suffix: empty + parent: BaseMagazineMagnum + components: + - type: BallisticAmmoProvider + proto: null + - type: Sprite + layers: + - state: base + map: ["enum.GunVisualLayers.Base"] + - type: entity id: MagazineMagnum name: pistol magazine (.45 magnum) @@ -117,6 +130,19 @@ - state: mag-1 map: ["enum.GunVisualLayers.Mag"] +- type: entity + id: MagazineMagnumSubMachineGunEmpty + name: "Vector magazine (.45 magnum any)" + suffix: empty + parent: BaseMagazineMagnumSubMachineGun + components: + - type: BallisticAmmoProvider + proto: null + - type: Sprite + layers: + - state: base + map: ["enum.GunVisualLayers.Base"] + - type: entity id: MagazineMagnumSubMachineGun name: "Vector magazine (.45 magnum)" diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Magazines/pistol.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Magazines/pistol.yml index 679acd299c..bde2731937 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Magazines/pistol.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Magazines/pistol.yml @@ -128,6 +128,14 @@ containers: ballistic-ammo: !type:Container +- type: entity + id: MagazinePistolSubMachineGunTopMountedEmpty + name: WT550 magazine (.35 auto top-mounted any) + parent: MagazinePistolSubMachineGunTopMounted + components: + - type: BallisticAmmoProvider + proto: null + - type: entity id: MagazinePistol name: pistol magazine (.35 auto) @@ -142,6 +150,28 @@ - state: mag-1 map: ["enum.GunVisualLayers.Mag"] +- type: entity + id: MagazinePistolEmpty + name: pistol magazine (.35 auto any) + suffix: empty + parent: MagazinePistol + components: + - type: BallisticAmmoProvider + proto: null + - type: Sprite + layers: + - state: base + map: ["enum.GunVisualLayers.Base"] + + +- type: entity + id: MagazinePistolIncendiary + name: pistol magazine (.35 auto incendiary) + parent: MagazinePistol + components: + - type: BallisticAmmoProvider + proto: CartridgePistolIncendiary + - type: entity id: MagazinePistolPractice name: pistol magazine (.35 auto practice) @@ -170,6 +200,33 @@ - state: mag-1 map: ["enum.GunVisualLayers.Mag"] +- type: entity + id: MagazinePistolUranium + name: pistol magazine (.35 auto uranium) + parent: BaseMagazinePistol + components: + - type: BallisticAmmoProvider + proto: CartridgePistolUranium + - type: Sprite + layers: + - state: uranium + map: ["enum.GunVisualLayers.Base"] + - state: mag-1 + map: ["enum.GunVisualLayers.Mag"] + +- type: entity + id: MagazinePistolHighCapacityEmpty + name: machine pistol magazine (.35 auto any) + suffix: empty + parent: BaseMagazinePistolHighCapacity + components: + - type: BallisticAmmoProvider + proto: null + - type: Sprite + layers: + - state: base + map: ["enum.GunVisualLayers.Base"] + - type: entity id: MagazinePistolHighCapacity name: machine pistol magazine (.35 auto) @@ -232,6 +289,19 @@ - state: mag-1 map: ["enum.GunVisualLayers.Mag"] +- type: entity + id: MagazinePistolSubMachineGunEmpty + name: SMG magazine (.35 auto any) + suffix: empty + parent: BaseMagazinePistolSubMachineGun + components: + - type: BallisticAmmoProvider + proto: null + - type: Sprite + layers: + - state: base + map: ["enum.GunVisualLayers.Base"] + - type: entity id: MagazinePistolSubMachineGunPractice name: SMG magazine (.35 auto practice) diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Magazines/rifle.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Magazines/rifle.yml index 5ba57dce4e..7d8aeb9346 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Magazines/rifle.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Magazines/rifle.yml @@ -47,6 +47,27 @@ - state: mag-1 map: ["enum.GunVisualLayers.Mag"] +- type: entity + id: MagazineRifleEmpty + name: "magazine (.20 rifle any)" + suffix: empty + parent: MagazineRifle + components: + - type: BallisticAmmoProvider + proto: null + - type: Sprite + layers: + - state: base + map: ["enum.GunVisualLayers.Base"] + +- type: entity + id: MagazineRifleIncendiary + name: "magazine (.20 rifle incendiary)" + parent: MagazineRifle + components: + - type: BallisticAmmoProvider + proto: CartridgeRifleIncendiary + - type: entity id: MagazineRiflePractice name: "magazine (.20 rifle practice)" diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Magazines/shotgun.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Magazines/shotgun.yml index cbe9bbfbe9..5b0b16bf4b 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Magazines/shotgun.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Magazines/shotgun.yml @@ -33,6 +33,15 @@ zeroVisible: false - type: Appearance +- type: entity + id: MagazineShotgunEmpty + name: ammo drum (.50 shells any) + suffix: empty + parent: BaseMagazineShotgun + components: + - type: BallisticAmmoProvider + proto: null + - type: entity id: MagazineShotgun name: ammo drum (.50 pellet) diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/SpeedLoaders/magnum.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/SpeedLoaders/magnum.yml index b06ca64d8f..d8e2c908b6 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/SpeedLoaders/magnum.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/SpeedLoaders/magnum.yml @@ -39,6 +39,27 @@ zeroVisible: false - type: Appearance +- type: entity + id: SpeedLoaderMagnumEmpty + name: "speed loader (.45 magnum any)" + parent: SpeedLoaderMagnum + components: + - type: BallisticAmmoProvider + proto: null + - type: Sprite + sprite: Objects/Weapons/Guns/Ammunition/SpeedLoaders/Magnum/magnum_speed_loader.rsi + layers: + - state: base + map: [ "enum.GunVisualLayers.Base" ] + +- type: entity + id: SpeedLoaderMagnumIncendiary + name: "speed loader (.45 magnum incendiary)" + parent: SpeedLoaderMagnum + components: + - type: BallisticAmmoProvider + proto: CartridgeMagnumIncendiary + - type: entity id: SpeedLoaderMagnumPractice name: "speed loader (.45 magnum practice)" diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Basic/base_wieldable.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Basic/base_wieldable.yml new file mode 100644 index 0000000000..cf858e1737 --- /dev/null +++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Basic/base_wieldable.yml @@ -0,0 +1,12 @@ +# A basic inheritable template for a gun that is wieldable and has the standard inaccuracy. +- type: entity + id: BaseGunWieldable + abstract: true + components: + - type: Wieldable + - type: GunWieldBonus + minAngle: -20 + maxAngle: -30 + - type: Gun + minAngle: 21 + maxAngle: 32 diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Basic/watergun.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Basic/watergun.yml index e925bdab87..c96a1522d2 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Basic/watergun.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Basic/watergun.yml @@ -34,8 +34,8 @@ canChangeTransferAmount: true - type: UserInterface interfaces: - - key: enum.TransferAmountUiKey.Key - type: TransferAmountBoundUserInterface + enum.TransferAmountUiKey.Key: + type: TransferAmountBoundUserInterface - type: DrawableSolution solution: chamber - type: RefillableSolution 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 36b483db3a..85bc39c454 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Battery/battery_guns.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Battery/battery_guns.yml @@ -222,7 +222,7 @@ - type: entity name: laser rifle - parent: BaseWeaponBattery + parent: [BaseWeaponBattery, BaseGunWieldable] id: WeaponLaserCarbine description: Favoured by Nanotrasen Security for being cheap and easy to use. components: @@ -287,9 +287,18 @@ maxCharge: 2000 startingCharge: 2000 +- type: entity + name: antique pulse pistol + parent: WeaponPulsePistol + id: WeaponPulsePistolHoS + description: One of the many weapons belonging to the Head of Security's private collection. This pistol is engraved with the words, "Forgive Us, Mother Sol'" + components: + - type: StealTarget + stealGroup: WeaponPulsePistolHoS + - type: entity name: pulse carbine - parent: BaseWeaponBattery + parent: [BaseWeaponBattery, BaseGunWieldable] id: WeaponPulseCarbine description: A high tech energy carbine favoured by the NT-ERT operatives. components: @@ -320,7 +329,7 @@ - type: entity name: pulse rifle - parent: BaseWeaponBattery + parent: [BaseWeaponBattery, BaseGunWieldable] id: WeaponPulseRifle description: A weapon that is almost as infamous as its users. components: @@ -347,7 +356,7 @@ - type: entity name: laser cannon - parent: BaseWeaponBattery + parent: [BaseWeaponBattery, BaseGunWieldable] id: WeaponLaserCannon description: A heavy duty, high powered laser weapon. components: @@ -402,7 +411,7 @@ - type: entity name: x-ray cannon - parent: BaseWeaponBattery + parent: [BaseWeaponBattery, BaseGunWieldable] id: WeaponXrayCannon description: An experimental weapon that uses concentrated x-ray energy against its target. components: diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Bow/bow.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Bow/bow.yml index db98c6eabe..32b4fc6075 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Bow/bow.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Bow/bow.yml @@ -12,7 +12,8 @@ - type: Clothing quickEquip: false slots: - - Back + - Back + - suitStorage - type: Wieldable wieldSound: path: /Audio/Items/bow_pull.ogg diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/LMGs/lmgs.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/LMGs/lmgs.yml index 8487a592e8..803bb4a8b5 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/LMGs/lmgs.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/LMGs/lmgs.yml @@ -14,6 +14,8 @@ slots: - Back - type: Wieldable + unwieldOnUse: false + - type: GunRequiresWield - type: GunWieldBonus minAngle: -20 maxAngle: -20 diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Launchers/launchers.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Launchers/launchers.yml index 4fa7831f5a..00c2df399e 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Launchers/launchers.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Launchers/launchers.yml @@ -22,7 +22,7 @@ - type: entity name: china lake - parent: BaseWeaponLauncher + parent: [BaseWeaponLauncher, BaseGunWieldable] id: WeaponLauncherChinaLake description: PLOOP components: @@ -380,3 +380,29 @@ - CartridgeRocket proto: ImmovableRodSlow - type: GiftIgnore # WD EDIT + +# Frontier mail RPDS +- type: entity + name: mail RPDS + parent: WeaponLauncherChinaLake + id: WeaponMailLake + description: Rap(b?)id Parcel Delivery System + components: + - type: Sprite + sprite: Objects/Weapons/Guns/Launchers/mail.rsi + layers: + - state: icon + map: ["enum.GunVisualLayers.Base"] + - type: Clothing + sprite: Objects/Weapons/Guns/Launchers/mail.rsi + quickEquip: false + slots: + - Back + - Belt + - suitStorage + - type: BallisticAmmoProvider + proto: null + whitelist: + tags: + - MailCapsule + capacity: 4 diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Pistols/pistols.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Pistols/pistols.yml index 0aa737049c..e439d56695 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Pistols/pistols.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Pistols/pistols.yml @@ -115,6 +115,31 @@ path: /Audio/Weapons/Guns/Gunshots/pistol.ogg fireOnDropChance: 0.3 +- type: entity + id: WeaponPistolViperNonLethal + parent: WeaponPistolViper + suffix: Non-lethal + components: + - type: ItemSlots + slots: + gun_magazine: + name: Magazine + startingItem: MagazinePistolRubber + insertSound: /Audio/Weapons/Guns/MagIn/pistol_magin.ogg + ejectSound: /Audio/Weapons/Guns/MagOut/pistol_magout.ogg + priority: 2 + whitelist: + tags: + - MagazinePistol + - MagazinePistolHighCapacity + gun_chamber: + name: Chamber + startingItem: CartridgePistolRubber + priority: 1 + whitelist: + tags: + - CartridgePistol + - type: entity name: cobra parent: BaseWeaponPistol @@ -259,7 +284,7 @@ - type: entity name: N1984 parent: WeaponPistolN1984 - id: WeaponPistolN1984Nonlethal + id: WeaponPistolN1984NonLethal suffix: Non-lethal components: - type: ItemSlots diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Projectiles/arrows.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Projectiles/arrows.yml index 52c5dc8a9d..6f925139fb 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Projectiles/arrows.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Projectiles/arrows.yml @@ -1,4 +1,4 @@ -- type: entity +- type: entity parent: BaseItem id: BaseArrow abstract: true @@ -35,7 +35,6 @@ - type: Tag tags: - Arrow - - CannonRestrict - type: Projectile deleteOnCollide: false onlyCollideWhenShot: true diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Projectiles/magic.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Projectiles/magic.yml index 3556d1c8f8..b3abbfdfd3 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Projectiles/magic.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Projectiles/magic.yml @@ -30,6 +30,39 @@ - type: IgniteOnCollide fireStacks: 0.35 +- type: entity + noSpawn: true + parent: BaseBulletTrigger + id: ProjectileDragonsBreath + name: dragon's breath + description: Try not to get toasted. + components: + - type: PointLight + color: "#E25822" + radius: 3.0 + energy: 5.0 + - type: Sprite + sprite: Objects/Weapons/Guns/Projectiles/magic.rsi + layers: + - state: fireball + shader: unshaded + - type: IgnitionSource + temperature: 1000 + ignited: true + - type: RepeatingTrigger + delay: 0.5 # line of fire as well as if it hits something + - type: ExplodeOnTrigger + - type: Explosive + explosionType: Default + totalIntensity: 5 # low intensity, the point is to burn attackers not to break open walls, dragons can just eat them + intensitySlope: 1 + maxIntensity: 3 + canCreateVacuum: false + deleteAfterExplosion: false + repeatable: true + - type: TimedDespawn + lifetime: 5 + - type: entity id: ProjectileAnomalyFireball name: fireball diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Revolvers/revolvers.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Revolvers/revolvers.yml index 08661aa301..951463eb43 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Revolvers/revolvers.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Revolvers/revolvers.yml @@ -85,6 +85,19 @@ - type: StaticPrice price: 1500 +- type: entity + name: Deckard + parent: WeaponRevolverDeckard + id: WeaponRevolverDeckardNonLethal + description: A rare, custom-built revolver. Use when you need to spare the Replicants. Comes with .45 magnum rubber. + components: + - type: RevolverAmmoProvider + whitelist: + tags: + - CartridgeMagnum + - SpeedLoaderMagnum + proto: CartridgeMagnumRubber + - type: entity name: Inspector parent: BaseWeaponRevolver @@ -100,6 +113,19 @@ chambers: [ True, True, True, True, True, True ] ammoSlots: [ null, null, null, null, null, null ] +- type: entity + name: Inspector + parent: WeaponRevolverInspector + id: WeaponRevolverInspectorNonLethal + description: A detective's best friend. Comes loaded with .45 magnum rubber. + components: + - type: RevolverAmmoProvider + whitelist: + tags: + - CartridgeMagnum + - SpeedLoaderMagnum + proto: CartridgeMagnumRubber + - type: entity name: Mateba parent: BaseWeaponRevolver diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Rifles/rifles.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Rifles/rifles.yml index a17d98dcb0..61c7ab2b31 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Rifles/rifles.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Rifles/rifles.yml @@ -1,6 +1,6 @@ - type: entity name: BaseWeaponRifle - parent: BaseItem + parent: [BaseItem, BaseGunWieldable] id: BaseWeaponRifle description: A rooty tooty point and shooty. abstract: true @@ -14,6 +14,8 @@ slots: - Back - suitStorage + - type: Wieldable + - type: GunRequiresWield - type: AmmoCounter - type: Gun fireRate: 5 diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/SMGs/smgs.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/SMGs/smgs.yml index a70809b8b1..df1600f4e9 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/SMGs/smgs.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/SMGs/smgs.yml @@ -90,7 +90,7 @@ name: C-20r sub machine gun parent: BaseWeaponSubMachineGun id: WeaponSubMachineGunC20r - description: A firearm that is often used by the infamous nuclear operatives. Uses .35 auto ammo. + description: Manufactured by Cybersun-Armaments, the C-20r is one of the most popular personal small-arms in the Coalition of Colonies. Uses .35 auto ammo. components: - type: Sprite sprite: Objects/Weapons/Guns/SMGs/c20r.rsi @@ -101,7 +101,13 @@ map: ["enum.GunVisualLayers.Mag"] - type: Clothing sprite: Objects/Weapons/Guns/SMGs/c20r.rsi + - type: Wieldable + - type: GunWieldBonus + minAngle: -19 + maxAngle: -16 - type: Gun + minAngle: 21 + maxAngle: 32 shotsPerBurst: 5 availableModes: - SemiAuto @@ -118,6 +124,15 @@ zeroVisible: true - type: Appearance +- type: entity + name: antique C-20r submachine gun + parent: WeaponSubMachineGunC20r + id: WeaponSubMachineGunC20rHoS + description: This heavily worn submachine gun is engraved with the words, "Remember Mars". + components: + - type: StealTarget + stealGroup: WeaponSubMachineGunC20rHoS + - type: entity name: Drozd parent: BaseWeaponSubMachineGun @@ -133,7 +148,13 @@ map: ["enum.GunVisualLayers.Mag"] - type: Clothing sprite: Objects/Weapons/Guns/SMGs/drozd.rsi + - type: Wieldable + - type: GunWieldBonus + minAngle: -19 + maxAngle: -16 - type: Gun + minAngle: 21 + maxAngle: 32 fireRate: 6 selectedMode: FullAuto soundGunshot: @@ -273,6 +294,15 @@ zeroVisible: true - type: Appearance +- type: entity + name: antique Wt550 + id: WeaponSubMachineGunWt550HoS + parent: WeaponSubMachineGunWt550 + description: A prized possession of the station's Head of Security. The smell of dried blood lingers on this weapon's muzzle. A small torch with 24 stars surrounding it has been engraved on the grip. + components: + - type: StealTarget + stealGroup: WeaponSubMachineGunWt550HoS + # Rubber - type: entity name: Drozd diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Shotguns/shotguns.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Shotguns/shotguns.yml index 71dd92de95..198bf5b948 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Shotguns/shotguns.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Shotguns/shotguns.yml @@ -55,7 +55,7 @@ - type: entity name: Bulldog # Don't parent to BaseWeaponShotgun because it differs significantly - parent: BaseItem + parent: [BaseItem, BaseGunWieldable] id: WeaponShotgunBulldog description: It's a magazine-fed shotgun designed for close quarters combat. Uses .50 shotgun shells. components: @@ -75,6 +75,7 @@ - Back - suitStorage - type: AmmoCounter + - type: GunRequiresWield #remove when inaccuracy on spreads is fixed - type: Gun fireRate: 2 selectedMode: FullAuto @@ -85,6 +86,7 @@ soundEmpty: path: /Audio/Weapons/Guns/Empty/empty.ogg fireOnDropChance: 0.3 + - type: Wieldable - type: ItemSlots slots: gun_magazine: @@ -109,9 +111,18 @@ - type: StaticPrice price: 500 +- type: entity + name: antique Bulldog + parent: WeaponShotgunBulldog + id: WeaponShotgunBulldogHoS + description: This is a seemingly ordinary shotgun, no different from those issued as standard in the Republic of Biesel Navy. A close inspection reveals that this weapon's serial number is 000000013. + components: + - type: StealTarget + stealGroup: WeaponShotgunBulldogHoS + - type: entity name: double-barreled shotgun - parent: BaseWeaponShotgun + parent: [BaseWeaponShotgun, BaseGunWieldable] id: WeaponShotgunDoubleBarreled description: An immortal classic. Uses .50 shotgun shells. components: @@ -121,11 +132,12 @@ size: Normal shape: - 0,0,4,0 - sprite: Objects/Weapons/Guns/Shotguns/inhands_64x.rsi - heldPrefix: db + sprite: Objects/Weapons/Guns/Shotguns/db_shotgun_inhands_64x.rsi + - type: GunRequiresWield #remove when inaccuracy on spreads is fixed - type: Gun fireRate: 2 fireOnDropChance: 0.5 + - type: Wieldable - type: BallisticAmmoProvider capacity: 2 autoCycle: true # WD EDIT @@ -146,15 +158,19 @@ - type: entity name: Enforcer - parent: BaseWeaponShotgun + parent: [BaseWeaponShotgun, BaseGunWieldable] id: WeaponShotgunEnforcer description: A premium combat shotgun based on the Kammerer design, featuring an upgraded clip capacity. .50 shotgun shells. components: - type: Sprite - sprite: DeltaV/Objects/Weapons/Guns/Shotguns/enforcer.rsi # Delta-V + sprite: DeltaV/Objects/Weapons/Guns/Shotguns/enforcer.rsi - type: Clothing - sprite: DeltaV/Objects/Weapons/Guns/Shotguns/enforcer.rsi # Delta-V + sprite: DeltaV/Objects/Weapons/Guns/Shotguns/enforcer.rsi + - type: Item + sprite: Objects/Weapons/Guns/Shotguns/enforcer_inhands_64x.rsi - type: BallisticAmmoProvider + - type: Wieldable + - type: GunRequiresWield - type: entity parent: WeaponShotgunEnforcer @@ -166,7 +182,7 @@ - type: entity name: Kammerer - parent: BaseWeaponShotgun + parent: [BaseWeaponShotgun, BaseGunWieldable] id: WeaponShotgunKammerer description: When an old Remington design meets modern materials, this is the result. A favourite weapon of militia forces throughout many worlds. Uses .50 shotgun shells. components: @@ -174,17 +190,18 @@ size: Normal shape: - 0,0,4,0 - sprite: Objects/Weapons/Guns/Shotguns/inhands_64x.rsi - heldPrefix: pump + sprite: Objects/Weapons/Guns/Shotguns/pump_inhands_64x.rsi - type: Sprite - sprite: DeltaV/Objects/Weapons/Guns/Shotguns/pump.rsi # Delta-V + sprite: DeltaV/Objects/Weapons/Guns/Shotguns/pump.rsi - type: Clothing - sprite: DeltaV/Objects/Weapons/Guns/Shotguns/pump.rsi # Delta-V + sprite: DeltaV/Objects/Weapons/Guns/Shotguns/pump.rsi + - type: GunRequiresWield #remove when inaccuracy on spreads is fixed - type: BallisticAmmoProvider capacity: 4 - type: Tag tags: - WeaponShotgunKammerer + - type: Wieldable - type: entity name: sawn-off shotgun @@ -198,8 +215,7 @@ sprite: DeltaV/Objects/Weapons/Guns/Shotguns/sawn.rsi # Delta-V - type: Item size: Small - sprite: Objects/Weapons/Guns/Shotguns/inhands_64x.rsi - heldPrefix: sawn + sprite: Objects/Weapons/Guns/Shotguns/sawn_inhands_64x.rsi - type: Gun fireRate: 4 fireOnDropChance: 0.5 @@ -251,7 +267,7 @@ - type: entity name: blunderbuss - parent: BaseWeaponShotgun + parent: [BaseWeaponShotgun, BaseGunWieldable] id: WeaponShotgunBlunderbuss suffix: Pirate description: Deadly at close range. @@ -262,6 +278,7 @@ - 0,0,4,0 - type: Sprite sprite: Objects/Weapons/Guns/Shotguns/blunderbuss.rsi + - type: GunRequiresWield #remove when inaccuracy on spreads is fixed - type: Gun fireRate: 2 fireOnDropChance: 1 @@ -269,10 +286,11 @@ capacity: 1 - type: StaticPrice price: 0 + - type: Wieldable - type: entity name: improvised shotgun - parent: BaseWeaponShotgun + parent: [BaseWeaponShotgun, BaseGunWieldable] id: WeaponShotgunImprovised description: A shitty, hand-made shotgun that uses .50 shotgun shells. It can only hold one round in the chamber. components: @@ -284,8 +302,8 @@ size: Normal shape: - 0,0,4,0 - sprite: Objects/Weapons/Guns/Shotguns/inhands_64x.rsi - heldPrefix: improvised + sprite: Objects/Weapons/Guns/Shotguns/improvised_shotgun_inhands_64x.rsi + - type: GunRequiresWield #remove when inaccuracy on spreads is fixed - type: Gun fireRate: 4 #No reason to stifle the firerate since you have to manually reload every time anyways. fireOnDropChance: 1 diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Snipers/snipers.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Snipers/snipers.yml index deedd7f8eb..6b63178366 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Snipers/snipers.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Snipers/snipers.yml @@ -18,6 +18,8 @@ - Back - suitStorage - type: AmmoCounter + - type: Wieldable + - type: GunRequiresWield - type: Gun fireRate: 0.75 selectedMode: SemiAuto @@ -48,7 +50,7 @@ - type: entity name: Kardashev-Mosin - parent: BaseWeaponSniper + parent: [BaseWeaponSniper, BaseGunWieldable] id: WeaponSniperMosin description: A weapon for hunting, or endless trench warfare. Uses .30 rifle ammo. components: @@ -70,9 +72,19 @@ soundHit: path: /Audio/Weapons/bladeslice.ogg +- type: entity + name: Kardashev-Mosin + parent: WeaponSniperMosin + id: WeaponSniperMosinRubber + description: A weapon for hunting, or endless trench warfare. Uses .30 rifle rubber ammo. + suffix: Non-Lethal + components: + - type: BallisticAmmoProvider + proto: CartridgeLightRifleRubber + - type: entity name: Hristov - parent: BaseWeaponSniper + parent: [BaseWeaponSniper, BaseGunWieldable] id: WeaponSniperHristov description: A portable anti-materiel rifle. Fires armor piercing 14.5mm shells. Uses .60 anti-materiel ammo. components: diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/pneumatic_cannon.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/pneumatic_cannon.yml index ae1f5df3c1..1251172946 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/pneumatic_cannon.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/pneumatic_cannon.yml @@ -22,7 +22,6 @@ selectedMode: SemiAuto availableModes: - SemiAuto - - FullAuto soundGunshot: path: /Audio/Effects/thunk.ogg soundEmpty: @@ -34,10 +33,7 @@ - type: Storage maxItemSize: Normal grid: - - 0,0,3,3 - blacklist: - tags: - - CannonRestrict + - 0,0,1,1 - type: Appearance - type: ItemMapper containerWhitelist: [gas_tank] diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Melee/baseball_bat.yml b/Resources/Prototypes/Entities/Objects/Weapons/Melee/baseball_bat.yml index ade0657ada..4ab302ce20 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Melee/baseball_bat.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Melee/baseball_bat.yml @@ -41,6 +41,9 @@ node: bat - type: UseDelay delay: 1 + - type: PhysicalComposition + materialComposition: + Wood: 250 - type: Tag tags: - BaseballBat diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Melee/cane.yml b/Resources/Prototypes/Entities/Objects/Weapons/Melee/cane.yml new file mode 100644 index 0000000000..5c26020d72 --- /dev/null +++ b/Resources/Prototypes/Entities/Objects/Weapons/Melee/cane.yml @@ -0,0 +1,98 @@ +- type: entity + parent: BaseItem + id: Cane + name: cane + description: A wooden cane. + components: + - type: Sprite + sprite: Objects/Weapons/Melee/cane.rsi + state: cane + - type: Item + size: Normal + sprite: Objects/Weapons/Melee/cane.rsi + - type: Appearance + - type: MeleeWeapon + wideAnimationRotation: 45 + damage: + types: + Blunt: 5 + - type: StaminaDamageOnHit + damage: 5 + - type: Wieldable + - type: IncreaseDamageOnWield + damage: + types: + Blunt: 3 + - type: UseDelay + delay: 1 + +- type: entity + name: cane blade + parent: BaseItem + id: CaneBlade + description: A sharp blade with a cane shaped hilt. + components: + - type: Sharp + - type: Sprite + sprite: Objects/Weapons/Melee/cane_blade.rsi + state: icon + - type: MeleeWeapon + wideAnimationRotation: 65 + attackRate: 1.5 + damage: + types: + Slash: 14 + soundHit: + path: /Audio/Weapons/bladeslice.ogg + - type: Item + size: Normal + sprite: Objects/Weapons/Melee/cane_blade.rsi + - type: Tag + tags: + - CaneBlade + - type: DisarmMalus + +- type: entity + parent: Cane + id: CaneSheath + suffix: Empty + components: + - type: Sprite + sprite: Objects/Weapons/Melee/cane.rsi + state: cane-empty + - type: ContainerContainer + containers: + storagebase: !type:Container + ents: [] + item: !type:ContainerSlot + - type: UserInterface + interfaces: + enum.StorageUiKey.Key: + type: StorageBoundUserInterface + - type: ItemSlots + slots: + item: + name: CaneBlade + insertVerbText: sheath-insert-verb + ejectVerbText: sheath-eject-verb + whitelist: + tags: + - CaneBlade + insertSound: /Audio/Items/sheath.ogg + ejectSound: /Audio/Items/unsheath.ogg + - type: ItemMapper + mapLayers: + cane: + whitelist: + tags: + - CaneBlade + +- type: entity + id: CaneSheathFilled + parent: CaneSheath + suffix: Filled + components: + - type: ContainerFill + containers: + item: + - CaneBlade diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Melee/e_sword.yml b/Resources/Prototypes/Entities/Objects/Weapons/Melee/e_sword.yml index 526f8e7a9c..d4767171f1 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Melee/e_sword.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Melee/e_sword.yml @@ -65,6 +65,8 @@ shader: unshaded - type: DisarmMalus malus: 0 + - type: Reflect + enabled: false - type: IgnitionSource temperature: 700 - type: MeleeBlock # WD EDIT @@ -92,6 +94,7 @@ sprite: DeltaV/Objects/Weapons/Melee/e_sword.rsi # Delta-V - type: Reflect # WD EDIT reflectProb: .5 + minReflectProb: 0.25 spread: 75 reflects: - Energy #DeltaV: @@ -103,6 +106,19 @@ tags: - EnergySword +- type: entity + name: antique energy sword + parent: EnergySword + id: EnergySwordHoS + description: An elegant weapon fit for a prince, this otherwise plain silver hilt is engraved with, "My Love". + components: + - type: EnergySword + activatedColor: "#00CCFF" + colorOptions: + - "#00CCFF" + - type: StealTarget + stealGroup: EnergySwordHoS + - type: entity name: pen parent: EnergySwordBase @@ -228,7 +244,7 @@ name: double-bladed energy sword parent: EnergySwordBase id: EnergySwordDouble - description: Syndicate Command Interns thought that having one blade on the energy sword was not enough. This can be stored in pockets. + description: Syndicate Command's intern thought that having only one blade on energy swords was not cool enough. This can be stored in pockets. components: - type: Sprite sprite: Objects/Weapons/Melee/e_sword_double.rsi @@ -250,6 +266,7 @@ Heat: 15 - type: Reflect # WD EDIT reflectProb: 1 + minReflectProb: .65 spread: 75 reflects: - Energy @@ -260,4 +277,4 @@ - type: Construction # WD EDIT deconstructionTarget: null graph: EnergyDoubleSwordGraph - node: desword \ No newline at end of file + node: desword diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Melee/knife.yml b/Resources/Prototypes/Entities/Objects/Weapons/Melee/knife.yml index 2412079a1e..56420f971c 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Melee/knife.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Melee/knife.yml @@ -276,7 +276,6 @@ tags: - CombatKnife - Knife - - CannonRestrict - type: Sprite sprite: Objects/Weapons/Melee/throwing_knife.rsi state: icon diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Melee/stunprod.yml b/Resources/Prototypes/Entities/Objects/Weapons/Melee/stunprod.yml index 5a75c3202b..772379cc42 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Melee/stunprod.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Melee/stunprod.yml @@ -21,9 +21,9 @@ - type: ItemToggleMeleeWeapon activatedDamage: types: - Blunt: 0 + Shock: 5 - type: Stunbaton - energyPerUse: 70 + energyPerUse: 120 - type: MeleeWeapon wideAnimationRotation: -135 attackRate: 0.8 diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Melee/sword.yml b/Resources/Prototypes/Entities/Objects/Weapons/Melee/sword.yml index 856e1ddf85..d444744b66 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Melee/sword.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Melee/sword.yml @@ -23,7 +23,12 @@ angle: 80 - type: Reflect enabled: true - reflectProb: .5 + # Design intent: a robust captain or tot can sacrifice movement to make the most of this weapon, but they have to + # really restrict themselves to walking speed or less. + reflectProb: 0.5 + velocityBeforeNotMaxProb: 1.0 + velocityBeforeMinProb: 3.0 + minReflectProb: 0.1 spread: 90 - type: Item size: Normal @@ -95,6 +100,9 @@ - Back - Belt - type: Reflect + reflectProb: 0.3 + velocityBeforeNotMaxProb: 6.0 # don't punish ninjas for being ninjas + velocityBeforeMinProb: 10.0 - type: MeleeBlock # WD EDIT delay: 6.1 @@ -200,7 +208,7 @@ name: The Throngler parent: BaseItem id: Throngler - description: Why would you make this? + description: Why would someone make this? components: - type: Sharp - type: Sprite @@ -221,7 +229,10 @@ path: /Audio/Effects/explosion_small1.ogg - type: Reflect enabled: true - reflectProb: .25 + reflectProb: 0.5 # In robust hands, deflects as well as an e-sword + velocityBeforeNotMaxProb: 1.0 + velocityBeforeMinProb: 3.0 + minReflectProb: 0.1 spread: 90 - type: Item size: Ginormous diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Throwable/grenades.yml b/Resources/Prototypes/Entities/Objects/Weapons/Throwable/grenades.yml index f25023b454..acbaac2922 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Throwable/grenades.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Throwable/grenades.yml @@ -120,6 +120,30 @@ params: volume: 12 +- type: entity + name: Self Destruct + description: Go out on your own terms! + parent: GrenadeBase + id: SelfDestructSeq + noSpawn: true + components: + - type: ExplodeOnTrigger + - type: Explosive + explosionType: Minibomb + totalIntensity: 400 + intensitySlope: 30 + maxIntensity: 125 + canCreateVacuum: true + - type: OnUseTimerTrigger + delay: 4.5 + beepSound: + path: /Audio/Effects/Grenades/SelfDestruct/SDS_Charge2.ogg + params: + volume: 30 + initialBeepDelay: 0 + beepInterval: 16 + + - type: entity name: supermatter grenade description: Grenade that simulates delamination of the supermatter engine, pulling things in a heap and exploding after some time. diff --git a/Resources/Prototypes/Entities/Objects/Weapons/security.yml b/Resources/Prototypes/Entities/Objects/Weapons/security.yml index 5f958269d2..e93c74db46 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/security.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/security.yml @@ -80,6 +80,10 @@ explosionType: Default intensitySlope: 1.5 maxIntensity: 200 + - type: PhysicalComposition + materialComposition: + Steel: 100 + Plastic: 100 - type: GuideHelp guides: - Security @@ -105,6 +109,9 @@ heavyRateModifier: 1 - type: Item size: Normal + - type: Tag + tags: + - Truncheon - type: Clothing sprite: Objects/Weapons/Melee/truncheon.rsi quickEquip: false diff --git a/Resources/Prototypes/Entities/Objects/base_item.yml b/Resources/Prototypes/Entities/Objects/base_item.yml index 84b5477f50..9c9437f46a 100644 --- a/Resources/Prototypes/Entities/Objects/base_item.yml +++ b/Resources/Prototypes/Entities/Objects/base_item.yml @@ -50,8 +50,8 @@ - type: Storage - type: UserInterface interfaces: - - key: enum.StorageUiKey.Key - type: StorageBoundUserInterface + enum.StorageUiKey.Key: + type: StorageBoundUserInterface - type: ContainerContainer containers: storagebase: !type:Container diff --git a/Resources/Prototypes/Entities/Stations/base.yml b/Resources/Prototypes/Entities/Stations/base.yml index 0bf0f7f915..877a79dd96 100644 --- a/Resources/Prototypes/Entities/Stations/base.yml +++ b/Resources/Prototypes/Entities/Stations/base.yml @@ -61,7 +61,7 @@ - /Maps/Shuttles/trading_outpost.yml mining: paths: - - /Maps/Shuttles/mining.yml + - /Maps/Shuttles/pathfinder.yml # Spawn last ruins: hide: true @@ -89,7 +89,7 @@ - /Maps/Shuttles/cargo_core.yml mining: paths: - - /Maps/Shuttles/mining.yml + - /Maps/Shuttles/pathfinder.yml ruins: hide: true nameGrid: true @@ -153,4 +153,4 @@ id: BaseStationAllEventsEligible abstract: true components: - - type: StationEventEligible # For when someone makes this more granular in the future. \ No newline at end of file + - type: StationEventEligible # For when someone makes this more granular in the future. diff --git a/Resources/Prototypes/Entities/Structures/Dispensers/base_structuredispensers.yml b/Resources/Prototypes/Entities/Structures/Dispensers/base_structuredispensers.yml index 1b660c0cf0..213ad47d88 100644 --- a/Resources/Prototypes/Entities/Structures/Dispensers/base_structuredispensers.yml +++ b/Resources/Prototypes/Entities/Structures/Dispensers/base_structuredispensers.yml @@ -30,8 +30,8 @@ - type: ActivatableUIRequiresPower - type: UserInterface interfaces: - - key: enum.ReagentDispenserUiKey.Key - type: ReagentDispenserBoundUserInterface + enum.ReagentDispenserUiKey.Key: + type: ReagentDispenserBoundUserInterface - type: Anchorable - type: Pullable - type: Damageable diff --git a/Resources/Prototypes/Entities/Structures/Dispensers/chem.yml b/Resources/Prototypes/Entities/Structures/Dispensers/chem.yml index 681f0a390c..6e331a13a8 100644 --- a/Resources/Prototypes/Entities/Structures/Dispensers/chem.yml +++ b/Resources/Prototypes/Entities/Structures/Dispensers/chem.yml @@ -31,6 +31,9 @@ acts: ["Destruction"] - type: Machine board: ChemDispenserMachineCircuitboard + - type: UpgradePowerDraw + powerDrawMultiplier: 0.75 + scaling: Exponential - type: GuideHelp guides: - Chemicals diff --git a/Resources/Prototypes/Entities/Structures/Doors/Airlocks/access.yml b/Resources/Prototypes/Entities/Structures/Doors/Airlocks/access.yml index f12bd2b553..c55b9d9554 100644 --- a/Resources/Prototypes/Entities/Structures/Doors/Airlocks/access.yml +++ b/Resources/Prototypes/Entities/Structures/Doors/Airlocks/access.yml @@ -152,7 +152,7 @@ components: - type: ContainerFill containers: - board: [ DoorElectronicsFreezer ] + board: [ DoorElectronicsKitchenHydroponics ] - type: entity parent: AirlockFreezer @@ -243,6 +243,16 @@ containers: board: [ DoorElectronicsChemistry ] +- type: entity + parent: AirlockMedical + id: AirlockMedicalMorgueLocked + suffix: Morgue, Locked + components: + - type: ContainerFill + containers: + board: [ DoorElectronicsMorgue ] + + - type: entity parent: AirlockScience id: AirlockScienceLocked @@ -259,7 +269,7 @@ components: - type: ContainerFill containers: - board: [ DoorElectronicsScience ] + board: [ DoorElectronicsMedicalResearch ] - type: entity parent: AirlockCentralCommand @@ -633,7 +643,7 @@ components: - type: ContainerFill containers: - board: [ DoorElectronicsScience ] + board: [ DoorElectronicsMedicalResearch ] - type: entity parent: AirlockCentralCommandGlass @@ -982,7 +992,7 @@ components: - type: ContainerFill containers: - board: [ DoorElectronicsRnDMed ] + board: [ DoorElectronicsMedicalResearch ] - type: entity parent: AirlockMaint diff --git a/Resources/Prototypes/Entities/Structures/Doors/Airlocks/base_structureairlocks.yml b/Resources/Prototypes/Entities/Structures/Doors/Airlocks/base_structureairlocks.yml index 82cd0c732b..b0bba40797 100644 --- a/Resources/Prototypes/Entities/Structures/Doors/Airlocks/base_structureairlocks.yml +++ b/Resources/Prototypes/Entities/Structures/Doors/Airlocks/base_structureairlocks.yml @@ -64,6 +64,7 @@ containers: board: !type:Container - type: Weldable + fuel: 5 time: 3 - type: Airlock - type: NavMapDoor @@ -103,8 +104,8 @@ - type: SpawnOnOverload - type: UserInterface interfaces: - - key: enum.WiresUiKey.Key - type: WiresBoundUserInterface + enum.WiresUiKey.Key: + type: WiresBoundUserInterface - type: Airtight noAirWhenFullyAirBlocked: false - type: RadiationBlocker diff --git a/Resources/Prototypes/Entities/Structures/Doors/Airlocks/highsec.yml b/Resources/Prototypes/Entities/Structures/Doors/Airlocks/highsec.yml index 0a7c17ca29..70869704f7 100644 --- a/Resources/Prototypes/Entities/Structures/Doors/Airlocks/highsec.yml +++ b/Resources/Prototypes/Entities/Structures/Doors/Airlocks/highsec.yml @@ -55,6 +55,7 @@ denySound: path: /Audio/Machines/airlock_deny.ogg - type: Weldable + fuel: 10 time: 10 - type: Airlock - type: NavMapDoor @@ -78,8 +79,8 @@ alwaysRandomize: true - type: UserInterface interfaces: - - key: enum.WiresUiKey.Key - type: WiresBoundUserInterface + enum.WiresUiKey.Key: + type: WiresBoundUserInterface - type: Airtight - type: Occluder - type: Damageable diff --git a/Resources/Prototypes/Entities/Structures/Doors/Airlocks/shuttle.yml b/Resources/Prototypes/Entities/Structures/Doors/Airlocks/shuttle.yml index 62be17d3da..48a5670c5d 100644 --- a/Resources/Prototypes/Entities/Structures/Doors/Airlocks/shuttle.yml +++ b/Resources/Prototypes/Entities/Structures/Doors/Airlocks/shuttle.yml @@ -6,6 +6,11 @@ description: Necessary for connecting two space craft together. components: - type: Docking + - type: DockingSignalControl + - type: DeviceLinkSource + ports: + - DoorStatus + - DockStatus - type: Fixtures fixtures: fix1: @@ -75,7 +80,6 @@ suffix: Glass, Docking description: Necessary for connecting two space craft together. components: - - type: Docking - type: Sprite sprite: _White/Structures/Doors/Airlocks/Glass/shuttle.rsi # WD EDIT snapCardinals: false @@ -127,7 +131,6 @@ suffix: Glass, Docking description: Necessary for connecting two space craft together. components: - - type: Docking - type: Sprite sprite: _White/Structures/Doors/Airlocks/Glass/shuttle_syndicate.rsi # WD EDIT snapCardinals: false diff --git a/Resources/Prototypes/Entities/Structures/Doors/Firelocks/firelock.yml b/Resources/Prototypes/Entities/Structures/Doors/Firelocks/firelock.yml index 1ba867773b..fcdb432dce 100644 --- a/Resources/Prototypes/Entities/Structures/Doors/Firelocks/firelock.yml +++ b/Resources/Prototypes/Entities/Structures/Doors/Firelocks/firelock.yml @@ -82,6 +82,7 @@ openingAnimationTime: 0.6 closingAnimationTime: 0.6 - type: Weldable + fuel: 5 time: 3 - type: Firelock - type: Appearance @@ -89,7 +90,7 @@ - type: WiresPanel - type: UserInterface interfaces: - - key: enum.WiresUiKey.Key + enum.WiresUiKey.Key: type: WiresBoundUserInterface - type: Physics canCollide: false diff --git a/Resources/Prototypes/Entities/Structures/Doors/Shutter/shutters.yml b/Resources/Prototypes/Entities/Structures/Doors/Shutter/shutters.yml index 54cb012087..2043e78712 100644 --- a/Resources/Prototypes/Entities/Structures/Doors/Shutter/shutters.yml +++ b/Resources/Prototypes/Entities/Structures/Doors/Shutter/shutters.yml @@ -56,8 +56,8 @@ - type: Appearance - type: UserInterface interfaces: - - key: enum.WiresUiKey.Key - type: WiresBoundUserInterface + enum.WiresUiKey.Key: + type: WiresBoundUserInterface - type: Airtight - type: RadiationBlocker resistance: 2 diff --git a/Resources/Prototypes/Entities/Structures/Doors/Windoors/base_structurewindoors.yml b/Resources/Prototypes/Entities/Structures/Doors/Windoors/base_structurewindoors.yml index bdda060435..3a194473e3 100644 --- a/Resources/Prototypes/Entities/Structures/Doors/Windoors/base_structurewindoors.yml +++ b/Resources/Prototypes/Entities/Structures/Doors/Windoors/base_structurewindoors.yml @@ -93,10 +93,11 @@ max: 4 - !type:DoActsBehavior acts: [ "Destruction" ] - - type: AccessReader - type: ContainerFill containers: board: [ DoorElectronics ] + - type: AccessReader + containerAccessProvider: board - type: ContainerContainer containers: board: !type:Container @@ -129,8 +130,8 @@ layoutId: Airlock - type: UserInterface interfaces: - - key: enum.WiresUiKey.Key - type: WiresBoundUserInterface + enum.WiresUiKey.Key: + type: WiresBoundUserInterface - type: Appearance - type: WiresVisuals - type: Airtight diff --git a/Resources/Prototypes/Entities/Structures/Doors/Windoors/windoor.yml b/Resources/Prototypes/Entities/Structures/Doors/Windoors/windoor.yml index 2b4b2c5fe0..801bd091d0 100644 --- a/Resources/Prototypes/Entities/Structures/Doors/Windoors/windoor.yml +++ b/Resources/Prototypes/Entities/Structures/Doors/Windoors/windoor.yml @@ -48,88 +48,99 @@ id: WindoorBarLocked suffix: Bar, Locked components: - - type: AccessReader - access: [["Bar"]] + - type: ContainerFill + containers: + board: [ DoorElectronicsBar ] - type: entity parent: Windoor id: WindoorBarKitchenLocked suffix: Bar&Kitchen, Locked components: - - type: AccessReader - access: [["Bar"], ["Kitchen"]] + - type: ContainerFill + containers: + board: [ DoorElectronicsBarKitchen ] - type: entity parent: Windoor id: WindoorCargoLocked suffix: Logistics, Locked # DeltaV - Logistics Department replacing Cargo components: - - type: AccessReader - access: [["Cargo"]] + - type: ContainerFill + containers: + board: [ DoorElectronicsCargo ] - type: entity parent: Windoor id: WindoorChapelLocked suffix: Chapel, Locked components: - - type: AccessReader - access: [["Chapel"]] + - type: ContainerFill + containers: + board: [ DoorElectronicsChapel ] - type: entity parent: Windoor id: WindoorHydroponicsLocked suffix: Hydroponics, Locked components: - - type: AccessReader - access: [["Hydroponics"]] + - type: ContainerFill + containers: + board: [ DoorElectronicsHydroponics ] - type: entity parent: Windoor id: WindoorJanitorLocked suffix: Janitor, Locked components: - - type: AccessReader - access: [["Janitor"]] + - type: ContainerFill + containers: + board: [ DoorElectronicsJanitor ] - type: entity parent: WindoorPlasma id: PlasmaWindoorJanitorLocked suffix: Janitor, Locked, Plasma components: - - type: AccessReader - access: [["Janitor"]] + - type: ContainerFill + containers: + board: [ DoorElectronicsJanitor ] - type: entity parent: Windoor id: WindoorKitchenLocked suffix: Kitchen, Locked components: - - type: AccessReader - access: [["Kitchen"]] + - type: ContainerFill + containers: + board: [ DoorElectronicsKitchen ] - type: entity parent: Windoor id: WindoorKitchenHydroponicsLocked suffix: Kitchen&Hydroponics, Locked components: - - type: AccessReader - access: [["Kitchen"], ["Hydroponics"]] + - type: ContainerFill + containers: + board: [ DoorElectronicsKitchenHydroponics ] - type: entity parent: Windoor id: WindoorServiceLocked suffix: Service, Locked components: - - type: AccessReader - access: [["Service"]] + - type: ContainerFill + containers: + board: [ DoorElectronicsService ] - type: entity parent: Windoor id: WindoorTheatreLocked suffix: Theatre, Locked components: - - type: AccessReader - access: [["Theatre"]] + - type: ContainerFill + containers: + board: [ DoorElectronicsTheatre ] # Secure @@ -138,222 +149,285 @@ id: WindoorSecureArmoryLocked suffix: Armory, Locked components: - - type: AccessReader - access: [["Armory"]] + - type: ContainerFill + containers: + board: [ DoorElectronicsArmory ] + +- type: entity + parent: WindoorSecurePlasma + id: PlasmaWindoorSecureArmoryLocked + suffix: Armory, Locked, Plasma + components: + - type: ContainerFill + containers: + board: [ DoorElectronicsArmory ] - type: entity parent: WindoorSecure id: WindoorSecureAtmosphericsLocked suffix: Atmospherics, Locked components: - - type: AccessReader - access: [["Atmospherics"]] + - type: ContainerFill + containers: + board: [ DoorElectronicsAtmospherics ] + +- type: entity + parent: WindoorSecurePlasma + id: PlasmaWindoorSecureAtmosphericsLocked + suffix: Atmospherics, Locked, Plasma + components: + - type: ContainerFill + containers: + board: [ DoorElectronicsAtmospherics ] - type: entity parent: WindoorSecure id: WindoorSecureBarLocked suffix: Bar, Locked components: - - type: AccessReader - access: [["Bar"]] + - type: ContainerFill + containers: + board: [ DoorElectronicsBar ] -#Delta V: Removed Brig Access -#- type: entity -# parent: WindoorSecureSecurityLocked -# id: WindoorSecureBrigLocked -# suffix: Brig, Locked -# components: -# - type: AccessReader -# access: [["Brig"]] +- type: entity + parent: WindoorSecureSecurityLocked + id: WindoorSecureBrigLocked + suffix: Brig, Locked + components: + - type: ContainerFill + containers: + board: [ DoorElectronicsBrig ] - type: entity parent: WindoorSecure id: WindoorSecureCargoLocked suffix: Logistics, Locked # DeltaV - Logistics Department replacing Cargo components: - - type: AccessReader - access: [["Cargo"]] + - type: ContainerFill + containers: + board: [ DoorElectronicsCargo ] - type: entity parent: WindoorSecure id: WindoorSecureChapelLocked suffix: Chapel, Locked components: - - type: AccessReader - access: [["Chapel"]] + - type: ContainerFill + containers: + board: [ DoorElectronicsChapel ] - type: entity parent: WindoorSecure id: WindoorSecureChemistryLocked suffix: Chemistry, Locked components: - - type: AccessReader - access: [["Chemistry"]] + - type: ContainerFill + containers: + board: [ DoorElectronicsChemistry ] - type: entity parent: WindoorSecurePlasma id: PlasmaWindoorSecureChemistryLocked suffix: Chemistry, Locked, Plasma components: - - type: AccessReader - access: [["Chemistry"]] + - type: ContainerFill + containers: + board: [ DoorElectronicsChemistry ] - type: entity parent: WindoorSecure id: WindoorSecureCentralCommandLocked suffix: Central Command, Locked components: - - type: AccessReader - access: [["CentralCommand"]] + - type: ContainerFill + containers: + board: [ DoorElectronicsCentralCommand ] - type: entity parent: WindoorSecurePlasma id: PlasmaWindoorSecureCentralCommandLocked suffix: Central Command, Locked, Plasma components: - - type: AccessReader - access: [["CentralCommand"]] + - type: ContainerFill + containers: + board: [ DoorElectronicsCentralCommand ] - type: entity parent: WindoorSecureUranium id: UraniumWindoorSecureCentralCommandLocked suffix: Central Command, Locked, Uranium components: - - type: AccessReader - access: [["CentralCommand"]] + - type: ContainerFill + containers: + board: [ DoorElectronicsCentralCommand ] - type: entity parent: WindoorSecure id: WindoorSecureCommandLocked suffix: Command, Locked components: - - type: AccessReader - access: [["Command"]] + - type: ContainerFill + containers: + board: [ DoorElectronicsCommand ] + +- type: entity + parent: WindoorSecurePlasma + id: PlasmaWindoorSecureCommandLocked + suffix: Command, Locked, Plasma + components: + - type: ContainerFill + containers: + board: [ DoorElectronicsCommand ] - type: entity parent: WindoorSecure id: WindoorSecureDetectiveLocked suffix: Detective, Locked components: - - type: AccessReader - access: [["Detective"]] + - type: ContainerFill + containers: + board: [ DoorElectronicsDetective ] - type: entity parent: WindoorSecure id: WindoorSecureEngineeringLocked suffix: Engineering, Locked components: - - type: AccessReader - access: [["Engineering"]] + - type: ContainerFill + containers: + board: [ DoorElectronicsEngineering ] - type: entity parent: WindoorSecurePlasma id: PlasmaWindoorSecureEngineeringLocked suffix: Engineering, Locked, Plasma components: - - type: AccessReader - access: [["Engineering"]] + - type: ContainerFill + containers: + board: [ DoorElectronicsEngineering ] - type: entity parent: WindoorSecureUranium id: UraniumWindoorSecureEngineeringLocked suffix: Engineering, Locked, Uranium components: - - type: AccessReader - access: [["Engineering"]] + - type: ContainerFill + containers: + board: [ DoorElectronicsEngineering ] - type: entity parent: WindoorSecure id: WindoorSecureExternalLocked suffix: External, Locked components: - - type: AccessReader - access: [["External"]] + - type: ContainerFill + containers: + board: [ DoorElectronicsExternal ] - type: entity parent: WindoorSecure id: WindoorSecureJanitorLocked suffix: Janitor, Locked components: - - type: AccessReader - access: [["Janitor"]] + - type: ContainerFill + containers: + board: [ DoorElectronicsJanitor ] - type: entity parent: WindoorSecurePlasma id: PlasmaWindoorSecureJanitorLocked suffix: Janitor, Locked, Plasma components: - - type: AccessReader - access: [["Janitor"]] + - type: ContainerFill + containers: + board: [ DoorElectronicsJanitor ] - type: entity parent: WindoorSecure id: WindoorSecureKitchenLocked suffix: Kitchen, Locked components: - - type: AccessReader - access: [["Kitchen"]] + - type: ContainerFill + containers: + board: [ DoorElectronicsKitchen ] - type: entity parent: WindoorSecureSecurityLocked id: WindoorSecureSecurityLawyerLocked suffix: Security/Lawyer, Locked components: - - type: AccessReader - access: [["Security"], ["Lawyer"]] + - type: ContainerFill + containers: + board: [ DoorElectronicsSecurityLawyer ] - type: entity parent: WindoorSecure id: WindoorSecureMedicalLocked suffix: Medical, Locked components: - - type: AccessReader - access: [["Medical"]] + - type: ContainerFill + containers: + board: [ DoorElectronicsMedical ] - type: entity parent: WindoorSecure id: WindoorSecureSalvageLocked suffix: Salvage, Locked components: - - type: AccessReader - access: [["Salvage"]] + - type: ContainerFill + containers: + board: [ DoorElectronicsSalvage ] - type: entity parent: WindoorSecure id: WindoorSecureSecurityLocked suffix: Security, Locked components: - - type: AccessReader - access: [["Security"]] + - type: ContainerFill + containers: + board: [ DoorElectronicsSecurity ] + +- type: entity + parent: WindoorSecurePlasma + id: PlasmaWindoorSecureSecurityLocked + suffix: Security, Locked, Plasma + components: + - type: ContainerFill + containers: + board: [ DoorElectronicsSecurity ] - type: entity parent: WindoorSecure id: WindoorSecureScienceLocked suffix: Epistemics, Locked # DeltaV - Epistemics Department replacing Science components: - - type: AccessReader - access: [["Research"]] + - type: ContainerFill + containers: + board: [ DoorElectronicsResearch ] - type: entity parent: WindoorSecurePlasma id: PlasmaWindoorSecureScienceLocked suffix: Science, Locked, Plasma components: - - type: AccessReader - access: [["Research"]] + - type: ContainerFill + containers: + board: [ DoorElectronicsResearch ] - type: entity parent: WindoorSecure id: WindoorSecureServiceLocked suffix: Service, Locked components: - - type: AccessReader - access: [["Service"]] + - type: ContainerFill + containers: + board: [ DoorElectronicsService ] - type: entity parent: WindoorSecure id: WindoorSecureHeadOfPersonnelLocked suffix: HeadOfPersonnel, Locked components: - - type: AccessReader - access: [["HeadOfPersonnel"]] + - type: ContainerFill + containers: + board: [ DoorElectronicsHeadOfPersonnel ] diff --git a/Resources/Prototypes/Entities/Structures/Furniture/Tables/base_structuretables.yml b/Resources/Prototypes/Entities/Structures/Furniture/Tables/base_structuretables.yml index c1b0cf0423..dbef5a7504 100644 --- a/Resources/Prototypes/Entities/Structures/Furniture/Tables/base_structuretables.yml +++ b/Resources/Prototypes/Entities/Structures/Furniture/Tables/base_structuretables.yml @@ -20,6 +20,7 @@ - TableMask layer: - TableLayer + - BulletImpassable - type: SpriteFade - type: Sprite - type: Icon @@ -38,7 +39,8 @@ - type: FootstepModifier footstepSoundCollection: collection: FootstepHull - + - type: RequireProjectileTarget + - type: entity id: CounterBase parent: TableBase diff --git a/Resources/Prototypes/Entities/Structures/Furniture/Tables/tables.yml b/Resources/Prototypes/Entities/Structures/Furniture/Tables/tables.yml index 57ee50b048..b7d5226e36 100644 --- a/Resources/Prototypes/Entities/Structures/Furniture/Tables/tables.yml +++ b/Resources/Prototypes/Entities/Structures/Furniture/Tables/tables.yml @@ -137,7 +137,7 @@ acts: [ "Destruction" ] - trigger: !type:DamageTrigger - damage: 25 + damage: 15 behaviors: - !type:PlaySoundBehavior sound: @@ -178,7 +178,7 @@ acts: [ "Destruction" ] - trigger: !type:DamageTrigger - damage: 25 + damage: 15 behaviors: - !type:PlaySoundBehavior sound: @@ -216,7 +216,7 @@ acts: [ "Destruction" ] - trigger: !type:DamageTrigger - damage: 75 + damage: 30 behaviors: - !type:PlaySoundBehavior sound: @@ -263,7 +263,7 @@ thresholds: - trigger: !type:DamageTrigger - damage: 25 + damage: 15 behaviors: - !type:DoActsBehavior acts: [ "Destruction" ] @@ -379,7 +379,7 @@ collection: GlassBreak - trigger: !type:DamageTrigger - damage: 50 + damage: 30 behaviors: - !type:PlaySoundBehavior sound: @@ -426,7 +426,7 @@ acts: [ "Destruction" ] - trigger: !type:DamageTrigger - damage: 25 + damage: 40 behaviors: - !type:PlaySoundBehavior sound: @@ -546,7 +546,7 @@ thresholds: - trigger: !type:DamageTrigger - damage: 50 + damage: 40 behaviors: - !type:PlaySoundBehavior sound: @@ -573,7 +573,7 @@ thresholds: - trigger: !type:DamageTrigger - damage: 50 + damage: 20 behaviors: - !type:DoActsBehavior acts: [ "Destruction" ] diff --git a/Resources/Prototypes/Entities/Structures/Furniture/bookshelf.yml b/Resources/Prototypes/Entities/Structures/Furniture/bookshelf.yml index 9009d65f04..46f1d6f142 100644 --- a/Resources/Prototypes/Entities/Structures/Furniture/bookshelf.yml +++ b/Resources/Prototypes/Entities/Structures/Furniture/bookshelf.yml @@ -59,8 +59,8 @@ - Spellbook - type: UserInterface interfaces: - - key: enum.StorageUiKey.Key - type: StorageBoundUserInterface + enum.StorageUiKey.Key: + type: StorageBoundUserInterface - type: InteractionOutline - type: ContainerContainer containers: diff --git a/Resources/Prototypes/Entities/Structures/Furniture/chairs.yml b/Resources/Prototypes/Entities/Structures/Furniture/chairs.yml index 8f11a2eb80..2769326e07 100644 --- a/Resources/Prototypes/Entities/Structures/Furniture/chairs.yml +++ b/Resources/Prototypes/Entities/Structures/Furniture/chairs.yml @@ -33,7 +33,7 @@ thresholds: - trigger: !type:DamageTrigger - damage: 100 + damage: 25 behaviors: - !type:DoActsBehavior acts: [ "Destruction" ] @@ -48,6 +48,7 @@ collection: MetalBreak - type: StaticPrice price: 10 + - type: RequireProjectileTarget #Starts unanchored, cannot be rotated while anchored - type: entity diff --git a/Resources/Prototypes/Entities/Structures/Furniture/dresser.yml b/Resources/Prototypes/Entities/Structures/Furniture/dresser.yml index a122359c97..e1a73a889e 100644 --- a/Resources/Prototypes/Entities/Structures/Furniture/dresser.yml +++ b/Resources/Prototypes/Entities/Structures/Furniture/dresser.yml @@ -33,8 +33,8 @@ storagebase: !type:Container - type: UserInterface interfaces: - - key: enum.StorageUiKey.Key - type: StorageBoundUserInterface + enum.StorageUiKey.Key: + type: StorageBoundUserInterface - type: InteractionOutline - type: Clickable - type: Tag diff --git a/Resources/Prototypes/Entities/Structures/Furniture/shower.yml b/Resources/Prototypes/Entities/Structures/Furniture/shower.yml index 694202efdc..a8ba4f25a9 100644 --- a/Resources/Prototypes/Entities/Structures/Furniture/shower.yml +++ b/Resources/Prototypes/Entities/Structures/Furniture/shower.yml @@ -24,11 +24,11 @@ canCollide: false - type: InteractionOutline - type: Damageable + damageContainer: Inorganic + damageModifierSet: Metallic - type: Construction graph: Shower node: shower - damageContainer: Inorganic - damageModifierSet: Metallic - type: Destructible thresholds: - trigger: diff --git a/Resources/Prototypes/Entities/Structures/Furniture/toilet.yml b/Resources/Prototypes/Entities/Structures/Furniture/toilet.yml index f02b126248..a3124c09f6 100644 --- a/Resources/Prototypes/Entities/Structures/Furniture/toilet.yml +++ b/Resources/Prototypes/Entities/Structures/Furniture/toilet.yml @@ -51,6 +51,10 @@ disposals: !type:Container - type: Physics bodyType: Static + - type: Fixtures + fixtures: + fix1: + hard: false - type: Construction graph: Toilet node: toilet @@ -66,8 +70,8 @@ price: 25 - type: UserInterface interfaces: - - key: enum.DisposalUnitUiKey.Key - type: DisposalUnitBoundUserInterface + enum.DisposalUnitUiKey.Key: + type: DisposalUnitBoundUserInterface - type: RatKingRummageable - type: SolutionContainerManager solutions: @@ -104,7 +108,10 @@ components: - type: SolutionContainerManager solutions: - toilet: + drainBuffer: + maxVol: 100 + tank: + maxVol: 500 reagents: - ReagentId: Water Quantity: 180 diff --git a/Resources/Prototypes/Entities/Structures/Lighting/base_lighting.yml b/Resources/Prototypes/Entities/Structures/Lighting/base_lighting.yml index 22bbdb7b9f..6b301a50ee 100644 --- a/Resources/Prototypes/Entities/Structures/Lighting/base_lighting.yml +++ b/Resources/Prototypes/Entities/Structures/Lighting/base_lighting.yml @@ -43,7 +43,7 @@ - type: RCDDeconstructable cost: 4 delay: 2 - fx: EffectRCDDeconstruct2 + fx: EffectRCDDeconstruct2 - type: Destructible thresholds: - trigger: @@ -74,7 +74,7 @@ mode: SnapgridCenter snap: - Wallmount - + - type: entity name: light description: "A light fixture. Draws power and produces light when equipped with a light tube." @@ -91,7 +91,7 @@ bulb: Tube damage: types: - Heat: 5 + Heat: 2 - type: ContainerContainer containers: light_bulb: !type:ContainerSlot @@ -132,7 +132,7 @@ hasLampOnSpawn: LightTube damage: types: - Heat: 5 + Heat: 2 - type: AmbientOnPowered - type: AmbientSound volume: -15 @@ -151,7 +151,7 @@ hasLampOnSpawn: LedLightTube damage: types: - Heat: 2.5 + Heat: 1 #LEDs don't get as hot - type: PointLight radius: 15 energy: 1 @@ -173,20 +173,19 @@ - type: entity id: PoweredlightExterior description: "A light fixture. Draws power and produces light when equipped with a light tube." - suffix: Blue - noSpawn: true # DeltaV - Don't map these + suffix: Exterior parent: Poweredlight components: - type: PoweredLight hasLampOnSpawn: ExteriorLightTube damage: types: - Heat: 5 + Heat: 4 #brighter light gets hotter - type: entity parent: AlwaysPoweredWallLight id: AlwaysPoweredLightExterior - suffix: Always Powered, Blue + suffix: Always Powered, Exterior components: - type: PointLight radius: 12 @@ -205,7 +204,7 @@ hasLampOnSpawn: SodiumLightTube damage: types: - Heat: 5 + Heat: 2 - type: PointLight radius: 10 energy: 2.5 @@ -292,7 +291,7 @@ bulb: Bulb damage: types: - Heat: 5 + Heat: 2 - type: ApcPowerReceiver - type: ExtensionCableReceiver - type: DeviceNetwork @@ -331,7 +330,7 @@ hasLampOnSpawn: LedLightBulb damage: types: - Heat: 2.5 + Heat: 1 - type: entity id: PoweredSmallLight @@ -346,7 +345,7 @@ hasLampOnSpawn: LightBulb damage: types: - Heat: 5 + Heat: 2 #Emergency Lights - type: entity @@ -361,7 +360,7 @@ radius: 5 energy: 0.6 offset: "0, 0.4" - color: "#FF4020" + color: "#7CFC00" mask: /Textures/Effects/LightMasks/double_cone.png - type: ApcPowerReceiver - type: ExtensionCableReceiver @@ -378,10 +377,10 @@ map: [ "enum.EmergencyLightVisualLayers.Base" ] - state: emergency_light_off map: [ "enum.EmergencyLightVisualLayers.LightOff" ] - color: "#FF4020" + color: "#7CFC00" - state: emergency_light_on map: [ "enum.EmergencyLightVisualLayers.LightOn" ] - color: "#FF4020" + color: "#7CFC00" shader: "unshaded" visible: false - type: Appearance @@ -401,7 +400,7 @@ hasLampOnSpawn: LightTubeCrystalCyan damage: types: - Heat: 5 + Heat: 2 - type: PointLight radius: 8 energy: 3 @@ -428,7 +427,7 @@ hasLampOnSpawn: LightTubeCrystalBlue damage: types: - Heat: 5 + Heat: 2 - type: PointLight radius: 8 energy: 3 @@ -455,7 +454,7 @@ hasLampOnSpawn: LightTubeCrystalPink damage: types: - Heat: 5 + Heat: 2 - type: PointLight radius: 8 energy: 3 @@ -482,7 +481,7 @@ hasLampOnSpawn: LightTubeCrystalOrange damage: types: - Heat: 5 + Heat: 2 - type: PointLight radius: 8 energy: 3 @@ -509,7 +508,7 @@ hasLampOnSpawn: LightTubeCrystalRed damage: types: - Heat: 5 + Heat: 2 - type: PointLight radius: 8 energy: 3 @@ -536,7 +535,7 @@ hasLampOnSpawn: LightTubeCrystalGreen damage: types: - Heat: 5 + Heat: 2 - type: PointLight radius: 8 energy: 3 diff --git a/Resources/Prototypes/Entities/Structures/Lighting/ground_lighting.yml b/Resources/Prototypes/Entities/Structures/Lighting/ground_lighting.yml index 34a6f08294..2afde4ef3f 100644 --- a/Resources/Prototypes/Entities/Structures/Lighting/ground_lighting.yml +++ b/Resources/Prototypes/Entities/Structures/Lighting/ground_lighting.yml @@ -79,7 +79,7 @@ bulb: Tube damage: types: - Heat: 20 + Heat: 2 - type: ContainerContainer containers: light_bulb: !type:ContainerSlot @@ -124,7 +124,7 @@ hasLampOnSpawn: LightTube damage: types: - Heat: 20 + Heat: 2 - type: StaticPrice price: 25 - type: AmbientOnPowered @@ -153,7 +153,7 @@ hasLampOnSpawn: LedLightTube damage: types: - Heat: 20 + Heat: 1 - type: StaticPrice price: 25 - type: AmbientOnPowered diff --git a/Resources/Prototypes/Entities/Structures/Lighting/strobe_lighting.yml b/Resources/Prototypes/Entities/Structures/Lighting/strobe_lighting.yml index 8eceb76b63..72f5439646 100644 --- a/Resources/Prototypes/Entities/Structures/Lighting/strobe_lighting.yml +++ b/Resources/Prototypes/Entities/Structures/Lighting/strobe_lighting.yml @@ -89,7 +89,7 @@ on: false damage: types: - Heat: 5 + Heat: 2 - type: ApcPowerReceiver - type: ExtensionCableReceiver - type: DeviceNetwork @@ -145,4 +145,4 @@ volume: 0 range: 10 sound: - path: "/Audio/Effects/Lightning/strobeepsilon.ogg" \ No newline at end of file + path: "/Audio/Effects/Lightning/strobeepsilon.ogg" diff --git a/Resources/Prototypes/Entities/Structures/Machines/Computers/arcades.yml b/Resources/Prototypes/Entities/Structures/Machines/Computers/arcades.yml index 59690e56eb..98c0f229ed 100644 --- a/Resources/Prototypes/Entities/Structures/Machines/Computers/arcades.yml +++ b/Resources/Prototypes/Entities/Structures/Machines/Computers/arcades.yml @@ -90,9 +90,9 @@ - type: ActivatableUIRequiresPower - type: UserInterface interfaces: - - key: enum.SpaceVillainArcadeUiKey.Key + enum.SpaceVillainArcadeUiKey.Key: type: SpaceVillainArcadeBoundUserInterface - - key: enum.WiresUiKey.Key + enum.WiresUiKey.Key: type: WiresBoundUserInterface - type: Computer board: SpaceVillainArcadeComputerCircuitboard @@ -134,9 +134,9 @@ - type: ActivatableUIRequiresPower - type: UserInterface interfaces: - - key: enum.BlockGameUiKey.Key + enum.BlockGameUiKey.Key: type: BlockGameBoundUserInterface - - key: enum.WiresUiKey.Key + enum.WiresUiKey.Key: type: WiresBoundUserInterface - type: Computer board: BlockGameArcadeComputerCircuitboard diff --git a/Resources/Prototypes/Entities/Structures/Machines/Computers/base_structurecomputers.yml b/Resources/Prototypes/Entities/Structures/Machines/Computers/base_structurecomputers.yml index b7ea7c6f6c..9468ecd452 100644 --- a/Resources/Prototypes/Entities/Structures/Machines/Computers/base_structurecomputers.yml +++ b/Resources/Prototypes/Entities/Structures/Machines/Computers/base_structurecomputers.yml @@ -62,11 +62,11 @@ priority: 1 - type: RequireProjectileTarget - type: LanguageSpeaker - currentLanguage: GalacticCommon + currentLanguage: TauCetiBasic - type: LanguageKnowledge speaks: - - GalacticCommon + - TauCetiBasic - RobotTalk understands: - - GalacticCommon + - TauCetiBasic - RobotTalk diff --git a/Resources/Prototypes/Entities/Structures/Machines/Computers/computers.yml b/Resources/Prototypes/Entities/Structures/Machines/Computers/computers.yml index 4fd2129f7a..0021b05321 100644 --- a/Resources/Prototypes/Entities/Structures/Machines/Computers/computers.yml +++ b/Resources/Prototypes/Entities/Structures/Machines/Computers/computers.yml @@ -1,8 +1,8 @@ - type: entity parent: BaseComputer id: ComputerAlert - name: alerts computer - description: Used to access the station's automated alert system. + name: atmospheric alerts computer + description: Used to access the station's automated atmospheric alert system. components: - type: Computer board: AlertsComputerCircuitboard @@ -13,9 +13,33 @@ - map: ["computerLayerKeyboard"] state: generic_keyboard - map: ["computerLayerScreen"] - state: alert-2 + state: alert-0 - map: ["computerLayerKeys"] state: atmos_key + - type: GenericVisualizer + visuals: + enum.ComputerVisuals.Powered: + computerLayerScreen: + True: { visible: true, shader: unshaded } + False: { visible: false } + computerLayerKeys: + True: { visible: true, shader: unshaded } + False: { visible: true, shader: shaded } + enum.AtmosAlertsComputerVisuals.ComputerLayerScreen: + computerLayerScreen: + 0: { state: alert-0 } + 1: { state: alert-0 } + 2: { state: alert-1 } + 3: { state: alert-2 } + 4: { state: alert-2 } + - type: AtmosAlertsComputer + - type: ActivatableUI + singleUser: true + key: enum.AtmosAlertsComputerUiKey.Key + - type: UserInterface + interfaces: + enum.AtmosAlertsComputerUiKey.Key: + type: AtmosAlertsComputerBoundUserInterface - type: entity parent: BaseComputer @@ -31,8 +55,8 @@ key: enum.EmergencyConsoleUiKey.Key - type: UserInterface interfaces: - - key: enum.EmergencyConsoleUiKey.Key - type: EmergencyConsoleBoundUserInterface + enum.EmergencyConsoleUiKey.Key: + type: EmergencyConsoleBoundUserInterface - type: PointLight radius: 1.5 energy: 1.6 @@ -52,8 +76,8 @@ key: enum.ShuttleConsoleUiKey.Key - type: UserInterface interfaces: - - key: enum.ShuttleConsoleUiKey.Key - type: ShuttleConsoleBoundUserInterface + enum.ShuttleConsoleUiKey.Key: + type: ShuttleConsoleBoundUserInterface - type: RadarConsole - type: WorldLoader radius: 256 @@ -211,8 +235,8 @@ key: enum.IFFConsoleUiKey.Key - type: UserInterface interfaces: - - key: enum.IFFConsoleUiKey.Key - type: IFFConsoleBoundUserInterface + enum.IFFConsoleUiKey.Key: + type: IFFConsoleBoundUserInterface - type: Computer board: ComputerIFFCircuitboard @@ -231,8 +255,8 @@ key: enum.IFFConsoleUiKey.Key - type: UserInterface interfaces: - - key: enum.IFFConsoleUiKey.Key - type: IFFConsoleBoundUserInterface + enum.IFFConsoleUiKey.Key: + type: IFFConsoleBoundUserInterface - type: Computer board: ComputerIFFSyndicateCircuitboard @@ -271,8 +295,8 @@ key: enum.PowerMonitoringConsoleUiKey.Key - type: UserInterface interfaces: - - key: enum.PowerMonitoringConsoleUiKey.Key - type: PowerMonitoringConsoleBoundUserInterface + enum.PowerMonitoringConsoleUiKey.Key: + type: PowerMonitoringConsoleBoundUserInterface - type: entity parent: BaseComputer @@ -306,8 +330,8 @@ - type: CriminalRecordsConsole - type: UserInterface interfaces: - - key: enum.CriminalRecordsConsoleKey.Key - type: CriminalRecordsConsoleBoundUserInterface + enum.CriminalRecordsConsoleKey.Key: + type: CriminalRecordsConsoleBoundUserInterface - type: ActivatableUI key: enum.CriminalRecordsConsoleKey.Key - type: Sprite @@ -341,8 +365,8 @@ - type: GeneralStationRecordConsole - type: UserInterface interfaces: - - key: enum.GeneralStationRecordConsoleKey.Key - type: GeneralStationRecordConsoleBoundUserInterface + enum.GeneralStationRecordConsoleKey.Key: + type: GeneralStationRecordConsoleBoundUserInterface - type: ActivatableUI key: enum.GeneralStationRecordConsoleKey.Key - type: PointLight @@ -381,7 +405,7 @@ key: enum.CrewMonitoringUIKey.Key - type: UserInterface interfaces: - - key: enum.CrewMonitoringUIKey.Key + enum.CrewMonitoringUIKey.Key: type: CrewMonitoringBoundUserInterface - type: CrewMonitoringConsole - type: DeviceNetwork @@ -416,10 +440,10 @@ key: enum.ResearchConsoleUiKey.Key - type: UserInterface interfaces: - - key: enum.ResearchConsoleUiKey.Key - type: ResearchConsoleBoundUserInterface - - key: enum.ResearchClientUiKey.Key - type: ResearchClientBoundUserInterface + enum.ResearchConsoleUiKey.Key: + type: ResearchConsoleBoundUserInterface + enum.ResearchClientUiKey.Key: + type: ResearchClientBoundUserInterface - type: ApcPowerReceiver powerLoad: 1000 - type: Computer @@ -464,10 +488,10 @@ key: enum.ArtifactAnalzyerUiKey.Key - type: UserInterface interfaces: - - key: enum.ArtifactAnalzyerUiKey.Key - type: AnalysisConsoleBoundUserInterface - - key: enum.ResearchClientUiKey.Key - type: ResearchClientBoundUserInterface + enum.ArtifactAnalzyerUiKey.Key: + type: AnalysisConsoleBoundUserInterface + enum.ResearchClientUiKey.Key: + type: ResearchClientBoundUserInterface - type: ApcPowerReceiver powerLoad: 1000 - type: Computer @@ -509,8 +533,8 @@ key: enum.IdCardConsoleUiKey.Key - type: UserInterface interfaces: - - key: enum.IdCardConsoleUiKey.Key - type: IdCardConsoleBoundUserInterface + enum.IdCardConsoleUiKey.Key: + type: IdCardConsoleBoundUserInterface - type: CrewManifestViewer ownerKey: enum.IdCardConsoleUiKey.Key - type: Sprite @@ -580,8 +604,8 @@ key: enum.CommunicationsConsoleUiKey.Key - type: UserInterface interfaces: - - key: enum.CommunicationsConsoleUiKey.Key - type: CommunicationsConsoleBoundUserInterface + enum.CommunicationsConsoleUiKey.Key: + type: CommunicationsConsoleBoundUserInterface - type: Computer board: CommsComputerCircuitboard - type: PointLight @@ -644,8 +668,8 @@ key: enum.SolarControlConsoleUiKey.Key - type: UserInterface interfaces: - - key: enum.SolarControlConsoleUiKey.Key - type: SolarControlConsoleBoundUserInterface + enum.SolarControlConsoleUiKey.Key: + type: SolarControlConsoleBoundUserInterface - type: Computer board: SolarControlComputerCircuitboard - type: PointLight @@ -674,8 +698,8 @@ key: enum.RadarConsoleUiKey.Key - type: UserInterface interfaces: - - key: enum.RadarConsoleUiKey.Key - type: RadarConsoleBoundUserInterface + enum.RadarConsoleUiKey.Key: + type: RadarConsoleBoundUserInterface - type: Computer board: RadarConsoleCircuitboard - type: PointLight @@ -704,8 +728,8 @@ key: enum.CargoConsoleUiKey.Shuttle - type: UserInterface interfaces: - - key: enum.CargoConsoleUiKey.Shuttle - type: CargoShuttleConsoleBoundUserInterface + enum.CargoConsoleUiKey.Shuttle: + type: CargoShuttleConsoleBoundUserInterface - type: Computer board: CargoShuttleComputerCircuitboard - type: PointLight @@ -735,12 +759,15 @@ - map: ["computerLayerKeys"] state: tech_key - type: CargoOrderConsole + - type: ActiveRadio + channels: + - Supply - type: ActivatableUI key: enum.CargoConsoleUiKey.Orders - type: UserInterface interfaces: - - key: enum.CargoConsoleUiKey.Orders - type: CargoOrderConsoleBoundUserInterface + enum.CargoConsoleUiKey.Orders: + type: CargoOrderConsoleBoundUserInterface - type: Computer board: CargoRequestComputerCircuitboard - type: PointLight @@ -783,8 +810,8 @@ key: enum.CargoConsoleUiKey.Bounty - type: UserInterface interfaces: - - key: enum.CargoConsoleUiKey.Bounty - type: CargoBountyConsoleBoundUserInterface + enum.CargoConsoleUiKey.Bounty: + type: CargoBountyConsoleBoundUserInterface - type: Computer board: CargoBountyComputerCircuitboard - type: PointLight @@ -834,8 +861,8 @@ key: enum.CloningConsoleUiKey.Key - type: UserInterface interfaces: - - key: enum.CloningConsoleUiKey.Key - type: CloningConsoleBoundUserInterface + enum.CloningConsoleUiKey.Key: + type: CloningConsoleBoundUserInterface - type: Speech speechVerb: Robotic speechSounds: Pai @@ -878,7 +905,7 @@ - type: ActivatableUIRequiresPower - type: UserInterface interfaces: - - key: enum.SalvageConsoleUiKey.Expedition + enum.SalvageConsoleUiKey.Expedition: type: SalvageExpeditionConsoleBoundUserInterface - type: Computer board: SalvageExpeditionsComputerCircuitboard @@ -923,8 +950,8 @@ anchored: true - type: UserInterface interfaces: - - key: enum.SurveillanceCameraMonitorUiKey.Key - type: SurveillanceCameraMonitorBoundUserInterface + enum.SurveillanceCameraMonitorUiKey.Key: + type: SurveillanceCameraMonitorBoundUserInterface - type: entity parent: BaseComputer @@ -960,8 +987,8 @@ - type: ActivatableUIRequiresVision - type: UserInterface interfaces: - - key: enum.SurveillanceCameraMonitorUiKey.Key - type: SurveillanceCameraMonitorBoundUserInterface + enum.SurveillanceCameraMonitorUiKey.Key: + type: SurveillanceCameraMonitorBoundUserInterface - type: entity id: ComputerPalletConsole @@ -987,8 +1014,8 @@ key: enum.CargoPalletConsoleUiKey.Sale - type: UserInterface interfaces: - - key: enum.CargoPalletConsoleUiKey.Sale - type: CargoPalletConsoleBoundUserInterface + enum.CargoPalletConsoleUiKey.Sale: + type: CargoPalletConsoleBoundUserInterface - type: Computer board: CargoRequestComputerCircuitboard - type: PointLight @@ -1028,8 +1055,8 @@ anchored: true - type: UserInterface interfaces: - - key: enum.NewsWriterUiKey.Key - type: NewsWriterBoundUserInterface + enum.NewsWriterUiKey.Key: + type: NewsWriterBoundUserInterface - type: entity parent: BaseComputer @@ -1061,7 +1088,7 @@ key: enum.SensorMonitoringConsoleUiKey.Key - type: UserInterface interfaces: - - key: enum.SensorMonitoringConsoleUiKey.Key + enum.SensorMonitoringConsoleUiKey.Key: type: SensorMonitoringConsoleBoundUserInterface - type: DeviceNetwork deviceNetId: AtmosDevices @@ -1073,3 +1100,42 @@ - type: WiredNetworkConnection - type: DeviceList - type: AtmosDevice + +- type: entity + parent: BaseComputer + id: ComputerRoboticsControl + name: robotics control console + description: Used to remotely monitor, disable and destroy the station's cyborgs. + components: + - type: Sprite + layers: + - map: ["computerLayerBody"] + state: computer + - map: ["computerLayerKeyboard"] + state: generic_keyboard + - map: ["computerLayerScreen"] + state: robot + - map: ["computerLayerKeys"] + state: rd_key + - type: RoboticsConsole + - type: ActiveRadio + channels: + - Science + - type: ActivatableUI + key: enum.RoboticsConsoleUiKey.Key + - type: UserInterface + interfaces: + enum.RoboticsConsoleUiKey.Key: + type: RoboticsConsoleBoundUserInterface + - type: ApcPowerReceiver + powerLoad: 1000 + - type: DeviceNetwork + deviceNetId: Wireless + receiveFrequencyId: RoboticsConsole + transmitFrequencyId: CyborgControl + - type: Computer + board: RoboticsConsoleCircuitboard + - type: AccessReader # only used for dangerous things + access: [["ResearchDirector"]] + - type: Lock + unlockOnClick: false diff --git a/Resources/Prototypes/Entities/Structures/Machines/Computers/techdiskterminal.yml b/Resources/Prototypes/Entities/Structures/Machines/Computers/techdiskterminal.yml index df989a7795..dd58b9709d 100644 --- a/Resources/Prototypes/Entities/Structures/Machines/Computers/techdiskterminal.yml +++ b/Resources/Prototypes/Entities/Structures/Machines/Computers/techdiskterminal.yml @@ -19,10 +19,10 @@ - type: ActivatableUIRequiresPower - type: UserInterface interfaces: - - key: enum.DiskConsoleUiKey.Key - type: DiskConsoleBoundUserInterface - - key: enum.ResearchClientUiKey.Key - type: ResearchClientBoundUserInterface + enum.DiskConsoleUiKey.Key: + type: DiskConsoleBoundUserInterface + enum.ResearchClientUiKey.Key: + type: ResearchClientBoundUserInterface - type: ExtensionCableReceiver - type: Computer board: TechDiskComputerCircuitboard diff --git a/Resources/Prototypes/Entities/Structures/Machines/Medical/cryo_pod.yml b/Resources/Prototypes/Entities/Structures/Machines/Medical/cryo_pod.yml index 6ac969171e..4cb76ea4b9 100644 --- a/Resources/Prototypes/Entities/Structures/Machines/Medical/cryo_pod.yml +++ b/Resources/Prototypes/Entities/Structures/Machines/Medical/cryo_pod.yml @@ -89,9 +89,9 @@ scanDelay: 0 - type: UserInterface interfaces: - - key: enum.HealthAnalyzerUiKey.Key + enum.HealthAnalyzerUiKey.Key: type: HealthAnalyzerBoundUserInterface - - key: enum.WiresUiKey.Key + enum.WiresUiKey.Key: type: WiresBoundUserInterface - type: ActivatableUI key: enum.HealthAnalyzerUiKey.Key diff --git a/Resources/Prototypes/Entities/Structures/Machines/anomaly_equipment.yml b/Resources/Prototypes/Entities/Structures/Machines/anomaly_equipment.yml index ab09a03fef..09ee110054 100644 --- a/Resources/Prototypes/Entities/Structures/Machines/anomaly_equipment.yml +++ b/Resources/Prototypes/Entities/Structures/Machines/anomaly_equipment.yml @@ -27,8 +27,8 @@ - type: ActivatableUIRequiresPower - type: UserInterface interfaces: - - key: enum.ResearchClientUiKey.Key - type: ResearchClientBoundUserInterface + enum.ResearchClientUiKey.Key: + type: ResearchClientBoundUserInterface - type: Machine board: AnomalyVesselCircuitboard - type: PointLight @@ -176,8 +176,8 @@ SetParticleZeta: AnomalousParticleZeta SetParticleSigma: AnomalousParticleSigma fireBurstSize: 1 - fireBurstDelayMin: 2 - fireBurstDelayMax: 6 + baseFireBurstDelayMin: 2 + baseFireBurstDelayMax: 6 - type: ApcPowerReceiver powerLoad: 100 - type: GuideHelp @@ -298,8 +298,8 @@ - type: ActivatableUIRequiresPower - type: UserInterface interfaces: - - key: enum.AnomalyGeneratorUiKey.Key - type: AnomalyGeneratorBoundUserInterface + enum.AnomalyGeneratorUiKey.Key: + type: AnomalyGeneratorBoundUserInterface - type: Appearance - type: ActiveRadio channels: diff --git a/Resources/Prototypes/Entities/Structures/Machines/anomaly_sync.yml b/Resources/Prototypes/Entities/Structures/Machines/anomaly_sync.yml index 3019b8adf8..eeaae611c3 100644 --- a/Resources/Prototypes/Entities/Structures/Machines/anomaly_sync.yml +++ b/Resources/Prototypes/Entities/Structures/Machines/anomaly_sync.yml @@ -41,7 +41,7 @@ bounds: "-0.35,-0.35,0.35,0.35" density: 100 mask: - - ItemMask + - ItemMask hard: True - type: Transform anchored: true @@ -49,6 +49,9 @@ - type: ApcPowerReceiver powerLoad: 2500 needsPower: true + - type: UpgradePowerDraw + powerDrawMultiplier: 0.80 + scaling: Exponential - type: ItemPlacer whitelist: components: diff --git a/Resources/Prototypes/Entities/Structures/Machines/artifact_analyzer.yml b/Resources/Prototypes/Entities/Structures/Machines/artifact_analyzer.yml index 18999a6ab2..747b927e2f 100644 --- a/Resources/Prototypes/Entities/Structures/Machines/artifact_analyzer.yml +++ b/Resources/Prototypes/Entities/Structures/Machines/artifact_analyzer.yml @@ -44,6 +44,7 @@ powerLoad: 12000 needsPower: false #only turns on when scanning - type: ArtifactAnalyzer + - type: TraversalDistorter - type: ItemPlacer whitelist: components: @@ -107,6 +108,9 @@ hard: False - type: Transform noRot: false + - type: UpgradePowerDraw + powerDrawMultiplier: 0.80 + scaling: Exponential - type: TraversalDistorter - type: ItemPlacer # don't limit the number of artifacts that can be biased diff --git a/Resources/Prototypes/Entities/Structures/Machines/bombs.yml b/Resources/Prototypes/Entities/Structures/Machines/bombs.yml index 89cadab6b1..88e650068e 100644 --- a/Resources/Prototypes/Entities/Structures/Machines/bombs.yml +++ b/Resources/Prototypes/Entities/Structures/Machines/bombs.yml @@ -10,7 +10,7 @@ - type: InteractionOutline - type: UserInterface interfaces: - - key: enum.WiresUiKey.Key + enum.WiresUiKey.Key: type: WiresBoundUserInterface - type: Wires layoutId: Defusable diff --git a/Resources/Prototypes/Entities/Structures/Machines/chem_master.yml b/Resources/Prototypes/Entities/Structures/Machines/chem_master.yml index aee1246021..4e565054b4 100644 --- a/Resources/Prototypes/Entities/Structures/Machines/chem_master.yml +++ b/Resources/Prototypes/Entities/Structures/Machines/chem_master.yml @@ -50,8 +50,8 @@ - type: ActivatableUIRequiresPower - type: UserInterface interfaces: - - key: enum.ChemMasterUiKey.Key - type: ChemMasterBoundUserInterface + enum.ChemMasterUiKey.Key: + type: ChemMasterBoundUserInterface - type: ApcPowerReceiver powerLoad: 250 - type: Appearance diff --git a/Resources/Prototypes/Entities/Structures/Machines/fax_machine.yml b/Resources/Prototypes/Entities/Structures/Machines/fax_machine.yml index e8439f8213..c9b2045bac 100644 --- a/Resources/Prototypes/Entities/Structures/Machines/fax_machine.yml +++ b/Resources/Prototypes/Entities/Structures/Machines/fax_machine.yml @@ -1,4 +1,4 @@ -- type: entity +- type: entity parent: BaseMachinePowered id: FaxMachineBase name: long range fax machine @@ -9,7 +9,7 @@ drawdepth: SmallObjects layers: - state: icon - map: ["base"] + map: [ "enum.FaxMachineVisuals.VisualState" ] - type: Icon sprite: Structures/Machines/fax_machine.rsi state: icon @@ -32,30 +32,34 @@ - type: ActivatableUIRequiresPower - type: UserInterface interfaces: - - key: enum.FaxUiKey.Key - type: FaxBoundUi + enum.FaxUiKey.Key: + type: FaxBoundUi - type: ApcPowerReceiver powerLoad: 250 + - type: Faxecute + damage: + types: + Blunt: 100 - type: FaxMachine paperSlot: insertSound: /Audio/Machines/scanning.ogg ejectSound: /Audio/Machines/tray_eject.ogg whitelist: components: - - Paper + - FaxableObject blacklist: tags: - - PaperSlip # DeltaV - Prevent the faxing of paper slips. + - PaperSlip - type: GenericVisualizer visuals: enum.PowerDeviceVisuals.Powered: - base: + enum.FaxMachineVisuals.VisualState: True: { state: idle } False: { state: icon } enum.FaxMachineVisuals.VisualState: - base: - Inserting: { state: inserting } + enum.FaxMachineVisuals.VisualState: Printing: { state: printing } + Normal: {state: idle} - type: ItemSlots - type: ContainerContainer containers: @@ -112,4 +116,3 @@ receiveStationGoal: true - type: StealTarget stealGroup: FaxMachineCaptain - diff --git a/Resources/Prototypes/Entities/Structures/Machines/flatpacker.yml b/Resources/Prototypes/Entities/Structures/Machines/flatpacker.yml index 3244789a02..b4f05cf68a 100644 --- a/Resources/Prototypes/Entities/Structures/Machines/flatpacker.yml +++ b/Resources/Prototypes/Entities/Structures/Machines/flatpacker.yml @@ -58,8 +58,8 @@ - type: ActivatableUIRequiresPower - type: UserInterface interfaces: - - key: enum.FlatpackCreatorUIKey.Key - type: FlatpackCreatorBoundUserInterface + enum.FlatpackCreatorUIKey.Key: + type: FlatpackCreatorBoundUserInterface - type: ItemSlots slots: board_slot: diff --git a/Resources/Prototypes/Entities/Structures/Machines/gateway.yml b/Resources/Prototypes/Entities/Structures/Machines/gateway.yml index b6ad9db356..dd01adf6d5 100644 --- a/Resources/Prototypes/Entities/Structures/Machines/gateway.yml +++ b/Resources/Prototypes/Entities/Structures/Machines/gateway.yml @@ -52,6 +52,6 @@ key: enum.GatewayUiKey.Key - type: UserInterface interfaces: - - key: enum.GatewayUiKey.Key - type: GatewayBoundUserInterface + enum.GatewayUiKey.Key: + type: GatewayBoundUserInterface - type: Gateway diff --git a/Resources/Prototypes/Entities/Structures/Machines/gravity_generator.yml b/Resources/Prototypes/Entities/Structures/Machines/gravity_generator.yml index 618538dccb..6ee454c6a9 100644 --- a/Resources/Prototypes/Entities/Structures/Machines/gravity_generator.yml +++ b/Resources/Prototypes/Entities/Structures/Machines/gravity_generator.yml @@ -62,8 +62,8 @@ on: "on" - type: UserInterface interfaces: - - key: enum.GravityGeneratorUiKey.Key - type: GravityGeneratorBoundUserInterface + enum.GravityGeneratorUiKey.Key: + type: GravityGeneratorBoundUserInterface - type: Appearance - type: PointLight radius: 2.5 diff --git a/Resources/Prototypes/Entities/Structures/Machines/hotplate.yml b/Resources/Prototypes/Entities/Structures/Machines/hotplate.yml index 3764f13591..003916ce94 100644 --- a/Resources/Prototypes/Entities/Structures/Machines/hotplate.yml +++ b/Resources/Prototypes/Entities/Structures/Machines/hotplate.yml @@ -43,7 +43,7 @@ map: ["enum.SolutionHeaterVisuals.IsOn"] shader: unshaded - type: SolutionHeater - heatPerSecond: 160 + baseHeatPerSecond: 160 - type: ItemPlacer whitelist: components: diff --git a/Resources/Prototypes/Entities/Structures/Machines/jukebox.yml b/Resources/Prototypes/Entities/Structures/Machines/jukebox.yml index 76b8ddd36b..acd8527dbb 100644 --- a/Resources/Prototypes/Entities/Structures/Machines/jukebox.yml +++ b/Resources/Prototypes/Entities/Structures/Machines/jukebox.yml @@ -26,8 +26,8 @@ - type: ActivatableUIRequiresPower - type: UserInterface interfaces: - - key: enum.JukeboxUiKey.Key - type: JukeboxBoundUserInterface + enum.JukeboxUiKey.Key: + type: JukeboxBoundUserInterface - type: Damageable damageContainer: Inorganic damageModifierSet: Metallic diff --git a/Resources/Prototypes/Entities/Structures/Machines/lathe.yml b/Resources/Prototypes/Entities/Structures/Machines/lathe.yml index 737e56f310..dd90903b05 100644 --- a/Resources/Prototypes/Entities/Structures/Machines/lathe.yml +++ b/Resources/Prototypes/Entities/Structures/Machines/lathe.yml @@ -38,10 +38,10 @@ - type: ActivatableUIRequiresPower - type: UserInterface interfaces: - - key: enum.LatheUiKey.Key - type: LatheBoundUserInterface - - key: enum.ResearchClientUiKey.Key - type: ResearchClientBoundUserInterface + enum.LatheUiKey.Key: + type: LatheBoundUserInterface + enum.ResearchClientUiKey.Key: + type: ResearchClientBoundUserInterface - type: Transform anchored: true - type: Pullable @@ -50,11 +50,46 @@ - type: ResearchClient - type: TechnologyDatabase +# a lathe that can be sped up with space lube / slowed down with glue - type: entity - id: Autolathe + abstract: true parent: BaseLathe + id: BaseLatheLube + components: + - type: ReagentSpeed + solution: lube + modifiers: + SpaceLube: 0.25 + SpaceGlue: 5 + - type: SolutionContainerManager + solutions: + lube: + maxVol: 250 + - type: Spillable + solution: lube + - type: RefillableSolution + solution: lube + - type: ExaminableSolution + solution: lube + +- type: entity + abstract: true + id: BaseHyperlathe + components: + - type: Lathe + materialUseMultiplier: 0.5 + timeMultiplier: 1.5 + - type: LatheHeatProducing + - type: ReagentSpeed + modifiers: + SpaceLube: 0.8 # being faster means less heat so lube needs to be nerfed + SpaceGlue: 5 # no change from normal lathe, overheat!!! + +- type: entity + id: Autolathe + parent: BaseLatheLube name: autolathe - description: It produces items using metal and glass. + description: It produces basic items using metal and glass. components: - type: Sprite sprite: Structures/Machines/autolathe.rsi @@ -121,6 +156,7 @@ - DrinkGlass - DrinkShotGlass - DrinkGlassCoupeShaped + - CustomDrinkJug - FoodPlate - FoodPlateSmall - FoodPlatePlastic @@ -162,88 +198,46 @@ - ClothingHeadHatWelding - type: EmagLatheRecipes emagStaticRecipes: - - CartridgePistol - - CartridgeMagnum - - ShellShotgun - - ShellShotgunFlare - - ShellTranquilizer - - CartridgeLightRifle - - CartridgeRifle - - CombatKnife - - MagazineBoxPistol - - MagazineBoxMagnum - - MagazineBoxRifle - - MagazineBoxLightRifle - - GrenadeBlast - # DeltaV - .38 special ammo - Add .38 special lethals to emagged autolathe - - CartridgeSpecial - - MagazineBoxSpecial - # End of modified code - emagDynamicRecipes: - - CartridgePistolRubber - - CartridgeMagnumRubber - - ShellShotgunBeanbag - - CartridgeRifleRubber - - CartridgeLightRifleRubber - - MagazineBoxPistolRubber - - MagazineBoxMagnumRubber - - MagazineBoxRifleRubber - - MagazineBoxLightRifleRubber - - ShellShotgunIncendiary - - CartridgePistolIncendiary - - CartridgeMagnumIncendiary - - CartridgeLightRifleIncendiary - - CartridgeRifleIncendiary - - MagazineBoxPistolIncendiary - - MagazineBoxMagnumIncendiary - - MagazineBoxLightRifleIncendiary - - MagazineBoxRifleIncendiary - - ShellShotgunUranium - - CartridgePistolUranium - - CartridgeMagnumUranium - - CartridgeLightRifleUranium - - CartridgeRifleUranium - - MagazineBoxPistolUranium - - MagazineBoxMagnumUranium - - MagazineBoxLightRifleUranium - - MagazineBoxRifleUranium - - PowerCageSmall - - PowerCageMedium - - PowerCageHigh - - MagazineGrenadeEmpty - - GrenadeEMP - - GrenadeFlash - # DeltaV - .38 special ammo - Add various .38 special ammo to emagged autolathe - - CartridgeSpecialRubber - - CartridgeSpecialIncendiary - - CartridgeSpecialUranium - - CartridgeSpecialMindbreaker - - MagazineBoxSpecialRubber - - MagazineBoxSpecialIncendiary - - MagazineBoxSpecialUranium - - MagazineBoxSpecialMindbreaker - # End of modified code + - BoxLethalshot + - BoxShotgunFlare + - BoxShotgunSlug + - MagazineBoxLightRifle + - MagazineBoxMagnum + - MagazineBoxPistol + - MagazineBoxRifle + - MagazineLightRifle + - MagazineLightRifleEmpty + - MagazinePistol + - MagazinePistolEmpty + - MagazinePistolSubMachineGun + - MagazinePistolSubMachineGunEmpty + - MagazinePistolSubMachineGunTopMounted + - MagazinePistolSubMachineGunTopMountedEmpty + - MagazineRifle + - MagazineRifleEmpty + - MagazineShotgun + - MagazineShotgunEmpty + - MagazineShotgunSlug + - RiotShield + - SpeedLoaderMagnum + - SpeedLoaderMagnumEmpty - type: entity id: AutolatheHyperConvection - parent: Autolathe + parent: [Autolathe, BaseHyperlathe] name: hyper convection autolathe description: A highly-experimental autolathe that harnesses the power of extreme heat to slowly create objects more cost-effectively. components: - type: Sprite sprite: Structures/Machines/autolathe_hypercon.rsi - - type: Lathe - materialUseMultiplier: 0.5 - timeMultiplier: 1.5 - - type: LatheHeatProducing - type: Machine board: AutolatheHyperConvectionMachineCircuitboard - type: entity id: Protolathe - parent: BaseLathe + parent: BaseLatheLube name: protolathe - description: Converts raw materials into useful objects. + description: Converts raw materials into advanced items. components: - type: Sprite sprite: Structures/Machines/protolathe.rsi @@ -294,6 +288,15 @@ - Implanter - PillCanister - ChemistryEmptyBottle01 + - AdvancedCapacitorStockPart + - AdvancedMatterBinStockPart + - NanoManipulatorStockPart + - SuperCapacitorStockPart + - SuperMatterBinStockPart + - PicoManipulatorStockPart + - BluespaceCapacitorStockPart + - BluespaceManipulatorStockPart + - BluespaceMatterBinStockPart - AdvMopItem - WeaponSprayNozzle - ClothingBackpackWaterTank @@ -310,6 +313,7 @@ - PowerCellMicroreactor - PowerCellHigh - WeaponPistolCHIMP + - ClothingMaskWeldingGas - WeaponGauntletGorilla - SynthesizerInstrument - RPED @@ -319,11 +323,11 @@ - HolofanProjector - BluespaceBeaker - SyringeBluespace - #- WeaponForceGun + - WeaponForceGun - WeaponLaserSvalinn - WeaponProtoKineticAccelerator - #- WeaponTetherGun - #- WeaponGrapplingGun + - WeaponTetherGun + - WeaponGrapplingGun - ClothingBackpackHolding - ClothingBackpackSatchelHolding - ClothingBackpackDuffelHolding @@ -355,12 +359,48 @@ - AnimalTranslator - MofficTranslatorImplanter - MofficTranslator + - RCDAmmo #DeltaV + - RCD #EE - type: EmagLatheRecipes emagDynamicRecipes: + - BoxBeanbag + - BoxShotgunIncendiary + - BoxShotgunUranium - ExplosivePayload - - WeaponLaserCarbine + - GrenadeBlast + - GrenadeEMP + - GrenadeFlash + - HoloprojectorSecurity + - MagazineBoxLightRifleIncendiary + - MagazineBoxLightRifleUranium + - MagazineBoxMagnumIncendiary + - MagazineBoxMagnumUranium + - MagazineBoxPistolIncendiary + - MagazineBoxPistolUranium + - MagazineBoxRifleIncendiary + - MagazineBoxRifleUranium + - MagazineGrenadeEmpty + - MagazineLightRifleIncendiary + - MagazineLightRifleUranium + - MagazinePistolIncendiary + - MagazinePistolUranium + - MagazineRifleIncendiary + - MagazineRifleUranium + - MagazineShotgunBeanbag + - MagazineShotgunIncendiary + - MagazineShotgunIncendiary + - PortableRecharger + - PowerCageHigh + - PowerCageMedium + - PowerCageSmall + - ShellTranquilizer + - SpeedLoaderMagnumIncendiary + - SpeedLoaderMagnumUranium + - TelescopicShield + - Truncheon - WeaponAdvancedLaser - WeaponLaserCannon + - WeaponLaserCarbine - WeaponXrayCannon - WeaponEnergyGun # DeltaV - Energy Gun - WeaponEnergyGunMini # DeltaV - Miniature Energy Gun @@ -369,22 +409,18 @@ - type: entity id: ProtolatheHyperConvection - parent: Protolathe + parent: [Protolathe, BaseHyperlathe] name: hyper convection protolathe description: A highly-experimental protolathe that harnesses the power of extreme heat to slowly create objects more cost-effectively. components: - type: Sprite sprite: Structures/Machines/protolathe_hypercon.rsi - - type: Lathe - materialUseMultiplier: 0.5 - timeMultiplier: 1.5 - - type: LatheHeatProducing - type: Machine board: ProtolatheHyperConvectionMachineCircuitboard - type: entity id: CircuitImprinter - parent: BaseLathe + parent: BaseLatheLube name: circuit imprinter description: Prints circuit boards for machines. components: @@ -453,6 +489,7 @@ - PowerComputerCircuitboard - AutolatheHyperConvectionMachineCircuitboard - ProtolatheHyperConvectionMachineCircuitboard + - CircuitImprinterHyperConvectionMachineCircuitboard - FatExtractorMachineCircuitboard - FlatpackerMachineCircuitboard - SheetifierMachineCircuitboard @@ -492,12 +529,10 @@ - AnomalySynchronizerCircuitboard - APECircuitboard - ArtifactAnalyzerMachineCircuitboard - - TraversalDistorterMachineCircuitboard - ArtifactCrusherMachineCircuitboard - TelecomServerCircuitboard - MassMediaCircuitboard - ReagentGrinderIndustrialMachineCircuitboard - # Begin Nyano additions - ReverseEngineeringMachineCircuitboard - CrewMonitoringComputerCircuitboard - DoorElectronics @@ -508,8 +543,14 @@ - SalvageMagnetMachineCircuitboard - StationMapElectronics - MetempsychoticMachineCircuitboard - # End Nyano additions - - SalvageExpeditionsComputerCircuitboard # DeltaV + - SalvageExpeditionsComputerCircuitboard + - JukeboxCircuitBoard + - type: EmagLatheRecipes + emagDynamicRecipes: + - ShuttleGunDusterCircuitboard + - ShuttleGunFriendshipCircuitboard + - ShuttleGunPerforatorCircuitboard + - ShuttleGunSvalinnMachineGunCircuitboard - type: MaterialStorage whitelist: tags: @@ -518,9 +559,20 @@ - Ingot - type: RequireProjectileTarget +- type: entity + id: CircuitImprinterHyperConvection + parent: [CircuitImprinter, BaseHyperlathe] + name: hyper convection circuit imprinter + description: A highly-experimental circuit imprinter that harnesses the power of extreme heat to slowly create objects more cost-effectively. + components: + - type: Sprite + sprite: Structures/Machines/circuit_imprinter_hypercon.rsi + - type: Machine + board: CircuitImprinterHyperConvectionMachineCircuitboard + - type: entity id: ExosuitFabricator - parent: BaseLathe + parent: BaseLatheLube name: exosuit fabricator description: Creates parts for robotics and other mechanical needs components: @@ -591,7 +643,7 @@ - BorgModuleLightReplacer - BorgModuleAdvancedCleaning - BorgModuleMining - #- BorgModuleGrapplingGun + - BorgModuleGrapplingGun - BorgModuleAdvancedTool - BorgModuleGPS - BorgModuleRCD @@ -626,8 +678,6 @@ - HamtrRLeg - VimHarness # Begin Nyano additions - - ClothingOuterHardsuitJuggernautReverseEngineered - - ClothingOuterHardsuitSyndieReverseEngineered - JetpackBlue - JetpackMini # End Nyano additions @@ -686,7 +736,7 @@ - type: entity id: SecurityTechFab - parent: BaseLathe + parent: BaseLatheLube name: security techfab description: Prints equipment for use by security crew. components: @@ -709,49 +759,62 @@ idleState: icon runningState: icon staticRecipes: + - BoxLethalshot + - BoxShotgunFlare + - BoxShotgunPractice + - BoxShotgunSlug - ClothingEyesHudSecurity - CombatKnife - Flash - - Handcuffs - - Zipties - - Stunbaton - ForensicPad - - RiotShield + - Handcuffs - ShellShotgun - ShellShotgunSlug - ShellShotgunFlare - ShellTranquilizer + - MagazineBoxLightRifle + - MagazineBoxLightRiflePractice + - MagazineBoxMagnum + - MagazineBoxMagnumPractice + - MagazineBoxPistol + - MagazineBoxPistolPractice + - MagazineBoxRifle + - MagazineBoxRiflePractice + - MagazineLightRifle + - MagazineLightRifleEmpty - MagazinePistol + - MagazinePistolEmpty - MagazinePistolSubMachineGun + - MagazinePistolSubMachineGunEmpty - MagazinePistolSubMachineGunTopMounted + - MagazinePistolSubMachineGunTopMountedEmpty - MagazineRifle - - MagazineLightRifle - - MagazineBoxPistol - - MagazineBoxMagnum - - MagazineBoxRifle - - MagazineBoxLightRifle + - MagazineRifleEmpty + - MagazineShotgun + - MagazineShotgunEmpty + - MagazineShotgunSlug + - RiotShield - SpeedLoaderMagnum - - ClothingOuterArmorPlateCarrier # DeltaV - plate carrier body armour - - ClothingOuterArmorDuraVest # DeltaV - stabproof vest body armour + - SpeedLoaderMagnumEmpty + - Stunbaton + - TargetClown + - ClothingOuterArmorPlateCarrier + - ClothingOuterArmorDuraVest - TargetHuman - TargetSyndicate - - TargetClown - - MagazineBoxLightRiflePractice - - MagazineBoxMagnumPractice - - MagazineBoxPistolPractice - - MagazineBoxRiflePractice - - ShellShotgunPractice - - WeaponLaserCarbinePractice - WeaponDisablerPractice + - WeaponLaserCarbinePractice + - Zipties - ShockCollar - # DeltaV - .38 special ammo - Add various .38 special ammo to security techfab - MagazineBoxSpecial - MagazineBoxSpecialPractice - SpeedLoaderSpecial - MagazinePistolSpecial - # End of modified code dynamicRecipes: - - EncryptionKeySyndie # Nyano + - BoxBeanbag + - BoxShotgunIncendiary + - BoxShotgunUranium + - EncryptionKeySyndie - CartridgeLightRifleIncendiary - CartridgeMagnumIncendiary - CartridgePistolIncendiary @@ -767,34 +830,51 @@ - ClothingEyesGlassesSecurity - ExplosivePayload - FlashPayload + - GrenadeBlast + - GrenadeEMP + - GrenadeFlash - HoloprojectorSecurity - MagazineBoxLightRifleIncendiary - - MagazineBoxMagnumIncendiary - - MagazineBoxPistolIncendiary - - MagazineBoxRifleIncendiary - MagazineBoxLightRifleUranium + - MagazineBoxMagnumIncendiary - MagazineBoxMagnumUranium + - MagazineBoxPistolIncendiary - MagazineBoxPistolUranium + - MagazineBoxRifleIncendiary - MagazineBoxRifleUranium - - ShellSoulbreaker # Nyanotrasen - Shotgun shell to get rid of psionics + - ShellSoulbreaker - MagazineBoxLightRifleRubber - MagazineBoxMagnumRubber - MagazineBoxPistolRubber - MagazineBoxRifleRubber - MagazineGrenadeEmpty - - GrenadeEMP - - GrenadeFlash - - ShellShotgunBeanbag - - ShellShotgunIncendiary - - ShellShotgunUranium + - MagazineLightRifleIncendiary + - MagazineLightRifleUranium + - MagazinePistolIncendiary + - MagazinePistolUranium + - MagazineRifleIncendiary + - MagazineRifleUranium + - MagazineShotgunBeanbag + - MagazineShotgunIncendiary + - PortableRecharger + - PowerCageHigh + - PowerCageMedium + - PowerCageSmall + - ShellTranquilizer + - ShuttleGunDusterCircuitboard + - ShuttleGunFriendshipCircuitboard + - ShuttleGunPerforatorCircuitboard + - ShuttleGunSvalinnMachineGunCircuitboard - Signaller - SignalTrigger + - SpeedLoaderMagnumIncendiary + - SpeedLoaderMagnumUranium - TelescopicShield - TimerTrigger - Truncheon - VoiceTrigger - - WeaponDisablerPractice - WeaponAdvancedLaser + - WeaponDisabler - WeaponDisablerSMG - WeaponLaserCannon - WeaponLaserCarbine @@ -802,18 +882,10 @@ - ClothingHeadCage # Nyanotrasen - Insulative headgear - ShockCollar # Nyanotrasen - Shock Collar - WeaponXrayCannon - - PowerCageSmall - - PowerCageMedium - - PowerCageHigh - - ShuttleGunSvalinnMachineGunCircuitboard - - ShuttleGunPerforatorCircuitboard - - ShuttleGunFriendshipCircuitboard - - ShuttleGunDusterCircuitboard - - WeaponEnergyGun #DeltaV - Energy Gun - - WeaponEnergyGunMini #DeltaV - Energy Gun but miniature - - WeaponEnergyGunPistol #DeltaV - Energy Gun Mini but with the power of a normal energy gun - - WeaponGunLaserCarbineAutomatic #DeltaV - New Laser Projectiles with a 20 round carbine - # DeltaV - .38 special ammo - Add various .38 special ammo to security techfab + - WeaponEnergyGun + - WeaponEnergyGunMini + - WeaponEnergyGunPistol + - WeaponGunLaserCarbineAutomatic - CartridgeSpecialRubber - CartridgeSpecialIncendiary - CartridgeSpecialUranium @@ -823,7 +895,6 @@ - MagazineBoxSpecialIncendiary - MagazineBoxSpecialUranium - MagazineBoxSpecialMindbreaker - # End of modified code - type: MaterialStorage whitelist: tags: @@ -833,7 +904,7 @@ - type: entity id: AmmoTechFab - parent: BaseLathe + parent: BaseLatheLube name: ammo techfab description: Prints the bare minimum of bullets that any budget military or armory could need. Nothing fancy. components: @@ -856,22 +927,27 @@ idleState: icon runningState: icon staticRecipes: - - CartridgePistol - - CartridgeMagnum - - ShellShotgun - - ShellShotgunSlug - - ShellShotgunFlare - - ShellTranquilizer - - CartridgeLightRifle - - CartridgeRifle - - MagazineBoxPistol + - BoxLethalshot + - BoxShotgunFlare + - BoxShotgunSlug + - MagazineBoxLightRifle - MagazineBoxMagnum + - MagazineBoxPistol - MagazineBoxRifle - - MagazineBoxLightRifle - # DeltaV - .38 special ammo - Add lethal .38 special ammo to ammo techfab + - MagazineLightRifle + - MagazineLightRifleEmpty + - MagazinePistol + - MagazinePistolEmpty + - MagazineRifle + - MagazineRifleEmpty + - MagazineShotgun + - MagazineShotgunEmpty + - MagazineShotgunSlug + - ShellTranquilizer + - SpeedLoaderMagnum + - SpeedLoaderMagnumEmpty - CartridgeSpecial - MagazineBoxSpecial - # End of modified code - type: MaterialStorage whitelist: tags: @@ -881,7 +957,7 @@ - type: entity id: MedicalTechFab - parent: BaseLathe + parent: BaseLatheLube name: medical techfab description: Prints equipment for use by the medbay. components: @@ -1089,7 +1165,8 @@ - ClothingOuterWinterCE - ClothingOuterWinterCMO - ClothingOuterWinterHoP - - ClothingOuterWinterHoS + - ClothingOuterWinterHoSUnarmored + - ClothingOuterWinterWardenUnarmored - ClothingOuterWinterQM - ClothingOuterWinterRD - ClothingNeckMantleCap @@ -1203,7 +1280,8 @@ idleState: icon runningState: building staticRecipes: - - BluespaceCrystal #Nyano - Summary: Bluespace Crystals can be created here. + - BluespaceCrystal + - NormalityCrystal - SheetSteel30 - SheetGlass30 - SheetRGlass30 @@ -1233,6 +1311,8 @@ materialUseMultiplier: 0.75 timeMultiplier: 0.5 staticRecipes: + - BluespaceCrystal + - NormalityCrystal - SheetSteel30 - SheetGlass30 - SheetRGlass30 @@ -1294,7 +1374,6 @@ - type: LitOnPowered - type: ApcPowerReceiver powerLoad: 200 - priority: Low # - type: Advertise # pack: CuddlyCritterAds # TODO Change this - type: PointLight diff --git a/Resources/Prototypes/Entities/Structures/Machines/microwave.yml b/Resources/Prototypes/Entities/Structures/Machines/microwave.yml index 55dfe296a6..994269f71b 100644 --- a/Resources/Prototypes/Entities/Structures/Machines/microwave.yml +++ b/Resources/Prototypes/Entities/Structures/Machines/microwave.yml @@ -44,8 +44,8 @@ range: 200 - type: UserInterface interfaces: - - key: enum.MicrowaveUiKey.Key - type: MicrowaveBoundUserInterface + enum.MicrowaveUiKey.Key: + type: MicrowaveBoundUserInterface - type: Physics - type: Fixtures fixtures: diff --git a/Resources/Prototypes/Entities/Structures/Machines/nuke.yml b/Resources/Prototypes/Entities/Structures/Machines/nuke.yml index f37c42e474..bc4581d7b6 100644 --- a/Resources/Prototypes/Entities/Structures/Machines/nuke.yml +++ b/Resources/Prototypes/Entities/Structures/Machines/nuke.yml @@ -88,8 +88,8 @@ key: enum.NukeUiKey.Key - type: UserInterface interfaces: - - key: enum.NukeUiKey.Key - type: NukeBoundUserInterface + enum.NukeUiKey.Key: + type: NukeBoundUserInterface - type: StaticPrice price: 50000 # YOU STOLE A NUCLEAR FISSION EXPLOSIVE?! - type: CargoSellBlacklist diff --git a/Resources/Prototypes/Entities/Structures/Machines/reagent_grinder.yml b/Resources/Prototypes/Entities/Structures/Machines/reagent_grinder.yml index 80bfb465ff..28aa464d21 100644 --- a/Resources/Prototypes/Entities/Structures/Machines/reagent_grinder.yml +++ b/Resources/Prototypes/Entities/Structures/Machines/reagent_grinder.yml @@ -12,8 +12,8 @@ key: enum.ReagentGrinderUiKey.Key - type: UserInterface interfaces: - - key: enum.ReagentGrinderUiKey.Key - type: ReagentGrinderBoundUserInterface + enum.ReagentGrinderUiKey.Key: + type: ReagentGrinderBoundUserInterface - type: Appearance - type: GenericVisualizer visuals: @@ -101,4 +101,4 @@ - type: DrainableSolution solution: output - type: ExaminableSolution - solution: output \ No newline at end of file + solution: output diff --git a/Resources/Prototypes/Entities/Structures/Machines/research.yml b/Resources/Prototypes/Entities/Structures/Machines/research.yml index 948b3f84b2..498759df3c 100644 --- a/Resources/Prototypes/Entities/Structures/Machines/research.yml +++ b/Resources/Prototypes/Entities/Structures/Machines/research.yml @@ -83,8 +83,8 @@ - type: ActivatableUIRequiresPower - type: UserInterface interfaces: - - key: enum.ResearchClientUiKey.Key - type: ResearchClientBoundUserInterface + enum.ResearchClientUiKey.Key: + type: ResearchClientBoundUserInterface - type: Appearance - type: GenericVisualizer visuals: diff --git a/Resources/Prototypes/Entities/Structures/Machines/salvage.yml b/Resources/Prototypes/Entities/Structures/Machines/salvage.yml index 859dc85ff1..6a2f6c810c 100644 --- a/Resources/Prototypes/Entities/Structures/Machines/salvage.yml +++ b/Resources/Prototypes/Entities/Structures/Machines/salvage.yml @@ -28,8 +28,8 @@ - type: ActivatableUIRequiresPower - type: UserInterface interfaces: - - key: enum.SalvageMagnetUiKey.Key - type: SalvageMagnetBoundUserInterface + enum.SalvageMagnetUiKey.Key: + type: SalvageMagnetBoundUserInterface - type: Transform noRot: false - type: Appearance diff --git a/Resources/Prototypes/Entities/Structures/Machines/seed_extractor.yml b/Resources/Prototypes/Entities/Structures/Machines/seed_extractor.yml index ec07294bfb..4ecd1c29e2 100644 --- a/Resources/Prototypes/Entities/Structures/Machines/seed_extractor.yml +++ b/Resources/Prototypes/Entities/Structures/Machines/seed_extractor.yml @@ -35,3 +35,6 @@ - type: SeedExtractor - type: Machine board: SeedExtractorMachineCircuitboard + - type: UpgradePowerDraw + powerDrawMultiplier: 0.75 + scaling: Exponential diff --git a/Resources/Prototypes/Entities/Structures/Machines/surveillance_camera_routers.yml b/Resources/Prototypes/Entities/Structures/Machines/surveillance_camera_routers.yml index e359db813f..7b342def54 100644 --- a/Resources/Prototypes/Entities/Structures/Machines/surveillance_camera_routers.yml +++ b/Resources/Prototypes/Entities/Structures/Machines/surveillance_camera_routers.yml @@ -13,7 +13,7 @@ - type: DeviceNetworkRequiresPower - type: UserInterface interfaces: - - key: enum.SurveillanceCameraSetupUiKey.Router + enum.SurveillanceCameraSetupUiKey.Router: type: SurveillanceCameraSetupBoundUi - type: Machine board: SurveillanceCameraRouterCircuitboard @@ -118,7 +118,7 @@ - type: DeviceNetworkRequiresPower - type: UserInterface interfaces: - - key: enum.SurveillanceCameraSetupUiKey.Router + enum.SurveillanceCameraSetupUiKey.Router: type: SurveillanceCameraSetupBoundUi - type: Machine board: SurveillanceCameraWirelessRouterCircuitboard diff --git a/Resources/Prototypes/Entities/Structures/Machines/telecomms.yml b/Resources/Prototypes/Entities/Structures/Machines/telecomms.yml index 2a7d827522..13fdb7e80d 100644 --- a/Resources/Prototypes/Entities/Structures/Machines/telecomms.yml +++ b/Resources/Prototypes/Entities/Structures/Machines/telecomms.yml @@ -67,7 +67,7 @@ - type: entity parent: TelecomServer id: TelecomServerFilled - suffix: Filled + suffix: Filled All components: - type: ContainerFill containers: diff --git a/Resources/Prototypes/Entities/Structures/Machines/vending_machines.yml b/Resources/Prototypes/Entities/Structures/Machines/vending_machines.yml index 02cdd80af3..e98b40b9a0 100644 --- a/Resources/Prototypes/Entities/Structures/Machines/vending_machines.yml +++ b/Resources/Prototypes/Entities/Structures/Machines/vending_machines.yml @@ -60,10 +60,10 @@ - type: ActivatableUIRequiresPower - type: UserInterface interfaces: - - key: enum.VendingMachineUiKey.Key - type: VendingMachineBoundUserInterface - - key: enum.WiresUiKey.Key - type: WiresBoundUserInterface + enum.VendingMachineUiKey.Key: + type: VendingMachineBoundUserInterface + enum.WiresUiKey.Key: + type: WiresBoundUserInterface - type: WiresPanel - type: Wires boardName: wires-board-name-vendingmachine @@ -105,10 +105,10 @@ - type: WiresVisuals - type: LanguageKnowledge speaks: - - GalacticCommon + - TauCetiBasic - RobotTalk understands: - - GalacticCommon + - TauCetiBasic - RobotTalk - type: VendingMachine soundVend: /Audio/SimpleStation14/Machines/machine_vend.ogg @@ -1905,7 +1905,7 @@ - state: panel map: ["enum.WiresVisualLayers.MaintenancePanel"] - type: AccessReader - access: [["Service"]] + access: [["Library"]] - type: entity parent: VendingMachine diff --git a/Resources/Prototypes/Entities/Structures/Machines/wireless_surveillance_camera.yml b/Resources/Prototypes/Entities/Structures/Machines/wireless_surveillance_camera.yml index 0a14517771..95079b5c85 100644 --- a/Resources/Prototypes/Entities/Structures/Machines/wireless_surveillance_camera.yml +++ b/Resources/Prototypes/Entities/Structures/Machines/wireless_surveillance_camera.yml @@ -35,7 +35,7 @@ range: 10 - type: UserInterface interfaces: - - key: enum.SurveillanceCameraSetupUiKey.Camera + enum.SurveillanceCameraSetupUiKey.Camera: type: SurveillanceCameraSetupBoundUi placement: mode: SnapgridCenter diff --git a/Resources/Prototypes/Entities/Structures/Piping/Atmospherics/binary.yml b/Resources/Prototypes/Entities/Structures/Piping/Atmospherics/binary.yml index 38fb6282d7..043d01843b 100644 --- a/Resources/Prototypes/Entities/Structures/Piping/Atmospherics/binary.yml +++ b/Resources/Prototypes/Entities/Structures/Piping/Atmospherics/binary.yml @@ -51,8 +51,8 @@ enabled: false - type: UserInterface interfaces: - - key: enum.GasPressurePumpUiKey.Key - type: GasPressurePumpBoundUserInterface + enum.GasPressurePumpUiKey.Key: + type: GasPressurePumpBoundUserInterface - type: Construction graph: GasBinary node: pressurepump @@ -92,7 +92,7 @@ enabled: false - type: UserInterface interfaces: - - key: enum.GasVolumePumpUiKey.Key + enum.GasVolumePumpUiKey.Key: type: GasVolumePumpBoundUserInterface - type: Construction graph: GasBinary diff --git a/Resources/Prototypes/Entities/Structures/Piping/Atmospherics/pipes.yml b/Resources/Prototypes/Entities/Structures/Piping/Atmospherics/pipes.yml index e5b77095b0..0025fc5ae1 100644 --- a/Resources/Prototypes/Entities/Structures/Piping/Atmospherics/pipes.yml +++ b/Resources/Prototypes/Entities/Structures/Piping/Atmospherics/pipes.yml @@ -1,4 +1,4 @@ -- type: entity +- type: entity abstract: true id: GasPipeBase parent: BaseItem @@ -101,6 +101,20 @@ - type: Construction graph: GasPipe node: straight + - type: Item + size: Normal + storedSprite: + sprite: Structures/Piping/Atmospherics/pipe.rsi + state: storageStraight + shape: + - 0,0,0,2 + - type: MeleeWeapon + attackRate: 1 + damage: + types: + Blunt: 8 + soundHit: + collection: MetalThud # this NEEDS to changed to the metal pipe falling sound effect on april first every year - type: entity parent: GasPipeBase @@ -120,6 +134,27 @@ - type: Construction graph: GasPipe node: bend + - type: Item + size: Small + shape: + - 0,0,1,0 + - 1,1,1,1 + heldPrefix: Bend + storedSprite: + sprite: Structures/Piping/Atmospherics/pipe.rsi + state: storageBend + - type: MeleeWeapon + wideAnimationRotation: 180 + attackRate: 1 + damage: + types: + Blunt: 6 + soundHit: + collection: MetalThud + - type: DamageOtherOnHit + damage: + types: + Blunt: 3 #This should be 6 but throwing damage is doubled at the moment for some reason so for now it's 3 - type: entity parent: GasPipeBase @@ -139,6 +174,23 @@ - type: Construction graph: GasPipe node: tjunction + - type: Item + size: Normal + shape: + - 0,0,2,0 + - 1,1,1,1 + heldPrefix: TJunction + storedSprite: + sprite: Structures/Piping/Atmospherics/pipe.rsi + state: storageTJunction + - type: MeleeWeapon + wideAnimationRotation: 90 + attackRate: 0.75 + damage: + types: + Blunt: 10 + soundHit: + collection: MetalThud - type: entity parent: GasPipeBase @@ -160,6 +212,20 @@ - type: Construction graph: GasPipe node: fourway + - type: Item + size: Normal + shape: + - 1,0,1,2 + - 0,1,2,1 + heldPrefix: Fourway + - type: MeleeWeapon + wideAnimationRotation: 90 + attackRate: 0.75 + damage: + types: + Blunt: 10 + soundHit: + collection: MetalThud - type: entity id: GasPipeBroken diff --git a/Resources/Prototypes/Entities/Structures/Piping/Atmospherics/portable.yml b/Resources/Prototypes/Entities/Structures/Piping/Atmospherics/portable.yml index fdb4062ca6..69259cac23 100644 --- a/Resources/Prototypes/Entities/Structures/Piping/Atmospherics/portable.yml +++ b/Resources/Prototypes/Entities/Structures/Piping/Atmospherics/portable.yml @@ -144,8 +144,8 @@ - type: WiresVisuals - type: UserInterface interfaces: - - key: enum.SpaceHeaterUiKey.Key - type: SpaceHeaterBoundUserInterface + enum.SpaceHeaterUiKey.Key: + type: SpaceHeaterBoundUserInterface - type: ActivatableUI inHandsOnly: false key: enum.SpaceHeaterUiKey.Key diff --git a/Resources/Prototypes/Entities/Structures/Piping/Atmospherics/trinary.yml b/Resources/Prototypes/Entities/Structures/Piping/Atmospherics/trinary.yml index d0f239b338..e8025556aa 100644 --- a/Resources/Prototypes/Entities/Structures/Piping/Atmospherics/trinary.yml +++ b/Resources/Prototypes/Entities/Structures/Piping/Atmospherics/trinary.yml @@ -53,7 +53,7 @@ - type: PipeColorVisuals - type: UserInterface interfaces: - - key: enum.GasFilterUiKey.Key + enum.GasFilterUiKey.Key: type: GasFilterBoundUserInterface - type: GasFilter enabled: false @@ -96,6 +96,9 @@ enabled: True: { state: gasFilterFOn } False: { state: gasFilterF } + - type: Construction + node: filterflipped + - type: PipeColorVisuals - type: NodeContainer nodes: @@ -138,7 +141,7 @@ - type: PipeColorVisuals - type: UserInterface interfaces: - - key: enum.GasMixerUiKey.Key + enum.GasMixerUiKey.Key: type: GasMixerBoundUserInterface - type: GasMixer enabled: false @@ -196,6 +199,8 @@ !type:PipeNode nodeGroupID: Pipe pipeDirection: North + - type: Construction + node: mixerflipped - type: entity parent: GasPipeBase diff --git a/Resources/Prototypes/Entities/Structures/Piping/Atmospherics/unary.yml b/Resources/Prototypes/Entities/Structures/Piping/Atmospherics/unary.yml index a7c2a06190..229271a2c5 100644 --- a/Resources/Prototypes/Entities/Structures/Piping/Atmospherics/unary.yml +++ b/Resources/Prototypes/Entities/Structures/Piping/Atmospherics/unary.yml @@ -242,8 +242,8 @@ - type: AtmosDevice - type: UserInterface interfaces: - - key: enum.ThermomachineUiKey.Key - type: GasThermomachineBoundUserInterface + enum.ThermomachineUiKey.Key: + type: GasThermomachineBoundUserInterface - type: ActivatableUI inHandsOnly: false key: enum.ThermomachineUiKey.Key @@ -460,7 +460,8 @@ solutions: tank: maxVol: 400 - canMix: true + - type: MixableSolution + solution: tank - type: DrainableSolution solution: tank - type: ExaminableSolution diff --git a/Resources/Prototypes/Entities/Structures/Piping/Disposal/pipes.yml b/Resources/Prototypes/Entities/Structures/Piping/Disposal/pipes.yml index 218b532efc..7aee589647 100644 --- a/Resources/Prototypes/Entities/Structures/Piping/Disposal/pipes.yml +++ b/Resources/Prototypes/Entities/Structures/Piping/Disposal/pipes.yml @@ -143,8 +143,8 @@ key: enum.DisposalTaggerUiKey.Key - type: UserInterface interfaces: - - key: enum.DisposalTaggerUiKey.Key - type: DisposalTaggerBoundUserInterface + enum.DisposalTaggerUiKey.Key: + type: DisposalTaggerBoundUserInterface - type: Construction graph: DisposalPipe node: tagger @@ -219,8 +219,8 @@ key: enum.DisposalRouterUiKey.Key - type: UserInterface interfaces: - - key: enum.DisposalRouterUiKey.Key - type: DisposalRouterBoundUserInterface + enum.DisposalRouterUiKey.Key: + type: DisposalRouterBoundUserInterface - type: Fixtures fixtures: fix1: @@ -271,6 +271,8 @@ bounds: "-0.25,-0.5,0.5,0.5" mask: - SubfloorMask + - type: Construction + node: routerflipped - type: entity id: DisposalJunction @@ -353,6 +355,8 @@ bounds: "-0.25,-0.5,0.5,0.5" mask: - SubfloorMask + - type: Construction + node: junctionflipped - type: entity id: DisposalYJunction @@ -489,3 +493,5 @@ pipe: Free: { state: signal-router-flipped-free } Anchored: { state: signal-router-flipped } + - type: Construction + node: signal_router_flipped diff --git a/Resources/Prototypes/Entities/Structures/Piping/Disposal/units.yml b/Resources/Prototypes/Entities/Structures/Piping/Disposal/units.yml index 6af72934e0..5ffc0067d3 100644 --- a/Resources/Prototypes/Entities/Structures/Piping/Disposal/units.yml +++ b/Resources/Prototypes/Entities/Structures/Piping/Disposal/units.yml @@ -56,8 +56,8 @@ - type: Appearance - type: UserInterface interfaces: - - key: enum.DisposalUnitUiKey.Key - type: DisposalUnitBoundUserInterface + enum.DisposalUnitUiKey.Key: + type: DisposalUnitBoundUserInterface - type: ContainerContainer containers: disposals: !type:Container @@ -77,10 +77,12 @@ graph: DisposalMachine node: disposal_unit - type: DisposalUnit + - type: ThrowInsertContainer + containerId: disposals - type: UserInterface interfaces: - - key: enum.DisposalUnitUiKey.Key - type: DisposalUnitBoundUserInterface + enum.DisposalUnitUiKey.Key: + type: DisposalUnitBoundUserInterface - type: RatKingRummageable - type: RequireProjectileTarget @@ -130,7 +132,7 @@ - type: Appearance - type: UserInterface interfaces: - - key: enum.MailingUnitUiKey.Key - type: DisposalUnitBoundUserInterface - - key: enum.ConfigurationUiKey.Key - type: ConfigurationBoundUserInterface + enum.MailingUnitUiKey.Key: + type: DisposalUnitBoundUserInterface + enum.ConfigurationUiKey.Key: + type: ConfigurationBoundUserInterface diff --git a/Resources/Prototypes/Entities/Structures/Power/Generation/PA/control_box.yml b/Resources/Prototypes/Entities/Structures/Power/Generation/PA/control_box.yml index ca0cebffec..96392ecd00 100644 --- a/Resources/Prototypes/Entities/Structures/Power/Generation/PA/control_box.yml +++ b/Resources/Prototypes/Entities/Structures/Power/Generation/PA/control_box.yml @@ -17,10 +17,10 @@ - type: ActivatableUIRequiresPower - type: UserInterface interfaces: - - key: enum.ParticleAcceleratorControlBoxUiKey.Key - type: ParticleAcceleratorBoundUserInterface - - key: enum.WiresUiKey.Key - type: WiresBoundUserInterface + enum.ParticleAcceleratorControlBoxUiKey.Key: + type: ParticleAcceleratorBoundUserInterface + enum.WiresUiKey.Key: + type: WiresBoundUserInterface - type: WiresPanel - type: Wires boardName: wires-board-name-pa diff --git a/Resources/Prototypes/Entities/Structures/Power/Generation/ame.yml b/Resources/Prototypes/Entities/Structures/Power/Generation/ame.yml index c88adca76d..4e4ef8bdbc 100644 --- a/Resources/Prototypes/Entities/Structures/Power/Generation/ame.yml +++ b/Resources/Prototypes/Entities/Structures/Power/Generation/ame.yml @@ -65,8 +65,8 @@ key: enum.AmeControllerUiKey.Key - type: UserInterface interfaces: - - key: enum.AmeControllerUiKey.Key - type: AmeControllerBoundUserInterface + enum.AmeControllerUiKey.Key: + type: AmeControllerBoundUserInterface - type: Appearance - type: GenericVisualizer visuals: diff --git a/Resources/Prototypes/Entities/Structures/Power/Generation/portable_generator.yml b/Resources/Prototypes/Entities/Structures/Power/Generation/portable_generator.yml index 4fa1bcbd91..41f336d405 100644 --- a/Resources/Prototypes/Entities/Structures/Power/Generation/portable_generator.yml +++ b/Resources/Prototypes/Entities/Structures/Power/Generation/portable_generator.yml @@ -44,7 +44,7 @@ - type: WiresPanel - type: UserInterface interfaces: - - key: enum.GeneratorComponentUiKey.Key + enum.GeneratorComponentUiKey.Key: type: PortableGeneratorBoundUserInterface - type: ActivatableUI key: enum.GeneratorComponentUiKey.Key @@ -171,6 +171,9 @@ materialWhiteList: [Plasma] - type: PortableGenerator startChance: 0.8 + - type: UpgradePowerSupplier + powerSupplyMultiplier: 1.25 + scaling: Exponential - type: GeneratorExhaustGas gasType: CarbonDioxide # 2 moles of gas for every sheet of plasma. @@ -228,6 +231,9 @@ storageLimit: 3000 materialWhiteList: [Uranium] - type: PortableGenerator + - type: UpgradePowerSupplier + powerSupplyMultiplier: 1.25 + scaling: Exponential - type: PowerMonitoringDevice group: Generator loadNodes: diff --git a/Resources/Prototypes/Entities/Structures/Power/apc.yml b/Resources/Prototypes/Entities/Structures/Power/apc.yml index d098b89e28..89f1a24c76 100644 --- a/Resources/Prototypes/Entities/Structures/Power/apc.yml +++ b/Resources/Prototypes/Entities/Structures/Power/apc.yml @@ -81,8 +81,8 @@ - type: ExtensionCableProvider - type: UserInterface interfaces: - - key: enum.ApcUiKey.Key - type: ApcBoundUserInterface + enum.ApcUiKey.Key: + type: ApcBoundUserInterface - type: ActivatableUI inHandsOnly: false singleUser: true diff --git a/Resources/Prototypes/Entities/Structures/Power/smes.yml b/Resources/Prototypes/Entities/Structures/Power/smes.yml index 1e3559e5a9..762e8d375f 100644 --- a/Resources/Prototypes/Entities/Structures/Power/smes.yml +++ b/Resources/Prototypes/Entities/Structures/Power/smes.yml @@ -29,10 +29,15 @@ state: "smes-op1" shader: unshaded - type: Smes + - type: UpgradeBattery + maxChargeMultiplier: 2 + baseMaxCharge: 8000000 + - type: UpgradePowerSupplyRamping + scaling: Linear + supplyRampingMultiplier: 1 - type: Appearance - type: Battery startingCharge: 0 - maxCharge: 8000000 - type: ExaminableBattery - type: NodeContainer examinable: true diff --git a/Resources/Prototypes/Entities/Structures/Power/substation.yml b/Resources/Prototypes/Entities/Structures/Power/substation.yml index 347b18ecae..489cfff659 100644 --- a/Resources/Prototypes/Entities/Structures/Power/substation.yml +++ b/Resources/Prototypes/Entities/Structures/Power/substation.yml @@ -17,8 +17,13 @@ shader: unshaded - state: full shader: unshaded + - type: UpgradeBattery + maxChargeMultiplier: 2 + baseMaxCharge: 2500000 + - type: UpgradePowerSupplyRamping + scaling: Linear + supplyRampingMultiplier: 1 - type: Battery - maxCharge: 2500000 startingCharge: 0 - type: ExaminableBattery - type: PointLight diff --git a/Resources/Prototypes/Entities/Structures/Shuttles/thrusters.yml b/Resources/Prototypes/Entities/Structures/Shuttles/thrusters.yml index f87be42659..eb299e3f3a 100644 --- a/Resources/Prototypes/Entities/Structures/Shuttles/thrusters.yml +++ b/Resources/Prototypes/Entities/Structures/Shuttles/thrusters.yml @@ -143,6 +143,7 @@ - type: Thruster thrusterType: Angular requireSpace: false + baseThrust: 2000 thrust: 2000 machinePartThrust: Manipulator - type: Sprite @@ -192,6 +193,9 @@ collection: MetalBreak - !type:ChangeConstructionNodeBehavior node: machineFrame + - type: UpgradePowerDraw + powerDrawMultiplier: 0.75 + scaling: Exponential - type: Damageable damageContainer: Inorganic damageModifierSet: Electronic @@ -216,6 +220,7 @@ - type: Thruster thrusterType: Angular requireSpace: false + baseThrust: 100 thrust: 100 - type: ApcPowerReceiver needsPower: false diff --git a/Resources/Prototypes/Entities/Structures/Specific/Anomaly/anomalies.yml b/Resources/Prototypes/Entities/Structures/Specific/Anomaly/anomalies.yml index 64e247144d..8294586048 100644 --- a/Resources/Prototypes/Entities/Structures/Specific/Anomaly/anomalies.yml +++ b/Resources/Prototypes/Entities/Structures/Specific/Anomaly/anomalies.yml @@ -782,7 +782,6 @@ - Desoxyephedrine - Ephedrine - THC - - THCOil - SpaceDrugs - Nocturine - MuteToxin diff --git a/Resources/Prototypes/Entities/Structures/Specific/Janitor/janicart.yml b/Resources/Prototypes/Entities/Structures/Specific/Janitor/janicart.yml index 2591b3f340..9fd05beaee 100644 --- a/Resources/Prototypes/Entities/Structures/Specific/Janitor/janicart.yml +++ b/Resources/Prototypes/Entities/Structures/Specific/Janitor/janicart.yml @@ -313,8 +313,8 @@ fillBaseName: cart_water- - type: UserInterface interfaces: - - key: enum.StorageUiKey.Key - type: StorageBoundUserInterface + enum.StorageUiKey.Key: + type: StorageBoundUserInterface - type: Drink solution: bucket - type: ContainerContainer diff --git a/Resources/Prototypes/Entities/Structures/Specific/bay12barbershop.yml b/Resources/Prototypes/Entities/Structures/Specific/bay12barbershop.yml index e66ae347d9..2b0f2a788a 100644 --- a/Resources/Prototypes/Entities/Structures/Specific/bay12barbershop.yml +++ b/Resources/Prototypes/Entities/Structures/Specific/bay12barbershop.yml @@ -10,7 +10,7 @@ - type: Anchorable - type: Rotatable - type: Sprite - sprite: Structures/Specific/barbershop.rsi + sprite: Structures/Specific/barberchair.rsi state: barberchair - type: entity diff --git a/Resources/Prototypes/Entities/Structures/Specific/oracle.yml b/Resources/Prototypes/Entities/Structures/Specific/oracle.yml index b60906b55e..3e2ed9508e 100644 --- a/Resources/Prototypes/Entities/Structures/Specific/oracle.yml +++ b/Resources/Prototypes/Entities/Structures/Specific/oracle.yml @@ -33,7 +33,6 @@ fountain: maxVol: 200 - type: Drink - isOpen: true solution: fountain - type: DrawableSolution solution: fountain @@ -59,14 +58,13 @@ rewardEntities: - OracleRewardDisks - OracleRewardCrystals - demandBlacklist: - tags: - - Bluespace - components: - - MobState - demandWhitelist: - components: - - Item + - type: LanguageSpeaker + currentLanguage: TauCetiBasic + - type: LanguageKnowledge + speaks: + - TauCetiBasic + understands: + - TauCetiBasic - type: weightedRandomEntity diff --git a/Resources/Prototypes/Entities/Structures/Storage/Canisters/gas_canisters.yml b/Resources/Prototypes/Entities/Structures/Storage/Canisters/gas_canisters.yml index d84b42f6e8..879aba0279 100644 --- a/Resources/Prototypes/Entities/Structures/Storage/Canisters/gas_canisters.yml +++ b/Resources/Prototypes/Entities/Structures/Storage/Canisters/gas_canisters.yml @@ -36,7 +36,7 @@ 3: { state: can-o3, shader: "unshaded" } - type: UserInterface interfaces: - - key: enum.GasCanisterUiKey.Key + enum.GasCanisterUiKey.Key: type: GasCanisterBoundUserInterface - type: Destructible thresholds: 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 783bec3ba0..7d7bc94bb3 100644 --- a/Resources/Prototypes/Entities/Structures/Storage/Closets/Lockers/base_structurelockers.yml +++ b/Resources/Prototypes/Entities/Structures/Storage/Closets/Lockers/base_structurelockers.yml @@ -45,7 +45,7 @@ min: 1 max: 2 - type: Construction - graph: ClosetSteel + graph: ClosetSteelSecure node: done containers: - entity_storage @@ -66,8 +66,3 @@ behaviors: - !type:DoActsBehavior acts: ["Destruction"] - - type: Construction - graph: ClosetSteelSecure - node: done - containers: - - entity_storage diff --git a/Resources/Prototypes/Entities/Structures/Storage/Crates/base_structurecrates.yml b/Resources/Prototypes/Entities/Structures/Storage/Crates/base_structurecrates.yml index 78c8c84d4c..01c226cb0f 100644 --- a/Resources/Prototypes/Entities/Structures/Storage/Crates/base_structurecrates.yml +++ b/Resources/Prototypes/Entities/Structures/Storage/Crates/base_structurecrates.yml @@ -34,7 +34,7 @@ bounds: "-0.4,-0.4,0.4,0.29" density: 50 mask: - - SmallMobMask #this is so they can go under plastic flaps + - CrateMask #this is so they can go under plastic flaps layer: - MachineLayer - type: EntityStorage diff --git a/Resources/Prototypes/Entities/Structures/Storage/Crates/crates.yml b/Resources/Prototypes/Entities/Structures/Storage/Crates/crates.yml index 1cf8083659..11c963ed22 100644 --- a/Resources/Prototypes/Entities/Structures/Storage/Crates/crates.yml +++ b/Resources/Prototypes/Entities/Structures/Storage/Crates/crates.yml @@ -356,7 +356,7 @@ bounds: "-0.4,-0.4,0.4,0.29" density: 135 mask: - - SmallMobMask #this is so they can go under plastic flaps + - CrateMask #this is so they can go under plastic flaps layer: - LargeMobLayer - type: Construction @@ -413,7 +413,7 @@ bounds: "-0.4,-0.4,0.4,0.29" density: 80 mask: - - LargeMobMask + - CrateMask layer: - LargeMobLayer - type: StaticPrice diff --git a/Resources/Prototypes/Entities/Structures/Storage/filing_cabinets.yml b/Resources/Prototypes/Entities/Structures/Storage/filing_cabinets.yml index d6becda9cc..cfda95fc2f 100644 --- a/Resources/Prototypes/Entities/Structures/Storage/filing_cabinets.yml +++ b/Resources/Prototypes/Entities/Structures/Storage/filing_cabinets.yml @@ -24,8 +24,8 @@ map: ["openLayer"] - type: UserInterface interfaces: - - key: enum.StorageUiKey.Key - type: StorageBoundUserInterface + enum.StorageUiKey.Key: + type: StorageBoundUserInterface - type: Transform noRot: true - type: Fixtures @@ -113,8 +113,8 @@ - type: Appearance - type: UserInterface interfaces: - - key: enum.StorageUiKey.Key - type: StorageBoundUserInterface + enum.StorageUiKey.Key: + type: StorageBoundUserInterface - type: Transform noRot: true - type: Fixtures diff --git a/Resources/Prototypes/Entities/Structures/Storage/glass_box.yml b/Resources/Prototypes/Entities/Structures/Storage/glass_box.yml index bdb02d2bc3..8177b6b6f0 100644 --- a/Resources/Prototypes/Entities/Structures/Storage/glass_box.yml +++ b/Resources/Prototypes/Entities/Structures/Storage/glass_box.yml @@ -1,97 +1,148 @@ - type: entity - id: GlassBoxLaser - name: glass box - description: A sturdy showcase for an expensive exhibit. + id: BaseGlassBox parent: BaseStructureDynamic + abstract: true placement: mode: SnapgridCenter components: - - type: Anchorable - delay: 4 - type: Transform anchored: true - - type: Damageable - damageContainer: Inorganic - damageModifierSet: Glass - - type: MeleeSound - soundGroups: - Brute: - collection: GlassSmash - type: Physics bodyType: Static - type: Clickable - type: InteractionOutline + - type: Fixtures + fixtures: + fix1: + shape: + !type:PhysShapeAabb + bounds: "-0.45,-0.45,0.45,0.45" + density: 1000 + mask: + - MachineMask + layer: + - MidImpassable + - LowImpassable + - type: ItemSlots + - type: ContainerContainer + containers: + ItemCabinet: !type:ContainerSlot + - type: Anchorable + delay: 4 + - type: Appearance + +- type: entity + id: GlassBox + name: glass box + description: A sturdy showcase for an expensive exhibit. + parent: BaseGlassBox + abstract: true # TODO: Temporarily abstract. Remove it after item scaling in cabinets is implemented. + components: - type: Sprite + noRot: true sprite: Structures/Storage/glassbox.rsi layers: - - state: glassbox - - state: caplaser + - state: base + - state: caplaser # TODO: Remove it after item scaling in cabinets is implemented. map: ["enum.ItemCabinetVisualLayers.ContainsItem"] visible: true - state: glass map: ["enum.ItemCabinetVisualLayers.Door"] - - type: ItemCabinet - cabinetSlot: - ejectOnInteract: true - whitelist: - tags: - - WeaponAntiqueLaser - doorSound: - path: /Audio/Machines/machine_switch.ogg - openState: glass-up - closedState: glass - - type: Lock + - state: locked + shader: unshaded + map: ["enum.LockVisualLayers.Lock"] + - type: Fixtures + fixtures: + fix1: + shape: + !type:PhysShapeAabb + bounds: "-0.45,-0.45,0.45,0.45" + density: 1000 + mask: + - MachineMask + layer: + - LowImpassable + - MidImpassable + - BulletImpassable - type: AccessReader - access: [["Captain"]] - - type: ItemSlots - - type: ContainerContainer - containers: - ItemCabinet: !type:ContainerSlot - type: Repairable - - type: Appearance + fuelCost: 15 + doAfterDelay: 5 + - type: Lock + - type: LockVisuals - type: DamageVisuals - thresholds: [4, 8, 12] + thresholds: [4, 8, 12] # TODO: Fix damage visuals on open state. damageDivisor: 7.555 trackAllDamage: true damageOverlay: sprite: Structures/Storage/glassbox.rsi + - type: Damageable + damageContainer: Inorganic + damageModifierSet: Glass + - type: MeleeSound + soundGroups: + Brute: + collection: GlassSmash - type: Destructible thresholds: - trigger: !type:DamageTrigger damage: 150 behaviors: - - !type:EmptyAllContainersBehaviour - - !type:PlaySoundBehavior - sound: - collection: WindowShatter - - !type:SpawnEntitiesBehavior - spawn: - ShardGlassReinforced: - min: 1 - max: 1 - GlassBoxLaserBroken: - min: 1 - max: 1 - - !type:DoActsBehavior - acts: [ "Destruction" ] + - !type:EmptyAllContainersBehaviour + - !type:PlaySoundBehavior + sound: + collection: WindowShatter + - !type:PlaySoundBehavior + sound: + path: /Audio/Machines/warning_buzzer.ogg + params: + volume: 10 + - !type:SpawnEntitiesBehavior + spawn: + ShardGlassReinforced: + min: 1 + max: 2 + - !type:ChangeConstructionNodeBehavior + node: brokenGlassBox + - !type:DoActsBehavior + acts: [ "Destruction" ] - type: entity - id: GlassBoxLaserOpen - parent: GlassBoxLaser - suffix: Open + id: GlassBoxLaser + parent: GlassBox + suffix: AntiqueLaser components: + - type: AccessReader + access: [["Captain"]] + - type: Construction + graph: GlassBox + node: glassBox - type: ItemCabinet - opened: true + cabinetSlot: + ejectOnInteract: true + whitelist: + tags: + - WeaponAntiqueLaser doorSound: path: /Audio/Machines/machine_switch.ogg openState: glass-up closedState: glass +- type: entity + id: GlassBoxLaserOpen + parent: GlassBoxLaser + suffix: AntiqueLaser, Open + components: + - type: Lock + locked: false + - type: ItemCabinet + opened: true + - type: entity id: GlassBoxLaserFilled parent: GlassBoxLaser - suffix: Filled + suffix: AntiqueLaser, Filled components: - type: ItemCabinet cabinetSlot: @@ -100,40 +151,83 @@ whitelist: tags: - WeaponAntiqueLaser - doorSound: - path: /Audio/Machines/machine_switch.ogg - openState: glass-up - closedState: glass - type: entity id: GlassBoxLaserFilledOpen parent: GlassBoxLaserFilled - suffix: Filled, Open + suffix: AntiqueLaser, Filled, Open components: + - type: Lock + locked: false - type: ItemCabinet opened: true - doorSound: - path: /Audio/Machines/machine_switch.ogg - openState: glass-up - closedState: glass - type: entity - id: GlassBoxLaserBroken + id: GlassBoxFrame + name: glass box frame + description: A glassless sturdy showcase for an expensive exhibit. + parent: BaseGlassBox + suffix: Frame + components: + - type: Sprite + noRot: true + sprite: Structures/Storage/glassbox.rsi + layers: + - state: base + - type: Construction + graph: GlassBox + node: boxMissingWires + - type: Climbable + - type: Damageable + damageModifierSet: Wood + - type: Destructible + thresholds: + - trigger: + !type:DamageTrigger + damage: 100 + behaviors: + - !type:PlaySoundBehavior + sound: + collection: WoodDestroy + - !type:SpawnEntitiesBehavior + spawn: + MaterialWoodPlank1: + min: 2 + max: 5 + - !type:DoActsBehavior + acts: ["Destruction"] + +- type: entity + id: GlassBoxBroken name: broken glass box description: A broken showcase for a stolen expensive exhibit. - parent: BaseStructureDynamic + parent: GlassBoxFrame suffix: Broken - placement: - mode: SnapgridCenter components: - - type: Transform - anchored: true - - type: Physics - bodyType: Static - type: Sprite sprite: Structures/Storage/glassbox.rsi layers: - - state: glassbox - - state: glass-4 - - type: Clickable - - type: InteractionOutline + - state: base + - state: glass-broken + - type: Construction + graph: GlassBox + node: brokenGlassBox + - type: Destructible + thresholds: + - trigger: + !type:DamageTrigger + damage: 100 + behaviors: + - !type:PlaySoundBehavior + sound: + collection: WoodDestroy + - !type:SpawnEntitiesBehavior + spawn: + ShardGlassReinforced: + min: 1 + max: 1 + MaterialWoodPlank1: + min: 2 + max: 5 + - !type:DoActsBehavior + acts: ["Destruction"] diff --git a/Resources/Prototypes/Entities/Structures/Storage/morgue.yml b/Resources/Prototypes/Entities/Structures/Storage/morgue.yml index 725f4c9b0f..496ea41611 100644 --- a/Resources/Prototypes/Entities/Structures/Storage/morgue.yml +++ b/Resources/Prototypes/Entities/Structures/Storage/morgue.yml @@ -5,6 +5,8 @@ placement: mode: SnapgridCenter components: + - type: Pullable + - type: Anchorable - type: Sprite sprite: Structures/Storage/morgue.rsi layers: @@ -28,11 +30,11 @@ shape: !type:PhysShapeAabb bounds: "-0.5,-0.5,0.5,0.5" - density: 190 + density: 1000 mask: - MachineMask layer: - - WallLayer + - HalfWallLayer - type: EntityStorage isCollidableWhenOpen: true showContents: false diff --git a/Resources/Prototypes/Entities/Structures/Storage/ore_box.yml b/Resources/Prototypes/Entities/Structures/Storage/ore_box.yml index 961d7854c0..b26bb2c954 100644 --- a/Resources/Prototypes/Entities/Structures/Storage/ore_box.yml +++ b/Resources/Prototypes/Entities/Structures/Storage/ore_box.yml @@ -60,8 +60,8 @@ - Ore - type: UserInterface interfaces: - - key: enum.StorageUiKey.Key - type: StorageBoundUserInterface + enum.StorageUiKey.Key: + type: StorageBoundUserInterface - type: ContainerContainer containers: storagebase: !type:Container diff --git a/Resources/Prototypes/Entities/Structures/Storage/storage.yml b/Resources/Prototypes/Entities/Structures/Storage/storage.yml index 79a1e35799..d0b468ca53 100644 --- a/Resources/Prototypes/Entities/Structures/Storage/storage.yml +++ b/Resources/Prototypes/Entities/Structures/Storage/storage.yml @@ -27,9 +27,9 @@ bounds: "-0.3,-0.3,0.3,0.3" density: 140 mask: - - MachineMask + - TableMask layer: - - MachineLayer + - TableLayer - type: Damageable damageContainer: Inorganic damageModifierSet: Metallic diff --git a/Resources/Prototypes/Entities/Structures/Wallmounts/Signs/signs.yml b/Resources/Prototypes/Entities/Structures/Wallmounts/Signs/signs.yml index ceb9f94b58..330aae8c0d 100644 --- a/Resources/Prototypes/Entities/Structures/Wallmounts/Signs/signs.yml +++ b/Resources/Prototypes/Entities/Structures/Wallmounts/Signs/signs.yml @@ -23,6 +23,7 @@ description: A direction sign, pointing out which way the bar is. components: - type: Sprite + sprite: _White/Structures/Wallmounts/signs.rsi #WWDP edit state: direction_bar - type: entity @@ -32,6 +33,7 @@ description: A direction sign, pointing out which way the Bridge is. components: - type: Sprite + sprite: _White/Structures/Wallmounts/signs.rsi #WWDP edit state: direction_bridge - type: entity @@ -41,6 +43,7 @@ description: A direction sign, pointing out which way the Brig is. components: - type: Sprite + sprite: _White/Structures/Wallmounts/signs.rsi #WWDP edit state: direction_brig - type: entity @@ -50,6 +53,7 @@ description: A direction sign, pointing out which way the Chapel is. components: - type: Sprite + sprite: _White/Structures/Wallmounts/signs.rsi #WWDP edit state: direction_chapel - type: entity @@ -59,6 +63,7 @@ description: A direction sign, pointing out which way the chemistry lab is. components: - type: Sprite + sprite: _White/Structures/Wallmounts/signs.rsi #WWDP edit state: direction_chemistry - type: entity @@ -68,6 +73,7 @@ description: A direction sign, pointing out the way to cryogenics. components: - type: Sprite + sprite: _White/Structures/Wallmounts/signs.rsi #WWDP edit state: direction_cryo - type: entity @@ -77,6 +83,7 @@ description: A direction sign, pointing out which way the Dorms are. components: - type: Sprite + sprite: _White/Structures/Wallmounts/signs.rsi #WWDP edit state: direction_dorms - type: entity @@ -86,6 +93,7 @@ description: A direction sign, pointing out which way the Engineering department is. components: - type: Sprite + sprite: _White/Structures/Wallmounts/signs.rsi #WWDP edit state: direction_eng - type: entity @@ -95,6 +103,7 @@ description: A direction sign, pointing out which way evac is. components: - type: Sprite + sprite: _White/Structures/Wallmounts/signs.rsi #WWDP edit state: direction_evac - type: entity @@ -104,6 +113,7 @@ description: A direction sign, pointing out which way the examination room(s) are. components: - type: Sprite + sprite: _White/Structures/Wallmounts/signs.rsi #WWDP edit state: direction_exam - type: entity @@ -113,6 +123,7 @@ description: A direction sign, pointing out which way the kitchen is. components: - type: Sprite + sprite: _White/Structures/Wallmounts/signs.rsi #WWDP edit state: direction_food - type: entity @@ -122,6 +133,7 @@ description: A direction sign, pointing out which way the gravity generator is. components: - type: Sprite + sprite: _White/Structures/Wallmounts/signs.rsi #WWDP edit state: direction_gravity - type: entity @@ -131,6 +143,7 @@ description: A direction sign, pointing out which way Head of Personnel's office is. components: - type: Sprite + sprite: _White/Structures/Wallmounts/signs.rsi #WWDP edit state: direction_hop - type: entity @@ -140,6 +153,7 @@ description: A direction sign, pointing out which way hydroponics is. components: - type: Sprite + sprite: _White/Structures/Wallmounts/signs.rsi #WWDP edit state: direction_hydro - type: entity @@ -149,6 +163,7 @@ description: A direction sign, pointing out which way the ICU is. components: - type: Sprite + sprite: _White/Structures/Wallmounts/signs.rsi #WWDP edit state: direction_icu - type: entity @@ -158,6 +173,7 @@ description: A direction sign, pointing out which way the janitor's closet is. components: - type: Sprite + sprite: _White/Structures/Wallmounts/signs.rsi #WWDP edit state: direction_janitor - type: entity @@ -167,6 +183,7 @@ description: A direction sign, pointing out which way the library is. components: - type: Sprite + sprite: _White/Structures/Wallmounts/signs.rsi #WWDP edit state: direction_library - type: entity @@ -176,6 +193,7 @@ description: A direction sign, pointing out which way the Medical department is. components: - type: Sprite + sprite: _White/Structures/Wallmounts/signs.rsi #WWDP edit state: direction_med - type: entity @@ -185,6 +203,7 @@ description: A direction sign, pointing out which way the Salvage department is. components: - type: Sprite + sprite: _White/Structures/Wallmounts/signs.rsi #WWDP edit state: direction_salvage - type: entity @@ -194,8 +213,8 @@ description: A direction sign, pointing out which way the Epistemics department is. # DeltaV - Epistemics Department replacing Science components: - type: Sprite - sprite: Nyanotrasen/Structures/Wallmounts/signs.rsi # DeltaV - Epistemics Department replacing Science - state: direction_epi # DeltaV - Epistemics Department replacing Science + sprite: _White/Structures/Wallmounts/signs.rsi #WWDP edit + state: direction_sci - type: entity parent: BaseSignDirectional @@ -204,6 +223,7 @@ description: A direction sign, pointing out which way Security is. components: - type: Sprite + sprite: _White/Structures/Wallmounts/signs.rsi #WWDP edit state: direction_sec - type: entity @@ -213,6 +233,7 @@ description: A direction sign, pointing out which way solars are. components: - type: Sprite + sprite: _White/Structures/Wallmounts/signs.rsi #WWDP edit state: direction_solar - type: entity @@ -222,6 +243,7 @@ description: A direction sign, pointing to some supplies. components: - type: Sprite + sprite: _White/Structures/Wallmounts/signs.rsi #WWDP edit state: direction_supply - type: entity @@ -231,6 +253,7 @@ description: A direction sign, pointing to the way to a washroom. components: - type: Sprite + sprite: _White/Structures/Wallmounts/signs.rsi #WWDP edit state: direction_wash # Regular Signs @@ -242,8 +265,29 @@ description: A sign, indicating an AI is present. components: - type: Sprite + sprite: _White/Structures/Wallmounts/signs.rsi #WWDP edit state: ai +- type: entity #WWDP edit + parent: BaseSign + id: SignAME + name: AME sign + description: A sign indicating the AME. + components: + - type: Sprite + sprite: _White/Structures/Wallmounts/signs.rsi + state: ame + +- type: entity #WWDP edit + parent: BaseSign + id: SignArrivals + name: arrivals sign + description: A sign indicating the arrivals. + components: + - type: Sprite + sprite: _White/Structures/Wallmounts/signs.rsi + state: arrivals + - type: entity parent: BaseSign id: SignArcade @@ -251,6 +295,7 @@ description: A sign indicating the arcade. components: - type: Sprite + sprite: _White/Structures/Wallmounts/signs.rsi #WWDP edit state: arcade - type: entity @@ -260,6 +305,7 @@ description: A sign indicating the armory. components: - type: Sprite + sprite: _White/Structures/Wallmounts/signs.rsi #WWDP edit state: armory - type: entity @@ -269,6 +315,7 @@ description: A sign indicating the tool storage room. components: - type: Sprite + sprite: _White/Structures/Wallmounts/signs.rsi #WWDP edit state: ass - type: entity @@ -278,6 +325,7 @@ description: A sign indicating the xenoarchaeology lab. components: - type: Sprite + sprite: _White/Structures/Wallmounts/signs.rsi #WWDP edit state: anomaly - type: entity @@ -287,6 +335,7 @@ description: A sign indicating the anomalous research lab. components: - type: Sprite + sprite: _White/Structures/Wallmounts/signs.rsi #WWDP edit state: anomaly2 - type: entity @@ -296,6 +345,7 @@ description: A sign indicating the atmospherics area. components: - type: Sprite + sprite: _White/Structures/Wallmounts/signs.rsi #WWDP edit state: atmos - type: entity @@ -314,6 +364,7 @@ description: A sign indicating the bar. components: - type: Sprite + sprite: _White/Structures/Wallmounts/signs.rsi #WWDP edit state: bar - type: entity @@ -323,8 +374,29 @@ description: A sign indicating the barbershop. components: - type: Sprite + sprite: _White/Structures/Wallmounts/signs.rsi #WWDP edit state: barbershop +- type: entity #WWDP edit + parent: BaseSign + id: SignBoxing + name: boxing sign + description: A sign indicating the boxing. + components: + - type: Sprite + sprite: _White/Structures/Wallmounts/signs.rsi + state: boxing + +- type: entity #WWDP edit + parent: BaseSign + id: SignBrig + name: brig sign + description: A sign indicating the brig. + components: + - type: Sprite + sprite: _White/Structures/Wallmounts/signs.rsi + state: brig + - type: entity parent: BaseSign id: SignBio @@ -350,6 +422,7 @@ description: A sign indicating the bridge. components: - type: Sprite + sprite: _White/Structures/Wallmounts/signs.rsi #WWDP edit state: bridge - type: entity @@ -359,15 +432,27 @@ description: A sign warning the viewer about pressurised canisters. components: - type: Sprite + sprite: _White/Structures/Wallmounts/signs.rsi #WWDP edit state: canisters +- type: entity #WWDP edit + parent: BaseSign + id: SignCaptain + name: captain sign + description: A sign indicating the captain office. + components: + - type: Sprite + sprite: _White/Structures/Wallmounts/signs.rsi + state: captain + - type: entity parent: BaseSign id: SignCargo - name: logistics sign # DeltaV - Logistics Department replacing Cargo - description: A sign indicating the logistics area. # DeltaV - Logistics Department replacing Cargo + name: cargo sign + description: A sign indicating the cargo area. components: - type: Sprite + sprite: _White/Structures/Wallmounts/signs.rsi #WWDP edit state: cargo - type: entity @@ -377,6 +462,7 @@ description: A sign indicating a cargo dock. components: - type: Sprite + sprite: _White/Structures/Wallmounts/signs.rsi #WWDP edit state: cargo_dock - type: entity @@ -386,6 +472,7 @@ description: A sign indicating the chapel. components: - type: Sprite + sprite: _White/Structures/Wallmounts/signs.rsi #WWDP edit state: chapel - type: entity @@ -395,6 +482,7 @@ description: A sign indicating the chemistry lab. components: - type: Sprite + sprite: _White/Structures/Wallmounts/signs.rsi #WWDP edit state: chem - type: entity @@ -422,6 +510,7 @@ description: A sign indicating the cloning lab. components: - type: Sprite + sprite: _White/Structures/Wallmounts/signs.rsi #WWDP edit state: cloning - type: entity @@ -431,6 +520,7 @@ description: A sign indicating the conference room. components: - type: Sprite + sprite: _White/Structures/Wallmounts/signs.rsi #WWDP edit state: conference_room - type: entity @@ -440,8 +530,19 @@ description: A sign labelling the courtroom. components: - type: Sprite + sprite: _White/Structures/Wallmounts/signs.rsi #WWDP edit state: court +- type: entity #WWDP edit + parent: BaseSign + id: SignCryo + name: cryogenics sign + description: A sign indicating the cryogenics. + components: + - type: Sprite + sprite: _White/Structures/Wallmounts/signs.rsi + state: cryo + - type: entity parent: BaseSign id: SignDisposalSpace @@ -449,6 +550,7 @@ description: A sign indicating a disposal area. components: - type: Sprite + sprite: _White/Structures/Wallmounts/signs.rsi #WWDP edit state: deathsposal - type: entity @@ -458,8 +560,19 @@ description: A sign indicating doors. components: - type: Sprite + sprite: _White/Structures/Wallmounts/signs.rsi #WWDP edit state: doors +- type: entity #WWDP edit + parent: BaseSign + id: SignDorms + name: dorms sign + description: A sign indicating the dorms. + components: + - type: Sprite + sprite: _White/Structures/Wallmounts/signs.rsi + state: dorms + - type: entity parent: BaseSign id: SignDrones @@ -467,6 +580,7 @@ description: A sign indicating drones. components: - type: Sprite + sprite: _White/Structures/Wallmounts/signs.rsi #WWDP edit state: drones - type: entity @@ -476,8 +590,19 @@ description: A sign indicating the engine room. components: - type: Sprite + sprite: _White/Structures/Wallmounts/signs.rsi #WWDP edit state: engine +- type: entity #WWDP edit + parent: BaseSign + id: SignEquip + name: equipment sign + description: A sign indicating the equipment. + components: + - type: Sprite + sprite: _White/Structures/Wallmounts/signs.rsi + state: equip + - type: entity parent: BaseSign id: SignEngineering @@ -485,6 +610,7 @@ description: A sign indicating the engineering area. components: - type: Sprite + sprite: _White/Structures/Wallmounts/signs.rsi #WWDP edit state: eng - type: entity @@ -494,9 +620,8 @@ description: A sign indicating the escape pods. components: - type: Sprite - sprite: Nyanotrasen/Structures/Wallmounts/signs.rsi # Nyanotrasen - Give pods sign directional sprites + sprite: _White/Structures/Wallmounts/signs.rsi #WWDP edit state: pods - snapCardinals: false - type: entity parent: BaseSign @@ -505,8 +630,19 @@ description: A sign indicating an EVA area. EVA equipment may be required beyond this point. components: - type: Sprite + sprite: _White/Structures/Wallmounts/signs.rsi #WWDP edit state: eva +- type: entity #WWDP edit + parent: BaseSign + id: SignEvac + name: evacuation sign + description: A sign indicating the evacuation. + components: + - type: Sprite + sprite: _White/Structures/Wallmounts/signs.rsi + state: evac + - type: entity parent: BaseSign id: SignElectrical @@ -523,6 +659,7 @@ description: A sign indicating a medical examination room. components: - type: Sprite + sprite: _White/Structures/Wallmounts/signs.rsi #WWDP edit state: examroom - type: entity @@ -541,8 +678,29 @@ description: A sign indicating the gravity generator. components: - type: Sprite + sprite: _White/Structures/Wallmounts/signs.rsi #WWDP edit state: gravi +- type: entity #WWDP edit + parent: BaseSign + id: SignGate + name: gate sign + description: A sign indicating the gate. + components: + - type: Sprite + sprite: _White/Structures/Wallmounts/signs.rsi + state: gate + +- type: entity #WWDP edit + parent: BaseSign + id: SignGenetics + name: genetics sign + description: A sign indicating the genetics. + components: + - type: Sprite + sprite: _White/Structures/Wallmounts/signs.rsi + state: genetics + - type: entity parent: BaseSign id: SignHead @@ -550,6 +708,7 @@ description: A sign with a hat on it. components: - type: Sprite + sprite: _White/Structures/Wallmounts/signs.rsi #WWDP edit state: commander - type: entity @@ -579,6 +738,26 @@ - type: Sprite state: hydro3 +- type: entity #WWDP edit + parent: BaseSign + id: SignHydro + name: hydroponics sign + description: A sign indicating the hydroponics area. + components: + - type: Sprite + sprite: _White/Structures/Wallmounts/signs.rsi + state: hydro + +- type: entity #WWDP edit + parent: BaseSign + id: SignHOP + name: HOP sign + description: A sign indicating the HOP office. + components: + - type: Sprite + sprite: _White/Structures/Wallmounts/signs.rsi + state: hop + - type: entity parent: BaseSign id: SignInterrogation @@ -586,6 +765,7 @@ description: A sign indicating an interrogation room. components: - type: Sprite + sprite: _White/Structures/Wallmounts/signs.rsi #WWDP edit state: interrogation - type: entity @@ -595,8 +775,29 @@ description: A sign labelling an area where the janitor works. components: - type: Sprite + sprite: _White/Structures/Wallmounts/signs.rsi #WWDP edit state: janitor +- type: entity #WWDP edit + parent: BaseSign + id: SignKitchen + name: kitchen sign + description: A sign indicating the kitchen. + components: + - type: Sprite + sprite: _White/Structures/Wallmounts/signs.rsi + state: kitchen + +- type: entity #WWDP edit + parent: BaseSign + id: SignCheckpoint + name: checkpoint sign + description: A sign indicating the checkpoint. + components: + - type: Sprite + sprite: _White/Structures/Wallmounts/signs.rsi + state: check + - type: entity parent: BaseSign id: SignLaundromat @@ -604,6 +805,7 @@ description: A sign indicating the laundromat. components: - type: Sprite + sprite: _White/Structures/Wallmounts/signs.rsi #WWDP edit state: laundromat - type: entity @@ -613,6 +815,7 @@ description: A sign labelling an area where the Lawyers work. components: - type: Sprite + sprite: _White/Structures/Wallmounts/signs.rsi #WWDP edit state: law - type: entity @@ -622,6 +825,7 @@ description: A sign indicating the library. components: - type: Sprite + sprite: _White/Structures/Wallmounts/signs.rsi #WWDP edit state: biblio - type: entity @@ -631,6 +835,7 @@ description: A sign indicating mail. components: - type: Sprite + sprite: _White/Structures/Wallmounts/signs.rsi #WWDP edit state: mail - type: entity @@ -640,6 +845,7 @@ description: A sign indicating the medical bay. components: - type: Sprite + sprite: _White/Structures/Wallmounts/signs.rsi #WWDP edit state: medbay - type: entity @@ -649,6 +855,7 @@ description: A sign indicating the miner dock. components: - type: Sprite + sprite: _White/Structures/Wallmounts/signs.rsi #WWDP edit state: miner_dock - type: entity @@ -658,6 +865,7 @@ description: A sign indicating the morgue. components: - type: Sprite + sprite: _White/Structures/Wallmounts/signs.rsi #WWDP edit state: morgue - type: entity @@ -667,8 +875,19 @@ description: A sign indicating where the Reporter works. components: - type: Sprite + sprite: _White/Structures/Wallmounts/signs.rsi #WWDP edit state: news +- type: entity #WWDP edit + parent: BaseSign + id: SignNukeVault + name: nuclear vault sign + description: A sign indicating the nuclear. + components: + - type: Sprite + sprite: _White/Structures/Wallmounts/signs.rsi + state: nukevault + - type: entity parent: BaseSign id: SignNosmoking @@ -685,8 +904,29 @@ description: A sign indicating the prison. components: - type: Sprite + sprite: _White/Structures/Wallmounts/signs.rsi #WWDP edit state: prison +- type: entity #WWDP edit + parent: BaseSign + id: SignPA + name: PA sign + description: A sign indicating the PA. + components: + - type: Sprite + sprite: _White/Structures/Wallmounts/signs.rsi + state: pa + +- type: entity #WWDP edit + parent: BaseSign + id: SignSMES + name: SMES sign + description: A sign indicating the SMES room. + components: + - type: Sprite + sprite: _White/Structures/Wallmounts/signs.rsi + state: smes + - type: entity parent: BaseSign id: SignPsychology @@ -694,6 +934,7 @@ description: A sign labelling an area where the Psychologist works. components: - type: Sprite + sprite: _White/Structures/Wallmounts/signs.rsi #WWDP edit state: psychology - type: entity @@ -703,6 +944,7 @@ description: A sign indicating the reception. components: - type: Sprite + sprite: _White/Structures/Wallmounts/signs.rsi #WWDP edit state: reception - type: entity @@ -712,6 +954,7 @@ description: A sign indicating the research and development lab. components: - type: Sprite + sprite: _White/Structures/Wallmounts/signs.rsi #WWDP edit state: rnd - type: entity @@ -721,6 +964,7 @@ description: A sign indicating the robotics lab. components: - type: Sprite + sprite: _White/Structures/Wallmounts/signs.rsi #WWDP edit state: robo - type: entity @@ -730,6 +974,7 @@ description: A sign indicating the salvage area. components: - type: Sprite + sprite: _White/Structures/Wallmounts/signs.rsi #WWDP edit state: salvage - type: entity @@ -739,6 +984,7 @@ description: A sign indicating the science area. components: - type: Sprite + sprite: _White/Structures/Wallmounts/signs.rsi #WWDP edit state: sci - type: entity @@ -766,6 +1012,7 @@ description: A sign with a shield. components: - type: Sprite + sprite: _White/Structures/Wallmounts/signs.rsi #WWDP edit state: shield - type: entity @@ -775,6 +1022,7 @@ description: A sign indicating the ship docking area. components: - type: Sprite + sprite: _White/Structures/Wallmounts/signs.rsi #WWDP edit state: dock - type: entity @@ -784,9 +1032,8 @@ description: A sign warning that the area ahead is nothing but cold, empty space. components: - type: Sprite - sprite: Nyanotrasen/Structures/Wallmounts/signs.rsi # Nyanotrasen - Give space sign directional sprites + sprite: _White/Structures/Wallmounts/signs.rsi #WWDP edit state: space - snapCardinals: false - type: entity parent: BaseSign @@ -795,8 +1042,29 @@ description: A sign indicating the operating theater. components: - type: Sprite + sprite: _White/Structures/Wallmounts/signs.rsi #WWDP edit state: surgery +- type: entity #WWDP edit + parent: BaseSign + id: SignSolar + name: solar pannels sign + description: A sign indicating the solar pannels. + components: + - type: Sprite + sprite: _White/Structures/Wallmounts/signs.rsi + state: solar + +- type: entity #WWDP edit + parent: BaseSign + id: SignStorage + name: storage sign + description: A sign indicating the storage. + components: + - type: Sprite + sprite: _White/Structures/Wallmounts/signs.rsi + state: storage + - type: entity parent: BaseSign id: SignTelecomms @@ -804,8 +1072,29 @@ description: A sign indicating the telecommunications room. components: - type: Sprite + sprite: _White/Structures/Wallmounts/signs.rsi #WWDP edit state: telecoms +- type: entity #WWDP edit + parent: BaseSign + id: SignTheatre + name: theatre sign + description: A sign indicating the theatre. + components: + - type: Sprite + sprite: _White/Structures/Wallmounts/signs.rsi + state: theatre + +- type: entity #WWDP edit + parent: BaseSign + id: SignToilet + name: toilet sign + description: A sign indicating the toilet. + components: + - type: Sprite + sprite: _White/Structures/Wallmounts/signs.rsi + state: toilet + - type: entity parent: BaseSign id: SignToxins @@ -813,6 +1102,7 @@ description: A sign indicating the toxin lab. components: - type: Sprite + sprite: _White/Structures/Wallmounts/signs.rsi #WWDP edit state: toxins - type: entity @@ -822,6 +1112,7 @@ description: A sign indicating the toxin lab. components: - type: Sprite + sprite: _White/Structures/Wallmounts/signs.rsi #WWDP edit state: toxins2 - type: entity @@ -831,6 +1122,7 @@ description: A sign indicating the virology lab. components: - type: Sprite + sprite: _White/Structures/Wallmounts/signs.rsi #WWDP edit state: virology - type: entity @@ -985,6 +1277,7 @@ description: A sign indicating the xenobiology lab. components: - type: Sprite + sprite: _White/Structures/Wallmounts/signs.rsi #WWDP edit state: xenolab - type: entity @@ -994,6 +1287,7 @@ description: A sign indicating the zombie lab. components: - type: Sprite + sprite: _White/Structures/Wallmounts/signs.rsi #WWDP edit state: zomlab - type: entity @@ -1232,6 +1526,7 @@ description: A sign depicting the security insignia. components: - type: Sprite + sprite: _White/Structures/Wallmounts/signs.rsi #WWDP edit state: security - type: entity diff --git a/Resources/Prototypes/Entities/Structures/Wallmounts/air_alarm.yml b/Resources/Prototypes/Entities/Structures/Wallmounts/air_alarm.yml index 62f2000593..6090aae882 100644 --- a/Resources/Prototypes/Entities/Structures/Wallmounts/air_alarm.yml +++ b/Resources/Prototypes/Entities/Structures/Wallmounts/air_alarm.yml @@ -53,14 +53,16 @@ - AirAlarm - type: AtmosDevice - type: AirAlarm + - type: AtmosAlertsDevice + group: AirAlarm - type: Clickable - type: InteractionOutline - type: UserInterface interfaces: - - key: enum.SharedAirAlarmInterfaceKey.Key - type: AirAlarmBoundUserInterface - - key: enum.WiresUiKey.Key - type: WiresBoundUserInterface + enum.SharedAirAlarmInterfaceKey.Key: + type: AirAlarmBoundUserInterface + enum.WiresUiKey.Key: + type: WiresBoundUserInterface - type: WiresPanel - type: Wires boardName: wires-board-name-airalarm diff --git a/Resources/Prototypes/Entities/Structures/Wallmounts/fire_alarm.yml b/Resources/Prototypes/Entities/Structures/Wallmounts/fire_alarm.yml index 05988fbc21..c27b0ff27e 100644 --- a/Resources/Prototypes/Entities/Structures/Wallmounts/fire_alarm.yml +++ b/Resources/Prototypes/Entities/Structures/Wallmounts/fire_alarm.yml @@ -42,6 +42,8 @@ - type: Clickable - type: InteractionOutline - type: FireAlarm + - type: AtmosAlertsDevice + group: FireAlarm - type: ContainerFill containers: board: [ FireAlarmElectronics ] @@ -60,8 +62,8 @@ delta: fire_3 - type: UserInterface interfaces: - - key: enum.WiresUiKey.Key - type: WiresBoundUserInterface + enum.WiresUiKey.Key: + type: WiresBoundUserInterface - type: WiresPanel - type: Wires boardName: wires-board-name-firealarm diff --git a/Resources/Prototypes/Entities/Structures/Wallmounts/intercom.yml b/Resources/Prototypes/Entities/Structures/Wallmounts/intercom.yml index 6bccf14e13..e31152a5b6 100644 --- a/Resources/Prototypes/Entities/Structures/Wallmounts/intercom.yml +++ b/Resources/Prototypes/Entities/Structures/Wallmounts/intercom.yml @@ -63,9 +63,9 @@ key: enum.IntercomUiKey.Key - type: UserInterface interfaces: - - key: enum.IntercomUiKey.Key + enum.IntercomUiKey.Key: type: IntercomBoundUserInterface - - key: enum.WiresUiKey.Key + enum.WiresUiKey.Key: type: WiresBoundUserInterface - type: Construction graph: Intercom diff --git a/Resources/Prototypes/Entities/Structures/Wallmounts/mirror.yml b/Resources/Prototypes/Entities/Structures/Wallmounts/mirror.yml index b524f099bf..d02bce020d 100644 --- a/Resources/Prototypes/Entities/Structures/Wallmounts/mirror.yml +++ b/Resources/Prototypes/Entities/Structures/Wallmounts/mirror.yml @@ -16,5 +16,5 @@ key: enum.MagicMirrorUiKey.Key - type: UserInterface interfaces: - - key: enum.MagicMirrorUiKey.Key - type: MagicMirrorBoundUserInterface + enum.MagicMirrorUiKey.Key: + type: MagicMirrorBoundUserInterface diff --git a/Resources/Prototypes/Entities/Structures/Wallmounts/monitors_televisions.yml b/Resources/Prototypes/Entities/Structures/Wallmounts/monitors_televisions.yml index 820fb76fe6..7bdfe0dbfa 100644 --- a/Resources/Prototypes/Entities/Structures/Wallmounts/monitors_televisions.yml +++ b/Resources/Prototypes/Entities/Structures/Wallmounts/monitors_televisions.yml @@ -112,8 +112,8 @@ - type: ActivatableUIRequiresPower - type: UserInterface interfaces: - - key: enum.SurveillanceCameraMonitorUiKey.Key - type: SurveillanceCameraMonitorBoundUserInterface + enum.SurveillanceCameraMonitorUiKey.Key: + type: SurveillanceCameraMonitorBoundUserInterface # Wall Televisions @@ -183,8 +183,8 @@ - type: ActivatableUIRequiresPower - type: UserInterface interfaces: - - key: enum.SurveillanceCameraMonitorUiKey.Key - type: SurveillanceCameraMonitorBoundUserInterface + enum.SurveillanceCameraMonitorUiKey.Key: + type: SurveillanceCameraMonitorBoundUserInterface - type: PointLight radius: 1.5 energy: 1.6 diff --git a/Resources/Prototypes/Entities/Structures/Wallmounts/noticeboard.yml b/Resources/Prototypes/Entities/Structures/Wallmounts/noticeboard.yml index 421ab93be9..f2315583e3 100644 --- a/Resources/Prototypes/Entities/Structures/Wallmounts/noticeboard.yml +++ b/Resources/Prototypes/Entities/Structures/Wallmounts/noticeboard.yml @@ -50,8 +50,8 @@ - Write - type: UserInterface interfaces: - - key: enum.StorageUiKey.Key - type: StorageBoundUserInterface + enum.StorageUiKey.Key: + type: StorageBoundUserInterface - type: ContainerContainer containers: storagebase: !type:Container diff --git a/Resources/Prototypes/Entities/Structures/Wallmounts/station_map.yml b/Resources/Prototypes/Entities/Structures/Wallmounts/station_map.yml index d1df619b7a..2ae5040910 100644 --- a/Resources/Prototypes/Entities/Structures/Wallmounts/station_map.yml +++ b/Resources/Prototypes/Entities/Structures/Wallmounts/station_map.yml @@ -86,7 +86,7 @@ acts: [ "Destruction" ] - type: UserInterface interfaces: - - key: enum.StationMapUiKey.Key + enum.StationMapUiKey.Key: type: StationMapBoundUserInterface - type: entity diff --git a/Resources/Prototypes/Entities/Structures/Wallmounts/surveillance_camera.yml b/Resources/Prototypes/Entities/Structures/Wallmounts/surveillance_camera.yml index 6e56bb855f..3347b0e4b1 100644 --- a/Resources/Prototypes/Entities/Structures/Wallmounts/surveillance_camera.yml +++ b/Resources/Prototypes/Entities/Structures/Wallmounts/surveillance_camera.yml @@ -42,9 +42,9 @@ InUse: camera_in_use - type: UserInterface interfaces: - - key: enum.SurveillanceCameraSetupUiKey.Camera + enum.SurveillanceCameraSetupUiKey.Camera: type: SurveillanceCameraSetupBoundUi - - key: enum.WiresUiKey.Key + enum.WiresUiKey.Key: type: WiresBoundUserInterface - type: StaticPrice price: 200 diff --git a/Resources/Prototypes/Entities/Structures/Wallmounts/timer.yml b/Resources/Prototypes/Entities/Structures/Wallmounts/timer.yml index 0c284eec7a..dd7eb5bea8 100644 --- a/Resources/Prototypes/Entities/Structures/Wallmounts/timer.yml +++ b/Resources/Prototypes/Entities/Structures/Wallmounts/timer.yml @@ -32,8 +32,8 @@ key: enum.SignalTimerUiKey.Key - type: UserInterface interfaces: - - key: enum.SignalTimerUiKey.Key - type: SignalTimerBoundUserInterface + enum.SignalTimerUiKey.Key: + type: SignalTimerBoundUserInterface - type: ApcPowerReceiver powerLoad: 100 - type: Electrified diff --git a/Resources/Prototypes/Entities/Structures/Walls/asteroid.yml b/Resources/Prototypes/Entities/Structures/Walls/asteroid.yml index a8cb0b1cb8..0728d2a911 100644 --- a/Resources/Prototypes/Entities/Structures/Walls/asteroid.yml +++ b/Resources/Prototypes/Entities/Structures/Walls/asteroid.yml @@ -295,6 +295,50 @@ state: rock_asteroid_west - state: rock_artifact_fragment +- type: entity + id: AsteroidRockBluespace + parent: AsteroidRock + description: A rock wall. What's that sticking out of it? + suffix: Bluespace + components: + - type: OreVein + oreChance: 1.0 + currentOre: OreBluespace + - type: Sprite + layers: + - state: rock_asteroid + - map: [ "enum.EdgeLayer.South" ] + state: rock_asteroid_south + - map: [ "enum.EdgeLayer.East" ] + state: rock_asteroid_east + - map: [ "enum.EdgeLayer.North" ] + state: rock_asteroid_north + - map: [ "enum.EdgeLayer.West" ] + state: rock_asteroid_west + - state: rock_bluespace + +- type: entity + id: AsteroidRockNormality + parent: AsteroidRock + description: A rock wall. What's that sticking out of it? + suffix: Normality + components: + - type: OreVein + oreChance: 1.0 + currentOre: OreNormality + - type: Sprite + layers: + - state: rock_asteroid + - map: [ "enum.EdgeLayer.South" ] + state: rock_asteroid_south + - map: [ "enum.EdgeLayer.East" ] + state: rock_asteroid_east + - map: [ "enum.EdgeLayer.North" ] + state: rock_asteroid_north + - map: [ "enum.EdgeLayer.West" ] + state: rock_asteroid_west + - state: rock_bluespace + - type: entity id: AsteroidRockMining parent: AsteroidRock @@ -632,6 +676,50 @@ state: rock_west - state: rock_salt +- type: entity + id: WallRockBluespace + parent: WallRock + description: A rock wall. What's that sticking out of it? + suffix: Bluespace + components: + - type: OreVein + oreChance: 1.0 + currentOre: OreBluespace + - type: Sprite + layers: + - state: rock + - map: [ "enum.EdgeLayer.South" ] + state: rock_south + - map: [ "enum.EdgeLayer.East" ] + state: rock_east + - map: [ "enum.EdgeLayer.North" ] + state: rock_north + - map: [ "enum.EdgeLayer.West" ] + state: rock_west + - state: rock_bluespace + +- type: entity + id: WallRockNormality + parent: WallRock + description: A rock wall. What's that sticking out of it? + suffix: Normality + components: + - type: OreVein + oreChance: 1.0 + currentOre: OreNormality + - type: Sprite + layers: + - state: rock + - map: [ "enum.EdgeLayer.South" ] + state: rock_south + - map: [ "enum.EdgeLayer.East" ] + state: rock_east + - map: [ "enum.EdgeLayer.North" ] + state: rock_north + - map: [ "enum.EdgeLayer.West" ] + state: rock_west + - state: rock_bluespace + # Basalt variants - type: entity id: WallRockBasalt @@ -875,6 +963,50 @@ state: rock_wall_west - state: rock_salt +- type: entity + id: WallRockBasaltBluespace + parent: WallRockBluespace + description: A rock wall. What's that sticking out of it? + suffix: Bluespace + components: + - type: OreVein + oreChance: 1.0 + currentOre: OreBluespace + - type: Sprite + layers: + - state: rock_wall + - map: [ "enum.EdgeLayer.South" ] + state: rock_wall_south + - map: [ "enum.EdgeLayer.East" ] + state: rock_wall_east + - map: [ "enum.EdgeLayer.North" ] + state: rock_wall_north + - map: [ "enum.EdgeLayer.West" ] + state: rock_wall_west + - state: rock_bluespace + +- type: entity + id: WallRockBasaltNormality + parent: WallRockNormality + description: A rock wall. What's that sticking out of it? + suffix: Normality + components: + - type: OreVein + oreChance: 1.0 + currentOre: OreNormality + - type: Sprite + layers: + - state: rock_wall + - map: [ "enum.EdgeLayer.South" ] + state: rock_wall_south + - map: [ "enum.EdgeLayer.East" ] + state: rock_wall_east + - map: [ "enum.EdgeLayer.North" ] + state: rock_wall_north + - map: [ "enum.EdgeLayer.West" ] + state: rock_wall_west + - state: rock_bluespace + # Snow variants - type: entity id: WallRockSnow @@ -1118,6 +1250,50 @@ state: rock_snow_west - state: rock_salt +- type: entity + id: WallRockSnowBluespace + parent: WallRockSnow + description: A rock wall. What's that sticking out of it? + suffix: Bluespace + components: + - type: OreVein + oreChance: 1.0 + currentOre: OreBluespace + - type: Sprite + layers: + - state: rock_snow + - map: [ "enum.EdgeLayer.South" ] + state: rock_snow_south + - map: [ "enum.EdgeLayer.East" ] + state: rock_snow_east + - map: [ "enum.EdgeLayer.North" ] + state: rock_snow_north + - map: [ "enum.EdgeLayer.West" ] + state: rock_snow_west + - state: rock_bluespace + +- type: entity + id: WallRockSnowNormality + parent: WallRockSnow + description: A rock wall. What's that sticking out of it? + suffix: Normality + components: + - type: OreVein + oreChance: 1.0 + currentOre: OreNormality + - type: Sprite + layers: + - state: rock_snow + - map: [ "enum.EdgeLayer.South" ] + state: rock_snow_south + - map: [ "enum.EdgeLayer.East" ] + state: rock_snow_east + - map: [ "enum.EdgeLayer.North" ] + state: rock_snow_north + - map: [ "enum.EdgeLayer.West" ] + state: rock_snow_west + - state: rock_bluespace + # Sand variants - type: entity id: WallRockSand @@ -1361,6 +1537,50 @@ state: rock_sand_west - state: rock_salt +- type: entity + id: WallRockSandBluespace + parent: WallRockSand + description: A rock wall. What's that sticking out of it? + suffix: Bluespace + components: + - type: OreVein + oreChance: 1.0 + currentOre: OreBluespace + - type: Sprite + layers: + - state: rock_sand + - map: [ "enum.EdgeLayer.South" ] + state: rock_sand_south + - map: [ "enum.EdgeLayer.East" ] + state: rock_sand_east + - map: [ "enum.EdgeLayer.North" ] + state: rock_sand_north + - map: [ "enum.EdgeLayer.West" ] + state: rock_sand_west + - state: rock_bluespace + +- type: entity + id: WallRockSandNormality + parent: WallRockSand + description: A rock wall. What's that sticking out of it? + suffix: Normality + components: + - type: OreVein + oreChance: 1.0 + currentOre: OreNormality + - type: Sprite + layers: + - state: rock_sand + - map: [ "enum.EdgeLayer.South" ] + state: rock_sand_south + - map: [ "enum.EdgeLayer.East" ] + state: rock_sand_east + - map: [ "enum.EdgeLayer.North" ] + state: rock_sand_north + - map: [ "enum.EdgeLayer.West" ] + state: rock_sand_west + - state: rock_bluespace + # Chromite variants - type: entity id: WallRockChromite @@ -1604,6 +1824,50 @@ state: rock_chromite_west - state: rock_salt +- type: entity + id: WallRockChromiteBluespace + parent: WallRockChromite + description: A rock wall. What's that sticking out of it? + suffix: Bluespace + components: + - type: OreVein + oreChance: 1.0 + currentOre: OreBluespace + - type: Sprite + layers: + - state: rock_chromite + - map: [ "enum.EdgeLayer.South" ] + state: rock_chromite_south + - map: [ "enum.EdgeLayer.East" ] + state: rock_chromite_east + - map: [ "enum.EdgeLayer.North" ] + state: rock_chromite_north + - map: [ "enum.EdgeLayer.West" ] + state: rock_chromite_west + - state: rock_bluespace + +- type: entity + id: WallRockChromiteNormality + parent: WallRockChromite + description: A rock wall. What's that sticking out of it? + suffix: Normality + components: + - type: OreVein + oreChance: 1.0 + currentOre: OreNormality + - type: Sprite + layers: + - state: rock_chromite + - map: [ "enum.EdgeLayer.South" ] + state: rock_chromite_south + - map: [ "enum.EdgeLayer.East" ] + state: rock_chromite_east + - map: [ "enum.EdgeLayer.North" ] + state: rock_chromite_north + - map: [ "enum.EdgeLayer.West" ] + state: rock_chromite_west + - state: rock_bluespace + # Andesite variants - type: entity id: WallRockAndesite @@ -1846,3 +2110,47 @@ - map: [ "enum.EdgeLayer.West" ] state: rock_andesite_west - state: rock_salt + +- type: entity + id: WallRockAndesiteBluespace + parent: WallRockAndesite + description: A rock wall. What's that sticking out of it? + suffix: Bluespace + components: + - type: OreVein + oreChance: 1.0 + currentOre: OreBluespace + - type: Sprite + layers: + - state: rock_andesite + - map: [ "enum.EdgeLayer.South" ] + state: rock_andesite_south + - map: [ "enum.EdgeLayer.East" ] + state: rock_andesite_east + - map: [ "enum.EdgeLayer.North" ] + state: rock_andesite_north + - map: [ "enum.EdgeLayer.West" ] + state: rock_andesite_west + - state: rock_bluespace + +- type: entity + id: WallRockAndesiteNormality + parent: WallRockAndesite + description: A rock wall. What's that sticking out of it? + suffix: Normality + components: + - type: OreVein + oreChance: 1.0 + currentOre: OreNormality + - type: Sprite + layers: + - state: rock_andesite + - map: [ "enum.EdgeLayer.South" ] + state: rock_andesite_south + - map: [ "enum.EdgeLayer.East" ] + state: rock_andesite_east + - map: [ "enum.EdgeLayer.North" ] + state: rock_andesite_north + - map: [ "enum.EdgeLayer.West" ] + state: rock_andesite_west + - state: rock_bluespace diff --git a/Resources/Prototypes/Entities/Structures/Walls/grille.yml b/Resources/Prototypes/Entities/Structures/Walls/grille.yml index 11ada142fa..7be721b6f9 100644 --- a/Resources/Prototypes/Entities/Structures/Walls/grille.yml +++ b/Resources/Prototypes/Entities/Structures/Walls/grille.yml @@ -32,7 +32,7 @@ node: grille deconstructionTarget: start - type: Damageable - damageContainer: Inorganic + damageContainer: StructuralInorganic damageModifierSet: PerforatedMetallic - type: PowerConsumer showInMonitor: false diff --git a/Resources/Prototypes/Entities/Structures/Walls/walls.yml b/Resources/Prototypes/Entities/Structures/Walls/walls.yml index 348ce2918c..5dab2243c4 100644 --- a/Resources/Prototypes/Entities/Structures/Walls/walls.yml +++ b/Resources/Prototypes/Entities/Structures/Walls/walls.yml @@ -549,8 +549,6 @@ node: girder - !type:DoActsBehavior acts: ["Destruction"] - destroySound: - collection: MetalBreak - type: IconSmooth key: walls base: reinf_over @@ -806,8 +804,6 @@ node: girder - !type:DoActsBehavior acts: ["Destruction"] - destroySound: - collection: MetalBreak - type: Construction graph: Girder node: diagonalshuttleWall @@ -1212,7 +1208,7 @@ name: force wall components: - type: TimedDespawn - lifetime: 20 + lifetime: 12 - type: Tag tags: - Wall diff --git a/Resources/Prototypes/Entities/Structures/cargo_telepad.yml b/Resources/Prototypes/Entities/Structures/cargo_telepad.yml index d395235a53..9dc9f77cff 100644 --- a/Resources/Prototypes/Entities/Structures/cargo_telepad.yml +++ b/Resources/Prototypes/Entities/Structures/cargo_telepad.yml @@ -47,3 +47,5 @@ board: CargoTelepadMachineCircuitboard - type: Appearance - type: CollideOnAnchor + - type: NameIdentifier + group: CargoTelepads diff --git a/Resources/Prototypes/Entities/Structures/cryopod.yml b/Resources/Prototypes/Entities/Structures/cryopod.yml index 9063e8b138..bdb8862a82 100644 --- a/Resources/Prototypes/Entities/Structures/cryopod.yml +++ b/Resources/Prototypes/Entities/Structures/cryopod.yml @@ -12,8 +12,8 @@ map: ["base"] - type: UserInterface interfaces: - - key: enum.CryostorageUIKey.Key - type: CryostorageBoundUserInterface + enum.CryostorageUIKey.Key: + type: CryostorageBoundUserInterface - type: ActivatableUI key: enum.CryostorageUIKey.Key - type: AccessReader diff --git a/Resources/Prototypes/Entities/Structures/plastic_flaps.yml b/Resources/Prototypes/Entities/Structures/plastic_flaps.yml index c4ee507395..5d5ff390ba 100644 --- a/Resources/Prototypes/Entities/Structures/plastic_flaps.yml +++ b/Resources/Prototypes/Entities/Structures/plastic_flaps.yml @@ -1,9 +1,7 @@ - type: entity - id: PlasticFlapsClear + id: PlasticFlapsBase parent: BaseStructureDynamic - name: plastic flaps - suffix: Clear - description: Heavy duty, plastic flaps. Definitely can't get past those. No way. + abstract: true placement: mode: SnapgridCenter components: @@ -23,9 +21,10 @@ bounds: "-0.49,-0.49,0.49,0.49" density: 100 mask: - - TabletopMachineMask + - Impassable layer: - MidImpassable + - BulletImpassable - type: Damageable damageContainer: StructuralInorganic damageModifierSet: Metallic @@ -33,22 +32,31 @@ thresholds: - trigger: !type:DamageTrigger - damage: 100 + damage: 50 behaviors: - !type:DoActsBehavior acts: ["Destruction"] - type: IconSmooth key: walls mode: NoSprite + - type: StaticPrice + price: 83 + - type: RequireProjectileTarget + +- type: entity + id: PlasticFlapsClear + parent: PlasticFlapsBase + name: plastic flaps + suffix: Clear + description: Heavy duty, plastic flaps. Definitely can't get past those. No way. + components: - type: Construction graph: PlasticFlapsGraph node: plasticFlaps - - type: StaticPrice - price: 83 - type: entity id: PlasticFlapsOpaque - parent: PlasticFlapsClear + parent: PlasticFlapsBase name: plastic flaps suffix: Opaque description: Heavy duty, plastic flaps. Definitely can't get past those. No way. @@ -61,10 +69,11 @@ bounds: "-0.49,-0.49,0.49,0.49" density: 100 mask: - - TabletopMachineMask + - Impassable layer: - Opaque - MidImpassable + - BulletImpassable - type: Occluder - type: Construction graph: PlasticFlapsGraph @@ -72,7 +81,7 @@ - type: entity id: PlasticFlapsAirtightClear - parent: PlasticFlapsClear + parent: PlasticFlapsBase name: airtight plastic flaps suffix: Airtight, Clear description: Heavy duty, slightly stronger, airtight plastic flaps. Definitely can't get past those. No way. @@ -81,20 +90,17 @@ thresholds: - trigger: !type:DamageTrigger - damage: 150 + damage: 75 behaviors: - !type:DoActsBehavior acts: ["Destruction"] - type: Airtight - - type: Construction - graph: PlasticFlapsGraph - node: airtightFlaps - type: StaticPrice price: 100 - type: entity id: PlasticFlapsAirtightOpaque - parent: PlasticFlapsOpaque + parent: PlasticFlapsBase name: airtight plastic flaps suffix: Airtight, Opaque description: Heavy duty, slightly stronger, airtight plastic flaps. Definitely can't get past those. No way. @@ -103,13 +109,10 @@ thresholds: - trigger: !type:DamageTrigger - damage: 150 + damage: 75 behaviors: - !type:DoActsBehavior acts: ["Destruction"] - type: Airtight - - type: Construction - graph: PlasticFlapsGraph - node: airtightopaqueFlaps - type: StaticPrice price: 100 diff --git a/Resources/Prototypes/Entities/Tiles/bananium.yml b/Resources/Prototypes/Entities/Tiles/bananium.yml index 9f1703c516..9e8a46b2c3 100644 --- a/Resources/Prototypes/Entities/Tiles/bananium.yml +++ b/Resources/Prototypes/Entities/Tiles/bananium.yml @@ -47,7 +47,7 @@ paralyzeTime: 2 launchForwardsMultiplier: 1.5 - type: StepTrigger - triggerGroups: # WD EDIT + triggerGroups: types: - SlipTile intersectRatio: 0.2 diff --git a/Resources/Prototypes/Entities/Tiles/chasm.yml b/Resources/Prototypes/Entities/Tiles/chasm.yml index c77228c2d5..85bc7b5ab3 100644 --- a/Resources/Prototypes/Entities/Tiles/chasm.yml +++ b/Resources/Prototypes/Entities/Tiles/chasm.yml @@ -14,7 +14,7 @@ blacklist: tags: - Catwalk - triggerGroups: # WD EDIT + triggerGroups: types: - Chasm - type: Transform diff --git a/Resources/Prototypes/Entities/Tiles/lava.yml b/Resources/Prototypes/Entities/Tiles/lava.yml index 5ede7efa39..9d61304af9 100644 --- a/Resources/Prototypes/Entities/Tiles/lava.yml +++ b/Resources/Prototypes/Entities/Tiles/lava.yml @@ -13,7 +13,7 @@ blacklist: tags: - Catwalk - triggerGroups: # WD EDIT + triggerGroups: types: - Lava - type: Lava diff --git a/Resources/Prototypes/Entities/Tiles/liquid_plasma.yml b/Resources/Prototypes/Entities/Tiles/liquid_plasma.yml index 7b33437b46..500286ead3 100644 --- a/Resources/Prototypes/Entities/Tiles/liquid_plasma.yml +++ b/Resources/Prototypes/Entities/Tiles/liquid_plasma.yml @@ -13,7 +13,7 @@ blacklist: tags: - Catwalk - triggerGroups: # WD EDIT + triggerGroups: types: - Lava - type: Lava diff --git a/Resources/Prototypes/Entities/Tiles/shadow_basalt.yml b/Resources/Prototypes/Entities/Tiles/shadow_basalt.yml index d93351c7e2..974a0ac3b7 100644 --- a/Resources/Prototypes/Entities/Tiles/shadow_basalt.yml +++ b/Resources/Prototypes/Entities/Tiles/shadow_basalt.yml @@ -1,7 +1,7 @@ - type: entity id: ShadowBasaltOne name: shadowstone - description: Cold rock + description: Glowing cracks in reality. It's probably fine. placement: mode: SnapgridCenter components: diff --git a/Resources/Prototypes/Flavors/flavors.yml b/Resources/Prototypes/Flavors/flavors.yml index 9f0f6ad678..26190d8791 100644 --- a/Resources/Prototypes/Flavors/flavors.yml +++ b/Resources/Prototypes/Flavors/flavors.yml @@ -589,6 +589,36 @@ flavorType: Complex description: flavor-complex-irish-car-bomb +- type: flavor + id: vodkaredbool + flavorType: Complex + description: flavor-complex-vodka-red-bool + +- type: flavor + id: xenobasher + flavorType: Complex + description: flavor-complex-xeno-basher + +- type: flavor + id: irishbool + flavorType: Complex + description: flavor-complex-irish-bool + +- type: flavor + id: budgetinsulsdrink + flavorType: Complex + description: flavor-complex-budget-insuls-drink + +- type: flavor + id: watermelonwakeup + flavorType: Complex + description: flavor-complex-watermelon-wakeup + +- type: flavor + id: rubberneck + flavorType: Complex + description: flavor-complex-rubberneck + - type: flavor id: blackrussian flavorType: Complex @@ -1053,3 +1083,18 @@ id: violets flavorType: Complex description: flavor-complex-violets + +- type: flavor + id: pyrotton + flavorType: Complex + description: flavor-complex-pyrotton + +- type: flavor + id: mothballs + flavorType: Complex + description: flavor-complex-mothballs + +- type: flavor + id: paintthinner + flavorType: Complex + description: flavor-complex-paint-thinner \ No newline at end of file diff --git a/Resources/Prototypes/GameRules/cargo_gifts.yml b/Resources/Prototypes/GameRules/cargo_gifts.yml index 799805272d..3787f4e603 100644 --- a/Resources/Prototypes/GameRules/cargo_gifts.yml +++ b/Resources/Prototypes/GameRules/cargo_gifts.yml @@ -4,7 +4,7 @@ noSpawn: true components: - type: StationEvent - weight: 10 + weight: 5 startDelay: 10 duration: 120 earliestStart: 20 @@ -24,11 +24,10 @@ noSpawn: true components: - type: StationEvent - weight: 6 + weight: 2 startDelay: 10 duration: 240 - minimumPlayers: 50 - earliestStart: 40 + earliestStart: 20 - type: CargoGiftsRule description: cargo-gift-pizza-large sender: cargo-gift-default-sender @@ -44,7 +43,7 @@ noSpawn: true components: - type: StationEvent - weight: 4 + weight: 5 startDelay: 10 duration: 240 earliestStart: 30 @@ -90,7 +89,7 @@ noSpawn: true components: - type: StationEvent - weight: 8 + weight: 6 startDelay: 10 duration: 120 minimumPlayers: 30 @@ -132,7 +131,7 @@ noSpawn: true components: - type: StationEvent - weight: 6 + weight: 4 startDelay: 10 duration: 120 earliestStart: 10 @@ -154,7 +153,7 @@ noSpawn: true components: - type: StationEvent - weight: 3 + weight: 4 startDelay: 10 duration: 120 earliestStart: 20 @@ -174,7 +173,7 @@ noSpawn: true components: - type: StationEvent - weight: 2 + weight: 3 startDelay: 10 duration: 120 earliestStart: 20 diff --git a/Resources/Prototypes/GameRules/events.yml b/Resources/Prototypes/GameRules/events.yml index 66a8f6ada8..4923e399dd 100644 --- a/Resources/Prototypes/GameRules/events.yml +++ b/Resources/Prototypes/GameRules/events.yml @@ -4,9 +4,8 @@ noSpawn: true components: - type: StationEvent - weight: 12 + weight: 8 startDelay: 30 - reoccurrenceDelay: 8 duration: 35 - type: AnomalySpawnRule @@ -16,9 +15,8 @@ noSpawn: true components: - type: StationEvent - weight: 5 + weight: 8 startDelay: 30 - reoccurrenceDelay: 5 duration: 35 - type: BluespaceArtifactRule @@ -28,10 +26,9 @@ noSpawn: true components: - type: StationEvent - weight: 1 - maxOccurrences: 4 # Very annoying, makes containers unusable + weight: 2 + reoccurrenceDelay: 5 earliestStart: 1 - reoccurrenceDelay: 15 duration: 1 - type: BluespaceLockerRule @@ -41,10 +38,9 @@ noSpawn: true components: - type: StationEvent - weight: 10 + weight: 7 duration: 1 - minimumPlayers: 7 - reoccurrenceDelay: 5 + minimumPlayers: 15 - type: BreakerFlipRule - type: entity @@ -55,9 +51,8 @@ - type: StationEvent startAnnouncement: true minimumPlayers: 25 - weight: 5 + weight: 3 duration: 1 - reoccurrenceDelay: 5 - type: BureaucraticErrorRule - type: entity @@ -70,7 +65,6 @@ minimumPlayers: 15 weight: 5 duration: 1 - reoccurrenceDelay: 5 - type: ClericalErrorRule - type: entity @@ -79,10 +73,9 @@ noSpawn: true components: - type: StationEvent - weight: 10 + weight: 5 duration: 1 - minimumPlayers: 15 - reoccurrenceDelay: 25 + minimumPlayers: 10 - type: RandomEntityStorageSpawnRule prototype: MobSkeletonCloset @@ -92,10 +85,10 @@ noSpawn: true components: - type: StationEvent - weight: 2 + weight: 6.5 duration: 1 - earliestStart: 45 - reoccurrenceDelay: 60 + earliestStart: 40 + reoccurrenceDelay: 20 minimumPlayers: 20 - type: RandomSpawnRule prototype: SpawnPointGhostDragon @@ -106,14 +99,13 @@ noSpawn: true components: - type: StationEvent - weight: 3 + weight: 6 duration: 1 - earliestStart: 45 - reoccurrenceDelay: 45 - minimumPlayers: 20 + earliestStart: 30 + reoccurrenceDelay: 20 + minimumPlayers: 30 - type: NinjaSpawnRule -# TODO there's already a glimmer revenant rule. One of them might be broken. - type: entity parent: BaseGameRule id: RevenantSpawn @@ -127,16 +119,16 @@ - type: RandomSpawnRule prototype: MobRevenant -- type: entity - id: FalseAlarm - parent: BaseGameRule - noSpawn: true - components: - - type: StationEvent - weight: 10 - duration: 1 - reoccurrenceDelay: 4 # Please no 10 false alarms in a row. - - type: FalseAlarmRule +# disabled until event is rewritten to be more interesting +#- type: entity +# id: FalseAlarm +# parent: BaseGameRule +# noSpawn: true +# components: +# - type: StationEvent +# weight: 15 +# duration: 1 +# - type: FalseAlarmRule - type: entity id: GasLeak @@ -146,10 +138,7 @@ - type: StationEvent startAnnouncement: true endAnnouncement: true - earliestStart: 10 - reoccurrenceDelay: 7 - minimumPlayers: 5 - weight: 10 + weight: 8 startDelay: 20 - type: GasLeakRule @@ -160,9 +149,8 @@ components: - type: StationEvent earliestStart: 15 - reoccurrenceDelay: 10 minimumPlayers: 15 - weight: 5 + weight: 7 startDelay: 50 duration: 240 - type: KudzuGrowthRule @@ -174,9 +162,8 @@ components: - type: StationEvent earliestStart: 30 - reoccurrenceDelay: 5 weight: 7.5 - minimumPlayers: 7 #Enough to hopefully have at least one engineering guy + minimumPlayers: 10 #Enough to hopefully have at least one engineering guy startAnnouncement: true endAnnouncement: true duration: null #ending is handled by MeteorSwarmRule @@ -192,8 +179,7 @@ startAnnouncement: true startDelay: 10 earliestStart: 15 - reoccurrenceDelay: 3 - weight: 5 + weight: 6 duration: 50 - type: VentCrittersRule entries: @@ -203,6 +189,11 @@ prob: 0.02 - id: MobMouse2 prob: 0.02 + - id: MobMouseCancer + prob: 0.001 + specialEntries: + - id: SpawnPointGhostRatKing + prob: 0.001 - type: entity id: CockroachMigration @@ -212,9 +203,8 @@ - type: StationEvent startAnnouncement: true startDelay: 10 - weight: 5 + weight: 6 duration: 50 - reoccurrenceDelay: 15 # Cockroaches en masse are utmost annoying to deal with. - type: VentCrittersRule entries: - id: MobCockroach @@ -222,43 +212,18 @@ - id: MobMothroach prob: 0.008 -# TODO this is the same as mouse migration, but with different announcer. -- type: entity - id: VentCritters - parent: BaseGameRule - noSpawn: true - components: - - type: StationEvent - startAnnouncement: true - startDelay: 10 - earliestStart: 15 - reoccurrenceDelay: 3 - weight: 5 - duration: 60 - - type: VentCrittersRule - entries: - - id: MobMouse - prob: 0.02 - - id: MobMouse1 - prob: 0.02 - - id: MobMouse2 - prob: 0.02 - - id: MobPibbleVent - prob: 0.005 - - type: entity id: PowerGridCheck parent: BaseGameRule noSpawn: true components: - type: StationEvent - weight: 10 + weight: 5 startAnnouncement: true endAnnouncement: true startDelay: 24 duration: 60 maxDuration: 120 - reoccurrenceDelay: 2 # Gives a chance for multiple checks in a row, but not in parallel - type: PowerGridCheckRule - type: entity @@ -267,10 +232,9 @@ noSpawn: true components: - type: StationEvent - weight: 5 + weight: 6 duration: 1 - reoccurrenceDelay: 10 - maxOccurrences: 3 # Annoying and rarely if ever interesting + maxOccurrences: 1 # this event has diminishing returns on interesting-ness, so we cap it - type: RandomSentienceRule - type: entity @@ -279,12 +243,11 @@ noSpawn: true components: - type: StationEvent - weight: 10 + weight: 8 startAnnouncement: true endAnnouncement: true duration: 120 maxDuration: 240 - reoccurrenceDelay: 5 - type: SolarFlareRule onlyJamHeadsets: true affectedChannels: @@ -301,19 +264,6 @@ lightBreakChancePerSecond: 0.0003 doorToggleChancePerSecond: 0.001 -# - type: entity # DeltaV - replaced terminator with paradox anomaly in midroundantag rule -# parent: BaseGameRule -# id: TerminatorSpawn -# noSpawn: true -# components: -# - type: StationEvent -# weight: 8 -# duration: 1 -# earliestStart: 30 -# minimumPlayers: 20 -# - type: RandomSpawnRule -# prototype: SpawnPointGhostTerminator - - type: entity id: VentClog parent: BaseGameRule @@ -322,7 +272,6 @@ - type: StationEvent startAnnouncement: true earliestStart: 15 - reoccurrenceDelay: 5 minimumPlayers: 15 weight: 5 startDelay: 50 @@ -338,7 +287,6 @@ startAnnouncement: true startDelay: 10 earliestStart: 20 - reoccurrenceDelay: 12 minimumPlayers: 15 weight: 5 duration: 60 @@ -360,7 +308,6 @@ startAnnouncement: true startDelay: 10 earliestStart: 20 - reoccurrenceDelay: 15 minimumPlayers: 15 weight: 5 duration: 60 @@ -369,67 +316,22 @@ - id: MobGiantSpiderAngry prob: 0.05 -# Weaker versions of the above - type: entity - id: SlimesSpawnWeak - parent: SlimesSpawn - noSpawn: true - components: - - type: StationEvent - minimumPlayers: 1 - - type: VentCrittersRule - entries: - - id: MobAdultSlimesBlueAngry - prob: 0.005 - - id: MobAdultSlimesGreenAngry - prob: 0.005 - - id: MobAdultSlimesYellowAngry - prob: 0.005 - -- type: entity - id: SpiderSpawnWeak - parent: SpiderSpawn - noSpawn: true - components: - - type: StationEvent - minimumPlayers: 1 - - type: VentCrittersRule - entries: - - id: MobGiantSpiderAngry - prob: 0.01 - -# - type: entity # DeltaV - Prevent normal spawning of MobClownSpider -# id: SpiderClownSpawn -# parent: BaseGameRule -# noSpawn: true -# components: -# - type: StationEvent -# startAnnouncement: true -# startDelay: 10 -# earliestStart: 20 -# minimumPlayers: 15 -# weight: 1 -# duration: 60 -# - type: VentCrittersRule -# entries: -# - id: MobClownSpider -# prob: 0.05 - -- type: entity - id: OneirophageSpawn + id: SpiderClownSpawn parent: BaseGameRule noSpawn: true components: - type: StationEvent - id: VentCritters - earliestStart: 15 - minimumPlayers: 15 - weight: 4 + startAnnouncement: false + startDelay: 10 + earliestStart: 20 + minimumPlayers: 20 + weight: 1.5 duration: 60 - type: VentCrittersRule entries: - - id: MobGiantSpiderVampireAngry - prob: 0.01 + - id: MobClownSpider + prob: 0.05 - type: entity id: ZombieOutbreak @@ -437,9 +339,8 @@ noSpawn: true components: - type: StationEvent - earliestStart: 60 - reoccurrenceDelay: 60 - minimumPlayers: 15 + earliestStart: 50 + minimumPlayers: 30 weight: 2 duration: 1 - type: ZombieRule @@ -472,13 +373,12 @@ noSpawn: true components: - type: StationEvent - earliestStart: 60 - weight: 3 - minimumPlayers: 15 - reoccurrenceDelay: 45 + earliestStart: 35 + weight: 5.5 + minimumPlayers: 20 duration: 1 - type: LoadMapRule - mapPath: /Maps/Shuttles/striker.yml + preloadedGrid: ShuttleStriker - type: NukeopsRule roundEndBehavior: Nothing - type: AntagSelection @@ -501,15 +401,39 @@ - type: NukeopsRole prototype: Nukeops +- type: entity + id: SleeperAgentsRule + parent: BaseGameRule + noSpawn: true + components: + - type: StationEvent + earliestStart: 25 + weight: 8 + minimumPlayers: 15 + reoccurrenceDelay: 30 + startAnnouncement: false + - type: AlertLevelInterceptionRule + - type: TraitorRule + - type: AntagSelection + definitions: + - prefRoles: [ Traitor ] + min: 1 + max: 2 + playerRatio: 10 + mindComponents: + - type: TraitorRole + prototype: Traitor + - type: entity id: MassHallucinations parent: BaseGameRule noSpawn: true components: - type: StationEvent - weight: 10 + weight: 7 duration: 150 maxDuration: 300 + reoccurrenceDelay: 30 - type: MassHallucinationsRule minTimeBetweenIncidents: 0.1 maxTimeBetweenIncidents: 300 @@ -517,18 +441,18 @@ sounds: collection: Paracusia -#- type: entity # DeltaV - Why does this exist?? -# id: ImmovableRodSpawn -# parent: BaseGameRule -# noSpawn: true -# components: -# - type: StationEvent -# startAnnouncement: true -# weight: 5 -# duration: 1 -# earliestStart: 45 -# minimumPlayers: 20 -# - type: ImmovableRodRule +- type: entity + id: ImmovableRodSpawn + parent: BaseGameRule + noSpawn: true + components: + - type: StationEvent + startAnnouncement: false + weight: 2 + duration: 1 + earliestStart: 45 + minimumPlayers: 20 + - type: ImmovableRodRule - type: entity noSpawn: true @@ -536,7 +460,7 @@ id: IonStorm components: - type: StationEvent - weight: 10 + weight: 8 reoccurrenceDelay: 20 duration: 1 - type: IonStormRule @@ -548,8 +472,7 @@ components: - type: StationEvent earliestStart: 0 - reoccurrenceDelay: 5 minimumPlayers: 20 + maxOccurrences: 1 # this event has diminishing returns on interesting-ness, so we cap it weight: 5 - type: MobReplacementRule - numberToReplace: 1 diff --git a/Resources/Prototypes/GameRules/midround.yml b/Resources/Prototypes/GameRules/midround.yml index bb870f6007..db1a76adc0 100644 --- a/Resources/Prototypes/GameRules/midround.yml +++ b/Resources/Prototypes/GameRules/midround.yml @@ -12,6 +12,7 @@ - DoorjackObjective - SpiderChargeObjective - TerrorObjective + - MassArrestObjective - NinjaSurviveObjective - type: NinjaRule threats: NinjaThreats @@ -41,6 +42,7 @@ min: 1 max: 3 playerRatio: 1 + lateJoinAdditional: true allowNonHumans: true multiAntagSetting: All startingGear: ThiefGear @@ -52,13 +54,13 @@ briefing: sound: "/Audio/Misc/thief_greeting.ogg" -- type: entity - noSpawn: true - parent: BaseGameRule - id: Exterminator - components: - - type: GenericAntagRule - agentName: terminator-round-end-agent-name - objectives: - - TerminateObjective - - ShutDownObjective +#- type: entity +# noSpawn: true +# parent: BaseGameRule +# id: Exterminator +# components: +# - type: GenericAntagRule +# agentName: terminator-round-end-agent-name +# objectives: +# - TerminateObjective +# - ShutDownObjective diff --git a/Resources/Prototypes/GameRules/roundstart.yml b/Resources/Prototypes/GameRules/roundstart.yml index 4651337618..47af18182d 100644 --- a/Resources/Prototypes/GameRules/roundstart.yml +++ b/Resources/Prototypes/GameRules/roundstart.yml @@ -147,7 +147,7 @@ - type: AntagSelection definitions: - prefRoles: [ Traitor ] - max: 12 + max: 8 playerRatio: 10 lateJoinAdditional: true mindComponents: diff --git a/Resources/Prototypes/GameRules/unknown_shuttles.yml b/Resources/Prototypes/GameRules/unknown_shuttles.yml new file mode 100644 index 0000000000..f44bbdcaaa --- /dev/null +++ b/Resources/Prototypes/GameRules/unknown_shuttles.yml @@ -0,0 +1,64 @@ +- type: entity + id: UnknownShuttleCargoLost + parent: BaseGameRule + noSpawn: true + components: + - type: StationEvent + startAnnouncement: false + weight: 5 + reoccurrenceDelay: 30 + duration: 1 + - type: LoadMapRule + preloadedGrid: ShuttleCargoLost + +- type: entity + id: UnknownShuttleTravelingCuisine + parent: BaseGameRule + noSpawn: true + components: + - type: StationEvent + startAnnouncement: false + weight: 5 + reoccurrenceDelay: 30 + duration: 1 + - type: LoadMapRule + preloadedGrid: TravelingCuisine + +- type: entity + id: UnknownShuttleDisasterEvacPod + parent: BaseGameRule + noSpawn: true + components: + - type: StationEvent + startAnnouncement: false + weight: 5 + reoccurrenceDelay: 30 + duration: 1 + - type: LoadMapRule + preloadedGrid: DisasterEvacPod + +- type: entity + id: UnknownShuttleHonki + parent: BaseGameRule + noSpawn: true + components: + - type: StationEvent + startAnnouncement: false + weight: 2 + reoccurrenceDelay: 30 + duration: 1 + - type: LoadMapRule + preloadedGrid: Honki + +- type: entity + id: UnknownShuttleSyndieEvacPod + parent: BaseGameRule + noSpawn: true + components: + - type: StationEvent + startAnnouncement: false + weight: 2 + reoccurrenceDelay: 30 + duration: 1 + - type: LoadMapRule + preloadedGrid: SyndieEvacPod diff --git a/Resources/Prototypes/GameRules/variation.yml b/Resources/Prototypes/GameRules/variation.yml index 7424fc2854..2884d5f9d6 100644 --- a/Resources/Prototypes/GameRules/variation.yml +++ b/Resources/Prototypes/GameRules/variation.yml @@ -24,8 +24,8 @@ components: - type: WallReplaceVariationPass - type: EntityReplaceVariationPass - entitiesPerReplacementAverage: 10 - entitiesPerReplacementStdDev: 2 + entitiesPerReplacementAverage: 50 + entitiesPerReplacementStdDev: 10 replacements: - id: WallSolidRust @@ -36,8 +36,8 @@ components: - type: ReinforcedWallReplaceVariationPass - type: EntityReplaceVariationPass - entitiesPerReplacementAverage: 12 - entitiesPerReplacementStdDev: 2 + entitiesPerReplacementAverage: 50 + entitiesPerReplacementStdDev: 10 replacements: - id: WallReinforcedRust diff --git a/Resources/Prototypes/GhostRoleRaffles/deciders.yml b/Resources/Prototypes/GhostRoleRaffles/deciders.yml new file mode 100644 index 0000000000..b23464cf70 --- /dev/null +++ b/Resources/Prototypes/GhostRoleRaffles/deciders.yml @@ -0,0 +1,3 @@ +- type: ghostRoleRaffleDecider + id: default + decider: !type:RngGhostRoleRaffleDecider {} diff --git a/Resources/Prototypes/GhostRoleRaffles/settings.yml b/Resources/Prototypes/GhostRoleRaffles/settings.yml new file mode 100644 index 0000000000..7ed9326ee0 --- /dev/null +++ b/Resources/Prototypes/GhostRoleRaffles/settings.yml @@ -0,0 +1,15 @@ +# for important antag roles (nukie reinforcements, ninja, etc.) +- type: ghostRoleRaffleSettings + id: default + settings: + initialDuration: 30 + joinExtendsDurationBy: 10 + maxDuration: 90 + +# for roles that don't matter too much or are available plentifully (e.g. space carp) +- type: ghostRoleRaffleSettings + id: short + settings: + initialDuration: 10 + joinExtendsDurationBy: 5 + maxDuration: 30 diff --git a/Resources/Prototypes/Guidebook/science.yml b/Resources/Prototypes/Guidebook/science.yml index a21be1678c..a3f3f71ec3 100644 --- a/Resources/Prototypes/Guidebook/science.yml +++ b/Resources/Prototypes/Guidebook/science.yml @@ -7,7 +7,7 @@ - AnomalousResearch - Xenoarchaeology - Robotics - - Psionics # Nyanotrasen - Psionics guidebook + - MachineUpgrading # - AltarsGolemancy # When it's added # Nyanotrasen - Golemancy guidebook - ReverseEngineering # Nyanotrasen - Reverse Engineering guidebook @@ -41,7 +41,6 @@ text: "/ServerInfo/Guidebook/Science/Xenoarchaeology.xml" children: - ArtifactReports - - TraversalDistorter - type: guideEntry id: Robotics @@ -60,6 +59,11 @@ name: guide-entry-traversal-distorter text: "/ServerInfo/Guidebook/Science/TraversalDistorter.xml" +- type: guideEntry + id: MachineUpgrading + name: guide-entry-machine-upgrading + text: "/ServerInfo/Guidebook/Science/MachineUpgrading.xml" + - type: guideEntry id: Cyborgs name: guide-entry-cyborgs diff --git a/Resources/Prototypes/Guidebook/shiftandcrew.yml b/Resources/Prototypes/Guidebook/shiftandcrew.yml index 3c4618902e..66f9e7316d 100644 --- a/Resources/Prototypes/Guidebook/shiftandcrew.yml +++ b/Resources/Prototypes/Guidebook/shiftandcrew.yml @@ -41,3 +41,4 @@ id: Food Recipes name: guide-entry-foodrecipes text: "/ServerInfo/Guidebook/Service/FoodRecipes.xml" + filterEnabled: true diff --git a/Resources/Prototypes/Guidebook/species.yml b/Resources/Prototypes/Guidebook/species.yml index 8fcf5b520e..d9d039ea43 100644 --- a/Resources/Prototypes/Guidebook/species.yml +++ b/Resources/Prototypes/Guidebook/species.yml @@ -11,6 +11,7 @@ - Reptilian - SlimePerson - IPCs + - Harpy - type: guideEntry id: Arachnid @@ -51,3 +52,8 @@ id: IPCs name: species-name-ipc text: "/ServerInfo/Guidebook/Mobs/IPCs.xml" + +- type: guideEntry + id: Harpy + name: species-name-harpy + text: "/ServerInfo/Guidebook/Mobs/Harpy.xml" \ No newline at end of file diff --git a/Resources/Prototypes/Hydroponics/mutations.yml b/Resources/Prototypes/Hydroponics/mutations.yml index 17617f5ee3..6108278a4a 100644 --- a/Resources/Prototypes/Hydroponics/mutations.yml +++ b/Resources/Prototypes/Hydroponics/mutations.yml @@ -6,7 +6,6 @@ reagents: - Omnizine - Nocturine - - Barozine - Lexorin - Honk - BuzzochloricBees diff --git a/Resources/Prototypes/Hydroponics/seeds.yml b/Resources/Prototypes/Hydroponics/seeds.yml index 030c89c8cf..e134d24c26 100644 --- a/Resources/Prototypes/Hydroponics/seeds.yml +++ b/Resources/Prototypes/Hydroponics/seeds.yml @@ -18,11 +18,11 @@ Nutriment: Min: 1 Max: 20 - PotencyDivisor: 20 + potencyDivisor: 20 Flour: Min: 5 Max: 20 - PotencyDivisor: 20 + potencyDivisor: 20 - type: seed id: oat @@ -44,11 +44,11 @@ Nutriment: Min: 1 Max: 20 - PotencyDivisor: 20 + potencyDivisor: 20 Oats: Min: 5 Max: 20 - PotencyDivisor: 20 + potencyDivisor: 20 - type: seed id: banana @@ -73,11 +73,11 @@ Vitamin: Min: 1 Max: 4 - PotencyDivisor: 25 + potencyDivisor: 25 Nutriment: Min: 1 Max: 2 - PotencyDivisor: 50 + potencyDivisor: 50 - type: seed id: mimana @@ -100,11 +100,11 @@ MuteToxin: Min: 1 Max: 5 - PotencyDivisor: 20 + potencyDivisor: 20 Nutriment: Min: 1 Max: 2 - PotencyDivisor: 50 + potencyDivisor: 50 - type: seed id: carrots @@ -126,15 +126,15 @@ JuiceCarrot: Min: 1 Max: 5 - PotencyDivisor: 20 + potencyDivisor: 20 Oculine: Min: 2 Max: 6 - PotencyDivisor: 20 + potencyDivisor: 20 Vitamin: Min: 1 Max: 4 - PotencyDivisor: 25 + potencyDivisor: 25 - type: seed id: laughinPea @@ -159,15 +159,15 @@ Nutriment: Min: 1 Max: 3 - PotencyDivisor: 7 + potencyDivisor: 7 Sugar: Min: 1 Max: 10 - PotencyDivisor: 5 + potencyDivisor: 5 Laughter: Min: 1 Max: 10 - PotencyDivisor: 5 + potencyDivisor: 5 - type: seed id: lemon @@ -191,11 +191,11 @@ Nutriment: Min: 1 Max: 5 - PotencyDivisor: 20 + potencyDivisor: 20 Vitamin: Min: 1 Max: 4 - PotencyDivisor: 25 + potencyDivisor: 25 - type: seed id: lemoon @@ -217,11 +217,11 @@ Vitamin: Min: 1 Max: 4 - PotencyDivisor: 25 + potencyDivisor: 25 Milk: Min: 8 Max: 20 - PotencyDivisor: 5 + potencyDivisor: 5 - type: seed id: lime @@ -243,11 +243,11 @@ Nutriment: Min: 1 Max: 5 - PotencyDivisor: 20 + potencyDivisor: 20 Vitamin: Min: 1 Max: 4 - PotencyDivisor: 25 + potencyDivisor: 25 - type: seed id: orange @@ -269,11 +269,11 @@ Nutriment: Min: 1 Max: 5 - PotencyDivisor: 20 + potencyDivisor: 20 Vitamin: Min: 1 Max: 4 - PotencyDivisor: 25 + potencyDivisor: 25 - type: seed id: pineapple @@ -296,15 +296,15 @@ Nutriment: Min: 1 Max: 20 - PotencyDivisor: 20 + potencyDivisor: 20 Water: Min: 1 Max: 4 - PotencyDivisor: 25 + potencyDivisor: 25 Vitamin: Min: 1 Max: 2 - PotencyDivisor: 50 + potencyDivisor: 50 - type: seed id: potato @@ -326,11 +326,11 @@ Nutriment: Min: 1 Max: 10 - PotencyDivisor: 10 + potencyDivisor: 10 Vitamin: Min: 1 Max: 4 - PotencyDivisor: 25 + potencyDivisor: 25 - type: seed id: sugarcane @@ -353,7 +353,7 @@ Sugar: Min: 4 Max: 5 - PotencyDivisor: 5 + potencyDivisor: 5 - type: seed id: towercap @@ -426,15 +426,15 @@ Nutriment: Min: 1 Max: 7 - PotencyDivisor: 14 + potencyDivisor: 14 Vitamin: Min: 1 Max: 3 - PotencyDivisor: 33 + potencyDivisor: 33 Water: Min: 1 Max: 4 - PotencyDivisor: 25 + potencyDivisor: 25 - type: seed id: blueTomato @@ -460,15 +460,15 @@ Nutriment: Min: 1 Max: 5 - PotencyDivisor: 20 + potencyDivisor: 20 SpaceLube: Min: 5 Max: 15 - PotencyDivisor: 10 + potencyDivisor: 10 Vitamin: Min: 1 Max: 4 - PotencyDivisor: 25 + potencyDivisor: 25 - type: seed id: bloodTomato @@ -494,11 +494,11 @@ Blood: Min: 1 Max: 10 - PotencyDivisor: 10 + potencyDivisor: 10 Vitamin: Min: 1 Max: 4 - PotencyDivisor: 25 + potencyDivisor: 25 - type: seed id: eggplant @@ -523,11 +523,11 @@ Nutriment: Min: 1 Max: 10 - PotencyDivisor: 10 + potencyDivisor: 10 Vitamin: Min: 1 Max: 4 - PotencyDivisor: 25 + potencyDivisor: 25 - type: seed id: cabbage @@ -548,11 +548,11 @@ Nutriment: Min: 1 Max: 10 - PotencyDivisor: 10 + potencyDivisor: 10 Vitamin: Min: 1 Max: 4 - PotencyDivisor: 25 + potencyDivisor: 25 - type: seed id: garlic @@ -573,15 +573,15 @@ Nutriment: Min: 1 Max: 10 - PotencyDivisor: 10 + potencyDivisor: 10 Vitamin: Min: 1 Max: 4 - PotencyDivisor: 25 + potencyDivisor: 25 Allicin: Min: 1 Max: 8 - PotencyDivisor: 25 + potencyDivisor: 25 - type: seed id: apple @@ -603,11 +603,11 @@ Nutriment: Min: 1 Max: 10 - PotencyDivisor: 10 + potencyDivisor: 10 Vitamin: Min: 1 Max: 4 - PotencyDivisor: 25 + potencyDivisor: 25 - type: seed id: corn @@ -631,11 +631,11 @@ Nutriment: Min: 1 Max: 10 - PotencyDivisor: 20 + potencyDivisor: 20 Cornmeal: Min: 5 Max: 15 - PotencyDivisor: 10 + potencyDivisor: 10 - type: seed id: onion @@ -661,15 +661,15 @@ Nutriment: Min: 1 Max: 10 - PotencyDivisor: 10 + potencyDivisor: 10 Vitamin: Min: 1 Max: 4 - PotencyDivisor: 25 + potencyDivisor: 25 Allicin: Min: 1 Max: 4 - PotencyDivisor: 25 + potencyDivisor: 25 - type: seed id: onionred @@ -693,15 +693,15 @@ Nutriment: Min: 1 Max: 10 - PotencyDivisor: 10 + potencyDivisor: 10 Vitamin: Min: 1 Max: 4 - PotencyDivisor: 25 + potencyDivisor: 25 Allicin: Min: 1 Max: 4 - PotencyDivisor: 25 + potencyDivisor: 25 - type: seed id: chanterelle @@ -726,7 +726,7 @@ Nutriment: Min: 1 Max: 25 - PotencyDivisor: 25 + potencyDivisor: 25 - type: seed id: eggy @@ -750,7 +750,7 @@ Egg: Min: 1 Max: 10 - PotencyDivisor: 10 + potencyDivisor: 10 - type: seed id: cannabis @@ -761,6 +761,8 @@ packetPrototype: CannabisSeeds productPrototypes: - LeavesCannabis + mutationPrototypes: + - rainbowCannabis harvestRepeat: Repeat lifespan: 75 maturation: 8 @@ -775,7 +777,52 @@ THC: Min: 1 Max: 10 - PotencyDivisor: 10 + potencyDivisor: 10 + +- type: seed + id: rainbowCannabis + name: seeds-rainbow-cannabis-name + noun: seeds-noun-seeds + displayName: seeds-rainbow-cannabis-display-name + plantRsi: Objects/Specific/Hydroponics/rainbow_cannabis.rsi + packetPrototype: RainbowCannabisSeeds + productPrototypes: + - LeavesCannabisRainbow + harvestRepeat: Repeat + lifespan: 75 + maturation: 8 + production: 12 + yield: 2 + potency: 20 + growthStages: 3 + waterConsumption: 0.40 + idealLight: 9 + idealHeat: 298 + chemicals: + SpaceDrugs: + Min: 1 + Max: 15 + potencyDivisor: 10 + Lipolicide: + Min: 1 + Max: 15 + potencyDivisor: 10 + MindbreakerToxin: + Min: 1 + Max: 5 + potencyDivisor: 20 + Happiness: + Min: 1 + Max: 5 +# potencyDivisor: 20 +# ColorfulReagent: +# Min: 0 +# Max: 5 +# potencyDivisor: 20 + Psicodine: + Min: 0 + Max: 5 + potencyDivisor: 33 - type: seed id: tobacco @@ -800,7 +847,7 @@ Nicotine: Min: 1 Max: 10 - PotencyDivisor: 10 + potencyDivisor: 10 - type: seed id: nettle @@ -826,7 +873,7 @@ Histamine: Min: 1 Max: 25 - PotencyDivisor: 4 + potencyDivisor: 4 - type: seed id: deathNettle @@ -851,11 +898,11 @@ SulfuricAcid: Min: 1 Max: 15 - PotencyDivisor: 6 + potencyDivisor: 6 FluorosulfuricAcid: Min: 1 Max: 15 - PotencyDivisor: 6 + potencyDivisor: 6 - type: seed id: chili @@ -865,7 +912,7 @@ plantRsi: Objects/Specific/Hydroponics/chili.rsi packetPrototype: ChiliSeeds productPrototypes: - - FoodChili + - FoodChiliPepper mutationPrototypes: - chilly harvestRepeat: Repeat @@ -880,15 +927,15 @@ CapsaicinOil: Min: 1 Max: 10 - PotencyDivisor: 10 + potencyDivisor: 10 Nutriment: Min: 1 Max: 4 - PotencyDivisor: 25 + potencyDivisor: 25 Vitamin: Min: 1 Max: 4 - PotencyDivisor: 25 + potencyDivisor: 25 - type: seed id: chilly @@ -898,7 +945,7 @@ plantRsi: Objects/Specific/Hydroponics/chilly.rsi packetPrototype: ChillySeeds productPrototypes: - - FoodChilly + - FoodChillyPepper harvestRepeat: Repeat lifespan: 25 maturation: 6 @@ -911,15 +958,15 @@ Frostoil: Min: 1 Max: 10 - PotencyDivisor: 10 + potencyDivisor: 10 Nutriment: Min: 1 Max: 4 - PotencyDivisor: 25 + potencyDivisor: 25 Vitamin: Min: 1 Max: 4 - PotencyDivisor: 25 + potencyDivisor: 25 - type: seed id: poppy @@ -943,11 +990,11 @@ Nutriment: Min: 1 Max: 2 - Potencydivisor: 50 + potencyDivisor: 50 Bicaridine: Min: 1 Max: 20 - PotencyDivisor: 5 + potencyDivisor: 5 - type: seed id: aloe @@ -969,11 +1016,11 @@ Aloe: Min: 1 Max: 10 - PotencyDivisor: 10 + potencyDivisor: 10 Dermaline: Min: 1 Max: 10 - PotencyDivisor: 10 + potencyDivisor: 10 - type: seed id: lily @@ -997,11 +1044,11 @@ Nutriment: Min: 1 Max: 2 - Potencydivisor: 50 + potencyDivisor: 50 Bicaridine: Min: 1 Max: 20 - PotencyDivisor: 5 + potencyDivisor: 5 - type: seed id: lingzhi @@ -1023,11 +1070,11 @@ Ultravasculine: Min: 1 Max: 20 - PotencyDivisor: 5 + potencyDivisor: 5 Epinephrine: Min: 1 Max: 20 - PotencyDivisor: 5 + potencyDivisor: 5 - type: seed id: ambrosiaVulgaris @@ -1051,23 +1098,23 @@ Nutriment: Min: 1 Max: 2 - PotencyDivisor: 10 + potencyDivisor: 10 Bicaridine: Min: 1 Max: 5 - PotencyDivisor: 20 + potencyDivisor: 20 Kelotane: Min: 1 Max: 5 - PotencyDivisor: 20 + potencyDivisor: 20 Desoxyephedrine: Min: 1 Max: 10 - PotencyDivisor: 10 + potencyDivisor: 10 Vitamin: Min: 1 Max: 2 - Potencydivisor: 50 + potencyDivisor: 50 - type: seed id: ambrosiaDeus @@ -1089,19 +1136,19 @@ Nutriment: Min: 1 Max: 2 - PotencyDivisor: 10 + potencyDivisor: 10 Omnizine: # Don't kill me Min: 1 Max: 3 - PotencyDivisor: 35 + potencyDivisor: 35 SpaceDrugs: Min: 1 Max: 5 - PotencyDivisor: 20 + potencyDivisor: 20 Desoxyephedrine: Min: 1 Max: 10 - PotencyDivisor: 10 + potencyDivisor: 10 - type: seed id: galaxythistle @@ -1123,7 +1170,7 @@ Stellibinin: Min: 1 Max: 25 - PotencyDivisor: 4 + potencyDivisor: 4 - type: seed id: flyAmanita @@ -1146,11 +1193,11 @@ Amatoxin: Min: 1 Max: 25 - PotencyDivisor: 4 + potencyDivisor: 4 Nutriment: ## yumby :) Min: 1 Max: 5 - PotencyDivisor: 20 + potencyDivisor: 20 - type: seed id: gatfruit @@ -1172,11 +1219,11 @@ Nutriment: Min: 1 Max: 5 - PotencyDivisor: 20 + potencyDivisor: 20 Sulfur: Min: 1 Max: 5 - PotencyDivisor: 20 + potencyDivisor: 20 - type: seed id: rice @@ -1200,11 +1247,11 @@ Nutriment: Min: 1 Max: 20 - PotencyDivisor: 20 + potencyDivisor: 20 Rice: Min: 5 Max: 20 - PotencyDivisor: 20 + potencyDivisor: 20 - type: seed id: soybeans @@ -1229,7 +1276,7 @@ Nutriment: Min: 1 Max: 2 - PotencyDivisor: 50 + potencyDivisor: 50 - type: seed id: spacemansTrumpet @@ -1251,11 +1298,11 @@ Nutriment: Min: 1 Max: 5 - Potencydivisor: 50 + potencyDivisor: 50 PolypyryliumOligomers: Min: 1 Max: 15 - PotencyDivisor: 5 + potencyDivisor: 5 - type: seed id: koibean @@ -1278,11 +1325,11 @@ Nutriment: Min: 1 Max: 5 - PotencyDivisor: 20 + potencyDivisor: 20 CarpoToxin: Min: 1 Max: 4 - PotencyDivisor: 30 + potencyDivisor: 30 - type: seed id: grape @@ -1303,11 +1350,11 @@ Nutriment: Min: 1 Max: 5 - PotencyDivisor: 20 + potencyDivisor: 20 Vitamin: Min: 1 Max: 4 - PotencyDivisor: 25 + potencyDivisor: 25 - type: seed id: watermelon @@ -1328,15 +1375,15 @@ Nutriment: Min: 1 Max: 10 - PotencyDivisor: 10 + potencyDivisor: 10 Water: Min: 1 Max: 10 - PotencyDivisor: 10 + potencyDivisor: 10 Vitamin: Min: 1 Max: 5 - PotencyDivisor: 20 + potencyDivisor: 20 - type: seed id: cocoa @@ -1360,11 +1407,11 @@ Vitamin: Min: 1 Max: 4 - PotencyDivisor: 25 + potencyDivisor: 25 Nutriment: Min: 1 Max: 2 - PotencyDivisor: 50 + potencyDivisor: 50 - type: seed id: berries @@ -1386,11 +1433,11 @@ Nutriment: Min: 2 Max: 5 - PotencyDivisor: 30 + potencyDivisor: 30 Vitamin: Min: 1 Max: 4 - PotencyDivisor: 40 + potencyDivisor: 40 - type: seed id: bungo @@ -1415,11 +1462,11 @@ Nutriment: Min: 5 Max: 10 - PotencyDivisor: 20 + potencyDivisor: 20 Enzyme: Min: 5 Max: 10 - PotencyDivisor: 20 + potencyDivisor: 20 - type: seed id: pea @@ -1446,11 +1493,11 @@ Nutriment: Min: 1 Max: 3 - PotencyDivisor: 33 + potencyDivisor: 33 Vitamin: Min: 1 Max: 2 - PotencyDivisor: 50 + potencyDivisor: 50 - type: seed id: pumpkin @@ -1472,11 +1519,11 @@ PumpkinFlesh: Min: 1 Max: 20 - PotencyDivisor: 5 + potencyDivisor: 5 Vitamin: Min: 1 Max: 5 - PotencyDivisor: 20 + potencyDivisor: 20 - type: seed id: cotton @@ -1487,6 +1534,8 @@ packetPrototype: CottonSeeds productPrototypes: - CottonBol + mutationPrototypes: + - pyrotton lifespan: 25 maturation: 8 production: 3 @@ -1499,5 +1548,31 @@ Fiber: Min: 5 Max: 10 - PotencyDivisor: 20 + potencyDivisor: 20 +- type: seed + id: pyrotton + name: seeds-pyrotton-name + noun: seeds-noun-seeds + displayName: seeds-pyrotton-display-name + plantRsi: Objects/Specific/Hydroponics/pyrotton.rsi + packetPrototype: PyrottonSeeds + productPrototypes: + - PyrottonBol + lifespan: 25 + maturation: 8 + production: 3 + yield: 2 + potency: 5 + idealLight: 8 + growthStages: 3 + waterConsumption: 0.80 + chemicals: + Fiber: + Min: 5 + Max: 10 + potencyDivisor: 20 + Phlogiston: + Min: 4 + Max: 8 + potencyDivisor: 30 diff --git a/Resources/Prototypes/InventoryTemplates/aghost_inventory_template.yml b/Resources/Prototypes/InventoryTemplates/aghost_inventory_template.yml index 6252ad8e99..84806a051a 100644 --- a/Resources/Prototypes/InventoryTemplates/aghost_inventory_template.yml +++ b/Resources/Prototypes/InventoryTemplates/aghost_inventory_template.yml @@ -11,6 +11,7 @@ displayName: ID - name: id slotTexture: id + fullTextureName: template_small slotFlags: IDCARD slotGroup: SecondHotbar stripTime: 6 diff --git a/Resources/Prototypes/InventoryTemplates/arachnid_inventory_template.yml b/Resources/Prototypes/InventoryTemplates/arachnid_inventory_template.yml index a0c62b04cb..863d5758ff 100644 --- a/Resources/Prototypes/InventoryTemplates/arachnid_inventory_template.yml +++ b/Resources/Prototypes/InventoryTemplates/arachnid_inventory_template.yml @@ -63,6 +63,7 @@ displayName: Suit Storage - name: id slotTexture: id + fullTextureName: template_small slotFlags: IDCARD slotGroup: SecondHotbar stripTime: 6 @@ -72,6 +73,7 @@ displayName: ID - name: belt slotTexture: belt + fullTextureName: template_small slotFlags: BELT slotGroup: SecondHotbar stripTime: 6 @@ -80,6 +82,7 @@ displayName: Belt - name: back slotTexture: back + fullTextureName: template_small slotFlags: BACK slotGroup: SecondHotbar stripTime: 6 @@ -89,6 +92,7 @@ - name: pocket4 slotTexture: web + fullTextureName: template_small slotFlags: POCKET slotGroup: MainHotbar stripTime: 3 @@ -97,6 +101,7 @@ displayName: Pocket 4 - name: pocket3 slotTexture: web + fullTextureName: template_small slotFlags: POCKET slotGroup: MainHotbar stripTime: 3 @@ -112,6 +117,7 @@ displayName: Suit - name: pocket1 slotTexture: pocket + fullTextureName: template_small slotFlags: POCKET slotGroup: MainHotbar stripTime: 3 @@ -122,6 +128,7 @@ stripHidden: true - name: pocket2 slotTexture: pocket + fullTextureName: template_small slotFlags: POCKET slotGroup: MainHotbar stripTime: 3 @@ -138,4 +145,6 @@ uiWindowPos: 2,0 strippingWindowPos: 2,5 dependsOn: outerClothing + dependsOnComponents: + - type: AllowSuitStorage displayName: Suit Storage diff --git a/Resources/Prototypes/InventoryTemplates/corpse_inventory_template.yml b/Resources/Prototypes/InventoryTemplates/corpse_inventory_template.yml index 41fa7dc375..878ccb3d6b 100644 --- a/Resources/Prototypes/InventoryTemplates/corpse_inventory_template.yml +++ b/Resources/Prototypes/InventoryTemplates/corpse_inventory_template.yml @@ -55,6 +55,7 @@ displayName: Head - name: pocket1 slotTexture: pocket + fullTextureName: template_small slotFlags: POCKET slotGroup: MainHotbar stripTime: 3 @@ -65,6 +66,7 @@ stripHidden: true - name: pocket2 slotTexture: pocket + fullTextureName: template_small slotFlags: POCKET slotGroup: MainHotbar stripTime: 3 @@ -81,9 +83,12 @@ uiWindowPos: 2,0 strippingWindowPos: 2,5 dependsOn: outerClothing + dependsOnComponents: + - type: AllowSuitStorage displayName: Suit Storage - name: belt slotTexture: belt + fullTextureName: template_small slotFlags: BELT slotGroup: SecondHotbar stripTime: 6 diff --git a/Resources/Prototypes/InventoryTemplates/diona_inventory_template.yml b/Resources/Prototypes/InventoryTemplates/diona_inventory_template.yml index 4bbd18b136..619aefddc3 100644 --- a/Resources/Prototypes/InventoryTemplates/diona_inventory_template.yml +++ b/Resources/Prototypes/InventoryTemplates/diona_inventory_template.yml @@ -56,6 +56,7 @@ displayName: Head - name: pocket1 slotTexture: pocket + fullTextureName: template_small slotFlags: POCKET slotGroup: MainHotbar stripTime: 3 @@ -66,6 +67,7 @@ stripHidden: true - name: pocket2 slotTexture: pocket + fullTextureName: template_small slotFlags: POCKET slotGroup: MainHotbar stripTime: 3 @@ -82,9 +84,12 @@ uiWindowPos: 2,0 strippingWindowPos: 2,5 dependsOn: outerClothing + dependsOnComponents: + - type: AllowSuitStorage displayName: Suit Storage - name: id slotTexture: id + fullTextureName: template_small slotFlags: IDCARD slotGroup: SecondHotbar stripTime: 6 @@ -94,6 +99,7 @@ displayName: ID - name: belt slotTexture: belt + fullTextureName: template_small slotFlags: BELT slotGroup: SecondHotbar stripTime: 6 @@ -102,6 +108,7 @@ displayName: Belt - name: back slotTexture: back + fullTextureName: template_small slotFlags: BACK slotGroup: SecondHotbar stripTime: 6 diff --git a/Resources/Prototypes/InventoryTemplates/holoclown_inventory_template.yml b/Resources/Prototypes/InventoryTemplates/holoclown_inventory_template.yml index 57dce506ea..7be9c75015 100644 --- a/Resources/Prototypes/InventoryTemplates/holoclown_inventory_template.yml +++ b/Resources/Prototypes/InventoryTemplates/holoclown_inventory_template.yml @@ -3,6 +3,7 @@ slots: - name: pocket1 slotTexture: pocket + fullTextureName: template_small slotFlags: POCKET slotGroup: MainHotbar stripTime: 3 @@ -12,6 +13,7 @@ stripHidden: true - name: pocket2 slotTexture: pocket + fullTextureName: template_small slotFlags: POCKET slotGroup: MainHotbar stripTime: 3 diff --git a/Resources/Prototypes/InventoryTemplates/human_inventory_template.yml b/Resources/Prototypes/InventoryTemplates/human_inventory_template.yml index 574ecca35f..ff1447931f 100644 --- a/Resources/Prototypes/InventoryTemplates/human_inventory_template.yml +++ b/Resources/Prototypes/InventoryTemplates/human_inventory_template.yml @@ -62,6 +62,7 @@ displayName: Head - name: pocket1 slotTexture: pocket + fullTextureName: template_small slotFlags: POCKET slotGroup: MainHotbar stripTime: 3 @@ -72,6 +73,7 @@ stripHidden: true - name: pocket2 slotTexture: pocket + fullTextureName: template_small slotFlags: POCKET slotGroup: MainHotbar stripTime: 3 @@ -88,9 +90,12 @@ uiWindowPos: 2,0 strippingWindowPos: 2,5 dependsOn: outerClothing + dependsOnComponents: + - type: AllowSuitStorage displayName: Suit Storage - name: id slotTexture: id + fullTextureName: template_small slotFlags: IDCARD slotGroup: SecondHotbar stripTime: 6 @@ -100,6 +105,7 @@ displayName: ID - name: belt slotTexture: belt + fullTextureName: template_small slotFlags: BELT slotGroup: SecondHotbar stripTime: 6 @@ -108,6 +114,7 @@ displayName: Belt - name: back slotTexture: back + fullTextureName: template_small slotFlags: BACK slotGroup: SecondHotbar stripTime: 6 diff --git a/Resources/Prototypes/InventoryTemplates/kangaroo_inventory_template.yml b/Resources/Prototypes/InventoryTemplates/kangaroo_inventory_template.yml index fb7dee1ec2..5f81cdebc6 100644 --- a/Resources/Prototypes/InventoryTemplates/kangaroo_inventory_template.yml +++ b/Resources/Prototypes/InventoryTemplates/kangaroo_inventory_template.yml @@ -35,6 +35,7 @@ - name: belt slotTexture: belt + fullTextureName: template_small slotFlags: BELT slotGroup: SecondHotbar stripTime: 6 @@ -47,6 +48,7 @@ - name: pocket1 slotTexture: pocket + fullTextureName: template_small slotFlags: POCKET slotGroup: MainHotbar stripTime: 3 @@ -60,6 +62,7 @@ slots: - name: pocket1 slotTexture: pocket + fullTextureName: template_small slotFlags: POCKET slotGroup: MainHotbar stripTime: 3 diff --git a/Resources/Prototypes/InventoryTemplates/monkey_inventory_template.yml b/Resources/Prototypes/InventoryTemplates/monkey_inventory_template.yml index 5af23dabac..19875f7e1b 100644 --- a/Resources/Prototypes/InventoryTemplates/monkey_inventory_template.yml +++ b/Resources/Prototypes/InventoryTemplates/monkey_inventory_template.yml @@ -29,6 +29,7 @@ displayName: Jumpsuit - name: id slotTexture: id + fullTextureName: template_small slotFlags: IDCARD slotGroup: SecondHotbar stripTime: 6 @@ -44,6 +45,8 @@ uiWindowPos: 2,0 strippingWindowPos: 2,5 dependsOn: outerClothing + dependsOnComponents: + - type: AllowSuitStorage displayName: Suit Storage - name: outerClothing slotTexture: suit diff --git a/Resources/Prototypes/Language/Species-Specific/diona.yml b/Resources/Prototypes/Language/Species-Specific/diona.yml new file mode 100644 index 0000000000..76b62163ff --- /dev/null +++ b/Resources/Prototypes/Language/Species-Specific/diona.yml @@ -0,0 +1,17 @@ +# Spoken by dionas. +# TODO: Replace this with a much better language. +- type: language + id: RootSpeak + speech: + color: "#ce5e14dd" + fontId: Noganas + obfuscation: + !type:SyllableObfuscation + minSyllables: 1 + maxSyllables: 5 + replacement: + - hs + - zt + - kr + - st + - sh \ No newline at end of file diff --git a/Resources/Prototypes/Language/Species-Specific/harpy.yml b/Resources/Prototypes/Language/Species-Specific/harpy.yml new file mode 100644 index 0000000000..143b089bd1 --- /dev/null +++ b/Resources/Prototypes/Language/Species-Specific/harpy.yml @@ -0,0 +1,116 @@ +- type: language + id: ValyrianStandard + speech: + fontId: Cambria + color: "#008ecc" + obfuscation: + !type:SyllableObfuscation + minSyllables: 2 + maxSyllables: 5 + replacement: + - š + - ž + - ź + - ż + - ö + - ü + - çi + - bü + - ca + - çu + - dü + - do + - fa + - fe + - fi + - gü + - ha + - je + - jü + - la + - le + - li + - me + - mi + - mo + - çe + - nj + - ba + - ce + - da + - fi + - go + - ha + - ji + - ka + - la + - ma + - na + - pa + - ra + - sa + - ta + - wa + - za + - ab + - ed + - if + - og + - up + - yk + - za + - ta + - va + - čk + - žd + - sak + - anz + - emn + - okl + - upn + - bab + - cic + - ded + - fig + - gog + - hib + - juj + - kik + - lal + - mam + - nan + - pap + - rar + - sas + - tat + - wab + - zab + - stras + - bram + - klam + - tram + - stry + - zrak + - deck + - mist + - ale + - ogn + - emt + - brat + - skar + - plik + - klat + - ae + - ai + - au + - ei + - ou + - bl + - dr + - fl + - gr + - pr + - sz + - cz + - zk + - jn diff --git a/Resources/Prototypes/Language/Species-Specific/moth.yml b/Resources/Prototypes/Language/Species-Specific/moth.yml new file mode 100644 index 0000000000..ed0a6009c5 --- /dev/null +++ b/Resources/Prototypes/Language/Species-Specific/moth.yml @@ -0,0 +1,69 @@ +# Spoken by moths. +# TODO: Replace this with a much better language. +- type: language + id: Moffic + speech: + color: "#c7df2edd" + fontId: Copperplate + obfuscation: + !type:SyllableObfuscation + minSyllables: 2 # Replacements are really short + maxSyllables: 4 + replacement: + - år + - i + - går + - sek + - mo + - ff + - ok + - gj + - ø + - gå + - la + - le + - lit + - ygg + - van + - dår + - næ + - møt + - idd + - hvo + - ja + - på + - han + - så + - ån + - det + - att + - nå + - gö + - bra + - int + - tyc + - om + - när + - två + - må + - dag + - sjä + - vii + - vuo + - eil + - tun + - käyt + - teh + - vä + - hei + - huo + - suo + - ää + - ten + - ja + - heu + - stu + - uhr + - kön + - we + - hön \ No newline at end of file diff --git a/Resources/Prototypes/Language/Species-Specific/nekomimetic.yml b/Resources/Prototypes/Language/Species-Specific/nekomimetic.yml new file mode 100644 index 0000000000..3610e5fa50 --- /dev/null +++ b/Resources/Prototypes/Language/Species-Specific/nekomimetic.yml @@ -0,0 +1,60 @@ +# A mess of broken Japanese, spoken by Felinds and Oni +# TODO: Replace this with a much better language. +- type: language + id: Nekomimetic + speech: + color: "#df57aaee" + fontId: Manga + obfuscation: + !type:SyllableObfuscation + minSyllables: 1 + maxSyllables: 3 # May be too long even, we'll see. + replacement: + - neko + - nyan + - mimi + - moe + - mofu + - fuwa + - kyaa + - kawaii + - poka + - munya + - puni + - munyu + - ufufu + - icha + - doki + - kyun + - kusu + - nya + - nyaa + - desu + - kis + - ama + - chuu + - baka + - hewo + - boop + - gato + - kit + - sune + - yori + - sou + - baka + - chan + - san + - kun + - mahou + - yatta + - suki + - usagi + - domo + - ori + - uwa + - zaazaa + - shiku + - puru + - ira + - heto + - etto \ No newline at end of file diff --git a/Resources/Prototypes/Language/Species-Specific/reptilian.yml b/Resources/Prototypes/Language/Species-Specific/reptilian.yml new file mode 100644 index 0000000000..6f9a10efa6 --- /dev/null +++ b/Resources/Prototypes/Language/Species-Specific/reptilian.yml @@ -0,0 +1,117 @@ +# Spoken by Unathi. +- type: language + id: Draconic + speech: + color: "#2aca2add" + obfuscation: + !type:SyllableObfuscation + minSyllables: 2 + maxSyllables: 4 + replacement: + - za + - az + - ze + - ez + - zi + - iz + - zo + - oz + - zu + - uz + - zs + - sz + - ha + - ah + - he + - eh + - hi + - ih + - ho + - oh + - hu + - uh + - hs + - sh + - la + - al + - le + - el + - li + - il + - lo + - ol + - lu + - ul + - ls + - sl + - ka + - ak + - ke + - ek + - ki + - ik + - ko + - ok + - ku + - uk + - ks + - sk + - sa + - as + - se + - es + - si + - is + - so + - os + - su + - us + - ss + - ss + - ra + - ar + - re + - er + - ri + - ir + - ro + - or + - ru + - ur + - rs + - sr + - a + - a + - e + - e + - i + - i + - o + - o + - u + - u + - s + - s + +# Reptilian-Specific "Rare" Language +# !Do Not Make A Translator For This Language. +- type: language + id: Azaziba + speech: + color: "#2aca2add" + obfuscation: + !type:SyllableObfuscation + minSyllables: 2 + maxSyllables: 4 + replacement: + - azs + - zis + - zau + - azua + - skiu + - zuakz + - izo + - aei + - ki + - kut + - zo diff --git a/Resources/Prototypes/Language/Species-Specific/slimeperson.yml b/Resources/Prototypes/Language/Species-Specific/slimeperson.yml new file mode 100644 index 0000000000..a3c1f91a17 --- /dev/null +++ b/Resources/Prototypes/Language/Species-Specific/slimeperson.yml @@ -0,0 +1,17 @@ +# Spoken by slimes. +# TODO: Replace this with a much better language. +- type: language + id: Bubblish + speech: + color: "#00a3e2dd" + fontId: RubikBubbles + obfuscation: + !type:SyllableObfuscation + minSyllables: 1 + maxSyllables: 3 + replacement: + - blob + - plop + - pop + - bop + - boop \ No newline at end of file diff --git a/Resources/Prototypes/Language/Species-Specific/vulpkanin.yml b/Resources/Prototypes/Language/Species-Specific/vulpkanin.yml new file mode 100644 index 0000000000..17a48493a4 --- /dev/null +++ b/Resources/Prototypes/Language/Species-Specific/vulpkanin.yml @@ -0,0 +1,68 @@ +# Spoken by the Vulpkanin race. +# TODO: Replace this with a much better language. +- type: language + id: Canilunzt + speech: + color: "#d69b3dcc" + obfuscation: + !type:SyllableObfuscation + minSyllables: 1 + maxSyllables: 4 + replacement: + - rur + - ya + - cen + - rawr + - bar + - kuk + - tek + - qat + - uk + - wu + - vuh + - tah + - tch + - schz + - auch + - ist + - ein + - entch + - zwichs + - tut + - mir + - wo + - bis + - es + - vor + - nic + - gro + - enem + - zandt + - tzch + - noch + - hel + - ischt + - far + - wa + - baram + - iereng + - tech + - lach + - sam + - mak + - lich + - gen + - or + - ag + - eck + - gec + - stag + - onn + - bin + - ket + - jarl + - vulf + - einech + - cresthz + - azunein + - ghzth \ No newline at end of file diff --git a/Resources/Prototypes/Language/Standard/elyran.yml b/Resources/Prototypes/Language/Standard/elyran.yml new file mode 100644 index 0000000000..c2c90e7b6f --- /dev/null +++ b/Resources/Prototypes/Language/Standard/elyran.yml @@ -0,0 +1,86 @@ +- type: language + id: Elyran + speech: + color: "#8282fbaa" + obfuscation: + !type:SyllableObfuscation + minSyllables: 1 + maxSyllables: 4 + replacement: + - af + - if + - ba + - ta + - tha + - id + - jem + - ha + - kha + - dal + - dhl + - ra + - zay + - sen + - um + - shn + - sid + - ad + - ta + - za + - ayn + - gha + - zir + - yn + - fa + - qaf + - iam + - mim + - al + - ja + - non + - ha + - waw + - ya + - hem + - zah + - hml + - ks + - ini + - da + - ks + - iga + - ih + - la + - ulf + - xe + - ayw + - sit + - ah + - aarah + - jalaa + - sirt + - kurt + - turhk + - ust + - irk + - kir + - mir + - ach + - oglu + - bolu + - shek + - she + - ghoz + - miya + - ejdan + - haaz + - quq + - taab + - shanha + - an + - saa + - seh + - an' + - e' + - a' + - em' \ No newline at end of file diff --git a/Resources/Prototypes/Language/Standard/freespeak.yml b/Resources/Prototypes/Language/Standard/freespeak.yml new file mode 100644 index 0000000000..831c2a67ff --- /dev/null +++ b/Resources/Prototypes/Language/Standard/freespeak.yml @@ -0,0 +1,259 @@ +- type: language + id: Freespeak + speech: + color: "#597d35" + obfuscation: + !type:SyllableObfuscation + minSyllables: 1 + maxSyllables: 3 + replacement: + - a + - aan + - aas + - ab + - aba + - ad + - aee + - aft + - ag + - ai + - aise + - ak + - akee + - aq + - ar + - ata + - aur + - aus + - ba + - baat + - bach + - bad + - bahe + - band + - be + - ben + - ber + - bhaa + - bhu + - bra + - burt + - cap + - cer + - ch + - cha + - chaar + - chale + - chalo + - chil + - com + - da + - daa + - daaj + - dat + - de + - dee + - dhaa + - di + - die + - dik + - din + - diz + - do + - dos + - dosh + - durch + - eer + - ek + - er + - es + - fal + - fang + - fra + - fun + - ga + - gan + - gao + - gee + - geet + - gern + - gir + - gon + - gren + - gri + - gu + - guda + - ha + - haa + - hai + - hain + - har + - hat + - he + - hee + - heer + - hekt + - heu + - hit + - hn + - ho + - hua + - huk + - hul + - ich + - ig + - in + - isch + - ja + - jaa + - jad + - jan + - jao + - jar + - jas + - jee + - jiao + - jin + - jing + - un + - ka + - kaha + - kana + - kar + - kara + - karo + - ke + - kee + - keln + - kha + - khada + - khe + - khi + - ko + - koo + - ky + - la + - laa + - laat + - lad + - lada + - lana + - lane + - le + - lee + - leiden + - leis + - len + - lie + - lo + - maa + - maan + - mod + - most + - muj + - mujhe + - mukt + - na + - naya + - ne + - nee + - net + - neta + - nir + - nka + - oon + - oop + - pa + - paa + - pet + - phen + - phot + - pi + - plo + - pra + - que + - ra + - raa + - rahe + - raho + - ran + - rana + - rar + - re + - ri + - rie + - rin + - ro + - rona + - rosh + - rtiv + - saa + - saal + - saath + - san + - santu + - sch + - se + - sen + - sh + - sha + - shee + - shi + - shn + - sht + - shuo + - soch + - sol + - soo + - ssa + - ster + - suk + - sur + - ta + - taan + - tak + - taka + - tal + - tan + - tar + - ten + - tend + - th + - tho + - tili + - to + - ton + - tr + - tu + - tum + - tung + - udaa + - ugr + - unge + - ut + - va + - vaa + - vaad + - vaib + - ve + - ven + - ver + - vi + - vis + - vol + - wic + - wu + - wut + - xi + - xiao + - ya + - yah + - yon + - you + - zas + - ze + - zhu + - zi + - zo + - zorn + - zt diff --git a/Resources/Prototypes/Language/Standard/solcommon.yml b/Resources/Prototypes/Language/Standard/solcommon.yml new file mode 100644 index 0000000000..88c5470154 --- /dev/null +++ b/Resources/Prototypes/Language/Standard/solcommon.yml @@ -0,0 +1,258 @@ +- type: language + id: SolCommon + speech: + color: "#8282fbaa" + obfuscation: + !type:SyllableObfuscation + minSyllables: 1 + maxSyllables: 4 + replacement: + - a + - abe + - ade + - ai + - an + - ana + - ba + - bae + - bai + - bang + - bao + - bei + - ben + - beo + - bi + - bian + - bing + - bo + - bu + - bugu + - bun + - cai + - can + - cao + - cau + - chan + - chen + - cheong + - chiu + - chong + - chyo + - da + - dan + - dao + - de + - deun + - duo + - eon + - eun + - eusi + - feng + - fu + - ga + - gak + - gan + - gang + - gao + - ge + - gei + - gen + - geo + - gil + - go + - gou + - gu + - gua + - gui + - gul + - gun + - guo + - gwi + - ha + - hai + - hal + - han + - hap + - hara + - he + - hego + - hen + - hon + - hoo + - hu + - hua + - hun + - hyeong + - i + - jae + - jeo + - jeon + - ji + - jia + - jian + - jiang + - jie + - jong + - ju + - jue + - juede + - jung + - juzi + - ka + - kang + - kawa + - ke + - keun + - ki + - kin + - ko + - kore + - kou + - ku + - kuda + - kun + - kyu + - lang + - lao + - leng + - leung + - li + - lian + - liang + - lie + - ling + - lizi + - lleo + - long + - lu + - ma + - mah + - me + - mei + - meinu + - men + - meng + - meog + - meoni + - mi + - mian + - min + - mo + - mot + - mu + - mun + - na + - nae + - nai + - nari + - ne + - ni + - nii + - nim + - nin + - nop + - nu + - o + - oba + - oga + - oji + - oka + - ong + - op + - oto + - pa + - pai + - pang + - pin + - ping + - pong + - pu + - pum + - pye + - qi + - qie + - qing + - ra + - rei + - ren + - ri + - ru + - ruan + - sa + - sai + - sama + - san + - sang + - se + - sei + - sen + - seo + - seon + - seong + - shang + - shen + - sheng + - shi + - sho + - shui + - si + - su + - sui + - sum + - sun + - swi + - ta + - tae + - tai + - tame + - tamen + - tan + - te + - tei + - ti + - tian + - to + - ton + - tsu + - ul + - wa + - wan + - wang + - wei + - wo + - xi + - xian + - xiao + - xing + - xiong + - xiu + - xu + - xuan + - xue + - ya + - yan + - yang + - yeong + - yi + - yige + - yin + - ying + - yiqi + - yong + - you + - yu + - yuli + - yuyi + - zai + - zao + - zhan + - zhang + - zhe + - zhen + - zheng + - zhuo + - zi + - zo + - zu + - zun + - zuo \ No newline at end of file diff --git a/Resources/Prototypes/Language/Standard/taucetibasic.yml b/Resources/Prototypes/Language/Standard/taucetibasic.yml new file mode 100644 index 0000000000..96426f6c24 --- /dev/null +++ b/Resources/Prototypes/Language/Standard/taucetibasic.yml @@ -0,0 +1,256 @@ +# The "Default Language" other than Universal. +- type: language + id: TauCetiBasic + obfuscation: + !type:SyllableObfuscation + minSyllables: 1 + maxSyllables: 3 + replacement: + - a + - ado + - ago + - aj + - ajn + - al + - alt + - am + - amas + - an + - ang + - ante + - ap + - ard + - arma + - aro + - as + - aur + - aut + - aw + - ba + - bal + - bao + - be + - beau + - bel + - bi + - bit + - blu + - bo + - bod + - boj + - bojn + - bu + - but + - ca + - caj + - ce + - cer + - chun + - ci + - cion + - coj + - cor + - da + - daj + - dan + - de + - den + - dis + - do + - dor + - dorm + - eco + - ego + - ek + - eks + - en + - ero + - es + - est + - et + - eve + - fa + - fe + - fel + - fla + - foj + - fra + - fraz + - fros + - ful + - fut + - ga + - gan + - gar + - gi + - gis + - go + - gran + - ha + - han + - hav + - hom + - hong + - hu + - hum + - hushi + - ia + - iaj + - ica + - id + - idon + - il + - in + - ing + - io + - is + - iton + - iza + - ja + - ji + - jirou + - joj + - ka + - kaj + - kajo + - kan + - ke + - ket + - ki + - kna + - krio + - ku + - kui + - kuk + - kun + - kur + - la + - laca + - leng + - les + - li + - liao + - lib + - ling + - lis + - lo + - lon + - long + - lu + - lud + - ma + - mal + - man + - me + - mego + - mero + - mi + - mia + - min + - mo + - moj + - mola + - mon + - mul + - ne + - ner + - ni + - nio + - nu + - of + - oj + - om + - ou + - pe + - pi + - plan + - pli + - po + - por + - post + - pre + - prin + - pru + - pu + - pur + - qiu + - que + - ra + - ras + - re + - ri + - rig + - ril + - ro + - roj + - ron + - roso + - rou + - ru + - sa + - san + - sci + - sek + - shi + - shiia + - shiue + - shiwu + - shu + - shui + - si + - siaj + - sku + - so + - som + - sti + - str + - stre + - su + - suno + - ta + - tan + - tas + - te + - tel + - tem + - the + - ti + - tian + - tita + - tiu + - to + - toj + - ton + - tran + - tre + - tri + - trin + - tro + - trus + - un + - undo + - uno + - uz + - va + - var + - varm + - vas + - ve + - vek + - ven + - ves + - vi + - via + - vin + - vino + - vint + - vir + - von + - vu + - whe + - wu + - yong + - zem + - zo + - zoj + - zon \ No newline at end of file diff --git a/Resources/Prototypes/Language/Standard/tradeband.yml b/Resources/Prototypes/Language/Standard/tradeband.yml new file mode 100644 index 0000000000..96415dc5a6 --- /dev/null +++ b/Resources/Prototypes/Language/Standard/tradeband.yml @@ -0,0 +1,258 @@ +- type: language + id: Tradeband + speech: + color: "#597d35" + obfuscation: + !type:SyllableObfuscation + minSyllables: 1 + maxSyllables: 3 + replacement: + - a + - acc + - ai + - al + - ali + - am + - ama + - ami + - amo + - an + - ang + - arme + - ave + - ba + - bai + - bar + - bat + - bi + - blie + - bris + - ca + - can + - cant + - car + - care + - ce + - ci + - cis + - cit + - cla + - co + - cul + - cur + - curt + - da + - dam + - dans + - de + - di + - dier + - dim + - dins + - dorm + - du + - duro + - e + - eaux + - ec + - ecto + - ees + - ego + - el + - en + - ent + - er + - ere + - eres + - eri + - ero + - es + - et + - ex + - far + - fi + - fic + - fine + - fol + - foll + - fri + - fro + - gen + - gil + - go + - gran + - hab + - ho + - huc + - ia + - iam + - ibus + - idor + - ie + - iens + - ier + - ieur + - iis + - il + - in + - ine + - int + - ir + - is + - ise + - it + - itt + - jar + - je + - jo + - jor + - la + - lar + - lav + - le + - lees + - ler + - les + - li + - lib + - lie + - lo + - lu + - ma + - man + - manu + - mar + - mari + - mas + - me + - mea + - mee + - mejo + - men + - mes + - meum + - meus + - mi + - mier + - min + - mine + - mit + - mo + - moi + - mon + - mons + - mors + - mou + - mul + - na + - nam + - ne + - nee + - nent + - nes + - ni + - nit + - nom + - nu + - num + - o + - oc + - occ + - oja + - om + - omni + - or + - ori + - oro + - os + - ou + - oub + - pa + - par + - pars + - pas + - plu + - pluv + - po + - pol + - pos + - pou + - pous + - pre + - pu + - pug + - pus + - que + - qui + - re + - ri + - ric + - riga + - rito + - ro + - rom + - sa + - sal + - se + - ser + - sers + - ses + - sim + - sion + - so + - sol + - som + - sou + - sper + - sse + - ste + - su + - suis + - sul + - sur + - ta + - tar + - te + - teau + - tem + - temp + - ten + - tene + - tes + - ti + - tibus + - tien + - tion + - to + - tol + - ton + - tons + - tout + - tra + - trai + - tre + - trou + - tuo + - tus + - tut + - ues + - ui + - ul + - um + - un + - upa + - us + - ut + - ux + - va + - vail + - ve + - ven + - veni + - vi + - viam + - vie + - vo + - xus + - za + - zio diff --git a/Resources/Prototypes/Language/animal.yml b/Resources/Prototypes/Language/animal.yml new file mode 100644 index 0000000000..4617820001 --- /dev/null +++ b/Resources/Prototypes/Language/animal.yml @@ -0,0 +1,186 @@ +# Languages spoken by various critters. +- type: language + id: Cat + obfuscation: + !type:SyllableObfuscation + minSyllables: 1 + maxSyllables: 2 + replacement: + - murr + - meow + - purr + - mrow + +- type: language + id: Dog + obfuscation: + !type:SyllableObfuscation + minSyllables: 1 + maxSyllables: 2 + replacement: + - woof + - bark + - ruff + - bork + - raff + - garr + +- type: language + id: Fox + obfuscation: + !type:SyllableObfuscation + minSyllables: 1 + maxSyllables: 2 + replacement: + - ruff + - raff + - garr + - yip + - yap + - myah + +- type: language + id: Xeno + obfuscation: + !type:SyllableObfuscation + minSyllables: 1 + maxSyllables: 8 # I was crazy once + replacement: + - s + - S + +- type: language + id: Monkey + obfuscation: + !type:SyllableObfuscation + minSyllables: 1 + maxSyllables: 8 # They locked me in a room... + replacement: + - o + - k + +- type: language + id: Mouse + obfuscation: + !type:SyllableObfuscation + minSyllables: 2 + maxSyllables: 3 + replacement: + - squ + - eak + - pi + - ep + - chuu + - ee + - fwi + - he + +- type: language + id: Chicken + obfuscation: + !type:SyllableObfuscation + minSyllables: 1 + maxSyllables: 3 + replacement: + - co + - coo + - ot + +- type: language + id: Duck + obfuscation: + !type:SyllableObfuscation + minSyllables: 1 + maxSyllables: 3 + replacement: + - qu + - ack + - quack + +- type: language + id: Cow + obfuscation: + !type:SyllableObfuscation + minSyllables: 1 + maxSyllables: 3 + replacement: + - moo + - mooo + +- type: language + id: Sheep + obfuscation: + !type:SyllableObfuscation + minSyllables: 1 + maxSyllables: 3 + replacement: + - ba + - baa + - aa + +- type: language + id: Kangaroo + obfuscation: + !type:SyllableObfuscation + minSyllables: 1 + maxSyllables: 3 + replacement: + - shre + - ack + - chuu + - choo + +- type: language + id: Pig + obfuscation: + !type:SyllableObfuscation + minSyllables: 1 + maxSyllables: 3 + replacement: + - oink # Please someone come up with something better + +- type: language + id: Crab + obfuscation: + !type:SyllableObfuscation + minSyllables: 1 + maxSyllables: 3 + replacement: + - click + - clack + - ti + - pi + - tap + - cli + - ick + +- type: language + id: Kobold + obfuscation: + !type:SyllableObfuscation + minSyllables: 2 + maxSyllables: 4 + replacement: + - yip + - yap + - gar + - grr + - ar + - scre + - et + - gronk + - hiss + - ss + - ee + +- type: language + id: Hissing + obfuscation: + !type:SyllableObfuscation + minSyllables: 2 + maxSyllables: 4 + replacement: + - hss + - iss + - ss + - is diff --git a/Resources/Prototypes/Language/genericlanguages.yml b/Resources/Prototypes/Language/genericlanguages.yml new file mode 100644 index 0000000000..8d172cdae9 --- /dev/null +++ b/Resources/Prototypes/Language/genericlanguages.yml @@ -0,0 +1,45 @@ +# The universal language. This is technically used as a fallback for simulating the pre-languages +# style of Chat, and is not normally accessible by players. It is however used by characters +# with the Xenoglossy psionic power, as well as Ghosts, and AGhosts. +- type: language + id: Universal + obfuscation: + !type:ReplacementObfuscation + replacement: + - "*incomprehensible*" # Never actually used + +# Used by Robots. +# TODO: Replace this with much better languages. Yes, robots can have languages. +- type: language + id: RobotTalk + speech: + fontId: Monospace + obfuscation: + !type:SyllableObfuscation + minSyllables: 1 + maxSyllables: 10 # Crazy + replacement: + - 0 + - 1 + +# Example of a sign language. Used by the Sign Language trait. +- type: language + id: Sign + speech: + allowRadio: false + requireSpeech: false + color: "#dddddd" + messageWrapOverrides: + Speak: chat-sign-language-message-wrap + Whisper: chat-sign-language-whisper-wrap + speechVerbOverrides: + - chat-speech-verb-sign-1 + - chat-speech-verb-sign-2 + - chat-speech-verb-sign-3 + obfuscation: + !type:ReplacementObfuscation + replacement: + - something + - a cryptic message + - a signal + - a message diff --git a/Resources/Prototypes/Language/languages.yml b/Resources/Prototypes/Language/languages.yml deleted file mode 100644 index 65af93e02d..0000000000 --- a/Resources/Prototypes/Language/languages.yml +++ /dev/null @@ -1,614 +0,0 @@ -# The universal language, assumed if the entity has a UniversalLanguageSpeakerComponent. -# Do not use otherwise. Making an entity explicitly understand/speak this language will NOT have the desired effect. -- type: language - id: Universal - obfuscation: - !type:ReplacementObfuscation - replacement: - - "*incomprehensible*" # Never actually used - -# The common galactic tongue. -- type: language - id: GalacticCommon - obfuscation: - !type:SyllableObfuscation - minSyllables: 1 - maxSyllables: 3 - replacement: - - blah - - blah - - blah - - dingle-doingle - - dingle - - dangle - - jibber-jabber - - jubber - - bleh - - zippity - - zoop - - wibble - - wobble - - wiggle - - yada - - meh - - neh - - nah - - wah - -# Spoken by slimes. -- type: language - id: Bubblish - speech: - color: "#00a3e2dd" - fontId: RubikBubbles - obfuscation: - !type:SyllableObfuscation - minSyllables: 1 - maxSyllables: 3 - replacement: - - blob - - plop - - pop - - bop - - boop - -# Spoken by moths. -- type: language - id: Moffic - speech: - color: "#c7df2edd" - fontId: Copperplate - obfuscation: - !type:SyllableObfuscation - minSyllables: 2 # Replacements are really short - maxSyllables: 4 - replacement: - - år - - i - - går - - sek - - mo - - ff - - ok - - gj - - ø - - gå - - la - - le - - lit - - ygg - - van - - dår - - næ - - møt - - idd - - hvo - - ja - - på - - han - - så - - ån - - det - - att - - nå - - gö - - bra - - int - - tyc - - om - - när - - två - - må - - dag - - sjä - - vii - - vuo - - eil - - tun - - käyt - - teh - - vä - - hei - - huo - - suo - - ää - - ten - - ja - - heu - - stu - - uhr - - kön - - we - - hön - -# Spoken by dionas. -- type: language - id: RootSpeak - speech: - color: "#ce5e14dd" - fontId: Noganas - obfuscation: - !type:SyllableObfuscation - minSyllables: 1 - maxSyllables: 5 - replacement: - - hs - - zt - - kr - - st - - sh - -# A mess of broken Japanese, spoken by Felinds and Oni -- type: language - id: Nekomimetic - speech: - color: "#df57aaee" - fontId: Manga - obfuscation: - !type:SyllableObfuscation - minSyllables: 1 - maxSyllables: 3 # May be too long even, we'll see. - replacement: - - neko - - nyan - - mimi - - moe - - mofu - - fuwa - - kyaa - - kawaii - - poka - - munya - - puni - - munyu - - ufufu - - icha - - doki - - kyun - - kusu - - nya - - nyaa - - desu - - kis - - ama - - chuu - - baka - - hewo - - boop - - gato - - kit - - sune - - yori - - sou - - baka - - chan - - san - - kun - - mahou - - yatta - - suki - - usagi - - domo - - ori - - uwa - - zaazaa - - shiku - - puru - - ira - - heto - - etto - -# Spoken by the Lizard race. -- type: language - id: Draconic - speech: - color: "#2aca2add" - obfuscation: - !type:SyllableObfuscation - minSyllables: 2 - maxSyllables: 4 - replacement: - - za - - az - - ze - - ez - - zi - - iz - - zo - - oz - - zu - - uz - - zs - - sz - - ha - - ah - - he - - eh - - hi - - ih - - ho - - oh - - hu - - uh - - hs - - sh - - la - - al - - le - - el - - li - - il - - lo - - ol - - lu - - ul - - ls - - sl - - ka - - ak - - ke - - ek - - ki - - ik - - ko - - ok - - ku - - uk - - ks - - sk - - sa - - as - - se - - es - - si - - is - - so - - os - - su - - us - - ss - - ss - - ra - - ar - - re - - er - - ri - - ir - - ro - - or - - ru - - ur - - rs - - sr - - a - - a - - e - - e - - i - - i - - o - - o - - u - - u - - s - - s - -# Spoken by the Vulpkanin race. -- type: language - id: Canilunzt - speech: - color: "#d69b3dcc" - obfuscation: - !type:SyllableObfuscation - minSyllables: 1 - maxSyllables: 4 - replacement: - - rur - - ya - - cen - - rawr - - bar - - kuk - - tek - - qat - - uk - - wu - - vuh - - tah - - tch - - schz - - auch - - ist - - ein - - entch - - zwichs - - tut - - mir - - wo - - bis - - es - - vor - - nic - - gro - - enem - - zandt - - tzch - - noch - - hel - - ischt - - far - - wa - - baram - - iereng - - tech - - lach - - sam - - mak - - lich - - gen - - or - - ag - - eck - - gec - - stag - - onn - - bin - - ket - - jarl - - vulf - - einech - - cresthz - - azunein - - ghzth - -# The common language of the Sol system. -- type: language - id: SolCommon - speech: - color: "#8282fbaa" - obfuscation: - !type:SyllableObfuscation - minSyllables: 1 - maxSyllables: 4 - replacement: - - tao - - shi - - tzu - - yi - - com - - be - - is - - i - - op - - vi - - ed - - lec - - mo - - cle - - te - - dis - - e - -- type: language - id: RobotTalk - speech: - fontId: Monospace - obfuscation: - !type:SyllableObfuscation - minSyllables: 1 - maxSyllables: 10 # Crazy - replacement: - - 0 - - 1 - -# Languages spoken by various critters. -- type: language - id: Cat - obfuscation: - !type:SyllableObfuscation - minSyllables: 1 - maxSyllables: 2 - replacement: - - murr - - meow - - purr - - mrow - -- type: language - id: Dog - obfuscation: - !type:SyllableObfuscation - minSyllables: 1 - maxSyllables: 2 - replacement: - - woof - - bark - - ruff - - bork - - raff - - garr - -- type: language - id: Fox - obfuscation: - !type:SyllableObfuscation - minSyllables: 1 - maxSyllables: 2 - replacement: - - ruff - - raff - - garr - - yip - - yap - - myah - -- type: language - id: Xeno - obfuscation: - !type:SyllableObfuscation - minSyllables: 1 - maxSyllables: 8 # I was crazy once - replacement: - - s - - S - -- type: language - id: Monkey - obfuscation: - !type:SyllableObfuscation - minSyllables: 1 - maxSyllables: 8 # They locked me in a room... - replacement: - - o - - k - -- type: language - id: Mouse - obfuscation: - !type:SyllableObfuscation - minSyllables: 2 - maxSyllables: 3 - replacement: - - squ - - eak - - pi - - ep - - chuu - - ee - - fwi - - he - -- type: language - id: Chicken - obfuscation: - !type:SyllableObfuscation - minSyllables: 1 - maxSyllables: 3 - replacement: - - co - - coo - - ot - -- type: language - id: Duck - obfuscation: - !type:SyllableObfuscation - minSyllables: 1 - maxSyllables: 3 - replacement: - - qu - - ack - - quack - -- type: language - id: Cow - obfuscation: - !type:SyllableObfuscation - minSyllables: 1 - maxSyllables: 3 - replacement: - - moo - - mooo - -- type: language - id: Sheep - obfuscation: - !type:SyllableObfuscation - minSyllables: 1 - maxSyllables: 3 - replacement: - - ba - - baa - - aa - -- type: language - id: Kangaroo - obfuscation: - !type:SyllableObfuscation - minSyllables: 1 - maxSyllables: 3 - replacement: - - shre - - ack - - chuu - - choo - -- type: language - id: Pig - obfuscation: - !type:SyllableObfuscation - minSyllables: 1 - maxSyllables: 3 - replacement: - - oink # Please someone come up with something better - -- type: language - id: Crab - obfuscation: - !type:SyllableObfuscation - minSyllables: 1 - maxSyllables: 3 - replacement: - - click - - clack - - ti - - pi - - tap - - cli - - ick - -- type: language - id: Kobold - obfuscation: - !type:SyllableObfuscation - minSyllables: 2 - maxSyllables: 4 - replacement: - - yip - - yap - - gar - - grr - - ar - - scre - - et - - gronk - - hiss - - ss - - ee - -- type: language - id: Hissing - obfuscation: - !type:SyllableObfuscation - minSyllables: 2 - maxSyllables: 4 - replacement: - - hss - - iss - - ss - - is - -# Example of a sign language. Not currently used anyhow. -- type: language - id: Sign - speech: - allowRadio: false - requireSpeech: false - color: "#dddddd" - messageWrapOverrides: - Speak: chat-sign-language-message-wrap - Whisper: chat-sign-language-whisper-wrap - speechVerbOverrides: - - chat-speech-verb-sign-1 - - chat-speech-verb-sign-2 - - chat-speech-verb-sign-3 - obfuscation: - !type:ReplacementObfuscation - replacement: - - something - - a cryptic message to you - - a signal to you - - a message - - a rude expression to you - - a sad expression to you - - a happy expression to you diff --git a/Resources/Prototypes/Loadouts/Categories/categories.yml b/Resources/Prototypes/Loadouts/Categories/categories.yml index 77b1adbe56..94e90b663f 100644 --- a/Resources/Prototypes/Loadouts/Categories/categories.yml +++ b/Resources/Prototypes/Loadouts/Categories/categories.yml @@ -1,11 +1,15 @@ # Alphabetically ordered, except for Uncategorized since it is always first # AUncategorized is always first in subcategories to stay consistent with the root Uncategorized -# AUncategorized is not a spelling mistake, and might have more As added as needed +# AUncategorized is not a spelling mistake, and might have more As added as needed - type: loadoutCategory id: Uncategorized root: true +- type: loadoutCategory + id: Backpacks + root: true + - type: loadoutCategory id: Eyes root: true @@ -27,48 +31,46 @@ root: true subCategories: - JobsAUncategorized + - JobsCargo - JobsCommand + - JobsEngineering + - JobsMedical + - JobsScience + - JobsSecurity + - JobsService - type: loadoutCategory id: JobsAUncategorized - type: loadoutCategory - id: JobsCommand - subCategories: - - JobsCommandAUncategorized - - JobsCommandCaptain - - JobsCommandCE - - JobsCommandCMO - - JobsCommandHOP - - JobsCommandHOS - - JobsCommandQM - - JobsCommandRD - + id: JobsCargo - type: loadoutCategory - id: JobsCommandAUncategorized + id: JobsCommand - type: loadoutCategory - id: JobsCommandCaptain + id: JobsEngineering - type: loadoutCategory - id: JobsCommandCE + id: JobsMedical - type: loadoutCategory - id: JobsCommandCMO + id: JobsScience - type: loadoutCategory - id: JobsCommandHOP + id: JobsSecurity - type: loadoutCategory - id: JobsCommandHOS + id: JobsService + subCategories: + - JobsServiceUncategorized + - JobsServiceBartender - type: loadoutCategory - id: JobsCommandQM + id: JobsServiceUncategorized - type: loadoutCategory - id: JobsCommandRD - + id: JobsServiceBartender - type: loadoutCategory id: Mask diff --git a/Resources/Prototypes/Loadouts/Jobs/Heads/captain.yml b/Resources/Prototypes/Loadouts/Jobs/Heads/captain.yml index b59f044144..47e4310fdf 100644 --- a/Resources/Prototypes/Loadouts/Jobs/Heads/captain.yml +++ b/Resources/Prototypes/Loadouts/Jobs/Heads/captain.yml @@ -1,7 +1,7 @@ - type: loadout id: LoadoutCommandCapNeckMantle - category: JobsCommandCaptain - cost: 2 + category: JobsCommand + cost: 0 exclusive: true requirements: - !type:CharacterJobRequirement @@ -12,8 +12,8 @@ - type: loadout id: LoadoutCommandCapNeckCloak - category: JobsCommandCaptain - cost: 2 + category: JobsCommand + cost: 0 exclusive: true requirements: - !type:CharacterJobRequirement @@ -24,8 +24,8 @@ - type: loadout id: LoadoutCommandCapNeckCloakFormal - category: JobsCommandCaptain - cost: 2 + category: JobsCommand + cost: 0 exclusive: true requirements: - !type:CharacterJobRequirement @@ -36,8 +36,8 @@ - type: loadout id: LoadoutCommandCapJumpsuitFormal - category: JobsCommandCaptain - cost: 3 + category: JobsCommand + cost: 0 exclusive: true requirements: - !type:CharacterJobRequirement @@ -48,8 +48,8 @@ - type: loadout id: LoadoutCommandCapJumpskirtFormal - category: JobsCommandCaptain - cost: 3 + category: JobsCommand + cost: 0 exclusive: true requirements: - !type:CharacterJobRequirement @@ -60,8 +60,8 @@ - type: loadout id: LoadoutCommandCapOuterWinter - category: JobsCommandCaptain - cost: 2 + category: JobsCommand + cost: 1 requirements: - !type:CharacterJobRequirement jobs: @@ -71,8 +71,8 @@ - type: loadout id: LoadoutCommandCapGloves - category: JobsCommandCaptain - cost: 1 + category: JobsCommand + cost: 0 requirements: - !type:CharacterJobRequirement jobs: @@ -82,8 +82,8 @@ - type: loadout id: LoadoutCommandCapHat - category: JobsCommandCaptain - cost: 1 + category: JobsCommand + cost: 0 requirements: - !type:CharacterJobRequirement jobs: @@ -93,8 +93,8 @@ - type: loadout id: LoadoutCommandCapHatCapcap - category: JobsCommandCaptain - cost: 1 + category: JobsCommand + cost: 0 requirements: - !type:CharacterJobRequirement jobs: @@ -104,8 +104,8 @@ - type: loadout id: LoadoutCommandCapHatBeret - category: JobsCommandCaptain - cost: 1 + category: JobsCommand + cost: 0 requirements: - !type:CharacterJobRequirement jobs: @@ -115,8 +115,8 @@ - type: loadout id: LoadoutCommandCapMaskGas - category: JobsCommandCaptain - cost: 1 + category: JobsCommand + cost: 0 requirements: - !type:CharacterJobRequirement jobs: @@ -126,8 +126,8 @@ - type: loadout id: LoadoutCommandCapShoesBootsWinter - category: JobsCommandCaptain - cost: 1 + category: JobsCommand + cost: 0 exclusive: true requirements: - !type:CharacterJobRequirement @@ -138,7 +138,7 @@ - type: loadout id: LoadoutCommandCapItemDrinkFlask - category: JobsCommandCaptain + category: JobsCommand cost: 1 requirements: - !type:CharacterJobRequirement diff --git a/Resources/Prototypes/Loadouts/Jobs/Heads/chiefEngineer.yml b/Resources/Prototypes/Loadouts/Jobs/Heads/chiefEngineer.yml index 187c06119e..bfddc6e383 100644 --- a/Resources/Prototypes/Loadouts/Jobs/Heads/chiefEngineer.yml +++ b/Resources/Prototypes/Loadouts/Jobs/Heads/chiefEngineer.yml @@ -1,7 +1,7 @@ - type: loadout id: LoadoutCommandCENeckMantle - category: JobsCommandCE - cost: 2 + category: JobsCommand + cost: 0 exclusive: true requirements: - !type:CharacterJobRequirement @@ -12,8 +12,8 @@ - type: loadout id: LoadoutCommandCENeckCloak - category: JobsCommandCE - cost: 2 + category: JobsCommand + cost: 0 exclusive: true requirements: - !type:CharacterJobRequirement @@ -24,8 +24,8 @@ - type: loadout id: LoadoutCommandCEOuterWinter - category: JobsCommandCE - cost: 2 + category: JobsCommand + cost: 1 requirements: - !type:CharacterJobRequirement jobs: @@ -35,8 +35,8 @@ - type: loadout id: LoadoutCommandCEShoesBootsWinter - category: JobsCommandCE - cost: 1 + category: JobsCommand + cost: 0 exclusive: true requirements: - !type:CharacterJobRequirement diff --git a/Resources/Prototypes/Loadouts/Jobs/Heads/chiefMedicalOfficer.yml b/Resources/Prototypes/Loadouts/Jobs/Heads/chiefMedicalOfficer.yml index 8b236a48f4..0c46af7013 100644 --- a/Resources/Prototypes/Loadouts/Jobs/Heads/chiefMedicalOfficer.yml +++ b/Resources/Prototypes/Loadouts/Jobs/Heads/chiefMedicalOfficer.yml @@ -1,7 +1,7 @@ - type: loadout id: LoadoutCommandCMONeckMantle - category: JobsCommandCMO - cost: 2 + category: JobsCommand + cost: 0 exclusive: true requirements: - !type:CharacterJobRequirement @@ -12,8 +12,8 @@ - type: loadout id: LoadoutCommandCMONeckCloak - category: JobsCommandCMO - cost: 2 + category: JobsCommand + cost: 0 exclusive: true requirements: - !type:CharacterJobRequirement @@ -24,8 +24,8 @@ - type: loadout id: LoadoutCommandCMOOuterWinter - category: JobsCommandCMO - cost: 2 + category: JobsCommand + cost: 1 requirements: - !type:CharacterJobRequirement jobs: @@ -35,8 +35,8 @@ - type: loadout id: LoadoutCommandCMOOuterLab - category: JobsCommandCMO - cost: 1 + category: JobsCommand + cost: 0 requirements: - !type:CharacterJobRequirement jobs: @@ -46,8 +46,8 @@ - type: loadout id: LoadoutCommandCMOHatBeret - category: JobsCommandCMO - cost: 1 + category: JobsCommand + cost: 0 requirements: - !type:CharacterJobRequirement jobs: @@ -57,8 +57,8 @@ - type: loadout id: LoadoutCommandCMOShoesBootsWinter - category: JobsCommandCMO - cost: 1 + category: JobsCommand + cost: 0 exclusive: true requirements: - !type:CharacterJobRequirement diff --git a/Resources/Prototypes/Loadouts/Jobs/Heads/command.yml b/Resources/Prototypes/Loadouts/Jobs/Heads/command.yml index 43c6213049..bf45fb6ed7 100644 --- a/Resources/Prototypes/Loadouts/Jobs/Heads/command.yml +++ b/Resources/Prototypes/Loadouts/Jobs/Heads/command.yml @@ -1,6 +1,6 @@ - type: loadout id: LoadoutCommandGlovesInspection - category: JobsCommandAUncategorized + category: JobsCommand cost: 1 exclusive: true requirements: diff --git a/Resources/Prototypes/Loadouts/Jobs/Heads/headOfPersonnel.yml b/Resources/Prototypes/Loadouts/Jobs/Heads/headOfPersonnel.yml index 44b77d3acd..7bb265dd7b 100644 --- a/Resources/Prototypes/Loadouts/Jobs/Heads/headOfPersonnel.yml +++ b/Resources/Prototypes/Loadouts/Jobs/Heads/headOfPersonnel.yml @@ -1,7 +1,7 @@ - type: loadout id: LoadoutCommandHOPNeckMantle - category: JobsCommandHOP - cost: 2 + category: JobsCommand + cost: 0 exclusive: true requirements: - !type:CharacterJobRequirement @@ -12,8 +12,8 @@ - type: loadout id: LoadoutCommandHOPNeckCloak - category: JobsCommandHOP - cost: 2 + category: JobsCommand + cost: 0 exclusive: true requirements: - !type:CharacterJobRequirement @@ -24,8 +24,8 @@ - type: loadout id: LoadoutCommandHOPJumpsuitTurtleneckBoatswain - category: JobsCommandHOP - cost: 2 + category: JobsCommand + cost: 0 exclusive: true requirements: - !type:CharacterJobRequirement @@ -36,8 +36,8 @@ - type: loadout id: LoadoutCommandHOPJumpsuitMess - category: JobsCommandHOP - cost: 2 + category: JobsCommand + cost: 0 exclusive: true requirements: - !type:CharacterJobRequirement @@ -48,8 +48,8 @@ - type: loadout id: LoadoutCommandHOPJumpskirtMess - category: JobsCommandHOP - cost: 2 + category: JobsCommand + cost: 0 exclusive: true requirements: - !type:CharacterJobRequirement @@ -60,8 +60,8 @@ - type: loadout id: LoadoutcommandHOPOuterCoatFormal - category: JobsCommandHOP - cost: 2 + category: JobsCommand + cost: 0 requirements: - !type:CharacterJobRequirement jobs: @@ -71,8 +71,8 @@ - type: loadout id: LoadoutCommandHOPBackIan - category: JobsCommandHOP - cost: 4 + category: JobsCommand + cost: 2 requirements: - !type:CharacterJobRequirement jobs: @@ -82,8 +82,8 @@ - type: loadout id: LoadoutCommandHOPHatCap - category: JobsCommandHOP - cost: 1 + category: JobsCommand + cost: 0 requirements: - !type:CharacterJobRequirement jobs: @@ -93,8 +93,8 @@ - type: loadout id: LoadoutCommandHOPShoesBootsWinter - category: JobsCommandHOP - cost: 1 + category: JobsCommand + cost: 0 exclusive: true requirements: - !type:CharacterJobRequirement @@ -105,8 +105,8 @@ - type: loadout id: LoadoutCommandHOPBedsheetIan - category: JobsCommandHOP - cost: 2 + category: JobsCommand + cost: 0 exclusive: true requirements: - !type:CharacterJobRequirement diff --git a/Resources/Prototypes/Loadouts/Jobs/Heads/headOfSecurity.yml b/Resources/Prototypes/Loadouts/Jobs/Heads/headOfSecurity.yml index 89e36caed4..bd2a03f214 100644 --- a/Resources/Prototypes/Loadouts/Jobs/Heads/headOfSecurity.yml +++ b/Resources/Prototypes/Loadouts/Jobs/Heads/headOfSecurity.yml @@ -1,7 +1,7 @@ - type: loadout id: LoadoutCommandHOSNeckMantle - category: JobsCommandHOS - cost: 2 + category: JobsCommand + cost: 0 exclusive: true requirements: - !type:CharacterJobRequirement @@ -12,8 +12,8 @@ - type: loadout id: LoadoutCommandHOSNeckCloak - category: JobsCommandHOS - cost: 2 + category: JobsCommand + cost: 0 exclusive: true requirements: - !type:CharacterJobRequirement @@ -24,8 +24,8 @@ - type: loadout id: LoadoutCommandHOSJumpsuitAlt - category: JobsCommandHOS - cost: 2 + category: JobsCommand + cost: 0 exclusive: true requirements: - !type:CharacterJobRequirement @@ -36,8 +36,8 @@ - type: loadout id: LoadoutCommandHOSJumpsuitBlue - category: JobsCommandHOS - cost: 2 + category: JobsCommand + cost: 0 exclusive: true requirements: - !type:CharacterJobRequirement @@ -48,8 +48,8 @@ - type: loadout id: LoadoutCommandHOSJumpsuitGrey - category: JobsCommandHOS - cost: 2 + category: JobsCommand + cost: 0 exclusive: true requirements: - !type:CharacterJobRequirement @@ -60,8 +60,8 @@ - type: loadout id: LoadoutCommandHOSJumpsuitParade - category: JobsCommandHOS - cost: 3 + category: JobsCommand + cost: 0 exclusive: true requirements: - !type:CharacterJobRequirement @@ -72,8 +72,8 @@ - type: loadout id: LoadoutCommandHOSJumpsuitFormal - category: JobsCommandHOS - cost: 3 + category: JobsCommand + cost: 0 exclusive: true requirements: - !type:CharacterJobRequirement @@ -84,8 +84,8 @@ - type: loadout id: LoadoutCommandHOSJumpskirtAlt - category: JobsCommandHOS - cost: 2 + category: JobsCommand + cost: 0 exclusive: true requirements: - !type:CharacterJobRequirement @@ -96,8 +96,8 @@ - type: loadout id: LoadoutCommandHOSJumpskirtParade - category: JobsCommandHOS - cost: 3 + category: JobsCommand + cost: 0 exclusive: true requirements: - !type:CharacterJobRequirement @@ -108,8 +108,8 @@ - type: loadout id: LoadoutCommandHOSJumpskirtFormal - category: JobsCommandHOS - cost: 3 + category: JobsCommand + cost: 0 exclusive: true requirements: - !type:CharacterJobRequirement @@ -120,8 +120,8 @@ - type: loadout id: LoadoutCommandHOSOuterWinter - category: JobsCommandHOS - cost: 2 + category: JobsCommand + cost: 1 requirements: - !type:CharacterJobRequirement jobs: @@ -131,8 +131,8 @@ - type: loadout id: LoadoutCommandHOSOuterTrench - category: JobsCommandHOS - cost: 2 + category: JobsCommand + cost: 1 requirements: - !type:CharacterJobRequirement jobs: @@ -142,8 +142,8 @@ - type: loadout id: LoadoutCommandHOSHatBeret - category: JobsCommandHOS - cost: 1 + category: JobsCommand + cost: 0 requirements: - !type:CharacterJobRequirement jobs: @@ -153,8 +153,8 @@ - type: loadout id: LoadoutCommandHOSHatHoshat - category: JobsCommandHOS - cost: 1 + category: JobsCommand + cost: 0 requirements: - !type:CharacterJobRequirement jobs: @@ -164,8 +164,8 @@ - type: loadout id: LoadoutCommandHOSShoesBootsWinter - category: JobsCommandHOS - cost: 1 + category: JobsCommand + cost: 0 exclusive: true requirements: - !type:CharacterJobRequirement @@ -173,3 +173,97 @@ - HeadOfSecurity items: - ClothingShoesBootsWinterHeadOfSecurity + +# 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 + cost: 0 + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutHoSWeapon + - !type:CharacterJobRequirement + jobs: + - HeadOfSecurity + items: + - WeaponPulsePistolHoS + +- type: loadout + id: LoadoutCommandHoSWt550 + category: JobsCommand + cost: 0 + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutHoSWeapon + - !type:CharacterJobRequirement + jobs: + - HeadOfSecurity + items: + - WeaponSubMachineGunWt550HoS + +- type: loadout + id: LoadoutCommandHoSKatanaSheath + category: JobsCommand + cost: 0 + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutHoSWeapon + - !type:CharacterJobRequirement + jobs: + - HeadOfSecurity + items: + - ClothingBeltKatanaSheathFilledHoS + +- type: loadout + id: LoadoutCommandHoSC20r + category: JobsCommand + cost: 0 + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutHoSWeapon + - !type:CharacterJobRequirement + jobs: + - HeadOfSecurity + items: + - WeaponSubMachineGunC20rHoS + +- type: loadout + id: LoadoutCommandHoSBulldog + category: JobsCommand + cost: 0 + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutHoSWeapon + - !type:CharacterJobRequirement + jobs: + - HeadOfSecurity + items: + - WeaponShotgunBulldogHoS + +- type: loadout + id: LoadoutCommandHoSEnergySword + category: JobsCommand + cost: 0 + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutHoSWeapon + - !type:CharacterJobRequirement + jobs: + - HeadOfSecurity + items: + - EnergySwordHoS + +- type: loadout + id: LoadoutCommandHoSEnergyGun + category: JobsCommand + cost: 0 + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutHoSWeapon + - !type:CharacterJobRequirement + jobs: + - HeadOfSecurity + items: + - WeaponEnergyGunMultiphase diff --git a/Resources/Prototypes/Loadouts/Jobs/Heads/quarterMaster.yml b/Resources/Prototypes/Loadouts/Jobs/Heads/quarterMaster.yml index 62d872cea2..0dd45eb3f5 100644 --- a/Resources/Prototypes/Loadouts/Jobs/Heads/quarterMaster.yml +++ b/Resources/Prototypes/Loadouts/Jobs/Heads/quarterMaster.yml @@ -1,7 +1,7 @@ # What? This isn't a thing?? :( # - type: loadout # id: LoadoutCommandQMNeckMantle -# category: JobsCommandQM +# category: JobsCommand # cost: 2 # exclusive: true # requirements: @@ -13,8 +13,8 @@ - type: loadout id: LoadoutCommandQMNeckCloak - category: JobsCommandQM - cost: 2 + category: JobsCommand + cost: 0 exclusive: true requirements: - !type:CharacterJobRequirement @@ -25,8 +25,8 @@ - type: loadout id: LoadoutCommandQMUniformTurtleneck - category: JobsCommandQM - cost: 2 + category: JobsCommand + cost: 0 exclusive: true requirements: - !type:CharacterJobRequirement @@ -37,8 +37,8 @@ - type: loadout id: LoadoutCommandQMUniformTurtleneckSkirt - category: JobsCommandQM - cost: 2 + category: JobsCommand + cost: 0 exclusive: true requirements: - !type:CharacterJobRequirement @@ -49,8 +49,8 @@ - type: loadout id: LoadoutCommandQMHeadSoft - category: JobsCommandQM - cost: 1 + category: JobsCommand + cost: 0 requirements: - !type:CharacterJobRequirement jobs: @@ -60,8 +60,8 @@ - type: loadout id: LoadoutCommandQMShoesBootsWinter - category: JobsCommandQM - cost: 1 + category: JobsCommand + cost: 0 exclusive: true requirements: - !type:CharacterJobRequirement diff --git a/Resources/Prototypes/Loadouts/Jobs/Heads/researchDirector.yml b/Resources/Prototypes/Loadouts/Jobs/Heads/researchDirector.yml index 6448f4a151..0ec43fc3a7 100644 --- a/Resources/Prototypes/Loadouts/Jobs/Heads/researchDirector.yml +++ b/Resources/Prototypes/Loadouts/Jobs/Heads/researchDirector.yml @@ -1,53 +1,97 @@ +# Outer + - type: loadout - id: LoadoutCommandRDNeckMantle - category: JobsCommandRD - cost: 2 + 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: - - ClothingNeckMantleRD + - ClothingHeadHatBeretMysta - type: loadout - id: LoadoutCommandRDNeckCloak - category: JobsCommandRD - cost: 2 + id: LoadoutCommandRDHeadHoodMysta + category: JobsCommand + cost: 0 exclusive: true requirements: - !type:CharacterJobRequirement jobs: - ResearchDirector items: - - ClothingNeckCloakRd + - ClothingHeadHoodMysta + +# Neck - type: loadout - id: LoadoutCommandRDOuterWinter - category: JobsCommandRD - cost: 2 + id: LoadoutCommandRDNeckMantle + category: JobsCommand + cost: 0 + exclusive: true requirements: - !type:CharacterJobRequirement jobs: - ResearchDirector items: - - ClothingOuterWinterRD + - ClothingNeckMantleRD - type: loadout - id: LoadoutCommandRDOuterMysta - category: JobsCommandRD - cost: 2 + id: LoadoutCommandRDNeckCloak + category: JobsCommand + cost: 0 + exclusive: true requirements: - !type:CharacterJobRequirement jobs: - ResearchDirector items: - - ClothingOuterCoatRndMysta + - ClothingNeckCloakRd + +- type: loadout + id: LoadoutCommandRDNeckCloakMystagogue + category: JobsCommand + cost: 0 + exclusive: true + requirements: + - !type:CharacterJobRequirement + jobs: + - ResearchDirector + items: + - ClothingNeckCloakMystagogue + +# Shoes - type: loadout id: LoadoutCommandRDShoesBootsWinter - category: JobsCommandRD - cost: 1 + category: JobsCommand + cost: 0 exclusive: true requirements: - !type:CharacterJobRequirement diff --git a/Resources/Prototypes/Loadouts/Jobs/cargo.yml b/Resources/Prototypes/Loadouts/Jobs/cargo.yml index 2bec0b7c0a..7e9c525e40 100644 --- a/Resources/Prototypes/Loadouts/Jobs/cargo.yml +++ b/Resources/Prototypes/Loadouts/Jobs/cargo.yml @@ -1,10 +1,12 @@ # Cargo technician - type: loadout id: LoadoutCargoOuterWinterCargo - category: JobsAUncategorized - cost: 2 + category: JobsCargo + cost: 1 exclusive: true requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutOuterCargo - !type:CharacterJobRequirement jobs: - CargoTechnician @@ -13,10 +15,12 @@ - type: loadout id: LoadoutCargoShoesBootsWinterCargo - category: JobsAUncategorized - cost: 1 + category: JobsCargo + cost: 0 exclusive: true requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutShoesCargo - !type:CharacterJobRequirement jobs: - CargoTechnician @@ -27,10 +31,12 @@ - type: loadout id: LoadoutCargoOuterWinterMiner - category: JobsAUncategorized - cost: 2 + category: JobsCargo + cost: 1 exclusive: true requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutOuterCargo - !type:CharacterJobRequirement jobs: - SalvageSpecialist @@ -39,10 +45,12 @@ - type: loadout id: LoadoutCargoNeckGoliathCloak - category: JobsAUncategorized - cost: 2 + category: JobsCargo + cost: 0 exclusive: true requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutNeckCargo - !type:CharacterJobRequirement jobs: - SalvageSpecialist @@ -51,3 +59,14 @@ min: 36000 # 10 hours items: - ClothingNeckCloakGoliathCloak + +- type: loadout + id: LoadoutCargoWeaponsCrusherDagger + category: JobsCargo + cost: 2 + requirements: + - !type:CharacterJobRequirement + jobs: + - SalvageSpecialist + items: + - WeaponCrusherDagger diff --git a/Resources/Prototypes/Loadouts/Jobs/engineering.yml b/Resources/Prototypes/Loadouts/Jobs/engineering.yml index 94f018e583..2bf857c85f 100644 --- a/Resources/Prototypes/Loadouts/Jobs/engineering.yml +++ b/Resources/Prototypes/Loadouts/Jobs/engineering.yml @@ -1,9 +1,11 @@ - type: loadout id: LoadoutEngineeringUniformHazard - category: JobsAUncategorized - cost: 2 + category: JobsEngineering + cost: 0 exclusive: true requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutUniformsEngineering - !type:CharacterJobRequirement jobs: - StationEngineer @@ -12,10 +14,12 @@ - type: loadout id: LoadoutEngineeringOuterHazard - category: JobsAUncategorized - cost: 2 + category: JobsEngineering + cost: 0 exclusive: true requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutOuterEngineering - !type:CharacterJobRequirement jobs: - StationEngineer @@ -24,10 +28,12 @@ - type: loadout id: LoadoutEngineeringUniformJumpskirtSenior - category: JobsAUncategorized - cost: 2 + category: JobsEngineering + cost: 1 exclusive: true requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutUniformsEngineering - !type:CharacterJobRequirement jobs: - StationEngineer @@ -45,10 +51,12 @@ - type: loadout id: LoadoutEngineeringUniformJumpsuitSenior - category: JobsAUncategorized - cost: 2 + category: JobsEngineering + cost: 1 exclusive: true requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutUniformsEngineering - !type:CharacterJobRequirement jobs: - StationEngineer @@ -66,10 +74,12 @@ - type: loadout id: LoadoutEngineeringChickenSuit # :) - category: JobsAUncategorized - cost: 3 + category: JobsEngineering + cost: 1 exclusive: true requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutOuterEngineering - !type:CharacterJobRequirement jobs: - AtmosphericTechnician @@ -79,10 +89,12 @@ - type: loadout id: LoadoutEngineeringEyesMeson - category: JobsAUncategorized - cost: 2 + category: JobsEngineering + cost: 1 exclusive: true requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutEyesEngineering - !type:CharacterJobRequirement jobs: - StationEngineer @@ -92,10 +104,12 @@ - type: loadout id: LoadoutEngineeringHeadBeret - category: JobsAUncategorized - cost: 1 + category: JobsEngineering + cost: 0 exclusive: true requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutHeadEngineering - !type:CharacterJobRequirement jobs: - StationEngineer @@ -106,10 +120,12 @@ - type: loadout id: LoadoutEngineeringHeadHardhatBlue - category: JobsAUncategorized - cost: 2 + category: JobsEngineering + cost: 0 exclusive: true requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutHeadEngineering - !type:CharacterJobRequirement jobs: - StationEngineer @@ -119,10 +135,12 @@ - type: loadout id: LoadoutEngineeringHeadHardhatOrange - category: JobsAUncategorized - cost: 2 + category: JobsEngineering + cost: 0 exclusive: true requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutHeadEngineering - !type:CharacterJobRequirement jobs: - StationEngineer @@ -132,10 +150,12 @@ - type: loadout id: LoadoutEngineeringHeadHardhatYellow - category: JobsAUncategorized - cost: 2 + category: JobsEngineering + cost: 0 exclusive: true requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutHeadEngineering - !type:CharacterJobRequirement jobs: - StationEngineer @@ -145,10 +165,12 @@ - type: loadout id: LoadoutEngineeringHeadHardhatWhite - category: JobsAUncategorized - cost: 2 + category: JobsEngineering + cost: 0 exclusive: true requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutHeadEngineering - !type:CharacterJobRequirement jobs: - StationEngineer @@ -158,10 +180,12 @@ - type: loadout id: LoadoutEngineeringHeadHardhatRed - category: JobsAUncategorized - cost: 2 + category: JobsEngineering + cost: 0 exclusive: true requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutHeadEngineering - !type:CharacterJobRequirement jobs: - StationEngineer diff --git a/Resources/Prototypes/Loadouts/Jobs/medical.yml b/Resources/Prototypes/Loadouts/Jobs/medical.yml index 33d6ff36da..6a2d5fb9d2 100644 --- a/Resources/Prototypes/Loadouts/Jobs/medical.yml +++ b/Resources/Prototypes/Loadouts/Jobs/medical.yml @@ -1,9 +1,11 @@ - type: loadout id: LoadoutMedicalGlovesNitrile - category: JobsAUncategorized - cost: 1 + category: JobsMedical + cost: 0 exclusive: true requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutGlovesMedical - !type:CharacterJobRequirement jobs: - MedicalDoctor @@ -16,10 +18,12 @@ - type: loadout id: LoadoutMedicalOuterLabcoat - category: JobsAUncategorized - cost: 2 + category: JobsMedical + cost: 0 exclusive: true requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutOuterMedical - !type:CharacterJobRequirement jobs: - MedicalDoctor @@ -29,10 +33,12 @@ - type: loadout id: LoadoutMedicalNeckStethoscope - category: JobsAUncategorized - cost: 1 + category: JobsMedical + cost: 0 exclusive: true requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutNeckMedical - !type:CharacterJobRequirement jobs: - MedicalDoctor @@ -43,10 +49,12 @@ - type: loadout id: LoadoutMedicalUniformScrubsBlue - category: JobsAUncategorized - cost: 2 + category: JobsMedical + cost: 0 exclusive: true requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutUniformsMedical - !type:CharacterJobRequirement jobs: - MedicalDoctor @@ -58,10 +66,12 @@ - type: loadout id: LoadoutMedicalUniformScrubsGreen - category: JobsAUncategorized - cost: 2 + category: JobsMedical + cost: 0 exclusive: true requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutUniformsMedical - !type:CharacterJobRequirement jobs: - MedicalDoctor @@ -73,10 +83,12 @@ - type: loadout id: LoadoutMedicalUniformScrubsPurple - category: JobsAUncategorized - cost: 2 + category: JobsMedical + cost: 0 exclusive: true requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutUniformsMedical - !type:CharacterJobRequirement jobs: - MedicalDoctor @@ -88,10 +100,12 @@ - type: loadout id: LoadoutMedicalUniformScrubsCyan - category: JobsAUncategorized - cost: 2 + category: JobsMedical + cost: 0 exclusive: true requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutUniformsMedical - !type:CharacterJobRequirement jobs: - MedicalDoctor @@ -103,10 +117,12 @@ - type: loadout id: LoadoutMedicalUniformScrubsBlack - category: JobsAUncategorized - cost: 2 + category: JobsMedical + cost: 0 exclusive: true requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutUniformsMedical - !type:CharacterJobRequirement jobs: - MedicalDoctor @@ -118,10 +134,12 @@ - type: loadout id: LoadoutMedicalUniformScrubsPink - category: JobsAUncategorized - cost: 2 + category: JobsMedical + cost: 0 exclusive: true requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutUniformsMedical - !type:CharacterJobRequirement jobs: - MedicalDoctor @@ -133,10 +151,12 @@ - type: loadout id: LoadoutMedicalUniformScrubsCybersun - category: JobsAUncategorized - cost: 3 + category: JobsMedical + cost: 1 exclusive: true requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutUniformsMedical - !type:CharacterJobRequirement jobs: - MedicalDoctor @@ -147,10 +167,12 @@ - type: loadout id: LoadoutMedicalOuterCybersunWindbreaker - category: JobsAUncategorized - cost: 5 + category: JobsMedical + cost: 3 exclusive: true requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutOuterMedical - !type:CharacterJobRequirement jobs: - MedicalDoctor @@ -161,10 +183,12 @@ - type: loadout id: LoadoutMedicalOuterLabcoatChem - category: JobsAUncategorized - cost: 2 + category: JobsMedical + cost: 0 exclusive: true requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutOuterMedical - !type:CharacterJobRequirement jobs: - Chemist @@ -173,7 +197,7 @@ - type: loadout id: LoadoutMedicalItemHandLabeler - category: JobsAUncategorized + category: JobsMedical exclusive: true requirements: - !type:CharacterJobRequirement @@ -184,10 +208,12 @@ - type: loadout id: LoadoutMedicalUniformParamedicJumpsuit - category: JobsAUncategorized - cost: 2 + category: JobsMedical + cost: 0 exclusive: true requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutUniformsMedical - !type:CharacterJobRequirement jobs: - Paramedic @@ -196,10 +222,12 @@ - type: loadout id: LoadoutMedicalUniformParamedicJumpskirt - category: JobsAUncategorized - cost: 2 + category: JobsMedical + cost: 0 exclusive: true requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutUniformsMedical - !type:CharacterJobRequirement jobs: - Paramedic @@ -208,10 +236,12 @@ - type: loadout id: LoadoutMedicalUniformJumpskirtSenior - category: JobsAUncategorized - cost: 2 + category: JobsMedical + cost: 1 exclusive: true requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutUniformsMedical - !type:CharacterJobRequirement jobs: - MedicalDoctor @@ -232,10 +262,12 @@ - type: loadout id: LoadoutMedicalUniformJumpsuitSenior - category: JobsAUncategorized - cost: 2 + category: JobsMedical + cost: 1 exclusive: true requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutUniformsMedical - !type:CharacterJobRequirement jobs: - MedicalDoctor @@ -256,10 +288,12 @@ - type: loadout id: LoadoutMedicalHeadNurse - category: JobsAUncategorized - cost: 2 + category: JobsMedical + cost: 0 exclusive: true requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutHeadMedical - !type:CharacterJobRequirement jobs: - MedicalDoctor @@ -268,10 +302,12 @@ - type: loadout id: LoadoutMedicalHeadBeretSeniorPhysician - category: JobsAUncategorized - cost: 2 + category: JobsMedical + cost: 1 exclusive: true requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutHeadMedical - !type:CharacterJobRequirement jobs: - MedicalDoctor @@ -292,10 +328,12 @@ - type: loadout id: LoadoutMedicalHeadSurgcapBlue - category: JobsAUncategorized - cost: 2 + category: JobsMedical + cost: 0 exclusive: true requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutHeadMedical - !type:CharacterJobRequirement jobs: - MedicalDoctor @@ -307,10 +345,12 @@ - type: loadout id: LoadoutMedicalHeadSurgcapPurple - category: JobsAUncategorized - cost: 2 + category: JobsMedical + cost: 0 exclusive: true requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutHeadMedical - !type:CharacterJobRequirement jobs: - MedicalDoctor @@ -322,10 +362,12 @@ - type: loadout id: LoadoutMedicalHeadSurgcapGreen - category: JobsAUncategorized - cost: 2 + category: JobsMedical + cost: 0 exclusive: true requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutHeadMedical - !type:CharacterJobRequirement jobs: - MedicalDoctor @@ -337,10 +379,12 @@ - type: loadout id: LoadoutMedicalHeadSurgcapCyan - category: JobsAUncategorized - cost: 2 + category: JobsMedical + cost: 0 exclusive: true requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutHeadMedical - !type:CharacterJobRequirement jobs: - MedicalDoctor @@ -352,10 +396,12 @@ - type: loadout id: LoadoutMedicalHeadSurgcapBlack - category: JobsAUncategorized - cost: 2 + category: JobsMedical + cost: 0 exclusive: true requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutHeadMedical - !type:CharacterJobRequirement jobs: - MedicalDoctor @@ -367,10 +413,12 @@ - type: loadout id: LoadoutMedicalHeadSurgcapPink - category: JobsAUncategorized - cost: 2 + category: JobsMedical + cost: 0 exclusive: true requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutHeadMedical - !type:CharacterJobRequirement jobs: - MedicalDoctor @@ -382,10 +430,12 @@ - type: loadout id: LoadoutMedicalHeadSurgcapWhite - category: JobsAUncategorized - cost: 2 + category: JobsMedical + cost: 0 exclusive: true requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutHeadMedical - !type:CharacterJobRequirement jobs: - MedicalDoctor @@ -397,10 +447,12 @@ - type: loadout id: LoadoutMedicalHeadSurgcapCybersun - category: JobsAUncategorized - cost: 3 + category: JobsMedical + cost: 1 exclusive: true requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutHeadMedical - !type:CharacterJobRequirement jobs: - MedicalDoctor @@ -411,10 +463,12 @@ - type: loadout id: LoadoutMedicalEyesHudMedical - category: JobsAUncategorized - cost: 2 + category: JobsMedical + cost: 0 exclusive: true requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutEyesMedical - !type:CharacterJobRequirement jobs: - MedicalDoctor @@ -427,10 +481,12 @@ - type: loadout id: LoadoutMedicalEyesEyepatchHudMedical - category: JobsAUncategorized - cost: 2 + category: JobsMedical + cost: 0 exclusive: true requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutEyesMedical - !type:CharacterJobRequirement jobs: - MedicalDoctor @@ -443,10 +499,12 @@ - type: loadout id: LoadoutMedicalEyesHudMedicalPrescription - category: JobsAUncategorized - cost: 2 + category: JobsMedical + cost: 0 exclusive: true requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutEyesMedical - !type:CharacterJobRequirement jobs: - MedicalDoctor @@ -462,10 +520,12 @@ - type: loadout id: LoadoutMedicalEyesGlassesChemical - category: JobsAUncategorized - cost: 2 + category: JobsMedical + cost: 0 exclusive: true requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutEyesMedical - !type:CharacterJobRequirement jobs: - Chemist @@ -474,10 +534,12 @@ - type: loadout id: LoadoutMedicalBedsheetMedical - category: JobsAUncategorized - cost: 2 + category: JobsMedical + cost: 1 exclusive: true requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutNeckMedical - !type:CharacterDepartmentRequirement departments: - Medical @@ -487,10 +549,12 @@ # Chemist PPE gear - type: loadout id: LoadoutMedicalUniformJumpsuitChemShirt - category: JobsAUncategorized - cost: 2 + category: JobsMedical + cost: 0 exclusive: true requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutUniformsMedical - !type:CharacterJobRequirement jobs: - Chemist @@ -499,10 +563,12 @@ - type: loadout id: LoadoutMedicalNeckTieChem - category: JobsAUncategorized - cost: 1 + category: JobsMedical + cost: 0 exclusive: true requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutNeckMedical - !type:CharacterJobRequirement jobs: - Chemist @@ -511,10 +577,12 @@ - type: loadout id: LoadoutMedicalShoesEnclosedChem - category: JobsAUncategorized - cost: 1 + category: JobsMedical + cost: 0 exclusive: true requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutShoesMedical - !type:CharacterJobRequirement jobs: - Chemist @@ -523,10 +591,12 @@ - type: loadout id: LoadoutMedicalOuterApronChemist - category: JobsAUncategorized - cost: 2 + category: JobsMedical + cost: 0 exclusive: true requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutOuterMedical - !type:CharacterJobRequirement jobs: - Chemist @@ -535,10 +605,12 @@ - type: loadout id: LoadoutMedicalEyesGlassesChemist - category: JobsAUncategorized - cost: 2 + category: JobsMedical + cost: 0 exclusive: true requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutEyesMedical - !type:CharacterJobRequirement jobs: - Chemist @@ -547,10 +619,12 @@ - type: loadout id: LoadoutMedicalHandsGlovesChemist - category: JobsAUncategorized - cost: 1 + category: JobsMedical + cost: 0 exclusive: true requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutGlovesMedical - !type:CharacterJobRequirement jobs: - Chemist diff --git a/Resources/Prototypes/Loadouts/Jobs/science.yml b/Resources/Prototypes/Loadouts/Jobs/science.yml index 8a1a2710c2..9a9526f83f 100644 --- a/Resources/Prototypes/Loadouts/Jobs/science.yml +++ b/Resources/Prototypes/Loadouts/Jobs/science.yml @@ -1,9 +1,13 @@ +# Uniforms + - type: loadout id: LoadoutScienceUniformJumpskirtSenior - category: JobsAUncategorized - cost: 2 + category: JobsScience + cost: 1 exclusive: true requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutUniformsScience - !type:CharacterJobRequirement jobs: - Scientist @@ -15,10 +19,12 @@ - type: loadout id: LoadoutScienceUniformJumpsuitSenior - category: JobsAUncategorized - cost: 2 + category: JobsScience + cost: 1 exclusive: true requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutUniformsScience - !type:CharacterJobRequirement jobs: - Scientist @@ -28,12 +34,72 @@ items: - ClothingUniformJumpsuitSeniorResearcher +- type: loadout + id: LoadoutScienceUniformJumpskirtRoboticist + category: JobsScience + cost: 1 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutUniformsScience + - !type:CharacterJobRequirement + jobs: + - Scientist + items: + - ClothingUniformJumpskirtRoboticist + +- type: loadout + id: LoadoutScienceUniformJumpsuitRoboticist + category: JobsScience + cost: 1 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutUniformsScience + - !type:CharacterJobRequirement + jobs: + - Scientist + 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: JobsAUncategorized - cost: 2 + category: JobsScience + cost: 0 exclusive: true requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutOuterScience - !type:CharacterJobRequirement jobs: - Scientist @@ -44,10 +110,12 @@ - type: loadout id: LoadoutScienceOuterLabcoat - category: JobsAUncategorized - cost: 2 + category: JobsScience + cost: 0 exclusive: true requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutOuterScience - !type:CharacterJobRequirement jobs: - Scientist @@ -56,12 +124,42 @@ items: - ClothingOuterCoatLab +- type: loadout + id: LoadoutSciencegOuterCoatRobo + category: JobsScience + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutOuterScience + - !type:CharacterJobRequirement + jobs: + - Scientist + items: + - ClothingOuterCoatRobo + +- type: loadout + id: LoadoutScienceOuterWinterSci + category: JobsScience + cost: 1 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutOuterScience + - !type:CharacterJobRequirement + jobs: + - Scientist + items: + - ClothingOuterWinterSci + - type: loadout id: LoadoutScienceOuterLabcoatSeniorResearcher - category: JobsAUncategorized - cost: 2 + category: JobsScience + cost: 1 exclusive: true requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutOuterScience - !type:CharacterJobRequirement jobs: - Scientist @@ -73,10 +171,12 @@ - type: loadout id: LoadoutScienceOuterExplorerLabcoat - category: JobsAUncategorized - cost: 2 + category: JobsScience + cost: 0 exclusive: true requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutOuterScience - !type:CharacterJobRequirement jobs: - Scientist @@ -86,11 +186,208 @@ - ClothingOuterExplorerCoat - type: loadout - id: LoadoutScienceHatBeret - category: JobsAUncategorized + 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:CharacterJobRequirement + jobs: + - Scientist + - ResearchDirector + items: + - ClothingHandsGlovesColorPurple + +- type: loadout + id: LoadoutScienceHandsGlovesLatex + category: JobsScience + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutGlovesScience + - !type:CharacterJobRequirement + jobs: + - Scientist + - ResearchDirector + items: + - ClothingHandsGlovesLatex + +- type: loadout + id: LoadoutScienceHandsGlovesRobohands + category: JobsScience + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutGlovesScience + - !type:CharacterJobRequirement + jobs: + - Scientist + - ResearchDirector + items: + - ClothingHandsGlovesRobohands + +# Neck + +- type: loadout + id: LoadoutScienceNeckTieSci + category: JobsScience + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutNeckScience + - !type:CharacterJobRequirement + jobs: + - Scientist + - ResearchDirector + items: + - ClothingNeckTieSci + +- type: loadout + id: LoadoutScienceNeckScarfStripedPurple + category: JobsScience + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutNeckScience + - !type:CharacterJobRequirement + jobs: + - Scientist + - ResearchDirector + 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:CharacterJobRequirement + jobs: + - Chaplain + 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:CharacterJobRequirement jobs: - Scientist @@ -99,12 +396,86 @@ items: - ClothingHeadHatBeretRND +- type: loadout + id: LoadoutScienceHeadHatFez + category: JobsScience + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutHeadScience + - !type:CharacterJobRequirement + jobs: + - Chaplain + 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: JobsAUncategorized - cost: 3 + category: JobsScience + cost: 1 exclusive: true requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutEyesScience - !type:CharacterJobRequirement jobs: - Scientist @@ -115,10 +486,12 @@ - type: loadout id: LoadoutScienceEyesEyepatchHudDiag - category: JobsAUncategorized - cost: 3 + category: JobsScience + cost: 1 exclusive: true requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutEyesScience - !type:CharacterJobRequirement jobs: - Scientist @@ -127,14 +500,35 @@ items: - ClothingEyesEyepatchHudDiag +# Shoes + +- type: loadout + id: LoadoutScienceShoesBootsWinterSci + category: JobsScience + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutShoesScience + - !type:CharacterJobRequirement + jobs: + - Scientist + - ResearchAssistant + - ResearchDirector + items: + - ClothingShoesBootsWinterSci + # Robes + - type: loadout id: LoadoutOuterRobeTechPriest category: Outer - cost: 2 + cost: 0 items: - ClothingOuterRobeTechPriest requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutOuterScience - !type:CharacterJobRequirement jobs: - Scientist @@ -144,11 +538,13 @@ - type: loadout id: LoadoutHeadHoodTechPriest category: Head - cost: 1 + cost: 0 exclusive: true items: - ClothingHeadTechPriest requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutHeadScience - !type:CharacterJobRequirement jobs: - Scientist diff --git a/Resources/Prototypes/Loadouts/Jobs/security.yml b/Resources/Prototypes/Loadouts/Jobs/security.yml index 13d11b13fa..5cd39bf534 100644 --- a/Resources/Prototypes/Loadouts/Jobs/security.yml +++ b/Resources/Prototypes/Loadouts/Jobs/security.yml @@ -1,10 +1,12 @@ # Uniforms - type: loadout id: LoadoutSecurityUniformJumpsuitBlue - category: JobsAUncategorized - cost: 1 + category: JobsSecurity + cost: 0 exclusive: true requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutUniformsSecurity - !type:CharacterDepartmentRequirement departments: - Security @@ -13,10 +15,12 @@ - type: loadout id: LoadoutSecurityUniformJumpsuitGrey - category: JobsAUncategorized - cost: 1 + category: JobsSecurity + cost: 0 exclusive: true requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutUniformsSecurity - !type:CharacterDepartmentRequirement departments: - Security @@ -25,10 +29,12 @@ - type: loadout id: LoadoutSecurityUniformJumpskirtGrey - category: JobsAUncategorized - cost: 1 + category: JobsSecurity + cost: 0 exclusive: true requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutUniformsSecurity - !type:CharacterDepartmentRequirement departments: - Security @@ -37,10 +43,12 @@ - type: loadout id: LoadoutSecurityUniformJumpskirtBlue - category: JobsAUncategorized - cost: 1 + category: JobsSecurity + cost: 0 exclusive: true requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutUniformsSecurity - !type:CharacterDepartmentRequirement departments: - Security @@ -49,10 +57,12 @@ - type: loadout id: LoadoutSecurityUniformJumpskirtSenior - category: JobsAUncategorized - cost: 2 + category: JobsSecurity + cost: 1 exclusive: true requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutUniformsSecurity - !type:CharacterJobRequirement jobs: - SecurityOfficer @@ -73,10 +83,12 @@ - type: loadout id: LoadoutSecurityUniformJumpsuitSenior - category: JobsAUncategorized - cost: 2 + category: JobsSecurity + cost: 1 exclusive: true requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutUniformsSecurity - !type:CharacterJobRequirement jobs: - SecurityOfficer @@ -97,10 +109,12 @@ - type: loadout id: LoadoutUniformJumpsuitWardenBlue - category: JobsAUncategorized - cost: 2 + category: JobsSecurity + cost: 0 exclusive: true requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutUniformsSecurity - !type:CharacterJobRequirement jobs: - Warden @@ -109,10 +123,12 @@ - type: loadout id: LoadoutUniformJumpsuitWardenGrey - category: JobsAUncategorized - cost: 2 + category: JobsSecurity + cost: 0 exclusive: true requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutUniformsSecurity - !type:CharacterJobRequirement jobs: - Warden @@ -121,10 +137,12 @@ - type: loadout id: LoadoutUniformJumpskirtWardenBlue - category: JobsAUncategorized - cost: 2 + category: JobsSecurity + cost: 0 exclusive: true requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutUniformsSecurity - !type:CharacterJobRequirement jobs: - Warden @@ -133,10 +151,12 @@ - type: loadout id: LoadoutUniformJumpskirtWardenGrey - category: JobsAUncategorized - cost: 2 + category: JobsSecurity + cost: 0 exclusive: true requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutUniformsSecurity - !type:CharacterJobRequirement jobs: - Warden @@ -145,10 +165,12 @@ - type: loadout id: LoadoutUniformJumpskirtHoSBlue - category: JobsAUncategorized - cost: 2 + category: JobsSecurity + cost: 0 exclusive: true requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutUniformsSecurity - !type:CharacterJobRequirement jobs: - HeadOfSecurity @@ -157,10 +179,12 @@ - type: loadout id: LoadoutUniformJumpskirtHoSGrey - category: JobsAUncategorized - cost: 2 + category: JobsSecurity + cost: 0 exclusive: true requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutUniformsSecurity - !type:CharacterJobRequirement jobs: - HeadOfSecurity @@ -169,10 +193,12 @@ - type: loadout id: LoadoutUniformJumpsuitSecFormal - category: JobsAUncategorized - cost: 1 + category: JobsSecurity + cost: 0 exclusive: true requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutUniformsSecurity - !type:CharacterDepartmentRequirement departments: - Security @@ -181,10 +207,12 @@ - type: loadout id: LoadoutUniformJumpsuitSecSummer - category: JobsAUncategorized - cost: 1 + category: JobsSecurity + cost: 0 exclusive: true requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutUniformsSecurity - !type:CharacterDepartmentRequirement departments: - Security @@ -194,10 +222,12 @@ # Mask - type: loadout id: LoadoutSecurityMaskGasSwat - category: JobsAUncategorized - cost: 2 + category: JobsSecurity + cost: 0 exclusive: true requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutMaskSecurity - !type:CharacterJobRequirement jobs: - Warden @@ -208,9 +238,12 @@ # Shoes - type: loadout id: LoadoutSecurityShoesJackboots - category: JobsAUncategorized - cost: 1 + category: JobsSecurity + cost: 0 + exclusive: true requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutShoesSecurity - !type:CharacterDepartmentRequirement departments: - Security @@ -219,22 +252,27 @@ - type: loadout id: LoadoutClothingShoesBootsCombat - category: JobsAUncategorized - cost: 1 + category: JobsSecurity + cost: 0 + exclusive: true requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutShoesSecurity - !type:CharacterDepartmentRequirement departments: - Security items: - - ClothingShoesBootsCombat + - ClothingShoesBootsCombatFilled # Eyes - type: loadout id: LoadoutSecurityEyesHudSecurity - category: JobsAUncategorized - cost: 1 + category: JobsSecurity + cost: 0 exclusive: true requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutEyesSecurity - !type:CharacterDepartmentRequirement departments: - Security @@ -243,10 +281,12 @@ - type: loadout id: ClothingEyesGlassesSunglasses - category: JobsAUncategorized - cost: 1 + category: JobsSecurity + cost: 0 exclusive: true requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutEyesSecurity - !type:CharacterDepartmentRequirement departments: - Security @@ -255,10 +295,12 @@ - type: loadout id: LoadoutSecurityEyesEyepatchHudSecurity - category: JobsAUncategorized - cost: 1 + category: JobsSecurity + cost: 0 exclusive: true requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutEyesSecurity - !type:CharacterDepartmentRequirement departments: - Security @@ -267,10 +309,12 @@ - type: loadout id: LoadoutSecurityEyesHudSecurityPrescription - category: JobsAUncategorized - cost: 1 + category: JobsSecurity + cost: 0 exclusive: true requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutEyesSecurity - !type:CharacterDepartmentRequirement departments: - Security @@ -282,10 +326,12 @@ - type: loadout id: LoadoutClothingEyesGlassesSecurity - category: JobsAUncategorized - cost: 4 + category: JobsSecurity + cost: 2 exclusive: true requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutEyesSecurity - !type:CharacterDepartmentRequirement departments: - Security @@ -293,15 +339,57 @@ - ClothingEyesGlassesSecurity #Backpack -#Will need to add a backpack category later on, that will be part of an starting inventory loadout refactor. +- type: loadout + id: LoadoutClothingBackSecurity + category: JobsSecurity + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutBackSecurity + - !type:CharacterDepartmentRequirement + departments: + - Security + items: + - ClothingBackpackSecurity + +- type: loadout + id: LoadoutClothingBackSecuritySatchel + category: JobsSecurity + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutBackSecurity + - !type:CharacterDepartmentRequirement + departments: + - Security + items: + - ClothingBackpackSatchelSecurity + +- type: loadout + id: LoadoutClothingBackSecurityDuffel + category: JobsSecurity + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutBackSecurity + - !type:CharacterDepartmentRequirement + departments: + - Security + items: + - ClothingBackpackDuffelSecurity # Head - type: loadout id: LoadoutSecurityHeadHatBeret - category: JobsAUncategorized - cost: 1 + category: JobsSecurity + cost: 0 exclusive: true requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutHeadSecurity - !type:CharacterDepartmentRequirement departments: - Security @@ -310,10 +398,12 @@ - type: loadout id: LoadoutClothingHeadHelmetBasic - category: JobsAUncategorized - cost: 2 + category: JobsSecurity + cost: 0 exclusive: true requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutHeadSecurity - !type:CharacterDepartmentRequirement departments: - Security @@ -322,10 +412,12 @@ - type: loadout id: LoadoutClothingHeadHatBeretBrigmedic - category: JobsAUncategorized - cost: 1 + category: JobsSecurity + cost: 0 exclusive: true requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutHeadSecurity - !type:CharacterJobRequirement jobs: - Brigmedic @@ -334,10 +426,12 @@ - type: loadout id: LoadoutClothingHeadHatBeretCorpsman - category: JobsAUncategorized - cost: 1 + category: JobsSecurity + cost: 0 exclusive: true requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutHeadSecurity - !type:CharacterJobRequirement jobs: - Brigmedic @@ -346,10 +440,12 @@ - type: loadout id: LoadoutClothingHeadHatBeretWarden - category: JobsAUncategorized - cost: 1 + category: JobsSecurity + cost: 0 exclusive: true requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutHeadSecurity - !type:CharacterJobRequirement jobs: - Warden @@ -358,10 +454,12 @@ - type: loadout id: LoadoutClothingHeadHatBeretHoS - category: JobsAUncategorized - cost: 1 + category: JobsSecurity + cost: 0 exclusive: true requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutHeadSecurity - !type:CharacterJobRequirement jobs: - HeadOfSecurity @@ -370,9 +468,11 @@ - type: loadout id: LoadoutSecurityHeadHelmetInsulated - category: JobsAUncategorized - cost: 2 + category: JobsSecurity + cost: 1 requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutHeadSecurity - !type:CharacterDepartmentRequirement departments: - Security @@ -382,10 +482,12 @@ # Belt - type: loadout id: LoadoutSecurityBeltWebbing - category: JobsAUncategorized - cost: 1 + category: JobsSecurity + cost: 0 exclusive: true requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutBeltSecurity - !type:CharacterDepartmentRequirement departments: - Security @@ -394,10 +496,12 @@ - type: loadout id: LoadoutClothingBeltCorpsmanWebbing - category: JobsAUncategorized - cost: 1 + category: JobsSecurity + cost: 0 exclusive: true requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutBeltSecurity - !type:CharacterJobRequirement jobs: - Brigmedic @@ -406,36 +510,58 @@ - type: loadout id: LoadoutClothingBeltSecurity - category: JobsAUncategorized - cost: 1 + category: JobsSecurity + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutBeltSecurity + - !type:CharacterDepartmentRequirement + departments: + - Security + items: + - ClothingBeltSecurityFilled + +- type: loadout + id: LoadoutClothingBeltHolster + category: JobsSecurity + cost: 0 exclusive: true requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutBeltSecurity - !type:CharacterDepartmentRequirement departments: - Security items: - - ClothingBeltSecurity + - ClothingBeltHolster #Gloves - type: loadout id: LoadoutClothingHandsGlovesNitrile - category: JobsAUncategorized - cost: 1 + category: JobsSecurity + cost: 0 exclusive: true requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutGlovesSecurity - !type:CharacterJobRequirement jobs: - Brigmedic items: - ClothingHandsGlovesNitrile +# Outerwear + - type: loadout id: LoadoutClothingOuterArmorPlateCarrier - category: JobsAUncategorized - cost: 2 + category: JobsSecurity + cost: 0 exclusive: true requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutOuterSecurity - !type:CharacterDepartmentRequirement departments: - Security @@ -444,22 +570,54 @@ - type: loadout id: LoadoutClothingOuterArmorDuraVest - category: JobsAUncategorized - cost: 2 + category: JobsSecurity + cost: 0 exclusive: true requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutOuterSecurity - !type:CharacterDepartmentRequirement departments: - Security items: - ClothingOuterArmorDuraVest +- type: loadout + id: LoadoutClothingOuterArmorBasic + category: JobsSecurity + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutOuterSecurity + - !type:CharacterDepartmentRequirement + departments: + - Security + items: + - ClothingOuterArmorBasic + +- type: loadout + id: LoadoutClothingOuterArmorSlim + category: JobsSecurity + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutOuterSecurity + - !type:CharacterDepartmentRequirement + departments: + - Security + items: + - ClothingOuterArmorBasicSlim + - type: loadout id: LoadoutClothingOuterCoatDetective - category: JobsAUncategorized - cost: 2 + category: JobsSecurity + cost: 0 exclusive: true requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutOuterSecurity - !type:CharacterJobRequirement jobs: - Detective @@ -468,10 +626,12 @@ - type: loadout id: LoadoutOuterVestDetective - category: JobsAUncategorized - cost: 2 + category: JobsSecurity + cost: 0 exclusive: true requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutOuterSecurity - !type:CharacterJobRequirement jobs: - Detective @@ -480,10 +640,12 @@ - type: loadout id: LoadoutClothingOuterCoatWarden - category: JobsAUncategorized - cost: 2 + category: JobsSecurity + cost: 0 exclusive: true requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutOuterSecurity - !type:CharacterJobRequirement jobs: - Warden @@ -492,10 +654,12 @@ - type: loadout id: LoadoutClothingOuterCoatHoSTrench - category: JobsAUncategorized - cost: 2 + category: JobsSecurity + cost: 0 exclusive: true requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutOuterSecurity - !type:CharacterJobRequirement jobs: - HeadOfSecurity @@ -504,10 +668,12 @@ - type: loadout id: LoadoutClothingOuterWinterHoS - category: JobsAUncategorized - cost: 2 + category: JobsSecurity + cost: 0 exclusive: true requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutOuterSecurity - !type:CharacterJobRequirement jobs: - HeadOfSecurity @@ -517,10 +683,12 @@ # Neck - type: loadout id: LoadoutClothingNeckCloakHos - category: JobsAUncategorized - cost: 1 + category: JobsSecurity + cost: 0 exclusive: true requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutNeckSecurity - !type:CharacterJobRequirement jobs: - HeadOfSecurity @@ -529,10 +697,12 @@ - type: loadout id: LoadoutClothingNeckMantleHOS - category: JobsAUncategorized - cost: 1 + category: JobsSecurity + cost: 0 exclusive: true requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutNeckSecurity - !type:CharacterJobRequirement jobs: - HeadOfSecurity @@ -541,23 +711,28 @@ - type: loadout id: LoadoutBedsheetBrigmedic - category: JobsAUncategorized - cost: 1 + category: JobsSecurity + cost: 0 exclusive: true requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutNeckSecurity - !type:CharacterJobRequirement jobs: - Brigmedic items: - BedsheetBrigmedic - -# 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: LoadoutSecurityCombatKnife - category: JobsAUncategorized - cost: 2 + category: JobsSecurity + cost: 0 requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutEquipmentSecurity - !type:CharacterDepartmentRequirement departments: - Security @@ -566,8 +741,8 @@ - type: loadout id: LoadoutSecurityFlash - category: JobsAUncategorized - cost: 1 + category: JobsSecurity + cost: 0 requirements: - !type:CharacterDepartmentRequirement departments: @@ -576,57 +751,302 @@ - Flash - type: loadout - id: LoadoutSecurityDisabler - category: JobsAUncategorized + id: LoadoutMagazinePistol + category: JobsSecurity + cost: 0 + requirements: + - !type:CharacterDepartmentTimeRequirement + department: Security + min: 3600 # 1 hours + - !type:CharacterItemGroupRequirement + group: LoadoutEquipmentSecurity + - !type:CharacterDepartmentRequirement + departments: + - Security + items: + - MagazinePistol + +- type: loadout + id: LoadoutMagazinePistolSpare + category: JobsSecurity cost: 2 requirements: + - !type:CharacterDepartmentTimeRequirement + department: Security + min: 3600 # 1 hours + - !type:CharacterItemGroupRequirement + group: LoadoutEquipmentSecurity - !type:CharacterDepartmentRequirement departments: - Security items: - - WeaponDisabler + - MagazinePistol - type: loadout id: LoadoutMagazinePistolRubber - category: JobsAUncategorized + category: JobsSecurity + cost: 0 + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutEquipmentSecurity + - !type:CharacterDepartmentRequirement + departments: + - Security + items: + - MagazinePistolRubber + +- type: loadout + id: LoadoutMagazinePistolRubberSpare + category: JobsSecurity cost: 2 requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutEquipmentSecurity - !type:CharacterDepartmentRequirement departments: - Security items: - MagazinePistolRubber +- type: loadout + id: LoadoutSpeedLoaderMagnum + category: JobsSecurity + cost: 0 + exclusive: true + requirements: + - !type:CharacterDepartmentTimeRequirement + department: Security + min: 3600 # 1 hours + - !type:CharacterItemGroupRequirement + group: LoadoutEquipmentSecurity + - !type:CharacterDepartmentRequirement + departments: + - Security + items: + - SpeedLoaderMagnum + +- type: loadout + id: LoadoutSpeedLoaderMagnumSpare + category: JobsSecurity + cost: 2 + exclusive: true + requirements: + - !type:CharacterDepartmentTimeRequirement + department: Security + min: 3600 # 1 hours + - !type:CharacterItemGroupRequirement + group: LoadoutEquipmentSecurity + - !type:CharacterDepartmentRequirement + departments: + - Security + items: + - SpeedLoaderMagnum + - type: loadout id: LoadoutSpeedLoaderMagnumRubber - category: JobsAUncategorized + category: JobsSecurity + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutEquipmentSecurity + - !type:CharacterDepartmentRequirement + departments: + - Security + items: + - SpeedLoaderMagnumRubber + +- type: loadout + id: LoadoutSpeedLoaderMagnumRubberSpare + category: JobsSecurity cost: 2 exclusive: true requirements: - - !type:CharacterJobRequirement - jobs: - - Detective + - !type:CharacterItemGroupRequirement + group: LoadoutEquipmentSecurity + - !type:CharacterDepartmentRequirement + departments: + - Security items: - SpeedLoaderMagnumRubber -# TODO: Make this replace the secoff handgun and make it cheaper -# # Species -# - type: loadout -# id: LoadoutSecurityEquipmentTruncheon -# category: JobsAUncategorized -# cost: 8 -# requirements: -# - !type:CharacterJobRequirement -# jobs: -# - SecurityOfficer -# - Warden -# - HeadOfSecurity -# - Brigmedic -# - !type:CharacterPlaytimeRequirement -# tracker: JobSecurityOfficer -# min: 36000 # 10 hours -# - !type:CharacterSpeciesRequirement -# species: -# - Oni -# items: -# - Truncheon +# 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 + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutWeaponSecurity + - !type:CharacterDepartmentRequirement + departments: + - Security + items: + - WeaponDisabler + +- type: loadout + id: LoadoutSecurityMk58 + category: JobsSecurity + cost: 0 + requirements: + - !type:CharacterDepartmentTimeRequirement + department: Security + min: 3600 # 1 hours + - !type:CharacterItemGroupRequirement + group: LoadoutWeaponSecurity + - !type:CharacterDepartmentRequirement + departments: + - Security + items: + - WeaponPistolMk58 + +- type: loadout + id: LoadoutSecurityMk58NonLethal + category: JobsSecurity + cost: 0 + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutWeaponSecurity + - !type:CharacterDepartmentRequirement + departments: + - Security + items: + - WeaponPistolMk58Nonlethal + +- type: loadout + id: LoadoutSecurityRevolver + category: JobsSecurity + cost: 0 + requirements: + - !type:CharacterDepartmentTimeRequirement + department: Security + min: 3600 # 1 hours + - !type:CharacterItemGroupRequirement + group: LoadoutWeaponSecurity + - !type:CharacterDepartmentRequirement + departments: + - Security + items: + - WeaponRevolverInspector + +- type: loadout + id: LoadoutSecurityRevolverNonLethal + category: JobsSecurity + cost: 0 + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutWeaponSecurity + - !type:CharacterDepartmentRequirement + departments: + - Security + items: + - WeaponRevolverInspectorNonLethal + +- type: loadout + id: LoadoutSecurityRevolverDeckard + category: JobsSecurity + cost: 1 + requirements: + - !type:CharacterDepartmentTimeRequirement + department: Security + min: 3600 # 1 hours + - !type:CharacterItemGroupRequirement + group: LoadoutWeaponSecurity + - !type:CharacterDepartmentRequirement + departments: + - Security + items: + - WeaponRevolverDeckard + +- type: loadout + id: LoadoutSecurityRevolverDeckardNonLethal + category: JobsSecurity + cost: 1 + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutWeaponSecurity + - !type:CharacterDepartmentRequirement + departments: + - Security + items: + - WeaponRevolverDeckardNonLethal + +- type: loadout + id: LoadoutSecurityPistolN1984 + category: JobsSecurity + cost: 2 + requirements: + - !type:CharacterDepartmentTimeRequirement + department: Security + min: 3600 # 1 hours + - !type:CharacterItemGroupRequirement + group: LoadoutWeaponSecurity + - !type:CharacterDepartmentRequirement + departments: + - Security + items: + - WeaponPistolN1984 + +- type: loadout + id: LoadoutSecurityPistolN1984NonLethal + category: JobsSecurity + cost: 2 + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutWeaponSecurity + - !type:CharacterDepartmentRequirement + departments: + - Security + items: + - WeaponPistolN1984NonLethal + +- type: loadout + id: LoadoutSecurityPistolViper + category: JobsSecurity + cost: 2 + requirements: + - !type:CharacterDepartmentTimeRequirement + department: Security + min: 3600 # 1 hours + - !type:CharacterItemGroupRequirement + group: LoadoutWeaponSecurity + - !type:CharacterDepartmentRequirement + departments: + - Security + items: + - WeaponPistolViper + +- type: loadout + id: LoadoutSecurityPistolViperNonLethal + category: JobsSecurity + cost: 2 + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutWeaponSecurity + - !type:CharacterDepartmentRequirement + departments: + - Security + items: + - WeaponPistolViperNonLethal + +- type: loadout + id: LoadoutSecurityEquipmentTruncheon + category: JobsSecurity + cost: 3 + requirements: + - !type:CharacterDepartmentTimeRequirement + department: Security + min: 3600 # 1 hours + - !type:CharacterItemGroupRequirement + group: LoadoutWeaponSecurity + - !type:CharacterDepartmentRequirement + departments: + - Security + - !type:CharacterSpeciesRequirement + species: + - Oni + items: + - Truncheon diff --git a/Resources/Prototypes/Loadouts/Jobs/service.yml b/Resources/Prototypes/Loadouts/Jobs/service.yml index aa08a3312d..bdfa3d8165 100644 --- a/Resources/Prototypes/Loadouts/Jobs/service.yml +++ b/Resources/Prototypes/Loadouts/Jobs/service.yml @@ -1,10 +1,12 @@ # Clown - type: loadout id: LoadoutServiceClownOutfitJester - category: JobsAUncategorized - cost: 3 + category: JobsServiceUncategorized + cost: 0 exclusive: true requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutUniformsService - !type:CharacterJobRequirement jobs: - Clown @@ -15,10 +17,12 @@ - type: loadout id: LoadoutServiceClownOutfitJesterAlt - category: JobsAUncategorized - cost: 3 + category: JobsServiceUncategorized + cost: 0 exclusive: true requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutUniformsService - !type:CharacterJobRequirement jobs: - Clown @@ -29,10 +33,12 @@ - type: loadout id: LoadoutServiceClownOuterWinter - category: JobsAUncategorized - cost: 2 + category: JobsServiceUncategorized + cost: 1 exclusive: true requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutOuterService - !type:CharacterJobRequirement jobs: - Clown @@ -41,10 +47,12 @@ - type: loadout id: LoadoutServiceClownOuterClownPriest - category: JobsAUncategorized - cost: 2 + category: JobsServiceUncategorized + cost: 0 exclusive: true requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutOuterService - !type:CharacterJobRequirement jobs: - Clown @@ -53,10 +61,12 @@ - type: loadout id: LoadoutServiceClownBootsWinter - category: JobsAUncategorized - cost: 1 + category: JobsServiceUncategorized + cost: 0 exclusive: true requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutShoesService - !type:CharacterJobRequirement jobs: - Clown @@ -65,10 +75,12 @@ - type: loadout id: LoadoutServiceClownMaskSexy - category: JobsAUncategorized - cost: 1 + category: JobsServiceUncategorized + cost: 0 exclusive: true requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutMaskService - !type:CharacterJobRequirement jobs: - Clown @@ -77,23 +89,75 @@ - type: loadout id: LoadoutServiceClownBedsheetClown - category: JobsAUncategorized - cost: 2 + 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: JobsAUncategorized - cost: 2 + category: JobsServiceUncategorized + cost: 1 exclusive: true requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutOuterService - !type:CharacterJobRequirement jobs: - Mime @@ -102,10 +166,12 @@ - type: loadout id: LoadoutServiceMimeMaskSad - category: JobsAUncategorized - cost: 1 + category: JobsServiceUncategorized + cost: 0 exclusive: true requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutMaskService - !type:CharacterJobRequirement jobs: - Mime @@ -114,10 +180,12 @@ - type: loadout id: LoadoutServiceMimeMaskScared - category: JobsAUncategorized - cost: 1 + category: JobsServiceUncategorized + cost: 0 exclusive: true requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutMaskService - !type:CharacterJobRequirement jobs: - Mime @@ -126,10 +194,12 @@ - type: loadout id: LoadoutServiceMimeMaskSexy - category: JobsAUncategorized - cost: 1 + category: JobsServiceUncategorized + cost: 0 exclusive: true requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutMaskService - !type:CharacterJobRequirement jobs: - Mime @@ -138,10 +208,12 @@ - type: loadout id: LoadoutServiceMimeShoesBootsWinter - category: JobsAUncategorized - cost: 1 + category: JobsServiceUncategorized + cost: 0 exclusive: true requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutShoesService - !type:CharacterJobRequirement jobs: - Mime @@ -150,10 +222,12 @@ - type: loadout id: LoadoutServiceMimeBedsheetMime - category: JobsAUncategorized - cost: 2 + category: JobsServiceUncategorized + cost: 0 exclusive: true requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutNeckService - !type:CharacterJobRequirement jobs: - Mime @@ -163,23 +237,97 @@ # Bartender - type: loadout id: LoadoutServiceBartenderUniformPurple - category: JobsAUncategorized - cost: 2 + 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: 1 + 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: 3 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutBartenderWeapon + - !type:CharacterJobRequirement + jobs: + - Bartender + items: + - WeaponSniperMosinRubber + # Botanist - type: loadout id: LoadoutServiceBotanistUniformOveralls - category: JobsAUncategorized - cost: 2 + category: JobsServiceUncategorized + cost: 0 exclusive: true requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutUniformsService - !type:CharacterJobRequirement jobs: - Botanist @@ -189,10 +337,12 @@ # Lawyer - type: loadout id: LoadoutServiceLawyerUniformBlueSuit - category: JobsAUncategorized - cost: 2 + category: JobsServiceUncategorized + cost: 0 exclusive: true requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutUniformsService - !type:CharacterJobRequirement jobs: - Lawyer @@ -201,10 +351,12 @@ - type: loadout id: LoadoutServiceLawyerUniformBlueSkirt - category: JobsAUncategorized - cost: 2 + category: JobsServiceUncategorized + cost: 0 exclusive: true requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutUniformsService - !type:CharacterJobRequirement jobs: - Lawyer @@ -213,10 +365,12 @@ - type: loadout id: LoadoutServiceLawyerUniformRedSuit - category: JobsAUncategorized - cost: 2 + category: JobsServiceUncategorized + cost: 0 exclusive: true requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutUniformsService - !type:CharacterJobRequirement jobs: - Lawyer @@ -225,10 +379,12 @@ - type: loadout id: LoadoutServiceLawyerUniformRedSkirt - category: JobsAUncategorized - cost: 2 + category: JobsServiceUncategorized + cost: 0 exclusive: true requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutUniformsService - !type:CharacterJobRequirement jobs: - Lawyer @@ -237,10 +393,12 @@ - type: loadout id: LoadoutServiceLawyerUniformPurpleSuit - category: JobsAUncategorized - cost: 2 + category: JobsServiceUncategorized + cost: 0 exclusive: true requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutUniformsService - !type:CharacterJobRequirement jobs: - Lawyer @@ -249,10 +407,12 @@ - type: loadout id: LoadoutServiceLawyerUniformPurpleSkirt - category: JobsAUncategorized - cost: 2 + category: JobsServiceUncategorized + cost: 0 exclusive: true requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutUniformsService - !type:CharacterJobRequirement jobs: - Lawyer @@ -261,10 +421,12 @@ - type: loadout id: LoadoutServiceLawyerUniformGoodSuit - category: JobsAUncategorized - cost: 2 + category: JobsServiceUncategorized + cost: 0 exclusive: true requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutUniformsService - !type:CharacterJobRequirement jobs: - Lawyer @@ -273,10 +435,12 @@ - type: loadout id: LoadoutServiceLawyerUniformGoodSkirt - category: JobsAUncategorized - cost: 2 + category: JobsServiceUncategorized + cost: 0 exclusive: true requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutUniformsService - !type:CharacterJobRequirement jobs: - Lawyer @@ -285,10 +449,12 @@ - type: loadout id: LoadoutServiceReporterUniformJournalist - category: JobsAUncategorized - cost: 2 + category: JobsServiceUncategorized + cost: 0 exclusive: true requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutUniformsService - !type:CharacterJobRequirement jobs: - Reporter @@ -298,10 +464,12 @@ # Reporter - type: loadout id: LoadoutServiceReporterUniformDetectivesuit - category: JobsAUncategorized - cost: 2 + category: JobsServiceUncategorized + cost: 0 exclusive: true requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutUniformsService - !type:CharacterJobRequirement jobs: - Reporter @@ -310,10 +478,12 @@ - type: loadout id: LoadoutServiceReporterUniformDetectiveskirt - category: JobsAUncategorized - cost: 2 + category: JobsServiceUncategorized + cost: 0 exclusive: true requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutUniformsService - !type:CharacterJobRequirement jobs: - Reporter @@ -322,12 +492,170 @@ # Musician - type: loadout - id: LoadoutItemSynthesizerInstrument - category: JobsAUncategorized - cost: 8 + id: LoadoutItemSynthesizerInstrumentMusician + category: JobsServiceUncategorized + cost: 2 requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutMusicianInstruments - !type:CharacterJobRequirement jobs: - Musician items: - SynthesizerInstrument + +- type: loadout + id: LoadoutItemMicrophoneInstrumentMusician + category: JobsServiceUncategorized + cost: 0 + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutMusicianInstruments + - !type:CharacterJobRequirement + jobs: + - Musician + items: + - MicrophoneInstrument + +- type: loadout + id: LoadoutItemKalimbaInstrumentMusician + category: Items + cost: 0 + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutMusicianInstruments + - !type:CharacterJobRequirement + jobs: + - Musician + items: + - KalimbaInstrument + +- type: loadout + id: LoadoutItemTrumpetInstrumentMusician + category: Items + cost: 2 + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutMusicianInstruments + - !type:CharacterJobRequirement + jobs: + - Musician + items: + - TrumpetInstrument + +- type: loadout + id: LoadoutItemElectricGuitarInstrumentMusician + category: Items + cost: 2 + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutMusicianInstruments + - !type:CharacterJobRequirement + jobs: + - Musician + items: + - ElectricGuitarInstrument + +- type: loadout + id: LoadoutItemBassGuitarInstrumentMusician + category: Items + cost: 2 + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutMusicianInstruments + - !type:CharacterJobRequirement + jobs: + - Musician + items: + - BassGuitarInstrument + +- type: loadout + id: LoadoutItemRockGuitarInstrumentMusician + category: Items + cost: 2 + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutMusicianInstruments + - !type:CharacterJobRequirement + jobs: + - Musician + items: + - RockGuitarInstrument + +- type: loadout + id: LoadoutItemAcousticGuitarInstrumentMusician + category: Items + cost: 2 + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutMusicianInstruments + - !type:CharacterJobRequirement + jobs: + - Musician + items: + - AcousticGuitarInstrument + +- type: loadout + id: LoadoutItemViolinInstrumentMusician + category: Items + cost: 2 + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutMusicianInstruments + - !type:CharacterJobRequirement + jobs: + - Musician + items: + - ViolinInstrument + +- type: loadout + id: LoadoutItemHarmonicaInstrumentMusician + category: Items + cost: 0 + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutMusicianInstruments + - !type:CharacterJobRequirement + jobs: + - Musician + items: + - HarmonicaInstrument + +- type: loadout + id: LoadoutItemAccordionInstrumentMusician + category: Items + cost: 0 + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutMusicianInstruments + - !type:CharacterJobRequirement + jobs: + - Musician + items: + - AccordionInstrument + +- type: loadout + id: LoadoutItemFluteInstrumentMusician + category: Items + cost: 0 + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutMusicianInstruments + - !type:CharacterJobRequirement + jobs: + - Musician + items: + - FluteInstrument + +- type: loadout + id: LoadoutItemOcarinaInstrumentMusician + category: Items + cost: 0 + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutMusicianInstruments + - !type:CharacterJobRequirement + jobs: + - Musician + items: + - OcarinaInstrument \ No newline at end of file diff --git a/Resources/Prototypes/Loadouts/backpacks.yml b/Resources/Prototypes/Loadouts/backpacks.yml new file mode 100644 index 0000000000..5fd812380c --- /dev/null +++ b/Resources/Prototypes/Loadouts/backpacks.yml @@ -0,0 +1,268 @@ +- 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 new file mode 100644 index 0000000000..89997326f1 --- /dev/null +++ b/Resources/Prototypes/Loadouts/duffelbags.yml @@ -0,0 +1,234 @@ +- 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/items.yml b/Resources/Prototypes/Loadouts/items.yml index eacb6f1738..5c752be343 100644 --- a/Resources/Prototypes/Loadouts/items.yml +++ b/Resources/Prototypes/Loadouts/items.yml @@ -119,6 +119,10 @@ requirements: - !type:CharacterItemGroupRequirement group: LoadoutInstrumentsAny + - !type:CharacterJobRequirement + inverted: true + jobs: + - Musician - type: loadout id: LoadoutItemKalimbaInstrument @@ -129,6 +133,10 @@ requirements: - !type:CharacterItemGroupRequirement group: LoadoutInstrumentsAny + - !type:CharacterJobRequirement + inverted: true + jobs: + - Musician - type: loadout id: LoadoutItemTrumpetInstrument @@ -139,6 +147,10 @@ requirements: - !type:CharacterItemGroupRequirement group: LoadoutInstrumentsAny + - !type:CharacterJobRequirement + inverted: true + jobs: + - Musician - type: loadout id: LoadoutItemElectricGuitar @@ -149,6 +161,10 @@ requirements: - !type:CharacterItemGroupRequirement group: LoadoutInstrumentsAny + - !type:CharacterJobRequirement + inverted: true + jobs: + - Musician - type: loadout id: LoadoutItemBassGuitar @@ -159,6 +175,10 @@ requirements: - !type:CharacterItemGroupRequirement group: LoadoutInstrumentsAny + - !type:CharacterJobRequirement + inverted: true + jobs: + - Musician - type: loadout id: LoadoutItemRockGuitar @@ -169,6 +189,10 @@ requirements: - !type:CharacterItemGroupRequirement group: LoadoutInstrumentsAny + - !type:CharacterJobRequirement + inverted: true + jobs: + - Musician - type: loadout id: LoadoutItemAcousticGuitar @@ -179,6 +203,10 @@ requirements: - !type:CharacterItemGroupRequirement group: LoadoutInstrumentsAny + - !type:CharacterJobRequirement + inverted: true + jobs: + - Musician - type: loadout id: LoadoutItemViolin @@ -189,6 +217,10 @@ requirements: - !type:CharacterItemGroupRequirement group: LoadoutInstrumentsAny + - !type:CharacterJobRequirement + inverted: true + jobs: + - Musician - type: loadout id: LoadoutItemHarmonica @@ -199,6 +231,10 @@ requirements: - !type:CharacterItemGroupRequirement group: LoadoutInstrumentsAny + - !type:CharacterJobRequirement + inverted: true + jobs: + - Musician - type: loadout id: LoadoutItemAccordion @@ -209,6 +245,10 @@ requirements: - !type:CharacterItemGroupRequirement group: LoadoutInstrumentsAny + - !type:CharacterJobRequirement + inverted: true + jobs: + - Musician - type: loadout id: LoadoutItemFlute @@ -219,6 +259,10 @@ requirements: - !type:CharacterItemGroupRequirement group: LoadoutInstrumentsAny + - !type:CharacterJobRequirement + inverted: true + jobs: + - Musician - type: loadout id: LoadoutItemOcarina @@ -229,6 +273,10 @@ requirements: - !type:CharacterItemGroupRequirement group: LoadoutInstrumentsAny + - !type:CharacterJobRequirement + inverted: true + jobs: + - Musician # Survival Kit - type: loadout @@ -608,18 +656,6 @@ items: - PersonalAI -- type: loadout - id: LoadoutItemBackpackSatchelLeather - category: Items - cost: 1 - items: - - ClothingBackpackSatchelLeather - requirements: - - !type:CharacterJobRequirement - inverted: true - jobs: - - Prisoner - - type: loadout id: LoadoutItemWaistbag category: Items diff --git a/Resources/Prototypes/Loadouts/satchels.yml b/Resources/Prototypes/Loadouts/satchels.yml new file mode 100644 index 0000000000..4f21dc7656 --- /dev/null +++ b/Resources/Prototypes/Loadouts/satchels.yml @@ -0,0 +1,247 @@ +- 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 new file mode 100644 index 0000000000..e59e1b2db8 --- /dev/null +++ b/Resources/Prototypes/Magic/event_spells.yml @@ -0,0 +1,13 @@ +- type: entity + id: ActionSummonGhosts + name: Summon Ghosts + description: Makes all current ghosts permanently invisible + noSpawn: true + components: + - type: InstantAction + useDelay: 120 + itemIconStyle: BigAction + icon: + sprite: Mobs/Ghosts/ghost_human.rsi + state: icon + event: !type:ToggleGhostVisibilityToAllEvent diff --git a/Resources/Prototypes/Magic/knock_spell.yml b/Resources/Prototypes/Magic/knock_spell.yml index f00897d32c..e2c3dcfd4c 100644 --- a/Resources/Prototypes/Magic/knock_spell.yml +++ b/Resources/Prototypes/Magic/knock_spell.yml @@ -7,6 +7,8 @@ - type: InstantAction useDelay: 10 itemIconStyle: BigAction + sound: !type:SoundPathSpecifier + path: /Audio/Magic/knock.ogg icon: sprite: Objects/Magic/magicactions.rsi state: knock diff --git a/Resources/Prototypes/Magic/projectile_spells.yml b/Resources/Prototypes/Magic/projectile_spells.yml index 196472fe7b..b8db7557bb 100644 --- a/Resources/Prototypes/Magic/projectile_spells.yml +++ b/Resources/Prototypes/Magic/projectile_spells.yml @@ -4,10 +4,12 @@ description: Fires an explosive fireball towards the clicked location. noSpawn: true components: + - type: Magic - type: WorldTargetAction useDelay: 15 itemIconStyle: BigAction checkCanAccess: false + raiseOnUser: true range: 60 sound: !type:SoundPathSpecifier path: /Audio/Magic/fireball.ogg @@ -16,25 +18,25 @@ state: fireball event: !type:ProjectileSpellEvent prototype: ProjectileFireball - posData: !type:TargetCasterPos speech: action-speech-spell-fireball - type: ActionUpgrade effectedLevels: 2: ActionFireballII + 3: ActionFireballIII - type: entity id: ActionFireballII parent: ActionFireball name: Fireball II - description: Fire three explosive fireball towards the clicked location. + description: Fires a fireball, but faster! noSpawn: true components: - type: WorldTargetAction - useDelay: 5 - charges: 3 + useDelay: 10 renewCharges: true itemIconStyle: BigAction checkCanAccess: false + raiseOnUser: true range: 60 sound: !type:SoundPathSpecifier path: /Audio/Magic/fireball.ogg @@ -43,5 +45,27 @@ state: fireball event: !type:ProjectileSpellEvent prototype: ProjectileFireball - posData: !type:TargetCasterPos speech: action-speech-spell-fireball + +- type: entity + id: ActionFireballIII + parent: ActionFireball + name: Fireball III + description: The fastest fireball in the west! + noSpawn: true + components: + - type: WorldTargetAction + useDelay: 8 + renewCharges: true + itemIconStyle: BigAction + checkCanAccess: false + raiseOnUser: true + range: 60 + sound: !type:SoundPathSpecifier + path: /Audio/Magic/fireball.ogg + icon: + sprite: Objects/Magic/magicactions.rsi + state: fireball + event: !type:ProjectileSpellEvent + prototype: ProjectileFireball + speech: action-speech-spell-fireball diff --git a/Resources/Prototypes/Magic/teleport_spells.yml b/Resources/Prototypes/Magic/teleport_spells.yml index 30c83891ee..cc89cf8ee0 100644 --- a/Resources/Prototypes/Magic/teleport_spells.yml +++ b/Resources/Prototypes/Magic/teleport_spells.yml @@ -8,9 +8,11 @@ useDelay: 10 range: 16 # default examine-range. # ^ should probably add better validation that the clicked location is on the users screen somewhere, + sound: !type:SoundPathSpecifier + path: /Audio/Magic/blink.ogg itemIconStyle: BigAction checkCanAccess: false - repeat: true + repeat: false icon: sprite: Objects/Magic/magicactions.rsi state: blink diff --git a/Resources/Prototypes/Magic/utility_spells.yml b/Resources/Prototypes/Magic/utility_spells.yml new file mode 100644 index 0000000000..dccdda3789 --- /dev/null +++ b/Resources/Prototypes/Magic/utility_spells.yml @@ -0,0 +1,15 @@ +- type: entity + id: ActionChargeSpell + name: Charge + description: Adds a charge back to your wand + noSpawn: true + components: + - type: InstantAction + useDelay: 30 + itemIconStyle: BigAction + icon: + sprite: Objects/Weapons/Guns/Basic/wands.rsi + state: nothing + event: !type:ChargeSpellEvent + charge: 1 + speech: DI'RI CEL! diff --git a/Resources/Prototypes/Maps/Pools/default.yml b/Resources/Prototypes/Maps/Pools/default.yml index d6ca85bf74..4ebd0df04c 100644 --- a/Resources/Prototypes/Maps/Pools/default.yml +++ b/Resources/Prototypes/Maps/Pools/default.yml @@ -14,4 +14,6 @@ - Submarine - Tortuga - TheHive + - Gax - DryDock + - Rad diff --git a/Resources/Prototypes/Maps/asterisk.yml b/Resources/Prototypes/Maps/asterisk.yml index 3ef57dd490..cf57fa2725 100644 --- a/Resources/Prototypes/Maps/asterisk.yml +++ b/Resources/Prototypes/Maps/asterisk.yml @@ -8,6 +8,8 @@ Asterisk: stationProto: StandardNanotrasenStation components: + - type: StationBiome + biome: Snow - type: StationRandomTransform enableStationRotation: false maxStationOffset: null diff --git a/Resources/Prototypes/Maps/gaxstation.yml b/Resources/Prototypes/Maps/gaxstation.yml new file mode 100644 index 0000000000..93528d92d8 --- /dev/null +++ b/Resources/Prototypes/Maps/gaxstation.yml @@ -0,0 +1,72 @@ +- type: gameMap + id: Gax + mapName: 'NCS Gax' + mapPath: /Maps/gaxstation.yml + minPlayers: 10 + maxPlayers: 45 + fallback: true + stations: + Gaxstation: + stationProto: StandardNanotrasenStation + components: + - type: StationEmergencyShuttle + emergencyShuttlePath: /Maps/Shuttles/DeltaV/NTES_Delta.yml + - type: StationNameSetup + mapNameTemplate: '{0} NCS Gax {1}' + nameGenerator: + !type:NanotrasenNameGenerator + prefixCreator: '14' + - type: StationJobs + overflowJobs: + - Passenger + availableJobs: + #service + Captain: [ 1, 1 ] + HeadOfPersonnel: [ 1, 1 ] + Bartender: [ 1, 1 ] + Botanist: [3 , 3 ] + Chef: [ 2, 2 ] + Janitor: [ 2, 2 ] + ServiceWorker: [ 2, 2 ] + #Engineering + ChiefEngineer: [ 1, 1 ] + AtmosphericTechnician: [ 4, 4 ] + StationEngineer: [ 4, 4 ] + TechnicalAssistant: [ 2, 2 ] + #Medical + ChiefMedicalOfficer: [ 1, 1 ] + Chemist: [ 2, 2 ] + MedicalDoctor: [ 3, 3 ] + MedicalIntern: [ 3, 3 ] + Paramedic: [ 2, 2 ] + MedicalBorg: [ 1, 1 ] + #Epistemics + ResearchDirector: [ 1, 1 ] + Scientist: [ 4, 4 ] + ResearchAssistant: [ 2, 2 ] + Roboticist: [ 1, 2 ] + Borg: [ 2, 2 ] + Chaplain: [ 1, 1 ] + Librarian: [ 1, 1 ] + ForensicMantis: [ 1, 1 ] + #Security + HeadOfSecurity: [ 1, 1 ] + Warden: [ 1, 1 ] + SecurityOfficer: [ 4, 4 ] + SecurityCadet: [ 4, 4 ] + Detective: [ 1, 1 ] + Prisoner: [ 1, 2 ] + PrisonGuard: [ 1, 2 ] + Brigmedic: [ 1, 1 ] + Lawyer: [ 1, 1 ] + #Supply + Quartermaster: [ 1, 1 ] + SalvageSpecialist: [ 1, 3 ] + CargoTechnician: [ 2, 2 ] + MailCarrier: [ 1, 2 ] + #Civillian + Passenger: [ -1, -1 ] + Clown: [ 1, 1 ] + Mime: [ 1, 1 ] + Musician: [ 1, 1 ] + diff --git a/Resources/Prototypes/Maps/radstation.yml b/Resources/Prototypes/Maps/radstation.yml new file mode 100644 index 0000000000..737b4d4492 --- /dev/null +++ b/Resources/Prototypes/Maps/radstation.yml @@ -0,0 +1,75 @@ +- type: gameMap + id: Rad + mapName: 'RadStation' + mapPath: /Maps/radstation.yml + minPlayers: 35 + stations: + RadStation: + stationProto: StandardNanotrasenStation + components: + - type: StationEmergencyShuttle + emergencyShuttlePath: /Maps/Shuttles/emergency_neol.yml + - type: StationNameSetup + mapNameTemplate: '{0} RadStation {1}' + nameGenerator: + !type:NanotrasenNameGenerator + prefixCreator: '14' + - type: StationJobs + overflowJobs: + - Passenger + availableJobs: + #service + Captain: [ 1, 1 ] + HeadOfPersonnel: [ 1, 1 ] + Bartender: [ 1, 1 ] + Botanist: [ 3, 3 ] + Chef: [ 2, 2 ] + Janitor: [ 2, 2 ] + Librarian: [ 1, 1 ] + ServiceWorker: [ 1, 1 ] + #engineering + ChiefEngineer: [ 1, 1 ] + AtmosphericTechnician: [ 4, 4 ] + StationEngineer: [ 3, 3 ] + TechnicalAssistant: [ 2, 2 ] + #medical + ChiefMedicalOfficer: [ 1, 1 ] + Chemist: [ 2, 2 ] + MedicalBorg: [ 2, 2 ] + MedicalDoctor: [ 3, 3 ] + Paramedic: [ 1, 1 ] + MedicalIntern: [ 2, 2 ] + #science + ResearchDirector: [ 1, 1 ] + Roboticist: [ 1, 2 ] + Scientist: [ 5, 5 ] + ForensicMantis: [ 1, 1 ] + ResearchAssistant: [ 2, 2 ] + Borg: [ 1, 1 ] + Chaplain: [ 1, 1 ] + #security + HeadOfSecurity: [ 1, 1 ] + Brigmedic: [ 1, 1 ] + Warden: [ 1, 1 ] + SecurityOfficer: [ 5, 5 ] + Prisoner: [ 2, 3 ] + PrisonGuard: [ 2, 3 ] + Detective: [ 1, 1 ] + SecurityCadet: [ 2, 2 ] + #supply + Quartermaster: [ 1, 1 ] + MailCarrier: [ 1, 2 ] + SalvageSpecialist: [ 3, 3 ] + CargoTechnician: [ 5, 5 ] + #civilian + Passenger: [ -1, -1 ] + Clown: [ 1, 1 ] + Mime: [ 1, 1 ] + Musician: [ 1, 1 ] + Reporter: [ 2, 2 ] + Psychologist: [ 1, 1 ] + #justice + ChiefJustice: [ 1, 1 ] + Clerk: [ 1, 1 ] + Lawyer: [ 1, 1 ] + Prosecutor: [ 1, 1] diff --git a/Resources/Prototypes/Mood/drugs.yml b/Resources/Prototypes/Mood/drugs.yml new file mode 100644 index 0000000000..a9818d2021 --- /dev/null +++ b/Resources/Prototypes/Mood/drugs.yml @@ -0,0 +1,45 @@ +# Drugs should be paired up in Trios of "Bonus, Penalty, Category" + +# Lotophagoi Oil +- type: moodEffect + id: LotoTranscendence + moodChange: 30 + timeout: 600 #10 minutes + moodletOnEnd: LotoEnthrallment + category: "LotophagoiAddiction" + +- type: moodEffect + id: LotoEnthrallment + moodChange: -30 + timeout: 600 #10 minutes + category: "LotophagoiAddiction" + +- type: moodCategory + id: LotophagoiAddiction + +# Nicotine +- type: moodEffect + id: NicotineBenefit + moodChange: 5 + timeout: 600 #10 minutes + moodletOnEnd: NicotineWithdrawal + category: "NicotineAddiction" + +- type: moodEffect + id: NicotineWithdrawal + moodChange: -7 #No timeout + category: "NicotineAddiction" + +- type: moodCategory + id: NicotineAddiction + +# Non-Addictive Drugs +- type: moodEffect + id: EthanolBenefit + moodChange: 7 + timeout: 300 #5 minutes + +- type: moodEffect + id: SpaceDrugsBenefit + moodChange: 7 + timeout: 300 #5 minutes \ No newline at end of file diff --git a/Resources/Prototypes/NPCs/Combat/melee.yml b/Resources/Prototypes/NPCs/Combat/melee.yml index 122875ed97..b0746e5679 100644 --- a/Resources/Prototypes/NPCs/Combat/melee.yml +++ b/Resources/Prototypes/NPCs/Combat/melee.yml @@ -17,6 +17,29 @@ - !type:HTNCompoundTask task: PickupMeleeCompound + - preconditions: + - !type:BuckledPrecondition + isBuckled: true + tasks: + - !type:HTNPrimitiveTask + operator: !type:UnbuckleOperator + shutdownState: TaskFinished + + - preconditions: + - !type:InContainerPrecondition + isInContainer: true + tasks: + - !type:HTNCompoundTask + task: EscapeCompound + + - preconditions: + - !type:PulledPrecondition + isPulled: true + tasks: + - !type:HTNPrimitiveTask + operator: !type:UnPullOperator + shutdownState: TaskFinished + # Melee combat (unarmed or otherwise) - tasks: - !type:HTNPrimitiveTask @@ -101,6 +124,21 @@ proto: NearbyMeleeTargets key: Target +- type: htnCompound + id: EscapeCompound + branches: + - tasks: + - !type:HTNPrimitiveTask + operator: !type:ContainerOperator + targetKey: Target + shutdownState: TaskFinished + - !type:HTNPrimitiveTask + operator: !type:EscapeOperator + targetKey: Target + preconditions: + - !type:InContainerPrecondition + isInContainer: true + - type: htnCompound id: MeleeAttackOrderedTargetCompound branches: diff --git a/Resources/Prototypes/NPCs/debug.yml b/Resources/Prototypes/NPCs/debug.yml new file mode 100644 index 0000000000..c7929be103 --- /dev/null +++ b/Resources/Prototypes/NPCs/debug.yml @@ -0,0 +1,90 @@ +- type: htnCompound + id: DebugCounterCompound + branches: + - tasks: + - !type:HTNPrimitiveTask + operator: !type:AddFloatOperator + targetKey: Count + amount: 1 + + - !type:HTNPrimitiveTask + operator: !type:SayKeyOperator + key: Count + + - !type:HTNPrimitiveTask + operator: !type:RandomOperator + targetKey: IdleTime + minKey: MinimumIdleTime + maxKey: MaximumIdleTime + + - !type:HTNPrimitiveTask + operator: !type:WaitOperator + key: IdleTime + preconditions: + - !type:KeyExistsPrecondition + key: IdleTime + +- type: htnCompound + id: DebugRandomCounterCompound + branches: + - tasks: + - !type:HTNPrimitiveTask + operator: !type:SetRandomFloatOperator + targetKey: Count + minAmount: 0 + maxAmount: 100 + + - !type:HTNPrimitiveTask + operator: !type:SayKeyOperator + key: Count + + - !type:HTNPrimitiveTask + operator: !type:RandomOperator + targetKey: IdleTime + minKey: MinimumIdleTime + maxKey: MaximumIdleTime + + - !type:HTNPrimitiveTask + operator: !type:WaitOperator + key: IdleTime + preconditions: + - !type:KeyExistsPrecondition + key: IdleTime + +- type: htnCompound + id: DebugRandomLessCompound + branches: + - tasks: + - !type:HTNPrimitiveTask + operator: !type:SetRandomFloatOperator + targetKey: Count + minAmount: 0 + maxAmount: 100 + + - !type:HTNPrimitiveTask + operator: !type:SayKeyOperator + key: Count + preconditions: + - !type:KeyFloatLessPrecondition + key: Count + value: 50 + + - !type:HTNPrimitiveTask + operator: !type:RandomOperator + targetKey: IdleTime + minKey: MinimumIdleTime + maxKey: MaximumIdleTime + + - !type:HTNPrimitiveTask + operator: !type:WaitOperator + key: IdleTime + preconditions: + - !type:KeyExistsPrecondition + key: IdleTime + + - tasks: + - !type:HTNPrimitiveTask + operator: !type:SpeakOperator + speech: "fuck!" + + \ No newline at end of file diff --git a/Resources/Prototypes/Nyanotrasen/Catalog/Fills/Vending/Inventories/maildrobe.yml b/Resources/Prototypes/Nyanotrasen/Catalog/Fills/Vending/Inventories/maildrobe.yml index 579c57ced4..2764255824 100644 --- a/Resources/Prototypes/Nyanotrasen/Catalog/Fills/Vending/Inventories/maildrobe.yml +++ b/Resources/Prototypes/Nyanotrasen/Catalog/Fills/Vending/Inventories/maildrobe.yml @@ -3,6 +3,8 @@ startingInventory: ClothingUniformMailCarrier: 2 ClothingUniformSkirtMailCarrier: 2 + WeaponMailLake: 1 # Frontier + BoxMailCapsulePrimed: 2 # Frontier ClothingHeadMailCarrier: 2 MailBag: 2 ClothingHeadsetCargo: 2 diff --git a/Resources/Prototypes/Nyanotrasen/Damage/groups.yml b/Resources/Prototypes/Nyanotrasen/Damage/groups.yml index d2f9906f45..3160660571 100644 --- a/Resources/Prototypes/Nyanotrasen/Damage/groups.yml +++ b/Resources/Prototypes/Nyanotrasen/Damage/groups.yml @@ -1,4 +1,5 @@ - type: damageGroup id: Immaterial + name: damage-group-immaterial damageTypes: - Holy diff --git a/Resources/Prototypes/Nyanotrasen/Damage/types.yml b/Resources/Prototypes/Nyanotrasen/Damage/types.yml index f9aba7e2ac..22c045e9a6 100644 --- a/Resources/Prototypes/Nyanotrasen/Damage/types.yml +++ b/Resources/Prototypes/Nyanotrasen/Damage/types.yml @@ -1,5 +1,6 @@ # Only affects magical beings. - type: damageType id: Holy + name: damage-type-holy armorCoefficientPrice: 25 armorFlatPrice: 150 diff --git a/Resources/Prototypes/Nyanotrasen/Entities/Clothing/Head/hardsuit-helmets.yml b/Resources/Prototypes/Nyanotrasen/Entities/Clothing/Head/hardsuit-helmets.yml index 1a83a14bd5..3896cd1ef1 100644 --- a/Resources/Prototypes/Nyanotrasen/Entities/Clothing/Head/hardsuit-helmets.yml +++ b/Resources/Prototypes/Nyanotrasen/Entities/Clothing/Head/hardsuit-helmets.yml @@ -11,9 +11,6 @@ destroyOnFry: false - type: ClothingGrantPsionicPower power: MetapsionicPower - - type: GuideHelp - guides: - - Psionics - type: entity parent: ClothingHeadHelmetHardsuitSyndie diff --git a/Resources/Prototypes/Nyanotrasen/Entities/Clothing/Head/hats.yml b/Resources/Prototypes/Nyanotrasen/Entities/Clothing/Head/hats.yml index deaca17558..2f23944549 100644 --- a/Resources/Prototypes/Nyanotrasen/Entities/Clothing/Head/hats.yml +++ b/Resources/Prototypes/Nyanotrasen/Entities/Clothing/Head/hats.yml @@ -74,9 +74,6 @@ - type: Construction graph: TinfoilHat node: tinfoilhat - - type: GuideHelp - guides: - - Psionics - type: entity parent: ClothingHeadBase diff --git a/Resources/Prototypes/Nyanotrasen/Entities/Clothing/OuterClothing/hardsuits.yml b/Resources/Prototypes/Nyanotrasen/Entities/Clothing/OuterClothing/hardsuits.yml index 6498eda075..4e988c2740 100644 --- a/Resources/Prototypes/Nyanotrasen/Entities/Clothing/OuterClothing/hardsuits.yml +++ b/Resources/Prototypes/Nyanotrasen/Entities/Clothing/OuterClothing/hardsuits.yml @@ -19,8 +19,6 @@ sprite: Nyanotrasen/Clothing/OuterClothing/ReverseEngineering/syndicate.rsi - type: ToggleableClothing clothingPrototype: ClothingHeadHelmetHardsuitSyndieReverseEngineered - - type: ReverseEngineering - newItem: null - type: entity parent: ClothingOuterHardsuitJuggernaut @@ -35,8 +33,6 @@ sprite: Nyanotrasen/Clothing/OuterClothing/ReverseEngineering/juggernaut.rsi - type: ToggleableClothing clothingPrototype: ClothingHeadHelmetHardsuitJuggernautReverseEngineered - - type: ReverseEngineering - newItem: null - type: entity parent: ClothingOuterHardsuitERTLeader diff --git a/Resources/Prototypes/Nyanotrasen/Entities/Markers/Spawners/ghost_roles.yml b/Resources/Prototypes/Nyanotrasen/Entities/Markers/Spawners/ghost_roles.yml index 046a324e6f..a21976fa7a 100644 --- a/Resources/Prototypes/Nyanotrasen/Entities/Markers/Spawners/ghost_roles.yml +++ b/Resources/Prototypes/Nyanotrasen/Entities/Markers/Spawners/ghost_roles.yml @@ -51,23 +51,23 @@ - state: prisoner # - type: MidRoundAntagSpawnLocation # When MidRoundAntag? -- type: entity - id: SpawnPointGhostVampSpider - name: ghost role spawn point - suffix: Vampire spider - parent: MarkerBase - noSpawn: true - components: - - type: GhostRoleMobSpawner - prototype: MobGiantSpiderVampireAngry - - type: GhostRole - makeSentient: true - name: ghost-role-information-giant-spider-vampire-name - description: ghost-role-information-giant-spider-vampire-description - rules: No antagonist restrictions. Just don't talk in emote; you have telepathic chat. - - type: Sprite - sprite: Markers/jobs.rsi - layers: - - state: green - - sprite: Mobs/Animals/bat.rsi - state: bat +#- type: entity +# id: SpawnPointGhostVampSpider +# name: ghost role spawn point +# suffix: Vampire spider +# parent: MarkerBase +# noSpawn: true +# components: +# - type: GhostRoleMobSpawner +# prototype: MobGiantSpiderVampireAngry +# - type: GhostRole +# makeSentient: true +# name: ghost-role-information-giant-spider-vampire-name +# description: ghost-role-information-giant-spider-vampire-description +# rules: No antagonist restrictions. Just don't talk in emote; you have telepathic chat. +# - type: Sprite +# sprite: Markers/jobs.rsi +# layers: +# - state: green +# - sprite: Mobs/Animals/bat.rsi +# state: bat diff --git a/Resources/Prototypes/Nyanotrasen/Entities/Mobs/NPCs/mutants.yml b/Resources/Prototypes/Nyanotrasen/Entities/Mobs/NPCs/mutants.yml index 996c0d87ab..b3de9e0191 100644 --- a/Resources/Prototypes/Nyanotrasen/Entities/Mobs/NPCs/mutants.yml +++ b/Resources/Prototypes/Nyanotrasen/Entities/Mobs/NPCs/mutants.yml @@ -70,132 +70,132 @@ - type: Produce - type: NoSlip -- type: entity - name: oneirophage - parent: MobGiantSpider - id: MobGiantSpiderVampire - description: The 'dream-eater' spider, rumored to be one of the potential genetic sources for arachne. - components: - - type: Sprite - drawdepth: Mobs - layers: - - map: ["enum.DamageStateVisualLayers.Base", "movement"] - state: viper - sprite: Mobs/Animals/spider.rsi - - type: SpriteMovement - movementLayers: - movement: - state: viper-moving - noMovementLayers: - movement: - state: viper - - type: Appearance - - type: DamageStateVisuals - states: - Alive: - Base: viper - Critical: - Base: viper_dead - Dead: - Base: viper_dead - - type: ReplacementAccent - accent: xeno - - type: InteractionPopup - successChance: 0.5 - interactSuccessString: petting-success-tarantula - interactFailureString: petting-failure-generic - interactSuccessSpawn: EffectHearts - interactSuccessSound: - path: /Audio/Animals/snake_hiss.ogg - - type: Puller - needsHands: false - - type: Arachne - cocoonDelay: 8 - - type: SolutionContainerManager - solutions: - melee: - reagents: - - ReagentId: Nocturine - Quantity: 20 - - type: MeleeChemicalInjector - solution: melee - transferAmount: 3.5 - - type: SolutionRegeneration - solution: melee - generated: - reagents: - - ReagentId: Nocturine - Quantity: 0.15 - - type: BloodSucker - unitsToSucc: 35 - injectWhenSucc: true - injectReagent: Cryptobiolin - unitsToInject: 10 - webRequired: true - - type: Bloodstream - bloodReagent: DemonsBlood - - type: Body - prototype: VampiricAnimalLarge - - type: Psionic - removable: false - - type: InnatePsionicPowers - powersToAdd: - - MetapsionicPower - - PsionicInvisibilityPower - - type: AntiPsionicWeapon - punish: false - modifiers: - coefficients: - Piercing: 2.25 - - type: Damageable - damageContainer: HalfSpirit - damageModifierSet: HalfSpirit - - type: StatusEffects - allowed: - - Stun - - KnockedDown - - SlowedDown - - Stutter - - SeeingRainbows - - Electrocution - - Drunk - - SlurredSpeech - - PressureImmunity - - Muted - - ForcedSleep - - TemporaryBlindness - - Pacified - - PsionicsDisabled - - PsionicallyInsulated - - type: Tag - tags: - - Oneirophage - - type: MovementAlwaysTouching - - type: PsionicInvisibleContacts - whitelist: - tags: - - ArachneWeb +#- type: entity +# name: oneirophage +# parent: MobGiantSpider +# id: MobGiantSpiderVampire +# description: The 'dream-eater' spider, rumored to be one of the potential genetic sources for arachne. +# components: +# - type: Sprite +# drawdepth: Mobs +# layers: +# - map: ["enum.DamageStateVisualLayers.Base", "movement"] +# state: viper +# sprite: Mobs/Animals/spider.rsi +# - type: SpriteMovement +# movementLayers: +# movement: +# state: viper-moving +# noMovementLayers: +# movement: +# state: viper +# - type: Appearance +# - type: DamageStateVisuals +# states: +# Alive: +# Base: viper +# Critical: +# Base: viper_dead +# Dead: +# Base: viper_dead +# - type: ReplacementAccent +# accent: xeno +# - type: InteractionPopup +# successChance: 0.5 +# interactSuccessString: petting-success-tarantula +# interactFailureString: petting-failure-generic +# interactSuccessSpawn: EffectHearts +# interactSuccessSound: +# path: /Audio/Animals/snake_hiss.ogg +# - type: Puller +# needsHands: false +# - type: Cocooner +# cocoonDelay: 8 +# - type: SolutionContainerManager +# solutions: +# melee: +# reagents: +# - ReagentId: Nocturine +# Quantity: 20 +# - type: MeleeChemicalInjector +# solution: melee +# transferAmount: 3.5 +# - type: SolutionRegeneration +# solution: melee +# generated: +# reagents: +# - ReagentId: Nocturine +# Quantity: 0.15 +# - type: BloodSucker +# unitsToSucc: 35 +# injectWhenSucc: true +# injectReagent: Cryptobiolin +# unitsToInject: 10 +# webRequired: true +# - type: Bloodstream +# bloodReagent: DemonsBlood +# - type: Body +# prototype: VampiricAnimalLarge +# - type: Psionic +# removable: false +# - type: InnatePsionicPowers +# powersToAdd: +# - MetapsionicPower +# - PsionicInvisibilityPower +# - type: AntiPsionicWeapon +# punish: false +# modifiers: +# coefficients: +# Piercing: 2.25 +# - type: Damageable +# damageContainer: HalfSpirit +# damageModifierSet: HalfSpirit +# - type: StatusEffects +# allowed: +# - Stun +# - KnockedDown +# - SlowedDown +# - Stutter +# - SeeingRainbows +# - Electrocution +# - Drunk +# - SlurredSpeech +# - PressureImmunity +# - Muted +# - ForcedSleep +# - TemporaryBlindness +# - Pacified +# - PsionicsDisabled +# - PsionicallyInsulated +# - type: Tag +# tags: +# - Oneirophage +# - type: MovementAlwaysTouching +# - type: PsionicInvisibleContacts +# whitelist: +# tags: +# - ArachneWeb -- type: entity - name: oneirophage - parent: MobGiantSpiderVampire - id: MobGiantSpiderVampireAngry - suffix: Angry - components: - - type: NpcFactionMember - factions: - - SimpleHostile - - type: InputMover - - type: MobMover - - type: HTN - rootTask: - task: SimpleHostileCompound - - type: GhostRole - makeSentient: true - name: ghost-role-information-giant-spider-vampire-name - description: ghost-role-information-giant-spider-vampire-description - rules: No antagonist restrictions. Just don't talk in emote; you have telepathic chat. - - type: GhostTakeoverAvailable +#- type: entity +# name: oneirophage +# parent: MobGiantSpiderVampire +# id: MobGiantSpiderVampireAngry +# suffix: Angry +# components: +# - type: NpcFactionMember +# factions: +# - SimpleHostile +# - type: InputMover +# - type: MobMover +# - type: HTN +# rootTask: +# task: SimpleHostileCompound +# - type: GhostRole +# makeSentient: true +# name: ghost-role-information-giant-spider-vampire-name +# description: ghost-role-information-giant-spider-vampire-description +# rules: No antagonist restrictions. Just don't talk in emote; you have telepathic chat. +# - type: GhostTakeoverAvailable - type: entity parent: SimpleMobBase @@ -298,9 +298,10 @@ - type: Puller needsHands: false - type: Vocal - # mice are gender neutral who cares - maleScream: /Audio/Animals/mouse_squeak.ogg - femaleScream: /Audio/Animals/mouse_squeak.ogg + sounds: + Male: Mouse + Female: Mouse + Unsexed: Mouse wilhelmProbability: 0.001 - type: Tag tags: @@ -335,11 +336,7 @@ proper: true gender: male - type: IntrinsicRadioReceiver - channels: - - Common - type: IntrinsicRadioTransmitter - channels: - - Common - type: ActiveRadio channels: - Common diff --git a/Resources/Prototypes/Nyanotrasen/Entities/Mobs/NPCs/xeno.yml b/Resources/Prototypes/Nyanotrasen/Entities/Mobs/NPCs/xeno.yml index 9dbe9f95f7..e12b14d490 100644 --- a/Resources/Prototypes/Nyanotrasen/Entities/Mobs/NPCs/xeno.yml +++ b/Resources/Prototypes/Nyanotrasen/Entities/Mobs/NPCs/xeno.yml @@ -6,6 +6,7 @@ id: MobPurpleSnakeGhost components: - type: GhostTakeoverAvailable + - type: GhostRole allowMovement: true allowSpeech: false makeSentient: true @@ -19,6 +20,7 @@ id: MobSmallPurpleSnakeGhost components: - type: GhostTakeoverAvailable + - type: GhostRole allowMovement: true allowSpeech: false makeSentient: true diff --git a/Resources/Prototypes/Nyanotrasen/Entities/Mobs/Species/Oni.yml b/Resources/Prototypes/Nyanotrasen/Entities/Mobs/Species/Oni.yml index c1655287fd..8a5663dce4 100644 --- a/Resources/Prototypes/Nyanotrasen/Entities/Mobs/Species/Oni.yml +++ b/Resources/Prototypes/Nyanotrasen/Entities/Mobs/Species/Oni.yml @@ -40,11 +40,13 @@ proto: oni - type: LanguageKnowledge speaks: - - GalacticCommon + - TauCetiBasic - Nekomimetic understands: - - GalacticCommon + - TauCetiBasic - Nekomimetic + - type: PotentiaModifier + potentiaMultiplier: 0.5 - type: entity save: false diff --git a/Resources/Prototypes/Nyanotrasen/Entities/Mobs/Species/felinid.yml b/Resources/Prototypes/Nyanotrasen/Entities/Mobs/Species/felinid.yml index 4f0938d927..44779fe950 100644 --- a/Resources/Prototypes/Nyanotrasen/Entities/Mobs/Species/felinid.yml +++ b/Resources/Prototypes/Nyanotrasen/Entities/Mobs/Species/felinid.yml @@ -67,12 +67,10 @@ - type: NoShoesSilentFootsteps - type: LanguageKnowledge speaks: - - GalacticCommon - - SolCommon + - TauCetiBasic - Nekomimetic understands: - - GalacticCommon - - SolCommon + - TauCetiBasic - Nekomimetic - type: Thieving ignoreStripHidden: true @@ -80,7 +78,7 @@ stripTimeReduction: 0 stripTimeMultiplier: 0.667 - type: StepTriggerImmune - whitelist: # WD EDIT + whitelist: types: - Shard - Landmine diff --git a/Resources/Prototypes/Nyanotrasen/Entities/Objects/Devices/CircuitBoards/production.yml b/Resources/Prototypes/Nyanotrasen/Entities/Objects/Devices/CircuitBoards/production.yml index 6e80ec7c4e..2ed4a594e3 100644 --- a/Resources/Prototypes/Nyanotrasen/Entities/Objects/Devices/CircuitBoards/production.yml +++ b/Resources/Prototypes/Nyanotrasen/Entities/Objects/Devices/CircuitBoards/production.yml @@ -12,9 +12,8 @@ MatterBin: 1 Manipulator: 1 materialRequirements: - Glass: 1 Cable: 1 - Diamond: 10 + PlasmaGlass: 5 tagRequirements: BorgArm: Amount: 3 diff --git a/Resources/Prototypes/Nyanotrasen/Entities/Objects/Devices/pda.yml b/Resources/Prototypes/Nyanotrasen/Entities/Objects/Devices/pda.yml index d898124b77..c85255f814 100644 --- a/Resources/Prototypes/Nyanotrasen/Entities/Objects/Devices/pda.yml +++ b/Resources/Prototypes/Nyanotrasen/Entities/Objects/Devices/pda.yml @@ -32,7 +32,7 @@ accentVColor: "#DFDFDF" - type: Icon state: pda-security - - type: CartridgeLoader # DeltaV - Crime Assist + SecWatch + - type: CartridgeLoader # Adds Crime Assist and SecWatch preinstalled: - CrewManifestCartridge - NotekeeperCartridge @@ -43,7 +43,7 @@ - type: entity parent: BasePDA id: MailCarrierPDA - name: courier PDA # DeltaV - Mail Carrier to Courier replacement + name: courier PDA description: Smells like unopened letters. components: - type: Sprite @@ -67,6 +67,12 @@ - type: Icon sprite: DeltaV/Objects/Devices/pda.rsi state: pda-mailcarrier + - type: CartridgeLoader # Adds a courier performance tracker + preinstalled: + - CrewManifestCartridge + - NotekeeperCartridge + - NewsReaderCartridge + - MailMetricsCartridge - type: entity parent: BasePDA diff --git a/Resources/Prototypes/Nyanotrasen/Entities/Objects/Specific/Chapel/amphorae.yml b/Resources/Prototypes/Nyanotrasen/Entities/Objects/Specific/Chapel/amphorae.yml index 10f5d631aa..2ef262fd53 100644 --- a/Resources/Prototypes/Nyanotrasen/Entities/Objects/Specific/Chapel/amphorae.yml +++ b/Resources/Prototypes/Nyanotrasen/Entities/Objects/Specific/Chapel/amphorae.yml @@ -17,7 +17,6 @@ jar: maxVol: 120 - type: Drink - isOpen: true solution: jar - type: Spillable solution: jar @@ -35,8 +34,8 @@ canChangeTransferAmount: true - type: UserInterface interfaces: - - key: enum.TransferAmountUiKey.Key - type: TransferAmountBoundUserInterface + enum.TransferAmountUiKey.Key: + type: TransferAmountBoundUserInterface - type: Damageable damageContainer: Inorganic - type: Destructible 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 c1ca2cd60b..bee514917a 100644 --- a/Resources/Prototypes/Nyanotrasen/Entities/Objects/Specific/Mail/base_mail.yml +++ b/Resources/Prototypes/Nyanotrasen/Entities/Objects/Specific/Mail/base_mail.yml @@ -5,11 +5,13 @@ name: mail-item-name-unaddressed components: - type: Item - size: Normal +# size: Normal # Frontier + storedRotation: -90 - type: Mail - type: AccessReader - type: Sprite - sprite: Nyanotrasen/Objects/Specific/Mail/mail.rsi + scale: 0.7, 0.7 # Frontier + sprite: Objects/Specific/Mail/mail.rsi layers: - state: icon map: ["enum.MailVisualLayers.Icon"] @@ -18,8 +20,8 @@ map: ["enum.MailVisualLayers.FragileStamp"] visible: false - map: ["enum.MailVisualLayers.JobStamp"] - scale: 0.5, 0.5 - offset: 0.275, 0.2 + scale: 0.8, 0.8 # Frontier 0.5<0.8 + offset: 0.225, 0.165 # Frontier (0.275, 0.2)<(0.225, 0.165) - state: locked map: ["enum.MailVisualLayers.Lock"] - state: priority @@ -77,7 +79,6 @@ - trigger: !type:DamageTrigger damage: 5 - triggersOnce: true behaviors: - !type:DoActsBehavior acts: [ "Breakage" ] @@ -92,6 +93,16 @@ damage: types: Blunt: 10 + - type: CargoSellBlacklist # Frontier + - type: Food # Frontier - Moth food + requiresSpecialDigestion: true + - type: SolutionContainerManager + solutions: + food: + maxVol: 1 + reagents: + - ReagentId: Nothing + Quantity: 1 # This empty parcel is allowed to exist and evade the tests for the admin # mailto command. diff --git a/Resources/Prototypes/Nyanotrasen/Entities/Objects/Specific/Mail/mail.yml b/Resources/Prototypes/Nyanotrasen/Entities/Objects/Specific/Mail/mail.yml deleted file mode 100644 index 7f1b26d9cb..0000000000 --- a/Resources/Prototypes/Nyanotrasen/Entities/Objects/Specific/Mail/mail.yml +++ /dev/null @@ -1,835 +0,0 @@ -- type: entity - noSpawn: true - parent: BaseMail - id: MailAlcohol - suffix: alcohol - components: - - type: Mail - contents: - - id: DrinkAbsintheBottleFull - orGroup: Drink - - id: DrinkBlueCuracaoBottleFull - orGroup: Drink - - id: DrinkGinBottleFull - orGroup: Drink - - id: DrinkMelonLiquorBottleFull - orGroup: Drink - - id: DrinkRumBottleFull - orGroup: Drink - - id: DrinkTequilaBottleFull - orGroup: Drink - - id: DrinkVermouthBottleFull - orGroup: Drink - - id: DrinkVodkaBottleFull - orGroup: Drink - - id: DrinkWineBottleFull - orGroup: Drink - - id: DrinkGlass - amount: 2 - -- type: entity - noSpawn: true - parent: BaseMail - id: MailSake - suffix: osake - components: - - type: Mail - contents: - - id: DrinkSakeCup - amount: 2 - - id: DrinkTokkuri - -- type: entity - noSpawn: true - parent: BaseMail - id: MailAMEGuide - suffix: ameguide - components: - - type: Mail - contents: - - id: PaperWrittenAMEScribbles - - id: Pen - -- type: entity - noSpawn: true - parent: BaseMail - id: MailBible - suffix: bible - components: - - type: Mail - contents: - - id: Bible - -- type: entity - noSpawn: true - parent: BaseMail - id: MailBikeHorn - suffix: bike horn - components: - - type: Mail - contents: - - id: BikeHorn - -- type: entity - noSpawn: true - parent: BaseMail - id: MailBlockGameDIY - suffix: blockgamediy - components: - - type: Mail - contents: - - id: BlockGameArcadeComputerCircuitboard - -#- type: entity -# noSpawn: true -# parent: BaseMail -# id: MailBooks -# suffix: books -# components: -# - type: Mail -# contents: -# # Don't use BookDemonomiconRandom. -# # It uses a RandomSpawner which just spawns the book outside of the mail. -# - id: BookDemonomicon1 -# orGroup: Demonomicon -# - id: BookDemonomicon2 -# orGroup: Demonomicon -# - id: BookDemonomicon3 -# orGroup: Demonomicon -# # There's no way to signal "spawn nothing" with an orGroup, -# # so have this blank book instead. Write your own demon summoning tome! -# - id: BookRandom -# prob: 3 -# orGroup: Demonomicon -# - id: BookChemistryInsane -# prob: 0.10 -# - id: BookBotanicalTextbook -# prob: 0.5 -# - id: BookFishing -# prob: 0.10 -# - id: BookDetective -# prob: 0.10 -# - id: BookGnominomicon -# prob: 0.2 -# - id: BookFishops # DeltaV - fishops book -# prob: 0.2 -# - id: BookSalvageEpistemics1 -# prob: 0.025 - -- type: entity - noSpawn: true - parent: BaseMail - id: MailCake - suffix: cake - components: - - type: Mail - isFragile: true - isPriority: true - contents: - - id: FoodCakeBlueberry - orGroup: Cake - - id: FoodCakeCarrot - orGroup: Cake - - id: FoodCakeCheese - orGroup: Cake - - id: FoodCakeChocolate - orGroup: Cake - - id: FoodCakeChristmas - orGroup: Cake - - id: FoodCakeClown - orGroup: Cake - - id: FoodCakeLemon - orGroup: Cake - - id: FoodCakeLime - orGroup: Cake - - id: FoodCakeOrange - orGroup: Cake - - id: FoodCakePumpkin - orGroup: Cake - - id: FoodCakeVanilla - orGroup: Cake - - id: FoodMothMothmallow - orGroup: Cake - prob: 0.5 - - id: KnifePlastic - - id: ForkPlastic - amount: 2 - -- type: entity - noSpawn: true - parent: BaseMail - id: MailCallForHelp - suffix: call-for-help - components: - - type: Mail - contents: - - id: PaperMailCallForHelp1 - orGroup: Paper - - id: PaperMailCallForHelp2 - orGroup: Paper - - id: PaperMailCallForHelp3 - orGroup: Paper - - id: PaperMailCallForHelp4 - orGroup: Paper - - id: PaperMailCallForHelp5 - orGroup: Paper - - id: FlashlightLantern - orGroup: Gift - - id: Crowbar - orGroup: Gift - prob: 0.5 - - id: CrowbarRed - orGroup: Gift - prob: 0.5 - - id: ClothingMaskGas - orGroup: Gift - - id: WeaponFlareGun - orGroup: Gift - prob: 0.25 - -- type: entity - noSpawn: true - parent: BaseMail - id: MailCheese - suffix: cheese - components: - - type: Mail - isFragile: true - isPriority: true - contents: - - id: FoodCheese - - id: KnifePlastic - -- type: entity - noSpawn: true - parent: BaseMail - id: MailChocolate - suffix: chocolate - components: - - type: Mail - contents: - # TODO make some actual chocolate candy items. - - id: FoodSnackChocolate - amount: 3 - -- type: entity - noSpawn: true - parent: BaseMail - id: MailCigarettes - suffix: cigs - components: - - type: Mail - contents: - - id: CigPackRed - - id: CheapLighter - -- type: entity - noSpawn: true - parent: BaseMail - id: MailCigars - suffix: Cigars - components: - - type: Mail - contents: - - id: CigarCase - - id: Lighter - -- type: entity - noSpawn: true - parent: BaseMail - id: MailCookies - suffix: cookies - components: - - type: Mail - # What, you want to eat stale cookies? - isPriority: true - contents: - - id: FoodBakedCookie - - id: FoodBakedCookieOatmeal - - id: FoodBakedCookieRaisin - - id: FoodBakedCookieSugar - -- type: entity - noSpawn: true - parent: BaseMail - id: MailCosplayArc - suffix: cosplay-arc - components: - - type: Mail - openSound: /Audio/Nyanotrasen/Voice/Felinid/cat_wilhelm.ogg - contents: - - id: ClothingCostumeArcDress - -- type: entity - noSpawn: true - parent: BaseMail - id: MailCosplayGeisha - suffix: cosplay-geisha - components: - - type: Mail - contents: - - id: UniformGeisha - - id: DrinkTeapot - - id: DrinkTeacup - amount: 3 - -- type: entity - noSpawn: true - parent: BaseMail - id: MailCosplayMaid - suffix: cosplay-maid - components: - - type: Mail - contents: - - id: UniformMaid - - id: SprayBottleSpaceCleaner - -- type: entity - noSpawn: true - parent: BaseMail - id: MailCosplayNurse - suffix: cosplay-nurse - components: - - type: Mail - contents: - - id: ClothingUniformJumpskirtNurse - - id: Syringe - -- type: entity - noSpawn: true - parent: BaseMail - id: MailCosplaySchoolgirl - suffix: cosplay-schoolgirl - components: - - type: Mail - contents: - - id: UniformSchoolgirlBlack - orGroup: Color - - id: UniformSchoolgirlBlue - orGroup: Color - - id: UniformSchoolgirlCyan - orGroup: Color - - id: UniformSchoolgirlGreen - orGroup: Color - - id: UniformSchoolgirlOrange - orGroup: Color - - id: UniformSchoolgirlPink - orGroup: Color - - id: UniformSchoolgirlPurple - orGroup: Color - - id: UniformSchoolgirlRed - orGroup: Color - -- type: entity - noSpawn: true - parent: BaseMail - id: MailCosplayWizard - suffix: cosplay-wizard - components: - - type: Mail - contents: - - id: ClothingOuterWizardFake - - id: ClothingHeadHatWizardFake - - id: ClothingShoesWizardFake - -- type: entity - noSpawn: true - parent: BaseMail - id: MailCrayon - suffix: Crayon - components: - - type: Mail - contents: - - id: CrayonBox - -- type: entity - noSpawn: true - parent: BaseMail - id: MailFigurine - suffix: figurine - components: - - type: Mail - isFragile: true - contents: - - id: ToyAi - orGroup: Toy - - id: ToyNuke - orGroup: Toy - - id: ToyFigurinePassenger - orGroup: Toy - - id: ToyGriffin - orGroup: Toy - - id: ToyHonk - orGroup: Toy - - id: ToyIan - orGroup: Toy - - id: ToyMarauder - orGroup: Toy - - id: ToyMauler - orGroup: Toy - - id: ToyGygax - orGroup: Toy - - id: ToyOdysseus - orGroup: Toy - - id: ToyOwlman - orGroup: Toy - - id: ToyDeathRipley - orGroup: Toy - - id: ToyPhazon - orGroup: Toy - - id: ToyFireRipley - orGroup: Toy - - id: ToyReticence - orGroup: Toy - - id: ToyRipley - orGroup: Toy - - id: ToySeraph - orGroup: Toy - - id: ToyDurand - orGroup: Toy - -- type: entity - noSpawn: true - parent: BaseMail - id: MailFishingCap - suffix: fishingcap - components: - - type: Mail - contents: - - id: ClothingHeadFishCap - -- type: entity - noSpawn: true - parent: BaseMail - id: MailFlashlight - suffix: Flashlight - components: - - type: Mail - contents: - - id: FlashlightLantern - -#- type: entity -# noSpawn: true -# parent: BaseMail -# id: MailFlowers -# suffix: flowers -# components: -# - type: Mail -# contents: -# # TODO actual flowers -# - id: ClothingHeadHatFlowerCrown -# orGroup: Flower -# - id: ClothingHeadHatHairflower -# orGroup: Flower - -- type: entity - noSpawn: true - parent: BaseMail - id: MailHighlander - suffix: highlander - components: - - type: Mail - contents: - - id: ClothingUniformJumpskirtColorRed - - id: ClothingHeadHatBeret - - id: DrinkRedMeadGlass - - id: Claymore - -- type: entity - noSpawn: true - parent: BaseMail - id: MailHighlanderDulled - suffix: highlander, dulled - components: - - type: Mail - contents: - - id: ClothingUniformJumpskirtColorRed - - id: ClothingHeadHatBeret - - id: DrinkGlass - - id: ClaymoreDulled - -- type: entity - noSpawn: true - parent: BaseMail - id: MailHoneyBuns - suffix: honeybuns - components: - - type: Mail - contents: - - id: FoodBakedBunHoney - amount: 2 - -- type: entity - noSpawn: true - parent: BaseMail - id: MailJunkFood - suffix: junk food - components: - - type: Mail - contents: - - id: FoodBoxDonkpocket - - id: FoodSnackChips - -- type: entity - noSpawn: true - parent: BaseMail - id: MailKatana - suffix: Katana - components: - - type: Mail - contents: - - id: Katana - prob: 0.1 - orGroup: Katana - - id: KatanaDulled - prob: 0.9 - orGroup: Katana - -- type: entity - noSpawn: true - parent: BaseMail - id: MailKnife - suffix: Knife - components: - - type: Mail - contents: - - id: CombatKnife - -- type: entity - noSpawn: true - parent: BaseMail - id: MailMoney - suffix: money - components: - - type: Mail - contents: - - id: SpaceCash100 - orGroup: Cash - prob: 0.3 - - id: SpaceCash500 - orGroup: Cash - prob: 0.6 - - id: SpaceCash1000 - orGroup: Cash - prob: 0.3 - -- type: entity - noSpawn: true - parent: BaseMail - id: MailMuffins - suffix: muffins - components: - - type: Mail - isPriority: true - contents: - - id: FoodBakedMuffinBerry - - id: FoodBakedMuffinCherry - - id: FoodBakedMuffinBluecherry - -- type: entity - noSpawn: true - parent: BaseMail - id: MailMoffins - suffix: moffins - components: - - type: Mail - isPriority: true - contents: - - id: FoodMothMoffin - amount: 3 - -- type: entity - noSpawn: true - parent: BaseMail - id: MailNoir - suffix: noir - components: - - type: Mail - contents: - - id: ClothingUniformJumpsuitDetectiveGrey - - id: ClothingUniformJumpskirtDetectiveGrey - - id: ClothingHeadHatBowlerHat - - id: ClothingOuterCoatGentle - -- type: entity - noSpawn: true - parent: BaseMail - id: MailPAI - suffix: PAI - components: - - type: Mail - contents: - - id: PersonalAI - -- type: entity - noSpawn: true - parent: BaseMail - id: MailPlushie - suffix: plushie - components: - - type: Mail - contents: - - id: PlushieMothRandom - orGroup: Prize - - id: PlushieMothMusician - orGroup: Prize - - id: PlushieMothBartender - orGroup: Prize - - id: PlushieBee - orGroup: Prize - - id: PlushieHampter - orGroup: Prize - - id: PlushieRouny - orGroup: Prize - - id: PlushieLamp - orGroup: Prize - - id: PlushieArachind - orGroup: Prize - - id: PlushieLizard - orGroup: Prize - - id: PlushieLizardMirrored - orGroup: Prize - - id: PlushieSpaceLizard - orGroup: Prize - - id: PlushieDiona - orGroup: Prize - - id: PlushieSharkBlue - orGroup: Prize - - id: PlushieSharkPink - orGroup: Prize - - id: PlushieSharkGrey - orGroup: Prize - - id: PlushieCarp - orGroup: Prize - - id: PlushieMagicarp - orGroup: Prize - - id: PlushieHolocarp - orGroup: Prize - - id: PlushieSlime - orGroup: Prize - - id: PlushieSnake - orGroup: Prize - - id: PlushieVox - orGroup: Prize - - id: PlushieAtmosian - orGroup: Prize - - id: PlushiePenguin - orGroup: Prize - - id: PlushieHuman - orGroup: Prize - - id: PlushieArachne - orGroup: Prize - - id: PlushieGnome - orGroup: Prize - - id: PlushieLoveable - orGroup: Prize - - id: PlushieDeer - orGroup: Prize - - id: PlushieIpc - orGroup: Prize - - id: PlushieGrey - orGroup: Prize - - id: PlushieRedFox - orGroup: Prize - - id: PlushiePurpleFox - orGroup: Prize - - id: PlushiePinkFox - orGroup: Prize - - id: PlushieOrangeFox - orGroup: Prize - - id: PlushieMarbleFox - orGroup: Prize - - id: PlushieCrimsonFox - orGroup: Prize - - id: PlushieCoffeeFox - orGroup: Prize - - id: PlushieBlueFox - orGroup: Prize - - id: PlushieBlackFox - orGroup: Prize - - id: PlushieVulp - orGroup: Prize - - id: PlushieCorgi - orGroup: Prize - - id: PlushieGirlyCorgi - orGroup: Prize - - id: PlushieRobotCorgi - orGroup: Prize - - id: PlushieCatBlack - orGroup: Prize - - id: PlushieCatGrey - orGroup: Prize - - id: PlushieCatOrange - orGroup: Prize - - id: PlushieCatSiames - orGroup: Prize - - id: PlushieCatTabby - orGroup: Prize - - id: PlushieCatTuxedo - orGroup: Prize - - id: PlushieCatWhite - orGroup: Prize - - id: PlushieGhost - orGroup: Prize - - id: PlushieRGBee - orGroup: Prize - - id: PlushieRatvar - orGroup: Prize - - id: PlushieNar - orGroup: Prize - - id: PlushieRainbowCarp - orGroup: Prize - - id: PlushieXeno - orGroup: Prize - - id: PlushieJester - orGroup: Prize - - id: PlushieSlips - orGroup: Prize - - id: PlushieAbductor - orGroup: Prize - - id: PlushieTrystan - orGroup: Prize - - id: PlushieAbductorAgent - orGroup: Prize - - id: PlushieNuke - orGroup: Prize - -- type: entity - noSpawn: true - parent: BaseMail - id: MailRestraints - suffix: restraints - components: - - type: Mail - contents: - - id: Handcuffs - - id: ClothingMaskMuzzle - - id: ClothingEyesBlindfold - -- type: entity - noSpawn: true - parent: BaseMail - id: MailSignallerKit - suffix: signallerkit - components: - - type: Mail - contents: - - id: Multitool - - id: RemoteSignaller - -# - type: entity -# noSpawn: true -# parent: BaseMail -# id: MailSixPack -# suffix: sixpack -# components: -# - type: Mail -# contents: -# - id: DrinkCanPack - -- type: entity - noSpawn: true - parent: BaseMail - id: MailSkub - suffix: skub - components: - - type: Mail - contents: - - id: Skub - -- type: entity - noSpawn: true - parent: BaseMail - id: MailSoda - suffix: soda - components: - - type: Mail - contents: - - id: DrinkColaBottleFull - orGroup: Soda - - id: DrinkSpaceMountainWindBottleFull - orGroup: Soda - - id: DrinkSpaceUpBottleFull - orGroup: Soda - -- type: entity - noSpawn: true - parent: BaseMail - id: MailSpaceVillainDIY - suffix: spacevilliandiy - components: - - type: Mail - contents: - - id: SpaceVillainArcadeComputerCircuitboard - -- type: entity - noSpawn: true - parent: BaseMail - id: MailSunglasses - suffix: Sunglasses - components: - - type: Mail - contents: - - id: ClothingEyesGlassesSunglasses - -- type: entity - noSpawn: true - parent: BaseMail - id: MailVagueThreat - suffix: vague-threat - components: - - type: Mail - contents: - - id: PaperMailVagueThreat1 - orGroup: Paper - - id: PaperMailVagueThreat2 - orGroup: Paper - - id: PaperMailVagueThreat3 - orGroup: Paper - - id: PaperMailVagueThreat4 - orGroup: Paper - - id: PaperMailVagueThreat5 - orGroup: Paper - - id: PaperMailVagueThreat6 - orGroup: Paper - - id: PaperMailVagueThreat7 - orGroup: Paper - - id: PaperMailVagueThreat8 - orGroup: Paper - - id: PaperMailVagueThreat9 - orGroup: Paper - - id: PaperMailVagueThreat10 - orGroup: Paper - - id: PaperMailVagueThreat11 - orGroup: Paper - - id: PaperMailVagueThreat12 - orGroup: Paper - - id: KitchenKnife - orGroup: ThreateningObject - - id: ButchCleaver - orGroup: ThreateningObject - - id: CombatKnife - orGroup: ThreateningObject - - id: SurvivalKnife - orGroup: ThreateningObject - - id: SoapHomemade - orGroup: ThreateningObject - - id: FoodMeat - orGroup: ThreateningObject - - id: OrganHumanHeart - orGroup: ThreateningObject - -- type: entity - noSpawn: true - parent: BaseMail - id: MailWinterCoat - suffix: wintercoat - components: - - type: Mail - contents: - - id: ClothingOuterWinterCoat - orGroup: Coat - - id: ClothingOuterWinterCoatLong - orGroup: Coat - - id: ClothingOuterWinterCoatPlaid - orGroup: Coat diff --git a/Resources/Prototypes/Nyanotrasen/Entities/Objects/Specific/Mail/mail_civilian.yml b/Resources/Prototypes/Nyanotrasen/Entities/Objects/Specific/Mail/mail_civilian.yml deleted file mode 100644 index a41fac14ff..0000000000 --- a/Resources/Prototypes/Nyanotrasen/Entities/Objects/Specific/Mail/mail_civilian.yml +++ /dev/null @@ -1,195 +0,0 @@ -- type: entity - noSpawn: true - parent: BaseMail - id: MailBotanistChemicalBottles - suffix: botanistchemicals - components: - - type: Mail - contents: - - id: RobustHarvestChemistryBottle - orGroup: Chemical - prob: 0.6 - - id: WeedSpray - orGroup: Chemical - prob: 0.4 - -- type: entity - noSpawn: true - parent: BaseMail - id: MailBotanistMutagen - suffix: mutagen - components: - - type: Mail - isFragile: true - isPriority: true - contents: - - id: UnstableMutagenChemistryBottle - -- type: entity - noSpawn: true - parent: BaseMail - id: MailBotanistSeeds - suffix: seeds - components: - - type: Mail - contents: - - id: AloeSeeds - orGroup: Seeds - - id: AmbrosiaVulgarisSeeds - orGroup: Seeds - - id: AppleSeeds - orGroup: Seeds - - id: BananaSeeds - orGroup: Seeds - - id: CarrotSeeds - orGroup: Seeds - - id: ChanterelleSeeds - orGroup: Seeds - - id: ChiliSeeds - orGroup: Seeds - - id: CornSeeds - orGroup: Seeds - - id: EggplantSeeds - orGroup: Seeds - - id: GalaxythistleSeeds - orGroup: Seeds - - id: LemonSeeds - orGroup: Seeds - - id: LingzhiSeeds - orGroup: Seeds - - id: OatSeeds - orGroup: Seeds - - id: OnionSeeds - orGroup: Seeds - - id: PoppySeeds - orGroup: Seeds - - id: PotatoSeeds - orGroup: Seeds - - id: SugarcaneSeeds - orGroup: Seeds - - id: TomatoSeeds - orGroup: Seeds - - id: TowercapSeeds - orGroup: Seeds - - id: WheatSeeds - orGroup: Seeds - -- type: entity - noSpawn: true - parent: BaseMail - id: MailClownGildedBikeHorn - suffix: honk - components: - - type: Mail - isFragile: true - contents: - - id: BikeHornInstrument - -- type: entity - noSpawn: true - parent: BaseMail - id: MailClownHonkSupplement - suffix: honk - components: - - type: Mail - isFragile: true - contents: - - id: BikeHorn - - id: FoodPieBananaCream - - id: FoodBanana - -- type: entity - noSpawn: true - parent: BaseMail - id: MailHoPBureaucracy - suffix: hoppaper - components: - - type: Mail - contents: - - id: Paper - maxAmount: 3 - -- type: entity - noSpawn: true - parent: BaseMail - id: MailHoPSupplement - suffix: hopsupplement - components: - - type: Mail - contents: - - id: ClearPDA - - id: ClothingHeadsetGrey - - id: Paper - -- type: entity - noSpawn: true - parent: BaseMail - id: MailMimeArtsCrafts - suffix: artscrafts - components: - - type: Mail - contents: - - id: CrayonBox - - id: Paper - maxAmount: 3 - -- type: entity - noSpawn: true - parent: BaseMail - id: MailMimeBlankBook - suffix: blankbook - components: - - type: Mail - contents: - - id: BookRandom - -- type: entity - noSpawn: true - parent: BaseMail - id: MailMimeBottleOfNothing - suffix: bottleofnothing - components: - - type: Mail - contents: - - id: DrinkBottleOfNothingFull - -- type: entity - noSpawn: true - parent: BaseMail - id: MailMusicianInstrumentSmall - suffix: instrument-small - components: - - type: Mail - isFragile: true - contents: - - id: FluteInstrument - orGroup: Instrument - - id: HarmonicaInstrument - orGroup: Instrument - - id: OcarinaInstrument - orGroup: Instrument - - id: PanFluteInstrument - orGroup: Instrument - - id: RecorderInstrument - orGroup: Instrument - -- type: entity - noSpawn: true - parent: BaseMail - id: MailPassengerMoney - suffix: passengermoney - components: - - type: Mail - contents: - - id: SpaceCash100 - orGroup: Cash - prob: 0.1 - maxAmount: 10 - - id: SpaceCash500 - orGroup: Cash - prob: 0.3 - maxAmount: 5 - - id: SpaceCash1000 - orGroup: Cash - prob: 0.6 - maxAmount: 3 diff --git a/Resources/Prototypes/Nyanotrasen/Entities/Objects/Specific/Mail/mail_command.yml b/Resources/Prototypes/Nyanotrasen/Entities/Objects/Specific/Mail/mail_command.yml deleted file mode 100644 index 7e2a935f90..0000000000 --- a/Resources/Prototypes/Nyanotrasen/Entities/Objects/Specific/Mail/mail_command.yml +++ /dev/null @@ -1,9 +0,0 @@ -- type: entity - noSpawn: true - parent: BaseMail - id: MailCommandPinpointerNuclear - suffix: pinpointernuclear - components: - - type: Mail - contents: - - id: PinpointerNuclear diff --git a/Resources/Prototypes/Nyanotrasen/Entities/Objects/Specific/Mail/mail_engineering.yml b/Resources/Prototypes/Nyanotrasen/Entities/Objects/Specific/Mail/mail_engineering.yml deleted file mode 100644 index 461d9bf136..0000000000 --- a/Resources/Prototypes/Nyanotrasen/Entities/Objects/Specific/Mail/mail_engineering.yml +++ /dev/null @@ -1,45 +0,0 @@ -- type: entity - noSpawn: true - parent: BaseMail - id: MailEngineeringCables - suffix: cables - components: - - type: Mail - contents: - - id: CableHVStack - orGroup: Cables - - id: CableMVStack - orGroup: Cables - - id: CableApcStack - orGroup: Cables - -- type: entity - noSpawn: true - parent: BaseMail - id: MailEngineeringKudzuDeterrent - suffix: antikudzu - components: - - type: Mail - contents: - - id: PlantBGoneSpray - -- type: entity - noSpawn: true - parent: BaseMail - id: MailEngineeringSheetGlass - suffix: sheetglass - components: - - type: Mail - contents: - - id: SheetGlass - -- type: entity - noSpawn: true - parent: BaseMail - id: MailEngineeringWelderReplacement - suffix: welder - components: - - type: Mail - contents: - - id: Welder - diff --git a/Resources/Prototypes/Nyanotrasen/Entities/Objects/Specific/Mail/mail_epistemology.yml b/Resources/Prototypes/Nyanotrasen/Entities/Objects/Specific/Mail/mail_epistemology.yml deleted file mode 100644 index 38526966b8..0000000000 --- a/Resources/Prototypes/Nyanotrasen/Entities/Objects/Specific/Mail/mail_epistemology.yml +++ /dev/null @@ -1,58 +0,0 @@ -- type: entity - noSpawn: true - parent: BaseMail - id: MailEpistemologyBluespace - suffix: bluespace - components: - - type: Mail - contents: - - id: MaterialBluespace1 - -- type: entity - noSpawn: true - parent: BaseMail - id: MailEpistemologyIngotGold - suffix: ingotgold - components: - - type: Mail - contents: - - id: IngotGold1 - maxAmount: 3 - -- type: entity - noSpawn: true - parent: BaseMail - id: MailEpistemologyResearchDisk - suffix: researchdisk - components: - - type: Mail - contents: - - id: ResearchDisk - orGroup: Disk - prob: 0.6 - - id: ResearchDisk5000 - orGroup: Disk - prob: 0.3 - - id: ResearchDisk10000 - orGroup: Disk - prob: 0.1 - -- type: entity - noSpawn: true - parent: BaseMail - id: MailEpistemologyTinfoilHat - suffix: tinfoilhat - components: - - type: Mail - contents: - - id: ClothingHeadTinfoil - -- type: entity - noSpawn: true - parent: BaseMail - id: MailDetectiveForensicSupplement # Deltav - Detective is in charge of investigating crimes. - suffix: detectivesupplement # Deltav - Detective is in charge of investigating crimes. - components: - - type: Mail - contents: - - id: BoxForensicPad diff --git a/Resources/Prototypes/Nyanotrasen/Entities/Objects/Specific/Mail/mail_security.yml b/Resources/Prototypes/Nyanotrasen/Entities/Objects/Specific/Mail/mail_security.yml deleted file mode 100644 index b47d5af56e..0000000000 --- a/Resources/Prototypes/Nyanotrasen/Entities/Objects/Specific/Mail/mail_security.yml +++ /dev/null @@ -1,56 +0,0 @@ -- type: entity - noSpawn: true - parent: BaseMail - id: MailSecurityDonuts - suffix: donuts - components: - - type: Mail - contents: - - id: FoodBoxDonut - -- type: entity - noSpawn: true - parent: BaseMail - id: MailSecurityFlashlight - suffix: seclite - components: - - type: Mail - contents: - - id: FlashlightSeclite - -- type: entity - noSpawn: true - parent: BaseMail - id: MailSecurityNonlethalsKit - suffix: nonlethalskit - components: - - type: Mail - contents: - - id: Flash - maxAmount: 2 - - id: GrenadeFlashBang - maxAmount: 2 - - id: Handcuffs - maxAmount: 2 - -#- type: entity -# noSpawn: true -# parent: BaseMail -# id: MailSecuritySpaceLaw -# suffix: spacelaw -# components: -# - type: Mail -# contents: -# - id: HyperlinkBookSpaceLaw -# Will we ever readd hyperlinks books? Who knows! - -- type: entity - noSpawn: true - parent: BaseMail - id: MailWardenCrowdControl - suffix: crowdcontrol - components: - - type: Mail - contents: - - id: BoxBeanbag - diff --git a/Resources/Prototypes/Nyanotrasen/Entities/Objects/Specific/Mail/mail_specific_items.yml b/Resources/Prototypes/Nyanotrasen/Entities/Objects/Specific/Mail/mail_specific_items.yml deleted file mode 100644 index b4d2b54779..0000000000 --- a/Resources/Prototypes/Nyanotrasen/Entities/Objects/Specific/Mail/mail_specific_items.yml +++ /dev/null @@ -1,169 +0,0 @@ -- type: entity - id: PaperMailCallForHelp1 - noSpawn: true - suffix: "call for help 1" - parent: Paper - components: - - type: Paper - content: | - Help! They're coming! Take this! - -- type: entity - id: PaperMailCallForHelp2 - noSpawn: true - suffix: "call for help 2" - parent: Paper - components: - - type: Paper - content: | - Check disposals! - -- type: entity - id: PaperMailCallForHelp3 - noSpawn: true - suffix: "call for help 3" - parent: Paper - components: - - type: Paper - content: | - GET ME OUT! - -- type: entity - id: PaperMailCallForHelp4 - noSpawn: true - suffix: "call for help 4" - parent: Paper - components: - - type: Paper - content: | - Check maintenance! - -- type: entity - id: PaperMailCallForHelp5 - noSpawn: true - suffix: "call for help 5" - parent: Paper - components: - - type: Paper - content: | - Save me, please! - -- type: entity - id: PaperMailVagueThreat1 - noSpawn: true - suffix: "vague mail threat 1" - parent: Paper - components: - - type: Paper - content: | - I know what you did. You don't know what I'm going to do to you. - -- type: entity - id: PaperMailVagueThreat2 - noSpawn: true - suffix: "vague mail threat 2" - parent: Paper - components: - - type: Paper - content: | - I'm coming for you. - -- type: entity - id: PaperMailVagueThreat3 - noSpawn: true - suffix: "vague mail threat 3" - parent: Paper - components: - - type: Paper - content: | - You're next. - -- type: entity - id: PaperMailVagueThreat4 - noSpawn: true - suffix: "vague mail threat 4" - parent: Paper - components: - - type: Paper - content: | - We see you. - -- type: entity - id: PaperMailVagueThreat5 - noSpawn: true - suffix: "vague mail threat 5" - parent: Paper - components: - - type: Paper - content: | - I hope your affairs are in order. - -- type: entity - id: PaperMailVagueThreat6 - noSpawn: true - suffix: "vague mail threat 6" - parent: Paper - components: - - type: Paper - content: | - It's only a matter of time. Enjoy it while it lasts. - -- type: entity - id: PaperMailVagueThreat7 - noSpawn: true - suffix: "vague mail threat 7" - parent: Paper - components: - - type: Paper - content: | - Who should we mail your pieces to? - -- type: entity - id: PaperMailVagueThreat8 - noSpawn: true - suffix: "vague mail threat 8" - parent: Paper - components: - - type: Paper - content: | - Do you prefer to die slowly or quickly? Just kidding. We don't care what you think. - -- type: entity - id: PaperMailVagueThreat9 - noSpawn: true - suffix: "vague mail threat 9" - parent: Paper - components: - - type: Paper - content: | - I think your head would look nice on my mantel. - -- type: entity - id: PaperMailVagueThreat10 - noSpawn: true - suffix: "vague mail threat 10" - parent: Paper - components: - - type: Paper - content: | - You should have paid up. It's too late now. - -- type: entity - id: PaperMailVagueThreat11 - noSpawn: true - suffix: "vague mail threat 11" - parent: Paper - components: - - type: Paper - content: | - Your family will miss you, but don't worry. We'll take care of them too. - -- type: entity - id: PaperMailVagueThreat12 - noSpawn: true - suffix: "vague mail threat 12" - parent: Paper - components: - - type: Paper - content: | - I have a bet that you're going to die today. I'm not afraid of cheating. diff --git a/Resources/Prototypes/Nyanotrasen/Entities/Objects/Specific/Research/crystals.yml b/Resources/Prototypes/Nyanotrasen/Entities/Objects/Specific/Research/crystals.yml deleted file mode 100644 index b4d3ca1abf..0000000000 --- a/Resources/Prototypes/Nyanotrasen/Entities/Objects/Specific/Research/crystals.yml +++ /dev/null @@ -1,36 +0,0 @@ -- type: entity - parent: BaseItem - id: CrystalNormality - name: normality crystal - description: It looks... normal. Placeholder sprite. - components: - - type: Sprite - sprite: Nyanotrasen/Objects/Materials/materials.rsi - state: bluespace - color: gray - - type: Tag - tags: - - NormalityCrystal - -# - type: entity -# parent: BaseItem -# id: CrystalSoul -# name: soul crystal -# description: Contains a soul. Placeholder sprite. -# components: -# - type: Sprite -# sprite: Nyanotrasen/Objects/Materials/materials.rsi -# state: bluespace -# color: purple -# - type: Speech -# - type: Psionic -# - type: SoulCrystal -# - type: SolutionContainerManager -# solutions: -# ectoplasm: -# maxvol: 50 -# reagents: -# - ReagentId: Ectoplasm -# Quantity: 50 -# - type: Extractable -# grindableSolutionName: ectoplasm 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 293eba3aca..42826c94cb 100644 --- a/Resources/Prototypes/Nyanotrasen/Entities/Objects/Weapons/Guns/Projectiles/shotgun.yml +++ b/Resources/Prototypes/Nyanotrasen/Entities/Objects/Weapons/Guns/Projectiles/shotgun.yml @@ -24,6 +24,3 @@ blockSlots: NONE #tranquillizer darts shouldn't be blocked by a mask - type: InjectableSolution solution: ammo - - type: GuideHelp - guides: - - Psionics diff --git a/Resources/Prototypes/Nyanotrasen/Entities/Stations/mail.yml b/Resources/Prototypes/Nyanotrasen/Entities/Stations/mail.yml index ceb87bbaa1..b85cfef87a 100644 --- a/Resources/Prototypes/Nyanotrasen/Entities/Stations/mail.yml +++ b/Resources/Prototypes/Nyanotrasen/Entities/Stations/mail.yml @@ -3,3 +3,4 @@ abstract: true components: - type: StationMailRouter + - type: StationLogisticStats # DeltaV - Tracks statistics related to mail and income diff --git a/Resources/Prototypes/Nyanotrasen/Entities/Structures/Doors/Airlocks/access.yml b/Resources/Prototypes/Nyanotrasen/Entities/Structures/Doors/Airlocks/access.yml index 19226d067f..d9e4645446 100644 --- a/Resources/Prototypes/Nyanotrasen/Entities/Structures/Doors/Airlocks/access.yml +++ b/Resources/Prototypes/Nyanotrasen/Entities/Structures/Doors/Airlocks/access.yml @@ -3,13 +3,15 @@ id: AirlockMailLocked suffix: Mail, Locked components: - - type: AccessReader - access: [["Mail"]] + - type: ContainerFill + containers: + board: [ DoorElectronicsMail ] - type: entity parent: AirlockCargoGlass id: AirlockMailGlassLocked suffix: Mail, Locked components: - - type: AccessReader - access: [["Mail"]] + - type: ContainerFill + containers: + board: [ DoorElectronicsMail ] diff --git a/Resources/Prototypes/Nyanotrasen/Entities/Structures/Machines/deep_fryer.yml b/Resources/Prototypes/Nyanotrasen/Entities/Structures/Machines/deep_fryer.yml index fa3e0537db..9749a4295d 100644 --- a/Resources/Prototypes/Nyanotrasen/Entities/Structures/Machines/deep_fryer.yml +++ b/Resources/Prototypes/Nyanotrasen/Entities/Structures/Machines/deep_fryer.yml @@ -124,15 +124,14 @@ - type: RefillableSolution solution: vat_oil - type: Drink - isOpen: true solution: vat_oil - type: Appearance - type: ActivatableUI key: enum.DeepFryerUiKey.Key - type: UserInterface interfaces: - - key: enum.DeepFryerUiKey.Key - type: DeepFryerBoundUserInterface + enum.DeepFryerUiKey.Key: + type: DeepFryerBoundUserInterface - type: Destructible thresholds: - trigger: diff --git a/Resources/Prototypes/Nyanotrasen/Entities/Structures/Machines/laundry.yml b/Resources/Prototypes/Nyanotrasen/Entities/Structures/Machines/laundry.yml index ce982d41c2..47518c78f6 100644 --- a/Resources/Prototypes/Nyanotrasen/Entities/Structures/Machines/laundry.yml +++ b/Resources/Prototypes/Nyanotrasen/Entities/Structures/Machines/laundry.yml @@ -84,8 +84,8 @@ ents: [] - type: UserInterface interfaces: - - key: enum.StorageUiKey.Key - type: StorageBoundUserInterface + enum.StorageUiKey.Key: + type: StorageBoundUserInterface - type: UseDelay delay: 0.5 - type: Repairable diff --git a/Resources/Prototypes/Nyanotrasen/Entities/Structures/Machines/reverseEngineering.yml b/Resources/Prototypes/Nyanotrasen/Entities/Structures/Machines/reverseEngineering.yml index c28c395261..3c3a9908c6 100644 --- a/Resources/Prototypes/Nyanotrasen/Entities/Structures/Machines/reverseEngineering.yml +++ b/Resources/Prototypes/Nyanotrasen/Entities/Structures/Machines/reverseEngineering.yml @@ -19,8 +19,8 @@ key: enum.ReverseEngineeringMachineUiKey.Key - type: UserInterface interfaces: - - key: enum.ReverseEngineeringMachineUiKey.Key - type: ReverseEngineeringMachineBoundUserInterface + enum.ReverseEngineeringMachineUiKey.Key: + type: ReverseEngineeringMachineBoundUserInterface - type: ActivatableUIRequiresPower - type: ItemSlots slots: diff --git a/Resources/Prototypes/Nyanotrasen/Entities/Structures/Research/glimmer_prober.yml b/Resources/Prototypes/Nyanotrasen/Entities/Structures/Research/glimmer_prober.yml index abdc8d6eeb..0eede9c281 100644 --- a/Resources/Prototypes/Nyanotrasen/Entities/Structures/Research/glimmer_prober.yml +++ b/Resources/Prototypes/Nyanotrasen/Entities/Structures/Research/glimmer_prober.yml @@ -65,9 +65,6 @@ damageContainer: Inorganic damageModifierSet: ShockAbsorber - type: CargoSellBlacklist - - type: GuideHelp - guides: - - Psionics - type: AmbientSound range: 6 volume: -6 @@ -119,9 +116,6 @@ False: {visible: false} - type: PowerSwitch - type: CargoSellBlacklist - - type: GuideHelp - guides: - - Psionics - type: NpcFactionMember factions: - PsionicInterloper # :^) diff --git a/Resources/Prototypes/Nyanotrasen/Entities/Structures/Research/sophicscribe.yml b/Resources/Prototypes/Nyanotrasen/Entities/Structures/Research/sophicscribe.yml index 1a065b001c..f92c9b0740 100644 --- a/Resources/Prototypes/Nyanotrasen/Entities/Structures/Research/sophicscribe.yml +++ b/Resources/Prototypes/Nyanotrasen/Entities/Structures/Research/sophicscribe.yml @@ -16,13 +16,7 @@ - type: Speech speechSounds: Tenor - type: IntrinsicRadioReceiver - channels: - - Common - - Science - type: IntrinsicRadioTransmitter - channels: - - Common - - Science - type: ActiveRadio channels: - Common @@ -45,6 +39,10 @@ gender: female proper: true - type: SpriteFade - - type: GuideHelp - guides: - - Psionics + - type: LanguageSpeaker + currentLanguage: TauCetiBasic + - type: LanguageKnowledge + speaks: + - TauCetiBasic + understands: + - TauCetiBasic diff --git a/Resources/Prototypes/Nyanotrasen/Entities/Structures/Walls/walls.yml b/Resources/Prototypes/Nyanotrasen/Entities/Structures/Walls/walls.yml index 1254829991..971e292f90 100644 --- a/Resources/Prototypes/Nyanotrasen/Entities/Structures/Walls/walls.yml +++ b/Resources/Prototypes/Nyanotrasen/Entities/Structures/Walls/walls.yml @@ -49,8 +49,6 @@ node: girder - !type:DoActsBehavior acts: ["Destruction"] - destroySound: - collection: MetalBreak - type: IconSmooth key: walls base: paperwall diff --git a/Resources/Prototypes/Nyanotrasen/GameRules/events.yml b/Resources/Prototypes/Nyanotrasen/GameRules/events.yml index 43347ca7d0..e73ac51d5c 100644 --- a/Resources/Prototypes/Nyanotrasen/GameRules/events.yml +++ b/Resources/Prototypes/Nyanotrasen/GameRules/events.yml @@ -24,13 +24,13 @@ earliestStart: 25 - type: MidRoundAntagRule -#- type: entity -# noSpawn: true -# parent: BaseMidRoundAntag -# id: RatKingSpawn -# components: -# - type: MidRoundAntagRule -# spawner: SpawnPointGhostRatKing +- type: entity + noSpawn: true + parent: BaseMidRoundAntag + id: RatKingSpawn + components: + - type: MidRoundAntagRule + spawner: SpawnPointGhostRatKing - type: entity noSpawn: true @@ -94,7 +94,7 @@ noSpawn: true components: - type: GlimmerEvent - minimumGlimmer: 590 + minimumGlimmer: 400 maximumGlimmer: 1000 glimmerBurnLower: 18 glimmerBurnUpper: 40 @@ -129,7 +129,7 @@ noSpawn: true components: - type: GlimmerEvent - minimumGlimmer: 550 # Requires at least some noospheric activity + minimumGlimmer: 300 maximumGlimmer: 1000 report: glimmer-event-report-signatures - type: FreeProberRule @@ -147,7 +147,7 @@ reoccurrenceDelay: 15 minimumPlayers: 10 - type: GlimmerEvent - minimumGlimmer: 500 + minimumGlimmer: 250 maximumGlimmer: 900 report: glimmer-event-report-signatures - type: GlimmerRandomSentienceRule @@ -158,8 +158,10 @@ noSpawn: true components: - type: GlimmerEvent - minimumGlimmer: 700 + minimumGlimmer: 450 maximumGlimmer: 900 + glimmerBurnLower: 50 + glimmerBurnUpper: 100 # Gives epi a chance to recover report: glimmer-event-report-signatures - type: GlimmerRevenantRule @@ -169,7 +171,7 @@ noSpawn: true components: - type: GlimmerEvent - minimumGlimmer: 50 + minimumGlimmer: 250 maximumGlimmer: 900 report: glimmer-event-report-signatures - type: GlimmerMobRule diff --git a/Resources/Prototypes/Nyanotrasen/Guidebook/epistemics.yml b/Resources/Prototypes/Nyanotrasen/Guidebook/epistemics.yml index 77b180d6ea..adfbc8ce72 100644 --- a/Resources/Prototypes/Nyanotrasen/Guidebook/epistemics.yml +++ b/Resources/Prototypes/Nyanotrasen/Guidebook/epistemics.yml @@ -1,8 +1,3 @@ -- type: guideEntry - id: Psionics - name: guide-entry-psionics - text: "/ServerInfo/Nyanotrasen/Guidebook/Epistemics/Psionics.xml" - # - type: guideEntry # When it's added # id: AltarsGolemancy # name: guide-entry-altars-golemancy diff --git a/Resources/Prototypes/Nyanotrasen/Hydroponics/seeds.yml b/Resources/Prototypes/Nyanotrasen/Hydroponics/seeds.yml index 688af9fc50..08f4482787 100644 --- a/Resources/Prototypes/Nyanotrasen/Hydroponics/seeds.yml +++ b/Resources/Prototypes/Nyanotrasen/Hydroponics/seeds.yml @@ -17,14 +17,13 @@ nutrientConsumption: 0.25 idealLight: 8 idealHeat: 298 - juicy: true splatPrototype: PuddleSplatter chemicals: Nutriment: Min: 1 Max: 10 - PotencyDivisor: 10 + potencyDivisor: 10 DemonsBlood: Min: 1 Max: 4 - PotencyDivisor: 25 + potencyDivisor: 25 diff --git a/Resources/Prototypes/Nyanotrasen/Objectives/traitor.yml b/Resources/Prototypes/Nyanotrasen/Objectives/traitor.yml index 53910a54a9..e6e497003d 100644 --- a/Resources/Prototypes/Nyanotrasen/Objectives/traitor.yml +++ b/Resources/Prototypes/Nyanotrasen/Objectives/traitor.yml @@ -9,29 +9,6 @@ stealGroup: AntiPsychicKnife owner: job-name-mantis -- type: entity - id: BecomePsionicObjective - parent: BaseTraitorObjective - name: Become psionic - description: We need you to acquire psionics and keep them until your mission is complete. - noSpawn: true - components: - - type: NotJobsRequirement - jobs: - - Mime - - ForensicMantis - - type: Objective - difficulty: 2.5 - #unique: false - icon: - sprite: Nyanotrasen/Icons/psi.rsi - state: psi - - type: ObjectiveBlacklistRequirement - blacklist: - components: - - BecomeGolemCondition - - type: BecomePsionicCondition - #- type: entity # id: BecomeGolemObjective # parent: BaseTraitorObjective diff --git a/Resources/Prototypes/Nyanotrasen/Reagents/Consumable/Drink/alcohol.yml b/Resources/Prototypes/Nyanotrasen/Reagents/Consumable/Drink/alcohol.yml index 972fc08239..19d49b913a 100644 --- a/Resources/Prototypes/Nyanotrasen/Reagents/Consumable/Drink/alcohol.yml +++ b/Resources/Prototypes/Nyanotrasen/Reagents/Consumable/Drink/alcohol.yml @@ -19,7 +19,7 @@ factor: 2 - !type:AdjustReagent reagent: Ethanol - amount: 0.07 + amount: 0.15 - type: reagent id: Soju @@ -42,7 +42,7 @@ factor: 2 - !type:AdjustReagent reagent: Ethanol - amount: 0.15 + amount: 0.2 - type: reagent id: OrangeCreamice @@ -65,7 +65,7 @@ factor: 2 - !type:AdjustReagent reagent: Ethanol - amount: 0.05 + amount: 0.1 - type: reagent id: Silverjack @@ -88,7 +88,7 @@ factor: 2 - !type:AdjustReagent reagent: Ethanol - amount: 0.0625 + amount: 0.1375 - type: reagent id: Brainbomb @@ -118,7 +118,7 @@ factor: 2 - !type:AdjustReagent reagent: Ethanol - amount: 0.085 + amount: 0.13 - !type:AdjustReagent reagent: THC amount: 0.33 @@ -147,7 +147,7 @@ factor: 2 - !type:AdjustReagent reagent: Ethanol - amount: 0.025 + amount: 0.08 - type: reagent id: CircusJuice @@ -170,7 +170,7 @@ factor: 2 - !type:AdjustReagent reagent: Ethanol - amount: 0.0625 + amount: 0.12 - !type:Emote #It's very funny emote: Laugh probability: 0.15 @@ -196,7 +196,7 @@ factor: 2 - !type:AdjustReagent reagent: Ethanol - amount: 0.065 + amount: 0.1125 - !type:AdjustTemperature amount: 75 # thermal energy, not temperature! @@ -221,4 +221,4 @@ factor: 2 - !type:AdjustReagent reagent: Ethanol - amount: 0.03 + amount: 0.12 diff --git a/Resources/Prototypes/Nyanotrasen/Reagents/Materials/materials.yml b/Resources/Prototypes/Nyanotrasen/Reagents/Materials/materials.yml deleted file mode 100644 index 9146f29713..0000000000 --- a/Resources/Prototypes/Nyanotrasen/Reagents/Materials/materials.yml +++ /dev/null @@ -1,8 +0,0 @@ -- type: material - id: Bluespace - name: bluespace - unit: materials-unit-crystal - icon: /Textures/Nyanotrasen/Objects/Materials/materials.rsi/bluespace.png - color: "#53a9ff" - stackEntity: MaterialBluespace - price: 15 diff --git a/Resources/Prototypes/Nyanotrasen/Recipes/Construction/Graphs/structures/glimmerdevices.yml b/Resources/Prototypes/Nyanotrasen/Recipes/Construction/Graphs/structures/glimmerdevices.yml index 1926992b69..a79f93ec0e 100644 --- a/Resources/Prototypes/Nyanotrasen/Recipes/Construction/Graphs/structures/glimmerdevices.yml +++ b/Resources/Prototypes/Nyanotrasen/Recipes/Construction/Graphs/structures/glimmerdevices.yml @@ -30,36 +30,9 @@ conditions: - !type:EntityAnchored {} steps: - - tag: NormalityCrystal - icon: - sprite: Nyanotrasen/Objects/Materials/materials.rsi - state: bluespace - name: a normality crystal - doAfter: 1 - - tag: NormalityCrystal - icon: - sprite: Nyanotrasen/Objects/Materials/materials.rsi - state: bluespace - name: a normality crystal - doAfter: 1 - - tag: NormalityCrystal - icon: - sprite: Nyanotrasen/Objects/Materials/materials.rsi - state: bluespace - name: a normality crystal - doAfter: 1 - - tag: NormalityCrystal - icon: - sprite: Nyanotrasen/Objects/Materials/materials.rsi - state: bluespace - name: a normality crystal - doAfter: 1 - - tag: NormalityCrystal - icon: - sprite: Nyanotrasen/Objects/Materials/materials.rsi - state: bluespace - name: a normality crystal - doAfter: 1 + - material: Normality + amount: 5 + doAfter: 10 - tool: Welding doAfter: 5 diff --git a/Resources/Prototypes/Nyanotrasen/Recipes/Cooking/meal_recipes.yml b/Resources/Prototypes/Nyanotrasen/Recipes/Cooking/meal_recipes.yml index 51777e2f59..b61e99ba92 100644 --- a/Resources/Prototypes/Nyanotrasen/Recipes/Cooking/meal_recipes.yml +++ b/Resources/Prototypes/Nyanotrasen/Recipes/Cooking/meal_recipes.yml @@ -26,7 +26,7 @@ solids: FoodSnackBoritos: 1 FoodCheeseSlice: 1 - FoodChili: 1 + FoodChiliPepper: 1 FoodMeatMeatball: 1 # Base ingredients: Should be moved out of microwave as soon as possible. @@ -62,7 +62,7 @@ solids: FoodTofuSlice: 2 FoodOnionSlice: 1 - FoodChili: 1 + FoodChiliPepper: 1 FoodCarrot: 1 FoodCheeseCurds: 1 @@ -97,7 +97,7 @@ solids: FoodCheeseSlice: 1 FoodCabbage: 1 - FoodChili: 1 + FoodChiliPepper: 1 FoodPotato: 1 FoodOnionSlice: 2 @@ -111,7 +111,7 @@ solids: FoodCheeseSlice: 1 #Grilled cheese slice FoodMothSaladBase: 1 - FoodChili: 1 + FoodChiliPepper: 1 FoodCabbage: 1 - type: microwaveMealRecipe @@ -142,7 +142,7 @@ FoodRiceBoiled: 1 FoodPotato: 2 FoodCabbage: 1 - FoodChili: 1 + FoodChiliPepper: 1 #Herbs: 1 - type: microwaveMealRecipe @@ -307,7 +307,7 @@ solids: FoodBowlBig: 1 FoodTofuSlice: 1 - FoodChili: 1 + FoodChiliPepper: 1 #FoodYogurt: 1 #Milk and Cream placeholder - type: microwaveMealRecipe @@ -368,7 +368,7 @@ solids: FoodBowlBig: 1 FoodTomato: 1 - FoodChili: 1 + FoodChiliPepper: 1 # Salads: These should be moved out of the microwave as soon as possible @@ -421,7 +421,7 @@ solids: FoodBowlBig: 1 FoodMothSaladBase: 1 - FoodChili: 1 + FoodChiliPepper: 1 FoodOnionRed: 1 FoodAmbrosiaVulgaris: 1 #Herbs @@ -438,7 +438,7 @@ FoodDoughFlat: 1 FoodCheeseSlice: 1 FoodMothBakedCorn: 1 - FoodChili: 1 + FoodChiliPepper: 1 - type: microwaveMealRecipe id: RecipeMothFiveCheesePizza diff --git a/Resources/Prototypes/Nyanotrasen/Recipes/Lathes/bluespace.yml b/Resources/Prototypes/Nyanotrasen/Recipes/Lathes/bluespace.yml deleted file mode 100644 index 443f2a03f9..0000000000 --- a/Resources/Prototypes/Nyanotrasen/Recipes/Lathes/bluespace.yml +++ /dev/null @@ -1,22 +0,0 @@ -- type: latheRecipe - id: CoreSilver - icon: - sprite: Objects/Misc/guardian_info.rsi - state: icon - result: CoreSilver - completetime: 10 - materials: - Bluespace: 500 - Silver: 1000 - Plastic: 1000 - -- type: latheRecipe - id: BluespaceCrystal - icon: - sprite: Nyanotrasen/Objects/Materials/materials.rsi - state: bluespace - result: MaterialBluespace1 - applyMaterialDiscount: false - completetime: 4 - materials: - Bluespace: 100 diff --git a/Resources/Prototypes/Nyanotrasen/Recipes/Lathes/electronics.yml b/Resources/Prototypes/Nyanotrasen/Recipes/Lathes/electronics.yml index 1e53c715af..695fb42150 100644 --- a/Resources/Prototypes/Nyanotrasen/Recipes/Lathes/electronics.yml +++ b/Resources/Prototypes/Nyanotrasen/Recipes/Lathes/electronics.yml @@ -4,7 +4,7 @@ completetime: 4 materials: Steel: 100 - Glass: 900 + Glass: 700 Gold: 100 - type: latheRecipe @@ -13,7 +13,7 @@ completetime: 4 materials: Steel: 100 - Glass: 900 + Glass: 700 Gold: 100 - type: latheRecipe @@ -21,8 +21,8 @@ result: CrewMonitoringComputerCircuitboard completetime: 4 materials: - Steel: 100 - Glass: 900 + Steel: 100 + Glass: 700 - type: latheRecipe id: ClothingEyesHudMedical @@ -41,4 +41,4 @@ completetime: 4 materials: Steel: 100 - Glass: 900 + Glass: 700 diff --git a/Resources/Prototypes/Nyanotrasen/Recipes/Lathes/hardsuits.yml b/Resources/Prototypes/Nyanotrasen/Recipes/Lathes/hardsuits.yml deleted file mode 100644 index 560c03db49..0000000000 --- a/Resources/Prototypes/Nyanotrasen/Recipes/Lathes/hardsuits.yml +++ /dev/null @@ -1,21 +0,0 @@ -- type: latheRecipe - id: ClothingOuterHardsuitSyndieReverseEngineered - result: ClothingOuterHardsuitSyndieReverseEngineered - completetime: 25 - materials: - Steel: 6000 - Glass: 1500 - Uranium: 100 - Plastic: 100 - Gold: 200 - -- type: latheRecipe - id: ClothingOuterHardsuitJuggernautReverseEngineered - result: ClothingOuterHardsuitJuggernautReverseEngineered - completetime: 25 - materials: - Steel: 12000 - Glass: 3000 - Uranium: 500 - Plastic: 500 - Gold: 250 diff --git a/Resources/Prototypes/Nyanotrasen/Recipes/Reactions/psionic.yml b/Resources/Prototypes/Nyanotrasen/Recipes/Reactions/psionic.yml index 304c9b686a..d9d2ed51b5 100644 --- a/Resources/Prototypes/Nyanotrasen/Recipes/Reactions/psionic.yml +++ b/Resources/Prototypes/Nyanotrasen/Recipes/Reactions/psionic.yml @@ -30,6 +30,6 @@ catalyst: true effects: - !type:CreateEntityReactionEffect - entity: CrystalNormality + entity: MaterialNormality1 - !type:ChangeGlimmerReactionEffect count: -10 diff --git a/Resources/Prototypes/Nyanotrasen/Roles/Jobs/Epistemics/forensicmantis.yml b/Resources/Prototypes/Nyanotrasen/Roles/Jobs/Epistemics/forensicmantis.yml index 1f78015cd6..f7a3120570 100644 --- a/Resources/Prototypes/Nyanotrasen/Roles/Jobs/Epistemics/forensicmantis.yml +++ b/Resources/Prototypes/Nyanotrasen/Roles/Jobs/Epistemics/forensicmantis.yml @@ -32,6 +32,7 @@ - !type:AddComponentSpecial components: - type: Psionic + powerSlots: 2 - !type:AddComponentSpecial components: - type: InnatePsionicPowers diff --git a/Resources/Prototypes/Nyanotrasen/Stacks/materials.yml b/Resources/Prototypes/Nyanotrasen/Stacks/materials.yml deleted file mode 100644 index e8c1b98b93..0000000000 --- a/Resources/Prototypes/Nyanotrasen/Stacks/materials.yml +++ /dev/null @@ -1,7 +0,0 @@ -- type: stack - id: Bluespace - name: bluespace - icon: { sprite: Nyanotrasen/Objects/Materials/materials.rsi, state: bluespace } - spawn: MaterialBluespace - maxCount: 5 - itemSize: 1 diff --git a/Resources/Prototypes/Nyanotrasen/Voice/speech_emotes.yml b/Resources/Prototypes/Nyanotrasen/Voice/speech_emotes.yml index fa471f3d70..f9bd3f60b4 100644 --- a/Resources/Prototypes/Nyanotrasen/Voice/speech_emotes.yml +++ b/Resources/Prototypes/Nyanotrasen/Voice/speech_emotes.yml @@ -1,6 +1,7 @@ # vocal emotes - type: emote id: Hiss + name: chat-emote-name-cathisses category: Vocal chatMessages: [ hisses ] chatTriggers: @@ -8,6 +9,7 @@ - type: emote id: Meow + name: chat-emote-name-catmeow category: Vocal chatMessages: [ meows ] chatTriggers: @@ -18,6 +20,7 @@ - type: emote id: Mew + name: chat-emote-name-catmew category: Vocal chatMessages: [ mews ] chatTriggers: @@ -25,6 +28,7 @@ - type: emote id: Growl + name: chat-emote-name-catgrowl category: Vocal chatMessages: [ growls ] chatTriggers: @@ -32,6 +36,7 @@ - type: emote id: Purr + name: chat-emote-name-catpurr category: Vocal chatMessages: [ purrs ] chatTriggers: diff --git a/Resources/Prototypes/Nyanotrasen/psionicPowers.yml b/Resources/Prototypes/Nyanotrasen/psionicPowers.yml index 0781122b8e..eaa77f05d5 100644 --- a/Resources/Prototypes/Nyanotrasen/psionicPowers.yml +++ b/Resources/Prototypes/Nyanotrasen/psionicPowers.yml @@ -11,3 +11,7 @@ # PsionicInvisibilityPower: 0.15 MindSwapPower: 0.15 TelepathyPower: 1 + HealingWordPower: 0.85 + RevivifyPower: 0.1 + ShadeskipPower: 0.15 + TelekineticPulsePower: 0.15 \ No newline at end of file diff --git a/Resources/Prototypes/Objectives/base_objectives.yml b/Resources/Prototypes/Objectives/base_objectives.yml index e24b26e6e8..2ab5149213 100644 --- a/Resources/Prototypes/Objectives/base_objectives.yml +++ b/Resources/Prototypes/Objectives/base_objectives.yml @@ -103,3 +103,11 @@ id: BaseSurviveObjective components: - type: SurviveCondition + +# objective progress is controlled by a system and not the objective itself +- type: entity + abstract: true + parent: BaseObjective + id: BaseCodeObjective + components: + - type: CodeCondition diff --git a/Resources/Prototypes/Objectives/ninja.yml b/Resources/Prototypes/Objectives/ninja.yml index 0495be2935..fb94f2b378 100644 --- a/Resources/Prototypes/Objectives/ninja.yml +++ b/Resources/Prototypes/Objectives/ninja.yml @@ -46,7 +46,7 @@ - type: entity noSpawn: true - parent: BaseNinjaObjective + parent: [BaseNinjaObjective, BaseCodeObjective] id: SpiderChargeObjective description: This bomb can be detonated in a specific location. Note that the bomb will not work anywhere else! components: @@ -54,7 +54,6 @@ icon: sprite: Objects/Weapons/Bombs/spidercharge.rsi state: icon - - type: SpiderChargeCondition - type: entity noSpawn: true @@ -70,7 +69,7 @@ - type: entity noSpawn: true - parent: BaseNinjaObjective + parent: [BaseNinjaObjective, BaseCodeObjective] id: TerrorObjective name: Call in a threat description: Use your gloves on a communication console in order to bring another threat to the station. @@ -79,4 +78,15 @@ icon: sprite: Objects/Fun/Instruments/otherinstruments.rsi state: red_phone - - type: TerrorCondition + +- type: entity + noSpawn: true + parent: [BaseNinjaObjective, BaseCodeObjective] + id: MassArrestObjective + name: Set everyone to wanted + description: Use your gloves to hack a criminal records console, setting the entire station to be wanted! + components: + - type: Objective + icon: + sprite: Objects/Weapons/Melee/stunbaton.rsi + state: stunbaton_on diff --git a/Resources/Prototypes/Objectives/objectiveGroups.yml b/Resources/Prototypes/Objectives/objectiveGroups.yml index 263494f798..6929d1e1a4 100644 --- a/Resources/Prototypes/Objectives/objectiveGroups.yml +++ b/Resources/Prototypes/Objectives/objectiveGroups.yml @@ -40,8 +40,6 @@ EscapeShuttleObjective: 1 # DieObjective: 0.05 # DeltaV - Disable the lrp objective aka murderbone justification #HijackShuttleObjective: 0.02 - BecomePsionicObjective: 1 # Nyanotrasen - Become Psionic objective, see Resources/Prototypes/Nyanotrasen/Objectives/traitor.yml - #BecomeGolemObjective: 0.5 # Nyanotrasen - Become a golem objective, see Resources/Prototypes/Nyanotrasen/Objectives/traitor.yml - type: weightedRandom id: TraitorObjectiveGroupSocial diff --git a/Resources/Prototypes/Objectives/terminator.yml b/Resources/Prototypes/Objectives/terminator.yml deleted file mode 100644 index 1b569599a7..0000000000 --- a/Resources/Prototypes/Objectives/terminator.yml +++ /dev/null @@ -1,40 +0,0 @@ -- type: entity - abstract: true - parent: BaseObjective - id: BaseTerminatorObjective - components: - - type: Objective - difficulty: 1 - issuer: susnet - - type: RoleRequirement - roles: - components: - - TerminatorRole - -- type: entity - noSpawn: true - parent: [BaseTerminatorObjective, BaseKillObjective] - id: TerminateObjective - description: Follow your programming and terminate the target. - components: - - type: Objective - unique: false - - type: TargetObjective - title: objective-terminate-title - - type: PickRandomPerson - - type: TerminatorTargetOverride - - type: KillPersonCondition - requireDead: true - -- type: entity - noSpawn: true - parent: BaseTerminatorObjective - id: ShutDownObjective - name: Shut down - description: Once the mission is complete die to prevent our technology from being stolen. - components: - - type: Objective - icon: - sprite: Mobs/Species/Terminator/parts.rsi - state: skull_icon - - type: DieCondition diff --git a/Resources/Prototypes/Objectives/traitor.yml b/Resources/Prototypes/Objectives/traitor.yml index d9c071c30c..554ccad264 100644 --- a/Resources/Prototypes/Objectives/traitor.yml +++ b/Resources/Prototypes/Objectives/traitor.yml @@ -191,6 +191,9 @@ components: - type: StealCondition stealGroup: ClothingOuterHardsuitRd + - type: Objective + # This item must be worn or stored in a slowing duffelbag, very hard to hide. + difficulty: 3 - type: entity noSpawn: true diff --git a/Resources/Prototypes/Polymorphs/polymorph.yml b/Resources/Prototypes/Polymorphs/polymorph.yml index b4249f8a3e..a1a805c74f 100644 --- a/Resources/Prototypes/Polymorphs/polymorph.yml +++ b/Resources/Prototypes/Polymorphs/polymorph.yml @@ -75,6 +75,17 @@ inventory: Transfer revertOnDeath: true +- type: polymorph + id: SlimeMorphGeras + configuration: + entity: MobSlimesGeras + transferName: true + transferHumanoidAppearance: false + inventory: Drop + transferDamage: true + revertOnDeath: true + revertOnCrit: true + # this is a test for transferring some visual appearance stuff - type: polymorph id: TestHumanMorph @@ -164,3 +175,25 @@ revertOnDeath: true revertOnCrit: true duration: 20 + +# Polymorphs for Wizards polymorph self spell +- type: polymorph + id: WizardSpider + configuration: + entity: MobGiantSpiderWizard #Not angry so ghosts can't just take over the wizard + transferName: true + inventory: None + revertOnDeath: true + revertOnCrit: true + +- type: polymorph + id: WizardRod + configuration: + entity: ImmovableRodWizard #CLANG + transferName: true + transferDamage: false + inventory: None + duration: 1 + forced: true + revertOnCrit: false + revertOnDeath: false diff --git a/Resources/Prototypes/Procedural/Magnet/asteroid.yml b/Resources/Prototypes/Procedural/Magnet/asteroid.yml index a21b709afa..8fcd265297 100644 --- a/Resources/Prototypes/Procedural/Magnet/asteroid.yml +++ b/Resources/Prototypes/Procedural/Magnet/asteroid.yml @@ -10,6 +10,8 @@ OrePlasma: 0.15 OreUranium: 0.15 OreArtifactFragment: 0.15 + OreBluespace: 0.1 + OreNormality: 0.1 # Large asteroids, typically 1 - type: dungeonConfig diff --git a/Resources/Prototypes/Procedural/biome_ore_templates.yml b/Resources/Prototypes/Procedural/biome_ore_templates.yml index 4a60427e30..c0001367d5 100644 --- a/Resources/Prototypes/Procedural/biome_ore_templates.yml +++ b/Resources/Prototypes/Procedural/biome_ore_templates.yml @@ -144,3 +144,32 @@ minGroupSize: 1 maxGroupSize: 2 radius: 4 + +# Bluespace +- type: biomeMarkerLayer + id: OreBluespace + entityMask: + AsteroidRock: AsteroidRockBluespace + WallRock: WallRockBluespace + WallRockBasalt: WallRockBasaltBluespace + WallRockChromite: WallRockChromiteBluespace + WallRockSand: WallRockSandBluespace + WallRockSnow: WallRockSnowBluespace + maxCount: 6 + minGroupSize: 1 + maxGroupSize: 2 + radius: 4 + +- type: biomeMarkerLayer + id: OreNormality + entityMask: + AsteroidRock: AsteroidRockNormality + WallRock: WallRockNormality + WallRockBasalt: WallRockBasaltNormality + WallRockChromite: WallRockChromiteNormality + WallRockSand: WallRockSandNormality + WallRockSnow: WallRockSnowNormality + maxCount: 6 + minGroupSize: 1 + maxGroupSize: 2 + radius: 4 diff --git a/Resources/Prototypes/Procedural/salvage_loot.yml b/Resources/Prototypes/Procedural/salvage_loot.yml index f12e8c7ffd..b256c73dfd 100644 --- a/Resources/Prototypes/Procedural/salvage_loot.yml +++ b/Resources/Prototypes/Procedural/salvage_loot.yml @@ -185,3 +185,17 @@ loots: - !type:BiomeMarkerLoot proto: OreArtifactFragment + +- type: salvageLoot + id: OreBluespace + guaranteed: true + loots: + - !type:BiomeMarkerLoot + proto: OreBluespace + +- type: salvageLoot + id: OreNormality + guaranteed: true + loots: + - !type:BiomeMarkerLoot + proto: OreNormality diff --git a/Resources/Prototypes/Psionics/psionics.yml b/Resources/Prototypes/Psionics/psionics.yml index b8f798d4b6..378d48b3fa 100644 --- a/Resources/Prototypes/Psionics/psionics.yml +++ b/Resources/Prototypes/Psionics/psionics.yml @@ -119,6 +119,7 @@ - type: UniversalLanguageSpeaker initializationFeedback: xenoglossy-power-initialization-feedback metapsionicFeedback: psionic-language-power-feedback # Reuse for telepathy, clairaudience, etc + powerSlotCost: 0 - type: psionicPower id: PsychognomyPower #i.e. reverse physiognomy @@ -128,6 +129,7 @@ - type: Psychognomist initializationFeedback: psychognomy-power-initialization-feedback metapsionicFeedback: psionic-language-power-feedback + powerSlotCost: 0 - type: psionicPower id: TelepathyPower @@ -137,3 +139,82 @@ - type: Telepathy initializationFeedback: telepathy-power-initialization-feedback metapsionicFeedback: psionic-language-power-feedback # Reuse for telepathy, clairaudience, etc + powerSlotCost: 0 + +- type: psionicPower + id: HealingWordPower + name: HealingWord + description: healing-word-power-description + actions: + - ActionHealingWord + initializationFeedback: healing-word-power-initialization-feedback + metapsionicFeedback: healing-word-power-feedback + amplificationModifier: 0.5 + dampeningModifier: 0.5 + +- type: psionicPower + id: RevivifyPower + name: Revivify + description: revivify-power-description + actions: + - ActionRevivify + initializationFeedback: revivify-power-initialization-feedback + metapsionicFeedback: revivify-power-feedback + amplificationModifier: 2.5 # An extremely rare and dangerous power + powerSlotCost: 2 + +- type: psionicPower + id: LowAmplification + name: LowAmplification + description: low-amplification-power-description + amplificationModifier: -0.25 + powerSlotCost: 0 + +- type: psionicPower + id: HighAmplification + name: HighAmplification + description: high-amplification-power-description + amplificationModifier: 0.25 + powerSlotCost: 0 + +- type: psionicPower + id: PowerOverwhelming + name: PowerOverwhelming + description: power-overwhelming-power-description + metapsionicFeedback: power-overwhelming-power-feedback + amplificationModifier: 2 + powerSlotCost: 2 + +- type: psionicPower + id: LowDampening + name: LowDampening + description: low-dampening-power-description + dampeningModifier: -0.25 + powerSlotCost: 0 + +- type: psionicPower + id: HighDampening + name: HighDampening + description: high-dampening-power-description + dampeningModifier: 0.25 + powerSlotCost: 0 + +- type: psionicPower + id: ShadeskipPower + name: Shadeskip + description: shadeskip-power-description + actions: + - ActionShadeskip + initializationFeedback: shadeskip-power-initialization-feedback + metapsionicFeedback: shadeskip-power-metapsionic-feedback + amplificationModifier: 1 + +- type: psionicPower + id: TelekineticPulsePower + name: Telekinetic Pulse + description: telekinetic-pulse-power-description + actions: + - ActionTelekineticPulse + initializationFeedback: telekinetic-pulse-power-initialization-feedback + metapsionicFeedback: telekinetic-pulse-power-metapsionic-feedback + amplificationModifier: 1 \ No newline at end of file diff --git a/Resources/Prototypes/Reagents/Consumable/Drink/alcohol.yml b/Resources/Prototypes/Reagents/Consumable/Drink/alcohol.yml index e31087c309..f374a3debf 100644 --- a/Resources/Prototypes/Reagents/Consumable/Drink/alcohol.yml +++ b/Resources/Prototypes/Reagents/Consumable/Drink/alcohol.yml @@ -22,7 +22,7 @@ factor: 2 - !type:AdjustReagent reagent: Ethanol - amount: 0.3 + amount: 0.7 - type: reagent id: Ale @@ -39,6 +39,7 @@ metamorphicMaxFillLevels: 5 metamorphicFillBaseName: fill- metamorphicChangeColor: false + fizziness: 0.6 - type: reagent id: Beer @@ -55,6 +56,7 @@ metamorphicMaxFillLevels: 6 metamorphicFillBaseName: fill- metamorphicChangeColor: true + fizziness: 0.6 - type: reagent id: BlueCuracao @@ -77,7 +79,7 @@ factor: 2 - !type:AdjustReagent reagent: Ethanol - amount: 0.1 + amount: 0.25 - type: reagent id: BlueHawaiian @@ -97,7 +99,7 @@ factor: 2 - !type:AdjustReagent reagent: Ethanol - amount: 0.2 + amount: 0.154 - type: reagent id: Cognac @@ -121,7 +123,7 @@ factor: 2 - !type:AdjustReagent reagent: Ethanol - amount: 0.2 + amount: 0.4 - type: reagent id: DeadRum @@ -144,7 +146,7 @@ factor: 2 - !type:AdjustReagent reagent: Ethanol - amount: 0.2 + amount: 0.6 - type: reagent id: Ethanol @@ -163,7 +165,7 @@ - !type:HealthChange conditions: - !type:ReagentThreshold - min: 15 + min: 45 damage: types: Poison: 1 @@ -255,6 +257,12 @@ Cold: -1.60 - !type:Drunk boozePower: 2 + - !type:ChemAddMoodlet + moodPrototype: EthanolBenefit + conditions: + - !type:ReagentThreshold + reagent: Ethanol + min: 5 - type: reagent id: Gin @@ -278,7 +286,7 @@ factor: 2 - !type:AdjustReagent reagent: Ethanol - amount: 0.2 + amount: 0.45 - type: reagent id: CoffeeLiqueur @@ -294,6 +302,13 @@ metamorphicMaxFillLevels: 3 metamorphicFillBaseName: fill- metamorphicChangeColor: true + metabolisms: + Drink: + effects: + - !type:AdjustReagent + reagent: Ethanol + amount: 0.20 + - type: reagent id: MelonLiquor @@ -309,6 +324,12 @@ metamorphicMaxFillLevels: 5 metamorphicFillBaseName: fill- metamorphicChangeColor: true + metabolisms: + Drink: + effects: + - !type:AdjustReagent + reagent: Ethanol + amount: 0.20 - type: reagent id: NTCahors @@ -324,6 +345,12 @@ metamorphicMaxFillLevels: 5 metamorphicFillBaseName: fill- metamorphicChangeColor: true + metabolisms: + Drink: + effects: + - !type:AdjustReagent + reagent: Ethanol + amount: 0.17 - type: reagent id: PoisonWine @@ -346,7 +373,7 @@ factor: 2 - !type:AdjustReagent reagent: Ethanol - amount: 0.05 + amount: 0.11 Poison: effects: - !type:HealthChange @@ -376,7 +403,7 @@ factor: 2 - !type:AdjustReagent reagent: Ethanol - amount: 0.2 + amount: 0.40 ##Commented out in favor of Nyano sake/soju #- type: reagent @@ -399,7 +426,7 @@ metamorphicSprite: sprite: Objects/Consumable/Drinks/tequillaglass.rsi state: icon_empty - metamorphicMaxFillLevels: 4 + metamorphicMaxFillLevels: 3 metamorphicFillBaseName: fill- metamorphicChangeColor: false metabolisms: @@ -409,7 +436,7 @@ factor: 2 - !type:AdjustReagent reagent: Ethanol - amount: 0.2 + amount: 0.40 - type: reagent id: Vermouth @@ -425,6 +452,12 @@ metamorphicMaxFillLevels: 4 metamorphicFillBaseName: fill- metamorphicChangeColor: false + metabolisms: + Drink: + effects: + - !type:AdjustReagent + reagent: Ethanol + amount: 0.16 - type: reagent id: Vodka @@ -448,7 +481,7 @@ factor: 2 - !type:AdjustReagent reagent: Ethanol - amount: 0.2 + amount: 0.40 - type: reagent id: Whiskey @@ -472,7 +505,7 @@ factor: 2 - !type:AdjustReagent reagent: Ethanol - amount: 0.2 + amount: 0.40 - type: reagent id: Wine @@ -489,6 +522,14 @@ metamorphicMaxFillLevels: 5 metamorphicFillBaseName: fill- metamorphicChangeColor: true + metabolisms: + Drink: + effects: + - !type:SatiateThirst + factor: 2 + - !type:AdjustReagent + reagent: Ethanol + amount: 0.11 - type: reagent id: Champagne @@ -512,7 +553,8 @@ factor: 3 - !type:AdjustReagent reagent: Ethanol - amount: 0.3 + amount: 0.12 + fizziness: 0.8 # Mixed Alcohol @@ -530,6 +572,14 @@ metamorphicMaxFillLevels: 5 metamorphicFillBaseName: fill- metamorphicChangeColor: false + metabolisms: + Drink: + effects: + - !type:SatiateThirst + factor: 1 + - !type:AdjustReagent + reagent: Ethanol + amount: 0.073 - type: reagent id: AlliesCocktail @@ -545,6 +595,14 @@ metamorphicMaxFillLevels: 4 metamorphicFillBaseName: fill- metamorphicChangeColor: false + metabolisms: + Drink: + effects: + - !type:SatiateThirst + factor: 2 + - !type:AdjustReagent + reagent: Ethanol + amount: 0.37 - type: reagent id: Aloe @@ -575,6 +633,14 @@ metamorphicMaxFillLevels: 5 metamorphicFillBaseName: fill- metamorphicChangeColor: false + metabolisms: + Drink: + effects: + - !type:SatiateThirst + factor: 2 + - !type:AdjustReagent + reagent: Ethanol + amount: 0.204 - type: reagent id: Andalusia @@ -590,6 +656,14 @@ metamorphicMaxFillLevels: 4 metamorphicFillBaseName: fill- metamorphicChangeColor: false + metabolisms: + Drink: + effects: + - !type:SatiateThirst + factor: 2 + - !type:AdjustReagent + reagent: Ethanol + amount: 0.27 - type: reagent id: Antifreeze @@ -612,7 +686,7 @@ factor: 2 - !type:AdjustReagent reagent: Ethanol - amount: 0.15 + amount: 0.2 - type: reagent id: AtomicBomb @@ -635,7 +709,7 @@ factor: 2 - !type:AdjustReagent reagent: Ethanol - amount: 0.15 + amount: 0.254 - !type:AdjustReagent reagent: Uranium amount: 0.05 @@ -661,7 +735,7 @@ factor: 2 - !type:AdjustReagent reagent: Ethanol - amount: 0.15 + amount: 0.28 - type: reagent id: BahamaMama @@ -677,6 +751,14 @@ metamorphicMaxFillLevels: 5 metamorphicFillBaseName: fill- metamorphicChangeColor: true + metabolisms: + Drink: + effects: + - !type:SatiateThirst + factor: 2 + - !type:AdjustReagent + reagent: Ethanol + amount: 0.11 - type: reagent id: BananaHonk @@ -707,6 +789,14 @@ metamorphicMaxFillLevels: 3 metamorphicFillBaseName: fill- metamorphicChangeColor: true + metabolisms: + Drink: + effects: + - !type:SatiateThirst + factor: 2 + - !type:AdjustReagent + reagent: Ethanol + amount: 0.05 - type: reagent id: BeepskySmash @@ -729,7 +819,8 @@ factor: 2 - !type:AdjustReagent reagent: Ethanol - amount: 0.15 + amount: 0.13 + fizziness: 0.3 - type: reagent id: BlackRussian @@ -752,7 +843,7 @@ factor: 2 - !type:AdjustReagent reagent: Ethanol - amount: 0.2 + amount: 0.33 - type: reagent id: BloodyMary @@ -768,6 +859,14 @@ metamorphicMaxFillLevels: 5 metamorphicFillBaseName: fill- metamorphicChangeColor: true + metabolisms: + Drink: + effects: + - !type:SatiateThirst + factor: 2 + - !type:AdjustReagent + reagent: Ethanol + amount: 0.13 - type: reagent id: Booger @@ -783,6 +882,14 @@ metamorphicMaxFillLevels: 5 metamorphicFillBaseName: fill- metamorphicChangeColor: true + metabolisms: + Drink: + effects: + - !type:SatiateThirst + factor: 2 + - !type:AdjustReagent + reagent: Ethanol + amount: 0.08 - type: reagent id: BraveBull @@ -805,7 +912,7 @@ factor: 2 - !type:AdjustReagent reagent: Ethanol - amount: 0.2 + amount: 0.33 - type: reagent id: CoconutRum @@ -825,7 +932,7 @@ factor: 2 - !type:AdjustReagent reagent: Ethanol - amount: 0.2 + amount: 0.26 - type: reagent id: Cosmopolitan @@ -845,7 +952,7 @@ factor: 2 - !type:AdjustReagent reagent: Ethanol - amount: 0.15 + amount: 0.13 - type: reagent id: CubaLibre @@ -868,7 +975,8 @@ factor: 2 - !type:AdjustReagent reagent: Ethanol - amount: 0.07 + amount: 0.13 + fizziness: 0.2 - type: reagent id: DemonsBlood @@ -884,6 +992,15 @@ metamorphicMaxFillLevels: 4 metamorphicFillBaseName: fill- metamorphicChangeColor: true + metabolisms: + Drink: + effects: + - !type:SatiateThirst + factor: 2 + - !type:AdjustReagent + reagent: Ethanol + amount: 0.10 + fizziness: 0.3 - type: reagent id: DevilsKiss @@ -899,6 +1016,14 @@ metamorphicMaxFillLevels: 3 metamorphicFillBaseName: fill- metamorphicChangeColor: true + metabolisms: + Drink: + effects: + - !type:SatiateThirst + factor: 2 + - !type:AdjustReagent + reagent: Ethanol + amount: 0.20 - type: reagent id: DoctorsDelight @@ -921,9 +1046,6 @@ factor: 2 - !type:SatiateHunger factor: -2 - - !type:AdjustReagent - reagent: Ethanol - amount: 0.05 Medicine: effects: - !type:HealthChange @@ -955,7 +1077,7 @@ factor: 2 - !type:AdjustReagent reagent: Ethanol - amount: 0.15 + amount: 0.225 - type: reagent id: ErikaSurprise @@ -971,6 +1093,15 @@ metamorphicMaxFillLevels: 5 metamorphicFillBaseName: fill- metamorphicChangeColor: true + metabolisms: + Drink: + effects: + - !type:SatiateThirst + factor: 2 + - !type:AdjustReagent + reagent: Ethanol + amount: 0.02 + fizziness: 0.15 - type: reagent id: GargleBlaster @@ -993,7 +1124,7 @@ factor: 2 - !type:AdjustReagent reagent: Ethanol - amount: 0.2 + amount: 0.32 - type: reagent id: GinFizz @@ -1016,7 +1147,8 @@ factor: 2 - !type:AdjustReagent reagent: Ethanol - amount: 0.07 + amount: 0.15 + fizziness: 0.4 - type: reagent id: GinTonic @@ -1039,7 +1171,8 @@ factor: 2 - !type:AdjustReagent reagent: Ethanol - amount: 0.07 + amount: 0.15 + fizziness: 0.4 - type: reagent id: Gildlager @@ -1062,7 +1195,7 @@ factor: 2 - !type:AdjustReagent reagent: Ethanol - amount: 0.2 + amount: 0.363 - type: reagent id: Grog @@ -1078,6 +1211,14 @@ metamorphicMaxFillLevels: 5 metamorphicFillBaseName: fill- metamorphicChangeColor: true + metabolisms: + Drink: + effects: + - !type:SatiateThirst + factor: 2 + - !type:AdjustReagent + reagent: Ethanol + amount: 0.10 - type: reagent id: HippiesDelight @@ -1093,6 +1234,14 @@ metamorphicMaxFillLevels: 6 metamorphicFillBaseName: fill- metamorphicChangeColor: false + metabolisms: + Drink: + effects: + - !type:SatiateThirst + factor: 2 + - !type:AdjustReagent + reagent: Ethanol + amount: 0.16 - type: reagent id: Hooch @@ -1102,6 +1251,14 @@ physicalDesc: reagent-physical-desc-strong-smelling flavor: alcohol color: "#664e00" + metabolisms: + Drink: + effects: + - !type:SatiateThirst + factor: 2 + - !type:AdjustReagent + reagent: Ethanol + amount: 0.50 - type: reagent id: IcedBeer @@ -1117,6 +1274,7 @@ metamorphicMaxFillLevels: 6 metamorphicFillBaseName: fill- metamorphicChangeColor: false + fizziness: 0.6 - type: reagent id: IrishCarBomb @@ -1139,7 +1297,7 @@ factor: 2 - !type:AdjustReagent reagent: Ethanol - amount: 0.15 + amount: 0.16 - type: reagent id: IrishCream @@ -1162,7 +1320,7 @@ factor: 2 - !type:AdjustReagent reagent: Ethanol - amount: 0.2 + amount: 0.266 - type: reagent id: IrishCoffee @@ -1185,7 +1343,7 @@ factor: 2 - !type:AdjustReagent reagent: Ethanol - amount: 0.15 + amount: 0.133 - type: reagent id: LongIslandIcedTea @@ -1208,7 +1366,7 @@ factor: 2 - !type:AdjustReagent reagent: Ethanol - amount: 0.15 + amount: 0.273 - type: reagent id: Manhattan @@ -1224,6 +1382,14 @@ metamorphicMaxFillLevels: 3 metamorphicFillBaseName: fill- metamorphicChangeColor: false + metabolisms: + Drink: + effects: + - !type:SatiateThirst + factor: 2 + - !type:AdjustReagent + reagent: Ethanol + amount: 0.32 - type: reagent id: ManhattanProject @@ -1239,6 +1405,14 @@ metamorphicMaxFillLevels: 3 metamorphicFillBaseName: fill- metamorphicChangeColor: false + metabolisms: + Drink: + effects: + - !type:SatiateThirst + factor: 2 + - !type:AdjustReagent + reagent: Ethanol + amount: 0.363 - type: reagent id: ManlyDorf @@ -1254,6 +1428,7 @@ metamorphicMaxFillLevels: 2 metamorphicFillBaseName: fill- metamorphicChangeColor: false + fizziness: 0.7 - type: reagent id: Margarita @@ -1291,7 +1466,7 @@ factor: 2 - !type:AdjustReagent reagent: Ethanol - amount: 0.15 + amount: 0.353 - type: reagent id: Mead @@ -1307,6 +1482,7 @@ metamorphicMaxFillLevels: 5 metamorphicFillBaseName: fill- metamorphicChangeColor: true + fizziness: 0.4 - type: reagent id: Mojito @@ -1322,6 +1498,15 @@ metamorphicMaxFillLevels: 6 metamorphicFillBaseName: fill- metamorphicChangeColor: false + metabolisms: + Drink: + effects: + - !type:SatiateThirst + factor: 2 + - !type:AdjustReagent + reagent: Ethanol + amount: 0.10 + fizziness: 0.3 - type: reagent id: Moonshine @@ -1331,6 +1516,12 @@ physicalDesc: reagent-physical-desc-strong-smelling flavor: moonshine color: "#d1d7d155" + metamorphicSprite: + sprite: Objects/Consumable/Drinks/moonshineglass.rsi + state: icon_empty + metamorphicMaxFillLevels: 6 + metamorphicFillBaseName: fill- + metamorphicChangeColor: false metabolisms: Drink: effects: @@ -1338,7 +1529,7 @@ factor: 2 - !type:AdjustReagent reagent: Ethanol - amount: 0.25 + amount: 0.40 - type: reagent id: Neurotoxin @@ -1361,7 +1552,7 @@ factor: 2 - !type:AdjustReagent reagent: Ethanol - amount: 0.25 + amount: 0.16 Poison: effects: - !type:HealthChange @@ -1387,7 +1578,7 @@ factor: 2 - !type:AdjustReagent reagent: Ethanol - amount: 0.2 + amount: 0.04 - type: reagent id: Patron @@ -1410,7 +1601,7 @@ factor: 2 - !type:AdjustReagent reagent: Ethanol - amount: 0.2 + amount: 0.50 - type: reagent id: RedMead @@ -1426,6 +1617,7 @@ metamorphicMaxFillLevels: 5 metamorphicFillBaseName: fill- metamorphicChangeColor: true + fizziness: 0.4 - type: reagent id: PinaColada @@ -1438,6 +1630,14 @@ metamorphicSprite: sprite: Objects/Consumable/Drinks/pinacolada.rsi state: icon + metabolisms: + Drink: + effects: + - !type:SatiateThirst + factor: 2 + - !type:AdjustReagent + reagent: Ethanol + amount: 0.06 - type: reagent id: Sbiten @@ -1453,6 +1653,14 @@ metamorphicMaxFillLevels: 5 metamorphicFillBaseName: fill- metamorphicChangeColor: true + metabolisms: + Drink: + effects: + - !type:SatiateThirst + factor: 2 + - !type:AdjustReagent + reagent: Ethanol + amount: 0.2 - type: reagent id: ScrewdriverCocktail @@ -1475,7 +1683,7 @@ factor: 2 - !type:AdjustReagent reagent: Ethanol - amount: 0.07 + amount: 0.13 - type: reagent id: CogChamp @@ -1501,7 +1709,7 @@ factor: 2 - !type:AdjustReagent reagent: Ethanol - amount: 0.15 + amount: 0.176 - type: reagent id: Silencer @@ -1540,6 +1748,14 @@ metamorphicMaxFillLevels: 5 metamorphicFillBaseName: fill- metamorphicChangeColor: false + metabolisms: + Drink: + effects: + - !type:SatiateThirst + factor: 2 + - !type:AdjustReagent + reagent: Ethanol + amount: 0.23 - type: reagent id: SnowWhite @@ -1555,6 +1771,15 @@ metamorphicMaxFillLevels: 6 metamorphicFillBaseName: fill- metamorphicChangeColor: true + metabolisms: + Drink: + effects: + - !type:SatiateThirst + factor: 2 + - !type:AdjustReagent + reagent: Ethanol + amount: 0.03 + fizziness: 0.3 - type: reagent id: SuiDream @@ -1570,6 +1795,15 @@ metamorphicMaxFillLevels: 5 metamorphicFillBaseName: fill- metamorphicChangeColor: false + metabolisms: + Drink: + effects: + - !type:SatiateThirst + factor: 2 + - !type:AdjustReagent + reagent: Ethanol + amount: 0.13 + fizziness: 0.2 - type: reagent id: SyndicateBomb @@ -1585,6 +1819,15 @@ metamorphicMaxFillLevels: 6 metamorphicFillBaseName: fill- metamorphicChangeColor: true + metabolisms: + Drink: + effects: + - !type:SatiateThirst + factor: 2 + - !type:AdjustReagent + reagent: Ethanol + amount: 0.095 + fizziness: 0.6 - type: reagent id: TequilaSunrise @@ -1607,7 +1850,7 @@ factor: 2 - !type:AdjustReagent reagent: Ethanol - amount: 0.15 + amount: 0.26 - type: reagent id: TheMartinez @@ -1623,6 +1866,15 @@ metamorphicMaxFillLevels: 3 metamorphicFillBaseName: fill- metamorphicChangeColor: false + metabolisms: + Drink: + effects: + - !type:SatiateThirst + factor: 2 + - !type:AdjustReagent + reagent: Ethanol + amount: 0.13 + fizziness: 0.2 - type: reagent id: ThreeMileIsland @@ -1645,7 +1897,7 @@ factor: 2 - !type:AdjustReagent reagent: Ethanol - amount: 0.15 + amount: 0.273 - !type:AdjustReagent reagent: Uranium amount: 0.05 @@ -1664,6 +1916,14 @@ metamorphicMaxFillLevels: 4 metamorphicFillBaseName: fill- metamorphicChangeColor: false + metabolisms: + Drink: + effects: + - !type:SatiateThirst + factor: 2 + - !type:AdjustReagent + reagent: Ethanol + amount: 0.112 - type: reagent id: VodkaMartini @@ -1686,7 +1946,7 @@ factor: 2 - !type:AdjustReagent reagent: Ethanol - amount: 0.15 + amount: 0.32 - type: reagent id: VodkaTonic @@ -1709,7 +1969,8 @@ factor: 2 - !type:AdjustReagent reagent: Ethanol - amount: 0.07 + amount: 0.13 + fizziness: 0.4 - type: reagent id: WhiskeyCola @@ -1732,7 +1993,8 @@ factor: 2 - !type:AdjustReagent reagent: Ethanol - amount: 0.07 + amount: 0.013 + fizziness: 0.3 - type: reagent id: WhiskeySoda @@ -1755,7 +2017,8 @@ factor: 2 - !type:AdjustReagent reagent: Ethanol - amount: 0.07 + amount: 0.13 + fizziness: 0.4 - type: reagent id: WhiteGilgamesh @@ -1772,7 +2035,8 @@ factor: 1 - !type:AdjustReagent reagent: Ethanol - amount: 0.15 + amount: 0.04 + fizziness: 0.5 - type: reagent id: WhiteRussian @@ -1795,4 +2059,166 @@ factor: 2 - !type:AdjustReagent reagent: Ethanol - amount: 0.15 + amount: 0.33 + +- type: reagent + id: VodkaRedBool + name: reagent-name-vodka-red-bool + parent: BaseAlcohol + desc: reagent-desc-vodka-red-bool + physicalDesc: reagent-physical-desc-strong-smelling + flavor: vodkaredbool + color: "#c4c27655" + metamorphicSprite: + sprite: Objects/Consumable/Drinks/ginvodkaglass.rsi + state: icon_empty + metamorphicMaxFillLevels: 4 + metamorphicFillBaseName: fill- + metamorphicChangeColor: true + metabolisms: + Drink: + effects: + - !type:SatiateThirst + factor: 1 + - !type:AdjustReagent + reagent: Ethanol + amount: 0.10 + - !type:AdjustReagent + reagent: Theobromine + amount: 0.05 + fizziness: 0.25 + +- type: reagent + id: XenoBasher + name: reagent-name-xeno-basher + parent: BaseAlcohol + desc: reagent-desc-xeno-basher + physicalDesc: reagent-physical-desc-fizzy-and-creamy + flavor: xenobasher + color: "#4d6600" + metamorphicSprite: + sprite: Objects/Consumable/Drinks/xenobasher.rsi + state: icon_empty + metamorphicMaxFillLevels: 2 + metamorphicFillBaseName: fill- + metamorphicChangeColor: false + metabolisms: + Drink: + effects: + - !type:SatiateThirst + factor: 1 + - !type:AdjustReagent + reagent: Ethanol + amount: 0.15 + - !type:AdjustReagent + reagent: Theobromine + amount: 0.05 + fizziness: 0.15 + +- type: reagent + id: IrishBool + name: reagent-name-irish-bool + parent: BaseAlcohol + desc: reagent-desc-irish-bool + physicalDesc: reagent-physical-desc-bubbly + flavor: irishbool + color: "#71672e99" + metamorphicSprite: + sprite: Objects/Consumable/Drinks/beerglass.rsi + state: icon_empty + metamorphicMaxFillLevels: 6 + metamorphicFillBaseName: fill- + metamorphicChangeColor: true + metabolisms: + Drink: + effects: + - !type:SatiateThirst + factor: 1 + - !type:AdjustReagent + reagent: Ethanol + amount: 0.10 + - !type:AdjustReagent + reagent: Theobromine + amount: 0.05 + fizziness: 0.15 + +- type: reagent + id: BudgetInsulsDrink + name: reagent-name-budget-insuls + parent: BaseAlcohol + desc: reagent-desc-budget-insuls + physicalDesc: reagent-physical-desc-strong-smelling + flavor: budgetinsulsdrink + color: "#dede73" + metamorphicSprite: + sprite: Objects/Consumable/Drinks/budgetinsulsdrink.rsi + state: icon_empty + metamorphicMaxFillLevels: 3 + metamorphicFillBaseName: fill- + metamorphicChangeColor: false + metabolisms: + Drink: + effects: + - !type:SatiateThirst + factor: 1 + - !type:AdjustReagent + reagent: Ethanol + amount: 0.15 + - !type:AdjustReagent + reagent: Theobromine + amount: 0.05 + fizziness: 0.25 + +- type: reagent + id: WatermelonWakeup + name: reagent-name-watermelon-wakeup + parent: BaseAlcohol + desc: reagent-desc-watermelon-wakeup + physicalDesc: reagent-physical-desc-sweet + flavor: watermelonwakeup + color: "#d49dca" + metamorphicSprite: + sprite: Objects/Consumable/Drinks/champagneglass.rsi + state: icon_empty + metamorphicMaxFillLevels: 4 + metamorphicFillBaseName: fill- + metamorphicChangeColor: true + metabolisms: + Drink: + effects: + - !type:SatiateThirst + factor: 1 + - !type:AdjustReagent + reagent: Ethanol + amount: 0.07 + - !type:AdjustReagent + reagent: Theobromine + amount: 0.05 + fizziness: 0.15 + +- type: reagent + id: Rubberneck + name: reagent-name-rubberneck + parent: BaseAlcohol + desc: reagent-desc-rubberneck + physicalDesc: reagent-physical-desc-strong-smelling + flavor: rubberneck + color: "#f0d74a" + metamorphicSprite: + sprite: Objects/Consumable/Drinks/rubberneck.rsi + state: icon_empty + metamorphicMaxFillLevels: 3 + metamorphicFillBaseName: fill- + metamorphicChangeColor: false + metabolisms: + Drink: + effects: + - !type:SatiateThirst + factor: 1 + - !type:AdjustReagent + reagent: Ethanol + amount: 0.15 + - !type:AdjustReagent + reagent: Theobromine + amount: 0.05 + fizziness: 0.25 diff --git a/Resources/Prototypes/Reagents/Consumable/Drink/base_drink.yml b/Resources/Prototypes/Reagents/Consumable/Drink/base_drink.yml index 9984b4c0cf..19a5e1bf8f 100644 --- a/Resources/Prototypes/Reagents/Consumable/Drink/base_drink.yml +++ b/Resources/Prototypes/Reagents/Consumable/Drink/base_drink.yml @@ -40,6 +40,7 @@ collection: FootstepSticky params: volume: 6 + fizziness: 0.5 - type: reagent id: BaseAlcohol @@ -75,4 +76,4 @@ footstepSound: collection: FootstepSticky params: - volume: 6 \ No newline at end of file + volume: 6 diff --git a/Resources/Prototypes/Reagents/Consumable/Drink/drinks.yml b/Resources/Prototypes/Reagents/Consumable/Drink/drinks.yml index 5c09b3c909..52a01d973f 100644 --- a/Resources/Prototypes/Reagents/Consumable/Drink/drinks.yml +++ b/Resources/Prototypes/Reagents/Consumable/Drink/drinks.yml @@ -15,6 +15,12 @@ - !type:AdjustReagent reagent: Theobromine amount: 0.05 + metamorphicSprite: + sprite: Objects/Consumable/Drinks/coffeeglass.rsi + state: icon_empty + metamorphicMaxFillLevels: 4 + metamorphicFillBaseName: fill- + metamorphicChangeColor: false - type: reagent id: HotCocoa @@ -100,9 +106,9 @@ flavor: tea color: "#7EB626" metamorphicSprite: - sprite: Objects/Consumable/Drinks/glass_green.rsi + sprite: Objects/Consumable/Drinks/greenteaglass.rsi state: icon_empty - metamorphicMaxFillLevels: 5 + metamorphicMaxFillLevels: 4 metamorphicFillBaseName: fill- metamorphicChangeColor: false @@ -149,7 +155,7 @@ flavor: icedtea color: "#5B821B" metamorphicSprite: - sprite: Objects/Consumable/Drinks/glass_green.rsi + sprite: Objects/Consumable/Drinks/icedgreenteaglass.rsi state: icon_empty metamorphicMaxFillLevels: 5 metamorphicFillBaseName: fill- @@ -322,6 +328,7 @@ damage: types: Poison: 1 + fizziness: 0.5 - type: reagent id: SodaWater @@ -331,6 +338,7 @@ physicalDesc: reagent-physical-desc-fizzy flavor: fizzy color: "#619494" + fizziness: 0.8 - type: reagent id: SoyLatte @@ -364,6 +372,12 @@ - !type:AdjustReagent reagent: Theobromine amount: 0.05 + metamorphicSprite: + sprite: Objects/Consumable/Drinks/teaglass.rsi + state: icon_empty + metamorphicMaxFillLevels: 4 + metamorphicFillBaseName: fill- + metamorphicChangeColor: false - type: reagent id: TonicWater @@ -373,6 +387,13 @@ physicalDesc: reagent-physical-desc-fizzy flavor: tonicwater color: "#0064C8" + fizziness: 0.4 + metamorphicSprite: + sprite: Objects/Consumable/Drinks/tonicglass.rsi + state: icon_empty + metamorphicMaxFillLevels: 5 + metamorphicFillBaseName: fill- + metamorphicChangeColor: false - type: reagent id: Water @@ -405,6 +426,12 @@ plantMetabolism: - !type:PlantAdjustWater amount: 1 + metamorphicSprite: + sprite: Objects/Consumable/Drinks/iceglass.rsi + state: icon_empty + metamorphicMaxFillLevels: 3 + metamorphicFillBaseName: fill- + metamorphicChangeColor: false - type: reagent id: DryRamen @@ -467,6 +494,7 @@ effects: - !type:SatiateThirst factor: 1 + fizziness: 0.3 - type: reagent id: Posca @@ -491,6 +519,7 @@ metamorphicMaxFillLevels: 3 metamorphicFillBaseName: fill- metamorphicChangeColor: false + fizziness: 0.3 - type: reagent id: Rewriter @@ -506,6 +535,7 @@ metamorphicMaxFillLevels: 5 metamorphicFillBaseName: fill- metamorphicChangeColor: true + fizziness: 0.3 - type: reagent id: Mopwata diff --git a/Resources/Prototypes/Reagents/Consumable/Drink/juice.yml b/Resources/Prototypes/Reagents/Consumable/Drink/juice.yml index ee1492b45e..c42791fa8f 100644 --- a/Resources/Prototypes/Reagents/Consumable/Drink/juice.yml +++ b/Resources/Prototypes/Reagents/Consumable/Drink/juice.yml @@ -63,6 +63,12 @@ physicalDesc: reagent-physical-desc-citric flavor: sour color: "#fff690" + metamorphicSprite: + sprite: Objects/Consumable/Drinks/lemonjuiceglass.rsi + state: icon_empty + metamorphicMaxFillLevels: 5 + metamorphicFillBaseName: fill- + metamorphicChangeColor: false - type: reagent id: JuiceLime @@ -89,6 +95,12 @@ physicalDesc: reagent-physical-desc-citric flavor: orange color: "#E78108" + metamorphicSprite: + sprite: Objects/Consumable/Drinks/orangejuiceglass.rsi + state: icon_empty + metamorphicMaxFillLevels: 5 + metamorphicFillBaseName: fill- + metamorphicChangeColor: false - type: reagent id: JuicePineapple @@ -125,3 +137,9 @@ physicalDesc: reagent-physical-desc-sweet flavor: watermelon color: "#EF3520" + metamorphicSprite: + sprite: Objects/Consumable/Drinks/watermelonglass.rsi + state: icon_empty + metamorphicMaxFillLevels: 4 + metamorphicFillBaseName: fill- + metamorphicChangeColor: false diff --git a/Resources/Prototypes/Reagents/Consumable/Drink/soda.yml b/Resources/Prototypes/Reagents/Consumable/Drink/soda.yml index ba5adc4f2a..d78b0351ce 100644 --- a/Resources/Prototypes/Reagents/Consumable/Drink/soda.yml +++ b/Resources/Prototypes/Reagents/Consumable/Drink/soda.yml @@ -7,6 +7,12 @@ flavor: soda color: "#6c2828" recognizable: true + metamorphicSprite: + sprite: Objects/Consumable/Drinks/colaglass.rsi + state: icon_empty + metamorphicMaxFillLevels: 5 + metamorphicFillBaseName: fill- + metamorphicChangeColor: false - type: reagent id: RoyRogers @@ -42,6 +48,12 @@ physicalDesc: reagent-physical-desc-fizzy flavor: drgibb color: "#102000" + metamorphicSprite: + sprite: Objects/Consumable/Drinks/dr_gibb_glass.rsi + state: icon_empty + metamorphicMaxFillLevels: 5 + metamorphicFillBaseName: fill- + metamorphicChangeColor: false - type: reagent id: EnergyDrink @@ -58,7 +70,8 @@ factor: 2 - !type:AdjustReagent reagent: Theobromine - amount: 0.05 + amount: 0.1 + fizziness: 0.4 - type: reagent id: GrapeSoda @@ -84,6 +97,7 @@ metamorphicMaxFillLevels: 5 metamorphicFillBaseName: fill- metamorphicChangeColor: true + fizziness: 0 - type: reagent id: LemonLime @@ -102,6 +116,7 @@ physicalDesc: reagent-physical-desc-fizzy flavor: pwrgamesoda color: "#9385bf" + fizziness: 0.9 # gamers crave the fizz - type: reagent id: RootBeer @@ -132,6 +147,7 @@ metamorphicMaxFillLevels: 7 metamorphicFillBaseName: fill- metamorphicChangeColor: false + fizziness: 0.4 - type: reagent id: SolDry @@ -170,6 +186,12 @@ physicalDesc: reagent-physical-desc-fizzy flavor: sodacitrus color: "#a6fa5a" + metamorphicSprite: + sprite: Objects/Consumable/Drinks/space_mountain_wind_glass.rsi + state: icon_empty + metamorphicMaxFillLevels: 5 + metamorphicFillBaseName: fill- + metamorphicChangeColor: false - type: reagent id: SpaceUp @@ -179,6 +201,12 @@ physicalDesc: reagent-physical-desc-fizzy flavor: spaceup color: "#e3e3e37d" + metamorphicSprite: + sprite: Objects/Consumable/Drinks/space-up_glass.rsi + state: icon_empty + metamorphicMaxFillLevels: 6 + metamorphicFillBaseName: fill- + metamorphicChangeColor: false - type: reagent id: Starkist diff --git a/Resources/Prototypes/Reagents/Consumable/Food/food.yml b/Resources/Prototypes/Reagents/Consumable/Food/food.yml index 03ebf7cc32..c9625c663c 100644 --- a/Resources/Prototypes/Reagents/Consumable/Food/food.yml +++ b/Resources/Prototypes/Reagents/Consumable/Food/food.yml @@ -93,6 +93,12 @@ amount: 2 - !type:PlantAdjustPests amount: 2 + metamorphicSprite: + sprite: Objects/Consumable/Drinks/sugarglass.rsi + state: icon_empty + metamorphicMaxFillLevels: 7 + metamorphicFillBaseName: fill- + metamorphicChangeColor: false - type: reagent id: PumpkinFlesh #Just so pumpkins spill orange stuff when smashed @@ -100,4 +106,4 @@ name: reagent-name-pumpkin-flesh desc: reagent-desc-pumpkin-flesh flavor: pumpkin - color: "#fc9300" \ No newline at end of file + color: "#fc9300" diff --git a/Resources/Prototypes/Reagents/Materials/materials.yml b/Resources/Prototypes/Reagents/Materials/materials.yml index fa51608a22..f56a712cd8 100644 --- a/Resources/Prototypes/Reagents/Materials/materials.yml +++ b/Resources/Prototypes/Reagents/Materials/materials.yml @@ -116,3 +116,21 @@ icon: { sprite: Objects/Materials/ore.rsi, state: coal } color: "#404040" price: 0 + +- type: material + id: Bluespace + stackEntity: MaterialBluespace1 + name: materials-bluespace + unit: materials-unit-piece + icon: { sprite: Objects/Materials/materials.rsi, state: bluespace } + color: "#53a9ff" + price: 7.5 + +- type: material + id: Normality + stackEntity: MaterialNormality1 + name: materials-normality + unit: materials-unit-piece + icon: { sprite: Objects/Materials/materials.rsi, state: normality } + color: "#53a9ff" + price: 7.5 diff --git a/Resources/Prototypes/Reagents/Materials/ores.yml b/Resources/Prototypes/Reagents/Materials/ores.yml index 18f1d9ebb3..7b887b2f43 100644 --- a/Resources/Prototypes/Reagents/Materials/ores.yml +++ b/Resources/Prototypes/Reagents/Materials/ores.yml @@ -67,4 +67,22 @@ unit: materials-unit-chunk icon: { sprite: Objects/Materials/ore.rsi, state: salt } color: "#f5e7d7" - price: 0.075 \ No newline at end of file + price: 0.075 + +- type: material + id: RawBluespace + stackEntity: BluespaceOre1 + name: materials-raw-bluespace + unit: materials-unit-piece + icon: { sprite: Objects/Materials/ore.rsi, state: bluespace } + color: "#53a9ff" + price: 7.5 + +- type: material + id: RawNormality + stackEntity: NormalityOre1 + name: materials-raw-normality + unit: materials-unit-piece + icon: { sprite: Objects/Materials/ore.rsi, state: normality } + color: "#53a9ff" + price: 7.5 diff --git a/Resources/Prototypes/Reagents/biological.yml b/Resources/Prototypes/Reagents/biological.yml index 5c0cef314c..4c1341ea7d 100644 --- a/Resources/Prototypes/Reagents/biological.yml +++ b/Resources/Prototypes/Reagents/biological.yml @@ -18,7 +18,7 @@ Drink: effects: - !type:SatiateThirst - factor: 1.5 + factor: 0.5 conditions: - !type:OrganType type: Human @@ -39,7 +39,7 @@ - !type:OrganType type: Vampiric reagent: Protein - amount: 0.15 + amount: 0.125 # See below - !type:AdjustReagent conditions: - !type:OrganType @@ -50,7 +50,11 @@ effects: - !type:AdjustReagent reagent: UncookedAnimalProteins - amount: 0.5 + amount: 0.125 # 0.25 proteins for 1u of blood - restores 0.75 hunger, adds 0.25 blood per unit + conditions: + - !type:OrganType + type: Vampiric + shouldHave: false Medicine: effects: - !type:HealthChange @@ -99,7 +103,7 @@ # Delicious! effects: - !type:SatiateHunger - factor: 1.5 + factor: 1 footstepSound: collection: FootstepBlood params: @@ -123,9 +127,9 @@ # Sweet! effects: - !type:SatiateHunger - factor: 1 + factor: 0.5 - !type:SatiateThirst - factor: 1 + factor: 0.5 footstepSound: collection: FootstepBlood params: diff --git a/Resources/Prototypes/Reagents/botany.yml b/Resources/Prototypes/Reagents/botany.yml index a03c3826a4..cdd19dc308 100644 --- a/Resources/Prototypes/Reagents/botany.yml +++ b/Resources/Prototypes/Reagents/botany.yml @@ -222,6 +222,9 @@ - !type:OrganType type: Rat shouldHave: false + - !type:OrganType + type: Vox + shouldHave: false - !type:ReagentThreshold reagent: Ammonia min: 0.8 @@ -247,6 +250,13 @@ groups: Brute: -5 Burn: -5 + types: + Bloodloss: -5 + - !type:Oxygenate # ammonia displaces nitrogen in vox blood + conditions: + - !type:OrganType + type: Vox + factor: -4 - type: reagent diff --git a/Resources/Prototypes/Reagents/gases.yml b/Resources/Prototypes/Reagents/gases.yml index 9cb73fffb8..06fb2b269b 100644 --- a/Resources/Prototypes/Reagents/gases.yml +++ b/Resources/Prototypes/Reagents/gases.yml @@ -35,6 +35,25 @@ ratios: CarbonDioxide: 1.0 Oxygen: -1.0 + - !type:HealthChange + conditions: + - !type:OrganType + type: Vox + scaleByQuantity: true + ignoreResistances: true + damage: + types: + Poison: + 7 + - !type:AdjustAlert + alertType: Toxins + conditions: + - !type:ReagentThreshold + min: 0.5 + - !type:OrganType + type: Vox + clear: true + time: 5 - type: reagent id: Plasma @@ -142,6 +161,9 @@ - !type:OrganType type: Plant shouldHave: false + - !type:OrganType + type: Vox + shouldHave: false # Don't want people to get toxin damage from the gas they just # exhaled, right? - !type:ReagentThreshold @@ -194,7 +216,7 @@ - !type:OrganType type: Vox ratios: - CarbonDioxide: 1.0 + Ammonia: 1.0 Nitrogen: -1.0 - !type:ModifyLungGas conditions: diff --git a/Resources/Prototypes/Reagents/medicine.yml b/Resources/Prototypes/Reagents/medicine.yml index dfe96359e6..12c694e09e 100644 --- a/Resources/Prototypes/Reagents/medicine.yml +++ b/Resources/Prototypes/Reagents/medicine.yml @@ -1120,6 +1120,27 @@ conditions: - !type:ReagentThreshold min: 12 + +- type: reagent + id: Opporozidone #Name based of an altered version of the startreck chem "Opporozine" + name: reagent-name-opporozidone + group: Medicine + desc: reagent-desc-opporozidone + physicalDesc: reagent-physical-desc-sickly + flavor: acid + color: "#b5e36d" + worksOnTheDead: true + metabolisms: + Medicine: + effects: + - !type:ReduceRotting + seconds: 20 + conditions: + #Patient must be dead and in a cryo tube (or something cold) + - !type:Temperature + max: 150.0 + - !type:MobStateCondition + mobstate: Dead - type: reagent id: Necrosol @@ -1171,3 +1192,67 @@ Heat: -3.0 Shock: -3.0 Caustic: -1.0 + +- type: reagent + id : Mannitol # currently this is just a way to create psicodine + name: reagent-name-mannitol + group: Medicine + desc: reagent-desc-mannitol + physicalDesc: reagent-physical-desc-opaque + flavor: sweet + color: "#A0A0A0" + metabolisms: + Medicine: + effects: + - !type:PopupMessage + conditions: + - !type:ReagentThreshold + min: 15 + type: Local + visualType: Medium + messages: [ "mannitol-effect-enlightened" ] + probability: 0.2 + +- type: reagent + id: Psicodine + name: reagent-name-psicodine + group: Medicine + desc: reagent-desc-psicodine + physicalDesc: reagent-physical-desc-shiny + flavor: bitter + color: "#07E79E" + metabolisms: + Medicine: + effects: + - !type:HealthChange + conditions: + - !type:ReagentThreshold + min: 30 + damage: + types: + Poison: 2 + - !type:GenericStatusEffect + conditions: + - !type:ReagentThreshold + min: 30 + key: SeeingRainbows + component: SeeingRainbows + type: Add + time: 8 + refresh: false + - !type:GenericStatusEffect + key: Jitter + time: 2.0 + type: Remove + - !type:GenericStatusEffect + key: Drunk + time: 6.0 + type: Remove + - !type:PopupMessage # we dont have sanity/mood so this will have to do + type: Local + visualType: Medium + messages: + - "psicodine-effect-fearless" + - "psicodine-effect-anxieties-wash-away" + - "psicodine-effect-at-peace" + probability: 0.2 diff --git a/Resources/Prototypes/Reagents/narcotics.yml b/Resources/Prototypes/Reagents/narcotics.yml index 2ab323c309..ebb8b0fc43 100644 --- a/Resources/Prototypes/Reagents/narcotics.yml +++ b/Resources/Prototypes/Reagents/narcotics.yml @@ -182,25 +182,6 @@ time: 16 refresh: false -- type: reagent - id: THCOil # deprecated in favor of THC, preserved here for forks - name: reagent-name-thc-oil - group: Narcotics - desc: reagent-desc-thc-oil - physicalDesc: reagent-physical-desc-skunky - flavor: bitter - flavorMinimum: 0.05 - color: "#DAA520" - metabolisms: - Narcotic: - effects: - - !type:GenericStatusEffect - key: SeeingRainbows - component: SeeingRainbows - type: Add - time: 16 - refresh: false - - type: reagent id: Nicotine name: reagent-name-nicotine @@ -212,6 +193,11 @@ plantMetabolism: - !type:PlantAdjustHealth amount: -5 + metabolisms: + Narcotic: + effects: + - !type:ChemAddMoodlet + moodPrototype: NicotineBenefit # TODO: Replace these nonstandardized effects with generic brain damage - type: reagent @@ -260,11 +246,17 @@ type: Add time: 5 refresh: false - - !type:ChemRerollPsionic #Nyano - Summary: lets the imbiber become psionic. + - !type:ChemRerollPsionic #Nyano - Summary: lets the imbiber become psionic. conditions: - !type:ReagentThreshold reagent: SpaceDrugs min: 15 + - !type:ChemAddMoodlet + moodPrototype: SpaceDrugsBenefit + conditions: + - !type:ReagentThreshold + reagent: SpaceDrugs + min: 5 - type: reagent id: Bananadine @@ -412,3 +404,53 @@ conditions: - !type:ReagentThreshold min: 20 + +- type: reagent + id: Happiness + name: reagent-name-happiness + group: Narcotics + desc: reagent-desc-happiness + physicalDesc: reagent-physical-desc-soothing + flavor: paintthinner + color: "#EE35FF" + metabolisms: + Narcotic: + effects: + - !type:Emote + emote: Laugh + showInChat: true + probability: 0.1 + conditions: + - !type:ReagentThreshold + max: 20 + - !type:Emote + emote: Whistle + showInChat: true + probability: 0.1 + conditions: + - !type:ReagentThreshold + max: 20 + - !type:Emote + emote: Crying + showInChat: true + probability: 0.1 + conditions: + - !type:ReagentThreshold + min: 20 + - !type:PopupMessage # we dont have sanity/mood so this will have to do + type: Local + visualType: Medium + messages: + - "psicodine-effect-fearless" + - "psicodine-effect-anxieties-wash-away" + - "psicodine-effect-at-peace" + probability: 0.2 + conditions: + - !type:ReagentThreshold + max: 20 + - !type:GenericStatusEffect + key: SeeingRainbows + component: SeeingRainbows + type: Add + time: 5 + refresh: false diff --git a/Resources/Prototypes/Reagents/psionic.yml b/Resources/Prototypes/Reagents/psionic.yml index 3e8415fc0e..f17a84047a 100644 --- a/Resources/Prototypes/Reagents/psionic.yml +++ b/Resources/Prototypes/Reagents/psionic.yml @@ -92,6 +92,12 @@ - !type:GenericStatusEffect key: SlurredSpeech component: TelepathicRepeater + - !type:ChemAddMoodlet + moodPrototype: LotoTranscendence + conditions: + - !type:ReagentThreshold + reagent: LotophagoiOil + min: 5 - type: reagent id: Ectoplasm diff --git a/Resources/Prototypes/Reagents/toxins.yml b/Resources/Prototypes/Reagents/toxins.yml index 661e1b7dd1..5d29f024ce 100644 --- a/Resources/Prototypes/Reagents/toxins.yml +++ b/Resources/Prototypes/Reagents/toxins.yml @@ -486,7 +486,6 @@ - !type:OrganType type: Animal shouldHave: false - reagent: Protein type: Local visualType: MediumCaution messages: [ "generic-reagent-effect-sick" ] @@ -647,3 +646,23 @@ - !type:Electrocute probability: 0.8 +- type: reagent + id: Lipolicide + name: reagent-name-lipolicide + group: Toxins + desc: reagent-desc-lipolicide + physicalDesc: reagent-physical-desc-strong-smelling + flavor: mothballs #why does weightloss juice taste like mothballs + color: "#F0FFF0" + metabolisms: + Poison: + effects: + - !type:HealthChange + conditions: + - !type:Hunger + max: 50 + damage: + types: + Poison: 2 + - !type:SatiateHunger + factor: -6 diff --git a/Resources/Prototypes/DeltaV/Recipes/Construction/Graphs/clothing/prescription_huds.yml b/Resources/Prototypes/Recipes/Construction/Graphs/clothing/prescriptionhuds.yml similarity index 100% rename from Resources/Prototypes/DeltaV/Recipes/Construction/Graphs/clothing/prescription_huds.yml rename to Resources/Prototypes/Recipes/Construction/Graphs/clothing/prescriptionhuds.yml diff --git a/Resources/Prototypes/Recipes/Construction/Graphs/clothing/quiver.yml b/Resources/Prototypes/Recipes/Construction/Graphs/clothing/quiver.yml new file mode 100644 index 0000000000..10736a5876 --- /dev/null +++ b/Resources/Prototypes/Recipes/Construction/Graphs/clothing/quiver.yml @@ -0,0 +1,19 @@ +- type: constructionGraph + id: Quiver + start: start + graph: + - node: start + edges: + - to: Quiver + steps: + - material: Cable + amount: 2 + doAfter: 1 + - material: Cloth + amount: 5 + doAfter: 2 + - material: WoodPlank + amount: 1 + doAfter: 2 + - node: Quiver + entity: ClothingBeltQuiver diff --git a/Resources/Prototypes/Recipes/Construction/Graphs/structures/glassbox.yml b/Resources/Prototypes/Recipes/Construction/Graphs/structures/glassbox.yml new file mode 100644 index 0000000000..081f22ea8d --- /dev/null +++ b/Resources/Prototypes/Recipes/Construction/Graphs/structures/glassbox.yml @@ -0,0 +1,160 @@ +- type: constructionGraph + id: GlassBox + start: start + graph: + - node: start + actions: + - !type:DeleteEntity + edges: + - to: boxMissingWires + completed: + - !type:SetAnchor + value: false + steps: + - material: WoodPlank + amount: 10 + doAfter: 5 + + - node: boxMissingWires + entity: GlassBoxFrame + edges: + - to: boxMissingTrigger + conditions: + - !type:EntityAnchored + steps: + - material: Cable + amount: 2 + doAfter: 0.5 + + - to: start + steps: + - tool: Prying + doAfter: 5 + completed: + - !type:SpawnPrototype + prototype: MaterialWoodPlank1 + amount: 10 + + - node: boxMissingTrigger + edges: + - to: boxTriggerUnsecured + conditions: + - !type:EntityAnchored + steps: + - tag: SignalTrigger + name: a Signal Trigger + icon: + sprite: Objects/Devices/signaltrigger.rsi + state: signaltrigger + doAfter: 0.5 + + - to: boxMissingWires + conditions: + - !type:EntityAnchored + steps: + - tool: Cutting + doAfter: 0.25 + completed: + - !type:SpawnPrototype + prototype: CableApcStack1 + amount: 2 + + - node: boxTriggerUnsecured + edges: + - to: boxMissingRGlass + conditions: + - !type:EntityAnchored + steps: + - tool: Screwing + doAfter: 0.5 + + - to: boxMissingTrigger + conditions: + - !type:EntityAnchored + steps: + - tool: Prying + doAfter: 0.5 + completed: + - !type:SpawnPrototype + prototype: SignalTrigger + amount: 1 + + - node: boxMissingRGlass + edges: + - to: boxRGlassUnsecured + conditions: + - !type:EntityAnchored + steps: + - material: ReinforcedGlass + amount: 5 + doAfter: 2.5 + + - to: boxTriggerUnsecured + conditions: + - !type:EntityAnchored + steps: + - tool: Screwing + doAfter: 0.5 + + - node: boxRGlassUnsecured + edges: + - to: glassBox + conditions: + - !type:EntityAnchored + steps: + - tool: Screwing + doAfter: 0.5 + + - to: boxMissingRGlass + conditions: + - !type:EntityAnchored + steps: + - tool: Prying + doAfter: 2 + completed: + - !type:SpawnPrototype + prototype: SheetRGlass1 + amount: 5 + + - node: brokenGlassBox + entity: GlassBoxBroken + edges: + - to: boxMissingWires + steps: + - tool: Prying + doAfter: 2 + completed: + - !type:SpawnPrototype + prototype: ShardGlassReinforced + amount: 1 + + - node: glassBox + entity: GlassBoxLaser + edges: + - to: boxMissingWires + steps: + - tool: Screwing + doAfter: 4 + - tool: Pulsing + doAfter: 2 + - tool: Cutting + doAfter: 2 + - tool: Screwing + doAfter: 2 + - tool: Welding + doAfter: 10 + - tool: Anchoring + doAfter: 2 + - tool: Prying + doAfter: 2 + completed: + - !type:EmptyAllContainers + - !type:SpawnPrototype + prototype: CableApcStack1 + amount: 2 + - !type:SpawnPrototype + prototype: SignalTrigger + amount: 1 + - !type:SpawnPrototype + prototype: SheetRGlass1 + amount: 5 diff --git a/Resources/Prototypes/Recipes/Construction/Graphs/structures/plastic_flaps.yml b/Resources/Prototypes/Recipes/Construction/Graphs/structures/plastic_flaps.yml index 776c1491a6..781dd4aa87 100644 --- a/Resources/Prototypes/Recipes/Construction/Graphs/structures/plastic_flaps.yml +++ b/Resources/Prototypes/Recipes/Construction/Graphs/structures/plastic_flaps.yml @@ -33,16 +33,6 @@ - tool: Welding doAfter: 5 - - to: airtightFlaps - completed: - - !type:SnapToGrid { } - steps: - - material: Plastic - amount: 5 - doAfter: 5 - - tool: Screwing - doAfter: 5 - - node: opaqueFlaps entity: PlasticFlapsOpaque edges: @@ -54,44 +44,3 @@ steps: - tool: Anchoring doAfter: 10 - - - to: airtightopaqueFlaps - completed: - - !type:SnapToGrid { } - steps: - - material: Plastic - amount: 5 - doAfter: 5 - - tool: Screwing - doAfter: 5 - - - node: airtightFlaps - entity: PlasticFlapsAirtightClear - edges: - - to: plasticFlaps - completed: - - !type:SpawnPrototype - prototype: SheetPlastic - amount: 5 - steps: - - tool: Screwing - doAfter: 10 - - - to: airtightopaqueFlaps #test - completed: - - !type:SnapToGrid { } - steps: - - tool: Welding - doAfter: 5 - - - node: airtightopaqueFlaps - entity: PlasticFlapsAirtightOpaque - edges: - - to: opaqueFlaps - completed: - - !type:SpawnPrototype - prototype: SheetPlastic - amount: 5 - steps: - - tool: Screwing - doAfter: 10 diff --git a/Resources/Prototypes/Recipes/Construction/Graphs/structures/windowdirectional.yml b/Resources/Prototypes/Recipes/Construction/Graphs/structures/windowdirectional.yml index 96f009fabb..effddd7ca3 100644 --- a/Resources/Prototypes/Recipes/Construction/Graphs/structures/windowdirectional.yml +++ b/Resources/Prototypes/Recipes/Construction/Graphs/structures/windowdirectional.yml @@ -28,6 +28,7 @@ - material: ReinforcedPlasmaGlass amount: 1 doAfter: 3 + - to: uraniumWindowDirectional steps: - material: UraniumGlass @@ -136,6 +137,7 @@ doAfter: 2 - tool: Anchoring doAfter: 3 + - node: uraniumWindowDirectional entity: UraniumWindowDirectional edges: diff --git a/Resources/Prototypes/Recipes/Construction/clothing.yml b/Resources/Prototypes/Recipes/Construction/clothing.yml index 54218d2822..ba0c0d6c59 100644 --- a/Resources/Prototypes/Recipes/Construction/clothing.yml +++ b/Resources/Prototypes/Recipes/Construction/clothing.yml @@ -107,3 +107,14 @@ description: A roll of treated canvas used for wrapping claws or paws. icon: { sprite: Clothing/Shoes/Misc/clothWrap.rsi, state: icon } objectType: Item + +- type: construction + name: quiver + id: ClothingBeltQuiver + graph: Quiver + startNode: start + targetNode: Quiver + category: construction-category-clothing + description: Can hold up to 15 arrows, and fits snug around your waist. + icon: { sprite: Clothing/Belt/quiver.rsi, state: icon } + objectType: Item diff --git a/Resources/Prototypes/Recipes/Construction/storage.yml b/Resources/Prototypes/Recipes/Construction/storage.yml index 41abf881b6..c8edebc509 100644 --- a/Resources/Prototypes/Recipes/Construction/storage.yml +++ b/Resources/Prototypes/Recipes/Construction/storage.yml @@ -49,3 +49,21 @@ canBuildInImpassable: false conditions: - !type:TileNotBlocked + +# ItemCabinets +- type: construction + id: ShowCase + name: showcase + description: A sturdy showcase for an expensive exhibit. + graph: GlassBox + startNode: start + targetNode: glassBox + category: construction-category-storage + icon: + sprite: Structures/Storage/glassbox.rsi + state: icon + objectType: Structure + placementMode: SnapgridCenter + canBuildInImpassable: false + conditions: + - !type:TileNotBlocked diff --git a/Resources/Prototypes/Recipes/Construction/structures.yml b/Resources/Prototypes/Recipes/Construction/structures.yml index 658d4e1c9a..417c24b837 100644 --- a/Resources/Prototypes/Recipes/Construction/structures.yml +++ b/Resources/Prototypes/Recipes/Construction/structures.yml @@ -688,6 +688,42 @@ objectType: Structure placementMode: SnapgridCenter +- type: construction + name: directional uranium window + id: UraniumWindowDirectional + graph: WindowDirectional + startNode: start + targetNode: uraniumWindowDirectional + category: construction-category-structures + canBuildInImpassable: true + description: Clear and tougher than regular glass, with added RadAbsorb to protect you from deadly radiation. + conditions: + - !type:EmptyOrWindowValidInTile + - !type:NoWindowsInTile + icon: + sprite: Structures/Windows/directional.rsi + state: uranium_window + objectType: Structure + placementMode: SnapgridCenter + +- type: construction + name: directional reinforced uranium window + id: UraniumReinforcedWindowDirectional + graph: WindowDirectional + startNode: start + targetNode: uraniumReinforcedWindowDirectional + category: construction-category-structures + canBuildInImpassable: true + description: Clear and much tougher than regular glass, with added RadAbsorb to protect you from deadly radiation. + conditions: + - !type:EmptyOrWindowValidInTile + - !type:NoWindowsInTile + icon: + sprite: Structures/Windows/directional.rsi + state: uranium_reinforced_window + objectType: Structure + placementMode: SnapgridCenter + - type: construction name: firelock id: Firelock @@ -1552,23 +1588,6 @@ conditions: - !type:TileNotBlocked -- type: construction - name: airtight plastic flaps - id: PlasticFlapsAirtight - graph: PlasticFlapsGraph - startNode: start - targetNode: airtightFlaps - category: construction-category-structures - placementMode: SnapgridCenter - description: An airtight plastic flap to let items through and keep people out. - objectType: Structure - canBuildInImpassable: false - icon: - sprite: Structures/plastic_flaps.rsi - state: plasticflaps - conditions: - - !type:TileNotBlocked - - type: construction name: opaque plastic flaps id: PlasticFlapsOpaque @@ -1586,23 +1605,6 @@ conditions: - !type:TileNotBlocked -- type: construction - name: airtight opaque plastic flaps - id: PlasticFlapsAirtightOpaque - graph: PlasticFlapsGraph - startNode: start - targetNode: airtightopaqueFlaps - category: construction-category-structures - placementMode: SnapgridCenter - description: An opaque, airtight plastic flap to let items through and keep people out. - objectType: Structure - canBuildInImpassable: false - icon: - sprite: Structures/plastic_flaps.rsi - state: plasticflaps - conditions: - - !type:TileNotBlocked - - type: construction name: bananium clown statue id: BananiumClownStatue diff --git a/Resources/Prototypes/Recipes/Cooking/meal_recipes.yml b/Resources/Prototypes/Recipes/Cooking/meal_recipes.yml index 2f280f6e46..f3176cc5e7 100644 --- a/Resources/Prototypes/Recipes/Cooking/meal_recipes.yml +++ b/Resources/Prototypes/Recipes/Cooking/meal_recipes.yml @@ -135,7 +135,7 @@ FoodBreadBun: 1 FoodMeat: 2 FoodCheeseSlice: 2 - FoodChili: 1 + FoodChiliPepper: 1 FoodCabbage: 1 CrayonGreen: 1 Flare: 1 @@ -177,7 +177,7 @@ solids: FoodBreadBun: 1 FoodMeat: 1 - FoodChili: 3 + FoodChiliPepper: 3 - type: microwaveMealRecipe id: RecipeGhostBurger @@ -675,7 +675,7 @@ solids: FoodRiceBoiled: 1 FoodMeatCutlet: 3 - FoodChili: 2 + FoodChiliPepper: 2 - type: microwaveMealRecipe id: RecipeEggRice @@ -894,7 +894,7 @@ solids: FoodBowlBig: 1 FoodBungo: 2 - FoodChili: 1 + FoodChiliPepper: 1 #Pies @@ -965,7 +965,7 @@ time: 15 solids: FoodDoughPie: 1 - FoodChilly: 3 + FoodChillyPepper: 3 FoodPlateTin: 1 - type: microwaveMealRecipe @@ -1063,7 +1063,7 @@ solids: FoodDough: 1 FoodCheeseSlice: 2 - FoodChili: 1 + FoodChiliPepper: 1 FoodMeatFish: 2 - type: microwaveMealRecipe @@ -1513,7 +1513,7 @@ time: 20 solids: FoodBowlBig: 1 - FoodChili: 1 + FoodChiliPepper: 1 FoodMeatCutlet: 1 FoodOnionSlice: 1 FoodTomato: 1 @@ -1546,7 +1546,7 @@ time: 30 solids: FoodBowlBig: 1 - FoodChili: 1 + FoodChiliPepper: 1 FoodMeatCutlet: 1 FoodOnionSlice: 1 FoodTomato: 1 @@ -1561,7 +1561,7 @@ #reagents: #blackpepper: 5 solids: - FoodChili: 1 + FoodChiliPepper: 1 FoodCheeseSlice: 2 - type: microwaveMealRecipe @@ -1581,7 +1581,7 @@ result: FoodMealEnchiladas time: 20 solids: - FoodChili: 2 + FoodChiliPepper: 2 FoodMeatCutlet: 1 FoodCorn: 1 @@ -1712,6 +1712,14 @@ solids: LeavesCannabis: 1 +- type: microwaveMealRecipe + id: RecipeDriedCannabisRainbow + name: dried rainbow cannabis leaves recipe + result: LeavesCannabisRainbowDried + time: 10 + solids: + LeavesCannabisRainbow: 1 + - type: microwaveMealRecipe id: RecipeTrashBakedBananaPeel name: baked banana peel recipe @@ -1749,7 +1757,7 @@ result: FoodMeatHawaiianKebab time: 5 solids: - FoodChili: 1 + FoodChiliPepper: 1 FoodMeatCutlet: 1 FoodPineappleSlice: 1 FoodKebabSkewer: 1 @@ -1760,7 +1768,7 @@ result: FoodMeatFiestaKebab time: 5 solids: - FoodChili: 1 + FoodChiliPepper: 1 FoodCorn: 1 FoodMeatCutlet: 1 FoodTomato: 1 diff --git a/Resources/Prototypes/Recipes/Crafting/Graphs/bots/honkbot.yml b/Resources/Prototypes/Recipes/Crafting/Graphs/bots/honkbot.yml index ff3f6d2e2a..6806aacc24 100644 --- a/Resources/Prototypes/Recipes/Crafting/Graphs/bots/honkbot.yml +++ b/Resources/Prototypes/Recipes/Crafting/Graphs/bots/honkbot.yml @@ -6,17 +6,11 @@ edges: - to: bot steps: - - tag: BoxHug - icon: - sprite: Objects/Storage/boxes.rsi - state: box_hug - name: box of hugs - - tag: ClownRubberStamp + - tag: HappyHonk icon: - sprite: Objects/Misc/stamps.rsi - state: stamp-clown - name: clown's rubber stamp - doAfter: 2 + sprite: Objects/Storage/Happyhonk/clown.rsi + state: box + name: happy honk meal - tag: BikeHorn icon: sprite: Objects/Fun/bikehorn.rsi @@ -45,21 +39,15 @@ edges: - to: bot steps: - - tag: HappyHonk + - tag: CluwneHappyHonk icon: - sprite: Objects/Storage/Happyhonk/clown.rsi + sprite: Objects/Storage/Happyhonk/cluwne.rsi state: box - name: happy honk meal - - tag: ClownRubberStamp - icon: - sprite: Objects/Misc/stamps.rsi - state: stamp-clown - name: clown's rubber stamp - doAfter: 2 + name: woeful cluwne meal - tag: CluwneHorn icon: - sprite: Objects/Fun/cluwnehorn.rsi - state: icon + sprite: Objects/Fun/cluwnehorn.rsi + state: icon name: broken bike horn doAfter: 2 - tag: ProximitySensor diff --git a/Resources/Prototypes/Recipes/Crafting/Graphs/bots/supplybot.yml b/Resources/Prototypes/Recipes/Crafting/Graphs/bots/supplybot.yml new file mode 100644 index 0000000000..efabb849bb --- /dev/null +++ b/Resources/Prototypes/Recipes/Crafting/Graphs/bots/supplybot.yml @@ -0,0 +1,23 @@ +- type: constructionGraph + id: SupplyBot + start: start + graph: + - node: start + edges: + - to: bot + steps: + - tag: ProximitySensor + icon: + sprite: Objects/Misc/proximity_sensor.rsi + state: icon + name: proximity sensor + - tag: BorgHead + icon: + sprite: Objects/Specific/Robotics/cyborg_parts.rsi + state: borg_head + name: borg head + doAfter: 1 + - material: Steel + amount: 10 + - node: bot + entity: MobSupplyBot diff --git a/Resources/Prototypes/Recipes/Crafting/Graphs/smokeables.yml b/Resources/Prototypes/Recipes/Crafting/Graphs/smokeables.yml index 00900a95ef..419d7bff33 100644 --- a/Resources/Prototypes/Recipes/Crafting/Graphs/smokeables.yml +++ b/Resources/Prototypes/Recipes/Crafting/Graphs/smokeables.yml @@ -12,6 +12,21 @@ doAfter: 2 - node: joint entity: Joint + +- type: constructionGraph + id: smokeableJointRainbow + start: start + graph: + - node: start + edges: + - to: jointRainbow + steps: + - material: PaperRolling + - material: CigaretteFilter + - material: GroundCannabisRainbow + doAfter: 2 + - node: jointRainbow + entity: JointRainbow - type: constructionGraph id: smokeableBlunt @@ -27,6 +42,20 @@ - node: blunt entity: Blunt +- type: constructionGraph + id: smokeableBluntRainbow + start: start + graph: + - node: start + edges: + - to: bluntRainbow + steps: + - material: LeavesTobaccoDried + - material: GroundCannabisRainbow + doAfter: 2 + - node: bluntRainbow + entity: BluntRainbow + - type: constructionGraph id: smokeableCigarette start: start @@ -56,6 +85,20 @@ - node: ground entity: GroundCannabis +- type: constructionGraph + id: smokeableGroundCannabisRainbow + start: start + graph: + - node: start + edges: + - to: groundRainbow + steps: + - material: LeavesCannabisRainbowDried + amount: 2 + doAfter: 5 + - node: groundRainbow + entity: GroundCannabisRainbow + - type: constructionGraph id: smokeableGroundTobacco start: start diff --git a/Resources/Prototypes/Recipes/Crafting/Graphs/storage/tallbox.yml b/Resources/Prototypes/Recipes/Crafting/Graphs/storage/tallbox.yml index 7e450513af..e72c56ff44 100644 --- a/Resources/Prototypes/Recipes/Crafting/Graphs/storage/tallbox.yml +++ b/Resources/Prototypes/Recipes/Crafting/Graphs/storage/tallbox.yml @@ -19,8 +19,6 @@ conditions: - !type:StorageWelded welded: false - - !type:Locked - locked: false completed: - !type:SpawnPrototype prototype: SheetSteel1 diff --git a/Resources/Prototypes/Recipes/Crafting/bots.yml b/Resources/Prototypes/Recipes/Crafting/bots.yml index 9a70a19c86..3031f4a780 100644 --- a/Resources/Prototypes/Recipes/Crafting/bots.yml +++ b/Resources/Prototypes/Recipes/Crafting/bots.yml @@ -62,3 +62,16 @@ icon: sprite: Mobs/Silicon/Bots/mimebot.rsi state: mimebot + +- type: construction + name: supplybot + id: supplybot + graph: SupplyBot + startNode: start + targetNode: bot + category: construction-category-utilities + objectType: Item + description: This bot can be loaded with cargo to make deliveries. + icon: + sprite: Mobs/Silicon/Bots/supplybot.rsi + state: supplybot diff --git a/Resources/Prototypes/Recipes/Crafting/smokeables.yml b/Resources/Prototypes/Recipes/Crafting/smokeables.yml index 6d7d4e30bc..e4280f6d66 100644 --- a/Resources/Prototypes/Recipes/Crafting/smokeables.yml +++ b/Resources/Prototypes/Recipes/Crafting/smokeables.yml @@ -8,6 +8,17 @@ description: "A roll of dried plant matter wrapped in thin paper." icon: { sprite: Objects/Consumable/Smokeables/Cannabis/joint.rsi, state: unlit-icon } objectType: Item + +- type: construction + name: rainbow joint + id: smokeableJointRainbow + graph: smokeableJointRainbow + startNode: start + targetNode: jointRainbow + category: construction-category-misc + description: "A roll of dried plant matter wrapped in thin paper." + icon: { sprite: Objects/Consumable/Smokeables/Cannabis/joint.rsi, state: unlit-icon } + objectType: Item - type: construction name: blunt @@ -20,6 +31,17 @@ icon: { sprite: Objects/Consumable/Smokeables/Cannabis/blunt.rsi, state: unlit-icon } objectType: Item +- type: construction + name: rainbow blunt + id: smokeableBluntRainbow + graph: smokeableBluntRainbow + startNode: start + targetNode: bluntRainbow + category: construction-category-misc + description: "A roll of dried plant matter wrapped in a dried tobacco leaf." + icon: { sprite: Objects/Consumable/Smokeables/Cannabis/blunt.rsi, state: unlit-icon } + objectType: Item + - type: construction name: cigarette id: smokeableCigarette @@ -45,6 +67,17 @@ # color: darkgreen objectType: Item +- type: construction + name: ground rainbow cannabis + id: smokeableGroundCannabisRainbow + graph: smokeableGroundCannabisRainbow + startNode: start + targetNode: groundRainbow + category: construction-category-misc + description: "Ground rainbow cannabis, ready to take you on a trip." + icon: { sprite: Objects/Specific/Hydroponics/rainbow_cannabis.rsi, state: powderpile_rainbow } + objectType: Item + - type: construction name: ground tobacco id: smokeableGroundTobacco diff --git a/Resources/Prototypes/Recipes/Lathes/Parts.yml b/Resources/Prototypes/Recipes/Lathes/Parts.yml index 90cff2174d..4534bf6097 100644 --- a/Resources/Prototypes/Recipes/Lathes/Parts.yml +++ b/Resources/Prototypes/Recipes/Lathes/Parts.yml @@ -1,3 +1,4 @@ +#Rating 1 - type: latheRecipe id: CapacitorStockPart result: CapacitorStockPart @@ -24,3 +25,93 @@ materials: Steel: 50 Plastic: 50 + +#Rating 2 +- type: latheRecipe + id: AdvancedCapacitorStockPart + result: AdvancedCapacitorStockPart + completetime: 3 + materials: + Steel: 80 + Plastic: 80 + Plasma: 75 + +- type: latheRecipe + id: AdvancedMatterBinStockPart + result: AdvancedMatterBinStockPart + completetime: 3 + materials: + Steel: 80 + Plastic: 80 + Plasma: 75 + +- type: latheRecipe + id: NanoManipulatorStockPart + result: NanoManipulatorStockPart + completetime: 3 + materials: + Steel: 80 + Plastic: 80 + Plasma: 75 + +#Rating 3 +- type: latheRecipe + id: SuperCapacitorStockPart + result: SuperCapacitorStockPart + completetime: 3 + materials: + Steel: 150 + Plastic: 150 + Plasma: 75 + Gold: 75 + +- type: latheRecipe + id: SuperMatterBinStockPart + result: SuperMatterBinStockPart + completetime: 3 + materials: + Steel: 150 + Plastic: 150 + Plasma: 75 + Gold: 75 + +- type: latheRecipe + id: PicoManipulatorStockPart + result: PicoManipulatorStockPart + completetime: 3 + materials: + Steel: 150 + Plastic: 150 + Plasma: 75 + Gold: 75 + +#Rating 4 +- type: latheRecipe + id: BluespaceCapacitorStockPart + result: BluespaceCapacitorStockPart + completetime: 3 + materials: + Steel: 150 + Plastic: 150 + Gold: 75 + Bluespace: 300 + +- type: latheRecipe + id: BluespaceMatterBinStockPart + result: BluespaceMatterBinStockPart + completetime: 3 + materials: + Steel: 150 + Plastic: 150 + Gold: 75 + Bluespace: 300 + +- type: latheRecipe + id: BluespaceManipulatorStockPart + result: BluespaceManipulatorStockPart + completetime: 3 + materials: + Steel: 150 + Plastic: 150 + Gold: 75 + Bluespace: 300 diff --git a/Resources/Prototypes/Recipes/Lathes/clothing.yml b/Resources/Prototypes/Recipes/Lathes/clothing.yml index 19b2fbb883..729f20e979 100644 --- a/Resources/Prototypes/Recipes/Lathes/clothing.yml +++ b/Resources/Prototypes/Recipes/Lathes/clothing.yml @@ -706,8 +706,16 @@ Durathread: 300 - type: latheRecipe - id: ClothingOuterWinterHoS - result: ClothingOuterWinterHoS + id: ClothingOuterWinterHoSUnarmored + result: ClothingOuterWinterHoSUnarmored + completetime: 3.2 + materials: + Cloth: 500 + Durathread: 300 + +- type: latheRecipe + id: ClothingOuterWinterWardenUnarmored + result: ClothingOuterWinterWardenUnarmored completetime: 3.2 materials: Cloth: 500 diff --git a/Resources/Prototypes/Recipes/Lathes/cooking.yml b/Resources/Prototypes/Recipes/Lathes/cooking.yml index a8836ff392..577d8299da 100644 --- a/Resources/Prototypes/Recipes/Lathes/cooking.yml +++ b/Resources/Prototypes/Recipes/Lathes/cooking.yml @@ -49,6 +49,13 @@ materials: Glass: 100 +- type: latheRecipe + id: CustomDrinkJug + result: CustomDrinkJug + completetime: 2 + materials: + Plastic: 200 + - type: latheRecipe id: FoodPlate result: FoodPlate diff --git a/Resources/Prototypes/Recipes/Lathes/devices.yml b/Resources/Prototypes/Recipes/Lathes/devices.yml index d41b5fdce8..2b0d6fa44f 100644 --- a/Resources/Prototypes/Recipes/Lathes/devices.yml +++ b/Resources/Prototypes/Recipes/Lathes/devices.yml @@ -76,7 +76,7 @@ Steel: 100 Plastic: 200 Glass: 100 - + - type: latheRecipe id: SignallerAdvanced result: RemoteSignallerAdvanced @@ -178,15 +178,23 @@ Plasma: 1000 #DeltaV: Bluespace Exists so less plasma used, no uranium Bluespace: 200 #DeltaV: Bluespace Exists -#- type: latheRecipe #DeltaV - LRP -# id: WeaponForceGun -# result: WeaponForceGun -# category: Tools -# completetime: 5 -# materials: -# Steel: 500 -# Glass: 400 -# Silver: 200 +- type: latheRecipe + id: ClothingMaskWeldingGas + result: ClothingMaskWeldingGas + completetime: 3 + materials: + Steel: 600 + Glass: 200 + +- type: latheRecipe + id: WeaponForceGun + result: WeaponForceGun + category: Tools + completetime: 5 + materials: + Steel: 500 + Glass: 400 + Silver: 200 - type: latheRecipe id: DeviceQuantumSpinInverter @@ -207,22 +215,22 @@ Glass: 500 Silver: 100 -#- type: latheRecipe #DeltaV - LRP -# id: WeaponTetherGun -# result: WeaponTetherGun -# category: Tools -# completetime: 5 -# materials: -# Steel: 500 -# Glass: 400 -# Silver: 100 - -#- type: latheRecipe #DeltaV - LRP -# id: WeaponGrapplingGun -# result: WeaponGrapplingGun -# category: Tools -# completetime: 5 -# materials: -# Steel: 500 -# Glass: 400 -# Gold: 100 +- type: latheRecipe + id: WeaponTetherGun + result: WeaponTetherGun + category: Tools + completetime: 5 + materials: + Steel: 500 + Glass: 400 + Silver: 100 + +- type: latheRecipe + id: WeaponGrapplingGun + result: WeaponGrapplingGun + category: Tools + completetime: 5 + materials: + Steel: 500 + Glass: 400 + Gold: 100 diff --git a/Resources/Prototypes/Recipes/Lathes/electronics.yml b/Resources/Prototypes/Recipes/Lathes/electronics.yml index 12b5bedf10..af258ad31b 100644 --- a/Resources/Prototypes/Recipes/Lathes/electronics.yml +++ b/Resources/Prototypes/Recipes/Lathes/electronics.yml @@ -114,7 +114,7 @@ completetime: 4 materials: Steel: 100 - Glass: 900 + Glass: 500 Gold: 100 - type: latheRecipe @@ -133,7 +133,7 @@ completetime: 4 materials: Steel: 150 - Glass: 900 + Glass: 500 Gold: 50 - type: latheRecipe @@ -143,7 +143,7 @@ completetime: 4 materials: Steel: 150 - Glass: 900 + Glass: 500 Gold: 50 - type: latheRecipe @@ -153,7 +153,7 @@ completetime: 4 materials: Steel: 100 - Glass: 900 + Glass: 500 - type: latheRecipe id: PortableScrubberMachineCircuitBoard @@ -162,7 +162,7 @@ completetime: 4 materials: Steel: 150 - Glass: 900 + Glass: 500 Gold: 50 - type: latheRecipe @@ -172,7 +172,7 @@ completetime: 4 materials: Steel: 150 - Glass: 900 + Glass: 500 Gold: 50 - type: latheRecipe @@ -182,7 +182,7 @@ completetime: 4 materials: Steel: 100 - Glass: 900 + Glass: 500 - type: latheRecipe id: CryoPodMachineCircuitboard @@ -191,7 +191,7 @@ completetime: 4 materials: Steel: 100 - Glass: 900 + Glass: 500 Gold: 100 - type: latheRecipe @@ -201,7 +201,7 @@ completetime: 4 materials: Steel: 100 - Glass: 900 + Glass: 500 - type: latheRecipe id: ChemDispenserMachineCircuitboard @@ -210,7 +210,7 @@ completetime: 4 materials: Steel: 100 - Glass: 900 + Glass: 500 Gold: 100 - type: latheRecipe @@ -220,7 +220,7 @@ completetime: 4 materials: Steel: 100 - Glass: 900 + Glass: 500 Gold: 100 - type: latheRecipe @@ -230,7 +230,7 @@ completetime: 4 materials: Steel: 100 - Glass: 900 + Glass: 500 Gold: 100 - type: latheRecipe @@ -240,7 +240,7 @@ completetime: 4 materials: Steel: 100 - Glass: 900 + Glass: 500 - type: latheRecipe id: AutolatheMachineCircuitboard @@ -249,7 +249,7 @@ completetime: 4 materials: Steel: 100 - Glass: 900 + Glass: 500 - type: latheRecipe id: ProtolatheMachineCircuitboard @@ -258,7 +258,7 @@ completetime: 4 materials: Steel: 100 - Glass: 900 + Glass: 500 - type: latheRecipe id: AutolatheHyperConvectionMachineCircuitboard @@ -267,7 +267,7 @@ completetime: 4 materials: Steel: 100 - Glass: 900 + Glass: 500 Gold: 100 - type: latheRecipe @@ -277,7 +277,7 @@ completetime: 4 materials: Steel: 100 - Glass: 900 + Glass: 500 Gold: 100 - type: latheRecipe @@ -286,8 +286,19 @@ category: Circuitry completetime: 4 materials: - Steel: 100 - Glass: 900 + Steel: 100 + Glass: 500 + +- type: latheRecipe + id: CircuitImprinterHyperConvectionMachineCircuitboard + result: CircuitImprinterHyperConvectionMachineCircuitboard + category: Circuitry + completetime: 4 + materials: + Steel: 100 + Glass: 900 + Gold: 100 + - type: latheRecipe id: ExosuitFabricatorMachineCircuitboard @@ -296,7 +307,7 @@ completetime: 5 materials: Steel: 100 - Glass: 900 + Glass: 500 - type: latheRecipe id: UniformPrinterMachineCircuitboard @@ -305,7 +316,7 @@ completetime: 4 materials: Steel: 100 - Glass: 900 + Glass: 500 - type: latheRecipe id: VaccinatorMachineCircuitboard @@ -314,7 +325,7 @@ completetime: 4 materials: Steel: 100 - Glass: 900 + Glass: 500 Gold: 100 - type: latheRecipe @@ -324,7 +335,7 @@ completetime: 4 materials: Steel: 100 - Glass: 900 + Glass: 500 Gold: 100 - type: latheRecipe @@ -334,17 +345,7 @@ completetime: 4 materials: Steel: 100 - Glass: 900 - Gold: 100 - -- type: latheRecipe - id: TraversalDistorterMachineCircuitboard - result: TraversalDistorterMachineCircuitboard - category: Circuitry - completetime: 4 - materials: - Steel: 100 - Glass: 900 + Glass: 500 Gold: 100 - type: latheRecipe @@ -354,7 +355,7 @@ completetime: 4 materials: Steel: 100 - Glass: 900 + Glass: 500 Gold: 100 - type: latheRecipe @@ -364,7 +365,7 @@ completetime: 4 materials: Steel: 100 - Glass: 900 + Glass: 500 - type: latheRecipe id: AnomalyVesselExperimentalCircuitboard @@ -373,7 +374,7 @@ completetime: 4 materials: Steel: 100 - Glass: 900 + Glass: 500 Gold: 100 - type: latheRecipe @@ -393,7 +394,7 @@ completetime: 4 materials: Steel: 100 - Glass: 900 + Glass: 500 - type: latheRecipe id: ReagentGrinderMachineCircuitboard @@ -402,7 +403,7 @@ completetime: 4 materials: Steel: 100 - Glass: 900 + Glass: 500 - type: latheRecipe id: HotplateMachineCircuitboard @@ -411,7 +412,7 @@ completetime: 4 materials: Steel: 100 - Glass: 900 + Glass: 500 - type: latheRecipe id: AnalysisComputerCircuitboard @@ -420,7 +421,7 @@ completetime: 4 materials: Steel: 100 - Glass: 900 + Glass: 500 Gold: 100 - type: latheRecipe @@ -430,7 +431,7 @@ completetime: 4 materials: Steel: 100 - Glass: 900 + Glass: 500 Gold: 100 - type: latheRecipe @@ -440,7 +441,7 @@ completetime: 4 materials: Steel: 100 - Glass: 900 + Glass: 500 Gold: 100 - type: latheRecipe @@ -450,7 +451,7 @@ completetime: 4 materials: Steel: 100 - Glass: 900 + Glass: 500 - type: latheRecipe id: DawInstrumentMachineCircuitboard @@ -459,7 +460,7 @@ completetime: 4 materials: Steel: 100 - Glass: 900 + Glass: 500 - type: latheRecipe id: StasisBedMachineCircuitboard @@ -468,7 +469,7 @@ completetime: 4 materials: Steel: 100 - Glass: 900 + Glass: 500 Gold: 100 - type: latheRecipe @@ -478,7 +479,7 @@ completetime: 4 materials: Steel: 100 - Glass: 900 + Glass: 500 - type: latheRecipe id: CentrifugeMachineCircuitboard @@ -487,7 +488,7 @@ completetime: 4 materials: Steel: 100 - Glass: 900 + Glass: 500 - type: latheRecipe id: MaterialReclaimerMachineCircuitboard @@ -496,7 +497,7 @@ completetime: 4 materials: Steel: 100 - Glass: 900 + Glass: 500 - type: latheRecipe id: OreProcessorMachineCircuitboard @@ -505,7 +506,7 @@ completetime: 4 materials: Steel: 100 - Glass: 900 + Glass: 500 - type: latheRecipe id: OreProcessorIndustrialMachineCircuitboard @@ -514,7 +515,7 @@ completetime: 4 materials: Steel: 100 - Glass: 900 + Glass: 500 Gold: 100 - type: latheRecipe @@ -524,7 +525,7 @@ completetime: 4 materials: Steel: 100 - Glass: 900 + Glass: 500 Gold: 100 - type: latheRecipe @@ -534,7 +535,7 @@ completetime: 4 materials: Steel: 100 - Glass: 900 + Glass: 500 Gold: 100 - type: latheRecipe @@ -544,7 +545,7 @@ completetime: 4 materials: Steel: 100 - Glass: 900 + Glass: 500 Bananium: 100 - type: latheRecipe @@ -554,7 +555,7 @@ completetime: 4 materials: Steel: 100 - Glass: 900 + Glass: 500 Bananium: 100 - type: latheRecipe @@ -564,7 +565,7 @@ completetime: 4 materials: Steel: 100 - Glass: 900 + Glass: 500 Bananium: 100 - type: latheRecipe @@ -574,7 +575,7 @@ completetime: 4 materials: Steel: 100 - Glass: 900 + Glass: 500 Gold: 100 - type: latheRecipe @@ -584,7 +585,7 @@ completetime: 4 materials: Steel: 100 - Glass: 900 + Glass: 500 Gold: 100 # Power @@ -622,7 +623,7 @@ completetime: 4 materials: Steel: 100 - Glass: 900 + Glass: 500 - type: latheRecipe id: PortableGeneratorPacmanMachineCircuitboard @@ -676,7 +677,7 @@ completetime: 4 materials: Steel: 100 - Glass: 900 + Glass: 500 - type: latheRecipe id: SolarTrackerElectronics @@ -694,7 +695,7 @@ completetime: 4 materials: Steel: 100 - Glass: 900 + Glass: 500 - type: latheRecipe id: CloningConsoleComputerCircuitboard @@ -703,7 +704,7 @@ completetime: 4 materials: Steel: 100 - Glass: 900 + Glass: 500 - type: latheRecipe id: MicrowaveMachineCircuitboard @@ -712,7 +713,7 @@ completetime: 4 materials: Steel: 100 - Glass: 900 + Glass: 500 - type: latheRecipe id: ElectricGrillMachineCircuitboard @@ -721,7 +722,7 @@ completetime: 4 materials: Steel: 100 - Glass: 900 + Glass: 500 - type: latheRecipe id: FatExtractorMachineCircuitboard @@ -730,7 +731,7 @@ completetime: 4 materials: Steel: 100 - Glass: 900 + Glass: 500 - type: latheRecipe id: FlatpackerMachineCircuitboard @@ -739,7 +740,7 @@ completetime: 4 materials: Steel: 100 - Glass: 900 + Glass: 500 Gold: 100 - type: latheRecipe @@ -749,7 +750,7 @@ completetime: 4 materials: Steel: 100 - Glass: 900 + Glass: 500 - type: latheRecipe id: SurveillanceCameraRouterCircuitboard @@ -758,7 +759,7 @@ completetime: 4 materials: Steel: 100 - Glass: 900 + Glass: 500 - type: latheRecipe id: SurveillanceCameraWirelessRouterCircuitboard @@ -767,7 +768,7 @@ completetime: 4 materials: Steel: 100 - Glass: 900 + Glass: 500 - type: latheRecipe id: SurveillanceWirelessCameraAnchoredCircuitboard @@ -776,7 +777,7 @@ completetime: 4 materials: Steel: 100 - Glass: 900 + Glass: 500 - type: latheRecipe id: SurveillanceWirelessCameraMovableCircuitboard @@ -785,7 +786,7 @@ completetime: 4 materials: Steel: 100 - Glass: 900 + Glass: 500 - type: latheRecipe id: SurveillanceCameraMonitorCircuitboard @@ -794,7 +795,7 @@ completetime: 4 materials: Steel: 100 - Glass: 900 + Glass: 500 - type: latheRecipe id: SurveillanceWirelessCameraMonitorCircuitboard @@ -803,7 +804,7 @@ completetime: 4 materials: Steel: 100 - Glass: 900 + Glass: 500 - type: latheRecipe id: ComputerTelevisionCircuitboard @@ -812,7 +813,7 @@ completetime: 4 materials: Steel: 100 - Glass: 900 + Glass: 500 - type: latheRecipe id: EmitterCircuitboard @@ -821,7 +822,7 @@ completetime: 4 materials: Steel: 100 - Glass: 900 + Glass: 500 - type: latheRecipe id: ThrusterMachineCircuitboard @@ -830,7 +831,7 @@ completetime: 4 materials: Steel: 100 - Glass: 900 + Glass: 500 - type: latheRecipe id: GyroscopeMachineCircuitboard @@ -839,7 +840,7 @@ completetime: 4 materials: Steel: 100 - Glass: 900 + Glass: 500 - type: latheRecipe id: GasRecyclerMachineCircuitboard @@ -848,7 +849,7 @@ completetime: 4 materials: Steel: 100 - Glass: 900 + Glass: 500 - type: latheRecipe id: SeedExtractorMachineCircuitboard @@ -857,7 +858,7 @@ completetime: 4 materials: Steel: 100 - Glass: 900 + Glass: 500 - type: latheRecipe id: BoozeDispenserMachineCircuitboard @@ -866,7 +867,7 @@ completetime: 4 materials: Steel: 100 - Glass: 900 + Glass: 500 - type: latheRecipe id: CargoTelepadMachineCircuitboard @@ -875,7 +876,7 @@ completetime: 4 materials: Steel: 100 - Glass: 900 + Glass: 500 Gold: 100 - type: latheRecipe @@ -885,7 +886,7 @@ completetime: 4 materials: Steel: 100 - Glass: 900 + Glass: 500 - type: latheRecipe id: TelecomServerCircuitboard @@ -894,7 +895,7 @@ completetime: 4 materials: Steel: 100 - Glass: 900 + Glass: 500 - type: latheRecipe id: MassMediaCircuitboard @@ -903,7 +904,7 @@ completetime: 4 materials: Steel: 100 - Glass: 900 + Glass: 500 - type: latheRecipe id: MiniGravityGeneratorCircuitboard @@ -912,7 +913,7 @@ completetime: 6 materials: Steel: 100 - Glass: 900 + Glass: 500 Gold: 100 - type: latheRecipe @@ -921,7 +922,7 @@ completetime: 6 materials: Steel: 100 - Glass: 900 + Glass: 500 - type: latheRecipe id: ShuttleGunSvalinnMachineGunCircuitboard @@ -929,7 +930,8 @@ completetime: 6 materials: Steel: 100 - Glass: 900 + + Glass: 500 - type: latheRecipe id: ShuttleGunPerforatorCircuitboard @@ -937,7 +939,7 @@ completetime: 10 materials: Steel: 100 - Glass: 900 + Glass: 500 Gold: 100 - type: latheRecipe @@ -946,7 +948,7 @@ completetime: 6 materials: Steel: 100 - Glass: 900 + Glass: 500 - type: latheRecipe id: ShuttleGunFriendshipCircuitboard @@ -954,7 +956,7 @@ completetime: 8 materials: Steel: 100 - Glass: 900 + Glass: 500 Gold: 50 - type: latheRecipe @@ -963,7 +965,7 @@ completetime: 12 materials: Steel: 100 - Glass: 900 + Glass: 500 Gold: 100 - type: latheRecipe @@ -972,7 +974,7 @@ completetime: 5 materials: Steel: 100 - Glass: 900 + Glass: 500 Gold: 100 - type: latheRecipe @@ -981,4 +983,4 @@ completetime: 4 materials: Steel: 100 - Glass: 900 + Glass: 500 \ No newline at end of file diff --git a/Resources/Prototypes/Recipes/Lathes/janitorial.yml b/Resources/Prototypes/Recipes/Lathes/janitorial.yml index a3b968a331..9ba7dfa188 100644 --- a/Resources/Prototypes/Recipes/Lathes/janitorial.yml +++ b/Resources/Prototypes/Recipes/Lathes/janitorial.yml @@ -18,7 +18,7 @@ result: Bucket completetime: 2 materials: - Steel: 100 + Plastic: 100 - type: latheRecipe id: WetFloorSign diff --git a/Resources/Prototypes/Recipes/Lathes/medical.yml b/Resources/Prototypes/Recipes/Lathes/medical.yml index 631829ed53..822945de10 100644 --- a/Resources/Prototypes/Recipes/Lathes/medical.yml +++ b/Resources/Prototypes/Recipes/Lathes/medical.yml @@ -116,7 +116,7 @@ result: ClothingMaskSterile completetime: 2 materials: - Plastic: 100 + Plastic: 50 - type: latheRecipe id: DiseaseSwab diff --git a/Resources/Prototypes/Recipes/Lathes/misc.yml b/Resources/Prototypes/Recipes/Lathes/misc.yml index ab13dc4573..2c0e1eeec3 100644 --- a/Resources/Prototypes/Recipes/Lathes/misc.yml +++ b/Resources/Prototypes/Recipes/Lathes/misc.yml @@ -207,3 +207,19 @@ materials: Steel: 400 Glass: 200 + +- type: latheRecipe + id: ClothingShoesBootsMagAdv + result: ClothingShoesBootsMagAdv + completetime: 12 + materials: + Silver: 1000 + Gold: 500 + +- type: latheRecipe + id: MailCapsule + result: MailCapsulePrimed + completetime: 1 + materials: + Glass: 100 + Plastic: 100 diff --git a/Resources/Prototypes/Recipes/Lathes/robotics.yml b/Resources/Prototypes/Recipes/Lathes/robotics.yml index bf6f479703..2dc0a65748 100644 --- a/Resources/Prototypes/Recipes/Lathes/robotics.yml +++ b/Resources/Prototypes/Recipes/Lathes/robotics.yml @@ -427,16 +427,16 @@ Glass: 250 Plastic: 250 -#- type: latheRecipe -# id: BorgModuleGrapplingGun -# result: BorgModuleGrapplingGun -# category: Robotics -# completetime: 3 -# materials: -# Steel: 500 -# Glass: 500 -# Plastic: 250 -# Gold: 50 +- type: latheRecipe + id: BorgModuleGrapplingGun + result: BorgModuleGrapplingGun + category: Robotics + completetime: 3 + materials: + Steel: 500 + Glass: 500 + Plastic: 250 + Gold: 50 - type: latheRecipe id: BorgModuleAdvancedTool diff --git a/Resources/Prototypes/Recipes/Lathes/security.yml b/Resources/Prototypes/Recipes/Lathes/security.yml index 08e11e4ff8..04c2ad1ec1 100644 --- a/Resources/Prototypes/Recipes/Lathes/security.yml +++ b/Resources/Prototypes/Recipes/Lathes/security.yml @@ -38,7 +38,7 @@ materials: Steel: 250 Plastic: 100 - + - type: latheRecipe id: WeaponLaserCarbine result: WeaponLaserCarbine @@ -146,15 +146,6 @@ Plastic: 200 Steel: 100 -- type: latheRecipe - id: ShellShotgunBeanbag - result: ShellShotgunBeanbag - category: Ammo - completetime: 2 - materials: - Plastic: 15 - Steel: 10 - - type: latheRecipe id: CartridgePistolRubber result: CartridgePistolRubber @@ -173,14 +164,6 @@ Plastic: 5 Steel: 5 -- type: latheRecipe - id: CartridgeRifle - result: CartridgeRifle - category: Ammo - completetime: 2 - materials: - Steel: 15 - - type: latheRecipe id: CartridgeLightRifleRubber result: CartridgeLightRifleRubber @@ -199,54 +182,6 @@ Plastic: 10 Steel: 5 -- type: latheRecipe - id: CartridgePistol - result: CartridgePistol - category: Ammo - completetime: 2 - materials: - Steel: 10 - -- type: latheRecipe - id: ShellShotgun - result: ShellShotgun - category: Ammo - completetime: 2 - materials: - Steel: 20 - -- type: latheRecipe - id: ShellShotgunSlug - result: ShellShotgunSlug - completetime: 2 - materials: - Steel: 25 - -- type: latheRecipe - id: CartridgeMagnum - result: CartridgeMagnum - category: Ammo - completetime: 2 - materials: - Steel: 20 - -- type: latheRecipe - id: CartridgeLightRifle - result: CartridgeLightRifle - category: Ammo - completetime: 2 - materials: - Steel: 30 - -- type: latheRecipe - id: ShellShotgunFlare - result: ShellShotgunFlare - category: Ammo - completetime: 2 - materials: - Plastic: 20 - Steel: 5 - - type: latheRecipe id: ShellTranquilizer result: ShellTranquilizer @@ -283,13 +218,56 @@ materials: Steel: 500 +- type: latheRecipe + id: MagazinePistolEmpty + result: MagazinePistolEmpty + category: Ammo + completetime: 5 + materials: + Steel: 25 + - type: latheRecipe id: MagazinePistol result: MagazinePistol category: Ammo completetime: 5 materials: - Steel: 100 + Steel: 145 + +- type: latheRecipe + id: MagazinePistolPractice + result: MagazinePistolPractice + category: Ammo + completetime: 5 + materials: + Steel: 85 + +- type: latheRecipe + id: MagazinePistolUranium + result: MagazinePistolUranium + category: Ammo + completetime: 5 + materials: + Steel: 25 + Plastic: 65 + Uranium: 120 + +- type: latheRecipe + id: MagazinePistolIncendiary + result: MagazinePistolIncendiary + category: Ammo + completetime: 5 + materials: + Steel: 25 + Plastic: 120 + +- type: latheRecipe + id: MagazinePistolSubMachineGunEmpty + result: MagazinePistolSubMachineGunEmpty + category: Ammo + completetime: 5 + materials: + Steel: 30 - type: latheRecipe id: MagazinePistolSubMachineGun @@ -299,6 +277,14 @@ materials: Steel: 300 +- type: latheRecipe + id: MagazinePistolSubMachineGunTopMountedEmpty + result: MagazinePistolSubMachineGunTopMountedEmpty + category: Ammo + completetime: 5 + materials: + Steel: 30 + - type: latheRecipe id: MagazinePistolSubMachineGunTopMounted result: MagazinePistolSubMachineGunTopMounted @@ -313,7 +299,7 @@ category: Ammo completetime: 5 materials: - Steel: 650 + Steel: 600 - type: latheRecipe id: MagazineBoxPistolRubber @@ -330,7 +316,15 @@ category: Ammo completetime: 5 materials: - Steel: 1250 + Steel: 240 + +- type: latheRecipe + id: MagazineRifleEmpty + result: MagazineRifleEmpty + category: Ammo + completetime: 5 + materials: + Steel: 25 - type: latheRecipe id: MagazineBoxMagnumRubber @@ -347,7 +341,43 @@ category: Ammo completetime: 5 materials: - Steel: 375 + Steel: 475 + + +- type: latheRecipe + id: MagazineRiflePractice + result: MagazineRiflePractice + category: Ammo + completetime: 5 + materials: + Steel: 175 + +- type: latheRecipe + id: MagazineRifleUranium + result: MagazineRifleUranium + category: Ammo + completetime: 5 + materials: + Steel: 25 + Plastic: 300 + Uranium: 300 + +- type: latheRecipe + id: MagazineRifleIncendiary + result: MagazineRifleIncendiary + category: Ammo + completetime: 5 + materials: + Steel: 25 + Plastic: 450 + +- type: latheRecipe + id: MagazineLightRifleEmpty + result: MagazineLightRifleEmpty + category: Ammo + completetime: 5 + materials: + Steel: 25 - type: latheRecipe id: MagazineLightRifle @@ -355,7 +385,35 @@ category: Ammo completetime: 5 materials: - Steel: 375 + Steel: 565 + +- type: latheRecipe + id: MagazineLightRiflePractice + result: MagazineLightRiflePractice + category: Ammo + completetime: 5 + materials: + Steel: 205 + + +- type: latheRecipe + id: MagazineLightRifleUranium + result: MagazineLightRifleUranium + category: Ammo + completetime: 5 + materials: + Steel: 25 + Plastic: 360 + Uranium: 360 + +- type: latheRecipe + id: MagazineLightRifleIncendiary + result: MagazineLightRifleIncendiary + category: Ammo + completetime: 5 + materials: + Steel: 25 + Plastic: 540 - type: latheRecipe id: MagazineBoxRifle @@ -363,7 +421,7 @@ category: Ammo completetime: 5 materials: - Steel: 950 + Steel: 750 - type: latheRecipe id: MagazineBoxRifleRubber @@ -380,7 +438,41 @@ category: Ammo completetime: 5 materials: - Steel: 1800 + Steel: 900 + +- type: latheRecipe + id: BoxLethalshot + result: BoxLethalshot + category: Ammo + completetime: 5 + materials: + Steel: 320 + +- type: latheRecipe + id: BoxBeanbag + result: BoxBeanbag + category: Ammo + completetime: 5 + materials: + Steel: 160 + Plastic: 240 + +- type: latheRecipe + id: BoxShotgunSlug + result: BoxShotgunSlug + category: Ammo + completetime: 5 + materials: + Steel: 240 + Plastic: 160 + +- type: latheRecipe + id: SpeedLoaderMagnumEmpty + result: SpeedLoaderMagnumEmpty + category: Ammo + completetime: 5 + materials: + Steel: 50 - type: latheRecipe id: MagazineBoxLightRifleRubber @@ -397,47 +489,77 @@ category: Ammo completetime: 5 materials: - Steel: 200 + Steel: 190 - type: latheRecipe - id: ShellShotgunIncendiary - result: ShellShotgunIncendiary + id: SpeedLoaderMagnumPractice + result: SpeedLoaderMagnumPractice category: Ammo - completetime: 2 + completetime: 5 materials: - Plastic: 20 + Steel: 90 - type: latheRecipe - id: CartridgePistolIncendiary - result: CartridgePistolIncendiary + id: SpeedLoaderMagnumUranium + result: SpeedLoaderMagnumUranium category: Ammo - completetime: 2 + completetime: 5 materials: - Plastic: 10 + Steel: 50 + Plastic: 150 + Uranium: 110 - type: latheRecipe - id: CartridgeMagnumIncendiary - result: CartridgeMagnumIncendiary + id: SpeedLoaderMagnumIncendiary + result: SpeedLoaderMagnumIncendiary category: Ammo - completetime: 2 + completetime: 5 materials: - Plastic: 20 + Steel: 50 + Plastic: 150 - type: latheRecipe - id: CartridgeLightRifleIncendiary - result: CartridgeLightRifleIncendiary + id: MagazineShotgunEmpty + result: MagazineShotgunEmpty category: Ammo - completetime: 2 + completetime: 5 materials: - Plastic: 20 + Steel: 50 - type: latheRecipe - id: CartridgeRifleIncendiary - result: CartridgeRifleIncendiary + id: MagazineShotgun + result: MagazineShotgun category: Ammo - completetime: 2 + completetime: 5 materials: - Plastic: 15 + Steel: 240 + +- type: latheRecipe + id: MagazineShotgunBeanbag + result: MagazineShotgunBeanbag + category: Ammo + completetime: 5 + materials: + Steel: 150 + Plastic: 140 + +- type: latheRecipe + id: MagazineShotgunSlug + result: MagazineShotgunSlug + category: Ammo + completetime: 5 + materials: + Steel: 190 + Plastic: 100 + +- type: latheRecipe + id: MagazineShotgunIncendiary + result: MagazineShotgunIncendiary + category: Ammo + completetime: 5 + materials: + Steel: 100 + Plastic: 190 - type: latheRecipe id: MagazineBoxPistolIncendiary @@ -445,7 +567,7 @@ category: Ammo completetime: 5 materials: - Plastic: 650 + Plastic: 600 - type: latheRecipe id: MagazineBoxMagnumIncendiary @@ -453,7 +575,7 @@ category: Ammo completetime: 5 materials: - Plastic: 1250 + Plastic: 240 - type: latheRecipe id: MagazineBoxLightRifleIncendiary @@ -461,7 +583,7 @@ category: Ammo completetime: 5 materials: - Plastic: 1800 + Plastic: 900 - type: latheRecipe id: MagazineBoxRifleIncendiary @@ -469,15 +591,25 @@ category: Ammo completetime: 5 materials: - Plastic: 950 + Plastic: 750 - type: latheRecipe - id: ShellShotgunPractice - result: ShellShotgunPractice + id: BoxShotgunFlare + result: BoxShotgunFlare category: Ammo - completetime: 2 + completetime: 5 materials: - Plastic: 20 + Steel: 80 + Plastic: 80 + +- type: latheRecipe + id: BoxShotgunIncendiary + result: BoxShotgunIncendiary + category: Ammo + completetime: 5 + materials: + Steel: 80 + Plastic: 320 - type: latheRecipe id: MagazineBoxPistolPractice @@ -485,7 +617,7 @@ category: Ammo completetime: 5 materials: - Plastic: 600 + Steel: 300 - type: latheRecipe id: MagazineBoxMagnumPractice @@ -493,7 +625,7 @@ category: Ammo completetime: 5 materials: - Plastic: 1200 + Steel: 60 - type: latheRecipe id: MagazineBoxLightRiflePractice @@ -501,7 +633,7 @@ category: Ammo completetime: 5 materials: - Plastic: 1000 + Steel: 300 - type: latheRecipe id: MagazineBoxRiflePractice @@ -509,7 +641,7 @@ category: Ammo completetime: 5 materials: - Plastic: 900 + Steel: 250 - type: latheRecipe id: WeaponLaserCarbinePractice @@ -532,49 +664,12 @@ Plastic: 200 - type: latheRecipe - id: ShellShotgunUranium - result: ShellShotgunUranium - category: Ammo - completetime: 2 - materials: - Plastic: 15 - Uranium: 10 - -- type: latheRecipe - id: CartridgePistolUranium - result: CartridgePistolUranium - category: Ammo - completetime: 2 - materials: - Plastic: 5 - Uranium: 10 - -- type: latheRecipe - id: CartridgeMagnumUranium - result: CartridgeMagnumUranium - category: Ammo - completetime: 2 - materials: - Plastic: 20 - Uranium: 10 - -- type: latheRecipe - id: CartridgeLightRifleUranium - result: CartridgeLightRifleUranium - category: Ammo - completetime: 2 - materials: - Plastic: 20 - Uranium: 10 - -- type: latheRecipe - id: CartridgeRifleUranium - result: CartridgeRifleUranium + id: BoxShotgunPractice + result: BoxShotgunPractice category: Ammo - completetime: 2 + completetime: 5 materials: - Plastic: 15 - Uranium: 10 + Steel: 80 - type: latheRecipe id: MagazineBoxPistolUranium @@ -582,8 +677,8 @@ category: Ammo completetime: 5 materials: - Plastic: 650 - Uranium: 65 + Plastic: 300 + Uranium: 600 - type: latheRecipe id: MagazineBoxMagnumUranium @@ -591,8 +686,8 @@ category: Ammo completetime: 5 materials: - Plastic: 1250 - Uranium: 125 + Plastic: 240 + Uranium: 180 - type: latheRecipe id: MagazineBoxLightRifleUranium @@ -600,8 +695,8 @@ category: Ammo completetime: 5 materials: - Plastic: 1800 - Uranium: 180 + Plastic: 600 + Uranium: 600 - type: latheRecipe id: MagazineBoxRifleUranium @@ -609,8 +704,27 @@ category: Ammo completetime: 5 materials: - Plastic: 950 - Uranium: 95 + Plastic: 500 + Uranium: 500 + +- type: latheRecipe + id: BoxShotgunUranium + result: BoxShotgunUranium + category: Ammo + completetime: 5 + materials: + Plastic: 320 + Uranium: 240 + +- type: latheRecipe + id: WeaponDisabler + result: WeaponDisabler + category: Weapons + completetime: 6 + materials: + Steel: 300 + Glass: 200 + Plastic: 200 - type: latheRecipe id: WeaponDisablerSMG @@ -621,7 +735,7 @@ Steel: 1000 Glass: 500 Plastic: 500 - + - type: latheRecipe id: MagazineGrenadeEmpty result: MagazineGrenadeEmpty @@ -629,7 +743,7 @@ materials: Steel: 150 Plastic: 50 - + - type: latheRecipe id: GrenadeEMP result: GrenadeEMP @@ -638,16 +752,15 @@ Steel: 150 Plastic: 100 Glass: 20 - + - type: latheRecipe id: GrenadeBlast result: GrenadeBlast completetime: 3 materials: - Steel: 150 - Plastic: 100 - Gold: 50 - + Steel: 450 + Plastic: 300 + Gold: 150 - type: latheRecipe id: GrenadeFlash result: GrenadeFlash @@ -656,4 +769,106 @@ Steel: 150 Plastic: 100 Glass: 20 - \ No newline at end of file + +- type: latheRecipe + id: PortableRecharger + result: PortableRecharger + completetime: 15 + materials: + Steel: 2000 + Uranium: 2000 + Plastic: 1000 + Plasma: 500 + Glass: 500 + +- type: latheRecipe + id: ShellShotgun + result: ShellShotgun + category: Ammo + completetime: 2 + materials: + Steel: 20 + +- type: latheRecipe + id: ShellShotgunSlug + result: ShellShotgunSlug + completetime: 2 + materials: + Steel: 25 + +- type: latheRecipe + id: ShellShotgunFlare + result: ShellShotgunFlare + category: Ammo + completetime: 2 + materials: + Plastic: 20 + Steel: 5 + +- type: latheRecipe + id: CartridgeLightRifleIncendiary + result: CartridgeLightRifleIncendiary + category: Ammo + completetime: 2 + materials: + Plastic: 20 + +- type: latheRecipe + id: CartridgeMagnumIncendiary + result: CartridgeMagnumIncendiary + category: Ammo + completetime: 2 + materials: + Plastic: 20 + +- type: latheRecipe + id: CartridgePistolIncendiary + result: CartridgePistolIncendiary + category: Ammo + completetime: 2 + materials: + Plastic: 10 + +- type: latheRecipe + id: CartridgeRifleIncendiary + result: CartridgeRifleIncendiary + category: Ammo + completetime: 2 + materials: + Plastic: 15 + +- type: latheRecipe + id: CartridgePistolUranium + result: CartridgePistolUranium + category: Ammo + completetime: 2 + materials: + Plastic: 5 + Uranium: 10 + +- type: latheRecipe + id: CartridgeMagnumUranium + result: CartridgeMagnumUranium + category: Ammo + completetime: 2 + materials: + Plastic: 20 + Uranium: 10 + +- type: latheRecipe + id: CartridgeLightRifleUranium + result: CartridgeLightRifleUranium + category: Ammo + completetime: 2 + materials: + Plastic: 20 + Uranium: 10 + +- type: latheRecipe + id: CartridgeRifleUranium + result: CartridgeRifleUranium + category: Ammo + completetime: 2 + materials: + Plastic: 15 + Uranium: 10 diff --git a/Resources/Prototypes/Recipes/Lathes/sheet.yml b/Resources/Prototypes/Recipes/Lathes/sheet.yml index 053715a181..9f83c58e66 100644 --- a/Resources/Prototypes/Recipes/Lathes/sheet.yml +++ b/Resources/Prototypes/Recipes/Lathes/sheet.yml @@ -176,3 +176,37 @@ completetime: 1 materials: Wood: 50 + +- type: latheRecipe + id: CoreSilver + icon: + sprite: Objects/Misc/guardian_info.rsi + state: icon + result: CoreSilver + completetime: 10 + materials: + Bluespace: 500 + Silver: 1000 + Plastic: 1000 + +- type: latheRecipe + id: BluespaceCrystal + icon: + sprite: Objects/Materials/materials.rsi + state: bluespace + result: MaterialBluespace1 + applyMaterialDiscount: false + completetime: 4 + materials: + RawBluespace: 100 + +- type: latheRecipe + id: NormalityCrystal + icon: + sprite: Objects/Materials/materials.rsi + state: normality + result: MaterialNormality1 + applyMaterialDiscount: false + completetime: 4 + materials: + RawNormality: 100 diff --git a/Resources/Prototypes/Recipes/Reactions/drinks.yml b/Resources/Prototypes/Recipes/Reactions/drinks.yml index c810ebb0ce..afb315c09d 100644 --- a/Resources/Prototypes/Recipes/Reactions/drinks.yml +++ b/Resources/Prototypes/Recipes/Reactions/drinks.yml @@ -86,6 +86,16 @@ products: B52: 3 +- type: reaction + id: BudgetInsulsDrink + reactants: + Tequila: + amount: 1 + VodkaRedBool: + amount: 2 + products: + BudgetInsulsDrink: 3 + - type: reaction id: BlueHawaiian reactants: @@ -516,6 +526,16 @@ products: IcedTea: 3 +- type: reaction + id: IrishBool + reactants: + EnergyDrink: + amount: 1 + IrishCarBomb: + amount: 1 + products: + IrishBool: 2 + - type: reaction id: IrishCarBomb reactants: @@ -794,6 +814,18 @@ products: RoyRogers: 3 +- type: reaction + id: Rubberneck + reactants: + EnergyDrink: + amount: 2 + Moonshine: + amount: 1 + Sugar: + amount: 1 + products: + Rubberneck: 4 + - type: reaction id: Sbiten reactants: @@ -857,7 +889,7 @@ LemonLime: amount: 1 products: - SnowWhite: 3 + SnowWhite: 2 - type: reaction id: SoyLatte @@ -943,6 +975,16 @@ products: VodkaMartini: 3 +- type: reaction + id: VodkaRedBool + reactants: + Vodka: + amount: 1 + EnergyDrink: + amount: 2 + products: + VodkaRedBool: 3 + - type: reaction id: VodkaTonic reactants: @@ -963,6 +1005,18 @@ products: WhiskeyCola: 3 +- type: reaction + id: WatermelonWakeup + reactants: + JuiceWatermelon: + amount: 1 + Whiskey: + amount: 1 + EnergyDrink: + amount: 1 + products: + WatermelonWakeup: 3 + - type: reaction id: WhiteRussian reactants: @@ -983,6 +1037,16 @@ products: WhiskeySoda: 3 +- type: reaction + id: XenoBasher + reactants: + ManlyDorf: + amount: 2 + EnergyDrink: + amount: 1 + products: + XenoBasher: 3 + - type: reaction id: HotRamen minTemp: 323.15 diff --git a/Resources/Prototypes/Recipes/Reactions/medicine.yml b/Resources/Prototypes/Recipes/Reactions/medicine.yml index a1ca3ea38e..2e9b1d4f85 100644 --- a/Resources/Prototypes/Recipes/Reactions/medicine.yml +++ b/Resources/Prototypes/Recipes/Reactions/medicine.yml @@ -298,6 +298,18 @@ products: Lipozine: 3 +- type: reaction + id: Mannitol + reactants: + Hydrogen: + amount: 1 + Water: + amount: 1 + Sugar: + amount: 1 + products: + Mannitol: 3 + - type: reaction id: MindbreakerToxin minTemp: 370 @@ -542,11 +554,21 @@ amount: 1 Silicon: amount: 1 - Benzene: - amount: 1 products: Insuzine: 3 - Ash: 1 + +- type: reaction + id: Opporozidone + minTemp: 400 #Maybe if a method of reducing reagent temp exists one day, this could be -50 + reactants: + Cognizine: + amount: 1 + Plasma: + amount: 2 + Doxarubixadone: + amount: 1 + products: + Opporozidone: 3 - type: reaction id: Necrosol @@ -574,3 +596,43 @@ amount: 2 products: Aloxadone: 4 + +- type: reaction + id: Psicodine + impact: Medium + reactants: + Mannitol: + amount: 2 + Impedrezene: + amount: 1 + Water: + amount: 2 + products: + Psicodine: 4 + +- type: reaction + id: Lipolicide + reactants: + Ephedrine: + amount: 1 + Diethylamine: + amount: 1 + Mercury: + amount: 1 + products: + Lipolicide: 3 + +- type: reaction + id: Happiness + reactants: + Laughter: + amount: 2 + Epinephrine: + amount: 1 + Ethanol: + amount: 1 + Plasma: + amount: 5 + catalyst: true + products: + Happiness: 4 diff --git a/Resources/Prototypes/Recipes/Reactions/pyrotechnic.yml b/Resources/Prototypes/Recipes/Reactions/pyrotechnic.yml index 318490931f..3591ce7008 100644 --- a/Resources/Prototypes/Recipes/Reactions/pyrotechnic.yml +++ b/Resources/Prototypes/Recipes/Reactions/pyrotechnic.yml @@ -31,6 +31,7 @@ - type: reaction id: ChlorineTrifluoride + minTemp: 370 priority: 20 reactants: Chlorine: @@ -38,7 +39,6 @@ Fluorine: amount: 3 effects: - # TODO solution temperature!! - !type:ExplosionReactionEffect explosionType: Default # 15 damage per intensity. maxIntensity: 200 diff --git a/Resources/Prototypes/Research/arsenal.yml b/Resources/Prototypes/Research/arsenal.yml index 7432d4225f..b519d0b351 100644 --- a/Resources/Prototypes/Research/arsenal.yml +++ b/Resources/Prototypes/Research/arsenal.yml @@ -24,11 +24,12 @@ tier: 1 cost: 10000 recipeUnlocks: - - ShellShotgunIncendiary - - CartridgePistolIncendiary - - CartridgeMagnumIncendiary - - CartridgeLightRifleIncendiary - - CartridgeRifleIncendiary + - BoxShotgunIncendiary + - MagazineRifleIncendiary + - MagazinePistolIncendiary + - MagazineLightRifleIncendiary + - SpeedLoaderMagnumIncendiary + - MagazineShotgunIncendiary - MagazineBoxPistolIncendiary - MagazineBoxMagnumIncendiary - MagazineBoxLightRifleIncendiary @@ -60,7 +61,9 @@ tier: 1 cost: 5000 recipeUnlocks: - - ShellShotgunBeanbag + - MagazineShotgunBeanbag + - ShellTranquilizer + - BoxBeanbag - CartridgePistolRubber - CartridgeMagnumRubber - CartridgeLightRifleRubber @@ -69,10 +72,9 @@ - MagazineBoxMagnumRubber - MagazineBoxLightRifleRubber - MagazineBoxRifleRubber - # DeltaV - .38 special rubber ammo - Adds .38 special rubber ammo to the research tree - CartridgeSpecialRubber - MagazineBoxSpecialRubber - # End of modified code + - WeaponDisabler - type: technology id: UraniumMunitions @@ -84,19 +86,17 @@ tier: 1 cost: 7500 recipeUnlocks: - - ShellShotgunUranium - - CartridgePistolUranium - - CartridgeMagnumUranium - - CartridgeLightRifleUranium - - CartridgeRifleUranium + - MagazineRifleUranium + - MagazinePistolUranium + - MagazineLightRifleUranium + - SpeedLoaderMagnumUranium - MagazineBoxPistolUranium - MagazineBoxMagnumUranium - MagazineBoxLightRifleUranium - MagazineBoxRifleUranium - # DeltaV - .38 special uranium ammo - Adds .38 special uranium ammo to the research tree + - BoxShotgunUranium - CartridgeSpecialUranium - MagazineBoxSpecialUranium - # End of modified code - type: technology id: AdvancedRiotControl @@ -173,6 +173,7 @@ - PowerCageMedium - MagazineGrenadeEmpty - GrenadeFlash + - GrenadeBlast - ShuttleGunSvalinnMachineGunCircuitboard - ShuttleGunPerforatorCircuitboard - ShuttleGunFriendshipCircuitboard @@ -192,6 +193,7 @@ cost: 15000 recipeUnlocks: - WeaponAdvancedLaser + - PortableRecharger - type: technology id: ExperimentalBatteryAmmo diff --git a/Resources/Prototypes/Research/civilianservices.yml b/Resources/Prototypes/Research/civilianservices.yml index 0a9f74b86d..26b519e1ef 100644 --- a/Resources/Prototypes/Research/civilianservices.yml +++ b/Resources/Prototypes/Research/civilianservices.yml @@ -191,8 +191,6 @@ - WeaponSprayNozzle - ClothingBackpackWaterTank -# Tier 3 - - type: technology id: BluespaceCargoTransport name: research-technology-bluespace-cargo-transport @@ -200,11 +198,13 @@ sprite: Structures/cargo_telepad.rsi state: display discipline: CivilianServices - tier: 3 + tier: 2 cost: 15000 recipeUnlocks: - CargoTelepadMachineCircuitboard +# Tier 3 + - type: technology id: QuantumFiberWeaving name: research-technology-quantum-fiber-weaving diff --git a/Resources/Prototypes/Research/experimental.yml b/Resources/Prototypes/Research/experimental.yml index 0dbcded546..60017fc98d 100644 --- a/Resources/Prototypes/Research/experimental.yml +++ b/Resources/Prototypes/Research/experimental.yml @@ -56,6 +56,7 @@ cost: 5000 recipeUnlocks: - TechDiskComputerCircuitboard + - ReverseEngineeringMachineCircuitboard #DeltaV - type: technology id: MagnetsTech @@ -83,17 +84,30 @@ # Tier 2 +- type: technology + id: AdvancedParts + name: research-technology-advanced-parts + icon: + sprite: Objects/Misc/stock_parts.rsi + state: advanced_matter_bin + discipline: Experimental + tier: 2 + cost: 10000 + recipeUnlocks: + - AdvancedCapacitorStockPart + - AdvancedMatterBinStockPart + - NanoManipulatorStockPart + - type: technology id: AbnormalArtifactManipulation name: research-technology-abnormal-artifact-manipulation icon: - sprite: Structures/Machines/traversal_distorter.rsi - state: display + sprite: Structures/Machines/artifact_crusher.rsi + state: icon discipline: Experimental tier: 2 cost: 5000 recipeUnlocks: - - TraversalDistorterMachineCircuitboard - ArtifactCrusherMachineCircuitboard - type: technology @@ -154,18 +168,32 @@ # Tier 3 -#- type: technology # DeltaV - LRP -# id: GravityManipulation -# name: research-technology-gravity-manipulation -# icon: -# sprite: Objects/Weapons/Guns/Launchers/tether_gun.rsi -# state: base -# discipline: Experimental -# tier: 3 -# cost: 10000 -# recipeUnlocks: -# - WeaponForceGun -# - WeaponTetherGun +- type: technology + id: SuperParts + name: research-technology-super-parts + icon: + sprite: Objects/Misc/stock_parts.rsi + state: super_matter_bin + discipline: Experimental + tier: 3 + cost: 15000 + recipeUnlocks: + - SuperCapacitorStockPart + - SuperMatterBinStockPart + - PicoManipulatorStockPart + +- type: technology + id: GravityManipulation + name: research-technology-gravity-manipulation + icon: + sprite: Objects/Weapons/Guns/Launchers/tether_gun.rsi + state: base + discipline: Experimental + tier: 3 + cost: 10000 + recipeUnlocks: + - WeaponForceGun + - WeaponTetherGun - type: technology id: QuantumLeaping diff --git a/Resources/Prototypes/Research/industrial.yml b/Resources/Prototypes/Research/industrial.yml index 84ca80531b..ee7cceb971 100644 --- a/Resources/Prototypes/Research/industrial.yml +++ b/Resources/Prototypes/Research/industrial.yml @@ -14,7 +14,8 @@ - BorgModuleMining - OreProcessorIndustrialMachineCircuitboard - OreBagOfHolding - - SalvageExpeditionsComputerCircuitboard # DeltaV + - ClothingMaskWeldingGas + - SalvageExpeditionsComputerCircuitboard - type: technology id: AdvancedPowercells @@ -53,6 +54,7 @@ recipeUnlocks: - AutolatheHyperConvectionMachineCircuitboard - ProtolatheHyperConvectionMachineCircuitboard + - CircuitImprinterHyperConvectionMachineCircuitboard - SheetifierMachineCircuitboard - type: technology @@ -105,18 +107,18 @@ - RipleyPeripheralsElectronics - MechEquipmentGrabber -#- type: technology -# id: Grappling -# name: research-technology-grappling -# icon: -# sprite: Objects/Weapons/Guns/Launchers/grappling_gun.rsi -# state: base -# discipline: Industrial -# tier: 1 -# cost: 5000 -# recipeUnlocks: -# - WeaponGrapplingGun -# - BorgModuleGrapplingGun +- type: technology + id: Grappling + name: research-technology-grappling + icon: + sprite: Objects/Weapons/Guns/Launchers/grappling_gun.rsi + state: base + discipline: Industrial + tier: 1 + cost: 5000 + recipeUnlocks: + - WeaponGrapplingGun + - BorgModuleGrapplingGun # Tier 2 diff --git a/Resources/Prototypes/Roles/Antags/nukeops.yml b/Resources/Prototypes/Roles/Antags/nukeops.yml index b02ebe6753..7b2d9893b6 100644 --- a/Resources/Prototypes/Roles/Antags/nukeops.yml +++ b/Resources/Prototypes/Roles/Antags/nukeops.yml @@ -19,10 +19,10 @@ objective: roles-antag-nuclear-operative-agent-objective requirements: - !type:CharacterOverallTimeRequirement - min: 108000 # DeltaV - 30 hours - - !type:CharacterDepartmentTimeRequirement # DeltaV - Medical dept time requirement + min: 108000 # 30 hours + - !type:CharacterDepartmentTimeRequirement department: Medical - min: 36000 # DeltaV - 10 hours + min: 36000 # 10 hours - type: antag id: NukeopsCommander diff --git a/Resources/Prototypes/Roles/Antags/terminator.yml b/Resources/Prototypes/Roles/Antags/terminator.yml deleted file mode 100644 index ef1f176b8d..0000000000 --- a/Resources/Prototypes/Roles/Antags/terminator.yml +++ /dev/null @@ -1,6 +0,0 @@ -- type: antag - id: Terminator - name: roles-antag-terminator-name - antagonist: true - setPreference: false - objective: roles-antag-terminator-objective diff --git a/Resources/Prototypes/Roles/Ghostroles/syndicate.yml b/Resources/Prototypes/Roles/Ghostroles/syndicate.yml new file mode 100644 index 0000000000..24c0d8b3e3 --- /dev/null +++ b/Resources/Prototypes/Roles/Ghostroles/syndicate.yml @@ -0,0 +1,27 @@ +- type: ghostRole + id: SyndicateKobold + name: ghost-role-information-syndicate-kobold-reinforcement-name + description: ghost-role-information-syndicate-kobold-reinforcement-description + rules: ghost-role-information-syndicate-kobold-reinforcement-rules + entityPrototype: MobKoboldSyndicateAgent + +- type: ghostRole + id: SyndicateKoboldNukeops + name: ghost-role-information-syndicate-kobold-reinforcement-name + description: ghost-role-information-syndicate-kobold-reinforcement-description + rules: ghost-role-information-syndicate-kobold-reinforcement-rules + entityPrototype: MobKoboldSyndicateAgentNukeops + +- type: ghostRole + id: SyndicateMonkey + name: ghost-role-information-syndicate-monkey-reinforcement-name + description: ghost-role-information-syndicate-monkey-reinforcement-description + rules: ghost-role-information-syndicate-monkey-reinforcement-name + entityPrototype: MobMonkeySyndicateAgent + +- type: ghostRole + id: SyndicateMonkeyNukeops + name: ghost-role-information-syndicate-monkey-reinforcement-name + description: ghost-role-information-syndicate-monkey-reinforcement-description + rules: ghost-role-information-syndicate-monkey-reinforcement-name + entityPrototype: MobMonkeySyndicateAgentNukeops \ No newline at end of file diff --git a/Resources/Prototypes/Roles/Jobs/Civilian/chaplain.yml b/Resources/Prototypes/Roles/Jobs/Civilian/chaplain.yml index c7395ff3e2..d4f8bdb067 100644 --- a/Resources/Prototypes/Roles/Jobs/Civilian/chaplain.yml +++ b/Resources/Prototypes/Roles/Jobs/Civilian/chaplain.yml @@ -5,8 +5,8 @@ playTimeTracker: JobChaplain requirements: - !type:CharacterDepartmentTimeRequirement - department: Epistemics # DeltaV - Epistemics Department replacing Science - min: 14400 #DeltaV 4 hours + department: Epistemics # Chaplain is now one of the station's "Crew-Aligned Wizards" + min: 14400 # 4 hours - !type:CharacterLogicOrRequirement requirements: - !type:CharacterSpeciesRequirement @@ -21,7 +21,7 @@ supervisors: job-supervisors-rd access: - Chapel - - Research # DeltaV - Move Chaplain into Epistemics + - Research - Maintenance special: - !type:AddComponentSpecial @@ -32,6 +32,7 @@ - type: InnatePsionicPowers powersToAdd: - TelepathyPower + - HealingWordPower - type: startingGear id: ChaplainGear @@ -40,7 +41,7 @@ back: ClothingBackpackChaplainFilled shoes: ClothingShoesColorBlack id: ChaplainPDA - ears: ClothingHeadsetScience # DeltaV - Move Chaplain into Epistemics + ears: ClothingHeadsetScience innerClothingSkirt: ClothingUniformJumpskirtChaplain satchel: ClothingBackpackSatchelChaplainFilled duffelbag: ClothingBackpackDuffelChaplainFilled diff --git a/Resources/Prototypes/Roles/Jobs/Civilian/lawyer.yml b/Resources/Prototypes/Roles/Jobs/Civilian/lawyer.yml index 67afdf8aff..b8e37c2beb 100644 --- a/Resources/Prototypes/Roles/Jobs/Civilian/lawyer.yml +++ b/Resources/Prototypes/Roles/Jobs/Civilian/lawyer.yml @@ -26,7 +26,7 @@ shoes: ClothingShoesBootsLaceup id: LawyerPDA ears: ClothingHeadsetSecurity - # TODO add copy of space law + pocket1: BookSecurity inhand: - BriefcaseBrownFilled innerClothingSkirt: ClothingUniformJumpskirtLawyerBlack diff --git a/Resources/Prototypes/Roles/Jobs/Engineering/atmospheric_technician.yml b/Resources/Prototypes/Roles/Jobs/Engineering/atmospheric_technician.yml index 834a85e7a0..1a6ddbc0c4 100644 --- a/Resources/Prototypes/Roles/Jobs/Engineering/atmospheric_technician.yml +++ b/Resources/Prototypes/Roles/Jobs/Engineering/atmospheric_technician.yml @@ -21,12 +21,12 @@ id: AtmosphericTechnicianGear equipment: jumpsuit: ClothingUniformJumpsuitAtmos - back: ClothingBackpackAtmosphericsFilled + back: ClothingBackpackEngineeringFilled shoes: ClothingShoesColorWhite eyes: ClothingEyesGlassesMeson id: AtmosPDA belt: ClothingBeltUtilityEngineering ears: ClothingHeadsetEngineering innerClothingSkirt: ClothingUniformJumpskirtAtmos - satchel: ClothingBackpackSatchelAtmosphericsFilled - duffelbag: ClothingBackpackDuffelAtmosphericsFilled + satchel: ClothingBackpackSatchelEngineeringFilled + duffelbag: ClothingBackpackDuffelEngineeringFilled diff --git a/Resources/Prototypes/Roles/Jobs/Fun/emergencyresponseteam.yml b/Resources/Prototypes/Roles/Jobs/Fun/emergencyresponseteam.yml index 22d0a4d77f..f1e8fc9cf8 100644 --- a/Resources/Prototypes/Roles/Jobs/Fun/emergencyresponseteam.yml +++ b/Resources/Prototypes/Roles/Jobs/Fun/emergencyresponseteam.yml @@ -27,7 +27,7 @@ id: ERTLeaderPDA ears: ClothingHeadsetAltCentCom belt: ClothingBeltSecurityFilled - pocket1: WeaponPistolN1984Nonlethal + pocket1: WeaponPistolN1984NonLethal pocket2: FlashlightSeclite - type: startingGear @@ -44,7 +44,7 @@ id: ERTLeaderPDA ears: ClothingHeadsetAltCentCom belt: ClothingBeltSecurityFilled - pocket1: WeaponPistolN1984Nonlethal + pocket1: WeaponPistolN1984NonLethal pocket2: FlashlightSeclite - type: startingGear diff --git a/Resources/Prototypes/Roles/Jobs/Fun/misc_startinggear.yml b/Resources/Prototypes/Roles/Jobs/Fun/misc_startinggear.yml index b2bcd8bcb4..7dd3e6823a 100644 --- a/Resources/Prototypes/Roles/Jobs/Fun/misc_startinggear.yml +++ b/Resources/Prototypes/Roles/Jobs/Fun/misc_startinggear.yml @@ -79,6 +79,15 @@ satchel: ClothingBackpackDuffelSyndicateOperative duffelbag: ClothingBackpackDuffelSyndicateOperative +# Syndicate Operative Outfit - Civilian +- type: startingGear + id: SyndicateOperativeGearCivilian + equipment: + jumpsuit: ClothingUniformJumpsuitSyndieFormal + back: ClothingBackpackDuffelSyndicate + shoes: ClothingShoesBootsCombat + gloves: ClothingHandsGlovesColorBlack + #Syndicate Operative Outfit - Basic - type: startingGear id: SyndicateOperativeGearBasic @@ -144,7 +153,7 @@ jumpsuit: ClothingUniformJumpsuitOperative back: ClothingBackpackDuffelSyndicateOperativeMedic mask: ClothingMaskGasSyndicate - eyes: ClothingEyesHudSyndicateMed # - Delta-V + eyes: ClothingEyesHudSyndicateAgent ears: ClothingHeadsetAltSyndicate gloves: ClothingHandsGlovesCombat outerClothing: ClothingOuterHardsuitSyndieMedic diff --git a/Resources/Prototypes/Roles/Jobs/Science/research_director.yml b/Resources/Prototypes/Roles/Jobs/Science/research_director.yml index e2d06f3af9..46d91ee00e 100644 --- a/Resources/Prototypes/Roles/Jobs/Science/research_director.yml +++ b/Resources/Prototypes/Roles/Jobs/Science/research_director.yml @@ -38,6 +38,7 @@ components: - type: BibleUser # Nyano - Lets them heal with bibles - type: Psionic # Nyano - They start with telepathic chat + powerSlots: 3 - !type:AddImplantSpecial implants: [ MindShieldImplant ] - !type:AddComponentSpecial diff --git a/Resources/Prototypes/Roles/Jobs/Security/detective.yml b/Resources/Prototypes/Roles/Jobs/Security/detective.yml index 861088b5e5..04dc55bc1f 100644 --- a/Resources/Prototypes/Roles/Jobs/Security/detective.yml +++ b/Resources/Prototypes/Roles/Jobs/Security/detective.yml @@ -27,7 +27,7 @@ id: DetectiveGear equipment: jumpsuit: ClothingUniformJumpsuitDetective - back: ClothingBackpackSecurityFilledDetective + back: ClothingBackpackSecurity shoes: ClothingShoesBootsCombatFilled eyes: ClothingEyesGlassesSunglasses head: ClothingHeadHatFedoraBrown @@ -36,5 +36,5 @@ ears: ClothingHeadsetSecurity belt: ClothingBeltHolsterFilled innerClothingSkirt: ClothingUniformJumpskirtDetective - satchel: ClothingBackpackSatchelSecurityFilledDetective - duffelbag: ClothingBackpackDuffelSecurityFilledDetective + satchel: ClothingBackpackSatchelSecurity + duffelbag: ClothingBackpackDuffelSecurity diff --git a/Resources/Prototypes/Roles/Jobs/Security/head_of_security.yml b/Resources/Prototypes/Roles/Jobs/Security/head_of_security.yml index f157853455..a815ed32e6 100644 --- a/Resources/Prototypes/Roles/Jobs/Security/head_of_security.yml +++ b/Resources/Prototypes/Roles/Jobs/Security/head_of_security.yml @@ -52,7 +52,6 @@ gloves: ClothingHandsGlovesCombat ears: ClothingHeadsetAltSecurity belt: ClothingBeltSecurityFilled - pocket1: WeaponPistolMk58Nonlethal innerClothingSkirt: ClothingUniformJumpskirtHoS satchel: ClothingBackpackSatchelHOSFilled duffelbag: ClothingBackpackDuffelHOSFilled diff --git a/Resources/Prototypes/Roles/Jobs/Security/security_cadet.yml b/Resources/Prototypes/Roles/Jobs/Security/security_cadet.yml index 0b28af7850..6596c2142d 100644 --- a/Resources/Prototypes/Roles/Jobs/Security/security_cadet.yml +++ b/Resources/Prototypes/Roles/Jobs/Security/security_cadet.yml @@ -29,14 +29,13 @@ id: SecurityCadetGear equipment: jumpsuit: ClothingUniformJumpsuitColorRed - back: ClothingBackpackSecurityFilled + back: ClothingBackpackSecurity shoes: ClothingShoesBootsCombatFilled outerClothing: ClothingOuterArmorDuraVest # DeltaV - ClothingOuterArmorBasic replaced in favour of stab vest. Sucks to suck, cadets id: SecurityCadetPDA ears: ClothingHeadsetSecurity belt: ClothingBeltSecurityFilled -# pocket1: WeaponPistolMk58Nonlethal # DeltaV - Security Cadet doesn't spawn with a gun pocket2: BookSecurity innerClothingSkirt: ClothingUniformJumpskirtColorRed - satchel: ClothingBackpackSatchelSecurityFilled - duffelbag: ClothingBackpackDuffelSecurityFilled + satchel: ClothingBackpackSatchelSecurity + duffelbag: ClothingBackpackDuffelSecurity diff --git a/Resources/Prototypes/Roles/Jobs/Security/security_officer.yml b/Resources/Prototypes/Roles/Jobs/Security/security_officer.yml index b81cef667e..01f14f8099 100644 --- a/Resources/Prototypes/Roles/Jobs/Security/security_officer.yml +++ b/Resources/Prototypes/Roles/Jobs/Security/security_officer.yml @@ -26,7 +26,7 @@ id: SecurityOfficerGear equipment: jumpsuit: ClothingUniformJumpsuitSec - back: ClothingBackpackSecurityFilled + back: ClothingBackpackSecurity shoes: ClothingShoesBootsCombatFilled eyes: ClothingEyesGlassesSunglasses head: ClothingHeadHelmetBasic @@ -34,7 +34,6 @@ id: SecurityPDA ears: ClothingHeadsetSecurity belt: ClothingBeltSecurityFilled - pocket1: WeaponPistolMk58Nonlethal innerClothingSkirt: ClothingUniformJumpskirtSec - satchel: ClothingBackpackSatchelSecurityFilled - duffelbag: ClothingBackpackDuffelSecurityFilled + satchel: ClothingBackpackSatchelSecurity + duffelbag: ClothingBackpackDuffelSecurity diff --git a/Resources/Prototypes/Roles/Jobs/Security/senior_officer.yml b/Resources/Prototypes/Roles/Jobs/Security/senior_officer.yml index 2623adf1fd..d395e0f5cd 100644 --- a/Resources/Prototypes/Roles/Jobs/Security/senior_officer.yml +++ b/Resources/Prototypes/Roles/Jobs/Security/senior_officer.yml @@ -35,7 +35,7 @@ id: SeniorOfficerGear equipment: jumpsuit: ClothingUniformJumpsuitSeniorOfficer - back: ClothingBackpackSecurityFilled + back: ClothingBackpackSecurity shoes: ClothingShoesBootsCombatFilled eyes: ClothingEyesGlassesSecurity head: ClothingHeadHatBeretSecurity @@ -43,7 +43,6 @@ id: SeniorOfficerPDA ears: ClothingHeadsetSecurity belt: ClothingBeltSecurityFilled - pocket1: WeaponPistolMk58Nonlethal innerClothingSkirt: ClothingUniformJumpskirtSeniorOfficer - satchel: ClothingBackpackSatchelSecurityFilled - duffelbag: ClothingBackpackDuffelSecurityFilled + satchel: ClothingBackpackSatchelSecurity + duffelbag: ClothingBackpackDuffelSecurity diff --git a/Resources/Prototypes/Roles/Jobs/Security/warden.yml b/Resources/Prototypes/Roles/Jobs/Security/warden.yml index 82101373db..5f68518b08 100644 --- a/Resources/Prototypes/Roles/Jobs/Security/warden.yml +++ b/Resources/Prototypes/Roles/Jobs/Security/warden.yml @@ -33,14 +33,13 @@ equipment: head: ClothingHeadHatWarden jumpsuit: ClothingUniformJumpsuitWarden - back: ClothingBackpackSecurityFilled + back: ClothingBackpackSecurity shoes: ClothingShoesBootsCombatFilled eyes: ClothingEyesGlassesSunglasses outerClothing: ClothingOuterCoatWarden id: WardenPDA ears: ClothingHeadsetSecurity belt: ClothingBeltSecurityFilled - pocket1: WeaponPistolMk58Nonlethal innerClothingSkirt: ClothingUniformJumpskirtWarden - satchel: ClothingBackpackSatchelSecurityFilled - duffelbag: ClothingBackpackDuffelSecurityFilled + satchel: ClothingBackpackSatchelSecurity + duffelbag: ClothingBackpackDuffelSecurity diff --git a/Resources/Prototypes/Shaders/displacement.yml b/Resources/Prototypes/Shaders/displacement.yml new file mode 100644 index 0000000000..5c90738008 --- /dev/null +++ b/Resources/Prototypes/Shaders/displacement.yml @@ -0,0 +1,10 @@ +- type: shader + id: DisplacedStencilDraw + kind: source + path: "/Textures/Shaders/displacement.swsl" + stencil: + ref: 1 + op: Keep + func: NotEqual + params: + displacementSize: 127 diff --git a/Resources/Prototypes/Shaders/shaders.yml b/Resources/Prototypes/Shaders/shaders.yml index b495490201..3f0cb5ae1f 100644 --- a/Resources/Prototypes/Shaders/shaders.yml +++ b/Resources/Prototypes/Shaders/shaders.yml @@ -104,3 +104,10 @@ id: SaturationScale kind: source path: "/Textures/Shaders/saturationscale.swsl" + + # Flight shaders + +- type: shader + id: Flap + kind: source + path: "/Textures/Shaders/flap.swsl" \ No newline at end of file diff --git a/Resources/Prototypes/Shuttles/shuttle_incoming_event.yml b/Resources/Prototypes/Shuttles/shuttle_incoming_event.yml new file mode 100644 index 0000000000..5819a934bf --- /dev/null +++ b/Resources/Prototypes/Shuttles/shuttle_incoming_event.yml @@ -0,0 +1,29 @@ +- type: preloadedGrid + id: ShuttleStriker + path: /Maps/Shuttles/ShuttleEvent/striker.yml + copies: 2 + +- type: preloadedGrid + id: ShuttleCargoLost + path: /Maps/Shuttles/ShuttleEvent/lost_cargo.yml + copies: 2 + +- type: preloadedGrid + id: TravelingCuisine + path: /Maps/Shuttles/ShuttleEvent/traveling_china_cuisine.yml + copies: 2 + +- type: preloadedGrid + id: DisasterEvacPod + path: /Maps/Shuttles/ShuttleEvent/disaster_evacpod.yml + copies: 3 + +- type: preloadedGrid + id: Honki + path: /Maps/Shuttles/ShuttleEvent/honki.yml + copies: 1 + +- type: preloadedGrid + id: SyndieEvacPod + path: /Maps/Shuttles/ShuttleEvent/syndie_evacpod.yml + copies: 2 diff --git a/Resources/Prototypes/SimpleStation14/Traits/disabilities.yml b/Resources/Prototypes/SimpleStation14/Traits/disabilities.yml deleted file mode 100644 index b7aa00353c..0000000000 --- a/Resources/Prototypes/SimpleStation14/Traits/disabilities.yml +++ /dev/null @@ -1,12 +0,0 @@ -- type: trait - id: Nearsighted - category: Visual - points: 1 - requirements: - - !type:CharacterJobRequirement - inverted: true - jobs: - - Borg - - MedicalBorg - components: - - type: Nearsighted diff --git a/Resources/Prototypes/SimpleStation14/tags.yml b/Resources/Prototypes/SimpleStation14/tags.yml deleted file mode 100644 index 3b885a5801..0000000000 --- a/Resources/Prototypes/SimpleStation14/tags.yml +++ /dev/null @@ -1,2 +0,0 @@ -- type: Tag - id: GlassesNearsight diff --git a/Resources/Prototypes/SoundCollections/expeditions.yml b/Resources/Prototypes/SoundCollections/expeditions.yml new file mode 100644 index 0000000000..526a16f3c2 --- /dev/null +++ b/Resources/Prototypes/SoundCollections/expeditions.yml @@ -0,0 +1,5 @@ +- type: soundCollection + id: ExpeditionEnd + files: + - /Audio/Expedition/tension_session.ogg + - /Audio/Expedition/deadline.ogg diff --git a/Resources/Prototypes/SoundCollections/flight.yml b/Resources/Prototypes/SoundCollections/flight.yml new file mode 100644 index 0000000000..cca2cfb014 --- /dev/null +++ b/Resources/Prototypes/SoundCollections/flight.yml @@ -0,0 +1,6 @@ +- type: soundCollection + id: WingFlaps + files: + - /Audio/Effects/Flight/wingflap1.ogg + - /Audio/Effects/Flight/wingflap2.ogg + - /Audio/Effects/Flight/wingflap3.ogg diff --git a/Resources/Prototypes/SoundCollections/footsteps.yml b/Resources/Prototypes/SoundCollections/footsteps.yml index bd51e6b445..e179584f6f 100644 --- a/Resources/Prototypes/SoundCollections/footsteps.yml +++ b/Resources/Prototypes/SoundCollections/footsteps.yml @@ -201,3 +201,13 @@ - /Audio/Effects/Footsteps/spurs1.ogg - /Audio/Effects/Footsteps/spurs2.ogg - /Audio/Effects/Footsteps/spurs3.ogg + +- type: soundCollection + id: FootstepBorg + files: + - /Audio/Effects/Footsteps/borgwalk1.ogg + +- type: soundCollection + id: FootstepHoverBorg + files: + - /Audio/Effects/Footsteps/borgwalk2.ogg diff --git a/Resources/Prototypes/SoundCollections/fox.yml b/Resources/Prototypes/SoundCollections/fox.yml new file mode 100644 index 0000000000..912ae24e9a --- /dev/null +++ b/Resources/Prototypes/SoundCollections/fox.yml @@ -0,0 +1,18 @@ +- type: soundCollection + id: Fox + files: + - /Audio/Animals/fox_squeak.ogg + - /Audio/Animals/fox1.ogg + - /Audio/Animals/fox2.ogg + - /Audio/Animals/fox3.ogg + - /Audio/Animals/fox4.ogg + - /Audio/Animals/fox5.ogg + - /Audio/Animals/fox6.ogg + - /Audio/Animals/fox7.ogg + - /Audio/Animals/fox8.ogg + - /Audio/Animals/fox9.ogg + - /Audio/Animals/fox10.ogg + - /Audio/Animals/fox11.ogg + - /Audio/Animals/fox12.ogg + - /Audio/Animals/fox13.ogg + - /Audio/Animals/fox14.ogg diff --git a/Resources/Prototypes/Species/human.yml b/Resources/Prototypes/Species/human.yml index a4008d318a..0d40cbfb03 100644 --- a/Resources/Prototypes/Species/human.yml +++ b/Resources/Prototypes/Species/human.yml @@ -47,11 +47,11 @@ Snout: points: 1 required: false - Tail: # the cat tail joke - points: 0 + Tail: + points: 1 required: false - HeadTop: # the cat ear joke - points: 0 + HeadTop: + points: 1 required: false Chest: points: 1 diff --git a/Resources/Prototypes/Species/ipc.yml b/Resources/Prototypes/Species/ipc.yml index 6d1a648523..c7675f781b 100644 --- a/Resources/Prototypes/Species/ipc.yml +++ b/Resources/Prototypes/Species/ipc.yml @@ -154,7 +154,7 @@ - type: marking id: MobIPCLLegDefault bodyPart: LLeg - markingCategory: RightLeg + markingCategory: LeftLeg speciesRestriction: [IPC] sprites: - sprite: Mobs/Species/IPC/parts.rsi @@ -168,7 +168,7 @@ - type: marking id: MobIPCLArmDefault bodyPart: LArm - markingCategory: RightArm + markingCategory: LeftArm speciesRestriction: [IPC] sprites: - sprite: Mobs/Species/IPC/parts.rsi @@ -182,7 +182,7 @@ - type: marking id: MobIPCLHandDefault bodyPart: LHand - markingCategory: RightArm + markingCategory: LeftHand speciesRestriction: [IPC] sprites: - sprite: Mobs/Species/IPC/parts.rsi @@ -196,7 +196,7 @@ - type: marking id: MobIPCLFootDefault bodyPart: LFoot - markingCategory: RightLeg + markingCategory: LeftFoot speciesRestriction: [IPC] sprites: - sprite: Mobs/Species/IPC/parts.rsi @@ -238,7 +238,7 @@ - type: marking id: MobIPCRHandDefault bodyPart: RHand - markingCategory: RightArm + markingCategory: RightHand speciesRestriction: [IPC] sprites: - sprite: Mobs/Species/IPC/parts.rsi @@ -252,7 +252,7 @@ - type: marking id: MobIPCRFootDefault bodyPart: RFoot - markingCategory: RightLeg + markingCategory: RightFoot speciesRestriction: [IPC] sprites: - sprite: Mobs/Species/IPC/parts.rsi diff --git a/Resources/Prototypes/Species/terminator.yml b/Resources/Prototypes/Species/terminator.yml deleted file mode 100644 index cfc5a7107c..0000000000 --- a/Resources/Prototypes/Species/terminator.yml +++ /dev/null @@ -1,110 +0,0 @@ -- type: species - id: Terminator - name: Terminator - roundStart: false - prototype: MobTerminatorEndoskeleton - sprites: MobTerminatorSprites - defaultSkinTone: "#fff9e2" - markingLimits: MobHumanMarkingLimits - maleFirstNames: skeletonNamesFirst - femaleFirstNames: skeletonNamesFirst - dollPrototype: MobSkeletonPersonDummy - skinColoration: TintedHues - -- type: speciesBaseSprites - id: MobTerminatorSprites - sprites: - Head: MobTerminatorHead - Chest: MobTerminatorTorso - LArm: MobTerminatorLArm - RArm: MobTerminatorRArm - LHand: MobTerminatorLHand - RHand: MobTerminatorRHand - LLeg: MobTerminatorLLeg - RLeg: MobTerminatorRLeg - LFoot: MobTerminatorLFoot - RFoot: MobTerminatorRFoot - -- type: humanoidBaseSprite - id: MobTerminatorHead - baseSprite: - sprite: Mobs/Species/Terminator/parts.rsi - state: head_m - -- type: humanoidBaseSprite - id: MobTerminatorHeadMale - baseSprite: - sprite: Mobs/Species/Terminator/parts.rsi - state: head_m - -- type: humanoidBaseSprite - id: MobTerminatorHeadFemale - baseSprite: - sprite: Mobs/Species/Terminator/parts.rsi - state: head_f - -- type: humanoidBaseSprite - id: MobTerminatorTorso - baseSprite: - sprite: Mobs/Species/Terminator/parts.rsi - state: torso_m - -- type: humanoidBaseSprite - id: MobTerminatorTorsoMale - baseSprite: - sprite: Mobs/Species/Terminator/parts.rsi - state: torso_m - -- type: humanoidBaseSprite - id: MobTerminatorTorsoFemale - baseSprite: - sprite: Mobs/Species/Terminator/parts.rsi - state: torso_f - -- type: humanoidBaseSprite - id: MobTerminatorLLeg - baseSprite: - sprite: Mobs/Species/Terminator/parts.rsi - state: l_leg - -- type: humanoidBaseSprite - id: MobTerminatorLArm - baseSprite: - sprite: Mobs/Species/Terminator/parts.rsi - state: l_arm - -- type: humanoidBaseSprite - id: MobTerminatorLHand - baseSprite: - sprite: Mobs/Species/Terminator/parts.rsi - state: l_hand - -- type: humanoidBaseSprite - id: MobTerminatorLFoot - baseSprite: - sprite: Mobs/Species/Terminator/parts.rsi - state: l_foot - -- type: humanoidBaseSprite - id: MobTerminatorRLeg - baseSprite: - sprite: Mobs/Species/Terminator/parts.rsi - state: r_leg - -- type: humanoidBaseSprite - id: MobTerminatorRArm - baseSprite: - sprite: Mobs/Species/Terminator/parts.rsi - state: r_arm - -- type: humanoidBaseSprite - id: MobTerminatorRHand - baseSprite: - sprite: Mobs/Species/Terminator/parts.rsi - state: r_hand - -- type: humanoidBaseSprite - id: MobTerminatorRFoot - baseSprite: - sprite: Mobs/Species/Terminator/parts.rsi - state: r_foot diff --git a/Resources/Prototypes/Species/vox.yml b/Resources/Prototypes/Species/vox.yml index 5d9724826d..b6cba51322 100644 --- a/Resources/Prototypes/Species/vox.yml +++ b/Resources/Prototypes/Species/vox.yml @@ -6,18 +6,19 @@ sprites: MobVoxSprites markingLimits: MobVoxMarkingLimits dollPrototype: MobVoxDummy - skinColoration: Hues + skinColoration: VoxFeathers + defaultSkinTone: "#6c741d" maleFirstNames: names_vox femaleFirstNames: names_vox naming: First sexes: - - Unsexed - + - Unsexed - type: speciesBaseSprites id: MobVoxSprites sprites: Head: MobVoxHead + Snout: MobHumanoidAnyMarking Hair: MobHumanoidAnyMarking FacialHair: MobHumanoidAnyMarking Chest: MobVoxTorso @@ -30,6 +31,7 @@ RLeg: MobVoxRLeg LFoot: MobVoxLFoot RFoot: MobVoxRFoot + Tail: MobHumanoidAnyMarking - type: markingPoints id: MobVoxMarkingLimits @@ -41,75 +43,94 @@ FacialHair: points: 1 required: false - Chest: + Head: points: 1 - required: false - RightLeg: - points: 2 - required: false - RightFoot: - points: 2 - required: false - LeftLeg: - points: 2 - required: false - LeftFoot: - points: 2 - required: false + required: true + Snout: + points: 1 + required: true + defaultMarkings: [ VoxBeak ] RightArm: - points: 2 - required: false + points: 1 + required: true + defaultMarkings: [ VoxRArmScales ] RightHand: - points: 2 - required: false + points: 1 + required: true + defaultMarkings: [ VoxRHandScales ] LeftArm: - points: 2 - required: false + points: 1 + required: true + defaultMarkings: [ VoxLArmScales ] LeftHand: - points: 2 + points: 1 + required: true + defaultMarkings: [ VoxLHandScales ] + RightLeg: + points: 1 + required: true + defaultMarkings: [ VoxRLegScales ] + LeftLeg: + points: 1 + required: true + defaultMarkings: [ VoxLLegScales ] + RightFoot: + points: 1 + required: true + defaultMarkings: [ VoxRFootScales ] + LeftFoot: + points: 1 + required: true + defaultMarkings: [ VoxLFootScales ] + Chest: + points: 1 required: false + Tail: + points: 1 + required: true + defaultMarkings: [ VoxTail ] - type: humanoidBaseSprite id: MobVoxEyes baseSprite: - sprite: Mobs/Customization/eyes.rsi - state: vox_eyes_s + sprite: Mobs/Species/Vox/parts.rsi + state: eyes - type: humanoidBaseSprite id: MobVoxHead baseSprite: sprite: Mobs/Species/Vox/parts.rsi - state: head_m + state: head - type: humanoidBaseSprite id: MobVoxHeadMale baseSprite: sprite: Mobs/Species/Vox/parts.rsi - state: head_m + state: head - type: humanoidBaseSprite id: MobVoxHeadFemale baseSprite: sprite: Mobs/Species/Vox/parts.rsi - state: head_f + state: head - type: humanoidBaseSprite id: MobVoxTorso baseSprite: sprite: Mobs/Species/Vox/parts.rsi - state: torso_m + state: torso - type: humanoidBaseSprite id: MobVoxTorsoMale baseSprite: sprite: Mobs/Species/Vox/parts.rsi - state: torso_m + state: torso - type: humanoidBaseSprite id: MobVoxTorsoFemale baseSprite: sprite: Mobs/Species/Vox/parts.rsi - state: torso_f + state: torso - type: humanoidBaseSprite id: MobVoxLLeg @@ -158,5 +179,3 @@ baseSprite: sprite: Mobs/Species/Vox/parts.rsi state: r_foot - -# diff --git a/Resources/Prototypes/Stacks/Materials/crystals.yml b/Resources/Prototypes/Stacks/Materials/crystals.yml index 274f9c10ea..e4c9e48718 100644 --- a/Resources/Prototypes/Stacks/Materials/crystals.yml +++ b/Resources/Prototypes/Stacks/Materials/crystals.yml @@ -4,3 +4,19 @@ icon: Objects/Specific/Syndicate/telecrystal.rsi spawn: Telecrystal1 itemSize: 1 + +- type: stack + id: Bluespace + name: bluespace + icon: { sprite: Objects/Materials/materials.rsi, state: bluespace } + spawn: MaterialBluespace1 + maxCount: 5 + itemSize: 1 + +- type: stack + id: Normality + name: normality + icon: { sprite: Objects/Materials/materials.rsi, state: normality } + spawn: MaterialNormality1 + maxCount: 5 + itemSize: 1 diff --git a/Resources/Prototypes/Stacks/Materials/materials.yml b/Resources/Prototypes/Stacks/Materials/materials.yml index 00153ef23c..0a05a89964 100644 --- a/Resources/Prototypes/Stacks/Materials/materials.yml +++ b/Resources/Prototypes/Stacks/Materials/materials.yml @@ -54,6 +54,14 @@ maxCount: 30 itemSize: 1 +- type: stack + id: Pyrotton + name: pyrotton + icon: { sprite: /Textures/Objects/Materials/materials.rsi, state: pyrotton } + spawn: MaterialPyrotton1 + maxCount: 30 + itemSize: 1 + - type: stack id: Bananium name: bananium diff --git a/Resources/Prototypes/Stacks/Materials/ore.yml b/Resources/Prototypes/Stacks/Materials/ore.yml index 2a95393c27..cf7fcb0483 100644 --- a/Resources/Prototypes/Stacks/Materials/ore.yml +++ b/Resources/Prototypes/Stacks/Materials/ore.yml @@ -46,7 +46,6 @@ maxCount: 30 itemSize: 2 - - type: stack id: BananiumOre name: bananium ore @@ -70,3 +69,19 @@ spawn: Salt1 maxCount: 30 itemSize: 2 + +- type: stack + id: BluespaceOre + name: raw bluespace + icon: { sprite: Objects/Materials/ore.rsi, state: bluespace } + spawn: BluespaceOre1 + maxCount: 30 + itemSize: 2 + +- type: stack + id: NormalityOre + name: raw normality + icon: { sprite: Objects/Materials/ore.rsi, state: normality } + spawn: NormalityOre1 + maxCount: 30 + itemSize: 2 diff --git a/Resources/Prototypes/Stacks/consumable_stacks.yml b/Resources/Prototypes/Stacks/consumable_stacks.yml index e9f0cab7e4..2936772f08 100644 --- a/Resources/Prototypes/Stacks/consumable_stacks.yml +++ b/Resources/Prototypes/Stacks/consumable_stacks.yml @@ -51,6 +51,14 @@ maxCount: itemSize: 1 +- type: stack + id: GroundCannabisRainbow + name: ground rainbow cannabis + icon: { sprite: /Textures/Objects/Specific/Hydroponics/rainbow_cannabis.rsi, state: powderpile_rainbow } + spawn: GroundCannabisRainbow + maxCount: + itemSize: 1 + - type: stack id: LeavesTobaccoDried name: dried tobacco leaves @@ -66,3 +74,11 @@ spawn: LeavesCannabisDried maxCount: 5 itemSize: 5 + +- type: stack + id: LeavesCannabisRainbowDried + name: dried rainbow cannabis leaves + icon: { sprite: /Textures/Objects/Specific/Hydroponics/rainbow_cannabis.rsi, state: dried } + spawn: LeavesCannabisRainbowDried + maxCount: 5 + itemSize: 5 diff --git a/Resources/Prototypes/StatusEffects/health.yml b/Resources/Prototypes/StatusEffects/health.yml index 562dbb336d..073b03a2ae 100644 --- a/Resources/Prototypes/StatusEffects/health.yml +++ b/Resources/Prototypes/StatusEffects/health.yml @@ -1,8 +1,8 @@ - type: statusIcon id: HealthIcon abstract: true - priority: 1 - locationPreference: Right + priority: 3 + locationPreference: Left isShaded: true - type: statusIcon diff --git a/Resources/Prototypes/Store/categories.yml b/Resources/Prototypes/Store/categories.yml index 11f8d509af..1b377902e4 100644 --- a/Resources/Prototypes/Store/categories.yml +++ b/Resources/Prototypes/Store/categories.yml @@ -7,6 +7,32 @@ id: Debug2 name: store-category-debug2 +#WIZARD +- type: storeCategory + id: SpellbookOffensive + name: store-caregory-spellbook-offensive + priority: 0 + +- type: storeCategory + id: SpellbookDefensive + name: store-caregory-spellbook-defensive + priority: 1 + +- type: storeCategory + id: SpellbookUtility + name: store-caregory-spellbook-utility + priority: 2 + +- type: storeCategory + id: SpellbookEquipment + name: store-caregory-spellbook-equipment + priority: 3 + +- type: storeCategory + id: SpellbookEvents + name: store-caregory-spellbook-events + priority: 4 + #uplink categoires - type: storeCategory id: UplinkWeapons @@ -68,6 +94,16 @@ name: store-category-deception priority: 10 +- type: storeCategory + id: UplinkChemicals + name: store-category-chemicals + priority: 11 + +- type: storeCategory + id: UplinkDisruption + name: store-category-disruption + priority: 12 + #revenant - type: storeCategory id: RevenantAbilities diff --git a/Resources/Prototypes/Store/currency.yml b/Resources/Prototypes/Store/currency.yml index 91039a75e6..b1cff06be2 100644 --- a/Resources/Prototypes/Store/currency.yml +++ b/Resources/Prototypes/Store/currency.yml @@ -1,7 +1,7 @@ - type: currency id: Telecrystal displayName: store-currency-display-telecrystal - cash: + cash: 1: Telecrystal1 canWithdraw: true @@ -10,7 +10,12 @@ displayName: store-currency-display-stolen-essence canWithdraw: false +- type: currency + id: WizCoin + displayName: store-currency-display-wizcoin + canWithdraw: false + #debug - type: currency id: DebugDollar - displayName: store-currency-display-debugdollar \ No newline at end of file + displayName: store-currency-display-debugdollar diff --git a/Resources/Prototypes/Store/presets.yml b/Resources/Prototypes/Store/presets.yml index 43b457a393..47768b68ec 100644 --- a/Resources/Prototypes/Store/presets.yml +++ b/Resources/Prototypes/Store/presets.yml @@ -13,13 +13,25 @@ - UplinkJob - UplinkArmor - UplinkPointless - - UplinkSales # WD EDIT + - UplinkSales currencyWhitelist: - Telecrystal - sales: # WD EDIT + sales: enabled: true minMultiplier: 0.2 maxMultiplier: 0.8 minItems: 3 maxItems: 8 salesCategory: UplinkSales + +- type: storePreset + id: StorePresetSpellbook + storeName: Spellbook + categories: + - SpellbookOffensive #Fireball, Rod Form + - SpellbookDefensive #Magic Missile, Wall of Force + - SpellbookUtility #Body Swap, Lich, Teleport, Knock, Polymorph + - SpellbookEquipment #Battlemage Robes, Staff of Locker + - SpellbookEvents #Summon Weapons, Summon Ghosts + currencyWhitelist: + - WizCoin diff --git a/Resources/Prototypes/Traits/Misc/singer_types.yml b/Resources/Prototypes/Traits/Misc/singer_types.yml index 28e4712ee9..605f3be913 100644 --- a/Resources/Prototypes/Traits/Misc/singer_types.yml +++ b/Resources/Prototypes/Traits/Misc/singer_types.yml @@ -10,9 +10,7 @@ "Flute": {73: 0} "Sax": {66: 0} defaultInstrument: "Voice" - midiUi: - key: enum.InstrumentUiKey.Key - type: InstrumentBoundUserInterface + midiUi: Key midiActionId: ActionHarpyPlayMidi - type: SingerInstrument @@ -20,7 +18,5 @@ instrumentList: "Voice": {52: 0} defaultInstrument: "Voice" - midiUi: - key: enum.InstrumentUiKey.Key - type: InstrumentBoundUserInterface + midiUi: Key midiActionId: ActionHarpyPlayMidi # TODO: custom action maybe? diff --git a/Resources/Prototypes/Traits/categories.yml b/Resources/Prototypes/Traits/categories.yml index e413706bfa..fcd89d5bbe 100644 --- a/Resources/Prototypes/Traits/categories.yml +++ b/Resources/Prototypes/Traits/categories.yml @@ -19,7 +19,24 @@ - type: traitCategory id: Speech root: true + subCategories: + - TraitsSpeechUncategorized + - TraitsSpeechAccents + - TraitsSpeechLanguages + +- type: traitCategory + id: TraitsSpeechUncategorized + +- type: traitCategory + id: TraitsSpeechAccents + +- type: traitCategory + id: TraitsSpeechLanguages - type: traitCategory id: Visual root: true + +- type: traitCategory + id: Language + root: true \ No newline at end of file diff --git a/Resources/Prototypes/Traits/disabilities.yml b/Resources/Prototypes/Traits/disabilities.yml index c0b942ea66..9961c84948 100644 --- a/Resources/Prototypes/Traits/disabilities.yml +++ b/Resources/Prototypes/Traits/disabilities.yml @@ -11,6 +11,20 @@ components: - type: PermanentBlindness +- type: trait + id: Nearsighted + category: Visual + points: 1 + requirements: + - !type:CharacterJobRequirement + inverted: true + jobs: + - Borg + - MedicalBorg + components: + - type: PermanentBlindness + blindness: 4 + - type: trait id: Narcolepsy category: Mental @@ -51,7 +65,7 @@ - type: trait id: Muted - category: Speech + category: Mental points: 4 requirements: - !type:CharacterJobRequirement @@ -65,7 +79,7 @@ - type: trait id: Uncloneable category: Physical - points: 4 + points: 1 requirements: - !type:CharacterJobRequirement inverted: true @@ -77,7 +91,7 @@ - type: trait id: FrontalLisp - category: Speech + category: TraitsSpeechAccents requirements: - !type:CharacterJobRequirement inverted: true @@ -88,6 +102,8 @@ inverted: true species: - IPC + - !type:CharacterItemGroupRequirement + group: TraitsAccents components: - type: FrontalLisp @@ -168,8 +184,8 @@ species: - IPC components: - - type: BloodDeficiency # 0.07 = start taking bloodloss damage at around ~21.4 minutes, - bloodLossAmount: 0.07 # then become crit ~10 minutes later + - type: BloodDeficiency # by default, start taking bloodloss damage at around ~21.4 minutes, + bloodLossPercentage: 0.0002333333 # then become crit ~10 minutes - type: trait id: Hemophilia @@ -191,3 +207,41 @@ damageModifiers: coefficients: Blunt: 1.1 + +- type: trait + id: Photophobia + category: Visual + points: 1 + requirements: + - !type:CharacterSpeciesRequirement + inverted: true + species: + - Vulpkanin # This trait functions exactly as-is for the Vulpkanin trait. + components: + - type: Flashable + eyeDamageChance: 0.3 + eyeDamage: 1 + durationMultiplier: 1.5 + +- type: trait + id: Clumsy + category: Physical + points: 1 + requirements: + - !type:CharacterJobRequirement + inverted: true + jobs: + - Clown # This trait functions exactly as is for the Clown's trait. + - !type:CharacterDepartmentRequirement + inverted: true + departments: + - Command # Because I know for a fact people will play Captain and grief with their inability to fight back. + - Security # Because I know for a fact people will play Security and grief with their inability to use guns. + components: + - type: Clumsy + clumsyDamage: + types: + Blunt: 5 + Piercing: 4 + groups: + Burn: 3 diff --git a/Resources/Prototypes/Traits/inconveniences.yml b/Resources/Prototypes/Traits/inconveniences.yml index b08116dc48..2c0df79264 100644 --- a/Resources/Prototypes/Traits/inconveniences.yml +++ b/Resources/Prototypes/Traits/inconveniences.yml @@ -23,13 +23,15 @@ - type: trait id: Stutter - category: Mental + category: TraitsSpeechAccents requirements: - !type:CharacterJobRequirement inverted: true jobs: - Borg - MedicalBorg + - !type:CharacterItemGroupRequirement + group: TraitsAccents components: - type: StutteringAccent matchRandomProb: 0.1 @@ -39,7 +41,7 @@ - type: trait id: ForeignerLight - category: Mental + category: TraitsSpeechLanguages points: 2 requirements: - !type:CharacterTraitRequirement @@ -53,7 +55,7 @@ - type: trait id: Foreigner - category: Mental + category: TraitsSpeechLanguages points: 4 requirements: # TODO: Add a requirement to know at least 1 non-gc language - !type:CharacterTraitRequirement diff --git a/Resources/Prototypes/Traits/languages.yml b/Resources/Prototypes/Traits/languages.yml new file mode 100644 index 0000000000..06b4890c11 --- /dev/null +++ b/Resources/Prototypes/Traits/languages.yml @@ -0,0 +1,94 @@ +- type: trait + id: SignLanguage + category: TraitsSpeechLanguages + points: 0 + requirements: + - !type:CharacterItemGroupRequirement + group: TraitsLanguagesBasic + languagesSpoken: + - Sign + languagesUnderstood: + - Sign + +- type: trait + id: SolCommon + category: TraitsSpeechLanguages + points: 0 + requirements: + - !type:CharacterItemGroupRequirement + group: TraitsLanguagesBasic + - !type:CharacterSpeciesRequirement + inverted: true + species: + - Human + languagesSpoken: + - SolCommon + languagesUnderstood: + - SolCommon + +- type: trait + id: Tradeband + category: TraitsSpeechLanguages + points: 0 + requirements: + - !type:CharacterItemGroupRequirement + group: TraitsLanguagesBasic + - !type:CharacterSpeciesRequirement + inverted: true + species: + - Harpy + languagesSpoken: + - Tradeband + languagesUnderstood: + - Tradeband + +- type: trait + id: Freespeak + category: TraitsSpeechLanguages + points: 0 + requirements: + - !type:CharacterItemGroupRequirement + group: TraitsLanguagesBasic + languagesSpoken: + - Freespeak + languagesUnderstood: + - Freespeak + +- type: trait + id: Elyran + category: TraitsSpeechLanguages + points: 0 + requirements: + - !type:CharacterItemGroupRequirement + group: TraitsLanguagesBasic + languagesSpoken: + - Elyran + languagesUnderstood: + - Elyran + +- type: trait + id: ValyrianStandard + category: TraitsSpeechLanguages + points: 1 + requirements: + - !type:CharacterItemGroupRequirement + group: TraitsLanguagesBasic + languagesSpoken: + - ValyrianStandard + languagesUnderstood: + - ValyrianStandard + +- type: trait + id: Azaziba + category: TraitsSpeechLanguages + points: 1 + requirements: + - !type:CharacterSpeciesRequirement + species: + - Reptilian + - !type:CharacterItemGroupRequirement + group: TraitsLanguagesBasic + languagesSpoken: + - Azaziba + languagesUnderstood: + - Azaziba \ No newline at end of file diff --git a/Resources/Prototypes/Traits/mental.yml b/Resources/Prototypes/Traits/mental.yml new file mode 100644 index 0000000000..4a50c8c397 --- /dev/null +++ b/Resources/Prototypes/Traits/mental.yml @@ -0,0 +1,236 @@ +- type: trait + id: HighPotential + category: Mental + points: -5 + requirements: + - !type:CharacterLogicOrRequirement + requirements: + - !type:CharacterTraitRequirement + traits: + - LatentPsychic + - !type:CharacterJobRequirement + jobs: + - Chaplain + - Librarian + - ResearchDirector + - ForensicMantis + - !type:CharacterLogicOrRequirement + requirements: + - !type:CharacterSpeciesRequirement + inverted: true + species: + - IPC + - !type:CharacterTraitRequirement + traits: + - AnomalousPositronics + - !type:CharacterSpeciesRequirement + inverted: true + species: + - Oni + - !type:CharacterTraitRequirement + inverted: true + traits: + - LowPotential + components: + - type: PotentiaModifier + potentiaMultiplier: 1.25 + +- type: trait + id: LowPotential + category: Mental + points: 4 + requirements: + - !type:CharacterLogicOrRequirement + requirements: + - !type:CharacterTraitRequirement + traits: + - LatentPsychic + - !type:CharacterJobRequirement + jobs: + - Chaplain + - Librarian + - ResearchDirector + - ForensicMantis + - !type:CharacterLogicOrRequirement + requirements: + - !type:CharacterSpeciesRequirement + inverted: true + species: + - IPC + - !type:CharacterTraitRequirement + traits: + - AnomalousPositronics + - !type:CharacterSpeciesRequirement + inverted: true + species: + - Oni + - !type:CharacterTraitRequirement + inverted: true + traits: + - HighPotential + components: + - type: PotentiaModifier + potentiaMultiplier: 0.75 + +- type: trait + id: LowAmplification + category: Mental + points: 3 + requirements: + - !type:CharacterLogicOrRequirement + requirements: + - !type:CharacterTraitRequirement + traits: + - LatentPsychic + - !type:CharacterJobRequirement + jobs: + - Chaplain + - Librarian + - ResearchDirector + - ForensicMantis + - !type:CharacterLogicOrRequirement + requirements: + - !type:CharacterSpeciesRequirement + inverted: true + species: + - IPC + - !type:CharacterTraitRequirement + traits: + - AnomalousPositronics + - !type:CharacterTraitRequirement + inverted: true + traits: + - HighAmplification + - PowerOverwhelming + psionicPowers: + - LowAmplification + +- type: trait + id: HighAmplification + category: Mental + points: -3 + requirements: + - !type:CharacterLogicOrRequirement + requirements: + - !type:CharacterTraitRequirement + traits: + - LatentPsychic + - !type:CharacterJobRequirement + jobs: + - Chaplain + - Librarian + - ResearchDirector + - ForensicMantis + - !type:CharacterLogicOrRequirement + requirements: + - !type:CharacterSpeciesRequirement + inverted: true + species: + - IPC + - !type:CharacterTraitRequirement + traits: + - AnomalousPositronics + - !type:CharacterTraitRequirement + inverted: true + traits: + - LowAmplification + - PowerOverwhelming + psionicPowers: + - LowAmplification + +- type: trait + id: PowerOverwhelming + category: Mental + points: -10 + requirements: + - !type:CharacterLogicOrRequirement + requirements: + - !type:CharacterTraitRequirement + traits: + - LatentPsychic + - !type:CharacterJobRequirement + jobs: + - Chaplain + - Librarian + - ResearchDirector + - ForensicMantis + - !type:CharacterLogicOrRequirement + requirements: + - !type:CharacterSpeciesRequirement + inverted: true + species: + - IPC + - !type:CharacterTraitRequirement + traits: + - AnomalousPositronics + - !type:CharacterTraitRequirement + inverted: true + traits: + - LowAmplification + - HighAmplification + psionicPowers: + - PowerOverwhelming + +- type: trait + id: LowDampening + category: Mental + points: 3 + requirements: + - !type:CharacterLogicOrRequirement + requirements: + - !type:CharacterTraitRequirement + traits: + - LatentPsychic + - !type:CharacterJobRequirement + jobs: + - Chaplain + - Librarian + - ResearchDirector + - ForensicMantis + - !type:CharacterLogicOrRequirement + requirements: + - !type:CharacterSpeciesRequirement + inverted: true + species: + - IPC + - !type:CharacterTraitRequirement + traits: + - AnomalousPositronics + - !type:CharacterTraitRequirement + inverted: true + traits: + - HighDampening + psionicPowers: + - LowDampening + +- type: trait + id: HighDampening + category: Mental + points: -3 + requirements: + - !type:CharacterLogicOrRequirement + requirements: + - !type:CharacterTraitRequirement + traits: + - LatentPsychic + - !type:CharacterJobRequirement + jobs: + - Chaplain + - Librarian + - ResearchDirector + - ForensicMantis + - !type:CharacterLogicOrRequirement + requirements: + - !type:CharacterSpeciesRequirement + inverted: true + species: + - IPC + - !type:CharacterTraitRequirement + traits: + - AnomalousPositronics + - !type:CharacterTraitRequirement + inverted: true + traits: + - LowDampening + psionicPowers: + - HighDampening diff --git a/Resources/Prototypes/Traits/neutral.yml b/Resources/Prototypes/Traits/neutral.yml index b9f988106d..3b63c930e8 100644 --- a/Resources/Prototypes/Traits/neutral.yml +++ b/Resources/Prototypes/Traits/neutral.yml @@ -1,19 +1,24 @@ - type: trait id: PirateAccent - category: Speech + category: TraitsSpeechAccents + requirements: + - !type:CharacterItemGroupRequirement + group: TraitsAccents components: - type: PirateAccent - type: trait id: Accentless - category: Speech - points: -2 + category: TraitsSpeechAccents + points: -1 requirements: - !type:CharacterJobRequirement inverted: true jobs: - Borg - MedicalBorg + - !type:CharacterItemGroupRequirement + group: TraitsAccents components: - type: Accentless removes: @@ -24,7 +29,10 @@ - type: trait id: Southern - category: Speech + category: TraitsSpeechAccents + requirements: + - !type:CharacterItemGroupRequirement + group: TraitsAccents components: - type: SouthernAccent @@ -54,9 +62,8 @@ inverted: true traits: - Sanguine - components: - - type: MoodModifyTrait - moodId: TraitSaturnine + moodEffects: + - TraitSaturnine - type: trait id: Sanguine @@ -72,6 +79,30 @@ inverted: true traits: - Saturnine + moodEffects: + - TraitSanguine + +- type: trait + id: AddictionNicotine + category: Mental + points: 1 + requirements: + - !type:CharacterJobRequirement + inverted: true + jobs: + - Borg + - MedicalBorg + - !type:CharacterSpeciesRequirement + inverted: true + species: + - IPC + moodEffects: + - NicotineWithdrawal + +- type: trait + id: Liar + category: Mental components: - - type: MoodModifyTrait - moodId: TraitSanguine \ No newline at end of file + - type: ReplacementAccent + replacementChance: 0.15 + accent: liar diff --git a/Resources/Prototypes/Traits/physical.yml b/Resources/Prototypes/Traits/physical.yml index cfc15d4ee2..288386b8f4 100644 --- a/Resources/Prototypes/Traits/physical.yml +++ b/Resources/Prototypes/Traits/physical.yml @@ -231,3 +231,371 @@ Blunt: 1.5 Slash: 1.5 Piercing: 1.5 + +- type: trait + id: Small + category: Physical + points: -2 + requirements: + - !type:CharacterSpeciesRequirement + inverted: true + species: + - Felinid # Felinids already have this feature by default. + - !type:CharacterHeightRequirement + max: 150 + - !type:CharacterWidthRequirement + max: 32 + components: + - type: PseudoItem + storedOffset: 0,17 + shape: + - 0,0,1,4 + - 0,2,3,4 + - 4,0,5,4 + +- type: trait + id: TemperatureTolerance + category: Physical + points: -1 + requirements: + - !type:CharacterSpeciesRequirement + inverted: true + species: + - Vulpkanin # This trait functions exactly as-is for the Vulpkanin trait. + components: + - type: TemperatureProtection + coefficient: 0.1 # Enough resistance to walk into the chef's freezer, or tolerate daytime temperatures on Glacier without a jacket. + +# These traits largely exist to demonstrate more of the "Component Removals" functionality. This way contributors +# can get used to seeing that they can "Remove and Replace" a pre-existing component. +# When declared, componentRemovals work like a "RemComp" that activates upon joining a round. +- type: trait + id: Talons + category: Physical + points: -1 + requirements: + - !type:CharacterSpeciesRequirement + inverted: true + species: + - Harpy # Harpies already have talons + - Arachnid # Apparently they have a "piercing" bite + - !type:CharacterTraitRequirement + inverted: true + traits: + - Claws + componentRemovals: + - MeleeWeapon # Remove the original innate melee attack, so that it can be replaced with a new one. + components: + - type: MeleeWeapon + soundHit: + collection: AlienClaw + animation: WeaponArcClaw + damage: + types: + Piercing: 5 # No, this isn't "OP", this is literally the worst brute damage type in the game. + # Same deal as Slash, except that a majority of all armor provides Piercing resistance. + +- type: trait + id: Claws + category: Physical + points: -1 + requirements: + - !type:CharacterSpeciesRequirement + inverted: true + species: + - Felinid # Felinids already have cat claws. + - Reptilian # Reptilians also have cat claws. + # - Vulpkanin # Vulpkanin have "Blunt" claws. One could argue this trait "Sharpens" their claws. + - !type:CharacterTraitRequirement + inverted: true + traits: + - Talons + componentRemovals: + - MeleeWeapon # Remove the original innate melee attack, so that it can be replaced with a new one. + components: + - type: MeleeWeapon + soundHit: + collection: AlienClaw + angle: 30 + animation: WeaponArcClaw + damage: + types: + Slash: 5 # Trade stamina damage on hit for a very minor amount of extra bleed. + # Blunt also deals bleed damage, so this is more of a sidegrade. + +- type: trait + id: NaturalWeaponRemoval + category: Physical + points: 0 + requirements: + - !type:CharacterSpeciesRequirement + inverted: true + species: + - Human + - Oni + - SlimePerson + - !type:CharacterTraitRequirement + inverted: true + traits: + - Talons + - Claws + componentRemovals: + - MeleeWeapon # Remove the original innate melee attack, so that it can be replaced with a new one. + components: + - type: MeleeWeapon + soundHit: + collection: Punch + angle: 30 + animation: WeaponArcFist + damage: + types: + Blunt: 5 + +- type: trait + id: StrikingCalluses + category: Physical + points: -4 + requirements: + - !type:CharacterJobRequirement + inverted: true + jobs: + - Prisoner # Bionics should be "Confiscated" from long term prisoners. + - !type:CharacterSpeciesRequirement + species: + - Human # Entirely arbitrary, I've decided I want a trait unique to humans. Since they don't normally get anything exciting. + # When we get the Character Records system in, I also want to make this require certain Backgrounds. + - !type:CharacterTraitRequirement + inverted: true + traits: + - Claws + - Talons + - !type:CharacterLogicOrRequirement + requirements: + - !type:CharacterTraitRequirement + traits: + - MartialArtist + - !type:CharacterJobRequirement + jobs: + - Boxer + componentRemovals: + - MeleeWeapon + components: + - type: MeleeWeapon + soundHit: + collection: Punch + angle: 30 + animation: WeaponArcFist + damage: + types: + Blunt: 6 + +- type: trait + id: Spinarette + category: Physical + points: -4 + requirements: + - !type:CharacterJobRequirement + inverted: true + jobs: + - Prisoner # Bionics should be "Confiscated" from long term prisoners. + - !type:CharacterSpeciesRequirement + inverted: true + species: + - Arachnid + - Arachne + - IPC + components: + - type: Sericulture + action: ActionSericulture + productionLength: 2 + entityProduced: MaterialWebSilk1 + hungerCost: 4 + +- type: trait + id: BionicArm + category: Physical + points: -8 + requirements: + - !type:CharacterJobRequirement + inverted: true + jobs: + - Prisoner # Bionics should be "Confiscated" from long term prisoners. + components: + - type: Prying + speedModifier: 1 + pryPowered: true + +- type: trait + id: PlateletFactories + category: Physical + points: -10 + requirements: + - !type:CharacterJobRequirement + inverted: true + jobs: + - Prisoner # Bionics should be "Confiscated" from long term prisoners. + - !type:CharacterSpeciesRequirement + inverted: true + species: + - IPC + componentRemovals: + - PassiveDamage + components: + - type: PassiveDamage + allowedStates: + - Alive + - Critical + damageCap: 200 + damage: + groups: + Brute: -0.07 + Burn: -0.07 + Airloss: -0.07 + Toxin: -0.07 + Genetic: -0.07 + +- type: trait + id: DermalArmor + category: Physical + points: -9 + requirements: + - !type:CharacterJobRequirement + inverted: true + jobs: + - Prisoner # Bionics should be "Confiscated" from long term prisoners. + - !type:CharacterSpeciesRequirement + species: + - Human + componentRemovals: + - Damageable + components: + - type: Damageable + damageModifierSet: DermalArmor + +- type: trait + id: CyberEyes + category: Physical + points: -8 + requirements: + - !type:CharacterJobRequirement + inverted: true + jobs: + - Prisoner # Bionics should be "Confiscated" from long term prisoners. + - !type:CharacterTraitRequirement + inverted: true + traits: + - Photophobia + - Blindness + - Nearsighted + componentRemovals: + - Flashable + components: + - type: FlashImmunity + - type: EyeProtection + - type: CyberEyes + +- type: trait + id: CyberEyesSecurity + category: Physical + points: -1 + requirements: + - !type:CharacterJobRequirement + inverted: true + jobs: + - Prisoner # Bionics should be "Confiscated" from long term prisoners. + - !type:CharacterDepartmentRequirement + departments: + - Security + - !type:CharacterTraitRequirement + traits: + - CyberEyes + - !type:CharacterTraitRequirement + inverted: true + traits: + - CyberEyesOmni + components: + - type: ShowJobIcons + - type: ShowMindShieldIcons + - type: ShowCriminalRecordIcons + +- type: trait + id: CyberEyesMedical + category: Physical + points: -1 + requirements: + - !type:CharacterJobRequirement + inverted: true + jobs: + - Prisoner # Bionics should be "Confiscated" from long term prisoners. + - !type:CharacterTraitRequirement + traits: + - CyberEyes + - !type:CharacterTraitRequirement + inverted: true + traits: + - CyberEyesDiagnostic + - CyberEyesOmni + components: + - type: ShowHealthBars + damageContainers: + - Biological + - type: ShowHealthIcons + damageContainers: + - Biological + +- type: trait + id: CyberEyesDiagnostic + category: Physical + points: -1 + requirements: + - !type:CharacterJobRequirement + inverted: true + jobs: + - Prisoner # Bionics should be "Confiscated" from long term prisoners. + - !type:CharacterTraitRequirement + traits: + - CyberEyes + - !type:CharacterTraitRequirement + inverted: true + traits: + - CyberEyesMedical + - CyberEyesOmni + components: + - type: ShowHealthBars + damageContainers: + - Inorganic + - Silicon + +- type: trait + id: CyberEyesOmni + category: Physical + points: -3 + requirements: + - !type:CharacterJobRequirement + inverted: true + jobs: + - Prisoner # Bionics should be "Confiscated" from long term prisoners. + - !type:CharacterDepartmentRequirement + departments: + - Security + - !type:CharacterTraitRequirement + traits: + - CyberEyes + - !type:CharacterTraitRequirement + inverted: true + traits: + - CyberEyesMedical + - CyberEyesDiagnostic + - CyberEyesSecurity + components: + - type: ShowJobIcons + - type: ShowMindShieldIcons + - type: ShowCriminalRecordIcons + - type: ShowHealthIcons + damageContainers: + - Biological + - type: ShowHealthBars + damageContainers: + - Biological + - Inorganic + - Silicon diff --git a/Resources/Prototypes/Traits/skills.yml b/Resources/Prototypes/Traits/skills.yml index ed7c0c8a47..0e4868f19b 100644 --- a/Resources/Prototypes/Traits/skills.yml +++ b/Resources/Prototypes/Traits/skills.yml @@ -98,17 +98,6 @@ species: - Felinid -- type: trait - id: SignLanguage - category: Visual - points: -2 - components: - - type: LanguageKnowledgeModifier - speaks: - - Sign - understands: - - Sign - - type: trait id: Voracious category: Physical @@ -270,7 +259,7 @@ points: -3 components: - type: StepTriggerImmune - whitelist: # WD EDIT + whitelist: types: - Shard - Landmine diff --git a/Resources/Prototypes/Voice/disease_emotes.yml b/Resources/Prototypes/Voice/disease_emotes.yml index 7845fd3e6d..6b9914ad45 100644 --- a/Resources/Prototypes/Voice/disease_emotes.yml +++ b/Resources/Prototypes/Voice/disease_emotes.yml @@ -1,43 +1,65 @@ - type: emote id: Sneeze + name: chat-emote-name-sneeze category: Vocal - chatMessages: [ sneezes ] + chatMessages: [ "chat-emote-msg-sneeze" ] - type: emote id: Cough + name: chat-emote-name-cough + icon: Interface/Emotes/cough.png category: Vocal - chatMessages: [ coughs ] + chatMessages: [ "chat-emote-msg-cough" ] + whitelist: + components: + - Vocal + blacklist: + components: + - BorgChassischatMessages chatTriggers: - coughs - type: emote id: CatMeow + name: chat-emote-name-catmeow category: Vocal - chatMessages: [ meows ] + chatMessages: [ "chat-emote-msg-catmeow" ] - type: emote id: CatHisses + name: chat-emote-name-cathisses category: Vocal - chatMessages: [ hisses ] + chatMessages: [ "chat-emote-msg-cathisses" ] - type: emote id: MonkeyScreeches + name: chat-emote-name-monkeyscreeches category: Vocal - chatMessages: [ screeches ] + chatMessages: [ "chat-emote-msg-monkeyscreeches" ] - type: emote id: RobotBeep + name: chat-emote-name-robotbeep category: Vocal - chatMessages: [ beeps ] + chatMessages: [ "chat-emote-msg-beep" ] - type: emote id: Yawn + name: chat-emote-name-yawn + icon: Interface/Emotes/yawn.png category: Vocal - chatMessages: [ yawns ] + chatMessages: [ "chat-emote-msg-yawn" ] + whitelist: + components: + - Vocal + blacklist: + components: + - BorgChassischatMessages chatTriggers: - yawns - type: emote id: Snore + name: chat-emote-name-snore category: Vocal - chatMessages: [ snores ] + chatMessages: [ "chat-emote-msg-snore" ] diff --git a/Resources/Prototypes/Voice/speech_emote_sounds.yml b/Resources/Prototypes/Voice/speech_emote_sounds.yml index 2ec7111076..a5d05e24b7 100644 --- a/Resources/Prototypes/Voice/speech_emote_sounds.yml +++ b/Resources/Prototypes/Voice/speech_emote_sounds.yml @@ -72,7 +72,7 @@ collection: Weh - type: emoteSounds - id: UnisexReptilian + id: MaleReptilian params: variation: 0.125 sounds: @@ -89,6 +89,24 @@ Weh: collection: Weh +- type: emoteSounds + id: FemaleReptilian + params: + variation: 0.125 + sounds: + Scream: + path: /Audio/Voice/Reptilian/reptilian_scream.ogg + Laugh: + path: /Audio/Animals/lizard_happy.ogg + Honk: + collection: BikeHorn + Whistle: + collection: Whistles + Crying: + collection: FemaleCry + Weh: + collection: Weh + - type: emoteSounds id: MaleSlime sounds: @@ -316,6 +334,26 @@ Ping: path: /Audio/Effects/Cargo/ping.ogg +- type: emoteSounds + id: UnisexSiliconSyndicate + params: + variation: 0.05 + sounds: + Laugh: + path: /Audio/Voice/Silicon/syndieborg_laugh.ogg + Beep: + path: /Audio/Machines/twobeep.ogg + Chime: + path: /Audio/Machines/chime.ogg + Buzz: + path: /Audio/Machines/buzz-sigh.ogg + Buzz-Two: + path: /Audio/Machines/buzz-two.ogg + Honk: + path: /Audio/Items/bikehorn.ogg + Ping: + path: /Audio/Effects/Cargo/ping.ogg + # body emotes - type: emoteSounds id: GeneralBodyEmotes diff --git a/Resources/Prototypes/Voice/speech_emotes.yml b/Resources/Prototypes/Voice/speech_emotes.yml index 1b9a36b305..9662dab2a2 100644 --- a/Resources/Prototypes/Voice/speech_emotes.yml +++ b/Resources/Prototypes/Voice/speech_emotes.yml @@ -1,88 +1,162 @@ # vocal emotes - type: emote id: Scream + name: chat-emote-name-scream category: Vocal - buttonText: "emote-chat-button-text-scream" - chatMessages: [ "emote-chat-messages-scream-1", "emote-chat-messages-scream-2", "emote-chat-messages-scream-3", "emote-chat-messages-scream-4" ] + icon: Interface/Actions/scream.png + whitelist: + components: + - Vocal + blacklist: + components: + - BorgChassis + chatMessages: ["chat-emote-msg-scream"] chatTriggers: - "emote-chat-messages-scream-1" - "emote-chat-messages-scream-2" - "emote-chat-messages-scream-3" - "emote-chat-messages-scream-4" - allowMenu: true + - type: emote id: Laugh + name: chat-emote-name-laugh category: Vocal - buttonText: "emote-chat-button-text-laugh" - chatMessages: [ "emote-chat-messages-laugh-1", "emote-chat-messages-laugh-2", "emote-chat-messages-laugh-3", "emote-chat-messages-laugh-4" ] + icon: Interface/Emotes/laugh.png + whitelist: + components: + - Vocal + blacklist: + components: + - BorgChassischatMessages + chatMessages: ["chat-emote-msg-laugh"] chatTriggers: - "emote-chat-messages-laugh-1" - "emote-chat-messages-laugh-2" - "emote-chat-messages-laugh-3" - "emote-chat-messages-laugh-4" - allowMenu: true - type: emote id: Honk + name: chat-emote-name-honk category: Vocal - chatMessages: [ "emote-chat-messages-honk-1" ] + icon: Interface/Emotes/honk.png + chatMessages: ["chat-emote-msg-honk"] + whitelist: + requireAll: true + components: + - Vocal + - BorgChassischatMessages chatTriggers: - "emote-chat-messages-honk-1" - type: emote id: Sigh + name: chat-emote-name-sigh category: Vocal - buttonText: "emote-chat-button-text-sigh" - chatMessages: [ "emote-chat-messages-sigh-1" ] + icon: Interface/Emotes/sigh.png + whitelist: + components: + - Vocal + blacklist: + components: + - BorgChassischatMessages + chatMessages: ["chat-emote-msg-sigh"] chatTriggers: - "emote-chat-messages-sigh-1" - allowMenu: true - type: emote id: Whistle + name: chat-emote-name-whistle category: Vocal - buttonText: "emote-chat-button-text-whistle" - chatMessages: [ "emote-chat-messages-whistle-1" ] + icon: Interface/Emotes/whistle.png + whitelist: + components: + - Vocal + blacklist: + components: + - BorgChassis + chatMessages: ["chat-emote-msg-whistle"] chatTriggers: - "emote-chat-messages-whistle-1" - allowMenu: true - type: emote id: Crying + name: chat-emote-name-crying category: Vocal - buttonText: "emote-chat-button-text-crying" - chatMessages: [ "emote-chat-messages-crying-1" ] + icon: Interface/Emotes/cry.png + whitelist: + components: + - Vocal + blacklist: + components: + - BorgChassis + chatMessages: ["chat-emote-msg-crying"] chatTriggers: - "emote-chat-messages-crying-1" - "emote-chat-messages-crying-2" - allowMenu: true - type: emote id: Squish + name: chat-emote-name-squish category: Vocal - chatMessages: [ "emote-chat-messages-squish-1" ] + available: false + icon: Interface/Emotes/squish.png + whitelist: + components: + - Vocal + blacklist: + components: + - BorgChassis + chatMessages: ["chat-emote-msg-squish"] chatTriggers: - "emote-chat-messages-squish-1" - type: emote id: Chitter + name: chat-emote-name-chitter category: Vocal - chatMessages: [ "emote-chat-messages-chitter-1" ] + available: false + icon: Interface/Emotes/chitter.png + whitelist: + components: + - Vocal + blacklist: + components: + - BorgChassis + chatMessages: ["chat-emote-msg-chitter"] chatTriggers: - "emote-chat-messages-chitter-1" - type: emote id: Squeak + name: chat-emote-name-squeak category: Vocal - chatMessages: [ "emote-chat-messages-squeak-1" ] + available: false + icon: Interface/Emotes/squeak.png + whitelist: + components: + - Vocal + blacklist: + components: + - BorgChassis + chatMessages: ["chat-emote-msg-squeak"] chatTriggers: - "emote-chat-messages-squeak-1" - type: emote id: Click + name: chat-emote-name-click category: Vocal - chatMessages: [ "emote-chat-messages-click-1" ] + available: false + icon: Interface/Emotes/click.png + whitelist: + components: + - Vocal + blacklist: + components: + - BorgChassis + chatMessages: ["chat-emote-msg-click"] chatTriggers: - "emote-chat-messages-click-1" - "emote-chat-messages-click-2" @@ -90,18 +164,31 @@ # hand emotes - type: emote id: Clap + name: chat-emote-name-clap category: Hands - buttonText: "emote-chat-button-text-clap" - chatMessages: [ "emote-chat-messages-clap-1" ] + icon: Interface/Emotes/clap.png + whitelist: + components: + - Hands + blacklist: + components: + - BorgChassis + chatMessages: ["chat-emote-msg-clap"] chatTriggers: - "emote-chat-messages-clap-1" - allowMenu: true - type: emote id: Snap + name: chat-emote-name-snap category: Hands - buttonText: "emote-chat-button-text-snap" - chatMessages: [ "emote-chat-messages-snap-1" ] # snaps <{THEIR($ent)}> fingers? + icon: Interface/Emotes/snap.png + whitelist: + components: + - Hands + blacklist: + components: + - BorgChassis + chatMessages: ["chat-emote-msg-snap"] # snaps <{THEIR($ent)}> fingers? chatTriggers: - "emote-chat-messages-snap-1" - "emote-chat-messages-snap-2" @@ -110,54 +197,98 @@ - "emote-chat-messages-snap-5" - "emote-chat-messages-snap-6" - "emote-chat-messages-snap-7" - allowMenu: true - type: emote id: Salute + name: chat-emote-name-salute category: Hands - buttonText: "emote-chat-button-text-salute" - chatMessages: [ "emote-chat-messages-salute-1" ] + icon: Interface/Emotes/salute.png + whitelist: + components: + - Hands + blacklist: + components: + - BorgChassis + chatMessages: ["chat-emote-msg-salute"] chatTriggers: - "emote-chat-messages-salute-1" - allowMenu: true - type: emote id: DefaultDeathgasp - chatMessages: [ "emote-chat-messages-deathgasp-1" ] + name: chat-emote-name-deathgasp + icon: Interface/Emotes/deathgasp.png + whitelist: + components: + - MobState + chatMessages: ["chat-emote-msg-deathgasp"] + chatTriggers: + - deathgasp + +- type: emote + id: MonkeyDeathgasp + name: chat-emote-name-deathgasp + icon: Interface/Emotes/deathgasp.png + chatMessages: ["chat-emote-msg-deathgasp-monkey"] - type: emote id: SiliconDeathgasp - chatMessages: [ "emote-chat-messages-deathgasp-ipc-1" ] + name: chat-emote-name-deathgasp + chatMessages: ["chat-emote-msg-deathgasp-silicon"] + chatTriggers: + - sdeathgasp - type: emote id: Buzz + name: chat-emote-name-buzz category: Vocal - chatMessages: [ "emote-chat-messages-buzz-1" ] + icon: Interface/Emotes/buzz.png + whitelist: + requireAll: true + components: + - BorgChassis + - Vocal + chatMessages: ["chat-emote-msg-buzz"] chatTriggers: - "emote-chat-messages-buzz-1" - type: emote id: Weh + name: chat-emote-name-weh category: Vocal - chatMessages: [ "emote-chat-messages-weh-1" ] + icon: Interface/Emotes/weh.png + chatMessages: [ wehs ] - type: emote id: Chirp + name: chat-emote-name-chirp category: Vocal - chatMessages: [ "emote-chat-messages-chirp-1" ] + icon: Interface/Emotes/chirp.png + whitelist: + requireAll: true + components: + - Nymph + chatMessages: ["chat-emote-msg-chirp"] chatTriggers: - "emote-chat-messages-chirp-1" # Machine Emotes - type: emote id: Beep + name: chat-emote-name-beep category: Vocal - chatMessages: [ "emote-chat-messages-beep-1" ] + icon: Interface/Emotes/beep.png + whitelist: + requireAll: true + components: + - BorgChassis + - Vocal + chatMessages: ["chat-emote-msg-beep"] chatTriggers: - "emote-chat-messages-beep-1" - type: emote id: Boop + name: chat-emote-name-boop category: Vocal chatMessages: [ "emote-chat-messages-boop-1" ] chatTriggers: @@ -165,27 +296,49 @@ - type: emote id: Chime + name: chat-emote-name-chime category: Vocal - chatMessages: [ "emote-chat-messages-chime-1" ] + icon: Interface/Emotes/chime.png + whitelist: + requireAll: true + components: + - BorgChassis + - Vocal + chatMessages: ["chat-emote-msg-chime"] chatTriggers: - "emote-chat-messages-chime-1" - type: emote id: Buzz-Two + name: chat-emote-name-buzztwo category: Vocal - chatMessages: [ "emote-chat-messages-buzz-two-1" ] + icon: Interface/Emotes/buzztwo.png + whitelist: + requireAll: true + components: + - BorgChassis + - Vocal + chatMessages: ["chat-emote-msg-buzzestwo"] chatTriggers: - "emote-chat-messages-buzz-two-1" - type: emote id: Ping + name: chat-emote-name-ping category: Vocal - chatMessages: [ "emote-chat-messages-ping-1" ] + icon: Interface/Emotes/ping.png + whitelist: + requireAll: true + components: + - BorgChassis + - Vocal + chatMessages: ["chat-emote-msg-ping"] chatTriggers: - "emote-chat-messages-ping-1" - type: emote - id: Whirr # uncategorized as it is generic - chatMessages: [ "emote-chat-messages-whirr-1" ] + id: Whirr + name: chat-emote-name-whirr + chatMessages: [ whirrs ] chatTriggers: - "emote-chat-messages-whirr-1" diff --git a/Resources/Prototypes/Voice/speech_sounds.yml b/Resources/Prototypes/Voice/speech_sounds.yml index 2e7e7bf989..a490c734d3 100644 --- a/Resources/Prototypes/Voice/speech_sounds.yml +++ b/Resources/Prototypes/Voice/speech_sounds.yml @@ -52,6 +52,24 @@ exclaimSound: path: /Audio/Machines/vending_jingle.ogg +- type: speechSounds + id: Borg + saySound: + path: /Audio/Voice/Talk/Silicon/borg.ogg + askSound: + path: /Audio/Voice/Talk/Silicon/borg_ask.ogg + exclaimSound: + path: /Audio/Voice/Talk/Silicon/borg_exclaim.ogg + +- type: speechSounds + id: SyndieBorg + saySound: + path: /Audio/Voice/Talk/Silicon/syndieborg.ogg + askSound: + path: /Audio/Voice/Talk/Silicon/syndieborg_ask.ogg + exclaimSound: + path: /Audio/Voice/Talk/Silicon/syndieborg_exclaim.ogg + - type: speechSounds id: Pai saySound: diff --git a/Resources/Prototypes/Voice/tail_emotes.yml b/Resources/Prototypes/Voice/tail_emotes.yml index be6064b652..965b7da8d9 100644 --- a/Resources/Prototypes/Voice/tail_emotes.yml +++ b/Resources/Prototypes/Voice/tail_emotes.yml @@ -1,6 +1,7 @@ - type: emote id: WagTail - chatMessages: [wags tail] + name: chat-emote-name-tailwag + chatMessages: [wags their tail] chatTriggers: - wags tail - wags his tail diff --git a/Resources/Prototypes/Wires/layouts.yml b/Resources/Prototypes/Wires/layouts.yml index 8d6be674e8..cf76e0ea61 100644 --- a/Resources/Prototypes/Wires/layouts.yml +++ b/Resources/Prototypes/Wires/layouts.yml @@ -1,6 +1,7 @@ - type: wireLayout id: Airlock wires: + - !type:AccessWireAction - !type:PowerWireAction - !type:PowerWireAction pulseTimeout: 15 @@ -44,6 +45,7 @@ - type: wireLayout id: HighSec wires: + - !type:AccessWireAction - !type:PowerWireAction pulseTimeout: 10 - !type:DoorBoltWireAction diff --git a/Resources/Prototypes/XenoArch/Effects/normal_effects.yml b/Resources/Prototypes/XenoArch/Effects/normal_effects.yml index b9564c0366..a343ebd77b 100644 --- a/Resources/Prototypes/XenoArch/Effects/normal_effects.yml +++ b/Resources/Prototypes/XenoArch/Effects/normal_effects.yml @@ -109,7 +109,7 @@ components: - type: PointLight radius: 8 - energy: 25 + energy: 10 color: "#daa3fd" - type: TriggerArtifact - type: FlashOnTrigger @@ -584,6 +584,24 @@ messages: - shuffle-artifact-popup +- type: artifactEffect + id: EffectT4PartsSpawn + targetDepth: 3 + effectHint: artifact-effect-hint-creation + components: + - type: SpawnArtifact + maxSpawns: 10 + spawns: + - id: BluespaceCapacitorStockPart + prob: 0.5 + maxAmount: 3 + - id: BluespaceManipulatorStockPart + prob: 0.5 + maxAmount: 3 + - id: BluespaceMatterBinStockPart + prob: 0.5 + maxAmount: 3 + - type: artifactEffect id: EffectFoamDangerous targetDepth: 3 diff --git a/Resources/Prototypes/XenoArch/Effects/utility_effects.yml b/Resources/Prototypes/XenoArch/Effects/utility_effects.yml index 911c1c2e88..84df09af33 100644 --- a/Resources/Prototypes/XenoArch/Effects/utility_effects.yml +++ b/Resources/Prototypes/XenoArch/Effects/utility_effects.yml @@ -214,8 +214,8 @@ permanentComponents: - type: UserInterface interfaces: - - key: enum.SignalLinkerUiKey.Key - type: SignalPortSelectorBoundUserInterface + enum.SignalLinkerUiKey.Key: + type: SignalPortSelectorBoundUserInterface - type: ToolTileCompatible - type: Tool qualities: diff --git a/Resources/Prototypes/_White/Entities/Clothing/Eyes/glasses.yml b/Resources/Prototypes/_White/Entities/Clothing/Eyes/glasses.yml index 319ae9b499..c98d1cc681 100644 --- a/Resources/Prototypes/_White/Entities/Clothing/Eyes/glasses.yml +++ b/Resources/Prototypes/_White/Entities/Clothing/Eyes/glasses.yml @@ -1,5 +1,5 @@ - type: entity - parent: ClothingEyesBase + parent: [ ClothingEyesBase, ShowSecurityIcons ] id: ClothingEyesGlassesMaid name: maid's sunglasses description: Maid's sunglasses. Clean and cute. @@ -12,4 +12,3 @@ - type: Tag tags: - WhitelistChameleon - - type: ShowSecurityIcons diff --git a/Resources/Prototypes/_White/Entities/Structures/Furniture/random_potted_plants.yml b/Resources/Prototypes/_White/Entities/Structures/Furniture/random_potted_plants.yml index 4f8be108d8..5723b3b649 100644 --- a/Resources/Prototypes/_White/Entities/Structures/Furniture/random_potted_plants.yml +++ b/Resources/Prototypes/_White/Entities/Structures/Furniture/random_potted_plants.yml @@ -43,7 +43,7 @@ - type: entity parent: RandomPottedPlantBase id: RandomPottedTinyPlant - name: Potted Plant + suffix: Tiny Base components: - type: Item @@ -108,7 +108,6 @@ - type: entity parent: RandomPottedTinyPlant id: RandomPottedTinyPlantPot1 - name: Potted Plant suffix: Tiny Pot 1 components: - type: Sprite @@ -127,7 +126,6 @@ - type: entity parent: RandomPottedTinyPlant id: RandomPottedTinyPlantPot2 - name: Potted Plant suffix: Tiny Pot 2 components: - type: Sprite @@ -146,7 +144,6 @@ - type: entity parent: RandomPottedTinyPlant id: RandomPottedTinyPlantPot3 - name: Potted Plant suffix: Tiny Pot 3 components: - type: Sprite @@ -165,7 +162,6 @@ - type: entity parent: RandomPottedTinyPlant id: RandomPottedTinyPlantPot4 - name: Potted Plant suffix: Tiny Pot 4 components: - type: Sprite @@ -184,7 +180,6 @@ - type: entity parent: RandomPottedTinyPlant id: RandomPottedTinyPlantPot5 - name: Potted Plant suffix: Tiny Pot 5 components: - type: Sprite @@ -203,7 +198,6 @@ - type: entity parent: RandomPottedTinyPlant id: RandomPottedTinyPlantPot6 - name: Potted Plant suffix: Tiny Pot 6 components: - type: Sprite @@ -222,7 +216,6 @@ - type: entity parent: RandomPottedTinyPlant id: RandomPottedTinyPlantPot7 - name: Potted Plant suffix: Tiny Pot 7 components: - type: Sprite @@ -243,7 +236,6 @@ - type: entity parent: RandomPottedPlantBase id: RandomPottedSmallPlant - name: Potted Plant suffix: Small Base components: - type: Item @@ -322,7 +314,6 @@ - type: entity parent: RandomPottedSmallPlant id: RandomPottedSmallPlantPot1 - name: Potted Plant suffix: Small Pot 1 components: - type: Sprite @@ -341,7 +332,6 @@ - type: entity parent: RandomPottedSmallPlant id: RandomPottedSmallPlantPot2 - name: Potted Plant suffix: Small Pot 2 components: - type: Sprite @@ -360,7 +350,6 @@ - type: entity parent: RandomPottedSmallPlant id: RandomPottedSmallPlantPot3 - name: Potted Plant suffix: Small Pot 3 components: - type: Sprite @@ -379,7 +368,6 @@ - type: entity parent: RandomPottedSmallPlant id: RandomPottedSmallPlantPot4 - name: Potted Plant suffix: Small Pot 4 components: - type: Sprite @@ -398,7 +386,6 @@ - type: entity parent: RandomPottedSmallPlant id: RandomPottedSmallPlantPot5 - name: Potted Plant suffix: Small Pot 5 components: - type: Sprite @@ -417,7 +404,6 @@ - type: entity parent: RandomPottedSmallPlant id: RandomPottedSmallPlantPot6 - name: Potted Plant suffix: Small Pot 6 components: - type: Sprite @@ -436,7 +422,6 @@ - type: entity parent: RandomPottedSmallPlant id: RandomPottedSmallPlantPot7 - name: Potted Plant suffix: Small Pot 7 components: - type: Sprite @@ -455,7 +440,6 @@ - type: entity parent: RandomPottedSmallPlant id: RandomPottedSmallPlantPot8 - name: Potted Plant suffix: Small Pot 8 components: - type: Sprite @@ -474,7 +458,6 @@ - type: entity parent: RandomPottedSmallPlant id: RandomPottedSmallPlantPot9 - name: Potted Plant suffix: Small Pot 9 components: - type: Sprite @@ -493,7 +476,6 @@ - type: entity parent: RandomPottedSmallPlant id: RandomPottedSmallPlantPot10 - name: Potted Plant suffix: Small Pot 10 components: - type: Sprite @@ -514,7 +496,6 @@ - type: entity parent: RandomPottedPlantBase id: RandomPottedMediumPlant - name: Potted Plant suffix: Medium Base components: - type: SecretStash @@ -576,7 +557,6 @@ - type: entity parent: RandomPottedMediumPlant id: RandomPottedMediumPlantPot1 - name: Potted Plant suffix: Medium Pot 1 components: - type: Sprite @@ -595,7 +575,6 @@ - type: entity parent: RandomPottedMediumPlant id: RandomPottedMediumPlantPot2 - name: Potted Plant suffix: Medium Pot 2 components: - type: Sprite @@ -614,7 +593,6 @@ - type: entity parent: RandomPottedMediumPlant id: RandomPottedMediumPlantPot3 - name: Potted Plant suffix: Medium Pot 3 components: - type: Sprite @@ -633,7 +611,6 @@ - type: entity parent: RandomPottedMediumPlant id: RandomPottedMediumPlantPot4 - name: Potted Plant suffix: Medium Pot 4 components: - type: Sprite @@ -652,7 +629,6 @@ - type: entity parent: RandomPottedMediumPlant id: RandomPottedMediumPlantPot5 - name: Potted Plant suffix: Medium Pot 5 components: - type: Sprite @@ -671,7 +647,6 @@ - type: entity parent: RandomPottedMediumPlant id: RandomPottedMediumPlantPot6 - name: Potted Plant suffix: Medium Pot 6 components: - type: Sprite @@ -690,7 +665,6 @@ - type: entity parent: RandomPottedMediumPlant id: RandomPottedMediumPlantPot7 - name: Potted Plant suffix: Medium Pot 7 components: - type: Sprite diff --git a/Resources/Prototypes/_White/Store/categories.yml b/Resources/Prototypes/_White/Store/categories.yml index 90755f4f2f..cb9cfbc88f 100644 --- a/Resources/Prototypes/_White/Store/categories.yml +++ b/Resources/Prototypes/_White/Store/categories.yml @@ -1,4 +1,4 @@ - type: storeCategory id: UplinkSales - name: Sales! + name: Sales priority: 10 diff --git a/Resources/Prototypes/_White/Voice/speech_emotes.yml b/Resources/Prototypes/_White/Voice/speech_emotes.yml index bbad06e1b7..7b518887f8 100644 --- a/Resources/Prototypes/_White/Voice/speech_emotes.yml +++ b/Resources/Prototypes/_White/Voice/speech_emotes.yml @@ -1,27 +1,23 @@ - type: emote id: Nod + name: chat-emote-name-nod category: General - buttonText: "emote-chat-button-text-nod" - chatMessages: [ "emote-chat-messages-nod-1" ] - allowMenu: true + chatMessages: [ "chat-emote-msg-nod" ] - type: emote id: ShakeHead + name: chat-emote-name-shake-head category: General - buttonText: "emote-chat-button-text-shake-head" - chatMessages: [ "emote-chat-messages-shake-head-1" ] - allowMenu: true + chatMessages: [ "chat-emote-msg-shake-head" ] - type: emote id: Frown + name: chat-emote-name-frown category: General - buttonText: "emote-chat-button-text-frown" - chatMessages: [ "emote-chat-messages-frown-1" ] - allowMenu: true + chatMessages: [ "chat-emote-msg-frown" ] - type: emote id: Smile + name: chat-emote-name-smile category: General - buttonText: "emote-chat-button-text-smile" - chatMessages: [ "emote-chat-messages-smile-1" ] - allowMenu: true + chatMessages: [ "chat-emote-msg-smile" ] diff --git a/Resources/Prototypes/floor_trap.yml b/Resources/Prototypes/floor_trap.yml new file mode 100644 index 0000000000..217dd9fca2 --- /dev/null +++ b/Resources/Prototypes/floor_trap.yml @@ -0,0 +1,116 @@ +- type: entity + id: CollideFloorTrap + abstract: true + placement: + mode: SnapgridCenter + components: + - type: Sprite + sprite: Tiles/Misc/floortrap.rsi + state: floortrap + - type: Fixtures + fixtures: + floortrap: + shape: + !type:PhysShapeAabb + bounds: "-0.4,-0.4,0.4,0.4" + hard: false + mask: + - ItemMask + layer: + - SlipLayer + - type: Physics + - type: Tag + tags: + - HideContextMenu + +- type: entity + parent: CollideFloorTrap + id: CollideFloorTrapSpawn + name: floor trap spawn + abstract: true + components: + - type: Sprite + sprite: Tiles/Misc/floortrap.rsi + state: floortrapspawn + +- type: entity + parent: CollideFloorTrap + id: FloorTrapExplosion + name: explosion floor trap + components: + - type: TriggerOnCollide + fixtureID: floortrap + - type: ExplodeOnTrigger + - type: Explosive + explosionType: Default + totalIntensity: 20.0 + intensitySlope: 5 + maxIntensity: 4 + - type: DeleteOnTrigger + +- type: entity + parent: CollideFloorTrap + id: FloorTrapEMP + name: EMP floor trap + components: + - type: TriggerOnCollide + fixtureID: floortrap + - type: EmpOnTrigger + range: 2 + energyConsumption: 5000 + - type: DeleteOnTrigger + +- type: entity + parent: CollideFloorTrapSpawn + id: SpawnFloorTrapCarp + suffix: Carp + components: + - type: TriggerOnCollide + fixtureID: floortrap + - type: SpawnOnTrigger + proto: MobCarp + - type: DeleteOnTrigger + +- type: entity + parent: CollideFloorTrapSpawn + id: SpawnFloorTrapBear + suffix: Bear + components: + - type: TriggerOnCollide + fixtureID: floortrap + - type: SpawnOnTrigger + proto: MobBearSpace + - type: DeleteOnTrigger + +- type: entity + parent: CollideFloorTrapSpawn + id: SpawnFloorTrapKangaroo + suffix: Kangaroo + components: + - type: TriggerOnCollide + fixtureID: floortrap + - type: SpawnOnTrigger + proto: MobKangarooSpace + - type: DeleteOnTrigger + +- type: entity + parent: CollideFloorTrapSpawn + id: SpawnFloorTrapXenoDrone + suffix: Xeno. Drone + components: + - type: TriggerOnCollide + fixtureID: floortrap + - type: SpawnOnTrigger + proto: MobXenoDrone + - type: DeleteOnTrigger + +- type: entity + parent: CollideFloorTrapSpawn + id: SpawnFloorTrapXenoBurrower + suffix: Xeno. Burrower + components: + - type: TriggerOnCollide + fixtureID: floortrap + - type: SpawnOnTrigger + proto: MobXeno + - type: DeleteOnTrigger diff --git a/Resources/Prototypes/fonts.yml b/Resources/Prototypes/fonts.yml index 92c2947258..8e49fe8c35 100644 --- a/Resources/Prototypes/fonts.yml +++ b/Resources/Prototypes/fonts.yml @@ -61,3 +61,7 @@ - type: font id: Noganas path: /Fonts/Noganas.ttf + +- type: font + id: Cambria + path: /Fonts/Cambria.ttf diff --git a/Resources/Prototypes/lobbyscreens.yml b/Resources/Prototypes/lobbyscreens.yml index 773af9a143..d8c5d28379 100644 --- a/Resources/Prototypes/lobbyscreens.yml +++ b/Resources/Prototypes/lobbyscreens.yml @@ -37,3 +37,7 @@ - type: lobbyBackground id: TerminalStation background: /Textures/LobbyScreens/terminalstation.webp + +- type: lobbyBackground + id: JustAWeekAway + background: /Textures/LobbyScreens/justaweekaway.webp \ No newline at end of file diff --git a/Resources/Prototypes/name_identifier_groups.yml b/Resources/Prototypes/name_identifier_groups.yml index 82c2f3bce9..4823e31f55 100644 --- a/Resources/Prototypes/name_identifier_groups.yml +++ b/Resources/Prototypes/name_identifier_groups.yml @@ -37,3 +37,9 @@ id: Bounty minValue: 0 maxValue: 999 + +- type: nameIdentifierGroup + id: CargoTelepads + prefix: TELE + minValue: 0 + maxValue: 999 diff --git a/Resources/Prototypes/ore.yml b/Resources/Prototypes/ore.yml index dde1516c85..d471a3ac96 100644 --- a/Resources/Prototypes/ore.yml +++ b/Resources/Prototypes/ore.yml @@ -84,6 +84,18 @@ minOreYield: 2 maxOreYield: 4 +- type: ore + id: OreBluespace + oreEntity: BluespaceOre1 + minOreYield: 1 + maxOreYield: 1 + +- type: ore + id: OreNormality + oreEntity: NormalityOre1 + minOreYield: 1 + maxOreYield: 1 + - type: weightedRandomOre id: RandomOreDistributionStandard weights: @@ -96,6 +108,8 @@ OreUranium: 1 OreBananium: 0.5 OreArtifactFragment: 0.5 + OreBluespace: 0.5 + OreNormality: 0.3 - type: weightedRandomOre id: OreCrab diff --git a/Resources/Prototypes/tags.yml b/Resources/Prototypes/tags.yml index cc81a2ed64..6cb813ba80 100644 --- a/Resources/Prototypes/tags.yml +++ b/Resources/Prototypes/tags.yml @@ -25,6 +25,9 @@ - type: Tag id: Arrow +- type: Tag + id: Ash + - type: Tag id: ATVKeys @@ -259,6 +262,9 @@ - type: Tag id: CableCoil +- type: Tag + id: CaneBlade + - type: Tag id: CapacitorStockPart @@ -352,6 +358,9 @@ - type: Tag id: CartridgeRocket +- type: Tag + id: CaveFactory + # Allows you to walk over tile entities such as lava without steptrigger - type: Tag id: Catwalk @@ -401,6 +410,9 @@ - type: Tag id: ClownSuit +- type: Tag + id: CluwneHappyHonk + - type: Tag id: CluwneHorn @@ -803,6 +815,12 @@ - type: Tag id: MacroBomb +- type: Tag + id: Mail + +- type: Tag + id: MailCapsule + - type: Tag id: MimeBelt @@ -877,6 +895,9 @@ - type: Tag id: Meat +- type: Tag + id: Medal + - type: Tag id: Medkit @@ -916,6 +937,12 @@ - type: Tag id: Multitool +- type: Tag + id: Mustard + +- type: Tag + id: MysteryFigureBox + - type: Tag id: NoBlockAnchoring @@ -1112,15 +1139,15 @@ - type: Tag id: Shiv -- type: Tag - id: ShoesRequiredStepTriggerImmune - - type: Tag id: Shovel - type: Tag id: Sidearm +- type: Tag + id: SignalTrigger + - type: Tag id: SkeletonMotorcycleKeys @@ -1136,9 +1163,6 @@ - type: Tag id: Smokable -- type: Tag - id: SnapPop - - type: Tag id: SnowyLabs @@ -1247,6 +1271,9 @@ - type: Tag id: TrashBag +- type: Tag + id: Truncheon + - type: Tag id: Unimplantable @@ -1286,6 +1313,9 @@ - type: Tag id: WeaponShotgunKammerer +- type: Tag + id: WeldingMask + - type: Tag id: WetFloorSign @@ -1295,6 +1325,9 @@ - type: Tag id: WhitelistChameleon +- type: Tag + id: WhoopieCushion + - type: Tag id: Window @@ -1327,5 +1360,3 @@ - type: Tag id: WriteIgnoreStamps - -# PUT YOUR TAGS IN ALPHABETICAL ORDER diff --git a/Resources/Prototypes/themes.yml b/Resources/Prototypes/themes.yml index edd2681a62..3952687255 100644 --- a/Resources/Prototypes/themes.yml +++ b/Resources/Prototypes/themes.yml @@ -12,6 +12,8 @@ concerningOrangeFore: "#A5762F" dangerousRedFore: "#BB3232" disabledFore: "#5A5A5A" + _itemstatus_content_margin_right: "#06060404" + _itemstatus_content_margin_left: "#04060604" - type: uiTheme id: SS14PlasmafireTheme path: /Textures/Interface/Plasmafire/ @@ -26,6 +28,8 @@ concerningOrangeFore: "#FFF5EE" dangerousRedFore: "#FFF5EE" disabledFore: "#FFF5EE" + _itemstatus_content_margin_right: "#06060404" + _itemstatus_content_margin_left: "#04060604" - type: uiTheme id: SS14SlimecoreTheme path: /Textures/Interface/Slimecore/ @@ -40,6 +44,8 @@ concerningOrangeFore: "#FFF5EE" dangerousRedFore: "#FFF5EE" disabledFore: "#FFF5EE" + _itemstatus_content_margin_right: "#06060404" + _itemstatus_content_margin_left: "#04060604" - type: uiTheme id: SS14ClockworkTheme path: /Textures/Interface/Clockwork/ @@ -54,6 +60,8 @@ concerningOrangeFore: "#FFF5EE" dangerousRedFore: "#FFF5EE" disabledFore: "#FFF5EE" + _itemstatus_content_margin_right: "#06060404" + _itemstatus_content_margin_left: "#04060604" - type: uiTheme id: SS14RetroTheme path: /Textures/Interface/Retro/ @@ -68,6 +76,8 @@ concerningOrangeFore: "#FFF5EE" dangerousRedFore: "#FFF5EE" disabledFore: "#FFF5EE" + _itemstatus_content_margin_right: "#06060404" + _itemstatus_content_margin_left: "#04060604" - type: uiTheme id: SS14MinimalistTheme path: /Textures/Interface/Minimalist/ @@ -82,6 +92,8 @@ concerningOrangeFore: "#A5762F" dangerousRedFore: "#BB3232" disabledFore: "#5A5A5A" + _itemstatus_content_margin_right: "#06060604" + _itemstatus_content_margin_left: "#06060604" - type: uiTheme id: SS14AshenTheme path: /Textures/Interface/Ashen/ @@ -96,3 +108,5 @@ concerningOrangeFore: "#FFF5EE" dangerousRedFore: "#FFF5EE" disabledFore: "#FFF5EE" + _itemstatus_content_margin_right: "#06060604" + _itemstatus_content_margin_left: "#06060604" diff --git a/Resources/ServerInfo/Guidebook/Antagonist/Antagonists.xml b/Resources/ServerInfo/Guidebook/Antagonist/Antagonists.xml index a0e434dc77..927a56a505 100644 --- a/Resources/ServerInfo/Guidebook/Antagonist/Antagonists.xml +++ b/Resources/ServerInfo/Guidebook/Antagonist/Antagonists.xml @@ -8,5 +8,6 @@ Antagonists can take many forms, like: - Nuclear operatives, with the goal of infiltrating and destroying the station. - Traitors infiltrating the crew who can assassinate targets and steal high value items. + - Space Ninjas, masters of espionage and sabotage, who are equipped with special gear. - Several non-humanoid creatures, who usually just try to bring down as many crewmembers as they can. diff --git a/Resources/ServerInfo/Guidebook/Antagonist/Revolutionaries.xml b/Resources/ServerInfo/Guidebook/Antagonist/Revolutionaries.xml index 8ee9ec090e..e69220fc2a 100644 --- a/Resources/ServerInfo/Guidebook/Antagonist/Revolutionaries.xml +++ b/Resources/ServerInfo/Guidebook/Antagonist/Revolutionaries.xml @@ -10,7 +10,7 @@ - [color=#5e9cff]Head Revolutionaries[/color] are chosen at the start of the shift and are tasked with taking over the station by killing or exiling all of the Command staff. Head Revolutionaries will be given a [color=#a4885c]Flash[/color] and a pair of [color=#a4885c]Sunglasses[/color] to aid them. + [color=#5e9cff]Head Revolutionaries[/color] are chosen at the start of the shift and are tasked with taking over the station by killing, exiling or cuffing all of the Command staff. Head Revolutionaries will be given a [color=#a4885c]Flash[/color] and a pair of [color=#a4885c]Sunglasses[/color] to aid them. ## Conversion @@ -41,7 +41,7 @@ ## Objectives - You must eliminate or exile all of the following Command staff on station in no particular order. + You must eliminate, exile or arrest all of the following Command staff on station in no particular order. - Captain - Head of Personnel - Chief Engineer diff --git a/Resources/ServerInfo/Guidebook/Antagonist/SpaceNinja.xml b/Resources/ServerInfo/Guidebook/Antagonist/SpaceNinja.xml index 7fed84da73..f088b9f27b 100644 --- a/Resources/ServerInfo/Guidebook/Antagonist/SpaceNinja.xml +++ b/Resources/ServerInfo/Guidebook/Antagonist/SpaceNinja.xml @@ -1,74 +1,80 @@ -# Space Ninja + # Space Ninja -The Space Ninja is a ghost role randomly available mid-late game. If you pick it you will be given your gear, your objectives and the greeting. + The [color=#66FF00]Space Ninja[/color] is a ghost role randomly available mid-late game. If you pick it you will be given your gear, your objectives and the greeting. -You are a ninja, but in space. The Spider Clan has sent you to the station to wreak all kinds of havoc, from bolting the armory open and killing the entire station to engaging in a slipping war with the clown and fighting in rage cages. + You are a ninja, but in space. [color=#66FF00]The Spider Clan[/color] has sent you to the station to wreak all kinds of havoc, and you are equipped to keep it silent-but-deadly. -# Equipment + Whether you mercilessly pick off the station's crew one by one, or assassinate the clown over and over, your discipline has taught you that [color=#66FF00]your objectives must be at least attempted[/color]. For honor! -You start with a microbomb implant, so if you get KIA or seppuku you will leave behind a nice crater and all your precious equipment is kept out of enemy hands. + # Equipment -Your bag is full of tools for more subtle sabotage, along with a survival box if you need a snack. + You begin implanted with a [color=#a4885c]death acidifier[/color], so if you are KIA or decide to commit seppuku you will leave behind one final gift to the janitor and all your precious equipment is kept out of enemy hands. -You have a jetpack and pinpointer that will let you find the station. + Your bag is full of tools for more subtle sabotage, along with a survival box if you need a snack. - + You have a [color=#a4885c]jetpack[/color] and [color=#a4885c]pinpointer[/color] that will let you find the station. -## Ninja Suit + - + ## Ninja Suit -Your single most important item is your suit, without it none of your abilities would work. -Your suit requires power to function, its internal battery can be replaced by clicking on it **with a better one**. -You can see the current charge by examining the suit or in a sweet battery alert at the top right of your screen. + -If you run out of power and need to recharge your battery, just use your gloves to drain an APC, substation or a SMES. + Your single most important item is [color=#66FF00]your suit[/color], without it none of your abilities would work. + Your suit requires power to function. Its [color=#a4885c]internal battery[/color] can be replaced by clicking on it with another one, and [color=#a4885c]higher capacity batteries[/color] mean a [color=#a4885c]highly effective ninja[/color]. + You can see the current charge by examining the suit or in a sweet battery alert at the top right of your screen. -## Ninja Gloves + If you run out of power and need to recharge your battery, just use your gloves to drain an APC, substation or a SMES. - + ## Ninja Gloves -These bad boys are your bread and butter. + -They are insulated so you can nom on wires in peace. Obviously they block your fingerprints from being left on things you touch. + [color=#66FF00]These bad boys are your bread and butter.[/color] -You have an action to toggle gloves. When the gloves are turned on, they allow you to use special abilities, which are triggered by interacting with things with an empty hand and with combat mode disabled. + They are made from [color=#a4885c]insulated nanomachines[/color] to assist you in gracefully breaking and entering into your destination without leaving behind fingerprints. -Your glove abilities include: -- Emagging an unlimited number of doors. -- Draining power from transformers such as APCs, substations or SMESes. The higher the voltage, the more efficient the draining is. -- You can shock any mob, stunning and slightly damaging them. -- You can download technologies from a R&D server for one of your objectives. -- You can hack a communications console to call in a threat. + You have an action to toggle gloves. When the gloves are turned on, they allow you to use [color=#a4885c]special abilities[/color], which are triggered by interacting with things with an empty hand and with combat mode disabled. -## Energy Katana + Your glove abilities include: + - Emagging an unlimited number of doors. + - Draining power from transformers such as APCs, substations or SMESes. The higher the voltage, the more efficient the draining is. + - You can shock any mob, stunning and slightly damaging them. + - You can download technologies from a R&D server for one of your objectives. + - You can hack a communications console to call in a threat. - + ## Energy Katana -Deals a lot of damage and can be recalled at will, costing suit power proportional to the distance teleported. -While in hand you can teleport to anywhere that you can see, meaning most doors and windows, but not past solid walls. -This has a limited number of charges which regenerate slowly, so keep a charge or two spare incase you need a quick getaway. + -## Spider Clan Charge + You have sworn yourself to the [color=#66FF00]sword[/color] and refuse to use firearms. + Deals a lot of damage and can be recalled at will, costing suit power proportional to the distance teleported. + + While in hand you can [color=#a4885c]teleport[/color] to anywhere that you can see, meaning most doors and windows, but not past solid walls. + This has a limited number of charges which regenerate slowly, so keep a charge or two spare incase you need a quick getaway. - + ## Spider Clan Charge -A modified C-4 explosive, you start with this in your pocket. Creates a large explosion but must be armed in your target area. -A random area on the map is selected for you to blow up, which is one of your objectives. It can't be activated manually, simply plant it on a wall or something. -Can't be unstuck once planted. + -## Ninja Shoes + [color=#66FF00]A modified C-4 explosive[/color], you start with this in your pocket. Creates a large explosion but must be armed in your target area. + A random area on the map is selected for you to blow up, which is one of your [color=#a4885c]objectives[/color]. -Special noslips that make you go really fast. -Energy not required. + It can't be activated manually, simply plant it on a wall or a particularly ugly piece of furniture. + Can't be unstuck once planted. -# Objectives + ## Ninja Shoes -- Download X research nodes: Use your gloves on an R&D server with a number of unlocked technologies -- Doorjack X doors on the station: Use your gloves to emag a number of doors. -- Detonate the spider clan charge: Plant your spider clan charge at a random location and watch it go boom. -- Call in a threat: Use your gloves on a communications console. -- Survive: Don't die. + Special [color=#a4885c]noslips[/color] that keep you agile, swift and upright. + Energy not required. + + # Objectives + + - Download X research nodes: Use your gloves on an R&D server with a number of unlocked technologies + - Doorjack X doors on the station: Use your gloves to emag a number of doors. + - Detonate the spider clan charge: Plant your spider clan charge at a random location and watch it go boom. + - Call in a threat: Use your gloves on a communications console. + - Survive: Don't die. diff --git a/Resources/ServerInfo/Guidebook/Engineering/AME.xml b/Resources/ServerInfo/Guidebook/Engineering/AME.xml index ae0217c4b0..0a96907203 100644 --- a/Resources/ServerInfo/Guidebook/Engineering/AME.xml +++ b/Resources/ServerInfo/Guidebook/Engineering/AME.xml @@ -1,26 +1,25 @@ -# Antimatter Engine (AME) + # Antimatter Engine (AME) -The AME is one of the simplest engines available. You put together the multi-tile structure, stick some fuel into it, and you're all set. This doesn't mean it isn't potentially dangerous with overheating though. + The AME is one of the simplest engines available. You put together the multi-tile structure, stick some fuel into it, and you're all set. This doesn't mean it is perfectly safe though; you may need to deal with the AME overheating. -## Construction -Required parts: - - - - - + ## Construction + Required parts: + + + + + -To assemble an AME, start by wrenching down the controller on the far end of a HV wire. On most stations, there's catwalks to assist with this. From there, start putting down a 3x3 or larger square of AME parts in preparation for construction, making sure to maximize the number of "center" pieces that are surrounded on all 8 sides. + To assemble an AME, start by wrenching down the controller on the near end of a HV wire. On most stations, there's catwalks to assist with this. From there, start putting down a 3x3 or larger square of AME parts in preparation for construction, making sure to maximize the number of "center" pieces that are surrounded on all 8 sides. -Once this is done, you can use a multitool to convert each AME part into shielding, which should form a finished AME configuration. From there, insert a fuel jar, set the fuel rate to [color=#a4885c]twice the core count or less[/color], and turn on injection. + Once this is done, you can use a multitool to convert each AME part into shielding, which should form a finished AME configuration. From there, insert a fuel jar, set the fuel rate to [color=#a4885c]twice the core count or less[/color], and turn on injection. Any more than this ratio will eventually result in the engine [color=#ff0000]overheating and[/color], shortly afterwards, [color=#ff0000]exploding[/color]. -## Fuel Economy -The closer you are to the perfect ratio of [color=#a4885c]1:2[/color] (1 AME core to 2 fuel rate) the more efficient you'll be. You're cutting fuel efficiency to [color=#a4885c]50% and less[/color] if you're using more cores, but less fuel injection rate. -For an example [color=#76db91]3 core and 6 fuel rate[/color] will generate [color=#76db91]240kW[/color], while [color=#f0684d]8 core 8 fuel rate[/color] will generate [color=#f0684d]160kW[/color]. Generating 80kW less while spending 2 more fuel each injection. + ## Fuel Economy + The closer you are to the perfect ratio of [color=#a4885c]1:2[/color] AME cores to fuel injection rate, the more efficient you'll be. You're cutting fuel efficiency to [color=#a4885c]50% and less[/color] if you're using more cores, but a lower fuel injection rate. + For an example, [color=#76db91]3 cores and 6 fuel injected[/color] will generate [color=#76db91]240kW[/color], while [color=#f0684d]8 cores and 8 fuel injected[/color] will generate [color=#f0684d]160kW[/color]; you'd be generating 80kW less while spending 2 more fuel per injection. -## Upgrading the AME - -You can generally only upgrade the AME by getting more cores, which can be done by ordering more AME packages from [color=#a4885c]logistics[/color]. + ## Upgrading the AME + You can generally only upgrade the AME by installing more cores, which can be done by ordering more AME flatpacks from [color=#a4885c]Logistics[/color]. diff --git a/Resources/ServerInfo/Guidebook/Engineering/AccessConfigurator.xml b/Resources/ServerInfo/Guidebook/Engineering/AccessConfigurator.xml index e54f45345d..490cbf09c3 100644 --- a/Resources/ServerInfo/Guidebook/Engineering/AccessConfigurator.xml +++ b/Resources/ServerInfo/Guidebook/Engineering/AccessConfigurator.xml @@ -1,32 +1,34 @@ -# Access Configurator -The access configurator is a tool used to specify what type of personnel may use certain devices. + # Access Configurator + The access configurator is a tool used to specify what type of personnel may use certain devices. - - - + + + -Configurable devices can include airlocks, secure crates and lockers, as well as access restricted machines. + Configurable devices can include airlocks, secure crates and lockers, as well as access restricted machines. + Note: Airlocks can have their accesses configured by the [color=#a4885c]Network Configurator[/color] (or multitool), for convenience. -## Where to find access configurators -Each station is equipped with up to two access configurators. The first is in the possession of the Chief Engineer, while the second can be found with the Head of Personnel. + ## Where to find Access Configurators + Each station is equipped with up to two access configurators. The first is in the possession of the Chief Engineer, while the second can be found with the Head of Personnel. -## How to use the access configurator -To modify a device using the access configurator -- First, use the access configurator on the chosen device to link them together. This will automatically open the configurator UI. -- Next, insert an ID card into the access configurator. -- Set the access requirements of the connected device. What requirements can be added or removed will depend upon the access privileges of the inserted ID card. -- Any changes made will be applied immediately - simply eject the ID card from the access configurator and close the UI when you are done. + ## How to use the access configurator + To modify a device using the access configurator: + - First, use the access configurator on the chosen device to link them together. This will automatically open the configurator UI. + - Next, insert an ID card into the access configurator. + - Set the access requirements of the connected device. What requirements can be added or removed will depend upon the access privileges of the inserted ID card. + - Any changes made will be applied [color=#a4885c]immediately[/color] - simply eject the ID card from the access configurator and close the UI when you are done. -## Restrictions on changing access -As a safety precaution, the inserted ID must possess *all* of the access requirements that are currently active on the connected device in order to modify it. + ## Restrictions on changing access + As a safety precaution, the inserted ID must possess [bold]all[/bold] of the access requirements that are currently active on the connected device in order to modify it. -For example, a device which can be access by both 'Epistemics' and 'Medical' personnel can only by modified using an ID card that has access to both of these departments. The access configurator will warn the user if the inserted ID card does not have sufficient privileges to modify a device. + For example, a device which can be access by both 'Epistemics' and 'Medical' personnel can only by modified using an ID card that has access to [color=#a4885c]both[/color] of these departments. + The access configurator will warn the user if the inserted ID card does not have sufficient privileges to modify a device. -A device with no access requirements set, like a public access airlock, can be modified using any valid station ID card. + A device with no access requirements set, like a public access airlock, can be modified using any valid station ID card. -## Repairing damaged ID card readers -Syndicate agents may attempt to hack access restricted devices through the use of a Cryptographic Sequencer (EMAG). This nefarious tool will completely short out any ID card readers that are attached to the device. + ## Repairing damaged ID card readers + Syndicate agents may attempt to hack access restricted devices through the use of a [color=#a4885c]Cryptographic Sequencer (EMAG)[/color]. This nefarious tool will completely short out any ID card readers that are attached to the device. -Crew members will need to partially de/reconstruct affected devices, and then set appropriate access permissions afterwards using the access configurator, to re-establish access restrictions. + Engineers will need to partially de/reconstruct affected devices, and then set appropriate access permissions afterwards using the access configurator (or network configurator, for airlocks), to re-establish access restrictions. diff --git a/Resources/ServerInfo/Guidebook/Engineering/AirlockSecurity.xml b/Resources/ServerInfo/Guidebook/Engineering/AirlockSecurity.xml index 125833a0a1..8bfd3902cc 100644 --- a/Resources/ServerInfo/Guidebook/Engineering/AirlockSecurity.xml +++ b/Resources/ServerInfo/Guidebook/Engineering/AirlockSecurity.xml @@ -1,76 +1,76 @@ -# Airlock Upgrades -It is not uncommon for plucky individuals to try and bypass an airlock by meddling with its internal wiring. + # Airlock Upgrades + It is not uncommon for plucky individuals to try and bypass an airlock by meddling with its internal wiring. -Fortunately, certain countermeasures can installed into airlocks to inconvenience any would be trespassers. + Fortunately, certain countermeasures can installed into airlocks to inconvenience any would-be trespassers. -## Medium security airlocks -The most basic form of intrusion deterrence is to install internal steel plating that will prevent access to internal wiring of the airlock. + ## Medium security airlocks + The most basic form of intrusion deterrence is to install a secured steel plating that will prevent access to internal wiring of the airlock. -To upgrade a basic airlock to a medium security airlock, you will require the following materials - - - - - - - - - - - + To upgrade a basic airlock to a medium security airlock, you will require the following materials: + + + + + + + + + + + -To upgrade the basic airlock, -- Use the screwdriver to open the airlock maintenance panel. -- Add the steel sheets to the airlock. -- Weld the steel sheets into place. -- Close the maintenance panel using the screwdriver. + To upgrade a basic airlock: + - Use the screwdriver to open the airlock maintenance panel. + - Add the steel sheets to the airlock. + - Weld the steel sheets into place. + - Close the maintenance panel using the screwdriver. -## High security airlocks -For airlocks leading to the more sensitive areas of the space station, the use of stronger deterrents are advised. High security airlocks have improved armor plating to protect its internal wiring, along with an electrified security grille. + ## High security airlocks + For airlocks leading to the more sensitive areas of the space station, the use of stronger deterrents are advised. High security airlocks have improved armor plating to protect its internal wiring, along with an electrified security grille. -To upgrade a basic airlock to a high security airlock, you will require the following materials - - - - - - - - - - - - - - + To upgrade a medium security airlock to a high security airlock, you will require the following materials: + + + + + + + + + + + + + + -To upgrade the basic airlock, -- Use the screwdriver to open the airlock maintenance panel. -- Add the plasteel sheets to the airlock. -- Weld the plasteel sheets into place. -- Add the metal rods to the airlock. -- Close the maintenance panel using the screwdriver. + To upgrade a medium security airlock: + - Use the screwdriver to open the airlock maintenance panel. + - Add the plasteel sheets to the airlock. + - Weld the plasteel sheets into place. + - Add the metal rods to the airlock. + - Close the maintenance panel using the screwdriver. -## Maximum security airlocks -You can optionally upgrade a high security airlock to a maximum security airlock. Maximum security airlocks possess an additional layer of plasteel plating on top of its other protections. + ## Maximum security airlocks + You can optionally upgrade a high security airlock to a maximum security airlock. Maximum security airlocks possess an additional layer of plasteel plating on top of its other protections. -To upgrade a high security airlock to a maximum security airlock, you will require the following materials - - - - - - - - - - - + To upgrade a high security airlock to a maximum security airlock, you will require the following materials: + + + + + + + + + + + -To upgrade the high security airlock, -- Use the screwdriver to open the airlock maintenance panel. -- Add the plasteel sheets to the airlock. -- Weld the plasteel sheets into place. -- Close the maintenance panel using the screwdriver. - \ No newline at end of file + To upgrade a high security airlock: + - Use the screwdriver to open the airlock maintenance panel. + - Add the plasteel sheets to the airlock. + - Weld the plasteel sheets into place. + - Close the maintenance panel using the screwdriver. + diff --git a/Resources/ServerInfo/Guidebook/Engineering/Atmospherics.xml b/Resources/ServerInfo/Guidebook/Engineering/Atmospherics.xml index 693e3a0209..48d0d9415e 100644 --- a/Resources/ServerInfo/Guidebook/Engineering/Atmospherics.xml +++ b/Resources/ServerInfo/Guidebook/Engineering/Atmospherics.xml @@ -1,61 +1,67 @@ - -# Atmospherics - -Atmospherics setups are a necessity for your long-term comfort but are generally undocumented, resulting in them being a bit tricky to set up. The following attempts to cover the basics. - -## Standard Mix -Breathing pure O2 or pure N2 is generally bad for the health of your crew, and it is recommended to instead aim for a mix of [color=#a4885c]78% N2 and 22% O2 at 101.24kPa.[/color] It's recommended that your gas mixer setup be set to output at least 1000kPa for faster re-pressurization of rooms. - - - - - -Variations on this mix may be necessary for the long-term comfort of atypical crew, for example crew who require a plasma gas mix to survive. For atypical crew, it is recommended to try and give them their own personal space, isolated by either airlock or disposals section. Keep in mind both methods are leaky and you will need scrubbers on both sides of the lock to clean up any leaked gasses. - - - - -## Vents and Scrubbers -Vents and scrubbers are core atmospherics devices that fill and cleanse rooms, respectively. By default, they are configured for filling rooms to standard pressure (101.24kPa) and to remove all non-O2/N2 gasses from a room. They can be reconfigured from their default settings, allowing you to configure how they respond to various types of gasses or pressure levels. This can be done by interacting with an existing air alarm nearby, or installing and connecting them to a new one. - - - - - -During standard operation, if a vent detects that the outside environment is space, it will automatically cease operation until a minimum pressure is reached to avoid destruction of necessary gasses. This can be fixed by pressurizing the room up to that minimum pressure by refilling it with gas canister (potentially multiple, if the room is of significant size). - -Should you encounter a situation where scrubbers aren't cleaning a room fast enough, employ portable scrubbers by dragging them to the affected location and wrenching them down. They work much faster than typical scrubbers and can clean up a room quite quickly. Large spills may require you to employ multiple. - - - -# Gas mixes and Burn chambers -In the event you finish all the tasks at hand, you can make some extra power or money by creating new chemical gasses. - -##Tritium -Tritium is a clear, green gas that is highly flammable, radioactive, and combusts when in contact with oxygen making it very helpful when running the [color=#a4885c]TEG.[/color] -It can be made by burning 1% Plasma and 96% or more Oxygen in the Burn Chamber. You can extract this gas through scrubbers. - - - - - - - - -##Frezon -Frezon is a bluish-green gas that is very complex and very dangerous. To obtain frezon, you must mix Tritium, Oxygen, and Nitrogen in a 70K room to start the reaction, as well as prevent the Tritium from combusting with the oxygen. - - - - - - - - -It is critical to understand that a frezon leak can devastate the station, causing a wintery hell filled with itchy sweaters and cold burns. Frezon is very cold, and can freeze the station to death if even a few moles get out, so make sure that you lock your canisters or just move your Frezon straight into a storage room. - -## Reference Sheet -- Standard atmospheric mix is [color=#a4885c]78% N2 and 22% O2 at 101.24kPa.[/color] -- Gas obeys real math. You can use the equation PV = nRT (Pressure kPa * Volume L = Moles * R * Temperature K) to derive information you might need to know about a gas. R is approximately 8.31446 + + # Atmospherics + + Atmospherics setups are a necessity for your long-term comfort, but are generally underdocumented, resulting in them being a bit tricky to set up. The following attempts to cover the basics. + + ## Standard Mix + Breathing pure O2 or pure N2 is generally bad for the health of your crew, and it is recommended to instead aim for a mix of [color=#a4885c]78% N2 and 22% O2 at 101.24kPa.[/color] It's recommended that your gas mixer setup be set to output at least 300kPA for faster re-pressurization of rooms, without posing too much of an overpressurization risk, should traitors sabotage the distro. + + + + + + Variations on this mix may be necessary for the long-term comfort of atypical crew, (for example, Voxes, who are poisoned by Oxygen and breathe Nitrogen). For atypical crew (to be implemented), it is recommended to try and give them their own personal space, isolated by either an airlock or disposals section. Keep in mind that both methods are leaky and you will need scrubbers on both sides of the lock to clean up any leaked gasses. + + + + + ## Vents and Scrubbers + Vents and scrubbers are core atmospherics devices that fill and cleanse rooms, respectively. By default, they are configured for filling rooms to standard pressure (101.24kPa) and to remove all non-O2/N2 gasses from a room. They can be reconfigured from their default settings by linking them to an Air Alarm, allowing you to configure how they respond to various types of gasses or pressure levels. + + + + + + During standard operation, if a normal vent detects that the outside environment is space, it will automatically cease operation until a minimum pressure is reached to avoid destruction of useful gasses. This can be fixed by pressurizing the room up to that minimum pressure by refilling it with gas canister (potentially multiple, if the room is of significant size). + + Should you encounter a situation where scrubbers aren't cleaning a room fast enough (and the "Siphon" functionality still cannot keep up), employ portable scrubbers by dragging them to the affected location and wrenching them down. They work much faster than typical scrubbers and can clean up a room quite quickly. Large spills may require you to employ multiple. + + + + # Gas mixes and Burn chambers + In the event you finish all the tasks at hand, you can make some extra money by creating new chemical gasses. + + ##Tritium + Tritium is a clear, green gas that is highly flammable, radioactive, and combusts when in contact with oxygen, making it very helpful when running the [color=#a4885c]TEG[/color]. + It can be made by burning 1% Plasma and 96% or more Oxygen in the Burn Chamber (Ideal ratio is 3% Plasma to 97% Oxygen). You can extract this gas through scrubbers. + + + + + + + + + ##Frezon + Frezon is a bluish-green gas that is very complex and very dangerous. To obtain frezon, you must mix Tritium, Oxygen, and Nitrogen in a 70K room to start the reaction, and prevent the Tritium from combusting with the oxygen. + + + + + + + + + It is critical to understand that a frezon leak can devastate the station, causing a wintery hell filled with itchy sweaters and cold burns. Frezon is very cold, and can freeze the station to death if even a few moles get out, so make sure that you lock your canisters or just move your Frezon straight into a storage room. + + ## Reference Sheet + - Standard atmospheric mix is [color=#a4885c]78% N2 and 22% O2 at 101.24kPa.[/color] + - Gas obeys real math. You can use the equation: + + [color=cyan]PV = nRT[/color] + + + ([color=#a4885c]Pressure kPa * Volume L = Moles * R * Temperature K[/color]) + to derive information you might need to know about a gas. R is approximately 8.31446. diff --git a/Resources/ServerInfo/Guidebook/Engineering/Construction.xml b/Resources/ServerInfo/Guidebook/Engineering/Construction.xml index 832b831d8e..15f2f15539 100644 --- a/Resources/ServerInfo/Guidebook/Engineering/Construction.xml +++ b/Resources/ServerInfo/Guidebook/Engineering/Construction.xml @@ -1,11 +1,11 @@ - -# Construction + + # Construction -By pressing [color=#a4885c]G[/color], one can open the construction menu, which allows you to craft and build a variety of objects. + By pressing [color=#a4885c][keybind="OpenCraftingMenu"][/color], one can open the construction menu, which allows you to craft and build a variety of objects. -When placing objects that "snap" to the grid, you can hold [color=#a4885c]shift[/color] to place an entire line at a time, and [color=#a4885c]ctrl[/color] to place an entire square at a time. + When placing objects that "snap" to the grid, you can hold [color=#a4885c]Shift[/color] to place an entire line at a time, and [color=#a4885c]Ctrl[/color] to place an entire grid at a time. -When crafting objects with a lot of ingredients, keep in mind you don't have to hold everything at once, you can simply place the ingredients on the floor or on a table near you and they'll be used up during crafting like normal. + When crafting objects with a lot of ingredients, keep in mind you don't have to hold everything at once; you can simply place the ingredients on the floor, in your backpack or on a table near you, and they'll be used up during crafting like normal. -When placing a "building ghost" somewhere in the world press [color=#a4885c]Middle Mouse Button[/color] to rotate the ghost clockwise. + When placing a "building ghost" somewhere in the world, press [color=#a4885c][keybind="EditorRotateObject"][/color] to rotate the ghost clockwise. If you are building a mirrorable component (think: Gas Mixers/Filters), you can press [color=#a4885c][keybind="EditorFlipObject"][/color] to flip the ghost. diff --git a/Resources/ServerInfo/Guidebook/Engineering/Engineering.xml b/Resources/ServerInfo/Guidebook/Engineering/Engineering.xml index 0f53ea3042..ab48ed1d82 100644 --- a/Resources/ServerInfo/Guidebook/Engineering/Engineering.xml +++ b/Resources/ServerInfo/Guidebook/Engineering/Engineering.xml @@ -1,22 +1,21 @@ -# Engineering + # Engineering -Engineering is a combination of construction work, repair work, maintaining a death machine that happens to produce power, and making sure the station contains breathable air. + Engineering is a combination of construction work, repair work, maintaining a death machine that happens to produce power, and making sure the station contains breathable air. -## Tools - - - - - - - - - - - -Your core toolset is a small variety of tools. If you're an engineer, then you should have a belt on your waist containing one of each, if not you can likely find them in maintenance and tool storage within assorted toolboxes and vending machines. - -Most tasks will have explainers for how to perform them on examination, for example if you're constructing a wall, it'll tell you the next step if you look at it a bit closer. + ## Tools + + + + + + + + + + + + Your core toolset is a small variety of tools. If you're an engineer, then you should have a belt on your waist containing one of each; if not, you can likely find them in maintenance shafts and in tool storage within assorted toolboxes and vending machines. + Most tasks will have explainers for how to perform them on examination; for example, if you're constructing a wall, it'll tell you the next step if you look at it a bit closer. diff --git a/Resources/ServerInfo/Guidebook/Engineering/Fires.xml b/Resources/ServerInfo/Guidebook/Engineering/Fires.xml index a1c54059b7..e2c83956cc 100644 --- a/Resources/ServerInfo/Guidebook/Engineering/Fires.xml +++ b/Resources/ServerInfo/Guidebook/Engineering/Fires.xml @@ -1,15 +1,15 @@ - -# Fires & Space + + # Fires & Space -Fires and spacings are an inevitability due to the highly flammable plasma gas and endless vacuum of space present in and around the station, so it's important to know how to manage them. + Fires and spacings are an inevitability due to the highly flammable plasma gas and the endless vacuum of space present in and around the station, so it's important to know how to manage them. -## Spacing -Space is arguably the easier of the two to handle. -While it does render an area uninhabitable, it can be trivially solved by simply sealing the hole that resulted in the vacuum. After that, assuming distro vents and pipes have not been destroyed in some unfortunate accident, the room will slowly begin to repressurize. -Be aware, that active spacings will slowly siphon the air out of the station's air reserves. If you find it impossible to fix structural damage due to some other hazard - make sure to limit the airflow to that room. + ## Spacing + Space is arguably the easier of the two to handle. + While it does render an area uninhabitable, it can be trivially solved by simply sealing the hole that resulted in the vacuum. After that, assuming distro vents and pipes have not been destroyed in some unfortunate accident, the room will slowly begin to repressurize. + Be aware; active spacings will slowly siphon the air out of the station's air reserves. If you find it impossible to fix structural damage due to some other hazard, make sure to limit the airflow to that room. (Currently only half-valid due to the Gas Miners infinitely replenishing most of the useful gases) -## Fires -Fires can be dealt with through a multitude of ways, but some of the most effective methods include: - - Spacing the enflamed area if possible. This will destroy all of the gasses in the room, which may be a problem if you're already straining life support. - - Dumping a Frezon canister into the enflamed area. This will ice over the flames and halt any ongoing reaction, provided you use enough Frezon. Additionally does not result in destruction of material, so you can simply scrub the room afterwards. + ## Fires + Fires can be dealt with through a multitude of ways, but some of the most effective methods include: + - Spacing the enflamed area if possible. This will destroy all of the gasses in the room, which may be a problem if you're already straining life support. + - Dumping a Frezon canister into the enflamed area. This will ice over the flames and halt any ongoing reaction, provided you use enough Frezon. Additionally, this does not result in destruction of material, so you can simply scrub the room afterwards. diff --git a/Resources/ServerInfo/Guidebook/Engineering/NetworkConfigurator.xml b/Resources/ServerInfo/Guidebook/Engineering/NetworkConfigurator.xml index 445d182ab8..ab95dd2e29 100644 --- a/Resources/ServerInfo/Guidebook/Engineering/NetworkConfigurator.xml +++ b/Resources/ServerInfo/Guidebook/Engineering/NetworkConfigurator.xml @@ -1,39 +1,40 @@ -# Network Configurator -The network configurator allows you to manipulate device lists and link devices together. - - - -The configurator has two modes: List and Link. You can press [color=gray]Alt+Z[/color] or [color=gray]Alt+Y[/color] to switch between them. + # Network Configurator + The network configurator allows you to manipulate device lists, link devices together and configure accesses for airlocks through door electronics. + + + + The configurator has two modes: List and Link. You can press [color=gray]Alt+Z[/color] or [color=gray]Alt+Y[/color] to switch between them. -## List Mode -In list mode you can click on network devices to save them on the configurator and then on a network device that has a device list like the [color=#a4885c]Air Alarm[/color]. + ## List Mode + In list mode you can click on network devices to save them on the configurator and then on a network device that has a device list like the [color=#a4885c]Air Alarm[/color]. -When clicking on a device like the Air Alarm, a UI will open displaying the list currently saved on the device and buttons to manipulate that list. + When clicking on a device like the Air Alarm, a UI will open displaying the list currently saved on the device and buttons to manipulate that list. -You can: -- Replace the current list with the one saved on the configurator -- Add the list on the configurator to the current one -- Clear the current list -- Copy the current list to the configurator -- Visualize the connections to the devices on the current list + You can: + - Replace the current list with the one saved on the configurator + - Add the list on the configurator to the current one + - Clear the current list + - Copy the current list to the configurator + - Visualize the connections to the devices on the current list -Pressing [color=gray]z[/color] or [color=gray]y[/color] opens the list saved on the configurator where you can remove saved devices. + Pressing [color=gray][keybind="ActivateItemInHand"][/color] opens the list saved on the configurator where you can remove saved devices. -## Link Mode -With link mode you can click on a device that is capable of device linking and click on any other device that is either -a sink or source. + ## Link Mode + With link mode, you can click on a device that is capable of device linking and then click on any other device that is either a sink or source. -For example, first clicking on a source like a [color=#a4885c]signal button[/color] and then on sink like a -[color=#a4885c]small light[/color] opens a UI that displays the source ports on the left side and the sink ports on the right. + For example, first clicking on a source, like a [color=#a4885c]signal button[/color], and then on sink, like a [color=#a4885c]small light[/color], opens a UI that displays the source ports on the left side and the sink ports on the right. -Now you can eiter click [color=gray]link defaults[/color] to link the default ports for a source + sink combination or press on a source and then a sink port to connect them. + Now, you can either click [color=gray]Link Defaults[/color] to link the default ports for a source + sink combination, or press on a source port and then a sink port to connect them. -An example of a default link for the aformentioned combinaton of devices would be: - - [color=cyan]Pressed 🠒 Toggle[/color] - -When you're done connecting the ports you want you can click on [color=gray]ok[/color] to close the UI. + An example of a default link for the aformentioned combinaton of devices would be: + + [color=cyan]Pressed 🠒 Toggle[/color] + + When you're done connecting the ports you want you can click on [color=gray]OK[/color] to close the UI. -You can quickly link multiple devices to their default port by first clicking on a device that can be linked and then using [color=gray]alt+left mouse button[/color] on the devices you want to link together. + You can quickly link multiple devices to their default port by first clicking on a device that can be linked and then using [color=gray]Alt+Left Mouse button[/color] on the devices you want to link together. + + ## Airlock Access + To configure an airlock's access, simply take the airlock's door electronics and interact with it using a network configurator (or multitool). Select the accesses you want, insert the door electronics into an airlock frame, and construct to finish! diff --git a/Resources/ServerInfo/Guidebook/Engineering/Networking.xml b/Resources/ServerInfo/Guidebook/Engineering/Networking.xml index 03576c789a..90d1f0891b 100644 --- a/Resources/ServerInfo/Guidebook/Engineering/Networking.xml +++ b/Resources/ServerInfo/Guidebook/Engineering/Networking.xml @@ -1,25 +1,24 @@ -# Networking -Some devices on the station need to communicate with each other, and they do this by utilizing device networking. -With networking machines and devices can send arbitrary data between each other. -There are multiple networks that get used, such as the wireless and wired network. -Each network device has a frequency it receives on. PDAs for example, use the frequency: [color=green]220.2[/color] + # Networking + Some devices on the station need to communicate with each other, and they do this by utilizing device networking. + With networking, machines and devices can send arbitrary data between each other. + There are multiple networks that get used, such as the wireless and wired network. + Each network device has a frequency it receives on. PDAs for example, use the frequency: [color=green]220.2[/color] -## Device Lists -Some devices need to know what other devices to communicate with specifically. - - - -Air alarms for example require you to tell it which vents, scrubbers, sensors, and firelocks to interact with. -You do that by using the Network Configurator. + Note: The following operations will require use of the Network Configurator to be performed: -## Linking -If devices basic or still more advanced but need finer control of how and what connects to each other they will generally use device linking. + ## Device Lists + Some devices need to know which other devices to communicate with specifically. - - + -With linking you can connect the outputs of a device like [color=gray]On[/color] or [color=gray]Off[/color] with the inputs of a device like the airlocks -[color=gray]Open[/color] or [color=gray]Close[/color] inputs. -The Network Configurator is also used for linking devices together. + Air alarms, for example, require you to tell it which vents, scrubbers, sensors, and firelocks to interact with. + + ## Linking + If a device, basic or advanced, needs finer controls of how and which devices it connects to, it will generally use device linking. + + + + + With linking, you can connect the outputs of a device, like [color=gray]On[/color] or [color=gray]Off[/color], with the inputs of a device, like the airlocks [color=gray]Open[/color] or [color=gray]Close[/color] inputs. diff --git a/Resources/ServerInfo/Guidebook/Engineering/PortableGenerator.xml b/Resources/ServerInfo/Guidebook/Engineering/PortableGenerator.xml index 2cf1fa44ea..b946bf041c 100644 --- a/Resources/ServerInfo/Guidebook/Engineering/PortableGenerator.xml +++ b/Resources/ServerInfo/Guidebook/Engineering/PortableGenerator.xml @@ -1,7 +1,7 @@ - + # Portable Generators - Need power? No engine running? The "P.A.C.M.A.N." line of portable generators has you covered. + Need power? No engines running? The "P.A.C.M.A.N." line of portable generators has you covered. @@ -16,10 +16,10 @@ - The J.R.P.A.C.M.A.N. can be found across the station in maintenance areas, and is ideal for crew to set up themselves whenever there are power issues. + The J.R.P.A.C.M.A.N. can be found across the station in maintenance shafts, and is ideal for crew to set up themselves whenever there are power issues. Setup is incredibly easy: wrench it down above an [color=green]LV[/color] power cable, give it some welding fuel, and start it up. - Welding fuel should be plentiful to find around the station. In a pinch, you can even transfer some from the big tanks with a soda can. Just remember to empty the soda can first, I don't think it likes soda as fuel. + Welding fuel should be plentiful to find around the station. In a pinch, you can even transfer some from the big tanks with a soda can or water bottle. Just remember to empty the soda can first, I don't think it likes soda as fuel. # The Big Ones @@ -33,10 +33,11 @@ - The (S.U.P.E.R.)P.A.C.M.A.N. is intended for usage by engineering for advanced power scenarios. Bootstrapping the engine, powering departments, and so on. + The (S.U.P.E.R.)P.A.C.M.A.N. is intended for usage by engineering for advanced power scenarios. Bootstrapping larger engines, powering departments, and so on. - The S.U.P.E.R.P.A.C.M.A.N. boasts larger power output and longer runtime at maximum output, but scales down to lower outputs less efficiently. + The S.U.P.E.R.P.A.C.M.A.N. boasts a larger power output and longer runtime at maximum output, but scales down to lower outputs less efficiently. - They connect directly to [color=yellow]MV[/color] or [color=orange]HV[/color] power cables, able to switch between them for flexibility. + They connect directly to [color=yellow]MV[/color] or [color=orange]HV[/color] power cables, and are able to switch between them for flexibility. + The S.U.P.E.R.P.A.C.M.A.N and P.A.C.M.A.N require uranium sheets and plasma sheets as fuel, respectively. diff --git a/Resources/ServerInfo/Guidebook/Engineering/Power.xml b/Resources/ServerInfo/Guidebook/Engineering/Power.xml index 62b38e397d..7dd227ee9b 100644 --- a/Resources/ServerInfo/Guidebook/Engineering/Power.xml +++ b/Resources/ServerInfo/Guidebook/Engineering/Power.xml @@ -1,53 +1,53 @@ -# Power - -SS14 has a fairly in-depth power system through which all devices on the station receive electricity. It's divided into three main powernets; HV, LV, and MV. - - - - - - -## Cabling -The three major cable types (HV, MV, and LV) can be used to form independent powernets. Examine them for a description of their uses. - - - - - - -## Power storage -Each power storage device presented functions as the transformer for its respective power level (HV, MV, and LV) and also provides a fairly sizable backup battery to help flatten out spikes and dips in power usage. - - - - - - -## Ramping -Contrary to what one might expect from a video game electrical simulation, power is not instantly provided upon request. Generators and batteries take time to ramp up to match the draw imposed on them, which leads to brownouts when there are large changes in current draw all at once, for example when batteries run out. - -## Installing power storage -Substations are the most self-explanatory. Simply install the machine on top of an MV and HV cable, it will draw power from the HV cable to provide to MV. - -Installing APCs is similarly simple, except APCs are exclusively wallmounted machinery and cannot be installed on the floor. Make sure it has both MV and LV connections. - -Installing a SMES requires you construct a cable terminal to use as the input. The SMES will draw power from the terminal and send power out from underneath. The terminal will ensure that the HV input and HV output do not connect. Avoid connecting a SMES to itself, this will result in a short circuit which can result in power flickering or outages depending on severity. - -## APC breaking -Currently the only power storage device that has a limit to its power network is APC. As soon as all connected devices and machinery demand more than [color=#a4885c]24kW[/color] it's breaker will pop and everything will turn off. - - - - -## Checking power grid -1. Use the [color=#a4885c]t-ray scanner[/color] in order to locate cables that are hidden under tiles. (skip this step if cables aren't hidden) -2. Pry open the tile that is blocking your access to the cable with a [color=#a4885c]crowbar[/color]. (skip this step if cables aren't hidden) -3. Equip your trusty [color=#a4885c]Multitool[/color] and click on any cable to see powergrid stats. - - - - - + # Power + + SS14 has a fairly in-depth power system through which all devices on the station receive electricity. It's divided into three main powernets; High Voltage, Medium Voltage, and Low Voltage. + + + + + + + ## Cabling + The three major cable types (HV, MV, and LV) can be used to form independent powernets. Examine them for a description of their uses. + + + + + + + ## Power storage + Each power storage device presented functions as the transformer for its respective power level (HV, MV, and LV), and also provides a fairly sizable backup battery to help flatten out spikes and dips in power usage. + + + + + + + ## Ramping + Contrary to what one might expect from a video game electrical simulation, power is not instantly provided upon request. Generators and batteries take time to ramp up to match the draw imposed on them, which leads to brownouts when there are large changes in current draw all at once; for example, when batteries run out. + + ## Installing power storage + Substations are the most self-explanatory. Simply install the machine on top of an MV and HV cable; it will draw power from the HV cable to provide to MV. + + Installing APCs is similarly simple, except APCs are exclusively wallmounted machinery and cannot be installed on the floor. Make sure it has both MV and LV connections. + + Installing a SMES requires you construct a cable terminal to use as the input. The SMES will draw power from the terminal and send power out from underneath. The terminal will ensure that the HV input and HV output do not connect. Avoid connecting a SMES to itself; this will result in a short circuit, which can result in power flickering or outages depending on severity. + + ## APC breaking + Currently the only power storage device that has a limit to its power to the network is the APC. As soon as all connected devices and machinery demand more than [color=#a4885c]24kW[/color] of power, its breaker will pop and everything will turn off. In the case that you are not an engineer, call an engineer (or cyborg) to re-enable it, after reducing the load back down to [color=#a4885c]below[/color] 24kW. + + + + + ## Checking the power grid + 1. Use the [color=#a4885c]t-ray scanner[/color] in order to locate cables that are hidden under tiles. (skip this step if cables aren't hidden) + 2. Pry open the tile that is blocking your access to the cable with a [color=#a4885c]crowbar[/color]. (skip this step if cables aren't hidden) + 3. Equip your trusty [color=#a4885c]Multitool[/color] and click on any cable to see the power-grid stats. + + + + + diff --git a/Resources/ServerInfo/Guidebook/Engineering/RTG.xml b/Resources/ServerInfo/Guidebook/Engineering/RTG.xml index 1d71ee9144..6149b58049 100644 --- a/Resources/ServerInfo/Guidebook/Engineering/RTG.xml +++ b/Resources/ServerInfo/Guidebook/Engineering/RTG.xml @@ -1,17 +1,20 @@ -# Radioisotope Thermoelectric Generator (RTG) + # Radioisotope Thermoelectric Generator (RTG) - - - - + + + -Making power using a Radioisotope Thermoelectric Generator (RTG) is similar to making power using solar. -RTGs only provide 10 kW of power, but they provide it for free and for the entire round. -Basically, if you connect an RTG to your power grid, it'll give you free power. + Making power using a Radioisotope Thermoelectric Generator (RTG) is similar to making power using solars. + RTGs only provide [color=#a4885c]10kW[/color] of power, but they provide it for free and for the entire round. + Basically, if you connect an RTG to your power grid, it'll give you [color=#a4885c]free power[/color]. + However, they're only accessible through salvage finding one on an expedition. Should they bring some in, make sure to thank them! -Sometimes, RTGs are damaged. -Damaged RTGs behave just like regular ones, but they're radioactive. -That means they're more dangerous, but on the bright side, you can put radiation collectors next to them to turn that radiation into more power. - - \ No newline at end of file + + + + Sometimes, RTGs appear damaged. + Damaged RTGs behave just like regular ones, but they're [color=yellow]radioactive[/color]. + That means they're more dangerous, but on the bright side, you can put radiation collectors next to them to turn that radiation into more power. + This is usually more worthwhile, considering the power is still free, so long as you can find a safe spot to put the RTG(s) in. + diff --git a/Resources/ServerInfo/Guidebook/Engineering/Shuttlecraft.xml b/Resources/ServerInfo/Guidebook/Engineering/Shuttlecraft.xml index 7e743ddd68..21956d600c 100644 --- a/Resources/ServerInfo/Guidebook/Engineering/Shuttlecraft.xml +++ b/Resources/ServerInfo/Guidebook/Engineering/Shuttlecraft.xml @@ -1,40 +1,39 @@ -# Shuttle-craft + # Shuttle-craft -Shuttle construction is simple and easy, albeit rather expensive and hard to pull off within an hour. It's a good activity if you have a significant amount of spare time on your hands and want a bit of a challenge. + Shuttle construction is simple and easy, albeit rather expensive and hard to pull off within an hour. It's a good activity if you have a significant amount of spare time on your hands and want a bit of a challenge. -## Getting started -Required parts: - - - - - - - - - - - - - + ## Getting started + Required parts: + + + + + + + + + + + + + -Optional parts: - - - - - - - - - - + Optional parts: + + + + + + + + + + -Head out into space with steel sheets and metal rods in hand, and once you're three or more meters away from the station, click near or under you with the rods in hand. This will place some lattice, which can then be turned into plating with the steel sheets. Expand your lattice platform by clicking just off the edge with rods in hand. + Head out into space with steel sheets and metal rods in hand, and once you're three or more tiles away from the station, click near or under you with the rods in hand. This will place some lattice, which can then be turned into plating with steel sheets or floor tiles. Expand your lattice platform by clicking just off the edge with some rods in hand. -From there, once you have the shape you want, bring out and install thrusters at the edges. They must be pointing outward into space to function and will not fire if there's a tile in the way of the nozzle. Install a gyroscope where convenient, and use your substation and generator to set up power. Construct a wall on top of an MV cable and then install an APC on that to power the devices onboard. - -Finally, install the shuttle computer wherever is convenient and ensure all your thrusters and gyroscopes are receiving power. If they are, congratulations, you should have a functional shuttle! Making it livable and good looking is left as an exercise to the reader. + From there, once you have the shape you want, bring out and install thrusters at the edges. They must be pointing outward into space to function and will not fire if there's a tile in the way of the nozzle. Install a gyroscope where convenient, and use your substation and generator to set up power. Construct a wall on top of an MV cable and then install an APC on that to power the devices onboard. + Finally, install the shuttle computer wherever is convenient and ensure all your thrusters and gyroscopes are receiving power (remember to wire the MV and LV networks!). If they are; congratulations, you should have a functional shuttle! Making it livable and good looking is left as an exercise to the reader. diff --git a/Resources/ServerInfo/Guidebook/Engineering/Singularity.xml b/Resources/ServerInfo/Guidebook/Engineering/Singularity.xml index 3553d43e6f..3c0dd665e2 100644 --- a/Resources/ServerInfo/Guidebook/Engineering/Singularity.xml +++ b/Resources/ServerInfo/Guidebook/Engineering/Singularity.xml @@ -1,109 +1,141 @@ -# Gravitational Singularity Engine - -The Gravitational Singularity Engine can yield infinite power, with no fueling required. It can also destroy the whole station with equal ease. It uses a Particle Accelerator to fire high energy particles at a Singularity Generator to form a singularity. The singularity then pulses radiation which is absorbed by Radiation Collectors. - -## Setting it up - -The Gravitational Singularity Engine requires 4 subsystems to work properly: - -## Gravitational singularity generator - - - -The generator should be anchored at the center of the containment area since this is where the singularity will appear at. - -## Containment field generators and emitters - - - - - -The emitters connect to MV cables and fire lasers as long as they have power and are turned on. -Fire emitters at containment field generators to activate them. -If two containment field generators are active, in range and in the same cardinal axis, a containment field will appear. -The containment field will repell the singularity, keeping it from escaping, and yield a little bit of power every time anything bounces off of them. -Emitter lasers and containment field can cause damage, avoid touching them when active. - -## Radiation collectors - - - - -They connect to HV cables and generate power from nearby radiation sources when turned on. -Radiation collectors require a tank full of gaseous plasma in order to operate. -Continous radiation exposure will gradually consume the stored plasma, so replace depleted tanks with fresh ones to maintain a high power output. - -## Particle accelerator - - - - - - - - - - - - - - - - - - - - - -The Particle Accelerator (PA) is a multi-tile structure that launches accelerated particles from its emitters. Its emitters should always face the gravitational singularity generator. -Some stations already have an unfinished PA. To complete, first ensure there is MV cable beneath the PA power box, anchor all parts, then add LV cable to each part. - - - -Then use a screwdriver to screw back the panels. -Scan parts using the PA control computer to check if it's operational. If it shows up as incomplete, examine for what's missing. - - - - -## Turing on the Gravitational Singularity Engine - -[color=#a4885c]Do not[/color] turn the PA on unless all other subsystems are working properly. - -Turn power on using the PA control computer. Set strength to an appropiate level. Currently the only appropriate level is [color=#f0684d]1[/color], anything above that will ensure that singularity grows too strong to handle. -The higher the output stength is set on PA control computer, the bigger the singularity will be. - -The PA will now draw power from the power net and start firing particles at the Gravitational singularity generator. - - - - - - - -A singularity will soon appear at the position of the Gravitational singularity generator. - - - - -If no particle is hitting the singularity generator, the singularity will start to slowly decay until it disappear. - -## Safety -Singularity emits radiation around it, so always keep a distance. Consider getting radiation shielding gear beforehand. Seek medical attention if experiencing health issues. - - - - - - - - - - - -A singularity might move around, but the containment field will repel it. -If a singularity escapes its containment field, often referred to as a "singuloose," it will attract and then consume everything in its way. - -In such circumstances, there is little to be done other than running in the opposite direction. + # Singularity / Tesla Engine + + The Singularity Engine / Tesla Engine can yield [color=#a4885c]infinite power[/color], with no fueling required. It can also [color=red]destroy the whole station[/color] with equal ease. It uses a Particle Accelerator to fire high energy particles at a Singularity Generator to form a singularity or ball lightning. + The singularity then pulses radiation which is absorbed by Radiation Collectors, or the ball lightning then zaps nearby tesla coils and grounding rods to provide power. + + # Setting it up + + Both engines requires 4 subsystems to work properly; two are shared between both engines: + + ## Containment field generators and Emitters + + + + + + The emitters connect to MV cables and fire lasers as long as they have power and are turned on. + Fire the emitters at enabled containment field generators to activate them. + If two containment field generators are active, in range and are in the same cardinal axis, a containment field will appear. + The containment field will repel the singularity or tesla, keeping it from escaping, and yield a little bit of power every time anything bounces off of them. + + The emitter lasers and the containment fields can also cause damage and/or cause you to be sent flying into deep space; [color=#a4885c]avoid touching them[/color] when active. + It is recommended to [color=#a4885c]lock the emitters[/color] with [keybind="AltActivateItemInWorld"/], to prevent any break-in no-gooders from loosing the singularity or tesla by simply switching off the field. + + Teslas can have significantly smaller containment fields than singularity containment fields; adjusting field size is recommended, as the tesla becomes easier to keep watch on in a simply 3x3 field setup. + + ## Particle accelerator + + + + + + + + + + + + + + + + + + + + + + The Particle Accelerator (PA) is a multi-tile structure that launches accelerated particles from its emitters. Its emitters should always face the generator. + Some stations already have an unfinished PA. To complete it, first ensure there is a MV cable beneath the PA power box, anchor all the parts, and then add an LV cable to each part. + + + + Then use a screwdriver to screw back the panels. + [color=#a4885c]Scan parts[/color] using the PA control computer to check if it's operational (the PA will not function if you do not scan it!). If it shows up as incomplete, examine what's missing. + + + + + The other two subsystems are unique to each other: + + ## Gravitational singularity generator or Ball lightning generator + + + + + The generator should be anchored at the center of the containment area, since this is where the singularity/tesla should appear at. + + ## Radiation collectors or Tesla coils + + + + + The radition collectors connect to HV cables and generate power from nearby radiation sources when turned on. + Radiation collectors require a tank full of gaseous plasma in order to operate. + Continous radiation exposure will gradually convert the stored plasma into tritium, so replace depleted plasma tanks with fresh ones regularly to maintain a high power output. + + + + + + The tesla coils connect to HV cables and provide a stream of power after being zapped by the ball lightning. + However, tesla coils usually do not fully absorb the lightning strike, and the grounding rods are required to prevent lighting from arcing to and obliterating nearby machines. + Do note that one grounding rod is not a foolproof solution; get [color=#a4885c]atleast 4 rods[/color] around the containment field to make it mathematically unlikely for the tesla to escape. + As the ball lightning zaps tesla coils, they will degrade from wear; make sure to [color=#a4885c]weld them[/color] every now and then to keep generating power. + + ## Turing on the Engines + + [color=red]Do not[/color] turn the PA on unless all the other subsystems are working properly and there is enough power to start the engine. + + Turn power on using the PA control computer. Set the strength to an appropiate level. Currently the only appropriate level is [color=#f0684d]1[/color]; anything above that will ensure that singularity grows too strong to handle. + The higher the output stength is set on PA control computer, the bigger the singularity will be. + + Currently, the output power does not affect the ball lightning, beyond giving the ball lightning extra orbs around it. + + The PA will now draw power from the power net and start firing particles at the generators. + + + + + + + + A singularity or ball lightning will soon appear at the position of the Gravitational singularity generator. + + + or + + + + If no particles are hitting the singularity, the singularity will start to slowly decay until it disappears. + This is not the case for the tesla; feel free to disconnect the PA after the tesla has been set up. + + ## Safety + The singularity emits a large amount of radiation around it, so always keep a distance from it. Consider getting [color=yellow]radiation shielding gear[/color] beforehand. Seek medical attention if you are experiencing health issues. + + + + + + + + + + + + The singularity might move around, but the containment field will repel it. + + The tesla creates large bolts of lightning around it, so make sure to wear insuls before approaching it. If you aren't, and it zaps you, pray that the ball lightning doesn't stunlock you and eventually send you into crit. + + + + If a singularity or tesla escapes its containment field, often referred to as a "singuloose" or "tesloose" respectively, it will attract and then consume everything in its way, growing larger as it does so, or it will begin to obliterate every machine in its path, and shock all crew personnel. + + In such circumstances, there is little to be done other than running in the opposite direction. + + + + However, if science has happened to research [color=#D381C9]Portable Particle Decelerators[/color], or if cargo can order them in time, you may be able to stop the singularity from eating the whole station. + Good luck on the tesla, though; it is merely too powerful to recontain after breaching. diff --git a/Resources/ServerInfo/Guidebook/Engineering/TEG.xml b/Resources/ServerInfo/Guidebook/Engineering/TEG.xml index 9e8697a9e1..63a62fecf8 100644 --- a/Resources/ServerInfo/Guidebook/Engineering/TEG.xml +++ b/Resources/ServerInfo/Guidebook/Engineering/TEG.xml @@ -19,25 +19,25 @@ Note that the circulators are [color=#a4885c]directional[/color]: they will only let gas through one way. You can see this direction in-game by examining the circulator itself. A pressure difference is required across the input and output, so pumps are generally provided and must be turned on. - There is no preference for which side must be hot or cold, there need only be a difference in temperature between them. The gases in the two "loops" are never mixed, only energy is exchanged between them. The hot side will cool down, the cold side will heat up. + There is no preference for which side must be hot or cold, there need only be a difference in temperature between them. The gases in the two "loops" are never mixed, [color=#a4885c]only energy is exchanged between them[/color]. The hot side will cool down, the cold side will heat up. ## The Pipes - There are 2 major pipenets to worry about here: The Hot Loop (where gas will be burnt for heat), and The Cold Loop (where circulated, heated waste gas will either be removed into space or cooled back down). Make sure that [bold]both pipenets do NOT mix[/bold], as only heat should be transferred between the two through the TEG. + There are 2 major pipenets to worry about here: [color=red]The Hot Loop[/color] (where gas will be burnt for heat), and [color=cyan]The Cold Loop[/color] (where circulated, heated waste gas will either be removed into space or cooled back down). Make sure that [color=#a4885c][bold]both pipenets do NOT mix[/bold][/color], as only heat should be transferred between the two through the TEG. # The Hot Loop As I'm sure a wise person once said: the best way to make something hot is to light it on fire. Well, depending on context, that may not be very wise, but luckily your engineering department has just what's needed to do it wisely after all. - As stated above, there are many different layouts one can follow to heat up (or cool down) gases; this part of the guide will cover 2 common methods one will often see for the hot loop when the TEG is setup: The Pipe Burn, and the Burn chamber. + As stated above, there are many different layouts one can follow to heat up (or cool down) gases; this part of the guide will cover 2 common methods one will often see for the hot loop when the TEG is setup: [color=#a4885c]The Pipe Burn[/color], and [color=red]the Burn Chamber[/color]. - Side note: Plasma fires burn relatively cool compared to, for example, Tritium fires. It may be viable to extract Tritium from an extraction setup (using a 97/3 ratio of O2/Plasma) and react it with Oxygen to get truly hellish temperatures for power. Although, this is just a recommendation; I'm not ya mum. + Side note: Plasma fires burn relatively cool compared to, for example, Tritium fires. It may be viable to extract Tritium from an extraction setup (using a 96/4 ratio of O2/Plasma) and react it with Oxygen to get truly hellish temperatures for power. Although, this is just a recommendation; I'm not ya mum. ## The Pipe Burn Also known as the naive method, this is generally discouraged when working for efficiency. However, if all you need is a smidge of power to run the station, and you don't feel like setting up the burn chamber, this method will do. - TODO: Remove this section when atmos pipes are updated to have pressure/temperature limits in a future atmos refactor. + [color=#444444]TODO: Remove this section when atmos pipes are updated to have pressure/temperature limits in a future atmos refactor.[/color] Most (if not all) pipe burns follow this general layout: @@ -55,8 +55,8 @@ - The Gas input is pretty self-explanatory; this is where you will input the O2-Plasma mix to be burnt. A 2:1 (67/33) ratio of Oxygen to Plasma is recommended for the hottest burn. - The High-pressure pump serves 2 purposes; first, it prevents the burn from backwashing into the supply pipe, which would be.. bad, for many reasons. Second, it maintains a positive pressure in the following pipe segment, which is important to allow the burn to continue, especially since hot gases expand. - - The Pipe segment is where the burn actually occurs; to start it off, one can use a heater to increase the temperature up to the ignition temperature of Plasma. Afterwards, the reaction should be self-sustaining, so long as the Pressure and Moles supplied remains high enough. Be warned; if you wish to remove the heater, it will carry some of this superheated gas with it, transferring it to the next pipenet you connect it to. Best to space the gas through a space vent, if you must. - - The Low-pressure pump (whose pressure should be [italics]slightly lower[/italics] than the input pump) prevents [italics]all[/italics] the gas from passing through the circulator, which could result in the loss of the Moles required to sustain a burn. + - The Pipe segment is where the burn actually occurs; to start it off, one can use a heater to increase the temperature up to the ignition temperature of Plasma. Afterwards, the reaction should be self-sustaining, so long as the Pressure and Moles supplied remains high enough. [color=#a4885c]Be warned[/color]; if you wish to remove the heater, it will carry some of this superheated gas with it, transferring it to the next pipenet you connect it to. Best to space the gas through a space vent, if you must. + - The Low-pressure pump (whose pressure should be [italic]slightly lower[/italic] than the input pump) prevents [italic]all[/italic] the gas from passing through the circulator, which could result in the loss of the Moles required to sustain a burn. - The Circulator is where this generated heat will flow to the cold loop; afterwards, feel free to space the waste gases. Note: Pressure pumps are used here as, while they pump on pressure (not flow-rate, which is comparatively faster), they are a bit easier to control when it comes to the limited Plasma supply on-station. However, the steps shown can be followed with volumetric pumps too. @@ -68,25 +68,53 @@ Most (if not all) stations have the burn chamber separated from the main atmospherics block by a 1-wide spaced grid, presumably to prevent conduction. The chambers consist of 3(+1) important parts: - The Air Injector/Passive Vent - The Space Vent - - The Radiator Loop + - The Scrubber Array + + Here is one layer of an example setup: (pipes can and do need to be layered under the scrubbers below to connect them!) + + + + + + + + + + + + + + + + + + + + + + + + + + + + - Most normal burn chambers don't come with Heat-Exchangers; instead, they have air scrubbers (and optionally, an air alarm) to help filter for Tritium, which is a highly reactive, hot-burning gas that can also be used to heat the TEG efficiently. - However, this is a slightly more advanced setup than just burning plasma, as it needs 2 burn chambers instead of 1 (one for tritium production, one for burning said tritium), so remove the scrubbers and retrofit the burn chamber with a parallel array of heat-exchangers instead. - The air injector (or Passive Vent) injects air (or allows air to flow) into the burn chamber. Either should be supplemented with a pump before it, to keep pressures high. - There is a notable difference between the passive vent and the air injector; the air injector can only keep injecting air up to 9MPa, which can be reached very easily with a good burn. Ideally, switch out the air injector for a passive vent connected to a volume pump. + There is a notable difference between the passive vent and the air injector; the air injector can only keep injecting air up to [color=#a4885c]9MPa[/color], which can be reached very easily with a good burn. Ideally, switch out the air injector for a passive vent connected to a volume pump. + + The space vent (designated as a blast door to space on one side of the burn chamber) allows waste gases to be expelled and destroyed. Open this every now and then to keep the pressure under control, or to space excess input gas. - The space vent (designated as a blast door to space on one side of the burn chamber) allows waste gases to be expelled and destroyed. Open this to keep the pressure under control. + The scrubber array filters out all the burnt gasses and sends them through the TEG. Note that using default settings on the scrubbers is a bad idea, as valuable plasma will be filtered out too. + Instead, use a network configurator to connect all the scrubbers to a nearby air alarm, and set the air alarm's scrubber settings to scrub everything except Oxygen and Plasma, and to siphon air aswell. This ensures that as much heat as available can be collected and sent to the TEG. - The radiator loop collects heat from the burnt gases and brings it to the TEG. To maximize efficiency, hook up the heat-exchangers [italics]in parallel to each other[/italics], with a pressure pump at max pressure after the array and a volumetric pump before the array. - The pressure of the volumetric pump should be set to ( 200 / number of heat-exchangers ) L/s. For example, having 2 heat-exchangers would mean you should set the pressure to 100 L/s. - Finally, fill the whole loop with (ideally) a high heat capacity gas, like Frezon or Plasma. (Yes, Frezon =/= Cold. Frezon has one of the highest heat capacities in the game; so long as it isn't reacting with Nitrogen, it can actually be heated and can store heat really well!) + Note that these are just two of many ways you can setup the hot loop; [color=#a4885c]feel free to mix and match setups as needed![/color] Volume pumps in replacement of pressure pumps, radiator loops for heat collection, or even a Pyroclastic anomaly to provide said heat! The stars are the limit! # The Cold Loop As with the Hot Loop, the Cold Loop must also be setup in order to operate the TEG. However, the Cold Loop is usually a lot more low-tech than the Hot Loop; in reality, the Cold Loop only has to be "relatively" cooler -- hey, room temperature is technically cooler than the surface of the sun, right? - There are 3 main methods you will see used for the Cold Loop: The Water Cooler (see: Liltenhead's video on the TEG), the Coolant Array and the Freezer Loop. + There are 3 main methods you will see used for the Cold Loop: [color=#a4885c]The Water Cooler[/color] (see: Liltenhead's video on the TEG), [color=cyan]the Coolant Array[/color] and [color=#a4885c]the Freezer Loop[/color]. ## The Water Cooler @@ -103,14 +131,17 @@ - TODO: Remove this section when gas miners are removed in a future atmos refactor. + [color=#444444]TODO: Remove this section when gas miners are removed in a future atmos refactor.[/color] ## Coolant Array - This is the default method for the Cold Loop you will see on a variety of stations. Being of moderate complexity and having no losses of any resource, this [italics]should[/italics] be the main method of cooling down the TEG. However, every station at the moment somehow has their heat exchangers hooked up wrong, reducing efficiency greatly. (Thanks a bunch, NT!) + This is the default method for the Cold Loop you will see on a variety of stations. Being of moderate complexity and having no losses of any resource, this [color=#a4885c]should[/color] be the main method of cooling down the TEG. However, most stations at the moment somehow have their heat exchangers hooked up wrong (or suggest incorrect piping), reducing efficiency greatly. [color=#444444](Thanks a bunch, NT!)[/color] - To use heat-exchangers properly, they must be setup in [italics]parallel[/italics], not in series (like what you see on most stations). A gas pump at max pressure should be placed after, and a volumetric pump before the heat-exchangers. - The flow-rate of the volumetric pump should be set to ( 200 / number of heat-exchangers ) L/s. + To use heat-exchangers properly, they must be setup in [color=#a4885c]parallel[/color], not in series (like what you see on most stations). A gas pump at max pressure should be placed after, and a volumetric pump before the heat-exchangers. + The flow-rate of the volumetric pump should be set using the following formula: + + [color=cyan]( 200 / number of heat-exchangers )[/color] L/s. + Simply speaking, the Coolant Array consists of 3 major parts: An input connector port, a few pumps and the heat-exchanger array out in space. It can be setup like so: @@ -161,7 +192,7 @@ - Connector Port: Use this to input a gas with high heat capacity; most of the time, Plasma or Frezon is used to do so, as they both have very high specific heat capacities (although most any gas will do). (Yes, Plasma =/= Hot. You can cool it down, and it acts as a really good heat exchange medium.) - Input/Output Pumps: Used to make sure gas keeps flowing through both the Circulator and the Heat-Exchanger array. As the gas cools down and heats up (and as it flows through the Exchanger), pressure must be applied for it to keep flowing. - - Heat-Exchanger: Basically, just a bunch of heat-exchanger pipes in space. Not much to say, besides the fact that it cools down the gas inside it. Make sure the heat-exchangers are placed on lattice, not plating! Otherwise, the heat-exchange efficiency will be greatly reduced, as the heat-exchangers aren't directly exposed to space below them. + - Heat-Exchanger: Basically, just a bunch of heat-exchanger pipes in space. Not much to say, besides the fact that it cools down the gas inside it. Make sure the heat-exchangers are [color=#a4885c]placed on lattice, not plating[/color]! Otherwise, the heat-exchange efficiency will be greatly reduced, as the heat-exchangers aren't directly exposed to space below them. ## The Freezer Loop diff --git a/Resources/ServerInfo/Guidebook/Medical/Cryogenics.xml b/Resources/ServerInfo/Guidebook/Medical/Cryogenics.xml index ef6e1a49e8..f70f43c8a8 100644 --- a/Resources/ServerInfo/Guidebook/Medical/Cryogenics.xml +++ b/Resources/ServerInfo/Guidebook/Medical/Cryogenics.xml @@ -12,7 +12,7 @@ Cryogenics can be a bit daunting to understand, but hopefully, quick run through - + diff --git a/Resources/ServerInfo/Guidebook/Mobs/Harpy.xml b/Resources/ServerInfo/Guidebook/Mobs/Harpy.xml new file mode 100644 index 0000000000..0b27e31473 --- /dev/null +++ b/Resources/ServerInfo/Guidebook/Mobs/Harpy.xml @@ -0,0 +1,122 @@ + + # Harpy (Homo-Aves sapiens) + All Information included in this document is licensed under CC BY-SA 4.0, and is written by VMSolidus(Github), also known as raistlin_jag(Discord) + + + + + + Harpies were created during the first 100 years of the colonial period of human civilization, back when the corporations still answered to the Sol Government. + Their creators were a company called GenetiCorp, now long defunct. + During it's heyday, GenetiCorp developed processes for converting colonists into forms suitable for the lesser colonized planets with some extreme conditions. + For the Harpy subtype, these adaptations were created to colonize the moon of a Hycean world, Valyrian 4b(4a referring to the Hycean world itself). + It is a planet with an incredibly dense atmosphere, measuring just slightly over 150kpa at sea level, with a high oxygen concentration. + Its host star is extraordinarily rich in the UV spectrum of light, but gives off incredibly dim amounts of red light. + The planet's terrain features a vast ocean surrounding a single volcanically active continent, as well as extensive archipelagos. + Valyrian 4b is well known for its flora sporting leaves that fluoresce orange in the nearby star's UV intense light. + + Due to persistent financial troubles, GenetiCorp was bought out by its largest competitor Interdyne long before its first colony ship arrived at the intended destination. + Shortly after arrival, the original Harpy colonists were repossesed by Interdyne- who had gotten to the planet first in faster ships made after the fact. + Some Harpy colonists remained on "the Homeworld", while others were kept by the company and gradually spread across the realms of human space. + Due to the costs of their radical genemodding, most Harpies today are indebted to corporations, owing vast sums of money inherited from their parents. + These debts are often traded between corporations like stocks, resulting in a wide Diaspora of Harpies around the galaxy, and in turn gives them their extremely diverse coloration. + + ## Biology + + Harpies are biologically classed as a different species than Homo-Sapiens, due to the extreme nature of their original designer genetic modifications rendering them incapable of breeding true with Sol-Standard Humans. + They are however not true mutants, owing to the stability of their modifications such that they breed naturally as a species. + However, a "GenetiCorp-Standard Harpy" is readily recognisable as being related to humans thanks in part to retaining many body parts and organs present in the standard human. + A typical Harpy possesses a human brain, heart, stomach, kidneys, and reproductive organs, with skin not unlike a human- though it may be partially feathered, and can have a rough texture to the touch. + + Their most extreme internal modifications are the possession of a second trachea, leading to a quartet of Avian lung organs. + A Harpy's breathing is several times more efficient than a Human's at taking in oxygen, and like a bird, they have no separation of "Inhale and Exhale". + Air enters a Harpy's lungs in a continuous loop via a circular motion through their four lung chambers. Listening to a Harpy breathing via a stethoscope is something like listening to the rhythm of a heartbeat, it is fast and continuous. + + This continuous-flow breathing also permits the use of a highly advanced vocal organ called a Syrinx, which is what enables Harpies to perform iconic ability to imitate nearly any sound. + This of course comes with a significant trade-off, one that makes for a difficult life for Harpies to live in space. + They require double the volume of air a human requires, burning through tanks of oxygen twice as fast as any other species. + They are also substantially vulnerable to air impurities of any kind, and will be readily injured by simple things such as cigarette smoke, or someone hyperventilating in their face. + + ## Unique Languages +- [color=#008ecc]Valyrian Standard[/color]: + A language descended from eastern european languages of old earth - Valyrian Standard is the commonly spoken tongue of Harpies brought up on their homeworld of Valyrian 4b. + It is rarely spoken outside of the worlds of its native speakers, and has in modern times been supplanted by the 'Conlangs of the Sol Alliance. + Its speakers are those who wish to uphold the traditions and beliefs of ancient peoples from before the colonial era. + + ## Other Notes + + - No, Harpies don't lay eggs. + - In a combination of low-gravity and high atmospheric density, a Harpy is capable of flight. They are however flightless in Terran-Standard Atmospheric conditions. + - Adult Harpies can be anywhere from 135cm to 190cm tall, with an average height of around 155cm(Human average being roughly 175cm, depending on ethnicity). + - An average adult male Harpy weighs only 24kg, while an average adult female weighs 18kg. For reference, the average weight of an adult male human is 71kg. + - Curiously, Harpies do not follow the pattern of sexual dimorphism present in Terran birds. Female Harpies are usually just as colorful(or lack thereof) as their male counterparts. + - Spacer Harpies(Those not born on the Homeworld), are typically far more colorfully diverse than those native to the Homeworld. + + # Species Traits + + ## Positive Traits + - [color=#1e90ff]Mimicry[/color]: + Harpies can mimic almost any sound in the game using emotes, barring only a few exceptions. This includes the voice emotes of every other species. + The Harpy sound library contains nearly 700 possible sounds. This trait is unique only to Harpies. + + - [color=#1e90ff]Runner[/color]: + Thanks to their incredibly light build, a Harpy's base running speed is 10% faster than that of a standard Human. + + - [color=#1e90ff]Singer(Advanced)[/color]: + Harpies have a significantly more advanced variant of the [color=#1e90ff]Singer[/color] trait. This trait gives a Harpy access to an innate Midi Player, as well as a menu for swapping instruments. + Right click on yourself to open the Swappable Instrument menu, and select from a list of available instruments to mimic. Any of the following conditions both stop and prevent a Harpy from singing: + + * Being Mute + + * Being Zombified + + * Being Dead or Crit + + * Taking more than 5 damage in a single instance + + * Being shoved to the ground + + + - [color=#1e90ff]Zero Gravity Flight[/color]: + Harpies have significantly enhanced acceleration in zero gravity. This trait is shared with Nians. + + - [color=#1e90ff](Limited) True Flight[/color]: + Harpies have an activatable ability to attempt to fly. In order to fly, a Harpy must have both of their wings unencumbered, either by carrying something in hand, or by being restrained. + When activated, Flight significantly increases the maximum speed and acceleration of a Harpy, while allowing them to fly over obstacles. + Using flight costs a significant amount of stamina. + + - [color=#1e90ff]Talons[/color]: + Functions as per the [color=#1e90ff]Talons[/color] trait. A Harpy's unarmed attacks deal 5 points of Piercing damage. + + ## Negative Traits + - [color=#ffa500]Asthmatic[/color]: + Using their powerful Avian Lungs, a Harpy breathes twice as deeply, and twice as often as a standard Human. This results in two key conditions. The first is that all oxygen tanks last half as long for a Harpy. + The second condition, is that Harpies are uniquely vulnerable to poisonous fumes. When exposed to even a small amount of Carbon Dioxide and or Ammonia, a Harpy will shortly thereafter being to choke. + Choking can be ended either by moving away from the sources of poisonous fumes(such as rotting bodies, open gas tanks, or several people in an enclosed space with no scrubbers). + A choking Harpy can also stop themselves from choking by breathing from a tank of Pure Oxygen for at least 6 seconds. + + - [color=#ffa500]Extreme Low Density[/color]: + The average weight of a Harpy is only 24kg, and can be as low as 10kg, with a maximum of 31kg. Because of this, Harpies suffer from any form of Mass Contests. + This results in weaknesses such as- but are not limited to: + - Experiencing more recoil with firearms + - Being easier to shove down + - Being easy to pick up by other people + - Being easy to throw + - Having a harder time pushing or dragging heavy objects + - Having weaker melee damage with certain weapons + - Being thrown extremely easily by Space Wind + + - [color=#ffa500]Hollow Bones[/color]: + Harpies take 15% greater damage from any source of Brute damage. + + - [color=#ffa500]Ultraviolet Vision[/color]: + Harpies have a unique kind of eye lens that lets them see in Ultraviolet-Blue-Green, but that they cannot see the color Red. This functions as per the Ultraviolet Vision trait. + "Ultravision" can also be "Bought off" in character creation by taking the [color=#1e90ff]Trichromat Modification[/color] trait. + + # Unique Traitor Items + + - [color=#1e90ff]Bionic Syrinx[/color]: + Traitor Harpies can optionally purchase a Bionic Syrinx. This takes the form of an Implant which- when implanted in a Harpy, acts as an internal Voice Changer. + The Bionic Syrinx will only work on Harpies. + + diff --git a/Resources/ServerInfo/Guidebook/Mobs/Reptilian.xml b/Resources/ServerInfo/Guidebook/Mobs/Reptilian.xml index 936cd9f5e2..8acdab3e51 100644 --- a/Resources/ServerInfo/Guidebook/Mobs/Reptilian.xml +++ b/Resources/ServerInfo/Guidebook/Mobs/Reptilian.xml @@ -1,16 +1,131 @@ - # Reptilians - + # Unathi +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=Unathi with some modifications by VMSolidus(Github). - They can ONLY eat fruits and meat, but can eat raw meat and drink blood without any ill effects. - They prefer a somewhat higher temperature range than humans. - They can drag objects with their tail, keeping both their hands free. + The Unathi (direct plural: Unathi – You-NAWH-thee both singular and multiple) (adjective: Unathite - You-NAWH-thit) are a race of tall humanoid reptiles standing from six to seven feet tall on average, with females slightly smaller in stature. They possess a mixture of snake-like and crocodile-like features, resulting in hard and plate-like scales. + Unathi live in their home system of Uueoa-Esa with their homeworld being Moghes. The planet's history can be summarized as being divided up between various Hegemonies, names they give the most powerful Clans on Moghes throughout time. + The Clan system is deeply entrenched in Unathi society with everything else revolving around it. It forms a major part of their code of honor, which stresses the importance of martial abilities and loyalty to the Clan. + + Religion and spirituality play a major role in a Unathi society, and religious differences are the main dividing factor. + Conflict between the Sk'akh Church and the various Th'akh faiths of Moghes, as well as the various communes and cults, have caused conflict and wars between the Izweski Hegemony and the kingdoms that eventually comprised the Traditionalist Coalition. + This conflict hit a peak when they entered the intergalactic stage, which is now known as the Contact War. After this conflict, some Unathi fled the planet through Hephaestus or NanoTrasen shuttle ports. + Unathi fleeing to megacorporations like NanoTrasen find themselves working in security and engineering roles, but recently many have been proving themselves as competent surgeons and brilliant scientists, earning opportunities that Moghes would deny them because of its strict feudal hierarchy. + However, others are slipping through the cracks and becoming slavers, raiders, or pirates. As the ability for spaceship construction increases in the Unathi home system, so too does space piracy and smuggling. + + Moghes has two different biomes after the Contact War. The fertile Untouched Lands with its great jungles, vast swamps, and lush forests; all of which are protected by massive terraforming equipment kept secure by the Hegemony's wealth and power. + Contrast to that are the bombarded Wasteland kingdoms in the ashes of plains and forests, burnt into a massive planet-spanning desert rampant with punished kingdoms raiding to survive and part scavengers living in cities on treads. + + ## Megacorporate Relations + + Prior to 2465, Moghean Unathi that were not members of trade guilds were almost exclusively employed with Hephaestus Industries. + Unathi with guild memberships would primarily take contracts with NanoTrasen or Orion Express, depending on their career choice. Unathi living in Dominia, like most of their countrymen, seek employment with Zavodskoi Interstellar. + + After the Merchant's Guild declared bankruptcy, Hephaestus Industries bailed out all Hegemonic guilds and reorganised them under the banner of the company. + Since then, nearly all residents of Moghes are employed by Hephaestus in some way. + + # Biology + + Their average life expectancy is around sixty years for most Unathi. However, they tend to live for well past sixty years when given advanced medical care available to the other space-faring species. + As a cold-blooded species, they suffer fatigue and even short comas when exposed to extremely low temperatures. + + Humans and Unathi share a lot of similar internal biology with some notable exceptions. + Since they are a carnivorous species, their diet mostly consists of meat and animal products, though they do have a tolerance to some plants and fruits. + While Unathi do receive minor benefits for eating certain fruits, they do not get any nutrition from plants. + Due to their carnivorous nature, they also have an increased stomach capacity to help eat larger meals at a time. + The typical Unathi usually only eats one meal a day, and for the poorer sinta, perhaps once every two days. + They tend towards lethargic and sluggish movements more often than not because of their evolutionary history, so they move slower than most organic species. + However, the cyclical period of work for Unathi compared to other species is much faster. Unathi are polyphasic sleepers: creatures that sleep in shorter naps rather than at one time during the night. + While they tend towards sluggishness, sinta are often capable of incredible bursts of energy and speed, and their ability to work in three or four hour periods of time compensates for their more sporadic schedules. + + The reproductive system of a Sinta'Unathi is very similar to that of Earth reptiles. Females lay eggs, with the average clutch being somewhere between one and three. + They have a six-month gestation period, after which they are laid in a humid, warm area. After two months, the fetus is fully developed and hatches from the egg. + Unathi are born with their claws and the ability to walk within hours of hatching. A Sinta'Unathi is considered an adult when they are 16 years old. + + # Physical Appearance + + The Unathi as a species show a great deal of variation within body types as well as clusters of smaller physical traits passed down through clans. + Facial and body features range in size and shape with some having raptor-like aesthetics, serpentine looks, or a more draconic body. + Tail length is often genetic; conversely, tail girth is defined by a Unathi's diet as it stores most of the body's fat— nobles grow some of the largest tails. + + Unathi scales are somewhat tougher than human skin, though they shed off sporadically rather than all at once. + More vulnerable and hidden spots, such as the stomach and waist, the backs of joints, and inner thighs are all leathery skin and aren't covered in scales. + + The typical healthy adult male Unathi weighs roughly 280 pounds. Female sinta differ from males as they generally have a shorter and more rounded snout. + The typical healthy Unathi female weighs roughly 250 pounds. Female Unathi grow to about 5'9" to 6'8, while male Unathi grow to about 6'0" to 7'0". + Unusual heights tend to be smaller in scale, as the taller a Unathi is, the more likely it will be marred with health problems and not live as long as others. + + Both sexes stand on digitigrade legs, with three toes on each foot and a hooked dewclaw, and have clawed feet and hands. + They also have very long tongues, typically black or extremely dark red in color, which may stretch up to a foot and a half long and are forked just like a serpent's. + In much the same manner as snakes, Unathi can sample the air around them using their tongue. They blink and have tear ducts similar to humans. + + Unathi horns do not naturally regrow, and serious damage tends to remain permanent. + Ancient recipes using native herbs known as "horn paste" are commonly made and sold by herbalists and can counter cosmetic scratches or minor chipping. + More modern synthetic Horn Gel (based on Bone Gel), developed largely by Zeng-Hu Pharmaceuticals, can regenerate an entire lost horn, but it tends to be stratified to the upper classes and noblemen due to cost. + + ## Coloration + + Unathi are also often born into one of four major scale colour categories: red, black, orange-brown and "sand-colored", and green. + Alternative colours are rare, with dark blue and even albino Unathi being reported in very small numbers. Albinos are sometimes slightly tinted in colour while remaining predominantly white. Traditionally these off-coloured Unathi are met with prejudice, though some clans outside the Izweski may feel different. + + It has been noticed that scale colourations were more represented in some areas than other, and thus, many shades of these colours were, in Unathi culture, named after the places they tend to be seen in more often, in many cases. + + Modern red-coloured Unathi are thought to originate from a large nomadic clan that settled South of the Moghresian Sea around modern Skalamar. Nowadays, red-scaled Sinta tend to be seen on the entire Southern coast of the Moghresian Sea and the mountain ranges near it. + Today’s green-coloured Unathi hail from the Southern side of the Moghresian sea, and they are seen more often throughout this side of the coast and down to the colder lands even further South. Surprisingly, there is also a large batch of green-coloured Unathi located around Sahl lake, indicating that an old nomadic clan of mostly green Sinta settled there centuries ago. + Orange-brown and sand-yellow Unathi comprises a wide range of colours. They are a more common colour to be seen in a large area, and it is believed that their origins come from displacement in ancient conflicts that forced them to migrate and find new homelands. More precisely, Unathi harbouring such colours tend to be more represented in a large area defined between Darakath, Bahard, Mudki, and Yu’kal. + Black or “dark-scaled’ Unathi do not seem to originate from any precise area, and instead, tend to be more often seen around colder areas of Moghes, both North and South. A popular theory is that black scales are actually a consequence of exposure to the cold for generations— something that has yet to be proven. + All colours, barring albino, do not mix; if a brown Unathi and a light red Unathi have a child, the red scales the child has might be a little darker, but the colours do not blend to make something new. + + ## Genetic Variety + + Besides scale colouration, many other physical aspects of Unathi bodies can vary widely. + From horns and frills, to even extra scale crests and different structures in a Unathi’s very skeleton (namely, the skull). + While anatomical differences within a species are natural, Unathi are noteworthy for how wide these differences can get and how fast they come to be. + The exact science behind this has been lost after the Contact War, and most of the research behind such a phenomena is idly handled by Nanotrasen and Zeng-Hu specialists. + However it is assumed that Sinta simply evolve and adapt to their surroundings much faster than most of the other sentient species of the Spur, leading to such large physical discrepancies between Unathi alone. + From this, it is also assumed that, with Unathi populations moving between planets, and Moghes on its way to changing considerably (may the consequences of the of the Contact War be the of the Sinta homeworld, or may terraforming efforts save it), said biological differences between different groups will only get larger and more exotic in the next few centuries. + + # History + + The history of the Unathi is predominately a history of each Hegemony that has existed throughout their history. There have only been three clans that have managed to create an empire worthy of the title 'Hegemon.' + + The Kres’ha’nor Hegemony lasted from roughly 920 CE - 1500 CE. It is most famous for being the first empire to dominate Moghes and creating what was then a modern feudal state. + Their empire saw rise of walled cities, steel weapons, centralized taxation, and other innovations. It ended in a brutal succession war, with Moghes once again being shattered into hundreds of individual Kingdoms with no true global power. + + In the 16th century the power of Guilds began to grow, forming an early form of mercantilism. Guilds formed for bakers, butchers, grocers, millers, smiths, carpenters, weavers, mason, shoemakers, in fact, nearly every trade had its own guild. + Standards such as just weights and measures evolved from the guilds, and guild inspectors would inspect shops to ensure rules were being followed. + Guilds would help members that were sick, or in trouble, and would sometimes take care of families after the member died. + This time also saw Guilds building the first major universities. While incredibly exclusive, these universities began to create a new era of specialized labor and intellectuals. + + The 19th century saw rise of the Second Hegemony, ruled by the Sarakus Clan. + Their clan ruled harshly, and forced technological advances into the cities and towns. + In the 1930's they ruthlessly modernized their empire in The Great Endeavor, spreading electricity, radio, paved roads, modern plumbing, and other modern innovations. + + In 1994 the Izweski Clan violently deposed the Sarakus and slaughtered the entire surviving dynasty, declaring the Third Hegemony. + After they won an incredibly destructive global war to defend their claim, the Izweski have ruled Moghes until modern times. + + In 2403, a human exploration team discovered Moghes. Shortly after, first contact with the Izweski Hegemony was made. + Sol Alliance merchants and scientists flocked to Moghes, living under very careful observation and guard in Izweski cities. + Skalamar, the second largest city in Izweski, became the first Unathite city to have a shuttle port constructed. Owned by NanoTrasen, it served to transport people to and from the planet’s surface. + + The Contact War, which has more information here, was a cataclysmic global war that lasted from 2438 to 2449. + The fighting was between two global powers, the Izweski Hegemony, and the Traditionalist Coalition. + The war was fought over the very future of the Unathi and their relationship with the rest of the galaxy. + The Izweski demanded Moghes submit to a one-world government ran by themselves and embrace the influence of humanity. + The Traditionalist Coalition rejected this. The war went nuclear on September 5th, 2439, causing immense suffering across Moghes and directly leading to the creation of The Wasteland, which is set to engulf Moghes within a hundred years. + + # Species Traits + + - [color=#1e90ff]Reptilian Diet[/color]: Unathi can ONLY eat fruits and meat, but can eat raw meat and drink blood without any ill effects. + + - [color=#1e90ff]High Temperature Tolerance[/color]: Unathi prefer a somewhat higher temperature range than humans. + + - [color=#1e90ff]Grasping Tail[/color]: Unathi can drag objects with their tail, keeping both their hands free. - Their unarmed claw attacks deal Slash damage instead of Blunt. + - [color=#1e90ff]Claws[/color]: Unath unarmed claw attacks deal Slash damage instead of Blunt. - They take [color=#ffa500]30% more Cold damage.[/color] + - [color=#ffa500]Cold Intolerance[/color]: Unathi take [color=#ffa500]30% more Cold damage.[/color] diff --git a/Resources/ServerInfo/Guidebook/Mobs/SlimePerson.xml b/Resources/ServerInfo/Guidebook/Mobs/SlimePerson.xml index fc72c60dbf..0374d4cb95 100644 --- a/Resources/ServerInfo/Guidebook/Mobs/SlimePerson.xml +++ b/Resources/ServerInfo/Guidebook/Mobs/SlimePerson.xml @@ -10,7 +10,21 @@ They exhale nitrous oxide and are unaffected by it. Their body can process 6 reagents at the same time instead of just 2. - Their Slime "blood" can not be regenerated from Iron. Slime Blood is technically a source of + Slimepeople can morph into a [bold]"geras"[/bold] (an archaic slimefolk term), which is a smaller slime form that can [bold]pass through grilles[/bold], + but forces them to drop their inventory and held items. It's handy for a quick getaway. A geras is small enough to pick up (with two hands) + and fits in a duffelbag. + + + + + + Slimepeople have an [bold]internal 2x2 storage inventory[/bold] inside of their slime membrane. Anyone can see what's inside and take it out of you without asking, + so be careful. They [bold]don't drop their internal storage when they morph into a geras, however![/bold] + + Slimepeople have slight accelerated regeneration compared to other humanoids. They're also capable of hardening their fists, and as such have stronger punches, + although they punch a little slower. + + Their slime "blood" can not be regenerated from Iron. Slime Blood is technically a source of moderately filling food for other species, although drinking the blood of your coworkers is usually frowned upon. They suffocate 80% slower, but take pressure damage 9% faster. This makes them by far the species most capable to survive in hard vacuum. For a while. diff --git a/Resources/ServerInfo/Guidebook/Science/ArtifactReports.xml b/Resources/ServerInfo/Guidebook/Science/ArtifactReports.xml index a377c980e5..5aaa9ba34a 100644 --- a/Resources/ServerInfo/Guidebook/Science/ArtifactReports.xml +++ b/Resources/ServerInfo/Guidebook/Science/ArtifactReports.xml @@ -1,25 +1,24 @@ -# Artifact Reports -A large portion of Xenoarchaeology gameplay revolves around the interpretation of artifact reports, which are created at the [color=#a4885c]analysis console[/color] after an artifact is scanned. Reports contain the following information: + # Artifact Reports + A large portion of Xenoarchaeology gameplay revolves around the interpretation of artifact reports, which are created at the [color=#a4885c]analysis console[/color] after an artifact is scanned. Reports contain the following information: -- [color=#a4885c]Node ID:[/color] a unique numeric ID corresponding to this artifact's node. Useful in conjunction with a [color=#a4885c]node scanner[/color] for quickly identifying recurring nodes. + - [color=#a4885c]Node ID:[/color] a unique numeric ID corresponding to this artifact's node. Useful in conjunction with a [color=#a4885c]node scanner[/color] for quickly identifying recurring nodes. -- [color=#a4885c]Depth:[/color] a distance from the starting node (depth 0). This is a good shorthand for the value and danger of a node. + - [color=#a4885c]Depth:[/color] a distance from the starting node (depth 0). This is a good shorthand for the value and danger of a node. -- [color=#a4885c]Activation status:[/color] whether or not a node has been activated in the past. + - [color=#a4885c]Activation status:[/color] whether or not a node has been activated in the past. -- [color=#a4885c]Stimulus:[/color] the stimulus for that particular node. + - [color=#a4885c]Stimulus:[/color] the stimulus for that particular node. -- [color=#a4885c]Reaction:[/color] the reaction the stimulus induces. This is often vague, so caution is advised. + - [color=#a4885c]Reaction:[/color] the reaction the stimulus induces. This is often vague, so caution is advised. -- [color=#a4885c]Edges:[/color] the amount of nodes that are connected to the current node. Using this, you can calculate the total number of nodes as well as organize a map of their connections. + - [color=#a4885c]Edges:[/color] the amount of nodes that are connected to the current node. Using this, you can calculate the total number of nodes as well as organize a map of their connections. -- [color=#a4885c]Current value:[/color] the amount of research points an artifact is currently worth. Extracting will set this to zero and traversing new nodes will increase it. - -Reports are a helpful tool in manipulating an artifact, especially in the later stages where you are traversing nodes that have already been activated. - - - -To help with this process, consider printing out reports, writing down details uncovered during activation, or storing them in a folder nearby. + - [color=#a4885c]Current value:[/color] the amount of research points an artifact is currently worth. Extracting will set this to zero and traversing new nodes will increase it. + Reports are a helpful tool in manipulating an artifact, especially in the later stages where you are traversing nodes that have already been activated. + + + + To help with this process, consider printing out reports, writing down details uncovered during activation, or storing them in a folder nearby. diff --git a/Resources/ServerInfo/Guidebook/Science/MachineUpgrading.xml b/Resources/ServerInfo/Guidebook/Science/MachineUpgrading.xml new file mode 100644 index 0000000000..286219b4d9 --- /dev/null +++ b/Resources/ServerInfo/Guidebook/Science/MachineUpgrading.xml @@ -0,0 +1,38 @@ + +# Machine Upgrading + +Machines help the station run smoothly, and as a scientist, you can help them run even better! + +## Parts +Stock Parts: + + + + + +You can examine each machine part to see both the type and the rating, which range from 1 to 4. + +Parts of higher levels can be researched as well as found through artifacts or salvage. + + + + + + +## Upgrading +To know if a machine can be upgraded, you can examine it and check for the [color=#a4885c]lightning bolt[/color] icon in the lower right corner. Clicking on it will allow you to see what kinds of upgrades the machine has. + +To check what parts a machine needs, you can examine its board. Try it here: + + + + + + +You can use any rating part for any part requirement. Using higher rated parts will increase how effective the machine is. + +If you want to upgrade an existing machine, simply deconstruct it with a screwdriver and crowbar, and replace the existing parts with parts of a higher level. + +You can also quickly upgrade machines by using an RPED, loading it with machine parts, and then clicking on a machine. It will quickly be upgraded with whatever parts were inserted. + + diff --git a/Resources/ServerInfo/Guidebook/Science/Xenoarchaeology.xml b/Resources/ServerInfo/Guidebook/Science/Xenoarchaeology.xml index 8cd94e8526..b42b8de530 100644 --- a/Resources/ServerInfo/Guidebook/Science/Xenoarchaeology.xml +++ b/Resources/ServerInfo/Guidebook/Science/Xenoarchaeology.xml @@ -2,18 +2,28 @@ # Xenoarchaeology Xenoarchaeology is a epistemics subdepartment focused on researching and experimenting on alien artifacts. -## Artifacts +At the start of each shift, the Science department will usually have access to at least two artifacts to experiment on. You can buy more by talking to the Cargo department. + +By researching the unique things each artifact can do, you gain Research Points, increase the artifact's sale value, and potentially discover a useful ability or two that can help your department or the whole station! + +## Artifact Nodes -Artifacts consist of a randomly-generated graph structure. They consist of nodes connected to each other by edges, the traversal of which is the main goal of the scientists working on them. +Artifacts consist of a randomly-generated tree of nodes. These nodes have a "[color=#a4885c]depth[/color]", representing how dangerous the node is, and the number of other nodes connected to it, called "[color=#a4885c]edges[/color]", + +Artifacts always start at depth zero, the root of the tree. Travelling the tree to find as many nodes as possible is the main goal of the scientists working on them. Knowledge is extracted from nodes to gain Research Points and increase the artifact's sale value. + +Each node has two components: its [color=#a4885c]stimulus[/color] and a [color=#a4885c]reaction[/color]. + +A stimulus is the external behavior that triggers the reaction. There's a variety of these, and higher depth nodes have more difficult to accomplish stimuli. Some stimuli will need improvisation to trigger, and you may need to talk to other departments to get everything you need. -Each node has two main components: a [color=#a4885c]stimulus[/color] and a [color=#a4885c]reaction[/color]. A stimulus is the external behavior that triggers the reaction. Some reactions are instantaneous effects while others are permanent changes. Triggering the reaction causes the artifact to move to one of the node's edges. +Some reactions are instantaneous effects while others are permanent changes. Once an artifact is triggered, the reaction causes the artifact to randomly move to another node it is linked to. -With these basic principles, you can begin to grasp how the different nodes of an artifact are interconnected, and how one can move between them by repeatedly activating nodes. +With some experimental science, you can begin to grasp how the different nodes of an artifact are connected, and how to move between them by repeatedly activating nodes. -While it might seem random to an untrained eye, a skilled scientist can learn to understand the internal structure of any artifact. +All non-zero-depth nodes will have exactly one edge that leads up to its parent node. All other edges a node has lead down to the next depth. ## Artifact Analyzer and Analysis Console @@ -22,13 +32,26 @@ While it might seem random to an untrained eye, a skilled scientist can learn to The main equipment that you'll be using for Xenoarchaeology is the [color=#a4885c]artifact analyzer[/color] and the [color=#a4885c]analysis console[/color]. You can use these to create reports that contain valuable information about an artifact. -To set them up, simply link them with a network configurator, set an artifact on top of the analyzer, and press the [color=#a4885c]Scan[/color] button. +To set them up, simply link them with a network configurator and set an artifact on top of the analyzer. Every station has at least one of these machines already set up. -Using the console, you can extract points from the artifact using the [color=#a4885c]Extract[/color] button. The amount of points you extract is based on how many new nodes have been activated, since last extracting. You can extract multiple times, there is no reason not to!!! +Use the console's [color=#a4885c]scan[/color] button to discover what stimulus the artifact needs and what its reaction will do. Scanning takes thirty seconds. + +Use the [color=#a4885c]print[/color] button to save the scan result, so you can refer to it later. + +Once you've discovered a new node, you can extract points from the artifact using the [color=#a4885c]Extract[/color] button. ## Assembling Artifacts -It is possible to gather multiple artifact fragments and assemble them into a working artifact. You can ask for these from Salvage, they usually find these while mining asteroids or on Expeditions. +It is possible to gather multiple artifact fragments and assemble them into a working artifact. You can ask for these from Salvage, who usually find these while mining asteroids or on Expeditions. + +## Traversal Bias + + + +Artifacts placed on top of a powered artifact analyzer are subjected to a bias which affects which node they will move to after being activated. The bias can be set in the artifact console. +There are two types of biases: +- [color=#a4885c]Up:[/color] favors nodes closer to the origin. Results in a decrease of depth. +- [color=#a4885c]Down:[/color] favors nodes farther away from the origin. Results in an increase of depth. diff --git a/Resources/ServerInfo/Guidebook/Security/Forensics.xml b/Resources/ServerInfo/Guidebook/Security/Forensics.xml index 2189488c6b..3eb53b1e9a 100644 --- a/Resources/ServerInfo/Guidebook/Security/Forensics.xml +++ b/Resources/ServerInfo/Guidebook/Security/Forensics.xml @@ -1,4 +1,4 @@ - + # Forensics There are a lot of tools to help you gather and examine the evidence at your disposal @@ -40,7 +40,7 @@ ## Fibers Whenenever people wearing gloves touch anything on the station, they are bound to leave behind some fibers. This complicates things, but nothing is unsolvable for a real detective. - There are up to [color=red]16[/color] different types of fibers possible. Can that stop you from solving the case? + There are up to [color=red]25[/color] different types of fibers possible. Can that stop you from solving the case? diff --git a/Resources/ServerInfo/Guidebook/Service/Bartender.xml b/Resources/ServerInfo/Guidebook/Service/Bartender.xml index 060c39fca3..b7599fc0d1 100644 --- a/Resources/ServerInfo/Guidebook/Service/Bartender.xml +++ b/Resources/ServerInfo/Guidebook/Service/Bartender.xml @@ -18,6 +18,7 @@ Don't forget containers to serve them in! + ## Drinks diff --git a/Resources/ServerInfo/Guidebook/Service/FoodRecipes.xml b/Resources/ServerInfo/Guidebook/Service/FoodRecipes.xml index 797591dd78..c74b947dbf 100644 --- a/Resources/ServerInfo/Guidebook/Service/FoodRecipes.xml +++ b/Resources/ServerInfo/Guidebook/Service/FoodRecipes.xml @@ -1,88 +1,9 @@ -## Starting Out -This is not an extensive list of recipes, these listings are to showcase the basics. +## Recipe list +Note: Only solid foods are listed here! To learn recipes for liquid ingredients, check the chemistry guidebook. -Mixes are done in a Beaker, foods are cooked in a Microwave. Cook times will be listed. +This list is auto-generated and contains all known foods. -WARNING: This is not an automatically generated list, things here may become outdated. The wiki has much more than is listed here. - -## The Basics: Mixing - -- Dough = 15 Flour, 10 Water -- Cornmeal Dough = 1 Egg (6u), 10 Milk, 15 Cornmeal -- Tortila Dough = 15 Cornmeal, 10 Water -- Tofu = 5 Enzyme (Catalyst), 30 Soy Milk -- Pie Dough = 2 Eggs (12u), 15 Flour, 5 Table Salt -- Cake Batter = 2 Eggs(12u), 15 flour, 5 Sugar -- Vegan Cake Batter = 15 Soy Milk, 15 Flour, 5 Sugar -- Butter = 30 Milk, 5 Table Salt (Catalyst) -- Cheese Wheel = 5 Enzyme (Catalyst), 40 Milk -- Chèvre Log = 5 Enzyme (Catalyst), 10 Goat Milk -- Meatball = 1 Egg (6u), 5 Flour, 5 Uncooked Animal Proteins -- Chocolate = 6 Cocoa Powder, 2 Milk, 2 Sugar -- Uncooked Animal Protein: Grind Raw Meat - - - - - - - - - - - - - - - - - - - -## Secondary Products - -- Dough Slice: Cut Dough -- Bun: Microwave Dough Slice for 5 Seconds -- Cutlet: Slice Raw Meat -- Cheese Wedge: Slice Cheese Wheel -- Flat Dough: Use a rolling pin or a round object (fire extinguisher, soda can, bottle) on Dough. -- Tortilla Dough Slice: cut Tortilla Dough -- Flat Tortilla Dough: Use a rolling pin or a round object (fire extinguisher, soda can, bottle) on Tortilla Dough Slice -- Taco Shell: Microwave Flat Tortilla Dough for 5 Seconds - -## Food Examples - -- Bread: Microwave Dough for 10 Seconds -- Plain Burger: Microwave 1 Bun and 1 Raw Meat for 10 Seconds -- Tomato Soup: 10u Water, 1 Bowl, and 2 Tomatoes for 10 Seconds -- Citrus Salad: 1 Bowl, 1 Lemon, 1 Lime, 1 Orange for 5 Seconds -- Margherita Pizza: Microwave 1 Flat Dough, 1 Cheese Wedge, and 4 Tomatoes for 30 Seconds -- Cake: 1 Cake Batter for 15 Seconds -- Apple Pie: 1 Pie Dough, 3 Apples, and 1 Pie Tin for 15 Seconds -- Beef Taco: Microwave 1 Taco Shell, 1 Raw Meat Cutlet, 1 Cheese Wedge for 10 Seconds -- Cuban Carp : Microwave 1 Dough, 1 Cheese Wedge, 1 Chili, 1 Carp Meat for 15 Seconds -- Banana Cream Pie : Microwave 1 Pie Dough, 3 Bananas, and 1 Pie Tin for 15 Seconds -- Carrot Fries : Microwave 1 Carrot, 15u Salt for 15 Seconds -- Pancake : Microwave 5u Flour, 5u Milk, 1 Egg (6u) for 5 Seconds - - - - - - - - - - - - - - - - - - - + diff --git a/Resources/ServerInfo/Nyanotrasen/Guidebook/Epistemics/Psionics.xml b/Resources/ServerInfo/Nyanotrasen/Guidebook/Epistemics/Psionics.xml deleted file mode 100644 index 2911dae155..0000000000 --- a/Resources/ServerInfo/Nyanotrasen/Guidebook/Epistemics/Psionics.xml +++ /dev/null @@ -1,73 +0,0 @@ - -# Psionics -[color=#a4885c]Psionics[/color] are mental abilities that interface with the [color=#a4885c]noösphere[/color]. Humans have limited access to the noösphere's full potential, allowing some to find ways to command it. -The abilities originate from distorting a noöspheric imprint into a specific shape, a bit like a lock and key. This means that humans can only have a single ability at a time. -An imprint shaped for metapsionics will not work for invisibility, and vice versa. - - -Many other creatures are much more in tune with it than humans, allowing them to access more powerful psionics like [color=#a4885c]kineses[/color]. - -## Telepathy -All psionic entities have a shared telepathic communication channel. It's anonymized, so you never know who you are talking to. Statistically, it probably is not human. - -## Glimmer -[color=#a4885c]Glimmer[/color] is a more colloquial term for [color=#a4885c]noöspheric pressure[/color], measured in [color=#a4885c]milli-Psi (mΨ)[/color]. The noösphere can be considered analogous to an atmosphere. In a localized area, everything will equalize towards a certain pressure that's based off of the total energy in the system. -Note that unlike atmospheres, areas of noopsheric pressure do not operate by physical contigiousness, but mental. This means that areas with intertwined destinies will experience the same latent glimmer regardless of physical separation. - - -The [color=#a4885c]sophic scribe[/color] tracks glimmer. - - - - - - -Epistemics can build devices to interact with glimmer. These are usually the main determiners of where glimmer is going. -[color=#a4885c]Glimmer probers[/color] will increase glimmer, but directly generate research points without further input. [color=#a4885c]Glimmer drains[/color] simply drain glimmer at the cost of electricity. - -Use of psionics will increase glimmer, as will [color=#a4885c]noöspheric storms[/color]. - -## Discharges -Glimmer will occasionally discharge if it's above 100 mΨ, causing a wide range of effects based on just how high it is. The most common is giving all entities with psionic potential a small seizure, -which is something most people working on stations with an Epistemics department have grown used to. - -## Acquiring Psionics - - -Psionics can be acquired in a number of ways. The oracle will sometimes dispense a strange liquid called [color=#a4885c]lotophagoi oil[/color], which at high glimmer levels is guaranteed to give psionics. - -Random discharges may give you psionics as the seizure knocks your noöspheric imprint into just the right shape. - -[color=#a4885c]Space drugs[/color] are an easier to acquire but much weaker alternative to lotophagoi oil. - -## Psionic Insulation - - - - - -[color=#a4885c]Insulative clothing[/color] and [color=#a4885c]cryptobiolin[/color] will render you immune to psionics, but prevent you from using any you have. - - -Security has a more forcible option for insulative clothing. - -## Handling Glimmer Emergencies - -Probers should be turned off before glimmer exceeds 500 mΨ. - - -Glimmer drains are quite effective at draining glimmer, taking it out as fast as a prober can put it in. - - -Sacrificing psychics will reduce glimmer instantly by a decent amount. - - -Metabolizing 20u or more of [color=#a4885c]mindbreaker[/color] will remove psionics from a person, meaning they will not generate any more glimmer. - - -[color=#a4885c]Soulbreaker[/color] shells will remove psionics from psychics they hit. - - -[color=#a4885c]Ectoplasm[/color], combined in a beaker with equal parts water, ash, blood, and plasma, will produce a normality crystal when heated enough. [color=#fcdf03]Use a hot plate for this.[/color] - - diff --git a/Resources/Textures/Clothing/Eyes/Hud/syndagent.rsi/equipped-EYES.png b/Resources/Textures/Clothing/Eyes/Hud/syndagent.rsi/equipped-EYES.png new file mode 100644 index 0000000000..84979d1097 Binary files /dev/null and b/Resources/Textures/Clothing/Eyes/Hud/syndagent.rsi/equipped-EYES.png differ diff --git a/Resources/Textures/Clothing/Eyes/Hud/syndagent.rsi/icon.png b/Resources/Textures/Clothing/Eyes/Hud/syndagent.rsi/icon.png new file mode 100644 index 0000000000..900b438c7e Binary files /dev/null and b/Resources/Textures/Clothing/Eyes/Hud/syndagent.rsi/icon.png differ diff --git a/Resources/Textures/Clothing/Eyes/Hud/syndagent.rsi/inhand-left.png b/Resources/Textures/Clothing/Eyes/Hud/syndagent.rsi/inhand-left.png new file mode 100644 index 0000000000..b888ce227a Binary files /dev/null and b/Resources/Textures/Clothing/Eyes/Hud/syndagent.rsi/inhand-left.png differ diff --git a/Resources/Textures/Clothing/Eyes/Hud/syndagent.rsi/inhand-right.png b/Resources/Textures/Clothing/Eyes/Hud/syndagent.rsi/inhand-right.png new file mode 100644 index 0000000000..0e248905fb Binary files /dev/null and b/Resources/Textures/Clothing/Eyes/Hud/syndagent.rsi/inhand-right.png differ diff --git a/Resources/Textures/Clothing/Eyes/Hud/syndagent.rsi/meta.json b/Resources/Textures/Clothing/Eyes/Hud/syndagent.rsi/meta.json new file mode 100644 index 0000000000..f3acabcc54 --- /dev/null +++ b/Resources/Textures/Clothing/Eyes/Hud/syndagent.rsi/meta.json @@ -0,0 +1,26 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Made by IntegerTempest, edited by Golinth", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "equipped-EYES", + "directions": 4 + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/Clothing/Hands/Gloves/combat.rsi/equipped-HAND.png b/Resources/Textures/Clothing/Hands/Gloves/combat.rsi/equipped-HAND.png new file mode 100644 index 0000000000..7ca224617c Binary files /dev/null and b/Resources/Textures/Clothing/Hands/Gloves/combat.rsi/equipped-HAND.png differ diff --git a/Resources/Textures/Clothing/Hands/Gloves/combat.rsi/icon.png b/Resources/Textures/Clothing/Hands/Gloves/combat.rsi/icon.png new file mode 100644 index 0000000000..eedef5290d Binary files /dev/null and b/Resources/Textures/Clothing/Hands/Gloves/combat.rsi/icon.png differ diff --git a/Resources/Textures/Clothing/Hands/Gloves/combat.rsi/inhand-left.png b/Resources/Textures/Clothing/Hands/Gloves/combat.rsi/inhand-left.png new file mode 100644 index 0000000000..2e6ce0b9b9 Binary files /dev/null and b/Resources/Textures/Clothing/Hands/Gloves/combat.rsi/inhand-left.png differ diff --git a/Resources/Textures/Clothing/Hands/Gloves/combat.rsi/inhand-right.png b/Resources/Textures/Clothing/Hands/Gloves/combat.rsi/inhand-right.png new file mode 100644 index 0000000000..41ca0dddfb Binary files /dev/null and b/Resources/Textures/Clothing/Hands/Gloves/combat.rsi/inhand-right.png differ diff --git a/Resources/Textures/Clothing/Hands/Gloves/combat.rsi/meta.json b/Resources/Textures/Clothing/Hands/Gloves/combat.rsi/meta.json new file mode 100644 index 0000000000..1ad417f8f1 --- /dev/null +++ b/Resources/Textures/Clothing/Hands/Gloves/combat.rsi/meta.json @@ -0,0 +1,26 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Sprited by OnsenCapy (NamelessName on Discord)", + "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/black.rsi/equipped-HELMET-vox.png b/Resources/Textures/Clothing/Head/Bandanas/black.rsi/equipped-HELMET-vox.png new file mode 100644 index 0000000000..b74049130c Binary files /dev/null and b/Resources/Textures/Clothing/Head/Bandanas/black.rsi/equipped-HELMET-vox.png differ diff --git a/Resources/Textures/Clothing/Head/Bandanas/black.rsi/equipped-MASK-vox.png b/Resources/Textures/Clothing/Head/Bandanas/black.rsi/equipped-MASK-vox.png new file mode 100644 index 0000000000..a3def50f88 Binary files /dev/null and b/Resources/Textures/Clothing/Head/Bandanas/black.rsi/equipped-MASK-vox.png differ diff --git a/Resources/Textures/Clothing/Head/Bandanas/black.rsi/meta.json b/Resources/Textures/Clothing/Head/Bandanas/black.rsi/meta.json index a555369032..a39a46ac81 100644 --- a/Resources/Textures/Clothing/Head/Bandanas/black.rsi/meta.json +++ b/Resources/Textures/Clothing/Head/Bandanas/black.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e", + "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 @@ -17,10 +17,18 @@ "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 diff --git a/Resources/Textures/Clothing/Head/Bandanas/blue.rsi/equipped-HELMET-vox.png b/Resources/Textures/Clothing/Head/Bandanas/blue.rsi/equipped-HELMET-vox.png new file mode 100644 index 0000000000..7266432372 Binary files /dev/null and b/Resources/Textures/Clothing/Head/Bandanas/blue.rsi/equipped-HELMET-vox.png differ diff --git a/Resources/Textures/Clothing/Head/Bandanas/blue.rsi/equipped-MASK-vox.png b/Resources/Textures/Clothing/Head/Bandanas/blue.rsi/equipped-MASK-vox.png new file mode 100644 index 0000000000..6bc5266367 Binary files /dev/null and b/Resources/Textures/Clothing/Head/Bandanas/blue.rsi/equipped-MASK-vox.png differ diff --git a/Resources/Textures/Clothing/Head/Bandanas/blue.rsi/meta.json b/Resources/Textures/Clothing/Head/Bandanas/blue.rsi/meta.json index a555369032..a39a46ac81 100644 --- a/Resources/Textures/Clothing/Head/Bandanas/blue.rsi/meta.json +++ b/Resources/Textures/Clothing/Head/Bandanas/blue.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e", + "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 @@ -17,10 +17,18 @@ "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 diff --git a/Resources/Textures/Clothing/Head/Bandanas/botany.rsi/equipped-HELMET-hamster.png b/Resources/Textures/Clothing/Head/Bandanas/botany.rsi/equipped-HELMET-hamster.png deleted file mode 100644 index 3b89ea8bdf..0000000000 Binary files a/Resources/Textures/Clothing/Head/Bandanas/botany.rsi/equipped-HELMET-hamster.png and /dev/null differ diff --git a/Resources/Textures/Clothing/Head/Bandanas/botany.rsi/equipped-HELMET-vox.png b/Resources/Textures/Clothing/Head/Bandanas/botany.rsi/equipped-HELMET-vox.png new file mode 100644 index 0000000000..c576b30f47 Binary files /dev/null and b/Resources/Textures/Clothing/Head/Bandanas/botany.rsi/equipped-HELMET-vox.png differ diff --git a/Resources/Textures/Clothing/Head/Bandanas/botany.rsi/equipped-MASK-vox.png b/Resources/Textures/Clothing/Head/Bandanas/botany.rsi/equipped-MASK-vox.png new file mode 100644 index 0000000000..378a1a3c19 Binary files /dev/null and b/Resources/Textures/Clothing/Head/Bandanas/botany.rsi/equipped-MASK-vox.png differ diff --git a/Resources/Textures/Clothing/Head/Bandanas/botany.rsi/meta.json b/Resources/Textures/Clothing/Head/Bandanas/botany.rsi/meta.json index a9b3b1556d..a39a46ac81 100644 --- a/Resources/Textures/Clothing/Head/Bandanas/botany.rsi/meta.json +++ b/Resources/Textures/Clothing/Head/Bandanas/botany.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e", + "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 @@ -18,13 +18,17 @@ "directions": 4 }, { - "name": "equipped-HELMET-hamster", + "name": "equipped-HELMET-vox", "directions": 4 }, { "name": "equipped-MASK", "directions": 4 }, + { + "name": "equipped-MASK-vox", + "directions": 4 + }, { "name": "inhand-left", "directions": 4 diff --git a/Resources/Textures/Clothing/Head/Bandanas/gold.rsi/equipped-HELMET-vox.png b/Resources/Textures/Clothing/Head/Bandanas/gold.rsi/equipped-HELMET-vox.png new file mode 100644 index 0000000000..5189f62e25 Binary files /dev/null and b/Resources/Textures/Clothing/Head/Bandanas/gold.rsi/equipped-HELMET-vox.png differ diff --git a/Resources/Textures/Clothing/Head/Bandanas/gold.rsi/equipped-MASK-vox.png b/Resources/Textures/Clothing/Head/Bandanas/gold.rsi/equipped-MASK-vox.png new file mode 100644 index 0000000000..616bb8eeb3 Binary files /dev/null and b/Resources/Textures/Clothing/Head/Bandanas/gold.rsi/equipped-MASK-vox.png differ diff --git a/Resources/Textures/Clothing/Head/Bandanas/gold.rsi/meta.json b/Resources/Textures/Clothing/Head/Bandanas/gold.rsi/meta.json index a555369032..a39a46ac81 100644 --- a/Resources/Textures/Clothing/Head/Bandanas/gold.rsi/meta.json +++ b/Resources/Textures/Clothing/Head/Bandanas/gold.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e", + "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 @@ -17,10 +17,18 @@ "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 diff --git a/Resources/Textures/Clothing/Head/Bandanas/green.rsi/equipped-HELMET-vox.png b/Resources/Textures/Clothing/Head/Bandanas/green.rsi/equipped-HELMET-vox.png new file mode 100644 index 0000000000..ed4c08a325 Binary files /dev/null and b/Resources/Textures/Clothing/Head/Bandanas/green.rsi/equipped-HELMET-vox.png differ diff --git a/Resources/Textures/Clothing/Head/Bandanas/green.rsi/equipped-MASK-vox.png b/Resources/Textures/Clothing/Head/Bandanas/green.rsi/equipped-MASK-vox.png new file mode 100644 index 0000000000..958bcdf0ea Binary files /dev/null and b/Resources/Textures/Clothing/Head/Bandanas/green.rsi/equipped-MASK-vox.png differ diff --git a/Resources/Textures/Clothing/Head/Bandanas/green.rsi/meta.json b/Resources/Textures/Clothing/Head/Bandanas/green.rsi/meta.json index a555369032..ef97b40b36 100644 --- a/Resources/Textures/Clothing/Head/Bandanas/green.rsi/meta.json +++ b/Resources/Textures/Clothing/Head/Bandanas/green.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e", + "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 @@ -21,6 +21,14 @@ "name": "equipped-MASK", "directions": 4 }, + { + "name": "equipped-HELMET-vox", + "directions": 4 + }, + { + "name": "equipped-MASK-vox", + "directions": 4 + }, { "name": "inhand-left", "directions": 4 diff --git a/Resources/Textures/Clothing/Head/Bandanas/grey.rsi/equipped-HELMET-vox.png b/Resources/Textures/Clothing/Head/Bandanas/grey.rsi/equipped-HELMET-vox.png new file mode 100644 index 0000000000..92f305f183 Binary files /dev/null and b/Resources/Textures/Clothing/Head/Bandanas/grey.rsi/equipped-HELMET-vox.png differ diff --git a/Resources/Textures/Clothing/Head/Bandanas/grey.rsi/equipped-MASK-vox.png b/Resources/Textures/Clothing/Head/Bandanas/grey.rsi/equipped-MASK-vox.png new file mode 100644 index 0000000000..5d2af65f4b Binary files /dev/null and b/Resources/Textures/Clothing/Head/Bandanas/grey.rsi/equipped-MASK-vox.png differ diff --git a/Resources/Textures/Clothing/Head/Bandanas/grey.rsi/meta.json b/Resources/Textures/Clothing/Head/Bandanas/grey.rsi/meta.json index a555369032..a39a46ac81 100644 --- a/Resources/Textures/Clothing/Head/Bandanas/grey.rsi/meta.json +++ b/Resources/Textures/Clothing/Head/Bandanas/grey.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e", + "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 @@ -17,10 +17,18 @@ "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 diff --git a/Resources/Textures/Clothing/Head/Bandanas/red.rsi/equipped-HELMET-vox.png b/Resources/Textures/Clothing/Head/Bandanas/red.rsi/equipped-HELMET-vox.png new file mode 100644 index 0000000000..22df7888e7 Binary files /dev/null and b/Resources/Textures/Clothing/Head/Bandanas/red.rsi/equipped-HELMET-vox.png differ diff --git a/Resources/Textures/Clothing/Head/Bandanas/red.rsi/equipped-MASK-vox.png b/Resources/Textures/Clothing/Head/Bandanas/red.rsi/equipped-MASK-vox.png new file mode 100644 index 0000000000..7cea36d539 Binary files /dev/null and b/Resources/Textures/Clothing/Head/Bandanas/red.rsi/equipped-MASK-vox.png differ diff --git a/Resources/Textures/Clothing/Head/Bandanas/red.rsi/meta.json b/Resources/Textures/Clothing/Head/Bandanas/red.rsi/meta.json index a555369032..a39a46ac81 100644 --- a/Resources/Textures/Clothing/Head/Bandanas/red.rsi/meta.json +++ b/Resources/Textures/Clothing/Head/Bandanas/red.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e", + "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 @@ -17,10 +17,18 @@ "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 diff --git a/Resources/Textures/Clothing/Head/Bandanas/skull.rsi/equipped-HELMET-vox.png b/Resources/Textures/Clothing/Head/Bandanas/skull.rsi/equipped-HELMET-vox.png new file mode 100644 index 0000000000..99ed4f9cc2 Binary files /dev/null and b/Resources/Textures/Clothing/Head/Bandanas/skull.rsi/equipped-HELMET-vox.png differ diff --git a/Resources/Textures/Clothing/Head/Bandanas/skull.rsi/equipped-MASK-vox.png b/Resources/Textures/Clothing/Head/Bandanas/skull.rsi/equipped-MASK-vox.png new file mode 100644 index 0000000000..a5fdbe4aac Binary files /dev/null and b/Resources/Textures/Clothing/Head/Bandanas/skull.rsi/equipped-MASK-vox.png differ diff --git a/Resources/Textures/Clothing/Head/Bandanas/skull.rsi/meta.json b/Resources/Textures/Clothing/Head/Bandanas/skull.rsi/meta.json index a555369032..96c7993dd3 100644 --- a/Resources/Textures/Clothing/Head/Bandanas/skull.rsi/meta.json +++ b/Resources/Textures/Clothing/Head/Bandanas/skull.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e", + "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 and modified by Flareguy", "size": { "x": 32, "y": 32 @@ -17,10 +17,18 @@ "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 diff --git a/Resources/Textures/Clothing/Head/Hardsuits/ERThelmets/ertengineer.rsi/meta.json b/Resources/Textures/Clothing/Head/Hardsuits/ERThelmets/ertengineer.rsi/meta.json index fe9f38cad4..bcd0d726dc 100644 --- a/Resources/Textures/Clothing/Head/Hardsuits/ERThelmets/ertengineer.rsi/meta.json +++ b/Resources/Textures/Clothing/Head/Hardsuits/ERThelmets/ertengineer.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "Taken from paradisestation at commit https://github.com/ParadiseSS13/Paradise/commit/f09526480788c2e18fff8c16c4318fd6b4272c10 inhands by peptide", + "copyright": "Taken from paradisestation at commit https://github.com/ParadiseSS13/Paradise/commit/f09526480788c2e18fff8c16c4318fd6b4272c10. Vox states by Flareguy for Space Station 14", "size": { "x": 32, "y": 32 @@ -18,11 +18,7 @@ "directions": 4 }, { - "name": "off-inhand-left", - "directions": 4 - }, - { - "name": "off-inhand-right", + "name": "off-equipped-HELMET-vox", "directions": 4 }, { @@ -30,11 +26,7 @@ "directions": 4 }, { - "name": "on-inhand-left", - "directions": 4 - }, - { - "name": "on-inhand-right", + "name": "on-equipped-HELMET-vox", "directions": 4 }, { diff --git a/Resources/Textures/Clothing/Head/Hardsuits/ERThelmets/ertengineer.rsi/off-equipped-HELMET-vox.png b/Resources/Textures/Clothing/Head/Hardsuits/ERThelmets/ertengineer.rsi/off-equipped-HELMET-vox.png new file mode 100644 index 0000000000..e24011cc92 Binary files /dev/null and b/Resources/Textures/Clothing/Head/Hardsuits/ERThelmets/ertengineer.rsi/off-equipped-HELMET-vox.png differ diff --git a/Resources/Textures/Clothing/Head/Hardsuits/ERThelmets/ertengineer.rsi/off-inhand-left.png b/Resources/Textures/Clothing/Head/Hardsuits/ERThelmets/ertengineer.rsi/off-inhand-left.png deleted file mode 100644 index 8617b5a239..0000000000 Binary files a/Resources/Textures/Clothing/Head/Hardsuits/ERThelmets/ertengineer.rsi/off-inhand-left.png and /dev/null differ diff --git a/Resources/Textures/Clothing/Head/Hardsuits/ERThelmets/ertengineer.rsi/off-inhand-right.png b/Resources/Textures/Clothing/Head/Hardsuits/ERThelmets/ertengineer.rsi/off-inhand-right.png deleted file mode 100644 index d205602ccf..0000000000 Binary files a/Resources/Textures/Clothing/Head/Hardsuits/ERThelmets/ertengineer.rsi/off-inhand-right.png and /dev/null differ diff --git a/Resources/Textures/Clothing/Head/Hardsuits/ERThelmets/ertengineer.rsi/on-equipped-HELMET-vox.png b/Resources/Textures/Clothing/Head/Hardsuits/ERThelmets/ertengineer.rsi/on-equipped-HELMET-vox.png new file mode 100644 index 0000000000..5ad3f9c79a Binary files /dev/null and b/Resources/Textures/Clothing/Head/Hardsuits/ERThelmets/ertengineer.rsi/on-equipped-HELMET-vox.png differ diff --git a/Resources/Textures/Clothing/Head/Hardsuits/ERThelmets/ertengineer.rsi/on-inhand-left.png b/Resources/Textures/Clothing/Head/Hardsuits/ERThelmets/ertengineer.rsi/on-inhand-left.png deleted file mode 100644 index 22a6c42d8f..0000000000 Binary files a/Resources/Textures/Clothing/Head/Hardsuits/ERThelmets/ertengineer.rsi/on-inhand-left.png and /dev/null differ diff --git a/Resources/Textures/Clothing/Head/Hardsuits/ERThelmets/ertengineer.rsi/on-inhand-right.png b/Resources/Textures/Clothing/Head/Hardsuits/ERThelmets/ertengineer.rsi/on-inhand-right.png deleted file mode 100644 index a204bb0a78..0000000000 Binary files a/Resources/Textures/Clothing/Head/Hardsuits/ERThelmets/ertengineer.rsi/on-inhand-right.png and /dev/null differ diff --git a/Resources/Textures/Clothing/Head/Hardsuits/ERThelmets/ertjanitor.rsi/meta.json b/Resources/Textures/Clothing/Head/Hardsuits/ERThelmets/ertjanitor.rsi/meta.json index fe9f38cad4..bcd0d726dc 100644 --- a/Resources/Textures/Clothing/Head/Hardsuits/ERThelmets/ertjanitor.rsi/meta.json +++ b/Resources/Textures/Clothing/Head/Hardsuits/ERThelmets/ertjanitor.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "Taken from paradisestation at commit https://github.com/ParadiseSS13/Paradise/commit/f09526480788c2e18fff8c16c4318fd6b4272c10 inhands by peptide", + "copyright": "Taken from paradisestation at commit https://github.com/ParadiseSS13/Paradise/commit/f09526480788c2e18fff8c16c4318fd6b4272c10. Vox states by Flareguy for Space Station 14", "size": { "x": 32, "y": 32 @@ -18,11 +18,7 @@ "directions": 4 }, { - "name": "off-inhand-left", - "directions": 4 - }, - { - "name": "off-inhand-right", + "name": "off-equipped-HELMET-vox", "directions": 4 }, { @@ -30,11 +26,7 @@ "directions": 4 }, { - "name": "on-inhand-left", - "directions": 4 - }, - { - "name": "on-inhand-right", + "name": "on-equipped-HELMET-vox", "directions": 4 }, { diff --git a/Resources/Textures/Clothing/Head/Hardsuits/ERThelmets/ertjanitor.rsi/off-equipped-HELMET-vox.png b/Resources/Textures/Clothing/Head/Hardsuits/ERThelmets/ertjanitor.rsi/off-equipped-HELMET-vox.png new file mode 100644 index 0000000000..34d61a07ca Binary files /dev/null and b/Resources/Textures/Clothing/Head/Hardsuits/ERThelmets/ertjanitor.rsi/off-equipped-HELMET-vox.png differ diff --git a/Resources/Textures/Clothing/Head/Hardsuits/ERThelmets/ertjanitor.rsi/off-inhand-left.png b/Resources/Textures/Clothing/Head/Hardsuits/ERThelmets/ertjanitor.rsi/off-inhand-left.png deleted file mode 100644 index 8de0449073..0000000000 Binary files a/Resources/Textures/Clothing/Head/Hardsuits/ERThelmets/ertjanitor.rsi/off-inhand-left.png and /dev/null differ diff --git a/Resources/Textures/Clothing/Head/Hardsuits/ERThelmets/ertjanitor.rsi/off-inhand-right.png b/Resources/Textures/Clothing/Head/Hardsuits/ERThelmets/ertjanitor.rsi/off-inhand-right.png deleted file mode 100644 index 7a96aed731..0000000000 Binary files a/Resources/Textures/Clothing/Head/Hardsuits/ERThelmets/ertjanitor.rsi/off-inhand-right.png and /dev/null differ diff --git a/Resources/Textures/Clothing/Head/Hardsuits/ERThelmets/ertjanitor.rsi/on-equipped-HELMET-vox.png b/Resources/Textures/Clothing/Head/Hardsuits/ERThelmets/ertjanitor.rsi/on-equipped-HELMET-vox.png new file mode 100644 index 0000000000..99955187a8 Binary files /dev/null and b/Resources/Textures/Clothing/Head/Hardsuits/ERThelmets/ertjanitor.rsi/on-equipped-HELMET-vox.png differ diff --git a/Resources/Textures/Clothing/Head/Hardsuits/ERThelmets/ertjanitor.rsi/on-inhand-left.png b/Resources/Textures/Clothing/Head/Hardsuits/ERThelmets/ertjanitor.rsi/on-inhand-left.png deleted file mode 100644 index 030472239b..0000000000 Binary files a/Resources/Textures/Clothing/Head/Hardsuits/ERThelmets/ertjanitor.rsi/on-inhand-left.png and /dev/null differ diff --git a/Resources/Textures/Clothing/Head/Hardsuits/ERThelmets/ertjanitor.rsi/on-inhand-right.png b/Resources/Textures/Clothing/Head/Hardsuits/ERThelmets/ertjanitor.rsi/on-inhand-right.png deleted file mode 100644 index 270a9249db..0000000000 Binary files a/Resources/Textures/Clothing/Head/Hardsuits/ERThelmets/ertjanitor.rsi/on-inhand-right.png and /dev/null differ diff --git a/Resources/Textures/Clothing/Head/Hardsuits/ERThelmets/ertleader.rsi/meta.json b/Resources/Textures/Clothing/Head/Hardsuits/ERThelmets/ertleader.rsi/meta.json index fe9f38cad4..bcd0d726dc 100644 --- a/Resources/Textures/Clothing/Head/Hardsuits/ERThelmets/ertleader.rsi/meta.json +++ b/Resources/Textures/Clothing/Head/Hardsuits/ERThelmets/ertleader.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "Taken from paradisestation at commit https://github.com/ParadiseSS13/Paradise/commit/f09526480788c2e18fff8c16c4318fd6b4272c10 inhands by peptide", + "copyright": "Taken from paradisestation at commit https://github.com/ParadiseSS13/Paradise/commit/f09526480788c2e18fff8c16c4318fd6b4272c10. Vox states by Flareguy for Space Station 14", "size": { "x": 32, "y": 32 @@ -18,11 +18,7 @@ "directions": 4 }, { - "name": "off-inhand-left", - "directions": 4 - }, - { - "name": "off-inhand-right", + "name": "off-equipped-HELMET-vox", "directions": 4 }, { @@ -30,11 +26,7 @@ "directions": 4 }, { - "name": "on-inhand-left", - "directions": 4 - }, - { - "name": "on-inhand-right", + "name": "on-equipped-HELMET-vox", "directions": 4 }, { diff --git a/Resources/Textures/Clothing/Head/Hardsuits/ERThelmets/ertleader.rsi/off-equipped-HELMET-vox.png b/Resources/Textures/Clothing/Head/Hardsuits/ERThelmets/ertleader.rsi/off-equipped-HELMET-vox.png new file mode 100644 index 0000000000..f79fe95b57 Binary files /dev/null and b/Resources/Textures/Clothing/Head/Hardsuits/ERThelmets/ertleader.rsi/off-equipped-HELMET-vox.png differ diff --git a/Resources/Textures/Clothing/Head/Hardsuits/ERThelmets/ertleader.rsi/off-inhand-left.png b/Resources/Textures/Clothing/Head/Hardsuits/ERThelmets/ertleader.rsi/off-inhand-left.png deleted file mode 100644 index b53973feec..0000000000 Binary files a/Resources/Textures/Clothing/Head/Hardsuits/ERThelmets/ertleader.rsi/off-inhand-left.png and /dev/null differ diff --git a/Resources/Textures/Clothing/Head/Hardsuits/ERThelmets/ertleader.rsi/off-inhand-right.png b/Resources/Textures/Clothing/Head/Hardsuits/ERThelmets/ertleader.rsi/off-inhand-right.png deleted file mode 100644 index 0f534f88b1..0000000000 Binary files a/Resources/Textures/Clothing/Head/Hardsuits/ERThelmets/ertleader.rsi/off-inhand-right.png and /dev/null differ diff --git a/Resources/Textures/Clothing/Head/Hardsuits/ERThelmets/ertleader.rsi/on-equipped-HELMET-vox.png b/Resources/Textures/Clothing/Head/Hardsuits/ERThelmets/ertleader.rsi/on-equipped-HELMET-vox.png new file mode 100644 index 0000000000..f94eecb411 Binary files /dev/null and b/Resources/Textures/Clothing/Head/Hardsuits/ERThelmets/ertleader.rsi/on-equipped-HELMET-vox.png differ diff --git a/Resources/Textures/Clothing/Head/Hardsuits/ERThelmets/ertleader.rsi/on-inhand-left.png b/Resources/Textures/Clothing/Head/Hardsuits/ERThelmets/ertleader.rsi/on-inhand-left.png deleted file mode 100644 index 819ca15f44..0000000000 Binary files a/Resources/Textures/Clothing/Head/Hardsuits/ERThelmets/ertleader.rsi/on-inhand-left.png and /dev/null differ diff --git a/Resources/Textures/Clothing/Head/Hardsuits/ERThelmets/ertleader.rsi/on-inhand-right.png b/Resources/Textures/Clothing/Head/Hardsuits/ERThelmets/ertleader.rsi/on-inhand-right.png deleted file mode 100644 index 848bfcfe88..0000000000 Binary files a/Resources/Textures/Clothing/Head/Hardsuits/ERThelmets/ertleader.rsi/on-inhand-right.png and /dev/null differ diff --git a/Resources/Textures/Clothing/Head/Hardsuits/ERThelmets/ertmedical.rsi/meta.json b/Resources/Textures/Clothing/Head/Hardsuits/ERThelmets/ertmedical.rsi/meta.json index fe9f38cad4..bcd0d726dc 100644 --- a/Resources/Textures/Clothing/Head/Hardsuits/ERThelmets/ertmedical.rsi/meta.json +++ b/Resources/Textures/Clothing/Head/Hardsuits/ERThelmets/ertmedical.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "Taken from paradisestation at commit https://github.com/ParadiseSS13/Paradise/commit/f09526480788c2e18fff8c16c4318fd6b4272c10 inhands by peptide", + "copyright": "Taken from paradisestation at commit https://github.com/ParadiseSS13/Paradise/commit/f09526480788c2e18fff8c16c4318fd6b4272c10. Vox states by Flareguy for Space Station 14", "size": { "x": 32, "y": 32 @@ -18,11 +18,7 @@ "directions": 4 }, { - "name": "off-inhand-left", - "directions": 4 - }, - { - "name": "off-inhand-right", + "name": "off-equipped-HELMET-vox", "directions": 4 }, { @@ -30,11 +26,7 @@ "directions": 4 }, { - "name": "on-inhand-left", - "directions": 4 - }, - { - "name": "on-inhand-right", + "name": "on-equipped-HELMET-vox", "directions": 4 }, { diff --git a/Resources/Textures/Clothing/Head/Hardsuits/ERThelmets/ertmedical.rsi/off-equipped-HELMET-vox.png b/Resources/Textures/Clothing/Head/Hardsuits/ERThelmets/ertmedical.rsi/off-equipped-HELMET-vox.png new file mode 100644 index 0000000000..17790bee54 Binary files /dev/null and b/Resources/Textures/Clothing/Head/Hardsuits/ERThelmets/ertmedical.rsi/off-equipped-HELMET-vox.png differ diff --git a/Resources/Textures/Clothing/Head/Hardsuits/ERThelmets/ertmedical.rsi/off-inhand-left.png b/Resources/Textures/Clothing/Head/Hardsuits/ERThelmets/ertmedical.rsi/off-inhand-left.png deleted file mode 100644 index 7d3ce26157..0000000000 Binary files a/Resources/Textures/Clothing/Head/Hardsuits/ERThelmets/ertmedical.rsi/off-inhand-left.png and /dev/null differ diff --git a/Resources/Textures/Clothing/Head/Hardsuits/ERThelmets/ertmedical.rsi/off-inhand-right.png b/Resources/Textures/Clothing/Head/Hardsuits/ERThelmets/ertmedical.rsi/off-inhand-right.png deleted file mode 100644 index 67f7494249..0000000000 Binary files a/Resources/Textures/Clothing/Head/Hardsuits/ERThelmets/ertmedical.rsi/off-inhand-right.png and /dev/null differ diff --git a/Resources/Textures/Clothing/Head/Hardsuits/ERThelmets/ertmedical.rsi/on-equipped-HELMET-vox.png b/Resources/Textures/Clothing/Head/Hardsuits/ERThelmets/ertmedical.rsi/on-equipped-HELMET-vox.png new file mode 100644 index 0000000000..d25030e13a Binary files /dev/null and b/Resources/Textures/Clothing/Head/Hardsuits/ERThelmets/ertmedical.rsi/on-equipped-HELMET-vox.png differ diff --git a/Resources/Textures/Clothing/Head/Hardsuits/ERThelmets/ertmedical.rsi/on-equipped-HELMET.png b/Resources/Textures/Clothing/Head/Hardsuits/ERThelmets/ertmedical.rsi/on-equipped-HELMET.png index 8f01538a7a..486ae09969 100644 Binary files a/Resources/Textures/Clothing/Head/Hardsuits/ERThelmets/ertmedical.rsi/on-equipped-HELMET.png and b/Resources/Textures/Clothing/Head/Hardsuits/ERThelmets/ertmedical.rsi/on-equipped-HELMET.png differ diff --git a/Resources/Textures/Clothing/Head/Hardsuits/ERThelmets/ertmedical.rsi/on-inhand-left.png b/Resources/Textures/Clothing/Head/Hardsuits/ERThelmets/ertmedical.rsi/on-inhand-left.png deleted file mode 100644 index 4eaae604cd..0000000000 Binary files a/Resources/Textures/Clothing/Head/Hardsuits/ERThelmets/ertmedical.rsi/on-inhand-left.png and /dev/null differ diff --git a/Resources/Textures/Clothing/Head/Hardsuits/ERThelmets/ertmedical.rsi/on-inhand-right.png b/Resources/Textures/Clothing/Head/Hardsuits/ERThelmets/ertmedical.rsi/on-inhand-right.png deleted file mode 100644 index f5f2f5c6f7..0000000000 Binary files a/Resources/Textures/Clothing/Head/Hardsuits/ERThelmets/ertmedical.rsi/on-inhand-right.png and /dev/null differ diff --git a/Resources/Textures/Clothing/Head/Hardsuits/ERThelmets/ertsecurity.rsi/meta.json b/Resources/Textures/Clothing/Head/Hardsuits/ERThelmets/ertsecurity.rsi/meta.json index fe9f38cad4..bcd0d726dc 100644 --- a/Resources/Textures/Clothing/Head/Hardsuits/ERThelmets/ertsecurity.rsi/meta.json +++ b/Resources/Textures/Clothing/Head/Hardsuits/ERThelmets/ertsecurity.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "Taken from paradisestation at commit https://github.com/ParadiseSS13/Paradise/commit/f09526480788c2e18fff8c16c4318fd6b4272c10 inhands by peptide", + "copyright": "Taken from paradisestation at commit https://github.com/ParadiseSS13/Paradise/commit/f09526480788c2e18fff8c16c4318fd6b4272c10. Vox states by Flareguy for Space Station 14", "size": { "x": 32, "y": 32 @@ -18,11 +18,7 @@ "directions": 4 }, { - "name": "off-inhand-left", - "directions": 4 - }, - { - "name": "off-inhand-right", + "name": "off-equipped-HELMET-vox", "directions": 4 }, { @@ -30,11 +26,7 @@ "directions": 4 }, { - "name": "on-inhand-left", - "directions": 4 - }, - { - "name": "on-inhand-right", + "name": "on-equipped-HELMET-vox", "directions": 4 }, { diff --git a/Resources/Textures/Clothing/Head/Hardsuits/ERThelmets/ertsecurity.rsi/off-equipped-HELMET-vox.png b/Resources/Textures/Clothing/Head/Hardsuits/ERThelmets/ertsecurity.rsi/off-equipped-HELMET-vox.png new file mode 100644 index 0000000000..d300533c20 Binary files /dev/null and b/Resources/Textures/Clothing/Head/Hardsuits/ERThelmets/ertsecurity.rsi/off-equipped-HELMET-vox.png differ diff --git a/Resources/Textures/Clothing/Head/Hardsuits/ERThelmets/ertsecurity.rsi/off-inhand-left.png b/Resources/Textures/Clothing/Head/Hardsuits/ERThelmets/ertsecurity.rsi/off-inhand-left.png deleted file mode 100644 index c7b53126d4..0000000000 Binary files a/Resources/Textures/Clothing/Head/Hardsuits/ERThelmets/ertsecurity.rsi/off-inhand-left.png and /dev/null differ diff --git a/Resources/Textures/Clothing/Head/Hardsuits/ERThelmets/ertsecurity.rsi/off-inhand-right.png b/Resources/Textures/Clothing/Head/Hardsuits/ERThelmets/ertsecurity.rsi/off-inhand-right.png deleted file mode 100644 index b6be1feebb..0000000000 Binary files a/Resources/Textures/Clothing/Head/Hardsuits/ERThelmets/ertsecurity.rsi/off-inhand-right.png and /dev/null differ diff --git a/Resources/Textures/Clothing/Head/Hardsuits/ERThelmets/ertsecurity.rsi/on-equipped-HELMET-vox.png b/Resources/Textures/Clothing/Head/Hardsuits/ERThelmets/ertsecurity.rsi/on-equipped-HELMET-vox.png new file mode 100644 index 0000000000..a9b1843872 Binary files /dev/null and b/Resources/Textures/Clothing/Head/Hardsuits/ERThelmets/ertsecurity.rsi/on-equipped-HELMET-vox.png differ diff --git a/Resources/Textures/Clothing/Head/Hardsuits/ERThelmets/ertsecurity.rsi/on-inhand-left.png b/Resources/Textures/Clothing/Head/Hardsuits/ERThelmets/ertsecurity.rsi/on-inhand-left.png deleted file mode 100644 index 946a56c89a..0000000000 Binary files a/Resources/Textures/Clothing/Head/Hardsuits/ERThelmets/ertsecurity.rsi/on-inhand-left.png and /dev/null differ diff --git a/Resources/Textures/Clothing/Head/Hardsuits/ERThelmets/ertsecurity.rsi/on-inhand-right.png b/Resources/Textures/Clothing/Head/Hardsuits/ERThelmets/ertsecurity.rsi/on-inhand-right.png deleted file mode 100644 index e490de88da..0000000000 Binary files a/Resources/Textures/Clothing/Head/Hardsuits/ERThelmets/ertsecurity.rsi/on-inhand-right.png and /dev/null differ diff --git a/Resources/Textures/Clothing/Head/Hardsuits/atmospherics.rsi/equipped-head-light-vox.png b/Resources/Textures/Clothing/Head/Hardsuits/atmospherics.rsi/equipped-head-light-vox.png new file mode 100644 index 0000000000..879ce40a74 Binary files /dev/null and b/Resources/Textures/Clothing/Head/Hardsuits/atmospherics.rsi/equipped-head-light-vox.png differ diff --git a/Resources/Textures/Clothing/Head/Hardsuits/atmospherics.rsi/equipped-head-unshaded-vox.png b/Resources/Textures/Clothing/Head/Hardsuits/atmospherics.rsi/equipped-head-unshaded-vox.png new file mode 100644 index 0000000000..40f2eca45a Binary files /dev/null and b/Resources/Textures/Clothing/Head/Hardsuits/atmospherics.rsi/equipped-head-unshaded-vox.png differ diff --git a/Resources/Textures/Clothing/Head/Hardsuits/atmospherics.rsi/equipped-head-vox.png b/Resources/Textures/Clothing/Head/Hardsuits/atmospherics.rsi/equipped-head-vox.png new file mode 100644 index 0000000000..f61a157050 Binary files /dev/null and b/Resources/Textures/Clothing/Head/Hardsuits/atmospherics.rsi/equipped-head-vox.png differ diff --git a/Resources/Textures/Clothing/Head/Hardsuits/atmospherics.rsi/inhand-left-light.png b/Resources/Textures/Clothing/Head/Hardsuits/atmospherics.rsi/inhand-left-light.png deleted file mode 100644 index 9ee768d5ee..0000000000 Binary files a/Resources/Textures/Clothing/Head/Hardsuits/atmospherics.rsi/inhand-left-light.png and /dev/null differ diff --git a/Resources/Textures/Clothing/Head/Hardsuits/atmospherics.rsi/inhand-left-unshaded.png b/Resources/Textures/Clothing/Head/Hardsuits/atmospherics.rsi/inhand-left-unshaded.png deleted file mode 100644 index 8a7835b20d..0000000000 Binary files a/Resources/Textures/Clothing/Head/Hardsuits/atmospherics.rsi/inhand-left-unshaded.png and /dev/null differ diff --git a/Resources/Textures/Clothing/Head/Hardsuits/atmospherics.rsi/inhand-left.png b/Resources/Textures/Clothing/Head/Hardsuits/atmospherics.rsi/inhand-left.png deleted file mode 100644 index e9ba55de1e..0000000000 Binary files a/Resources/Textures/Clothing/Head/Hardsuits/atmospherics.rsi/inhand-left.png and /dev/null differ diff --git a/Resources/Textures/Clothing/Head/Hardsuits/atmospherics.rsi/inhand-right-light.png b/Resources/Textures/Clothing/Head/Hardsuits/atmospherics.rsi/inhand-right-light.png deleted file mode 100644 index 2990605237..0000000000 Binary files a/Resources/Textures/Clothing/Head/Hardsuits/atmospherics.rsi/inhand-right-light.png and /dev/null differ diff --git a/Resources/Textures/Clothing/Head/Hardsuits/atmospherics.rsi/inhand-right-unshaded.png b/Resources/Textures/Clothing/Head/Hardsuits/atmospherics.rsi/inhand-right-unshaded.png deleted file mode 100644 index 6c80725c0a..0000000000 Binary files a/Resources/Textures/Clothing/Head/Hardsuits/atmospherics.rsi/inhand-right-unshaded.png and /dev/null differ diff --git a/Resources/Textures/Clothing/Head/Hardsuits/atmospherics.rsi/inhand-right.png b/Resources/Textures/Clothing/Head/Hardsuits/atmospherics.rsi/inhand-right.png deleted file mode 100644 index 45d73f73df..0000000000 Binary files a/Resources/Textures/Clothing/Head/Hardsuits/atmospherics.rsi/inhand-right.png and /dev/null differ diff --git a/Resources/Textures/Clothing/Head/Hardsuits/atmospherics.rsi/meta.json b/Resources/Textures/Clothing/Head/Hardsuits/atmospherics.rsi/meta.json index 93d9fece1d..c24aa39b80 100644 --- a/Resources/Textures/Clothing/Head/Hardsuits/atmospherics.rsi/meta.json +++ b/Resources/Textures/Clothing/Head/Hardsuits/atmospherics.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e | vulpkanin version taken from Paradise station at https://github.com/ParadiseSS13/Paradise/commit/f0fa4e1fd809482fbc104a310aa34cebf7df157d", + "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e. Vox states made by Flareguy for SS14 | vulpkanin version taken from Paradise station at https://github.com/ParadiseSS13/Paradise/commit/f0fa4e1fd809482fbc104a310aa34cebf7df157d", "size": { "x": 32, "y": 32 @@ -32,27 +32,15 @@ "directions": 4 }, { - "name": "inhand-left", + "name": "equipped-head-unshaded-vox", "directions": 4 }, { - "name": "inhand-left-unshaded", + "name": "equipped-head-vox", "directions": 4 }, { - "name": "inhand-left-light", - "directions": 4 - }, - { - "name": "inhand-right", - "directions": 4 - }, - { - "name": "inhand-right-unshaded", - "directions": 4 - }, - { - "name": "inhand-right-light", + "name": "equipped-head-light-vox", "directions": 4 }, { diff --git a/Resources/Textures/Clothing/Head/Hardsuits/capspace.rsi/meta.json b/Resources/Textures/Clothing/Head/Hardsuits/capspace.rsi/meta.json index cc8edd3819..1ccf847b3e 100644 --- a/Resources/Textures/Clothing/Head/Hardsuits/capspace.rsi/meta.json +++ b/Resources/Textures/Clothing/Head/Hardsuits/capspace.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e, modified by Emisse for SS14", + "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e, modified by Emisse for SS14. Vox states by Flareguy for SS14", "size": { "x": 32, "y": 32 @@ -18,11 +18,7 @@ "directions": 4 }, { - "name": "off-inhand-left", - "directions": 4 - }, - { - "name": "off-inhand-right", + "name": "off-equipped-HELMET-vox", "directions": 4 }, { @@ -30,11 +26,7 @@ "directions": 4 }, { - "name": "on-inhand-left", - "directions": 4 - }, - { - "name": "on-inhand-right", + "name": "on-equipped-HELMET-vox", "directions": 4 }, { diff --git a/Resources/Textures/Clothing/Head/Hardsuits/capspace.rsi/off-equipped-HELMET-vox.png b/Resources/Textures/Clothing/Head/Hardsuits/capspace.rsi/off-equipped-HELMET-vox.png new file mode 100644 index 0000000000..f02e33c658 Binary files /dev/null and b/Resources/Textures/Clothing/Head/Hardsuits/capspace.rsi/off-equipped-HELMET-vox.png differ diff --git a/Resources/Textures/Clothing/Head/Hardsuits/capspace.rsi/off-inhand-left.png b/Resources/Textures/Clothing/Head/Hardsuits/capspace.rsi/off-inhand-left.png deleted file mode 100644 index 5216ba5dd9..0000000000 Binary files a/Resources/Textures/Clothing/Head/Hardsuits/capspace.rsi/off-inhand-left.png and /dev/null differ diff --git a/Resources/Textures/Clothing/Head/Hardsuits/capspace.rsi/off-inhand-right.png b/Resources/Textures/Clothing/Head/Hardsuits/capspace.rsi/off-inhand-right.png deleted file mode 100644 index 2ffe013c12..0000000000 Binary files a/Resources/Textures/Clothing/Head/Hardsuits/capspace.rsi/off-inhand-right.png and /dev/null differ diff --git a/Resources/Textures/Clothing/Head/Hardsuits/capspace.rsi/on-equipped-HELMET-vox.png b/Resources/Textures/Clothing/Head/Hardsuits/capspace.rsi/on-equipped-HELMET-vox.png new file mode 100644 index 0000000000..9a0101f09a Binary files /dev/null and b/Resources/Textures/Clothing/Head/Hardsuits/capspace.rsi/on-equipped-HELMET-vox.png differ diff --git a/Resources/Textures/Clothing/Head/Hardsuits/capspace.rsi/on-inhand-left.png b/Resources/Textures/Clothing/Head/Hardsuits/capspace.rsi/on-inhand-left.png deleted file mode 100644 index 6a5d075d80..0000000000 Binary files a/Resources/Textures/Clothing/Head/Hardsuits/capspace.rsi/on-inhand-left.png and /dev/null differ diff --git a/Resources/Textures/Clothing/Head/Hardsuits/capspace.rsi/on-inhand-right.png b/Resources/Textures/Clothing/Head/Hardsuits/capspace.rsi/on-inhand-right.png deleted file mode 100644 index 25796fc014..0000000000 Binary files a/Resources/Textures/Clothing/Head/Hardsuits/capspace.rsi/on-inhand-right.png and /dev/null differ diff --git a/Resources/Textures/Clothing/Head/Hardsuits/cburn.rsi/equipped-head-unshaded-vox.png b/Resources/Textures/Clothing/Head/Hardsuits/cburn.rsi/equipped-head-unshaded-vox.png new file mode 100644 index 0000000000..40d1f9a0c6 Binary files /dev/null and b/Resources/Textures/Clothing/Head/Hardsuits/cburn.rsi/equipped-head-unshaded-vox.png differ diff --git a/Resources/Textures/Clothing/Head/Hardsuits/cburn.rsi/equipped-head-vox.png b/Resources/Textures/Clothing/Head/Hardsuits/cburn.rsi/equipped-head-vox.png new file mode 100644 index 0000000000..cc2fa16917 Binary files /dev/null and b/Resources/Textures/Clothing/Head/Hardsuits/cburn.rsi/equipped-head-vox.png differ diff --git a/Resources/Textures/Clothing/Head/Hardsuits/cburn.rsi/inhand-left-unshaded.png b/Resources/Textures/Clothing/Head/Hardsuits/cburn.rsi/inhand-left-unshaded.png deleted file mode 100644 index 60ca0efa13..0000000000 Binary files a/Resources/Textures/Clothing/Head/Hardsuits/cburn.rsi/inhand-left-unshaded.png and /dev/null differ diff --git a/Resources/Textures/Clothing/Head/Hardsuits/cburn.rsi/inhand-left.png b/Resources/Textures/Clothing/Head/Hardsuits/cburn.rsi/inhand-left.png deleted file mode 100644 index 43f27a890f..0000000000 Binary files a/Resources/Textures/Clothing/Head/Hardsuits/cburn.rsi/inhand-left.png and /dev/null differ diff --git a/Resources/Textures/Clothing/Head/Hardsuits/cburn.rsi/inhand-right-unshaded.png b/Resources/Textures/Clothing/Head/Hardsuits/cburn.rsi/inhand-right-unshaded.png deleted file mode 100644 index 118914c8d3..0000000000 Binary files a/Resources/Textures/Clothing/Head/Hardsuits/cburn.rsi/inhand-right-unshaded.png and /dev/null differ diff --git a/Resources/Textures/Clothing/Head/Hardsuits/cburn.rsi/inhand-right.png b/Resources/Textures/Clothing/Head/Hardsuits/cburn.rsi/inhand-right.png deleted file mode 100644 index 602020b276..0000000000 Binary files a/Resources/Textures/Clothing/Head/Hardsuits/cburn.rsi/inhand-right.png and /dev/null differ diff --git a/Resources/Textures/Clothing/Head/Hardsuits/cburn.rsi/meta.json b/Resources/Textures/Clothing/Head/Hardsuits/cburn.rsi/meta.json index 16f509fa99..1df9c2ddbf 100644 --- a/Resources/Textures/Clothing/Head/Hardsuits/cburn.rsi/meta.json +++ b/Resources/Textures/Clothing/Head/Hardsuits/cburn.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "Made by EmoGarbage404", + "copyright": "Made by EmoGarbage404. Vox states by Flareguy for SS14", "size": { "x": 32, "y": 32 @@ -28,19 +28,11 @@ "directions": 4 }, { - "name": "inhand-left", + "name": "equipped-head-vox", "directions": 4 }, { - "name": "inhand-left-unshaded", - "directions": 4 - }, - { - "name": "inhand-right", - "directions": 4 - }, - { - "name": "inhand-right-unshaded", + "name": "equipped-head-unshaded-vox", "directions": 4 } ] diff --git a/Resources/Textures/Clothing/Head/Hardsuits/clown.rsi/meta.json b/Resources/Textures/Clothing/Head/Hardsuits/clown.rsi/meta.json index 5a77b01e50..5956a9b0f4 100644 --- a/Resources/Textures/Clothing/Head/Hardsuits/clown.rsi/meta.json +++ b/Resources/Textures/Clothing/Head/Hardsuits/clown.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e, modified by brainfood1183 (github)", + "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e, modified by brainfood1183 (github). Vox state by Flareguy for SS14", "size": { "x": 32, "y": 32 @@ -20,6 +20,14 @@ { "name": "on-equipped-HELMET", "directions": 4 + }, + { + "name": "off-equipped-HELMET-vox", + "directions": 4 + }, + { + "name": "on-equipped-HELMET-vox", + "directions": 4 } ] } diff --git a/Resources/Textures/Clothing/Head/Hardsuits/clown.rsi/off-equipped-HELMET-vox.png b/Resources/Textures/Clothing/Head/Hardsuits/clown.rsi/off-equipped-HELMET-vox.png new file mode 100644 index 0000000000..a974f19a2b Binary files /dev/null and b/Resources/Textures/Clothing/Head/Hardsuits/clown.rsi/off-equipped-HELMET-vox.png differ diff --git a/Resources/Textures/Clothing/Head/Hardsuits/clown.rsi/on-equipped-HELMET-vox.png b/Resources/Textures/Clothing/Head/Hardsuits/clown.rsi/on-equipped-HELMET-vox.png new file mode 100644 index 0000000000..88ee1fbad6 Binary files /dev/null and b/Resources/Textures/Clothing/Head/Hardsuits/clown.rsi/on-equipped-HELMET-vox.png differ diff --git a/Resources/Textures/Clothing/Head/Hardsuits/cybersun.rsi/equipped-HELMET-vox.png b/Resources/Textures/Clothing/Head/Hardsuits/cybersun.rsi/equipped-HELMET-vox.png new file mode 100644 index 0000000000..02363a7faa Binary files /dev/null and b/Resources/Textures/Clothing/Head/Hardsuits/cybersun.rsi/equipped-HELMET-vox.png differ diff --git a/Resources/Textures/Clothing/Head/Hardsuits/cybersun.rsi/inhand-left.png b/Resources/Textures/Clothing/Head/Hardsuits/cybersun.rsi/inhand-left.png deleted file mode 100644 index ee1c8d1c4b..0000000000 Binary files a/Resources/Textures/Clothing/Head/Hardsuits/cybersun.rsi/inhand-left.png and /dev/null differ diff --git a/Resources/Textures/Clothing/Head/Hardsuits/cybersun.rsi/inhand-right.png b/Resources/Textures/Clothing/Head/Hardsuits/cybersun.rsi/inhand-right.png deleted file mode 100644 index fa19eea1f7..0000000000 Binary files a/Resources/Textures/Clothing/Head/Hardsuits/cybersun.rsi/inhand-right.png and /dev/null differ diff --git a/Resources/Textures/Clothing/Head/Hardsuits/cybersun.rsi/meta.json b/Resources/Textures/Clothing/Head/Hardsuits/cybersun.rsi/meta.json index f6b8613891..0c1323d3f0 100644 --- a/Resources/Textures/Clothing/Head/Hardsuits/cybersun.rsi/meta.json +++ b/Resources/Textures/Clothing/Head/Hardsuits/cybersun.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "Taken from Paradise SS13 at commit https://github.com/ParadiseSS13/Paradise/commit/a67c929b7394f78e7787114457ba42f4df6cc3a1", + "copyright": "Taken from Paradise SS13 at commit https://github.com/ParadiseSS13/Paradise/commit/a67c929b7394f78e7787114457ba42f4df6cc3a1. Vox state by Flareguy for SS14", "size": { "x": 32, "y": 32 @@ -15,16 +15,12 @@ "directions": 4 }, { - "name": "inhand-left", - "directions": 4 - }, - { - "name": "inhand-right", + "name": "equipped-HELMET-harpy", "directions": 4 }, { - "name": "equipped-HELMET-harpy", - "directions": 4 + "name": "equipped-HELMET-vox", + "directions": 4 } ] } diff --git a/Resources/Textures/Clothing/Head/Hardsuits/deathsquad.rsi/equipped-HELMET-vox.png b/Resources/Textures/Clothing/Head/Hardsuits/deathsquad.rsi/equipped-HELMET-vox.png new file mode 100644 index 0000000000..1a7ed3b866 Binary files /dev/null and b/Resources/Textures/Clothing/Head/Hardsuits/deathsquad.rsi/equipped-HELMET-vox.png differ diff --git a/Resources/Textures/Clothing/Head/Hardsuits/deathsquad.rsi/inhand-left.png b/Resources/Textures/Clothing/Head/Hardsuits/deathsquad.rsi/inhand-left.png deleted file mode 100644 index 6be2c34d76..0000000000 Binary files a/Resources/Textures/Clothing/Head/Hardsuits/deathsquad.rsi/inhand-left.png and /dev/null differ diff --git a/Resources/Textures/Clothing/Head/Hardsuits/deathsquad.rsi/inhand-right.png b/Resources/Textures/Clothing/Head/Hardsuits/deathsquad.rsi/inhand-right.png deleted file mode 100644 index e3c056ada0..0000000000 Binary files a/Resources/Textures/Clothing/Head/Hardsuits/deathsquad.rsi/inhand-right.png and /dev/null differ diff --git a/Resources/Textures/Clothing/Head/Hardsuits/deathsquad.rsi/meta.json b/Resources/Textures/Clothing/Head/Hardsuits/deathsquad.rsi/meta.json index 83e8e1a788..782ce631af 100644 --- a/Resources/Textures/Clothing/Head/Hardsuits/deathsquad.rsi/meta.json +++ b/Resources/Textures/Clothing/Head/Hardsuits/deathsquad.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e | vulpkanin versions taken from https://github.com/SPLURT-Station/S.P.L.U.R.T-Station-13/commit/091d9ec00f186052b87bd65125e896f78faefe38 and edited by Floofers", + "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e | vulpkanin versions taken from https://github.com/SPLURT-Station/S.P.L.U.R.T-Station-13/commit/091d9ec00f186052b87bd65125e896f78faefe38 and edited by Floofers | Vox state by Flareguy", "size": { "x": 32, "y": 32 @@ -15,15 +15,11 @@ "directions": 4 }, { - "name": "inhand-left", - "directions": 4 - }, - { - "name": "inhand-right", + "name": "equipped-HELMET-vulpkanin", "directions": 4 }, { - "name": "equipped-HELMET-vulpkanin", + "name": "equipped-HELMET-vox", "directions": 4 } ] diff --git a/Resources/Textures/Clothing/Head/Hardsuits/engineering-white.rsi/meta.json b/Resources/Textures/Clothing/Head/Hardsuits/engineering-white.rsi/meta.json index 1ac1729cd2..7dbf66ad67 100644 --- a/Resources/Textures/Clothing/Head/Hardsuits/engineering-white.rsi/meta.json +++ b/Resources/Textures/Clothing/Head/Hardsuits/engineering-white.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e | vulpkanin versions taken from Paradise station at https://github.com/ParadiseSS13/Paradise/commit/f0fa4e1fd809482fbc104a310aa34cebf7df157d", + "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e. Vox states by Flareguy for Space Station 14 | vulpkanin versions taken from Paradise station at https://github.com/ParadiseSS13/Paradise/commit/f0fa4e1fd809482fbc104a310aa34cebf7df157d | Vox states by Flareguy for Space Station 14", "size": { "x": 32, "y": 32 @@ -18,34 +18,26 @@ "directions": 4 }, { - "name": "off-inhand-left", - "directions": 4 - }, - { - "name": "off-inhand-right", - "directions": 4 - }, - { - "name": "on-equipped-HELMET", - "directions": 4 - }, - { - "name": "on-inhand-left", - "directions": 4 + "name": "on-equipped-HELMET", + "directions": 4 }, { - "name": "on-inhand-right", + "name": "on-equipped-HELMET-vulpkanin", "directions": 4 }, { - "name": "on-equipped-HELMET-vulpkanin", + "name": "off-equipped-HELMET-vulpkanin", "directions": 4 }, { - "name": "off-equipped-HELMET-vulpkanin", + "name": "on-equipped-HELMET-vox", "directions": 4 - }, - { + }, + { + "name": "off-equipped-HELMET-vox", + "directions": 4 + }, + { "name": "on-equipped-HELMET-harpy", "directions": 4 }, diff --git a/Resources/Textures/Clothing/Head/Hardsuits/engineering-white.rsi/off-equipped-HELMET-vox.png b/Resources/Textures/Clothing/Head/Hardsuits/engineering-white.rsi/off-equipped-HELMET-vox.png new file mode 100644 index 0000000000..683d6ce97d Binary files /dev/null and b/Resources/Textures/Clothing/Head/Hardsuits/engineering-white.rsi/off-equipped-HELMET-vox.png differ diff --git a/Resources/Textures/Clothing/Head/Hardsuits/engineering-white.rsi/off-inhand-left.png b/Resources/Textures/Clothing/Head/Hardsuits/engineering-white.rsi/off-inhand-left.png deleted file mode 100644 index f7375fd600..0000000000 Binary files a/Resources/Textures/Clothing/Head/Hardsuits/engineering-white.rsi/off-inhand-left.png and /dev/null differ diff --git a/Resources/Textures/Clothing/Head/Hardsuits/engineering-white.rsi/off-inhand-right.png b/Resources/Textures/Clothing/Head/Hardsuits/engineering-white.rsi/off-inhand-right.png deleted file mode 100644 index c2adc46cdb..0000000000 Binary files a/Resources/Textures/Clothing/Head/Hardsuits/engineering-white.rsi/off-inhand-right.png and /dev/null differ diff --git a/Resources/Textures/Clothing/Head/Hardsuits/engineering-white.rsi/on-equipped-HELMET-vox.png b/Resources/Textures/Clothing/Head/Hardsuits/engineering-white.rsi/on-equipped-HELMET-vox.png new file mode 100644 index 0000000000..574b3d985b Binary files /dev/null and b/Resources/Textures/Clothing/Head/Hardsuits/engineering-white.rsi/on-equipped-HELMET-vox.png differ diff --git a/Resources/Textures/Clothing/Head/Hardsuits/engineering-white.rsi/on-inhand-left.png b/Resources/Textures/Clothing/Head/Hardsuits/engineering-white.rsi/on-inhand-left.png deleted file mode 100644 index 7c6e7831c8..0000000000 Binary files a/Resources/Textures/Clothing/Head/Hardsuits/engineering-white.rsi/on-inhand-left.png and /dev/null differ diff --git a/Resources/Textures/Clothing/Head/Hardsuits/engineering-white.rsi/on-inhand-right.png b/Resources/Textures/Clothing/Head/Hardsuits/engineering-white.rsi/on-inhand-right.png deleted file mode 100644 index 5ee7bc104c..0000000000 Binary files a/Resources/Textures/Clothing/Head/Hardsuits/engineering-white.rsi/on-inhand-right.png and /dev/null differ diff --git a/Resources/Textures/Clothing/Head/Hardsuits/engineering.rsi/meta.json b/Resources/Textures/Clothing/Head/Hardsuits/engineering.rsi/meta.json index 4dae2c687d..f20b167c36 100644 --- a/Resources/Textures/Clothing/Head/Hardsuits/engineering.rsi/meta.json +++ b/Resources/Textures/Clothing/Head/Hardsuits/engineering.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e | vulpkanin versions taken from Paradise station at https://github.com/ParadiseSS13/Paradise/commit/f0fa4e1fd809482fbc104a310aa34cebf7df157d", + "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e. Vox states by Flareguy for Space Station 14 | vulpkanin versions taken from Paradise station at https://github.com/ParadiseSS13/Paradise/commit/f0fa4e1fd809482fbc104a310aa34cebf7df157d | Vox states by Flareguy for Space Station 14", "size": { "x": 32, "y": 32 @@ -18,25 +18,17 @@ "directions": 4 }, { - "name": "off-inhand-left", + "name": "off-equipped-HELMET-vox", "directions": 4 }, { - "name": "off-inhand-right", - "directions": 4 + "name": "on-equipped-HELMET-vox", + "directions": 4 }, { "name": "on-equipped-HELMET", "directions": 4 }, - { - "name": "on-inhand-left", - "directions": 4 - }, - { - "name": "on-inhand-right", - "directions": 4 - }, { "name": "on-equipped-HELMET-vulpkanin", "directions": 4 diff --git a/Resources/Textures/Clothing/Head/Hardsuits/engineering.rsi/off-equipped-HELMET-vox.png b/Resources/Textures/Clothing/Head/Hardsuits/engineering.rsi/off-equipped-HELMET-vox.png new file mode 100644 index 0000000000..900ed95dc0 Binary files /dev/null and b/Resources/Textures/Clothing/Head/Hardsuits/engineering.rsi/off-equipped-HELMET-vox.png differ diff --git a/Resources/Textures/Clothing/Head/Hardsuits/engineering.rsi/off-inhand-left.png b/Resources/Textures/Clothing/Head/Hardsuits/engineering.rsi/off-inhand-left.png deleted file mode 100644 index cafca9a938..0000000000 Binary files a/Resources/Textures/Clothing/Head/Hardsuits/engineering.rsi/off-inhand-left.png and /dev/null differ diff --git a/Resources/Textures/Clothing/Head/Hardsuits/engineering.rsi/off-inhand-right.png b/Resources/Textures/Clothing/Head/Hardsuits/engineering.rsi/off-inhand-right.png deleted file mode 100644 index 9645b59e2d..0000000000 Binary files a/Resources/Textures/Clothing/Head/Hardsuits/engineering.rsi/off-inhand-right.png and /dev/null differ diff --git a/Resources/Textures/Clothing/Head/Hardsuits/engineering.rsi/on-equipped-HELMET-vox.png b/Resources/Textures/Clothing/Head/Hardsuits/engineering.rsi/on-equipped-HELMET-vox.png new file mode 100644 index 0000000000..1a40bc3a26 Binary files /dev/null and b/Resources/Textures/Clothing/Head/Hardsuits/engineering.rsi/on-equipped-HELMET-vox.png differ diff --git a/Resources/Textures/Clothing/Head/Hardsuits/engineering.rsi/on-inhand-left.png b/Resources/Textures/Clothing/Head/Hardsuits/engineering.rsi/on-inhand-left.png deleted file mode 100644 index bff16d72c4..0000000000 Binary files a/Resources/Textures/Clothing/Head/Hardsuits/engineering.rsi/on-inhand-left.png and /dev/null differ diff --git a/Resources/Textures/Clothing/Head/Hardsuits/engineering.rsi/on-inhand-right.png b/Resources/Textures/Clothing/Head/Hardsuits/engineering.rsi/on-inhand-right.png deleted file mode 100644 index 355977d540..0000000000 Binary files a/Resources/Textures/Clothing/Head/Hardsuits/engineering.rsi/on-inhand-right.png and /dev/null differ diff --git a/Resources/Textures/Clothing/Head/Hardsuits/luxury.rsi/meta.json b/Resources/Textures/Clothing/Head/Hardsuits/luxury.rsi/meta.json index d431123de2..d80c50a1c4 100644 --- a/Resources/Textures/Clothing/Head/Hardsuits/luxury.rsi/meta.json +++ b/Resources/Textures/Clothing/Head/Hardsuits/luxury.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "Texture edit from tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e", + "copyright": "Texture edit from tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e. Vox states by Flareguy for Space Station 14", "size": { "x": 32, "y": 32 @@ -17,24 +17,16 @@ "name": "off-equipped-HELMET", "directions": 4 }, - { - "name": "off-inhand-left", - "directions": 4 - }, - { - "name": "off-inhand-right", - "directions": 4 - }, { "name": "on-equipped-HELMET", "directions": 4 }, { - "name": "on-inhand-left", + "name": "off-equipped-HELMET-vox", "directions": 4 }, { - "name": "on-inhand-right", + "name": "on-equipped-HELMET-vox", "directions": 4 } ] diff --git a/Resources/Textures/Clothing/Head/Hardsuits/luxury.rsi/off-equipped-HELMET-vox.png b/Resources/Textures/Clothing/Head/Hardsuits/luxury.rsi/off-equipped-HELMET-vox.png new file mode 100644 index 0000000000..efacfba741 Binary files /dev/null and b/Resources/Textures/Clothing/Head/Hardsuits/luxury.rsi/off-equipped-HELMET-vox.png differ diff --git a/Resources/Textures/Clothing/Head/Hardsuits/luxury.rsi/off-inhand-left.png b/Resources/Textures/Clothing/Head/Hardsuits/luxury.rsi/off-inhand-left.png deleted file mode 100644 index b26ae9a31f..0000000000 Binary files a/Resources/Textures/Clothing/Head/Hardsuits/luxury.rsi/off-inhand-left.png and /dev/null differ diff --git a/Resources/Textures/Clothing/Head/Hardsuits/luxury.rsi/off-inhand-right.png b/Resources/Textures/Clothing/Head/Hardsuits/luxury.rsi/off-inhand-right.png deleted file mode 100644 index fc0edd4a97..0000000000 Binary files a/Resources/Textures/Clothing/Head/Hardsuits/luxury.rsi/off-inhand-right.png and /dev/null differ diff --git a/Resources/Textures/Clothing/Head/Hardsuits/luxury.rsi/on-equipped-HELMET-vox.png b/Resources/Textures/Clothing/Head/Hardsuits/luxury.rsi/on-equipped-HELMET-vox.png new file mode 100644 index 0000000000..09d835e9b9 Binary files /dev/null and b/Resources/Textures/Clothing/Head/Hardsuits/luxury.rsi/on-equipped-HELMET-vox.png differ diff --git a/Resources/Textures/Clothing/Head/Hardsuits/luxury.rsi/on-inhand-left.png b/Resources/Textures/Clothing/Head/Hardsuits/luxury.rsi/on-inhand-left.png deleted file mode 100644 index 3f5034da6c..0000000000 Binary files a/Resources/Textures/Clothing/Head/Hardsuits/luxury.rsi/on-inhand-left.png and /dev/null differ diff --git a/Resources/Textures/Clothing/Head/Hardsuits/luxury.rsi/on-inhand-right.png b/Resources/Textures/Clothing/Head/Hardsuits/luxury.rsi/on-inhand-right.png deleted file mode 100644 index 45776a03b8..0000000000 Binary files a/Resources/Textures/Clothing/Head/Hardsuits/luxury.rsi/on-inhand-right.png and /dev/null differ diff --git a/Resources/Textures/Clothing/Head/Hardsuits/maxim.rsi/equipped-HELMET-vox.png b/Resources/Textures/Clothing/Head/Hardsuits/maxim.rsi/equipped-HELMET-vox.png new file mode 100644 index 0000000000..11de602a6e Binary files /dev/null and b/Resources/Textures/Clothing/Head/Hardsuits/maxim.rsi/equipped-HELMET-vox.png differ diff --git a/Resources/Textures/Clothing/Head/Hardsuits/maxim.rsi/inhand-left.png b/Resources/Textures/Clothing/Head/Hardsuits/maxim.rsi/inhand-left.png deleted file mode 100644 index 81e8a07fdd..0000000000 Binary files a/Resources/Textures/Clothing/Head/Hardsuits/maxim.rsi/inhand-left.png and /dev/null differ diff --git a/Resources/Textures/Clothing/Head/Hardsuits/maxim.rsi/inhand-right.png b/Resources/Textures/Clothing/Head/Hardsuits/maxim.rsi/inhand-right.png deleted file mode 100644 index e10648fd9b..0000000000 Binary files a/Resources/Textures/Clothing/Head/Hardsuits/maxim.rsi/inhand-right.png and /dev/null differ diff --git a/Resources/Textures/Clothing/Head/Hardsuits/maxim.rsi/meta.json b/Resources/Textures/Clothing/Head/Hardsuits/maxim.rsi/meta.json index 2d5aaae8c7..2a085063a4 100644 --- a/Resources/Textures/Clothing/Head/Hardsuits/maxim.rsi/meta.json +++ b/Resources/Textures/Clothing/Head/Hardsuits/maxim.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/6b3f58d7de4d4e374282819a7001eaa9bde1676d", + "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/6b3f58d7de4d4e374282819a7001eaa9bde1676d. Vox state by Flareguy for Space Station 14", "size": { "x": 32, "y": 32 @@ -15,11 +15,7 @@ "directions": 4 }, { - "name": "inhand-left", - "directions": 4 - }, - { - "name": "inhand-right", + "name": "equipped-HELMET-vox", "directions": 4 } ] diff --git a/Resources/Textures/Clothing/Head/Hardsuits/medical.rsi/meta.json b/Resources/Textures/Clothing/Head/Hardsuits/medical.rsi/meta.json index d168108fdf..7954c0611e 100644 --- a/Resources/Textures/Clothing/Head/Hardsuits/medical.rsi/meta.json +++ b/Resources/Textures/Clothing/Head/Hardsuits/medical.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e | vulpkanin version taken from Paradise station at https://github.com/ParadiseSS13/Paradise/commit/f0fa4e1fd809482fbc104a310aa34cebf7df157d", + "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e. Vox states by Flareguy for Space Station 14 | vulpkanin version taken from Paradise station at https://github.com/ParadiseSS13/Paradise/commit/f0fa4e1fd809482fbc104a310aa34cebf7df157d | Vox states by Flareguy for Space Station 14", "size": { "x": 32, "y": 32 @@ -14,28 +14,20 @@ "name": "icon-flash" }, { - "name": "off-equipped-HELMET", - "directions": 4 - }, - { - "name": "off-inhand-left", - "directions": 4 - }, + "name": "on-equipped-HELMET", + "directions": 4 + }, { - "name": "off-inhand-right", - "directions": 4 - }, - { - "name": "on-equipped-HELMET", + "name": "off-equipped-HELMET", "directions": 4 }, { - "name": "on-inhand-left", + "name": "on-equipped-HELMET-vox", "directions": 4 }, { - "name": "on-inhand-right", - "directions": 4 + "name": "off-equipped-HELMET-vox", + "directions": 4 }, { "name": "on-equipped-HELMET-vulpkanin", diff --git a/Resources/Textures/Clothing/Head/Hardsuits/medical.rsi/off-equipped-HELMET-vox.png b/Resources/Textures/Clothing/Head/Hardsuits/medical.rsi/off-equipped-HELMET-vox.png new file mode 100644 index 0000000000..1952c3152d Binary files /dev/null and b/Resources/Textures/Clothing/Head/Hardsuits/medical.rsi/off-equipped-HELMET-vox.png differ diff --git a/Resources/Textures/Clothing/Head/Hardsuits/medical.rsi/off-inhand-left.png b/Resources/Textures/Clothing/Head/Hardsuits/medical.rsi/off-inhand-left.png deleted file mode 100644 index 8fbfbbf6c6..0000000000 Binary files a/Resources/Textures/Clothing/Head/Hardsuits/medical.rsi/off-inhand-left.png and /dev/null differ diff --git a/Resources/Textures/Clothing/Head/Hardsuits/medical.rsi/off-inhand-right.png b/Resources/Textures/Clothing/Head/Hardsuits/medical.rsi/off-inhand-right.png deleted file mode 100644 index 035c6fc061..0000000000 Binary files a/Resources/Textures/Clothing/Head/Hardsuits/medical.rsi/off-inhand-right.png and /dev/null differ diff --git a/Resources/Textures/Clothing/Head/Hardsuits/medical.rsi/on-equipped-HELMET-vox.png b/Resources/Textures/Clothing/Head/Hardsuits/medical.rsi/on-equipped-HELMET-vox.png new file mode 100644 index 0000000000..3011afac41 Binary files /dev/null and b/Resources/Textures/Clothing/Head/Hardsuits/medical.rsi/on-equipped-HELMET-vox.png differ diff --git a/Resources/Textures/Clothing/Head/Hardsuits/medical.rsi/on-inhand-left.png b/Resources/Textures/Clothing/Head/Hardsuits/medical.rsi/on-inhand-left.png deleted file mode 100644 index 85cbfb321a..0000000000 Binary files a/Resources/Textures/Clothing/Head/Hardsuits/medical.rsi/on-inhand-left.png and /dev/null differ diff --git a/Resources/Textures/Clothing/Head/Hardsuits/medical.rsi/on-inhand-right.png b/Resources/Textures/Clothing/Head/Hardsuits/medical.rsi/on-inhand-right.png deleted file mode 100644 index c876fefb6c..0000000000 Binary files a/Resources/Textures/Clothing/Head/Hardsuits/medical.rsi/on-inhand-right.png and /dev/null differ diff --git a/Resources/Textures/Clothing/Head/Hardsuits/piratecaptainhelm.rsi/equipped-HELMET-vox.png b/Resources/Textures/Clothing/Head/Hardsuits/piratecaptainhelm.rsi/equipped-HELMET-vox.png new file mode 100644 index 0000000000..8d0cd093f3 Binary files /dev/null and b/Resources/Textures/Clothing/Head/Hardsuits/piratecaptainhelm.rsi/equipped-HELMET-vox.png differ diff --git a/Resources/Textures/Clothing/Head/Hardsuits/piratecaptainhelm.rsi/meta.json b/Resources/Textures/Clothing/Head/Hardsuits/piratecaptainhelm.rsi/meta.json index 2244815b78..48f0cbb615 100644 --- a/Resources/Textures/Clothing/Head/Hardsuits/piratecaptainhelm.rsi/meta.json +++ b/Resources/Textures/Clothing/Head/Hardsuits/piratecaptainhelm.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "Made by brainfood1183 (github) for ss14", + "copyright": "Made by brainfood1183 (github) for ss14. Vox states by Flareguy for Space Station 14", "size": { "x": 32, "y": 32 @@ -13,6 +13,10 @@ { "name": "equipped-HELMET", "directions": 4 + }, + { + "name": "equipped-HELMET-vox", + "directions": 4 } ] } diff --git a/Resources/Textures/Clothing/Head/Hardsuits/pirateeva.rsi/equipped-HELMET-vox.png b/Resources/Textures/Clothing/Head/Hardsuits/pirateeva.rsi/equipped-HELMET-vox.png new file mode 100644 index 0000000000..663733cfe8 Binary files /dev/null and b/Resources/Textures/Clothing/Head/Hardsuits/pirateeva.rsi/equipped-HELMET-vox.png differ diff --git a/Resources/Textures/Clothing/Head/Hardsuits/pirateeva.rsi/meta.json b/Resources/Textures/Clothing/Head/Hardsuits/pirateeva.rsi/meta.json index 2244815b78..5bb20fd0fb 100644 --- a/Resources/Textures/Clothing/Head/Hardsuits/pirateeva.rsi/meta.json +++ b/Resources/Textures/Clothing/Head/Hardsuits/pirateeva.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "Made by brainfood1183 (github) for ss14", + "copyright": "Made by brainfood1183 (github) for ss14. Vox state by Flareguy for Space Station 14", "size": { "x": 32, "y": 32 @@ -13,6 +13,10 @@ { "name": "equipped-HELMET", "directions": 4 + }, + { + "name": "equipped-HELMET-vox", + "directions": 4 } ] } diff --git a/Resources/Textures/Clothing/Head/Hardsuits/rd.rsi/meta.json b/Resources/Textures/Clothing/Head/Hardsuits/rd.rsi/meta.json index a2c357d43f..db7f740811 100644 --- a/Resources/Textures/Clothing/Head/Hardsuits/rd.rsi/meta.json +++ b/Resources/Textures/Clothing/Head/Hardsuits/rd.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e | vulpkanin versions taken from Paradise station at https://github.com/ParadiseSS13/Paradise/commit/f0fa4e1fd809482fbc104a310aa34cebf7df157d", + "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e. Vox states made by Flareguy for SS14 | vulpkanin versions taken from Paradise station at https://github.com/ParadiseSS13/Paradise/commit/f0fa4e1fd809482fbc104a310aa34cebf7df157d | Vox states by Flareguy for Space Station 14", "size": { "x": 32, "y": 32 @@ -14,28 +14,20 @@ "name": "icon-flash" }, { - "name": "off-equipped-HELMET", - "directions": 4 - }, - { - "name": "off-inhand-left", - "directions": 4 + "name": "on-equipped-HELMET", + "directions": 4 }, { - "name": "off-inhand-right", - "directions": 4 - }, - { - "name": "on-equipped-HELMET", + "name": "off-equipped-HELMET", "directions": 4 }, { - "name": "on-inhand-left", + "name": "on-equipped-HELMET-vox", "directions": 4 }, { - "name": "on-inhand-right", - "directions": 4 + "name": "off-equipped-HELMET-vox", + "directions": 4 }, { "name": "on-equipped-HELMET-vulpkanin", diff --git a/Resources/Textures/Clothing/Head/Hardsuits/rd.rsi/off-equipped-HELMET-vox.png b/Resources/Textures/Clothing/Head/Hardsuits/rd.rsi/off-equipped-HELMET-vox.png new file mode 100644 index 0000000000..9f2f5c41df Binary files /dev/null and b/Resources/Textures/Clothing/Head/Hardsuits/rd.rsi/off-equipped-HELMET-vox.png differ diff --git a/Resources/Textures/Clothing/Head/Hardsuits/rd.rsi/off-inhand-left.png b/Resources/Textures/Clothing/Head/Hardsuits/rd.rsi/off-inhand-left.png deleted file mode 100644 index dc16b147b8..0000000000 Binary files a/Resources/Textures/Clothing/Head/Hardsuits/rd.rsi/off-inhand-left.png and /dev/null differ diff --git a/Resources/Textures/Clothing/Head/Hardsuits/rd.rsi/off-inhand-right.png b/Resources/Textures/Clothing/Head/Hardsuits/rd.rsi/off-inhand-right.png deleted file mode 100644 index e289c62a84..0000000000 Binary files a/Resources/Textures/Clothing/Head/Hardsuits/rd.rsi/off-inhand-right.png and /dev/null differ diff --git a/Resources/Textures/Clothing/Head/Hardsuits/rd.rsi/on-equipped-HELMET-vox.png b/Resources/Textures/Clothing/Head/Hardsuits/rd.rsi/on-equipped-HELMET-vox.png new file mode 100644 index 0000000000..b577d32feb Binary files /dev/null and b/Resources/Textures/Clothing/Head/Hardsuits/rd.rsi/on-equipped-HELMET-vox.png differ diff --git a/Resources/Textures/Clothing/Head/Hardsuits/rd.rsi/on-inhand-left.png b/Resources/Textures/Clothing/Head/Hardsuits/rd.rsi/on-inhand-left.png deleted file mode 100644 index b107272dda..0000000000 Binary files a/Resources/Textures/Clothing/Head/Hardsuits/rd.rsi/on-inhand-left.png and /dev/null differ diff --git a/Resources/Textures/Clothing/Head/Hardsuits/rd.rsi/on-inhand-right.png b/Resources/Textures/Clothing/Head/Hardsuits/rd.rsi/on-inhand-right.png deleted file mode 100644 index 59a3181afb..0000000000 Binary files a/Resources/Textures/Clothing/Head/Hardsuits/rd.rsi/on-inhand-right.png and /dev/null differ diff --git a/Resources/Textures/Clothing/Head/Hardsuits/salvage.rsi/meta.json b/Resources/Textures/Clothing/Head/Hardsuits/salvage.rsi/meta.json index d168108fdf..051b7e25ea 100644 --- a/Resources/Textures/Clothing/Head/Hardsuits/salvage.rsi/meta.json +++ b/Resources/Textures/Clothing/Head/Hardsuits/salvage.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e | vulpkanin version taken from Paradise station at https://github.com/ParadiseSS13/Paradise/commit/f0fa4e1fd809482fbc104a310aa34cebf7df157d", + "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e. Vox states by Flareguy for Space Station 14 | vulpkanin version taken from Paradise station at https://github.com/ParadiseSS13/Paradise/commit/f0fa4e1fd809482fbc104a310aa34cebf7df157d | Vox states by Flareguy for Space Station 14", "size": { "x": 32, "y": 32 @@ -14,28 +14,20 @@ "name": "icon-flash" }, { - "name": "off-equipped-HELMET", - "directions": 4 - }, - { - "name": "off-inhand-left", - "directions": 4 + "name": "on-equipped-HELMET", + "directions": 4 }, { - "name": "off-inhand-right", - "directions": 4 - }, - { - "name": "on-equipped-HELMET", + "name": "off-equipped-HELMET", "directions": 4 }, { - "name": "on-inhand-left", + "name": "on-equipped-HELMET-vox", "directions": 4 }, { - "name": "on-inhand-right", - "directions": 4 + "name": "off-equipped-HELMET-vox", + "directions": 4 }, { "name": "on-equipped-HELMET-vulpkanin", diff --git a/Resources/Textures/Clothing/Head/Hardsuits/salvage.rsi/off-equipped-HELMET-vox.png b/Resources/Textures/Clothing/Head/Hardsuits/salvage.rsi/off-equipped-HELMET-vox.png new file mode 100644 index 0000000000..c3f24c8b34 Binary files /dev/null and b/Resources/Textures/Clothing/Head/Hardsuits/salvage.rsi/off-equipped-HELMET-vox.png differ diff --git a/Resources/Textures/Clothing/Head/Hardsuits/salvage.rsi/off-inhand-left.png b/Resources/Textures/Clothing/Head/Hardsuits/salvage.rsi/off-inhand-left.png deleted file mode 100644 index b11a533c26..0000000000 Binary files a/Resources/Textures/Clothing/Head/Hardsuits/salvage.rsi/off-inhand-left.png and /dev/null differ diff --git a/Resources/Textures/Clothing/Head/Hardsuits/salvage.rsi/off-inhand-right.png b/Resources/Textures/Clothing/Head/Hardsuits/salvage.rsi/off-inhand-right.png deleted file mode 100644 index b9c9df2350..0000000000 Binary files a/Resources/Textures/Clothing/Head/Hardsuits/salvage.rsi/off-inhand-right.png and /dev/null differ diff --git a/Resources/Textures/Clothing/Head/Hardsuits/salvage.rsi/on-equipped-HELMET-vox.png b/Resources/Textures/Clothing/Head/Hardsuits/salvage.rsi/on-equipped-HELMET-vox.png new file mode 100644 index 0000000000..007852fc10 Binary files /dev/null and b/Resources/Textures/Clothing/Head/Hardsuits/salvage.rsi/on-equipped-HELMET-vox.png differ diff --git a/Resources/Textures/Clothing/Head/Hardsuits/salvage.rsi/on-inhand-left.png b/Resources/Textures/Clothing/Head/Hardsuits/salvage.rsi/on-inhand-left.png deleted file mode 100644 index 12d13f0e18..0000000000 Binary files a/Resources/Textures/Clothing/Head/Hardsuits/salvage.rsi/on-inhand-left.png and /dev/null differ diff --git a/Resources/Textures/Clothing/Head/Hardsuits/salvage.rsi/on-inhand-right.png b/Resources/Textures/Clothing/Head/Hardsuits/salvage.rsi/on-inhand-right.png deleted file mode 100644 index 141dc492a4..0000000000 Binary files a/Resources/Textures/Clothing/Head/Hardsuits/salvage.rsi/on-inhand-right.png and /dev/null differ diff --git a/Resources/Textures/Clothing/Head/Hardsuits/santahelm.rsi/equipped-HELMET-vox.png b/Resources/Textures/Clothing/Head/Hardsuits/santahelm.rsi/equipped-HELMET-vox.png new file mode 100644 index 0000000000..025e702667 Binary files /dev/null and b/Resources/Textures/Clothing/Head/Hardsuits/santahelm.rsi/equipped-HELMET-vox.png differ diff --git a/Resources/Textures/Clothing/Head/Hardsuits/santahelm.rsi/inhand-left.png b/Resources/Textures/Clothing/Head/Hardsuits/santahelm.rsi/inhand-left.png deleted file mode 100644 index c0c5863a3b..0000000000 Binary files a/Resources/Textures/Clothing/Head/Hardsuits/santahelm.rsi/inhand-left.png and /dev/null differ diff --git a/Resources/Textures/Clothing/Head/Hardsuits/santahelm.rsi/inhand-right.png b/Resources/Textures/Clothing/Head/Hardsuits/santahelm.rsi/inhand-right.png deleted file mode 100644 index f29877bf5a..0000000000 Binary files a/Resources/Textures/Clothing/Head/Hardsuits/santahelm.rsi/inhand-right.png and /dev/null differ diff --git a/Resources/Textures/Clothing/Head/Hardsuits/santahelm.rsi/meta.json b/Resources/Textures/Clothing/Head/Hardsuits/santahelm.rsi/meta.json index c53de83901..afc9f219ac 100644 --- a/Resources/Textures/Clothing/Head/Hardsuits/santahelm.rsi/meta.json +++ b/Resources/Textures/Clothing/Head/Hardsuits/santahelm.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "Edited by StanTheCarpenter. Originally taken from tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e", + "copyright": "Edited by StanTheCarpenter. Originally taken from tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e. Vox states by Flareguy for Space Station 14", "size": { "x": 32, "y": 32 @@ -15,11 +15,7 @@ "directions": 4 }, { - "name": "inhand-left", - "directions": 4 - }, - { - "name": "inhand-right", + "name": "equipped-HELMET-vox", "directions": 4 } ] diff --git a/Resources/Textures/Clothing/Head/Hardsuits/security-red.rsi/meta.json b/Resources/Textures/Clothing/Head/Hardsuits/security-red.rsi/meta.json index 40c5c72b11..f7be4bb5d4 100644 --- a/Resources/Textures/Clothing/Head/Hardsuits/security-red.rsi/meta.json +++ b/Resources/Textures/Clothing/Head/Hardsuits/security-red.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e | vulpkanin versions taken from https://github.com/SPLURT-Station/S.P.L.U.R.T-Station-13/commit/091d9ec00f186052b87bd65125e896f78faefe38 and edited by Floofers", + "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e. Vox states by Flareguy for Space Station 14 | vulpkanin versions taken from https://github.com/SPLURT-Station/S.P.L.U.R.T-Station-13/commit/091d9ec00f186052b87bd65125e896f78faefe38 and edited by Floofers", "size": { "x": 32, "y": 32 @@ -14,28 +14,20 @@ "name": "icon-flash" }, { - "name": "off-equipped-HELMET", - "directions": 4 - }, - { - "name": "off-inhand-left", - "directions": 4 + "name": "on-equipped-HELMET", + "directions": 4 }, { - "name": "off-inhand-right", - "directions": 4 - }, - { - "name": "on-equipped-HELMET", + "name": "off-equipped-HELMET", "directions": 4 }, { - "name": "on-inhand-left", + "name": "on-equipped-HELMET-vox", "directions": 4 }, { - "name": "on-inhand-right", - "directions": 4 + "name": "off-equipped-HELMET-vox", + "directions": 4 }, { "name": "on-equipped-HELMET-vulpkanin", diff --git a/Resources/Textures/Clothing/Head/Hardsuits/security-red.rsi/off-equipped-HELMET-vox.png b/Resources/Textures/Clothing/Head/Hardsuits/security-red.rsi/off-equipped-HELMET-vox.png new file mode 100644 index 0000000000..6954a4e1a8 Binary files /dev/null and b/Resources/Textures/Clothing/Head/Hardsuits/security-red.rsi/off-equipped-HELMET-vox.png differ diff --git a/Resources/Textures/Clothing/Head/Hardsuits/security-red.rsi/off-inhand-left.png b/Resources/Textures/Clothing/Head/Hardsuits/security-red.rsi/off-inhand-left.png deleted file mode 100644 index c81cf30dc9..0000000000 Binary files a/Resources/Textures/Clothing/Head/Hardsuits/security-red.rsi/off-inhand-left.png and /dev/null differ diff --git a/Resources/Textures/Clothing/Head/Hardsuits/security-red.rsi/off-inhand-right.png b/Resources/Textures/Clothing/Head/Hardsuits/security-red.rsi/off-inhand-right.png deleted file mode 100644 index f5b449d7b9..0000000000 Binary files a/Resources/Textures/Clothing/Head/Hardsuits/security-red.rsi/off-inhand-right.png and /dev/null differ diff --git a/Resources/Textures/Clothing/Head/Hardsuits/security-red.rsi/on-equipped-HELMET-vox.png b/Resources/Textures/Clothing/Head/Hardsuits/security-red.rsi/on-equipped-HELMET-vox.png new file mode 100644 index 0000000000..b48bb710d9 Binary files /dev/null and b/Resources/Textures/Clothing/Head/Hardsuits/security-red.rsi/on-equipped-HELMET-vox.png differ diff --git a/Resources/Textures/Clothing/Head/Hardsuits/security-red.rsi/on-inhand-left.png b/Resources/Textures/Clothing/Head/Hardsuits/security-red.rsi/on-inhand-left.png deleted file mode 100644 index 32f699cb47..0000000000 Binary files a/Resources/Textures/Clothing/Head/Hardsuits/security-red.rsi/on-inhand-left.png and /dev/null differ diff --git a/Resources/Textures/Clothing/Head/Hardsuits/security-red.rsi/on-inhand-right.png b/Resources/Textures/Clothing/Head/Hardsuits/security-red.rsi/on-inhand-right.png deleted file mode 100644 index 71d2a09325..0000000000 Binary files a/Resources/Textures/Clothing/Head/Hardsuits/security-red.rsi/on-inhand-right.png and /dev/null differ diff --git a/Resources/Textures/Clothing/Head/Hardsuits/security-warden.rsi/meta.json b/Resources/Textures/Clothing/Head/Hardsuits/security-warden.rsi/meta.json index 14121523ca..3d94d382c3 100644 --- a/Resources/Textures/Clothing/Head/Hardsuits/security-warden.rsi/meta.json +++ b/Resources/Textures/Clothing/Head/Hardsuits/security-warden.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "sprite made by Gtheglorious based on the sprite made by Alekshhh for SS14 | vulpkanin versions made by Floofers", + "copyright": "sprite made by Gtheglorious based on the sprite made by Alekshhh for SS14 | vulpkanin versions made by Floofers. Vox states by Flareguy for Space Station 14", "size": { "x": 32, "y": 32 @@ -28,6 +28,14 @@ { "name": "off-equipped-HELMET-vulpkanin", "directions": 4 + }, + { + "name": "off-equipped-HELMET-vox", + "directions": 4 + }, + { + "name": "on-equipped-HELMET-vox", + "directions": 4 } ] } diff --git a/Resources/Textures/Clothing/Head/Hardsuits/security-warden.rsi/off-equipped-HELMET-vox.png b/Resources/Textures/Clothing/Head/Hardsuits/security-warden.rsi/off-equipped-HELMET-vox.png new file mode 100644 index 0000000000..2a3619db8e Binary files /dev/null and b/Resources/Textures/Clothing/Head/Hardsuits/security-warden.rsi/off-equipped-HELMET-vox.png differ diff --git a/Resources/Textures/Clothing/Head/Hardsuits/security-warden.rsi/on-equipped-HELMET-vox.png b/Resources/Textures/Clothing/Head/Hardsuits/security-warden.rsi/on-equipped-HELMET-vox.png new file mode 100644 index 0000000000..5b9e2b19ad Binary files /dev/null and b/Resources/Textures/Clothing/Head/Hardsuits/security-warden.rsi/on-equipped-HELMET-vox.png differ diff --git a/Resources/Textures/Clothing/Head/Hardsuits/security.rsi/meta.json b/Resources/Textures/Clothing/Head/Hardsuits/security.rsi/meta.json index a2e10d4300..24f2a06e37 100644 --- a/Resources/Textures/Clothing/Head/Hardsuits/security.rsi/meta.json +++ b/Resources/Textures/Clothing/Head/Hardsuits/security.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "Sprite made by Gtheglorious based on the sprite taken from tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e, | vulpkanin versions taken from https://github.com/SPLURT-Station/S.P.L.U.R.T-Station-13/commit/091d9ec00f186052b87bd65125e896f78faefe38 and edited by Floofers", + "copyright": "Sprite made by Gtheglorious based on the sprite taken from tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e. Vox states by Flareguy for Space Station 14 | vulpkanin versions taken from https://github.com/SPLURT-Station/S.P.L.U.R.T-Station-13/commit/091d9ec00f186052b87bd65125e896f78faefe38 and edited by Floofers", "size": { "x": 32, "y": 32 @@ -14,28 +14,20 @@ "name": "icon-flash" }, { - "name": "off-equipped-HELMET", - "directions": 4 - }, - { - "name": "off-inhand-left", - "directions": 4 + "name": "on-equipped-HELMET", + "directions": 4 }, { - "name": "off-inhand-right", - "directions": 4 - }, - { - "name": "on-equipped-HELMET", + "name": "off-equipped-HELMET", "directions": 4 }, { - "name": "on-inhand-left", + "name": "on-equipped-HELMET-vox", "directions": 4 }, { - "name": "on-inhand-right", - "directions": 4 + "name": "off-equipped-HELMET-vox", + "directions": 4 }, { "name": "on-equipped-HELMET-vulpkanin", diff --git a/Resources/Textures/Clothing/Head/Hardsuits/security.rsi/off-equipped-HELMET-vox.png b/Resources/Textures/Clothing/Head/Hardsuits/security.rsi/off-equipped-HELMET-vox.png new file mode 100644 index 0000000000..439b6c6ebc Binary files /dev/null and b/Resources/Textures/Clothing/Head/Hardsuits/security.rsi/off-equipped-HELMET-vox.png differ diff --git a/Resources/Textures/Clothing/Head/Hardsuits/security.rsi/off-inhand-left.png b/Resources/Textures/Clothing/Head/Hardsuits/security.rsi/off-inhand-left.png deleted file mode 100644 index 68329b89c1..0000000000 Binary files a/Resources/Textures/Clothing/Head/Hardsuits/security.rsi/off-inhand-left.png and /dev/null differ diff --git a/Resources/Textures/Clothing/Head/Hardsuits/security.rsi/off-inhand-right.png b/Resources/Textures/Clothing/Head/Hardsuits/security.rsi/off-inhand-right.png deleted file mode 100644 index 38cc8ca8a6..0000000000 Binary files a/Resources/Textures/Clothing/Head/Hardsuits/security.rsi/off-inhand-right.png and /dev/null differ diff --git a/Resources/Textures/Clothing/Head/Hardsuits/security.rsi/on-equipped-HELMET-vox.png b/Resources/Textures/Clothing/Head/Hardsuits/security.rsi/on-equipped-HELMET-vox.png new file mode 100644 index 0000000000..56bca1c618 Binary files /dev/null and b/Resources/Textures/Clothing/Head/Hardsuits/security.rsi/on-equipped-HELMET-vox.png differ diff --git a/Resources/Textures/Clothing/Head/Hardsuits/security.rsi/on-inhand-left.png b/Resources/Textures/Clothing/Head/Hardsuits/security.rsi/on-inhand-left.png deleted file mode 100644 index 742af4cd00..0000000000 Binary files a/Resources/Textures/Clothing/Head/Hardsuits/security.rsi/on-inhand-left.png and /dev/null differ diff --git a/Resources/Textures/Clothing/Head/Hardsuits/security.rsi/on-inhand-right.png b/Resources/Textures/Clothing/Head/Hardsuits/security.rsi/on-inhand-right.png deleted file mode 100644 index 79f70ac121..0000000000 Binary files a/Resources/Textures/Clothing/Head/Hardsuits/security.rsi/on-inhand-right.png and /dev/null differ diff --git a/Resources/Textures/Clothing/Head/Hardsuits/spatiohelm.rsi/equipped-head-light-vox.png b/Resources/Textures/Clothing/Head/Hardsuits/spatiohelm.rsi/equipped-head-light-vox.png new file mode 100644 index 0000000000..d0124f743b Binary files /dev/null and b/Resources/Textures/Clothing/Head/Hardsuits/spatiohelm.rsi/equipped-head-light-vox.png differ diff --git a/Resources/Textures/Clothing/Head/Hardsuits/spatiohelm.rsi/equipped-head-unshaded-vox.png b/Resources/Textures/Clothing/Head/Hardsuits/spatiohelm.rsi/equipped-head-unshaded-vox.png new file mode 100644 index 0000000000..4486bff562 Binary files /dev/null and b/Resources/Textures/Clothing/Head/Hardsuits/spatiohelm.rsi/equipped-head-unshaded-vox.png differ diff --git a/Resources/Textures/Clothing/Head/Hardsuits/spatiohelm.rsi/equipped-head-vox.png b/Resources/Textures/Clothing/Head/Hardsuits/spatiohelm.rsi/equipped-head-vox.png new file mode 100644 index 0000000000..80a31d544f Binary files /dev/null and b/Resources/Textures/Clothing/Head/Hardsuits/spatiohelm.rsi/equipped-head-vox.png differ diff --git a/Resources/Textures/Clothing/Head/Hardsuits/spatiohelm.rsi/inhand-left-light.png b/Resources/Textures/Clothing/Head/Hardsuits/spatiohelm.rsi/inhand-left-light.png deleted file mode 100644 index 7f1657d9e5..0000000000 Binary files a/Resources/Textures/Clothing/Head/Hardsuits/spatiohelm.rsi/inhand-left-light.png and /dev/null differ diff --git a/Resources/Textures/Clothing/Head/Hardsuits/spatiohelm.rsi/inhand-left-unshaded.png b/Resources/Textures/Clothing/Head/Hardsuits/spatiohelm.rsi/inhand-left-unshaded.png deleted file mode 100644 index fe450b8df1..0000000000 Binary files a/Resources/Textures/Clothing/Head/Hardsuits/spatiohelm.rsi/inhand-left-unshaded.png and /dev/null differ diff --git a/Resources/Textures/Clothing/Head/Hardsuits/spatiohelm.rsi/inhand-left.png b/Resources/Textures/Clothing/Head/Hardsuits/spatiohelm.rsi/inhand-left.png deleted file mode 100644 index 81cecd01c2..0000000000 Binary files a/Resources/Textures/Clothing/Head/Hardsuits/spatiohelm.rsi/inhand-left.png and /dev/null differ diff --git a/Resources/Textures/Clothing/Head/Hardsuits/spatiohelm.rsi/inhand-right-light.png b/Resources/Textures/Clothing/Head/Hardsuits/spatiohelm.rsi/inhand-right-light.png deleted file mode 100644 index 7749494c56..0000000000 Binary files a/Resources/Textures/Clothing/Head/Hardsuits/spatiohelm.rsi/inhand-right-light.png and /dev/null differ diff --git a/Resources/Textures/Clothing/Head/Hardsuits/spatiohelm.rsi/inhand-right-unshaded.png b/Resources/Textures/Clothing/Head/Hardsuits/spatiohelm.rsi/inhand-right-unshaded.png deleted file mode 100644 index be08f2c257..0000000000 Binary files a/Resources/Textures/Clothing/Head/Hardsuits/spatiohelm.rsi/inhand-right-unshaded.png and /dev/null differ diff --git a/Resources/Textures/Clothing/Head/Hardsuits/spatiohelm.rsi/inhand-right.png b/Resources/Textures/Clothing/Head/Hardsuits/spatiohelm.rsi/inhand-right.png deleted file mode 100644 index 2bbec0f04c..0000000000 Binary files a/Resources/Textures/Clothing/Head/Hardsuits/spatiohelm.rsi/inhand-right.png and /dev/null differ diff --git a/Resources/Textures/Clothing/Head/Hardsuits/spatiohelm.rsi/meta.json b/Resources/Textures/Clothing/Head/Hardsuits/spatiohelm.rsi/meta.json index 35a6a87bfd..64ba4dc5d6 100644 --- a/Resources/Textures/Clothing/Head/Hardsuits/spatiohelm.rsi/meta.json +++ b/Resources/Textures/Clothing/Head/Hardsuits/spatiohelm.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "Original by Emisse, modified by EmoGarbage404 | vulpkanin version made by Floofers", + "copyright": "Original by Emisse, modified by EmoGarbage404 | vulpkanin version made by Floofers. Vox states by Flareguy for SS14", "size": { "x": 32, @@ -33,27 +33,15 @@ "directions": 4 }, { - "name": "inhand-left", + "name": "equipped-head-unshaded-vox", "directions": 4 }, { - "name": "inhand-left-unshaded", + "name": "equipped-head-vox", "directions": 4 }, { - "name": "inhand-left-light", - "directions": 4 - }, - { - "name": "inhand-right", - "directions": 4 - }, - { - "name": "inhand-right-unshaded", - "directions": 4 - }, - { - "name": "inhand-right-light", + "name": "equipped-head-light-vox", "directions": 4 }, { @@ -61,4 +49,4 @@ "directions": 4 } ] -} \ No newline at end of file +} diff --git a/Resources/Textures/Clothing/Head/Hardsuits/syndicate.rsi/meta.json b/Resources/Textures/Clothing/Head/Hardsuits/syndicate.rsi/meta.json index e9de1ae57b..9b960ec32b 100644 --- a/Resources/Textures/Clothing/Head/Hardsuits/syndicate.rsi/meta.json +++ b/Resources/Textures/Clothing/Head/Hardsuits/syndicate.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e", + "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e. Vox states by Flareguy for Space Station 14", "size": { "x": 32, "y": 32 @@ -21,24 +21,16 @@ "name": "off-equipped-HELMET", "directions": 4 }, - { - "name": "off-inhand-left", - "directions": 4 - }, - { - "name": "off-inhand-right", - "directions": 4 - }, { "name": "on-equipped-HELMET", "directions": 4 }, { - "name": "on-inhand-left", + "name": "off-equipped-HELMET-vox", "directions": 4 }, { - "name": "on-inhand-right", + "name": "on-equipped-HELMET-vox", "directions": 4 } ] diff --git a/Resources/Textures/Clothing/Head/Hardsuits/syndicate.rsi/off-equipped-HELMET-vox.png b/Resources/Textures/Clothing/Head/Hardsuits/syndicate.rsi/off-equipped-HELMET-vox.png new file mode 100644 index 0000000000..eb2027c5fa Binary files /dev/null and b/Resources/Textures/Clothing/Head/Hardsuits/syndicate.rsi/off-equipped-HELMET-vox.png differ diff --git a/Resources/Textures/Clothing/Head/Hardsuits/syndicate.rsi/off-inhand-left.png b/Resources/Textures/Clothing/Head/Hardsuits/syndicate.rsi/off-inhand-left.png deleted file mode 100644 index 1b108753b3..0000000000 Binary files a/Resources/Textures/Clothing/Head/Hardsuits/syndicate.rsi/off-inhand-left.png and /dev/null differ diff --git a/Resources/Textures/Clothing/Head/Hardsuits/syndicate.rsi/off-inhand-right.png b/Resources/Textures/Clothing/Head/Hardsuits/syndicate.rsi/off-inhand-right.png deleted file mode 100644 index dc0500af77..0000000000 Binary files a/Resources/Textures/Clothing/Head/Hardsuits/syndicate.rsi/off-inhand-right.png and /dev/null differ diff --git a/Resources/Textures/Clothing/Head/Hardsuits/syndicate.rsi/on-equipped-HELMET-vox.png b/Resources/Textures/Clothing/Head/Hardsuits/syndicate.rsi/on-equipped-HELMET-vox.png new file mode 100644 index 0000000000..8804afa3d8 Binary files /dev/null and b/Resources/Textures/Clothing/Head/Hardsuits/syndicate.rsi/on-equipped-HELMET-vox.png differ diff --git a/Resources/Textures/Clothing/Head/Hardsuits/syndicate.rsi/on-inhand-left.png b/Resources/Textures/Clothing/Head/Hardsuits/syndicate.rsi/on-inhand-left.png deleted file mode 100644 index c1350c8242..0000000000 Binary files a/Resources/Textures/Clothing/Head/Hardsuits/syndicate.rsi/on-inhand-left.png and /dev/null differ diff --git a/Resources/Textures/Clothing/Head/Hardsuits/syndicate.rsi/on-inhand-right.png b/Resources/Textures/Clothing/Head/Hardsuits/syndicate.rsi/on-inhand-right.png deleted file mode 100644 index db67f97b6f..0000000000 Binary files a/Resources/Textures/Clothing/Head/Hardsuits/syndicate.rsi/on-inhand-right.png and /dev/null differ diff --git a/Resources/Textures/Clothing/Head/Hardsuits/syndiecommander.rsi/meta.json b/Resources/Textures/Clothing/Head/Hardsuits/syndiecommander.rsi/meta.json index 038aabe605..6999f12991 100644 --- a/Resources/Textures/Clothing/Head/Hardsuits/syndiecommander.rsi/meta.json +++ b/Resources/Textures/Clothing/Head/Hardsuits/syndiecommander.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "Taken from vg at commit https://github.com/vgstation-coders/vgstation13/commit/a16e41020a93479e9a7e2af343b1b74f7f2a61bd", + "copyright": "Taken from vg at commit https://github.com/vgstation-coders/vgstation13/commit/a16e41020a93479e9a7e2af343b1b74f7f2a61bd. Vox states by Flareguy for Space Station 14", "size": { "x": 32, @@ -18,25 +18,17 @@ "name": "off-equipped-HELMET", "directions": 4 }, - { - "name": "off-inhand-left", - "directions": 4 - }, - { - "name": "off-inhand-right", - "directions": 4 - }, { "name": "on-equipped-HELMET", "directions": 4 }, { - "name": "on-inhand-left", + "name": "off-equipped-HELMET-vox", "directions": 4 }, { - "name": "on-inhand-right", + "name": "on-equipped-HELMET-vox", "directions": 4 } ] -} \ No newline at end of file +} diff --git a/Resources/Textures/Clothing/Head/Hardsuits/syndiecommander.rsi/off-equipped-HELMET-vox.png b/Resources/Textures/Clothing/Head/Hardsuits/syndiecommander.rsi/off-equipped-HELMET-vox.png new file mode 100644 index 0000000000..5276e3f681 Binary files /dev/null and b/Resources/Textures/Clothing/Head/Hardsuits/syndiecommander.rsi/off-equipped-HELMET-vox.png differ diff --git a/Resources/Textures/Clothing/Head/Hardsuits/syndiecommander.rsi/off-inhand-left.png b/Resources/Textures/Clothing/Head/Hardsuits/syndiecommander.rsi/off-inhand-left.png deleted file mode 100644 index 79a96cd711..0000000000 Binary files a/Resources/Textures/Clothing/Head/Hardsuits/syndiecommander.rsi/off-inhand-left.png and /dev/null differ diff --git a/Resources/Textures/Clothing/Head/Hardsuits/syndiecommander.rsi/off-inhand-right.png b/Resources/Textures/Clothing/Head/Hardsuits/syndiecommander.rsi/off-inhand-right.png deleted file mode 100644 index 0c7b0caddf..0000000000 Binary files a/Resources/Textures/Clothing/Head/Hardsuits/syndiecommander.rsi/off-inhand-right.png and /dev/null differ diff --git a/Resources/Textures/Clothing/Head/Hardsuits/syndiecommander.rsi/on-equipped-HELMET-vox.png b/Resources/Textures/Clothing/Head/Hardsuits/syndiecommander.rsi/on-equipped-HELMET-vox.png new file mode 100644 index 0000000000..65069f91c7 Binary files /dev/null and b/Resources/Textures/Clothing/Head/Hardsuits/syndiecommander.rsi/on-equipped-HELMET-vox.png differ diff --git a/Resources/Textures/Clothing/Head/Hardsuits/syndiecommander.rsi/on-inhand-left.png b/Resources/Textures/Clothing/Head/Hardsuits/syndiecommander.rsi/on-inhand-left.png deleted file mode 100644 index 505808fc9d..0000000000 Binary files a/Resources/Textures/Clothing/Head/Hardsuits/syndiecommander.rsi/on-inhand-left.png and /dev/null differ diff --git a/Resources/Textures/Clothing/Head/Hardsuits/syndiecommander.rsi/on-inhand-right.png b/Resources/Textures/Clothing/Head/Hardsuits/syndiecommander.rsi/on-inhand-right.png deleted file mode 100644 index 862f6294fb..0000000000 Binary files a/Resources/Textures/Clothing/Head/Hardsuits/syndiecommander.rsi/on-inhand-right.png and /dev/null differ diff --git a/Resources/Textures/Clothing/Head/Hardsuits/syndieelite.rsi/meta.json b/Resources/Textures/Clothing/Head/Hardsuits/syndieelite.rsi/meta.json index 038aabe605..5c7932bb28 100644 --- a/Resources/Textures/Clothing/Head/Hardsuits/syndieelite.rsi/meta.json +++ b/Resources/Textures/Clothing/Head/Hardsuits/syndieelite.rsi/meta.json @@ -1,42 +1,33 @@ { - "version": 1, - "license": "CC-BY-SA-3.0", - "copyright": "Taken from vg at commit https://github.com/vgstation-coders/vgstation13/commit/a16e41020a93479e9a7e2af343b1b74f7f2a61bd", - - "size": { - "x": 32, - "y": 32 - }, - "states": [ - { - "name": "icon" + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from vg at commit https://github.com/vgstation-coders/vgstation13/commit/a16e41020a93479e9a7e2af343b1b74f7f2a61bd. Vox states by Flareguy for Space Station 14", + "size": { + "x": 32, + "y": 32 }, - { - "name": "icon-flash" - }, - { - "name": "off-equipped-HELMET", - "directions": 4 - }, - { - "name": "off-inhand-left", - "directions": 4 - }, - { - "name": "off-inhand-right", - "directions": 4 - }, - { - "name": "on-equipped-HELMET", - "directions": 4 - }, - { - "name": "on-inhand-left", - "directions": 4 - }, - { - "name": "on-inhand-right", - "directions": 4 - } - ] + "states": [ + { + "name": "icon" + }, + { + "name": "icon-flash" + }, + { + "name": "off-equipped-HELMET", + "directions": 4 + }, + { + "name": "on-equipped-HELMET", + "directions": 4 + }, + { + "name": "off-equipped-HELMET-vox", + "directions": 4 + }, + { + "name": "on-equipped-HELMET-vox", + "directions": 4 + } + ] } \ No newline at end of file diff --git a/Resources/Textures/Clothing/Head/Hardsuits/syndieelite.rsi/off-equipped-HELMET-vox.png b/Resources/Textures/Clothing/Head/Hardsuits/syndieelite.rsi/off-equipped-HELMET-vox.png new file mode 100644 index 0000000000..4f4b2f0f77 Binary files /dev/null and b/Resources/Textures/Clothing/Head/Hardsuits/syndieelite.rsi/off-equipped-HELMET-vox.png differ diff --git a/Resources/Textures/Clothing/Head/Hardsuits/syndieelite.rsi/off-inhand-left.png b/Resources/Textures/Clothing/Head/Hardsuits/syndieelite.rsi/off-inhand-left.png deleted file mode 100644 index 22a8dd14b1..0000000000 Binary files a/Resources/Textures/Clothing/Head/Hardsuits/syndieelite.rsi/off-inhand-left.png and /dev/null differ diff --git a/Resources/Textures/Clothing/Head/Hardsuits/syndieelite.rsi/off-inhand-right.png b/Resources/Textures/Clothing/Head/Hardsuits/syndieelite.rsi/off-inhand-right.png deleted file mode 100644 index 71572c0ffd..0000000000 Binary files a/Resources/Textures/Clothing/Head/Hardsuits/syndieelite.rsi/off-inhand-right.png and /dev/null differ diff --git a/Resources/Textures/Clothing/Head/Hardsuits/syndieelite.rsi/on-equipped-HELMET-vox.png b/Resources/Textures/Clothing/Head/Hardsuits/syndieelite.rsi/on-equipped-HELMET-vox.png new file mode 100644 index 0000000000..bf7243ed32 Binary files /dev/null and b/Resources/Textures/Clothing/Head/Hardsuits/syndieelite.rsi/on-equipped-HELMET-vox.png differ diff --git a/Resources/Textures/Clothing/Head/Hardsuits/syndieelite.rsi/on-inhand-left.png b/Resources/Textures/Clothing/Head/Hardsuits/syndieelite.rsi/on-inhand-left.png deleted file mode 100644 index 5a40993d72..0000000000 Binary files a/Resources/Textures/Clothing/Head/Hardsuits/syndieelite.rsi/on-inhand-left.png and /dev/null differ diff --git a/Resources/Textures/Clothing/Head/Hardsuits/syndieelite.rsi/on-inhand-right.png b/Resources/Textures/Clothing/Head/Hardsuits/syndieelite.rsi/on-inhand-right.png deleted file mode 100644 index 27a27d1e8e..0000000000 Binary files a/Resources/Textures/Clothing/Head/Hardsuits/syndieelite.rsi/on-inhand-right.png and /dev/null differ diff --git a/Resources/Textures/Clothing/Head/Hardsuits/syndiemedic.rsi/meta.json b/Resources/Textures/Clothing/Head/Hardsuits/syndiemedic.rsi/meta.json index b69addc476..9adc3b7cef 100644 --- a/Resources/Textures/Clothing/Head/Hardsuits/syndiemedic.rsi/meta.json +++ b/Resources/Textures/Clothing/Head/Hardsuits/syndiemedic.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "Based on tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e, modified by EmoGarbage404 (github)", + "copyright": "Based on tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e, modified by EmoGarbage404 (github). Vox states by Flareguy for Space Station 14", "size": { "x": 32, "y": 32 @@ -17,24 +17,16 @@ "name": "off-equipped-HELMET", "directions": 4 }, - { - "name": "off-inhand-left", - "directions": 4 - }, - { - "name": "off-inhand-right", - "directions": 4 - }, { "name": "on-equipped-HELMET", "directions": 4 }, { - "name": "on-inhand-left", + "name": "off-equipped-HELMET-vox", "directions": 4 }, { - "name": "on-inhand-right", + "name": "on-equipped-HELMET-vox", "directions": 4 } ] diff --git a/Resources/Textures/Clothing/Head/Hardsuits/syndiemedic.rsi/off-equipped-HELMET-vox.png b/Resources/Textures/Clothing/Head/Hardsuits/syndiemedic.rsi/off-equipped-HELMET-vox.png new file mode 100644 index 0000000000..4d5f2cf4b7 Binary files /dev/null and b/Resources/Textures/Clothing/Head/Hardsuits/syndiemedic.rsi/off-equipped-HELMET-vox.png differ diff --git a/Resources/Textures/Clothing/Head/Hardsuits/syndiemedic.rsi/off-inhand-left.png b/Resources/Textures/Clothing/Head/Hardsuits/syndiemedic.rsi/off-inhand-left.png deleted file mode 100644 index 97f21fd350..0000000000 Binary files a/Resources/Textures/Clothing/Head/Hardsuits/syndiemedic.rsi/off-inhand-left.png and /dev/null differ diff --git a/Resources/Textures/Clothing/Head/Hardsuits/syndiemedic.rsi/off-inhand-right.png b/Resources/Textures/Clothing/Head/Hardsuits/syndiemedic.rsi/off-inhand-right.png deleted file mode 100644 index 0e950a6674..0000000000 Binary files a/Resources/Textures/Clothing/Head/Hardsuits/syndiemedic.rsi/off-inhand-right.png and /dev/null differ diff --git a/Resources/Textures/Clothing/Head/Hardsuits/syndiemedic.rsi/on-equipped-HELMET-vox.png b/Resources/Textures/Clothing/Head/Hardsuits/syndiemedic.rsi/on-equipped-HELMET-vox.png new file mode 100644 index 0000000000..8c072609c9 Binary files /dev/null and b/Resources/Textures/Clothing/Head/Hardsuits/syndiemedic.rsi/on-equipped-HELMET-vox.png differ diff --git a/Resources/Textures/Clothing/Head/Hardsuits/syndiemedic.rsi/on-inhand-left.png b/Resources/Textures/Clothing/Head/Hardsuits/syndiemedic.rsi/on-inhand-left.png deleted file mode 100644 index 0e174c04c3..0000000000 Binary files a/Resources/Textures/Clothing/Head/Hardsuits/syndiemedic.rsi/on-inhand-left.png and /dev/null differ diff --git a/Resources/Textures/Clothing/Head/Hardsuits/syndiemedic.rsi/on-inhand-right.png b/Resources/Textures/Clothing/Head/Hardsuits/syndiemedic.rsi/on-inhand-right.png deleted file mode 100644 index b049400348..0000000000 Binary files a/Resources/Textures/Clothing/Head/Hardsuits/syndiemedic.rsi/on-inhand-right.png and /dev/null differ diff --git a/Resources/Textures/Clothing/Head/Hardsuits/wizard.rsi/meta.json b/Resources/Textures/Clothing/Head/Hardsuits/wizard.rsi/meta.json index d168108fdf..b72a96092e 100644 --- a/Resources/Textures/Clothing/Head/Hardsuits/wizard.rsi/meta.json +++ b/Resources/Textures/Clothing/Head/Hardsuits/wizard.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e | vulpkanin version taken from Paradise station at https://github.com/ParadiseSS13/Paradise/commit/f0fa4e1fd809482fbc104a310aa34cebf7df157d", + "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e. Vox states by Flareguy for Space Station 14 | vulpkanin version taken from Paradise station at https://github.com/ParadiseSS13/Paradise/commit/f0fa4e1fd809482fbc104a310aa34cebf7df157d", "size": { "x": 32, "y": 32 @@ -14,28 +14,20 @@ "name": "icon-flash" }, { - "name": "off-equipped-HELMET", - "directions": 4 - }, - { - "name": "off-inhand-left", - "directions": 4 + "name": "on-equipped-HELMET", + "directions": 4 }, { - "name": "off-inhand-right", - "directions": 4 - }, - { - "name": "on-equipped-HELMET", + "name": "off-equipped-HELMET", "directions": 4 }, { - "name": "on-inhand-left", + "name": "on-equipped-HELMET-vox", "directions": 4 }, { - "name": "on-inhand-right", - "directions": 4 + "name": "off-equipped-HELMET-vox", + "directions": 4 }, { "name": "on-equipped-HELMET-vulpkanin", diff --git a/Resources/Textures/Clothing/Head/Hardsuits/wizard.rsi/off-equipped-HELMET-vox.png b/Resources/Textures/Clothing/Head/Hardsuits/wizard.rsi/off-equipped-HELMET-vox.png new file mode 100644 index 0000000000..647d0e76c1 Binary files /dev/null and b/Resources/Textures/Clothing/Head/Hardsuits/wizard.rsi/off-equipped-HELMET-vox.png differ diff --git a/Resources/Textures/Clothing/Head/Hardsuits/wizard.rsi/off-inhand-left.png b/Resources/Textures/Clothing/Head/Hardsuits/wizard.rsi/off-inhand-left.png deleted file mode 100644 index 90b7c2574a..0000000000 Binary files a/Resources/Textures/Clothing/Head/Hardsuits/wizard.rsi/off-inhand-left.png and /dev/null differ diff --git a/Resources/Textures/Clothing/Head/Hardsuits/wizard.rsi/off-inhand-right.png b/Resources/Textures/Clothing/Head/Hardsuits/wizard.rsi/off-inhand-right.png deleted file mode 100644 index de647331f9..0000000000 Binary files a/Resources/Textures/Clothing/Head/Hardsuits/wizard.rsi/off-inhand-right.png and /dev/null differ diff --git a/Resources/Textures/Clothing/Head/Hardsuits/wizard.rsi/on-equipped-HELMET-vox.png b/Resources/Textures/Clothing/Head/Hardsuits/wizard.rsi/on-equipped-HELMET-vox.png new file mode 100644 index 0000000000..a0345048e8 Binary files /dev/null and b/Resources/Textures/Clothing/Head/Hardsuits/wizard.rsi/on-equipped-HELMET-vox.png differ diff --git a/Resources/Textures/Clothing/Head/Hardsuits/wizard.rsi/on-inhand-left.png b/Resources/Textures/Clothing/Head/Hardsuits/wizard.rsi/on-inhand-left.png deleted file mode 100644 index fc11467e8f..0000000000 Binary files a/Resources/Textures/Clothing/Head/Hardsuits/wizard.rsi/on-inhand-left.png and /dev/null differ diff --git a/Resources/Textures/Clothing/Head/Hardsuits/wizard.rsi/on-inhand-right.png b/Resources/Textures/Clothing/Head/Hardsuits/wizard.rsi/on-inhand-right.png deleted file mode 100644 index 131989b592..0000000000 Binary files a/Resources/Textures/Clothing/Head/Hardsuits/wizard.rsi/on-inhand-right.png and /dev/null differ diff --git a/Resources/Textures/Clothing/Head/Hats/gladiator.rsi/equipped-HELMET-vox.png b/Resources/Textures/Clothing/Head/Hats/gladiator.rsi/equipped-HELMET-vox.png new file mode 100644 index 0000000000..b432655c5a Binary files /dev/null and b/Resources/Textures/Clothing/Head/Hats/gladiator.rsi/equipped-HELMET-vox.png differ diff --git a/Resources/Textures/Clothing/Head/Hats/gladiator.rsi/meta.json b/Resources/Textures/Clothing/Head/Hats/gladiator.rsi/meta.json index bbb0aac664..057d0b0ab2 100644 --- a/Resources/Textures/Clothing/Head/Hats/gladiator.rsi/meta.json +++ b/Resources/Textures/Clothing/Head/Hats/gladiator.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e", + "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e. equipped-HELMET-vox state taken from /vg/station at commit https://github.com/vgstation-coders/vgstation13/commit/31d6576ba8102135d058ef49c3cb6ecbe8db8a79", "size": { "x": 32, "y": 32 @@ -20,7 +20,11 @@ }, { "name": "inhand-right", - "direction": 4 + "directions": 4 + }, + { + "name": "equipped-HELMET-vox", + "directions": 4 } ] } diff --git a/Resources/Textures/Clothing/Head/Hats/paper.rsi/equipped-HELMET-vox.png b/Resources/Textures/Clothing/Head/Hats/paper.rsi/equipped-HELMET-vox.png new file mode 100644 index 0000000000..5f5c3376d7 Binary files /dev/null and b/Resources/Textures/Clothing/Head/Hats/paper.rsi/equipped-HELMET-vox.png differ diff --git a/Resources/Textures/Clothing/Head/Hats/paper.rsi/meta.json b/Resources/Textures/Clothing/Head/Hats/paper.rsi/meta.json index a470e00944..057d0b0ab2 100644 --- a/Resources/Textures/Clothing/Head/Hats/paper.rsi/meta.json +++ b/Resources/Textures/Clothing/Head/Hats/paper.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e", + "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e. equipped-HELMET-vox state taken from /vg/station at commit https://github.com/vgstation-coders/vgstation13/commit/31d6576ba8102135d058ef49c3cb6ecbe8db8a79", "size": { "x": 32, "y": 32 @@ -21,6 +21,10 @@ { "name": "inhand-right", "directions": 4 + }, + { + "name": "equipped-HELMET-vox", + "directions": 4 } ] } diff --git a/Resources/Textures/Clothing/Head/Hats/surgcap_blue.rsi/equipped-HELMET-vox.png b/Resources/Textures/Clothing/Head/Hats/surgcap_blue.rsi/equipped-HELMET-vox.png new file mode 100644 index 0000000000..a51c268041 Binary files /dev/null and b/Resources/Textures/Clothing/Head/Hats/surgcap_blue.rsi/equipped-HELMET-vox.png differ diff --git a/Resources/Textures/Clothing/Head/Hats/surgcap_blue.rsi/meta.json b/Resources/Textures/Clothing/Head/Hats/surgcap_blue.rsi/meta.json index ade65863af..e099085bde 100644 --- a/Resources/Textures/Clothing/Head/Hats/surgcap_blue.rsi/meta.json +++ b/Resources/Textures/Clothing/Head/Hats/surgcap_blue.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e", + "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e. equipped-HELMET-vox state taken from /vg/station at commit https://github.com/vgstation-coders/vgstation13/commit/31d6576ba8102135d058ef49c3cb6ecbe8db8a79", "size": { "x": 32, "y": 32 @@ -25,6 +25,10 @@ { "name": "inhand-right", "directions": 4 + }, + { + "name": "equipped-HELMET-vox", + "directions": 4 } ] } diff --git a/Resources/Textures/Clothing/Head/Hats/surgcap_green.rsi/equipped-HELMET-vox.png b/Resources/Textures/Clothing/Head/Hats/surgcap_green.rsi/equipped-HELMET-vox.png new file mode 100644 index 0000000000..81601c6c2b Binary files /dev/null and b/Resources/Textures/Clothing/Head/Hats/surgcap_green.rsi/equipped-HELMET-vox.png differ diff --git a/Resources/Textures/Clothing/Head/Hats/surgcap_green.rsi/meta.json b/Resources/Textures/Clothing/Head/Hats/surgcap_green.rsi/meta.json index a470e00944..057d0b0ab2 100644 --- a/Resources/Textures/Clothing/Head/Hats/surgcap_green.rsi/meta.json +++ b/Resources/Textures/Clothing/Head/Hats/surgcap_green.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e", + "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e. equipped-HELMET-vox state taken from /vg/station at commit https://github.com/vgstation-coders/vgstation13/commit/31d6576ba8102135d058ef49c3cb6ecbe8db8a79", "size": { "x": 32, "y": 32 @@ -21,6 +21,10 @@ { "name": "inhand-right", "directions": 4 + }, + { + "name": "equipped-HELMET-vox", + "directions": 4 } ] } diff --git a/Resources/Textures/Clothing/Head/Hats/surgcap_purple.rsi/equipped-HELMET-vox.png b/Resources/Textures/Clothing/Head/Hats/surgcap_purple.rsi/equipped-HELMET-vox.png new file mode 100644 index 0000000000..24ea1365cd Binary files /dev/null and b/Resources/Textures/Clothing/Head/Hats/surgcap_purple.rsi/equipped-HELMET-vox.png differ diff --git a/Resources/Textures/Clothing/Head/Hats/surgcap_purple.rsi/meta.json b/Resources/Textures/Clothing/Head/Hats/surgcap_purple.rsi/meta.json index a470e00944..057d0b0ab2 100644 --- a/Resources/Textures/Clothing/Head/Hats/surgcap_purple.rsi/meta.json +++ b/Resources/Textures/Clothing/Head/Hats/surgcap_purple.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e", + "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e. equipped-HELMET-vox state taken from /vg/station at commit https://github.com/vgstation-coders/vgstation13/commit/31d6576ba8102135d058ef49c3cb6ecbe8db8a79", "size": { "x": 32, "y": 32 @@ -21,6 +21,10 @@ { "name": "inhand-right", "directions": 4 + }, + { + "name": "equipped-HELMET-vox", + "directions": 4 } ] } diff --git a/Resources/Textures/Clothing/Head/Helmets/atmos_firehelmet.rsi/meta.json b/Resources/Textures/Clothing/Head/Helmets/atmos_firehelmet.rsi/meta.json index 26d3341e24..f2d8747c03 100644 --- a/Resources/Textures/Clothing/Head/Helmets/atmos_firehelmet.rsi/meta.json +++ b/Resources/Textures/Clothing/Head/Helmets/atmos_firehelmet.rsi/meta.json @@ -1,41 +1,49 @@ -{ - "version": 1, - "license": "CC-BY-SA-3.0", - "copyright": "Taken from tgstation https://github.com/tgstation/tgstation/blob/master/icons/mob/clothing/head.dmi", - "size": { - "x": 32, - "y": 32 - }, - "states": [ - { - "name": "icon" - }, - { - "name": "icon-flash" - }, - { - "name": "off-equipped-HELMET", - "directions": 4 - }, - { - "name": "off-inhand-left", - "directions": 4 - }, - { - "name": "off-inhand-right", - "directions": 4 - }, - { - "name": "on-equipped-HELMET", - "directions": 4 - }, - { - "name": "on-inhand-left", - "directions": 4 - }, - { - "name": "on-inhand-right", - "directions": 4 - } - ] -} +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from tgstation https://github.com/tgstation/tgstation/blob/master/icons/mob/clothing/head.dmi. Vox states taken from paradise at https://github.com/ParadiseSS13/Paradise/blob/765461f14aa4dd4f1edc33242c667843134678b5/icons/mob/clothing/species/vox/head.dmi", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "icon-flash" + }, + { + "name": "off-equipped-HELMET", + "directions": 4 + }, + { + "name": "off-equipped-HELMET-vox", + "directions": 4 + }, + { + "name": "off-inhand-left", + "directions": 4 + }, + { + "name": "off-inhand-right", + "directions": 4 + }, + { + "name": "on-equipped-HELMET", + "directions": 4 + }, + { + "name": "on-equipped-HELMET-vox", + "directions": 4 + }, + { + "name": "on-inhand-left", + "directions": 4 + }, + { + "name": "on-inhand-right", + "directions": 4 + } + ] +} \ No newline at end of file diff --git a/Resources/Textures/Clothing/Head/Helmets/atmos_firehelmet.rsi/off-equipped-HELMET-vox.png b/Resources/Textures/Clothing/Head/Helmets/atmos_firehelmet.rsi/off-equipped-HELMET-vox.png new file mode 100644 index 0000000000..ea6e7edce8 Binary files /dev/null and b/Resources/Textures/Clothing/Head/Helmets/atmos_firehelmet.rsi/off-equipped-HELMET-vox.png differ diff --git a/Resources/Textures/Clothing/Head/Helmets/atmos_firehelmet.rsi/on-equipped-HELMET-vox.png b/Resources/Textures/Clothing/Head/Helmets/atmos_firehelmet.rsi/on-equipped-HELMET-vox.png new file mode 100644 index 0000000000..301ff00e34 Binary files /dev/null and b/Resources/Textures/Clothing/Head/Helmets/atmos_firehelmet.rsi/on-equipped-HELMET-vox.png differ diff --git a/Resources/Textures/Clothing/Head/Helmets/bombsuit.rsi/equipped-HELMET-vox.png b/Resources/Textures/Clothing/Head/Helmets/bombsuit.rsi/equipped-HELMET-vox.png new file mode 100644 index 0000000000..58e8aa9e70 Binary files /dev/null and b/Resources/Textures/Clothing/Head/Helmets/bombsuit.rsi/equipped-HELMET-vox.png differ diff --git a/Resources/Textures/Clothing/Head/Helmets/bombsuit.rsi/meta.json b/Resources/Textures/Clothing/Head/Helmets/bombsuit.rsi/meta.json index e0ee93d642..e55d1eb469 100644 --- a/Resources/Textures/Clothing/Head/Helmets/bombsuit.rsi/meta.json +++ b/Resources/Textures/Clothing/Head/Helmets/bombsuit.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "Taken from cev-eris at commit https://github.com/discordia-space/CEV-Eris/commit/a75dee2e6d236612dbd403dd5f8687ca930c01f1", + "copyright": "Taken from cev-eris at commit https://github.com/discordia-space/CEV-Eris/commit/a75dee2e6d236612dbd403dd5f8687ca930c01f1. Vox state by Flareguy for SS14", "size": { "x": 32, "y": 32 @@ -14,6 +14,10 @@ "name": "equipped-HELMET", "directions": 4 }, + { + "name": "equipped-HELMET-vox", + "directions": 4 + }, { "name": "inhand-left", "directions": 4 diff --git a/Resources/Textures/Clothing/Head/Helmets/eva.rsi/equipped-HELMET-vox.png b/Resources/Textures/Clothing/Head/Helmets/eva.rsi/equipped-HELMET-vox.png new file mode 100644 index 0000000000..50d4ec39d5 Binary files /dev/null and b/Resources/Textures/Clothing/Head/Helmets/eva.rsi/equipped-HELMET-vox.png differ diff --git a/Resources/Textures/Clothing/Head/Helmets/eva.rsi/meta.json b/Resources/Textures/Clothing/Head/Helmets/eva.rsi/meta.json index 3c406ff57c..c7a2236b61 100644 --- a/Resources/Textures/Clothing/Head/Helmets/eva.rsi/meta.json +++ b/Resources/Textures/Clothing/Head/Helmets/eva.rsi/meta.json @@ -14,6 +14,10 @@ "name": "equipped-HELMET", "directions": 4 }, + { + "name": "equipped-HELMET-vox", + "directions": 4 + }, { "name": "inhand-left", "directions": 4 diff --git a/Resources/Textures/Clothing/Head/Helmets/eva_large.rsi/equipped-HELMET-vox.png b/Resources/Textures/Clothing/Head/Helmets/eva_large.rsi/equipped-HELMET-vox.png new file mode 100644 index 0000000000..b5f224b98a Binary files /dev/null and b/Resources/Textures/Clothing/Head/Helmets/eva_large.rsi/equipped-HELMET-vox.png differ diff --git a/Resources/Textures/Clothing/Head/Helmets/eva_large.rsi/equipped-HELMET.png b/Resources/Textures/Clothing/Head/Helmets/eva_large.rsi/equipped-HELMET.png index c64f69b0d8..f6f0e58c6b 100644 Binary files a/Resources/Textures/Clothing/Head/Helmets/eva_large.rsi/equipped-HELMET.png and b/Resources/Textures/Clothing/Head/Helmets/eva_large.rsi/equipped-HELMET.png differ diff --git a/Resources/Textures/Clothing/Head/Helmets/eva_large.rsi/meta.json b/Resources/Textures/Clothing/Head/Helmets/eva_large.rsi/meta.json index 3c406ff57c..c7a2236b61 100644 --- a/Resources/Textures/Clothing/Head/Helmets/eva_large.rsi/meta.json +++ b/Resources/Textures/Clothing/Head/Helmets/eva_large.rsi/meta.json @@ -14,6 +14,10 @@ "name": "equipped-HELMET", "directions": 4 }, + { + "name": "equipped-HELMET-vox", + "directions": 4 + }, { "name": "inhand-left", "directions": 4 diff --git a/Resources/Textures/Clothing/Head/Helmets/eva_syndicate.rsi/equipped-HELMET-vox.png b/Resources/Textures/Clothing/Head/Helmets/eva_syndicate.rsi/equipped-HELMET-vox.png new file mode 100644 index 0000000000..62ff233af1 Binary files /dev/null and b/Resources/Textures/Clothing/Head/Helmets/eva_syndicate.rsi/equipped-HELMET-vox.png differ diff --git a/Resources/Textures/Clothing/Head/Helmets/eva_syndicate.rsi/meta.json b/Resources/Textures/Clothing/Head/Helmets/eva_syndicate.rsi/meta.json index 3c406ff57c..c7a2236b61 100644 --- a/Resources/Textures/Clothing/Head/Helmets/eva_syndicate.rsi/meta.json +++ b/Resources/Textures/Clothing/Head/Helmets/eva_syndicate.rsi/meta.json @@ -14,6 +14,10 @@ "name": "equipped-HELMET", "directions": 4 }, + { + "name": "equipped-HELMET-vox", + "directions": 4 + }, { "name": "inhand-left", "directions": 4 diff --git a/Resources/Textures/Clothing/Head/Helmets/firehelmet.rsi/meta.json b/Resources/Textures/Clothing/Head/Helmets/firehelmet.rsi/meta.json index 9530d0f7aa..014284471a 100644 --- a/Resources/Textures/Clothing/Head/Helmets/firehelmet.rsi/meta.json +++ b/Resources/Textures/Clothing/Head/Helmets/firehelmet.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "Taken from paradise station and modified by Peptide90 https://github.com/ParadiseSS13/Paradise/commit/46bb8d448f52278a8f027b3f5bdf061e39d06140", + "copyright": "Taken from paradise station and modified by Peptide90 https://github.com/ParadiseSS13/Paradise/commit/46bb8d448f52278a8f027b3f5bdf061e39d06140. Vox states by Flareguy for SS14", "size": { "x": 32, "y": 32 @@ -17,6 +17,10 @@ "name": "off-equipped-HELMET", "directions": 4 }, + { + "name": "off-equipped-HELMET-vox", + "directions": 4 + }, { "name": "off-inhand-left", "directions": 4 @@ -29,6 +33,10 @@ "name": "on-equipped-HELMET", "directions": 4 }, + { + "name": "on-equipped-HELMET-vox", + "directions": 4 + }, { "name": "on-inhand-left", "directions": 4 diff --git a/Resources/Textures/Clothing/Head/Helmets/firehelmet.rsi/off-equipped-HELMET-vox.png b/Resources/Textures/Clothing/Head/Helmets/firehelmet.rsi/off-equipped-HELMET-vox.png new file mode 100644 index 0000000000..ad7bbad447 Binary files /dev/null and b/Resources/Textures/Clothing/Head/Helmets/firehelmet.rsi/off-equipped-HELMET-vox.png differ diff --git a/Resources/Textures/Clothing/Head/Helmets/firehelmet.rsi/on-equipped-HELMET-vox.png b/Resources/Textures/Clothing/Head/Helmets/firehelmet.rsi/on-equipped-HELMET-vox.png new file mode 100644 index 0000000000..2ebb820f60 Binary files /dev/null and b/Resources/Textures/Clothing/Head/Helmets/firehelmet.rsi/on-equipped-HELMET-vox.png differ diff --git a/Resources/Textures/Clothing/Head/Helmets/ihvoid.rsi/equipped-HELMET-vox.png b/Resources/Textures/Clothing/Head/Helmets/ihvoid.rsi/equipped-HELMET-vox.png new file mode 100644 index 0000000000..522a2eb923 Binary files /dev/null and b/Resources/Textures/Clothing/Head/Helmets/ihvoid.rsi/equipped-HELMET-vox.png differ diff --git a/Resources/Textures/Clothing/Head/Helmets/ihvoid.rsi/meta.json b/Resources/Textures/Clothing/Head/Helmets/ihvoid.rsi/meta.json index 4427c7fb51..69b03ad731 100644 --- a/Resources/Textures/Clothing/Head/Helmets/ihvoid.rsi/meta.json +++ b/Resources/Textures/Clothing/Head/Helmets/ihvoid.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e | vulpkanin version taken from Paradise station at https://github.com/ParadiseSS13/Paradise/commit/f0fa4e1fd809482fbc104a310aa34cebf7df157d", + "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e. Vox state by Flareguy for Space Station 14 | vulpkanin version taken from Paradise station at https://github.com/ParadiseSS13/Paradise/commit/f0fa4e1fd809482fbc104a310aa34cebf7df157d", "size": { "x": 32, "y": 32 @@ -14,6 +14,10 @@ "name": "equipped-HELMET", "directions": 4 }, + { + "name": "equipped-HELMET-vox", + "directions": 4 + }, { "name": "inhand-left", "directions": 4 diff --git a/Resources/Textures/Clothing/Head/Helmets/light_riot.rsi/equipped-HELMET-vox.png b/Resources/Textures/Clothing/Head/Helmets/light_riot.rsi/equipped-HELMET-vox.png new file mode 100644 index 0000000000..952b32f3a1 Binary files /dev/null and b/Resources/Textures/Clothing/Head/Helmets/light_riot.rsi/equipped-HELMET-vox.png differ diff --git a/Resources/Textures/Clothing/Head/Helmets/light_riot.rsi/meta.json b/Resources/Textures/Clothing/Head/Helmets/light_riot.rsi/meta.json index 5048ec6bb0..abfed0635a 100644 --- a/Resources/Textures/Clothing/Head/Helmets/light_riot.rsi/meta.json +++ b/Resources/Textures/Clothing/Head/Helmets/light_riot.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "Taken from TGstation github https://github.com/tgstation/tgstation/commit/fed2ddeb54d0fb8bb97cb0a899a088b7d7423bbb", + "copyright": "Taken from TGstation github https://github.com/tgstation/tgstation/commit/fed2ddeb54d0fb8bb97cb0a899a088b7d7423bbb. Vox state by Flareguy for SS14", "size": { "x": 32, "y": 32 @@ -14,6 +14,10 @@ "name": "equipped-HELMET", "directions": 4 }, + { + "name": "equipped-HELMET-vox", + "directions": 4 + }, { "name": "inhand-left", "directions": 4 diff --git a/Resources/Textures/Clothing/Head/Helmets/security.rsi/equipped-HELMET-vox.png b/Resources/Textures/Clothing/Head/Helmets/security.rsi/equipped-HELMET-vox.png new file mode 100644 index 0000000000..703d927ecf Binary files /dev/null and b/Resources/Textures/Clothing/Head/Helmets/security.rsi/equipped-HELMET-vox.png differ diff --git a/Resources/Textures/Clothing/Head/Helmets/security.rsi/meta.json b/Resources/Textures/Clothing/Head/Helmets/security.rsi/meta.json index db2bbfafd4..a0653e5c65 100644 --- a/Resources/Textures/Clothing/Head/Helmets/security.rsi/meta.json +++ b/Resources/Textures/Clothing/Head/Helmets/security.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e", + "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e. Vox state by Flareguy for SS14", "size": { "x": 32, "y": 32 @@ -14,6 +14,10 @@ "name": "equipped-HELMET", "directions": 4 }, + { + "name": "equipped-HELMET-vox", + "directions": 4 + }, { "name": "light-equipped-HELMET", "directions": 4 diff --git a/Resources/Textures/Clothing/Head/Helmets/spaceninja.rsi/equipped-HELMET-vox.png b/Resources/Textures/Clothing/Head/Helmets/spaceninja.rsi/equipped-HELMET-vox.png new file mode 100644 index 0000000000..59f1e3263b Binary files /dev/null and b/Resources/Textures/Clothing/Head/Helmets/spaceninja.rsi/equipped-HELMET-vox.png differ diff --git a/Resources/Textures/Clothing/Head/Helmets/spaceninja.rsi/meta.json b/Resources/Textures/Clothing/Head/Helmets/spaceninja.rsi/meta.json index 61c8ce163c..dae510390f 100644 --- a/Resources/Textures/Clothing/Head/Helmets/spaceninja.rsi/meta.json +++ b/Resources/Textures/Clothing/Head/Helmets/spaceninja.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "Taken from paradise https://github.com/ParadiseSS13/Paradise/tree/master/icons (unknown commit) | vulpkanin version made by Floofers", + "copyright": "Taken from paradise https://github.com/ParadiseSS13/Paradise/tree/master/icons (unknown commit) | vulpkanin version made by Floofers. Vox state by Flareguy for SS14", "size": { "x": 32, "y": 32 @@ -14,6 +14,10 @@ "name": "equipped-HELMET", "directions": 4 }, + { + "name": "equipped-HELMET-vox", + "directions": 4 + }, { "name": "inhand-left", "directions": 4 diff --git a/Resources/Textures/Clothing/Head/Helmets/swat.rsi/equipped-HELMET-vox.png b/Resources/Textures/Clothing/Head/Helmets/swat.rsi/equipped-HELMET-vox.png new file mode 100644 index 0000000000..1ed974c206 Binary files /dev/null and b/Resources/Textures/Clothing/Head/Helmets/swat.rsi/equipped-HELMET-vox.png differ diff --git a/Resources/Textures/Clothing/Head/Helmets/swat.rsi/meta.json b/Resources/Textures/Clothing/Head/Helmets/swat.rsi/meta.json index 8836c0b646..f505b4e75e 100644 --- a/Resources/Textures/Clothing/Head/Helmets/swat.rsi/meta.json +++ b/Resources/Textures/Clothing/Head/Helmets/swat.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/fb2d71495bfe81446159ef528534193d09dd8d34, inhand sprites by Flareguy", + "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/fb2d71495bfe81446159ef528534193d09dd8d34, inhand sprites & vox state by Flareguy", "size": { "x": 32, "y": 32 @@ -14,6 +14,10 @@ "name": "equipped-HELMET", "directions": 4 }, + { + "name": "equipped-HELMET-vox", + "directions": 4 + }, { "name": "inhand-left", "directions": 4 diff --git a/Resources/Textures/Clothing/Head/Helmets/swat_syndicate.rsi/equipped-HELMET-vox.png b/Resources/Textures/Clothing/Head/Helmets/swat_syndicate.rsi/equipped-HELMET-vox.png new file mode 100644 index 0000000000..e228a8a33a Binary files /dev/null and b/Resources/Textures/Clothing/Head/Helmets/swat_syndicate.rsi/equipped-HELMET-vox.png differ diff --git a/Resources/Textures/Clothing/Head/Helmets/swat_syndicate.rsi/meta.json b/Resources/Textures/Clothing/Head/Helmets/swat_syndicate.rsi/meta.json index 8bedbfb78e..a0bf954585 100644 --- a/Resources/Textures/Clothing/Head/Helmets/swat_syndicate.rsi/meta.json +++ b/Resources/Textures/Clothing/Head/Helmets/swat_syndicate.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/fb2d71495bfe81446159ef528534193d09dd8d34, inhand sprites by Flareguy, icon edited by Flareguy", + "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/fb2d71495bfe81446159ef528534193d09dd8d34, inhand sprites by Flareguy, icon edited by Flareguy. Vox state taken from from Paradise at https://github.com/ParadiseSS13/Paradise/blob/b1658390731745adf5cc9fb039bb0f17ad3c11a7/icons/mob/clothing/species/vox/helmet.dmi ", "size": { "x": 32, "y": 32 @@ -14,6 +14,10 @@ "name": "equipped-HELMET", "directions": 4 }, + { + "name": "equipped-HELMET-vox", + "directions": 4 + }, { "name": "inhand-left", "directions": 4 diff --git a/Resources/Textures/Clothing/Head/Helmets/templar.rsi/equipped-HELMET-vox.png b/Resources/Textures/Clothing/Head/Helmets/templar.rsi/equipped-HELMET-vox.png new file mode 100644 index 0000000000..3572a5de9f Binary files /dev/null and b/Resources/Textures/Clothing/Head/Helmets/templar.rsi/equipped-HELMET-vox.png differ diff --git a/Resources/Textures/Clothing/Head/Helmets/templar.rsi/meta.json b/Resources/Textures/Clothing/Head/Helmets/templar.rsi/meta.json index 7bd2e3e22a..5c8b454ea6 100644 --- a/Resources/Textures/Clothing/Head/Helmets/templar.rsi/meta.json +++ b/Resources/Textures/Clothing/Head/Helmets/templar.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e", + "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e. equipped-HELMET-vox state taken from /vg/station at commit https://github.com/vgstation-coders/vgstation13/commit/31d6576ba8102135d058ef49c3cb6ecbe8db8a79", "size": { "x": 32, "y": 32 @@ -13,6 +13,10 @@ { "name": "equipped-HELMET", "directions": 4 + }, + { + "name": "equipped-HELMET-vox", + "directions": 4 } ] } diff --git a/Resources/Textures/Clothing/Head/Helmets/wizardhelm.rsi/equipped-HELMET-vox.png b/Resources/Textures/Clothing/Head/Helmets/wizardhelm.rsi/equipped-HELMET-vox.png new file mode 100644 index 0000000000..0cabbe106c Binary files /dev/null and b/Resources/Textures/Clothing/Head/Helmets/wizardhelm.rsi/equipped-HELMET-vox.png differ diff --git a/Resources/Textures/Clothing/Head/Helmets/wizardhelm.rsi/meta.json b/Resources/Textures/Clothing/Head/Helmets/wizardhelm.rsi/meta.json index a470e00944..8e639d26bc 100644 --- a/Resources/Textures/Clothing/Head/Helmets/wizardhelm.rsi/meta.json +++ b/Resources/Textures/Clothing/Head/Helmets/wizardhelm.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e", + "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e. equipped-HELMET-vox state taken from /vg/station at commit https://github.com/vgstation-coders/vgstation13/commit/31d6576ba8102135d058ef49c3cb6ecbe8db8a79 and modified to remove duplicate states", "size": { "x": 32, "y": 32 @@ -21,6 +21,10 @@ { "name": "inhand-right", "directions": 4 + }, + { + "name": "equipped-HELMET-vox", + "directions": 4 } ] } diff --git a/Resources/Textures/Clothing/Head/Hoods/Bio/bio.rsi/equipped-HELMET-vox.png b/Resources/Textures/Clothing/Head/Hoods/Bio/bio.rsi/equipped-HELMET-vox.png new file mode 100644 index 0000000000..35cfa8ddc0 Binary files /dev/null and b/Resources/Textures/Clothing/Head/Hoods/Bio/bio.rsi/equipped-HELMET-vox.png differ diff --git a/Resources/Textures/Clothing/Head/Hoods/Bio/bio.rsi/meta.json b/Resources/Textures/Clothing/Head/Hoods/Bio/bio.rsi/meta.json index 4427c7fb51..fd2c470dc4 100644 --- a/Resources/Textures/Clothing/Head/Hoods/Bio/bio.rsi/meta.json +++ b/Resources/Textures/Clothing/Head/Hoods/Bio/bio.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e | vulpkanin version taken from Paradise station at https://github.com/ParadiseSS13/Paradise/commit/f0fa4e1fd809482fbc104a310aa34cebf7df157d", + "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e | vulpkanin version taken from Paradise station at https://github.com/ParadiseSS13/Paradise/commit/f0fa4e1fd809482fbc104a310aa34cebf7df157d | equipped-HELMET-vox state taken from /vg/station at commit https://github.com/vgstation-coders/vgstation13/commit/31d6576ba8102135d058ef49c3cb6ecbe8db8a79", "size": { "x": 32, "y": 32 @@ -25,6 +25,10 @@ { "name": "equipped-HELMET-vulpkanin", "directions": 4 + }, + { + "name": "equipped-HELMET-vox", + "directions": 4 } ] } diff --git a/Resources/Textures/Clothing/Head/Hoods/Bio/cmo.rsi/equipped-HELMET-vox.png b/Resources/Textures/Clothing/Head/Hoods/Bio/cmo.rsi/equipped-HELMET-vox.png new file mode 100644 index 0000000000..90ad846f9b Binary files /dev/null and b/Resources/Textures/Clothing/Head/Hoods/Bio/cmo.rsi/equipped-HELMET-vox.png differ diff --git a/Resources/Textures/Clothing/Head/Hoods/Bio/cmo.rsi/meta.json b/Resources/Textures/Clothing/Head/Hoods/Bio/cmo.rsi/meta.json index 4427c7fb51..d95bcad823 100644 --- a/Resources/Textures/Clothing/Head/Hoods/Bio/cmo.rsi/meta.json +++ b/Resources/Textures/Clothing/Head/Hoods/Bio/cmo.rsi/meta.json @@ -1,30 +1,34 @@ { - "version": 1, - "license": "CC-BY-SA-3.0", - "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e | vulpkanin version taken from Paradise station at https://github.com/ParadiseSS13/Paradise/commit/f0fa4e1fd809482fbc104a310aa34cebf7df157d", - "size": { - "x": 32, - "y": 32 - }, - "states": [ - { - "name": "icon" + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e | vulpkanin version taken from Paradise station at https://github.com/ParadiseSS13/Paradise/commit/f0fa4e1fd809482fbc104a310aa34cebf7df157d | equipped-HELMET-vox state taken from /vg/station at commit https://github.com/vgstation-coders/vgstation13/commit/31d6576ba8102135d058ef49c3cb6ecbe8db8a79", + "size": { + "x": 32, + "y": 32 }, - { - "name": "equipped-HELMET", - "directions": 4 - }, - { - "name": "inhand-left", - "directions": 4 - }, - { - "name": "inhand-right", - "directions": 4 - }, - { - "name": "equipped-HELMET-vulpkanin", - "directions": 4 - } - ] -} + "states": [ + { + "name": "icon" + }, + { + "name": "equipped-HELMET", + "directions": 4 + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + }, + { + "name": "equipped-HELMET-vulpkanin", + "directions": 4 + }, + { + "name": "equipped-HELMET-vox", + "directions": 4 + } + ] +} \ No newline at end of file diff --git a/Resources/Textures/Clothing/Head/Hoods/Bio/general.rsi/equipped-HELMET-vox.png b/Resources/Textures/Clothing/Head/Hoods/Bio/general.rsi/equipped-HELMET-vox.png new file mode 100644 index 0000000000..35cfa8ddc0 Binary files /dev/null and b/Resources/Textures/Clothing/Head/Hoods/Bio/general.rsi/equipped-HELMET-vox.png differ diff --git a/Resources/Textures/Clothing/Head/Hoods/Bio/general.rsi/meta.json b/Resources/Textures/Clothing/Head/Hoods/Bio/general.rsi/meta.json index 4427c7fb51..d95bcad823 100644 --- a/Resources/Textures/Clothing/Head/Hoods/Bio/general.rsi/meta.json +++ b/Resources/Textures/Clothing/Head/Hoods/Bio/general.rsi/meta.json @@ -1,30 +1,34 @@ { - "version": 1, - "license": "CC-BY-SA-3.0", - "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e | vulpkanin version taken from Paradise station at https://github.com/ParadiseSS13/Paradise/commit/f0fa4e1fd809482fbc104a310aa34cebf7df157d", - "size": { - "x": 32, - "y": 32 - }, - "states": [ - { - "name": "icon" + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e | vulpkanin version taken from Paradise station at https://github.com/ParadiseSS13/Paradise/commit/f0fa4e1fd809482fbc104a310aa34cebf7df157d | equipped-HELMET-vox state taken from /vg/station at commit https://github.com/vgstation-coders/vgstation13/commit/31d6576ba8102135d058ef49c3cb6ecbe8db8a79", + "size": { + "x": 32, + "y": 32 }, - { - "name": "equipped-HELMET", - "directions": 4 - }, - { - "name": "inhand-left", - "directions": 4 - }, - { - "name": "inhand-right", - "directions": 4 - }, - { - "name": "equipped-HELMET-vulpkanin", - "directions": 4 - } - ] -} + "states": [ + { + "name": "icon" + }, + { + "name": "equipped-HELMET", + "directions": 4 + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + }, + { + "name": "equipped-HELMET-vulpkanin", + "directions": 4 + }, + { + "name": "equipped-HELMET-vox", + "directions": 4 + } + ] +} \ No newline at end of file diff --git a/Resources/Textures/Clothing/Head/Hoods/Bio/janitor.rsi/equipped-HELMET-vox.png b/Resources/Textures/Clothing/Head/Hoods/Bio/janitor.rsi/equipped-HELMET-vox.png new file mode 100644 index 0000000000..2a8f1b0cdb Binary files /dev/null and b/Resources/Textures/Clothing/Head/Hoods/Bio/janitor.rsi/equipped-HELMET-vox.png differ diff --git a/Resources/Textures/Clothing/Head/Hoods/Bio/janitor.rsi/meta.json b/Resources/Textures/Clothing/Head/Hoods/Bio/janitor.rsi/meta.json index 4427c7fb51..d95bcad823 100644 --- a/Resources/Textures/Clothing/Head/Hoods/Bio/janitor.rsi/meta.json +++ b/Resources/Textures/Clothing/Head/Hoods/Bio/janitor.rsi/meta.json @@ -1,30 +1,34 @@ { - "version": 1, - "license": "CC-BY-SA-3.0", - "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e | vulpkanin version taken from Paradise station at https://github.com/ParadiseSS13/Paradise/commit/f0fa4e1fd809482fbc104a310aa34cebf7df157d", - "size": { - "x": 32, - "y": 32 - }, - "states": [ - { - "name": "icon" + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e | vulpkanin version taken from Paradise station at https://github.com/ParadiseSS13/Paradise/commit/f0fa4e1fd809482fbc104a310aa34cebf7df157d | equipped-HELMET-vox state taken from /vg/station at commit https://github.com/vgstation-coders/vgstation13/commit/31d6576ba8102135d058ef49c3cb6ecbe8db8a79", + "size": { + "x": 32, + "y": 32 }, - { - "name": "equipped-HELMET", - "directions": 4 - }, - { - "name": "inhand-left", - "directions": 4 - }, - { - "name": "inhand-right", - "directions": 4 - }, - { - "name": "equipped-HELMET-vulpkanin", - "directions": 4 - } - ] -} + "states": [ + { + "name": "icon" + }, + { + "name": "equipped-HELMET", + "directions": 4 + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + }, + { + "name": "equipped-HELMET-vulpkanin", + "directions": 4 + }, + { + "name": "equipped-HELMET-vox", + "directions": 4 + } + ] +} \ No newline at end of file diff --git a/Resources/Textures/Clothing/Head/Hoods/Bio/scientist.rsi/equipped-HELMET-vox.png b/Resources/Textures/Clothing/Head/Hoods/Bio/scientist.rsi/equipped-HELMET-vox.png new file mode 100644 index 0000000000..4b90b700a8 Binary files /dev/null and b/Resources/Textures/Clothing/Head/Hoods/Bio/scientist.rsi/equipped-HELMET-vox.png differ diff --git a/Resources/Textures/Clothing/Head/Hoods/Bio/scientist.rsi/meta.json b/Resources/Textures/Clothing/Head/Hoods/Bio/scientist.rsi/meta.json index 4427c7fb51..d95bcad823 100644 --- a/Resources/Textures/Clothing/Head/Hoods/Bio/scientist.rsi/meta.json +++ b/Resources/Textures/Clothing/Head/Hoods/Bio/scientist.rsi/meta.json @@ -1,30 +1,34 @@ { - "version": 1, - "license": "CC-BY-SA-3.0", - "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e | vulpkanin version taken from Paradise station at https://github.com/ParadiseSS13/Paradise/commit/f0fa4e1fd809482fbc104a310aa34cebf7df157d", - "size": { - "x": 32, - "y": 32 - }, - "states": [ - { - "name": "icon" + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e | vulpkanin version taken from Paradise station at https://github.com/ParadiseSS13/Paradise/commit/f0fa4e1fd809482fbc104a310aa34cebf7df157d | equipped-HELMET-vox state taken from /vg/station at commit https://github.com/vgstation-coders/vgstation13/commit/31d6576ba8102135d058ef49c3cb6ecbe8db8a79", + "size": { + "x": 32, + "y": 32 }, - { - "name": "equipped-HELMET", - "directions": 4 - }, - { - "name": "inhand-left", - "directions": 4 - }, - { - "name": "inhand-right", - "directions": 4 - }, - { - "name": "equipped-HELMET-vulpkanin", - "directions": 4 - } - ] -} + "states": [ + { + "name": "icon" + }, + { + "name": "equipped-HELMET", + "directions": 4 + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + }, + { + "name": "equipped-HELMET-vulpkanin", + "directions": 4 + }, + { + "name": "equipped-HELMET-vox", + "directions": 4 + } + ] +} \ No newline at end of file diff --git a/Resources/Textures/Clothing/Head/Hoods/Bio/security.rsi/equipped-HELMET-vox.png b/Resources/Textures/Clothing/Head/Hoods/Bio/security.rsi/equipped-HELMET-vox.png new file mode 100644 index 0000000000..402d6bf76a Binary files /dev/null and b/Resources/Textures/Clothing/Head/Hoods/Bio/security.rsi/equipped-HELMET-vox.png differ diff --git a/Resources/Textures/Clothing/Head/Hoods/Bio/security.rsi/meta.json b/Resources/Textures/Clothing/Head/Hoods/Bio/security.rsi/meta.json index e830cae282..6d404a14b8 100644 --- a/Resources/Textures/Clothing/Head/Hoods/Bio/security.rsi/meta.json +++ b/Resources/Textures/Clothing/Head/Hoods/Bio/security.rsi/meta.json @@ -1,30 +1,34 @@ { - "version": 1, - "license": "CC-BY-SA-3.0", - "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e | vulpkanin version taken from Paradise station at https://github.com/ParadiseSS13/Paradise/commit/f0fa4e1fd809482fbc104a310aa34cebf7df157d edited by Floofers", - "size": { - "x": 32, - "y": 32 - }, - "states": [ - { - "name": "icon" + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e | vulpkanin version taken from Paradise station at https://github.com/ParadiseSS13/Paradise/commit/f0fa4e1fd809482fbc104a310aa34cebf7df157d edited by Floofers | equipped-HELMET-vox state taken from /vg/station at commit https://github.com/vgstation-coders/vgstation13/commit/31d6576ba8102135d058ef49c3cb6ecbe8db8a79", + "size": { + "x": 32, + "y": 32 }, - { - "name": "equipped-HELMET", - "directions": 4 - }, - { - "name": "inhand-left", - "directions": 4 - }, - { - "name": "inhand-right", - "directions": 4 - }, - { - "name": "equipped-HELMET-vulpkanin", - "directions": 4 - } - ] -} + "states": [ + { + "name": "icon" + }, + { + "name": "equipped-HELMET", + "directions": 4 + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + }, + { + "name": "equipped-HELMET-vulpkanin", + "directions": 4 + }, + { + "name": "equipped-HELMET-vox", + "directions": 4 + } + ] +} \ No newline at end of file diff --git a/Resources/Textures/Clothing/Head/Hoods/Bio/virology.rsi/equipped-HELMET-vox.png b/Resources/Textures/Clothing/Head/Hoods/Bio/virology.rsi/equipped-HELMET-vox.png new file mode 100644 index 0000000000..d4a1f0848e Binary files /dev/null and b/Resources/Textures/Clothing/Head/Hoods/Bio/virology.rsi/equipped-HELMET-vox.png differ diff --git a/Resources/Textures/Clothing/Head/Hoods/Bio/virology.rsi/meta.json b/Resources/Textures/Clothing/Head/Hoods/Bio/virology.rsi/meta.json index 4427c7fb51..d95bcad823 100644 --- a/Resources/Textures/Clothing/Head/Hoods/Bio/virology.rsi/meta.json +++ b/Resources/Textures/Clothing/Head/Hoods/Bio/virology.rsi/meta.json @@ -1,30 +1,34 @@ { - "version": 1, - "license": "CC-BY-SA-3.0", - "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e | vulpkanin version taken from Paradise station at https://github.com/ParadiseSS13/Paradise/commit/f0fa4e1fd809482fbc104a310aa34cebf7df157d", - "size": { - "x": 32, - "y": 32 - }, - "states": [ - { - "name": "icon" + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e | vulpkanin version taken from Paradise station at https://github.com/ParadiseSS13/Paradise/commit/f0fa4e1fd809482fbc104a310aa34cebf7df157d | equipped-HELMET-vox state taken from /vg/station at commit https://github.com/vgstation-coders/vgstation13/commit/31d6576ba8102135d058ef49c3cb6ecbe8db8a79", + "size": { + "x": 32, + "y": 32 }, - { - "name": "equipped-HELMET", - "directions": 4 - }, - { - "name": "inhand-left", - "directions": 4 - }, - { - "name": "inhand-right", - "directions": 4 - }, - { - "name": "equipped-HELMET-vulpkanin", - "directions": 4 - } - ] -} + "states": [ + { + "name": "icon" + }, + { + "name": "equipped-HELMET", + "directions": 4 + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + }, + { + "name": "equipped-HELMET-vulpkanin", + "directions": 4 + }, + { + "name": "equipped-HELMET-vox", + "directions": 4 + } + ] +} \ No newline at end of file diff --git a/Resources/Textures/Clothing/Head/Misc/chickenhead.rsi/equipped-HELMET-vox.png b/Resources/Textures/Clothing/Head/Misc/chickenhead.rsi/equipped-HELMET-vox.png new file mode 100644 index 0000000000..65a8cb83c1 Binary files /dev/null and b/Resources/Textures/Clothing/Head/Misc/chickenhead.rsi/equipped-HELMET-vox.png differ diff --git a/Resources/Textures/Clothing/Head/Misc/chickenhead.rsi/meta.json b/Resources/Textures/Clothing/Head/Misc/chickenhead.rsi/meta.json index a470e00944..8e639d26bc 100644 --- a/Resources/Textures/Clothing/Head/Misc/chickenhead.rsi/meta.json +++ b/Resources/Textures/Clothing/Head/Misc/chickenhead.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e", + "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e. equipped-HELMET-vox state taken from /vg/station at commit https://github.com/vgstation-coders/vgstation13/commit/31d6576ba8102135d058ef49c3cb6ecbe8db8a79 and modified to remove duplicate states", "size": { "x": 32, "y": 32 @@ -21,6 +21,10 @@ { "name": "inhand-right", "directions": 4 + }, + { + "name": "equipped-HELMET-vox", + "directions": 4 } ] } diff --git a/Resources/Textures/Clothing/Head/Welding/blue_flame_welding_mask.rsi/equipped-HELMET-vox.png b/Resources/Textures/Clothing/Head/Welding/blue_flame_welding_mask.rsi/equipped-HELMET-vox.png new file mode 100644 index 0000000000..5b2c255049 Binary files /dev/null and b/Resources/Textures/Clothing/Head/Welding/blue_flame_welding_mask.rsi/equipped-HELMET-vox.png differ diff --git a/Resources/Textures/Clothing/Head/Welding/blue_flame_welding_mask.rsi/meta.json b/Resources/Textures/Clothing/Head/Welding/blue_flame_welding_mask.rsi/meta.json index 39eb54f44c..22039e8e30 100644 --- a/Resources/Textures/Clothing/Head/Welding/blue_flame_welding_mask.rsi/meta.json +++ b/Resources/Textures/Clothing/Head/Welding/blue_flame_welding_mask.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e, icon by лазік#7305 | vulpkanin version taken from Paradise station at https://github.com/ParadiseSS13/Paradise/commit/f0fa4e1fd809482fbc104a310aa34cebf7df157d edited by Floofers", + "copyright": "Taken from /vg/station at commit https://github.com/vgstation-coders/vgstation13/commit/31d6576ba8102135d058ef49c3cb6ecbe8db8a79, icon by лазік#7305. equipped-HELMET-vox state modified by Flareguy from vox welding helmet state | vulpkanin version taken from Paradise station at https://github.com/ParadiseSS13/Paradise/commit/f0fa4e1fd809482fbc104a310aa34cebf7df157d edited by Floofers", "size": { "x": 32, "y": 32 @@ -21,6 +21,14 @@ "name": "up-equipped-HELMET", "directions": 4 }, + { + "name": "equipped-HELMET-vox", + "directions": 4 + }, + { + "name": "up-equipped-HELMET-vox", + "directions": 4 + }, { "name": "inhand-left", "directions": 4 diff --git a/Resources/Textures/Clothing/Head/Welding/blue_flame_welding_mask.rsi/up-equipped-HELMET-vox.png b/Resources/Textures/Clothing/Head/Welding/blue_flame_welding_mask.rsi/up-equipped-HELMET-vox.png new file mode 100644 index 0000000000..14129a80cb Binary files /dev/null and b/Resources/Textures/Clothing/Head/Welding/blue_flame_welding_mask.rsi/up-equipped-HELMET-vox.png differ diff --git a/Resources/Textures/Clothing/Head/Welding/flame_welding_mask.rsi/equipped-HELMET-vox.png b/Resources/Textures/Clothing/Head/Welding/flame_welding_mask.rsi/equipped-HELMET-vox.png new file mode 100644 index 0000000000..6401496252 Binary files /dev/null and b/Resources/Textures/Clothing/Head/Welding/flame_welding_mask.rsi/equipped-HELMET-vox.png differ diff --git a/Resources/Textures/Clothing/Head/Welding/flame_welding_mask.rsi/meta.json b/Resources/Textures/Clothing/Head/Welding/flame_welding_mask.rsi/meta.json index 39eb54f44c..d0931b9be1 100644 --- a/Resources/Textures/Clothing/Head/Welding/flame_welding_mask.rsi/meta.json +++ b/Resources/Textures/Clothing/Head/Welding/flame_welding_mask.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e, icon by лазік#7305 | vulpkanin version taken from Paradise station at https://github.com/ParadiseSS13/Paradise/commit/f0fa4e1fd809482fbc104a310aa34cebf7df157d edited by Floofers", + "copyright": "Taken from /vg/station at commit https://github.com/vgstation-coders/vgstation13/commit/31d6576ba8102135d058ef49c3cb6ecbe8db8a79 and up-equipped-HELMET modified by Flareguy, icon by лазік#7305. equipped-HELMET-vox state modified by Flareguy from vox welding helmet state | vulpkanin version taken from Paradise station at https://github.com/ParadiseSS13/Paradise/commit/f0fa4e1fd809482fbc104a310aa34cebf7df157d edited by Floofers", "size": { "x": 32, "y": 32 @@ -21,6 +21,14 @@ "name": "up-equipped-HELMET", "directions": 4 }, + { + "name": "equipped-HELMET-vox", + "directions": 4 + }, + { + "name": "up-equipped-HELMET-vox", + "directions": 4 + }, { "name": "inhand-left", "directions": 4 diff --git a/Resources/Textures/Clothing/Head/Welding/flame_welding_mask.rsi/up-equipped-HELMET-vox.png b/Resources/Textures/Clothing/Head/Welding/flame_welding_mask.rsi/up-equipped-HELMET-vox.png new file mode 100644 index 0000000000..d011e47c2d Binary files /dev/null and b/Resources/Textures/Clothing/Head/Welding/flame_welding_mask.rsi/up-equipped-HELMET-vox.png differ diff --git a/Resources/Textures/Clothing/Head/Welding/flame_welding_mask.rsi/up-equipped-HELMET.png b/Resources/Textures/Clothing/Head/Welding/flame_welding_mask.rsi/up-equipped-HELMET.png index b60219becc..e7ef24dcee 100644 Binary files a/Resources/Textures/Clothing/Head/Welding/flame_welding_mask.rsi/up-equipped-HELMET.png and b/Resources/Textures/Clothing/Head/Welding/flame_welding_mask.rsi/up-equipped-HELMET.png differ diff --git a/Resources/Textures/Clothing/Head/Welding/paintedwelding.rsi/equipped-HELMET-vox.png b/Resources/Textures/Clothing/Head/Welding/paintedwelding.rsi/equipped-HELMET-vox.png new file mode 100644 index 0000000000..0b9342b236 Binary files /dev/null and b/Resources/Textures/Clothing/Head/Welding/paintedwelding.rsi/equipped-HELMET-vox.png differ diff --git a/Resources/Textures/Clothing/Head/Welding/paintedwelding.rsi/meta.json b/Resources/Textures/Clothing/Head/Welding/paintedwelding.rsi/meta.json index 39eb54f44c..825fa48b80 100644 --- a/Resources/Textures/Clothing/Head/Welding/paintedwelding.rsi/meta.json +++ b/Resources/Textures/Clothing/Head/Welding/paintedwelding.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e, icon by лазік#7305 | vulpkanin version taken from Paradise station at https://github.com/ParadiseSS13/Paradise/commit/f0fa4e1fd809482fbc104a310aa34cebf7df157d edited by Floofers", + "copyright": "Taken from CEV-Eris at https://github.com/discordia-space/CEV-Eris/blob/2a0d963d5bf68bd8ddf6fba6f60479bec172b51d/icons/inventory/head/mob.dmi, icon by лазік#7305. equipped-HELMET-vox state modified by Flareguy from 'welding' state in /vg/station at commit https://github.com/vgstation-coders/vgstation13/commit/31d6576ba8102135d058ef49c3cb6ecbe8db8a79 | vulpkanin version taken from Paradise station at https://github.com/ParadiseSS13/Paradise/commit/f0fa4e1fd809482fbc104a310aa34cebf7df157d edited by Floofers", "size": { "x": 32, "y": 32 @@ -21,6 +21,14 @@ "name": "up-equipped-HELMET", "directions": 4 }, + { + "name": "equipped-HELMET-vox", + "directions": 4 + }, + { + "name": "up-equipped-HELMET-vox", + "directions": 4 + }, { "name": "inhand-left", "directions": 4 diff --git a/Resources/Textures/Clothing/Head/Welding/paintedwelding.rsi/up-equipped-HELMET-vox.png b/Resources/Textures/Clothing/Head/Welding/paintedwelding.rsi/up-equipped-HELMET-vox.png new file mode 100644 index 0000000000..6ecdfda3ea Binary files /dev/null and b/Resources/Textures/Clothing/Head/Welding/paintedwelding.rsi/up-equipped-HELMET-vox.png differ diff --git a/Resources/Textures/Clothing/Head/Welding/welding.rsi/equipped-HELMET-vox.png b/Resources/Textures/Clothing/Head/Welding/welding.rsi/equipped-HELMET-vox.png new file mode 100644 index 0000000000..6b19f42a82 Binary files /dev/null and b/Resources/Textures/Clothing/Head/Welding/welding.rsi/equipped-HELMET-vox.png differ diff --git a/Resources/Textures/Clothing/Head/Welding/welding.rsi/meta.json b/Resources/Textures/Clothing/Head/Welding/welding.rsi/meta.json index 3a84e3148e..569555b869 100644 --- a/Resources/Textures/Clothing/Head/Welding/welding.rsi/meta.json +++ b/Resources/Textures/Clothing/Head/Welding/welding.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e | vulpkanin version taken from Paradise station at https://github.com/ParadiseSS13/Paradise/commit/f0fa4e1fd809482fbc104a310aa34cebf7df157d", + "copyright": "Taken from /vg/station at commit https://github.com/vgstation-coders/vgstation13/commit/31d6576ba8102135d058ef49c3cb6ecbe8db8a79 | vulpkanin version taken from Paradise station at https://github.com/ParadiseSS13/Paradise/commit/f0fa4e1fd809482fbc104a310aa34cebf7df157d", "size": { "x": 32, "y": 32 @@ -21,6 +21,14 @@ "name": "up-equipped-HELMET", "directions": 4 }, + { + "name": "equipped-HELMET-vox", + "directions": 4 + }, + { + "name": "up-equipped-HELMET-vox", + "directions": 4 + }, { "name": "equipped-HELMET-hamster", "directions": 4 diff --git a/Resources/Textures/Clothing/Head/Welding/welding.rsi/up-equipped-HELMET-vox.png b/Resources/Textures/Clothing/Head/Welding/welding.rsi/up-equipped-HELMET-vox.png new file mode 100644 index 0000000000..b13423cd8b Binary files /dev/null and b/Resources/Textures/Clothing/Head/Welding/welding.rsi/up-equipped-HELMET-vox.png differ diff --git a/Resources/Textures/Clothing/Mask/bee.rsi/equipped-MASK-vox.png b/Resources/Textures/Clothing/Mask/bee.rsi/equipped-MASK-vox.png new file mode 100644 index 0000000000..05af835e9d Binary files /dev/null and b/Resources/Textures/Clothing/Mask/bee.rsi/equipped-MASK-vox.png differ diff --git a/Resources/Textures/Clothing/Mask/bee.rsi/meta.json b/Resources/Textures/Clothing/Mask/bee.rsi/meta.json index cc214ea433..628b5d1ffc 100644 --- a/Resources/Textures/Clothing/Mask/bee.rsi/meta.json +++ b/Resources/Textures/Clothing/Mask/bee.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "Taken from tgstation at commit https://github.com/dannno/-tg-station/blob/a51c5a85d327f562004cef2f36c081ad0d95fd9a/icons/obj/clothing/masks.dmi. Reptilian edit by Nairod(Github)", + "copyright": "Taken from tgstation at commit https://github.com/dannno/-tg-station/blob/a51c5a85d327f562004cef2f36c081ad0d95fd9a/icons/obj/clothing/masks.dmi. Reptilian edit by Nairod(Github). equipped-MASK-vox state taken from Paradise at https://github.com/ParadiseSS13/Paradise/blob/bc095ad398790a2b718b2bab4f2157cdd80a51da/icons/mob/clothing/species/vox/mask.dmi", "size": { "x": 32, "y": 32 @@ -17,6 +17,10 @@ { "name": "equipped-MASK-reptilian", "directions": 4 + }, + { + "name": "equipped-MASK-vox", + "directions": 4 } ] } diff --git a/Resources/Textures/Clothing/Mask/breath.rsi/meta.json b/Resources/Textures/Clothing/Mask/breath.rsi/meta.json index bed9ae64b0..f0ec0118d8 100644 --- a/Resources/Textures/Clothing/Mask/breath.rsi/meta.json +++ b/Resources/Textures/Clothing/Mask/breath.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e. Reptilian edit by Nairod(Github) equipped-MASK-secdog modified from equipped-MASK-dog by TJohnson. | vulpkanin version taken from Paradise station at https://github.com/ParadiseSS13/Paradise/commit/f0fa4e1fd809482fbc104a310aa34cebf7df157d", + "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e. Reptilian edit by Nairod(Github) equipped-MASK-secdog modified from equipped-MASK-dog by TJohnson. | vulpkanin version taken from Paradise station at https://github.com/ParadiseSS13/Paradise/commit/f0fa4e1fd809482fbc104a310aa34cebf7df157d | equipped-MASK-vox & up-equipped-MASK-vox state in /vg/station at commit https://github.com/vgstation-coders/vgstation13/commit/4638130fab5ff0e9faa220688811349d3297a33e", "size": { "x": 32, "y": 32 @@ -18,6 +18,14 @@ "name": "up-equipped-MASK", "directions": 4 }, + { + "name": "equipped-MASK-vox", + "directions": 4 + }, + { + "name": "up-equipped-MASK-vox", + "directions": 4 + }, { "name": "inhand-left", "directions": 4 @@ -54,10 +62,6 @@ "name": "equipped-MASK-possum", "directions": 4 }, - { - "name": "equipped-MASK-vox", - "directions": 4 - }, { "name": "equipped-MASK-pig", "directions": 4 diff --git a/Resources/Textures/Clothing/Mask/breath.rsi/up-equipped-MASK-vox.png b/Resources/Textures/Clothing/Mask/breath.rsi/up-equipped-MASK-vox.png new file mode 100644 index 0000000000..770ad70cf5 Binary files /dev/null and b/Resources/Textures/Clothing/Mask/breath.rsi/up-equipped-MASK-vox.png differ diff --git a/Resources/Textures/Clothing/Mask/clown.rsi/equipped-MASK-vox.png b/Resources/Textures/Clothing/Mask/clown.rsi/equipped-MASK-vox.png new file mode 100644 index 0000000000..0a7c6fc327 Binary files /dev/null and b/Resources/Textures/Clothing/Mask/clown.rsi/equipped-MASK-vox.png differ diff --git a/Resources/Textures/Clothing/Mask/clown.rsi/meta.json b/Resources/Textures/Clothing/Mask/clown.rsi/meta.json index b3709bcd83..6671a11d69 100644 --- a/Resources/Textures/Clothing/Mask/clown.rsi/meta.json +++ b/Resources/Textures/Clothing/Mask/clown.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e. Reptilian edit by Nairod(Github) | vulpkanin version taken from Paradise station at https://github.com/ParadiseSS13/Paradise/commit/f0fa4e1fd809482fbc104a310aa34cebf7df157d edited by Floofers", + "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e. Reptilian edit by Nairod(Github) | vulpkanin version taken from Paradise station at https://github.com/ParadiseSS13/Paradise/commit/f0fa4e1fd809482fbc104a310aa34cebf7df157d edited by Floofers | equipped-MASK-vox state taken from /vg/station at commit https://github.com/vgstation-coders/vgstation13/commit/4638130fab5ff0e9faa220688811349d3297a33e and slightly modified by Flareguy", "size": { "x": 32, "y": 32 @@ -33,6 +33,10 @@ { "name": "equipped-MASK-reptilian", "directions": 4 + }, + { + "name": "equipped-MASK-vox", + "directions": 4 } ] } diff --git a/Resources/Textures/Clothing/Mask/gas.rsi/equipped-MASK-vox.png b/Resources/Textures/Clothing/Mask/gas.rsi/equipped-MASK-vox.png new file mode 100644 index 0000000000..7170d7ebdf Binary files /dev/null and b/Resources/Textures/Clothing/Mask/gas.rsi/equipped-MASK-vox.png differ diff --git a/Resources/Textures/Clothing/Mask/gas.rsi/meta.json b/Resources/Textures/Clothing/Mask/gas.rsi/meta.json index 07a0c908b1..7d52a23d9c 100644 --- a/Resources/Textures/Clothing/Mask/gas.rsi/meta.json +++ b/Resources/Textures/Clothing/Mask/gas.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e. Reptilian edit by Nairod(Github) | vulpkanin version taken from Paradise station at https://github.com/ParadiseSS13/Paradise/commit/f0fa4e1fd809482fbc104a310aa34cebf7df157d edited by Floofers", + "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e. Reptilian edit by Nairod(Github) | vulpkanin version taken from Paradise station at https://github.com/ParadiseSS13/Paradise/commit/f0fa4e1fd809482fbc104a310aa34cebf7df157d edited by Floofers | equipped-MASK-vox state taken from /vg/station at commit https://github.com/vgstation-coders/vgstation13/commit/4638130fab5ff0e9faa220688811349d3297a33e and modified by Flareguy", "size": { "x": 32, "y": 32 @@ -33,6 +33,10 @@ { "name": "equipped-MASK-reptilian", "directions": 4 + }, + { + "name": "equipped-MASK-vox", + "directions": 4 } ] } diff --git a/Resources/Textures/Clothing/Mask/gasatmos.rsi/equipped-MASK-vox.png b/Resources/Textures/Clothing/Mask/gasatmos.rsi/equipped-MASK-vox.png new file mode 100644 index 0000000000..8975b1eb04 Binary files /dev/null and b/Resources/Textures/Clothing/Mask/gasatmos.rsi/equipped-MASK-vox.png differ diff --git a/Resources/Textures/Clothing/Mask/gasatmos.rsi/meta.json b/Resources/Textures/Clothing/Mask/gasatmos.rsi/meta.json index 63476f222b..6e2e524547 100644 --- a/Resources/Textures/Clothing/Mask/gasatmos.rsi/meta.json +++ b/Resources/Textures/Clothing/Mask/gasatmos.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e. Reptilian edit by Nairod(Github) | vulpkanin version taken from Paradise station at https://github.com/ParadiseSS13/Paradise/commit/f0fa4e1fd809482fbc104a310aa34cebf7df157d edited by Floofers", + "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e. Reptilian edit by Nairod(Github) | vulpkanin version taken from Paradise station at https://github.com/ParadiseSS13/Paradise/commit/f0fa4e1fd809482fbc104a310aa34cebf7df157d edited by Floofers | equipped-MASK-vox state modified by Flareguy from 'gas-alt' state in /vg/station at commit https://github.com/vgstation-coders/vgstation13/commit/4638130fab5ff0e9faa220688811349d3297a33e", "size": { "x": 32, "y": 32 @@ -29,6 +29,10 @@ { "name": "equipped-MASK-reptilian", "directions": 4 + }, + { + "name": "equipped-MASK-vox", + "directions": 4 } ] } diff --git a/Resources/Textures/Clothing/Mask/gascaptain.rsi/equipped-MASK-vox.png b/Resources/Textures/Clothing/Mask/gascaptain.rsi/equipped-MASK-vox.png new file mode 100644 index 0000000000..bc0f5e9011 Binary files /dev/null and b/Resources/Textures/Clothing/Mask/gascaptain.rsi/equipped-MASK-vox.png differ diff --git a/Resources/Textures/Clothing/Mask/gascaptain.rsi/meta.json b/Resources/Textures/Clothing/Mask/gascaptain.rsi/meta.json index 4b2d043352..332a8fed81 100644 --- a/Resources/Textures/Clothing/Mask/gascaptain.rsi/meta.json +++ b/Resources/Textures/Clothing/Mask/gascaptain.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e, edited by Emisse for ss14. Reptilian edit by Nairod(Github) | vulpkanin version taken from Paradise station at https://github.com/ParadiseSS13/Paradise/commit/f0fa4e1fd809482fbc104a310aa34cebf7df157d edited by Floofers", + "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e, edited by Emisse for ss14. Reptilian edit by Nairod(Github) | vulpkanin version taken from Paradise station at https://github.com/ParadiseSS13/Paradise/commit/f0fa4e1fd809482fbc104a310aa34cebf7df157d edited by Floofers | equipped-MASK-vox state taken from 'gas-alt' state in /vg/station at commit https://github.com/vgstation-coders/vgstation13/commit/4638130fab5ff0e9faa220688811349d3297a33e, and modified by Flareguy", "size": { "x": 32, "y": 32 @@ -29,6 +29,10 @@ { "name": "equipped-MASK-reptilian", "directions": 4 + }, + { + "name": "equipped-MASK-vox", + "directions": 4 } ] } diff --git a/Resources/Textures/Clothing/Mask/gasexplorer.rsi/equipped-MASK-vox.png b/Resources/Textures/Clothing/Mask/gasexplorer.rsi/equipped-MASK-vox.png new file mode 100644 index 0000000000..f504228f7d Binary files /dev/null and b/Resources/Textures/Clothing/Mask/gasexplorer.rsi/equipped-MASK-vox.png differ diff --git a/Resources/Textures/Clothing/Mask/gasexplorer.rsi/meta.json b/Resources/Textures/Clothing/Mask/gasexplorer.rsi/meta.json index 600054012e..42e2775eca 100644 --- a/Resources/Textures/Clothing/Mask/gasexplorer.rsi/meta.json +++ b/Resources/Textures/Clothing/Mask/gasexplorer.rsi/meta.json @@ -1,38 +1,42 @@ { - "version": 1, - "license": "CC-BY-SA-3.0", - "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e. Reptilian edit by Nairod(Github) | vulpkanin version edited by Floofers", - "size": { - "x": 32, - "y": 32 - }, - "states": [ - { - "name": "icon" + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e. Reptilian edit by Nairod(Github) | vulpkanin version edited by Floofers. Vox state by Flareguy for SS14", + "size": { + "x": 32, + "y": 32 }, - { - "name": "equipped-MASK", - "directions": 4 - }, - { - "name": "up-equipped-MASK", - "directions": 4 - }, - { - "name": "inhand-left", - "directions": 4 - }, - { - "name": "inhand-right", - "directions": 4 - }, - { - "name": "equipped-MASK-vulpkanin", - "directions": 4 - }, - { - "name": "equipped-MASK-reptilian", - "directions": 4 - } - ] -} + "states": [ + { + "name": "icon" + }, + { + "name": "equipped-MASK", + "directions": 4 + }, + { + "name": "equipped-MASK-vox", + "directions": 4 + }, + { + "name": "up-equipped-MASK", + "directions": 4 + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + }, + { + "name": "equipped-MASK-vulpkanin", + "directions": 4 + }, + { + "name": "equipped-MASK-reptilian", + "directions": 4 + } + ] +} \ No newline at end of file diff --git a/Resources/Textures/Clothing/Mask/gassecurity.rsi/equipped-MASK-vox.png b/Resources/Textures/Clothing/Mask/gassecurity.rsi/equipped-MASK-vox.png new file mode 100644 index 0000000000..ff33f30944 Binary files /dev/null and b/Resources/Textures/Clothing/Mask/gassecurity.rsi/equipped-MASK-vox.png differ diff --git a/Resources/Textures/Clothing/Mask/gassecurity.rsi/meta.json b/Resources/Textures/Clothing/Mask/gassecurity.rsi/meta.json index 9ed76c4839..a92fcef8bf 100644 --- a/Resources/Textures/Clothing/Mask/gassecurity.rsi/meta.json +++ b/Resources/Textures/Clothing/Mask/gassecurity.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e. Reptilian edit by Nairod(Github) | vulpkanin version taken from Paradise station at https://github.com/ParadiseSS13/Paradise/commit/f0fa4e1fd809482fbc104a310aa34cebf7df157d", + "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e. Reptilian edit by Nairod(Github) | vulpkanin version taken from Paradise station at https://github.com/ParadiseSS13/Paradise/commit/f0fa4e1fd809482fbc104a310aa34cebf7df157d | equipped-MASK-vox & up-equipped-MASK-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 @@ -14,24 +14,32 @@ "name": "equipped-MASK", "directions": 4 }, + { + "name": "equipped-MASK-reptilian", + "directions": 4 + }, + { + "name": "equipped-MASK-vox", + "directions": 4 + }, { "name": "up-equipped-MASK", "directions": 4 }, { - "name": "inhand-left", + "name": "up-equipped-MASK-vox", "directions": 4 }, { - "name": "inhand-right", + "name": "inhand-left", "directions": 4 }, { - "name": "equipped-MASK-vulpkanin", + "name": "inhand-right", "directions": 4 }, { - "name": "equipped-MASK-reptilian", + "name": "equipped-MASK-vulpkanin", "directions": 4 } ] diff --git a/Resources/Textures/Clothing/Mask/gassecurity.rsi/up-equipped-MASK-vox.png b/Resources/Textures/Clothing/Mask/gassecurity.rsi/up-equipped-MASK-vox.png new file mode 100644 index 0000000000..e701323f55 Binary files /dev/null and b/Resources/Textures/Clothing/Mask/gassecurity.rsi/up-equipped-MASK-vox.png differ diff --git a/Resources/Textures/Clothing/Mask/gassyndicate.rsi/equipped-MASK-vox.png b/Resources/Textures/Clothing/Mask/gassyndicate.rsi/equipped-MASK-vox.png new file mode 100644 index 0000000000..59a80479f7 Binary files /dev/null and b/Resources/Textures/Clothing/Mask/gassyndicate.rsi/equipped-MASK-vox.png differ diff --git a/Resources/Textures/Clothing/Mask/gassyndicate.rsi/meta.json b/Resources/Textures/Clothing/Mask/gassyndicate.rsi/meta.json index 1e01e88dc4..b2871a2797 100644 --- a/Resources/Textures/Clothing/Mask/gassyndicate.rsi/meta.json +++ b/Resources/Textures/Clothing/Mask/gassyndicate.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e. Reptilian edit by Nairod(Github) | vulpkanin version taken from Paradise station at https://github.com/ParadiseSS13/Paradise/commit/f0fa4e1fd809482fbc104a310aa34cebf7df157d", + "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e. Reptilian edit by Nairod(Github) | vulpkanin version taken from Paradise station at https://github.com/ParadiseSS13/Paradise/commit/f0fa4e1fd809482fbc104a310aa34cebf7df157d | equipped-MASK-vox state taken from /vg/station at commit https://github.com/vgstation-coders/vgstation13/commit/4638130fab5ff0e9faa220688811349d3297a33e and slightly modified to fix an error", "size": { "x": 32, "y": 32 @@ -47,6 +47,16 @@ [ 0.5, 0.5, 0.5 ], [ 0.5, 0.5, 0.5 ] ] + }, + { + "name": "equipped-MASK-vox", + "directions": 4, + "delays": [ + [ 0.5, 0.5, 0.5 ], + [ 0.5, 0.5, 0.5 ], + [ 0.5, 0.5, 0.5 ], + [ 0.5, 0.5, 0.5 ] + ] } ] } diff --git a/Resources/Textures/Clothing/Mask/italian_moustache.rsi/equipped-MASK-vox.png b/Resources/Textures/Clothing/Mask/italian_moustache.rsi/equipped-MASK-vox.png new file mode 100644 index 0000000000..9bd2b35d77 Binary files /dev/null and b/Resources/Textures/Clothing/Mask/italian_moustache.rsi/equipped-MASK-vox.png differ diff --git a/Resources/Textures/Clothing/Mask/italian_moustache.rsi/meta.json b/Resources/Textures/Clothing/Mask/italian_moustache.rsi/meta.json index 9621b18fe9..af0873d23a 100644 --- a/Resources/Textures/Clothing/Mask/italian_moustache.rsi/meta.json +++ b/Resources/Textures/Clothing/Mask/italian_moustache.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/6665eec76c98a4f3f89bebcd10b34b47dcc0b8ae | vulpkanin version taken from Paradise station at https://github.com/ParadiseSS13/Paradise/commit/f0fa4e1fd809482fbc104a310aa34cebf7df157d", + "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/6665eec76c98a4f3f89bebcd10b34b47dcc0b8ae | vulpkanin version taken from Paradise station at https://github.com/ParadiseSS13/Paradise/commit/f0fa4e1fd809482fbc104a310aa34cebf7df157d | equipped-MASK-vox state taken from /vg/station at commit https://github.com/vgstation-coders/vgstation13/commit/31d6576ba8102135d058ef49c3cb6ecbe8db8a79", "size": { "x": 32, "y": 32 @@ -14,6 +14,10 @@ "name": "equipped-MASK", "directions": 4 }, + { + "name": "equipped-MASK-vox", + "directions": 4 + }, { "name": "inhand-left", "directions": 4 diff --git a/Resources/Textures/Clothing/Mask/medical.rsi/equipped-MASK-vox.png b/Resources/Textures/Clothing/Mask/medical.rsi/equipped-MASK-vox.png new file mode 100644 index 0000000000..c3fa7f5917 Binary files /dev/null and b/Resources/Textures/Clothing/Mask/medical.rsi/equipped-MASK-vox.png differ diff --git a/Resources/Textures/Clothing/Mask/medical.rsi/meta.json b/Resources/Textures/Clothing/Mask/medical.rsi/meta.json index 59e292cbd4..ba8e8da405 100644 --- a/Resources/Textures/Clothing/Mask/medical.rsi/meta.json +++ b/Resources/Textures/Clothing/Mask/medical.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e. Reptilian edit by Nairod(Github) | vulpkanin version taken from Paradise station at https://github.com/ParadiseSS13/Paradise/commit/f0fa4e1fd809482fbc104a310aa34cebf7df157d", + "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e. Reptilian edit by Nairod(Github) | vulpkanin version taken from Paradise station at https://github.com/ParadiseSS13/Paradise/commit/f0fa4e1fd809482fbc104a310aa34cebf7df157d | equipped-MASK-vox & up-equipped-MASK-vox states taken from /vg/station at commit https://github.com/vgstation-coders/vgstation13/commit/4638130fab5ff0e9faa220688811349d3297a33e", "size": { "x": 32, "y": 32 @@ -75,6 +75,14 @@ { "name": "equipped-MASK-reptilian", "directions": 4 + }, + { + "name": "equipped-MASK-vox", + "directions": 4 + }, + { + "name": "up-equipped-MASK-vox", + "directions": 4 } ] } diff --git a/Resources/Textures/Clothing/Mask/medical.rsi/up-equipped-MASK-vox.png b/Resources/Textures/Clothing/Mask/medical.rsi/up-equipped-MASK-vox.png new file mode 100644 index 0000000000..770ad70cf5 Binary files /dev/null and b/Resources/Textures/Clothing/Mask/medical.rsi/up-equipped-MASK-vox.png differ diff --git a/Resources/Textures/Clothing/Mask/mime.rsi/equipped-MASK-vox.png b/Resources/Textures/Clothing/Mask/mime.rsi/equipped-MASK-vox.png new file mode 100644 index 0000000000..cab47297f0 Binary files /dev/null and b/Resources/Textures/Clothing/Mask/mime.rsi/equipped-MASK-vox.png differ diff --git a/Resources/Textures/Clothing/Mask/mime.rsi/meta.json b/Resources/Textures/Clothing/Mask/mime.rsi/meta.json index 34248cb9b9..e1a387cdd3 100644 --- a/Resources/Textures/Clothing/Mask/mime.rsi/meta.json +++ b/Resources/Textures/Clothing/Mask/mime.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e. Reptilian edit by Nairod(Github) | vulpkanin version taken from Paradise station at https://github.com/ParadiseSS13/Paradise/commit/f0fa4e1fd809482fbc104a310aa34cebf7df157d edited by Floofers", + "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e. Reptilian edit by Nairod(Github) | vulpkanin version taken from Paradise station at https://github.com/ParadiseSS13/Paradise/commit/f0fa4e1fd809482fbc104a310aa34cebf7df157d edited by Floofers | equipped-MASK-vox state taken from /vg/station at commit https://github.com/vgstation-coders/vgstation13/commit/4638130fab5ff0e9faa220688811349d3297a33e", "size": { "x": 32, "y": 32 @@ -25,6 +25,10 @@ { "name": "equipped-MASK-reptilian", "directions": 4 + }, + { + "name": "equipped-MASK-vox", + "directions": 4 } ] } diff --git a/Resources/Textures/Clothing/Mask/muzzle.rsi/equipped-MASK-vox.png b/Resources/Textures/Clothing/Mask/muzzle.rsi/equipped-MASK-vox.png new file mode 100644 index 0000000000..529c87878e Binary files /dev/null and b/Resources/Textures/Clothing/Mask/muzzle.rsi/equipped-MASK-vox.png differ diff --git a/Resources/Textures/Clothing/Mask/muzzle.rsi/meta.json b/Resources/Textures/Clothing/Mask/muzzle.rsi/meta.json index 33176d73e7..d5fd7a68ee 100644 --- a/Resources/Textures/Clothing/Mask/muzzle.rsi/meta.json +++ b/Resources/Textures/Clothing/Mask/muzzle.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e. Reptilian edit by Nairod(Github) | vulpkanin version taken from https://github.com/SPLURT-Station/S.P.L.U.R.T-Station-13/commit/091d9ec00f186052b87bd65125e896f78faefe38", + "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e. Reptilian edit by Nairod(Github) | vulpkanin version taken from https://github.com/SPLURT-Station/S.P.L.U.R.T-Station-13/commit/091d9ec00f186052b87bd65125e896f78faefe38 | equipped-MASK-vox state taken from /vg/station at commit https://github.com/vgstation-coders/vgstation13/commit/4638130fab5ff0e9faa220688811349d3297a33e", "size": { "x": 32, "y": 32 @@ -29,6 +29,10 @@ { "name": "equipped-MASK-reptilian", "directions": 4 + }, + { + "name": "equipped-MASK-vox", + "directions": 4 } ] } diff --git a/Resources/Textures/Clothing/Mask/ninja.rsi/equipped-MASK-vox.png b/Resources/Textures/Clothing/Mask/ninja.rsi/equipped-MASK-vox.png new file mode 100644 index 0000000000..924742fa94 Binary files /dev/null and b/Resources/Textures/Clothing/Mask/ninja.rsi/equipped-MASK-vox.png differ diff --git a/Resources/Textures/Clothing/Mask/ninja.rsi/meta.json b/Resources/Textures/Clothing/Mask/ninja.rsi/meta.json index da51268a11..26fff924c1 100644 --- a/Resources/Textures/Clothing/Mask/ninja.rsi/meta.json +++ b/Resources/Textures/Clothing/Mask/ninja.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "Taken from paradise at commit https://github.com/ParadiseSS13/Paradise/commit/33f7c1ef477fa67db5dda48078b469ab59aa7997 | vulpkanin version taken from Paradise station at https://github.com/ParadiseSS13/Paradise/commit/f0fa4e1fd809482fbc104a310aa34cebf7df157d edited by Floofers", + "copyright": "Taken from paradise at commit https://github.com/ParadiseSS13/Paradise/commit/33f7c1ef477fa67db5dda48078b469ab59aa7997 | vulpkanin version taken from Paradise station at https://github.com/ParadiseSS13/Paradise/commit/f0fa4e1fd809482fbc104a310aa34cebf7df157d edited by Floofers | equipped-MASK-vox state taken from /vg/station at commit https://github.com/vgstation-coders/vgstation13/commit/4638130fab5ff0e9faa220688811349d3297a33e", "size": { "x": 32, "y": 32 @@ -14,6 +14,10 @@ "name": "equipped-MASK", "directions": 4 }, + { + "name": "equipped-MASK-vox", + "directions": 4 + }, { "name": "inhand-left", "directions": 4 diff --git a/Resources/Textures/Clothing/Mask/plaguedoctormask.rsi/equipped-MASK-vox.png b/Resources/Textures/Clothing/Mask/plaguedoctormask.rsi/equipped-MASK-vox.png new file mode 100644 index 0000000000..67d3c25cac Binary files /dev/null and b/Resources/Textures/Clothing/Mask/plaguedoctormask.rsi/equipped-MASK-vox.png differ diff --git a/Resources/Textures/Clothing/Mask/plaguedoctormask.rsi/meta.json b/Resources/Textures/Clothing/Mask/plaguedoctormask.rsi/meta.json index 0f2358a55f..4536363585 100644 --- a/Resources/Textures/Clothing/Mask/plaguedoctormask.rsi/meta.json +++ b/Resources/Textures/Clothing/Mask/plaguedoctormask.rsi/meta.json @@ -1,30 +1,34 @@ -{ - "version": 1, - "license": "CC-BY-SA-3.0", - "copyright": "Taken from TGstation github https://github.com/tgstation/tgstation/commit/e89db4dd4f42377b0adafb06806a763314a89034 , edited by Alekshhh | vulpkanin version taken from https://github.com/SPLURT-Station/S.P.L.U.R.T-Station-13/commit/091d9ec00f186052b87bd65125e896f78faefe38", - "size": { - "x": 32, - "y": 32 - }, - "states": [ - { - "name": "icon" - }, - { - "name": "equipped-MASK", - "directions": 4 - }, - { - "name": "inhand-left", - "directions": 4 - }, - { - "name": "inhand-right", - "directions": 4 - }, - { - "name": "equipped-MASK-vulpkanin", - "directions": 4 - } - ] -} +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from TGstation github https://github.com/tgstation/tgstation/commit/e89db4dd4f42377b0adafb06806a763314a89034 , edited by Alekshhh | vulpkanin version taken from https://github.com/SPLURT-Station/S.P.L.U.R.T-Station-13/commit/091d9ec00f186052b87bd65125e896f78faefe38 | equipped-MASK-vox state taken from /vg/station at commit https://github.com/vgstation-coders/vgstation13/commit/4638130fab5ff0e9faa220688811349d3297a33e", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "equipped-MASK", + "directions": 4 + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + }, + { + "name": "equipped-MASK-vulpkanin", + "directions": 4 + }, + { + "name": "equipped-MASK-vox", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/Clothing/Mask/sexyclown.rsi/equipped-MASK-vox.png b/Resources/Textures/Clothing/Mask/sexyclown.rsi/equipped-MASK-vox.png new file mode 100644 index 0000000000..b1cb32a157 Binary files /dev/null and b/Resources/Textures/Clothing/Mask/sexyclown.rsi/equipped-MASK-vox.png differ diff --git a/Resources/Textures/Clothing/Mask/sexyclown.rsi/meta.json b/Resources/Textures/Clothing/Mask/sexyclown.rsi/meta.json index da5fdbe7cd..9e577533fc 100644 --- a/Resources/Textures/Clothing/Mask/sexyclown.rsi/meta.json +++ b/Resources/Textures/Clothing/Mask/sexyclown.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/blob/ed466a4c67828b44ddb9d9550366be5c2d745955/icons/obj/clothing/masks.dmi. Reptilian edit by Nairod(Github) | vulpkanin version taken from Paradise station at https://github.com/ParadiseSS13/Paradise/commit/f0fa4e1fd809482fbc104a310aa34cebf7df157d", + "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/blob/ed466a4c67828b44ddb9d9550366be5c2d745955/icons/obj/clothing/masks.dmi. Reptilian edit by Nairod(Github) | vulpkanin version taken from Paradise station at https://github.com/ParadiseSS13/Paradise/commit/f0fa4e1fd809482fbc104a310aa34cebf7df157d | equipped-MASK-vox state taken from /vg/station at commit https://github.com/vgstation-coders/vgstation13/commit/4638130fab5ff0e9faa220688811349d3297a33e", "size": { "x": 32, "y": 32 @@ -21,6 +21,10 @@ { "name": "equipped-MASK-reptilian", "directions": 4 + }, + { + "name": "equipped-MASK-vox", + "directions": 4 } ] } diff --git a/Resources/Textures/Clothing/Mask/sexymime.rsi/equipped-MASK-vox.png b/Resources/Textures/Clothing/Mask/sexymime.rsi/equipped-MASK-vox.png new file mode 100644 index 0000000000..4ceaf59677 Binary files /dev/null and b/Resources/Textures/Clothing/Mask/sexymime.rsi/equipped-MASK-vox.png differ diff --git a/Resources/Textures/Clothing/Mask/sexymime.rsi/meta.json b/Resources/Textures/Clothing/Mask/sexymime.rsi/meta.json index 8c0842d68a..747190632b 100644 --- a/Resources/Textures/Clothing/Mask/sexymime.rsi/meta.json +++ b/Resources/Textures/Clothing/Mask/sexymime.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/blob/ed466a4c67828b44ddb9d9550366be5c2d745955/icons/obj/clothing/masks.dmi. Reptilian edit by Nairod(Github) | vulpkanin version taken from Paradise station at https://github.com/ParadiseSS13/Paradise/commit/f0fa4e1fd809482fbc104a310aa34cebf7df157d edited by Floofers", + "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/blob/ed466a4c67828b44ddb9d9550366be5c2d745955/icons/obj/clothing/masks.dmi. Reptilian edit by Nairod(Github) | vulpkanin version taken from Paradise station at https://github.com/ParadiseSS13/Paradise/commit/f0fa4e1fd809482fbc104a310aa34cebf7df157d edited by Floofers | equipped-MASK-vox state taken from /vg/station at commit https://github.com/vgstation-coders/vgstation13/commit/4638130fab5ff0e9faa220688811349d3297a33e", "size": { "x": 32, "y": 32 @@ -21,6 +21,10 @@ { "name": "equipped-MASK-reptilian", "directions": 4 + }, + { + "name": "equipped-MASK-vox", + "directions": 4 } ] } diff --git a/Resources/Textures/Clothing/Mask/sterile.rsi/equipped-MASK-vox.png b/Resources/Textures/Clothing/Mask/sterile.rsi/equipped-MASK-vox.png new file mode 100644 index 0000000000..18c64e1048 Binary files /dev/null and b/Resources/Textures/Clothing/Mask/sterile.rsi/equipped-MASK-vox.png differ diff --git a/Resources/Textures/Clothing/Mask/sterile.rsi/meta.json b/Resources/Textures/Clothing/Mask/sterile.rsi/meta.json index f61bba1a32..4115a8de19 100644 --- a/Resources/Textures/Clothing/Mask/sterile.rsi/meta.json +++ b/Resources/Textures/Clothing/Mask/sterile.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e. Reptilian edit by Nairod(Github) | vulpkanin version taken from Paradise station at https://github.com/ParadiseSS13/Paradise/commit/f0fa4e1fd809482fbc104a310aa34cebf7df157d", + "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e. Reptilian edit by Nairod(Github) | vulpkanin version taken from Paradise station at https://github.com/ParadiseSS13/Paradise/commit/f0fa4e1fd809482fbc104a310aa34cebf7df157d | equipped-MASK-vox state taken from /vg/station at commit https://github.com/vgstation-coders/vgstation13/commit/4638130fab5ff0e9faa220688811349d3297a33e", "size": { "x": 32, "y": 32 @@ -14,10 +14,22 @@ "name": "equipped-MASK", "directions": 4 }, + { + "name": "equipped-MASK-reptilian", + "directions": 4 + }, + { + "name": "equipped-MASK-vox", + "directions": 4 + }, { "name": "up-equipped-MASK", "directions": 4 }, + { + "name": "up-equipped-MASK-vox", + "directions": 4 + }, { "name": "inhand-left", "directions": 4 @@ -33,10 +45,6 @@ { "name": "up-equipped-MASK-vulpkanin", "directions": 4 - }, - { - "name": "equipped-MASK-reptilian", - "directions": 4 } ] } diff --git a/Resources/Textures/Clothing/Mask/sterile.rsi/up-equipped-MASK-vox.png b/Resources/Textures/Clothing/Mask/sterile.rsi/up-equipped-MASK-vox.png new file mode 100644 index 0000000000..770ad70cf5 Binary files /dev/null and b/Resources/Textures/Clothing/Mask/sterile.rsi/up-equipped-MASK-vox.png differ diff --git a/Resources/Textures/Clothing/Mask/swat.rsi/equipped-MASK-vox.png b/Resources/Textures/Clothing/Mask/swat.rsi/equipped-MASK-vox.png new file mode 100644 index 0000000000..d654e3493c Binary files /dev/null and b/Resources/Textures/Clothing/Mask/swat.rsi/equipped-MASK-vox.png differ diff --git a/Resources/Textures/Clothing/Mask/swat.rsi/meta.json b/Resources/Textures/Clothing/Mask/swat.rsi/meta.json index fb3b9e8f4a..9b8c7ad080 100644 --- a/Resources/Textures/Clothing/Mask/swat.rsi/meta.json +++ b/Resources/Textures/Clothing/Mask/swat.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "Taken from tgstation at commit https://github.com/RemieRichards/-tg-station/blob/f8c05e21694cd3cb703e40edc5cfc375017944b1/icons/obj/clothing/masks.dmi. Reptilian edit by Nairod(Github) | vulpkanin version taken from Paradise station at https://github.com/ParadiseSS13/Paradise/commit/f0fa4e1fd809482fbc104a310aa34cebf7df157d", + "copyright": "Taken from tgstation at commit https://github.com/RemieRichards/-tg-station/blob/f8c05e21694cd3cb703e40edc5cfc375017944b1/icons/obj/clothing/masks.dmi. Reptilian edit by Nairod(Github) | vulpkanin version taken from Paradise station at https://github.com/ParadiseSS13/Paradise/commit/f0fa4e1fd809482fbc104a310aa34cebf7df157d | equipped-MASK-vox state taken from Paradise at https://github.com/ParadiseSS13/Paradise/blob/bc095ad398790a2b718b2bab4f2157cdd80a51da/icons/mob/clothing/species/vox/mask.dmi", "size": { "x": 32, "y": 32 @@ -15,19 +15,23 @@ "directions": 4 }, { - "name": "inhand-left", + "name": "equipped-MASK-reptilian", "directions": 4 }, { - "name": "inhand-right", + "name": "equipped-MASK-vox", "directions": 4 }, { - "name": "equipped-MASK-vulpkanin", + "name": "inhand-left", "directions": 4 }, { - "name": "equipped-MASK-reptilian", + "name": "inhand-right", + "directions": 4 + }, + { + "name": "equipped-MASK-vulpkanin", "directions": 4 } ] diff --git a/Resources/Textures/Clothing/Mask/welding-gas.rsi/equipped-MASK-vox.png b/Resources/Textures/Clothing/Mask/welding-gas.rsi/equipped-MASK-vox.png new file mode 100644 index 0000000000..e6028f3a4c Binary files /dev/null and b/Resources/Textures/Clothing/Mask/welding-gas.rsi/equipped-MASK-vox.png differ diff --git a/Resources/Textures/Clothing/Mask/welding-gas.rsi/equipped-MASK.png b/Resources/Textures/Clothing/Mask/welding-gas.rsi/equipped-MASK.png new file mode 100644 index 0000000000..5d0a7ea70d Binary files /dev/null and b/Resources/Textures/Clothing/Mask/welding-gas.rsi/equipped-MASK.png differ diff --git a/Resources/Textures/Clothing/Mask/welding-gas.rsi/icon-up.png b/Resources/Textures/Clothing/Mask/welding-gas.rsi/icon-up.png new file mode 100644 index 0000000000..352e536ca9 Binary files /dev/null and b/Resources/Textures/Clothing/Mask/welding-gas.rsi/icon-up.png differ diff --git a/Resources/Textures/Clothing/Mask/welding-gas.rsi/icon.png b/Resources/Textures/Clothing/Mask/welding-gas.rsi/icon.png new file mode 100644 index 0000000000..cdb8d4b7c7 Binary files /dev/null and b/Resources/Textures/Clothing/Mask/welding-gas.rsi/icon.png differ diff --git a/Resources/Textures/Clothing/Mask/welding-gas.rsi/inhand-left.png b/Resources/Textures/Clothing/Mask/welding-gas.rsi/inhand-left.png new file mode 100644 index 0000000000..c5111a66a9 Binary files /dev/null and b/Resources/Textures/Clothing/Mask/welding-gas.rsi/inhand-left.png differ diff --git a/Resources/Textures/Clothing/Mask/welding-gas.rsi/inhand-right.png b/Resources/Textures/Clothing/Mask/welding-gas.rsi/inhand-right.png new file mode 100644 index 0000000000..5841f0b846 Binary files /dev/null and b/Resources/Textures/Clothing/Mask/welding-gas.rsi/inhand-right.png differ diff --git a/Resources/Textures/Clothing/Mask/welding-gas.rsi/meta.json b/Resources/Textures/Clothing/Mask/welding-gas.rsi/meta.json new file mode 100644 index 0000000000..8e9b857325 --- /dev/null +++ b/Resources/Textures/Clothing/Mask/welding-gas.rsi/meta.json @@ -0,0 +1,49 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/6f5ca45e3ac06b30fb1957042214a888d8c01722. Inhands, worn sprites, and vox sprites created by EmoGarbage404 (github)", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "icon-up" + }, + { + "name": "equipped-MASK", + "directions": 4 + }, + { + "name": "up-equipped-MASK", + "directions": 4 + }, + { + "name": "equipped-MASK-vox", + "directions": 4 + }, + { + "name": "up-equipped-MASK-vox", + "directions": 4 + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + }, + { + "name": "up-inhand-left", + "directions": 4 + }, + { + "name": "up-inhand-right", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/Clothing/Mask/welding-gas.rsi/up-equipped-MASK-vox.png b/Resources/Textures/Clothing/Mask/welding-gas.rsi/up-equipped-MASK-vox.png new file mode 100644 index 0000000000..90871d7d00 Binary files /dev/null and b/Resources/Textures/Clothing/Mask/welding-gas.rsi/up-equipped-MASK-vox.png differ diff --git a/Resources/Textures/Clothing/Mask/welding-gas.rsi/up-equipped-MASK.png b/Resources/Textures/Clothing/Mask/welding-gas.rsi/up-equipped-MASK.png new file mode 100644 index 0000000000..449c8624c9 Binary files /dev/null and b/Resources/Textures/Clothing/Mask/welding-gas.rsi/up-equipped-MASK.png differ diff --git a/Resources/Textures/Clothing/Mask/welding-gas.rsi/up-inhand-left.png b/Resources/Textures/Clothing/Mask/welding-gas.rsi/up-inhand-left.png new file mode 100644 index 0000000000..2868ab8317 Binary files /dev/null and b/Resources/Textures/Clothing/Mask/welding-gas.rsi/up-inhand-left.png differ diff --git a/Resources/Textures/Clothing/Mask/welding-gas.rsi/up-inhand-right.png b/Resources/Textures/Clothing/Mask/welding-gas.rsi/up-inhand-right.png new file mode 100644 index 0000000000..1362d99011 Binary files /dev/null and b/Resources/Textures/Clothing/Mask/welding-gas.rsi/up-inhand-right.png differ diff --git a/Resources/Textures/Clothing/Neck/Misc/whistles.rsi/meta.json b/Resources/Textures/Clothing/Neck/Misc/whistles.rsi/meta.json deleted file mode 100644 index 31cda14261..0000000000 --- a/Resources/Textures/Clothing/Neck/Misc/whistles.rsi/meta.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "version": 1, - "license": "CC-BY-SA-3.0", - "copyright": "Drawn by Firewatchin on Discord.", - "size": { - "x": 32, - "y": 32 - }, - - "states": [ - { - "name": "equipped-NECK", - "directions": 4 - }, - { - "name": "icon" - } - ] -} diff --git a/Resources/Textures/Clothing/OuterClothing/Armor/armor_reflec.rsi/equipped-OUTERCLOTHING-vox.png b/Resources/Textures/Clothing/OuterClothing/Armor/armor_reflec.rsi/equipped-OUTERCLOTHING-vox.png new file mode 100644 index 0000000000..9d92b21329 Binary files /dev/null and b/Resources/Textures/Clothing/OuterClothing/Armor/armor_reflec.rsi/equipped-OUTERCLOTHING-vox.png differ diff --git a/Resources/Textures/Clothing/OuterClothing/Armor/armor_reflec.rsi/meta.json b/Resources/Textures/Clothing/OuterClothing/Armor/armor_reflec.rsi/meta.json index c7a0afcae3..5f95573206 100644 --- a/Resources/Textures/Clothing/OuterClothing/Armor/armor_reflec.rsi/meta.json +++ b/Resources/Textures/Clothing/OuterClothing/Armor/armor_reflec.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/dbc2435fa562f4ef130a7112d2a4cc9c80099894", + "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/dbc2435fa562f4ef130a7112d2a4cc9c80099894. equipped-OUTERCLOTHING-vox state taken from /vg/station at commit https://github.com/vgstation-coders/vgstation13/commit/31d6576ba8102135d058ef49c3cb6ecbe8db8a79", "size": { "x": 32, "y": 32 @@ -14,6 +14,10 @@ "name": "equipped-OUTERCLOTHING", "directions": 4 }, + { + "name": "equipped-OUTERCLOTHING-vox", + "directions": 4 + }, { "name": "inhand-left", "directions": 4 diff --git a/Resources/Textures/Clothing/OuterClothing/Armor/bulletproof.rsi/equipped-OUTERCLOTHING-vox.png b/Resources/Textures/Clothing/OuterClothing/Armor/bulletproof.rsi/equipped-OUTERCLOTHING-vox.png new file mode 100644 index 0000000000..cffb51e5e5 Binary files /dev/null and b/Resources/Textures/Clothing/OuterClothing/Armor/bulletproof.rsi/equipped-OUTERCLOTHING-vox.png differ diff --git a/Resources/Textures/Clothing/OuterClothing/Armor/bulletproof.rsi/meta.json b/Resources/Textures/Clothing/OuterClothing/Armor/bulletproof.rsi/meta.json index 9ae7fc3f93..8b7a929fcd 100644 --- a/Resources/Textures/Clothing/OuterClothing/Armor/bulletproof.rsi/meta.json +++ b/Resources/Textures/Clothing/OuterClothing/Armor/bulletproof.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "Taken from https://github.com/ParadiseSS13/Paradise", + "copyright": "Taken from https://github.com/ParadiseSS13/Paradise. Vox states by Flareguy for Space Station 14", "size": { "x": 32, "y": 32 @@ -14,6 +14,10 @@ "name": "equipped-OUTERCLOTHING", "directions": 4 }, + { + "name": "equipped-OUTERCLOTHING-vox", + "directions": 4 + }, { "name": "inhand-left", "directions": 4 diff --git a/Resources/Textures/Clothing/OuterClothing/Armor/captain_carapace.rsi/equipped-OUTERCLOTHING-vox.png b/Resources/Textures/Clothing/OuterClothing/Armor/captain_carapace.rsi/equipped-OUTERCLOTHING-vox.png new file mode 100644 index 0000000000..e0bfdfbc38 Binary files /dev/null and b/Resources/Textures/Clothing/OuterClothing/Armor/captain_carapace.rsi/equipped-OUTERCLOTHING-vox.png differ diff --git a/Resources/Textures/Clothing/OuterClothing/Armor/captain_carapace.rsi/meta.json b/Resources/Textures/Clothing/OuterClothing/Armor/captain_carapace.rsi/meta.json index b979f8bfb8..a9366f0bc1 100644 --- a/Resources/Textures/Clothing/OuterClothing/Armor/captain_carapace.rsi/meta.json +++ b/Resources/Textures/Clothing/OuterClothing/Armor/captain_carapace.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "Taken from tgstation at https://github.com/tgstation/tgstation/pull/69842/commits/d8138946b0ed06fced522729ac8eaa0596864329 edited by Skarletto (github), edited by Emisse for ss14", + "copyright": "Taken from tgstation at https://github.com/tgstation/tgstation/pull/69842/commits/d8138946b0ed06fced522729ac8eaa0596864329 edited by Skarletto (github), edited by Emisse for ss14. Vox state by Flareguy for SS14", "size": { "x": 32, "y": 32 @@ -14,6 +14,10 @@ "name": "equipped-OUTERCLOTHING", "directions": 4 }, + { + "name": "equipped-OUTERCLOTHING-vox", + "directions": 4 + }, { "name": "inhand-left", "directions": 4 diff --git a/Resources/Textures/Clothing/OuterClothing/Armor/cult_armour.rsi/equipped-OUTERCLOTHING-vox.png b/Resources/Textures/Clothing/OuterClothing/Armor/cult_armour.rsi/equipped-OUTERCLOTHING-vox.png new file mode 100644 index 0000000000..599e73c76f Binary files /dev/null and b/Resources/Textures/Clothing/OuterClothing/Armor/cult_armour.rsi/equipped-OUTERCLOTHING-vox.png differ diff --git a/Resources/Textures/Clothing/OuterClothing/Armor/cult_armour.rsi/meta.json b/Resources/Textures/Clothing/OuterClothing/Armor/cult_armour.rsi/meta.json index e482264df5..5c326232e4 100644 --- a/Resources/Textures/Clothing/OuterClothing/Armor/cult_armour.rsi/meta.json +++ b/Resources/Textures/Clothing/OuterClothing/Armor/cult_armour.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e", + "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e. equipped-OUTERCLOTHING-vox state taken from Paradise at https://github.com/ParadiseSS13/Paradise/blob/fce54deb01d465957691ba2907218d4af4830db2/icons/mob/clothing/species/vox/suit.dmi and north sprite modified", "size": { "x": 32, "y": 32 @@ -14,6 +14,10 @@ "name": "equipped-OUTERCLOTHING", "directions": 4 }, + { + "name": "equipped-OUTERCLOTHING-vox", + "directions": 4 + }, { "name": "inhand-left", "directions": 4 diff --git a/Resources/Textures/Clothing/OuterClothing/Armor/heavygreen.rsi/equipped-OUTERCLOTHING-vox.png b/Resources/Textures/Clothing/OuterClothing/Armor/heavygreen.rsi/equipped-OUTERCLOTHING-vox.png new file mode 100644 index 0000000000..f37eba3359 Binary files /dev/null and b/Resources/Textures/Clothing/OuterClothing/Armor/heavygreen.rsi/equipped-OUTERCLOTHING-vox.png differ diff --git a/Resources/Textures/Clothing/OuterClothing/Armor/heavygreen.rsi/meta.json b/Resources/Textures/Clothing/OuterClothing/Armor/heavygreen.rsi/meta.json index e482264df5..232bec9c0a 100644 --- a/Resources/Textures/Clothing/OuterClothing/Armor/heavygreen.rsi/meta.json +++ b/Resources/Textures/Clothing/OuterClothing/Armor/heavygreen.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e", + "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e. equipped-OUTERCLOTHING-vox state taken from /vg/station at commit https://github.com/vgstation-coders/vgstation13/commit/31d6576ba8102135d058ef49c3cb6ecbe8db8a79", "size": { "x": 32, "y": 32 @@ -14,6 +14,10 @@ "name": "equipped-OUTERCLOTHING", "directions": 4 }, + { + "name": "equipped-OUTERCLOTHING-vox", + "directions": 4 + }, { "name": "inhand-left", "directions": 4 diff --git a/Resources/Textures/Clothing/OuterClothing/Armor/heavyred.rsi/equipped-OUTERCLOTHING-vox.png b/Resources/Textures/Clothing/OuterClothing/Armor/heavyred.rsi/equipped-OUTERCLOTHING-vox.png new file mode 100644 index 0000000000..164f5e4592 Binary files /dev/null and b/Resources/Textures/Clothing/OuterClothing/Armor/heavyred.rsi/equipped-OUTERCLOTHING-vox.png differ diff --git a/Resources/Textures/Clothing/OuterClothing/Armor/heavyred.rsi/meta.json b/Resources/Textures/Clothing/OuterClothing/Armor/heavyred.rsi/meta.json index e482264df5..232bec9c0a 100644 --- a/Resources/Textures/Clothing/OuterClothing/Armor/heavyred.rsi/meta.json +++ b/Resources/Textures/Clothing/OuterClothing/Armor/heavyred.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e", + "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e. equipped-OUTERCLOTHING-vox state taken from /vg/station at commit https://github.com/vgstation-coders/vgstation13/commit/31d6576ba8102135d058ef49c3cb6ecbe8db8a79", "size": { "x": 32, "y": 32 @@ -14,6 +14,10 @@ "name": "equipped-OUTERCLOTHING", "directions": 4 }, + { + "name": "equipped-OUTERCLOTHING-vox", + "directions": 4 + }, { "name": "inhand-left", "directions": 4 diff --git a/Resources/Textures/Clothing/OuterClothing/Armor/riot.rsi/equipped-OUTERCLOTHING-vox.png b/Resources/Textures/Clothing/OuterClothing/Armor/riot.rsi/equipped-OUTERCLOTHING-vox.png new file mode 100644 index 0000000000..f0e99ee3c3 Binary files /dev/null and b/Resources/Textures/Clothing/OuterClothing/Armor/riot.rsi/equipped-OUTERCLOTHING-vox.png differ diff --git a/Resources/Textures/Clothing/OuterClothing/Armor/riot.rsi/meta.json b/Resources/Textures/Clothing/OuterClothing/Armor/riot.rsi/meta.json index afdd4120b5..26631d0281 100644 --- a/Resources/Textures/Clothing/OuterClothing/Armor/riot.rsi/meta.json +++ b/Resources/Textures/Clothing/OuterClothing/Armor/riot.rsi/meta.json @@ -1,26 +1,30 @@ { - "version": 1, - "license": "CC-BY-SA-3.0", - "copyright": "Taken from https://github.com/ParadiseSS13/Paradise", - "size": { - "x": 32, - "y": 32 - }, - "states": [ - { - "name": "icon" + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from https://github.com/ParadiseSS13/Paradise. Vox state by Flareguy for Space Station 14", + "size": { + "x": 32, + "y": 32 }, - { - "name": "equipped-OUTERCLOTHING", - "directions": 4 - }, - { - "name": "inhand-left", - "directions": 4 - }, - { - "name": "inhand-right", - "directions": 4 - } - ] -} + "states": [ + { + "name": "icon" + }, + { + "name": "equipped-OUTERCLOTHING", + "directions": 4 + }, + { + "name": "equipped-OUTERCLOTHING-vox", + "directions": 4 + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + } + ] +} \ No newline at end of file diff --git a/Resources/Textures/Clothing/OuterClothing/Armor/security.rsi/equipped-OUTERCLOTHING-vox.png b/Resources/Textures/Clothing/OuterClothing/Armor/security.rsi/equipped-OUTERCLOTHING-vox.png new file mode 100644 index 0000000000..1d9b1d1459 Binary files /dev/null and b/Resources/Textures/Clothing/OuterClothing/Armor/security.rsi/equipped-OUTERCLOTHING-vox.png differ diff --git a/Resources/Textures/Clothing/OuterClothing/Armor/security.rsi/meta.json b/Resources/Textures/Clothing/OuterClothing/Armor/security.rsi/meta.json index afdd4120b5..00bef7108a 100644 --- a/Resources/Textures/Clothing/OuterClothing/Armor/security.rsi/meta.json +++ b/Resources/Textures/Clothing/OuterClothing/Armor/security.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "Taken from https://github.com/ParadiseSS13/Paradise", + "copyright": "Taken from https://github.com/ParadiseSS13/Paradise. Vox state by Flareguy for Space Station 14", "size": { "x": 32, "y": 32 @@ -14,6 +14,10 @@ "name": "equipped-OUTERCLOTHING", "directions": 4 }, + { + "name": "equipped-OUTERCLOTHING-vox", + "directions": 4 + }, { "name": "inhand-left", "directions": 4 diff --git a/Resources/Textures/Clothing/OuterClothing/Armor/security_slim.rsi/equipped-OUTERCLOTHING-vox.png b/Resources/Textures/Clothing/OuterClothing/Armor/security_slim.rsi/equipped-OUTERCLOTHING-vox.png new file mode 100644 index 0000000000..ea3c78dfbe Binary files /dev/null and b/Resources/Textures/Clothing/OuterClothing/Armor/security_slim.rsi/equipped-OUTERCLOTHING-vox.png differ diff --git a/Resources/Textures/Clothing/OuterClothing/Armor/security_slim.rsi/meta.json b/Resources/Textures/Clothing/OuterClothing/Armor/security_slim.rsi/meta.json index afdd4120b5..26631d0281 100644 --- a/Resources/Textures/Clothing/OuterClothing/Armor/security_slim.rsi/meta.json +++ b/Resources/Textures/Clothing/OuterClothing/Armor/security_slim.rsi/meta.json @@ -1,26 +1,30 @@ { - "version": 1, - "license": "CC-BY-SA-3.0", - "copyright": "Taken from https://github.com/ParadiseSS13/Paradise", - "size": { - "x": 32, - "y": 32 - }, - "states": [ - { - "name": "icon" + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from https://github.com/ParadiseSS13/Paradise. Vox state by Flareguy for Space Station 14", + "size": { + "x": 32, + "y": 32 }, - { - "name": "equipped-OUTERCLOTHING", - "directions": 4 - }, - { - "name": "inhand-left", - "directions": 4 - }, - { - "name": "inhand-right", - "directions": 4 - } - ] -} + "states": [ + { + "name": "icon" + }, + { + "name": "equipped-OUTERCLOTHING", + "directions": 4 + }, + { + "name": "equipped-OUTERCLOTHING-vox", + "directions": 4 + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + } + ] +} \ No newline at end of file diff --git a/Resources/Textures/Clothing/OuterClothing/Bio/cmo.rsi/equipped-OUTERCLOTHING-vox.png b/Resources/Textures/Clothing/OuterClothing/Bio/cmo.rsi/equipped-OUTERCLOTHING-vox.png new file mode 100644 index 0000000000..e62fa89ab5 Binary files /dev/null and b/Resources/Textures/Clothing/OuterClothing/Bio/cmo.rsi/equipped-OUTERCLOTHING-vox.png differ diff --git a/Resources/Textures/Clothing/OuterClothing/Bio/cmo.rsi/meta.json b/Resources/Textures/Clothing/OuterClothing/Bio/cmo.rsi/meta.json index e482264df5..ca1146d007 100644 --- a/Resources/Textures/Clothing/OuterClothing/Bio/cmo.rsi/meta.json +++ b/Resources/Textures/Clothing/OuterClothing/Bio/cmo.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e", + "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e. equipped-OUTERCLOTHING-vox state taken from /vg/station at commit https://github.com/vgstation-coders/vgstation13/commit/31d6576ba8102135d058ef49c3cb6ecbe8db8a79", "size": { "x": 32, "y": 32 @@ -21,6 +21,10 @@ { "name": "inhand-right", "directions": 4 + }, + { + "name": "equipped-OUTERCLOTHING-vox", + "directions": 4 } ] } diff --git a/Resources/Textures/Clothing/OuterClothing/Bio/general.rsi/equipped-OUTERCLOTHING-vox.png b/Resources/Textures/Clothing/OuterClothing/Bio/general.rsi/equipped-OUTERCLOTHING-vox.png new file mode 100644 index 0000000000..0a224c92b9 Binary files /dev/null and b/Resources/Textures/Clothing/OuterClothing/Bio/general.rsi/equipped-OUTERCLOTHING-vox.png differ diff --git a/Resources/Textures/Clothing/OuterClothing/Bio/general.rsi/meta.json b/Resources/Textures/Clothing/OuterClothing/Bio/general.rsi/meta.json index e482264df5..232bec9c0a 100644 --- a/Resources/Textures/Clothing/OuterClothing/Bio/general.rsi/meta.json +++ b/Resources/Textures/Clothing/OuterClothing/Bio/general.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e", + "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e. equipped-OUTERCLOTHING-vox state taken from /vg/station at commit https://github.com/vgstation-coders/vgstation13/commit/31d6576ba8102135d058ef49c3cb6ecbe8db8a79", "size": { "x": 32, "y": 32 @@ -14,6 +14,10 @@ "name": "equipped-OUTERCLOTHING", "directions": 4 }, + { + "name": "equipped-OUTERCLOTHING-vox", + "directions": 4 + }, { "name": "inhand-left", "directions": 4 diff --git a/Resources/Textures/Clothing/OuterClothing/Bio/janitor.rsi/equipped-OUTERCLOTHING-vox.png b/Resources/Textures/Clothing/OuterClothing/Bio/janitor.rsi/equipped-OUTERCLOTHING-vox.png new file mode 100644 index 0000000000..82b0ea9f36 Binary files /dev/null and b/Resources/Textures/Clothing/OuterClothing/Bio/janitor.rsi/equipped-OUTERCLOTHING-vox.png differ diff --git a/Resources/Textures/Clothing/OuterClothing/Bio/janitor.rsi/meta.json b/Resources/Textures/Clothing/OuterClothing/Bio/janitor.rsi/meta.json index e482264df5..ca1146d007 100644 --- a/Resources/Textures/Clothing/OuterClothing/Bio/janitor.rsi/meta.json +++ b/Resources/Textures/Clothing/OuterClothing/Bio/janitor.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e", + "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e. equipped-OUTERCLOTHING-vox state taken from /vg/station at commit https://github.com/vgstation-coders/vgstation13/commit/31d6576ba8102135d058ef49c3cb6ecbe8db8a79", "size": { "x": 32, "y": 32 @@ -21,6 +21,10 @@ { "name": "inhand-right", "directions": 4 + }, + { + "name": "equipped-OUTERCLOTHING-vox", + "directions": 4 } ] } diff --git a/Resources/Textures/Clothing/OuterClothing/Bio/scientist.rsi/equipped-OUTERCLOTHING-vox.png b/Resources/Textures/Clothing/OuterClothing/Bio/scientist.rsi/equipped-OUTERCLOTHING-vox.png new file mode 100644 index 0000000000..044d87e2f6 Binary files /dev/null and b/Resources/Textures/Clothing/OuterClothing/Bio/scientist.rsi/equipped-OUTERCLOTHING-vox.png differ diff --git a/Resources/Textures/Clothing/OuterClothing/Bio/scientist.rsi/meta.json b/Resources/Textures/Clothing/OuterClothing/Bio/scientist.rsi/meta.json index e482264df5..ca1146d007 100644 --- a/Resources/Textures/Clothing/OuterClothing/Bio/scientist.rsi/meta.json +++ b/Resources/Textures/Clothing/OuterClothing/Bio/scientist.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e", + "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e. equipped-OUTERCLOTHING-vox state taken from /vg/station at commit https://github.com/vgstation-coders/vgstation13/commit/31d6576ba8102135d058ef49c3cb6ecbe8db8a79", "size": { "x": 32, "y": 32 @@ -21,6 +21,10 @@ { "name": "inhand-right", "directions": 4 + }, + { + "name": "equipped-OUTERCLOTHING-vox", + "directions": 4 } ] } diff --git a/Resources/Textures/Clothing/OuterClothing/Bio/security.rsi/equipped-OUTERCLOTHING-vox.png b/Resources/Textures/Clothing/OuterClothing/Bio/security.rsi/equipped-OUTERCLOTHING-vox.png new file mode 100644 index 0000000000..e426556e7d Binary files /dev/null and b/Resources/Textures/Clothing/OuterClothing/Bio/security.rsi/equipped-OUTERCLOTHING-vox.png differ diff --git a/Resources/Textures/Clothing/OuterClothing/Bio/security.rsi/meta.json b/Resources/Textures/Clothing/OuterClothing/Bio/security.rsi/meta.json index e482264df5..ca1146d007 100644 --- a/Resources/Textures/Clothing/OuterClothing/Bio/security.rsi/meta.json +++ b/Resources/Textures/Clothing/OuterClothing/Bio/security.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e", + "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e. equipped-OUTERCLOTHING-vox state taken from /vg/station at commit https://github.com/vgstation-coders/vgstation13/commit/31d6576ba8102135d058ef49c3cb6ecbe8db8a79", "size": { "x": 32, "y": 32 @@ -21,6 +21,10 @@ { "name": "inhand-right", "directions": 4 + }, + { + "name": "equipped-OUTERCLOTHING-vox", + "directions": 4 } ] } diff --git a/Resources/Textures/Clothing/OuterClothing/Bio/virology.rsi/equipped-OUTERCLOTHING-vox.png b/Resources/Textures/Clothing/OuterClothing/Bio/virology.rsi/equipped-OUTERCLOTHING-vox.png new file mode 100644 index 0000000000..f6b5c43d2b Binary files /dev/null and b/Resources/Textures/Clothing/OuterClothing/Bio/virology.rsi/equipped-OUTERCLOTHING-vox.png differ diff --git a/Resources/Textures/Clothing/OuterClothing/Bio/virology.rsi/meta.json b/Resources/Textures/Clothing/OuterClothing/Bio/virology.rsi/meta.json index e482264df5..ca1146d007 100644 --- a/Resources/Textures/Clothing/OuterClothing/Bio/virology.rsi/meta.json +++ b/Resources/Textures/Clothing/OuterClothing/Bio/virology.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e", + "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e. equipped-OUTERCLOTHING-vox state taken from /vg/station at commit https://github.com/vgstation-coders/vgstation13/commit/31d6576ba8102135d058ef49c3cb6ecbe8db8a79", "size": { "x": 32, "y": 32 @@ -21,6 +21,10 @@ { "name": "inhand-right", "directions": 4 + }, + { + "name": "equipped-OUTERCLOTHING-vox", + "directions": 4 } ] } diff --git a/Resources/Textures/Clothing/OuterClothing/Coats/expensive_coat.rsi/equipped-OUTERCLOTHING-vox.png b/Resources/Textures/Clothing/OuterClothing/Coats/expensive_coat.rsi/equipped-OUTERCLOTHING-vox.png new file mode 100644 index 0000000000..1fd6c3828d Binary files /dev/null and b/Resources/Textures/Clothing/OuterClothing/Coats/expensive_coat.rsi/equipped-OUTERCLOTHING-vox.png differ diff --git a/Resources/Textures/Clothing/OuterClothing/Coats/expensive_coat.rsi/meta.json b/Resources/Textures/Clothing/OuterClothing/Coats/expensive_coat.rsi/meta.json index 20e876460d..cc68d97d37 100644 --- a/Resources/Textures/Clothing/OuterClothing/Coats/expensive_coat.rsi/meta.json +++ b/Resources/Textures/Clothing/OuterClothing/Coats/expensive_coat.rsi/meta.json @@ -11,6 +11,10 @@ "name": "equipped-OUTERCLOTHING", "directions": 4 }, + { + "name": "equipped-OUTERCLOTHING-vox", + "directions": 4 + }, { "name": "icon" } diff --git a/Resources/Textures/Clothing/OuterClothing/Coats/hos_trenchcoat.rsi/equipped-OUTERCLOTHING-vox.png b/Resources/Textures/Clothing/OuterClothing/Coats/hos_trenchcoat.rsi/equipped-OUTERCLOTHING-vox.png new file mode 100644 index 0000000000..31e6f31708 Binary files /dev/null and b/Resources/Textures/Clothing/OuterClothing/Coats/hos_trenchcoat.rsi/equipped-OUTERCLOTHING-vox.png differ diff --git a/Resources/Textures/Clothing/OuterClothing/Coats/hos_trenchcoat.rsi/meta.json b/Resources/Textures/Clothing/OuterClothing/Coats/hos_trenchcoat.rsi/meta.json index 55e082d620..fa20ea7d59 100644 --- a/Resources/Textures/Clothing/OuterClothing/Coats/hos_trenchcoat.rsi/meta.json +++ b/Resources/Textures/Clothing/OuterClothing/Coats/hos_trenchcoat.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e , edited by Alekshhh", + "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e , edited by Alekshhh. Vox state made by Flareguy for SS14", "size": { "x": 32, "y": 32 @@ -14,6 +14,10 @@ "name": "equipped-OUTERCLOTHING", "directions": 4 }, + { + "name": "equipped-OUTERCLOTHING-vox", + "directions": 4 + }, { "name": "inhand-left", "directions": 4 diff --git a/Resources/Textures/Clothing/OuterClothing/Coats/jensencoat.rsi/equipped-OUTERCLOTHING-vox.png b/Resources/Textures/Clothing/OuterClothing/Coats/jensencoat.rsi/equipped-OUTERCLOTHING-vox.png new file mode 100644 index 0000000000..59bf1f287b Binary files /dev/null and b/Resources/Textures/Clothing/OuterClothing/Coats/jensencoat.rsi/equipped-OUTERCLOTHING-vox.png differ diff --git a/Resources/Textures/Clothing/OuterClothing/Coats/jensencoat.rsi/meta.json b/Resources/Textures/Clothing/OuterClothing/Coats/jensencoat.rsi/meta.json index e482264df5..232bec9c0a 100644 --- a/Resources/Textures/Clothing/OuterClothing/Coats/jensencoat.rsi/meta.json +++ b/Resources/Textures/Clothing/OuterClothing/Coats/jensencoat.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e", + "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e. equipped-OUTERCLOTHING-vox state taken from /vg/station at commit https://github.com/vgstation-coders/vgstation13/commit/31d6576ba8102135d058ef49c3cb6ecbe8db8a79", "size": { "x": 32, "y": 32 @@ -14,6 +14,10 @@ "name": "equipped-OUTERCLOTHING", "directions": 4 }, + { + "name": "equipped-OUTERCLOTHING-vox", + "directions": 4 + }, { "name": "inhand-left", "directions": 4 diff --git a/Resources/Textures/Clothing/OuterClothing/Coats/labcoat.rsi/equipped-OUTERCLOTHING-vox.png b/Resources/Textures/Clothing/OuterClothing/Coats/labcoat.rsi/equipped-OUTERCLOTHING-vox.png new file mode 100644 index 0000000000..fa32996aa8 Binary files /dev/null and b/Resources/Textures/Clothing/OuterClothing/Coats/labcoat.rsi/equipped-OUTERCLOTHING-vox.png differ diff --git a/Resources/Textures/Clothing/OuterClothing/Coats/labcoat.rsi/meta.json b/Resources/Textures/Clothing/OuterClothing/Coats/labcoat.rsi/meta.json index 442bfb2920..2311851853 100644 --- a/Resources/Textures/Clothing/OuterClothing/Coats/labcoat.rsi/meta.json +++ b/Resources/Textures/Clothing/OuterClothing/Coats/labcoat.rsi/meta.json @@ -21,6 +21,14 @@ "name": "open-equipped-OUTERCLOTHING", "directions": 4 }, + { + "name": "equipped-OUTERCLOTHING-vox", + "directions": 4 + }, + { + "name": "open-equipped-OUTERCLOTHING-vox", + "directions": 4 + }, { "name": "inhand-left", "directions": 4 diff --git a/Resources/Textures/Clothing/OuterClothing/Coats/labcoat.rsi/open-equipped-OUTERCLOTHING-vox.png b/Resources/Textures/Clothing/OuterClothing/Coats/labcoat.rsi/open-equipped-OUTERCLOTHING-vox.png new file mode 100644 index 0000000000..ce7c029026 Binary files /dev/null and b/Resources/Textures/Clothing/OuterClothing/Coats/labcoat.rsi/open-equipped-OUTERCLOTHING-vox.png differ diff --git a/Resources/Textures/Clothing/OuterClothing/Coats/labcoat_chem.rsi/equipped-OUTERCLOTHING-vox.png b/Resources/Textures/Clothing/OuterClothing/Coats/labcoat_chem.rsi/equipped-OUTERCLOTHING-vox.png new file mode 100644 index 0000000000..6d96d0a037 Binary files /dev/null and b/Resources/Textures/Clothing/OuterClothing/Coats/labcoat_chem.rsi/equipped-OUTERCLOTHING-vox.png differ diff --git a/Resources/Textures/Clothing/OuterClothing/Coats/labcoat_chem.rsi/meta.json b/Resources/Textures/Clothing/OuterClothing/Coats/labcoat_chem.rsi/meta.json index 442bfb2920..2311851853 100644 --- a/Resources/Textures/Clothing/OuterClothing/Coats/labcoat_chem.rsi/meta.json +++ b/Resources/Textures/Clothing/OuterClothing/Coats/labcoat_chem.rsi/meta.json @@ -21,6 +21,14 @@ "name": "open-equipped-OUTERCLOTHING", "directions": 4 }, + { + "name": "equipped-OUTERCLOTHING-vox", + "directions": 4 + }, + { + "name": "open-equipped-OUTERCLOTHING-vox", + "directions": 4 + }, { "name": "inhand-left", "directions": 4 diff --git a/Resources/Textures/Clothing/OuterClothing/Coats/labcoat_chem.rsi/open-equipped-OUTERCLOTHING-vox.png b/Resources/Textures/Clothing/OuterClothing/Coats/labcoat_chem.rsi/open-equipped-OUTERCLOTHING-vox.png new file mode 100644 index 0000000000..f83538ee60 Binary files /dev/null and b/Resources/Textures/Clothing/OuterClothing/Coats/labcoat_chem.rsi/open-equipped-OUTERCLOTHING-vox.png differ diff --git a/Resources/Textures/Clothing/OuterClothing/Coats/labcoat_cmo.rsi/equipped-OUTERCLOTHING-vox.png b/Resources/Textures/Clothing/OuterClothing/Coats/labcoat_cmo.rsi/equipped-OUTERCLOTHING-vox.png new file mode 100644 index 0000000000..58b84263ac Binary files /dev/null and b/Resources/Textures/Clothing/OuterClothing/Coats/labcoat_cmo.rsi/equipped-OUTERCLOTHING-vox.png differ diff --git a/Resources/Textures/Clothing/OuterClothing/Coats/labcoat_cmo.rsi/meta.json b/Resources/Textures/Clothing/OuterClothing/Coats/labcoat_cmo.rsi/meta.json index 02abb07806..c2b48b1d76 100644 --- a/Resources/Textures/Clothing/OuterClothing/Coats/labcoat_cmo.rsi/meta.json +++ b/Resources/Textures/Clothing/OuterClothing/Coats/labcoat_cmo.rsi/meta.json @@ -21,6 +21,14 @@ "name": "open-equipped-OUTERCLOTHING", "directions": 4 }, + { + "name": "equipped-OUTERCLOTHING-vox", + "directions": 4 + }, + { + "name": "open-equipped-OUTERCLOTHING-vox", + "directions": 4 + }, { "name": "inhand-left", "directions": 4 diff --git a/Resources/Textures/Clothing/OuterClothing/Coats/labcoat_cmo.rsi/open-equipped-OUTERCLOTHING-vox.png b/Resources/Textures/Clothing/OuterClothing/Coats/labcoat_cmo.rsi/open-equipped-OUTERCLOTHING-vox.png new file mode 100644 index 0000000000..547839061b Binary files /dev/null and b/Resources/Textures/Clothing/OuterClothing/Coats/labcoat_cmo.rsi/open-equipped-OUTERCLOTHING-vox.png differ diff --git a/Resources/Textures/Clothing/OuterClothing/Coats/labcoat_gene.rsi/equipped-OUTERCLOTHING-vox.png b/Resources/Textures/Clothing/OuterClothing/Coats/labcoat_gene.rsi/equipped-OUTERCLOTHING-vox.png new file mode 100644 index 0000000000..fa9a53d373 Binary files /dev/null and b/Resources/Textures/Clothing/OuterClothing/Coats/labcoat_gene.rsi/equipped-OUTERCLOTHING-vox.png differ diff --git a/Resources/Textures/Clothing/OuterClothing/Coats/labcoat_gene.rsi/meta.json b/Resources/Textures/Clothing/OuterClothing/Coats/labcoat_gene.rsi/meta.json index 442bfb2920..2311851853 100644 --- a/Resources/Textures/Clothing/OuterClothing/Coats/labcoat_gene.rsi/meta.json +++ b/Resources/Textures/Clothing/OuterClothing/Coats/labcoat_gene.rsi/meta.json @@ -21,6 +21,14 @@ "name": "open-equipped-OUTERCLOTHING", "directions": 4 }, + { + "name": "equipped-OUTERCLOTHING-vox", + "directions": 4 + }, + { + "name": "open-equipped-OUTERCLOTHING-vox", + "directions": 4 + }, { "name": "inhand-left", "directions": 4 diff --git a/Resources/Textures/Clothing/OuterClothing/Coats/labcoat_gene.rsi/open-equipped-OUTERCLOTHING-vox.png b/Resources/Textures/Clothing/OuterClothing/Coats/labcoat_gene.rsi/open-equipped-OUTERCLOTHING-vox.png new file mode 100644 index 0000000000..9cba3e8ef3 Binary files /dev/null and b/Resources/Textures/Clothing/OuterClothing/Coats/labcoat_gene.rsi/open-equipped-OUTERCLOTHING-vox.png differ diff --git a/Resources/Textures/Clothing/OuterClothing/Coats/labcoat_viro.rsi/equipped-OUTERCLOTHING-vox.png b/Resources/Textures/Clothing/OuterClothing/Coats/labcoat_viro.rsi/equipped-OUTERCLOTHING-vox.png new file mode 100644 index 0000000000..e432bb2d01 Binary files /dev/null and b/Resources/Textures/Clothing/OuterClothing/Coats/labcoat_viro.rsi/equipped-OUTERCLOTHING-vox.png differ diff --git a/Resources/Textures/Clothing/OuterClothing/Coats/labcoat_viro.rsi/meta.json b/Resources/Textures/Clothing/OuterClothing/Coats/labcoat_viro.rsi/meta.json index 6cb239d8c8..4d788f71ee 100644 --- a/Resources/Textures/Clothing/OuterClothing/Coats/labcoat_viro.rsi/meta.json +++ b/Resources/Textures/Clothing/OuterClothing/Coats/labcoat_viro.rsi/meta.json @@ -21,6 +21,14 @@ "name": "open-equipped-OUTERCLOTHING", "directions": 4 }, + { + "name": "equipped-OUTERCLOTHING-vox", + "directions": 4 + }, + { + "name": "open-equipped-OUTERCLOTHING-vox", + "directions": 4 + }, { "name": "inhand-left", "directions": 4 diff --git a/Resources/Textures/Clothing/OuterClothing/Coats/labcoat_viro.rsi/open-equipped-OUTERCLOTHING-vox.png b/Resources/Textures/Clothing/OuterClothing/Coats/labcoat_viro.rsi/open-equipped-OUTERCLOTHING-vox.png new file mode 100644 index 0000000000..2363b4118d Binary files /dev/null and b/Resources/Textures/Clothing/OuterClothing/Coats/labcoat_viro.rsi/open-equipped-OUTERCLOTHING-vox.png differ diff --git a/Resources/Textures/Clothing/OuterClothing/Coats/pirate.rsi/equipped-OUTERCLOTHING-vox.png b/Resources/Textures/Clothing/OuterClothing/Coats/pirate.rsi/equipped-OUTERCLOTHING-vox.png new file mode 100644 index 0000000000..1679773c73 Binary files /dev/null and b/Resources/Textures/Clothing/OuterClothing/Coats/pirate.rsi/equipped-OUTERCLOTHING-vox.png differ diff --git a/Resources/Textures/Clothing/OuterClothing/Coats/pirate.rsi/meta.json b/Resources/Textures/Clothing/OuterClothing/Coats/pirate.rsi/meta.json index e482264df5..232bec9c0a 100644 --- a/Resources/Textures/Clothing/OuterClothing/Coats/pirate.rsi/meta.json +++ b/Resources/Textures/Clothing/OuterClothing/Coats/pirate.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e", + "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e. equipped-OUTERCLOTHING-vox state taken from /vg/station at commit https://github.com/vgstation-coders/vgstation13/commit/31d6576ba8102135d058ef49c3cb6ecbe8db8a79", "size": { "x": 32, "y": 32 @@ -14,6 +14,10 @@ "name": "equipped-OUTERCLOTHING", "directions": 4 }, + { + "name": "equipped-OUTERCLOTHING-vox", + "directions": 4 + }, { "name": "inhand-left", "directions": 4 diff --git a/Resources/Textures/Clothing/OuterClothing/Coats/rndcoat.rsi/equipped-OUTERCLOTHING-vox.png b/Resources/Textures/Clothing/OuterClothing/Coats/rndcoat.rsi/equipped-OUTERCLOTHING-vox.png new file mode 100644 index 0000000000..89369f8794 Binary files /dev/null and b/Resources/Textures/Clothing/OuterClothing/Coats/rndcoat.rsi/equipped-OUTERCLOTHING-vox.png differ diff --git a/Resources/Textures/Clothing/OuterClothing/Coats/rndcoat.rsi/meta.json b/Resources/Textures/Clothing/OuterClothing/Coats/rndcoat.rsi/meta.json index 442bfb2920..2311851853 100644 --- a/Resources/Textures/Clothing/OuterClothing/Coats/rndcoat.rsi/meta.json +++ b/Resources/Textures/Clothing/OuterClothing/Coats/rndcoat.rsi/meta.json @@ -21,6 +21,14 @@ "name": "open-equipped-OUTERCLOTHING", "directions": 4 }, + { + "name": "equipped-OUTERCLOTHING-vox", + "directions": 4 + }, + { + "name": "open-equipped-OUTERCLOTHING-vox", + "directions": 4 + }, { "name": "inhand-left", "directions": 4 diff --git a/Resources/Textures/Clothing/OuterClothing/Coats/rndcoat.rsi/open-equipped-OUTERCLOTHING-vox.png b/Resources/Textures/Clothing/OuterClothing/Coats/rndcoat.rsi/open-equipped-OUTERCLOTHING-vox.png new file mode 100644 index 0000000000..973451e5f5 Binary files /dev/null and b/Resources/Textures/Clothing/OuterClothing/Coats/rndcoat.rsi/open-equipped-OUTERCLOTHING-vox.png differ diff --git a/Resources/Textures/Clothing/OuterClothing/Coats/warden.rsi/equipped-OUTERCLOTHING-vox.png b/Resources/Textures/Clothing/OuterClothing/Coats/warden.rsi/equipped-OUTERCLOTHING-vox.png new file mode 100644 index 0000000000..a56db4fd53 Binary files /dev/null and b/Resources/Textures/Clothing/OuterClothing/Coats/warden.rsi/equipped-OUTERCLOTHING-vox.png differ diff --git a/Resources/Textures/Clothing/OuterClothing/Coats/warden.rsi/meta.json b/Resources/Textures/Clothing/OuterClothing/Coats/warden.rsi/meta.json index e482264df5..232bec9c0a 100644 --- a/Resources/Textures/Clothing/OuterClothing/Coats/warden.rsi/meta.json +++ b/Resources/Textures/Clothing/OuterClothing/Coats/warden.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e", + "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e. equipped-OUTERCLOTHING-vox state taken from /vg/station at commit https://github.com/vgstation-coders/vgstation13/commit/31d6576ba8102135d058ef49c3cb6ecbe8db8a79", "size": { "x": 32, "y": 32 @@ -14,6 +14,10 @@ "name": "equipped-OUTERCLOTHING", "directions": 4 }, + { + "name": "equipped-OUTERCLOTHING-vox", + "directions": 4 + }, { "name": "inhand-left", "directions": 4 diff --git a/Resources/Textures/Clothing/OuterClothing/Hardsuits/ERTSuits/ertengineer.rsi/equipped-OUTERCLOTHING-vox.png b/Resources/Textures/Clothing/OuterClothing/Hardsuits/ERTSuits/ertengineer.rsi/equipped-OUTERCLOTHING-vox.png new file mode 100644 index 0000000000..be85f19ea6 Binary files /dev/null and b/Resources/Textures/Clothing/OuterClothing/Hardsuits/ERTSuits/ertengineer.rsi/equipped-OUTERCLOTHING-vox.png differ diff --git a/Resources/Textures/Clothing/OuterClothing/Hardsuits/ERTSuits/ertengineer.rsi/meta.json b/Resources/Textures/Clothing/OuterClothing/Hardsuits/ERTSuits/ertengineer.rsi/meta.json index 4fbd43a08b..b7b0719efa 100644 --- a/Resources/Textures/Clothing/OuterClothing/Hardsuits/ERTSuits/ertengineer.rsi/meta.json +++ b/Resources/Textures/Clothing/OuterClothing/Hardsuits/ERTSuits/ertengineer.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "Taken from paradisestation at commit https://github.com/ParadiseSS13/Paradise/commit/12c21ced8432015485484b17e311dcceb7c458f6", + "copyright": "Taken from paradisestation at commit https://github.com/ParadiseSS13/Paradise/commit/12c21ced8432015485484b17e311dcceb7c458f6. Vox state by Flareguy for Space Station 14", "size": { "x": 32, "y": 32 @@ -14,6 +14,10 @@ "name": "equipped-OUTERCLOTHING", "directions": 4 }, + { + "name": "equipped-OUTERCLOTHING-vox", + "directions": 4 + }, { "name": "inhand-left", "directions": 4 diff --git a/Resources/Textures/Clothing/OuterClothing/Hardsuits/ERTSuits/ertjanitor.rsi/equipped-OUTERCLOTHING-vox.png b/Resources/Textures/Clothing/OuterClothing/Hardsuits/ERTSuits/ertjanitor.rsi/equipped-OUTERCLOTHING-vox.png new file mode 100644 index 0000000000..e5f648a31f Binary files /dev/null and b/Resources/Textures/Clothing/OuterClothing/Hardsuits/ERTSuits/ertjanitor.rsi/equipped-OUTERCLOTHING-vox.png differ diff --git a/Resources/Textures/Clothing/OuterClothing/Hardsuits/ERTSuits/ertjanitor.rsi/meta.json b/Resources/Textures/Clothing/OuterClothing/Hardsuits/ERTSuits/ertjanitor.rsi/meta.json index 4fbd43a08b..6de2d485b8 100644 --- a/Resources/Textures/Clothing/OuterClothing/Hardsuits/ERTSuits/ertjanitor.rsi/meta.json +++ b/Resources/Textures/Clothing/OuterClothing/Hardsuits/ERTSuits/ertjanitor.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "Taken from paradisestation at commit https://github.com/ParadiseSS13/Paradise/commit/12c21ced8432015485484b17e311dcceb7c458f6", + "copyright": "Taken from paradisestation at commit https://github.com/ParadiseSS13/Paradise/commit/12c21ced8432015485484b17e311dcceb7c458f6. Vox sprite by Flareguy for Space Station 14", "size": { "x": 32, "y": 32 @@ -14,6 +14,10 @@ "name": "equipped-OUTERCLOTHING", "directions": 4 }, + { + "name": "equipped-OUTERCLOTHING-vox", + "directions": 4 + }, { "name": "inhand-left", "directions": 4 diff --git a/Resources/Textures/Clothing/OuterClothing/Hardsuits/ERTSuits/ertleader.rsi/equipped-OUTERCLOTHING-vox.png b/Resources/Textures/Clothing/OuterClothing/Hardsuits/ERTSuits/ertleader.rsi/equipped-OUTERCLOTHING-vox.png new file mode 100644 index 0000000000..cb2c630801 Binary files /dev/null and b/Resources/Textures/Clothing/OuterClothing/Hardsuits/ERTSuits/ertleader.rsi/equipped-OUTERCLOTHING-vox.png differ diff --git a/Resources/Textures/Clothing/OuterClothing/Hardsuits/ERTSuits/ertleader.rsi/meta.json b/Resources/Textures/Clothing/OuterClothing/Hardsuits/ERTSuits/ertleader.rsi/meta.json index 4fbd43a08b..6de2d485b8 100644 --- a/Resources/Textures/Clothing/OuterClothing/Hardsuits/ERTSuits/ertleader.rsi/meta.json +++ b/Resources/Textures/Clothing/OuterClothing/Hardsuits/ERTSuits/ertleader.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "Taken from paradisestation at commit https://github.com/ParadiseSS13/Paradise/commit/12c21ced8432015485484b17e311dcceb7c458f6", + "copyright": "Taken from paradisestation at commit https://github.com/ParadiseSS13/Paradise/commit/12c21ced8432015485484b17e311dcceb7c458f6. Vox sprite by Flareguy for Space Station 14", "size": { "x": 32, "y": 32 @@ -14,6 +14,10 @@ "name": "equipped-OUTERCLOTHING", "directions": 4 }, + { + "name": "equipped-OUTERCLOTHING-vox", + "directions": 4 + }, { "name": "inhand-left", "directions": 4 diff --git a/Resources/Textures/Clothing/OuterClothing/Hardsuits/ERTSuits/ertmedical.rsi/equipped-OUTERCLOTHING-vox.png b/Resources/Textures/Clothing/OuterClothing/Hardsuits/ERTSuits/ertmedical.rsi/equipped-OUTERCLOTHING-vox.png new file mode 100644 index 0000000000..284954aabc Binary files /dev/null and b/Resources/Textures/Clothing/OuterClothing/Hardsuits/ERTSuits/ertmedical.rsi/equipped-OUTERCLOTHING-vox.png differ diff --git a/Resources/Textures/Clothing/OuterClothing/Hardsuits/ERTSuits/ertmedical.rsi/meta.json b/Resources/Textures/Clothing/OuterClothing/Hardsuits/ERTSuits/ertmedical.rsi/meta.json index 4fbd43a08b..daa64b2f5c 100644 --- a/Resources/Textures/Clothing/OuterClothing/Hardsuits/ERTSuits/ertmedical.rsi/meta.json +++ b/Resources/Textures/Clothing/OuterClothing/Hardsuits/ERTSuits/ertmedical.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "Taken from paradisestation at commit https://github.com/ParadiseSS13/Paradise/commit/12c21ced8432015485484b17e311dcceb7c458f6", + "copyright": "Taken from paradisestation at commit https://github.com/ParadiseSS13/Paradise/commit/12c21ced8432015485484b17e311dcceb7c458f6. Vox sprite made by Flareguy", "size": { "x": 32, "y": 32 @@ -14,6 +14,10 @@ "name": "equipped-OUTERCLOTHING", "directions": 4 }, + { + "name": "equipped-OUTERCLOTHING-vox", + "directions": 4 + }, { "name": "inhand-left", "directions": 4 diff --git a/Resources/Textures/Clothing/OuterClothing/Hardsuits/ERTSuits/ertsecurity.rsi/equipped-OUTERCLOTHING-vox.png b/Resources/Textures/Clothing/OuterClothing/Hardsuits/ERTSuits/ertsecurity.rsi/equipped-OUTERCLOTHING-vox.png new file mode 100644 index 0000000000..29130c57f0 Binary files /dev/null and b/Resources/Textures/Clothing/OuterClothing/Hardsuits/ERTSuits/ertsecurity.rsi/equipped-OUTERCLOTHING-vox.png differ diff --git a/Resources/Textures/Clothing/OuterClothing/Hardsuits/ERTSuits/ertsecurity.rsi/meta.json b/Resources/Textures/Clothing/OuterClothing/Hardsuits/ERTSuits/ertsecurity.rsi/meta.json index 4fbd43a08b..6de2d485b8 100644 --- a/Resources/Textures/Clothing/OuterClothing/Hardsuits/ERTSuits/ertsecurity.rsi/meta.json +++ b/Resources/Textures/Clothing/OuterClothing/Hardsuits/ERTSuits/ertsecurity.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "Taken from paradisestation at commit https://github.com/ParadiseSS13/Paradise/commit/12c21ced8432015485484b17e311dcceb7c458f6", + "copyright": "Taken from paradisestation at commit https://github.com/ParadiseSS13/Paradise/commit/12c21ced8432015485484b17e311dcceb7c458f6. Vox sprite by Flareguy for Space Station 14", "size": { "x": 32, "y": 32 @@ -14,6 +14,10 @@ "name": "equipped-OUTERCLOTHING", "directions": 4 }, + { + "name": "equipped-OUTERCLOTHING-vox", + "directions": 4 + }, { "name": "inhand-left", "directions": 4 diff --git a/Resources/Textures/Clothing/OuterClothing/Hardsuits/atmospherics.rsi/equipped-OUTERCLOTHING-vox.png b/Resources/Textures/Clothing/OuterClothing/Hardsuits/atmospherics.rsi/equipped-OUTERCLOTHING-vox.png new file mode 100644 index 0000000000..b896fbef73 Binary files /dev/null and b/Resources/Textures/Clothing/OuterClothing/Hardsuits/atmospherics.rsi/equipped-OUTERCLOTHING-vox.png differ diff --git a/Resources/Textures/Clothing/OuterClothing/Hardsuits/atmospherics.rsi/meta.json b/Resources/Textures/Clothing/OuterClothing/Hardsuits/atmospherics.rsi/meta.json index ef5e62cca4..2da9e2ad1d 100644 --- a/Resources/Textures/Clothing/OuterClothing/Hardsuits/atmospherics.rsi/meta.json +++ b/Resources/Textures/Clothing/OuterClothing/Hardsuits/atmospherics.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e", + "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e. Vox state made by Flareguy for SS14", "size": { "x": 32, "y": 32 @@ -14,6 +14,10 @@ "name": "equipped-OUTERCLOTHING", "directions": 4 }, + { + "name": "equipped-OUTERCLOTHING-vox", + "directions": 4 + }, { "name": "inhand-left", "directions": 4 diff --git a/Resources/Textures/Clothing/OuterClothing/Hardsuits/capspace.rsi/equipped-OUTERCLOTHING-vox.png b/Resources/Textures/Clothing/OuterClothing/Hardsuits/capspace.rsi/equipped-OUTERCLOTHING-vox.png new file mode 100644 index 0000000000..644c67846b Binary files /dev/null and b/Resources/Textures/Clothing/OuterClothing/Hardsuits/capspace.rsi/equipped-OUTERCLOTHING-vox.png differ diff --git a/Resources/Textures/Clothing/OuterClothing/Hardsuits/capspace.rsi/meta.json b/Resources/Textures/Clothing/OuterClothing/Hardsuits/capspace.rsi/meta.json index 7f50fdcf08..3271d26a2c 100644 --- a/Resources/Textures/Clothing/OuterClothing/Hardsuits/capspace.rsi/meta.json +++ b/Resources/Textures/Clothing/OuterClothing/Hardsuits/capspace.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "Made by Emisse for SS14", + "copyright": "Made by Emisse for SS14. Vox state made by Flareguy for SS14", "size": { "x": 32, "y": 32 @@ -14,6 +14,10 @@ "name": "equipped-OUTERCLOTHING", "directions": 4 }, + { + "name": "equipped-OUTERCLOTHING-vox", + "directions": 4 + }, { "name": "inhand-left", "directions": 4 diff --git a/Resources/Textures/Clothing/OuterClothing/Hardsuits/cburn.rsi/equipped-OUTERCLOTHING-vox.png b/Resources/Textures/Clothing/OuterClothing/Hardsuits/cburn.rsi/equipped-OUTERCLOTHING-vox.png new file mode 100644 index 0000000000..52c1cea7cf Binary files /dev/null and b/Resources/Textures/Clothing/OuterClothing/Hardsuits/cburn.rsi/equipped-OUTERCLOTHING-vox.png differ diff --git a/Resources/Textures/Clothing/OuterClothing/Hardsuits/cburn.rsi/meta.json b/Resources/Textures/Clothing/OuterClothing/Hardsuits/cburn.rsi/meta.json index 2de954bbf9..2edd20e1dc 100644 --- a/Resources/Textures/Clothing/OuterClothing/Hardsuits/cburn.rsi/meta.json +++ b/Resources/Textures/Clothing/OuterClothing/Hardsuits/cburn.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "Made by EmoGarbage404, harpy by VMSolidus", + "copyright": "Made by EmoGarbage404, harpy by VMSolidus. Vox state made by Flareguy for SS14", "size": { "x": 32, "y": 32 @@ -18,6 +18,10 @@ "name": "equipped-OUTERCLOTHING-harpy", "directions": 4 }, + { + "name": "equipped-OUTERCLOTHING-vox", + "directions": 4 + }, { "name": "inhand-left", "directions": 4 diff --git a/Resources/Textures/Clothing/OuterClothing/Hardsuits/clown.rsi/equipped-OUTERCLOTHING-vox.png b/Resources/Textures/Clothing/OuterClothing/Hardsuits/clown.rsi/equipped-OUTERCLOTHING-vox.png new file mode 100644 index 0000000000..bf6028dfdb Binary files /dev/null and b/Resources/Textures/Clothing/OuterClothing/Hardsuits/clown.rsi/equipped-OUTERCLOTHING-vox.png differ diff --git a/Resources/Textures/Clothing/OuterClothing/Hardsuits/clown.rsi/meta.json b/Resources/Textures/Clothing/OuterClothing/Hardsuits/clown.rsi/meta.json index 090140fa8c..60c53e9cc2 100644 --- a/Resources/Textures/Clothing/OuterClothing/Hardsuits/clown.rsi/meta.json +++ b/Resources/Textures/Clothing/OuterClothing/Hardsuits/clown.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e, modified by brainfood1183 (github), harpy by VMSolidus", + "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e, modified by brainfood1183 (github), harpy by VMSolidus. Vox state made by Flareguy for SS14", "size": { "x": 32, "y": 32 @@ -18,6 +18,10 @@ "name": "equipped-OUTERCLOTHING-harpy", "directions": 4 }, + { + "name": "equipped-OUTERCLOTHING-vox", + "directions": 4 + }, { "name": "inhand-left", "directions": 4 diff --git a/Resources/Textures/Clothing/OuterClothing/Hardsuits/cybersun.rsi/equipped-OUTERCLOTHING-vox.png b/Resources/Textures/Clothing/OuterClothing/Hardsuits/cybersun.rsi/equipped-OUTERCLOTHING-vox.png new file mode 100644 index 0000000000..631815d06b Binary files /dev/null and b/Resources/Textures/Clothing/OuterClothing/Hardsuits/cybersun.rsi/equipped-OUTERCLOTHING-vox.png differ diff --git a/Resources/Textures/Clothing/OuterClothing/Hardsuits/cybersun.rsi/meta.json b/Resources/Textures/Clothing/OuterClothing/Hardsuits/cybersun.rsi/meta.json index 1cfa2a9cfe..5a3fd99c11 100644 --- a/Resources/Textures/Clothing/OuterClothing/Hardsuits/cybersun.rsi/meta.json +++ b/Resources/Textures/Clothing/OuterClothing/Hardsuits/cybersun.rsi/meta.json @@ -1,30 +1,34 @@ -{ - "version": 1, - "license": "CC-BY-SA-3.0", - "copyright": "Sprite made by Gtheglorious based on the sprite made by emisse for ss14, harpy variant by VMSolidus", - "size": { - "x": 32, - "y": 32 - }, - "states": [ - { - "name": "icon" - }, - { - "name": "equipped-OUTERCLOTHING", - "directions": 4 - }, - { - "name": "inhand-left", - "directions": 4 - }, - { - "name": "inhand-right", - "directions": 4 - }, - { - "name": "equipped-OUTERCLOTHING-harpy", - "directions": 4 - } - ] -} +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Sprite made by Gtheglorious based on the sprite made by emisse for ss14, harpy variant by VMSolidus, vox state made by Flareguy for SS14.", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "equipped-OUTERCLOTHING", + "directions": 4 + }, + { + "name": "equipped-OUTERCLOTHING-vox", + "directions": 4 + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + }, + { + "name": "equipped-OUTERCLOTHING-harpy", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/Clothing/OuterClothing/Hardsuits/deathsquad.rsi/equipped-OUTERCLOTHING-vox.png b/Resources/Textures/Clothing/OuterClothing/Hardsuits/deathsquad.rsi/equipped-OUTERCLOTHING-vox.png new file mode 100644 index 0000000000..cbf92dffde Binary files /dev/null and b/Resources/Textures/Clothing/OuterClothing/Hardsuits/deathsquad.rsi/equipped-OUTERCLOTHING-vox.png differ diff --git a/Resources/Textures/Clothing/OuterClothing/Hardsuits/deathsquad.rsi/meta.json b/Resources/Textures/Clothing/OuterClothing/Hardsuits/deathsquad.rsi/meta.json index f6910b12aa..5054eea8f4 100644 --- a/Resources/Textures/Clothing/OuterClothing/Hardsuits/deathsquad.rsi/meta.json +++ b/Resources/Textures/Clothing/OuterClothing/Hardsuits/deathsquad.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e, edited by Emisse for SS14, harpy edit by VMSolidus", + "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e, edited by Emisse for SS14. Vox state made by Flareguy for SS14, harpy edit by VMSolidus", "size": { "x": 32, "y": 32 @@ -18,6 +18,10 @@ "name": "equipped-OUTERCLOTHING-harpy", "directions": 4 }, + { + "name": "equipped-OUTERCLOTHING-vox", + "directions": 4 + }, { "name": "inhand-left", "directions": 4 diff --git a/Resources/Textures/Clothing/OuterClothing/Hardsuits/engineering-white.rsi/equipped-OUTERCLOTHING-vox.png b/Resources/Textures/Clothing/OuterClothing/Hardsuits/engineering-white.rsi/equipped-OUTERCLOTHING-vox.png new file mode 100644 index 0000000000..a6066c595b Binary files /dev/null and b/Resources/Textures/Clothing/OuterClothing/Hardsuits/engineering-white.rsi/equipped-OUTERCLOTHING-vox.png differ diff --git a/Resources/Textures/Clothing/OuterClothing/Hardsuits/engineering-white.rsi/meta.json b/Resources/Textures/Clothing/OuterClothing/Hardsuits/engineering-white.rsi/meta.json index ef5e62cca4..0a78966c1d 100644 --- a/Resources/Textures/Clothing/OuterClothing/Hardsuits/engineering-white.rsi/meta.json +++ b/Resources/Textures/Clothing/OuterClothing/Hardsuits/engineering-white.rsi/meta.json @@ -1,11 +1,11 @@ { - "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 - }, + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e. Vox state made by Flareguy for SS14", + "size": { + "x": 32, + "y": 32 + }, "states": [ { "name": "icon" @@ -14,6 +14,10 @@ "name": "equipped-OUTERCLOTHING", "directions": 4 }, + { + "name": "equipped-OUTERCLOTHING-vox", + "directions": 4 + }, { "name": "inhand-left", "directions": 4 @@ -27,4 +31,4 @@ "directions": 4 } ] -} +} \ No newline at end of file diff --git a/Resources/Textures/Clothing/OuterClothing/Hardsuits/engineering.rsi/equipped-OUTERCLOTHING-vox.png b/Resources/Textures/Clothing/OuterClothing/Hardsuits/engineering.rsi/equipped-OUTERCLOTHING-vox.png new file mode 100644 index 0000000000..7e4e050f9d Binary files /dev/null and b/Resources/Textures/Clothing/OuterClothing/Hardsuits/engineering.rsi/equipped-OUTERCLOTHING-vox.png differ diff --git a/Resources/Textures/Clothing/OuterClothing/Hardsuits/engineering.rsi/meta.json b/Resources/Textures/Clothing/OuterClothing/Hardsuits/engineering.rsi/meta.json index cbf3391af7..13f389a778 100644 --- a/Resources/Textures/Clothing/OuterClothing/Hardsuits/engineering.rsi/meta.json +++ b/Resources/Textures/Clothing/OuterClothing/Hardsuits/engineering.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e, harpy version by VMSolidus", + "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e, harpy version by VMSolidus. Vox state made by Flareguy for SS14", "size": { "x": 32, "y": 32 @@ -14,6 +14,10 @@ "name": "equipped-OUTERCLOTHING", "directions": 4 }, + { + "name": "equipped-OUTERCLOTHING-vox", + "directions": 4 + }, { "name": "inhand-left", "directions": 4 diff --git a/Resources/Textures/Clothing/OuterClothing/Hardsuits/luxury.rsi/equipped-OUTERCLOTHING-vox.png b/Resources/Textures/Clothing/OuterClothing/Hardsuits/luxury.rsi/equipped-OUTERCLOTHING-vox.png new file mode 100644 index 0000000000..c082fd2340 Binary files /dev/null and b/Resources/Textures/Clothing/OuterClothing/Hardsuits/luxury.rsi/equipped-OUTERCLOTHING-vox.png differ diff --git a/Resources/Textures/Clothing/OuterClothing/Hardsuits/luxury.rsi/meta.json b/Resources/Textures/Clothing/OuterClothing/Hardsuits/luxury.rsi/meta.json index 0261a0564f..76e3264cbc 100644 --- a/Resources/Textures/Clothing/OuterClothing/Hardsuits/luxury.rsi/meta.json +++ b/Resources/Textures/Clothing/OuterClothing/Hardsuits/luxury.rsi/meta.json @@ -1,11 +1,11 @@ { - "version": 1, - "license": "CC-BY-SA-3.0", - "copyright": "Texture edit from tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e", - "size": { - "x": 32, - "y": 32 - }, + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Texture edit from tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e. Vox state made by Flareguy for SS14", + "size": { + "x": 32, + "y": 32 + }, "states": [ { "name": "icon" @@ -14,6 +14,10 @@ "name": "equipped-OUTERCLOTHING", "directions": 4 }, + { + "name": "equipped-OUTERCLOTHING-vox", + "directions": 4 + }, { "name": "inhand-left", "directions": 4 @@ -27,4 +31,4 @@ "directions": 4 } ] -} +} \ No newline at end of file diff --git a/Resources/Textures/Clothing/OuterClothing/Hardsuits/maxim.rsi/equipped-OUTERCLOTHING-vox.png b/Resources/Textures/Clothing/OuterClothing/Hardsuits/maxim.rsi/equipped-OUTERCLOTHING-vox.png new file mode 100644 index 0000000000..2085dc1c83 Binary files /dev/null and b/Resources/Textures/Clothing/OuterClothing/Hardsuits/maxim.rsi/equipped-OUTERCLOTHING-vox.png differ diff --git a/Resources/Textures/Clothing/OuterClothing/Hardsuits/maxim.rsi/meta.json b/Resources/Textures/Clothing/OuterClothing/Hardsuits/maxim.rsi/meta.json index 3641da6f50..9acde9a4de 100644 --- a/Resources/Textures/Clothing/OuterClothing/Hardsuits/maxim.rsi/meta.json +++ b/Resources/Textures/Clothing/OuterClothing/Hardsuits/maxim.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/6b3f58d7de4d4e374282819a7001eaa9bde1676d", + "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/6b3f58d7de4d4e374282819a7001eaa9bde1676d. Vox state made by Flareguy for SS14", "size": { "x": 32, "y": 32 @@ -14,6 +14,10 @@ "name": "equipped-OUTERCLOTHING", "directions": 4 }, + { + "name": "equipped-OUTERCLOTHING-vox", + "directions": 4 + }, { "name": "inhand-left", "directions": 4 diff --git a/Resources/Textures/Clothing/OuterClothing/Hardsuits/medical.rsi/equipped-OUTERCLOTHING-vox.png b/Resources/Textures/Clothing/OuterClothing/Hardsuits/medical.rsi/equipped-OUTERCLOTHING-vox.png new file mode 100644 index 0000000000..6b6a36e0e7 Binary files /dev/null and b/Resources/Textures/Clothing/OuterClothing/Hardsuits/medical.rsi/equipped-OUTERCLOTHING-vox.png differ diff --git a/Resources/Textures/Clothing/OuterClothing/Hardsuits/medical.rsi/meta.json b/Resources/Textures/Clothing/OuterClothing/Hardsuits/medical.rsi/meta.json index ef5e62cca4..0a78966c1d 100644 --- a/Resources/Textures/Clothing/OuterClothing/Hardsuits/medical.rsi/meta.json +++ b/Resources/Textures/Clothing/OuterClothing/Hardsuits/medical.rsi/meta.json @@ -1,11 +1,11 @@ { - "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 - }, + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e. Vox state made by Flareguy for SS14", + "size": { + "x": 32, + "y": 32 + }, "states": [ { "name": "icon" @@ -14,6 +14,10 @@ "name": "equipped-OUTERCLOTHING", "directions": 4 }, + { + "name": "equipped-OUTERCLOTHING-vox", + "directions": 4 + }, { "name": "inhand-left", "directions": 4 @@ -27,4 +31,4 @@ "directions": 4 } ] -} +} \ No newline at end of file diff --git a/Resources/Textures/Clothing/OuterClothing/Hardsuits/paramed.rsi/equipped-OUTERCLOTHING-vox.png b/Resources/Textures/Clothing/OuterClothing/Hardsuits/paramed.rsi/equipped-OUTERCLOTHING-vox.png new file mode 100644 index 0000000000..e8149c9cd9 Binary files /dev/null and b/Resources/Textures/Clothing/OuterClothing/Hardsuits/paramed.rsi/equipped-OUTERCLOTHING-vox.png differ diff --git a/Resources/Textures/Clothing/OuterClothing/Hardsuits/paramed.rsi/meta.json b/Resources/Textures/Clothing/OuterClothing/Hardsuits/paramed.rsi/meta.json index 64b98f1e79..403cfec384 100644 --- a/Resources/Textures/Clothing/OuterClothing/Hardsuits/paramed.rsi/meta.json +++ b/Resources/Textures/Clothing/OuterClothing/Hardsuits/paramed.rsi/meta.json @@ -1,30 +1,34 @@ -{ - "version": 1, - "license": "CC-BY-SA-3.0", - "copyright": "Taken from paradise station git at commit https://github.com/ParadiseSS13/Paradise/commit/e5e584804b4b0b373a6a69d23afb73fd3c094365, redrawn by Ubaser", - "size": { - "x": 32, - "y": 32 - }, - "states": [ - { - "name": "icon" - }, - { - "name": "equipped-OUTERCLOTHING", - "directions": 4 - }, - { - "name": "inhand-left", - "directions": 4 - }, - { - "name": "inhand-right", - "directions": 4 - }, - { - "name": "equipped-OUTERCLOTHING-harpy", - "directions": 4 - } - ] -} +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from paradise station git at commit https://github.com/ParadiseSS13/Paradise/commit/e5e584804b4b0b373a6a69d23afb73fd3c094365, redrawn by Ubaser. Vox state made by Flareguy for SS14", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "equipped-OUTERCLOTHING", + "directions": 4 + }, + { + "name": "equipped-OUTERCLOTHING-vox", + "directions": 4 + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + }, + { + "name": "equipped-OUTERCLOTHING-harpy", + "directions": 4 + } + ] +} \ No newline at end of file diff --git a/Resources/Textures/Clothing/OuterClothing/Hardsuits/piratecaptain.rsi/equipped-OUTERCLOTHING-vox.png b/Resources/Textures/Clothing/OuterClothing/Hardsuits/piratecaptain.rsi/equipped-OUTERCLOTHING-vox.png new file mode 100644 index 0000000000..f0638fc80d Binary files /dev/null and b/Resources/Textures/Clothing/OuterClothing/Hardsuits/piratecaptain.rsi/equipped-OUTERCLOTHING-vox.png differ diff --git a/Resources/Textures/Clothing/OuterClothing/Hardsuits/piratecaptain.rsi/meta.json b/Resources/Textures/Clothing/OuterClothing/Hardsuits/piratecaptain.rsi/meta.json index 8840689d9e..8663673f5c 100644 --- a/Resources/Textures/Clothing/OuterClothing/Hardsuits/piratecaptain.rsi/meta.json +++ b/Resources/Textures/Clothing/OuterClothing/Hardsuits/piratecaptain.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "Made by brainfood1183 (Github) for ss14", + "copyright": "Made by brainfood1183 (Github) for ss14. Vox state made by Flareguy for SS14", "size": { "x": 32, "y": 32 @@ -14,6 +14,10 @@ "name": "equipped-OUTERCLOTHING", "directions": 4 }, + { + "name": "equipped-OUTERCLOTHING-vox", + "directions": 4 + }, { "name": "inhand-left", "directions": 4 diff --git a/Resources/Textures/Clothing/OuterClothing/Hardsuits/pirateeva.rsi/equipped-OUTERCLOTHING-vox.png b/Resources/Textures/Clothing/OuterClothing/Hardsuits/pirateeva.rsi/equipped-OUTERCLOTHING-vox.png new file mode 100644 index 0000000000..ce3d20cc20 Binary files /dev/null and b/Resources/Textures/Clothing/OuterClothing/Hardsuits/pirateeva.rsi/equipped-OUTERCLOTHING-vox.png differ diff --git a/Resources/Textures/Clothing/OuterClothing/Hardsuits/pirateeva.rsi/meta.json b/Resources/Textures/Clothing/OuterClothing/Hardsuits/pirateeva.rsi/meta.json index 8840689d9e..8663673f5c 100644 --- a/Resources/Textures/Clothing/OuterClothing/Hardsuits/pirateeva.rsi/meta.json +++ b/Resources/Textures/Clothing/OuterClothing/Hardsuits/pirateeva.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "Made by brainfood1183 (Github) for ss14", + "copyright": "Made by brainfood1183 (Github) for ss14. Vox state made by Flareguy for SS14", "size": { "x": 32, "y": 32 @@ -14,6 +14,10 @@ "name": "equipped-OUTERCLOTHING", "directions": 4 }, + { + "name": "equipped-OUTERCLOTHING-vox", + "directions": 4 + }, { "name": "inhand-left", "directions": 4 diff --git a/Resources/Textures/Clothing/OuterClothing/Hardsuits/rd.rsi/equipped-OUTERCLOTHING-vox.png b/Resources/Textures/Clothing/OuterClothing/Hardsuits/rd.rsi/equipped-OUTERCLOTHING-vox.png new file mode 100644 index 0000000000..629584e995 Binary files /dev/null and b/Resources/Textures/Clothing/OuterClothing/Hardsuits/rd.rsi/equipped-OUTERCLOTHING-vox.png differ diff --git a/Resources/Textures/Clothing/OuterClothing/Hardsuits/rd.rsi/meta.json b/Resources/Textures/Clothing/OuterClothing/Hardsuits/rd.rsi/meta.json index def2d42704..c3caac8225 100644 --- a/Resources/Textures/Clothing/OuterClothing/Hardsuits/rd.rsi/meta.json +++ b/Resources/Textures/Clothing/OuterClothing/Hardsuits/rd.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e", + "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e. Vox state made by Flareguy for SS14", "size": { "x": 32, "y": 32 @@ -18,6 +18,10 @@ "name": "equipped-OUTERCLOTHING-harpy", "directions": 4 }, + { + "name": "equipped-OUTERCLOTHING-vox", + "directions": 4 + }, { "name": "inhand-left", "directions": 4 diff --git a/Resources/Textures/Clothing/OuterClothing/Hardsuits/salvage.rsi/equipped-OUTERCLOTHING-vox.png b/Resources/Textures/Clothing/OuterClothing/Hardsuits/salvage.rsi/equipped-OUTERCLOTHING-vox.png new file mode 100644 index 0000000000..b8c26d6f41 Binary files /dev/null and b/Resources/Textures/Clothing/OuterClothing/Hardsuits/salvage.rsi/equipped-OUTERCLOTHING-vox.png differ diff --git a/Resources/Textures/Clothing/OuterClothing/Hardsuits/salvage.rsi/meta.json b/Resources/Textures/Clothing/OuterClothing/Hardsuits/salvage.rsi/meta.json index ef5e62cca4..0a78966c1d 100644 --- a/Resources/Textures/Clothing/OuterClothing/Hardsuits/salvage.rsi/meta.json +++ b/Resources/Textures/Clothing/OuterClothing/Hardsuits/salvage.rsi/meta.json @@ -1,11 +1,11 @@ { - "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 - }, + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e. Vox state made by Flareguy for SS14", + "size": { + "x": 32, + "y": 32 + }, "states": [ { "name": "icon" @@ -14,6 +14,10 @@ "name": "equipped-OUTERCLOTHING", "directions": 4 }, + { + "name": "equipped-OUTERCLOTHING-vox", + "directions": 4 + }, { "name": "inhand-left", "directions": 4 @@ -27,4 +31,4 @@ "directions": 4 } ] -} +} \ No newline at end of file diff --git a/Resources/Textures/Clothing/OuterClothing/Hardsuits/santahardsuit.rsi/equipped-OUTERCLOTHING-vox.png b/Resources/Textures/Clothing/OuterClothing/Hardsuits/santahardsuit.rsi/equipped-OUTERCLOTHING-vox.png new file mode 100644 index 0000000000..0d8f373dc1 Binary files /dev/null and b/Resources/Textures/Clothing/OuterClothing/Hardsuits/santahardsuit.rsi/equipped-OUTERCLOTHING-vox.png differ diff --git a/Resources/Textures/Clothing/OuterClothing/Hardsuits/santahardsuit.rsi/meta.json b/Resources/Textures/Clothing/OuterClothing/Hardsuits/santahardsuit.rsi/meta.json index 13748622fe..eb28d4c8a1 100644 --- a/Resources/Textures/Clothing/OuterClothing/Hardsuits/santahardsuit.rsi/meta.json +++ b/Resources/Textures/Clothing/OuterClothing/Hardsuits/santahardsuit.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "Edited by StanTheCarpenter. Originally taken from tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e", + "copyright": "Edited by StanTheCarpenter. Originally taken from tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e. Vox state made by Flareguy for SS14", "size": { "x": 32, "y": 32 @@ -14,6 +14,10 @@ "name": "equipped-OUTERCLOTHING", "directions": 4 }, + { + "name": "equipped-OUTERCLOTHING-vox", + "directions": 4 + }, { "name": "inhand-left", "directions": 4 diff --git a/Resources/Textures/Clothing/OuterClothing/Hardsuits/security-red.rsi/equipped-OUTERCLOTHING-vox.png b/Resources/Textures/Clothing/OuterClothing/Hardsuits/security-red.rsi/equipped-OUTERCLOTHING-vox.png new file mode 100644 index 0000000000..8c301cbe55 Binary files /dev/null and b/Resources/Textures/Clothing/OuterClothing/Hardsuits/security-red.rsi/equipped-OUTERCLOTHING-vox.png differ diff --git a/Resources/Textures/Clothing/OuterClothing/Hardsuits/security-red.rsi/meta.json b/Resources/Textures/Clothing/OuterClothing/Hardsuits/security-red.rsi/meta.json index e482264df5..15aef26a56 100644 --- a/Resources/Textures/Clothing/OuterClothing/Hardsuits/security-red.rsi/meta.json +++ b/Resources/Textures/Clothing/OuterClothing/Hardsuits/security-red.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e", + "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e. Vox state made by Flareguy for SS14", "size": { "x": 32, "y": 32 @@ -14,6 +14,10 @@ "name": "equipped-OUTERCLOTHING", "directions": 4 }, + { + "name": "equipped-OUTERCLOTHING-vox", + "directions": 4 + }, { "name": "inhand-left", "directions": 4 diff --git a/Resources/Textures/Clothing/OuterClothing/Hardsuits/security-warden.rsi/equipped-OUTERCLOTHING-vox.png b/Resources/Textures/Clothing/OuterClothing/Hardsuits/security-warden.rsi/equipped-OUTERCLOTHING-vox.png new file mode 100644 index 0000000000..30cf54325e Binary files /dev/null and b/Resources/Textures/Clothing/OuterClothing/Hardsuits/security-warden.rsi/equipped-OUTERCLOTHING-vox.png differ diff --git a/Resources/Textures/Clothing/OuterClothing/Hardsuits/security-warden.rsi/meta.json b/Resources/Textures/Clothing/OuterClothing/Hardsuits/security-warden.rsi/meta.json index 54a0ed85fa..180439fbcc 100644 --- a/Resources/Textures/Clothing/OuterClothing/Hardsuits/security-warden.rsi/meta.json +++ b/Resources/Textures/Clothing/OuterClothing/Hardsuits/security-warden.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "Sprite made by Gtheglorious based on the sprite made by Alekshhh for SS14", + "copyright": "Sprite made by Gtheglorious based on the sprite made by Alekshhh for SS14. Vox state made by Flareguy for SS14", "size": { "x": 32, "y": 32 @@ -14,6 +14,10 @@ "name": "equipped-OUTERCLOTHING", "directions": 4 }, + { + "name": "equipped-OUTERCLOTHING-vox", + "directions": 4 + }, { "name": "inhand-left", "directions": 4 diff --git a/Resources/Textures/Clothing/OuterClothing/Hardsuits/security.rsi/equipped-OUTERCLOTHING-vox.png b/Resources/Textures/Clothing/OuterClothing/Hardsuits/security.rsi/equipped-OUTERCLOTHING-vox.png new file mode 100644 index 0000000000..c06d8fae90 Binary files /dev/null and b/Resources/Textures/Clothing/OuterClothing/Hardsuits/security.rsi/equipped-OUTERCLOTHING-vox.png differ diff --git a/Resources/Textures/Clothing/OuterClothing/Hardsuits/security.rsi/meta.json b/Resources/Textures/Clothing/OuterClothing/Hardsuits/security.rsi/meta.json index 32d6d8901a..8acf2ddc61 100644 --- a/Resources/Textures/Clothing/OuterClothing/Hardsuits/security.rsi/meta.json +++ b/Resources/Textures/Clothing/OuterClothing/Hardsuits/security.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "Sprite made by Gtheglorious based on the sprite taken from tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e", + "copyright": "Sprite made by Gtheglorious based on the sprite taken from tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e. Vox state made by Flareguy for SS14", "size": { "x": 32, "y": 32 @@ -14,6 +14,10 @@ "name": "equipped-OUTERCLOTHING", "directions": 4 }, + { + "name": "equipped-OUTERCLOTHING-vox", + "directions": 4 + }, { "name": "inhand-left", "directions": 4 diff --git a/Resources/Textures/Clothing/OuterClothing/Hardsuits/spatio.rsi/equipped-OUTERCLOTHING-vox.png b/Resources/Textures/Clothing/OuterClothing/Hardsuits/spatio.rsi/equipped-OUTERCLOTHING-vox.png new file mode 100644 index 0000000000..999761e150 Binary files /dev/null and b/Resources/Textures/Clothing/OuterClothing/Hardsuits/spatio.rsi/equipped-OUTERCLOTHING-vox.png differ diff --git a/Resources/Textures/Clothing/OuterClothing/Hardsuits/spatio.rsi/meta.json b/Resources/Textures/Clothing/OuterClothing/Hardsuits/spatio.rsi/meta.json index f6a942a895..c04f7d758c 100644 --- a/Resources/Textures/Clothing/OuterClothing/Hardsuits/spatio.rsi/meta.json +++ b/Resources/Textures/Clothing/OuterClothing/Hardsuits/spatio.rsi/meta.json @@ -1,32 +1,34 @@ - -{ - "version": 1, - "license": "CC-BY-SA-3.0", - "copyright": "Original by Emisse, modified by EmoGarbage404", - - "size": { - "x": 32, - "y": 32 - }, - "states": [ - { - "name": "icon" - }, - { - "name": "equipped-OUTERCLOTHING", - "directions": 4 - }, - { - "name": "inhand-left", - "directions": 4 - }, - { - "name": "inhand-right", - "directions": 4 - }, - { - "name": "equipped-OUTERCLOTHING-harpy", - "directions": 4 - } - ] -} +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Original by Emisse, modified by EmoGarbage404. Vox state made by Flareguy for SS14", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "equipped-OUTERCLOTHING", + "directions": 4 + }, + { + "name": "equipped-OUTERCLOTHING-vox", + "directions": 4 + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + }, + { + "name": "equipped-OUTERCLOTHING-harpy", + "directions": 4 + } + ] +} \ No newline at end of file diff --git a/Resources/Textures/Clothing/OuterClothing/Hardsuits/syndicate.rsi/equipped-OUTERCLOTHING-vox.png b/Resources/Textures/Clothing/OuterClothing/Hardsuits/syndicate.rsi/equipped-OUTERCLOTHING-vox.png new file mode 100644 index 0000000000..df2abbbf03 Binary files /dev/null and b/Resources/Textures/Clothing/OuterClothing/Hardsuits/syndicate.rsi/equipped-OUTERCLOTHING-vox.png differ diff --git a/Resources/Textures/Clothing/OuterClothing/Hardsuits/syndicate.rsi/meta.json b/Resources/Textures/Clothing/OuterClothing/Hardsuits/syndicate.rsi/meta.json index b9b739337b..3083012509 100644 --- a/Resources/Textures/Clothing/OuterClothing/Hardsuits/syndicate.rsi/meta.json +++ b/Resources/Textures/Clothing/OuterClothing/Hardsuits/syndicate.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/fb2d71495bfe81446159ef528534193d09dd8d34, equipped-OUTERCLOTHING-monkey made by Dutch-VanDerLinde", + "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/fb2d71495bfe81446159ef528534193d09dd8d34, equipped-OUTERCLOTHING-monkey made by Dutch-VanDerLinde, vox state made by Flareguy for SS14", "size": { "x": 32, "y": 32 @@ -14,6 +14,10 @@ "name": "equipped-OUTERCLOTHING", "directions": 4 }, + { + "name": "equipped-OUTERCLOTHING-vox", + "directions": 4 + }, { "name": "equipped-OUTERCLOTHING-monkey", "directions": 4 diff --git a/Resources/Textures/Clothing/OuterClothing/Hardsuits/syndiecommander.rsi/equipped-OUTERCLOTHING-vox.png b/Resources/Textures/Clothing/OuterClothing/Hardsuits/syndiecommander.rsi/equipped-OUTERCLOTHING-vox.png new file mode 100644 index 0000000000..24c1aa2a87 Binary files /dev/null and b/Resources/Textures/Clothing/OuterClothing/Hardsuits/syndiecommander.rsi/equipped-OUTERCLOTHING-vox.png differ diff --git a/Resources/Textures/Clothing/OuterClothing/Hardsuits/syndiecommander.rsi/meta.json b/Resources/Textures/Clothing/OuterClothing/Hardsuits/syndiecommander.rsi/meta.json index 4aa4d60ccb..3744e040b6 100644 --- a/Resources/Textures/Clothing/OuterClothing/Hardsuits/syndiecommander.rsi/meta.json +++ b/Resources/Textures/Clothing/OuterClothing/Hardsuits/syndiecommander.rsi/meta.json @@ -1,30 +1,34 @@ -{ - "version": 1, - "license": "CC-BY-SA-3.0", - "copyright": "Taken from vg at commit https://github.com/vgstation-coders/vgstation13/commit/a16e41020a93479e9a7e2af343b1b74f7f2a61bd", - "size": { - "x": 32, - "y": 32 - }, - "states": [ - { - "name": "icon" - }, - { - "name": "equipped-OUTERCLOTHING", - "directions": 4 - }, - { - "name": "inhand-left", - "directions": 4 - }, - { - "name": "inhand-right", - "directions": 4 - }, - { - "name": "equipped-OUTERCLOTHING-harpy", - "directions": 4 - } - ] -} +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from vg at commit https://github.com/vgstation-coders/vgstation13/commit/a16e41020a93479e9a7e2af343b1b74f7f2a61bd. Vox state made by Flareguy for SS14", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "equipped-OUTERCLOTHING", + "directions": 4 + }, + { + "name": "equipped-OUTERCLOTHING-vox", + "directions": 4 + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + }, + { + "name": "equipped-OUTERCLOTHING-harpy", + "directions": 4 + } + ] +} \ No newline at end of file diff --git a/Resources/Textures/Clothing/OuterClothing/Hardsuits/syndieelite.rsi/equipped-OUTERCLOTHING-vox.png b/Resources/Textures/Clothing/OuterClothing/Hardsuits/syndieelite.rsi/equipped-OUTERCLOTHING-vox.png new file mode 100644 index 0000000000..869cf41ce2 Binary files /dev/null and b/Resources/Textures/Clothing/OuterClothing/Hardsuits/syndieelite.rsi/equipped-OUTERCLOTHING-vox.png differ diff --git a/Resources/Textures/Clothing/OuterClothing/Hardsuits/syndieelite.rsi/meta.json b/Resources/Textures/Clothing/OuterClothing/Hardsuits/syndieelite.rsi/meta.json index b85c75656c..cde1c05977 100644 --- a/Resources/Textures/Clothing/OuterClothing/Hardsuits/syndieelite.rsi/meta.json +++ b/Resources/Textures/Clothing/OuterClothing/Hardsuits/syndieelite.rsi/meta.json @@ -1,30 +1,34 @@ -{ - "version": 1, - "license": "CC-BY-SA-3.0", - "copyright": "Taken from vg at commit https://github.com/vgstation-coders/vgstation13/commit/a16e41020a93479e9a7e2af343b1b74f7f2a61bd, harpy by VMSolidus", - "size": { - "x": 32, - "y": 32 - }, - "states": [ - { - "name": "icon" - }, - { - "name": "equipped-OUTERCLOTHING", - "directions": 4 - }, - { - "name": "equipped-OUTERCLOTHING-harpy", - "directions": 4 - }, - { - "name": "inhand-left", - "directions": 4 - }, - { - "name": "inhand-right", - "directions": 4 - } - ] -} +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from vg at commit https://github.com/vgstation-coders/vgstation13/commit/a16e41020a93479e9a7e2af343b1b74f7f2a61bd, harpy by VMSolidus. Vox state made by Flareguy for SS14", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "equipped-OUTERCLOTHING", + "directions": 4 + }, + { + "name": "equipped-OUTERCLOTHING-harpy", + "directions": 4 + }, + { + "name": "equipped-OUTERCLOTHING-vox", + "directions": 4 + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/Clothing/OuterClothing/Hardsuits/syndiemedic.rsi/equipped-OUTERCLOTHING-vox.png b/Resources/Textures/Clothing/OuterClothing/Hardsuits/syndiemedic.rsi/equipped-OUTERCLOTHING-vox.png new file mode 100644 index 0000000000..9417c5547b Binary files /dev/null and b/Resources/Textures/Clothing/OuterClothing/Hardsuits/syndiemedic.rsi/equipped-OUTERCLOTHING-vox.png differ diff --git a/Resources/Textures/Clothing/OuterClothing/Hardsuits/syndiemedic.rsi/meta.json b/Resources/Textures/Clothing/OuterClothing/Hardsuits/syndiemedic.rsi/meta.json index 88d91565d7..2026bba893 100644 --- a/Resources/Textures/Clothing/OuterClothing/Hardsuits/syndiemedic.rsi/meta.json +++ b/Resources/Textures/Clothing/OuterClothing/Hardsuits/syndiemedic.rsi/meta.json @@ -1,11 +1,11 @@ { - "version": 1, - "license": "CC-BY-SA-3.0", - "copyright": "Based on tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e, modified by EmoGarbage404 (github), harpy by VMSolidus", - "size": { - "x": 32, - "y": 32 - }, + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Based on tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e, modified by EmoGarbage404 (github), harpy by VMSolidus. Vox state made by Flareguy for SS14", + "size": { + "x": 32, + "y": 32 + }, "states": [ { "name": "icon" @@ -14,6 +14,10 @@ "name": "equipped-OUTERCLOTHING", "directions": 4 }, + { + "name": "equipped-OUTERCLOTHING-vox", + "directions": 4 + }, { "name": "inhand-left", "directions": 4 @@ -27,4 +31,4 @@ "directions": 4 } ] -} +} \ No newline at end of file diff --git a/Resources/Textures/Clothing/OuterClothing/Hardsuits/wizard.rsi/equipped-OUTERCLOTHING-vox.png b/Resources/Textures/Clothing/OuterClothing/Hardsuits/wizard.rsi/equipped-OUTERCLOTHING-vox.png new file mode 100644 index 0000000000..d4e4ab0f53 Binary files /dev/null and b/Resources/Textures/Clothing/OuterClothing/Hardsuits/wizard.rsi/equipped-OUTERCLOTHING-vox.png differ diff --git a/Resources/Textures/Clothing/OuterClothing/Hardsuits/wizard.rsi/meta.json b/Resources/Textures/Clothing/OuterClothing/Hardsuits/wizard.rsi/meta.json index e482264df5..15aef26a56 100644 --- a/Resources/Textures/Clothing/OuterClothing/Hardsuits/wizard.rsi/meta.json +++ b/Resources/Textures/Clothing/OuterClothing/Hardsuits/wizard.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e", + "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e. Vox state made by Flareguy for SS14", "size": { "x": 32, "y": 32 @@ -14,6 +14,10 @@ "name": "equipped-OUTERCLOTHING", "directions": 4 }, + { + "name": "equipped-OUTERCLOTHING-vox", + "directions": 4 + }, { "name": "inhand-left", "directions": 4 diff --git a/Resources/Textures/Clothing/OuterClothing/Misc/apronbotanist.rsi/equipped-OUTERCLOTHING-vox.png b/Resources/Textures/Clothing/OuterClothing/Misc/apronbotanist.rsi/equipped-OUTERCLOTHING-vox.png new file mode 100644 index 0000000000..091fe54d8b Binary files /dev/null and b/Resources/Textures/Clothing/OuterClothing/Misc/apronbotanist.rsi/equipped-OUTERCLOTHING-vox.png differ diff --git a/Resources/Textures/Clothing/OuterClothing/Misc/apronbotanist.rsi/meta.json b/Resources/Textures/Clothing/OuterClothing/Misc/apronbotanist.rsi/meta.json index e482264df5..232bec9c0a 100644 --- a/Resources/Textures/Clothing/OuterClothing/Misc/apronbotanist.rsi/meta.json +++ b/Resources/Textures/Clothing/OuterClothing/Misc/apronbotanist.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e", + "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e. equipped-OUTERCLOTHING-vox state taken from /vg/station at commit https://github.com/vgstation-coders/vgstation13/commit/31d6576ba8102135d058ef49c3cb6ecbe8db8a79", "size": { "x": 32, "y": 32 @@ -14,6 +14,10 @@ "name": "equipped-OUTERCLOTHING", "directions": 4 }, + { + "name": "equipped-OUTERCLOTHING-vox", + "directions": 4 + }, { "name": "inhand-left", "directions": 4 diff --git a/Resources/Textures/Clothing/OuterClothing/Misc/apronchef.rsi/equipped-OUTERCLOTHING-vox.png b/Resources/Textures/Clothing/OuterClothing/Misc/apronchef.rsi/equipped-OUTERCLOTHING-vox.png new file mode 100644 index 0000000000..e0fd17d98a Binary files /dev/null and b/Resources/Textures/Clothing/OuterClothing/Misc/apronchef.rsi/equipped-OUTERCLOTHING-vox.png differ diff --git a/Resources/Textures/Clothing/OuterClothing/Misc/apronchef.rsi/meta.json b/Resources/Textures/Clothing/OuterClothing/Misc/apronchef.rsi/meta.json index e482264df5..232bec9c0a 100644 --- a/Resources/Textures/Clothing/OuterClothing/Misc/apronchef.rsi/meta.json +++ b/Resources/Textures/Clothing/OuterClothing/Misc/apronchef.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e", + "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e. equipped-OUTERCLOTHING-vox state taken from /vg/station at commit https://github.com/vgstation-coders/vgstation13/commit/31d6576ba8102135d058ef49c3cb6ecbe8db8a79", "size": { "x": 32, "y": 32 @@ -14,6 +14,10 @@ "name": "equipped-OUTERCLOTHING", "directions": 4 }, + { + "name": "equipped-OUTERCLOTHING-vox", + "directions": 4 + }, { "name": "inhand-left", "directions": 4 diff --git a/Resources/Textures/Clothing/OuterClothing/Misc/cardborg.rsi/equipped-OUTERCLOTHING-vox.png b/Resources/Textures/Clothing/OuterClothing/Misc/cardborg.rsi/equipped-OUTERCLOTHING-vox.png new file mode 100644 index 0000000000..e4ea5d5fa4 Binary files /dev/null and b/Resources/Textures/Clothing/OuterClothing/Misc/cardborg.rsi/equipped-OUTERCLOTHING-vox.png differ diff --git a/Resources/Textures/Clothing/OuterClothing/Misc/cardborg.rsi/meta.json b/Resources/Textures/Clothing/OuterClothing/Misc/cardborg.rsi/meta.json index e482264df5..15aef26a56 100644 --- a/Resources/Textures/Clothing/OuterClothing/Misc/cardborg.rsi/meta.json +++ b/Resources/Textures/Clothing/OuterClothing/Misc/cardborg.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e", + "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e. Vox state made by Flareguy for SS14", "size": { "x": 32, "y": 32 @@ -14,6 +14,10 @@ "name": "equipped-OUTERCLOTHING", "directions": 4 }, + { + "name": "equipped-OUTERCLOTHING-vox", + "directions": 4 + }, { "name": "inhand-left", "directions": 4 diff --git a/Resources/Textures/Clothing/OuterClothing/Misc/chef.rsi/equipped-OUTERCLOTHING-vox.png b/Resources/Textures/Clothing/OuterClothing/Misc/chef.rsi/equipped-OUTERCLOTHING-vox.png new file mode 100644 index 0000000000..a159e88777 Binary files /dev/null and b/Resources/Textures/Clothing/OuterClothing/Misc/chef.rsi/equipped-OUTERCLOTHING-vox.png differ diff --git a/Resources/Textures/Clothing/OuterClothing/Misc/chef.rsi/meta.json b/Resources/Textures/Clothing/OuterClothing/Misc/chef.rsi/meta.json index e482264df5..232bec9c0a 100644 --- a/Resources/Textures/Clothing/OuterClothing/Misc/chef.rsi/meta.json +++ b/Resources/Textures/Clothing/OuterClothing/Misc/chef.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e", + "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e. equipped-OUTERCLOTHING-vox state taken from /vg/station at commit https://github.com/vgstation-coders/vgstation13/commit/31d6576ba8102135d058ef49c3cb6ecbe8db8a79", "size": { "x": 32, "y": 32 @@ -14,6 +14,10 @@ "name": "equipped-OUTERCLOTHING", "directions": 4 }, + { + "name": "equipped-OUTERCLOTHING-vox", + "directions": 4 + }, { "name": "inhand-left", "directions": 4 diff --git a/Resources/Textures/Clothing/OuterClothing/Misc/classicponcho.rsi/equipped-OUTERCLOTHING-vox.png b/Resources/Textures/Clothing/OuterClothing/Misc/classicponcho.rsi/equipped-OUTERCLOTHING-vox.png new file mode 100644 index 0000000000..94835833cc Binary files /dev/null and b/Resources/Textures/Clothing/OuterClothing/Misc/classicponcho.rsi/equipped-OUTERCLOTHING-vox.png differ diff --git a/Resources/Textures/Clothing/OuterClothing/Misc/classicponcho.rsi/meta.json b/Resources/Textures/Clothing/OuterClothing/Misc/classicponcho.rsi/meta.json index e482264df5..21cd9257fd 100644 --- a/Resources/Textures/Clothing/OuterClothing/Misc/classicponcho.rsi/meta.json +++ b/Resources/Textures/Clothing/OuterClothing/Misc/classicponcho.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e", + "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e. equipped-OUTERCLOTHING-vox state taken from Paradise at https://github.com/ParadiseSS13/Paradise/blob/fce54deb01d465957691ba2907218d4af4830db2/icons/mob/clothing/species/vox/suit.dmi", "size": { "x": 32, "y": 32 @@ -14,6 +14,10 @@ "name": "equipped-OUTERCLOTHING", "directions": 4 }, + { + "name": "equipped-OUTERCLOTHING-vox", + "directions": 4 + }, { "name": "inhand-left", "directions": 4 diff --git a/Resources/Textures/Clothing/OuterClothing/Misc/ghostsheet.rsi/equipped-OUTERCLOTHING-vox.png b/Resources/Textures/Clothing/OuterClothing/Misc/ghostsheet.rsi/equipped-OUTERCLOTHING-vox.png new file mode 100644 index 0000000000..df08ef1986 Binary files /dev/null and b/Resources/Textures/Clothing/OuterClothing/Misc/ghostsheet.rsi/equipped-OUTERCLOTHING-vox.png differ diff --git a/Resources/Textures/Clothing/OuterClothing/Misc/ghostsheet.rsi/meta.json b/Resources/Textures/Clothing/OuterClothing/Misc/ghostsheet.rsi/meta.json index 5de1afef0f..ccfd0c0303 100644 --- a/Resources/Textures/Clothing/OuterClothing/Misc/ghostsheet.rsi/meta.json +++ b/Resources/Textures/Clothing/OuterClothing/Misc/ghostsheet.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/pull/38809", + "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/pull/38809. Vox state by Flareguy for SS1", "size": { "x": 32, "y": 32 @@ -14,6 +14,10 @@ "name": "equipped-OUTERCLOTHING", "directions": 4 }, + { + "name": "equipped-OUTERCLOTHING-vox", + "directions": 4 + }, { "name": "inhand-left", "directions": 4 diff --git a/Resources/Textures/Clothing/OuterClothing/Misc/grey_hoodie.rsi/equipped-OUTERCLOTHING-vox.png b/Resources/Textures/Clothing/OuterClothing/Misc/grey_hoodie.rsi/equipped-OUTERCLOTHING-vox.png new file mode 100644 index 0000000000..6423bd5c73 Binary files /dev/null and b/Resources/Textures/Clothing/OuterClothing/Misc/grey_hoodie.rsi/equipped-OUTERCLOTHING-vox.png differ diff --git a/Resources/Textures/Clothing/OuterClothing/Misc/grey_hoodie.rsi/meta.json b/Resources/Textures/Clothing/OuterClothing/Misc/grey_hoodie.rsi/meta.json index 442bfb2920..b5f8619d65 100644 --- a/Resources/Textures/Clothing/OuterClothing/Misc/grey_hoodie.rsi/meta.json +++ b/Resources/Textures/Clothing/OuterClothing/Misc/grey_hoodie.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e", + "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e. Vox state by Flareguy for SS14", "size": { "x": 32, "y": 32 @@ -17,6 +17,10 @@ "name": "equipped-OUTERCLOTHING", "directions": 4 }, + { + "name": "equipped-OUTERCLOTHING-vox", + "directions": 4 + }, { "name": "open-equipped-OUTERCLOTHING", "directions": 4 diff --git a/Resources/Textures/Clothing/OuterClothing/Misc/nunrobe.rsi/equipped-OUTERCLOTHING-vox.png b/Resources/Textures/Clothing/OuterClothing/Misc/nunrobe.rsi/equipped-OUTERCLOTHING-vox.png new file mode 100644 index 0000000000..36e53e4396 Binary files /dev/null and b/Resources/Textures/Clothing/OuterClothing/Misc/nunrobe.rsi/equipped-OUTERCLOTHING-vox.png differ diff --git a/Resources/Textures/Clothing/OuterClothing/Misc/nunrobe.rsi/meta.json b/Resources/Textures/Clothing/OuterClothing/Misc/nunrobe.rsi/meta.json index 217a3f9511..3fa2c7657c 100644 --- a/Resources/Textures/Clothing/OuterClothing/Misc/nunrobe.rsi/meta.json +++ b/Resources/Textures/Clothing/OuterClothing/Misc/nunrobe.rsi/meta.json @@ -1,26 +1,30 @@ -{ - "version": 1, - "license": "CC-BY-SA-3.0", - "copyright": "Taken from TGstation github https://github.com/tgstation/tgstation/commit/a20589c401fc9b0f23c1dea08c56d4a1697adcd6", - "size": { - "x": 32, - "y": 32 - }, - "states": [ - { - "name": "icon" - }, - { - "name": "equipped-OUTERCLOTHING", - "directions": 4 - }, - { - "name": "inhand-left", - "directions": 4 - }, - { - "name": "inhand-right", - "directions": 4 - } - ] -} \ No newline at end of file +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from TGstation github https://github.com/tgstation/tgstation/commit/a20589c401fc9b0f23c1dea08c56d4a1697adcd6. equipped-OUTERCLOTHING-vox state taken from /vg/station at commit https://github.com/vgstation-coders/vgstation13/commit/31d6576ba8102135d058ef49c3cb6ecbe8db8a79", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "equipped-OUTERCLOTHING", + "directions": 4 + }, + { + "name": "equipped-OUTERCLOTHING-vox", + "directions": 4 + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/Clothing/OuterClothing/Misc/red_racoon.rsi/equipped-OUTERCLOTHING-vox.png b/Resources/Textures/Clothing/OuterClothing/Misc/red_racoon.rsi/equipped-OUTERCLOTHING-vox.png new file mode 100644 index 0000000000..ff43b16105 Binary files /dev/null and b/Resources/Textures/Clothing/OuterClothing/Misc/red_racoon.rsi/equipped-OUTERCLOTHING-vox.png differ diff --git a/Resources/Textures/Clothing/OuterClothing/Misc/red_racoon.rsi/meta.json b/Resources/Textures/Clothing/OuterClothing/Misc/red_racoon.rsi/meta.json index b20ea0277f..cd0053daea 100644 --- a/Resources/Textures/Clothing/OuterClothing/Misc/red_racoon.rsi/meta.json +++ b/Resources/Textures/Clothing/OuterClothing/Misc/red_racoon.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "Created by netwy(583844759429316618)", + "copyright": "Created by netwy(583844759429316618). Vox state made by Flareguy for SS14", "size": { "x": 32, "y": 32 @@ -14,6 +14,10 @@ "name": "equipped-OUTERCLOTHING", "directions": 4 }, + { + "name": "equipped-OUTERCLOTHING-vox", + "directions": 4 + }, { "name": "inhand-left", "directions": 4 diff --git a/Resources/Textures/Clothing/OuterClothing/Misc/redwizard.rsi/equipped-OUTERCLOTHING-vox.png b/Resources/Textures/Clothing/OuterClothing/Misc/redwizard.rsi/equipped-OUTERCLOTHING-vox.png new file mode 100644 index 0000000000..d5efb0d4b2 Binary files /dev/null and b/Resources/Textures/Clothing/OuterClothing/Misc/redwizard.rsi/equipped-OUTERCLOTHING-vox.png differ diff --git a/Resources/Textures/Clothing/OuterClothing/Misc/redwizard.rsi/meta.json b/Resources/Textures/Clothing/OuterClothing/Misc/redwizard.rsi/meta.json index e482264df5..15aef26a56 100644 --- a/Resources/Textures/Clothing/OuterClothing/Misc/redwizard.rsi/meta.json +++ b/Resources/Textures/Clothing/OuterClothing/Misc/redwizard.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e", + "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e. Vox state made by Flareguy for SS14", "size": { "x": 32, "y": 32 @@ -14,6 +14,10 @@ "name": "equipped-OUTERCLOTHING", "directions": 4 }, + { + "name": "equipped-OUTERCLOTHING-vox", + "directions": 4 + }, { "name": "inhand-left", "directions": 4 diff --git a/Resources/Textures/Clothing/OuterClothing/Misc/skubbody.rsi/equipped-OUTERCLOTHING-vox.png b/Resources/Textures/Clothing/OuterClothing/Misc/skubbody.rsi/equipped-OUTERCLOTHING-vox.png new file mode 100644 index 0000000000..b50aa58c48 Binary files /dev/null and b/Resources/Textures/Clothing/OuterClothing/Misc/skubbody.rsi/equipped-OUTERCLOTHING-vox.png differ diff --git a/Resources/Textures/Clothing/OuterClothing/Misc/skubbody.rsi/meta.json b/Resources/Textures/Clothing/OuterClothing/Misc/skubbody.rsi/meta.json index 9a00c5741a..ed75ee470b 100644 --- a/Resources/Textures/Clothing/OuterClothing/Misc/skubbody.rsi/meta.json +++ b/Resources/Textures/Clothing/OuterClothing/Misc/skubbody.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "EOBGames from tgstation", + "copyright": "EOBGames from tgstation. Vox state made by Flareguy for SS14", "size": { "x": 32, "y": 32 @@ -13,6 +13,10 @@ { "name": "equipped-OUTERCLOTHING", "directions": 4 + }, + { + "name": "equipped-OUTERCLOTHING-vox", + "directions": 4 } ] } diff --git a/Resources/Textures/Clothing/OuterClothing/Misc/straight_jacket.rsi/body-overlay-2-vox.png b/Resources/Textures/Clothing/OuterClothing/Misc/straight_jacket.rsi/body-overlay-2-vox.png new file mode 100644 index 0000000000..0a23447f94 Binary files /dev/null and b/Resources/Textures/Clothing/OuterClothing/Misc/straight_jacket.rsi/body-overlay-2-vox.png differ diff --git a/Resources/Textures/Clothing/OuterClothing/Misc/straight_jacket.rsi/meta.json b/Resources/Textures/Clothing/OuterClothing/Misc/straight_jacket.rsi/meta.json index b41f0209d7..2eda10ef51 100644 --- a/Resources/Textures/Clothing/OuterClothing/Misc/straight_jacket.rsi/meta.json +++ b/Resources/Textures/Clothing/OuterClothing/Misc/straight_jacket.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e", + "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e. Vox state made by Flareguy for SS14", "size": { "x": 32, "y": 32 @@ -14,6 +14,10 @@ "name": "body-overlay-2", "directions": 4 }, + { + "name": "body-overlay-2-vox", + "directions": 4 + }, { "name": "inhand-left", "directions": 4 diff --git a/Resources/Textures/Clothing/OuterClothing/Misc/violetwizard.rsi/equipped-OUTERCLOTHING-vox.png b/Resources/Textures/Clothing/OuterClothing/Misc/violetwizard.rsi/equipped-OUTERCLOTHING-vox.png new file mode 100644 index 0000000000..e39761b360 Binary files /dev/null and b/Resources/Textures/Clothing/OuterClothing/Misc/violetwizard.rsi/equipped-OUTERCLOTHING-vox.png differ diff --git a/Resources/Textures/Clothing/OuterClothing/Misc/violetwizard.rsi/meta.json b/Resources/Textures/Clothing/OuterClothing/Misc/violetwizard.rsi/meta.json index e482264df5..15aef26a56 100644 --- a/Resources/Textures/Clothing/OuterClothing/Misc/violetwizard.rsi/meta.json +++ b/Resources/Textures/Clothing/OuterClothing/Misc/violetwizard.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e", + "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e. Vox state made by Flareguy for SS14", "size": { "x": 32, "y": 32 @@ -14,6 +14,10 @@ "name": "equipped-OUTERCLOTHING", "directions": 4 }, + { + "name": "equipped-OUTERCLOTHING-vox", + "directions": 4 + }, { "name": "inhand-left", "directions": 4 diff --git a/Resources/Textures/Clothing/OuterClothing/Misc/wizard.rsi/equipped-OUTERCLOTHING-vox.png b/Resources/Textures/Clothing/OuterClothing/Misc/wizard.rsi/equipped-OUTERCLOTHING-vox.png new file mode 100644 index 0000000000..a586ec3fe3 Binary files /dev/null and b/Resources/Textures/Clothing/OuterClothing/Misc/wizard.rsi/equipped-OUTERCLOTHING-vox.png differ diff --git a/Resources/Textures/Clothing/OuterClothing/Misc/wizard.rsi/meta.json b/Resources/Textures/Clothing/OuterClothing/Misc/wizard.rsi/meta.json index e482264df5..15aef26a56 100644 --- a/Resources/Textures/Clothing/OuterClothing/Misc/wizard.rsi/meta.json +++ b/Resources/Textures/Clothing/OuterClothing/Misc/wizard.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e", + "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e. Vox state made by Flareguy for SS14", "size": { "x": 32, "y": 32 @@ -14,6 +14,10 @@ "name": "equipped-OUTERCLOTHING", "directions": 4 }, + { + "name": "equipped-OUTERCLOTHING-vox", + "directions": 4 + }, { "name": "inhand-left", "directions": 4 diff --git a/Resources/Textures/Clothing/OuterClothing/Suits/bombsuit.rsi/equipped-OUTERCLOTHING-vox.png b/Resources/Textures/Clothing/OuterClothing/Suits/bombsuit.rsi/equipped-OUTERCLOTHING-vox.png new file mode 100644 index 0000000000..36cea26549 Binary files /dev/null and b/Resources/Textures/Clothing/OuterClothing/Suits/bombsuit.rsi/equipped-OUTERCLOTHING-vox.png differ diff --git a/Resources/Textures/Clothing/OuterClothing/Suits/bombsuit.rsi/meta.json b/Resources/Textures/Clothing/OuterClothing/Suits/bombsuit.rsi/meta.json index e9a9a4453d..669e1d9857 100644 --- a/Resources/Textures/Clothing/OuterClothing/Suits/bombsuit.rsi/meta.json +++ b/Resources/Textures/Clothing/OuterClothing/Suits/bombsuit.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "Taken from cev-eris at commit https://github.com/discordia-space/CEV-Eris/commit/760f0be7af33a31f5a08a3291864e91539d0ebb7", + "copyright": "Taken from cev-eris at commit https://github.com/discordia-space/CEV-Eris/commit/760f0be7af33a31f5a08a3291864e91539d0ebb7. Vox state made by Flareguy for Space Station 14", "size": { "x": 32, "y": 32 @@ -18,6 +18,10 @@ "name": "equipped-OUTERCLOTHING-harpy", "directions": 4 }, + { + "name": "equipped-OUTERCLOTHING-vox", + "directions": 4 + }, { "name": "inhand-left", "directions": 4 diff --git a/Resources/Textures/Clothing/OuterClothing/Suits/chicken.rsi/equipped-OUTERCLOTHING-vox.png b/Resources/Textures/Clothing/OuterClothing/Suits/chicken.rsi/equipped-OUTERCLOTHING-vox.png new file mode 100644 index 0000000000..d9ccc1dd96 Binary files /dev/null and b/Resources/Textures/Clothing/OuterClothing/Suits/chicken.rsi/equipped-OUTERCLOTHING-vox.png differ diff --git a/Resources/Textures/Clothing/OuterClothing/Suits/chicken.rsi/meta.json b/Resources/Textures/Clothing/OuterClothing/Suits/chicken.rsi/meta.json index e482264df5..ca1146d007 100644 --- a/Resources/Textures/Clothing/OuterClothing/Suits/chicken.rsi/meta.json +++ b/Resources/Textures/Clothing/OuterClothing/Suits/chicken.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e", + "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e. equipped-OUTERCLOTHING-vox state taken from /vg/station at commit https://github.com/vgstation-coders/vgstation13/commit/31d6576ba8102135d058ef49c3cb6ecbe8db8a79", "size": { "x": 32, "y": 32 @@ -21,6 +21,10 @@ { "name": "inhand-right", "directions": 4 + }, + { + "name": "equipped-OUTERCLOTHING-vox", + "directions": 4 } ] } diff --git a/Resources/Textures/Clothing/OuterClothing/Suits/eva.rsi/equipped-OUTERCLOTHING-vox.png b/Resources/Textures/Clothing/OuterClothing/Suits/eva.rsi/equipped-OUTERCLOTHING-vox.png new file mode 100644 index 0000000000..2fb7750843 Binary files /dev/null and b/Resources/Textures/Clothing/OuterClothing/Suits/eva.rsi/equipped-OUTERCLOTHING-vox.png differ diff --git a/Resources/Textures/Clothing/OuterClothing/Suits/eva.rsi/meta.json b/Resources/Textures/Clothing/OuterClothing/Suits/eva.rsi/meta.json index 4dcd7b13b5..136d76ea97 100644 --- a/Resources/Textures/Clothing/OuterClothing/Suits/eva.rsi/meta.json +++ b/Resources/Textures/Clothing/OuterClothing/Suits/eva.rsi/meta.json @@ -14,6 +14,10 @@ "name": "equipped-OUTERCLOTHING", "directions": 4 }, + { + "name": "equipped-OUTERCLOTHING-vox", + "directions": 4 + }, { "name": "equipped-OUTERCLOTHING-monkey", "directions": 4 diff --git a/Resources/Textures/Clothing/OuterClothing/Suits/eva_emergency.rsi/equipped-OUTERCLOTHING-vox.png b/Resources/Textures/Clothing/OuterClothing/Suits/eva_emergency.rsi/equipped-OUTERCLOTHING-vox.png new file mode 100644 index 0000000000..99b555f7ac Binary files /dev/null and b/Resources/Textures/Clothing/OuterClothing/Suits/eva_emergency.rsi/equipped-OUTERCLOTHING-vox.png differ diff --git a/Resources/Textures/Clothing/OuterClothing/Suits/eva_emergency.rsi/meta.json b/Resources/Textures/Clothing/OuterClothing/Suits/eva_emergency.rsi/meta.json index 8d09b75006..87ae5d0fb0 100644 --- a/Resources/Textures/Clothing/OuterClothing/Suits/eva_emergency.rsi/meta.json +++ b/Resources/Textures/Clothing/OuterClothing/Suits/eva_emergency.rsi/meta.json @@ -18,6 +18,10 @@ "name": "equipped-OUTERCLOTHING-harpy", "directions": 4 }, + { + "name": "equipped-OUTERCLOTHING-vox", + "directions": 4 + }, { "name": "inhand-left", "directions": 4 diff --git a/Resources/Textures/Clothing/OuterClothing/Suits/eva_prisoner.rsi/equipped-OUTERCLOTHING-vox.png b/Resources/Textures/Clothing/OuterClothing/Suits/eva_prisoner.rsi/equipped-OUTERCLOTHING-vox.png new file mode 100644 index 0000000000..9601695dac Binary files /dev/null and b/Resources/Textures/Clothing/OuterClothing/Suits/eva_prisoner.rsi/equipped-OUTERCLOTHING-vox.png differ diff --git a/Resources/Textures/Clothing/OuterClothing/Suits/eva_prisoner.rsi/meta.json b/Resources/Textures/Clothing/OuterClothing/Suits/eva_prisoner.rsi/meta.json index 0482d08642..510a3431af 100644 --- a/Resources/Textures/Clothing/OuterClothing/Suits/eva_prisoner.rsi/meta.json +++ b/Resources/Textures/Clothing/OuterClothing/Suits/eva_prisoner.rsi/meta.json @@ -14,6 +14,10 @@ "name": "equipped-OUTERCLOTHING", "directions": 4 }, + { + "name": "equipped-OUTERCLOTHING-vox", + "directions": 4 + }, { "name": "equipped-OUTERCLOTHING-monkey", "directions": 4 diff --git a/Resources/Textures/Clothing/OuterClothing/Suits/eva_syndicate.rsi/equipped-OUTERCLOTHING-vox.png b/Resources/Textures/Clothing/OuterClothing/Suits/eva_syndicate.rsi/equipped-OUTERCLOTHING-vox.png new file mode 100644 index 0000000000..7f71b04f1c Binary files /dev/null and b/Resources/Textures/Clothing/OuterClothing/Suits/eva_syndicate.rsi/equipped-OUTERCLOTHING-vox.png differ diff --git a/Resources/Textures/Clothing/OuterClothing/Suits/eva_syndicate.rsi/meta.json b/Resources/Textures/Clothing/OuterClothing/Suits/eva_syndicate.rsi/meta.json index 0482d08642..510a3431af 100644 --- a/Resources/Textures/Clothing/OuterClothing/Suits/eva_syndicate.rsi/meta.json +++ b/Resources/Textures/Clothing/OuterClothing/Suits/eva_syndicate.rsi/meta.json @@ -14,6 +14,10 @@ "name": "equipped-OUTERCLOTHING", "directions": 4 }, + { + "name": "equipped-OUTERCLOTHING-vox", + "directions": 4 + }, { "name": "equipped-OUTERCLOTHING-monkey", "directions": 4 diff --git a/Resources/Textures/Clothing/OuterClothing/Suits/fire.rsi/equipped-OUTERCLOTHING-vox.png b/Resources/Textures/Clothing/OuterClothing/Suits/fire.rsi/equipped-OUTERCLOTHING-vox.png new file mode 100644 index 0000000000..920cc9e05f Binary files /dev/null and b/Resources/Textures/Clothing/OuterClothing/Suits/fire.rsi/equipped-OUTERCLOTHING-vox.png differ diff --git a/Resources/Textures/Clothing/OuterClothing/Suits/fire.rsi/meta.json b/Resources/Textures/Clothing/OuterClothing/Suits/fire.rsi/meta.json index 0a8c670a89..5edb377409 100644 --- a/Resources/Textures/Clothing/OuterClothing/Suits/fire.rsi/meta.json +++ b/Resources/Textures/Clothing/OuterClothing/Suits/fire.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e, harpy edit by VMSolidus", + "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e, harpy edit by VMSolidus. equipped-OUTERCLOTHING-vox state taken from /vg/station at commit https://github.com/vgstation-coders/vgstation13/commit/31d6576ba8102135d058ef49c3cb6ecbe8db8a79", "size": { "x": 32, "y": 32 @@ -18,6 +18,10 @@ "name": "equipped-OUTERCLOTHING-harpy", "directions": 4 }, + { + "name": "equipped-OUTERCLOTHING-vox", + "directions": 4 + }, { "name": "inhand-left", "directions": 4 diff --git a/Resources/Textures/Clothing/OuterClothing/Suits/monkey.rsi/equipped-OUTERCLOTHING-vox.png b/Resources/Textures/Clothing/OuterClothing/Suits/monkey.rsi/equipped-OUTERCLOTHING-vox.png new file mode 100644 index 0000000000..c585862bb1 Binary files /dev/null and b/Resources/Textures/Clothing/OuterClothing/Suits/monkey.rsi/equipped-OUTERCLOTHING-vox.png differ diff --git a/Resources/Textures/Clothing/OuterClothing/Suits/monkey.rsi/meta.json b/Resources/Textures/Clothing/OuterClothing/Suits/monkey.rsi/meta.json index e482264df5..920eab5520 100644 --- a/Resources/Textures/Clothing/OuterClothing/Suits/monkey.rsi/meta.json +++ b/Resources/Textures/Clothing/OuterClothing/Suits/monkey.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e", + "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e. Vox state made by Flareguy for Space Station 14", "size": { "x": 32, "y": 32 @@ -14,6 +14,10 @@ "name": "equipped-OUTERCLOTHING", "directions": 4 }, + { + "name": "equipped-OUTERCLOTHING-vox", + "directions": 4 + }, { "name": "inhand-left", "directions": 4 diff --git a/Resources/Textures/Clothing/OuterClothing/Suits/rad.rsi/equipped-OUTERCLOTHING-vox.png b/Resources/Textures/Clothing/OuterClothing/Suits/rad.rsi/equipped-OUTERCLOTHING-vox.png new file mode 100644 index 0000000000..13f9dacef3 Binary files /dev/null and b/Resources/Textures/Clothing/OuterClothing/Suits/rad.rsi/equipped-OUTERCLOTHING-vox.png differ diff --git a/Resources/Textures/Clothing/OuterClothing/Suits/rad.rsi/meta.json b/Resources/Textures/Clothing/OuterClothing/Suits/rad.rsi/meta.json index 0a8c670a89..e3387cff96 100644 --- a/Resources/Textures/Clothing/OuterClothing/Suits/rad.rsi/meta.json +++ b/Resources/Textures/Clothing/OuterClothing/Suits/rad.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e, harpy edit by VMSolidus", + "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e, harpy edit by VMSolidus. Vox state made by Flareguy for Space Station 14", "size": { "x": 32, "y": 32 @@ -18,6 +18,10 @@ "name": "equipped-OUTERCLOTHING-harpy", "directions": 4 }, + { + "name": "equipped-OUTERCLOTHING-vox", + "directions": 4 + }, { "name": "inhand-left", "directions": 4 diff --git a/Resources/Textures/Clothing/OuterClothing/Vests/detvest.rsi/equipped-OUTERCLOTHING-vox.png b/Resources/Textures/Clothing/OuterClothing/Vests/detvest.rsi/equipped-OUTERCLOTHING-vox.png new file mode 100644 index 0000000000..50e6d79c20 Binary files /dev/null and b/Resources/Textures/Clothing/OuterClothing/Vests/detvest.rsi/equipped-OUTERCLOTHING-vox.png differ diff --git a/Resources/Textures/Clothing/OuterClothing/Vests/detvest.rsi/meta.json b/Resources/Textures/Clothing/OuterClothing/Vests/detvest.rsi/meta.json index e482264df5..920eab5520 100644 --- a/Resources/Textures/Clothing/OuterClothing/Vests/detvest.rsi/meta.json +++ b/Resources/Textures/Clothing/OuterClothing/Vests/detvest.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e", + "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e. Vox state made by Flareguy for Space Station 14", "size": { "x": 32, "y": 32 @@ -14,6 +14,10 @@ "name": "equipped-OUTERCLOTHING", "directions": 4 }, + { + "name": "equipped-OUTERCLOTHING-vox", + "directions": 4 + }, { "name": "inhand-left", "directions": 4 diff --git a/Resources/Textures/Clothing/OuterClothing/Vests/hazard.rsi/equipped-OUTERCLOTHING-vox.png b/Resources/Textures/Clothing/OuterClothing/Vests/hazard.rsi/equipped-OUTERCLOTHING-vox.png new file mode 100644 index 0000000000..6d9f6dbead Binary files /dev/null and b/Resources/Textures/Clothing/OuterClothing/Vests/hazard.rsi/equipped-OUTERCLOTHING-vox.png differ diff --git a/Resources/Textures/Clothing/OuterClothing/Vests/hazard.rsi/meta.json b/Resources/Textures/Clothing/OuterClothing/Vests/hazard.rsi/meta.json index 05ec90135e..4c56c355a4 100644 --- a/Resources/Textures/Clothing/OuterClothing/Vests/hazard.rsi/meta.json +++ b/Resources/Textures/Clothing/OuterClothing/Vests/hazard.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/c838ba21dae97db345e0113f99596decd1d66039", + "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/c838ba21dae97db345e0113f99596decd1d66039. Vox state made by Flareguy for Space Station 14", "size": { "x": 32, "y": 32 @@ -14,6 +14,10 @@ "name": "equipped-OUTERCLOTHING", "directions": 4 }, + { + "name": "equipped-OUTERCLOTHING-vox", + "directions": 4 + }, { "name": "inhand-left", "directions": 4 diff --git a/Resources/Textures/Clothing/OuterClothing/Vests/vest.rsi/equipped-OUTERCLOTHING-vox.png b/Resources/Textures/Clothing/OuterClothing/Vests/vest.rsi/equipped-OUTERCLOTHING-vox.png new file mode 100644 index 0000000000..ee35c40fbd Binary files /dev/null and b/Resources/Textures/Clothing/OuterClothing/Vests/vest.rsi/equipped-OUTERCLOTHING-vox.png differ diff --git a/Resources/Textures/Clothing/OuterClothing/Vests/vest.rsi/meta.json b/Resources/Textures/Clothing/OuterClothing/Vests/vest.rsi/meta.json index e482264df5..920eab5520 100644 --- a/Resources/Textures/Clothing/OuterClothing/Vests/vest.rsi/meta.json +++ b/Resources/Textures/Clothing/OuterClothing/Vests/vest.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e", + "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e. Vox state made by Flareguy for Space Station 14", "size": { "x": 32, "y": 32 @@ -14,6 +14,10 @@ "name": "equipped-OUTERCLOTHING", "directions": 4 }, + { + "name": "equipped-OUTERCLOTHING-vox", + "directions": 4 + }, { "name": "inhand-left", "directions": 4 diff --git a/Resources/Textures/Clothing/OuterClothing/Vests/webvest.rsi/equipped-OUTERCLOTHING-vox.png b/Resources/Textures/Clothing/OuterClothing/Vests/webvest.rsi/equipped-OUTERCLOTHING-vox.png new file mode 100644 index 0000000000..17d75d29b3 Binary files /dev/null and b/Resources/Textures/Clothing/OuterClothing/Vests/webvest.rsi/equipped-OUTERCLOTHING-vox.png differ diff --git a/Resources/Textures/Clothing/OuterClothing/Vests/webvest.rsi/meta.json b/Resources/Textures/Clothing/OuterClothing/Vests/webvest.rsi/meta.json index e482264df5..0e30ab4d3f 100644 --- a/Resources/Textures/Clothing/OuterClothing/Vests/webvest.rsi/meta.json +++ b/Resources/Textures/Clothing/OuterClothing/Vests/webvest.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e", + "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e. Vox state by Flareguy for SS14", "size": { "x": 32, "y": 32 @@ -14,6 +14,10 @@ "name": "equipped-OUTERCLOTHING", "directions": 4 }, + { + "name": "equipped-OUTERCLOTHING-vox", + "directions": 4 + }, { "name": "inhand-left", "directions": 4 diff --git a/Resources/Textures/Clothing/OuterClothing/WinterCoats/coat.rsi/equipped-OUTERCLOTHING-vox.png b/Resources/Textures/Clothing/OuterClothing/WinterCoats/coat.rsi/equipped-OUTERCLOTHING-vox.png new file mode 100644 index 0000000000..440fc3375f Binary files /dev/null and b/Resources/Textures/Clothing/OuterClothing/WinterCoats/coat.rsi/equipped-OUTERCLOTHING-vox.png differ diff --git a/Resources/Textures/Clothing/OuterClothing/WinterCoats/coat.rsi/meta.json b/Resources/Textures/Clothing/OuterClothing/WinterCoats/coat.rsi/meta.json index 7752722477..19f610cdfe 100644 --- a/Resources/Textures/Clothing/OuterClothing/WinterCoats/coat.rsi/meta.json +++ b/Resources/Textures/Clothing/OuterClothing/WinterCoats/coat.rsi/meta.json @@ -1,26 +1,30 @@ -{ - "version": 1, - "license": "CC-BY-SA-3.0", - "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/77cff42b6c514e73881a885036be4b4dd2949f62", - "size": { - "x": 32, - "y": 32 - }, - "states": [ - { - "name": "icon" - }, - { - "name": "equipped-OUTERCLOTHING", - "directions": 4 - }, - { - "name": "inhand-left", - "directions": 4 - }, - { - "name": "inhand-right", - "directions": 4 - } - ] -} \ No newline at end of file +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/77cff42b6c514e73881a885036be4b4dd2949f62. equipped-OUTERCLOTHING-vox state taken from /vg/station at commit https://github.com/vgstation-coders/vgstation13/commit/31d6576ba8102135d058ef49c3cb6ecbe8db8a79", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "equipped-OUTERCLOTHING", + "directions": 4 + }, + { + "name": "equipped-OUTERCLOTHING-vox", + "directions": 4 + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/Clothing/OuterClothing/WinterCoats/coatatmos.rsi/equipped-OUTERCLOTHING-vox.png b/Resources/Textures/Clothing/OuterClothing/WinterCoats/coatatmos.rsi/equipped-OUTERCLOTHING-vox.png new file mode 100644 index 0000000000..1d75531317 Binary files /dev/null and b/Resources/Textures/Clothing/OuterClothing/WinterCoats/coatatmos.rsi/equipped-OUTERCLOTHING-vox.png differ diff --git a/Resources/Textures/Clothing/OuterClothing/WinterCoats/coatatmos.rsi/meta.json b/Resources/Textures/Clothing/OuterClothing/WinterCoats/coatatmos.rsi/meta.json index 7752722477..5d9e9636f7 100644 --- a/Resources/Textures/Clothing/OuterClothing/WinterCoats/coatatmos.rsi/meta.json +++ b/Resources/Textures/Clothing/OuterClothing/WinterCoats/coatatmos.rsi/meta.json @@ -1,26 +1,30 @@ -{ - "version": 1, - "license": "CC-BY-SA-3.0", - "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/77cff42b6c514e73881a885036be4b4dd2949f62", - "size": { - "x": 32, - "y": 32 - }, - "states": [ - { - "name": "icon" - }, - { - "name": "equipped-OUTERCLOTHING", - "directions": 4 - }, - { - "name": "inhand-left", - "directions": 4 - }, - { - "name": "inhand-right", - "directions": 4 - } - ] +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/77cff42b6c514e73881a885036be4b4dd2949f62. equipped-OUTERCLOTHING-vox state taken from /vg/station at commit https://github.com/vgstation-coders/vgstation13/commit/31d6576ba8102135d058ef49c3cb6ecbe8db8a79", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "equipped-OUTERCLOTHING", + "directions": 4 + }, + { + "name": "equipped-OUTERCLOTHING-vox", + "directions": 4 + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + } + ] } \ No newline at end of file diff --git a/Resources/Textures/Clothing/OuterClothing/WinterCoats/coatbar.rsi/equipped-OUTERCLOTHING-vox.png b/Resources/Textures/Clothing/OuterClothing/WinterCoats/coatbar.rsi/equipped-OUTERCLOTHING-vox.png new file mode 100644 index 0000000000..092d66ea3e Binary files /dev/null and b/Resources/Textures/Clothing/OuterClothing/WinterCoats/coatbar.rsi/equipped-OUTERCLOTHING-vox.png differ diff --git a/Resources/Textures/Clothing/OuterClothing/WinterCoats/coatbar.rsi/meta.json b/Resources/Textures/Clothing/OuterClothing/WinterCoats/coatbar.rsi/meta.json index 7863947d1c..19fcc6a935 100644 --- a/Resources/Textures/Clothing/OuterClothing/WinterCoats/coatbar.rsi/meta.json +++ b/Resources/Textures/Clothing/OuterClothing/WinterCoats/coatbar.rsi/meta.json @@ -1,26 +1,30 @@ -{ - "version": 1, - "license": "CC-BY-SA-3.0", - "copyright": "Taken from vg at commit https://github.com/vgstation-coders/vgstation13/commit/a16e41020a93479e9a7e2af343b1b74f7f2a61bd", - "size": { - "x": 32, - "y": 32 - }, - "states": [ - { - "name": "icon" - }, - { - "name": "equipped-OUTERCLOTHING", - "directions": 4 - }, - { - "name": "inhand-left", - "directions": 4 - }, - { - "name": "inhand-right", - "directions": 4 - } - ] +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from vg at commit https://github.com/vgstation-coders/vgstation13/commit/31d6576ba8102135d058ef49c3cb6ecbe8db8a79", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "equipped-OUTERCLOTHING", + "directions": 4 + }, + { + "name": "equipped-OUTERCLOTHING-vox", + "directions": 4 + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + } + ] } \ No newline at end of file diff --git a/Resources/Textures/Clothing/OuterClothing/WinterCoats/coatcap.rsi/equipped-OUTERCLOTHING-vox.png b/Resources/Textures/Clothing/OuterClothing/WinterCoats/coatcap.rsi/equipped-OUTERCLOTHING-vox.png new file mode 100644 index 0000000000..0fca4396ea Binary files /dev/null and b/Resources/Textures/Clothing/OuterClothing/WinterCoats/coatcap.rsi/equipped-OUTERCLOTHING-vox.png differ diff --git a/Resources/Textures/Clothing/OuterClothing/WinterCoats/coatcap.rsi/meta.json b/Resources/Textures/Clothing/OuterClothing/WinterCoats/coatcap.rsi/meta.json index 46b3e631a0..7ddd460a3b 100644 --- a/Resources/Textures/Clothing/OuterClothing/WinterCoats/coatcap.rsi/meta.json +++ b/Resources/Textures/Clothing/OuterClothing/WinterCoats/coatcap.rsi/meta.json @@ -1,26 +1,30 @@ -{ - "version": 1, - "license": "CC-BY-SA-3.0", - "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/77cff42b6c514e73881a885036be4b4dd2949f62 , edited by Skarletto (github)", - "size": { - "x": 32, - "y": 32 - }, - "states": [ - { - "name": "icon" - }, - { - "name": "equipped-OUTERCLOTHING", - "directions": 4 - }, - { - "name": "inhand-left", - "directions": 4 - }, - { - "name": "inhand-right", - "directions": 4 - } - ] +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/77cff42b6c514e73881a885036be4b4dd2949f62, edited by Skarletto (github). equipped-OUTERCLOTHING-vox state taken from /vg/station at commit https://github.com/vgstation-coders/vgstation13/commit/31d6576ba8102135d058ef49c3cb6ecbe8db8a79 and repaletted to match with the default state", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "equipped-OUTERCLOTHING", + "directions": 4 + }, + { + "name": "equipped-OUTERCLOTHING-vox", + "directions": 4 + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + } + ] } \ No newline at end of file diff --git a/Resources/Textures/Clothing/OuterClothing/WinterCoats/coatcargo.rsi/equipped-OUTERCLOTHING-vox.png b/Resources/Textures/Clothing/OuterClothing/WinterCoats/coatcargo.rsi/equipped-OUTERCLOTHING-vox.png new file mode 100644 index 0000000000..f4427249ec Binary files /dev/null and b/Resources/Textures/Clothing/OuterClothing/WinterCoats/coatcargo.rsi/equipped-OUTERCLOTHING-vox.png differ diff --git a/Resources/Textures/Clothing/OuterClothing/WinterCoats/coatcargo.rsi/meta.json b/Resources/Textures/Clothing/OuterClothing/WinterCoats/coatcargo.rsi/meta.json index 7752722477..5d9e9636f7 100644 --- a/Resources/Textures/Clothing/OuterClothing/WinterCoats/coatcargo.rsi/meta.json +++ b/Resources/Textures/Clothing/OuterClothing/WinterCoats/coatcargo.rsi/meta.json @@ -1,26 +1,30 @@ -{ - "version": 1, - "license": "CC-BY-SA-3.0", - "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/77cff42b6c514e73881a885036be4b4dd2949f62", - "size": { - "x": 32, - "y": 32 - }, - "states": [ - { - "name": "icon" - }, - { - "name": "equipped-OUTERCLOTHING", - "directions": 4 - }, - { - "name": "inhand-left", - "directions": 4 - }, - { - "name": "inhand-right", - "directions": 4 - } - ] +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/77cff42b6c514e73881a885036be4b4dd2949f62. equipped-OUTERCLOTHING-vox state taken from /vg/station at commit https://github.com/vgstation-coders/vgstation13/commit/31d6576ba8102135d058ef49c3cb6ecbe8db8a79", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "equipped-OUTERCLOTHING", + "directions": 4 + }, + { + "name": "equipped-OUTERCLOTHING-vox", + "directions": 4 + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + } + ] } \ No newline at end of file diff --git a/Resources/Textures/Clothing/OuterClothing/WinterCoats/coatce.rsi/equipped-OUTERCLOTHING-vox.png b/Resources/Textures/Clothing/OuterClothing/WinterCoats/coatce.rsi/equipped-OUTERCLOTHING-vox.png new file mode 100644 index 0000000000..29002eaf6b Binary files /dev/null and b/Resources/Textures/Clothing/OuterClothing/WinterCoats/coatce.rsi/equipped-OUTERCLOTHING-vox.png differ diff --git a/Resources/Textures/Clothing/OuterClothing/WinterCoats/coatce.rsi/meta.json b/Resources/Textures/Clothing/OuterClothing/WinterCoats/coatce.rsi/meta.json index 7752722477..5d9e9636f7 100644 --- a/Resources/Textures/Clothing/OuterClothing/WinterCoats/coatce.rsi/meta.json +++ b/Resources/Textures/Clothing/OuterClothing/WinterCoats/coatce.rsi/meta.json @@ -1,26 +1,30 @@ -{ - "version": 1, - "license": "CC-BY-SA-3.0", - "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/77cff42b6c514e73881a885036be4b4dd2949f62", - "size": { - "x": 32, - "y": 32 - }, - "states": [ - { - "name": "icon" - }, - { - "name": "equipped-OUTERCLOTHING", - "directions": 4 - }, - { - "name": "inhand-left", - "directions": 4 - }, - { - "name": "inhand-right", - "directions": 4 - } - ] +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/77cff42b6c514e73881a885036be4b4dd2949f62. equipped-OUTERCLOTHING-vox state taken from /vg/station at commit https://github.com/vgstation-coders/vgstation13/commit/31d6576ba8102135d058ef49c3cb6ecbe8db8a79", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "equipped-OUTERCLOTHING", + "directions": 4 + }, + { + "name": "equipped-OUTERCLOTHING-vox", + "directions": 4 + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + } + ] } \ No newline at end of file diff --git a/Resources/Textures/Clothing/OuterClothing/WinterCoats/coatclown.rsi/equipped-OUTERCLOTHING-vox.png b/Resources/Textures/Clothing/OuterClothing/WinterCoats/coatclown.rsi/equipped-OUTERCLOTHING-vox.png new file mode 100644 index 0000000000..781df9000b Binary files /dev/null and b/Resources/Textures/Clothing/OuterClothing/WinterCoats/coatclown.rsi/equipped-OUTERCLOTHING-vox.png differ diff --git a/Resources/Textures/Clothing/OuterClothing/WinterCoats/coatclown.rsi/meta.json b/Resources/Textures/Clothing/OuterClothing/WinterCoats/coatclown.rsi/meta.json index 7863947d1c..19fcc6a935 100644 --- a/Resources/Textures/Clothing/OuterClothing/WinterCoats/coatclown.rsi/meta.json +++ b/Resources/Textures/Clothing/OuterClothing/WinterCoats/coatclown.rsi/meta.json @@ -1,26 +1,30 @@ -{ - "version": 1, - "license": "CC-BY-SA-3.0", - "copyright": "Taken from vg at commit https://github.com/vgstation-coders/vgstation13/commit/a16e41020a93479e9a7e2af343b1b74f7f2a61bd", - "size": { - "x": 32, - "y": 32 - }, - "states": [ - { - "name": "icon" - }, - { - "name": "equipped-OUTERCLOTHING", - "directions": 4 - }, - { - "name": "inhand-left", - "directions": 4 - }, - { - "name": "inhand-right", - "directions": 4 - } - ] +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from vg at commit https://github.com/vgstation-coders/vgstation13/commit/31d6576ba8102135d058ef49c3cb6ecbe8db8a79", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "equipped-OUTERCLOTHING", + "directions": 4 + }, + { + "name": "equipped-OUTERCLOTHING-vox", + "directions": 4 + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + } + ] } \ No newline at end of file diff --git a/Resources/Textures/Clothing/OuterClothing/WinterCoats/coatengi.rsi/equipped-OUTERCLOTHING-vox.png b/Resources/Textures/Clothing/OuterClothing/WinterCoats/coatengi.rsi/equipped-OUTERCLOTHING-vox.png new file mode 100644 index 0000000000..015e325023 Binary files /dev/null and b/Resources/Textures/Clothing/OuterClothing/WinterCoats/coatengi.rsi/equipped-OUTERCLOTHING-vox.png differ diff --git a/Resources/Textures/Clothing/OuterClothing/WinterCoats/coatengi.rsi/meta.json b/Resources/Textures/Clothing/OuterClothing/WinterCoats/coatengi.rsi/meta.json index 7752722477..5d9e9636f7 100644 --- a/Resources/Textures/Clothing/OuterClothing/WinterCoats/coatengi.rsi/meta.json +++ b/Resources/Textures/Clothing/OuterClothing/WinterCoats/coatengi.rsi/meta.json @@ -1,26 +1,30 @@ -{ - "version": 1, - "license": "CC-BY-SA-3.0", - "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/77cff42b6c514e73881a885036be4b4dd2949f62", - "size": { - "x": 32, - "y": 32 - }, - "states": [ - { - "name": "icon" - }, - { - "name": "equipped-OUTERCLOTHING", - "directions": 4 - }, - { - "name": "inhand-left", - "directions": 4 - }, - { - "name": "inhand-right", - "directions": 4 - } - ] +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/77cff42b6c514e73881a885036be4b4dd2949f62. equipped-OUTERCLOTHING-vox state taken from /vg/station at commit https://github.com/vgstation-coders/vgstation13/commit/31d6576ba8102135d058ef49c3cb6ecbe8db8a79", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "equipped-OUTERCLOTHING", + "directions": 4 + }, + { + "name": "equipped-OUTERCLOTHING-vox", + "directions": 4 + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + } + ] } \ No newline at end of file diff --git a/Resources/Textures/Clothing/OuterClothing/WinterCoats/coathosarmored.rsi/equipped-OUTERCLOTHING.png b/Resources/Textures/Clothing/OuterClothing/WinterCoats/coathosarmored.rsi/equipped-OUTERCLOTHING.png new file mode 100644 index 0000000000..d279e92da2 Binary files /dev/null and b/Resources/Textures/Clothing/OuterClothing/WinterCoats/coathosarmored.rsi/equipped-OUTERCLOTHING.png differ diff --git a/Resources/Textures/Clothing/OuterClothing/WinterCoats/coathosarmored.rsi/icon.png b/Resources/Textures/Clothing/OuterClothing/WinterCoats/coathosarmored.rsi/icon.png new file mode 100644 index 0000000000..6f7573420d Binary files /dev/null and b/Resources/Textures/Clothing/OuterClothing/WinterCoats/coathosarmored.rsi/icon.png differ diff --git a/Resources/Textures/Clothing/OuterClothing/WinterCoats/coathosarmored.rsi/inhand-left.png b/Resources/Textures/Clothing/OuterClothing/WinterCoats/coathosarmored.rsi/inhand-left.png new file mode 100644 index 0000000000..85a0b83457 Binary files /dev/null and b/Resources/Textures/Clothing/OuterClothing/WinterCoats/coathosarmored.rsi/inhand-left.png differ diff --git a/Resources/Textures/Clothing/OuterClothing/WinterCoats/coathosarmored.rsi/inhand-right.png b/Resources/Textures/Clothing/OuterClothing/WinterCoats/coathosarmored.rsi/inhand-right.png new file mode 100644 index 0000000000..70ade34a8d Binary files /dev/null and b/Resources/Textures/Clothing/OuterClothing/WinterCoats/coathosarmored.rsi/inhand-right.png differ diff --git a/Resources/Textures/Clothing/OuterClothing/WinterCoats/coathosarmored.rsi/meta.json b/Resources/Textures/Clothing/OuterClothing/WinterCoats/coathosarmored.rsi/meta.json new file mode 100644 index 0000000000..4010520850 --- /dev/null +++ b/Resources/Textures/Clothing/OuterClothing/WinterCoats/coathosarmored.rsi/meta.json @@ -0,0 +1,26 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from vg at commit https://github.com/vgstation-coders/vgstation13/commit/a16e41020a93479e9a7e2af343b1b74f7f2a61bd, recolored by Github user PursuitinAshes", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "equipped-OUTERCLOTHING", + "directions": 4 + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/Clothing/OuterClothing/WinterCoats/coathydro.rsi/equipped-OUTERCLOTHING-vox.png b/Resources/Textures/Clothing/OuterClothing/WinterCoats/coathydro.rsi/equipped-OUTERCLOTHING-vox.png new file mode 100644 index 0000000000..334e1e8fe8 Binary files /dev/null and b/Resources/Textures/Clothing/OuterClothing/WinterCoats/coathydro.rsi/equipped-OUTERCLOTHING-vox.png differ diff --git a/Resources/Textures/Clothing/OuterClothing/WinterCoats/coathydro.rsi/meta.json b/Resources/Textures/Clothing/OuterClothing/WinterCoats/coathydro.rsi/meta.json index 7752722477..5d9e9636f7 100644 --- a/Resources/Textures/Clothing/OuterClothing/WinterCoats/coathydro.rsi/meta.json +++ b/Resources/Textures/Clothing/OuterClothing/WinterCoats/coathydro.rsi/meta.json @@ -1,26 +1,30 @@ -{ - "version": 1, - "license": "CC-BY-SA-3.0", - "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/77cff42b6c514e73881a885036be4b4dd2949f62", - "size": { - "x": 32, - "y": 32 - }, - "states": [ - { - "name": "icon" - }, - { - "name": "equipped-OUTERCLOTHING", - "directions": 4 - }, - { - "name": "inhand-left", - "directions": 4 - }, - { - "name": "inhand-right", - "directions": 4 - } - ] +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/77cff42b6c514e73881a885036be4b4dd2949f62. equipped-OUTERCLOTHING-vox state taken from /vg/station at commit https://github.com/vgstation-coders/vgstation13/commit/31d6576ba8102135d058ef49c3cb6ecbe8db8a79", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "equipped-OUTERCLOTHING", + "directions": 4 + }, + { + "name": "equipped-OUTERCLOTHING-vox", + "directions": 4 + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + } + ] } \ No newline at end of file diff --git a/Resources/Textures/Clothing/OuterClothing/WinterCoats/coatmed.rsi/equipped-OUTERCLOTHING-vox.png b/Resources/Textures/Clothing/OuterClothing/WinterCoats/coatmed.rsi/equipped-OUTERCLOTHING-vox.png new file mode 100644 index 0000000000..7b1b9d883c Binary files /dev/null and b/Resources/Textures/Clothing/OuterClothing/WinterCoats/coatmed.rsi/equipped-OUTERCLOTHING-vox.png differ diff --git a/Resources/Textures/Clothing/OuterClothing/WinterCoats/coatmed.rsi/meta.json b/Resources/Textures/Clothing/OuterClothing/WinterCoats/coatmed.rsi/meta.json index 7752722477..5d9e9636f7 100644 --- a/Resources/Textures/Clothing/OuterClothing/WinterCoats/coatmed.rsi/meta.json +++ b/Resources/Textures/Clothing/OuterClothing/WinterCoats/coatmed.rsi/meta.json @@ -1,26 +1,30 @@ -{ - "version": 1, - "license": "CC-BY-SA-3.0", - "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/77cff42b6c514e73881a885036be4b4dd2949f62", - "size": { - "x": 32, - "y": 32 - }, - "states": [ - { - "name": "icon" - }, - { - "name": "equipped-OUTERCLOTHING", - "directions": 4 - }, - { - "name": "inhand-left", - "directions": 4 - }, - { - "name": "inhand-right", - "directions": 4 - } - ] +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/77cff42b6c514e73881a885036be4b4dd2949f62. equipped-OUTERCLOTHING-vox state taken from /vg/station at commit https://github.com/vgstation-coders/vgstation13/commit/31d6576ba8102135d058ef49c3cb6ecbe8db8a79", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "equipped-OUTERCLOTHING", + "directions": 4 + }, + { + "name": "equipped-OUTERCLOTHING-vox", + "directions": 4 + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + } + ] } \ No newline at end of file diff --git a/Resources/Textures/Clothing/OuterClothing/WinterCoats/coatmime.rsi/equipped-OUTERCLOTHING-vox.png b/Resources/Textures/Clothing/OuterClothing/WinterCoats/coatmime.rsi/equipped-OUTERCLOTHING-vox.png new file mode 100644 index 0000000000..f713d3c846 Binary files /dev/null and b/Resources/Textures/Clothing/OuterClothing/WinterCoats/coatmime.rsi/equipped-OUTERCLOTHING-vox.png differ diff --git a/Resources/Textures/Clothing/OuterClothing/WinterCoats/coatmime.rsi/meta.json b/Resources/Textures/Clothing/OuterClothing/WinterCoats/coatmime.rsi/meta.json index 7863947d1c..19fcc6a935 100644 --- a/Resources/Textures/Clothing/OuterClothing/WinterCoats/coatmime.rsi/meta.json +++ b/Resources/Textures/Clothing/OuterClothing/WinterCoats/coatmime.rsi/meta.json @@ -1,26 +1,30 @@ -{ - "version": 1, - "license": "CC-BY-SA-3.0", - "copyright": "Taken from vg at commit https://github.com/vgstation-coders/vgstation13/commit/a16e41020a93479e9a7e2af343b1b74f7f2a61bd", - "size": { - "x": 32, - "y": 32 - }, - "states": [ - { - "name": "icon" - }, - { - "name": "equipped-OUTERCLOTHING", - "directions": 4 - }, - { - "name": "inhand-left", - "directions": 4 - }, - { - "name": "inhand-right", - "directions": 4 - } - ] +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from vg at commit https://github.com/vgstation-coders/vgstation13/commit/31d6576ba8102135d058ef49c3cb6ecbe8db8a79", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "equipped-OUTERCLOTHING", + "directions": 4 + }, + { + "name": "equipped-OUTERCLOTHING-vox", + "directions": 4 + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + } + ] } \ No newline at end of file diff --git a/Resources/Textures/Clothing/OuterClothing/WinterCoats/coatminer.rsi/equipped-OUTERCLOTHING-vox.png b/Resources/Textures/Clothing/OuterClothing/WinterCoats/coatminer.rsi/equipped-OUTERCLOTHING-vox.png new file mode 100644 index 0000000000..438eced1b5 Binary files /dev/null and b/Resources/Textures/Clothing/OuterClothing/WinterCoats/coatminer.rsi/equipped-OUTERCLOTHING-vox.png differ diff --git a/Resources/Textures/Clothing/OuterClothing/WinterCoats/coatminer.rsi/meta.json b/Resources/Textures/Clothing/OuterClothing/WinterCoats/coatminer.rsi/meta.json index 7752722477..5d9e9636f7 100644 --- a/Resources/Textures/Clothing/OuterClothing/WinterCoats/coatminer.rsi/meta.json +++ b/Resources/Textures/Clothing/OuterClothing/WinterCoats/coatminer.rsi/meta.json @@ -1,26 +1,30 @@ -{ - "version": 1, - "license": "CC-BY-SA-3.0", - "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/77cff42b6c514e73881a885036be4b4dd2949f62", - "size": { - "x": 32, - "y": 32 - }, - "states": [ - { - "name": "icon" - }, - { - "name": "equipped-OUTERCLOTHING", - "directions": 4 - }, - { - "name": "inhand-left", - "directions": 4 - }, - { - "name": "inhand-right", - "directions": 4 - } - ] +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/77cff42b6c514e73881a885036be4b4dd2949f62. equipped-OUTERCLOTHING-vox state taken from /vg/station at commit https://github.com/vgstation-coders/vgstation13/commit/31d6576ba8102135d058ef49c3cb6ecbe8db8a79", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "equipped-OUTERCLOTHING", + "directions": 4 + }, + { + "name": "equipped-OUTERCLOTHING-vox", + "directions": 4 + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + } + ] } \ No newline at end of file diff --git a/Resources/Textures/Clothing/OuterClothing/WinterCoats/coatparamed.rsi/equipped-OUTERCLOTHING-vox.png b/Resources/Textures/Clothing/OuterClothing/WinterCoats/coatparamed.rsi/equipped-OUTERCLOTHING-vox.png new file mode 100644 index 0000000000..a7ff104066 Binary files /dev/null and b/Resources/Textures/Clothing/OuterClothing/WinterCoats/coatparamed.rsi/equipped-OUTERCLOTHING-vox.png differ diff --git a/Resources/Textures/Clothing/OuterClothing/WinterCoats/coatparamed.rsi/meta.json b/Resources/Textures/Clothing/OuterClothing/WinterCoats/coatparamed.rsi/meta.json index 7752722477..5d9e9636f7 100644 --- a/Resources/Textures/Clothing/OuterClothing/WinterCoats/coatparamed.rsi/meta.json +++ b/Resources/Textures/Clothing/OuterClothing/WinterCoats/coatparamed.rsi/meta.json @@ -1,26 +1,30 @@ -{ - "version": 1, - "license": "CC-BY-SA-3.0", - "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/77cff42b6c514e73881a885036be4b4dd2949f62", - "size": { - "x": 32, - "y": 32 - }, - "states": [ - { - "name": "icon" - }, - { - "name": "equipped-OUTERCLOTHING", - "directions": 4 - }, - { - "name": "inhand-left", - "directions": 4 - }, - { - "name": "inhand-right", - "directions": 4 - } - ] +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/77cff42b6c514e73881a885036be4b4dd2949f62. equipped-OUTERCLOTHING-vox state taken from /vg/station at commit https://github.com/vgstation-coders/vgstation13/commit/31d6576ba8102135d058ef49c3cb6ecbe8db8a79", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "equipped-OUTERCLOTHING", + "directions": 4 + }, + { + "name": "equipped-OUTERCLOTHING-vox", + "directions": 4 + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + } + ] } \ No newline at end of file diff --git a/Resources/Textures/Clothing/OuterClothing/WinterCoats/coatsci.rsi/equipped-OUTERCLOTHING-vox.png b/Resources/Textures/Clothing/OuterClothing/WinterCoats/coatsci.rsi/equipped-OUTERCLOTHING-vox.png new file mode 100644 index 0000000000..1634304d13 Binary files /dev/null and b/Resources/Textures/Clothing/OuterClothing/WinterCoats/coatsci.rsi/equipped-OUTERCLOTHING-vox.png differ diff --git a/Resources/Textures/Clothing/OuterClothing/WinterCoats/coatsci.rsi/meta.json b/Resources/Textures/Clothing/OuterClothing/WinterCoats/coatsci.rsi/meta.json index 7752722477..5d9e9636f7 100644 --- a/Resources/Textures/Clothing/OuterClothing/WinterCoats/coatsci.rsi/meta.json +++ b/Resources/Textures/Clothing/OuterClothing/WinterCoats/coatsci.rsi/meta.json @@ -1,26 +1,30 @@ -{ - "version": 1, - "license": "CC-BY-SA-3.0", - "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/77cff42b6c514e73881a885036be4b4dd2949f62", - "size": { - "x": 32, - "y": 32 - }, - "states": [ - { - "name": "icon" - }, - { - "name": "equipped-OUTERCLOTHING", - "directions": 4 - }, - { - "name": "inhand-left", - "directions": 4 - }, - { - "name": "inhand-right", - "directions": 4 - } - ] +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/77cff42b6c514e73881a885036be4b4dd2949f62. equipped-OUTERCLOTHING-vox state taken from /vg/station at commit https://github.com/vgstation-coders/vgstation13/commit/31d6576ba8102135d058ef49c3cb6ecbe8db8a79", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "equipped-OUTERCLOTHING", + "directions": 4 + }, + { + "name": "equipped-OUTERCLOTHING-vox", + "directions": 4 + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + } + ] } \ No newline at end of file diff --git a/Resources/Textures/Clothing/OuterClothing/WinterCoats/coatsec.rsi/equipped-OUTERCLOTHING-vox.png b/Resources/Textures/Clothing/OuterClothing/WinterCoats/coatsec.rsi/equipped-OUTERCLOTHING-vox.png new file mode 100644 index 0000000000..e67c55f114 Binary files /dev/null and b/Resources/Textures/Clothing/OuterClothing/WinterCoats/coatsec.rsi/equipped-OUTERCLOTHING-vox.png differ diff --git a/Resources/Textures/Clothing/OuterClothing/WinterCoats/coatsec.rsi/meta.json b/Resources/Textures/Clothing/OuterClothing/WinterCoats/coatsec.rsi/meta.json index 7752722477..5d9e9636f7 100644 --- a/Resources/Textures/Clothing/OuterClothing/WinterCoats/coatsec.rsi/meta.json +++ b/Resources/Textures/Clothing/OuterClothing/WinterCoats/coatsec.rsi/meta.json @@ -1,26 +1,30 @@ -{ - "version": 1, - "license": "CC-BY-SA-3.0", - "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/77cff42b6c514e73881a885036be4b4dd2949f62", - "size": { - "x": 32, - "y": 32 - }, - "states": [ - { - "name": "icon" - }, - { - "name": "equipped-OUTERCLOTHING", - "directions": 4 - }, - { - "name": "inhand-left", - "directions": 4 - }, - { - "name": "inhand-right", - "directions": 4 - } - ] +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/77cff42b6c514e73881a885036be4b4dd2949f62. equipped-OUTERCLOTHING-vox state taken from /vg/station at commit https://github.com/vgstation-coders/vgstation13/commit/31d6576ba8102135d058ef49c3cb6ecbe8db8a79", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "equipped-OUTERCLOTHING", + "directions": 4 + }, + { + "name": "equipped-OUTERCLOTHING-vox", + "directions": 4 + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + } + ] } \ No newline at end of file diff --git a/Resources/Textures/Clothing/OuterClothing/WinterCoats/coatwarden.rsi/equipped-OUTERCLOTHING-vox.png b/Resources/Textures/Clothing/OuterClothing/WinterCoats/coatwarden.rsi/equipped-OUTERCLOTHING-vox.png new file mode 100644 index 0000000000..b4f8cacea5 Binary files /dev/null and b/Resources/Textures/Clothing/OuterClothing/WinterCoats/coatwarden.rsi/equipped-OUTERCLOTHING-vox.png differ diff --git a/Resources/Textures/Clothing/OuterClothing/WinterCoats/coatwarden.rsi/equipped-OUTERCLOTHING.png b/Resources/Textures/Clothing/OuterClothing/WinterCoats/coatwarden.rsi/equipped-OUTERCLOTHING.png index 28cf03f49c..baeeca8781 100644 Binary files a/Resources/Textures/Clothing/OuterClothing/WinterCoats/coatwarden.rsi/equipped-OUTERCLOTHING.png and b/Resources/Textures/Clothing/OuterClothing/WinterCoats/coatwarden.rsi/equipped-OUTERCLOTHING.png differ diff --git a/Resources/Textures/Clothing/OuterClothing/WinterCoats/coatwarden.rsi/icon.png b/Resources/Textures/Clothing/OuterClothing/WinterCoats/coatwarden.rsi/icon.png index eaf984f437..854ea543e9 100644 Binary files a/Resources/Textures/Clothing/OuterClothing/WinterCoats/coatwarden.rsi/icon.png and b/Resources/Textures/Clothing/OuterClothing/WinterCoats/coatwarden.rsi/icon.png differ diff --git a/Resources/Textures/Clothing/OuterClothing/WinterCoats/coatwarden.rsi/inhand-left.png b/Resources/Textures/Clothing/OuterClothing/WinterCoats/coatwarden.rsi/inhand-left.png index df033631e9..464c4bfc5e 100644 Binary files a/Resources/Textures/Clothing/OuterClothing/WinterCoats/coatwarden.rsi/inhand-left.png and b/Resources/Textures/Clothing/OuterClothing/WinterCoats/coatwarden.rsi/inhand-left.png differ diff --git a/Resources/Textures/Clothing/OuterClothing/WinterCoats/coatwarden.rsi/inhand-right.png b/Resources/Textures/Clothing/OuterClothing/WinterCoats/coatwarden.rsi/inhand-right.png index 77baaca885..d537128b82 100644 Binary files a/Resources/Textures/Clothing/OuterClothing/WinterCoats/coatwarden.rsi/inhand-right.png and b/Resources/Textures/Clothing/OuterClothing/WinterCoats/coatwarden.rsi/inhand-right.png differ diff --git a/Resources/Textures/Clothing/OuterClothing/WinterCoats/coatwarden.rsi/meta.json b/Resources/Textures/Clothing/OuterClothing/WinterCoats/coatwarden.rsi/meta.json index 7863947d1c..ade0905fb8 100644 --- a/Resources/Textures/Clothing/OuterClothing/WinterCoats/coatwarden.rsi/meta.json +++ b/Resources/Textures/Clothing/OuterClothing/WinterCoats/coatwarden.rsi/meta.json @@ -1,26 +1,30 @@ -{ - "version": 1, - "license": "CC-BY-SA-3.0", - "copyright": "Taken from vg at commit https://github.com/vgstation-coders/vgstation13/commit/a16e41020a93479e9a7e2af343b1b74f7f2a61bd", - "size": { - "x": 32, - "y": 32 - }, - "states": [ - { - "name": "icon" - }, - { - "name": "equipped-OUTERCLOTHING", - "directions": 4 - }, - { - "name": "inhand-left", - "directions": 4 - }, - { - "name": "inhand-right", - "directions": 4 - } - ] -} \ No newline at end of file +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from vg at commit https://github.com/vgstation-coders/vgstation13/commit/31d6576ba8102135d058ef49c3cb6ecbe8db8a79 / https://github.com/tgstation/tgstation/commit/77cff42b6c514e73881a885036be4b4dd2949f62, recolored by Github user Dutch-VanDerLinde.", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "equipped-OUTERCLOTHING", + "directions": 4 + }, + { + "name": "equipped-OUTERCLOTHING-vox", + "directions": 4 + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/Clothing/OuterClothing/WinterCoats/coatwardenarmored.rsi/equipped-OUTERCLOTHING.png b/Resources/Textures/Clothing/OuterClothing/WinterCoats/coatwardenarmored.rsi/equipped-OUTERCLOTHING.png new file mode 100644 index 0000000000..28cf03f49c Binary files /dev/null and b/Resources/Textures/Clothing/OuterClothing/WinterCoats/coatwardenarmored.rsi/equipped-OUTERCLOTHING.png differ diff --git a/Resources/Textures/Clothing/OuterClothing/WinterCoats/coatwardenarmored.rsi/icon.png b/Resources/Textures/Clothing/OuterClothing/WinterCoats/coatwardenarmored.rsi/icon.png new file mode 100644 index 0000000000..eaf984f437 Binary files /dev/null and b/Resources/Textures/Clothing/OuterClothing/WinterCoats/coatwardenarmored.rsi/icon.png differ diff --git a/Resources/Textures/Clothing/OuterClothing/WinterCoats/coatwardenarmored.rsi/inhand-left.png b/Resources/Textures/Clothing/OuterClothing/WinterCoats/coatwardenarmored.rsi/inhand-left.png new file mode 100644 index 0000000000..df033631e9 Binary files /dev/null and b/Resources/Textures/Clothing/OuterClothing/WinterCoats/coatwardenarmored.rsi/inhand-left.png differ diff --git a/Resources/Textures/Clothing/OuterClothing/WinterCoats/coatwardenarmored.rsi/inhand-right.png b/Resources/Textures/Clothing/OuterClothing/WinterCoats/coatwardenarmored.rsi/inhand-right.png new file mode 100644 index 0000000000..77baaca885 Binary files /dev/null and b/Resources/Textures/Clothing/OuterClothing/WinterCoats/coatwardenarmored.rsi/inhand-right.png differ diff --git a/Resources/Textures/Clothing/OuterClothing/WinterCoats/coatwardenarmored.rsi/meta.json b/Resources/Textures/Clothing/OuterClothing/WinterCoats/coatwardenarmored.rsi/meta.json new file mode 100644 index 0000000000..c9f0d90ea1 --- /dev/null +++ b/Resources/Textures/Clothing/OuterClothing/WinterCoats/coatwardenarmored.rsi/meta.json @@ -0,0 +1,26 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from vg at commit https://github.com/vgstation-coders/vgstation13/commit/a16e41020a93479e9a7e2af343b1b74f7f2a61bd", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "equipped-OUTERCLOTHING", + "directions": 4 + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + } + ] +} \ No newline at end of file diff --git a/Resources/Textures/Clothing/Shoes/Boots/jackboots.rsi/equipped-FEET-vox.png b/Resources/Textures/Clothing/Shoes/Boots/jackboots.rsi/equipped-FEET-vox.png new file mode 100644 index 0000000000..73ab1326b8 Binary files /dev/null and b/Resources/Textures/Clothing/Shoes/Boots/jackboots.rsi/equipped-FEET-vox.png differ diff --git a/Resources/Textures/Clothing/Shoes/Boots/jackboots.rsi/meta.json b/Resources/Textures/Clothing/Shoes/Boots/jackboots.rsi/meta.json index 54b1191d42..1abf6951f1 100644 --- a/Resources/Textures/Clothing/Shoes/Boots/jackboots.rsi/meta.json +++ b/Resources/Textures/Clothing/Shoes/Boots/jackboots.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/7e4e9d432d88981fb9bb463970c5b98ce85c0abe", + "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/7e4e9d432d88981fb9bb463970c5b98ce85c0abe. equipped-FEET-vox state taken from vgstation13 at https://github.com/vgstation-coders/vgstation13/blob/31d6576ba8102135d058ef49c3cb6ecbe8db8a79/icons/mob/species/vox/shoes.dmi", "size": { "x": 32, "y": 32 @@ -14,6 +14,10 @@ "name": "equipped-FEET", "directions": 4 }, + { + "name": "equipped-FEET-vox", + "directions": 4 + }, { "name": "inhand-left", "directions": 4 diff --git a/Resources/Textures/Clothing/Shoes/Boots/magboots-advanced.rsi/equipped-FEET-vox.png b/Resources/Textures/Clothing/Shoes/Boots/magboots-advanced.rsi/equipped-FEET-vox.png new file mode 100644 index 0000000000..0d3d83cbad Binary files /dev/null and b/Resources/Textures/Clothing/Shoes/Boots/magboots-advanced.rsi/equipped-FEET-vox.png differ diff --git a/Resources/Textures/Clothing/Shoes/Boots/magboots-advanced.rsi/meta.json b/Resources/Textures/Clothing/Shoes/Boots/magboots-advanced.rsi/meta.json index 8d56bf0c2b..5b3afdcd74 100644 --- a/Resources/Textures/Clothing/Shoes/Boots/magboots-advanced.rsi/meta.json +++ b/Resources/Textures/Clothing/Shoes/Boots/magboots-advanced.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "https://github.com/tgstation/tgstation/commit/3d319f6157acc1c1cd9ebcb0f6f12641e051cf91", + "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/3d319f6157acc1c1cd9ebcb0f6f12641e051cf91. equipped-FEET-vox & on-equipped-FEET-vox state taken from vgstation13 at https://github.com/vgstation-coders/vgstation13/blob/31d6576ba8102135d058ef49c3cb6ecbe8db8a79/icons/mob/species/vox/shoes.dmi, and equipped-FEET-vox state modified to fix inconsistencies", "size": { "x": 32, "y": 32 @@ -15,6 +15,14 @@ "name": "on-equipped-FEET", "directions": 4 }, + { + "name": "equipped-FEET-vox", + "directions": 4 + }, + { + "name": "on-equipped-FEET-vox", + "directions": 4 + }, { "name": "icon" }, diff --git a/Resources/Textures/Clothing/Shoes/Boots/magboots-advanced.rsi/on-equipped-FEET-vox.png b/Resources/Textures/Clothing/Shoes/Boots/magboots-advanced.rsi/on-equipped-FEET-vox.png new file mode 100644 index 0000000000..9c1af7f061 Binary files /dev/null and b/Resources/Textures/Clothing/Shoes/Boots/magboots-advanced.rsi/on-equipped-FEET-vox.png differ diff --git a/Resources/Textures/Clothing/Shoes/Boots/magboots-syndicate.rsi/equipped-FEET-vox.png b/Resources/Textures/Clothing/Shoes/Boots/magboots-syndicate.rsi/equipped-FEET-vox.png new file mode 100644 index 0000000000..ff7074dbe3 Binary files /dev/null and b/Resources/Textures/Clothing/Shoes/Boots/magboots-syndicate.rsi/equipped-FEET-vox.png differ diff --git a/Resources/Textures/Clothing/Shoes/Boots/magboots-syndicate.rsi/meta.json b/Resources/Textures/Clothing/Shoes/Boots/magboots-syndicate.rsi/meta.json index ead74d8896..ae71606af3 100644 --- a/Resources/Textures/Clothing/Shoes/Boots/magboots-syndicate.rsi/meta.json +++ b/Resources/Textures/Clothing/Shoes/Boots/magboots-syndicate.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/debf90acfcafa4fb8d6723a37e0b8ac556c0702b", + "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/debf90acfcafa4fb8d6723a37e0b8ac556c0702b. equipped-FEET-vox & on-equipped-FEET-vox state taken from vgstation13 at https://github.com/vgstation-coders/vgstation13/blob/31d6576ba8102135d058ef49c3cb6ecbe8db8a79/icons/mob/species/vox/shoes.dmi, and equipped-FEET-vox state modified to fix inconsistencies", "size": { "x": 32, "y": 32 @@ -15,6 +15,14 @@ "name": "on-equipped-FEET", "directions": 4 }, + { + "name": "equipped-FEET-vox", + "directions": 4 + }, + { + "name": "on-equipped-FEET-vox", + "directions": 4 + }, { "name": "icon" }, diff --git a/Resources/Textures/Clothing/Shoes/Boots/magboots-syndicate.rsi/on-equipped-FEET-vox.png b/Resources/Textures/Clothing/Shoes/Boots/magboots-syndicate.rsi/on-equipped-FEET-vox.png new file mode 100644 index 0000000000..c14f707834 Binary files /dev/null and b/Resources/Textures/Clothing/Shoes/Boots/magboots-syndicate.rsi/on-equipped-FEET-vox.png differ diff --git a/Resources/Textures/Clothing/Shoes/Boots/magboots.rsi/equipped-FEET-vox.png b/Resources/Textures/Clothing/Shoes/Boots/magboots.rsi/equipped-FEET-vox.png new file mode 100644 index 0000000000..66083b253d Binary files /dev/null and b/Resources/Textures/Clothing/Shoes/Boots/magboots.rsi/equipped-FEET-vox.png differ diff --git a/Resources/Textures/Clothing/Shoes/Boots/magboots.rsi/meta.json b/Resources/Textures/Clothing/Shoes/Boots/magboots.rsi/meta.json index 96b3f4109e..f2aa6dbc5b 100644 --- a/Resources/Textures/Clothing/Shoes/Boots/magboots.rsi/meta.json +++ b/Resources/Textures/Clothing/Shoes/Boots/magboots.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/7e4e9d432d88981fb9bb463970c5b98ce85c0abe", + "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/7e4e9d432d88981fb9bb463970c5b98ce85c0abe. equipped-FEET-vox & on-equipped-FEET-vox state taken from vgstation13 at https://github.com/vgstation-coders/vgstation13/blob/31d6576ba8102135d058ef49c3cb6ecbe8db8a79/icons/mob/species/vox/shoes.dmi, and equipped-FEET-vox state modified to fix inconsistencies", "size": { "x": 32, "y": 32 @@ -15,6 +15,14 @@ "name": "on-equipped-FEET", "directions": 4 }, + { + "name": "equipped-FEET-vox", + "directions": 4 + }, + { + "name": "on-equipped-FEET-vox", + "directions": 4 + }, { "name": "icon" }, diff --git a/Resources/Textures/Clothing/Shoes/Boots/magboots.rsi/on-equipped-FEET-vox.png b/Resources/Textures/Clothing/Shoes/Boots/magboots.rsi/on-equipped-FEET-vox.png new file mode 100644 index 0000000000..e9d3dffc76 Binary files /dev/null and b/Resources/Textures/Clothing/Shoes/Boots/magboots.rsi/on-equipped-FEET-vox.png differ diff --git a/Resources/Textures/Clothing/Shoes/Misc/slippers.rsi/equipped-FEET-vox.png b/Resources/Textures/Clothing/Shoes/Misc/slippers.rsi/equipped-FEET-vox.png new file mode 100644 index 0000000000..02a752334b Binary files /dev/null and b/Resources/Textures/Clothing/Shoes/Misc/slippers.rsi/equipped-FEET-vox.png differ diff --git a/Resources/Textures/Clothing/Shoes/Misc/slippers.rsi/meta.json b/Resources/Textures/Clothing/Shoes/Misc/slippers.rsi/meta.json index 54b1191d42..1abf6951f1 100644 --- a/Resources/Textures/Clothing/Shoes/Misc/slippers.rsi/meta.json +++ b/Resources/Textures/Clothing/Shoes/Misc/slippers.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/7e4e9d432d88981fb9bb463970c5b98ce85c0abe", + "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/7e4e9d432d88981fb9bb463970c5b98ce85c0abe. equipped-FEET-vox state taken from vgstation13 at https://github.com/vgstation-coders/vgstation13/blob/31d6576ba8102135d058ef49c3cb6ecbe8db8a79/icons/mob/species/vox/shoes.dmi", "size": { "x": 32, "y": 32 @@ -14,6 +14,10 @@ "name": "equipped-FEET", "directions": 4 }, + { + "name": "equipped-FEET-vox", + "directions": 4 + }, { "name": "inhand-left", "directions": 4 diff --git a/Resources/Textures/Clothing/Shoes/Misc/tourist.rsi/equipped-FEET-vox.png b/Resources/Textures/Clothing/Shoes/Misc/tourist.rsi/equipped-FEET-vox.png new file mode 100644 index 0000000000..a738307297 Binary files /dev/null and b/Resources/Textures/Clothing/Shoes/Misc/tourist.rsi/equipped-FEET-vox.png differ diff --git a/Resources/Textures/Clothing/Shoes/Misc/tourist.rsi/meta.json b/Resources/Textures/Clothing/Shoes/Misc/tourist.rsi/meta.json index 54b1191d42..1abf6951f1 100644 --- a/Resources/Textures/Clothing/Shoes/Misc/tourist.rsi/meta.json +++ b/Resources/Textures/Clothing/Shoes/Misc/tourist.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/7e4e9d432d88981fb9bb463970c5b98ce85c0abe", + "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/7e4e9d432d88981fb9bb463970c5b98ce85c0abe. equipped-FEET-vox state taken from vgstation13 at https://github.com/vgstation-coders/vgstation13/blob/31d6576ba8102135d058ef49c3cb6ecbe8db8a79/icons/mob/species/vox/shoes.dmi", "size": { "x": 32, "y": 32 @@ -14,6 +14,10 @@ "name": "equipped-FEET", "directions": 4 }, + { + "name": "equipped-FEET-vox", + "directions": 4 + }, { "name": "inhand-left", "directions": 4 diff --git a/Resources/Textures/Clothing/Shoes/Specific/clown.rsi/equipped-FEET-vox.png b/Resources/Textures/Clothing/Shoes/Specific/clown.rsi/equipped-FEET-vox.png new file mode 100644 index 0000000000..2dc1885cd3 Binary files /dev/null and b/Resources/Textures/Clothing/Shoes/Specific/clown.rsi/equipped-FEET-vox.png differ diff --git a/Resources/Textures/Clothing/Shoes/Specific/clown.rsi/meta.json b/Resources/Textures/Clothing/Shoes/Specific/clown.rsi/meta.json index 54b1191d42..1abf6951f1 100644 --- a/Resources/Textures/Clothing/Shoes/Specific/clown.rsi/meta.json +++ b/Resources/Textures/Clothing/Shoes/Specific/clown.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/7e4e9d432d88981fb9bb463970c5b98ce85c0abe", + "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/7e4e9d432d88981fb9bb463970c5b98ce85c0abe. equipped-FEET-vox state taken from vgstation13 at https://github.com/vgstation-coders/vgstation13/blob/31d6576ba8102135d058ef49c3cb6ecbe8db8a79/icons/mob/species/vox/shoes.dmi", "size": { "x": 32, "y": 32 @@ -14,6 +14,10 @@ "name": "equipped-FEET", "directions": 4 }, + { + "name": "equipped-FEET-vox", + "directions": 4 + }, { "name": "inhand-left", "directions": 4 diff --git a/Resources/Textures/Clothing/Shoes/Specific/swat.rsi/equipped-FEET-vox.png b/Resources/Textures/Clothing/Shoes/Specific/swat.rsi/equipped-FEET-vox.png new file mode 100644 index 0000000000..73ab1326b8 Binary files /dev/null and b/Resources/Textures/Clothing/Shoes/Specific/swat.rsi/equipped-FEET-vox.png differ diff --git a/Resources/Textures/Clothing/Shoes/Specific/swat.rsi/meta.json b/Resources/Textures/Clothing/Shoes/Specific/swat.rsi/meta.json index 54b1191d42..1abf6951f1 100644 --- a/Resources/Textures/Clothing/Shoes/Specific/swat.rsi/meta.json +++ b/Resources/Textures/Clothing/Shoes/Specific/swat.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/7e4e9d432d88981fb9bb463970c5b98ce85c0abe", + "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/7e4e9d432d88981fb9bb463970c5b98ce85c0abe. equipped-FEET-vox state taken from vgstation13 at https://github.com/vgstation-coders/vgstation13/blob/31d6576ba8102135d058ef49c3cb6ecbe8db8a79/icons/mob/species/vox/shoes.dmi", "size": { "x": 32, "y": 32 @@ -14,6 +14,10 @@ "name": "equipped-FEET", "directions": 4 }, + { + "name": "equipped-FEET-vox", + "directions": 4 + }, { "name": "inhand-left", "directions": 4 diff --git a/Resources/Textures/Clothing/Shoes/Specific/wizard.rsi/equipped-FEET-vox.png b/Resources/Textures/Clothing/Shoes/Specific/wizard.rsi/equipped-FEET-vox.png new file mode 100644 index 0000000000..838d02bb45 Binary files /dev/null and b/Resources/Textures/Clothing/Shoes/Specific/wizard.rsi/equipped-FEET-vox.png differ diff --git a/Resources/Textures/Clothing/Shoes/Specific/wizard.rsi/meta.json b/Resources/Textures/Clothing/Shoes/Specific/wizard.rsi/meta.json index 54b1191d42..1abf6951f1 100644 --- a/Resources/Textures/Clothing/Shoes/Specific/wizard.rsi/meta.json +++ b/Resources/Textures/Clothing/Shoes/Specific/wizard.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/7e4e9d432d88981fb9bb463970c5b98ce85c0abe", + "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/7e4e9d432d88981fb9bb463970c5b98ce85c0abe. equipped-FEET-vox state taken from vgstation13 at https://github.com/vgstation-coders/vgstation13/blob/31d6576ba8102135d058ef49c3cb6ecbe8db8a79/icons/mob/species/vox/shoes.dmi", "size": { "x": 32, "y": 32 @@ -14,6 +14,10 @@ "name": "equipped-FEET", "directions": 4 }, + { + "name": "equipped-FEET-vox", + "directions": 4 + }, { "name": "inhand-left", "directions": 4 diff --git a/Resources/Textures/Clothing/Under/Socks/coder.rsi/equipped-FEET.png b/Resources/Textures/Clothing/Under/Socks/coder.rsi/equipped-FEET.png index 0fea622063..4bb67f166d 100644 Binary files a/Resources/Textures/Clothing/Under/Socks/coder.rsi/equipped-FEET.png and b/Resources/Textures/Clothing/Under/Socks/coder.rsi/equipped-FEET.png differ diff --git a/Resources/Textures/Clothing/Under/Socks/coder.rsi/meta.json b/Resources/Textures/Clothing/Under/Socks/coder.rsi/meta.json index 194b8c4f0f..1bb04ab6eb 100644 --- a/Resources/Textures/Clothing/Under/Socks/coder.rsi/meta.json +++ b/Resources/Textures/Clothing/Under/Socks/coder.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/c838ba21dae97db345e0113f99596decd1d66039", + "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/c838ba21dae97db345e0113f99596decd1d66039, equipped-FEET modified by Psychpsyo", "size": { "x": 32, "y": 32 diff --git a/Resources/Textures/Clothing/Uniforms/Jumpskirt/olddress.rsi/equipped-INNERCLOTHING.png b/Resources/Textures/Clothing/Uniforms/Jumpskirt/olddress.rsi/equipped-INNERCLOTHING.png new file mode 100644 index 0000000000..145cf97b2e Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Jumpskirt/olddress.rsi/equipped-INNERCLOTHING.png differ diff --git a/Resources/Textures/Clothing/Uniforms/Jumpskirt/olddress.rsi/icon.png b/Resources/Textures/Clothing/Uniforms/Jumpskirt/olddress.rsi/icon.png new file mode 100644 index 0000000000..28b2de1692 Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Jumpskirt/olddress.rsi/icon.png differ diff --git a/Resources/Textures/Clothing/Uniforms/Jumpskirt/olddress.rsi/inhand-left.png b/Resources/Textures/Clothing/Uniforms/Jumpskirt/olddress.rsi/inhand-left.png new file mode 100644 index 0000000000..a85d0a11e9 Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Jumpskirt/olddress.rsi/inhand-left.png differ diff --git a/Resources/Textures/Clothing/Uniforms/Jumpskirt/olddress.rsi/inhand-right.png b/Resources/Textures/Clothing/Uniforms/Jumpskirt/olddress.rsi/inhand-right.png new file mode 100644 index 0000000000..4d6da567de Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/Jumpskirt/olddress.rsi/inhand-right.png differ diff --git a/Resources/Textures/Clothing/Uniforms/Jumpskirt/olddress.rsi/meta.json b/Resources/Textures/Clothing/Uniforms/Jumpskirt/olddress.rsi/meta.json new file mode 100644 index 0000000000..d4ea50d555 --- /dev/null +++ b/Resources/Textures/Clothing/Uniforms/Jumpskirt/olddress.rsi/meta.json @@ -0,0 +1,26 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "fujiwaranao", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "equipped-INNERCLOTHING", + "directions": 4 + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/Clothing/Uniforms/Jumpskirt/security.rsi/equipped-INNERCLOTHING.png b/Resources/Textures/Clothing/Uniforms/Jumpskirt/security.rsi/equipped-INNERCLOTHING.png index 8ffa6e2e94..8781d46b5f 100644 Binary files a/Resources/Textures/Clothing/Uniforms/Jumpskirt/security.rsi/equipped-INNERCLOTHING.png and b/Resources/Textures/Clothing/Uniforms/Jumpskirt/security.rsi/equipped-INNERCLOTHING.png differ diff --git a/Resources/Textures/Clothing/Uniforms/Jumpskirt/senior_officer.rsi/equipped-INNERCLOTHING.png b/Resources/Textures/Clothing/Uniforms/Jumpskirt/senior_officer.rsi/equipped-INNERCLOTHING.png index b3ecbd9712..8d2ae43649 100644 Binary files a/Resources/Textures/Clothing/Uniforms/Jumpskirt/senior_officer.rsi/equipped-INNERCLOTHING.png and b/Resources/Textures/Clothing/Uniforms/Jumpskirt/senior_officer.rsi/equipped-INNERCLOTHING.png differ diff --git a/Resources/Textures/Clothing/Uniforms/Jumpskirt/senior_officer.rsi/icon.png b/Resources/Textures/Clothing/Uniforms/Jumpskirt/senior_officer.rsi/icon.png index 18ab875179..b08cd213de 100644 Binary files a/Resources/Textures/Clothing/Uniforms/Jumpskirt/senior_officer.rsi/icon.png and b/Resources/Textures/Clothing/Uniforms/Jumpskirt/senior_officer.rsi/icon.png differ diff --git a/Resources/Textures/Clothing/Uniforms/Jumpskirt/senior_physician.rsi/equipped-INNERCLOTHING-monkey.png b/Resources/Textures/Clothing/Uniforms/Jumpskirt/senior_physician.rsi/equipped-INNERCLOTHING-monkey.png index 4e98c89cc9..830f482ab8 100644 Binary files a/Resources/Textures/Clothing/Uniforms/Jumpskirt/senior_physician.rsi/equipped-INNERCLOTHING-monkey.png and b/Resources/Textures/Clothing/Uniforms/Jumpskirt/senior_physician.rsi/equipped-INNERCLOTHING-monkey.png differ diff --git a/Resources/Textures/Clothing/Uniforms/Jumpskirt/senior_physician.rsi/equipped-INNERCLOTHING.png b/Resources/Textures/Clothing/Uniforms/Jumpskirt/senior_physician.rsi/equipped-INNERCLOTHING.png index 311e0aecb9..c92abfde99 100644 Binary files a/Resources/Textures/Clothing/Uniforms/Jumpskirt/senior_physician.rsi/equipped-INNERCLOTHING.png and b/Resources/Textures/Clothing/Uniforms/Jumpskirt/senior_physician.rsi/equipped-INNERCLOTHING.png differ diff --git a/Resources/Textures/Clothing/Uniforms/Jumpskirt/senior_physician.rsi/icon.png b/Resources/Textures/Clothing/Uniforms/Jumpskirt/senior_physician.rsi/icon.png index aaee2537da..65ef81a252 100644 Binary files a/Resources/Textures/Clothing/Uniforms/Jumpskirt/senior_physician.rsi/icon.png and b/Resources/Textures/Clothing/Uniforms/Jumpskirt/senior_physician.rsi/icon.png differ diff --git a/Resources/Textures/Clothing/Uniforms/Jumpskirt/senior_physician.rsi/inhand-left.png b/Resources/Textures/Clothing/Uniforms/Jumpskirt/senior_physician.rsi/inhand-left.png index e0b2d4759b..4381a0172b 100644 Binary files a/Resources/Textures/Clothing/Uniforms/Jumpskirt/senior_physician.rsi/inhand-left.png and b/Resources/Textures/Clothing/Uniforms/Jumpskirt/senior_physician.rsi/inhand-left.png differ diff --git a/Resources/Textures/Clothing/Uniforms/Jumpskirt/senior_physician.rsi/inhand-right.png b/Resources/Textures/Clothing/Uniforms/Jumpskirt/senior_physician.rsi/inhand-right.png index a2ecc2b551..3855dc44e1 100644 Binary files a/Resources/Textures/Clothing/Uniforms/Jumpskirt/senior_physician.rsi/inhand-right.png and b/Resources/Textures/Clothing/Uniforms/Jumpskirt/senior_physician.rsi/inhand-right.png differ diff --git a/Resources/Textures/Clothing/Uniforms/Jumpsuit/security.rsi/equipped-INNERCLOTHING.png b/Resources/Textures/Clothing/Uniforms/Jumpsuit/security.rsi/equipped-INNERCLOTHING.png index b3977c9748..2fb771d84c 100644 Binary files a/Resources/Textures/Clothing/Uniforms/Jumpsuit/security.rsi/equipped-INNERCLOTHING.png and b/Resources/Textures/Clothing/Uniforms/Jumpsuit/security.rsi/equipped-INNERCLOTHING.png differ diff --git a/Resources/Textures/Clothing/Uniforms/Jumpsuit/security.rsi/meta.json b/Resources/Textures/Clothing/Uniforms/Jumpsuit/security.rsi/meta.json index 3f72fb4460..c11c48fe74 100644 --- a/Resources/Textures/Clothing/Uniforms/Jumpsuit/security.rsi/meta.json +++ b/Resources/Textures/Clothing/Uniforms/Jumpsuit/security.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/c838ba21dae97db345e0113f99596decd1d66039. In hand sprite scaled down by potato1234_x, monkey made by brainfood1183 (github) for ss14", + "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/c838ba21dae97db345e0113f99596decd1d66039. In hand sprite scaled down by potato1234_x, monkey made by brainfood1183 (github) for ss14. equipped-INNERCLOTHING edited by Dutch-VanDerLinde (github).", "size": { "x": 32, "y": 32 diff --git a/Resources/Textures/Clothing/Uniforms/Jumpsuit/senior_officer.rsi/meta.json b/Resources/Textures/Clothing/Uniforms/Jumpsuit/senior_officer.rsi/meta.json index 913d940881..bfad46e184 100644 --- a/Resources/Textures/Clothing/Uniforms/Jumpsuit/senior_officer.rsi/meta.json +++ b/Resources/Textures/Clothing/Uniforms/Jumpsuit/senior_officer.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "Edit by Nairodian (github) of secred_s taken from tgstation at pull request https://github.com/tgstation/tgstation/pull/2984", + "copyright": "Edit by Nairodian (github) of secred_s taken from tgstation at pull request https://github.com/tgstation/tgstation/pull/2984, jumpskirt sprite made by Flareguy and edited by Dutch-VanDerLinde.", "size": { "x": 32, "y": 32 diff --git a/Resources/Textures/Clothing/Uniforms/Jumpsuit/senior_physician.rsi/equipped-INNERCLOTHING-monkey.png b/Resources/Textures/Clothing/Uniforms/Jumpsuit/senior_physician.rsi/equipped-INNERCLOTHING-monkey.png index 5248c1b09f..1c5fc823eb 100644 Binary files a/Resources/Textures/Clothing/Uniforms/Jumpsuit/senior_physician.rsi/equipped-INNERCLOTHING-monkey.png and b/Resources/Textures/Clothing/Uniforms/Jumpsuit/senior_physician.rsi/equipped-INNERCLOTHING-monkey.png differ diff --git a/Resources/Textures/Clothing/Uniforms/Jumpsuit/senior_physician.rsi/equipped-INNERCLOTHING.png b/Resources/Textures/Clothing/Uniforms/Jumpsuit/senior_physician.rsi/equipped-INNERCLOTHING.png index f67f3c67bf..3e68439c78 100644 Binary files a/Resources/Textures/Clothing/Uniforms/Jumpsuit/senior_physician.rsi/equipped-INNERCLOTHING.png and b/Resources/Textures/Clothing/Uniforms/Jumpsuit/senior_physician.rsi/equipped-INNERCLOTHING.png differ diff --git a/Resources/Textures/Clothing/Uniforms/Jumpsuit/senior_physician.rsi/icon.png b/Resources/Textures/Clothing/Uniforms/Jumpsuit/senior_physician.rsi/icon.png index d5d956c4e5..7a4e5b493f 100644 Binary files a/Resources/Textures/Clothing/Uniforms/Jumpsuit/senior_physician.rsi/icon.png and b/Resources/Textures/Clothing/Uniforms/Jumpsuit/senior_physician.rsi/icon.png differ diff --git a/Resources/Textures/Clothing/Uniforms/Jumpsuit/senior_physician.rsi/inhand-left.png b/Resources/Textures/Clothing/Uniforms/Jumpsuit/senior_physician.rsi/inhand-left.png index e0b2d4759b..4381a0172b 100644 Binary files a/Resources/Textures/Clothing/Uniforms/Jumpsuit/senior_physician.rsi/inhand-left.png and b/Resources/Textures/Clothing/Uniforms/Jumpsuit/senior_physician.rsi/inhand-left.png differ diff --git a/Resources/Textures/Clothing/Uniforms/Jumpsuit/senior_physician.rsi/inhand-right.png b/Resources/Textures/Clothing/Uniforms/Jumpsuit/senior_physician.rsi/inhand-right.png index a2ecc2b551..3855dc44e1 100644 Binary files a/Resources/Textures/Clothing/Uniforms/Jumpsuit/senior_physician.rsi/inhand-right.png and b/Resources/Textures/Clothing/Uniforms/Jumpsuit/senior_physician.rsi/inhand-right.png differ diff --git a/Resources/Textures/DeltaV/Objects/Devices/cartridge.rsi/cart-mail.png b/Resources/Textures/DeltaV/Objects/Devices/cartridge.rsi/cart-mail.png new file mode 100644 index 0000000000..5734abb6fd Binary files /dev/null and b/Resources/Textures/DeltaV/Objects/Devices/cartridge.rsi/cart-mail.png differ diff --git a/Resources/Textures/DeltaV/Objects/Devices/cartridge.rsi/meta.json b/Resources/Textures/DeltaV/Objects/Devices/cartridge.rsi/meta.json index 293870d3a3..4a4ba3352f 100644 --- a/Resources/Textures/DeltaV/Objects/Devices/cartridge.rsi/meta.json +++ b/Resources/Textures/DeltaV/Objects/Devices/cartridge.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "Timfa", + "copyright": "Timfa, plus edits by portfiend", "size": { "x": 32, "y": 32 @@ -9,6 +9,9 @@ "states": [ { "name": "cart-cri" + }, + { + "name": "cart-mail" } ] -} \ No newline at end of file +} diff --git a/Resources/Textures/Effects/creampie.rsi/creampie_vox.png b/Resources/Textures/Effects/creampie.rsi/creampie_vox.png new file mode 100644 index 0000000000..dfe199b0c8 Binary files /dev/null and b/Resources/Textures/Effects/creampie.rsi/creampie_vox.png differ diff --git a/Resources/Textures/Effects/creampie.rsi/meta.json b/Resources/Textures/Effects/creampie.rsi/meta.json index 54e0cc73c2..8db8a77945 100644 --- a/Resources/Textures/Effects/creampie.rsi/meta.json +++ b/Resources/Textures/Effects/creampie.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "Taken from https://github.com/tgstation/tgstation at 0d9c9a8233dfc3fc55edc538955a761a6328bee0. creampie_moth by MilenVolf, creampie_arachnid by PixelTheKermit (Github)", + "copyright": "Taken from https://github.com/tgstation/tgstation at 0d9c9a8233dfc3fc55edc538955a761a6328bee0. creampie_moth by MilenVolf, creampie_arachnid by PixelTheKermit (Github), creampie_vox by Errant", "size": { "x": 32, "y": 32 @@ -66,6 +66,10 @@ "name": "creampie_standborg", "directions": 4 }, + { + "name": "creampie_vox", + "directions": 4 + }, { "name": "creampie_xeno_crit" }, diff --git a/Resources/Textures/Interface/Actions/flight.rsi/flight_off.png b/Resources/Textures/Interface/Actions/flight.rsi/flight_off.png new file mode 100644 index 0000000000..852dd300e9 Binary files /dev/null and b/Resources/Textures/Interface/Actions/flight.rsi/flight_off.png differ diff --git a/Resources/Textures/Interface/Actions/flight.rsi/flight_on.png b/Resources/Textures/Interface/Actions/flight.rsi/flight_on.png new file mode 100644 index 0000000000..c47b923a68 Binary files /dev/null and b/Resources/Textures/Interface/Actions/flight.rsi/flight_on.png differ diff --git a/Resources/Textures/Interface/Actions/flight.rsi/meta.json b/Resources/Textures/Interface/Actions/flight.rsi/meta.json new file mode 100644 index 0000000000..b4a013190d --- /dev/null +++ b/Resources/Textures/Interface/Actions/flight.rsi/meta.json @@ -0,0 +1,17 @@ +{ + "copyright" : "Made by dootythefrooty (273243513800622090)", + "license" : "CC-BY-SA-3.0", + "version": 1, + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "flight_off" + }, + { + "name": "flight_on" + } + ] + } \ No newline at end of file diff --git a/Resources/Textures/Interface/Actions/psionics.rsi/healing_word.png b/Resources/Textures/Interface/Actions/psionics.rsi/healing_word.png new file mode 100644 index 0000000000..800e2a46e6 Binary files /dev/null and b/Resources/Textures/Interface/Actions/psionics.rsi/healing_word.png differ diff --git a/Resources/Textures/Interface/Actions/psionics.rsi/meta.json b/Resources/Textures/Interface/Actions/psionics.rsi/meta.json new file mode 100644 index 0000000000..7fc83a4291 --- /dev/null +++ b/Resources/Textures/Interface/Actions/psionics.rsi/meta.json @@ -0,0 +1,23 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Created by leonardo_dabepis (discord)", + "size": { + "x": 64, + "y": 64 + }, + "states": [ + { + "name": "healing_word" + }, + { + "name": "revivify" + }, + { + "name": "shadeskip" + }, + { + "name": "telekinetic_pulse" + } + ] +} diff --git a/Resources/Textures/Interface/Actions/psionics.rsi/revivify.png b/Resources/Textures/Interface/Actions/psionics.rsi/revivify.png new file mode 100644 index 0000000000..087f40b4c9 Binary files /dev/null and b/Resources/Textures/Interface/Actions/psionics.rsi/revivify.png differ diff --git a/Resources/Textures/Interface/Actions/psionics.rsi/shadeskip.png b/Resources/Textures/Interface/Actions/psionics.rsi/shadeskip.png new file mode 100644 index 0000000000..8114477372 Binary files /dev/null and b/Resources/Textures/Interface/Actions/psionics.rsi/shadeskip.png differ diff --git a/Resources/Textures/Interface/Actions/psionics.rsi/telekinetic_pulse.png b/Resources/Textures/Interface/Actions/psionics.rsi/telekinetic_pulse.png new file mode 100644 index 0000000000..7c690a6adb Binary files /dev/null and b/Resources/Textures/Interface/Actions/psionics.rsi/telekinetic_pulse.png differ diff --git a/Resources/Textures/Interface/Alerts/deflecting.rsi/deflecting0.png b/Resources/Textures/Interface/Alerts/deflecting.rsi/deflecting0.png new file mode 100644 index 0000000000..37404e77f7 Binary files /dev/null and b/Resources/Textures/Interface/Alerts/deflecting.rsi/deflecting0.png differ diff --git a/Resources/Textures/Interface/Alerts/deflecting.rsi/meta.json b/Resources/Textures/Interface/Alerts/deflecting.rsi/meta.json new file mode 100644 index 0000000000..f5d94c891a --- /dev/null +++ b/Resources/Textures/Interface/Alerts/deflecting.rsi/meta.json @@ -0,0 +1,14 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Deflecting icon by Ubaser", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "deflecting0" + } + ] +} diff --git a/Resources/Textures/Interface/Ashen/item_status_left.png b/Resources/Textures/Interface/Ashen/item_status_left.png new file mode 100644 index 0000000000..fb2bf2b9b4 Binary files /dev/null and b/Resources/Textures/Interface/Ashen/item_status_left.png differ diff --git a/Resources/Textures/Interface/Ashen/item_status_left_highlight.png b/Resources/Textures/Interface/Ashen/item_status_left_highlight.png new file mode 100644 index 0000000000..91cd15dd4c Binary files /dev/null and b/Resources/Textures/Interface/Ashen/item_status_left_highlight.png differ diff --git a/Resources/Textures/Interface/Ashen/item_status_right.png b/Resources/Textures/Interface/Ashen/item_status_right.png new file mode 100644 index 0000000000..53f4f362d0 Binary files /dev/null and b/Resources/Textures/Interface/Ashen/item_status_right.png differ diff --git a/Resources/Textures/Interface/Ashen/item_status_right_highlight.png b/Resources/Textures/Interface/Ashen/item_status_right_highlight.png new file mode 100644 index 0000000000..ad16bab6d1 Binary files /dev/null and b/Resources/Textures/Interface/Ashen/item_status_right_highlight.png differ diff --git a/Resources/Textures/Interface/Ashen/template_small.png b/Resources/Textures/Interface/Ashen/template_small.png new file mode 100644 index 0000000000..f3a4379f76 Binary files /dev/null and b/Resources/Textures/Interface/Ashen/template_small.png differ diff --git a/Resources/Textures/Interface/AtmosMonitoring/status_bg.png b/Resources/Textures/Interface/AtmosMonitoring/status_bg.png new file mode 100644 index 0000000000..165a9b9d9f Binary files /dev/null and b/Resources/Textures/Interface/AtmosMonitoring/status_bg.png differ diff --git a/Resources/Textures/Interface/Clockwork/item_status_left.png b/Resources/Textures/Interface/Clockwork/item_status_left.png new file mode 100644 index 0000000000..1ce950362d Binary files /dev/null and b/Resources/Textures/Interface/Clockwork/item_status_left.png differ diff --git a/Resources/Textures/Interface/Clockwork/item_status_left_highlight.png b/Resources/Textures/Interface/Clockwork/item_status_left_highlight.png new file mode 100644 index 0000000000..f715e06276 Binary files /dev/null and b/Resources/Textures/Interface/Clockwork/item_status_left_highlight.png differ diff --git a/Resources/Textures/Interface/Clockwork/item_status_right.png b/Resources/Textures/Interface/Clockwork/item_status_right.png new file mode 100644 index 0000000000..5ea5ffcffa Binary files /dev/null and b/Resources/Textures/Interface/Clockwork/item_status_right.png differ diff --git a/Resources/Textures/Interface/Clockwork/item_status_right_highlight.png b/Resources/Textures/Interface/Clockwork/item_status_right_highlight.png new file mode 100644 index 0000000000..315d595c92 Binary files /dev/null and b/Resources/Textures/Interface/Clockwork/item_status_right_highlight.png differ diff --git a/Resources/Textures/Interface/Default/item_status_left.png b/Resources/Textures/Interface/Default/item_status_left.png new file mode 100644 index 0000000000..6c980f226e Binary files /dev/null and b/Resources/Textures/Interface/Default/item_status_left.png differ diff --git a/Resources/Textures/Interface/Default/item_status_left_highlight.png b/Resources/Textures/Interface/Default/item_status_left_highlight.png new file mode 100644 index 0000000000..87dea5cf10 Binary files /dev/null and b/Resources/Textures/Interface/Default/item_status_left_highlight.png differ diff --git a/Resources/Textures/Interface/Default/item_status_right.png b/Resources/Textures/Interface/Default/item_status_right.png new file mode 100644 index 0000000000..82ad44b48c Binary files /dev/null and b/Resources/Textures/Interface/Default/item_status_right.png differ diff --git a/Resources/Textures/Interface/Default/item_status_right_highlight.png b/Resources/Textures/Interface/Default/item_status_right_highlight.png new file mode 100644 index 0000000000..0c1c344848 Binary files /dev/null and b/Resources/Textures/Interface/Default/item_status_right_highlight.png differ diff --git a/Resources/Textures/Interface/Emotes/attributions.yml b/Resources/Textures/Interface/Emotes/attributions.yml new file mode 100644 index 0000000000..125651e419 --- /dev/null +++ b/Resources/Textures/Interface/Emotes/attributions.yml @@ -0,0 +1,117 @@ +# Attempted to keep the files in alphabetical order so its easier to audit. +# Finding individual authors is an unfeasible task. If you can reference the author please do so. + +- files: ["beep.png"] + license: "CC-BY-SA-3.0" + copyright: "Modified from borg_chest.png and borg_head.png by TyAshley (AllenTheGreat)" + source: "https://github.com/TyAshley" + +- files: ["buzz.png"] + license: "CC-BY-SA-3.0" + copyright: "Modified from existing bee texture (0.png) by TyAshley (AllenTheGreat)" + source: "https://github.com/TyAshley" + +- files: ["buzztwo.png"] + license: "CC-BY-SA-3.0" + copyright: "Modified from existing bee texture (0.png) by TyAshley (AllenTheGreat)" + source: "https://github.com/TyAshley" + +- files: ["chime.png"] + license: "CC-BY-SA-3.0" + copyright: "Modified from existing desk bell texture (normal.png) by TyAshley (AllenTheGreat)" + source: "https://github.com/TyAshley" + +- files: ["chirp.png"] + license: "CC-BY-SA-3.0" + copyright: "Modified from existing nymph texture (icon.png) by TyAshley (AllenTheGreat)" + source: "https://github.com/TyAshley" + +- files: ["chitter.png"] + license: "CC-BY-SA-3.0" + copyright: "Modified from mothroach.png by TyAshley (AllenTheGreat)" + source: "https://github.com/TyAshley" + +- files: ["clap.png"] + license: "CC-BY-SA-3.0" + copyright: "Created by TyAshley (AllenTheGreat) at commit 7f6c7cd82943dbc9a1fe8a79d6a924ac600b3fdb" + source: "https://github.com/TyAshley" + +- files: ["click.png"] + license: "CC-BY-SA-3.0" + copyright: "Modified from existing crab.png by TyAshley (AllenTheGreat)" + source: "https://github.com/TyAshley" + +- files: ["cough.png"] + license: "CC-BY-SA-3.0" + copyright: "Created by TyAshley (AllenTheGreat) at commit 7f6c7cd82943dbc9a1fe8a79d6a924ac600b3fdb" + source: "https://github.com/TyAshley" + +- files: ["cry.png"] + license: "CC-BY-SA-3.0" + copyright: "Modified from scream.png by TyAshley (AllenTheGreat)" + source: "https://github.com/TyAshley" + +- files: ["deathgasp.png"] + license: "CC-BY-SA-3.0" + copyright: "Modified from scream.png by TyAshley (AllenTheGreat)" + source: "https://github.com/TyAshley" + +- files: ["honk.png"] + license: "CC-BY-SA-3.0" + copyright: "Modified from existing bikehorn texture (icon.png) by TyAshley (AllenTheGreat)" + source: "https://github.com/TyAshley" + +- files: ["laugh.png"] + license: "CC-BY-SA-3.0" + copyright: "Modified from scream.png by TyAshley (AllenTheGreat)" + source: "https://github.com/TyAshley" + +- files: ["ping.png"] + license: "CC-BY-SA-3.0" + copyright: "Created by TyAshley (AllenTheGreat) at commit 7f6c7cd82943dbc9a1fe8a79d6a924ac600b3fdb" + source: "https://github.com/TyAshley" + +- files: ["salute.png"] + license: "CC-BY-SA-3.0" + copyright: "Modified from scream.png by TyAshley (AllenTheGreat)" + source: "https://github.com/TyAshley" + +- files: ["sigh.png"] + license: "CC-BY-SA-3.0" + copyright: "Created by TyAshley (AllenTheGreat) at commit 7f6c7cd82943dbc9a1fe8a79d6a924ac600b3fdb" + source: "https://github.com/TyAshley" + +- files: ["snap.png"] + license: "CC-BY-SA-3.0" + copyright: "Created by TyAshley (AllenTheGreat) at commit 7f6c7cd82943dbc9a1fe8a79d6a924ac600b3fdb" + source: "https://github.com/TyAshley" + +- files: ["squeak.png"] + license: "CC-BY-SA-3.0" + copyright: "Modified from mouse-0.png by TyAshley (AllenTheGreat)" + source: "https://github.com/TyAshley" + +- files: ["squish.png"] + license: "CC-BY-SA-3.0" + copyright: "Modified from blue_adult_slime.png by TyAshley (AllenTheGreat)" + source: "https://github.com/TyAshley" + +- files: ["vocal.png"] + license: "CC-BY-SA-3.0" + copyright: "Created by TyAshley (AllenTheGreat) at commit 7f6c7cd82943dbc9a1fe8a79d6a924ac600b3fdb" + source: "https://github.com/TyAshley" + +- files: ["weh.png"] + license: "CC-BY-SA-3.0" + copyright: "Modified from plushie_lizard.png by TyAshley (AllenTheGreat)" + source: "https://github.com/TyAshley" + +- files: ["whistle.png"] + license: "CC-BY-SA-3.0" + copyright: "Modified from scream.png by TyAshley (AllenTheGreat)" + source: "https://github.com/TyAshley" + +- files: ["yawn.png"] + license: "CC-BY-SA-3.0" + copyright: "Created by TyAshley (AllenTheGreat) at commit 7f6c7cd82943dbc9a1fe8a79d6a924ac600b3fdb" + source: "https://github.com/TyAshley" diff --git a/Resources/Textures/Interface/Emotes/beep.png b/Resources/Textures/Interface/Emotes/beep.png new file mode 100644 index 0000000000..f59b0925ab Binary files /dev/null and b/Resources/Textures/Interface/Emotes/beep.png differ diff --git a/Resources/Textures/Interface/Emotes/buzz.png b/Resources/Textures/Interface/Emotes/buzz.png new file mode 100644 index 0000000000..da7ac363a4 Binary files /dev/null and b/Resources/Textures/Interface/Emotes/buzz.png differ diff --git a/Resources/Textures/Interface/Emotes/buzztwo.png b/Resources/Textures/Interface/Emotes/buzztwo.png new file mode 100644 index 0000000000..460a8868a5 Binary files /dev/null and b/Resources/Textures/Interface/Emotes/buzztwo.png differ diff --git a/Resources/Textures/Interface/Emotes/chime.png b/Resources/Textures/Interface/Emotes/chime.png new file mode 100644 index 0000000000..ca595be5d3 Binary files /dev/null and b/Resources/Textures/Interface/Emotes/chime.png differ diff --git a/Resources/Textures/Interface/Emotes/chirp.png b/Resources/Textures/Interface/Emotes/chirp.png new file mode 100644 index 0000000000..57e8b67143 Binary files /dev/null and b/Resources/Textures/Interface/Emotes/chirp.png differ diff --git a/Resources/Textures/Interface/Emotes/chitter.png b/Resources/Textures/Interface/Emotes/chitter.png new file mode 100644 index 0000000000..f6e1101223 Binary files /dev/null and b/Resources/Textures/Interface/Emotes/chitter.png differ diff --git a/Resources/Textures/Interface/Emotes/clap.png b/Resources/Textures/Interface/Emotes/clap.png new file mode 100644 index 0000000000..a0ef9e1316 Binary files /dev/null and b/Resources/Textures/Interface/Emotes/clap.png differ diff --git a/Resources/Textures/Interface/Emotes/click.png b/Resources/Textures/Interface/Emotes/click.png new file mode 100644 index 0000000000..539aea7b92 Binary files /dev/null and b/Resources/Textures/Interface/Emotes/click.png differ diff --git a/Resources/Textures/Interface/Emotes/cough.png b/Resources/Textures/Interface/Emotes/cough.png new file mode 100644 index 0000000000..cb1c2832ac Binary files /dev/null and b/Resources/Textures/Interface/Emotes/cough.png differ diff --git a/Resources/Textures/Interface/Emotes/cry.png b/Resources/Textures/Interface/Emotes/cry.png new file mode 100644 index 0000000000..2793a11b9d Binary files /dev/null and b/Resources/Textures/Interface/Emotes/cry.png differ diff --git a/Resources/Textures/Interface/Emotes/deathgasp.png b/Resources/Textures/Interface/Emotes/deathgasp.png new file mode 100644 index 0000000000..e27d0bb573 Binary files /dev/null and b/Resources/Textures/Interface/Emotes/deathgasp.png differ diff --git a/Resources/Textures/Interface/Emotes/honk.png b/Resources/Textures/Interface/Emotes/honk.png new file mode 100644 index 0000000000..19441e4a0e Binary files /dev/null and b/Resources/Textures/Interface/Emotes/honk.png differ diff --git a/Resources/Textures/Interface/Emotes/laugh.png b/Resources/Textures/Interface/Emotes/laugh.png new file mode 100644 index 0000000000..a688fdb443 Binary files /dev/null and b/Resources/Textures/Interface/Emotes/laugh.png differ diff --git a/Resources/Textures/Interface/Emotes/ping.png b/Resources/Textures/Interface/Emotes/ping.png new file mode 100644 index 0000000000..7408eb1f28 Binary files /dev/null and b/Resources/Textures/Interface/Emotes/ping.png differ diff --git a/Resources/Textures/Interface/Emotes/salute.png b/Resources/Textures/Interface/Emotes/salute.png new file mode 100644 index 0000000000..5727d8fd85 Binary files /dev/null and b/Resources/Textures/Interface/Emotes/salute.png differ diff --git a/Resources/Textures/Interface/Emotes/sigh.png b/Resources/Textures/Interface/Emotes/sigh.png new file mode 100644 index 0000000000..ff49a56360 Binary files /dev/null and b/Resources/Textures/Interface/Emotes/sigh.png differ diff --git a/Resources/Textures/Interface/Emotes/snap.png b/Resources/Textures/Interface/Emotes/snap.png new file mode 100644 index 0000000000..ae6d81c19d Binary files /dev/null and b/Resources/Textures/Interface/Emotes/snap.png differ diff --git a/Resources/Textures/Interface/Emotes/squeak.png b/Resources/Textures/Interface/Emotes/squeak.png new file mode 100644 index 0000000000..e32a89f598 Binary files /dev/null and b/Resources/Textures/Interface/Emotes/squeak.png differ diff --git a/Resources/Textures/Interface/Emotes/squish.png b/Resources/Textures/Interface/Emotes/squish.png new file mode 100644 index 0000000000..efa1ce6c5e Binary files /dev/null and b/Resources/Textures/Interface/Emotes/squish.png differ diff --git a/Resources/Textures/Interface/Emotes/vocal.png b/Resources/Textures/Interface/Emotes/vocal.png new file mode 100644 index 0000000000..9b129ec466 Binary files /dev/null and b/Resources/Textures/Interface/Emotes/vocal.png differ diff --git a/Resources/Textures/Interface/Emotes/weh.png b/Resources/Textures/Interface/Emotes/weh.png new file mode 100644 index 0000000000..fea5ad3b73 Binary files /dev/null and b/Resources/Textures/Interface/Emotes/weh.png differ diff --git a/Resources/Textures/Interface/Emotes/whistle.png b/Resources/Textures/Interface/Emotes/whistle.png new file mode 100644 index 0000000000..029a52af23 Binary files /dev/null and b/Resources/Textures/Interface/Emotes/whistle.png differ diff --git a/Resources/Textures/Interface/Emotes/yawn.png b/Resources/Textures/Interface/Emotes/yawn.png new file mode 100644 index 0000000000..8130fc9ab4 Binary files /dev/null and b/Resources/Textures/Interface/Emotes/yawn.png differ diff --git a/Resources/Textures/Interface/Minimalist/SlotBackground.png b/Resources/Textures/Interface/Minimalist/SlotBackground.png index eb0ee037fd..85c944357e 100644 Binary files a/Resources/Textures/Interface/Minimalist/SlotBackground.png and b/Resources/Textures/Interface/Minimalist/SlotBackground.png differ diff --git a/Resources/Textures/Interface/Minimalist/item_status_left.png b/Resources/Textures/Interface/Minimalist/item_status_left.png new file mode 100644 index 0000000000..d70eca2fe9 Binary files /dev/null and b/Resources/Textures/Interface/Minimalist/item_status_left.png differ diff --git a/Resources/Textures/Interface/Minimalist/item_status_left_highlight.png b/Resources/Textures/Interface/Minimalist/item_status_left_highlight.png new file mode 100644 index 0000000000..b69872cd89 Binary files /dev/null and b/Resources/Textures/Interface/Minimalist/item_status_left_highlight.png differ diff --git a/Resources/Textures/Interface/Minimalist/item_status_right.png b/Resources/Textures/Interface/Minimalist/item_status_right.png new file mode 100644 index 0000000000..89171b9b47 Binary files /dev/null and b/Resources/Textures/Interface/Minimalist/item_status_right.png differ diff --git a/Resources/Textures/Interface/Minimalist/item_status_right_highlight.png b/Resources/Textures/Interface/Minimalist/item_status_right_highlight.png new file mode 100644 index 0000000000..d1474cee12 Binary files /dev/null and b/Resources/Textures/Interface/Minimalist/item_status_right_highlight.png differ diff --git a/Resources/Textures/Interface/Minimalist/template_small.png b/Resources/Textures/Interface/Minimalist/template_small.png new file mode 100644 index 0000000000..85c944357e Binary files /dev/null and b/Resources/Textures/Interface/Minimalist/template_small.png differ diff --git a/Resources/Textures/Interface/Nano/help.png b/Resources/Textures/Interface/Nano/help.png new file mode 100644 index 0000000000..17f5283334 Binary files /dev/null and b/Resources/Textures/Interface/Nano/help.png differ diff --git a/Resources/Textures/Interface/Nano/item_status_left.svg b/Resources/Textures/Interface/Nano/item_status_left.svg deleted file mode 100644 index c97f8de016..0000000000 --- a/Resources/Textures/Interface/Nano/item_status_left.svg +++ /dev/null @@ -1,100 +0,0 @@ - - - - - - - - - - image/svg+xml - - - - - - - - - - - - diff --git a/Resources/Textures/Interface/Nano/item_status_left.svg.96dpi.png b/Resources/Textures/Interface/Nano/item_status_left.svg.96dpi.png deleted file mode 100644 index e058fa7374..0000000000 Binary files a/Resources/Textures/Interface/Nano/item_status_left.svg.96dpi.png and /dev/null differ diff --git a/Resources/Textures/Interface/Nano/item_status_middle.svg b/Resources/Textures/Interface/Nano/item_status_middle.svg deleted file mode 100644 index a913981db1..0000000000 --- a/Resources/Textures/Interface/Nano/item_status_middle.svg +++ /dev/null @@ -1,100 +0,0 @@ - - - - - - - - - - image/svg+xml - - - - - - - - - - - - diff --git a/Resources/Textures/Interface/Nano/item_status_middle.svg.96dpi.png b/Resources/Textures/Interface/Nano/item_status_middle.svg.96dpi.png deleted file mode 100644 index ce41106b20..0000000000 Binary files a/Resources/Textures/Interface/Nano/item_status_middle.svg.96dpi.png and /dev/null differ diff --git a/Resources/Textures/Interface/Nano/item_status_right.svg b/Resources/Textures/Interface/Nano/item_status_right.svg deleted file mode 100644 index d898bb2ce0..0000000000 --- a/Resources/Textures/Interface/Nano/item_status_right.svg +++ /dev/null @@ -1,100 +0,0 @@ - - - - - - - - - - image/svg+xml - - - - - - - - - - - - diff --git a/Resources/Textures/Interface/Nano/item_status_right.svg.96dpi.png b/Resources/Textures/Interface/Nano/item_status_right.svg.96dpi.png deleted file mode 100644 index fb7c4a9e6e..0000000000 Binary files a/Resources/Textures/Interface/Nano/item_status_right.svg.96dpi.png and /dev/null differ diff --git a/Resources/Textures/Interface/Plasmafire/item_status_left.png b/Resources/Textures/Interface/Plasmafire/item_status_left.png new file mode 100644 index 0000000000..d5d25c9809 Binary files /dev/null and b/Resources/Textures/Interface/Plasmafire/item_status_left.png differ diff --git a/Resources/Textures/Interface/Plasmafire/item_status_left_highlight.png b/Resources/Textures/Interface/Plasmafire/item_status_left_highlight.png new file mode 100644 index 0000000000..afe37513fd Binary files /dev/null and b/Resources/Textures/Interface/Plasmafire/item_status_left_highlight.png differ diff --git a/Resources/Textures/Interface/Plasmafire/item_status_right.png b/Resources/Textures/Interface/Plasmafire/item_status_right.png new file mode 100644 index 0000000000..ca97f81c8f Binary files /dev/null and b/Resources/Textures/Interface/Plasmafire/item_status_right.png differ diff --git a/Resources/Textures/Interface/Plasmafire/item_status_right_highlight.png b/Resources/Textures/Interface/Plasmafire/item_status_right_highlight.png new file mode 100644 index 0000000000..b95822b737 Binary files /dev/null and b/Resources/Textures/Interface/Plasmafire/item_status_right_highlight.png differ diff --git a/Resources/Textures/Interface/Retro/item_status_left.png b/Resources/Textures/Interface/Retro/item_status_left.png new file mode 100644 index 0000000000..21b107b84d Binary files /dev/null and b/Resources/Textures/Interface/Retro/item_status_left.png differ diff --git a/Resources/Textures/Interface/Retro/item_status_left_highlight.png b/Resources/Textures/Interface/Retro/item_status_left_highlight.png new file mode 100644 index 0000000000..fdd5a4fe7d Binary files /dev/null and b/Resources/Textures/Interface/Retro/item_status_left_highlight.png differ diff --git a/Resources/Textures/Interface/Retro/item_status_right.png b/Resources/Textures/Interface/Retro/item_status_right.png new file mode 100644 index 0000000000..5e7d54618d Binary files /dev/null and b/Resources/Textures/Interface/Retro/item_status_right.png differ diff --git a/Resources/Textures/Interface/Retro/item_status_right_highlight.png b/Resources/Textures/Interface/Retro/item_status_right_highlight.png new file mode 100644 index 0000000000..c6e12c41e6 Binary files /dev/null and b/Resources/Textures/Interface/Retro/item_status_right_highlight.png differ diff --git a/Resources/Textures/Interface/Retro/template_small.png b/Resources/Textures/Interface/Retro/template_small.png new file mode 100644 index 0000000000..7244b37f5c Binary files /dev/null and b/Resources/Textures/Interface/Retro/template_small.png differ diff --git a/Resources/Textures/Interface/Slimecore/item_status_left.png b/Resources/Textures/Interface/Slimecore/item_status_left.png new file mode 100644 index 0000000000..a7d940f401 Binary files /dev/null and b/Resources/Textures/Interface/Slimecore/item_status_left.png differ diff --git a/Resources/Textures/Interface/Slimecore/item_status_left_highlight.png b/Resources/Textures/Interface/Slimecore/item_status_left_highlight.png new file mode 100644 index 0000000000..322355b135 Binary files /dev/null and b/Resources/Textures/Interface/Slimecore/item_status_left_highlight.png differ diff --git a/Resources/Textures/Interface/Slimecore/item_status_right.png b/Resources/Textures/Interface/Slimecore/item_status_right.png new file mode 100644 index 0000000000..77b53340a6 Binary files /dev/null and b/Resources/Textures/Interface/Slimecore/item_status_right.png differ diff --git a/Resources/Textures/Interface/Slimecore/item_status_right_highlight.png b/Resources/Textures/Interface/Slimecore/item_status_right_highlight.png new file mode 100644 index 0000000000..1e1a631db4 Binary files /dev/null and b/Resources/Textures/Interface/Slimecore/item_status_right_highlight.png differ diff --git a/Resources/Textures/Interface/VerbIcons/ATTRIBUTION.txt b/Resources/Textures/Interface/VerbIcons/ATTRIBUTION.txt index 0b8ae856bd..69aa4650b3 100644 --- a/Resources/Textures/Interface/VerbIcons/ATTRIBUTION.txt +++ b/Resources/Textures/Interface/VerbIcons/ATTRIBUTION.txt @@ -7,3 +7,6 @@ https://game-icons.net/1x1/lorc/padlock.html unlock.svg by Delapouite under CC BY 3.0 https://game-icons.net/1x1/delapouite/padlock-open.html + +healing_word.png by LeonardoDaBepis under CC BY 3.0 +revivify.png by LeonardoDaBepis under CC BY 3.0 \ No newline at end of file diff --git a/Resources/Textures/Interface/emotes.svg b/Resources/Textures/Interface/emotes.svg new file mode 100644 index 0000000000..352f7ed294 --- /dev/null +++ b/Resources/Textures/Interface/emotes.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/Resources/Textures/Interface/emotes.svg.192dpi.png b/Resources/Textures/Interface/emotes.svg.192dpi.png new file mode 100644 index 0000000000..4e1f3c4f48 Binary files /dev/null and b/Resources/Textures/Interface/emotes.svg.192dpi.png differ diff --git a/Resources/Textures/Interface/emotes.svg.192dpi.png.yml b/Resources/Textures/Interface/emotes.svg.192dpi.png.yml new file mode 100644 index 0000000000..dabd6601f7 --- /dev/null +++ b/Resources/Textures/Interface/emotes.svg.192dpi.png.yml @@ -0,0 +1,2 @@ +sample: + filter: true diff --git a/Resources/Textures/LobbyScreens/attributions.yml b/Resources/Textures/LobbyScreens/attributions.yml index afe4af7bf2..4dd3dc945b 100644 --- a/Resources/Textures/LobbyScreens/attributions.yml +++ b/Resources/Textures/LobbyScreens/attributions.yml @@ -37,3 +37,8 @@ license: "CC-BY-SA-3.0" copyright: "aserovich on discord" source: "https://github.com/space-wizards/space-station-14" + +- files: ["justaweekaway.webp"] + license: "CC-BY-SA-3.0" + copyright: "plantyfern on discord" + source: "https://github.com/space-wizards/space-station-14" \ No newline at end of file diff --git a/Resources/Textures/LobbyScreens/justaweekaway.webp b/Resources/Textures/LobbyScreens/justaweekaway.webp new file mode 100644 index 0000000000..6e8205043c Binary files /dev/null and b/Resources/Textures/LobbyScreens/justaweekaway.webp differ diff --git a/Resources/Textures/LobbyScreens/justaweekaway.yml b/Resources/Textures/LobbyScreens/justaweekaway.yml new file mode 100644 index 0000000000..5c43e23305 --- /dev/null +++ b/Resources/Textures/LobbyScreens/justaweekaway.yml @@ -0,0 +1,2 @@ +sample: + filter: true diff --git a/Resources/Textures/Markers/environment.rsi/base-blue.png b/Resources/Textures/Markers/environment.rsi/base-blue.png new file mode 100644 index 0000000000..ee77bb448a Binary files /dev/null and b/Resources/Textures/Markers/environment.rsi/base-blue.png differ diff --git a/Resources/Textures/Markers/environment.rsi/base-green.png b/Resources/Textures/Markers/environment.rsi/base-green.png new file mode 100644 index 0000000000..a39bca9cdc Binary files /dev/null and b/Resources/Textures/Markers/environment.rsi/base-green.png differ diff --git a/Resources/Textures/Markers/environment.rsi/base-red.png b/Resources/Textures/Markers/environment.rsi/base-red.png new file mode 100644 index 0000000000..e0d68f8b9e Binary files /dev/null and b/Resources/Textures/Markers/environment.rsi/base-red.png differ diff --git a/Resources/Textures/Markers/environment.rsi/fire.png b/Resources/Textures/Markers/environment.rsi/fire.png new file mode 100644 index 0000000000..71abc46e81 Binary files /dev/null and b/Resources/Textures/Markers/environment.rsi/fire.png differ diff --git a/Resources/Textures/Markers/environment.rsi/meta.json b/Resources/Textures/Markers/environment.rsi/meta.json new file mode 100644 index 0000000000..6fc7decc8b --- /dev/null +++ b/Resources/Textures/Markers/environment.rsi/meta.json @@ -0,0 +1,32 @@ +{ + "version": 1, + "license": "CC-BY-NC-SA-3.0", + "copyright": "Nuclear14", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "base-blue" + }, + { + "name": "base-red" + }, + { + "name": "base-green" + }, + { + "name": "fire" + }, + { + "name": "rad" + }, + { + "name": "wall" + }, + { + "name": "weather" + } + ] +} diff --git a/Resources/Textures/Markers/environment.rsi/rad.png b/Resources/Textures/Markers/environment.rsi/rad.png new file mode 100644 index 0000000000..ae01d87143 Binary files /dev/null and b/Resources/Textures/Markers/environment.rsi/rad.png differ diff --git a/Resources/Textures/Markers/environment.rsi/wall.png b/Resources/Textures/Markers/environment.rsi/wall.png new file mode 100644 index 0000000000..2aaeaaf014 Binary files /dev/null and b/Resources/Textures/Markers/environment.rsi/wall.png differ diff --git a/Resources/Textures/Markers/environment.rsi/weather.png b/Resources/Textures/Markers/environment.rsi/weather.png new file mode 100644 index 0000000000..adb9f53a47 Binary files /dev/null and b/Resources/Textures/Markers/environment.rsi/weather.png differ diff --git a/Resources/Textures/Mobs/Aliens/Xenos/rouny.rsi/crit.png b/Resources/Textures/Mobs/Aliens/Xenos/rouny.rsi/crit.png index 23a7ec0af6..72f56385f5 100644 Binary files a/Resources/Textures/Mobs/Aliens/Xenos/rouny.rsi/crit.png and b/Resources/Textures/Mobs/Aliens/Xenos/rouny.rsi/crit.png differ diff --git a/Resources/Textures/Mobs/Aliens/Xenos/rouny.rsi/dead.png b/Resources/Textures/Mobs/Aliens/Xenos/rouny.rsi/dead.png index cd355b6152..8e84643281 100644 Binary files a/Resources/Textures/Mobs/Aliens/Xenos/rouny.rsi/dead.png and b/Resources/Textures/Mobs/Aliens/Xenos/rouny.rsi/dead.png differ diff --git a/Resources/Textures/Mobs/Aliens/Xenos/rouny.rsi/meta.json b/Resources/Textures/Mobs/Aliens/Xenos/rouny.rsi/meta.json index cc020d01c4..f238edbb19 100644 --- a/Resources/Textures/Mobs/Aliens/Xenos/rouny.rsi/meta.json +++ b/Resources/Textures/Mobs/Aliens/Xenos/rouny.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "DakoDragon, discord ID: 56038550335922176", + "copyright": "Created by Fenndragon, discord ID: 190763499276861440", "size": { "x": 64, "y": 64 diff --git a/Resources/Textures/Mobs/Aliens/Xenos/rouny.rsi/running.png b/Resources/Textures/Mobs/Aliens/Xenos/rouny.rsi/running.png index 1438285113..556dc97d7e 100644 Binary files a/Resources/Textures/Mobs/Aliens/Xenos/rouny.rsi/running.png and b/Resources/Textures/Mobs/Aliens/Xenos/rouny.rsi/running.png differ diff --git a/Resources/Textures/Mobs/Aliens/Xenos/rouny.rsi/sleeping.png b/Resources/Textures/Mobs/Aliens/Xenos/rouny.rsi/sleeping.png index 9221665dd8..3bb814f467 100644 Binary files a/Resources/Textures/Mobs/Aliens/Xenos/rouny.rsi/sleeping.png and b/Resources/Textures/Mobs/Aliens/Xenos/rouny.rsi/sleeping.png differ diff --git a/Resources/Textures/Mobs/Animals/patriarch.rsi/meta.json b/Resources/Textures/Mobs/Animals/patriarch.rsi/meta.json new file mode 100644 index 0000000000..c8fa857fee --- /dev/null +++ b/Resources/Textures/Mobs/Animals/patriarch.rsi/meta.json @@ -0,0 +1,24 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "https://gitlab.com/cmdevs/colonial-warfare/-/blob/dev/icons/mob/xenonids/praetorian.dmi edited by Fenndragon", + "size": { + "x": 64, + "y": 64 + }, + "states": [ + { + "name": "patriarch", + "directions": 4 + }, + { + "name": "patriarch_sleeping" + }, + { + "name": "patriarch_crit" + }, + { + "name": "patriarch_dead" + } + ] +} diff --git a/Resources/Textures/Mobs/Animals/patriarch.rsi/patriarch.png b/Resources/Textures/Mobs/Animals/patriarch.rsi/patriarch.png new file mode 100644 index 0000000000..34cb16d555 Binary files /dev/null and b/Resources/Textures/Mobs/Animals/patriarch.rsi/patriarch.png differ diff --git a/Resources/Textures/Mobs/Animals/patriarch.rsi/patriarch_crit.png b/Resources/Textures/Mobs/Animals/patriarch.rsi/patriarch_crit.png new file mode 100644 index 0000000000..add264b5b5 Binary files /dev/null and b/Resources/Textures/Mobs/Animals/patriarch.rsi/patriarch_crit.png differ diff --git a/Resources/Textures/Mobs/Animals/patriarch.rsi/patriarch_dead.png b/Resources/Textures/Mobs/Animals/patriarch.rsi/patriarch_dead.png new file mode 100644 index 0000000000..f190202dcc Binary files /dev/null and b/Resources/Textures/Mobs/Animals/patriarch.rsi/patriarch_dead.png differ diff --git a/Resources/Textures/Mobs/Animals/patriarch.rsi/patriarch_sleeping.png b/Resources/Textures/Mobs/Animals/patriarch.rsi/patriarch_sleeping.png new file mode 100644 index 0000000000..2cf18ada64 Binary files /dev/null and b/Resources/Textures/Mobs/Animals/patriarch.rsi/patriarch_sleeping.png differ diff --git a/Resources/Textures/Mobs/Animals/subject7355.rsi/glow.png b/Resources/Textures/Mobs/Animals/subject7355.rsi/glow.png new file mode 100644 index 0000000000..9fc359cf0c Binary files /dev/null and b/Resources/Textures/Mobs/Animals/subject7355.rsi/glow.png differ diff --git a/Resources/Textures/Mobs/Animals/subject7355.rsi/meta.json b/Resources/Textures/Mobs/Animals/subject7355.rsi/meta.json new file mode 100644 index 0000000000..c49d5687f1 --- /dev/null +++ b/Resources/Textures/Mobs/Animals/subject7355.rsi/meta.json @@ -0,0 +1,28 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "https://gitlab.com/cmdevs/colonial-warfare/-/tree/dev/icons/mob/xenonids", + "size": { + "x": 64, + "y": 64 + }, + "states": [ + { + "name": "subject7355", + "directions": 4 + }, + { + "name": "glow", + "directions": 4 + }, + { + "name": "subject7355_sleeping" + }, + { + "name": "subject7355_crit" + }, + { + "name": "subject7355_dead" + } + ] +} \ No newline at end of file diff --git a/Resources/Textures/Mobs/Animals/subject7355.rsi/subject7355.png b/Resources/Textures/Mobs/Animals/subject7355.rsi/subject7355.png new file mode 100644 index 0000000000..9b51c99325 Binary files /dev/null and b/Resources/Textures/Mobs/Animals/subject7355.rsi/subject7355.png differ diff --git a/Resources/Textures/Mobs/Animals/subject7355.rsi/subject7355_crit.png b/Resources/Textures/Mobs/Animals/subject7355.rsi/subject7355_crit.png new file mode 100644 index 0000000000..d400295959 Binary files /dev/null and b/Resources/Textures/Mobs/Animals/subject7355.rsi/subject7355_crit.png differ diff --git a/Resources/Textures/Mobs/Animals/subject7355.rsi/subject7355_dead.png b/Resources/Textures/Mobs/Animals/subject7355.rsi/subject7355_dead.png new file mode 100644 index 0000000000..6b28c7da7a Binary files /dev/null and b/Resources/Textures/Mobs/Animals/subject7355.rsi/subject7355_dead.png differ diff --git a/Resources/Textures/Mobs/Animals/subject7355.rsi/subject7355_sleeping.png b/Resources/Textures/Mobs/Animals/subject7355.rsi/subject7355_sleeping.png new file mode 100644 index 0000000000..1060058325 Binary files /dev/null and b/Resources/Textures/Mobs/Animals/subject7355.rsi/subject7355_sleeping.png differ diff --git a/Resources/Textures/Mobs/Customization/eyes.rsi/meta.json b/Resources/Textures/Mobs/Customization/eyes.rsi/meta.json index cb94dfab3e..78339d7b76 100644 --- a/Resources/Textures/Mobs/Customization/eyes.rsi/meta.json +++ b/Resources/Textures/Mobs/Customization/eyes.rsi/meta.json @@ -1 +1 @@ -{"version": 1, "license": "CC-BY-SA-3.0","copyright": "Vox_eyes Taken from https://github.com/vgstation-coders/vgstation13 at 02ff588d59b3c560c685d9ca75e882d32a72d8cb and human_eyes taken from https://github.com/tgstation/tgstation/blob/8024397cc81c5f47f74cf4279e35728487d0a1a7/icons/mob/human_parts_greyscale.dmi and modified by DrSmugleaf", "size": {"x": 32, "y": 32}, "states": [{"name": "diona", "directions": 4}, {"name": "eyes", "directions": 4}, {"name":"no_eyes"},{"name": "vox_eyes_s", "directions": 4}]} +{"version": 1, "license": "CC-BY-SA-3.0","copyright": "human_eyes taken from https://github.com/tgstation/tgstation/blob/8024397cc81c5f47f74cf4279e35728487d0a1a7/icons/mob/human_parts_greyscale.dmi and modified by DrSmugleaf", "size": {"x": 32, "y": 32}, "states": [{"name": "diona", "directions": 4}, {"name": "eyes", "directions": 4}, {"name":"no_eyes"}]} diff --git a/Resources/Textures/Mobs/Customization/eyes.rsi/vox_eyes_s.png b/Resources/Textures/Mobs/Customization/eyes.rsi/vox_eyes_s.png deleted file mode 100644 index 807e9374c4..0000000000 Binary files a/Resources/Textures/Mobs/Customization/eyes.rsi/vox_eyes_s.png and /dev/null differ diff --git a/Resources/Textures/Mobs/Customization/human_hair.rsi/meta.json b/Resources/Textures/Mobs/Customization/human_hair.rsi/meta.json index 5cb41c258b..8fd4f5e1b9 100644 --- a/Resources/Textures/Mobs/Customization/human_hair.rsi/meta.json +++ b/Resources/Textures/Mobs/Customization/human_hair.rsi/meta.json @@ -667,6 +667,10 @@ "name": "spikyponytail", "directions": 4 }, + { + "name": "spookylong", + "directions": 4 + }, { "name": "stail", "directions": 4 diff --git a/Resources/Textures/Mobs/Customization/human_hair.rsi/spookylong.png b/Resources/Textures/Mobs/Customization/human_hair.rsi/spookylong.png new file mode 100644 index 0000000000..4e79da275b Binary files /dev/null and b/Resources/Textures/Mobs/Customization/human_hair.rsi/spookylong.png differ diff --git a/Resources/Textures/Mobs/Customization/kemonomimi-ears.rsi/bullishhorns.png b/Resources/Textures/Mobs/Customization/kemonomimi-ears.rsi/bullishhorns.png new file mode 100644 index 0000000000..cb80732656 Binary files /dev/null and b/Resources/Textures/Mobs/Customization/kemonomimi-ears.rsi/bullishhorns.png differ diff --git a/Resources/Textures/Mobs/Customization/kemonomimi-ears.rsi/bunnyearstone1.png b/Resources/Textures/Mobs/Customization/kemonomimi-ears.rsi/bunnyearstone1.png new file mode 100644 index 0000000000..6a2f37f003 Binary files /dev/null and b/Resources/Textures/Mobs/Customization/kemonomimi-ears.rsi/bunnyearstone1.png differ diff --git a/Resources/Textures/Mobs/Customization/kemonomimi-ears.rsi/bunnyearstone2.png b/Resources/Textures/Mobs/Customization/kemonomimi-ears.rsi/bunnyearstone2.png new file mode 100644 index 0000000000..2da5da89a0 Binary files /dev/null and b/Resources/Textures/Mobs/Customization/kemonomimi-ears.rsi/bunnyearstone2.png differ diff --git a/Resources/Textures/Mobs/Customization/kemonomimi-ears.rsi/foxears.png b/Resources/Textures/Mobs/Customization/kemonomimi-ears.rsi/foxears.png new file mode 100644 index 0000000000..c37755fc3c Binary files /dev/null and b/Resources/Textures/Mobs/Customization/kemonomimi-ears.rsi/foxears.png differ diff --git a/Resources/Textures/Mobs/Customization/kemonomimi-ears.rsi/goathornstone1.png b/Resources/Textures/Mobs/Customization/kemonomimi-ears.rsi/goathornstone1.png new file mode 100644 index 0000000000..74a1bf1c7a Binary files /dev/null and b/Resources/Textures/Mobs/Customization/kemonomimi-ears.rsi/goathornstone1.png differ diff --git a/Resources/Textures/Mobs/Customization/kemonomimi-ears.rsi/goathornstone2.png b/Resources/Textures/Mobs/Customization/kemonomimi-ears.rsi/goathornstone2.png new file mode 100644 index 0000000000..c260f4e98d Binary files /dev/null and b/Resources/Textures/Mobs/Customization/kemonomimi-ears.rsi/goathornstone2.png differ diff --git a/Resources/Textures/Mobs/Customization/kemonomimi-ears.rsi/meta.json b/Resources/Textures/Mobs/Customization/kemonomimi-ears.rsi/meta.json new file mode 100644 index 0000000000..fcee2ae217 --- /dev/null +++ b/Resources/Textures/Mobs/Customization/kemonomimi-ears.rsi/meta.json @@ -0,0 +1,35 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Body parts by @Kilath", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "bullishhorns", + "directions": 4 + }, + { + "name": "bunnyearstone1", + "directions": 4 + }, + { + "name": "bunnyearstone2", + "directions": 4 + }, + { + "name": "foxears", + "directions": 4 + }, + { + "name": "goathornstone1", + "directions": 4 + }, + { + "name": "goathornstone2", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/Mobs/Customization/kemonomimi-tails.rsi/bunnytail.png b/Resources/Textures/Mobs/Customization/kemonomimi-tails.rsi/bunnytail.png new file mode 100644 index 0000000000..220acb476f Binary files /dev/null and b/Resources/Textures/Mobs/Customization/kemonomimi-tails.rsi/bunnytail.png differ diff --git a/Resources/Textures/Mobs/Customization/kemonomimi-tails.rsi/doblefurtailtone1.png b/Resources/Textures/Mobs/Customization/kemonomimi-tails.rsi/doblefurtailtone1.png new file mode 100644 index 0000000000..88852ce600 Binary files /dev/null and b/Resources/Textures/Mobs/Customization/kemonomimi-tails.rsi/doblefurtailtone1.png differ diff --git a/Resources/Textures/Mobs/Customization/kemonomimi-tails.rsi/doblefurtailtone2.png b/Resources/Textures/Mobs/Customization/kemonomimi-tails.rsi/doblefurtailtone2.png new file mode 100644 index 0000000000..138e64bcf8 Binary files /dev/null and b/Resources/Textures/Mobs/Customization/kemonomimi-tails.rsi/doblefurtailtone2.png differ diff --git a/Resources/Textures/Mobs/Customization/kemonomimi-tails.rsi/fluffytail.png b/Resources/Textures/Mobs/Customization/kemonomimi-tails.rsi/fluffytail.png new file mode 100644 index 0000000000..227add91f3 Binary files /dev/null and b/Resources/Textures/Mobs/Customization/kemonomimi-tails.rsi/fluffytail.png differ diff --git a/Resources/Textures/Mobs/Customization/kemonomimi-tails.rsi/foxninetailstone1.png b/Resources/Textures/Mobs/Customization/kemonomimi-tails.rsi/foxninetailstone1.png new file mode 100644 index 0000000000..4faf8ce5b5 Binary files /dev/null and b/Resources/Textures/Mobs/Customization/kemonomimi-tails.rsi/foxninetailstone1.png differ diff --git a/Resources/Textures/Mobs/Customization/kemonomimi-tails.rsi/foxninetailstone2.png b/Resources/Textures/Mobs/Customization/kemonomimi-tails.rsi/foxninetailstone2.png new file mode 100644 index 0000000000..d391c48368 Binary files /dev/null and b/Resources/Textures/Mobs/Customization/kemonomimi-tails.rsi/foxninetailstone2.png differ diff --git a/Resources/Textures/Mobs/Customization/kemonomimi-tails.rsi/foxthreetailstone1.png b/Resources/Textures/Mobs/Customization/kemonomimi-tails.rsi/foxthreetailstone1.png new file mode 100644 index 0000000000..68e03d1d9e Binary files /dev/null and b/Resources/Textures/Mobs/Customization/kemonomimi-tails.rsi/foxthreetailstone1.png differ diff --git a/Resources/Textures/Mobs/Customization/kemonomimi-tails.rsi/foxthreetailstone2.png b/Resources/Textures/Mobs/Customization/kemonomimi-tails.rsi/foxthreetailstone2.png new file mode 100644 index 0000000000..b309c9d628 Binary files /dev/null and b/Resources/Textures/Mobs/Customization/kemonomimi-tails.rsi/foxthreetailstone2.png differ diff --git a/Resources/Textures/Mobs/Customization/kemonomimi-tails.rsi/foxtwotailstone1.png b/Resources/Textures/Mobs/Customization/kemonomimi-tails.rsi/foxtwotailstone1.png new file mode 100644 index 0000000000..a87f5316ca Binary files /dev/null and b/Resources/Textures/Mobs/Customization/kemonomimi-tails.rsi/foxtwotailstone1.png differ diff --git a/Resources/Textures/Mobs/Customization/kemonomimi-tails.rsi/foxtwotailstone2.png b/Resources/Textures/Mobs/Customization/kemonomimi-tails.rsi/foxtwotailstone2.png new file mode 100644 index 0000000000..07fc4877c8 Binary files /dev/null and b/Resources/Textures/Mobs/Customization/kemonomimi-tails.rsi/foxtwotailstone2.png differ diff --git a/Resources/Textures/Mobs/Customization/kemonomimi-tails.rsi/horsetailculty.png b/Resources/Textures/Mobs/Customization/kemonomimi-tails.rsi/horsetailculty.png new file mode 100644 index 0000000000..b9e788df70 Binary files /dev/null and b/Resources/Textures/Mobs/Customization/kemonomimi-tails.rsi/horsetailculty.png differ diff --git a/Resources/Textures/Mobs/Customization/kemonomimi-tails.rsi/horsetaillong.png b/Resources/Textures/Mobs/Customization/kemonomimi-tails.rsi/horsetaillong.png new file mode 100644 index 0000000000..4f67cbc7cd Binary files /dev/null and b/Resources/Textures/Mobs/Customization/kemonomimi-tails.rsi/horsetaillong.png differ diff --git a/Resources/Textures/Mobs/Customization/kemonomimi-tails.rsi/meta.json b/Resources/Textures/Mobs/Customization/kemonomimi-tails.rsi/meta.json new file mode 100644 index 0000000000..29005fb211 --- /dev/null +++ b/Resources/Textures/Mobs/Customization/kemonomimi-tails.rsi/meta.json @@ -0,0 +1,71 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Body parts by @Kilath", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "bunnytail", + "directions": 4 + }, + { + "name": "doblefurtailtone1", + "directions": 4 + }, + { + "name": "doblefurtailtone2", + "directions": 4 + }, + { + "name": "fluffytail", + "directions": 4 + }, + { + "name": "foxninetailstone1", + "directions": 4 + }, + { + "name": "foxninetailstone2", + "directions": 4 + }, + { + "name": "foxthreetailstone1", + "directions": 4 + }, + { + "name": "foxthreetailstone2", + "directions": 4 + }, + { + "name": "foxtwotailstone1", + "directions": 4 + }, + { + "name": "foxtwotailstone2", + "directions": 4 + }, + { + "name": "horsetailculty", + "directions": 4 + }, + { + "name": "horsetaillong", + "directions": 4 + }, + { + "name": "sharktail", + "directions": 4 + }, + { + "name": "tasseltailtone1", + "directions": 4 + }, + { + "name": "tasseltailtone2", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/Mobs/Customization/kemonomimi-tails.rsi/sharktail.png b/Resources/Textures/Mobs/Customization/kemonomimi-tails.rsi/sharktail.png new file mode 100644 index 0000000000..9ebdb7bf79 Binary files /dev/null and b/Resources/Textures/Mobs/Customization/kemonomimi-tails.rsi/sharktail.png differ diff --git a/Resources/Textures/Mobs/Customization/kemonomimi-tails.rsi/tasseltailtone1.png b/Resources/Textures/Mobs/Customization/kemonomimi-tails.rsi/tasseltailtone1.png new file mode 100644 index 0000000000..d45b14f99b Binary files /dev/null and b/Resources/Textures/Mobs/Customization/kemonomimi-tails.rsi/tasseltailtone1.png differ diff --git a/Resources/Textures/Mobs/Customization/kemonomimi-tails.rsi/tasseltailtone2.png b/Resources/Textures/Mobs/Customization/kemonomimi-tails.rsi/tasseltailtone2.png new file mode 100644 index 0000000000..edb0e539bd Binary files /dev/null and b/Resources/Textures/Mobs/Customization/kemonomimi-tails.rsi/tasseltailtone2.png differ diff --git a/Resources/Textures/Mobs/Customization/reptilian_parts.rsi/frills_axolotl.png b/Resources/Textures/Mobs/Customization/reptilian_parts.rsi/frills_axolotl.png index f7f54acdae..d61b60824c 100644 Binary files a/Resources/Textures/Mobs/Customization/reptilian_parts.rsi/frills_axolotl.png and b/Resources/Textures/Mobs/Customization/reptilian_parts.rsi/frills_axolotl.png differ diff --git a/Resources/Textures/Mobs/Customization/reptilian_parts.rsi/frills_neckfull.png b/Resources/Textures/Mobs/Customization/reptilian_parts.rsi/frills_neckfull.png new file mode 100644 index 0000000000..dfbe573096 Binary files /dev/null and b/Resources/Textures/Mobs/Customization/reptilian_parts.rsi/frills_neckfull.png differ diff --git a/Resources/Textures/Mobs/Customization/reptilian_parts.rsi/meta.json b/Resources/Textures/Mobs/Customization/reptilian_parts.rsi/meta.json index 8eaac10cd9..3770a771d8 100644 --- a/Resources/Textures/Mobs/Customization/reptilian_parts.rsi/meta.json +++ b/Resources/Textures/Mobs/Customization/reptilian_parts.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, while Argali, Ayrshire, Myrsore and Bighorn are drawn by Ubaser, and Kobold Ears are drawn by Pigeonpeas. Body_underbelly made by Nairod(github) for SS14. Large drawn by Ubaser. Wagging tail by SonicDC.", + "copyright": "https://github.com/Skyrat-SS13/Skyrat-tg/tree/40e3cdbb15b8bc0d5ef2fb46133adf805bda5297, while Argali, Ayrshire, Myrsore and Bighorn are drawn by Ubaser, and Kobold Ears are drawn by Pigeonpeas. Body_underbelly made by Nairod(github) for SS14. Large drawn by Ubaser. Wagging tail by SonicDC. Splotch modified from Sharp by KittenColony(github). Frills neckfull come from: https://github.com/Bubberstation/Bubberstation/commit/8bc6b83404803466a560b694bf22ef3c0ac266a2", "size": { "x": 32, "y": 32 @@ -87,391 +87,391 @@ "name": "tail_smooth_wagging_primary", "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 - ], - [ - 0.1, - 0.1, - 0.1, - 0.1, - 0.1, - 0.1, - 0.1, - 0.1, - 0.1, - 0.1, - 0.1, - 0.1, - 0.1, - 0.1, - 0.1, - 0.1 - ], - [ - 0.1, - 0.1, - 0.1, - 0.1, - 0.1, - 0.1, - 0.1, - 0.1, - 0.1, - 0.1, - 0.1, - 0.1, - 0.1, - 0.1, - 0.1, - 0.1 - ] + [ + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1 + ], + [ + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1 + ], + [ + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1 + ], + [ + 0.1, + 0.1, + 0.1, + 0.1, + 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": "tail_smooth_wagging_secondary", "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 - ], - [ - 0.1, - 0.1, - 0.1, - 0.1, - 0.1, - 0.1, - 0.1, - 0.1, - 0.1, - 0.1, - 0.1, - 0.1, - 0.1, - 0.1, - 0.1, - 0.1 - ], - [ - 0.1, - 0.1, - 0.1, - 0.1, - 0.1, - 0.1, - 0.1, - 0.1, - 0.1, - 0.1, - 0.1, - 0.1, - 0.1, - 0.1, - 0.1, - 0.1 - ] + [ + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1 + ], + [ + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1 + ], + [ + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1 + ], + [ + 0.1, + 0.1, + 0.1, + 0.1, + 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": "tail_dtiger_wagging", - "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 - ], - [ - 0.1, - 0.1, - 0.1, - 0.1, - 0.1, - 0.1, - 0.1, - 0.1, - 0.1, - 0.1, - 0.1, - 0.1, - 0.1, - 0.1, - 0.1, - 0.1 - ], - [ - 0.1, - 0.1, - 0.1, - 0.1, - 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": "tail_dtiger_wagging", + "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 + ], + [ + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1 + ], + [ + 0.1, + 0.1, + 0.1, + 0.1, + 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": "tail_ltiger_wagging", - "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 - ], - [ - 0.1, - 0.1, - 0.1, - 0.1, - 0.1, - 0.1, - 0.1, - 0.1, - 0.1, - 0.1, - 0.1, - 0.1, - 0.1, - 0.1, - 0.1, - 0.1 - ], - [ - 0.1, - 0.1, - 0.1, - 0.1, - 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": "tail_ltiger_wagging", + "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 + ], + [ + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1 + ], + [ + 0.1, + 0.1, + 0.1, + 0.1, + 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": "tail_spikes_wagging", - "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 - ], - [ - 0.1, - 0.1, - 0.1, - 0.1, - 0.1, - 0.1, - 0.1, - 0.1, - 0.1, - 0.1, - 0.1, - 0.1, - 0.1, - 0.1, - 0.1, - 0.1 - ], - [ - 0.1, - 0.1, - 0.1, - 0.1, - 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": "tail_spikes_wagging", + "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 + ], + [ + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1 + ], + [ + 0.1, + 0.1, + 0.1, + 0.1, + 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": "snout_round", @@ -525,19 +525,19 @@ "name": "frills_divinity", "directions": 4 }, - { + { "name": "horns_double", "directions": 4 }, - { + { "name": "frills_axolotl", "directions": 4 }, - { + { "name": "frills_hood_primary", "directions": 4 }, - { + { "name": "frills_hood_secondary", "directions": 4 }, @@ -548,58 +548,70 @@ { "name": "body_tiger", "directions": 4 - }, - { - "name": "head_tiger", - "directions": 4 - }, - { - "name": "l_arm_tiger", - "directions": 4 - }, - { - "name": "l_leg_tiger", - "directions": 4 - }, - { - "name": "r_arm_tiger", - "directions": 4 - }, - { - "name": "horns_argali", - "directions": 4 - }, - { - "name": "horns_ayrshire", - "directions": 4 - }, - { - "name": "horns_myrsore", - "directions": 4 - }, - { - "name": "horns_bighorn", - "directions": 4 - }, - { - "name": "horns_kobold_ears", - "directions": 4 - }, - { - "name": "r_leg_tiger", - "directions": 4 - }, - { - "name": "horns_floppy_kobold_ears", - "directions": 4 - }, + }, + { + "name": "head_tiger", + "directions": 4 + }, + { + "name": "l_arm_tiger", + "directions": 4 + }, + { + "name": "l_leg_tiger", + "directions": 4 + }, + { + "name": "r_arm_tiger", + "directions": 4 + }, + { + "name": "horns_argali", + "directions": 4 + }, + { + "name": "horns_ayrshire", + "directions": 4 + }, + { + "name": "horns_myrsore", + "directions": 4 + }, + { + "name": "horns_bighorn", + "directions": 4 + }, + { + "name": "horns_kobold_ears", + "directions": 4 + }, + { + "name": "r_leg_tiger", + "directions": 4 + }, + { + "name": "horns_floppy_kobold_ears", + "directions": 4 + }, { "name": "body_underbelly", "directions": 4 - }, - { - "name": "body_backspikes", - "directions": 4 - } + }, + { + "name": "body_backspikes", + "directions": 4 + }, + { + "name": "snout_splotch_primary", + "directions": 4 + }, + { + "name": "snout_splotch_secondary", + "directions": 4 + }, + { + "name": "frills_neckfull", + "directions": 4 + } ] -} +} \ No newline at end of file diff --git a/Resources/Textures/Mobs/Customization/reptilian_parts.rsi/snout_splotch_primary.png b/Resources/Textures/Mobs/Customization/reptilian_parts.rsi/snout_splotch_primary.png new file mode 100644 index 0000000000..850b985e5d Binary files /dev/null and b/Resources/Textures/Mobs/Customization/reptilian_parts.rsi/snout_splotch_primary.png differ diff --git a/Resources/Textures/Mobs/Customization/reptilian_parts.rsi/snout_splotch_secondary.png b/Resources/Textures/Mobs/Customization/reptilian_parts.rsi/snout_splotch_secondary.png new file mode 100644 index 0000000000..5a982ed354 Binary files /dev/null and b/Resources/Textures/Mobs/Customization/reptilian_parts.rsi/snout_splotch_secondary.png differ diff --git a/Resources/Textures/Mobs/Customization/vox_facial_hair.rsi/beard_s.png b/Resources/Textures/Mobs/Customization/vox_facial_hair.rsi/beard_s.png new file mode 100644 index 0000000000..92aeea8f36 Binary files /dev/null and b/Resources/Textures/Mobs/Customization/vox_facial_hair.rsi/beard_s.png differ diff --git a/Resources/Textures/Mobs/Customization/vox_facial_hair.rsi/colonel_s.png b/Resources/Textures/Mobs/Customization/vox_facial_hair.rsi/colonel_s.png new file mode 100644 index 0000000000..2e657d675a Binary files /dev/null and b/Resources/Textures/Mobs/Customization/vox_facial_hair.rsi/colonel_s.png differ diff --git a/Resources/Textures/Mobs/Customization/vox_facial_hair.rsi/fu_s.png b/Resources/Textures/Mobs/Customization/vox_facial_hair.rsi/fu_s.png new file mode 100644 index 0000000000..87f97eeaee Binary files /dev/null and b/Resources/Textures/Mobs/Customization/vox_facial_hair.rsi/fu_s.png differ diff --git a/Resources/Textures/Mobs/Customization/vox_facial_hair.rsi/mane_s.png b/Resources/Textures/Mobs/Customization/vox_facial_hair.rsi/mane_s.png new file mode 100644 index 0000000000..08b120f500 Binary files /dev/null and b/Resources/Textures/Mobs/Customization/vox_facial_hair.rsi/mane_s.png differ diff --git a/Resources/Textures/Mobs/Customization/vox_facial_hair.rsi/meta.json b/Resources/Textures/Mobs/Customization/vox_facial_hair.rsi/meta.json index c52ad8a2a2..64eebb8883 100644 --- a/Resources/Textures/Mobs/Customization/vox_facial_hair.rsi/meta.json +++ b/Resources/Textures/Mobs/Customization/vox_facial_hair.rsi/meta.json @@ -1 +1,31 @@ -{"version": 1, "size": {"x": 32, "y": 32}, "license": "CC-BY-SA-3.0", "copyright": "https://github.com/vgstation-coders/vgstation13/blob/02ff588d59b3c560c685d9ca75e882d32a72d8cb/icons/mob/human_face.dmi", "states": [{"name": "vox_beard_s", "directions": 4}, {"name": "vox_colonel_s", "directions": 4}, {"name": "vox_fu_s", "directions": 4}, {"name": "vox_neck_s", "directions": 4}, {"name": "vox_ruff_beard_s", "directions": 4}, {"name": "vox_ruff_beard_s2", "directions": 4}]} +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from Paradise at https://github.com/ParadiseSS13/Paradise/blob/0f9ef5962f4422836c0a42f289fb24d018918cbc/icons/mob/sprite_accessories/vox/vox_facial_hair.dmi and greyscaled", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "colonel_s", + "directions": 4 + }, + { + "name": "fu_s", + "directions": 4 + }, + { + "name": "neck_s", + "directions": 4 + }, + { + "name": "beard_s", + "directions": 4 + }, + { + "name": "mane_s", + "directions": 4 + } + ] +} \ No newline at end of file diff --git a/Resources/Textures/Mobs/Customization/vox_facial_hair.rsi/neck_s.png b/Resources/Textures/Mobs/Customization/vox_facial_hair.rsi/neck_s.png new file mode 100644 index 0000000000..f630e8ce8b Binary files /dev/null and b/Resources/Textures/Mobs/Customization/vox_facial_hair.rsi/neck_s.png differ diff --git a/Resources/Textures/Mobs/Customization/vox_facial_hair.rsi/vox_beard_s.png b/Resources/Textures/Mobs/Customization/vox_facial_hair.rsi/vox_beard_s.png deleted file mode 100644 index 8e922e58de..0000000000 Binary files a/Resources/Textures/Mobs/Customization/vox_facial_hair.rsi/vox_beard_s.png and /dev/null differ diff --git a/Resources/Textures/Mobs/Customization/vox_facial_hair.rsi/vox_colonel_s.png b/Resources/Textures/Mobs/Customization/vox_facial_hair.rsi/vox_colonel_s.png deleted file mode 100644 index 8de4dd6803..0000000000 Binary files a/Resources/Textures/Mobs/Customization/vox_facial_hair.rsi/vox_colonel_s.png and /dev/null differ diff --git a/Resources/Textures/Mobs/Customization/vox_facial_hair.rsi/vox_fu_s.png b/Resources/Textures/Mobs/Customization/vox_facial_hair.rsi/vox_fu_s.png deleted file mode 100644 index e49e84baf0..0000000000 Binary files a/Resources/Textures/Mobs/Customization/vox_facial_hair.rsi/vox_fu_s.png and /dev/null differ diff --git a/Resources/Textures/Mobs/Customization/vox_facial_hair.rsi/vox_neck_s.png b/Resources/Textures/Mobs/Customization/vox_facial_hair.rsi/vox_neck_s.png deleted file mode 100644 index 9009717cee..0000000000 Binary files a/Resources/Textures/Mobs/Customization/vox_facial_hair.rsi/vox_neck_s.png and /dev/null differ diff --git a/Resources/Textures/Mobs/Customization/vox_facial_hair.rsi/vox_ruff_beard_s.png b/Resources/Textures/Mobs/Customization/vox_facial_hair.rsi/vox_ruff_beard_s.png deleted file mode 100644 index 365f134c44..0000000000 Binary files a/Resources/Textures/Mobs/Customization/vox_facial_hair.rsi/vox_ruff_beard_s.png and /dev/null differ diff --git a/Resources/Textures/Mobs/Customization/vox_facial_hair.rsi/vox_ruff_beard_s2.png b/Resources/Textures/Mobs/Customization/vox_facial_hair.rsi/vox_ruff_beard_s2.png deleted file mode 100644 index 0858c19f05..0000000000 Binary files a/Resources/Textures/Mobs/Customization/vox_facial_hair.rsi/vox_ruff_beard_s2.png and /dev/null differ diff --git a/Resources/Textures/Mobs/Customization/vox_hair.rsi/afro_s.png b/Resources/Textures/Mobs/Customization/vox_hair.rsi/afro_s.png new file mode 100644 index 0000000000..74b09a0635 Binary files /dev/null and b/Resources/Textures/Mobs/Customization/vox_hair.rsi/afro_s.png differ diff --git a/Resources/Textures/Mobs/Customization/vox_hair.rsi/braid_s.png b/Resources/Textures/Mobs/Customization/vox_hair.rsi/braid_s.png new file mode 100644 index 0000000000..ff2aa4acbc Binary files /dev/null and b/Resources/Textures/Mobs/Customization/vox_hair.rsi/braid_s.png differ diff --git a/Resources/Textures/Mobs/Customization/vox_hair.rsi/crestedquills_s.png b/Resources/Textures/Mobs/Customization/vox_hair.rsi/crestedquills_s.png new file mode 100644 index 0000000000..f089905438 Binary files /dev/null and b/Resources/Textures/Mobs/Customization/vox_hair.rsi/crestedquills_s.png differ diff --git a/Resources/Textures/Mobs/Customization/vox_hair.rsi/emperorquills_s.png b/Resources/Textures/Mobs/Customization/vox_hair.rsi/emperorquills_s.png new file mode 100644 index 0000000000..899918e694 Binary files /dev/null and b/Resources/Textures/Mobs/Customization/vox_hair.rsi/emperorquills_s.png differ diff --git a/Resources/Textures/Mobs/Customization/vox_hair.rsi/flowing_s.png b/Resources/Textures/Mobs/Customization/vox_hair.rsi/flowing_s.png new file mode 100644 index 0000000000..98139350d4 Binary files /dev/null and b/Resources/Textures/Mobs/Customization/vox_hair.rsi/flowing_s.png differ diff --git a/Resources/Textures/Mobs/Customization/vox_hair.rsi/hawk_s.png b/Resources/Textures/Mobs/Customization/vox_hair.rsi/hawk_s.png new file mode 100644 index 0000000000..c262fc1d91 Binary files /dev/null and b/Resources/Textures/Mobs/Customization/vox_hair.rsi/hawk_s.png differ diff --git a/Resources/Textures/Mobs/Customization/vox_hair.rsi/horns_s.png b/Resources/Textures/Mobs/Customization/vox_hair.rsi/horns_s.png new file mode 100644 index 0000000000..8891151c9f Binary files /dev/null and b/Resources/Textures/Mobs/Customization/vox_hair.rsi/horns_s.png differ diff --git a/Resources/Textures/Mobs/Customization/vox_hair.rsi/keelquills_s.png b/Resources/Textures/Mobs/Customization/vox_hair.rsi/keelquills_s.png new file mode 100644 index 0000000000..c3c947bcce Binary files /dev/null and b/Resources/Textures/Mobs/Customization/vox_hair.rsi/keelquills_s.png differ diff --git a/Resources/Textures/Mobs/Customization/vox_hair.rsi/keetquills_s.png b/Resources/Textures/Mobs/Customization/vox_hair.rsi/keetquills_s.png new file mode 100644 index 0000000000..910542dde1 Binary files /dev/null and b/Resources/Textures/Mobs/Customization/vox_hair.rsi/keetquills_s.png differ diff --git a/Resources/Textures/Mobs/Customization/vox_hair.rsi/kingly_s.png b/Resources/Textures/Mobs/Customization/vox_hair.rsi/kingly_s.png new file mode 100644 index 0000000000..1d0a1d8d89 Binary files /dev/null and b/Resources/Textures/Mobs/Customization/vox_hair.rsi/kingly_s.png differ diff --git a/Resources/Textures/Mobs/Customization/vox_hair.rsi/long_braid_s.png b/Resources/Textures/Mobs/Customization/vox_hair.rsi/long_braid_s.png new file mode 100644 index 0000000000..3df31052db Binary files /dev/null and b/Resources/Textures/Mobs/Customization/vox_hair.rsi/long_braid_s.png differ diff --git a/Resources/Textures/Mobs/Customization/vox_hair.rsi/mange_s.png b/Resources/Textures/Mobs/Customization/vox_hair.rsi/mange_s.png new file mode 100644 index 0000000000..afa934e880 Binary files /dev/null and b/Resources/Textures/Mobs/Customization/vox_hair.rsi/mange_s.png differ diff --git a/Resources/Textures/Mobs/Customization/vox_hair.rsi/meta.json b/Resources/Textures/Mobs/Customization/vox_hair.rsi/meta.json index 2f14178424..9b08260bd6 100644 --- a/Resources/Textures/Mobs/Customization/vox_hair.rsi/meta.json +++ b/Resources/Textures/Mobs/Customization/vox_hair.rsi/meta.json @@ -1 +1,99 @@ -{"version": 1, "size": {"x": 32, "y": 32}, "license": "CC-BY-SA-3.0", "copyright": "https://github.com/vgstation-coders/vgstation13/blob/02ff588d59b3c560c685d9ca75e882d32a72d8cb/icons/mob/human_face.dmi", "states": [{"name": "vox_afro_s", "directions": 4}, {"name": "vox_afro_s2", "directions": 4}, {"name": "vox_bald_s", "directions": 4}, {"name": "vox_cropped_s", "directions": 4}, {"name": "vox_cropped_s2", "directions": 4}, {"name": "vox_horns_s", "directions": 4}, {"name": "vox_horns_s2", "directions": 4}, {"name": "vox_kingly_s", "directions": 4}, {"name": "vox_kingly_s2", "directions": 4}, {"name": "vox_mange_s", "directions": 4}, {"name": "vox_mange_s2", "directions": 4}, {"name": "vox_mohawk_s", "directions": 4}, {"name": "vox_mohawk_s2", "directions": 4}, {"name": "vox_nights_s", "directions": 4}, {"name": "vox_nights_s2", "directions": 4}, {"name": "vox_pony_s", "directions": 4}, {"name": "vox_pony_s2", "directions": 4}, {"name": "vox_rows_s", "directions": 4}, {"name": "vox_rows_s2", "directions": 4}, {"name": "vox_ruff_hawk_s", "directions": 4}, {"name": "vox_ruff_hawk_s2", "directions": 4}, {"name": "vox_shortquills_s", "directions": 4}, {"name": "vox_shortquills_s2", "directions": 4}, {"name": "vox_surf_s", "directions": 4}, {"name": "vox_surf_s2", "directions": 4}, {"name": "vox_yasu_s", "directions": 4}, {"name": "vox_yasu_s2", "directions": 4}]} +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from Paradise at https://github.com/ParadiseSS13/Paradise/blob/dcd1f5d88a8c5ba9634fc3fce67a76ada45f71dc/icons/mob/sprite_accessories/vox/vox_hair.dmi and greyscaled", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "crestedquills_s", + "directions": 4 + }, + { + "name": "emperorquills_s", + "directions": 4 + }, + { + "name": "keelquills_s", + "directions": 4 + }, + { + "name": "keetquills_s", + "directions": 4 + }, + { + "name": "shortquills_s", + "directions": 4 + }, + { + "name": "tielquills_s", + "directions": 4 + }, + { + "name": "kingly_s", + "directions": 4 + }, + { + "name": "afro_s", + "directions": 4 + }, + { + "name": "yasu_s", + "directions": 4 + }, + { + "name": "razor_s", + "directions": 4 + }, + { + "name": "razor_clipped_s", + "directions": 4 + }, + { + "name": "mohawk_s", + "directions": 4 + }, + { + "name": "horns_s", + "directions": 4 + }, + { + "name": "nights_s", + "directions": 4 + }, + { + "name": "hawk_s", + "directions": 4 + }, + { + "name": "long_braid_s", + "directions": 4 + }, + { + "name": "short_braid_s", + "directions": 4 + }, + { + "name": "mange_s", + "directions": 4 + }, + { + "name": "ponytail_s", + "directions": 4 + }, + { + "name": "braid_s", + "directions": 4 + }, + { + "name": "surf_s", + "directions": 4 + }, + { + "name": "flowing_s", + "directions": 4 + } + ] +} \ No newline at end of file diff --git a/Resources/Textures/Mobs/Customization/vox_hair.rsi/mohawk_s.png b/Resources/Textures/Mobs/Customization/vox_hair.rsi/mohawk_s.png new file mode 100644 index 0000000000..b8466620b8 Binary files /dev/null and b/Resources/Textures/Mobs/Customization/vox_hair.rsi/mohawk_s.png differ diff --git a/Resources/Textures/Mobs/Customization/vox_hair.rsi/nights_s.png b/Resources/Textures/Mobs/Customization/vox_hair.rsi/nights_s.png new file mode 100644 index 0000000000..68d2654dcd Binary files /dev/null and b/Resources/Textures/Mobs/Customization/vox_hair.rsi/nights_s.png differ diff --git a/Resources/Textures/Mobs/Customization/vox_hair.rsi/ponytail_s.png b/Resources/Textures/Mobs/Customization/vox_hair.rsi/ponytail_s.png new file mode 100644 index 0000000000..316f08fe9a Binary files /dev/null and b/Resources/Textures/Mobs/Customization/vox_hair.rsi/ponytail_s.png differ diff --git a/Resources/Textures/Mobs/Customization/vox_hair.rsi/razor_clipped_s.png b/Resources/Textures/Mobs/Customization/vox_hair.rsi/razor_clipped_s.png new file mode 100644 index 0000000000..e5ffe57daa Binary files /dev/null and b/Resources/Textures/Mobs/Customization/vox_hair.rsi/razor_clipped_s.png differ diff --git a/Resources/Textures/Mobs/Customization/vox_hair.rsi/razor_s.png b/Resources/Textures/Mobs/Customization/vox_hair.rsi/razor_s.png new file mode 100644 index 0000000000..0b57cec2c1 Binary files /dev/null and b/Resources/Textures/Mobs/Customization/vox_hair.rsi/razor_s.png differ diff --git a/Resources/Textures/Mobs/Customization/vox_hair.rsi/short_braid_s.png b/Resources/Textures/Mobs/Customization/vox_hair.rsi/short_braid_s.png new file mode 100644 index 0000000000..6f7a1e86ca Binary files /dev/null and b/Resources/Textures/Mobs/Customization/vox_hair.rsi/short_braid_s.png differ diff --git a/Resources/Textures/Mobs/Customization/vox_hair.rsi/shortquills_s.png b/Resources/Textures/Mobs/Customization/vox_hair.rsi/shortquills_s.png new file mode 100644 index 0000000000..a0d496aeed Binary files /dev/null and b/Resources/Textures/Mobs/Customization/vox_hair.rsi/shortquills_s.png differ diff --git a/Resources/Textures/Mobs/Customization/vox_hair.rsi/surf_s.png b/Resources/Textures/Mobs/Customization/vox_hair.rsi/surf_s.png new file mode 100644 index 0000000000..712ccb542f Binary files /dev/null and b/Resources/Textures/Mobs/Customization/vox_hair.rsi/surf_s.png differ diff --git a/Resources/Textures/Mobs/Customization/vox_hair.rsi/tielquills_s.png b/Resources/Textures/Mobs/Customization/vox_hair.rsi/tielquills_s.png new file mode 100644 index 0000000000..aa121bd331 Binary files /dev/null and b/Resources/Textures/Mobs/Customization/vox_hair.rsi/tielquills_s.png differ diff --git a/Resources/Textures/Mobs/Customization/vox_hair.rsi/vox_afro_s.png b/Resources/Textures/Mobs/Customization/vox_hair.rsi/vox_afro_s.png deleted file mode 100644 index 60b9b18c21..0000000000 Binary files a/Resources/Textures/Mobs/Customization/vox_hair.rsi/vox_afro_s.png and /dev/null differ diff --git a/Resources/Textures/Mobs/Customization/vox_hair.rsi/vox_afro_s2.png b/Resources/Textures/Mobs/Customization/vox_hair.rsi/vox_afro_s2.png deleted file mode 100644 index 0858c19f05..0000000000 Binary files a/Resources/Textures/Mobs/Customization/vox_hair.rsi/vox_afro_s2.png and /dev/null differ diff --git a/Resources/Textures/Mobs/Customization/vox_hair.rsi/vox_bald_s.png b/Resources/Textures/Mobs/Customization/vox_hair.rsi/vox_bald_s.png deleted file mode 100644 index 0858c19f05..0000000000 Binary files a/Resources/Textures/Mobs/Customization/vox_hair.rsi/vox_bald_s.png and /dev/null differ diff --git a/Resources/Textures/Mobs/Customization/vox_hair.rsi/vox_cropped_s.png b/Resources/Textures/Mobs/Customization/vox_hair.rsi/vox_cropped_s.png deleted file mode 100644 index 67574355ee..0000000000 Binary files a/Resources/Textures/Mobs/Customization/vox_hair.rsi/vox_cropped_s.png and /dev/null differ diff --git a/Resources/Textures/Mobs/Customization/vox_hair.rsi/vox_cropped_s2.png b/Resources/Textures/Mobs/Customization/vox_hair.rsi/vox_cropped_s2.png deleted file mode 100644 index 0858c19f05..0000000000 Binary files a/Resources/Textures/Mobs/Customization/vox_hair.rsi/vox_cropped_s2.png and /dev/null differ diff --git a/Resources/Textures/Mobs/Customization/vox_hair.rsi/vox_horns_s.png b/Resources/Textures/Mobs/Customization/vox_hair.rsi/vox_horns_s.png deleted file mode 100644 index dbb4ae8f28..0000000000 Binary files a/Resources/Textures/Mobs/Customization/vox_hair.rsi/vox_horns_s.png and /dev/null differ diff --git a/Resources/Textures/Mobs/Customization/vox_hair.rsi/vox_horns_s2.png b/Resources/Textures/Mobs/Customization/vox_hair.rsi/vox_horns_s2.png deleted file mode 100644 index 0858c19f05..0000000000 Binary files a/Resources/Textures/Mobs/Customization/vox_hair.rsi/vox_horns_s2.png and /dev/null differ diff --git a/Resources/Textures/Mobs/Customization/vox_hair.rsi/vox_kingly_s.png b/Resources/Textures/Mobs/Customization/vox_hair.rsi/vox_kingly_s.png deleted file mode 100644 index 3f35429e14..0000000000 Binary files a/Resources/Textures/Mobs/Customization/vox_hair.rsi/vox_kingly_s.png and /dev/null differ diff --git a/Resources/Textures/Mobs/Customization/vox_hair.rsi/vox_kingly_s2.png b/Resources/Textures/Mobs/Customization/vox_hair.rsi/vox_kingly_s2.png deleted file mode 100644 index 0858c19f05..0000000000 Binary files a/Resources/Textures/Mobs/Customization/vox_hair.rsi/vox_kingly_s2.png and /dev/null differ diff --git a/Resources/Textures/Mobs/Customization/vox_hair.rsi/vox_mange_s.png b/Resources/Textures/Mobs/Customization/vox_hair.rsi/vox_mange_s.png deleted file mode 100644 index 138c58e690..0000000000 Binary files a/Resources/Textures/Mobs/Customization/vox_hair.rsi/vox_mange_s.png and /dev/null differ diff --git a/Resources/Textures/Mobs/Customization/vox_hair.rsi/vox_mange_s2.png b/Resources/Textures/Mobs/Customization/vox_hair.rsi/vox_mange_s2.png deleted file mode 100644 index 0858c19f05..0000000000 Binary files a/Resources/Textures/Mobs/Customization/vox_hair.rsi/vox_mange_s2.png and /dev/null differ diff --git a/Resources/Textures/Mobs/Customization/vox_hair.rsi/vox_mohawk_s.png b/Resources/Textures/Mobs/Customization/vox_hair.rsi/vox_mohawk_s.png deleted file mode 100644 index 0a5589b0ba..0000000000 Binary files a/Resources/Textures/Mobs/Customization/vox_hair.rsi/vox_mohawk_s.png and /dev/null differ diff --git a/Resources/Textures/Mobs/Customization/vox_hair.rsi/vox_mohawk_s2.png b/Resources/Textures/Mobs/Customization/vox_hair.rsi/vox_mohawk_s2.png deleted file mode 100644 index 0858c19f05..0000000000 Binary files a/Resources/Textures/Mobs/Customization/vox_hair.rsi/vox_mohawk_s2.png and /dev/null differ diff --git a/Resources/Textures/Mobs/Customization/vox_hair.rsi/vox_nights_s.png b/Resources/Textures/Mobs/Customization/vox_hair.rsi/vox_nights_s.png deleted file mode 100644 index 0a587eafce..0000000000 Binary files a/Resources/Textures/Mobs/Customization/vox_hair.rsi/vox_nights_s.png and /dev/null differ diff --git a/Resources/Textures/Mobs/Customization/vox_hair.rsi/vox_nights_s2.png b/Resources/Textures/Mobs/Customization/vox_hair.rsi/vox_nights_s2.png deleted file mode 100644 index 0858c19f05..0000000000 Binary files a/Resources/Textures/Mobs/Customization/vox_hair.rsi/vox_nights_s2.png and /dev/null differ diff --git a/Resources/Textures/Mobs/Customization/vox_hair.rsi/vox_pony_s.png b/Resources/Textures/Mobs/Customization/vox_hair.rsi/vox_pony_s.png deleted file mode 100644 index a9ff211389..0000000000 Binary files a/Resources/Textures/Mobs/Customization/vox_hair.rsi/vox_pony_s.png and /dev/null differ diff --git a/Resources/Textures/Mobs/Customization/vox_hair.rsi/vox_pony_s2.png b/Resources/Textures/Mobs/Customization/vox_hair.rsi/vox_pony_s2.png deleted file mode 100644 index 0858c19f05..0000000000 Binary files a/Resources/Textures/Mobs/Customization/vox_hair.rsi/vox_pony_s2.png and /dev/null differ diff --git a/Resources/Textures/Mobs/Customization/vox_hair.rsi/vox_rows_s.png b/Resources/Textures/Mobs/Customization/vox_hair.rsi/vox_rows_s.png deleted file mode 100644 index cee8b9a103..0000000000 Binary files a/Resources/Textures/Mobs/Customization/vox_hair.rsi/vox_rows_s.png and /dev/null differ diff --git a/Resources/Textures/Mobs/Customization/vox_hair.rsi/vox_rows_s2.png b/Resources/Textures/Mobs/Customization/vox_hair.rsi/vox_rows_s2.png deleted file mode 100644 index 0858c19f05..0000000000 Binary files a/Resources/Textures/Mobs/Customization/vox_hair.rsi/vox_rows_s2.png and /dev/null differ diff --git a/Resources/Textures/Mobs/Customization/vox_hair.rsi/vox_ruff_hawk_s.png b/Resources/Textures/Mobs/Customization/vox_hair.rsi/vox_ruff_hawk_s.png deleted file mode 100644 index 41c3cb6dec..0000000000 Binary files a/Resources/Textures/Mobs/Customization/vox_hair.rsi/vox_ruff_hawk_s.png and /dev/null differ diff --git a/Resources/Textures/Mobs/Customization/vox_hair.rsi/vox_ruff_hawk_s2.png b/Resources/Textures/Mobs/Customization/vox_hair.rsi/vox_ruff_hawk_s2.png deleted file mode 100644 index 0858c19f05..0000000000 Binary files a/Resources/Textures/Mobs/Customization/vox_hair.rsi/vox_ruff_hawk_s2.png and /dev/null differ diff --git a/Resources/Textures/Mobs/Customization/vox_hair.rsi/vox_shortquills_s.png b/Resources/Textures/Mobs/Customization/vox_hair.rsi/vox_shortquills_s.png deleted file mode 100644 index c83ef673a5..0000000000 Binary files a/Resources/Textures/Mobs/Customization/vox_hair.rsi/vox_shortquills_s.png and /dev/null differ diff --git a/Resources/Textures/Mobs/Customization/vox_hair.rsi/vox_shortquills_s2.png b/Resources/Textures/Mobs/Customization/vox_hair.rsi/vox_shortquills_s2.png deleted file mode 100644 index 0858c19f05..0000000000 Binary files a/Resources/Textures/Mobs/Customization/vox_hair.rsi/vox_shortquills_s2.png and /dev/null differ diff --git a/Resources/Textures/Mobs/Customization/vox_hair.rsi/vox_surf_s.png b/Resources/Textures/Mobs/Customization/vox_hair.rsi/vox_surf_s.png deleted file mode 100644 index df2191cacd..0000000000 Binary files a/Resources/Textures/Mobs/Customization/vox_hair.rsi/vox_surf_s.png and /dev/null differ diff --git a/Resources/Textures/Mobs/Customization/vox_hair.rsi/vox_surf_s2.png b/Resources/Textures/Mobs/Customization/vox_hair.rsi/vox_surf_s2.png deleted file mode 100644 index 0858c19f05..0000000000 Binary files a/Resources/Textures/Mobs/Customization/vox_hair.rsi/vox_surf_s2.png and /dev/null differ diff --git a/Resources/Textures/Mobs/Customization/vox_hair.rsi/vox_yasu_s.png b/Resources/Textures/Mobs/Customization/vox_hair.rsi/vox_yasu_s.png deleted file mode 100644 index 6461305e85..0000000000 Binary files a/Resources/Textures/Mobs/Customization/vox_hair.rsi/vox_yasu_s.png and /dev/null differ diff --git a/Resources/Textures/Mobs/Customization/vox_hair.rsi/vox_yasu_s2.png b/Resources/Textures/Mobs/Customization/vox_hair.rsi/vox_yasu_s2.png deleted file mode 100644 index 0858c19f05..0000000000 Binary files a/Resources/Textures/Mobs/Customization/vox_hair.rsi/vox_yasu_s2.png and /dev/null differ diff --git a/Resources/Textures/Mobs/Customization/vox_hair.rsi/yasu_s.png b/Resources/Textures/Mobs/Customization/vox_hair.rsi/yasu_s.png new file mode 100644 index 0000000000..6ee3de1dad Binary files /dev/null and b/Resources/Textures/Mobs/Customization/vox_hair.rsi/yasu_s.png differ diff --git a/Resources/Textures/Mobs/Customization/vox_parts.rsi/beak.png b/Resources/Textures/Mobs/Customization/vox_parts.rsi/beak.png new file mode 100644 index 0000000000..23744679b6 Binary files /dev/null and b/Resources/Textures/Mobs/Customization/vox_parts.rsi/beak.png differ diff --git a/Resources/Textures/Mobs/Customization/vox_parts.rsi/l_arm.png b/Resources/Textures/Mobs/Customization/vox_parts.rsi/l_arm.png new file mode 100644 index 0000000000..e35fb3c6bf Binary files /dev/null and b/Resources/Textures/Mobs/Customization/vox_parts.rsi/l_arm.png differ diff --git a/Resources/Textures/Mobs/Customization/vox_parts.rsi/l_foot.png b/Resources/Textures/Mobs/Customization/vox_parts.rsi/l_foot.png new file mode 100644 index 0000000000..5ab81e3616 Binary files /dev/null and b/Resources/Textures/Mobs/Customization/vox_parts.rsi/l_foot.png differ diff --git a/Resources/Textures/Mobs/Customization/vox_parts.rsi/l_hand.png b/Resources/Textures/Mobs/Customization/vox_parts.rsi/l_hand.png new file mode 100644 index 0000000000..660da8a5d1 Binary files /dev/null and b/Resources/Textures/Mobs/Customization/vox_parts.rsi/l_hand.png differ diff --git a/Resources/Textures/Mobs/Customization/vox_parts.rsi/l_leg.png b/Resources/Textures/Mobs/Customization/vox_parts.rsi/l_leg.png new file mode 100644 index 0000000000..1a81369838 Binary files /dev/null and b/Resources/Textures/Mobs/Customization/vox_parts.rsi/l_leg.png differ diff --git a/Resources/Textures/Mobs/Customization/vox_parts.rsi/meta.json b/Resources/Textures/Mobs/Customization/vox_parts.rsi/meta.json new file mode 100644 index 0000000000..fd5c14b6a3 --- /dev/null +++ b/Resources/Textures/Mobs/Customization/vox_parts.rsi/meta.json @@ -0,0 +1,55 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from https://github.com/vgstation-coders/vgstation13 at 02ff588d59b3c560c685d9ca75e882d32a72d8cb, modified by Bhijn, Errant and Flareguy", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "beak", + "directions": 4 + }, + { + "name": "l_arm", + "directions": 4 + }, + { + "name": "l_foot", + "directions": 4 + }, + { + "name": "l_hand", + "directions": 4 + }, + { + "name": "l_leg", + "directions": 4 + }, + { + "name": "r_arm", + "directions": 4 + }, + { + "name": "r_foot", + "directions": 4 + }, + { + "name": "r_hand", + "directions": 4 + }, + { + "name": "r_leg", + "directions": 4 + }, + { + "name": "tail", + "directions": 4 + }, + { + "name": "tail_stenciled", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/Mobs/Customization/vox_parts.rsi/r_arm.png b/Resources/Textures/Mobs/Customization/vox_parts.rsi/r_arm.png new file mode 100644 index 0000000000..c8c70752f4 Binary files /dev/null and b/Resources/Textures/Mobs/Customization/vox_parts.rsi/r_arm.png differ diff --git a/Resources/Textures/Mobs/Customization/vox_parts.rsi/r_foot.png b/Resources/Textures/Mobs/Customization/vox_parts.rsi/r_foot.png new file mode 100644 index 0000000000..58dbe90b09 Binary files /dev/null and b/Resources/Textures/Mobs/Customization/vox_parts.rsi/r_foot.png differ diff --git a/Resources/Textures/Mobs/Customization/vox_parts.rsi/r_hand.png b/Resources/Textures/Mobs/Customization/vox_parts.rsi/r_hand.png new file mode 100644 index 0000000000..e433456bf2 Binary files /dev/null and b/Resources/Textures/Mobs/Customization/vox_parts.rsi/r_hand.png differ diff --git a/Resources/Textures/Mobs/Customization/vox_parts.rsi/r_leg.png b/Resources/Textures/Mobs/Customization/vox_parts.rsi/r_leg.png new file mode 100644 index 0000000000..d616753129 Binary files /dev/null and b/Resources/Textures/Mobs/Customization/vox_parts.rsi/r_leg.png differ diff --git a/Resources/Textures/Mobs/Customization/vox_parts.rsi/tail.png b/Resources/Textures/Mobs/Customization/vox_parts.rsi/tail.png new file mode 100644 index 0000000000..0e63d3327b Binary files /dev/null and b/Resources/Textures/Mobs/Customization/vox_parts.rsi/tail.png differ diff --git a/Resources/Textures/Mobs/Customization/vox_parts.rsi/tail_stenciled.png b/Resources/Textures/Mobs/Customization/vox_parts.rsi/tail_stenciled.png new file mode 100644 index 0000000000..50627ac522 Binary files /dev/null and b/Resources/Textures/Mobs/Customization/vox_parts.rsi/tail_stenciled.png differ diff --git a/Resources/Textures/Mobs/Customization/vox_tattoos.rsi/heart_l_arm.png b/Resources/Textures/Mobs/Customization/vox_tattoos.rsi/heart_l_arm.png new file mode 100644 index 0000000000..0ff82bbaf2 Binary files /dev/null and b/Resources/Textures/Mobs/Customization/vox_tattoos.rsi/heart_l_arm.png differ diff --git a/Resources/Textures/Mobs/Customization/vox_tattoos.rsi/heart_r_arm.png b/Resources/Textures/Mobs/Customization/vox_tattoos.rsi/heart_r_arm.png new file mode 100644 index 0000000000..774c96692c Binary files /dev/null and b/Resources/Textures/Mobs/Customization/vox_tattoos.rsi/heart_r_arm.png differ diff --git a/Resources/Textures/Mobs/Customization/vox_tattoos.rsi/hive_s.png b/Resources/Textures/Mobs/Customization/vox_tattoos.rsi/hive_s.png new file mode 100644 index 0000000000..8361f55864 Binary files /dev/null and b/Resources/Textures/Mobs/Customization/vox_tattoos.rsi/hive_s.png differ diff --git a/Resources/Textures/Mobs/Customization/vox_tattoos.rsi/meta.json b/Resources/Textures/Mobs/Customization/vox_tattoos.rsi/meta.json new file mode 100644 index 0000000000..725fbb6a0d --- /dev/null +++ b/Resources/Textures/Mobs/Customization/vox_tattoos.rsi/meta.json @@ -0,0 +1,27 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from Paradise at https://github.com/ParadiseSS13/Paradise/blob/ef7a4d962915cb36b138eeb59663f0053d4906fe/icons/mob/sprite_accessories/vox/vox_body_markings.dmi and modified by Flareguy", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "heart_l_arm", + "directions": 4 + }, + { + "name": "heart_r_arm", + "directions": 4 + }, + { + "name": "hive_s", + "directions": 4 + }, + { + "name": "nightling_s", + "directions": 4 + } + ] +} \ No newline at end of file diff --git a/Resources/Textures/Mobs/Customization/vox_tattoos.rsi/nightling_s.png b/Resources/Textures/Mobs/Customization/vox_tattoos.rsi/nightling_s.png new file mode 100644 index 0000000000..72b0b30fd5 Binary files /dev/null and b/Resources/Textures/Mobs/Customization/vox_tattoos.rsi/nightling_s.png differ diff --git a/Resources/Textures/Mobs/Species/Vox/displacement.rsi/jumpsuit.png b/Resources/Textures/Mobs/Species/Vox/displacement.rsi/jumpsuit.png new file mode 100644 index 0000000000..2c938634eb Binary files /dev/null and b/Resources/Textures/Mobs/Species/Vox/displacement.rsi/jumpsuit.png differ diff --git a/Resources/Textures/Mobs/Species/Vox/displacement.rsi/meta.json b/Resources/Textures/Mobs/Species/Vox/displacement.rsi/meta.json new file mode 100644 index 0000000000..6ea6c552b9 --- /dev/null +++ b/Resources/Textures/Mobs/Species/Vox/displacement.rsi/meta.json @@ -0,0 +1,18 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Made by PJB3005", + "size": { + "x": 32, + "y": 32 + }, + "load": { + "srgb": false + }, + "states": [ + { + "name": "jumpsuit", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/Mobs/Species/Vox/parts.rsi/eyes.png b/Resources/Textures/Mobs/Species/Vox/parts.rsi/eyes.png new file mode 100644 index 0000000000..5069e90b53 Binary files /dev/null and b/Resources/Textures/Mobs/Species/Vox/parts.rsi/eyes.png differ diff --git a/Resources/Textures/Mobs/Species/Vox/parts.rsi/full.png b/Resources/Textures/Mobs/Species/Vox/parts.rsi/full.png new file mode 100644 index 0000000000..6338e4d112 Binary files /dev/null and b/Resources/Textures/Mobs/Species/Vox/parts.rsi/full.png differ diff --git a/Resources/Textures/Mobs/Species/Vox/parts.rsi/groin.png b/Resources/Textures/Mobs/Species/Vox/parts.rsi/groin.png new file mode 100644 index 0000000000..ec0dd8402e Binary files /dev/null and b/Resources/Textures/Mobs/Species/Vox/parts.rsi/groin.png differ diff --git a/Resources/Textures/Mobs/Species/Vox/parts.rsi/groin_f.png b/Resources/Textures/Mobs/Species/Vox/parts.rsi/groin_f.png deleted file mode 100644 index 15c0ed8d66..0000000000 Binary files a/Resources/Textures/Mobs/Species/Vox/parts.rsi/groin_f.png and /dev/null differ diff --git a/Resources/Textures/Mobs/Species/Vox/parts.rsi/groin_m.png b/Resources/Textures/Mobs/Species/Vox/parts.rsi/groin_m.png deleted file mode 100644 index 15c0ed8d66..0000000000 Binary files a/Resources/Textures/Mobs/Species/Vox/parts.rsi/groin_m.png and /dev/null differ diff --git a/Resources/Textures/Mobs/Species/Vox/parts.rsi/head.png b/Resources/Textures/Mobs/Species/Vox/parts.rsi/head.png new file mode 100644 index 0000000000..955e6c7b2a Binary files /dev/null and b/Resources/Textures/Mobs/Species/Vox/parts.rsi/head.png differ diff --git a/Resources/Textures/Mobs/Species/Vox/parts.rsi/head_f.png b/Resources/Textures/Mobs/Species/Vox/parts.rsi/head_f.png deleted file mode 100644 index 6d92de1b90..0000000000 Binary files a/Resources/Textures/Mobs/Species/Vox/parts.rsi/head_f.png and /dev/null differ diff --git a/Resources/Textures/Mobs/Species/Vox/parts.rsi/head_m.png b/Resources/Textures/Mobs/Species/Vox/parts.rsi/head_m.png deleted file mode 100644 index 6d92de1b90..0000000000 Binary files a/Resources/Textures/Mobs/Species/Vox/parts.rsi/head_m.png and /dev/null differ diff --git a/Resources/Textures/Mobs/Species/Vox/parts.rsi/l_arm.png b/Resources/Textures/Mobs/Species/Vox/parts.rsi/l_arm.png index bdd61871c5..258127dbae 100644 Binary files a/Resources/Textures/Mobs/Species/Vox/parts.rsi/l_arm.png and b/Resources/Textures/Mobs/Species/Vox/parts.rsi/l_arm.png differ diff --git a/Resources/Textures/Mobs/Species/Vox/parts.rsi/l_foot.png b/Resources/Textures/Mobs/Species/Vox/parts.rsi/l_foot.png index d12c19cf0c..3b81ae7059 100644 Binary files a/Resources/Textures/Mobs/Species/Vox/parts.rsi/l_foot.png and b/Resources/Textures/Mobs/Species/Vox/parts.rsi/l_foot.png differ diff --git a/Resources/Textures/Mobs/Species/Vox/parts.rsi/l_hand.png b/Resources/Textures/Mobs/Species/Vox/parts.rsi/l_hand.png index 0d1048e090..d321880c7b 100644 Binary files a/Resources/Textures/Mobs/Species/Vox/parts.rsi/l_hand.png and b/Resources/Textures/Mobs/Species/Vox/parts.rsi/l_hand.png differ diff --git a/Resources/Textures/Mobs/Species/Vox/parts.rsi/l_leg.png b/Resources/Textures/Mobs/Species/Vox/parts.rsi/l_leg.png index 20eebad860..918b343f98 100644 Binary files a/Resources/Textures/Mobs/Species/Vox/parts.rsi/l_leg.png and b/Resources/Textures/Mobs/Species/Vox/parts.rsi/l_leg.png differ diff --git a/Resources/Textures/Mobs/Species/Vox/parts.rsi/meta.json b/Resources/Textures/Mobs/Species/Vox/parts.rsi/meta.json index 1070da1203..4704e093b4 100644 --- a/Resources/Textures/Mobs/Species/Vox/parts.rsi/meta.json +++ b/Resources/Textures/Mobs/Species/Vox/parts.rsi/meta.json @@ -1,26 +1,25 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "Taken from https://github.com/vgstation-coders/vgstation13 at 02ff588d59b3c560c685d9ca75e882d32a72d8cb", + "copyright": "Taken from https://github.com/vgstation-coders/vgstation13 at 02ff588d59b3c560c685d9ca75e882d32a72d8cb, and modified by Bhijn, Errant and Flareguy", "size": { "x": 32, "y": 32 }, "states": [ { - "name": "groin_f", + "name": "eyes", "directions": 4 }, { - "name": "groin_m", - "directions": 4 + "name": "full" }, { - "name": "head_f", + "name": "groin", "directions": 4 }, { - "name": "head_m", + "name": "head", "directions": 4 }, { @@ -60,11 +59,7 @@ "directions": 4 }, { - "name": "torso_f", - "directions": 4 - }, - { - "name": "torso_m", + "name": "torso", "directions": 4 }, { diff --git a/Resources/Textures/Mobs/Species/Vox/parts.rsi/r_arm.png b/Resources/Textures/Mobs/Species/Vox/parts.rsi/r_arm.png index 0c1f703efd..766cd378ea 100644 Binary files a/Resources/Textures/Mobs/Species/Vox/parts.rsi/r_arm.png and b/Resources/Textures/Mobs/Species/Vox/parts.rsi/r_arm.png differ diff --git a/Resources/Textures/Mobs/Species/Vox/parts.rsi/r_foot.png b/Resources/Textures/Mobs/Species/Vox/parts.rsi/r_foot.png index 80d3a78759..2511bc5252 100644 Binary files a/Resources/Textures/Mobs/Species/Vox/parts.rsi/r_foot.png and b/Resources/Textures/Mobs/Species/Vox/parts.rsi/r_foot.png differ diff --git a/Resources/Textures/Mobs/Species/Vox/parts.rsi/r_hand.png b/Resources/Textures/Mobs/Species/Vox/parts.rsi/r_hand.png index d794c608bd..98f8b376a8 100644 Binary files a/Resources/Textures/Mobs/Species/Vox/parts.rsi/r_hand.png and b/Resources/Textures/Mobs/Species/Vox/parts.rsi/r_hand.png differ diff --git a/Resources/Textures/Mobs/Species/Vox/parts.rsi/r_leg.png b/Resources/Textures/Mobs/Species/Vox/parts.rsi/r_leg.png index 37417e2815..45b1ae82e7 100644 Binary files a/Resources/Textures/Mobs/Species/Vox/parts.rsi/r_leg.png and b/Resources/Textures/Mobs/Species/Vox/parts.rsi/r_leg.png differ diff --git a/Resources/Textures/Mobs/Species/Vox/parts.rsi/torso.png b/Resources/Textures/Mobs/Species/Vox/parts.rsi/torso.png new file mode 100644 index 0000000000..841d409735 Binary files /dev/null and b/Resources/Textures/Mobs/Species/Vox/parts.rsi/torso.png differ diff --git a/Resources/Textures/Mobs/Species/Vox/parts.rsi/torso_f.png b/Resources/Textures/Mobs/Species/Vox/parts.rsi/torso_f.png deleted file mode 100644 index 75bb51ed37..0000000000 Binary files a/Resources/Textures/Mobs/Species/Vox/parts.rsi/torso_f.png and /dev/null differ diff --git a/Resources/Textures/Mobs/Species/Vox/parts.rsi/torso_m.png b/Resources/Textures/Mobs/Species/Vox/parts.rsi/torso_m.png deleted file mode 100644 index 75bb51ed37..0000000000 Binary files a/Resources/Textures/Mobs/Species/Vox/parts.rsi/torso_m.png and /dev/null differ diff --git a/Resources/Textures/Mobs/Species/Vox/parts.rsi/vox_m.png b/Resources/Textures/Mobs/Species/Vox/parts.rsi/vox_m.png index 31f75a7996..8eead3c97b 100644 Binary files a/Resources/Textures/Mobs/Species/Vox/parts.rsi/vox_m.png and b/Resources/Textures/Mobs/Species/Vox/parts.rsi/vox_m.png differ diff --git a/Resources/Textures/Nyanotrasen/Objects/Materials/materials.rsi/meta.json b/Resources/Textures/Nyanotrasen/Objects/Materials/materials.rsi/meta.json deleted file mode 100644 index 87a4078ff7..0000000000 --- a/Resources/Textures/Nyanotrasen/Objects/Materials/materials.rsi/meta.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "version": 1, - "license": "CC-BY-SA-3.0", - "copyright": "Taken from tgstation at https://github.com/tgstation/tgstation/commit/f8f4aeda930fcd0805ca4cc76d9bc9412a5b3428", - "size": { - "x": 32, - "y": 32 - }, - "states": [ - { - "name": "bluespace" - }, - { - "name": "bluespace_2" - }, - { - "name": "bluespace_3" - } - ] -} diff --git a/Resources/Textures/Objects/Consumable/Drinks/budgetinsulsdrink.rsi/fill-1.png b/Resources/Textures/Objects/Consumable/Drinks/budgetinsulsdrink.rsi/fill-1.png new file mode 100644 index 0000000000..aca8f4931d Binary files /dev/null and b/Resources/Textures/Objects/Consumable/Drinks/budgetinsulsdrink.rsi/fill-1.png differ diff --git a/Resources/Textures/Objects/Consumable/Drinks/budgetinsulsdrink.rsi/fill-2.png b/Resources/Textures/Objects/Consumable/Drinks/budgetinsulsdrink.rsi/fill-2.png new file mode 100644 index 0000000000..4715162ebe Binary files /dev/null and b/Resources/Textures/Objects/Consumable/Drinks/budgetinsulsdrink.rsi/fill-2.png differ diff --git a/Resources/Textures/Objects/Consumable/Drinks/budgetinsulsdrink.rsi/fill-3.png b/Resources/Textures/Objects/Consumable/Drinks/budgetinsulsdrink.rsi/fill-3.png new file mode 100644 index 0000000000..04bfd58d03 Binary files /dev/null and b/Resources/Textures/Objects/Consumable/Drinks/budgetinsulsdrink.rsi/fill-3.png differ diff --git a/Resources/Textures/Objects/Consumable/Drinks/budgetinsulsdrink.rsi/icon.png b/Resources/Textures/Objects/Consumable/Drinks/budgetinsulsdrink.rsi/icon.png new file mode 100644 index 0000000000..04bfd58d03 Binary files /dev/null and b/Resources/Textures/Objects/Consumable/Drinks/budgetinsulsdrink.rsi/icon.png differ diff --git a/Resources/Textures/Objects/Consumable/Drinks/budgetinsulsdrink.rsi/icon_empty.png b/Resources/Textures/Objects/Consumable/Drinks/budgetinsulsdrink.rsi/icon_empty.png new file mode 100644 index 0000000000..4d446abc54 Binary files /dev/null and b/Resources/Textures/Objects/Consumable/Drinks/budgetinsulsdrink.rsi/icon_empty.png differ diff --git a/Resources/Textures/Objects/Consumable/Drinks/budgetinsulsdrink.rsi/meta.json b/Resources/Textures/Objects/Consumable/Drinks/budgetinsulsdrink.rsi/meta.json new file mode 100644 index 0000000000..14c43f186f --- /dev/null +++ b/Resources/Textures/Objects/Consumable/Drinks/budgetinsulsdrink.rsi/meta.json @@ -0,0 +1,28 @@ +{ + "version": 1, + "size": + { + "x": 32, + "y": 32 + }, + "license": "CC-BY-SA-3.0", + "copyright": "Glass and fillstates by Hanzdegloker on Github.", + "states": + [ + { + "name": "icon" + }, + { + "name": "icon_empty" + }, + { + "name": "fill-1" + }, + { + "name": "fill-2" + }, + { + "name": "fill-3" + } + ] +} diff --git a/Resources/Textures/Objects/Consumable/Drinks/coffeeglass.rsi/fill-1.png b/Resources/Textures/Objects/Consumable/Drinks/coffeeglass.rsi/fill-1.png new file mode 100644 index 0000000000..e4e832ce8d Binary files /dev/null and b/Resources/Textures/Objects/Consumable/Drinks/coffeeglass.rsi/fill-1.png differ diff --git a/Resources/Textures/Objects/Consumable/Drinks/coffeeglass.rsi/fill-2.png b/Resources/Textures/Objects/Consumable/Drinks/coffeeglass.rsi/fill-2.png new file mode 100644 index 0000000000..c778f3c428 Binary files /dev/null and b/Resources/Textures/Objects/Consumable/Drinks/coffeeglass.rsi/fill-2.png differ diff --git a/Resources/Textures/Objects/Consumable/Drinks/coffeeglass.rsi/fill-3.png b/Resources/Textures/Objects/Consumable/Drinks/coffeeglass.rsi/fill-3.png new file mode 100644 index 0000000000..480528bc96 Binary files /dev/null and b/Resources/Textures/Objects/Consumable/Drinks/coffeeglass.rsi/fill-3.png differ diff --git a/Resources/Textures/Objects/Consumable/Drinks/coffeeglass.rsi/fill-4.png b/Resources/Textures/Objects/Consumable/Drinks/coffeeglass.rsi/fill-4.png new file mode 100644 index 0000000000..da13e68139 Binary files /dev/null and b/Resources/Textures/Objects/Consumable/Drinks/coffeeglass.rsi/fill-4.png differ diff --git a/Resources/Textures/Objects/Consumable/Drinks/coffeeglass.rsi/icon.png b/Resources/Textures/Objects/Consumable/Drinks/coffeeglass.rsi/icon.png new file mode 100644 index 0000000000..08de309039 Binary files /dev/null and b/Resources/Textures/Objects/Consumable/Drinks/coffeeglass.rsi/icon.png differ diff --git a/Resources/Textures/Objects/Consumable/Drinks/coffeeglass.rsi/icon_empty.png b/Resources/Textures/Objects/Consumable/Drinks/coffeeglass.rsi/icon_empty.png new file mode 100644 index 0000000000..d46a00edd0 Binary files /dev/null and b/Resources/Textures/Objects/Consumable/Drinks/coffeeglass.rsi/icon_empty.png differ diff --git a/Resources/Textures/Objects/Consumable/Drinks/coffeeglass.rsi/meta.json b/Resources/Textures/Objects/Consumable/Drinks/coffeeglass.rsi/meta.json new file mode 100644 index 0000000000..32c5e0342d --- /dev/null +++ b/Resources/Textures/Objects/Consumable/Drinks/coffeeglass.rsi/meta.json @@ -0,0 +1,29 @@ +{ + "version": 1, + "size": { + "x": 32, + "y": 32 + }, + "license": "CC-BY-SA-3.0", + "copyright": "Made by borkroman. Fill levels by RumiTiger", + "states": [ + { + "name": "icon" + }, + { + "name": "icon_empty" + }, + { + "name": "fill-1" + }, + { + "name": "fill-2" + }, + { + "name": "fill-3" + }, + { + "name": "fill-4" + } + ] +} diff --git a/Resources/Textures/Objects/Consumable/Drinks/colaglass.rsi/fill-1.png b/Resources/Textures/Objects/Consumable/Drinks/colaglass.rsi/fill-1.png new file mode 100644 index 0000000000..a36d304a4d Binary files /dev/null and b/Resources/Textures/Objects/Consumable/Drinks/colaglass.rsi/fill-1.png differ diff --git a/Resources/Textures/Objects/Consumable/Drinks/colaglass.rsi/fill-2.png b/Resources/Textures/Objects/Consumable/Drinks/colaglass.rsi/fill-2.png new file mode 100644 index 0000000000..6351e9f3dd Binary files /dev/null and b/Resources/Textures/Objects/Consumable/Drinks/colaglass.rsi/fill-2.png differ diff --git a/Resources/Textures/Objects/Consumable/Drinks/colaglass.rsi/fill-3.png b/Resources/Textures/Objects/Consumable/Drinks/colaglass.rsi/fill-3.png new file mode 100644 index 0000000000..bb7bee49d0 Binary files /dev/null and b/Resources/Textures/Objects/Consumable/Drinks/colaglass.rsi/fill-3.png differ diff --git a/Resources/Textures/Objects/Consumable/Drinks/colaglass.rsi/fill-4.png b/Resources/Textures/Objects/Consumable/Drinks/colaglass.rsi/fill-4.png new file mode 100644 index 0000000000..1808bdbd04 Binary files /dev/null and b/Resources/Textures/Objects/Consumable/Drinks/colaglass.rsi/fill-4.png differ diff --git a/Resources/Textures/Objects/Consumable/Drinks/colaglass.rsi/fill-5.png b/Resources/Textures/Objects/Consumable/Drinks/colaglass.rsi/fill-5.png new file mode 100644 index 0000000000..734126d866 Binary files /dev/null and b/Resources/Textures/Objects/Consumable/Drinks/colaglass.rsi/fill-5.png differ diff --git a/Resources/Textures/Objects/Consumable/Drinks/colaglass.rsi/icon.png b/Resources/Textures/Objects/Consumable/Drinks/colaglass.rsi/icon.png new file mode 100644 index 0000000000..2894625a2e Binary files /dev/null and b/Resources/Textures/Objects/Consumable/Drinks/colaglass.rsi/icon.png differ diff --git a/Resources/Textures/Objects/Consumable/Drinks/colaglass.rsi/icon_empty.png b/Resources/Textures/Objects/Consumable/Drinks/colaglass.rsi/icon_empty.png new file mode 100644 index 0000000000..b20279f8f1 Binary files /dev/null and b/Resources/Textures/Objects/Consumable/Drinks/colaglass.rsi/icon_empty.png differ diff --git a/Resources/Textures/Objects/Consumable/Drinks/colaglass.rsi/meta.json b/Resources/Textures/Objects/Consumable/Drinks/colaglass.rsi/meta.json new file mode 100644 index 0000000000..ec55ebfa1f --- /dev/null +++ b/Resources/Textures/Objects/Consumable/Drinks/colaglass.rsi/meta.json @@ -0,0 +1,32 @@ +{ + "version": 1, + "size": { + "x": 32, + "y": 32 + }, + "license": "CC-BY-SA-3.0", + "copyright": "Made by RumiTiger", + "states": [ + { + "name": "icon" + }, + { + "name": "icon_empty" + }, + { + "name": "fill-1" + }, + { + "name": "fill-2" + }, + { + "name": "fill-3" + }, + { + "name": "fill-4" + }, + { + "name": "fill-5" + } + ] +} diff --git a/Resources/Textures/Objects/Consumable/Drinks/dr_gibb_glass.rsi/fill-1.png b/Resources/Textures/Objects/Consumable/Drinks/dr_gibb_glass.rsi/fill-1.png new file mode 100644 index 0000000000..68731e8fcb Binary files /dev/null and b/Resources/Textures/Objects/Consumable/Drinks/dr_gibb_glass.rsi/fill-1.png differ diff --git a/Resources/Textures/Objects/Consumable/Drinks/dr_gibb_glass.rsi/fill-2.png b/Resources/Textures/Objects/Consumable/Drinks/dr_gibb_glass.rsi/fill-2.png new file mode 100644 index 0000000000..716aebbb83 Binary files /dev/null and b/Resources/Textures/Objects/Consumable/Drinks/dr_gibb_glass.rsi/fill-2.png differ diff --git a/Resources/Textures/Objects/Consumable/Drinks/dr_gibb_glass.rsi/fill-3.png b/Resources/Textures/Objects/Consumable/Drinks/dr_gibb_glass.rsi/fill-3.png new file mode 100644 index 0000000000..74f54a4c83 Binary files /dev/null and b/Resources/Textures/Objects/Consumable/Drinks/dr_gibb_glass.rsi/fill-3.png differ diff --git a/Resources/Textures/Objects/Consumable/Drinks/dr_gibb_glass.rsi/fill-4.png b/Resources/Textures/Objects/Consumable/Drinks/dr_gibb_glass.rsi/fill-4.png new file mode 100644 index 0000000000..da44083964 Binary files /dev/null and b/Resources/Textures/Objects/Consumable/Drinks/dr_gibb_glass.rsi/fill-4.png differ diff --git a/Resources/Textures/Objects/Consumable/Drinks/dr_gibb_glass.rsi/fill-5.png b/Resources/Textures/Objects/Consumable/Drinks/dr_gibb_glass.rsi/fill-5.png new file mode 100644 index 0000000000..db2b9315bf Binary files /dev/null and b/Resources/Textures/Objects/Consumable/Drinks/dr_gibb_glass.rsi/fill-5.png differ diff --git a/Resources/Textures/Objects/Consumable/Drinks/dr_gibb_glass.rsi/icon.png b/Resources/Textures/Objects/Consumable/Drinks/dr_gibb_glass.rsi/icon.png index 620cf5ea01..6a68486662 100644 Binary files a/Resources/Textures/Objects/Consumable/Drinks/dr_gibb_glass.rsi/icon.png and b/Resources/Textures/Objects/Consumable/Drinks/dr_gibb_glass.rsi/icon.png differ diff --git a/Resources/Textures/Objects/Consumable/Drinks/dr_gibb_glass.rsi/icon_empty.png b/Resources/Textures/Objects/Consumable/Drinks/dr_gibb_glass.rsi/icon_empty.png new file mode 100644 index 0000000000..af2dcb404c Binary files /dev/null and b/Resources/Textures/Objects/Consumable/Drinks/dr_gibb_glass.rsi/icon_empty.png differ diff --git a/Resources/Textures/Objects/Consumable/Drinks/dr_gibb_glass.rsi/meta.json b/Resources/Textures/Objects/Consumable/Drinks/dr_gibb_glass.rsi/meta.json index db0ac608ed..ec55ebfa1f 100644 --- a/Resources/Textures/Objects/Consumable/Drinks/dr_gibb_glass.rsi/meta.json +++ b/Resources/Textures/Objects/Consumable/Drinks/dr_gibb_glass.rsi/meta.json @@ -1 +1,32 @@ -{"version": 1, "size": {"x": 32, "y": 32}, "license": "CC-BY-SA-3.0", "copyright": "https://github.com/discordia-space/CEV-Eris/raw/f7aa28fd4b4d0386c3393d829681ebca526f1d2d/icons/obj/drinks.dmi", "states": [{"name": "icon"}]} \ No newline at end of file +{ + "version": 1, + "size": { + "x": 32, + "y": 32 + }, + "license": "CC-BY-SA-3.0", + "copyright": "Made by RumiTiger", + "states": [ + { + "name": "icon" + }, + { + "name": "icon_empty" + }, + { + "name": "fill-1" + }, + { + "name": "fill-2" + }, + { + "name": "fill-3" + }, + { + "name": "fill-4" + }, + { + "name": "fill-5" + } + ] +} diff --git a/Resources/Textures/Objects/Consumable/Drinks/energy_drink.rsi/icon.png b/Resources/Textures/Objects/Consumable/Drinks/energy_drink.rsi/icon.png index 7a577d477c..e9e2aea716 100644 Binary files a/Resources/Textures/Objects/Consumable/Drinks/energy_drink.rsi/icon.png and b/Resources/Textures/Objects/Consumable/Drinks/energy_drink.rsi/icon.png differ diff --git a/Resources/Textures/Objects/Consumable/Drinks/energy_drink.rsi/icon_open.png b/Resources/Textures/Objects/Consumable/Drinks/energy_drink.rsi/icon_open.png index b26d37e377..44688ef3e9 100644 Binary files a/Resources/Textures/Objects/Consumable/Drinks/energy_drink.rsi/icon_open.png and b/Resources/Textures/Objects/Consumable/Drinks/energy_drink.rsi/icon_open.png differ diff --git a/Resources/Textures/Objects/Consumable/Drinks/greenteaglass.rsi/fill-1.png b/Resources/Textures/Objects/Consumable/Drinks/greenteaglass.rsi/fill-1.png new file mode 100644 index 0000000000..613efd1171 Binary files /dev/null and b/Resources/Textures/Objects/Consumable/Drinks/greenteaglass.rsi/fill-1.png differ diff --git a/Resources/Textures/Objects/Consumable/Drinks/greenteaglass.rsi/fill-2.png b/Resources/Textures/Objects/Consumable/Drinks/greenteaglass.rsi/fill-2.png new file mode 100644 index 0000000000..785703f4df Binary files /dev/null and b/Resources/Textures/Objects/Consumable/Drinks/greenteaglass.rsi/fill-2.png differ diff --git a/Resources/Textures/Objects/Consumable/Drinks/greenteaglass.rsi/fill-3.png b/Resources/Textures/Objects/Consumable/Drinks/greenteaglass.rsi/fill-3.png new file mode 100644 index 0000000000..1f482c8df9 Binary files /dev/null and b/Resources/Textures/Objects/Consumable/Drinks/greenteaglass.rsi/fill-3.png differ diff --git a/Resources/Textures/Objects/Consumable/Drinks/greenteaglass.rsi/fill-4.png b/Resources/Textures/Objects/Consumable/Drinks/greenteaglass.rsi/fill-4.png new file mode 100644 index 0000000000..99c7dffa36 Binary files /dev/null and b/Resources/Textures/Objects/Consumable/Drinks/greenteaglass.rsi/fill-4.png differ diff --git a/Resources/Textures/Objects/Consumable/Drinks/greenteaglass.rsi/icon.png b/Resources/Textures/Objects/Consumable/Drinks/greenteaglass.rsi/icon.png new file mode 100644 index 0000000000..9c77c673ff Binary files /dev/null and b/Resources/Textures/Objects/Consumable/Drinks/greenteaglass.rsi/icon.png differ diff --git a/Resources/Textures/Objects/Consumable/Drinks/greenteaglass.rsi/icon_empty.png b/Resources/Textures/Objects/Consumable/Drinks/greenteaglass.rsi/icon_empty.png new file mode 100644 index 0000000000..71eb435183 Binary files /dev/null and b/Resources/Textures/Objects/Consumable/Drinks/greenteaglass.rsi/icon_empty.png differ diff --git a/Resources/Textures/Objects/Consumable/Drinks/greenteaglass.rsi/meta.json b/Resources/Textures/Objects/Consumable/Drinks/greenteaglass.rsi/meta.json new file mode 100644 index 0000000000..32c5e0342d --- /dev/null +++ b/Resources/Textures/Objects/Consumable/Drinks/greenteaglass.rsi/meta.json @@ -0,0 +1,29 @@ +{ + "version": 1, + "size": { + "x": 32, + "y": 32 + }, + "license": "CC-BY-SA-3.0", + "copyright": "Made by borkroman. Fill levels by RumiTiger", + "states": [ + { + "name": "icon" + }, + { + "name": "icon_empty" + }, + { + "name": "fill-1" + }, + { + "name": "fill-2" + }, + { + "name": "fill-3" + }, + { + "name": "fill-4" + } + ] +} diff --git a/Resources/Textures/Objects/Consumable/Drinks/icebucket.rsi/icon.png b/Resources/Textures/Objects/Consumable/Drinks/icebucket.rsi/icon.png new file mode 100644 index 0000000000..228d098060 Binary files /dev/null and b/Resources/Textures/Objects/Consumable/Drinks/icebucket.rsi/icon.png differ diff --git a/Resources/Textures/Objects/Consumable/Drinks/icebucket.rsi/meta.json b/Resources/Textures/Objects/Consumable/Drinks/icebucket.rsi/meta.json new file mode 100644 index 0000000000..f55a85dc26 --- /dev/null +++ b/Resources/Textures/Objects/Consumable/Drinks/icebucket.rsi/meta.json @@ -0,0 +1,14 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Made by Dezzzix; Discord: dezzzix", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + } + ] + } diff --git a/Resources/Textures/Objects/Consumable/Drinks/icedgreenteaglass.rsi/fill-1.png b/Resources/Textures/Objects/Consumable/Drinks/icedgreenteaglass.rsi/fill-1.png new file mode 100644 index 0000000000..2d217ef147 Binary files /dev/null and b/Resources/Textures/Objects/Consumable/Drinks/icedgreenteaglass.rsi/fill-1.png differ diff --git a/Resources/Textures/Objects/Consumable/Drinks/icedgreenteaglass.rsi/fill-2.png b/Resources/Textures/Objects/Consumable/Drinks/icedgreenteaglass.rsi/fill-2.png new file mode 100644 index 0000000000..d8ca5b63af Binary files /dev/null and b/Resources/Textures/Objects/Consumable/Drinks/icedgreenteaglass.rsi/fill-2.png differ diff --git a/Resources/Textures/Objects/Consumable/Drinks/icedgreenteaglass.rsi/fill-3.png b/Resources/Textures/Objects/Consumable/Drinks/icedgreenteaglass.rsi/fill-3.png new file mode 100644 index 0000000000..a65df2aaed Binary files /dev/null and b/Resources/Textures/Objects/Consumable/Drinks/icedgreenteaglass.rsi/fill-3.png differ diff --git a/Resources/Textures/Objects/Consumable/Drinks/icedgreenteaglass.rsi/fill-4.png b/Resources/Textures/Objects/Consumable/Drinks/icedgreenteaglass.rsi/fill-4.png new file mode 100644 index 0000000000..3ae28ff68f Binary files /dev/null and b/Resources/Textures/Objects/Consumable/Drinks/icedgreenteaglass.rsi/fill-4.png differ diff --git a/Resources/Textures/Objects/Consumable/Drinks/icedgreenteaglass.rsi/fill-5.png b/Resources/Textures/Objects/Consumable/Drinks/icedgreenteaglass.rsi/fill-5.png new file mode 100644 index 0000000000..72c2f4cecf Binary files /dev/null and b/Resources/Textures/Objects/Consumable/Drinks/icedgreenteaglass.rsi/fill-5.png differ diff --git a/Resources/Textures/Objects/Consumable/Drinks/icedgreenteaglass.rsi/icon.png b/Resources/Textures/Objects/Consumable/Drinks/icedgreenteaglass.rsi/icon.png new file mode 100644 index 0000000000..999834b142 Binary files /dev/null and b/Resources/Textures/Objects/Consumable/Drinks/icedgreenteaglass.rsi/icon.png differ diff --git a/Resources/Textures/Objects/Consumable/Drinks/icedgreenteaglass.rsi/icon_empty.png b/Resources/Textures/Objects/Consumable/Drinks/icedgreenteaglass.rsi/icon_empty.png new file mode 100644 index 0000000000..e10df8d172 Binary files /dev/null and b/Resources/Textures/Objects/Consumable/Drinks/icedgreenteaglass.rsi/icon_empty.png differ diff --git a/Resources/Textures/Objects/Consumable/Drinks/icedgreenteaglass.rsi/meta.json b/Resources/Textures/Objects/Consumable/Drinks/icedgreenteaglass.rsi/meta.json new file mode 100644 index 0000000000..ec55ebfa1f --- /dev/null +++ b/Resources/Textures/Objects/Consumable/Drinks/icedgreenteaglass.rsi/meta.json @@ -0,0 +1,32 @@ +{ + "version": 1, + "size": { + "x": 32, + "y": 32 + }, + "license": "CC-BY-SA-3.0", + "copyright": "Made by RumiTiger", + "states": [ + { + "name": "icon" + }, + { + "name": "icon_empty" + }, + { + "name": "fill-1" + }, + { + "name": "fill-2" + }, + { + "name": "fill-3" + }, + { + "name": "fill-4" + }, + { + "name": "fill-5" + } + ] +} diff --git a/Resources/Textures/Objects/Consumable/Drinks/iceglass.rsi/fill-1.png b/Resources/Textures/Objects/Consumable/Drinks/iceglass.rsi/fill-1.png new file mode 100644 index 0000000000..04c8198fc9 Binary files /dev/null and b/Resources/Textures/Objects/Consumable/Drinks/iceglass.rsi/fill-1.png differ diff --git a/Resources/Textures/Objects/Consumable/Drinks/iceglass.rsi/fill-2.png b/Resources/Textures/Objects/Consumable/Drinks/iceglass.rsi/fill-2.png new file mode 100644 index 0000000000..367a9e178b Binary files /dev/null and b/Resources/Textures/Objects/Consumable/Drinks/iceglass.rsi/fill-2.png differ diff --git a/Resources/Textures/Objects/Consumable/Drinks/iceglass.rsi/fill-3.png b/Resources/Textures/Objects/Consumable/Drinks/iceglass.rsi/fill-3.png new file mode 100644 index 0000000000..02022cd03b Binary files /dev/null and b/Resources/Textures/Objects/Consumable/Drinks/iceglass.rsi/fill-3.png differ diff --git a/Resources/Textures/Objects/Consumable/Drinks/iceglass.rsi/icon.png b/Resources/Textures/Objects/Consumable/Drinks/iceglass.rsi/icon.png index 61f63fd057..96807c9a5d 100644 Binary files a/Resources/Textures/Objects/Consumable/Drinks/iceglass.rsi/icon.png and b/Resources/Textures/Objects/Consumable/Drinks/iceglass.rsi/icon.png differ diff --git a/Resources/Textures/Objects/Consumable/Drinks/iceglass.rsi/icon_empty.png b/Resources/Textures/Objects/Consumable/Drinks/iceglass.rsi/icon_empty.png new file mode 100644 index 0000000000..5d1f677b89 Binary files /dev/null and b/Resources/Textures/Objects/Consumable/Drinks/iceglass.rsi/icon_empty.png differ diff --git a/Resources/Textures/Objects/Consumable/Drinks/iceglass.rsi/meta.json b/Resources/Textures/Objects/Consumable/Drinks/iceglass.rsi/meta.json index db0ac608ed..bdfdb18a0d 100644 --- a/Resources/Textures/Objects/Consumable/Drinks/iceglass.rsi/meta.json +++ b/Resources/Textures/Objects/Consumable/Drinks/iceglass.rsi/meta.json @@ -1 +1,26 @@ -{"version": 1, "size": {"x": 32, "y": 32}, "license": "CC-BY-SA-3.0", "copyright": "https://github.com/discordia-space/CEV-Eris/raw/f7aa28fd4b4d0386c3393d829681ebca526f1d2d/icons/obj/drinks.dmi", "states": [{"name": "icon"}]} \ No newline at end of file +{ + "version": 1, + "size": { + "x": 32, + "y": 32 + }, + "license": "CC-BY-SA-3.0", + "copyright": "Made by borkroman. Fill levels by RumiTiger", + "states": [ + { + "name": "icon" + }, + { + "name": "icon_empty" + }, + { + "name": "fill-1" + }, + { + "name": "fill-2" + }, + { + "name": "fill-3" + } + ] +} diff --git a/Resources/Textures/Objects/Consumable/Drinks/jigger.rsi/icon.png b/Resources/Textures/Objects/Consumable/Drinks/jigger.rsi/icon.png new file mode 100644 index 0000000000..6c65ca0202 Binary files /dev/null and b/Resources/Textures/Objects/Consumable/Drinks/jigger.rsi/icon.png differ diff --git a/Resources/Textures/Objects/Consumable/Drinks/jigger.rsi/meta.json b/Resources/Textures/Objects/Consumable/Drinks/jigger.rsi/meta.json new file mode 100644 index 0000000000..f55a85dc26 --- /dev/null +++ b/Resources/Textures/Objects/Consumable/Drinks/jigger.rsi/meta.json @@ -0,0 +1,14 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Made by Dezzzix; Discord: dezzzix", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + } + ] + } diff --git a/Resources/Textures/Objects/Consumable/Drinks/lemonjuiceglass.rsi/fill-1.png b/Resources/Textures/Objects/Consumable/Drinks/lemonjuiceglass.rsi/fill-1.png new file mode 100644 index 0000000000..4888127187 Binary files /dev/null and b/Resources/Textures/Objects/Consumable/Drinks/lemonjuiceglass.rsi/fill-1.png differ diff --git a/Resources/Textures/Objects/Consumable/Drinks/lemonjuiceglass.rsi/fill-2.png b/Resources/Textures/Objects/Consumable/Drinks/lemonjuiceglass.rsi/fill-2.png new file mode 100644 index 0000000000..081ad92014 Binary files /dev/null and b/Resources/Textures/Objects/Consumable/Drinks/lemonjuiceglass.rsi/fill-2.png differ diff --git a/Resources/Textures/Objects/Consumable/Drinks/lemonjuiceglass.rsi/fill-3.png b/Resources/Textures/Objects/Consumable/Drinks/lemonjuiceglass.rsi/fill-3.png new file mode 100644 index 0000000000..97a8f2c29b Binary files /dev/null and b/Resources/Textures/Objects/Consumable/Drinks/lemonjuiceglass.rsi/fill-3.png differ diff --git a/Resources/Textures/Objects/Consumable/Drinks/lemonjuiceglass.rsi/fill-4.png b/Resources/Textures/Objects/Consumable/Drinks/lemonjuiceglass.rsi/fill-4.png new file mode 100644 index 0000000000..5b8af69ec8 Binary files /dev/null and b/Resources/Textures/Objects/Consumable/Drinks/lemonjuiceglass.rsi/fill-4.png differ diff --git a/Resources/Textures/Objects/Consumable/Drinks/lemonjuiceglass.rsi/fill-5.png b/Resources/Textures/Objects/Consumable/Drinks/lemonjuiceglass.rsi/fill-5.png new file mode 100644 index 0000000000..9b2bc6a3f7 Binary files /dev/null and b/Resources/Textures/Objects/Consumable/Drinks/lemonjuiceglass.rsi/fill-5.png differ diff --git a/Resources/Textures/Objects/Consumable/Drinks/lemonjuiceglass.rsi/icon.png b/Resources/Textures/Objects/Consumable/Drinks/lemonjuiceglass.rsi/icon.png new file mode 100644 index 0000000000..9ee1bdd517 Binary files /dev/null and b/Resources/Textures/Objects/Consumable/Drinks/lemonjuiceglass.rsi/icon.png differ diff --git a/Resources/Textures/Objects/Consumable/Drinks/lemonjuiceglass.rsi/icon_empty.png b/Resources/Textures/Objects/Consumable/Drinks/lemonjuiceglass.rsi/icon_empty.png new file mode 100644 index 0000000000..abbdd77b27 Binary files /dev/null and b/Resources/Textures/Objects/Consumable/Drinks/lemonjuiceglass.rsi/icon_empty.png differ diff --git a/Resources/Textures/Objects/Consumable/Drinks/lemonjuiceglass.rsi/meta.json b/Resources/Textures/Objects/Consumable/Drinks/lemonjuiceglass.rsi/meta.json new file mode 100644 index 0000000000..ec55ebfa1f --- /dev/null +++ b/Resources/Textures/Objects/Consumable/Drinks/lemonjuiceglass.rsi/meta.json @@ -0,0 +1,32 @@ +{ + "version": 1, + "size": { + "x": 32, + "y": 32 + }, + "license": "CC-BY-SA-3.0", + "copyright": "Made by RumiTiger", + "states": [ + { + "name": "icon" + }, + { + "name": "icon_empty" + }, + { + "name": "fill-1" + }, + { + "name": "fill-2" + }, + { + "name": "fill-3" + }, + { + "name": "fill-4" + }, + { + "name": "fill-5" + } + ] +} diff --git a/Resources/Textures/Objects/Consumable/Drinks/moonshineglass.rsi/fill-1.png b/Resources/Textures/Objects/Consumable/Drinks/moonshineglass.rsi/fill-1.png new file mode 100644 index 0000000000..824ffcf3d6 Binary files /dev/null and b/Resources/Textures/Objects/Consumable/Drinks/moonshineglass.rsi/fill-1.png differ diff --git a/Resources/Textures/Objects/Consumable/Drinks/moonshineglass.rsi/fill-2.png b/Resources/Textures/Objects/Consumable/Drinks/moonshineglass.rsi/fill-2.png new file mode 100644 index 0000000000..5159ff3671 Binary files /dev/null and b/Resources/Textures/Objects/Consumable/Drinks/moonshineglass.rsi/fill-2.png differ diff --git a/Resources/Textures/Objects/Consumable/Drinks/moonshineglass.rsi/fill-3.png b/Resources/Textures/Objects/Consumable/Drinks/moonshineglass.rsi/fill-3.png new file mode 100644 index 0000000000..6d2115a95a Binary files /dev/null and b/Resources/Textures/Objects/Consumable/Drinks/moonshineglass.rsi/fill-3.png differ diff --git a/Resources/Textures/Objects/Consumable/Drinks/moonshineglass.rsi/fill-4.png b/Resources/Textures/Objects/Consumable/Drinks/moonshineglass.rsi/fill-4.png new file mode 100644 index 0000000000..90ca019493 Binary files /dev/null and b/Resources/Textures/Objects/Consumable/Drinks/moonshineglass.rsi/fill-4.png differ diff --git a/Resources/Textures/Objects/Consumable/Drinks/moonshineglass.rsi/fill-5.png b/Resources/Textures/Objects/Consumable/Drinks/moonshineglass.rsi/fill-5.png new file mode 100644 index 0000000000..c50860e4d0 Binary files /dev/null and b/Resources/Textures/Objects/Consumable/Drinks/moonshineglass.rsi/fill-5.png differ diff --git a/Resources/Textures/Objects/Consumable/Drinks/moonshineglass.rsi/fill-6.png b/Resources/Textures/Objects/Consumable/Drinks/moonshineglass.rsi/fill-6.png new file mode 100644 index 0000000000..1488e2b629 Binary files /dev/null and b/Resources/Textures/Objects/Consumable/Drinks/moonshineglass.rsi/fill-6.png differ diff --git a/Resources/Textures/Objects/Consumable/Drinks/moonshineglass.rsi/icon.png b/Resources/Textures/Objects/Consumable/Drinks/moonshineglass.rsi/icon.png new file mode 100644 index 0000000000..5fa26544fd Binary files /dev/null and b/Resources/Textures/Objects/Consumable/Drinks/moonshineglass.rsi/icon.png differ diff --git a/Resources/Textures/Objects/Consumable/Drinks/moonshineglass.rsi/icon_empty.png b/Resources/Textures/Objects/Consumable/Drinks/moonshineglass.rsi/icon_empty.png new file mode 100644 index 0000000000..673679cb4a Binary files /dev/null and b/Resources/Textures/Objects/Consumable/Drinks/moonshineglass.rsi/icon_empty.png differ diff --git a/Resources/Textures/Objects/Consumable/Drinks/moonshineglass.rsi/meta.json b/Resources/Textures/Objects/Consumable/Drinks/moonshineglass.rsi/meta.json new file mode 100644 index 0000000000..5fe156daaa --- /dev/null +++ b/Resources/Textures/Objects/Consumable/Drinks/moonshineglass.rsi/meta.json @@ -0,0 +1,35 @@ +{ + "version": 1, + "size": { + "x": 32, + "y": 32 + }, + "license": "CC-BY-SA-3.0", + "copyright": "Made by RumiTiger", + "states": [ + { + "name": "icon" + }, + { + "name": "icon_empty" + }, + { + "name": "fill-1" + }, + { + "name": "fill-2" + }, + { + "name": "fill-3" + }, + { + "name": "fill-4" + }, + { + "name": "fill-5" + }, + { + "name": "fill-6" + } + ] +} diff --git a/Resources/Textures/Objects/Consumable/Drinks/orangejuiceglass.rsi/fill-1.png b/Resources/Textures/Objects/Consumable/Drinks/orangejuiceglass.rsi/fill-1.png new file mode 100644 index 0000000000..6a56b31eee Binary files /dev/null and b/Resources/Textures/Objects/Consumable/Drinks/orangejuiceglass.rsi/fill-1.png differ diff --git a/Resources/Textures/Objects/Consumable/Drinks/orangejuiceglass.rsi/fill-2.png b/Resources/Textures/Objects/Consumable/Drinks/orangejuiceglass.rsi/fill-2.png new file mode 100644 index 0000000000..0a853551c5 Binary files /dev/null and b/Resources/Textures/Objects/Consumable/Drinks/orangejuiceglass.rsi/fill-2.png differ diff --git a/Resources/Textures/Objects/Consumable/Drinks/orangejuiceglass.rsi/fill-3.png b/Resources/Textures/Objects/Consumable/Drinks/orangejuiceglass.rsi/fill-3.png new file mode 100644 index 0000000000..92293d8cf2 Binary files /dev/null and b/Resources/Textures/Objects/Consumable/Drinks/orangejuiceglass.rsi/fill-3.png differ diff --git a/Resources/Textures/Objects/Consumable/Drinks/orangejuiceglass.rsi/fill-4.png b/Resources/Textures/Objects/Consumable/Drinks/orangejuiceglass.rsi/fill-4.png new file mode 100644 index 0000000000..85f6dea9b6 Binary files /dev/null and b/Resources/Textures/Objects/Consumable/Drinks/orangejuiceglass.rsi/fill-4.png differ diff --git a/Resources/Textures/Objects/Consumable/Drinks/orangejuiceglass.rsi/fill-5.png b/Resources/Textures/Objects/Consumable/Drinks/orangejuiceglass.rsi/fill-5.png new file mode 100644 index 0000000000..598d0be5b6 Binary files /dev/null and b/Resources/Textures/Objects/Consumable/Drinks/orangejuiceglass.rsi/fill-5.png differ diff --git a/Resources/Textures/Objects/Consumable/Drinks/orangejuiceglass.rsi/icon.png b/Resources/Textures/Objects/Consumable/Drinks/orangejuiceglass.rsi/icon.png new file mode 100644 index 0000000000..64e185065a Binary files /dev/null and b/Resources/Textures/Objects/Consumable/Drinks/orangejuiceglass.rsi/icon.png differ diff --git a/Resources/Textures/Objects/Consumable/Drinks/orangejuiceglass.rsi/icon_empty.png b/Resources/Textures/Objects/Consumable/Drinks/orangejuiceglass.rsi/icon_empty.png new file mode 100644 index 0000000000..fc940737b2 Binary files /dev/null and b/Resources/Textures/Objects/Consumable/Drinks/orangejuiceglass.rsi/icon_empty.png differ diff --git a/Resources/Textures/Objects/Consumable/Drinks/orangejuiceglass.rsi/meta.json b/Resources/Textures/Objects/Consumable/Drinks/orangejuiceglass.rsi/meta.json new file mode 100644 index 0000000000..ec55ebfa1f --- /dev/null +++ b/Resources/Textures/Objects/Consumable/Drinks/orangejuiceglass.rsi/meta.json @@ -0,0 +1,32 @@ +{ + "version": 1, + "size": { + "x": 32, + "y": 32 + }, + "license": "CC-BY-SA-3.0", + "copyright": "Made by RumiTiger", + "states": [ + { + "name": "icon" + }, + { + "name": "icon_empty" + }, + { + "name": "fill-1" + }, + { + "name": "fill-2" + }, + { + "name": "fill-3" + }, + { + "name": "fill-4" + }, + { + "name": "fill-5" + } + ] +} diff --git a/Resources/Textures/Objects/Consumable/Drinks/rubberneck.rsi/fill-1.png b/Resources/Textures/Objects/Consumable/Drinks/rubberneck.rsi/fill-1.png new file mode 100644 index 0000000000..f5afa0bed8 Binary files /dev/null and b/Resources/Textures/Objects/Consumable/Drinks/rubberneck.rsi/fill-1.png differ diff --git a/Resources/Textures/Objects/Consumable/Drinks/rubberneck.rsi/fill-2.png b/Resources/Textures/Objects/Consumable/Drinks/rubberneck.rsi/fill-2.png new file mode 100644 index 0000000000..79bcdcfb8c Binary files /dev/null and b/Resources/Textures/Objects/Consumable/Drinks/rubberneck.rsi/fill-2.png differ diff --git a/Resources/Textures/Objects/Consumable/Drinks/rubberneck.rsi/fill-3.png b/Resources/Textures/Objects/Consumable/Drinks/rubberneck.rsi/fill-3.png new file mode 100644 index 0000000000..772aa80d6a Binary files /dev/null and b/Resources/Textures/Objects/Consumable/Drinks/rubberneck.rsi/fill-3.png differ diff --git a/Resources/Textures/Objects/Consumable/Drinks/rubberneck.rsi/icon.png b/Resources/Textures/Objects/Consumable/Drinks/rubberneck.rsi/icon.png new file mode 100644 index 0000000000..772aa80d6a Binary files /dev/null and b/Resources/Textures/Objects/Consumable/Drinks/rubberneck.rsi/icon.png differ diff --git a/Resources/Textures/Objects/Consumable/Drinks/rubberneck.rsi/icon_empty.png b/Resources/Textures/Objects/Consumable/Drinks/rubberneck.rsi/icon_empty.png new file mode 100644 index 0000000000..416d1f7717 Binary files /dev/null and b/Resources/Textures/Objects/Consumable/Drinks/rubberneck.rsi/icon_empty.png differ diff --git a/Resources/Textures/Objects/Consumable/Drinks/rubberneck.rsi/meta.json b/Resources/Textures/Objects/Consumable/Drinks/rubberneck.rsi/meta.json new file mode 100644 index 0000000000..a26c7355ae --- /dev/null +++ b/Resources/Textures/Objects/Consumable/Drinks/rubberneck.rsi/meta.json @@ -0,0 +1,28 @@ +{ + "version": 1, + "size": + { + "x": 32, + "y": 32 + }, + "license": "CC-BY-SA-3.0", + "copyright": "https://tgstation13.org/wiki/images/archive/4/4e/20220514022531%21Rubberneck.png. Fill levels by Hanzdegloker on GitHub.", + "states": + [ + { + "name": "icon" + }, + { + "name": "icon_empty" + }, + { + "name": "fill-1" + }, + { + "name": "fill-2" + }, + { + "name": "fill-3" + } + ] +} diff --git a/Resources/Textures/Objects/Consumable/Drinks/space-up_glass.rsi/fill-1.png b/Resources/Textures/Objects/Consumable/Drinks/space-up_glass.rsi/fill-1.png new file mode 100644 index 0000000000..077d84804e Binary files /dev/null and b/Resources/Textures/Objects/Consumable/Drinks/space-up_glass.rsi/fill-1.png differ diff --git a/Resources/Textures/Objects/Consumable/Drinks/space-up_glass.rsi/fill-2.png b/Resources/Textures/Objects/Consumable/Drinks/space-up_glass.rsi/fill-2.png new file mode 100644 index 0000000000..763d02e7b8 Binary files /dev/null and b/Resources/Textures/Objects/Consumable/Drinks/space-up_glass.rsi/fill-2.png differ diff --git a/Resources/Textures/Objects/Consumable/Drinks/space-up_glass.rsi/fill-3.png b/Resources/Textures/Objects/Consumable/Drinks/space-up_glass.rsi/fill-3.png new file mode 100644 index 0000000000..ba76b0c22b Binary files /dev/null and b/Resources/Textures/Objects/Consumable/Drinks/space-up_glass.rsi/fill-3.png differ diff --git a/Resources/Textures/Objects/Consumable/Drinks/space-up_glass.rsi/fill-4.png b/Resources/Textures/Objects/Consumable/Drinks/space-up_glass.rsi/fill-4.png new file mode 100644 index 0000000000..ce9f636dbc Binary files /dev/null and b/Resources/Textures/Objects/Consumable/Drinks/space-up_glass.rsi/fill-4.png differ diff --git a/Resources/Textures/Objects/Consumable/Drinks/space-up_glass.rsi/fill-5.png b/Resources/Textures/Objects/Consumable/Drinks/space-up_glass.rsi/fill-5.png new file mode 100644 index 0000000000..b79be48363 Binary files /dev/null and b/Resources/Textures/Objects/Consumable/Drinks/space-up_glass.rsi/fill-5.png differ diff --git a/Resources/Textures/Objects/Consumable/Drinks/space-up_glass.rsi/fill-6.png b/Resources/Textures/Objects/Consumable/Drinks/space-up_glass.rsi/fill-6.png new file mode 100644 index 0000000000..9abb7c672b Binary files /dev/null and b/Resources/Textures/Objects/Consumable/Drinks/space-up_glass.rsi/fill-6.png differ diff --git a/Resources/Textures/Objects/Consumable/Drinks/space-up_glass.rsi/icon.png b/Resources/Textures/Objects/Consumable/Drinks/space-up_glass.rsi/icon.png index 5930cd7536..e5eeaba264 100644 Binary files a/Resources/Textures/Objects/Consumable/Drinks/space-up_glass.rsi/icon.png and b/Resources/Textures/Objects/Consumable/Drinks/space-up_glass.rsi/icon.png differ diff --git a/Resources/Textures/Objects/Consumable/Drinks/space-up_glass.rsi/icon_empty.png b/Resources/Textures/Objects/Consumable/Drinks/space-up_glass.rsi/icon_empty.png new file mode 100644 index 0000000000..9e12bbbe4d Binary files /dev/null and b/Resources/Textures/Objects/Consumable/Drinks/space-up_glass.rsi/icon_empty.png differ diff --git a/Resources/Textures/Objects/Consumable/Drinks/space-up_glass.rsi/meta.json b/Resources/Textures/Objects/Consumable/Drinks/space-up_glass.rsi/meta.json index db0ac608ed..5fe156daaa 100644 --- a/Resources/Textures/Objects/Consumable/Drinks/space-up_glass.rsi/meta.json +++ b/Resources/Textures/Objects/Consumable/Drinks/space-up_glass.rsi/meta.json @@ -1 +1,35 @@ -{"version": 1, "size": {"x": 32, "y": 32}, "license": "CC-BY-SA-3.0", "copyright": "https://github.com/discordia-space/CEV-Eris/raw/f7aa28fd4b4d0386c3393d829681ebca526f1d2d/icons/obj/drinks.dmi", "states": [{"name": "icon"}]} \ No newline at end of file +{ + "version": 1, + "size": { + "x": 32, + "y": 32 + }, + "license": "CC-BY-SA-3.0", + "copyright": "Made by RumiTiger", + "states": [ + { + "name": "icon" + }, + { + "name": "icon_empty" + }, + { + "name": "fill-1" + }, + { + "name": "fill-2" + }, + { + "name": "fill-3" + }, + { + "name": "fill-4" + }, + { + "name": "fill-5" + }, + { + "name": "fill-6" + } + ] +} diff --git a/Resources/Textures/Objects/Consumable/Drinks/space_mountain_wind_glass.rsi/fill-1.png b/Resources/Textures/Objects/Consumable/Drinks/space_mountain_wind_glass.rsi/fill-1.png new file mode 100644 index 0000000000..53db03fd96 Binary files /dev/null and b/Resources/Textures/Objects/Consumable/Drinks/space_mountain_wind_glass.rsi/fill-1.png differ diff --git a/Resources/Textures/Objects/Consumable/Drinks/space_mountain_wind_glass.rsi/fill-2.png b/Resources/Textures/Objects/Consumable/Drinks/space_mountain_wind_glass.rsi/fill-2.png new file mode 100644 index 0000000000..601efddc0d Binary files /dev/null and b/Resources/Textures/Objects/Consumable/Drinks/space_mountain_wind_glass.rsi/fill-2.png differ diff --git a/Resources/Textures/Objects/Consumable/Drinks/space_mountain_wind_glass.rsi/fill-3.png b/Resources/Textures/Objects/Consumable/Drinks/space_mountain_wind_glass.rsi/fill-3.png new file mode 100644 index 0000000000..4c50ee9fd7 Binary files /dev/null and b/Resources/Textures/Objects/Consumable/Drinks/space_mountain_wind_glass.rsi/fill-3.png differ diff --git a/Resources/Textures/Objects/Consumable/Drinks/space_mountain_wind_glass.rsi/fill-4.png b/Resources/Textures/Objects/Consumable/Drinks/space_mountain_wind_glass.rsi/fill-4.png new file mode 100644 index 0000000000..38cf3fdbfc Binary files /dev/null and b/Resources/Textures/Objects/Consumable/Drinks/space_mountain_wind_glass.rsi/fill-4.png differ diff --git a/Resources/Textures/Objects/Consumable/Drinks/space_mountain_wind_glass.rsi/fill-5.png b/Resources/Textures/Objects/Consumable/Drinks/space_mountain_wind_glass.rsi/fill-5.png new file mode 100644 index 0000000000..06be04566c Binary files /dev/null and b/Resources/Textures/Objects/Consumable/Drinks/space_mountain_wind_glass.rsi/fill-5.png differ diff --git a/Resources/Textures/Objects/Consumable/Drinks/space_mountain_wind_glass.rsi/icon.png b/Resources/Textures/Objects/Consumable/Drinks/space_mountain_wind_glass.rsi/icon.png index 812d7fd488..6303745c50 100644 Binary files a/Resources/Textures/Objects/Consumable/Drinks/space_mountain_wind_glass.rsi/icon.png and b/Resources/Textures/Objects/Consumable/Drinks/space_mountain_wind_glass.rsi/icon.png differ diff --git a/Resources/Textures/Objects/Consumable/Drinks/space_mountain_wind_glass.rsi/icon_empty.png b/Resources/Textures/Objects/Consumable/Drinks/space_mountain_wind_glass.rsi/icon_empty.png new file mode 100644 index 0000000000..d576502499 Binary files /dev/null and b/Resources/Textures/Objects/Consumable/Drinks/space_mountain_wind_glass.rsi/icon_empty.png differ diff --git a/Resources/Textures/Objects/Consumable/Drinks/space_mountain_wind_glass.rsi/meta.json b/Resources/Textures/Objects/Consumable/Drinks/space_mountain_wind_glass.rsi/meta.json index db0ac608ed..ec55ebfa1f 100644 --- a/Resources/Textures/Objects/Consumable/Drinks/space_mountain_wind_glass.rsi/meta.json +++ b/Resources/Textures/Objects/Consumable/Drinks/space_mountain_wind_glass.rsi/meta.json @@ -1 +1,32 @@ -{"version": 1, "size": {"x": 32, "y": 32}, "license": "CC-BY-SA-3.0", "copyright": "https://github.com/discordia-space/CEV-Eris/raw/f7aa28fd4b4d0386c3393d829681ebca526f1d2d/icons/obj/drinks.dmi", "states": [{"name": "icon"}]} \ No newline at end of file +{ + "version": 1, + "size": { + "x": 32, + "y": 32 + }, + "license": "CC-BY-SA-3.0", + "copyright": "Made by RumiTiger", + "states": [ + { + "name": "icon" + }, + { + "name": "icon_empty" + }, + { + "name": "fill-1" + }, + { + "name": "fill-2" + }, + { + "name": "fill-3" + }, + { + "name": "fill-4" + }, + { + "name": "fill-5" + } + ] +} diff --git a/Resources/Textures/Objects/Consumable/Drinks/sugarglass.rsi/fill-1.png b/Resources/Textures/Objects/Consumable/Drinks/sugarglass.rsi/fill-1.png new file mode 100644 index 0000000000..6dce3834ee Binary files /dev/null and b/Resources/Textures/Objects/Consumable/Drinks/sugarglass.rsi/fill-1.png differ diff --git a/Resources/Textures/Objects/Consumable/Drinks/sugarglass.rsi/fill-2.png b/Resources/Textures/Objects/Consumable/Drinks/sugarglass.rsi/fill-2.png new file mode 100644 index 0000000000..64dfddb473 Binary files /dev/null and b/Resources/Textures/Objects/Consumable/Drinks/sugarglass.rsi/fill-2.png differ diff --git a/Resources/Textures/Objects/Consumable/Drinks/sugarglass.rsi/fill-3.png b/Resources/Textures/Objects/Consumable/Drinks/sugarglass.rsi/fill-3.png new file mode 100644 index 0000000000..2d281d5189 Binary files /dev/null and b/Resources/Textures/Objects/Consumable/Drinks/sugarglass.rsi/fill-3.png differ diff --git a/Resources/Textures/Objects/Consumable/Drinks/sugarglass.rsi/fill-4.png b/Resources/Textures/Objects/Consumable/Drinks/sugarglass.rsi/fill-4.png new file mode 100644 index 0000000000..18ee0e4280 Binary files /dev/null and b/Resources/Textures/Objects/Consumable/Drinks/sugarglass.rsi/fill-4.png differ diff --git a/Resources/Textures/Objects/Consumable/Drinks/sugarglass.rsi/fill-5.png b/Resources/Textures/Objects/Consumable/Drinks/sugarglass.rsi/fill-5.png new file mode 100644 index 0000000000..fe4fdead76 Binary files /dev/null and b/Resources/Textures/Objects/Consumable/Drinks/sugarglass.rsi/fill-5.png differ diff --git a/Resources/Textures/Objects/Consumable/Drinks/sugarglass.rsi/fill-6.png b/Resources/Textures/Objects/Consumable/Drinks/sugarglass.rsi/fill-6.png new file mode 100644 index 0000000000..9a023cdb01 Binary files /dev/null and b/Resources/Textures/Objects/Consumable/Drinks/sugarglass.rsi/fill-6.png differ diff --git a/Resources/Textures/Objects/Consumable/Drinks/sugarglass.rsi/fill-7.png b/Resources/Textures/Objects/Consumable/Drinks/sugarglass.rsi/fill-7.png new file mode 100644 index 0000000000..d7cd6ca7be Binary files /dev/null and b/Resources/Textures/Objects/Consumable/Drinks/sugarglass.rsi/fill-7.png differ diff --git a/Resources/Textures/Objects/Consumable/Drinks/sugarglass.rsi/icon.png b/Resources/Textures/Objects/Consumable/Drinks/sugarglass.rsi/icon.png new file mode 100644 index 0000000000..cf2066eb37 Binary files /dev/null and b/Resources/Textures/Objects/Consumable/Drinks/sugarglass.rsi/icon.png differ diff --git a/Resources/Textures/Objects/Consumable/Drinks/sugarglass.rsi/icon_empty.png b/Resources/Textures/Objects/Consumable/Drinks/sugarglass.rsi/icon_empty.png new file mode 100644 index 0000000000..5f3bc4f4c7 Binary files /dev/null and b/Resources/Textures/Objects/Consumable/Drinks/sugarglass.rsi/icon_empty.png differ diff --git a/Resources/Textures/Objects/Consumable/Drinks/sugarglass.rsi/meta.json b/Resources/Textures/Objects/Consumable/Drinks/sugarglass.rsi/meta.json new file mode 100644 index 0000000000..55fdf44163 --- /dev/null +++ b/Resources/Textures/Objects/Consumable/Drinks/sugarglass.rsi/meta.json @@ -0,0 +1,38 @@ +{ + "version": 1, + "size": { + "x": 32, + "y": 32 + }, + "license": "CC-BY-SA-3.0", + "copyright": "Made by RumiTiger", + "states": [ + { + "name": "icon" + }, + { + "name": "icon_empty" + }, + { + "name": "fill-1" + }, + { + "name": "fill-2" + }, + { + "name": "fill-3" + }, + { + "name": "fill-4" + }, + { + "name": "fill-5" + }, + { + "name": "fill-6" + }, + { + "name": "fill-7" + } + ] +} diff --git a/Resources/Textures/Objects/Consumable/Drinks/teaglass.rsi/fill-1.png b/Resources/Textures/Objects/Consumable/Drinks/teaglass.rsi/fill-1.png new file mode 100644 index 0000000000..05e6af71a7 Binary files /dev/null and b/Resources/Textures/Objects/Consumable/Drinks/teaglass.rsi/fill-1.png differ diff --git a/Resources/Textures/Objects/Consumable/Drinks/teaglass.rsi/fill-2.png b/Resources/Textures/Objects/Consumable/Drinks/teaglass.rsi/fill-2.png new file mode 100644 index 0000000000..cdf98da4a6 Binary files /dev/null and b/Resources/Textures/Objects/Consumable/Drinks/teaglass.rsi/fill-2.png differ diff --git a/Resources/Textures/Objects/Consumable/Drinks/teaglass.rsi/fill-3.png b/Resources/Textures/Objects/Consumable/Drinks/teaglass.rsi/fill-3.png new file mode 100644 index 0000000000..1f514088a2 Binary files /dev/null and b/Resources/Textures/Objects/Consumable/Drinks/teaglass.rsi/fill-3.png differ diff --git a/Resources/Textures/Objects/Consumable/Drinks/teaglass.rsi/fill-4.png b/Resources/Textures/Objects/Consumable/Drinks/teaglass.rsi/fill-4.png new file mode 100644 index 0000000000..1a8ed41fde Binary files /dev/null and b/Resources/Textures/Objects/Consumable/Drinks/teaglass.rsi/fill-4.png differ diff --git a/Resources/Textures/Objects/Consumable/Drinks/teaglass.rsi/icon.png b/Resources/Textures/Objects/Consumable/Drinks/teaglass.rsi/icon.png index 727bc3f2fb..b31ed22db5 100644 Binary files a/Resources/Textures/Objects/Consumable/Drinks/teaglass.rsi/icon.png and b/Resources/Textures/Objects/Consumable/Drinks/teaglass.rsi/icon.png differ diff --git a/Resources/Textures/Objects/Consumable/Drinks/teaglass.rsi/icon_empty.png b/Resources/Textures/Objects/Consumable/Drinks/teaglass.rsi/icon_empty.png new file mode 100644 index 0000000000..abad93afb3 Binary files /dev/null and b/Resources/Textures/Objects/Consumable/Drinks/teaglass.rsi/icon_empty.png differ diff --git a/Resources/Textures/Objects/Consumable/Drinks/teaglass.rsi/meta.json b/Resources/Textures/Objects/Consumable/Drinks/teaglass.rsi/meta.json index db0ac608ed..019c918be9 100644 --- a/Resources/Textures/Objects/Consumable/Drinks/teaglass.rsi/meta.json +++ b/Resources/Textures/Objects/Consumable/Drinks/teaglass.rsi/meta.json @@ -1 +1,29 @@ -{"version": 1, "size": {"x": 32, "y": 32}, "license": "CC-BY-SA-3.0", "copyright": "https://github.com/discordia-space/CEV-Eris/raw/f7aa28fd4b4d0386c3393d829681ebca526f1d2d/icons/obj/drinks.dmi", "states": [{"name": "icon"}]} \ No newline at end of file +{ + "version": 1, + "size": { + "x": 32, + "y": 32 + }, + "license": "CC-BY-SA-3.0", + "copyright": "Made by RumiTiger", + "states": [ + { + "name": "icon" + }, + { + "name": "icon_empty" + }, + { + "name": "fill-1" + }, + { + "name": "fill-2" + }, + { + "name": "fill-3" + }, + { + "name": "fill-4" + } + ] +} diff --git a/Resources/Textures/Objects/Consumable/Drinks/tequillaglass.rsi/fill-1.png b/Resources/Textures/Objects/Consumable/Drinks/tequillaglass.rsi/fill-1.png index 202cfe304c..30399627af 100644 Binary files a/Resources/Textures/Objects/Consumable/Drinks/tequillaglass.rsi/fill-1.png and b/Resources/Textures/Objects/Consumable/Drinks/tequillaglass.rsi/fill-1.png differ diff --git a/Resources/Textures/Objects/Consumable/Drinks/tequillaglass.rsi/fill-2.png b/Resources/Textures/Objects/Consumable/Drinks/tequillaglass.rsi/fill-2.png index 8cb7a51424..ed17e56693 100644 Binary files a/Resources/Textures/Objects/Consumable/Drinks/tequillaglass.rsi/fill-2.png and b/Resources/Textures/Objects/Consumable/Drinks/tequillaglass.rsi/fill-2.png differ diff --git a/Resources/Textures/Objects/Consumable/Drinks/tequillaglass.rsi/fill-3.png b/Resources/Textures/Objects/Consumable/Drinks/tequillaglass.rsi/fill-3.png index b17d5ec6b6..a240f84f26 100644 Binary files a/Resources/Textures/Objects/Consumable/Drinks/tequillaglass.rsi/fill-3.png and b/Resources/Textures/Objects/Consumable/Drinks/tequillaglass.rsi/fill-3.png differ diff --git a/Resources/Textures/Objects/Consumable/Drinks/tequillaglass.rsi/fill-4.png b/Resources/Textures/Objects/Consumable/Drinks/tequillaglass.rsi/fill-4.png deleted file mode 100644 index 642c08ff68..0000000000 Binary files a/Resources/Textures/Objects/Consumable/Drinks/tequillaglass.rsi/fill-4.png and /dev/null differ diff --git a/Resources/Textures/Objects/Consumable/Drinks/tequillaglass.rsi/icon.png b/Resources/Textures/Objects/Consumable/Drinks/tequillaglass.rsi/icon.png index 4cac2a3aa4..b1510211cf 100644 Binary files a/Resources/Textures/Objects/Consumable/Drinks/tequillaglass.rsi/icon.png and b/Resources/Textures/Objects/Consumable/Drinks/tequillaglass.rsi/icon.png differ diff --git a/Resources/Textures/Objects/Consumable/Drinks/tequillaglass.rsi/icon_empty.png b/Resources/Textures/Objects/Consumable/Drinks/tequillaglass.rsi/icon_empty.png index 72476b77c0..dd4fd594d5 100644 Binary files a/Resources/Textures/Objects/Consumable/Drinks/tequillaglass.rsi/icon_empty.png and b/Resources/Textures/Objects/Consumable/Drinks/tequillaglass.rsi/icon_empty.png differ diff --git a/Resources/Textures/Objects/Consumable/Drinks/tequillaglass.rsi/meta.json b/Resources/Textures/Objects/Consumable/Drinks/tequillaglass.rsi/meta.json index 20e933bb57..a2e79dfea1 100644 --- a/Resources/Textures/Objects/Consumable/Drinks/tequillaglass.rsi/meta.json +++ b/Resources/Textures/Objects/Consumable/Drinks/tequillaglass.rsi/meta.json @@ -1,31 +1,26 @@ { - "version": 1, - "size": + "version": 1, + "size": { + "x": 32, + "y": 32 + }, + "license": "CC-BY-SA-3.0", + "copyright": "Made by RumiTiger", + "states": [ { - "x": 32, - "y": 32 + "name": "icon" }, - "license": "CC-BY-SA-3.0", - "copyright": "https://github.com/discordia-space/CEV-Eris/raw/f7aa28fd4b4d0386c3393d829681ebca526f1d2d/icons/obj/drinks.dmi. Fill levels by Tayrtahn on GitHub.", - "states": - [ - { - "name": "icon" - }, - { - "name": "icon_empty" - }, - { - "name": "fill-1" - }, - { - "name": "fill-2" - }, - { - "name": "fill-3" - }, - { - "name": "fill-4" - } - ] + { + "name": "icon_empty" + }, + { + "name": "fill-1" + }, + { + "name": "fill-2" + }, + { + "name": "fill-3" + } + ] } diff --git a/Resources/Textures/Objects/Consumable/Drinks/tonicglass.rsi/fill-1.png b/Resources/Textures/Objects/Consumable/Drinks/tonicglass.rsi/fill-1.png new file mode 100644 index 0000000000..0082f2b814 Binary files /dev/null and b/Resources/Textures/Objects/Consumable/Drinks/tonicglass.rsi/fill-1.png differ diff --git a/Resources/Textures/Objects/Consumable/Drinks/tonicglass.rsi/fill-2.png b/Resources/Textures/Objects/Consumable/Drinks/tonicglass.rsi/fill-2.png new file mode 100644 index 0000000000..cd667bfb33 Binary files /dev/null and b/Resources/Textures/Objects/Consumable/Drinks/tonicglass.rsi/fill-2.png differ diff --git a/Resources/Textures/Objects/Consumable/Drinks/tonicglass.rsi/fill-3.png b/Resources/Textures/Objects/Consumable/Drinks/tonicglass.rsi/fill-3.png new file mode 100644 index 0000000000..0edd69b4db Binary files /dev/null and b/Resources/Textures/Objects/Consumable/Drinks/tonicglass.rsi/fill-3.png differ diff --git a/Resources/Textures/Objects/Consumable/Drinks/tonicglass.rsi/fill-4.png b/Resources/Textures/Objects/Consumable/Drinks/tonicglass.rsi/fill-4.png new file mode 100644 index 0000000000..f3cf6be999 Binary files /dev/null and b/Resources/Textures/Objects/Consumable/Drinks/tonicglass.rsi/fill-4.png differ diff --git a/Resources/Textures/Objects/Consumable/Drinks/tonicglass.rsi/fill-5.png b/Resources/Textures/Objects/Consumable/Drinks/tonicglass.rsi/fill-5.png new file mode 100644 index 0000000000..3e1c0d68c1 Binary files /dev/null and b/Resources/Textures/Objects/Consumable/Drinks/tonicglass.rsi/fill-5.png differ diff --git a/Resources/Textures/Objects/Consumable/Drinks/tonicglass.rsi/icon.png b/Resources/Textures/Objects/Consumable/Drinks/tonicglass.rsi/icon.png new file mode 100644 index 0000000000..438ed21e51 Binary files /dev/null and b/Resources/Textures/Objects/Consumable/Drinks/tonicglass.rsi/icon.png differ diff --git a/Resources/Textures/Objects/Consumable/Drinks/tonicglass.rsi/icon_empty.png b/Resources/Textures/Objects/Consumable/Drinks/tonicglass.rsi/icon_empty.png new file mode 100644 index 0000000000..1a306745d9 Binary files /dev/null and b/Resources/Textures/Objects/Consumable/Drinks/tonicglass.rsi/icon_empty.png differ diff --git a/Resources/Textures/Objects/Consumable/Drinks/tonicglass.rsi/meta.json b/Resources/Textures/Objects/Consumable/Drinks/tonicglass.rsi/meta.json new file mode 100644 index 0000000000..ec55ebfa1f --- /dev/null +++ b/Resources/Textures/Objects/Consumable/Drinks/tonicglass.rsi/meta.json @@ -0,0 +1,32 @@ +{ + "version": 1, + "size": { + "x": 32, + "y": 32 + }, + "license": "CC-BY-SA-3.0", + "copyright": "Made by RumiTiger", + "states": [ + { + "name": "icon" + }, + { + "name": "icon_empty" + }, + { + "name": "fill-1" + }, + { + "name": "fill-2" + }, + { + "name": "fill-3" + }, + { + "name": "fill-4" + }, + { + "name": "fill-5" + } + ] +} diff --git a/Resources/Textures/Objects/Consumable/Drinks/watermelonglass.rsi/fill-1.png b/Resources/Textures/Objects/Consumable/Drinks/watermelonglass.rsi/fill-1.png new file mode 100644 index 0000000000..533f3b8177 Binary files /dev/null and b/Resources/Textures/Objects/Consumable/Drinks/watermelonglass.rsi/fill-1.png differ diff --git a/Resources/Textures/Objects/Consumable/Drinks/watermelonglass.rsi/fill-2.png b/Resources/Textures/Objects/Consumable/Drinks/watermelonglass.rsi/fill-2.png new file mode 100644 index 0000000000..7563af563a Binary files /dev/null and b/Resources/Textures/Objects/Consumable/Drinks/watermelonglass.rsi/fill-2.png differ diff --git a/Resources/Textures/Objects/Consumable/Drinks/watermelonglass.rsi/fill-3.png b/Resources/Textures/Objects/Consumable/Drinks/watermelonglass.rsi/fill-3.png new file mode 100644 index 0000000000..38c729ef38 Binary files /dev/null and b/Resources/Textures/Objects/Consumable/Drinks/watermelonglass.rsi/fill-3.png differ diff --git a/Resources/Textures/Objects/Consumable/Drinks/watermelonglass.rsi/fill-4.png b/Resources/Textures/Objects/Consumable/Drinks/watermelonglass.rsi/fill-4.png new file mode 100644 index 0000000000..010224c48e Binary files /dev/null and b/Resources/Textures/Objects/Consumable/Drinks/watermelonglass.rsi/fill-4.png differ diff --git a/Resources/Textures/Objects/Consumable/Drinks/watermelonglass.rsi/icon.png b/Resources/Textures/Objects/Consumable/Drinks/watermelonglass.rsi/icon.png new file mode 100644 index 0000000000..e551fdb07b Binary files /dev/null and b/Resources/Textures/Objects/Consumable/Drinks/watermelonglass.rsi/icon.png differ diff --git a/Resources/Textures/Objects/Consumable/Drinks/watermelonglass.rsi/icon_empty.png b/Resources/Textures/Objects/Consumable/Drinks/watermelonglass.rsi/icon_empty.png new file mode 100644 index 0000000000..ab9ba53863 Binary files /dev/null and b/Resources/Textures/Objects/Consumable/Drinks/watermelonglass.rsi/icon_empty.png differ diff --git a/Resources/Textures/Objects/Consumable/Drinks/watermelonglass.rsi/meta.json b/Resources/Textures/Objects/Consumable/Drinks/watermelonglass.rsi/meta.json new file mode 100644 index 0000000000..019c918be9 --- /dev/null +++ b/Resources/Textures/Objects/Consumable/Drinks/watermelonglass.rsi/meta.json @@ -0,0 +1,29 @@ +{ + "version": 1, + "size": { + "x": 32, + "y": 32 + }, + "license": "CC-BY-SA-3.0", + "copyright": "Made by RumiTiger", + "states": [ + { + "name": "icon" + }, + { + "name": "icon_empty" + }, + { + "name": "fill-1" + }, + { + "name": "fill-2" + }, + { + "name": "fill-3" + }, + { + "name": "fill-4" + } + ] +} diff --git a/Resources/Textures/Objects/Consumable/Drinks/xenobasher.rsi/fill-1.png b/Resources/Textures/Objects/Consumable/Drinks/xenobasher.rsi/fill-1.png new file mode 100644 index 0000000000..3aef3bd8ab Binary files /dev/null and b/Resources/Textures/Objects/Consumable/Drinks/xenobasher.rsi/fill-1.png differ diff --git a/Resources/Textures/Objects/Consumable/Drinks/xenobasher.rsi/fill-2.png b/Resources/Textures/Objects/Consumable/Drinks/xenobasher.rsi/fill-2.png new file mode 100644 index 0000000000..ce4411ee1e Binary files /dev/null and b/Resources/Textures/Objects/Consumable/Drinks/xenobasher.rsi/fill-2.png differ diff --git a/Resources/Textures/Objects/Consumable/Drinks/xenobasher.rsi/icon.png b/Resources/Textures/Objects/Consumable/Drinks/xenobasher.rsi/icon.png new file mode 100644 index 0000000000..ce4411ee1e Binary files /dev/null and b/Resources/Textures/Objects/Consumable/Drinks/xenobasher.rsi/icon.png differ diff --git a/Resources/Textures/Objects/Consumable/Drinks/xenobasher.rsi/icon_empty.png b/Resources/Textures/Objects/Consumable/Drinks/xenobasher.rsi/icon_empty.png new file mode 100644 index 0000000000..85097b80cc Binary files /dev/null and b/Resources/Textures/Objects/Consumable/Drinks/xenobasher.rsi/icon_empty.png differ diff --git a/Resources/Textures/Objects/Consumable/Drinks/xenobasher.rsi/meta.json b/Resources/Textures/Objects/Consumable/Drinks/xenobasher.rsi/meta.json new file mode 100644 index 0000000000..9743bd909e --- /dev/null +++ b/Resources/Textures/Objects/Consumable/Drinks/xenobasher.rsi/meta.json @@ -0,0 +1,23 @@ +{ + "version": 1, + "size": { + "x": 32, + "y": 32 + }, + "license": "CC-BY-SA-3.0", + "copyright": "Created by Hanzdegloker on github", + "states": [ + { + "name": "icon" + }, + { + "name": "icon_empty" + }, + { + "name": "fill-1" + }, + { + "name": "fill-2" + } + ] +} diff --git a/Resources/Textures/Objects/Consumable/Smokeables/Cigars/cigar-gold.rsi/lit-equipped-MASK-vox.png b/Resources/Textures/Objects/Consumable/Smokeables/Cigars/cigar-gold.rsi/lit-equipped-MASK-vox.png new file mode 100644 index 0000000000..c0723dcde6 Binary files /dev/null and b/Resources/Textures/Objects/Consumable/Smokeables/Cigars/cigar-gold.rsi/lit-equipped-MASK-vox.png differ diff --git a/Resources/Textures/Objects/Consumable/Smokeables/Cigars/cigar-gold.rsi/meta.json b/Resources/Textures/Objects/Consumable/Smokeables/Cigars/cigar-gold.rsi/meta.json index 6b6687d88c..17b46355b6 100644 --- a/Resources/Textures/Objects/Consumable/Smokeables/Cigars/cigar-gold.rsi/meta.json +++ b/Resources/Textures/Objects/Consumable/Smokeables/Cigars/cigar-gold.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/bfc9c6ba8126ee8c41564d68c4bfb9ce37faa8f8 | vulpkanin version taken from Paradise station at https://github.com/ParadiseSS13/Paradise/commit/f0fa4e1fd809482fbc104a310aa34cebf7df157d", + "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/bfc9c6ba8126ee8c41564d68c4bfb9ce37faa8f8 | vulpkanin version taken from Paradise station at https://github.com/ParadiseSS13/Paradise/commit/f0fa4e1fd809482fbc104a310aa34cebf7df157d | lit-equipped-MASK-vox & unlit-equipped-MASK-vox states taken from /vg/station at commit https://github.com/vgstation-coders/vgstation13/commit/4638130fab5ff0e9faa220688811349d3297a33e", "size": { "x": 32, "y": 32 @@ -57,6 +57,56 @@ ] ] }, + { + "name": "unlit-equipped-MASK-vox", + "directions": 4 + }, + { + "name": "lit-equipped-MASK-vox", + "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": "burnt-icon" }, diff --git a/Resources/Textures/Objects/Consumable/Smokeables/Cigars/cigar-gold.rsi/unlit-equipped-MASK-vox.png b/Resources/Textures/Objects/Consumable/Smokeables/Cigars/cigar-gold.rsi/unlit-equipped-MASK-vox.png new file mode 100644 index 0000000000..3cbf873967 Binary files /dev/null and b/Resources/Textures/Objects/Consumable/Smokeables/Cigars/cigar-gold.rsi/unlit-equipped-MASK-vox.png differ diff --git a/Resources/Textures/Objects/Consumable/Smokeables/Cigars/cigar.rsi/lit-equipped-MASK-vox.png b/Resources/Textures/Objects/Consumable/Smokeables/Cigars/cigar.rsi/lit-equipped-MASK-vox.png new file mode 100644 index 0000000000..c0723dcde6 Binary files /dev/null and b/Resources/Textures/Objects/Consumable/Smokeables/Cigars/cigar.rsi/lit-equipped-MASK-vox.png differ diff --git a/Resources/Textures/Objects/Consumable/Smokeables/Cigars/cigar.rsi/meta.json b/Resources/Textures/Objects/Consumable/Smokeables/Cigars/cigar.rsi/meta.json index 6b6687d88c..17b46355b6 100644 --- a/Resources/Textures/Objects/Consumable/Smokeables/Cigars/cigar.rsi/meta.json +++ b/Resources/Textures/Objects/Consumable/Smokeables/Cigars/cigar.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/bfc9c6ba8126ee8c41564d68c4bfb9ce37faa8f8 | vulpkanin version taken from Paradise station at https://github.com/ParadiseSS13/Paradise/commit/f0fa4e1fd809482fbc104a310aa34cebf7df157d", + "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/bfc9c6ba8126ee8c41564d68c4bfb9ce37faa8f8 | vulpkanin version taken from Paradise station at https://github.com/ParadiseSS13/Paradise/commit/f0fa4e1fd809482fbc104a310aa34cebf7df157d | lit-equipped-MASK-vox & unlit-equipped-MASK-vox states taken from /vg/station at commit https://github.com/vgstation-coders/vgstation13/commit/4638130fab5ff0e9faa220688811349d3297a33e", "size": { "x": 32, "y": 32 @@ -57,6 +57,56 @@ ] ] }, + { + "name": "unlit-equipped-MASK-vox", + "directions": 4 + }, + { + "name": "lit-equipped-MASK-vox", + "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": "burnt-icon" }, diff --git a/Resources/Textures/Objects/Consumable/Smokeables/Cigars/cigar.rsi/unlit-equipped-MASK-vox.png b/Resources/Textures/Objects/Consumable/Smokeables/Cigars/cigar.rsi/unlit-equipped-MASK-vox.png new file mode 100644 index 0000000000..3cbf873967 Binary files /dev/null and b/Resources/Textures/Objects/Consumable/Smokeables/Cigars/cigar.rsi/unlit-equipped-MASK-vox.png differ diff --git a/Resources/Textures/Objects/Consumable/TrashDrinks/goldschlagerbottle_empty.rsi/icon.png b/Resources/Textures/Objects/Consumable/TrashDrinks/gildlagerbottle_empty.rsi/icon.png similarity index 100% rename from Resources/Textures/Objects/Consumable/TrashDrinks/goldschlagerbottle_empty.rsi/icon.png rename to Resources/Textures/Objects/Consumable/TrashDrinks/gildlagerbottle_empty.rsi/icon.png diff --git a/Resources/Textures/Objects/Consumable/TrashDrinks/goldschlagerbottle_empty.rsi/meta.json b/Resources/Textures/Objects/Consumable/TrashDrinks/gildlagerbottle_empty.rsi/meta.json similarity index 100% rename from Resources/Textures/Objects/Consumable/TrashDrinks/goldschlagerbottle_empty.rsi/meta.json rename to Resources/Textures/Objects/Consumable/TrashDrinks/gildlagerbottle_empty.rsi/meta.json diff --git a/Resources/Textures/Objects/Devices/chameleon_projector.rsi/icon.png b/Resources/Textures/Objects/Devices/chameleon_projector.rsi/icon.png new file mode 100644 index 0000000000..ce20b5eeee Binary files /dev/null and b/Resources/Textures/Objects/Devices/chameleon_projector.rsi/icon.png differ diff --git a/Resources/Textures/Objects/Devices/chameleon_projector.rsi/inhand-left.png b/Resources/Textures/Objects/Devices/chameleon_projector.rsi/inhand-left.png new file mode 100644 index 0000000000..2d3863145b Binary files /dev/null and b/Resources/Textures/Objects/Devices/chameleon_projector.rsi/inhand-left.png differ diff --git a/Resources/Textures/Objects/Devices/chameleon_projector.rsi/inhand-right.png b/Resources/Textures/Objects/Devices/chameleon_projector.rsi/inhand-right.png new file mode 100644 index 0000000000..1704b9c3c1 Binary files /dev/null and b/Resources/Textures/Objects/Devices/chameleon_projector.rsi/inhand-right.png differ diff --git a/Resources/Textures/Objects/Devices/chameleon_projector.rsi/meta.json b/Resources/Textures/Objects/Devices/chameleon_projector.rsi/meta.json new file mode 100644 index 0000000000..3eb42e9e6f --- /dev/null +++ b/Resources/Textures/Objects/Devices/chameleon_projector.rsi/meta.json @@ -0,0 +1,32 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from tgstation at ", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon", + "delays": [ + [ + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2 + ] + ] + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/Objects/Devices/flatpack.rsi/emitter.png b/Resources/Textures/Objects/Devices/flatpack.rsi/emitter.png new file mode 100644 index 0000000000..c663886f9c Binary files /dev/null and b/Resources/Textures/Objects/Devices/flatpack.rsi/emitter.png differ diff --git a/Resources/Textures/Objects/Devices/flatpack.rsi/meta.json b/Resources/Textures/Objects/Devices/flatpack.rsi/meta.json index 2d1ca37141..8f46a0ca53 100644 --- a/Resources/Textures/Objects/Devices/flatpack.rsi/meta.json +++ b/Resources/Textures/Objects/Devices/flatpack.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC0-1.0", - "copyright": "Created by EmoGarbage404 (github) for SS14, solar-assembly-part taken from tgstation and modified at https://tgstation13.org/wiki/Guide_to_construction#Solar_Panels_and_Trackers, ame-part taken from vgstation at https://github.com/vgstation-coders/vgstation13/commit/1b7952787c06c21ef1623e494dcfe7cb1f46e041; singularity-generator, tesla-generator, radiation-collector, containment-field-generator, tesla-coil, grounding-rod inner icons made by lzk228", + "copyright": "Created by EmoGarbage404 (github) for SS14, solar-assembly-part taken from tgstation and modified at https://tgstation13.org/wiki/Guide_to_construction#Solar_Panels_and_Trackers, ame-part taken from vgstation at https://github.com/vgstation-coders/vgstation13/commit/1b7952787c06c21ef1623e494dcfe7cb1f46e041; singularity-generator, tesla-generator, radiation-collector, containment-field-generator, tesla-coil, grounding-rod inner icons made by lzk228; emitter made by pigeonpeas", "size": { "x": 32, "y": 32 @@ -39,6 +39,9 @@ }, { "name": "containment-field-generator" + }, + { + "name": "emitter" } ] } diff --git a/Resources/Textures/Objects/Devices/jammer.rsi/jammer-on.png b/Resources/Textures/Objects/Devices/jammer.rsi/jammer-on.png deleted file mode 100644 index 987e571b26..0000000000 Binary files a/Resources/Textures/Objects/Devices/jammer.rsi/jammer-on.png and /dev/null differ diff --git a/Resources/Textures/Objects/Devices/jammer.rsi/jammer_high_charge.png b/Resources/Textures/Objects/Devices/jammer.rsi/jammer_high_charge.png new file mode 100644 index 0000000000..e288427e71 Binary files /dev/null and b/Resources/Textures/Objects/Devices/jammer.rsi/jammer_high_charge.png differ diff --git a/Resources/Textures/Objects/Devices/jammer.rsi/jammer_low_charge.png b/Resources/Textures/Objects/Devices/jammer.rsi/jammer_low_charge.png new file mode 100644 index 0000000000..0950a95df7 Binary files /dev/null and b/Resources/Textures/Objects/Devices/jammer.rsi/jammer_low_charge.png differ diff --git a/Resources/Textures/Objects/Devices/jammer.rsi/jammer_medium_charge.png b/Resources/Textures/Objects/Devices/jammer.rsi/jammer_medium_charge.png new file mode 100644 index 0000000000..7c12da8606 Binary files /dev/null and b/Resources/Textures/Objects/Devices/jammer.rsi/jammer_medium_charge.png differ diff --git a/Resources/Textures/Objects/Devices/jammer.rsi/meta.json b/Resources/Textures/Objects/Devices/jammer.rsi/meta.json index c5cc9f56d2..d837374a87 100644 --- a/Resources/Textures/Objects/Devices/jammer.rsi/meta.json +++ b/Resources/Textures/Objects/Devices/jammer.rsi/meta.json @@ -1,23 +1,33 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "Taken from Paradise at https://github.com/ParadiseSS13/Paradise/blob/93d9c70530c7299ef0af96fe2178096b2a62e036/icons/obj/device.dmi", + "copyright": "Taken from https://github.com/tgstation/tgstation/commit/c65da5a49477413310c81c460ea4b243a9f864dd with minor edits.", "size": { "x": 32, "y": 32 }, "states": [ { - "name": "jammer" + "name": "jammer", + "directions": 1 }, { - "name": "jammer-on", - "delays": [ - [ - 0.8, - 0.2 - ] + "name": "jammer_high_charge", + "directions": 1 + }, + { + "name": "jammer_medium_charge", + "directions": 1 + }, + { + "name": "jammer_low_charge", + "directions": 1, + "delays": [ + [ + 0.3, + 0.3 ] + ] } ] } diff --git a/Resources/Textures/Objects/Devices/securityhandy.rsi/meta.json b/Resources/Textures/Objects/Devices/securityhandy.rsi/meta.json new file mode 100644 index 0000000000..18a2d93272 --- /dev/null +++ b/Resources/Textures/Objects/Devices/securityhandy.rsi/meta.json @@ -0,0 +1,28 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from cev-eris and modified by Swept at https://github.com/discordia-space/CEV-Eris/commit/efce5b6c3be75458ce238dcc01510e8f8a653ca6", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "walkietalkie" + }, + { + "name": "walkietalkie-inhand-left", + "directions": 4 + }, + { + "name": "walkietalkie-inhand-right", + "directions": 4 + }, + { + "name": "walkietalkie-off" + }, + { + "name": "walkietalkie-on" + } + ] +} \ No newline at end of file diff --git a/Resources/Textures/Objects/Devices/securityhandy.rsi/walkietalkie-inhand-left.png b/Resources/Textures/Objects/Devices/securityhandy.rsi/walkietalkie-inhand-left.png new file mode 100644 index 0000000000..5815169abf Binary files /dev/null and b/Resources/Textures/Objects/Devices/securityhandy.rsi/walkietalkie-inhand-left.png differ diff --git a/Resources/Textures/Objects/Devices/securityhandy.rsi/walkietalkie-inhand-right.png b/Resources/Textures/Objects/Devices/securityhandy.rsi/walkietalkie-inhand-right.png new file mode 100644 index 0000000000..ed1e606cfb Binary files /dev/null and b/Resources/Textures/Objects/Devices/securityhandy.rsi/walkietalkie-inhand-right.png differ diff --git a/Resources/Textures/Objects/Devices/securityhandy.rsi/walkietalkie-off.png b/Resources/Textures/Objects/Devices/securityhandy.rsi/walkietalkie-off.png new file mode 100644 index 0000000000..2afdf8d962 Binary files /dev/null and b/Resources/Textures/Objects/Devices/securityhandy.rsi/walkietalkie-off.png differ diff --git a/Resources/Textures/Objects/Devices/securityhandy.rsi/walkietalkie-on.png b/Resources/Textures/Objects/Devices/securityhandy.rsi/walkietalkie-on.png new file mode 100644 index 0000000000..dfd79a6441 Binary files /dev/null and b/Resources/Textures/Objects/Devices/securityhandy.rsi/walkietalkie-on.png differ diff --git a/Resources/Textures/Objects/Devices/securityhandy.rsi/walkietalkie.png b/Resources/Textures/Objects/Devices/securityhandy.rsi/walkietalkie.png new file mode 100644 index 0000000000..12aaa3f2f0 Binary files /dev/null and b/Resources/Textures/Objects/Devices/securityhandy.rsi/walkietalkie.png differ diff --git a/Resources/Textures/Objects/Fun/whistle.rsi/meta.json b/Resources/Textures/Objects/Fun/whistle.rsi/meta.json deleted file mode 100644 index 59159ff617..0000000000 --- a/Resources/Textures/Objects/Fun/whistle.rsi/meta.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "version": 1, - "license": "CC-BY-SA-3.0", - "copyright": "Made by Foleps (discord)", - "size": { - "x": 32, - "y": 32 - }, - "states": [ - { - "name": "securityWhistle" - } - ] -} diff --git a/Resources/Textures/Objects/Fun/whistles.rsi/equipped-NECK.png b/Resources/Textures/Objects/Fun/whistles.rsi/equipped-NECK.png new file mode 100644 index 0000000000..89fdd599b2 Binary files /dev/null and b/Resources/Textures/Objects/Fun/whistles.rsi/equipped-NECK.png differ diff --git a/Resources/Textures/Objects/Fun/whistles.rsi/meta.json b/Resources/Textures/Objects/Fun/whistles.rsi/meta.json new file mode 100644 index 0000000000..4f59ad60e0 --- /dev/null +++ b/Resources/Textures/Objects/Fun/whistles.rsi/meta.json @@ -0,0 +1,33 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "sec and whistle made by Foleps (discord), trench by Firewatchin (discord)", + "size": { + "x": 32, + "y": 32 + }, + + "states": [ + { + "name": "equipped-NECK", + "directions": 4 + }, + { + "name": "whistle" + }, + { + "name": "sec-equipped-NECK", + "directions": 4 + }, + { + "name": "sec" + }, + { + "name": "trench-equipped-NECK", + "directions": 4 + }, + { + "name": "trench" + } + ] +} diff --git a/Resources/Textures/Objects/Fun/whistles.rsi/sec-equipped-NECK.png b/Resources/Textures/Objects/Fun/whistles.rsi/sec-equipped-NECK.png new file mode 100644 index 0000000000..053c457f03 Binary files /dev/null and b/Resources/Textures/Objects/Fun/whistles.rsi/sec-equipped-NECK.png differ diff --git a/Resources/Textures/Objects/Fun/whistle.rsi/securityWhistle.png b/Resources/Textures/Objects/Fun/whistles.rsi/sec.png similarity index 100% rename from Resources/Textures/Objects/Fun/whistle.rsi/securityWhistle.png rename to Resources/Textures/Objects/Fun/whistles.rsi/sec.png diff --git a/Resources/Textures/Clothing/Neck/Misc/whistles.rsi/equipped-NECK.png b/Resources/Textures/Objects/Fun/whistles.rsi/trench-equipped-NECK.png similarity index 100% rename from Resources/Textures/Clothing/Neck/Misc/whistles.rsi/equipped-NECK.png rename to Resources/Textures/Objects/Fun/whistles.rsi/trench-equipped-NECK.png diff --git a/Resources/Textures/Clothing/Neck/Misc/whistles.rsi/icon.png b/Resources/Textures/Objects/Fun/whistles.rsi/trench.png similarity index 100% rename from Resources/Textures/Clothing/Neck/Misc/whistles.rsi/icon.png rename to Resources/Textures/Objects/Fun/whistles.rsi/trench.png diff --git a/Resources/Textures/Objects/Fun/whistles.rsi/whistle.png b/Resources/Textures/Objects/Fun/whistles.rsi/whistle.png new file mode 100644 index 0000000000..35db0ffca4 Binary files /dev/null and b/Resources/Textures/Objects/Fun/whistles.rsi/whistle.png differ diff --git a/Resources/Textures/Nyanotrasen/Objects/Materials/materials.rsi/bluespace.png b/Resources/Textures/Objects/Materials/materials.rsi/bluespace.png similarity index 100% rename from Resources/Textures/Nyanotrasen/Objects/Materials/materials.rsi/bluespace.png rename to Resources/Textures/Objects/Materials/materials.rsi/bluespace.png diff --git a/Resources/Textures/Nyanotrasen/Objects/Materials/materials.rsi/bluespace_2.png b/Resources/Textures/Objects/Materials/materials.rsi/bluespace_2.png similarity index 100% rename from Resources/Textures/Nyanotrasen/Objects/Materials/materials.rsi/bluespace_2.png rename to Resources/Textures/Objects/Materials/materials.rsi/bluespace_2.png diff --git a/Resources/Textures/Nyanotrasen/Objects/Materials/materials.rsi/bluespace_3.png b/Resources/Textures/Objects/Materials/materials.rsi/bluespace_3.png similarity index 100% rename from Resources/Textures/Nyanotrasen/Objects/Materials/materials.rsi/bluespace_3.png rename to Resources/Textures/Objects/Materials/materials.rsi/bluespace_3.png diff --git a/Resources/Textures/Objects/Materials/materials.rsi/meta.json b/Resources/Textures/Objects/Materials/materials.rsi/meta.json index f0307208e9..016ccddc29 100644 --- a/Resources/Textures/Objects/Materials/materials.rsi/meta.json +++ b/Resources/Textures/Objects/Materials/materials.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/c6e3401f2e7e1e55c57060cdf956a98ef1fefc24 , bear pelt remade by Alekshhh, wood sprite modified by MisterMecky, wood_2 and wood_3 made by MisterMecky based on wood sprite, cardboard sprites made by MisterMecky, bananium, bananium_1 and peel made by brainfood1183 (github) for ss14", + "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/c6e3401f2e7e1e55c57060cdf956a98ef1fefc24 , bear pelt remade by Alekshhh, wood sprite modified by MisterMecky, wood_2 and wood_3 made by MisterMecky based on wood sprite, cardboard sprites made by MisterMecky, bananium, bananium_1 and peel made by brainfood1183 (github) for ss14. Pyrotton sprites are drawn by Ubaser, using the cotton material sprites as a base. Bluespace and Normality taken from tgstation at https://github.com/tgstation/tgstation/commit/f8f4aeda930fcd0805ca4cc76d9bc9412a5b3428, reshaded by Aidenkrz", "size": { "x": 32, "y": 32 @@ -66,6 +66,15 @@ { "name": "cotton_3" }, + { + "name": "pyrotton" + }, + { + "name": "pyrotton_2" + }, + { + "name": "pyrotton_3" + }, { "name": "diamond" }, @@ -150,6 +159,24 @@ }, { "name": "bones_3" + }, + { + "name": "bluespace" + }, + { + "name": "bluespace_2" + }, + { + "name": "bluespace_3" + }, + { + "name": "normality" + }, + { + "name": "normality_2" + }, + { + "name": "normality_3" } ] } diff --git a/Resources/Textures/Objects/Materials/materials.rsi/normality.png b/Resources/Textures/Objects/Materials/materials.rsi/normality.png new file mode 100644 index 0000000000..3a91811667 Binary files /dev/null and b/Resources/Textures/Objects/Materials/materials.rsi/normality.png differ diff --git a/Resources/Textures/Objects/Materials/materials.rsi/normality_2.png b/Resources/Textures/Objects/Materials/materials.rsi/normality_2.png new file mode 100644 index 0000000000..fd672a9b09 Binary files /dev/null and b/Resources/Textures/Objects/Materials/materials.rsi/normality_2.png differ diff --git a/Resources/Textures/Objects/Materials/materials.rsi/normality_3.png b/Resources/Textures/Objects/Materials/materials.rsi/normality_3.png new file mode 100644 index 0000000000..8895885954 Binary files /dev/null and b/Resources/Textures/Objects/Materials/materials.rsi/normality_3.png differ diff --git a/Resources/Textures/Objects/Materials/materials.rsi/pyrotton.png b/Resources/Textures/Objects/Materials/materials.rsi/pyrotton.png new file mode 100644 index 0000000000..daa6701c39 Binary files /dev/null and b/Resources/Textures/Objects/Materials/materials.rsi/pyrotton.png differ diff --git a/Resources/Textures/Objects/Materials/materials.rsi/pyrotton_2.png b/Resources/Textures/Objects/Materials/materials.rsi/pyrotton_2.png new file mode 100644 index 0000000000..fcd2689557 Binary files /dev/null and b/Resources/Textures/Objects/Materials/materials.rsi/pyrotton_2.png differ diff --git a/Resources/Textures/Objects/Materials/materials.rsi/pyrotton_3.png b/Resources/Textures/Objects/Materials/materials.rsi/pyrotton_3.png new file mode 100644 index 0000000000..072ba2c6d1 Binary files /dev/null and b/Resources/Textures/Objects/Materials/materials.rsi/pyrotton_3.png differ diff --git a/Resources/Textures/Objects/Materials/ore.rsi/bluespace.png b/Resources/Textures/Objects/Materials/ore.rsi/bluespace.png new file mode 100644 index 0000000000..8aa4a33552 Binary files /dev/null and b/Resources/Textures/Objects/Materials/ore.rsi/bluespace.png differ diff --git a/Resources/Textures/Objects/Materials/ore.rsi/meta.json b/Resources/Textures/Objects/Materials/ore.rsi/meta.json index 98a10750bf..bc5dde9012 100644 --- a/Resources/Textures/Objects/Materials/ore.rsi/meta.json +++ b/Resources/Textures/Objects/Materials/ore.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC-BY-NC-SA-3.0", - "copyright": "silver, plasma taken from https://github.com/vgstation-coders/vgstation13 at commit f2ef221849675915a78fd92fe622c32ab740e085, spacequartz taken from https://github.com/goonstation/goonstation at commit b51daf824df46a3a1426475f982c09479818e522 and reshaded by Alekshhh, bananium; uranium; iron; gold; coal by Alekshhh", + "copyright": "silver, plasma taken from https://github.com/vgstation-coders/vgstation13 at commit f2ef221849675915a78fd92fe622c32ab740e085, spacequartz taken from https://github.com/goonstation/goonstation at commit b51daf824df46a3a1426475f982c09479818e522 and reshaded by Alekshhh, bananium; uranium; iron; gold; coal by Alekshhh. Bluespace and Normality taken from tgstation at https://github.com/tgstation/tgstation/commit/f8f4aeda930fcd0805ca4cc76d9bc9412a5b3428, reshaded by Aidenkrz", "size": { "x": 32, "y": 32 @@ -33,6 +33,12 @@ }, { "name": "salt" + }, + { + "name": "bluespace" + }, + { + "name": "normality" } ] } diff --git a/Resources/Textures/Objects/Materials/ore.rsi/normality.png b/Resources/Textures/Objects/Materials/ore.rsi/normality.png new file mode 100644 index 0000000000..e0bb3341b6 Binary files /dev/null and b/Resources/Textures/Objects/Materials/ore.rsi/normality.png differ diff --git a/Resources/Textures/Objects/Misc/chopstick.rsi/icon.png b/Resources/Textures/Objects/Misc/chopstick.rsi/icon.png new file mode 100644 index 0000000000..95acfb53cd Binary files /dev/null and b/Resources/Textures/Objects/Misc/chopstick.rsi/icon.png differ diff --git a/Resources/Textures/Objects/Misc/chopstick.rsi/inhand-left.png b/Resources/Textures/Objects/Misc/chopstick.rsi/inhand-left.png new file mode 100644 index 0000000000..48fa05ce34 Binary files /dev/null and b/Resources/Textures/Objects/Misc/chopstick.rsi/inhand-left.png differ diff --git a/Resources/Textures/Objects/Misc/chopstick.rsi/inhand-right.png b/Resources/Textures/Objects/Misc/chopstick.rsi/inhand-right.png new file mode 100644 index 0000000000..51dc3961d5 Binary files /dev/null and b/Resources/Textures/Objects/Misc/chopstick.rsi/inhand-right.png differ diff --git a/Resources/Textures/Objects/Misc/chopstick.rsi/meta.json b/Resources/Textures/Objects/Misc/chopstick.rsi/meta.json new file mode 100644 index 0000000000..78e9149225 --- /dev/null +++ b/Resources/Textures/Objects/Misc/chopstick.rsi/meta.json @@ -0,0 +1,25 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from goonstation at https://github.com/goonstation/goonstation/pull/1179", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + }, + { + "name": "paired" + } + ] + } \ No newline at end of file diff --git a/Resources/Textures/Objects/Misc/chopstick.rsi/paired.png b/Resources/Textures/Objects/Misc/chopstick.rsi/paired.png new file mode 100644 index 0000000000..220dc31ecb Binary files /dev/null and b/Resources/Textures/Objects/Misc/chopstick.rsi/paired.png differ diff --git a/Resources/Textures/Objects/Misc/mail_capsule.rsi/icon-cash.png b/Resources/Textures/Objects/Misc/mail_capsule.rsi/icon-cash.png new file mode 100644 index 0000000000..8ba33c95b5 Binary files /dev/null and b/Resources/Textures/Objects/Misc/mail_capsule.rsi/icon-cash.png differ diff --git a/Resources/Textures/Objects/Misc/mail_capsule.rsi/icon-empty.png b/Resources/Textures/Objects/Misc/mail_capsule.rsi/icon-empty.png new file mode 100644 index 0000000000..085b787410 Binary files /dev/null and b/Resources/Textures/Objects/Misc/mail_capsule.rsi/icon-empty.png differ diff --git a/Resources/Textures/Objects/Misc/mail_capsule.rsi/icon-food.png b/Resources/Textures/Objects/Misc/mail_capsule.rsi/icon-food.png new file mode 100644 index 0000000000..d08489cec8 Binary files /dev/null and b/Resources/Textures/Objects/Misc/mail_capsule.rsi/icon-food.png differ diff --git a/Resources/Textures/Objects/Misc/mail_capsule.rsi/icon-mail.png b/Resources/Textures/Objects/Misc/mail_capsule.rsi/icon-mail.png new file mode 100644 index 0000000000..b35a2acc0f Binary files /dev/null and b/Resources/Textures/Objects/Misc/mail_capsule.rsi/icon-mail.png differ diff --git a/Resources/Textures/Objects/Misc/mail_capsule.rsi/meta.json b/Resources/Textures/Objects/Misc/mail_capsule.rsi/meta.json new file mode 100644 index 0000000000..2e9bfc3617 --- /dev/null +++ b/Resources/Textures/Objects/Misc/mail_capsule.rsi/meta.json @@ -0,0 +1,26 @@ +{ + "version": 1, + "license": "CC-BY-SA-4.0", + "copyright": "Made for Frontier by erhardsteinhauer (discord)", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon-empty" + }, + { + "name": "icon-mail" + }, + { + "name": "icon-food" + }, + { + "name": "icon-cash" + }, + { + "name": "spent" + } + ] +} diff --git a/Resources/Textures/Objects/Misc/mail_capsule.rsi/spent.png b/Resources/Textures/Objects/Misc/mail_capsule.rsi/spent.png new file mode 100644 index 0000000000..acd0d0577f Binary files /dev/null and b/Resources/Textures/Objects/Misc/mail_capsule.rsi/spent.png differ diff --git a/Resources/Textures/Objects/Misc/utensils.rsi/bar_spoon-inhand-left.png b/Resources/Textures/Objects/Misc/utensils.rsi/bar_spoon-inhand-left.png new file mode 100644 index 0000000000..fba15fa255 Binary files /dev/null and b/Resources/Textures/Objects/Misc/utensils.rsi/bar_spoon-inhand-left.png differ diff --git a/Resources/Textures/Objects/Misc/utensils.rsi/bar_spoon-inhand-right.png b/Resources/Textures/Objects/Misc/utensils.rsi/bar_spoon-inhand-right.png new file mode 100644 index 0000000000..d2b32fd8b8 Binary files /dev/null and b/Resources/Textures/Objects/Misc/utensils.rsi/bar_spoon-inhand-right.png differ diff --git a/Resources/Textures/Objects/Misc/utensils.rsi/bar_spoon.png b/Resources/Textures/Objects/Misc/utensils.rsi/bar_spoon.png new file mode 100644 index 0000000000..f24ded7e6b Binary files /dev/null and b/Resources/Textures/Objects/Misc/utensils.rsi/bar_spoon.png differ diff --git a/Resources/Textures/Objects/Misc/utensils.rsi/meta.json b/Resources/Textures/Objects/Misc/utensils.rsi/meta.json index 30dd4e8564..77aeb5e3c1 100644 --- a/Resources/Textures/Objects/Misc/utensils.rsi/meta.json +++ b/Resources/Textures/Objects/Misc/utensils.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "Taken from tgstation at https://github.com/tgstation/tgstation/commit/e1142f20f5e4661cb6845cfcf2dd69f864d67432 and modified by Swept", + "copyright": "Taken from tgstation at https://github.com/tgstation/tgstation/commit/e1142f20f5e4661cb6845cfcf2dd69f864d67432 and modified by Swept; Bar spoon by Dezzzix", "size": { "x": 32, "y": 32 @@ -40,6 +40,17 @@ }, { "name": "plastic_knife" + }, + { + "name": "bar_spoon" + }, + { + "name": "bar_spoon-inhand-left", + "directions": 4 + }, + { + "name": "bar_spoon-inhand-right", + "directions": 4 } ] } diff --git a/Resources/Textures/Objects/Power/portable_recharger.rsi/charging-equipped-BACKPACK.png b/Resources/Textures/Objects/Power/portable_recharger.rsi/charging-equipped-BACKPACK.png new file mode 100644 index 0000000000..500ad05704 Binary files /dev/null and b/Resources/Textures/Objects/Power/portable_recharger.rsi/charging-equipped-BACKPACK.png differ diff --git a/Resources/Textures/Objects/Power/portable_recharger.rsi/charging-unlit.png b/Resources/Textures/Objects/Power/portable_recharger.rsi/charging-unlit.png new file mode 100644 index 0000000000..6c902b7d7e Binary files /dev/null and b/Resources/Textures/Objects/Power/portable_recharger.rsi/charging-unlit.png differ diff --git a/Resources/Textures/Objects/Power/portable_recharger.rsi/charging.png b/Resources/Textures/Objects/Power/portable_recharger.rsi/charging.png new file mode 100644 index 0000000000..6105bb4ad3 Binary files /dev/null and b/Resources/Textures/Objects/Power/portable_recharger.rsi/charging.png differ diff --git a/Resources/Textures/Objects/Power/portable_recharger.rsi/inhand-left.png b/Resources/Textures/Objects/Power/portable_recharger.rsi/inhand-left.png new file mode 100644 index 0000000000..e3bc6d8299 Binary files /dev/null and b/Resources/Textures/Objects/Power/portable_recharger.rsi/inhand-left.png differ diff --git a/Resources/Textures/Objects/Power/portable_recharger.rsi/inhand-right.png b/Resources/Textures/Objects/Power/portable_recharger.rsi/inhand-right.png new file mode 100644 index 0000000000..8c65192231 Binary files /dev/null and b/Resources/Textures/Objects/Power/portable_recharger.rsi/inhand-right.png differ diff --git a/Resources/Textures/Objects/Power/portable_recharger.rsi/meta.json b/Resources/Textures/Objects/Power/portable_recharger.rsi/meta.json new file mode 100644 index 0000000000..794f491bdb --- /dev/null +++ b/Resources/Textures/Objects/Power/portable_recharger.rsi/meta.json @@ -0,0 +1,92 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Sprited by Lomovar", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "charging", + "delays": [ + [ + 0.3, + 0.3, + 0.3, + 0.3, + 0.3, + 0.3 + ] + ] + }, + { + "name": "charging-equipped-BACKPACK", + "directions": 4, + "delays": [ + [ + 0.3, + 0.3, + 0.3, + 0.3, + 0.3, + 0.3, + 0.3, + 0.3 + ], + [ + 0.3, + 0.3, + 0.3, + 0.3, + 0.3, + 0.3, + 0.3, + 0.3 + ], + [ + 0.3, + 0.3, + 0.3, + 0.3, + 0.3, + 0.3, + 0.3, + 0.3 + ], + [ + 0.3, + 0.3, + 0.3, + 0.3, + 0.3, + 0.3, + 0.3, + 0.3 + ] + ] + }, + { + "name": "charging-unlit", + "delays": [ + [ + 0.3, + 0.3, + 0.3, + 0.3, + 0.3, + 0.3 + ] + ] + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + } + ] +} + diff --git a/Resources/Textures/Objects/Specific/Chapel/quran.rsi/icon.png b/Resources/Textures/Objects/Specific/Chapel/quran.rsi/icon.png new file mode 100644 index 0000000000..0c710e8850 Binary files /dev/null and b/Resources/Textures/Objects/Specific/Chapel/quran.rsi/icon.png differ diff --git a/Resources/Textures/Objects/Specific/Chapel/quran.rsi/inhand-left.png b/Resources/Textures/Objects/Specific/Chapel/quran.rsi/inhand-left.png new file mode 100644 index 0000000000..f5c0eca315 Binary files /dev/null and b/Resources/Textures/Objects/Specific/Chapel/quran.rsi/inhand-left.png differ diff --git a/Resources/Textures/Objects/Specific/Chapel/quran.rsi/inhand-right.png b/Resources/Textures/Objects/Specific/Chapel/quran.rsi/inhand-right.png new file mode 100644 index 0000000000..bc8b034185 Binary files /dev/null and b/Resources/Textures/Objects/Specific/Chapel/quran.rsi/inhand-right.png differ diff --git a/Resources/Textures/Objects/Specific/Chapel/quran.rsi/meta.json b/Resources/Textures/Objects/Specific/Chapel/quran.rsi/meta.json new file mode 100644 index 0000000000..64d37670f1 --- /dev/null +++ b/Resources/Textures/Objects/Specific/Chapel/quran.rsi/meta.json @@ -0,0 +1,22 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from tgstation at https://github.com/tgstation/tgstation/commit/40d89d11ea4a5cb81d61dc1018b46f4e7d32c62a, modified by Terraspark4941", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/Objects/Specific/Hydroponics/chili.rsi/produce.png b/Resources/Textures/Objects/Specific/Hydroponics/chili.rsi/produce.png index 5033cdecc7..873f89e181 100644 Binary files a/Resources/Textures/Objects/Specific/Hydroponics/chili.rsi/produce.png and b/Resources/Textures/Objects/Specific/Hydroponics/chili.rsi/produce.png differ diff --git a/Resources/Textures/Objects/Specific/Hydroponics/chilly.rsi/produce.png b/Resources/Textures/Objects/Specific/Hydroponics/chilly.rsi/produce.png index 45ea8a32f5..b2c59dc31a 100644 Binary files a/Resources/Textures/Objects/Specific/Hydroponics/chilly.rsi/produce.png and b/Resources/Textures/Objects/Specific/Hydroponics/chilly.rsi/produce.png differ diff --git a/Resources/Textures/Objects/Specific/Hydroponics/pyrotton.rsi/dead.png b/Resources/Textures/Objects/Specific/Hydroponics/pyrotton.rsi/dead.png new file mode 100644 index 0000000000..39d4b40f4c Binary files /dev/null and b/Resources/Textures/Objects/Specific/Hydroponics/pyrotton.rsi/dead.png differ diff --git a/Resources/Textures/Objects/Specific/Hydroponics/pyrotton.rsi/harvest.png b/Resources/Textures/Objects/Specific/Hydroponics/pyrotton.rsi/harvest.png new file mode 100644 index 0000000000..1012ccfe03 Binary files /dev/null and b/Resources/Textures/Objects/Specific/Hydroponics/pyrotton.rsi/harvest.png differ diff --git a/Resources/Textures/Objects/Specific/Hydroponics/pyrotton.rsi/meta.json b/Resources/Textures/Objects/Specific/Hydroponics/pyrotton.rsi/meta.json new file mode 100644 index 0000000000..4a6e3c94fc --- /dev/null +++ b/Resources/Textures/Objects/Specific/Hydroponics/pyrotton.rsi/meta.json @@ -0,0 +1,32 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Drawn by Ubaser, using the cotton sprites as a base.", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "dead" + }, + { + "name": "harvest" + }, + { + "name": "produce" + }, + { + "name": "seed" + }, + { + "name": "stage-1" + }, + { + "name": "stage-2" + }, + { + "name": "stage-3" + } + ] +} diff --git a/Resources/Textures/Objects/Specific/Hydroponics/pyrotton.rsi/produce.png b/Resources/Textures/Objects/Specific/Hydroponics/pyrotton.rsi/produce.png new file mode 100644 index 0000000000..72a98653c8 Binary files /dev/null and b/Resources/Textures/Objects/Specific/Hydroponics/pyrotton.rsi/produce.png differ diff --git a/Resources/Textures/Objects/Specific/Hydroponics/pyrotton.rsi/seed.png b/Resources/Textures/Objects/Specific/Hydroponics/pyrotton.rsi/seed.png new file mode 100644 index 0000000000..6528f4f326 Binary files /dev/null and b/Resources/Textures/Objects/Specific/Hydroponics/pyrotton.rsi/seed.png differ diff --git a/Resources/Textures/Objects/Specific/Hydroponics/pyrotton.rsi/stage-1.png b/Resources/Textures/Objects/Specific/Hydroponics/pyrotton.rsi/stage-1.png new file mode 100644 index 0000000000..c86f85f0d2 Binary files /dev/null and b/Resources/Textures/Objects/Specific/Hydroponics/pyrotton.rsi/stage-1.png differ diff --git a/Resources/Textures/Objects/Specific/Hydroponics/pyrotton.rsi/stage-2.png b/Resources/Textures/Objects/Specific/Hydroponics/pyrotton.rsi/stage-2.png new file mode 100644 index 0000000000..7bc634ce83 Binary files /dev/null and b/Resources/Textures/Objects/Specific/Hydroponics/pyrotton.rsi/stage-2.png differ diff --git a/Resources/Textures/Objects/Specific/Hydroponics/pyrotton.rsi/stage-3.png b/Resources/Textures/Objects/Specific/Hydroponics/pyrotton.rsi/stage-3.png new file mode 100644 index 0000000000..31aa7399f5 Binary files /dev/null and b/Resources/Textures/Objects/Specific/Hydroponics/pyrotton.rsi/stage-3.png differ diff --git a/Resources/Textures/Objects/Specific/Hydroponics/rainbow_cannabis.rsi/dead.png b/Resources/Textures/Objects/Specific/Hydroponics/rainbow_cannabis.rsi/dead.png new file mode 100644 index 0000000000..2eb3c64ca9 Binary files /dev/null and b/Resources/Textures/Objects/Specific/Hydroponics/rainbow_cannabis.rsi/dead.png differ diff --git a/Resources/Textures/Objects/Specific/Hydroponics/rainbow_cannabis.rsi/dried.png b/Resources/Textures/Objects/Specific/Hydroponics/rainbow_cannabis.rsi/dried.png new file mode 100644 index 0000000000..77f23e938c Binary files /dev/null and b/Resources/Textures/Objects/Specific/Hydroponics/rainbow_cannabis.rsi/dried.png differ diff --git a/Resources/Textures/Objects/Specific/Hydroponics/rainbow_cannabis.rsi/harvest.png b/Resources/Textures/Objects/Specific/Hydroponics/rainbow_cannabis.rsi/harvest.png new file mode 100644 index 0000000000..9702e5b488 Binary files /dev/null and b/Resources/Textures/Objects/Specific/Hydroponics/rainbow_cannabis.rsi/harvest.png differ diff --git a/Resources/Textures/Objects/Specific/Hydroponics/rainbow_cannabis.rsi/meta.json b/Resources/Textures/Objects/Specific/Hydroponics/rainbow_cannabis.rsi/meta.json new file mode 100644 index 0000000000..e5bfeb99ef --- /dev/null +++ b/Resources/Textures/Objects/Specific/Hydroponics/rainbow_cannabis.rsi/meta.json @@ -0,0 +1,173 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from https://github.com/vgstation-coders/vgstation13 at 1dbcf389b0ec6b2c51b002df5fef8dd1519f8068 and modified by potato1234_x", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "dead" + }, + { + "name": "harvest", + "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, + 0.08, + 0.08, + 0.08, + 0.08, + 0.08, + 0.08, + 0.08, + 0.08, + 0.08 + ] + ] + }, + { + "name": "powderpile_rainbow" + }, + { + "name": "produce", + "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, + 0.08, + 0.08, + 0.08, + 0.08, + 0.08, + 0.08, + 0.08, + 0.08, + 0.08 + ] + ] + }, + { + "name": "dried" + }, + { + "name": "seed" + }, + { + "name": "stage-1", + "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, + 0.08, + 0.08, + 0.08, + 0.08, + 0.08, + 0.08, + 0.08, + 0.08, + 0.08 + ] + ] + }, + { + "name": "stage-2", + "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, + 0.08, + 0.08, + 0.08, + 0.08, + 0.08, + 0.08, + 0.08, + 0.08, + 0.08 + ] + ] + }, + { + "name": "stage-3", + "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, + 0.08, + 0.08, + 0.08, + 0.08, + 0.08, + 0.08, + 0.08, + 0.08, + 0.08 + ] + ] + } + ] +} diff --git a/Resources/Textures/Objects/Specific/Hydroponics/rainbow_cannabis.rsi/powderpile_rainbow.png b/Resources/Textures/Objects/Specific/Hydroponics/rainbow_cannabis.rsi/powderpile_rainbow.png new file mode 100644 index 0000000000..15057f8785 Binary files /dev/null and b/Resources/Textures/Objects/Specific/Hydroponics/rainbow_cannabis.rsi/powderpile_rainbow.png differ diff --git a/Resources/Textures/Objects/Specific/Hydroponics/rainbow_cannabis.rsi/produce.png b/Resources/Textures/Objects/Specific/Hydroponics/rainbow_cannabis.rsi/produce.png new file mode 100644 index 0000000000..400fed1b21 Binary files /dev/null and b/Resources/Textures/Objects/Specific/Hydroponics/rainbow_cannabis.rsi/produce.png differ diff --git a/Resources/Textures/Objects/Specific/Hydroponics/rainbow_cannabis.rsi/seed.png b/Resources/Textures/Objects/Specific/Hydroponics/rainbow_cannabis.rsi/seed.png new file mode 100644 index 0000000000..fa194148f3 Binary files /dev/null and b/Resources/Textures/Objects/Specific/Hydroponics/rainbow_cannabis.rsi/seed.png differ diff --git a/Resources/Textures/Objects/Specific/Hydroponics/rainbow_cannabis.rsi/stage-1.png b/Resources/Textures/Objects/Specific/Hydroponics/rainbow_cannabis.rsi/stage-1.png new file mode 100644 index 0000000000..8a3e17b098 Binary files /dev/null and b/Resources/Textures/Objects/Specific/Hydroponics/rainbow_cannabis.rsi/stage-1.png differ diff --git a/Resources/Textures/Objects/Specific/Hydroponics/rainbow_cannabis.rsi/stage-2.png b/Resources/Textures/Objects/Specific/Hydroponics/rainbow_cannabis.rsi/stage-2.png new file mode 100644 index 0000000000..d30ed1ed26 Binary files /dev/null and b/Resources/Textures/Objects/Specific/Hydroponics/rainbow_cannabis.rsi/stage-2.png differ diff --git a/Resources/Textures/Objects/Specific/Hydroponics/rainbow_cannabis.rsi/stage-3.png b/Resources/Textures/Objects/Specific/Hydroponics/rainbow_cannabis.rsi/stage-3.png new file mode 100644 index 0000000000..f4880b69e0 Binary files /dev/null and b/Resources/Textures/Objects/Specific/Hydroponics/rainbow_cannabis.rsi/stage-3.png differ diff --git a/Resources/Textures/Nyanotrasen/Objects/Specific/Mail/mail.rsi/broken.png b/Resources/Textures/Objects/Specific/Mail/mail.rsi/broken.png similarity index 100% rename from Resources/Textures/Nyanotrasen/Objects/Specific/Mail/mail.rsi/broken.png rename to Resources/Textures/Objects/Specific/Mail/mail.rsi/broken.png diff --git a/Resources/Textures/Nyanotrasen/Objects/Specific/Mail/mail.rsi/fragile.png b/Resources/Textures/Objects/Specific/Mail/mail.rsi/fragile.png similarity index 100% rename from Resources/Textures/Nyanotrasen/Objects/Specific/Mail/mail.rsi/fragile.png rename to Resources/Textures/Objects/Specific/Mail/mail.rsi/fragile.png diff --git a/Resources/Textures/Nyanotrasen/Objects/Specific/Mail/mail.rsi/icon.png b/Resources/Textures/Objects/Specific/Mail/mail.rsi/icon.png similarity index 100% rename from Resources/Textures/Nyanotrasen/Objects/Specific/Mail/mail.rsi/icon.png rename to Resources/Textures/Objects/Specific/Mail/mail.rsi/icon.png diff --git a/Resources/Textures/Nyanotrasen/Objects/Specific/Mail/mail.rsi/locked.png b/Resources/Textures/Objects/Specific/Mail/mail.rsi/locked.png similarity index 100% rename from Resources/Textures/Nyanotrasen/Objects/Specific/Mail/mail.rsi/locked.png rename to Resources/Textures/Objects/Specific/Mail/mail.rsi/locked.png diff --git a/Resources/Textures/Nyanotrasen/Objects/Specific/Mail/mail.rsi/meta.json b/Resources/Textures/Objects/Specific/Mail/mail.rsi/meta.json similarity index 100% rename from Resources/Textures/Nyanotrasen/Objects/Specific/Mail/mail.rsi/meta.json rename to Resources/Textures/Objects/Specific/Mail/mail.rsi/meta.json diff --git a/Resources/Textures/Nyanotrasen/Objects/Specific/Mail/mail.rsi/postmark.png b/Resources/Textures/Objects/Specific/Mail/mail.rsi/postmark.png similarity index 100% rename from Resources/Textures/Nyanotrasen/Objects/Specific/Mail/mail.rsi/postmark.png rename to Resources/Textures/Objects/Specific/Mail/mail.rsi/postmark.png diff --git a/Resources/Textures/Nyanotrasen/Objects/Specific/Mail/mail.rsi/priority.png b/Resources/Textures/Objects/Specific/Mail/mail.rsi/priority.png similarity index 100% rename from Resources/Textures/Nyanotrasen/Objects/Specific/Mail/mail.rsi/priority.png rename to Resources/Textures/Objects/Specific/Mail/mail.rsi/priority.png diff --git a/Resources/Textures/Nyanotrasen/Objects/Specific/Mail/mail.rsi/priority_inactive.png b/Resources/Textures/Objects/Specific/Mail/mail.rsi/priority_inactive.png similarity index 100% rename from Resources/Textures/Nyanotrasen/Objects/Specific/Mail/mail.rsi/priority_inactive.png rename to Resources/Textures/Objects/Specific/Mail/mail.rsi/priority_inactive.png diff --git a/Resources/Textures/Nyanotrasen/Objects/Specific/Mail/mail.rsi/trash.png b/Resources/Textures/Objects/Specific/Mail/mail.rsi/trash.png similarity index 100% rename from Resources/Textures/Nyanotrasen/Objects/Specific/Mail/mail.rsi/trash.png rename to Resources/Textures/Objects/Specific/Mail/mail.rsi/trash.png diff --git a/Resources/Textures/Objects/Specific/Mail/mail_large.rsi/broken.png b/Resources/Textures/Objects/Specific/Mail/mail_large.rsi/broken.png new file mode 100644 index 0000000000..1c798c4075 Binary files /dev/null and b/Resources/Textures/Objects/Specific/Mail/mail_large.rsi/broken.png differ diff --git a/Resources/Textures/Objects/Specific/Mail/mail_large.rsi/fragile.png b/Resources/Textures/Objects/Specific/Mail/mail_large.rsi/fragile.png new file mode 100644 index 0000000000..0917000cbe Binary files /dev/null and b/Resources/Textures/Objects/Specific/Mail/mail_large.rsi/fragile.png differ diff --git a/Resources/Textures/Objects/Specific/Mail/mail_large.rsi/icon.png b/Resources/Textures/Objects/Specific/Mail/mail_large.rsi/icon.png new file mode 100644 index 0000000000..f3974ab116 Binary files /dev/null and b/Resources/Textures/Objects/Specific/Mail/mail_large.rsi/icon.png differ diff --git a/Resources/Textures/Objects/Specific/Mail/mail_large.rsi/inhand-left.png b/Resources/Textures/Objects/Specific/Mail/mail_large.rsi/inhand-left.png new file mode 100644 index 0000000000..ccbc87cf3b Binary files /dev/null and b/Resources/Textures/Objects/Specific/Mail/mail_large.rsi/inhand-left.png differ diff --git a/Resources/Textures/Objects/Specific/Mail/mail_large.rsi/inhand-right.png b/Resources/Textures/Objects/Specific/Mail/mail_large.rsi/inhand-right.png new file mode 100644 index 0000000000..ccbc87cf3b Binary files /dev/null and b/Resources/Textures/Objects/Specific/Mail/mail_large.rsi/inhand-right.png differ diff --git a/Resources/Textures/Objects/Specific/Mail/mail_large.rsi/locked.png b/Resources/Textures/Objects/Specific/Mail/mail_large.rsi/locked.png new file mode 100644 index 0000000000..1cacaf1921 Binary files /dev/null and b/Resources/Textures/Objects/Specific/Mail/mail_large.rsi/locked.png differ diff --git a/Resources/Textures/Objects/Specific/Mail/mail_large.rsi/meta.json b/Resources/Textures/Objects/Specific/Mail/mail_large.rsi/meta.json new file mode 100644 index 0000000000..ac5345ba1a --- /dev/null +++ b/Resources/Textures/Objects/Specific/Mail/mail_large.rsi/meta.json @@ -0,0 +1,40 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from tgstation (obj/storage/closet.dmi, obj/service/bureaucracy.dmi), modified by Whatstone (Discord). broken, inhand-left, inhand-right by Whatstone.", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "broken" + }, + { + "name": "fragile" + }, + { + "name": "icon" + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + }, + { + "name": "locked" + }, + { + "name": "priority" + }, + { + "name": "priority_inactive" + }, + { + "name": "trash" + } + ] +} diff --git a/Resources/Textures/Objects/Specific/Mail/mail_large.rsi/priority.png b/Resources/Textures/Objects/Specific/Mail/mail_large.rsi/priority.png new file mode 100644 index 0000000000..9c5a74ad10 Binary files /dev/null and b/Resources/Textures/Objects/Specific/Mail/mail_large.rsi/priority.png differ diff --git a/Resources/Textures/Objects/Specific/Mail/mail_large.rsi/priority_inactive.png b/Resources/Textures/Objects/Specific/Mail/mail_large.rsi/priority_inactive.png new file mode 100644 index 0000000000..fc03165b57 Binary files /dev/null and b/Resources/Textures/Objects/Specific/Mail/mail_large.rsi/priority_inactive.png differ diff --git a/Resources/Textures/Objects/Specific/Mail/mail_large.rsi/trash.png b/Resources/Textures/Objects/Specific/Mail/mail_large.rsi/trash.png new file mode 100644 index 0000000000..2ef4ee7233 Binary files /dev/null and b/Resources/Textures/Objects/Specific/Mail/mail_large.rsi/trash.png differ diff --git a/Resources/Textures/Objects/Specific/Robotics/borgmodule.rsi/icon-bomb.png b/Resources/Textures/Objects/Specific/Robotics/borgmodule.rsi/icon-bomb.png new file mode 100644 index 0000000000..5f876573f3 Binary files /dev/null and b/Resources/Textures/Objects/Specific/Robotics/borgmodule.rsi/icon-bomb.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 ce8f8187b7..1b3eba668d 100644 --- a/Resources/Textures/Objects/Specific/Robotics/borgmodule.rsi/meta.json +++ b/Resources/Textures/Objects/Specific/Robotics/borgmodule.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC0-1.0", - "copyright": "Created by EmoGarbage404 (github) for Space Station 14. icon-construction.png created by deltanedas (github).", + "copyright": "Created by EmoGarbage404 (github) for Space Station 14. icon-construction.png created by deltanedas (github). syndicateborgbomb.png created by Mangohydra (github).", "size": { "x": 32, "y": 32 @@ -112,6 +112,9 @@ { "name": "janitor" }, + { + "name": "icon-bomb" + }, { "name": "medical" }, @@ -124,6 +127,9 @@ { "name": "service" }, + { + "name": "syndicateborgbomb" + }, { "name": "syndicate" } diff --git a/Resources/Textures/Objects/Specific/Robotics/borgmodule.rsi/syndicateborgbomb.png b/Resources/Textures/Objects/Specific/Robotics/borgmodule.rsi/syndicateborgbomb.png new file mode 100644 index 0000000000..c5238b96fc Binary files /dev/null and b/Resources/Textures/Objects/Specific/Robotics/borgmodule.rsi/syndicateborgbomb.png differ diff --git a/Resources/Textures/Objects/Storage/boxes.rsi/meta.json b/Resources/Textures/Objects/Storage/boxes.rsi/meta.json index b30927da33..0cba2f59d9 100644 --- a/Resources/Textures/Objects/Storage/boxes.rsi/meta.json +++ b/Resources/Textures/Objects/Storage/boxes.rsi/meta.json @@ -197,6 +197,9 @@ { "name": "shellslug" }, + { + "name": "shelluranium" + }, { "name": "shelltoy" }, diff --git a/Resources/Textures/Objects/Storage/boxes.rsi/shelluranium.png b/Resources/Textures/Objects/Storage/boxes.rsi/shelluranium.png new file mode 100644 index 0000000000..2a4e1dee15 Binary files /dev/null and b/Resources/Textures/Objects/Storage/boxes.rsi/shelluranium.png differ diff --git a/Resources/Textures/Objects/Tanks/emergency.rsi/equipped-SUITSTORAGE.png b/Resources/Textures/Objects/Tanks/emergency.rsi/equipped-SUITSTORAGE.png new file mode 100644 index 0000000000..a37261e3f7 Binary files /dev/null and b/Resources/Textures/Objects/Tanks/emergency.rsi/equipped-SUITSTORAGE.png differ diff --git a/Resources/Textures/Objects/Tanks/emergency.rsi/meta.json b/Resources/Textures/Objects/Tanks/emergency.rsi/meta.json index b4d4730957..c71ae8955e 100644 --- a/Resources/Textures/Objects/Tanks/emergency.rsi/meta.json +++ b/Resources/Textures/Objects/Tanks/emergency.rsi/meta.json @@ -71,6 +71,10 @@ { "name": "inhand-right", "directions": 4 + }, + { + "name": "equipped-SUITSTORAGE", + "directions": 4 } ] } diff --git a/Resources/Textures/Objects/Tanks/emergency_clown.rsi/equipped-SUITSTORAGE.png b/Resources/Textures/Objects/Tanks/emergency_clown.rsi/equipped-SUITSTORAGE.png new file mode 100644 index 0000000000..dd19aa5680 Binary files /dev/null and b/Resources/Textures/Objects/Tanks/emergency_clown.rsi/equipped-SUITSTORAGE.png differ diff --git a/Resources/Textures/Objects/Tanks/emergency_clown.rsi/meta.json b/Resources/Textures/Objects/Tanks/emergency_clown.rsi/meta.json index 489cf3072a..21d23712e9 100644 --- a/Resources/Textures/Objects/Tanks/emergency_clown.rsi/meta.json +++ b/Resources/Textures/Objects/Tanks/emergency_clown.rsi/meta.json @@ -66,6 +66,10 @@ { "name": "inhand-right", "directions": 4 + }, + { + "name": "equipped-SUITSTORAGE", + "directions": 4 } ] } diff --git a/Resources/Textures/Objects/Tanks/emergency_double.rsi/equipped-SUITSTORAGE.png b/Resources/Textures/Objects/Tanks/emergency_double.rsi/equipped-SUITSTORAGE.png new file mode 100644 index 0000000000..f139bc6db2 Binary files /dev/null and b/Resources/Textures/Objects/Tanks/emergency_double.rsi/equipped-SUITSTORAGE.png differ diff --git a/Resources/Textures/Objects/Tanks/emergency_double.rsi/meta.json b/Resources/Textures/Objects/Tanks/emergency_double.rsi/meta.json index 6b3765d794..b3ab67fad6 100644 --- a/Resources/Textures/Objects/Tanks/emergency_double.rsi/meta.json +++ b/Resources/Textures/Objects/Tanks/emergency_double.rsi/meta.json @@ -71,6 +71,10 @@ { "name": "inhand-right", "directions": 4 + }, + { + "name": "equipped-SUITSTORAGE", + "directions": 4 } ] } diff --git a/Resources/Textures/Objects/Tanks/emergency_double_red.rsi/equipped-SUITSTORAGE.png b/Resources/Textures/Objects/Tanks/emergency_double_red.rsi/equipped-SUITSTORAGE.png new file mode 100644 index 0000000000..7e2f947d34 Binary files /dev/null and b/Resources/Textures/Objects/Tanks/emergency_double_red.rsi/equipped-SUITSTORAGE.png differ diff --git a/Resources/Textures/Objects/Tanks/emergency_double_red.rsi/meta.json b/Resources/Textures/Objects/Tanks/emergency_double_red.rsi/meta.json index ce287bf277..74fc108c09 100644 --- a/Resources/Textures/Objects/Tanks/emergency_double_red.rsi/meta.json +++ b/Resources/Textures/Objects/Tanks/emergency_double_red.rsi/meta.json @@ -66,6 +66,10 @@ { "name": "inhand-right", "directions": 4 + }, + { + "name": "equipped-SUITSTORAGE", + "directions": 4 } ] } diff --git a/Resources/Textures/Objects/Tanks/emergency_extended.rsi/equipped-SUITSTORAGE.png b/Resources/Textures/Objects/Tanks/emergency_extended.rsi/equipped-SUITSTORAGE.png new file mode 100644 index 0000000000..0470c6895f Binary files /dev/null and b/Resources/Textures/Objects/Tanks/emergency_extended.rsi/equipped-SUITSTORAGE.png differ diff --git a/Resources/Textures/Objects/Tanks/emergency_extended.rsi/meta.json b/Resources/Textures/Objects/Tanks/emergency_extended.rsi/meta.json index a1661aee78..fe19dcec1c 100644 --- a/Resources/Textures/Objects/Tanks/emergency_extended.rsi/meta.json +++ b/Resources/Textures/Objects/Tanks/emergency_extended.rsi/meta.json @@ -66,6 +66,10 @@ { "name": "inhand-right", "directions": 4 + }, + { + "name": "equipped-SUITSTORAGE", + "directions": 4 } ] } diff --git a/Resources/Textures/Objects/Tanks/emergency_extended_red.rsi/equipped-SUITSTORAGE.png b/Resources/Textures/Objects/Tanks/emergency_extended_red.rsi/equipped-SUITSTORAGE.png new file mode 100644 index 0000000000..db800b2a3b Binary files /dev/null and b/Resources/Textures/Objects/Tanks/emergency_extended_red.rsi/equipped-SUITSTORAGE.png differ diff --git a/Resources/Textures/Objects/Tanks/emergency_extended_red.rsi/meta.json b/Resources/Textures/Objects/Tanks/emergency_extended_red.rsi/meta.json index ce287bf277..74fc108c09 100644 --- a/Resources/Textures/Objects/Tanks/emergency_extended_red.rsi/meta.json +++ b/Resources/Textures/Objects/Tanks/emergency_extended_red.rsi/meta.json @@ -66,6 +66,10 @@ { "name": "inhand-right", "directions": 4 + }, + { + "name": "equipped-SUITSTORAGE", + "directions": 4 } ] } diff --git a/Resources/Textures/Objects/Tanks/emergency_red.rsi/equipped-SUITSTORAGE.png b/Resources/Textures/Objects/Tanks/emergency_red.rsi/equipped-SUITSTORAGE.png new file mode 100644 index 0000000000..db800b2a3b Binary files /dev/null and b/Resources/Textures/Objects/Tanks/emergency_red.rsi/equipped-SUITSTORAGE.png differ diff --git a/Resources/Textures/Objects/Tanks/emergency_red.rsi/meta.json b/Resources/Textures/Objects/Tanks/emergency_red.rsi/meta.json index ce3d401ca2..d71cdae541 100644 --- a/Resources/Textures/Objects/Tanks/emergency_red.rsi/meta.json +++ b/Resources/Textures/Objects/Tanks/emergency_red.rsi/meta.json @@ -66,6 +66,10 @@ { "name": "inhand-right", "directions": 4 + }, + { + "name": "equipped-SUITSTORAGE", + "directions": 4 } ] } diff --git a/Resources/Textures/Objects/Tanks/emergency_yellow.rsi/equipped-SUITSTORAGE.png b/Resources/Textures/Objects/Tanks/emergency_yellow.rsi/equipped-SUITSTORAGE.png new file mode 100644 index 0000000000..0470c6895f Binary files /dev/null and b/Resources/Textures/Objects/Tanks/emergency_yellow.rsi/equipped-SUITSTORAGE.png differ diff --git a/Resources/Textures/Objects/Tanks/emergency_yellow.rsi/meta.json b/Resources/Textures/Objects/Tanks/emergency_yellow.rsi/meta.json index 6b3765d794..b3ab67fad6 100644 --- a/Resources/Textures/Objects/Tanks/emergency_yellow.rsi/meta.json +++ b/Resources/Textures/Objects/Tanks/emergency_yellow.rsi/meta.json @@ -71,6 +71,10 @@ { "name": "inhand-right", "directions": 4 + }, + { + "name": "equipped-SUITSTORAGE", + "directions": 4 } ] } diff --git a/Resources/Textures/Objects/Tanks/plasma.rsi/equipped-SUITSTORAGE.png b/Resources/Textures/Objects/Tanks/plasma.rsi/equipped-SUITSTORAGE.png new file mode 100644 index 0000000000..e282da2e6d Binary files /dev/null and b/Resources/Textures/Objects/Tanks/plasma.rsi/equipped-SUITSTORAGE.png differ diff --git a/Resources/Textures/Objects/Tanks/plasma.rsi/meta.json b/Resources/Textures/Objects/Tanks/plasma.rsi/meta.json index a88e367a85..2d3199f75c 100644 --- a/Resources/Textures/Objects/Tanks/plasma.rsi/meta.json +++ b/Resources/Textures/Objects/Tanks/plasma.rsi/meta.json @@ -21,6 +21,10 @@ { "name": "inhand-right", "directions": 4 + }, + { + "name": "equipped-SUITSTORAGE", + "directions": 4 } ] } diff --git a/Resources/Textures/Objects/Weapons/Guns/Battery/antiquelasergun.rsi/base.png b/Resources/Textures/Objects/Weapons/Guns/Battery/antiquelasergun.rsi/base.png index d6da03ed28..003858cf9d 100644 Binary files a/Resources/Textures/Objects/Weapons/Guns/Battery/antiquelasergun.rsi/base.png and b/Resources/Textures/Objects/Weapons/Guns/Battery/antiquelasergun.rsi/base.png differ diff --git a/Resources/Textures/Objects/Weapons/Guns/Battery/antiquelasergun.rsi/icon.png b/Resources/Textures/Objects/Weapons/Guns/Battery/antiquelasergun.rsi/icon.png index d2e461be28..88be89b378 100644 Binary files a/Resources/Textures/Objects/Weapons/Guns/Battery/antiquelasergun.rsi/icon.png and b/Resources/Textures/Objects/Weapons/Guns/Battery/antiquelasergun.rsi/icon.png differ diff --git a/Resources/Textures/Objects/Weapons/Guns/Battery/antiquelasergun.rsi/mag-unshaded-0.png b/Resources/Textures/Objects/Weapons/Guns/Battery/antiquelasergun.rsi/mag-unshaded-0.png index 32fba189df..042d52f5d7 100644 Binary files a/Resources/Textures/Objects/Weapons/Guns/Battery/antiquelasergun.rsi/mag-unshaded-0.png and b/Resources/Textures/Objects/Weapons/Guns/Battery/antiquelasergun.rsi/mag-unshaded-0.png differ diff --git a/Resources/Textures/Objects/Weapons/Guns/Battery/antiquelasergun.rsi/mag-unshaded-1.png b/Resources/Textures/Objects/Weapons/Guns/Battery/antiquelasergun.rsi/mag-unshaded-1.png index b0fa62d39f..5e64562bdc 100644 Binary files a/Resources/Textures/Objects/Weapons/Guns/Battery/antiquelasergun.rsi/mag-unshaded-1.png and b/Resources/Textures/Objects/Weapons/Guns/Battery/antiquelasergun.rsi/mag-unshaded-1.png differ diff --git a/Resources/Textures/Objects/Weapons/Guns/Battery/antiquelasergun.rsi/mag-unshaded-2.png b/Resources/Textures/Objects/Weapons/Guns/Battery/antiquelasergun.rsi/mag-unshaded-2.png index 4ad441aa0b..df4767bff9 100644 Binary files a/Resources/Textures/Objects/Weapons/Guns/Battery/antiquelasergun.rsi/mag-unshaded-2.png and b/Resources/Textures/Objects/Weapons/Guns/Battery/antiquelasergun.rsi/mag-unshaded-2.png differ diff --git a/Resources/Textures/Objects/Weapons/Guns/Battery/antiquelasergun.rsi/mag-unshaded-3.png b/Resources/Textures/Objects/Weapons/Guns/Battery/antiquelasergun.rsi/mag-unshaded-3.png index 1678a31534..fcbbc48af1 100644 Binary files a/Resources/Textures/Objects/Weapons/Guns/Battery/antiquelasergun.rsi/mag-unshaded-3.png and b/Resources/Textures/Objects/Weapons/Guns/Battery/antiquelasergun.rsi/mag-unshaded-3.png differ diff --git a/Resources/Textures/Objects/Weapons/Guns/Battery/antiquelasergun.rsi/mag-unshaded-4.png b/Resources/Textures/Objects/Weapons/Guns/Battery/antiquelasergun.rsi/mag-unshaded-4.png index 5300c65d31..40e557d736 100644 Binary files a/Resources/Textures/Objects/Weapons/Guns/Battery/antiquelasergun.rsi/mag-unshaded-4.png and b/Resources/Textures/Objects/Weapons/Guns/Battery/antiquelasergun.rsi/mag-unshaded-4.png differ diff --git a/Resources/Textures/Objects/Weapons/Guns/Battery/antiquelasergun.rsi/meta.json b/Resources/Textures/Objects/Weapons/Guns/Battery/antiquelasergun.rsi/meta.json index 04e2ac9309..86ecf2bff1 100644 --- a/Resources/Textures/Objects/Weapons/Guns/Battery/antiquelasergun.rsi/meta.json +++ b/Resources/Textures/Objects/Weapons/Guns/Battery/antiquelasergun.rsi/meta.json @@ -1,80 +1,80 @@ -{ - "version": 1, - "license": "CC-BY-SA-3.0", - "copyright": "taken from tg station at commit https://github.com/tgstation/tgstation/commit/8b7f8ba6a3327c7381967c550f185dffafd11a57", - "size": { - "x": 32, - "y": 32 - }, - "states": [ - { - "name": "icon" - }, - { - "name": "base" - }, - { - "name": "mag-unshaded-0" - }, - { - "name": "mag-unshaded-1" - }, - { - "name": "mag-unshaded-2" - }, - { - "name": "mag-unshaded-3" - }, - { - "name": "mag-unshaded-4" - }, - { - "name": "inhand-left-0", - "directions": 4 - }, - { - "name": "inhand-right-0", - "directions": 4 - }, - { - "name": "inhand-left-1", - "directions": 4 - }, - { - "name": "inhand-right-1", - "directions": 4 - }, - { - "name": "inhand-left-2", - "directions": 4 - }, - { - "name": "inhand-right-2", - "directions": 4 - }, - { - "name": "inhand-left-3", - "directions": 4 - }, - { - "name": "inhand-right-3", - "directions": 4 - }, - { - "name": "inhand-left", - "directions": 4 - }, - { - "name": "inhand-right", - "directions": 4 - }, - { - "name": "equipped-BELT", - "directions": 4 - }, - { - "name": "equipped-SUITSTORAGE", - "directions": 4 - } - ] -} +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "icon by RiceMar1244 based on icon taken from tg station at commit https://github.com/tgstation/tgstation/commit/8b7f8ba6a3327c7381967c550f185dffafd11a57", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "base" + }, + { + "name": "mag-unshaded-0" + }, + { + "name": "mag-unshaded-1" + }, + { + "name": "mag-unshaded-2" + }, + { + "name": "mag-unshaded-3" + }, + { + "name": "mag-unshaded-4" + }, + { + "name": "inhand-left-0", + "directions": 4 + }, + { + "name": "inhand-right-0", + "directions": 4 + }, + { + "name": "inhand-left-1", + "directions": 4 + }, + { + "name": "inhand-right-1", + "directions": 4 + }, + { + "name": "inhand-left-2", + "directions": 4 + }, + { + "name": "inhand-right-2", + "directions": 4 + }, + { + "name": "inhand-left-3", + "directions": 4 + }, + { + "name": "inhand-right-3", + "directions": 4 + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + }, + { + "name": "equipped-BELT", + "directions": 4 + }, + { + "name": "equipped-SUITSTORAGE", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/Objects/Weapons/Guns/Battery/laser_cannon.rsi/meta.json b/Resources/Textures/Objects/Weapons/Guns/Battery/laser_cannon.rsi/meta.json index 6657216b76..acbd06c270 100644 --- a/Resources/Textures/Objects/Weapons/Guns/Battery/laser_cannon.rsi/meta.json +++ b/Resources/Textures/Objects/Weapons/Guns/Battery/laser_cannon.rsi/meta.json @@ -1,77 +1,85 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "Taken from vgstation at https://github.com/vgstation-coders/vgstation13/commit/125c975f1b3bf9826b37029e9ab5a5f89e975a7e, backpack sprite by Peptide, backpack sling sprite edited by Boaz1111", + "copyright": "Taken from vgstation at https://github.com/vgstation-coders/vgstation13/commit/125c975f1b3bf9826b37029e9ab5a5f89e975a7e, backpack sprite by Peptide, backpack sling sprite edited by Boaz1111, wield sprites by RiceMar1244", "size": { "x": 32, "y": 32 }, - "states": [ - { - "name": "icon" - }, - { - "name": "base" - }, - { - "name": "mag-unshaded-1" - }, - { - "name": "mag-unshaded-2" - }, - { - "name": "mag-unshaded-3" - }, - { - "name": "mag-unshaded-4" - }, - { - "name": "inhand-left", - "directions": 4 - }, - { - "name": "inhand-right", - "directions": 4 - }, - { - "name": "0-inhand-left", - "directions": 4 - }, - { - "name": "0-inhand-right", - "directions": 4 - }, - { - "name": "25-inhand-left", - "directions": 4 - }, - { - "name": "25-inhand-right", - "directions": 4 - }, - { - "name": "50-inhand-left", - "directions": 4 - }, - { - "name": "50-inhand-right", - "directions": 4 - }, - { - "name": "75-inhand-left", - "directions": 4 - }, - { - "name": "75-inhand-right", - "directions": 4 - }, - { - "name": "equipped-BACKPACK", - "directions": 4 - }, - { - "name": "equipped-SUITSTORAGE", - "directions": 4 - } - ] + "states": [ + { + "name": "icon" + }, + { + "name": "base" + }, + { + "name": "mag-unshaded-1" + }, + { + "name": "mag-unshaded-2" + }, + { + "name": "mag-unshaded-3" + }, + { + "name": "mag-unshaded-4" + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + }, + { + "name": "wielded-inhand-left", + "directions": 4 + }, + { + "name": "wielded-inhand-right", + "directions": 4 + }, + { + "name": "0-inhand-left", + "directions": 4 + }, + { + "name": "0-inhand-right", + "directions": 4 + }, + { + "name": "25-inhand-left", + "directions": 4 + }, + { + "name": "25-inhand-right", + "directions": 4 + }, + { + "name": "50-inhand-left", + "directions": 4 + }, + { + "name": "50-inhand-right", + "directions": 4 + }, + { + "name": "75-inhand-left", + "directions": 4 + }, + { + "name": "75-inhand-right", + "directions": 4 + }, + { + "name": "equipped-BACKPACK", + "directions": 4 + }, + { + "name": "equipped-SUITSTORAGE", + "directions": 4 + } + ] } diff --git a/Resources/Textures/Objects/Weapons/Guns/Battery/laser_cannon.rsi/wielded-inhand-left.png b/Resources/Textures/Objects/Weapons/Guns/Battery/laser_cannon.rsi/wielded-inhand-left.png new file mode 100644 index 0000000000..38327d9708 Binary files /dev/null and b/Resources/Textures/Objects/Weapons/Guns/Battery/laser_cannon.rsi/wielded-inhand-left.png differ diff --git a/Resources/Textures/Objects/Weapons/Guns/Battery/laser_cannon.rsi/wielded-inhand-right.png b/Resources/Textures/Objects/Weapons/Guns/Battery/laser_cannon.rsi/wielded-inhand-right.png new file mode 100644 index 0000000000..4e0a357b84 Binary files /dev/null and b/Resources/Textures/Objects/Weapons/Guns/Battery/laser_cannon.rsi/wielded-inhand-right.png differ diff --git a/Resources/Textures/Objects/Weapons/Guns/Battery/laser_gun.rsi/meta.json b/Resources/Textures/Objects/Weapons/Guns/Battery/laser_gun.rsi/meta.json index 7ec48da4fe..2b374ec4dd 100644 --- a/Resources/Textures/Objects/Weapons/Guns/Battery/laser_gun.rsi/meta.json +++ b/Resources/Textures/Objects/Weapons/Guns/Battery/laser_gun.rsi/meta.json @@ -1,45 +1,53 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "Taken from Polaris at https://github.com/PolarisSS13/Polaris/commit/9ded73fb85b9106d6bbf1c9a34d1d2fa27ee0e2e, backpack sprite by Peptide, backpack sling sprite edited by Boaz1111", + "copyright": "Taken from Polaris at https://github.com/PolarisSS13/Polaris/commit/9ded73fb85b9106d6bbf1c9a34d1d2fa27ee0e2e, backpack sprite by Peptide, backpack sling sprite edited by Boaz1111, wield sprites by RiceMar1244", "size": { "x": 32, "y": 32 }, "states": [ - { - "name": "icon" - }, - { - "name": "base" - }, - { - "name": "mag-unshaded-1" - }, - { - "name": "mag-unshaded-2" - }, - { - "name": "mag-unshaded-3" - }, - { - "name": "mag-unshaded-4" - }, - { - "name": "inhand-left", - "directions": 4 - }, - { - "name": "inhand-right", - "directions": 4 - }, - { - "name": "equipped-BACKPACK", - "directions": 4 - }, - { - "name": "equipped-SUITSTORAGE", - "directions": 4 - } + { + "name": "icon" + }, + { + "name": "base" + }, + { + "name": "mag-unshaded-1" + }, + { + "name": "mag-unshaded-2" + }, + { + "name": "mag-unshaded-3" + }, + { + "name": "mag-unshaded-4" + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + }, + { + "name": "wielded-inhand-left", + "directions": 4 + }, + { + "name": "wielded-inhand-right", + "directions": 4 + }, + { + "name": "equipped-BACKPACK", + "directions": 4 + }, + { + "name": "equipped-SUITSTORAGE", + "directions": 4 + } ] } diff --git a/Resources/Textures/Objects/Weapons/Guns/Battery/laser_gun.rsi/wielded-inhand-left.png b/Resources/Textures/Objects/Weapons/Guns/Battery/laser_gun.rsi/wielded-inhand-left.png new file mode 100644 index 0000000000..126915fd27 Binary files /dev/null and b/Resources/Textures/Objects/Weapons/Guns/Battery/laser_gun.rsi/wielded-inhand-left.png differ diff --git a/Resources/Textures/Objects/Weapons/Guns/Battery/laser_gun.rsi/wielded-inhand-right.png b/Resources/Textures/Objects/Weapons/Guns/Battery/laser_gun.rsi/wielded-inhand-right.png new file mode 100644 index 0000000000..93a9303c5e Binary files /dev/null and b/Resources/Textures/Objects/Weapons/Guns/Battery/laser_gun.rsi/wielded-inhand-right.png differ diff --git a/Resources/Textures/Objects/Weapons/Guns/Battery/pulse_carbine.rsi/meta.json b/Resources/Textures/Objects/Weapons/Guns/Battery/pulse_carbine.rsi/meta.json index 3b48bfc87c..434d66fcfd 100644 --- a/Resources/Textures/Objects/Weapons/Guns/Battery/pulse_carbine.rsi/meta.json +++ b/Resources/Textures/Objects/Weapons/Guns/Battery/pulse_carbine.rsi/meta.json @@ -1,45 +1,53 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "Taken from tgstation at https://github.com/tgstation/tgstation/pull/27386/commits/4814da0f8e0d88f430c8b335e541e0a7734755a2 backpack sprite by Peptide (copy of pulse rifle), backpack sling sprite edited by Boaz1111", + "copyright": "Taken from tgstation at https://github.com/tgstation/tgstation/pull/27386/commits/4814da0f8e0d88f430c8b335e541e0a7734755a2 backpack sprite by Peptide (copy of pulse rifle), backpack sling sprite edited by Boaz1111, wield sprites by RiceMar1244", "size": { "x": 32, "y": 32 }, "states": [ - { - "name": "icon" - }, - { - "name": "base" - }, - { - "name": "mag-unshaded-1" - }, - { - "name": "mag-unshaded-2" - }, - { - "name": "mag-unshaded-3" - }, - { - "name": "mag-unshaded-4" - }, - { - "name": "inhand-left", - "directions": 4 - }, - { - "name": "inhand-right", - "directions": 4 - }, - { - "name": "equipped-BACKPACK", - "directions": 4 - }, - { - "name": "equipped-SUITSTORAGE", - "directions": 4 - } + { + "name": "icon" + }, + { + "name": "base" + }, + { + "name": "mag-unshaded-1" + }, + { + "name": "mag-unshaded-2" + }, + { + "name": "mag-unshaded-3" + }, + { + "name": "mag-unshaded-4" + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + }, + { + "name": "wielded-inhand-left", + "directions": 4 + }, + { + "name": "wielded-inhand-right", + "directions": 4 + }, + { + "name": "equipped-BACKPACK", + "directions": 4 + }, + { + "name": "equipped-SUITSTORAGE", + "directions": 4 + } ] } diff --git a/Resources/Textures/Objects/Weapons/Guns/Battery/pulse_carbine.rsi/wielded-inhand-left.png b/Resources/Textures/Objects/Weapons/Guns/Battery/pulse_carbine.rsi/wielded-inhand-left.png new file mode 100644 index 0000000000..b9df7a2cb2 Binary files /dev/null and b/Resources/Textures/Objects/Weapons/Guns/Battery/pulse_carbine.rsi/wielded-inhand-left.png differ diff --git a/Resources/Textures/Objects/Weapons/Guns/Battery/pulse_carbine.rsi/wielded-inhand-right.png b/Resources/Textures/Objects/Weapons/Guns/Battery/pulse_carbine.rsi/wielded-inhand-right.png new file mode 100644 index 0000000000..644db232d2 Binary files /dev/null and b/Resources/Textures/Objects/Weapons/Guns/Battery/pulse_carbine.rsi/wielded-inhand-right.png differ diff --git a/Resources/Textures/Objects/Weapons/Guns/Battery/pulse_rifle.rsi/meta.json b/Resources/Textures/Objects/Weapons/Guns/Battery/pulse_rifle.rsi/meta.json index 1a906ef965..023ad90cfa 100644 --- a/Resources/Textures/Objects/Weapons/Guns/Battery/pulse_rifle.rsi/meta.json +++ b/Resources/Textures/Objects/Weapons/Guns/Battery/pulse_rifle.rsi/meta.json @@ -1,45 +1,53 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "Taken from tgstation at https://github.com/tgstation/tgstation/pull/27386/commits/4814da0f8e0d88f430c8b335e541e0a7734755a2, backpack sprite by Peptide, backpack sling sprite edited by Boaz1111", + "copyright": "Taken from tgstation at https://github.com/tgstation/tgstation/pull/27386/commits/4814da0f8e0d88f430c8b335e541e0a7734755a2, backpack sprite by Peptide, backpack sling sprite edited by Boaz1111, wield sprites by RiceMar1244", "size": { "x": 32, "y": 32 }, "states": [ - { - "name": "icon" - }, - { - "name": "base" - }, - { - "name": "mag-unshaded-1" - }, - { - "name": "mag-unshaded-2" - }, - { - "name": "mag-unshaded-3" - }, - { - "name": "mag-unshaded-4" - }, - { - "name": "inhand-left", - "directions": 4 - }, - { - "name": "inhand-right", - "directions": 4 - }, - { - "name": "equipped-BACKPACK", - "directions": 4 - }, - { - "name": "equipped-SUITSTORAGE", - "directions": 4 - } + { + "name": "icon" + }, + { + "name": "base" + }, + { + "name": "mag-unshaded-1" + }, + { + "name": "mag-unshaded-2" + }, + { + "name": "mag-unshaded-3" + }, + { + "name": "mag-unshaded-4" + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + }, + { + "name": "wielded-inhand-left", + "directions": 4 + }, + { + "name": "wielded-inhand-right", + "directions": 4 + }, + { + "name": "equipped-BACKPACK", + "directions": 4 + }, + { + "name": "equipped-SUITSTORAGE", + "directions": 4 + } ] } diff --git a/Resources/Textures/Objects/Weapons/Guns/Battery/pulse_rifle.rsi/wielded-inhand-left.png b/Resources/Textures/Objects/Weapons/Guns/Battery/pulse_rifle.rsi/wielded-inhand-left.png new file mode 100644 index 0000000000..b9df7a2cb2 Binary files /dev/null and b/Resources/Textures/Objects/Weapons/Guns/Battery/pulse_rifle.rsi/wielded-inhand-left.png differ diff --git a/Resources/Textures/Objects/Weapons/Guns/Battery/pulse_rifle.rsi/wielded-inhand-right.png b/Resources/Textures/Objects/Weapons/Guns/Battery/pulse_rifle.rsi/wielded-inhand-right.png new file mode 100644 index 0000000000..644db232d2 Binary files /dev/null and b/Resources/Textures/Objects/Weapons/Guns/Battery/pulse_rifle.rsi/wielded-inhand-right.png differ diff --git a/Resources/Textures/Objects/Weapons/Guns/Battery/xray.rsi/meta.json b/Resources/Textures/Objects/Weapons/Guns/Battery/xray.rsi/meta.json index 990ba51185..8766242121 100644 --- a/Resources/Textures/Objects/Weapons/Guns/Battery/xray.rsi/meta.json +++ b/Resources/Textures/Objects/Weapons/Guns/Battery/xray.rsi/meta.json @@ -1,54 +1,62 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "Taken from cev-eris at https://github.com/discordia-space/CEV-Eris/raw/167a810bc8534a56c74ffa8f1373acd3b1ac70ee/icons/obj/guns/energy/xray.dmi, backpack sprite by peptide, backpack sling sprite edited by Boaz1111", + "copyright": "Taken from cev-eris at https://github.com/discordia-space/CEV-Eris/raw/167a810bc8534a56c74ffa8f1373acd3b1ac70ee/icons/obj/guns/energy/xray.dmi, backpack sprite by peptide, backpack sling sprite edited by Boaz1111, wield sprites by RiceMar1244", "size": { "x": 32, "y": 32 }, - "states": [ - { - "name": "icon" - }, - { - "name": "base" - }, - { - "name": "mag-unshaded-0", - "delays": [ - [ - 0.3, - 0.3 - ] - ] - }, - { - "name": "mag-unshaded-1" - }, - { - "name": "mag-unshaded-2" - }, - { - "name": "mag-unshaded-3" - }, - { - "name": "mag-unshaded-4" - }, - { - "name": "inhand-left", - "directions": 4 - }, - { - "name": "inhand-right", - "directions": 4 - }, - { - "name": "equipped-BACKPACK", - "directions": 4 - }, - { - "name": "equipped-SUITSTORAGE", - "directions": 4 - } - ] + "states": [ + { + "name": "icon" + }, + { + "name": "base" + }, + { + "name": "mag-unshaded-0", + "delays": [ + [ + 0.3, + 0.3 + ] + ] + }, + { + "name": "mag-unshaded-1" + }, + { + "name": "mag-unshaded-2" + }, + { + "name": "mag-unshaded-3" + }, + { + "name": "mag-unshaded-4" + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + }, + { + "name": "wielded-inhand-left", + "directions": 4 + }, + { + "name": "wielded-inhand-right", + "directions": 4 + }, + { + "name": "equipped-BACKPACK", + "directions": 4 + }, + { + "name": "equipped-SUITSTORAGE", + "directions": 4 + } + ] } diff --git a/Resources/Textures/Objects/Weapons/Guns/Battery/xray.rsi/wielded-inhand-left.png b/Resources/Textures/Objects/Weapons/Guns/Battery/xray.rsi/wielded-inhand-left.png new file mode 100644 index 0000000000..9fa2fafdff Binary files /dev/null and b/Resources/Textures/Objects/Weapons/Guns/Battery/xray.rsi/wielded-inhand-left.png differ diff --git a/Resources/Textures/Objects/Weapons/Guns/Battery/xray.rsi/wielded-inhand-right.png b/Resources/Textures/Objects/Weapons/Guns/Battery/xray.rsi/wielded-inhand-right.png new file mode 100644 index 0000000000..63615e2df1 Binary files /dev/null and b/Resources/Textures/Objects/Weapons/Guns/Battery/xray.rsi/wielded-inhand-right.png differ diff --git a/Resources/Textures/Objects/Weapons/Guns/Launchers/china_lake.rsi/meta.json b/Resources/Textures/Objects/Weapons/Guns/Launchers/china_lake.rsi/meta.json index a5e32a3b39..d3b991783f 100644 --- a/Resources/Textures/Objects/Weapons/Guns/Launchers/china_lake.rsi/meta.json +++ b/Resources/Textures/Objects/Weapons/Guns/Launchers/china_lake.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC-BY-SA-4.0", - "copyright": "Taken/modified from cev-eris at https://github.com/discordia-space/CEV-Eris/pull/6042/commits/64916c98f4847acc4adf3a2416bf78c005fd7dd7, https://github.com/discordia-space/CEV-Eris/blob/master/icons/obj/guns/launcher/grenadelauncher.dmi, backpack sprite by Peptide, backpack sling sprite edited by Boaz1111", + "copyright": "Taken/modified from cev-eris at https://github.com/discordia-space/CEV-Eris/pull/6042/commits/64916c98f4847acc4adf3a2416bf78c005fd7dd7, https://github.com/discordia-space/CEV-Eris/blob/master/icons/obj/guns/launcher/grenadelauncher.dmi, backpack sprite by Peptide, backpack sling sprite edited by Boaz1111, wield sprites by RiceMar1244", "size": { "x": 32, "y": 32 @@ -21,11 +21,19 @@ "name": "inhand-right", "directions": 4 }, + { + "name": "wielded-inhand-left", + "directions": 4 + }, + { + "name": "wielded-inhand-right", + "directions": 4 + }, { "name": "equipped-BACKPACK", "directions": 4 }, - { + { "name": "equipped-SUITSTORAGE", "directions": 4 } diff --git a/Resources/Textures/Objects/Weapons/Guns/Launchers/china_lake.rsi/wielded-inhand-left.png b/Resources/Textures/Objects/Weapons/Guns/Launchers/china_lake.rsi/wielded-inhand-left.png new file mode 100644 index 0000000000..a1d40617d2 Binary files /dev/null and b/Resources/Textures/Objects/Weapons/Guns/Launchers/china_lake.rsi/wielded-inhand-left.png differ diff --git a/Resources/Textures/Objects/Weapons/Guns/Launchers/china_lake.rsi/wielded-inhand-right.png b/Resources/Textures/Objects/Weapons/Guns/Launchers/china_lake.rsi/wielded-inhand-right.png new file mode 100644 index 0000000000..146fe9b1c2 Binary files /dev/null and b/Resources/Textures/Objects/Weapons/Guns/Launchers/china_lake.rsi/wielded-inhand-right.png differ diff --git a/Resources/Textures/Objects/Weapons/Guns/Launchers/mail.rsi/bolt-open.png b/Resources/Textures/Objects/Weapons/Guns/Launchers/mail.rsi/bolt-open.png new file mode 100644 index 0000000000..87c6d812ec Binary files /dev/null and b/Resources/Textures/Objects/Weapons/Guns/Launchers/mail.rsi/bolt-open.png differ diff --git a/Resources/Textures/Objects/Weapons/Guns/Launchers/mail.rsi/equipped-BACKPACK.png b/Resources/Textures/Objects/Weapons/Guns/Launchers/mail.rsi/equipped-BACKPACK.png new file mode 100644 index 0000000000..c17a68eb35 Binary files /dev/null and b/Resources/Textures/Objects/Weapons/Guns/Launchers/mail.rsi/equipped-BACKPACK.png differ diff --git a/Resources/Textures/Objects/Weapons/Guns/Launchers/mail.rsi/equipped-BELT.png b/Resources/Textures/Objects/Weapons/Guns/Launchers/mail.rsi/equipped-BELT.png new file mode 100644 index 0000000000..59dc5f13ed Binary files /dev/null and b/Resources/Textures/Objects/Weapons/Guns/Launchers/mail.rsi/equipped-BELT.png differ diff --git a/Resources/Textures/Objects/Weapons/Guns/Launchers/mail.rsi/icon.png b/Resources/Textures/Objects/Weapons/Guns/Launchers/mail.rsi/icon.png new file mode 100644 index 0000000000..dd7b21e167 Binary files /dev/null and b/Resources/Textures/Objects/Weapons/Guns/Launchers/mail.rsi/icon.png differ diff --git a/Resources/Textures/Objects/Weapons/Guns/Launchers/mail.rsi/inhand-left.png b/Resources/Textures/Objects/Weapons/Guns/Launchers/mail.rsi/inhand-left.png new file mode 100644 index 0000000000..427389f40d Binary files /dev/null and b/Resources/Textures/Objects/Weapons/Guns/Launchers/mail.rsi/inhand-left.png differ diff --git a/Resources/Textures/Objects/Weapons/Guns/Launchers/mail.rsi/inhand-right.png b/Resources/Textures/Objects/Weapons/Guns/Launchers/mail.rsi/inhand-right.png new file mode 100644 index 0000000000..8e50ef04f9 Binary files /dev/null and b/Resources/Textures/Objects/Weapons/Guns/Launchers/mail.rsi/inhand-right.png differ diff --git a/Resources/Textures/Objects/Weapons/Guns/Launchers/mail.rsi/meta.json b/Resources/Textures/Objects/Weapons/Guns/Launchers/mail.rsi/meta.json new file mode 100644 index 0000000000..464c22d1a7 --- /dev/null +++ b/Resources/Textures/Objects/Weapons/Guns/Launchers/mail.rsi/meta.json @@ -0,0 +1,33 @@ +{ + "version": 1, + "license": "CC-BY-SA-4.0", + "copyright": "Taken/modified from cev-eris at https://github.com/discordia-space/CEV-Eris/pull/6042/commits/64916c98f4847acc4adf3a2416bf78c005fd7dd7, https://github.com/discordia-space/CEV-Eris/blob/master/icons/obj/guns/launcher/grenadelauncher.dmi, backpack sprite by Peptide, resprited for mail gun by erhardsteinhauer (discord)", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "bolt-open" + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + }, + { + "name": "equipped-BELT", + "directions": 4 + }, + { + "name": "equipped-BACKPACK", + "directions": 4 + } + ] +} \ No newline at end of file diff --git a/Resources/Textures/Objects/Weapons/Guns/Rifles/ak.rsi/meta.json b/Resources/Textures/Objects/Weapons/Guns/Rifles/ak.rsi/meta.json index 919d0f87ac..0257e70364 100644 --- a/Resources/Textures/Objects/Weapons/Guns/Rifles/ak.rsi/meta.json +++ b/Resources/Textures/Objects/Weapons/Guns/Rifles/ak.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "Taken/modified from cev-eris at https://github.com/discordia-space/CEV-Eris/pull/6042/commits/64916c98f4847acc4adf3a2416bf78c005fd7dd7, https://github.com/discordia-space/CEV-Eris/raw/e1a3cbe9ba2e6e29b7f1cad1bb456b390aac936d/icons/obj/guns/projectile.dmi, backpack sprite by Peptide, backpack sling sprite edited by Boaz1111", + "copyright": "Taken/modified from cev-eris at https://github.com/discordia-space/CEV-Eris/pull/6042/commits/64916c98f4847acc4adf3a2416bf78c005fd7dd7, https://github.com/discordia-space/CEV-Eris/raw/e1a3cbe9ba2e6e29b7f1cad1bb456b390aac936d/icons/obj/guns/projectile.dmi, backpack sprite by Peptide, backpack sling sprite edited by Boaz1111, wield sprites by RiceMar1244", "size": { "x": 32, "y": 32 @@ -27,13 +27,21 @@ "name": "inhand-right", "directions": 4 }, + { + "name": "wielded-inhand-left", + "directions": 4 + }, + { + "name": "wielded-inhand-right", + "directions": 4 + }, { "name": "equipped-BACKPACK", "directions": 4 - }, - { - "name": "equipped-SUITSTORAGE", - "directions": 4 + }, + { + "name": "equipped-SUITSTORAGE", + "directions": 4 } ] } diff --git a/Resources/Textures/Objects/Weapons/Guns/Rifles/ak.rsi/wielded-inhand-left.png b/Resources/Textures/Objects/Weapons/Guns/Rifles/ak.rsi/wielded-inhand-left.png new file mode 100644 index 0000000000..2fa1f7811d Binary files /dev/null and b/Resources/Textures/Objects/Weapons/Guns/Rifles/ak.rsi/wielded-inhand-left.png differ diff --git a/Resources/Textures/Objects/Weapons/Guns/Rifles/ak.rsi/wielded-inhand-right.png b/Resources/Textures/Objects/Weapons/Guns/Rifles/ak.rsi/wielded-inhand-right.png new file mode 100644 index 0000000000..c358af57c3 Binary files /dev/null and b/Resources/Textures/Objects/Weapons/Guns/Rifles/ak.rsi/wielded-inhand-right.png differ diff --git a/Resources/Textures/Objects/Weapons/Guns/Rifles/lecter.rsi/meta.json b/Resources/Textures/Objects/Weapons/Guns/Rifles/lecter.rsi/meta.json index 2f30ef18a8..c45db54aff 100644 --- a/Resources/Textures/Objects/Weapons/Guns/Rifles/lecter.rsi/meta.json +++ b/Resources/Textures/Objects/Weapons/Guns/Rifles/lecter.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "Taken/modified from tgstation at https://github.com/tgstation/tgstation/pull/41393/commits/1e56473177d0994d163c9edca3d13d6e5b640cc4, https://github.com/tgstation/tgstation/tree/master/icons/obj/weapons/guns backpack sprite by Peptide (copy of carbine), backpack sling sprite edited by Boaz1111", + "copyright": "Taken/modified from tgstation at https://github.com/tgstation/tgstation/pull/41393/commits/1e56473177d0994d163c9edca3d13d6e5b640cc4, https://github.com/tgstation/tgstation/tree/master/icons/obj/weapons/guns backpack sprite by Peptide (copy of carbine), backpack sling sprite edited by Boaz1111, wield sprites by RiceMar1244", "size": { "x": 32, "y": 32 @@ -27,11 +27,19 @@ "name": "inhand-right", "directions": 4 }, + { + "name": "wielded-inhand-left", + "directions": 4 + }, + { + "name": "wielded-inhand-right", + "directions": 4 + }, { "name": "equipped-BACKPACK", "directions": 4 }, - { + { "name": "equipped-SUITSTORAGE", "directions": 4 } diff --git a/Resources/Textures/Objects/Weapons/Guns/Rifles/lecter.rsi/wielded-inhand-left.png b/Resources/Textures/Objects/Weapons/Guns/Rifles/lecter.rsi/wielded-inhand-left.png new file mode 100644 index 0000000000..42926b00f4 Binary files /dev/null and b/Resources/Textures/Objects/Weapons/Guns/Rifles/lecter.rsi/wielded-inhand-left.png differ diff --git a/Resources/Textures/Objects/Weapons/Guns/Rifles/lecter.rsi/wielded-inhand-right.png b/Resources/Textures/Objects/Weapons/Guns/Rifles/lecter.rsi/wielded-inhand-right.png new file mode 100644 index 0000000000..fd58fca837 Binary files /dev/null and b/Resources/Textures/Objects/Weapons/Guns/Rifles/lecter.rsi/wielded-inhand-right.png differ diff --git a/Resources/Textures/Objects/Weapons/Guns/SMGs/c20r.rsi/meta.json b/Resources/Textures/Objects/Weapons/Guns/SMGs/c20r.rsi/meta.json index 8b1af3c504..2ff87fa291 100644 --- a/Resources/Textures/Objects/Weapons/Guns/SMGs/c20r.rsi/meta.json +++ b/Resources/Textures/Objects/Weapons/Guns/SMGs/c20r.rsi/meta.json @@ -45,11 +45,19 @@ "name": "inhand-right", "directions": 4 }, + { + "name": "wielded-inhand-left", + "directions": 4 + }, + { + "name": "wielded-inhand-right", + "directions": 4 + }, { "name": "equipped-BACKPACK", "directions": 4 }, - { + { "name": "equipped-SUITSTORAGE", "directions": 4 } diff --git a/Resources/Textures/Objects/Weapons/Guns/SMGs/c20r.rsi/wielded-inhand-left.png b/Resources/Textures/Objects/Weapons/Guns/SMGs/c20r.rsi/wielded-inhand-left.png new file mode 100644 index 0000000000..50b0e2a1d4 Binary files /dev/null and b/Resources/Textures/Objects/Weapons/Guns/SMGs/c20r.rsi/wielded-inhand-left.png differ diff --git a/Resources/Textures/Objects/Weapons/Guns/SMGs/c20r.rsi/wielded-inhand-right.png b/Resources/Textures/Objects/Weapons/Guns/SMGs/c20r.rsi/wielded-inhand-right.png new file mode 100644 index 0000000000..eaf5e92574 Binary files /dev/null and b/Resources/Textures/Objects/Weapons/Guns/SMGs/c20r.rsi/wielded-inhand-right.png differ diff --git a/Resources/Textures/Objects/Weapons/Guns/SMGs/drozd.rsi/meta.json b/Resources/Textures/Objects/Weapons/Guns/SMGs/drozd.rsi/meta.json index 25feebd92c..bd66b2c968 100644 --- a/Resources/Textures/Objects/Weapons/Guns/SMGs/drozd.rsi/meta.json +++ b/Resources/Textures/Objects/Weapons/Guns/SMGs/drozd.rsi/meta.json @@ -1,42 +1,50 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "Taken/modified from cev-eris at https://github.com/discordia-space/CEV-Eris/raw/56cbafd6ad8c013ccd5472d6c4a0db790f7f872a/icons/obj/guns/projectile/drozd.dmi, sprite modification by Jaсkal 298/TaralGit, backpack sling sprite edited by Boaz1111", + "copyright": "Taken/modified from cev-eris at https://github.com/discordia-space/CEV-Eris/raw/56cbafd6ad8c013ccd5472d6c4a0db790f7f872a/icons/obj/guns/projectile/drozd.dmi, sprite modification by Jaсkal 298/TaralGit, backpack sling sprite edited by Boaz1111, wield sprites by RiceMar1244", "size": { "x": 32, "y": 32 }, - "states": [ - { - "name": "icon" - }, - { - "name": "base" - }, - { - "name": "bolt-open" - }, - { - "name": "mag-0" - }, - { - "name": "suppressor" - }, - { - "name": "inhand-left", - "directions": 4 - }, - { - "name": "inhand-right", - "directions": 4 - }, - { - "name": "equipped-BACKPACK", - "directions": 4 - }, - { - "name": "equipped-SUITSTORAGE", - "directions": 4 - } + "states": [ + { + "name": "icon" + }, + { + "name": "base" + }, + { + "name": "bolt-open" + }, + { + "name": "mag-0" + }, + { + "name": "suppressor" + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + }, + { + "name": "wielded-inhand-left", + "directions": 4 + }, + { + "name": "wielded-inhand-right", + "directions": 4 + }, + { + "name": "equipped-BACKPACK", + "directions": 4 + }, + { + "name": "equipped-SUITSTORAGE", + "directions": 4 + } ] } diff --git a/Resources/Textures/Objects/Weapons/Guns/SMGs/drozd.rsi/wielded-inhand-left.png b/Resources/Textures/Objects/Weapons/Guns/SMGs/drozd.rsi/wielded-inhand-left.png new file mode 100644 index 0000000000..ee66cf3df9 Binary files /dev/null and b/Resources/Textures/Objects/Weapons/Guns/SMGs/drozd.rsi/wielded-inhand-left.png differ diff --git a/Resources/Textures/Objects/Weapons/Guns/SMGs/drozd.rsi/wielded-inhand-right.png b/Resources/Textures/Objects/Weapons/Guns/SMGs/drozd.rsi/wielded-inhand-right.png new file mode 100644 index 0000000000..c5d6695605 Binary files /dev/null and b/Resources/Textures/Objects/Weapons/Guns/SMGs/drozd.rsi/wielded-inhand-right.png differ diff --git a/Resources/Textures/Objects/Weapons/Guns/Shotguns/blunderbuss.rsi/meta.json b/Resources/Textures/Objects/Weapons/Guns/Shotguns/blunderbuss.rsi/meta.json index f55fd2db20..b3ab88b772 100644 --- a/Resources/Textures/Objects/Weapons/Guns/Shotguns/blunderbuss.rsi/meta.json +++ b/Resources/Textures/Objects/Weapons/Guns/Shotguns/blunderbuss.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "Made by brainfood1183(Github) inspired by an image created by rezierré#5003 (Discord)", + "copyright": "Made by brainfood1183(Github) inspired by an image created by rezierré#5003 (Discord), wield sprites by RiceMar1244", "size": { "x": 32, "y": 32 @@ -20,6 +20,14 @@ { "name": "inhand-left", "directions": 4 + }, + { + "name": "wielded-inhand-left", + "directions": 4 + }, + { + "name": "wielded-inhand-right", + "directions": 4 } ] } diff --git a/Resources/Textures/Objects/Weapons/Guns/Shotguns/blunderbuss.rsi/wielded-inhand-left.png b/Resources/Textures/Objects/Weapons/Guns/Shotguns/blunderbuss.rsi/wielded-inhand-left.png new file mode 100644 index 0000000000..da4a7f4f92 Binary files /dev/null and b/Resources/Textures/Objects/Weapons/Guns/Shotguns/blunderbuss.rsi/wielded-inhand-left.png differ diff --git a/Resources/Textures/Objects/Weapons/Guns/Shotguns/blunderbuss.rsi/wielded-inhand-right.png b/Resources/Textures/Objects/Weapons/Guns/Shotguns/blunderbuss.rsi/wielded-inhand-right.png new file mode 100644 index 0000000000..ac02c47a84 Binary files /dev/null and b/Resources/Textures/Objects/Weapons/Guns/Shotguns/blunderbuss.rsi/wielded-inhand-right.png differ diff --git a/Resources/Textures/Objects/Weapons/Guns/Shotguns/bulldog.rsi/meta.json b/Resources/Textures/Objects/Weapons/Guns/Shotguns/bulldog.rsi/meta.json index 5ef981dec9..8699d00b7d 100644 --- a/Resources/Textures/Objects/Weapons/Guns/Shotguns/bulldog.rsi/meta.json +++ b/Resources/Textures/Objects/Weapons/Guns/Shotguns/bulldog.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "Taken from tgstation at https://github.com/tgstation/tgstation/commit/1b6831dab1e1a74c0d91f2229adb87abbb089d31, backpack sprite by Peptide, backpack sling sprite edited by Boaz1111", + "copyright": "Taken from tgstation at https://github.com/tgstation/tgstation/commit/1b6831dab1e1a74c0d91f2229adb87abbb089d31, backpack sprite by Peptide, backpack sling sprite edited by Boaz1111, wield sprites by RiceMar1244", "size": { "x": 32, "y": 32 @@ -27,11 +27,19 @@ "name": "inhand-right", "directions": 4 }, + { + "name": "wielded-inhand-left", + "directions": 4 + }, + { + "name": "wielded-inhand-right", + "directions": 4 + }, { "name": "equipped-BACKPACK", "directions": 4 }, - { + { "name": "equipped-SUITSTORAGE", "directions": 4 } diff --git a/Resources/Textures/Objects/Weapons/Guns/Shotguns/bulldog.rsi/wielded-inhand-left.png b/Resources/Textures/Objects/Weapons/Guns/Shotguns/bulldog.rsi/wielded-inhand-left.png new file mode 100644 index 0000000000..9a45848ec5 Binary files /dev/null and b/Resources/Textures/Objects/Weapons/Guns/Shotguns/bulldog.rsi/wielded-inhand-left.png differ diff --git a/Resources/Textures/Objects/Weapons/Guns/Shotguns/bulldog.rsi/wielded-inhand-right.png b/Resources/Textures/Objects/Weapons/Guns/Shotguns/bulldog.rsi/wielded-inhand-right.png new file mode 100644 index 0000000000..7252681aba Binary files /dev/null and b/Resources/Textures/Objects/Weapons/Guns/Shotguns/bulldog.rsi/wielded-inhand-right.png differ diff --git a/Resources/Textures/Objects/Weapons/Guns/Shotguns/db_shotgun.rsi/meta.json b/Resources/Textures/Objects/Weapons/Guns/Shotguns/db_shotgun.rsi/meta.json index 27d7ebd665..3add3a471b 100644 --- a/Resources/Textures/Objects/Weapons/Guns/Shotguns/db_shotgun.rsi/meta.json +++ b/Resources/Textures/Objects/Weapons/Guns/Shotguns/db_shotgun.rsi/meta.json @@ -17,7 +17,7 @@ "name": "equipped-BACKPACK", "directions": 4 }, - { + { "name": "equipped-SUITSTORAGE", "directions": 4 } diff --git a/Resources/Textures/Objects/Weapons/Guns/Shotguns/inhands_64x.rsi/db-inhand-left.png b/Resources/Textures/Objects/Weapons/Guns/Shotguns/db_shotgun_inhands_64x.rsi/inhand-left.png similarity index 100% rename from Resources/Textures/Objects/Weapons/Guns/Shotguns/inhands_64x.rsi/db-inhand-left.png rename to Resources/Textures/Objects/Weapons/Guns/Shotguns/db_shotgun_inhands_64x.rsi/inhand-left.png diff --git a/Resources/Textures/Objects/Weapons/Guns/Shotguns/inhands_64x.rsi/db-inhand-right.png b/Resources/Textures/Objects/Weapons/Guns/Shotguns/db_shotgun_inhands_64x.rsi/inhand-right.png similarity index 100% rename from Resources/Textures/Objects/Weapons/Guns/Shotguns/inhands_64x.rsi/db-inhand-right.png rename to Resources/Textures/Objects/Weapons/Guns/Shotguns/db_shotgun_inhands_64x.rsi/inhand-right.png diff --git a/Resources/Textures/Objects/Weapons/Guns/Shotguns/db_shotgun_inhands_64x.rsi/meta.json b/Resources/Textures/Objects/Weapons/Guns/Shotguns/db_shotgun_inhands_64x.rsi/meta.json new file mode 100644 index 0000000000..6c1d1581e8 --- /dev/null +++ b/Resources/Textures/Objects/Weapons/Guns/Shotguns/db_shotgun_inhands_64x.rsi/meta.json @@ -0,0 +1,27 @@ +{ + "version": 1, + "license": "CC-BY-NC-4.0", + "copyright": "Taken from https://github.com/tgstation/tgstation/ at commit fb2d71495bfe81446159ef528534193d09dd8d34, wield sprites by RiceMar1244", + "size": { + "x": 64, + "y": 64 + }, + "states": [ + { + "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/Objects/Weapons/Guns/Shotguns/db_shotgun_inhands_64x.rsi/wielded-inhand-left.png b/Resources/Textures/Objects/Weapons/Guns/Shotguns/db_shotgun_inhands_64x.rsi/wielded-inhand-left.png new file mode 100644 index 0000000000..27c2e92359 Binary files /dev/null and b/Resources/Textures/Objects/Weapons/Guns/Shotguns/db_shotgun_inhands_64x.rsi/wielded-inhand-left.png differ diff --git a/Resources/Textures/Objects/Weapons/Guns/Shotguns/db_shotgun_inhands_64x.rsi/wielded-inhand-right.png b/Resources/Textures/Objects/Weapons/Guns/Shotguns/db_shotgun_inhands_64x.rsi/wielded-inhand-right.png new file mode 100644 index 0000000000..78165792c7 Binary files /dev/null and b/Resources/Textures/Objects/Weapons/Guns/Shotguns/db_shotgun_inhands_64x.rsi/wielded-inhand-right.png differ diff --git a/Resources/Textures/Objects/Weapons/Guns/Shotguns/enforcer.rsi/meta.json b/Resources/Textures/Objects/Weapons/Guns/Shotguns/enforcer.rsi/meta.json index f3a7f48582..42b8d94d6d 100644 --- a/Resources/Textures/Objects/Weapons/Guns/Shotguns/enforcer.rsi/meta.json +++ b/Resources/Textures/Objects/Weapons/Guns/Shotguns/enforcer.rsi/meta.json @@ -17,7 +17,7 @@ "name": "equipped-BACKPACK", "directions": 4 }, - { + { "name": "equipped-SUITSTORAGE", "directions": 4 } diff --git a/Resources/Textures/Objects/Weapons/Guns/Shotguns/inhands_64x.rsi/enforcer-inhand-left.png b/Resources/Textures/Objects/Weapons/Guns/Shotguns/enforcer_inhands_64x.rsi/inhand-left.png similarity index 100% rename from Resources/Textures/Objects/Weapons/Guns/Shotguns/inhands_64x.rsi/enforcer-inhand-left.png rename to Resources/Textures/Objects/Weapons/Guns/Shotguns/enforcer_inhands_64x.rsi/inhand-left.png diff --git a/Resources/Textures/Objects/Weapons/Guns/Shotguns/inhands_64x.rsi/enforcer-inhand-right.png b/Resources/Textures/Objects/Weapons/Guns/Shotguns/enforcer_inhands_64x.rsi/inhand-right.png similarity index 100% rename from Resources/Textures/Objects/Weapons/Guns/Shotguns/inhands_64x.rsi/enforcer-inhand-right.png rename to Resources/Textures/Objects/Weapons/Guns/Shotguns/enforcer_inhands_64x.rsi/inhand-right.png diff --git a/Resources/Textures/Objects/Weapons/Guns/Shotguns/enforcer_inhands_64x.rsi/meta.json b/Resources/Textures/Objects/Weapons/Guns/Shotguns/enforcer_inhands_64x.rsi/meta.json new file mode 100644 index 0000000000..6c1d1581e8 --- /dev/null +++ b/Resources/Textures/Objects/Weapons/Guns/Shotguns/enforcer_inhands_64x.rsi/meta.json @@ -0,0 +1,27 @@ +{ + "version": 1, + "license": "CC-BY-NC-4.0", + "copyright": "Taken from https://github.com/tgstation/tgstation/ at commit fb2d71495bfe81446159ef528534193d09dd8d34, wield sprites by RiceMar1244", + "size": { + "x": 64, + "y": 64 + }, + "states": [ + { + "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/Objects/Weapons/Guns/Shotguns/enforcer_inhands_64x.rsi/wielded-inhand-left.png b/Resources/Textures/Objects/Weapons/Guns/Shotguns/enforcer_inhands_64x.rsi/wielded-inhand-left.png new file mode 100644 index 0000000000..5f5b50d715 Binary files /dev/null and b/Resources/Textures/Objects/Weapons/Guns/Shotguns/enforcer_inhands_64x.rsi/wielded-inhand-left.png differ diff --git a/Resources/Textures/Objects/Weapons/Guns/Shotguns/enforcer_inhands_64x.rsi/wielded-inhand-right.png b/Resources/Textures/Objects/Weapons/Guns/Shotguns/enforcer_inhands_64x.rsi/wielded-inhand-right.png new file mode 100644 index 0000000000..4810c9c375 Binary files /dev/null and b/Resources/Textures/Objects/Weapons/Guns/Shotguns/enforcer_inhands_64x.rsi/wielded-inhand-right.png differ diff --git a/Resources/Textures/Objects/Weapons/Guns/Shotguns/inhands_64x.rsi/improvised-inhand-left.png b/Resources/Textures/Objects/Weapons/Guns/Shotguns/improvised_shotgun_inhands_64x.rsi/inhand-left.png similarity index 100% rename from Resources/Textures/Objects/Weapons/Guns/Shotguns/inhands_64x.rsi/improvised-inhand-left.png rename to Resources/Textures/Objects/Weapons/Guns/Shotguns/improvised_shotgun_inhands_64x.rsi/inhand-left.png diff --git a/Resources/Textures/Objects/Weapons/Guns/Shotguns/inhands_64x.rsi/improvised-inhand-right.png b/Resources/Textures/Objects/Weapons/Guns/Shotguns/improvised_shotgun_inhands_64x.rsi/inhand-right.png similarity index 100% rename from Resources/Textures/Objects/Weapons/Guns/Shotguns/inhands_64x.rsi/improvised-inhand-right.png rename to Resources/Textures/Objects/Weapons/Guns/Shotguns/improvised_shotgun_inhands_64x.rsi/inhand-right.png diff --git a/Resources/Textures/Objects/Weapons/Guns/Shotguns/improvised_shotgun_inhands_64x.rsi/meta.json b/Resources/Textures/Objects/Weapons/Guns/Shotguns/improvised_shotgun_inhands_64x.rsi/meta.json new file mode 100644 index 0000000000..6c1d1581e8 --- /dev/null +++ b/Resources/Textures/Objects/Weapons/Guns/Shotguns/improvised_shotgun_inhands_64x.rsi/meta.json @@ -0,0 +1,27 @@ +{ + "version": 1, + "license": "CC-BY-NC-4.0", + "copyright": "Taken from https://github.com/tgstation/tgstation/ at commit fb2d71495bfe81446159ef528534193d09dd8d34, wield sprites by RiceMar1244", + "size": { + "x": 64, + "y": 64 + }, + "states": [ + { + "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/Objects/Weapons/Guns/Shotguns/improvised_shotgun_inhands_64x.rsi/wielded-inhand-left.png b/Resources/Textures/Objects/Weapons/Guns/Shotguns/improvised_shotgun_inhands_64x.rsi/wielded-inhand-left.png new file mode 100644 index 0000000000..26a569bfc2 Binary files /dev/null and b/Resources/Textures/Objects/Weapons/Guns/Shotguns/improvised_shotgun_inhands_64x.rsi/wielded-inhand-left.png differ diff --git a/Resources/Textures/Objects/Weapons/Guns/Shotguns/improvised_shotgun_inhands_64x.rsi/wielded-inhand-right.png b/Resources/Textures/Objects/Weapons/Guns/Shotguns/improvised_shotgun_inhands_64x.rsi/wielded-inhand-right.png new file mode 100644 index 0000000000..e2380308b4 Binary files /dev/null and b/Resources/Textures/Objects/Weapons/Guns/Shotguns/improvised_shotgun_inhands_64x.rsi/wielded-inhand-right.png differ diff --git a/Resources/Textures/Objects/Weapons/Guns/Shotguns/inhands_64x.rsi/meta.json b/Resources/Textures/Objects/Weapons/Guns/Shotguns/inhands_64x.rsi/meta.json deleted file mode 100644 index fefe1f6eb7..0000000000 --- a/Resources/Textures/Objects/Weapons/Guns/Shotguns/inhands_64x.rsi/meta.json +++ /dev/null @@ -1,51 +0,0 @@ -{ - "version": 1, - "license": "CC-BY-NC-4.0", - "copyright": "Taken from https://github.com/tgstation/tgstation/ at commit fb2d71495bfe81446159ef528534193d09dd8d34, sawn-inhand states modified from db-inhand by Flareguy", - "size": { - "x": 64, - "y": 64 - }, - "states": [ - { - "name": "pump-inhand-left", - "directions": 4 - }, - { - "name": "pump-inhand-right", - "directions": 4 - }, - { - "name": "enforcer-inhand-left", - "directions": 4 - }, - { - "name": "enforcer-inhand-right", - "directions": 4 - }, - { - "name": "db-inhand-left", - "directions": 4 - }, - { - "name": "db-inhand-right", - "directions": 4 - }, - { - "name": "sawn-inhand-left", - "directions": 4 - }, - { - "name": "sawn-inhand-right", - "directions": 4 - }, - { - "name": "improvised-inhand-left", - "directions": 4 - }, - { - "name": "improvised-inhand-right", - "directions": 4 - } - ] -} diff --git a/Resources/Textures/Objects/Weapons/Guns/Shotguns/pump.rsi/meta.json b/Resources/Textures/Objects/Weapons/Guns/Shotguns/pump.rsi/meta.json index 27d7ebd665..3add3a471b 100644 --- a/Resources/Textures/Objects/Weapons/Guns/Shotguns/pump.rsi/meta.json +++ b/Resources/Textures/Objects/Weapons/Guns/Shotguns/pump.rsi/meta.json @@ -17,7 +17,7 @@ "name": "equipped-BACKPACK", "directions": 4 }, - { + { "name": "equipped-SUITSTORAGE", "directions": 4 } diff --git a/Resources/Textures/Objects/Weapons/Guns/Shotguns/inhands_64x.rsi/pump-inhand-left.png b/Resources/Textures/Objects/Weapons/Guns/Shotguns/pump_inhands_64x.rsi/inhand-left.png similarity index 100% rename from Resources/Textures/Objects/Weapons/Guns/Shotguns/inhands_64x.rsi/pump-inhand-left.png rename to Resources/Textures/Objects/Weapons/Guns/Shotguns/pump_inhands_64x.rsi/inhand-left.png diff --git a/Resources/Textures/Objects/Weapons/Guns/Shotguns/inhands_64x.rsi/pump-inhand-right.png b/Resources/Textures/Objects/Weapons/Guns/Shotguns/pump_inhands_64x.rsi/inhand-right.png similarity index 100% rename from Resources/Textures/Objects/Weapons/Guns/Shotguns/inhands_64x.rsi/pump-inhand-right.png rename to Resources/Textures/Objects/Weapons/Guns/Shotguns/pump_inhands_64x.rsi/inhand-right.png diff --git a/Resources/Textures/Objects/Weapons/Guns/Shotguns/pump_inhands_64x.rsi/meta.json b/Resources/Textures/Objects/Weapons/Guns/Shotguns/pump_inhands_64x.rsi/meta.json new file mode 100644 index 0000000000..6c1d1581e8 --- /dev/null +++ b/Resources/Textures/Objects/Weapons/Guns/Shotguns/pump_inhands_64x.rsi/meta.json @@ -0,0 +1,27 @@ +{ + "version": 1, + "license": "CC-BY-NC-4.0", + "copyright": "Taken from https://github.com/tgstation/tgstation/ at commit fb2d71495bfe81446159ef528534193d09dd8d34, wield sprites by RiceMar1244", + "size": { + "x": 64, + "y": 64 + }, + "states": [ + { + "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/Objects/Weapons/Guns/Shotguns/pump_inhands_64x.rsi/wielded-inhand-left.png b/Resources/Textures/Objects/Weapons/Guns/Shotguns/pump_inhands_64x.rsi/wielded-inhand-left.png new file mode 100644 index 0000000000..09fbaae551 Binary files /dev/null and b/Resources/Textures/Objects/Weapons/Guns/Shotguns/pump_inhands_64x.rsi/wielded-inhand-left.png differ diff --git a/Resources/Textures/Objects/Weapons/Guns/Shotguns/pump_inhands_64x.rsi/wielded-inhand-right.png b/Resources/Textures/Objects/Weapons/Guns/Shotguns/pump_inhands_64x.rsi/wielded-inhand-right.png new file mode 100644 index 0000000000..00b475f6b4 Binary files /dev/null and b/Resources/Textures/Objects/Weapons/Guns/Shotguns/pump_inhands_64x.rsi/wielded-inhand-right.png differ diff --git a/Resources/Textures/Objects/Weapons/Guns/Shotguns/inhands_64x.rsi/sawn-inhand-left.png b/Resources/Textures/Objects/Weapons/Guns/Shotguns/sawn_inhands_64x.rsi/inhand-left.png similarity index 100% rename from Resources/Textures/Objects/Weapons/Guns/Shotguns/inhands_64x.rsi/sawn-inhand-left.png rename to Resources/Textures/Objects/Weapons/Guns/Shotguns/sawn_inhands_64x.rsi/inhand-left.png diff --git a/Resources/Textures/Objects/Weapons/Guns/Shotguns/inhands_64x.rsi/sawn-inhand-right.png b/Resources/Textures/Objects/Weapons/Guns/Shotguns/sawn_inhands_64x.rsi/inhand-right.png similarity index 100% rename from Resources/Textures/Objects/Weapons/Guns/Shotguns/inhands_64x.rsi/sawn-inhand-right.png rename to Resources/Textures/Objects/Weapons/Guns/Shotguns/sawn_inhands_64x.rsi/inhand-right.png diff --git a/Resources/Textures/Objects/Weapons/Guns/Shotguns/sawn_inhands_64x.rsi/meta.json b/Resources/Textures/Objects/Weapons/Guns/Shotguns/sawn_inhands_64x.rsi/meta.json new file mode 100644 index 0000000000..852268d187 --- /dev/null +++ b/Resources/Textures/Objects/Weapons/Guns/Shotguns/sawn_inhands_64x.rsi/meta.json @@ -0,0 +1,19 @@ +{ + "version": 1, + "license": "CC-BY-NC-4.0", + "copyright": "Taken from https://github.com/tgstation/tgstation/ at commit fb2d71495bfe81446159ef528534193d09dd8d34, sawn-inhand states modified from db-inhand by Flareguy", + "size": { + "x": 64, + "y": 64 + }, + "states": [ + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/Objects/Weapons/Guns/Snipers/bolt_gun_wood.rsi/meta.json b/Resources/Textures/Objects/Weapons/Guns/Snipers/bolt_gun_wood.rsi/meta.json index 4f7fc5d6f5..e4f1ef8dd8 100644 --- a/Resources/Textures/Objects/Weapons/Guns/Snipers/bolt_gun_wood.rsi/meta.json +++ b/Resources/Textures/Objects/Weapons/Guns/Snipers/bolt_gun_wood.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "Taken from InterBay13 at https://github.com/AndySok/InterBay13/commit/84824582fe1381d9ea6282b9da407994ab8ab509, backpack sling sprite edited by Boaz1111", + "copyright": "Taken from InterBay13 at https://github.com/AndySok/InterBay13/commit/84824582fe1381d9ea6282b9da407994ab8ab509, backpack sling sprite edited by Boaz1111, wield sprites by RiceMar1244", "size": { "x": 32, "y": 32 @@ -21,11 +21,19 @@ "name": "inhand-right", "directions": 4 }, + { + "name": "wielded-inhand-left", + "directions": 4 + }, + { + "name": "wielded-inhand-right", + "directions": 4 + }, { "name": "equipped-BACKPACK", "directions": 4 }, - { + { "name": "equipped-SUITSTORAGE", "directions": 4 } diff --git a/Resources/Textures/Objects/Weapons/Guns/Snipers/bolt_gun_wood.rsi/wielded-inhand-left.png b/Resources/Textures/Objects/Weapons/Guns/Snipers/bolt_gun_wood.rsi/wielded-inhand-left.png new file mode 100644 index 0000000000..dc8f572764 Binary files /dev/null and b/Resources/Textures/Objects/Weapons/Guns/Snipers/bolt_gun_wood.rsi/wielded-inhand-left.png differ diff --git a/Resources/Textures/Objects/Weapons/Guns/Snipers/bolt_gun_wood.rsi/wielded-inhand-right.png b/Resources/Textures/Objects/Weapons/Guns/Snipers/bolt_gun_wood.rsi/wielded-inhand-right.png new file mode 100644 index 0000000000..7a478a3976 Binary files /dev/null and b/Resources/Textures/Objects/Weapons/Guns/Snipers/bolt_gun_wood.rsi/wielded-inhand-right.png differ diff --git a/Resources/Textures/Objects/Weapons/Guns/Snipers/heavy_sniper.rsi/meta.json b/Resources/Textures/Objects/Weapons/Guns/Snipers/heavy_sniper.rsi/meta.json index da8881c7c5..818c56417d 100644 --- a/Resources/Textures/Objects/Weapons/Guns/Snipers/heavy_sniper.rsi/meta.json +++ b/Resources/Textures/Objects/Weapons/Guns/Snipers/heavy_sniper.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "Taken from tgstation at https://github.com/tgstation/tgstation/pull/13612/commits/c1cf3c42b0cd00023937e46845a7c32d6beefa0e, backpack sling sprite edited by Boaz1111", + "copyright": "Taken from tgstation at https://github.com/tgstation/tgstation/pull/13612/commits/c1cf3c42b0cd00023937e46845a7c32d6beefa0e, backpack sling sprite edited by Boaz1111, wield sprites by RiceMar1244", "size": { "x": 32, "y": 32 @@ -21,11 +21,19 @@ "name": "inhand-right", "directions": 4 }, + { + "name": "wielded-inhand-left", + "directions": 4 + }, + { + "name": "wielded-inhand-right", + "directions": 4 + }, { "name": "equipped-BACKPACK", "directions": 4 }, - { + { "name": "equipped-SUITSTORAGE", "directions": 4 } diff --git a/Resources/Textures/Objects/Weapons/Guns/Snipers/heavy_sniper.rsi/wielded-inhand-left.png b/Resources/Textures/Objects/Weapons/Guns/Snipers/heavy_sniper.rsi/wielded-inhand-left.png new file mode 100644 index 0000000000..d373352b9f Binary files /dev/null and b/Resources/Textures/Objects/Weapons/Guns/Snipers/heavy_sniper.rsi/wielded-inhand-left.png differ diff --git a/Resources/Textures/Objects/Weapons/Guns/Snipers/heavy_sniper.rsi/wielded-inhand-right.png b/Resources/Textures/Objects/Weapons/Guns/Snipers/heavy_sniper.rsi/wielded-inhand-right.png new file mode 100644 index 0000000000..03625930c8 Binary files /dev/null and b/Resources/Textures/Objects/Weapons/Guns/Snipers/heavy_sniper.rsi/wielded-inhand-right.png differ diff --git a/Resources/Textures/Objects/Weapons/Melee/cane.rsi/cane-empty.png b/Resources/Textures/Objects/Weapons/Melee/cane.rsi/cane-empty.png new file mode 100644 index 0000000000..64cb9ef3aa Binary files /dev/null and b/Resources/Textures/Objects/Weapons/Melee/cane.rsi/cane-empty.png differ diff --git a/Resources/Textures/Objects/Weapons/Melee/cane.rsi/cane.png b/Resources/Textures/Objects/Weapons/Melee/cane.rsi/cane.png new file mode 100644 index 0000000000..721847ff28 Binary files /dev/null and b/Resources/Textures/Objects/Weapons/Melee/cane.rsi/cane.png differ diff --git a/Resources/Textures/Objects/Weapons/Melee/cane.rsi/inhand-left.png b/Resources/Textures/Objects/Weapons/Melee/cane.rsi/inhand-left.png new file mode 100644 index 0000000000..caa2f23270 Binary files /dev/null and b/Resources/Textures/Objects/Weapons/Melee/cane.rsi/inhand-left.png differ diff --git a/Resources/Textures/Objects/Weapons/Melee/cane.rsi/inhand-right.png b/Resources/Textures/Objects/Weapons/Melee/cane.rsi/inhand-right.png new file mode 100644 index 0000000000..8f12a08afd Binary files /dev/null and b/Resources/Textures/Objects/Weapons/Melee/cane.rsi/inhand-right.png differ diff --git a/Resources/Textures/Objects/Weapons/Melee/cane.rsi/meta.json b/Resources/Textures/Objects/Weapons/Melee/cane.rsi/meta.json new file mode 100644 index 0000000000..913fcb524b --- /dev/null +++ b/Resources/Textures/Objects/Weapons/Melee/cane.rsi/meta.json @@ -0,0 +1,33 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Sprited by ps3moira#9488 on discord", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "cane-empty" + }, + { + "name": "cane" + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "wielded-inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + }, + { + "name": "wielded-inhand-right", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/Objects/Weapons/Melee/cane.rsi/wielded-inhand-left.png b/Resources/Textures/Objects/Weapons/Melee/cane.rsi/wielded-inhand-left.png new file mode 100644 index 0000000000..f6f87a4a90 Binary files /dev/null and b/Resources/Textures/Objects/Weapons/Melee/cane.rsi/wielded-inhand-left.png differ diff --git a/Resources/Textures/Objects/Weapons/Melee/cane.rsi/wielded-inhand-right.png b/Resources/Textures/Objects/Weapons/Melee/cane.rsi/wielded-inhand-right.png new file mode 100644 index 0000000000..e1f0449b4c Binary files /dev/null and b/Resources/Textures/Objects/Weapons/Melee/cane.rsi/wielded-inhand-right.png differ diff --git a/Resources/Textures/Objects/Weapons/Melee/cane_blade.rsi/icon.png b/Resources/Textures/Objects/Weapons/Melee/cane_blade.rsi/icon.png new file mode 100644 index 0000000000..6581dc96e8 Binary files /dev/null and b/Resources/Textures/Objects/Weapons/Melee/cane_blade.rsi/icon.png differ diff --git a/Resources/Textures/Objects/Weapons/Melee/cane_blade.rsi/inhand-left.png b/Resources/Textures/Objects/Weapons/Melee/cane_blade.rsi/inhand-left.png new file mode 100644 index 0000000000..f8e57880cb Binary files /dev/null and b/Resources/Textures/Objects/Weapons/Melee/cane_blade.rsi/inhand-left.png differ diff --git a/Resources/Textures/Objects/Weapons/Melee/cane_blade.rsi/inhand-right.png b/Resources/Textures/Objects/Weapons/Melee/cane_blade.rsi/inhand-right.png new file mode 100644 index 0000000000..5fa04f7f87 Binary files /dev/null and b/Resources/Textures/Objects/Weapons/Melee/cane_blade.rsi/inhand-right.png differ diff --git a/Resources/Textures/Objects/Weapons/Melee/cane_blade.rsi/meta.json b/Resources/Textures/Objects/Weapons/Melee/cane_blade.rsi/meta.json new file mode 100644 index 0000000000..a48335cc0d --- /dev/null +++ b/Resources/Textures/Objects/Weapons/Melee/cane_blade.rsi/meta.json @@ -0,0 +1,22 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Sprited by ps3moira#9488 on discord", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + }, + { + "name": "icon" + } + ] +} diff --git a/Resources/Textures/Shaders/displacement.swsl b/Resources/Textures/Shaders/displacement.swsl new file mode 100644 index 0000000000..ba5ca57852 --- /dev/null +++ b/Resources/Textures/Shaders/displacement.swsl @@ -0,0 +1,18 @@ +uniform sampler2D displacementMap; +uniform highp float displacementSize; +uniform highp vec4 displacementUV; + +varying highp vec2 displacementUVOut; + +void vertex() { + displacementUVOut = mix(displacementUV.xy, displacementUV.zw, tCoord2); +} + +void fragment() { + highp vec4 displacementSample = texture2D(displacementMap, displacementUVOut); + highp vec2 displacementValue = (displacementSample.xy - vec2(128.0 / 255.0)) / (1.0 - 128.0 / 255.0); + COLOR = zTexture(UV + displacementValue * TEXTURE_PIXEL_SIZE * displacementSize * vec2(1.0, -1.0)); + COLOR.a *= displacementSample.a; +} + + diff --git a/Resources/Textures/Shaders/flap.swsl b/Resources/Textures/Shaders/flap.swsl new file mode 100644 index 0000000000..3082e19b49 --- /dev/null +++ b/Resources/Textures/Shaders/flap.swsl @@ -0,0 +1,35 @@ +preset raw; + +varying highp vec4 VtxModulate; +varying highp vec2 Pos; + +uniform highp float Speed; +uniform highp float Multiplier; +uniform highp float Offset; + +void fragment() { + highp vec4 texColor = zTexture(UV); + lowp vec3 lightSample = texture2D(lightMap, Pos).rgb; + COLOR = texColor * VtxModulate * vec4(lightSample, 1.0); +} + +void vertex() { + vec2 pos = aPos; + + // Apply MVP transformation first + vec2 transformedPos = apply_mvp(pos); + + // Calculate vertical movement in screen space + float verticalOffset = (sin(TIME * Speed) + Offset) * Multiplier; + + // Apply vertical movement after MVP transformation + transformedPos.y += verticalOffset; + + // Assign the final position + VERTEX = transformedPos; + + // Keep the original UV coordinates + UV = mix(modifyUV.xy, modifyUV.zw, tCoord); + Pos = (VERTEX + 1.0) / 2.0; + VtxModulate = zFromSrgb(modulate); +} \ No newline at end of file diff --git a/Resources/Textures/SimpleStation14/Structures/Furniture/Benches/pews.rsi/left.png b/Resources/Textures/SimpleStation14/Structures/Furniture/Benches/pews.rsi/left.png index 9631b4b171..beb8cd4a0b 100644 Binary files a/Resources/Textures/SimpleStation14/Structures/Furniture/Benches/pews.rsi/left.png and b/Resources/Textures/SimpleStation14/Structures/Furniture/Benches/pews.rsi/left.png differ diff --git a/Resources/Textures/SimpleStation14/Structures/Furniture/Benches/pews.rsi/right.png b/Resources/Textures/SimpleStation14/Structures/Furniture/Benches/pews.rsi/right.png index ea0922930f..c1f2949a71 100644 Binary files a/Resources/Textures/SimpleStation14/Structures/Furniture/Benches/pews.rsi/right.png and b/Resources/Textures/SimpleStation14/Structures/Furniture/Benches/pews.rsi/right.png differ diff --git a/Resources/Textures/SimpleStation14/Structures/Furniture/Benches/steel_bench.rsi/left.png b/Resources/Textures/SimpleStation14/Structures/Furniture/Benches/steel_bench.rsi/left.png index 260c7298f7..b6c1ef00fc 100644 Binary files a/Resources/Textures/SimpleStation14/Structures/Furniture/Benches/steel_bench.rsi/left.png and b/Resources/Textures/SimpleStation14/Structures/Furniture/Benches/steel_bench.rsi/left.png differ diff --git a/Resources/Textures/SimpleStation14/Structures/Furniture/Benches/steel_bench.rsi/right.png b/Resources/Textures/SimpleStation14/Structures/Furniture/Benches/steel_bench.rsi/right.png index b6c1ef00fc..260c7298f7 100644 Binary files a/Resources/Textures/SimpleStation14/Structures/Furniture/Benches/steel_bench.rsi/right.png and b/Resources/Textures/SimpleStation14/Structures/Furniture/Benches/steel_bench.rsi/right.png differ diff --git a/Resources/Textures/SimpleStation14/Structures/Furniture/Benches/steel_bench_white.rsi/left.png b/Resources/Textures/SimpleStation14/Structures/Furniture/Benches/steel_bench_white.rsi/left.png index d456300e10..a412a51871 100644 Binary files a/Resources/Textures/SimpleStation14/Structures/Furniture/Benches/steel_bench_white.rsi/left.png and b/Resources/Textures/SimpleStation14/Structures/Furniture/Benches/steel_bench_white.rsi/left.png differ diff --git a/Resources/Textures/SimpleStation14/Structures/Furniture/Benches/steel_bench_white.rsi/right.png b/Resources/Textures/SimpleStation14/Structures/Furniture/Benches/steel_bench_white.rsi/right.png index a412a51871..d456300e10 100644 Binary files a/Resources/Textures/SimpleStation14/Structures/Furniture/Benches/steel_bench_white.rsi/right.png and b/Resources/Textures/SimpleStation14/Structures/Furniture/Benches/steel_bench_white.rsi/right.png differ diff --git a/Resources/Textures/Structures/Machines/artifact_crusher.rsi/icon.png b/Resources/Textures/Structures/Machines/artifact_crusher.rsi/icon.png new file mode 100644 index 0000000000..af5f78e368 Binary files /dev/null and b/Resources/Textures/Structures/Machines/artifact_crusher.rsi/icon.png differ diff --git a/Resources/Textures/Structures/Machines/artifact_crusher.rsi/meta.json b/Resources/Textures/Structures/Machines/artifact_crusher.rsi/meta.json index dc0d23c539..279bc73ec7 100644 --- a/Resources/Textures/Structures/Machines/artifact_crusher.rsi/meta.json +++ b/Resources/Textures/Structures/Machines/artifact_crusher.rsi/meta.json @@ -7,6 +7,9 @@ "y": 64 }, "states": [ + { + "name": "icon" + }, { "name": "glass" }, diff --git a/Resources/Textures/Structures/Machines/circuit_imprinter_hypercon.rsi/building.png b/Resources/Textures/Structures/Machines/circuit_imprinter_hypercon.rsi/building.png new file mode 100644 index 0000000000..7987532f39 Binary files /dev/null and b/Resources/Textures/Structures/Machines/circuit_imprinter_hypercon.rsi/building.png differ diff --git a/Resources/Textures/Structures/Machines/circuit_imprinter_hypercon.rsi/icon.png b/Resources/Textures/Structures/Machines/circuit_imprinter_hypercon.rsi/icon.png new file mode 100644 index 0000000000..e56878a7ad Binary files /dev/null and b/Resources/Textures/Structures/Machines/circuit_imprinter_hypercon.rsi/icon.png differ diff --git a/Resources/Textures/Structures/Machines/circuit_imprinter_hypercon.rsi/meta.json b/Resources/Textures/Structures/Machines/circuit_imprinter_hypercon.rsi/meta.json new file mode 100644 index 0000000000..faa9a362b4 --- /dev/null +++ b/Resources/Textures/Structures/Machines/circuit_imprinter_hypercon.rsi/meta.json @@ -0,0 +1,52 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Made by Piksqu for ss14, based on the circuit imprinter sprite taken from tgstation at https://github.com/tgstation/tgstation/commit/40d89d11ea4a5cb81d61dc1018b46f4e7d32c62a", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "panel" + }, + { + "name": "unlit" + }, + { + "name": "building", + "delays": [ + [ + 0.16, + 0.16, + 0.16, + 0.16, + 0.16, + 0.16, + 0.16, + 0.16, + 0.16, + 0.16, + 0.16, + 0.16, + 0.16, + 0.16, + 0.16, + 0.16, + 0.16, + 0.16, + 0.16, + 0.16, + 0.16, + 0.16, + 0.16, + 0.16, + 0.18 + ] + ] + } + ] +} diff --git a/Resources/Textures/Structures/Machines/circuit_imprinter_hypercon.rsi/panel.png b/Resources/Textures/Structures/Machines/circuit_imprinter_hypercon.rsi/panel.png new file mode 100644 index 0000000000..e9c369c734 Binary files /dev/null and b/Resources/Textures/Structures/Machines/circuit_imprinter_hypercon.rsi/panel.png differ diff --git a/Resources/Textures/Structures/Machines/circuit_imprinter_hypercon.rsi/unlit.png b/Resources/Textures/Structures/Machines/circuit_imprinter_hypercon.rsi/unlit.png new file mode 100644 index 0000000000..9a9e240fbc Binary files /dev/null and b/Resources/Textures/Structures/Machines/circuit_imprinter_hypercon.rsi/unlit.png differ diff --git a/Resources/Textures/Structures/Machines/fax_machine.rsi/inserting_hamster.png b/Resources/Textures/Structures/Machines/fax_machine.rsi/inserting_hamster.png new file mode 100644 index 0000000000..5f14e3013f Binary files /dev/null and b/Resources/Textures/Structures/Machines/fax_machine.rsi/inserting_hamster.png differ diff --git a/Resources/Textures/Structures/Machines/fax_machine.rsi/inserting_mothroach.png b/Resources/Textures/Structures/Machines/fax_machine.rsi/inserting_mothroach.png new file mode 100644 index 0000000000..d034322697 Binary files /dev/null and b/Resources/Textures/Structures/Machines/fax_machine.rsi/inserting_mothroach.png differ diff --git a/Resources/Textures/Structures/Machines/fax_machine.rsi/inserting_mouse.png b/Resources/Textures/Structures/Machines/fax_machine.rsi/inserting_mouse.png new file mode 100644 index 0000000000..7fb87053f3 Binary files /dev/null and b/Resources/Textures/Structures/Machines/fax_machine.rsi/inserting_mouse.png differ diff --git a/Resources/Textures/Structures/Machines/fax_machine.rsi/meta.json b/Resources/Textures/Structures/Machines/fax_machine.rsi/meta.json index 1a8856301d..00681ca6da 100644 --- a/Resources/Textures/Structures/Machines/fax_machine.rsi/meta.json +++ b/Resources/Textures/Structures/Machines/fax_machine.rsi/meta.json @@ -40,6 +40,63 @@ ] ] }, + { + "name": "inserting_hamster", + "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 + ] + ] + }, + { + "name": "inserting_mothroach", + "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 + ] + ] + }, + { + "name": "inserting_mouse", + "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 + ] + ] + }, { "name": "printing", "delays": [ diff --git a/Resources/Textures/Structures/Piping/Atmospherics/pipe.rsi/Bend-inhand-left.png b/Resources/Textures/Structures/Piping/Atmospherics/pipe.rsi/Bend-inhand-left.png new file mode 100644 index 0000000000..f4f60cdd17 Binary files /dev/null and b/Resources/Textures/Structures/Piping/Atmospherics/pipe.rsi/Bend-inhand-left.png differ diff --git a/Resources/Textures/Structures/Piping/Atmospherics/pipe.rsi/Bend-inhand-right.png b/Resources/Textures/Structures/Piping/Atmospherics/pipe.rsi/Bend-inhand-right.png new file mode 100644 index 0000000000..dfd245221f Binary files /dev/null and b/Resources/Textures/Structures/Piping/Atmospherics/pipe.rsi/Bend-inhand-right.png differ diff --git a/Resources/Textures/Structures/Piping/Atmospherics/pipe.rsi/Fourway-inhand-left.png b/Resources/Textures/Structures/Piping/Atmospherics/pipe.rsi/Fourway-inhand-left.png new file mode 100644 index 0000000000..4da2f458e8 Binary files /dev/null and b/Resources/Textures/Structures/Piping/Atmospherics/pipe.rsi/Fourway-inhand-left.png differ diff --git a/Resources/Textures/Structures/Piping/Atmospherics/pipe.rsi/Fourway-inhand-right.png b/Resources/Textures/Structures/Piping/Atmospherics/pipe.rsi/Fourway-inhand-right.png new file mode 100644 index 0000000000..a59a797165 Binary files /dev/null and b/Resources/Textures/Structures/Piping/Atmospherics/pipe.rsi/Fourway-inhand-right.png differ diff --git a/Resources/Textures/Structures/Piping/Atmospherics/pipe.rsi/TJunction-inhand-left.png b/Resources/Textures/Structures/Piping/Atmospherics/pipe.rsi/TJunction-inhand-left.png new file mode 100644 index 0000000000..8b14c9117a Binary files /dev/null and b/Resources/Textures/Structures/Piping/Atmospherics/pipe.rsi/TJunction-inhand-left.png differ diff --git a/Resources/Textures/Structures/Piping/Atmospherics/pipe.rsi/TJunction-inhand-right.png b/Resources/Textures/Structures/Piping/Atmospherics/pipe.rsi/TJunction-inhand-right.png new file mode 100644 index 0000000000..828920b400 Binary files /dev/null and b/Resources/Textures/Structures/Piping/Atmospherics/pipe.rsi/TJunction-inhand-right.png differ diff --git a/Resources/Textures/Structures/Piping/Atmospherics/pipe.rsi/inhand-left.png b/Resources/Textures/Structures/Piping/Atmospherics/pipe.rsi/inhand-left.png new file mode 100644 index 0000000000..7ca777a2e9 Binary files /dev/null and b/Resources/Textures/Structures/Piping/Atmospherics/pipe.rsi/inhand-left.png differ diff --git a/Resources/Textures/Structures/Piping/Atmospherics/pipe.rsi/inhand-right.png b/Resources/Textures/Structures/Piping/Atmospherics/pipe.rsi/inhand-right.png new file mode 100644 index 0000000000..6c8c55a515 Binary files /dev/null and b/Resources/Textures/Structures/Piping/Atmospherics/pipe.rsi/inhand-right.png differ diff --git a/Resources/Textures/Structures/Piping/Atmospherics/pipe.rsi/meta.json b/Resources/Textures/Structures/Piping/Atmospherics/pipe.rsi/meta.json index ae4ff9b12d..aecb62aee5 100644 --- a/Resources/Textures/Structures/Piping/Atmospherics/pipe.rsi/meta.json +++ b/Resources/Textures/Structures/Piping/Atmospherics/pipe.rsi/meta.json @@ -5,8 +5,40 @@ "y":32 }, "license":"CC-BY-SA-3.0", - "copyright":"pipeTrinaryConnectors made by Menshin for SS14 based on pipeTJunction, the rest is taken from https://github.com/tgstation/tgstation at commit 57cd1d59ca019dd0e7811ac451f295f818e573da", + "copyright":"Inhand sprites by alzore_(discord) for SS14. pipeTrinaryConnectors made by Menshin for SS14 based on pipeTJunction, the rest is taken from https://github.com/tgstation/tgstation at commit 57cd1d59ca019dd0e7811ac451f295f818e573da.", "states":[ + { + "name": "inhand-left", + "directions":4 + }, + { + "name":"inhand-right", + "directions":4 + }, + { + "name": "Bend-inhand-left", + "directions":4 + }, + { + "name":"Bend-inhand-right", + "directions":4 + }, + { + "name": "TJunction-inhand-left", + "directions":4 + }, + { + "name":"TJunction-inhand-right", + "directions":4 + }, + { + "name": "Fourway-inhand-left", + "directions":4 + }, + { + "name":"Fourway-inhand-right", + "directions":4 + }, { "name":"pipeBroken", "directions":1 @@ -38,6 +70,18 @@ { "name":"pipeTrinaryConnectors", "directions":4 + }, + { + "name":"storageStraight", + "directions":4 + }, + { + "name":"storageBend", + "directions":4 + }, + { + "name":"storageTJunction", + "directions":4 } ] } diff --git a/Resources/Textures/Structures/Piping/Atmospherics/pipe.rsi/pipeBend.png b/Resources/Textures/Structures/Piping/Atmospherics/pipe.rsi/pipeBend.png index b6408718eb..cda379a65b 100644 Binary files a/Resources/Textures/Structures/Piping/Atmospherics/pipe.rsi/pipeBend.png and b/Resources/Textures/Structures/Piping/Atmospherics/pipe.rsi/pipeBend.png differ diff --git a/Resources/Textures/Structures/Piping/Atmospherics/pipe.rsi/storageBend.png b/Resources/Textures/Structures/Piping/Atmospherics/pipe.rsi/storageBend.png new file mode 100644 index 0000000000..39ffe213ef Binary files /dev/null and b/Resources/Textures/Structures/Piping/Atmospherics/pipe.rsi/storageBend.png differ diff --git a/Resources/Textures/Structures/Piping/Atmospherics/pipe.rsi/storageStraight.png b/Resources/Textures/Structures/Piping/Atmospherics/pipe.rsi/storageStraight.png new file mode 100644 index 0000000000..715aeb5824 Binary files /dev/null and b/Resources/Textures/Structures/Piping/Atmospherics/pipe.rsi/storageStraight.png differ diff --git a/Resources/Textures/Structures/Piping/Atmospherics/pipe.rsi/storageTJunction.png b/Resources/Textures/Structures/Piping/Atmospherics/pipe.rsi/storageTJunction.png new file mode 100644 index 0000000000..af8376a152 Binary files /dev/null and b/Resources/Textures/Structures/Piping/Atmospherics/pipe.rsi/storageTJunction.png differ diff --git a/Resources/Textures/Structures/Specific/barberchair.rsi/barberchair.png b/Resources/Textures/Structures/Specific/barberchair.rsi/barberchair.png new file mode 100644 index 0000000000..244a875dca Binary files /dev/null and b/Resources/Textures/Structures/Specific/barberchair.rsi/barberchair.png differ diff --git a/Resources/Textures/Structures/Specific/barberchair.rsi/meta.json b/Resources/Textures/Structures/Specific/barberchair.rsi/meta.json new file mode 100644 index 0000000000..2e6b70f2fc --- /dev/null +++ b/Resources/Textures/Structures/Specific/barberchair.rsi/meta.json @@ -0,0 +1,15 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from BlueMoon at https://github.com/BlueMoon-Labs/MOLOT-BlueMoon-Station/blob/master/modular_bluemoon/krashly/icons/obj/chairs.dmi", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "barberchair", + "directions": 4 + } + ] +} \ No newline at end of file diff --git a/Resources/Textures/Structures/Specific/barbershop.rsi/barberchair.png b/Resources/Textures/Structures/Specific/barbershop.rsi/barberchair.png deleted file mode 100644 index 7e8fd78ab7..0000000000 Binary files a/Resources/Textures/Structures/Specific/barbershop.rsi/barberchair.png and /dev/null differ diff --git a/Resources/Textures/Structures/Specific/barbershop.rsi/meta.json b/Resources/Textures/Structures/Specific/barbershop.rsi/meta.json index 1226428bcf..6d57cc380d 100644 --- a/Resources/Textures/Structures/Specific/barbershop.rsi/meta.json +++ b/Resources/Textures/Structures/Specific/barbershop.rsi/meta.json @@ -18,9 +18,6 @@ ] ] }, - { - "name": "barberchair" - }, { "name": "dyedispenser" }, diff --git a/Resources/Textures/Structures/Storage/glassbox.rsi/DamageOverlay_12.png b/Resources/Textures/Structures/Storage/glassbox.rsi/DamageOverlay_12.png index cce6fe0ba3..a82bb8b233 100644 Binary files a/Resources/Textures/Structures/Storage/glassbox.rsi/DamageOverlay_12.png and b/Resources/Textures/Structures/Storage/glassbox.rsi/DamageOverlay_12.png differ diff --git a/Resources/Textures/Structures/Storage/glassbox.rsi/DamageOverlay_4.png b/Resources/Textures/Structures/Storage/glassbox.rsi/DamageOverlay_4.png index 08b6f66449..054f1f520c 100644 Binary files a/Resources/Textures/Structures/Storage/glassbox.rsi/DamageOverlay_4.png and b/Resources/Textures/Structures/Storage/glassbox.rsi/DamageOverlay_4.png differ diff --git a/Resources/Textures/Structures/Storage/glassbox.rsi/DamageOverlay_8.png b/Resources/Textures/Structures/Storage/glassbox.rsi/DamageOverlay_8.png index 6d980d1c67..e1c2297468 100644 Binary files a/Resources/Textures/Structures/Storage/glassbox.rsi/DamageOverlay_8.png and b/Resources/Textures/Structures/Storage/glassbox.rsi/DamageOverlay_8.png differ diff --git a/Resources/Textures/Structures/Storage/glassbox.rsi/glassbox-empty-open.png b/Resources/Textures/Structures/Storage/glassbox.rsi/base.png similarity index 100% rename from Resources/Textures/Structures/Storage/glassbox.rsi/glassbox-empty-open.png rename to Resources/Textures/Structures/Storage/glassbox.rsi/base.png diff --git a/Resources/Textures/Structures/Storage/glassbox.rsi/glass-4.png b/Resources/Textures/Structures/Storage/glassbox.rsi/glass-broken.png similarity index 100% rename from Resources/Textures/Structures/Storage/glassbox.rsi/glass-4.png rename to Resources/Textures/Structures/Storage/glassbox.rsi/glass-broken.png diff --git a/Resources/Textures/Structures/Storage/glassbox.rsi/glassbox-filled-closed.png b/Resources/Textures/Structures/Storage/glassbox.rsi/glassbox-filled-closed.png deleted file mode 100644 index b558cf5212..0000000000 Binary files a/Resources/Textures/Structures/Storage/glassbox.rsi/glassbox-filled-closed.png and /dev/null differ diff --git a/Resources/Textures/Structures/Storage/glassbox.rsi/glassbox-filled-open.png b/Resources/Textures/Structures/Storage/glassbox.rsi/glassbox-filled-open.png deleted file mode 100644 index 48db8e88e5..0000000000 Binary files a/Resources/Textures/Structures/Storage/glassbox.rsi/glassbox-filled-open.png and /dev/null differ diff --git a/Resources/Textures/Structures/Storage/glassbox.rsi/glassbox.png b/Resources/Textures/Structures/Storage/glassbox.rsi/glassbox.png deleted file mode 100644 index 3a3bf591ca..0000000000 Binary files a/Resources/Textures/Structures/Storage/glassbox.rsi/glassbox.png and /dev/null differ diff --git a/Resources/Textures/Structures/Storage/glassbox.rsi/icon.png b/Resources/Textures/Structures/Storage/glassbox.rsi/icon.png new file mode 100644 index 0000000000..9d1c8c8685 Binary files /dev/null and b/Resources/Textures/Structures/Storage/glassbox.rsi/icon.png differ diff --git a/Resources/Textures/Structures/Storage/glassbox.rsi/meta.json b/Resources/Textures/Structures/Storage/glassbox.rsi/meta.json index 5ce653f37b..33decc4009 100644 --- a/Resources/Textures/Structures/Storage/glassbox.rsi/meta.json +++ b/Resources/Textures/Structures/Storage/glassbox.rsi/meta.json @@ -1,50 +1,44 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "Taken from tgstation https://github.com/tgstation/tgstation/commit/0129a094635aac51e00fdc7aa3b4248affc1f49d Sprite modified and updated by Nimfar11 (Github), Shatter resprite by KREKS", + "copyright": "Taken from tgstation https://github.com/tgstation/tgstation/commit/0129a094635aac51e00fdc7aa3b4248affc1f49d Sprite modified and updated by Nimfar11 (Github), Shatter resprite by KREKS and modified by MilenVolf (GitHub)", "size": { "x": 32, "y": 32 }, "states": [ { - "name": "glass" - }, - { - "name": "DamageOverlay_4" + "name": "base" }, { - "name": "DamageOverlay_8" + "name": "glass" }, { - "name": "DamageOverlay_12" + "name": "glass-up" }, { - "name": "glass-4" + "name": "glass-broken" }, { - "name": "glass-up" + "name": "caplaser" }, { "name": "locked" }, - { - "name": "caplaser" - }, { "name": "unlocked" }, { - "name": "glassbox" + "name": "icon" }, { - "name": "glassbox-empty-open" + "name": "DamageOverlay_4" }, { - "name": "glassbox-filled-closed" + "name": "DamageOverlay_8" }, { - "name": "glassbox-filled-open" + "name": "DamageOverlay_12" } ] } \ No newline at end of file diff --git a/Resources/Textures/Structures/Wallmounts/signs.rsi/direction_bridge.png b/Resources/Textures/Structures/Wallmounts/signs.rsi/direction_bridge.png index 7f3e3d70c5..a331f5f6af 100644 Binary files a/Resources/Textures/Structures/Wallmounts/signs.rsi/direction_bridge.png and b/Resources/Textures/Structures/Wallmounts/signs.rsi/direction_bridge.png differ diff --git a/Resources/Textures/Structures/Walls/rock.rsi/meta.json b/Resources/Textures/Structures/Walls/rock.rsi/meta.json index aa46326a4b..27935ec089 100644 --- a/Resources/Textures/Structures/Walls/rock.rsi/meta.json +++ b/Resources/Textures/Structures/Walls/rock.rsi/meta.json @@ -198,6 +198,9 @@ }, { "name": "rock_andesite_west" + }, + { + "name": "rock_bluespace" } ] } diff --git a/Resources/Textures/Structures/Walls/rock.rsi/rock_bluespace.png b/Resources/Textures/Structures/Walls/rock.rsi/rock_bluespace.png new file mode 100644 index 0000000000..e3368c34d7 Binary files /dev/null and b/Resources/Textures/Structures/Walls/rock.rsi/rock_bluespace.png differ diff --git a/Resources/Textures/Structures/cargo_pallets.rsi/cargo_pallet_buy_0.png b/Resources/Textures/Structures/cargo_pallets.rsi/cargo_pallet_buy_0.png new file mode 100644 index 0000000000..1505c892b8 Binary files /dev/null and b/Resources/Textures/Structures/cargo_pallets.rsi/cargo_pallet_buy_0.png differ diff --git a/Resources/Textures/Structures/cargo_pallets.rsi/cargo_pallet_buy_1.png b/Resources/Textures/Structures/cargo_pallets.rsi/cargo_pallet_buy_1.png new file mode 100644 index 0000000000..e0d5a4d39e Binary files /dev/null and b/Resources/Textures/Structures/cargo_pallets.rsi/cargo_pallet_buy_1.png differ diff --git a/Resources/Textures/Structures/cargo_pallets.rsi/cargo_pallet_buy_2.png b/Resources/Textures/Structures/cargo_pallets.rsi/cargo_pallet_buy_2.png new file mode 100644 index 0000000000..1505c892b8 Binary files /dev/null and b/Resources/Textures/Structures/cargo_pallets.rsi/cargo_pallet_buy_2.png differ diff --git a/Resources/Textures/Structures/cargo_pallets.rsi/cargo_pallet_buy_3.png b/Resources/Textures/Structures/cargo_pallets.rsi/cargo_pallet_buy_3.png new file mode 100644 index 0000000000..e0d5a4d39e Binary files /dev/null and b/Resources/Textures/Structures/cargo_pallets.rsi/cargo_pallet_buy_3.png differ diff --git a/Resources/Textures/Structures/cargo_pallets.rsi/cargo_pallet_buy_4.png b/Resources/Textures/Structures/cargo_pallets.rsi/cargo_pallet_buy_4.png new file mode 100644 index 0000000000..38cb411508 Binary files /dev/null and b/Resources/Textures/Structures/cargo_pallets.rsi/cargo_pallet_buy_4.png differ diff --git a/Resources/Textures/Structures/cargo_pallets.rsi/cargo_pallet_buy_5.png b/Resources/Textures/Structures/cargo_pallets.rsi/cargo_pallet_buy_5.png new file mode 100644 index 0000000000..b863e36b8c Binary files /dev/null and b/Resources/Textures/Structures/cargo_pallets.rsi/cargo_pallet_buy_5.png differ diff --git a/Resources/Textures/Structures/cargo_pallets.rsi/cargo_pallet_buy_6.png b/Resources/Textures/Structures/cargo_pallets.rsi/cargo_pallet_buy_6.png new file mode 100644 index 0000000000..38cb411508 Binary files /dev/null and b/Resources/Textures/Structures/cargo_pallets.rsi/cargo_pallet_buy_6.png differ diff --git a/Resources/Textures/Structures/cargo_pallets.rsi/cargo_pallet_buy_7.png b/Resources/Textures/Structures/cargo_pallets.rsi/cargo_pallet_buy_7.png new file mode 100644 index 0000000000..88ffa378d2 Binary files /dev/null and b/Resources/Textures/Structures/cargo_pallets.rsi/cargo_pallet_buy_7.png differ diff --git a/Resources/Textures/Structures/cargo_pallets.rsi/cargo_pallet_sell_0.png b/Resources/Textures/Structures/cargo_pallets.rsi/cargo_pallet_sell_0.png new file mode 100644 index 0000000000..136a48087b Binary files /dev/null and b/Resources/Textures/Structures/cargo_pallets.rsi/cargo_pallet_sell_0.png differ diff --git a/Resources/Textures/Structures/cargo_pallets.rsi/cargo_pallet_sell_1.png b/Resources/Textures/Structures/cargo_pallets.rsi/cargo_pallet_sell_1.png new file mode 100644 index 0000000000..06fb688c5b Binary files /dev/null and b/Resources/Textures/Structures/cargo_pallets.rsi/cargo_pallet_sell_1.png differ diff --git a/Resources/Textures/Structures/cargo_pallets.rsi/cargo_pallet_sell_2.png b/Resources/Textures/Structures/cargo_pallets.rsi/cargo_pallet_sell_2.png new file mode 100644 index 0000000000..136a48087b Binary files /dev/null and b/Resources/Textures/Structures/cargo_pallets.rsi/cargo_pallet_sell_2.png differ diff --git a/Resources/Textures/Structures/cargo_pallets.rsi/cargo_pallet_sell_3.png b/Resources/Textures/Structures/cargo_pallets.rsi/cargo_pallet_sell_3.png new file mode 100644 index 0000000000..06fb688c5b Binary files /dev/null and b/Resources/Textures/Structures/cargo_pallets.rsi/cargo_pallet_sell_3.png differ diff --git a/Resources/Textures/Structures/cargo_pallets.rsi/cargo_pallet_sell_4.png b/Resources/Textures/Structures/cargo_pallets.rsi/cargo_pallet_sell_4.png new file mode 100644 index 0000000000..80a85ef238 Binary files /dev/null and b/Resources/Textures/Structures/cargo_pallets.rsi/cargo_pallet_sell_4.png differ diff --git a/Resources/Textures/Structures/cargo_pallets.rsi/cargo_pallet_sell_5.png b/Resources/Textures/Structures/cargo_pallets.rsi/cargo_pallet_sell_5.png new file mode 100644 index 0000000000..4a194d7fb1 Binary files /dev/null and b/Resources/Textures/Structures/cargo_pallets.rsi/cargo_pallet_sell_5.png differ diff --git a/Resources/Textures/Structures/cargo_pallets.rsi/cargo_pallet_sell_6.png b/Resources/Textures/Structures/cargo_pallets.rsi/cargo_pallet_sell_6.png new file mode 100644 index 0000000000..80a85ef238 Binary files /dev/null and b/Resources/Textures/Structures/cargo_pallets.rsi/cargo_pallet_sell_6.png differ diff --git a/Resources/Textures/Structures/cargo_pallets.rsi/cargo_pallet_sell_7.png b/Resources/Textures/Structures/cargo_pallets.rsi/cargo_pallet_sell_7.png new file mode 100644 index 0000000000..88ffa378d2 Binary files /dev/null and b/Resources/Textures/Structures/cargo_pallets.rsi/cargo_pallet_sell_7.png differ diff --git a/Resources/Textures/Structures/cargo_pallets.rsi/meta.json b/Resources/Textures/Structures/cargo_pallets.rsi/meta.json index 4751d95b9b..c32fcfefd0 100644 --- a/Resources/Textures/Structures/cargo_pallets.rsi/meta.json +++ b/Resources/Textures/Structures/cargo_pallets.rsi/meta.json @@ -10,8 +10,72 @@ { "name": "cargo_pallet_buy" }, + { + "name": "cargo_pallet_buy_0", + "directions": 4 + }, + { + "name": "cargo_pallet_buy_1", + "directions": 4 + }, + { + "name": "cargo_pallet_buy_2", + "directions": 4 + }, + { + "name": "cargo_pallet_buy_3", + "directions": 4 + }, + { + "name": "cargo_pallet_buy_4", + "directions": 4 + }, + { + "name": "cargo_pallet_buy_5", + "directions": 4 + }, + { + "name": "cargo_pallet_buy_6", + "directions": 4 + }, + { + "name": "cargo_pallet_buy_7", + "directions": 4 + }, { "name": "cargo_pallet_sell" + }, + { + "name": "cargo_pallet_sell_0", + "directions": 4 + }, + { + "name": "cargo_pallet_sell_1", + "directions": 4 + }, + { + "name": "cargo_pallet_sell_2", + "directions": 4 + }, + { + "name": "cargo_pallet_sell_3", + "directions": 4 + }, + { + "name": "cargo_pallet_sell_4", + "directions": 4 + }, + { + "name": "cargo_pallet_sell_5", + "directions": 4 + }, + { + "name": "cargo_pallet_sell_6", + "directions": 4 + }, + { + "name": "cargo_pallet_sell_7", + "directions": 4 } ] } diff --git a/Resources/Textures/Tiles/Misc/floortrap.rsi/floortrap.png b/Resources/Textures/Tiles/Misc/floortrap.rsi/floortrap.png new file mode 100644 index 0000000000..391437064e Binary files /dev/null and b/Resources/Textures/Tiles/Misc/floortrap.rsi/floortrap.png differ diff --git a/Resources/Textures/Tiles/Misc/floortrap.rsi/floortrapspawn.png b/Resources/Textures/Tiles/Misc/floortrap.rsi/floortrapspawn.png new file mode 100644 index 0000000000..764a0fed15 Binary files /dev/null and b/Resources/Textures/Tiles/Misc/floortrap.rsi/floortrapspawn.png differ diff --git a/Resources/Textures/Tiles/Misc/floortrap.rsi/meta.json b/Resources/Textures/Tiles/Misc/floortrap.rsi/meta.json new file mode 100644 index 0000000000..586fad6d23 --- /dev/null +++ b/Resources/Textures/Tiles/Misc/floortrap.rsi/meta.json @@ -0,0 +1,17 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Made by Nimfar11 (github) for ss14", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "floortrap" + }, + { + "name": "floortrapspawn" + } + ] +} diff --git a/Resources/Textures/Tips/tippy.rsi/down.png b/Resources/Textures/Tips/tippy.rsi/down.png new file mode 100644 index 0000000000..bdfcf315b6 Binary files /dev/null and b/Resources/Textures/Tips/tippy.rsi/down.png differ diff --git a/Resources/Textures/Tips/tippy.rsi/left.png b/Resources/Textures/Tips/tippy.rsi/left.png new file mode 100644 index 0000000000..f2293c6111 Binary files /dev/null and b/Resources/Textures/Tips/tippy.rsi/left.png differ diff --git a/Resources/Textures/Tips/tippy.rsi/meta.json b/Resources/Textures/Tips/tippy.rsi/meta.json new file mode 100644 index 0000000000..68942d731c --- /dev/null +++ b/Resources/Textures/Tips/tippy.rsi/meta.json @@ -0,0 +1,20 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "down" + }, + { + "name": "left" + }, + { + "name": "right" + } + ] +} diff --git a/Resources/Textures/Tips/tippy.rsi/right.png b/Resources/Textures/Tips/tippy.rsi/right.png new file mode 100644 index 0000000000..900262932d Binary files /dev/null and b/Resources/Textures/Tips/tippy.rsi/right.png differ diff --git a/Resources/Textures/_White/Structures/Wallmounts/signs.rsi/kpp.png b/Resources/Textures/_White/Structures/Wallmounts/signs.rsi/check.png similarity index 100% rename from Resources/Textures/_White/Structures/Wallmounts/signs.rsi/kpp.png rename to Resources/Textures/_White/Structures/Wallmounts/signs.rsi/check.png diff --git a/Resources/Textures/_White/Structures/Wallmounts/signs.rsi/direction_bar.png b/Resources/Textures/_White/Structures/Wallmounts/signs.rsi/direction_bar.png new file mode 100644 index 0000000000..ad9cd3bbd5 Binary files /dev/null and b/Resources/Textures/_White/Structures/Wallmounts/signs.rsi/direction_bar.png differ diff --git a/Resources/Textures/_White/Structures/Wallmounts/signs.rsi/direction_bridge.png b/Resources/Textures/_White/Structures/Wallmounts/signs.rsi/direction_bridge.png new file mode 100644 index 0000000000..a331f5f6af Binary files /dev/null and b/Resources/Textures/_White/Structures/Wallmounts/signs.rsi/direction_bridge.png differ diff --git a/Resources/Textures/_White/Structures/Wallmounts/signs.rsi/direction_brig.png b/Resources/Textures/_White/Structures/Wallmounts/signs.rsi/direction_brig.png new file mode 100644 index 0000000000..34f12710ae Binary files /dev/null and b/Resources/Textures/_White/Structures/Wallmounts/signs.rsi/direction_brig.png differ diff --git a/Resources/Textures/_White/Structures/Wallmounts/signs.rsi/direction_chapel.png b/Resources/Textures/_White/Structures/Wallmounts/signs.rsi/direction_chapel.png new file mode 100644 index 0000000000..1c1d333e8d Binary files /dev/null and b/Resources/Textures/_White/Structures/Wallmounts/signs.rsi/direction_chapel.png differ diff --git a/Resources/Textures/_White/Structures/Wallmounts/signs.rsi/direction_chemistry.png b/Resources/Textures/_White/Structures/Wallmounts/signs.rsi/direction_chemistry.png new file mode 100644 index 0000000000..b6119064af Binary files /dev/null and b/Resources/Textures/_White/Structures/Wallmounts/signs.rsi/direction_chemistry.png differ diff --git a/Resources/Textures/_White/Structures/Wallmounts/signs.rsi/direction_cryo.png b/Resources/Textures/_White/Structures/Wallmounts/signs.rsi/direction_cryo.png new file mode 100644 index 0000000000..dc342dce67 Binary files /dev/null and b/Resources/Textures/_White/Structures/Wallmounts/signs.rsi/direction_cryo.png differ diff --git a/Resources/Textures/_White/Structures/Wallmounts/signs.rsi/direction_dorms.png b/Resources/Textures/_White/Structures/Wallmounts/signs.rsi/direction_dorms.png new file mode 100644 index 0000000000..3ee8b449d3 Binary files /dev/null and b/Resources/Textures/_White/Structures/Wallmounts/signs.rsi/direction_dorms.png differ diff --git a/Resources/Textures/_White/Structures/Wallmounts/signs.rsi/direction_eng.png b/Resources/Textures/_White/Structures/Wallmounts/signs.rsi/direction_eng.png new file mode 100644 index 0000000000..56ea5fbadd Binary files /dev/null and b/Resources/Textures/_White/Structures/Wallmounts/signs.rsi/direction_eng.png differ diff --git a/Resources/Textures/_White/Structures/Wallmounts/signs.rsi/direction_evac.png b/Resources/Textures/_White/Structures/Wallmounts/signs.rsi/direction_evac.png new file mode 100644 index 0000000000..7807607b0f Binary files /dev/null and b/Resources/Textures/_White/Structures/Wallmounts/signs.rsi/direction_evac.png differ diff --git a/Resources/Textures/_White/Structures/Wallmounts/signs.rsi/direction_exam.png b/Resources/Textures/_White/Structures/Wallmounts/signs.rsi/direction_exam.png new file mode 100644 index 0000000000..dc1eb795e8 Binary files /dev/null and b/Resources/Textures/_White/Structures/Wallmounts/signs.rsi/direction_exam.png differ diff --git a/Resources/Textures/_White/Structures/Wallmounts/signs.rsi/direction_food.png b/Resources/Textures/_White/Structures/Wallmounts/signs.rsi/direction_food.png new file mode 100644 index 0000000000..f2f0212b4c Binary files /dev/null and b/Resources/Textures/_White/Structures/Wallmounts/signs.rsi/direction_food.png differ diff --git a/Resources/Textures/_White/Structures/Wallmounts/signs.rsi/direction_gravity.png b/Resources/Textures/_White/Structures/Wallmounts/signs.rsi/direction_gravity.png new file mode 100644 index 0000000000..d4095e9a27 Binary files /dev/null and b/Resources/Textures/_White/Structures/Wallmounts/signs.rsi/direction_gravity.png differ diff --git a/Resources/Textures/_White/Structures/Wallmounts/signs.rsi/direction_hop.png b/Resources/Textures/_White/Structures/Wallmounts/signs.rsi/direction_hop.png new file mode 100644 index 0000000000..6272e3fd71 Binary files /dev/null and b/Resources/Textures/_White/Structures/Wallmounts/signs.rsi/direction_hop.png differ diff --git a/Resources/Textures/_White/Structures/Wallmounts/signs.rsi/direction_hydro.png b/Resources/Textures/_White/Structures/Wallmounts/signs.rsi/direction_hydro.png new file mode 100644 index 0000000000..c81effa226 Binary files /dev/null and b/Resources/Textures/_White/Structures/Wallmounts/signs.rsi/direction_hydro.png differ diff --git a/Resources/Textures/_White/Structures/Wallmounts/signs.rsi/direction_icu.png b/Resources/Textures/_White/Structures/Wallmounts/signs.rsi/direction_icu.png new file mode 100644 index 0000000000..d4d2e4cd57 Binary files /dev/null and b/Resources/Textures/_White/Structures/Wallmounts/signs.rsi/direction_icu.png differ diff --git a/Resources/Textures/_White/Structures/Wallmounts/signs.rsi/direction_janitor.png b/Resources/Textures/_White/Structures/Wallmounts/signs.rsi/direction_janitor.png new file mode 100644 index 0000000000..cc50450fb9 Binary files /dev/null and b/Resources/Textures/_White/Structures/Wallmounts/signs.rsi/direction_janitor.png differ diff --git a/Resources/Textures/_White/Structures/Wallmounts/signs.rsi/direction_library.png b/Resources/Textures/_White/Structures/Wallmounts/signs.rsi/direction_library.png new file mode 100644 index 0000000000..bd4c2fae27 Binary files /dev/null and b/Resources/Textures/_White/Structures/Wallmounts/signs.rsi/direction_library.png differ diff --git a/Resources/Textures/_White/Structures/Wallmounts/signs.rsi/direction_med.png b/Resources/Textures/_White/Structures/Wallmounts/signs.rsi/direction_med.png new file mode 100644 index 0000000000..b6b2899dcd Binary files /dev/null and b/Resources/Textures/_White/Structures/Wallmounts/signs.rsi/direction_med.png differ diff --git a/Resources/Textures/_White/Structures/Wallmounts/signs.rsi/direction_salvage.png b/Resources/Textures/_White/Structures/Wallmounts/signs.rsi/direction_salvage.png new file mode 100644 index 0000000000..3f0d3dbf42 Binary files /dev/null and b/Resources/Textures/_White/Structures/Wallmounts/signs.rsi/direction_salvage.png differ diff --git a/Resources/Textures/_White/Structures/Wallmounts/signs.rsi/direction_sci.png b/Resources/Textures/_White/Structures/Wallmounts/signs.rsi/direction_sci.png new file mode 100644 index 0000000000..731a201140 Binary files /dev/null and b/Resources/Textures/_White/Structures/Wallmounts/signs.rsi/direction_sci.png differ diff --git a/Resources/Textures/_White/Structures/Wallmounts/signs.rsi/direction_sec.png b/Resources/Textures/_White/Structures/Wallmounts/signs.rsi/direction_sec.png new file mode 100644 index 0000000000..d025350b9a Binary files /dev/null and b/Resources/Textures/_White/Structures/Wallmounts/signs.rsi/direction_sec.png differ diff --git a/Resources/Textures/_White/Structures/Wallmounts/signs.rsi/direction_solar.png b/Resources/Textures/_White/Structures/Wallmounts/signs.rsi/direction_solar.png new file mode 100644 index 0000000000..9af0616816 Binary files /dev/null and b/Resources/Textures/_White/Structures/Wallmounts/signs.rsi/direction_solar.png differ diff --git a/Resources/Textures/_White/Structures/Wallmounts/signs.rsi/direction_supply.png b/Resources/Textures/_White/Structures/Wallmounts/signs.rsi/direction_supply.png new file mode 100644 index 0000000000..0f4df4caa5 Binary files /dev/null and b/Resources/Textures/_White/Structures/Wallmounts/signs.rsi/direction_supply.png differ diff --git a/Resources/Textures/_White/Structures/Wallmounts/signs.rsi/direction_wash.png b/Resources/Textures/_White/Structures/Wallmounts/signs.rsi/direction_wash.png new file mode 100644 index 0000000000..af31c3057d Binary files /dev/null and b/Resources/Textures/_White/Structures/Wallmounts/signs.rsi/direction_wash.png differ diff --git a/Resources/Textures/_White/Structures/Wallmounts/signs.rsi/meta.json b/Resources/Textures/_White/Structures/Wallmounts/signs.rsi/meta.json index e0827885b7..32bf45d12d 100644 --- a/Resources/Textures/_White/Structures/Wallmounts/signs.rsi/meta.json +++ b/Resources/Textures/_White/Structures/Wallmounts/signs.rsi/meta.json @@ -5,7 +5,7 @@ "y": 32 }, "license": "CC-BY-SA-3.0", - "copyright": "Taken from CEV-Eris and edited by Gersoon", + "copyright": "Taken from CEV-Eris and edited by Gersoon. Directional taken from ss13", "states": [ { "name": "ai", @@ -368,7 +368,7 @@ ] }, { - "name": "kpp", + "name": "check", "delays": [ [ 1 @@ -630,6 +630,438 @@ 1 ] ] + }, + { + "name": "direction_bar", + "directions": 4, + "delays": [ + [ + 1 + ], + [ + 1 + ], + [ + 1 + ], + [ + 1 + ] + ] + }, + { + "name": "direction_exam", + "directions": 4, + "delays": [ + [ + 1 + ], + [ + 1 + ], + [ + 1 + ], + [ + 1 + ] + ] + }, + { + "name": "direction_icu", + "directions": 4, + "delays": [ + [ + 1 + ], + [ + 1 + ], + [ + 1 + ], + [ + 1 + ] + ] + }, + { + "name": "direction_janitor", + "directions": 4, + "delays": [ + [ + 1 + ], + [ + 1 + ], + [ + 1 + ], + [ + 1 + ] + ] + }, + { + "name": "direction_food", + "directions": 4, + "delays": [ + [ + 1 + ], + [ + 1 + ], + [ + 1 + ], + [ + 1 + ] + ] + }, + { + "name": "direction_hop", + "directions": 4, + "delays": [ + [ + 1 + ], + [ + 1 + ], + [ + 1 + ], + [ + 1 + ] + ] + }, + { + "name": "direction_library", + "directions": 4, + "delays": [ + [ + 1 + ], + [ + 1 + ], + [ + 1 + ], + [ + 1 + ] + ] + }, + { + "name": "direction_chemistry", + "directions": 4, + "delays": [ + [ + 1 + ], + [ + 1 + ], + [ + 1 + ], + [ + 1 + ] + ] + }, + { + "name": "direction_eng", + "directions": 4, + "delays": [ + [ + 1 + ], + [ + 1 + ], + [ + 1 + ], + [ + 1 + ] + ] + }, + { + "name": "direction_evac", + "directions": 4, + "delays": [ + [ + 1 + ], + [ + 1 + ], + [ + 1 + ], + [ + 1 + ] + ] + }, + { + "name": "direction_supply", + "directions": 4, + "delays": [ + [ + 1 + ], + [ + 1 + ], + [ + 1 + ], + [ + 1 + ] + ] + }, + { + "name": "direction_bridge", + "directions": 4, + "delays": [ + [ + 1 + ], + [ + 1 + ], + [ + 1 + ], + [ + 1 + ] + ] + }, + { + "name": "direction_med", + "directions": 4, + "delays": [ + [ + 1 + ], + [ + 1 + ], + [ + 1 + ], + [ + 1 + ] + ] + }, + { + "name": "direction_sci", + "directions": 4, + "delays": [ + [ + 1 + ], + [ + 1 + ], + [ + 1 + ], + [ + 1 + ] + ] + }, + { + "name": "direction_sec", + "directions": 4, + "delays": [ + [ + 1 + ], + [ + 1 + ], + [ + 1 + ], + [ + 1 + ] + ] + }, + { + "name": "direction_brig", + "directions": 4, + "delays": [ + [ + 1 + ], + [ + 1 + ], + [ + 1 + ], + [ + 1 + ] + ] + }, + { + "name": "direction_chapel", + "directions": 4, + "delays": [ + [ + 1 + ], + [ + 1 + ], + [ + 1 + ], + [ + 1 + ] + ] + }, + { + "name": "direction_hydro", + "directions": 4, + "delays": [ + [ + 1 + ], + [ + 1 + ], + [ + 1 + ], + [ + 1 + ] + ] + }, + { + "name": "direction_dorms", + "directions": 4, + "delays": [ + [ + 1 + ], + [ + 1 + ], + [ + 1 + ], + [ + 1 + ] + ] + }, + { + "name": "direction_cryo", + "directions": 4, + "delays": [ + [ + 1 + ], + [ + 1 + ], + [ + 1 + ], + [ + 1 + ] + ] + }, + { + "name": "direction_gravity", + "directions": 4, + "delays": [ + [ + 1 + ], + [ + 1 + ], + [ + 1 + ], + [ + 1 + ] + ] + }, + { + "name": "direction_salvage", + "directions": 4, + "delays": [ + [ + 1 + ], + [ + 1 + ], + [ + 1 + ], + [ + 1 + ] + ] + }, + { + "name": "direction_solar", + "directions": 4, + "delays": [ + [ + 1 + ], + [ + 1 + ], + [ + 1 + ], + [ + 1 + ] + ] + }, + { + "name": "direction_wash", + "directions": 4, + "delays": [ + [ + 1 + ], + [ + 1 + ], + [ + 1 + ], + [ + 1 + ] + ] } ] } diff --git a/Resources/engineCommandPerms.yml b/Resources/engineCommandPerms.yml index 51743c6e82..42cc4668a9 100644 --- a/Resources/engineCommandPerms.yml +++ b/Resources/engineCommandPerms.yml @@ -96,6 +96,8 @@ - tp - tpto - respawn + - tippy + - tip - Flags: SERVER Commands: diff --git a/Resources/keybinds.yml b/Resources/keybinds.yml index 9f1f157f8d..87df8c1eec 100644 --- a/Resources/keybinds.yml +++ b/Resources/keybinds.yml @@ -187,11 +187,9 @@ binds: - function: OpenCharacterMenu type: State key: C - # WD EDIT START -- function: OpenEmotionsMenu +- function: OpenEmotesMenu type: State key: Y - # WD EDIT END - function: OpenLanguageMenu type: State key: L @@ -269,6 +267,10 @@ binds: - function: ToggleStanding type: State key: R +- function: ToggleCrawlingUnder + type: State + mod1: Shift + key: R - function: ShowDebugConsole type: State key: Tilde @@ -466,6 +468,9 @@ binds: - function: OpenDecalSpawnWindow type: State key: F8 +- function: OpenScoreboardWindow + type: State + key: F9 - function: OpenSandboxWindow type: State key: B @@ -548,8 +553,6 @@ binds: - function: Hotbar9 type: State key: Num9 - # WD EDIT START - function: LookUp type: State key: Space - # WD EDIT END diff --git a/RobustToolbox b/RobustToolbox index eb63809999..ec794ce4e4 160000 --- a/RobustToolbox +++ b/RobustToolbox @@ -1 +1 @@ -Subproject commit eb638099999dce3a43d90772ca976ae010d649c0 +Subproject commit ec794ce4e4693069d3b3ebf7a88ead5ff2f860e0 diff --git a/SpaceStation14.sln.DotSettings b/SpaceStation14.sln.DotSettings index 620de42253..15424a68ec 100644 --- a/SpaceStation14.sln.DotSettings +++ b/SpaceStation14.sln.DotSettings @@ -34,6 +34,7 @@ WARNING WARNING WARNING + SUGGESTION Required Required Required @@ -55,6 +56,7 @@ AL BB CC + FTL GC GD GL diff --git a/Tools/SS14 Aseprite Plugins/Displacement Map Flip.lua b/Tools/SS14 Aseprite Plugins/Displacement Map Flip.lua new file mode 100644 index 0000000000..3291685071 --- /dev/null +++ b/Tools/SS14 Aseprite Plugins/Displacement Map Flip.lua @@ -0,0 +1,78 @@ +local sprite = app.editor.sprite +local cel = app.cel + +if sprite.selection.isEmpty then + print("You need to select something sorry") + return +end + +local diag = Dialog{ + title = "Flip Displacement Map" +} + +diag:check{ + id = "horizontal", + label = "flip horizontal?" +} + +diag:check{ + id = "vertical", + label = "flip vertical?" +} + +diag:button{ + text = "ok", + focus = true, + onclick = function(ev) + local horizontal = diag.data["horizontal"] + local vertical = diag.data["vertical"] + + local selection = sprite.selection + local image = cel.image:clone() + + for x = 0, selection.bounds.width do + for y = 0, selection.bounds.height do + local xSel = x + selection.origin.x + local ySel = y + selection.origin.y + + local xImg = xSel - cel.position.x + local yImg = ySel - cel.position.y + + if xImg < 0 or xImg >= image.width or yImg < 0 or yImg >= image.height then + goto continue + end + + local imgValue = image:getPixel(xImg, yImg) + local color = Color(imgValue) + + if horizontal then + color.red = 128 + -(color.red - 128) + end + + if vertical then + color.green = 128 + -(color.green - 128) + end + + image:drawPixel( + xImg, + yImg, + app.pixelColor.rgba(color.red, color.green, color.blue, color.alpha)) + + ::continue:: + end + end + + cel.image = image + + diag:close() + end +} + +diag:button{ + text = "cancel", + onclick = function(ev) + diag:close() + end +} + +diag:show() diff --git a/Tools/SS14 Aseprite Plugins/Displacement Map Visualizer.lua b/Tools/SS14 Aseprite Plugins/Displacement Map Visualizer.lua new file mode 100644 index 0000000000..468636c07d --- /dev/null +++ b/Tools/SS14 Aseprite Plugins/Displacement Map Visualizer.lua @@ -0,0 +1,171 @@ +-- Displacement Map Visualizer +-- +-- This script will create a little preview window that will test a displacement map. +-- +-- TODO: Handling of sizes != 127 doesn't work properly and rounds differently from the real shader. Ah well. + +local scale = 4 + +-- This script requires UI +if not app.isUIAvailable then + return +end + +local getOffsetPixel = function(x, y, image, rect) + local posX = x - rect.x + local posY = y - rect.y + + if posX < 0 or posX >= image.width or posY < 0 or posY >= image.height then + return image.spec.transparentColor + end + + return image:getPixel(posX, posY) +end + +local pixelValueToColor = function(sprite, value) + return Color(value) +end + +local applyDisplacementMap = function(width, height, size, displacement, displacementRect, target, targetRect) + -- print(Color(displacement:getPixel(17, 15)).red) + local image = target:clone() + image:resize(width, height) + image:clear() + + for x = 0, width - 1 do + for y = 0, height - 1 do + local value = getOffsetPixel(x, y, displacement, displacementRect) + local color = pixelValueToColor(sprite, value) + + if color.alpha ~= 0 then + local offset_x = (color.red - 128) / 127 * size + local offset_y = (color.green - 128) / 127 * size + + local colorValue = getOffsetPixel(x + offset_x, y + offset_y, target, targetRect) + image:drawPixel(x, y, colorValue) + end + end + end + + return image +end + +local dialog = nil + +local sprite = app.editor.sprite +local spriteChanged = sprite.events:on("change", + function(ev) + dialog:repaint() + end) + +local layers = {} +for i,layer in ipairs(sprite.layers) do + table.insert(layers, 1, layer.name) +end + +local findLayer = function(sprite, name) + for i, layer in ipairs(sprite.layers) do + if layer.name == name then + return layer + end + end + + return nil +end + +dialog = Dialog{ + title = "Displacement map preview", + onclose = function(ev) + sprite.events:off(spriteChanged) + end} + +dialog:canvas{ + id = "canvas", + width = sprite.width * scale, + height = sprite.height * scale, + onpaint = function(ev) + local context = ev.context + + local layerDisplacement = findLayer(sprite, dialog.data["displacement-select"]) + local layerTarget = findLayer(sprite, dialog.data["reference-select"]) + local layerBackground = findLayer(sprite, dialog.data["background-select"]) + -- print(layerDisplacement.name) + -- print(layerTarget.name) + + local celDisplacement = layerDisplacement:cel(1) + local celTarget = layerTarget:cel(1) + local celBackground = layerBackground:cel(1) + + -- Draw background + context:drawImage( + -- srcImage + celBackground.image, + -- srcPos + 0, 0, + -- srcSize + celBackground.image.width, celBackground.image.height, + -- dstPos + celBackground.position.x * scale, celBackground.position.y * scale, + -- dstSize + celBackground.image.width * scale, celBackground.image.height * scale) + + -- Apply displacement map and draw + local image = applyDisplacementMap( + sprite.width, sprite.height, + dialog.data["size"], + celDisplacement.image, celDisplacement.bounds, + celTarget.image, celTarget.bounds) + + context:drawImage( + -- srcImage + image, + -- srcPos + 0, 0, + -- srcSize + image.width, image.height, + -- dstPos + 0, 0, + -- dstSize + image.width * scale, image.height * scale) + end +} + +dialog:combobox{ + id = "displacement-select", + label = "displacement layer", + options = layers, + onchange = function(ev) + dialog:repaint() + end +} + +dialog:combobox{ + id = "reference-select", + label = "reference layer", + options = layers, + onchange = function(ev) + dialog:repaint() + end +} + +dialog:combobox{ + id = "background-select", + label = "background layer", + options = layers, + onchange = function(ev) + dialog:repaint() + end +} + +dialog:slider{ + id = "size", + label = "displacement size", + min = 1, + max = 127, + value = 127, + onchange = function(ev) + dialog:repaint() + end +} + +dialog:show{wait = false} diff --git a/Tools/SS14 Aseprite Plugins/Displacement Map.png b/Tools/SS14 Aseprite Plugins/Displacement Map.png new file mode 100644 index 0000000000..50744cef60 Binary files /dev/null and b/Tools/SS14 Aseprite Plugins/Displacement Map.png differ diff --git a/Tools/publish_multi_request.py b/Tools/publish_multi_request.py new file mode 100755 index 0000000000..131d1f7f76 --- /dev/null +++ b/Tools/publish_multi_request.py @@ -0,0 +1,78 @@ +#!/usr/bin/env python3 + +import requests +import os +import subprocess +from typing import Iterable + +PUBLISH_TOKEN = os.environ["PUBLISH_TOKEN"] +VERSION = os.environ["GITHUB_SHA"] + +RELEASE_DIR = "release" + +# +# CONFIGURATION PARAMETERS +# Forks should change these to publish to their own infrastructure. +# +ROBUST_CDN_URL = "https://cdn.simplestation.org/" +FORK_ID = "einstein-engines" + +def main(): + session = requests.Session() + session.headers = { + "Authorization": f"Bearer {PUBLISH_TOKEN}", + } + + print(f"Starting publish on Robust.Cdn for version {VERSION}") + + data = { + "version": VERSION, + "engineVersion": get_engine_version(), + } + headers = { + "Content-Type": "application/json" + } + resp = session.post(f"{ROBUST_CDN_URL}fork/{FORK_ID}/publish/start", json=data, headers=headers) + resp.raise_for_status() + print("Publish successfully started, adding files...") + + for file in get_files_to_publish(): + print(f"Publishing {file}") + with open(file, "rb") as f: + headers = { + "Content-Type": "application/octet-stream", + "Robust-Cdn-Publish-File": os.path.basename(file), + "Robust-Cdn-Publish-Version": VERSION + } + resp = session.post(f"{ROBUST_CDN_URL}fork/{FORK_ID}/publish/file", data=f, headers=headers) + + resp.raise_for_status() + + print("Successfully pushed files, finishing publish...") + + data = { + "version": VERSION + } + headers = { + "Content-Type": "application/json" + } + resp = session.post(f"{ROBUST_CDN_URL}fork/{FORK_ID}/publish/finish", json=data, headers=headers) + resp.raise_for_status() + + print("SUCCESS!") + + +def get_files_to_publish() -> Iterable[str]: + for file in os.listdir(RELEASE_DIR): + yield os.path.join(RELEASE_DIR, file) + + +def get_engine_version() -> str: + proc = subprocess.run(["git", "describe","--tags", "--abbrev=0"], stdout=subprocess.PIPE, cwd="RobustToolbox", check=True, encoding="UTF-8") + tag = proc.stdout.strip() + assert tag.startswith("v") + return tag[1:] # Cut off v prefix. + + +if __name__ == '__main__': + main()